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.
@@ -9,7 +9,7 @@
9
9
  // ".gitignore": true,
10
10
  },
11
11
  "editor.codeActionsOnSave": {
12
- "source.fixAll.eslint": "explicit"
12
+ "source.fixAll.eslint": true
13
13
  },
14
14
  "cSpell.words": [
15
15
  "licenca"
@@ -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
+ }
@@ -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
- }), _react.default.Children.toArray(props.buttons.map(function (button) {
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;
@@ -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
  };
@@ -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 { MouseEvent, KeyboardEvent, DragEvent, MutableRefObject, RefObject, CSSProperties } from 'react';
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?: JSX.Element | JSX.Element[];
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
- customClassForInputContent: "-absolute -pointEventDisabled -disabledVisualApply",
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
- }), popUpDescription(), buttonRemoveFile()), errorMessages && helperBase.getErrorMessages(errorMessages));
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 = _interopRequireWildcard(require("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 _InputTextBase = _interopRequireDefault(require("../base/InputTextBase"));
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
- _props$removeZeroLeft = props.removeZeroLeft,
43
- removeZeroLeft = _props$removeZeroLeft === void 0 ? true : _props$removeZeroLeft;
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
- onChange: onChange,
70
- type: "number"
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
- onChange?: (e?: CustomInputEvent) => void;
15
- removeZeroLeft?: boolean;
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 ICurrencyProps extends IMaskHOCProps {
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 (!insideComponents.includes(target.className) && target !== selectWrapper.current && selectWrapper.current && !selectWrapper.current.contains(target) && dropdownRef.current && !dropdownRef.current.contains(target)) {
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
- setInsideComponent(insideComponents.includes(target.className));
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 && opened) {
167
- if (!currents.some(function (current) {
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 = dataCombo ? dataCombo.findIndex(function (d) {
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 = dataCombo && index === dataCombo.length - 1 ? 0 : index + 1;
171
+ index = dataSource && index === dataSource.length - 1 ? 0 : index + 1;
181
172
  } else {
182
- index = dataCombo && index === 0 ? dataCombo.length - 1 : index - 1;
173
+ index = dataSource && index === 0 ? dataSource.length - 1 : index - 1;
183
174
  }
184
- if (dataCombo && dataCombo.length) {
185
- if (descriptionKeyIsString && dataCombo[index][descriptionKey]) {
186
- setInputValue(dataCombo[index][descriptionKey]);
187
- } else if (!descriptionKeyIsString) setInputValue([descriptionKey(dataCombo[index])]);
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 (dataCombo) setSelected(dataCombo[index]);
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 && opened) {
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",
@@ -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<Element>) => void;
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
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "linear-react-components-ui",
3
- "version": "1.0.17-beta.5",
3
+ "version": "1.0.18-beta.0",
4
4
  "description": "Linear Sistemas ReactJs Components",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib/index.cjs",