@hitachivantara/uikit-react-core 5.36.10 → 5.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/dist/cjs/components/CheckBoxGroup/CheckBoxGroup.cjs +3 -1
  2. package/dist/cjs/components/CheckBoxGroup/CheckBoxGroup.cjs.map +1 -1
  3. package/dist/cjs/components/Dropdown/Dropdown.cjs +4 -1
  4. package/dist/cjs/components/Dropdown/Dropdown.cjs.map +1 -1
  5. package/dist/cjs/components/QueryBuilder/ConfirmationDialog/ConfirmationDialog.cjs.map +1 -1
  6. package/dist/cjs/components/QueryBuilder/Context.cjs +15 -2
  7. package/dist/cjs/components/QueryBuilder/Context.cjs.map +1 -1
  8. package/dist/cjs/components/QueryBuilder/QueryBuilder.cjs +35 -25
  9. package/dist/cjs/components/QueryBuilder/QueryBuilder.cjs.map +1 -1
  10. package/dist/cjs/components/QueryBuilder/QueryBuilder.styles.cjs +10 -0
  11. package/dist/cjs/components/QueryBuilder/QueryBuilder.styles.cjs.map +1 -1
  12. package/dist/cjs/components/QueryBuilder/Rule/Attribute/Attribute.cjs +2 -3
  13. package/dist/cjs/components/QueryBuilder/Rule/Attribute/Attribute.cjs.map +1 -1
  14. package/dist/cjs/components/QueryBuilder/Rule/Operator/Operator.cjs +2 -3
  15. package/dist/cjs/components/QueryBuilder/Rule/Operator/Operator.cjs.map +1 -1
  16. package/dist/cjs/components/QueryBuilder/Rule/Rule.cjs +16 -14
  17. package/dist/cjs/components/QueryBuilder/Rule/Rule.cjs.map +1 -1
  18. package/dist/cjs/components/QueryBuilder/Rule/Value/BooleanValue/BooleanValue.cjs +1 -2
  19. package/dist/cjs/components/QueryBuilder/Rule/Value/BooleanValue/BooleanValue.cjs.map +1 -1
  20. package/dist/cjs/components/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.cjs +1 -2
  21. package/dist/cjs/components/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.cjs.map +1 -1
  22. package/dist/cjs/components/QueryBuilder/Rule/Value/DateTimeValue/utils.cjs.map +1 -1
  23. package/dist/cjs/components/QueryBuilder/Rule/Value/NumericValue/NumericValue.cjs +4 -5
  24. package/dist/cjs/components/QueryBuilder/Rule/Value/NumericValue/NumericValue.cjs.map +1 -1
  25. package/dist/cjs/components/QueryBuilder/Rule/Value/TextValue/TextValue.cjs +1 -2
  26. package/dist/cjs/components/QueryBuilder/Rule/Value/TextValue/TextValue.cjs.map +1 -1
  27. package/dist/cjs/components/QueryBuilder/Rule/Value/Value.cjs +8 -3
  28. package/dist/cjs/components/QueryBuilder/Rule/Value/Value.cjs.map +1 -1
  29. package/dist/cjs/components/QueryBuilder/RuleGroup/RuleGroup.cjs +19 -24
  30. package/dist/cjs/components/QueryBuilder/RuleGroup/RuleGroup.cjs.map +1 -1
  31. package/dist/cjs/components/QueryBuilder/utils/index.cjs.map +1 -1
  32. package/dist/cjs/components/QueryBuilder/utils/reducer.cjs +1 -1
  33. package/dist/cjs/components/QueryBuilder/utils/reducer.cjs.map +1 -1
  34. package/dist/cjs/index.cjs +1 -0
  35. package/dist/cjs/index.cjs.map +1 -1
  36. package/dist/cjs/providers/Provider.cjs +11 -3
  37. package/dist/cjs/providers/Provider.cjs.map +1 -1
  38. package/dist/esm/components/CheckBoxGroup/CheckBoxGroup.js +3 -1
  39. package/dist/esm/components/CheckBoxGroup/CheckBoxGroup.js.map +1 -1
  40. package/dist/esm/components/Dropdown/Dropdown.js +5 -2
  41. package/dist/esm/components/Dropdown/Dropdown.js.map +1 -1
  42. package/dist/esm/components/QueryBuilder/ConfirmationDialog/ConfirmationDialog.js.map +1 -1
  43. package/dist/esm/components/QueryBuilder/Context.js +17 -4
  44. package/dist/esm/components/QueryBuilder/Context.js.map +1 -1
  45. package/dist/esm/components/QueryBuilder/QueryBuilder.js +37 -27
  46. package/dist/esm/components/QueryBuilder/QueryBuilder.js.map +1 -1
  47. package/dist/esm/components/QueryBuilder/QueryBuilder.styles.js +10 -0
  48. package/dist/esm/components/QueryBuilder/QueryBuilder.styles.js.map +1 -1
  49. package/dist/esm/components/QueryBuilder/Rule/Attribute/Attribute.js +3 -4
  50. package/dist/esm/components/QueryBuilder/Rule/Attribute/Attribute.js.map +1 -1
  51. package/dist/esm/components/QueryBuilder/Rule/Operator/Operator.js +4 -5
  52. package/dist/esm/components/QueryBuilder/Rule/Operator/Operator.js.map +1 -1
  53. package/dist/esm/components/QueryBuilder/Rule/Rule.js +18 -16
  54. package/dist/esm/components/QueryBuilder/Rule/Rule.js.map +1 -1
  55. package/dist/esm/components/QueryBuilder/Rule/Value/BooleanValue/BooleanValue.js +3 -4
  56. package/dist/esm/components/QueryBuilder/Rule/Value/BooleanValue/BooleanValue.js.map +1 -1
  57. package/dist/esm/components/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.js +3 -4
  58. package/dist/esm/components/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.js.map +1 -1
  59. package/dist/esm/components/QueryBuilder/Rule/Value/DateTimeValue/utils.js.map +1 -1
  60. package/dist/esm/components/QueryBuilder/Rule/Value/NumericValue/NumericValue.js +6 -7
  61. package/dist/esm/components/QueryBuilder/Rule/Value/NumericValue/NumericValue.js.map +1 -1
  62. package/dist/esm/components/QueryBuilder/Rule/Value/TextValue/TextValue.js +3 -4
  63. package/dist/esm/components/QueryBuilder/Rule/Value/TextValue/TextValue.js.map +1 -1
  64. package/dist/esm/components/QueryBuilder/Rule/Value/Value.js +10 -5
  65. package/dist/esm/components/QueryBuilder/Rule/Value/Value.js.map +1 -1
  66. package/dist/esm/components/QueryBuilder/RuleGroup/RuleGroup.js +21 -26
  67. package/dist/esm/components/QueryBuilder/RuleGroup/RuleGroup.js.map +1 -1
  68. package/dist/esm/components/QueryBuilder/utils/index.js.map +1 -1
  69. package/dist/esm/components/QueryBuilder/utils/reducer.js +1 -1
  70. package/dist/esm/components/QueryBuilder/utils/reducer.js.map +1 -1
  71. package/dist/esm/index.js +2 -1
  72. package/dist/esm/providers/Provider.js +11 -3
  73. package/dist/esm/providers/Provider.js.map +1 -1
  74. package/dist/types/index.d.ts +93 -37
  75. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"file":"QueryBuilder.styles.cjs","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":"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"}
1
+ {"version":3,"file":"QueryBuilder.styles.cjs","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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"}
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("@emotion/react/jsx-runtime");
4
4
  const React = require("react");
5
- const Context = require("../../Context.cjs");
6
5
  const index = require("../../utils/index.cjs");
6
+ const Context = require("../../Context.cjs");
7
7
  const Dropdown = require("../../../Dropdown/Dropdown.cjs");
8
8
  const Attribute = ({
9
9
  id,
@@ -11,14 +11,13 @@ const Attribute = ({
11
11
  disabled,
12
12
  isInvalid
13
13
  }) => {
14
- const context = React.useContext(Context.QueryBuilderContext);
15
14
  const {
16
15
  dispatchAction,
17
16
  attributes,
18
17
  operators,
19
18
  labels,
20
19
  readOnly
21
- } = context;
20
+ } = Context.useQueryBuilderContext();
22
21
  const values = React.useMemo(() => {
23
22
  if (!attributes)
24
23
  return [];
@@ -1 +1 @@
1
- {"version":3,"file":"Attribute.cjs","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","jsx","HvDropdown","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,iBAAWC,QAAAA,mBAAmB;AACxC,QAAA;AAAA,IAAEC;AAAAA,IAAgBC;AAAAA,IAAYC;AAAAA,IAAWC;AAAAA,IAAQC;AAAAA,EAAaP,IAAAA;AAE9DQ,QAAAA,SAASC,MAAAA,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,SAAAC,2BAAA,IAACC,SACC,YAAA,EAAA,uBAAuB,OACvB,OAAOb,OAAOc,KAAKvB,UAAUiB,OAC7B,aAAaR,OAAOc,KAAKvB,UAAUwB,aACnC,QACA,UACA,UACA,QAAQtB,YAAY,YAAY,SAChC,eAAeO,OAAOc,KAAKvB,UAAUyB,QACrC,UAAWP,CAAa,aAAA;AACtB,QAAIA,YAAY,CAACQ,MAAMC,QAAQT,QAAQ,GAAG;AACxC,YAAMU,cAAcV,SAASnB;AAE7B,YAAMqB,OACJb,cAAcqB,eAAerB,WAAWqB,WAAW,GAAGR;AACxD,YAAMS,gBAAgBT,OAAOZ,UAAUY,IAAI,IAAIU;AAE3CC,UAAAA;AACJ,UAAIZ,gBAAgBC,MAAM;AACbU,mBAAAA;AAAAA,MAAAA,WACFD,eAAeG,WAAW,GAAG;AAC3BH,mBAAAA,cAAc,CAAC,EAAEE;AAAAA,MAAAA,OACvB;AACM,mBAAA;AAAA,MACb;AAGME,YAAAA,QAAQb,SAAS,YAAY,OAAOU;AAE3B,qBAAA;AAAA,QACbV,MAAM;AAAA,QACNrB;AAAAA,QACAC,WAAW4B,aAAaM,SAAS;AAAA,QACjCH;AAAAA,QACAE;AAAAA,MAAAA,CACD;AAAA,IAAA,OACI;AACU,qBAAA;AAAA,QAAEb,MAAM;AAAA,QAAiBrB;AAAAA,QAAIC,WAAW;AAAA,MAAA,CAAM;AAAA,IAC/D;AAAA,EAAA,GAEF,YAAYmC,MAAAA,UAAUxB,MAAM,GACvBwB,GAAAA,MAAAA,UAAUxB,MAAM,KAAK;AAAA,IAAEyB,aAAa;AAAA,IAAMC,QAAQ;AAAA,EACvD,EAAA,CAAA;AAEN;AAEeC,WAAKxC,SAAS;;"}
1
+ {"version":3,"file":"Attribute.cjs","sources":["../../../../../../src/components/QueryBuilder/Rule/Attribute/Attribute.tsx"],"sourcesContent":["import { useMemo, memo } from \"react\";\n\nimport { HvDropdown } from \"@core/components/Dropdown\";\n\nimport { isBigList } from \"../../utils\";\nimport { useQueryBuilderContext } from \"../../Context\";\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 { dispatchAction, attributes, operators, labels, readOnly } =\n useQueryBuilderContext();\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","dispatchAction","attributes","operators","labels","readOnly","useQueryBuilderContext","values","useMemo","Object","keys","map","key","label","selected","currentType","type","jsx","HvDropdown","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;AACd,QAAA;AAAA,IAAEC;AAAAA,IAAgBC;AAAAA,IAAYC;AAAAA,IAAWC;AAAAA,IAAQC;AAAAA,MACrDC,QAAuB,uBAAA;AAEnBC,QAAAA,SAASC,MAAAA,QAAQ,MAAM;AAC3B,QAAI,CAACN;AAAY,aAAO;AAExB,WAAOO,OAAOC,KAAKR,UAAU,EAAES,IAAKC,CAAS,SAAA;AAAA,MAC3Cf,IAAIe;AAAAA,MACJC,OAAOX,WAAWU,GAAG,EAAEC;AAAAA,MACvBC,UAAUF,QAAQd;AAAAA,IAClB,EAAA;AAAA,EAAA,GACD,CAACI,YAAYJ,SAAS,CAAC;AAE1B,QAAMiB,cACJjB,aAAa,QAAQI,aAAaA,WAAWJ,SAAS,GAAGkB,OAAO;AAGhE,SAAAC,2BAAA,IAACC,SACC,YAAA,EAAA,uBAAuB,OACvB,OAAOd,OAAOe,KAAKrB,UAAUe,OAC7B,aAAaT,OAAOe,KAAKrB,UAAUsB,aACnC,QACA,UACA,UACA,QAAQpB,YAAY,YAAY,SAChC,eAAeI,OAAOe,KAAKrB,UAAUuB,QACrC,UAAWP,CAAa,aAAA;AACtB,QAAIA,YAAY,CAACQ,MAAMC,QAAQT,QAAQ,GAAG;AACxC,YAAMU,cAAcV,SAASjB;AAE7B,YAAMmB,OACJd,cAAcsB,eAAetB,WAAWsB,WAAW,GAAGR;AACxD,YAAMS,gBAAgBT,OAAOb,UAAUa,IAAI,IAAIU;AAE3CC,UAAAA;AACJ,UAAIZ,gBAAgBC,MAAM;AACbU,mBAAAA;AAAAA,MAAAA,WACFD,eAAeG,WAAW,GAAG;AAC3BH,mBAAAA,cAAc,CAAC,EAAEE;AAAAA,MAAAA,OACvB;AACM,mBAAA;AAAA,MACb;AAGME,YAAAA,QAAQb,SAAS,YAAY,OAAOU;AAE3B,qBAAA;AAAA,QACbV,MAAM;AAAA,QACNnB;AAAAA,QACAC,WAAW0B,aAAaM,SAAS;AAAA,QACjCH;AAAAA,QACAE;AAAAA,MAAAA,CACD;AAAA,IAAA,OACI;AACU,qBAAA;AAAA,QAAEb,MAAM;AAAA,QAAiBnB;AAAAA,QAAIC,WAAW;AAAA,MAAA,CAAM;AAAA,IAC/D;AAAA,EAAA,GAEF,YAAYiC,MAAAA,UAAUxB,MAAM,GACvBwB,GAAAA,MAAAA,UAAUxB,MAAM,KAAK;AAAA,IAAEyB,aAAa;AAAA,IAAMC,QAAQ;AAAA,EACvD,EAAA,CAAA;AAEN;AAEeC,WAAKtC,SAAS;;"}
@@ -11,14 +11,13 @@ const Operator = ({
11
11
  attribute,
12
12
  operator
13
13
  }) => {
14
- const context = React.useContext(Context.QueryBuilderContext);
15
14
  const {
16
15
  dispatchAction,
17
16
  attributes,
18
17
  operators,
19
18
  labels,
20
19
  readOnly
21
- } = context;
20
+ } = Context.useQueryBuilderContext();
22
21
  const value = operator ?? null;
23
22
  const values = React.useMemo(() => {
24
23
  const attributeSpec = attribute && attributes ? attributes[attribute] : null;
@@ -35,7 +34,7 @@ const Operator = ({
35
34
  type: "set-operator",
36
35
  id,
37
36
  operator: selected.id.toString(),
38
- value: value === "range" || selected.id === "range" ? null : void 0
37
+ value: value === "range" || selected.id === "range" || selected.id === "IsNotEmpty" || selected.id === "Empty" ? null : void 0
39
38
  });
40
39
  } else {
41
40
  dispatchAction({
@@ -1 +1 @@
1
- {"version":3,"file":"Operator.cjs","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","jsx","HvDropdown","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,iBAAWC,QAAAA,mBAAmB;AAExC,QAAA;AAAA,IAAEC;AAAAA,IAAgBC;AAAAA,IAAYC;AAAAA,IAAWC;AAAAA,IAAQC;AAAAA,EAAaP,IAAAA;AAEpE,QAAMQ,QAAQT,YAAY;AAEpBU,QAAAA,SAASC,MAAAA,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,SAAAc,2BAAA,IAACC,SACC,YAAA,EAAA,UAAQ,MACR,QAAO,SACP,uBAAuB,OACvB,OAAOjB,OAAOkB,KAAKzB,SAASqB,OAC5B,aAAad,OAAOkB,KAAKzB,SAAS0B,aAClC,QACA,UAAUhB,OAAOiB,WAAW,GAC5B,UACA,UAAWL,CAAa,aAAA;AACtB,QAAIA,YAAY,CAACM,MAAMC,QAAQP,QAAQ,KAAKA,SAASzB,IAAI;AACxC,qBAAA;AAAA,QACbiB,MAAM;AAAA,QACNjB;AAAAA,QACAG,UAAUsB,SAASzB,GAAGiC,SAAS;AAAA,QAC/BrB,OACEA,UAAU,WAAWa,SAASzB,OAAO,UAAU,OAAOkC;AAAAA,MAAAA,CACzD;AAAA,IAAA,OACI;AACU,qBAAA;AAAA,QACbjB,MAAM;AAAA,QACNjB;AAAAA,QACAG,UAAU;AAAA,QACVS,OAAO;AAAA,MAAA,CACR;AAAA,IACH;AAAA,EAAA,GAEF,YAAYuB,MAAAA,UAAUtB,MAAM,GACvBsB,GAAAA,MAAAA,UAAUtB,MAAM,KAAK;AAAA,IAAEuB,aAAa;AAAA,IAAMC,QAAQ;AAAA,EACvD,EAAA,CAAA;AAEN;AAEeC,WAAKvC,QAAQ;;"}
1
+ {"version":3,"file":"Operator.cjs","sources":["../../../../../../src/components/QueryBuilder/Rule/Operator/Operator.tsx"],"sourcesContent":["import { memo, useMemo } from \"react\";\n\nimport { HvDropdown } from \"@core/components/Dropdown\";\n\nimport { useQueryBuilderContext } 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 { dispatchAction, attributes, operators, labels, readOnly } =\n useQueryBuilderContext();\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","dispatchAction","attributes","operators","labels","readOnly","useQueryBuilderContext","value","values","useMemo","attributeSpec","options","type","filter","o","combinators","includes","map","key","label","selected","jsx","HvDropdown","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;AACb,QAAA;AAAA,IAAEC;AAAAA,IAAgBC;AAAAA,IAAYC;AAAAA,IAAWC;AAAAA,IAAQC;AAAAA,MACrDC,QAAuB,uBAAA;AAEzB,QAAMC,QAAQP,YAAY;AAEpBQ,QAAAA,SAASC,MAAAA,QAAQ,MAAM;AAC3B,UAAMC,gBACJX,aAAaG,aAAaA,WAAWH,SAAS,IAAI;AACpD,UAAMY,UAAUD,gBACZP,UAAUO,cAAcE,IAAI,EAAEC,OAAQC,CAAAA,MACpCA,EAAEC,YAAYC,SAASlB,UAAU,CACnC,KAAK,KACL;AACGa,WAAAA,QAAQM,IAAKC,CAAS,SAAA;AAAA,MAC3BrB,IAAIqB,IAAIlB;AAAAA,MACRmB,OAAOD,IAAIC;AAAAA,MACXC,UAAUF,IAAIlB,aAAaO;AAAAA,IAC3B,EAAA;AAAA,EAAA,GACD,CAACR,WAAWG,YAAYC,WAAWL,YAAYS,KAAK,CAAC;AAGtD,SAAAc,2BAAA,IAACC,SACC,YAAA,EAAA,UAAQ,MACR,QAAO,SACP,uBAAuB,OACvB,OAAOlB,OAAOmB,KAAKvB,SAASmB,OAC5B,aAAaf,OAAOmB,KAAKvB,SAASwB,aAClC,QACA,UAAUhB,OAAOiB,WAAW,GAC5B,UACA,UAAWL,CAAa,aAAA;AACtB,QAAIA,YAAY,CAACM,MAAMC,QAAQP,QAAQ,KAAKA,SAASvB,IAAI;AACxC,qBAAA;AAAA,QACbe,MAAM;AAAA,QACNf;AAAAA,QACAG,UAAUoB,SAASvB,GAAG+B,SAAS;AAAA,QAC/BrB,OACEA,UAAU,WACVa,SAASvB,OAAO,WAChBuB,SAASvB,OAAO,gBAChBuB,SAASvB,OAAO,UACZ,OACAgC;AAAAA,MAAAA,CACP;AAAA,IAAA,OACI;AACU,qBAAA;AAAA,QACbjB,MAAM;AAAA,QACNf;AAAAA,QACAG,UAAU;AAAA,QACVO,OAAO;AAAA,MAAA,CACR;AAAA,IACH;AAAA,EAAA,GAEF,YAAYuB,MAAAA,UAAUtB,MAAM,GACvBsB,GAAAA,MAAAA,UAAUtB,MAAM,KAAK;AAAA,IAAEuB,aAAa;AAAA,IAAMC,QAAQ;AAAA,EACvD,EAAA,CAAA;AAEN;AAEeC,WAAKrC,QAAQ;;"}
@@ -28,16 +28,17 @@ const Rule = (props) => {
28
28
  classes,
29
29
  cx
30
30
  } = Rule_styles.useClasses(classesProp);
31
- const context = React.useContext(Context.QueryBuilderContext);
32
- const theme = material.useTheme();
33
- const isMdDown = material.useMediaQuery(theme.breakpoints.down("md"));
34
31
  const {
35
32
  askAction,
33
+ dispatchAction,
36
34
  attributes,
37
35
  operators,
38
36
  labels,
39
- readOnly
40
- } = context;
37
+ readOnly,
38
+ disableConfirmation
39
+ } = Context.useQueryBuilderContext();
40
+ const theme = material.useTheme();
41
+ const isMdDown = material.useMediaQuery(theme.breakpoints.down("md"));
41
42
  const availableOperators = React.useMemo(() => {
42
43
  const attributeSpec = attribute != null && attributes ? attributes[attribute] : null;
43
44
  if (attributeSpec != null) {
@@ -56,15 +57,16 @@ const Rule = (props) => {
56
57
  /* @__PURE__ */ jsxRuntime.jsx(Grid.HvGrid, { item: true, xs: 2, lg: 3, children: /* @__PURE__ */ jsxRuntime.jsx(Attribute.Attribute, { attribute, id, disabled, isInvalid }) }),
57
58
  attribute != null && availableOperators > 0 && /* @__PURE__ */ jsxRuntime.jsx(Grid.HvGrid, { item: true, xs: 2, lg: 3, children: /* @__PURE__ */ jsxRuntime.jsx(Operator.Operator, { id, combinator, attribute, operator }) }),
58
59
  attribute != null && (operator != null || availableOperators === 0) && /* @__PURE__ */ jsxRuntime.jsx(Grid.HvGrid, { item: true, xs: true, children: shouldShowValueInput && /* @__PURE__ */ jsxRuntime.jsx(Value.Value, { attribute, id, operator, value }) }),
59
- /* @__PURE__ */ jsxRuntime.jsx(Grid.HvGrid, { item: true, className: classes.actionsContainer, children: /* @__PURE__ */ jsxRuntime.jsx(Button.HvButton, { icon: true, "aria-label": labels.rule.delete.ariaLabel, onClick: () => {
60
- askAction({
61
- actions: [{
62
- type: "remove-node",
63
- id
64
- }],
65
- dialog: labels.rule.delete
66
- });
67
- }, disabled: readOnly, children: /* @__PURE__ */ jsxRuntime.jsx(DeleteIcon, {}) }) })
60
+ /* @__PURE__ */ jsxRuntime.jsx(Grid.HvGrid, { item: true, className: classes.actionsContainer, children: /* @__PURE__ */ jsxRuntime.jsx(Button.HvButton, { icon: true, "aria-label": labels.rule.delete.ariaLabel, onClick: () => disableConfirmation ? dispatchAction({
61
+ type: "remove-node",
62
+ id
63
+ }) : askAction({
64
+ actions: [{
65
+ type: "remove-node",
66
+ id
67
+ }],
68
+ dialog: labels.rule.delete
69
+ }), disabled: readOnly, children: /* @__PURE__ */ jsxRuntime.jsx(DeleteIcon, {}) }) })
68
70
  ] });
69
71
  };
70
72
  exports.queryBuilderRuleClasses = Rule_styles.staticClasses;
@@ -1 +1 @@
1
- {"version":3,"file":"Rule.cjs","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","jsx","Delete","rule","delete","tooltip","HvGrid","root","Attribute","Operator","Value","actionsContainer","HvButton","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,gBAAA,sBAAsBV,KAAK;AACzC,QAAA;AAAA,IAAEQ;AAAAA,IAASG;AAAAA,EAAAA,IAAOC,YAAAA,WAAWH,WAAW;AAExCI,QAAAA,UAAUC,iBAAWC,QAAAA,mBAAmB;AAE9C,QAAMC,QAAQC,SAAAA;AAEd,QAAMC,WAAWC,SAAAA,cAAcH,MAAMI,YAAYC,KAAK,IAAI,CAAC;AAErD,QAAA;AAAA,IAAEC;AAAAA,IAAWC;AAAAA,IAAYC;AAAAA,IAAWC;AAAAA,IAAQC;AAAAA,EAAab,IAAAA;AAEzDc,QAAAA,qBAAqBC,MAAAA,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,YAAAA,YACjB,MAAOC,2BAAAA,IAAAC,gBAAAA,QAAA,CAAA,CAAS,GAChBhB,OAAOiB,KAAKC,OAAOC,SACnB,QACF;AAEA,yCACGC,KACC,QAAA,EAAA,WAAS,MACT,WAAWlC,GAAGH,QAAQsC,MAAM;AAAA,IAAE,CAACtC,QAAQU,QAAQ,GAAGA;AAAAA,EAAU,CAAA,GAC5D,SAAS,GACT,MAAK,UAEL,UAAA;AAAA,IAAAsB,2BAAA,IAACK,KAAO,QAAA,EAAA,MAAI,MAAC,IAAI,GAAG,IAAI,GACtB,UAAAL,2BAAA,IAACO,UACC,WAAA,EAAA,WACA,IACA,UACA,UAAqB,CAAA,GAEzB;AAAA,IACC5C,aAAa,QAAQwB,qBAAqB,KACxCa,2BAAAA,IAAAK,KAAA,QAAA,EAAO,MAAI,MAAC,IAAI,GAAG,IAAI,GACtB,UAACL,2BAAA,IAAAQ,mBAAA,EACC,IACA,YACA,WACA,SAAmB,CAAA,GAEvB;AAAA,IAED7C,aAAa,SAASC,YAAY,QAAQuB,uBAAuB,qCAC/DkB,KAAAA,QAAO,EAAA,MAAI,MAAC,IAAE,MACZR,kCACEG,2BAAAA,IAAAS,MAAA,OAAA,EACC,WACA,IACA,UACA,OAEH,EACH,CAAA;AAAA,mCAEDJ,KAAAA,QAAO,EAAA,MAAI,MAAC,WAAWrC,QAAQ0C,kBAC9B,UAAAV,2BAAA,IAACW,OACC,UAAA,EAAA,MAAI,MACJ,cAAY1B,OAAOiB,KAAKC,OAAOS,WAC/B,SAAS,MAAM;AACH,gBAAA;AAAA,QACRC,SAAS,CAAC;AAAA,UAAEtB,MAAM;AAAA,UAAe9B;AAAAA,QAAAA,CAAI;AAAA,QACrCqD,QAAQ7B,OAAOiB,KAAKC;AAAAA,MAAAA,CACrB;AAAA,IAAA,GAEH,UAAUjB,UAEV,UAACc,2BAAAA,IAAA,YAAA,CAAU,CAAA,EACb,CAAA,GACF;AAAA,EACF,EAAA,CAAA;AAEJ;;;"}
1
+ {"version":3,"file":"Rule.cjs","sources":["../../../../../src/components/QueryBuilder/Rule/Rule.tsx"],"sourcesContent":["import { 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 { useQueryBuilderContext } 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\n const { classes, cx } = useClasses(classesProp);\n\n const {\n askAction,\n dispatchAction,\n attributes,\n operators,\n labels,\n readOnly,\n disableConfirmation,\n } = useQueryBuilderContext();\n\n const theme = useTheme();\n\n const isMdDown = useMediaQuery(theme.breakpoints.down(\"md\"));\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 disableConfirmation\n ? dispatchAction({ type: \"remove-node\", id })\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","askAction","dispatchAction","attributes","operators","labels","readOnly","disableConfirmation","useQueryBuilderContext","theme","useTheme","isMdDown","useMediaQuery","breakpoints","down","availableOperators","useMemo","attributeSpec","typeOperators","type","reduce","count","item","combinators","includes","shouldShowValueInput","DeleteIcon","withTooltip","jsx","Delete","rule","delete","tooltip","HvGrid","root","Attribute","Operator","Value","actionsContainer","HvButton","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,gBAAA,sBAAsBV,KAAK;AAEzC,QAAA;AAAA,IAAEQ;AAAAA,IAASG;AAAAA,EAAAA,IAAOC,YAAAA,WAAWH,WAAW;AAExC,QAAA;AAAA,IACJI;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,MACEC,QAAuB,uBAAA;AAE3B,QAAMC,QAAQC,SAAAA;AAEd,QAAMC,WAAWC,SAAAA,cAAcH,MAAMI,YAAYC,KAAK,IAAI,CAAC;AAErDC,QAAAA,qBAAqBC,MAAAA,QAAQ,MAAM;AACvC,UAAMC,gBACJ1B,aAAa,QAAQY,aAAaA,WAAWZ,SAAS,IAAI;AAC5D,QAAI0B,iBAAiB,MAAM;AACnBC,YAAAA,gBAAgBd,UAAUa,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,WAAWY,YAAYb,YAAYc,SAAS,CAAC;AAE3CqB,QAAAA,uBACJjC,aAAa,WAAWA,aAAa;AAEjCkC,QAAAA,aAAaC,YAAAA,YACjB,MAAOC,2BAAAA,IAAAC,gBAAAA,QAAA,CAAA,CAAS,GAChBxB,OAAOyB,KAAKC,OAAOC,SACnB,QACF;AAEA,yCACGC,KACC,QAAA,EAAA,WAAS,MACT,WAAWlC,GAAGH,QAAQsC,MAAM;AAAA,IAAE,CAACtC,QAAQe,QAAQ,GAAGA;AAAAA,EAAU,CAAA,GAC5D,SAAS,GACT,MAAK,UAEL,UAAA;AAAA,IAAAiB,2BAAA,IAACK,KAAO,QAAA,EAAA,MAAI,MAAC,IAAI,GAAG,IAAI,GACtB,UAAAL,2BAAA,IAACO,UACC,WAAA,EAAA,WACA,IACA,UACA,UAAqB,CAAA,GAEzB;AAAA,IACC5C,aAAa,QAAQwB,qBAAqB,KACxCa,2BAAAA,IAAAK,KAAA,QAAA,EAAO,MAAI,MAAC,IAAI,GAAG,IAAI,GACtB,UAACL,2BAAA,IAAAQ,mBAAA,EACC,IACA,YACA,WACA,SAAmB,CAAA,GAEvB;AAAA,IAED7C,aAAa,SAASC,YAAY,QAAQuB,uBAAuB,qCAC/DkB,KAAAA,QAAO,EAAA,MAAI,MAAC,IAAE,MACZR,kCACEG,2BAAAA,IAAAS,MAAA,OAAA,EACC,WACA,IACA,UACA,OAEH,EACH,CAAA;AAAA,mCAEDJ,KAAAA,QAAO,EAAA,MAAI,MAAC,WAAWrC,QAAQ0C,kBAC9B,UAACV,2BAAAA,IAAAW,OAAA,UAAA,EACC,MAAI,MACJ,cAAYlC,OAAOyB,KAAKC,OAAOS,WAC/B,SAAS,MACPjC,sBACIL,eAAe;AAAA,MAAEiB,MAAM;AAAA,MAAe9B;AAAAA,IAAI,CAAA,IAC1CY,UAAU;AAAA,MACRwC,SAAS,CAAC;AAAA,QAAEtB,MAAM;AAAA,QAAe9B;AAAAA,MAAAA,CAAI;AAAA,MACrCqD,QAAQrC,OAAOyB,KAAKC;AAAAA,IAAAA,CACrB,GAEP,UAAUzB,UAEV,UAACsB,2BAAA,IAAA,YAAA,CAAA,CAAU,EACb,CAAA,GACF;AAAA,EACF,EAAA,CAAA;AAEJ;;;"}
@@ -9,12 +9,11 @@ const BooleanValue = ({
9
9
  id,
10
10
  value = true
11
11
  }) => {
12
- const context = React.useContext(Context.QueryBuilderContext);
13
12
  const {
14
13
  labels,
15
14
  dispatchAction,
16
15
  readOnly
17
- } = context;
16
+ } = Context.useQueryBuilderContext();
18
17
  const values = ["true", "false"].map((v) => ({
19
18
  id: v,
20
19
  label: labels.rule.value.boolean.options[v],
@@ -1 +1 @@
1
- {"version":3,"file":"BooleanValue.cjs","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","jsx","HvDropdown","placeholder","Array","isArray","type","isBigList","virtualized","height","memo"],"mappings":";;;;;;;AAYO,MAAMA,eAAeA,CAAC;AAAA,EAAEC;AAAAA,EAAIC,QAAQ;AAAwB,MAAM;AACjEC,QAAAA,UAAUC,iBAAWC,QAAAA,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,SAAAM,+BAACC,SAAAA,cACC,UAAQ,MACR,QAAO,SACP,uBAAuB,OACvB,OAAOZ,OAAOO,KAAKX,MAAMY,QAAQF,OACjC,aAAaN,OAAOO,KAAKX,MAAMY,QAAQK,aACvC,QACA,UACA,UAAWH,CAAa,aAAA;AACtB,QAAIA,YAAY,CAACI,MAAMC,QAAQL,QAAQ,KAAKA,SAASf,IAAI;AACxC,qBAAA;AAAA,QACbqB,MAAM;AAAA,QACNrB;AAAAA,QACAC,OAAOc,SAASf,OAAO;AAAA,MAAA,CACxB;AAAA,IAAA,OACI;AACU,qBAAA;AAAA,QAAEqB,MAAM;AAAA,QAAarB;AAAAA,QAAIC,OAAO;AAAA,MAAA,CAAM;AAAA,IACvD;AAAA,EAAA,GAEF,YAAYqB,MAAAA,UAAUd,MAAM,GACvBc,GAAAA,MAAAA,UAAUd,MAAM,KAAK;AAAA,IAAEe,aAAa;AAAA,IAAMC,QAAQ;AAAA,EACvD,EAAA,CAAA;AAEN;AAEeC,WAAK1B,YAAY;;"}
1
+ {"version":3,"file":"BooleanValue.cjs","sources":["../../../../../../../src/components/QueryBuilder/Rule/Value/BooleanValue/BooleanValue.tsx"],"sourcesContent":["import { memo } from \"react\";\n\nimport { HvDropdown } from \"@core/components/Dropdown\";\n\nimport { useQueryBuilderContext } 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 { labels, dispatchAction, readOnly } = useQueryBuilderContext();\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","labels","dispatchAction","readOnly","useQueryBuilderContext","values","map","v","label","rule","boolean","options","selected","jsx","HvDropdown","placeholder","Array","isArray","type","isBigList","virtualized","height","memo"],"mappings":";;;;;;;AAYO,MAAMA,eAAeA,CAAC;AAAA,EAAEC;AAAAA,EAAIC,QAAQ;AAAwB,MAAM;AACjE,QAAA;AAAA,IAAEC;AAAAA,IAAQC;AAAAA,IAAgBC;AAAAA,MAAaC,QAAuB,uBAAA;AAEpE,QAAMC,SAAS,CAAC,QAAQ,OAAO,EAAEC,IAAKC,CAAO,OAAA;AAAA,IAC3CR,IAAIQ;AAAAA,IACJC,OAAOP,OAAOQ,KAAKT,MAAMU,QAAQC,QAAQJ,CAAC;AAAA,IAC1CK,UAAUZ,WAAWO,MAAM;AAAA,EAC3B,EAAA;AAGA,SAAAM,+BAACC,SAAAA,cACC,UAAQ,MACR,QAAO,SACP,uBAAuB,OACvB,OAAOb,OAAOQ,KAAKT,MAAMU,QAAQF,OACjC,aAAaP,OAAOQ,KAAKT,MAAMU,QAAQK,aACvC,QACA,UACA,UAAWH,CAAa,aAAA;AACtB,QAAIA,YAAY,CAACI,MAAMC,QAAQL,QAAQ,KAAKA,SAASb,IAAI;AACxC,qBAAA;AAAA,QACbmB,MAAM;AAAA,QACNnB;AAAAA,QACAC,OAAOY,SAASb,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,MAAAA,UAAUd,MAAM,GACvBc,GAAAA,MAAAA,UAAUd,MAAM,KAAK;AAAA,IAAEe,aAAa;AAAA,IAAMC,QAAQ;AAAA,EACvD,EAAA,CAAA;AAEN;AAEeC,WAAKxB,YAAY;;"}
@@ -30,12 +30,11 @@ const DateTimeValue = ({
30
30
  const theme = material.useTheme();
31
31
  const isMdDown = material.useMediaQuery(theme.breakpoints.down("md"));
32
32
  const isRange = valueIsRange(operator);
33
- const context = React.useContext(Context.QueryBuilderContext);
34
33
  const {
35
34
  labels,
36
35
  dispatchAction,
37
36
  readOnly
38
- } = context;
37
+ } = Context.useQueryBuilderContext();
39
38
  const elementId = uniqueId__default.default(`datetime${id}`);
40
39
  const [touchedDate, setTouchedDate] = React.useState(initialTouched);
41
40
  const [touchedTime, setTouchedTime] = React.useState(initialTouched);
@@ -1 +1 @@
1
- {"version":3,"file":"DateTimeValue.cjs","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","jsxs","root","row","horizontal","jsx","HvDatePicker","datePicker","rule","datetime","validation","required","startDateLabel","dateLabel","startDatePlaceholder","datePlaceholder","HvTimePicker","timePicker","startTimeLabel","timeLabel","startTimePlaceholder","timePlaceholder","undefined","_evt","open","vertical","endDateLabel","endDatePlaceholder","endTimeLabel","endTimePlaceholder","HvWarningText","invalidInterval","memo"],"mappings":"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"}
1
+ {"version":3,"file":"DateTimeValue.cjs","sources":["../../../../../../../src/components/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.tsx"],"sourcesContent":["import { memo, useCallback, 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 { useQueryBuilderContext } 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 { labels, dispatchAction, readOnly } = useQueryBuilderContext();\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","labels","dispatchAction","readOnly","useQueryBuilderContext","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","jsxs","root","row","horizontal","jsx","HvDatePicker","datePicker","rule","datetime","validation","required","startDateLabel","dateLabel","startDatePlaceholder","datePlaceholder","HvTimePicker","timePicker","startTimeLabel","timeLabel","startTimePlaceholder","timePlaceholder","undefined","_evt","open","vertical","endDateLabel","endDatePlaceholder","endTimeLabel","endTimePlaceholder","HvWarningText","invalidInterval","memo"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.cjs","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,uBAAMD,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.cjs","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,uBAAMD,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;;;;"}
@@ -22,15 +22,14 @@ const NumericValue = ({
22
22
  cx
23
23
  } = Numeric_styles.useClasses();
24
24
  const isRange = operator === "range";
25
- const context = React.useContext(Context.QueryBuilderContext);
26
25
  const {
27
26
  labels,
28
27
  dispatchAction,
29
28
  readOnly
30
- } = context;
29
+ } = Context.useQueryBuilderContext();
31
30
  const theme = material.useTheme();
32
31
  const isMdDown = material.useMediaQuery(theme.breakpoints.down("md"));
33
- const onSingleValueChange = React.useCallback((evt, data) => {
32
+ const onSingleValueChange = React.useCallback((_, data) => {
34
33
  const numericData = isEmpty__default.default(data) ? null : Number(data);
35
34
  dispatchAction({
36
35
  type: "set-value",
@@ -38,7 +37,7 @@ const NumericValue = ({
38
37
  value: Number.isNaN(numericData) ? data : numericData
39
38
  });
40
39
  }, [dispatchAction, id]);
41
- const onRangeValueChange = React.useCallback((evt, data, from = true) => {
40
+ const onRangeValueChange = React.useCallback((_, data, from = true) => {
42
41
  const numericData = isEmpty__default.default(data) ? null : Number(data);
43
42
  const currentValue = value;
44
43
  const numericRange = {
@@ -117,7 +116,7 @@ const NumericValue = ({
117
116
  ] });
118
117
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: classes.root, children: [
119
118
  isRange && renderRangeInputs(value || {}),
120
- !isRange && /* @__PURE__ */ jsxRuntime.jsx("div", { className: classes.inputContainer, children: /* @__PURE__ */ jsxRuntime.jsx(Input.HvInput, { label: labels.rule.value.numeric.label, className: classes.input, id: `${elementId}-numeric`, name: `${elementId}-numeric`, value: value ? value.toString() : "", onChange: onSingleValueChange, onBlur: () => {
119
+ !isRange && /* @__PURE__ */ jsxRuntime.jsx("div", { className: classes.inputContainer, children: /* @__PURE__ */ jsxRuntime.jsx(Input.HvInput, { label: labels.rule.value.numeric.label, className: classes.input, id: `${elementId}-numeric`, name: `${elementId}-numeric`, value: value?.toString() || "", onChange: onSingleValueChange, onBlur: () => {
121
120
  setTouchedNumeric(true);
122
121
  }, onKeyDown: (e) => {
123
122
  if (e.key === "Enter") {
@@ -1 +1 @@
1
- {"version":3,"file":"NumericValue.cjs","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","jsxs","rangeContainer","jsx","inputContainer","HvInput","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.cjs","sources":["../../../../../../../src/components/QueryBuilder/Rule/Value/NumericValue/NumericValue.tsx"],"sourcesContent":["import { memo, useCallback, 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 { useQueryBuilderContext } 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 { labels, dispatchAction, readOnly } = useQueryBuilderContext();\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","labels","dispatchAction","readOnly","useQueryBuilderContext","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","jsxs","rangeContainer","jsx","inputContainer","HvInput","rule","numeric","range","leftLabel","input","event","e","key","preventDefault","validation","autoComplete","placeholder","rightLabel","root","label","memo"],"mappings":"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"}
@@ -13,12 +13,11 @@ const TextValue = ({
13
13
  const {
14
14
  classes
15
15
  } = TextValue_styles.useClasses();
16
- const context = React.useContext(Context.QueryBuilderContext);
17
16
  const {
18
17
  labels,
19
18
  dispatchAction,
20
19
  readOnly
21
- } = context;
20
+ } = Context.useQueryBuilderContext();
22
21
  const [touched, setTouched] = React.useState(initialTouched);
23
22
  const isValid = value != null && value.toString().trim() !== "";
24
23
  let status = isValid ? "valid" : "invalid";
@@ -1 +1 @@
1
- {"version":3,"file":"TextValue.cjs","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","jsx","HvInput","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,iBAAW,WAAA;AAEzBC,QAAAA,UAAUC,iBAAWC,QAAAA,mBAAmB;AACxC,QAAA;AAAA,IAAEC;AAAAA,IAAQC;AAAAA,IAAgBC;AAAAA,EAAaL,IAAAA;AAC7C,QAAM,CAACM,SAASC,UAAU,IAAIC,eAASX,cAAc;AACrD,QAAMY,UAAUb,SAAS,QAAQA,MAAMc,WAAWC,KAAW,MAAA;AAEzDC,MAAAA,SAAuBH,UAAU,UAAU;AACtC,WAAA,CAACH,UAAU,YAAYM;AAG9B,SAAAC,+BAACC,MAAAA,WACC,WAAWhB,QAAQiB,UACnB,OAAOZ,OAAOa,KAAKpB,MAAMqB,KAAKC,OAC9B,UAAQ,MACR,QACA,eAAef,OAAOa,KAAKpB,MAAMqB,KAAKE,WAAWC,UACjD,OACA,YAAY;AAAA,IACVC,cAAc;AAAA,EAAA,GAEhB,UAAU,CAACC,GAAGC,MAAM;AACH,mBAAA;AAAA,MACbC,MAAM;AAAA,MACN7B;AAAAA,MACAC,OAAO2B;AAAAA,IAAAA,CACR;AAAA,EACH,GACA,QAAQ,MAAM;AACZhB,eAAW,IAAI;AAAA,EAAA,GAEjB,WAAW,CAACkB,MAAW;AACjBA,QAAAA,EAAEC,QAAQ,SAAS;AACrBD,QAAEE,eAAe;AAAA,IACnB;AAAA,EACF,GACA,aAAY,KACZ,SACA,CAAA;AAEN;AAEeC,WAAKlC,SAAS;;"}
1
+ {"version":3,"file":"TextValue.cjs","sources":["../../../../../../../src/components/QueryBuilder/Rule/Value/TextValue/TextValue.tsx"],"sourcesContent":["import { memo, useState } from \"react\";\n\nimport { HvFormStatus } from \"@core/components/Forms\";\nimport { HvInput } from \"@core/components/Input\";\n\nimport { useQueryBuilderContext } 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 { labels, dispatchAction, readOnly } = useQueryBuilderContext();\n\n const [touched, setTouched] = useState(initialTouched);\n\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","labels","dispatchAction","readOnly","useQueryBuilderContext","touched","setTouched","useState","isValid","toString","trim","status","jsx","HvInput","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,iBAAW,WAAA;AAEzB,QAAA;AAAA,IAAEC;AAAAA,IAAQC;AAAAA,IAAgBC;AAAAA,MAAaC,QAAuB,uBAAA;AAEpE,QAAM,CAACC,SAASC,UAAU,IAAIC,eAAST,cAAc;AAErD,QAAMU,UAAUX,SAAS,QAAQA,MAAMY,WAAWC,KAAW,MAAA;AAEzDC,MAAAA,SAAuBH,UAAU,UAAU;AACtC,WAAA,CAACH,UAAU,YAAYM;AAG9B,SAAAC,+BAACC,MAAAA,WACC,WAAWd,QAAQe,UACnB,OAAOb,OAAOc,KAAKlB,MAAMmB,KAAKC,OAC9B,UAAQ,MACR,QACA,eAAehB,OAAOc,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;AACZhB,eAAW,IAAI;AAAA,EAAA,GAEjB,WAAW,CAACkB,MAAW;AACjBA,QAAAA,EAAEC,QAAQ,SAAS;AACrBD,QAAEE,eAAe;AAAA,IACnB;AAAA,EACF,GACA,aAAY,KACZ,SACA,CAAA;AAEN;AAEeC,WAAKhC,SAAS;;"}
@@ -13,11 +13,11 @@ const Value = ({
13
13
  operator,
14
14
  value: valueProp
15
15
  }) => {
16
- const context = React.useContext(Context.QueryBuilderContext);
17
16
  const {
18
17
  attributes,
19
- initialTouched
20
- } = context;
18
+ initialTouched,
19
+ renderers
20
+ } = Context.useQueryBuilderContext();
21
21
  const value = attribute && attributes ? {
22
22
  ...attributes[attribute]
23
23
  } : {
@@ -38,7 +38,12 @@ const Value = ({
38
38
  }
39
39
  case "text":
40
40
  case "textarea":
41
+ return /* @__PURE__ */ jsxRuntime.jsx(TextValue.TextValue, { id, value: valueProp, initialTouched });
41
42
  default: {
43
+ if (type && renderers?.[type]) {
44
+ const Renderer = renderers[type];
45
+ return /* @__PURE__ */ jsxRuntime.jsx(Renderer, { id, attribute, operator, value: valueProp });
46
+ }
42
47
  return /* @__PURE__ */ jsxRuntime.jsx(TextValue.TextValue, { id, value: valueProp, initialTouched });
43
48
  }
44
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Value.cjs","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","BooleanValue","NumericValue","DateTimeValue","jsx","TextValue","memo"],"mappings":";;;;;;;;;AAeO,MAAMA,QAAQA,CAAC;AAAA,EACpBC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,OAAOC;AACG,MAAM;AACVC,QAAAA,UAAUC,iBAAWC,QAAAA,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,4CAAQC,aAAAA,cAAa,EAAA,IAAQ,OAAO,CAAC,CAACP,UAAa,CAAA;AAAA,IACrD;AAAA,IACA,KAAK,WAAW;AACd,4CACGQ,aACC,cAAA,EAAA,IACA,UACA,OAAOR,WACP,eACA,CAAA;AAAA,IAEN;AAAA,IACA,KAAK,eAAe;AAClB,4CACGS,cACC,eAAA,EAAA,IACA,UACA,OAAOT,WACP,eACA,CAAA;AAAA,IAEN;AAAA,IACA,KAAK;AAAA,IACL,KAAK;AAAA,IACL,SAAS;AACP,aACGU,2BAAAA,IAAAC,UAAAA,WAAA,EAAU,IAAQ,OAAOX,WAAW,eAAkC,CAAA;AAAA,IAE3E;AAAA,EACF;AACF;AAEeY,WAAKjB,KAAK;;"}
1
+ {"version":3,"file":"Value.cjs","sources":["../../../../../../src/components/QueryBuilder/Rule/Value/Value.tsx"],"sourcesContent":["import { memo } from \"react\";\n\nimport { useQueryBuilderContext } 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 { attributes, initialTouched, renderers } = useQueryBuilderContext();\n\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 return (\n <TextValue id={id} value={valueProp} initialTouched={initialTouched} />\n );\n default: {\n if (type && renderers?.[type]) {\n const Renderer = renderers[type];\n\n return (\n <Renderer\n id={id}\n attribute={attribute}\n operator={operator}\n value={valueProp}\n />\n );\n }\n\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","attributes","initialTouched","renderers","useQueryBuilderContext","type","BooleanValue","NumericValue","DateTimeValue","jsx","TextValue","Renderer","memo"],"mappings":";;;;;;;;;AAeO,MAAMA,QAAQA,CAAC;AAAA,EACpBC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,OAAOC;AACG,MAAM;AACV,QAAA;AAAA,IAAEC;AAAAA,IAAYC;AAAAA,IAAgBC;AAAAA,MAAcC,QAAuB,uBAAA;AAEnEL,QAAAA,QACJF,aAAaI,aAAa;AAAA,IAAE,GAAGA,WAAWJ,SAAS;AAAA,EAAA,IAAM;AAAA,IAAEQ,MAAM;AAAA,EAAA;AAC7D,QAAA;AAAA,IAAEA;AAAAA,EAASN,IAAAA;AAEjB,UAAQM,MAAI;AAAA,IACV,KAAK,WAAW;AACd,4CAAQC,aAAAA,cAAa,EAAA,IAAQ,OAAO,CAAC,CAACN,UAAa,CAAA;AAAA,IACrD;AAAA,IACA,KAAK,WAAW;AACd,4CACGO,aACC,cAAA,EAAA,IACA,UACA,OAAOP,WACP,eACA,CAAA;AAAA,IAEN;AAAA,IACA,KAAK,eAAe;AAClB,4CACGQ,cACC,eAAA,EAAA,IACA,UACA,OAAOR,WACP,eACA,CAAA;AAAA,IAEN;AAAA,IACA,KAAK;AAAA,IACL,KAAK;AACH,aACGS,2BAAAA,IAAAC,UAAAA,WAAA,EAAU,IAAQ,OAAOV,WAAW,eAAkC,CAAA;AAAA,IAE3E,SAAS;AACHK,UAAAA,QAAQF,YAAYE,IAAI,GAAG;AACvBM,cAAAA,WAAWR,UAAUE,IAAI;AAE/B,8CACG,UACC,EAAA,IACA,WACA,UACA,OAAOL,UACP,CAAA;AAAA,MAEN;AAEA,aACGS,2BAAAA,IAAAC,UAAAA,WAAA,EAAU,IAAQ,OAAOV,WAAW,eAAkC,CAAA;AAAA,IAE3E;AAAA,EACF;AACF;AAEeY,WAAKjB,KAAK;;"}