@hitachivantara/uikit-react-core 3.56.2 → 3.57.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.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [3.57.0](https://github.com/lumada-design/hv-uikit-react/compare/@hitachivantara/uikit-react-core@3.56.2...@hitachivantara/uikit-react-core@3.57.0) (2022-03-02)
7
+
8
+
9
+ ### Features
10
+
11
+ * **filter-group:** add default and controlled values ([82236d0](https://github.com/lumada-design/hv-uikit-react/commit/82236d052262191db139cbf1f46886468c3bc1d6))
12
+
13
+
14
+
15
+
16
+
6
17
  ## [3.56.2](https://github.com/lumada-design/hv-uikit-react/compare/@hitachivantara/uikit-react-core@3.56.1...@hitachivantara/uikit-react-core@3.56.2) (2022-02-21)
7
18
 
8
19
 
@@ -94,6 +94,7 @@ var FilterContent = function FilterContent(_ref) {
94
94
  setFilterGroupOpen = _useState2[1];
95
95
 
96
96
  var _useContext = (0, _react.useContext)(_FilterGroupContext.FilterGroupContext),
97
+ defaultValue = _useContext.defaultValue,
97
98
  filterValues = _useContext.filterValues,
98
99
  rollbackFilters = _useContext.rollbackFilters,
99
100
  clearFilters = _useContext.clearFilters,
@@ -191,7 +192,7 @@ var FilterContent = function FilterContent(_ref) {
191
192
  className: classes.actionBar
192
193
  }, /*#__PURE__*/_react.default.createElement(_.HvButton, {
193
194
  id: (0, _.setId)(id, "clearFilters-button"),
194
- disabled: filterValues.flat().length === 0,
195
+ disabled: defaultValue ? defaultValue.flat().length === filterValues.flat().length : filterValues.flat().length === 0,
195
196
  category: "ghost",
196
197
  onClick: onClearHandler
197
198
  }, labels.clearLabel), /*#__PURE__*/_react.default.createElement("div", {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/FilterGroup/FilterContent/FilterContent.js"],"names":["FilterContent","id","status","disabled","ariaLabel","ariaLabelledBy","description","ariaDescribedBy","onChange","onCancel","onClear","labels","horizontalPlacement","disablePortal","escapeWithReference","height","others","classes","filterGroupOpen","setFilterGroupOpen","FilterGroupContext","filterValues","rollbackFilters","clearFilters","applyFilters","applyDisabled","focusTarget","focusOnContainer","current","focus","onApplyHandler","evt","onCancelHandler","onClearHandler","handleToggle","open","Header","placeholder","root","dropdown","panel","selection","baseDropdownSelection","header","modifiers","name","enabled","undefined","join","trim","leftSidePanel","rightSidePanel","actionBar","flat","length","clearLabel","space","applyLabel","cancelLabel","propTypes","PropTypes","string","node","bool","oneOf","func","shape","searchBoxPlaceholder","selectAll","multiSelectionConjunction","any"],"mappings":"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","sourcesContent":["import React, { useMemo, useState, useRef, useContext } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Filters } from \"@hitachivantara/uikit-react-icons\";\nimport { FilterGroupContext } from \"../FilterGroupContext\";\nimport LeftPanel from \"../LeftPanel\";\nimport RightPanel from \"../RightPanel\";\nimport Counter from \"../Counter\";\n\nimport useStyles from \"./styles\";\n\nimport { setId, HvBaseDropdown, HvTypography, HvButton, HvActionBar } from \"../..\";\n\nconst FilterContent = ({\n id,\n status,\n disabled = false,\n\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n description,\n \"aria-describedby\": ariaDescribedBy,\n\n onChange,\n onCancel,\n onClear,\n\n labels,\n\n horizontalPlacement = \"right\",\n disablePortal = true,\n escapeWithReference = true,\n\n height,\n\n ...others\n}) => {\n const classes = useStyles();\n const [filterGroupOpen, setFilterGroupOpen] = useState(false);\n\n const { filterValues, rollbackFilters, clearFilters, applyFilters, applyDisabled } =\n useContext(FilterGroupContext);\n\n const focusTarget = useRef();\n\n const focusOnContainer = () => {\n focusTarget.current?.focus();\n };\n\n const onApplyHandler = (evt) => {\n applyFilters();\n onChange?.(evt, filterValues);\n setFilterGroupOpen(false);\n };\n\n const onCancelHandler = (evt) => {\n rollbackFilters();\n onCancel?.(evt);\n setFilterGroupOpen(false);\n };\n\n const onClearHandler = (evt) => {\n clearFilters();\n onClear?.(evt);\n };\n\n const handleToggle = (evt, open) => {\n /* \n If evt is null this toggle wasn't triggered by the user.\n instead it was triggered by the baseDropdown useEffect after\n the datepicker changed the expanded value this baseDropdown behavior needs a review\n */\n if (evt === null) return;\n setFilterGroupOpen(open);\n if (!open) onCancelHandler?.(evt);\n };\n\n const Header = useMemo(\n () => (\n <>\n <Filters />\n <HvTypography variant=\"highlightText\">{labels.placeholder}</HvTypography>\n </>\n ),\n [labels.placeholder]\n );\n\n return (\n <HvBaseDropdown\n id={setId(id, \"dropdown\")}\n role=\"combobox\"\n classes={{\n root: classes.dropdown,\n panel: classes.panel,\n selection: classes.baseDropdownSelection,\n header: classes.header,\n }}\n disabled={disabled}\n disablePortal={disablePortal}\n variableWidth\n placement={horizontalPlacement}\n expanded={filterGroupOpen}\n onToggle={handleToggle}\n onClickOutside={onCancelHandler}\n onContainerCreation={focusOnContainer}\n placeholder={Header}\n adornment={<Counter />}\n popperProps={{ modifiers: [{ name: \"preventOverflow\", enabled: escapeWithReference }] }}\n aria-haspopup=\"dialog\"\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-invalid={status === \"invalid\" ? true : undefined}\n aria-errormessage={status === \"invalid\" ? setId(id, \"error\") : undefined}\n aria-describedby={\n [description && setId(id, \"description\"), ariaDescribedBy].join(\" \").trim() || undefined\n }\n {...others}\n >\n <div ref={focusTarget} tabIndex={-1} />\n <div className={classes.root} style={{ height }}>\n <LeftPanel id={id} className={classes.leftSidePanel} />\n <RightPanel id={id} className={classes.rightSidePanel} labels={labels} />\n </div>\n <HvActionBar className={classes.actionBar}>\n <HvButton\n id={setId(id, \"clearFilters-button\")}\n disabled={filterValues.flat().length === 0}\n category=\"ghost\"\n onClick={onClearHandler}\n >\n {labels.clearLabel}\n </HvButton>\n <div aria-hidden=\"true\" className={classes.space}>\n &nbsp;\n </div>\n <HvButton\n id={setId(id, \"apply-button\")}\n disabled={applyDisabled}\n category=\"ghost\"\n onClick={onApplyHandler}\n >\n {labels.applyLabel}\n </HvButton>\n <HvButton id={setId(id, \"cancel-button\")} category=\"ghost\" onClick={onCancelHandler}>\n {labels.cancelLabel}\n </HvButton>\n </HvActionBar>\n </HvBaseDropdown>\n );\n};\n\nFilterContent.propTypes = {\n id: PropTypes.string,\n\n \"aria-label\": PropTypes.string,\n \"aria-labelledby\": PropTypes.string,\n description: PropTypes.node,\n \"aria-describedby\": PropTypes.string,\n disabled: PropTypes.bool,\n status: PropTypes.oneOf([\"standBy\", \"valid\", \"invalid\"]),\n\n onChange: PropTypes.func,\n onCancel: PropTypes.func,\n onClear: PropTypes.func,\n\n labels: PropTypes.shape({\n applyLabel: PropTypes.string,\n cancelLabel: PropTypes.string,\n clearLabel: PropTypes.string,\n placeholder: PropTypes.string,\n searchBoxPlaceholder: PropTypes.string,\n selectAll: PropTypes.string,\n multiSelectionConjunction: PropTypes.string,\n }),\n\n horizontalPlacement: PropTypes.oneOf([\"left\", \"right\"]),\n disablePortal: PropTypes.bool,\n escapeWithReference: PropTypes.bool,\n height: PropTypes.any,\n};\n\nexport default FilterContent;\n"],"file":"FilterContent.js"}
1
+ {"version":3,"sources":["../../../src/FilterGroup/FilterContent/FilterContent.js"],"names":["FilterContent","id","status","disabled","ariaLabel","ariaLabelledBy","description","ariaDescribedBy","onChange","onCancel","onClear","labels","horizontalPlacement","disablePortal","escapeWithReference","height","others","classes","filterGroupOpen","setFilterGroupOpen","FilterGroupContext","defaultValue","filterValues","rollbackFilters","clearFilters","applyFilters","applyDisabled","focusTarget","focusOnContainer","current","focus","onApplyHandler","evt","onCancelHandler","onClearHandler","handleToggle","open","Header","placeholder","root","dropdown","panel","selection","baseDropdownSelection","header","modifiers","name","enabled","undefined","join","trim","leftSidePanel","rightSidePanel","actionBar","flat","length","clearLabel","space","applyLabel","cancelLabel","propTypes","PropTypes","string","node","bool","oneOf","func","shape","searchBoxPlaceholder","selectAll","multiSelectionConjunction","any"],"mappings":"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","sourcesContent":["import React, { useMemo, useState, useRef, useContext } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Filters } from \"@hitachivantara/uikit-react-icons\";\nimport { FilterGroupContext } from \"../FilterGroupContext\";\nimport LeftPanel from \"../LeftPanel\";\nimport RightPanel from \"../RightPanel\";\nimport Counter from \"../Counter\";\n\nimport useStyles from \"./styles\";\n\nimport { setId, HvBaseDropdown, HvTypography, HvButton, HvActionBar } from \"../..\";\n\nconst FilterContent = ({\n id,\n status,\n disabled = false,\n\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n description,\n \"aria-describedby\": ariaDescribedBy,\n\n onChange,\n onCancel,\n onClear,\n\n labels,\n\n horizontalPlacement = \"right\",\n disablePortal = true,\n escapeWithReference = true,\n\n height,\n\n ...others\n}) => {\n const classes = useStyles();\n const [filterGroupOpen, setFilterGroupOpen] = useState(false);\n\n const { defaultValue, filterValues, rollbackFilters, clearFilters, applyFilters, applyDisabled } =\n useContext(FilterGroupContext);\n\n const focusTarget = useRef();\n\n const focusOnContainer = () => {\n focusTarget.current?.focus();\n };\n\n const onApplyHandler = (evt) => {\n applyFilters();\n onChange?.(evt, filterValues);\n setFilterGroupOpen(false);\n };\n\n const onCancelHandler = (evt) => {\n rollbackFilters();\n onCancel?.(evt);\n setFilterGroupOpen(false);\n };\n\n const onClearHandler = (evt) => {\n clearFilters();\n onClear?.(evt);\n };\n\n const handleToggle = (evt, open) => {\n /* \n If evt is null this toggle wasn't triggered by the user.\n instead it was triggered by the baseDropdown useEffect after\n the datepicker changed the expanded value this baseDropdown behavior needs a review\n */\n if (evt === null) return;\n setFilterGroupOpen(open);\n if (!open) onCancelHandler?.(evt);\n };\n\n const Header = useMemo(\n () => (\n <>\n <Filters />\n <HvTypography variant=\"highlightText\">{labels.placeholder}</HvTypography>\n </>\n ),\n [labels.placeholder]\n );\n\n return (\n <HvBaseDropdown\n id={setId(id, \"dropdown\")}\n role=\"combobox\"\n classes={{\n root: classes.dropdown,\n panel: classes.panel,\n selection: classes.baseDropdownSelection,\n header: classes.header,\n }}\n disabled={disabled}\n disablePortal={disablePortal}\n variableWidth\n placement={horizontalPlacement}\n expanded={filterGroupOpen}\n onToggle={handleToggle}\n onClickOutside={onCancelHandler}\n onContainerCreation={focusOnContainer}\n placeholder={Header}\n adornment={<Counter />}\n popperProps={{ modifiers: [{ name: \"preventOverflow\", enabled: escapeWithReference }] }}\n aria-haspopup=\"dialog\"\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-invalid={status === \"invalid\" ? true : undefined}\n aria-errormessage={status === \"invalid\" ? setId(id, \"error\") : undefined}\n aria-describedby={\n [description && setId(id, \"description\"), ariaDescribedBy].join(\" \").trim() || undefined\n }\n {...others}\n >\n <div ref={focusTarget} tabIndex={-1} />\n <div className={classes.root} style={{ height }}>\n <LeftPanel id={id} className={classes.leftSidePanel} />\n <RightPanel id={id} className={classes.rightSidePanel} labels={labels} />\n </div>\n <HvActionBar className={classes.actionBar}>\n <HvButton\n id={setId(id, \"clearFilters-button\")}\n disabled={\n defaultValue\n ? defaultValue.flat().length === filterValues.flat().length\n : filterValues.flat().length === 0\n }\n category=\"ghost\"\n onClick={onClearHandler}\n >\n {labels.clearLabel}\n </HvButton>\n <div aria-hidden=\"true\" className={classes.space}>\n &nbsp;\n </div>\n <HvButton\n id={setId(id, \"apply-button\")}\n disabled={applyDisabled}\n category=\"ghost\"\n onClick={onApplyHandler}\n >\n {labels.applyLabel}\n </HvButton>\n <HvButton id={setId(id, \"cancel-button\")} category=\"ghost\" onClick={onCancelHandler}>\n {labels.cancelLabel}\n </HvButton>\n </HvActionBar>\n </HvBaseDropdown>\n );\n};\n\nFilterContent.propTypes = {\n id: PropTypes.string,\n\n \"aria-label\": PropTypes.string,\n \"aria-labelledby\": PropTypes.string,\n description: PropTypes.node,\n \"aria-describedby\": PropTypes.string,\n disabled: PropTypes.bool,\n status: PropTypes.oneOf([\"standBy\", \"valid\", \"invalid\"]),\n\n onChange: PropTypes.func,\n onCancel: PropTypes.func,\n onClear: PropTypes.func,\n\n labels: PropTypes.shape({\n applyLabel: PropTypes.string,\n cancelLabel: PropTypes.string,\n clearLabel: PropTypes.string,\n placeholder: PropTypes.string,\n searchBoxPlaceholder: PropTypes.string,\n selectAll: PropTypes.string,\n multiSelectionConjunction: PropTypes.string,\n }),\n\n horizontalPlacement: PropTypes.oneOf([\"left\", \"right\"]),\n disablePortal: PropTypes.bool,\n escapeWithReference: PropTypes.bool,\n height: PropTypes.any,\n};\n\nexport default FilterContent;\n"],"file":"FilterContent.js"}
@@ -76,6 +76,12 @@ export interface HvFilterGroupProps
76
76
  }[];
77
77
  }[];
78
78
 
79
+ /**
80
+ * The default value of the filter group.
81
+ * If defined the clear action will reset to it.
82
+ */
83
+ defaultValue?: FilterValue;
84
+
79
85
  /**
80
86
  * The value of the filter group.
81
87
  */
@@ -33,7 +33,7 @@ var _styles = _interopRequireDefault(require("./styles"));
33
33
 
34
34
  var _ = require("..");
35
35
 
36
- var _excluded = ["className", "id", "name", "required", "disabled", "label", "aria-label", "aria-labelledby", "description", "aria-describedby", "onChange", "onCancel", "onClear", "status", "statusMessage", "labels", "value", "filters", "horizontalPlacement", "disablePortal", "escapeWithReference", "height", "filterContentProps"];
36
+ var _excluded = ["className", "id", "name", "required", "disabled", "label", "aria-label", "aria-labelledby", "description", "aria-describedby", "onChange", "onCancel", "onClear", "status", "statusMessage", "labels", "defaultValue", "value", "filters", "horizontalPlacement", "disablePortal", "escapeWithReference", "height", "filterContentProps"];
37
37
  var DEFAULT_LABELS = {
38
38
  applyLabel: "Apply",
39
39
  cancelLabel: "Cancel",
@@ -63,6 +63,7 @@ var HvFilterGroup = function HvFilterGroup(_ref) {
63
63
  status = _ref.status,
64
64
  statusMessage = _ref.statusMessage,
65
65
  labelsProp = _ref.labels,
66
+ defaultValue = _ref.defaultValue,
66
67
  value = _ref.value,
67
68
  filters = _ref.filters,
68
69
  _ref$horizontalPlacem = _ref.horizontalPlacement,
@@ -107,6 +108,7 @@ var HvFilterGroup = function HvFilterGroup(_ref) {
107
108
  id: (0, _.setId)(elementId, "description"),
108
109
  className: classes.description
109
110
  }, description)), /*#__PURE__*/_react.default.createElement(_FilterGroupContext.FilterGroupProvider, {
111
+ defaultValue: defaultValue,
110
112
  value: value,
111
113
  filters: filters
112
114
  }, /*#__PURE__*/_react.default.createElement(_FilterContent.default, (0, _extends2.default)({
@@ -267,6 +269,12 @@ process.env.NODE_ENV !== "production" ? HvFilterGroup.propTypes = {
267
269
  })).isRequired
268
270
  })).isRequired,
269
271
 
272
+ /**
273
+ * The default value of the filter group.
274
+ * If defined the clear action will reset to it.
275
+ */
276
+ defaultValue: _propTypes.default.arrayOf(_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]))),
277
+
270
278
  /**
271
279
  * The value of the filter group.
272
280
  */
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/FilterGroup/FilterGroup.js"],"names":["DEFAULT_LABELS","applyLabel","cancelLabel","clearLabel","placeholder","searchBoxPlaceholder","selectAll","multiSelectionConjunction","HvFilterGroup","className","id","name","required","disabled","label","ariaLabel","ariaLabelledBy","description","ariaDescribedBy","onChange","onCancel","onClear","status","statusMessage","labelsProp","labels","value","filters","horizontalPlacement","disablePortal","escapeWithReference","height","filterContentProps","others","classes","validationMessage","elementId","hasLabel","hasDescription","canShowError","undefined","root","labelContainer","error","propTypes","PropTypes","string","node","bool","oneOf","func","shape","arrayOf","isRequired","data","oneOfType","number","object","expanded"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport clsx from \"clsx\";\nimport PropTypes from \"prop-types\";\nimport { FilterGroupProvider } from \"./FilterGroupContext\";\nimport FilterContent from \"./FilterContent\";\nimport useStyles from \"./styles\";\nimport {\n setId,\n useLabels,\n useUniqueId,\n useControlled,\n HvFormElement,\n HvLabel,\n HvWarningText,\n HvInfoMessage,\n} from \"..\";\n\nconst DEFAULT_LABELS = {\n applyLabel: \"Apply\",\n cancelLabel: \"Cancel\",\n clearLabel: \"Clear Filters\",\n placeholder: \"Filters\",\n searchBoxPlaceholder: \"Search\",\n selectAll: \"All\",\n multiSelectionConjunction: \"/\",\n};\n\nconst HvFilterGroup = ({\n className,\n\n id,\n name,\n\n required = false,\n disabled = false,\n\n label,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n description,\n \"aria-describedby\": ariaDescribedBy,\n\n onChange,\n onCancel,\n onClear,\n\n status,\n statusMessage,\n\n labels: labelsProp,\n\n value,\n filters,\n\n horizontalPlacement = \"right\",\n disablePortal = true,\n escapeWithReference = true,\n\n height = 350,\n filterContentProps,\n\n ...others\n}) => {\n const classes = useStyles();\n\n const [validationMessage] = useControlled(statusMessage, \"Required\");\n\n const elementId = useUniqueId(id, \"hvfiltergroup\");\n\n const labels = useLabels(DEFAULT_LABELS, labelsProp);\n\n const hasLabel = label != null;\n const hasDescription = description != null;\n\n // error message area will only be needed if the status is being controlled\n // or if required is true\n const canShowError = status !== undefined || required;\n\n return (\n <HvFormElement\n id={id}\n name={name}\n value={value}\n status={status}\n disabled={disabled}\n required={required}\n className={clsx(className, classes.root)}\n {...others}\n >\n {(hasLabel || hasDescription) && (\n <div className={classes.labelContainer}>\n {hasLabel && (\n <HvLabel\n id={setId(elementId, \"label\")}\n htmlFor={setId(elementId, \"input\")}\n label={label}\n className={classes.label}\n />\n )}\n\n {hasDescription && (\n <HvInfoMessage id={setId(elementId, \"description\")} className={classes.description}>\n {description}\n </HvInfoMessage>\n )}\n </div>\n )}\n <FilterGroupProvider value={value} filters={filters}>\n <FilterContent\n id={elementId}\n disabled={disabled}\n disablePortal={disablePortal}\n variableWidth\n placement={horizontalPlacement}\n escapeWithReference={escapeWithReference}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n status={status}\n onChange={onChange}\n onCancel={onCancel}\n onClear={onClear}\n labels={labels}\n height={height}\n {...filterContentProps}\n />\n {canShowError && (\n <HvWarningText id={setId(elementId, \"error\")} disableBorder className={classes.error}>\n {validationMessage}\n </HvWarningText>\n )}\n </FilterGroupProvider>\n </HvFormElement>\n );\n};\n\nHvFilterGroup.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n\n /**\n * Id to be applied to the form element root node.\n */\n id: PropTypes.string,\n\n /**\n * The form element name.\n */\n name: PropTypes.string,\n\n /**\n * The label of the form element.\n *\n * The form element must be labeled for accessibility reasons.\n * If not provided, an aria-label or aria-labelledby must be provided instead.\n */\n label: PropTypes.node,\n /**\n * @ignore\n */\n \"aria-label\": PropTypes.string,\n /**\n * @ignore\n */\n \"aria-labelledby\": PropTypes.string,\n /**\n * Provide additional descriptive text for the form element.\n */\n description: PropTypes.node,\n /**\n * @ignore\n */\n \"aria-describedby\": PropTypes.string,\n\n /**\n * Indicates that the form element is disabled.\n */\n disabled: PropTypes.bool,\n /**\n * Indicates that user input is required on the form element.\n */\n required: PropTypes.bool,\n\n /**\n * The status of the form element.\n *\n * Valid is correct, invalid is incorrect and standBy means no validations have run.\n *\n * When uncontrolled and unspecified it will default to \"standBy\" and change to either \"valid\"\n * or \"invalid\" after any change to the state.\n */\n status: PropTypes.oneOf([\"standBy\", \"valid\", \"invalid\"]),\n /**\n * The error message to show when `status` is \"invalid\". Defaults to \"Required\".\n */\n statusMessage: PropTypes.node,\n\n /**\n * The callback fired when the value changes.\n */\n onChange: PropTypes.func,\n\n /**\n * The callback fired when the cancel button is clicked.\n */\n onCancel: PropTypes.func,\n\n /**\n * The callback fired when the clear filters button is clicked.\n */\n onClear: PropTypes.func,\n\n /**\n * An object containing all the labels for the Filter Group.\n */\n labels: PropTypes.shape({\n /**\n * Apply button label.\n */\n applyLabel: PropTypes.string,\n /**\n * Cancel button label.\n */\n cancelLabel: PropTypes.string,\n /**\n * Clear Filters button label.\n */\n clearLabel: PropTypes.string,\n /**\n * Placeholder label.\n */\n placeholder: PropTypes.string,\n /**\n * SearchBox placeholder label.\n */\n searchBoxPlaceholder: PropTypes.string,\n /**\n * Select All placeholder label.\n */\n selectAll: PropTypes.string,\n /**\n * Multi selection conjunction placeholder label.\n */\n multiSelectionConjunction: PropTypes.string,\n }),\n\n /**\n * The options of the filter group.\n */\n filters: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n name: PropTypes.string.isRequired,\n })\n ).isRequired,\n })\n ).isRequired,\n\n /**\n * The value of the filter group.\n */\n value: PropTypes.arrayOf(\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))\n ),\n /**\n * The placement where the filter group should be placed according to the input. Options are `left` or `right`.\n */\n horizontalPlacement: PropTypes.oneOf([\"left\", \"right\"]),\n\n /**\n * Disable the portal behavior. The children stay within it's parent DOM hierarchy.\n */\n disablePortal: PropTypes.bool,\n /**\n * Sets if the filter container should be out of the screen or stay visible.\n */\n escapeWithReference: PropTypes.bool,\n\n /**\n * The Height of the filter panel, between 295 and 425. Defaults to 350\n */\n height: PropTypes.oneOf([PropTypes.number, PropTypes.string]),\n\n /**\n * The filter content props\n */\n filterContentProps: PropTypes.object,\n\n /**\n * If `true` the filter group starts opened if `false` it starts closed.\n */\n expanded: PropTypes.bool,\n};\n\nexport default HvFilterGroup;\n"],"file":"FilterGroup.js"}
1
+ {"version":3,"sources":["../../src/FilterGroup/FilterGroup.js"],"names":["DEFAULT_LABELS","applyLabel","cancelLabel","clearLabel","placeholder","searchBoxPlaceholder","selectAll","multiSelectionConjunction","HvFilterGroup","className","id","name","required","disabled","label","ariaLabel","ariaLabelledBy","description","ariaDescribedBy","onChange","onCancel","onClear","status","statusMessage","labelsProp","labels","defaultValue","value","filters","horizontalPlacement","disablePortal","escapeWithReference","height","filterContentProps","others","classes","validationMessage","elementId","hasLabel","hasDescription","canShowError","undefined","root","labelContainer","error","propTypes","PropTypes","string","node","bool","oneOf","func","shape","arrayOf","isRequired","data","oneOfType","number","object","expanded"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport clsx from \"clsx\";\nimport PropTypes from \"prop-types\";\nimport { FilterGroupProvider } from \"./FilterGroupContext\";\nimport FilterContent from \"./FilterContent\";\nimport useStyles from \"./styles\";\nimport {\n setId,\n useLabels,\n useUniqueId,\n useControlled,\n HvFormElement,\n HvLabel,\n HvWarningText,\n HvInfoMessage,\n} from \"..\";\n\nconst DEFAULT_LABELS = {\n applyLabel: \"Apply\",\n cancelLabel: \"Cancel\",\n clearLabel: \"Clear Filters\",\n placeholder: \"Filters\",\n searchBoxPlaceholder: \"Search\",\n selectAll: \"All\",\n multiSelectionConjunction: \"/\",\n};\n\nconst HvFilterGroup = ({\n className,\n\n id,\n name,\n\n required = false,\n disabled = false,\n\n label,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n description,\n \"aria-describedby\": ariaDescribedBy,\n\n onChange,\n onCancel,\n onClear,\n\n status,\n statusMessage,\n\n labels: labelsProp,\n\n defaultValue,\n value,\n filters,\n\n horizontalPlacement = \"right\",\n disablePortal = true,\n escapeWithReference = true,\n\n height = 350,\n filterContentProps,\n\n ...others\n}) => {\n const classes = useStyles();\n\n const [validationMessage] = useControlled(statusMessage, \"Required\");\n\n const elementId = useUniqueId(id, \"hvfiltergroup\");\n\n const labels = useLabels(DEFAULT_LABELS, labelsProp);\n\n const hasLabel = label != null;\n const hasDescription = description != null;\n\n // error message area will only be needed if the status is being controlled\n // or if required is true\n const canShowError = status !== undefined || required;\n\n return (\n <HvFormElement\n id={id}\n name={name}\n value={value}\n status={status}\n disabled={disabled}\n required={required}\n className={clsx(className, classes.root)}\n {...others}\n >\n {(hasLabel || hasDescription) && (\n <div className={classes.labelContainer}>\n {hasLabel && (\n <HvLabel\n id={setId(elementId, \"label\")}\n htmlFor={setId(elementId, \"input\")}\n label={label}\n className={classes.label}\n />\n )}\n\n {hasDescription && (\n <HvInfoMessage id={setId(elementId, \"description\")} className={classes.description}>\n {description}\n </HvInfoMessage>\n )}\n </div>\n )}\n <FilterGroupProvider defaultValue={defaultValue} value={value} filters={filters}>\n <FilterContent\n id={elementId}\n disabled={disabled}\n disablePortal={disablePortal}\n variableWidth\n placement={horizontalPlacement}\n escapeWithReference={escapeWithReference}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n status={status}\n onChange={onChange}\n onCancel={onCancel}\n onClear={onClear}\n labels={labels}\n height={height}\n {...filterContentProps}\n />\n {canShowError && (\n <HvWarningText id={setId(elementId, \"error\")} disableBorder className={classes.error}>\n {validationMessage}\n </HvWarningText>\n )}\n </FilterGroupProvider>\n </HvFormElement>\n );\n};\n\nHvFilterGroup.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n\n /**\n * Id to be applied to the form element root node.\n */\n id: PropTypes.string,\n\n /**\n * The form element name.\n */\n name: PropTypes.string,\n\n /**\n * The label of the form element.\n *\n * The form element must be labeled for accessibility reasons.\n * If not provided, an aria-label or aria-labelledby must be provided instead.\n */\n label: PropTypes.node,\n /**\n * @ignore\n */\n \"aria-label\": PropTypes.string,\n /**\n * @ignore\n */\n \"aria-labelledby\": PropTypes.string,\n /**\n * Provide additional descriptive text for the form element.\n */\n description: PropTypes.node,\n /**\n * @ignore\n */\n \"aria-describedby\": PropTypes.string,\n\n /**\n * Indicates that the form element is disabled.\n */\n disabled: PropTypes.bool,\n /**\n * Indicates that user input is required on the form element.\n */\n required: PropTypes.bool,\n\n /**\n * The status of the form element.\n *\n * Valid is correct, invalid is incorrect and standBy means no validations have run.\n *\n * When uncontrolled and unspecified it will default to \"standBy\" and change to either \"valid\"\n * or \"invalid\" after any change to the state.\n */\n status: PropTypes.oneOf([\"standBy\", \"valid\", \"invalid\"]),\n /**\n * The error message to show when `status` is \"invalid\". Defaults to \"Required\".\n */\n statusMessage: PropTypes.node,\n\n /**\n * The callback fired when the value changes.\n */\n onChange: PropTypes.func,\n\n /**\n * The callback fired when the cancel button is clicked.\n */\n onCancel: PropTypes.func,\n\n /**\n * The callback fired when the clear filters button is clicked.\n */\n onClear: PropTypes.func,\n\n /**\n * An object containing all the labels for the Filter Group.\n */\n labels: PropTypes.shape({\n /**\n * Apply button label.\n */\n applyLabel: PropTypes.string,\n /**\n * Cancel button label.\n */\n cancelLabel: PropTypes.string,\n /**\n * Clear Filters button label.\n */\n clearLabel: PropTypes.string,\n /**\n * Placeholder label.\n */\n placeholder: PropTypes.string,\n /**\n * SearchBox placeholder label.\n */\n searchBoxPlaceholder: PropTypes.string,\n /**\n * Select All placeholder label.\n */\n selectAll: PropTypes.string,\n /**\n * Multi selection conjunction placeholder label.\n */\n multiSelectionConjunction: PropTypes.string,\n }),\n\n /**\n * The options of the filter group.\n */\n filters: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n name: PropTypes.string.isRequired,\n })\n ).isRequired,\n })\n ).isRequired,\n\n /**\n * The default value of the filter group.\n * If defined the clear action will reset to it.\n */\n defaultValue: PropTypes.arrayOf(\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))\n ),\n\n /**\n * The value of the filter group.\n */\n value: PropTypes.arrayOf(\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))\n ),\n\n /**\n * The placement where the filter group should be placed according to the input. Options are `left` or `right`.\n */\n horizontalPlacement: PropTypes.oneOf([\"left\", \"right\"]),\n\n /**\n * Disable the portal behavior. The children stay within it's parent DOM hierarchy.\n */\n disablePortal: PropTypes.bool,\n /**\n * Sets if the filter container should be out of the screen or stay visible.\n */\n escapeWithReference: PropTypes.bool,\n\n /**\n * The Height of the filter panel, between 295 and 425. Defaults to 350\n */\n height: PropTypes.oneOf([PropTypes.number, PropTypes.string]),\n\n /**\n * The filter content props\n */\n filterContentProps: PropTypes.object,\n\n /**\n * If `true` the filter group starts opened if `false` it starts closed.\n */\n expanded: PropTypes.bool,\n};\n\nexport default HvFilterGroup;\n"],"file":"FilterGroup.js"}
@@ -59,7 +59,8 @@ var groups = function groups(filters) {
59
59
  };
60
60
 
61
61
  var FilterGroupProvider = function FilterGroupProvider(_ref) {
62
- var value = _ref.value,
62
+ var defaultValue = _ref.defaultValue,
63
+ value = _ref.value,
63
64
  filters = _ref.filters,
64
65
  children = _ref.children;
65
66
 
@@ -80,12 +81,15 @@ var FilterGroupProvider = function FilterGroupProvider(_ref) {
80
81
  applyDisabled = _useState4[0],
81
82
  setApplyDisabled = _useState4[1];
82
83
 
84
+ (0, _react.useEffect)(function () {
85
+ setFilterValues(value, true);
86
+ }, [value, setFilterValues]);
83
87
  (0, _react.useEffect)(function () {
84
88
  setApplyDisabled((0, _isEqual.default)(filterValues, appliedFilters));
85
89
  }, [filterValues, appliedFilters]);
86
90
  var clearFilters = (0, _react.useCallback)(function () {
87
- setFilterValues(groups(filters));
88
- }, [filters, setFilterValues]);
91
+ setFilterValues(defaultValue || groups(filters));
92
+ }, [filters, setFilterValues, defaultValue]);
89
93
  var applyFilters = (0, _react.useCallback)(function () {
90
94
  setFilterValues(filterValues, true);
91
95
  }, [filterValues, setFilterValues]);
@@ -100,9 +104,10 @@ var FilterGroupProvider = function FilterGroupProvider(_ref) {
100
104
  rollbackFilters: rollbackFilters,
101
105
  clearFilters: clearFilters,
102
106
  applyFilters: applyFilters,
103
- applyDisabled: applyDisabled
107
+ applyDisabled: applyDisabled,
108
+ defaultValue: defaultValue
104
109
  };
105
- }, [appliedFilters, applyDisabled, applyFilters, clearFilters, filterValues, filters, group, rollbackFilters, setFilterValues]);
110
+ }, [appliedFilters, applyDisabled, applyFilters, clearFilters, filterValues, filters, group, rollbackFilters, setFilterValues, defaultValue]);
106
111
  return /*#__PURE__*/_react.default.createElement(FilterGroupContext.Provider, {
107
112
  value: contextValue
108
113
  }, children);
@@ -110,6 +115,7 @@ var FilterGroupProvider = function FilterGroupProvider(_ref) {
110
115
 
111
116
  exports.FilterGroupProvider = FilterGroupProvider;
112
117
  process.env.NODE_ENV !== "production" ? FilterGroupProvider.propTypes = {
118
+ defaultValue: _propTypes.default.arrayOf(_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]))),
113
119
  value: _propTypes.default.arrayOf(_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]))),
114
120
  filters: _propTypes.default.arrayOf(_propTypes.default.shape({
115
121
  id: _propTypes.default.string.isRequired,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/FilterGroup/FilterGroupContext.js"],"names":["FilterGroupContext","React","createContext","activeGroup","setActiveGroup","filterOptions","setFilterOptions","filterValues","setFilterValues","rollbackFilters","clearFilters","applyFilters","applyDisabled","groups","filters","map","FilterGroupProvider","value","children","group","appliedFilters","setApplyDisabled","contextValue","propTypes","PropTypes","arrayOf","oneOfType","string","number","shape","id","isRequired","name","data","node"],"mappings":"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","sourcesContent":["import React, { useState, useEffect, useMemo, useCallback } from \"react\";\nimport PropTypes from \"prop-types\";\nimport isEqual from \"lodash/isEqual\";\nimport { useSavedState } from \"../utils\";\n\nexport const FilterGroupContext = React.createContext({\n activeGroup: 0,\n setActiveGroup: () => {},\n filterOptions: [],\n setFilterOptions: () => {},\n filterValues: [],\n setFilterValues: () => {},\n rollbackFilters: () => {},\n clearFilters: () => {},\n applyFilters: () => {},\n applyDisabled: false,\n});\n\nconst groups = (filters) => filters.map(() => []);\n\nexport const FilterGroupProvider = ({ value, filters, children }) => {\n const [group, setActiveGroup] = useState(0);\n const [filterValues, setFilterValues, rollbackFilters, appliedFilters] = useSavedState(\n value || groups(filters)\n );\n const [applyDisabled, setApplyDisabled] = useState(false);\n\n useEffect(() => {\n setApplyDisabled(isEqual(filterValues, appliedFilters));\n }, [filterValues, appliedFilters]);\n\n const clearFilters = useCallback(() => {\n setFilterValues(groups(filters));\n }, [filters, setFilterValues]);\n\n const applyFilters = useCallback(() => {\n setFilterValues(filterValues, true);\n }, [filterValues, setFilterValues]);\n\n const contextValue = useMemo(\n () => ({\n activeGroup: group,\n setActiveGroup,\n filterOptions: filters,\n filterValues,\n setFilterValues,\n appliedFilters,\n rollbackFilters,\n clearFilters,\n applyFilters,\n applyDisabled,\n }),\n [\n appliedFilters,\n applyDisabled,\n applyFilters,\n clearFilters,\n filterValues,\n filters,\n group,\n rollbackFilters,\n setFilterValues,\n ]\n );\n\n return <FilterGroupContext.Provider value={contextValue}>{children}</FilterGroupContext.Provider>;\n};\n\nFilterGroupProvider.propTypes = {\n value: PropTypes.arrayOf(\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))\n ),\n filters: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n name: PropTypes.string.isRequired,\n })\n ).isRequired,\n })\n ),\n children: PropTypes.node.isRequired,\n};\n"],"file":"FilterGroupContext.js"}
1
+ {"version":3,"sources":["../../src/FilterGroup/FilterGroupContext.js"],"names":["FilterGroupContext","React","createContext","activeGroup","setActiveGroup","filterOptions","setFilterOptions","filterValues","setFilterValues","rollbackFilters","clearFilters","applyFilters","applyDisabled","groups","filters","map","FilterGroupProvider","defaultValue","value","children","group","appliedFilters","setApplyDisabled","contextValue","propTypes","PropTypes","arrayOf","oneOfType","string","number","shape","id","isRequired","name","data","node"],"mappings":"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","sourcesContent":["import React, { useState, useEffect, useMemo, useCallback } from \"react\";\nimport PropTypes from \"prop-types\";\nimport isEqual from \"lodash/isEqual\";\nimport { useSavedState } from \"../utils\";\n\nexport const FilterGroupContext = React.createContext({\n activeGroup: 0,\n setActiveGroup: () => {},\n filterOptions: [],\n setFilterOptions: () => {},\n filterValues: [],\n setFilterValues: () => {},\n rollbackFilters: () => {},\n clearFilters: () => {},\n applyFilters: () => {},\n applyDisabled: false,\n});\n\nconst groups = (filters) => filters.map(() => []);\n\nexport const FilterGroupProvider = ({ defaultValue, value, filters, children }) => {\n const [group, setActiveGroup] = useState(0);\n const [filterValues, setFilterValues, rollbackFilters, appliedFilters] = useSavedState(\n value || groups(filters)\n );\n const [applyDisabled, setApplyDisabled] = useState(false);\n\n useEffect(() => {\n setFilterValues(value, true);\n }, [value, setFilterValues]);\n\n useEffect(() => {\n setApplyDisabled(isEqual(filterValues, appliedFilters));\n }, [filterValues, appliedFilters]);\n\n const clearFilters = useCallback(() => {\n setFilterValues(defaultValue || groups(filters));\n }, [filters, setFilterValues, defaultValue]);\n\n const applyFilters = useCallback(() => {\n setFilterValues(filterValues, true);\n }, [filterValues, setFilterValues]);\n\n const contextValue = useMemo(\n () => ({\n activeGroup: group,\n setActiveGroup,\n filterOptions: filters,\n filterValues,\n setFilterValues,\n appliedFilters,\n rollbackFilters,\n clearFilters,\n applyFilters,\n applyDisabled,\n defaultValue,\n }),\n [\n appliedFilters,\n applyDisabled,\n applyFilters,\n clearFilters,\n filterValues,\n filters,\n group,\n rollbackFilters,\n setFilterValues,\n defaultValue,\n ]\n );\n\n return <FilterGroupContext.Provider value={contextValue}>{children}</FilterGroupContext.Provider>;\n};\n\nFilterGroupProvider.propTypes = {\n defaultValue: PropTypes.arrayOf(\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))\n ),\n value: PropTypes.arrayOf(\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))\n ),\n filters: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n name: PropTypes.string.isRequired,\n })\n ).isRequired,\n })\n ),\n children: PropTypes.node.isRequired,\n};\n"],"file":"FilterGroupContext.js"}
@@ -51,6 +51,7 @@ var FilterContent = function FilterContent(_ref) {
51
51
  setFilterGroupOpen = _useState2[1];
52
52
 
53
53
  var _useContext = useContext(FilterGroupContext),
54
+ defaultValue = _useContext.defaultValue,
54
55
  filterValues = _useContext.filterValues,
55
56
  rollbackFilters = _useContext.rollbackFilters,
56
57
  clearFilters = _useContext.clearFilters,
@@ -148,7 +149,7 @@ var FilterContent = function FilterContent(_ref) {
148
149
  className: classes.actionBar
149
150
  }, /*#__PURE__*/React.createElement(HvButton, {
150
151
  id: setId(id, "clearFilters-button"),
151
- disabled: filterValues.flat().length === 0,
152
+ disabled: defaultValue ? defaultValue.flat().length === filterValues.flat().length : filterValues.flat().length === 0,
152
153
  category: "ghost",
153
154
  onClick: onClearHandler
154
155
  }, labels.clearLabel), /*#__PURE__*/React.createElement("div", {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/FilterGroup/FilterContent/FilterContent.js"],"names":["React","useMemo","useState","useRef","useContext","PropTypes","Filters","FilterGroupContext","LeftPanel","RightPanel","Counter","useStyles","setId","HvBaseDropdown","HvTypography","HvButton","HvActionBar","FilterContent","id","status","disabled","ariaLabel","ariaLabelledBy","description","ariaDescribedBy","onChange","onCancel","onClear","labels","horizontalPlacement","disablePortal","escapeWithReference","height","others","classes","filterGroupOpen","setFilterGroupOpen","filterValues","rollbackFilters","clearFilters","applyFilters","applyDisabled","focusTarget","focusOnContainer","current","focus","onApplyHandler","evt","onCancelHandler","onClearHandler","handleToggle","open","Header","placeholder","root","dropdown","panel","selection","baseDropdownSelection","header","modifiers","name","enabled","undefined","join","trim","leftSidePanel","rightSidePanel","actionBar","flat","length","clearLabel","space","applyLabel","cancelLabel","propTypes","string","node","bool","oneOf","func","shape","searchBoxPlaceholder","selectAll","multiSelectionConjunction","any"],"mappings":"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","sourcesContent":["import React, { useMemo, useState, useRef, useContext } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Filters } from \"@hitachivantara/uikit-react-icons\";\nimport { FilterGroupContext } from \"../FilterGroupContext\";\nimport LeftPanel from \"../LeftPanel\";\nimport RightPanel from \"../RightPanel\";\nimport Counter from \"../Counter\";\n\nimport useStyles from \"./styles\";\n\nimport { setId, HvBaseDropdown, HvTypography, HvButton, HvActionBar } from \"../..\";\n\nconst FilterContent = ({\n id,\n status,\n disabled = false,\n\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n description,\n \"aria-describedby\": ariaDescribedBy,\n\n onChange,\n onCancel,\n onClear,\n\n labels,\n\n horizontalPlacement = \"right\",\n disablePortal = true,\n escapeWithReference = true,\n\n height,\n\n ...others\n}) => {\n const classes = useStyles();\n const [filterGroupOpen, setFilterGroupOpen] = useState(false);\n\n const { filterValues, rollbackFilters, clearFilters, applyFilters, applyDisabled } =\n useContext(FilterGroupContext);\n\n const focusTarget = useRef();\n\n const focusOnContainer = () => {\n focusTarget.current?.focus();\n };\n\n const onApplyHandler = (evt) => {\n applyFilters();\n onChange?.(evt, filterValues);\n setFilterGroupOpen(false);\n };\n\n const onCancelHandler = (evt) => {\n rollbackFilters();\n onCancel?.(evt);\n setFilterGroupOpen(false);\n };\n\n const onClearHandler = (evt) => {\n clearFilters();\n onClear?.(evt);\n };\n\n const handleToggle = (evt, open) => {\n /* \n If evt is null this toggle wasn't triggered by the user.\n instead it was triggered by the baseDropdown useEffect after\n the datepicker changed the expanded value this baseDropdown behavior needs a review\n */\n if (evt === null) return;\n setFilterGroupOpen(open);\n if (!open) onCancelHandler?.(evt);\n };\n\n const Header = useMemo(\n () => (\n <>\n <Filters />\n <HvTypography variant=\"highlightText\">{labels.placeholder}</HvTypography>\n </>\n ),\n [labels.placeholder]\n );\n\n return (\n <HvBaseDropdown\n id={setId(id, \"dropdown\")}\n role=\"combobox\"\n classes={{\n root: classes.dropdown,\n panel: classes.panel,\n selection: classes.baseDropdownSelection,\n header: classes.header,\n }}\n disabled={disabled}\n disablePortal={disablePortal}\n variableWidth\n placement={horizontalPlacement}\n expanded={filterGroupOpen}\n onToggle={handleToggle}\n onClickOutside={onCancelHandler}\n onContainerCreation={focusOnContainer}\n placeholder={Header}\n adornment={<Counter />}\n popperProps={{ modifiers: [{ name: \"preventOverflow\", enabled: escapeWithReference }] }}\n aria-haspopup=\"dialog\"\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-invalid={status === \"invalid\" ? true : undefined}\n aria-errormessage={status === \"invalid\" ? setId(id, \"error\") : undefined}\n aria-describedby={\n [description && setId(id, \"description\"), ariaDescribedBy].join(\" \").trim() || undefined\n }\n {...others}\n >\n <div ref={focusTarget} tabIndex={-1} />\n <div className={classes.root} style={{ height }}>\n <LeftPanel id={id} className={classes.leftSidePanel} />\n <RightPanel id={id} className={classes.rightSidePanel} labels={labels} />\n </div>\n <HvActionBar className={classes.actionBar}>\n <HvButton\n id={setId(id, \"clearFilters-button\")}\n disabled={filterValues.flat().length === 0}\n category=\"ghost\"\n onClick={onClearHandler}\n >\n {labels.clearLabel}\n </HvButton>\n <div aria-hidden=\"true\" className={classes.space}>\n &nbsp;\n </div>\n <HvButton\n id={setId(id, \"apply-button\")}\n disabled={applyDisabled}\n category=\"ghost\"\n onClick={onApplyHandler}\n >\n {labels.applyLabel}\n </HvButton>\n <HvButton id={setId(id, \"cancel-button\")} category=\"ghost\" onClick={onCancelHandler}>\n {labels.cancelLabel}\n </HvButton>\n </HvActionBar>\n </HvBaseDropdown>\n );\n};\n\nFilterContent.propTypes = {\n id: PropTypes.string,\n\n \"aria-label\": PropTypes.string,\n \"aria-labelledby\": PropTypes.string,\n description: PropTypes.node,\n \"aria-describedby\": PropTypes.string,\n disabled: PropTypes.bool,\n status: PropTypes.oneOf([\"standBy\", \"valid\", \"invalid\"]),\n\n onChange: PropTypes.func,\n onCancel: PropTypes.func,\n onClear: PropTypes.func,\n\n labels: PropTypes.shape({\n applyLabel: PropTypes.string,\n cancelLabel: PropTypes.string,\n clearLabel: PropTypes.string,\n placeholder: PropTypes.string,\n searchBoxPlaceholder: PropTypes.string,\n selectAll: PropTypes.string,\n multiSelectionConjunction: PropTypes.string,\n }),\n\n horizontalPlacement: PropTypes.oneOf([\"left\", \"right\"]),\n disablePortal: PropTypes.bool,\n escapeWithReference: PropTypes.bool,\n height: PropTypes.any,\n};\n\nexport default FilterContent;\n"],"file":"FilterContent.js"}
1
+ {"version":3,"sources":["../../../../src/FilterGroup/FilterContent/FilterContent.js"],"names":["React","useMemo","useState","useRef","useContext","PropTypes","Filters","FilterGroupContext","LeftPanel","RightPanel","Counter","useStyles","setId","HvBaseDropdown","HvTypography","HvButton","HvActionBar","FilterContent","id","status","disabled","ariaLabel","ariaLabelledBy","description","ariaDescribedBy","onChange","onCancel","onClear","labels","horizontalPlacement","disablePortal","escapeWithReference","height","others","classes","filterGroupOpen","setFilterGroupOpen","defaultValue","filterValues","rollbackFilters","clearFilters","applyFilters","applyDisabled","focusTarget","focusOnContainer","current","focus","onApplyHandler","evt","onCancelHandler","onClearHandler","handleToggle","open","Header","placeholder","root","dropdown","panel","selection","baseDropdownSelection","header","modifiers","name","enabled","undefined","join","trim","leftSidePanel","rightSidePanel","actionBar","flat","length","clearLabel","space","applyLabel","cancelLabel","propTypes","string","node","bool","oneOf","func","shape","searchBoxPlaceholder","selectAll","multiSelectionConjunction","any"],"mappings":"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","sourcesContent":["import React, { useMemo, useState, useRef, useContext } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Filters } from \"@hitachivantara/uikit-react-icons\";\nimport { FilterGroupContext } from \"../FilterGroupContext\";\nimport LeftPanel from \"../LeftPanel\";\nimport RightPanel from \"../RightPanel\";\nimport Counter from \"../Counter\";\n\nimport useStyles from \"./styles\";\n\nimport { setId, HvBaseDropdown, HvTypography, HvButton, HvActionBar } from \"../..\";\n\nconst FilterContent = ({\n id,\n status,\n disabled = false,\n\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n description,\n \"aria-describedby\": ariaDescribedBy,\n\n onChange,\n onCancel,\n onClear,\n\n labels,\n\n horizontalPlacement = \"right\",\n disablePortal = true,\n escapeWithReference = true,\n\n height,\n\n ...others\n}) => {\n const classes = useStyles();\n const [filterGroupOpen, setFilterGroupOpen] = useState(false);\n\n const { defaultValue, filterValues, rollbackFilters, clearFilters, applyFilters, applyDisabled } =\n useContext(FilterGroupContext);\n\n const focusTarget = useRef();\n\n const focusOnContainer = () => {\n focusTarget.current?.focus();\n };\n\n const onApplyHandler = (evt) => {\n applyFilters();\n onChange?.(evt, filterValues);\n setFilterGroupOpen(false);\n };\n\n const onCancelHandler = (evt) => {\n rollbackFilters();\n onCancel?.(evt);\n setFilterGroupOpen(false);\n };\n\n const onClearHandler = (evt) => {\n clearFilters();\n onClear?.(evt);\n };\n\n const handleToggle = (evt, open) => {\n /* \n If evt is null this toggle wasn't triggered by the user.\n instead it was triggered by the baseDropdown useEffect after\n the datepicker changed the expanded value this baseDropdown behavior needs a review\n */\n if (evt === null) return;\n setFilterGroupOpen(open);\n if (!open) onCancelHandler?.(evt);\n };\n\n const Header = useMemo(\n () => (\n <>\n <Filters />\n <HvTypography variant=\"highlightText\">{labels.placeholder}</HvTypography>\n </>\n ),\n [labels.placeholder]\n );\n\n return (\n <HvBaseDropdown\n id={setId(id, \"dropdown\")}\n role=\"combobox\"\n classes={{\n root: classes.dropdown,\n panel: classes.panel,\n selection: classes.baseDropdownSelection,\n header: classes.header,\n }}\n disabled={disabled}\n disablePortal={disablePortal}\n variableWidth\n placement={horizontalPlacement}\n expanded={filterGroupOpen}\n onToggle={handleToggle}\n onClickOutside={onCancelHandler}\n onContainerCreation={focusOnContainer}\n placeholder={Header}\n adornment={<Counter />}\n popperProps={{ modifiers: [{ name: \"preventOverflow\", enabled: escapeWithReference }] }}\n aria-haspopup=\"dialog\"\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-invalid={status === \"invalid\" ? true : undefined}\n aria-errormessage={status === \"invalid\" ? setId(id, \"error\") : undefined}\n aria-describedby={\n [description && setId(id, \"description\"), ariaDescribedBy].join(\" \").trim() || undefined\n }\n {...others}\n >\n <div ref={focusTarget} tabIndex={-1} />\n <div className={classes.root} style={{ height }}>\n <LeftPanel id={id} className={classes.leftSidePanel} />\n <RightPanel id={id} className={classes.rightSidePanel} labels={labels} />\n </div>\n <HvActionBar className={classes.actionBar}>\n <HvButton\n id={setId(id, \"clearFilters-button\")}\n disabled={\n defaultValue\n ? defaultValue.flat().length === filterValues.flat().length\n : filterValues.flat().length === 0\n }\n category=\"ghost\"\n onClick={onClearHandler}\n >\n {labels.clearLabel}\n </HvButton>\n <div aria-hidden=\"true\" className={classes.space}>\n &nbsp;\n </div>\n <HvButton\n id={setId(id, \"apply-button\")}\n disabled={applyDisabled}\n category=\"ghost\"\n onClick={onApplyHandler}\n >\n {labels.applyLabel}\n </HvButton>\n <HvButton id={setId(id, \"cancel-button\")} category=\"ghost\" onClick={onCancelHandler}>\n {labels.cancelLabel}\n </HvButton>\n </HvActionBar>\n </HvBaseDropdown>\n );\n};\n\nFilterContent.propTypes = {\n id: PropTypes.string,\n\n \"aria-label\": PropTypes.string,\n \"aria-labelledby\": PropTypes.string,\n description: PropTypes.node,\n \"aria-describedby\": PropTypes.string,\n disabled: PropTypes.bool,\n status: PropTypes.oneOf([\"standBy\", \"valid\", \"invalid\"]),\n\n onChange: PropTypes.func,\n onCancel: PropTypes.func,\n onClear: PropTypes.func,\n\n labels: PropTypes.shape({\n applyLabel: PropTypes.string,\n cancelLabel: PropTypes.string,\n clearLabel: PropTypes.string,\n placeholder: PropTypes.string,\n searchBoxPlaceholder: PropTypes.string,\n selectAll: PropTypes.string,\n multiSelectionConjunction: PropTypes.string,\n }),\n\n horizontalPlacement: PropTypes.oneOf([\"left\", \"right\"]),\n disablePortal: PropTypes.bool,\n escapeWithReference: PropTypes.bool,\n height: PropTypes.any,\n};\n\nexport default FilterContent;\n"],"file":"FilterContent.js"}
@@ -76,6 +76,12 @@ export interface HvFilterGroupProps
76
76
  }[];
77
77
  }[];
78
78
 
79
+ /**
80
+ * The default value of the filter group.
81
+ * If defined the clear action will reset to it.
82
+ */
83
+ defaultValue?: FilterValue;
84
+
79
85
  /**
80
86
  * The value of the filter group.
81
87
  */
@@ -1,7 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
3
3
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
4
- var _excluded = ["className", "id", "name", "required", "disabled", "label", "aria-label", "aria-labelledby", "description", "aria-describedby", "onChange", "onCancel", "onClear", "status", "statusMessage", "labels", "value", "filters", "horizontalPlacement", "disablePortal", "escapeWithReference", "height", "filterContentProps"];
4
+ var _excluded = ["className", "id", "name", "required", "disabled", "label", "aria-label", "aria-labelledby", "description", "aria-describedby", "onChange", "onCancel", "onClear", "status", "statusMessage", "labels", "defaultValue", "value", "filters", "horizontalPlacement", "disablePortal", "escapeWithReference", "height", "filterContentProps"];
5
5
  import "core-js/modules/es.function.name.js";
6
6
  import "core-js/modules/es.symbol.js";
7
7
  import "core-js/modules/es.symbol.description.js";
@@ -41,6 +41,7 @@ var HvFilterGroup = function HvFilterGroup(_ref) {
41
41
  status = _ref.status,
42
42
  statusMessage = _ref.statusMessage,
43
43
  labelsProp = _ref.labels,
44
+ defaultValue = _ref.defaultValue,
44
45
  value = _ref.value,
45
46
  filters = _ref.filters,
46
47
  _ref$horizontalPlacem = _ref.horizontalPlacement,
@@ -86,6 +87,7 @@ var HvFilterGroup = function HvFilterGroup(_ref) {
86
87
  id: setId(elementId, "description"),
87
88
  className: classes.description
88
89
  }, description)), /*#__PURE__*/React.createElement(FilterGroupProvider, {
90
+ defaultValue: defaultValue,
89
91
  value: value,
90
92
  filters: filters
91
93
  }, /*#__PURE__*/React.createElement(FilterContent, _extends({
@@ -246,6 +248,12 @@ process.env.NODE_ENV !== "production" ? HvFilterGroup.propTypes = {
246
248
  })).isRequired
247
249
  })).isRequired,
248
250
 
251
+ /**
252
+ * The default value of the filter group.
253
+ * If defined the clear action will reset to it.
254
+ */
255
+ defaultValue: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))),
256
+
249
257
  /**
250
258
  * The value of the filter group.
251
259
  */
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/FilterGroup/FilterGroup.js"],"names":["React","clsx","PropTypes","FilterGroupProvider","FilterContent","useStyles","setId","useLabels","useUniqueId","useControlled","HvFormElement","HvLabel","HvWarningText","HvInfoMessage","DEFAULT_LABELS","applyLabel","cancelLabel","clearLabel","placeholder","searchBoxPlaceholder","selectAll","multiSelectionConjunction","HvFilterGroup","className","id","name","required","disabled","label","ariaLabel","ariaLabelledBy","description","ariaDescribedBy","onChange","onCancel","onClear","status","statusMessage","labelsProp","labels","value","filters","horizontalPlacement","disablePortal","escapeWithReference","height","filterContentProps","others","classes","validationMessage","elementId","hasLabel","hasDescription","canShowError","undefined","root","labelContainer","error","propTypes","string","node","bool","oneOf","func","shape","arrayOf","isRequired","data","oneOfType","number","object","expanded"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport clsx from \"clsx\";\nimport PropTypes from \"prop-types\";\nimport { FilterGroupProvider } from \"./FilterGroupContext\";\nimport FilterContent from \"./FilterContent\";\nimport useStyles from \"./styles\";\nimport {\n setId,\n useLabels,\n useUniqueId,\n useControlled,\n HvFormElement,\n HvLabel,\n HvWarningText,\n HvInfoMessage,\n} from \"..\";\n\nconst DEFAULT_LABELS = {\n applyLabel: \"Apply\",\n cancelLabel: \"Cancel\",\n clearLabel: \"Clear Filters\",\n placeholder: \"Filters\",\n searchBoxPlaceholder: \"Search\",\n selectAll: \"All\",\n multiSelectionConjunction: \"/\",\n};\n\nconst HvFilterGroup = ({\n className,\n\n id,\n name,\n\n required = false,\n disabled = false,\n\n label,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n description,\n \"aria-describedby\": ariaDescribedBy,\n\n onChange,\n onCancel,\n onClear,\n\n status,\n statusMessage,\n\n labels: labelsProp,\n\n value,\n filters,\n\n horizontalPlacement = \"right\",\n disablePortal = true,\n escapeWithReference = true,\n\n height = 350,\n filterContentProps,\n\n ...others\n}) => {\n const classes = useStyles();\n\n const [validationMessage] = useControlled(statusMessage, \"Required\");\n\n const elementId = useUniqueId(id, \"hvfiltergroup\");\n\n const labels = useLabels(DEFAULT_LABELS, labelsProp);\n\n const hasLabel = label != null;\n const hasDescription = description != null;\n\n // error message area will only be needed if the status is being controlled\n // or if required is true\n const canShowError = status !== undefined || required;\n\n return (\n <HvFormElement\n id={id}\n name={name}\n value={value}\n status={status}\n disabled={disabled}\n required={required}\n className={clsx(className, classes.root)}\n {...others}\n >\n {(hasLabel || hasDescription) && (\n <div className={classes.labelContainer}>\n {hasLabel && (\n <HvLabel\n id={setId(elementId, \"label\")}\n htmlFor={setId(elementId, \"input\")}\n label={label}\n className={classes.label}\n />\n )}\n\n {hasDescription && (\n <HvInfoMessage id={setId(elementId, \"description\")} className={classes.description}>\n {description}\n </HvInfoMessage>\n )}\n </div>\n )}\n <FilterGroupProvider value={value} filters={filters}>\n <FilterContent\n id={elementId}\n disabled={disabled}\n disablePortal={disablePortal}\n variableWidth\n placement={horizontalPlacement}\n escapeWithReference={escapeWithReference}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n status={status}\n onChange={onChange}\n onCancel={onCancel}\n onClear={onClear}\n labels={labels}\n height={height}\n {...filterContentProps}\n />\n {canShowError && (\n <HvWarningText id={setId(elementId, \"error\")} disableBorder className={classes.error}>\n {validationMessage}\n </HvWarningText>\n )}\n </FilterGroupProvider>\n </HvFormElement>\n );\n};\n\nHvFilterGroup.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n\n /**\n * Id to be applied to the form element root node.\n */\n id: PropTypes.string,\n\n /**\n * The form element name.\n */\n name: PropTypes.string,\n\n /**\n * The label of the form element.\n *\n * The form element must be labeled for accessibility reasons.\n * If not provided, an aria-label or aria-labelledby must be provided instead.\n */\n label: PropTypes.node,\n /**\n * @ignore\n */\n \"aria-label\": PropTypes.string,\n /**\n * @ignore\n */\n \"aria-labelledby\": PropTypes.string,\n /**\n * Provide additional descriptive text for the form element.\n */\n description: PropTypes.node,\n /**\n * @ignore\n */\n \"aria-describedby\": PropTypes.string,\n\n /**\n * Indicates that the form element is disabled.\n */\n disabled: PropTypes.bool,\n /**\n * Indicates that user input is required on the form element.\n */\n required: PropTypes.bool,\n\n /**\n * The status of the form element.\n *\n * Valid is correct, invalid is incorrect and standBy means no validations have run.\n *\n * When uncontrolled and unspecified it will default to \"standBy\" and change to either \"valid\"\n * or \"invalid\" after any change to the state.\n */\n status: PropTypes.oneOf([\"standBy\", \"valid\", \"invalid\"]),\n /**\n * The error message to show when `status` is \"invalid\". Defaults to \"Required\".\n */\n statusMessage: PropTypes.node,\n\n /**\n * The callback fired when the value changes.\n */\n onChange: PropTypes.func,\n\n /**\n * The callback fired when the cancel button is clicked.\n */\n onCancel: PropTypes.func,\n\n /**\n * The callback fired when the clear filters button is clicked.\n */\n onClear: PropTypes.func,\n\n /**\n * An object containing all the labels for the Filter Group.\n */\n labels: PropTypes.shape({\n /**\n * Apply button label.\n */\n applyLabel: PropTypes.string,\n /**\n * Cancel button label.\n */\n cancelLabel: PropTypes.string,\n /**\n * Clear Filters button label.\n */\n clearLabel: PropTypes.string,\n /**\n * Placeholder label.\n */\n placeholder: PropTypes.string,\n /**\n * SearchBox placeholder label.\n */\n searchBoxPlaceholder: PropTypes.string,\n /**\n * Select All placeholder label.\n */\n selectAll: PropTypes.string,\n /**\n * Multi selection conjunction placeholder label.\n */\n multiSelectionConjunction: PropTypes.string,\n }),\n\n /**\n * The options of the filter group.\n */\n filters: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n name: PropTypes.string.isRequired,\n })\n ).isRequired,\n })\n ).isRequired,\n\n /**\n * The value of the filter group.\n */\n value: PropTypes.arrayOf(\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))\n ),\n /**\n * The placement where the filter group should be placed according to the input. Options are `left` or `right`.\n */\n horizontalPlacement: PropTypes.oneOf([\"left\", \"right\"]),\n\n /**\n * Disable the portal behavior. The children stay within it's parent DOM hierarchy.\n */\n disablePortal: PropTypes.bool,\n /**\n * Sets if the filter container should be out of the screen or stay visible.\n */\n escapeWithReference: PropTypes.bool,\n\n /**\n * The Height of the filter panel, between 295 and 425. Defaults to 350\n */\n height: PropTypes.oneOf([PropTypes.number, PropTypes.string]),\n\n /**\n * The filter content props\n */\n filterContentProps: PropTypes.object,\n\n /**\n * If `true` the filter group starts opened if `false` it starts closed.\n */\n expanded: PropTypes.bool,\n};\n\nexport default HvFilterGroup;\n"],"file":"FilterGroup.js"}
1
+ {"version":3,"sources":["../../../src/FilterGroup/FilterGroup.js"],"names":["React","clsx","PropTypes","FilterGroupProvider","FilterContent","useStyles","setId","useLabels","useUniqueId","useControlled","HvFormElement","HvLabel","HvWarningText","HvInfoMessage","DEFAULT_LABELS","applyLabel","cancelLabel","clearLabel","placeholder","searchBoxPlaceholder","selectAll","multiSelectionConjunction","HvFilterGroup","className","id","name","required","disabled","label","ariaLabel","ariaLabelledBy","description","ariaDescribedBy","onChange","onCancel","onClear","status","statusMessage","labelsProp","labels","defaultValue","value","filters","horizontalPlacement","disablePortal","escapeWithReference","height","filterContentProps","others","classes","validationMessage","elementId","hasLabel","hasDescription","canShowError","undefined","root","labelContainer","error","propTypes","string","node","bool","oneOf","func","shape","arrayOf","isRequired","data","oneOfType","number","object","expanded"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport clsx from \"clsx\";\nimport PropTypes from \"prop-types\";\nimport { FilterGroupProvider } from \"./FilterGroupContext\";\nimport FilterContent from \"./FilterContent\";\nimport useStyles from \"./styles\";\nimport {\n setId,\n useLabels,\n useUniqueId,\n useControlled,\n HvFormElement,\n HvLabel,\n HvWarningText,\n HvInfoMessage,\n} from \"..\";\n\nconst DEFAULT_LABELS = {\n applyLabel: \"Apply\",\n cancelLabel: \"Cancel\",\n clearLabel: \"Clear Filters\",\n placeholder: \"Filters\",\n searchBoxPlaceholder: \"Search\",\n selectAll: \"All\",\n multiSelectionConjunction: \"/\",\n};\n\nconst HvFilterGroup = ({\n className,\n\n id,\n name,\n\n required = false,\n disabled = false,\n\n label,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n description,\n \"aria-describedby\": ariaDescribedBy,\n\n onChange,\n onCancel,\n onClear,\n\n status,\n statusMessage,\n\n labels: labelsProp,\n\n defaultValue,\n value,\n filters,\n\n horizontalPlacement = \"right\",\n disablePortal = true,\n escapeWithReference = true,\n\n height = 350,\n filterContentProps,\n\n ...others\n}) => {\n const classes = useStyles();\n\n const [validationMessage] = useControlled(statusMessage, \"Required\");\n\n const elementId = useUniqueId(id, \"hvfiltergroup\");\n\n const labels = useLabels(DEFAULT_LABELS, labelsProp);\n\n const hasLabel = label != null;\n const hasDescription = description != null;\n\n // error message area will only be needed if the status is being controlled\n // or if required is true\n const canShowError = status !== undefined || required;\n\n return (\n <HvFormElement\n id={id}\n name={name}\n value={value}\n status={status}\n disabled={disabled}\n required={required}\n className={clsx(className, classes.root)}\n {...others}\n >\n {(hasLabel || hasDescription) && (\n <div className={classes.labelContainer}>\n {hasLabel && (\n <HvLabel\n id={setId(elementId, \"label\")}\n htmlFor={setId(elementId, \"input\")}\n label={label}\n className={classes.label}\n />\n )}\n\n {hasDescription && (\n <HvInfoMessage id={setId(elementId, \"description\")} className={classes.description}>\n {description}\n </HvInfoMessage>\n )}\n </div>\n )}\n <FilterGroupProvider defaultValue={defaultValue} value={value} filters={filters}>\n <FilterContent\n id={elementId}\n disabled={disabled}\n disablePortal={disablePortal}\n variableWidth\n placement={horizontalPlacement}\n escapeWithReference={escapeWithReference}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n status={status}\n onChange={onChange}\n onCancel={onCancel}\n onClear={onClear}\n labels={labels}\n height={height}\n {...filterContentProps}\n />\n {canShowError && (\n <HvWarningText id={setId(elementId, \"error\")} disableBorder className={classes.error}>\n {validationMessage}\n </HvWarningText>\n )}\n </FilterGroupProvider>\n </HvFormElement>\n );\n};\n\nHvFilterGroup.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n\n /**\n * Id to be applied to the form element root node.\n */\n id: PropTypes.string,\n\n /**\n * The form element name.\n */\n name: PropTypes.string,\n\n /**\n * The label of the form element.\n *\n * The form element must be labeled for accessibility reasons.\n * If not provided, an aria-label or aria-labelledby must be provided instead.\n */\n label: PropTypes.node,\n /**\n * @ignore\n */\n \"aria-label\": PropTypes.string,\n /**\n * @ignore\n */\n \"aria-labelledby\": PropTypes.string,\n /**\n * Provide additional descriptive text for the form element.\n */\n description: PropTypes.node,\n /**\n * @ignore\n */\n \"aria-describedby\": PropTypes.string,\n\n /**\n * Indicates that the form element is disabled.\n */\n disabled: PropTypes.bool,\n /**\n * Indicates that user input is required on the form element.\n */\n required: PropTypes.bool,\n\n /**\n * The status of the form element.\n *\n * Valid is correct, invalid is incorrect and standBy means no validations have run.\n *\n * When uncontrolled and unspecified it will default to \"standBy\" and change to either \"valid\"\n * or \"invalid\" after any change to the state.\n */\n status: PropTypes.oneOf([\"standBy\", \"valid\", \"invalid\"]),\n /**\n * The error message to show when `status` is \"invalid\". Defaults to \"Required\".\n */\n statusMessage: PropTypes.node,\n\n /**\n * The callback fired when the value changes.\n */\n onChange: PropTypes.func,\n\n /**\n * The callback fired when the cancel button is clicked.\n */\n onCancel: PropTypes.func,\n\n /**\n * The callback fired when the clear filters button is clicked.\n */\n onClear: PropTypes.func,\n\n /**\n * An object containing all the labels for the Filter Group.\n */\n labels: PropTypes.shape({\n /**\n * Apply button label.\n */\n applyLabel: PropTypes.string,\n /**\n * Cancel button label.\n */\n cancelLabel: PropTypes.string,\n /**\n * Clear Filters button label.\n */\n clearLabel: PropTypes.string,\n /**\n * Placeholder label.\n */\n placeholder: PropTypes.string,\n /**\n * SearchBox placeholder label.\n */\n searchBoxPlaceholder: PropTypes.string,\n /**\n * Select All placeholder label.\n */\n selectAll: PropTypes.string,\n /**\n * Multi selection conjunction placeholder label.\n */\n multiSelectionConjunction: PropTypes.string,\n }),\n\n /**\n * The options of the filter group.\n */\n filters: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n name: PropTypes.string.isRequired,\n })\n ).isRequired,\n })\n ).isRequired,\n\n /**\n * The default value of the filter group.\n * If defined the clear action will reset to it.\n */\n defaultValue: PropTypes.arrayOf(\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))\n ),\n\n /**\n * The value of the filter group.\n */\n value: PropTypes.arrayOf(\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))\n ),\n\n /**\n * The placement where the filter group should be placed according to the input. Options are `left` or `right`.\n */\n horizontalPlacement: PropTypes.oneOf([\"left\", \"right\"]),\n\n /**\n * Disable the portal behavior. The children stay within it's parent DOM hierarchy.\n */\n disablePortal: PropTypes.bool,\n /**\n * Sets if the filter container should be out of the screen or stay visible.\n */\n escapeWithReference: PropTypes.bool,\n\n /**\n * The Height of the filter panel, between 295 and 425. Defaults to 350\n */\n height: PropTypes.oneOf([PropTypes.number, PropTypes.string]),\n\n /**\n * The filter content props\n */\n filterContentProps: PropTypes.object,\n\n /**\n * If `true` the filter group starts opened if `false` it starts closed.\n */\n expanded: PropTypes.bool,\n};\n\nexport default HvFilterGroup;\n"],"file":"FilterGroup.js"}
@@ -24,7 +24,8 @@ var groups = function groups(filters) {
24
24
  };
25
25
 
26
26
  export var FilterGroupProvider = function FilterGroupProvider(_ref) {
27
- var value = _ref.value,
27
+ var defaultValue = _ref.defaultValue,
28
+ value = _ref.value,
28
29
  filters = _ref.filters,
29
30
  children = _ref.children;
30
31
 
@@ -45,12 +46,15 @@ export var FilterGroupProvider = function FilterGroupProvider(_ref) {
45
46
  applyDisabled = _useState4[0],
46
47
  setApplyDisabled = _useState4[1];
47
48
 
49
+ useEffect(function () {
50
+ setFilterValues(value, true);
51
+ }, [value, setFilterValues]);
48
52
  useEffect(function () {
49
53
  setApplyDisabled(isEqual(filterValues, appliedFilters));
50
54
  }, [filterValues, appliedFilters]);
51
55
  var clearFilters = useCallback(function () {
52
- setFilterValues(groups(filters));
53
- }, [filters, setFilterValues]);
56
+ setFilterValues(defaultValue || groups(filters));
57
+ }, [filters, setFilterValues, defaultValue]);
54
58
  var applyFilters = useCallback(function () {
55
59
  setFilterValues(filterValues, true);
56
60
  }, [filterValues, setFilterValues]);
@@ -65,14 +69,16 @@ export var FilterGroupProvider = function FilterGroupProvider(_ref) {
65
69
  rollbackFilters: rollbackFilters,
66
70
  clearFilters: clearFilters,
67
71
  applyFilters: applyFilters,
68
- applyDisabled: applyDisabled
72
+ applyDisabled: applyDisabled,
73
+ defaultValue: defaultValue
69
74
  };
70
- }, [appliedFilters, applyDisabled, applyFilters, clearFilters, filterValues, filters, group, rollbackFilters, setFilterValues]);
75
+ }, [appliedFilters, applyDisabled, applyFilters, clearFilters, filterValues, filters, group, rollbackFilters, setFilterValues, defaultValue]);
71
76
  return /*#__PURE__*/React.createElement(FilterGroupContext.Provider, {
72
77
  value: contextValue
73
78
  }, children);
74
79
  };
75
80
  process.env.NODE_ENV !== "production" ? FilterGroupProvider.propTypes = {
81
+ defaultValue: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))),
76
82
  value: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))),
77
83
  filters: PropTypes.arrayOf(PropTypes.shape({
78
84
  id: PropTypes.string.isRequired,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/FilterGroup/FilterGroupContext.js"],"names":["React","useState","useEffect","useMemo","useCallback","PropTypes","isEqual","useSavedState","FilterGroupContext","createContext","activeGroup","setActiveGroup","filterOptions","setFilterOptions","filterValues","setFilterValues","rollbackFilters","clearFilters","applyFilters","applyDisabled","groups","filters","map","FilterGroupProvider","value","children","group","appliedFilters","setApplyDisabled","contextValue","propTypes","arrayOf","oneOfType","string","number","shape","id","isRequired","name","data","node"],"mappings":"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","sourcesContent":["import React, { useState, useEffect, useMemo, useCallback } from \"react\";\nimport PropTypes from \"prop-types\";\nimport isEqual from \"lodash/isEqual\";\nimport { useSavedState } from \"../utils\";\n\nexport const FilterGroupContext = React.createContext({\n activeGroup: 0,\n setActiveGroup: () => {},\n filterOptions: [],\n setFilterOptions: () => {},\n filterValues: [],\n setFilterValues: () => {},\n rollbackFilters: () => {},\n clearFilters: () => {},\n applyFilters: () => {},\n applyDisabled: false,\n});\n\nconst groups = (filters) => filters.map(() => []);\n\nexport const FilterGroupProvider = ({ value, filters, children }) => {\n const [group, setActiveGroup] = useState(0);\n const [filterValues, setFilterValues, rollbackFilters, appliedFilters] = useSavedState(\n value || groups(filters)\n );\n const [applyDisabled, setApplyDisabled] = useState(false);\n\n useEffect(() => {\n setApplyDisabled(isEqual(filterValues, appliedFilters));\n }, [filterValues, appliedFilters]);\n\n const clearFilters = useCallback(() => {\n setFilterValues(groups(filters));\n }, [filters, setFilterValues]);\n\n const applyFilters = useCallback(() => {\n setFilterValues(filterValues, true);\n }, [filterValues, setFilterValues]);\n\n const contextValue = useMemo(\n () => ({\n activeGroup: group,\n setActiveGroup,\n filterOptions: filters,\n filterValues,\n setFilterValues,\n appliedFilters,\n rollbackFilters,\n clearFilters,\n applyFilters,\n applyDisabled,\n }),\n [\n appliedFilters,\n applyDisabled,\n applyFilters,\n clearFilters,\n filterValues,\n filters,\n group,\n rollbackFilters,\n setFilterValues,\n ]\n );\n\n return <FilterGroupContext.Provider value={contextValue}>{children}</FilterGroupContext.Provider>;\n};\n\nFilterGroupProvider.propTypes = {\n value: PropTypes.arrayOf(\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))\n ),\n filters: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n name: PropTypes.string.isRequired,\n })\n ).isRequired,\n })\n ),\n children: PropTypes.node.isRequired,\n};\n"],"file":"FilterGroupContext.js"}
1
+ {"version":3,"sources":["../../../src/FilterGroup/FilterGroupContext.js"],"names":["React","useState","useEffect","useMemo","useCallback","PropTypes","isEqual","useSavedState","FilterGroupContext","createContext","activeGroup","setActiveGroup","filterOptions","setFilterOptions","filterValues","setFilterValues","rollbackFilters","clearFilters","applyFilters","applyDisabled","groups","filters","map","FilterGroupProvider","defaultValue","value","children","group","appliedFilters","setApplyDisabled","contextValue","propTypes","arrayOf","oneOfType","string","number","shape","id","isRequired","name","data","node"],"mappings":";;AAAA,OAAOA,KAAP,IAAgBC,QAAhB,EAA0BC,SAA1B,EAAqCC,OAArC,EAA8CC,WAA9C,QAAiE,OAAjE;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,OAAP,MAAoB,gBAApB;AACA,SAASC,aAAT,QAA8B,UAA9B;AAEA,OAAO,IAAMC,kBAAkB,gBAAGR,KAAK,CAACS,aAAN,CAAoB;AACpDC,EAAAA,WAAW,EAAE,CADuC;AAEpDC,EAAAA,cAAc,EAAE,0BAAM,CAAE,CAF4B;AAGpDC,EAAAA,aAAa,EAAE,EAHqC;AAIpDC,EAAAA,gBAAgB,EAAE,4BAAM,CAAE,CAJ0B;AAKpDC,EAAAA,YAAY,EAAE,EALsC;AAMpDC,EAAAA,eAAe,EAAE,2BAAM,CAAE,CAN2B;AAOpDC,EAAAA,eAAe,EAAE,2BAAM,CAAE,CAP2B;AAQpDC,EAAAA,YAAY,EAAE,wBAAM,CAAE,CAR8B;AASpDC,EAAAA,YAAY,EAAE,wBAAM,CAAE,CAT8B;AAUpDC,EAAAA,aAAa,EAAE;AAVqC,CAApB,CAA3B;;AAaP,IAAMC,MAAM,GAAG,SAATA,MAAS,CAACC,OAAD;AAAA,SAAaA,OAAO,CAACC,GAAR,CAAY;AAAA,WAAM,EAAN;AAAA,GAAZ,CAAb;AAAA,CAAf;;AAEA,OAAO,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,OAAgD;AAAA,MAA7CC,YAA6C,QAA7CA,YAA6C;AAAA,MAA/BC,KAA+B,QAA/BA,KAA+B;AAAA,MAAxBJ,OAAwB,QAAxBA,OAAwB;AAAA,MAAfK,QAAe,QAAfA,QAAe;;AACjF,kBAAgCzB,QAAQ,CAAC,CAAD,CAAxC;AAAA;AAAA,MAAO0B,KAAP;AAAA,MAAchB,cAAd;;AACA,uBAAyEJ,aAAa,CACpFkB,KAAK,IAAIL,MAAM,CAACC,OAAD,CADqE,CAAtF;AAAA;AAAA,MAAOP,YAAP;AAAA,MAAqBC,eAArB;AAAA,MAAsCC,eAAtC;AAAA,MAAuDY,cAAvD;;AAGA,mBAA0C3B,QAAQ,CAAC,KAAD,CAAlD;AAAA;AAAA,MAAOkB,aAAP;AAAA,MAAsBU,gBAAtB;;AAEA3B,EAAAA,SAAS,CAAC,YAAM;AACda,IAAAA,eAAe,CAACU,KAAD,EAAQ,IAAR,CAAf;AACD,GAFQ,EAEN,CAACA,KAAD,EAAQV,eAAR,CAFM,CAAT;AAIAb,EAAAA,SAAS,CAAC,YAAM;AACd2B,IAAAA,gBAAgB,CAACvB,OAAO,CAACQ,YAAD,EAAec,cAAf,CAAR,CAAhB;AACD,GAFQ,EAEN,CAACd,YAAD,EAAec,cAAf,CAFM,CAAT;AAIA,MAAMX,YAAY,GAAGb,WAAW,CAAC,YAAM;AACrCW,IAAAA,eAAe,CAACS,YAAY,IAAIJ,MAAM,CAACC,OAAD,CAAvB,CAAf;AACD,GAF+B,EAE7B,CAACA,OAAD,EAAUN,eAAV,EAA2BS,YAA3B,CAF6B,CAAhC;AAIA,MAAMN,YAAY,GAAGd,WAAW,CAAC,YAAM;AACrCW,IAAAA,eAAe,CAACD,YAAD,EAAe,IAAf,CAAf;AACD,GAF+B,EAE7B,CAACA,YAAD,EAAeC,eAAf,CAF6B,CAAhC;AAIA,MAAMe,YAAY,GAAG3B,OAAO,CAC1B;AAAA,WAAO;AACLO,MAAAA,WAAW,EAAEiB,KADR;AAELhB,MAAAA,cAAc,EAAdA,cAFK;AAGLC,MAAAA,aAAa,EAAES,OAHV;AAILP,MAAAA,YAAY,EAAZA,YAJK;AAKLC,MAAAA,eAAe,EAAfA,eALK;AAMLa,MAAAA,cAAc,EAAdA,cANK;AAOLZ,MAAAA,eAAe,EAAfA,eAPK;AAQLC,MAAAA,YAAY,EAAZA,YARK;AASLC,MAAAA,YAAY,EAAZA,YATK;AAULC,MAAAA,aAAa,EAAbA,aAVK;AAWLK,MAAAA,YAAY,EAAZA;AAXK,KAAP;AAAA,GAD0B,EAc1B,CACEI,cADF,EAEET,aAFF,EAGED,YAHF,EAIED,YAJF,EAKEH,YALF,EAMEO,OANF,EAOEM,KAPF,EAQEX,eARF,EASED,eATF,EAUES,YAVF,CAd0B,CAA5B;AA4BA,sBAAO,oBAAC,kBAAD,CAAoB,QAApB;AAA6B,IAAA,KAAK,EAAEM;AAApC,KAAmDJ,QAAnD,CAAP;AACD,CApDM;AAsDP,wCAAAH,mBAAmB,CAACQ,SAApB,GAAgC;AAC9BP,EAAAA,YAAY,EAAEnB,SAAS,CAAC2B,OAAV,CACZ3B,SAAS,CAAC2B,OAAV,CAAkB3B,SAAS,CAAC4B,SAAV,CAAoB,CAAC5B,SAAS,CAAC6B,MAAX,EAAmB7B,SAAS,CAAC8B,MAA7B,CAApB,CAAlB,CADY,CADgB;AAI9BV,EAAAA,KAAK,EAAEpB,SAAS,CAAC2B,OAAV,CACL3B,SAAS,CAAC2B,OAAV,CAAkB3B,SAAS,CAAC4B,SAAV,CAAoB,CAAC5B,SAAS,CAAC6B,MAAX,EAAmB7B,SAAS,CAAC8B,MAA7B,CAApB,CAAlB,CADK,CAJuB;AAO9Bd,EAAAA,OAAO,EAAEhB,SAAS,CAAC2B,OAAV,CACP3B,SAAS,CAAC+B,KAAV,CAAgB;AACdC,IAAAA,EAAE,EAAEhC,SAAS,CAAC6B,MAAV,CAAiBI,UADP;AAEdC,IAAAA,IAAI,EAAElC,SAAS,CAAC6B,MAAV,CAAiBI,UAFT;AAGdE,IAAAA,IAAI,EAAEnC,SAAS,CAAC2B,OAAV,CACJ3B,SAAS,CAAC+B,KAAV,CAAgB;AACdC,MAAAA,EAAE,EAAEhC,SAAS,CAAC4B,SAAV,CAAoB,CAAC5B,SAAS,CAAC6B,MAAX,EAAmB7B,SAAS,CAAC8B,MAA7B,CAApB,EAA0DG,UADhD;AAEdC,MAAAA,IAAI,EAAElC,SAAS,CAAC6B,MAAV,CAAiBI;AAFT,KAAhB,CADI,EAKJA;AARY,GAAhB,CADO,CAPqB;AAmB9BZ,EAAAA,QAAQ,EAAErB,SAAS,CAACoC,IAAV,CAAeH;AAnBK,CAAhC","sourcesContent":["import React, { useState, useEffect, useMemo, useCallback } from \"react\";\nimport PropTypes from \"prop-types\";\nimport isEqual from \"lodash/isEqual\";\nimport { useSavedState } from \"../utils\";\n\nexport const FilterGroupContext = React.createContext({\n activeGroup: 0,\n setActiveGroup: () => {},\n filterOptions: [],\n setFilterOptions: () => {},\n filterValues: [],\n setFilterValues: () => {},\n rollbackFilters: () => {},\n clearFilters: () => {},\n applyFilters: () => {},\n applyDisabled: false,\n});\n\nconst groups = (filters) => filters.map(() => []);\n\nexport const FilterGroupProvider = ({ defaultValue, value, filters, children }) => {\n const [group, setActiveGroup] = useState(0);\n const [filterValues, setFilterValues, rollbackFilters, appliedFilters] = useSavedState(\n value || groups(filters)\n );\n const [applyDisabled, setApplyDisabled] = useState(false);\n\n useEffect(() => {\n setFilterValues(value, true);\n }, [value, setFilterValues]);\n\n useEffect(() => {\n setApplyDisabled(isEqual(filterValues, appliedFilters));\n }, [filterValues, appliedFilters]);\n\n const clearFilters = useCallback(() => {\n setFilterValues(defaultValue || groups(filters));\n }, [filters, setFilterValues, defaultValue]);\n\n const applyFilters = useCallback(() => {\n setFilterValues(filterValues, true);\n }, [filterValues, setFilterValues]);\n\n const contextValue = useMemo(\n () => ({\n activeGroup: group,\n setActiveGroup,\n filterOptions: filters,\n filterValues,\n setFilterValues,\n appliedFilters,\n rollbackFilters,\n clearFilters,\n applyFilters,\n applyDisabled,\n defaultValue,\n }),\n [\n appliedFilters,\n applyDisabled,\n applyFilters,\n clearFilters,\n filterValues,\n filters,\n group,\n rollbackFilters,\n setFilterValues,\n defaultValue,\n ]\n );\n\n return <FilterGroupContext.Provider value={contextValue}>{children}</FilterGroupContext.Provider>;\n};\n\nFilterGroupProvider.propTypes = {\n defaultValue: PropTypes.arrayOf(\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))\n ),\n value: PropTypes.arrayOf(\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))\n ),\n filters: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n name: PropTypes.string.isRequired,\n })\n ).isRequired,\n })\n ),\n children: PropTypes.node.isRequired,\n};\n"],"file":"FilterGroupContext.js"}
@@ -39,6 +39,7 @@ const FilterContent = _ref => {
39
39
  const classes = useStyles();
40
40
  const [filterGroupOpen, setFilterGroupOpen] = useState(false);
41
41
  const {
42
+ defaultValue,
42
43
  filterValues,
43
44
  rollbackFilters,
44
45
  clearFilters,
@@ -134,7 +135,7 @@ const FilterContent = _ref => {
134
135
  className: classes.actionBar
135
136
  }, /*#__PURE__*/React.createElement(HvButton, {
136
137
  id: setId(id, "clearFilters-button"),
137
- disabled: filterValues.flat().length === 0,
138
+ disabled: defaultValue ? defaultValue.flat().length === filterValues.flat().length : filterValues.flat().length === 0,
138
139
  category: "ghost",
139
140
  onClick: onClearHandler
140
141
  }, labels.clearLabel), /*#__PURE__*/React.createElement("div", {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/FilterGroup/FilterContent/FilterContent.js"],"names":["React","useMemo","useState","useRef","useContext","PropTypes","Filters","FilterGroupContext","LeftPanel","RightPanel","Counter","useStyles","setId","HvBaseDropdown","HvTypography","HvButton","HvActionBar","FilterContent","id","status","disabled","ariaLabel","ariaLabelledBy","description","ariaDescribedBy","onChange","onCancel","onClear","labels","horizontalPlacement","disablePortal","escapeWithReference","height","others","classes","filterGroupOpen","setFilterGroupOpen","filterValues","rollbackFilters","clearFilters","applyFilters","applyDisabled","focusTarget","focusOnContainer","current","focus","onApplyHandler","evt","onCancelHandler","onClearHandler","handleToggle","open","Header","placeholder","root","dropdown","panel","selection","baseDropdownSelection","header","modifiers","name","enabled","undefined","join","trim","leftSidePanel","rightSidePanel","actionBar","flat","length","clearLabel","space","applyLabel","cancelLabel","propTypes","string","node","bool","oneOf","func","shape","searchBoxPlaceholder","selectAll","multiSelectionConjunction","any"],"mappings":"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","sourcesContent":["import React, { useMemo, useState, useRef, useContext } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Filters } from \"@hitachivantara/uikit-react-icons\";\nimport { FilterGroupContext } from \"../FilterGroupContext\";\nimport LeftPanel from \"../LeftPanel\";\nimport RightPanel from \"../RightPanel\";\nimport Counter from \"../Counter\";\n\nimport useStyles from \"./styles\";\n\nimport { setId, HvBaseDropdown, HvTypography, HvButton, HvActionBar } from \"../..\";\n\nconst FilterContent = ({\n id,\n status,\n disabled = false,\n\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n description,\n \"aria-describedby\": ariaDescribedBy,\n\n onChange,\n onCancel,\n onClear,\n\n labels,\n\n horizontalPlacement = \"right\",\n disablePortal = true,\n escapeWithReference = true,\n\n height,\n\n ...others\n}) => {\n const classes = useStyles();\n const [filterGroupOpen, setFilterGroupOpen] = useState(false);\n\n const { filterValues, rollbackFilters, clearFilters, applyFilters, applyDisabled } =\n useContext(FilterGroupContext);\n\n const focusTarget = useRef();\n\n const focusOnContainer = () => {\n focusTarget.current?.focus();\n };\n\n const onApplyHandler = (evt) => {\n applyFilters();\n onChange?.(evt, filterValues);\n setFilterGroupOpen(false);\n };\n\n const onCancelHandler = (evt) => {\n rollbackFilters();\n onCancel?.(evt);\n setFilterGroupOpen(false);\n };\n\n const onClearHandler = (evt) => {\n clearFilters();\n onClear?.(evt);\n };\n\n const handleToggle = (evt, open) => {\n /* \n If evt is null this toggle wasn't triggered by the user.\n instead it was triggered by the baseDropdown useEffect after\n the datepicker changed the expanded value this baseDropdown behavior needs a review\n */\n if (evt === null) return;\n setFilterGroupOpen(open);\n if (!open) onCancelHandler?.(evt);\n };\n\n const Header = useMemo(\n () => (\n <>\n <Filters />\n <HvTypography variant=\"highlightText\">{labels.placeholder}</HvTypography>\n </>\n ),\n [labels.placeholder]\n );\n\n return (\n <HvBaseDropdown\n id={setId(id, \"dropdown\")}\n role=\"combobox\"\n classes={{\n root: classes.dropdown,\n panel: classes.panel,\n selection: classes.baseDropdownSelection,\n header: classes.header,\n }}\n disabled={disabled}\n disablePortal={disablePortal}\n variableWidth\n placement={horizontalPlacement}\n expanded={filterGroupOpen}\n onToggle={handleToggle}\n onClickOutside={onCancelHandler}\n onContainerCreation={focusOnContainer}\n placeholder={Header}\n adornment={<Counter />}\n popperProps={{ modifiers: [{ name: \"preventOverflow\", enabled: escapeWithReference }] }}\n aria-haspopup=\"dialog\"\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-invalid={status === \"invalid\" ? true : undefined}\n aria-errormessage={status === \"invalid\" ? setId(id, \"error\") : undefined}\n aria-describedby={\n [description && setId(id, \"description\"), ariaDescribedBy].join(\" \").trim() || undefined\n }\n {...others}\n >\n <div ref={focusTarget} tabIndex={-1} />\n <div className={classes.root} style={{ height }}>\n <LeftPanel id={id} className={classes.leftSidePanel} />\n <RightPanel id={id} className={classes.rightSidePanel} labels={labels} />\n </div>\n <HvActionBar className={classes.actionBar}>\n <HvButton\n id={setId(id, \"clearFilters-button\")}\n disabled={filterValues.flat().length === 0}\n category=\"ghost\"\n onClick={onClearHandler}\n >\n {labels.clearLabel}\n </HvButton>\n <div aria-hidden=\"true\" className={classes.space}>\n &nbsp;\n </div>\n <HvButton\n id={setId(id, \"apply-button\")}\n disabled={applyDisabled}\n category=\"ghost\"\n onClick={onApplyHandler}\n >\n {labels.applyLabel}\n </HvButton>\n <HvButton id={setId(id, \"cancel-button\")} category=\"ghost\" onClick={onCancelHandler}>\n {labels.cancelLabel}\n </HvButton>\n </HvActionBar>\n </HvBaseDropdown>\n );\n};\n\nFilterContent.propTypes = {\n id: PropTypes.string,\n\n \"aria-label\": PropTypes.string,\n \"aria-labelledby\": PropTypes.string,\n description: PropTypes.node,\n \"aria-describedby\": PropTypes.string,\n disabled: PropTypes.bool,\n status: PropTypes.oneOf([\"standBy\", \"valid\", \"invalid\"]),\n\n onChange: PropTypes.func,\n onCancel: PropTypes.func,\n onClear: PropTypes.func,\n\n labels: PropTypes.shape({\n applyLabel: PropTypes.string,\n cancelLabel: PropTypes.string,\n clearLabel: PropTypes.string,\n placeholder: PropTypes.string,\n searchBoxPlaceholder: PropTypes.string,\n selectAll: PropTypes.string,\n multiSelectionConjunction: PropTypes.string,\n }),\n\n horizontalPlacement: PropTypes.oneOf([\"left\", \"right\"]),\n disablePortal: PropTypes.bool,\n escapeWithReference: PropTypes.bool,\n height: PropTypes.any,\n};\n\nexport default FilterContent;\n"],"file":"FilterContent.js"}
1
+ {"version":3,"sources":["../../../../src/FilterGroup/FilterContent/FilterContent.js"],"names":["React","useMemo","useState","useRef","useContext","PropTypes","Filters","FilterGroupContext","LeftPanel","RightPanel","Counter","useStyles","setId","HvBaseDropdown","HvTypography","HvButton","HvActionBar","FilterContent","id","status","disabled","ariaLabel","ariaLabelledBy","description","ariaDescribedBy","onChange","onCancel","onClear","labels","horizontalPlacement","disablePortal","escapeWithReference","height","others","classes","filterGroupOpen","setFilterGroupOpen","defaultValue","filterValues","rollbackFilters","clearFilters","applyFilters","applyDisabled","focusTarget","focusOnContainer","current","focus","onApplyHandler","evt","onCancelHandler","onClearHandler","handleToggle","open","Header","placeholder","root","dropdown","panel","selection","baseDropdownSelection","header","modifiers","name","enabled","undefined","join","trim","leftSidePanel","rightSidePanel","actionBar","flat","length","clearLabel","space","applyLabel","cancelLabel","propTypes","string","node","bool","oneOf","func","shape","searchBoxPlaceholder","selectAll","multiSelectionConjunction","any"],"mappings":"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","sourcesContent":["import React, { useMemo, useState, useRef, useContext } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Filters } from \"@hitachivantara/uikit-react-icons\";\nimport { FilterGroupContext } from \"../FilterGroupContext\";\nimport LeftPanel from \"../LeftPanel\";\nimport RightPanel from \"../RightPanel\";\nimport Counter from \"../Counter\";\n\nimport useStyles from \"./styles\";\n\nimport { setId, HvBaseDropdown, HvTypography, HvButton, HvActionBar } from \"../..\";\n\nconst FilterContent = ({\n id,\n status,\n disabled = false,\n\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n description,\n \"aria-describedby\": ariaDescribedBy,\n\n onChange,\n onCancel,\n onClear,\n\n labels,\n\n horizontalPlacement = \"right\",\n disablePortal = true,\n escapeWithReference = true,\n\n height,\n\n ...others\n}) => {\n const classes = useStyles();\n const [filterGroupOpen, setFilterGroupOpen] = useState(false);\n\n const { defaultValue, filterValues, rollbackFilters, clearFilters, applyFilters, applyDisabled } =\n useContext(FilterGroupContext);\n\n const focusTarget = useRef();\n\n const focusOnContainer = () => {\n focusTarget.current?.focus();\n };\n\n const onApplyHandler = (evt) => {\n applyFilters();\n onChange?.(evt, filterValues);\n setFilterGroupOpen(false);\n };\n\n const onCancelHandler = (evt) => {\n rollbackFilters();\n onCancel?.(evt);\n setFilterGroupOpen(false);\n };\n\n const onClearHandler = (evt) => {\n clearFilters();\n onClear?.(evt);\n };\n\n const handleToggle = (evt, open) => {\n /* \n If evt is null this toggle wasn't triggered by the user.\n instead it was triggered by the baseDropdown useEffect after\n the datepicker changed the expanded value this baseDropdown behavior needs a review\n */\n if (evt === null) return;\n setFilterGroupOpen(open);\n if (!open) onCancelHandler?.(evt);\n };\n\n const Header = useMemo(\n () => (\n <>\n <Filters />\n <HvTypography variant=\"highlightText\">{labels.placeholder}</HvTypography>\n </>\n ),\n [labels.placeholder]\n );\n\n return (\n <HvBaseDropdown\n id={setId(id, \"dropdown\")}\n role=\"combobox\"\n classes={{\n root: classes.dropdown,\n panel: classes.panel,\n selection: classes.baseDropdownSelection,\n header: classes.header,\n }}\n disabled={disabled}\n disablePortal={disablePortal}\n variableWidth\n placement={horizontalPlacement}\n expanded={filterGroupOpen}\n onToggle={handleToggle}\n onClickOutside={onCancelHandler}\n onContainerCreation={focusOnContainer}\n placeholder={Header}\n adornment={<Counter />}\n popperProps={{ modifiers: [{ name: \"preventOverflow\", enabled: escapeWithReference }] }}\n aria-haspopup=\"dialog\"\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-invalid={status === \"invalid\" ? true : undefined}\n aria-errormessage={status === \"invalid\" ? setId(id, \"error\") : undefined}\n aria-describedby={\n [description && setId(id, \"description\"), ariaDescribedBy].join(\" \").trim() || undefined\n }\n {...others}\n >\n <div ref={focusTarget} tabIndex={-1} />\n <div className={classes.root} style={{ height }}>\n <LeftPanel id={id} className={classes.leftSidePanel} />\n <RightPanel id={id} className={classes.rightSidePanel} labels={labels} />\n </div>\n <HvActionBar className={classes.actionBar}>\n <HvButton\n id={setId(id, \"clearFilters-button\")}\n disabled={\n defaultValue\n ? defaultValue.flat().length === filterValues.flat().length\n : filterValues.flat().length === 0\n }\n category=\"ghost\"\n onClick={onClearHandler}\n >\n {labels.clearLabel}\n </HvButton>\n <div aria-hidden=\"true\" className={classes.space}>\n &nbsp;\n </div>\n <HvButton\n id={setId(id, \"apply-button\")}\n disabled={applyDisabled}\n category=\"ghost\"\n onClick={onApplyHandler}\n >\n {labels.applyLabel}\n </HvButton>\n <HvButton id={setId(id, \"cancel-button\")} category=\"ghost\" onClick={onCancelHandler}>\n {labels.cancelLabel}\n </HvButton>\n </HvActionBar>\n </HvBaseDropdown>\n );\n};\n\nFilterContent.propTypes = {\n id: PropTypes.string,\n\n \"aria-label\": PropTypes.string,\n \"aria-labelledby\": PropTypes.string,\n description: PropTypes.node,\n \"aria-describedby\": PropTypes.string,\n disabled: PropTypes.bool,\n status: PropTypes.oneOf([\"standBy\", \"valid\", \"invalid\"]),\n\n onChange: PropTypes.func,\n onCancel: PropTypes.func,\n onClear: PropTypes.func,\n\n labels: PropTypes.shape({\n applyLabel: PropTypes.string,\n cancelLabel: PropTypes.string,\n clearLabel: PropTypes.string,\n placeholder: PropTypes.string,\n searchBoxPlaceholder: PropTypes.string,\n selectAll: PropTypes.string,\n multiSelectionConjunction: PropTypes.string,\n }),\n\n horizontalPlacement: PropTypes.oneOf([\"left\", \"right\"]),\n disablePortal: PropTypes.bool,\n escapeWithReference: PropTypes.bool,\n height: PropTypes.any,\n};\n\nexport default FilterContent;\n"],"file":"FilterContent.js"}
@@ -76,6 +76,12 @@ export interface HvFilterGroupProps
76
76
  }[];
77
77
  }[];
78
78
 
79
+ /**
80
+ * The default value of the filter group.
81
+ * If defined the clear action will reset to it.
82
+ */
83
+ defaultValue?: FilterValue;
84
+
79
85
  /**
80
86
  * The value of the filter group.
81
87
  */
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
- const _excluded = ["className", "id", "name", "required", "disabled", "label", "aria-label", "aria-labelledby", "description", "aria-describedby", "onChange", "onCancel", "onClear", "status", "statusMessage", "labels", "value", "filters", "horizontalPlacement", "disablePortal", "escapeWithReference", "height", "filterContentProps"];
3
+ const _excluded = ["className", "id", "name", "required", "disabled", "label", "aria-label", "aria-labelledby", "description", "aria-describedby", "onChange", "onCancel", "onClear", "status", "statusMessage", "labels", "defaultValue", "value", "filters", "horizontalPlacement", "disablePortal", "escapeWithReference", "height", "filterContentProps"];
4
4
  import "core-js/modules/web.dom-collections.iterator.js";
5
5
  import React from "react";
6
6
  import clsx from "clsx";
@@ -37,6 +37,7 @@ const HvFilterGroup = _ref => {
37
37
  status,
38
38
  statusMessage,
39
39
  labels: labelsProp,
40
+ defaultValue,
40
41
  value,
41
42
  filters,
42
43
  horizontalPlacement = "right",
@@ -75,6 +76,7 @@ const HvFilterGroup = _ref => {
75
76
  id: setId(elementId, "description"),
76
77
  className: classes.description
77
78
  }, description)), /*#__PURE__*/React.createElement(FilterGroupProvider, {
79
+ defaultValue: defaultValue,
78
80
  value: value,
79
81
  filters: filters
80
82
  }, /*#__PURE__*/React.createElement(FilterContent, _extends({
@@ -235,6 +237,12 @@ process.env.NODE_ENV !== "production" ? HvFilterGroup.propTypes = {
235
237
  })).isRequired
236
238
  })).isRequired,
237
239
 
240
+ /**
241
+ * The default value of the filter group.
242
+ * If defined the clear action will reset to it.
243
+ */
244
+ defaultValue: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))),
245
+
238
246
  /**
239
247
  * The value of the filter group.
240
248
  */
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/FilterGroup/FilterGroup.js"],"names":["React","clsx","PropTypes","FilterGroupProvider","FilterContent","useStyles","setId","useLabels","useUniqueId","useControlled","HvFormElement","HvLabel","HvWarningText","HvInfoMessage","DEFAULT_LABELS","applyLabel","cancelLabel","clearLabel","placeholder","searchBoxPlaceholder","selectAll","multiSelectionConjunction","HvFilterGroup","className","id","name","required","disabled","label","ariaLabel","ariaLabelledBy","description","ariaDescribedBy","onChange","onCancel","onClear","status","statusMessage","labels","labelsProp","value","filters","horizontalPlacement","disablePortal","escapeWithReference","height","filterContentProps","others","classes","validationMessage","elementId","hasLabel","hasDescription","canShowError","undefined","root","labelContainer","error","propTypes","string","node","bool","oneOf","func","shape","arrayOf","isRequired","data","oneOfType","number","object","expanded"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport clsx from \"clsx\";\nimport PropTypes from \"prop-types\";\nimport { FilterGroupProvider } from \"./FilterGroupContext\";\nimport FilterContent from \"./FilterContent\";\nimport useStyles from \"./styles\";\nimport {\n setId,\n useLabels,\n useUniqueId,\n useControlled,\n HvFormElement,\n HvLabel,\n HvWarningText,\n HvInfoMessage,\n} from \"..\";\n\nconst DEFAULT_LABELS = {\n applyLabel: \"Apply\",\n cancelLabel: \"Cancel\",\n clearLabel: \"Clear Filters\",\n placeholder: \"Filters\",\n searchBoxPlaceholder: \"Search\",\n selectAll: \"All\",\n multiSelectionConjunction: \"/\",\n};\n\nconst HvFilterGroup = ({\n className,\n\n id,\n name,\n\n required = false,\n disabled = false,\n\n label,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n description,\n \"aria-describedby\": ariaDescribedBy,\n\n onChange,\n onCancel,\n onClear,\n\n status,\n statusMessage,\n\n labels: labelsProp,\n\n value,\n filters,\n\n horizontalPlacement = \"right\",\n disablePortal = true,\n escapeWithReference = true,\n\n height = 350,\n filterContentProps,\n\n ...others\n}) => {\n const classes = useStyles();\n\n const [validationMessage] = useControlled(statusMessage, \"Required\");\n\n const elementId = useUniqueId(id, \"hvfiltergroup\");\n\n const labels = useLabels(DEFAULT_LABELS, labelsProp);\n\n const hasLabel = label != null;\n const hasDescription = description != null;\n\n // error message area will only be needed if the status is being controlled\n // or if required is true\n const canShowError = status !== undefined || required;\n\n return (\n <HvFormElement\n id={id}\n name={name}\n value={value}\n status={status}\n disabled={disabled}\n required={required}\n className={clsx(className, classes.root)}\n {...others}\n >\n {(hasLabel || hasDescription) && (\n <div className={classes.labelContainer}>\n {hasLabel && (\n <HvLabel\n id={setId(elementId, \"label\")}\n htmlFor={setId(elementId, \"input\")}\n label={label}\n className={classes.label}\n />\n )}\n\n {hasDescription && (\n <HvInfoMessage id={setId(elementId, \"description\")} className={classes.description}>\n {description}\n </HvInfoMessage>\n )}\n </div>\n )}\n <FilterGroupProvider value={value} filters={filters}>\n <FilterContent\n id={elementId}\n disabled={disabled}\n disablePortal={disablePortal}\n variableWidth\n placement={horizontalPlacement}\n escapeWithReference={escapeWithReference}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n status={status}\n onChange={onChange}\n onCancel={onCancel}\n onClear={onClear}\n labels={labels}\n height={height}\n {...filterContentProps}\n />\n {canShowError && (\n <HvWarningText id={setId(elementId, \"error\")} disableBorder className={classes.error}>\n {validationMessage}\n </HvWarningText>\n )}\n </FilterGroupProvider>\n </HvFormElement>\n );\n};\n\nHvFilterGroup.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n\n /**\n * Id to be applied to the form element root node.\n */\n id: PropTypes.string,\n\n /**\n * The form element name.\n */\n name: PropTypes.string,\n\n /**\n * The label of the form element.\n *\n * The form element must be labeled for accessibility reasons.\n * If not provided, an aria-label or aria-labelledby must be provided instead.\n */\n label: PropTypes.node,\n /**\n * @ignore\n */\n \"aria-label\": PropTypes.string,\n /**\n * @ignore\n */\n \"aria-labelledby\": PropTypes.string,\n /**\n * Provide additional descriptive text for the form element.\n */\n description: PropTypes.node,\n /**\n * @ignore\n */\n \"aria-describedby\": PropTypes.string,\n\n /**\n * Indicates that the form element is disabled.\n */\n disabled: PropTypes.bool,\n /**\n * Indicates that user input is required on the form element.\n */\n required: PropTypes.bool,\n\n /**\n * The status of the form element.\n *\n * Valid is correct, invalid is incorrect and standBy means no validations have run.\n *\n * When uncontrolled and unspecified it will default to \"standBy\" and change to either \"valid\"\n * or \"invalid\" after any change to the state.\n */\n status: PropTypes.oneOf([\"standBy\", \"valid\", \"invalid\"]),\n /**\n * The error message to show when `status` is \"invalid\". Defaults to \"Required\".\n */\n statusMessage: PropTypes.node,\n\n /**\n * The callback fired when the value changes.\n */\n onChange: PropTypes.func,\n\n /**\n * The callback fired when the cancel button is clicked.\n */\n onCancel: PropTypes.func,\n\n /**\n * The callback fired when the clear filters button is clicked.\n */\n onClear: PropTypes.func,\n\n /**\n * An object containing all the labels for the Filter Group.\n */\n labels: PropTypes.shape({\n /**\n * Apply button label.\n */\n applyLabel: PropTypes.string,\n /**\n * Cancel button label.\n */\n cancelLabel: PropTypes.string,\n /**\n * Clear Filters button label.\n */\n clearLabel: PropTypes.string,\n /**\n * Placeholder label.\n */\n placeholder: PropTypes.string,\n /**\n * SearchBox placeholder label.\n */\n searchBoxPlaceholder: PropTypes.string,\n /**\n * Select All placeholder label.\n */\n selectAll: PropTypes.string,\n /**\n * Multi selection conjunction placeholder label.\n */\n multiSelectionConjunction: PropTypes.string,\n }),\n\n /**\n * The options of the filter group.\n */\n filters: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n name: PropTypes.string.isRequired,\n })\n ).isRequired,\n })\n ).isRequired,\n\n /**\n * The value of the filter group.\n */\n value: PropTypes.arrayOf(\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))\n ),\n /**\n * The placement where the filter group should be placed according to the input. Options are `left` or `right`.\n */\n horizontalPlacement: PropTypes.oneOf([\"left\", \"right\"]),\n\n /**\n * Disable the portal behavior. The children stay within it's parent DOM hierarchy.\n */\n disablePortal: PropTypes.bool,\n /**\n * Sets if the filter container should be out of the screen or stay visible.\n */\n escapeWithReference: PropTypes.bool,\n\n /**\n * The Height of the filter panel, between 295 and 425. Defaults to 350\n */\n height: PropTypes.oneOf([PropTypes.number, PropTypes.string]),\n\n /**\n * The filter content props\n */\n filterContentProps: PropTypes.object,\n\n /**\n * If `true` the filter group starts opened if `false` it starts closed.\n */\n expanded: PropTypes.bool,\n};\n\nexport default HvFilterGroup;\n"],"file":"FilterGroup.js"}
1
+ {"version":3,"sources":["../../../src/FilterGroup/FilterGroup.js"],"names":["React","clsx","PropTypes","FilterGroupProvider","FilterContent","useStyles","setId","useLabels","useUniqueId","useControlled","HvFormElement","HvLabel","HvWarningText","HvInfoMessage","DEFAULT_LABELS","applyLabel","cancelLabel","clearLabel","placeholder","searchBoxPlaceholder","selectAll","multiSelectionConjunction","HvFilterGroup","className","id","name","required","disabled","label","ariaLabel","ariaLabelledBy","description","ariaDescribedBy","onChange","onCancel","onClear","status","statusMessage","labels","labelsProp","defaultValue","value","filters","horizontalPlacement","disablePortal","escapeWithReference","height","filterContentProps","others","classes","validationMessage","elementId","hasLabel","hasDescription","canShowError","undefined","root","labelContainer","error","propTypes","string","node","bool","oneOf","func","shape","arrayOf","isRequired","data","oneOfType","number","object","expanded"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport clsx from \"clsx\";\nimport PropTypes from \"prop-types\";\nimport { FilterGroupProvider } from \"./FilterGroupContext\";\nimport FilterContent from \"./FilterContent\";\nimport useStyles from \"./styles\";\nimport {\n setId,\n useLabels,\n useUniqueId,\n useControlled,\n HvFormElement,\n HvLabel,\n HvWarningText,\n HvInfoMessage,\n} from \"..\";\n\nconst DEFAULT_LABELS = {\n applyLabel: \"Apply\",\n cancelLabel: \"Cancel\",\n clearLabel: \"Clear Filters\",\n placeholder: \"Filters\",\n searchBoxPlaceholder: \"Search\",\n selectAll: \"All\",\n multiSelectionConjunction: \"/\",\n};\n\nconst HvFilterGroup = ({\n className,\n\n id,\n name,\n\n required = false,\n disabled = false,\n\n label,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n description,\n \"aria-describedby\": ariaDescribedBy,\n\n onChange,\n onCancel,\n onClear,\n\n status,\n statusMessage,\n\n labels: labelsProp,\n\n defaultValue,\n value,\n filters,\n\n horizontalPlacement = \"right\",\n disablePortal = true,\n escapeWithReference = true,\n\n height = 350,\n filterContentProps,\n\n ...others\n}) => {\n const classes = useStyles();\n\n const [validationMessage] = useControlled(statusMessage, \"Required\");\n\n const elementId = useUniqueId(id, \"hvfiltergroup\");\n\n const labels = useLabels(DEFAULT_LABELS, labelsProp);\n\n const hasLabel = label != null;\n const hasDescription = description != null;\n\n // error message area will only be needed if the status is being controlled\n // or if required is true\n const canShowError = status !== undefined || required;\n\n return (\n <HvFormElement\n id={id}\n name={name}\n value={value}\n status={status}\n disabled={disabled}\n required={required}\n className={clsx(className, classes.root)}\n {...others}\n >\n {(hasLabel || hasDescription) && (\n <div className={classes.labelContainer}>\n {hasLabel && (\n <HvLabel\n id={setId(elementId, \"label\")}\n htmlFor={setId(elementId, \"input\")}\n label={label}\n className={classes.label}\n />\n )}\n\n {hasDescription && (\n <HvInfoMessage id={setId(elementId, \"description\")} className={classes.description}>\n {description}\n </HvInfoMessage>\n )}\n </div>\n )}\n <FilterGroupProvider defaultValue={defaultValue} value={value} filters={filters}>\n <FilterContent\n id={elementId}\n disabled={disabled}\n disablePortal={disablePortal}\n variableWidth\n placement={horizontalPlacement}\n escapeWithReference={escapeWithReference}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n status={status}\n onChange={onChange}\n onCancel={onCancel}\n onClear={onClear}\n labels={labels}\n height={height}\n {...filterContentProps}\n />\n {canShowError && (\n <HvWarningText id={setId(elementId, \"error\")} disableBorder className={classes.error}>\n {validationMessage}\n </HvWarningText>\n )}\n </FilterGroupProvider>\n </HvFormElement>\n );\n};\n\nHvFilterGroup.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n\n /**\n * Id to be applied to the form element root node.\n */\n id: PropTypes.string,\n\n /**\n * The form element name.\n */\n name: PropTypes.string,\n\n /**\n * The label of the form element.\n *\n * The form element must be labeled for accessibility reasons.\n * If not provided, an aria-label or aria-labelledby must be provided instead.\n */\n label: PropTypes.node,\n /**\n * @ignore\n */\n \"aria-label\": PropTypes.string,\n /**\n * @ignore\n */\n \"aria-labelledby\": PropTypes.string,\n /**\n * Provide additional descriptive text for the form element.\n */\n description: PropTypes.node,\n /**\n * @ignore\n */\n \"aria-describedby\": PropTypes.string,\n\n /**\n * Indicates that the form element is disabled.\n */\n disabled: PropTypes.bool,\n /**\n * Indicates that user input is required on the form element.\n */\n required: PropTypes.bool,\n\n /**\n * The status of the form element.\n *\n * Valid is correct, invalid is incorrect and standBy means no validations have run.\n *\n * When uncontrolled and unspecified it will default to \"standBy\" and change to either \"valid\"\n * or \"invalid\" after any change to the state.\n */\n status: PropTypes.oneOf([\"standBy\", \"valid\", \"invalid\"]),\n /**\n * The error message to show when `status` is \"invalid\". Defaults to \"Required\".\n */\n statusMessage: PropTypes.node,\n\n /**\n * The callback fired when the value changes.\n */\n onChange: PropTypes.func,\n\n /**\n * The callback fired when the cancel button is clicked.\n */\n onCancel: PropTypes.func,\n\n /**\n * The callback fired when the clear filters button is clicked.\n */\n onClear: PropTypes.func,\n\n /**\n * An object containing all the labels for the Filter Group.\n */\n labels: PropTypes.shape({\n /**\n * Apply button label.\n */\n applyLabel: PropTypes.string,\n /**\n * Cancel button label.\n */\n cancelLabel: PropTypes.string,\n /**\n * Clear Filters button label.\n */\n clearLabel: PropTypes.string,\n /**\n * Placeholder label.\n */\n placeholder: PropTypes.string,\n /**\n * SearchBox placeholder label.\n */\n searchBoxPlaceholder: PropTypes.string,\n /**\n * Select All placeholder label.\n */\n selectAll: PropTypes.string,\n /**\n * Multi selection conjunction placeholder label.\n */\n multiSelectionConjunction: PropTypes.string,\n }),\n\n /**\n * The options of the filter group.\n */\n filters: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n name: PropTypes.string.isRequired,\n })\n ).isRequired,\n })\n ).isRequired,\n\n /**\n * The default value of the filter group.\n * If defined the clear action will reset to it.\n */\n defaultValue: PropTypes.arrayOf(\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))\n ),\n\n /**\n * The value of the filter group.\n */\n value: PropTypes.arrayOf(\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))\n ),\n\n /**\n * The placement where the filter group should be placed according to the input. Options are `left` or `right`.\n */\n horizontalPlacement: PropTypes.oneOf([\"left\", \"right\"]),\n\n /**\n * Disable the portal behavior. The children stay within it's parent DOM hierarchy.\n */\n disablePortal: PropTypes.bool,\n /**\n * Sets if the filter container should be out of the screen or stay visible.\n */\n escapeWithReference: PropTypes.bool,\n\n /**\n * The Height of the filter panel, between 295 and 425. Defaults to 350\n */\n height: PropTypes.oneOf([PropTypes.number, PropTypes.string]),\n\n /**\n * The filter content props\n */\n filterContentProps: PropTypes.object,\n\n /**\n * If `true` the filter group starts opened if `false` it starts closed.\n */\n expanded: PropTypes.bool,\n};\n\nexport default HvFilterGroup;\n"],"file":"FilterGroup.js"}
@@ -19,6 +19,7 @@ export const FilterGroupContext = /*#__PURE__*/React.createContext({
19
19
  const groups = filters => filters.map(() => []);
20
20
 
21
21
  export const FilterGroupProvider = ({
22
+ defaultValue,
22
23
  value,
23
24
  filters,
24
25
  children
@@ -26,12 +27,15 @@ export const FilterGroupProvider = ({
26
27
  const [group, setActiveGroup] = useState(0);
27
28
  const [filterValues, setFilterValues, rollbackFilters, appliedFilters] = useSavedState(value || groups(filters));
28
29
  const [applyDisabled, setApplyDisabled] = useState(false);
30
+ useEffect(() => {
31
+ setFilterValues(value, true);
32
+ }, [value, setFilterValues]);
29
33
  useEffect(() => {
30
34
  setApplyDisabled(isEqual(filterValues, appliedFilters));
31
35
  }, [filterValues, appliedFilters]);
32
36
  const clearFilters = useCallback(() => {
33
- setFilterValues(groups(filters));
34
- }, [filters, setFilterValues]);
37
+ setFilterValues(defaultValue || groups(filters));
38
+ }, [filters, setFilterValues, defaultValue]);
35
39
  const applyFilters = useCallback(() => {
36
40
  setFilterValues(filterValues, true);
37
41
  }, [filterValues, setFilterValues]);
@@ -45,13 +49,15 @@ export const FilterGroupProvider = ({
45
49
  rollbackFilters,
46
50
  clearFilters,
47
51
  applyFilters,
48
- applyDisabled
49
- }), [appliedFilters, applyDisabled, applyFilters, clearFilters, filterValues, filters, group, rollbackFilters, setFilterValues]);
52
+ applyDisabled,
53
+ defaultValue
54
+ }), [appliedFilters, applyDisabled, applyFilters, clearFilters, filterValues, filters, group, rollbackFilters, setFilterValues, defaultValue]);
50
55
  return /*#__PURE__*/React.createElement(FilterGroupContext.Provider, {
51
56
  value: contextValue
52
57
  }, children);
53
58
  };
54
59
  process.env.NODE_ENV !== "production" ? FilterGroupProvider.propTypes = {
60
+ defaultValue: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))),
55
61
  value: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))),
56
62
  filters: PropTypes.arrayOf(PropTypes.shape({
57
63
  id: PropTypes.string.isRequired,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/FilterGroup/FilterGroupContext.js"],"names":["React","useState","useEffect","useMemo","useCallback","PropTypes","isEqual","useSavedState","FilterGroupContext","createContext","activeGroup","setActiveGroup","filterOptions","setFilterOptions","filterValues","setFilterValues","rollbackFilters","clearFilters","applyFilters","applyDisabled","groups","filters","map","FilterGroupProvider","value","children","group","appliedFilters","setApplyDisabled","contextValue","propTypes","arrayOf","oneOfType","string","number","shape","id","isRequired","name","data","node"],"mappings":"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","sourcesContent":["import React, { useState, useEffect, useMemo, useCallback } from \"react\";\nimport PropTypes from \"prop-types\";\nimport isEqual from \"lodash/isEqual\";\nimport { useSavedState } from \"../utils\";\n\nexport const FilterGroupContext = React.createContext({\n activeGroup: 0,\n setActiveGroup: () => {},\n filterOptions: [],\n setFilterOptions: () => {},\n filterValues: [],\n setFilterValues: () => {},\n rollbackFilters: () => {},\n clearFilters: () => {},\n applyFilters: () => {},\n applyDisabled: false,\n});\n\nconst groups = (filters) => filters.map(() => []);\n\nexport const FilterGroupProvider = ({ value, filters, children }) => {\n const [group, setActiveGroup] = useState(0);\n const [filterValues, setFilterValues, rollbackFilters, appliedFilters] = useSavedState(\n value || groups(filters)\n );\n const [applyDisabled, setApplyDisabled] = useState(false);\n\n useEffect(() => {\n setApplyDisabled(isEqual(filterValues, appliedFilters));\n }, [filterValues, appliedFilters]);\n\n const clearFilters = useCallback(() => {\n setFilterValues(groups(filters));\n }, [filters, setFilterValues]);\n\n const applyFilters = useCallback(() => {\n setFilterValues(filterValues, true);\n }, [filterValues, setFilterValues]);\n\n const contextValue = useMemo(\n () => ({\n activeGroup: group,\n setActiveGroup,\n filterOptions: filters,\n filterValues,\n setFilterValues,\n appliedFilters,\n rollbackFilters,\n clearFilters,\n applyFilters,\n applyDisabled,\n }),\n [\n appliedFilters,\n applyDisabled,\n applyFilters,\n clearFilters,\n filterValues,\n filters,\n group,\n rollbackFilters,\n setFilterValues,\n ]\n );\n\n return <FilterGroupContext.Provider value={contextValue}>{children}</FilterGroupContext.Provider>;\n};\n\nFilterGroupProvider.propTypes = {\n value: PropTypes.arrayOf(\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))\n ),\n filters: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n name: PropTypes.string.isRequired,\n })\n ).isRequired,\n })\n ),\n children: PropTypes.node.isRequired,\n};\n"],"file":"FilterGroupContext.js"}
1
+ {"version":3,"sources":["../../../src/FilterGroup/FilterGroupContext.js"],"names":["React","useState","useEffect","useMemo","useCallback","PropTypes","isEqual","useSavedState","FilterGroupContext","createContext","activeGroup","setActiveGroup","filterOptions","setFilterOptions","filterValues","setFilterValues","rollbackFilters","clearFilters","applyFilters","applyDisabled","groups","filters","map","FilterGroupProvider","defaultValue","value","children","group","appliedFilters","setApplyDisabled","contextValue","propTypes","arrayOf","oneOfType","string","number","shape","id","isRequired","name","data","node"],"mappings":"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","sourcesContent":["import React, { useState, useEffect, useMemo, useCallback } from \"react\";\nimport PropTypes from \"prop-types\";\nimport isEqual from \"lodash/isEqual\";\nimport { useSavedState } from \"../utils\";\n\nexport const FilterGroupContext = React.createContext({\n activeGroup: 0,\n setActiveGroup: () => {},\n filterOptions: [],\n setFilterOptions: () => {},\n filterValues: [],\n setFilterValues: () => {},\n rollbackFilters: () => {},\n clearFilters: () => {},\n applyFilters: () => {},\n applyDisabled: false,\n});\n\nconst groups = (filters) => filters.map(() => []);\n\nexport const FilterGroupProvider = ({ defaultValue, value, filters, children }) => {\n const [group, setActiveGroup] = useState(0);\n const [filterValues, setFilterValues, rollbackFilters, appliedFilters] = useSavedState(\n value || groups(filters)\n );\n const [applyDisabled, setApplyDisabled] = useState(false);\n\n useEffect(() => {\n setFilterValues(value, true);\n }, [value, setFilterValues]);\n\n useEffect(() => {\n setApplyDisabled(isEqual(filterValues, appliedFilters));\n }, [filterValues, appliedFilters]);\n\n const clearFilters = useCallback(() => {\n setFilterValues(defaultValue || groups(filters));\n }, [filters, setFilterValues, defaultValue]);\n\n const applyFilters = useCallback(() => {\n setFilterValues(filterValues, true);\n }, [filterValues, setFilterValues]);\n\n const contextValue = useMemo(\n () => ({\n activeGroup: group,\n setActiveGroup,\n filterOptions: filters,\n filterValues,\n setFilterValues,\n appliedFilters,\n rollbackFilters,\n clearFilters,\n applyFilters,\n applyDisabled,\n defaultValue,\n }),\n [\n appliedFilters,\n applyDisabled,\n applyFilters,\n clearFilters,\n filterValues,\n filters,\n group,\n rollbackFilters,\n setFilterValues,\n defaultValue,\n ]\n );\n\n return <FilterGroupContext.Provider value={contextValue}>{children}</FilterGroupContext.Provider>;\n};\n\nFilterGroupProvider.propTypes = {\n defaultValue: PropTypes.arrayOf(\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))\n ),\n value: PropTypes.arrayOf(\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))\n ),\n filters: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n name: PropTypes.string.isRequired,\n })\n ).isRequired,\n })\n ),\n children: PropTypes.node.isRequired,\n};\n"],"file":"FilterGroupContext.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hitachivantara/uikit-react-core",
3
- "version": "3.56.2",
3
+ "version": "3.57.0",
4
4
  "description": "A collection of React components for the Hitachi Vantara's Design System.",
5
5
  "homepage": "https://github.com/lumada-design/hv-uikit-react",
6
6
  "license": "Apache-2.0",
@@ -104,5 +104,5 @@
104
104
  "publishConfig": {
105
105
  "access": "public"
106
106
  },
107
- "gitHead": "457e24072340a316789a0cc391835ab73917b7ed"
107
+ "gitHead": "ee518295b16b2b783cde7e742c8970b0f13815ed"
108
108
  }