@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.
- package/dist/cjs/components/CheckBoxGroup/CheckBoxGroup.cjs +3 -1
- package/dist/cjs/components/CheckBoxGroup/CheckBoxGroup.cjs.map +1 -1
- package/dist/cjs/components/QueryBuilder/ConfirmationDialog/ConfirmationDialog.cjs.map +1 -1
- package/dist/cjs/components/QueryBuilder/Context.cjs +10 -2
- package/dist/cjs/components/QueryBuilder/Context.cjs.map +1 -1
- package/dist/cjs/components/QueryBuilder/QueryBuilder.cjs +30 -24
- package/dist/cjs/components/QueryBuilder/QueryBuilder.cjs.map +1 -1
- package/dist/cjs/components/QueryBuilder/QueryBuilder.styles.cjs +10 -0
- package/dist/cjs/components/QueryBuilder/QueryBuilder.styles.cjs.map +1 -1
- package/dist/cjs/components/QueryBuilder/Rule/Attribute/Attribute.cjs +1 -1
- package/dist/cjs/components/QueryBuilder/Rule/Attribute/Attribute.cjs.map +1 -1
- package/dist/cjs/components/QueryBuilder/Rule/Operator/Operator.cjs +2 -2
- package/dist/cjs/components/QueryBuilder/Rule/Operator/Operator.cjs.map +1 -1
- package/dist/cjs/components/QueryBuilder/Rule/Rule.cjs +1 -1
- package/dist/cjs/components/QueryBuilder/Rule/Rule.cjs.map +1 -1
- package/dist/cjs/components/QueryBuilder/Rule/Value/BooleanValue/BooleanValue.cjs +1 -1
- package/dist/cjs/components/QueryBuilder/Rule/Value/BooleanValue/BooleanValue.cjs.map +1 -1
- package/dist/cjs/components/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.cjs +1 -1
- package/dist/cjs/components/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.cjs.map +1 -1
- package/dist/cjs/components/QueryBuilder/Rule/Value/DateTimeValue/utils.cjs.map +1 -1
- package/dist/cjs/components/QueryBuilder/Rule/Value/NumericValue/NumericValue.cjs +4 -4
- package/dist/cjs/components/QueryBuilder/Rule/Value/NumericValue/NumericValue.cjs.map +1 -1
- package/dist/cjs/components/QueryBuilder/Rule/Value/TextValue/TextValue.cjs +1 -1
- package/dist/cjs/components/QueryBuilder/Rule/Value/TextValue/TextValue.cjs.map +1 -1
- package/dist/cjs/components/QueryBuilder/Rule/Value/Value.cjs +1 -1
- package/dist/cjs/components/QueryBuilder/Rule/Value/Value.cjs.map +1 -1
- package/dist/cjs/components/QueryBuilder/RuleGroup/RuleGroup.cjs +7 -13
- package/dist/cjs/components/QueryBuilder/RuleGroup/RuleGroup.cjs.map +1 -1
- package/dist/cjs/components/QueryBuilder/utils/index.cjs.map +1 -1
- package/dist/cjs/components/QueryBuilder/utils/reducer.cjs +1 -1
- package/dist/cjs/components/QueryBuilder/utils/reducer.cjs.map +1 -1
- package/dist/cjs/components/Table/hooks/useRowSelection.cjs +2 -1
- package/dist/cjs/components/Table/hooks/useRowSelection.cjs.map +1 -1
- package/dist/esm/components/CheckBoxGroup/CheckBoxGroup.js +3 -1
- package/dist/esm/components/CheckBoxGroup/CheckBoxGroup.js.map +1 -1
- package/dist/esm/components/QueryBuilder/ConfirmationDialog/ConfirmationDialog.js.map +1 -1
- package/dist/esm/components/QueryBuilder/Context.js +10 -2
- package/dist/esm/components/QueryBuilder/Context.js.map +1 -1
- package/dist/esm/components/QueryBuilder/QueryBuilder.js +32 -26
- package/dist/esm/components/QueryBuilder/QueryBuilder.js.map +1 -1
- package/dist/esm/components/QueryBuilder/QueryBuilder.styles.js +10 -0
- package/dist/esm/components/QueryBuilder/QueryBuilder.styles.js.map +1 -1
- package/dist/esm/components/QueryBuilder/Rule/Attribute/Attribute.js +2 -2
- package/dist/esm/components/QueryBuilder/Rule/Attribute/Attribute.js.map +1 -1
- package/dist/esm/components/QueryBuilder/Rule/Operator/Operator.js +3 -3
- package/dist/esm/components/QueryBuilder/Rule/Operator/Operator.js.map +1 -1
- package/dist/esm/components/QueryBuilder/Rule/Rule.js +2 -2
- package/dist/esm/components/QueryBuilder/Rule/Rule.js.map +1 -1
- package/dist/esm/components/QueryBuilder/Rule/Value/BooleanValue/BooleanValue.js +2 -2
- package/dist/esm/components/QueryBuilder/Rule/Value/BooleanValue/BooleanValue.js.map +1 -1
- package/dist/esm/components/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.js +2 -2
- package/dist/esm/components/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.js.map +1 -1
- package/dist/esm/components/QueryBuilder/Rule/Value/DateTimeValue/utils.js.map +1 -1
- package/dist/esm/components/QueryBuilder/Rule/Value/NumericValue/NumericValue.js +5 -5
- package/dist/esm/components/QueryBuilder/Rule/Value/NumericValue/NumericValue.js.map +1 -1
- package/dist/esm/components/QueryBuilder/Rule/Value/TextValue/TextValue.js +2 -2
- package/dist/esm/components/QueryBuilder/Rule/Value/TextValue/TextValue.js.map +1 -1
- package/dist/esm/components/QueryBuilder/Rule/Value/Value.js +2 -2
- package/dist/esm/components/QueryBuilder/Rule/Value/Value.js.map +1 -1
- package/dist/esm/components/QueryBuilder/RuleGroup/RuleGroup.js +8 -14
- package/dist/esm/components/QueryBuilder/RuleGroup/RuleGroup.js.map +1 -1
- package/dist/esm/components/QueryBuilder/utils/index.js.map +1 -1
- package/dist/esm/components/QueryBuilder/utils/reducer.js +1 -1
- package/dist/esm/components/QueryBuilder/utils/reducer.js.map +1 -1
- package/dist/esm/components/Table/hooks/useRowSelection.js +2 -1
- package/dist/esm/components/Table/hooks/useRowSelection.js.map +1 -1
- package/dist/types/index.d.ts +28 -37
- 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":";;;;;;;;;;;;AA4BO,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;AAExCG,QAAAA,UAAUC,WAAWC,mBAAmB;AAExC,QAAA;AAAA,IAAEC;AAAAA,IAAgBC;AAAAA,IAAWC;AAAAA,IAAUC;AAAAA,IAAaC;AAAAA,IAAQC;AAAAA,EAChER,IAAAA;AACF,QAAMS,qBAAqBJ,WAAW;AAEtC,QAAMK,gBAEF,qBAAA,UAAA,EAAA,UAAA;AAAA,IAAC,oBAAA,OAAA,EAAI,WAAWd,QAAQe,kBACtB,8BAAC,UACC,EAAA,SAAQ,mBACR,SAAS,MAAM;AACE,qBAAA;AAAA,QAAEC,MAAM;AAAA,QAAYnB;AAAAA,MAAAA,CAAI;AAAA,IACzC,GACA,UAAUe,UACV,+BAAY,UAEXhB,UAAU,UAAA,KAAKe,OAAOM,OAAOC,SAASC,SAAS,OAC5CR,OAAOM,OAAOC,SAASC,QACvBR,OAAOS,MAAMF,QAAQC,MAAAA,CAC3B,EACF,CAAA;AAAA,IACCvB,SAASiB,sBACP,oBAAA,OAAA,EAAI,WAAWb,QAAQe,kBACtB,UAAA,oBAAC,UACC,EAAA,SAAQ,mBACR,SAAS,MAAM;AACE,qBAAA;AAAA,QAAEC,MAAM;AAAA,QAAanB;AAAAA,MAAAA,CAAI;AAAA,IAC1C,GACA,UAAUe,UACV,+BAAY,UAEXhB,UAAU,UAAA,KAAKe,OAAOM,OAAOI,UAAUF,SAAS,OAC7CR,OAAOM,OAAOI,UAAUF,QACxBR,OAAOS,MAAMC,SAASF,MAAAA,CAC5B,EACF,CAAA;AAAA,EAEJ,EAAA,CAAA;AAGF,QAAMG,aAAaC,YACjB,MACG,oBAAA,QAAA,EAAO,WAAWrB,GAAG;AAAA,IAAE,CAACF,QAAQwB,uBAAuB,GAAGZ;AAAAA,EAAAA,CAAU,EACtE,CAAA,GACDhB,UAAU,KAAKe,OAAOM,OAAOQ,QAAQC,UACjCf,OAAOM,OAAOQ,QAAQC,UACtBf,OAAOS,MAAMK,OAAOC,SACxB,KACF;AAEMC,QAAAA,oBAAoBC,YACvBC,CAAS,SAAA;AACO,mBAAA;AAAA,MACbb,MAAM;AAAA,MACNnB;AAAAA,MACAC,YAAY+B,KAAKC;AAAAA,IAAAA,CAClB;AAAA,EAAA,GAEH,CAACvB,gBAAgBV,EAAE,CACrB;AAEA,SACG,qBAAA,OAAA,EACC,WAAWK,GAAGF,QAAQ+B,MAAM;AAAA,IAC1B,CAAC/B,QAAQgC,QAAQ,GAAGpC,UAAU;AAAA,IAC9B,CAACI,QAAQiC,QAAQ,GAAGrC,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,QAAQkC,aAAa,GACvD,UAAUtB,UAETF,UACCA,eAAAA,YAAYyB,IAAKN,CACf,SAAA,oBAAC,YAEC,WAAW7B,QAAQoC,kBACnB,UAAUP,KAAKC,YAAYhC,YAC3B,SAAS,MAAM+B,KAAKC,WAAWH,kBAAkBE,IAAI,GACrD,UAAUjB,UACV,MAAK,MAEJiB,UAAKV,KAAAA,MAAAA,GAPDU,KAAKC,OAQZ,CACD,GACL,EACF,CAAA;AAAA,MACA,oBAAC,UAAO,MAAI,MACV,8BAAC,OACC,EAAA,WAAW5B,GAAGF,QAAQe,kBAAkBf,QAAQqC,eAAe,GAE/D,8BAAC,UACC,EAAA,MAAI,MACJ,WAAWrC,QAAQsC,cACnB,SAAS,MAAM;AACH,kBAAA;AAAA,UACRC,SAAS,CAAC;AAAA,YAAEvB,MAAM;AAAA,YAAenB;AAAAA,UAAAA,CAAI;AAAA,UACrC2C,QACE5C,UAAU,KAAKe,OAAOM,OAAOQ,UAAU,OACnCd,OAAOM,MAAMQ,SACbd,OAAOS,MAAMK;AAAAA,QAAAA,CACpB;AAAA,MACH,GACA,cACE7B,UAAU,KAAKe,OAAOM,OAAOQ,QAAQgB,YACjC9B,OAAOM,OAAOQ,QAAQgB,YACtB9B,OAAOS,MAAMK,OAAOgB,WAE1B,UAAU7B,UAEV,UAAC,oBAAA,YAAA,CAAU,CAAA,GACb,EAAA,CACF,EACF,CAAA;AAAA,IAAA,GACF;AAAA,IACCb,OAAO2C,SAAS,KACf,oBAAC,SACC,WAAWxC,GAAGF,QAAQ2C,gBAAgB;AAAA,MACpC,CAAC3C,QAAQ4C,iBAAiB,GAAGhD,QAAQ;AAAA,MACrC,CAACI,QAAQ6C,iBAAiB,GAAGjD,UAAU;AAAA,IAAA,CACxC,GAEAG,UAAAA,MAAMoC,IAAI,CAACW,MAAMC,UAAU;AAC1B,UAAI,gBAAgBD,MAAM;AACxB,eACG,oBAAA,WAAA,EAEC,OAAOlD,QAAQ,MACXkD,MACJ,IAAIA,KAAKjD,IACT,QAJKiD,GAAAA,KAAKjD,MAAMkD,KAKhB;AAAA,MAEN;AAEA,YAAMC,YACJlD,eAAe,SACfC,MAAMkD,KAAK,CAACC,GAAGC,MAAM;AACnB,YAAI,eAAeD,GAAG;AAElBA,cAAAA,EAAEE,cAAcN,KAAKM,aACrBF,EAAErD,OAAOiD,KAAKjD,MACdsD,IAAIJ,OACJ;AACO,mBAAA;AAAA,UACT;AAAA,QACF;AACO,eAAA;AAAA,MAAA,CACR;AAGD,aAAA,oBAAC,MAEKD,EAAAA,GAAAA,MACJ,WACA,IAAIA,KAAKjD,IACT,WAAA,GAJKiD,KAAKjD,MAAMkD,KAKhB;AAAA,IAEL,CAAA,GACH;AAAA,IAEDhD,OAAO2C,WAAW,KAChB,oBAAA,cAAA,EACC,OAAO/B,OAAO0C,OAAOC,OACrB,SAEI,qBAAA,UAAA,EAAA,UAAA;AAAA,MAAA,oBAAC,gBACC,SAAQ,QACR,WAAU,KACV,SAAS,MAAM;AACE,uBAAA;AAAA,UAAEtC,MAAM;AAAA,UAAYnB;AAAAA,QAAAA,CAAI;AAAA,SAEzC,OAAO;AAAA,QAAE0D,QAAQ;AAAA,QAAWC,gBAAgB;AAAA,MAAA,GAE1C,UAAA,GAAE7C,OAAO0C,OAAOI,eAAgB,IACpC;AAAA,MACC7D,SAASiB,sBAEJ,qBAAA,UAAA,EAAA,UAAA;AAAA,QAAEF,GAAAA,OAAO0C,OAAOK,MAAO;AAAA,4BACxB,cACC,EAAA,SAAQ,QACR,WAAU,KACV,SAAS,MAAM;AACE,yBAAA;AAAA,YAAE1C,MAAM;AAAA,YAAanB;AAAAA,UAAAA,CAAI;AAAA,WAE1C,OAAO;AAAA,UACL0D,QAAQ;AAAA,UACRC,gBAAgB;AAAA,QAAA,GAGhB,UAAA,GAAE7C,OAAO0C,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,WAAWzD,GACTF,QAAQ4D,uBACR5D,QAAQ6D,wBACV,GAEC/C,wBACH,CAAA,GACF;AAAA,EACF,EAAA,CAAA;AAEJ;"}
|
|
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":["
|
|
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;"}
|
|
@@ -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 //
|
|
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.
|
|
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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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -4742,7 +4742,7 @@ export declare interface HvProviderProps {
|
|
|
4742
4742
|
}
|
|
4743
4743
|
|
|
4744
4744
|
/**
|
|
4745
|
-
*
|
|
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
|
-
|
|
4755
|
-
|
|
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
|
-
|
|
5056
|
-
|
|
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
|
|
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
|
|
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.
|
|
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.
|
|
37
|
-
"@hitachivantara/uikit-react-shared": "^5.1.
|
|
38
|
-
"@hitachivantara/uikit-styles": "^5.16.
|
|
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": "
|
|
67
|
+
"gitHead": "c069d4317b2f46289ca7d681939843544f3ecfd2",
|
|
68
68
|
"main": "dist/cjs/index.cjs",
|
|
69
69
|
"exports": {
|
|
70
70
|
".": {
|