@hitachivantara/uikit-react-core 5.16.0 → 5.17.0
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/dist/cjs/components/Pagination/Pagination.cjs +46 -45
- package/dist/cjs/components/Pagination/Pagination.cjs.map +1 -1
- package/dist/cjs/components/Pagination/Pagination.styles.cjs +98 -160
- package/dist/cjs/components/Pagination/Pagination.styles.cjs.map +1 -1
- package/dist/cjs/components/Pagination/Select.cjs +2 -1
- package/dist/cjs/components/Pagination/Select.cjs.map +1 -1
- package/dist/cjs/components/QueryBuilder/ConfirmationDialog/ConfirmationDialog.cjs +30 -33
- package/dist/cjs/components/QueryBuilder/ConfirmationDialog/ConfirmationDialog.cjs.map +1 -1
- package/dist/cjs/components/QueryBuilder/ConfirmationDialog/ConfirmationDialog.styles.cjs +14 -0
- package/dist/cjs/components/QueryBuilder/ConfirmationDialog/ConfirmationDialog.styles.cjs.map +1 -0
- package/dist/cjs/components/QueryBuilder/QueryBuilder.cjs +6 -6
- package/dist/cjs/components/QueryBuilder/QueryBuilder.cjs.map +1 -1
- package/dist/cjs/components/QueryBuilder/{RuleGroup/RuleGroup.styles.cjs → QueryBuilder.styles.cjs} +48 -29
- package/dist/cjs/components/QueryBuilder/QueryBuilder.styles.cjs.map +1 -0
- package/dist/cjs/components/QueryBuilder/Rule/Rule.cjs +60 -61
- package/dist/cjs/components/QueryBuilder/Rule/Rule.cjs.map +1 -1
- package/dist/cjs/components/QueryBuilder/Rule/Rule.styles.cjs +10 -5
- package/dist/cjs/components/QueryBuilder/Rule/Rule.styles.cjs.map +1 -1
- package/dist/cjs/components/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.cjs +253 -0
- package/dist/cjs/components/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.cjs.map +1 -0
- package/dist/cjs/components/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.styles.cjs +40 -0
- package/dist/cjs/components/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.styles.cjs.map +1 -0
- package/dist/cjs/components/QueryBuilder/Rule/Value/DateTimeValue/utils.cjs +37 -0
- package/dist/cjs/components/QueryBuilder/Rule/Value/DateTimeValue/utils.cjs.map +1 -0
- package/dist/cjs/components/QueryBuilder/Rule/Value/NumericValue/Numeric.styles.cjs +10 -6
- package/dist/cjs/components/QueryBuilder/Rule/Value/NumericValue/Numeric.styles.cjs.map +1 -1
- package/dist/cjs/components/QueryBuilder/Rule/Value/NumericValue/NumericValue.cjs +76 -82
- package/dist/cjs/components/QueryBuilder/Rule/Value/NumericValue/NumericValue.cjs.map +1 -1
- package/dist/cjs/components/QueryBuilder/Rule/Value/TextValue/TextValue.cjs +33 -37
- package/dist/cjs/components/QueryBuilder/Rule/Value/TextValue/TextValue.cjs.map +1 -1
- package/dist/cjs/components/QueryBuilder/Rule/Value/TextValue/TextValue.styles.cjs +8 -3
- package/dist/cjs/components/QueryBuilder/Rule/Value/TextValue/TextValue.styles.cjs.map +1 -1
- package/dist/cjs/components/QueryBuilder/Rule/Value/Value.cjs +8 -5
- package/dist/cjs/components/QueryBuilder/Rule/Value/Value.cjs.map +1 -1
- package/dist/cjs/components/QueryBuilder/RuleGroup/RuleGroup.cjs +155 -166
- package/dist/cjs/components/QueryBuilder/RuleGroup/RuleGroup.cjs.map +1 -1
- package/dist/cjs/components/TimePicker/TimePicker.cjs +60 -70
- package/dist/cjs/components/TimePicker/TimePicker.cjs.map +1 -1
- package/dist/cjs/index.cjs +4 -4
- package/dist/esm/components/Pagination/Pagination.js +50 -48
- package/dist/esm/components/Pagination/Pagination.js.map +1 -1
- package/dist/esm/components/Pagination/Pagination.styles.js +98 -158
- package/dist/esm/components/Pagination/Pagination.styles.js.map +1 -1
- package/dist/esm/components/Pagination/Select.js +2 -1
- package/dist/esm/components/Pagination/Select.js.map +1 -1
- package/dist/esm/components/QueryBuilder/ConfirmationDialog/ConfirmationDialog.js +31 -34
- package/dist/esm/components/QueryBuilder/ConfirmationDialog/ConfirmationDialog.js.map +1 -1
- package/dist/esm/components/QueryBuilder/ConfirmationDialog/ConfirmationDialog.styles.js +14 -0
- package/dist/esm/components/QueryBuilder/ConfirmationDialog/ConfirmationDialog.styles.js.map +1 -0
- package/dist/esm/components/QueryBuilder/QueryBuilder.js +6 -6
- package/dist/esm/components/QueryBuilder/QueryBuilder.js.map +1 -1
- package/dist/esm/components/QueryBuilder/{RuleGroup/RuleGroup.styles.js → QueryBuilder.styles.js} +48 -29
- package/dist/esm/components/QueryBuilder/QueryBuilder.styles.js.map +1 -0
- package/dist/esm/components/QueryBuilder/Rule/Rule.js +61 -62
- package/dist/esm/components/QueryBuilder/Rule/Rule.js.map +1 -1
- package/dist/esm/components/QueryBuilder/Rule/Rule.styles.js +10 -5
- package/dist/esm/components/QueryBuilder/Rule/Rule.styles.js.map +1 -1
- package/dist/esm/components/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.js +250 -0
- package/dist/esm/components/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.js.map +1 -0
- package/dist/esm/components/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.styles.js +40 -0
- package/dist/esm/components/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.styles.js.map +1 -0
- package/dist/esm/components/QueryBuilder/Rule/Value/DateTimeValue/utils.js +35 -0
- package/dist/esm/components/QueryBuilder/Rule/Value/DateTimeValue/utils.js.map +1 -0
- package/dist/esm/components/QueryBuilder/Rule/Value/NumericValue/Numeric.styles.js +10 -6
- package/dist/esm/components/QueryBuilder/Rule/Value/NumericValue/Numeric.styles.js.map +1 -1
- package/dist/esm/components/QueryBuilder/Rule/Value/NumericValue/NumericValue.js +78 -84
- package/dist/esm/components/QueryBuilder/Rule/Value/NumericValue/NumericValue.js.map +1 -1
- package/dist/esm/components/QueryBuilder/Rule/Value/TextValue/TextValue.js +34 -38
- package/dist/esm/components/QueryBuilder/Rule/Value/TextValue/TextValue.js.map +1 -1
- package/dist/esm/components/QueryBuilder/Rule/Value/TextValue/TextValue.styles.js +8 -3
- package/dist/esm/components/QueryBuilder/Rule/Value/TextValue/TextValue.styles.js.map +1 -1
- package/dist/esm/components/QueryBuilder/Rule/Value/Value.js +7 -4
- package/dist/esm/components/QueryBuilder/Rule/Value/Value.js.map +1 -1
- package/dist/esm/components/QueryBuilder/RuleGroup/RuleGroup.js +157 -168
- package/dist/esm/components/QueryBuilder/RuleGroup/RuleGroup.js.map +1 -1
- package/dist/esm/components/TimePicker/TimePicker.js +60 -70
- package/dist/esm/components/TimePicker/TimePicker.js.map +1 -1
- package/dist/esm/index.js +134 -134
- package/dist/types/index.d.ts +66 -75
- package/package.json +2 -2
- package/dist/cjs/components/Pagination/paginationClasses.cjs +0 -8
- package/dist/cjs/components/Pagination/paginationClasses.cjs.map +0 -1
- package/dist/cjs/components/QueryBuilder/Rule/Value/NumericValue/numericValueClasses.cjs +0 -8
- package/dist/cjs/components/QueryBuilder/Rule/Value/NumericValue/numericValueClasses.cjs.map +0 -1
- package/dist/cjs/components/QueryBuilder/Rule/Value/TextValue/textValueClasses.cjs +0 -8
- package/dist/cjs/components/QueryBuilder/Rule/Value/TextValue/textValueClasses.cjs.map +0 -1
- package/dist/cjs/components/QueryBuilder/Rule/ruleClasses.cjs +0 -8
- package/dist/cjs/components/QueryBuilder/Rule/ruleClasses.cjs.map +0 -1
- package/dist/cjs/components/QueryBuilder/RuleGroup/RuleGroup.styles.cjs.map +0 -1
- package/dist/cjs/components/QueryBuilder/queryBuilderClasses.cjs +0 -8
- package/dist/cjs/components/QueryBuilder/queryBuilderClasses.cjs.map +0 -1
- package/dist/esm/components/Pagination/paginationClasses.js +0 -8
- package/dist/esm/components/Pagination/paginationClasses.js.map +0 -1
- package/dist/esm/components/QueryBuilder/Rule/Value/NumericValue/numericValueClasses.js +0 -8
- package/dist/esm/components/QueryBuilder/Rule/Value/NumericValue/numericValueClasses.js.map +0 -1
- package/dist/esm/components/QueryBuilder/Rule/Value/TextValue/textValueClasses.js +0 -8
- package/dist/esm/components/QueryBuilder/Rule/Value/TextValue/textValueClasses.js.map +0 -1
- package/dist/esm/components/QueryBuilder/Rule/ruleClasses.js +0 -8
- package/dist/esm/components/QueryBuilder/Rule/ruleClasses.js.map +0 -1
- package/dist/esm/components/QueryBuilder/RuleGroup/RuleGroup.styles.js.map +0 -1
- package/dist/esm/components/QueryBuilder/queryBuilderClasses.js +0 -8
- package/dist/esm/components/QueryBuilder/queryBuilderClasses.js.map +0 -1
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
import { useContext, useState, useCallback, useMemo, memo } from "react";
|
|
2
|
+
import uniqueId from "lodash/uniqueId";
|
|
3
|
+
import dayjs from "dayjs";
|
|
4
|
+
import { useTheme, useMediaQuery } from "@mui/material";
|
|
5
|
+
import { QueryBuilderContext } from "../../../Context.js";
|
|
6
|
+
import { padTime, parseDate, parseTime } from "./utils.js";
|
|
7
|
+
import { useClasses } from "./DateTimeValue.styles.js";
|
|
8
|
+
import { jsxs, jsx } from "@emotion/react/jsx-runtime";
|
|
9
|
+
import { HvDatePicker } from "../../../../DatePicker/DatePicker.js";
|
|
10
|
+
import { HvTimePicker } from "../../../../TimePicker/TimePicker.js";
|
|
11
|
+
import { HvWarningText } from "../../../../Forms/WarningText/WarningText.js";
|
|
12
|
+
function valueIsRange(operator) {
|
|
13
|
+
return operator === "range";
|
|
14
|
+
}
|
|
15
|
+
const DateTimeValue = ({
|
|
16
|
+
id,
|
|
17
|
+
operator,
|
|
18
|
+
value: valueProp = {},
|
|
19
|
+
initialTouched = false
|
|
20
|
+
}) => {
|
|
21
|
+
var _a, _b, _c, _d;
|
|
22
|
+
const {
|
|
23
|
+
classes,
|
|
24
|
+
cx
|
|
25
|
+
} = useClasses();
|
|
26
|
+
const theme = useTheme();
|
|
27
|
+
const isMdDown = useMediaQuery(theme.breakpoints.down("md"));
|
|
28
|
+
const isRange = valueIsRange(operator);
|
|
29
|
+
const context = useContext(QueryBuilderContext);
|
|
30
|
+
const {
|
|
31
|
+
labels,
|
|
32
|
+
dispatchAction,
|
|
33
|
+
readOnly
|
|
34
|
+
} = context;
|
|
35
|
+
const elementId = uniqueId(`datetime${id}`);
|
|
36
|
+
const [touchedDate, setTouchedDate] = useState(initialTouched);
|
|
37
|
+
const [touchedTime, setTouchedTime] = useState(initialTouched);
|
|
38
|
+
const [touchedEndDate, setTouchedEndDate] = useState(initialTouched);
|
|
39
|
+
const [touchedEndTime, setTouchedEndTime] = useState(initialTouched);
|
|
40
|
+
const onDateChange = useCallback((data) => {
|
|
41
|
+
var _a2, _b2;
|
|
42
|
+
setTouchedDate(true);
|
|
43
|
+
let date;
|
|
44
|
+
if (data != null) {
|
|
45
|
+
date = dayjs(data).format("YYYY-MM-DD");
|
|
46
|
+
}
|
|
47
|
+
const oldValue = !isRange ? valueProp == null ? void 0 : valueProp.date : (_a2 = valueProp == null ? void 0 : valueProp.start) == null ? void 0 : _a2.date;
|
|
48
|
+
if (date !== oldValue) {
|
|
49
|
+
let value;
|
|
50
|
+
if (!isRange) {
|
|
51
|
+
value = {
|
|
52
|
+
date,
|
|
53
|
+
time: valueProp == null ? void 0 : valueProp.time
|
|
54
|
+
};
|
|
55
|
+
} else {
|
|
56
|
+
value = {
|
|
57
|
+
start: {
|
|
58
|
+
date,
|
|
59
|
+
time: (_b2 = valueProp == null ? void 0 : valueProp.start) == null ? void 0 : _b2.time
|
|
60
|
+
},
|
|
61
|
+
end: valueProp == null ? void 0 : valueProp.end
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
dispatchAction({
|
|
65
|
+
type: "set-value",
|
|
66
|
+
id,
|
|
67
|
+
value
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}, [dispatchAction, id, isRange, valueProp]);
|
|
71
|
+
const onTimeChange = useCallback((data) => {
|
|
72
|
+
var _a2, _b2;
|
|
73
|
+
setTouchedTime(true);
|
|
74
|
+
let time;
|
|
75
|
+
if (data != null) {
|
|
76
|
+
time = `${padTime(data.hours)}:${padTime(data.minutes)}:${padTime(data.seconds)}`;
|
|
77
|
+
}
|
|
78
|
+
const oldValue = !isRange ? valueProp == null ? void 0 : valueProp.time : (_a2 = valueProp == null ? void 0 : valueProp.start) == null ? void 0 : _a2.time;
|
|
79
|
+
if (time !== oldValue) {
|
|
80
|
+
let value;
|
|
81
|
+
if (!isRange) {
|
|
82
|
+
value = {
|
|
83
|
+
date: valueProp == null ? void 0 : valueProp.date,
|
|
84
|
+
time
|
|
85
|
+
};
|
|
86
|
+
} else {
|
|
87
|
+
value = {
|
|
88
|
+
start: {
|
|
89
|
+
date: (_b2 = valueProp == null ? void 0 : valueProp.start) == null ? void 0 : _b2.date,
|
|
90
|
+
time
|
|
91
|
+
},
|
|
92
|
+
end: valueProp == null ? void 0 : valueProp.end
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
dispatchAction({
|
|
96
|
+
type: "set-value",
|
|
97
|
+
id,
|
|
98
|
+
value
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
}, [dispatchAction, id, isRange, valueProp]);
|
|
102
|
+
const onEndDateChange = useCallback((data) => {
|
|
103
|
+
var _a2, _b2;
|
|
104
|
+
setTouchedEndDate(true);
|
|
105
|
+
let date;
|
|
106
|
+
if (data != null) {
|
|
107
|
+
date = dayjs(data).format("YYYY-MM-DD");
|
|
108
|
+
}
|
|
109
|
+
if (date !== ((_a2 = valueProp == null ? void 0 : valueProp.end) == null ? void 0 : _a2.date)) {
|
|
110
|
+
const value = {
|
|
111
|
+
start: valueProp == null ? void 0 : valueProp.start,
|
|
112
|
+
end: {
|
|
113
|
+
date,
|
|
114
|
+
time: (_b2 = valueProp == null ? void 0 : valueProp.end) == null ? void 0 : _b2.time
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
dispatchAction({
|
|
118
|
+
type: "set-value",
|
|
119
|
+
id,
|
|
120
|
+
value
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
}, [dispatchAction, id, valueProp]);
|
|
124
|
+
const onEndTimeChange = useCallback((data) => {
|
|
125
|
+
var _a2, _b2;
|
|
126
|
+
setTouchedEndTime(true);
|
|
127
|
+
let time;
|
|
128
|
+
if (data != null) {
|
|
129
|
+
time = `${padTime(data.hours)}:${padTime(data.minutes)}:${padTime(data.seconds)}`;
|
|
130
|
+
}
|
|
131
|
+
if (time !== ((_a2 = valueProp == null ? void 0 : valueProp.end) == null ? void 0 : _a2.time)) {
|
|
132
|
+
const value = {
|
|
133
|
+
start: valueProp == null ? void 0 : valueProp.start,
|
|
134
|
+
end: {
|
|
135
|
+
date: (_b2 = valueProp == null ? void 0 : valueProp.end) == null ? void 0 : _b2.date,
|
|
136
|
+
time
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
dispatchAction({
|
|
140
|
+
type: "set-value",
|
|
141
|
+
id,
|
|
142
|
+
value
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
}, [dispatchAction, id, valueProp]);
|
|
146
|
+
const startDate = isRange ? (_a = valueProp == null ? void 0 : valueProp.start) == null ? void 0 : _a.date : valueProp == null ? void 0 : valueProp.date;
|
|
147
|
+
const datePickerValue = useMemo(() => parseDate(startDate), [startDate]);
|
|
148
|
+
const datePickerStatus = datePickerValue != null ? "valid" : "invalid";
|
|
149
|
+
const startTime = (isRange ? (_b = valueProp == null ? void 0 : valueProp.start) == null ? void 0 : _b.time : valueProp == null ? void 0 : valueProp.time) ?? "";
|
|
150
|
+
const timePickerValue = useMemo(() => parseTime(startTime), [startTime]);
|
|
151
|
+
const timePickerStatus = timePickerValue != null ? "valid" : "invalid";
|
|
152
|
+
const endDate = isRange ? (_c = valueProp == null ? void 0 : valueProp.end) == null ? void 0 : _c.date : null;
|
|
153
|
+
const endDatePickerValue = useMemo(() => parseDate(endDate), [endDate]);
|
|
154
|
+
const endTime = isRange ? (_d = valueProp == null ? void 0 : valueProp.end) == null ? void 0 : _d.time : null;
|
|
155
|
+
const endTimePickerValue = useMemo(() => parseTime(endTime), [endTime]);
|
|
156
|
+
const dateStatus = !touchedDate ? "standBy" : datePickerStatus;
|
|
157
|
+
const timeStatus = !touchedTime ? "standBy" : timePickerStatus;
|
|
158
|
+
const endDateIsBefore = startDate != null && endDate != null && endDate < startDate;
|
|
159
|
+
const endTimeIsBeforeOrSame = startDate != null && endDate != null && endDate === startDate && startTime != null && endTime != null && endTime <= startTime;
|
|
160
|
+
const endDateTimeIsBefore = endDateIsBefore || endTimeIsBeforeOrSame;
|
|
161
|
+
const endDatePickerStatus = endDatePickerValue == null || endDateTimeIsBefore ? "invalid" : "valid";
|
|
162
|
+
const endDateStatus = !touchedEndDate ? "standBy" : endDatePickerStatus;
|
|
163
|
+
const endTimePickerStatus = endTimePickerValue == null || endDateTimeIsBefore ? "invalid" : "valid";
|
|
164
|
+
const endTimeStatus = !touchedEndTime ? "standBy" : endTimePickerStatus;
|
|
165
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
166
|
+
className: classes.root,
|
|
167
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
168
|
+
className: cx(classes.row, classes.horizontal, {
|
|
169
|
+
[classes.isMdDown]: isMdDown
|
|
170
|
+
}),
|
|
171
|
+
children: [/* @__PURE__ */ jsx(HvDatePicker, {
|
|
172
|
+
className: classes.datePicker,
|
|
173
|
+
name: `${elementId}-date`,
|
|
174
|
+
required: true,
|
|
175
|
+
status: dateStatus,
|
|
176
|
+
statusMessage: labels.rule.value.datetime.validation.required,
|
|
177
|
+
label: isRange ? labels.rule.value.datetime.startDateLabel : labels.rule.value.datetime.dateLabel,
|
|
178
|
+
placeholder: isRange ? labels.rule.value.datetime.startDatePlaceholder : labels.rule.value.datetime.datePlaceholder,
|
|
179
|
+
value: datePickerValue,
|
|
180
|
+
onChange: onDateChange,
|
|
181
|
+
readOnly
|
|
182
|
+
}), /* @__PURE__ */ jsx(HvTimePicker, {
|
|
183
|
+
className: classes.timePicker,
|
|
184
|
+
timeFormat: "24",
|
|
185
|
+
name: `${elementId}-time`,
|
|
186
|
+
required: true,
|
|
187
|
+
status: timeStatus,
|
|
188
|
+
statusMessage: labels.rule.value.datetime.validation.required,
|
|
189
|
+
label: isRange ? labels.rule.value.datetime.startTimeLabel : labels.rule.value.datetime.timeLabel,
|
|
190
|
+
placeholder: isRange ? labels.rule.value.datetime.startTimePlaceholder : labels.rule.value.datetime.timePlaceholder,
|
|
191
|
+
value: timePickerValue || void 0,
|
|
192
|
+
onChange: onTimeChange,
|
|
193
|
+
onToggle: (_evt, open) => {
|
|
194
|
+
if (!open && !touchedTime) {
|
|
195
|
+
setTouchedTime(true);
|
|
196
|
+
}
|
|
197
|
+
},
|
|
198
|
+
readOnly
|
|
199
|
+
})]
|
|
200
|
+
}), isRange && /* @__PURE__ */ jsxs("div", {
|
|
201
|
+
className: cx(classes.row, classes.vertical),
|
|
202
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
203
|
+
className: cx(classes.horizontal, {
|
|
204
|
+
[classes.isMdDown]: isMdDown
|
|
205
|
+
}),
|
|
206
|
+
children: [/* @__PURE__ */ jsx(HvDatePicker, {
|
|
207
|
+
className: classes.datePicker,
|
|
208
|
+
name: `${elementId}-endDate`,
|
|
209
|
+
required: true,
|
|
210
|
+
status: endDateStatus,
|
|
211
|
+
statusMessage: labels.rule.value.datetime.validation.required,
|
|
212
|
+
"aria-errormessage": endDateTimeIsBefore ? `${elementId}-combined-error` : void 0,
|
|
213
|
+
label: labels.rule.value.datetime.endDateLabel,
|
|
214
|
+
placeholder: labels.rule.value.datetime.endDatePlaceholder,
|
|
215
|
+
value: endDatePickerValue,
|
|
216
|
+
onChange: onEndDateChange,
|
|
217
|
+
readOnly
|
|
218
|
+
}), /* @__PURE__ */ jsx(HvTimePicker, {
|
|
219
|
+
className: classes.timePicker,
|
|
220
|
+
timeFormat: "24",
|
|
221
|
+
name: `${elementId}-endTime`,
|
|
222
|
+
required: true,
|
|
223
|
+
status: endTimeStatus,
|
|
224
|
+
statusMessage: labels.rule.value.datetime.validation.required,
|
|
225
|
+
"aria-errormessage": endDateTimeIsBefore ? `${elementId}-combined-error` : void 0,
|
|
226
|
+
label: labels.rule.value.datetime.endTimeLabel,
|
|
227
|
+
placeholder: labels.rule.value.datetime.endTimePlaceholder,
|
|
228
|
+
value: endTimePickerValue || void 0,
|
|
229
|
+
onChange: onEndTimeChange,
|
|
230
|
+
onToggle: (_evt, open) => {
|
|
231
|
+
if (!open && !touchedEndTime) {
|
|
232
|
+
setTouchedEndTime(true);
|
|
233
|
+
}
|
|
234
|
+
},
|
|
235
|
+
readOnly
|
|
236
|
+
})]
|
|
237
|
+
}), /* @__PURE__ */ jsx(HvWarningText, {
|
|
238
|
+
disableBorder: true,
|
|
239
|
+
id: `${elementId}-combined-error`,
|
|
240
|
+
isVisible: endDateTimeIsBefore,
|
|
241
|
+
children: labels.rule.value.datetime.validation.invalidInterval
|
|
242
|
+
})]
|
|
243
|
+
})]
|
|
244
|
+
});
|
|
245
|
+
};
|
|
246
|
+
memo(DateTimeValue);
|
|
247
|
+
export {
|
|
248
|
+
DateTimeValue
|
|
249
|
+
};
|
|
250
|
+
//# sourceMappingURL=DateTimeValue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DateTimeValue.js","sources":["../../../../../../../src/components/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.tsx"],"sourcesContent":["import { memo, useCallback, useContext, useMemo, useState } from \"react\";\n\nimport uniqueId from \"lodash/uniqueId\";\n\nimport dayjs from \"dayjs\";\n\nimport { useMediaQuery, useTheme } from \"@mui/material\";\n\nimport { HvDatePicker, HvTimePicker, HvWarningText } from \"@core/components\";\n\nimport { QueryBuilderContext } from \"../../../Context\";\nimport { padTime, parseDate, parseTime } from \"./utils\";\nimport { useClasses } from \"./DateTimeValue.styles\";\n\nfunction valueIsRange(operator) {\n return operator === \"range\";\n}\n\nexport interface DateTimeValueProps {\n id: number;\n operator: string;\n value: any;\n initialTouched: boolean;\n}\n\nexport const DateTimeValue = ({\n id,\n operator,\n value: valueProp = {},\n initialTouched = false,\n}: DateTimeValueProps) => {\n const { classes, cx } = useClasses();\n\n const theme = useTheme();\n const isMdDown = useMediaQuery(theme.breakpoints.down(\"md\"));\n\n const isRange = valueIsRange(operator);\n\n const context = useContext(QueryBuilderContext);\n const { labels, dispatchAction, readOnly } = context;\n\n const elementId = uniqueId(`datetime${id}`);\n\n const [touchedDate, setTouchedDate] = useState(initialTouched);\n const [touchedTime, setTouchedTime] = useState(initialTouched);\n const [touchedEndDate, setTouchedEndDate] = useState(initialTouched);\n const [touchedEndTime, setTouchedEndTime] = useState(initialTouched);\n\n const onDateChange = useCallback(\n (data) => {\n setTouchedDate(true);\n\n let date;\n if (data != null) {\n date = dayjs(data).format(\"YYYY-MM-DD\");\n }\n\n const oldValue = !isRange ? valueProp?.date : valueProp?.start?.date;\n\n if (date !== oldValue) {\n let value;\n if (!isRange) {\n value = {\n date,\n time: valueProp?.time,\n };\n } else {\n value = {\n start: {\n date,\n time: valueProp?.start?.time,\n },\n end: valueProp?.end,\n };\n }\n\n dispatchAction({\n type: \"set-value\",\n id,\n value,\n });\n }\n },\n [dispatchAction, id, isRange, valueProp]\n );\n\n const onTimeChange = useCallback(\n (data) => {\n setTouchedTime(true);\n\n let time;\n if (data != null) {\n time = `${padTime(data.hours)}:${padTime(data.minutes)}:${padTime(\n data.seconds\n )}`;\n }\n\n const oldValue = !isRange ? valueProp?.time : valueProp?.start?.time;\n\n if (time !== oldValue) {\n let value;\n if (!isRange) {\n value = {\n date: valueProp?.date,\n time,\n };\n } else {\n value = {\n start: {\n date: valueProp?.start?.date,\n time,\n },\n end: valueProp?.end,\n };\n }\n\n dispatchAction({\n type: \"set-value\",\n id,\n value,\n });\n }\n },\n [dispatchAction, id, isRange, valueProp]\n );\n\n const onEndDateChange = useCallback(\n (data) => {\n setTouchedEndDate(true);\n\n let date;\n if (data != null) {\n date = dayjs(data).format(\"YYYY-MM-DD\");\n }\n\n if (date !== valueProp?.end?.date) {\n const value = {\n start: valueProp?.start,\n end: {\n date,\n time: valueProp?.end?.time,\n },\n };\n\n dispatchAction({\n type: \"set-value\",\n id,\n value,\n });\n }\n },\n [dispatchAction, id, valueProp]\n );\n\n const onEndTimeChange = useCallback(\n (data) => {\n setTouchedEndTime(true);\n\n let time;\n if (data != null) {\n time = `${padTime(data.hours)}:${padTime(data.minutes)}:${padTime(\n data.seconds\n )}`;\n }\n\n if (time !== valueProp?.end?.time) {\n const value = {\n start: valueProp?.start,\n end: {\n date: valueProp?.end?.date,\n time,\n },\n };\n\n dispatchAction({\n type: \"set-value\",\n id,\n value,\n });\n }\n },\n [dispatchAction, id, valueProp]\n );\n\n const startDate = isRange ? valueProp?.start?.date : valueProp?.date;\n const datePickerValue = useMemo(() => parseDate(startDate), [startDate]);\n const datePickerStatus = datePickerValue != null ? \"valid\" : \"invalid\";\n\n const startTime = (isRange ? valueProp?.start?.time : valueProp?.time) ?? \"\";\n const timePickerValue = useMemo(() => parseTime(startTime), [startTime]);\n const timePickerStatus = timePickerValue != null ? \"valid\" : \"invalid\";\n\n const endDate = isRange ? valueProp?.end?.date : null;\n const endDatePickerValue = useMemo(() => parseDate(endDate), [endDate]);\n\n const endTime = isRange ? valueProp?.end?.time : null;\n const endTimePickerValue = useMemo(() => parseTime(endTime), [endTime]);\n\n const dateStatus = !touchedDate ? \"standBy\" : datePickerStatus;\n const timeStatus = !touchedTime ? \"standBy\" : timePickerStatus;\n\n const endDateIsBefore =\n startDate != null && endDate != null && endDate < startDate;\n\n const endTimeIsBeforeOrSame =\n startDate != null &&\n endDate != null &&\n endDate === startDate &&\n startTime != null &&\n endTime != null &&\n endTime <= startTime;\n\n const endDateTimeIsBefore = endDateIsBefore || endTimeIsBeforeOrSame;\n\n const endDatePickerStatus =\n endDatePickerValue == null || endDateTimeIsBefore ? \"invalid\" : \"valid\";\n const endDateStatus = !touchedEndDate ? \"standBy\" : endDatePickerStatus;\n\n const endTimePickerStatus =\n endTimePickerValue == null || endDateTimeIsBefore ? \"invalid\" : \"valid\";\n const endTimeStatus = !touchedEndTime ? \"standBy\" : endTimePickerStatus;\n\n return (\n <div className={classes.root}>\n <div\n className={cx(classes.row, classes.horizontal, {\n [classes.isMdDown]: isMdDown,\n })}\n >\n <HvDatePicker\n className={classes.datePicker}\n name={`${elementId}-date`}\n required\n status={dateStatus}\n statusMessage={labels.rule.value.datetime.validation.required}\n label={\n isRange\n ? labels.rule.value.datetime.startDateLabel\n : labels.rule.value.datetime.dateLabel\n }\n placeholder={\n isRange\n ? labels.rule.value.datetime.startDatePlaceholder\n : labels.rule.value.datetime.datePlaceholder\n }\n value={datePickerValue}\n onChange={onDateChange}\n readOnly={readOnly}\n />\n <HvTimePicker\n className={classes.timePicker}\n timeFormat=\"24\"\n name={`${elementId}-time`}\n required\n status={timeStatus}\n statusMessage={labels.rule.value.datetime.validation.required}\n label={\n isRange\n ? labels.rule.value.datetime.startTimeLabel\n : labels.rule.value.datetime.timeLabel\n }\n placeholder={\n isRange\n ? labels.rule.value.datetime.startTimePlaceholder\n : labels.rule.value.datetime.timePlaceholder\n }\n value={timePickerValue || undefined}\n onChange={onTimeChange}\n onToggle={(_evt, open) => {\n if (!open && !touchedTime) {\n setTouchedTime(true);\n }\n }}\n readOnly={readOnly}\n />\n </div>\n {isRange && (\n <div className={cx(classes.row, classes.vertical)}>\n <div\n className={cx(classes.horizontal, {\n [classes.isMdDown]: isMdDown,\n })}\n >\n <HvDatePicker\n className={classes.datePicker}\n name={`${elementId}-endDate`}\n required\n status={endDateStatus}\n statusMessage={labels.rule.value.datetime.validation.required}\n aria-errormessage={\n endDateTimeIsBefore ? `${elementId}-combined-error` : undefined\n }\n label={labels.rule.value.datetime.endDateLabel}\n placeholder={labels.rule.value.datetime.endDatePlaceholder}\n value={endDatePickerValue}\n onChange={onEndDateChange}\n readOnly={readOnly}\n />\n <HvTimePicker\n className={classes.timePicker}\n timeFormat=\"24\"\n name={`${elementId}-endTime`}\n required\n status={endTimeStatus}\n statusMessage={labels.rule.value.datetime.validation.required}\n aria-errormessage={\n endDateTimeIsBefore ? `${elementId}-combined-error` : undefined\n }\n label={labels.rule.value.datetime.endTimeLabel}\n placeholder={labels.rule.value.datetime.endTimePlaceholder}\n value={endTimePickerValue || undefined}\n onChange={onEndTimeChange}\n onToggle={(_evt, open) => {\n if (!open && !touchedEndTime) {\n setTouchedEndTime(true);\n }\n }}\n readOnly={readOnly}\n />\n </div>\n <HvWarningText\n disableBorder\n id={`${elementId}-combined-error`}\n isVisible={endDateTimeIsBefore}\n >\n {labels.rule.value.datetime.validation.invalidInterval}\n </HvWarningText>\n </div>\n )}\n </div>\n );\n};\n\nexport default memo(DateTimeValue);\n"],"names":["valueIsRange","operator","DateTimeValue","id","value","valueProp","initialTouched","classes","cx","useClasses","theme","useTheme","isMdDown","useMediaQuery","breakpoints","down","isRange","context","useContext","QueryBuilderContext","labels","dispatchAction","readOnly","elementId","uniqueId","touchedDate","setTouchedDate","useState","touchedTime","setTouchedTime","touchedEndDate","setTouchedEndDate","touchedEndTime","setTouchedEndTime","onDateChange","useCallback","data","date","dayjs","format","oldValue","start","time","end","type","onTimeChange","padTime","hours","minutes","seconds","onEndDateChange","onEndTimeChange","startDate","datePickerValue","useMemo","parseDate","datePickerStatus","startTime","timePickerValue","parseTime","timePickerStatus","endDate","endDatePickerValue","endTime","endTimePickerValue","dateStatus","timeStatus","endDateIsBefore","endTimeIsBeforeOrSame","endDateTimeIsBefore","endDatePickerStatus","endDateStatus","endTimePickerStatus","endTimeStatus","className","root","children","_jsxs","row","horizontal","_jsx","HvDatePicker","datePicker","name","required","status","statusMessage","rule","datetime","validation","label","startDateLabel","dateLabel","placeholder","startDatePlaceholder","datePlaceholder","onChange","HvTimePicker","timePicker","timeFormat","startTimeLabel","timeLabel","startTimePlaceholder","timePlaceholder","undefined","onToggle","_evt","open","vertical","endDateLabel","endDatePlaceholder","endTimeLabel","endTimePlaceholder","HvWarningText","disableBorder","isVisible","invalidInterval","memo"],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { theme } from "@hitachivantara/uikit-styles";
|
|
2
|
+
import { createClasses } from "../../../../../utils/classes.js";
|
|
3
|
+
const {
|
|
4
|
+
useClasses,
|
|
5
|
+
staticClasses
|
|
6
|
+
} = createClasses("HvQueryBuilder-DateTimeValue", {
|
|
7
|
+
root: {
|
|
8
|
+
display: "flex",
|
|
9
|
+
flexDirection: "column"
|
|
10
|
+
},
|
|
11
|
+
row: {
|
|
12
|
+
minHeight: 94
|
|
13
|
+
},
|
|
14
|
+
vertical: {
|
|
15
|
+
display: "flex",
|
|
16
|
+
flexDirection: "column"
|
|
17
|
+
},
|
|
18
|
+
horizontal: {
|
|
19
|
+
display: "flex",
|
|
20
|
+
"& > div:not(:last-child)": {
|
|
21
|
+
marginRight: theme.space.md
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
isMdDown: {
|
|
25
|
+
"& > div:not(:last-child)": {
|
|
26
|
+
marginRight: `calc(${theme.space.md} / 2)`
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
datePicker: {
|
|
30
|
+
flex: "0 1 300px"
|
|
31
|
+
},
|
|
32
|
+
timePicker: {
|
|
33
|
+
flex: "0 1 220px"
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
export {
|
|
37
|
+
staticClasses,
|
|
38
|
+
useClasses
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=DateTimeValue.styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DateTimeValue.styles.js","sources":["../../../../../../../src/components/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\nimport { createClasses } from \"@core/utils\";\n\nexport const { useClasses, staticClasses } = createClasses(\n \"HvQueryBuilder-DateTimeValue\",\n {\n root: {\n display: \"flex\",\n flexDirection: \"column\",\n },\n row: {\n minHeight: 94,\n },\n vertical: {\n display: \"flex\",\n flexDirection: \"column\",\n },\n horizontal: {\n display: \"flex\",\n\n \"& > div:not(:last-child)\": {\n marginRight: theme.space.md,\n },\n },\n isMdDown: {\n \"& > div:not(:last-child)\": {\n marginRight: `calc(${theme.space.md} / 2)`,\n },\n },\n datePicker: {\n flex: \"0 1 300px\",\n },\n timePicker: {\n flex: \"0 1 220px\",\n },\n }\n);\n"],"names":["useClasses","staticClasses","createClasses","root","display","flexDirection","row","minHeight","vertical","horizontal","marginRight","theme","space","md","isMdDown","datePicker","flex","timePicker"],"mappings":";;AAGa,MAAA;AAAA,EAAEA;AAAAA,EAAYC;AAAc,IAAIC,cAC3C,gCACA;AAAA,EACEC,MAAM;AAAA,IACJC,SAAS;AAAA,IACTC,eAAe;AAAA,EACjB;AAAA,EACAC,KAAK;AAAA,IACHC,WAAW;AAAA,EACb;AAAA,EACAC,UAAU;AAAA,IACRJ,SAAS;AAAA,IACTC,eAAe;AAAA,EACjB;AAAA,EACAI,YAAY;AAAA,IACVL,SAAS;AAAA,IAET,4BAA4B;AAAA,MAC1BM,aAAaC,MAAMC,MAAMC;AAAAA,IAC3B;AAAA,EACF;AAAA,EACAC,UAAU;AAAA,IACR,4BAA4B;AAAA,MAC1BJ,aAAc,QAAOC,MAAMC,MAAMC;AAAAA,IACnC;AAAA,EACF;AAAA,EACAE,YAAY;AAAA,IACVC,MAAM;AAAA,EACR;AAAA,EACAC,YAAY;AAAA,IACVD,MAAM;AAAA,EACR;AACF,CACF;"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import dayjs from "dayjs";
|
|
2
|
+
const padTime = (value) => {
|
|
3
|
+
if (!value || value < 0) {
|
|
4
|
+
return "00";
|
|
5
|
+
}
|
|
6
|
+
if (value < 10 && value.toString().length === 1) {
|
|
7
|
+
return `0${value.toString()}`;
|
|
8
|
+
}
|
|
9
|
+
return value.toString();
|
|
10
|
+
};
|
|
11
|
+
const parseDate = (date) => {
|
|
12
|
+
if (date != null) {
|
|
13
|
+
return dayjs(date).toDate();
|
|
14
|
+
}
|
|
15
|
+
return void 0;
|
|
16
|
+
};
|
|
17
|
+
const parseTime = (time) => {
|
|
18
|
+
if (time != null) {
|
|
19
|
+
const parts = time.split(":");
|
|
20
|
+
if (parts.length === 3) {
|
|
21
|
+
return {
|
|
22
|
+
hours: Number.parseInt(parts[0], 10),
|
|
23
|
+
minutes: Number.parseInt(parts[1], 10),
|
|
24
|
+
seconds: Number.parseInt(parts[2], 10)
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return null;
|
|
29
|
+
};
|
|
30
|
+
export {
|
|
31
|
+
padTime,
|
|
32
|
+
parseDate,
|
|
33
|
+
parseTime
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../../../../src/components/QueryBuilder/Rule/Value/DateTimeValue/utils.tsx"],"sourcesContent":["import dayjs from \"dayjs\";\n\n/**\n * Pads the unit time values so that they always have two digits\n * @param {Number} value - unit time value\n * @returns The unit time value with two digits\n */\nexport const padTime = (value) => {\n if (!value || value < 0) {\n return \"00\";\n }\n if (value < 10 && value.toString().length === 1) {\n return `0${value.toString()}`;\n }\n\n return value.toString();\n};\n\nexport const parseDate = (date) => {\n if (date != null) {\n return dayjs(date).toDate();\n }\n\n return undefined;\n};\n\nexport const parseTime = (time) => {\n if (time != null) {\n const parts = time.split(\":\");\n\n if (parts.length === 3) {\n return {\n hours: Number.parseInt(parts[0], 10),\n minutes: Number.parseInt(parts[1], 10),\n seconds: Number.parseInt(parts[2], 10),\n };\n }\n }\n\n return null;\n};\n"],"names":["padTime","value","toString","length","parseDate","date","dayjs","toDate","undefined","parseTime","time","parts","split","hours","Number","parseInt","minutes","seconds"],"mappings":";AAOO,MAAMA,UAAWC,CAAU,UAAA;AAC5B,MAAA,CAACA,SAASA,QAAQ,GAAG;AAChB,WAAA;AAAA,EACT;AACA,MAAIA,QAAQ,MAAMA,MAAMC,SAAS,EAAEC,WAAW,GAAG;AACvC,WAAA,IAAGF,MAAMC,SAAS;AAAA,EAC5B;AAEA,SAAOD,MAAMC;AACf;AAEO,MAAME,YAAaC,CAAS,SAAA;AACjC,MAAIA,QAAQ,MAAM;AACTC,WAAAA,MAAMD,IAAI,EAAEE;EACrB;AAEOC,SAAAA;AACT;AAEO,MAAMC,YAAaC,CAAS,SAAA;AACjC,MAAIA,QAAQ,MAAM;AACVC,UAAAA,QAAQD,KAAKE,MAAM,GAAG;AAExBD,QAAAA,MAAMR,WAAW,GAAG;AACf,aAAA;AAAA,QACLU,OAAOC,OAAOC,SAASJ,MAAM,CAAC,GAAG,EAAE;AAAA,QACnCK,SAASF,OAAOC,SAASJ,MAAM,CAAC,GAAG,EAAE;AAAA,QACrCM,SAASH,OAAOC,SAASJ,MAAM,CAAC,GAAG,EAAE;AAAA,MAAA;AAAA,IAEzC;AAAA,EACF;AAEO,SAAA;AACT;"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { theme } from "@hitachivantara/uikit-styles";
|
|
2
|
-
import
|
|
3
|
-
const
|
|
2
|
+
import { createClasses } from "../../../../../utils/classes.js";
|
|
3
|
+
const {
|
|
4
|
+
useClasses,
|
|
5
|
+
staticClasses
|
|
6
|
+
} = createClasses("HvQueryBuilder-NumericValue", {
|
|
4
7
|
root: {
|
|
5
8
|
display: "flex",
|
|
6
9
|
flexGrow: 1
|
|
@@ -16,7 +19,7 @@ const styles = {
|
|
|
16
19
|
rangeContainer: {
|
|
17
20
|
display: "flex",
|
|
18
21
|
flexGrow: 1,
|
|
19
|
-
|
|
22
|
+
"& > $inputContainer:not(:last-child)": {
|
|
20
23
|
marginRight: theme.space.md
|
|
21
24
|
}
|
|
22
25
|
},
|
|
@@ -24,12 +27,13 @@ const styles = {
|
|
|
24
27
|
flexGrow: 1
|
|
25
28
|
},
|
|
26
29
|
isMdDown: {
|
|
27
|
-
|
|
30
|
+
"& > $inputContainer:not(:last-child)": {
|
|
28
31
|
marginRight: `calc(${theme.space.md} / 2)`
|
|
29
32
|
}
|
|
30
33
|
}
|
|
31
|
-
};
|
|
34
|
+
});
|
|
32
35
|
export {
|
|
33
|
-
|
|
36
|
+
staticClasses,
|
|
37
|
+
useClasses
|
|
34
38
|
};
|
|
35
39
|
//# sourceMappingURL=Numeric.styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Numeric.styles.js","sources":["../../../../../../../src/components/QueryBuilder/Rule/Value/NumericValue/Numeric.styles.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"Numeric.styles.js","sources":["../../../../../../../src/components/QueryBuilder/Rule/Value/NumericValue/Numeric.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\nimport { createClasses } from \"@core/utils\";\n\nexport const { useClasses, staticClasses } = createClasses(\n \"HvQueryBuilder-NumericValue\",\n {\n root: {\n display: \"flex\",\n flexGrow: 1,\n },\n label: {\n paddingBottom: \"6px\",\n },\n inputContainer: {\n display: \"flex\",\n alignItems: \"baseline\",\n flexGrow: 1,\n },\n rangeContainer: {\n display: \"flex\",\n flexGrow: 1,\n\n \"& > $inputContainer:not(:last-child)\": {\n marginRight: theme.space.md,\n },\n },\n input: {\n flexGrow: 1,\n },\n isMdDown: {\n \"& > $inputContainer:not(:last-child)\": {\n marginRight: `calc(${theme.space.md} / 2)`,\n },\n },\n }\n);\n"],"names":["useClasses","staticClasses","createClasses","root","display","flexGrow","label","paddingBottom","inputContainer","alignItems","rangeContainer","marginRight","theme","space","md","input","isMdDown"],"mappings":";;AAGa,MAAA;AAAA,EAAEA;AAAAA,EAAYC;AAAc,IAAIC,cAC3C,+BACA;AAAA,EACEC,MAAM;AAAA,IACJC,SAAS;AAAA,IACTC,UAAU;AAAA,EACZ;AAAA,EACAC,OAAO;AAAA,IACLC,eAAe;AAAA,EACjB;AAAA,EACAC,gBAAgB;AAAA,IACdJ,SAAS;AAAA,IACTK,YAAY;AAAA,IACZJ,UAAU;AAAA,EACZ;AAAA,EACAK,gBAAgB;AAAA,IACdN,SAAS;AAAA,IACTC,UAAU;AAAA,IAEV,wCAAwC;AAAA,MACtCM,aAAaC,MAAMC,MAAMC;AAAAA,IAC3B;AAAA,EACF;AAAA,EACAC,OAAO;AAAA,IACLV,UAAU;AAAA,EACZ;AAAA,EACAW,UAAU;AAAA,IACR,wCAAwC;AAAA,MACtCL,aAAc,QAAOC,MAAMC,MAAMC;AAAAA,IACnC;AAAA,EACF;AACF,CACF;"}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import { useContext, useCallback, useState, memo } from "react";
|
|
2
2
|
import uniqueId from "lodash/uniqueId";
|
|
3
3
|
import isEmpty from "lodash/isEmpty";
|
|
4
|
-
import { ClassNames } from "@emotion/react";
|
|
5
4
|
import { useTheme, useMediaQuery } from "@mui/material";
|
|
6
5
|
import { QueryBuilderContext } from "../../../Context.js";
|
|
7
|
-
import {
|
|
8
|
-
import
|
|
9
|
-
import { jsx, jsxs } from "@emotion/react/jsx-runtime";
|
|
6
|
+
import { useClasses } from "./Numeric.styles.js";
|
|
7
|
+
import { jsxs, jsx } from "@emotion/react/jsx-runtime";
|
|
10
8
|
import { HvInput } from "../../../../Input/Input.js";
|
|
11
9
|
const NumericValue = ({
|
|
12
10
|
id,
|
|
@@ -15,6 +13,10 @@ const NumericValue = ({
|
|
|
15
13
|
initialTouched = false
|
|
16
14
|
}) => {
|
|
17
15
|
var _a, _b;
|
|
16
|
+
const {
|
|
17
|
+
classes,
|
|
18
|
+
cx
|
|
19
|
+
} = useClasses();
|
|
18
20
|
const isRange = operator === "range";
|
|
19
21
|
const context = useContext(QueryBuilderContext);
|
|
20
22
|
const {
|
|
@@ -87,85 +89,21 @@ const NumericValue = ({
|
|
|
87
89
|
}
|
|
88
90
|
const numericStatus = numericValidation != null ? "invalid" : "valid";
|
|
89
91
|
const rightStatus = rightValidation != null ? "invalid" : "valid";
|
|
90
|
-
const renderRangeInputs = (rangeValue) =>
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
cx
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
className:
|
|
98
|
-
children: [/* @__PURE__ */ jsx("div", {
|
|
99
|
-
className: cx(numericValueClasses.inputContainer, css(styles.inputContainer)),
|
|
100
|
-
children: /* @__PURE__ */ jsx(HvInput, {
|
|
101
|
-
label: labels.rule.value.numeric.range.leftLabel,
|
|
102
|
-
className: cx(numericValueClasses.input, css(styles.input)),
|
|
103
|
-
id: `${elementId}-numeric-from`,
|
|
104
|
-
name: `${elementId}-numeric-from`,
|
|
105
|
-
value: ((_a2 = rangeValue == null ? void 0 : rangeValue.from) == null ? void 0 : _a2.toString()) || "",
|
|
106
|
-
onChange: (event, data) => onRangeValueChange(event, data),
|
|
107
|
-
onBlur: () => {
|
|
108
|
-
setTouchedNumeric(true);
|
|
109
|
-
},
|
|
110
|
-
onKeyDown: (e) => {
|
|
111
|
-
if (e.key === "Enter") {
|
|
112
|
-
e.preventDefault();
|
|
113
|
-
}
|
|
114
|
-
},
|
|
115
|
-
status: !touchedNumeric ? "standBy" : numericStatus,
|
|
116
|
-
statusMessage: numericValidation ? labels.rule.value.numeric.validation[numericValidation] : "",
|
|
117
|
-
required: true,
|
|
118
|
-
inputProps: {
|
|
119
|
-
autoComplete: "off"
|
|
120
|
-
},
|
|
121
|
-
placeholder: labels.rule.value.numeric.placeholder,
|
|
122
|
-
readOnly
|
|
123
|
-
})
|
|
124
|
-
}), /* @__PURE__ */ jsx("div", {
|
|
125
|
-
className: cx(numericValueClasses.inputContainer, css(styles.inputContainer)),
|
|
126
|
-
children: /* @__PURE__ */ jsx(HvInput, {
|
|
127
|
-
label: labels.rule.value.numeric.range.rightLabel,
|
|
128
|
-
className: cx(numericValueClasses.input, css(styles.input)),
|
|
129
|
-
id: `${elementId}-numeric-to`,
|
|
130
|
-
name: `${elementId}-numeric-to`,
|
|
131
|
-
value: ((_b2 = rangeValue == null ? void 0 : rangeValue.to) == null ? void 0 : _b2.toString()) || "",
|
|
132
|
-
onChange: (event, data) => onRangeValueChange(event, data, false),
|
|
133
|
-
onBlur: () => {
|
|
134
|
-
setTouchedNumericTo(true);
|
|
135
|
-
},
|
|
136
|
-
onKeyDown: (e) => {
|
|
137
|
-
if (e.key === "Enter") {
|
|
138
|
-
e.preventDefault();
|
|
139
|
-
}
|
|
140
|
-
},
|
|
141
|
-
status: !touchedNumericTo ? "standBy" : rightStatus,
|
|
142
|
-
statusMessage: rightValidation ? labels.rule.value.numeric.validation[rightValidation] : "",
|
|
143
|
-
required: true,
|
|
144
|
-
inputProps: {
|
|
145
|
-
autoComplete: "off"
|
|
146
|
-
},
|
|
147
|
-
placeholder: labels.rule.value.numeric.placeholder,
|
|
148
|
-
readOnly
|
|
149
|
-
})
|
|
150
|
-
})]
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
|
-
});
|
|
154
|
-
return /* @__PURE__ */ jsx(ClassNames, {
|
|
155
|
-
children: ({
|
|
156
|
-
css,
|
|
157
|
-
cx
|
|
158
|
-
}) => /* @__PURE__ */ jsxs("div", {
|
|
159
|
-
className: cx(numericValueClasses.root, css(styles.root)),
|
|
160
|
-
children: [isRange && renderRangeInputs(value || {}), !isRange && /* @__PURE__ */ jsx("div", {
|
|
161
|
-
className: cx(numericValueClasses.inputContainer, css(styles.inputContainer)),
|
|
92
|
+
const renderRangeInputs = (rangeValue) => {
|
|
93
|
+
var _a2, _b2;
|
|
94
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
95
|
+
className: cx(classes.rangeContainer, {
|
|
96
|
+
[classes.isMdDown]: isMdDown
|
|
97
|
+
}),
|
|
98
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
99
|
+
className: classes.inputContainer,
|
|
162
100
|
children: /* @__PURE__ */ jsx(HvInput, {
|
|
163
|
-
label: labels.rule.value.numeric.
|
|
164
|
-
className:
|
|
165
|
-
id: `${elementId}-numeric`,
|
|
166
|
-
name: `${elementId}-numeric`,
|
|
167
|
-
value:
|
|
168
|
-
onChange:
|
|
101
|
+
label: labels.rule.value.numeric.range.leftLabel,
|
|
102
|
+
className: classes.input,
|
|
103
|
+
id: `${elementId}-numeric-from`,
|
|
104
|
+
name: `${elementId}-numeric-from`,
|
|
105
|
+
value: ((_a2 = rangeValue == null ? void 0 : rangeValue.from) == null ? void 0 : _a2.toString()) || "",
|
|
106
|
+
onChange: (event, data) => onRangeValueChange(event, data),
|
|
169
107
|
onBlur: () => {
|
|
170
108
|
setTouchedNumeric(true);
|
|
171
109
|
},
|
|
@@ -175,16 +113,72 @@ const NumericValue = ({
|
|
|
175
113
|
}
|
|
176
114
|
},
|
|
177
115
|
status: !touchedNumeric ? "standBy" : numericStatus,
|
|
116
|
+
statusMessage: numericValidation ? labels.rule.value.numeric.validation[numericValidation] : "",
|
|
117
|
+
required: true,
|
|
118
|
+
inputProps: {
|
|
119
|
+
autoComplete: "off"
|
|
120
|
+
},
|
|
121
|
+
placeholder: labels.rule.value.numeric.placeholder,
|
|
122
|
+
readOnly
|
|
123
|
+
})
|
|
124
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
125
|
+
className: classes.inputContainer,
|
|
126
|
+
children: /* @__PURE__ */ jsx(HvInput, {
|
|
127
|
+
label: labels.rule.value.numeric.range.rightLabel,
|
|
128
|
+
className: classes.input,
|
|
129
|
+
id: `${elementId}-numeric-to`,
|
|
130
|
+
name: `${elementId}-numeric-to`,
|
|
131
|
+
value: ((_b2 = rangeValue == null ? void 0 : rangeValue.to) == null ? void 0 : _b2.toString()) || "",
|
|
132
|
+
onChange: (event, data) => onRangeValueChange(event, data, false),
|
|
133
|
+
onBlur: () => {
|
|
134
|
+
setTouchedNumericTo(true);
|
|
135
|
+
},
|
|
136
|
+
onKeyDown: (e) => {
|
|
137
|
+
if (e.key === "Enter") {
|
|
138
|
+
e.preventDefault();
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
status: !touchedNumericTo ? "standBy" : rightStatus,
|
|
142
|
+
statusMessage: rightValidation ? labels.rule.value.numeric.validation[rightValidation] : "",
|
|
178
143
|
required: true,
|
|
179
144
|
inputProps: {
|
|
180
145
|
autoComplete: "off"
|
|
181
146
|
},
|
|
182
147
|
placeholder: labels.rule.value.numeric.placeholder,
|
|
183
|
-
statusMessage: numericValidation ? labels.rule.value.numeric.validation[numericValidation] : "",
|
|
184
148
|
readOnly
|
|
185
149
|
})
|
|
186
150
|
})]
|
|
187
|
-
})
|
|
151
|
+
});
|
|
152
|
+
};
|
|
153
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
154
|
+
className: classes.root,
|
|
155
|
+
children: [isRange && renderRangeInputs(value || {}), !isRange && /* @__PURE__ */ jsx("div", {
|
|
156
|
+
className: classes.inputContainer,
|
|
157
|
+
children: /* @__PURE__ */ jsx(HvInput, {
|
|
158
|
+
label: labels.rule.value.numeric.label,
|
|
159
|
+
className: classes.input,
|
|
160
|
+
id: `${elementId}-numeric`,
|
|
161
|
+
name: `${elementId}-numeric`,
|
|
162
|
+
value: value ? value.toString() : "",
|
|
163
|
+
onChange: onSingleValueChange,
|
|
164
|
+
onBlur: () => {
|
|
165
|
+
setTouchedNumeric(true);
|
|
166
|
+
},
|
|
167
|
+
onKeyDown: (e) => {
|
|
168
|
+
if (e.key === "Enter") {
|
|
169
|
+
e.preventDefault();
|
|
170
|
+
}
|
|
171
|
+
},
|
|
172
|
+
status: !touchedNumeric ? "standBy" : numericStatus,
|
|
173
|
+
required: true,
|
|
174
|
+
inputProps: {
|
|
175
|
+
autoComplete: "off"
|
|
176
|
+
},
|
|
177
|
+
placeholder: labels.rule.value.numeric.placeholder,
|
|
178
|
+
statusMessage: numericValidation ? labels.rule.value.numeric.validation[numericValidation] : "",
|
|
179
|
+
readOnly
|
|
180
|
+
})
|
|
181
|
+
})]
|
|
188
182
|
});
|
|
189
183
|
};
|
|
190
184
|
memo(NumericValue);
|