linear-react-components-ui 2.1.0-beta.0 → 2.1.0-beta.2
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/datepicker2.css +77 -4
- package/lib/inputs/number/Currency.js +19 -17
- package/lib/inputs/number/Currency.js.map +1 -1
- package/lib/inputs/number/Decimal.js +19 -17
- package/lib/inputs/number/Decimal.js.map +1 -1
- package/lib/inputs/number/index.js +17 -15
- package/lib/inputs/number/index.js.map +1 -1
- package/lib/inputs2/date/calendarbox.d.ts +23 -0
- package/lib/inputs2/date/calendarbox.js +254 -0
- package/lib/inputs2/date/calendarbox.js.map +1 -0
- package/lib/inputs2/date/datefield/base.js +590 -214
- package/lib/inputs2/date/datefield/base.js.map +1 -1
- package/lib/inputs2/date/datefield/triggers.js +4 -4
- package/lib/inputs2/date/datefield/triggers.js.map +1 -1
- package/lib/inputs2/date/datefield/types.d.ts +5 -12
- package/lib/inputs2/date/dateperiodfield/base.js +543 -674
- package/lib/inputs2/date/dateperiodfield/base.js.map +1 -1
- package/lib/inputs2/date/dateperiodfield/triggers.js +21 -9
- package/lib/inputs2/date/dateperiodfield/triggers.js.map +1 -1
- package/lib/inputs2/date/dateperiodfield/types.d.ts +7 -23
- package/lib/inputs2/date/helpers.d.ts +21 -4
- package/lib/inputs2/date/helpers.js +64 -4
- package/lib/inputs2/date/helpers.js.map +1 -1
- package/lib/inputs2/date/{base/constants.d.ts → hooks/useCalendarPosition.d.ts} +1 -1
- package/lib/inputs2/date/hooks/useCalendarPosition.js +93 -0
- package/lib/inputs2/date/hooks/useCalendarPosition.js.map +1 -0
- package/lib/inputs2/date/hooks/useDateCalendarState.d.ts +14 -0
- package/lib/inputs2/date/hooks/useDateCalendarState.js +250 -0
- package/lib/inputs2/date/hooks/useDateCalendarState.js.map +1 -0
- package/lib/inputs2/date/hooks/useDateMask.d.ts +20 -0
- package/lib/inputs2/date/hooks/useDateMask.js +178 -0
- package/lib/inputs2/date/hooks/useDateMask.js.map +1 -0
- package/lib/inputs2/date/timeselector.d.ts +15 -0
- package/lib/inputs2/date/timeselector.js +228 -0
- package/lib/inputs2/date/timeselector.js.map +1 -0
- package/lib/inputs2/date/types.d.ts +16 -1
- package/lib/inputs2/date/types.js.map +1 -1
- package/lib/inputs2/selectfield/base.js +1 -1
- package/lib/inputs2/selectfield/base.js.map +1 -1
- package/lib/menus/float/SubMenuContainer.d.ts +10 -28
- package/lib/menus/float/SubMenuContainer.js +97 -83
- package/lib/menus/float/SubMenuContainer.js.map +1 -1
- package/lib/node_modules/moment/dist/locale/pt-br.js +54 -0
- package/lib/node_modules/moment/dist/locale/pt-br.js.map +1 -0
- package/lib/treetable/helpers.d.ts +0 -2
- package/lib/treetable/helpers.js.map +1 -1
- package/package.json +1 -1
- package/lib/_virtual/index.js +0 -8
- package/lib/_virtual/index.js.map +0 -1
- package/lib/_virtual/index2.js +0 -5
- package/lib/_virtual/index2.js.map +0 -1
- package/lib/_virtual/index3.js +0 -5
- package/lib/_virtual/index3.js.map +0 -1
- package/lib/_virtual/react-is.development.js +0 -5
- package/lib/_virtual/react-is.development.js.map +0 -1
- package/lib/_virtual/react-is.production.min.js +0 -5
- package/lib/_virtual/react-is.production.min.js.map +0 -1
- package/lib/inputs2/date/base/constants.js +0 -69
- package/lib/inputs2/date/base/constants.js.map +0 -1
- package/lib/inputs2/date/datefield/calendarbox.d.ts +0 -6
- package/lib/inputs2/date/datefield/calendarbox.js +0 -228
- package/lib/inputs2/date/datefield/calendarbox.js.map +0 -1
- package/lib/inputs2/date/dateperiodfield/calendarbox.d.ts +0 -6
- package/lib/inputs2/date/dateperiodfield/calendarbox.js +0 -282
- package/lib/inputs2/date/dateperiodfield/calendarbox.js.map +0 -1
- package/lib/node_modules/object-assign/index.js +0 -79
- package/lib/node_modules/object-assign/index.js.map +0 -1
- package/lib/node_modules/prop-types/checkPropTypes.js +0 -69
- package/lib/node_modules/prop-types/checkPropTypes.js.map +0 -1
- package/lib/node_modules/prop-types/factoryWithThrowingShims.js +0 -59
- package/lib/node_modules/prop-types/factoryWithThrowingShims.js.map +0 -1
- package/lib/node_modules/prop-types/factoryWithTypeCheckers.js +0 -452
- package/lib/node_modules/prop-types/factoryWithTypeCheckers.js.map +0 -1
- package/lib/node_modules/prop-types/index.js +0 -21
- package/lib/node_modules/prop-types/index.js.map +0 -1
- package/lib/node_modules/prop-types/lib/ReactPropTypesSecret.js +0 -13
- package/lib/node_modules/prop-types/lib/ReactPropTypesSecret.js.map +0 -1
- package/lib/node_modules/prop-types/lib/has.js +0 -12
- package/lib/node_modules/prop-types/lib/has.js.map +0 -1
- package/lib/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js +0 -166
- package/lib/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js.map +0 -1
- package/lib/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js +0 -107
- package/lib/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js.map +0 -1
- package/lib/node_modules/prop-types/node_modules/react-is/index.js +0 -18
- package/lib/node_modules/prop-types/node_modules/react-is/index.js.map +0 -1
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { c as compilerRuntimeExports } from "../../_virtual/compiler-runtime.js";
|
|
3
|
+
import _ from "../../_virtual/lodash.js";
|
|
4
|
+
import { useRef, useLayoutEffect } from "react";
|
|
5
|
+
import Button from "../../buttons/Button.js";
|
|
6
|
+
import '../../assets/styles/button.css';/* empty css */
|
|
7
|
+
import TextContent from "../../textContent/index.js";
|
|
8
|
+
const HOURS = _.range(0, 24);
|
|
9
|
+
const MINUTES = _.range(0, 60);
|
|
10
|
+
const padUnit = (unit) => _.padStart(String(unit), 2, "0");
|
|
11
|
+
const TimeSelector = (props) => {
|
|
12
|
+
const $ = compilerRuntimeExports.c(44);
|
|
13
|
+
const {
|
|
14
|
+
value,
|
|
15
|
+
onSelectTime,
|
|
16
|
+
min,
|
|
17
|
+
max,
|
|
18
|
+
testIdPrefix
|
|
19
|
+
} = props;
|
|
20
|
+
const hourColumnRef = useRef(null);
|
|
21
|
+
const minuteColumnRef = useRef(null);
|
|
22
|
+
const centerUnitInColumn = _temp;
|
|
23
|
+
let t0;
|
|
24
|
+
let t1;
|
|
25
|
+
if ($[0] !== value) {
|
|
26
|
+
t0 = () => {
|
|
27
|
+
if (!value) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
centerUnitInColumn(hourColumnRef.current, value.hour());
|
|
31
|
+
centerUnitInColumn(minuteColumnRef.current, value.minute());
|
|
32
|
+
};
|
|
33
|
+
t1 = value?.hour();
|
|
34
|
+
$[0] = value;
|
|
35
|
+
$[1] = t0;
|
|
36
|
+
$[2] = t1;
|
|
37
|
+
} else {
|
|
38
|
+
t0 = $[1];
|
|
39
|
+
t1 = $[2];
|
|
40
|
+
}
|
|
41
|
+
let t2;
|
|
42
|
+
if ($[3] !== value) {
|
|
43
|
+
t2 = value?.minute();
|
|
44
|
+
$[3] = value;
|
|
45
|
+
$[4] = t2;
|
|
46
|
+
} else {
|
|
47
|
+
t2 = $[4];
|
|
48
|
+
}
|
|
49
|
+
const t3 = Boolean(value);
|
|
50
|
+
let t4;
|
|
51
|
+
if ($[5] !== t1 || $[6] !== t2 || $[7] !== t3) {
|
|
52
|
+
t4 = [t1, t2, t3];
|
|
53
|
+
$[5] = t1;
|
|
54
|
+
$[6] = t2;
|
|
55
|
+
$[7] = t3;
|
|
56
|
+
$[8] = t4;
|
|
57
|
+
} else {
|
|
58
|
+
t4 = $[8];
|
|
59
|
+
}
|
|
60
|
+
useLayoutEffect(t0, t4);
|
|
61
|
+
const handleOnMouseDown = _temp2;
|
|
62
|
+
let t5;
|
|
63
|
+
if ($[9] !== max || $[10] !== min || $[11] !== value) {
|
|
64
|
+
t5 = (hour) => {
|
|
65
|
+
if (!value) {
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
if (min && value.isSame(min, "day") && hour < min.hour()) {
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
return Boolean(max && value.isSame(max, "day") && hour > max.hour());
|
|
72
|
+
};
|
|
73
|
+
$[9] = max;
|
|
74
|
+
$[10] = min;
|
|
75
|
+
$[11] = value;
|
|
76
|
+
$[12] = t5;
|
|
77
|
+
} else {
|
|
78
|
+
t5 = $[12];
|
|
79
|
+
}
|
|
80
|
+
const isHourOutOfBounds = t5;
|
|
81
|
+
let t6;
|
|
82
|
+
if ($[13] !== max || $[14] !== min || $[15] !== value) {
|
|
83
|
+
t6 = (minute) => {
|
|
84
|
+
if (!value) {
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
const isOnMinHour = Boolean(min && value.isSame(min, "day") && value.hour() === min.hour());
|
|
88
|
+
const isOnMaxHour = Boolean(max && value.isSame(max, "day") && value.hour() === max.hour());
|
|
89
|
+
if (isOnMinHour && min && minute < min.minute()) {
|
|
90
|
+
return true;
|
|
91
|
+
}
|
|
92
|
+
return Boolean(isOnMaxHour && max && minute > max.minute());
|
|
93
|
+
};
|
|
94
|
+
$[13] = max;
|
|
95
|
+
$[14] = min;
|
|
96
|
+
$[15] = value;
|
|
97
|
+
$[16] = t6;
|
|
98
|
+
} else {
|
|
99
|
+
t6 = $[16];
|
|
100
|
+
}
|
|
101
|
+
const isMinuteOutOfBounds = t6;
|
|
102
|
+
let t7;
|
|
103
|
+
if ($[17] !== value) {
|
|
104
|
+
t7 = (unit_0) => {
|
|
105
|
+
const {
|
|
106
|
+
value: unitValue,
|
|
107
|
+
isSelected,
|
|
108
|
+
isOutOfBounds,
|
|
109
|
+
testId,
|
|
110
|
+
onClick
|
|
111
|
+
} = unit_0;
|
|
112
|
+
return /* @__PURE__ */ jsx(Button, { role: "option", type: "button", className: "time-unit-button", boxShadow: false, tabIndex: -1, title: padUnit(unitValue), label: padUnit(unitValue), disabled: !value || isOutOfBounds, "aria-disabled": !value || isOutOfBounds, "aria-selected": isSelected, "data-testid": testId, "data-state-out-of-bounds": isOutOfBounds, onMouseDown: handleOnMouseDown, onClick }, unitValue);
|
|
113
|
+
};
|
|
114
|
+
$[17] = value;
|
|
115
|
+
$[18] = t7;
|
|
116
|
+
} else {
|
|
117
|
+
t7 = $[18];
|
|
118
|
+
}
|
|
119
|
+
const renderUnit = t7;
|
|
120
|
+
const t8 = !value;
|
|
121
|
+
const t9 = `${testIdPrefix}-time-selector`;
|
|
122
|
+
let t10;
|
|
123
|
+
if ($[19] === Symbol.for("react.memo_cache_sentinel")) {
|
|
124
|
+
t10 = /* @__PURE__ */ jsx(TextContent, { as: "p", className: "time-column-label", children: "HORA" });
|
|
125
|
+
$[19] = t10;
|
|
126
|
+
} else {
|
|
127
|
+
t10 = $[19];
|
|
128
|
+
}
|
|
129
|
+
const t11 = `${testIdPrefix}-time-hour-column`;
|
|
130
|
+
let t12;
|
|
131
|
+
if ($[20] !== isHourOutOfBounds || $[21] !== onSelectTime || $[22] !== renderUnit || $[23] !== testIdPrefix || $[24] !== value) {
|
|
132
|
+
t12 = HOURS.map((hour_0) => renderUnit({
|
|
133
|
+
value: hour_0,
|
|
134
|
+
isSelected: value?.hour() === hour_0,
|
|
135
|
+
isOutOfBounds: isHourOutOfBounds(hour_0),
|
|
136
|
+
testId: `${testIdPrefix}-time-hour-button`,
|
|
137
|
+
onClick: () => onSelectTime(hour_0, value?.minute() ?? 0)
|
|
138
|
+
}));
|
|
139
|
+
$[20] = isHourOutOfBounds;
|
|
140
|
+
$[21] = onSelectTime;
|
|
141
|
+
$[22] = renderUnit;
|
|
142
|
+
$[23] = testIdPrefix;
|
|
143
|
+
$[24] = value;
|
|
144
|
+
$[25] = t12;
|
|
145
|
+
} else {
|
|
146
|
+
t12 = $[25];
|
|
147
|
+
}
|
|
148
|
+
let t13;
|
|
149
|
+
if ($[26] !== t11 || $[27] !== t12) {
|
|
150
|
+
t13 = /* @__PURE__ */ jsxs("div", { className: "time-column", children: [
|
|
151
|
+
t10,
|
|
152
|
+
/* @__PURE__ */ jsx("div", { ref: hourColumnRef, role: "listbox", "aria-label": "Selecionar hora", className: "time-column-options", "data-testid": t11, children: t12 })
|
|
153
|
+
] });
|
|
154
|
+
$[26] = t11;
|
|
155
|
+
$[27] = t12;
|
|
156
|
+
$[28] = t13;
|
|
157
|
+
} else {
|
|
158
|
+
t13 = $[28];
|
|
159
|
+
}
|
|
160
|
+
let t14;
|
|
161
|
+
if ($[29] === Symbol.for("react.memo_cache_sentinel")) {
|
|
162
|
+
t14 = /* @__PURE__ */ jsx(TextContent, { as: "p", className: "time-column-label", children: "MINUTO" });
|
|
163
|
+
$[29] = t14;
|
|
164
|
+
} else {
|
|
165
|
+
t14 = $[29];
|
|
166
|
+
}
|
|
167
|
+
const t15 = `${testIdPrefix}-time-minute-column`;
|
|
168
|
+
let t16;
|
|
169
|
+
if ($[30] !== isMinuteOutOfBounds || $[31] !== onSelectTime || $[32] !== renderUnit || $[33] !== testIdPrefix || $[34] !== value) {
|
|
170
|
+
t16 = MINUTES.map((minute_0) => renderUnit({
|
|
171
|
+
value: minute_0,
|
|
172
|
+
isSelected: value?.minute() === minute_0,
|
|
173
|
+
isOutOfBounds: isMinuteOutOfBounds(minute_0),
|
|
174
|
+
testId: `${testIdPrefix}-time-minute-button`,
|
|
175
|
+
onClick: () => onSelectTime(value?.hour() ?? 0, minute_0)
|
|
176
|
+
}));
|
|
177
|
+
$[30] = isMinuteOutOfBounds;
|
|
178
|
+
$[31] = onSelectTime;
|
|
179
|
+
$[32] = renderUnit;
|
|
180
|
+
$[33] = testIdPrefix;
|
|
181
|
+
$[34] = value;
|
|
182
|
+
$[35] = t16;
|
|
183
|
+
} else {
|
|
184
|
+
t16 = $[35];
|
|
185
|
+
}
|
|
186
|
+
let t17;
|
|
187
|
+
if ($[36] !== t15 || $[37] !== t16) {
|
|
188
|
+
t17 = /* @__PURE__ */ jsxs("div", { className: "time-column", children: [
|
|
189
|
+
t14,
|
|
190
|
+
/* @__PURE__ */ jsx("div", { ref: minuteColumnRef, role: "listbox", "aria-label": "Selecionar minuto", className: "time-column-options", "data-testid": t15, children: t16 })
|
|
191
|
+
] });
|
|
192
|
+
$[36] = t15;
|
|
193
|
+
$[37] = t16;
|
|
194
|
+
$[38] = t17;
|
|
195
|
+
} else {
|
|
196
|
+
t17 = $[38];
|
|
197
|
+
}
|
|
198
|
+
let t18;
|
|
199
|
+
if ($[39] !== t13 || $[40] !== t17 || $[41] !== t8 || $[42] !== t9) {
|
|
200
|
+
t18 = /* @__PURE__ */ jsxs("div", { className: "date-calendar-box-time-selector", "data-state-disabled": t8, "data-testid": t9, children: [
|
|
201
|
+
t13,
|
|
202
|
+
t17
|
|
203
|
+
] });
|
|
204
|
+
$[39] = t13;
|
|
205
|
+
$[40] = t17;
|
|
206
|
+
$[41] = t8;
|
|
207
|
+
$[42] = t9;
|
|
208
|
+
$[43] = t18;
|
|
209
|
+
} else {
|
|
210
|
+
t18 = $[43];
|
|
211
|
+
}
|
|
212
|
+
return t18;
|
|
213
|
+
};
|
|
214
|
+
TimeSelector.displayName = "DateTimeSelector";
|
|
215
|
+
function _temp(column, index) {
|
|
216
|
+
const unit = column?.children?.[index];
|
|
217
|
+
if (!column || !unit) {
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
column.scrollTop = unit.offsetTop - (column.clientHeight - unit.offsetHeight) / 2;
|
|
221
|
+
}
|
|
222
|
+
function _temp2(event) {
|
|
223
|
+
event?.preventDefault?.();
|
|
224
|
+
}
|
|
225
|
+
export {
|
|
226
|
+
TimeSelector
|
|
227
|
+
};
|
|
228
|
+
//# sourceMappingURL=timeselector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeselector.js","sources":["../../../src/lib/inputs2/date/timeselector.tsx"],"sourcesContent":["import _ from 'lodash';\nimport type { Moment } from 'moment';\nimport { MouseEvent, useLayoutEffect, useRef } from 'react';\nimport Button from '../../buttons';\nimport TextContent from '../../textContent';\n\ninterface TimeUnit {\n value: number;\n isSelected: boolean;\n isOutOfBounds: boolean;\n testId: string;\n onClick: () => void;\n}\n\ninterface TimeSelectorProps {\n /** null desabilita o seletor inteiro */\n value: Moment | null;\n onSelectTime: (hour: number, minute: number) => void;\n min?: Moment;\n max?: Moment;\n testIdPrefix: string;\n}\n\nconst HOURS = _.range(0, 24);\nconst MINUTES = _.range(0, 60);\n\nconst padUnit = (unit: number) => _.padStart(String(unit), 2, '0');\n\nconst TimeSelector = (props: TimeSelectorProps) => {\n const { value, onSelectTime, min, max, testIdPrefix } = props;\n const hourColumnRef = useRef<HTMLDivElement | null>(null);\n const minuteColumnRef = useRef<HTMLDivElement | null>(null);\n\n // `scrollIntoView` arrastaria os ancestrais junto, e o box mora no `body`.\n const centerUnitInColumn = (column: HTMLDivElement | null, index: number) => {\n const unit = column?.children?.[index] as HTMLElement | undefined;\n if (!column || !unit) return;\n column.scrollTop = unit.offsetTop - ((column.clientHeight - unit.offsetHeight) / 2);\n };\n\n useLayoutEffect(() => {\n if (!value) return;\n centerUnitInColumn(hourColumnRef.current, value.hour());\n centerUnitInColumn(minuteColumnRef.current, value.minute());\n }, [value?.hour(), value?.minute(), Boolean(value)]);\n\n // O calendário fecha no blur do input, então clicar numa unidade não pode tirar o foco\n // do campo — do contrário o popover sumiria antes do clique chegar.\n const handleOnMouseDown = (event: MouseEvent<HTMLButtonElement>) => {\n event?.preventDefault?.();\n };\n\n // A restrição só vale no dia da borda: em 15/03 com min às 14h as horas anteriores saem\n // apagadas, mas em 16/03 o intervalo já não diz nada sobre o horário.\n const isHourOutOfBounds = (hour: number) => {\n if (!value) return false;\n if (min && value.isSame(min, 'day') && hour < min.hour()) return true;\n return Boolean(max && value.isSame(max, 'day') && hour > max.hour());\n };\n\n const isMinuteOutOfBounds = (minute: number) => {\n if (!value) return false;\n const isOnMinHour = Boolean(min && value.isSame(min, 'day') && value.hour() === min.hour());\n const isOnMaxHour = Boolean(max && value.isSame(max, 'day') && value.hour() === max.hour());\n if (isOnMinHour && min && minute < min.minute()) return true;\n return Boolean(isOnMaxHour && max && minute > max.minute());\n };\n\n const renderUnit = (unit: TimeUnit) => {\n const { value: unitValue, isSelected, isOutOfBounds, testId, onClick } = unit;\n return (\n <Button\n key={unitValue}\n role=\"option\"\n type=\"button\"\n className=\"time-unit-button\"\n boxShadow={false}\n tabIndex={-1}\n title={padUnit(unitValue)}\n label={padUnit(unitValue)}\n disabled={!value || isOutOfBounds}\n aria-disabled={!value || isOutOfBounds}\n aria-selected={isSelected}\n data-testid={testId}\n data-state-out-of-bounds={isOutOfBounds}\n onMouseDown={handleOnMouseDown}\n onClick={onClick} />\n );\n };\n\n return (\n <div\n className=\"date-calendar-box-time-selector\"\n data-state-disabled={!value}\n data-testid={`${testIdPrefix}-time-selector`}>\n <div className=\"time-column\">\n <TextContent as=\"p\" className=\"time-column-label\">HORA</TextContent>\n <div\n ref={hourColumnRef}\n role=\"listbox\"\n aria-label=\"Selecionar hora\"\n className=\"time-column-options\"\n data-testid={`${testIdPrefix}-time-hour-column`}>\n {HOURS.map(hour => renderUnit({\n value: hour,\n isSelected: value?.hour() === hour,\n isOutOfBounds: isHourOutOfBounds(hour),\n testId: `${testIdPrefix}-time-hour-button`,\n onClick: () => onSelectTime(hour, value?.minute() ?? 0),\n }))}\n </div>\n </div>\n <div className=\"time-column\">\n <TextContent as=\"p\" className=\"time-column-label\">MINUTO</TextContent>\n <div\n ref={minuteColumnRef}\n role=\"listbox\"\n aria-label=\"Selecionar minuto\"\n className=\"time-column-options\"\n data-testid={`${testIdPrefix}-time-minute-column`}>\n {MINUTES.map(minute => renderUnit({\n value: minute,\n isSelected: value?.minute() === minute,\n isOutOfBounds: isMinuteOutOfBounds(minute),\n testId: `${testIdPrefix}-time-minute-button`,\n onClick: () => onSelectTime(value?.hour() ?? 0, minute),\n }))}\n </div>\n </div>\n </div>\n );\n};\n\nTimeSelector.displayName = 'DateTimeSelector';\n\nexport { TimeSelector };\nexport type { TimeSelectorProps };\n"],"names":["HOURS","_","range","MINUTES","padUnit","unit","padStart","String","TimeSelector","props","$","_c","value","onSelectTime","min","max","testIdPrefix","hourColumnRef","useRef","minuteColumnRef","centerUnitInColumn","_temp","t0","t1","current","hour","minute","t2","t3","Boolean","t4","useLayoutEffect","handleOnMouseDown","_temp2","t5","isSame","isHourOutOfBounds","t6","isOnMinHour","isOnMaxHour","isMinuteOutOfBounds","t7","unit_0","unitValue","isSelected","isOutOfBounds","testId","onClick","renderUnit","t8","t9","t10","Symbol","for","t11","t12","map","hour_0","t13","t14","t15","t16","minute_0","t17","t18","displayName","column","index","children","scrollTop","offsetTop","clientHeight","offsetHeight","event","preventDefault"],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Moment } from 'moment';
|
|
2
|
+
import { ComponentPropsWithoutRef, MouseEvent, RefObject } from 'react';
|
|
2
3
|
import { ColorTheme } from '../../@types/ColorStyles';
|
|
3
4
|
import { Position, HintPosition } from '../../@types/Position';
|
|
4
5
|
export type DateValueReturnType = 'default' | 'iso';
|
|
6
|
+
export type DateVariant = 'date' | 'datetime';
|
|
5
7
|
export declare enum Keys {
|
|
6
8
|
arrowLeft = "ArrowLeft",
|
|
7
9
|
arrowRight = "ArrowRight",
|
|
@@ -14,6 +16,19 @@ export declare enum Keys {
|
|
|
14
16
|
escape = "Escape",
|
|
15
17
|
enter = "Enter"
|
|
16
18
|
}
|
|
19
|
+
export interface DateSharedContextProps {
|
|
20
|
+
calendarBoxOpen: boolean;
|
|
21
|
+
activeDescendant: string;
|
|
22
|
+
calendarDisplayDate: Moment;
|
|
23
|
+
calendarRef: RefObject<HTMLDivElement | null>;
|
|
24
|
+
dateContainerRef: RefObject<HTMLDivElement | null>;
|
|
25
|
+
handleNextMonth: () => void;
|
|
26
|
+
handlePreviousMonth: () => void;
|
|
27
|
+
handleToggleCalendarBox: () => void;
|
|
28
|
+
handleSetCalendarBoxOpen: (value: boolean) => void;
|
|
29
|
+
handleChangeActiveDescendant: (value: string) => void;
|
|
30
|
+
handleChangeCalendarDisplayDate: (value: Moment) => void;
|
|
31
|
+
}
|
|
17
32
|
export interface BaseDateInputRootProps extends ComponentPropsWithoutRef<'div'> {
|
|
18
33
|
customClassWrapper?: string;
|
|
19
34
|
hasValidationErrors?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sources":["../../../src/lib/inputs2/date/types.ts"],"sourcesContent":["import { ComponentPropsWithoutRef, MouseEvent } from 'react';\nimport type { ColorTheme } from '../../@types/ColorStyles';\nimport type { Position, HintPosition } from '../../@types/Position';\n\nexport type DateValueReturnType = 'default' | 'iso';\nexport enum Keys {\n arrowLeft = 'ArrowLeft',\n arrowRight = 'ArrowRight',\n arrowUp = 'ArrowUp',\n arrowDown = 'ArrowDown',\n pageUp = 'PageUp',\n pageDown = 'PageDown',\n home = 'Home',\n end = 'End',\n escape = 'Escape',\n enter = 'Enter'\n}\nexport interface BaseDateInputRootProps extends ComponentPropsWithoutRef<'div'> {\n customClassWrapper?: string;\n hasValidationErrors?: boolean;\n}\nexport interface BaseDateInputLabelProps extends ComponentPropsWithoutRef<'span'> {\n hint?: string;\n customClassLabel?: string;\n skeletonize?: boolean;\n label?: string;\n inputId?: string;\n isDisabled?: boolean;\n isReadOnly?: boolean;\n required?: boolean;\n labelUppercase?: boolean;\n hasHintMessages?: boolean;\n hintPosition?: HintPosition;\n themePopover?: ColorTheme;\n popoverAlign?: Extract<Position, 'left' | 'right'>;\n}\nexport interface BaseDateInputContainerProps extends ComponentPropsWithoutRef<'div'> {\n skeletonize?: boolean;\n customClassInputContainer?: string;\n}\ntype InputHTMLProps = Omit<ComponentPropsWithoutRef<'input'>, 'type' | 'multiple'>;\nexport interface BaseDateInputProps extends InputHTMLProps {\n customClass?: string;\n}\nexport interface BaseDateInputTriggersProps extends ComponentPropsWithoutRef<'div'> {\n isDisabled?: boolean;\n isReadOnly?: boolean;\n skeletonize?: boolean;\n inputFieldId?: string;\n calendarBoxOpen?: boolean;\n showClearButton?: boolean;\n showCalendarButton?: boolean;\n hasValidDateSelection?: boolean;\n hasValidPeriodSelected?: boolean;\n clearButtonTestId?: string;\n calendarButtonTestId?: string;\n onClearSelectedDate: () => void,\n onClickTriggerCalendar: (event: MouseEvent<HTMLButtonElement>) => void,\n}\n"],"names":["Keys","arrowLeft","arrowRight","arrowUp","arrowDown","pageUp","pageDown","home","end","escape","enter"],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../src/lib/inputs2/date/types.ts"],"sourcesContent":["import type { Moment } from 'moment';\nimport { ComponentPropsWithoutRef, MouseEvent, RefObject } from 'react';\nimport type { ColorTheme } from '../../@types/ColorStyles';\nimport type { Position, HintPosition } from '../../@types/Position';\n\nexport type DateValueReturnType = 'default' | 'iso';\nexport type DateVariant = 'date' | 'datetime';\nexport enum Keys {\n arrowLeft = 'ArrowLeft',\n arrowRight = 'ArrowRight',\n arrowUp = 'ArrowUp',\n arrowDown = 'ArrowDown',\n pageUp = 'PageUp',\n pageDown = 'PageDown',\n home = 'Home',\n end = 'End',\n escape = 'Escape',\n enter = 'Enter'\n}\n// A fatia que as duas variantes expõem igual. Cada uma faz extends daqui e acrescenta só\n// o próprio modelo de valor, para a duplicação não voltar a crescer.\nexport interface DateSharedContextProps {\n calendarBoxOpen: boolean;\n activeDescendant: string;\n calendarDisplayDate: Moment;\n calendarRef: RefObject<HTMLDivElement | null>;\n dateContainerRef: RefObject<HTMLDivElement | null>;\n handleNextMonth: () => void;\n handlePreviousMonth: () => void;\n handleToggleCalendarBox: () => void;\n handleSetCalendarBoxOpen: (value: boolean) => void;\n handleChangeActiveDescendant: (value: string) => void;\n handleChangeCalendarDisplayDate: (value: Moment) => void;\n}\nexport interface BaseDateInputRootProps extends ComponentPropsWithoutRef<'div'> {\n customClassWrapper?: string;\n hasValidationErrors?: boolean;\n}\nexport interface BaseDateInputLabelProps extends ComponentPropsWithoutRef<'span'> {\n hint?: string;\n customClassLabel?: string;\n skeletonize?: boolean;\n label?: string;\n inputId?: string;\n isDisabled?: boolean;\n isReadOnly?: boolean;\n required?: boolean;\n labelUppercase?: boolean;\n hasHintMessages?: boolean;\n hintPosition?: HintPosition;\n themePopover?: ColorTheme;\n popoverAlign?: Extract<Position, 'left' | 'right'>;\n}\nexport interface BaseDateInputContainerProps extends ComponentPropsWithoutRef<'div'> {\n skeletonize?: boolean;\n customClassInputContainer?: string;\n}\ntype InputHTMLProps = Omit<ComponentPropsWithoutRef<'input'>, 'type' | 'multiple'>;\nexport interface BaseDateInputProps extends InputHTMLProps {\n customClass?: string;\n}\nexport interface BaseDateInputTriggersProps extends ComponentPropsWithoutRef<'div'> {\n isDisabled?: boolean;\n isReadOnly?: boolean;\n skeletonize?: boolean;\n inputFieldId?: string;\n calendarBoxOpen?: boolean;\n showClearButton?: boolean;\n showCalendarButton?: boolean;\n hasValidDateSelection?: boolean;\n hasValidPeriodSelected?: boolean;\n clearButtonTestId?: string;\n calendarButtonTestId?: string;\n onClearSelectedDate: () => void,\n onClickTriggerCalendar: (event: MouseEvent<HTMLButtonElement>) => void,\n}\n"],"names":["Keys","arrowLeft","arrowRight","arrowUp","arrowDown","pageUp","pageDown","home","end","escape","enter"],"mappings":"AAOO,IAAKA,yBAAAA,UAAL;AACLC,QAAAA,WAAAA,IAAY;AACZC,QAAAA,YAAAA,IAAa;AACbC,QAAAA,SAAAA,IAAU;AACVC,QAAAA,WAAAA,IAAY;AACZC,QAAAA,QAAAA,IAAS;AACTC,QAAAA,UAAAA,IAAW;AACXC,QAAAA,MAAAA,IAAO;AACPC,QAAAA,KAAAA,IAAM;AACNC,QAAAA,QAAAA,IAAS;AACTC,QAAAA,OAAAA,IAAQ;AAVEV,SAAAA;AAAAA,GAAAA,QAAAA,CAAAA,CAAAA;"}
|
|
@@ -109,8 +109,8 @@ const InputBase = forwardRef((props, ref) => {
|
|
|
109
109
|
}
|
|
110
110
|
}, [listBoxOpen]);
|
|
111
111
|
useEffect(() => {
|
|
112
|
+
if (props?.value && !isMultipleSelect) setActiveDescendant(props?.value);
|
|
112
113
|
if (!isMultipleWithCheckboxes && !props?.value) setInputValue("");
|
|
113
|
-
if (!props?.value || document.activeElement === selectInputRef.current) return;
|
|
114
114
|
const lazyInputValue = listOptionsMap.get(rest.value);
|
|
115
115
|
if (!isMultipleWithCheckboxes) setInputValue(lazyInputValue ?? "");
|
|
116
116
|
if (isMultipleWithCheckboxes) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sources":["../../../src/lib/inputs2/selectfield/base.tsx"],"sourcesContent":["import '../../assets/styles/selectfield.scss';\n\nimport {\n Children, cloneElement, forwardRef, Fragment, isValidElement, useEffect,\n useId, useMemo, useRef, useState, type ChangeEvent, type ClipboardEvent,\n type FocusEvent, type InputEvent, type KeyboardEvent, type ReactNode,\n type MouseEvent, \n} from 'react';\nimport _ from 'lodash';\nimport { createPortal } from 'react-dom';\nimport Hint from '../../hint';\nimport Popover, { PopoverText } from '../../popover';\nimport { Tooltip } from '../../tooltip';\nimport { mergeRefs } from '../../form2/helpers';\nimport { LeftSlot, RightSlot, type SlotProps } from '../slot';\nimport { ListBox } from './listbox';\nimport { Triggers } from './triggers';\nimport { Selections } from './selections';\nimport { SelectFieldContext } from './context';\nimport { Options, type OptionsProps } from './options';\nimport { Item, type SelectFieldItemProps } from './item';\nimport { Keys, MultipleVariantEnum, SelectFieldInputBaseProps } from './types';\nimport { isTypingKey, NAVIGATION_KEYS, scrollListBoxToElement } from './helpers';\n\nexport const InputBase = forwardRef<HTMLInputElement, SelectFieldInputBaseProps>(\n (props, ref) => {\n const {\n name, label, errors, children, onChange, tooltip, tooltipPosition, tooltipWidth, hintPosition = 'below',\n themePopover = 'light', popoverAlign = 'left', skeletonize = false, striped = false, undigitable = false, externalSearch = false,\n openDropdownOnFocus = true, showClearButton = true, textAlign = 'left', searchOnDropdown = false, onSearch = undefined,\n customClass = '', customClassLabel = '', customClassWrapper = '', customClassInputContainer = '',\n notFoundFilterLabel = 'Nenhuma opção encontrada.', multipleInputLabelEmpty = 'Nenhum registro selecionado',\n multipleInputLabelManySelection = 'Múltiplos registros selecionados', searchInputPlaceholder = 'Pesquisar registros',\n dropdownAlignButton = 'left', dropdownMaxWidth = undefined, disabled, readOnly, ...rest\n } = props;\n const SELECT_FIELD_CONTROLS_ID = useId();\n const [inputValue, setInputValue] = useState('');\n const [filterValue, setFilterValue] = useState('');\n const [listBoxOpen, setListBoxOpen] = useState(false);\n const [activeDescendant, setActiveDescendant] = useState<string | undefined>(undefined);\n const isMultipleDefault = _.isEqual(props?.multiple, MultipleVariantEnum.default);\n const isMultipleWithCheckboxes = _.isEqual(props?.multiple, MultipleVariantEnum.checkboxes);\n const isMultipleSelect = isMultipleDefault || isMultipleWithCheckboxes;\n const liSelectedRef = useRef<HTMLLIElement | null>(null);\n const selectFieldRoot = useRef<HTMLDivElement | null>(null);\n const selectInputRef = useRef<HTMLInputElement | null>(null);\n const selectListBoxRef = useRef<HTMLDivElement | null>(null);\n const selectContainerRef = useRef<HTMLDivElement | null>(null);\n const selectSearchInputRef = useRef<HTMLInputElement | null>(null);\n\n const listOptionsMap = useMemo(() => {\n const optionsMap = new Map<string, string>();\n Children.forEach(children, (child) => {\n if (isValidElement<SelectFieldItemProps>(child)) {\n optionsMap.set(child.props.value, child.props.label);\n }\n });\n return optionsMap;\n }, [children]);\n\n useEffect(() => {\n if (isMultipleWithCheckboxes) {\n setInputValue(multipleInputLabelEmpty);\n }\n }, []);\n\n useEffect(() => {\n if (openDropdownOnFocus && listBoxOpen) {\n if (isMultipleWithCheckboxes) {\n setTimeout(() => { selectSearchInputRef.current?.focus?.(); }, 10);\n }\n }\n\n if (listBoxOpen) {\n /**\n * Scroll automático para o item selecionado na abertura do listbox.\n *\n * Usa requestAnimationFrame para aguardar que o DOM esteja renderizado e que o container\n * tenha dimensões estáveis (clientHeight > 0), já que a animação CSS \"revealelement\"\n * inicia com height: 0%, o que invalida o cálculo de scroll se executado antes.\n *\n * O scroll é feito via scrollListBoxToElement (helpers.ts) que manipula diretamente\n * o scrollTop do <ul>, sem usar scrollIntoView(), evitando propagação indesejada\n * de scroll para containers ancestrais(ex: body).\n */\n let retries = 0;\n const maxRetries = 20;\n const scrollToViewSelectedElement = () => {\n const listBox = selectListBoxRef.current?.querySelector('ul[role=\"listbox\"]');\n const currentValue = !isMultipleSelect ?\n props?.value\n : _.orderBy([...props.value], value => _.toNumber(value), ['asc'])[0];\n const currentLiElement = listBox?.querySelector(`li[id=\"${\n _.toString(currentValue)}\"]`) as HTMLLIElement | null;\n if (currentLiElement && listBox) {\n if (listBox.clientHeight > 0) {\n scrollListBoxToElement(listBox, currentLiElement, 'center');\n } else if (retries < maxRetries) {\n retries++;\n requestAnimationFrame(scrollToViewSelectedElement);\n }\n }\n };\n requestAnimationFrame(scrollToViewSelectedElement);\n }\n }, [listBoxOpen]);\n\n useEffect(() => {\n if (!isMultipleWithCheckboxes && !props?.value) setInputValue('');\n if (!props?.value || document.activeElement === selectInputRef.current) return;\n const lazyInputValue = listOptionsMap.get(rest.value);\n if (!isMultipleWithCheckboxes) setInputValue(lazyInputValue ?? '');\n if (isMultipleWithCheckboxes) {\n const firstSelectionLabel = listOptionsMap.get(props?.value[0]);\n switch (_.size(props?.value)) {\n case 0:\n return setInputValue(multipleInputLabelEmpty);\n case 1:\n return setInputValue(firstSelectionLabel ?? '');\n default:\n return setInputValue(multipleInputLabelManySelection);\n }\n }\n }, [props?.value, listOptionsMap]);\n\n const hasLabel = !_.isEmpty(props?.label);\n const hasHintMessages = Boolean(props.hint?.length);\n const hasValidationErrors = Boolean(errors?.length);\n\n const { childrenItems } = useMemo(() => {\n const itens: ReactNode[] = [];\n\n Children.map(children, (childElement, index) => {\n if (isValidElement<SelectFieldItemProps>(childElement)) {\n const clonedChild = cloneElement(childElement, {\n key: childElement.key ?? `child-item-${index + 1}`,\n });\n if (childElement.type === Item) itens.push(clonedChild);\n }\n });\n\n return { childrenItems: itens };\n }, [children, disabled]);\n\n const { leftSlotElements, rightSlotElements } = useMemo(() => {\n const left: ReactNode[] = [];\n const right: ReactNode[] = [];\n\n Children.map(children, (childElement, index) => {\n if (isValidElement<SlotProps>(childElement)) {\n const clonedChild = cloneElement(childElement, {\n key: childElement.key ?? `slot-${index}`,\n disabled: disabled,\n 'aria-disabled': disabled,\n });\n if (childElement.type === LeftSlot) left.push(clonedChild);\n if (childElement.type === RightSlot) right.push(clonedChild);\n }\n });\n\n return { leftSlotElements: left, rightSlotElements: right };\n }, [children, disabled]);\n\n const { optionItens } = useMemo(() => {\n const itens: ReactNode[] = [];\n\n Children.map(children, (childElement, index) => {\n if (isValidElement<OptionsProps>(childElement)) {\n const clonedChildItem = cloneElement(childElement, {\n key: childElement.key ?? `option-list-${index}`,\n disabled: disabled,\n });\n if (childElement.type === Options) itens.push(clonedChildItem);\n }\n });\n\n return { optionItens: itens };\n }, [children, disabled]);\n\n const hasLeftSlotElements = Boolean(leftSlotElements?.length);\n const hasRightSlotElements = Boolean(rightSlotElements?.length);\n\n const handleCloseListBox = () => {\n setListBoxOpen(false);\n setFilterValue('');\n };\n\n const handleOpenListBox = () => {\n const currentValue = !isMultipleSelect ?\n props?.value\n : _.orderBy([...props.value], value => _.toNumber(value), ['asc'])[0];\n setActiveDescendant(_.toString(currentValue) ?? undefined);\n };\n\n const handleChangeListBoxState = () => {\n setListBoxOpen((prevState) => {\n if (prevState) {\n setFilterValue('');\n }\n if (selectInputRef.current !== document.activeElement) {\n selectInputRef?.current?.focus?.();\n }\n handleOpenListBox();\n return !prevState;\n });\n };\n\n const handleChangeLiSelected = (liElement: HTMLLIElement | null) => {\n liSelectedRef.current = liElement;\n };\n\n const handleOnChange = (value?: any, inputLabel?: string, addOrRemove?: boolean) => {\n let multipleValue = props?.value;\n if (!addOrRemove) multipleValue = _.union(props.value, [value]);\n if (addOrRemove) multipleValue = _.without(props.value, value);\n const changedValue = !isMultipleSelect ?\n value\n : _.orderBy(multipleValue, multiValue => _.toNumber(multiValue), ['asc']);\n const syntheticEvent = {\n target: {\n name,\n value: changedValue as any,\n },\n } as ChangeEvent<HTMLInputElement>;\n onChange?.(syntheticEvent);\n if (!isMultipleSelect) {\n setListBoxOpen(false);\n setFilterValue('');\n setInputValue(inputLabel ?? '');\n if (document.activeElement === selectSearchInputRef.current) {\n selectInputRef?.current?.focus?.();\n setListBoxOpen(false);\n }\n }\n };\n\n const handleCheckMultiple = (checkOrUncheckAll?: boolean) => {\n const checkAll = Boolean(checkOrUncheckAll);\n const allValues: any[] = [];\n listOptionsMap.forEach((__, key) => allValues.push(key));\n const value: any = checkAll ? allValues : [];\n const syntheticEvent = {\n target: {\n name,\n value,\n },\n } as ChangeEvent<HTMLInputElement>;\n onChange?.(syntheticEvent);\n };\n\n const handleClearValue = () => {\n const resetValue = !isMultipleSelect ? '' : [];\n const syntheticEvent = {\n target: {\n name,\n value: resetValue as any,\n },\n } as ChangeEvent<HTMLInputElement>;\n onChange?.(syntheticEvent);\n setListBoxOpen(false);\n if (!isMultipleSelect) {\n setFilterValue('');\n setInputValue('');\n }\n if (isMultipleWithCheckboxes) {\n setInputValue(multipleInputLabelEmpty);\n }\n };\n\n const handleOnBlur = (event: FocusEvent<HTMLInputElement>) => {\n props?.onBlur?.(event);\n if (!event.relatedTarget || event.relatedTarget !== selectSearchInputRef.current) {\n setListBoxOpen(false);\n }\n setFilterValue('');\n };\n\n const handleOnFocus = (event: FocusEvent<HTMLInputElement>) => {\n props?.onFocus?.(event);\n if (openDropdownOnFocus) {\n setListBoxOpen(true);\n handleOpenListBox();\n }\n };\n\n const handleOnChangeInput = (event: ChangeEvent<HTMLInputElement>) => {\n setFilterValue(event.target.value);\n setInputValue(event.target.value);\n };\n\n const handleOnPaste = (event: ClipboardEvent<HTMLInputElement>) => {\n if (undigitable || isMultipleWithCheckboxes) {\n event.preventDefault();\n } else {\n props.onPaste?.(event);\n }\n };\n\n const handleOnBeforeInput = (event: InputEvent<HTMLInputElement>) => {\n if (undigitable || isMultipleWithCheckboxes) {\n event.preventDefault();\n } else {\n props.onBeforeInput?.(event);\n }\n };\n\n const handleOnMouseDown = (event: MouseEvent<HTMLInputElement>) => {\n if (undigitable) {\n event.preventDefault();\n } else {\n props.onMouseDown?.(event);\n if (openDropdownOnFocus && !listBoxOpen) {\n setListBoxOpen(true);\n handleOpenListBox();\n }\n }\n };\n\n const handleOnSearch = (event: ChangeEvent<HTMLInputElement>) => {\n if (externalSearch) {\n onSearch?.(event);\n } else {\n setFilterValue(event.target.value);\n }\n };\n\n const handleOnKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n props?.onKeyDown?.(event);\n const notUndigitableKeys: string[] = [Keys.backspace, Keys.delete];\n if ((undigitable) && notUndigitableKeys.includes(event.key)) {\n event.preventDefault();\n return;\n }\n const shouldOpenByTyping = isTypingKey(event) || event.key === Keys.arrowDown;\n if (shouldOpenByTyping && selectInputRef.current === document.activeElement) {\n if (event.key === Keys.arrowDown) {\n event.preventDefault();\n }\n requestAnimationFrame(() => {\n const ulListElement = selectListBoxRef.current?.querySelector('ul[role=\"listbox\"]');\n const liElementsFiltered = (ulListElement?.querySelectorAll(\n 'li[data-state-filtered=\"true\"]',\n ) ?? []) as HTMLLIElement[];\n if (!listBoxOpen && event.key === Keys.arrowDown) {\n const currentValue = !isMultipleSelect ?\n props?.value\n : _.orderBy([...props.value], value => _.toNumber(value), ['asc'])[0];\n setActiveDescendant(_.toString(currentValue) ?? undefined);\n } else {\n setActiveDescendant(liElementsFiltered[0]?.id ?? undefined);\n }\n });\n if (!listBoxOpen) {\n setListBoxOpen(true);\n handleOpenListBox();\n }\n }\n if (listBoxOpen && NAVIGATION_KEYS.includes(event.key)) {\n event.preventDefault();\n }\n requestAnimationFrame(() => {\n const ulListElement = selectListBoxRef.current?.querySelector('ul[role=\"listbox\"]');\n const liElementsFiltered = (ulListElement?.querySelectorAll(\n 'li[data-state-filtered=\"true\"]',\n ) ?? []) as HTMLLIElement[];\n const currentElementIndex = Array.from(liElementsFiltered).findIndex(\n liElement => liElement.id === activeDescendant,\n );\n let nextElementIndex = currentElementIndex;\n if (listBoxOpen) {\n if (NAVIGATION_KEYS.includes(event.key)) {\n switch (event.key) {\n case Keys.escape:\n setListBoxOpen(false);\n setFilterValue('');\n selectInputRef.current?.focus();\n if (event.target === selectSearchInputRef.current) {\n setListBoxOpen(false);\n }\n break;\n case Keys.arrowDown:\n nextElementIndex = Math.min(currentElementIndex + 1, liElementsFiltered.length - 1);\n break;\n case Keys.arrowUp:\n nextElementIndex = Math.max(currentElementIndex - 1, 0);\n break;\n case Keys.enter:\n if (activeDescendant) {\n const selectedLIOption = liElementsFiltered[nextElementIndex];\n if (selectedLIOption) {\n selectedLIOption.click();\n }\n }\n break;\n default:\n break;\n }\n const nextLIOption = liElementsFiltered[nextElementIndex];\n if (nextLIOption) {\n setActiveDescendant(nextLIOption?.id ?? '');\n const ulListBox = selectListBoxRef.current?.querySelector('ul[role=\"listbox\"]');\n scrollListBoxToElement(ulListBox, nextLIOption, 'nearest');\n }\n }\n } else return null;\n });\n };\n\n const contextValues = ({\n selectFieldId: SELECT_FIELD_CONTROLS_ID, label: props.label, striped, listBoxOpen,\n filterValue, disabled, liSelectedRef, selectInputRef, selectSearchInputRef, handleOnSearch,\n searchOnDropdown, nameSelect: String(props.name), valueSelect: props?.value,\n activeDescendant, handleOnChange, handleOnKeyDown, selectContainerRef, handleCloseListBox,\n notFoundFilterLabel, handleChangeLiSelected, isMultipleSelect, isMultipleDefault,\n isMultipleWithCheckboxes, searchInputPlaceholder, showClearButton, dropdownAlignButton,\n handleClearValue, handleCheckMultiple, handleChangeListBoxState, optionItens,\n });\n\n return (\n <Fragment>\n <SelectFieldContext.Provider value={contextValues}>\n <div\n ref={selectFieldRoot}\n data-testid=\"test-select-field-root\"\n className={`select-field-root ${customClassWrapper}`}\n data-state-error={hasValidationErrors}\n data-state-hint-position={hintPosition}>\n {hasLabel && (\n <span\n className={`root-label ${customClassLabel}`}\n data-state-skeletonize={skeletonize}>\n <label\n data-testid=\"test-select-field-label\"\n className=\"label\"\n title={label}\n htmlFor={name}\n aria-disabled={disabled}\n aria-readonly={readOnly}\n data-state-input-required={props.required}>\n {label}\n </label>\n {hasHintMessages && hintPosition === 'onLabelRight' && !skeletonize && (\n <Popover\n customClass=\"label-popover\"\n theme={themePopover}\n align={popoverAlign}\n iconColor=\"#03bde2\">\n <PopoverText text={props?.hint ?? ''} />\n </Popover>\n )}\n </span>\n )}\n <div\n ref={selectContainerRef}\n className={`container ${customClassInputContainer}`}\n aria-expanded={listBoxOpen}\n data-state-skeletonize={skeletonize}>\n {(hasLeftSlotElements && !skeletonize) && leftSlotElements}\n <div className=\"input-root\">\n <input\n {...rest}\n ref={mergeRefs(ref, selectInputRef)}\n readOnly={props.readOnly || undigitable}\n className={`input ${customClass}`}\n placeholder={rest.placeholder}\n data-state-error={hasValidationErrors}\n data-state-multiple={isMultipleSelect}\n data-state-read-only={readOnly}\n data-state-text-align={textAlign}\n data-state-undigitable={undigitable}\n data-state-skeletonize={skeletonize}\n data-state-multiple-with-checkboxes={isMultipleWithCheckboxes}\n id={name}\n type=\"text\"\n role=\"combobox\"\n multiple={false}\n disabled={disabled}\n data-testid=\"test-select-field-input\"\n aria-autocomplete=\"list\"\n aria-expanded={listBoxOpen}\n aria-controls={SELECT_FIELD_CONTROLS_ID}\n aria-activedescendant={activeDescendant}\n tabIndex={(!readOnly && !skeletonize) ? 0 : -1}\n value={inputValue}\n onBlur={handleOnBlur}\n onFocus={handleOnFocus}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChangeInput}\n onPaste={handleOnPaste}\n onMouseDown={handleOnMouseDown}\n onBeforeInput={handleOnBeforeInput} />\n {isMultipleDefault && (\n <Selections\n disabled={Boolean(disabled)}\n isReadOnly={Boolean(readOnly)}\n listOfOptionsToSelect={listOptionsMap} />\n )}\n </div>\n {(hasRightSlotElements && !skeletonize) && rightSlotElements}\n <div\n className=\"triggers\"\n data-state-disabled={disabled}\n data-state-read-only={readOnly}\n data-state-skeletonize={skeletonize}>\n <Triggers />\n </div>\n {listBoxOpen && createPortal(\n <ListBox\n ref={selectListBoxRef}\n dropdownMaxWidth={dropdownMaxWidth}>\n {childrenItems}\n </ListBox>,\n document.body,\n )}\n </div>\n {hintPosition === 'below' && (\n <Hint\n customClass=\"hint\"\n skeletonize={skeletonize}\n description={props.hint}\n disabled={disabled}\n visible={hasHintMessages} />\n )}\n {hasValidationErrors && (\n <span\n data-testid=\"test-select-field-list-errors\"\n className=\"error\"\n data-state-skeletonize={skeletonize}\n aria-describedby={String(name).concat('-errors')}>\n {errors?.map((error, index) => (\n <Fragment key={`${index + 1}-${error}`}>\n {error}\n {' '}\n </Fragment>\n ))}\n </span>\n )}\n </div>\n </SelectFieldContext.Provider>\n <Tooltip\n targetRef={selectInputRef}\n text={tooltip}\n position={tooltipPosition}\n width={tooltipWidth}\n space={tooltipPosition === 'right' ? 64 : undefined} />\n </Fragment>\n );\n },\n);\n\nInputBase.displayName = 'SelectFieldInputBase';\n"],"names":["InputBase","forwardRef","props","ref","name","label","errors","children","onChange","tooltip","tooltipPosition","tooltipWidth","hintPosition","themePopover","popoverAlign","skeletonize","striped","undigitable","externalSearch","openDropdownOnFocus","showClearButton","textAlign","searchOnDropdown","onSearch","undefined","customClass","customClassLabel","customClassWrapper","customClassInputContainer","notFoundFilterLabel","multipleInputLabelEmpty","multipleInputLabelManySelection","searchInputPlaceholder","dropdownAlignButton","dropdownMaxWidth","disabled","readOnly","rest","SELECT_FIELD_CONTROLS_ID","useId","inputValue","setInputValue","useState","filterValue","setFilterValue","listBoxOpen","setListBoxOpen","activeDescendant","setActiveDescendant","isMultipleDefault","_","isEqual","multiple","MultipleVariantEnum","default","isMultipleWithCheckboxes","checkboxes","isMultipleSelect","liSelectedRef","useRef","selectFieldRoot","selectInputRef","selectListBoxRef","selectContainerRef","selectSearchInputRef","listOptionsMap","useMemo","optionsMap","Map","Children","forEach","child","isValidElement","set","value","useEffect","setTimeout","current","focus","retries","maxRetries","scrollToViewSelectedElement","listBox","querySelector","currentValue","orderBy","toNumber","currentLiElement","toString","clientHeight","scrollListBoxToElement","requestAnimationFrame","document","activeElement","lazyInputValue","get","firstSelectionLabel","size","hasLabel","isEmpty","hasHintMessages","Boolean","hint","length","hasValidationErrors","childrenItems","itens","map","childElement","index","clonedChild","cloneElement","key","type","Item","push","leftSlotElements","rightSlotElements","left","right","LeftSlot","RightSlot","optionItens","clonedChildItem","Options","hasLeftSlotElements","hasRightSlotElements","handleCloseListBox","handleOpenListBox","handleChangeListBoxState","prevState","handleChangeLiSelected","liElement","handleOnChange","inputLabel","addOrRemove","multipleValue","union","without","changedValue","multiValue","syntheticEvent","target","handleCheckMultiple","checkOrUncheckAll","checkAll","allValues","__","handleClearValue","resetValue","handleOnBlur","event","onBlur","relatedTarget","handleOnFocus","onFocus","handleOnChangeInput","handleOnPaste","preventDefault","onPaste","handleOnBeforeInput","onBeforeInput","handleOnMouseDown","onMouseDown","handleOnSearch","handleOnKeyDown","onKeyDown","notUndigitableKeys","Keys","backspace","delete","includes","shouldOpenByTyping","isTypingKey","arrowDown","ulListElement","liElementsFiltered","querySelectorAll","id","NAVIGATION_KEYS","currentElementIndex","Array","from","findIndex","nextElementIndex","escape","Math","min","arrowUp","max","enter","selectedLIOption","click","nextLIOption","ulListBox","contextValues","selectFieldId","nameSelect","String","valueSelect","required","mergeRefs","placeholder","createPortal","body","concat","error","displayName"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"base.js","sources":["../../../src/lib/inputs2/selectfield/base.tsx"],"sourcesContent":["import '../../assets/styles/selectfield.scss';\n\nimport {\n Children, cloneElement, forwardRef, Fragment, isValidElement, useEffect,\n useId, useMemo, useRef, useState, type ChangeEvent, type ClipboardEvent,\n type FocusEvent, type InputEvent, type KeyboardEvent, type ReactNode,\n type MouseEvent, \n} from 'react';\nimport _ from 'lodash';\nimport { createPortal } from 'react-dom';\nimport Hint from '../../hint';\nimport Popover, { PopoverText } from '../../popover';\nimport { Tooltip } from '../../tooltip';\nimport { mergeRefs } from '../../form2/helpers';\nimport { LeftSlot, RightSlot, type SlotProps } from '../slot';\nimport { ListBox } from './listbox';\nimport { Triggers } from './triggers';\nimport { Selections } from './selections';\nimport { SelectFieldContext } from './context';\nimport { Options, type OptionsProps } from './options';\nimport { Item, type SelectFieldItemProps } from './item';\nimport { Keys, MultipleVariantEnum, SelectFieldInputBaseProps } from './types';\nimport { isTypingKey, NAVIGATION_KEYS, scrollListBoxToElement } from './helpers';\n\nexport const InputBase = forwardRef<HTMLInputElement, SelectFieldInputBaseProps>(\n (props, ref) => {\n const {\n name, label, errors, children, onChange, tooltip, tooltipPosition, tooltipWidth, hintPosition = 'below',\n themePopover = 'light', popoverAlign = 'left', skeletonize = false, striped = false, undigitable = false, externalSearch = false,\n openDropdownOnFocus = true, showClearButton = true, textAlign = 'left', searchOnDropdown = false, onSearch = undefined,\n customClass = '', customClassLabel = '', customClassWrapper = '', customClassInputContainer = '',\n notFoundFilterLabel = 'Nenhuma opção encontrada.', multipleInputLabelEmpty = 'Nenhum registro selecionado',\n multipleInputLabelManySelection = 'Múltiplos registros selecionados', searchInputPlaceholder = 'Pesquisar registros',\n dropdownAlignButton = 'left', dropdownMaxWidth = undefined, disabled, readOnly, ...rest\n } = props;\n const SELECT_FIELD_CONTROLS_ID = useId();\n const [inputValue, setInputValue] = useState('');\n const [filterValue, setFilterValue] = useState('');\n const [listBoxOpen, setListBoxOpen] = useState(false);\n const [activeDescendant, setActiveDescendant] = useState<string | undefined>(undefined);\n const isMultipleDefault = _.isEqual(props?.multiple, MultipleVariantEnum.default);\n const isMultipleWithCheckboxes = _.isEqual(props?.multiple, MultipleVariantEnum.checkboxes);\n const isMultipleSelect = isMultipleDefault || isMultipleWithCheckboxes;\n const liSelectedRef = useRef<HTMLLIElement | null>(null);\n const selectFieldRoot = useRef<HTMLDivElement | null>(null);\n const selectInputRef = useRef<HTMLInputElement | null>(null);\n const selectListBoxRef = useRef<HTMLDivElement | null>(null);\n const selectContainerRef = useRef<HTMLDivElement | null>(null);\n const selectSearchInputRef = useRef<HTMLInputElement | null>(null);\n\n const listOptionsMap = useMemo(() => {\n const optionsMap = new Map<string, string>();\n Children.forEach(children, (child) => {\n if (isValidElement<SelectFieldItemProps>(child)) {\n optionsMap.set(child.props.value, child.props.label);\n }\n });\n return optionsMap;\n }, [children]);\n\n useEffect(() => {\n if (isMultipleWithCheckboxes) {\n setInputValue(multipleInputLabelEmpty);\n }\n }, []);\n\n useEffect(() => {\n if (openDropdownOnFocus && listBoxOpen) {\n if (isMultipleWithCheckboxes) {\n setTimeout(() => { selectSearchInputRef.current?.focus?.(); }, 10);\n }\n }\n\n if (listBoxOpen) {\n /**\n * Scroll automático para o item selecionado na abertura do listbox.\n *\n * Usa requestAnimationFrame para aguardar que o DOM esteja renderizado e que o container\n * tenha dimensões estáveis (clientHeight > 0), já que a animação CSS \"revealelement\"\n * inicia com height: 0%, o que invalida o cálculo de scroll se executado antes.\n *\n * O scroll é feito via scrollListBoxToElement (helpers.ts) que manipula diretamente\n * o scrollTop do <ul>, sem usar scrollIntoView(), evitando propagação indesejada\n * de scroll para containers ancestrais(ex: body).\n */\n let retries = 0;\n const maxRetries = 20;\n const scrollToViewSelectedElement = () => {\n const listBox = selectListBoxRef.current?.querySelector('ul[role=\"listbox\"]');\n const currentValue = !isMultipleSelect ?\n props?.value\n : _.orderBy([...props.value], value => _.toNumber(value), ['asc'])[0];\n const currentLiElement = listBox?.querySelector(`li[id=\"${\n _.toString(currentValue)}\"]`) as HTMLLIElement | null;\n if (currentLiElement && listBox) {\n if (listBox.clientHeight > 0) {\n scrollListBoxToElement(listBox, currentLiElement, 'center');\n } else if (retries < maxRetries) {\n retries++;\n requestAnimationFrame(scrollToViewSelectedElement);\n }\n }\n };\n requestAnimationFrame(scrollToViewSelectedElement);\n }\n }, [listBoxOpen]);\n\n useEffect(() => {\n if (props?.value && !isMultipleSelect) setActiveDescendant(props?.value);\n if (!isMultipleWithCheckboxes && !props?.value) setInputValue('');\n const lazyInputValue = listOptionsMap.get(rest.value);\n if (!isMultipleWithCheckboxes) setInputValue(lazyInputValue ?? '');\n if (isMultipleWithCheckboxes) {\n const firstSelectionLabel = listOptionsMap.get(props?.value[0]);\n switch (_.size(props?.value)) {\n case 0:\n return setInputValue(multipleInputLabelEmpty);\n case 1:\n return setInputValue(firstSelectionLabel ?? '');\n default:\n return setInputValue(multipleInputLabelManySelection);\n }\n }\n }, [props?.value, listOptionsMap]);\n\n const hasLabel = !_.isEmpty(props?.label);\n const hasHintMessages = Boolean(props.hint?.length);\n const hasValidationErrors = Boolean(errors?.length);\n\n const { childrenItems } = useMemo(() => {\n const itens: ReactNode[] = [];\n\n Children.map(children, (childElement, index) => {\n if (isValidElement<SelectFieldItemProps>(childElement)) {\n const clonedChild = cloneElement(childElement, {\n key: childElement.key ?? `child-item-${index + 1}`,\n });\n if (childElement.type === Item) itens.push(clonedChild);\n }\n });\n\n return { childrenItems: itens };\n }, [children, disabled]);\n\n const { leftSlotElements, rightSlotElements } = useMemo(() => {\n const left: ReactNode[] = [];\n const right: ReactNode[] = [];\n\n Children.map(children, (childElement, index) => {\n if (isValidElement<SlotProps>(childElement)) {\n const clonedChild = cloneElement(childElement, {\n key: childElement.key ?? `slot-${index}`,\n disabled: disabled,\n 'aria-disabled': disabled,\n });\n if (childElement.type === LeftSlot) left.push(clonedChild);\n if (childElement.type === RightSlot) right.push(clonedChild);\n }\n });\n\n return { leftSlotElements: left, rightSlotElements: right };\n }, [children, disabled]);\n\n const { optionItens } = useMemo(() => {\n const itens: ReactNode[] = [];\n\n Children.map(children, (childElement, index) => {\n if (isValidElement<OptionsProps>(childElement)) {\n const clonedChildItem = cloneElement(childElement, {\n key: childElement.key ?? `option-list-${index}`,\n disabled: disabled,\n });\n if (childElement.type === Options) itens.push(clonedChildItem);\n }\n });\n\n return { optionItens: itens };\n }, [children, disabled]);\n\n const hasLeftSlotElements = Boolean(leftSlotElements?.length);\n const hasRightSlotElements = Boolean(rightSlotElements?.length);\n\n const handleCloseListBox = () => {\n setListBoxOpen(false);\n setFilterValue('');\n };\n\n const handleOpenListBox = () => {\n const currentValue = !isMultipleSelect ?\n props?.value\n : _.orderBy([...props.value], value => _.toNumber(value), ['asc'])[0];\n setActiveDescendant(_.toString(currentValue) ?? undefined);\n };\n\n const handleChangeListBoxState = () => {\n setListBoxOpen((prevState) => {\n if (prevState) {\n setFilterValue('');\n }\n if (selectInputRef.current !== document.activeElement) {\n selectInputRef?.current?.focus?.();\n }\n handleOpenListBox();\n return !prevState;\n });\n };\n\n const handleChangeLiSelected = (liElement: HTMLLIElement | null) => {\n liSelectedRef.current = liElement;\n };\n\n const handleOnChange = (value?: any, inputLabel?: string, addOrRemove?: boolean) => {\n let multipleValue = props?.value;\n if (!addOrRemove) multipleValue = _.union(props.value, [value]);\n if (addOrRemove) multipleValue = _.without(props.value, value);\n const changedValue = !isMultipleSelect ?\n value\n : _.orderBy(multipleValue, multiValue => _.toNumber(multiValue), ['asc']);\n const syntheticEvent = {\n target: {\n name,\n value: changedValue as any,\n },\n } as ChangeEvent<HTMLInputElement>;\n onChange?.(syntheticEvent);\n if (!isMultipleSelect) {\n setListBoxOpen(false);\n setFilterValue('');\n setInputValue(inputLabel ?? '');\n if (document.activeElement === selectSearchInputRef.current) {\n selectInputRef?.current?.focus?.();\n setListBoxOpen(false);\n }\n }\n };\n\n const handleCheckMultiple = (checkOrUncheckAll?: boolean) => {\n const checkAll = Boolean(checkOrUncheckAll);\n const allValues: any[] = [];\n listOptionsMap.forEach((__, key) => allValues.push(key));\n const value: any = checkAll ? allValues : [];\n const syntheticEvent = {\n target: {\n name,\n value,\n },\n } as ChangeEvent<HTMLInputElement>;\n onChange?.(syntheticEvent);\n };\n\n const handleClearValue = () => {\n const resetValue = !isMultipleSelect ? '' : [];\n const syntheticEvent = {\n target: {\n name,\n value: resetValue as any,\n },\n } as ChangeEvent<HTMLInputElement>;\n onChange?.(syntheticEvent);\n setListBoxOpen(false);\n if (!isMultipleSelect) {\n setFilterValue('');\n setInputValue('');\n }\n if (isMultipleWithCheckboxes) {\n setInputValue(multipleInputLabelEmpty);\n }\n };\n\n const handleOnBlur = (event: FocusEvent<HTMLInputElement>) => {\n props?.onBlur?.(event);\n if (!event.relatedTarget || event.relatedTarget !== selectSearchInputRef.current) {\n setListBoxOpen(false);\n }\n setFilterValue('');\n };\n\n const handleOnFocus = (event: FocusEvent<HTMLInputElement>) => {\n props?.onFocus?.(event);\n if (openDropdownOnFocus) {\n setListBoxOpen(true);\n handleOpenListBox();\n }\n };\n\n const handleOnChangeInput = (event: ChangeEvent<HTMLInputElement>) => {\n setFilterValue(event.target.value);\n setInputValue(event.target.value);\n };\n\n const handleOnPaste = (event: ClipboardEvent<HTMLInputElement>) => {\n if (undigitable || isMultipleWithCheckboxes) {\n event.preventDefault();\n } else {\n props.onPaste?.(event);\n }\n };\n\n const handleOnBeforeInput = (event: InputEvent<HTMLInputElement>) => {\n if (undigitable || isMultipleWithCheckboxes) {\n event.preventDefault();\n } else {\n props.onBeforeInput?.(event);\n }\n };\n\n const handleOnMouseDown = (event: MouseEvent<HTMLInputElement>) => {\n if (undigitable) {\n event.preventDefault();\n } else {\n props.onMouseDown?.(event);\n if (openDropdownOnFocus && !listBoxOpen) {\n setListBoxOpen(true);\n handleOpenListBox();\n }\n }\n };\n\n const handleOnSearch = (event: ChangeEvent<HTMLInputElement>) => {\n if (externalSearch) {\n onSearch?.(event);\n } else {\n setFilterValue(event.target.value);\n }\n };\n\n const handleOnKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n props?.onKeyDown?.(event);\n const notUndigitableKeys: string[] = [Keys.backspace, Keys.delete];\n if ((undigitable) && notUndigitableKeys.includes(event.key)) {\n event.preventDefault();\n return;\n }\n const shouldOpenByTyping = isTypingKey(event) || event.key === Keys.arrowDown;\n if (shouldOpenByTyping && selectInputRef.current === document.activeElement) {\n if (event.key === Keys.arrowDown) {\n event.preventDefault();\n }\n requestAnimationFrame(() => {\n const ulListElement = selectListBoxRef.current?.querySelector('ul[role=\"listbox\"]');\n const liElementsFiltered = (ulListElement?.querySelectorAll(\n 'li[data-state-filtered=\"true\"]',\n ) ?? []) as HTMLLIElement[];\n if (!listBoxOpen && event.key === Keys.arrowDown) {\n const currentValue = !isMultipleSelect ?\n props?.value\n : _.orderBy([...props.value], value => _.toNumber(value), ['asc'])[0];\n setActiveDescendant(_.toString(currentValue) ?? undefined);\n } else {\n setActiveDescendant(liElementsFiltered[0]?.id ?? undefined);\n }\n });\n if (!listBoxOpen) {\n setListBoxOpen(true);\n handleOpenListBox();\n }\n }\n if (listBoxOpen && NAVIGATION_KEYS.includes(event.key)) {\n event.preventDefault();\n }\n requestAnimationFrame(() => {\n const ulListElement = selectListBoxRef.current?.querySelector('ul[role=\"listbox\"]');\n const liElementsFiltered = (ulListElement?.querySelectorAll(\n 'li[data-state-filtered=\"true\"]',\n ) ?? []) as HTMLLIElement[];\n const currentElementIndex = Array.from(liElementsFiltered).findIndex(\n liElement => liElement.id === activeDescendant,\n );\n let nextElementIndex = currentElementIndex;\n if (listBoxOpen) {\n if (NAVIGATION_KEYS.includes(event.key)) {\n switch (event.key) {\n case Keys.escape:\n setListBoxOpen(false);\n setFilterValue('');\n selectInputRef.current?.focus();\n if (event.target === selectSearchInputRef.current) {\n setListBoxOpen(false);\n }\n break;\n case Keys.arrowDown:\n nextElementIndex = Math.min(currentElementIndex + 1, liElementsFiltered.length - 1);\n break;\n case Keys.arrowUp:\n nextElementIndex = Math.max(currentElementIndex - 1, 0);\n break;\n case Keys.enter:\n if (activeDescendant) {\n const selectedLIOption = liElementsFiltered[nextElementIndex];\n if (selectedLIOption) {\n selectedLIOption.click();\n }\n }\n break;\n default:\n break;\n }\n const nextLIOption = liElementsFiltered[nextElementIndex];\n if (nextLIOption) {\n setActiveDescendant(nextLIOption?.id ?? '');\n const ulListBox = selectListBoxRef.current?.querySelector('ul[role=\"listbox\"]');\n scrollListBoxToElement(ulListBox, nextLIOption, 'nearest');\n }\n }\n } else return null;\n });\n };\n\n const contextValues = ({\n selectFieldId: SELECT_FIELD_CONTROLS_ID, label: props.label, striped, listBoxOpen,\n filterValue, disabled, liSelectedRef, selectInputRef, selectSearchInputRef, handleOnSearch,\n searchOnDropdown, nameSelect: String(props.name), valueSelect: props?.value,\n activeDescendant, handleOnChange, handleOnKeyDown, selectContainerRef, handleCloseListBox,\n notFoundFilterLabel, handleChangeLiSelected, isMultipleSelect, isMultipleDefault,\n isMultipleWithCheckboxes, searchInputPlaceholder, showClearButton, dropdownAlignButton,\n handleClearValue, handleCheckMultiple, handleChangeListBoxState, optionItens,\n });\n\n return (\n <Fragment>\n <SelectFieldContext.Provider value={contextValues}>\n <div\n ref={selectFieldRoot}\n data-testid=\"test-select-field-root\"\n className={`select-field-root ${customClassWrapper}`}\n data-state-error={hasValidationErrors}\n data-state-hint-position={hintPosition}>\n {hasLabel && (\n <span\n className={`root-label ${customClassLabel}`}\n data-state-skeletonize={skeletonize}>\n <label\n data-testid=\"test-select-field-label\"\n className=\"label\"\n title={label}\n htmlFor={name}\n aria-disabled={disabled}\n aria-readonly={readOnly}\n data-state-input-required={props.required}>\n {label}\n </label>\n {hasHintMessages && hintPosition === 'onLabelRight' && !skeletonize && (\n <Popover\n customClass=\"label-popover\"\n theme={themePopover}\n align={popoverAlign}\n iconColor=\"#03bde2\">\n <PopoverText text={props?.hint ?? ''} />\n </Popover>\n )}\n </span>\n )}\n <div\n ref={selectContainerRef}\n className={`container ${customClassInputContainer}`}\n aria-expanded={listBoxOpen}\n data-state-skeletonize={skeletonize}>\n {(hasLeftSlotElements && !skeletonize) && leftSlotElements}\n <div className=\"input-root\">\n <input\n {...rest}\n ref={mergeRefs(ref, selectInputRef)}\n readOnly={props.readOnly || undigitable}\n className={`input ${customClass}`}\n placeholder={rest.placeholder}\n data-state-error={hasValidationErrors}\n data-state-multiple={isMultipleSelect}\n data-state-read-only={readOnly}\n data-state-text-align={textAlign}\n data-state-undigitable={undigitable}\n data-state-skeletonize={skeletonize}\n data-state-multiple-with-checkboxes={isMultipleWithCheckboxes}\n id={name}\n type=\"text\"\n role=\"combobox\"\n multiple={false}\n disabled={disabled}\n data-testid=\"test-select-field-input\"\n aria-autocomplete=\"list\"\n aria-expanded={listBoxOpen}\n aria-controls={SELECT_FIELD_CONTROLS_ID}\n aria-activedescendant={activeDescendant}\n tabIndex={(!readOnly && !skeletonize) ? 0 : -1}\n value={inputValue}\n onBlur={handleOnBlur}\n onFocus={handleOnFocus}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChangeInput}\n onPaste={handleOnPaste}\n onMouseDown={handleOnMouseDown}\n onBeforeInput={handleOnBeforeInput} />\n {isMultipleDefault && (\n <Selections\n disabled={Boolean(disabled)}\n isReadOnly={Boolean(readOnly)}\n listOfOptionsToSelect={listOptionsMap} />\n )}\n </div>\n {(hasRightSlotElements && !skeletonize) && rightSlotElements}\n <div\n className=\"triggers\"\n data-state-disabled={disabled}\n data-state-read-only={readOnly}\n data-state-skeletonize={skeletonize}>\n <Triggers />\n </div>\n {listBoxOpen && createPortal(\n <ListBox\n ref={selectListBoxRef}\n dropdownMaxWidth={dropdownMaxWidth}>\n {childrenItems}\n </ListBox>,\n document.body,\n )}\n </div>\n {hintPosition === 'below' && (\n <Hint\n customClass=\"hint\"\n skeletonize={skeletonize}\n description={props.hint}\n disabled={disabled}\n visible={hasHintMessages} />\n )}\n {hasValidationErrors && (\n <span\n data-testid=\"test-select-field-list-errors\"\n className=\"error\"\n data-state-skeletonize={skeletonize}\n aria-describedby={String(name).concat('-errors')}>\n {errors?.map((error, index) => (\n <Fragment key={`${index + 1}-${error}`}>\n {error}\n {' '}\n </Fragment>\n ))}\n </span>\n )}\n </div>\n </SelectFieldContext.Provider>\n <Tooltip\n targetRef={selectInputRef}\n text={tooltip}\n position={tooltipPosition}\n width={tooltipWidth}\n space={tooltipPosition === 'right' ? 64 : undefined} />\n </Fragment>\n );\n },\n);\n\nInputBase.displayName = 'SelectFieldInputBase';\n"],"names":["InputBase","forwardRef","props","ref","name","label","errors","children","onChange","tooltip","tooltipPosition","tooltipWidth","hintPosition","themePopover","popoverAlign","skeletonize","striped","undigitable","externalSearch","openDropdownOnFocus","showClearButton","textAlign","searchOnDropdown","onSearch","undefined","customClass","customClassLabel","customClassWrapper","customClassInputContainer","notFoundFilterLabel","multipleInputLabelEmpty","multipleInputLabelManySelection","searchInputPlaceholder","dropdownAlignButton","dropdownMaxWidth","disabled","readOnly","rest","SELECT_FIELD_CONTROLS_ID","useId","inputValue","setInputValue","useState","filterValue","setFilterValue","listBoxOpen","setListBoxOpen","activeDescendant","setActiveDescendant","isMultipleDefault","_","isEqual","multiple","MultipleVariantEnum","default","isMultipleWithCheckboxes","checkboxes","isMultipleSelect","liSelectedRef","useRef","selectFieldRoot","selectInputRef","selectListBoxRef","selectContainerRef","selectSearchInputRef","listOptionsMap","useMemo","optionsMap","Map","Children","forEach","child","isValidElement","set","value","useEffect","setTimeout","current","focus","retries","maxRetries","scrollToViewSelectedElement","listBox","querySelector","currentValue","orderBy","toNumber","currentLiElement","toString","clientHeight","scrollListBoxToElement","requestAnimationFrame","lazyInputValue","get","firstSelectionLabel","size","hasLabel","isEmpty","hasHintMessages","Boolean","hint","length","hasValidationErrors","childrenItems","itens","map","childElement","index","clonedChild","cloneElement","key","type","Item","push","leftSlotElements","rightSlotElements","left","right","LeftSlot","RightSlot","optionItens","clonedChildItem","Options","hasLeftSlotElements","hasRightSlotElements","handleCloseListBox","handleOpenListBox","handleChangeListBoxState","prevState","document","activeElement","handleChangeLiSelected","liElement","handleOnChange","inputLabel","addOrRemove","multipleValue","union","without","changedValue","multiValue","syntheticEvent","target","handleCheckMultiple","checkOrUncheckAll","checkAll","allValues","__","handleClearValue","resetValue","handleOnBlur","event","onBlur","relatedTarget","handleOnFocus","onFocus","handleOnChangeInput","handleOnPaste","preventDefault","onPaste","handleOnBeforeInput","onBeforeInput","handleOnMouseDown","onMouseDown","handleOnSearch","handleOnKeyDown","onKeyDown","notUndigitableKeys","Keys","backspace","delete","includes","shouldOpenByTyping","isTypingKey","arrowDown","ulListElement","liElementsFiltered","querySelectorAll","id","NAVIGATION_KEYS","currentElementIndex","Array","from","findIndex","nextElementIndex","escape","Math","min","arrowUp","max","enter","selectedLIOption","click","nextLIOption","ulListBox","contextValues","selectFieldId","nameSelect","String","valueSelect","required","mergeRefs","placeholder","createPortal","body","concat","error","displayName"],"mappings":"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"}
|
|
@@ -1,29 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
title
|
|
4
|
-
customClass
|
|
5
|
-
handlerGoBack:
|
|
6
|
-
skeletonize
|
|
7
|
-
skeletonQtty
|
|
8
|
-
children:
|
|
9
|
-
}): import("react/jsx-runtime").JSX.Element;
|
|
10
|
-
declare namespace SubMenuContainer {
|
|
11
|
-
namespace propTypes {
|
|
12
|
-
let children: any;
|
|
13
|
-
let handlerGoBack: any;
|
|
14
|
-
let title: any;
|
|
15
|
-
let customClass: any;
|
|
16
|
-
let skeletonize: any;
|
|
17
|
-
let skeletonQtty: any;
|
|
18
|
-
}
|
|
19
|
-
namespace defaultProps {
|
|
20
|
-
let title_1: undefined;
|
|
21
|
-
export { title_1 as title };
|
|
22
|
-
let customClass_1: undefined;
|
|
23
|
-
export { customClass_1 as customClass };
|
|
24
|
-
let skeletonize_1: boolean;
|
|
25
|
-
export { skeletonize_1 as skeletonize };
|
|
26
|
-
let skeletonQtty_1: number;
|
|
27
|
-
export { skeletonQtty_1 as skeletonQtty };
|
|
28
|
-
}
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
interface SubMenuContainerProps {
|
|
3
|
+
title?: string;
|
|
4
|
+
customClass?: string;
|
|
5
|
+
handlerGoBack: () => void;
|
|
6
|
+
skeletonize?: boolean;
|
|
7
|
+
skeletonQtty?: number;
|
|
8
|
+
children: ReactNode;
|
|
29
9
|
}
|
|
10
|
+
declare const SubMenuContainer: ({ title, customClass, handlerGoBack, skeletonize, skeletonQtty, children, }: SubMenuContainerProps) => import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export default SubMenuContainer;
|