@hitachivantara/uikit-react-core 5.36.10 → 5.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) 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/Dropdown/Dropdown.cjs +4 -1
  4. package/dist/cjs/components/Dropdown/Dropdown.cjs.map +1 -1
  5. package/dist/cjs/components/QueryBuilder/ConfirmationDialog/ConfirmationDialog.cjs.map +1 -1
  6. package/dist/cjs/components/QueryBuilder/Context.cjs +15 -2
  7. package/dist/cjs/components/QueryBuilder/Context.cjs.map +1 -1
  8. package/dist/cjs/components/QueryBuilder/QueryBuilder.cjs +35 -25
  9. package/dist/cjs/components/QueryBuilder/QueryBuilder.cjs.map +1 -1
  10. package/dist/cjs/components/QueryBuilder/QueryBuilder.styles.cjs +10 -0
  11. package/dist/cjs/components/QueryBuilder/QueryBuilder.styles.cjs.map +1 -1
  12. package/dist/cjs/components/QueryBuilder/Rule/Attribute/Attribute.cjs +2 -3
  13. package/dist/cjs/components/QueryBuilder/Rule/Attribute/Attribute.cjs.map +1 -1
  14. package/dist/cjs/components/QueryBuilder/Rule/Operator/Operator.cjs +2 -3
  15. package/dist/cjs/components/QueryBuilder/Rule/Operator/Operator.cjs.map +1 -1
  16. package/dist/cjs/components/QueryBuilder/Rule/Rule.cjs +16 -14
  17. package/dist/cjs/components/QueryBuilder/Rule/Rule.cjs.map +1 -1
  18. package/dist/cjs/components/QueryBuilder/Rule/Value/BooleanValue/BooleanValue.cjs +1 -2
  19. package/dist/cjs/components/QueryBuilder/Rule/Value/BooleanValue/BooleanValue.cjs.map +1 -1
  20. package/dist/cjs/components/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.cjs +1 -2
  21. package/dist/cjs/components/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.cjs.map +1 -1
  22. package/dist/cjs/components/QueryBuilder/Rule/Value/DateTimeValue/utils.cjs.map +1 -1
  23. package/dist/cjs/components/QueryBuilder/Rule/Value/NumericValue/NumericValue.cjs +4 -5
  24. package/dist/cjs/components/QueryBuilder/Rule/Value/NumericValue/NumericValue.cjs.map +1 -1
  25. package/dist/cjs/components/QueryBuilder/Rule/Value/TextValue/TextValue.cjs +1 -2
  26. package/dist/cjs/components/QueryBuilder/Rule/Value/TextValue/TextValue.cjs.map +1 -1
  27. package/dist/cjs/components/QueryBuilder/Rule/Value/Value.cjs +8 -3
  28. package/dist/cjs/components/QueryBuilder/Rule/Value/Value.cjs.map +1 -1
  29. package/dist/cjs/components/QueryBuilder/RuleGroup/RuleGroup.cjs +19 -24
  30. package/dist/cjs/components/QueryBuilder/RuleGroup/RuleGroup.cjs.map +1 -1
  31. package/dist/cjs/components/QueryBuilder/utils/index.cjs.map +1 -1
  32. package/dist/cjs/components/QueryBuilder/utils/reducer.cjs +1 -1
  33. package/dist/cjs/components/QueryBuilder/utils/reducer.cjs.map +1 -1
  34. package/dist/cjs/index.cjs +1 -0
  35. package/dist/cjs/index.cjs.map +1 -1
  36. package/dist/cjs/providers/Provider.cjs +11 -3
  37. package/dist/cjs/providers/Provider.cjs.map +1 -1
  38. package/dist/esm/components/CheckBoxGroup/CheckBoxGroup.js +3 -1
  39. package/dist/esm/components/CheckBoxGroup/CheckBoxGroup.js.map +1 -1
  40. package/dist/esm/components/Dropdown/Dropdown.js +5 -2
  41. package/dist/esm/components/Dropdown/Dropdown.js.map +1 -1
  42. package/dist/esm/components/QueryBuilder/ConfirmationDialog/ConfirmationDialog.js.map +1 -1
  43. package/dist/esm/components/QueryBuilder/Context.js +17 -4
  44. package/dist/esm/components/QueryBuilder/Context.js.map +1 -1
  45. package/dist/esm/components/QueryBuilder/QueryBuilder.js +37 -27
  46. package/dist/esm/components/QueryBuilder/QueryBuilder.js.map +1 -1
  47. package/dist/esm/components/QueryBuilder/QueryBuilder.styles.js +10 -0
  48. package/dist/esm/components/QueryBuilder/QueryBuilder.styles.js.map +1 -1
  49. package/dist/esm/components/QueryBuilder/Rule/Attribute/Attribute.js +3 -4
  50. package/dist/esm/components/QueryBuilder/Rule/Attribute/Attribute.js.map +1 -1
  51. package/dist/esm/components/QueryBuilder/Rule/Operator/Operator.js +4 -5
  52. package/dist/esm/components/QueryBuilder/Rule/Operator/Operator.js.map +1 -1
  53. package/dist/esm/components/QueryBuilder/Rule/Rule.js +18 -16
  54. package/dist/esm/components/QueryBuilder/Rule/Rule.js.map +1 -1
  55. package/dist/esm/components/QueryBuilder/Rule/Value/BooleanValue/BooleanValue.js +3 -4
  56. package/dist/esm/components/QueryBuilder/Rule/Value/BooleanValue/BooleanValue.js.map +1 -1
  57. package/dist/esm/components/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.js +3 -4
  58. package/dist/esm/components/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.js.map +1 -1
  59. package/dist/esm/components/QueryBuilder/Rule/Value/DateTimeValue/utils.js.map +1 -1
  60. package/dist/esm/components/QueryBuilder/Rule/Value/NumericValue/NumericValue.js +6 -7
  61. package/dist/esm/components/QueryBuilder/Rule/Value/NumericValue/NumericValue.js.map +1 -1
  62. package/dist/esm/components/QueryBuilder/Rule/Value/TextValue/TextValue.js +3 -4
  63. package/dist/esm/components/QueryBuilder/Rule/Value/TextValue/TextValue.js.map +1 -1
  64. package/dist/esm/components/QueryBuilder/Rule/Value/Value.js +10 -5
  65. package/dist/esm/components/QueryBuilder/Rule/Value/Value.js.map +1 -1
  66. package/dist/esm/components/QueryBuilder/RuleGroup/RuleGroup.js +21 -26
  67. package/dist/esm/components/QueryBuilder/RuleGroup/RuleGroup.js.map +1 -1
  68. package/dist/esm/components/QueryBuilder/utils/index.js.map +1 -1
  69. package/dist/esm/components/QueryBuilder/utils/reducer.js +1 -1
  70. package/dist/esm/components/QueryBuilder/utils/reducer.js.map +1 -1
  71. package/dist/esm/index.js +2 -1
  72. package/dist/esm/providers/Provider.js +11 -3
  73. package/dist/esm/providers/Provider.js.map +1 -1
  74. package/dist/types/index.d.ts +93 -37
  75. package/package.json +5 -5
@@ -1,8 +1,8 @@
1
1
  import { jsxs, Fragment, jsx } from "@emotion/react/jsx-runtime";
2
- import { useContext, useCallback } from "react";
2
+ import { 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 { useQueryBuilderContext } 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,15 +21,15 @@ const RuleGroup = ({
21
21
  classes,
22
22
  cx
23
23
  } = useClasses(classesProp);
24
- const context = useContext(QueryBuilderContext);
25
24
  const {
26
25
  dispatchAction,
27
26
  askAction,
28
27
  maxDepth,
29
28
  combinators,
30
29
  labels,
31
- readOnly
32
- } = context;
30
+ readOnly,
31
+ disableConfirmation
32
+ } = useQueryBuilderContext();
33
33
  const normalizedMaxDepth = maxDepth - 1;
34
34
  const actionButtons = /* @__PURE__ */ jsxs(Fragment, { children: [
35
35
  /* @__PURE__ */ jsx("div", { className: classes.buttonBackground, children: /* @__PURE__ */ jsx(HvButton, { variant: "secondarySubtle", onClick: () => {
@@ -61,22 +61,23 @@ const RuleGroup = ({
61
61
  }), children: [
62
62
  /* @__PURE__ */ jsxs(HvGrid, { container: true, children: [
63
63
  /* @__PURE__ */ jsx(HvGrid, { item: true, children: /* @__PURE__ */ jsx(HvMultiButton, { className: cx(classes.combinator, classes.topCombinator), disabled: readOnly, children: combinators && combinators.map((item) => /* @__PURE__ */ jsx(HvButton, { className: classes.combinatorButton, selected: item.operand === combinator, onClick: () => item.operand && onClickCombinator(item), disabled: readOnly, size: "xs", children: item.label }, item.operand)) }) }),
64
- /* @__PURE__ */ jsx(HvGrid, { item: true, children: /* @__PURE__ */ jsx("div", { className: cx(classes.buttonBackground, classes.topRemoveButton), children: /* @__PURE__ */ jsx(HvButton, { icon: true, className: classes.removeButton, onClick: () => {
65
- askAction({
66
- actions: [{
67
- type: "remove-node",
68
- id
69
- }],
70
- dialog: level === 0 && labels.query?.delete != null ? labels.query.delete : labels.group.delete
71
- });
72
- }, "aria-label": level === 0 && labels.query?.delete?.ariaLabel ? labels.query?.delete?.ariaLabel : labels.group.delete.ariaLabel, disabled: readOnly, children: /* @__PURE__ */ jsx(DeleteIcon, {}) }) }) })
64
+ /* @__PURE__ */ jsx(HvGrid, { item: true, children: /* @__PURE__ */ jsx("div", { className: cx(classes.buttonBackground, classes.topRemoveButton), children: /* @__PURE__ */ jsx(HvButton, { icon: true, className: classes.removeButton, onClick: () => disableConfirmation ? dispatchAction({
65
+ type: "remove-node",
66
+ id
67
+ }) : askAction({
68
+ actions: [{
69
+ type: "remove-node",
70
+ id
71
+ }],
72
+ dialog: level === 0 && labels.query?.delete != null ? labels.query.delete : labels.group.delete
73
+ }), "aria-label": level === 0 && labels.query?.delete?.ariaLabel ? labels.query?.delete?.ariaLabel : labels.group.delete.ariaLabel, disabled: readOnly, children: /* @__PURE__ */ jsx(DeleteIcon, {}) }) }) })
73
74
  ] }),
74
75
  rules?.length > 0 && /* @__PURE__ */ jsx("div", { className: cx(classes.rulesContainer, {
75
76
  [classes.subRulesContainer]: level > 0,
76
77
  [classes.topRulesContainer]: level === 0
77
78
  }), children: rules.map((rule, index) => {
78
79
  if ("combinator" in rule) {
79
- return /* @__PURE__ */ jsx(RuleGroup, { level: level + 1, ...rule, id: rule.id, classes }, rule.id ?? index);
80
+ return /* @__PURE__ */ jsx(RuleGroup, { level: level + 1, ...rule, id: rule.id, classes }, rule.id);
80
81
  }
81
82
  const isInvalid = combinator === "and" && rules.some((r, i) => {
82
83
  if ("attribute" in r) {
@@ -86,29 +87,23 @@ const RuleGroup = ({
86
87
  }
87
88
  return false;
88
89
  });
89
- return /* @__PURE__ */ jsx(Rule, { ...rule, isInvalid, id: rule.id, combinator }, rule.id ?? index);
90
+ return /* @__PURE__ */ jsx(Rule, { ...rule, isInvalid, id: rule.id, combinator }, rule.id);
90
91
  }) }),
91
92
  rules?.length === 0 && /* @__PURE__ */ jsx(HvEmptyState, { title: labels.empty?.title, message: /* @__PURE__ */ jsxs(Fragment, { children: [
92
- /* @__PURE__ */ jsx(HvTypography, { variant: "link", component: "a", onClick: () => {
93
+ /* @__PURE__ */ jsx(HvTypography, { link: true, component: "button", onClick: () => {
93
94
  dispatchAction({
94
95
  type: "add-rule",
95
96
  id
96
97
  });
97
- }, style: {
98
- cursor: "pointer",
99
- textDecoration: "underline"
100
- }, children: `${labels.empty?.createCondition}` }),
98
+ }, className: classes.createConditionButton, children: `${labels.empty?.createCondition}` }),
101
99
  level <= normalizedMaxDepth && /* @__PURE__ */ jsxs(Fragment, { children: [
102
100
  `${labels.empty?.spacer}`,
103
- /* @__PURE__ */ jsx(HvTypography, { variant: "link", component: "a", onClick: () => {
101
+ /* @__PURE__ */ jsx(HvTypography, { link: true, component: "button", onClick: () => {
104
102
  dispatchAction({
105
103
  type: "add-group",
106
104
  id
107
105
  });
108
- }, style: {
109
- cursor: "pointer",
110
- textDecoration: "underline"
111
- }, children: `${labels.empty?.createGroup}` })
106
+ }, className: classes.createGroupButton, children: `${labels.empty?.createGroup}` })
112
107
  ] })
113
108
  ] }), icon: /* @__PURE__ */ jsx(Info, {}) }),
114
109
  /* @__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 } 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 { useQueryBuilderContext } 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 {\n dispatchAction,\n askAction,\n maxDepth,\n combinators,\n labels,\n readOnly,\n disableConfirmation,\n } = useQueryBuilderContext();\n\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 disableConfirmation\n ? dispatchAction({ type: \"remove-node\", id })\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","dispatchAction","askAction","maxDepth","combinators","labels","readOnly","disableConfirmation","useQueryBuilderContext","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":";;;;;;;;;;;;AAwBO,MAAMA,YAAYA,CAAC;AAAA,EACxBC,QAAQ;AAAA,EACRC;AAAAA,EACAC,aAAa;AAAA,EACbC,QAAQ,CAAE;AAAA,EACVC,SAASC;AACK,MAAM;AACd,QAAA;AAAA,IAAED;AAAAA,IAASE;AAAAA,EAAAA,IAAOC,WAAWF,WAAW;AAExC,QAAA;AAAA,IACJG;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,MACEC,uBAAuB;AAE3B,QAAMC,qBAAqBN,WAAW;AAEtC,QAAMO,gBAEF,qBAAA,UAAA,EAAA,UAAA;AAAA,IAAC,oBAAA,OAAA,EAAI,WAAWb,QAAQc,kBACtB,8BAAC,UACC,EAAA,SAAQ,mBACR,SAAS,MAAM;AACE,qBAAA;AAAA,QAAEC,MAAM;AAAA,QAAYlB;AAAAA,MAAAA,CAAI;AAAA,IACzC,GACA,UAAUY,UACV,+BAAY,UAEXb,UAAU,UAAA,KAAKY,OAAOQ,OAAOC,SAASC,SAAS,OAC5CV,OAAOQ,OAAOC,SAASC,QACvBV,OAAOW,MAAMF,QAAQC,MAAAA,CAC3B,EACF,CAAA;AAAA,IACCtB,SAASgB,sBACP,oBAAA,OAAA,EAAI,WAAWZ,QAAQc,kBACtB,UAAA,oBAAC,UACC,EAAA,SAAQ,mBACR,SAAS,MAAM;AACE,qBAAA;AAAA,QAAEC,MAAM;AAAA,QAAalB;AAAAA,MAAAA,CAAI;AAAA,IAC1C,GACA,UAAUY,UACV,+BAAY,UAEXb,UAAU,UAAA,KAAKY,OAAOQ,OAAOI,UAAUF,SAAS,OAC7CV,OAAOQ,OAAOI,UAAUF,QACxBV,OAAOW,MAAMC,SAASF,MAAAA,CAC5B,EACF,CAAA;AAAA,EAEJ,EAAA,CAAA;AAGF,QAAMG,aAAaC,YACjB,MACG,oBAAA,QAAA,EAAO,WAAWpB,GAAG;AAAA,IAAE,CAACF,QAAQuB,uBAAuB,GAAGd;AAAAA,EAAAA,CAAU,EACtE,CAAA,GACDb,UAAU,KAAKY,OAAOQ,OAAOQ,QAAQC,UACjCjB,OAAOQ,OAAOQ,QAAQC,UACtBjB,OAAOW,MAAMK,OAAOC,SACxB,KACF;AAEMC,QAAAA,oBAAoBC,YACxB,CAACC,SAAwC;AACxB,mBAAA;AAAA,MACbb,MAAM;AAAA,MACNlB;AAAAA,MACAC,YAAY8B,KAAKC;AAAAA,IAAAA,CAClB;AAAA,EAAA,GAEH,CAACzB,gBAAgBP,EAAE,CACrB;AAEA,SACG,qBAAA,OAAA,EACC,WAAWK,GAAGF,QAAQ8B,MAAM;AAAA,IAC1B,CAAC9B,QAAQ+B,QAAQ,GAAGnC,UAAU;AAAA,IAC9B,CAACI,QAAQgC,QAAQ,GAAGpC,QAAQ;AAAA,EAC7B,CAAA,GAED,UAAA;AAAA,IAAC,qBAAA,QAAA,EAAO,WAAS,MACf,UAAA;AAAA,MAAC,oBAAA,QAAA,EAAO,MAAI,MACV,UAAA,oBAAC,iBACC,WAAWM,GAAGF,QAAQF,YAAYE,QAAQiC,aAAa,GACvD,UAAUxB,UAETF,UACCA,eAAAA,YAAY2B,IAAKN,CACf,SAAA,oBAAC,YAEC,WAAW5B,QAAQmC,kBACnB,UAAUP,KAAKC,YAAY/B,YAC3B,SAAS,MAAM8B,KAAKC,WAAWH,kBAAkBE,IAAI,GACrD,UAAUnB,UACV,MAAK,MAEJmB,UAAKV,KAAAA,MAAAA,GAPDU,KAAKC,OAQZ,CACD,GACL,EACF,CAAA;AAAA,MACA,oBAAC,UAAO,MAAI,MACV,8BAAC,OACC,EAAA,WAAW3B,GAAGF,QAAQc,kBAAkBd,QAAQoC,eAAe,GAE/D,UAAA,oBAAC,UACC,EAAA,MAAI,MACJ,WAAWpC,QAAQqC,cACnB,SAAS,MACP3B,sBACIN,eAAe;AAAA,QAAEW,MAAM;AAAA,QAAelB;AAAAA,MAAI,CAAA,IAC1CQ,UAAU;AAAA,QACRiC,SAAS,CAAC;AAAA,UAAEvB,MAAM;AAAA,UAAelB;AAAAA,QAAAA,CAAI;AAAA,QACrC0C,QACE3C,UAAU,KAAKY,OAAOQ,OAAOQ,UAAU,OACnChB,OAAOQ,MAAMQ,SACbhB,OAAOW,MAAMK;AAAAA,MACpB,CAAA,GAEP,cACE5B,UAAU,KAAKY,OAAOQ,OAAOQ,QAAQgB,YACjChC,OAAOQ,OAAOQ,QAAQgB,YACtBhC,OAAOW,MAAMK,OAAOgB,WAE1B,UAAU/B,UAEV,UAAC,oBAAA,YAAA,CAAU,CAAA,GACb,EAAA,CACF,EACF,CAAA;AAAA,IAAA,GACF;AAAA,IACCV,OAAO0C,SAAS,KACf,oBAAC,SACC,WAAWvC,GAAGF,QAAQ0C,gBAAgB;AAAA,MACpC,CAAC1C,QAAQ2C,iBAAiB,GAAG/C,QAAQ;AAAA,MACrC,CAACI,QAAQ4C,iBAAiB,GAAGhD,UAAU;AAAA,IAAA,CACxC,GAEAG,UAAAA,MAAMmC,IAAI,CAACW,MAAMC,UAAU;AAC1B,UAAI,gBAAgBD,MAAM;AACxB,eACG,oBAAA,WAAA,EAEC,OAAOjD,QAAQ,GACf,GAAIiD,MACJ,IAAIA,KAAKhD,IACT,QAJKgD,GAAAA,KAAKhD,EAKV;AAAA,MAEN;AAEA,YAAMkD,YACJjD,eAAe,SACfC,MAAMiD,KAAK,CAACC,GAAGC,MAAM;AACnB,YAAI,eAAeD,GAAG;AAElBA,cAAAA,EAAEE,cAAcN,KAAKM,aACrBF,EAAEpD,OAAOgD,KAAKhD,MACdqD,IAAIJ,OACJ;AACO,mBAAA;AAAA,UACT;AAAA,QACF;AACO,eAAA;AAAA,MAAA,CACR;AAGD,aAAA,oBAAC,MAEC,EAAA,GAAID,MACJ,WACA,IAAIA,KAAKhD,IACT,WAJKgD,GAAAA,KAAKhD,EAKV;AAAA,IAEL,CAAA,GACH;AAAA,IAEDE,OAAO0C,WAAW,KAChB,oBAAA,cAAA,EACC,OAAOjC,OAAO4C,OAAOC,OACrB,SAEI,qBAAA,UAAA,EAAA,UAAA;AAAA,MAAA,oBAAC,gBACC,MAAI,MACJ,WAAU,UACV,SAAS,MAAM;AACE,uBAAA;AAAA,UAAEtC,MAAM;AAAA,UAAYlB;AAAAA,QAAAA,CAAI;AAAA,MAAA,GAEzC,WAAWG,QAAQsD,uBAEjB,aAAE9C,OAAO4C,OAAOG,eAAgB,IACpC;AAAA,MACC3D,SAASgB,sBAEJ,qBAAA,UAAA,EAAA,UAAA;AAAA,QAAEJ,GAAAA,OAAO4C,OAAOI,MAAO;AAAA,4BACxB,cACC,EAAA,MAAI,MACJ,WAAU,UACV,SAAS,MAAM;AACE,yBAAA;AAAA,YAAEzC,MAAM;AAAA,YAAalB;AAAAA,UAAAA,CAAI;AAAA,QAAA,GAE1C,WAAWG,QAAQyD,mBAEjB,aAAEjD,OAAO4C,OAAOM,WAAY,IAChC;AAAA,MAAA,GACF;AAAA,IAAA,EAEJ,CAAA,GAEF,MAAO,oBAAA,MAAA,CAAA,CAAO,EAEjB,CAAA;AAAA,wBACA,QAAO,EAAA,WAAS,MACf,UAAA,oBAAC,UACC,MAAI,MACJ,WAAWxD,GACTF,QAAQ2D,uBACR3D,QAAQ4D,wBACV,GAEC/C,wBACH,CAAA,GACF;AAAA,EACF,EAAA,CAAA;AAEJ;"}
@@ -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 { Reducer } from \"react\";\n\nimport { emptyRule, emptyGroup, findNodeById, findParentById } from \"./index\";\nimport { HvQueryBuilderQuery, QueryAction } from \"../types\";\n\nconst reducer: Reducer<HvQueryBuilderQuery, QueryAction> = (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 // 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":";AAKA,MAAMA,UAAqDA,CAACC,OAAOC,WAAW;AAC5E,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;"}
package/dist/esm/index.js CHANGED
@@ -248,7 +248,7 @@ import { staticClasses as staticClasses107 } from "./components/InlineEditor/Inl
248
248
  import { HvInlineEditor } from "./components/InlineEditor/InlineEditor.js";
249
249
  import { staticClasses as staticClasses108 } from "./components/TimeAgo/TimeAgo.styles.js";
250
250
  import { HvTimeAgo } from "./components/TimeAgo/TimeAgo.js";
251
- import { defaultCombinators, defaultLabels, defaultOperators } from "./components/QueryBuilder/Context.js";
251
+ import { defaultCombinators, defaultLabels, defaultOperators, useQueryBuilderContext } from "./components/QueryBuilder/Context.js";
252
252
  import { staticClasses as staticClasses109 } from "./components/QueryBuilder/QueryBuilder.styles.js";
253
253
  import { HvQueryBuilder } from "./components/QueryBuilder/QueryBuilder.js";
254
254
  import { staticClasses as staticClasses110 } from "./components/ColorPicker/ColorPicker.styles.js";
@@ -647,6 +647,7 @@ export {
647
647
  useInstance,
648
648
  useIsMounted,
649
649
  useLabels,
650
+ useQueryBuilderContext,
650
651
  useSavedState,
651
652
  useScrollTo,
652
653
  useSelectionPath,
@@ -26,7 +26,11 @@ const HvProvider = ({
26
26
  prepend: true
27
27
  }), [classNameKey]);
28
28
  return /* @__PURE__ */ jsxs(CacheProvider, { value: emotionCache, children: [
29
- /* @__PURE__ */ jsx(Global, { styles: /* @__PURE__ */ css(cssBaseline === "global" && CssBaseline, " ", getThemesVars(themesList), ";" + (process.env.NODE_ENV === "production" ? "" : ";label:HvProvider;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2h2LXVpa2l0LXJlYWN0L2h2LXVpa2l0LXJlYWN0L3BhY2thZ2VzL2NvcmUvc3JjL3Byb3ZpZGVycy9Qcm92aWRlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBb0h3QiIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay9odi11aWtpdC1yZWFjdC9odi11aWtpdC1yZWFjdC9wYWNrYWdlcy9jb3JlL3NyYy9wcm92aWRlcnMvUHJvdmlkZXIudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IGNyZWF0ZUNhY2hlIGZyb20gXCJAZW1vdGlvbi9jYWNoZVwiO1xuaW1wb3J0IHtcbiAgY3NzIGFzIGNzc1JlYWN0LFxuICBHbG9iYWwsXG4gIENhY2hlUHJvdmlkZXIsXG4gIENsYXNzTmFtZXMsXG59IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuXG5pbXBvcnQge1xuICBDc3NCYXNlbGluZSxcbiAgQ3NzU2NvcGVkQmFzZWxpbmUsXG4gIGdldFRoZW1lc1ZhcnMsXG4gIEh2VGhlbWVTdHJ1Y3R1cmUsXG59IGZyb20gXCJAaGl0YWNoaXZhbnRhcmEvdWlraXQtc3R5bGVzXCI7XG5cbmltcG9ydCB7IGdldEVsZW1lbnRCeUlkIH0gZnJvbSBcIkBjb3JlL3V0aWxzL2RvY3VtZW50XCI7XG5pbXBvcnQgeyBwcm9jZXNzVGhlbWVzIH0gZnJvbSBcIkBjb3JlL3V0aWxzL3RoZW1lXCI7XG5pbXBvcnQgeyBIdlRoZW1lIH0gZnJvbSBcIkBjb3JlL3R5cGVzL3RoZW1lXCI7XG5pbXBvcnQgeyB1c2VVbmlxdWVJZCB9IGZyb20gXCJAY29yZS9ob29rcy91c2VVbmlxdWVJZFwiO1xuXG5pbXBvcnQge1xuICBIdlRoZW1lUHJvdmlkZXIsXG4gIGRlZmF1bHRDYWNoZUtleSxcbiAgZGVmYXVsdEVtb3Rpb25DYWNoZSxcbn0gZnJvbSBcIi4vVGhlbWVQcm92aWRlclwiO1xuXG4vLyBQcm92aWRlciBwcm9wc1xuZXhwb3J0IGludGVyZmFjZSBIdlByb3ZpZGVyUHJvcHMge1xuICAvKipcbiAgICogWW91ciBjb21wb25lbnQgdHJlZS5cbiAgICovXG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICAvKipcbiAgICogSWQgb2YgeW91ciByb290IGVsZW1lbnQuXG4gICAqL1xuICByb290RWxlbWVudElkPzogc3RyaW5nO1xuICAvKipcbiAgICogQnkgZGVmYXVsdCB0aGUgYmFzZWxpbmUgc3R5bGVzIGFyZSBhcHBsaWVkIGdsb2JhbGx5LCBgZ2xvYmFsYCwgdG8gdGhlIGFwcGxpY2F0aW9uIGZvciB0aGUgVUkgS2l0IGNvbXBvbmVudHMgdG8gd29yayBwcm9wZXJseS5cbiAgICogSWYgeW91IG5lZWQgdG8gc2NvcGUgdGhlIGJhc2VsaW5lIHN0eWxlcyB0byBhdm9pZCBzdHlsaW5nIGNvbmZsaWN0cywgeW91IGNhbiBzZXQgdGhpcyBwcm9wZXJ0eSB0byBgc2NvcGVkYC5cbiAgICogVG8gc2NvcGUgdGhlIGJhc2VsaW5lIHRvIHlvdXIgcm9vdCwgeW91IG5lZWQgdG8gYWRkIHRoZSBgcm9vdEVsZW1lbnRJZGAgcHJvcGVydHkuXG4gICAqIElmIHRoZSBgcm9vdEVsZW1lbnRJZGAgcHJvcGVydHkgaXMgbm90IHNldCwgdGhlIGJhc2VsaW5lIHdpbGwgYmUgc2NvcGVkIHRvIGEgbmV3IGNvbnRhaW5lciwgYGh2LXVpa2l0LXNjb3BlZC1yb290KmAsIGNyZWF0ZWQgYXJvdW5kIHlvdXIgY29udGVudC5cbiAgICogSWYgeW91IGFyZSBwcm92aWRpbmcgeW91ciBvd24gYmFzZWxpbmUgc3R5bGVzLCB5b3UgY2FuIHNldCB0aGlzIHByb3BlcnR5IHRvIGBub25lYCB0byBkaXNhYmxlIHRoZSBiYXNlbGluZSBzdHlsZXMuXG4gICAqL1xuICBjc3NCYXNlbGluZT86IFwiZ2xvYmFsXCIgfCBcInNjb3BlZFwiIHwgXCJub25lXCI7XG4gIC8qKlxuICAgKiBCeSBkZWZhdWx0IHRoZSB0aGVtZSBzdHlsZXMgYXJlIGFwcGxpZWQgZ2xvYmFsbHksIGBnbG9iYWxgLCB0byB0aGUgYXBwbGljYXRpb24uXG4gICAqIElmIHlvdSBuZWVkIHRvIHNjb3BlIHRoZSB0aGVtZSBzdHlsZXMgdG8gYXZvaWQgc3R5bGluZyBjb25mbGljdHMsIHlvdSBjYW4gc2V0IHRoaXMgcHJvcGVydHkgdG8gYHNjb3BlZGAuXG4gICAqIFRvIHNjb3BlIHRoZSB0aGVtZSB0byB5b3VyIHJvb3QsIHlvdSBuZWVkIHRvIGFkZCB0aGUgYHJvb3RFbGVtZW50SWRgIHByb3BlcnR5LlxuICAgKiBJZiB0aGUgYHJvb3RFbGVtZW50SWRgIHByb3BlcnR5IGlzIG5vdCBzZXQsIHRoZSB0aGVtZSB3aWxsIGJlIHNjb3BlZCB0byBhIG5ldyBjb250YWluZXIsIGBodi11aWtpdC1zY29wZWQtcm9vdCpgLCBjcmVhdGVkIGFyb3VuZCB5b3VyIGNvbnRlbnQuXG4gICAqL1xuICBjc3NUaGVtZT86IFwiZ2xvYmFsXCIgfCBcInNjb3BlZFwiO1xuICAvKipcbiAgICogVGhlIHN0cmluZyB1c2VkIHRvIHByZWZpeCB0aGUgY2xhc3MgbmFtZXMgYW5kIHVuaXF1ZWx5IGlkZW50aWZ5IHRoZW0uIFRoZSBrZXkgY2FuIG9ubHkgY29udGFpbiBsb3dlciBjYXNlIGFscGhhYmV0aWNhbCBjaGFyYWN0ZXJzLlxuICAgKiBUaGlzIGlzIHVzZWZ1bCB0byBhdm9pZCBjbGFzcyBuYW1lIGNvbGxpc2lvbnMuXG4gICAqXG4gICAqIElmIG5vIHZhbHVlIGlzIHByb3ZpZGVkLCB0aGUgZGVmYXVsdCBpcyBgaHZgLlxuICAgKi9cbiAgY2xhc3NOYW1lS2V5Pzogc3RyaW5nO1xuICAvKipcbiAgICogTGlzdCBvZiB0aGVtZXMgdG8gYmUgdXNlZCBieSBVSSBLaXQuXG4gICAqIFlvdSBjYW4gcHJvdmlkZSB5b3VyIG93biB0aGVtZXMgY3JlYXRlZCB3aXRoIHRoZSBgY3JlYXRlVGhlbWVgIHV0aWxpdHkgYW5kL29yIHRoZSBkZWZhdWx0IHRoZW1lcyBgZHMzYCBhbmQgYGRzNWAgcHJvdmlkZWQgYnkgVUkgS2l0LlxuICAgKlxuICAgKiBJZiBubyB2YWx1ZSBpcyBwcm92aWRlZCwgdGhlIGBkczVgIHRoZW1lIHdpbGwgYmUgdXNlZC5cbiAgICovXG4gIHRoZW1lcz86IChIdlRoZW1lIHwgSHZUaGVtZVN0cnVjdHVyZSlbXTtcbiAgLyoqXG4gICAqIFRoZSBhY3RpdmUgdGhlbWUuIEl0IG11c3QgYmUgb25lIG9mIHRoZSB0aGVtZXMgcGFzc2VkIHRvIGB0aGVtZXNgLlxuICAgKlxuICAgKiBJZiBubyB2YWx1ZSBpcyBwcm92aWRlZCwgdGhlIGZpcnN0IHRoZW1lIGZyb20gdGhlIGB0aGVtZXNgIGxpc3QgaXMgdXNlZC4gSWYgbm8gYHRoZW1lc2AgbGlzdCBpcyBwcm92aWRlZCwgdGhlIGBkczVgIHRoZW1lIHdpbGwgYmUgdXNlZC5cbiAgICovXG4gIHRoZW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGFjdGl2ZSBjb2xvciBtb2RlLiBJdCBtdXN0IGJlIG9uZSBvZiB0aGUgY29sb3IgbW9kZXMgb2YgdGhlIGFjdGl2ZSB0aGVtZS5cbiAgICpcbiAgICogSWYgbm8gdmFsdWUgaXMgcHJvdmlkZWQsIHRoZSBmaXJzdCBjb2xvciBtb2RlIGRlZmluZWQgaW4gdGhlIGFjdGl2ZSB0aGVtZSBpcyB1c2VkLlxuICAgKiBGb3IgdGhlIGRlZmF1bHQgdGhlbWVzIGBkczNgIGFuZCBgZHM1YCwgdGhlIGBkYXduYCBjb2xvciBtb2RlIGlzIHRoZSBvbmUgdXNlZC5cbiAgICovXG4gIGNvbG9yTW9kZT86IHN0cmluZztcbn1cblxuY29uc3Qgc2NvcGVkUm9vdFByZWZpeCA9IFwiaHYtdWlraXQtc2NvcGVkLXJvb3RcIiBhcyBjb25zdDtcblxuLyoqXG4gKiBFbmFibGVzIHRoZW1pbmcgY2FwYWJpbGl0aWVzIGFuZCBtYWtlcyBjcm9zcy1jb21wb25lbnQgdGhlbWUgcHJvcGVydGllcyBhdmFpbGFibGUgZG93biB0aGUgdHJlZS5cbiAqL1xuZXhwb3J0IGNvbnN0IEh2UHJvdmlkZXIgPSAoe1xuICBjaGlsZHJlbixcbiAgcm9vdEVsZW1lbnRJZCxcbiAgY3NzQmFzZWxpbmUgPSBcImdsb2JhbFwiLFxuICBjc3NUaGVtZSA9IFwiZ2xvYmFsXCIsXG4gIHRoZW1lcyxcbiAgdGhlbWUsXG4gIGNvbG9yTW9kZSxcbiAgY2xhc3NOYW1lS2V5ID0gZGVmYXVsdENhY2hlS2V5LFxufTogSHZQcm92aWRlclByb3BzKSA9PiB7XG4gIGNvbnN0IHNjb3BlZFJvb3RJZCA9IHVzZVVuaXF1ZUlkKHVuZGVmaW5lZCwgc2NvcGVkUm9vdFByZWZpeCk7XG5cbiAgLy8gVGhlbWVzXG4gIGNvbnN0IHRoZW1lc0xpc3Q6IChIdlRoZW1lIHwgSHZUaGVtZVN0cnVjdHVyZSlbXSA9IHByb2Nlc3NUaGVtZXModGhlbWVzKTtcblxuICAvLyBFbW90aW9uIGNhY2hlXG4gIC8vIE1vdmVzIFVJIEtpdCBzdHlsZXMgdG8gdGhlIHRvcCBvZiB0aGUgPGhlYWQ+IHNvIHRoZXkncmUgbG9hZGVkIGZpcnN0XG4gIC8vIFRoaXMgZW5hYmxlcyB1c2VycyB0byBvdmVycmlkZSB0aGUgVUkgS2l0IHN0eWxlcyBpZiBuZWNlc3NhcnlcbiAgY29uc3QgZW1vdGlvbkNhY2hlID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAgY2xhc3NOYW1lS2V5ID09PSBkZWZhdWx0Q2FjaGVLZXlcbiAgICAgICAgPyBkZWZhdWx0RW1vdGlvbkNhY2hlXG4gICAgICAgIDogY3JlYXRlQ2FjaGUoeyBrZXk6IGNsYXNzTmFtZUtleSwgcHJlcGVuZDogdHJ1ZSB9KSxcbiAgICBbY2xhc3NOYW1lS2V5XVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPENhY2hlUHJvdmlkZXIgdmFsdWU9e2Vtb3Rpb25DYWNoZX0+XG4gICAgICA8R2xvYmFsXG4gICAgICAgIHN0eWxlcz17Y3NzUmVhY3RgXG4gICAgICAgICAgJHtjc3NCYXNlbGluZSA9PT0gXCJnbG9iYWxcIiAmJiBDc3NCYXNlbGluZX1cbiAgICAgICAgICAke2dldFRoZW1lc1ZhcnModGhlbWVzTGlzdCl9XG4gICAgICAgIGB9XG4gICAgICAvPlxuICAgICAgPEh2VGhlbWVQcm92aWRlclxuICAgICAgICB0aGVtZXM9e3RoZW1lc0xpc3R9XG4gICAgICAgIHRoZW1lPXt0aGVtZSB8fCB0aGVtZXNMaXN0WzBdLm5hbWV9XG4gICAgICAgIGVtb3Rpb25DYWNoZT17ZW1vdGlvbkNhY2hlfVxuICAgICAgICBjb2xvck1vZGU9e2NvbG9yTW9kZSB8fCBPYmplY3Qua2V5cyh0aGVtZXNMaXN0WzBdLmNvbG9ycy5tb2RlcylbMF19XG4gICAgICAgIHRoZW1lUm9vdElkPXtcbiAgICAgICAgICBjc3NUaGVtZSA9PT0gXCJzY29wZWRcIiA/IHJvb3RFbGVtZW50SWQgfHwgc2NvcGVkUm9vdElkIDogdW5kZWZpbmVkXG4gICAgICAgIH1cbiAgICAgID5cbiAgICAgICAgPENsYXNzTmFtZXM+XG4gICAgICAgICAgeyh7IGNzcyB9KSA9PiB7XG4gICAgICAgICAgICBpZiAoY3NzQmFzZWxpbmUgPT09IFwic2NvcGVkXCIpIHtcbiAgICAgICAgICAgICAgY29uc3Qgcm9vdEVsZW1lbnQgPSBnZXRFbGVtZW50QnlJZChyb290RWxlbWVudElkKTtcblxuICAgICAgICAgICAgICBpZiAocm9vdEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICByb290RWxlbWVudC5jbGFzc0xpc3QuYWRkKFxuICAgICAgICAgICAgICAgICAgY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgLi4uQ3NzU2NvcGVkQmFzZWxpbmUsXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIChjc3NUaGVtZSA9PT0gXCJzY29wZWRcIiB8fCBjc3NCYXNlbGluZSA9PT0gXCJzY29wZWRcIikgJiZcbiAgICAgICAgICAgICAgIXJvb3RFbGVtZW50SWQgPyAoXG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBpZD17c2NvcGVkUm9vdElkfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17XG4gICAgICAgICAgICAgICAgICBjc3NCYXNlbGluZSA9PT0gXCJzY29wZWRcIlxuICAgICAgICAgICAgICAgICAgICA/IGNzcyh7IC4uLkNzc1Njb3BlZEJhc2VsaW5lIH0pXG4gICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIGNoaWxkcmVuXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH19XG4gICAgICAgIDwvQ2xhc3NOYW1lcz5cbiAgICAgIDwvSHZUaGVtZVByb3ZpZGVyPlxuICAgIDwvQ2FjaGVQcm92aWRlcj5cbiAgKTtcbn07XG4iXX0= */") }),
29
+ /* @__PURE__ */ jsx(Global, { styles: /* @__PURE__ */ css(cssBaseline === "global" && {
30
+ [`@layer hv-uikit-baseline`]: {
31
+ ...CssBaseline
32
+ }
33
+ }, " ", getThemesVars(themesList), ";" + (process.env.NODE_ENV === "production" ? "" : ";label:HvProvider;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2h2LXVpa2l0LXJlYWN0L2h2LXVpa2l0LXJlYWN0L3BhY2thZ2VzL2NvcmUvc3JjL3Byb3ZpZGVycy9Qcm92aWRlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBb0h3QiIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay9odi11aWtpdC1yZWFjdC9odi11aWtpdC1yZWFjdC9wYWNrYWdlcy9jb3JlL3NyYy9wcm92aWRlcnMvUHJvdmlkZXIudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IGNyZWF0ZUNhY2hlIGZyb20gXCJAZW1vdGlvbi9jYWNoZVwiO1xuaW1wb3J0IHtcbiAgY3NzIGFzIGNzc1JlYWN0LFxuICBHbG9iYWwsXG4gIENhY2hlUHJvdmlkZXIsXG4gIENsYXNzTmFtZXMsXG59IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuXG5pbXBvcnQge1xuICBDc3NCYXNlbGluZSxcbiAgQ3NzU2NvcGVkQmFzZWxpbmUsXG4gIGdldFRoZW1lc1ZhcnMsXG4gIEh2VGhlbWVTdHJ1Y3R1cmUsXG59IGZyb20gXCJAaGl0YWNoaXZhbnRhcmEvdWlraXQtc3R5bGVzXCI7XG5cbmltcG9ydCB7IGdldEVsZW1lbnRCeUlkIH0gZnJvbSBcIkBjb3JlL3V0aWxzL2RvY3VtZW50XCI7XG5pbXBvcnQgeyBwcm9jZXNzVGhlbWVzIH0gZnJvbSBcIkBjb3JlL3V0aWxzL3RoZW1lXCI7XG5pbXBvcnQgeyBIdlRoZW1lIH0gZnJvbSBcIkBjb3JlL3R5cGVzL3RoZW1lXCI7XG5pbXBvcnQgeyB1c2VVbmlxdWVJZCB9IGZyb20gXCJAY29yZS9ob29rcy91c2VVbmlxdWVJZFwiO1xuXG5pbXBvcnQge1xuICBIdlRoZW1lUHJvdmlkZXIsXG4gIGRlZmF1bHRDYWNoZUtleSxcbiAgZGVmYXVsdEVtb3Rpb25DYWNoZSxcbn0gZnJvbSBcIi4vVGhlbWVQcm92aWRlclwiO1xuXG4vLyBQcm92aWRlciBwcm9wc1xuZXhwb3J0IGludGVyZmFjZSBIdlByb3ZpZGVyUHJvcHMge1xuICAvKipcbiAgICogWW91ciBjb21wb25lbnQgdHJlZS5cbiAgICovXG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICAvKipcbiAgICogSWQgb2YgeW91ciByb290IGVsZW1lbnQuXG4gICAqL1xuICByb290RWxlbWVudElkPzogc3RyaW5nO1xuICAvKipcbiAgICogQnkgZGVmYXVsdCB0aGUgYmFzZWxpbmUgc3R5bGVzIGFyZSBhcHBsaWVkIGdsb2JhbGx5LCBgZ2xvYmFsYCwgdG8gdGhlIGFwcGxpY2F0aW9uIGZvciB0aGUgVUkgS2l0IGNvbXBvbmVudHMgdG8gd29yayBwcm9wZXJseS5cbiAgICogSWYgeW91IG5lZWQgdG8gc2NvcGUgdGhlIGJhc2VsaW5lIHN0eWxlcyB0byBhdm9pZCBzdHlsaW5nIGNvbmZsaWN0cywgeW91IGNhbiBzZXQgdGhpcyBwcm9wZXJ0eSB0byBgc2NvcGVkYC5cbiAgICogVG8gc2NvcGUgdGhlIGJhc2VsaW5lIHRvIHlvdXIgcm9vdCwgeW91IG5lZWQgdG8gYWRkIHRoZSBgcm9vdEVsZW1lbnRJZGAgcHJvcGVydHkuXG4gICAqIElmIHRoZSBgcm9vdEVsZW1lbnRJZGAgcHJvcGVydHkgaXMgbm90IHNldCwgdGhlIGJhc2VsaW5lIHdpbGwgYmUgc2NvcGVkIHRvIGEgbmV3IGNvbnRhaW5lciwgYGh2LXVpa2l0LXNjb3BlZC1yb290KmAsIGNyZWF0ZWQgYXJvdW5kIHlvdXIgY29udGVudC5cbiAgICogSWYgeW91IGFyZSBwcm92aWRpbmcgeW91ciBvd24gYmFzZWxpbmUgc3R5bGVzLCB5b3UgY2FuIHNldCB0aGlzIHByb3BlcnR5IHRvIGBub25lYCB0byBkaXNhYmxlIHRoZSBiYXNlbGluZSBzdHlsZXMuXG4gICAqL1xuICBjc3NCYXNlbGluZT86IFwiZ2xvYmFsXCIgfCBcInNjb3BlZFwiIHwgXCJub25lXCI7XG4gIC8qKlxuICAgKiBCeSBkZWZhdWx0IHRoZSB0aGVtZSBzdHlsZXMgYXJlIGFwcGxpZWQgZ2xvYmFsbHksIGBnbG9iYWxgLCB0byB0aGUgYXBwbGljYXRpb24uXG4gICAqIElmIHlvdSBuZWVkIHRvIHNjb3BlIHRoZSB0aGVtZSBzdHlsZXMgdG8gYXZvaWQgc3R5bGluZyBjb25mbGljdHMsIHlvdSBjYW4gc2V0IHRoaXMgcHJvcGVydHkgdG8gYHNjb3BlZGAuXG4gICAqIFRvIHNjb3BlIHRoZSB0aGVtZSB0byB5b3VyIHJvb3QsIHlvdSBuZWVkIHRvIGFkZCB0aGUgYHJvb3RFbGVtZW50SWRgIHByb3BlcnR5LlxuICAgKiBJZiB0aGUgYHJvb3RFbGVtZW50SWRgIHByb3BlcnR5IGlzIG5vdCBzZXQsIHRoZSB0aGVtZSB3aWxsIGJlIHNjb3BlZCB0byBhIG5ldyBjb250YWluZXIsIGBodi11aWtpdC1zY29wZWQtcm9vdCpgLCBjcmVhdGVkIGFyb3VuZCB5b3VyIGNvbnRlbnQuXG4gICAqL1xuICBjc3NUaGVtZT86IFwiZ2xvYmFsXCIgfCBcInNjb3BlZFwiO1xuICAvKipcbiAgICogVGhlIHN0cmluZyB1c2VkIHRvIHByZWZpeCB0aGUgY2xhc3MgbmFtZXMgYW5kIHVuaXF1ZWx5IGlkZW50aWZ5IHRoZW0uIFRoZSBrZXkgY2FuIG9ubHkgY29udGFpbiBsb3dlciBjYXNlIGFscGhhYmV0aWNhbCBjaGFyYWN0ZXJzLlxuICAgKiBUaGlzIGlzIHVzZWZ1bCB0byBhdm9pZCBjbGFzcyBuYW1lIGNvbGxpc2lvbnMuXG4gICAqXG4gICAqIElmIG5vIHZhbHVlIGlzIHByb3ZpZGVkLCB0aGUgZGVmYXVsdCBpcyBgaHZgLlxuICAgKi9cbiAgY2xhc3NOYW1lS2V5Pzogc3RyaW5nO1xuICAvKipcbiAgICogTGlzdCBvZiB0aGVtZXMgdG8gYmUgdXNlZCBieSBVSSBLaXQuXG4gICAqIFlvdSBjYW4gcHJvdmlkZSB5b3VyIG93biB0aGVtZXMgY3JlYXRlZCB3aXRoIHRoZSBgY3JlYXRlVGhlbWVgIHV0aWxpdHkgYW5kL29yIHRoZSBkZWZhdWx0IHRoZW1lcyBgZHMzYCBhbmQgYGRzNWAgcHJvdmlkZWQgYnkgVUkgS2l0LlxuICAgKlxuICAgKiBJZiBubyB2YWx1ZSBpcyBwcm92aWRlZCwgdGhlIGBkczVgIHRoZW1lIHdpbGwgYmUgdXNlZC5cbiAgICovXG4gIHRoZW1lcz86IChIdlRoZW1lIHwgSHZUaGVtZVN0cnVjdHVyZSlbXTtcbiAgLyoqXG4gICAqIFRoZSBhY3RpdmUgdGhlbWUuIEl0IG11c3QgYmUgb25lIG9mIHRoZSB0aGVtZXMgcGFzc2VkIHRvIGB0aGVtZXNgLlxuICAgKlxuICAgKiBJZiBubyB2YWx1ZSBpcyBwcm92aWRlZCwgdGhlIGZpcnN0IHRoZW1lIGZyb20gdGhlIGB0aGVtZXNgIGxpc3QgaXMgdXNlZC4gSWYgbm8gYHRoZW1lc2AgbGlzdCBpcyBwcm92aWRlZCwgdGhlIGBkczVgIHRoZW1lIHdpbGwgYmUgdXNlZC5cbiAgICovXG4gIHRoZW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGFjdGl2ZSBjb2xvciBtb2RlLiBJdCBtdXN0IGJlIG9uZSBvZiB0aGUgY29sb3IgbW9kZXMgb2YgdGhlIGFjdGl2ZSB0aGVtZS5cbiAgICpcbiAgICogSWYgbm8gdmFsdWUgaXMgcHJvdmlkZWQsIHRoZSBmaXJzdCBjb2xvciBtb2RlIGRlZmluZWQgaW4gdGhlIGFjdGl2ZSB0aGVtZSBpcyB1c2VkLlxuICAgKiBGb3IgdGhlIGRlZmF1bHQgdGhlbWVzIGBkczNgIGFuZCBgZHM1YCwgdGhlIGBkYXduYCBjb2xvciBtb2RlIGlzIHRoZSBvbmUgdXNlZC5cbiAgICovXG4gIGNvbG9yTW9kZT86IHN0cmluZztcbn1cblxuY29uc3Qgc2NvcGVkUm9vdFByZWZpeCA9IFwiaHYtdWlraXQtc2NvcGVkLXJvb3RcIiBhcyBjb25zdDtcblxuLyoqXG4gKiBFbmFibGVzIHRoZW1pbmcgY2FwYWJpbGl0aWVzIGFuZCBtYWtlcyBjcm9zcy1jb21wb25lbnQgdGhlbWUgcHJvcGVydGllcyBhdmFpbGFibGUgZG93biB0aGUgdHJlZS5cbiAqL1xuZXhwb3J0IGNvbnN0IEh2UHJvdmlkZXIgPSAoe1xuICBjaGlsZHJlbixcbiAgcm9vdEVsZW1lbnRJZCxcbiAgY3NzQmFzZWxpbmUgPSBcImdsb2JhbFwiLFxuICBjc3NUaGVtZSA9IFwiZ2xvYmFsXCIsXG4gIHRoZW1lcyxcbiAgdGhlbWUsXG4gIGNvbG9yTW9kZSxcbiAgY2xhc3NOYW1lS2V5ID0gZGVmYXVsdENhY2hlS2V5LFxufTogSHZQcm92aWRlclByb3BzKSA9PiB7XG4gIGNvbnN0IHNjb3BlZFJvb3RJZCA9IHVzZVVuaXF1ZUlkKHVuZGVmaW5lZCwgc2NvcGVkUm9vdFByZWZpeCk7XG5cbiAgLy8gVGhlbWVzXG4gIGNvbnN0IHRoZW1lc0xpc3Q6IChIdlRoZW1lIHwgSHZUaGVtZVN0cnVjdHVyZSlbXSA9IHByb2Nlc3NUaGVtZXModGhlbWVzKTtcblxuICAvLyBFbW90aW9uIGNhY2hlXG4gIC8vIE1vdmVzIFVJIEtpdCBzdHlsZXMgdG8gdGhlIHRvcCBvZiB0aGUgPGhlYWQ+IHNvIHRoZXkncmUgbG9hZGVkIGZpcnN0XG4gIC8vIFRoaXMgZW5hYmxlcyB1c2VycyB0byBvdmVycmlkZSB0aGUgVUkgS2l0IHN0eWxlcyBpZiBuZWNlc3NhcnlcbiAgY29uc3QgZW1vdGlvbkNhY2hlID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAgY2xhc3NOYW1lS2V5ID09PSBkZWZhdWx0Q2FjaGVLZXlcbiAgICAgICAgPyBkZWZhdWx0RW1vdGlvbkNhY2hlXG4gICAgICAgIDogY3JlYXRlQ2FjaGUoeyBrZXk6IGNsYXNzTmFtZUtleSwgcHJlcGVuZDogdHJ1ZSB9KSxcbiAgICBbY2xhc3NOYW1lS2V5XVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPENhY2hlUHJvdmlkZXIgdmFsdWU9e2Vtb3Rpb25DYWNoZX0+XG4gICAgICA8R2xvYmFsXG4gICAgICAgIHN0eWxlcz17Y3NzUmVhY3RgXG4gICAgICAgICAgJHtcbiAgICAgICAgICAgIGNzc0Jhc2VsaW5lID09PSBcImdsb2JhbFwiICYmIHtcbiAgICAgICAgICAgICAgW2BAbGF5ZXIgaHYtdWlraXQtYmFzZWxpbmVgXToge1xuICAgICAgICAgICAgICAgIC4uLkNzc0Jhc2VsaW5lLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAke2dldFRoZW1lc1ZhcnModGhlbWVzTGlzdCl9XG4gICAgICAgIGB9XG4gICAgICAvPlxuICAgICAgPEh2VGhlbWVQcm92aWRlclxuICAgICAgICB0aGVtZXM9e3RoZW1lc0xpc3R9XG4gICAgICAgIHRoZW1lPXt0aGVtZSB8fCB0aGVtZXNMaXN0WzBdLm5hbWV9XG4gICAgICAgIGVtb3Rpb25DYWNoZT17ZW1vdGlvbkNhY2hlfVxuICAgICAgICBjb2xvck1vZGU9e2NvbG9yTW9kZSB8fCBPYmplY3Qua2V5cyh0aGVtZXNMaXN0WzBdLmNvbG9ycy5tb2RlcylbMF19XG4gICAgICAgIHRoZW1lUm9vdElkPXtcbiAgICAgICAgICBjc3NUaGVtZSA9PT0gXCJzY29wZWRcIiA/IHJvb3RFbGVtZW50SWQgfHwgc2NvcGVkUm9vdElkIDogdW5kZWZpbmVkXG4gICAgICAgIH1cbiAgICAgID5cbiAgICAgICAgPENsYXNzTmFtZXM+XG4gICAgICAgICAgeyh7IGNzcyB9KSA9PiB7XG4gICAgICAgICAgICBpZiAoY3NzQmFzZWxpbmUgPT09IFwic2NvcGVkXCIpIHtcbiAgICAgICAgICAgICAgY29uc3Qgcm9vdEVsZW1lbnQgPSBnZXRFbGVtZW50QnlJZChyb290RWxlbWVudElkKTtcblxuICAgICAgICAgICAgICBpZiAocm9vdEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICByb290RWxlbWVudC5jbGFzc0xpc3QuYWRkKFxuICAgICAgICAgICAgICAgICAgY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgW2BAbGF5ZXIgJHtyb290RWxlbWVudElkfS1iYXNlbGluZWBdOiB7XG4gICAgICAgICAgICAgICAgICAgICAgLi4uQ3NzU2NvcGVkQmFzZWxpbmUsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIChjc3NUaGVtZSA9PT0gXCJzY29wZWRcIiB8fCBjc3NCYXNlbGluZSA9PT0gXCJzY29wZWRcIikgJiZcbiAgICAgICAgICAgICAgIXJvb3RFbGVtZW50SWQgPyAoXG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBpZD17c2NvcGVkUm9vdElkfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17XG4gICAgICAgICAgICAgICAgICBjc3NCYXNlbGluZSA9PT0gXCJzY29wZWRcIlxuICAgICAgICAgICAgICAgICAgICA/IGNzcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICBbYEBsYXllciAke3Jvb3RFbGVtZW50SWR9LWJhc2VsaW5lYF06IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uQ3NzU2NvcGVkQmFzZWxpbmUsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIGNoaWxkcmVuXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH19XG4gICAgICAgIDwvQ2xhc3NOYW1lcz5cbiAgICAgIDwvSHZUaGVtZVByb3ZpZGVyPlxuICAgIDwvQ2FjaGVQcm92aWRlcj5cbiAgKTtcbn07XG4iXX0= */") }),
30
34
  /* @__PURE__ */ jsx(HvThemeProvider, { themes: themesList, theme: theme || themesList[0].name, emotionCache, colorMode: colorMode || Object.keys(themesList[0].colors.modes)[0], themeRootId: cssTheme === "scoped" ? rootElementId || scopedRootId : void 0, children: /* @__PURE__ */ jsx(ClassNames, { children: ({
31
35
  css: css2
32
36
  }) => {
@@ -34,12 +38,16 @@ const HvProvider = ({
34
38
  const rootElement = getElementById(rootElementId);
35
39
  if (rootElement) {
36
40
  rootElement.classList.add(css2({
37
- ...CssScopedBaseline
41
+ [`@layer ${rootElementId}-baseline`]: {
42
+ ...CssScopedBaseline
43
+ }
38
44
  }));
39
45
  }
40
46
  }
41
47
  return (cssTheme === "scoped" || cssBaseline === "scoped") && !rootElementId ? /* @__PURE__ */ jsx("div", { id: scopedRootId, className: cssBaseline === "scoped" ? css2({
42
- ...CssScopedBaseline
48
+ [`@layer ${rootElementId}-baseline`]: {
49
+ ...CssScopedBaseline
50
+ }
43
51
  }) : void 0, children }) : children;
44
52
  } }) })
45
53
  ] });
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.js","sources":["../../../src/providers/Provider.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\n\nimport createCache from \"@emotion/cache\";\nimport {\n css as cssReact,\n Global,\n CacheProvider,\n ClassNames,\n} from \"@emotion/react\";\n\nimport {\n CssBaseline,\n CssScopedBaseline,\n getThemesVars,\n HvThemeStructure,\n} from \"@hitachivantara/uikit-styles\";\n\nimport { getElementById } from \"@core/utils/document\";\nimport { processThemes } from \"@core/utils/theme\";\nimport { HvTheme } from \"@core/types/theme\";\nimport { useUniqueId } from \"@core/hooks/useUniqueId\";\n\nimport {\n HvThemeProvider,\n defaultCacheKey,\n defaultEmotionCache,\n} from \"./ThemeProvider\";\n\n// Provider props\nexport interface HvProviderProps {\n /**\n * Your component tree.\n */\n children?: React.ReactNode;\n /**\n * Id of your root element.\n */\n rootElementId?: string;\n /**\n * By default the baseline styles are applied globally, `global`, to the application for the UI Kit components to work properly.\n * If you need to scope the baseline styles to avoid styling conflicts, you can set this property to `scoped`.\n * To scope the baseline to your root, you need to add the `rootElementId` property.\n * If the `rootElementId` property is not set, the baseline will be scoped to a new container, `hv-uikit-scoped-root*`, created around your content.\n * If you are providing your own baseline styles, you can set this property to `none` to disable the baseline styles.\n */\n cssBaseline?: \"global\" | \"scoped\" | \"none\";\n /**\n * By default the theme styles are applied globally, `global`, to the application.\n * If you need to scope the theme styles to avoid styling conflicts, you can set this property to `scoped`.\n * To scope the theme to your root, you need to add the `rootElementId` property.\n * If the `rootElementId` property is not set, the theme will be scoped to a new container, `hv-uikit-scoped-root*`, created around your content.\n */\n cssTheme?: \"global\" | \"scoped\";\n /**\n * The string used to prefix the class names and uniquely identify them. The key can only contain lower case alphabetical characters.\n * This is useful to avoid class name collisions.\n *\n * If no value is provided, the default is `hv`.\n */\n classNameKey?: string;\n /**\n * List of themes to be used by UI Kit.\n * You can provide your own themes created with the `createTheme` utility and/or the default themes `ds3` and `ds5` provided by UI Kit.\n *\n * If no value is provided, the `ds5` theme will be used.\n */\n themes?: (HvTheme | HvThemeStructure)[];\n /**\n * The active theme. It must be one of the themes passed to `themes`.\n *\n * If no value is provided, the first theme from the `themes` list is used. If no `themes` list is provided, the `ds5` theme will be used.\n */\n theme?: string;\n /**\n * The active color mode. It must be one of the color modes of the active theme.\n *\n * If no value is provided, the first color mode defined in the active theme is used.\n * For the default themes `ds3` and `ds5`, the `dawn` color mode is the one used.\n */\n colorMode?: string;\n}\n\nconst scopedRootPrefix = \"hv-uikit-scoped-root\" as const;\n\n/**\n * Enables theming capabilities and makes cross-component theme properties available down the tree.\n */\nexport const HvProvider = ({\n children,\n rootElementId,\n cssBaseline = \"global\",\n cssTheme = \"global\",\n themes,\n theme,\n colorMode,\n classNameKey = defaultCacheKey,\n}: HvProviderProps) => {\n const scopedRootId = useUniqueId(undefined, scopedRootPrefix);\n\n // Themes\n const themesList: (HvTheme | HvThemeStructure)[] = processThemes(themes);\n\n // Emotion cache\n // Moves UI Kit styles to the top of the <head> so they're loaded first\n // This enables users to override the UI Kit styles if necessary\n const emotionCache = useMemo(\n () =>\n classNameKey === defaultCacheKey\n ? defaultEmotionCache\n : createCache({ key: classNameKey, prepend: true }),\n [classNameKey]\n );\n\n return (\n <CacheProvider value={emotionCache}>\n <Global\n styles={cssReact`\n ${cssBaseline === \"global\" && CssBaseline}\n ${getThemesVars(themesList)}\n `}\n />\n <HvThemeProvider\n themes={themesList}\n theme={theme || themesList[0].name}\n emotionCache={emotionCache}\n colorMode={colorMode || Object.keys(themesList[0].colors.modes)[0]}\n themeRootId={\n cssTheme === \"scoped\" ? rootElementId || scopedRootId : undefined\n }\n >\n <ClassNames>\n {({ css }) => {\n if (cssBaseline === \"scoped\") {\n const rootElement = getElementById(rootElementId);\n\n if (rootElement) {\n rootElement.classList.add(\n css({\n ...CssScopedBaseline,\n })\n );\n }\n }\n\n return (cssTheme === \"scoped\" || cssBaseline === \"scoped\") &&\n !rootElementId ? (\n <div\n id={scopedRootId}\n className={\n cssBaseline === \"scoped\"\n ? css({ ...CssScopedBaseline })\n : undefined\n }\n >\n {children}\n </div>\n ) : (\n children\n );\n }}\n </ClassNames>\n </HvThemeProvider>\n </CacheProvider>\n );\n};\n"],"names":["scopedRootPrefix","HvProvider","children","rootElementId","cssBaseline","cssTheme","themes","theme","colorMode","classNameKey","defaultCacheKey","scopedRootId","useUniqueId","undefined","themesList","processThemes","emotionCache","useMemo","defaultEmotionCache","createCache","key","prepend","CssBaseline","getThemesVars","process","env","NODE_ENV","name","Object","keys","colors","modes","css","rootElement","getElementById","classList","add","CssScopedBaseline"],"mappings":";;;;;;;;;;AAkFA,MAAMA,mBAAmB;AAKlB,MAAMC,aAAaA,CAAC;AAAA,EACzBC;AAAAA,EACAC;AAAAA,EACAC,cAAc;AAAA,EACdC,WAAW;AAAA,EACXC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,eAAeC;AACA,MAAM;AACfC,QAAAA,eAAeC,YAAYC,QAAWb,gBAAgB;AAGtDc,QAAAA,aAA6CC,cAAcT,MAAM;AAKvE,QAAMU,eAAeC,QACnB,MACER,iBAAiBC,kBACbQ,sBACAC,YAAY;AAAA,IAAEC,KAAKX;AAAAA,IAAcY,SAAS;AAAA,EAAA,CAAM,GACtD,CAACZ,YAAY,CACf;AAGE,SAAA,qBAAC,eAAc,EAAA,OAAOO,cACpB,UAAA;AAAA,IAAC,oBAAA,QAAA,EACC,QACIZ,oBAAAA,gBAAgB,YAAYkB,aAC5BC,KAAAA,cAAcT,UAAU,GAAC,OAAAU,QAAAC,IAAAC,aAAA,eAAA,KAAA,uBAAAF,QAAAC,IAAAC,aAC3B,eAAA,KAAA,yrPAAA,EAAA,CAAA;AAAA,IAEH,oBAAA,iBAAA,EACC,QAAQZ,YACR,OAAOP,SAASO,WAAW,CAAC,EAAEa,MAC9B,cACA,WAAWnB,aAAaoB,OAAOC,KAAKf,WAAW,CAAC,EAAEgB,OAAOC,KAAK,EAAE,CAAC,GACjE,aACE1B,aAAa,WAAWF,iBAAiBQ,eAAeE,QAG1D,UAAA,oBAAC,cACE,UAAC,CAAA;AAAA,MAAEmB,KAAAA;AAAAA,IAAAA,MAAU;AACZ,UAAI5B,gBAAgB,UAAU;AACtB6B,cAAAA,cAAcC,eAAe/B,aAAa;AAEhD,YAAI8B,aAAa;AACHE,sBAAAA,UAAUC,IACpBJ,KAAI;AAAA,YACF,GAAGK;AAAAA,UACJ,CAAA,CACH;AAAA,QACF;AAAA,MACF;AAEA,cAAQhC,aAAa,YAAYD,gBAAgB,aAC/C,CAACD,gBACA,oBAAA,OAAA,EACC,IAAIQ,cACJ,WACEP,gBAAgB,WACZ4B,KAAI;AAAA,QAAE,GAAGK;AAAAA,MAAmB,CAAA,IAC5BxB,QAGLX,SACH,CAAA,IAEAA;AAAAA,OAGN,EACF,CAAA;AAAA,EACF,EAAA,CAAA;AAEJ;"}
1
+ {"version":3,"file":"Provider.js","sources":["../../../src/providers/Provider.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\n\nimport createCache from \"@emotion/cache\";\nimport {\n css as cssReact,\n Global,\n CacheProvider,\n ClassNames,\n} from \"@emotion/react\";\n\nimport {\n CssBaseline,\n CssScopedBaseline,\n getThemesVars,\n HvThemeStructure,\n} from \"@hitachivantara/uikit-styles\";\n\nimport { getElementById } from \"@core/utils/document\";\nimport { processThemes } from \"@core/utils/theme\";\nimport { HvTheme } from \"@core/types/theme\";\nimport { useUniqueId } from \"@core/hooks/useUniqueId\";\n\nimport {\n HvThemeProvider,\n defaultCacheKey,\n defaultEmotionCache,\n} from \"./ThemeProvider\";\n\n// Provider props\nexport interface HvProviderProps {\n /**\n * Your component tree.\n */\n children?: React.ReactNode;\n /**\n * Id of your root element.\n */\n rootElementId?: string;\n /**\n * By default the baseline styles are applied globally, `global`, to the application for the UI Kit components to work properly.\n * If you need to scope the baseline styles to avoid styling conflicts, you can set this property to `scoped`.\n * To scope the baseline to your root, you need to add the `rootElementId` property.\n * If the `rootElementId` property is not set, the baseline will be scoped to a new container, `hv-uikit-scoped-root*`, created around your content.\n * If you are providing your own baseline styles, you can set this property to `none` to disable the baseline styles.\n */\n cssBaseline?: \"global\" | \"scoped\" | \"none\";\n /**\n * By default the theme styles are applied globally, `global`, to the application.\n * If you need to scope the theme styles to avoid styling conflicts, you can set this property to `scoped`.\n * To scope the theme to your root, you need to add the `rootElementId` property.\n * If the `rootElementId` property is not set, the theme will be scoped to a new container, `hv-uikit-scoped-root*`, created around your content.\n */\n cssTheme?: \"global\" | \"scoped\";\n /**\n * The string used to prefix the class names and uniquely identify them. The key can only contain lower case alphabetical characters.\n * This is useful to avoid class name collisions.\n *\n * If no value is provided, the default is `hv`.\n */\n classNameKey?: string;\n /**\n * List of themes to be used by UI Kit.\n * You can provide your own themes created with the `createTheme` utility and/or the default themes `ds3` and `ds5` provided by UI Kit.\n *\n * If no value is provided, the `ds5` theme will be used.\n */\n themes?: (HvTheme | HvThemeStructure)[];\n /**\n * The active theme. It must be one of the themes passed to `themes`.\n *\n * If no value is provided, the first theme from the `themes` list is used. If no `themes` list is provided, the `ds5` theme will be used.\n */\n theme?: string;\n /**\n * The active color mode. It must be one of the color modes of the active theme.\n *\n * If no value is provided, the first color mode defined in the active theme is used.\n * For the default themes `ds3` and `ds5`, the `dawn` color mode is the one used.\n */\n colorMode?: string;\n}\n\nconst scopedRootPrefix = \"hv-uikit-scoped-root\" as const;\n\n/**\n * Enables theming capabilities and makes cross-component theme properties available down the tree.\n */\nexport const HvProvider = ({\n children,\n rootElementId,\n cssBaseline = \"global\",\n cssTheme = \"global\",\n themes,\n theme,\n colorMode,\n classNameKey = defaultCacheKey,\n}: HvProviderProps) => {\n const scopedRootId = useUniqueId(undefined, scopedRootPrefix);\n\n // Themes\n const themesList: (HvTheme | HvThemeStructure)[] = processThemes(themes);\n\n // Emotion cache\n // Moves UI Kit styles to the top of the <head> so they're loaded first\n // This enables users to override the UI Kit styles if necessary\n const emotionCache = useMemo(\n () =>\n classNameKey === defaultCacheKey\n ? defaultEmotionCache\n : createCache({ key: classNameKey, prepend: true }),\n [classNameKey]\n );\n\n return (\n <CacheProvider value={emotionCache}>\n <Global\n styles={cssReact`\n ${\n cssBaseline === \"global\" && {\n [`@layer hv-uikit-baseline`]: {\n ...CssBaseline,\n },\n }\n }\n ${getThemesVars(themesList)}\n `}\n />\n <HvThemeProvider\n themes={themesList}\n theme={theme || themesList[0].name}\n emotionCache={emotionCache}\n colorMode={colorMode || Object.keys(themesList[0].colors.modes)[0]}\n themeRootId={\n cssTheme === \"scoped\" ? rootElementId || scopedRootId : undefined\n }\n >\n <ClassNames>\n {({ css }) => {\n if (cssBaseline === \"scoped\") {\n const rootElement = getElementById(rootElementId);\n\n if (rootElement) {\n rootElement.classList.add(\n css({\n [`@layer ${rootElementId}-baseline`]: {\n ...CssScopedBaseline,\n },\n })\n );\n }\n }\n\n return (cssTheme === \"scoped\" || cssBaseline === \"scoped\") &&\n !rootElementId ? (\n <div\n id={scopedRootId}\n className={\n cssBaseline === \"scoped\"\n ? css({\n [`@layer ${rootElementId}-baseline`]: {\n ...CssScopedBaseline,\n },\n })\n : undefined\n }\n >\n {children}\n </div>\n ) : (\n children\n );\n }}\n </ClassNames>\n </HvThemeProvider>\n </CacheProvider>\n );\n};\n"],"names":["scopedRootPrefix","HvProvider","children","rootElementId","cssBaseline","cssTheme","themes","theme","colorMode","classNameKey","defaultCacheKey","scopedRootId","useUniqueId","undefined","themesList","processThemes","emotionCache","useMemo","defaultEmotionCache","createCache","key","prepend","CssBaseline","getThemesVars","process","env","NODE_ENV","name","Object","keys","colors","modes","css","rootElement","getElementById","classList","add","CssScopedBaseline"],"mappings":";;;;;;;;;;AAkFA,MAAMA,mBAAmB;AAKlB,MAAMC,aAAaA,CAAC;AAAA,EACzBC;AAAAA,EACAC;AAAAA,EACAC,cAAc;AAAA,EACdC,WAAW;AAAA,EACXC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,eAAeC;AACA,MAAM;AACfC,QAAAA,eAAeC,YAAYC,QAAWb,gBAAgB;AAGtDc,QAAAA,aAA6CC,cAAcT,MAAM;AAKvE,QAAMU,eAAeC,QACnB,MACER,iBAAiBC,kBACbQ,sBACAC,YAAY;AAAA,IAAEC,KAAKX;AAAAA,IAAcY,SAAS;AAAA,EAAA,CAAM,GACtD,CAACZ,YAAY,CACf;AAGE,SAAA,qBAAC,eAAc,EAAA,OAAOO,cACpB,UAAA;AAAA,IAAA,oBAAC,QACC,EAAA,QAEIZ,oBAAAA,gBAAgB,YAAY;AAAA,MAC1B,CAAE,0BAAyB,GAAG;AAAA,QAC5B,GAAGkB;AAAAA,MACL;AAAA,IAAA,QAGFC,cAAcT,UAAU,UAACU,QAAAC,IAAAC,aAAAF,eAAAA,KAAAA,uBAAAA,QAAAC,IAAAC,aAC3B,eAAA,KAAA,ypQAAA,GAAA;AAAA,IAEH,oBAAA,iBAAA,EACC,QAAQZ,YACR,OAAOP,SAASO,WAAW,CAAC,EAAEa,MAC9B,cACA,WAAWnB,aAAaoB,OAAOC,KAAKf,WAAW,CAAC,EAAEgB,OAAOC,KAAK,EAAE,CAAC,GACjE,aACE1B,aAAa,WAAWF,iBAAiBQ,eAAeE,QAG1D,UAAA,oBAAC,cACE,UAAC,CAAA;AAAA,MAAEmB,KAAAA;AAAAA,IAAAA,MAAU;AACZ,UAAI5B,gBAAgB,UAAU;AACtB6B,cAAAA,cAAcC,eAAe/B,aAAa;AAEhD,YAAI8B,aAAa;AACHE,sBAAAA,UAAUC,IACpBJ,KAAI;AAAA,YACF,CAAE,UAAS7B,aAAc,WAAU,GAAG;AAAA,cACpC,GAAGkC;AAAAA,YACL;AAAA,UACD,CAAA,CACH;AAAA,QACF;AAAA,MACF;AAEA,cAAQhC,aAAa,YAAYD,gBAAgB,aAC/C,CAACD,gBACA,oBAAA,OAAA,EACC,IAAIQ,cACJ,WACEP,gBAAgB,WACZ4B,KAAI;AAAA,QACF,CAAE,UAAS7B,aAAc,WAAU,GAAG;AAAA,UACpC,GAAGkC;AAAAA,QACL;AAAA,MACD,CAAA,IACDxB,QAGLX,SACH,CAAA,IAEAA;AAAAA,OAGN,EACF,CAAA;AAAA,EACF,EAAA,CAAA;AAEJ;"}
@@ -33,6 +33,7 @@ import { ds5 } from '@hitachivantara/uikit-styles';
33
33
  import { EmblaOptionsType } from 'embla-carousel-react';
34
34
  import { EmotionCache } from '@emotion/cache';
35
35
  import { EmotionContext } from '@hitachivantara/uikit-react-shared';
36
+ import { FC } from 'react';
36
37
  import { ForwardRefExoticComponent } from 'react';
37
38
  import { GridProps } from '@mui/material';
38
39
  import { Hooks } from 'react-table';
@@ -238,6 +239,11 @@ export declare const appSwitcherClasses: {
238
239
 
239
240
  export declare type Arrayable<T> = T | T[];
240
241
 
242
+ declare interface AskAction {
243
+ actions: QueryAction[];
244
+ dialog: DialogLabels;
245
+ }
246
+
241
247
  declare type AsProp<C extends React.ElementType> = {
242
248
  component?: C;
243
249
  };
@@ -4742,7 +4748,7 @@ export declare interface HvProviderProps {
4742
4748
  }
4743
4749
 
4744
4750
  /**
4745
- * **HvQueryBuilder** component allows you to create conditions and group them using logical operators.
4751
+ * This component allows you to create conditions and group them using logical operators.
4746
4752
  * It outputs a structured set of rules which can be easily parsed to create SQL/NoSQL/whatever queries.
4747
4753
  */
4748
4754
  export declare const HvQueryBuilder: (props: HvQueryBuilderProps) => JSX_2.Element;
@@ -4751,12 +4757,29 @@ export declare interface HvQueryBuilderAttribute extends Record<string, unknown>
4751
4757
  id?: string;
4752
4758
  label: string;
4753
4759
  type: string;
4754
- value?: unknown;
4755
- order?: number;
4760
+ }
4761
+
4762
+ declare interface HvQueryBuilderChangedQuery extends Omit<HvQueryBuilderQuery, "id" | "rules"> {
4763
+ rules: Array<Omit<HvQueryBuilderQueryRule, "id"> | Omit<HvQueryBuilderQueryGroup, "id">>;
4756
4764
  }
4757
4765
 
4758
4766
  export declare type HvQueryBuilderClasses = ExtractNames<typeof useClasses_114>;
4759
4767
 
4768
+ declare interface HvQueryBuilderContextValue {
4769
+ dispatchAction: React.Dispatch<QueryAction>;
4770
+ askAction: React.Dispatch<React.SetStateAction<AskAction | undefined>>;
4771
+ selectLocation?: React.Dispatch<unknown>;
4772
+ attributes?: Record<string, HvQueryBuilderAttribute>;
4773
+ operators: Record<string, HvQueryBuilderQueryOperator[]>;
4774
+ combinators: HvQueryBuilderQueryCombinator[];
4775
+ maxDepth: number;
4776
+ labels: HvQueryBuilderLabels;
4777
+ initialTouched: boolean;
4778
+ readOnly: boolean;
4779
+ disableConfirmation: boolean;
4780
+ renderers?: HvQueryBuilderRenderers;
4781
+ }
4782
+
4760
4783
  export declare interface HvQueryBuilderDateTimeRange {
4761
4784
  start?: HvQueryBuilderDateTimeStrings;
4762
4785
  end?: HvQueryBuilderDateTimeStrings;
@@ -5038,54 +5061,43 @@ export declare interface HvQueryBuilderNumericRange {
5038
5061
  }
5039
5062
 
5040
5063
  export declare interface HvQueryBuilderProps {
5064
+ /** The query attribute types. */
5041
5065
  attributes?: Record<string, HvQueryBuilderAttribute>;
5042
- /**
5043
- * The query rules operators by attribute type and combinator.
5044
- */
5066
+ /** The query rules operators by attribute type and combinator. */
5045
5067
  operators?: Record<string, HvQueryBuilderQueryOperator[]>;
5046
- /**
5047
- * The query combinators operands.
5048
- */
5068
+ /** The query combinators operands. */
5049
5069
  combinators?: HvQueryBuilderQueryCombinator[];
5050
- /**
5051
- * The initial query representation.
5052
- */
5070
+ /** The initial query representation. */
5053
5071
  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
- */
5072
+ /** Callback fired when query changes. */
5073
+ onChange?: (value: HvQueryBuilderChangedQuery) => void;
5074
+ /** Max depth of nested query groups. */
5062
5075
  maxDepth?: number;
5063
- /**
5064
- * An object containing all the labels.
5065
- */
5076
+ /** Object containing all the labels. */
5066
5077
  labels?: HvQueryBuilderLabels;
5067
- /**
5068
- * A flag indicating if the Query Builder is in read only mode.
5069
- */
5078
+ /** Whether the query builder is in read-only mode. */
5070
5079
  readOnly?: boolean;
5071
- /**
5072
- * Override or extend the styles applied to the component.
5073
- * See CSS API tab for more details.
5074
- */
5080
+ /** Renderers for custom attribute types. */
5081
+ renderers?: HvQueryBuilderRenderers;
5082
+ /** Whether to opt-out of the confirmation dialogs shown before removing rules and rule groups. Default to `false`. */
5083
+ disableConfirmation?: boolean;
5084
+ /** A Jss Object used to override or extend the styles applied. */
5075
5085
  classes?: HvQueryBuilderClasses;
5076
5086
  }
5077
5087
 
5078
- export declare interface HvQueryBuilderQuery {
5079
- id?: number;
5080
- combinator: string;
5081
- rules: Array<HvQueryBuilderQueryRule>;
5082
- }
5088
+ export declare type HvQueryBuilderQuery = HvQueryBuilderQueryGroup;
5083
5089
 
5084
5090
  export declare interface HvQueryBuilderQueryCombinator {
5085
5091
  operand: string;
5086
5092
  label: string;
5087
5093
  }
5088
5094
 
5095
+ declare interface HvQueryBuilderQueryGroup {
5096
+ id: React.Key;
5097
+ combinator: string;
5098
+ rules: Array<HvQueryBuilderQueryRule | HvQueryBuilderQueryGroup>;
5099
+ }
5100
+
5089
5101
  export declare interface HvQueryBuilderQueryOperator {
5090
5102
  operator: string;
5091
5103
  label: string;
@@ -5093,7 +5105,7 @@ export declare interface HvQueryBuilderQueryOperator {
5093
5105
  }
5094
5106
 
5095
5107
  export declare interface HvQueryBuilderQueryRule {
5096
- id?: number | string;
5108
+ id: React.Key;
5097
5109
  attribute?: string;
5098
5110
  operator?: string;
5099
5111
  value?: HvQueryBuilderQueryRuleValue;
@@ -5101,6 +5113,15 @@ export declare interface HvQueryBuilderQueryRule {
5101
5113
 
5102
5114
  export declare type HvQueryBuilderQueryRuleValue = string | number | boolean | HvQueryBuilderNumericRange | HvQueryBuilderDateTimeStrings | HvQueryBuilderDateTimeRange;
5103
5115
 
5116
+ export declare interface HvQueryBuilderRendererProps<V = any> {
5117
+ id: React.Key;
5118
+ attribute: string;
5119
+ operator?: string;
5120
+ value?: V;
5121
+ }
5122
+
5123
+ export declare type HvQueryBuilderRenderers = Record<string, FC<HvQueryBuilderRendererProps>>;
5124
+
5104
5125
  /**
5105
5126
  * A Radio Button is a mechanism that allows user to select just an option from a group of options.
5106
5127
  *
@@ -7629,12 +7650,43 @@ export declare const progressBarClasses: {
7629
7650
 
7630
7651
  declare type PropsToOmit<C extends React.ElementType, P> = keyof (AsProp<C> & P);
7631
7652
 
7653
+ declare type QueryAction = {
7654
+ type: "reset-query";
7655
+ } | {
7656
+ type: "reset-group";
7657
+ id: React.Key;
7658
+ } | {
7659
+ type: "add-rule" | "add-group" | "remove-node";
7660
+ id: React.Key;
7661
+ } | {
7662
+ type: "set-combinator";
7663
+ id: React.Key;
7664
+ combinator: string;
7665
+ } | {
7666
+ type: "set-attribute";
7667
+ id: React.Key;
7668
+ attribute?: string | null;
7669
+ operator?: string | null;
7670
+ value?: HvQueryBuilderQueryRuleValue | null;
7671
+ } | {
7672
+ type: "set-operator";
7673
+ id: React.Key;
7674
+ operator: string | null;
7675
+ value?: HvQueryBuilderQueryRuleValue | null;
7676
+ } | {
7677
+ type: "set-value";
7678
+ id: React.Key;
7679
+ value: HvQueryBuilderQueryRuleValue | null | any;
7680
+ };
7681
+
7632
7682
  export declare const queryBuilderClasses: {
7633
7683
  root: "HvQueryBuilder-root";
7634
7684
  topGroup: "HvQueryBuilder-topGroup";
7635
7685
  subGroup: "HvQueryBuilder-subGroup";
7636
7686
  subRulesContainer: "HvQueryBuilder-subRulesContainer";
7637
7687
  topActionButtonContainer: "HvQueryBuilder-topActionButtonContainer";
7688
+ createConditionButton: "HvQueryBuilder-createConditionButton";
7689
+ createGroupButton: "HvQueryBuilder-createGroupButton";
7638
7690
  removeButton: "HvQueryBuilder-removeButton";
7639
7691
  combinator: "HvQueryBuilder-combinator";
7640
7692
  topCombinator: "HvQueryBuilder-topCombinator";
@@ -8445,13 +8497,15 @@ declare const useClasses_113: (classesProp?: Partial<Record<"root", string>>, ad
8445
8497
  cx: (...args: any) => string;
8446
8498
  };
8447
8499
 
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) => {
8500
+ 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
8501
  classes: {
8450
8502
  root: string;
8451
8503
  topGroup: string;
8452
8504
  subGroup: string;
8453
8505
  subRulesContainer: string;
8454
8506
  topActionButtonContainer: string;
8507
+ createConditionButton: string;
8508
+ createGroupButton: string;
8455
8509
  removeButton: string;
8456
8510
  combinator: string;
8457
8511
  topCombinator: string;
@@ -10594,6 +10648,8 @@ export declare type UsePaginationProps = (<D extends object = Record<string, unk
10594
10648
  pluginName: string;
10595
10649
  };
10596
10650
 
10651
+ export declare const useQueryBuilderContext: () => HvQueryBuilderContextValue;
10652
+
10597
10653
  export declare type UseRowExpandProps = (<D extends object = Record<string, unknown>>(hooks: Hooks<D>) => void) & {
10598
10654
  pluginName: string;
10599
10655
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hitachivantara/uikit-react-core",
3
- "version": "5.36.10",
3
+ "version": "5.37.0",
4
4
  "private": false,
5
5
  "author": "Hitachi Vantara UI Kit Team",
6
6
  "description": "Core React components for the NEXT Design System.",
@@ -33,9 +33,9 @@
33
33
  "@emotion/css": "^11.11.0",
34
34
  "@emotion/serialize": "^1.1.2",
35
35
  "@emotion/utils": "^1.2.1",
36
- "@hitachivantara/uikit-react-icons": "^5.7.4",
37
- "@hitachivantara/uikit-react-shared": "^5.1.18",
38
- "@hitachivantara/uikit-styles": "^5.16.2",
36
+ "@hitachivantara/uikit-react-icons": "^5.7.6",
37
+ "@hitachivantara/uikit-react-shared": "^5.1.19",
38
+ "@hitachivantara/uikit-styles": "^5.16.3",
39
39
  "@internationalized/date": "^3.2.0",
40
40
  "@mui/base": "^5.0.0-beta.4",
41
41
  "@popperjs/core": "^2.11.8",
@@ -64,7 +64,7 @@
64
64
  "access": "public",
65
65
  "directory": "package"
66
66
  },
67
- "gitHead": "51d5aaf46b3f007d313ead5ce8bfd5d3b248bc80",
67
+ "gitHead": "ccae7457cd79b27e3c30bf3865f1fd1e2fbca56d",
68
68
  "main": "dist/cjs/index.cjs",
69
69
  "exports": {
70
70
  ".": {