@sis-cc/dotstatsuite-visions 13.0.2 → 13.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/DynamicDrawer/DynamicDrawer.js +1 -1
- package/dist/HierarchicalFilter/HierarchicalFilter.js +1 -1
- package/dist/chunks/{withSpotlight-CYQVWD78.js → withSpotlight-ooTVUwmd.js} +17 -2
- package/dist/chunks/{withSpotlight-CYQVWD78.js.map → withSpotlight-ooTVUwmd.js.map} +1 -1
- package/package.json +1 -1
|
@@ -4,7 +4,7 @@ import * as R from 'ramda';
|
|
|
4
4
|
import cx from 'classnames';
|
|
5
5
|
import Box from '@mui/material/Box';
|
|
6
6
|
import PropTypes from 'prop-types';
|
|
7
|
-
import { w as withSpotlight, a as withExpansionTree, g as getHierarchicalId, b as getEvolvedDisableAccessor, c as getScopeGetters, V as VirtualizedTree } from '../chunks/withSpotlight-
|
|
7
|
+
import { w as withSpotlight, a as withExpansionTree, g as getHierarchicalId, b as getEvolvedDisableAccessor, c as getScopeGetters, V as VirtualizedTree } from '../chunks/withSpotlight-ooTVUwmd.js';
|
|
8
8
|
import Button$1 from '@mui/material/Button';
|
|
9
9
|
import Paper from '@mui/material/Paper';
|
|
10
10
|
import Grid from '@mui/material/Grid';
|
|
@@ -4,7 +4,7 @@ import * as R from 'ramda';
|
|
|
4
4
|
import Container from '@mui/material/Container';
|
|
5
5
|
import { ZoomOutMap } from '@mui/icons-material';
|
|
6
6
|
import { VerticalButton } from '../VerticalButton/VerticalButton.js';
|
|
7
|
-
import { w as withSpotlight, a as withExpansionTree, u as useStyles, b as getEvolvedDisableAccessor, V as VirtualizedTree } from '../chunks/withSpotlight-
|
|
7
|
+
import { w as withSpotlight, a as withExpansionTree, u as useStyles, b as getEvolvedDisableAccessor, V as VirtualizedTree } from '../chunks/withSpotlight-ooTVUwmd.js';
|
|
8
8
|
import { Spotlight } from '../Spotlight/Spotlight.js';
|
|
9
9
|
import { Tooltip } from '../Tooltip/Tooltip.js';
|
|
10
10
|
import { Tag } from '../Tag/Tag.js';
|
|
@@ -153,8 +153,23 @@ const getScopeGetters = {
|
|
|
153
153
|
return R.reject(R.prop('isDisabled'), R.prepend(item, childItems));
|
|
154
154
|
},
|
|
155
155
|
branch: items => item => {
|
|
156
|
+
const findParents = (item, acc = []) => {
|
|
157
|
+
const parentId = R.prop('parentId', item);
|
|
158
|
+
if (parentId && parentId !== '#ROOT') {
|
|
159
|
+
const parent = R.prop(
|
|
160
|
+
parentId,
|
|
161
|
+
// R.either(R.prop('id', parentId), R.prop('hierarchicalId', parentId)),
|
|
162
|
+
items.indexedItemsById,
|
|
163
|
+
);
|
|
164
|
+
if (parent) {
|
|
165
|
+
return findParents(parent, [parent, ...acc]);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
return acc;
|
|
169
|
+
};
|
|
156
170
|
const descendants = getDescendants(getHierarchicalId(item), items.groupedItemsByParentId);
|
|
157
|
-
const
|
|
171
|
+
const parents = findParents(item);
|
|
172
|
+
const res = R.reject(R.prop('isDisabled'), R.prepend(item, [...parents, ...descendants]));
|
|
158
173
|
return res;
|
|
159
174
|
},
|
|
160
175
|
level: items => item => {
|
|
@@ -900,4 +915,4 @@ const withSpotlight = (Component) => ({ items, defaultSpotlight, labelRenderer,
|
|
|
900
915
|
};
|
|
901
916
|
|
|
902
917
|
export { VirtualizedTree as V, withExpansionTree as a, getEvolvedDisableAccessor as b, getScopeGetters as c, getHierarchicalId as g, useStyles as u, withSpotlight as w };
|
|
903
|
-
//# sourceMappingURL=withSpotlight-
|
|
918
|
+
//# sourceMappingURL=withSpotlight-ooTVUwmd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withSpotlight-CYQVWD78.js","sources":["../../src/VirtualizedTree/utils.js","../../src/VirtualizedTree/Item.jsx","../../src/ScopeList/styles.js","../../src/VirtualizedTree/VirtualizedTree.jsx","../../src/VirtualizedTree/withExpansionTree.jsx","../../src/VirtualizedTree/withSpotlight.jsx"],"sourcesContent":["import * as R from 'ramda';\n\nexport const getHierarchicalId = item => R.prop('hierarchicalId', item) || R.prop('id', item);\n\nexport const getDescendants = (id, groupedItems) => {\n const reccurse = _id => {\n const children = R.propOr([], _id, groupedItems);\n return R.pipe(\n R.map(item => {\n const __id = getHierarchicalId(item);\n const descendants = reccurse(__id);\n return R.prepend(item, descendants);\n }),\n R.unnest,\n )(children);\n };\n\n return reccurse(id);\n};\n\nexport const isItemSelected = selectIds => item => {\n if (!R.isEmpty(selectIds) && R.has(getHierarchicalId(item), selectIds)) {\n return !item.isSelected;\n }\n return !!item.isSelected;\n};\n\nexport const getDepth = indexedItems => item => {\n if (R.isNil(item.parentId)) {\n return 0;\n }\n const parent = R.prop(item.parentId, indexedItems);\n if (R.isNil(parent)) {\n return 0;\n }\n return getDepth(indexedItems)(parent) + 1;\n};\n\nexport const getDuplicates = (items, indexedItems) => {\n const itemsIds = R.pluck('id', items);\n const grouped = R.pipe(R.values, R.groupBy(R.prop('id')))(indexedItems);\n return R.pipe(R.props(itemsIds), R.unnest)(grouped);\n};\n\nexport const getDeprecatedIds = (ids, items, selectedIds) => {\n const { groupedItemsByParentId, indexedItemsById } = items;\n let _ids = ids;\n const reccurse = scopeIds => {\n const scopeItems = R.props(scopeIds, indexedItemsById);\n const grouped = R.groupBy(R.propOr('#ROOT', 'parentId'), scopeItems);\n const refined = R.omit(R.append('#ROOT', _ids), grouped);\n\n const deprecatedParents = R.reduce(\n (acc, id) => {\n const _item = R.prop(id, indexedItemsById);\n if (R.isNil(_item)) {\n return acc;\n }\n const _itemsIds = R.has('hierarchicalId', _item)\n ? R.pipe(\n R.values,\n R.filter(R.propEq('id', _item.id)),\n R.map(getHierarchicalId),\n )(indexedItemsById)\n : [id];\n\n const children = R.pipe(R.props(_itemsIds), R.unnest)(groupedItemsByParentId);\n const selectedChild = R.find(child => {\n return !R.includes(getHierarchicalId(child), _ids) && isItemSelected(selectedIds)(child);\n }, children);\n if (!isItemSelected(selectedIds)(_item) && R.isNil(selectedChild)) {\n return R.concat(reccurse([id]), acc);\n }\n if (!R.propOr(false, 'isGreyed', _item)) {\n return acc;\n }\n if (R.isNil(selectedChild)) {\n return R.concat(acc, _itemsIds);\n }\n return acc;\n },\n [],\n R.keys(refined),\n );\n\n if (!R.isEmpty(deprecatedParents)) {\n _ids = R.concat(_ids, deprecatedParents);\n const deprecatedAncestors = reccurse(deprecatedParents);\n return R.concat(deprecatedParents, deprecatedAncestors);\n }\n\n return deprecatedParents;\n };\n\n return reccurse(ids);\n};\n\n// evolved disableAccessor with hierarchical context and selection mode\nexport const getEvolvedDisableAccessor =\n (\n groupedItems,\n disableAccessor = R.always(false),\n getIsChildInSelectionScope = R.always(true), //combine selection mode + spotlight\n ) =>\n (item, selectedIds) => {\n const hierarchicalFinder = validator => parentId =>\n R.find(\n child => {\n if (validator(child)) return true;\n return !R.isNil(hierarchicalFinder(validator)(getHierarchicalId(child)));\n },\n R.propOr([], parentId, groupedItems),\n );\n // selected forcedItem isn't deselectable unless all selected descendants are in deselection scope\n if (isItemSelected(selectedIds)(item) && R.propOr(false, 'isForced', item)) {\n const outOfScopeSelectedDescendant = hierarchicalFinder(\n child => isItemSelected(selectedIds)(child) && !getIsChildInSelectionScope(child, item),\n )(getHierarchicalId(item));\n return !R.isNil(outOfScopeSelectedDescendant);\n }\n // non selected invalid item is disabled unless some (valid) children are selected or selectable in scope\n if (!isItemSelected(selectedIds)(item) && disableAccessor(item)) {\n const validDescendant = hierarchicalFinder(\n child =>\n isItemSelected(selectedIds)(child) ||\n (getIsChildInSelectionScope(child, item) && !disableAccessor(child)),\n )(getHierarchicalId(item));\n return R.isNil(validDescendant);\n }\n return false;\n };\n\nexport const getScopeGetters = {\n single: () => item => [item],\n children: items => item => {\n const childItems = R.propOr([], getHierarchicalId(item), items.groupedItemsByParentId);\n return R.reject(R.prop('isDisabled'), R.prepend(item, childItems));\n },\n branch: items => item => {\n const descendants = getDescendants(getHierarchicalId(item), items.groupedItemsByParentId);\n const res = R.reject(R.prop('isDisabled'), R.prepend(item, descendants));\n return res;\n },\n level: items => item => {\n const indexed = items.indexedItemsById;\n const depth = getDepth(indexed)(item);\n return R.filter(\n it => !R.prop('isDisabled', it) && getDepth(indexed)(it) === depth,\n R.values(indexed),\n );\n },\n};\n\nexport const getImposedItems = (selectIds, indexedItems) => selectedItems =>\n R.reduce(\n (acc, item) => {\n const isSelected = isItemSelected(selectIds)(item);\n if (!isSelected) {\n const imposedIds = R.pipe(\n R.filter(i => i.id === item.id),\n R.map(R.propOr([], 'imposedIds')),\n R.unnest,\n )(R.values(indexedItems));\n const imposedItems = R.props(imposedIds, indexedItems);\n return R.concat(acc, R.append(item, imposedItems));\n }\n return R.append(item, acc);\n },\n [],\n selectedItems,\n );\n","import React from 'react';\nimport * as R from 'ramda';\nimport ListItem from '@mui/material/ListItem';\nimport Typography from '@mui/material/Typography';\nimport ListItemText from '@mui/material/ListItemText';\nimport IconButton from '@mui/material/IconButton';\nimport SvgIcon from '@mui/material/SvgIcon';\nimport { CheckBoxOutlineBlankOutlined, CheckBoxOutlined } from '@mui/icons-material';\nimport cx from 'classnames';\nimport { Tooltip } from '../Tooltip/Tooltip';\nimport useKeyboardEscapeHandler from '../hooks/useKeybordEscapeHandler';\n\nconst Item = ({\n classes,\n id,\n label,\n description = '',\n isSelected,\n isDisabled,\n isGreyed,\n changeList,\n ariaLabel,\n NavigateIcon,\n hasChild,\n hasChildrenOnLevel,\n count,\n svgPath,\n style,\n isRtl,\n accessibility,\n HTMLRenderer,\n hierarchicalId,\n labels,\n depth = 0,\n eventsListeners,\n expanded,\n highlightedLabel,\n}) => {\n const { open, setOpen } = useKeyboardEscapeHandler();\n const padding =\n depth * 30 +\n (depth > 0 && !hasChildrenOnLevel ? 30 : 0) +\n (!hasChild && hasChildrenOnLevel ? 30 : 0);\n\n const formattedLabel = highlightedLabel ? (\n <div dangerouslySetInnerHTML={{ __html: highlightedLabel }} />\n ) : (\n label\n );\n return (\n <ListItem\n dense\n disableGutters\n classes={{ disabled: classes.disabled }}\n className={cx(classes.listItemContainer, classes.disableSecondaryAction)}\n tabIndex={-1}\n style={{\n ...style,\n flexDirection: isRtl ? 'row-reverse' : 'row',\n [`${isRtl ? 'paddingRight' : 'paddingLeft'}`]: `${padding}px`,\n }}\n role=\"listitem\"\n >\n {R.and(NavigateIcon, hasChild) && (\n <IconButton\n disableRipple\n disableFocusRipple\n className={classes.arrow}\n aria-label={ariaLabel}\n tabIndex={0}\n size=\"small\"\n color=\"primary\"\n onClick={() => changeList(hierarchicalId || id)}\n aria-expanded={expanded}\n >\n <NavigateIcon />\n </IconButton>\n )}\n <ListItemText\n data-testid={`value_${id}`}\n tabIndex={0}\n role=\"checkbox\"\n aria-label={isGreyed ? `${R.propOr('', 'disableItemLabel')(labels)} ${label}` : label}\n aria-checked={isSelected}\n aria-disabled={isDisabled}\n primaryTypographyProps={{ noWrap: true, color: 'inherit' }}\n secondaryTypographyProps={{ color: 'inherit' }}\n classes={{ root: classes.listItem }}\n className={cx({\n [classes.accessibilityItemHover]: accessibility,\n [classes.listItemSelected]: isSelected,\n [classes.listItemHover]: !isDisabled,\n })}\n onKeyDown={isDisabled ? null : eventsListeners.onKeyDown}\n onClick={isDisabled ? null : eventsListeners.onClick}\n onMouseDown={isDisabled || open ? null : eventsListeners.onMouseDown}\n onMouseEnter={isDisabled || open ? null : eventsListeners.onMouseEnter}\n title={isGreyed ? `${R.propOr('', 'disableItemLabel')(labels)} ${label}` : label}\n style={{\n outline: accessibility ? undefined : 'none',\n }}\n primary={\n <div\n className={cx(classes.labelContainer, {\n [classes.rtlLabelContainer]: isRtl,\n })}\n >\n <SvgIcon\n color=\"primary\"\n className={cx(classes.labelIcon, { [classes.disabledLabel]: isDisabled })}\n >\n {isSelected ? <CheckBoxOutlined /> : <CheckBoxOutlineBlankOutlined />}\n </SvgIcon>\n {svgPath && (\n <SvgIcon\n color=\"primary\"\n className={cx(classes.labelIcon, {\n [classes.disabledLabel]: isDisabled,\n })}\n >\n <path d={svgPath} />\n </SvgIcon>\n )}\n <Tooltip\n title={\n R.or(R.isNil(HTMLRenderer), R.isEmpty(description)) ? (\n description\n ) : (\n <HTMLRenderer html={description} onClick={e => e.stopPropagation()} />\n )\n }\n enterDelay={400}\n enterNextDelay={400}\n tabIndex={description ? 0 : -1}\n aria-label={description}\n aria-hidden={false}\n placement=\"top\"\n disableInteractive={Boolean(HTMLRenderer) === false}\n onOpen={() => setOpen(true)}\n onClose={() => setOpen(false)}\n disableHoverListener={R.isEmpty(description)}\n open={open}\n >\n <Typography\n color=\"inherit\"\n variant=\"body2\"\n className={cx(classes.label, {\n [classes.disabledLabel]: isGreyed,\n [classes.tooltipNotice]: !R.isEmpty(description),\n })}\n >\n {formattedLabel}\n </Typography>\n </Tooltip>\n {R.not(R.isNil(count)) && (\n <Typography variant=\"body2\" className={classes.count}>\n ({count})\n </Typography>\n )}\n </div>\n }\n />\n </ListItem>\n );\n};\n\nexport default Item;\n","import makeStyles from '@mui/styles/makeStyles';\nexport const height = 30;\n\nexport const useStyles = makeStyles(theme => ({\n middle: {\n margin: 'auto 0',\n },\n selectionContainer: {\n margin: theme.spacing(1),\n },\n containerHeader: {\n borderBottom: `6px solid ${theme.palette.grey[100]}`,\n marginBottom: '1px',\n },\n listItemContainer: {\n height,\n paddingRight: 36,\n outline: 'none',\n marginBottom: '1px',\n },\n listItem: {\n height,\n display: 'flex',\n flexDirection: 'column-reverse',\n justifyContent: 'center',\n margin: 0,\n userSelect: 'none',\n cursor: 'pointer',\n color: theme.palette.primary.main,\n },\n listItemHover: {\n '&:hover': {\n color: theme.palette.primary.main,\n backgroundColor: theme.palette.action.hover,\n },\n },\n accessibilityItemHover: {\n '&:focus': {\n backgroundColor: theme.palette.action.selected,\n },\n },\n listItemSelected: {\n backgroundColor: theme.palette.action.hover,\n '&:hover': {\n backgroundColor: theme.palette.action.selected,\n },\n },\n disableSecondaryAction: {\n paddingRight: '0 !important',\n },\n spaceHeader: {\n margin: theme.spacing(1, 0),\n lineHeight: 1,\n },\n spotlightContainer: {\n display: 'flex',\n },\n labelContainer: {\n width: '100%',\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'baseline',\n },\n rtlLabelContainer: {\n flexDirection: 'row-reverse',\n },\n count: {\n color: theme.palette.grey[800],\n margin: theme.spacing(0, 0.25),\n fontSize: 11,\n },\n path: {\n color: theme.palette.grey[600],\n marginLeft: theme.spacing(1),\n fontSize: 11,\n },\n label: {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n marginLeft: theme.spacing(1),\n },\n labelIcon: {\n fontSize: 16,\n marginLeft: theme.spacing(0.5),\n alignSelf: 'center',\n },\n disabled: {\n pointerEvents: 'initial !important',\n },\n disabledLabel: {\n color: theme.palette.grey[700],\n },\n ellipsis: {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n },\n svg: {\n verticalAlign: 'bottom',\n fontSize: '1.25rem',\n },\n arrowHeader: {\n color: theme.palette.grey[800],\n },\n headerItem: {\n display: 'inline',\n cursor: 'pointer',\n userSelect: 'none',\n height: 'unset',\n minHeight: 25,\n padding: theme.spacing(0.25, 0.5),\n borderBottom: 'dotted 1px',\n verticalAlign: 'text-bottom',\n '&:hover, &:focus': {\n backgroundColor: theme.palette.action.hover,\n },\n },\n containerArrow: {\n paddingLeft: 4,\n borderLeft: `1px solid ${theme.palette.grey[800]}`,\n color: theme.palette.primary.main,\n height: '100%',\n display: 'flex',\n '&:hover, &:focus': {\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.common.white,\n },\n },\n arrow: {\n marginTop: 2,\n '&:hover': {\n backgroundColor: 'transparent',\n },\n },\n bulkSelectionIcon: {\n minWidth: 50,\n },\n tooltipNotice: {\n textDecoration: 'underline dotted',\n },\n}));\n","import React, { useRef, useEffect, useState, useMemo } from 'react';\nimport * as R from 'ramda';\nimport _AutoSizer from 'react-virtualized/dist/commonjs/AutoSizer';\nimport _VirtualizedList from 'react-virtualized/dist/commonjs/List';\nimport { ExpandLess, ExpandMore } from '@mui/icons-material';\nimport Item from './Item';\nimport { useTheme } from '@mui/material';\nimport { useStyles, height as rowHeight } from '../ScopeList/styles';\nimport {\n getDepth,\n getHierarchicalId,\n isItemSelected as _isItemSelected,\n getDeprecatedIds,\n getDuplicates,\n getImposedItems,\n} from './utils';\nimport { getIsRtl } from '../utils';\n\nconst AutoSizer = _AutoSizer.default || _AutoSizer;\nconst VirtualizedList = _VirtualizedList.default || _VirtualizedList;\n\nconst singleScopeGetter = () => item => [item];\n\nexport const getDisplayedIds = (items, grouped, expanded) =>\n R.pipe(\n R.map(item => {\n const hierarchicalId = getHierarchicalId(item);\n if (R.has(hierarchicalId, grouped) && R.has(hierarchicalId, expanded)) {\n const children = getDisplayedIds(R.prop(hierarchicalId, grouped), grouped, expanded);\n return R.prepend(hierarchicalId, children);\n }\n return [hierarchicalId];\n }),\n R.unnest,\n )(items);\n\nexport const getHasChildrenOnLevel = groupedItems => item => {\n if (R.has(getHierarchicalId(item), groupedItems)) {\n return true;\n }\n return R.pipe(\n R.prop(R.propOr('#ROOT', 'parentId', item)),\n R.find(it => R.has(getHierarchicalId(it), groupedItems)),\n R.complement(R.isNil),\n )(groupedItems);\n};\n\nexport const VirtualizedTree = props => {\n const {\n accessibility,\n changeSelection,\n HTMLRenderer,\n items,\n labelRenderer,\n labels,\n disableAccessor = R.always(false),\n isGreyed = R.always(false),\n expandedIds,\n expand,\n collapse,\n maxTreeHeight = 250,\n scopeGetter = singleScopeGetter,\n treeHeight = 0,\n simpleSelectionMode = false,\n } = props;\n const theme = useTheme();\n const [scrollTop, setScrollTop] = useState(undefined);\n const [shiftIndexes, setShiftIndexes] = useState([]);\n const [isMouseDown, setIsMouseDown] = useState(false);\n const [lastItemId, setLastItemId] = useState(null);\n const [selectIds, setSelectIds] = useState({});\n\n const { indexedItemsById, groupedItemsByParentId } = useMemo(() => {\n const refinedItems = R.map(\n item => ({\n ...item,\n isSelected: _isItemSelected(selectIds)(item),\n isGreyed: R.is(Function, isGreyed) ? isGreyed(item) : false,\n isDisabled: R.is(Function, disableAccessor) ? disableAccessor(item, selectIds) : false,\n }),\n items,\n );\n const indexedItemsById = R.indexBy(getHierarchicalId, refinedItems);\n const groupedItemsByParentId = R.groupBy(R.propOr('#ROOT', 'parentId'), refinedItems);\n return { indexedItemsById, groupedItemsByParentId };\n }, [items, selectIds]);\n const list = useMemo(\n () =>\n getDisplayedIds(\n R.propOr([], '#ROOT', groupedItemsByParentId),\n groupedItemsByParentId,\n expandedIds,\n ),\n [items, expandedIds],\n );\n\n const getItemScope = scopeGetter({ indexedItemsById, groupedItemsByParentId });\n\n const isItemSelected = _isItemSelected(selectIds);\n\n const multiSelect = id => {\n const item = R.prop(id, indexedItemsById);\n let ids = R.pipe(\n getItemScope,\n getImposedItems(selectIds, indexedItemsById),\n R.filter(v => v.isSelected === item.isSelected),\n items => getDuplicates(items, indexedItemsById),\n R.map(getHierarchicalId),\n )(item);\n\n if (isItemSelected(item)) {\n const deprecatedIds = getDeprecatedIds(\n ids,\n { indexedItemsById, groupedItemsByParentId },\n selectIds,\n );\n ids = R.concat(ids, deprecatedIds);\n }\n\n if (R.has(id, selectIds)) {\n setSelectIds(R.omit(ids, selectIds));\n } else {\n setSelectIds({ ...selectIds, ...R.indexBy(R.identity, ids) });\n setLastItemId(id);\n }\n };\n const shiftSelect = index => {\n const selectRange = (indexes, isSelected) => {\n const _selectIds = R.pipe(\n R.slice(Math.min(...indexes), Math.max(...indexes) + 1),\n ids => R.props(ids, indexedItemsById),\n R.map(getItemScope),\n R.unnest,\n R.filter(v => v.isSelected === isSelected),\n R.map(getHierarchicalId),\n R.indexBy(R.identity),\n )(list);\n setShiftIndexes(indexes);\n setSelectIds(_selectIds);\n };\n if (R.isEmpty(shiftIndexes)) {\n const item = R.pipe(R.nth(index), id => R.prop(id, indexedItemsById))(list);\n if (!R.isNil(lastItemId)) {\n const lastItem = R.prop(lastItemId, indexedItemsById);\n const lastItemIndex = R.findIndex(v => v === lastItem.id, list);\n if (lastItem.isSelected !== item.isSelected && lastItemIndex !== -1) {\n selectRange([lastItemIndex, index], item.isSelected);\n return;\n }\n }\n const ids = R.pipe(\n getItemScope,\n R.filter(v => v.isSelected === item.isSelected),\n R.map(getHierarchicalId),\n R.indexBy(R.identity),\n )(item);\n setShiftIndexes(R.append(index, shiftIndexes));\n setSelectIds(ids);\n } else if (R.length(shiftIndexes) === 1 && index === R.head(shiftIndexes)) {\n setShiftIndexes([]);\n setSelectIds({});\n } else {\n const firstItem = R.pipe(R.nth(R.head(shiftIndexes)), id => R.prop(id, indexedItemsById))(\n list,\n );\n selectRange([R.head(shiftIndexes), index], firstItem.isSelected);\n }\n };\n const apply = () => {\n if (!R.isEmpty(selectIds)) {\n const ids = R.values(selectIds);\n const selection = R.pipe(R.props(ids), R.pluck('id'), R.uniq)(indexedItemsById);\n changeSelection(selection);\n setShiftIndexes([]);\n setSelectIds({});\n setIsMouseDown(false);\n }\n };\n\n const onMouseUp = e => {\n if (!isMouseDown) {\n return;\n }\n e.preventDefault();\n apply();\n setIsMouseDown(false);\n };\n\n const onMouseLeave = () => {\n if (isMouseDown) {\n apply();\n }\n };\n\n const onKeyUp = e => {\n e.preventDefault();\n if (e.key === 'Shift' && !R.isEmpty(shiftIndexes)) {\n apply();\n } else if (e.key === 'Control' && !R.isEmpty(selectIds)) {\n apply();\n } else if (e.key === 'Enter' && !R.isNil(lastItemId)) {\n apply();\n }\n };\n\n const itemEventsListeners = (id, index) => ({\n onMouseDown: e => {\n if (!simpleSelectionMode && (e.ctrlKey || e.shiftKey)) {\n return;\n }\n setIsMouseDown(true);\n multiSelect(id);\n },\n onMouseEnter: e => {\n e.preventDefault();\n if (!isMouseDown || simpleSelectionMode || e.ctrlKey || e.shiftKey) {\n return;\n }\n multiSelect(id);\n setLastItemId(id);\n },\n onKeyDown: e => {\n if (e.key === 'Enter') {\n multiSelect(id);\n setLastItemId(id);\n }\n },\n onClick: e => {\n e.preventDefault();\n if (e.ctrlKey && !simpleSelectionMode) {\n multiSelect(id);\n } else if (e.shiftKey && !simpleSelectionMode) {\n shiftSelect(index);\n } else {\n setIsMouseDown(false);\n setLastItemId(id);\n }\n },\n });\n const ref = useRef();\n const classes = useStyles();\n useEffect(() => {\n const current = ref.current;\n const handler = event => {\n if (R.or(event.ctrlKey, event.shiftKey)) {\n // ugly hack, to get div element created by react-virtuliase (get scroll height)\n // ReactVirtualized__Grid ReactVirtualized__List made the scrollbar\n const scrollEl = R.path(['children', 0, 'children', 0], current);\n const isBottom = R.gte(\n R.add(R.prop('scrollTop')(scrollEl), R.prop('clientHeight')(scrollEl)),\n R.prop('scrollHeight')(scrollEl),\n );\n const nextpos = (scrollTop || scrollEl.scrollTop) + event.deltaY / 2;\n if (R.or(event.deltaY < 0, event.deltaY > 0 && R.not(isBottom))) {\n setScrollTop(nextpos < 0 ? 0 : nextpos);\n }\n event.preventDefault();\n }\n if (R.not(event.ctrlKey) && R.not(event.shiftKey)) {\n setScrollTop(undefined); // should be undefined if the user want use the normal scroll\n }\n };\n if (scrollTop === 0) {\n setScrollTop(undefined);\n }\n if (R.isNil(current)) return;\n current.addEventListener('wheel', handler, { passive: false });\n return () => {\n current.removeEventListener('wheel', handler, { passive: false });\n };\n }, [scrollTop]);\n const maxHeight =\n treeHeight === 0\n ? R.pipe(\n R.length,\n R.multiply(rowHeight),\n R.ifElse(R.gt(maxTreeHeight), R.add(10), R.always(maxTreeHeight)),\n )(list)\n : treeHeight;\n\n if (R.isEmpty(list)) {\n return null;\n }\n const isRtl = getIsRtl(theme);\n return (\n <div\n style={{ height: maxHeight }}\n onKeyUp={onKeyUp}\n onMouseUp={onMouseUp}\n onMouseLeave={onMouseLeave}\n ref={ref}\n role=\"presentation\"\n >\n <AutoSizer disableWidth>\n {({ height }) => (\n <VirtualizedList\n containerRole=\"list\"\n role=\"presentation\"\n overscan={10}\n tabIndex={-1}\n containerStyle={{ width: '100%', maxWidth: '100%' }}\n height={height + 2}\n width={1}\n style={{ width: '100%' }}\n scrollTop={scrollTop} // control scroll position with ctrl or shift key\n rowCount={R.length(list)}\n rowHeight={R.add(1)(rowHeight)} // 1 is space between elements\n rowRenderer={({ index, style }) => {\n const itemId = R.nth(index, list);\n const item = R.prop(itemId, indexedItemsById);\n return (\n <Item\n {...item}\n id={getHierarchicalId(item)}\n label={labelRenderer(item)}\n key={getHierarchicalId(item)}\n depth={getDepth(indexedItemsById)(item)}\n hasChild={R.has(itemId, groupedItemsByParentId)}\n hasChildrenOnLevel={getHasChildrenOnLevel(groupedItemsByParentId)(item)}\n changeList={\n R.has(itemId, expandedIds)\n ? () => collapse(getHierarchicalId(item))\n : () => expand(getHierarchicalId(item))\n }\n NavigateIcon={R.has(itemId, expandedIds) ? ExpandLess : ExpandMore}\n expanded={R.has(itemId, expandedIds)}\n isRtl={isRtl}\n eventsListeners={itemEventsListeners(getHierarchicalId(item), index)}\n HTMLRenderer={HTMLRenderer}\n classes={classes}\n labels={labels}\n style={style}\n accessibility={accessibility}\n ariaLabel={R.prop('navigateNext')(labels)}\n theme={theme}\n />\n );\n }}\n />\n )}\n </AutoSizer>\n </div>\n );\n};\n","/* eslint react/prop-types: 0 */\nimport React, { useState, useEffect } from 'react';\nimport * as R from 'ramda';\nimport { getHierarchicalId } from './utils';\n\nexport const withExpansionTree =\n Component =>\n ({ items, defaultExpandedIds, ...rest }) => {\n const [expandedIds, setExpandedIds] = useState({});\n const [itemsIds, setItemsIds] = useState([]);\n\n useEffect(() => {\n const ids = R.map(getHierarchicalId, items);\n if (!R.isEmpty(R.symmetricDifference(ids, itemsIds))) setItemsIds(ids);\n }, [items]);\n\n useEffect(() => {\n setExpandedIds(R.indexBy(R.identity, itemsIds));\n }, [itemsIds]);\n\n useEffect(() => {\n if (!R.isNil(defaultExpandedIds)) {\n setExpandedIds(defaultExpandedIds);\n }\n }, [defaultExpandedIds]);\n\n const expand = id => {\n setExpandedIds(R.assoc(id, id, expandedIds));\n };\n\n const collapse = id => {\n setExpandedIds(R.dissoc(id, expandedIds));\n };\n\n const expandAll = () => {\n setExpandedIds(R.indexBy(R.identity, itemsIds));\n };\n\n const collapseAll = () => {\n setExpandedIds({});\n };\n\n return (\n <Component\n {...rest}\n items={items}\n expand={expand}\n collapse={collapse}\n expandAll={expandAll}\n collapseAll={collapseAll}\n expandedIds={expandedIds}\n />\n );\n };\n","/* eslint react/prop-types: 0 */\nimport * as R from 'ramda';\nimport React, { useEffect, useMemo, useState } from 'react';\nimport { getDescendants, getHierarchicalId } from './utils';\nimport { prepareTerm, searchTerm } from '../utils';\n\nexport const spotlightFilter =\n (term, labelRenderer = R.prop('label'), displayChildren = false) =>\n items => {\n if (R.isEmpty(term) || R.isNil(term)) {\n return items;\n }\n\n const groupedItemsByParentId = R.groupBy(R.propOr('#ROOT', 'parentId'), items);\n\n const findParents = (item, acc = []) => {\n const parentId = R.prop('parentId', item);\n if (parentId && parentId !== '#ROOT') {\n const parent = R.find(\n R.either(R.propEq('id', parentId), R.propEq('hierarchicalId', parentId)),\n items,\n );\n if (parent) {\n return findParents(parent, [parent, ...acc]);\n }\n }\n return acc;\n };\n\n // Highlight matching terms in the label\n const highlightLabel = label => {\n const i = prepareTerm(label).indexOf(prepareTerm(term));\n const l = R.length(term);\n\n const pre = label.slice(0, i);\n const match = label.slice(i, i + l);\n const post = label.slice(i + l);\n\n return `${pre}<span style=background-color:yellow;border-bottom:2px solid #8CC841>${match}</span>${post}`;\n };\n\n const recurse = item => {\n const label = labelRenderer(item);\n const isValidItem = searchTerm(term);\n\n let result = [];\n\n if (isValidItem(label)) {\n const highlightedLabel = highlightLabel(label);\n const parents = findParents(item);\n result = [...parents, { ...item, highlightedLabel }];\n\n if (displayChildren) {\n const children = getDescendants(getHierarchicalId(item), groupedItemsByParentId);\n const highlightedChildren = R.map(child => {\n const labelChild = labelRenderer(child);\n return isValidItem(labelChild)\n ? { ...child, highlightedLabel: highlightLabel(labelChild) }\n : child;\n })(children);\n return [...parents, { ...item, highlightedLabel }, ...highlightedChildren];\n }\n }\n\n if (R.has(getHierarchicalId(item), groupedItemsByParentId)) {\n const childItems = groupedItemsByParentId[getHierarchicalId(item)] || [];\n const matchingChildren = R.chain(recurse, childItems);\n\n // res with any matching children\n return R.uniq([...result, ...matchingChildren]);\n }\n return result;\n };\n\n return R.uniqBy(getHierarchicalId)(R.chain(recurse, groupedItemsByParentId['#ROOT'] || []));\n };\n\nexport const withSpotlight =\n Component =>\n ({ items, defaultSpotlight, labelRenderer, displayChildren, ...rest }) => {\n const [{ term }, setSpotlight] = useState({ term: '' });\n useEffect(() => {\n if (!R.isNil(defaultSpotlight) && !R.isEmpty(defaultSpotlight)) {\n setSpotlight(defaultSpotlight);\n }\n }, [defaultSpotlight]);\n\n const filteredItems = useMemo(\n () => spotlightFilter(term, labelRenderer, displayChildren)(items),\n [term, items, labelRenderer],\n );\n\n return (\n <Component\n {...rest}\n allItems={items}\n items={filteredItems}\n labelRenderer={labelRenderer}\n hasSpotlight={R.length(items) >= 8}\n spotlight={{ term }}\n setSpotlight={setSpotlight}\n />\n );\n };\n"],"names":["_isItemSelected","indexedItemsById","groupedItemsByParentId","isItemSelected","items","rowHeight","height"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"withSpotlight-ooTVUwmd.js","sources":["../../src/VirtualizedTree/utils.js","../../src/VirtualizedTree/Item.jsx","../../src/ScopeList/styles.js","../../src/VirtualizedTree/VirtualizedTree.jsx","../../src/VirtualizedTree/withExpansionTree.jsx","../../src/VirtualizedTree/withSpotlight.jsx"],"sourcesContent":["import * as R from 'ramda';\n\nexport const getHierarchicalId = item => R.prop('hierarchicalId', item) || R.prop('id', item);\n\nexport const getDescendants = (id, groupedItems) => {\n const reccurse = _id => {\n const children = R.propOr([], _id, groupedItems);\n return R.pipe(\n R.map(item => {\n const __id = getHierarchicalId(item);\n const descendants = reccurse(__id);\n return R.prepend(item, descendants);\n }),\n R.unnest,\n )(children);\n };\n\n return reccurse(id);\n};\n\nexport const isItemSelected = selectIds => item => {\n if (!R.isEmpty(selectIds) && R.has(getHierarchicalId(item), selectIds)) {\n return !item.isSelected;\n }\n return !!item.isSelected;\n};\n\nexport const getDepth = indexedItems => item => {\n if (R.isNil(item.parentId)) {\n return 0;\n }\n const parent = R.prop(item.parentId, indexedItems);\n if (R.isNil(parent)) {\n return 0;\n }\n return getDepth(indexedItems)(parent) + 1;\n};\n\nexport const getDuplicates = (items, indexedItems) => {\n const itemsIds = R.pluck('id', items);\n const grouped = R.pipe(R.values, R.groupBy(R.prop('id')))(indexedItems);\n return R.pipe(R.props(itemsIds), R.unnest)(grouped);\n};\n\nexport const getDeprecatedIds = (ids, items, selectedIds) => {\n const { groupedItemsByParentId, indexedItemsById } = items;\n let _ids = ids;\n const reccurse = scopeIds => {\n const scopeItems = R.props(scopeIds, indexedItemsById);\n const grouped = R.groupBy(R.propOr('#ROOT', 'parentId'), scopeItems);\n const refined = R.omit(R.append('#ROOT', _ids), grouped);\n\n const deprecatedParents = R.reduce(\n (acc, id) => {\n const _item = R.prop(id, indexedItemsById);\n if (R.isNil(_item)) {\n return acc;\n }\n const _itemsIds = R.has('hierarchicalId', _item)\n ? R.pipe(\n R.values,\n R.filter(R.propEq('id', _item.id)),\n R.map(getHierarchicalId),\n )(indexedItemsById)\n : [id];\n\n const children = R.pipe(R.props(_itemsIds), R.unnest)(groupedItemsByParentId);\n const selectedChild = R.find(child => {\n return !R.includes(getHierarchicalId(child), _ids) && isItemSelected(selectedIds)(child);\n }, children);\n if (!isItemSelected(selectedIds)(_item) && R.isNil(selectedChild)) {\n return R.concat(reccurse([id]), acc);\n }\n if (!R.propOr(false, 'isGreyed', _item)) {\n return acc;\n }\n if (R.isNil(selectedChild)) {\n return R.concat(acc, _itemsIds);\n }\n return acc;\n },\n [],\n R.keys(refined),\n );\n\n if (!R.isEmpty(deprecatedParents)) {\n _ids = R.concat(_ids, deprecatedParents);\n const deprecatedAncestors = reccurse(deprecatedParents);\n return R.concat(deprecatedParents, deprecatedAncestors);\n }\n\n return deprecatedParents;\n };\n\n return reccurse(ids);\n};\n\n// evolved disableAccessor with hierarchical context and selection mode\nexport const getEvolvedDisableAccessor =\n (\n groupedItems,\n disableAccessor = R.always(false),\n getIsChildInSelectionScope = R.always(true), //combine selection mode + spotlight\n ) =>\n (item, selectedIds) => {\n const hierarchicalFinder = validator => parentId =>\n R.find(\n child => {\n if (validator(child)) return true;\n return !R.isNil(hierarchicalFinder(validator)(getHierarchicalId(child)));\n },\n R.propOr([], parentId, groupedItems),\n );\n // selected forcedItem isn't deselectable unless all selected descendants are in deselection scope\n if (isItemSelected(selectedIds)(item) && R.propOr(false, 'isForced', item)) {\n const outOfScopeSelectedDescendant = hierarchicalFinder(\n child => isItemSelected(selectedIds)(child) && !getIsChildInSelectionScope(child, item),\n )(getHierarchicalId(item));\n return !R.isNil(outOfScopeSelectedDescendant);\n }\n // non selected invalid item is disabled unless some (valid) children are selected or selectable in scope\n if (!isItemSelected(selectedIds)(item) && disableAccessor(item)) {\n const validDescendant = hierarchicalFinder(\n child =>\n isItemSelected(selectedIds)(child) ||\n (getIsChildInSelectionScope(child, item) && !disableAccessor(child)),\n )(getHierarchicalId(item));\n return R.isNil(validDescendant);\n }\n return false;\n };\n\nexport const getScopeGetters = {\n single: () => item => [item],\n children: items => item => {\n const childItems = R.propOr([], getHierarchicalId(item), items.groupedItemsByParentId);\n return R.reject(R.prop('isDisabled'), R.prepend(item, childItems));\n },\n branch: items => item => {\n const findParents = (item, acc = []) => {\n const parentId = R.prop('parentId', item);\n if (parentId && parentId !== '#ROOT') {\n const parent = R.prop(\n parentId,\n // R.either(R.prop('id', parentId), R.prop('hierarchicalId', parentId)),\n items.indexedItemsById,\n );\n if (parent) {\n return findParents(parent, [parent, ...acc]);\n }\n }\n return acc;\n };\n const descendants = getDescendants(getHierarchicalId(item), items.groupedItemsByParentId);\n const parents = findParents(item);\n const res = R.reject(R.prop('isDisabled'), R.prepend(item, [...parents, ...descendants]));\n return res;\n },\n level: items => item => {\n const indexed = items.indexedItemsById;\n const depth = getDepth(indexed)(item);\n return R.filter(\n it => !R.prop('isDisabled', it) && getDepth(indexed)(it) === depth,\n R.values(indexed),\n );\n },\n};\n\nexport const getImposedItems = (selectIds, indexedItems) => selectedItems =>\n R.reduce(\n (acc, item) => {\n const isSelected = isItemSelected(selectIds)(item);\n if (!isSelected) {\n const imposedIds = R.pipe(\n R.filter(i => i.id === item.id),\n R.map(R.propOr([], 'imposedIds')),\n R.unnest,\n )(R.values(indexedItems));\n const imposedItems = R.props(imposedIds, indexedItems);\n return R.concat(acc, R.append(item, imposedItems));\n }\n return R.append(item, acc);\n },\n [],\n selectedItems,\n );\n","import React from 'react';\nimport * as R from 'ramda';\nimport ListItem from '@mui/material/ListItem';\nimport Typography from '@mui/material/Typography';\nimport ListItemText from '@mui/material/ListItemText';\nimport IconButton from '@mui/material/IconButton';\nimport SvgIcon from '@mui/material/SvgIcon';\nimport { CheckBoxOutlineBlankOutlined, CheckBoxOutlined } from '@mui/icons-material';\nimport cx from 'classnames';\nimport { Tooltip } from '../Tooltip/Tooltip';\nimport useKeyboardEscapeHandler from '../hooks/useKeybordEscapeHandler';\n\nconst Item = ({\n classes,\n id,\n label,\n description = '',\n isSelected,\n isDisabled,\n isGreyed,\n changeList,\n ariaLabel,\n NavigateIcon,\n hasChild,\n hasChildrenOnLevel,\n count,\n svgPath,\n style,\n isRtl,\n accessibility,\n HTMLRenderer,\n hierarchicalId,\n labels,\n depth = 0,\n eventsListeners,\n expanded,\n highlightedLabel,\n}) => {\n const { open, setOpen } = useKeyboardEscapeHandler();\n const padding =\n depth * 30 +\n (depth > 0 && !hasChildrenOnLevel ? 30 : 0) +\n (!hasChild && hasChildrenOnLevel ? 30 : 0);\n\n const formattedLabel = highlightedLabel ? (\n <div dangerouslySetInnerHTML={{ __html: highlightedLabel }} />\n ) : (\n label\n );\n return (\n <ListItem\n dense\n disableGutters\n classes={{ disabled: classes.disabled }}\n className={cx(classes.listItemContainer, classes.disableSecondaryAction)}\n tabIndex={-1}\n style={{\n ...style,\n flexDirection: isRtl ? 'row-reverse' : 'row',\n [`${isRtl ? 'paddingRight' : 'paddingLeft'}`]: `${padding}px`,\n }}\n role=\"listitem\"\n >\n {R.and(NavigateIcon, hasChild) && (\n <IconButton\n disableRipple\n disableFocusRipple\n className={classes.arrow}\n aria-label={ariaLabel}\n tabIndex={0}\n size=\"small\"\n color=\"primary\"\n onClick={() => changeList(hierarchicalId || id)}\n aria-expanded={expanded}\n >\n <NavigateIcon />\n </IconButton>\n )}\n <ListItemText\n data-testid={`value_${id}`}\n tabIndex={0}\n role=\"checkbox\"\n aria-label={isGreyed ? `${R.propOr('', 'disableItemLabel')(labels)} ${label}` : label}\n aria-checked={isSelected}\n aria-disabled={isDisabled}\n primaryTypographyProps={{ noWrap: true, color: 'inherit' }}\n secondaryTypographyProps={{ color: 'inherit' }}\n classes={{ root: classes.listItem }}\n className={cx({\n [classes.accessibilityItemHover]: accessibility,\n [classes.listItemSelected]: isSelected,\n [classes.listItemHover]: !isDisabled,\n })}\n onKeyDown={isDisabled ? null : eventsListeners.onKeyDown}\n onClick={isDisabled ? null : eventsListeners.onClick}\n onMouseDown={isDisabled || open ? null : eventsListeners.onMouseDown}\n onMouseEnter={isDisabled || open ? null : eventsListeners.onMouseEnter}\n title={isGreyed ? `${R.propOr('', 'disableItemLabel')(labels)} ${label}` : label}\n style={{\n outline: accessibility ? undefined : 'none',\n }}\n primary={\n <div\n className={cx(classes.labelContainer, {\n [classes.rtlLabelContainer]: isRtl,\n })}\n >\n <SvgIcon\n color=\"primary\"\n className={cx(classes.labelIcon, { [classes.disabledLabel]: isDisabled })}\n >\n {isSelected ? <CheckBoxOutlined /> : <CheckBoxOutlineBlankOutlined />}\n </SvgIcon>\n {svgPath && (\n <SvgIcon\n color=\"primary\"\n className={cx(classes.labelIcon, {\n [classes.disabledLabel]: isDisabled,\n })}\n >\n <path d={svgPath} />\n </SvgIcon>\n )}\n <Tooltip\n title={\n R.or(R.isNil(HTMLRenderer), R.isEmpty(description)) ? (\n description\n ) : (\n <HTMLRenderer html={description} onClick={e => e.stopPropagation()} />\n )\n }\n enterDelay={400}\n enterNextDelay={400}\n tabIndex={description ? 0 : -1}\n aria-label={description}\n aria-hidden={false}\n placement=\"top\"\n disableInteractive={Boolean(HTMLRenderer) === false}\n onOpen={() => setOpen(true)}\n onClose={() => setOpen(false)}\n disableHoverListener={R.isEmpty(description)}\n open={open}\n >\n <Typography\n color=\"inherit\"\n variant=\"body2\"\n className={cx(classes.label, {\n [classes.disabledLabel]: isGreyed,\n [classes.tooltipNotice]: !R.isEmpty(description),\n })}\n >\n {formattedLabel}\n </Typography>\n </Tooltip>\n {R.not(R.isNil(count)) && (\n <Typography variant=\"body2\" className={classes.count}>\n ({count})\n </Typography>\n )}\n </div>\n }\n />\n </ListItem>\n );\n};\n\nexport default Item;\n","import makeStyles from '@mui/styles/makeStyles';\nexport const height = 30;\n\nexport const useStyles = makeStyles(theme => ({\n middle: {\n margin: 'auto 0',\n },\n selectionContainer: {\n margin: theme.spacing(1),\n },\n containerHeader: {\n borderBottom: `6px solid ${theme.palette.grey[100]}`,\n marginBottom: '1px',\n },\n listItemContainer: {\n height,\n paddingRight: 36,\n outline: 'none',\n marginBottom: '1px',\n },\n listItem: {\n height,\n display: 'flex',\n flexDirection: 'column-reverse',\n justifyContent: 'center',\n margin: 0,\n userSelect: 'none',\n cursor: 'pointer',\n color: theme.palette.primary.main,\n },\n listItemHover: {\n '&:hover': {\n color: theme.palette.primary.main,\n backgroundColor: theme.palette.action.hover,\n },\n },\n accessibilityItemHover: {\n '&:focus': {\n backgroundColor: theme.palette.action.selected,\n },\n },\n listItemSelected: {\n backgroundColor: theme.palette.action.hover,\n '&:hover': {\n backgroundColor: theme.palette.action.selected,\n },\n },\n disableSecondaryAction: {\n paddingRight: '0 !important',\n },\n spaceHeader: {\n margin: theme.spacing(1, 0),\n lineHeight: 1,\n },\n spotlightContainer: {\n display: 'flex',\n },\n labelContainer: {\n width: '100%',\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'baseline',\n },\n rtlLabelContainer: {\n flexDirection: 'row-reverse',\n },\n count: {\n color: theme.palette.grey[800],\n margin: theme.spacing(0, 0.25),\n fontSize: 11,\n },\n path: {\n color: theme.palette.grey[600],\n marginLeft: theme.spacing(1),\n fontSize: 11,\n },\n label: {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n marginLeft: theme.spacing(1),\n },\n labelIcon: {\n fontSize: 16,\n marginLeft: theme.spacing(0.5),\n alignSelf: 'center',\n },\n disabled: {\n pointerEvents: 'initial !important',\n },\n disabledLabel: {\n color: theme.palette.grey[700],\n },\n ellipsis: {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n },\n svg: {\n verticalAlign: 'bottom',\n fontSize: '1.25rem',\n },\n arrowHeader: {\n color: theme.palette.grey[800],\n },\n headerItem: {\n display: 'inline',\n cursor: 'pointer',\n userSelect: 'none',\n height: 'unset',\n minHeight: 25,\n padding: theme.spacing(0.25, 0.5),\n borderBottom: 'dotted 1px',\n verticalAlign: 'text-bottom',\n '&:hover, &:focus': {\n backgroundColor: theme.palette.action.hover,\n },\n },\n containerArrow: {\n paddingLeft: 4,\n borderLeft: `1px solid ${theme.palette.grey[800]}`,\n color: theme.palette.primary.main,\n height: '100%',\n display: 'flex',\n '&:hover, &:focus': {\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.common.white,\n },\n },\n arrow: {\n marginTop: 2,\n '&:hover': {\n backgroundColor: 'transparent',\n },\n },\n bulkSelectionIcon: {\n minWidth: 50,\n },\n tooltipNotice: {\n textDecoration: 'underline dotted',\n },\n}));\n","import React, { useRef, useEffect, useState, useMemo } from 'react';\nimport * as R from 'ramda';\nimport _AutoSizer from 'react-virtualized/dist/commonjs/AutoSizer';\nimport _VirtualizedList from 'react-virtualized/dist/commonjs/List';\nimport { ExpandLess, ExpandMore } from '@mui/icons-material';\nimport Item from './Item';\nimport { useTheme } from '@mui/material';\nimport { useStyles, height as rowHeight } from '../ScopeList/styles';\nimport {\n getDepth,\n getHierarchicalId,\n isItemSelected as _isItemSelected,\n getDeprecatedIds,\n getDuplicates,\n getImposedItems,\n} from './utils';\nimport { getIsRtl } from '../utils';\n\nconst AutoSizer = _AutoSizer.default || _AutoSizer;\nconst VirtualizedList = _VirtualizedList.default || _VirtualizedList;\n\nconst singleScopeGetter = () => item => [item];\n\nexport const getDisplayedIds = (items, grouped, expanded) =>\n R.pipe(\n R.map(item => {\n const hierarchicalId = getHierarchicalId(item);\n if (R.has(hierarchicalId, grouped) && R.has(hierarchicalId, expanded)) {\n const children = getDisplayedIds(R.prop(hierarchicalId, grouped), grouped, expanded);\n return R.prepend(hierarchicalId, children);\n }\n return [hierarchicalId];\n }),\n R.unnest,\n )(items);\n\nexport const getHasChildrenOnLevel = groupedItems => item => {\n if (R.has(getHierarchicalId(item), groupedItems)) {\n return true;\n }\n return R.pipe(\n R.prop(R.propOr('#ROOT', 'parentId', item)),\n R.find(it => R.has(getHierarchicalId(it), groupedItems)),\n R.complement(R.isNil),\n )(groupedItems);\n};\n\nexport const VirtualizedTree = props => {\n const {\n accessibility,\n changeSelection,\n HTMLRenderer,\n items,\n labelRenderer,\n labels,\n disableAccessor = R.always(false),\n isGreyed = R.always(false),\n expandedIds,\n expand,\n collapse,\n maxTreeHeight = 250,\n scopeGetter = singleScopeGetter,\n treeHeight = 0,\n simpleSelectionMode = false,\n } = props;\n const theme = useTheme();\n const [scrollTop, setScrollTop] = useState(undefined);\n const [shiftIndexes, setShiftIndexes] = useState([]);\n const [isMouseDown, setIsMouseDown] = useState(false);\n const [lastItemId, setLastItemId] = useState(null);\n const [selectIds, setSelectIds] = useState({});\n\n const { indexedItemsById, groupedItemsByParentId } = useMemo(() => {\n const refinedItems = R.map(\n item => ({\n ...item,\n isSelected: _isItemSelected(selectIds)(item),\n isGreyed: R.is(Function, isGreyed) ? isGreyed(item) : false,\n isDisabled: R.is(Function, disableAccessor) ? disableAccessor(item, selectIds) : false,\n }),\n items,\n );\n const indexedItemsById = R.indexBy(getHierarchicalId, refinedItems);\n const groupedItemsByParentId = R.groupBy(R.propOr('#ROOT', 'parentId'), refinedItems);\n return { indexedItemsById, groupedItemsByParentId };\n }, [items, selectIds]);\n const list = useMemo(\n () =>\n getDisplayedIds(\n R.propOr([], '#ROOT', groupedItemsByParentId),\n groupedItemsByParentId,\n expandedIds,\n ),\n [items, expandedIds],\n );\n\n const getItemScope = scopeGetter({ indexedItemsById, groupedItemsByParentId });\n\n const isItemSelected = _isItemSelected(selectIds);\n\n const multiSelect = id => {\n const item = R.prop(id, indexedItemsById);\n let ids = R.pipe(\n getItemScope,\n getImposedItems(selectIds, indexedItemsById),\n R.filter(v => v.isSelected === item.isSelected),\n items => getDuplicates(items, indexedItemsById),\n R.map(getHierarchicalId),\n )(item);\n\n if (isItemSelected(item)) {\n const deprecatedIds = getDeprecatedIds(\n ids,\n { indexedItemsById, groupedItemsByParentId },\n selectIds,\n );\n ids = R.concat(ids, deprecatedIds);\n }\n\n if (R.has(id, selectIds)) {\n setSelectIds(R.omit(ids, selectIds));\n } else {\n setSelectIds({ ...selectIds, ...R.indexBy(R.identity, ids) });\n setLastItemId(id);\n }\n };\n const shiftSelect = index => {\n const selectRange = (indexes, isSelected) => {\n const _selectIds = R.pipe(\n R.slice(Math.min(...indexes), Math.max(...indexes) + 1),\n ids => R.props(ids, indexedItemsById),\n R.map(getItemScope),\n R.unnest,\n R.filter(v => v.isSelected === isSelected),\n R.map(getHierarchicalId),\n R.indexBy(R.identity),\n )(list);\n setShiftIndexes(indexes);\n setSelectIds(_selectIds);\n };\n if (R.isEmpty(shiftIndexes)) {\n const item = R.pipe(R.nth(index), id => R.prop(id, indexedItemsById))(list);\n if (!R.isNil(lastItemId)) {\n const lastItem = R.prop(lastItemId, indexedItemsById);\n const lastItemIndex = R.findIndex(v => v === lastItem.id, list);\n if (lastItem.isSelected !== item.isSelected && lastItemIndex !== -1) {\n selectRange([lastItemIndex, index], item.isSelected);\n return;\n }\n }\n const ids = R.pipe(\n getItemScope,\n R.filter(v => v.isSelected === item.isSelected),\n R.map(getHierarchicalId),\n R.indexBy(R.identity),\n )(item);\n setShiftIndexes(R.append(index, shiftIndexes));\n setSelectIds(ids);\n } else if (R.length(shiftIndexes) === 1 && index === R.head(shiftIndexes)) {\n setShiftIndexes([]);\n setSelectIds({});\n } else {\n const firstItem = R.pipe(R.nth(R.head(shiftIndexes)), id => R.prop(id, indexedItemsById))(\n list,\n );\n selectRange([R.head(shiftIndexes), index], firstItem.isSelected);\n }\n };\n const apply = () => {\n if (!R.isEmpty(selectIds)) {\n const ids = R.values(selectIds);\n const selection = R.pipe(R.props(ids), R.pluck('id'), R.uniq)(indexedItemsById);\n changeSelection(selection);\n setShiftIndexes([]);\n setSelectIds({});\n setIsMouseDown(false);\n }\n };\n\n const onMouseUp = e => {\n if (!isMouseDown) {\n return;\n }\n e.preventDefault();\n apply();\n setIsMouseDown(false);\n };\n\n const onMouseLeave = () => {\n if (isMouseDown) {\n apply();\n }\n };\n\n const onKeyUp = e => {\n e.preventDefault();\n if (e.key === 'Shift' && !R.isEmpty(shiftIndexes)) {\n apply();\n } else if (e.key === 'Control' && !R.isEmpty(selectIds)) {\n apply();\n } else if (e.key === 'Enter' && !R.isNil(lastItemId)) {\n apply();\n }\n };\n\n const itemEventsListeners = (id, index) => ({\n onMouseDown: e => {\n if (!simpleSelectionMode && (e.ctrlKey || e.shiftKey)) {\n return;\n }\n setIsMouseDown(true);\n multiSelect(id);\n },\n onMouseEnter: e => {\n e.preventDefault();\n if (!isMouseDown || simpleSelectionMode || e.ctrlKey || e.shiftKey) {\n return;\n }\n multiSelect(id);\n setLastItemId(id);\n },\n onKeyDown: e => {\n if (e.key === 'Enter') {\n multiSelect(id);\n setLastItemId(id);\n }\n },\n onClick: e => {\n e.preventDefault();\n if (e.ctrlKey && !simpleSelectionMode) {\n multiSelect(id);\n } else if (e.shiftKey && !simpleSelectionMode) {\n shiftSelect(index);\n } else {\n setIsMouseDown(false);\n setLastItemId(id);\n }\n },\n });\n const ref = useRef();\n const classes = useStyles();\n useEffect(() => {\n const current = ref.current;\n const handler = event => {\n if (R.or(event.ctrlKey, event.shiftKey)) {\n // ugly hack, to get div element created by react-virtuliase (get scroll height)\n // ReactVirtualized__Grid ReactVirtualized__List made the scrollbar\n const scrollEl = R.path(['children', 0, 'children', 0], current);\n const isBottom = R.gte(\n R.add(R.prop('scrollTop')(scrollEl), R.prop('clientHeight')(scrollEl)),\n R.prop('scrollHeight')(scrollEl),\n );\n const nextpos = (scrollTop || scrollEl.scrollTop) + event.deltaY / 2;\n if (R.or(event.deltaY < 0, event.deltaY > 0 && R.not(isBottom))) {\n setScrollTop(nextpos < 0 ? 0 : nextpos);\n }\n event.preventDefault();\n }\n if (R.not(event.ctrlKey) && R.not(event.shiftKey)) {\n setScrollTop(undefined); // should be undefined if the user want use the normal scroll\n }\n };\n if (scrollTop === 0) {\n setScrollTop(undefined);\n }\n if (R.isNil(current)) return;\n current.addEventListener('wheel', handler, { passive: false });\n return () => {\n current.removeEventListener('wheel', handler, { passive: false });\n };\n }, [scrollTop]);\n const maxHeight =\n treeHeight === 0\n ? R.pipe(\n R.length,\n R.multiply(rowHeight),\n R.ifElse(R.gt(maxTreeHeight), R.add(10), R.always(maxTreeHeight)),\n )(list)\n : treeHeight;\n\n if (R.isEmpty(list)) {\n return null;\n }\n const isRtl = getIsRtl(theme);\n return (\n <div\n style={{ height: maxHeight }}\n onKeyUp={onKeyUp}\n onMouseUp={onMouseUp}\n onMouseLeave={onMouseLeave}\n ref={ref}\n role=\"presentation\"\n >\n <AutoSizer disableWidth>\n {({ height }) => (\n <VirtualizedList\n containerRole=\"list\"\n role=\"presentation\"\n overscan={10}\n tabIndex={-1}\n containerStyle={{ width: '100%', maxWidth: '100%' }}\n height={height + 2}\n width={1}\n style={{ width: '100%' }}\n scrollTop={scrollTop} // control scroll position with ctrl or shift key\n rowCount={R.length(list)}\n rowHeight={R.add(1)(rowHeight)} // 1 is space between elements\n rowRenderer={({ index, style }) => {\n const itemId = R.nth(index, list);\n const item = R.prop(itemId, indexedItemsById);\n return (\n <Item\n {...item}\n id={getHierarchicalId(item)}\n label={labelRenderer(item)}\n key={getHierarchicalId(item)}\n depth={getDepth(indexedItemsById)(item)}\n hasChild={R.has(itemId, groupedItemsByParentId)}\n hasChildrenOnLevel={getHasChildrenOnLevel(groupedItemsByParentId)(item)}\n changeList={\n R.has(itemId, expandedIds)\n ? () => collapse(getHierarchicalId(item))\n : () => expand(getHierarchicalId(item))\n }\n NavigateIcon={R.has(itemId, expandedIds) ? ExpandLess : ExpandMore}\n expanded={R.has(itemId, expandedIds)}\n isRtl={isRtl}\n eventsListeners={itemEventsListeners(getHierarchicalId(item), index)}\n HTMLRenderer={HTMLRenderer}\n classes={classes}\n labels={labels}\n style={style}\n accessibility={accessibility}\n ariaLabel={R.prop('navigateNext')(labels)}\n theme={theme}\n />\n );\n }}\n />\n )}\n </AutoSizer>\n </div>\n );\n};\n","/* eslint react/prop-types: 0 */\nimport React, { useState, useEffect } from 'react';\nimport * as R from 'ramda';\nimport { getHierarchicalId } from './utils';\n\nexport const withExpansionTree =\n Component =>\n ({ items, defaultExpandedIds, ...rest }) => {\n const [expandedIds, setExpandedIds] = useState({});\n const [itemsIds, setItemsIds] = useState([]);\n\n useEffect(() => {\n const ids = R.map(getHierarchicalId, items);\n if (!R.isEmpty(R.symmetricDifference(ids, itemsIds))) setItemsIds(ids);\n }, [items]);\n\n useEffect(() => {\n setExpandedIds(R.indexBy(R.identity, itemsIds));\n }, [itemsIds]);\n\n useEffect(() => {\n if (!R.isNil(defaultExpandedIds)) {\n setExpandedIds(defaultExpandedIds);\n }\n }, [defaultExpandedIds]);\n\n const expand = id => {\n setExpandedIds(R.assoc(id, id, expandedIds));\n };\n\n const collapse = id => {\n setExpandedIds(R.dissoc(id, expandedIds));\n };\n\n const expandAll = () => {\n setExpandedIds(R.indexBy(R.identity, itemsIds));\n };\n\n const collapseAll = () => {\n setExpandedIds({});\n };\n\n return (\n <Component\n {...rest}\n items={items}\n expand={expand}\n collapse={collapse}\n expandAll={expandAll}\n collapseAll={collapseAll}\n expandedIds={expandedIds}\n />\n );\n };\n","/* eslint react/prop-types: 0 */\nimport * as R from 'ramda';\nimport React, { useEffect, useMemo, useState } from 'react';\nimport { getDescendants, getHierarchicalId } from './utils';\nimport { prepareTerm, searchTerm } from '../utils';\n\nexport const spotlightFilter =\n (term, labelRenderer = R.prop('label'), displayChildren = false) =>\n items => {\n if (R.isEmpty(term) || R.isNil(term)) {\n return items;\n }\n\n const groupedItemsByParentId = R.groupBy(R.propOr('#ROOT', 'parentId'), items);\n\n const findParents = (item, acc = []) => {\n const parentId = R.prop('parentId', item);\n if (parentId && parentId !== '#ROOT') {\n const parent = R.find(\n R.either(R.propEq('id', parentId), R.propEq('hierarchicalId', parentId)),\n items,\n );\n if (parent) {\n return findParents(parent, [parent, ...acc]);\n }\n }\n return acc;\n };\n\n // Highlight matching terms in the label\n const highlightLabel = label => {\n const i = prepareTerm(label).indexOf(prepareTerm(term));\n const l = R.length(term);\n\n const pre = label.slice(0, i);\n const match = label.slice(i, i + l);\n const post = label.slice(i + l);\n\n return `${pre}<span style=background-color:yellow;border-bottom:2px solid #8CC841>${match}</span>${post}`;\n };\n\n const recurse = item => {\n const label = labelRenderer(item);\n const isValidItem = searchTerm(term);\n\n let result = [];\n\n if (isValidItem(label)) {\n const highlightedLabel = highlightLabel(label);\n const parents = findParents(item);\n result = [...parents, { ...item, highlightedLabel }];\n\n if (displayChildren) {\n const children = getDescendants(getHierarchicalId(item), groupedItemsByParentId);\n const highlightedChildren = R.map(child => {\n const labelChild = labelRenderer(child);\n return isValidItem(labelChild)\n ? { ...child, highlightedLabel: highlightLabel(labelChild) }\n : child;\n })(children);\n return [...parents, { ...item, highlightedLabel }, ...highlightedChildren];\n }\n }\n\n if (R.has(getHierarchicalId(item), groupedItemsByParentId)) {\n const childItems = groupedItemsByParentId[getHierarchicalId(item)] || [];\n const matchingChildren = R.chain(recurse, childItems);\n\n // res with any matching children\n return R.uniq([...result, ...matchingChildren]);\n }\n return result;\n };\n\n return R.uniqBy(getHierarchicalId)(R.chain(recurse, groupedItemsByParentId['#ROOT'] || []));\n };\n\nexport const withSpotlight =\n Component =>\n ({ items, defaultSpotlight, labelRenderer, displayChildren, ...rest }) => {\n const [{ term }, setSpotlight] = useState({ term: '' });\n useEffect(() => {\n if (!R.isNil(defaultSpotlight) && !R.isEmpty(defaultSpotlight)) {\n setSpotlight(defaultSpotlight);\n }\n }, [defaultSpotlight]);\n\n const filteredItems = useMemo(\n () => spotlightFilter(term, labelRenderer, displayChildren)(items),\n [term, items, labelRenderer],\n );\n\n return (\n <Component\n {...rest}\n allItems={items}\n items={filteredItems}\n labelRenderer={labelRenderer}\n hasSpotlight={R.length(items) >= 8}\n spotlight={{ term }}\n setSpotlight={setSpotlight}\n />\n );\n };\n"],"names":["_isItemSelected","indexedItemsById","groupedItemsByParentId","isItemSelected","items","rowHeight","height"],"mappings":"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"}
|