@hitachivantara/uikit-react-core 5.36.10 → 5.36.11

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.
Files changed (64) hide show
  1. package/dist/cjs/components/CheckBoxGroup/CheckBoxGroup.cjs +3 -1
  2. package/dist/cjs/components/CheckBoxGroup/CheckBoxGroup.cjs.map +1 -1
  3. package/dist/cjs/components/QueryBuilder/ConfirmationDialog/ConfirmationDialog.cjs.map +1 -1
  4. package/dist/cjs/components/QueryBuilder/Context.cjs +10 -2
  5. package/dist/cjs/components/QueryBuilder/Context.cjs.map +1 -1
  6. package/dist/cjs/components/QueryBuilder/QueryBuilder.cjs +30 -24
  7. package/dist/cjs/components/QueryBuilder/QueryBuilder.cjs.map +1 -1
  8. package/dist/cjs/components/QueryBuilder/QueryBuilder.styles.cjs +10 -0
  9. package/dist/cjs/components/QueryBuilder/QueryBuilder.styles.cjs.map +1 -1
  10. package/dist/cjs/components/QueryBuilder/Rule/Attribute/Attribute.cjs +1 -1
  11. package/dist/cjs/components/QueryBuilder/Rule/Attribute/Attribute.cjs.map +1 -1
  12. package/dist/cjs/components/QueryBuilder/Rule/Operator/Operator.cjs +2 -2
  13. package/dist/cjs/components/QueryBuilder/Rule/Operator/Operator.cjs.map +1 -1
  14. package/dist/cjs/components/QueryBuilder/Rule/Rule.cjs +1 -1
  15. package/dist/cjs/components/QueryBuilder/Rule/Rule.cjs.map +1 -1
  16. package/dist/cjs/components/QueryBuilder/Rule/Value/BooleanValue/BooleanValue.cjs +1 -1
  17. package/dist/cjs/components/QueryBuilder/Rule/Value/BooleanValue/BooleanValue.cjs.map +1 -1
  18. package/dist/cjs/components/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.cjs +1 -1
  19. package/dist/cjs/components/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.cjs.map +1 -1
  20. package/dist/cjs/components/QueryBuilder/Rule/Value/DateTimeValue/utils.cjs.map +1 -1
  21. package/dist/cjs/components/QueryBuilder/Rule/Value/NumericValue/NumericValue.cjs +4 -4
  22. package/dist/cjs/components/QueryBuilder/Rule/Value/NumericValue/NumericValue.cjs.map +1 -1
  23. package/dist/cjs/components/QueryBuilder/Rule/Value/TextValue/TextValue.cjs +1 -1
  24. package/dist/cjs/components/QueryBuilder/Rule/Value/TextValue/TextValue.cjs.map +1 -1
  25. package/dist/cjs/components/QueryBuilder/Rule/Value/Value.cjs +1 -1
  26. package/dist/cjs/components/QueryBuilder/Rule/Value/Value.cjs.map +1 -1
  27. package/dist/cjs/components/QueryBuilder/RuleGroup/RuleGroup.cjs +7 -13
  28. package/dist/cjs/components/QueryBuilder/RuleGroup/RuleGroup.cjs.map +1 -1
  29. package/dist/cjs/components/QueryBuilder/utils/index.cjs.map +1 -1
  30. package/dist/cjs/components/QueryBuilder/utils/reducer.cjs +1 -1
  31. package/dist/cjs/components/QueryBuilder/utils/reducer.cjs.map +1 -1
  32. package/dist/esm/components/CheckBoxGroup/CheckBoxGroup.js +3 -1
  33. package/dist/esm/components/CheckBoxGroup/CheckBoxGroup.js.map +1 -1
  34. package/dist/esm/components/QueryBuilder/ConfirmationDialog/ConfirmationDialog.js.map +1 -1
  35. package/dist/esm/components/QueryBuilder/Context.js +10 -2
  36. package/dist/esm/components/QueryBuilder/Context.js.map +1 -1
  37. package/dist/esm/components/QueryBuilder/QueryBuilder.js +32 -26
  38. package/dist/esm/components/QueryBuilder/QueryBuilder.js.map +1 -1
  39. package/dist/esm/components/QueryBuilder/QueryBuilder.styles.js +10 -0
  40. package/dist/esm/components/QueryBuilder/QueryBuilder.styles.js.map +1 -1
  41. package/dist/esm/components/QueryBuilder/Rule/Attribute/Attribute.js +2 -2
  42. package/dist/esm/components/QueryBuilder/Rule/Attribute/Attribute.js.map +1 -1
  43. package/dist/esm/components/QueryBuilder/Rule/Operator/Operator.js +3 -3
  44. package/dist/esm/components/QueryBuilder/Rule/Operator/Operator.js.map +1 -1
  45. package/dist/esm/components/QueryBuilder/Rule/Rule.js +2 -2
  46. package/dist/esm/components/QueryBuilder/Rule/Rule.js.map +1 -1
  47. package/dist/esm/components/QueryBuilder/Rule/Value/BooleanValue/BooleanValue.js +2 -2
  48. package/dist/esm/components/QueryBuilder/Rule/Value/BooleanValue/BooleanValue.js.map +1 -1
  49. package/dist/esm/components/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.js +2 -2
  50. package/dist/esm/components/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.js.map +1 -1
  51. package/dist/esm/components/QueryBuilder/Rule/Value/DateTimeValue/utils.js.map +1 -1
  52. package/dist/esm/components/QueryBuilder/Rule/Value/NumericValue/NumericValue.js +5 -5
  53. package/dist/esm/components/QueryBuilder/Rule/Value/NumericValue/NumericValue.js.map +1 -1
  54. package/dist/esm/components/QueryBuilder/Rule/Value/TextValue/TextValue.js +2 -2
  55. package/dist/esm/components/QueryBuilder/Rule/Value/TextValue/TextValue.js.map +1 -1
  56. package/dist/esm/components/QueryBuilder/Rule/Value/Value.js +2 -2
  57. package/dist/esm/components/QueryBuilder/Rule/Value/Value.js.map +1 -1
  58. package/dist/esm/components/QueryBuilder/RuleGroup/RuleGroup.js +8 -14
  59. package/dist/esm/components/QueryBuilder/RuleGroup/RuleGroup.js.map +1 -1
  60. package/dist/esm/components/QueryBuilder/utils/index.js.map +1 -1
  61. package/dist/esm/components/QueryBuilder/utils/reducer.js +1 -1
  62. package/dist/esm/components/QueryBuilder/utils/reducer.js.map +1 -1
  63. package/dist/types/index.d.ts +28 -37
  64. package/package.json +5 -5
@@ -1 +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 { HvWarningText } from \"@core/components/Forms\";\nimport { HvTimePicker } from \"@core/components/TimePicker\";\nimport { HvDatePicker } from \"@core/components/DatePicker\";\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","root","row","horizontal","datePicker","rule","datetime","validation","required","startDateLabel","dateLabel","startDatePlaceholder","datePlaceholder","timePicker","startTimeLabel","timeLabel","startTimePlaceholder","timePlaceholder","undefined","_evt","open","vertical","endDateLabel","endDatePlaceholder","endTimeLabel","endTimePlaceholder","invalidInterval","memo"],"mappings":"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"}
1
+ {"version":3,"file":"DateTimeValue.js","sources":["../../../../../../../src/components/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.tsx"],"sourcesContent":["import { memo, useCallback, useContext, useMemo, useState } from \"react\";\nimport uniqueId from \"lodash/uniqueId\";\nimport dayjs from \"dayjs\";\nimport { useMediaQuery, useTheme } from \"@mui/material\";\n\nimport { HvWarningText } from \"@core/components/Forms\";\nimport { HvTimePicker, HvTimePickerValue } from \"@core/components/TimePicker\";\nimport { HvDatePicker } from \"@core/components/DatePicker\";\n\nimport { HvQueryBuilderContext } 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: React.Key;\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(HvQueryBuilderContext);\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?: Date) => {\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: HvTimePickerValue) => {\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?: Date) => {\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: HvTimePickerValue) => {\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","HvQueryBuilderContext","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","root","row","horizontal","datePicker","rule","datetime","validation","required","startDateLabel","dateLabel","startDatePlaceholder","datePlaceholder","timePicker","startTimeLabel","timeLabel","startTimePlaceholder","timePlaceholder","undefined","_evt","open","vertical","endDateLabel","endDatePlaceholder","endTimeLabel","endTimePlaceholder","invalidInterval","memo"],"mappings":"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"}
@@ -1 +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,SAAAA,CAAW;AAAA,EAC9B;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
+ {"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: number) => {\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: string) => {\n if (date != null) {\n return dayjs(date).toDate();\n }\n\n return undefined;\n};\n\nexport const parseTime = (time: string) => {\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":";AAOaA,MAAAA,UAAUA,CAACC,UAAkB;AACpC,MAAA,CAACA,SAASA,QAAQ,GAAG;AAChB,WAAA;AAAA,EACT;AACA,MAAIA,QAAQ,MAAMA,MAAMC,SAAS,EAAEC,WAAW,GAAG;AACvC,WAAA,IAAGF,MAAMC,SAAAA,CAAW;AAAA,EAC9B;AAEA,SAAOD,MAAMC;AACf;AAEaE,MAAAA,YAAYA,CAACC,SAAiB;AACzC,MAAIA,QAAQ,MAAM;AACTC,WAAAA,MAAMD,IAAI,EAAEE;EACrB;AAEOC,SAAAA;AACT;AAEaC,MAAAA,YAAYA,CAACC,SAAiB;AACzC,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;"}
@@ -3,7 +3,7 @@ import { useContext, useCallback, useState, memo } from "react";
3
3
  import uniqueId from "lodash/uniqueId";
4
4
  import isEmpty from "lodash/isEmpty";
5
5
  import { useTheme, useMediaQuery } from "@mui/material";
6
- import { QueryBuilderContext } from "../../../Context.js";
6
+ import { HvQueryBuilderContext } from "../../../Context.js";
7
7
  import { useClasses } from "./Numeric.styles.js";
8
8
  import { HvInput } from "../../../../Input/Input.js";
9
9
  const NumericValue = ({
@@ -17,7 +17,7 @@ const NumericValue = ({
17
17
  cx
18
18
  } = useClasses();
19
19
  const isRange = operator === "range";
20
- const context = useContext(QueryBuilderContext);
20
+ const context = useContext(HvQueryBuilderContext);
21
21
  const {
22
22
  labels,
23
23
  dispatchAction,
@@ -25,7 +25,7 @@ const NumericValue = ({
25
25
  } = context;
26
26
  const theme = useTheme();
27
27
  const isMdDown = useMediaQuery(theme.breakpoints.down("md"));
28
- const onSingleValueChange = useCallback((evt, data) => {
28
+ const onSingleValueChange = useCallback((_, data) => {
29
29
  const numericData = isEmpty(data) ? null : Number(data);
30
30
  dispatchAction({
31
31
  type: "set-value",
@@ -33,7 +33,7 @@ const NumericValue = ({
33
33
  value: Number.isNaN(numericData) ? data : numericData
34
34
  });
35
35
  }, [dispatchAction, id]);
36
- const onRangeValueChange = useCallback((evt, data, from = true) => {
36
+ const onRangeValueChange = useCallback((_, data, from = true) => {
37
37
  const numericData = isEmpty(data) ? null : Number(data);
38
38
  const currentValue = value;
39
39
  const numericRange = {
@@ -112,7 +112,7 @@ const NumericValue = ({
112
112
  ] });
113
113
  return /* @__PURE__ */ jsxs("div", { className: classes.root, children: [
114
114
  isRange && renderRangeInputs(value || {}),
115
- !isRange && /* @__PURE__ */ jsx("div", { className: classes.inputContainer, children: /* @__PURE__ */ jsx(HvInput, { label: labels.rule.value.numeric.label, className: classes.input, id: `${elementId}-numeric`, name: `${elementId}-numeric`, value: value ? value.toString() : "", onChange: onSingleValueChange, onBlur: () => {
115
+ !isRange && /* @__PURE__ */ jsx("div", { className: classes.inputContainer, children: /* @__PURE__ */ jsx(HvInput, { label: labels.rule.value.numeric.label, className: classes.input, id: `${elementId}-numeric`, name: `${elementId}-numeric`, value: value?.toString() || "", onChange: onSingleValueChange, onBlur: () => {
116
116
  setTouchedNumeric(true);
117
117
  }, onKeyDown: (e) => {
118
118
  if (e.key === "Enter") {
@@ -1 +1 @@
1
- {"version":3,"file":"NumericValue.js","sources":["../../../../../../../src/components/QueryBuilder/Rule/Value/NumericValue/NumericValue.tsx"],"sourcesContent":["import { memo, useCallback, useContext, useState } from \"react\";\n\nimport uniqueId from \"lodash/uniqueId\";\nimport isEmpty from \"lodash/isEmpty\";\n\nimport { useMediaQuery, useTheme } from \"@mui/material\";\n\nimport { HvInput } from \"@core/components/Input\";\n\nimport { QueryBuilderContext } from \"../../../Context\";\nimport { useClasses } from \"./Numeric.styles\";\n\nexport interface NumericValueProps {\n id: number;\n value: any;\n operator: string;\n initialTouched?: boolean;\n}\n\nexport const NumericValue = ({\n id,\n value,\n operator,\n initialTouched = false,\n}: NumericValueProps) => {\n const { classes, cx } = useClasses();\n\n const isRange = operator === \"range\";\n const context = useContext(QueryBuilderContext);\n const { labels, dispatchAction, readOnly } = context;\n\n const theme = useTheme();\n\n const isMdDown = useMediaQuery(theme.breakpoints.down(\"md\"));\n\n const onSingleValueChange = useCallback(\n (evt, data) => {\n const numericData = isEmpty(data) ? null : Number(data);\n dispatchAction({\n type: \"set-value\",\n id,\n value: Number.isNaN(numericData) ? data : numericData,\n });\n },\n [dispatchAction, id]\n );\n\n const onRangeValueChange = useCallback(\n (evt, data, from = true) => {\n const numericData = isEmpty(data) ? null : Number(data);\n const currentValue = value;\n const numericRange = {\n from: currentValue?.from,\n to: currentValue?.to,\n };\n if (from) {\n numericRange.from = Number.isNaN(numericData) ? data : numericData;\n } else {\n numericRange.to = Number.isNaN(numericData) ? data : numericData;\n }\n dispatchAction({\n type: \"set-value\",\n id,\n value: numericRange,\n });\n },\n [dispatchAction, id, value]\n );\n\n const [touchedNumeric, setTouchedNumeric] = useState(initialTouched);\n const [touchedNumericTo, setTouchedNumericTo] = useState(initialTouched);\n\n const elementId = uniqueId(\"numeric\");\n\n let numericValidation: \"required\" | \"invalid\" | null = null;\n let rightValidation: \"required\" | \"invalid\" | \"greaterThan\" | \"equal\" | null =\n null;\n\n if (touchedNumeric || touchedNumericTo) {\n if (value === undefined || value?.toString() === \"\") {\n if (touchedNumeric) {\n numericValidation = \"required\";\n }\n if (touchedNumericTo) {\n rightValidation = \"required\";\n }\n } else if (!isRange) {\n if (Number.isNaN(Number(value))) {\n numericValidation = \"invalid\";\n }\n } else if (isRange) {\n const rangeValue = value;\n if (\n rangeValue?.from === undefined ||\n rangeValue?.from?.toString() === \"\"\n ) {\n numericValidation = \"required\";\n } else if (Number.isNaN(Number(rangeValue?.from))) {\n numericValidation = \"invalid\";\n }\n\n if (rangeValue?.to === undefined || rangeValue?.to?.toString() === \"\") {\n rightValidation = \"required\";\n } else if (Number.isNaN(Number(rangeValue?.to))) {\n rightValidation = \"invalid\";\n } else if (Number(rangeValue?.from) > Number(rangeValue?.to)) {\n rightValidation = \"greaterThan\";\n } else if (Number(rangeValue?.from) === Number(rangeValue?.to)) {\n rightValidation = \"equal\";\n }\n }\n }\n\n const numericStatus = numericValidation != null ? \"invalid\" : \"valid\";\n const rightStatus = rightValidation != null ? \"invalid\" : \"valid\";\n\n const renderRangeInputs = (rangeValue) => (\n <div\n className={cx(classes.rangeContainer, { [classes.isMdDown]: isMdDown })}\n >\n <div className={classes.inputContainer}>\n <HvInput\n label={labels.rule.value.numeric.range.leftLabel}\n className={classes.input}\n id={`${elementId}-numeric-from`}\n name={`${elementId}-numeric-from`}\n value={rangeValue?.from?.toString() || \"\"}\n onChange={(event, data) => onRangeValueChange(event, data)}\n onBlur={() => {\n setTouchedNumeric(true);\n }}\n onKeyDown={(e: any) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n }\n }}\n status={!touchedNumeric ? \"standBy\" : numericStatus}\n statusMessage={\n numericValidation\n ? labels.rule.value.numeric.validation[numericValidation]\n : \"\"\n }\n required\n inputProps={{\n autoComplete: \"off\",\n }}\n placeholder={labels.rule.value.numeric.placeholder}\n readOnly={readOnly}\n />\n </div>\n <div className={classes.inputContainer}>\n <HvInput\n label={labels.rule.value.numeric.range.rightLabel}\n className={classes.input}\n id={`${elementId}-numeric-to`}\n name={`${elementId}-numeric-to`}\n value={rangeValue?.to?.toString() || \"\"}\n onChange={(event, data) => onRangeValueChange(event, data, false)}\n onBlur={() => {\n setTouchedNumericTo(true);\n }}\n onKeyDown={(e: any) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n }\n }}\n status={!touchedNumericTo ? \"standBy\" : rightStatus}\n statusMessage={\n rightValidation\n ? labels.rule.value.numeric.validation[rightValidation]\n : \"\"\n }\n required\n inputProps={{\n autoComplete: \"off\",\n }}\n placeholder={labels.rule.value.numeric.placeholder}\n readOnly={readOnly}\n />\n </div>\n </div>\n );\n\n return (\n <div className={classes.root}>\n {isRange && renderRangeInputs(value || {})}\n {!isRange && (\n <div className={classes.inputContainer}>\n <HvInput\n label={labels.rule.value.numeric.label}\n className={classes.input}\n id={`${elementId}-numeric`}\n name={`${elementId}-numeric`}\n value={value ? value.toString() : \"\"}\n onChange={onSingleValueChange}\n onBlur={() => {\n setTouchedNumeric(true);\n }}\n onKeyDown={(e: any) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n }\n }}\n status={!touchedNumeric ? \"standBy\" : numericStatus}\n required\n inputProps={{\n autoComplete: \"off\",\n }}\n placeholder={labels.rule.value.numeric.placeholder}\n statusMessage={\n numericValidation\n ? labels.rule.value.numeric.validation[numericValidation]\n : \"\"\n }\n readOnly={readOnly}\n />\n </div>\n )}\n </div>\n );\n};\n\nexport default memo(NumericValue);\n"],"names":["NumericValue","id","value","operator","initialTouched","classes","cx","useClasses","isRange","context","useContext","QueryBuilderContext","labels","dispatchAction","readOnly","theme","useTheme","isMdDown","useMediaQuery","breakpoints","down","onSingleValueChange","useCallback","evt","data","numericData","isEmpty","Number","type","isNaN","onRangeValueChange","from","currentValue","numericRange","to","touchedNumeric","setTouchedNumeric","useState","touchedNumericTo","setTouchedNumericTo","elementId","uniqueId","numericValidation","rightValidation","undefined","toString","rangeValue","numericStatus","rightStatus","renderRangeInputs","rangeContainer","inputContainer","rule","numeric","range","leftLabel","input","event","e","key","preventDefault","validation","autoComplete","placeholder","rightLabel","root","label","memo"],"mappings":"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"}
1
+ {"version":3,"file":"NumericValue.js","sources":["../../../../../../../src/components/QueryBuilder/Rule/Value/NumericValue/NumericValue.tsx"],"sourcesContent":["import { memo, useCallback, useContext, useState } from \"react\";\nimport uniqueId from \"lodash/uniqueId\";\nimport isEmpty from \"lodash/isEmpty\";\nimport { useMediaQuery, useTheme } from \"@mui/material\";\n\nimport { HvInput } from \"@core/components/Input\";\n\nimport { HvQueryBuilderContext } from \"../../../Context\";\nimport { useClasses } from \"./Numeric.styles\";\nimport { HvQueryBuilderNumericRange } from \"../../../types\";\n\nexport interface NumericValueProps {\n id: React.Key;\n value?: any;\n operator?: string;\n initialTouched?: boolean;\n}\n\nexport const NumericValue = ({\n id,\n value,\n operator,\n initialTouched = false,\n}: NumericValueProps) => {\n const { classes, cx } = useClasses();\n\n const isRange = operator === \"range\";\n const context = useContext(HvQueryBuilderContext);\n const { labels, dispatchAction, readOnly } = context;\n\n const theme = useTheme();\n\n const isMdDown = useMediaQuery(theme.breakpoints.down(\"md\"));\n\n const onSingleValueChange = useCallback(\n (_, data: string) => {\n const numericData = isEmpty(data) ? null : Number(data);\n dispatchAction({\n type: \"set-value\",\n id,\n value: Number.isNaN(numericData) ? data : numericData,\n });\n },\n [dispatchAction, id]\n );\n\n const onRangeValueChange = useCallback(\n (_, data: string, from = true) => {\n const numericData = isEmpty(data) ? null : Number(data);\n const currentValue = value;\n const numericRange = {\n from: currentValue?.from,\n to: currentValue?.to,\n };\n if (from) {\n numericRange.from = Number.isNaN(numericData) ? data : numericData;\n } else {\n numericRange.to = Number.isNaN(numericData) ? data : numericData;\n }\n dispatchAction({\n type: \"set-value\",\n id,\n value: numericRange,\n });\n },\n [dispatchAction, id, value]\n );\n\n const [touchedNumeric, setTouchedNumeric] = useState(initialTouched);\n const [touchedNumericTo, setTouchedNumericTo] = useState(initialTouched);\n\n const elementId = uniqueId(\"numeric\");\n\n let numericValidation: \"required\" | \"invalid\" | null = null;\n let rightValidation: \"required\" | \"invalid\" | \"greaterThan\" | \"equal\" | null =\n null;\n\n if (touchedNumeric || touchedNumericTo) {\n if (value === undefined || value?.toString() === \"\") {\n if (touchedNumeric) {\n numericValidation = \"required\";\n }\n if (touchedNumericTo) {\n rightValidation = \"required\";\n }\n } else if (!isRange) {\n if (Number.isNaN(Number(value))) {\n numericValidation = \"invalid\";\n }\n } else if (isRange) {\n const rangeValue = value;\n if (\n rangeValue?.from === undefined ||\n rangeValue?.from?.toString() === \"\"\n ) {\n numericValidation = \"required\";\n } else if (Number.isNaN(Number(rangeValue?.from))) {\n numericValidation = \"invalid\";\n }\n\n if (rangeValue?.to === undefined || rangeValue?.to?.toString() === \"\") {\n rightValidation = \"required\";\n } else if (Number.isNaN(Number(rangeValue?.to))) {\n rightValidation = \"invalid\";\n } else if (Number(rangeValue?.from) > Number(rangeValue?.to)) {\n rightValidation = \"greaterThan\";\n } else if (Number(rangeValue?.from) === Number(rangeValue?.to)) {\n rightValidation = \"equal\";\n }\n }\n }\n\n const numericStatus = numericValidation != null ? \"invalid\" : \"valid\";\n const rightStatus = rightValidation != null ? \"invalid\" : \"valid\";\n\n const renderRangeInputs = (rangeValue: HvQueryBuilderNumericRange) => (\n <div\n className={cx(classes.rangeContainer, { [classes.isMdDown]: isMdDown })}\n >\n <div className={classes.inputContainer}>\n <HvInput\n label={labels.rule.value.numeric.range.leftLabel}\n className={classes.input}\n id={`${elementId}-numeric-from`}\n name={`${elementId}-numeric-from`}\n value={rangeValue?.from?.toString() || \"\"}\n onChange={(event, data) => onRangeValueChange(event, data)}\n onBlur={() => {\n setTouchedNumeric(true);\n }}\n onKeyDown={(e: any) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n }\n }}\n status={!touchedNumeric ? \"standBy\" : numericStatus}\n statusMessage={\n numericValidation\n ? labels.rule.value.numeric.validation[numericValidation]\n : \"\"\n }\n required\n inputProps={{\n autoComplete: \"off\",\n }}\n placeholder={labels.rule.value.numeric.placeholder}\n readOnly={readOnly}\n />\n </div>\n <div className={classes.inputContainer}>\n <HvInput\n label={labels.rule.value.numeric.range.rightLabel}\n className={classes.input}\n id={`${elementId}-numeric-to`}\n name={`${elementId}-numeric-to`}\n value={rangeValue?.to?.toString() || \"\"}\n onChange={(event, data) => onRangeValueChange(event, data, false)}\n onBlur={() => {\n setTouchedNumericTo(true);\n }}\n onKeyDown={(e: any) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n }\n }}\n status={!touchedNumericTo ? \"standBy\" : rightStatus}\n statusMessage={\n rightValidation\n ? labels.rule.value.numeric.validation[rightValidation]\n : \"\"\n }\n required\n inputProps={{\n autoComplete: \"off\",\n }}\n placeholder={labels.rule.value.numeric.placeholder}\n readOnly={readOnly}\n />\n </div>\n </div>\n );\n\n return (\n <div className={classes.root}>\n {isRange && renderRangeInputs(value || {})}\n {!isRange && (\n <div className={classes.inputContainer}>\n <HvInput\n label={labels.rule.value.numeric.label}\n className={classes.input}\n id={`${elementId}-numeric`}\n name={`${elementId}-numeric`}\n value={value?.toString() || \"\"}\n onChange={onSingleValueChange}\n onBlur={() => {\n setTouchedNumeric(true);\n }}\n onKeyDown={(e: any) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n }\n }}\n status={!touchedNumeric ? \"standBy\" : numericStatus}\n required\n inputProps={{\n autoComplete: \"off\",\n }}\n placeholder={labels.rule.value.numeric.placeholder}\n statusMessage={\n numericValidation\n ? labels.rule.value.numeric.validation[numericValidation]\n : \"\"\n }\n readOnly={readOnly}\n />\n </div>\n )}\n </div>\n );\n};\n\nexport default memo(NumericValue);\n"],"names":["NumericValue","id","value","operator","initialTouched","classes","cx","useClasses","isRange","context","useContext","HvQueryBuilderContext","labels","dispatchAction","readOnly","theme","useTheme","isMdDown","useMediaQuery","breakpoints","down","onSingleValueChange","useCallback","_","data","numericData","isEmpty","Number","type","isNaN","onRangeValueChange","from","currentValue","numericRange","to","touchedNumeric","setTouchedNumeric","useState","touchedNumericTo","setTouchedNumericTo","elementId","uniqueId","numericValidation","rightValidation","undefined","toString","rangeValue","numericStatus","rightStatus","renderRangeInputs","rangeContainer","inputContainer","rule","numeric","range","leftLabel","input","event","e","key","preventDefault","validation","autoComplete","placeholder","rightLabel","root","label","memo"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { jsx } from "@emotion/react/jsx-runtime";
2
2
  import { useContext, useState, memo } from "react";
3
- import { QueryBuilderContext } from "../../../Context.js";
3
+ import { HvQueryBuilderContext } from "../../../Context.js";
4
4
  import { useClasses } from "./TextValue.styles.js";
5
5
  import { HvInput } from "../../../../Input/Input.js";
6
6
  const TextValue = ({
@@ -11,7 +11,7 @@ const TextValue = ({
11
11
  const {
12
12
  classes
13
13
  } = useClasses();
14
- const context = useContext(QueryBuilderContext);
14
+ const context = useContext(HvQueryBuilderContext);
15
15
  const {
16
16
  labels,
17
17
  dispatchAction,
@@ -1 +1 @@
1
- {"version":3,"file":"TextValue.js","sources":["../../../../../../../src/components/QueryBuilder/Rule/Value/TextValue/TextValue.tsx"],"sourcesContent":["import { memo, useContext, useState } from \"react\";\n\nimport { HvFormStatus } from \"@core/components/Forms\";\nimport { HvInput } from \"@core/components/Input\";\n\nimport { QueryBuilderContext } from \"../../../Context\";\nimport { useClasses } from \"./TextValue.styles\";\n\nexport interface TextValueProps {\n id?: number;\n value?: any;\n initialTouched?: boolean;\n}\n\nexport const TextValue = ({\n id,\n value = \"\",\n initialTouched = false,\n}: TextValueProps) => {\n const { classes } = useClasses();\n\n const context = useContext(QueryBuilderContext);\n const { labels, dispatchAction, readOnly } = context;\n const [touched, setTouched] = useState(initialTouched);\n const isValid = value != null && value.toString().trim() !== \"\";\n\n let status: HvFormStatus = isValid ? \"valid\" : \"invalid\";\n status = !touched ? \"standBy\" : status;\n\n return (\n <HvInput\n className={classes.location}\n label={labels.rule.value.text.label}\n required\n status={status}\n statusMessage={labels.rule.value.text.validation.required}\n value={value}\n inputProps={{\n autoComplete: \"off\",\n }}\n onChange={(t, v) => {\n dispatchAction({\n type: \"set-value\",\n id,\n value: v,\n });\n }}\n onBlur={() => {\n setTouched(true);\n }}\n onKeyDown={(e: any) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n }\n }}\n placeholder=\"—\"\n readOnly={readOnly}\n />\n );\n};\n\nexport default memo(TextValue);\n"],"names":["TextValue","id","value","initialTouched","classes","useClasses","context","useContext","QueryBuilderContext","labels","dispatchAction","readOnly","touched","setTouched","useState","isValid","toString","trim","status","location","rule","text","label","validation","required","autoComplete","t","v","type","e","key","preventDefault","memo"],"mappings":";;;;;AAcO,MAAMA,YAAYA,CAAC;AAAA,EACxBC;AAAAA,EACAC,QAAQ;AAAA,EACRC,iBAAiB;AACH,MAAM;AACd,QAAA;AAAA,IAAEC;AAAAA,MAAYC,WAAW;AAEzBC,QAAAA,UAAUC,WAAWC,mBAAmB;AACxC,QAAA;AAAA,IAAEC;AAAAA,IAAQC;AAAAA,IAAgBC;AAAAA,EAAaL,IAAAA;AAC7C,QAAM,CAACM,SAASC,UAAU,IAAIC,SAASX,cAAc;AACrD,QAAMY,UAAUb,SAAS,QAAQA,MAAMc,WAAWC,KAAW,MAAA;AAEzDC,MAAAA,SAAuBH,UAAU,UAAU;AACtC,WAAA,CAACH,UAAU,YAAYM;AAG9B,SAAA,oBAAC,WACC,WAAWd,QAAQe,UACnB,OAAOV,OAAOW,KAAKlB,MAAMmB,KAAKC,OAC9B,UAAQ,MACR,QACA,eAAeb,OAAOW,KAAKlB,MAAMmB,KAAKE,WAAWC,UACjD,OACA,YAAY;AAAA,IACVC,cAAc;AAAA,EAAA,GAEhB,UAAU,CAACC,GAAGC,MAAM;AACH,mBAAA;AAAA,MACbC,MAAM;AAAA,MACN3B;AAAAA,MACAC,OAAOyB;AAAAA,IAAAA,CACR;AAAA,EACH,GACA,QAAQ,MAAM;AACZd,eAAW,IAAI;AAAA,EAAA,GAEjB,WAAW,CAACgB,MAAW;AACjBA,QAAAA,EAAEC,QAAQ,SAAS;AACrBD,QAAEE,eAAe;AAAA,IACnB;AAAA,EACF,GACA,aAAY,KACZ,SACA,CAAA;AAEN;AAEeC,KAAKhC,SAAS;"}
1
+ {"version":3,"file":"TextValue.js","sources":["../../../../../../../src/components/QueryBuilder/Rule/Value/TextValue/TextValue.tsx"],"sourcesContent":["import { memo, useContext, useState } from \"react\";\n\nimport { HvFormStatus } from \"@core/components/Forms\";\nimport { HvInput } from \"@core/components/Input\";\n\nimport { HvQueryBuilderContext } from \"../../../Context\";\nimport { useClasses } from \"./TextValue.styles\";\n\nexport interface TextValueProps {\n id: React.Key;\n value?: any;\n initialTouched?: boolean;\n}\n\nexport const TextValue = ({\n id,\n value = \"\",\n initialTouched = false,\n}: TextValueProps) => {\n const { classes } = useClasses();\n\n const context = useContext(HvQueryBuilderContext);\n const { labels, dispatchAction, readOnly } = context;\n const [touched, setTouched] = useState(initialTouched);\n const isValid = value != null && value.toString().trim() !== \"\";\n\n let status: HvFormStatus = isValid ? \"valid\" : \"invalid\";\n status = !touched ? \"standBy\" : status;\n\n return (\n <HvInput\n className={classes.location}\n label={labels.rule.value.text.label}\n required\n status={status}\n statusMessage={labels.rule.value.text.validation.required}\n value={value}\n inputProps={{\n autoComplete: \"off\",\n }}\n onChange={(t, v) => {\n dispatchAction({\n type: \"set-value\",\n id,\n value: v,\n });\n }}\n onBlur={() => {\n setTouched(true);\n }}\n onKeyDown={(e: any) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n }\n }}\n placeholder=\"—\"\n readOnly={readOnly}\n />\n );\n};\n\nexport default memo(TextValue);\n"],"names":["TextValue","id","value","initialTouched","classes","useClasses","context","useContext","HvQueryBuilderContext","labels","dispatchAction","readOnly","touched","setTouched","useState","isValid","toString","trim","status","location","rule","text","label","validation","required","autoComplete","t","v","type","e","key","preventDefault","memo"],"mappings":";;;;;AAcO,MAAMA,YAAYA,CAAC;AAAA,EACxBC;AAAAA,EACAC,QAAQ;AAAA,EACRC,iBAAiB;AACH,MAAM;AACd,QAAA;AAAA,IAAEC;AAAAA,MAAYC,WAAW;AAEzBC,QAAAA,UAAUC,WAAWC,qBAAqB;AAC1C,QAAA;AAAA,IAAEC;AAAAA,IAAQC;AAAAA,IAAgBC;AAAAA,EAAaL,IAAAA;AAC7C,QAAM,CAACM,SAASC,UAAU,IAAIC,SAASX,cAAc;AACrD,QAAMY,UAAUb,SAAS,QAAQA,MAAMc,WAAWC,KAAW,MAAA;AAEzDC,MAAAA,SAAuBH,UAAU,UAAU;AACtC,WAAA,CAACH,UAAU,YAAYM;AAG9B,SAAA,oBAAC,WACC,WAAWd,QAAQe,UACnB,OAAOV,OAAOW,KAAKlB,MAAMmB,KAAKC,OAC9B,UAAQ,MACR,QACA,eAAeb,OAAOW,KAAKlB,MAAMmB,KAAKE,WAAWC,UACjD,OACA,YAAY;AAAA,IACVC,cAAc;AAAA,EAAA,GAEhB,UAAU,CAACC,GAAGC,MAAM;AACH,mBAAA;AAAA,MACbC,MAAM;AAAA,MACN3B;AAAAA,MACAC,OAAOyB;AAAAA,IAAAA,CACR;AAAA,EACH,GACA,QAAQ,MAAM;AACZd,eAAW,IAAI;AAAA,EAAA,GAEjB,WAAW,CAACgB,MAAW;AACjBA,QAAAA,EAAEC,QAAQ,SAAS;AACrBD,QAAEE,eAAe;AAAA,IACnB;AAAA,EACF,GACA,aAAY,KACZ,SACA,CAAA;AAEN;AAEeC,KAAKhC,SAAS;"}
@@ -1,6 +1,6 @@
1
1
  import { jsx } from "@emotion/react/jsx-runtime";
2
2
  import { useContext, memo } from "react";
3
- import { QueryBuilderContext } from "../../Context.js";
3
+ import { HvQueryBuilderContext } from "../../Context.js";
4
4
  import { TextValue } from "./TextValue/TextValue.js";
5
5
  import { DateTimeValue } from "./DateTimeValue/DateTimeValue.js";
6
6
  import { NumericValue } from "./NumericValue/NumericValue.js";
@@ -11,7 +11,7 @@ const Value = ({
11
11
  operator,
12
12
  value: valueProp
13
13
  }) => {
14
- const context = useContext(QueryBuilderContext);
14
+ const context = useContext(HvQueryBuilderContext);
15
15
  const {
16
16
  attributes,
17
17
  initialTouched
@@ -1 +1 @@
1
- {"version":3,"file":"Value.js","sources":["../../../../../../src/components/QueryBuilder/Rule/Value/Value.tsx"],"sourcesContent":["import { memo, useContext } from \"react\";\n\nimport { QueryBuilderContext } from \"../../Context\";\nimport { BooleanValue } from \"./BooleanValue\";\nimport { NumericValue } from \"./NumericValue\";\nimport { TextValue } from \"./TextValue\";\nimport { DateTimeValue } from \"./DateTimeValue\";\n\nexport interface ValueProps {\n id: number;\n attribute: string;\n operator: string;\n value: any;\n}\n\nexport const Value = ({\n id,\n attribute,\n operator,\n value: valueProp,\n}: ValueProps) => {\n const context = useContext(QueryBuilderContext);\n const { attributes, initialTouched } = context;\n const value =\n attribute && attributes ? { ...attributes[attribute] } : { type: null };\n const { type } = value;\n\n switch (type) {\n case \"boolean\": {\n return <BooleanValue id={id} value={!!valueProp} />;\n }\n case \"numeric\": {\n return (\n <NumericValue\n id={id}\n operator={operator}\n value={valueProp}\n initialTouched={initialTouched}\n />\n );\n }\n case \"dateandtime\": {\n return (\n <DateTimeValue\n id={id}\n operator={operator}\n value={valueProp}\n initialTouched={initialTouched}\n />\n );\n }\n case \"text\":\n case \"textarea\":\n default: {\n return (\n <TextValue id={id} value={valueProp} initialTouched={initialTouched} />\n );\n }\n }\n};\n\nexport default memo(Value);\n"],"names":["Value","id","attribute","operator","value","valueProp","context","useContext","QueryBuilderContext","attributes","initialTouched","type","memo"],"mappings":";;;;;;;AAeO,MAAMA,QAAQA,CAAC;AAAA,EACpBC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,OAAOC;AACG,MAAM;AACVC,QAAAA,UAAUC,WAAWC,mBAAmB;AACxC,QAAA;AAAA,IAAEC;AAAAA,IAAYC;AAAAA,EAAmBJ,IAAAA;AACjCF,QAAAA,QACJF,aAAaO,aAAa;AAAA,IAAE,GAAGA,WAAWP,SAAS;AAAA,EAAA,IAAM;AAAA,IAAES,MAAM;AAAA,EAAA;AAC7D,QAAA;AAAA,IAAEA;AAAAA,EAASP,IAAAA;AAEjB,UAAQO,MAAI;AAAA,IACV,KAAK,WAAW;AACd,iCAAQ,cAAa,EAAA,IAAQ,OAAO,CAAC,CAACN,UAAa,CAAA;AAAA,IACrD;AAAA,IACA,KAAK,WAAW;AACd,iCACG,cACC,EAAA,IACA,UACA,OAAOA,WACP,eACA,CAAA;AAAA,IAEN;AAAA,IACA,KAAK,eAAe;AAClB,iCACG,eACC,EAAA,IACA,UACA,OAAOA,WACP,eACA,CAAA;AAAA,IAEN;AAAA,IACA,KAAK;AAAA,IACL,KAAK;AAAA,IACL,SAAS;AACP,aACG,oBAAA,WAAA,EAAU,IAAQ,OAAOA,WAAW,eAAkC,CAAA;AAAA,IAE3E;AAAA,EACF;AACF;AAEeO,KAAKZ,KAAK;"}
1
+ {"version":3,"file":"Value.js","sources":["../../../../../../src/components/QueryBuilder/Rule/Value/Value.tsx"],"sourcesContent":["import { memo, useContext } from \"react\";\n\nimport { HvQueryBuilderContext } from \"../../Context\";\nimport { BooleanValue } from \"./BooleanValue\";\nimport { NumericValue } from \"./NumericValue\";\nimport { TextValue } from \"./TextValue\";\nimport { DateTimeValue } from \"./DateTimeValue\";\n\nexport interface ValueProps {\n id: React.Key;\n attribute: string;\n operator?: string;\n value?: any;\n}\n\nexport const Value = ({\n id,\n attribute,\n operator,\n value: valueProp,\n}: ValueProps) => {\n const context = useContext(HvQueryBuilderContext);\n const { attributes, initialTouched } = context;\n const value =\n attribute && attributes ? { ...attributes[attribute] } : { type: null };\n const { type } = value;\n\n switch (type) {\n case \"boolean\": {\n return <BooleanValue id={id} value={!!valueProp} />;\n }\n case \"numeric\": {\n return (\n <NumericValue\n id={id}\n operator={operator}\n value={valueProp}\n initialTouched={initialTouched}\n />\n );\n }\n case \"dateandtime\": {\n return (\n <DateTimeValue\n id={id}\n operator={operator}\n value={valueProp}\n initialTouched={initialTouched}\n />\n );\n }\n case \"text\":\n case \"textarea\":\n default: {\n return (\n <TextValue id={id} value={valueProp} initialTouched={initialTouched} />\n );\n }\n }\n};\n\nexport default memo(Value);\n"],"names":["Value","id","attribute","operator","value","valueProp","context","useContext","HvQueryBuilderContext","attributes","initialTouched","type","memo"],"mappings":";;;;;;;AAeO,MAAMA,QAAQA,CAAC;AAAA,EACpBC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,OAAOC;AACG,MAAM;AACVC,QAAAA,UAAUC,WAAWC,qBAAqB;AAC1C,QAAA;AAAA,IAAEC;AAAAA,IAAYC;AAAAA,EAAmBJ,IAAAA;AACjCF,QAAAA,QACJF,aAAaO,aAAa;AAAA,IAAE,GAAGA,WAAWP,SAAS;AAAA,EAAA,IAAM;AAAA,IAAES,MAAM;AAAA,EAAA;AAC7D,QAAA;AAAA,IAAEA;AAAAA,EAASP,IAAAA;AAEjB,UAAQO,MAAI;AAAA,IACV,KAAK,WAAW;AACd,iCAAQ,cAAa,EAAA,IAAQ,OAAO,CAAC,CAACN,UAAa,CAAA;AAAA,IACrD;AAAA,IACA,KAAK,WAAW;AACd,iCACG,cACC,EAAA,IACA,UACA,OAAOA,WACP,eACA,CAAA;AAAA,IAEN;AAAA,IACA,KAAK,eAAe;AAClB,iCACG,eACC,EAAA,IACA,UACA,OAAOA,WACP,eACA,CAAA;AAAA,IAEN;AAAA,IACA,KAAK;AAAA,IACL,KAAK;AAAA,IACL,SAAS;AACP,aACG,oBAAA,WAAA,EAAU,IAAQ,OAAOA,WAAW,eAAkC,CAAA;AAAA,IAE3E;AAAA,EACF;AACF;AAEeO,KAAKZ,KAAK;"}
@@ -2,7 +2,7 @@ import { jsxs, Fragment, jsx } from "@emotion/react/jsx-runtime";
2
2
  import { useContext, useCallback } from "react";
3
3
  import { Add, Delete, Info } from "@hitachivantara/uikit-react-icons";
4
4
  import { withTooltip } from "../../../hocs/withTooltip.js";
5
- import { QueryBuilderContext } from "../Context.js";
5
+ import { HvQueryBuilderContext } from "../Context.js";
6
6
  import { useClasses } from "../QueryBuilder.styles.js";
7
7
  import { HvButton } from "../../Button/Button.js";
8
8
  import { Rule } from "../Rule/Rule.js";
@@ -21,7 +21,7 @@ const RuleGroup = ({
21
21
  classes,
22
22
  cx
23
23
  } = useClasses(classesProp);
24
- const context = useContext(QueryBuilderContext);
24
+ const context = useContext(HvQueryBuilderContext);
25
25
  const {
26
26
  dispatchAction,
27
27
  askAction,
@@ -76,7 +76,7 @@ const RuleGroup = ({
76
76
  [classes.topRulesContainer]: level === 0
77
77
  }), children: rules.map((rule, index) => {
78
78
  if ("combinator" in rule) {
79
- return /* @__PURE__ */ jsx(RuleGroup, { level: level + 1, ...rule, id: rule.id, classes }, rule.id ?? index);
79
+ return /* @__PURE__ */ jsx(RuleGroup, { level: level + 1, ...rule, id: rule.id, classes }, rule.id);
80
80
  }
81
81
  const isInvalid = combinator === "and" && rules.some((r, i) => {
82
82
  if ("attribute" in r) {
@@ -86,29 +86,23 @@ const RuleGroup = ({
86
86
  }
87
87
  return false;
88
88
  });
89
- return /* @__PURE__ */ jsx(Rule, { ...rule, isInvalid, id: rule.id, combinator }, rule.id ?? index);
89
+ return /* @__PURE__ */ jsx(Rule, { ...rule, isInvalid, id: rule.id, combinator }, rule.id);
90
90
  }) }),
91
91
  rules?.length === 0 && /* @__PURE__ */ jsx(HvEmptyState, { title: labels.empty?.title, message: /* @__PURE__ */ jsxs(Fragment, { children: [
92
- /* @__PURE__ */ jsx(HvTypography, { variant: "link", component: "a", onClick: () => {
92
+ /* @__PURE__ */ jsx(HvTypography, { link: true, component: "button", onClick: () => {
93
93
  dispatchAction({
94
94
  type: "add-rule",
95
95
  id
96
96
  });
97
- }, style: {
98
- cursor: "pointer",
99
- textDecoration: "underline"
100
- }, children: `${labels.empty?.createCondition}` }),
97
+ }, className: classes.createConditionButton, children: `${labels.empty?.createCondition}` }),
101
98
  level <= normalizedMaxDepth && /* @__PURE__ */ jsxs(Fragment, { children: [
102
99
  `${labels.empty?.spacer}`,
103
- /* @__PURE__ */ jsx(HvTypography, { variant: "link", component: "a", onClick: () => {
100
+ /* @__PURE__ */ jsx(HvTypography, { link: true, component: "button", onClick: () => {
104
101
  dispatchAction({
105
102
  type: "add-group",
106
103
  id
107
104
  });
108
- }, style: {
109
- cursor: "pointer",
110
- textDecoration: "underline"
111
- }, children: `${labels.empty?.createGroup}` })
105
+ }, className: classes.createGroupButton, children: `${labels.empty?.createGroup}` })
112
106
  ] })
113
107
  ] }), icon: /* @__PURE__ */ jsx(Info, {}) }),
114
108
  /* @__PURE__ */ jsx(HvGrid, { container: true, children: /* @__PURE__ */ jsx(HvGrid, { item: true, className: cx(classes.actionButtonContainer, classes.topActionButtonContainer), children: actionButtons }) })
@@ -1 +1 @@
1
- {"version":3,"file":"RuleGroup.js","sources":["../../../../../src/components/QueryBuilder/RuleGroup/RuleGroup.tsx"],"sourcesContent":["import { useCallback, useContext } from \"react\";\n\nimport { Add, Delete, Info } from \"@hitachivantara/uikit-react-icons\";\n\nimport { HvButton } from \"@core/components/Button\";\nimport { HvEmptyState } from \"@core/components/EmptyState\";\nimport { HvGrid } from \"@core/components/Grid\";\nimport { HvMultiButton } from \"@core/components/MultiButton\";\nimport { HvTypography } from \"@core/components/Typography\";\nimport { withTooltip } from \"@core/hocs/withTooltip\";\nimport { ExtractNames } from \"@core/utils/classes\";\n\nimport { Rule } from \"../Rule\";\nimport { QueryBuilderContext } from \"../Context\";\nimport { useClasses } from \"../QueryBuilder.styles\";\n\nexport interface RuleGroupProps {\n /**\n * Override or extend the styles applied to the component.\n * See CSS API tab for more details.\n */\n classes?: ExtractNames<typeof useClasses>;\n id?: number;\n level?: number;\n combinator?: string;\n rules?: any[];\n}\n\nexport const RuleGroup = ({\n level = 0,\n id,\n combinator = \"and\",\n rules = [],\n classes: classesProp,\n}: RuleGroupProps) => {\n const { classes, cx } = useClasses(classesProp);\n\n const context = useContext(QueryBuilderContext);\n\n const { dispatchAction, askAction, maxDepth, combinators, labels, readOnly } =\n context;\n const normalizedMaxDepth = maxDepth - 1;\n\n const actionButtons = (\n <>\n <div className={classes.buttonBackground}>\n <HvButton\n variant=\"secondarySubtle\"\n onClick={() => {\n dispatchAction({ type: \"add-rule\", id });\n }}\n disabled={readOnly}\n startIcon={<Add />}\n >\n {level === 0 && labels.query?.addRule?.label != null\n ? labels.query?.addRule?.label\n : labels.group.addRule.label}\n </HvButton>\n </div>\n {level <= normalizedMaxDepth && (\n <div className={classes.buttonBackground}>\n <HvButton\n variant=\"secondarySubtle\"\n onClick={() => {\n dispatchAction({ type: \"add-group\", id });\n }}\n disabled={readOnly}\n startIcon={<Add />}\n >\n {level === 0 && labels.query?.addGroup?.label != null\n ? labels.query?.addGroup?.label\n : labels.group.addGroup.label}\n </HvButton>\n </div>\n )}\n </>\n );\n\n const DeleteIcon = withTooltip(\n () => (\n <Delete className={cx({ [classes.topRemoveButtonDisabled]: readOnly })} />\n ),\n level === 0 && labels.query?.delete?.tooltip\n ? labels.query?.delete?.tooltip\n : labels.group.delete.tooltip,\n \"top\"\n );\n\n const onClickCombinator = useCallback(\n (item) => {\n dispatchAction({\n type: \"set-combinator\",\n id,\n combinator: item.operand,\n });\n },\n [dispatchAction, id]\n );\n\n return (\n <div\n className={cx(classes.root, {\n [classes.topGroup]: level === 0,\n [classes.subGroup]: level > 0,\n })}\n >\n <HvGrid container>\n <HvGrid item>\n <HvMultiButton\n className={cx(classes.combinator, classes.topCombinator)}\n disabled={readOnly}\n >\n {combinators &&\n combinators.map((item) => (\n <HvButton\n key={item.operand}\n className={classes.combinatorButton}\n selected={item.operand === combinator}\n onClick={() => item.operand && onClickCombinator(item)}\n disabled={readOnly}\n size=\"xs\"\n >\n {item.label}\n </HvButton>\n ))}\n </HvMultiButton>\n </HvGrid>\n <HvGrid item>\n <div\n className={cx(classes.buttonBackground, classes.topRemoveButton)}\n >\n <HvButton\n icon\n className={classes.removeButton}\n onClick={() => {\n askAction({\n actions: [{ type: \"remove-node\", id }],\n dialog:\n level === 0 && labels.query?.delete != null\n ? labels.query.delete\n : labels.group.delete,\n });\n }}\n aria-label={\n level === 0 && labels.query?.delete?.ariaLabel\n ? labels.query?.delete?.ariaLabel\n : labels.group.delete.ariaLabel\n }\n disabled={readOnly}\n >\n <DeleteIcon />\n </HvButton>\n </div>\n </HvGrid>\n </HvGrid>\n {rules?.length > 0 && (\n <div\n className={cx(classes.rulesContainer, {\n [classes.subRulesContainer]: level > 0,\n [classes.topRulesContainer]: level === 0,\n })}\n >\n {rules.map((rule, index) => {\n if (\"combinator\" in rule) {\n return (\n <RuleGroup\n key={rule.id ?? index}\n level={level + 1}\n {...rule}\n id={rule.id}\n classes={classes}\n />\n );\n }\n\n const isInvalid =\n combinator === \"and\" &&\n rules.some((r, i) => {\n if (\"attribute\" in r) {\n if (\n r.attribute === rule.attribute &&\n r.id !== rule.id &&\n i < index\n ) {\n return true;\n }\n }\n return false;\n });\n\n return (\n <Rule\n key={rule.id ?? index}\n {...rule}\n isInvalid={isInvalid}\n id={rule.id}\n combinator={combinator}\n />\n );\n })}\n </div>\n )}\n {rules?.length === 0 && (\n <HvEmptyState\n title={labels.empty?.title}\n message={\n <>\n <HvTypography\n variant=\"link\"\n component=\"a\"\n onClick={() => {\n dispatchAction({ type: \"add-rule\", id });\n }}\n style={{ cursor: \"pointer\", textDecoration: \"underline\" }}\n >\n {`${labels.empty?.createCondition}`}\n </HvTypography>\n {level <= normalizedMaxDepth && (\n <>\n {`${labels.empty?.spacer}`}\n <HvTypography\n variant=\"link\"\n component=\"a\"\n onClick={() => {\n dispatchAction({ type: \"add-group\", id });\n }}\n style={{\n cursor: \"pointer\",\n textDecoration: \"underline\",\n }}\n >\n {`${labels.empty?.createGroup}`}\n </HvTypography>\n </>\n )}\n </>\n }\n icon={<Info />}\n />\n )}\n <HvGrid container>\n <HvGrid\n item\n className={cx(\n classes.actionButtonContainer,\n classes.topActionButtonContainer\n )}\n >\n {actionButtons}\n </HvGrid>\n </HvGrid>\n </div>\n );\n};\n"],"names":["RuleGroup","level","id","combinator","rules","classes","classesProp","cx","useClasses","context","useContext","QueryBuilderContext","dispatchAction","askAction","maxDepth","combinators","labels","readOnly","normalizedMaxDepth","actionButtons","buttonBackground","type","query","addRule","label","group","addGroup","DeleteIcon","withTooltip","topRemoveButtonDisabled","delete","tooltip","onClickCombinator","useCallback","item","operand","root","topGroup","subGroup","topCombinator","map","combinatorButton","topRemoveButton","removeButton","actions","dialog","ariaLabel","length","rulesContainer","subRulesContainer","topRulesContainer","rule","index","isInvalid","some","r","i","attribute","empty","title","cursor","textDecoration","createCondition","spacer","createGroup","actionButtonContainer","topActionButtonContainer"],"mappings":"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"}
1
+ {"version":3,"file":"RuleGroup.js","sources":["../../../../../src/components/QueryBuilder/RuleGroup/RuleGroup.tsx"],"sourcesContent":["import { useCallback, useContext } from \"react\";\nimport { Add, Delete, Info } from \"@hitachivantara/uikit-react-icons\";\n\nimport { HvButton } from \"@core/components/Button\";\nimport { HvEmptyState } from \"@core/components/EmptyState\";\nimport { HvGrid } from \"@core/components/Grid\";\nimport { HvMultiButton } from \"@core/components/MultiButton\";\nimport { HvTypography } from \"@core/components/Typography\";\nimport { withTooltip } from \"@core/hocs/withTooltip\";\nimport { ExtractNames } from \"@core/utils/classes\";\n\nimport { Rule } from \"../Rule\";\nimport { HvQueryBuilderContext } from \"../Context\";\nimport { useClasses } from \"../QueryBuilder.styles\";\nimport { HvQueryBuilderQuery, HvQueryBuilderQueryCombinator } from \"../types\";\n\nexport interface RuleGroupProps {\n id: React.Key;\n level?: number;\n combinator?: string;\n rules?: HvQueryBuilderQuery[\"rules\"];\n classes?: ExtractNames<typeof useClasses>;\n}\n\nexport const RuleGroup = ({\n level = 0,\n id,\n combinator = \"and\",\n rules = [],\n classes: classesProp,\n}: RuleGroupProps) => {\n const { classes, cx } = useClasses(classesProp);\n\n const context = useContext(HvQueryBuilderContext);\n\n const { dispatchAction, askAction, maxDepth, combinators, labels, readOnly } =\n context;\n const normalizedMaxDepth = maxDepth - 1;\n\n const actionButtons = (\n <>\n <div className={classes.buttonBackground}>\n <HvButton\n variant=\"secondarySubtle\"\n onClick={() => {\n dispatchAction({ type: \"add-rule\", id });\n }}\n disabled={readOnly}\n startIcon={<Add />}\n >\n {level === 0 && labels.query?.addRule?.label != null\n ? labels.query?.addRule?.label\n : labels.group.addRule.label}\n </HvButton>\n </div>\n {level <= normalizedMaxDepth && (\n <div className={classes.buttonBackground}>\n <HvButton\n variant=\"secondarySubtle\"\n onClick={() => {\n dispatchAction({ type: \"add-group\", id });\n }}\n disabled={readOnly}\n startIcon={<Add />}\n >\n {level === 0 && labels.query?.addGroup?.label != null\n ? labels.query?.addGroup?.label\n : labels.group.addGroup.label}\n </HvButton>\n </div>\n )}\n </>\n );\n\n const DeleteIcon = withTooltip(\n () => (\n <Delete className={cx({ [classes.topRemoveButtonDisabled]: readOnly })} />\n ),\n level === 0 && labels.query?.delete?.tooltip\n ? labels.query?.delete?.tooltip\n : labels.group.delete.tooltip,\n \"top\"\n );\n\n const onClickCombinator = useCallback(\n (item: HvQueryBuilderQueryCombinator) => {\n dispatchAction({\n type: \"set-combinator\",\n id,\n combinator: item.operand,\n });\n },\n [dispatchAction, id]\n );\n\n return (\n <div\n className={cx(classes.root, {\n [classes.topGroup]: level === 0,\n [classes.subGroup]: level > 0,\n })}\n >\n <HvGrid container>\n <HvGrid item>\n <HvMultiButton\n className={cx(classes.combinator, classes.topCombinator)}\n disabled={readOnly}\n >\n {combinators &&\n combinators.map((item) => (\n <HvButton\n key={item.operand}\n className={classes.combinatorButton}\n selected={item.operand === combinator}\n onClick={() => item.operand && onClickCombinator(item)}\n disabled={readOnly}\n size=\"xs\"\n >\n {item.label}\n </HvButton>\n ))}\n </HvMultiButton>\n </HvGrid>\n <HvGrid item>\n <div\n className={cx(classes.buttonBackground, classes.topRemoveButton)}\n >\n <HvButton\n icon\n className={classes.removeButton}\n onClick={() => {\n askAction({\n actions: [{ type: \"remove-node\", id }],\n dialog:\n level === 0 && labels.query?.delete != null\n ? labels.query.delete\n : labels.group.delete,\n });\n }}\n aria-label={\n level === 0 && labels.query?.delete?.ariaLabel\n ? labels.query?.delete?.ariaLabel\n : labels.group.delete.ariaLabel\n }\n disabled={readOnly}\n >\n <DeleteIcon />\n </HvButton>\n </div>\n </HvGrid>\n </HvGrid>\n {rules?.length > 0 && (\n <div\n className={cx(classes.rulesContainer, {\n [classes.subRulesContainer]: level > 0,\n [classes.topRulesContainer]: level === 0,\n })}\n >\n {rules.map((rule, index) => {\n if (\"combinator\" in rule) {\n return (\n <RuleGroup\n key={rule.id}\n level={level + 1}\n {...rule}\n id={rule.id}\n classes={classes}\n />\n );\n }\n\n const isInvalid =\n combinator === \"and\" &&\n rules.some((r, i) => {\n if (\"attribute\" in r) {\n if (\n r.attribute === rule.attribute &&\n r.id !== rule.id &&\n i < index\n ) {\n return true;\n }\n }\n return false;\n });\n\n return (\n <Rule\n key={rule.id}\n {...rule}\n isInvalid={isInvalid}\n id={rule.id}\n combinator={combinator}\n />\n );\n })}\n </div>\n )}\n {rules?.length === 0 && (\n <HvEmptyState\n title={labels.empty?.title}\n message={\n <>\n <HvTypography\n link\n component=\"button\"\n onClick={() => {\n dispatchAction({ type: \"add-rule\", id });\n }}\n className={classes.createConditionButton}\n >\n {`${labels.empty?.createCondition}`}\n </HvTypography>\n {level <= normalizedMaxDepth && (\n <>\n {`${labels.empty?.spacer}`}\n <HvTypography\n link\n component=\"button\"\n onClick={() => {\n dispatchAction({ type: \"add-group\", id });\n }}\n className={classes.createGroupButton}\n >\n {`${labels.empty?.createGroup}`}\n </HvTypography>\n </>\n )}\n </>\n }\n icon={<Info />}\n />\n )}\n <HvGrid container>\n <HvGrid\n item\n className={cx(\n classes.actionButtonContainer,\n classes.topActionButtonContainer\n )}\n >\n {actionButtons}\n </HvGrid>\n </HvGrid>\n </div>\n );\n};\n"],"names":["RuleGroup","level","id","combinator","rules","classes","classesProp","cx","useClasses","context","useContext","HvQueryBuilderContext","dispatchAction","askAction","maxDepth","combinators","labels","readOnly","normalizedMaxDepth","actionButtons","buttonBackground","type","query","addRule","label","group","addGroup","DeleteIcon","withTooltip","topRemoveButtonDisabled","delete","tooltip","onClickCombinator","useCallback","item","operand","root","topGroup","subGroup","topCombinator","map","combinatorButton","topRemoveButton","removeButton","actions","dialog","ariaLabel","length","rulesContainer","subRulesContainer","topRulesContainer","rule","index","isInvalid","some","r","i","attribute","empty","title","createConditionButton","createCondition","spacer","createGroupButton","createGroup","actionButtonContainer","topActionButtonContainer"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/components/QueryBuilder/utils/index.tsx"],"sourcesContent":["export const isBigList = (values) => values != null && values?.length > 10;\n\nexport const emptyRule = () => ({\n id: Math.random(),\n});\n\nexport const emptyGroup = (createEmptyRule = false) => ({\n id: Math.random(),\n combinator: \"and\",\n rules: createEmptyRule ? [emptyRule()] : [],\n});\n\nexport const clearNodeIds = (original) => {\n const rule = { ...original };\n\n delete rule.id;\n\n if (\"rules\" in rule) {\n rule.rules = rule.rules.map((r) => clearNodeIds(r));\n }\n\n return rule;\n};\n\nexport const findNodeById = (id, node) => {\n if (node.id === id) {\n return node;\n }\n if (\"rules\" in node) {\n for (let i = 0; i < node.rules.length; ++i) {\n const rule = node.rules[i];\n\n const found = findNodeById(id, rule);\n if (found) {\n return found;\n }\n }\n }\n\n return null;\n};\n\nexport const findParentById = (id, node, parent?) => {\n if (node.id === id) {\n return parent ?? null;\n }\n\n if (\"rules\" in node) {\n const group = node;\n\n for (let i = 0; i < group.rules.length; ++i) {\n const rule = group.rules[i];\n\n const found = findParentById(id, rule, group);\n if (found) {\n return found;\n }\n }\n }\n\n return null;\n};\n"],"names":["isBigList","values","length","emptyRule","id","Math","random","emptyGroup","createEmptyRule","combinator","rules","clearNodeIds","original","rule","map","r","findNodeById","node","i","found","findParentById","parent","group"],"mappings":"AAAO,MAAMA,YAAaC,CAAAA,WAAWA,UAAU,QAAQA,QAAQC,SAAS;AAEjE,MAAMC,YAAYA,OAAO;AAAA,EAC9BC,IAAIC,KAAKC,OAAO;AAClB;AAEaC,MAAAA,aAAaA,CAACC,kBAAkB,WAAW;AAAA,EACtDJ,IAAIC,KAAKC,OAAO;AAAA,EAChBG,YAAY;AAAA,EACZC,OAAOF,kBAAkB,CAACL,UAAU,CAAC,IAAI,CAAA;AAC3C;AAEO,MAAMQ,eAAgBC,CAAa,aAAA;AACxC,QAAMC,OAAO;AAAA,IAAE,GAAGD;AAAAA,EAAAA;AAElB,SAAOC,KAAKT;AAEZ,MAAI,WAAWS,MAAM;AACnBA,SAAKH,QAAQG,KAAKH,MAAMI,IAAKC,CAAMJ,MAAAA,aAAaI,CAAC,CAAC;AAAA,EACpD;AAEOF,SAAAA;AACT;AAEaG,MAAAA,eAAeA,CAACZ,IAAIa,SAAS;AACpCA,MAAAA,KAAKb,OAAOA,IAAI;AACXa,WAAAA;AAAAA,EACT;AACA,MAAI,WAAWA,MAAM;AACnB,aAASC,IAAI,GAAGA,IAAID,KAAKP,MAAMR,QAAQ,EAAEgB,GAAG;AACpCL,YAAAA,OAAOI,KAAKP,MAAMQ,CAAC;AAEnBC,YAAAA,QAAQH,aAAaZ,IAAIS,IAAI;AACnC,UAAIM,OAAO;AACFA,eAAAA;AAAAA,MACT;AAAA,IACF;AAAA,EACF;AAEO,SAAA;AACT;AAEO,MAAMC,iBAAiBA,CAAChB,IAAIa,MAAMI,WAAY;AAC/CJ,MAAAA,KAAKb,OAAOA,IAAI;AAClB,WAAOiB,UAAU;AAAA,EACnB;AAEA,MAAI,WAAWJ,MAAM;AACnB,UAAMK,QAAQL;AAEd,aAASC,IAAI,GAAGA,IAAII,MAAMZ,MAAMR,QAAQ,EAAEgB,GAAG;AACrCL,YAAAA,OAAOS,MAAMZ,MAAMQ,CAAC;AAE1B,YAAMC,QAAQC,eAAehB,IAAIS,MAAMS,KAAK;AAC5C,UAAIH,OAAO;AACFA,eAAAA;AAAAA,MACT;AAAA,IACF;AAAA,EACF;AAEO,SAAA;AACT;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/QueryBuilder/utils/index.tsx"],"sourcesContent":["import { HvQueryBuilderQueryGroup, HvQueryBuilderQueryRule } from \"../types\";\n\nexport const isBigList = (values: unknown[]) =>\n values != null && values?.length > 10;\n\nexport const emptyRule = () => ({\n id: Math.random(),\n});\n\nexport const emptyGroup = (createEmptyRule = false) => ({\n id: Math.random(),\n combinator: \"and\",\n rules: createEmptyRule ? [emptyRule()] : [],\n});\n\nexport const clearNodeIds = (\n original: HvQueryBuilderQueryGroup | HvQueryBuilderQueryRule\n) => {\n const rule = { ...original };\n\n // @ts-ignore\n delete rule.id;\n\n if (\"rules\" in rule) {\n rule.rules = rule.rules.map((r) => clearNodeIds(r));\n }\n\n return rule;\n};\n\nexport const findNodeById = (\n id: React.Key,\n node: HvQueryBuilderQueryGroup | HvQueryBuilderQueryRule\n) => {\n if (node.id === id) {\n return node;\n }\n if (\"rules\" in node) {\n for (let i = 0; i < node.rules.length; ++i) {\n const rule = node.rules[i];\n\n const found = findNodeById(id, rule);\n if (found) {\n return found;\n }\n }\n }\n\n return null;\n};\n\nexport const findParentById = (\n id: React.Key,\n node: HvQueryBuilderQueryGroup | HvQueryBuilderQueryRule,\n parent?: HvQueryBuilderQueryGroup\n) => {\n if (node.id === id) {\n return parent ?? null;\n }\n\n if (\"rules\" in node) {\n const group = node;\n\n for (let i = 0; i < group.rules.length; ++i) {\n const rule = group.rules[i];\n\n const found = findParentById(id, rule, group);\n if (found) {\n return found;\n }\n }\n }\n\n return null;\n};\n"],"names":["isBigList","values","length","emptyRule","id","Math","random","emptyGroup","createEmptyRule","combinator","rules","clearNodeIds","original","rule","map","r","findNodeById","node","i","found","findParentById","parent","group"],"mappings":"AAEO,MAAMA,YAAYA,CAACC,WACxBA,UAAU,QAAQA,QAAQC,SAAS;AAE9B,MAAMC,YAAYA,OAAO;AAAA,EAC9BC,IAAIC,KAAKC,OAAO;AAClB;AAEaC,MAAAA,aAAaA,CAACC,kBAAkB,WAAW;AAAA,EACtDJ,IAAIC,KAAKC,OAAO;AAAA,EAChBG,YAAY;AAAA,EACZC,OAAOF,kBAAkB,CAACL,UAAU,CAAC,IAAI,CAAA;AAC3C;AAEaQ,MAAAA,eAAeA,CAC1BC,aACG;AACH,QAAMC,OAAO;AAAA,IAAE,GAAGD;AAAAA,EAAAA;AAGlB,SAAOC,KAAKT;AAEZ,MAAI,WAAWS,MAAM;AACnBA,SAAKH,QAAQG,KAAKH,MAAMI,IAAKC,CAAMJ,MAAAA,aAAaI,CAAC,CAAC;AAAA,EACpD;AAEOF,SAAAA;AACT;AAEaG,MAAAA,eAAeA,CAC1BZ,IACAa,SACG;AACCA,MAAAA,KAAKb,OAAOA,IAAI;AACXa,WAAAA;AAAAA,EACT;AACA,MAAI,WAAWA,MAAM;AACnB,aAASC,IAAI,GAAGA,IAAID,KAAKP,MAAMR,QAAQ,EAAEgB,GAAG;AACpCL,YAAAA,OAAOI,KAAKP,MAAMQ,CAAC;AAEnBC,YAAAA,QAAQH,aAAaZ,IAAIS,IAAI;AACnC,UAAIM,OAAO;AACFA,eAAAA;AAAAA,MACT;AAAA,IACF;AAAA,EACF;AAEO,SAAA;AACT;AAEO,MAAMC,iBAAiBA,CAC5BhB,IACAa,MACAI,WACG;AACCJ,MAAAA,KAAKb,OAAOA,IAAI;AAClB,WAAOiB,UAAU;AAAA,EACnB;AAEA,MAAI,WAAWJ,MAAM;AACnB,UAAMK,QAAQL;AAEd,aAASC,IAAI,GAAGA,IAAII,MAAMZ,MAAMR,QAAQ,EAAEgB,GAAG;AACrCL,YAAAA,OAAOS,MAAMZ,MAAMQ,CAAC;AAE1B,YAAMC,QAAQC,eAAehB,IAAIS,MAAMS,KAAK;AAC5C,UAAIH,OAAO;AACFA,eAAAA;AAAAA,MACT;AAAA,IACF;AAAA,EACF;AAEO,SAAA;AACT;"}
@@ -84,7 +84,7 @@ const reducer = (state, action) => {
84
84
  break;
85
85
  }
86
86
  }
87
- return state;
87
+ return query;
88
88
  };
89
89
  const reducer$1 = reducer;
90
90
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"reducer.js","sources":["../../../../../src/components/QueryBuilder/utils/reducer.tsx"],"sourcesContent":["import { emptyRule, emptyGroup, findNodeById, findParentById } from \"./index\";\n\nconst reducer = (state, action) => {\n const query = { ...state };\n\n switch (action.type) {\n case \"reset-query\": {\n return emptyGroup();\n }\n case \"reset-group\": {\n const group = findNodeById(action.id, query);\n if (group && \"rules\" in group) {\n group.rules = [emptyRule()];\n\n return query;\n }\n break;\n }\n case \"add-rule\": {\n const group = findNodeById(action.id, query);\n if (group && \"rules\" in group) {\n const rule = emptyRule();\n\n group.rules.push(rule);\n\n return query;\n }\n break;\n }\n case \"add-group\": {\n const group = findNodeById(action.id, query);\n if (group && \"rules\" in group) {\n group.rules.push(emptyGroup(true));\n\n return query;\n }\n break;\n }\n case \"remove-node\": {\n const parent = findParentById(action.id, query);\n if (parent) {\n parent.rules = parent.rules.filter((rule) => rule.id !== action.id);\n\n return query;\n }\n\n // reset query if deleting top node\n return emptyGroup();\n }\n case \"set-combinator\": {\n const node = findNodeById(action.id, query);\n if (node && \"combinator\" in node) {\n if (node.combinator !== action.combinator) {\n node.combinator = action.combinator;\n\n return query;\n }\n }\n break;\n }\n case \"set-attribute\": {\n const node = findNodeById(action.id, query);\n if (node && node.attribute !== action.attribute) {\n node.attribute = action.attribute ?? undefined;\n\n // we keep the operator and value unless the operator is explicitly null (or set)\n if (action.operator !== undefined) {\n node.operator = action.operator ?? undefined;\n node.value = action.value ?? undefined;\n }\n\n return query;\n }\n break;\n }\n case \"set-operator\": {\n const node = findNodeById(action.id, query);\n if (node && \"attribute\" in node) {\n if (node.operator !== action.operator) {\n node.operator = action.operator;\n if (action.value !== undefined) {\n node.value = action.value ?? undefined;\n }\n\n return query;\n }\n }\n break;\n }\n case \"set-value\": {\n const node = findNodeById(action.id, query);\n if (node && \"operator\" in node) {\n node.value = action.value ?? undefined;\n\n return query;\n }\n break;\n }\n\n default:\n }\n\n // just return existing state if nothing changed\n return state;\n};\n\nexport default reducer;\n"],"names":["reducer","state","action","query","type","emptyGroup","group","findNodeById","id","rules","emptyRule","rule","push","parent","findParentById","filter","node","combinator","attribute","undefined","operator","value"],"mappings":";AAEA,MAAMA,UAAUA,CAACC,OAAOC,WAAW;AACjC,QAAMC,QAAQ;AAAA,IAAE,GAAGF;AAAAA,EAAAA;AAEnB,UAAQC,OAAOE,MAAI;AAAA,IACjB,KAAK,eAAe;AAClB,aAAOC,WAAW;AAAA,IACpB;AAAA,IACA,KAAK,eAAe;AAClB,YAAMC,QAAQC,aAAaL,OAAOM,IAAIL,KAAK;AACvCG,UAAAA,SAAS,WAAWA,OAAO;AACvBG,cAAAA,QAAQ,CAACC,UAAAA,CAAW;AAEnBP,eAAAA;AAAAA,MACT;AACA;AAAA,IACF;AAAA,IACA,KAAK,YAAY;AACf,YAAMG,QAAQC,aAAaL,OAAOM,IAAIL,KAAK;AACvCG,UAAAA,SAAS,WAAWA,OAAO;AAC7B,cAAMK,OAAOD;AAEPD,cAAAA,MAAMG,KAAKD,IAAI;AAEdR,eAAAA;AAAAA,MACT;AACA;AAAA,IACF;AAAA,IACA,KAAK,aAAa;AAChB,YAAMG,QAAQC,aAAaL,OAAOM,IAAIL,KAAK;AACvCG,UAAAA,SAAS,WAAWA,OAAO;AAC7BA,cAAMG,MAAMG,KAAKP,WAAW,IAAI,CAAC;AAE1BF,eAAAA;AAAAA,MACT;AACA;AAAA,IACF;AAAA,IACA,KAAK,eAAe;AAClB,YAAMU,SAASC,eAAeZ,OAAOM,IAAIL,KAAK;AAC9C,UAAIU,QAAQ;AACHJ,eAAAA,QAAQI,OAAOJ,MAAMM,OAAQJ,UAASA,KAAKH,OAAON,OAAOM,EAAE;AAE3DL,eAAAA;AAAAA,MACT;AAGA,aAAOE,WAAW;AAAA,IACpB;AAAA,IACA,KAAK,kBAAkB;AACrB,YAAMW,OAAOT,aAAaL,OAAOM,IAAIL,KAAK;AACtCa,UAAAA,QAAQ,gBAAgBA,MAAM;AAC5BA,YAAAA,KAAKC,eAAef,OAAOe,YAAY;AACzCD,eAAKC,aAAaf,OAAOe;AAElBd,iBAAAA;AAAAA,QACT;AAAA,MACF;AACA;AAAA,IACF;AAAA,IACA,KAAK,iBAAiB;AACpB,YAAMa,OAAOT,aAAaL,OAAOM,IAAIL,KAAK;AAC1C,UAAIa,QAAQA,KAAKE,cAAchB,OAAOgB,WAAW;AAC1CA,aAAAA,YAAYhB,OAAOgB,aAAaC;AAGjCjB,YAAAA,OAAOkB,aAAaD,QAAW;AAC5BC,eAAAA,WAAWlB,OAAOkB,YAAYD;AAC9BE,eAAAA,QAAQnB,OAAOmB,SAASF;AAAAA,QAC/B;AAEOhB,eAAAA;AAAAA,MACT;AACA;AAAA,IACF;AAAA,IACA,KAAK,gBAAgB;AACnB,YAAMa,OAAOT,aAAaL,OAAOM,IAAIL,KAAK;AACtCa,UAAAA,QAAQ,eAAeA,MAAM;AAC3BA,YAAAA,KAAKI,aAAalB,OAAOkB,UAAU;AACrCJ,eAAKI,WAAWlB,OAAOkB;AACnBlB,cAAAA,OAAOmB,UAAUF,QAAW;AACzBE,iBAAAA,QAAQnB,OAAOmB,SAASF;AAAAA,UAC/B;AAEOhB,iBAAAA;AAAAA,QACT;AAAA,MACF;AACA;AAAA,IACF;AAAA,IACA,KAAK,aAAa;AAChB,YAAMa,OAAOT,aAAaL,OAAOM,IAAIL,KAAK;AACtCa,UAAAA,QAAQ,cAAcA,MAAM;AACzBK,aAAAA,QAAQnB,OAAOmB,SAASF;AAEtBhB,eAAAA;AAAAA,MACT;AACA;AAAA,IACF;AAAA,EAGF;AAGOF,SAAAA;AACT;AAEA,MAAA,YAAeD;"}
1
+ {"version":3,"file":"reducer.js","sources":["../../../../../src/components/QueryBuilder/utils/reducer.tsx"],"sourcesContent":["import { emptyRule, emptyGroup, findNodeById, findParentById } from \"./index\";\nimport { HvQueryBuilderQuery, QueryAction } from \"../types\";\n\nconst reducer = (state: HvQueryBuilderQuery, action: QueryAction) => {\n const query = { ...state };\n\n switch (action.type) {\n case \"reset-query\": {\n return emptyGroup();\n }\n case \"reset-group\": {\n const group = findNodeById(action.id, query);\n if (group && \"rules\" in group) {\n group.rules = [emptyRule()];\n\n return query;\n }\n break;\n }\n case \"add-rule\": {\n const group = findNodeById(action.id, query);\n if (group && \"rules\" in group) {\n const rule = emptyRule();\n\n group.rules.push(rule);\n\n return query;\n }\n break;\n }\n case \"add-group\": {\n const group = findNodeById(action.id, query);\n if (group && \"rules\" in group) {\n group.rules.push(emptyGroup(true));\n\n return query;\n }\n break;\n }\n case \"remove-node\": {\n const parent = findParentById(action.id, query);\n if (parent) {\n parent.rules = parent.rules.filter((rule) => rule.id !== action.id);\n\n return query;\n }\n\n // reset query if deleting top node\n return emptyGroup();\n }\n case \"set-combinator\": {\n const node = findNodeById(action.id, query);\n if (node && \"combinator\" in node) {\n if (node.combinator !== action.combinator) {\n node.combinator = action.combinator;\n\n return query;\n }\n }\n break;\n }\n case \"set-attribute\": {\n const node = findNodeById(action.id, query);\n if (node && node.attribute !== action.attribute) {\n node.attribute = action.attribute ?? undefined;\n\n // we keep the operator and value unless the operator is explicitly null (or set)\n if (action.operator !== undefined) {\n node.operator = action.operator ?? undefined;\n node.value = action.value ?? undefined;\n }\n\n return query;\n }\n break;\n }\n case \"set-operator\": {\n const node = findNodeById(action.id, query);\n if (node && \"attribute\" in node) {\n if (node.operator !== action.operator) {\n node.operator = action.operator;\n if (action.value !== undefined) {\n node.value = action.value ?? undefined;\n }\n\n return query;\n }\n }\n break;\n }\n case \"set-value\": {\n const node = findNodeById(action.id, query);\n if (node && \"operator\" in node) {\n node.value = action.value ?? undefined;\n\n return query;\n }\n break;\n }\n\n default:\n }\n\n // Return existing state if nothing changed\n return query;\n};\n\nexport default reducer;\n"],"names":["reducer","state","action","query","type","emptyGroup","group","findNodeById","id","rules","emptyRule","rule","push","parent","findParentById","filter","node","combinator","attribute","undefined","operator","value"],"mappings":";AAGA,MAAMA,UAAUA,CAACC,OAA4BC,WAAwB;AACnE,QAAMC,QAAQ;AAAA,IAAE,GAAGF;AAAAA,EAAAA;AAEnB,UAAQC,OAAOE,MAAI;AAAA,IACjB,KAAK,eAAe;AAClB,aAAOC,WAAW;AAAA,IACpB;AAAA,IACA,KAAK,eAAe;AAClB,YAAMC,QAAQC,aAAaL,OAAOM,IAAIL,KAAK;AACvCG,UAAAA,SAAS,WAAWA,OAAO;AACvBG,cAAAA,QAAQ,CAACC,UAAAA,CAAW;AAEnBP,eAAAA;AAAAA,MACT;AACA;AAAA,IACF;AAAA,IACA,KAAK,YAAY;AACf,YAAMG,QAAQC,aAAaL,OAAOM,IAAIL,KAAK;AACvCG,UAAAA,SAAS,WAAWA,OAAO;AAC7B,cAAMK,OAAOD;AAEPD,cAAAA,MAAMG,KAAKD,IAAI;AAEdR,eAAAA;AAAAA,MACT;AACA;AAAA,IACF;AAAA,IACA,KAAK,aAAa;AAChB,YAAMG,QAAQC,aAAaL,OAAOM,IAAIL,KAAK;AACvCG,UAAAA,SAAS,WAAWA,OAAO;AAC7BA,cAAMG,MAAMG,KAAKP,WAAW,IAAI,CAAC;AAE1BF,eAAAA;AAAAA,MACT;AACA;AAAA,IACF;AAAA,IACA,KAAK,eAAe;AAClB,YAAMU,SAASC,eAAeZ,OAAOM,IAAIL,KAAK;AAC9C,UAAIU,QAAQ;AACHJ,eAAAA,QAAQI,OAAOJ,MAAMM,OAAQJ,UAASA,KAAKH,OAAON,OAAOM,EAAE;AAE3DL,eAAAA;AAAAA,MACT;AAGA,aAAOE,WAAW;AAAA,IACpB;AAAA,IACA,KAAK,kBAAkB;AACrB,YAAMW,OAAOT,aAAaL,OAAOM,IAAIL,KAAK;AACtCa,UAAAA,QAAQ,gBAAgBA,MAAM;AAC5BA,YAAAA,KAAKC,eAAef,OAAOe,YAAY;AACzCD,eAAKC,aAAaf,OAAOe;AAElBd,iBAAAA;AAAAA,QACT;AAAA,MACF;AACA;AAAA,IACF;AAAA,IACA,KAAK,iBAAiB;AACpB,YAAMa,OAAOT,aAAaL,OAAOM,IAAIL,KAAK;AAC1C,UAAIa,QAAQA,KAAKE,cAAchB,OAAOgB,WAAW;AAC1CA,aAAAA,YAAYhB,OAAOgB,aAAaC;AAGjCjB,YAAAA,OAAOkB,aAAaD,QAAW;AAC5BC,eAAAA,WAAWlB,OAAOkB,YAAYD;AAC9BE,eAAAA,QAAQnB,OAAOmB,SAASF;AAAAA,QAC/B;AAEOhB,eAAAA;AAAAA,MACT;AACA;AAAA,IACF;AAAA,IACA,KAAK,gBAAgB;AACnB,YAAMa,OAAOT,aAAaL,OAAOM,IAAIL,KAAK;AACtCa,UAAAA,QAAQ,eAAeA,MAAM;AAC3BA,YAAAA,KAAKI,aAAalB,OAAOkB,UAAU;AACrCJ,eAAKI,WAAWlB,OAAOkB;AACnBlB,cAAAA,OAAOmB,UAAUF,QAAW;AACzBE,iBAAAA,QAAQnB,OAAOmB,SAASF;AAAAA,UAC/B;AAEOhB,iBAAAA;AAAAA,QACT;AAAA,MACF;AACA;AAAA,IACF;AAAA,IACA,KAAK,aAAa;AAChB,YAAMa,OAAOT,aAAaL,OAAOM,IAAIL,KAAK;AACtCa,UAAAA,QAAQ,cAAcA,MAAM;AACzBK,aAAAA,QAAQnB,OAAOmB,SAASF;AAEtBhB,eAAAA;AAAAA,MACT;AACA;AAAA,IACF;AAAA,EAGF;AAGOA,SAAAA;AACT;AAEA,MAAA,YAAeH;"}
@@ -4742,7 +4742,7 @@ export declare interface HvProviderProps {
4742
4742
  }
4743
4743
 
4744
4744
  /**
4745
- * **HvQueryBuilder** component allows you to create conditions and group them using logical operators.
4745
+ * This component allows you to create conditions and group them using logical operators.
4746
4746
  * It outputs a structured set of rules which can be easily parsed to create SQL/NoSQL/whatever queries.
4747
4747
  */
4748
4748
  export declare const HvQueryBuilder: (props: HvQueryBuilderProps) => JSX_2.Element;
@@ -4751,8 +4751,10 @@ export declare interface HvQueryBuilderAttribute extends Record<string, unknown>
4751
4751
  id?: string;
4752
4752
  label: string;
4753
4753
  type: string;
4754
- value?: unknown;
4755
- order?: number;
4754
+ }
4755
+
4756
+ declare interface HvQueryBuilderChangedQuery extends Omit<HvQueryBuilderQuery, "id" | "rules"> {
4757
+ rules: Array<Omit<HvQueryBuilderQueryRule, "id"> | Omit<HvQueryBuilderQueryGroup, "id">>;
4756
4758
  }
4757
4759
 
4758
4760
  export declare type HvQueryBuilderClasses = ExtractNames<typeof useClasses_114>;
@@ -5038,54 +5040,39 @@ export declare interface HvQueryBuilderNumericRange {
5038
5040
  }
5039
5041
 
5040
5042
  export declare interface HvQueryBuilderProps {
5043
+ /** The query attribute types. */
5041
5044
  attributes?: Record<string, HvQueryBuilderAttribute>;
5042
- /**
5043
- * The query rules operators by attribute type and combinator.
5044
- */
5045
+ /** The query rules operators by attribute type and combinator. */
5045
5046
  operators?: Record<string, HvQueryBuilderQueryOperator[]>;
5046
- /**
5047
- * The query combinators operands.
5048
- */
5047
+ /** The query combinators operands. */
5049
5048
  combinators?: HvQueryBuilderQueryCombinator[];
5050
- /**
5051
- * The initial query representation.
5052
- */
5049
+ /** The initial query representation. */
5053
5050
  query?: HvQueryBuilderQuery;
5054
- /**
5055
- * Callback fired when query changes.
5056
- * @param value - the query representation.
5057
- */
5058
- onChange?: (value: HvQueryBuilderQuery) => void;
5059
- /**
5060
- * Max depth of nested query groups.
5061
- */
5051
+ /** Callback fired when query changes. */
5052
+ onChange?: (value: HvQueryBuilderChangedQuery) => void;
5053
+ /** Max depth of nested query groups. */
5062
5054
  maxDepth?: number;
5063
- /**
5064
- * An object containing all the labels.
5065
- */
5055
+ /** Object containing all the labels. */
5066
5056
  labels?: HvQueryBuilderLabels;
5067
- /**
5068
- * A flag indicating if the Query Builder is in read only mode.
5069
- */
5057
+ /** Whether the query builder is in read-only mode. */
5070
5058
  readOnly?: boolean;
5071
- /**
5072
- * Override or extend the styles applied to the component.
5073
- * See CSS API tab for more details.
5074
- */
5059
+ /** A Jss Object used to override or extend the styles applied. */
5075
5060
  classes?: HvQueryBuilderClasses;
5076
5061
  }
5077
5062
 
5078
- export declare interface HvQueryBuilderQuery {
5079
- id?: number;
5080
- combinator: string;
5081
- rules: Array<HvQueryBuilderQueryRule>;
5082
- }
5063
+ export declare type HvQueryBuilderQuery = HvQueryBuilderQueryGroup;
5083
5064
 
5084
5065
  export declare interface HvQueryBuilderQueryCombinator {
5085
5066
  operand: string;
5086
5067
  label: string;
5087
5068
  }
5088
5069
 
5070
+ declare interface HvQueryBuilderQueryGroup {
5071
+ id: React.Key;
5072
+ combinator: string;
5073
+ rules: Array<HvQueryBuilderQueryRule | HvQueryBuilderQueryGroup>;
5074
+ }
5075
+
5089
5076
  export declare interface HvQueryBuilderQueryOperator {
5090
5077
  operator: string;
5091
5078
  label: string;
@@ -5093,7 +5080,7 @@ export declare interface HvQueryBuilderQueryOperator {
5093
5080
  }
5094
5081
 
5095
5082
  export declare interface HvQueryBuilderQueryRule {
5096
- id?: number | string;
5083
+ id: React.Key;
5097
5084
  attribute?: string;
5098
5085
  operator?: string;
5099
5086
  value?: HvQueryBuilderQueryRuleValue;
@@ -7635,6 +7622,8 @@ export declare const queryBuilderClasses: {
7635
7622
  subGroup: "HvQueryBuilder-subGroup";
7636
7623
  subRulesContainer: "HvQueryBuilder-subRulesContainer";
7637
7624
  topActionButtonContainer: "HvQueryBuilder-topActionButtonContainer";
7625
+ createConditionButton: "HvQueryBuilder-createConditionButton";
7626
+ createGroupButton: "HvQueryBuilder-createGroupButton";
7638
7627
  removeButton: "HvQueryBuilder-removeButton";
7639
7628
  combinator: "HvQueryBuilder-combinator";
7640
7629
  topCombinator: "HvQueryBuilder-topCombinator";
@@ -8445,13 +8434,15 @@ declare const useClasses_113: (classesProp?: Partial<Record<"root", string>>, ad
8445
8434
  cx: (...args: any) => string;
8446
8435
  };
8447
8436
 
8448
- declare const useClasses_114: (classesProp?: Partial<Record<"root" | "topGroup" | "subGroup" | "subRulesContainer" | "topActionButtonContainer" | "removeButton" | "combinator" | "topCombinator" | "combinatorButton" | "topRemoveButton" | "topRemoveButtonDisabled" | "rulesContainer" | "actionButtonContainer" | "topRulesContainer" | "buttonBackground", string>>, addStatic?: boolean) => {
8437
+ declare const useClasses_114: (classesProp?: Partial<Record<"root" | "topGroup" | "subGroup" | "subRulesContainer" | "topActionButtonContainer" | "createConditionButton" | "createGroupButton" | "removeButton" | "combinator" | "topCombinator" | "combinatorButton" | "topRemoveButton" | "topRemoveButtonDisabled" | "rulesContainer" | "actionButtonContainer" | "topRulesContainer" | "buttonBackground", string>>, addStatic?: boolean) => {
8449
8438
  classes: {
8450
8439
  root: string;
8451
8440
  topGroup: string;
8452
8441
  subGroup: string;
8453
8442
  subRulesContainer: string;
8454
8443
  topActionButtonContainer: string;
8444
+ createConditionButton: string;
8445
+ createGroupButton: string;
8455
8446
  removeButton: string;
8456
8447
  combinator: string;
8457
8448
  topCombinator: string;