linear-react-components-ui 0.4.76-beta.0 → 0.4.76-beta.12

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 (69) hide show
  1. package/.vscode/settings.json +2 -1
  2. package/README.md +0 -33
  3. package/lib/assets/styles/dropdown.scss +2 -25
  4. package/lib/assets/styles/effects.scss +0 -12
  5. package/lib/assets/styles/floatMenu.scss +1 -0
  6. package/lib/assets/styles/panel.scss +1 -0
  7. package/lib/assets/styles/progress.scss +1 -8
  8. package/lib/assets/styles/select.scss +0 -1
  9. package/lib/assets/styles/table.scss +5 -13
  10. package/lib/assets/styles/tabs.scss +43 -77
  11. package/lib/assets/styles/treeview.scss +0 -32
  12. package/lib/avatar/avatar.spec.js +6 -17
  13. package/lib/avatar/index.js +1 -1
  14. package/lib/buttons/DefaultButton.js +1 -7
  15. package/lib/checkbox/index.js +6 -20
  16. package/lib/dialog/base/index.js +6 -15
  17. package/lib/dialog/form/index.js +3 -16
  18. package/lib/drawer/index.js +1 -4
  19. package/lib/form/Field.js +0 -2
  20. package/lib/form/FieldNumber.js +2 -10
  21. package/lib/form/helpers.js +1 -9
  22. package/lib/form/index.js +10 -76
  23. package/lib/form/withFieldHOC.js +0 -2
  24. package/lib/icons/helper.js +0 -16
  25. package/lib/inputs/base/InputTextBase.js +10 -1
  26. package/lib/inputs/base/helpers.js +13 -2
  27. package/lib/inputs/number/BaseNumber.js +1 -1
  28. package/lib/inputs/number/index.js +5 -7
  29. package/lib/inputs/select/Dropdown.js +4 -4
  30. package/lib/inputs/select/index.js +3 -26
  31. package/lib/inputs/select/multiple/index.js +7 -9
  32. package/lib/inputs/select/simple/index.js +18 -30
  33. package/lib/internals/withTooltip.js +81 -83
  34. package/lib/list/Item.js +3 -3
  35. package/lib/list/index.js +10 -20
  36. package/lib/list/list.spec.js +85 -129
  37. package/lib/menus/float/MenuItem.js +8 -25
  38. package/lib/menus/sidenav/index.js +3 -7
  39. package/lib/menus/sidenav/popup_menu_search/index.js +1 -1
  40. package/lib/progress/Bar.js +9 -40
  41. package/lib/progress/index.js +4 -12
  42. package/lib/spinner/index.js +1 -6
  43. package/lib/split/Split.js +11 -5
  44. package/lib/table/Row.js +1 -1
  45. package/lib/tabs/Menu.js +5 -18
  46. package/lib/tabs/MenuItems.js +7 -7
  47. package/lib/tabs/Panel.js +3 -1
  48. package/lib/tabs/index.js +17 -126
  49. package/lib/toolbar/index.js +4 -8
  50. package/lib/tooltip/index.js +0 -12
  51. package/lib/treeview/Node.js +18 -288
  52. package/lib/treeview/index.js +35 -448
  53. package/package.json +8 -9
  54. package/.tool-versions +0 -1
  55. package/lib/assets/styles/multiSelect.scss +0 -105
  56. package/lib/assets/styles/periodpicker.scss +0 -65
  57. package/lib/checkbox/Label.js +0 -37
  58. package/lib/form/FieldPeriod.js +0 -100
  59. package/lib/form/withFormSecurity.js +0 -106
  60. package/lib/inputs/multiSelect/ActionButtons.js +0 -68
  61. package/lib/inputs/multiSelect/Dropdown.js +0 -200
  62. package/lib/inputs/multiSelect/helper.js +0 -18
  63. package/lib/inputs/multiSelect/index.js +0 -343
  64. package/lib/inputs/period/Dialog.js +0 -38
  65. package/lib/inputs/period/Dropdown.js +0 -90
  66. package/lib/inputs/period/PeriodList.js +0 -79
  67. package/lib/inputs/period/helper.js +0 -118
  68. package/lib/inputs/period/index.js +0 -490
  69. package/lib/tabs/DropdownItems.js +0 -84
@@ -127,6 +127,9 @@ var SimpleSelect = /*#__PURE__*/function (_Component) {
127
127
  onFocus: function onFocus() {
128
128
  _this2.onFocus();
129
129
  },
130
+ onBlur: function onBlur(e) {
131
+ _this2.onBlur(e);
132
+ },
130
133
  onChange: function onChange(e) {
131
134
  _this2.onFilter(e.target.value);
132
135
  },
@@ -290,11 +293,18 @@ var _initialiseProps = function _initialiseProps() {
290
293
  enumerable: true,
291
294
  writable: true,
292
295
  value: function value(selected) {
293
- var onChange = _this3.props.onChange;
296
+ var _this3$props2 = _this3.props,
297
+ onChange = _this3$props2.onChange,
298
+ idKey = _this3$props2.idKey,
299
+ name = _this3$props2.name;
294
300
 
295
301
  if (onChange) {
296
- var event = _this3.getSelectEvent(selected);
297
-
302
+ var event = {
303
+ target: {
304
+ name: name,
305
+ value: selected ? selected[idKey] : undefined
306
+ }
307
+ };
298
308
  onChange(event);
299
309
  }
300
310
  }
@@ -354,15 +364,9 @@ var _initialiseProps = function _initialiseProps() {
354
364
  configurable: true,
355
365
  enumerable: true,
356
366
  writable: true,
357
- value: function value(selected) {
367
+ value: function value(e) {
358
368
  var onBlur = _this3.props.onBlur;
359
-
360
- if (onBlur) {
361
- var event = _this3.getSelectEvent(selected);
362
-
363
- onBlur(event);
364
- }
365
-
369
+ if (onBlur) onBlur(e);
366
370
  if (!_this3.state.insideComponent) _this3.setState({
367
371
  opened: false,
368
372
  isTyping: false
@@ -374,9 +378,9 @@ var _initialiseProps = function _initialiseProps() {
374
378
  enumerable: true,
375
379
  writable: true,
376
380
  value: function value(e) {
377
- var _this3$props2 = _this3.props,
378
- dataSource = _this3$props2.dataSource,
379
- idKey = _this3$props2.idKey;
381
+ var _this3$props3 = _this3.props,
382
+ dataSource = _this3$props3.dataSource,
383
+ idKey = _this3$props3.idKey;
380
384
  var _this3$state = _this3.state,
381
385
  selected = _this3$state.selected,
382
386
  isTyping = _this3$state.isTyping;
@@ -417,22 +421,6 @@ var _initialiseProps = function _initialiseProps() {
417
421
  });
418
422
  }
419
423
  });
420
- Object.defineProperty(this, "getSelectEvent", {
421
- configurable: true,
422
- enumerable: true,
423
- writable: true,
424
- value: function value(selected) {
425
- var _this3$props3 = _this3.props,
426
- idKey = _this3$props3.idKey,
427
- name = _this3$props3.name;
428
- return {
429
- target: {
430
- name: name,
431
- value: selected ? selected[idKey] : undefined
432
- }
433
- };
434
- }
435
- });
436
424
  Object.defineProperty(this, "setOnDenied", {
437
425
  configurable: true,
438
426
  enumerable: true,
@@ -33,8 +33,6 @@ function _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "und
33
33
 
34
34
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
35
35
 
36
- var TOOLTIP_INITIAL_HEIGHT = 40;
37
-
38
36
  var hasTooltip = function hasTooltip(_ref) {
39
37
  var tooltip = _ref.tooltip;
40
38
  return tooltip;
@@ -47,32 +45,34 @@ var getDisplayName = function getDisplayName(WrappedComponent) {
47
45
  var withTooltip = function withTooltip(WrappedComponent) {
48
46
  var EnhancedComponent = function EnhancedComponent(props) {
49
47
  var tooltip = props.tooltip,
48
+ tooltipPosition = props.tooltipPosition,
50
49
  tooltipWidth = props.tooltipWidth,
51
50
  space = props.space;
52
51
 
53
- var _useState = (0, _react.useState)(props.tooltipPosition),
52
+ var _useState = (0, _react.useState)(false),
54
53
  _useState2 = _slicedToArray(_useState, 2),
55
- tooltipPosition = _useState2[0],
56
- setTooltipPosition = _useState2[1];
54
+ showTooltip = _useState2[0],
55
+ setShowTooltip = _useState2[1];
57
56
 
58
- var _useState3 = (0, _react.useState)(''),
57
+ var _useState3 = (0, _react.useState)({
58
+ width: tooltipWidth,
59
+ height: undefined
60
+ }),
59
61
  _useState4 = _slicedToArray(_useState3, 2),
60
- tooltipStyle = _useState4[0],
61
- setTooltipStyle = _useState4[1];
62
+ tooltipDimensions = _useState4[0],
63
+ setTooltipDimensions = _useState4[1];
62
64
 
63
- var _useState5 = (0, _react.useState)(false),
65
+ var _useState5 = (0, _react.useState)(true),
64
66
  _useState6 = _slicedToArray(_useState5, 2),
65
- showTooltip = _useState6[0],
66
- setShowTooltip = _useState6[1];
67
+ findScrollableParent = _useState6[0],
68
+ setFindScrollableParent = _useState6[1];
67
69
 
68
- var _useState7 = (0, _react.useState)({
69
- width: tooltipWidth,
70
- height: TOOLTIP_INITIAL_HEIGHT
71
- }),
70
+ var _useState7 = (0, _react.useState)(undefined),
72
71
  _useState8 = _slicedToArray(_useState7, 2),
73
- tooltipDimensions = _useState8[0],
74
- setTooltipDimensions = _useState8[1];
72
+ dimensionsTargetElement = _useState8[0],
73
+ setDimensionsTargetElement = _useState8[1];
75
74
 
75
+ var scrollableParent = (0, _react.useRef)();
76
76
  var targetElement = (0, _react.useRef)();
77
77
 
78
78
  var onMouseOver = function onMouseOver(e) {
@@ -85,24 +85,58 @@ var withTooltip = function withTooltip(WrappedComponent) {
85
85
  setShowTooltip(false);
86
86
  };
87
87
 
88
- var onAnyScroll = function onAnyScroll() {
89
- setShowTooltip(false);
88
+ var onParentScroll = function onParentScroll() {
89
+ var currentDimensions = targetElement.current.getBoundingClientRect();
90
+
91
+ if (targetElement.current && dimensionsTargetElement !== currentDimensions) {
92
+ return setDimensionsTargetElement(currentDimensions);
93
+ }
94
+
95
+ return null;
96
+ };
97
+
98
+ var getScrollableParent = function getScrollableParent(node) {
99
+ if (node === null || node.nodeName === '#document') {
100
+ return setFindScrollableParent(false);
101
+ }
102
+
103
+ var _window$getComputedSt = window.getComputedStyle(node),
104
+ overflowY = _window$getComputedSt.overflowY;
105
+
106
+ var isScrollable = overflowY !== 'visible' && overflowY !== 'hidden';
107
+
108
+ if (isScrollable && node.scrollHeight > node.clientHeight) {
109
+ scrollableParent.current = node;
110
+ return setFindScrollableParent(false);
111
+ }
112
+
113
+ return getScrollableParent(node.parentNode);
90
114
  };
91
115
 
92
116
  (0, _react.useEffect)(function () {
93
117
  if (hasTooltip(props)) {
94
118
  document.addEventListener('mouseover', onMouseOver);
95
- document.addEventListener('scroll', onAnyScroll, true);
96
119
 
97
120
  if (targetElement && targetElement.current) {
98
121
  targetElement.current.addEventListener('mouseout', onMouseOut);
99
122
  }
123
+
124
+ if (targetElement && targetElement.current && findScrollableParent) {
125
+ getScrollableParent(targetElement.current);
126
+ }
127
+
128
+ if (scrollableParent && scrollableParent.current) {
129
+ scrollableParent.current.addEventListener('scroll', onParentScroll);
130
+ }
100
131
  }
101
132
 
102
133
  return function () {
103
134
  if (hasTooltip(props)) {
104
135
  document.removeEventListener('mouseover', onMouseOver);
105
- document.removeEventListener('scroll', onAnyScroll, true);
136
+
137
+ if (scrollableParent && scrollableParent.current) {
138
+ scrollableParent.current.removeEventListener('scroll', onParentScroll);
139
+ }
106
140
 
107
141
  if (targetElement && targetElement.current) {
108
142
  targetElement.current.removeEventListener('mouseout', onMouseOut);
@@ -110,75 +144,39 @@ var withTooltip = function withTooltip(WrappedComponent) {
110
144
  }
111
145
  };
112
146
  }, []);
113
- (0, _react.useEffect)(function () {
114
- if (targetElement.current) {
115
- var width = tooltipDimensions.width,
116
- height = tooltipDimensions.height;
117
- var targetDimensions = targetElement.current.getBoundingClientRect();
118
- var targetVerticalCenter = (targetDimensions.top + targetDimensions.bottom) / 2;
119
- var formattedWidth = typeof width === 'string' ? Number(width.slice(0, -2)) : width;
120
- var style = "width: ".concat(width, "px");
121
- var left = targetDimensions.left + targetDimensions.width / 2 - width / 2;
122
- left = Math.min(left, document.body.clientWidth - width - space);
123
- style += "; left: ".concat(Math.max(space, left), "px");
124
-
125
- switch (tooltipPosition) {
126
- case 'top':
127
- if (targetDimensions.top < height) {
128
- setTooltipPosition('bottom');
129
- } else {
130
- style += "; top: ".concat(targetDimensions.top + window.scrollY - height - 5, "px");
131
- }
132
-
133
- break;
134
-
135
- case 'bottom':
136
- if (window.innerHeight - targetDimensions.bottom < height) {
137
- setTooltipPosition('top');
138
- } else {
139
- style += "; top: ".concat(targetDimensions.top + window.scrollY + targetDimensions.height + 5, "px");
140
- }
141
-
142
- break;
143
-
144
- case 'left':
145
- if (targetDimensions.left < formattedWidth) {
146
- setTooltipPosition('right');
147
- } else {
148
- style += "; top: ".concat(targetVerticalCenter + window.scrollY - height / 2, "px");
149
- style += "; left: ".concat(targetDimensions.left - formattedWidth - 6, "px");
150
- }
151
-
152
- break;
153
-
154
- case 'right':
155
- if (window.innerWidth - targetDimensions.right < formattedWidth) {
156
- setTooltipPosition('left');
157
- } else {
158
- style += "; top: ".concat(targetVerticalCenter + window.scrollY - height / 2, "px");
159
- style += "; left: ".concat(targetDimensions.left + targetDimensions.width + 5, "px");
160
- }
161
-
162
- break;
163
-
164
- default:
165
- style += '';
166
- }
167
147
 
168
- setTooltipStyle(style);
148
+ var getStyle = function getStyle() {
149
+ // where on the screen is the target
150
+ var width = tooltipDimensions.width,
151
+ height = tooltipDimensions.height;
152
+ var targetDimensions = dimensionsTargetElement || targetElement.current.getBoundingClientRect();
153
+ var targetVerticalCenter = (targetDimensions.top + targetDimensions.bottom) / 2;
154
+ var style = "width: ".concat(width + 2, "px");
155
+ var left = targetDimensions.left + targetDimensions.width / 2 - width / 2;
156
+ left = Math.min(left, document.body.clientWidth - width - space);
157
+ style += "; left: ".concat(Math.max(space, left), "px"); // when the position is informed
158
+
159
+ if (tooltipPosition === 'top') {
160
+ style += "; top: ".concat(targetDimensions.top + window.scrollY - height - 5, "px");
161
+ } else if (tooltipPosition === 'bottom') {
162
+ style += "; top: ".concat(targetDimensions.top + window.scrollY + targetDimensions.height + 5, "px");
163
+ } else if (tooltipPosition === 'left') {
164
+ style += "; top: ".concat(targetVerticalCenter + window.scrollY - height / 2, "px");
165
+ style += "; left: ".concat(targetDimensions.left - width - 6, "px");
166
+ } else if (tooltipPosition === 'right') {
167
+ style += "; top: ".concat(targetVerticalCenter + window.scrollY - height / 2, "px");
168
+ style += "; left: ".concat(targetDimensions.left + targetDimensions.width + 5, "px");
169
169
  }
170
- }, [tooltipDimensions, targetElement.current, tooltipPosition]);
171
- (0, _react.useEffect)(function () {
172
- setTooltipPosition(props.tooltipPosition);
173
- }, [window.scrollY, window.scrollX, window.innerWidth]);
170
+
171
+ return style;
172
+ };
174
173
 
175
174
  var getTooltip = function getTooltip() {
176
175
  if (tooltip) {
177
176
  return /*#__PURE__*/_react["default"].createElement(_tooltip["default"], {
178
177
  text: tooltip,
179
- style: tooltipStyle,
178
+ style: getStyle(),
180
179
  className: tooltipPosition,
181
- tooltipDimensions: tooltipDimensions,
182
180
  handlerSetDimensions: setTooltipDimensions
183
181
  });
184
182
  }
@@ -203,7 +201,7 @@ var withTooltip = function withTooltip(WrappedComponent) {
203
201
  tooltipPosition: _propTypes["default"].string
204
202
  };
205
203
  EnhancedComponent.defaultProps = {
206
- tooltipWidth: undefined,
204
+ tooltipWidth: 'auto',
207
205
  space: 20,
208
206
  tooltip: '',
209
207
  tooltipPosition: 'bottom'
package/lib/list/Item.js CHANGED
@@ -99,12 +99,12 @@ var Item = function Item(props) {
99
99
 
100
100
  var getProps = function getProps() {
101
101
  if (shouldDisable()) return undefined;
102
- if (_onClick === undefined && dropdownContext === undefined && !selectable) return null;
102
+ if (_onClick === undefined && dropdownContext === undefined) return null;
103
103
  return {
104
104
  onClick: function onClick(e) {
105
- if (_onClick !== undefined) _onClick(e, itemId);
105
+ if (_onClick !== undefined) _onClick(e);
106
106
  if (dropdownContext) dropdownContext.handleDropdownClose();
107
- if (selectable) handleSelectItem(itemId, _onClick);
107
+ if (selectable && handleSelectItem(itemId)) ;
108
108
  },
109
109
  onKeyDown: null,
110
110
  role: 'button',
package/lib/list/index.js CHANGED
@@ -58,30 +58,24 @@ function _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "und
58
58
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
59
59
 
60
60
  var List = function List(props) {
61
- var children = props.children,
62
- customClass = props.customClass,
63
- condensed = props.condensed,
64
- transparent = props.transparent,
65
- style = props.style,
66
- selectable = props.selectable,
67
- onSelectItem = props.onSelectItem;
68
-
69
61
  var _useState = (0, _react.useState)(''),
70
62
  _useState2 = _slicedToArray(_useState, 2),
71
63
  selectedItemId = _useState2[0],
72
64
  setSelectedItemId = _useState2[1];
73
65
 
66
+ var children = props.children,
67
+ customClass = props.customClass,
68
+ condensed = props.condensed,
69
+ transparent = props.transparent,
70
+ style = props.style,
71
+ selectable = props.selectable;
74
72
  var contextValues = {
75
73
  selectable: selectable,
76
74
  selectedItemId: selectedItemId,
77
- handleSelectItem: function handleSelectItem(selectedId, onClick) {
78
- if (!onSelectItem && onClick) setSelectedItemId(selectedId);
79
- if (onSelectItem) onSelectItem(selectedId);
75
+ handleSelectItem: function handleSelectItem(selectedId) {
76
+ setSelectedItemId(selectedId);
80
77
  }
81
78
  };
82
- (0, _react.useEffect)(function () {
83
- if (onSelectItem && props.selectedItemId) setSelectedItemId(props.selectedItemId);
84
- }, [props.selectedItemId]);
85
79
  return /*#__PURE__*/_react["default"].createElement(_helpers["default"].Provider, {
86
80
  value: contextValues
87
81
  }, /*#__PURE__*/_react["default"].createElement("ul", {
@@ -97,18 +91,14 @@ List.propTypes = {
97
91
  customClass: _propTypes["default"].string,
98
92
  condensed: _propTypes["default"].bool,
99
93
  selectable: _propTypes["default"].bool,
100
- style: _propTypes["default"].object,
101
- onSelectItem: _propTypes["default"].func,
102
- selectedItemId: _propTypes["default"].string
94
+ style: _propTypes["default"].object
103
95
  };
104
96
  List.defaultProps = {
105
97
  customClass: '',
106
98
  condensed: false,
107
99
  transparent: false,
108
100
  selectable: false,
109
- style: {},
110
- onSelectItem: undefined,
111
- selectedItemId: ''
101
+ style: {}
112
102
  };
113
103
  var _default = List;
114
104
  exports["default"] = _default;