@hitachivantara/uikit-react-core 5.36.9 → 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 (68) 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/cjs/components/Table/hooks/useRowSelection.cjs +2 -1
  33. package/dist/cjs/components/Table/hooks/useRowSelection.cjs.map +1 -1
  34. package/dist/esm/components/CheckBoxGroup/CheckBoxGroup.js +3 -1
  35. package/dist/esm/components/CheckBoxGroup/CheckBoxGroup.js.map +1 -1
  36. package/dist/esm/components/QueryBuilder/ConfirmationDialog/ConfirmationDialog.js.map +1 -1
  37. package/dist/esm/components/QueryBuilder/Context.js +10 -2
  38. package/dist/esm/components/QueryBuilder/Context.js.map +1 -1
  39. package/dist/esm/components/QueryBuilder/QueryBuilder.js +32 -26
  40. package/dist/esm/components/QueryBuilder/QueryBuilder.js.map +1 -1
  41. package/dist/esm/components/QueryBuilder/QueryBuilder.styles.js +10 -0
  42. package/dist/esm/components/QueryBuilder/QueryBuilder.styles.js.map +1 -1
  43. package/dist/esm/components/QueryBuilder/Rule/Attribute/Attribute.js +2 -2
  44. package/dist/esm/components/QueryBuilder/Rule/Attribute/Attribute.js.map +1 -1
  45. package/dist/esm/components/QueryBuilder/Rule/Operator/Operator.js +3 -3
  46. package/dist/esm/components/QueryBuilder/Rule/Operator/Operator.js.map +1 -1
  47. package/dist/esm/components/QueryBuilder/Rule/Rule.js +2 -2
  48. package/dist/esm/components/QueryBuilder/Rule/Rule.js.map +1 -1
  49. package/dist/esm/components/QueryBuilder/Rule/Value/BooleanValue/BooleanValue.js +2 -2
  50. package/dist/esm/components/QueryBuilder/Rule/Value/BooleanValue/BooleanValue.js.map +1 -1
  51. package/dist/esm/components/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.js +2 -2
  52. package/dist/esm/components/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.js.map +1 -1
  53. package/dist/esm/components/QueryBuilder/Rule/Value/DateTimeValue/utils.js.map +1 -1
  54. package/dist/esm/components/QueryBuilder/Rule/Value/NumericValue/NumericValue.js +5 -5
  55. package/dist/esm/components/QueryBuilder/Rule/Value/NumericValue/NumericValue.js.map +1 -1
  56. package/dist/esm/components/QueryBuilder/Rule/Value/TextValue/TextValue.js +2 -2
  57. package/dist/esm/components/QueryBuilder/Rule/Value/TextValue/TextValue.js.map +1 -1
  58. package/dist/esm/components/QueryBuilder/Rule/Value/Value.js +2 -2
  59. package/dist/esm/components/QueryBuilder/Rule/Value/Value.js.map +1 -1
  60. package/dist/esm/components/QueryBuilder/RuleGroup/RuleGroup.js +8 -14
  61. package/dist/esm/components/QueryBuilder/RuleGroup/RuleGroup.js.map +1 -1
  62. package/dist/esm/components/QueryBuilder/utils/index.js.map +1 -1
  63. package/dist/esm/components/QueryBuilder/utils/reducer.js +1 -1
  64. package/dist/esm/components/QueryBuilder/utils/reducer.js.map +1 -1
  65. package/dist/esm/components/Table/hooks/useRowSelection.js +2 -1
  66. package/dist/esm/components/Table/hooks/useRowSelection.js.map +1 -1
  67. package/dist/types/index.d.ts +28 -37
  68. package/package.json +5 -5
@@ -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;"}
@@ -12,6 +12,7 @@ actions.toggleRowLockedSelection = "toggleRowLockedSelection";
12
12
  const DEFAULT_LABELS = {
13
13
  selectRowCheckBoxAriaLabel: "Select this row"
14
14
  };
15
+ const hideHeaderVariants = ["checkbox", "actions"];
15
16
  const CellWithCheckBox = ({
16
17
  row,
17
18
  labels: labelsProp
@@ -41,7 +42,7 @@ const getHeaderPropsHook = (props, {
41
42
  column
42
43
  }) => {
43
44
  const nextProps = {};
44
- if (column.id === "_hv_selection") {
45
+ if (hideHeaderVariants.includes(column.variant)) {
45
46
  nextProps["aria-hidden"] = true;
46
47
  }
47
48
  return [props, nextProps];
@@ -1 +1 @@
1
- {"version":3,"file":"useRowSelection.js","sources":["../../../../../src/components/Table/hooks/useRowSelection.tsx"],"sourcesContent":["import { ChangeEvent, useCallback, useMemo } from \"react\";\nimport {\n Hooks,\n IdType,\n PropGetter,\n Row,\n actions,\n ensurePluginOrder,\n useGetLatest,\n useMountedLayoutEffect,\n makePropGetter,\n} from \"react-table\";\n\nimport { useLabels } from \"@core/hooks/useLabels\";\n\nimport { HvCheckBox } from \"@core/components/CheckBox\";\n\n// #region ##### TYPES #####\n\n// getRowProps:\nexport interface UseHvRowSelectionTableRowProps {\n selected?: boolean;\n}\n\n// getRowProps:\nexport interface UseHvRowSelectionTableColumnProps {\n \"aria-hidden\"?: boolean;\n}\n\nexport interface UseHvRowSelectionRowCheckboxProps {\n onChange?: (e: ChangeEvent, checked?: boolean) => void;\n checked?: boolean;\n disabled?: boolean;\n indeterminate?: boolean;\n}\n\nexport interface UseHvRowSelectionBulkCheckboxProps {\n onChange?: (e: ChangeEvent, checked?: boolean) => void;\n checked?: boolean;\n indeterminate?: boolean;\n}\n\nexport type UseHvRowSelectionTableOptions = Partial<{\n autoResetSelectedRows: boolean;\n autoResetLockedSelectionRows: boolean;\n selectSubRows: boolean;\n manualRowSelectedKey: string;\n applyToggleAllRowsSelectedToPrefilteredRows: boolean;\n}>;\n\nexport interface UseHvRowSelectionHooks<D extends object> {\n getToggleRowSelectedProps: Array<\n PropGetter<D, UseHvRowSelectionRowCheckboxProps>\n >;\n getToggleAllRowsSelectedProps: Array<\n PropGetter<D, UseHvRowSelectionBulkCheckboxProps>\n >;\n getToggleAllPageRowsSelectedProps: Array<\n PropGetter<D, UseHvRowSelectionBulkCheckboxProps>\n >;\n}\n\nexport interface UseHvRowSelectionState<D extends object> {\n selectedRowIds: Record<IdType<D>, boolean>;\n lockedSelectionRowIds: Record<IdType<D>, boolean>;\n}\n\nexport interface UseHvRowSelectionTableInstance<D extends object> {\n toggleRowSelected: (rowId: IdType<D>, set?: boolean) => void;\n toggleAllRowsSelected: (value?: boolean) => void;\n toggleAllPageRowsSelected: (value?: boolean) => void;\n getToggleAllRowsSelectedProps: (\n props?: Partial<UseHvRowSelectionBulkCheckboxProps>\n ) => UseHvRowSelectionBulkCheckboxProps;\n getToggleAllPageRowsSelectedProps: (\n props?: Partial<UseHvRowSelectionBulkCheckboxProps>\n ) => UseHvRowSelectionBulkCheckboxProps;\n\n isNoRowsSelected: boolean;\n isNoPageRowsSelected: boolean;\n isAllRowsSelected: boolean;\n isAllPageRowsSelected: boolean;\n isAllSelectableRowsSelected: boolean;\n isAllSelectablePageRowsSelected: boolean;\n isAllSelectableRowsUnselected: boolean;\n isAllSelectablePageRowsUnselected: boolean;\n\n selectedFlatRows: Array<Row<D>>;\n}\n\nexport interface UseHvRowSelectionRowInstance {\n isSelected: boolean;\n isSomeSelected: boolean;\n isSelectionLocked: boolean;\n toggleRowLockedSelection: (set?: boolean) => void;\n toggleRowSelected: (set?: boolean) => void;\n getToggleRowSelectedProps: (\n props?: Partial<UseHvRowSelectionRowCheckboxProps>\n ) => UseHvRowSelectionRowCheckboxProps;\n}\n\nexport type UseRowSelectionProps = (<\n D extends object = Record<string, unknown>\n>(\n hooks: Hooks<D>\n) => void) & { pluginName: string };\n\n// #endregion ##### TYPES #####\n\n// Actions\nactions.resetSelectedRows = \"resetSelectedRows\";\nactions.toggleAllRowsSelected = \"toggleAllRowsSelected\";\nactions.toggleRowSelected = \"toggleRowSelected\";\nactions.toggleAllPageRowsSelected = \"toggleAllPageRowsSelected\";\n\nactions.resetLockedSelectionRows = \"resetLockedSelectionRows\";\nactions.toggleRowLockedSelection = \"toggleRowLockedSelection\";\n\nconst DEFAULT_LABELS = {\n selectRowCheckBoxAriaLabel: \"Select this row\",\n};\n\nexport const CellWithCheckBox = ({ row, labels: labelsProp }) => {\n const labels = useLabels(DEFAULT_LABELS, labelsProp);\n\n const { onChange, checked, disabled, indeterminate } =\n row.getToggleRowSelectedProps();\n\n return (\n <HvCheckBox\n onChange={onChange}\n checked={checked}\n disabled={disabled}\n indeterminate={indeterminate}\n aria-label={labels.selectRowCheckBoxAriaLabel}\n />\n );\n};\n\nconst visibleColumnsHook = (columns) => {\n const selectionColumn = {\n id: \"_hv_selection\",\n variant: \"checkbox\",\n\n width: 32,\n\n // this will only work when using useHvTableSticky\n // but ensures it stays left of any sticky column\n sticky: \"left\",\n\n Cell: CellWithCheckBox,\n };\n\n return [selectionColumn, ...columns];\n};\n\nconst getHeaderPropsHook = (props, { column }) => {\n const nextProps: UseHvRowSelectionTableColumnProps = {};\n\n if (column.id === \"_hv_selection\") {\n nextProps[\"aria-hidden\"] = true;\n }\n return [props, nextProps];\n};\n\nconst getRowPropsHook = (props, { row }) => {\n const nextProps: UseHvRowSelectionTableRowProps = {\n selected: row.isSelected,\n };\n\n return [props, nextProps];\n};\n\nexport const defaultGetToggleRowSelectedProps = (props, meta) => {\n const { instance, row } = meta;\n const { manualRowSelectedKey = \"isSelected\" } = instance;\n let checked = false;\n\n if (row.original && row.original[manualRowSelectedKey]) {\n checked = true;\n } else {\n checked = row.isSelected;\n }\n\n return [\n props,\n {\n onChange: (e, check) => {\n row.toggleRowSelected(check ?? e?.target?.checked);\n },\n disabled: row.isSelectionLocked,\n checked,\n indeterminate: row.isSomeSelected,\n },\n ];\n};\n\nexport const defaultGetToggleAllRowsSelectedProps = (props, { instance }) => [\n props,\n {\n onChange: (e) => {\n instance.toggleAllRowsSelected(e.target.checked);\n },\n checked: instance.isAllRowsSelected,\n indeterminate: Boolean(\n !instance.isAllRowsSelected &&\n Object.keys(instance.state.selectedRowIds).length\n ),\n },\n];\n\nexport const defaultGetToggleAllPageRowsSelectedProps = (\n props,\n { instance }\n) => [\n props,\n {\n onChange(e) {\n instance.toggleAllPageRowsSelected(e.target.checked);\n },\n checked: instance.isAllPageRowsSelected,\n indeterminate: Boolean(\n !instance.isAllPageRowsSelected &&\n instance.page.some(({ id }) => instance.state.selectedRowIds[id])\n ),\n },\n];\n\nexport function reducer(state, action, previousState, instance) {\n if (action.type === actions.init) {\n return {\n selectedRowIds: {},\n lockedSelectionRowIds: {},\n ...state,\n };\n }\n\n if (action.type === actions.resetSelectedRows) {\n return {\n ...state,\n selectedRowIds: instance.initialState.selectedRowIds || {},\n };\n }\n\n if (action.type === actions.toggleAllRowsSelected) {\n const { value: setSelected } = action;\n const {\n isAllRowsSelected,\n rowsById,\n initialRowsById,\n nonGroupedRowsById = rowsById,\n applyToggleAllRowsSelectedToPrefilteredRows,\n } = instance;\n\n const rowsToSelect = applyToggleAllRowsSelectedToPrefilteredRows\n ? initialRowsById\n : nonGroupedRowsById;\n\n const selectAll =\n typeof setSelected !== \"undefined\" ? setSelected : !isAllRowsSelected;\n\n // Only remove/add the rows that are visible on the screen\n // Leave all the other rows that are selected alone.\n const selectedRowIds = { ...state.selectedRowIds };\n\n if (selectAll) {\n Object.keys(rowsToSelect).forEach((rowId) => {\n const isSelectionLocked = state.lockedSelectionRowIds[rowId];\n if (!isSelectionLocked) {\n selectedRowIds[rowId] = true;\n }\n });\n } else {\n Object.keys(rowsToSelect).forEach((rowId) => {\n const isSelectionLocked = state.lockedSelectionRowIds[rowId];\n if (!isSelectionLocked) {\n delete selectedRowIds[rowId];\n }\n });\n }\n\n return {\n ...state,\n selectedRowIds,\n };\n }\n\n if (action.type === actions.toggleRowSelected) {\n const { id, value: setSelected } = action;\n const isSelectionLocked = state.lockedSelectionRowIds[id];\n if (isSelectionLocked) {\n return state;\n }\n\n const { rowsById, selectSubRows = true, getSubRows } = instance;\n const isSelected = state.selectedRowIds[id];\n const shouldExist =\n typeof setSelected !== \"undefined\" ? setSelected : !isSelected;\n\n if (isSelected === shouldExist) {\n return state;\n }\n\n const newSelectedRowIds = { ...state.selectedRowIds };\n\n const handleRowById = (rowId) => {\n const row = rowsById[rowId];\n\n if (!row.isGrouped) {\n if (shouldExist) {\n newSelectedRowIds[rowId] = true;\n } else {\n delete newSelectedRowIds[rowId];\n }\n }\n\n if (selectSubRows && getSubRows(row)) {\n getSubRows(row).forEach((subrow) => {\n handleRowById(subrow.id);\n });\n }\n };\n\n handleRowById(id);\n\n return {\n ...state,\n selectedRowIds: newSelectedRowIds,\n };\n }\n\n if (action.type === actions.toggleAllPageRowsSelected) {\n const { value: setSelected } = action;\n const {\n page,\n rowsById,\n selectSubRows = true,\n isAllPageRowsSelected,\n getSubRows,\n } = instance;\n\n const selectAll =\n typeof setSelected !== \"undefined\" ? setSelected : !isAllPageRowsSelected;\n const newSelectedRowIds = { ...state.selectedRowIds };\n\n const handleRowById = (rowId) => {\n const row = rowsById[rowId];\n const isSelectionLocked = state.lockedSelectionRowIds[rowId];\n\n if (!isSelectionLocked && !row.isGrouped) {\n if (selectAll) {\n newSelectedRowIds[rowId] = true;\n } else {\n delete newSelectedRowIds[rowId];\n }\n }\n\n if (selectSubRows && getSubRows(row)) {\n getSubRows(row).forEach((subrow) => {\n handleRowById(subrow.id);\n });\n }\n };\n\n page.forEach((row) => handleRowById(row.id));\n\n return {\n ...state,\n selectedRowIds: newSelectedRowIds,\n };\n }\n\n if (action.type === actions.resetLockedSelectionRows) {\n return {\n ...state,\n lockedSelectionRowIds: instance.initialState.lockedSelectionRowIds || {},\n };\n }\n\n if (action.type === actions.toggleRowLockedSelection) {\n const { id, value: setLockedSelection } = action;\n const { rowsById, selectSubRows = true, getSubRows } = instance;\n const isLockedSelection = state.lockedSelectionRowIds[id];\n const shouldExist =\n typeof setLockedSelection !== \"undefined\"\n ? setLockedSelection\n : !isLockedSelection;\n\n if (isLockedSelection === shouldExist) {\n return state;\n }\n\n const newLockedSelectionRowIds = { ...state.lockedSelectionRowIds };\n\n const handleRowById = (rowId) => {\n const row = rowsById[rowId];\n\n if (!row.isGrouped) {\n if (shouldExist) {\n newLockedSelectionRowIds[rowId] = true;\n } else {\n delete newLockedSelectionRowIds[rowId];\n }\n }\n\n if (selectSubRows && getSubRows(row)) {\n getSubRows(row).forEach((subrow) => {\n handleRowById(subrow.id);\n });\n }\n };\n\n handleRowById(id);\n\n return {\n ...state,\n lockedSelectionRowIds: newLockedSelectionRowIds,\n };\n }\n\n return state;\n}\n\nfunction getRowIsSelected(row, selectedRowIds, getSubRows) {\n if (selectedRowIds[row.id]) {\n return true;\n }\n\n const subRows = getSubRows(row);\n\n if (subRows && subRows.length) {\n let allChildrenSelected = true;\n let someSelected = false;\n\n subRows.forEach((subRow) => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return;\n }\n\n if (getRowIsSelected(subRow, selectedRowIds, getSubRows)) {\n someSelected = true;\n } else {\n allChildrenSelected = false;\n }\n });\n\n if (allChildrenSelected) {\n return true;\n }\n\n if (someSelected) {\n return null;\n }\n }\n\n return false;\n}\n\nexport function useInstance(instance) {\n const {\n data,\n rows,\n getHooks,\n plugins,\n rowsById,\n initialRowsById,\n nonGroupedRowsById = rowsById,\n autoResetSelectedRows = true,\n autoResetLockedSelectionRows = true,\n state: { selectedRowIds, lockedSelectionRowIds },\n selectSubRows = true,\n dispatch,\n page,\n getSubRows,\n applyToggleAllRowsSelectedToPrefilteredRows,\n } = instance;\n\n ensurePluginOrder(\n plugins,\n [\"useFilters\", \"useGroupBy\", \"useSortBy\", \"useExpanded\", \"usePagination\"],\n \"useHvRowSelection\"\n );\n\n const rowsToSelect = applyToggleAllRowsSelectedToPrefilteredRows\n ? initialRowsById\n : nonGroupedRowsById;\n\n const selectedFlatRows = useMemo(() => {\n const selectedRows: any[] = [];\n\n rows.forEach((row) => {\n const isSelected = selectSubRows\n ? getRowIsSelected(row, selectedRowIds, getSubRows)\n : !!selectedRowIds[row.id];\n row.isSelected = !!isSelected;\n row.isSomeSelected = isSelected === null;\n\n if (isSelected) {\n selectedRows.push(row);\n }\n });\n\n return selectedRows;\n }, [rows, selectSubRows, selectedRowIds, getSubRows]);\n\n const existsLockedRows = !!Object.keys(lockedSelectionRowIds).length;\n\n const isNoRowsSelected = !(\n Object.keys(rowsToSelect).length && selectedFlatRows.length\n );\n\n let isNoPageRowsSelected;\n let isAllRowsSelected;\n let isAllPageRowsSelected;\n\n let isAllSelectableRowsUnselected;\n let isAllSelectablePageRowsUnselected;\n let isAllSelectableRowsSelected;\n let isAllSelectablePageRowsSelected;\n\n if (isNoRowsSelected) {\n isAllRowsSelected = false;\n isAllPageRowsSelected = false;\n\n isAllSelectableRowsSelected =\n existsLockedRows &&\n !Object.keys(rowsToSelect).some((id) => !lockedSelectionRowIds[id]);\n isAllSelectablePageRowsSelected = isAllSelectableRowsSelected;\n\n isAllSelectableRowsUnselected = isAllSelectableRowsSelected;\n isAllSelectablePageRowsUnselected = isAllSelectableRowsSelected;\n\n isNoPageRowsSelected = true;\n } else {\n isAllRowsSelected = !Object.keys(rowsToSelect).some(\n (id) => !selectedRowIds[id]\n );\n\n if (isAllRowsSelected) {\n isAllSelectableRowsSelected = true;\n isAllSelectablePageRowsSelected = true;\n\n isAllSelectableRowsUnselected =\n existsLockedRows &&\n Object.keys(rowsToSelect).filter((id) => !lockedSelectionRowIds[id])\n .length === 0;\n isAllSelectablePageRowsUnselected = isAllSelectableRowsUnselected;\n\n isNoPageRowsSelected = false;\n isAllPageRowsSelected = true;\n } else {\n isAllSelectableRowsSelected =\n existsLockedRows &&\n !Object.keys(rowsToSelect)\n .filter((id) => !lockedSelectionRowIds[id])\n .some((id) => !selectedRowIds[id]);\n\n isAllSelectableRowsUnselected =\n !existsLockedRows ||\n !Object.keys(rowsToSelect)\n .filter((id) => !lockedSelectionRowIds[id])\n .some((id) => selectedRowIds[id]);\n\n isAllPageRowsSelected = !(\n page &&\n page.length &&\n page.some(({ id }) => !selectedRowIds[id])\n );\n\n if (isAllPageRowsSelected) {\n isAllSelectablePageRowsSelected = true;\n\n isAllSelectablePageRowsUnselected =\n existsLockedRows &&\n page &&\n page.length &&\n page.filter(({ id }) => !lockedSelectionRowIds[id]).length === 0;\n\n isNoPageRowsSelected = false;\n } else {\n isAllSelectablePageRowsSelected =\n existsLockedRows &&\n !(\n page &&\n page.length &&\n page\n .filter(({ id }) => !lockedSelectionRowIds[id])\n .some(({ id }) => !selectedRowIds[id])\n );\n\n isAllSelectablePageRowsUnselected =\n !existsLockedRows ||\n !(\n page &&\n page.length &&\n page\n .filter(({ id }) => !lockedSelectionRowIds[id])\n .some(({ id }) => selectedRowIds[id])\n );\n\n isNoPageRowsSelected = !(\n page &&\n page.length &&\n page.some(({ id }) => selectedRowIds[id])\n );\n }\n }\n }\n\n const getAutoResetSelectedRows = useGetLatest(autoResetSelectedRows);\n\n const getAutoResetLockedSelectionRows = useGetLatest(\n autoResetLockedSelectionRows\n );\n\n useMountedLayoutEffect(() => {\n if (getAutoResetSelectedRows()) {\n dispatch({ type: actions.resetSelectedRows });\n }\n if (getAutoResetLockedSelectionRows()) {\n dispatch({ type: actions.resetLockedSelectionRows });\n }\n }, [dispatch, data]);\n\n const toggleAllRowsSelected = useCallback(\n (value) => dispatch({ type: actions.toggleAllRowsSelected, value }),\n [dispatch]\n );\n\n const toggleAllPageRowsSelected = useCallback(\n (value) => dispatch({ type: actions.toggleAllPageRowsSelected, value }),\n [dispatch]\n );\n\n const toggleRowSelected = useCallback(\n (id, value) => dispatch({ type: actions.toggleRowSelected, id, value }),\n [dispatch]\n );\n\n const getInstance = useGetLatest(instance);\n\n const getToggleAllRowsSelectedProps = makePropGetter(\n getHooks().getToggleAllRowsSelectedProps,\n {\n instance: getInstance(),\n }\n );\n\n const getToggleAllPageRowsSelectedProps = makePropGetter(\n getHooks().getToggleAllPageRowsSelectedProps,\n { instance: getInstance() }\n );\n\n const toggleRowLockedSelection = useCallback(\n (id, value) =>\n dispatch({ type: actions.toggleRowLockedSelection, id, value }),\n [dispatch]\n );\n\n Object.assign(instance, {\n selectedFlatRows,\n isNoRowsSelected,\n isNoPageRowsSelected,\n isAllRowsSelected,\n isAllPageRowsSelected,\n isAllSelectableRowsSelected,\n isAllSelectablePageRowsSelected,\n isAllSelectableRowsUnselected,\n isAllSelectablePageRowsUnselected,\n toggleRowSelected,\n toggleAllRowsSelected,\n getToggleAllRowsSelectedProps,\n getToggleAllPageRowsSelectedProps,\n toggleAllPageRowsSelected,\n toggleRowLockedSelection,\n });\n}\n\nexport function prepareRow(row, { instance }) {\n row.toggleRowSelected = (set) => instance.toggleRowSelected(row.id, set);\n row.getToggleRowSelectedProps = makePropGetter(\n instance.getHooks().getToggleRowSelectedProps,\n {\n instance,\n row,\n }\n );\n\n row.toggleRowLockedSelection = (set) =>\n instance.toggleRowLockedSelection(row.id, set);\n row.isSelectionLocked =\n instance.state?.lockedSelectionRowIds?.[row.id] || false;\n}\n\nconst useRowSelection: UseRowSelectionProps = (hooks) => {\n hooks.visibleColumns.push(visibleColumnsHook);\n\n hooks.getRowProps.push(getRowPropsHook);\n\n // props target: <table><thead><tr><th>\n hooks.getHeaderProps.push(getHeaderPropsHook);\n\n hooks.getToggleRowSelectedProps = [defaultGetToggleRowSelectedProps];\n hooks.getToggleAllRowsSelectedProps = [defaultGetToggleAllRowsSelectedProps];\n hooks.getToggleAllPageRowsSelectedProps = [\n defaultGetToggleAllPageRowsSelectedProps,\n ];\n\n hooks.stateReducers.push(reducer);\n hooks.useInstance.push(useInstance);\n hooks.prepareRow.push(prepareRow);\n};\n\nuseRowSelection.pluginName = \"useHvRowSelection\";\n\nexport default useRowSelection;\n"],"names":["actions","resetSelectedRows","toggleAllRowsSelected","toggleRowSelected","toggleAllPageRowsSelected","resetLockedSelectionRows","toggleRowLockedSelection","DEFAULT_LABELS","selectRowCheckBoxAriaLabel","CellWithCheckBox","row","labels","labelsProp","useLabels","onChange","checked","disabled","indeterminate","getToggleRowSelectedProps","visibleColumnsHook","columns","selectionColumn","id","variant","width","sticky","Cell","getHeaderPropsHook","props","column","nextProps","getRowPropsHook","selected","isSelected","defaultGetToggleRowSelectedProps","meta","instance","manualRowSelectedKey","original","e","check","target","isSelectionLocked","isSomeSelected","defaultGetToggleAllRowsSelectedProps","isAllRowsSelected","Boolean","Object","keys","state","selectedRowIds","length","defaultGetToggleAllPageRowsSelectedProps","isAllPageRowsSelected","page","some","reducer","action","previousState","type","init","lockedSelectionRowIds","initialState","value","setSelected","rowsById","initialRowsById","nonGroupedRowsById","applyToggleAllRowsSelectedToPrefilteredRows","rowsToSelect","selectAll","forEach","rowId","selectSubRows","getSubRows","shouldExist","newSelectedRowIds","handleRowById","isGrouped","subrow","setLockedSelection","isLockedSelection","newLockedSelectionRowIds","getRowIsSelected","subRows","allChildrenSelected","someSelected","subRow","useInstance","data","rows","getHooks","plugins","autoResetSelectedRows","autoResetLockedSelectionRows","dispatch","selectedFlatRows","useMemo","selectedRows","push","existsLockedRows","isNoRowsSelected","isNoPageRowsSelected","isAllSelectableRowsUnselected","isAllSelectablePageRowsUnselected","isAllSelectableRowsSelected","isAllSelectablePageRowsSelected","filter","getAutoResetSelectedRows","useGetLatest","getAutoResetLockedSelectionRows","useMountedLayoutEffect","useCallback","getInstance","getToggleAllRowsSelectedProps","makePropGetter","getToggleAllPageRowsSelectedProps","assign","prepareRow","set","useRowSelection","hooks","visibleColumns","getRowProps","getHeaderProps","stateReducers","pluginName"],"mappings":"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"}
1
+ {"version":3,"file":"useRowSelection.js","sources":["../../../../../src/components/Table/hooks/useRowSelection.tsx"],"sourcesContent":["import { ChangeEvent, useCallback, useMemo } from \"react\";\nimport {\n Hooks,\n IdType,\n PropGetter,\n Row,\n actions,\n ensurePluginOrder,\n useGetLatest,\n useMountedLayoutEffect,\n makePropGetter,\n} from \"react-table\";\n\nimport { useLabels } from \"@core/hooks/useLabels\";\n\nimport { HvCheckBox } from \"@core/components/CheckBox\";\n\n// #region ##### TYPES #####\n\n// getRowProps:\nexport interface UseHvRowSelectionTableRowProps {\n selected?: boolean;\n}\n\n// getRowProps:\nexport interface UseHvRowSelectionTableColumnProps {\n \"aria-hidden\"?: boolean;\n}\n\nexport interface UseHvRowSelectionRowCheckboxProps {\n onChange?: (e: ChangeEvent, checked?: boolean) => void;\n checked?: boolean;\n disabled?: boolean;\n indeterminate?: boolean;\n}\n\nexport interface UseHvRowSelectionBulkCheckboxProps {\n onChange?: (e: ChangeEvent, checked?: boolean) => void;\n checked?: boolean;\n indeterminate?: boolean;\n}\n\nexport type UseHvRowSelectionTableOptions = Partial<{\n autoResetSelectedRows: boolean;\n autoResetLockedSelectionRows: boolean;\n selectSubRows: boolean;\n manualRowSelectedKey: string;\n applyToggleAllRowsSelectedToPrefilteredRows: boolean;\n}>;\n\nexport interface UseHvRowSelectionHooks<D extends object> {\n getToggleRowSelectedProps: Array<\n PropGetter<D, UseHvRowSelectionRowCheckboxProps>\n >;\n getToggleAllRowsSelectedProps: Array<\n PropGetter<D, UseHvRowSelectionBulkCheckboxProps>\n >;\n getToggleAllPageRowsSelectedProps: Array<\n PropGetter<D, UseHvRowSelectionBulkCheckboxProps>\n >;\n}\n\nexport interface UseHvRowSelectionState<D extends object> {\n selectedRowIds: Record<IdType<D>, boolean>;\n lockedSelectionRowIds: Record<IdType<D>, boolean>;\n}\n\nexport interface UseHvRowSelectionTableInstance<D extends object> {\n toggleRowSelected: (rowId: IdType<D>, set?: boolean) => void;\n toggleAllRowsSelected: (value?: boolean) => void;\n toggleAllPageRowsSelected: (value?: boolean) => void;\n getToggleAllRowsSelectedProps: (\n props?: Partial<UseHvRowSelectionBulkCheckboxProps>\n ) => UseHvRowSelectionBulkCheckboxProps;\n getToggleAllPageRowsSelectedProps: (\n props?: Partial<UseHvRowSelectionBulkCheckboxProps>\n ) => UseHvRowSelectionBulkCheckboxProps;\n\n isNoRowsSelected: boolean;\n isNoPageRowsSelected: boolean;\n isAllRowsSelected: boolean;\n isAllPageRowsSelected: boolean;\n isAllSelectableRowsSelected: boolean;\n isAllSelectablePageRowsSelected: boolean;\n isAllSelectableRowsUnselected: boolean;\n isAllSelectablePageRowsUnselected: boolean;\n\n selectedFlatRows: Array<Row<D>>;\n}\n\nexport interface UseHvRowSelectionRowInstance {\n isSelected: boolean;\n isSomeSelected: boolean;\n isSelectionLocked: boolean;\n toggleRowLockedSelection: (set?: boolean) => void;\n toggleRowSelected: (set?: boolean) => void;\n getToggleRowSelectedProps: (\n props?: Partial<UseHvRowSelectionRowCheckboxProps>\n ) => UseHvRowSelectionRowCheckboxProps;\n}\n\nexport type UseRowSelectionProps = (<\n D extends object = Record<string, unknown>\n>(\n hooks: Hooks<D>\n) => void) & { pluginName: string };\n\n// #endregion ##### TYPES #####\n\n// Actions\nactions.resetSelectedRows = \"resetSelectedRows\";\nactions.toggleAllRowsSelected = \"toggleAllRowsSelected\";\nactions.toggleRowSelected = \"toggleRowSelected\";\nactions.toggleAllPageRowsSelected = \"toggleAllPageRowsSelected\";\n\nactions.resetLockedSelectionRows = \"resetLockedSelectionRows\";\nactions.toggleRowLockedSelection = \"toggleRowLockedSelection\";\n\nconst DEFAULT_LABELS = {\n selectRowCheckBoxAriaLabel: \"Select this row\",\n};\n\nconst hideHeaderVariants = [\"checkbox\", \"actions\"];\n\nexport const CellWithCheckBox = ({ row, labels: labelsProp }) => {\n const labels = useLabels(DEFAULT_LABELS, labelsProp);\n\n const { onChange, checked, disabled, indeterminate } =\n row.getToggleRowSelectedProps();\n\n return (\n <HvCheckBox\n onChange={onChange}\n checked={checked}\n disabled={disabled}\n indeterminate={indeterminate}\n aria-label={labels.selectRowCheckBoxAriaLabel}\n />\n );\n};\n\nconst visibleColumnsHook = (columns) => {\n const selectionColumn = {\n id: \"_hv_selection\",\n variant: \"checkbox\",\n\n width: 32,\n\n // this will only work when using useHvTableSticky\n // but ensures it stays left of any sticky column\n sticky: \"left\",\n\n Cell: CellWithCheckBox,\n };\n\n return [selectionColumn, ...columns];\n};\n\nconst getHeaderPropsHook = (props, { column }) => {\n const nextProps: UseHvRowSelectionTableColumnProps = {};\n\n if (hideHeaderVariants.includes(column.variant)) {\n nextProps[\"aria-hidden\"] = true;\n }\n return [props, nextProps];\n};\n\nconst getRowPropsHook = (props, { row }) => {\n const nextProps: UseHvRowSelectionTableRowProps = {\n selected: row.isSelected,\n };\n\n return [props, nextProps];\n};\n\nexport const defaultGetToggleRowSelectedProps = (props, meta) => {\n const { instance, row } = meta;\n const { manualRowSelectedKey = \"isSelected\" } = instance;\n let checked = false;\n\n if (row.original && row.original[manualRowSelectedKey]) {\n checked = true;\n } else {\n checked = row.isSelected;\n }\n\n return [\n props,\n {\n onChange: (e, check) => {\n row.toggleRowSelected(check ?? e?.target?.checked);\n },\n disabled: row.isSelectionLocked,\n checked,\n indeterminate: row.isSomeSelected,\n },\n ];\n};\n\nexport const defaultGetToggleAllRowsSelectedProps = (props, { instance }) => [\n props,\n {\n onChange: (e) => {\n instance.toggleAllRowsSelected(e.target.checked);\n },\n checked: instance.isAllRowsSelected,\n indeterminate: Boolean(\n !instance.isAllRowsSelected &&\n Object.keys(instance.state.selectedRowIds).length\n ),\n },\n];\n\nexport const defaultGetToggleAllPageRowsSelectedProps = (\n props,\n { instance }\n) => [\n props,\n {\n onChange(e) {\n instance.toggleAllPageRowsSelected(e.target.checked);\n },\n checked: instance.isAllPageRowsSelected,\n indeterminate: Boolean(\n !instance.isAllPageRowsSelected &&\n instance.page.some(({ id }) => instance.state.selectedRowIds[id])\n ),\n },\n];\n\nexport function reducer(state, action, previousState, instance) {\n if (action.type === actions.init) {\n return {\n selectedRowIds: {},\n lockedSelectionRowIds: {},\n ...state,\n };\n }\n\n if (action.type === actions.resetSelectedRows) {\n return {\n ...state,\n selectedRowIds: instance.initialState.selectedRowIds || {},\n };\n }\n\n if (action.type === actions.toggleAllRowsSelected) {\n const { value: setSelected } = action;\n const {\n isAllRowsSelected,\n rowsById,\n initialRowsById,\n nonGroupedRowsById = rowsById,\n applyToggleAllRowsSelectedToPrefilteredRows,\n } = instance;\n\n const rowsToSelect = applyToggleAllRowsSelectedToPrefilteredRows\n ? initialRowsById\n : nonGroupedRowsById;\n\n const selectAll =\n typeof setSelected !== \"undefined\" ? setSelected : !isAllRowsSelected;\n\n // Only remove/add the rows that are visible on the screen\n // Leave all the other rows that are selected alone.\n const selectedRowIds = { ...state.selectedRowIds };\n\n if (selectAll) {\n Object.keys(rowsToSelect).forEach((rowId) => {\n const isSelectionLocked = state.lockedSelectionRowIds[rowId];\n if (!isSelectionLocked) {\n selectedRowIds[rowId] = true;\n }\n });\n } else {\n Object.keys(rowsToSelect).forEach((rowId) => {\n const isSelectionLocked = state.lockedSelectionRowIds[rowId];\n if (!isSelectionLocked) {\n delete selectedRowIds[rowId];\n }\n });\n }\n\n return {\n ...state,\n selectedRowIds,\n };\n }\n\n if (action.type === actions.toggleRowSelected) {\n const { id, value: setSelected } = action;\n const isSelectionLocked = state.lockedSelectionRowIds[id];\n if (isSelectionLocked) {\n return state;\n }\n\n const { rowsById, selectSubRows = true, getSubRows } = instance;\n const isSelected = state.selectedRowIds[id];\n const shouldExist =\n typeof setSelected !== \"undefined\" ? setSelected : !isSelected;\n\n if (isSelected === shouldExist) {\n return state;\n }\n\n const newSelectedRowIds = { ...state.selectedRowIds };\n\n const handleRowById = (rowId) => {\n const row = rowsById[rowId];\n\n if (!row.isGrouped) {\n if (shouldExist) {\n newSelectedRowIds[rowId] = true;\n } else {\n delete newSelectedRowIds[rowId];\n }\n }\n\n if (selectSubRows && getSubRows(row)) {\n getSubRows(row).forEach((subrow) => {\n handleRowById(subrow.id);\n });\n }\n };\n\n handleRowById(id);\n\n return {\n ...state,\n selectedRowIds: newSelectedRowIds,\n };\n }\n\n if (action.type === actions.toggleAllPageRowsSelected) {\n const { value: setSelected } = action;\n const {\n page,\n rowsById,\n selectSubRows = true,\n isAllPageRowsSelected,\n getSubRows,\n } = instance;\n\n const selectAll =\n typeof setSelected !== \"undefined\" ? setSelected : !isAllPageRowsSelected;\n const newSelectedRowIds = { ...state.selectedRowIds };\n\n const handleRowById = (rowId) => {\n const row = rowsById[rowId];\n const isSelectionLocked = state.lockedSelectionRowIds[rowId];\n\n if (!isSelectionLocked && !row.isGrouped) {\n if (selectAll) {\n newSelectedRowIds[rowId] = true;\n } else {\n delete newSelectedRowIds[rowId];\n }\n }\n\n if (selectSubRows && getSubRows(row)) {\n getSubRows(row).forEach((subrow) => {\n handleRowById(subrow.id);\n });\n }\n };\n\n page.forEach((row) => handleRowById(row.id));\n\n return {\n ...state,\n selectedRowIds: newSelectedRowIds,\n };\n }\n\n if (action.type === actions.resetLockedSelectionRows) {\n return {\n ...state,\n lockedSelectionRowIds: instance.initialState.lockedSelectionRowIds || {},\n };\n }\n\n if (action.type === actions.toggleRowLockedSelection) {\n const { id, value: setLockedSelection } = action;\n const { rowsById, selectSubRows = true, getSubRows } = instance;\n const isLockedSelection = state.lockedSelectionRowIds[id];\n const shouldExist =\n typeof setLockedSelection !== \"undefined\"\n ? setLockedSelection\n : !isLockedSelection;\n\n if (isLockedSelection === shouldExist) {\n return state;\n }\n\n const newLockedSelectionRowIds = { ...state.lockedSelectionRowIds };\n\n const handleRowById = (rowId) => {\n const row = rowsById[rowId];\n\n if (!row.isGrouped) {\n if (shouldExist) {\n newLockedSelectionRowIds[rowId] = true;\n } else {\n delete newLockedSelectionRowIds[rowId];\n }\n }\n\n if (selectSubRows && getSubRows(row)) {\n getSubRows(row).forEach((subrow) => {\n handleRowById(subrow.id);\n });\n }\n };\n\n handleRowById(id);\n\n return {\n ...state,\n lockedSelectionRowIds: newLockedSelectionRowIds,\n };\n }\n\n return state;\n}\n\nfunction getRowIsSelected(row, selectedRowIds, getSubRows) {\n if (selectedRowIds[row.id]) {\n return true;\n }\n\n const subRows = getSubRows(row);\n\n if (subRows && subRows.length) {\n let allChildrenSelected = true;\n let someSelected = false;\n\n subRows.forEach((subRow) => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return;\n }\n\n if (getRowIsSelected(subRow, selectedRowIds, getSubRows)) {\n someSelected = true;\n } else {\n allChildrenSelected = false;\n }\n });\n\n if (allChildrenSelected) {\n return true;\n }\n\n if (someSelected) {\n return null;\n }\n }\n\n return false;\n}\n\nexport function useInstance(instance) {\n const {\n data,\n rows,\n getHooks,\n plugins,\n rowsById,\n initialRowsById,\n nonGroupedRowsById = rowsById,\n autoResetSelectedRows = true,\n autoResetLockedSelectionRows = true,\n state: { selectedRowIds, lockedSelectionRowIds },\n selectSubRows = true,\n dispatch,\n page,\n getSubRows,\n applyToggleAllRowsSelectedToPrefilteredRows,\n } = instance;\n\n ensurePluginOrder(\n plugins,\n [\"useFilters\", \"useGroupBy\", \"useSortBy\", \"useExpanded\", \"usePagination\"],\n \"useHvRowSelection\"\n );\n\n const rowsToSelect = applyToggleAllRowsSelectedToPrefilteredRows\n ? initialRowsById\n : nonGroupedRowsById;\n\n const selectedFlatRows = useMemo(() => {\n const selectedRows: any[] = [];\n\n rows.forEach((row) => {\n const isSelected = selectSubRows\n ? getRowIsSelected(row, selectedRowIds, getSubRows)\n : !!selectedRowIds[row.id];\n row.isSelected = !!isSelected;\n row.isSomeSelected = isSelected === null;\n\n if (isSelected) {\n selectedRows.push(row);\n }\n });\n\n return selectedRows;\n }, [rows, selectSubRows, selectedRowIds, getSubRows]);\n\n const existsLockedRows = !!Object.keys(lockedSelectionRowIds).length;\n\n const isNoRowsSelected = !(\n Object.keys(rowsToSelect).length && selectedFlatRows.length\n );\n\n let isNoPageRowsSelected;\n let isAllRowsSelected;\n let isAllPageRowsSelected;\n\n let isAllSelectableRowsUnselected;\n let isAllSelectablePageRowsUnselected;\n let isAllSelectableRowsSelected;\n let isAllSelectablePageRowsSelected;\n\n if (isNoRowsSelected) {\n isAllRowsSelected = false;\n isAllPageRowsSelected = false;\n\n isAllSelectableRowsSelected =\n existsLockedRows &&\n !Object.keys(rowsToSelect).some((id) => !lockedSelectionRowIds[id]);\n isAllSelectablePageRowsSelected = isAllSelectableRowsSelected;\n\n isAllSelectableRowsUnselected = isAllSelectableRowsSelected;\n isAllSelectablePageRowsUnselected = isAllSelectableRowsSelected;\n\n isNoPageRowsSelected = true;\n } else {\n isAllRowsSelected = !Object.keys(rowsToSelect).some(\n (id) => !selectedRowIds[id]\n );\n\n if (isAllRowsSelected) {\n isAllSelectableRowsSelected = true;\n isAllSelectablePageRowsSelected = true;\n\n isAllSelectableRowsUnselected =\n existsLockedRows &&\n Object.keys(rowsToSelect).filter((id) => !lockedSelectionRowIds[id])\n .length === 0;\n isAllSelectablePageRowsUnselected = isAllSelectableRowsUnselected;\n\n isNoPageRowsSelected = false;\n isAllPageRowsSelected = true;\n } else {\n isAllSelectableRowsSelected =\n existsLockedRows &&\n !Object.keys(rowsToSelect)\n .filter((id) => !lockedSelectionRowIds[id])\n .some((id) => !selectedRowIds[id]);\n\n isAllSelectableRowsUnselected =\n !existsLockedRows ||\n !Object.keys(rowsToSelect)\n .filter((id) => !lockedSelectionRowIds[id])\n .some((id) => selectedRowIds[id]);\n\n isAllPageRowsSelected = !(\n page &&\n page.length &&\n page.some(({ id }) => !selectedRowIds[id])\n );\n\n if (isAllPageRowsSelected) {\n isAllSelectablePageRowsSelected = true;\n\n isAllSelectablePageRowsUnselected =\n existsLockedRows &&\n page &&\n page.length &&\n page.filter(({ id }) => !lockedSelectionRowIds[id]).length === 0;\n\n isNoPageRowsSelected = false;\n } else {\n isAllSelectablePageRowsSelected =\n existsLockedRows &&\n !(\n page &&\n page.length &&\n page\n .filter(({ id }) => !lockedSelectionRowIds[id])\n .some(({ id }) => !selectedRowIds[id])\n );\n\n isAllSelectablePageRowsUnselected =\n !existsLockedRows ||\n !(\n page &&\n page.length &&\n page\n .filter(({ id }) => !lockedSelectionRowIds[id])\n .some(({ id }) => selectedRowIds[id])\n );\n\n isNoPageRowsSelected = !(\n page &&\n page.length &&\n page.some(({ id }) => selectedRowIds[id])\n );\n }\n }\n }\n\n const getAutoResetSelectedRows = useGetLatest(autoResetSelectedRows);\n\n const getAutoResetLockedSelectionRows = useGetLatest(\n autoResetLockedSelectionRows\n );\n\n useMountedLayoutEffect(() => {\n if (getAutoResetSelectedRows()) {\n dispatch({ type: actions.resetSelectedRows });\n }\n if (getAutoResetLockedSelectionRows()) {\n dispatch({ type: actions.resetLockedSelectionRows });\n }\n }, [dispatch, data]);\n\n const toggleAllRowsSelected = useCallback(\n (value) => dispatch({ type: actions.toggleAllRowsSelected, value }),\n [dispatch]\n );\n\n const toggleAllPageRowsSelected = useCallback(\n (value) => dispatch({ type: actions.toggleAllPageRowsSelected, value }),\n [dispatch]\n );\n\n const toggleRowSelected = useCallback(\n (id, value) => dispatch({ type: actions.toggleRowSelected, id, value }),\n [dispatch]\n );\n\n const getInstance = useGetLatest(instance);\n\n const getToggleAllRowsSelectedProps = makePropGetter(\n getHooks().getToggleAllRowsSelectedProps,\n {\n instance: getInstance(),\n }\n );\n\n const getToggleAllPageRowsSelectedProps = makePropGetter(\n getHooks().getToggleAllPageRowsSelectedProps,\n { instance: getInstance() }\n );\n\n const toggleRowLockedSelection = useCallback(\n (id, value) =>\n dispatch({ type: actions.toggleRowLockedSelection, id, value }),\n [dispatch]\n );\n\n Object.assign(instance, {\n selectedFlatRows,\n isNoRowsSelected,\n isNoPageRowsSelected,\n isAllRowsSelected,\n isAllPageRowsSelected,\n isAllSelectableRowsSelected,\n isAllSelectablePageRowsSelected,\n isAllSelectableRowsUnselected,\n isAllSelectablePageRowsUnselected,\n toggleRowSelected,\n toggleAllRowsSelected,\n getToggleAllRowsSelectedProps,\n getToggleAllPageRowsSelectedProps,\n toggleAllPageRowsSelected,\n toggleRowLockedSelection,\n });\n}\n\nexport function prepareRow(row, { instance }) {\n row.toggleRowSelected = (set) => instance.toggleRowSelected(row.id, set);\n row.getToggleRowSelectedProps = makePropGetter(\n instance.getHooks().getToggleRowSelectedProps,\n {\n instance,\n row,\n }\n );\n\n row.toggleRowLockedSelection = (set) =>\n instance.toggleRowLockedSelection(row.id, set);\n row.isSelectionLocked =\n instance.state?.lockedSelectionRowIds?.[row.id] || false;\n}\n\nconst useRowSelection: UseRowSelectionProps = (hooks) => {\n hooks.visibleColumns.push(visibleColumnsHook);\n\n hooks.getRowProps.push(getRowPropsHook);\n\n // props target: <table><thead><tr><th>\n hooks.getHeaderProps.push(getHeaderPropsHook);\n\n hooks.getToggleRowSelectedProps = [defaultGetToggleRowSelectedProps];\n hooks.getToggleAllRowsSelectedProps = [defaultGetToggleAllRowsSelectedProps];\n hooks.getToggleAllPageRowsSelectedProps = [\n defaultGetToggleAllPageRowsSelectedProps,\n ];\n\n hooks.stateReducers.push(reducer);\n hooks.useInstance.push(useInstance);\n hooks.prepareRow.push(prepareRow);\n};\n\nuseRowSelection.pluginName = \"useHvRowSelection\";\n\nexport default useRowSelection;\n"],"names":["actions","resetSelectedRows","toggleAllRowsSelected","toggleRowSelected","toggleAllPageRowsSelected","resetLockedSelectionRows","toggleRowLockedSelection","DEFAULT_LABELS","selectRowCheckBoxAriaLabel","hideHeaderVariants","CellWithCheckBox","row","labels","labelsProp","useLabels","onChange","checked","disabled","indeterminate","getToggleRowSelectedProps","visibleColumnsHook","columns","selectionColumn","id","variant","width","sticky","Cell","getHeaderPropsHook","props","column","nextProps","includes","getRowPropsHook","selected","isSelected","defaultGetToggleRowSelectedProps","meta","instance","manualRowSelectedKey","original","e","check","target","isSelectionLocked","isSomeSelected","defaultGetToggleAllRowsSelectedProps","isAllRowsSelected","Boolean","Object","keys","state","selectedRowIds","length","defaultGetToggleAllPageRowsSelectedProps","isAllPageRowsSelected","page","some","reducer","action","previousState","type","init","lockedSelectionRowIds","initialState","value","setSelected","rowsById","initialRowsById","nonGroupedRowsById","applyToggleAllRowsSelectedToPrefilteredRows","rowsToSelect","selectAll","forEach","rowId","selectSubRows","getSubRows","shouldExist","newSelectedRowIds","handleRowById","isGrouped","subrow","setLockedSelection","isLockedSelection","newLockedSelectionRowIds","getRowIsSelected","subRows","allChildrenSelected","someSelected","subRow","useInstance","data","rows","getHooks","plugins","autoResetSelectedRows","autoResetLockedSelectionRows","dispatch","selectedFlatRows","useMemo","selectedRows","push","existsLockedRows","isNoRowsSelected","isNoPageRowsSelected","isAllSelectableRowsUnselected","isAllSelectablePageRowsUnselected","isAllSelectableRowsSelected","isAllSelectablePageRowsSelected","filter","getAutoResetSelectedRows","useGetLatest","getAutoResetLockedSelectionRows","useMountedLayoutEffect","useCallback","getInstance","getToggleAllRowsSelectedProps","makePropGetter","getToggleAllPageRowsSelectedProps","assign","prepareRow","set","useRowSelection","hooks","visibleColumns","getRowProps","getHeaderProps","stateReducers","pluginName"],"mappings":"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"}
@@ -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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hitachivantara/uikit-react-core",
3
- "version": "5.36.9",
3
+ "version": "5.36.11",
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.5",
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": "d9f1b922b3a7eca8ff451d3fbc0b3803b3531a51",
67
+ "gitHead": "c069d4317b2f46289ca7d681939843544f3ecfd2",
68
68
  "main": "dist/cjs/index.cjs",
69
69
  "exports": {
70
70
  ".": {