linear-react-components-ui 0.4.76-beta.12 → 0.4.76-beta.13
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 +33 -0
- package/lib/assets/styles/button.scss +17 -10
- package/lib/assets/styles/checkbox.scss +92 -70
- package/lib/assets/styles/commons.scss +26 -0
- package/lib/assets/styles/drawers.scss +22 -6
- package/lib/assets/styles/dropdown.scss +28 -2
- package/lib/assets/styles/effects.scss +12 -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/multiSelect.scss +105 -0
- package/lib/assets/styles/panel.scss +5 -2
- 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 +1 -0
- package/lib/assets/styles/skeleton.scss +48 -0
- package/lib/assets/styles/table.scss +14 -5
- package/lib/assets/styles/tabs.scss +79 -43
- package/lib/assets/styles/treeview.scss +32 -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/form/Field.js +2 -0
- package/lib/form/FieldNumber.js +10 -2
- package/lib/form/FieldPeriod.js +100 -0
- package/lib/form/helpers.js +20 -1
- package/lib/form/index.js +207 -224
- package/lib/form/withFieldHOC.js +5 -1
- package/lib/form/withFormSecurity.js +106 -0
- package/lib/icons/helper.js +16 -0
- package/lib/inputs/base/InputTextBase.js +10 -5
- package/lib/inputs/base/helpers.js +2 -1
- 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/imaskHOC.js +2 -1
- 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/select/Dropdown.js +4 -4
- package/lib/inputs/select/index.js +26 -3
- package/lib/inputs/select/multiple/index.js +9 -7
- package/lib/inputs/select/simple/index.js +30 -18
- package/lib/internals/withTooltip.js +85 -81
- package/lib/labels/DefaultLabel.js +7 -4
- package/lib/list/Item.js +3 -3
- package/lib/list/index.js +20 -10
- package/lib/list/list.spec.js +129 -85
- package/lib/menus/float/MenuItem.js +25 -8
- package/lib/menus/sidenav/NavMenuItem.js +2 -2
- package/lib/menus/sidenav/index.js +7 -3
- package/lib/menus/sidenav/popup_menu_search/index.js +1 -1
- package/lib/panel/Content.js +11 -4
- 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/HeaderColumn.js +24 -3
- package/lib/table/Row.js +7 -3
- package/lib/table/RowColumn.js +22 -3
- package/lib/table/index.js +11 -4
- package/lib/tabs/DropdownItems.js +84 -0
- package/lib/tabs/Menu.js +18 -5
- 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 +348 -49
- package/lib/treeview/index.js +457 -36
- package/package.json +9 -8
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
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
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
|
|
12
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
|
+
|
|
14
|
+
var _buttons = _interopRequireDefault(require("./../buttons"));
|
|
15
|
+
|
|
16
|
+
var _list = _interopRequireWildcard(require("../list"));
|
|
17
|
+
|
|
18
|
+
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); }
|
|
19
|
+
|
|
20
|
+
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
|
+
|
|
22
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
23
|
+
|
|
24
|
+
var DropdownItems = function DropdownItems(_ref) {
|
|
25
|
+
var dropdownPanels = _ref.dropdownPanels,
|
|
26
|
+
handlerRemovePanel = _ref.handlerRemovePanel,
|
|
27
|
+
tabMenuSize = _ref.tabMenuSize,
|
|
28
|
+
handlerClick = _ref.handlerClick;
|
|
29
|
+
return dropdownPanels.length > 0 && /*#__PURE__*/_react["default"].createElement(_buttons["default"], {
|
|
30
|
+
dropdown: true,
|
|
31
|
+
dropdownAlign: "right",
|
|
32
|
+
transparent: true,
|
|
33
|
+
boxShadow: false,
|
|
34
|
+
size: "large",
|
|
35
|
+
customClass: "dropdownbutton"
|
|
36
|
+
}, /*#__PURE__*/_react["default"].createElement(_list["default"], {
|
|
37
|
+
customClass: "dropdown-hide-tabs"
|
|
38
|
+
}, dropdownPanels.map(function (panel, index) {
|
|
39
|
+
var _panel$props = panel.props,
|
|
40
|
+
id = _panel$props.id,
|
|
41
|
+
title = _panel$props.title,
|
|
42
|
+
closeable = _panel$props.closeable,
|
|
43
|
+
iconAlign = _panel$props.iconAlign,
|
|
44
|
+
icon = _panel$props.icon,
|
|
45
|
+
iconName = _panel$props.iconName,
|
|
46
|
+
disabled = _panel$props.disabled;
|
|
47
|
+
return /*#__PURE__*/_react["default"].createElement(_list.ListItem, {
|
|
48
|
+
key: id
|
|
49
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
50
|
+
className: "menuitem"
|
|
51
|
+
}, /*#__PURE__*/_react["default"].createElement(_buttons["default"], {
|
|
52
|
+
className: "btn menubutton",
|
|
53
|
+
boxShadow: false,
|
|
54
|
+
onClick: function onClick() {
|
|
55
|
+
return handlerClick(id);
|
|
56
|
+
},
|
|
57
|
+
iconAlign: iconAlign,
|
|
58
|
+
iconName: iconName,
|
|
59
|
+
icon: icon,
|
|
60
|
+
disabled: disabled,
|
|
61
|
+
label: title,
|
|
62
|
+
size: tabMenuSize,
|
|
63
|
+
transparent: true
|
|
64
|
+
}), closeable && /*#__PURE__*/_react["default"].createElement("button", {
|
|
65
|
+
className: "closepanel",
|
|
66
|
+
onClick: function onClick() {
|
|
67
|
+
handlerRemovePanel(id, index, true);
|
|
68
|
+
}
|
|
69
|
+
})));
|
|
70
|
+
})));
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
DropdownItems.propTypes = {
|
|
74
|
+
dropdownPanels: _propTypes["default"].arrayOf(_propTypes["default"].element).isRequired,
|
|
75
|
+
handlerClick: _propTypes["default"].func.isRequired,
|
|
76
|
+
handlerRemovePanel: _propTypes["default"].func,
|
|
77
|
+
tabMenuSize: _propTypes["default"].string
|
|
78
|
+
};
|
|
79
|
+
DropdownItems.defaultProps = {
|
|
80
|
+
handlerRemovePanel: null,
|
|
81
|
+
tabMenuSize: 'medium'
|
|
82
|
+
};
|
|
83
|
+
var _default = DropdownItems;
|
|
84
|
+
exports["default"] = _default;
|
package/lib/tabs/Menu.js
CHANGED
|
@@ -11,15 +11,23 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
11
11
|
|
|
12
12
|
var _MenuItems = _interopRequireDefault(require("./MenuItems"));
|
|
13
13
|
|
|
14
|
+
var _DropdownItems = _interopRequireDefault(require("./DropdownItems"));
|
|
15
|
+
|
|
14
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
15
17
|
|
|
16
18
|
var Menu = function Menu(props) {
|
|
17
19
|
var toolbar = props.toolbar,
|
|
18
20
|
customClassForToolBar = props.customClassForToolBar,
|
|
19
|
-
menuRef = props.menuRef
|
|
21
|
+
menuRef = props.menuRef,
|
|
22
|
+
toolBarRef = props.toolBarRef;
|
|
20
23
|
|
|
21
24
|
if (!toolbar) {
|
|
22
|
-
return /*#__PURE__*/_react["default"].createElement(
|
|
25
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
26
|
+
className: "menucontainer",
|
|
27
|
+
ref: function ref(r) {
|
|
28
|
+
menuRef(r);
|
|
29
|
+
}
|
|
30
|
+
}, /*#__PURE__*/_react["default"].createElement(_MenuItems["default"], props), /*#__PURE__*/_react["default"].createElement(_DropdownItems["default"], props));
|
|
23
31
|
}
|
|
24
32
|
|
|
25
33
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
@@ -27,18 +35,23 @@ var Menu = function Menu(props) {
|
|
|
27
35
|
ref: function ref(r) {
|
|
28
36
|
menuRef(r);
|
|
29
37
|
}
|
|
30
|
-
}, /*#__PURE__*/_react["default"].createElement(_MenuItems["default"], props), /*#__PURE__*/_react["default"].cloneElement(toolbar, {
|
|
31
|
-
customClass: "menubar ".concat(customClassForToolBar)
|
|
38
|
+
}, /*#__PURE__*/_react["default"].createElement(_MenuItems["default"], props), /*#__PURE__*/_react["default"].createElement(_DropdownItems["default"], props), /*#__PURE__*/_react["default"].cloneElement(toolbar, {
|
|
39
|
+
customClass: "menubar ".concat(customClassForToolBar),
|
|
40
|
+
innerRef: toolBarRef ? function (r) {
|
|
41
|
+
toolBarRef(r);
|
|
42
|
+
} : undefined
|
|
32
43
|
}));
|
|
33
44
|
};
|
|
34
45
|
|
|
35
46
|
Menu.propTypes = {
|
|
36
47
|
toolbar: _propTypes["default"].object,
|
|
37
48
|
customClassForToolBar: _propTypes["default"].string,
|
|
38
|
-
menuRef: _propTypes["default"].func.isRequired
|
|
49
|
+
menuRef: _propTypes["default"].func.isRequired,
|
|
50
|
+
toolBarRef: _propTypes["default"].func
|
|
39
51
|
};
|
|
40
52
|
Menu.defaultProps = {
|
|
41
53
|
toolbar: undefined,
|
|
54
|
+
toolBarRef: null,
|
|
42
55
|
customClassForToolBar: ''
|
|
43
56
|
};
|
|
44
57
|
var _default = Menu;
|
package/lib/tabs/MenuItems.js
CHANGED
|
@@ -24,17 +24,18 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
24
24
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
25
25
|
|
|
26
26
|
var MenuItems = function MenuItems(_ref) {
|
|
27
|
-
var
|
|
28
|
-
selectedTabId = _ref.selectedTabId,
|
|
27
|
+
var selectedTabId = _ref.selectedTabId,
|
|
29
28
|
handlerClick = _ref.handlerClick,
|
|
30
29
|
handlerRemovePanel = _ref.handlerRemovePanel,
|
|
31
30
|
tabMenuAlign = _ref.tabMenuAlign,
|
|
32
31
|
firstTabIdent = _ref.firstTabIdent,
|
|
33
|
-
tabMenuSize = _ref.tabMenuSize
|
|
32
|
+
tabMenuSize = _ref.tabMenuSize,
|
|
33
|
+
currentPanels = _ref.currentPanels,
|
|
34
|
+
tabWidth = _ref.tabWidth;
|
|
34
35
|
return /*#__PURE__*/_react["default"].createElement("ul", {
|
|
35
36
|
className: "menu ".concat(firstTabIdent && '-firsttabident'),
|
|
36
37
|
style: helpers.menuStyles(tabMenuAlign)
|
|
37
|
-
},
|
|
38
|
+
}, currentPanels.map(function (panel, index) {
|
|
38
39
|
var _panel$props = panel.props,
|
|
39
40
|
id = _panel$props.id,
|
|
40
41
|
title = _panel$props.title,
|
|
@@ -50,6 +51,9 @@ var MenuItems = function MenuItems(_ref) {
|
|
|
50
51
|
var onDenied = (0, _permissionValidations.actionsOnPermissionDenied)(permissionAttr, helpers.onDeniedOptions);
|
|
51
52
|
return onDenied.unvisible ? null : /*#__PURE__*/_react["default"].createElement("li", {
|
|
52
53
|
key: id,
|
|
54
|
+
style: {
|
|
55
|
+
width: tabWidth
|
|
56
|
+
},
|
|
53
57
|
className: "menuitem ".concat(selectedTabId === id && 'selected')
|
|
54
58
|
}, /*#__PURE__*/_react["default"].createElement(_buttons["default"], {
|
|
55
59
|
className: "btn menubutton",
|
|
@@ -63,10 +67,10 @@ var MenuItems = function MenuItems(_ref) {
|
|
|
63
67
|
disabled: disabled || onDenied.disabled,
|
|
64
68
|
label: title,
|
|
65
69
|
size: tabMenuSize,
|
|
66
|
-
tooltip: tooltip,
|
|
70
|
+
tooltip: tooltip || title,
|
|
67
71
|
tooltipPosition: tooltipPosition,
|
|
68
72
|
tooltipWidth: tooltipWidth
|
|
69
|
-
}), closeable &&
|
|
73
|
+
}), closeable && currentPanels.length > 1 && /*#__PURE__*/_react["default"].createElement("button", {
|
|
70
74
|
className: "closepanel",
|
|
71
75
|
onClick: function onClick() {
|
|
72
76
|
handlerRemovePanel(id, index);
|
|
@@ -76,19 +80,21 @@ var MenuItems = function MenuItems(_ref) {
|
|
|
76
80
|
};
|
|
77
81
|
|
|
78
82
|
MenuItems.propTypes = {
|
|
79
|
-
|
|
83
|
+
currentPanels: _propTypes["default"].arrayOf(_propTypes["default"].element).isRequired,
|
|
80
84
|
selectedTabId: _propTypes["default"].string,
|
|
81
85
|
handlerClick: _propTypes["default"].func.isRequired,
|
|
82
86
|
handlerRemovePanel: _propTypes["default"].func,
|
|
83
87
|
tabMenuAlign: _propTypes["default"].string.isRequired,
|
|
84
88
|
tabMenuSize: _propTypes["default"].string,
|
|
85
|
-
firstTabIdent: _propTypes["default"].bool
|
|
89
|
+
firstTabIdent: _propTypes["default"].bool,
|
|
90
|
+
tabWidth: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number])
|
|
86
91
|
};
|
|
87
92
|
MenuItems.defaultProps = {
|
|
88
93
|
handlerRemovePanel: null,
|
|
89
94
|
selectedTabId: '',
|
|
90
95
|
firstTabIdent: false,
|
|
91
|
-
tabMenuSize: 'medium'
|
|
96
|
+
tabMenuSize: 'medium',
|
|
97
|
+
tabWidth: 'auto'
|
|
92
98
|
};
|
|
93
99
|
var _default = MenuItems;
|
|
94
100
|
exports["default"] = _default;
|
package/lib/tabs/Panel.js
CHANGED
|
@@ -110,8 +110,7 @@ Panel.defaultProps = {
|
|
|
110
110
|
iconAlign: 'left',
|
|
111
111
|
customClass: '',
|
|
112
112
|
children: undefined,
|
|
113
|
-
|
|
114
|
-
tooltipPosition: 'top',
|
|
113
|
+
tooltipPosition: 'bottom',
|
|
115
114
|
tooltipWidth: 'auto',
|
|
116
115
|
onEndReached: undefined,
|
|
117
116
|
onEndReachedThreshold: 0.1,
|
|
@@ -131,7 +130,6 @@ Panel.propTypes = {
|
|
|
131
130
|
icon: _propTypes["default"].instanceOf(Object),
|
|
132
131
|
iconName: _propTypes["default"].string,
|
|
133
132
|
iconAlign: _propTypes["default"].string,
|
|
134
|
-
tooltip: _propTypes["default"].string,
|
|
135
133
|
tooltipPosition: _propTypes["default"].string,
|
|
136
134
|
tooltipWidth: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
|
|
137
135
|
onEndReached: _propTypes["default"].func,
|
package/lib/tabs/index.js
CHANGED
|
@@ -33,6 +33,14 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
33
33
|
|
|
34
34
|
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); }
|
|
35
35
|
|
|
36
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
37
|
+
|
|
38
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
39
|
+
|
|
40
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
41
|
+
|
|
42
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
43
|
+
|
|
36
44
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
37
45
|
|
|
38
46
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
@@ -45,64 +53,185 @@ function _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "und
|
|
|
45
53
|
|
|
46
54
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
47
55
|
|
|
56
|
+
var DROPDOWN_WIDTH = 26;
|
|
57
|
+
|
|
48
58
|
var Tabs = function Tabs(props) {
|
|
49
59
|
var handlerTabClick = props.handlerTabClick,
|
|
50
60
|
children = props.children,
|
|
51
61
|
handlerCloseTab = props.handlerCloseTab,
|
|
52
62
|
tabMenuPosition = props.tabMenuPosition,
|
|
53
63
|
style = props.style,
|
|
54
|
-
selectedTab = props.selectedTab
|
|
64
|
+
selectedTab = props.selectedTab,
|
|
65
|
+
toolbar = props.toolbar,
|
|
66
|
+
tabsWidthOnExceedCount = props.tabsWidthOnExceedCount;
|
|
55
67
|
|
|
56
68
|
var _useState = (0, _react.useState)((0, _tabHelpers.buildPanels)(children) || []),
|
|
57
69
|
_useState2 = _slicedToArray(_useState, 2),
|
|
58
70
|
panels = _useState2[0],
|
|
59
71
|
setPanels = _useState2[1];
|
|
60
72
|
|
|
61
|
-
var _useState3 = (0, _react.useState)(
|
|
73
|
+
var _useState3 = (0, _react.useState)([]),
|
|
62
74
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
63
|
-
|
|
64
|
-
|
|
75
|
+
currentPanels = _useState4[0],
|
|
76
|
+
setCurrentPanels = _useState4[1];
|
|
65
77
|
|
|
66
|
-
var _useState5 = (0, _react.useState)(
|
|
67
|
-
_useState6 = _slicedToArray(_useState5,
|
|
68
|
-
|
|
78
|
+
var _useState5 = (0, _react.useState)([]),
|
|
79
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
80
|
+
dropdownPanels = _useState6[0],
|
|
81
|
+
setDropdownPanels = _useState6[1];
|
|
69
82
|
|
|
70
|
-
var _useState7 = (0, _react.useState)(
|
|
83
|
+
var _useState7 = (0, _react.useState)(selectedTab || panels[0].props.id),
|
|
71
84
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
72
|
-
|
|
73
|
-
|
|
85
|
+
selectedTabId = _useState8[0],
|
|
86
|
+
setSelectedTabId = _useState8[1];
|
|
87
|
+
|
|
88
|
+
var _useState9 = (0, _react.useState)(''),
|
|
89
|
+
_useState10 = _slicedToArray(_useState9, 1),
|
|
90
|
+
customClass = _useState10[0];
|
|
91
|
+
|
|
92
|
+
var _useState11 = (0, _react.useState)(undefined),
|
|
93
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
|
94
|
+
contentHeight = _useState12[0],
|
|
95
|
+
setContentHeight = _useState12[1];
|
|
96
|
+
|
|
97
|
+
var _useState13 = (0, _react.useState)(0),
|
|
98
|
+
_useState14 = _slicedToArray(_useState13, 2),
|
|
99
|
+
tabsContentWidth = _useState14[0],
|
|
100
|
+
setTabsContentWidth = _useState14[1];
|
|
101
|
+
|
|
102
|
+
var _useState15 = (0, _react.useState)(false),
|
|
103
|
+
_useState16 = _slicedToArray(_useState15, 2),
|
|
104
|
+
hasMenuAttributes = _useState16[0],
|
|
105
|
+
setHasMenuAttributes = _useState16[1];
|
|
106
|
+
|
|
107
|
+
var _useState17 = (0, _react.useState)('auto'),
|
|
108
|
+
_useState18 = _slicedToArray(_useState17, 2),
|
|
109
|
+
tabWidth = _useState18[0],
|
|
110
|
+
setTabWidth = _useState18[1];
|
|
111
|
+
|
|
112
|
+
var componentRef = (0, _react.useRef)(null);
|
|
113
|
+
|
|
114
|
+
var _menuRef = (0, _react.useRef)(null);
|
|
115
|
+
|
|
116
|
+
var _toolBarRef = (0, _react.useRef)(null);
|
|
117
|
+
|
|
118
|
+
var getTabListWidth = function getTabListWidth() {
|
|
119
|
+
var tabMenu = _menuRef.current.children[0];
|
|
120
|
+
|
|
121
|
+
var tabList = _toConsumableArray(tabMenu.children);
|
|
122
|
+
|
|
123
|
+
var tabsListWidth = tabList.reduce(function (total, tab) {
|
|
124
|
+
return total + tab.clientWidth;
|
|
125
|
+
}, 0);
|
|
126
|
+
return tabsListWidth;
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
var getMenuAttributes = function getMenuAttributes() {
|
|
130
|
+
var menuSize = _menuRef.current.clientWidth;
|
|
131
|
+
var toolbarSize = toolbar && _toolBarRef.current ? _toolBarRef.current.clientWidth : 0;
|
|
132
|
+
var contentWidth = (toolbar ? menuSize - toolbarSize : menuSize) - DROPDOWN_WIDTH;
|
|
133
|
+
setTabsContentWidth(contentWidth);
|
|
134
|
+
};
|
|
74
135
|
|
|
75
|
-
var
|
|
136
|
+
var getTabsList = function getTabsList() {
|
|
137
|
+
var tabsListWidth = getTabListWidth();
|
|
76
138
|
|
|
77
|
-
|
|
139
|
+
var newDropdownPanels = _toConsumableArray(dropdownPanels);
|
|
140
|
+
|
|
141
|
+
var newCurrentPanels = _toConsumableArray(panels);
|
|
142
|
+
|
|
143
|
+
if (newDropdownPanels.length) {
|
|
144
|
+
var newDropdownPanelsIds = newDropdownPanels.map(function (dd) {
|
|
145
|
+
return dd.props.id;
|
|
146
|
+
});
|
|
147
|
+
newCurrentPanels = newCurrentPanels.filter(function (tab) {
|
|
148
|
+
return !newDropdownPanelsIds.includes(tab.props.id);
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
if (tabsListWidth > tabsContentWidth) {
|
|
153
|
+
var lastPanel = newCurrentPanels[newCurrentPanels.length - 1];
|
|
154
|
+
newDropdownPanels.push(lastPanel);
|
|
155
|
+
newCurrentPanels.pop();
|
|
156
|
+
if (tabsWidthOnExceedCount) setTabWidth(tabsWidthOnExceedCount);
|
|
157
|
+
} else if (tabsListWidth + (tabsWidthOnExceedCount || 110) < tabsContentWidth && newDropdownPanels.length) {
|
|
158
|
+
newCurrentPanels.push(newDropdownPanels[0]);
|
|
159
|
+
newDropdownPanels.shift();
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
setCurrentPanels(newCurrentPanels);
|
|
163
|
+
setDropdownPanels(newDropdownPanels);
|
|
164
|
+
};
|
|
78
165
|
|
|
79
166
|
var onMenuClick = function onMenuClick(tabId) {
|
|
80
|
-
|
|
167
|
+
var includedInDropdown = dropdownPanels.filter(function (item) {
|
|
168
|
+
return item.props.id === tabId;
|
|
169
|
+
});
|
|
170
|
+
|
|
171
|
+
if (includedInDropdown.length > 0 && getTabListWidth() > 0) {
|
|
172
|
+
var newDropdownPanels = dropdownPanels.filter(function (item) {
|
|
173
|
+
return item.props.id !== tabId;
|
|
174
|
+
});
|
|
175
|
+
var newPanels = panels.filter(function (item) {
|
|
176
|
+
return item.props.id !== tabId;
|
|
177
|
+
});
|
|
178
|
+
var newCurrentPanels = currentPanels.slice(0, -1);
|
|
179
|
+
newDropdownPanels.push(currentPanels.pop());
|
|
180
|
+
newPanels.unshift(includedInDropdown[0]);
|
|
181
|
+
newCurrentPanels.unshift(includedInDropdown[0]);
|
|
182
|
+
setPanels(newPanels);
|
|
183
|
+
setDropdownPanels(newDropdownPanels);
|
|
184
|
+
setCurrentPanels(newCurrentPanels);
|
|
185
|
+
}
|
|
186
|
+
|
|
81
187
|
if (handlerTabClick) handlerTabClick(tabId);
|
|
188
|
+
setSelectedTabId(tabId);
|
|
82
189
|
};
|
|
83
190
|
|
|
84
191
|
var onRemovePanel = function onRemovePanel(closedPanelId, panelIndex) {
|
|
85
|
-
var
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
192
|
+
var fromDropdownPanels = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
193
|
+
var newSelectedTabId = selectedTabId;
|
|
194
|
+
var remainPanels;
|
|
195
|
+
|
|
196
|
+
if (!fromDropdownPanels) {
|
|
197
|
+
remainPanels = panels.filter(function (panel) {
|
|
198
|
+
return panel.props.id !== closedPanelId;
|
|
199
|
+
});
|
|
200
|
+
newSelectedTabId = selectedTabId === closedPanelId ? remainPanels[panelIndex - (panelIndex === 0 ? 0 : 1)].props.id : selectedTabId;
|
|
201
|
+
setSelectedTabId(newSelectedTabId);
|
|
202
|
+
} else {
|
|
203
|
+
remainPanels = dropdownPanels.filter(function (panel) {
|
|
204
|
+
return panel.props.id !== closedPanelId;
|
|
205
|
+
});
|
|
206
|
+
setDropdownPanels(remainPanels);
|
|
207
|
+
}
|
|
208
|
+
|
|
90
209
|
if (handlerCloseTab) handlerCloseTab(closedPanelId, newSelectedTabId);
|
|
91
210
|
};
|
|
92
211
|
|
|
93
212
|
var onResize = function onResize() {
|
|
94
213
|
if (componentRef.current && _menuRef.current) {
|
|
95
214
|
setContentHeight(componentRef.current.offsetHeight - _menuRef.current.offsetHeight);
|
|
215
|
+
|
|
216
|
+
if (!hasMenuAttributes && _menuRef.current && _menuRef.current.clientWidth > 0) {
|
|
217
|
+
getMenuAttributes();
|
|
218
|
+
setHasMenuAttributes(true);
|
|
219
|
+
}
|
|
96
220
|
}
|
|
97
221
|
};
|
|
98
222
|
|
|
99
223
|
var renderContent = function renderContent() {
|
|
100
224
|
var menu = /*#__PURE__*/_react["default"].createElement(_Menu["default"], _extends({}, props, {
|
|
225
|
+
tabWidth: tabWidth,
|
|
101
226
|
menuRef: function menuRef(ref) {
|
|
102
227
|
_menuRef.current = ref;
|
|
103
228
|
},
|
|
229
|
+
toolBarRef: function toolBarRef(ref) {
|
|
230
|
+
_toolBarRef.current = ref;
|
|
231
|
+
},
|
|
104
232
|
customClass: customClass,
|
|
105
|
-
|
|
233
|
+
currentPanels: currentPanels,
|
|
234
|
+
dropdownPanels: dropdownPanels,
|
|
106
235
|
selectedTabId: selectedTabId,
|
|
107
236
|
handlerClick: onMenuClick,
|
|
108
237
|
handlerRemovePanel: onRemovePanel
|
|
@@ -125,11 +254,14 @@ var Tabs = function Tabs(props) {
|
|
|
125
254
|
return function () {
|
|
126
255
|
return window.removeEventListener('resize', onResize);
|
|
127
256
|
};
|
|
128
|
-
}, []);
|
|
257
|
+
}, [_menuRef.current]);
|
|
129
258
|
(0, _react.useEffect)(function () {
|
|
130
259
|
if (selectedTab) setSelectedTabId(selectedTab);
|
|
131
260
|
if (children) setPanels((0, _tabHelpers.buildPanels)(children));
|
|
132
261
|
}, [selectedTab, children]);
|
|
262
|
+
(0, _react.useEffect)(function () {
|
|
263
|
+
getTabsList();
|
|
264
|
+
}, [panels.length, currentPanels.length, tabsContentWidth]);
|
|
133
265
|
|
|
134
266
|
var getContextValues = function getContextValues() {
|
|
135
267
|
return {
|
|
@@ -159,7 +291,8 @@ Tabs.propTypes = {
|
|
|
159
291
|
children: _propTypes["default"].any.isRequired,
|
|
160
292
|
toolbar: _propTypes["default"].object,
|
|
161
293
|
customClassForToolBar: _propTypes["default"].string,
|
|
162
|
-
style: _propTypes["default"].object
|
|
294
|
+
style: _propTypes["default"].object,
|
|
295
|
+
tabsWidthOnExceedCount: _propTypes["default"].number
|
|
163
296
|
};
|
|
164
297
|
Tabs.defaultProps = {
|
|
165
298
|
selectedTab: null,
|
|
@@ -170,7 +303,8 @@ Tabs.defaultProps = {
|
|
|
170
303
|
handlerCloseTab: null,
|
|
171
304
|
toolbar: undefined,
|
|
172
305
|
customClassForToolBar: '',
|
|
173
|
-
style: {}
|
|
306
|
+
style: {},
|
|
307
|
+
tabsWidthOnExceedCount: 0
|
|
174
308
|
};
|
|
175
309
|
var _default = Tabs;
|
|
176
310
|
exports["default"] = _default;
|
package/lib/tabs/tabs.spec.js
CHANGED
|
@@ -135,7 +135,7 @@ describe('Tabs', function () {
|
|
|
135
135
|
container = _render10.container;
|
|
136
136
|
|
|
137
137
|
expect(container.querySelector('.tabs-component')).toHaveClass('menu-bottom');
|
|
138
|
-
expect(container.querySelector('.tabs-component').lastChild).toHaveClass('
|
|
138
|
+
expect(container.querySelector('.tabs-component').lastChild).toHaveClass('menucontainer');
|
|
139
139
|
});
|
|
140
140
|
it('should apply tabMenuAlign', function () {
|
|
141
141
|
var _render11 = (0, _react2.render)(tabsMockRender({
|
|
@@ -328,7 +328,8 @@ describe('Tabs', function () {
|
|
|
328
328
|
})),
|
|
329
329
|
container = _render23.container;
|
|
330
330
|
|
|
331
|
-
|
|
331
|
+
var noPermissionComponent = container.querySelector('.no-permission-component');
|
|
332
|
+
expect(noPermissionComponent).toBeFalsy();
|
|
332
333
|
});
|
|
333
334
|
it('should check permission and be unavailable', function () {
|
|
334
335
|
Object.defineProperty(window, 'sessionStorage', {
|
|
@@ -336,11 +337,13 @@ describe('Tabs', function () {
|
|
|
336
337
|
});
|
|
337
338
|
|
|
338
339
|
var _render24 = (0, _react2.render)(tabsMockRender({}, {
|
|
339
|
-
permissionAttr: (0, _storageMock.permissionAttrMockUnauthorized)('
|
|
340
|
+
permissionAttr: (0, _storageMock.permissionAttrMockUnauthorized)('hideContent')
|
|
340
341
|
})),
|
|
341
|
-
container = _render24.container;
|
|
342
|
+
container = _render24.container; // debug();
|
|
342
343
|
|
|
343
|
-
|
|
344
|
+
|
|
345
|
+
var noPermissionComponent = container.querySelector('.no-permission-component');
|
|
346
|
+
expect(noPermissionComponent).toBeTruthy();
|
|
344
347
|
});
|
|
345
348
|
});
|
|
346
349
|
});
|
package/lib/toolbar/ButtonBar.js
CHANGED
|
@@ -7,43 +7,49 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports["default"] = void 0;
|
|
9
9
|
|
|
10
|
-
var _react =
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
11
|
|
|
12
12
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
13
|
|
|
14
14
|
var _buttons = _interopRequireWildcard(require("../buttons"));
|
|
15
15
|
|
|
16
|
+
var _helpers = _interopRequireDefault(require("./helpers"));
|
|
17
|
+
|
|
18
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
19
|
+
|
|
16
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); }
|
|
17
21
|
|
|
18
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; }
|
|
19
23
|
|
|
20
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
21
|
-
|
|
22
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); }
|
|
23
25
|
|
|
24
|
-
var getProps = function getProps(props) {
|
|
25
|
-
return _extends({}, props, {
|
|
26
|
-
boxShadow: false,
|
|
27
|
-
customClass: "buttonbar ".concat(props.customClass)
|
|
28
|
-
});
|
|
29
|
-
};
|
|
30
|
-
|
|
31
26
|
var ButtonBar = function ButtonBar(props) {
|
|
27
|
+
var _useContext = (0, _react.useContext)(_helpers["default"]),
|
|
28
|
+
skeletonize = _useContext.skeletonize;
|
|
29
|
+
|
|
30
|
+
var getProps = function getProps() {
|
|
31
|
+
return _extends({}, props, {
|
|
32
|
+
skeletonize: skeletonize,
|
|
33
|
+
boxShadow: false,
|
|
34
|
+
customClass: "buttonbar ".concat(props.customClass)
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
|
|
32
38
|
return {
|
|
33
|
-
"default": /*#__PURE__*/_react["default"].createElement(_buttons["default"], getProps(
|
|
34
|
-
primary: /*#__PURE__*/_react["default"].createElement(_buttons.PrimaryButton, getProps(
|
|
35
|
-
danger: /*#__PURE__*/_react["default"].createElement(_buttons.DangerButton, getProps(
|
|
36
|
-
info: /*#__PURE__*/_react["default"].createElement(_buttons.InfoButton, getProps(
|
|
37
|
-
success: /*#__PURE__*/_react["default"].createElement(_buttons.SuccessButton, getProps(
|
|
38
|
-
warning: /*#__PURE__*/_react["default"].createElement(_buttons.WarningButton, getProps(
|
|
39
|
-
add: /*#__PURE__*/_react["default"].createElement(_buttons.AddButton, getProps(
|
|
40
|
-
cancel: /*#__PURE__*/_react["default"].createElement(_buttons.CancelButton, getProps(
|
|
41
|
-
destroy: /*#__PURE__*/_react["default"].createElement(_buttons.DestroyButton, getProps(
|
|
42
|
-
edit: /*#__PURE__*/_react["default"].createElement(_buttons.EditButton, getProps(
|
|
43
|
-
save: /*#__PURE__*/_react["default"].createElement(_buttons.SaveButton, getProps(
|
|
44
|
-
activate: /*#__PURE__*/_react["default"].createElement(_buttons.ActivateButton, getProps(
|
|
45
|
-
inactivate: /*#__PURE__*/_react["default"].createElement(_buttons.InactivateButton, getProps(
|
|
46
|
-
restore: /*#__PURE__*/_react["default"].createElement(_buttons.RestoreButton, getProps(
|
|
39
|
+
"default": /*#__PURE__*/_react["default"].createElement(_buttons["default"], getProps()),
|
|
40
|
+
primary: /*#__PURE__*/_react["default"].createElement(_buttons.PrimaryButton, getProps()),
|
|
41
|
+
danger: /*#__PURE__*/_react["default"].createElement(_buttons.DangerButton, getProps()),
|
|
42
|
+
info: /*#__PURE__*/_react["default"].createElement(_buttons.InfoButton, getProps()),
|
|
43
|
+
success: /*#__PURE__*/_react["default"].createElement(_buttons.SuccessButton, getProps()),
|
|
44
|
+
warning: /*#__PURE__*/_react["default"].createElement(_buttons.WarningButton, getProps()),
|
|
45
|
+
add: /*#__PURE__*/_react["default"].createElement(_buttons.AddButton, getProps()),
|
|
46
|
+
cancel: /*#__PURE__*/_react["default"].createElement(_buttons.CancelButton, getProps()),
|
|
47
|
+
destroy: /*#__PURE__*/_react["default"].createElement(_buttons.DestroyButton, getProps()),
|
|
48
|
+
edit: /*#__PURE__*/_react["default"].createElement(_buttons.EditButton, getProps()),
|
|
49
|
+
save: /*#__PURE__*/_react["default"].createElement(_buttons.SaveButton, getProps()),
|
|
50
|
+
activate: /*#__PURE__*/_react["default"].createElement(_buttons.ActivateButton, getProps()),
|
|
51
|
+
inactivate: /*#__PURE__*/_react["default"].createElement(_buttons.InactivateButton, getProps()),
|
|
52
|
+
restore: /*#__PURE__*/_react["default"].createElement(_buttons.RestoreButton, getProps())
|
|
47
53
|
}[props.type];
|
|
48
54
|
};
|
|
49
55
|
|