@hitachivantara/uikit-react-core 5.57.0 → 5.58.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 (134) hide show
  1. package/dist/cjs/Button/Button.cjs +11 -0
  2. package/dist/cjs/Button/Button.cjs.map +1 -1
  3. package/dist/cjs/Button/Button.styles.cjs +71 -62
  4. package/dist/cjs/Button/Button.styles.cjs.map +1 -1
  5. package/dist/cjs/Button/types.cjs +9 -0
  6. package/dist/cjs/Button/types.cjs.map +1 -1
  7. package/dist/cjs/Calendar/model.cjs +23 -14
  8. package/dist/cjs/Calendar/model.cjs.map +1 -1
  9. package/dist/cjs/Calendar/utils.cjs +2 -3
  10. package/dist/cjs/Calendar/utils.cjs.map +1 -1
  11. package/dist/cjs/Carousel/Carousel.cjs +2 -2
  12. package/dist/cjs/Carousel/Carousel.cjs.map +1 -1
  13. package/dist/cjs/DotPagination/DotPagination.cjs +2 -2
  14. package/dist/cjs/DotPagination/DotPagination.cjs.map +1 -1
  15. package/dist/cjs/FileUploader/DropZone/DropZone.cjs +2 -4
  16. package/dist/cjs/FileUploader/DropZone/DropZone.cjs.map +1 -1
  17. package/dist/cjs/FilterGroup/FilterGroupContext.cjs +2 -4
  18. package/dist/cjs/FilterGroup/FilterGroupContext.cjs.map +1 -1
  19. package/dist/cjs/FilterGroup/RightPanel/RightPanel.cjs +1 -4
  20. package/dist/cjs/FilterGroup/RightPanel/RightPanel.cjs.map +1 -1
  21. package/dist/cjs/Grid/Grid.cjs +1 -3
  22. package/dist/cjs/Grid/Grid.cjs.map +1 -1
  23. package/dist/cjs/Loading/Loading.cjs +2 -4
  24. package/dist/cjs/Loading/Loading.cjs.map +1 -1
  25. package/dist/cjs/MultiButton/MultiButton.cjs +2 -1
  26. package/dist/cjs/MultiButton/MultiButton.cjs.map +1 -1
  27. package/dist/cjs/MultiButton/MultiButton.styles.cjs +3 -2
  28. package/dist/cjs/MultiButton/MultiButton.styles.cjs.map +1 -1
  29. package/dist/cjs/ProgressBar/ProgressBar.cjs +2 -4
  30. package/dist/cjs/ProgressBar/ProgressBar.cjs.map +1 -1
  31. package/dist/cjs/QueryBuilder/QueryBuilder.cjs +4 -8
  32. package/dist/cjs/QueryBuilder/QueryBuilder.cjs.map +1 -1
  33. package/dist/cjs/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.cjs +2 -3
  34. package/dist/cjs/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.cjs.map +1 -1
  35. package/dist/cjs/QueryBuilder/Rule/Value/NumericValue/NumericValue.cjs +4 -7
  36. package/dist/cjs/QueryBuilder/Rule/Value/NumericValue/NumericValue.cjs.map +1 -1
  37. package/dist/cjs/Snackbar/Snackbar.cjs +2 -3
  38. package/dist/cjs/Snackbar/Snackbar.cjs.map +1 -1
  39. package/dist/cjs/Stack/Stack.cjs +2 -6
  40. package/dist/cjs/Stack/Stack.cjs.map +1 -1
  41. package/dist/cjs/Table/TableCell/TableCell.cjs +3 -5
  42. package/dist/cjs/Table/TableCell/TableCell.cjs.map +1 -1
  43. package/dist/cjs/Table/TableHeader/TableHeader.cjs +4 -6
  44. package/dist/cjs/Table/TableHeader/TableHeader.cjs.map +1 -1
  45. package/dist/cjs/TreeView/internals/utils/EventManager.cjs +3 -5
  46. package/dist/cjs/TreeView/internals/utils/EventManager.cjs.map +1 -1
  47. package/dist/cjs/TreeView/internals/utils/FinalizationRegistryBasedCleanupTracking.cjs +5 -7
  48. package/dist/cjs/TreeView/internals/utils/FinalizationRegistryBasedCleanupTracking.cjs.map +1 -1
  49. package/dist/cjs/TreeView/internals/utils/TimerBasedCleanupTracking.cjs +2 -2
  50. package/dist/cjs/TreeView/internals/utils/TimerBasedCleanupTracking.cjs.map +1 -1
  51. package/dist/cjs/Typography/Typography.cjs +1 -0
  52. package/dist/cjs/Typography/Typography.cjs.map +1 -1
  53. package/dist/cjs/Typography/Typography.styles.cjs +1 -0
  54. package/dist/cjs/Typography/Typography.styles.cjs.map +1 -1
  55. package/dist/cjs/Typography/utils.cjs +1 -0
  56. package/dist/cjs/Typography/utils.cjs.map +1 -1
  57. package/dist/cjs/VerticalNavigation/Navigation/Navigation.cjs +3 -5
  58. package/dist/cjs/VerticalNavigation/Navigation/Navigation.cjs.map +1 -1
  59. package/dist/cjs/utils/Random.cjs +3 -0
  60. package/dist/cjs/utils/Random.cjs.map +1 -1
  61. package/dist/cjs/utils/classes.cjs +1 -1
  62. package/dist/cjs/utils/classes.cjs.map +1 -1
  63. package/dist/cjs/utils/helpers.cjs +33 -0
  64. package/dist/cjs/utils/helpers.cjs.map +1 -0
  65. package/dist/cjs/utils/setId.cjs +2 -4
  66. package/dist/cjs/utils/setId.cjs.map +1 -1
  67. package/dist/esm/Button/Button.js +12 -1
  68. package/dist/esm/Button/Button.js.map +1 -1
  69. package/dist/esm/Button/Button.styles.js +71 -62
  70. package/dist/esm/Button/Button.styles.js.map +1 -1
  71. package/dist/esm/Button/types.js +9 -0
  72. package/dist/esm/Button/types.js.map +1 -1
  73. package/dist/esm/Calendar/model.js +23 -14
  74. package/dist/esm/Calendar/model.js.map +1 -1
  75. package/dist/esm/Calendar/utils.js +1 -1
  76. package/dist/esm/Calendar/utils.js.map +1 -1
  77. package/dist/esm/Carousel/Carousel.js +2 -2
  78. package/dist/esm/Carousel/Carousel.js.map +1 -1
  79. package/dist/esm/DotPagination/DotPagination.js +1 -1
  80. package/dist/esm/DotPagination/DotPagination.js.map +1 -1
  81. package/dist/esm/FileUploader/DropZone/DropZone.js +1 -1
  82. package/dist/esm/FileUploader/DropZone/DropZone.js.map +1 -1
  83. package/dist/esm/FilterGroup/FilterGroupContext.js +1 -1
  84. package/dist/esm/FilterGroup/FilterGroupContext.js.map +1 -1
  85. package/dist/esm/FilterGroup/RightPanel/RightPanel.js +1 -2
  86. package/dist/esm/FilterGroup/RightPanel/RightPanel.js.map +1 -1
  87. package/dist/esm/Grid/Grid.js +1 -2
  88. package/dist/esm/Grid/Grid.js.map +1 -1
  89. package/dist/esm/Loading/Loading.js +2 -2
  90. package/dist/esm/Loading/Loading.js.map +1 -1
  91. package/dist/esm/MultiButton/MultiButton.js +2 -1
  92. package/dist/esm/MultiButton/MultiButton.js.map +1 -1
  93. package/dist/esm/MultiButton/MultiButton.styles.js +3 -2
  94. package/dist/esm/MultiButton/MultiButton.styles.js.map +1 -1
  95. package/dist/esm/ProgressBar/ProgressBar.js +2 -2
  96. package/dist/esm/ProgressBar/ProgressBar.js.map +1 -1
  97. package/dist/esm/QueryBuilder/QueryBuilder.js +3 -4
  98. package/dist/esm/QueryBuilder/QueryBuilder.js.map +1 -1
  99. package/dist/esm/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.js +1 -1
  100. package/dist/esm/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.js.map +1 -1
  101. package/dist/esm/QueryBuilder/Rule/Value/NumericValue/NumericValue.js +3 -4
  102. package/dist/esm/QueryBuilder/Rule/Value/NumericValue/NumericValue.js.map +1 -1
  103. package/dist/esm/Snackbar/Snackbar.js +1 -1
  104. package/dist/esm/Snackbar/Snackbar.js.map +1 -1
  105. package/dist/esm/Stack/Stack.js +2 -4
  106. package/dist/esm/Stack/Stack.js.map +1 -1
  107. package/dist/esm/Table/TableCell/TableCell.js +1 -1
  108. package/dist/esm/Table/TableCell/TableCell.js.map +1 -1
  109. package/dist/esm/Table/TableHeader/TableHeader.js +1 -1
  110. package/dist/esm/Table/TableHeader/TableHeader.js.map +1 -1
  111. package/dist/esm/TreeView/internals/utils/EventManager.js +3 -5
  112. package/dist/esm/TreeView/internals/utils/EventManager.js.map +1 -1
  113. package/dist/esm/TreeView/internals/utils/FinalizationRegistryBasedCleanupTracking.js +5 -7
  114. package/dist/esm/TreeView/internals/utils/FinalizationRegistryBasedCleanupTracking.js.map +1 -1
  115. package/dist/esm/TreeView/internals/utils/TimerBasedCleanupTracking.js +2 -2
  116. package/dist/esm/TreeView/internals/utils/TimerBasedCleanupTracking.js.map +1 -1
  117. package/dist/esm/Typography/Typography.js +1 -0
  118. package/dist/esm/Typography/Typography.js.map +1 -1
  119. package/dist/esm/Typography/Typography.styles.js +1 -0
  120. package/dist/esm/Typography/Typography.styles.js.map +1 -1
  121. package/dist/esm/Typography/utils.js +1 -0
  122. package/dist/esm/Typography/utils.js.map +1 -1
  123. package/dist/esm/VerticalNavigation/Navigation/Navigation.js +1 -1
  124. package/dist/esm/VerticalNavigation/Navigation/Navigation.js.map +1 -1
  125. package/dist/esm/utils/Random.js +3 -0
  126. package/dist/esm/utils/Random.js.map +1 -1
  127. package/dist/esm/utils/classes.js +1 -1
  128. package/dist/esm/utils/classes.js.map +1 -1
  129. package/dist/esm/utils/helpers.js +33 -0
  130. package/dist/esm/utils/helpers.js.map +1 -0
  131. package/dist/esm/utils/setId.js +1 -1
  132. package/dist/esm/utils/setId.js.map +1 -1
  133. package/dist/types/index.d.ts +22 -14
  134. package/package.json +5 -6
@@ -1,12 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("@emotion/react/jsx-runtime");
4
- const clamp = require("lodash/clamp");
5
4
  const useDefaultProps = require("../hooks/useDefaultProps.cjs");
5
+ const helpers = require("../utils/helpers.cjs");
6
6
  const ProgressBar_styles = require("./ProgressBar.styles.cjs");
7
7
  const Typography = require("../Typography/Typography.cjs");
8
- const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
9
- const clamp__default = /* @__PURE__ */ _interopDefault(clamp);
10
8
  const HvProgressBar = (props) => {
11
9
  const {
12
10
  className,
@@ -18,7 +16,7 @@ const HvProgressBar = (props) => {
18
16
  ...others
19
17
  } = useDefaultProps.useDefaultProps("HvProgressBar", props);
20
18
  const { classes, cx } = ProgressBar_styles.useClasses(classesProp);
21
- const clampedValue = clamp__default.default(value, 0, 100);
19
+ const clampedValue = helpers.clamp(value, 100);
22
20
  return /* @__PURE__ */ jsxRuntime.jsx(
23
21
  "div",
24
22
  {
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressBar.cjs","sources":["../../../src/ProgressBar/ProgressBar.tsx"],"sourcesContent":["import clamp from \"lodash/clamp\";\n\nimport { useDefaultProps } from \"../hooks/useDefaultProps\";\n\nimport { HvBaseProps } from \"../types/generic\";\nimport { HvTypography, HvTypographyProps } from \"../Typography\";\n\nimport { ExtractNames } from \"../utils/classes\";\n\nimport { staticClasses, useClasses } from \"./ProgressBar.styles\";\n\nexport { staticClasses as progressBarClasses };\n\nexport type HvProgressBarClasses = ExtractNames<typeof useClasses>;\n\nexport type HvProgressBarStatus = \"inProgress\" | \"completed\" | \"error\";\n\n/**\n * ProgressBar provides feedback about a process that is taking place in the application.\n */\nexport interface HvProgressBarProps extends HvBaseProps {\n /** The value of the progress bar. */\n value: number;\n /**\n * The status of the progress bar.\n *\n * inProgress is black, error is red and completed is green.\n *\n * When uncontrolled and unspecified it will default to \"inProgress\".\n */\n status?: HvProgressBarStatus;\n /** Aria Properties passed on to the progress bar. */\n labelProps?: HvTypographyProps;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvProgressBarClasses;\n /**\n * True if the text label should not be displayed.\n */\n hideLabel?: boolean;\n}\n\nexport const HvProgressBar = (props: HvProgressBarProps) => {\n const {\n className,\n classes: classesProp,\n value = 0,\n status = \"inProgress\",\n labelProps,\n hideLabel,\n ...others\n } = useDefaultProps(\"HvProgressBar\", props);\n\n const { classes, cx } = useClasses(classesProp);\n\n const clampedValue = clamp(value, 0, 100);\n\n return (\n <div\n className={cx(classes.root, classes.progress, className)}\n role=\"progressbar\"\n aria-valuemin={0}\n aria-valuemax={100}\n aria-valuenow={clampedValue}\n {...others}\n >\n <div className={classes.progressContainer}>\n {!hideLabel && (\n <HvTypography\n className={classes.progressBarLabel}\n variant=\"caption2\"\n style={{ width: `${clampedValue}%` }}\n {...labelProps}\n >\n {`${clampedValue}%`}\n </HvTypography>\n )}\n <div className={classes.progressBarContainer}>\n <div\n style={{ width: `${clampedValue}%` }}\n className={cx(classes.progressBar, {\n [classes.progressDone]: status === \"completed\",\n [classes.progressError]: status === \"error\",\n })}\n />\n </div>\n </div>\n </div>\n );\n};\n"],"names":["useDefaultProps","useClasses","clamp","jsx","jsxs","HvTypography"],"mappings":";;;;;;;;;AAyCa,MAAA,gBAAgB,CAAC,UAA8B;AACpD,QAAA;AAAA,IACJ;AAAA,IACA,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EAAA,IACDA,gBAAgB,gBAAA,iBAAiB,KAAK;AAE1C,QAAM,EAAE,SAAS,GAAG,IAAIC,8BAAW,WAAW;AAE9C,QAAM,eAAeC,eAAA,QAAM,OAAO,GAAG,GAAG;AAGtC,SAAAC,2BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,GAAG,QAAQ,MAAM,QAAQ,UAAU,SAAS;AAAA,MACvD,MAAK;AAAA,MACL,iBAAe;AAAA,MACf,iBAAe;AAAA,MACf,iBAAe;AAAA,MACd,GAAG;AAAA,MAEJ,UAACC,2BAAA,KAAA,OAAA,EAAI,WAAW,QAAQ,mBACrB,UAAA;AAAA,QAAA,CAAC,aACAD,2BAAA;AAAA,UAACE,WAAA;AAAA,UAAA;AAAA,YACC,WAAW,QAAQ;AAAA,YACnB,SAAQ;AAAA,YACR,OAAO,EAAE,OAAO,GAAG,YAAY,IAAI;AAAA,YAClC,GAAG;AAAA,YAEH,aAAG,YAAY;AAAA,UAAA;AAAA,QAClB;AAAA,QAEDF,2BAAA,IAAA,OAAA,EAAI,WAAW,QAAQ,sBACtB,UAAAA,2BAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO,EAAE,OAAO,GAAG,YAAY,IAAI;AAAA,YACnC,WAAW,GAAG,QAAQ,aAAa;AAAA,cACjC,CAAC,QAAQ,YAAY,GAAG,WAAW;AAAA,cACnC,CAAC,QAAQ,aAAa,GAAG,WAAW;AAAA,YAAA,CACrC;AAAA,UAAA;AAAA,QAAA,GAEL;AAAA,MAAA,GACF;AAAA,IAAA;AAAA,EAAA;AAGN;;;"}
1
+ {"version":3,"file":"ProgressBar.cjs","sources":["../../../src/ProgressBar/ProgressBar.tsx"],"sourcesContent":["import { useDefaultProps } from \"../hooks/useDefaultProps\";\n\nimport { HvBaseProps } from \"../types/generic\";\nimport { HvTypography, HvTypographyProps } from \"../Typography\";\n\nimport { clamp } from \"../utils/helpers\";\nimport { ExtractNames } from \"../utils/classes\";\n\nimport { staticClasses, useClasses } from \"./ProgressBar.styles\";\n\nexport { staticClasses as progressBarClasses };\n\nexport type HvProgressBarClasses = ExtractNames<typeof useClasses>;\n\nexport type HvProgressBarStatus = \"inProgress\" | \"completed\" | \"error\";\n\n/**\n * ProgressBar provides feedback about a process that is taking place in the application.\n */\nexport interface HvProgressBarProps extends HvBaseProps {\n /** The value of the progress bar. */\n value: number;\n /**\n * The status of the progress bar.\n *\n * inProgress is black, error is red and completed is green.\n *\n * When uncontrolled and unspecified it will default to \"inProgress\".\n */\n status?: HvProgressBarStatus;\n /** Aria Properties passed on to the progress bar. */\n labelProps?: HvTypographyProps;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvProgressBarClasses;\n /**\n * True if the text label should not be displayed.\n */\n hideLabel?: boolean;\n}\n\nexport const HvProgressBar = (props: HvProgressBarProps) => {\n const {\n className,\n classes: classesProp,\n value = 0,\n status = \"inProgress\",\n labelProps,\n hideLabel,\n ...others\n } = useDefaultProps(\"HvProgressBar\", props);\n\n const { classes, cx } = useClasses(classesProp);\n\n const clampedValue = clamp(value, 100);\n\n return (\n <div\n className={cx(classes.root, classes.progress, className)}\n role=\"progressbar\"\n aria-valuemin={0}\n aria-valuemax={100}\n aria-valuenow={clampedValue}\n {...others}\n >\n <div className={classes.progressContainer}>\n {!hideLabel && (\n <HvTypography\n className={classes.progressBarLabel}\n variant=\"caption2\"\n style={{ width: `${clampedValue}%` }}\n {...labelProps}\n >\n {`${clampedValue}%`}\n </HvTypography>\n )}\n <div className={classes.progressBarContainer}>\n <div\n style={{ width: `${clampedValue}%` }}\n className={cx(classes.progressBar, {\n [classes.progressDone]: status === \"completed\",\n [classes.progressError]: status === \"error\",\n })}\n />\n </div>\n </div>\n </div>\n );\n};\n"],"names":["useDefaultProps","useClasses","clamp","jsx","jsxs","HvTypography"],"mappings":";;;;;;;AAwCa,MAAA,gBAAgB,CAAC,UAA8B;AACpD,QAAA;AAAA,IACJ;AAAA,IACA,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EAAA,IACDA,gBAAgB,gBAAA,iBAAiB,KAAK;AAE1C,QAAM,EAAE,SAAS,GAAG,IAAIC,8BAAW,WAAW;AAExC,QAAA,eAAeC,QAAAA,MAAM,OAAO,GAAG;AAGnC,SAAAC,2BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,GAAG,QAAQ,MAAM,QAAQ,UAAU,SAAS;AAAA,MACvD,MAAK;AAAA,MACL,iBAAe;AAAA,MACf,iBAAe;AAAA,MACf,iBAAe;AAAA,MACd,GAAG;AAAA,MAEJ,UAACC,2BAAA,KAAA,OAAA,EAAI,WAAW,QAAQ,mBACrB,UAAA;AAAA,QAAA,CAAC,aACAD,2BAAA;AAAA,UAACE,WAAA;AAAA,UAAA;AAAA,YACC,WAAW,QAAQ;AAAA,YACnB,SAAQ;AAAA,YACR,OAAO,EAAE,OAAO,GAAG,YAAY,IAAI;AAAA,YAClC,GAAG;AAAA,YAEH,aAAG,YAAY;AAAA,UAAA;AAAA,QAClB;AAAA,QAEDF,2BAAA,IAAA,OAAA,EAAI,WAAW,QAAQ,sBACtB,UAAAA,2BAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO,EAAE,OAAO,GAAG,YAAY,IAAI;AAAA,YACnC,WAAW,GAAG,QAAQ,aAAa;AAAA,cACjC,CAAC,QAAQ,YAAY,GAAG,WAAW;AAAA,cACnC,CAAC,QAAQ,aAAa,GAAG,WAAW;AAAA,YAAA,CACrC;AAAA,UAAA;AAAA,QAAA,GAEL;AAAA,MAAA,GACF;AAAA,IAAA;AAAA,EAAA;AAGN;;;"}
@@ -2,18 +2,14 @@
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 cloneDeep = require("lodash/cloneDeep");
6
- const isEqual = require("lodash/isEqual");
7
5
  const useDefaultProps = require("../hooks/useDefaultProps.cjs");
6
+ const helpers = require("../utils/helpers.cjs");
8
7
  const Context = require("./Context.cjs");
9
8
  const index = require("./utils/index.cjs");
10
9
  const reducer = require("./utils/reducer.cjs");
11
10
  const QueryBuilder_styles = require("./QueryBuilder.styles.cjs");
12
11
  const RuleGroup = require("./RuleGroup/RuleGroup.cjs");
13
12
  const ConfirmationDialog = require("./ConfirmationDialog/ConfirmationDialog.cjs");
14
- const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
15
- const cloneDeep__default = /* @__PURE__ */ _interopDefault(cloneDeep);
16
- const isEqual__default = /* @__PURE__ */ _interopDefault(isEqual);
17
13
  const HvQueryBuilder = (props) => {
18
14
  const {
19
15
  attributes,
@@ -40,7 +36,7 @@ const HvQueryBuilder = (props) => {
40
36
  const [state, dispatchAction] = React.useReducer(
41
37
  reducer.default,
42
38
  // Deep clone is needed to make sure that the "query" prop and "initialQuery" are not mutated
43
- cloneDeep__default.default(initialQuery.current)
39
+ structuredClone(initialQuery.current)
44
40
  );
45
41
  const value = React.useMemo(
46
42
  () => ({
@@ -79,12 +75,12 @@ const HvQueryBuilder = (props) => {
79
75
  }
80
76
  }, [attributes]);
81
77
  React.useEffect(() => {
82
- if (!isEqual__default.default(state, prevState)) {
78
+ if (!helpers.isEqual(state, prevState)) {
83
79
  if (initialState) {
84
80
  setInitialState(false);
85
81
  }
86
82
  onChange?.(index.clearNodeIds(state));
87
- setPrevState(cloneDeep__default.default(state));
83
+ setPrevState(structuredClone(state));
88
84
  }
89
85
  }, [initialState, onChange, prevState, state]);
90
86
  const handleConfirm = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"QueryBuilder.cjs","sources":["../../../src/QueryBuilder/QueryBuilder.tsx"],"sourcesContent":["import { useEffect, useMemo, useReducer, useRef, useState } from \"react\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport isEqual from \"lodash/isEqual\";\n\nimport { useDefaultProps } from \"../hooks/useDefaultProps\";\nimport { ExtractNames } from \"../utils/classes\";\n\nimport { ConfirmationDialog } from \"./ConfirmationDialog\";\nimport {\n HvQueryBuilderProvider,\n defaultCombinators,\n defaultLabels,\n defaultOperators,\n} from \"./Context\";\nimport { RuleGroup } from \"./RuleGroup\";\nimport {\n AskAction,\n HvQueryBuilderAttribute,\n HvQueryBuilderQuery,\n HvQueryBuilderLabels,\n HvQueryBuilderQueryCombinator,\n HvQueryBuilderQueryOperator,\n HvQueryBuilderChangedQuery,\n HvQueryBuilderRenderers,\n defaultRendererKey,\n} from \"./types\";\nimport { clearNodeIds, emptyGroup } from \"./utils\";\nimport reducer from \"./utils/reducer\";\nimport { useClasses, staticClasses } from \"./QueryBuilder.styles\";\n\nexport { staticClasses as queryBuilderClasses };\n\nexport type HvQueryBuilderClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvQueryBuilderProps {\n /** The query attribute types. */\n attributes?: Record<string, HvQueryBuilderAttribute>;\n /** The query rules operators by attribute type and combinator. */\n operators?: Record<string, HvQueryBuilderQueryOperator[]>;\n /** The query combinators operands. */\n combinators?: HvQueryBuilderQueryCombinator[];\n /** The initial query representation. */\n query?: HvQueryBuilderQuery;\n /** Callback fired when query changes. */\n onChange?: (value: HvQueryBuilderChangedQuery) => void;\n /** Max depth of nested query groups. */\n maxDepth?: number;\n /** Object containing all the labels. */\n labels?: HvQueryBuilderLabels;\n /** Whether the query builder is in read-only mode. */\n readOnly?: boolean;\n /**\n * Operators that should use the empty value renderer when selected.\n *\n * When one of the listed operators is selected, the rule value is reset and an empty component is rendered.\n * This property takes priority over `renderers`.\n *\n * @default [\"Empty\", \"IsNotEmpty\"]\n * */\n emptyRenderer?: string[];\n /** Custom renderers for the rules' value. */\n renderers?: HvQueryBuilderRenderers;\n /** Whether to opt-out of the confirmation dialogs shown before removing rules and rule groups. @default false. */\n disableConfirmation?: boolean;\n /** A Jss Object used to override or extend the styles applied. */\n classes?: HvQueryBuilderClasses;\n}\n\n// TODO - v6\n// - uncontrolled vs controlled: users should be able to control the state\n// - \"query\" renamed to \"initialQuery\" and \"query\" used to control the state\n// - \"query\" provided with ids by the user but removed through \"onChange\"\n// - \"range\", \"Empty\", and \"IsNotEmpty\" operators with internal/built-in logic\n\n/**\n * This component allows you to create conditions and group them using logical operators.\n * It outputs a structured set of rules which can be easily parsed to create SQL/NoSQL/whatever queries.\n *\n * Take a look at the [usage page](https://lumada-design.github.io/uikit/master/?path=/docs/widgets-query-builder-usage--docs) to learn more about this component.\n */\nexport const HvQueryBuilder = (props: HvQueryBuilderProps) => {\n const {\n attributes,\n renderers,\n query,\n onChange,\n disableConfirmation = false,\n operators = defaultOperators,\n combinators = defaultCombinators,\n maxDepth = 1,\n labels = defaultLabels,\n readOnly = false,\n emptyRenderer = [\"Empty\", \"IsNotEmpty\"],\n classes: classesProp,\n } = useDefaultProps(\"HvQueryBuilder\", props);\n\n if (\n import.meta.env.DEV &&\n [\n Object.values(attributes || {}).map(({ type }) => type),\n Object.values(operators || {})\n .map((ops) => ops.map(({ operator }) => operator))\n .flat(),\n ]\n .flat()\n ?.find((key) => key === defaultRendererKey)\n ) {\n // eslint-disable-next-line no-console\n console.error(\n `${defaultRendererKey} is a restricted key and shouldn't be used as an attribute or operator type. Update the key to avoid unexpected behaviors.`\n );\n }\n\n const { classes } = useClasses(classesProp);\n\n const currentAttributes = useRef<HvQueryBuilderProps[\"attributes\"] | null>(\n null\n );\n\n const initialQuery = useRef(query ?? emptyGroup());\n\n const [pendingAction, setPendingAction] = useState<AskAction>();\n const [prevState, setPrevState] = useState(initialQuery.current);\n const [initialState, setInitialState] = useState(true);\n\n const [state, dispatchAction] = useReducer(\n reducer,\n // Deep clone is needed to make sure that the \"query\" prop and \"initialQuery\" are not mutated\n cloneDeep(initialQuery.current)\n );\n\n const value = useMemo(\n () => ({\n dispatchAction,\n askAction: setPendingAction,\n attributes,\n operators,\n combinators,\n maxDepth,\n labels,\n initialTouched: initialState,\n readOnly,\n renderers,\n disableConfirmation,\n emptyRenderer,\n }),\n [\n attributes,\n operators,\n combinators,\n maxDepth,\n labels,\n readOnly,\n initialState,\n renderers,\n disableConfirmation,\n emptyRenderer,\n ]\n );\n\n // Keep track of attributes\n useEffect(() => {\n if (currentAttributes.current == null) {\n // First run, nothing to do\n currentAttributes.current = attributes;\n } else if (currentAttributes.current !== attributes) {\n // Attributes changed. The existing query is almost certainly invalid, so reset it\n currentAttributes.current = attributes;\n dispatchAction({ type: \"reset-query\" });\n }\n }, [attributes]);\n\n // Propagate the change if the query is modified\n useEffect(() => {\n if (!isEqual(state, prevState)) {\n if (initialState) {\n setInitialState(false);\n }\n\n onChange?.(clearNodeIds(state) as HvQueryBuilderChangedQuery);\n setPrevState(cloneDeep(state));\n }\n }, [initialState, onChange, prevState, state]);\n\n const handleConfirm = () => {\n if (pendingAction) {\n setPendingAction(undefined);\n pendingAction.actions.forEach((action) => dispatchAction(action));\n }\n };\n\n const handleCancel = () => {\n setPendingAction(undefined);\n };\n\n return (\n <HvQueryBuilderProvider value={value}>\n <RuleGroup\n level={0}\n id={state.id}\n combinator={state.combinator}\n rules={state.rules}\n classes={classes}\n />\n <ConfirmationDialog\n isOpen={pendingAction != null}\n onConfirm={handleConfirm}\n onCancel={handleCancel}\n title={pendingAction?.dialog.dialogTitle || \"\"}\n message={pendingAction?.dialog.dialogMessage || \"\"}\n confirmButtonLabel={pendingAction?.dialog.dialogConfirm || \"\"}\n cancelButtonLabel={pendingAction?.dialog.dialogCancel || \"\"}\n closeButtonTooltip={pendingAction?.dialog.dialogCloseTooltip || \"\"}\n />\n </HvQueryBuilderProvider>\n );\n};\n"],"names":["defaultOperators","defaultCombinators","defaultLabels","useDefaultProps","useClasses","useRef","emptyGroup","useState","useReducer","reducer","cloneDeep","useMemo","useEffect","isEqual","clearNodeIds","jsxs","HvQueryBuilderProvider","jsx","RuleGroup","ConfirmationDialog"],"mappings":"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"}
1
+ {"version":3,"file":"QueryBuilder.cjs","sources":["../../../src/QueryBuilder/QueryBuilder.tsx"],"sourcesContent":["import { useEffect, useMemo, useReducer, useRef, useState } from \"react\";\n\nimport { useDefaultProps } from \"../hooks/useDefaultProps\";\nimport { ExtractNames } from \"../utils/classes\";\nimport { isEqual } from \"../utils/helpers\";\n\nimport { ConfirmationDialog } from \"./ConfirmationDialog\";\nimport {\n HvQueryBuilderProvider,\n defaultCombinators,\n defaultLabels,\n defaultOperators,\n} from \"./Context\";\nimport { RuleGroup } from \"./RuleGroup\";\nimport {\n AskAction,\n HvQueryBuilderAttribute,\n HvQueryBuilderQuery,\n HvQueryBuilderLabels,\n HvQueryBuilderQueryCombinator,\n HvQueryBuilderQueryOperator,\n HvQueryBuilderChangedQuery,\n HvQueryBuilderRenderers,\n defaultRendererKey,\n} from \"./types\";\nimport { clearNodeIds, emptyGroup } from \"./utils\";\nimport reducer from \"./utils/reducer\";\nimport { useClasses, staticClasses } from \"./QueryBuilder.styles\";\n\nexport { staticClasses as queryBuilderClasses };\n\nexport type HvQueryBuilderClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvQueryBuilderProps {\n /** The query attribute types. */\n attributes?: Record<string, HvQueryBuilderAttribute>;\n /** The query rules operators by attribute type and combinator. */\n operators?: Record<string, HvQueryBuilderQueryOperator[]>;\n /** The query combinators operands. */\n combinators?: HvQueryBuilderQueryCombinator[];\n /** The initial query representation. */\n query?: HvQueryBuilderQuery;\n /** Callback fired when query changes. */\n onChange?: (value: HvQueryBuilderChangedQuery) => void;\n /** Max depth of nested query groups. */\n maxDepth?: number;\n /** Object containing all the labels. */\n labels?: HvQueryBuilderLabels;\n /** Whether the query builder is in read-only mode. */\n readOnly?: boolean;\n /**\n * Operators that should use the empty value renderer when selected.\n *\n * When one of the listed operators is selected, the rule value is reset and an empty component is rendered.\n * This property takes priority over `renderers`.\n *\n * @default [\"Empty\", \"IsNotEmpty\"]\n * */\n emptyRenderer?: string[];\n /** Custom renderers for the rules' value. */\n renderers?: HvQueryBuilderRenderers;\n /** Whether to opt-out of the confirmation dialogs shown before removing rules and rule groups. @default false. */\n disableConfirmation?: boolean;\n /** A Jss Object used to override or extend the styles applied. */\n classes?: HvQueryBuilderClasses;\n}\n\n// TODO - v6\n// - uncontrolled vs controlled: users should be able to control the state\n// - \"query\" renamed to \"initialQuery\" and \"query\" used to control the state\n// - \"query\" provided with ids by the user but removed through \"onChange\"\n// - \"range\", \"Empty\", and \"IsNotEmpty\" operators with internal/built-in logic\n\n/**\n * This component allows you to create conditions and group them using logical operators.\n * It outputs a structured set of rules which can be easily parsed to create SQL/NoSQL/whatever queries.\n *\n * Take a look at the [usage page](https://lumada-design.github.io/uikit/master/?path=/docs/widgets-query-builder-usage--docs) to learn more about this component.\n */\nexport const HvQueryBuilder = (props: HvQueryBuilderProps) => {\n const {\n attributes,\n renderers,\n query,\n onChange,\n disableConfirmation = false,\n operators = defaultOperators,\n combinators = defaultCombinators,\n maxDepth = 1,\n labels = defaultLabels,\n readOnly = false,\n emptyRenderer = [\"Empty\", \"IsNotEmpty\"],\n classes: classesProp,\n } = useDefaultProps(\"HvQueryBuilder\", props);\n\n if (\n import.meta.env.DEV &&\n [\n Object.values(attributes || {}).map(({ type }) => type),\n Object.values(operators || {})\n .map((ops) => ops.map(({ operator }) => operator))\n .flat(),\n ]\n .flat()\n ?.find((key) => key === defaultRendererKey)\n ) {\n // eslint-disable-next-line no-console\n console.error(\n `${defaultRendererKey} is a restricted key and shouldn't be used as an attribute or operator type. Update the key to avoid unexpected behaviors.`\n );\n }\n\n const { classes } = useClasses(classesProp);\n\n const currentAttributes = useRef<HvQueryBuilderProps[\"attributes\"] | null>(\n null\n );\n\n const initialQuery = useRef(query ?? emptyGroup());\n\n const [pendingAction, setPendingAction] = useState<AskAction>();\n const [prevState, setPrevState] = useState(initialQuery.current);\n const [initialState, setInitialState] = useState(true);\n\n const [state, dispatchAction] = useReducer(\n reducer,\n // Deep clone is needed to make sure that the \"query\" prop and \"initialQuery\" are not mutated\n structuredClone(initialQuery.current)\n );\n\n const value = useMemo(\n () => ({\n dispatchAction,\n askAction: setPendingAction,\n attributes,\n operators,\n combinators,\n maxDepth,\n labels,\n initialTouched: initialState,\n readOnly,\n renderers,\n disableConfirmation,\n emptyRenderer,\n }),\n [\n attributes,\n operators,\n combinators,\n maxDepth,\n labels,\n readOnly,\n initialState,\n renderers,\n disableConfirmation,\n emptyRenderer,\n ]\n );\n\n // Keep track of attributes\n useEffect(() => {\n if (currentAttributes.current == null) {\n // First run, nothing to do\n currentAttributes.current = attributes;\n } else if (currentAttributes.current !== attributes) {\n // Attributes changed. The existing query is almost certainly invalid, so reset it\n currentAttributes.current = attributes;\n dispatchAction({ type: \"reset-query\" });\n }\n }, [attributes]);\n\n // Propagate the change if the query is modified\n useEffect(() => {\n if (!isEqual(state, prevState)) {\n if (initialState) {\n setInitialState(false);\n }\n\n onChange?.(clearNodeIds(state) as HvQueryBuilderChangedQuery);\n setPrevState(structuredClone(state));\n }\n }, [initialState, onChange, prevState, state]);\n\n const handleConfirm = () => {\n if (pendingAction) {\n setPendingAction(undefined);\n pendingAction.actions.forEach((action) => dispatchAction(action));\n }\n };\n\n const handleCancel = () => {\n setPendingAction(undefined);\n };\n\n return (\n <HvQueryBuilderProvider value={value}>\n <RuleGroup\n level={0}\n id={state.id}\n combinator={state.combinator}\n rules={state.rules}\n classes={classes}\n />\n <ConfirmationDialog\n isOpen={pendingAction != null}\n onConfirm={handleConfirm}\n onCancel={handleCancel}\n title={pendingAction?.dialog.dialogTitle || \"\"}\n message={pendingAction?.dialog.dialogMessage || \"\"}\n confirmButtonLabel={pendingAction?.dialog.dialogConfirm || \"\"}\n cancelButtonLabel={pendingAction?.dialog.dialogCancel || \"\"}\n closeButtonTooltip={pendingAction?.dialog.dialogCloseTooltip || \"\"}\n />\n </HvQueryBuilderProvider>\n );\n};\n"],"names":["defaultOperators","defaultCombinators","defaultLabels","useDefaultProps","useClasses","useRef","emptyGroup","useState","useReducer","reducer","useMemo","useEffect","isEqual","clearNodeIds","jsxs","HvQueryBuilderProvider","jsx","RuleGroup","ConfirmationDialog"],"mappings":"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"}
@@ -2,10 +2,10 @@
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 uniqueId = require("lodash/uniqueId");
6
5
  const dayjs = require("dayjs");
7
6
  const styles = require("@mui/material/styles");
8
7
  const useMediaQuery = require("@mui/material/useMediaQuery");
8
+ const helpers = require("../../../../utils/helpers.cjs");
9
9
  const Context = require("../../../Context.cjs");
10
10
  const utils = require("./utils.cjs");
11
11
  const DateTimeValue_styles = require("./DateTimeValue.styles.cjs");
@@ -13,7 +13,6 @@ const DatePicker = require("../../../../DatePicker/DatePicker.cjs");
13
13
  const TimePicker = require("../../../../TimePicker/TimePicker.cjs");
14
14
  const WarningText = require("../../../../Forms/WarningText/WarningText.cjs");
15
15
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
16
- const uniqueId__default = /* @__PURE__ */ _interopDefault(uniqueId);
17
16
  const dayjs__default = /* @__PURE__ */ _interopDefault(dayjs);
18
17
  const useMediaQuery__default = /* @__PURE__ */ _interopDefault(useMediaQuery);
19
18
  function valueIsRange(operator) {
@@ -30,7 +29,7 @@ const DateTimeValue = ({
30
29
  const isMdDown = useMediaQuery__default.default(theme.breakpoints.down("md"));
31
30
  const isRange = valueIsRange(operator);
32
31
  const { labels, dispatchAction, readOnly } = Context.useQueryBuilderContext();
33
- const elementId = uniqueId__default.default(`datetime${id}`);
32
+ const elementId = helpers.uniqueId(`datetime${id}`);
34
33
  const [touchedDate, setTouchedDate] = React.useState(initialTouched);
35
34
  const [touchedTime, setTouchedTime] = React.useState(initialTouched);
36
35
  const [touchedEndDate, setTouchedEndDate] = React.useState(initialTouched);
@@ -1 +1 @@
1
- {"version":3,"file":"DateTimeValue.cjs","sources":["../../../../../../src/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.tsx"],"sourcesContent":["import { memo, useCallback, useMemo, useState } from \"react\";\nimport uniqueId from \"lodash/uniqueId\";\nimport dayjs from \"dayjs\";\nimport { useTheme } from \"@mui/material/styles\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\n\nimport { HvWarningText } from \"../../../../Forms\";\nimport { HvTimePicker, HvTimePickerValue } from \"../../../../TimePicker\";\nimport { HvDatePicker } from \"../../../../DatePicker\";\n\nimport { useQueryBuilderContext } from \"../../../Context\";\nimport { padTime, parseDate, parseTime } from \"./utils\";\nimport { useClasses } from \"./DateTimeValue.styles\";\n\nfunction valueIsRange(operator?: string) {\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":["useClasses","useTheme","useMediaQuery","useQueryBuilderContext","uniqueId","useState","useCallback","dayjs","padTime","useMemo","parseDate","parseTime","jsxs","jsx","HvDatePicker","HvTimePicker","HvWarningText","memo"],"mappings":"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"}
1
+ {"version":3,"file":"DateTimeValue.cjs","sources":["../../../../../../src/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.tsx"],"sourcesContent":["import { memo, useCallback, useMemo, useState } from \"react\";\nimport dayjs from \"dayjs\";\nimport { useTheme } from \"@mui/material/styles\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\n\nimport { HvWarningText } from \"../../../../Forms\";\nimport { HvTimePicker, HvTimePickerValue } from \"../../../../TimePicker\";\nimport { HvDatePicker } from \"../../../../DatePicker\";\nimport { uniqueId } from \"../../../../utils/helpers\";\n\nimport { useQueryBuilderContext } from \"../../../Context\";\nimport { padTime, parseDate, parseTime } from \"./utils\";\nimport { useClasses } from \"./DateTimeValue.styles\";\n\nfunction valueIsRange(operator?: string) {\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":["useClasses","useTheme","useMediaQuery","useQueryBuilderContext","uniqueId","useState","useCallback","dayjs","padTime","useMemo","parseDate","parseTime","jsxs","jsx","HvDatePicker","HvTimePicker","HvWarningText","memo"],"mappings":"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"}
@@ -2,16 +2,13 @@
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 uniqueId = require("lodash/uniqueId");
6
- const isEmpty = require("lodash/isEmpty");
7
5
  const styles = require("@mui/material/styles");
8
6
  const useMediaQuery = require("@mui/material/useMediaQuery");
7
+ const helpers = require("../../../../utils/helpers.cjs");
9
8
  const Context = require("../../../Context.cjs");
10
9
  const Numeric_styles = require("./Numeric.styles.cjs");
11
10
  const Input = require("../../../../Input/Input.cjs");
12
11
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
13
- const uniqueId__default = /* @__PURE__ */ _interopDefault(uniqueId);
14
- const isEmpty__default = /* @__PURE__ */ _interopDefault(isEmpty);
15
12
  const useMediaQuery__default = /* @__PURE__ */ _interopDefault(useMediaQuery);
16
13
  const NumericValue = ({
17
14
  id,
@@ -26,7 +23,7 @@ const NumericValue = ({
26
23
  const isMdDown = useMediaQuery__default.default(theme.breakpoints.down("md"));
27
24
  const onSingleValueChange = React.useCallback(
28
25
  (_, data) => {
29
- const numericData = isEmpty__default.default(data) ? null : Number(data);
26
+ const numericData = !data ? null : Number(data);
30
27
  dispatchAction({
31
28
  type: "set-value",
32
29
  id,
@@ -37,7 +34,7 @@ const NumericValue = ({
37
34
  );
38
35
  const onRangeValueChange = React.useCallback(
39
36
  (_, data, from = true) => {
40
- const numericData = isEmpty__default.default(data) ? null : Number(data);
37
+ const numericData = !data ? null : Number(data);
41
38
  const currentValue = value;
42
39
  const numericRange = {
43
40
  from: currentValue?.from,
@@ -58,7 +55,7 @@ const NumericValue = ({
58
55
  );
59
56
  const [touchedNumeric, setTouchedNumeric] = React.useState(initialTouched);
60
57
  const [touchedNumericTo, setTouchedNumericTo] = React.useState(initialTouched);
61
- const elementId = uniqueId__default.default("numeric");
58
+ const elementId = helpers.uniqueId("numeric");
62
59
  let numericValidation = null;
63
60
  let rightValidation = null;
64
61
  if (touchedNumeric || touchedNumericTo) {
@@ -1 +1 @@
1
- {"version":3,"file":"NumericValue.cjs","sources":["../../../../../../src/QueryBuilder/Rule/Value/NumericValue/NumericValue.tsx"],"sourcesContent":["import { memo, useCallback, useState } from \"react\";\nimport uniqueId from \"lodash/uniqueId\";\nimport isEmpty from \"lodash/isEmpty\";\nimport { useTheme } from \"@mui/material/styles\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\n\nimport { HvInput } from \"../../../../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":["useClasses","useQueryBuilderContext","useTheme","useMediaQuery","useCallback","isEmpty","useState","uniqueId","jsxs","jsx","HvInput","memo"],"mappings":"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"}
1
+ {"version":3,"file":"NumericValue.cjs","sources":["../../../../../../src/QueryBuilder/Rule/Value/NumericValue/NumericValue.tsx"],"sourcesContent":["import { memo, useCallback, useState } from \"react\";\nimport { useTheme } from \"@mui/material/styles\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\n\nimport { HvInput } from \"../../../../Input\";\nimport { uniqueId } from \"../../../../utils/helpers\";\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 = !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 = !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":["useClasses","useQueryBuilderContext","useTheme","useMediaQuery","useCallback","useState","uniqueId","jsxs","jsx","HvInput","memo"],"mappings":"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"}
@@ -4,14 +4,13 @@ const jsxRuntime = require("@emotion/react/jsx-runtime");
4
4
  const React = require("react");
5
5
  const Slide = require("@mui/material/Slide");
6
6
  const Snackbar = require("@mui/material/Snackbar");
7
- const capitalize = require("lodash/capitalize");
7
+ const helpers = require("../utils/helpers.cjs");
8
8
  const setId = require("../utils/setId.cjs");
9
9
  const Snackbar_styles = require("./Snackbar.styles.cjs");
10
10
  const SnackbarContent = require("./SnackbarContent/SnackbarContent.cjs");
11
11
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
12
12
  const Slide__default = /* @__PURE__ */ _interopDefault(Slide);
13
13
  const Snackbar__default = /* @__PURE__ */ _interopDefault(Snackbar);
14
- const capitalize__default = /* @__PURE__ */ _interopDefault(capitalize);
15
14
  const HvSnackbar = ({
16
15
  classes: classesProp,
17
16
  className,
@@ -58,7 +57,7 @@ const HvSnackbar = ({
58
57
  return /* @__PURE__ */ jsxRuntime.jsx(
59
58
  Snackbar__default.default,
60
59
  {
61
- style: anchorOriginOffset[`anchorOrigin${capitalize__default.default(anchorOrigin.vertical)}`],
60
+ style: anchorOriginOffset[`anchorOrigin${helpers.capitalize(anchorOrigin.vertical)}`],
62
61
  classes,
63
62
  className,
64
63
  id,
@@ -1 +1 @@
1
- {"version":3,"file":"Snackbar.cjs","sources":["../../../src/Snackbar/Snackbar.tsx"],"sourcesContent":["import { SyntheticEvent, useCallback } from \"react\";\nimport Slide, { SlideProps } from \"@mui/material/Slide\";\nimport MuiSnackbar, {\n SnackbarCloseReason,\n SnackbarOrigin,\n SnackbarProps as MuiSnackbarProps,\n} from \"@mui/material/Snackbar\";\nimport capitalize from \"lodash/capitalize\";\n\nimport { ExtractNames } from \"../utils/classes\";\nimport { setId } from \"../utils/setId\";\nimport { HvActionGeneric, HvActionsGenericProps } from \"../ActionsGeneric\";\nimport { HvSnackbarContentProps, HvSnackbarContent } from \"./SnackbarContent\";\nimport { staticClasses, useClasses } from \"./Snackbar.styles\";\nimport { HvSnackbarVariant } from \"./types\";\n\nexport { staticClasses as snackbarClasses };\n\nexport type HvSnackbarClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvSnackbarProps\n extends Omit<MuiSnackbarProps, \"action\" | \"classes\" | \"children\"> {\n /** If true, Snackbar is open. */\n open?: boolean;\n /**\n * Callback fired when the component requests to be closed.\n * Typically onClose is used to set state in the parent component, which is used to control the Snackbar open prop.\n * The reason parameter can optionally be used to control the response to onClose, for example ignoring click away.\n * */\n onClose?:\n | ((\n event: Event | SyntheticEvent<any, Event>,\n reason: SnackbarCloseReason\n ) => void)\n | undefined;\n /** The message to display. */\n label?: React.ReactNode;\n /**\n * The anchor of the Snackbar. vertical: \"top\", \"bottom\" | horizontal: \"left\", \"center\", \"right\".\n * It defines where the snackbar will end his animation */\n anchorOrigin?: SnackbarOrigin;\n /** The number of milliseconds to wait before automatically calling the onClose function. onClose should then set the state of the open prop to hide the Snackbar */\n autoHideDuration?: number;\n /** Variant of the snackbar. */\n variant?: HvSnackbarVariant;\n /** Custom icon to replace the variant default. */\n customIcon?: React.ReactNode;\n /** Controls if the associated icon to the variant should be shown. */\n showIcon?: boolean;\n /** Action to display. */\n action?: React.ReactNode | HvActionGeneric;\n /**\n * The callback function called when an action is triggered, receiving `action` as parameter.\n *\n * @deprecated Use `onAction` instead.\n * */\n actionCallback?: HvActionsGenericProps[\"actionsCallback\"];\n /** The callback function called when an action is triggered, receiving `action` as parameter. */\n onAction?: HvActionsGenericProps[\"onAction\"];\n /** Duration of transition in milliseconds. */\n transitionDuration?: number;\n /** Direction of slide transition. */\n transitionDirection?: \"up\" | \"down\" | \"left\" | \"right\";\n /** The container the snackbar should slide from. */\n container?: SlideProps[\"container\"];\n /** Custom offset from top/bottom of the page, in px. */\n offset?: number;\n /** Others applied to the content of the snackbar. */\n snackbarContentProps?: HvSnackbarContentProps;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvSnackbarClasses;\n /** @ignore */\n ref?: MuiSnackbarProps[\"ref\"];\n}\n\n/**\n * A Snackbar provides brief messages about app processes.\n * It is dismissed automatically after a given interval.\n *\n * Snackbar can be built with two different components.\n * One is the HvSnackbar, which wraps all the positioning, transition, auto hide, etc.\n * The other is the HvSnackbarContent, which allows a finer control and customization of the content of the Snackbar.\n */\nexport const HvSnackbar = ({\n classes: classesProp,\n className,\n id,\n open = false,\n onClose,\n label = \"\",\n anchorOrigin = { vertical: \"top\", horizontal: \"right\" },\n autoHideDuration = 5000,\n variant = \"default\",\n showIcon = false,\n customIcon = null,\n action = null,\n actionCallback, // TODO - remove in v6\n onAction,\n transitionDuration = 300,\n transitionDirection = \"left\",\n container,\n offset = 60,\n snackbarContentProps,\n ...others\n}: HvSnackbarProps) => {\n const { classes } = useClasses(classesProp);\n\n const anchorOriginOffset = {\n anchorOriginTop: {\n top: `${offset}px`,\n },\n anchorOriginBottom: {\n bottom: `${offset}px`,\n },\n };\n\n const SlideTransition = useCallback<\n NonNullable<MuiSnackbarProps[\"TransitionComponent\"]>\n >(\n (properties) => (\n <Slide\n {...properties}\n container={container}\n direction={transitionDirection}\n />\n ),\n [container, transitionDirection]\n );\n\n return (\n <MuiSnackbar\n style={\n anchorOriginOffset[`anchorOrigin${capitalize(anchorOrigin.vertical)}`]\n }\n classes={classes}\n className={className}\n id={id}\n anchorOrigin={anchorOrigin}\n open={open}\n onClose={onClose}\n autoHideDuration={autoHideDuration}\n transitionDuration={transitionDuration}\n TransitionComponent={SlideTransition}\n {...others}\n >\n <HvSnackbarContent\n id={setId(id, \"content\")}\n label={label}\n variant={variant}\n customIcon={customIcon}\n showIcon={showIcon}\n action={action}\n actionCallback={actionCallback}\n onAction={onAction}\n {...snackbarContentProps}\n />\n </MuiSnackbar>\n );\n};\n"],"names":["useClasses","useCallback","jsx","Slide","MuiSnackbar","capitalize","HvSnackbarContent","setId"],"mappings":";;;;;;;;;;;;;;AAmFO,MAAM,aAAa,CAAC;AAAA,EACzB,SAAS;AAAA,EACT;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP;AAAA,EACA,QAAQ;AAAA,EACR,eAAe,EAAE,UAAU,OAAO,YAAY,QAAQ;AAAA,EACtD,mBAAmB;AAAA,EACnB,UAAU;AAAA,EACV,WAAW;AAAA,EACX,aAAa;AAAA,EACb,SAAS;AAAA,EACT;AAAA;AAAA,EACA;AAAA,EACA,qBAAqB;AAAA,EACrB,sBAAsB;AAAA,EACtB;AAAA,EACA,SAAS;AAAA,EACT;AAAA,EACA,GAAG;AACL,MAAuB;AACrB,QAAM,EAAE,QAAA,IAAYA,gBAAA,WAAW,WAAW;AAE1C,QAAM,qBAAqB;AAAA,IACzB,iBAAiB;AAAA,MACf,KAAK,GAAG,MAAM;AAAA,IAChB;AAAA,IACA,oBAAoB;AAAA,MAClB,QAAQ,GAAG,MAAM;AAAA,IACnB;AAAA,EAAA;AAGF,QAAM,kBAAkBC,MAAA;AAAA,IAGtB,CAAC,eACCC,2BAAA;AAAA,MAACC,eAAA;AAAA,MAAA;AAAA,QACE,GAAG;AAAA,QACJ;AAAA,QACA,WAAW;AAAA,MAAA;AAAA,IACb;AAAA,IAEF,CAAC,WAAW,mBAAmB;AAAA,EAAA;AAI/B,SAAAD,2BAAA;AAAA,IAACE,kBAAA;AAAA,IAAA;AAAA,MACC,OACE,mBAAmB,eAAeC,4BAAW,aAAa,QAAQ,CAAC,EAAE;AAAA,MAEvE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,qBAAqB;AAAA,MACpB,GAAG;AAAA,MAEJ,UAAAH,2BAAA;AAAA,QAACI,gBAAA;AAAA,QAAA;AAAA,UACC,IAAIC,MAAAA,MAAM,IAAI,SAAS;AAAA,UACvB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACC,GAAG;AAAA,QAAA;AAAA,MACN;AAAA,IAAA;AAAA,EAAA;AAGN;;;"}
1
+ {"version":3,"file":"Snackbar.cjs","sources":["../../../src/Snackbar/Snackbar.tsx"],"sourcesContent":["import { SyntheticEvent, useCallback } from \"react\";\nimport Slide, { SlideProps } from \"@mui/material/Slide\";\nimport MuiSnackbar, {\n SnackbarCloseReason,\n SnackbarOrigin,\n SnackbarProps as MuiSnackbarProps,\n} from \"@mui/material/Snackbar\";\n\nimport { capitalize } from \"../utils/helpers\";\nimport { ExtractNames } from \"../utils/classes\";\nimport { setId } from \"../utils/setId\";\nimport { HvActionGeneric, HvActionsGenericProps } from \"../ActionsGeneric\";\nimport { HvSnackbarContentProps, HvSnackbarContent } from \"./SnackbarContent\";\nimport { staticClasses, useClasses } from \"./Snackbar.styles\";\nimport { HvSnackbarVariant } from \"./types\";\n\nexport { staticClasses as snackbarClasses };\n\nexport type HvSnackbarClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvSnackbarProps\n extends Omit<MuiSnackbarProps, \"action\" | \"classes\" | \"children\"> {\n /** If true, Snackbar is open. */\n open?: boolean;\n /**\n * Callback fired when the component requests to be closed.\n * Typically onClose is used to set state in the parent component, which is used to control the Snackbar open prop.\n * The reason parameter can optionally be used to control the response to onClose, for example ignoring click away.\n * */\n onClose?:\n | ((\n event: Event | SyntheticEvent<any, Event>,\n reason: SnackbarCloseReason\n ) => void)\n | undefined;\n /** The message to display. */\n label?: React.ReactNode;\n /**\n * The anchor of the Snackbar. vertical: \"top\", \"bottom\" | horizontal: \"left\", \"center\", \"right\".\n * It defines where the snackbar will end his animation */\n anchorOrigin?: SnackbarOrigin;\n /** The number of milliseconds to wait before automatically calling the onClose function. onClose should then set the state of the open prop to hide the Snackbar */\n autoHideDuration?: number;\n /** Variant of the snackbar. */\n variant?: HvSnackbarVariant;\n /** Custom icon to replace the variant default. */\n customIcon?: React.ReactNode;\n /** Controls if the associated icon to the variant should be shown. */\n showIcon?: boolean;\n /** Action to display. */\n action?: React.ReactNode | HvActionGeneric;\n /**\n * The callback function called when an action is triggered, receiving `action` as parameter.\n *\n * @deprecated Use `onAction` instead.\n * */\n actionCallback?: HvActionsGenericProps[\"actionsCallback\"];\n /** The callback function called when an action is triggered, receiving `action` as parameter. */\n onAction?: HvActionsGenericProps[\"onAction\"];\n /** Duration of transition in milliseconds. */\n transitionDuration?: number;\n /** Direction of slide transition. */\n transitionDirection?: \"up\" | \"down\" | \"left\" | \"right\";\n /** The container the snackbar should slide from. */\n container?: SlideProps[\"container\"];\n /** Custom offset from top/bottom of the page, in px. */\n offset?: number;\n /** Others applied to the content of the snackbar. */\n snackbarContentProps?: HvSnackbarContentProps;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvSnackbarClasses;\n /** @ignore */\n ref?: MuiSnackbarProps[\"ref\"];\n}\n\n/**\n * A Snackbar provides brief messages about app processes.\n * It is dismissed automatically after a given interval.\n *\n * Snackbar can be built with two different components.\n * One is the HvSnackbar, which wraps all the positioning, transition, auto hide, etc.\n * The other is the HvSnackbarContent, which allows a finer control and customization of the content of the Snackbar.\n */\nexport const HvSnackbar = ({\n classes: classesProp,\n className,\n id,\n open = false,\n onClose,\n label = \"\",\n anchorOrigin = { vertical: \"top\", horizontal: \"right\" },\n autoHideDuration = 5000,\n variant = \"default\",\n showIcon = false,\n customIcon = null,\n action = null,\n actionCallback, // TODO - remove in v6\n onAction,\n transitionDuration = 300,\n transitionDirection = \"left\",\n container,\n offset = 60,\n snackbarContentProps,\n ...others\n}: HvSnackbarProps) => {\n const { classes } = useClasses(classesProp);\n\n const anchorOriginOffset = {\n anchorOriginTop: {\n top: `${offset}px`,\n },\n anchorOriginBottom: {\n bottom: `${offset}px`,\n },\n };\n\n const SlideTransition = useCallback<\n NonNullable<MuiSnackbarProps[\"TransitionComponent\"]>\n >(\n (properties) => (\n <Slide\n {...properties}\n container={container}\n direction={transitionDirection}\n />\n ),\n [container, transitionDirection]\n );\n\n return (\n <MuiSnackbar\n style={\n anchorOriginOffset[`anchorOrigin${capitalize(anchorOrigin.vertical)}`]\n }\n classes={classes}\n className={className}\n id={id}\n anchorOrigin={anchorOrigin}\n open={open}\n onClose={onClose}\n autoHideDuration={autoHideDuration}\n transitionDuration={transitionDuration}\n TransitionComponent={SlideTransition}\n {...others}\n >\n <HvSnackbarContent\n id={setId(id, \"content\")}\n label={label}\n variant={variant}\n customIcon={customIcon}\n showIcon={showIcon}\n action={action}\n actionCallback={actionCallback}\n onAction={onAction}\n {...snackbarContentProps}\n />\n </MuiSnackbar>\n );\n};\n"],"names":["useClasses","useCallback","jsx","Slide","MuiSnackbar","capitalize","HvSnackbarContent","setId"],"mappings":";;;;;;;;;;;;;AAmFO,MAAM,aAAa,CAAC;AAAA,EACzB,SAAS;AAAA,EACT;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP;AAAA,EACA,QAAQ;AAAA,EACR,eAAe,EAAE,UAAU,OAAO,YAAY,QAAQ;AAAA,EACtD,mBAAmB;AAAA,EACnB,UAAU;AAAA,EACV,WAAW;AAAA,EACX,aAAa;AAAA,EACb,SAAS;AAAA,EACT;AAAA;AAAA,EACA;AAAA,EACA,qBAAqB;AAAA,EACrB,sBAAsB;AAAA,EACtB;AAAA,EACA,SAAS;AAAA,EACT;AAAA,EACA,GAAG;AACL,MAAuB;AACrB,QAAM,EAAE,QAAA,IAAYA,gBAAA,WAAW,WAAW;AAE1C,QAAM,qBAAqB;AAAA,IACzB,iBAAiB;AAAA,MACf,KAAK,GAAG,MAAM;AAAA,IAChB;AAAA,IACA,oBAAoB;AAAA,MAClB,QAAQ,GAAG,MAAM;AAAA,IACnB;AAAA,EAAA;AAGF,QAAM,kBAAkBC,MAAA;AAAA,IAGtB,CAAC,eACCC,2BAAA;AAAA,MAACC,eAAA;AAAA,MAAA;AAAA,QACE,GAAG;AAAA,QACJ;AAAA,QACA,WAAW;AAAA,MAAA;AAAA,IACb;AAAA,IAEF,CAAC,WAAW,mBAAmB;AAAA,EAAA;AAI/B,SAAAD,2BAAA;AAAA,IAACE,kBAAA;AAAA,IAAA;AAAA,MACC,OACE,mBAAmB,eAAeC,mBAAW,aAAa,QAAQ,CAAC,EAAE;AAAA,MAEvE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,qBAAqB;AAAA,MACpB,GAAG;AAAA,MAEJ,UAAAH,2BAAA;AAAA,QAACI,gBAAA;AAAA,QAAA;AAAA,UACC,IAAIC,MAAAA,MAAM,IAAI,SAAS;AAAA,UACvB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACC,GAAG;AAAA,QAAA;AAAA,MACN;AAAA,IAAA;AAAA,EAAA;AAGN;;;"}
@@ -4,8 +4,6 @@ const jsxRuntime = require("@emotion/react/jsx-runtime");
4
4
  const React = require("react");
5
5
  const styles = require("@mui/material/styles");
6
6
  const MuiDivider = require("@mui/material/Divider");
7
- const isString = require("lodash/isString");
8
- const isBoolean = require("lodash/isBoolean");
9
7
  const useWidth = require("../hooks/useWidth.cjs");
10
8
  const useDefaultProps = require("../hooks/useDefaultProps.cjs");
11
9
  const Stack_styles = require("./Stack.styles.cjs");
@@ -13,10 +11,8 @@ const Focus = require("../Focus/Focus.cjs");
13
11
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
14
12
  const React__default = /* @__PURE__ */ _interopDefault(React);
15
13
  const MuiDivider__default = /* @__PURE__ */ _interopDefault(MuiDivider);
16
- const isString__default = /* @__PURE__ */ _interopDefault(isString);
17
- const isBoolean__default = /* @__PURE__ */ _interopDefault(isBoolean);
18
14
  const getDirection = (direction, width, breakpoints) => {
19
- if (isString__default.default(direction))
15
+ if (typeof direction === "string")
20
16
  return direction;
21
17
  for (let i = breakpoints.indexOf(width); i >= 0; i -= 1) {
22
18
  if (direction[breakpoints[i]] !== void 0) {
@@ -46,7 +42,7 @@ const HvStack = (props) => {
46
42
  [direction, width, breakpoints]
47
43
  );
48
44
  const getDividerComponent = React.useCallback(() => {
49
- if (isBoolean__default.default(divider) && divider) {
45
+ if (typeof divider === "boolean" && divider) {
50
46
  return /* @__PURE__ */ jsxRuntime.jsx(
51
47
  MuiDivider__default.default,
52
48
  {
@@ -1 +1 @@
1
- {"version":3,"file":"Stack.cjs","sources":["../../../src/Stack/Stack.tsx"],"sourcesContent":["import React, { useMemo, useRef, useCallback } from \"react\";\n\nimport { useTheme } from \"@mui/material/styles\";\nimport MuiDivider, {\n DividerProps as MuiDividerProps,\n} from \"@mui/material/Divider\";\n\nimport isString from \"lodash/isString\";\nimport isBoolean from \"lodash/isBoolean\";\n\nimport { HvBreakpoints } from \"@hitachivantara/uikit-styles\";\n\nimport { useWidth } from \"../hooks/useWidth\";\nimport { useDefaultProps } from \"../hooks/useDefaultProps\";\nimport { HvBaseProps } from \"../types/generic\";\nimport { HvFocus } from \"../Focus\";\nimport { ExtractNames } from \"../utils/classes\";\n\nimport { useClasses, staticClasses } from \"./Stack.styles\";\n\nexport { staticClasses as stackClasses };\n\nexport type HvStackClasses = ExtractNames<typeof useClasses>;\n\nexport type HvStackDirection = \"column\" | \"row\" | Partial<HvStackBreakpoints>;\nexport interface HvStackBreakpoints extends Record<HvBreakpoints, string> {}\n\nexport interface HvStackProps extends HvBaseProps {\n /** The direction of the stack. Can be either a string or an object that states the direction for each breakpoint. */\n direction?: HvStackDirection;\n /** The spacing between elements of the stack. */\n spacing?: HvBreakpoints;\n /** The divider component to be used between the stack elements.\n * - If `true` the Material-UI Divider component will be used.\n * - If a React node is passed then the custom divider will be used.\n */\n divider?: boolean | React.ReactNode;\n /** The properties to pass on to the Material-UI component. */\n dividerProps?: MuiDividerProps;\n /** Sets whether or not there should be arrow navigation between the stack elements. */\n withNavigation?: boolean;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvStackClasses;\n}\n\n/**\n * @returns {string} - Returns a direction for the stack: column or row. If the\n * `direction` property is a string and a valid direction then we\n * use it. If it's an object with multiple directions by breakpoint\n * we use the appropriate one or search for the nearest breakpoint\n * smaller than the current one to use.\n */\nconst getDirection = (direction: any, width: any, breakpoints: any) => {\n if (isString(direction)) return direction;\n\n for (let i = breakpoints.indexOf(width); i >= 0; i -= 1) {\n if (direction[breakpoints[i]] !== undefined) {\n return direction[breakpoints[i]];\n }\n }\n return \"column\";\n};\n\n/**\n * A Stack component allows the organization of its children in a vertical or horizontal layout.\n *\n * It also allows the specification of the spacing between the stack elements and the addition of a divider between the elements.\n */\nexport const HvStack = (props: HvStackProps) => {\n const {\n classes: classesProp,\n className,\n children,\n direction = \"column\",\n spacing = \"sm\",\n divider = false,\n withNavigation = false,\n dividerProps = {},\n ...others\n } = useDefaultProps(\"HvStack\", props);\n const { classes, cx } = useClasses(classesProp);\n\n const width = useWidth();\n const containerRef = useRef(null);\n const { breakpoints } = useTheme();\n\n const processedDirection = useMemo(\n () => getDirection(direction, width, breakpoints.keys),\n [direction, width, breakpoints]\n );\n\n /**\n * @returns {node} - The divider component to use. If the property `divider` is\n * set to `true` then the Material-UI divider is used, otherwise\n * we use the custom divider the user passed.\n */\n const getDividerComponent = useCallback(() => {\n if (isBoolean(divider) && divider) {\n return (\n <MuiDivider\n orientation={\n processedDirection === \"column\" ? \"horizontal\" : \"vertical\"\n }\n flexItem={processedDirection === \"row\"}\n role=\"separator\"\n {...dividerProps}\n />\n );\n }\n return divider;\n }, [divider, dividerProps, processedDirection]);\n\n return (\n <div\n ref={containerRef}\n className={cx(\n classes.root,\n classes[processedDirection],\n classes[spacing],\n className\n )}\n {...others}\n >\n {React.Children.map(children, (child, i) => {\n return (\n <>\n {divider && i !== 0 && getDividerComponent()}\n {withNavigation ? (\n <HvFocus\n rootRef={containerRef}\n focusDisabled={false}\n strategy=\"grid\"\n navigationJump={\n processedDirection === \"column\"\n ? 1\n : React.Children.count(children) || 0\n }\n filterClass=\"child\"\n >\n <div className=\"child\">{child}</div>\n </HvFocus>\n ) : (\n child\n )}\n </>\n );\n })}\n </div>\n );\n};\n"],"names":["isString","useDefaultProps","useClasses","useWidth","useRef","useTheme","useMemo","useCallback","isBoolean","jsx","MuiDivider","jsxs","Fragment","HvFocus","React"],"mappings":";;;;;;;;;;;;;;;;;AAoDA,MAAM,eAAe,CAAC,WAAgB,OAAY,gBAAqB;AACrE,MAAIA,kBAAAA,QAAS,SAAS;AAAU,WAAA;AAEvB,WAAA,IAAI,YAAY,QAAQ,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG;AACvD,QAAI,UAAU,YAAY,CAAC,CAAC,MAAM,QAAW;AACpC,aAAA,UAAU,YAAY,CAAC,CAAC;AAAA,IACjC;AAAA,EACF;AACO,SAAA;AACT;AAOa,MAAA,UAAU,CAAC,UAAwB;AACxC,QAAA;AAAA,IACJ,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,iBAAiB;AAAA,IACjB,eAAe,CAAC;AAAA,IAChB,GAAG;AAAA,EAAA,IACDC,gBAAgB,gBAAA,WAAW,KAAK;AACpC,QAAM,EAAE,SAAS,GAAG,IAAIC,wBAAW,WAAW;AAE9C,QAAM,QAAQC,SAAAA;AACR,QAAA,eAAeC,aAAO,IAAI;AAC1B,QAAA,EAAE,gBAAgBC,OAAAA;AAExB,QAAM,qBAAqBC,MAAA;AAAA,IACzB,MAAM,aAAa,WAAW,OAAO,YAAY,IAAI;AAAA,IACrD,CAAC,WAAW,OAAO,WAAW;AAAA,EAAA;AAQ1B,QAAA,sBAAsBC,MAAAA,YAAY,MAAM;AACxC,QAAAC,mBAAA,QAAU,OAAO,KAAK,SAAS;AAE/B,aAAAC,2BAAA;AAAA,QAACC,oBAAA;AAAA,QAAA;AAAA,UACC,aACE,uBAAuB,WAAW,eAAe;AAAA,UAEnD,UAAU,uBAAuB;AAAA,UACjC,MAAK;AAAA,UACJ,GAAG;AAAA,QAAA;AAAA,MAAA;AAAA,IAGV;AACO,WAAA;AAAA,EACN,GAAA,CAAC,SAAS,cAAc,kBAAkB,CAAC;AAG5C,SAAAD,2BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAK;AAAA,MACL,WAAW;AAAA,QACT,QAAQ;AAAA,QACR,QAAQ,kBAAkB;AAAA,QAC1B,QAAQ,OAAO;AAAA,QACf;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEH,iCAAM,SAAS,IAAI,UAAU,CAAC,OAAO,MAAM;AAC1C,eAEKE,2BAAA,KAAAC,qBAAA,EAAA,UAAA;AAAA,UAAW,WAAA,MAAM,KAAK,oBAAoB;AAAA,UAC1C,iBACCH,2BAAA;AAAA,YAACI,MAAA;AAAA,YAAA;AAAA,cACC,SAAS;AAAA,cACT,eAAe;AAAA,cACf,UAAS;AAAA,cACT,gBACE,uBAAuB,WACnB,IACAC,uBAAM,SAAS,MAAM,QAAQ,KAAK;AAAA,cAExC,aAAY;AAAA,cAEZ,UAACL,2BAAA,IAAA,OAAA,EAAI,WAAU,SAAS,UAAM,OAAA;AAAA,YAAA;AAAA,UAAA,IAGhC;AAAA,QAEJ,EAAA,CAAA;AAAA,MAAA,CAEH;AAAA,IAAA;AAAA,EAAA;AAGP;;;"}
1
+ {"version":3,"file":"Stack.cjs","sources":["../../../src/Stack/Stack.tsx"],"sourcesContent":["import React, { useMemo, useRef, useCallback } from \"react\";\n\nimport { useTheme } from \"@mui/material/styles\";\nimport MuiDivider, {\n DividerProps as MuiDividerProps,\n} from \"@mui/material/Divider\";\n\nimport { HvBreakpoints } from \"@hitachivantara/uikit-styles\";\n\nimport { useWidth } from \"../hooks/useWidth\";\nimport { useDefaultProps } from \"../hooks/useDefaultProps\";\nimport { HvBaseProps } from \"../types/generic\";\nimport { HvFocus } from \"../Focus\";\nimport { ExtractNames } from \"../utils/classes\";\n\nimport { useClasses, staticClasses } from \"./Stack.styles\";\n\nexport { staticClasses as stackClasses };\n\nexport type HvStackClasses = ExtractNames<typeof useClasses>;\n\nexport type HvStackDirection = \"column\" | \"row\" | Partial<HvStackBreakpoints>;\nexport interface HvStackBreakpoints extends Record<HvBreakpoints, string> {}\n\nexport interface HvStackProps extends HvBaseProps {\n /** The direction of the stack. Can be either a string or an object that states the direction for each breakpoint. */\n direction?: HvStackDirection;\n /** The spacing between elements of the stack. */\n spacing?: HvBreakpoints;\n /** The divider component to be used between the stack elements.\n * - If `true` the Material-UI Divider component will be used.\n * - If a React node is passed then the custom divider will be used.\n */\n divider?: boolean | React.ReactNode;\n /** The properties to pass on to the Material-UI component. */\n dividerProps?: MuiDividerProps;\n /** Sets whether or not there should be arrow navigation between the stack elements. */\n withNavigation?: boolean;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvStackClasses;\n}\n\n/**\n * @returns {string} - Returns a direction for the stack: column or row. If the\n * `direction` property is a string and a valid direction then we\n * use it. If it's an object with multiple directions by breakpoint\n * we use the appropriate one or search for the nearest breakpoint\n * smaller than the current one to use.\n */\nconst getDirection = (direction: any, width: any, breakpoints: any) => {\n if (typeof direction === \"string\") return direction;\n\n for (let i = breakpoints.indexOf(width); i >= 0; i -= 1) {\n if (direction[breakpoints[i]] !== undefined) {\n return direction[breakpoints[i]];\n }\n }\n return \"column\";\n};\n\n/**\n * A Stack component allows the organization of its children in a vertical or horizontal layout.\n *\n * It also allows the specification of the spacing between the stack elements and the addition of a divider between the elements.\n */\nexport const HvStack = (props: HvStackProps) => {\n const {\n classes: classesProp,\n className,\n children,\n direction = \"column\",\n spacing = \"sm\",\n divider = false,\n withNavigation = false,\n dividerProps = {},\n ...others\n } = useDefaultProps(\"HvStack\", props);\n const { classes, cx } = useClasses(classesProp);\n\n const width = useWidth();\n const containerRef = useRef(null);\n const { breakpoints } = useTheme();\n\n const processedDirection = useMemo(\n () => getDirection(direction, width, breakpoints.keys),\n [direction, width, breakpoints]\n );\n\n /**\n * @returns {node} - The divider component to use. If the property `divider` is\n * set to `true` then the Material-UI divider is used, otherwise\n * we use the custom divider the user passed.\n */\n const getDividerComponent = useCallback(() => {\n if (typeof divider === \"boolean\" && divider) {\n return (\n <MuiDivider\n orientation={\n processedDirection === \"column\" ? \"horizontal\" : \"vertical\"\n }\n flexItem={processedDirection === \"row\"}\n role=\"separator\"\n {...dividerProps}\n />\n );\n }\n return divider;\n }, [divider, dividerProps, processedDirection]);\n\n return (\n <div\n ref={containerRef}\n className={cx(\n classes.root,\n classes[processedDirection],\n classes[spacing],\n className\n )}\n {...others}\n >\n {React.Children.map(children, (child, i) => {\n return (\n <>\n {divider && i !== 0 && getDividerComponent()}\n {withNavigation ? (\n <HvFocus\n rootRef={containerRef}\n focusDisabled={false}\n strategy=\"grid\"\n navigationJump={\n processedDirection === \"column\"\n ? 1\n : React.Children.count(children) || 0\n }\n filterClass=\"child\"\n >\n <div className=\"child\">{child}</div>\n </HvFocus>\n ) : (\n child\n )}\n </>\n );\n })}\n </div>\n );\n};\n"],"names":["useDefaultProps","useClasses","useWidth","useRef","useTheme","useMemo","useCallback","jsx","MuiDivider","jsxs","Fragment","HvFocus","React"],"mappings":";;;;;;;;;;;;;AAiDA,MAAM,eAAe,CAAC,WAAgB,OAAY,gBAAqB;AACrE,MAAI,OAAO,cAAc;AAAiB,WAAA;AAEjC,WAAA,IAAI,YAAY,QAAQ,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG;AACvD,QAAI,UAAU,YAAY,CAAC,CAAC,MAAM,QAAW;AACpC,aAAA,UAAU,YAAY,CAAC,CAAC;AAAA,IACjC;AAAA,EACF;AACO,SAAA;AACT;AAOa,MAAA,UAAU,CAAC,UAAwB;AACxC,QAAA;AAAA,IACJ,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,iBAAiB;AAAA,IACjB,eAAe,CAAC;AAAA,IAChB,GAAG;AAAA,EAAA,IACDA,gBAAgB,gBAAA,WAAW,KAAK;AACpC,QAAM,EAAE,SAAS,GAAG,IAAIC,wBAAW,WAAW;AAE9C,QAAM,QAAQC,SAAAA;AACR,QAAA,eAAeC,aAAO,IAAI;AAC1B,QAAA,EAAE,gBAAgBC,OAAAA;AAExB,QAAM,qBAAqBC,MAAA;AAAA,IACzB,MAAM,aAAa,WAAW,OAAO,YAAY,IAAI;AAAA,IACrD,CAAC,WAAW,OAAO,WAAW;AAAA,EAAA;AAQ1B,QAAA,sBAAsBC,MAAAA,YAAY,MAAM;AACxC,QAAA,OAAO,YAAY,aAAa,SAAS;AAEzC,aAAAC,2BAAA;AAAA,QAACC,oBAAA;AAAA,QAAA;AAAA,UACC,aACE,uBAAuB,WAAW,eAAe;AAAA,UAEnD,UAAU,uBAAuB;AAAA,UACjC,MAAK;AAAA,UACJ,GAAG;AAAA,QAAA;AAAA,MAAA;AAAA,IAGV;AACO,WAAA;AAAA,EACN,GAAA,CAAC,SAAS,cAAc,kBAAkB,CAAC;AAG5C,SAAAD,2BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAK;AAAA,MACL,WAAW;AAAA,QACT,QAAQ;AAAA,QACR,QAAQ,kBAAkB;AAAA,QAC1B,QAAQ,OAAO;AAAA,QACf;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEH,iCAAM,SAAS,IAAI,UAAU,CAAC,OAAO,MAAM;AAC1C,eAEKE,2BAAA,KAAAC,qBAAA,EAAA,UAAA;AAAA,UAAW,WAAA,MAAM,KAAK,oBAAoB;AAAA,UAC1C,iBACCH,2BAAA;AAAA,YAACI,MAAA;AAAA,YAAA;AAAA,cACC,SAAS;AAAA,cACT,eAAe;AAAA,cACf,UAAS;AAAA,cACT,gBACE,uBAAuB,WACnB,IACAC,uBAAM,SAAS,MAAM,QAAQ,KAAK;AAAA,cAExC,aAAY;AAAA,cAEZ,UAACL,2BAAA,IAAA,OAAA,EAAI,WAAU,SAAS,UAAM,OAAA;AAAA,YAAA;AAAA,UAAA,IAGhC;AAAA,QAEJ,EAAA,CAAA;AAAA,MAAA,CAEH;AAAA,IAAA;AAAA,EAAA;AAGP;;;"}
@@ -2,13 +2,11 @@
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 capitalize = require("lodash/capitalize");
5
+ const helpers = require("../../utils/helpers.cjs");
6
6
  const useDefaultProps = require("../../hooks/useDefaultProps.cjs");
7
7
  const TableContext = require("../TableContext.cjs");
8
8
  const TableSectionContext = require("../TableSectionContext.cjs");
9
9
  const TableCell_styles = require("./TableCell.styles.cjs");
10
- const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
11
- const capitalize__default = /* @__PURE__ */ _interopDefault(capitalize);
12
10
  const defaultComponent = "td";
13
11
  const HvTableCell = React.forwardRef(
14
12
  (props, externalRef) => {
@@ -46,10 +44,10 @@ const HvTableCell = React.forwardRef(
46
44
  classes.root,
47
45
  classes[type],
48
46
  {
49
- [classes[`align${capitalize__default.default(align)}`]]: align !== "inherit",
47
+ [classes[`align${helpers.capitalize(align)}`]]: align !== "inherit",
50
48
  [classes.variantList]: tableContext.variant === "listrow",
51
49
  [classes.variantListHead]: tableContext.variant === "listrow" && type !== "body",
52
- [classes[`variant${capitalize__default.default(variant)}`]]: variant !== "default",
50
+ [classes[`variant${helpers.capitalize(variant)}`]]: variant !== "default",
53
51
  [classes.sorted]: sorted,
54
52
  [classes.stickyColumn]: stickyColumn,
55
53
  [classes.stickyColumnMostLeft]: stickyColumnMostLeft,
@@ -1 +1 @@
1
- {"version":3,"file":"TableCell.cjs","sources":["../../../../src/Table/TableCell/TableCell.tsx"],"sourcesContent":["import { CSSProperties, forwardRef, TdHTMLAttributes, useContext } from \"react\";\nimport capitalize from \"lodash/capitalize\";\n\nimport { ExtractNames } from \"../../utils/classes\";\nimport { useDefaultProps } from \"../../hooks/useDefaultProps\";\n\nimport {\n HvTableCellAlign,\n HvTableCellType,\n HvTableCellVariant,\n} from \"../Table\";\nimport TableContext from \"../TableContext\";\nimport TableSectionContext from \"../TableSectionContext\";\nimport { staticClasses, useClasses } from \"./TableCell.styles\";\n\nexport { staticClasses as tableCellClasses };\n\nexport type HvTableCellClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvTableCellProps\n extends Omit<TdHTMLAttributes<HTMLTableCellElement>, \"align\"> {\n /** The component used for the root node. Either a string to use a HTML element or a component. Defaults to td. */\n component?: React.ElementType;\n /** Content to be rendered */\n children?: React.ReactNode;\n /** Inline styles to be applied to the root element. */\n style?: CSSProperties;\n /** Set the text-align on the table cell content. */\n align?: HvTableCellAlign;\n /** Sets the cell's variant. */\n variant?: HvTableCellVariant | \"listcheckbox\" | \"listactions\";\n /** Specify the cell's type. The prop defaults to the value inherited from the parent TableHead, TableBody, or TableFooter components. */\n type?: HvTableCellType;\n /** Whether or not the cell is part of a sorted column. */\n sorted?: boolean;\n /** The cell is part of a sticky column. */\n stickyColumn?: boolean;\n /** The cell is part of the last sticky to the left column. */\n stickyColumnMostLeft?: boolean;\n /** The cell is part of the first sticky to the right column. */\n stickyColumnLeastRight?: boolean;\n /** The cell is part of the first column in the group. */\n groupColumnMostLeft?: boolean;\n /** The cell is part of the last column in the group. */\n groupColumnMostRight?: boolean;\n /** Whether or not the cell is resizable */\n resizable?: boolean;\n /** Whether or not the cell is being resized */\n resizing?: boolean;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvTableCellClasses;\n}\n\nconst defaultComponent = \"td\";\n\n/**\n * `HvTableCell` acts as a `td` element and inherits styles from its context\n */\nexport const HvTableCell = forwardRef<HTMLElement, HvTableCellProps>(\n (props, externalRef) => {\n const {\n children,\n component,\n className,\n style,\n classes: classesProp,\n align = \"inherit\",\n variant = \"default\",\n type: typeProp,\n stickyColumn = false,\n stickyColumnMostLeft = false,\n stickyColumnLeastRight = false,\n groupColumnMostLeft = false,\n groupColumnMostRight = false,\n sorted = false,\n resizable = false,\n resizing = false,\n ...others\n } = useDefaultProps(\"HvTableCell\", props);\n\n const { classes, cx } = useClasses(classesProp);\n\n const tableContext = useContext(TableContext);\n const tableSectionContext = useContext(TableSectionContext);\n\n const type = typeProp || tableSectionContext?.type || \"body\";\n\n const Component =\n component || tableContext?.components?.Td || defaultComponent;\n\n return (\n <Component\n ref={externalRef}\n role={Component === defaultComponent ? null : \"cell\"}\n style={style}\n className={cx(\n classes.root,\n classes[type],\n {\n [classes[`align${capitalize(align)}`]]: align !== \"inherit\",\n [classes.variantList]: tableContext.variant === \"listrow\",\n [classes.variantListHead]:\n tableContext.variant === \"listrow\" && type !== \"body\",\n [classes[`variant${capitalize(variant)}`]]: variant !== \"default\",\n [classes.sorted]: sorted,\n [classes.stickyColumn]: stickyColumn,\n [classes.stickyColumnMostLeft]: stickyColumnMostLeft,\n [classes.stickyColumnLeastRight]: stickyColumnLeastRight,\n [classes.groupColumnMostLeft]: groupColumnMostLeft,\n [classes.groupColumnMostRight]: groupColumnMostRight,\n [classes.resizable]: resizable,\n [classes.resizing]: resizing,\n },\n className\n )}\n {...others}\n >\n {children}\n </Component>\n );\n }\n);\n"],"names":["forwardRef","useDefaultProps","useClasses","useContext","TableContext","TableSectionContext","jsx","capitalize"],"mappings":";;;;;;;;;;;AAqDA,MAAM,mBAAmB;AAKlB,MAAM,cAAcA,MAAA;AAAA,EACzB,CAAC,OAAO,gBAAgB;AAChB,UAAA;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM;AAAA,MACN,eAAe;AAAA,MACf,uBAAuB;AAAA,MACvB,yBAAyB;AAAA,MACzB,sBAAsB;AAAA,MACtB,uBAAuB;AAAA,MACvB,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,GAAG;AAAA,IAAA,IACDC,gBAAgB,gBAAA,eAAe,KAAK;AAExC,UAAM,EAAE,SAAS,GAAG,IAAIC,4BAAW,WAAW;AAExC,UAAA,eAAeC,iBAAWC,aAAAA,OAAY;AACtC,UAAA,sBAAsBD,iBAAWE,oBAAAA,OAAmB;AAEpD,UAAA,OAAO,YAAY,qBAAqB,QAAQ;AAEtD,UAAM,YACJ,aAAa,cAAc,YAAY,MAAM;AAG7C,WAAAC,2BAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAK;AAAA,QACL,MAAM,cAAc,mBAAmB,OAAO;AAAA,QAC9C;AAAA,QACA,WAAW;AAAA,UACT,QAAQ;AAAA,UACR,QAAQ,IAAI;AAAA,UACZ;AAAA,YACE,CAAC,QAAQ,QAAQC,oBAAA,QAAW,KAAK,CAAC,EAAE,CAAC,GAAG,UAAU;AAAA,YAClD,CAAC,QAAQ,WAAW,GAAG,aAAa,YAAY;AAAA,YAChD,CAAC,QAAQ,eAAe,GACtB,aAAa,YAAY,aAAa,SAAS;AAAA,YACjD,CAAC,QAAQ,UAAUA,oBAAA,QAAW,OAAO,CAAC,EAAE,CAAC,GAAG,YAAY;AAAA,YACxD,CAAC,QAAQ,MAAM,GAAG;AAAA,YAClB,CAAC,QAAQ,YAAY,GAAG;AAAA,YACxB,CAAC,QAAQ,oBAAoB,GAAG;AAAA,YAChC,CAAC,QAAQ,sBAAsB,GAAG;AAAA,YAClC,CAAC,QAAQ,mBAAmB,GAAG;AAAA,YAC/B,CAAC,QAAQ,oBAAoB,GAAG;AAAA,YAChC,CAAC,QAAQ,SAAS,GAAG;AAAA,YACrB,CAAC,QAAQ,QAAQ,GAAG;AAAA,UACtB;AAAA,UACA;AAAA,QACF;AAAA,QACC,GAAG;AAAA,QAEH;AAAA,MAAA;AAAA,IAAA;AAAA,EAGP;AACF;;;"}
1
+ {"version":3,"file":"TableCell.cjs","sources":["../../../../src/Table/TableCell/TableCell.tsx"],"sourcesContent":["import { CSSProperties, forwardRef, TdHTMLAttributes, useContext } from \"react\";\n\nimport { capitalize } from \"../../utils/helpers\";\nimport { ExtractNames } from \"../../utils/classes\";\nimport { useDefaultProps } from \"../../hooks/useDefaultProps\";\n\nimport {\n HvTableCellAlign,\n HvTableCellType,\n HvTableCellVariant,\n} from \"../Table\";\nimport TableContext from \"../TableContext\";\nimport TableSectionContext from \"../TableSectionContext\";\nimport { staticClasses, useClasses } from \"./TableCell.styles\";\n\nexport { staticClasses as tableCellClasses };\n\nexport type HvTableCellClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvTableCellProps\n extends Omit<TdHTMLAttributes<HTMLTableCellElement>, \"align\"> {\n /** The component used for the root node. Either a string to use a HTML element or a component. Defaults to td. */\n component?: React.ElementType;\n /** Content to be rendered */\n children?: React.ReactNode;\n /** Inline styles to be applied to the root element. */\n style?: CSSProperties;\n /** Set the text-align on the table cell content. */\n align?: HvTableCellAlign;\n /** Sets the cell's variant. */\n variant?: HvTableCellVariant | \"listcheckbox\" | \"listactions\";\n /** Specify the cell's type. The prop defaults to the value inherited from the parent TableHead, TableBody, or TableFooter components. */\n type?: HvTableCellType;\n /** Whether or not the cell is part of a sorted column. */\n sorted?: boolean;\n /** The cell is part of a sticky column. */\n stickyColumn?: boolean;\n /** The cell is part of the last sticky to the left column. */\n stickyColumnMostLeft?: boolean;\n /** The cell is part of the first sticky to the right column. */\n stickyColumnLeastRight?: boolean;\n /** The cell is part of the first column in the group. */\n groupColumnMostLeft?: boolean;\n /** The cell is part of the last column in the group. */\n groupColumnMostRight?: boolean;\n /** Whether or not the cell is resizable */\n resizable?: boolean;\n /** Whether or not the cell is being resized */\n resizing?: boolean;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvTableCellClasses;\n}\n\nconst defaultComponent = \"td\";\n\n/**\n * `HvTableCell` acts as a `td` element and inherits styles from its context\n */\nexport const HvTableCell = forwardRef<HTMLElement, HvTableCellProps>(\n (props, externalRef) => {\n const {\n children,\n component,\n className,\n style,\n classes: classesProp,\n align = \"inherit\",\n variant = \"default\",\n type: typeProp,\n stickyColumn = false,\n stickyColumnMostLeft = false,\n stickyColumnLeastRight = false,\n groupColumnMostLeft = false,\n groupColumnMostRight = false,\n sorted = false,\n resizable = false,\n resizing = false,\n ...others\n } = useDefaultProps(\"HvTableCell\", props);\n\n const { classes, cx } = useClasses(classesProp);\n\n const tableContext = useContext(TableContext);\n const tableSectionContext = useContext(TableSectionContext);\n\n const type = typeProp || tableSectionContext?.type || \"body\";\n\n const Component =\n component || tableContext?.components?.Td || defaultComponent;\n\n return (\n <Component\n ref={externalRef}\n role={Component === defaultComponent ? null : \"cell\"}\n style={style}\n className={cx(\n classes.root,\n classes[type],\n {\n [classes[`align${capitalize(align)}`]]: align !== \"inherit\",\n [classes.variantList]: tableContext.variant === \"listrow\",\n [classes.variantListHead]:\n tableContext.variant === \"listrow\" && type !== \"body\",\n [classes[`variant${capitalize(variant)}`]]: variant !== \"default\",\n [classes.sorted]: sorted,\n [classes.stickyColumn]: stickyColumn,\n [classes.stickyColumnMostLeft]: stickyColumnMostLeft,\n [classes.stickyColumnLeastRight]: stickyColumnLeastRight,\n [classes.groupColumnMostLeft]: groupColumnMostLeft,\n [classes.groupColumnMostRight]: groupColumnMostRight,\n [classes.resizable]: resizable,\n [classes.resizing]: resizing,\n },\n className\n )}\n {...others}\n >\n {children}\n </Component>\n );\n }\n);\n"],"names":["forwardRef","useDefaultProps","useClasses","useContext","TableContext","TableSectionContext","jsx","capitalize"],"mappings":";;;;;;;;;AAqDA,MAAM,mBAAmB;AAKlB,MAAM,cAAcA,MAAA;AAAA,EACzB,CAAC,OAAO,gBAAgB;AAChB,UAAA;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM;AAAA,MACN,eAAe;AAAA,MACf,uBAAuB;AAAA,MACvB,yBAAyB;AAAA,MACzB,sBAAsB;AAAA,MACtB,uBAAuB;AAAA,MACvB,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,GAAG;AAAA,IAAA,IACDC,gBAAgB,gBAAA,eAAe,KAAK;AAExC,UAAM,EAAE,SAAS,GAAG,IAAIC,4BAAW,WAAW;AAExC,UAAA,eAAeC,iBAAWC,aAAAA,OAAY;AACtC,UAAA,sBAAsBD,iBAAWE,oBAAAA,OAAmB;AAEpD,UAAA,OAAO,YAAY,qBAAqB,QAAQ;AAEtD,UAAM,YACJ,aAAa,cAAc,YAAY,MAAM;AAG7C,WAAAC,2BAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAK;AAAA,QACL,MAAM,cAAc,mBAAmB,OAAO;AAAA,QAC9C;AAAA,QACA,WAAW;AAAA,UACT,QAAQ;AAAA,UACR,QAAQ,IAAI;AAAA,UACZ;AAAA,YACE,CAAC,QAAQ,QAAQC,QAAA,WAAW,KAAK,CAAC,EAAE,CAAC,GAAG,UAAU;AAAA,YAClD,CAAC,QAAQ,WAAW,GAAG,aAAa,YAAY;AAAA,YAChD,CAAC,QAAQ,eAAe,GACtB,aAAa,YAAY,aAAa,SAAS;AAAA,YACjD,CAAC,QAAQ,UAAUA,QAAA,WAAW,OAAO,CAAC,EAAE,CAAC,GAAG,YAAY;AAAA,YACxD,CAAC,QAAQ,MAAM,GAAG;AAAA,YAClB,CAAC,QAAQ,YAAY,GAAG;AAAA,YACxB,CAAC,QAAQ,oBAAoB,GAAG;AAAA,YAChC,CAAC,QAAQ,sBAAsB,GAAG;AAAA,YAClC,CAAC,QAAQ,mBAAmB,GAAG;AAAA,YAC/B,CAAC,QAAQ,oBAAoB,GAAG;AAAA,YAChC,CAAC,QAAQ,SAAS,GAAG;AAAA,YACrB,CAAC,QAAQ,QAAQ,GAAG;AAAA,UACtB;AAAA,UACA;AAAA,QACF;AAAA,QACC,GAAG;AAAA,QAEH;AAAA,MAAA;AAAA,IAAA;AAAA,EAGP;AACF;;;"}
@@ -2,10 +2,10 @@
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 capitalize = require("lodash/capitalize");
6
5
  const styles = require("@mui/material/styles");
7
6
  const uikitStyles = require("@hitachivantara/uikit-styles");
8
7
  const useTheme = require("../../hooks/useTheme.cjs");
8
+ const helpers = require("../../utils/helpers.cjs");
9
9
  const useDefaultProps = require("../../hooks/useDefaultProps.cjs");
10
10
  const TableContext = require("../TableContext.cjs");
11
11
  const TableSectionContext = require("../TableSectionContext.cjs");
@@ -13,8 +13,6 @@ const utils = require("./utils.cjs");
13
13
  const TableHeader_styles = require("./TableHeader.styles.cjs");
14
14
  const Button = require("../../Button/Button.cjs");
15
15
  const Typography = require("../../Typography/Typography.cjs");
16
- const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
17
- const capitalize__default = /* @__PURE__ */ _interopDefault(capitalize);
18
16
  const defaultComponent = "th";
19
17
  const HvTableHeader = React.forwardRef(
20
18
  (props, externalRef) => {
@@ -87,8 +85,8 @@ const HvTableHeader = React.forwardRef(
87
85
  [classes.stickyColumnMostLeft]: stickyColumnMostLeft,
88
86
  [classes.stickyColumnLeastRight]: stickyColumnLeastRight,
89
87
  [classes.variantList]: tableContext.variant === "listrow",
90
- [classes[`align${capitalize__default.default(align)}`]]: align !== "inherit",
91
- [classes[`variant${capitalize__default.default(variant)}`]]: variant !== "default"
88
+ [classes[`align${helpers.capitalize(align)}`]]: align !== "inherit",
89
+ [classes[`variant${helpers.capitalize(variant)}`]]: variant !== "default"
92
90
  },
93
91
  className
94
92
  ),
@@ -98,7 +96,7 @@ const HvTableHeader = React.forwardRef(
98
96
  "div",
99
97
  {
100
98
  className: cx(classes.headerContent, {
101
- [classes[`alignFlex${capitalize__default.default(align)}`]]: align !== "inherit"
99
+ [classes[`alignFlex${helpers.capitalize(align)}`]]: align !== "inherit"
102
100
  }),
103
101
  children: [
104
102
  isHeadCell && sortable && /* @__PURE__ */ jsxRuntime.jsx(