argous 1.2.140 → 1.2.144
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.
|
@@ -186,9 +186,95 @@ exports.CustomTooltip = core_1.withStyles(function (theme) { return ({
|
|
|
186
186
|
color: theme.palette.type === 'light' ? '#333333e3' : '#fbfbfbd1'
|
|
187
187
|
}
|
|
188
188
|
}); })(core_1.Tooltip);
|
|
189
|
+
var ListboxFavorites = react_1.forwardRef(function (props, ref) {
|
|
190
|
+
var classes = useStyles();
|
|
191
|
+
var children = props.children, favoritePage = props.favoritePage, dados = props.dados, setDados = props.setDados, groupHeaderColor = props.groupHeaderColor, groupTitleColor = props.groupTitleColor;
|
|
192
|
+
var pageNumber = dados.pageNumber, favoritosLength = dados.favoritosLength, direction = dados.direction, slide = dados.slide;
|
|
193
|
+
function retornaInicio() {
|
|
194
|
+
switch (pageNumber) {
|
|
195
|
+
case 1:
|
|
196
|
+
return 0;
|
|
197
|
+
case 2:
|
|
198
|
+
return 7;
|
|
199
|
+
case 3:
|
|
200
|
+
return 14;
|
|
201
|
+
default: return;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
function retornaFim() {
|
|
205
|
+
switch (pageNumber) {
|
|
206
|
+
case 1:
|
|
207
|
+
return 7;
|
|
208
|
+
case 2:
|
|
209
|
+
return 14;
|
|
210
|
+
case 3:
|
|
211
|
+
return favoritosLength;
|
|
212
|
+
default: return;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
function retornaArray(sectionIndex, section) {
|
|
216
|
+
if (sectionIndex === 0 && favoritePage && favoritosLength > 7)
|
|
217
|
+
return section.props.children[1].props.children.slice(retornaInicio(), retornaFim());
|
|
218
|
+
return section.props.children[1].props.children;
|
|
219
|
+
}
|
|
220
|
+
function retornaEstrutura(sectionIndex, item) {
|
|
221
|
+
if (sectionIndex === 0 && favoritePage && favoritosLength > 7) {
|
|
222
|
+
return (react_1.default.createElement(core_1.Slide, { in: slide, direction: direction },
|
|
223
|
+
react_1.default.createElement(exports.CustomTooltip, { title: item.props.children, arrow: true, enterDelay: '1000', enterNextDelay: '1000', placement: 'top-end', TransitionComponent: core_1.Fade, TransitionProps: { timeout: { enter: 100, exit: 500 } } },
|
|
224
|
+
react_1.default.createElement(core_1.ListItem, __assign({}, item.props, { key: item.key, className: classes.listItem }),
|
|
225
|
+
react_1.default.createElement(core_1.ListItemText, { primary: item.props.children, className: classes.listItemText })))));
|
|
226
|
+
}
|
|
227
|
+
return (react_1.default.createElement(exports.CustomTooltip, { title: item.props.children, arrow: true, enterDelay: '1000', enterNextDelay: '1000', placement: 'top-end', TransitionComponent: core_1.Fade, TransitionProps: { timeout: { enter: 100, exit: 500 } } },
|
|
228
|
+
react_1.default.createElement(core_1.ListItem, __assign({}, item.props, { key: item.key, className: classes.listItem }),
|
|
229
|
+
react_1.default.createElement(core_1.ListItemText, { primary: item.props.children, className: classes.listItemText }))));
|
|
230
|
+
}
|
|
231
|
+
function buttonClick(evento, value) {
|
|
232
|
+
evento.preventDefault();
|
|
233
|
+
evento.stopPropagation();
|
|
234
|
+
if (value !== pageNumber) {
|
|
235
|
+
verificaSaidaSlide(value);
|
|
236
|
+
setDados(function (v) { return (__assign(__assign({}, v), { slide: false })); });
|
|
237
|
+
setTimeout(function () {
|
|
238
|
+
setDados(function (v) { return (__assign(__assign({}, v), { pageNumber: value, direction: retornaDirection(value) })); });
|
|
239
|
+
setTimeout(function () { return setDados(function (v) { return (__assign(__assign({}, v), { slide: true })); }); }, 100);
|
|
240
|
+
}, 200);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
function verificaSaidaSlide(value) {
|
|
244
|
+
var direction = '';
|
|
245
|
+
if ((value === 2 || value === 3) && pageNumber === 1)
|
|
246
|
+
direction = 'right';
|
|
247
|
+
else if (value === 3 && pageNumber === 2)
|
|
248
|
+
direction = 'right';
|
|
249
|
+
else if (value === 1 && pageNumber === 2)
|
|
250
|
+
direction = 'left';
|
|
251
|
+
direction && setDados(function (v) { return (__assign(__assign({}, v), { direction: direction })); });
|
|
252
|
+
}
|
|
253
|
+
function retornaDirection(value) {
|
|
254
|
+
if (value < pageNumber)
|
|
255
|
+
return 'right';
|
|
256
|
+
return 'left';
|
|
257
|
+
}
|
|
258
|
+
return children.map(function (section, sectionIndex) {
|
|
259
|
+
var _a, _b, _c;
|
|
260
|
+
return (react_1.default.createElement("ul", __assign({}, props, { className: clsx_1.default('MuiAutocomplete-listbox', classes.box) }),
|
|
261
|
+
react_1.default.createElement(core_1.ListSubheader, { className: classes.subHeader, style: { backgroundColor: groupHeaderColor === null || groupHeaderColor === void 0 ? void 0 : groupHeaderColor[sectionIndex], color: groupTitleColor === null || groupTitleColor === void 0 ? void 0 : groupTitleColor[sectionIndex] } },
|
|
262
|
+
section.props.children[0].props.children,
|
|
263
|
+
react_1.default.createElement(core_1.Fade, { in: sectionIndex === 0 && favoritePage && favoritosLength > 7 },
|
|
264
|
+
react_1.default.createElement("div", { className: classes.divButton },
|
|
265
|
+
react_1.default.createElement("div", { className: classes.areaButton },
|
|
266
|
+
react_1.default.createElement("div", { onClick: function (e) { return buttonClick(e, 1); }, className: clsx_1.default((_a = {}, _a[classes.buttonActive] = pageNumber === 1, _a), classes.button) }, "1")),
|
|
267
|
+
react_1.default.createElement("div", { className: classes.areaButton },
|
|
268
|
+
react_1.default.createElement("div", { onClick: function (e) { return buttonClick(e, 2); }, className: clsx_1.default((_b = {}, _b[classes.buttonActive] = pageNumber === 2, _b), classes.button) }, "2")),
|
|
269
|
+
favoritosLength > 14 &&
|
|
270
|
+
react_1.default.createElement(react_1.default.Fragment, null,
|
|
271
|
+
react_1.default.createElement("div", { className: classes.areaButton },
|
|
272
|
+
react_1.default.createElement("div", { onClick: function (e) { return buttonClick(e, 3); }, className: clsx_1.default((_c = {}, _c[classes.buttonActive] = pageNumber === 3, _c), classes.button) }, "3")))))),
|
|
273
|
+
retornaArray(sectionIndex, section).map(function (item, itemIndex) { return retornaEstrutura(sectionIndex, item); })));
|
|
274
|
+
});
|
|
275
|
+
});
|
|
189
276
|
var AutoCompleteFavorites = function (_a) {
|
|
190
277
|
var action = _a.action, busca = _a.busca, resposta = _a.resposta, label = _a.label, value = _a.value, pgCode = _a.pgCode, favoritePage = _a.favoritePage, groupName = _a.groupName, groupHeaderColor = _a.groupHeaderColor, groupTitleColor = _a.groupTitleColor, loadingColor = _a.loadingColor, filterFunction = _a.filterFunction, getOptionLabel = _a.getOptionLabel, _b = _a.onChange, onChange = _b === void 0 ? function (e) { return e; } : _b, _c = _a.textFieldProps, textFieldProps = _c === void 0 ? {} : _c, searchParams = _a.searchParams, props = __rest(_a, ["action", "busca", "resposta", "label", "value", "pgCode", "favoritePage", "groupName", "groupHeaderColor", "groupTitleColor", "loadingColor", "filterFunction", "getOptionLabel", "onChange", "textFieldProps", "searchParams"]);
|
|
191
|
-
var classes = useStyles();
|
|
192
278
|
var _d = react_1.useState({
|
|
193
279
|
lista: [],
|
|
194
280
|
slide: true,
|
|
@@ -198,92 +284,6 @@ var AutoCompleteFavorites = function (_a) {
|
|
|
198
284
|
}), dados = _d[0], setDados = _d[1];
|
|
199
285
|
var _e = react_1.useState(false), loading = _e[0], setLoading = _e[1];
|
|
200
286
|
var _f = react_1.useState(''), inputValue = _f[0], setInputValue = _f[1];
|
|
201
|
-
var ListboxFavorites = react_1.forwardRef(function (props, ref) {
|
|
202
|
-
var children = props.children, favoritePage = props.favoritePage, dados = props.dados, setDados = props.setDados, groupHeaderColor = props.groupHeaderColor, groupTitleColor = props.groupTitleColor;
|
|
203
|
-
var pageNumber = dados.pageNumber, favoritosLength = dados.favoritosLength, direction = dados.direction, slide = dados.slide;
|
|
204
|
-
function retornaInicio() {
|
|
205
|
-
switch (pageNumber) {
|
|
206
|
-
case 1:
|
|
207
|
-
return 0;
|
|
208
|
-
case 2:
|
|
209
|
-
return 7;
|
|
210
|
-
case 3:
|
|
211
|
-
return 14;
|
|
212
|
-
default: return;
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
function retornaFim() {
|
|
216
|
-
switch (pageNumber) {
|
|
217
|
-
case 1:
|
|
218
|
-
return 7;
|
|
219
|
-
case 2:
|
|
220
|
-
return 14;
|
|
221
|
-
case 3:
|
|
222
|
-
return favoritosLength;
|
|
223
|
-
default: return;
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
function retornaArray(sectionIndex, section) {
|
|
227
|
-
if (sectionIndex === 0 && favoritePage && favoritosLength > 7)
|
|
228
|
-
return section.props.children[1].props.children.slice(retornaInicio(), retornaFim());
|
|
229
|
-
return section.props.children[1].props.children;
|
|
230
|
-
}
|
|
231
|
-
function retornaEstrutura(sectionIndex, item) {
|
|
232
|
-
if (sectionIndex === 0 && favoritePage && favoritosLength > 7) {
|
|
233
|
-
return (react_1.default.createElement(core_1.Slide, { in: slide, direction: direction },
|
|
234
|
-
react_1.default.createElement(exports.CustomTooltip, { title: item.props.children, arrow: true, enterDelay: '1000', enterNextDelay: '1000', placement: 'top-end', TransitionComponent: core_1.Fade, TransitionProps: { timeout: { enter: 100, exit: 500 } } },
|
|
235
|
-
react_1.default.createElement(core_1.ListItem, __assign({}, item.props, { key: item.key, className: classes.listItem }),
|
|
236
|
-
react_1.default.createElement(core_1.ListItemText, { primary: item.props.children, className: classes.listItemText })))));
|
|
237
|
-
}
|
|
238
|
-
return (react_1.default.createElement(exports.CustomTooltip, { title: item.props.children, arrow: true, enterDelay: '1000', enterNextDelay: '1000', placement: 'top-end', TransitionComponent: core_1.Fade, TransitionProps: { timeout: { enter: 100, exit: 500 } } },
|
|
239
|
-
react_1.default.createElement(core_1.ListItem, __assign({}, item.props, { key: item.key, className: classes.listItem }),
|
|
240
|
-
react_1.default.createElement(core_1.ListItemText, { primary: item.props.children, className: classes.listItemText }))));
|
|
241
|
-
}
|
|
242
|
-
function buttonClick(evento, value) {
|
|
243
|
-
evento.preventDefault();
|
|
244
|
-
evento.stopPropagation();
|
|
245
|
-
if (value !== pageNumber) {
|
|
246
|
-
verificaSaidaSlide(value);
|
|
247
|
-
setDados(function (v) { return (__assign(__assign({}, v), { slide: false })); });
|
|
248
|
-
setTimeout(function () {
|
|
249
|
-
setDados(function (v) { return (__assign(__assign({}, v), { pageNumber: value, direction: retornaDirection(value) })); });
|
|
250
|
-
setTimeout(function () { return setDados(function (v) { return (__assign(__assign({}, v), { slide: true })); }); }, 100);
|
|
251
|
-
}, 200);
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
function verificaSaidaSlide(value) {
|
|
255
|
-
var direction = '';
|
|
256
|
-
if ((value === 2 || value === 3) && pageNumber === 1)
|
|
257
|
-
direction = 'right';
|
|
258
|
-
else if (value === 3 && pageNumber === 2)
|
|
259
|
-
direction = 'right';
|
|
260
|
-
else if (value === 1 && pageNumber === 2)
|
|
261
|
-
direction = 'left';
|
|
262
|
-
direction && setDados(function (v) { return (__assign(__assign({}, v), { direction: direction })); });
|
|
263
|
-
}
|
|
264
|
-
function retornaDirection(value) {
|
|
265
|
-
if (value < pageNumber)
|
|
266
|
-
return 'right';
|
|
267
|
-
return 'left';
|
|
268
|
-
}
|
|
269
|
-
return children.map(function (section, sectionIndex) {
|
|
270
|
-
var _a, _b, _c;
|
|
271
|
-
return (react_1.default.createElement("ul", __assign({}, props, { className: clsx_1.default('MuiAutocomplete-listbox', classes.box) }),
|
|
272
|
-
react_1.default.createElement(core_1.ListSubheader, { className: classes.subHeader, style: { backgroundColor: groupHeaderColor === null || groupHeaderColor === void 0 ? void 0 : groupHeaderColor[sectionIndex], color: groupTitleColor === null || groupTitleColor === void 0 ? void 0 : groupTitleColor[sectionIndex] } },
|
|
273
|
-
section.props.children[0].props.children,
|
|
274
|
-
react_1.default.createElement(core_1.Fade, { in: sectionIndex === 0 && favoritePage && favoritosLength > 7 },
|
|
275
|
-
react_1.default.createElement("div", { className: classes.divButton },
|
|
276
|
-
react_1.default.createElement("div", { className: classes.areaButton },
|
|
277
|
-
react_1.default.createElement("div", { onClick: function (e) { return buttonClick(e, 1); }, className: clsx_1.default((_a = {}, _a[classes.buttonActive] = pageNumber === 1, _a), classes.button) }, "1")),
|
|
278
|
-
react_1.default.createElement("div", { className: classes.areaButton },
|
|
279
|
-
react_1.default.createElement("div", { onClick: function (e) { return buttonClick(e, 2); }, className: clsx_1.default((_b = {}, _b[classes.buttonActive] = pageNumber === 2, _b), classes.button) }, "2")),
|
|
280
|
-
favoritosLength > 14 &&
|
|
281
|
-
react_1.default.createElement(react_1.default.Fragment, null,
|
|
282
|
-
react_1.default.createElement("div", { className: classes.areaButton },
|
|
283
|
-
react_1.default.createElement("div", { onClick: function (e) { return buttonClick(e, 3); }, className: clsx_1.default((_c = {}, _c[classes.buttonActive] = pageNumber === 3, _c), classes.button) }, "3")))))),
|
|
284
|
-
retornaArray(sectionIndex, section).map(function (item, itemIndex) { return retornaEstrutura(sectionIndex, item); })));
|
|
285
|
-
});
|
|
286
|
-
});
|
|
287
287
|
function carimbaLista(lista) {
|
|
288
288
|
return __awaiter(this, void 0, void 0, function () {
|
|
289
289
|
var completo;
|
|
@@ -291,14 +291,9 @@ var AutoCompleteFavorites = function (_a) {
|
|
|
291
291
|
completo = [];
|
|
292
292
|
lista.map(function (arr, index) {
|
|
293
293
|
index === 0 && favoritePage && setDados(function (v) { return (__assign(__assign({}, v), { favoritosLength: arr.length })); });
|
|
294
|
-
return arr.map(function (itemArr) { return itemArr.length <
|
|
295
|
-
});
|
|
296
|
-
lista.forEach(function (v) {
|
|
297
|
-
for (var _i = 0, _a = v.values(); _i < _a.length; _i++) {
|
|
298
|
-
var item = _a[_i];
|
|
299
|
-
completo.push(item);
|
|
300
|
-
}
|
|
294
|
+
return arr.map(function (itemArr) { return itemArr.length < itemArr.length + 1 && itemArr.push(groupName[index]); });
|
|
301
295
|
});
|
|
296
|
+
lista.map(function (v) { return v.map(function (d) { return completo.push(d); }); });
|
|
302
297
|
setDados(function (v) { return (__assign(__assign({}, v), { lista: completo })); });
|
|
303
298
|
return [2 /*return*/];
|
|
304
299
|
});
|
|
@@ -106,9 +106,116 @@ export const CustomTooltip = withStyles((theme) => ({
|
|
|
106
106
|
}
|
|
107
107
|
}))(Tooltip);
|
|
108
108
|
|
|
109
|
-
const
|
|
109
|
+
const ListboxFavorites = forwardRef((props, ref) => {
|
|
110
110
|
|
|
111
111
|
const classes = useStyles();
|
|
112
|
+
const { children, favoritePage, dados, setDados, groupHeaderColor, groupTitleColor } = props;
|
|
113
|
+
const { pageNumber, favoritosLength, direction, slide } = dados;
|
|
114
|
+
|
|
115
|
+
function retornaInicio() {
|
|
116
|
+
switch (pageNumber) {
|
|
117
|
+
case 1:
|
|
118
|
+
return 0;
|
|
119
|
+
case 2:
|
|
120
|
+
return 7;
|
|
121
|
+
case 3:
|
|
122
|
+
return 14;
|
|
123
|
+
default: return;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
function retornaFim() {
|
|
128
|
+
switch (pageNumber) {
|
|
129
|
+
case 1:
|
|
130
|
+
return 7;
|
|
131
|
+
case 2:
|
|
132
|
+
return 14;
|
|
133
|
+
case 3:
|
|
134
|
+
return favoritosLength;
|
|
135
|
+
default: return;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
function retornaArray(sectionIndex, section) {
|
|
140
|
+
if (sectionIndex === 0 && favoritePage && favoritosLength > 7) return section.props.children[1].props.children.slice(retornaInicio(), retornaFim());
|
|
141
|
+
return section.props.children[1].props.children;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
function retornaEstrutura(sectionIndex, item) {
|
|
145
|
+
if (sectionIndex === 0 && favoritePage && favoritosLength > 7) {
|
|
146
|
+
return (
|
|
147
|
+
<Slide in={slide} direction={direction}>
|
|
148
|
+
<CustomTooltip title={item.props.children} arrow enterDelay='1000' enterNextDelay='1000' placement='top-end' TransitionComponent={Fade} TransitionProps={{ timeout: { enter: 100, exit: 500 } }}>
|
|
149
|
+
<ListItem {...item.props} key={item.key} className={classes.listItem}>
|
|
150
|
+
<ListItemText primary={item.props.children} className={classes.listItemText} />
|
|
151
|
+
</ListItem>
|
|
152
|
+
</CustomTooltip>
|
|
153
|
+
</Slide>
|
|
154
|
+
);
|
|
155
|
+
} return (
|
|
156
|
+
<CustomTooltip title={item.props.children} arrow enterDelay='1000' enterNextDelay='1000' placement='top-end' TransitionComponent={Fade} TransitionProps={{ timeout: { enter: 100, exit: 500 } }}>
|
|
157
|
+
<ListItem {...item.props} key={item.key} className={classes.listItem}>
|
|
158
|
+
<ListItemText primary={item.props.children} className={classes.listItemText} />
|
|
159
|
+
</ListItem>
|
|
160
|
+
</CustomTooltip>
|
|
161
|
+
);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
function buttonClick(evento, value) {
|
|
165
|
+
evento.preventDefault();
|
|
166
|
+
evento.stopPropagation();
|
|
167
|
+
if (value !== pageNumber) {
|
|
168
|
+
verificaSaidaSlide(value);
|
|
169
|
+
setDados(v => ({ ...v, slide: false }));
|
|
170
|
+
setTimeout(() => {
|
|
171
|
+
setDados(v => ({ ...v, pageNumber: value, direction: retornaDirection(value) }));
|
|
172
|
+
setTimeout(() => setDados(v => ({ ...v, slide: true })), 100);
|
|
173
|
+
}, 200);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
function verificaSaidaSlide(value) {
|
|
178
|
+
let direction = '';
|
|
179
|
+
if ((value === 2 || value === 3) && pageNumber === 1) direction = 'right';
|
|
180
|
+
else if (value === 3 && pageNumber === 2) direction = 'right';
|
|
181
|
+
else if (value === 1 && pageNumber === 2) direction = 'left';
|
|
182
|
+
direction && setDados(v => ({ ...v, direction: direction }));
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
function retornaDirection(value) {
|
|
186
|
+
if (value < pageNumber) return 'right';
|
|
187
|
+
return 'left';
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
return children.map((section, sectionIndex) => (
|
|
191
|
+
<ul {...props} className={clsx('MuiAutocomplete-listbox', classes.box)}>
|
|
192
|
+
<ListSubheader className={classes.subHeader} style={{ backgroundColor: groupHeaderColor?.[sectionIndex], color: groupTitleColor?.[sectionIndex] }}>
|
|
193
|
+
{section.props.children[0].props.children}
|
|
194
|
+
<Fade in={sectionIndex === 0 && favoritePage && favoritosLength > 7}>
|
|
195
|
+
<div className={classes.divButton}>
|
|
196
|
+
<div className={classes.areaButton}>
|
|
197
|
+
<div onClick={e => buttonClick(e, 1)} className={clsx({ [classes.buttonActive]: pageNumber === 1 }, classes.button)}>1</div>
|
|
198
|
+
</div>
|
|
199
|
+
<div className={classes.areaButton}>
|
|
200
|
+
<div onClick={e => buttonClick(e, 2)} className={clsx({ [classes.buttonActive]: pageNumber === 2 }, classes.button)}>2</div>
|
|
201
|
+
</div>
|
|
202
|
+
{favoritosLength > 14 &&
|
|
203
|
+
<React.Fragment>
|
|
204
|
+
<div className={classes.areaButton}>
|
|
205
|
+
<div onClick={e => buttonClick(e, 3)} className={clsx({ [classes.buttonActive]: pageNumber === 3 }, classes.button)}>3</div>
|
|
206
|
+
</div>
|
|
207
|
+
</React.Fragment>
|
|
208
|
+
}
|
|
209
|
+
</div>
|
|
210
|
+
</Fade>
|
|
211
|
+
</ListSubheader>
|
|
212
|
+
{retornaArray(sectionIndex, section).map((item, itemIndex) => retornaEstrutura(sectionIndex, item))}
|
|
213
|
+
</ul>
|
|
214
|
+
));
|
|
215
|
+
});
|
|
216
|
+
|
|
217
|
+
const AutoCompleteFavorites = ({ action, busca, resposta, label, value, pgCode, favoritePage, groupName, groupHeaderColor, groupTitleColor, loadingColor, filterFunction, getOptionLabel, onChange = e => e, textFieldProps = {}, searchParams, ...props }) => {
|
|
218
|
+
|
|
112
219
|
const [dados, setDados] = useState({
|
|
113
220
|
lista: [],
|
|
114
221
|
slide: true,
|
|
@@ -119,123 +226,13 @@ const AutoCompleteFavorites = ({ action, busca, resposta, label, value, pgCode,
|
|
|
119
226
|
const [loading, setLoading] = useState(false);
|
|
120
227
|
const [inputValue, setInputValue] = useState('');
|
|
121
228
|
|
|
122
|
-
const ListboxFavorites = forwardRef((props, ref) => {
|
|
123
|
-
const { children, favoritePage, dados, setDados, groupHeaderColor, groupTitleColor } = props;
|
|
124
|
-
const { pageNumber, favoritosLength, direction, slide } = dados;
|
|
125
|
-
|
|
126
|
-
function retornaInicio() {
|
|
127
|
-
switch (pageNumber) {
|
|
128
|
-
case 1:
|
|
129
|
-
return 0;
|
|
130
|
-
case 2:
|
|
131
|
-
return 7;
|
|
132
|
-
case 3:
|
|
133
|
-
return 14;
|
|
134
|
-
default: return;
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
function retornaFim() {
|
|
139
|
-
switch (pageNumber) {
|
|
140
|
-
case 1:
|
|
141
|
-
return 7;
|
|
142
|
-
case 2:
|
|
143
|
-
return 14;
|
|
144
|
-
case 3:
|
|
145
|
-
return favoritosLength;
|
|
146
|
-
default: return;
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
function retornaArray(sectionIndex, section) {
|
|
151
|
-
if (sectionIndex === 0 && favoritePage && favoritosLength > 7) return section.props.children[1].props.children.slice(retornaInicio(), retornaFim());
|
|
152
|
-
return section.props.children[1].props.children;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
function retornaEstrutura(sectionIndex, item) {
|
|
156
|
-
if (sectionIndex === 0 && favoritePage && favoritosLength > 7) {
|
|
157
|
-
return (
|
|
158
|
-
<Slide in={slide} direction={direction}>
|
|
159
|
-
<CustomTooltip title={item.props.children} arrow enterDelay='1000' enterNextDelay='1000' placement='top-end' TransitionComponent={Fade} TransitionProps={{ timeout: { enter: 100, exit: 500 } }}>
|
|
160
|
-
<ListItem {...item.props} key={item.key} className={classes.listItem}>
|
|
161
|
-
<ListItemText primary={item.props.children} className={classes.listItemText} />
|
|
162
|
-
</ListItem>
|
|
163
|
-
</CustomTooltip>
|
|
164
|
-
</Slide>
|
|
165
|
-
);
|
|
166
|
-
} return (
|
|
167
|
-
<CustomTooltip title={item.props.children} arrow enterDelay='1000' enterNextDelay='1000' placement='top-end' TransitionComponent={Fade} TransitionProps={{ timeout: { enter: 100, exit: 500 } }}>
|
|
168
|
-
<ListItem {...item.props} key={item.key} className={classes.listItem}>
|
|
169
|
-
<ListItemText primary={item.props.children} className={classes.listItemText} />
|
|
170
|
-
</ListItem>
|
|
171
|
-
</CustomTooltip>
|
|
172
|
-
);
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
function buttonClick(evento, value) {
|
|
176
|
-
evento.preventDefault();
|
|
177
|
-
evento.stopPropagation();
|
|
178
|
-
if (value !== pageNumber) {
|
|
179
|
-
verificaSaidaSlide(value);
|
|
180
|
-
setDados(v => ({ ...v, slide: false }));
|
|
181
|
-
setTimeout(() => {
|
|
182
|
-
setDados(v => ({ ...v, pageNumber: value, direction: retornaDirection(value) }));
|
|
183
|
-
setTimeout(() => setDados(v => ({ ...v, slide: true })), 100);
|
|
184
|
-
}, 200);
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
function verificaSaidaSlide(value) {
|
|
189
|
-
let direction = '';
|
|
190
|
-
if ((value === 2 || value === 3) && pageNumber === 1) direction = 'right';
|
|
191
|
-
else if (value === 3 && pageNumber === 2) direction = 'right';
|
|
192
|
-
else if (value === 1 && pageNumber === 2) direction = 'left';
|
|
193
|
-
direction && setDados(v => ({ ...v, direction: direction }));
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
function retornaDirection(value) {
|
|
197
|
-
if (value < pageNumber) return 'right';
|
|
198
|
-
return 'left';
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
return children.map((section, sectionIndex) => (
|
|
202
|
-
<ul {...props} className={clsx('MuiAutocomplete-listbox', classes.box)}>
|
|
203
|
-
<ListSubheader className={classes.subHeader} style={{ backgroundColor: groupHeaderColor?.[sectionIndex], color: groupTitleColor?.[sectionIndex] }}>
|
|
204
|
-
{section.props.children[0].props.children}
|
|
205
|
-
<Fade in={sectionIndex === 0 && favoritePage && favoritosLength > 7}>
|
|
206
|
-
<div className={classes.divButton}>
|
|
207
|
-
<div className={classes.areaButton}>
|
|
208
|
-
<div onClick={e => buttonClick(e, 1)} className={clsx({ [classes.buttonActive]: pageNumber === 1 }, classes.button)}>1</div>
|
|
209
|
-
</div>
|
|
210
|
-
<div className={classes.areaButton}>
|
|
211
|
-
<div onClick={e => buttonClick(e, 2)} className={clsx({ [classes.buttonActive]: pageNumber === 2 }, classes.button)}>2</div>
|
|
212
|
-
</div>
|
|
213
|
-
{favoritosLength > 14 &&
|
|
214
|
-
<React.Fragment>
|
|
215
|
-
<div className={classes.areaButton}>
|
|
216
|
-
<div onClick={e => buttonClick(e, 3)} className={clsx({ [classes.buttonActive]: pageNumber === 3 }, classes.button)}>3</div>
|
|
217
|
-
</div>
|
|
218
|
-
</React.Fragment>
|
|
219
|
-
}
|
|
220
|
-
</div>
|
|
221
|
-
</Fade>
|
|
222
|
-
</ListSubheader>
|
|
223
|
-
{retornaArray(sectionIndex, section).map((item, itemIndex) => retornaEstrutura(sectionIndex, item))}
|
|
224
|
-
</ul>
|
|
225
|
-
));
|
|
226
|
-
});
|
|
227
|
-
|
|
228
229
|
async function carimbaLista(lista) {
|
|
229
230
|
let completo = [];
|
|
230
231
|
lista.map((arr, index) => {
|
|
231
232
|
index === 0 && favoritePage && setDados(v => ({ ...v, favoritosLength: arr.length }));
|
|
232
|
-
return arr.map(itemArr => itemArr.length <
|
|
233
|
-
});
|
|
234
|
-
lista.forEach(v => {
|
|
235
|
-
for (let item of v.values()) {
|
|
236
|
-
completo.push(item);
|
|
237
|
-
}
|
|
233
|
+
return arr.map(itemArr => itemArr.length < itemArr.length + 1 && itemArr.push(groupName[index]));
|
|
238
234
|
});
|
|
235
|
+
lista.map(v => v.map(d => completo.push(d)));
|
|
239
236
|
setDados(v => ({ ...v, lista: completo }));
|
|
240
237
|
}
|
|
241
238
|
|