@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":"QueryBuilder.styles.js","sources":["../../../../src/components/QueryBuilder/QueryBuilder.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { createClasses } from \"@core/utils/classes\";\n\nexport const { useClasses, staticClasses } = createClasses(\"HvQueryBuilder\", {\n /** Styles applied to the component root class. */\n root: {\n position: \"relative\",\n padding: theme.space.sm,\n marginTop: 12,\n marginBottom: 32,\n border: `1px solid ${theme.colors.atmo4}`,\n },\n /** Styles applied to the top group container. */\n topGroup: {\n margin: theme.space.sm,\n backgroundColor: \"transparent\",\n maxWidth: \"100%\",\n minWidth: 740,\n paddingBottom: `calc(${theme.space.md} * 3)`,\n },\n /** Styles applied to the sub group containers. */\n subGroup: {\n margin: \"40px 14px 32px 20px\",\n minHeight: 120,\n paddingBottom: 60,\n\n \"&::before\": {\n content: '\"\"',\n position: \"absolute\",\n zIndex: 2,\n\n width: 21,\n height: 36,\n\n borderBottom: `1px solid ${theme.colors.atmo4}`,\n borderLeft: `1px solid ${theme.colors.atmo4}`,\n\n top: -38,\n left: -38,\n },\n \":not($topRulesContainer)>&:last-child::after\": {\n content: '\"\"',\n position: \"absolute\",\n zIndex: 1,\n\n width: 32,\n height: \"100%\",\n\n borderLeft: `1px solid ${theme.colors.atmo4}`,\n\n top: 0,\n left: `calc(${theme.space.sm} + 2)`,\n },\n },\n /** Styles applied to the radio button+label topGroup when the radio button is disabled. */\n combinator: { minWidth: 80 },\n /** Styles applied to the multi-button combinator container on the top group. */\n topCombinator: {\n position: \"absolute\",\n top: `calc( -1 * ${theme.space.sm})`,\n left: `calc( -1 * ${theme.space.sm})`,\n },\n /** Styles applied to each combinator button. */\n combinatorButton: {},\n /** Styles applied to the remove button. */\n removeButton: {},\n /** Styles applied to the remove button on the top group. */\n topRemoveButton: { position: \"absolute\", top: -16, right: -16 },\n /** Styles applied to the remove button when disabled on the top group. */\n topRemoveButtonDisabled: { backgroundColor: theme.colors.atmo2 },\n /** Styles applied to the rules container. */\n rulesContainer: {},\n /** Styles applied to the sub rules container. */\n subRulesContainer: {\n borderLeft: `1px solid ${theme.colors.atmo4}`,\n marginLeft: theme.space.sm,\n marginBottom: theme.space.md,\n paddingLeft: theme.space.sm,\n paddingTop: 7,\n position: \"relative\",\n left: -33,\n width: \"100%\",\n },\n /** Styles applied to the action button container. */\n actionButtonContainer: {\n marginLeft: \"auto\",\n\n \"&>*\": {\n marginLeft: theme.space.sm,\n },\n },\n /** Styles applied to the top action button container. */\n topActionButtonContainer: {\n position: \"absolute\",\n bottom: `calc(-1 * ${theme.space.md} * 0.5 - 3px)`,\n right: `calc(${theme.space.sm} * 1.75 + 2px)`,\n },\n /** Styles applied to the top rules container. */\n topRulesContainer: {},\n /** Styles applied to the background of buttons to remove transparency */\n buttonBackground: {\n backgroundColor: theme.colors.atmo2,\n display: \"inline-flex\",\n },\n});\n"],"names":["useClasses","staticClasses","createClasses","root","position","padding","theme","space","sm","marginTop","marginBottom","border","colors","atmo4","topGroup","margin","backgroundColor","maxWidth","minWidth","paddingBottom","md","subGroup","minHeight","content","zIndex","width","height","borderBottom","borderLeft","top","left","combinator","topCombinator","combinatorButton","removeButton","topRemoveButton","right","topRemoveButtonDisabled","atmo2","rulesContainer","subRulesContainer","marginLeft","paddingLeft","paddingTop","actionButtonContainer","topActionButtonContainer","bottom","topRulesContainer","buttonBackground","display"],"mappings":";;AAIa,MAAA;AAAA,EAAEA;AAAAA,EAAYC;AAAc,IAAIC,cAAc,kBAAkB;AAAA;AAAA,EAE3EC,MAAM;AAAA,IACJC,UAAU;AAAA,IACVC,SAASC,MAAMC,MAAMC;AAAAA,IACrBC,WAAW;AAAA,IACXC,cAAc;AAAA,IACdC,QAAS,aAAYL,MAAMM,OAAOC,KAAM;AAAA,EAC1C;AAAA;AAAA,EAEAC,UAAU;AAAA,IACRC,QAAQT,MAAMC,MAAMC;AAAAA,IACpBQ,iBAAiB;AAAA,IACjBC,UAAU;AAAA,IACVC,UAAU;AAAA,IACVC,eAAgB,QAAOb,MAAMC,MAAMa,EAAG;AAAA,EACxC;AAAA;AAAA,EAEAC,UAAU;AAAA,IACRN,QAAQ;AAAA,IACRO,WAAW;AAAA,IACXH,eAAe;AAAA,IAEf,aAAa;AAAA,MACXI,SAAS;AAAA,MACTnB,UAAU;AAAA,MACVoB,QAAQ;AAAA,MAERC,OAAO;AAAA,MACPC,QAAQ;AAAA,MAERC,cAAe,aAAYrB,MAAMM,OAAOC,KAAM;AAAA,MAC9Ce,YAAa,aAAYtB,MAAMM,OAAOC,KAAM;AAAA,MAE5CgB,KAAK;AAAA,MACLC,MAAM;AAAA,IACR;AAAA,IACA,gDAAgD;AAAA,MAC9CP,SAAS;AAAA,MACTnB,UAAU;AAAA,MACVoB,QAAQ;AAAA,MAERC,OAAO;AAAA,MACPC,QAAQ;AAAA,MAERE,YAAa,aAAYtB,MAAMM,OAAOC,KAAM;AAAA,MAE5CgB,KAAK;AAAA,MACLC,MAAO,QAAOxB,MAAMC,MAAMC,EAAG;AAAA,IAC/B;AAAA,EACF;AAAA;AAAA,EAEAuB,YAAY;AAAA,IAAEb,UAAU;AAAA,EAAG;AAAA;AAAA,EAE3Bc,eAAe;AAAA,IACb5B,UAAU;AAAA,IACVyB,KAAM,cAAavB,MAAMC,MAAMC,EAAG;AAAA,IAClCsB,MAAO,cAAaxB,MAAMC,MAAMC,EAAG;AAAA,EACrC;AAAA;AAAA,EAEAyB,kBAAkB,CAAC;AAAA;AAAA,EAEnBC,cAAc,CAAC;AAAA;AAAA,EAEfC,iBAAiB;AAAA,IAAE/B,UAAU;AAAA,IAAYyB,KAAK;AAAA,IAAKO,OAAO;AAAA,EAAI;AAAA;AAAA,EAE9DC,yBAAyB;AAAA,IAAErB,iBAAiBV,MAAMM,OAAO0B;AAAAA,EAAM;AAAA;AAAA,EAE/DC,gBAAgB,CAAC;AAAA;AAAA,EAEjBC,mBAAmB;AAAA,IACjBZ,YAAa,aAAYtB,MAAMM,OAAOC,KAAM;AAAA,IAC5C4B,YAAYnC,MAAMC,MAAMC;AAAAA,IACxBE,cAAcJ,MAAMC,MAAMa;AAAAA,IAC1BsB,aAAapC,MAAMC,MAAMC;AAAAA,IACzBmC,YAAY;AAAA,IACZvC,UAAU;AAAA,IACV0B,MAAM;AAAA,IACNL,OAAO;AAAA,EACT;AAAA;AAAA,EAEAmB,uBAAuB;AAAA,IACrBH,YAAY;AAAA,IAEZ,OAAO;AAAA,MACLA,YAAYnC,MAAMC,MAAMC;AAAAA,IAC1B;AAAA,EACF;AAAA;AAAA,EAEAqC,0BAA0B;AAAA,IACxBzC,UAAU;AAAA,IACV0C,QAAS,aAAYxC,MAAMC,MAAMa,EAAG;AAAA,IACpCgB,OAAQ,QAAO9B,MAAMC,MAAMC,EAAG;AAAA,EAChC;AAAA;AAAA,EAEAuC,mBAAmB,CAAC;AAAA;AAAA,EAEpBC,kBAAkB;AAAA,IAChBhC,iBAAiBV,MAAMM,OAAO0B;AAAAA,IAC9BW,SAAS;AAAA,EACX;AACF,CAAC;"}
1
+ {"version":3,"file":"QueryBuilder.styles.js","sources":["../../../../src/components/QueryBuilder/QueryBuilder.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { createClasses } from \"@core/utils/classes\";\n\nexport const { useClasses, staticClasses } = createClasses(\"HvQueryBuilder\", {\n /** Styles applied to the component root class. */\n root: {\n position: \"relative\",\n padding: theme.space.sm,\n marginTop: 12,\n marginBottom: 32,\n border: `1px solid ${theme.colors.atmo4}`,\n },\n /** Styles applied to the top group container. */\n topGroup: {\n margin: theme.space.sm,\n backgroundColor: \"transparent\",\n maxWidth: \"100%\",\n minWidth: 740,\n paddingBottom: `calc(${theme.space.md} * 3)`,\n },\n /** Styles applied to the sub group containers. */\n subGroup: {\n margin: \"40px 14px 32px 20px\",\n minHeight: 120,\n paddingBottom: 60,\n\n \"&::before\": {\n content: '\"\"',\n position: \"absolute\",\n zIndex: 2,\n\n width: 21,\n height: 36,\n\n borderBottom: `1px solid ${theme.colors.atmo4}`,\n borderLeft: `1px solid ${theme.colors.atmo4}`,\n\n top: -38,\n left: -38,\n },\n \":not($topRulesContainer)>&:last-child::after\": {\n content: '\"\"',\n position: \"absolute\",\n zIndex: 1,\n\n width: 32,\n height: \"100%\",\n\n borderLeft: `1px solid ${theme.colors.atmo4}`,\n\n top: 0,\n left: `calc(${theme.space.sm} + 2)`,\n },\n },\n /** Styles applied to the radio button+label topGroup when the radio button is disabled. */\n combinator: { minWidth: 80 },\n /** Styles applied to the multi-button combinator container on the top group. */\n topCombinator: {\n position: \"absolute\",\n top: `calc( -1 * ${theme.space.sm})`,\n left: `calc( -1 * ${theme.space.sm})`,\n },\n /** Styles applied to each combinator button. */\n combinatorButton: {},\n /** Styles applied to the remove button. */\n removeButton: {},\n /** Styles applied to the remove button on the top group. */\n topRemoveButton: { position: \"absolute\", top: -16, right: -16 },\n /** Styles applied to the remove button when disabled on the top group. */\n topRemoveButtonDisabled: { backgroundColor: theme.colors.atmo2 },\n /** Styles applied to the rules container. */\n rulesContainer: {},\n /** Styles applied to the sub rules container. */\n subRulesContainer: {\n borderLeft: `1px solid ${theme.colors.atmo4}`,\n marginLeft: theme.space.sm,\n marginBottom: theme.space.md,\n paddingLeft: theme.space.sm,\n paddingTop: 7,\n position: \"relative\",\n left: -33,\n width: \"100%\",\n },\n /** Styles applied to the action button container. */\n actionButtonContainer: {\n marginLeft: \"auto\",\n\n \"&>*\": {\n marginLeft: theme.space.sm,\n },\n },\n /** Styles applied to the top action button container. */\n topActionButtonContainer: {\n position: \"absolute\",\n bottom: `calc(-1 * ${theme.space.md} * 0.5 - 3px)`,\n right: `calc(${theme.space.sm} * 1.75 + 2px)`,\n },\n /** Styles applied to the top rules container. */\n topRulesContainer: {},\n /** Styles applied to the background of buttons to remove transparency */\n buttonBackground: {\n backgroundColor: theme.colors.atmo2,\n display: \"inline-flex\",\n },\n createConditionButton: {\n cursor: \"pointer\",\n backgroundColor: \"transparent\",\n padding: 0,\n },\n createGroupButton: {\n cursor: \"pointer\",\n backgroundColor: \"transparent\",\n padding: 0,\n },\n});\n"],"names":["useClasses","staticClasses","createClasses","root","position","padding","theme","space","sm","marginTop","marginBottom","border","colors","atmo4","topGroup","margin","backgroundColor","maxWidth","minWidth","paddingBottom","md","subGroup","minHeight","content","zIndex","width","height","borderBottom","borderLeft","top","left","combinator","topCombinator","combinatorButton","removeButton","topRemoveButton","right","topRemoveButtonDisabled","atmo2","rulesContainer","subRulesContainer","marginLeft","paddingLeft","paddingTop","actionButtonContainer","topActionButtonContainer","bottom","topRulesContainer","buttonBackground","display","createConditionButton","cursor","createGroupButton"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { jsx } from "@emotion/react/jsx-runtime";
2
2
  import { useContext, useMemo, memo } from "react";
3
- import { QueryBuilderContext } from "../../Context.js";
3
+ import { HvQueryBuilderContext } from "../../Context.js";
4
4
  import { isBigList } from "../../utils/index.js";
5
5
  import { HvDropdown } from "../../../Dropdown/Dropdown.js";
6
6
  const Attribute = ({
@@ -9,7 +9,7 @@ const Attribute = ({
9
9
  disabled,
10
10
  isInvalid
11
11
  }) => {
12
- const context = useContext(QueryBuilderContext);
12
+ const context = useContext(HvQueryBuilderContext);
13
13
  const {
14
14
  dispatchAction,
15
15
  attributes,
@@ -1 +1 @@
1
- {"version":3,"file":"Attribute.js","sources":["../../../../../../src/components/QueryBuilder/Rule/Attribute/Attribute.tsx"],"sourcesContent":["import { useMemo, useContext, memo } from \"react\";\n\nimport { HvDropdown } from \"@core/components/Dropdown\";\n\nimport { QueryBuilderContext } from \"../../Context\";\nimport { isBigList } from \"../../utils\";\n\nexport interface AttributeProps {\n id: number;\n attribute: string;\n disabled: boolean;\n isInvalid: boolean;\n}\n\nexport const Attribute = ({\n id,\n attribute,\n disabled,\n isInvalid,\n}: AttributeProps) => {\n const context = useContext(QueryBuilderContext);\n const { dispatchAction, attributes, operators, labels, readOnly } = context;\n\n const values = useMemo(() => {\n if (!attributes) return [];\n\n return Object.keys(attributes).map((key) => ({\n id: key,\n label: attributes[key].label,\n selected: key === attribute,\n }));\n }, [attributes, attribute]);\n\n const currentType =\n attribute != null && attributes ? attributes[attribute]?.type : null;\n\n return (\n <HvDropdown\n singleSelectionToggle={false}\n label={labels.rule.attribute.label}\n placeholder={labels.rule.attribute.placeholder}\n values={values}\n disabled={disabled}\n readOnly={readOnly}\n status={isInvalid ? \"invalid\" : \"valid\"}\n statusMessage={labels.rule.attribute.exists}\n onChange={(selected) => {\n if (selected && !Array.isArray(selected)) {\n const attributeId = selected.id;\n\n const type =\n attributes && attributeId && attributes[attributeId]?.type;\n const typeOperators = type ? operators[type] : undefined;\n\n let operator;\n if (currentType === type) {\n operator = undefined;\n } else if (typeOperators?.length === 1) {\n operator = typeOperators[0].operator;\n } else {\n operator = null;\n }\n\n // default boolean attributes to true\n const value = type === \"boolean\" ? true : undefined;\n\n dispatchAction({\n type: \"set-attribute\",\n id,\n attribute: attributeId?.toString(),\n operator,\n value,\n });\n } else {\n dispatchAction({ type: \"set-attribute\", id, attribute: null });\n }\n }}\n showSearch={isBigList(values)}\n {...(isBigList(values) && { virtualized: true, height: 300 })}\n />\n );\n};\n\nexport default memo(Attribute);\n"],"names":["Attribute","id","attribute","disabled","isInvalid","context","useContext","QueryBuilderContext","dispatchAction","attributes","operators","labels","readOnly","values","useMemo","Object","keys","map","key","label","selected","currentType","type","rule","placeholder","exists","Array","isArray","attributeId","typeOperators","undefined","operator","length","value","toString","isBigList","virtualized","height","memo"],"mappings":";;;;;AAcO,MAAMA,YAAYA,CAAC;AAAA,EACxBC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AACc,MAAM;AACdC,QAAAA,UAAUC,WAAWC,mBAAmB;AACxC,QAAA;AAAA,IAAEC;AAAAA,IAAgBC;AAAAA,IAAYC;AAAAA,IAAWC;AAAAA,IAAQC;AAAAA,EAAaP,IAAAA;AAE9DQ,QAAAA,SAASC,QAAQ,MAAM;AAC3B,QAAI,CAACL;AAAY,aAAO;AAExB,WAAOM,OAAOC,KAAKP,UAAU,EAAEQ,IAAKC,CAAS,SAAA;AAAA,MAC3CjB,IAAIiB;AAAAA,MACJC,OAAOV,WAAWS,GAAG,EAAEC;AAAAA,MACvBC,UAAUF,QAAQhB;AAAAA,IAClB,EAAA;AAAA,EAAA,GACD,CAACO,YAAYP,SAAS,CAAC;AAE1B,QAAMmB,cACJnB,aAAa,QAAQO,aAAaA,WAAWP,SAAS,GAAGoB,OAAO;AAGhE,SAAA,oBAAC,YACC,EAAA,uBAAuB,OACvB,OAAOX,OAAOY,KAAKrB,UAAUiB,OAC7B,aAAaR,OAAOY,KAAKrB,UAAUsB,aACnC,QACA,UACA,UACA,QAAQpB,YAAY,YAAY,SAChC,eAAeO,OAAOY,KAAKrB,UAAUuB,QACrC,UAAWL,CAAa,aAAA;AACtB,QAAIA,YAAY,CAACM,MAAMC,QAAQP,QAAQ,GAAG;AACxC,YAAMQ,cAAcR,SAASnB;AAE7B,YAAMqB,OACJb,cAAcmB,eAAenB,WAAWmB,WAAW,GAAGN;AACxD,YAAMO,gBAAgBP,OAAOZ,UAAUY,IAAI,IAAIQ;AAE3CC,UAAAA;AACJ,UAAIV,gBAAgBC,MAAM;AACbQ,mBAAAA;AAAAA,MAAAA,WACFD,eAAeG,WAAW,GAAG;AAC3BH,mBAAAA,cAAc,CAAC,EAAEE;AAAAA,MAAAA,OACvB;AACM,mBAAA;AAAA,MACb;AAGME,YAAAA,QAAQX,SAAS,YAAY,OAAOQ;AAE3B,qBAAA;AAAA,QACbR,MAAM;AAAA,QACNrB;AAAAA,QACAC,WAAW0B,aAAaM,SAAS;AAAA,QACjCH;AAAAA,QACAE;AAAAA,MAAAA,CACD;AAAA,IAAA,OACI;AACU,qBAAA;AAAA,QAAEX,MAAM;AAAA,QAAiBrB;AAAAA,QAAIC,WAAW;AAAA,MAAA,CAAM;AAAA,IAC/D;AAAA,EAAA,GAEF,YAAYiC,UAAUtB,MAAM,GACvBsB,GAAAA,UAAUtB,MAAM,KAAK;AAAA,IAAEuB,aAAa;AAAA,IAAMC,QAAQ;AAAA,EACvD,EAAA,CAAA;AAEN;AAEeC,KAAKtC,SAAS;"}
1
+ {"version":3,"file":"Attribute.js","sources":["../../../../../../src/components/QueryBuilder/Rule/Attribute/Attribute.tsx"],"sourcesContent":["import { useMemo, useContext, memo } from \"react\";\n\nimport { HvDropdown } from \"@core/components/Dropdown\";\n\nimport { HvQueryBuilderContext } from \"../../Context\";\nimport { isBigList } from \"../../utils\";\n\nexport interface AttributeProps {\n id: React.Key;\n attribute?: string;\n disabled?: boolean;\n isInvalid?: boolean;\n}\n\nexport const Attribute = ({\n id,\n attribute,\n disabled,\n isInvalid,\n}: AttributeProps) => {\n const context = useContext(HvQueryBuilderContext);\n const { dispatchAction, attributes, operators, labels, readOnly } = context;\n\n const values = useMemo(() => {\n if (!attributes) return [];\n\n return Object.keys(attributes).map((key) => ({\n id: key,\n label: attributes[key].label,\n selected: key === attribute,\n }));\n }, [attributes, attribute]);\n\n const currentType =\n attribute != null && attributes ? attributes[attribute]?.type : null;\n\n return (\n <HvDropdown\n singleSelectionToggle={false}\n label={labels.rule.attribute.label}\n placeholder={labels.rule.attribute.placeholder}\n values={values}\n disabled={disabled}\n readOnly={readOnly}\n status={isInvalid ? \"invalid\" : \"valid\"}\n statusMessage={labels.rule.attribute.exists}\n onChange={(selected) => {\n if (selected && !Array.isArray(selected)) {\n const attributeId = selected.id;\n\n const type =\n attributes && attributeId && attributes[attributeId]?.type;\n const typeOperators = type ? operators[type] : undefined;\n\n let operator;\n if (currentType === type) {\n operator = undefined;\n } else if (typeOperators?.length === 1) {\n operator = typeOperators[0].operator;\n } else {\n operator = null;\n }\n\n // default boolean attributes to true\n const value = type === \"boolean\" ? true : undefined;\n\n dispatchAction({\n type: \"set-attribute\",\n id,\n attribute: attributeId?.toString(),\n operator,\n value,\n });\n } else {\n dispatchAction({ type: \"set-attribute\", id, attribute: null });\n }\n }}\n showSearch={isBigList(values)}\n {...(isBigList(values) && { virtualized: true, height: 300 })}\n />\n );\n};\n\nexport default memo(Attribute);\n"],"names":["Attribute","id","attribute","disabled","isInvalid","context","useContext","HvQueryBuilderContext","dispatchAction","attributes","operators","labels","readOnly","values","useMemo","Object","keys","map","key","label","selected","currentType","type","rule","placeholder","exists","Array","isArray","attributeId","typeOperators","undefined","operator","length","value","toString","isBigList","virtualized","height","memo"],"mappings":";;;;;AAcO,MAAMA,YAAYA,CAAC;AAAA,EACxBC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AACc,MAAM;AACdC,QAAAA,UAAUC,WAAWC,qBAAqB;AAC1C,QAAA;AAAA,IAAEC;AAAAA,IAAgBC;AAAAA,IAAYC;AAAAA,IAAWC;AAAAA,IAAQC;AAAAA,EAAaP,IAAAA;AAE9DQ,QAAAA,SAASC,QAAQ,MAAM;AAC3B,QAAI,CAACL;AAAY,aAAO;AAExB,WAAOM,OAAOC,KAAKP,UAAU,EAAEQ,IAAKC,CAAS,SAAA;AAAA,MAC3CjB,IAAIiB;AAAAA,MACJC,OAAOV,WAAWS,GAAG,EAAEC;AAAAA,MACvBC,UAAUF,QAAQhB;AAAAA,IAClB,EAAA;AAAA,EAAA,GACD,CAACO,YAAYP,SAAS,CAAC;AAE1B,QAAMmB,cACJnB,aAAa,QAAQO,aAAaA,WAAWP,SAAS,GAAGoB,OAAO;AAGhE,SAAA,oBAAC,YACC,EAAA,uBAAuB,OACvB,OAAOX,OAAOY,KAAKrB,UAAUiB,OAC7B,aAAaR,OAAOY,KAAKrB,UAAUsB,aACnC,QACA,UACA,UACA,QAAQpB,YAAY,YAAY,SAChC,eAAeO,OAAOY,KAAKrB,UAAUuB,QACrC,UAAWL,CAAa,aAAA;AACtB,QAAIA,YAAY,CAACM,MAAMC,QAAQP,QAAQ,GAAG;AACxC,YAAMQ,cAAcR,SAASnB;AAE7B,YAAMqB,OACJb,cAAcmB,eAAenB,WAAWmB,WAAW,GAAGN;AACxD,YAAMO,gBAAgBP,OAAOZ,UAAUY,IAAI,IAAIQ;AAE3CC,UAAAA;AACJ,UAAIV,gBAAgBC,MAAM;AACbQ,mBAAAA;AAAAA,MAAAA,WACFD,eAAeG,WAAW,GAAG;AAC3BH,mBAAAA,cAAc,CAAC,EAAEE;AAAAA,MAAAA,OACvB;AACM,mBAAA;AAAA,MACb;AAGME,YAAAA,QAAQX,SAAS,YAAY,OAAOQ;AAE3B,qBAAA;AAAA,QACbR,MAAM;AAAA,QACNrB;AAAAA,QACAC,WAAW0B,aAAaM,SAAS;AAAA,QACjCH;AAAAA,QACAE;AAAAA,MAAAA,CACD;AAAA,IAAA,OACI;AACU,qBAAA;AAAA,QAAEX,MAAM;AAAA,QAAiBrB;AAAAA,QAAIC,WAAW;AAAA,MAAA,CAAM;AAAA,IAC/D;AAAA,EAAA,GAEF,YAAYiC,UAAUtB,MAAM,GACvBsB,GAAAA,UAAUtB,MAAM,KAAK;AAAA,IAAEuB,aAAa;AAAA,IAAMC,QAAQ;AAAA,EACvD,EAAA,CAAA;AAEN;AAEeC,KAAKtC,SAAS;"}
@@ -1,6 +1,6 @@
1
1
  import { jsx } from "@emotion/react/jsx-runtime";
2
2
  import { useContext, useMemo, memo } from "react";
3
- import { QueryBuilderContext } from "../../Context.js";
3
+ import { HvQueryBuilderContext } from "../../Context.js";
4
4
  import { isBigList } from "../../utils/index.js";
5
5
  import { HvDropdown } from "../../../Dropdown/Dropdown.js";
6
6
  const Operator = ({
@@ -9,7 +9,7 @@ const Operator = ({
9
9
  attribute,
10
10
  operator
11
11
  }) => {
12
- const context = useContext(QueryBuilderContext);
12
+ const context = useContext(HvQueryBuilderContext);
13
13
  const {
14
14
  dispatchAction,
15
15
  attributes,
@@ -33,7 +33,7 @@ const Operator = ({
33
33
  type: "set-operator",
34
34
  id,
35
35
  operator: selected.id.toString(),
36
- value: value === "range" || selected.id === "range" ? null : void 0
36
+ value: value === "range" || selected.id === "range" || selected.id === "IsNotEmpty" || selected.id === "Empty" ? null : void 0
37
37
  });
38
38
  } else {
39
39
  dispatchAction({
@@ -1 +1 @@
1
- {"version":3,"file":"Operator.js","sources":["../../../../../../src/components/QueryBuilder/Rule/Operator/Operator.tsx"],"sourcesContent":["import { memo, useContext, useMemo } from \"react\";\n\nimport { HvDropdown } from \"@core/components/Dropdown\";\n\nimport { QueryBuilderContext } from \"../../Context\";\nimport { isBigList } from \"../../utils\";\n\nexport interface OperatorProps {\n id: number;\n combinator: string;\n attribute: string;\n operator: string;\n}\n\nexport const Operator = ({ id, combinator, attribute, operator }) => {\n const context = useContext(QueryBuilderContext);\n\n const { dispatchAction, attributes, operators, labels, readOnly } = context;\n\n const value = operator ?? null;\n\n const values = useMemo(() => {\n const attributeSpec =\n attribute && attributes ? attributes[attribute] : null;\n const options = attributeSpec\n ? operators[attributeSpec.type].filter((o) =>\n o.combinators.includes(combinator)\n ) ?? []\n : [];\n return options.map((key) => ({\n id: key.operator,\n label: key.label,\n selected: key.operator === value,\n }));\n }, [attribute, attributes, operators, combinator, value]);\n\n return (\n <HvDropdown\n required\n status=\"valid\"\n singleSelectionToggle={false}\n label={labels.rule.operator.label}\n placeholder={labels.rule.operator.placeholder}\n values={values}\n disabled={values.length === 0}\n readOnly={readOnly}\n onChange={(selected) => {\n if (selected && !Array.isArray(selected) && selected.id) {\n dispatchAction({\n type: \"set-operator\",\n id,\n operator: selected.id.toString(),\n value:\n value === \"range\" || selected.id === \"range\" ? null : undefined,\n });\n } else {\n dispatchAction({\n type: \"set-operator\",\n id,\n operator: null,\n value: null,\n });\n }\n }}\n showSearch={isBigList(values)}\n {...(isBigList(values) && { virtualized: true, height: 300 })}\n />\n );\n};\n\nexport default memo(Operator);\n"],"names":["Operator","id","combinator","attribute","operator","context","useContext","QueryBuilderContext","dispatchAction","attributes","operators","labels","readOnly","value","values","useMemo","attributeSpec","options","type","filter","o","combinators","includes","map","key","label","selected","rule","placeholder","length","Array","isArray","toString","undefined","isBigList","virtualized","height","memo"],"mappings":";;;;;AAcO,MAAMA,WAAWA,CAAC;AAAA,EAAEC;AAAAA,EAAIC;AAAAA,EAAYC;AAAAA,EAAWC;AAAS,MAAM;AAC7DC,QAAAA,UAAUC,WAAWC,mBAAmB;AAExC,QAAA;AAAA,IAAEC;AAAAA,IAAgBC;AAAAA,IAAYC;AAAAA,IAAWC;AAAAA,IAAQC;AAAAA,EAAaP,IAAAA;AAEpE,QAAMQ,QAAQT,YAAY;AAEpBU,QAAAA,SAASC,QAAQ,MAAM;AAC3B,UAAMC,gBACJb,aAAaM,aAAaA,WAAWN,SAAS,IAAI;AACpD,UAAMc,UAAUD,gBACZN,UAAUM,cAAcE,IAAI,EAAEC,OAAQC,CAAAA,MACpCA,EAAEC,YAAYC,SAASpB,UAAU,CACnC,KAAK,KACL;AACGe,WAAAA,QAAQM,IAAKC,CAAS,SAAA;AAAA,MAC3BvB,IAAIuB,IAAIpB;AAAAA,MACRqB,OAAOD,IAAIC;AAAAA,MACXC,UAAUF,IAAIpB,aAAaS;AAAAA,IAC3B,EAAA;AAAA,EAAA,GACD,CAACV,WAAWM,YAAYC,WAAWR,YAAYW,KAAK,CAAC;AAGtD,SAAA,oBAAC,YACC,EAAA,UAAQ,MACR,QAAO,SACP,uBAAuB,OACvB,OAAOF,OAAOgB,KAAKvB,SAASqB,OAC5B,aAAad,OAAOgB,KAAKvB,SAASwB,aAClC,QACA,UAAUd,OAAOe,WAAW,GAC5B,UACA,UAAWH,CAAa,aAAA;AACtB,QAAIA,YAAY,CAACI,MAAMC,QAAQL,QAAQ,KAAKA,SAASzB,IAAI;AACxC,qBAAA;AAAA,QACbiB,MAAM;AAAA,QACNjB;AAAAA,QACAG,UAAUsB,SAASzB,GAAG+B,SAAS;AAAA,QAC/BnB,OACEA,UAAU,WAAWa,SAASzB,OAAO,UAAU,OAAOgC;AAAAA,MAAAA,CACzD;AAAA,IAAA,OACI;AACU,qBAAA;AAAA,QACbf,MAAM;AAAA,QACNjB;AAAAA,QACAG,UAAU;AAAA,QACVS,OAAO;AAAA,MAAA,CACR;AAAA,IACH;AAAA,EAAA,GAEF,YAAYqB,UAAUpB,MAAM,GACvBoB,GAAAA,UAAUpB,MAAM,KAAK;AAAA,IAAEqB,aAAa;AAAA,IAAMC,QAAQ;AAAA,EACvD,EAAA,CAAA;AAEN;AAEeC,KAAKrC,QAAQ;"}
1
+ {"version":3,"file":"Operator.js","sources":["../../../../../../src/components/QueryBuilder/Rule/Operator/Operator.tsx"],"sourcesContent":["import { memo, useContext, useMemo } from \"react\";\n\nimport { HvDropdown } from \"@core/components/Dropdown\";\n\nimport { HvQueryBuilderContext } from \"../../Context\";\nimport { isBigList } from \"../../utils\";\n\nexport interface OperatorProps {\n id: React.Key;\n combinator: string;\n attribute: string;\n operator?: string;\n}\n\nexport const Operator = ({\n id,\n combinator,\n attribute,\n operator,\n}: OperatorProps) => {\n const context = useContext(HvQueryBuilderContext);\n\n const { dispatchAction, attributes, operators, labels, readOnly } = context;\n\n const value = operator ?? null;\n\n const values = useMemo(() => {\n const attributeSpec =\n attribute && attributes ? attributes[attribute] : null;\n const options = attributeSpec\n ? operators[attributeSpec.type].filter((o) =>\n o.combinators.includes(combinator)\n ) ?? []\n : [];\n return options.map((key) => ({\n id: key.operator,\n label: key.label,\n selected: key.operator === value,\n }));\n }, [attribute, attributes, operators, combinator, value]);\n\n return (\n <HvDropdown\n required\n status=\"valid\"\n singleSelectionToggle={false}\n label={labels.rule.operator.label}\n placeholder={labels.rule.operator.placeholder}\n values={values}\n disabled={values.length === 0}\n readOnly={readOnly}\n onChange={(selected) => {\n if (selected && !Array.isArray(selected) && selected.id) {\n dispatchAction({\n type: \"set-operator\",\n id,\n operator: selected.id.toString(),\n value:\n value === \"range\" ||\n selected.id === \"range\" ||\n selected.id === \"IsNotEmpty\" ||\n selected.id === \"Empty\"\n ? null\n : undefined,\n });\n } else {\n dispatchAction({\n type: \"set-operator\",\n id,\n operator: null,\n value: null,\n });\n }\n }}\n showSearch={isBigList(values)}\n {...(isBigList(values) && { virtualized: true, height: 300 })}\n />\n );\n};\n\nexport default memo(Operator);\n"],"names":["Operator","id","combinator","attribute","operator","context","useContext","HvQueryBuilderContext","dispatchAction","attributes","operators","labels","readOnly","value","values","useMemo","attributeSpec","options","type","filter","o","combinators","includes","map","key","label","selected","rule","placeholder","length","Array","isArray","toString","undefined","isBigList","virtualized","height","memo"],"mappings":";;;;;AAcO,MAAMA,WAAWA,CAAC;AAAA,EACvBC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AACa,MAAM;AACbC,QAAAA,UAAUC,WAAWC,qBAAqB;AAE1C,QAAA;AAAA,IAAEC;AAAAA,IAAgBC;AAAAA,IAAYC;AAAAA,IAAWC;AAAAA,IAAQC;AAAAA,EAAaP,IAAAA;AAEpE,QAAMQ,QAAQT,YAAY;AAEpBU,QAAAA,SAASC,QAAQ,MAAM;AAC3B,UAAMC,gBACJb,aAAaM,aAAaA,WAAWN,SAAS,IAAI;AACpD,UAAMc,UAAUD,gBACZN,UAAUM,cAAcE,IAAI,EAAEC,OAAQC,CAAAA,MACpCA,EAAEC,YAAYC,SAASpB,UAAU,CACnC,KAAK,KACL;AACGe,WAAAA,QAAQM,IAAKC,CAAS,SAAA;AAAA,MAC3BvB,IAAIuB,IAAIpB;AAAAA,MACRqB,OAAOD,IAAIC;AAAAA,MACXC,UAAUF,IAAIpB,aAAaS;AAAAA,IAC3B,EAAA;AAAA,EAAA,GACD,CAACV,WAAWM,YAAYC,WAAWR,YAAYW,KAAK,CAAC;AAGtD,SAAA,oBAAC,YACC,EAAA,UAAQ,MACR,QAAO,SACP,uBAAuB,OACvB,OAAOF,OAAOgB,KAAKvB,SAASqB,OAC5B,aAAad,OAAOgB,KAAKvB,SAASwB,aAClC,QACA,UAAUd,OAAOe,WAAW,GAC5B,UACA,UAAWH,CAAa,aAAA;AACtB,QAAIA,YAAY,CAACI,MAAMC,QAAQL,QAAQ,KAAKA,SAASzB,IAAI;AACxC,qBAAA;AAAA,QACbiB,MAAM;AAAA,QACNjB;AAAAA,QACAG,UAAUsB,SAASzB,GAAG+B,SAAS;AAAA,QAC/BnB,OACEA,UAAU,WACVa,SAASzB,OAAO,WAChByB,SAASzB,OAAO,gBAChByB,SAASzB,OAAO,UACZ,OACAgC;AAAAA,MAAAA,CACP;AAAA,IAAA,OACI;AACU,qBAAA;AAAA,QACbf,MAAM;AAAA,QACNjB;AAAAA,QACAG,UAAU;AAAA,QACVS,OAAO;AAAA,MAAA,CACR;AAAA,IACH;AAAA,EAAA,GAEF,YAAYqB,UAAUpB,MAAM,GACvBoB,GAAAA,UAAUpB,MAAM,KAAK;AAAA,IAAEqB,aAAa;AAAA,IAAMC,QAAQ;AAAA,EACvD,EAAA,CAAA;AAEN;AAEeC,KAAKrC,QAAQ;"}
@@ -3,7 +3,7 @@ import { useContext, useMemo } from "react";
3
3
  import { Delete } from "@hitachivantara/uikit-react-icons";
4
4
  import { useTheme, useMediaQuery } from "@mui/material";
5
5
  import { withTooltip } from "../../../hocs/withTooltip.js";
6
- import { QueryBuilderContext } from "../Context.js";
6
+ import { HvQueryBuilderContext } from "../Context.js";
7
7
  import { useClasses } from "./Rule.styles.js";
8
8
  import { staticClasses } from "./Rule.styles.js";
9
9
  import { HvGrid } from "../../Grid/Grid.js";
@@ -27,7 +27,7 @@ const Rule = (props) => {
27
27
  classes,
28
28
  cx
29
29
  } = useClasses(classesProp);
30
- const context = useContext(QueryBuilderContext);
30
+ const context = useContext(HvQueryBuilderContext);
31
31
  const theme = useTheme();
32
32
  const isMdDown = useMediaQuery(theme.breakpoints.down("md"));
33
33
  const {
@@ -1 +1 @@
1
- {"version":3,"file":"Rule.js","sources":["../../../../../src/components/QueryBuilder/Rule/Rule.tsx"],"sourcesContent":["import { useContext, useMemo } from \"react\";\nimport { Delete } from \"@hitachivantara/uikit-react-icons\";\n\nimport { useMediaQuery, useTheme } from \"@mui/material\";\n\nimport { HvGrid } from \"@core/components/Grid\";\nimport { HvButton } from \"@core/components/Button\";\nimport { withTooltip } from \"@core/hocs/withTooltip\";\n\nimport { useDefaultProps } from \"@core/hooks\";\nimport { ExtractNames } from \"@core/utils\";\n\nimport { QueryBuilderContext } from \"../Context\";\nimport { Attribute } from \"./Attribute\";\nimport { Operator } from \"./Operator\";\nimport { Value } from \"./Value\";\nimport { staticClasses, useClasses } from \"./Rule.styles\";\n\nexport { staticClasses as queryBuilderRuleClasses };\n\nexport type HvQueryBuilderRuleClasses = ExtractNames<typeof useClasses>;\n\nexport interface RuleProps {\n id: number;\n combinator: string;\n attribute: string;\n operator: string;\n value: any;\n disabled: boolean;\n isInvalid: boolean;\n classes?: HvQueryBuilderRuleClasses;\n}\n\nexport const Rule = (props: RuleProps) => {\n const {\n id,\n combinator,\n attribute,\n operator,\n value,\n disabled,\n isInvalid,\n classes: classesProp,\n } = useDefaultProps(\"HvQueryBuilderRule\", props);\n const { classes, cx } = useClasses(classesProp);\n\n const context = useContext(QueryBuilderContext);\n\n const theme = useTheme();\n\n const isMdDown = useMediaQuery(theme.breakpoints.down(\"md\"));\n\n const { askAction, attributes, operators, labels, readOnly } = context;\n\n const availableOperators = useMemo(() => {\n const attributeSpec =\n attribute != null && attributes ? attributes[attribute] : null;\n if (attributeSpec != null) {\n const typeOperators = operators[attributeSpec.type];\n if (typeOperators != null) {\n return typeOperators.reduce(\n (count, item) =>\n count + (item.combinators.includes(combinator) ? 1 : 0),\n 0\n );\n }\n }\n\n return -1;\n }, [attribute, attributes, combinator, operators]);\n\n const shouldShowValueInput =\n operator !== \"Empty\" && operator !== \"IsNotEmpty\";\n\n const DeleteIcon = withTooltip(\n () => <Delete />,\n labels.rule.delete.tooltip,\n \"bottom\"\n );\n\n return (\n <HvGrid\n container\n className={cx(classes.root, { [classes.isMdDown]: isMdDown })}\n spacing={0}\n wrap=\"nowrap\"\n >\n <HvGrid item xs={2} lg={3}>\n <Attribute\n attribute={attribute}\n id={id}\n disabled={disabled}\n isInvalid={isInvalid}\n />\n </HvGrid>\n {attribute != null && availableOperators > 0 && (\n <HvGrid item xs={2} lg={3}>\n <Operator\n id={id}\n combinator={combinator}\n attribute={attribute}\n operator={operator}\n />\n </HvGrid>\n )}\n {attribute != null && (operator != null || availableOperators === 0) && (\n <HvGrid item xs>\n {shouldShowValueInput && (\n <Value\n attribute={attribute}\n id={id}\n operator={operator}\n value={value}\n />\n )}\n </HvGrid>\n )}\n <HvGrid item className={classes.actionsContainer}>\n <HvButton\n icon\n aria-label={labels.rule.delete.ariaLabel}\n onClick={() => {\n askAction({\n actions: [{ type: \"remove-node\", id }],\n dialog: labels.rule.delete,\n });\n }}\n disabled={readOnly}\n >\n <DeleteIcon />\n </HvButton>\n </HvGrid>\n </HvGrid>\n );\n};\n"],"names":["Rule","props","id","combinator","attribute","operator","value","disabled","isInvalid","classes","classesProp","useDefaultProps","cx","useClasses","context","useContext","QueryBuilderContext","theme","useTheme","isMdDown","useMediaQuery","breakpoints","down","askAction","attributes","operators","labels","readOnly","availableOperators","useMemo","attributeSpec","typeOperators","type","reduce","count","item","combinators","includes","shouldShowValueInput","DeleteIcon","withTooltip","rule","delete","tooltip","root","actionsContainer","ariaLabel","actions","dialog"],"mappings":";;;;;;;;;;;;;;AAiCaA,MAAAA,OAAOA,CAACC,UAAqB;AAClC,QAAA;AAAA,IACJC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC,SAASC;AAAAA,EAAAA,IACPC,gBAAgB,sBAAsBV,KAAK;AACzC,QAAA;AAAA,IAAEQ;AAAAA,IAASG;AAAAA,EAAAA,IAAOC,WAAWH,WAAW;AAExCI,QAAAA,UAAUC,WAAWC,mBAAmB;AAE9C,QAAMC,QAAQC;AAEd,QAAMC,WAAWC,cAAcH,MAAMI,YAAYC,KAAK,IAAI,CAAC;AAErD,QAAA;AAAA,IAAEC;AAAAA,IAAWC;AAAAA,IAAYC;AAAAA,IAAWC;AAAAA,IAAQC;AAAAA,EAAab,IAAAA;AAEzDc,QAAAA,qBAAqBC,QAAQ,MAAM;AACvC,UAAMC,gBACJ1B,aAAa,QAAQoB,aAAaA,WAAWpB,SAAS,IAAI;AAC5D,QAAI0B,iBAAiB,MAAM;AACnBC,YAAAA,gBAAgBN,UAAUK,cAAcE,IAAI;AAClD,UAAID,iBAAiB,MAAM;AACzB,eAAOA,cAAcE,OACnB,CAACC,OAAOC,SACND,SAASC,KAAKC,YAAYC,SAASlC,UAAU,IAAI,IAAI,IACvD,CACF;AAAA,MACF;AAAA,IACF;AAEO,WAAA;AAAA,KACN,CAACC,WAAWoB,YAAYrB,YAAYsB,SAAS,CAAC;AAE3Ca,QAAAA,uBACJjC,aAAa,WAAWA,aAAa;AAEjCkC,QAAAA,aAAaC,YACjB,MAAO,oBAAA,QAAA,CAAA,CAAS,GAChBd,OAAOe,KAAKC,OAAOC,SACnB,QACF;AAEA,8BACG,QACC,EAAA,WAAS,MACT,WAAW/B,GAAGH,QAAQmC,MAAM;AAAA,IAAE,CAACnC,QAAQU,QAAQ,GAAGA;AAAAA,EAAU,CAAA,GAC5D,SAAS,GACT,MAAK,UAEL,UAAA;AAAA,IAAA,oBAAC,QAAO,EAAA,MAAI,MAAC,IAAI,GAAG,IAAI,GACtB,UAAA,oBAAC,WACC,EAAA,WACA,IACA,UACA,UAAqB,CAAA,GAEzB;AAAA,IACCf,aAAa,QAAQwB,qBAAqB,KACxC,oBAAA,QAAA,EAAO,MAAI,MAAC,IAAI,GAAG,IAAI,GACtB,UAAC,oBAAA,UAAA,EACC,IACA,YACA,WACA,SAAmB,CAAA,GAEvB;AAAA,IAEDxB,aAAa,SAASC,YAAY,QAAQuB,uBAAuB,0BAC/D,QAAO,EAAA,MAAI,MAAC,IAAE,MACZU,kCACE,oBAAA,OAAA,EACC,WACA,IACA,UACA,OAEH,EACH,CAAA;AAAA,wBAED,QAAO,EAAA,MAAI,MAAC,WAAW7B,QAAQoC,kBAC9B,UAAA,oBAAC,UACC,EAAA,MAAI,MACJ,cAAYnB,OAAOe,KAAKC,OAAOI,WAC/B,SAAS,MAAM;AACH,gBAAA;AAAA,QACRC,SAAS,CAAC;AAAA,UAAEf,MAAM;AAAA,UAAe9B;AAAAA,QAAAA,CAAI;AAAA,QACrC8C,QAAQtB,OAAOe,KAAKC;AAAAA,MAAAA,CACrB;AAAA,IAAA,GAEH,UAAUf,UAEV,UAAC,oBAAA,YAAA,CAAU,CAAA,EACb,CAAA,GACF;AAAA,EACF,EAAA,CAAA;AAEJ;"}
1
+ {"version":3,"file":"Rule.js","sources":["../../../../../src/components/QueryBuilder/Rule/Rule.tsx"],"sourcesContent":["import { useContext, useMemo } from \"react\";\nimport { Delete } from \"@hitachivantara/uikit-react-icons\";\nimport { useMediaQuery, useTheme } from \"@mui/material\";\n\nimport { HvGrid } from \"@core/components/Grid\";\nimport { HvButton } from \"@core/components/Button\";\nimport { withTooltip } from \"@core/hocs/withTooltip\";\nimport { useDefaultProps } from \"@core/hooks\";\nimport { ExtractNames } from \"@core/utils\";\n\nimport { HvQueryBuilderContext } from \"../Context\";\nimport { Attribute } from \"./Attribute\";\nimport { Operator } from \"./Operator\";\nimport { Value } from \"./Value\";\nimport { staticClasses, useClasses } from \"./Rule.styles\";\n\nexport { staticClasses as queryBuilderRuleClasses };\n\nexport type HvQueryBuilderRuleClasses = ExtractNames<typeof useClasses>;\n\nexport interface RuleProps {\n id: React.Key;\n combinator: string;\n attribute?: string;\n operator?: string;\n value?: any;\n disabled?: boolean;\n isInvalid: boolean;\n classes?: HvQueryBuilderRuleClasses;\n}\n\nexport const Rule = (props: RuleProps) => {\n const {\n id,\n combinator,\n attribute,\n operator,\n value,\n disabled,\n isInvalid,\n classes: classesProp,\n } = useDefaultProps(\"HvQueryBuilderRule\", props);\n const { classes, cx } = useClasses(classesProp);\n\n const context = useContext(HvQueryBuilderContext);\n\n const theme = useTheme();\n\n const isMdDown = useMediaQuery(theme.breakpoints.down(\"md\"));\n\n const { askAction, attributes, operators, labels, readOnly } = context;\n\n const availableOperators = useMemo(() => {\n const attributeSpec =\n attribute != null && attributes ? attributes[attribute] : null;\n if (attributeSpec != null) {\n const typeOperators = operators[attributeSpec.type];\n if (typeOperators != null) {\n return typeOperators.reduce(\n (count, item) =>\n count + (item.combinators.includes(combinator) ? 1 : 0),\n 0\n );\n }\n }\n\n return -1;\n }, [attribute, attributes, combinator, operators]);\n\n const shouldShowValueInput =\n operator !== \"Empty\" && operator !== \"IsNotEmpty\";\n\n const DeleteIcon = withTooltip(\n () => <Delete />,\n labels.rule.delete.tooltip,\n \"bottom\"\n );\n\n return (\n <HvGrid\n container\n className={cx(classes.root, { [classes.isMdDown]: isMdDown })}\n spacing={0}\n wrap=\"nowrap\"\n >\n <HvGrid item xs={2} lg={3}>\n <Attribute\n attribute={attribute}\n id={id}\n disabled={disabled}\n isInvalid={isInvalid}\n />\n </HvGrid>\n {attribute != null && availableOperators > 0 && (\n <HvGrid item xs={2} lg={3}>\n <Operator\n id={id}\n combinator={combinator}\n attribute={attribute}\n operator={operator}\n />\n </HvGrid>\n )}\n {attribute != null && (operator != null || availableOperators === 0) && (\n <HvGrid item xs>\n {shouldShowValueInput && (\n <Value\n attribute={attribute}\n id={id}\n operator={operator}\n value={value}\n />\n )}\n </HvGrid>\n )}\n <HvGrid item className={classes.actionsContainer}>\n <HvButton\n icon\n aria-label={labels.rule.delete.ariaLabel}\n onClick={() => {\n askAction({\n actions: [{ type: \"remove-node\", id }],\n dialog: labels.rule.delete,\n });\n }}\n disabled={readOnly}\n >\n <DeleteIcon />\n </HvButton>\n </HvGrid>\n </HvGrid>\n );\n};\n"],"names":["Rule","props","id","combinator","attribute","operator","value","disabled","isInvalid","classes","classesProp","useDefaultProps","cx","useClasses","context","useContext","HvQueryBuilderContext","theme","useTheme","isMdDown","useMediaQuery","breakpoints","down","askAction","attributes","operators","labels","readOnly","availableOperators","useMemo","attributeSpec","typeOperators","type","reduce","count","item","combinators","includes","shouldShowValueInput","DeleteIcon","withTooltip","rule","delete","tooltip","root","actionsContainer","ariaLabel","actions","dialog"],"mappings":";;;;;;;;;;;;;;AA+BaA,MAAAA,OAAOA,CAACC,UAAqB;AAClC,QAAA;AAAA,IACJC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC,SAASC;AAAAA,EAAAA,IACPC,gBAAgB,sBAAsBV,KAAK;AACzC,QAAA;AAAA,IAAEQ;AAAAA,IAASG;AAAAA,EAAAA,IAAOC,WAAWH,WAAW;AAExCI,QAAAA,UAAUC,WAAWC,qBAAqB;AAEhD,QAAMC,QAAQC;AAEd,QAAMC,WAAWC,cAAcH,MAAMI,YAAYC,KAAK,IAAI,CAAC;AAErD,QAAA;AAAA,IAAEC;AAAAA,IAAWC;AAAAA,IAAYC;AAAAA,IAAWC;AAAAA,IAAQC;AAAAA,EAAab,IAAAA;AAEzDc,QAAAA,qBAAqBC,QAAQ,MAAM;AACvC,UAAMC,gBACJ1B,aAAa,QAAQoB,aAAaA,WAAWpB,SAAS,IAAI;AAC5D,QAAI0B,iBAAiB,MAAM;AACnBC,YAAAA,gBAAgBN,UAAUK,cAAcE,IAAI;AAClD,UAAID,iBAAiB,MAAM;AACzB,eAAOA,cAAcE,OACnB,CAACC,OAAOC,SACND,SAASC,KAAKC,YAAYC,SAASlC,UAAU,IAAI,IAAI,IACvD,CACF;AAAA,MACF;AAAA,IACF;AAEO,WAAA;AAAA,KACN,CAACC,WAAWoB,YAAYrB,YAAYsB,SAAS,CAAC;AAE3Ca,QAAAA,uBACJjC,aAAa,WAAWA,aAAa;AAEjCkC,QAAAA,aAAaC,YACjB,MAAO,oBAAA,QAAA,CAAA,CAAS,GAChBd,OAAOe,KAAKC,OAAOC,SACnB,QACF;AAEA,8BACG,QACC,EAAA,WAAS,MACT,WAAW/B,GAAGH,QAAQmC,MAAM;AAAA,IAAE,CAACnC,QAAQU,QAAQ,GAAGA;AAAAA,EAAU,CAAA,GAC5D,SAAS,GACT,MAAK,UAEL,UAAA;AAAA,IAAA,oBAAC,QAAO,EAAA,MAAI,MAAC,IAAI,GAAG,IAAI,GACtB,UAAA,oBAAC,WACC,EAAA,WACA,IACA,UACA,UAAqB,CAAA,GAEzB;AAAA,IACCf,aAAa,QAAQwB,qBAAqB,KACxC,oBAAA,QAAA,EAAO,MAAI,MAAC,IAAI,GAAG,IAAI,GACtB,UAAC,oBAAA,UAAA,EACC,IACA,YACA,WACA,SAAmB,CAAA,GAEvB;AAAA,IAEDxB,aAAa,SAASC,YAAY,QAAQuB,uBAAuB,0BAC/D,QAAO,EAAA,MAAI,MAAC,IAAE,MACZU,kCACE,oBAAA,OAAA,EACC,WACA,IACA,UACA,OAEH,EACH,CAAA;AAAA,wBAED,QAAO,EAAA,MAAI,MAAC,WAAW7B,QAAQoC,kBAC9B,UAAA,oBAAC,UACC,EAAA,MAAI,MACJ,cAAYnB,OAAOe,KAAKC,OAAOI,WAC/B,SAAS,MAAM;AACH,gBAAA;AAAA,QACRC,SAAS,CAAC;AAAA,UAAEf,MAAM;AAAA,UAAe9B;AAAAA,QAAAA,CAAI;AAAA,QACrC8C,QAAQtB,OAAOe,KAAKC;AAAAA,MAAAA,CACrB;AAAA,IAAA,GAEH,UAAUf,UAEV,UAAC,oBAAA,YAAA,CAAU,CAAA,EACb,CAAA,GACF;AAAA,EACF,EAAA,CAAA;AAEJ;"}
@@ -1,13 +1,13 @@
1
1
  import { jsx } from "@emotion/react/jsx-runtime";
2
2
  import { useContext, memo } from "react";
3
- import { QueryBuilderContext } from "../../../Context.js";
3
+ import { HvQueryBuilderContext } from "../../../Context.js";
4
4
  import { isBigList } from "../../../utils/index.js";
5
5
  import { HvDropdown } from "../../../../Dropdown/Dropdown.js";
6
6
  const BooleanValue = ({
7
7
  id,
8
8
  value = true
9
9
  }) => {
10
- const context = useContext(QueryBuilderContext);
10
+ const context = useContext(HvQueryBuilderContext);
11
11
  const {
12
12
  labels,
13
13
  dispatchAction,
@@ -1 +1 @@
1
- {"version":3,"file":"BooleanValue.js","sources":["../../../../../../../src/components/QueryBuilder/Rule/Value/BooleanValue/BooleanValue.tsx"],"sourcesContent":["import { memo, useContext } from \"react\";\n\nimport { HvDropdown } from \"@core/components/Dropdown\";\n\nimport { QueryBuilderContext } from \"../../../Context\";\nimport { isBigList } from \"../../../utils\";\n\nexport interface BooleanValueProps {\n id: number;\n value: boolean;\n}\n\nexport const BooleanValue = ({ id, value = true }: BooleanValueProps) => {\n const context = useContext(QueryBuilderContext);\n const { labels, dispatchAction, readOnly } = context;\n\n const values = [\"true\", \"false\"].map((v) => ({\n id: v,\n label: labels.rule.value.boolean.options[v],\n selected: value === (v === \"true\"),\n }));\n\n return (\n <HvDropdown\n required\n status=\"valid\"\n singleSelectionToggle={false}\n label={labels.rule.value.boolean.label}\n placeholder={labels.rule.value.boolean.placeholder}\n values={values}\n readOnly={readOnly}\n onChange={(selected) => {\n if (selected && !Array.isArray(selected) && selected.id) {\n dispatchAction({\n type: \"set-value\",\n id,\n value: selected.id === \"true\",\n });\n } else {\n dispatchAction({ type: \"set-value\", id, value: null });\n }\n }}\n showSearch={isBigList(values)}\n {...(isBigList(values) && { virtualized: true, height: 300 })}\n />\n );\n};\n\nexport default memo(BooleanValue);\n"],"names":["BooleanValue","id","value","context","useContext","QueryBuilderContext","labels","dispatchAction","readOnly","values","map","v","label","rule","boolean","options","selected","placeholder","Array","isArray","type","isBigList","virtualized","height","memo"],"mappings":";;;;;AAYO,MAAMA,eAAeA,CAAC;AAAA,EAAEC;AAAAA,EAAIC,QAAQ;AAAwB,MAAM;AACjEC,QAAAA,UAAUC,WAAWC,mBAAmB;AACxC,QAAA;AAAA,IAAEC;AAAAA,IAAQC;AAAAA,IAAgBC;AAAAA,EAAaL,IAAAA;AAE7C,QAAMM,SAAS,CAAC,QAAQ,OAAO,EAAEC,IAAKC,CAAO,OAAA;AAAA,IAC3CV,IAAIU;AAAAA,IACJC,OAAON,OAAOO,KAAKX,MAAMY,QAAQC,QAAQJ,CAAC;AAAA,IAC1CK,UAAUd,WAAWS,MAAM;AAAA,EAC3B,EAAA;AAGA,SAAA,oBAAC,cACC,UAAQ,MACR,QAAO,SACP,uBAAuB,OACvB,OAAOL,OAAOO,KAAKX,MAAMY,QAAQF,OACjC,aAAaN,OAAOO,KAAKX,MAAMY,QAAQG,aACvC,QACA,UACA,UAAWD,CAAa,aAAA;AACtB,QAAIA,YAAY,CAACE,MAAMC,QAAQH,QAAQ,KAAKA,SAASf,IAAI;AACxC,qBAAA;AAAA,QACbmB,MAAM;AAAA,QACNnB;AAAAA,QACAC,OAAOc,SAASf,OAAO;AAAA,MAAA,CACxB;AAAA,IAAA,OACI;AACU,qBAAA;AAAA,QAAEmB,MAAM;AAAA,QAAanB;AAAAA,QAAIC,OAAO;AAAA,MAAA,CAAM;AAAA,IACvD;AAAA,EAAA,GAEF,YAAYmB,UAAUZ,MAAM,GACvBY,GAAAA,UAAUZ,MAAM,KAAK;AAAA,IAAEa,aAAa;AAAA,IAAMC,QAAQ;AAAA,EACvD,EAAA,CAAA;AAEN;AAEeC,KAAKxB,YAAY;"}
1
+ {"version":3,"file":"BooleanValue.js","sources":["../../../../../../../src/components/QueryBuilder/Rule/Value/BooleanValue/BooleanValue.tsx"],"sourcesContent":["import { memo, useContext } from \"react\";\n\nimport { HvDropdown } from \"@core/components/Dropdown\";\n\nimport { HvQueryBuilderContext } from \"../../../Context\";\nimport { isBigList } from \"../../../utils\";\n\nexport interface BooleanValueProps {\n id: React.Key;\n value?: boolean;\n}\n\nexport const BooleanValue = ({ id, value = true }: BooleanValueProps) => {\n const context = useContext(HvQueryBuilderContext);\n const { labels, dispatchAction, readOnly } = context;\n\n const values = [\"true\", \"false\"].map((v) => ({\n id: v,\n label: labels.rule.value.boolean.options[v],\n selected: value === (v === \"true\"),\n }));\n\n return (\n <HvDropdown\n required\n status=\"valid\"\n singleSelectionToggle={false}\n label={labels.rule.value.boolean.label}\n placeholder={labels.rule.value.boolean.placeholder}\n values={values}\n readOnly={readOnly}\n onChange={(selected) => {\n if (selected && !Array.isArray(selected) && selected.id) {\n dispatchAction({\n type: \"set-value\",\n id,\n value: selected.id === \"true\",\n });\n } else {\n dispatchAction({ type: \"set-value\", id, value: null });\n }\n }}\n showSearch={isBigList(values)}\n {...(isBigList(values) && { virtualized: true, height: 300 })}\n />\n );\n};\n\nexport default memo(BooleanValue);\n"],"names":["BooleanValue","id","value","context","useContext","HvQueryBuilderContext","labels","dispatchAction","readOnly","values","map","v","label","rule","boolean","options","selected","placeholder","Array","isArray","type","isBigList","virtualized","height","memo"],"mappings":";;;;;AAYO,MAAMA,eAAeA,CAAC;AAAA,EAAEC;AAAAA,EAAIC,QAAQ;AAAwB,MAAM;AACjEC,QAAAA,UAAUC,WAAWC,qBAAqB;AAC1C,QAAA;AAAA,IAAEC;AAAAA,IAAQC;AAAAA,IAAgBC;AAAAA,EAAaL,IAAAA;AAE7C,QAAMM,SAAS,CAAC,QAAQ,OAAO,EAAEC,IAAKC,CAAO,OAAA;AAAA,IAC3CV,IAAIU;AAAAA,IACJC,OAAON,OAAOO,KAAKX,MAAMY,QAAQC,QAAQJ,CAAC;AAAA,IAC1CK,UAAUd,WAAWS,MAAM;AAAA,EAC3B,EAAA;AAGA,SAAA,oBAAC,cACC,UAAQ,MACR,QAAO,SACP,uBAAuB,OACvB,OAAOL,OAAOO,KAAKX,MAAMY,QAAQF,OACjC,aAAaN,OAAOO,KAAKX,MAAMY,QAAQG,aACvC,QACA,UACA,UAAWD,CAAa,aAAA;AACtB,QAAIA,YAAY,CAACE,MAAMC,QAAQH,QAAQ,KAAKA,SAASf,IAAI;AACxC,qBAAA;AAAA,QACbmB,MAAM;AAAA,QACNnB;AAAAA,QACAC,OAAOc,SAASf,OAAO;AAAA,MAAA,CACxB;AAAA,IAAA,OACI;AACU,qBAAA;AAAA,QAAEmB,MAAM;AAAA,QAAanB;AAAAA,QAAIC,OAAO;AAAA,MAAA,CAAM;AAAA,IACvD;AAAA,EAAA,GAEF,YAAYmB,UAAUZ,MAAM,GACvBY,GAAAA,UAAUZ,MAAM,KAAK;AAAA,IAAEa,aAAa;AAAA,IAAMC,QAAQ;AAAA,EACvD,EAAA,CAAA;AAEN;AAEeC,KAAKxB,YAAY;"}
@@ -3,7 +3,7 @@ import { useContext, useState, useCallback, useMemo, memo } from "react";
3
3
  import uniqueId from "lodash/uniqueId";
4
4
  import dayjs from "dayjs";
5
5
  import { useTheme, useMediaQuery } from "@mui/material";
6
- import { QueryBuilderContext } from "../../../Context.js";
6
+ import { HvQueryBuilderContext } from "../../../Context.js";
7
7
  import { padTime, parseDate, parseTime } from "./utils.js";
8
8
  import { useClasses } from "./DateTimeValue.styles.js";
9
9
  import { HvDatePicker } from "../../../../DatePicker/DatePicker.js";
@@ -25,7 +25,7 @@ const DateTimeValue = ({
25
25
  const theme = useTheme();
26
26
  const isMdDown = useMediaQuery(theme.breakpoints.down("md"));
27
27
  const isRange = valueIsRange(operator);
28
- const context = useContext(QueryBuilderContext);
28
+ const context = useContext(HvQueryBuilderContext);
29
29
  const {
30
30
  labels,
31
31
  dispatchAction,
@@ -1 +1 @@
1
- {"version":3,"file":"DateTimeValue.js","sources":["../../../../../../../src/components/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.tsx"],"sourcesContent":["import { memo, useCallback, useContext, useMemo, useState } from \"react\";\n\nimport uniqueId from \"lodash/uniqueId\";\n\nimport dayjs from \"dayjs\";\n\nimport { useMediaQuery, useTheme } from \"@mui/material\";\n\nimport { HvWarningText } from \"@core/components/Forms\";\nimport { HvTimePicker } from \"@core/components/TimePicker\";\nimport { HvDatePicker } from \"@core/components/DatePicker\";\n\nimport { QueryBuilderContext } from \"../../../Context\";\nimport { padTime, parseDate, parseTime } from \"./utils\";\nimport { useClasses } from \"./DateTimeValue.styles\";\n\nfunction valueIsRange(operator) {\n return operator === \"range\";\n}\n\nexport interface DateTimeValueProps {\n id: number;\n operator: string;\n value: any;\n initialTouched: boolean;\n}\n\nexport const DateTimeValue = ({\n id,\n operator,\n value: valueProp = {},\n initialTouched = false,\n}: DateTimeValueProps) => {\n const { classes, cx } = useClasses();\n\n const theme = useTheme();\n const isMdDown = useMediaQuery(theme.breakpoints.down(\"md\"));\n\n const isRange = valueIsRange(operator);\n\n const context = useContext(QueryBuilderContext);\n const { labels, dispatchAction, readOnly } = context;\n\n const elementId = uniqueId(`datetime${id}`);\n\n const [touchedDate, setTouchedDate] = useState(initialTouched);\n const [touchedTime, setTouchedTime] = useState(initialTouched);\n const [touchedEndDate, setTouchedEndDate] = useState(initialTouched);\n const [touchedEndTime, setTouchedEndTime] = useState(initialTouched);\n\n const onDateChange = useCallback(\n (data) => {\n setTouchedDate(true);\n\n let date;\n if (data != null) {\n date = dayjs(data).format(\"YYYY-MM-DD\");\n }\n\n const oldValue = !isRange ? valueProp?.date : valueProp?.start?.date;\n\n if (date !== oldValue) {\n let value;\n if (!isRange) {\n value = {\n date,\n time: valueProp?.time,\n };\n } else {\n value = {\n start: {\n date,\n time: valueProp?.start?.time,\n },\n end: valueProp?.end,\n };\n }\n\n dispatchAction({\n type: \"set-value\",\n id,\n value,\n });\n }\n },\n [dispatchAction, id, isRange, valueProp]\n );\n\n const onTimeChange = useCallback(\n (data) => {\n setTouchedTime(true);\n\n let time;\n if (data != null) {\n time = `${padTime(data.hours)}:${padTime(data.minutes)}:${padTime(\n data.seconds\n )}`;\n }\n\n const oldValue = !isRange ? valueProp?.time : valueProp?.start?.time;\n\n if (time !== oldValue) {\n let value;\n if (!isRange) {\n value = {\n date: valueProp?.date,\n time,\n };\n } else {\n value = {\n start: {\n date: valueProp?.start?.date,\n time,\n },\n end: valueProp?.end,\n };\n }\n\n dispatchAction({\n type: \"set-value\",\n id,\n value,\n });\n }\n },\n [dispatchAction, id, isRange, valueProp]\n );\n\n const onEndDateChange = useCallback(\n (data) => {\n setTouchedEndDate(true);\n\n let date;\n if (data != null) {\n date = dayjs(data).format(\"YYYY-MM-DD\");\n }\n\n if (date !== valueProp?.end?.date) {\n const value = {\n start: valueProp?.start,\n end: {\n date,\n time: valueProp?.end?.time,\n },\n };\n\n dispatchAction({\n type: \"set-value\",\n id,\n value,\n });\n }\n },\n [dispatchAction, id, valueProp]\n );\n\n const onEndTimeChange = useCallback(\n (data) => {\n setTouchedEndTime(true);\n\n let time;\n if (data != null) {\n time = `${padTime(data.hours)}:${padTime(data.minutes)}:${padTime(\n data.seconds\n )}`;\n }\n\n if (time !== valueProp?.end?.time) {\n const value = {\n start: valueProp?.start,\n end: {\n date: valueProp?.end?.date,\n time,\n },\n };\n\n dispatchAction({\n type: \"set-value\",\n id,\n value,\n });\n }\n },\n [dispatchAction, id, valueProp]\n );\n\n const startDate = isRange ? valueProp?.start?.date : valueProp?.date;\n const datePickerValue = useMemo(() => parseDate(startDate), [startDate]);\n const datePickerStatus = datePickerValue != null ? \"valid\" : \"invalid\";\n\n const startTime = (isRange ? valueProp?.start?.time : valueProp?.time) ?? \"\";\n const timePickerValue = useMemo(() => parseTime(startTime), [startTime]);\n const timePickerStatus = timePickerValue != null ? \"valid\" : \"invalid\";\n\n const endDate = isRange ? valueProp?.end?.date : null;\n const endDatePickerValue = useMemo(() => parseDate(endDate), [endDate]);\n\n const endTime = isRange ? valueProp?.end?.time : null;\n const endTimePickerValue = useMemo(() => parseTime(endTime), [endTime]);\n\n const dateStatus = !touchedDate ? \"standBy\" : datePickerStatus;\n const timeStatus = !touchedTime ? \"standBy\" : timePickerStatus;\n\n const endDateIsBefore =\n startDate != null && endDate != null && endDate < startDate;\n\n const endTimeIsBeforeOrSame =\n startDate != null &&\n endDate != null &&\n endDate === startDate &&\n startTime != null &&\n endTime != null &&\n endTime <= startTime;\n\n const endDateTimeIsBefore = endDateIsBefore || endTimeIsBeforeOrSame;\n\n const endDatePickerStatus =\n endDatePickerValue == null || endDateTimeIsBefore ? \"invalid\" : \"valid\";\n const endDateStatus = !touchedEndDate ? \"standBy\" : endDatePickerStatus;\n\n const endTimePickerStatus =\n endTimePickerValue == null || endDateTimeIsBefore ? \"invalid\" : \"valid\";\n const endTimeStatus = !touchedEndTime ? \"standBy\" : endTimePickerStatus;\n\n return (\n <div className={classes.root}>\n <div\n className={cx(classes.row, classes.horizontal, {\n [classes.isMdDown]: isMdDown,\n })}\n >\n <HvDatePicker\n className={classes.datePicker}\n name={`${elementId}-date`}\n required\n status={dateStatus}\n statusMessage={labels.rule.value.datetime.validation.required}\n label={\n isRange\n ? labels.rule.value.datetime.startDateLabel\n : labels.rule.value.datetime.dateLabel\n }\n placeholder={\n isRange\n ? labels.rule.value.datetime.startDatePlaceholder\n : labels.rule.value.datetime.datePlaceholder\n }\n value={datePickerValue}\n onChange={onDateChange}\n readOnly={readOnly}\n />\n <HvTimePicker\n className={classes.timePicker}\n timeFormat=\"24\"\n name={`${elementId}-time`}\n required\n status={timeStatus}\n statusMessage={labels.rule.value.datetime.validation.required}\n label={\n isRange\n ? labels.rule.value.datetime.startTimeLabel\n : labels.rule.value.datetime.timeLabel\n }\n placeholder={\n isRange\n ? labels.rule.value.datetime.startTimePlaceholder\n : labels.rule.value.datetime.timePlaceholder\n }\n value={timePickerValue || undefined}\n onChange={onTimeChange}\n onToggle={(_evt, open) => {\n if (!open && !touchedTime) {\n setTouchedTime(true);\n }\n }}\n readOnly={readOnly}\n />\n </div>\n {isRange && (\n <div className={cx(classes.row, classes.vertical)}>\n <div\n className={cx(classes.horizontal, {\n [classes.isMdDown]: isMdDown,\n })}\n >\n <HvDatePicker\n className={classes.datePicker}\n name={`${elementId}-endDate`}\n required\n status={endDateStatus}\n statusMessage={labels.rule.value.datetime.validation.required}\n aria-errormessage={\n endDateTimeIsBefore ? `${elementId}-combined-error` : undefined\n }\n label={labels.rule.value.datetime.endDateLabel}\n placeholder={labels.rule.value.datetime.endDatePlaceholder}\n value={endDatePickerValue}\n onChange={onEndDateChange}\n readOnly={readOnly}\n />\n <HvTimePicker\n className={classes.timePicker}\n timeFormat=\"24\"\n name={`${elementId}-endTime`}\n required\n status={endTimeStatus}\n statusMessage={labels.rule.value.datetime.validation.required}\n aria-errormessage={\n endDateTimeIsBefore ? `${elementId}-combined-error` : undefined\n }\n label={labels.rule.value.datetime.endTimeLabel}\n placeholder={labels.rule.value.datetime.endTimePlaceholder}\n value={endTimePickerValue || undefined}\n onChange={onEndTimeChange}\n onToggle={(_evt, open) => {\n if (!open && !touchedEndTime) {\n setTouchedEndTime(true);\n }\n }}\n readOnly={readOnly}\n />\n </div>\n <HvWarningText\n disableBorder\n id={`${elementId}-combined-error`}\n isVisible={endDateTimeIsBefore}\n >\n {labels.rule.value.datetime.validation.invalidInterval}\n </HvWarningText>\n </div>\n )}\n </div>\n );\n};\n\nexport default memo(DateTimeValue);\n"],"names":["valueIsRange","operator","DateTimeValue","id","value","valueProp","initialTouched","classes","cx","useClasses","theme","useTheme","isMdDown","useMediaQuery","breakpoints","down","isRange","context","useContext","QueryBuilderContext","labels","dispatchAction","readOnly","elementId","uniqueId","touchedDate","setTouchedDate","useState","touchedTime","setTouchedTime","touchedEndDate","setTouchedEndDate","touchedEndTime","setTouchedEndTime","onDateChange","useCallback","data","date","dayjs","format","oldValue","start","time","end","type","onTimeChange","padTime","hours","minutes","seconds","onEndDateChange","onEndTimeChange","startDate","datePickerValue","useMemo","parseDate","datePickerStatus","startTime","timePickerValue","parseTime","timePickerStatus","endDate","endDatePickerValue","endTime","endTimePickerValue","dateStatus","timeStatus","endDateIsBefore","endTimeIsBeforeOrSame","endDateTimeIsBefore","endDatePickerStatus","endDateStatus","endTimePickerStatus","endTimeStatus","root","row","horizontal","datePicker","rule","datetime","validation","required","startDateLabel","dateLabel","startDatePlaceholder","datePlaceholder","timePicker","startTimeLabel","timeLabel","startTimePlaceholder","timePlaceholder","undefined","_evt","open","vertical","endDateLabel","endDatePlaceholder","endTimeLabel","endTimePlaceholder","invalidInterval","memo"],"mappings":"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"}
1
+ {"version":3,"file":"DateTimeValue.js","sources":["../../../../../../../src/components/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.tsx"],"sourcesContent":["import { memo, useCallback, useContext, useMemo, useState } from \"react\";\nimport uniqueId from \"lodash/uniqueId\";\nimport dayjs from \"dayjs\";\nimport { useMediaQuery, useTheme } from \"@mui/material\";\n\nimport { HvWarningText } from \"@core/components/Forms\";\nimport { HvTimePicker, HvTimePickerValue } from \"@core/components/TimePicker\";\nimport { HvDatePicker } from \"@core/components/DatePicker\";\n\nimport { HvQueryBuilderContext } from \"../../../Context\";\nimport { padTime, parseDate, parseTime } from \"./utils\";\nimport { useClasses } from \"./DateTimeValue.styles\";\n\nfunction valueIsRange(operator) {\n return operator === \"range\";\n}\n\nexport interface DateTimeValueProps {\n id: React.Key;\n operator?: string;\n value?: any;\n initialTouched?: boolean;\n}\n\nexport const DateTimeValue = ({\n id,\n operator,\n value: valueProp = {},\n initialTouched = false,\n}: DateTimeValueProps) => {\n const { classes, cx } = useClasses();\n\n const theme = useTheme();\n const isMdDown = useMediaQuery(theme.breakpoints.down(\"md\"));\n\n const isRange = valueIsRange(operator);\n\n const context = useContext(HvQueryBuilderContext);\n const { labels, dispatchAction, readOnly } = context;\n\n const elementId = uniqueId(`datetime${id}`);\n\n const [touchedDate, setTouchedDate] = useState(initialTouched);\n const [touchedTime, setTouchedTime] = useState(initialTouched);\n const [touchedEndDate, setTouchedEndDate] = useState(initialTouched);\n const [touchedEndTime, setTouchedEndTime] = useState(initialTouched);\n\n const onDateChange = useCallback(\n (data?: Date) => {\n setTouchedDate(true);\n\n let date;\n if (data != null) {\n date = dayjs(data).format(\"YYYY-MM-DD\");\n }\n\n const oldValue = !isRange ? valueProp?.date : valueProp?.start?.date;\n\n if (date !== oldValue) {\n let value;\n if (!isRange) {\n value = {\n date,\n time: valueProp?.time,\n };\n } else {\n value = {\n start: {\n date,\n time: valueProp?.start?.time,\n },\n end: valueProp?.end,\n };\n }\n\n dispatchAction({\n type: \"set-value\",\n id,\n value,\n });\n }\n },\n [dispatchAction, id, isRange, valueProp]\n );\n\n const onTimeChange = useCallback(\n (data: HvTimePickerValue) => {\n setTouchedTime(true);\n\n let time;\n if (data != null) {\n time = `${padTime(data.hours)}:${padTime(data.minutes)}:${padTime(\n data.seconds\n )}`;\n }\n\n const oldValue = !isRange ? valueProp?.time : valueProp?.start?.time;\n\n if (time !== oldValue) {\n let value;\n if (!isRange) {\n value = {\n date: valueProp?.date,\n time,\n };\n } else {\n value = {\n start: {\n date: valueProp?.start?.date,\n time,\n },\n end: valueProp?.end,\n };\n }\n\n dispatchAction({\n type: \"set-value\",\n id,\n value,\n });\n }\n },\n [dispatchAction, id, isRange, valueProp]\n );\n\n const onEndDateChange = useCallback(\n (data?: Date) => {\n setTouchedEndDate(true);\n\n let date;\n if (data != null) {\n date = dayjs(data).format(\"YYYY-MM-DD\");\n }\n\n if (date !== valueProp?.end?.date) {\n const value = {\n start: valueProp?.start,\n end: {\n date,\n time: valueProp?.end?.time,\n },\n };\n\n dispatchAction({\n type: \"set-value\",\n id,\n value,\n });\n }\n },\n [dispatchAction, id, valueProp]\n );\n\n const onEndTimeChange = useCallback(\n (data: HvTimePickerValue) => {\n setTouchedEndTime(true);\n\n let time;\n if (data != null) {\n time = `${padTime(data.hours)}:${padTime(data.minutes)}:${padTime(\n data.seconds\n )}`;\n }\n\n if (time !== valueProp?.end?.time) {\n const value = {\n start: valueProp?.start,\n end: {\n date: valueProp?.end?.date,\n time,\n },\n };\n\n dispatchAction({\n type: \"set-value\",\n id,\n value,\n });\n }\n },\n [dispatchAction, id, valueProp]\n );\n\n const startDate = isRange ? valueProp?.start?.date : valueProp?.date;\n const datePickerValue = useMemo(() => parseDate(startDate), [startDate]);\n const datePickerStatus = datePickerValue != null ? \"valid\" : \"invalid\";\n\n const startTime = (isRange ? valueProp?.start?.time : valueProp?.time) ?? \"\";\n const timePickerValue = useMemo(() => parseTime(startTime), [startTime]);\n const timePickerStatus = timePickerValue != null ? \"valid\" : \"invalid\";\n\n const endDate = isRange ? valueProp?.end?.date : null;\n const endDatePickerValue = useMemo(() => parseDate(endDate), [endDate]);\n\n const endTime = isRange ? valueProp?.end?.time : null;\n const endTimePickerValue = useMemo(() => parseTime(endTime), [endTime]);\n\n const dateStatus = !touchedDate ? \"standBy\" : datePickerStatus;\n const timeStatus = !touchedTime ? \"standBy\" : timePickerStatus;\n\n const endDateIsBefore =\n startDate != null && endDate != null && endDate < startDate;\n\n const endTimeIsBeforeOrSame =\n startDate != null &&\n endDate != null &&\n endDate === startDate &&\n startTime != null &&\n endTime != null &&\n endTime <= startTime;\n\n const endDateTimeIsBefore = endDateIsBefore || endTimeIsBeforeOrSame;\n\n const endDatePickerStatus =\n endDatePickerValue == null || endDateTimeIsBefore ? \"invalid\" : \"valid\";\n const endDateStatus = !touchedEndDate ? \"standBy\" : endDatePickerStatus;\n\n const endTimePickerStatus =\n endTimePickerValue == null || endDateTimeIsBefore ? \"invalid\" : \"valid\";\n const endTimeStatus = !touchedEndTime ? \"standBy\" : endTimePickerStatus;\n\n return (\n <div className={classes.root}>\n <div\n className={cx(classes.row, classes.horizontal, {\n [classes.isMdDown]: isMdDown,\n })}\n >\n <HvDatePicker\n className={classes.datePicker}\n name={`${elementId}-date`}\n required\n status={dateStatus}\n statusMessage={labels.rule.value.datetime.validation.required}\n label={\n isRange\n ? labels.rule.value.datetime.startDateLabel\n : labels.rule.value.datetime.dateLabel\n }\n placeholder={\n isRange\n ? labels.rule.value.datetime.startDatePlaceholder\n : labels.rule.value.datetime.datePlaceholder\n }\n value={datePickerValue}\n onChange={onDateChange}\n readOnly={readOnly}\n />\n <HvTimePicker\n className={classes.timePicker}\n timeFormat=\"24\"\n name={`${elementId}-time`}\n required\n status={timeStatus}\n statusMessage={labels.rule.value.datetime.validation.required}\n label={\n isRange\n ? labels.rule.value.datetime.startTimeLabel\n : labels.rule.value.datetime.timeLabel\n }\n placeholder={\n isRange\n ? labels.rule.value.datetime.startTimePlaceholder\n : labels.rule.value.datetime.timePlaceholder\n }\n value={timePickerValue || undefined}\n onChange={onTimeChange}\n onToggle={(_evt, open) => {\n if (!open && !touchedTime) {\n setTouchedTime(true);\n }\n }}\n readOnly={readOnly}\n />\n </div>\n {isRange && (\n <div className={cx(classes.row, classes.vertical)}>\n <div\n className={cx(classes.horizontal, {\n [classes.isMdDown]: isMdDown,\n })}\n >\n <HvDatePicker\n className={classes.datePicker}\n name={`${elementId}-endDate`}\n required\n status={endDateStatus}\n statusMessage={labels.rule.value.datetime.validation.required}\n aria-errormessage={\n endDateTimeIsBefore ? `${elementId}-combined-error` : undefined\n }\n label={labels.rule.value.datetime.endDateLabel}\n placeholder={labels.rule.value.datetime.endDatePlaceholder}\n value={endDatePickerValue}\n onChange={onEndDateChange}\n readOnly={readOnly}\n />\n <HvTimePicker\n className={classes.timePicker}\n timeFormat=\"24\"\n name={`${elementId}-endTime`}\n required\n status={endTimeStatus}\n statusMessage={labels.rule.value.datetime.validation.required}\n aria-errormessage={\n endDateTimeIsBefore ? `${elementId}-combined-error` : undefined\n }\n label={labels.rule.value.datetime.endTimeLabel}\n placeholder={labels.rule.value.datetime.endTimePlaceholder}\n value={endTimePickerValue || undefined}\n onChange={onEndTimeChange}\n onToggle={(_evt, open) => {\n if (!open && !touchedEndTime) {\n setTouchedEndTime(true);\n }\n }}\n readOnly={readOnly}\n />\n </div>\n <HvWarningText\n disableBorder\n id={`${elementId}-combined-error`}\n isVisible={endDateTimeIsBefore}\n >\n {labels.rule.value.datetime.validation.invalidInterval}\n </HvWarningText>\n </div>\n )}\n </div>\n );\n};\n\nexport default memo(DateTimeValue);\n"],"names":["valueIsRange","operator","DateTimeValue","id","value","valueProp","initialTouched","classes","cx","useClasses","theme","useTheme","isMdDown","useMediaQuery","breakpoints","down","isRange","context","useContext","HvQueryBuilderContext","labels","dispatchAction","readOnly","elementId","uniqueId","touchedDate","setTouchedDate","useState","touchedTime","setTouchedTime","touchedEndDate","setTouchedEndDate","touchedEndTime","setTouchedEndTime","onDateChange","useCallback","data","date","dayjs","format","oldValue","start","time","end","type","onTimeChange","padTime","hours","minutes","seconds","onEndDateChange","onEndTimeChange","startDate","datePickerValue","useMemo","parseDate","datePickerStatus","startTime","timePickerValue","parseTime","timePickerStatus","endDate","endDatePickerValue","endTime","endTimePickerValue","dateStatus","timeStatus","endDateIsBefore","endTimeIsBeforeOrSame","endDateTimeIsBefore","endDatePickerStatus","endDateStatus","endTimePickerStatus","endTimeStatus","root","row","horizontal","datePicker","rule","datetime","validation","required","startDateLabel","dateLabel","startDatePlaceholder","datePlaceholder","timePicker","startTimeLabel","timeLabel","startTimePlaceholder","timePlaceholder","undefined","_evt","open","vertical","endDateLabel","endDatePlaceholder","endTimeLabel","endTimePlaceholder","invalidInterval","memo"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../../../../../src/components/QueryBuilder/Rule/Value/DateTimeValue/utils.tsx"],"sourcesContent":["import dayjs from \"dayjs\";\n\n/**\n * Pads the unit time values so that they always have two digits\n * @param {Number} value - unit time value\n * @returns The unit time value with two digits\n */\nexport const padTime = (value) => {\n if (!value || value < 0) {\n return \"00\";\n }\n if (value < 10 && value.toString().length === 1) {\n return `0${value.toString()}`;\n }\n\n return value.toString();\n};\n\nexport const parseDate = (date) => {\n if (date != null) {\n return dayjs(date).toDate();\n }\n\n return undefined;\n};\n\nexport const parseTime = (time) => {\n if (time != null) {\n const parts = time.split(\":\");\n\n if (parts.length === 3) {\n return {\n hours: Number.parseInt(parts[0], 10),\n minutes: Number.parseInt(parts[1], 10),\n seconds: Number.parseInt(parts[2], 10),\n };\n }\n }\n\n return null;\n};\n"],"names":["padTime","value","toString","length","parseDate","date","dayjs","toDate","undefined","parseTime","time","parts","split","hours","Number","parseInt","minutes","seconds"],"mappings":";AAOO,MAAMA,UAAWC,CAAU,UAAA;AAC5B,MAAA,CAACA,SAASA,QAAQ,GAAG;AAChB,WAAA;AAAA,EACT;AACA,MAAIA,QAAQ,MAAMA,MAAMC,SAAS,EAAEC,WAAW,GAAG;AACvC,WAAA,IAAGF,MAAMC,SAAAA,CAAW;AAAA,EAC9B;AAEA,SAAOD,MAAMC;AACf;AAEO,MAAME,YAAaC,CAAS,SAAA;AACjC,MAAIA,QAAQ,MAAM;AACTC,WAAAA,MAAMD,IAAI,EAAEE;EACrB;AAEOC,SAAAA;AACT;AAEO,MAAMC,YAAaC,CAAS,SAAA;AACjC,MAAIA,QAAQ,MAAM;AACVC,UAAAA,QAAQD,KAAKE,MAAM,GAAG;AAExBD,QAAAA,MAAMR,WAAW,GAAG;AACf,aAAA;AAAA,QACLU,OAAOC,OAAOC,SAASJ,MAAM,CAAC,GAAG,EAAE;AAAA,QACnCK,SAASF,OAAOC,SAASJ,MAAM,CAAC,GAAG,EAAE;AAAA,QACrCM,SAASH,OAAOC,SAASJ,MAAM,CAAC,GAAG,EAAE;AAAA,MAAA;AAAA,IAEzC;AAAA,EACF;AAEO,SAAA;AACT;"}
1
+ {"version":3,"file":"utils.js","sources":["../../../../../../../src/components/QueryBuilder/Rule/Value/DateTimeValue/utils.tsx"],"sourcesContent":["import dayjs from \"dayjs\";\n\n/**\n * Pads the unit time values so that they always have two digits\n * @param {Number} value - unit time value\n * @returns The unit time value with two digits\n */\nexport const padTime = (value: number) => {\n if (!value || value < 0) {\n return \"00\";\n }\n if (value < 10 && value.toString().length === 1) {\n return `0${value.toString()}`;\n }\n\n return value.toString();\n};\n\nexport const parseDate = (date: string) => {\n if (date != null) {\n return dayjs(date).toDate();\n }\n\n return undefined;\n};\n\nexport const parseTime = (time: string) => {\n if (time != null) {\n const parts = time.split(\":\");\n\n if (parts.length === 3) {\n return {\n hours: Number.parseInt(parts[0], 10),\n minutes: Number.parseInt(parts[1], 10),\n seconds: Number.parseInt(parts[2], 10),\n };\n }\n }\n\n return null;\n};\n"],"names":["padTime","value","toString","length","parseDate","date","dayjs","toDate","undefined","parseTime","time","parts","split","hours","Number","parseInt","minutes","seconds"],"mappings":";AAOaA,MAAAA,UAAUA,CAACC,UAAkB;AACpC,MAAA,CAACA,SAASA,QAAQ,GAAG;AAChB,WAAA;AAAA,EACT;AACA,MAAIA,QAAQ,MAAMA,MAAMC,SAAS,EAAEC,WAAW,GAAG;AACvC,WAAA,IAAGF,MAAMC,SAAAA,CAAW;AAAA,EAC9B;AAEA,SAAOD,MAAMC;AACf;AAEaE,MAAAA,YAAYA,CAACC,SAAiB;AACzC,MAAIA,QAAQ,MAAM;AACTC,WAAAA,MAAMD,IAAI,EAAEE;EACrB;AAEOC,SAAAA;AACT;AAEaC,MAAAA,YAAYA,CAACC,SAAiB;AACzC,MAAIA,QAAQ,MAAM;AACVC,UAAAA,QAAQD,KAAKE,MAAM,GAAG;AAExBD,QAAAA,MAAMR,WAAW,GAAG;AACf,aAAA;AAAA,QACLU,OAAOC,OAAOC,SAASJ,MAAM,CAAC,GAAG,EAAE;AAAA,QACnCK,SAASF,OAAOC,SAASJ,MAAM,CAAC,GAAG,EAAE;AAAA,QACrCM,SAASH,OAAOC,SAASJ,MAAM,CAAC,GAAG,EAAE;AAAA,MAAA;AAAA,IAEzC;AAAA,EACF;AAEO,SAAA;AACT;"}
@@ -3,7 +3,7 @@ import { useContext, useCallback, useState, memo } from "react";
3
3
  import uniqueId from "lodash/uniqueId";
4
4
  import isEmpty from "lodash/isEmpty";
5
5
  import { useTheme, useMediaQuery } from "@mui/material";
6
- import { QueryBuilderContext } from "../../../Context.js";
6
+ import { HvQueryBuilderContext } from "../../../Context.js";
7
7
  import { useClasses } from "./Numeric.styles.js";
8
8
  import { HvInput } from "../../../../Input/Input.js";
9
9
  const NumericValue = ({
@@ -17,7 +17,7 @@ const NumericValue = ({
17
17
  cx
18
18
  } = useClasses();
19
19
  const isRange = operator === "range";
20
- const context = useContext(QueryBuilderContext);
20
+ const context = useContext(HvQueryBuilderContext);
21
21
  const {
22
22
  labels,
23
23
  dispatchAction,
@@ -25,7 +25,7 @@ const NumericValue = ({
25
25
  } = context;
26
26
  const theme = useTheme();
27
27
  const isMdDown = useMediaQuery(theme.breakpoints.down("md"));
28
- const onSingleValueChange = useCallback((evt, data) => {
28
+ const onSingleValueChange = useCallback((_, data) => {
29
29
  const numericData = isEmpty(data) ? null : Number(data);
30
30
  dispatchAction({
31
31
  type: "set-value",
@@ -33,7 +33,7 @@ const NumericValue = ({
33
33
  value: Number.isNaN(numericData) ? data : numericData
34
34
  });
35
35
  }, [dispatchAction, id]);
36
- const onRangeValueChange = useCallback((evt, data, from = true) => {
36
+ const onRangeValueChange = useCallback((_, data, from = true) => {
37
37
  const numericData = isEmpty(data) ? null : Number(data);
38
38
  const currentValue = value;
39
39
  const numericRange = {
@@ -112,7 +112,7 @@ const NumericValue = ({
112
112
  ] });
113
113
  return /* @__PURE__ */ jsxs("div", { className: classes.root, children: [
114
114
  isRange && renderRangeInputs(value || {}),
115
- !isRange && /* @__PURE__ */ jsx("div", { className: classes.inputContainer, children: /* @__PURE__ */ jsx(HvInput, { label: labels.rule.value.numeric.label, className: classes.input, id: `${elementId}-numeric`, name: `${elementId}-numeric`, value: value ? value.toString() : "", onChange: onSingleValueChange, onBlur: () => {
115
+ !isRange && /* @__PURE__ */ jsx("div", { className: classes.inputContainer, children: /* @__PURE__ */ jsx(HvInput, { label: labels.rule.value.numeric.label, className: classes.input, id: `${elementId}-numeric`, name: `${elementId}-numeric`, value: value?.toString() || "", onChange: onSingleValueChange, onBlur: () => {
116
116
  setTouchedNumeric(true);
117
117
  }, onKeyDown: (e) => {
118
118
  if (e.key === "Enter") {
@@ -1 +1 @@
1
- {"version":3,"file":"NumericValue.js","sources":["../../../../../../../src/components/QueryBuilder/Rule/Value/NumericValue/NumericValue.tsx"],"sourcesContent":["import { memo, useCallback, useContext, useState } from \"react\";\n\nimport uniqueId from \"lodash/uniqueId\";\nimport isEmpty from \"lodash/isEmpty\";\n\nimport { useMediaQuery, useTheme } from \"@mui/material\";\n\nimport { HvInput } from \"@core/components/Input\";\n\nimport { QueryBuilderContext } from \"../../../Context\";\nimport { useClasses } from \"./Numeric.styles\";\n\nexport interface NumericValueProps {\n id: number;\n value: any;\n operator: string;\n initialTouched?: boolean;\n}\n\nexport const NumericValue = ({\n id,\n value,\n operator,\n initialTouched = false,\n}: NumericValueProps) => {\n const { classes, cx } = useClasses();\n\n const isRange = operator === \"range\";\n const context = useContext(QueryBuilderContext);\n const { labels, dispatchAction, readOnly } = context;\n\n const theme = useTheme();\n\n const isMdDown = useMediaQuery(theme.breakpoints.down(\"md\"));\n\n const onSingleValueChange = useCallback(\n (evt, data) => {\n const numericData = isEmpty(data) ? null : Number(data);\n dispatchAction({\n type: \"set-value\",\n id,\n value: Number.isNaN(numericData) ? data : numericData,\n });\n },\n [dispatchAction, id]\n );\n\n const onRangeValueChange = useCallback(\n (evt, data, from = true) => {\n const numericData = isEmpty(data) ? null : Number(data);\n const currentValue = value;\n const numericRange = {\n from: currentValue?.from,\n to: currentValue?.to,\n };\n if (from) {\n numericRange.from = Number.isNaN(numericData) ? data : numericData;\n } else {\n numericRange.to = Number.isNaN(numericData) ? data : numericData;\n }\n dispatchAction({\n type: \"set-value\",\n id,\n value: numericRange,\n });\n },\n [dispatchAction, id, value]\n );\n\n const [touchedNumeric, setTouchedNumeric] = useState(initialTouched);\n const [touchedNumericTo, setTouchedNumericTo] = useState(initialTouched);\n\n const elementId = uniqueId(\"numeric\");\n\n let numericValidation: \"required\" | \"invalid\" | null = null;\n let rightValidation: \"required\" | \"invalid\" | \"greaterThan\" | \"equal\" | null =\n null;\n\n if (touchedNumeric || touchedNumericTo) {\n if (value === undefined || value?.toString() === \"\") {\n if (touchedNumeric) {\n numericValidation = \"required\";\n }\n if (touchedNumericTo) {\n rightValidation = \"required\";\n }\n } else if (!isRange) {\n if (Number.isNaN(Number(value))) {\n numericValidation = \"invalid\";\n }\n } else if (isRange) {\n const rangeValue = value;\n if (\n rangeValue?.from === undefined ||\n rangeValue?.from?.toString() === \"\"\n ) {\n numericValidation = \"required\";\n } else if (Number.isNaN(Number(rangeValue?.from))) {\n numericValidation = \"invalid\";\n }\n\n if (rangeValue?.to === undefined || rangeValue?.to?.toString() === \"\") {\n rightValidation = \"required\";\n } else if (Number.isNaN(Number(rangeValue?.to))) {\n rightValidation = \"invalid\";\n } else if (Number(rangeValue?.from) > Number(rangeValue?.to)) {\n rightValidation = \"greaterThan\";\n } else if (Number(rangeValue?.from) === Number(rangeValue?.to)) {\n rightValidation = \"equal\";\n }\n }\n }\n\n const numericStatus = numericValidation != null ? \"invalid\" : \"valid\";\n const rightStatus = rightValidation != null ? \"invalid\" : \"valid\";\n\n const renderRangeInputs = (rangeValue) => (\n <div\n className={cx(classes.rangeContainer, { [classes.isMdDown]: isMdDown })}\n >\n <div className={classes.inputContainer}>\n <HvInput\n label={labels.rule.value.numeric.range.leftLabel}\n className={classes.input}\n id={`${elementId}-numeric-from`}\n name={`${elementId}-numeric-from`}\n value={rangeValue?.from?.toString() || \"\"}\n onChange={(event, data) => onRangeValueChange(event, data)}\n onBlur={() => {\n setTouchedNumeric(true);\n }}\n onKeyDown={(e: any) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n }\n }}\n status={!touchedNumeric ? \"standBy\" : numericStatus}\n statusMessage={\n numericValidation\n ? labels.rule.value.numeric.validation[numericValidation]\n : \"\"\n }\n required\n inputProps={{\n autoComplete: \"off\",\n }}\n placeholder={labels.rule.value.numeric.placeholder}\n readOnly={readOnly}\n />\n </div>\n <div className={classes.inputContainer}>\n <HvInput\n label={labels.rule.value.numeric.range.rightLabel}\n className={classes.input}\n id={`${elementId}-numeric-to`}\n name={`${elementId}-numeric-to`}\n value={rangeValue?.to?.toString() || \"\"}\n onChange={(event, data) => onRangeValueChange(event, data, false)}\n onBlur={() => {\n setTouchedNumericTo(true);\n }}\n onKeyDown={(e: any) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n }\n }}\n status={!touchedNumericTo ? \"standBy\" : rightStatus}\n statusMessage={\n rightValidation\n ? labels.rule.value.numeric.validation[rightValidation]\n : \"\"\n }\n required\n inputProps={{\n autoComplete: \"off\",\n }}\n placeholder={labels.rule.value.numeric.placeholder}\n readOnly={readOnly}\n />\n </div>\n </div>\n );\n\n return (\n <div className={classes.root}>\n {isRange && renderRangeInputs(value || {})}\n {!isRange && (\n <div className={classes.inputContainer}>\n <HvInput\n label={labels.rule.value.numeric.label}\n className={classes.input}\n id={`${elementId}-numeric`}\n name={`${elementId}-numeric`}\n value={value ? value.toString() : \"\"}\n onChange={onSingleValueChange}\n onBlur={() => {\n setTouchedNumeric(true);\n }}\n onKeyDown={(e: any) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n }\n }}\n status={!touchedNumeric ? \"standBy\" : numericStatus}\n required\n inputProps={{\n autoComplete: \"off\",\n }}\n placeholder={labels.rule.value.numeric.placeholder}\n statusMessage={\n numericValidation\n ? labels.rule.value.numeric.validation[numericValidation]\n : \"\"\n }\n readOnly={readOnly}\n />\n </div>\n )}\n </div>\n );\n};\n\nexport default memo(NumericValue);\n"],"names":["NumericValue","id","value","operator","initialTouched","classes","cx","useClasses","isRange","context","useContext","QueryBuilderContext","labels","dispatchAction","readOnly","theme","useTheme","isMdDown","useMediaQuery","breakpoints","down","onSingleValueChange","useCallback","evt","data","numericData","isEmpty","Number","type","isNaN","onRangeValueChange","from","currentValue","numericRange","to","touchedNumeric","setTouchedNumeric","useState","touchedNumericTo","setTouchedNumericTo","elementId","uniqueId","numericValidation","rightValidation","undefined","toString","rangeValue","numericStatus","rightStatus","renderRangeInputs","rangeContainer","inputContainer","rule","numeric","range","leftLabel","input","event","e","key","preventDefault","validation","autoComplete","placeholder","rightLabel","root","label","memo"],"mappings":"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"}
1
+ {"version":3,"file":"NumericValue.js","sources":["../../../../../../../src/components/QueryBuilder/Rule/Value/NumericValue/NumericValue.tsx"],"sourcesContent":["import { memo, useCallback, useContext, useState } from \"react\";\nimport uniqueId from \"lodash/uniqueId\";\nimport isEmpty from \"lodash/isEmpty\";\nimport { useMediaQuery, useTheme } from \"@mui/material\";\n\nimport { HvInput } from \"@core/components/Input\";\n\nimport { HvQueryBuilderContext } from \"../../../Context\";\nimport { useClasses } from \"./Numeric.styles\";\nimport { HvQueryBuilderNumericRange } from \"../../../types\";\n\nexport interface NumericValueProps {\n id: React.Key;\n value?: any;\n operator?: string;\n initialTouched?: boolean;\n}\n\nexport const NumericValue = ({\n id,\n value,\n operator,\n initialTouched = false,\n}: NumericValueProps) => {\n const { classes, cx } = useClasses();\n\n const isRange = operator === \"range\";\n const context = useContext(HvQueryBuilderContext);\n const { labels, dispatchAction, readOnly } = context;\n\n const theme = useTheme();\n\n const isMdDown = useMediaQuery(theme.breakpoints.down(\"md\"));\n\n const onSingleValueChange = useCallback(\n (_, data: string) => {\n const numericData = isEmpty(data) ? null : Number(data);\n dispatchAction({\n type: \"set-value\",\n id,\n value: Number.isNaN(numericData) ? data : numericData,\n });\n },\n [dispatchAction, id]\n );\n\n const onRangeValueChange = useCallback(\n (_, data: string, from = true) => {\n const numericData = isEmpty(data) ? null : Number(data);\n const currentValue = value;\n const numericRange = {\n from: currentValue?.from,\n to: currentValue?.to,\n };\n if (from) {\n numericRange.from = Number.isNaN(numericData) ? data : numericData;\n } else {\n numericRange.to = Number.isNaN(numericData) ? data : numericData;\n }\n dispatchAction({\n type: \"set-value\",\n id,\n value: numericRange,\n });\n },\n [dispatchAction, id, value]\n );\n\n const [touchedNumeric, setTouchedNumeric] = useState(initialTouched);\n const [touchedNumericTo, setTouchedNumericTo] = useState(initialTouched);\n\n const elementId = uniqueId(\"numeric\");\n\n let numericValidation: \"required\" | \"invalid\" | null = null;\n let rightValidation: \"required\" | \"invalid\" | \"greaterThan\" | \"equal\" | null =\n null;\n\n if (touchedNumeric || touchedNumericTo) {\n if (value === undefined || value?.toString() === \"\") {\n if (touchedNumeric) {\n numericValidation = \"required\";\n }\n if (touchedNumericTo) {\n rightValidation = \"required\";\n }\n } else if (!isRange) {\n if (Number.isNaN(Number(value))) {\n numericValidation = \"invalid\";\n }\n } else if (isRange) {\n const rangeValue = value;\n if (\n rangeValue?.from === undefined ||\n rangeValue?.from?.toString() === \"\"\n ) {\n numericValidation = \"required\";\n } else if (Number.isNaN(Number(rangeValue?.from))) {\n numericValidation = \"invalid\";\n }\n\n if (rangeValue?.to === undefined || rangeValue?.to?.toString() === \"\") {\n rightValidation = \"required\";\n } else if (Number.isNaN(Number(rangeValue?.to))) {\n rightValidation = \"invalid\";\n } else if (Number(rangeValue?.from) > Number(rangeValue?.to)) {\n rightValidation = \"greaterThan\";\n } else if (Number(rangeValue?.from) === Number(rangeValue?.to)) {\n rightValidation = \"equal\";\n }\n }\n }\n\n const numericStatus = numericValidation != null ? \"invalid\" : \"valid\";\n const rightStatus = rightValidation != null ? \"invalid\" : \"valid\";\n\n const renderRangeInputs = (rangeValue: HvQueryBuilderNumericRange) => (\n <div\n className={cx(classes.rangeContainer, { [classes.isMdDown]: isMdDown })}\n >\n <div className={classes.inputContainer}>\n <HvInput\n label={labels.rule.value.numeric.range.leftLabel}\n className={classes.input}\n id={`${elementId}-numeric-from`}\n name={`${elementId}-numeric-from`}\n value={rangeValue?.from?.toString() || \"\"}\n onChange={(event, data) => onRangeValueChange(event, data)}\n onBlur={() => {\n setTouchedNumeric(true);\n }}\n onKeyDown={(e: any) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n }\n }}\n status={!touchedNumeric ? \"standBy\" : numericStatus}\n statusMessage={\n numericValidation\n ? labels.rule.value.numeric.validation[numericValidation]\n : \"\"\n }\n required\n inputProps={{\n autoComplete: \"off\",\n }}\n placeholder={labels.rule.value.numeric.placeholder}\n readOnly={readOnly}\n />\n </div>\n <div className={classes.inputContainer}>\n <HvInput\n label={labels.rule.value.numeric.range.rightLabel}\n className={classes.input}\n id={`${elementId}-numeric-to`}\n name={`${elementId}-numeric-to`}\n value={rangeValue?.to?.toString() || \"\"}\n onChange={(event, data) => onRangeValueChange(event, data, false)}\n onBlur={() => {\n setTouchedNumericTo(true);\n }}\n onKeyDown={(e: any) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n }\n }}\n status={!touchedNumericTo ? \"standBy\" : rightStatus}\n statusMessage={\n rightValidation\n ? labels.rule.value.numeric.validation[rightValidation]\n : \"\"\n }\n required\n inputProps={{\n autoComplete: \"off\",\n }}\n placeholder={labels.rule.value.numeric.placeholder}\n readOnly={readOnly}\n />\n </div>\n </div>\n );\n\n return (\n <div className={classes.root}>\n {isRange && renderRangeInputs(value || {})}\n {!isRange && (\n <div className={classes.inputContainer}>\n <HvInput\n label={labels.rule.value.numeric.label}\n className={classes.input}\n id={`${elementId}-numeric`}\n name={`${elementId}-numeric`}\n value={value?.toString() || \"\"}\n onChange={onSingleValueChange}\n onBlur={() => {\n setTouchedNumeric(true);\n }}\n onKeyDown={(e: any) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n }\n }}\n status={!touchedNumeric ? \"standBy\" : numericStatus}\n required\n inputProps={{\n autoComplete: \"off\",\n }}\n placeholder={labels.rule.value.numeric.placeholder}\n statusMessage={\n numericValidation\n ? labels.rule.value.numeric.validation[numericValidation]\n : \"\"\n }\n readOnly={readOnly}\n />\n </div>\n )}\n </div>\n );\n};\n\nexport default memo(NumericValue);\n"],"names":["NumericValue","id","value","operator","initialTouched","classes","cx","useClasses","isRange","context","useContext","HvQueryBuilderContext","labels","dispatchAction","readOnly","theme","useTheme","isMdDown","useMediaQuery","breakpoints","down","onSingleValueChange","useCallback","_","data","numericData","isEmpty","Number","type","isNaN","onRangeValueChange","from","currentValue","numericRange","to","touchedNumeric","setTouchedNumeric","useState","touchedNumericTo","setTouchedNumericTo","elementId","uniqueId","numericValidation","rightValidation","undefined","toString","rangeValue","numericStatus","rightStatus","renderRangeInputs","rangeContainer","inputContainer","rule","numeric","range","leftLabel","input","event","e","key","preventDefault","validation","autoComplete","placeholder","rightLabel","root","label","memo"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { jsx } from "@emotion/react/jsx-runtime";
2
2
  import { useContext, useState, memo } from "react";
3
- import { QueryBuilderContext } from "../../../Context.js";
3
+ import { HvQueryBuilderContext } from "../../../Context.js";
4
4
  import { useClasses } from "./TextValue.styles.js";
5
5
  import { HvInput } from "../../../../Input/Input.js";
6
6
  const TextValue = ({
@@ -11,7 +11,7 @@ const TextValue = ({
11
11
  const {
12
12
  classes
13
13
  } = useClasses();
14
- const context = useContext(QueryBuilderContext);
14
+ const context = useContext(HvQueryBuilderContext);
15
15
  const {
16
16
  labels,
17
17
  dispatchAction,
@@ -1 +1 @@
1
- {"version":3,"file":"TextValue.js","sources":["../../../../../../../src/components/QueryBuilder/Rule/Value/TextValue/TextValue.tsx"],"sourcesContent":["import { memo, useContext, useState } from \"react\";\n\nimport { HvFormStatus } from \"@core/components/Forms\";\nimport { HvInput } from \"@core/components/Input\";\n\nimport { QueryBuilderContext } from \"../../../Context\";\nimport { useClasses } from \"./TextValue.styles\";\n\nexport interface TextValueProps {\n id?: number;\n value?: any;\n initialTouched?: boolean;\n}\n\nexport const TextValue = ({\n id,\n value = \"\",\n initialTouched = false,\n}: TextValueProps) => {\n const { classes } = useClasses();\n\n const context = useContext(QueryBuilderContext);\n const { labels, dispatchAction, readOnly } = context;\n const [touched, setTouched] = useState(initialTouched);\n const isValid = value != null && value.toString().trim() !== \"\";\n\n let status: HvFormStatus = isValid ? \"valid\" : \"invalid\";\n status = !touched ? \"standBy\" : status;\n\n return (\n <HvInput\n className={classes.location}\n label={labels.rule.value.text.label}\n required\n status={status}\n statusMessage={labels.rule.value.text.validation.required}\n value={value}\n inputProps={{\n autoComplete: \"off\",\n }}\n onChange={(t, v) => {\n dispatchAction({\n type: \"set-value\",\n id,\n value: v,\n });\n }}\n onBlur={() => {\n setTouched(true);\n }}\n onKeyDown={(e: any) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n }\n }}\n placeholder=\"—\"\n readOnly={readOnly}\n />\n );\n};\n\nexport default memo(TextValue);\n"],"names":["TextValue","id","value","initialTouched","classes","useClasses","context","useContext","QueryBuilderContext","labels","dispatchAction","readOnly","touched","setTouched","useState","isValid","toString","trim","status","location","rule","text","label","validation","required","autoComplete","t","v","type","e","key","preventDefault","memo"],"mappings":";;;;;AAcO,MAAMA,YAAYA,CAAC;AAAA,EACxBC;AAAAA,EACAC,QAAQ;AAAA,EACRC,iBAAiB;AACH,MAAM;AACd,QAAA;AAAA,IAAEC;AAAAA,MAAYC,WAAW;AAEzBC,QAAAA,UAAUC,WAAWC,mBAAmB;AACxC,QAAA;AAAA,IAAEC;AAAAA,IAAQC;AAAAA,IAAgBC;AAAAA,EAAaL,IAAAA;AAC7C,QAAM,CAACM,SAASC,UAAU,IAAIC,SAASX,cAAc;AACrD,QAAMY,UAAUb,SAAS,QAAQA,MAAMc,WAAWC,KAAW,MAAA;AAEzDC,MAAAA,SAAuBH,UAAU,UAAU;AACtC,WAAA,CAACH,UAAU,YAAYM;AAG9B,SAAA,oBAAC,WACC,WAAWd,QAAQe,UACnB,OAAOV,OAAOW,KAAKlB,MAAMmB,KAAKC,OAC9B,UAAQ,MACR,QACA,eAAeb,OAAOW,KAAKlB,MAAMmB,KAAKE,WAAWC,UACjD,OACA,YAAY;AAAA,IACVC,cAAc;AAAA,EAAA,GAEhB,UAAU,CAACC,GAAGC,MAAM;AACH,mBAAA;AAAA,MACbC,MAAM;AAAA,MACN3B;AAAAA,MACAC,OAAOyB;AAAAA,IAAAA,CACR;AAAA,EACH,GACA,QAAQ,MAAM;AACZd,eAAW,IAAI;AAAA,EAAA,GAEjB,WAAW,CAACgB,MAAW;AACjBA,QAAAA,EAAEC,QAAQ,SAAS;AACrBD,QAAEE,eAAe;AAAA,IACnB;AAAA,EACF,GACA,aAAY,KACZ,SACA,CAAA;AAEN;AAEeC,KAAKhC,SAAS;"}
1
+ {"version":3,"file":"TextValue.js","sources":["../../../../../../../src/components/QueryBuilder/Rule/Value/TextValue/TextValue.tsx"],"sourcesContent":["import { memo, useContext, useState } from \"react\";\n\nimport { HvFormStatus } from \"@core/components/Forms\";\nimport { HvInput } from \"@core/components/Input\";\n\nimport { HvQueryBuilderContext } from \"../../../Context\";\nimport { useClasses } from \"./TextValue.styles\";\n\nexport interface TextValueProps {\n id: React.Key;\n value?: any;\n initialTouched?: boolean;\n}\n\nexport const TextValue = ({\n id,\n value = \"\",\n initialTouched = false,\n}: TextValueProps) => {\n const { classes } = useClasses();\n\n const context = useContext(HvQueryBuilderContext);\n const { labels, dispatchAction, readOnly } = context;\n const [touched, setTouched] = useState(initialTouched);\n const isValid = value != null && value.toString().trim() !== \"\";\n\n let status: HvFormStatus = isValid ? \"valid\" : \"invalid\";\n status = !touched ? \"standBy\" : status;\n\n return (\n <HvInput\n className={classes.location}\n label={labels.rule.value.text.label}\n required\n status={status}\n statusMessage={labels.rule.value.text.validation.required}\n value={value}\n inputProps={{\n autoComplete: \"off\",\n }}\n onChange={(t, v) => {\n dispatchAction({\n type: \"set-value\",\n id,\n value: v,\n });\n }}\n onBlur={() => {\n setTouched(true);\n }}\n onKeyDown={(e: any) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n }\n }}\n placeholder=\"—\"\n readOnly={readOnly}\n />\n );\n};\n\nexport default memo(TextValue);\n"],"names":["TextValue","id","value","initialTouched","classes","useClasses","context","useContext","HvQueryBuilderContext","labels","dispatchAction","readOnly","touched","setTouched","useState","isValid","toString","trim","status","location","rule","text","label","validation","required","autoComplete","t","v","type","e","key","preventDefault","memo"],"mappings":";;;;;AAcO,MAAMA,YAAYA,CAAC;AAAA,EACxBC;AAAAA,EACAC,QAAQ;AAAA,EACRC,iBAAiB;AACH,MAAM;AACd,QAAA;AAAA,IAAEC;AAAAA,MAAYC,WAAW;AAEzBC,QAAAA,UAAUC,WAAWC,qBAAqB;AAC1C,QAAA;AAAA,IAAEC;AAAAA,IAAQC;AAAAA,IAAgBC;AAAAA,EAAaL,IAAAA;AAC7C,QAAM,CAACM,SAASC,UAAU,IAAIC,SAASX,cAAc;AACrD,QAAMY,UAAUb,SAAS,QAAQA,MAAMc,WAAWC,KAAW,MAAA;AAEzDC,MAAAA,SAAuBH,UAAU,UAAU;AACtC,WAAA,CAACH,UAAU,YAAYM;AAG9B,SAAA,oBAAC,WACC,WAAWd,QAAQe,UACnB,OAAOV,OAAOW,KAAKlB,MAAMmB,KAAKC,OAC9B,UAAQ,MACR,QACA,eAAeb,OAAOW,KAAKlB,MAAMmB,KAAKE,WAAWC,UACjD,OACA,YAAY;AAAA,IACVC,cAAc;AAAA,EAAA,GAEhB,UAAU,CAACC,GAAGC,MAAM;AACH,mBAAA;AAAA,MACbC,MAAM;AAAA,MACN3B;AAAAA,MACAC,OAAOyB;AAAAA,IAAAA,CACR;AAAA,EACH,GACA,QAAQ,MAAM;AACZd,eAAW,IAAI;AAAA,EAAA,GAEjB,WAAW,CAACgB,MAAW;AACjBA,QAAAA,EAAEC,QAAQ,SAAS;AACrBD,QAAEE,eAAe;AAAA,IACnB;AAAA,EACF,GACA,aAAY,KACZ,SACA,CAAA;AAEN;AAEeC,KAAKhC,SAAS;"}
@@ -1,6 +1,6 @@
1
1
  import { jsx } from "@emotion/react/jsx-runtime";
2
2
  import { useContext, memo } from "react";
3
- import { QueryBuilderContext } from "../../Context.js";
3
+ import { HvQueryBuilderContext } from "../../Context.js";
4
4
  import { TextValue } from "./TextValue/TextValue.js";
5
5
  import { DateTimeValue } from "./DateTimeValue/DateTimeValue.js";
6
6
  import { NumericValue } from "./NumericValue/NumericValue.js";
@@ -11,7 +11,7 @@ const Value = ({
11
11
  operator,
12
12
  value: valueProp
13
13
  }) => {
14
- const context = useContext(QueryBuilderContext);
14
+ const context = useContext(HvQueryBuilderContext);
15
15
  const {
16
16
  attributes,
17
17
  initialTouched
@@ -1 +1 @@
1
- {"version":3,"file":"Value.js","sources":["../../../../../../src/components/QueryBuilder/Rule/Value/Value.tsx"],"sourcesContent":["import { memo, useContext } from \"react\";\n\nimport { QueryBuilderContext } from \"../../Context\";\nimport { BooleanValue } from \"./BooleanValue\";\nimport { NumericValue } from \"./NumericValue\";\nimport { TextValue } from \"./TextValue\";\nimport { DateTimeValue } from \"./DateTimeValue\";\n\nexport interface ValueProps {\n id: number;\n attribute: string;\n operator: string;\n value: any;\n}\n\nexport const Value = ({\n id,\n attribute,\n operator,\n value: valueProp,\n}: ValueProps) => {\n const context = useContext(QueryBuilderContext);\n const { attributes, initialTouched } = context;\n const value =\n attribute && attributes ? { ...attributes[attribute] } : { type: null };\n const { type } = value;\n\n switch (type) {\n case \"boolean\": {\n return <BooleanValue id={id} value={!!valueProp} />;\n }\n case \"numeric\": {\n return (\n <NumericValue\n id={id}\n operator={operator}\n value={valueProp}\n initialTouched={initialTouched}\n />\n );\n }\n case \"dateandtime\": {\n return (\n <DateTimeValue\n id={id}\n operator={operator}\n value={valueProp}\n initialTouched={initialTouched}\n />\n );\n }\n case \"text\":\n case \"textarea\":\n default: {\n return (\n <TextValue id={id} value={valueProp} initialTouched={initialTouched} />\n );\n }\n }\n};\n\nexport default memo(Value);\n"],"names":["Value","id","attribute","operator","value","valueProp","context","useContext","QueryBuilderContext","attributes","initialTouched","type","memo"],"mappings":";;;;;;;AAeO,MAAMA,QAAQA,CAAC;AAAA,EACpBC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,OAAOC;AACG,MAAM;AACVC,QAAAA,UAAUC,WAAWC,mBAAmB;AACxC,QAAA;AAAA,IAAEC;AAAAA,IAAYC;AAAAA,EAAmBJ,IAAAA;AACjCF,QAAAA,QACJF,aAAaO,aAAa;AAAA,IAAE,GAAGA,WAAWP,SAAS;AAAA,EAAA,IAAM;AAAA,IAAES,MAAM;AAAA,EAAA;AAC7D,QAAA;AAAA,IAAEA;AAAAA,EAASP,IAAAA;AAEjB,UAAQO,MAAI;AAAA,IACV,KAAK,WAAW;AACd,iCAAQ,cAAa,EAAA,IAAQ,OAAO,CAAC,CAACN,UAAa,CAAA;AAAA,IACrD;AAAA,IACA,KAAK,WAAW;AACd,iCACG,cACC,EAAA,IACA,UACA,OAAOA,WACP,eACA,CAAA;AAAA,IAEN;AAAA,IACA,KAAK,eAAe;AAClB,iCACG,eACC,EAAA,IACA,UACA,OAAOA,WACP,eACA,CAAA;AAAA,IAEN;AAAA,IACA,KAAK;AAAA,IACL,KAAK;AAAA,IACL,SAAS;AACP,aACG,oBAAA,WAAA,EAAU,IAAQ,OAAOA,WAAW,eAAkC,CAAA;AAAA,IAE3E;AAAA,EACF;AACF;AAEeO,KAAKZ,KAAK;"}
1
+ {"version":3,"file":"Value.js","sources":["../../../../../../src/components/QueryBuilder/Rule/Value/Value.tsx"],"sourcesContent":["import { memo, useContext } from \"react\";\n\nimport { HvQueryBuilderContext } from \"../../Context\";\nimport { BooleanValue } from \"./BooleanValue\";\nimport { NumericValue } from \"./NumericValue\";\nimport { TextValue } from \"./TextValue\";\nimport { DateTimeValue } from \"./DateTimeValue\";\n\nexport interface ValueProps {\n id: React.Key;\n attribute: string;\n operator?: string;\n value?: any;\n}\n\nexport const Value = ({\n id,\n attribute,\n operator,\n value: valueProp,\n}: ValueProps) => {\n const context = useContext(HvQueryBuilderContext);\n const { attributes, initialTouched } = context;\n const value =\n attribute && attributes ? { ...attributes[attribute] } : { type: null };\n const { type } = value;\n\n switch (type) {\n case \"boolean\": {\n return <BooleanValue id={id} value={!!valueProp} />;\n }\n case \"numeric\": {\n return (\n <NumericValue\n id={id}\n operator={operator}\n value={valueProp}\n initialTouched={initialTouched}\n />\n );\n }\n case \"dateandtime\": {\n return (\n <DateTimeValue\n id={id}\n operator={operator}\n value={valueProp}\n initialTouched={initialTouched}\n />\n );\n }\n case \"text\":\n case \"textarea\":\n default: {\n return (\n <TextValue id={id} value={valueProp} initialTouched={initialTouched} />\n );\n }\n }\n};\n\nexport default memo(Value);\n"],"names":["Value","id","attribute","operator","value","valueProp","context","useContext","HvQueryBuilderContext","attributes","initialTouched","type","memo"],"mappings":";;;;;;;AAeO,MAAMA,QAAQA,CAAC;AAAA,EACpBC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,OAAOC;AACG,MAAM;AACVC,QAAAA,UAAUC,WAAWC,qBAAqB;AAC1C,QAAA;AAAA,IAAEC;AAAAA,IAAYC;AAAAA,EAAmBJ,IAAAA;AACjCF,QAAAA,QACJF,aAAaO,aAAa;AAAA,IAAE,GAAGA,WAAWP,SAAS;AAAA,EAAA,IAAM;AAAA,IAAES,MAAM;AAAA,EAAA;AAC7D,QAAA;AAAA,IAAEA;AAAAA,EAASP,IAAAA;AAEjB,UAAQO,MAAI;AAAA,IACV,KAAK,WAAW;AACd,iCAAQ,cAAa,EAAA,IAAQ,OAAO,CAAC,CAACN,UAAa,CAAA;AAAA,IACrD;AAAA,IACA,KAAK,WAAW;AACd,iCACG,cACC,EAAA,IACA,UACA,OAAOA,WACP,eACA,CAAA;AAAA,IAEN;AAAA,IACA,KAAK,eAAe;AAClB,iCACG,eACC,EAAA,IACA,UACA,OAAOA,WACP,eACA,CAAA;AAAA,IAEN;AAAA,IACA,KAAK;AAAA,IACL,KAAK;AAAA,IACL,SAAS;AACP,aACG,oBAAA,WAAA,EAAU,IAAQ,OAAOA,WAAW,eAAkC,CAAA;AAAA,IAE3E;AAAA,EACF;AACF;AAEeO,KAAKZ,KAAK;"}
@@ -2,7 +2,7 @@ import { jsxs, Fragment, jsx } from "@emotion/react/jsx-runtime";
2
2
  import { useContext, useCallback } from "react";
3
3
  import { Add, Delete, Info } from "@hitachivantara/uikit-react-icons";
4
4
  import { withTooltip } from "../../../hocs/withTooltip.js";
5
- import { QueryBuilderContext } from "../Context.js";
5
+ import { HvQueryBuilderContext } from "../Context.js";
6
6
  import { useClasses } from "../QueryBuilder.styles.js";
7
7
  import { HvButton } from "../../Button/Button.js";
8
8
  import { Rule } from "../Rule/Rule.js";
@@ -21,7 +21,7 @@ const RuleGroup = ({
21
21
  classes,
22
22
  cx
23
23
  } = useClasses(classesProp);
24
- const context = useContext(QueryBuilderContext);
24
+ const context = useContext(HvQueryBuilderContext);
25
25
  const {
26
26
  dispatchAction,
27
27
  askAction,
@@ -76,7 +76,7 @@ const RuleGroup = ({
76
76
  [classes.topRulesContainer]: level === 0
77
77
  }), children: rules.map((rule, index) => {
78
78
  if ("combinator" in rule) {
79
- return /* @__PURE__ */ jsx(RuleGroup, { level: level + 1, ...rule, id: rule.id, classes }, rule.id ?? index);
79
+ return /* @__PURE__ */ jsx(RuleGroup, { level: level + 1, ...rule, id: rule.id, classes }, rule.id);
80
80
  }
81
81
  const isInvalid = combinator === "and" && rules.some((r, i) => {
82
82
  if ("attribute" in r) {
@@ -86,29 +86,23 @@ const RuleGroup = ({
86
86
  }
87
87
  return false;
88
88
  });
89
- return /* @__PURE__ */ jsx(Rule, { ...rule, isInvalid, id: rule.id, combinator }, rule.id ?? index);
89
+ return /* @__PURE__ */ jsx(Rule, { ...rule, isInvalid, id: rule.id, combinator }, rule.id);
90
90
  }) }),
91
91
  rules?.length === 0 && /* @__PURE__ */ jsx(HvEmptyState, { title: labels.empty?.title, message: /* @__PURE__ */ jsxs(Fragment, { children: [
92
- /* @__PURE__ */ jsx(HvTypography, { variant: "link", component: "a", onClick: () => {
92
+ /* @__PURE__ */ jsx(HvTypography, { link: true, component: "button", onClick: () => {
93
93
  dispatchAction({
94
94
  type: "add-rule",
95
95
  id
96
96
  });
97
- }, style: {
98
- cursor: "pointer",
99
- textDecoration: "underline"
100
- }, children: `${labels.empty?.createCondition}` }),
97
+ }, className: classes.createConditionButton, children: `${labels.empty?.createCondition}` }),
101
98
  level <= normalizedMaxDepth && /* @__PURE__ */ jsxs(Fragment, { children: [
102
99
  `${labels.empty?.spacer}`,
103
- /* @__PURE__ */ jsx(HvTypography, { variant: "link", component: "a", onClick: () => {
100
+ /* @__PURE__ */ jsx(HvTypography, { link: true, component: "button", onClick: () => {
104
101
  dispatchAction({
105
102
  type: "add-group",
106
103
  id
107
104
  });
108
- }, style: {
109
- cursor: "pointer",
110
- textDecoration: "underline"
111
- }, children: `${labels.empty?.createGroup}` })
105
+ }, className: classes.createGroupButton, children: `${labels.empty?.createGroup}` })
112
106
  ] })
113
107
  ] }), icon: /* @__PURE__ */ jsx(Info, {}) }),
114
108
  /* @__PURE__ */ jsx(HvGrid, { container: true, children: /* @__PURE__ */ jsx(HvGrid, { item: true, className: cx(classes.actionButtonContainer, classes.topActionButtonContainer), children: actionButtons }) })