linear-react-components-ui 0.4.76-beta.23 → 0.4.76-beta.26
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/lib/assets/styles/effects.scss +20 -0
- package/lib/assets/styles/table.scss +13 -0
- package/lib/assets/styles/uitour.scss +112 -0
- package/lib/form/index.js +21 -40
- package/lib/icons/helper.js +4 -0
- package/lib/inputs/base/InputTextBase.js +23 -3
- package/lib/inputs/date/helper.js +16 -0
- package/lib/inputs/mask/Phone.js +1 -10
- package/lib/inputs/select/multiple/index.js +2 -2
- package/lib/inputs/select/simple/index.js +2 -2
- package/lib/internals/constants.js +4 -3
- package/lib/list/Item.js +25 -7
- package/lib/list/index.js +88 -10
- package/lib/list/list.spec.js +230 -102
- package/lib/menus/sidenav/NavMenuItem.js +12 -4
- package/lib/menus/sidenav/index.js +23 -3
- package/lib/menus/sidenav/popup_menu_search/index.js +13 -9
- package/lib/menus/sidenav/sidenav.spec.js +78 -19
- package/lib/skeleton/SkeletonContainer.js +1 -1
- package/lib/table/Body.js +41 -7
- package/lib/table/Header.js +12 -1
- package/lib/table/HeaderColumn.js +4 -2
- package/lib/table/Row.js +14 -7
- package/lib/table/RowColumn.js +4 -3
- package/lib/table/helpers.js +11 -1
- package/lib/table/index.js +32 -8
- package/lib/uitour/helpers.js +15 -0
- package/lib/uitour/index.js +271 -0
- package/lib/uitour/uitour.spec.js +176 -0
- package/package.json +1 -1
|
@@ -731,3 +731,23 @@
|
|
|
731
731
|
left: 100%;
|
|
732
732
|
}
|
|
733
733
|
}
|
|
734
|
+
|
|
735
|
+
@keyframes slideRightToLeftWithFade {
|
|
736
|
+
from {
|
|
737
|
+
opacity: 0;
|
|
738
|
+
transform: translateX(2%);
|
|
739
|
+
} to {
|
|
740
|
+
opacity: 1;
|
|
741
|
+
transform: translateX(0);
|
|
742
|
+
}
|
|
743
|
+
}
|
|
744
|
+
|
|
745
|
+
@keyframes slideLeftToRightWithFade {
|
|
746
|
+
from {
|
|
747
|
+
opacity: 0;
|
|
748
|
+
transform: translateX(-2%);
|
|
749
|
+
} to {
|
|
750
|
+
opacity: 1;
|
|
751
|
+
transform: translateX(0);
|
|
752
|
+
}
|
|
753
|
+
}
|
|
@@ -19,6 +19,19 @@
|
|
|
19
19
|
> .bodycontainer {
|
|
20
20
|
overflow-y: auto;
|
|
21
21
|
}
|
|
22
|
+
> .bodycontainer > .innertable > .tbody,
|
|
23
|
+
> .tbody {
|
|
24
|
+
position: relative;
|
|
25
|
+
&.skeleton-transparency::before {
|
|
26
|
+
content: '';
|
|
27
|
+
position: absolute;
|
|
28
|
+
width: 100%;
|
|
29
|
+
height: 100%;
|
|
30
|
+
background: rgb(255,255,255);
|
|
31
|
+
background: linear-gradient( 180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.2) 30%,
|
|
32
|
+
rgba(255,255,255,0.6) 70%,rgba(255,255,255,0.8) 100%);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
22
35
|
> .headercontainer > .innertable > .theader > .trow,
|
|
23
36
|
> .bodycontainer > .innertable > .tbody > .trow,
|
|
24
37
|
> .theader > .trow,
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
@import "commons.scss";
|
|
2
|
+
@import "colors.scss";
|
|
3
|
+
@import "effects.scss";
|
|
4
|
+
|
|
5
|
+
$step-arrow-size: 22px;
|
|
6
|
+
$step-arrow-shadow-size: 26px;
|
|
7
|
+
%step-arrow {
|
|
8
|
+
content: '';
|
|
9
|
+
position: absolute;
|
|
10
|
+
border-bottom: $step-arrow-size solid transparent;
|
|
11
|
+
border-right: $step-arrow-size solid #fff;
|
|
12
|
+
border-top: $step-arrow-size solid transparent;
|
|
13
|
+
}
|
|
14
|
+
%step-arrow-shadow {
|
|
15
|
+
content: '';
|
|
16
|
+
position: absolute;
|
|
17
|
+
border-bottom: $step-arrow-shadow-size solid transparent;
|
|
18
|
+
border-right: $step-arrow-shadow-size solid rgba(0, 0, 0, 0.6);
|
|
19
|
+
border-top: $step-arrow-shadow-size solid transparent;
|
|
20
|
+
}
|
|
21
|
+
.uitour-component {
|
|
22
|
+
position: absolute;
|
|
23
|
+
width: 100%;
|
|
24
|
+
height: 100vh;
|
|
25
|
+
left: 0;
|
|
26
|
+
top: 0;
|
|
27
|
+
z-index: 99999999999999999999;
|
|
28
|
+
> .step {
|
|
29
|
+
background-color: #fff;
|
|
30
|
+
position: relative;
|
|
31
|
+
max-width: 450px;
|
|
32
|
+
display: flex;
|
|
33
|
+
flex-direction: column;
|
|
34
|
+
border: 3px solid rgba(0, 0, 0, 0.6);
|
|
35
|
+
border-radius: 8px;
|
|
36
|
+
padding: 5px 0;
|
|
37
|
+
&.-left {
|
|
38
|
+
animation: slideRightToLeftWithFade 0.5s;
|
|
39
|
+
&:before {
|
|
40
|
+
@extend %step-arrow-shadow;
|
|
41
|
+
top: 6px;
|
|
42
|
+
left: -$step-arrow-shadow-size;
|
|
43
|
+
}
|
|
44
|
+
&:after {
|
|
45
|
+
@extend %step-arrow;
|
|
46
|
+
top: 10px;
|
|
47
|
+
left: -$step-arrow-size;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
&.-right {
|
|
51
|
+
animation: slideLeftToRightWithFade 0.5s;
|
|
52
|
+
&:before {
|
|
53
|
+
@extend %step-arrow-shadow;
|
|
54
|
+
top: 6px;
|
|
55
|
+
right: -$step-arrow-shadow-size;
|
|
56
|
+
transform: rotate(180deg);
|
|
57
|
+
}
|
|
58
|
+
&:after {
|
|
59
|
+
@extend %step-arrow;
|
|
60
|
+
top: 10px;
|
|
61
|
+
right: -$step-arrow-size;
|
|
62
|
+
transform: rotate(180deg);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
> .closebutton {
|
|
66
|
+
align-self: flex-end;
|
|
67
|
+
padding: 0 5px 5px;
|
|
68
|
+
line-height: 0;
|
|
69
|
+
}
|
|
70
|
+
> .content {
|
|
71
|
+
width: 100%;
|
|
72
|
+
padding: 0px 20px;
|
|
73
|
+
margin-bottom: 0;
|
|
74
|
+
display: flex;
|
|
75
|
+
> .number {
|
|
76
|
+
display: flex;
|
|
77
|
+
width: 40px;
|
|
78
|
+
height: 40px;
|
|
79
|
+
align-items: center;
|
|
80
|
+
justify-content: center;
|
|
81
|
+
border-radius: 50%;
|
|
82
|
+
background-color: $success-color;
|
|
83
|
+
color: #fff;
|
|
84
|
+
margin-right: 10px;
|
|
85
|
+
font-weight: bold;
|
|
86
|
+
font-size: 20px;
|
|
87
|
+
line-height: 0;
|
|
88
|
+
}
|
|
89
|
+
> .about {
|
|
90
|
+
flex: 1;
|
|
91
|
+
margin-bottom: 10px;
|
|
92
|
+
> h3 {
|
|
93
|
+
font-size: 16px;
|
|
94
|
+
font-weight: bold;
|
|
95
|
+
}
|
|
96
|
+
> .description {
|
|
97
|
+
font-size: 14px;
|
|
98
|
+
line-height: 18px;
|
|
99
|
+
strong {
|
|
100
|
+
font-weight: bold;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
> .footer {
|
|
106
|
+
display: flex;
|
|
107
|
+
justify-content: flex-end;
|
|
108
|
+
gap: 10px;
|
|
109
|
+
padding: 5px 10px 10px;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
package/lib/form/index.js
CHANGED
|
@@ -91,8 +91,7 @@ var Form = function Form(_ref) {
|
|
|
91
91
|
onValidateForm = _ref.onValidateForm,
|
|
92
92
|
externalFieldErrors = _ref.externalFieldErrors,
|
|
93
93
|
onSubmit = _ref.onSubmit,
|
|
94
|
-
skeletonize = _ref.skeletonize
|
|
95
|
-
disabled = _ref.disabled;
|
|
94
|
+
skeletonize = _ref.skeletonize;
|
|
96
95
|
|
|
97
96
|
var _useState = (0, _react.useState)(dataSource),
|
|
98
97
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -232,29 +231,10 @@ var Form = function Form(_ref) {
|
|
|
232
231
|
};
|
|
233
232
|
};
|
|
234
233
|
|
|
235
|
-
var formProps = function formProps() {
|
|
236
|
-
var propsForm = null;
|
|
237
|
-
|
|
238
|
-
if (!disabled) {
|
|
239
|
-
propsForm = {
|
|
240
|
-
onSubmit: function onSubmit(e) {
|
|
241
|
-
return e.preventDefault();
|
|
242
|
-
},
|
|
243
|
-
onKeyPress: function onKeyPress(e) {
|
|
244
|
-
return submitOnEnter(e);
|
|
245
|
-
}
|
|
246
|
-
};
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
return propsForm;
|
|
250
|
-
};
|
|
251
|
-
|
|
252
234
|
(0, _react.useEffect)(function () {
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
if (handlerValidates) handlerValidates(checkIsValid);
|
|
257
|
-
}
|
|
235
|
+
handlerSubmit(onFormSubmit);
|
|
236
|
+
if (handlerReset) handlerReset(onReset);
|
|
237
|
+
if (handlerValidates) handlerValidates(checkIsValid);
|
|
258
238
|
}, [data]);
|
|
259
239
|
(0, _react.useEffect)(function () {
|
|
260
240
|
if (securityBeforeUnload) {
|
|
@@ -267,24 +247,27 @@ var Form = function Form(_ref) {
|
|
|
267
247
|
};
|
|
268
248
|
}, [securityBeforeUnload, onBeforeUnload]);
|
|
269
249
|
(0, _react.useEffect)(function () {
|
|
270
|
-
if (
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
setSubmitFormOnEnter(submitOnPressEnterKey);
|
|
277
|
-
}
|
|
250
|
+
if (submitOnPressEnterKey !== submitFormOnEnter || dataSource !== originalData) {
|
|
251
|
+
setData(dataSource);
|
|
252
|
+
setOriginalData(function (prevState) {
|
|
253
|
+
return prevState || dataSource;
|
|
254
|
+
});
|
|
255
|
+
setSubmitFormOnEnter(submitOnPressEnterKey);
|
|
278
256
|
}
|
|
279
257
|
}, [submitOnPressEnterKey, dataSource]);
|
|
280
258
|
return /*#__PURE__*/_react["default"].createElement(_react.Fragment, null, /*#__PURE__*/_react["default"].createElement(_helpers.FormContext.Provider, {
|
|
281
259
|
value: getContextValue()
|
|
282
|
-
}, /*#__PURE__*/_react["default"].createElement("form",
|
|
283
|
-
style: style
|
|
284
|
-
|
|
260
|
+
}, /*#__PURE__*/_react["default"].createElement("form", {
|
|
261
|
+
style: style,
|
|
262
|
+
onSubmit: function onSubmit(e) {
|
|
263
|
+
return e.preventDefault();
|
|
264
|
+
},
|
|
265
|
+
onKeyPress: function onKeyPress(e) {
|
|
266
|
+
return submitOnEnter(e);
|
|
267
|
+
},
|
|
285
268
|
role: "presentation",
|
|
286
269
|
className: "form-component ".concat(customClass)
|
|
287
|
-
}
|
|
270
|
+
}, children)), /*#__PURE__*/_react["default"].createElement(_dialog.DialogQuestion, {
|
|
288
271
|
zIndex: "99999999",
|
|
289
272
|
title: securityTitle || 'Dados Alterados',
|
|
290
273
|
text: securityText || 'Você possui dados alterados, confirma o fechamento?',
|
|
@@ -310,8 +293,7 @@ Form.propTypes = {
|
|
|
310
293
|
securityTitle: _propTypes["default"].string,
|
|
311
294
|
securityText: _propTypes["default"].string,
|
|
312
295
|
externalFieldErrors: _propTypes["default"].object,
|
|
313
|
-
skeletonize: _propTypes["default"].bool
|
|
314
|
-
disabled: _propTypes["default"].bool
|
|
296
|
+
skeletonize: _propTypes["default"].bool
|
|
315
297
|
};
|
|
316
298
|
Form.defaultProps = {
|
|
317
299
|
onValidateForm: undefined,
|
|
@@ -325,8 +307,7 @@ Form.defaultProps = {
|
|
|
325
307
|
securityTitle: null,
|
|
326
308
|
securityText: null,
|
|
327
309
|
externalFieldErrors: {},
|
|
328
|
-
skeletonize: false
|
|
329
|
-
disabled: false
|
|
310
|
+
skeletonize: false
|
|
330
311
|
};
|
|
331
312
|
var _default = Form;
|
|
332
313
|
exports["default"] = _default;
|
package/lib/icons/helper.js
CHANGED
|
@@ -554,6 +554,10 @@ function getIcons() {
|
|
|
554
554
|
flipVertical4: {
|
|
555
555
|
viewbox: '0 0 16 16',
|
|
556
556
|
paths: ['M0.854 5.146c-0.143-0.143-0.358-0.186-0.545-0.108s-0.309 0.26-0.309 0.462v10c0 0.202 0.122 0.385 0.309 0.462 0.062 0.026 0.127 0.038 0.191 0.038 0.13 0 0.258-0.051 0.354-0.146l5-5c0.195-0.195 0.195-0.512 0-0.707l-5-5z', 'M7.5 7c-0.276 0-0.5-0.224-0.5-0.5v-1c0-0.276 0.224-0.5 0.5-0.5s0.5 0.224 0.5 0.5v1c0 0.276-0.224 0.5-0.5 0.5z', 'M7.5 10c-0.276 0-0.5-0.224-0.5-0.5v-1c0-0.276 0.224-0.5 0.5-0.5s0.5 0.224 0.5 0.5v1c0 0.276-0.224 0.5-0.5 0.5z', 'M7.5 13c-0.276 0-0.5-0.224-0.5-0.5v-1c0-0.276 0.224-0.5 0.5-0.5s0.5 0.224 0.5 0.5v1c0 0.276-0.224 0.5-0.5 0.5z', 'M7.5 16c-0.276 0-0.5-0.224-0.5-0.5v-1c0-0.276 0.224-0.5 0.5-0.5s0.5 0.224 0.5 0.5v1c0 0.276-0.224 0.5-0.5 0.5z', 'M14.691 5.038c-0.062-0.026-0.127-0.038-0.191-0.038-0.13 0-0.258 0.051-0.354 0.146l-5 5c-0.195 0.195-0.195 0.512 0 0.707l5 5c0.143 0.143 0.358 0.186 0.545 0.108s0.309-0.26 0.309-0.462v-10c0-0.202-0.122-0.385-0.309-0.462zM13.875 13.991l-3.491-3.491 3.491-3.491v6.982z', 'M11.5 3c-0.943-1.257-2.419-2-4-2-1.672 0-3.226 0.831-4.158 2.222-0.154 0.229-0.092 0.54 0.137 0.694s0.54 0.092 0.694-0.137c0.745-1.113 1.989-1.778 3.327-1.778 1.313 0 2.534 0.64 3.284 1.716l-1.284 1.284h3.5v-3.5l-1.5 1.5z']
|
|
557
|
+
},
|
|
558
|
+
tools: {
|
|
559
|
+
viewbox: '0 0 20 16',
|
|
560
|
+
paths: ['M7.696 11.009l2.295 2.295-1.823 2.341c-0.334 0.437-0.926 0.476-1.315 0.087l-1.586-1.586c-0.389-0.389-0.35-0.98 0.087-1.315l2.341-1.823zM19.899 4.101l-2.399 2.399-3-3 2.399-2.399c-0.289-0.066-0.59-0.101-0.899-0.101-2.209 0-4 1.791-4 4 0 0.797 0.233 1.539 0.635 2.163l-2.233 1.739-3.402-3.402 4.5-4.5h-5l-2.22 2.22-0.22-0.22h-1.061v1.061l0.22 0.22-3.22 3.22 2.5 2.5 3-3 9 9 1.5-1.5-3.902-3.902 1.739-2.233c0.624 0.402 1.366 0.635 2.163 0.635 2.209 0 4-1.791 4-4 0-0.309-0.035-0.61-0.101-0.899z']
|
|
557
561
|
}
|
|
558
562
|
};
|
|
559
563
|
return icons;
|
|
@@ -79,7 +79,12 @@ var InputTextBase = function InputTextBase(props) {
|
|
|
79
79
|
onDeniedActions = props.onDeniedActions,
|
|
80
80
|
handlerSetOnDenied = props.handlerSetOnDenied,
|
|
81
81
|
targetRef = props.targetRef,
|
|
82
|
-
skeletonize = props.skeletonize
|
|
82
|
+
skeletonize = props.skeletonize,
|
|
83
|
+
style = props.style,
|
|
84
|
+
styleForInputContent = props.styleForInputContent,
|
|
85
|
+
styleForWrapper = props.styleForWrapper,
|
|
86
|
+
styleForLabel = props.styleForLabel,
|
|
87
|
+
styleForSideButtons = props.styleForSideButtons;
|
|
83
88
|
var options = [_permissionValidations.OPTIONS_ON_DENIED.disabled, _permissionValidations.OPTIONS_ON_DENIED.unvisible, _permissionValidations.OPTIONS_ON_DENIED.readOnly, _permissionValidations.OPTIONS_ON_DENIED.hideContent];
|
|
84
89
|
|
|
85
90
|
var _useState = (0, _react.useState)(onDeniedActions || (0, _permissionValidations.actionsOnPermissionDenied)(permissionAttr, options)),
|
|
@@ -153,23 +158,28 @@ var InputTextBase = function InputTextBase(props) {
|
|
|
153
158
|
|
|
154
159
|
if (!visible || unvisible) return null;
|
|
155
160
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
161
|
+
style: style,
|
|
156
162
|
className: "input-base-component ".concat(skeletonize ? '-skeletonized' : '', " ").concat(customClass),
|
|
157
163
|
ref: inputBaseRef
|
|
158
164
|
}, label && /*#__PURE__*/_react["default"].createElement("div", {
|
|
159
165
|
className: "labelcontainer"
|
|
160
166
|
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
167
|
+
style: styleForLabel,
|
|
161
168
|
className: "label ".concat(customClassForLabel, " ").concat(labelUppercase && ' -uppercase')
|
|
162
169
|
}, label, required && /*#__PURE__*/_react["default"].createElement("span", {
|
|
163
170
|
className: "-requiredlabel"
|
|
164
171
|
}, "*"))), /*#__PURE__*/_react["default"].createElement("div", {
|
|
165
172
|
"data-testid": "testInputWrapper",
|
|
173
|
+
style: styleForWrapper,
|
|
166
174
|
className: helpers.getInputWrapperClass(_extends({}, props, {
|
|
167
175
|
disabled: shouldDisable() || hideContent
|
|
168
176
|
}))
|
|
169
177
|
}, leftElements && /*#__PURE__*/_react["default"].createElement("div", {
|
|
178
|
+
style: styleForSideButtons,
|
|
170
179
|
className: "sidebuttons ".concat(customClassForSideButtons)
|
|
171
180
|
}, leftElements), /*#__PURE__*/_react["default"].createElement("div", {
|
|
172
181
|
"data-testid": "testInputContent",
|
|
182
|
+
style: styleForInputContent,
|
|
173
183
|
className: "inputcontent ".concat(customClassForInputContent)
|
|
174
184
|
}, type === 'textarea' ? /*#__PURE__*/_react["default"].createElement("textarea", _extends({
|
|
175
185
|
rows: props.rows,
|
|
@@ -223,7 +233,12 @@ InputTextBase.propTypes = {
|
|
|
223
233
|
handlerSetOnDenied: _propTypes["default"].func,
|
|
224
234
|
targetRef: _propTypes["default"].func,
|
|
225
235
|
gridLayout: _propTypes["default"].string,
|
|
226
|
-
skeletonize: _propTypes["default"].bool
|
|
236
|
+
skeletonize: _propTypes["default"].bool,
|
|
237
|
+
style: _propTypes["default"].object,
|
|
238
|
+
styleForInputContent: _propTypes["default"].object,
|
|
239
|
+
styleForWrapper: _propTypes["default"].object,
|
|
240
|
+
styleForLabel: _propTypes["default"].object,
|
|
241
|
+
styleForSideButtons: _propTypes["default"].object
|
|
227
242
|
};
|
|
228
243
|
InputTextBase.defaultProps = {
|
|
229
244
|
value: undefined,
|
|
@@ -266,7 +281,12 @@ InputTextBase.defaultProps = {
|
|
|
266
281
|
handlerSetOnDenied: undefined,
|
|
267
282
|
targetRef: undefined,
|
|
268
283
|
gridLayout: undefined,
|
|
269
|
-
skeletonize: false
|
|
284
|
+
skeletonize: false,
|
|
285
|
+
style: {},
|
|
286
|
+
styleForInputContent: {},
|
|
287
|
+
styleForWrapper: {},
|
|
288
|
+
styleForLabel: {},
|
|
289
|
+
styleForSideButtons: {}
|
|
270
290
|
};
|
|
271
291
|
|
|
272
292
|
var _default = (0, _inputHOC["default"])((0, _withTooltip["default"])(InputTextBase));
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
|
|
8
|
+
var getCalendarDropdownStyle = function getCalendarDropdownStyle(_ref) {
|
|
9
|
+
var topPosition = _ref.topPosition,
|
|
10
|
+
leftPosition = _ref.leftPosition,
|
|
11
|
+
width = _ref.width;
|
|
12
|
+
return "top: ".concat(topPosition, "px;\n left: ").concat(leftPosition, "px;\n width:").concat(width, "px");
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
var _default = getCalendarDropdownStyle;
|
|
16
|
+
exports["default"] = _default;
|
package/lib/inputs/mask/Phone.js
CHANGED
|
@@ -7,8 +7,6 @@ exports["default"] = void 0;
|
|
|
7
7
|
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
9
|
|
|
10
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
-
|
|
12
10
|
var _BaseMask = _interopRequireDefault(require("./BaseMask"));
|
|
13
11
|
|
|
14
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
@@ -16,17 +14,10 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
|
|
|
16
14
|
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
17
15
|
|
|
18
16
|
var PhoneField = function PhoneField(props) {
|
|
19
|
-
var cellNumber = props.cellNumber;
|
|
20
17
|
return /*#__PURE__*/_react["default"].createElement(_BaseMask["default"], _extends({}, props, {
|
|
21
|
-
mask:
|
|
18
|
+
mask: "(00) 0000-0000"
|
|
22
19
|
}));
|
|
23
20
|
};
|
|
24
21
|
|
|
25
|
-
PhoneField.propTypes = {
|
|
26
|
-
cellNumber: _propTypes["default"].bool
|
|
27
|
-
};
|
|
28
|
-
PhoneField.defaultProps = {
|
|
29
|
-
cellNumber: false
|
|
30
|
-
};
|
|
31
22
|
var _default = PhoneField;
|
|
32
23
|
exports["default"] = _default;
|
|
@@ -270,12 +270,12 @@ var MultipleSelect = /*#__PURE__*/function (_Component) {
|
|
|
270
270
|
|
|
271
271
|
if (e.keyCode === constants.keyCodes.ENTER) {
|
|
272
272
|
this.onSelect(selected);
|
|
273
|
-
} else if ([constants.keyCodes.
|
|
273
|
+
} else if ([constants.keyCodes.ARROW_UP, constants.keyCodes.ARROW_DOWN].includes(e.keyCode)) {
|
|
274
274
|
var index = dataSource.findIndex(function (d) {
|
|
275
275
|
return d === selected;
|
|
276
276
|
});
|
|
277
277
|
|
|
278
|
-
if (e.keyCode === constants.keyCodes.
|
|
278
|
+
if (e.keyCode === constants.keyCodes.ARROW_DOWN) {
|
|
279
279
|
index = index === dataSource.length - 1 ? 0 : index + 1;
|
|
280
280
|
} else {
|
|
281
281
|
index = index === 0 ? dataSource.length - 1 : index - 1;
|
|
@@ -385,12 +385,12 @@ var _initialiseProps = function _initialiseProps() {
|
|
|
385
385
|
e.preventDefault();
|
|
386
386
|
|
|
387
387
|
_this3.onSelect(selected);
|
|
388
|
-
} else if ([constants.keyCodes.
|
|
388
|
+
} else if ([constants.keyCodes.ARROW_UP, constants.keyCodes.ARROW_DOWN].includes(e.keyCode)) {
|
|
389
389
|
var index = dataSource.findIndex(function (d) {
|
|
390
390
|
return d[idKey] === selected[idKey];
|
|
391
391
|
});
|
|
392
392
|
|
|
393
|
-
if (e.keyCode === constants.keyCodes.
|
|
393
|
+
if (e.keyCode === constants.keyCodes.ARROW_DOWN) {
|
|
394
394
|
index = index === dataSource.length - 1 ? 0 : index + 1;
|
|
395
395
|
} else {
|
|
396
396
|
index = index === 0 ? dataSource.length - 1 : index - 1;
|
|
@@ -7,9 +7,10 @@ exports.PARA_ENGANAR_O_ESLINT_JA_QUE_TENHO_SO_UMA_CONSTANTE = exports.keyCodes =
|
|
|
7
7
|
var keyCodes = {
|
|
8
8
|
TAB: 9,
|
|
9
9
|
ENTER: 13,
|
|
10
|
-
ARROW_UP:
|
|
11
|
-
ARROW_DOWN:
|
|
12
|
-
BACKSPACE: 8
|
|
10
|
+
ARROW_UP: 38,
|
|
11
|
+
ARROW_DOWN: 40,
|
|
12
|
+
BACKSPACE: 8,
|
|
13
|
+
F: 70
|
|
13
14
|
};
|
|
14
15
|
exports.keyCodes = keyCodes;
|
|
15
16
|
var PARA_ENGANAR_O_ESLINT_JA_QUE_TENHO_SO_UMA_CONSTANTE = 1;
|
package/lib/list/Item.js
CHANGED
|
@@ -21,6 +21,8 @@ var _helpers = _interopRequireDefault(require("./helpers"));
|
|
|
21
21
|
|
|
22
22
|
var _withDropdown = require("../dropdown/withDropdown");
|
|
23
23
|
|
|
24
|
+
var constants = _interopRequireWildcard(require("../internals/constants"));
|
|
25
|
+
|
|
24
26
|
var _permissionValidations = require("../permissionValidations");
|
|
25
27
|
|
|
26
28
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
@@ -44,7 +46,7 @@ function _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "und
|
|
|
44
46
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
45
47
|
|
|
46
48
|
var Item = function Item(props) {
|
|
47
|
-
var
|
|
49
|
+
var onClick = props.onClick,
|
|
48
50
|
leftIconName = props.leftIconName,
|
|
49
51
|
leftIcon = props.leftIcon,
|
|
50
52
|
displayCheckbox = props.displayCheckbox,
|
|
@@ -68,7 +70,8 @@ var Item = function Item(props) {
|
|
|
68
70
|
var _useContext = (0, _react.useContext)(_helpers["default"]),
|
|
69
71
|
handleSelectItem = _useContext.handleSelectItem,
|
|
70
72
|
selectable = _useContext.selectable,
|
|
71
|
-
selectedItemId = _useContext.selectedItemId
|
|
73
|
+
selectedItemId = _useContext.selectedItemId,
|
|
74
|
+
selectedItemRef = _useContext.selectedItemRef;
|
|
72
75
|
|
|
73
76
|
var dropdownContext = (0, _react.useContext)(_withDropdown.WithDropdownContext);
|
|
74
77
|
var options = [_permissionValidations.OPTIONS_ON_DENIED.disabled, _permissionValidations.OPTIONS_ON_DENIED.unvisible];
|
|
@@ -77,6 +80,8 @@ var Item = function Item(props) {
|
|
|
77
80
|
_useState2 = _slicedToArray(_useState, 1),
|
|
78
81
|
onDenied = _useState2[0];
|
|
79
82
|
|
|
83
|
+
var history = (0, _reactRouterDom.useHistory)();
|
|
84
|
+
|
|
80
85
|
var shouldDisable = function shouldDisable() {
|
|
81
86
|
return disabled || onDenied.disabled;
|
|
82
87
|
};
|
|
@@ -97,16 +102,28 @@ var Item = function Item(props) {
|
|
|
97
102
|
return null;
|
|
98
103
|
};
|
|
99
104
|
|
|
105
|
+
var handleOnSelectItem = function handleOnSelectItem(e) {
|
|
106
|
+
if (onClick !== undefined) onClick(e, itemId);
|
|
107
|
+
if (dropdownContext) dropdownContext.handleDropdownClose();
|
|
108
|
+
if (selectable) handleSelectItem(itemId, onClick);
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
var onKeyDown = function onKeyDown(e) {
|
|
112
|
+
if ([constants.keyCodes.ENTER].includes(e.keyCode)) {
|
|
113
|
+
e.preventDefault();
|
|
114
|
+
handleOnSelectItem(e);
|
|
115
|
+
if (url) history.push(url);
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
|
|
100
119
|
var getProps = function getProps() {
|
|
101
120
|
if (shouldDisable()) return undefined;
|
|
102
|
-
if (
|
|
121
|
+
if (onClick === undefined && dropdownContext === undefined && !selectable) return null;
|
|
103
122
|
return {
|
|
104
123
|
onClick: function onClick(e) {
|
|
105
|
-
|
|
106
|
-
if (dropdownContext) dropdownContext.handleDropdownClose();
|
|
107
|
-
if (selectable) handleSelectItem(itemId, _onClick);
|
|
124
|
+
handleOnSelectItem(e);
|
|
108
125
|
},
|
|
109
|
-
onKeyDown:
|
|
126
|
+
onKeyDown: onKeyDown,
|
|
110
127
|
role: 'button',
|
|
111
128
|
tabIndex: '0'
|
|
112
129
|
};
|
|
@@ -114,6 +131,7 @@ var Item = function Item(props) {
|
|
|
114
131
|
|
|
115
132
|
if (!visible || onDenied.unvisible) return null;
|
|
116
133
|
return /*#__PURE__*/_react["default"].createElement("li", _extends({
|
|
134
|
+
ref: itemId && selectedItemId === itemId ? selectedItemRef : null,
|
|
117
135
|
style: style,
|
|
118
136
|
className: "item-container ".concat(hovered && 'hovered', "\n ").concat(itemId && selectedItemId === itemId ? '-activedlist' : '')
|
|
119
137
|
}, getProps(), {
|
package/lib/list/index.js
CHANGED
|
@@ -33,6 +33,8 @@ var _Header = _interopRequireDefault(require("./Header"));
|
|
|
33
33
|
|
|
34
34
|
var _Item = _interopRequireDefault(require("./Item"));
|
|
35
35
|
|
|
36
|
+
var constants = _interopRequireWildcard(require("../internals/constants"));
|
|
37
|
+
|
|
36
38
|
var _Separator = _interopRequireDefault(require("./Separator"));
|
|
37
39
|
|
|
38
40
|
require("../assets/styles/list.scss");
|
|
@@ -58,6 +60,19 @@ function _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "und
|
|
|
58
60
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
59
61
|
|
|
60
62
|
var List = function List(props) {
|
|
63
|
+
var selectedItemRef = (0, _react.useRef)(null);
|
|
64
|
+
var listRef = (0, _react.useRef)(null);
|
|
65
|
+
|
|
66
|
+
var _useState = (0, _react.useState)(''),
|
|
67
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
68
|
+
selectedItemId = _useState2[0],
|
|
69
|
+
setSelectedItemId = _useState2[1];
|
|
70
|
+
|
|
71
|
+
var _useState3 = (0, _react.useState)([]),
|
|
72
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
73
|
+
itensId = _useState4[0],
|
|
74
|
+
setItensId = _useState4[1];
|
|
75
|
+
|
|
61
76
|
var children = props.children,
|
|
62
77
|
customClass = props.customClass,
|
|
63
78
|
condensed = props.condensed,
|
|
@@ -65,29 +80,92 @@ var List = function List(props) {
|
|
|
65
80
|
style = props.style,
|
|
66
81
|
selectable = props.selectable,
|
|
67
82
|
onSelectItem = props.onSelectItem;
|
|
68
|
-
|
|
69
|
-
var _useState = (0, _react.useState)(''),
|
|
70
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
71
|
-
selectedItemId = _useState2[0],
|
|
72
|
-
setSelectedItemId = _useState2[1];
|
|
73
|
-
|
|
74
83
|
var contextValues = {
|
|
75
84
|
selectable: selectable,
|
|
76
85
|
selectedItemId: selectedItemId,
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
86
|
+
selectedItemRef: selectedItemRef,
|
|
87
|
+
children: children,
|
|
88
|
+
handleSelectItem: function handleSelectItem(itemId, onClick) {
|
|
89
|
+
if (!onSelectItem && onClick) setSelectedItemId(itemId);
|
|
90
|
+
if (onSelectItem) onSelectItem(itemId);
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
var onKeyDown = function onKeyDown(e) {
|
|
95
|
+
if ([constants.keyCodes.ARROW_DOWN, constants.keyCodes.ARROW_UP].includes(e.keyCode)) {
|
|
96
|
+
e.preventDefault();
|
|
97
|
+
|
|
98
|
+
if (e.keyCode === constants.keyCodes.ARROW_DOWN) {
|
|
99
|
+
if (selectedItemId === itensId[itensId.length - 1]) {
|
|
100
|
+
setSelectedItemId(itensId[0]);
|
|
101
|
+
} else {
|
|
102
|
+
var index = itensId.indexOf(selectedItemId === '' ? '0' : selectedItemId);
|
|
103
|
+
setSelectedItemId(itensId[index + 1]);
|
|
104
|
+
}
|
|
105
|
+
} else if (e.keyCode === constants.keyCodes.ARROW_UP) {
|
|
106
|
+
if (selectedItemId === itensId[0]) {
|
|
107
|
+
setSelectedItemId(itensId[itensId.length - 1]);
|
|
108
|
+
} else {
|
|
109
|
+
var _index = itensId.indexOf(selectedItemId);
|
|
110
|
+
|
|
111
|
+
setSelectedItemId(itensId[_index - 1]);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
return selectedItemRef.current && selectedItemRef.current.focus();
|
|
80
116
|
}
|
|
117
|
+
|
|
118
|
+
return null;
|
|
81
119
|
};
|
|
120
|
+
|
|
121
|
+
(0, _react.useEffect)(function () {
|
|
122
|
+
if (selectedItemRef.current && listRef.current && listRef.current.scroll) {
|
|
123
|
+
var selectedItemRect = selectedItemRef.current.getBoundingClientRect();
|
|
124
|
+
var listRect = listRef.current.getBoundingClientRect();
|
|
125
|
+
var defaultScrollTop = 0;
|
|
126
|
+
var defaultBottomOffset = 100;
|
|
127
|
+
|
|
128
|
+
if (selectedItemRect.top - selectedItemRect.height > listRect.bottom) {
|
|
129
|
+
listRef.current.scroll({
|
|
130
|
+
top: selectedItemRect.top
|
|
131
|
+
});
|
|
132
|
+
} else if (selectedItemRect.top + selectedItemRect.height - listRect.y >= listRect.height) {
|
|
133
|
+
listRef.current.scroll({
|
|
134
|
+
top: listRef.current.scrollTop + selectedItemRect.height
|
|
135
|
+
});
|
|
136
|
+
} else if (selectedItemRect.bottom < defaultBottomOffset) {
|
|
137
|
+
listRef.current.scroll({
|
|
138
|
+
top: defaultScrollTop
|
|
139
|
+
});
|
|
140
|
+
} else {
|
|
141
|
+
listRef.current.scroll({
|
|
142
|
+
top: listRef.current.scrollTop - selectedItemRect.height
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}, [selectedItemRef.current]);
|
|
147
|
+
(0, _react.useEffect)(function () {
|
|
148
|
+
document.addEventListener('keydown', onKeyDown);
|
|
149
|
+
return function () {
|
|
150
|
+
document.removeEventListener('keydown', onKeyDown);
|
|
151
|
+
};
|
|
152
|
+
});
|
|
82
153
|
(0, _react.useEffect)(function () {
|
|
83
154
|
if (onSelectItem && props.selectedItemId) setSelectedItemId(props.selectedItemId);
|
|
84
155
|
}, [props.selectedItemId]);
|
|
156
|
+
(0, _react.useEffect)(function () {
|
|
157
|
+
var newItensIds = children.length > 0 && children.map(function (item) {
|
|
158
|
+
return item.props.itemId;
|
|
159
|
+
}).filter(Boolean);
|
|
160
|
+
setItensId(newItensIds);
|
|
161
|
+
}, [children.length]);
|
|
85
162
|
return /*#__PURE__*/_react["default"].createElement(_helpers["default"].Provider, {
|
|
86
163
|
value: contextValues
|
|
87
164
|
}, /*#__PURE__*/_react["default"].createElement("ul", {
|
|
88
165
|
"data-testid": "list-component",
|
|
89
166
|
style: style,
|
|
90
|
-
|
|
167
|
+
ref: listRef,
|
|
168
|
+
className: "list-component ".concat(condensed && '-condensed', "\n ").concat(customClass, " ").concat(!transparent && '-listbackground')
|
|
91
169
|
}, children));
|
|
92
170
|
};
|
|
93
171
|
|