@hitachivantara/uikit-react-core 3.56.2 → 3.58.1
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 +33 -0
- package/dist/FilterGroup/FilterContent/FilterContent.js +2 -1
- package/dist/FilterGroup/FilterContent/FilterContent.js.map +1 -1
- package/dist/FilterGroup/FilterGroup.d.ts +6 -0
- package/dist/FilterGroup/FilterGroup.js +9 -1
- package/dist/FilterGroup/FilterGroup.js.map +1 -1
- package/dist/FilterGroup/FilterGroupContext.js +11 -5
- package/dist/FilterGroup/FilterGroupContext.js.map +1 -1
- package/dist/TagsInput/TagsInput.d.ts +12 -8
- package/dist/TagsInput/TagsInput.js +52 -24
- package/dist/TagsInput/TagsInput.js.map +1 -1
- package/dist/legacy/FilterGroup/FilterContent/FilterContent.js +2 -1
- package/dist/legacy/FilterGroup/FilterContent/FilterContent.js.map +1 -1
- package/dist/legacy/FilterGroup/FilterGroup.d.ts +6 -0
- package/dist/legacy/FilterGroup/FilterGroup.js +9 -1
- package/dist/legacy/FilterGroup/FilterGroup.js.map +1 -1
- package/dist/legacy/FilterGroup/FilterGroupContext.js +11 -5
- package/dist/legacy/FilterGroup/FilterGroupContext.js.map +1 -1
- package/dist/legacy/TagsInput/TagsInput.d.ts +12 -8
- package/dist/legacy/TagsInput/TagsInput.js +50 -24
- package/dist/legacy/TagsInput/TagsInput.js.map +1 -1
- package/dist/modern/FilterGroup/FilterContent/FilterContent.js +2 -1
- package/dist/modern/FilterGroup/FilterContent/FilterContent.js.map +1 -1
- package/dist/modern/FilterGroup/FilterGroup.d.ts +6 -0
- package/dist/modern/FilterGroup/FilterGroup.js +9 -1
- package/dist/modern/FilterGroup/FilterGroup.js.map +1 -1
- package/dist/modern/FilterGroup/FilterGroupContext.js +10 -4
- package/dist/modern/FilterGroup/FilterGroupContext.js.map +1 -1
- package/dist/modern/TagsInput/TagsInput.d.ts +12 -8
- package/dist/modern/TagsInput/TagsInput.js +47 -25
- package/dist/modern/TagsInput/TagsInput.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,39 @@
|
|
|
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.58.1 (2022-03-11)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **tags-input:** fix prop typo ([766c30b](https://github.com/lumada-design/hv-uikit-react/commit/766c30b81febabfa7d9af82ae1ba73bfecc7c759))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# [3.58.0](https://github.com/lumada-design/hv-uikit-react/compare/@hitachivantara/uikit-react-core@3.57.0...@hitachivantara/uikit-react-core@3.58.0) (2022-03-07)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Features
|
|
21
|
+
|
|
22
|
+
* **TagsInput:** allow commiting tags with other characters and on blur ([#2687](https://github.com/lumada-design/hv-uikit-react/issues/2687)) ([ee06336](https://github.com/lumada-design/hv-uikit-react/commit/ee063364f5f1f7464fc34fc61b26cf51e1795fcf))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
# [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)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
### Features
|
|
32
|
+
|
|
33
|
+
* **filter-group:** add default and controlled values ([82236d0](https://github.com/lumada-design/hv-uikit-react/commit/82236d052262191db139cbf1f46886468c3bc1d6))
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
6
39
|
## [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
40
|
|
|
8
41
|
|
|
@@ -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 \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 \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"}
|
|
@@ -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
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;AAEO,IAAMA,kBAAkB,gBAAGC,eAAMC,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;;AAEO,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;AAEO,IAAMA,kBAAkB,gBAAGC,eAAMC,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;;AAEO,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,kBAAgC,qBAAS,CAAT,CAAhC;AAAA;AAAA,MAAOC,KAAP;AAAA,MAAchB,cAAd;;AACA,uBAAyE,0BACvEc,KAAK,IAAIL,MAAM,CAACC,OAAD,CADwD,CAAzE;AAAA;AAAA,MAAOP,YAAP;AAAA,MAAqBC,eAArB;AAAA,MAAsCC,eAAtC;AAAA,MAAuDY,cAAvD;;AAGA,mBAA0C,qBAAS,KAAT,CAA1C;AAAA;AAAA,MAAOT,aAAP;AAAA,MAAsBU,gBAAtB;;AAEA,wBAAU,YAAM;AACdd,IAAAA,eAAe,CAACU,KAAD,EAAQ,IAAR,CAAf;AACD,GAFD,EAEG,CAACA,KAAD,EAAQV,eAAR,CAFH;AAIA,wBAAU,YAAM;AACdc,IAAAA,gBAAgB,CAAC,sBAAQf,YAAR,EAAsBc,cAAtB,CAAD,CAAhB;AACD,GAFD,EAEG,CAACd,YAAD,EAAec,cAAf,CAFH;AAIA,MAAMX,YAAY,GAAG,wBAAY,YAAM;AACrCF,IAAAA,eAAe,CAACS,YAAY,IAAIJ,MAAM,CAACC,OAAD,CAAvB,CAAf;AACD,GAFoB,EAElB,CAACA,OAAD,EAAUN,eAAV,EAA2BS,YAA3B,CAFkB,CAArB;AAIA,MAAMN,YAAY,GAAG,wBAAY,YAAM;AACrCH,IAAAA,eAAe,CAACD,YAAD,EAAe,IAAf,CAAf;AACD,GAFoB,EAElB,CAACA,YAAD,EAAeC,eAAf,CAFkB,CAArB;AAIA,MAAMe,YAAY,GAAG,oBACnB;AAAA,WAAO;AACLpB,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,GADmB,EAcnB,CACEI,cADF,EAEET,aAFF,EAGED,YAHF,EAIED,YAJF,EAKEH,YALF,EAMEO,OANF,EAOEM,KAPF,EAQEX,eARF,EASED,eATF,EAUES,YAVF,CAdmB,CAArB;AA4BA,sBAAO,6BAAC,kBAAD,CAAoB,QAApB;AAA6B,IAAA,KAAK,EAAEM;AAApC,KAAmDJ,QAAnD,CAAP;AACD,CApDM;;;AAsDP,wCAAAH,mBAAmB,CAACQ,SAApB,GAAgC;AAC9BP,EAAAA,YAAY,EAAEQ,mBAAUC,OAAV,CACZD,mBAAUC,OAAV,CAAkBD,mBAAUE,SAAV,CAAoB,CAACF,mBAAUG,MAAX,EAAmBH,mBAAUI,MAA7B,CAApB,CAAlB,CADY,CADgB;AAI9BX,EAAAA,KAAK,EAAEO,mBAAUC,OAAV,CACLD,mBAAUC,OAAV,CAAkBD,mBAAUE,SAAV,CAAoB,CAACF,mBAAUG,MAAX,EAAmBH,mBAAUI,MAA7B,CAApB,CAAlB,CADK,CAJuB;AAO9Bf,EAAAA,OAAO,EAAEW,mBAAUC,OAAV,CACPD,mBAAUK,KAAV,CAAgB;AACdC,IAAAA,EAAE,EAAEN,mBAAUG,MAAV,CAAiBI,UADP;AAEdC,IAAAA,IAAI,EAAER,mBAAUG,MAAV,CAAiBI,UAFT;AAGdE,IAAAA,IAAI,EAAET,mBAAUC,OAAV,CACJD,mBAAUK,KAAV,CAAgB;AACdC,MAAAA,EAAE,EAAEN,mBAAUE,SAAV,CAAoB,CAACF,mBAAUG,MAAX,EAAmBH,mBAAUI,MAA7B,CAApB,EAA0DG,UADhD;AAEdC,MAAAA,IAAI,EAAER,mBAAUG,MAAV,CAAiBI;AAFT,KAAhB,CADI,EAKJA;AARY,GAAhB,CADO,CAPqB;AAmB9Bb,EAAAA,QAAQ,EAAEM,mBAAUU,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"}
|
|
@@ -143,18 +143,12 @@ export interface HvTagsInputProps
|
|
|
143
143
|
/**
|
|
144
144
|
* The function that will be executed when the input is blurred.
|
|
145
145
|
*/
|
|
146
|
-
|
|
147
|
-
event: React.FocusEvent<HTMLInputElement>,
|
|
148
|
-
value: string
|
|
149
|
-
) => void;
|
|
146
|
+
onBlur?: (event: React.FocusEvent<HTMLInputElement>, value: string) => void;
|
|
150
147
|
|
|
151
148
|
/**
|
|
152
149
|
* The function that will be executed when the input is focused.
|
|
153
150
|
*/
|
|
154
|
-
|
|
155
|
-
event: React.FocusEvent<HTMLInputElement>,
|
|
156
|
-
value: string
|
|
157
|
-
) => void;
|
|
151
|
+
onFocus?: (event: React.FocusEvent<HTMLInputElement>, value: string) => void;
|
|
158
152
|
|
|
159
153
|
/**
|
|
160
154
|
* The status of the form element.
|
|
@@ -169,6 +163,16 @@ export interface HvTagsInputProps
|
|
|
169
163
|
* An Object containing the various texts associated with the input.
|
|
170
164
|
*/
|
|
171
165
|
validationMessages?: HvBaseInputValidationMessagesProps;
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* An array of strings that represent the character used to input a tag.
|
|
169
|
+
* This character is the string representation of the event.code from the input event.
|
|
170
|
+
*/
|
|
171
|
+
commitTagOn?: string[];
|
|
172
|
+
/**
|
|
173
|
+
* If `true` the tag will be commited when the blur event occurs.
|
|
174
|
+
*/
|
|
175
|
+
commitOnBlur?: boolean;
|
|
172
176
|
}
|
|
173
177
|
|
|
174
178
|
export default function HvTagsInput(props: HvTagsInputProps): JSX.Element | null;
|
|
@@ -39,6 +39,10 @@ require("core-js/modules/es.array.concat.js");
|
|
|
39
39
|
|
|
40
40
|
require("core-js/modules/es.array.slice.js");
|
|
41
41
|
|
|
42
|
+
require("core-js/modules/es.array.includes.js");
|
|
43
|
+
|
|
44
|
+
require("core-js/modules/es.string.includes.js");
|
|
45
|
+
|
|
42
46
|
require("core-js/modules/es.array.map.js");
|
|
43
47
|
|
|
44
48
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
@@ -71,7 +75,7 @@ var _validations = require("../BaseInput/validations");
|
|
|
71
75
|
|
|
72
76
|
var _styles = _interopRequireDefault(require("./styles"));
|
|
73
77
|
|
|
74
|
-
var _excluded = ["classes", "className", "id", "name", "value", "defaultValue", "readOnly", "disabled", "required", "label", "aria-label", "aria-labelledby", "description", "aria-describedby", "onChange", "onAdd", "onDelete", "onBlur", "onFocus", "placeholder", "hideCounter", "middleCountLabel", "maxTagsQuantity", "autoFocus", "resizable", "inputProps", "countCharProps", "multiline", "status", "statusMessage", "validationMessages"],
|
|
78
|
+
var _excluded = ["classes", "className", "id", "name", "value", "defaultValue", "readOnly", "disabled", "required", "label", "aria-label", "aria-labelledby", "description", "aria-describedby", "onChange", "onAdd", "onDelete", "onBlur", "onFocus", "placeholder", "hideCounter", "middleCountLabel", "maxTagsQuantity", "autoFocus", "resizable", "inputProps", "countCharProps", "multiline", "status", "statusMessage", "validationMessages", "commitTagOn", "commitOnBlur"],
|
|
75
79
|
_excluded2 = ["label", "type"];
|
|
76
80
|
|
|
77
81
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
@@ -128,6 +132,10 @@ var HvTagsInput = function HvTagsInput(props) {
|
|
|
128
132
|
status = props.status,
|
|
129
133
|
statusMessage = props.statusMessage,
|
|
130
134
|
validationMessages = props.validationMessages,
|
|
135
|
+
_props$commitTagOn = props.commitTagOn,
|
|
136
|
+
commitTagOn = _props$commitTagOn === void 0 ? ["Enter"] : _props$commitTagOn,
|
|
137
|
+
_props$commitOnBlur = props.commitOnBlur,
|
|
138
|
+
commitOnBlur = _props$commitOnBlur === void 0 ? false : _props$commitOnBlur,
|
|
131
139
|
others = (0, _objectWithoutProperties2.default)(props, _excluded);
|
|
132
140
|
var elementId = (0, _.useUniqueId)(id, "hvTagsInput");
|
|
133
141
|
var hasLabel = textAreaLabel != null;
|
|
@@ -209,14 +217,22 @@ var HvTagsInput = function HvTagsInput(props) {
|
|
|
209
217
|
onChange === null || onChange === void 0 ? void 0 : onChange(event, newTagsArr);
|
|
210
218
|
skipReset.current = true;
|
|
211
219
|
}, [onChange, onDelete, performValidation, setValue, tagCursorPos, value]);
|
|
212
|
-
var
|
|
213
|
-
|
|
214
|
-
* Handler for the `onChange` event on the tag input
|
|
215
|
-
*/
|
|
220
|
+
var addTag = (0, _react.useCallback)(function (event, tag) {
|
|
221
|
+
event.preventDefault();
|
|
216
222
|
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
223
|
+
if (tag !== "") {
|
|
224
|
+
var newTag = {
|
|
225
|
+
label: tag,
|
|
226
|
+
type: "semantic"
|
|
227
|
+
};
|
|
228
|
+
var newTagsArr = [].concat((0, _toConsumableArray2.default)(value), [newTag]);
|
|
229
|
+
setValue(newTagsArr);
|
|
230
|
+
performValidation(newTagsArr);
|
|
231
|
+
onAdd === null || onAdd === void 0 ? void 0 : onAdd(event, newTag, newTagsArr.length - 1);
|
|
232
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(event, newTagsArr);
|
|
233
|
+
}
|
|
234
|
+
}, [onAdd, onChange, performValidation, setValue, value]);
|
|
235
|
+
var canShowError = status !== undefined && status === "invalid" && statusMessage !== undefined || !stateValid;
|
|
220
236
|
(0, _react.useEffect)(function () {
|
|
221
237
|
if (!multiline) {
|
|
222
238
|
var _containerRef$current;
|
|
@@ -241,24 +257,21 @@ var HvTagsInput = function HvTagsInput(props) {
|
|
|
241
257
|
skipReset.current = false;
|
|
242
258
|
}, [value]);
|
|
243
259
|
/**
|
|
244
|
-
* Handler for the `
|
|
260
|
+
* Handler for the `onChange` event on the tag input
|
|
245
261
|
*/
|
|
246
262
|
|
|
247
|
-
var
|
|
248
|
-
|
|
263
|
+
var onChangeHandler = (0, _react.useCallback)(function (event, input) {
|
|
264
|
+
setTagInput(input);
|
|
265
|
+
}, []);
|
|
266
|
+
/**
|
|
267
|
+
* Handler for the `onKeyDown` event on the form element
|
|
268
|
+
*/
|
|
249
269
|
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
type: "semantic"
|
|
254
|
-
};
|
|
255
|
-
var newTagsArr = [].concat((0, _toConsumableArray2.default)(value), [newTag]);
|
|
256
|
-
setValue(newTagsArr);
|
|
257
|
-
performValidation(newTagsArr);
|
|
258
|
-
onAdd === null || onAdd === void 0 ? void 0 : onAdd(event, newTag, newTagsArr.length - 1);
|
|
259
|
-
onChange === null || onChange === void 0 ? void 0 : onChange(event, newTagsArr);
|
|
270
|
+
var onInputKeyDownHandler = (0, _react.useCallback)(function (event) {
|
|
271
|
+
if (commitTagOn.includes(event.code)) {
|
|
272
|
+
addTag(event, tagInput);
|
|
260
273
|
}
|
|
261
|
-
}, [
|
|
274
|
+
}, [addTag, commitTagOn, tagInput]);
|
|
262
275
|
/**
|
|
263
276
|
* Handler for the `onKeyDown` event on the list container.
|
|
264
277
|
*/
|
|
@@ -317,6 +330,10 @@ var HvTagsInput = function HvTagsInput(props) {
|
|
|
317
330
|
|
|
318
331
|
var onBlurHandler = function onBlurHandler(evt) {
|
|
319
332
|
blurTimeout.current = setTimeout(function () {
|
|
333
|
+
if (commitOnBlur) {
|
|
334
|
+
addTag(evt, tagInput);
|
|
335
|
+
}
|
|
336
|
+
|
|
320
337
|
onBlur === null || onBlur === void 0 ? void 0 : onBlur(evt, tagInput);
|
|
321
338
|
}, 250);
|
|
322
339
|
};
|
|
@@ -402,7 +419,7 @@ var HvTagsInput = function HvTagsInput(props) {
|
|
|
402
419
|
value: tagInput,
|
|
403
420
|
disableClear: true,
|
|
404
421
|
onChange: onChangeHandler,
|
|
405
|
-
|
|
422
|
+
onKeyDown: onInputKeyDownHandler,
|
|
406
423
|
placeholder: value.length === 0 ? placeholder : "",
|
|
407
424
|
autoFocus: autoFocus,
|
|
408
425
|
className: (0, _clsx.default)(!multiline && classes.singleLine),
|
|
@@ -705,7 +722,18 @@ process.env.NODE_ENV !== "production" ? HvTagsInput.propTypes = {
|
|
|
705
722
|
* The message that appears when the input is empty and required.
|
|
706
723
|
*/
|
|
707
724
|
requiredError: _propTypes.default.string
|
|
708
|
-
})
|
|
725
|
+
}),
|
|
726
|
+
|
|
727
|
+
/**
|
|
728
|
+
* An array of strings that represent the character used to input a tag.
|
|
729
|
+
* This character is the string representation of the event.code from the input event.
|
|
730
|
+
*/
|
|
731
|
+
commitTagOn: _propTypes.default.arrayOf(_propTypes.default.string),
|
|
732
|
+
|
|
733
|
+
/**
|
|
734
|
+
* If `true` the tag will be commited when the blur event occurs.
|
|
735
|
+
*/
|
|
736
|
+
commitOnBlur: _propTypes.default.bool
|
|
709
737
|
} : void 0;
|
|
710
738
|
|
|
711
739
|
var _default = (0, _core.withStyles)(_styles.default, {
|