linear-react-components-ui 0.4.76-rc.9 → 0.4.76
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.husky/pre-commit +2 -2
- package/.tool-versions +1 -0
- package/.vscode/settings.json +1 -2
- package/README.md +40 -5
- package/lib/assets/styles/button.scss +19 -10
- package/lib/assets/styles/checkbox.scss +92 -70
- package/lib/assets/styles/commons.scss +36 -0
- package/lib/assets/styles/drawers.scss +22 -6
- package/lib/assets/styles/dropdown.scss +28 -2
- package/lib/assets/styles/effects.scss +32 -0
- package/lib/assets/styles/floatMenu.scss +0 -1
- package/lib/assets/styles/gridlayout.scss +2 -1
- package/lib/assets/styles/input.scss +21 -0
- package/lib/assets/styles/label.scss +9 -1
- package/lib/assets/styles/list.scss +8 -0
- package/lib/assets/styles/multiSelect.scss +105 -0
- package/lib/assets/styles/panel.scss +3 -1
- package/lib/assets/styles/periodpicker.scss +65 -0
- package/lib/assets/styles/progress.scss +8 -1
- package/lib/assets/styles/radio.scss +19 -0
- package/lib/assets/styles/select.scss +4 -3
- package/lib/assets/styles/sidenav.scss +11 -1
- package/lib/assets/styles/skeleton.scss +48 -0
- package/lib/assets/styles/table.scss +25 -5
- package/lib/assets/styles/tabs.scss +116 -75
- package/lib/assets/styles/treeview.scss +41 -0
- package/lib/assets/styles/uitour.scss +112 -0
- package/lib/avatar/avatar.spec.js +17 -6
- package/lib/avatar/index.js +1 -1
- package/lib/buttons/DefaultButton.js +13 -4
- package/lib/buttons/split_button/index.js +8 -4
- package/lib/checkbox/Label.js +37 -0
- package/lib/checkbox/checkbox.spec.js +16 -16
- package/lib/checkbox/index.js +33 -12
- package/lib/dialog/base/index.js +15 -6
- package/lib/dialog/form/index.js +24 -4
- package/lib/drawer/Drawer.js +9 -5
- package/lib/drawer/Header.js +15 -5
- package/lib/drawer/index.js +4 -1
- package/lib/dropdown/Popup.js +3 -2
- package/lib/form/Field.js +2 -0
- package/lib/form/FieldNumber.js +11 -3
- package/lib/form/FieldPeriod.js +100 -0
- package/lib/form/form.spec.js +8 -0
- package/lib/form/helpers.js +20 -1
- package/lib/form/index.js +220 -218
- package/lib/form/withFieldHOC.js +5 -1
- package/lib/form/withFormSecurity.js +106 -0
- package/lib/icons/helper.js +24 -0
- package/lib/inputs/base/InputTextBase.js +30 -5
- package/lib/inputs/base/helpers.js +13 -9
- package/lib/inputs/date/Dropdown.js +3 -3
- package/lib/inputs/date/date.spec.js +46 -36
- package/lib/inputs/date/helpers.js +36 -0
- package/lib/inputs/date/index.js +12 -10
- package/lib/inputs/mask/Phone.js +10 -1
- package/lib/inputs/mask/imaskHOC.js +2 -1
- package/lib/inputs/mask/input_mask.spec.js +21 -4
- package/lib/inputs/multiSelect/ActionButtons.js +68 -0
- package/lib/inputs/multiSelect/Dropdown.js +200 -0
- package/lib/inputs/multiSelect/helper.js +18 -0
- package/lib/inputs/multiSelect/index.js +343 -0
- package/lib/inputs/number/BaseNumber.js +1 -1
- package/lib/inputs/number/index.js +7 -5
- package/lib/inputs/period/Dialog.js +38 -0
- package/lib/inputs/period/Dropdown.js +90 -0
- package/lib/inputs/period/PeriodList.js +79 -0
- package/lib/inputs/period/helper.js +118 -0
- package/lib/inputs/period/index.js +490 -0
- package/lib/inputs/search/index.js +2 -0
- package/lib/inputs/select/Dropdown.js +55 -65
- package/lib/inputs/select/helper.js +65 -2
- package/lib/inputs/select/index.js +26 -3
- package/lib/inputs/select/multiple/index.js +16 -11
- package/lib/inputs/select/simple/index.js +39 -24
- package/lib/internals/constants.js +4 -3
- package/lib/internals/withTooltip.js +86 -82
- package/lib/labels/DefaultLabel.js +7 -4
- package/lib/list/Item.js +35 -9
- package/lib/list/helpers.js +8 -3
- package/lib/list/index.js +172 -14
- package/lib/list/list.spec.js +290 -89
- package/lib/menus/float/MenuItem.js +25 -8
- package/lib/menus/sidenav/NavMenuItem.js +17 -8
- package/lib/menus/sidenav/index.js +59 -86
- package/lib/menus/sidenav/popup_menu_search/index.js +26 -17
- package/lib/menus/sidenav/sidenav.spec.js +86 -19
- package/lib/panel/Header.js +4 -3
- package/lib/progress/Bar.js +40 -9
- package/lib/progress/index.js +12 -4
- package/lib/radio/index.js +9 -6
- package/lib/skeleton/SkeletonContainer.js +42 -0
- package/lib/skeleton/index.js +84 -0
- package/lib/spinner/index.js +6 -1
- package/lib/split/Split.js +5 -11
- package/lib/table/Body.js +55 -11
- package/lib/table/Header.js +14 -1
- package/lib/table/HeaderColumn.js +26 -3
- package/lib/table/Row.js +19 -8
- package/lib/table/RowColumn.js +23 -3
- package/lib/table/helpers.js +11 -1
- package/lib/table/index.js +41 -8
- package/lib/tabs/DropdownItems.js +84 -0
- package/lib/tabs/Menu.js +12 -9
- package/lib/tabs/MenuItems.js +15 -9
- package/lib/tabs/Panel.js +1 -3
- package/lib/tabs/index.js +156 -22
- package/lib/tabs/tabs.spec.js +8 -5
- package/lib/toolbar/ButtonBar.js +30 -24
- package/lib/toolbar/LabelBar.js +22 -27
- package/lib/toolbar/helpers.js +12 -0
- package/lib/toolbar/index.js +24 -9
- package/lib/tooltip/index.js +20 -7
- package/lib/treeview/Node.js +364 -49
- package/lib/treeview/index.js +475 -36
- package/lib/treeview/treeview.spec.js +18 -0
- package/lib/uitour/helpers.js +15 -0
- package/lib/uitour/index.js +271 -0
- package/lib/uitour/uitour.spec.js +176 -0
- package/package.json +9 -8
|
@@ -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;
|
|
@@ -15,17 +15,40 @@ var _simple = _interopRequireDefault(require("./simple"));
|
|
|
15
15
|
|
|
16
16
|
require("../../assets/styles/select.scss");
|
|
17
17
|
|
|
18
|
+
var _gridlayout = _interopRequireDefault(require("../../gridlayout"));
|
|
19
|
+
|
|
20
|
+
var _excluded = ["gridLayout", "multiple"];
|
|
21
|
+
|
|
18
22
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
19
23
|
|
|
24
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
25
|
+
|
|
26
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
27
|
+
|
|
20
28
|
var SelectField = function SelectField(props) {
|
|
21
|
-
|
|
29
|
+
var gridLayout = props.gridLayout,
|
|
30
|
+
multiple = props.multiple,
|
|
31
|
+
newProps = _objectWithoutProperties(props, _excluded);
|
|
32
|
+
|
|
33
|
+
var component = multiple ? /*#__PURE__*/_react["default"].createElement(_multiple["default"], newProps) : /*#__PURE__*/_react["default"].createElement(_simple["default"], newProps);
|
|
34
|
+
|
|
35
|
+
if (gridLayout !== undefined) {
|
|
36
|
+
return /*#__PURE__*/_react["default"].createElement(_gridlayout["default"], {
|
|
37
|
+
customClass: "-withinput",
|
|
38
|
+
cols: gridLayout
|
|
39
|
+
}, component);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
return component;
|
|
22
43
|
};
|
|
23
44
|
|
|
24
45
|
SelectField.propTypes = {
|
|
25
|
-
multiple: _propTypes["default"].bool
|
|
46
|
+
multiple: _propTypes["default"].bool,
|
|
47
|
+
gridLayout: _propTypes["default"].string
|
|
26
48
|
};
|
|
27
49
|
SelectField.defaultProps = {
|
|
28
|
-
multiple: false
|
|
50
|
+
multiple: false,
|
|
51
|
+
gridLayout: undefined
|
|
29
52
|
};
|
|
30
53
|
var _default = SelectField;
|
|
31
54
|
exports["default"] = _default;
|
|
@@ -83,7 +83,9 @@ 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 = {
|
|
88
|
+
valueFromProps: null,
|
|
87
89
|
dataCombo: props.dataSource,
|
|
88
90
|
currents: [],
|
|
89
91
|
selected: null,
|
|
@@ -141,10 +143,11 @@ var MultipleSelect = /*#__PURE__*/function (_Component) {
|
|
|
141
143
|
}, {
|
|
142
144
|
key: "onClickOutside",
|
|
143
145
|
value: function onClickOutside(event) {
|
|
144
|
-
var selectWrapper = this.selectWrapper
|
|
146
|
+
var selectWrapper = this.selectWrapper,
|
|
147
|
+
dropdownRef = this.dropdownRef;
|
|
145
148
|
var target = event.target;
|
|
146
149
|
|
|
147
|
-
if (target !== selectWrapper && !selectWrapper.contains(target)) {
|
|
150
|
+
if (target !== selectWrapper && !selectWrapper.contains(target) && dropdownRef.current && !dropdownRef.current.contains(target)) {
|
|
148
151
|
this.setState({
|
|
149
152
|
opened: false
|
|
150
153
|
});
|
|
@@ -269,12 +272,12 @@ var MultipleSelect = /*#__PURE__*/function (_Component) {
|
|
|
269
272
|
|
|
270
273
|
if (e.keyCode === constants.keyCodes.ENTER) {
|
|
271
274
|
this.onSelect(selected);
|
|
272
|
-
} else if ([constants.keyCodes.
|
|
275
|
+
} else if ([constants.keyCodes.ARROW_UP, constants.keyCodes.ARROW_DOWN].includes(e.keyCode)) {
|
|
273
276
|
var index = dataSource.findIndex(function (d) {
|
|
274
277
|
return d === selected;
|
|
275
278
|
});
|
|
276
279
|
|
|
277
|
-
if (e.keyCode === constants.keyCodes.
|
|
280
|
+
if (e.keyCode === constants.keyCodes.ARROW_DOWN) {
|
|
278
281
|
index = index === dataSource.length - 1 ? 0 : index + 1;
|
|
279
282
|
} else {
|
|
280
283
|
index = index === 0 ? dataSource.length - 1 : index - 1;
|
|
@@ -362,6 +365,7 @@ var MultipleSelect = /*#__PURE__*/function (_Component) {
|
|
|
362
365
|
handleOnUnselect: this.onUnselect
|
|
363
366
|
}))), opened && /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], _extends({}, this.state, this.props, {
|
|
364
367
|
selectFieldRef: this.componentRef,
|
|
368
|
+
dropdownRef: this.dropdownRef,
|
|
365
369
|
gridWrapperStyle: gridLayout ? window.getComputedStyle(this.gridEl) : undefined,
|
|
366
370
|
handleOnSelect: this.onSelect,
|
|
367
371
|
handleOnFilter: this.onFilter,
|
|
@@ -385,18 +389,19 @@ Object.defineProperty(MultipleSelect, "getDerivedStateFromProps", {
|
|
|
385
389
|
value = props.value,
|
|
386
390
|
idKey = props.idKey;
|
|
387
391
|
|
|
388
|
-
if (
|
|
389
|
-
var dataCombo = remoteSearch ? dataSource : (0, _helper.getFilteredMultipleDataCombo)(_extends({}, props, state));
|
|
390
|
-
return {
|
|
391
|
-
dataCombo: dataCombo,
|
|
392
|
-
selected: dataSource.length > 0 && remoteSearch ? dataSource[0] : null
|
|
393
|
-
};
|
|
394
|
-
} else if (value !== null && dataSource.length > 0) {
|
|
392
|
+
if (value !== state.valueFromProps && dataSource.length > 0) {
|
|
395
393
|
return {
|
|
394
|
+
valueFromProps: value,
|
|
396
395
|
currents: dataSource.filter(function (item) {
|
|
397
396
|
return value.includes(item[idKey]);
|
|
398
397
|
})
|
|
399
398
|
};
|
|
399
|
+
} else if (dataSource !== state.dataCombo) {
|
|
400
|
+
var dataCombo = remoteSearch ? dataSource : (0, _helper.getFilteredMultipleDataCombo)(_extends({}, props, state));
|
|
401
|
+
return {
|
|
402
|
+
dataCombo: dataCombo,
|
|
403
|
+
selected: dataCombo.length > 0 ? dataCombo[0] : null
|
|
404
|
+
};
|
|
400
405
|
}
|
|
401
406
|
|
|
402
407
|
return null;
|
|
@@ -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;
|
|
@@ -127,9 +128,6 @@ var SimpleSelect = /*#__PURE__*/function (_Component) {
|
|
|
127
128
|
onFocus: function onFocus() {
|
|
128
129
|
_this2.onFocus();
|
|
129
130
|
},
|
|
130
|
-
onBlur: function onBlur(e) {
|
|
131
|
-
_this2.onBlur(e);
|
|
132
|
-
},
|
|
133
131
|
onChange: function onChange(e) {
|
|
134
132
|
_this2.onFilter(e.target.value);
|
|
135
133
|
},
|
|
@@ -155,6 +153,7 @@ var SimpleSelect = /*#__PURE__*/function (_Component) {
|
|
|
155
153
|
}))
|
|
156
154
|
})), opened && /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], _extends({}, this.state, this.props, {
|
|
157
155
|
selectFieldRef: this.componentRef,
|
|
156
|
+
dropdownRef: this.dropdownRef,
|
|
158
157
|
gridWrapperStyle: gridLayout ? window.getComputedStyle(this.gridEl) : undefined,
|
|
159
158
|
handleOnSelect: this.onSelect,
|
|
160
159
|
handleOnFilter: this.onFilter,
|
|
@@ -175,14 +174,14 @@ Object.defineProperty(SimpleSelect, "getDerivedStateFromProps", {
|
|
|
175
174
|
value: function value(props, state) {
|
|
176
175
|
var value = props.value,
|
|
177
176
|
dataSource = props.dataSource,
|
|
177
|
+
descriptionKey = props.descriptionKey,
|
|
178
178
|
idKey = props.idKey,
|
|
179
179
|
selectFirstOnEnter = props.selectFirstOnEnter,
|
|
180
|
-
descriptionKey = props.descriptionKey,
|
|
181
180
|
remoteSearch = props.remoteSearch,
|
|
182
181
|
undigitable = props.undigitable;
|
|
183
182
|
var current = null;
|
|
184
183
|
|
|
185
|
-
if (value !== state.valueFromProps) {
|
|
184
|
+
if (value !== state.valueFromProps && dataSource.length > 0) {
|
|
186
185
|
if (value !== null) {
|
|
187
186
|
current = dataSource.find(function (i) {
|
|
188
187
|
return i[idKey].toString().toLowerCase() === value.toString().toLowerCase();
|
|
@@ -230,10 +229,11 @@ var _initialiseProps = function _initialiseProps() {
|
|
|
230
229
|
enumerable: true,
|
|
231
230
|
writable: true,
|
|
232
231
|
value: function value(event) {
|
|
233
|
-
var selectWrapper = _this3.selectWrapper
|
|
232
|
+
var selectWrapper = _this3.selectWrapper,
|
|
233
|
+
dropdownRef = _this3.dropdownRef;
|
|
234
234
|
var target = event.target;
|
|
235
235
|
|
|
236
|
-
if (target !== selectWrapper && !selectWrapper.contains(target)) {
|
|
236
|
+
if (target !== selectWrapper && !selectWrapper.contains(target) && dropdownRef.current && !dropdownRef.current.contains(target)) {
|
|
237
237
|
_this3.setState({
|
|
238
238
|
opened: false
|
|
239
239
|
});
|
|
@@ -293,18 +293,11 @@ var _initialiseProps = function _initialiseProps() {
|
|
|
293
293
|
enumerable: true,
|
|
294
294
|
writable: true,
|
|
295
295
|
value: function value(selected) {
|
|
296
|
-
var
|
|
297
|
-
onChange = _this3$props2.onChange,
|
|
298
|
-
idKey = _this3$props2.idKey,
|
|
299
|
-
name = _this3$props2.name;
|
|
296
|
+
var onChange = _this3.props.onChange;
|
|
300
297
|
|
|
301
298
|
if (onChange) {
|
|
302
|
-
var event =
|
|
303
|
-
|
|
304
|
-
name: name,
|
|
305
|
-
value: selected ? selected[idKey] : undefined
|
|
306
|
-
}
|
|
307
|
-
};
|
|
299
|
+
var event = _this3.getSelectEvent(selected);
|
|
300
|
+
|
|
308
301
|
onChange(event);
|
|
309
302
|
}
|
|
310
303
|
}
|
|
@@ -364,9 +357,15 @@ var _initialiseProps = function _initialiseProps() {
|
|
|
364
357
|
configurable: true,
|
|
365
358
|
enumerable: true,
|
|
366
359
|
writable: true,
|
|
367
|
-
value: function value(
|
|
360
|
+
value: function value(selected) {
|
|
368
361
|
var onBlur = _this3.props.onBlur;
|
|
369
|
-
|
|
362
|
+
|
|
363
|
+
if (onBlur) {
|
|
364
|
+
var event = _this3.getSelectEvent(selected);
|
|
365
|
+
|
|
366
|
+
onBlur(event);
|
|
367
|
+
}
|
|
368
|
+
|
|
370
369
|
if (!_this3.state.insideComponent) _this3.setState({
|
|
371
370
|
opened: false,
|
|
372
371
|
isTyping: false
|
|
@@ -378,9 +377,9 @@ var _initialiseProps = function _initialiseProps() {
|
|
|
378
377
|
enumerable: true,
|
|
379
378
|
writable: true,
|
|
380
379
|
value: function value(e) {
|
|
381
|
-
var _this3$
|
|
382
|
-
dataSource = _this3$
|
|
383
|
-
idKey = _this3$
|
|
380
|
+
var _this3$props2 = _this3.props,
|
|
381
|
+
dataSource = _this3$props2.dataSource,
|
|
382
|
+
idKey = _this3$props2.idKey;
|
|
384
383
|
var _this3$state = _this3.state,
|
|
385
384
|
selected = _this3$state.selected,
|
|
386
385
|
isTyping = _this3$state.isTyping;
|
|
@@ -389,12 +388,12 @@ var _initialiseProps = function _initialiseProps() {
|
|
|
389
388
|
e.preventDefault();
|
|
390
389
|
|
|
391
390
|
_this3.onSelect(selected);
|
|
392
|
-
} else if ([constants.keyCodes.
|
|
391
|
+
} else if ([constants.keyCodes.ARROW_UP, constants.keyCodes.ARROW_DOWN].includes(e.keyCode)) {
|
|
393
392
|
var index = dataSource.findIndex(function (d) {
|
|
394
393
|
return d[idKey] === selected[idKey];
|
|
395
394
|
});
|
|
396
395
|
|
|
397
|
-
if (e.keyCode === constants.keyCodes.
|
|
396
|
+
if (e.keyCode === constants.keyCodes.ARROW_DOWN) {
|
|
398
397
|
index = index === dataSource.length - 1 ? 0 : index + 1;
|
|
399
398
|
} else {
|
|
400
399
|
index = index === 0 ? dataSource.length - 1 : index - 1;
|
|
@@ -421,6 +420,22 @@ var _initialiseProps = function _initialiseProps() {
|
|
|
421
420
|
});
|
|
422
421
|
}
|
|
423
422
|
});
|
|
423
|
+
Object.defineProperty(this, "getSelectEvent", {
|
|
424
|
+
configurable: true,
|
|
425
|
+
enumerable: true,
|
|
426
|
+
writable: true,
|
|
427
|
+
value: function value(selected) {
|
|
428
|
+
var _this3$props3 = _this3.props,
|
|
429
|
+
idKey = _this3$props3.idKey,
|
|
430
|
+
name = _this3$props3.name;
|
|
431
|
+
return {
|
|
432
|
+
target: {
|
|
433
|
+
name: name,
|
|
434
|
+
value: selected ? selected[idKey] : undefined
|
|
435
|
+
}
|
|
436
|
+
};
|
|
437
|
+
}
|
|
438
|
+
});
|
|
424
439
|
Object.defineProperty(this, "setOnDenied", {
|
|
425
440
|
configurable: true,
|
|
426
441
|
enumerable: true,
|
|
@@ -7,9 +7,10 @@ exports.PARA_ENGANAR_O_ESLINT_JA_QUE_TENHO_SO_UMA_CONSTANTE = exports.keyCodes =
|
|
|
7
7
|
var keyCodes = {
|
|
8
8
|
TAB: 9,
|
|
9
9
|
ENTER: 13,
|
|
10
|
-
ARROW_UP:
|
|
11
|
-
ARROW_DOWN:
|
|
12
|
-
BACKSPACE: 8
|
|
10
|
+
ARROW_UP: 38,
|
|
11
|
+
ARROW_DOWN: 40,
|
|
12
|
+
BACKSPACE: 8,
|
|
13
|
+
F: 70
|
|
13
14
|
};
|
|
14
15
|
exports.keyCodes = keyCodes;
|
|
15
16
|
var PARA_ENGANAR_O_ESLINT_JA_QUE_TENHO_SO_UMA_CONSTANTE = 1;
|
|
@@ -33,6 +33,8 @@ 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
|
+
|
|
36
38
|
var hasTooltip = function hasTooltip(_ref) {
|
|
37
39
|
var tooltip = _ref.tooltip;
|
|
38
40
|
return tooltip;
|
|
@@ -45,38 +47,37 @@ var getDisplayName = function getDisplayName(WrappedComponent) {
|
|
|
45
47
|
var withTooltip = function withTooltip(WrappedComponent) {
|
|
46
48
|
var EnhancedComponent = function EnhancedComponent(props) {
|
|
47
49
|
var tooltip = props.tooltip,
|
|
48
|
-
tooltipPosition = props.tooltipPosition,
|
|
49
50
|
tooltipWidth = props.tooltipWidth,
|
|
50
51
|
space = props.space;
|
|
51
52
|
|
|
52
|
-
var _useState = (0, _react.useState)(
|
|
53
|
+
var _useState = (0, _react.useState)(props.tooltipPosition),
|
|
53
54
|
_useState2 = _slicedToArray(_useState, 2),
|
|
54
|
-
|
|
55
|
-
|
|
55
|
+
tooltipPosition = _useState2[0],
|
|
56
|
+
setTooltipPosition = _useState2[1];
|
|
56
57
|
|
|
57
|
-
var _useState3 = (0, _react.useState)(
|
|
58
|
-
width: tooltipWidth,
|
|
59
|
-
height: undefined
|
|
60
|
-
}),
|
|
58
|
+
var _useState3 = (0, _react.useState)(''),
|
|
61
59
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
62
|
-
|
|
63
|
-
|
|
60
|
+
tooltipStyle = _useState4[0],
|
|
61
|
+
setTooltipStyle = _useState4[1];
|
|
64
62
|
|
|
65
|
-
var _useState5 = (0, _react.useState)(
|
|
63
|
+
var _useState5 = (0, _react.useState)(false),
|
|
66
64
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
67
|
-
|
|
68
|
-
|
|
65
|
+
showTooltip = _useState6[0],
|
|
66
|
+
setShowTooltip = _useState6[1];
|
|
69
67
|
|
|
70
|
-
var _useState7 = (0, _react.useState)(
|
|
68
|
+
var _useState7 = (0, _react.useState)({
|
|
69
|
+
width: tooltipWidth,
|
|
70
|
+
height: TOOLTIP_INITIAL_HEIGHT
|
|
71
|
+
}),
|
|
71
72
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
72
|
-
|
|
73
|
-
|
|
73
|
+
tooltipDimensions = _useState8[0],
|
|
74
|
+
setTooltipDimensions = _useState8[1];
|
|
74
75
|
|
|
75
|
-
var
|
|
76
|
-
var
|
|
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
|
};
|
|
@@ -85,58 +86,24 @@ var withTooltip = function withTooltip(WrappedComponent) {
|
|
|
85
86
|
setShowTooltip(false);
|
|
86
87
|
};
|
|
87
88
|
|
|
88
|
-
var
|
|
89
|
-
|
|
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);
|
|
89
|
+
var onAnyScroll = function onAnyScroll() {
|
|
90
|
+
setShowTooltip(false);
|
|
114
91
|
};
|
|
115
92
|
|
|
116
93
|
(0, _react.useEffect)(function () {
|
|
117
94
|
if (hasTooltip(props)) {
|
|
118
95
|
document.addEventListener('mouseover', onMouseOver);
|
|
96
|
+
document.addEventListener('scroll', onAnyScroll, true);
|
|
119
97
|
|
|
120
98
|
if (targetElement && targetElement.current) {
|
|
121
99
|
targetElement.current.addEventListener('mouseout', onMouseOut);
|
|
122
100
|
}
|
|
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
|
-
}
|
|
131
101
|
}
|
|
132
102
|
|
|
133
103
|
return function () {
|
|
134
104
|
if (hasTooltip(props)) {
|
|
135
105
|
document.removeEventListener('mouseover', onMouseOver);
|
|
136
|
-
|
|
137
|
-
if (scrollableParent && scrollableParent.current) {
|
|
138
|
-
scrollableParent.current.removeEventListener('scroll', onParentScroll);
|
|
139
|
-
}
|
|
106
|
+
document.removeEventListener('scroll', onAnyScroll, true);
|
|
140
107
|
|
|
141
108
|
if (targetElement && targetElement.current) {
|
|
142
109
|
targetElement.current.removeEventListener('mouseout', onMouseOut);
|
|
@@ -144,39 +111,76 @@ var withTooltip = function withTooltip(WrappedComponent) {
|
|
|
144
111
|
}
|
|
145
112
|
};
|
|
146
113
|
}, []);
|
|
114
|
+
(0, _react.useEffect)(function () {
|
|
115
|
+
if (targetElement.current && tooltipElement.current) {
|
|
116
|
+
var width = tooltipDimensions.width,
|
|
117
|
+
height = tooltipDimensions.height;
|
|
118
|
+
var targetDimensions = targetElement.current.getBoundingClientRect();
|
|
119
|
+
var targetVerticalCenter = (targetDimensions.top + targetDimensions.bottom) / 2;
|
|
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);
|
|
124
|
+
style += "; left: ".concat(Math.max(space, left), "px");
|
|
125
|
+
|
|
126
|
+
switch (tooltipPosition) {
|
|
127
|
+
case 'top':
|
|
128
|
+
if (targetDimensions.top < height) {
|
|
129
|
+
setTooltipPosition('bottom');
|
|
130
|
+
} else {
|
|
131
|
+
style += "; top: ".concat(targetDimensions.top + window.scrollY - height - 5, "px");
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
break;
|
|
135
|
+
|
|
136
|
+
case 'bottom':
|
|
137
|
+
if (window.innerHeight - targetDimensions.bottom < height) {
|
|
138
|
+
setTooltipPosition('top');
|
|
139
|
+
} else {
|
|
140
|
+
style += "; top: ".concat(targetDimensions.top + window.scrollY + targetDimensions.height + 5, "px");
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
break;
|
|
144
|
+
|
|
145
|
+
case 'left':
|
|
146
|
+
if (targetDimensions.left < tooltipClientWidth) {
|
|
147
|
+
setTooltipPosition('right');
|
|
148
|
+
} else {
|
|
149
|
+
style += "; top: ".concat(targetVerticalCenter + window.scrollY - height / 2, "px");
|
|
150
|
+
style += "; left: ".concat(targetDimensions.left - tooltipClientWidth - 6, "px");
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
break;
|
|
154
|
+
|
|
155
|
+
case 'right':
|
|
156
|
+
if (window.innerWidth - targetDimensions.right < tooltipClientWidth) {
|
|
157
|
+
setTooltipPosition('left');
|
|
158
|
+
} else {
|
|
159
|
+
style += "; top: ".concat(targetVerticalCenter + window.scrollY - height / 2, "px");
|
|
160
|
+
style += "; left: ".concat(targetDimensions.left + targetDimensions.width + 5, "px");
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
break;
|
|
164
|
+
|
|
165
|
+
default:
|
|
166
|
+
style += '';
|
|
167
|
+
}
|
|
147
168
|
|
|
148
|
-
|
|
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
|
+
setTooltipStyle(style);
|
|
169
170
|
}
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
171
|
+
}, [tooltipDimensions, tooltipElement.current, targetElement.current, tooltipPosition]);
|
|
172
|
+
(0, _react.useEffect)(function () {
|
|
173
|
+
setTooltipPosition(props.tooltipPosition);
|
|
174
|
+
}, [window.scrollY, window.scrollX, window.innerWidth]);
|
|
173
175
|
|
|
174
176
|
var getTooltip = function getTooltip() {
|
|
175
177
|
if (tooltip) {
|
|
176
178
|
return /*#__PURE__*/_react["default"].createElement(_tooltip["default"], {
|
|
177
179
|
text: tooltip,
|
|
178
|
-
|
|
180
|
+
tooltipRef: tooltipElement,
|
|
181
|
+
style: tooltipStyle,
|
|
179
182
|
className: tooltipPosition,
|
|
183
|
+
tooltipDimensions: tooltipDimensions,
|
|
180
184
|
handlerSetDimensions: setTooltipDimensions
|
|
181
185
|
});
|
|
182
186
|
}
|
|
@@ -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
|
|
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);
|