linear-react-components-ui 1.0.17-beta.5 → 1.0.18-beta.0
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/.vscode/settings.json +1 -1
- package/lib/assets/styles/file.scss +9 -1
- package/lib/dialog/form/index.js +8 -4
- package/lib/form/FieldNumber.js +2 -13
- package/lib/form/types.d.ts +0 -2
- package/lib/inputs/base/InputTextBase.js +0 -4
- package/lib/inputs/base/types.d.ts +2 -3
- package/lib/inputs/file/DefaultFile.js +29 -33
- package/lib/inputs/number/BaseNumber.d.ts +1 -1
- package/lib/inputs/number/Currency.d.ts +1 -1
- package/lib/inputs/number/Decimal.d.ts +1 -1
- package/lib/inputs/number/index.d.ts +1 -1
- package/lib/inputs/number/index.js +11 -43
- package/lib/inputs/number/types.d.ts +12 -12
- package/lib/inputs/select/multiple/index.js +19 -32
- package/lib/inputs/select/simple/index.js +1 -5
- package/lib/inputs/types.d.ts +1 -2
- package/lib/tabs/DropdownTabs.js +75 -0
- package/lib/tabs/MenuTabs.js +89 -0
- package/lib/tabs/context.js +161 -0
- package/lib/tabs/useTabs.js +11 -0
- package/package.json +1 -1
package/.vscode/settings.json
CHANGED
|
@@ -164,6 +164,14 @@
|
|
|
164
164
|
}
|
|
165
165
|
|
|
166
166
|
.input-simple-file-container {
|
|
167
|
+
.file-content {
|
|
168
|
+
flex: 1;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
.file-wrapper {
|
|
172
|
+
align-items: center;
|
|
173
|
+
}
|
|
174
|
+
|
|
167
175
|
.-disabledVisualApply {
|
|
168
176
|
background: #fff5e5 !important;
|
|
169
177
|
> .size-position-icon {
|
|
@@ -221,4 +229,4 @@
|
|
|
221
229
|
box-shadow: none;
|
|
222
230
|
border-color: transparent !important;
|
|
223
231
|
transition: none;
|
|
224
|
-
}
|
|
232
|
+
}
|
package/lib/dialog/form/index.js
CHANGED
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.default = exports.FormDialogContext = void 0;
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _uuid = _interopRequireDefault(require("uuid"));
|
|
9
10
|
var _base = _interopRequireDefault(require("../base"));
|
|
10
11
|
var _Header = _interopRequireDefault(require("../base/Header"));
|
|
11
12
|
var _index = require("../../buttons/index");
|
|
@@ -67,16 +68,19 @@ var ModalForm = function ModalForm(props) {
|
|
|
67
68
|
handlerClose: props.handlerClose
|
|
68
69
|
}, props))), /*#__PURE__*/_react.default.createElement(_Content.default, {
|
|
69
70
|
styleForContent: _objectSpread(_objectSpread({}, props.styleForContent), overlayStyle)
|
|
70
|
-
}, content || children), getSpinner(), showFooter && props.buttons && /*#__PURE__*/_react.default.createElement(_Footer.default, null, /*#__PURE__*/_react.default.createElement(_index.ButtonContainer, _extends({}, props, {
|
|
71
|
+
}, content || children), getSpinner(), showFooter && props.buttons && props.buttons.length > 0 && /*#__PURE__*/_react.default.createElement(_Footer.default, null, /*#__PURE__*/_react.default.createElement(_index.ButtonContainer, _extends({}, props, {
|
|
71
72
|
style: _objectSpread({}, overlayStyle)
|
|
72
|
-
}),
|
|
73
|
+
}), props.buttons.map(function (button) {
|
|
73
74
|
if (context && context.securityBeforeUnload && button && button.type && button.type.name === 'CancelButton') {
|
|
74
75
|
return /*#__PURE__*/_react.default.cloneElement(button, {
|
|
76
|
+
key: "button-".concat(_uuid.default.v1()),
|
|
75
77
|
onClick: props.handlerClose
|
|
76
78
|
});
|
|
77
79
|
}
|
|
78
|
-
return /*#__PURE__*/_react.default.cloneElement(button
|
|
79
|
-
|
|
80
|
+
return /*#__PURE__*/_react.default.cloneElement(button, {
|
|
81
|
+
key: "button-".concat(_uuid.default.v1())
|
|
82
|
+
});
|
|
83
|
+
})))));
|
|
80
84
|
};
|
|
81
85
|
var _default = (0, _withFormSecurity.default)(ModalForm);
|
|
82
86
|
exports.default = _default;
|
package/lib/form/FieldNumber.js
CHANGED
|
@@ -30,11 +30,9 @@ var getEventProps = function getEventProps(_ref) {
|
|
|
30
30
|
validators = _ref.validators,
|
|
31
31
|
_onBlur = _ref.onBlur,
|
|
32
32
|
_onKeyDown = _ref.onKeyDown,
|
|
33
|
-
_onChange = _ref.onChange,
|
|
34
33
|
handlerFieldValidade = _ref.handlerFieldValidade,
|
|
35
34
|
handlerFieldChange = _ref.handlerFieldChange,
|
|
36
|
-
handleShowValidateMessages = _ref.handleShowValidateMessages
|
|
37
|
-
component = _ref.component;
|
|
35
|
+
handleShowValidateMessages = _ref.handleShowValidateMessages;
|
|
38
36
|
return {
|
|
39
37
|
onBlur: function onBlur(e) {
|
|
40
38
|
if (handlerFieldChange) handlerFieldChange(e);
|
|
@@ -44,20 +42,11 @@ var getEventProps = function getEventProps(_ref) {
|
|
|
44
42
|
},
|
|
45
43
|
onKeyDown: function onKeyDown(e) {
|
|
46
44
|
if ([constants.keyCodes.ENTER].includes(e.keyCode)) {
|
|
45
|
+
handlerFieldChange === null || handlerFieldChange === void 0 ? void 0 : handlerFieldChange(e);
|
|
47
46
|
if (validators) handlerFieldValidade === null || handlerFieldValidade === void 0 ? void 0 : handlerFieldValidade(name, e.target.value, validators);
|
|
48
47
|
if (_onKeyDown) _onKeyDown(e);
|
|
49
48
|
handleShowValidateMessages(true);
|
|
50
49
|
}
|
|
51
|
-
},
|
|
52
|
-
onChange: function onChange(e) {
|
|
53
|
-
if ((component === null || component === void 0 ? void 0 : component.name) === 'NumberField') {
|
|
54
|
-
if (validators && e.target && handlerFieldValidade) {
|
|
55
|
-
handlerFieldValidade(name, e.target.value, validators);
|
|
56
|
-
handleShowValidateMessages(true);
|
|
57
|
-
}
|
|
58
|
-
if (handlerFieldChange) handlerFieldChange(e);
|
|
59
|
-
if (_onChange) _onChange(e);
|
|
60
|
-
}
|
|
61
50
|
}
|
|
62
51
|
};
|
|
63
52
|
};
|
package/lib/form/types.d.ts
CHANGED
|
@@ -82,7 +82,6 @@ interface IFieldProps extends WithFieldProps {
|
|
|
82
82
|
autoFocus?: boolean;
|
|
83
83
|
autoCompleteMask?: 'left' | 'right';
|
|
84
84
|
mask?: string;
|
|
85
|
-
removeZeroLeft?: boolean;
|
|
86
85
|
}
|
|
87
86
|
interface CustomEvent {
|
|
88
87
|
target: {
|
|
@@ -199,7 +198,6 @@ interface IEventParams {
|
|
|
199
198
|
handlerFieldChange?: (event: ChangeEvent<HTMLInputElement> | CustomKeyboardEvent) => void;
|
|
200
199
|
validatorFromComponent?: Validator | Validator[];
|
|
201
200
|
handleShowValidateMessages: (value: boolean) => void;
|
|
202
|
-
component?: ComponentType<any>;
|
|
203
201
|
}
|
|
204
202
|
interface IGetErrorMessagesParams {
|
|
205
203
|
name: string;
|
|
@@ -71,7 +71,6 @@ var InputTextBase = function InputTextBase(props) {
|
|
|
71
71
|
_onDragOver = props.onDragOver,
|
|
72
72
|
_onDrop = props.onDrop,
|
|
73
73
|
_onDragLeave = props.onDragLeave,
|
|
74
|
-
_onClick = props.onClick,
|
|
75
74
|
readOnlyClass = props.readOnlyClass;
|
|
76
75
|
var propsInput;
|
|
77
76
|
var options = [_permissionValidations.OPTIONS_ON_DENIED.disabled, _permissionValidations.OPTIONS_ON_DENIED.unvisible, _permissionValidations.OPTIONS_ON_DENIED.readOnly, _permissionValidations.OPTIONS_ON_DENIED.hideContent];
|
|
@@ -149,9 +148,6 @@ var InputTextBase = function InputTextBase(props) {
|
|
|
149
148
|
},
|
|
150
149
|
onDragLeave: function onDragLeave(e) {
|
|
151
150
|
if (_onDragLeave) _onDragLeave(e);
|
|
152
|
-
},
|
|
153
|
-
onClick: function onClick(e) {
|
|
154
|
-
if (_onClick) _onClick(e);
|
|
155
151
|
}
|
|
156
152
|
});
|
|
157
153
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { KeyboardEvent, DragEvent, MutableRefObject, RefObject, CSSProperties } from 'react';
|
|
2
2
|
import { TextAlign } from '../../@types/Align.js';
|
|
3
3
|
import { Period } from '../../@types/Period.js';
|
|
4
4
|
import { PermissionAttr, OnDenied } from '../../@types/PermissionAttr.js';
|
|
@@ -33,7 +33,6 @@ interface IBaseProps {
|
|
|
33
33
|
maxLength?: number;
|
|
34
34
|
name?: string;
|
|
35
35
|
required?: boolean;
|
|
36
|
-
onClick?: (event: MouseEvent) => void;
|
|
37
36
|
onBlur?: (e: CustomInputEvent) => void;
|
|
38
37
|
onFocus?: (e: CustomInputEvent) => void;
|
|
39
38
|
onReset?: (e: CustomInputEvent) => void;
|
|
@@ -49,7 +48,7 @@ interface IBaseProps {
|
|
|
49
48
|
onDragLeave?: (e: DragEvent) => void;
|
|
50
49
|
leftElements?: JSX.Element | JSX.Element[];
|
|
51
50
|
rightElements?: JSX.Element | JSX.Element[];
|
|
52
|
-
children?:
|
|
51
|
+
children?: React.ReactNode;
|
|
53
52
|
customClass?: string;
|
|
54
53
|
customClassForWrapper?: string;
|
|
55
54
|
customClassForInputContent?: string;
|
|
@@ -37,7 +37,8 @@ var DefaultFile = function DefaultFile(props) {
|
|
|
37
37
|
hint = _props$hint === void 0 ? [] : _props$hint,
|
|
38
38
|
_props$errorMessages = props.errorMessages,
|
|
39
39
|
errorMessages = _props$errorMessages === void 0 ? [] : _props$errorMessages,
|
|
40
|
-
onChange = props.onChange
|
|
40
|
+
onChange = props.onChange,
|
|
41
|
+
multiple = props.multiple;
|
|
41
42
|
var getFilesList = function getFilesList(files) {
|
|
42
43
|
return !(files !== null && files !== void 0 && files.length) ? [] : _lodash.default.map(files, function (file) {
|
|
43
44
|
return file;
|
|
@@ -48,36 +49,6 @@ var DefaultFile = function DefaultFile(props) {
|
|
|
48
49
|
fileList = _useState2[0],
|
|
49
50
|
setFileList = _useState2[1];
|
|
50
51
|
var ifExistFiles = fileList instanceof Array && fileList.length > 0;
|
|
51
|
-
var popUpDescription = function popUpDescription() {
|
|
52
|
-
return /*#__PURE__*/_react.default.createElement("div", {
|
|
53
|
-
className: "size-position-icon ".concat(!ifExistFiles ? '-disabled-popover' : '')
|
|
54
|
-
}, /*#__PURE__*/_react.default.createElement(_popover.default, {
|
|
55
|
-
iconSize: 16
|
|
56
|
-
}, /*#__PURE__*/_react.default.createElement(_popover.PopoverText, null, /*#__PURE__*/_react.default.createElement("strong", null, "Arquivos"), /*#__PURE__*/_react.default.createElement("br", null), ifExistFiles && fileList.map(function (file) {
|
|
57
|
-
return /*#__PURE__*/_react.default.createElement("div", {
|
|
58
|
-
className: "list-simple-file",
|
|
59
|
-
key: "".concat(file.name).concat(file.size)
|
|
60
|
-
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
61
|
-
className: "file-name"
|
|
62
|
-
}, /*#__PURE__*/_react.default.createElement("span", null, file.name)));
|
|
63
|
-
}))));
|
|
64
|
-
};
|
|
65
|
-
var buttonRemoveFile = function buttonRemoveFile() {
|
|
66
|
-
return /*#__PURE__*/_react.default.createElement(_buttons.default, {
|
|
67
|
-
disabled: !ifExistFiles,
|
|
68
|
-
className: "-pointerEventsRemove",
|
|
69
|
-
transparent: true,
|
|
70
|
-
boxShadow: false,
|
|
71
|
-
onClick: function onClick() {
|
|
72
|
-
onBtnClickRemove();
|
|
73
|
-
setFileList([]);
|
|
74
|
-
},
|
|
75
|
-
icon: /*#__PURE__*/_react.default.createElement(_icons.default, {
|
|
76
|
-
customClass: "colorIconUpload",
|
|
77
|
-
name: "close"
|
|
78
|
-
})
|
|
79
|
-
});
|
|
80
|
-
};
|
|
81
52
|
var handleChange = function handleChange(e) {
|
|
82
53
|
var _e$preventDefault;
|
|
83
54
|
(_e$preventDefault = e.preventDefault) === null || _e$preventDefault === void 0 ? void 0 : _e$preventDefault.call(e);
|
|
@@ -90,7 +61,8 @@ var DefaultFile = function DefaultFile(props) {
|
|
|
90
61
|
}, /*#__PURE__*/_react.default.createElement(_InputTextBase.default, _extends({}, props, {
|
|
91
62
|
hint: hint,
|
|
92
63
|
readOnlyClass: "-disabledVisualApply",
|
|
93
|
-
|
|
64
|
+
customClassForWrapper: "file-wrapper",
|
|
65
|
+
customClassForInputContent: "file-content -absolute -pointEventDisabled -disabledVisualApply",
|
|
94
66
|
type: "file",
|
|
95
67
|
id: id,
|
|
96
68
|
accept: accept,
|
|
@@ -102,7 +74,31 @@ var DefaultFile = function DefaultFile(props) {
|
|
|
102
74
|
return _onBtnClickInsert();
|
|
103
75
|
}
|
|
104
76
|
})
|
|
105
|
-
}),
|
|
77
|
+
}), multiple && /*#__PURE__*/_react.default.createElement("div", {
|
|
78
|
+
className: "size-position-icon ".concat(!ifExistFiles ? '-disabled-popover' : '')
|
|
79
|
+
}, /*#__PURE__*/_react.default.createElement(_popover.default, {
|
|
80
|
+
iconSize: 16
|
|
81
|
+
}, /*#__PURE__*/_react.default.createElement(_popover.PopoverText, null, /*#__PURE__*/_react.default.createElement("strong", null, "Arquivos"), /*#__PURE__*/_react.default.createElement("br", null), ifExistFiles && fileList.map(function (file) {
|
|
82
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
83
|
+
className: "list-simple-file",
|
|
84
|
+
key: "".concat(file.name).concat(file.size)
|
|
85
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
86
|
+
className: "file-name"
|
|
87
|
+
}, /*#__PURE__*/_react.default.createElement("span", null, file.name)));
|
|
88
|
+
})))), /*#__PURE__*/_react.default.createElement(_buttons.default, {
|
|
89
|
+
disabled: !ifExistFiles,
|
|
90
|
+
className: "-pointerEventsRemove",
|
|
91
|
+
transparent: true,
|
|
92
|
+
boxShadow: false,
|
|
93
|
+
onClick: function onClick() {
|
|
94
|
+
onBtnClickRemove();
|
|
95
|
+
setFileList([]);
|
|
96
|
+
},
|
|
97
|
+
icon: /*#__PURE__*/_react.default.createElement(_icons.default, {
|
|
98
|
+
customClass: "colorIconUpload",
|
|
99
|
+
name: "close"
|
|
100
|
+
})
|
|
101
|
+
})), errorMessages && helperBase.getErrorMessages(errorMessages));
|
|
106
102
|
};
|
|
107
103
|
var _default = DefaultFile;
|
|
108
104
|
exports.default = _default;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { IBaseNumberProps } from './types.js';
|
|
2
|
+
import '../../@types/PermissionAttr.js';
|
|
2
3
|
import '../base/types.js';
|
|
3
4
|
import 'react';
|
|
4
5
|
import '../../@types/Align.js';
|
|
5
6
|
import '../../@types/Period.js';
|
|
6
|
-
import '../../@types/PermissionAttr.js';
|
|
7
7
|
import '../types.js';
|
|
8
8
|
import '../../@types/DataCombo.js';
|
|
9
9
|
import '../../drawer/types.js';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { ICurrencyProps } from './types.js';
|
|
2
|
+
import '../../@types/PermissionAttr.js';
|
|
2
3
|
import '../base/types.js';
|
|
3
4
|
import 'react';
|
|
4
5
|
import '../../@types/Align.js';
|
|
5
6
|
import '../../@types/Period.js';
|
|
6
|
-
import '../../@types/PermissionAttr.js';
|
|
7
7
|
import '../types.js';
|
|
8
8
|
import '../../@types/DataCombo.js';
|
|
9
9
|
import '../../drawer/types.js';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { IBaseNumberProps } from './types.js';
|
|
2
|
+
import '../../@types/PermissionAttr.js';
|
|
2
3
|
import '../base/types.js';
|
|
3
4
|
import 'react';
|
|
4
5
|
import '../../@types/Align.js';
|
|
5
6
|
import '../../@types/Period.js';
|
|
6
|
-
import '../../@types/PermissionAttr.js';
|
|
7
7
|
import '../types.js';
|
|
8
8
|
import '../../@types/DataCombo.js';
|
|
9
9
|
import '../../drawer/types.js';
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
export { default as CurrencyField } from './Currency.js';
|
|
2
2
|
export { default as DecimalField } from './Decimal.js';
|
|
3
3
|
import { INumberFieldProps } from './types.js';
|
|
4
|
+
import '../../@types/PermissionAttr.js';
|
|
4
5
|
import '../base/types.js';
|
|
5
6
|
import 'react';
|
|
6
7
|
import '../../@types/Align.js';
|
|
7
8
|
import '../../@types/Period.js';
|
|
8
|
-
import '../../@types/PermissionAttr.js';
|
|
9
9
|
import '../types.js';
|
|
10
10
|
import '../../@types/DataCombo.js';
|
|
11
11
|
import '../../drawer/types.js';
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
@@ -17,58 +16,27 @@ Object.defineProperty(exports, "DecimalField", {
|
|
|
17
16
|
}
|
|
18
17
|
});
|
|
19
18
|
exports.default = void 0;
|
|
20
|
-
var _react =
|
|
19
|
+
var _react = _interopRequireDefault(require("react"));
|
|
20
|
+
var _BaseMask = _interopRequireDefault(require("../mask/BaseMask"));
|
|
21
21
|
var _Currency = _interopRequireDefault(require("./Currency"));
|
|
22
22
|
var _Decimal = _interopRequireDefault(require("./Decimal"));
|
|
23
23
|
require("../../assets/styles/numbers.scss");
|
|
24
|
-
var
|
|
24
|
+
var _format_number = require("./format_number");
|
|
25
25
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
26
|
-
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); }
|
|
27
|
-
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; }
|
|
28
26
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }
|
|
29
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
30
|
-
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."); }
|
|
31
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
32
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
33
|
-
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
34
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
35
27
|
var NumberField = function NumberField(props) {
|
|
36
28
|
var _props$textAlign = props.textAlign,
|
|
37
29
|
textAlign = _props$textAlign === void 0 ? 'left' : _props$textAlign,
|
|
38
|
-
min = props.min,
|
|
39
|
-
max = props.max,
|
|
40
30
|
_props$value = props.value,
|
|
41
|
-
value = _props$value === void 0 ? '' : _props$value
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
var _useState = (0, _react.useState)(value === null || value === void 0 ? void 0 : value.toString()),
|
|
45
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
46
|
-
numberValue = _useState2[0],
|
|
47
|
-
setNumberValue = _useState2[1];
|
|
48
|
-
var onChange = function onChange(event) {
|
|
49
|
-
if (event) {
|
|
50
|
-
var inputValue = event.target.value;
|
|
51
|
-
var numericValue = inputValue.replace(/\D/g, '');
|
|
52
|
-
if (min && parseInt(numericValue, 10) < min || max && parseInt(numericValue, 10) > max) {
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
if (removeZeroLeft && numericValue.charAt(0) === '0' && numericValue.length > 1) {
|
|
56
|
-
setNumberValue(numericValue.substring(1));
|
|
57
|
-
} else {
|
|
58
|
-
setNumberValue(numericValue);
|
|
59
|
-
}
|
|
60
|
-
if (props.onChange) props.onChange(event);
|
|
61
|
-
}
|
|
62
|
-
};
|
|
63
|
-
(0, _react.useEffect)(function () {
|
|
64
|
-
if (value && value !== numberValue) setNumberValue(value.toString());
|
|
65
|
-
}, [value]);
|
|
66
|
-
return /*#__PURE__*/_react.default.createElement(_InputTextBase.default, _extends({}, props, {
|
|
67
|
-
value: numberValue,
|
|
31
|
+
value = _props$value === void 0 ? '' : _props$value;
|
|
32
|
+
return /*#__PURE__*/_react.default.createElement(_BaseMask.default, _extends({
|
|
33
|
+
value: typeof value === 'number' ? (0, _format_number.numberToPtBR)(value) : value,
|
|
68
34
|
textAlign: textAlign,
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
35
|
+
mask: Number,
|
|
36
|
+
isNumeric: true,
|
|
37
|
+
scale: 0,
|
|
38
|
+
padFractionalZeros: false
|
|
39
|
+
}, props));
|
|
72
40
|
};
|
|
73
41
|
var _default = NumberField;
|
|
74
42
|
exports.default = _default;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
import { PermissionAttr } from '../../@types/PermissionAttr.js';
|
|
1
2
|
import { CustomInputEvent } from '../base/types.js';
|
|
2
3
|
import { IMaskHOCProps } from '../types.js';
|
|
3
4
|
import 'react';
|
|
4
5
|
import '../../@types/Align.js';
|
|
5
6
|
import '../../@types/Period.js';
|
|
6
|
-
import '../../@types/PermissionAttr.js';
|
|
7
7
|
import '../../@types/DataCombo.js';
|
|
8
8
|
import '../../drawer/types.js';
|
|
9
9
|
import '../../@types/Position.js';
|
|
@@ -11,24 +11,24 @@ import '../../@types/Icon.js';
|
|
|
11
11
|
import '../../icons/helper.js';
|
|
12
12
|
|
|
13
13
|
interface INumberFieldProps extends IMaskHOCProps {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
interface IBaseNumberProps extends IMaskHOCProps {
|
|
18
|
-
returnFormattedValueOnBlur?: boolean;
|
|
19
|
-
returnFormattedValueOnKeyDown?: boolean;
|
|
14
|
+
value?: string;
|
|
15
|
+
permissionAttr?: PermissionAttr;
|
|
16
|
+
disabled?: boolean;
|
|
20
17
|
onChange?: (e?: CustomInputEvent, maskValue?: string, date?: string | {
|
|
21
18
|
initial: string;
|
|
22
19
|
final: string;
|
|
23
20
|
}) => void;
|
|
24
21
|
}
|
|
25
|
-
interface
|
|
22
|
+
interface IBaseNumberProps extends INumberFieldProps {
|
|
23
|
+
value?: string;
|
|
24
|
+
leftElements?: JSX.Element | JSX.Element[];
|
|
25
|
+
onBlur?: (e: CustomInputEvent) => void;
|
|
26
|
+
returnFormattedValueOnBlur?: boolean;
|
|
27
|
+
returnFormattedValueOnKeyDown?: boolean;
|
|
28
|
+
}
|
|
29
|
+
interface ICurrencyProps extends INumberFieldProps {
|
|
26
30
|
currencySymbol?: string;
|
|
27
31
|
displayCurrencySymbol?: boolean;
|
|
28
|
-
onChange?: (e?: CustomInputEvent, maskValue?: string, date?: string | {
|
|
29
|
-
initial: string;
|
|
30
|
-
final: string;
|
|
31
|
-
}) => void;
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
export { IBaseNumberProps, ICurrencyProps, INumberFieldProps };
|
|
@@ -80,20 +80,20 @@ var MultipleSelect = function MultipleSelect(props) {
|
|
|
80
80
|
var selectWrapper = (0, _react.useRef)();
|
|
81
81
|
var gridElRef = (0, _react.useRef)();
|
|
82
82
|
var descriptionKeyIsString = typeof descriptionKey === 'string';
|
|
83
|
-
var insideComponents = ['item', 'menubutton', 'filterinput', 'filtercontainer', 'label', 'actionbutton'];
|
|
84
83
|
var onScreenResize = function onScreenResize() {
|
|
85
84
|
if (selectWrapper.current) setDropdownWidth(selectWrapper.current.clientWidth);
|
|
86
85
|
};
|
|
87
86
|
var onClickOutside = function onClickOutside(event) {
|
|
88
87
|
var target = event.target;
|
|
89
|
-
if (
|
|
88
|
+
if (target !== selectWrapper.current && selectWrapper.current && !selectWrapper.current.contains(target) && dropdownRef.current && !dropdownRef.current.contains(target)) {
|
|
90
89
|
setOpened(false);
|
|
91
90
|
}
|
|
92
91
|
};
|
|
93
92
|
var onMouseMove = function onMouseMove(event) {
|
|
94
93
|
var target = event.target;
|
|
95
94
|
if (target.className === '') return;
|
|
96
|
-
|
|
95
|
+
var insideComponents = ['item', 'menubutton', 'filterinput', 'filtercontainer', 'label'].includes(target.className);
|
|
96
|
+
setInsideComponent(insideComponents);
|
|
97
97
|
};
|
|
98
98
|
var onClearClick = function onClearClick() {
|
|
99
99
|
setSelected(undefined);
|
|
@@ -123,26 +123,19 @@ var MultipleSelect = function MultipleSelect(props) {
|
|
|
123
123
|
setInputValue([filteredValue]);
|
|
124
124
|
}
|
|
125
125
|
};
|
|
126
|
-
var _onFocus = function onFocus() {
|
|
127
|
-
var dropdownWidthFocus = selectWrapper.current ? selectWrapper.current.clientWidth : dropdownWidth;
|
|
128
|
-
setOpened(true);
|
|
129
|
-
setDropdownWidth(dropdownWidthFocus);
|
|
130
|
-
};
|
|
131
126
|
var onSelect = function onSelect(select) {
|
|
132
|
-
var _dropdownRef$current;
|
|
133
127
|
if (select === null) return;
|
|
134
128
|
var currentsSelect = [].concat(_toConsumableArray(currents), [select]);
|
|
135
129
|
setCurrents(currentsSelect);
|
|
136
130
|
setDataCombo(dataSource);
|
|
137
131
|
setInputValue([]);
|
|
132
|
+
setOpened(false);
|
|
138
133
|
if (props.onSelect) setSelected(props.onSelect(currentsSelect.map(function (i) {
|
|
139
134
|
return i[idKey];
|
|
140
135
|
})));
|
|
141
|
-
(_dropdownRef$current = dropdownRef.current) === null || _dropdownRef$current === void 0 ? void 0 : _dropdownRef$current.focus();
|
|
142
136
|
};
|
|
143
137
|
var onUnselect = function onUnselect(id) {
|
|
144
138
|
if (currents) {
|
|
145
|
-
var _dropdownRef$current2;
|
|
146
139
|
var result = currents.filter(function (item) {
|
|
147
140
|
return item[idKey] !== id;
|
|
148
141
|
});
|
|
@@ -150,43 +143,41 @@ var MultipleSelect = function MultipleSelect(props) {
|
|
|
150
143
|
if (props.onSelect) setSelected(props.onSelect(result.map(function (i) {
|
|
151
144
|
return i[idKey];
|
|
152
145
|
})));
|
|
153
|
-
(_dropdownRef$current2 = dropdownRef.current) === null || _dropdownRef$current2 === void 0 ? void 0 : _dropdownRef$current2.focus();
|
|
154
146
|
}
|
|
155
147
|
};
|
|
156
148
|
var onOpenClose = function onOpenClose() {
|
|
157
149
|
setOpened(!opened);
|
|
158
150
|
if (selectWrapper.current) setDropdownWidth(selectWrapper.current.clientWidth);
|
|
159
151
|
};
|
|
152
|
+
var _onFocus = function onFocus() {
|
|
153
|
+
var dropdownWidthFocus = selectWrapper.current ? selectWrapper.current.clientWidth : dropdownWidth;
|
|
154
|
+
setOpened(true);
|
|
155
|
+
setDropdownWidth(dropdownWidthFocus);
|
|
156
|
+
};
|
|
160
157
|
var _onBlur = function onBlur(e) {
|
|
161
158
|
if (props.onBlur) props.onBlur(e);
|
|
162
159
|
if (!insideComponent) setOpened(false);
|
|
163
160
|
};
|
|
164
161
|
var onInputKeyDown = function onInputKeyDown(e) {
|
|
165
162
|
if (e.keyCode) {
|
|
166
|
-
if (e.keyCode === constants.keyCodes.ENTER && selected
|
|
167
|
-
if (!currents.
|
|
168
|
-
return current[idKey] === selected[idKey];
|
|
169
|
-
})) {
|
|
170
|
-
var _e$preventDefault;
|
|
171
|
-
(_e$preventDefault = e.preventDefault) === null || _e$preventDefault === void 0 ? void 0 : _e$preventDefault.call(e);
|
|
172
|
-
onSelect(selected);
|
|
173
|
-
}
|
|
163
|
+
if (e.keyCode === constants.keyCodes.ENTER && selected) {
|
|
164
|
+
if (!currents.includes(selected)) onSelect(selected);
|
|
174
165
|
} else if ([constants.keyCodes.ARROW_UP, constants.keyCodes.ARROW_DOWN].includes(e.keyCode)) {
|
|
175
166
|
if (!opened) setOpened(true);
|
|
176
|
-
var index =
|
|
167
|
+
var index = dataSource ? dataSource.findIndex(function (d) {
|
|
177
168
|
return d === selected;
|
|
178
169
|
}) : 0;
|
|
179
170
|
if (e.keyCode === constants.keyCodes.ARROW_DOWN) {
|
|
180
|
-
index =
|
|
171
|
+
index = dataSource && index === dataSource.length - 1 ? 0 : index + 1;
|
|
181
172
|
} else {
|
|
182
|
-
index =
|
|
173
|
+
index = dataSource && index === 0 ? dataSource.length - 1 : index - 1;
|
|
183
174
|
}
|
|
184
|
-
if (
|
|
185
|
-
if (descriptionKeyIsString &&
|
|
186
|
-
setInputValue(
|
|
187
|
-
} else if (!descriptionKeyIsString) setInputValue([descriptionKey(
|
|
175
|
+
if (dataSource && dataSource.length) {
|
|
176
|
+
if (descriptionKeyIsString && dataSource[index][descriptionKey]) {
|
|
177
|
+
setInputValue(dataSource[index][descriptionKey]);
|
|
178
|
+
} else if (!descriptionKeyIsString) setInputValue([descriptionKey(dataSource[index])]);
|
|
188
179
|
}
|
|
189
|
-
if (
|
|
180
|
+
if (dataSource) setSelected(dataSource[index]);
|
|
190
181
|
} else if (e.keyCode === constants.keyCodes.BACKSPACE) {
|
|
191
182
|
if (inputValue.length === 0) {
|
|
192
183
|
var currentsKeyDown = _lodash.default.dropRight(currents);
|
|
@@ -195,8 +186,6 @@ var MultipleSelect = function MultipleSelect(props) {
|
|
|
195
186
|
return i[idKey];
|
|
196
187
|
}));
|
|
197
188
|
}
|
|
198
|
-
} else if (e.keyCode === constants.keyCodes.TAB) {
|
|
199
|
-
setOpened(false);
|
|
200
189
|
}
|
|
201
190
|
}
|
|
202
191
|
};
|
|
@@ -263,8 +252,6 @@ var MultipleSelect = function MultipleSelect(props) {
|
|
|
263
252
|
onChange: function onChange(e) {
|
|
264
253
|
if (e) onFilter(e.target.value);
|
|
265
254
|
},
|
|
266
|
-
onClick: _onFocus,
|
|
267
|
-
inputRef: dropdownRef,
|
|
268
255
|
onKeyDown: onInputKeyDown,
|
|
269
256
|
customClassForWrapper: "selectwrapper ".concat((props.readOnly || shouldDisable() || shouldBeReadOnly()) && ' -undigitable'),
|
|
270
257
|
customClassForInputContent: "multiselect",
|
|
@@ -154,13 +154,11 @@ var SimpleSelect = function SimpleSelect(props) {
|
|
|
154
154
|
}
|
|
155
155
|
};
|
|
156
156
|
var onSelect = function onSelect(selectedDropdown) {
|
|
157
|
-
var _dropdownRef$current2;
|
|
158
157
|
if (selectedDropdown === undefined) return;
|
|
159
158
|
setOpened(false);
|
|
160
159
|
setSelected(selectedDropdown);
|
|
161
160
|
if (descriptionKeyIsString) setInputText(selectedDropdown[descriptionKey]);else setInputText(descriptionKey(selectedDropdown));
|
|
162
161
|
onChange(selectedDropdown);
|
|
163
|
-
(_dropdownRef$current2 = dropdownRef.current) === null || _dropdownRef$current2 === void 0 ? void 0 : _dropdownRef$current2.focus();
|
|
164
162
|
};
|
|
165
163
|
var onOpenClose = function onOpenClose() {
|
|
166
164
|
setOpened(!opened);
|
|
@@ -190,7 +188,7 @@ var SimpleSelect = function SimpleSelect(props) {
|
|
|
190
188
|
};
|
|
191
189
|
var onInputKeyDown = function onInputKeyDown(e) {
|
|
192
190
|
if (e.keyCode) {
|
|
193
|
-
if (e.keyCode === constants.keyCodes.ENTER && selected
|
|
191
|
+
if (e.keyCode === constants.keyCodes.ENTER && selected) {
|
|
194
192
|
var _e$preventDefault;
|
|
195
193
|
(_e$preventDefault = e.preventDefault) === null || _e$preventDefault === void 0 ? void 0 : _e$preventDefault.call(e);
|
|
196
194
|
onSelect(selected);
|
|
@@ -283,8 +281,6 @@ var SimpleSelect = function SimpleSelect(props) {
|
|
|
283
281
|
onChange: function onChange(e) {
|
|
284
282
|
if (e) onFilter(e.target.value);
|
|
285
283
|
},
|
|
286
|
-
onClick: onFocus,
|
|
287
|
-
inputRef: dropdownRef,
|
|
288
284
|
onKeyDown: onInputKeyDown,
|
|
289
285
|
customClassForWrapper: "selectwrapper ".concat((undigitable || searchOnDropdown || shouldBeReadOnly()) && ' -undigitable'),
|
|
290
286
|
customClassForInputContent: "multiselect",
|
package/lib/inputs/types.d.ts
CHANGED
|
@@ -19,7 +19,7 @@ interface ISearchProps extends IBaseProps {
|
|
|
19
19
|
resetButton?: boolean;
|
|
20
20
|
onReset?: (event?: CustomInputEvent) => void;
|
|
21
21
|
onChange?: (event?: CustomInputEvent) => void;
|
|
22
|
-
onClick?: (event: MouseEvent<
|
|
22
|
+
onClick?: (event: MouseEvent<HTMLButtonElement>) => void;
|
|
23
23
|
textAlign?: TextAlign;
|
|
24
24
|
disabled?: boolean;
|
|
25
25
|
readOnly?: boolean;
|
|
@@ -111,7 +111,6 @@ interface IDropdownSelectProps {
|
|
|
111
111
|
handleOnKeydown: (e: CustomInputEvent | KeyboardEvent) => void;
|
|
112
112
|
handleOnBlur: (item: DataCombo) => void;
|
|
113
113
|
handleOnFocus: () => void;
|
|
114
|
-
handlerSelecionadoAgora?: (bool: boolean) => void;
|
|
115
114
|
opened: boolean;
|
|
116
115
|
dropdownRef: MutableRefObject<HTMLDivElement | null>;
|
|
117
116
|
dataCombo: DataCombo[];
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _buttons = _interopRequireDefault(require("../buttons"));
|
|
10
|
+
var _list = _interopRequireWildcard(require("../list"));
|
|
11
|
+
var _useTabs2 = require("./useTabs");
|
|
12
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
13
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
15
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }
|
|
16
|
+
var DropdownTab = function DropdownTab(_ref) {
|
|
17
|
+
var id = _ref.id,
|
|
18
|
+
title = _ref.title,
|
|
19
|
+
closeable = _ref.closeable,
|
|
20
|
+
iconAlign = _ref.iconAlign,
|
|
21
|
+
icon = _ref.icon,
|
|
22
|
+
iconName = _ref.iconName,
|
|
23
|
+
disabled = _ref.disabled,
|
|
24
|
+
tabMenuSize = _ref.tabMenuSize;
|
|
25
|
+
var _useTabs = (0, _useTabs2.useTabs)(),
|
|
26
|
+
selectTab = _useTabs.selectTab,
|
|
27
|
+
removeTab = _useTabs.removeTab;
|
|
28
|
+
return /*#__PURE__*/_react["default"].createElement(_list.ListItem, {
|
|
29
|
+
key: id
|
|
30
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
31
|
+
className: "menuitem"
|
|
32
|
+
}, /*#__PURE__*/_react["default"].createElement(_buttons["default"], {
|
|
33
|
+
className: "btn menubutton",
|
|
34
|
+
boxShadow: false,
|
|
35
|
+
onClick: function onClick() {
|
|
36
|
+
return selectTab(id);
|
|
37
|
+
},
|
|
38
|
+
iconAlign: iconAlign,
|
|
39
|
+
iconName: iconName,
|
|
40
|
+
icon: icon,
|
|
41
|
+
disabled: disabled,
|
|
42
|
+
label: title,
|
|
43
|
+
size: tabMenuSize,
|
|
44
|
+
transparent: true
|
|
45
|
+
}), closeable && /*#__PURE__*/_react["default"].createElement("button", {
|
|
46
|
+
className: "closepanel",
|
|
47
|
+
onClick: function onClick() {
|
|
48
|
+
return removeTab(id);
|
|
49
|
+
}
|
|
50
|
+
})));
|
|
51
|
+
};
|
|
52
|
+
var DropdownTabs = function DropdownTabs(_ref2) {
|
|
53
|
+
var _ref2$tabs = _ref2.tabs,
|
|
54
|
+
tabs = _ref2$tabs === void 0 ? [] : _ref2$tabs,
|
|
55
|
+
_ref2$tabMenuSize = _ref2.tabMenuSize,
|
|
56
|
+
tabMenuSize = _ref2$tabMenuSize === void 0 ? 'medium' : _ref2$tabMenuSize;
|
|
57
|
+
var hasTabs = tabs.length > 0;
|
|
58
|
+
if (tabs.length === 0) return null;
|
|
59
|
+
return /*#__PURE__*/_react["default"].createElement(_buttons["default"], {
|
|
60
|
+
dropdown: true,
|
|
61
|
+
dropdownAlign: "right",
|
|
62
|
+
transparent: true,
|
|
63
|
+
boxShadow: false,
|
|
64
|
+
size: "large",
|
|
65
|
+
customClass: "dropdownbutton ".concat(hasTabs ? 'show' : '')
|
|
66
|
+
}, /*#__PURE__*/_react["default"].createElement(_list["default"], {
|
|
67
|
+
customClass: "dropdown-hide-tabs"
|
|
68
|
+
}, tabs.map(function (tab) {
|
|
69
|
+
return /*#__PURE__*/_react["default"].createElement(DropdownTab, _extends({
|
|
70
|
+
key: tab.id,
|
|
71
|
+
tabMenuSize: tabMenuSize
|
|
72
|
+
}, tab));
|
|
73
|
+
})));
|
|
74
|
+
};
|
|
75
|
+
var _default = exports["default"] = DropdownTabs;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _buttons = _interopRequireDefault(require("../buttons"));
|
|
10
|
+
var helpers = _interopRequireWildcard(require("./tabHelpers"));
|
|
11
|
+
var _permissionValidations = require("../permissionValidations");
|
|
12
|
+
var _useTabs2 = require("./useTabs");
|
|
13
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
14
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
15
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
16
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }
|
|
17
|
+
var MenuTab = function MenuTab(_ref) {
|
|
18
|
+
var id = _ref.id,
|
|
19
|
+
title = _ref.title,
|
|
20
|
+
tabWidth = _ref.tabWidth,
|
|
21
|
+
iconAlign = _ref.iconAlign,
|
|
22
|
+
iconName = _ref.iconName,
|
|
23
|
+
icon = _ref.icon,
|
|
24
|
+
disabled = _ref.disabled,
|
|
25
|
+
permissionAttr = _ref.permissionAttr,
|
|
26
|
+
tabMenuSize = _ref.tabMenuSize,
|
|
27
|
+
tooltip = _ref.tooltip,
|
|
28
|
+
tooltipPosition = _ref.tooltipPosition,
|
|
29
|
+
tooltipWidth = _ref.tooltipWidth,
|
|
30
|
+
closeable = _ref.closeable;
|
|
31
|
+
var _useTabs = (0, _useTabs2.useTabs)(),
|
|
32
|
+
selectedTabId = _useTabs.selectedTabId,
|
|
33
|
+
selectTab = _useTabs.selectTab,
|
|
34
|
+
removeTab = _useTabs.removeTab,
|
|
35
|
+
tabsCount = _useTabs.tabsCount;
|
|
36
|
+
var onDenied = (0, _permissionValidations.actionsOnPermissionDenied)(helpers.onDeniedOptions, permissionAttr);
|
|
37
|
+
return onDenied.unvisible ? null : /*#__PURE__*/_react["default"].createElement("li", {
|
|
38
|
+
key: id,
|
|
39
|
+
style: {
|
|
40
|
+
width: tabWidth
|
|
41
|
+
},
|
|
42
|
+
className: "menuitem ".concat(selectedTabId === id && 'selected')
|
|
43
|
+
}, /*#__PURE__*/_react["default"].createElement(_buttons["default"], {
|
|
44
|
+
className: "btn menubutton",
|
|
45
|
+
boxShadow: false,
|
|
46
|
+
onClick: function onClick() {
|
|
47
|
+
return selectTab(id);
|
|
48
|
+
},
|
|
49
|
+
iconAlign: iconAlign,
|
|
50
|
+
iconName: iconName,
|
|
51
|
+
icon: icon,
|
|
52
|
+
disabled: disabled || !!onDenied.disabled,
|
|
53
|
+
label: title,
|
|
54
|
+
size: tabMenuSize,
|
|
55
|
+
tooltip: tooltip || title,
|
|
56
|
+
tooltipPosition: tooltipPosition,
|
|
57
|
+
tooltipWidth: tooltipWidth
|
|
58
|
+
}), closeable && tabsCount > 1 && /*#__PURE__*/_react["default"].createElement("button", {
|
|
59
|
+
className: "closepanel",
|
|
60
|
+
onClick: function onClick() {
|
|
61
|
+
return removeTab(id);
|
|
62
|
+
}
|
|
63
|
+
}));
|
|
64
|
+
};
|
|
65
|
+
var MenuTabs = /*#__PURE__*/_react["default"].forwardRef(function (_ref2, ref) {
|
|
66
|
+
var _ref2$tabs = _ref2.tabs,
|
|
67
|
+
tabs = _ref2$tabs === void 0 ? [] : _ref2$tabs,
|
|
68
|
+
_ref2$tabWidth = _ref2.tabWidth,
|
|
69
|
+
tabWidth = _ref2$tabWidth === void 0 ? 'auto' : _ref2$tabWidth,
|
|
70
|
+
_ref2$tabMenuSize = _ref2.tabMenuSize,
|
|
71
|
+
tabMenuSize = _ref2$tabMenuSize === void 0 ? 'medium' : _ref2$tabMenuSize,
|
|
72
|
+
_ref2$tabMenuAlign = _ref2.tabMenuAlign,
|
|
73
|
+
tabMenuAlign = _ref2$tabMenuAlign === void 0 ? 'left' : _ref2$tabMenuAlign,
|
|
74
|
+
_ref2$firstTabIdent = _ref2.firstTabIdent,
|
|
75
|
+
firstTabIdent = _ref2$firstTabIdent === void 0 ? false : _ref2$firstTabIdent;
|
|
76
|
+
return /*#__PURE__*/_react["default"].createElement("ul", {
|
|
77
|
+
className: "menu ".concat(firstTabIdent && '-firsttabident'),
|
|
78
|
+
style: helpers.menuStyles(tabMenuAlign),
|
|
79
|
+
ref: ref
|
|
80
|
+
}, tabs.map(function (tab) {
|
|
81
|
+
return /*#__PURE__*/_react["default"].createElement(MenuTab, _extends({
|
|
82
|
+
key: tab.id,
|
|
83
|
+
tabMenuSize: tabMenuSize,
|
|
84
|
+
tabWidth: tabWidth
|
|
85
|
+
}, tab));
|
|
86
|
+
}));
|
|
87
|
+
});
|
|
88
|
+
MenuTabs.displayName = 'MenuTabs';
|
|
89
|
+
var _default = exports["default"] = MenuTabs;
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.TabsContext = void 0;
|
|
8
|
+
exports.TabsProvider = TabsProvider;
|
|
9
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
10
|
+
var _lodash = _interopRequireDefault(require("lodash"));
|
|
11
|
+
var _tabHelpers = require("./tabHelpers");
|
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
13
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
14
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
15
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
16
|
+
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."); }
|
|
17
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
18
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
19
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
20
|
+
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."); }
|
|
21
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
22
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
23
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
24
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
25
|
+
var TabsContext = exports.TabsContext = /*#__PURE__*/(0, _react.createContext)({});
|
|
26
|
+
function TabsProvider(_ref) {
|
|
27
|
+
var _menuRef$current$clie, _menuRef$current;
|
|
28
|
+
var children = _ref.children,
|
|
29
|
+
tabsProp = _ref.tabs,
|
|
30
|
+
container = _ref.container,
|
|
31
|
+
_ref$selectedTab = _ref.selectedTab,
|
|
32
|
+
selectedTab = _ref$selectedTab === void 0 ? null : _ref$selectedTab,
|
|
33
|
+
onTabChange = _ref.onTabChange,
|
|
34
|
+
onTabClose = _ref.onTabClose,
|
|
35
|
+
tabsWidthProp = _ref.tabsWidth,
|
|
36
|
+
_ref$firstTabIdent = _ref.firstTabIdent,
|
|
37
|
+
firstTabIdent = _ref$firstTabIdent === void 0 ? false : _ref$firstTabIdent;
|
|
38
|
+
var _React$useState = _react["default"].useState(selectedTab),
|
|
39
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
40
|
+
selectedTabId = _React$useState2[0],
|
|
41
|
+
setSelectedTabId = _React$useState2[1];
|
|
42
|
+
var _useState = (0, _react.useState)(function () {
|
|
43
|
+
var _container$current$cl, _container$current;
|
|
44
|
+
return (_container$current$cl = (_container$current = container.current) === null || _container$current === void 0 ? void 0 : _container$current.clientWidth) !== null && _container$current$cl !== void 0 ? _container$current$cl : 0;
|
|
45
|
+
}),
|
|
46
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
47
|
+
containerWidth = _useState2[0],
|
|
48
|
+
setContainerWidth = _useState2[1];
|
|
49
|
+
var _useState3 = (0, _react.useState)((0, _tabHelpers.getTabs)(tabsProp)),
|
|
50
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
51
|
+
tabs = _useState4[0],
|
|
52
|
+
setTabs = _useState4[1];
|
|
53
|
+
var menuRef = (0, _react.useRef)(null);
|
|
54
|
+
var menuSize = ((_menuRef$current$clie = (_menuRef$current = menuRef.current) === null || _menuRef$current === void 0 ? void 0 : _menuRef$current.clientWidth) !== null && _menuRef$current$clie !== void 0 ? _menuRef$current$clie : 0) - 38 - (firstTabIdent ? 15 : 0);
|
|
55
|
+
var tabsWidth = (0, _react.useMemo)(function () {
|
|
56
|
+
if (typeof tabsWidthProp === 'string') return tabsWidthProp === 'auto' ? 100 : parseInt(tabsWidthProp) || 100;
|
|
57
|
+
return tabsWidthProp;
|
|
58
|
+
}, [tabsWidthProp]);
|
|
59
|
+
var maxTabs = Math.round(menuSize / tabsWidth);
|
|
60
|
+
if (selectedTab && selectedTab !== selectedTabId) {
|
|
61
|
+
setSelectedTabId(selectedTab);
|
|
62
|
+
}
|
|
63
|
+
if (tabs.length > 0 && selectedTabId === null) {
|
|
64
|
+
var _tabs$;
|
|
65
|
+
setSelectedTabId((_tabs$ = tabs[0]) === null || _tabs$ === void 0 ? void 0 : _tabs$.id);
|
|
66
|
+
}
|
|
67
|
+
var dropdownTabs = (0, _react.useMemo)(function () {
|
|
68
|
+
if (menuSize === 0) return [];
|
|
69
|
+
return tabs.slice(maxTabs);
|
|
70
|
+
}, [tabs, maxTabs, containerWidth]);
|
|
71
|
+
var menuTabs = (0, _react.useMemo)(function () {
|
|
72
|
+
return tabs.slice(0, maxTabs);
|
|
73
|
+
}, [tabs, maxTabs, containerWidth]);
|
|
74
|
+
var tabsCount = tabs.length;
|
|
75
|
+
var updateTabs = (0, _react.useCallback)(function (tabId) {
|
|
76
|
+
var tabInDropdownIndex = dropdownTabs.findIndex(function (tab) {
|
|
77
|
+
return tab.id === tabId;
|
|
78
|
+
});
|
|
79
|
+
if (tabInDropdownIndex !== -1) {
|
|
80
|
+
var tabIndex = tabs.findIndex(function (tab) {
|
|
81
|
+
return tab.id === tabId;
|
|
82
|
+
});
|
|
83
|
+
var tabInDropdown = dropdownTabs[tabInDropdownIndex];
|
|
84
|
+
setTabs(function (prevState) {
|
|
85
|
+
prevState.splice(tabIndex, 1);
|
|
86
|
+
return [tabInDropdown].concat(_toConsumableArray(prevState));
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
}, [setTabs, menuTabs, tabs, dropdownTabs]);
|
|
90
|
+
var selectTab = (0, _react.useCallback)(function (tabId) {
|
|
91
|
+
updateTabs(tabId);
|
|
92
|
+
setSelectedTabId(tabId);
|
|
93
|
+
if (onTabChange) {
|
|
94
|
+
onTabChange(String(tabId));
|
|
95
|
+
}
|
|
96
|
+
}, [onTabChange, setSelectedTabId, updateTabs]);
|
|
97
|
+
var removeTab = (0, _react.useCallback)(function (tabId) {
|
|
98
|
+
var tabIndex = tabs.findIndex(function (tab) {
|
|
99
|
+
return tab.id === tabId;
|
|
100
|
+
});
|
|
101
|
+
var newSelectedTab = tabIndex === 0 ? tabs[tabIndex + 1] : tabs[tabIndex - 1];
|
|
102
|
+
if (selectedTabId === tabId) {
|
|
103
|
+
selectTab(newSelectedTab.id);
|
|
104
|
+
}
|
|
105
|
+
if (tabIndex !== -1) {
|
|
106
|
+
setTabs(function (prevState) {
|
|
107
|
+
prevState.splice(tabIndex, 1);
|
|
108
|
+
return prevState;
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
if (onTabClose) {
|
|
112
|
+
onTabClose(String(tabId));
|
|
113
|
+
}
|
|
114
|
+
}, [onTabClose, tabs, dropdownTabs, selectedTabId]);
|
|
115
|
+
var onResizeContainer = (0, _react.useCallback)(function (contentRect) {
|
|
116
|
+
setContainerWidth(contentRect.width);
|
|
117
|
+
}, [setContainerWidth]);
|
|
118
|
+
(0, _react.useEffect)(function () {
|
|
119
|
+
var newTabs = (0, _tabHelpers.getTabs)(tabsProp);
|
|
120
|
+
if (newTabs !== tabs) {
|
|
121
|
+
var includedTabs = _lodash["default"].differenceBy(newTabs, tabs, 'id');
|
|
122
|
+
var excludedTabsIds = _lodash["default"].differenceBy(tabs, newTabs, 'id').map(function (tab) {
|
|
123
|
+
return tab.id;
|
|
124
|
+
});
|
|
125
|
+
setTabs(function (prevState) {
|
|
126
|
+
var currentTabs = prevState;
|
|
127
|
+
if (excludedTabsIds) {
|
|
128
|
+
currentTabs = currentTabs.filter(function (tab) {
|
|
129
|
+
return !excludedTabsIds.includes(tab.id);
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
return [].concat(_toConsumableArray(currentTabs), _toConsumableArray(includedTabs));
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
}, [tabsProp]);
|
|
136
|
+
(0, _react.useEffect)(function () {
|
|
137
|
+
var resizeObserver = new ResizeObserver(function (_ref2) {
|
|
138
|
+
var _ref3 = _slicedToArray(_ref2, 1),
|
|
139
|
+
entry = _ref3[0];
|
|
140
|
+
onResizeContainer(entry.contentRect);
|
|
141
|
+
});
|
|
142
|
+
if (container.current) resizeObserver.observe(container.current);
|
|
143
|
+
return function () {
|
|
144
|
+
resizeObserver.disconnect();
|
|
145
|
+
};
|
|
146
|
+
}, [container.current, onResizeContainer]);
|
|
147
|
+
return /*#__PURE__*/_react["default"].createElement(TabsContext.Provider, {
|
|
148
|
+
value: {
|
|
149
|
+
tabs: tabs,
|
|
150
|
+
menuTabs: menuTabs,
|
|
151
|
+
dropdownTabs: dropdownTabs,
|
|
152
|
+
containerWidth: containerWidth,
|
|
153
|
+
tabsCount: tabsCount,
|
|
154
|
+
updateTabs: updateTabs,
|
|
155
|
+
selectTab: selectTab,
|
|
156
|
+
selectedTabId: selectedTabId,
|
|
157
|
+
removeTab: removeTab,
|
|
158
|
+
menuRef: menuRef
|
|
159
|
+
}
|
|
160
|
+
}, children);
|
|
161
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useTabs = useTabs;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _context = require("./context");
|
|
9
|
+
function useTabs() {
|
|
10
|
+
return (0, _react.useContext)(_context.TabsContext);
|
|
11
|
+
}
|