@sis-cc/dotstatsuite-visions 15.14.0 → 15.16.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/CollapseButtons/CollapseButtons.js +14 -12
- package/dist/CollapseButtons/CollapseButtons.js.map +1 -1
- package/dist/DynamicDrawer/DynamicDrawer.js +77 -32
- package/dist/DynamicDrawer/DynamicDrawer.js.map +1 -1
- package/dist/assets/{Alert-CtMJl0ZI.js → Alert-IPQAoHYr.js} +1 -1
- package/dist/assets/Alert.stories-Y8v0avYW.js +3 -0
- package/dist/assets/{ApiQueries.stories-BoEfZfd9.js → ApiQueries.stories-CvzlPUH7.js} +1 -1
- package/dist/assets/ArrowForward-Ds3Q_qYA.js +1 -0
- package/dist/assets/{Asterisk-Chkkty0y.js → Asterisk-BQwBWYq7.js} +1 -1
- package/dist/assets/{AuthDialog.stories-BsjMz-D1.js → AuthDialog.stories-DTafhjap.js} +1 -1
- package/dist/assets/{Box-BY_bjpNR.js → Box-DjtPY7HN.js} +1 -1
- package/dist/assets/{Breadcrumbs.stories-BZAdpNLJ.js → Breadcrumbs.stories-JY6mqWA_.js} +1 -1
- package/dist/assets/{Button-CGsC-S_2.js → Button-BItbgchF.js} +1 -1
- package/dist/assets/{Button-DEF1LF9i.js → Button-zXjf4--a.js} +1 -1
- package/dist/assets/{Button.stories-AEkx2Li4.js → Button.stories-Rn61G6wE.js} +1 -1
- package/dist/assets/{ButtonBase-BkXzX1bG.js → ButtonBase-B89-wwNH.js} +1 -1
- package/dist/assets/{CardContent-DEvOYWj3.js → CardContent-BsjVCg9y.js} +1 -1
- package/dist/assets/{ChartsConfig.stories-BFpZbwe7.js → ChartsConfig.stories-kksoy8uF.js} +1 -1
- package/dist/assets/{Checkbox-6BnwOx8T.js → Checkbox-Bcv783w_.js} +1 -1
- package/dist/assets/{Chips.stories-Bu5B6zz8.js → Chips.stories-CPzu8Koh.js} +1 -1
- package/dist/assets/{CircularProgress-CiseJonC.js → CircularProgress-wZe6Fk-_.js} +1 -1
- package/dist/assets/Close-uRF-qXjR.js +1 -0
- package/dist/assets/{Collapse-TMEEfKx2.js → Collapse-bvNG888p.js} +1 -1
- package/dist/assets/CollapseButtons.stories-CJ1iyTtn.js +1 -0
- package/dist/assets/{CollapsibleTree.stories-BLZngXUv.js → CollapsibleTree.stories-B-9OcxY7.js} +1 -1
- package/dist/assets/{Color-6AOWCN3U-CE7hIZ7C.js → Color-6AOWCN3U-BpDp9H_j.js} +1 -1
- package/dist/assets/{Contact.stories-DllCm0N6.js → Contact.stories-CJ244QB5.js} +1 -1
- package/dist/assets/{Container-DbnsEhu6.js → Container-7W7TDD3R.js} +1 -1
- package/dist/assets/{Cross-CFJ--hO3.js → Cross-BQTseYTV.js} +1 -1
- package/dist/assets/{CustomChip-iEEuWabq.js → CustomChip-CgVbfDkW.js} +1 -1
- package/dist/assets/{DataEdit-BGb9DooX.js → DataEdit-Dj7fvNmU.js} +1 -1
- package/dist/assets/DataEdit.stories-5h5k6Qpy.js +1 -0
- package/dist/assets/{DataFooter.stories-VjqFFfnD.js → DataFooter.stories-aP4ncKJy.js} +1 -1
- package/dist/assets/{DataHeader.stories-DiaWqX3-.js → DataHeader.stories-Ca4xTF8w.js} +1 -1
- package/dist/assets/{Dataflow.stories-Dk88CTWu.js → Dataflow.stories-DSaNk7pn.js} +1 -1
- package/dist/assets/{DeleteAllChip.stories-CKozCO5D.js → DeleteAllChip.stories-C2--_3z-.js} +1 -1
- package/dist/assets/{Dialog-DNrJEP0H.js → Dialog-CPJ45lOb.js} +1 -1
- package/dist/assets/{Divider-DMGKzLi0.js → Divider-Dltndy7b.js} +1 -1
- package/dist/assets/{DocsRenderer-JROSPFPF-DBOhd8Kg.js → DocsRenderer-JROSPFPF-DPJkkcm5.js} +5 -5
- package/dist/assets/Done-T4hYmIBj.js +1 -0
- package/dist/assets/DynamicDrawer.stories-CKwhV8-z.js +37 -0
- package/dist/assets/{EmojiObjects-Ckwk51Jg.js → EmojiObjects-DO_8zmV4.js} +1 -1
- package/dist/assets/ExpandLess-CGbPBPpS.js +1 -0
- package/dist/assets/ExpandMore-Dv7EiJW3.js +1 -0
- package/dist/assets/{ExpansionPanel-D6DABXqI.js → ExpansionPanel-BlnvG4xS.js} +1 -1
- package/dist/assets/ExpansionPanel.stories-Ce6UXPmu.js +1 -0
- package/dist/assets/{FormControlLabel-CcnKQNmx.js → FormControlLabel-DSDMjmD2.js} +1 -1
- package/dist/assets/{Grid-Blm23c8Z.js → Grid-VSLJzrv2.js} +1 -1
- package/dist/assets/{GroupedChips.stories-CDVqm2sQ.js → GroupedChips.stories-D2bjPdLa.js} +1 -1
- package/dist/assets/{Grow-C-wuYi6h.js → Grow-DXPF28Tq.js} +1 -1
- package/dist/assets/{HierarchicalFilter.stories-RvCcGQFT.js → HierarchicalFilter.stories-BUTqxM27.js} +1 -1
- package/dist/assets/{IconButton-B5lp8oB8.js → IconButton-Bu2NCjQA.js} +1 -1
- package/dist/assets/Info-BoEqoVQD.js +1 -0
- package/dist/assets/{Input-B1UxJjWU.js → Input-CIxBn0gc.js} +1 -1
- package/dist/assets/Input.stories-ChcL1rg6.js +1 -0
- package/dist/assets/{InputAdornment-2mnhakZy.js → InputAdornment-CbyM--ln.js} +1 -1
- package/dist/assets/{InputNumber.stories-CVqwmd1H.js → InputNumber.stories-FqeCYGF4.js} +1 -1
- package/dist/assets/{KeyboardArrowUp-B4PD9IEI.js → KeyboardArrowUp-942sHLgR.js} +1 -1
- package/dist/assets/{LabelDivider.stories-BNWqxFIj.js → LabelDivider.stories-BlbIqP-C.js} +1 -1
- package/dist/assets/Lens-C5dL2pNG.js +1 -0
- package/dist/assets/{Link-jXnjwo7X.js → Link-C37Mzttm.js} +1 -1
- package/dist/assets/ListContext-G38OoGJX.js +1 -0
- package/dist/assets/{Loading.stories-D_-Ys7R-.js → Loading.stories-DGgO8-e6.js} +1 -1
- package/dist/assets/{Logo.stories-BoPlv_hf.js → Logo.stories-BJEpRVWi.js} +1 -1
- package/dist/assets/{MenuItem-nGNTVxW_.js → MenuItem-DKGed2cB.js} +1 -1
- package/dist/assets/{Mode-CWRRVkzs.js → Mode-kOEyckAB.js} +1 -1
- package/dist/assets/Mode.stories-BweAZHP6.js +1 -0
- package/dist/assets/{NoData-Da5zmwKG.js → NoData-B381yhis.js} +1 -1
- package/dist/assets/NoData.stories-C5FPA8ih.js +1 -0
- package/dist/assets/{Pagination.stories-BvAGBaOV.js → Pagination.stories-C5SVceYh.js} +1 -1
- package/dist/assets/{Paper-C7oE1m6r.js → Paper-CjMptIvz.js} +1 -1
- package/dist/assets/{PeriodPicker.stories-VCvL1CKK.js → PeriodPicker.stories-BmYPdyaQ.js} +1 -1
- package/dist/assets/{Popover-CmuJCs_s.js → Popover-C31E74vG.js} +1 -1
- package/dist/assets/{RadioGroup-B8TeMiN3.js → RadioGroup-C__XJsUJ.js} +1 -1
- package/dist/assets/{Select-RkiIRX8A.js → Select--vT737ku.js} +1 -1
- package/dist/assets/{Select-CLL4LsMb.js → Select-ZNVOKOGO.js} +1 -1
- package/dist/assets/Select.stories-ap6_1xEg.js +1 -0
- package/dist/assets/{Share.stories-C2Bvc4G1.js → Share.stories-CdabOE2M.js} +1 -1
- package/dist/assets/{ShortUrls.stories-8Z7l4-94.js → ShortUrls.stories-z9AIq5ut.js} +1 -1
- package/dist/assets/{SisccFooter.stories-J1659skk.js → SisccFooter.stories-DWtNytK9.js} +1 -1
- package/dist/assets/{Spotlight-BfcbFpvA.js → Spotlight-BxwULrxo.js} +1 -1
- package/dist/assets/Spotlight.stories-DxwUUoNf.js +1 -0
- package/dist/assets/{SvgIcon-B-eqM-E3.js → SvgIcon-DNfGjVPv.js} +1 -1
- package/dist/assets/{SwitchBase-D5jw7pDZ.js → SwitchBase-CGXrI5-T.js} +1 -1
- package/dist/assets/{TableFooter.stories-ZeV3aLLJ.js → TableFooter.stories-CjWtNvoS.js} +1 -1
- package/dist/assets/{TableHeader.stories-DLH3Sy1Z.js → TableHeader.stories-dr1wtFBR.js} +1 -1
- package/dist/assets/{TableHtml5.stories-DIH-tI4V.js → TableHtml5.stories-Ce7LaKB_.js} +1 -1
- package/dist/assets/{TableLayout.stories-DWWkFiaS.js → TableLayout.stories-DRZLn8g7.js} +1 -1
- package/dist/assets/{TablePreview-99pKoibu.js → TablePreview-xyuhKp-o.js} +1 -1
- package/dist/assets/{TablePreview.stories-Bdx8-11F.js → TablePreview.stories-BtWlbbyH.js} +1 -1
- package/dist/assets/{TableRow-CqYJcnsQ.js → TableRow-BRSe7vYU.js} +1 -1
- package/dist/assets/{Tag-d88BQdeA.js → Tag-DTtmGZ-8.js} +1 -1
- package/dist/assets/{Tag.stories-CUUl90sm.js → Tag.stories-C8Ogmy56.js} +1 -1
- package/dist/assets/{TextField-Du2Fdfnu.js → TextField-DBYQPAJN.js} +1 -1
- package/dist/assets/{TextareaAutosize-DZAjjhX5.js → TextareaAutosize-C8ucbrk0.js} +1 -1
- package/dist/assets/{ToggleButton-CtB4NhB4.js → ToggleButton-CniKq3RY.js} +1 -1
- package/dist/assets/ToggleButton.stories-CRGiraSc.js +1 -0
- package/dist/assets/{Tooltip-T-5XcrTX.js → Tooltip-CdHmozSP.js} +1 -1
- package/dist/assets/{Tooltip-BR9gEJDr.js → Tooltip-vqeY087-.js} +1 -1
- package/dist/assets/Tooltip.stories-DeG8jNYP.js +1 -0
- package/dist/assets/{TransitionGroupContext-CgOfs0dR.js → TransitionGroupContext-BAmPiltF.js} +1 -1
- package/dist/assets/{Typography-8VV_MbT6.js → Typography-DQrJfGLV.js} +1 -1
- package/dist/assets/{UserRightForm.stories-tzAgjU51.js → UserRightForm.stories-CfFvSyj5.js} +1 -1
- package/dist/assets/{VerticalButton-Dp2CUTPO.js → VerticalButton-XHBSoGbw.js} +1 -1
- package/dist/assets/VerticalButton.stories-DesTkuwF.js +1 -0
- package/dist/assets/{VirtualizedTree-BGR-Z0wZ.js → VirtualizedTree-D4J5Y0jb.js} +1 -1
- package/dist/assets/{VirtualizedTree.stories-DdNplsqV.js → VirtualizedTree.stories-KbqtRhdR.js} +1 -1
- package/dist/assets/{Warning-CFzVxgpX.js → Warning-DNqTFfps.js} +1 -1
- package/dist/assets/{WithTooltip-7X4HQR7L-Bv_C7yqk.js → WithTooltip-7X4HQR7L-D-jkQgmd.js} +1 -1
- package/dist/assets/{axe-DFQ6Oe3L.js → axe-BoL0gtaE.js} +1 -1
- package/dist/assets/{client-CY5XkToe.js → client-uzJZgENy.js} +1 -1
- package/dist/assets/{colorManipulator-C2Wob2Mt.js → colorManipulator-BmLcJd1B.js} +1 -1
- package/dist/assets/{createSvgIcon-BEYF_RRB.js → createSvgIcon-Cpgf49FH.js} +1 -1
- package/dist/assets/{dividerClasses-BTVF98sm.js → dividerClasses-at713CFU.js} +1 -1
- package/dist/assets/{formControlState-DM_xOeOK.js → formControlState-CrM6jhOj.js} +1 -1
- package/dist/assets/formatter-L2YTDE3Q-COZI1L4A.js +1 -0
- package/dist/assets/{getThemeProps-BptNwghS.js → getThemeProps-CCv2uqLF.js} +1 -1
- package/dist/assets/{iframe-DzFk7Yi_.js → iframe-BUu-eJ7e.js} +4 -4
- package/dist/assets/index-9e-b9HMP.js +1 -0
- package/dist/assets/{index-gc59XWVn.js → index-CY7HedGH.js} +1 -1
- package/dist/assets/{index-BaU_aMNo.js → index-CaK8Ws5X.js} +1 -1
- package/dist/assets/{index-PfALvNzm.js → index-D2QuY68H.js} +1 -1
- package/dist/assets/{index-BmzO_rOc.js → index-D96Cunv4.js} +1 -1
- package/dist/assets/{index-C9mrMLCu.js → index-Xvxwi9ow.js} +1 -1
- package/dist/assets/{isMuiElement-P2lAqK3I.js → isMuiElement-B12KInF1.js} +1 -1
- package/dist/assets/{listItemTextClasses-H1by-bqS.js → listItemTextClasses-D8MaRgHN.js} +1 -1
- package/dist/assets/{makeStyles-C7AAxZE8.js → makeStyles-2NkWO2U8.js} +1 -1
- package/dist/assets/{react-18-D9NpMs3h.js → react-18-CPxgx1Is.js} +1 -1
- package/dist/assets/{styled-mSaA45JV.js → styled-Bdta3zPx.js} +1 -1
- package/dist/assets/{syntaxhighlighter-YFXUGROL-C8rfywBN.js → syntaxhighlighter-YFXUGROL-C5fmwJUW.js} +1 -1
- package/dist/assets/{useControlled-B928HkjW.js → useControlled-D66hb7P5.js} +1 -1
- package/dist/assets/{useKeybordEscapeHandler-JjqlsnGl.js → useKeybordEscapeHandler-Bb4F3A6C.js} +1 -1
- package/dist/assets/{useMediaQuery-BNqgIET9.js → useMediaQuery-oDnW0-Gn.js} +1 -1
- package/dist/assets/{useSlotProps-DncND8fg.js → useSlotProps-BvQH5-rD.js} +1 -1
- package/dist/assets/useTheme-CzzPhTJ0.js +1 -0
- package/dist/assets/{useThemeProps-_4kinabK.js → useThemeProps-oG41tgp2.js} +1 -1
- package/dist/assets/{utils-B8fsuTSx.js → utils-BteVqkV8.js} +1 -1
- package/dist/assets/{utils-C1As6W_N.js → utils-Gv-Ax-Hh.js} +1 -1
- package/dist/assets/{with-input-sHT8xNEM.js → with-input-8p2KYn3Z.js} +1 -1
- package/dist/assets/{withSpotlight-CpqJMM1Q.js → withSpotlight-BRLMZfdk.js} +1 -1
- package/dist/iframe.html +1 -1
- package/dist/manifests/components.html +1 -1
- package/dist/manifests/components.json +1 -1
- package/dist/project.json +1 -1
- package/dist/theme/theme.js +1 -1
- package/dist/theme/theme.js.map +1 -1
- package/package.json +1 -1
- package/dist/assets/Alert.stories-vfazdC2h.js +0 -3
- package/dist/assets/ArrowForward-dlNFFBkT.js +0 -1
- package/dist/assets/Close-qhi3XGkX.js +0 -1
- package/dist/assets/CollapseButtons.stories-DJZzXhqo.js +0 -1
- package/dist/assets/DataEdit.stories-CyBvHqOW.js +0 -1
- package/dist/assets/Done-CrLP7f7d.js +0 -1
- package/dist/assets/DynamicDrawer.stories-B-Fc9nT2.js +0 -37
- package/dist/assets/ExpandLess-B22kNjSC.js +0 -1
- package/dist/assets/ExpandMore-C5W8Fnxx.js +0 -1
- package/dist/assets/ExpansionPanel.stories-6WDSfQ5C.js +0 -1
- package/dist/assets/Info-CuVHf9vr.js +0 -1
- package/dist/assets/Input.stories-DPitoHYd.js +0 -1
- package/dist/assets/Lens-MIpHex8g.js +0 -1
- package/dist/assets/ListContext-D-3XFycw.js +0 -1
- package/dist/assets/Mode.stories-Bm4yI8Ya.js +0 -1
- package/dist/assets/NoData.stories-C4NXx1ku.js +0 -1
- package/dist/assets/Select.stories-RL_AxTsa.js +0 -1
- package/dist/assets/Spotlight.stories-ChFNe7Hj.js +0 -1
- package/dist/assets/ToggleButton.stories-CQpiVHgR.js +0 -1
- package/dist/assets/Tooltip.stories-BD_j-nVx.js +0 -1
- package/dist/assets/VerticalButton.stories-DwXdX5xg.js +0 -1
- package/dist/assets/formatter-L2YTDE3Q-BpwNsOkL.js +0 -1
- package/dist/assets/index-DfsAjfBH.js +0 -1
- package/dist/assets/useTheme-Bflr0z89.js +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
-
import React, { useState, useCallback, createElement } from 'react';
|
|
2
|
+
import React, { useState, useRef, useCallback, createElement } from 'react';
|
|
3
3
|
import useMediaQuery from '@mui/material/useMediaQuery';
|
|
4
4
|
import Grid from '@mui/material/Grid';
|
|
5
5
|
import Typography$1 from '@mui/material/Typography';
|
|
@@ -176,12 +176,9 @@ Item.propTypes = {
|
|
|
176
176
|
|
|
177
177
|
const CustomPaper = ({
|
|
178
178
|
isMobileView,
|
|
179
|
-
children
|
|
180
|
-
onClose
|
|
179
|
+
children
|
|
181
180
|
}) => {
|
|
182
|
-
return /* @__PURE__ */ jsx(Paper, {
|
|
183
|
-
if (e.key === "Escape" && onClose) onClose();
|
|
184
|
-
}, sx: {
|
|
181
|
+
return /* @__PURE__ */ jsx(Paper, { sx: {
|
|
185
182
|
padding: 2.5,
|
|
186
183
|
// Multiplies by theme.spacing (2.5 * 8px = 20px)
|
|
187
184
|
margin: 1.25,
|
|
@@ -247,19 +244,24 @@ const CollapseButtons = ({
|
|
|
247
244
|
}) => {
|
|
248
245
|
const isMobileView = useMediaQuery(breakpoint);
|
|
249
246
|
const [toggleId, setIsOpen] = useState(selectedItemId);
|
|
247
|
+
const containerRef = useRef(null);
|
|
250
248
|
const mdGridSize = COLUMNS[nbColumns] ?? 3;
|
|
251
249
|
const handleToggle = useCallback((id) => {
|
|
252
250
|
setIsOpen((prevId) => prevId === id ? null : id);
|
|
253
251
|
}, []);
|
|
254
|
-
|
|
252
|
+
const handleKeyDown = useCallback((event) => {
|
|
253
|
+
if (event.key !== "Escape" || !toggleId) return;
|
|
254
|
+
event.stopPropagation();
|
|
255
|
+
containerRef.current?.querySelector('[aria-expanded="true"]')?.focus();
|
|
256
|
+
setIsOpen(null);
|
|
257
|
+
}, [toggleId]);
|
|
258
|
+
return /* @__PURE__ */ jsxs(Grid, { container: true, ref: containerRef, "data-testid": testId, justifyContent: justify, onKeyDown: handleKeyDown, sx: {
|
|
255
259
|
...accessibility && {
|
|
256
|
-
"
|
|
260
|
+
"& .MuiButton-root:focus-visible, & .MuiLink-root:focus-visible": {
|
|
257
261
|
outlineColor: "highlight.hl1",
|
|
258
262
|
// Safely pulls theme.palette.highlight.hl1 automatically
|
|
259
263
|
outlineWidth: 2,
|
|
260
|
-
outlineStyle: "auto"
|
|
261
|
-
paddingBottom: 2
|
|
262
|
-
// 2 * 8px = 16px
|
|
264
|
+
outlineStyle: "auto"
|
|
263
265
|
}
|
|
264
266
|
}
|
|
265
267
|
}, children: [
|
|
@@ -271,7 +273,7 @@ const CollapseButtons = ({
|
|
|
271
273
|
p: 1
|
|
272
274
|
// Adds 8px padding evenly inside every item box without layout shifting
|
|
273
275
|
} }, /* @__PURE__ */ jsxs(Typography$1, { variant: "h3", children: [
|
|
274
|
-
/* @__PURE__ */ jsx(ToggleButton, { textTransform, label,
|
|
276
|
+
/* @__PURE__ */ jsx(ToggleButton, { textTransform, label, isOpen: toggleId === id, toggle: () => handleToggle(id), testId: `${testId}_${id}`, id }),
|
|
275
277
|
isMobileView && /* @__PURE__ */ jsx(CollapseSection$1, { id, toggleId, values, isMobileView, action, isSecondLevelClikable, labelAccessor, testId })
|
|
276
278
|
] }))),
|
|
277
279
|
!isMobileView && items.map(({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CollapseButtons.js","sources":["../../src/ToggleButton/ToggleButton.jsx","../../src/CollapseButtons/Item.jsx","../../src/CollapseButtons/Paper.jsx","../../src/CollapseButtons/CollapseSection.jsx","../../src/CollapseButtons/CollapseButtons.jsx"],"sourcesContent":["import React from 'react';\nimport * as R from 'ramda';\nimport cx from 'classnames';\nimport makeStyles from '@mui/styles/makeStyles';\nimport Button from '@mui/material/Button';\nimport { KeyboardArrowDown, KeyboardArrowUp } from '@mui/icons-material';\n\nconst useStyles = makeStyles((theme) => {\n const color1 = R.path(['palette', 'highlight', 'hl1'], theme) || theme.palette.primary.dark;\n return {\n root: {\n minHeight: '43px',\n borderRadius: theme.shape.borderRadius,\n padding: theme.spacing(0.75, 2, 0.5, 2),\n color: theme.palette.getContrastText(theme.palette.primary.main),\n backgroundColor:\n R.path(['palette', 'button', 'mainOpacity'], theme) || theme.palette.primary.main,\n display: 'flex',\n justifyContent: 'space-between',\n '&:hover': {\n color: theme.palette.getContrastText(color1),\n backgroundColor: color1,\n },\n },\n label: {\n textAlign: 'left',\n fontSize: '0.9375rem',\n lineHeight: '1.0',\n },\n selected: {\n color: theme.palette.getContrastText(color1),\n backgroundColor: color1,\n },\n };\n});\n\nexport const ToggleButton = ({\n isOpen,\n label,\n toggle,\n testId,\n tabIndex = 0,\n textTransform = 'capitalize',\n}) => {\n const classes = useStyles();\n return (\n <Button\n aria-expanded={isOpen}\n aria-label={label}\n tabIndex={tabIndex}\n data-testid={testId}\n classes={{ root: classes.root, label: classes.label }}\n className={cx({ [classes.selected]: isOpen })}\n style={{ textTransform }}\n fullWidth\n variant=\"text\"\n onClick={R.is(Function)(toggle) ? toggle : null}\n >\n {label}\n {isOpen ? <KeyboardArrowUp /> : <KeyboardArrowDown />}\n </Button>\n );\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport * as R from 'ramda';\nimport Grid from '@mui/material/Grid';\nimport Button from '@mui/material/Button';\nimport Link from '@mui/material/Link';\nimport makeStyles from '@mui/styles/makeStyles';\nimport SvgIcon from '@mui/material/SvgIcon';\nimport { Typography } from '@mui/material';\n\nconst useStyles = makeStyles((theme) => ({\n paperItem: {\n alignItems: 'baseline',\n },\n itemTitle: {\n ...theme.typography.body2,\n color: theme.palette.primary.main,\n },\n button: {\n '&:hover': {\n backgroundColor:\n R.path(['palette', 'tertiary', 'light'])(theme) || theme.palette.secondary.light,\n },\n padding: theme.spacing(1.25),\n textAlign: 'left',\n textTransform: 'none',\n justifyContent: 'flex-start',\n display: 'flex',\n },\n itemSubtitle: {\n ...theme.typography.body1,\n display: 'flex',\n flexDirection: 'column',\n color: theme.palette.grey[800],\n },\n itemSubtitleLink: {\n ...theme.typography.body1,\n color: theme.palette.grey[800],\n '&:hover': {\n color: theme.palette.primary.main,\n },\n },\n svg: {\n color: theme.palette.grey[600],\n fontSize: '1rem',\n marginRight: theme.spacing(0.5),\n marginTop: theme.spacing(0.25),\n marginBottom: 'auto',\n },\n}));\n\nconst Item = ({ parentId, item, action, testId, isSecondLevelClikable, labelAccessor }) => {\n const classes = useStyles();\n const mapIndexed = R.addIndex(R.map);\n return (\n <Grid className={classes.paperItem}>\n <Typography variant=\"h4\">\n <Button\n aria-label={R.prop('label')(item)}\n className={classes.button}\n fullWidth\n data-testid={testId}\n // eslint-disable-next-line jsx-a11y/prefer-tag-over-role -- no href target, navigation is handled via onClick/onKeyDown\n role=\"link\"\n onClick={() => {\n if (R.not(R.is(Function)(action))) return;\n action(parentId, R.prop('id')(item));\n }}\n tabIndex={0}\n >\n <SvgIcon className={classes.svg}>\n <path d={R.prop('svgPath')(item)} />\n </SvgIcon>\n <Grid container item xs={12} direction=\"column\">\n <span className={classes.itemTitle}>{labelAccessor(item, parentId)}</span>\n <span className={classes.itemSubtitle}>\n {mapIndexed((subtopic, index) => {\n if (R.not(R.is(Object)(subtopic))) return subtopic;\n if (R.not(isSecondLevelClikable)) return labelAccessor(subtopic, parentId);\n const id = R.prop('id')(subtopic);\n return (\n <Typography variant=\"h5\" key={`${id}::${index}`}>\n <Link\n className={classes.itemSubtitleLink}\n // eslint-disable-next-line jsx-a11y/prefer-tag-over-role -- no href target, navigation is handled via onClick/onKeyDown\n role=\"link\"\n onClick={(e) => {\n if (R.not(R.is(Function)(action))) return;\n action(parentId, id);\n e.stopPropagation();\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n if (R.not(R.is(Function)(action))) return;\n action(parentId, id);\n e.stopPropagation();\n }\n }}\n tabIndex={0}\n underline=\"none\"\n style={{ display: 'list-item' }}\n >\n {labelAccessor(subtopic, parentId)}\n </Link>\n </Typography>\n );\n })(\n R.pipe(\n R.propOr([], 'subtopics'),\n R.ifElse(R.always(isSecondLevelClikable), R.identity, R.intersperse(' • '))\n )(item)\n )}\n </span>\n </Grid>\n </Button>\n </Typography>\n </Grid>\n );\n};\n\nItem.propTypes = {\n parentId: PropTypes.string,\n testId: PropTypes.string,\n item: PropTypes.object,\n action: PropTypes.func,\n isSecondLevelClikable: PropTypes.bool,\n labelAccessor: PropTypes.func,\n};\n\nexport default Item;\n","import React from 'react';\nimport Paper from '@mui/material/Paper';\nimport Grid from '@mui/material/Grid';\n\nconst CustomPaper = ({ isMobileView, children, onClose }) => {\n return (\n <Paper\n onKeyDown={(e) => {\n if (e.key === 'Escape' && onClose) onClose();\n }}\n sx={{\n padding: 2.5, // Multiplies by theme.spacing (2.5 * 8px = 20px)\n margin: 1.25, // Multiplies by theme.spacing (1.25 * 8px = 10px)\n borderRadius: 'unset',\n ...(isMobileView && {\n display: 'flex',\n flexDirection: 'column',\n columnCount: 'unset',\n }),\n }}\n >\n <Grid\n sx={{\n columnCount: isMobileView ? 'unset' : 3,\n columnFill: 'balance',\n ...(isMobileView && {\n display: 'flex',\n flexDirection: 'column',\n }),\n }}\n >\n {children}\n </Grid>\n </Paper>\n );\n};\n\nexport default CustomPaper;\n","import React from 'react';\nimport Collapse from '@mui/material/Collapse';\nimport Item from './Item';\nimport Paper from './Paper';\n\nconst EMPTY_VALUES = [];\n\nconst CollapseSection = ({\n id,\n toggleId,\n values = EMPTY_VALUES,\n isMobileView,\n action,\n isSecondLevelClikable,\n labelAccessor,\n testId,\n}) => {\n const isOpen = toggleId === id;\n\n return (\n <Collapse in={isOpen} timeout=\"auto\" unmountOnExit sx={{ width: '100%' }}>\n <Paper elevation={10} isMobileView={isMobileView}>\n {values.map((item, index) => {\n const itemId = item?.id ?? index;\n return (\n <Item\n key={`${index}-${itemId}`}\n testId={`${testId}_${id}_value_${itemId}`}\n parentId={id}\n item={item}\n action={action}\n isSecondLevelClikable={isSecondLevelClikable}\n labelAccessor={labelAccessor}\n />\n );\n })}\n </Paper>\n </Collapse>\n );\n};\n\n// Optimizes re-rendering cycles\nexport default React.memo(CollapseSection);\n","import React, { useState, useCallback } from 'react';\nimport useMediaQuery from '@mui/material/useMediaQuery';\nimport Grid from '@mui/material/Grid';\nimport Typography from '@mui/material/Typography';\nimport { ToggleButton } from '../ToggleButton/ToggleButton';\nimport CollapseSection from './CollapseSection';\n\nexport const MAX_COLUMNS = 12;\nexport const COLUMNS = [12, 12, 6, 4, 3, 3, 2, 2, 2, 2, 2, 2, 1];\n\nconst EMPTY_ITEMS = [];\nconst EMPTY_GRID_BUTTONS_PROPS = {};\nconst noop = () => {};\nconst defaultBreakpoint = (theme) => theme.breakpoints.down('md');\nconst defaultLabelAccessor = (obj) => obj?.label;\n\nexport const CollapseButtons = ({\n items = EMPTY_ITEMS,\n action = noop,\n nbColumns = 3,\n testId = 'collapseButton',\n isSecondLevelClikable,\n gridButtonsProps = EMPTY_GRID_BUTTONS_PROPS,\n breakpoint = defaultBreakpoint,\n justify,\n textTransform = 'none',\n labelAccessor = defaultLabelAccessor,\n accessibility,\n selectedItemId,\n}) => {\n const isMobileView = useMediaQuery(breakpoint);\n const [toggleId, setIsOpen] = useState(selectedItemId);\n\n // Safe fallback translation of R.nth(nbColumns)(COLUMNS)\n const mdGridSize = COLUMNS[nbColumns] ?? 3;\n\n // Optimize callback references\n const handleToggle = useCallback((id) => {\n setIsOpen((prevId) => (prevId === id ? null : id));\n }, []);\n\n return (\n <Grid\n container\n data-testid={testId}\n justifyContent={justify}\n tabIndex={0}\n sx={{\n ...(accessibility && {\n '&:focus': {\n outlineColor: 'highlight.hl1', // Safely pulls theme.palette.highlight.hl1 automatically\n outlineWidth: 2,\n outlineStyle: 'auto',\n paddingBottom: 2, // 2 * 8px = 16px\n },\n }),\n }}\n >\n {items.map(({ id, label, values = [] }, index) => (\n <Grid\n item\n xs={12}\n sm={12}\n md={mdGridSize}\n {...gridButtonsProps}\n key={`${index}::${id}`}\n sx={{\n p: 1, // Adds 8px padding evenly inside every item box without layout shifting\n }}\n >\n <Typography variant=\"h3\">\n <ToggleButton\n textTransform={textTransform}\n label={label}\n tabIndex={toggleId ? 0 : -1}\n isOpen={toggleId === id}\n toggle={() => handleToggle(id)}\n testId={`${testId}_${id}`}\n id={id}\n />\n {isMobileView && (\n <CollapseSection\n id={id}\n toggleId={toggleId}\n values={values}\n isMobileView={isMobileView}\n action={action}\n isSecondLevelClikable={isSecondLevelClikable}\n labelAccessor={labelAccessor}\n testId={testId}\n />\n )}\n </Typography>\n </Grid>\n ))}\n\n {!isMobileView &&\n items.map(({ id, values = [] }) => (\n <CollapseSection\n key={`desktop-collapse-${id}`}\n id={id}\n toggleId={toggleId}\n values={values}\n isMobileView={isMobileView}\n action={action}\n isSecondLevelClikable={isSecondLevelClikable}\n labelAccessor={labelAccessor}\n testId={testId}\n />\n ))}\n </Grid>\n );\n};\n"],"names":["useStyles","makeStyles","theme","color1","R","path","palette","primary","dark","root","minHeight","borderRadius","shape","padding","spacing","color","getContrastText","main","backgroundColor","display","justifyContent","label","textAlign","fontSize","lineHeight","selected","ToggleButton","isOpen","toggle","testId","tabIndex","textTransform","classes","cx","is","Function","paperItem","alignItems","itemTitle","typography","body2","button","secondary","light","itemSubtitle","body1","flexDirection","grey","itemSubtitleLink","svg","marginRight","marginTop","marginBottom","Item","parentId","item","action","isSecondLevelClikable","labelAccessor","mapIndexed","addIndex","map","prop","not","subtopic","index","Object","id","e","stopPropagation","key","pipe","propOr","ifElse","always","identity","intersperse","propTypes","PropTypes","string","object","func","bool","CustomPaper","isMobileView","children","onClose","margin","columnCount","columnFill","EMPTY_VALUES","CollapseSection","toggleId","values","width","Paper","itemId","React","memo","MAX_COLUMNS","COLUMNS","EMPTY_ITEMS","EMPTY_GRID_BUTTONS_PROPS","noop","defaultBreakpoint","breakpoints","down","defaultLabelAccessor","obj","CollapseButtons","items","nbColumns","gridButtonsProps","breakpoint","justify","accessibility","selectedItemId","useMediaQuery","setIsOpen","useState","mdGridSize","handleToggle","useCallback","prevId","outlineColor","outlineWidth","outlineStyle","paddingBottom","p","Typography"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CollapseButtons.js","sources":["../../src/ToggleButton/ToggleButton.jsx","../../src/CollapseButtons/Item.jsx","../../src/CollapseButtons/Paper.jsx","../../src/CollapseButtons/CollapseSection.jsx","../../src/CollapseButtons/CollapseButtons.jsx"],"sourcesContent":["import React from 'react';\nimport * as R from 'ramda';\nimport cx from 'classnames';\nimport makeStyles from '@mui/styles/makeStyles';\nimport Button from '@mui/material/Button';\nimport { KeyboardArrowDown, KeyboardArrowUp } from '@mui/icons-material';\n\nconst useStyles = makeStyles((theme) => {\n const color1 = R.path(['palette', 'highlight', 'hl1'], theme) || theme.palette.primary.dark;\n return {\n root: {\n minHeight: '43px',\n borderRadius: theme.shape.borderRadius,\n padding: theme.spacing(0.75, 2, 0.5, 2),\n color: theme.palette.getContrastText(theme.palette.primary.main),\n backgroundColor:\n R.path(['palette', 'button', 'mainOpacity'], theme) || theme.palette.primary.main,\n display: 'flex',\n justifyContent: 'space-between',\n '&:hover': {\n color: theme.palette.getContrastText(color1),\n backgroundColor: color1,\n },\n },\n label: {\n textAlign: 'left',\n fontSize: '0.9375rem',\n lineHeight: '1.0',\n },\n selected: {\n color: theme.palette.getContrastText(color1),\n backgroundColor: color1,\n },\n };\n});\n\nexport const ToggleButton = ({\n isOpen,\n label,\n toggle,\n testId,\n tabIndex = 0,\n textTransform = 'capitalize',\n}) => {\n const classes = useStyles();\n return (\n <Button\n aria-expanded={isOpen}\n aria-label={label}\n tabIndex={tabIndex}\n data-testid={testId}\n classes={{ root: classes.root, label: classes.label }}\n className={cx({ [classes.selected]: isOpen })}\n style={{ textTransform }}\n fullWidth\n variant=\"text\"\n onClick={R.is(Function)(toggle) ? toggle : null}\n >\n {label}\n {isOpen ? <KeyboardArrowUp /> : <KeyboardArrowDown />}\n </Button>\n );\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport * as R from 'ramda';\nimport Grid from '@mui/material/Grid';\nimport Button from '@mui/material/Button';\nimport Link from '@mui/material/Link';\nimport makeStyles from '@mui/styles/makeStyles';\nimport SvgIcon from '@mui/material/SvgIcon';\nimport { Typography } from '@mui/material';\n\nconst useStyles = makeStyles((theme) => ({\n paperItem: {\n alignItems: 'baseline',\n },\n itemTitle: {\n ...theme.typography.body2,\n color: theme.palette.primary.main,\n },\n button: {\n '&:hover': {\n backgroundColor:\n R.path(['palette', 'tertiary', 'light'])(theme) || theme.palette.secondary.light,\n },\n padding: theme.spacing(1.25),\n textAlign: 'left',\n textTransform: 'none',\n justifyContent: 'flex-start',\n display: 'flex',\n },\n itemSubtitle: {\n ...theme.typography.body1,\n display: 'flex',\n flexDirection: 'column',\n color: theme.palette.grey[800],\n },\n itemSubtitleLink: {\n ...theme.typography.body1,\n color: theme.palette.grey[800],\n '&:hover': {\n color: theme.palette.primary.main,\n },\n },\n svg: {\n color: theme.palette.grey[600],\n fontSize: '1rem',\n marginRight: theme.spacing(0.5),\n marginTop: theme.spacing(0.25),\n marginBottom: 'auto',\n },\n}));\n\nconst Item = ({ parentId, item, action, testId, isSecondLevelClikable, labelAccessor }) => {\n const classes = useStyles();\n const mapIndexed = R.addIndex(R.map);\n return (\n <Grid className={classes.paperItem}>\n <Typography variant=\"h4\">\n <Button\n aria-label={R.prop('label')(item)}\n className={classes.button}\n fullWidth\n data-testid={testId}\n // eslint-disable-next-line jsx-a11y/prefer-tag-over-role -- no href target, navigation is handled via onClick/onKeyDown\n role=\"link\"\n onClick={() => {\n if (R.not(R.is(Function)(action))) return;\n action(parentId, R.prop('id')(item));\n }}\n tabIndex={0}\n >\n <SvgIcon className={classes.svg}>\n <path d={R.prop('svgPath')(item)} />\n </SvgIcon>\n <Grid container item xs={12} direction=\"column\">\n <span className={classes.itemTitle}>{labelAccessor(item, parentId)}</span>\n <span className={classes.itemSubtitle}>\n {mapIndexed((subtopic, index) => {\n if (R.not(R.is(Object)(subtopic))) return subtopic;\n if (R.not(isSecondLevelClikable)) return labelAccessor(subtopic, parentId);\n const id = R.prop('id')(subtopic);\n return (\n <Typography variant=\"h5\" key={`${id}::${index}`}>\n <Link\n className={classes.itemSubtitleLink}\n // eslint-disable-next-line jsx-a11y/prefer-tag-over-role -- no href target, navigation is handled via onClick/onKeyDown\n role=\"link\"\n onClick={(e) => {\n if (R.not(R.is(Function)(action))) return;\n action(parentId, id);\n e.stopPropagation();\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n if (R.not(R.is(Function)(action))) return;\n action(parentId, id);\n e.stopPropagation();\n }\n }}\n tabIndex={0}\n underline=\"none\"\n style={{ display: 'list-item' }}\n >\n {labelAccessor(subtopic, parentId)}\n </Link>\n </Typography>\n );\n })(\n R.pipe(\n R.propOr([], 'subtopics'),\n R.ifElse(R.always(isSecondLevelClikable), R.identity, R.intersperse(' • '))\n )(item)\n )}\n </span>\n </Grid>\n </Button>\n </Typography>\n </Grid>\n );\n};\n\nItem.propTypes = {\n parentId: PropTypes.string,\n testId: PropTypes.string,\n item: PropTypes.object,\n action: PropTypes.func,\n isSecondLevelClikable: PropTypes.bool,\n labelAccessor: PropTypes.func,\n};\n\nexport default Item;\n","import React from 'react';\nimport Paper from '@mui/material/Paper';\nimport Grid from '@mui/material/Grid';\n\nconst CustomPaper = ({ isMobileView, children }) => {\n return (\n <Paper\n sx={{\n padding: 2.5, // Multiplies by theme.spacing (2.5 * 8px = 20px)\n margin: 1.25, // Multiplies by theme.spacing (1.25 * 8px = 10px)\n borderRadius: 'unset',\n ...(isMobileView && {\n display: 'flex',\n flexDirection: 'column',\n columnCount: 'unset',\n }),\n }}\n >\n <Grid\n sx={{\n columnCount: isMobileView ? 'unset' : 3,\n columnFill: 'balance',\n ...(isMobileView && {\n display: 'flex',\n flexDirection: 'column',\n }),\n }}\n >\n {children}\n </Grid>\n </Paper>\n );\n};\n\nexport default CustomPaper;\n","import React from 'react';\nimport Collapse from '@mui/material/Collapse';\nimport Item from './Item';\nimport Paper from './Paper';\n\nconst EMPTY_VALUES = [];\n\nconst CollapseSection = ({\n id,\n toggleId,\n values = EMPTY_VALUES,\n isMobileView,\n action,\n isSecondLevelClikable,\n labelAccessor,\n testId,\n}) => {\n const isOpen = toggleId === id;\n\n return (\n <Collapse in={isOpen} timeout=\"auto\" unmountOnExit sx={{ width: '100%' }}>\n <Paper elevation={10} isMobileView={isMobileView}>\n {values.map((item, index) => {\n const itemId = item?.id ?? index;\n return (\n <Item\n key={`${index}-${itemId}`}\n testId={`${testId}_${id}_value_${itemId}`}\n parentId={id}\n item={item}\n action={action}\n isSecondLevelClikable={isSecondLevelClikable}\n labelAccessor={labelAccessor}\n />\n );\n })}\n </Paper>\n </Collapse>\n );\n};\n\n// Optimizes re-rendering cycles\nexport default React.memo(CollapseSection);\n","import React, { useState, useCallback, useRef } from 'react';\nimport useMediaQuery from '@mui/material/useMediaQuery';\nimport Grid from '@mui/material/Grid';\nimport Typography from '@mui/material/Typography';\nimport { ToggleButton } from '../ToggleButton/ToggleButton';\nimport CollapseSection from './CollapseSection';\n\nexport const MAX_COLUMNS = 12;\nexport const COLUMNS = [12, 12, 6, 4, 3, 3, 2, 2, 2, 2, 2, 2, 1];\n\nconst EMPTY_ITEMS = [];\nconst EMPTY_GRID_BUTTONS_PROPS = {};\nconst noop = () => {};\nconst defaultBreakpoint = (theme) => theme.breakpoints.down('md');\nconst defaultLabelAccessor = (obj) => obj?.label;\n\nexport const CollapseButtons = ({\n items = EMPTY_ITEMS,\n action = noop,\n nbColumns = 3,\n testId = 'collapseButton',\n isSecondLevelClikable,\n gridButtonsProps = EMPTY_GRID_BUTTONS_PROPS,\n breakpoint = defaultBreakpoint,\n justify,\n textTransform = 'none',\n labelAccessor = defaultLabelAccessor,\n accessibility,\n selectedItemId,\n}) => {\n const isMobileView = useMediaQuery(breakpoint);\n const [toggleId, setIsOpen] = useState(selectedItemId);\n const containerRef = useRef(null);\n\n // Safe fallback translation of R.nth(nbColumns)(COLUMNS)\n const mdGridSize = COLUMNS[nbColumns] ?? 3;\n\n // Optimize callback references\n const handleToggle = useCallback((id) => {\n setIsOpen((prevId) => (prevId === id ? null : id));\n }, []);\n\n // Escape, from the open section or from its button, closes the section and hands\n // the focus back to that button (the only one flagged as expanded).\n const handleKeyDown = useCallback(\n (event) => {\n if (event.key !== 'Escape' || !toggleId) return;\n event.stopPropagation();\n containerRef.current?.querySelector('[aria-expanded=\"true\"]')?.focus();\n setIsOpen(null);\n },\n [toggleId]\n );\n\n return (\n <Grid\n container\n ref={containerRef}\n data-testid={testId}\n justifyContent={justify}\n onKeyDown={handleKeyDown}\n sx={{\n ...(accessibility && {\n '& .MuiButton-root:focus-visible, & .MuiLink-root:focus-visible': {\n outlineColor: 'highlight.hl1', // Safely pulls theme.palette.highlight.hl1 automatically\n outlineWidth: 2,\n outlineStyle: 'auto',\n },\n }),\n }}\n >\n {items.map(({ id, label, values = [] }, index) => (\n <Grid\n item\n xs={12}\n sm={12}\n md={mdGridSize}\n {...gridButtonsProps}\n key={`${index}::${id}`}\n sx={{\n p: 1, // Adds 8px padding evenly inside every item box without layout shifting\n }}\n >\n <Typography variant=\"h3\">\n <ToggleButton\n textTransform={textTransform}\n label={label}\n isOpen={toggleId === id}\n toggle={() => handleToggle(id)}\n testId={`${testId}_${id}`}\n id={id}\n />\n {isMobileView && (\n <CollapseSection\n id={id}\n toggleId={toggleId}\n values={values}\n isMobileView={isMobileView}\n action={action}\n isSecondLevelClikable={isSecondLevelClikable}\n labelAccessor={labelAccessor}\n testId={testId}\n />\n )}\n </Typography>\n </Grid>\n ))}\n\n {!isMobileView &&\n items.map(({ id, values = [] }) => (\n <CollapseSection\n key={`desktop-collapse-${id}`}\n id={id}\n toggleId={toggleId}\n values={values}\n isMobileView={isMobileView}\n action={action}\n isSecondLevelClikable={isSecondLevelClikable}\n labelAccessor={labelAccessor}\n testId={testId}\n />\n ))}\n </Grid>\n );\n};\n"],"names":["useStyles","makeStyles","theme","color1","R","path","palette","primary","dark","root","minHeight","borderRadius","shape","padding","spacing","color","getContrastText","main","backgroundColor","display","justifyContent","label","textAlign","fontSize","lineHeight","selected","ToggleButton","isOpen","toggle","testId","tabIndex","textTransform","classes","cx","is","Function","paperItem","alignItems","itemTitle","typography","body2","button","secondary","light","itemSubtitle","body1","flexDirection","grey","itemSubtitleLink","svg","marginRight","marginTop","marginBottom","Item","parentId","item","action","isSecondLevelClikable","labelAccessor","mapIndexed","addIndex","map","prop","not","subtopic","index","Object","id","e","stopPropagation","key","pipe","propOr","ifElse","always","identity","intersperse","propTypes","PropTypes","string","object","func","bool","CustomPaper","isMobileView","children","margin","columnCount","columnFill","EMPTY_VALUES","CollapseSection","toggleId","values","width","Paper","itemId","React","memo","MAX_COLUMNS","COLUMNS","EMPTY_ITEMS","EMPTY_GRID_BUTTONS_PROPS","noop","defaultBreakpoint","breakpoints","down","defaultLabelAccessor","obj","CollapseButtons","items","nbColumns","gridButtonsProps","breakpoint","justify","accessibility","selectedItemId","useMediaQuery","setIsOpen","useState","containerRef","useRef","mdGridSize","handleToggle","useCallback","prevId","handleKeyDown","event","current","querySelector","focus","outlineColor","outlineWidth","outlineStyle","p","Typography"],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
|
-
import React, { useState, useRef,
|
|
2
|
+
import React, { useState, useRef, useLayoutEffect, useEffect, startTransition, useMemo } from 'react';
|
|
3
3
|
import * as R from 'ramda';
|
|
4
4
|
import cx from 'classnames';
|
|
5
|
+
import useSize from '@react-hook/size';
|
|
5
6
|
import Box from '@mui/material/Box';
|
|
6
7
|
import PropTypes from 'prop-types';
|
|
7
8
|
import { w as withSpotlight, a as withExpansionTree, g as getHierarchicalId, b as getEvolvedDisableAccessor, c as getScopeGetters, V as VirtualizedTree } from '../chunks/withSpotlight-CA0xvW0v.js';
|
|
@@ -481,15 +482,14 @@ const useStyles = makeStyles((theme) => ({
|
|
|
481
482
|
chipBorder: {
|
|
482
483
|
border: `solid 1px ${dynamicDrawerMixin(theme, "chips", "outlineColor")}`
|
|
483
484
|
},
|
|
484
|
-
// Pill radius for standalone chips (value, count, "All items"). Kept off
|
|
485
|
-
// "Remove all" (removeAllChip below) and off in-group chips, whose own
|
|
486
|
-
// radius is zeroed by concatenatedChipsRow's `& > *` so only the group's
|
|
487
|
-
// outer corners round.
|
|
488
485
|
chipRadius: {
|
|
489
486
|
borderRadius: dynamicDrawerMixin(theme, "chips", "radius")
|
|
490
487
|
},
|
|
491
|
-
|
|
492
|
-
|
|
488
|
+
chipDeleteIcon: {
|
|
489
|
+
padding: "2px !important",
|
|
490
|
+
"& svg": {
|
|
491
|
+
fontSize: dynamicDrawerMixin(theme, "chips", "deleteIconSize")
|
|
492
|
+
}
|
|
493
493
|
},
|
|
494
494
|
// #1789: a long value truncates on one line and exposes its full text via
|
|
495
495
|
// the native title tooltip, instead of wrapping the chip over several
|
|
@@ -498,28 +498,16 @@ const useStyles = makeStyles((theme) => ({
|
|
|
498
498
|
ellipsisLabel: {
|
|
499
499
|
...R.pathOr({}, ["mixins", "dynamicDrawer", "chips", "ellipsisLabel"], theme)
|
|
500
500
|
},
|
|
501
|
-
// #1787: the outer frame around the count chip + toggle (collapsed), and
|
|
502
|
-
// around that same row stacked over the expanded value-chip row — one
|
|
503
|
-
// continuous rounded card either way, never two floating pieces.
|
|
504
501
|
concatenatedChips: {
|
|
505
502
|
display: "flex",
|
|
506
503
|
border: `solid 1px ${dynamicDrawerMixin(theme, "chips", "dividerColor")}`,
|
|
507
504
|
borderRadius: dynamicDrawerMixin(theme, "chips", "groupBorderRadius"),
|
|
508
505
|
overflow: "hidden"
|
|
509
506
|
},
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
"& > *:not(:last-child)": {
|
|
513
|
-
borderBottom: `solid 1px ${dynamicDrawerMixin(theme, "chips", "dividerColor")}`
|
|
514
|
-
}
|
|
515
|
-
},
|
|
516
|
-
// One row inside the frame: the header (count chip + toggle) is one row,
|
|
517
|
-
// the expanded value chips (which themselves wrap onto several lines) are
|
|
518
|
-
// another. Dividers and the zeroed child radius are per-row, so wrapped
|
|
519
|
-
// chips only ever get a right-hand divider, never a stray corner radius.
|
|
507
|
+
// The items of one such line: a divider between them, and their own
|
|
508
|
+
// radius zeroed so only the frame's outer corners round.
|
|
520
509
|
concatenatedChipsRow: {
|
|
521
510
|
display: "flex",
|
|
522
|
-
flexWrap: "wrap",
|
|
523
511
|
alignItems: "stretch",
|
|
524
512
|
flex: 1,
|
|
525
513
|
minWidth: 0,
|
|
@@ -564,6 +552,9 @@ const useStyles = makeStyles((theme) => ({
|
|
|
564
552
|
toggleLabel: {
|
|
565
553
|
...R.pathOr({}, ["mixins", "dynamicDrawer", "toggleButton", "label"], theme)
|
|
566
554
|
},
|
|
555
|
+
toggleIconPlus: {
|
|
556
|
+
transform: "translateY(-2px)"
|
|
557
|
+
},
|
|
567
558
|
list: {
|
|
568
559
|
display: "flex",
|
|
569
560
|
flexDirection: "column",
|
|
@@ -684,6 +675,57 @@ const TabPanel = (props) => {
|
|
|
684
675
|
children
|
|
685
676
|
] }) });
|
|
686
677
|
};
|
|
678
|
+
const ChipRuns = ({
|
|
679
|
+
id,
|
|
680
|
+
items,
|
|
681
|
+
classes
|
|
682
|
+
}) => {
|
|
683
|
+
const sizeRef = useRef(null);
|
|
684
|
+
const measureRef = useRef(null);
|
|
685
|
+
const [width] = useSize(sizeRef);
|
|
686
|
+
const [rows, setRows] = useState(null);
|
|
687
|
+
useLayoutEffect(() => {
|
|
688
|
+
setRows(null);
|
|
689
|
+
}, [items, width]);
|
|
690
|
+
useLayoutEffect(() => {
|
|
691
|
+
const container = measureRef.current;
|
|
692
|
+
if (!container) return;
|
|
693
|
+
const children = Array.from(container.children);
|
|
694
|
+
if (R.isEmpty(children)) {
|
|
695
|
+
setRows([]);
|
|
696
|
+
return;
|
|
697
|
+
}
|
|
698
|
+
const SAME_ROW_TOLERANCE_PX = 10;
|
|
699
|
+
const grouped = [];
|
|
700
|
+
let currentRow = [];
|
|
701
|
+
let rowAnchorTop = null;
|
|
702
|
+
children.forEach((child, index) => {
|
|
703
|
+
if (rowAnchorTop !== null && Math.abs(child.offsetTop - rowAnchorTop) > SAME_ROW_TOLERANCE_PX) {
|
|
704
|
+
grouped.push(currentRow);
|
|
705
|
+
currentRow = [];
|
|
706
|
+
rowAnchorTop = null;
|
|
707
|
+
}
|
|
708
|
+
if (rowAnchorTop === null) rowAnchorTop = child.offsetTop;
|
|
709
|
+
currentRow.push(index);
|
|
710
|
+
});
|
|
711
|
+
grouped.push(currentRow);
|
|
712
|
+
setRows(grouped);
|
|
713
|
+
});
|
|
714
|
+
const safeRows = rows && R.sum(R.map(R.length, rows)) === R.length(items) ? rows : null;
|
|
715
|
+
return /* @__PURE__ */ jsx(Box, { id, ref: sizeRef, sx: {
|
|
716
|
+
width: "100%"
|
|
717
|
+
}, children: safeRows ? /* @__PURE__ */ jsx(Box, { sx: {
|
|
718
|
+
display: "flex",
|
|
719
|
+
flexDirection: "column",
|
|
720
|
+
alignItems: "flex-start",
|
|
721
|
+
gap: 0.5
|
|
722
|
+
}, children: safeRows.map((rowIndices) => /* @__PURE__ */ jsx(Box, { className: classes.concatenatedChips, children: /* @__PURE__ */ jsx(Box, { className: classes.concatenatedChipsRow, children: rowIndices.map((index) => /* @__PURE__ */ jsx(React.Fragment, { children: items[index].node }, items[index].key)) }) }, rowIndices.map((index) => items[index].key).join("-"))) }) : /* @__PURE__ */ jsx(Box, { ref: measureRef, className: cx(classes.concatenatedChips, classes.concatenatedChipsRow), sx: {
|
|
723
|
+
flexWrap: "wrap"
|
|
724
|
+
}, children: items.map(({
|
|
725
|
+
key,
|
|
726
|
+
node
|
|
727
|
+
}) => /* @__PURE__ */ jsx(React.Fragment, { children: node }, key)) }) });
|
|
728
|
+
};
|
|
687
729
|
const DimensionCard = React.forwardRef(({
|
|
688
730
|
label,
|
|
689
731
|
labels,
|
|
@@ -733,8 +775,8 @@ const DimensionCard = React.forwardRef(({
|
|
|
733
775
|
} = {}) => /* @__PURE__ */ jsx(CustomChip, { id, parentId: dimId, label: itemLabel, items, renderer: myTooltipRenderer({
|
|
734
776
|
isRtl,
|
|
735
777
|
labelRenderer
|
|
736
|
-
}), labelRenderer, chipClasses: cx(chipClasses.secondaryChip, chipClasses.chip, classes.chipDeleteLeft, bordered && classes.chipBorder, bordered && classes.chipRadius), iconClasses: chipClasses.icon, labelClasses: cx(chipClasses.spaceLabel, classes.ellipsisLabel), title: R.is(String, itemLabel) ? itemLabel : void 0, onDelete: R.is(Function, onDeleteValue) && isEditMode && !isNotRemovable ? onDeleteValue : void 0 }, id);
|
|
737
|
-
const countChip = /* @__PURE__ */ jsx(CustomChip, { label: nItemsLabel, chipClasses: cx(chipClasses.mainChip, chipClasses.chip, classes.chipDeleteLeft), labelClasses: cx(chipClasses.spaceLabel, chipClasses.formatLabel), iconClasses: chipClasses.icon, onDelete: R.is(Function, onDeleteAllDimValues) && isEditMode ? () => onDeleteAllDimValues(dimId, selectedItems) : void 0 });
|
|
778
|
+
}), labelRenderer, chipClasses: cx(chipClasses.secondaryChip, chipClasses.chip, classes.chipDeleteLeft, bordered && classes.chipBorder, bordered && classes.chipRadius), iconClasses: cx(chipClasses.icon, classes.chipDeleteIcon), labelClasses: cx(chipClasses.spaceLabel, classes.ellipsisLabel), title: R.is(String, itemLabel) ? itemLabel : void 0, onDelete: R.is(Function, onDeleteValue) && isEditMode && !isNotRemovable ? onDeleteValue : void 0 }, id);
|
|
779
|
+
const countChip = /* @__PURE__ */ jsx(CustomChip, { label: nItemsLabel, chipClasses: cx(chipClasses.mainChip, chipClasses.chip, classes.chipDeleteLeft), labelClasses: cx(chipClasses.spaceLabel, chipClasses.formatLabel), iconClasses: cx(chipClasses.icon, classes.chipDeleteIcon), onDelete: R.is(Function, onDeleteAllDimValues) && isEditMode ? () => onDeleteAllDimValues(dimId, selectedItems) : void 0 });
|
|
738
780
|
return /* @__PURE__ */ jsx(Paper, { ...rest, ref, className: cx(rest.className, classes.frame), children: /* @__PURE__ */ jsxs(Box, { sx: {
|
|
739
781
|
display: "flex",
|
|
740
782
|
flexDirection: "column",
|
|
@@ -757,16 +799,19 @@ const DimensionCard = React.forwardRef(({
|
|
|
757
799
|
flexWrap: "wrap",
|
|
758
800
|
alignItems: "center",
|
|
759
801
|
gap: 0.5
|
|
760
|
-
}, children: R.isEmpty(selectedItems) ? /* @__PURE__ */ jsx(CustomChip, { label: R.propOr("All items", "allItems", labels), chipClasses: cx(chipClasses.mainChip, chipClasses.chip, classes.chipBorder, classes.chipRadius), labelClasses: cx(chipClasses.spaceLabel, chipClasses.formatLabel), iconClasses: chipClasses.icon }) : showCollapseToggle ? /* @__PURE__ */
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
expanded
|
|
802
|
+
}, children: R.isEmpty(selectedItems) ? /* @__PURE__ */ jsx(CustomChip, { label: R.propOr("All items", "allItems", labels), chipClasses: cx(chipClasses.mainChip, chipClasses.chip, classes.chipBorder, classes.chipRadius), labelClasses: cx(chipClasses.spaceLabel, chipClasses.formatLabel), iconClasses: chipClasses.icon }) : showCollapseToggle ? /* @__PURE__ */ jsx(ChipRuns, { id: chipsId, classes, items: [{
|
|
803
|
+
key: "count",
|
|
804
|
+
node: countChip
|
|
805
|
+
}, {
|
|
806
|
+
key: "toggle",
|
|
807
|
+
node: expanded ? toggle(/* @__PURE__ */ jsx(Remove, { fontSize: "small" }), R.propOr("Show less", "showLess", labels)) : toggle(/* @__PURE__ */ jsx(Add, { fontSize: "small", className: classes.toggleIconPlus }), R.propOr("Show more", "showMore", labels))
|
|
808
|
+
}, ...expanded ? R.map((chip) => ({
|
|
809
|
+
key: chip.id,
|
|
810
|
+
node: valueChip(chip, {
|
|
766
811
|
bordered: false
|
|
767
|
-
})
|
|
768
|
-
] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
769
|
-
showRemoveAll && isEditMode && /* @__PURE__ */ jsx(CustomChip, { label: R.propOr("Remove all", "removeAll", labels), chipClasses: cx(chipClasses.mainChip, chipClasses.chip, classes.chipDeleteLeft, classes.
|
|
812
|
+
})
|
|
813
|
+
}), selectedItems) : []] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
814
|
+
showRemoveAll && isEditMode && /* @__PURE__ */ jsx(CustomChip, { label: R.propOr("Remove all", "removeAll", labels), chipClasses: cx(chipClasses.mainChip, chipClasses.chip, classes.chipDeleteLeft, classes.chipBorder, classes.chipRadius), labelClasses: cx(chipClasses.spaceLabel, chipClasses.formatLabel), iconClasses: cx(chipClasses.icon, classes.chipDeleteIcon), onDelete: R.is(Function, onDeleteAllDimValues) ? () => onDeleteAllDimValues(dimId, selectedItems) : void 0 }),
|
|
770
815
|
R.map((chip) => valueChip(chip))(selectedItems)
|
|
771
816
|
] }) })
|
|
772
817
|
] }) });
|