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.
@@ -12,7 +12,10 @@ const TimeSelector = (props) => {
12
12
  const $ = compilerRuntimeExports.c(44);
13
13
  const {
14
14
  value,
15
- onSelectTime,
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
- let t1;
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, value.hour());
31
- centerUnitInColumn(minuteColumnRef.current, value.minute());
32
+ centerUnitInColumn(hourColumnRef.current, selectedHour);
33
+ centerUnitInColumn(minuteColumnRef.current, selectedMinute);
32
34
  };
33
- t1 = value?.hour();
34
- $[0] = value;
35
- $[1] = t0;
36
- $[2] = t1;
35
+ $[0] = selectedHour;
36
+ $[1] = selectedMinute;
37
+ $[2] = value;
38
+ $[3] = t0;
37
39
  } else {
38
- t0 = $[1];
39
- t1 = $[2];
40
+ t0 = $[3];
40
41
  }
42
+ const t1 = Boolean(value);
41
43
  let t2;
42
- if ($[3] !== value) {
43
- t2 = value?.minute();
44
- $[3] = value;
45
- $[4] = t2;
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 = $[4];
51
+ t2 = $[7];
48
52
  }
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);
53
+ useLayoutEffect(t0, t2);
61
54
  const handleOnMouseDown = _temp2;
62
- let t5;
63
- if ($[9] !== max || $[10] !== min || $[11] !== value) {
64
- t5 = (hour) => {
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
- $[9] = max;
74
- $[10] = min;
75
- $[11] = value;
76
- $[12] = t5;
66
+ $[8] = max;
67
+ $[9] = min;
68
+ $[10] = value;
69
+ $[11] = t3;
77
70
  } else {
78
- t5 = $[12];
71
+ t3 = $[11];
79
72
  }
80
- const isHourOutOfBounds = t5;
81
- let t6;
82
- if ($[13] !== max || $[14] !== min || $[15] !== value) {
83
- t6 = (minute) => {
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") && value.hour() === min.hour());
88
- const isOnMaxHour = Boolean(max && value.isSame(max, "day") && value.hour() === max.hour());
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
- $[13] = max;
95
- $[14] = min;
87
+ $[12] = max;
88
+ $[13] = min;
89
+ $[14] = selectedHour;
96
90
  $[15] = value;
97
- $[16] = t6;
91
+ $[16] = t4;
98
92
  } else {
99
- t6 = $[16];
93
+ t4 = $[16];
100
94
  }
101
- const isMinuteOutOfBounds = t6;
102
- let t7;
95
+ const isMinuteOutOfBounds = t4;
96
+ let t5;
103
97
  if ($[17] !== value) {
104
- t7 = (unit_0) => {
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] = t7;
109
+ $[18] = t5;
116
110
  } else {
117
- t7 = $[18];
111
+ t5 = $[18];
118
112
  }
119
- const renderUnit = t7;
120
- const t8 = !value;
121
- const t9 = `${testIdPrefix}-time-selector`;
122
- let t10;
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
- t10 = /* @__PURE__ */ jsx(TextContent, { as: "p", className: "time-column-label", children: "HORA" });
125
- $[19] = t10;
118
+ t8 = /* @__PURE__ */ jsx(TextContent, { as: "p", className: "time-column-label", children: "HORA" });
119
+ $[19] = t8;
126
120
  } else {
127
- t10 = $[19];
121
+ t8 = $[19];
128
122
  }
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({
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: value?.hour() === hour_0,
128
+ isSelected: selectedHour === hour_0,
135
129
  isOutOfBounds: isHourOutOfBounds(hour_0),
136
130
  testId: `${testIdPrefix}-time-hour-button`,
137
- onClick: () => onSelectTime(hour_0, value?.minute() ?? 0)
131
+ onClick: () => onSelectHour(hour_0)
138
132
  }));
139
133
  $[20] = isHourOutOfBounds;
140
- $[21] = onSelectTime;
134
+ $[21] = onSelectHour;
141
135
  $[22] = renderUnit;
142
- $[23] = testIdPrefix;
143
- $[24] = value;
144
- $[25] = t12;
136
+ $[23] = selectedHour;
137
+ $[24] = testIdPrefix;
138
+ $[25] = t10;
145
139
  } else {
146
- t12 = $[25];
140
+ t10 = $[25];
147
141
  }
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 })
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] = t11;
155
- $[27] = t12;
156
- $[28] = t13;
148
+ $[26] = t10;
149
+ $[27] = t9;
150
+ $[28] = t11;
157
151
  } else {
158
- t13 = $[28];
152
+ t11 = $[28];
159
153
  }
160
- let t14;
154
+ let t12;
161
155
  if ($[29] === Symbol.for("react.memo_cache_sentinel")) {
162
- t14 = /* @__PURE__ */ jsx(TextContent, { as: "p", className: "time-column-label", children: "MINUTO" });
163
- $[29] = t14;
156
+ t12 = /* @__PURE__ */ jsx(TextContent, { as: "p", className: "time-column-label", children: "MINUTO" });
157
+ $[29] = t12;
164
158
  } else {
165
- t14 = $[29];
159
+ t12 = $[29];
166
160
  }
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({
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: value?.minute() === minute_0,
166
+ isSelected: selectedMinute === minute_0,
173
167
  isOutOfBounds: isMinuteOutOfBounds(minute_0),
174
168
  testId: `${testIdPrefix}-time-minute-button`,
175
- onClick: () => onSelectTime(value?.hour() ?? 0, minute_0)
169
+ onClick: () => onSelectMinute(minute_0)
176
170
  }));
177
171
  $[30] = isMinuteOutOfBounds;
178
- $[31] = onSelectTime;
172
+ $[31] = onSelectMinute;
179
173
  $[32] = renderUnit;
180
- $[33] = testIdPrefix;
181
- $[34] = value;
182
- $[35] = t16;
174
+ $[33] = selectedMinute;
175
+ $[34] = testIdPrefix;
176
+ $[35] = t14;
183
177
  } else {
184
- t16 = $[35];
178
+ t14 = $[35];
185
179
  }
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 })
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] = t15;
193
- $[37] = t16;
194
- $[38] = t17;
186
+ $[36] = t13;
187
+ $[37] = t14;
188
+ $[38] = t15;
195
189
  } else {
196
- t17 = $[38];
190
+ t15 = $[38];
197
191
  }
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
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] = t13;
205
- $[40] = t17;
206
- $[41] = t8;
207
- $[42] = t9;
208
- $[43] = t18;
198
+ $[39] = t11;
199
+ $[40] = t15;
200
+ $[41] = t6;
201
+ $[42] = t7;
202
+ $[43] = t16;
209
203
  } else {
210
- t18 = $[43];
204
+ t16 = $[43];
211
205
  }
212
- return t18;
206
+ return t16;
213
207
  };
214
208
  TimeSelector.displayName = "DateTimeSelector";
215
209
  function _temp(column, index) {
216
- const unit = column?.children?.[index];
217
- if (!column || !unit) {
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}\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;"}
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;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "linear-react-components-ui",
3
- "version": "2.1.0-beta.2",
3
+ "version": "2.1.0-beta.4",
4
4
  "description": "Linear Sistemas ReactJs Components",
5
5
  "type": "module",
6
6
  "main": "./lib/index.js",