@hitachivantara/uikit-react-core 3.66.2 → 3.67.2
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/BaseInput/BaseInput.js +6 -1
- package/dist/BaseInput/BaseInput.js.map +1 -1
- package/dist/BaseInput/styles.js +3 -0
- package/dist/BaseInput/styles.js.map +1 -1
- package/dist/FilterGroup/Counter/Counter.js +9 -7
- package/dist/FilterGroup/Counter/Counter.js.map +1 -1
- package/dist/FilterGroup/FilterContent/FilterContent.js +1 -1
- package/dist/FilterGroup/FilterContent/FilterContent.js.map +1 -1
- package/dist/FilterGroup/FilterGroup.d.ts +4 -7
- package/dist/FilterGroup/RightPanel/RightPanel.js +2 -1
- package/dist/FilterGroup/RightPanel/RightPanel.js.map +1 -1
- package/dist/Forms/FormElement/index.d.ts +4 -0
- package/dist/Forms/FormElement/index.js +14 -0
- package/dist/Forms/FormElement/index.js.map +1 -1
- package/dist/Slider/Slider.d.ts +185 -0
- package/dist/Slider/Slider.js +803 -0
- package/dist/Slider/Slider.js.map +1 -0
- package/dist/Slider/SliderInput/SliderInput.js +194 -0
- package/dist/Slider/SliderInput/SliderInput.js.map +1 -0
- package/dist/Slider/SliderInput/index.d.ts +1 -0
- package/dist/Slider/SliderInput/index.js +16 -0
- package/dist/Slider/SliderInput/index.js.map +1 -0
- package/dist/Slider/SliderInput/styles.js +24 -0
- package/dist/Slider/SliderInput/styles.js.map +1 -0
- package/dist/Slider/index.d.ts +2 -0
- package/dist/Slider/index.js +16 -0
- package/dist/Slider/index.js.map +1 -0
- package/dist/Slider/styles.js +239 -0
- package/dist/Slider/styles.js.map +1 -0
- package/dist/Slider/utils.js +413 -0
- package/dist/Slider/utils.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/dist/legacy/BaseInput/BaseInput.js +6 -1
- package/dist/legacy/BaseInput/BaseInput.js.map +1 -1
- package/dist/legacy/BaseInput/styles.js +3 -0
- package/dist/legacy/BaseInput/styles.js.map +1 -1
- package/dist/legacy/FilterGroup/Counter/Counter.js +8 -6
- package/dist/legacy/FilterGroup/Counter/Counter.js.map +1 -1
- package/dist/legacy/FilterGroup/FilterContent/FilterContent.js +1 -1
- package/dist/legacy/FilterGroup/FilterContent/FilterContent.js.map +1 -1
- package/dist/legacy/FilterGroup/FilterGroup.d.ts +4 -7
- package/dist/legacy/FilterGroup/RightPanel/RightPanel.js +2 -1
- package/dist/legacy/FilterGroup/RightPanel/RightPanel.js.map +1 -1
- package/dist/legacy/Forms/FormElement/index.d.ts +4 -0
- package/dist/legacy/Forms/FormElement/index.js +1 -0
- package/dist/legacy/Forms/FormElement/index.js.map +1 -1
- package/dist/legacy/Slider/Slider.d.ts +185 -0
- package/dist/legacy/Slider/Slider.js +752 -0
- package/dist/legacy/Slider/Slider.js.map +1 -0
- package/dist/legacy/Slider/SliderInput/SliderInput.js +151 -0
- package/dist/legacy/Slider/SliderInput/SliderInput.js.map +1 -0
- package/dist/legacy/Slider/SliderInput/index.d.ts +1 -0
- package/dist/legacy/Slider/SliderInput/index.js +2 -0
- package/dist/legacy/Slider/SliderInput/index.js.map +1 -0
- package/dist/legacy/Slider/SliderInput/styles.js +16 -0
- package/dist/legacy/Slider/SliderInput/styles.js.map +1 -0
- package/dist/legacy/Slider/index.d.ts +2 -0
- package/dist/legacy/Slider/index.js +2 -0
- package/dist/legacy/Slider/index.js.map +1 -0
- package/dist/legacy/Slider/styles.js +222 -0
- package/dist/legacy/Slider/styles.js.map +1 -0
- package/dist/legacy/Slider/utils.js +347 -0
- package/dist/legacy/Slider/utils.js.map +1 -0
- package/dist/legacy/index.d.ts +3 -0
- package/dist/legacy/index.js +1 -0
- package/dist/legacy/index.js.map +1 -1
- package/dist/modern/BaseInput/BaseInput.js +6 -1
- package/dist/modern/BaseInput/BaseInput.js.map +1 -1
- package/dist/modern/BaseInput/styles.js +3 -0
- package/dist/modern/BaseInput/styles.js.map +1 -1
- package/dist/modern/FilterGroup/Counter/Counter.js +4 -4
- package/dist/modern/FilterGroup/Counter/Counter.js.map +1 -1
- package/dist/modern/FilterGroup/FilterContent/FilterContent.js +1 -1
- package/dist/modern/FilterGroup/FilterContent/FilterContent.js.map +1 -1
- package/dist/modern/FilterGroup/FilterGroup.d.ts +4 -7
- package/dist/modern/FilterGroup/RightPanel/RightPanel.js +1 -1
- package/dist/modern/FilterGroup/RightPanel/RightPanel.js.map +1 -1
- package/dist/modern/Forms/FormElement/index.d.ts +4 -0
- package/dist/modern/Forms/FormElement/index.js +1 -0
- package/dist/modern/Forms/FormElement/index.js.map +1 -1
- package/dist/modern/Slider/Slider.d.ts +185 -0
- package/dist/modern/Slider/Slider.js +689 -0
- package/dist/modern/Slider/Slider.js.map +1 -0
- package/dist/modern/Slider/SliderInput/SliderInput.js +129 -0
- package/dist/modern/Slider/SliderInput/SliderInput.js.map +1 -0
- package/dist/modern/Slider/SliderInput/index.d.ts +1 -0
- package/dist/modern/Slider/SliderInput/index.js +2 -0
- package/dist/modern/Slider/SliderInput/index.js.map +1 -0
- package/dist/modern/Slider/SliderInput/styles.js +16 -0
- package/dist/modern/Slider/SliderInput/styles.js.map +1 -0
- package/dist/modern/Slider/index.d.ts +2 -0
- package/dist/modern/Slider/index.js +2 -0
- package/dist/modern/Slider/index.js.map +1 -0
- package/dist/modern/Slider/styles.js +215 -0
- package/dist/modern/Slider/styles.js.map +1 -0
- package/dist/modern/Slider/utils.js +302 -0
- package/dist/modern/Slider/utils.js.map +1 -0
- package/dist/modern/index.d.ts +3 -0
- package/dist/modern/index.js +1 -0
- package/dist/modern/index.js.map +1 -1
- package/package.json +9 -7
|
@@ -9,17 +9,17 @@ const Counter = ({
|
|
|
9
9
|
className,
|
|
10
10
|
id
|
|
11
11
|
}) => {
|
|
12
|
-
var _filterValues$optionI;
|
|
12
|
+
var _appliedFilters$flat, _filterValues$optionI;
|
|
13
13
|
|
|
14
14
|
const classes = useStyles();
|
|
15
15
|
const {
|
|
16
16
|
filterOptions,
|
|
17
|
-
filterValues,
|
|
18
|
-
appliedFilters
|
|
17
|
+
filterValues = [],
|
|
18
|
+
appliedFilters = []
|
|
19
19
|
} = useContext(FilterGroupContext);
|
|
20
20
|
const options = id ? [filterOptions.find(option => option.id === id)] : filterOptions;
|
|
21
21
|
const optionIdx = filterOptions.findIndex(option => option.id === id);
|
|
22
|
-
const groupsCounter = appliedFilters.flat().filter(elem => elem !== undefined).length || 0;
|
|
22
|
+
const groupsCounter = (appliedFilters === null || appliedFilters === void 0 ? void 0 : (_appliedFilters$flat = appliedFilters.flat()) === null || _appliedFilters$flat === void 0 ? void 0 : _appliedFilters$flat.filter(elem => elem !== undefined).length) || 0;
|
|
23
23
|
const partialCounter = id ? ((_filterValues$optionI = filterValues[optionIdx]) === null || _filterValues$optionI === void 0 ? void 0 : _filterValues$optionI.length) || 0 : groupsCounter;
|
|
24
24
|
const totalCounter = options.reduce((acc, option) => acc + option.data.length, 0);
|
|
25
25
|
return /*#__PURE__*/React.createElement("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Counter.js","names":["React","useContext","clsx","PropTypes","FilterGroupContext","useStyles","Counter","className","id","classes","filterOptions","filterValues","appliedFilters","options","find","option","optionIdx","findIndex","groupsCounter","flat","filter","elem","undefined","length","partialCounter","totalCounter","reduce","acc","data","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 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 const groupsCounter = appliedFilters
|
|
1
|
+
{"version":3,"file":"Counter.js","names":["React","useContext","clsx","PropTypes","FilterGroupContext","useStyles","Counter","className","id","classes","filterOptions","filterValues","appliedFilters","options","find","option","optionIdx","findIndex","groupsCounter","flat","filter","elem","undefined","length","partialCounter","totalCounter","reduce","acc","data","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 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 const groupsCounter = appliedFilters?.flat()?.filter((elem) => elem !== undefined).length || 0;\n const partialCounter = id ? filterValues[optionIdx]?.length || 0 : 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,KAAP,IAAgBC,UAAhB,QAAkC,OAAlC;AACA,OAAOC,IAAP,MAAiB,MAAjB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,SAASC,kBAAT,QAAmC,uBAAnC;AACA,OAAOC,SAAP,MAAsB,UAAtB;;AAEA,MAAMC,OAAO,GAAG,CAAC;EAAEC,SAAF;EAAaC;AAAb,CAAD,KAAuB;EAAA;;EACrC,MAAMC,OAAO,GAAGJ,SAAS,EAAzB;EACA,MAAM;IAAEK,aAAF;IAAiBC,YAAY,GAAG,EAAhC;IAAoCC,cAAc,GAAG;EAArD,IAA4DX,UAAU,CAACG,kBAAD,CAA5E;EAEA,MAAMS,OAAO,GAAGL,EAAE,GAAG,CAACE,aAAa,CAACI,IAAd,CAAoBC,MAAD,IAAYA,MAAM,CAACP,EAAP,KAAcA,EAA7C,CAAD,CAAH,GAAwDE,aAA1E;EACA,MAAMM,SAAS,GAAGN,aAAa,CAACO,SAAd,CAAyBF,MAAD,IAAYA,MAAM,CAACP,EAAP,KAAcA,EAAlD,CAAlB;EAEA,MAAMU,aAAa,GAAG,CAAAN,cAAc,SAAd,IAAAA,cAAc,WAAd,oCAAAA,cAAc,CAAEO,IAAhB,gFAAwBC,MAAxB,CAAgCC,IAAD,IAAUA,IAAI,KAAKC,SAAlD,EAA6DC,MAA7D,KAAuE,CAA7F;EACA,MAAMC,cAAc,GAAGhB,EAAE,GAAG,0BAAAG,YAAY,CAACK,SAAD,CAAZ,gFAAyBO,MAAzB,KAAmC,CAAtC,GAA0CL,aAAnE;EACA,MAAMO,YAAY,GAAGZ,OAAO,CAACa,MAAR,CAAe,CAACC,GAAD,EAAMZ,MAAN,KAAiBY,GAAG,GAAGZ,MAAM,CAACa,IAAP,CAAYL,MAAlD,EAA0D,CAA1D,CAArB;EAEA,oBACE;IAAK,SAAS,EAAErB,IAAI,CAACO,OAAO,CAACoB,IAAT,EAAetB,SAAf;EAApB,GACGiB,cAAc,GAAG,CAAjB,gBAAqB,+BAAIA,cAAJ,CAArB,GAA+CA,cADlD,EAEI,MAAKC,YAAa,EAFtB,CADF;AAMD,CAjBD;;AAmBA,wCAAAnB,OAAO,CAACwB,SAAR,GAAoB;EAClBvB,SAAS,EAAEJ,SAAS,CAAC4B,MADH;EAElBvB,EAAE,EAAEL,SAAS,CAAC4B;AAFI,CAApB;AAKA,eAAezB,OAAf"}
|
|
@@ -135,7 +135,7 @@ const FilterContent = _ref => {
|
|
|
135
135
|
className: classes.actionBar
|
|
136
136
|
}, /*#__PURE__*/React.createElement(HvButton, {
|
|
137
137
|
id: setId(id, "clearFilters-button"),
|
|
138
|
-
disabled: defaultValue ? defaultValue.flat().length === filterValues.flat().length : filterValues.flat().length === 0,
|
|
138
|
+
disabled: defaultValue ? (defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.flat().length) === (filterValues === null || filterValues === void 0 ? void 0 : filterValues.flat().length) : (filterValues === null || filterValues === void 0 ? void 0 : filterValues.flat().length) === 0,
|
|
139
139
|
category: "ghost",
|
|
140
140
|
onClick: onClearHandler
|
|
141
141
|
}, labels.clearLabel), /*#__PURE__*/React.createElement("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterContent.js","names":["React","useMemo","useState","useRef","useContext","PropTypes","Filters","FilterGroupContext","LeftPanel","RightPanel","Counter","useStyles","setId","HvBaseDropdown","HvTypography","HvButton","HvActionBar","FilterContent","id","status","disabled","ariaLabel","ariaLabelledBy","description","ariaDescribedBy","onChange","onCancel","onClear","labels","horizontalPlacement","disablePortal","escapeWithReference","height","others","classes","filterGroupOpen","setFilterGroupOpen","defaultValue","filterValues","rollbackFilters","clearFilters","applyFilters","applyDisabled","focusTarget","focusOnContainer","current","focus","onApplyHandler","evt","onCancelHandler","onClearHandler","handleToggle","open","Header","placeholder","root","dropdown","panel","selection","baseDropdownSelection","header","modifiers","name","enabled","undefined","join","trim","leftSidePanel","rightSidePanel","actionBar","flat","length","clearLabel","space","applyLabel","cancelLabel","propTypes","string","node","bool","oneOf","func","shape","searchBoxPlaceholder","selectAll","multiSelectionConjunction","any"],"sources":["../../../../src/FilterGroup/FilterContent/FilterContent.js"],"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"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FilterContent.js","names":["React","useMemo","useState","useRef","useContext","PropTypes","Filters","FilterGroupContext","LeftPanel","RightPanel","Counter","useStyles","setId","HvBaseDropdown","HvTypography","HvButton","HvActionBar","FilterContent","id","status","disabled","ariaLabel","ariaLabelledBy","description","ariaDescribedBy","onChange","onCancel","onClear","labels","horizontalPlacement","disablePortal","escapeWithReference","height","others","classes","filterGroupOpen","setFilterGroupOpen","defaultValue","filterValues","rollbackFilters","clearFilters","applyFilters","applyDisabled","focusTarget","focusOnContainer","current","focus","onApplyHandler","evt","onCancelHandler","onClearHandler","handleToggle","open","Header","placeholder","root","dropdown","panel","selection","baseDropdownSelection","header","modifiers","name","enabled","undefined","join","trim","leftSidePanel","rightSidePanel","actionBar","flat","length","clearLabel","space","applyLabel","cancelLabel","propTypes","string","node","bool","oneOf","func","shape","searchBoxPlaceholder","selectAll","multiSelectionConjunction","any"],"sources":["../../../../src/FilterGroup/FilterContent/FilterContent.js"],"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"],"mappings":"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"}
|
|
@@ -3,21 +3,19 @@ import { HvFormElementProps } from "..";
|
|
|
3
3
|
|
|
4
4
|
export type HvFilterGroupClassKey = "root" | "labelContainer" | "label" | "description" | "error";
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
value: string | number[][];
|
|
8
|
-
}
|
|
6
|
+
export type FilterValue = (string | number)[][];
|
|
9
7
|
|
|
10
8
|
export interface HvFilterGroupProps
|
|
11
|
-
extends StandardProps<HvFormElementProps, HvFilterGroupClassKey> {
|
|
9
|
+
extends StandardProps<HvFormElementProps, HvFilterGroupClassKey, "defaultValue"> {
|
|
12
10
|
/**
|
|
13
11
|
* The callback fired when the cancel button is clicked.
|
|
14
12
|
*/
|
|
15
|
-
onCancel
|
|
13
|
+
onCancel?: (event: Event) => void;
|
|
16
14
|
|
|
17
15
|
/**
|
|
18
16
|
* The callback fired when the clear filters button is clicked.
|
|
19
17
|
*/
|
|
20
|
-
onClear
|
|
18
|
+
onClear?: (event: Event) => void;
|
|
21
19
|
|
|
22
20
|
/**
|
|
23
21
|
* The callback fired when the value changes.
|
|
@@ -72,7 +70,6 @@ export interface HvFilterGroupProps
|
|
|
72
70
|
data: {
|
|
73
71
|
id: string | number;
|
|
74
72
|
name: string;
|
|
75
|
-
checked?: boolean;
|
|
76
73
|
}[];
|
|
77
74
|
}[];
|
|
78
75
|
|
|
@@ -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","classes","searchStr","setSearchStr","allSelected","setAllSelected","anySelected","setAnySelected","filterOptions","filterValues","setFilterValues","activeGroup","activeGroupOptions","data","map","option","activeFilterValues","filter","value","includes","listValues","label","name","selected","isHidden","toLowerCase","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"],"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 }) => {\n const classes = useStyles();\n const [searchStr, setSearchStr] = useState(\"\");\n const [allSelected, setAllSelected] = useState(false);\n const [anySelected, setAnySelected] = useState(false);\n\n const { filterOptions, filterValues, setFilterValues, activeGroup } =\n useContext(FilterGroupContext);\n\n const activeGroupOptions = useMemo(\n () => filterOptions[activeGroup].data.map((option) => option.id),\n [filterOptions, activeGroup]\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 newFilterValues[activeGroup] = anySelected ? [] : activeGroupOptions;\n\n setFilterValues(newFilterValues);\n }, [activeGroup, activeGroupOptions, anySelected, filterValues, setFilterValues]);\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 <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 </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};\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","classes","searchStr","setSearchStr","allSelected","setAllSelected","anySelected","setAnySelected","filterOptions","filterValues","setFilterValues","activeGroup","activeGroupOptions","data","map","option","activeFilterValues","filter","value","includes","listValues","label","name","selected","isHidden","toLowerCase","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"],"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 }) => {\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 () => filterOptions[activeGroup].data.map((option) => option.id),\n [filterOptions, activeGroup]\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 newFilterValues[activeGroup] = anySelected ? [] : activeGroupOptions;\n\n setFilterValues(newFilterValues);\n }, [activeGroup, activeGroupOptions, anySelected, filterValues, setFilterValues]);\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 <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 </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};\n\nexport default RightPanel;\n"],"mappings":";;;;;;;;AAAA,OAAOA,KAAP,IAAgBC,OAAhB,EAAyBC,UAAzB,EAAqCC,QAArC,EAA+CC,SAA/C,EAA0DC,WAA1D,QAA6E,OAA7E;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,SAAP,MAAsB,kBAAtB;AACA,OAAOC,IAAP,MAAiB,MAAjB;AACA,SAASC,kBAAT,QAAmC,uBAAnC;AACA,OAAOC,SAAP,MAAsB,UAAtB;AACA,SAASC,KAAT,EAAgBC,YAAhB,EAA8BC,MAA9B,EAAsCC,OAAtC,EAA+CC,OAA/C,EAAwDC,UAAxD,QAA0E,OAA1E;;AAEA,MAAMC,UAAU,GAAG,CAAC;EAAEC,EAAF;EAAMC,SAAN;EAAiBC;AAAjB,CAAD,KAA+B;EAChD,MAAMC,OAAO,GAAGX,SAAS,EAAzB;EACA,MAAM,CAACY,SAAD,EAAYC,YAAZ,IAA4BpB,QAAQ,CAAC,EAAD,CAA1C;EACA,MAAM,CAACqB,WAAD,EAAcC,cAAd,IAAgCtB,QAAQ,CAAC,KAAD,CAA9C;EACA,MAAM,CAACuB,WAAD,EAAcC,cAAd,IAAgCxB,QAAQ,CAAC,KAAD,CAA9C;EAEA,MAAM;IACJyB,aADI;IAEJC,YAAY,GAAG,EAFX;IAGJC,eAHI;IAIJC;EAJI,IAKF7B,UAAU,CAACO,kBAAD,CALd;EAOA,MAAMuB,kBAAkB,GAAG/B,OAAO,CAChC,MAAM2B,aAAa,CAACG,WAAD,CAAb,CAA2BE,IAA3B,CAAgCC,GAAhC,CAAqCC,MAAD,IAAYA,MAAM,CAACjB,EAAvD,CAD0B,EAEhC,CAACU,aAAD,EAAgBG,WAAhB,CAFgC,CAAlC;EAKA,MAAMK,kBAAkB,GAAGnC,OAAO,CAChC;IAAA;;IAAA,gCAAM4B,YAAY,CAACE,WAAD,CAAlB,0DAAM,sBAA2BM,MAA3B,CAAmCC,KAAD,IAAWN,kBAAkB,CAACO,QAAnB,CAA4BD,KAA5B,CAA7C,CAAN;EAAA,CADgC,EAEhC,CAACT,YAAD,EAAeG,kBAAf,EAAmCD,WAAnC,CAFgC,CAAlC;EAKA,MAAMS,UAAU,GAAGvC,OAAO,CACxB,MACE2B,aAAa,CAACG,WAAD,CAAb,CAA2BE,IAA3B,CAAgCC,GAAhC,CAAqCC,MAAD;IAAA;;IAAA,uCAC/BA,MAD+B;MAElCM,KAAK,EAAEN,MAAM,CAACO,IAFoB;MAGlCC,QAAQ,4BAAEd,YAAY,CAACE,WAAD,CAAd,2DAAE,uBAA2BQ,QAA3B,CAAoCJ,MAAM,CAACjB,EAA3C,CAHwB;MAIlC0B,QAAQ,EAAET,MAAM,CAACO,IAAP,CAAYG,WAAZ,GAA0BC,OAA1B,CAAkCxB,SAAS,CAACuB,WAAV,EAAlC,IAA6D;IAJrC;EAAA,CAApC,CAFsB,EAQxB,CAACjB,aAAD,EAAgBC,YAAhB,EAA8BE,WAA9B,EAA2CT,SAA3C,CARwB,CAA1B;EAWA,MAAMyB,eAAe,GAAG1C,WAAW,CAAC,MAAM;IACxC,MAAM2C,WAAW,GAAGZ,kBAAH,aAAGA,kBAAH,uBAAGA,kBAAkB,CAAEa,MAAxC;IACA,MAAMC,YAAY,GAAGF,WAAW,GAAG,CAAnC;IACA,MAAMG,SAAS,GAAGH,WAAW,KAAKhB,kBAAkB,CAACiB,MAArD;IAEAtB,cAAc,CAACuB,YAAD,CAAd;IACAzB,cAAc,CAACyB,YAAY,IAAIC,SAAjB,CAAd;EACD,CAPkC,EAOhC,CAACf,kBAAD,EAAqBJ,kBAArB,CAPgC,CAAnC;EASA5B,SAAS,CAAC,MAAM;IACd2C,eAAe;EAChB,CAFQ,EAEN,CAACX,kBAAD,EAAqBW,eAArB,CAFM,CAAT;EAIA3C,SAAS,CAAC,MAAMmB,YAAY,CAAC,EAAD,CAAnB,EAAyB,CAACQ,WAAD,CAAzB,CAAT;;EAEA,MAAMqB,eAAe,GAAIC,MAAD,IAAY;IAClC,MAAMC,eAAe,GAAG1B,aAAa,CAACM,GAAd,CAAkB,CAACC,MAAD,EAASoB,CAAT,KACxCxB,WAAW,KAAKwB,CAAhB,GACIF,MAAM,CAAChB,MAAP,CAAemB,CAAD,IAAOA,CAAC,CAACb,QAAvB,EAAiCT,GAAjC,CAAsCsB,CAAD,IAAOA,CAAC,CAACtC,EAA9C,CADJ,GAEI,CAAC,IAAIW,YAAY,CAAC0B,CAAD,CAAZ,IAAmB,EAAvB,CAAD,CAHkB,CAAxB;IAKAzB,eAAe,CAACwB,eAAD,CAAf;EACD,CAPD;;EASA,MAAMG,eAAe,GAAGpD,WAAW,CAAC,MAAM;IACxC,MAAMiD,eAAe,GAAG/C,SAAS,CAACsB,YAAD,CAAjC;IACAyB,eAAe,CAACvB,WAAD,CAAf,GAA+BL,WAAW,GAAG,EAAH,GAAQM,kBAAlD;IAEAF,eAAe,CAACwB,eAAD,CAAf;EACD,CALkC,EAKhC,CAACvB,WAAD,EAAcC,kBAAd,EAAkCN,WAAlC,EAA+CG,YAA/C,EAA6DC,eAA7D,CALgC,CAAnC;EAOA;AACF;AACA;AACA;AACA;;EACE,MAAM4B,SAAS,GAAGrD,WAAW,CAAC,MAAM;IAClC,MAAM;MAAEsD,SAAF;MAAaC;IAAb,IAA2CxC,MAAjD;IACA,MAAM4B,WAAW,GAAGZ,kBAAH,aAAGA,kBAAH,uBAAGA,kBAAkB,CAAEa,MAAxC;IAEA,MAAMY,YAAY,gBAChB,oBAAC,YAAD;MAAc,SAAS,EAAC;IAAxB,GACGb,WAAW,GAAG,CAAd,gBACC,uDACE,+BAAIA,WAAJ,CADF,EAEI,IAAGY,yBAA0B,IAAG5B,kBAAkB,CAACiB,MAAO,EAF9D,CADD,gBAMC,uDACE,+BAAIU,SAAJ,CADF,EAEI,KAAI3B,kBAAkB,CAACiB,MAAO,GAFlC,CAPJ,CADF;IAgBA,oBACE;MAAK,SAAS,EAAE5B,OAAO,CAACyC;IAAxB,gBACE,oBAAC,UAAD;MACE,EAAE,EAAEnD,KAAK,CAACO,EAAD,EAAK,YAAL,CADX;MAEE,KAAK,EAAE2C,YAFT;MAGE,QAAQ,EAAE,MAAMJ,eAAe,EAHjC;MAIE,OAAO,EAAE;QAAEM,SAAS,EAAE1C,OAAO,CAAC2C;MAArB,CAJX;MAKE,SAAS,EAAE3C,OAAO,CAACsC,SALrB;MAME,aAAa,EAAEjC,WAAW,IAAI,CAACF,WANjC;MAOE,OAAO,EAAEA;IAPX,EADF,CADF;EAaD,CAjC4B,EAiC1B,CACDY,kBADC,aACDA,kBADC,uBACDA,kBAAkB,CAAEa,MADnB,EAEDjB,kBAAkB,CAACiB,MAFlB,EAGDzB,WAHC,EAIDE,WAJC,EAKDL,OAAO,CAACsC,SALP,EAMDtC,OAAO,CAACyC,kBANP,EAODzC,OAAO,CAAC2C,SAPP,EAQDP,eARC,EASDvC,EATC,EAUDE,MAVC,CAjC0B,CAA7B;EA8CA,oBACE,oBAAC,OAAD;IAAS,EAAE,EAAET,KAAK,CAACO,EAAD,EAAK,YAAL,CAAlB;IAAsC,SAAS,EAAEV,IAAI,CAACW,SAAD,EAAYE,OAAO,CAAC4C,IAApB;EAArD,gBACE,oBAAC,OAAD;IACE,EAAE,EAAEtD,KAAK,CAACO,EAAD,EAAK,QAAL,CADX;IAEE,OAAO,EAAE;MACP+C,IAAI,EAAE5C,OAAO,CAAC6C;IADP,CAFX;IAKE,IAAI,EAAC,QALP;IAME,WAAW,EAAE9C,MAAM,CAAC+C,oBANtB;IAOE,KAAK,EAAE7C,SAPT;IAQE,QAAQ,EAAE,CAAC8C,KAAD,EAAQC,GAAR,KAAgB9C,YAAY,CAAC8C,GAAD;EARxC,EADF,eAWE,oBAAC,SAAD,OAXF,eAYE,oBAAC,MAAD;IACE,GAAG,EAAEtC,WADP;IAEE,EAAE,EAAEpB,KAAK,CAACO,EAAD,EAAK,MAAL,CAFX;IAGE,SAAS,EAAEG,OAAO,CAACiD,IAHrB;IAIE,MAAM,EAAE9B,UAJV;IAKE,WAAW,MALb;IAME,WAAW,MANb;IAOE,aAAa,EAAE,KAPjB;IAQE,QAAQ,EAAEY,eARZ;IASE,UAAU,MATZ;IAUE,SAAS,MAVX;IAWE,WAAW;EAXb,EAZF,CADF;AA4BD,CAhJD;;AAkJA,wCAAAnC,UAAU,CAACsD,SAAX,GAAuB;EACrBrD,EAAE,EAAEZ,SAAS,CAACkE,MADO;EAErBrD,SAAS,EAAEb,SAAS,CAACkE,MAFA;EAGrBpD,MAAM,EAAEd,SAAS,CAACmE,KAAV,CAAgB;IACtBN,oBAAoB,EAAE7D,SAAS,CAACkE,MADV;IAEtBb,SAAS,EAAErD,SAAS,CAACkE,MAFC;IAGtBZ,yBAAyB,EAAEtD,SAAS,CAACkE;EAHf,CAAhB;AAHa,CAAvB;AAUA,eAAevD,UAAf"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
export { default } from "./FormElement";
|
|
2
2
|
export * from "./FormElement";
|
|
3
3
|
export * from "./context/FormElementContext";
|
|
4
|
+
export * from "./context/FormElementValueContext";
|
|
5
|
+
export * from "./context/FormElementDescriptorsContext";
|
|
6
|
+
export * from "./utils/FormUtils";
|
|
7
|
+
export * from "./validationStates";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["default"],"sources":["../../../../src/Forms/FormElement/index.js"],"sourcesContent":["export { default } from \"./FormElement\";\nexport * from \"./context/FormElementContext\";\nexport * from \"./context/FormElementValueContext\";\nexport * from \"./context/FormElementDescriptorsContext\";\nexport * from \"./utils/FormUtils\";\n"],"mappings":"AAAA,SAASA,OAAT,QAAwB,eAAxB;AACA,cAAc,8BAAd;AACA,cAAc,mCAAd;AACA,cAAc,yCAAd;AACA,cAAc,mBAAd"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["default"],"sources":["../../../../src/Forms/FormElement/index.js"],"sourcesContent":["export { default } from \"./FormElement\";\nexport * from \"./context/FormElementContext\";\nexport * from \"./context/FormElementValueContext\";\nexport * from \"./context/FormElementDescriptorsContext\";\nexport * from \"./utils/FormUtils\";\nexport * from \"./validationStates\";\n"],"mappings":"AAAA,SAASA,OAAT,QAAwB,eAAxB;AACA,cAAc,8BAAd;AACA,cAAc,mCAAd;AACA,cAAc,yCAAd;AACA,cAAc,mBAAd;AACA,cAAc,oBAAd"}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { StandardProps } from "@material-ui/core";
|
|
3
|
+
import { SliderProps, RangeProps } from "rc-slider";
|
|
4
|
+
import { HvFormStatus } from "../Forms/FormElement";
|
|
5
|
+
import { HvInputProps } from "..";
|
|
6
|
+
|
|
7
|
+
export interface KnobProperty {
|
|
8
|
+
color?: string;
|
|
9
|
+
defaultValue?: number;
|
|
10
|
+
hidden?: boolean;
|
|
11
|
+
fixed?: boolean;
|
|
12
|
+
hoverColor?: string;
|
|
13
|
+
trackColor?: string;
|
|
14
|
+
dragColor?: string;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export interface MarkProperty {
|
|
18
|
+
position?: number;
|
|
19
|
+
label?: string;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export type HvSliderClassKey =
|
|
23
|
+
| "root"
|
|
24
|
+
| "rootRange"
|
|
25
|
+
| "labelContainer"
|
|
26
|
+
| "label"
|
|
27
|
+
| "handleContainer"
|
|
28
|
+
| "sliderRoot"
|
|
29
|
+
| "trackDragging"
|
|
30
|
+
| "rootDisabled"
|
|
31
|
+
| "trackStandBy"
|
|
32
|
+
| "error"
|
|
33
|
+
| "handleHiddenContainer"
|
|
34
|
+
| "handleContainerDisabled"
|
|
35
|
+
| "labelIncluded"
|
|
36
|
+
| "onlyInput"
|
|
37
|
+
| "dot"
|
|
38
|
+
| "rail"
|
|
39
|
+
| "knobInner"
|
|
40
|
+
| "knobOuter"
|
|
41
|
+
| "knobHidden"
|
|
42
|
+
| "knobHiddenLast"
|
|
43
|
+
| "track"
|
|
44
|
+
| "mark"
|
|
45
|
+
| "sliderTooltip"
|
|
46
|
+
| "sliderContainer";
|
|
47
|
+
|
|
48
|
+
export interface HvSliderProps
|
|
49
|
+
extends StandardProps<React.HTMLAttributes<HTMLDivElement>, HvSliderClassKey, "onChange"> {
|
|
50
|
+
/**
|
|
51
|
+
* The label of the slider element.
|
|
52
|
+
*
|
|
53
|
+
* The form element must be labeled for accessibility reasons.
|
|
54
|
+
* If not provided, an aria-label or aria-labelledby must be provided instead.
|
|
55
|
+
*/
|
|
56
|
+
label?: React.ReactNode;
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* The status of the slider element.
|
|
60
|
+
*
|
|
61
|
+
* Valid is correct, invalid is incorrect and standBy means no validations have run.
|
|
62
|
+
*
|
|
63
|
+
* When uncontrolled and unspecified it will default to "standBy" and change to either "valid"
|
|
64
|
+
* or "invalid" after any change to the state.
|
|
65
|
+
*/
|
|
66
|
+
status?: HvFormStatus;
|
|
67
|
+
/**
|
|
68
|
+
* The error message to show when `status` is "invalid".
|
|
69
|
+
*/
|
|
70
|
+
statusMessage?: React.ReactNode;
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Whether the slider is disabled.
|
|
74
|
+
*/
|
|
75
|
+
disabled?: boolean;
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* The object created by material to apply to the component.
|
|
79
|
+
*/
|
|
80
|
+
theme?: any;
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Name of the form element.
|
|
84
|
+
*
|
|
85
|
+
* Part of a name/value pair, should be the name property of the undelying native input.
|
|
86
|
+
*/
|
|
87
|
+
name?: string;
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* The values array to apply to the component
|
|
91
|
+
*/
|
|
92
|
+
values?: number[];
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* The default values array to apply to the component
|
|
96
|
+
*/
|
|
97
|
+
defaultValues?: number[];
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* The object used to set the knob properties,
|
|
101
|
+
* for every item in the array a new knob will be created.
|
|
102
|
+
*/
|
|
103
|
+
knobProperties?: KnobProperty[];
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* The object used to set the mark properties individually.
|
|
107
|
+
*/
|
|
108
|
+
markProperties?: MarkProperty[];
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* the function executed before a change will occur in the slider.
|
|
112
|
+
*/
|
|
113
|
+
onBeforeChange?: (value: number[]) => any;
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* the function executed while a change is occurring in the slider.
|
|
117
|
+
*/
|
|
118
|
+
onChange?: (value: number[]) => any;
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* the function executed after a change ocurred in the slider.
|
|
122
|
+
*/
|
|
123
|
+
onAfterChange?: (value: number[]) => any;
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* the separation in points between marks.
|
|
127
|
+
* example: if 10 divisions and a markstep of 2 there will be 5 marks.
|
|
128
|
+
*/
|
|
129
|
+
markStep?: number;
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* how many subdivisions there are in the slider.
|
|
133
|
+
*/
|
|
134
|
+
divisionQuantity?: number;
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* the value of the first point in the slider from left to right.
|
|
138
|
+
*/
|
|
139
|
+
minPointValue?: number;
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* the value of the last point in the slider from left to right.
|
|
143
|
+
*/
|
|
144
|
+
maxPointValue?: number;
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* the nax number of decimals if no format function is applied
|
|
148
|
+
*/
|
|
149
|
+
markDigits?: number;
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* a formatting function used to add format to the marks in the track,
|
|
153
|
+
* the function receives the mark text
|
|
154
|
+
*/
|
|
155
|
+
formatMark?: (label: React.ReactNode | string) => React.ReactNode | string;
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* a formatting function used to add format to the tooltip in the track,
|
|
159
|
+
* the function receives the mark text
|
|
160
|
+
*/
|
|
161
|
+
formatTooltip?: (label: React.ReactNode | string) => React.ReactNode | string;
|
|
162
|
+
/**
|
|
163
|
+
* if `true` the input that controls the slider is hidden.
|
|
164
|
+
*/
|
|
165
|
+
hideInput?: boolean;
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* if `true` the knobs can't have the same value, if `false` knobs can have the same value.
|
|
169
|
+
*/
|
|
170
|
+
noOverlap?: boolean;
|
|
171
|
+
/**
|
|
172
|
+
* Attributes applied to the input element.
|
|
173
|
+
*/
|
|
174
|
+
inputProps?: HvInputProps[];
|
|
175
|
+
/**
|
|
176
|
+
* Attributes applied to the knob element.
|
|
177
|
+
*/
|
|
178
|
+
knobProps?: React.HTMLAttributes<HTMLDivElement>[];
|
|
179
|
+
/**
|
|
180
|
+
* Attributes applied to the input element.
|
|
181
|
+
*/
|
|
182
|
+
sliderProps?: RangeProps | SliderProps;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
export default function HvSlider(props: HvSliderProps): JSX.Element | null;
|