linear-react-components-ui 2.1.0-beta.2 → 2.1.0-beta.4
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 +8 -11
- package/lib/inputs2/date/calendarbox.js.map +1 -1
- package/lib/inputs2/date/datefield/base.js +435 -334
- package/lib/inputs2/date/datefield/base.js.map +1 -1
- package/lib/inputs2/date/dateperiodfield/base.js +544 -528
- package/lib/inputs2/date/dateperiodfield/base.js.map +1 -1
- package/lib/inputs2/date/dateperiodfield/triggers.js.map +1 -1
- package/lib/inputs2/date/dateperiodfield/types.d.ts +6 -0
- package/lib/inputs2/date/helpers.d.ts +24 -1
- package/lib/inputs2/date/helpers.js +137 -1
- package/lib/inputs2/date/helpers.js.map +1 -1
- package/lib/inputs2/date/hooks/useCalendarPosition.js.map +1 -1
- package/lib/inputs2/date/hooks/useDateCalendarState.js.map +1 -1
- package/lib/inputs2/date/hooks/useDateMask.d.ts +3 -1
- package/lib/inputs2/date/hooks/useDateMask.js +75 -111
- package/lib/inputs2/date/hooks/useDateMask.js.map +1 -1
- package/lib/inputs2/date/timeselector.d.ts +4 -2
- package/lib/inputs2/date/timeselector.js +115 -117
- package/lib/inputs2/date/timeselector.js.map +1 -1
- package/lib/inputs2/date/types.d.ts +6 -0
- package/lib/inputs2/date/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -12,7 +12,10 @@ const TimeSelector = (props) => {
|
|
|
12
12
|
const $ = compilerRuntimeExports.c(44);
|
|
13
13
|
const {
|
|
14
14
|
value,
|
|
15
|
-
|
|
15
|
+
selectedHour,
|
|
16
|
+
selectedMinute,
|
|
17
|
+
onSelectHour,
|
|
18
|
+
onSelectMinute,
|
|
16
19
|
min,
|
|
17
20
|
max,
|
|
18
21
|
testIdPrefix
|
|
@@ -21,47 +24,37 @@ const TimeSelector = (props) => {
|
|
|
21
24
|
const minuteColumnRef = useRef(null);
|
|
22
25
|
const centerUnitInColumn = _temp;
|
|
23
26
|
let t0;
|
|
24
|
-
|
|
25
|
-
if ($[0] !== value) {
|
|
27
|
+
if ($[0] !== selectedHour || $[1] !== selectedMinute || $[2] !== value) {
|
|
26
28
|
t0 = () => {
|
|
27
29
|
if (!value) {
|
|
28
30
|
return;
|
|
29
31
|
}
|
|
30
|
-
centerUnitInColumn(hourColumnRef.current,
|
|
31
|
-
centerUnitInColumn(minuteColumnRef.current,
|
|
32
|
+
centerUnitInColumn(hourColumnRef.current, selectedHour);
|
|
33
|
+
centerUnitInColumn(minuteColumnRef.current, selectedMinute);
|
|
32
34
|
};
|
|
33
|
-
|
|
34
|
-
$[
|
|
35
|
-
$[
|
|
36
|
-
$[
|
|
35
|
+
$[0] = selectedHour;
|
|
36
|
+
$[1] = selectedMinute;
|
|
37
|
+
$[2] = value;
|
|
38
|
+
$[3] = t0;
|
|
37
39
|
} else {
|
|
38
|
-
t0 = $[
|
|
39
|
-
t1 = $[2];
|
|
40
|
+
t0 = $[3];
|
|
40
41
|
}
|
|
42
|
+
const t1 = Boolean(value);
|
|
41
43
|
let t2;
|
|
42
|
-
if ($[
|
|
43
|
-
t2 =
|
|
44
|
-
$[
|
|
45
|
-
$[
|
|
44
|
+
if ($[4] !== selectedHour || $[5] !== selectedMinute || $[6] !== t1) {
|
|
45
|
+
t2 = [selectedHour, selectedMinute, t1];
|
|
46
|
+
$[4] = selectedHour;
|
|
47
|
+
$[5] = selectedMinute;
|
|
48
|
+
$[6] = t1;
|
|
49
|
+
$[7] = t2;
|
|
46
50
|
} else {
|
|
47
|
-
t2 = $[
|
|
51
|
+
t2 = $[7];
|
|
48
52
|
}
|
|
49
|
-
|
|
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);
|
|
53
|
+
useLayoutEffect(t0, t2);
|
|
61
54
|
const handleOnMouseDown = _temp2;
|
|
62
|
-
let
|
|
63
|
-
if ($[
|
|
64
|
-
|
|
55
|
+
let t3;
|
|
56
|
+
if ($[8] !== max || $[9] !== min || $[10] !== value) {
|
|
57
|
+
t3 = (hour) => {
|
|
65
58
|
if (!value) {
|
|
66
59
|
return false;
|
|
67
60
|
}
|
|
@@ -70,38 +63,39 @@ const TimeSelector = (props) => {
|
|
|
70
63
|
}
|
|
71
64
|
return Boolean(max && value.isSame(max, "day") && hour > max.hour());
|
|
72
65
|
};
|
|
73
|
-
$[
|
|
74
|
-
$[
|
|
75
|
-
$[
|
|
76
|
-
$[
|
|
66
|
+
$[8] = max;
|
|
67
|
+
$[9] = min;
|
|
68
|
+
$[10] = value;
|
|
69
|
+
$[11] = t3;
|
|
77
70
|
} else {
|
|
78
|
-
|
|
71
|
+
t3 = $[11];
|
|
79
72
|
}
|
|
80
|
-
const isHourOutOfBounds =
|
|
81
|
-
let
|
|
82
|
-
if ($[
|
|
83
|
-
|
|
84
|
-
if (!value) {
|
|
73
|
+
const isHourOutOfBounds = t3;
|
|
74
|
+
let t4;
|
|
75
|
+
if ($[12] !== max || $[13] !== min || $[14] !== selectedHour || $[15] !== value) {
|
|
76
|
+
t4 = (minute) => {
|
|
77
|
+
if (!value || _.isNull(selectedHour)) {
|
|
85
78
|
return false;
|
|
86
79
|
}
|
|
87
|
-
const isOnMinHour = Boolean(min && value.isSame(min, "day") &&
|
|
88
|
-
const isOnMaxHour = Boolean(max && value.isSame(max, "day") &&
|
|
80
|
+
const isOnMinHour = Boolean(min && value.isSame(min, "day") && selectedHour === min.hour());
|
|
81
|
+
const isOnMaxHour = Boolean(max && value.isSame(max, "day") && selectedHour === max.hour());
|
|
89
82
|
if (isOnMinHour && min && minute < min.minute()) {
|
|
90
83
|
return true;
|
|
91
84
|
}
|
|
92
85
|
return Boolean(isOnMaxHour && max && minute > max.minute());
|
|
93
86
|
};
|
|
94
|
-
$[
|
|
95
|
-
$[
|
|
87
|
+
$[12] = max;
|
|
88
|
+
$[13] = min;
|
|
89
|
+
$[14] = selectedHour;
|
|
96
90
|
$[15] = value;
|
|
97
|
-
$[16] =
|
|
91
|
+
$[16] = t4;
|
|
98
92
|
} else {
|
|
99
|
-
|
|
93
|
+
t4 = $[16];
|
|
100
94
|
}
|
|
101
|
-
const isMinuteOutOfBounds =
|
|
102
|
-
let
|
|
95
|
+
const isMinuteOutOfBounds = t4;
|
|
96
|
+
let t5;
|
|
103
97
|
if ($[17] !== value) {
|
|
104
|
-
|
|
98
|
+
t5 = (unit_0) => {
|
|
105
99
|
const {
|
|
106
100
|
value: unitValue,
|
|
107
101
|
isSelected,
|
|
@@ -112,109 +106,113 @@ const TimeSelector = (props) => {
|
|
|
112
106
|
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
107
|
};
|
|
114
108
|
$[17] = value;
|
|
115
|
-
$[18] =
|
|
109
|
+
$[18] = t5;
|
|
116
110
|
} else {
|
|
117
|
-
|
|
111
|
+
t5 = $[18];
|
|
118
112
|
}
|
|
119
|
-
const renderUnit =
|
|
120
|
-
const
|
|
121
|
-
const
|
|
122
|
-
let
|
|
113
|
+
const renderUnit = t5;
|
|
114
|
+
const t6 = !value;
|
|
115
|
+
const t7 = `${testIdPrefix}-time-selector`;
|
|
116
|
+
let t8;
|
|
123
117
|
if ($[19] === Symbol.for("react.memo_cache_sentinel")) {
|
|
124
|
-
|
|
125
|
-
$[19] =
|
|
118
|
+
t8 = /* @__PURE__ */ jsx(TextContent, { as: "p", className: "time-column-label", children: "HORA" });
|
|
119
|
+
$[19] = t8;
|
|
126
120
|
} else {
|
|
127
|
-
|
|
121
|
+
t8 = $[19];
|
|
128
122
|
}
|
|
129
|
-
const
|
|
130
|
-
let
|
|
131
|
-
if ($[20] !== isHourOutOfBounds || $[21] !==
|
|
132
|
-
|
|
123
|
+
const t9 = `${testIdPrefix}-time-hour-column`;
|
|
124
|
+
let t10;
|
|
125
|
+
if ($[20] !== isHourOutOfBounds || $[21] !== onSelectHour || $[22] !== renderUnit || $[23] !== selectedHour || $[24] !== testIdPrefix) {
|
|
126
|
+
t10 = HOURS.map((hour_0) => renderUnit({
|
|
133
127
|
value: hour_0,
|
|
134
|
-
isSelected:
|
|
128
|
+
isSelected: selectedHour === hour_0,
|
|
135
129
|
isOutOfBounds: isHourOutOfBounds(hour_0),
|
|
136
130
|
testId: `${testIdPrefix}-time-hour-button`,
|
|
137
|
-
onClick: () =>
|
|
131
|
+
onClick: () => onSelectHour(hour_0)
|
|
138
132
|
}));
|
|
139
133
|
$[20] = isHourOutOfBounds;
|
|
140
|
-
$[21] =
|
|
134
|
+
$[21] = onSelectHour;
|
|
141
135
|
$[22] = renderUnit;
|
|
142
|
-
$[23] =
|
|
143
|
-
$[24] =
|
|
144
|
-
$[25] =
|
|
136
|
+
$[23] = selectedHour;
|
|
137
|
+
$[24] = testIdPrefix;
|
|
138
|
+
$[25] = t10;
|
|
145
139
|
} else {
|
|
146
|
-
|
|
140
|
+
t10 = $[25];
|
|
147
141
|
}
|
|
148
|
-
let
|
|
149
|
-
if ($[26] !==
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
/* @__PURE__ */ jsx("div", { ref: hourColumnRef, role: "listbox", "aria-label": "Selecionar hora", className: "time-column-options", "data-testid":
|
|
142
|
+
let t11;
|
|
143
|
+
if ($[26] !== t10 || $[27] !== t9) {
|
|
144
|
+
t11 = /* @__PURE__ */ jsxs("div", { className: "time-column", children: [
|
|
145
|
+
t8,
|
|
146
|
+
/* @__PURE__ */ jsx("div", { ref: hourColumnRef, role: "listbox", "aria-label": "Selecionar hora", className: "time-column-options", "data-testid": t9, children: t10 })
|
|
153
147
|
] });
|
|
154
|
-
$[26] =
|
|
155
|
-
$[27] =
|
|
156
|
-
$[28] =
|
|
148
|
+
$[26] = t10;
|
|
149
|
+
$[27] = t9;
|
|
150
|
+
$[28] = t11;
|
|
157
151
|
} else {
|
|
158
|
-
|
|
152
|
+
t11 = $[28];
|
|
159
153
|
}
|
|
160
|
-
let
|
|
154
|
+
let t12;
|
|
161
155
|
if ($[29] === Symbol.for("react.memo_cache_sentinel")) {
|
|
162
|
-
|
|
163
|
-
$[29] =
|
|
156
|
+
t12 = /* @__PURE__ */ jsx(TextContent, { as: "p", className: "time-column-label", children: "MINUTO" });
|
|
157
|
+
$[29] = t12;
|
|
164
158
|
} else {
|
|
165
|
-
|
|
159
|
+
t12 = $[29];
|
|
166
160
|
}
|
|
167
|
-
const
|
|
168
|
-
let
|
|
169
|
-
if ($[30] !== isMinuteOutOfBounds || $[31] !==
|
|
170
|
-
|
|
161
|
+
const t13 = `${testIdPrefix}-time-minute-column`;
|
|
162
|
+
let t14;
|
|
163
|
+
if ($[30] !== isMinuteOutOfBounds || $[31] !== onSelectMinute || $[32] !== renderUnit || $[33] !== selectedMinute || $[34] !== testIdPrefix) {
|
|
164
|
+
t14 = MINUTES.map((minute_0) => renderUnit({
|
|
171
165
|
value: minute_0,
|
|
172
|
-
isSelected:
|
|
166
|
+
isSelected: selectedMinute === minute_0,
|
|
173
167
|
isOutOfBounds: isMinuteOutOfBounds(minute_0),
|
|
174
168
|
testId: `${testIdPrefix}-time-minute-button`,
|
|
175
|
-
onClick: () =>
|
|
169
|
+
onClick: () => onSelectMinute(minute_0)
|
|
176
170
|
}));
|
|
177
171
|
$[30] = isMinuteOutOfBounds;
|
|
178
|
-
$[31] =
|
|
172
|
+
$[31] = onSelectMinute;
|
|
179
173
|
$[32] = renderUnit;
|
|
180
|
-
$[33] =
|
|
181
|
-
$[34] =
|
|
182
|
-
$[35] =
|
|
174
|
+
$[33] = selectedMinute;
|
|
175
|
+
$[34] = testIdPrefix;
|
|
176
|
+
$[35] = t14;
|
|
183
177
|
} else {
|
|
184
|
-
|
|
178
|
+
t14 = $[35];
|
|
185
179
|
}
|
|
186
|
-
let
|
|
187
|
-
if ($[36] !==
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
/* @__PURE__ */ jsx("div", { ref: minuteColumnRef, role: "listbox", "aria-label": "Selecionar minuto", className: "time-column-options", "data-testid":
|
|
180
|
+
let t15;
|
|
181
|
+
if ($[36] !== t13 || $[37] !== t14) {
|
|
182
|
+
t15 = /* @__PURE__ */ jsxs("div", { className: "time-column", children: [
|
|
183
|
+
t12,
|
|
184
|
+
/* @__PURE__ */ jsx("div", { ref: minuteColumnRef, role: "listbox", "aria-label": "Selecionar minuto", className: "time-column-options", "data-testid": t13, children: t14 })
|
|
191
185
|
] });
|
|
192
|
-
$[36] =
|
|
193
|
-
$[37] =
|
|
194
|
-
$[38] =
|
|
186
|
+
$[36] = t13;
|
|
187
|
+
$[37] = t14;
|
|
188
|
+
$[38] = t15;
|
|
195
189
|
} else {
|
|
196
|
-
|
|
190
|
+
t15 = $[38];
|
|
197
191
|
}
|
|
198
|
-
let
|
|
199
|
-
if ($[39] !==
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
192
|
+
let t16;
|
|
193
|
+
if ($[39] !== t11 || $[40] !== t15 || $[41] !== t6 || $[42] !== t7) {
|
|
194
|
+
t16 = /* @__PURE__ */ jsxs("div", { className: "date-calendar-box-time-selector", "data-state-disabled": t6, "data-testid": t7, children: [
|
|
195
|
+
t11,
|
|
196
|
+
t15
|
|
203
197
|
] });
|
|
204
|
-
$[39] =
|
|
205
|
-
$[40] =
|
|
206
|
-
$[41] =
|
|
207
|
-
$[42] =
|
|
208
|
-
$[43] =
|
|
198
|
+
$[39] = t11;
|
|
199
|
+
$[40] = t15;
|
|
200
|
+
$[41] = t6;
|
|
201
|
+
$[42] = t7;
|
|
202
|
+
$[43] = t16;
|
|
209
203
|
} else {
|
|
210
|
-
|
|
204
|
+
t16 = $[43];
|
|
211
205
|
}
|
|
212
|
-
return
|
|
206
|
+
return t16;
|
|
213
207
|
};
|
|
214
208
|
TimeSelector.displayName = "DateTimeSelector";
|
|
215
209
|
function _temp(column, index) {
|
|
216
|
-
|
|
217
|
-
|
|
210
|
+
if (!column) {
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
const unit = _.isNull(index) ? void 0 : column.children?.[index];
|
|
214
|
+
if (!unit) {
|
|
215
|
+
column.scrollTop = 0;
|
|
218
216
|
return;
|
|
219
217
|
}
|
|
220
218
|
column.scrollTop = unit.offsetTop - (column.clientHeight - unit.offsetHeight) / 2;
|
|
@@ -1 +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
|
+
{"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 value: Moment | null;\n selectedHour: number | null;\n selectedMinute: number | null;\n onSelectHour: (hour: number) => void;\n onSelectMinute: (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 {\n value, selectedHour, selectedMinute, onSelectHour, onSelectMinute, min, max, testIdPrefix,\n } = 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 | null) => {\n if (!column) return;\n const unit = _.isNull(index) ? undefined : column.children?.[index] as HTMLElement | undefined;\n if (!unit) {\n column.scrollTop = 0;\n return;\n }\n column.scrollTop = unit.offsetTop - ((column.clientHeight - unit.offsetHeight) / 2);\n };\n\n useLayoutEffect(() => {\n if (!value) return;\n centerUnitInColumn(hourColumnRef.current, selectedHour);\n centerUnitInColumn(minuteColumnRef.current, selectedMinute);\n }, [selectedHour, selectedMinute, Boolean(value)]);\n\n const handleOnMouseDown = (event: MouseEvent<HTMLButtonElement>) => {\n event?.preventDefault?.();\n };\n\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 || _.isNull(selectedHour)) return false;\n const isOnMinHour = Boolean(min && value.isSame(min, 'day') && selectedHour === min.hour());\n const isOnMaxHour = Boolean(max && value.isSame(max, 'day') && selectedHour === 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: selectedHour === hour,\n isOutOfBounds: isHourOutOfBounds(hour),\n testId: `${testIdPrefix}-time-hour-button`,\n onClick: () => onSelectHour(hour),\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: selectedMinute === minute,\n isOutOfBounds: isMinuteOutOfBounds(minute),\n testId: `${testIdPrefix}-time-minute-button`,\n onClick: () => onSelectMinute(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","selectedHour","selectedMinute","onSelectHour","onSelectMinute","min","max","testIdPrefix","hourColumnRef","useRef","minuteColumnRef","centerUnitInColumn","_temp","t0","current","t1","Boolean","t2","useLayoutEffect","handleOnMouseDown","_temp2","t3","hour","isSame","isHourOutOfBounds","t4","minute","isNull","isOnMinHour","isOnMaxHour","isMinuteOutOfBounds","t5","unit_0","unitValue","isSelected","isOutOfBounds","testId","onClick","renderUnit","t6","t7","t8","Symbol","for","t9","t10","map","hour_0","t11","t12","t13","t14","minute_0","t15","t16","displayName","column","index","undefined","children","scrollTop","offsetTop","clientHeight","offsetHeight","event","preventDefault"],"mappings":"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"}
|
|
@@ -29,6 +29,12 @@ export interface DateSharedContextProps {
|
|
|
29
29
|
handleChangeActiveDescendant: (value: string) => void;
|
|
30
30
|
handleChangeCalendarDisplayDate: (value: Moment) => void;
|
|
31
31
|
}
|
|
32
|
+
export interface TimeSelection {
|
|
33
|
+
hour: number | null;
|
|
34
|
+
minute: number | null;
|
|
35
|
+
hasDate: boolean;
|
|
36
|
+
isComplete: boolean;
|
|
37
|
+
}
|
|
32
38
|
export interface BaseDateInputRootProps extends ComponentPropsWithoutRef<'div'> {
|
|
33
39
|
customClassWrapper?: string;
|
|
34
40
|
hasValidationErrors?: boolean;
|
|
@@ -1 +1 @@
|
|
|
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}\
|
|
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}\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 TimeSelection {\n hour: number | null;\n minute: number | null;\n hasDate: boolean;\n isComplete: boolean;\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;"}
|