@hitachivantara/uikit-react-core 4.4.5 → 4.4.6
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/dist/FilterGroup/Counter/Counter.js +1 -4
- package/dist/FilterGroup/Counter/Counter.js.map +1 -1
- package/dist/FilterGroup/RightPanel/RightPanel.js +1 -1
- package/dist/FilterGroup/RightPanel/RightPanel.js.map +1 -1
- package/dist/legacy/FilterGroup/Counter/Counter.js +1 -4
- package/dist/legacy/FilterGroup/Counter/Counter.js.map +1 -1
- package/dist/legacy/FilterGroup/RightPanel/RightPanel.js +1 -1
- package/dist/legacy/FilterGroup/RightPanel/RightPanel.js.map +1 -1
- package/dist/modern/FilterGroup/Counter/Counter.js +1 -1
- package/dist/modern/FilterGroup/Counter/Counter.js.map +1 -1
- package/dist/modern/FilterGroup/RightPanel/RightPanel.js +1 -1
- package/dist/modern/FilterGroup/RightPanel/RightPanel.js.map +1 -1
- package/package.json +6 -5
|
@@ -15,7 +15,6 @@ require("core-js/modules/es.object.to-string.js");
|
|
|
15
15
|
require("core-js/modules/web.dom-collections.for-each.js");
|
|
16
16
|
require("core-js/modules/es.array.find.js");
|
|
17
17
|
require("core-js/modules/es.array.find-index.js");
|
|
18
|
-
require("core-js/modules/es.array.filter.js");
|
|
19
18
|
var _react = _interopRequireWildcard(require("react"));
|
|
20
19
|
var _clsx = _interopRequireDefault(require("clsx"));
|
|
21
20
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
@@ -54,9 +53,7 @@ var Counter = function Counter(_ref) {
|
|
|
54
53
|
return option.id === id;
|
|
55
54
|
});
|
|
56
55
|
var groupsCounter = 0;
|
|
57
|
-
appliedFilters === null || appliedFilters === void 0 ? void 0 : appliedFilters.
|
|
58
|
-
return elem !== undefined;
|
|
59
|
-
}).forEach(function (fg, i) {
|
|
56
|
+
appliedFilters === null || appliedFilters === void 0 ? void 0 : appliedFilters.forEach(function (fg, i) {
|
|
60
57
|
groupsCounter += getExistingFiltersById(i, filterValues, filterOptions);
|
|
61
58
|
});
|
|
62
59
|
var partialCounter = id ? getExistingFiltersById(optionIdx, filterValues, filterOptions) || 0 : groupsCounter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Counter.js","names":["getExistingFiltersById","idx","filterValues","filterOptions","total","forEach","fv","data","find","f","id","Counter","className","classes","useStyles","useContext","FilterGroupContext","appliedFilters","options","option","optionIdx","findIndex","groupsCounter","
|
|
1
|
+
{"version":3,"file":"Counter.js","names":["getExistingFiltersById","idx","filterValues","filterOptions","total","forEach","fv","data","find","f","id","Counter","className","classes","useStyles","useContext","FilterGroupContext","appliedFilters","options","option","optionIdx","findIndex","groupsCounter","fg","i","partialCounter","totalCounter","reduce","acc","length","clsx","root","propTypes","PropTypes","string"],"sources":["../../../src/FilterGroup/Counter/Counter.js"],"sourcesContent":["import React, { useContext } from \"react\";\nimport clsx from \"clsx\";\nimport PropTypes from \"prop-types\";\nimport { FilterGroupContext } from \"../FilterGroupContext\";\nimport useStyles from \"./styles\";\n\nconst getExistingFiltersById = (idx, filterValues, filterOptions) => {\n let total = 0;\n filterValues[idx]?.forEach((fv) => {\n if (filterOptions[idx]?.data.find((f) => f.id === fv)) {\n total += 1;\n }\n });\n return total;\n};\n\nconst Counter = ({ className, id }) => {\n const classes = useStyles();\n const { filterOptions, filterValues = [], appliedFilters = [] } = useContext(FilterGroupContext);\n\n const options = id ? [filterOptions.find((option) => option.id === id)] : filterOptions;\n const optionIdx = filterOptions.findIndex((option) => option.id === id);\n\n let groupsCounter = 0;\n appliedFilters?.forEach((fg, i) => {\n groupsCounter += getExistingFiltersById(i, filterValues, filterOptions);\n });\n\n const partialCounter = id\n ? getExistingFiltersById(optionIdx, filterValues, filterOptions) || 0\n : groupsCounter;\n const totalCounter = options.reduce((acc, option) => acc + option.data.length, 0);\n\n return (\n <div className={clsx(classes.root, className)}>\n {partialCounter > 0 ? <b>{partialCounter}</b> : partialCounter}\n {` / ${totalCounter}`}\n </div>\n );\n};\n\nCounter.propTypes = {\n className: PropTypes.string,\n id: PropTypes.string,\n};\n\nexport default Counter;\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AAAiC;AAAA;AAAA;AAEjC,IAAMA,sBAAsB,GAAG,SAAzBA,sBAAsB,CAAIC,GAAG,EAAEC,YAAY,EAAEC,aAAa,EAAK;EAAA;EACnE,IAAIC,KAAK,GAAG,CAAC;EACb,qBAAAF,YAAY,CAACD,GAAG,CAAC,sDAAjB,kBAAmBI,OAAO,CAAC,UAACC,EAAE,EAAK;IAAA;IACjC,0BAAIH,aAAa,CAACF,GAAG,CAAC,+CAAlB,mBAAoBM,IAAI,CAACC,IAAI,CAAC,UAACC,CAAC;MAAA,OAAKA,CAAC,CAACC,EAAE,KAAKJ,EAAE;IAAA,EAAC,EAAE;MACrDF,KAAK,IAAI,CAAC;IACZ;EACF,CAAC,CAAC;EACF,OAAOA,KAAK;AACd,CAAC;AAED,IAAMO,OAAO,GAAG,SAAVA,OAAO,OAA0B;EAAA,IAApBC,SAAS,QAATA,SAAS;IAAEF,EAAE,QAAFA,EAAE;EAC9B,IAAMG,OAAO,GAAG,IAAAC,eAAS,GAAE;EAC3B,kBAAkE,IAAAC,iBAAU,EAACC,sCAAkB,CAAC;IAAxFb,aAAa,eAAbA,aAAa;IAAA,oCAAED,YAAY;IAAZA,YAAY,sCAAG,EAAE;IAAA,oCAAEe,cAAc;IAAdA,cAAc,sCAAG,EAAE;EAE7D,IAAMC,OAAO,GAAGR,EAAE,GAAG,CAACP,aAAa,CAACK,IAAI,CAAC,UAACW,MAAM;IAAA,OAAKA,MAAM,CAACT,EAAE,KAAKA,EAAE;EAAA,EAAC,CAAC,GAAGP,aAAa;EACvF,IAAMiB,SAAS,GAAGjB,aAAa,CAACkB,SAAS,CAAC,UAACF,MAAM;IAAA,OAAKA,MAAM,CAACT,EAAE,KAAKA,EAAE;EAAA,EAAC;EAEvE,IAAIY,aAAa,GAAG,CAAC;EACrBL,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEZ,OAAO,CAAC,UAACkB,EAAE,EAAEC,CAAC,EAAK;IACjCF,aAAa,IAAItB,sBAAsB,CAACwB,CAAC,EAAEtB,YAAY,EAAEC,aAAa,CAAC;EACzE,CAAC,CAAC;EAEF,IAAMsB,cAAc,GAAGf,EAAE,GACrBV,sBAAsB,CAACoB,SAAS,EAAElB,YAAY,EAAEC,aAAa,CAAC,IAAI,CAAC,GACnEmB,aAAa;EACjB,IAAMI,YAAY,GAAGR,OAAO,CAACS,MAAM,CAAC,UAACC,GAAG,EAAET,MAAM;IAAA,OAAKS,GAAG,GAAGT,MAAM,CAACZ,IAAI,CAACsB,MAAM;EAAA,GAAE,CAAC,CAAC;EAEjF,oBACE;IAAK,SAAS,EAAE,IAAAC,aAAI,EAACjB,OAAO,CAACkB,IAAI,EAAEnB,SAAS,CAAE;IAAA,WAC3Ca,cAAc,GAAG,CAAC,gBAAG;MAAA,UAAIA;IAAc,EAAK,GAAGA,cAAc,eACvDC,YAAY;EAAA,EACf;AAEV,CAAC;AAED,wCAAAf,OAAO,CAACqB,SAAS,GAAG;EAClBpB,SAAS,EAAEqB,kBAAS,CAACC,MAAM;EAC3BxB,EAAE,EAAEuB,kBAAS,CAACC;AAChB,CAAC;AAAC,eAEavB,OAAO;AAAA"}
|
|
@@ -122,7 +122,7 @@ var RightPanel = function RightPanel(_ref) {
|
|
|
122
122
|
newFilterValues[activeGroup] = [];
|
|
123
123
|
}
|
|
124
124
|
} else {
|
|
125
|
-
newFilterValues[activeGroup] =
|
|
125
|
+
newFilterValues[activeGroup] = (0, _toConsumableArray2.default)(activeGroupOptions);
|
|
126
126
|
}
|
|
127
127
|
setFilterValues(newFilterValues);
|
|
128
128
|
}, [activeGroup, activeGroupOptions, anySelected, filterValues, setFilterValues, searchStr]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RightPanel.js","names":["RightPanel","id","className","labels","emptyElement","classes","useStyles","useState","searchStr","setSearchStr","allSelected","setAllSelected","anySelected","setAnySelected","useContext","FilterGroupContext","filterOptions","filterValues","setFilterValues","activeGroup","activeGroupOptions","useMemo","data","filter","option","name","toLowerCase","includes","map","activeFilterValues","value","listValues","label","selected","isHidden","indexOf","updateSelectAll","useCallback","nbrSelected","length","hasSelection","allSelect","useEffect","onChangeHandler","values","newFilterValues","i","v","handleSelectAll","cloneDeep","SelectAll","selectAll","multiSelectionConjunction","defaultLabel","selectAllContainer","setId","container","selection","clsx","root","search","searchBoxPlaceholder","event","str","list","propTypes","PropTypes","string","shape","node"],"sources":["../../../src/FilterGroup/RightPanel/RightPanel.js"],"sourcesContent":["import React, { useMemo, useContext, useState, useEffect, useCallback } from \"react\";\nimport PropTypes from \"prop-types\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport clsx from \"clsx\";\nimport { FilterGroupContext } from \"../FilterGroupContext\";\nimport useStyles from \"./styles\";\nimport { setId, HvTypography, HvList, HvInput, HvPanel, HvCheckBox } from \"../..\";\n\nconst RightPanel = ({ id, className, labels, emptyElement }) => {\n const classes = useStyles();\n const [searchStr, setSearchStr] = useState(\"\");\n const [allSelected, setAllSelected] = useState(false);\n const [anySelected, setAnySelected] = useState(false);\n\n const {\n filterOptions,\n filterValues = [],\n setFilterValues,\n activeGroup,\n } = useContext(FilterGroupContext);\n\n const activeGroupOptions = useMemo(\n () =>\n filterOptions[activeGroup]?.data\n .filter((option) => option.name.toLowerCase().includes(searchStr.toLowerCase()))\n .map((option) => option.id) || [],\n [filterOptions, activeGroup, searchStr]\n );\n\n const activeFilterValues = useMemo(\n () => filterValues[activeGroup]?.filter((value) => activeGroupOptions.includes(value)),\n [filterValues, activeGroupOptions, activeGroup]\n );\n\n const listValues = useMemo(\n () =>\n filterOptions[activeGroup].data.map((option) => ({\n ...option,\n label: option.name,\n selected: filterValues[activeGroup]?.includes(option.id),\n isHidden: option.name.toLowerCase().indexOf(searchStr.toLowerCase()) < 0,\n })),\n [filterOptions, filterValues, activeGroup, searchStr]\n );\n\n const updateSelectAll = useCallback(() => {\n const nbrSelected = activeFilterValues?.length;\n const hasSelection = nbrSelected > 0;\n const allSelect = nbrSelected === activeGroupOptions.length;\n\n setAnySelected(hasSelection);\n setAllSelected(hasSelection && allSelect);\n }, [activeFilterValues, activeGroupOptions]);\n\n useEffect(() => {\n updateSelectAll();\n }, [activeFilterValues, updateSelectAll]);\n\n useEffect(() => setSearchStr(\"\"), [activeGroup]);\n\n const onChangeHandler = (values) => {\n const newFilterValues = filterOptions.map((option, i) =>\n activeGroup === i\n ? values.filter((v) => v.selected).map((v) => v.id)\n : [...(filterValues[i] || [])]\n );\n setFilterValues(newFilterValues);\n };\n\n const handleSelectAll = useCallback(() => {\n const newFilterValues = cloneDeep(filterValues);\n\n if (anySelected) {\n if (searchStr !== \"\") {\n newFilterValues[activeGroup] = filterValues[activeGroup]?.filter(\n (value) => !activeGroupOptions.includes(value)\n );\n } else {\n newFilterValues[activeGroup] = [];\n }\n } else {\n newFilterValues[activeGroup] = [...filterValues[activeGroup], ...activeGroupOptions];\n }\n\n setFilterValues(newFilterValues);\n }, [activeGroup, activeGroupOptions, anySelected, filterValues, setFilterValues, searchStr]);\n\n /**\n * Create selecteAll component.\n *\n * @returns {*}\n */\n const SelectAll = useCallback(() => {\n const { selectAll, multiSelectionConjunction } = labels;\n const nbrSelected = activeFilterValues?.length;\n\n const defaultLabel = (\n <HvTypography component=\"span\">\n {nbrSelected > 0 ? (\n <>\n <b>{nbrSelected}</b>\n {` ${multiSelectionConjunction} ${activeGroupOptions.length}`}\n </>\n ) : (\n <>\n <b>{selectAll}</b>\n {` (${activeGroupOptions.length})`}\n </>\n )}\n </HvTypography>\n );\n\n return (\n <div className={classes.selectAllContainer}>\n <HvCheckBox\n id={setId(id, \"select-all\")}\n label={defaultLabel}\n onChange={() => handleSelectAll()}\n classes={{ container: classes.selection }}\n className={classes.selectAll}\n indeterminate={anySelected && !allSelected}\n checked={allSelected}\n />\n </div>\n );\n }, [\n activeFilterValues?.length,\n activeGroupOptions.length,\n allSelected,\n anySelected,\n classes.selectAll,\n classes.selectAllContainer,\n classes.selection,\n handleSelectAll,\n id,\n labels,\n ]);\n\n return (\n <HvPanel id={setId(id, \"rightPanel\")} className={clsx(className, classes.root)}>\n {listValues.length > 0 ? (\n <>\n <HvInput\n id={setId(id, \"search\")}\n classes={{\n root: classes.search,\n }}\n type=\"search\"\n placeholder={labels.searchBoxPlaceholder}\n value={searchStr}\n onChange={(event, str) => setSearchStr(str)}\n />\n <SelectAll />\n <HvList\n key={activeGroup}\n id={setId(id, \"list\")}\n className={classes.list}\n values={listValues}\n multiSelect\n useSelector\n showSelectAll={false}\n onChange={onChangeHandler}\n selectable\n condensed\n hasTooltips\n />\n </>\n ) : (\n emptyElement\n )}\n </HvPanel>\n );\n};\n\nRightPanel.propTypes = {\n id: PropTypes.string,\n className: PropTypes.string,\n labels: PropTypes.shape({\n searchBoxPlaceholder: PropTypes.string,\n selectAll: PropTypes.string,\n multiSelectionConjunction: PropTypes.string,\n }),\n emptyElement: PropTypes.node,\n};\n\nexport default RightPanel;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RightPanel.js","names":["RightPanel","id","className","labels","emptyElement","classes","useStyles","useState","searchStr","setSearchStr","allSelected","setAllSelected","anySelected","setAnySelected","useContext","FilterGroupContext","filterOptions","filterValues","setFilterValues","activeGroup","activeGroupOptions","useMemo","data","filter","option","name","toLowerCase","includes","map","activeFilterValues","value","listValues","label","selected","isHidden","indexOf","updateSelectAll","useCallback","nbrSelected","length","hasSelection","allSelect","useEffect","onChangeHandler","values","newFilterValues","i","v","handleSelectAll","cloneDeep","SelectAll","selectAll","multiSelectionConjunction","defaultLabel","selectAllContainer","setId","container","selection","clsx","root","search","searchBoxPlaceholder","event","str","list","propTypes","PropTypes","string","shape","node"],"sources":["../../../src/FilterGroup/RightPanel/RightPanel.js"],"sourcesContent":["import React, { useMemo, useContext, useState, useEffect, useCallback } from \"react\";\nimport PropTypes from \"prop-types\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport clsx from \"clsx\";\nimport { FilterGroupContext } from \"../FilterGroupContext\";\nimport useStyles from \"./styles\";\nimport { setId, HvTypography, HvList, HvInput, HvPanel, HvCheckBox } from \"../..\";\n\nconst RightPanel = ({ id, className, labels, emptyElement }) => {\n const classes = useStyles();\n const [searchStr, setSearchStr] = useState(\"\");\n const [allSelected, setAllSelected] = useState(false);\n const [anySelected, setAnySelected] = useState(false);\n\n const {\n filterOptions,\n filterValues = [],\n setFilterValues,\n activeGroup,\n } = useContext(FilterGroupContext);\n\n const activeGroupOptions = useMemo(\n () =>\n filterOptions[activeGroup]?.data\n .filter((option) => option.name.toLowerCase().includes(searchStr.toLowerCase()))\n .map((option) => option.id) || [],\n [filterOptions, activeGroup, searchStr]\n );\n\n const activeFilterValues = useMemo(\n () => filterValues[activeGroup]?.filter((value) => activeGroupOptions.includes(value)),\n [filterValues, activeGroupOptions, activeGroup]\n );\n\n const listValues = useMemo(\n () =>\n filterOptions[activeGroup].data.map((option) => ({\n ...option,\n label: option.name,\n selected: filterValues[activeGroup]?.includes(option.id),\n isHidden: option.name.toLowerCase().indexOf(searchStr.toLowerCase()) < 0,\n })),\n [filterOptions, filterValues, activeGroup, searchStr]\n );\n\n const updateSelectAll = useCallback(() => {\n const nbrSelected = activeFilterValues?.length;\n const hasSelection = nbrSelected > 0;\n const allSelect = nbrSelected === activeGroupOptions.length;\n\n setAnySelected(hasSelection);\n setAllSelected(hasSelection && allSelect);\n }, [activeFilterValues, activeGroupOptions]);\n\n useEffect(() => {\n updateSelectAll();\n }, [activeFilterValues, updateSelectAll]);\n\n useEffect(() => setSearchStr(\"\"), [activeGroup]);\n\n const onChangeHandler = (values) => {\n const newFilterValues = filterOptions.map((option, i) =>\n activeGroup === i\n ? values.filter((v) => v.selected).map((v) => v.id)\n : [...(filterValues[i] || [])]\n );\n setFilterValues(newFilterValues);\n };\n\n const handleSelectAll = useCallback(() => {\n const newFilterValues = cloneDeep(filterValues);\n\n if (anySelected) {\n if (searchStr !== \"\") {\n newFilterValues[activeGroup] = filterValues[activeGroup]?.filter(\n (value) => !activeGroupOptions.includes(value)\n );\n } else {\n newFilterValues[activeGroup] = [];\n }\n } else {\n newFilterValues[activeGroup] = [...activeGroupOptions];\n }\n\n setFilterValues(newFilterValues);\n }, [activeGroup, activeGroupOptions, anySelected, filterValues, setFilterValues, searchStr]);\n\n /**\n * Create selecteAll component.\n *\n * @returns {*}\n */\n const SelectAll = useCallback(() => {\n const { selectAll, multiSelectionConjunction } = labels;\n const nbrSelected = activeFilterValues?.length;\n\n const defaultLabel = (\n <HvTypography component=\"span\">\n {nbrSelected > 0 ? (\n <>\n <b>{nbrSelected}</b>\n {` ${multiSelectionConjunction} ${activeGroupOptions.length}`}\n </>\n ) : (\n <>\n <b>{selectAll}</b>\n {` (${activeGroupOptions.length})`}\n </>\n )}\n </HvTypography>\n );\n\n return (\n <div className={classes.selectAllContainer}>\n <HvCheckBox\n id={setId(id, \"select-all\")}\n label={defaultLabel}\n onChange={() => handleSelectAll()}\n classes={{ container: classes.selection }}\n className={classes.selectAll}\n indeterminate={anySelected && !allSelected}\n checked={allSelected}\n />\n </div>\n );\n }, [\n activeFilterValues?.length,\n activeGroupOptions.length,\n allSelected,\n anySelected,\n classes.selectAll,\n classes.selectAllContainer,\n classes.selection,\n handleSelectAll,\n id,\n labels,\n ]);\n\n return (\n <HvPanel id={setId(id, \"rightPanel\")} className={clsx(className, classes.root)}>\n {listValues.length > 0 ? (\n <>\n <HvInput\n id={setId(id, \"search\")}\n classes={{\n root: classes.search,\n }}\n type=\"search\"\n placeholder={labels.searchBoxPlaceholder}\n value={searchStr}\n onChange={(event, str) => setSearchStr(str)}\n />\n <SelectAll />\n <HvList\n key={activeGroup}\n id={setId(id, \"list\")}\n className={classes.list}\n values={listValues}\n multiSelect\n useSelector\n showSelectAll={false}\n onChange={onChangeHandler}\n selectable\n condensed\n hasTooltips\n />\n </>\n ) : (\n emptyElement\n )}\n </HvPanel>\n );\n};\n\nRightPanel.propTypes = {\n id: PropTypes.string,\n className: PropTypes.string,\n labels: PropTypes.shape({\n searchBoxPlaceholder: PropTypes.string,\n selectAll: PropTypes.string,\n multiSelectionConjunction: PropTypes.string,\n }),\n emptyElement: PropTypes.node,\n};\n\nexport default RightPanel;\n"],"mappings":"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"}
|
|
@@ -2,7 +2,6 @@ import "core-js/modules/es.object.to-string.js";
|
|
|
2
2
|
import "core-js/modules/web.dom-collections.for-each.js";
|
|
3
3
|
import "core-js/modules/es.array.find.js";
|
|
4
4
|
import "core-js/modules/es.array.find-index.js";
|
|
5
|
-
import "core-js/modules/es.array.filter.js";
|
|
6
5
|
import React, { useContext } from "react";
|
|
7
6
|
import clsx from "clsx";
|
|
8
7
|
import PropTypes from "prop-types";
|
|
@@ -40,9 +39,7 @@ var Counter = function Counter(_ref) {
|
|
|
40
39
|
return option.id === id;
|
|
41
40
|
});
|
|
42
41
|
var groupsCounter = 0;
|
|
43
|
-
appliedFilters === null || appliedFilters === void 0 ? void 0 : appliedFilters.
|
|
44
|
-
return elem !== undefined;
|
|
45
|
-
}).forEach(function (fg, i) {
|
|
42
|
+
appliedFilters === null || appliedFilters === void 0 ? void 0 : appliedFilters.forEach(function (fg, i) {
|
|
46
43
|
groupsCounter += getExistingFiltersById(i, filterValues, filterOptions);
|
|
47
44
|
});
|
|
48
45
|
var partialCounter = id ? getExistingFiltersById(optionIdx, filterValues, filterOptions) || 0 : groupsCounter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Counter.js","names":["React","useContext","clsx","PropTypes","FilterGroupContext","useStyles","getExistingFiltersById","idx","filterValues","filterOptions","total","forEach","fv","data","find","f","id","Counter","className","classes","appliedFilters","options","option","optionIdx","findIndex","groupsCounter","
|
|
1
|
+
{"version":3,"file":"Counter.js","names":["React","useContext","clsx","PropTypes","FilterGroupContext","useStyles","getExistingFiltersById","idx","filterValues","filterOptions","total","forEach","fv","data","find","f","id","Counter","className","classes","appliedFilters","options","option","optionIdx","findIndex","groupsCounter","fg","i","partialCounter","totalCounter","reduce","acc","length","root","propTypes","string"],"sources":["../../../../src/FilterGroup/Counter/Counter.js"],"sourcesContent":["import React, { useContext } from \"react\";\nimport clsx from \"clsx\";\nimport PropTypes from \"prop-types\";\nimport { FilterGroupContext } from \"../FilterGroupContext\";\nimport useStyles from \"./styles\";\n\nconst getExistingFiltersById = (idx, filterValues, filterOptions) => {\n let total = 0;\n filterValues[idx]?.forEach((fv) => {\n if (filterOptions[idx]?.data.find((f) => f.id === fv)) {\n total += 1;\n }\n });\n return total;\n};\n\nconst Counter = ({ className, id }) => {\n const classes = useStyles();\n const { filterOptions, filterValues = [], appliedFilters = [] } = useContext(FilterGroupContext);\n\n const options = id ? [filterOptions.find((option) => option.id === id)] : filterOptions;\n const optionIdx = filterOptions.findIndex((option) => option.id === id);\n\n let groupsCounter = 0;\n appliedFilters?.forEach((fg, i) => {\n groupsCounter += getExistingFiltersById(i, filterValues, filterOptions);\n });\n\n const partialCounter = id\n ? getExistingFiltersById(optionIdx, filterValues, filterOptions) || 0\n : groupsCounter;\n const totalCounter = options.reduce((acc, option) => acc + option.data.length, 0);\n\n return (\n <div className={clsx(classes.root, className)}>\n {partialCounter > 0 ? <b>{partialCounter}</b> : partialCounter}\n {` / ${totalCounter}`}\n </div>\n );\n};\n\nCounter.propTypes = {\n className: PropTypes.string,\n id: PropTypes.string,\n};\n\nexport default Counter;\n"],"mappings":";;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,IAAI,MAAM,MAAM;AACvB,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,kBAAkB,QAAQ,uBAAuB;AAC1D,OAAOC,SAAS,MAAM,UAAU;AAAC;AAAA;AAEjC,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAsB,CAAIC,GAAG,EAAEC,YAAY,EAAEC,aAAa,EAAK;EAAA;EACnE,IAAIC,KAAK,GAAG,CAAC;EACb,qBAAAF,YAAY,CAACD,GAAG,CAAC,sDAAjB,kBAAmBI,OAAO,CAAC,UAACC,EAAE,EAAK;IAAA;IACjC,0BAAIH,aAAa,CAACF,GAAG,CAAC,+CAAlB,mBAAoBM,IAAI,CAACC,IAAI,CAAC,UAACC,CAAC;MAAA,OAAKA,CAAC,CAACC,EAAE,KAAKJ,EAAE;IAAA,EAAC,EAAE;MACrDF,KAAK,IAAI,CAAC;IACZ;EACF,CAAC,CAAC;EACF,OAAOA,KAAK;AACd,CAAC;AAED,IAAMO,OAAO,GAAG,SAAVA,OAAO,OAA0B;EAAA,IAApBC,SAAS,QAATA,SAAS;IAAEF,EAAE,QAAFA,EAAE;EAC9B,IAAMG,OAAO,GAAGd,SAAS,EAAE;EAC3B,kBAAkEJ,UAAU,CAACG,kBAAkB,CAAC;IAAxFK,aAAa,eAAbA,aAAa;IAAA,oCAAED,YAAY;IAAZA,YAAY,sCAAG,EAAE;IAAA,oCAAEY,cAAc;IAAdA,cAAc,sCAAG,EAAE;EAE7D,IAAMC,OAAO,GAAGL,EAAE,GAAG,CAACP,aAAa,CAACK,IAAI,CAAC,UAACQ,MAAM;IAAA,OAAKA,MAAM,CAACN,EAAE,KAAKA,EAAE;EAAA,EAAC,CAAC,GAAGP,aAAa;EACvF,IAAMc,SAAS,GAAGd,aAAa,CAACe,SAAS,CAAC,UAACF,MAAM;IAAA,OAAKA,MAAM,CAACN,EAAE,KAAKA,EAAE;EAAA,EAAC;EAEvE,IAAIS,aAAa,GAAG,CAAC;EACrBL,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAET,OAAO,CAAC,UAACe,EAAE,EAAEC,CAAC,EAAK;IACjCF,aAAa,IAAInB,sBAAsB,CAACqB,CAAC,EAAEnB,YAAY,EAAEC,aAAa,CAAC;EACzE,CAAC,CAAC;EAEF,IAAMmB,cAAc,GAAGZ,EAAE,GACrBV,sBAAsB,CAACiB,SAAS,EAAEf,YAAY,EAAEC,aAAa,CAAC,IAAI,CAAC,GACnEgB,aAAa;EACjB,IAAMI,YAAY,GAAGR,OAAO,CAACS,MAAM,CAAC,UAACC,GAAG,EAAET,MAAM;IAAA,OAAKS,GAAG,GAAGT,MAAM,CAACT,IAAI,CAACmB,MAAM;EAAA,GAAE,CAAC,CAAC;EAEjF,oBACE;IAAK,SAAS,EAAE9B,IAAI,CAACiB,OAAO,CAACc,IAAI,EAAEf,SAAS,CAAE;IAAA,WAC3CU,cAAc,GAAG,CAAC,gBAAG;MAAA,UAAIA;IAAc,EAAK,GAAGA,cAAc,eACvDC,YAAY;EAAA,EACf;AAEV,CAAC;AAED,wCAAAZ,OAAO,CAACiB,SAAS,GAAG;EAClBhB,SAAS,EAAEf,SAAS,CAACgC,MAAM;EAC3BnB,EAAE,EAAEb,SAAS,CAACgC;AAChB,CAAC;AAED,eAAelB,OAAO"}
|
|
@@ -110,7 +110,7 @@ var RightPanel = function RightPanel(_ref) {
|
|
|
110
110
|
newFilterValues[activeGroup] = [];
|
|
111
111
|
}
|
|
112
112
|
} else {
|
|
113
|
-
newFilterValues[activeGroup] =
|
|
113
|
+
newFilterValues[activeGroup] = _toConsumableArray(activeGroupOptions);
|
|
114
114
|
}
|
|
115
115
|
setFilterValues(newFilterValues);
|
|
116
116
|
}, [activeGroup, activeGroupOptions, anySelected, filterValues, setFilterValues, searchStr]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RightPanel.js","names":["React","useMemo","useContext","useState","useEffect","useCallback","PropTypes","cloneDeep","clsx","FilterGroupContext","useStyles","setId","HvTypography","HvList","HvInput","HvPanel","HvCheckBox","RightPanel","id","className","labels","emptyElement","classes","searchStr","setSearchStr","allSelected","setAllSelected","anySelected","setAnySelected","filterOptions","filterValues","setFilterValues","activeGroup","activeGroupOptions","data","filter","option","name","toLowerCase","includes","map","activeFilterValues","value","listValues","label","selected","isHidden","indexOf","updateSelectAll","nbrSelected","length","hasSelection","allSelect","onChangeHandler","values","newFilterValues","i","v","handleSelectAll","SelectAll","selectAll","multiSelectionConjunction","defaultLabel","selectAllContainer","container","selection","root","search","searchBoxPlaceholder","event","str","list","propTypes","string","shape","node"],"sources":["../../../../src/FilterGroup/RightPanel/RightPanel.js"],"sourcesContent":["import React, { useMemo, useContext, useState, useEffect, useCallback } from \"react\";\nimport PropTypes from \"prop-types\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport clsx from \"clsx\";\nimport { FilterGroupContext } from \"../FilterGroupContext\";\nimport useStyles from \"./styles\";\nimport { setId, HvTypography, HvList, HvInput, HvPanel, HvCheckBox } from \"../..\";\n\nconst RightPanel = ({ id, className, labels, emptyElement }) => {\n const classes = useStyles();\n const [searchStr, setSearchStr] = useState(\"\");\n const [allSelected, setAllSelected] = useState(false);\n const [anySelected, setAnySelected] = useState(false);\n\n const {\n filterOptions,\n filterValues = [],\n setFilterValues,\n activeGroup,\n } = useContext(FilterGroupContext);\n\n const activeGroupOptions = useMemo(\n () =>\n filterOptions[activeGroup]?.data\n .filter((option) => option.name.toLowerCase().includes(searchStr.toLowerCase()))\n .map((option) => option.id) || [],\n [filterOptions, activeGroup, searchStr]\n );\n\n const activeFilterValues = useMemo(\n () => filterValues[activeGroup]?.filter((value) => activeGroupOptions.includes(value)),\n [filterValues, activeGroupOptions, activeGroup]\n );\n\n const listValues = useMemo(\n () =>\n filterOptions[activeGroup].data.map((option) => ({\n ...option,\n label: option.name,\n selected: filterValues[activeGroup]?.includes(option.id),\n isHidden: option.name.toLowerCase().indexOf(searchStr.toLowerCase()) < 0,\n })),\n [filterOptions, filterValues, activeGroup, searchStr]\n );\n\n const updateSelectAll = useCallback(() => {\n const nbrSelected = activeFilterValues?.length;\n const hasSelection = nbrSelected > 0;\n const allSelect = nbrSelected === activeGroupOptions.length;\n\n setAnySelected(hasSelection);\n setAllSelected(hasSelection && allSelect);\n }, [activeFilterValues, activeGroupOptions]);\n\n useEffect(() => {\n updateSelectAll();\n }, [activeFilterValues, updateSelectAll]);\n\n useEffect(() => setSearchStr(\"\"), [activeGroup]);\n\n const onChangeHandler = (values) => {\n const newFilterValues = filterOptions.map((option, i) =>\n activeGroup === i\n ? values.filter((v) => v.selected).map((v) => v.id)\n : [...(filterValues[i] || [])]\n );\n setFilterValues(newFilterValues);\n };\n\n const handleSelectAll = useCallback(() => {\n const newFilterValues = cloneDeep(filterValues);\n\n if (anySelected) {\n if (searchStr !== \"\") {\n newFilterValues[activeGroup] = filterValues[activeGroup]?.filter(\n (value) => !activeGroupOptions.includes(value)\n );\n } else {\n newFilterValues[activeGroup] = [];\n }\n } else {\n newFilterValues[activeGroup] = [...filterValues[activeGroup], ...activeGroupOptions];\n }\n\n setFilterValues(newFilterValues);\n }, [activeGroup, activeGroupOptions, anySelected, filterValues, setFilterValues, searchStr]);\n\n /**\n * Create selecteAll component.\n *\n * @returns {*}\n */\n const SelectAll = useCallback(() => {\n const { selectAll, multiSelectionConjunction } = labels;\n const nbrSelected = activeFilterValues?.length;\n\n const defaultLabel = (\n <HvTypography component=\"span\">\n {nbrSelected > 0 ? (\n <>\n <b>{nbrSelected}</b>\n {` ${multiSelectionConjunction} ${activeGroupOptions.length}`}\n </>\n ) : (\n <>\n <b>{selectAll}</b>\n {` (${activeGroupOptions.length})`}\n </>\n )}\n </HvTypography>\n );\n\n return (\n <div className={classes.selectAllContainer}>\n <HvCheckBox\n id={setId(id, \"select-all\")}\n label={defaultLabel}\n onChange={() => handleSelectAll()}\n classes={{ container: classes.selection }}\n className={classes.selectAll}\n indeterminate={anySelected && !allSelected}\n checked={allSelected}\n />\n </div>\n );\n }, [\n activeFilterValues?.length,\n activeGroupOptions.length,\n allSelected,\n anySelected,\n classes.selectAll,\n classes.selectAllContainer,\n classes.selection,\n handleSelectAll,\n id,\n labels,\n ]);\n\n return (\n <HvPanel id={setId(id, \"rightPanel\")} className={clsx(className, classes.root)}>\n {listValues.length > 0 ? (\n <>\n <HvInput\n id={setId(id, \"search\")}\n classes={{\n root: classes.search,\n }}\n type=\"search\"\n placeholder={labels.searchBoxPlaceholder}\n value={searchStr}\n onChange={(event, str) => setSearchStr(str)}\n />\n <SelectAll />\n <HvList\n key={activeGroup}\n id={setId(id, \"list\")}\n className={classes.list}\n values={listValues}\n multiSelect\n useSelector\n showSelectAll={false}\n onChange={onChangeHandler}\n selectable\n condensed\n hasTooltips\n />\n </>\n ) : (\n emptyElement\n )}\n </HvPanel>\n );\n};\n\nRightPanel.propTypes = {\n id: PropTypes.string,\n className: PropTypes.string,\n labels: PropTypes.shape({\n searchBoxPlaceholder: PropTypes.string,\n selectAll: PropTypes.string,\n multiSelectionConjunction: PropTypes.string,\n }),\n emptyElement: PropTypes.node,\n};\n\nexport default RightPanel;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RightPanel.js","names":["React","useMemo","useContext","useState","useEffect","useCallback","PropTypes","cloneDeep","clsx","FilterGroupContext","useStyles","setId","HvTypography","HvList","HvInput","HvPanel","HvCheckBox","RightPanel","id","className","labels","emptyElement","classes","searchStr","setSearchStr","allSelected","setAllSelected","anySelected","setAnySelected","filterOptions","filterValues","setFilterValues","activeGroup","activeGroupOptions","data","filter","option","name","toLowerCase","includes","map","activeFilterValues","value","listValues","label","selected","isHidden","indexOf","updateSelectAll","nbrSelected","length","hasSelection","allSelect","onChangeHandler","values","newFilterValues","i","v","handleSelectAll","SelectAll","selectAll","multiSelectionConjunction","defaultLabel","selectAllContainer","container","selection","root","search","searchBoxPlaceholder","event","str","list","propTypes","string","shape","node"],"sources":["../../../../src/FilterGroup/RightPanel/RightPanel.js"],"sourcesContent":["import React, { useMemo, useContext, useState, useEffect, useCallback } from \"react\";\nimport PropTypes from \"prop-types\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport clsx from \"clsx\";\nimport { FilterGroupContext } from \"../FilterGroupContext\";\nimport useStyles from \"./styles\";\nimport { setId, HvTypography, HvList, HvInput, HvPanel, HvCheckBox } from \"../..\";\n\nconst RightPanel = ({ id, className, labels, emptyElement }) => {\n const classes = useStyles();\n const [searchStr, setSearchStr] = useState(\"\");\n const [allSelected, setAllSelected] = useState(false);\n const [anySelected, setAnySelected] = useState(false);\n\n const {\n filterOptions,\n filterValues = [],\n setFilterValues,\n activeGroup,\n } = useContext(FilterGroupContext);\n\n const activeGroupOptions = useMemo(\n () =>\n filterOptions[activeGroup]?.data\n .filter((option) => option.name.toLowerCase().includes(searchStr.toLowerCase()))\n .map((option) => option.id) || [],\n [filterOptions, activeGroup, searchStr]\n );\n\n const activeFilterValues = useMemo(\n () => filterValues[activeGroup]?.filter((value) => activeGroupOptions.includes(value)),\n [filterValues, activeGroupOptions, activeGroup]\n );\n\n const listValues = useMemo(\n () =>\n filterOptions[activeGroup].data.map((option) => ({\n ...option,\n label: option.name,\n selected: filterValues[activeGroup]?.includes(option.id),\n isHidden: option.name.toLowerCase().indexOf(searchStr.toLowerCase()) < 0,\n })),\n [filterOptions, filterValues, activeGroup, searchStr]\n );\n\n const updateSelectAll = useCallback(() => {\n const nbrSelected = activeFilterValues?.length;\n const hasSelection = nbrSelected > 0;\n const allSelect = nbrSelected === activeGroupOptions.length;\n\n setAnySelected(hasSelection);\n setAllSelected(hasSelection && allSelect);\n }, [activeFilterValues, activeGroupOptions]);\n\n useEffect(() => {\n updateSelectAll();\n }, [activeFilterValues, updateSelectAll]);\n\n useEffect(() => setSearchStr(\"\"), [activeGroup]);\n\n const onChangeHandler = (values) => {\n const newFilterValues = filterOptions.map((option, i) =>\n activeGroup === i\n ? values.filter((v) => v.selected).map((v) => v.id)\n : [...(filterValues[i] || [])]\n );\n setFilterValues(newFilterValues);\n };\n\n const handleSelectAll = useCallback(() => {\n const newFilterValues = cloneDeep(filterValues);\n\n if (anySelected) {\n if (searchStr !== \"\") {\n newFilterValues[activeGroup] = filterValues[activeGroup]?.filter(\n (value) => !activeGroupOptions.includes(value)\n );\n } else {\n newFilterValues[activeGroup] = [];\n }\n } else {\n newFilterValues[activeGroup] = [...activeGroupOptions];\n }\n\n setFilterValues(newFilterValues);\n }, [activeGroup, activeGroupOptions, anySelected, filterValues, setFilterValues, searchStr]);\n\n /**\n * Create selecteAll component.\n *\n * @returns {*}\n */\n const SelectAll = useCallback(() => {\n const { selectAll, multiSelectionConjunction } = labels;\n const nbrSelected = activeFilterValues?.length;\n\n const defaultLabel = (\n <HvTypography component=\"span\">\n {nbrSelected > 0 ? (\n <>\n <b>{nbrSelected}</b>\n {` ${multiSelectionConjunction} ${activeGroupOptions.length}`}\n </>\n ) : (\n <>\n <b>{selectAll}</b>\n {` (${activeGroupOptions.length})`}\n </>\n )}\n </HvTypography>\n );\n\n return (\n <div className={classes.selectAllContainer}>\n <HvCheckBox\n id={setId(id, \"select-all\")}\n label={defaultLabel}\n onChange={() => handleSelectAll()}\n classes={{ container: classes.selection }}\n className={classes.selectAll}\n indeterminate={anySelected && !allSelected}\n checked={allSelected}\n />\n </div>\n );\n }, [\n activeFilterValues?.length,\n activeGroupOptions.length,\n allSelected,\n anySelected,\n classes.selectAll,\n classes.selectAllContainer,\n classes.selection,\n handleSelectAll,\n id,\n labels,\n ]);\n\n return (\n <HvPanel id={setId(id, \"rightPanel\")} className={clsx(className, classes.root)}>\n {listValues.length > 0 ? (\n <>\n <HvInput\n id={setId(id, \"search\")}\n classes={{\n root: classes.search,\n }}\n type=\"search\"\n placeholder={labels.searchBoxPlaceholder}\n value={searchStr}\n onChange={(event, str) => setSearchStr(str)}\n />\n <SelectAll />\n <HvList\n key={activeGroup}\n id={setId(id, \"list\")}\n className={classes.list}\n values={listValues}\n multiSelect\n useSelector\n showSelectAll={false}\n onChange={onChangeHandler}\n selectable\n condensed\n hasTooltips\n />\n </>\n ) : (\n emptyElement\n )}\n </HvPanel>\n );\n};\n\nRightPanel.propTypes = {\n id: PropTypes.string,\n className: PropTypes.string,\n labels: PropTypes.shape({\n searchBoxPlaceholder: PropTypes.string,\n selectAll: PropTypes.string,\n multiSelectionConjunction: PropTypes.string,\n }),\n emptyElement: PropTypes.node,\n};\n\nexport default RightPanel;\n"],"mappings":"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"}
|
|
@@ -29,7 +29,7 @@ const Counter = ({
|
|
|
29
29
|
const options = id ? [filterOptions.find(option => option.id === id)] : filterOptions;
|
|
30
30
|
const optionIdx = filterOptions.findIndex(option => option.id === id);
|
|
31
31
|
let groupsCounter = 0;
|
|
32
|
-
appliedFilters === null || appliedFilters === void 0 ? void 0 : appliedFilters.
|
|
32
|
+
appliedFilters === null || appliedFilters === void 0 ? void 0 : appliedFilters.forEach((fg, i) => {
|
|
33
33
|
groupsCounter += getExistingFiltersById(i, filterValues, filterOptions);
|
|
34
34
|
});
|
|
35
35
|
const partialCounter = id ? getExistingFiltersById(optionIdx, filterValues, filterOptions) || 0 : groupsCounter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Counter.js","names":["React","useContext","clsx","PropTypes","FilterGroupContext","useStyles","getExistingFiltersById","idx","filterValues","filterOptions","total","forEach","fv","data","find","f","id","Counter","className","classes","appliedFilters","options","option","optionIdx","findIndex","groupsCounter","
|
|
1
|
+
{"version":3,"file":"Counter.js","names":["React","useContext","clsx","PropTypes","FilterGroupContext","useStyles","getExistingFiltersById","idx","filterValues","filterOptions","total","forEach","fv","data","find","f","id","Counter","className","classes","appliedFilters","options","option","optionIdx","findIndex","groupsCounter","fg","i","partialCounter","totalCounter","reduce","acc","length","root","propTypes","string"],"sources":["../../../../src/FilterGroup/Counter/Counter.js"],"sourcesContent":["import React, { useContext } from \"react\";\nimport clsx from \"clsx\";\nimport PropTypes from \"prop-types\";\nimport { FilterGroupContext } from \"../FilterGroupContext\";\nimport useStyles from \"./styles\";\n\nconst getExistingFiltersById = (idx, filterValues, filterOptions) => {\n let total = 0;\n filterValues[idx]?.forEach((fv) => {\n if (filterOptions[idx]?.data.find((f) => f.id === fv)) {\n total += 1;\n }\n });\n return total;\n};\n\nconst Counter = ({ className, id }) => {\n const classes = useStyles();\n const { filterOptions, filterValues = [], appliedFilters = [] } = useContext(FilterGroupContext);\n\n const options = id ? [filterOptions.find((option) => option.id === id)] : filterOptions;\n const optionIdx = filterOptions.findIndex((option) => option.id === id);\n\n let groupsCounter = 0;\n appliedFilters?.forEach((fg, i) => {\n groupsCounter += getExistingFiltersById(i, filterValues, filterOptions);\n });\n\n const partialCounter = id\n ? getExistingFiltersById(optionIdx, filterValues, filterOptions) || 0\n : groupsCounter;\n const totalCounter = options.reduce((acc, option) => acc + option.data.length, 0);\n\n return (\n <div className={clsx(classes.root, className)}>\n {partialCounter > 0 ? <b>{partialCounter}</b> : partialCounter}\n {` / ${totalCounter}`}\n </div>\n );\n};\n\nCounter.propTypes = {\n className: PropTypes.string,\n id: PropTypes.string,\n};\n\nexport default Counter;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,IAAI,MAAM,MAAM;AACvB,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,kBAAkB,QAAQ,uBAAuB;AAC1D,OAAOC,SAAS,MAAM,UAAU;AAAC;AAAA;AAEjC,MAAMC,sBAAsB,GAAG,CAACC,GAAG,EAAEC,YAAY,EAAEC,aAAa,KAAK;EAAA;EACnE,IAAIC,KAAK,GAAG,CAAC;EACb,qBAAAF,YAAY,CAACD,GAAG,CAAC,sDAAjB,kBAAmBI,OAAO,CAAEC,EAAE,IAAK;IAAA;IACjC,0BAAIH,aAAa,CAACF,GAAG,CAAC,+CAAlB,mBAAoBM,IAAI,CAACC,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,EAAE,KAAKJ,EAAE,CAAC,EAAE;MACrDF,KAAK,IAAI,CAAC;IACZ;EACF,CAAC,CAAC;EACF,OAAOA,KAAK;AACd,CAAC;AAED,MAAMO,OAAO,GAAG,CAAC;EAAEC,SAAS;EAAEF;AAAG,CAAC,KAAK;EACrC,MAAMG,OAAO,GAAGd,SAAS,EAAE;EAC3B,MAAM;IAAEI,aAAa;IAAED,YAAY,GAAG,EAAE;IAAEY,cAAc,GAAG;EAAG,CAAC,GAAGnB,UAAU,CAACG,kBAAkB,CAAC;EAEhG,MAAMiB,OAAO,GAAGL,EAAE,GAAG,CAACP,aAAa,CAACK,IAAI,CAAEQ,MAAM,IAAKA,MAAM,CAACN,EAAE,KAAKA,EAAE,CAAC,CAAC,GAAGP,aAAa;EACvF,MAAMc,SAAS,GAAGd,aAAa,CAACe,SAAS,CAAEF,MAAM,IAAKA,MAAM,CAACN,EAAE,KAAKA,EAAE,CAAC;EAEvE,IAAIS,aAAa,GAAG,CAAC;EACrBL,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAET,OAAO,CAAC,CAACe,EAAE,EAAEC,CAAC,KAAK;IACjCF,aAAa,IAAInB,sBAAsB,CAACqB,CAAC,EAAEnB,YAAY,EAAEC,aAAa,CAAC;EACzE,CAAC,CAAC;EAEF,MAAMmB,cAAc,GAAGZ,EAAE,GACrBV,sBAAsB,CAACiB,SAAS,EAAEf,YAAY,EAAEC,aAAa,CAAC,IAAI,CAAC,GACnEgB,aAAa;EACjB,MAAMI,YAAY,GAAGR,OAAO,CAACS,MAAM,CAAC,CAACC,GAAG,EAAET,MAAM,KAAKS,GAAG,GAAGT,MAAM,CAACT,IAAI,CAACmB,MAAM,EAAE,CAAC,CAAC;EAEjF,oBACE;IAAK,SAAS,EAAE9B,IAAI,CAACiB,OAAO,CAACc,IAAI,EAAEf,SAAS,CAAE;IAAA,WAC3CU,cAAc,GAAG,CAAC,gBAAG;MAAA,UAAIA;IAAc,EAAK,GAAGA,cAAc,EAC5D,MAAKC,YAAa,EAAC;EAAA,EACjB;AAEV,CAAC;AAED,wCAAAZ,OAAO,CAACiB,SAAS,GAAG;EAClBhB,SAAS,EAAEf,SAAS,CAACgC,MAAM;EAC3BnB,EAAE,EAAEb,SAAS,CAACgC;AAChB,CAAC;AAED,eAAelB,OAAO"}
|
|
@@ -68,7 +68,7 @@ const RightPanel = ({
|
|
|
68
68
|
newFilterValues[activeGroup] = [];
|
|
69
69
|
}
|
|
70
70
|
} else {
|
|
71
|
-
newFilterValues[activeGroup] = [...
|
|
71
|
+
newFilterValues[activeGroup] = [...activeGroupOptions];
|
|
72
72
|
}
|
|
73
73
|
setFilterValues(newFilterValues);
|
|
74
74
|
}, [activeGroup, activeGroupOptions, anySelected, filterValues, setFilterValues, searchStr]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RightPanel.js","names":["React","useMemo","useContext","useState","useEffect","useCallback","PropTypes","cloneDeep","clsx","FilterGroupContext","useStyles","setId","HvTypography","HvList","HvInput","HvPanel","HvCheckBox","RightPanel","id","className","labels","emptyElement","classes","searchStr","setSearchStr","allSelected","setAllSelected","anySelected","setAnySelected","filterOptions","filterValues","setFilterValues","activeGroup","activeGroupOptions","data","filter","option","name","toLowerCase","includes","map","activeFilterValues","value","listValues","label","selected","isHidden","indexOf","updateSelectAll","nbrSelected","length","hasSelection","allSelect","onChangeHandler","values","newFilterValues","i","v","handleSelectAll","SelectAll","selectAll","multiSelectionConjunction","defaultLabel","selectAllContainer","container","selection","root","search","searchBoxPlaceholder","event","str","list","propTypes","string","shape","node"],"sources":["../../../../src/FilterGroup/RightPanel/RightPanel.js"],"sourcesContent":["import React, { useMemo, useContext, useState, useEffect, useCallback } from \"react\";\nimport PropTypes from \"prop-types\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport clsx from \"clsx\";\nimport { FilterGroupContext } from \"../FilterGroupContext\";\nimport useStyles from \"./styles\";\nimport { setId, HvTypography, HvList, HvInput, HvPanel, HvCheckBox } from \"../..\";\n\nconst RightPanel = ({ id, className, labels, emptyElement }) => {\n const classes = useStyles();\n const [searchStr, setSearchStr] = useState(\"\");\n const [allSelected, setAllSelected] = useState(false);\n const [anySelected, setAnySelected] = useState(false);\n\n const {\n filterOptions,\n filterValues = [],\n setFilterValues,\n activeGroup,\n } = useContext(FilterGroupContext);\n\n const activeGroupOptions = useMemo(\n () =>\n filterOptions[activeGroup]?.data\n .filter((option) => option.name.toLowerCase().includes(searchStr.toLowerCase()))\n .map((option) => option.id) || [],\n [filterOptions, activeGroup, searchStr]\n );\n\n const activeFilterValues = useMemo(\n () => filterValues[activeGroup]?.filter((value) => activeGroupOptions.includes(value)),\n [filterValues, activeGroupOptions, activeGroup]\n );\n\n const listValues = useMemo(\n () =>\n filterOptions[activeGroup].data.map((option) => ({\n ...option,\n label: option.name,\n selected: filterValues[activeGroup]?.includes(option.id),\n isHidden: option.name.toLowerCase().indexOf(searchStr.toLowerCase()) < 0,\n })),\n [filterOptions, filterValues, activeGroup, searchStr]\n );\n\n const updateSelectAll = useCallback(() => {\n const nbrSelected = activeFilterValues?.length;\n const hasSelection = nbrSelected > 0;\n const allSelect = nbrSelected === activeGroupOptions.length;\n\n setAnySelected(hasSelection);\n setAllSelected(hasSelection && allSelect);\n }, [activeFilterValues, activeGroupOptions]);\n\n useEffect(() => {\n updateSelectAll();\n }, [activeFilterValues, updateSelectAll]);\n\n useEffect(() => setSearchStr(\"\"), [activeGroup]);\n\n const onChangeHandler = (values) => {\n const newFilterValues = filterOptions.map((option, i) =>\n activeGroup === i\n ? values.filter((v) => v.selected).map((v) => v.id)\n : [...(filterValues[i] || [])]\n );\n setFilterValues(newFilterValues);\n };\n\n const handleSelectAll = useCallback(() => {\n const newFilterValues = cloneDeep(filterValues);\n\n if (anySelected) {\n if (searchStr !== \"\") {\n newFilterValues[activeGroup] = filterValues[activeGroup]?.filter(\n (value) => !activeGroupOptions.includes(value)\n );\n } else {\n newFilterValues[activeGroup] = [];\n }\n } else {\n newFilterValues[activeGroup] = [...filterValues[activeGroup], ...activeGroupOptions];\n }\n\n setFilterValues(newFilterValues);\n }, [activeGroup, activeGroupOptions, anySelected, filterValues, setFilterValues, searchStr]);\n\n /**\n * Create selecteAll component.\n *\n * @returns {*}\n */\n const SelectAll = useCallback(() => {\n const { selectAll, multiSelectionConjunction } = labels;\n const nbrSelected = activeFilterValues?.length;\n\n const defaultLabel = (\n <HvTypography component=\"span\">\n {nbrSelected > 0 ? (\n <>\n <b>{nbrSelected}</b>\n {` ${multiSelectionConjunction} ${activeGroupOptions.length}`}\n </>\n ) : (\n <>\n <b>{selectAll}</b>\n {` (${activeGroupOptions.length})`}\n </>\n )}\n </HvTypography>\n );\n\n return (\n <div className={classes.selectAllContainer}>\n <HvCheckBox\n id={setId(id, \"select-all\")}\n label={defaultLabel}\n onChange={() => handleSelectAll()}\n classes={{ container: classes.selection }}\n className={classes.selectAll}\n indeterminate={anySelected && !allSelected}\n checked={allSelected}\n />\n </div>\n );\n }, [\n activeFilterValues?.length,\n activeGroupOptions.length,\n allSelected,\n anySelected,\n classes.selectAll,\n classes.selectAllContainer,\n classes.selection,\n handleSelectAll,\n id,\n labels,\n ]);\n\n return (\n <HvPanel id={setId(id, \"rightPanel\")} className={clsx(className, classes.root)}>\n {listValues.length > 0 ? (\n <>\n <HvInput\n id={setId(id, \"search\")}\n classes={{\n root: classes.search,\n }}\n type=\"search\"\n placeholder={labels.searchBoxPlaceholder}\n value={searchStr}\n onChange={(event, str) => setSearchStr(str)}\n />\n <SelectAll />\n <HvList\n key={activeGroup}\n id={setId(id, \"list\")}\n className={classes.list}\n values={listValues}\n multiSelect\n useSelector\n showSelectAll={false}\n onChange={onChangeHandler}\n selectable\n condensed\n hasTooltips\n />\n </>\n ) : (\n emptyElement\n )}\n </HvPanel>\n );\n};\n\nRightPanel.propTypes = {\n id: PropTypes.string,\n className: PropTypes.string,\n labels: PropTypes.shape({\n searchBoxPlaceholder: PropTypes.string,\n selectAll: PropTypes.string,\n multiSelectionConjunction: PropTypes.string,\n }),\n emptyElement: PropTypes.node,\n};\n\nexport default RightPanel;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RightPanel.js","names":["React","useMemo","useContext","useState","useEffect","useCallback","PropTypes","cloneDeep","clsx","FilterGroupContext","useStyles","setId","HvTypography","HvList","HvInput","HvPanel","HvCheckBox","RightPanel","id","className","labels","emptyElement","classes","searchStr","setSearchStr","allSelected","setAllSelected","anySelected","setAnySelected","filterOptions","filterValues","setFilterValues","activeGroup","activeGroupOptions","data","filter","option","name","toLowerCase","includes","map","activeFilterValues","value","listValues","label","selected","isHidden","indexOf","updateSelectAll","nbrSelected","length","hasSelection","allSelect","onChangeHandler","values","newFilterValues","i","v","handleSelectAll","SelectAll","selectAll","multiSelectionConjunction","defaultLabel","selectAllContainer","container","selection","root","search","searchBoxPlaceholder","event","str","list","propTypes","string","shape","node"],"sources":["../../../../src/FilterGroup/RightPanel/RightPanel.js"],"sourcesContent":["import React, { useMemo, useContext, useState, useEffect, useCallback } from \"react\";\nimport PropTypes from \"prop-types\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport clsx from \"clsx\";\nimport { FilterGroupContext } from \"../FilterGroupContext\";\nimport useStyles from \"./styles\";\nimport { setId, HvTypography, HvList, HvInput, HvPanel, HvCheckBox } from \"../..\";\n\nconst RightPanel = ({ id, className, labels, emptyElement }) => {\n const classes = useStyles();\n const [searchStr, setSearchStr] = useState(\"\");\n const [allSelected, setAllSelected] = useState(false);\n const [anySelected, setAnySelected] = useState(false);\n\n const {\n filterOptions,\n filterValues = [],\n setFilterValues,\n activeGroup,\n } = useContext(FilterGroupContext);\n\n const activeGroupOptions = useMemo(\n () =>\n filterOptions[activeGroup]?.data\n .filter((option) => option.name.toLowerCase().includes(searchStr.toLowerCase()))\n .map((option) => option.id) || [],\n [filterOptions, activeGroup, searchStr]\n );\n\n const activeFilterValues = useMemo(\n () => filterValues[activeGroup]?.filter((value) => activeGroupOptions.includes(value)),\n [filterValues, activeGroupOptions, activeGroup]\n );\n\n const listValues = useMemo(\n () =>\n filterOptions[activeGroup].data.map((option) => ({\n ...option,\n label: option.name,\n selected: filterValues[activeGroup]?.includes(option.id),\n isHidden: option.name.toLowerCase().indexOf(searchStr.toLowerCase()) < 0,\n })),\n [filterOptions, filterValues, activeGroup, searchStr]\n );\n\n const updateSelectAll = useCallback(() => {\n const nbrSelected = activeFilterValues?.length;\n const hasSelection = nbrSelected > 0;\n const allSelect = nbrSelected === activeGroupOptions.length;\n\n setAnySelected(hasSelection);\n setAllSelected(hasSelection && allSelect);\n }, [activeFilterValues, activeGroupOptions]);\n\n useEffect(() => {\n updateSelectAll();\n }, [activeFilterValues, updateSelectAll]);\n\n useEffect(() => setSearchStr(\"\"), [activeGroup]);\n\n const onChangeHandler = (values) => {\n const newFilterValues = filterOptions.map((option, i) =>\n activeGroup === i\n ? values.filter((v) => v.selected).map((v) => v.id)\n : [...(filterValues[i] || [])]\n );\n setFilterValues(newFilterValues);\n };\n\n const handleSelectAll = useCallback(() => {\n const newFilterValues = cloneDeep(filterValues);\n\n if (anySelected) {\n if (searchStr !== \"\") {\n newFilterValues[activeGroup] = filterValues[activeGroup]?.filter(\n (value) => !activeGroupOptions.includes(value)\n );\n } else {\n newFilterValues[activeGroup] = [];\n }\n } else {\n newFilterValues[activeGroup] = [...activeGroupOptions];\n }\n\n setFilterValues(newFilterValues);\n }, [activeGroup, activeGroupOptions, anySelected, filterValues, setFilterValues, searchStr]);\n\n /**\n * Create selecteAll component.\n *\n * @returns {*}\n */\n const SelectAll = useCallback(() => {\n const { selectAll, multiSelectionConjunction } = labels;\n const nbrSelected = activeFilterValues?.length;\n\n const defaultLabel = (\n <HvTypography component=\"span\">\n {nbrSelected > 0 ? (\n <>\n <b>{nbrSelected}</b>\n {` ${multiSelectionConjunction} ${activeGroupOptions.length}`}\n </>\n ) : (\n <>\n <b>{selectAll}</b>\n {` (${activeGroupOptions.length})`}\n </>\n )}\n </HvTypography>\n );\n\n return (\n <div className={classes.selectAllContainer}>\n <HvCheckBox\n id={setId(id, \"select-all\")}\n label={defaultLabel}\n onChange={() => handleSelectAll()}\n classes={{ container: classes.selection }}\n className={classes.selectAll}\n indeterminate={anySelected && !allSelected}\n checked={allSelected}\n />\n </div>\n );\n }, [\n activeFilterValues?.length,\n activeGroupOptions.length,\n allSelected,\n anySelected,\n classes.selectAll,\n classes.selectAllContainer,\n classes.selection,\n handleSelectAll,\n id,\n labels,\n ]);\n\n return (\n <HvPanel id={setId(id, \"rightPanel\")} className={clsx(className, classes.root)}>\n {listValues.length > 0 ? (\n <>\n <HvInput\n id={setId(id, \"search\")}\n classes={{\n root: classes.search,\n }}\n type=\"search\"\n placeholder={labels.searchBoxPlaceholder}\n value={searchStr}\n onChange={(event, str) => setSearchStr(str)}\n />\n <SelectAll />\n <HvList\n key={activeGroup}\n id={setId(id, \"list\")}\n className={classes.list}\n values={listValues}\n multiSelect\n useSelector\n showSelectAll={false}\n onChange={onChangeHandler}\n selectable\n condensed\n hasTooltips\n />\n </>\n ) : (\n emptyElement\n )}\n </HvPanel>\n );\n};\n\nRightPanel.propTypes = {\n id: PropTypes.string,\n className: PropTypes.string,\n labels: PropTypes.shape({\n searchBoxPlaceholder: PropTypes.string,\n selectAll: PropTypes.string,\n multiSelectionConjunction: PropTypes.string,\n }),\n emptyElement: PropTypes.node,\n};\n\nexport default RightPanel;\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hitachivantara/uikit-react-core",
|
|
3
|
-
"version": "4.4.
|
|
3
|
+
"version": "4.4.6",
|
|
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",
|
|
@@ -44,8 +44,8 @@
|
|
|
44
44
|
"react-dom": "^16.13.1 || ^17.0.2"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@hitachivantara/uikit-common-themes": "^4.0.
|
|
48
|
-
"@hitachivantara/uikit-react-icons": "^4.0.
|
|
47
|
+
"@hitachivantara/uikit-common-themes": "^4.0.4",
|
|
48
|
+
"@hitachivantara/uikit-react-icons": "^4.0.7",
|
|
49
49
|
"@popperjs/core": "2.11.5",
|
|
50
50
|
"@types/react-table": "^7.7.12",
|
|
51
51
|
"attr-accept": "^2.2.2",
|
|
@@ -82,7 +82,8 @@
|
|
|
82
82
|
"dist"
|
|
83
83
|
],
|
|
84
84
|
"publishConfig": {
|
|
85
|
-
"access": "public"
|
|
85
|
+
"access": "public",
|
|
86
|
+
"tag": "previous"
|
|
86
87
|
},
|
|
87
|
-
"gitHead": "
|
|
88
|
+
"gitHead": "8bf7b7579b1655038e8bd1d42995b415158f14ec"
|
|
88
89
|
}
|