@pega/lists-react 10.0.0-build.8.1 → 10.0.0-build.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/Core/Components/Card/hooks/useRowActions.d.ts.map +1 -1
- package/lib/Core/Components/Card/hooks/useRowActions.js +8 -1
- package/lib/Core/Components/Card/hooks/useRowActions.js.map +1 -1
- package/lib/Core/Components/DefaultComponents/CellRenderers/RowActionMenu.d.ts.map +1 -1
- package/lib/Core/Components/DefaultComponents/CellRenderers/RowActionMenu.js +28 -11
- package/lib/Core/Components/DefaultComponents/CellRenderers/RowActionMenu.js.map +1 -1
- package/lib/Core/Components/DefaultComponents/CellRenderers/RowDeleteAction.d.ts.map +1 -1
- package/lib/Core/Components/DefaultComponents/CellRenderers/RowDeleteAction.js +12 -2
- package/lib/Core/Components/DefaultComponents/CellRenderers/RowDeleteAction.js.map +1 -1
- package/lib/Core/Components/Toolbar/AdvanceToolbar.d.ts.map +1 -1
- package/lib/Core/Components/Toolbar/AdvanceToolbar.js +8 -2
- package/lib/Core/Components/Toolbar/AdvanceToolbar.js.map +1 -1
- package/lib/Core/Components/Toolbar/ColumnSelector.d.ts.map +1 -1
- package/lib/Core/Components/Toolbar/ColumnSelector.js +13 -3
- package/lib/Core/Components/Toolbar/ColumnSelector.js.map +1 -1
- package/lib/Core/Components/Toolbar/Map/MapToolbar.d.ts +2 -2
- package/lib/Core/Components/Toolbar/Map/MapToolbar.d.ts.map +1 -1
- package/lib/Core/Components/Toolbar/Map/MapToolbar.js +17 -18
- package/lib/Core/Components/Toolbar/Map/MapToolbar.js.map +1 -1
- package/lib/Core/Components/Toolbar/hooks/useMore.d.ts.map +1 -1
- package/lib/Core/Components/Toolbar/hooks/useMore.js +21 -3
- package/lib/Core/Components/Toolbar/hooks/useMore.js.map +1 -1
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRowActions.d.ts","sourceRoot":"","sources":["../../../../../Core/Components/Card/hooks/useRowActions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEtD,UAAU,kBAAkB;IAC1B,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC;IACrB,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;CACxB;AAED,QAAA,MAAM,aAAa,GAAI,eAGpB,kBAAkB,KAAG,CAAC,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,
|
|
1
|
+
{"version":3,"file":"useRowActions.d.ts","sourceRoot":"","sources":["../../../../../Core/Components/Card/hooks/useRowActions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEtD,UAAU,kBAAkB;IAC1B,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC;IACrB,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;CACxB;AAED,QAAA,MAAM,aAAa,GAAI,eAGpB,kBAAkB,KAAG,CAAC,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,SA+BnD,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -3,6 +3,13 @@ const useRowActions = ({ row, meta }) => {
|
|
|
3
3
|
const fetchActions = useCallback(async () => {
|
|
4
4
|
const rowContext = row.getContext();
|
|
5
5
|
let allActions = meta.rowActions ?? [];
|
|
6
|
+
// Row header cells share one mutable Column instance whose execution context is rebound to
|
|
7
|
+
// whichever row is currently rendering, so its value must be read now - before the await
|
|
8
|
+
// below - rather than deferred until the returned onClick fires.
|
|
9
|
+
const rowMeta = {
|
|
10
|
+
rowHeader: rowContext.getRowHeader?.()?.getValue(),
|
|
11
|
+
rowIndex: rowContext.getRowIndex?.() ?? -1
|
|
12
|
+
};
|
|
6
13
|
try {
|
|
7
14
|
const dynamicActions = await rowContext.getRowActionDetails(rowContext.getValue());
|
|
8
15
|
if (Array.isArray(dynamicActions)) {
|
|
@@ -15,7 +22,7 @@ const useRowActions = ({ row, meta }) => {
|
|
|
15
22
|
return allActions.map(action => ({
|
|
16
23
|
...action,
|
|
17
24
|
onClick: () => {
|
|
18
|
-
action.onClick(rowContext.getValue(), rowContext.refreshRow);
|
|
25
|
+
action.onClick(rowContext.getValue(), rowContext.refreshRow, rowMeta);
|
|
19
26
|
}
|
|
20
27
|
}));
|
|
21
28
|
}, [row, meta.rowActions]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRowActions.js","sourceRoot":"","sources":["../../../../../Core/Components/Card/hooks/useRowActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAUpC,MAAM,aAAa,GAAG,CAAC,EACrB,GAAG,EACH,IAAI,EACe,EAAyC,EAAE;IAC9D,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,IAAuB,EAAE;QAC7D,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;QACpC,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;QAEvC,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,mBAAmB,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;YACnF,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;gBAClC,UAAU,GAAG,CAAC,GAAG,cAAc,EAAE,GAAG,UAAU,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,6CAA6C;QAC/C,CAAC;QAED,OAAO,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC/B,GAAG,MAAM;YACT,OAAO,EAAE,GAAG,EAAE;gBACZ,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"useRowActions.js","sourceRoot":"","sources":["../../../../../Core/Components/Card/hooks/useRowActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAUpC,MAAM,aAAa,GAAG,CAAC,EACrB,GAAG,EACH,IAAI,EACe,EAAyC,EAAE;IAC9D,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,IAAuB,EAAE;QAC7D,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;QACpC,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;QAEvC,2FAA2F;QAC3F,yFAAyF;QACzF,iEAAiE;QACjE,MAAM,OAAO,GAAG;YACd,SAAS,EAAE,UAAU,CAAC,YAAY,EAAE,EAAE,EAAE,QAAQ,EAAE;YAClD,QAAQ,EAAE,UAAU,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,CAAC;SAC3C,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,mBAAmB,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;YACnF,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;gBAClC,UAAU,GAAG,CAAC,GAAG,cAAc,EAAE,GAAG,UAAU,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,6CAA6C;QAC/C,CAAC;QAED,OAAO,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC/B,GAAG,MAAM;YACT,OAAO,EAAE,GAAG,EAAE;gBACZ,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACxE,CAAC;SACF,CAAC,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAE3B,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;AAClE,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC","sourcesContent":["import { useCallback } from 'react';\n\nimport type { RsCoreTypes } from 'pega-repeating-structures-core';\nimport type { Action } from '@pega/cosmos-react-core';\n\ninterface UseRowActionsProps {\n row: RsCoreTypes.Row;\n meta: RsCoreTypes.Meta;\n}\n\nconst useRowActions = ({\n row,\n meta\n}: UseRowActionsProps): (() => Promise<Action[]>) | undefined => {\n const fetchActions = useCallback(async (): Promise<Action[]> => {\n const rowContext = row.getContext();\n let allActions = meta.rowActions ?? [];\n\n // Row header cells share one mutable Column instance whose execution context is rebound to\n // whichever row is currently rendering, so its value must be read now - before the await\n // below - rather than deferred until the returned onClick fires.\n const rowMeta = {\n rowHeader: rowContext.getRowHeader?.()?.getValue(),\n rowIndex: rowContext.getRowIndex?.() ?? -1\n };\n\n try {\n const dynamicActions = await rowContext.getRowActionDetails(rowContext.getValue());\n if (Array.isArray(dynamicActions)) {\n allActions = [...dynamicActions, ...allActions];\n }\n } catch (error) {\n // On error, fall back to static actions only\n }\n\n return allActions.map(action => ({\n ...action,\n onClick: () => {\n action.onClick(rowContext.getValue(), rowContext.refreshRow, rowMeta);\n }\n }));\n }, [row, meta.rowActions]);\n\n return meta.editing || meta.deleting ? fetchActions : undefined;\n};\n\nexport default useRowActions;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RowActionMenu.d.ts","sourceRoot":"","sources":["../../../../../Core/Components/DefaultComponents/CellRenderers/RowActionMenu.jsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"RowActionMenu.d.ts","sourceRoot":"","sources":["../../../../../Core/Components/DefaultComponents/CellRenderers/RowActionMenu.jsx"],"names":[],"mappings":";AA8DA;;;;4CAsEC;;;;;;;sBAnIqB,YAAY"}
|
|
@@ -4,12 +4,13 @@ import PropTypes from 'prop-types';
|
|
|
4
4
|
import { MenuButton } from '@pega/cosmos-react-core';
|
|
5
5
|
import { ROW_DENSITY } from 'pega-repeating-structures-core';
|
|
6
6
|
import useTranslate from '../../../Hooks/useTranslate';
|
|
7
|
-
const hydrateActions = (actions,
|
|
7
|
+
const hydrateActions = (actions, getActionContext) => {
|
|
8
8
|
return actions.map(action => ({
|
|
9
9
|
...action,
|
|
10
10
|
primary: action.text,
|
|
11
11
|
onClick: () => {
|
|
12
|
-
|
|
12
|
+
const { rowContext, refreshRow, rowMeta } = getActionContext();
|
|
13
|
+
action.onClick(rowContext, refreshRow, rowMeta);
|
|
13
14
|
}
|
|
14
15
|
}));
|
|
15
16
|
};
|
|
@@ -21,7 +22,15 @@ const isVisibleInMenu = (actionConfig, rowContext) => {
|
|
|
21
22
|
actionConfig.placement === 'menu' &&
|
|
22
23
|
actionConfig.isVisible?.(rowContext));
|
|
23
24
|
};
|
|
24
|
-
|
|
25
|
+
// Row header cells share one mutable Column instance whose execution context is rebound to
|
|
26
|
+
// whichever row is currently rendering, so its value must be read now - not later inside onClick.
|
|
27
|
+
const resolveRowMeta = executionContext => {
|
|
28
|
+
return {
|
|
29
|
+
rowHeader: executionContext?.getRowHeader?.()?.getValue(),
|
|
30
|
+
rowIndex: executionContext?.getRowIndex?.() ?? -1
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
const getConfigActions = ({ editing, deleting }, rowContext, translate) => {
|
|
25
34
|
const actions = [];
|
|
26
35
|
if (isVisibleInMenu(editing, rowContext) && typeof editing.onClick === 'function') {
|
|
27
36
|
actions.push({
|
|
@@ -37,27 +46,35 @@ const getConfigActions = ({ editing, deleting }, rowContext, refreshRow, transla
|
|
|
37
46
|
onClick: deleting.onClick
|
|
38
47
|
});
|
|
39
48
|
}
|
|
40
|
-
return
|
|
49
|
+
return actions;
|
|
41
50
|
};
|
|
42
51
|
function RowActionMenu({ getRsMeta, getExecutionContext, getParentContext }) {
|
|
43
52
|
const [translate] = useTranslate();
|
|
44
|
-
const {
|
|
53
|
+
const { getRowActionDetails } = getExecutionContext();
|
|
45
54
|
const [rowActions, setRowActions] = useState([]);
|
|
46
55
|
const [actionsFetched, setActionsFetched] = useState(false);
|
|
47
|
-
const rowContext = getValue();
|
|
48
56
|
const rsMeta = getRsMeta();
|
|
49
57
|
const { rowActions: tableMetaRowActions } = rsMeta;
|
|
50
|
-
const
|
|
58
|
+
const getLatestActionContext = () => {
|
|
59
|
+
const latestExecutionContext = getExecutionContext();
|
|
60
|
+
const latestRowContext = latestExecutionContext?.getValue();
|
|
61
|
+
return {
|
|
62
|
+
rowContext: latestRowContext,
|
|
63
|
+
refreshRow: latestExecutionContext?.refreshRow?.bind(null, latestRowContext),
|
|
64
|
+
rowMeta: resolveRowMeta(latestExecutionContext)
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
const staticActions = useMemo(() => hydrateActions(tableMetaRowActions ?? [], getLatestActionContext), [tableMetaRowActions, getExecutionContext]);
|
|
51
68
|
const fetchCaseDeatils = () => {
|
|
52
69
|
setActionsFetched(false);
|
|
53
|
-
const
|
|
70
|
+
const latestExecutionContext = getExecutionContext();
|
|
71
|
+
const currentRowContext = latestExecutionContext?.getValue();
|
|
54
72
|
let actions = [];
|
|
55
|
-
const configActions = getConfigActions(rsMeta,
|
|
73
|
+
const configActions = hydrateActions(getConfigActions(rsMeta, currentRowContext, translate), getLatestActionContext);
|
|
56
74
|
getRowActionDetails(currentRowContext)
|
|
57
75
|
.then(response => {
|
|
58
76
|
if (Array.isArray(response)) {
|
|
59
|
-
|
|
60
|
-
actions = hydrateActions(response, latestRowContext, refreshRow.bind(null, latestRowContext));
|
|
77
|
+
actions = hydrateActions(response, getLatestActionContext);
|
|
61
78
|
}
|
|
62
79
|
})
|
|
63
80
|
.finally(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RowActionMenu.js","sourceRoot":"","sources":["../../../../../Core/Components/DefaultComponents/CellRenderers/RowActionMenu.jsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE7D,OAAO,YAAY,MAAM,6BAA6B,CAAC;AAEvD,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"RowActionMenu.js","sourceRoot":"","sources":["../../../../../Core/Components/DefaultComponents/CellRenderers/RowActionMenu.jsx"],"names":[],"mappings":"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","sourcesContent":["import { useState, useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { MenuButton } from '@pega/cosmos-react-core';\nimport { ROW_DENSITY } from 'pega-repeating-structures-core';\n\nimport useTranslate from '../../../Hooks/useTranslate';\n\nconst hydrateActions = (actions, getActionContext) => {\n return actions.map(action => ({\n ...action,\n primary: action.text,\n onClick: () => {\n const { rowContext, refreshRow, rowMeta } = getActionContext();\n action.onClick(rowContext, refreshRow, rowMeta);\n }\n }));\n};\n\nconst isActionConfig = actionConfig => {\n return !!actionConfig && typeof actionConfig === 'object';\n};\n\nconst isVisibleInMenu = (actionConfig, rowContext) => {\n return (\n isActionConfig(actionConfig) &&\n actionConfig.placement === 'menu' &&\n actionConfig.isVisible?.(rowContext)\n );\n};\n\n// Row header cells share one mutable Column instance whose execution context is rebound to\n// whichever row is currently rendering, so its value must be read now - not later inside onClick.\nconst resolveRowMeta = executionContext => {\n return {\n rowHeader: executionContext?.getRowHeader?.()?.getValue(),\n rowIndex: executionContext?.getRowIndex?.() ?? -1\n };\n};\n\nconst getConfigActions = ({ editing, deleting }, rowContext, translate) => {\n const actions = [];\n\n if (isVisibleInMenu(editing, rowContext) && typeof editing.onClick === 'function') {\n actions.push({\n text: translate('Edit'),\n id: 'edit',\n onClick: editing.onClick\n });\n }\n\n if (isVisibleInMenu(deleting, rowContext) && typeof deleting.onClick === 'function') {\n actions.push({\n text: translate('Delete'),\n id: 'delete',\n onClick: deleting.onClick\n });\n }\n\n return actions;\n};\n\nfunction RowActionMenu({ getRsMeta, getExecutionContext, getParentContext }) {\n const [translate] = useTranslate();\n const { getRowActionDetails } = getExecutionContext();\n const [rowActions, setRowActions] = useState([]);\n const [actionsFetched, setActionsFetched] = useState(false);\n const rsMeta = getRsMeta();\n const { rowActions: tableMetaRowActions } = rsMeta;\n\n const getLatestActionContext = () => {\n const latestExecutionContext = getExecutionContext();\n const latestRowContext = latestExecutionContext?.getValue();\n\n return {\n rowContext: latestRowContext,\n refreshRow: latestExecutionContext?.refreshRow?.bind(null, latestRowContext),\n rowMeta: resolveRowMeta(latestExecutionContext)\n };\n };\n\n const staticActions = useMemo(\n () => hydrateActions(tableMetaRowActions ?? [], getLatestActionContext),\n [tableMetaRowActions, getExecutionContext]\n );\n\n const fetchCaseDeatils = () => {\n setActionsFetched(false);\n const latestExecutionContext = getExecutionContext();\n const currentRowContext = latestExecutionContext?.getValue();\n let actions = [];\n const configActions = hydrateActions(\n getConfigActions(rsMeta, currentRowContext, translate),\n getLatestActionContext\n );\n getRowActionDetails(currentRowContext)\n .then(response => {\n if (Array.isArray(response)) {\n actions = hydrateActions(response, getLatestActionContext);\n }\n })\n .finally(() => {\n setRowActions([...configActions, ...actions, ...staticActions]);\n setActionsFetched(true);\n });\n };\n const rowHeaderValue = getExecutionContext().getRowHeader()?.getValue();\n const translatedActionsText = translate('Actions');\n\n return (\n <MenuButton\n text={translatedActionsText}\n iconOnly\n variant='simple'\n compact={getParentContext().getRowDensity() === ROW_DENSITY.SHORT}\n tabIndex={-1}\n menu={{\n items: actionsFetched ? rowActions : [],\n emptyText: translate('No actions available'),\n loading: !actionsFetched\n }}\n aria-label={\n rowHeaderValue ? `${translatedActionsText} - ${rowHeaderValue}` : `${translatedActionsText}`\n }\n onClick={fetchCaseDeatils}\n placement='bottom-end'\n popover={{\n portal: true\n }}\n icon='more'\n />\n );\n}\n\nRowActionMenu.propTypes = {\n getRsMeta: PropTypes.func.isRequired,\n getExecutionContext: PropTypes.func.isRequired\n};\n\nexport default RowActionMenu;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RowDeleteAction.d.ts","sourceRoot":"","sources":["../../../../../Core/Components/DefaultComponents/CellRenderers/RowDeleteAction.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAIlE,UAAU,cAAc;IACtB,mBAAmB,EAAE,WAAW,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;IACtE,SAAS,EAAE,MAAM,UAAU,CAAC,WAAW,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,GAAG;QACpE,QAAQ,EAAE,WAAW,CAAC,YAAY,CAAC;KACpC,CAAC;CACH;
|
|
1
|
+
{"version":3,"file":"RowDeleteAction.d.ts","sourceRoot":"","sources":["../../../../../Core/Components/DefaultComponents/CellRenderers/RowDeleteAction.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAIlE,UAAU,cAAc;IACtB,mBAAmB,EAAE,WAAW,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;IACtE,SAAS,EAAE,MAAM,UAAU,CAAC,WAAW,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,GAAG;QACpE,QAAQ,EAAE,WAAW,CAAC,YAAY,CAAC;KACpC,CAAC;CACH;AAuBD,iBAAS,eAAe,CAAC,EAAE,mBAAmB,EAAE,SAAS,EAAE,EAAE,cAAc,2CAuC1E;AAED,eAAe,eAAe,CAAC"}
|
|
@@ -5,6 +5,14 @@ import useTranslate from '../../../Hooks/useTranslate';
|
|
|
5
5
|
const StyledButton = styled(Button)(({ $isVisible }) => css `
|
|
6
6
|
visibility: ${$isVisible ? 'visible' : 'hidden'};
|
|
7
7
|
`);
|
|
8
|
+
// Row header cells share one mutable Column instance whose execution context is rebound to
|
|
9
|
+
// whichever row is currently rendering, so its value must be read now - not later inside onClick.
|
|
10
|
+
const resolveRowMeta = (executionContext) => {
|
|
11
|
+
return {
|
|
12
|
+
rowHeader: executionContext?.getRowHeader?.()?.getValue(),
|
|
13
|
+
rowIndex: executionContext?.getRowIndex?.() ?? -1
|
|
14
|
+
};
|
|
15
|
+
};
|
|
8
16
|
function RowDeleteAction({ getExecutionContext, getRsMeta }) {
|
|
9
17
|
const [translate] = useTranslate();
|
|
10
18
|
const executionContext = getExecutionContext();
|
|
@@ -15,11 +23,13 @@ function RowDeleteAction({ getExecutionContext, getRsMeta }) {
|
|
|
15
23
|
// RowDelete renderer only mounts for delete-column configuration.
|
|
16
24
|
const isVisibleFromMeta = rowContext ? deletingConfig.isVisible(rowContext) : false;
|
|
17
25
|
const handleDelete = () => {
|
|
18
|
-
|
|
26
|
+
const latestExecutionContext = getExecutionContext();
|
|
27
|
+
const latestRowContext = latestExecutionContext?.getValue();
|
|
28
|
+
if (!latestRowContext) {
|
|
19
29
|
return;
|
|
20
30
|
}
|
|
21
31
|
// RowDelete uses action-config callback for delete behavior.
|
|
22
|
-
deletingConfig.onClick(
|
|
32
|
+
deletingConfig.onClick(latestRowContext, latestExecutionContext?.refreshRow, resolveRowMeta(latestExecutionContext));
|
|
23
33
|
};
|
|
24
34
|
return (_jsx(StyledButton, { variant: 'simple', icon: true, "$isVisible": isVisibleFromMeta, ...(!isVisibleFromMeta && { tabIndex: -1 }), label: deleteText, "aria-label": rowHeaderValue ? `${deleteText} - ${rowHeaderValue}` : deleteText, onClick: isVisibleFromMeta ? handleDelete : undefined, children: _jsx(Icon, { name: 'trash' }) }));
|
|
25
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RowDeleteAction.js","sourceRoot":"","sources":["../../../../../Core/Components/DefaultComponents/CellRenderers/RowDeleteAction.tsx"],"names":[],"mappings":";AAAA,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAGvD,OAAO,YAAY,MAAM,6BAA6B,CAAC;AAavD,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CACjC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,GAAG,CAAA;kBACP,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;GAChD,CACF,CAAC;AAEF,SAAS,eAAe,CAAC,EAAE,mBAAmB,EAAE,SAAS,EAAkB;IACzE,MAAM,CAAC,SAAS,CAAC,GAAG,YAAY,EAAE,CAAC;IACnC,MAAM,gBAAgB,GAAG,mBAAmB,EAAE,CAAC;IAC/C,MAAM,UAAU,GAAG,gBAAgB,EAAE,QAAQ,EAAE,CAAC;IAChD,MAAM,cAAc,GAAG,gBAAgB,EAAE,YAAY,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;IACtE,MAAM,UAAU,GAAG,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG,SAAS,EAAE,CAAC,QAAQ,CAAC;IAE5C,kEAAkE;IAClE,MAAM,iBAAiB,GAAG,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAEpF,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"RowDeleteAction.js","sourceRoot":"","sources":["../../../../../Core/Components/DefaultComponents/CellRenderers/RowDeleteAction.tsx"],"names":[],"mappings":";AAAA,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAGvD,OAAO,YAAY,MAAM,6BAA6B,CAAC;AAavD,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CACjC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,GAAG,CAAA;kBACP,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;GAChD,CACF,CAAC;AAEF,2FAA2F;AAC3F,kGAAkG;AAClG,MAAM,cAAc,GAAG,CACrB,gBAA8E,EAC9E,EAAE;IACF,OAAO;QACL,SAAS,EAAE,gBAAgB,EAAE,YAAY,EAAE,EAAE,EAAE,QAAQ,EAAE;QACzD,QAAQ,EAAE,gBAAgB,EAAE,WAAW,EAAE,EAAE,IAAI,CAAC,CAAC;KAClD,CAAC;AACJ,CAAC,CAAC;AAEF,SAAS,eAAe,CAAC,EAAE,mBAAmB,EAAE,SAAS,EAAkB;IACzE,MAAM,CAAC,SAAS,CAAC,GAAG,YAAY,EAAE,CAAC;IACnC,MAAM,gBAAgB,GAAG,mBAAmB,EAAE,CAAC;IAC/C,MAAM,UAAU,GAAG,gBAAgB,EAAE,QAAQ,EAAE,CAAC;IAChD,MAAM,cAAc,GAAG,gBAAgB,EAAE,YAAY,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;IACtE,MAAM,UAAU,GAAG,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG,SAAS,EAAE,CAAC,QAAQ,CAAC;IAE5C,kEAAkE;IAClE,MAAM,iBAAiB,GAAG,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAEpF,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,MAAM,sBAAsB,GAAG,mBAAmB,EAAE,CAAC;QACrD,MAAM,gBAAgB,GAAG,sBAAsB,EAAE,QAAQ,EAAE,CAAC;QAC5D,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QAED,6DAA6D;QAC7D,cAAc,CAAC,OAAO,CACpB,gBAAgB,EAChB,sBAAsB,EAAE,UAAU,EAClC,cAAc,CAAC,sBAAsB,CAAC,CACvC,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,CACL,KAAC,YAAY,IACX,OAAO,EAAC,QAAQ,EAChB,IAAI,sBACQ,iBAAiB,KACzB,CAAC,CAAC,iBAAiB,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAC5C,KAAK,EAAE,UAAU,gBACL,cAAc,CAAC,CAAC,CAAC,GAAG,UAAU,MAAM,cAAc,EAAE,CAAC,CAAC,CAAC,UAAU,EAC7E,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,YAErD,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,GAAG,GACR,CAChB,CAAC;AACJ,CAAC;AAED,eAAe,eAAe,CAAC","sourcesContent":["import styled, { css } from 'styled-components';\n\nimport { Button, Icon } from '@pega/cosmos-react-core';\nimport type { RsCoreTypes } from 'pega-repeating-structures-core';\n\nimport useTranslate from '../../../Hooks/useTranslate';\n\ninterface RowDeleteProps {\n getExecutionContext: RsCoreTypes.ColumnContext['getExecutionContext'];\n getRsMeta: () => ReturnType<RsCoreTypes.ColumnContext['getRsMeta']> & {\n deleting: RsCoreTypes.ActionConfig;\n };\n}\n\ninterface StyledButtonProps {\n $isVisible: boolean;\n}\n\nconst StyledButton = styled(Button)<StyledButtonProps>(\n ({ $isVisible }) => css`\n visibility: ${$isVisible ? 'visible' : 'hidden'};\n `\n);\n\n// Row header cells share one mutable Column instance whose execution context is rebound to\n// whichever row is currently rendering, so its value must be read now - not later inside onClick.\nconst resolveRowMeta = (\n executionContext: ReturnType<RsCoreTypes.ColumnContext['getExecutionContext']>\n) => {\n return {\n rowHeader: executionContext?.getRowHeader?.()?.getValue(),\n rowIndex: executionContext?.getRowIndex?.() ?? -1\n };\n};\n\nfunction RowDeleteAction({ getExecutionContext, getRsMeta }: RowDeleteProps) {\n const [translate] = useTranslate();\n const executionContext = getExecutionContext();\n const rowContext = executionContext?.getValue();\n const rowHeaderValue = executionContext?.getRowHeader?.()?.getValue();\n const deleteText = translate('Delete this row');\n const deletingConfig = getRsMeta().deleting;\n\n // RowDelete renderer only mounts for delete-column configuration.\n const isVisibleFromMeta = rowContext ? deletingConfig.isVisible(rowContext) : false;\n\n const handleDelete = () => {\n const latestExecutionContext = getExecutionContext();\n const latestRowContext = latestExecutionContext?.getValue();\n if (!latestRowContext) {\n return;\n }\n\n // RowDelete uses action-config callback for delete behavior.\n deletingConfig.onClick(\n latestRowContext,\n latestExecutionContext?.refreshRow,\n resolveRowMeta(latestExecutionContext)\n );\n };\n\n return (\n <StyledButton\n variant='simple'\n icon\n $isVisible={isVisibleFromMeta}\n {...(!isVisibleFromMeta && { tabIndex: -1 })}\n label={deleteText}\n aria-label={rowHeaderValue ? `${deleteText} - ${rowHeaderValue}` : deleteText}\n onClick={isVisibleFromMeta ? handleDelete : undefined}\n >\n <Icon name='trash' />\n </StyledButton>\n );\n}\n\nexport default RowDeleteAction;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdvanceToolbar.d.ts","sourceRoot":"","sources":["../../../../Core/Components/Toolbar/AdvanceToolbar.jsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AdvanceToolbar.d.ts","sourceRoot":"","sources":["../../../../Core/Components/Toolbar/AdvanceToolbar.jsx"],"names":[],"mappings":"AAyBA;;4CAiIC;;;;;;;;;sBA1JqB,YAAY"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
-
import {
|
|
3
|
+
import { useRef } from 'react';
|
|
4
|
+
import { ListToolbar, useBreakpoint } from '@pega/cosmos-react-core';
|
|
4
5
|
import { REPEATING_STRUCTURE_TEMPLATES } from 'pega-repeating-structures-core';
|
|
5
6
|
import { SELECTION_MODES } from '../../constants';
|
|
6
7
|
import showFeatureForTemplate from '../../templateFeatureSupport';
|
|
@@ -20,6 +21,10 @@ import ValidateMessage from './ValidateMessage';
|
|
|
20
21
|
import useFormControlProps from './hooks/useFormControlProps';
|
|
21
22
|
import useWrapAction from './hooks/useWrapAction';
|
|
22
23
|
export default function AdvanceToolbar({ view }) {
|
|
24
|
+
const toolbarRef = useRef(null);
|
|
25
|
+
// additionalActions (bulk actions/toolbar actions) should stay hidden on mobile until a
|
|
26
|
+
// selection is active; that decision lives here, in the parent, not in ListToolbar.
|
|
27
|
+
const isSmallOrAbove = useBreakpoint('sm', { breakpointRef: toolbarRef });
|
|
23
28
|
const { selectedRecordsCount, meta: { basicMode, selectionMode, title, showTitle, headingTag, toolbarActions, allowBulkActions, allowRefresh, mapFieldIds } = {}, rows, state, getContext, isLoading, showCount, refreshNotification, type: { forceRefresh }, announceCount, template } = view;
|
|
24
29
|
const { getRequiredDef } = getContext();
|
|
25
30
|
const { validatemessage } = getRequiredDef() || {};
|
|
@@ -37,6 +42,7 @@ export default function AdvanceToolbar({ view }) {
|
|
|
37
42
|
const formControlProps = useFormControlProps(view);
|
|
38
43
|
const wrapAction = useWrapAction(view);
|
|
39
44
|
const additionalActions = (_jsxs(_Fragment, { children: [basicMode && (_jsx(ToolbarActions, { toolbarActions: toolbarActions?.filter(action => !action.id.startsWith('Add')) })), allowBulkActions && template !== REPEATING_STRUCTURE_TEMPLATES.TIMELINE && (_jsx(ActionsMenu, { enableActionsMenu: enableActionsMenu, view: view }))] }));
|
|
45
|
+
const responsiveAdditionalActions = isSmallOrAbove || enableActionsMenu ? additionalActions : undefined;
|
|
40
46
|
const createNewAction = toolbarActions?.find(action => action.id.startsWith('Add'));
|
|
41
47
|
const createNew = createNewAction && basicMode
|
|
42
48
|
? {
|
|
@@ -44,7 +50,7 @@ export default function AdvanceToolbar({ view }) {
|
|
|
44
50
|
onClick: createNewAction.onClick
|
|
45
51
|
}
|
|
46
52
|
: undefined;
|
|
47
|
-
const Toolbar = template === REPEATING_STRUCTURE_TEMPLATES.MAP ? (_jsx(MapToolbar, { locationFieldId: mapFieldIds?.location, name: title, showName: showTitle, headingTag: headingTag, formControlProps: formControlProps, rows: rows, count: count, createNew: createNew, additionalActions:
|
|
53
|
+
const Toolbar = template === REPEATING_STRUCTURE_TEMPLATES.MAP ? (_jsx(MapToolbar, { locationFieldId: mapFieldIds?.location, name: title, showName: showTitle, headingTag: headingTag, formControlProps: formControlProps, rows: rows, count: count, createNew: createNew, additionalActions: responsiveAdditionalActions, ref: toolbarRef })) : (_jsxs(_Fragment, { children: [_jsx(ListToolbar, { name: title, showName: showTitle, headingTag: headingTag, formControlProps: formControlProps, viewSelector: viewSelector, search: search, count: count, additionalActions: responsiveAdditionalActions, filter: filter, group: showFeatureForTemplate(template, 'group') && group, sort: sort, actions: actions, actionsButtonRef: actionsButtonRef, createNew: createNew, wrap: wrapAction, ref: toolbarRef }), selectedActionContent, createEditViewContent] }));
|
|
48
54
|
return (_jsxs(AnnounceRowsCount, { state: state, count: count, isLoading: isLoading, announceCount: announceCount, children: [_jsx(ValidateMessage, { message: validatemessage, children: Toolbar }), refreshNotification && (_jsx(RefreshBanner, { refreshNotification: refreshNotification, forceRefresh: forceRefresh, viewName: viewName, allowRefresh: allowRefresh }))] }));
|
|
49
55
|
}
|
|
50
56
|
AdvanceToolbar.propTypes = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdvanceToolbar.js","sourceRoot":"","sources":["../../../../Core/Components/Toolbar/AdvanceToolbar.jsx"],"names":[],"mappings":";AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"AdvanceToolbar.js","sourceRoot":"","sources":["../../../../Core/Components/Toolbar/AdvanceToolbar.jsx"],"names":[],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types';\nimport { useRef } from 'react';\n\nimport { ListToolbar, useBreakpoint } from '@pega/cosmos-react-core';\nimport { REPEATING_STRUCTURE_TEMPLATES } from 'pega-repeating-structures-core';\n\nimport { SELECTION_MODES } from '../../constants';\nimport showFeatureForTemplate from '../../templateFeatureSupport';\n\nimport ActionsMenu from './ActionsMenu';\nimport MapToolbar from './Map/MapToolbar';\nimport ToolbarActions from './ToolbarActions';\nimport useSearch from './hooks/useSearch';\nimport useFilter from './hooks/useFilter';\nimport usePersonalization from './hooks/usePersonalization';\nimport useMore from './hooks/useMore';\nimport useGroup from './hooks/useGroup/useGroup';\nimport useSort from './hooks/useSort/useSort';\nimport getCount from './utils/getCount';\nimport RefreshBanner from './RefreshBanner';\nimport AnnounceRowsCount from './AnnounceRowsCount';\nimport ValidateMessage from './ValidateMessage';\nimport useFormControlProps from './hooks/useFormControlProps';\nimport useWrapAction from './hooks/useWrapAction';\n\nexport default function AdvanceToolbar({ view }) {\n const toolbarRef = useRef(null);\n // additionalActions (bulk actions/toolbar actions) should stay hidden on mobile until a\n // selection is active; that decision lives here, in the parent, not in ListToolbar.\n const isSmallOrAbove = useBreakpoint('sm', { breakpointRef: toolbarRef });\n const {\n selectedRecordsCount,\n meta: {\n basicMode,\n selectionMode,\n title,\n showTitle,\n headingTag,\n toolbarActions,\n allowBulkActions,\n allowRefresh,\n mapFieldIds\n } = {},\n rows,\n state,\n getContext,\n isLoading,\n showCount,\n refreshNotification,\n type: { forceRefresh },\n announceCount,\n template\n } = view;\n const { getRequiredDef } = getContext();\n const { validatemessage } = getRequiredDef() || {};\n const { viewSelector, createEditViewContent } = usePersonalization({ view });\n const search = useSearch({ view });\n const count = showCount ? getCount({ view }) : undefined;\n const filter = useFilter({ view });\n const group = useGroup({ view });\n const sort = useSort({ view });\n const { actions, actionsButtonRef, selectedActionContent } = useMore({ view });\n const enableActionsMenu = selectionMode === SELECTION_MODES.multi && selectedRecordsCount !== 0;\n const activePersonalization = state.personalization?.active;\n const activePersonalizationName =\n state.personalization?.allPersonalizations?.[activePersonalization]?.name;\n const viewName = activePersonalizationName ? `${title}: ${activePersonalizationName}` : title;\n const formControlProps = useFormControlProps(view);\n const wrapAction = useWrapAction(view);\n\n const additionalActions = (\n <>\n {basicMode && (\n <ToolbarActions\n toolbarActions={toolbarActions?.filter(action => !action.id.startsWith('Add'))}\n />\n )}\n {allowBulkActions && template !== REPEATING_STRUCTURE_TEMPLATES.TIMELINE && (\n <ActionsMenu enableActionsMenu={enableActionsMenu} view={view} />\n )}\n </>\n );\n const responsiveAdditionalActions =\n isSmallOrAbove || enableActionsMenu ? additionalActions : undefined;\n\n const createNewAction = toolbarActions?.find(action => action.id.startsWith('Add'));\n const createNew =\n createNewAction && basicMode\n ? {\n label: createNewAction?.text,\n onClick: createNewAction.onClick\n }\n : undefined;\n\n const Toolbar =\n template === REPEATING_STRUCTURE_TEMPLATES.MAP ? (\n <MapToolbar\n locationFieldId={mapFieldIds?.location}\n name={title}\n showName={showTitle}\n headingTag={headingTag}\n formControlProps={formControlProps}\n rows={rows}\n count={count}\n createNew={createNew}\n additionalActions={responsiveAdditionalActions}\n ref={toolbarRef}\n />\n ) : (\n <>\n <ListToolbar\n name={title}\n showName={showTitle}\n headingTag={headingTag}\n formControlProps={formControlProps}\n viewSelector={viewSelector}\n search={search}\n count={count}\n additionalActions={responsiveAdditionalActions}\n filter={filter}\n group={showFeatureForTemplate(template, 'group') && group}\n sort={sort}\n actions={actions}\n actionsButtonRef={actionsButtonRef}\n createNew={createNew}\n wrap={wrapAction}\n ref={toolbarRef}\n />\n {selectedActionContent}\n {createEditViewContent}\n </>\n );\n\n return (\n <AnnounceRowsCount\n state={state}\n count={count}\n isLoading={isLoading}\n announceCount={announceCount}\n >\n <ValidateMessage message={validatemessage}>\n {Toolbar}\n {/* FIXME: This implementation of error status should be considered temporary until an official, and properly accessible, spec is determined. */}\n </ValidateMessage>\n {refreshNotification && (\n <RefreshBanner\n refreshNotification={refreshNotification}\n forceRefresh={forceRefresh}\n viewName={viewName}\n allowRefresh={allowRefresh}\n />\n )}\n </AnnounceRowsCount>\n );\n}\n\nAdvanceToolbar.propTypes = {\n view: PropTypes.objectOf(PropTypes.any).isRequired\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnSelector.d.ts","sourceRoot":"","sources":["../../../../Core/Components/Toolbar/ColumnSelector.jsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ColumnSelector.d.ts","sourceRoot":"","sources":["../../../../Core/Components/Toolbar/ColumnSelector.jsx"],"names":[],"mappings":"AAsBA;;;;;GAKG;AACH,yCAHW,MAAM,GACJ,GAAG,CAAC,OAAO,CAKvB;AAeD;;;;;GAKG;AACH,kEAHW,MAAM,SAsDhB;AAqCD,2FA0EC;;;;;;;;;AAnMD,6BAA8B,mBAAmB,CAAC;AAClD,sBAAuB,gBAAgB,CAAC;;;sBAnBlB,YAAY;AA8NlC;;;;;;4CAwBC"}
|
|
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { memo, useCallback, useEffect, useState, useMemo } from 'react';
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
4
|
import styled from 'styled-components';
|
|
5
|
-
import { Icon, SearchInput, Menu, menuHelpers, useElement, Flex, Button, useI18n } from '@pega/cosmos-react-core';
|
|
5
|
+
import { Icon, isTouchDevice, SearchInput, Menu, menuHelpers, useElement, Flex, Button, useI18n } from '@pega/cosmos-react-core';
|
|
6
6
|
import { getFieldIcon } from '../../Utils';
|
|
7
7
|
import useTranslate from '../../Hooks/useTranslate';
|
|
8
8
|
export const colsVisibility = 'Show/hide columns';
|
|
@@ -96,7 +96,17 @@ Footer.propTypes = {
|
|
|
96
96
|
disabled: PropTypes.bool.isRequired
|
|
97
97
|
};
|
|
98
98
|
const StyledMenu = styled(Menu) `
|
|
99
|
-
width: 16rem;
|
|
99
|
+
width: ${isTouchDevice ? 'auto' : '16rem'};
|
|
100
|
+
|
|
101
|
+
${isTouchDevice &&
|
|
102
|
+
`
|
|
103
|
+
height: 100%;
|
|
104
|
+
|
|
105
|
+
> div {
|
|
106
|
+
flex: 1;
|
|
107
|
+
min-height: 0;
|
|
108
|
+
}
|
|
109
|
+
`}
|
|
100
110
|
`;
|
|
101
111
|
export function ColumnSelectorControl(props) {
|
|
102
112
|
const { data, onSubmit, onCancel, action } = props;
|
|
@@ -110,7 +120,7 @@ export function ColumnSelectorControl(props) {
|
|
|
110
120
|
const [items, setItems] = useState(data);
|
|
111
121
|
const selectedColumns = useMemo(() => new Set(menuHelpers.getSelected(items).map(item => item.id)), [items]);
|
|
112
122
|
useEffect(() => {
|
|
113
|
-
if (searchRef) {
|
|
123
|
+
if (!isTouchDevice && searchRef) {
|
|
114
124
|
searchRef.focus();
|
|
115
125
|
}
|
|
116
126
|
}, [searchRef]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnSelector.js","sourceRoot":"","sources":["../../../../Core/Components/Toolbar/ColumnSelector.jsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACxE,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EACL,IAAI,EACJ,WAAW,EACX,IAAI,EACJ,WAAW,EACX,UAAU,EACV,IAAI,EACJ,MAAM,EACN,OAAO,EACR,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,YAAY,MAAM,0BAA0B,CAAC;AAEpD,MAAM,CAAC,MAAM,cAAc,GAAG,mBAAmB,CAAC;AAClD,MAAM,CAAC,MAAM,OAAO,GAAG,gBAAgB,CAAC;AAExC;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAI;IACrC,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACpC,OAAO,KAAC,IAAI,oBAAe,QAAQ,iBAAe,QAAQ,EAAE,IAAI,EAAE,QAAQ,GAAI,CAAC;AACjF,CAAC;AAED;;;;;;GAMG;AACH,SAAS,kBAAkB,CAAC,sBAAsB,EAAE,sBAAsB;IACxE,MAAM,YAAY,GAAG,CAAC,GAAG,sBAAsB,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/F,MAAM,cAAc,GAAG,CAAC,GAAG,sBAAsB,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACjG,OAAO,CAAC,GAAG,YAAY,EAAE,GAAG,cAAc,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM;IACpD,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,IAAI,CAAC,SAAS,EAAE,MAAM;QAAE,OAAO,MAAM,CAAC;IAEtC,MAAM,WAAW,GAAG,EAAE,CAAC;IAEvB,SAAS;QACP,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;SACtB,OAAO,CAAC,KAAK,CAAC,EAAE;QACf,MAAM,EAAE,EAAE,EAAE,QAAQ,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;QACjD,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QACjD,MAAM,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5F,IAAI,WAAW,CAAC,iBAAiB,CAAC;YAChC,WAAW,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;gBACxC,EAAE;gBACF,OAAO,EAAE,KAAK;gBACd,KAAK;gBACL,QAAQ,EAAE,MAAM,KAAK,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;gBACtD,IAAI;gBACJ,MAAM,EAAE,kBAAkB,CAAC,IAAI,CAAC;aACjC,CAAC,CAAC;aACA,CAAC;YACJ,WAAW,CAAC,iBAAiB,CAAC,GAAG;gBAC/B,EAAE,EAAE,YAAY,iBAAiB,EAAE;gBACnC,OAAO,EAAE,iBAAiB;gBAC1B,KAAK,EAAE;oBACL;wBACE,EAAE;wBACF,OAAO,EAAE,KAAK;wBACd,QAAQ,EAAE,MAAM,KAAK,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;wBACtD,KAAK;wBACL,IAAI;wBACJ,MAAM,EAAE,kBAAkB,CAAC,IAAI,CAAC;qBACjC;iBACF;aACF,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IACL,yEAAyE;IACzE,IAAI,WAAW,CAAC,SAAS,CAAC,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC;QAC3D,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC;QAC7C,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACtC,8EAA8E;IAC9E,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QACjB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE;IACvD,MAAM,CAAC,SAAS,CAAC,GAAG,YAAY,EAAE,CAAC;IACnC,OAAO,CACL,MAAC,IAAI,IAAC,SAAS,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,aACrC,KAAC,MAAM,IAAC,OAAO,EAAE,QAAQ,iBAAc,QAAQ,YAC5C,SAAS,CAAC,QAAQ,CAAC,GACb,EACT,KAAC,MAAM,IAAC,OAAO,EAAC,SAAS,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,iBAAc,QAAQ,YAClF,SAAS,CAAC,QAAQ,CAAC,GACb,IACJ,CACR,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC;AAE9B,MAAM,CAAC,SAAS,GAAG;IACjB,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU;IACnC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU;IACnC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU;CACpC,CAAC;AAEF,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;;CAE9B,CAAC;AACF,MAAM,UAAU,qBAAqB,CAAC,KAAK;IACzC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACnD,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;IAEpB,MAAM,sBAAsB,GAAG,OAAO,CACpC,GAAG,EAAE,CACH,IAAI,GAAG,CACL,WAAW;SACR,OAAO,CAAC,IAAI,CAAC;SACb,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;SAC7B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CACxB,EACH,CAAC,IAAI,CAAC,CACP,CAAC;IAEF,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACjD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,eAAe,GAAG,OAAO,CAC7B,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAClE,CAAC,KAAK,CAAC,CACR,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;IACH,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE;QACjC,OAAO,WAAW,CAAC,OAAO,CACxB,UAAU;YACR,CAAC,CAAC,WAAW;iBACR,OAAO,CAAC,KAAK,CAAC;iBACd,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;YACtF,CAAC,CAAC,KAAK,EACT,IAAI,CAAC,EAAE;YACL,OAAO;gBACL,GAAG,IAAI;gBACP,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ;gBAChD,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,MAAM,KAAK,cAAc,IAAI,eAAe,CAAC,IAAI,IAAI,CAAC;aAClF,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;IAExB,MAAM,eAAe,GAAG,OAAO,CAC7B,GAAG,EAAE,CAAC,kBAAkB,CAAC,sBAAsB,EAAE,eAAe,CAAC,EACjE,CAAC,sBAAsB,EAAE,eAAe,EAAE,MAAM,CAAC,CAClD,CAAC;IAEF,MAAM,eAAe,GACnB,CAAC,CAAC,MAAM,KAAK,cAAc,IAAI,eAAe,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3F,OAAO,CACL,KAAC,UAAU,kBACG,CAAC,CAAC,SAAS,CAAC,EACxB,KAAK,EAAE,aAAa,EACpB,IAAI,EAAC,cAAc,EACnB,WAAW,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE;YACxB,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAClE,CAAC,EACD,IAAI,EAAC,SAAS,EACd,cAAc,EAAE,SAAS,IAAI,SAAS,EACtC,MAAM,EAAE,KAAC,WAAW,IAAC,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,EAAE,YAAY,GAAI,EAC5F,MAAM,EACJ,KAAC,MAAM,IACL,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,EACzC,QAAQ,EAAE,CAAC,eAAe,GAC1B,GAEJ,CACH,CAAC;AACJ,CAAC;AAED,qBAAqB,CAAC,SAAS,GAAG;IAChC,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,UAAU;IACpD,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU;IACnC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU;IACnC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,UAAU;CACpC,CAAC;AAEF,SAAS,cAAc,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE;IAC3E,MAAM,WAAW,GAAG,OAAO,CACzB,GAAG,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,EAC7C,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,CAC3B,CAAC;IAEF,MAAM,eAAe,GAAG,WAAW,CACjC,WAAW,CAAC,EAAE;QACZ,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,QAAQ,CAAC,WAAW,CAAC,CAAC;QACxB,CAAC;QACD,aAAa,EAAE,CAAC;IAClB,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,OAAO,CACL,KAAC,qBAAqB,IACpB,IAAI,EAAE,WAAW,EACjB,QAAQ,EAAE,eAAe,EACzB,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,MAAM,GACd,CACH,CAAC;AACJ,CAAC;AAED,cAAc,CAAC,SAAS,GAAG;IACzB,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU;IACnC,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,UAAU;IACzD,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,UAAU;IACrD,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,UAAU;IACnC,aAAa,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU;CACzC,CAAC;AAEF,eAAe,IAAI,CAAC,cAAc,CAAC,CAAC","sourcesContent":["import { memo, useCallback, useEffect, useState, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport {\n Icon,\n SearchInput,\n Menu,\n menuHelpers,\n useElement,\n Flex,\n Button,\n useI18n\n} from '@pega/cosmos-react-core';\n\nimport { getFieldIcon } from '../../Utils';\nimport useTranslate from '../../Hooks/useTranslate';\n\nexport const colsVisibility = 'Show/hide columns';\nexport const pinning = 'Freeze columns';\n\n/**\n * Returns an Icon component based on the field type.\n *\n * @param {string} type - The type of the field for which the icon is required.\n * @returns {JSX.Element} - A React Icon component with the appropriate icon name.\n */\nexport function getIconByFieldType(type) {\n const iconName = getFieldIcon(type);\n return <Icon data-test-id={iconName} data-testid={iconName} name={iconName} />;\n}\n\n/**\n * Determines the list of changed column IDs.\n *\n * @param {Set<string>} initialSelectedColumns - The initial set of selected column IDs.\n * @param {Set<string>} currentSelectedColumns - The current set of selected column IDs.\n * @returns {string[]} - Array of modified column IDs.\n */\nfunction getModifiedColumns(initialSelectedColumns, currentSelectedColumns) {\n const addedColumns = [...currentSelectedColumns].filter(id => !initialSelectedColumns.has(id));\n const removedColumns = [...initialSelectedColumns].filter(id => !currentSelectedColumns.has(id));\n return [...addedColumns, ...removedColumns];\n}\n\n/**\n * Transforms the columns array into array of columns grouped by category\n * @param {Array} columns - The array of column objects to be transformed.\n * @param {string} action - The action to perform, either 'Show/hide columns' or 'Freeze columns'.\n * @returns Arrays of columns nested by category\n */\nexport function transformData(fieldDefs, state, action) {\n const result = [];\n if (!fieldDefs?.length) return result;\n\n const categoryObj = {};\n\n fieldDefs\n ?.filter(c => c.toggle)\n .forEach(field => {\n const { id, category = [], type, label } = field;\n const visible = state.visibleColumns?.includes(id);\n const frozen = state.freezeColumns?.includes(id);\n const lastCategoryLabel = category.length ? category[category.length - 1].label : undefined;\n if (categoryObj[lastCategoryLabel])\n categoryObj[lastCategoryLabel].items.push({\n id,\n primary: label,\n label,\n selected: action === colsVisibility ? visible : frozen,\n type,\n visual: getIconByFieldType(type)\n });\n else {\n categoryObj[lastCategoryLabel] = {\n id: `category:${lastCategoryLabel}`,\n primary: lastCategoryLabel,\n items: [\n {\n id,\n primary: label,\n selected: action === colsVisibility ? visible : frozen,\n label,\n type,\n visual: getIconByFieldType(type)\n }\n ]\n };\n }\n });\n // Items with no category attribute are set in the root of returned array\n if (categoryObj[undefined] && categoryObj[undefined].items) {\n result.push(...categoryObj[undefined].items);\n delete categoryObj[undefined];\n }\n const keys = Object.keys(categoryObj);\n // Items with category attribute are grouped inside the nested category object\n keys.forEach(key => {\n result.push(categoryObj[key]);\n });\n\n return result;\n}\n\nconst Footer = memo(({ onCancel, onSubmit, disabled }) => {\n const [translate] = useTranslate();\n return (\n <Flex container={{ justify: 'between' }}>\n <Button onClick={onCancel} data-testid='cancel'>\n {translate('Cancel')}\n </Button>\n <Button variant='primary' onClick={onSubmit} disabled={disabled} data-testid='submit'>\n {translate('Submit')}\n </Button>\n </Flex>\n );\n});\n\nFooter.displayName = 'Footer';\n\nFooter.propTypes = {\n onCancel: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n disabled: PropTypes.bool.isRequired\n};\n\nconst StyledMenu = styled(Menu)`\n width: 16rem;\n`;\nexport function ColumnSelectorControl(props) {\n const { data, onSubmit, onCancel, action } = props;\n const t = useI18n();\n\n const initialSelectedColumns = useMemo(\n () =>\n new Set(\n menuHelpers\n .flatten(data)\n .filter(item => item.selected)\n .map(item => item.id)\n ),\n [data]\n );\n\n const [searchText, setSearchText] = useState('');\n const [searchRef, setSearchRef] = useElement(null);\n const [items, setItems] = useState(data);\n const selectedColumns = useMemo(\n () => new Set(menuHelpers.getSelected(items).map(item => item.id)),\n [items]\n );\n\n useEffect(() => {\n if (searchRef) {\n searchRef.focus();\n }\n }, [searchRef]);\n\n const itemsToRender = useMemo(() => {\n return menuHelpers.mapTree(\n searchText\n ? menuHelpers\n .flatten(items)\n .filter(({ primary }) => primary.toLowerCase().includes(searchText.toLowerCase()))\n : items,\n item => {\n return {\n ...item,\n visual: item.visual,\n selected: item.items ? undefined : item.selected,\n disabled: item.selected && action === colsVisibility && selectedColumns.size <= 1\n };\n }\n );\n }, [searchText, items]);\n\n const modifiedColumns = useMemo(\n () => getModifiedColumns(initialSelectedColumns, selectedColumns),\n [initialSelectedColumns, selectedColumns, action]\n );\n\n const isSubmitEnabled =\n !(action === colsVisibility && selectedColumns.size === 0) && modifiedColumns.length > 0;\n return (\n <StyledMenu\n aria-label={t('columns')}\n items={itemsToRender}\n mode='multi-select'\n onItemClick={(id, args) => {\n setItems(cur => menuHelpers.toggleSelected(cur, id, args.mode));\n }}\n role='listbox'\n focusControlEl={searchRef || undefined}\n header={<SearchInput value={searchText} onSearchChange={setSearchText} ref={setSearchRef} />}\n footer={\n <Footer\n onCancel={onCancel}\n onSubmit={() => onSubmit(modifiedColumns)}\n disabled={!isSubmitEnabled}\n />\n }\n />\n );\n}\n\nColumnSelectorControl.propTypes = {\n data: PropTypes.arrayOf(PropTypes.object).isRequired,\n onSubmit: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired,\n action: PropTypes.string.isRequired\n};\n\nfunction ColumnSelector({ dispatch, fieldDefs, state, action, finishPopOver }) {\n const transformed = useMemo(\n () => transformData(fieldDefs, state, action),\n [fieldDefs, state, action]\n );\n\n const onSubmitHandler = useCallback(\n changedCols => {\n if (changedCols.length > 0) {\n dispatch(changedCols);\n }\n finishPopOver();\n },\n [dispatch]\n );\n\n return (\n <ColumnSelectorControl\n data={transformed}\n onSubmit={onSubmitHandler}\n onCancel={finishPopOver}\n action={action}\n />\n );\n}\n\nColumnSelector.propTypes = {\n dispatch: PropTypes.func.isRequired,\n fieldDefs: PropTypes.arrayOf(PropTypes.object).isRequired,\n state: PropTypes.arrayOf(PropTypes.object).isRequired,\n action: PropTypes.string.isRequired,\n finishPopOver: PropTypes.func.isRequired\n};\n\nexport default memo(ColumnSelector);\n"]}
|
|
1
|
+
{"version":3,"file":"ColumnSelector.js","sourceRoot":"","sources":["../../../../Core/Components/Toolbar/ColumnSelector.jsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACxE,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EACL,IAAI,EACJ,aAAa,EACb,WAAW,EACX,IAAI,EACJ,WAAW,EACX,UAAU,EACV,IAAI,EACJ,MAAM,EACN,OAAO,EACR,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,YAAY,MAAM,0BAA0B,CAAC;AAEpD,MAAM,CAAC,MAAM,cAAc,GAAG,mBAAmB,CAAC;AAClD,MAAM,CAAC,MAAM,OAAO,GAAG,gBAAgB,CAAC;AAExC;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAI;IACrC,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACpC,OAAO,KAAC,IAAI,oBAAe,QAAQ,iBAAe,QAAQ,EAAE,IAAI,EAAE,QAAQ,GAAI,CAAC;AACjF,CAAC;AAED;;;;;;GAMG;AACH,SAAS,kBAAkB,CAAC,sBAAsB,EAAE,sBAAsB;IACxE,MAAM,YAAY,GAAG,CAAC,GAAG,sBAAsB,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/F,MAAM,cAAc,GAAG,CAAC,GAAG,sBAAsB,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACjG,OAAO,CAAC,GAAG,YAAY,EAAE,GAAG,cAAc,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM;IACpD,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,IAAI,CAAC,SAAS,EAAE,MAAM;QAAE,OAAO,MAAM,CAAC;IAEtC,MAAM,WAAW,GAAG,EAAE,CAAC;IAEvB,SAAS;QACP,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;SACtB,OAAO,CAAC,KAAK,CAAC,EAAE;QACf,MAAM,EAAE,EAAE,EAAE,QAAQ,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;QACjD,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QACjD,MAAM,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5F,IAAI,WAAW,CAAC,iBAAiB,CAAC;YAChC,WAAW,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;gBACxC,EAAE;gBACF,OAAO,EAAE,KAAK;gBACd,KAAK;gBACL,QAAQ,EAAE,MAAM,KAAK,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;gBACtD,IAAI;gBACJ,MAAM,EAAE,kBAAkB,CAAC,IAAI,CAAC;aACjC,CAAC,CAAC;aACA,CAAC;YACJ,WAAW,CAAC,iBAAiB,CAAC,GAAG;gBAC/B,EAAE,EAAE,YAAY,iBAAiB,EAAE;gBACnC,OAAO,EAAE,iBAAiB;gBAC1B,KAAK,EAAE;oBACL;wBACE,EAAE;wBACF,OAAO,EAAE,KAAK;wBACd,QAAQ,EAAE,MAAM,KAAK,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;wBACtD,KAAK;wBACL,IAAI;wBACJ,MAAM,EAAE,kBAAkB,CAAC,IAAI,CAAC;qBACjC;iBACF;aACF,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IACL,yEAAyE;IACzE,IAAI,WAAW,CAAC,SAAS,CAAC,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC;QAC3D,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC;QAC7C,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACtC,8EAA8E;IAC9E,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QACjB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE;IACvD,MAAM,CAAC,SAAS,CAAC,GAAG,YAAY,EAAE,CAAC;IACnC,OAAO,CACL,MAAC,IAAI,IAAC,SAAS,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,aACrC,KAAC,MAAM,IAAC,OAAO,EAAE,QAAQ,iBAAc,QAAQ,YAC5C,SAAS,CAAC,QAAQ,CAAC,GACb,EACT,KAAC,MAAM,IAAC,OAAO,EAAC,SAAS,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,iBAAc,QAAQ,YAClF,SAAS,CAAC,QAAQ,CAAC,GACb,IACJ,CACR,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC;AAE9B,MAAM,CAAC,SAAS,GAAG;IACjB,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU;IACnC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU;IACnC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU;CACpC,CAAC;AAEF,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;WACpB,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;;IAEvC,aAAa;IACf;;;;;;;GAOC;CACF,CAAC;AACF,MAAM,UAAU,qBAAqB,CAAC,KAAK;IACzC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACnD,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;IAEpB,MAAM,sBAAsB,GAAG,OAAO,CACpC,GAAG,EAAE,CACH,IAAI,GAAG,CACL,WAAW;SACR,OAAO,CAAC,IAAI,CAAC;SACb,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;SAC7B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CACxB,EACH,CAAC,IAAI,CAAC,CACP,CAAC;IAEF,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACjD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,eAAe,GAAG,OAAO,CAC7B,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAClE,CAAC,KAAK,CAAC,CACR,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,aAAa,IAAI,SAAS,EAAE,CAAC;YAChC,SAAS,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;IACH,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE;QACjC,OAAO,WAAW,CAAC,OAAO,CACxB,UAAU;YACR,CAAC,CAAC,WAAW;iBACR,OAAO,CAAC,KAAK,CAAC;iBACd,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;YACtF,CAAC,CAAC,KAAK,EACT,IAAI,CAAC,EAAE;YACL,OAAO;gBACL,GAAG,IAAI;gBACP,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ;gBAChD,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,MAAM,KAAK,cAAc,IAAI,eAAe,CAAC,IAAI,IAAI,CAAC;aAClF,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;IAExB,MAAM,eAAe,GAAG,OAAO,CAC7B,GAAG,EAAE,CAAC,kBAAkB,CAAC,sBAAsB,EAAE,eAAe,CAAC,EACjE,CAAC,sBAAsB,EAAE,eAAe,EAAE,MAAM,CAAC,CAClD,CAAC;IAEF,MAAM,eAAe,GACnB,CAAC,CAAC,MAAM,KAAK,cAAc,IAAI,eAAe,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3F,OAAO,CACL,KAAC,UAAU,kBACG,CAAC,CAAC,SAAS,CAAC,EACxB,KAAK,EAAE,aAAa,EACpB,IAAI,EAAC,cAAc,EACnB,WAAW,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE;YACxB,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAClE,CAAC,EACD,IAAI,EAAC,SAAS,EACd,cAAc,EAAE,SAAS,IAAI,SAAS,EACtC,MAAM,EAAE,KAAC,WAAW,IAAC,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,EAAE,YAAY,GAAI,EAC5F,MAAM,EACJ,KAAC,MAAM,IACL,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,EACzC,QAAQ,EAAE,CAAC,eAAe,GAC1B,GAEJ,CACH,CAAC;AACJ,CAAC;AAED,qBAAqB,CAAC,SAAS,GAAG;IAChC,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,UAAU;IACpD,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU;IACnC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU;IACnC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,UAAU;CACpC,CAAC;AAEF,SAAS,cAAc,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE;IAC3E,MAAM,WAAW,GAAG,OAAO,CACzB,GAAG,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,EAC7C,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,CAC3B,CAAC;IAEF,MAAM,eAAe,GAAG,WAAW,CACjC,WAAW,CAAC,EAAE;QACZ,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,QAAQ,CAAC,WAAW,CAAC,CAAC;QACxB,CAAC;QACD,aAAa,EAAE,CAAC;IAClB,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,OAAO,CACL,KAAC,qBAAqB,IACpB,IAAI,EAAE,WAAW,EACjB,QAAQ,EAAE,eAAe,EACzB,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,MAAM,GACd,CACH,CAAC;AACJ,CAAC;AAED,cAAc,CAAC,SAAS,GAAG;IACzB,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU;IACnC,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,UAAU;IACzD,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,UAAU;IACrD,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,UAAU;IACnC,aAAa,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU;CACzC,CAAC;AAEF,eAAe,IAAI,CAAC,cAAc,CAAC,CAAC","sourcesContent":["import { memo, useCallback, useEffect, useState, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport {\n Icon,\n isTouchDevice,\n SearchInput,\n Menu,\n menuHelpers,\n useElement,\n Flex,\n Button,\n useI18n\n} from '@pega/cosmos-react-core';\n\nimport { getFieldIcon } from '../../Utils';\nimport useTranslate from '../../Hooks/useTranslate';\n\nexport const colsVisibility = 'Show/hide columns';\nexport const pinning = 'Freeze columns';\n\n/**\n * Returns an Icon component based on the field type.\n *\n * @param {string} type - The type of the field for which the icon is required.\n * @returns {JSX.Element} - A React Icon component with the appropriate icon name.\n */\nexport function getIconByFieldType(type) {\n const iconName = getFieldIcon(type);\n return <Icon data-test-id={iconName} data-testid={iconName} name={iconName} />;\n}\n\n/**\n * Determines the list of changed column IDs.\n *\n * @param {Set<string>} initialSelectedColumns - The initial set of selected column IDs.\n * @param {Set<string>} currentSelectedColumns - The current set of selected column IDs.\n * @returns {string[]} - Array of modified column IDs.\n */\nfunction getModifiedColumns(initialSelectedColumns, currentSelectedColumns) {\n const addedColumns = [...currentSelectedColumns].filter(id => !initialSelectedColumns.has(id));\n const removedColumns = [...initialSelectedColumns].filter(id => !currentSelectedColumns.has(id));\n return [...addedColumns, ...removedColumns];\n}\n\n/**\n * Transforms the columns array into array of columns grouped by category\n * @param {Array} columns - The array of column objects to be transformed.\n * @param {string} action - The action to perform, either 'Show/hide columns' or 'Freeze columns'.\n * @returns Arrays of columns nested by category\n */\nexport function transformData(fieldDefs, state, action) {\n const result = [];\n if (!fieldDefs?.length) return result;\n\n const categoryObj = {};\n\n fieldDefs\n ?.filter(c => c.toggle)\n .forEach(field => {\n const { id, category = [], type, label } = field;\n const visible = state.visibleColumns?.includes(id);\n const frozen = state.freezeColumns?.includes(id);\n const lastCategoryLabel = category.length ? category[category.length - 1].label : undefined;\n if (categoryObj[lastCategoryLabel])\n categoryObj[lastCategoryLabel].items.push({\n id,\n primary: label,\n label,\n selected: action === colsVisibility ? visible : frozen,\n type,\n visual: getIconByFieldType(type)\n });\n else {\n categoryObj[lastCategoryLabel] = {\n id: `category:${lastCategoryLabel}`,\n primary: lastCategoryLabel,\n items: [\n {\n id,\n primary: label,\n selected: action === colsVisibility ? visible : frozen,\n label,\n type,\n visual: getIconByFieldType(type)\n }\n ]\n };\n }\n });\n // Items with no category attribute are set in the root of returned array\n if (categoryObj[undefined] && categoryObj[undefined].items) {\n result.push(...categoryObj[undefined].items);\n delete categoryObj[undefined];\n }\n const keys = Object.keys(categoryObj);\n // Items with category attribute are grouped inside the nested category object\n keys.forEach(key => {\n result.push(categoryObj[key]);\n });\n\n return result;\n}\n\nconst Footer = memo(({ onCancel, onSubmit, disabled }) => {\n const [translate] = useTranslate();\n return (\n <Flex container={{ justify: 'between' }}>\n <Button onClick={onCancel} data-testid='cancel'>\n {translate('Cancel')}\n </Button>\n <Button variant='primary' onClick={onSubmit} disabled={disabled} data-testid='submit'>\n {translate('Submit')}\n </Button>\n </Flex>\n );\n});\n\nFooter.displayName = 'Footer';\n\nFooter.propTypes = {\n onCancel: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n disabled: PropTypes.bool.isRequired\n};\n\nconst StyledMenu = styled(Menu)`\n width: ${isTouchDevice ? 'auto' : '16rem'};\n\n ${isTouchDevice &&\n `\n height: 100%;\n\n > div {\n flex: 1;\n min-height: 0;\n }\n `}\n`;\nexport function ColumnSelectorControl(props) {\n const { data, onSubmit, onCancel, action } = props;\n const t = useI18n();\n\n const initialSelectedColumns = useMemo(\n () =>\n new Set(\n menuHelpers\n .flatten(data)\n .filter(item => item.selected)\n .map(item => item.id)\n ),\n [data]\n );\n\n const [searchText, setSearchText] = useState('');\n const [searchRef, setSearchRef] = useElement(null);\n const [items, setItems] = useState(data);\n const selectedColumns = useMemo(\n () => new Set(menuHelpers.getSelected(items).map(item => item.id)),\n [items]\n );\n\n useEffect(() => {\n if (!isTouchDevice && searchRef) {\n searchRef.focus();\n }\n }, [searchRef]);\n\n const itemsToRender = useMemo(() => {\n return menuHelpers.mapTree(\n searchText\n ? menuHelpers\n .flatten(items)\n .filter(({ primary }) => primary.toLowerCase().includes(searchText.toLowerCase()))\n : items,\n item => {\n return {\n ...item,\n visual: item.visual,\n selected: item.items ? undefined : item.selected,\n disabled: item.selected && action === colsVisibility && selectedColumns.size <= 1\n };\n }\n );\n }, [searchText, items]);\n\n const modifiedColumns = useMemo(\n () => getModifiedColumns(initialSelectedColumns, selectedColumns),\n [initialSelectedColumns, selectedColumns, action]\n );\n\n const isSubmitEnabled =\n !(action === colsVisibility && selectedColumns.size === 0) && modifiedColumns.length > 0;\n return (\n <StyledMenu\n aria-label={t('columns')}\n items={itemsToRender}\n mode='multi-select'\n onItemClick={(id, args) => {\n setItems(cur => menuHelpers.toggleSelected(cur, id, args.mode));\n }}\n role='listbox'\n focusControlEl={searchRef || undefined}\n header={<SearchInput value={searchText} onSearchChange={setSearchText} ref={setSearchRef} />}\n footer={\n <Footer\n onCancel={onCancel}\n onSubmit={() => onSubmit(modifiedColumns)}\n disabled={!isSubmitEnabled}\n />\n }\n />\n );\n}\n\nColumnSelectorControl.propTypes = {\n data: PropTypes.arrayOf(PropTypes.object).isRequired,\n onSubmit: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired,\n action: PropTypes.string.isRequired\n};\n\nfunction ColumnSelector({ dispatch, fieldDefs, state, action, finishPopOver }) {\n const transformed = useMemo(\n () => transformData(fieldDefs, state, action),\n [fieldDefs, state, action]\n );\n\n const onSubmitHandler = useCallback(\n changedCols => {\n if (changedCols.length > 0) {\n dispatch(changedCols);\n }\n finishPopOver();\n },\n [dispatch]\n );\n\n return (\n <ColumnSelectorControl\n data={transformed}\n onSubmit={onSubmitHandler}\n onCancel={finishPopOver}\n action={action}\n />\n );\n}\n\nColumnSelector.propTypes = {\n dispatch: PropTypes.func.isRequired,\n fieldDefs: PropTypes.arrayOf(PropTypes.object).isRequired,\n state: PropTypes.arrayOf(PropTypes.object).isRequired,\n action: PropTypes.string.isRequired,\n finishPopOver: PropTypes.func.isRequired\n};\n\nexport default memo(ColumnSelector);\n"]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type { ListToolbarProps } from '@pega/cosmos-react-core';
|
|
1
|
+
import type { ForwardRefForwardPropsComponent, ListToolbarProps } from '@pega/cosmos-react-core';
|
|
2
2
|
import type { RsCoreTypes } from 'pega-repeating-structures-core';
|
|
3
3
|
interface MapToolbarProps extends ListToolbarProps {
|
|
4
4
|
locationFieldId: NonNullable<RsCoreTypes.View['meta']['mapFieldIds']>['location'];
|
|
5
5
|
rows: RsCoreTypes.View['rows'];
|
|
6
6
|
}
|
|
7
|
-
declare const MapToolbar:
|
|
7
|
+
declare const MapToolbar: ForwardRefForwardPropsComponent<MapToolbarProps>;
|
|
8
8
|
export default MapToolbar;
|
|
9
9
|
//# sourceMappingURL=MapToolbar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MapToolbar.d.ts","sourceRoot":"","sources":["../../../../../Core/Components/Toolbar/Map/MapToolbar.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MapToolbar.d.ts","sourceRoot":"","sources":["../../../../../Core/Components/Toolbar/Map/MapToolbar.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,+BAA+B,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACjG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAIlE,UAAU,eAAgB,SAAQ,gBAAgB;IAChD,eAAe,EAAE,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAClF,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;CAChC;AAMD,QAAA,MAAM,UAAU,EAAE,+BAA+B,CAAC,eAAe,CA2C/D,CAAC;AAEH,eAAe,UAAU,CAAC"}
|
|
@@ -1,27 +1,26 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { useMemo } from 'react';
|
|
3
|
-
import { getGoogleMapsDirHref, ListToolbar, useI18n } from '@pega/cosmos-react-core';
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef, useMemo } from 'react';
|
|
3
|
+
import { Button, Flex, getGoogleMapsDirHref, Icon, ListToolbar, useI18n } from '@pega/cosmos-react-core';
|
|
4
4
|
import getValue from '../../../Views/Map/utils';
|
|
5
|
-
|
|
5
|
+
// getValue stringifies missing/nullish field values (e.g. to 'undefined' or 'null'), so those must be filtered out explicitly.
|
|
6
|
+
const isValidLocation = (location) => Boolean(location) && location !== 'undefined' && location !== 'null';
|
|
7
|
+
const MapToolbar = forwardRef(function MapToolbar({ locationFieldId, rows, additionalActions, ...restProps }, ref) {
|
|
6
8
|
const t = useI18n();
|
|
7
9
|
const routeHref = useMemo(() => {
|
|
8
10
|
if (!rows || rows.length < 1 || !locationFieldId)
|
|
9
11
|
return '';
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
+
const locations = rows
|
|
13
|
+
.map(({ rowData }) => getValue(rowData, locationFieldId))
|
|
14
|
+
.filter(isValidLocation);
|
|
15
|
+
if (locations.length < 1)
|
|
16
|
+
return '';
|
|
17
|
+
const waypoints = locations.slice(0, -1);
|
|
18
|
+
const [destination] = locations.slice(-1);
|
|
12
19
|
return getGoogleMapsDirHref(destination, waypoints);
|
|
13
20
|
}, [rows, locationFieldId]);
|
|
14
|
-
return (_jsx(ListToolbar, { ...restProps,
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
href: routeHref,
|
|
19
|
-
onClick: (id, e) => {
|
|
20
|
-
e.preventDefault();
|
|
21
|
-
window.open(routeHref, '_blank');
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
] }));
|
|
25
|
-
};
|
|
21
|
+
return (_jsx(ListToolbar, { ...restProps, ref: ref, additionalActions: _jsxs(_Fragment, { children: [additionalActions, _jsx(Button, { disabled: !routeHref, ...(routeHref
|
|
22
|
+
? { href: routeHref, target: '_blank', rel: 'noopener noreferrer' }
|
|
23
|
+
: {}), children: _jsxs(Flex, { container: { alignItems: 'center', gap: 0.5 }, as: 'span', children: [_jsx(Icon, { name: 'route' }), t('get_directions')] }) })] }) }));
|
|
24
|
+
});
|
|
26
25
|
export default MapToolbar;
|
|
27
26
|
//# sourceMappingURL=MapToolbar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MapToolbar.js","sourceRoot":"","sources":["../../../../../Core/Components/Toolbar/Map/MapToolbar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"MapToolbar.js","sourceRoot":"","sources":["../../../../../Core/Components/Toolbar/Map/MapToolbar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,EACL,MAAM,EACN,IAAI,EACJ,oBAAoB,EACpB,IAAI,EACJ,WAAW,EACX,OAAO,EACR,MAAM,yBAAyB,CAAC;AAIjC,OAAO,QAAQ,MAAM,0BAA0B,CAAC;AAOhD,+HAA+H;AAC/H,MAAM,eAAe,GAAG,CAAC,QAAgB,EAAW,EAAE,CACpD,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,MAAM,CAAC;AAEvE,MAAM,UAAU,GAAqD,UAAU,CAAC,SAAS,UAAU,CACjG,EAAE,eAAe,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,SAAS,EAAmB,EAC3E,GAA2B;IAE3B,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;IAEpB,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE;QAC7B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO,EAAE,CAAC;QAE5D,MAAM,SAAS,GAAG,IAAI;aACnB,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;aACxD,MAAM,CAAC,eAAe,CAAC,CAAC;QAE3B,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,EAAE,CAAC;QAEpC,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAE1C,OAAO,oBAAoB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACtD,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC;IAE5B,OAAO,CACL,KAAC,WAAW,OACN,SAAS,EACb,GAAG,EAAE,GAAG,EACR,iBAAiB,EACf,8BACG,iBAAiB,EAClB,KAAC,MAAM,IACL,QAAQ,EAAE,CAAC,SAAS,KAChB,CAAC,SAAS;wBACZ,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,qBAAqB,EAAE;wBACnE,CAAC,CAAC,EAAE,CAAC,YAEP,MAAC,IAAI,IAAC,SAAS,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAC,MAAM,aAC5D,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,GAAG,EACpB,CAAC,CAAC,gBAAgB,CAAC,IACf,GACA,IACR,GAEL,CACH,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,eAAe,UAAU,CAAC","sourcesContent":["import { forwardRef, useMemo } from 'react';\n\nimport {\n Button,\n Flex,\n getGoogleMapsDirHref,\n Icon,\n ListToolbar,\n useI18n\n} from '@pega/cosmos-react-core';\nimport type { ForwardRefForwardPropsComponent, ListToolbarProps } from '@pega/cosmos-react-core';\nimport type { RsCoreTypes } from 'pega-repeating-structures-core';\n\nimport getValue from '../../../Views/Map/utils';\n\ninterface MapToolbarProps extends ListToolbarProps {\n locationFieldId: NonNullable<RsCoreTypes.View['meta']['mapFieldIds']>['location'];\n rows: RsCoreTypes.View['rows'];\n}\n\n// getValue stringifies missing/nullish field values (e.g. to 'undefined' or 'null'), so those must be filtered out explicitly.\nconst isValidLocation = (location: string): boolean =>\n Boolean(location) && location !== 'undefined' && location !== 'null';\n\nconst MapToolbar: ForwardRefForwardPropsComponent<MapToolbarProps> = forwardRef(function MapToolbar(\n { locationFieldId, rows, additionalActions, ...restProps }: MapToolbarProps,\n ref: MapToolbarProps['ref']\n) {\n const t = useI18n();\n\n const routeHref = useMemo(() => {\n if (!rows || rows.length < 1 || !locationFieldId) return '';\n\n const locations = rows\n .map(({ rowData }) => getValue(rowData, locationFieldId))\n .filter(isValidLocation);\n\n if (locations.length < 1) return '';\n\n const waypoints = locations.slice(0, -1);\n const [destination] = locations.slice(-1);\n\n return getGoogleMapsDirHref(destination, waypoints);\n }, [rows, locationFieldId]);\n\n return (\n <ListToolbar\n {...restProps}\n ref={ref}\n additionalActions={\n <>\n {additionalActions}\n <Button\n disabled={!routeHref}\n {...(routeHref\n ? { href: routeHref, target: '_blank', rel: 'noopener noreferrer' }\n : {})}\n >\n <Flex container={{ alignItems: 'center', gap: 0.5 }} as='span'>\n <Icon name='route' />\n {t('get_directions')}\n </Flex>\n </Button>\n </>\n }\n />\n );\n});\n\nexport default MapToolbar;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMore.d.ts","sourceRoot":"","sources":["../../../../../Core/Components/Toolbar/hooks/useMore.jsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"useMore.d.ts","sourceRoot":"","sources":["../../../../../Core/Components/Toolbar/hooks/useMore.jsx"],"names":[],"mappings":";AAkEA;;;;;;EAydC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
3
|
-
import { Popover, useElement, useModalManager } from '@pega/cosmos-react-core';
|
|
3
|
+
import { isTouchDevice, Popover, TouchDialog, useElement, useModalManager } from '@pega/cosmos-react-core';
|
|
4
4
|
import { REPEATING_STRUCTURE_TEMPLATES } from 'pega-repeating-structures-core';
|
|
5
5
|
import useTranslate from '../../../Hooks/useTranslate';
|
|
6
6
|
import PersonalizationDeleteConfirmation from '../../DefaultComponents/PersonalizationDeleteConfirmation';
|
|
@@ -74,6 +74,7 @@ const useMore = ({ view }) => {
|
|
|
74
74
|
});
|
|
75
75
|
}, [create, currentActiveViewName, view.type, currentActiveView]);
|
|
76
76
|
const [forceShowMenu, setForceShowMenu] = useState(false);
|
|
77
|
+
const [open, setOpen] = useState(false);
|
|
77
78
|
const actions = useMemo(() => [
|
|
78
79
|
[
|
|
79
80
|
{
|
|
@@ -96,6 +97,7 @@ const useMore = ({ view }) => {
|
|
|
96
97
|
show: showFeatureForTemplate(template, 'showHideColumns') && !!toggleFieldVisibility,
|
|
97
98
|
onClick: () => {
|
|
98
99
|
setMoreContent(colsVisibility);
|
|
100
|
+
setOpen(true);
|
|
99
101
|
setForceShowMenu(true);
|
|
100
102
|
}
|
|
101
103
|
},
|
|
@@ -108,6 +110,7 @@ const useMore = ({ view }) => {
|
|
|
108
110
|
rowDensity,
|
|
109
111
|
onClick: () => {
|
|
110
112
|
setMoreContent(RowDensity);
|
|
113
|
+
setOpen(true);
|
|
111
114
|
setForceShowMenu(true);
|
|
112
115
|
}
|
|
113
116
|
},
|
|
@@ -121,6 +124,7 @@ const useMore = ({ view }) => {
|
|
|
121
124
|
isSmallOrAbove,
|
|
122
125
|
onClick: () => {
|
|
123
126
|
setMoreContent(pinning);
|
|
127
|
+
setOpen(true);
|
|
124
128
|
setForceShowMenu(true);
|
|
125
129
|
}
|
|
126
130
|
},
|
|
@@ -168,6 +172,7 @@ const useMore = ({ view }) => {
|
|
|
168
172
|
show: showFeatureForTemplate(template, 'info') && showQueryInfo,
|
|
169
173
|
onClick: () => {
|
|
170
174
|
setMoreContent(Info);
|
|
175
|
+
setOpen(true);
|
|
171
176
|
setForceShowMenu(true);
|
|
172
177
|
}
|
|
173
178
|
}
|
|
@@ -180,6 +185,7 @@ const useMore = ({ view }) => {
|
|
|
180
185
|
show: Boolean(personalization && !headerBar),
|
|
181
186
|
onClick: () => {
|
|
182
187
|
setMoreContent(ViewAs);
|
|
188
|
+
setOpen(true);
|
|
183
189
|
setForceShowMenu(true);
|
|
184
190
|
}
|
|
185
191
|
},
|
|
@@ -311,7 +317,12 @@ const useMore = ({ view }) => {
|
|
|
311
317
|
.filter(({ show = true }) => show), [actions]);
|
|
312
318
|
const finishPopOver = () => {
|
|
313
319
|
if (forceShowMenu) {
|
|
314
|
-
|
|
320
|
+
if (isTouchDevice && [colsVisibility, pinning, RowDensity, ViewAs].includes(moreContent)) {
|
|
321
|
+
setOpen(false);
|
|
322
|
+
}
|
|
323
|
+
else {
|
|
324
|
+
setForceShowMenu(false);
|
|
325
|
+
}
|
|
315
326
|
}
|
|
316
327
|
};
|
|
317
328
|
// setting focus on action button in different rendering cycle otherwise it will get lost due to re-render of toolbar
|
|
@@ -363,7 +374,14 @@ const useMore = ({ view }) => {
|
|
|
363
374
|
}
|
|
364
375
|
}
|
|
365
376
|
// ColVisibility, pinning, RowDensity, ViewAs are all returning Menu, so popover is needed for them
|
|
366
|
-
const
|
|
377
|
+
const shouldWrapInFloatingContainer = component && [colsVisibility, pinning, RowDensity, ViewAs].includes(moreContent);
|
|
378
|
+
let selectedActionContent = component;
|
|
379
|
+
if (shouldWrapInFloatingContainer) {
|
|
380
|
+
selectedActionContent = isTouchDevice ? (_jsx(TouchDialog, { open: open, onDismiss: () => setOpen(false), onAfterClose: () => {
|
|
381
|
+
setForceShowMenu(false);
|
|
382
|
+
actionsButtonRef.current?.focus();
|
|
383
|
+
}, heading: translate(moreContent), children: component })) : (_jsx(Popover, { className: 'popper', arrow: true, ref: setPopperRef, target: actionsButtonRef.current, placement: 'bottom-end', children: component }));
|
|
384
|
+
}
|
|
367
385
|
return { actions: filteredActions, actionsButtonRef, selectedActionContent };
|
|
368
386
|
};
|
|
369
387
|
export default useMore;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMore.js","sourceRoot":"","sources":["../../../../../Core/Components/Toolbar/hooks/useMore.jsx"],"names":[],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { Popover, useElement, useModalManager } from '@pega/cosmos-react-core';\nimport { REPEATING_STRUCTURE_TEMPLATES } from 'pega-repeating-structures-core';\n\nimport useTranslate from '../../../Hooks/useTranslate';\nimport PersonalizationDeleteConfirmation from '../../DefaultComponents/PersonalizationDeleteConfirmation';\nimport ColumnSelector, { colsVisibility, pinning } from '../ColumnSelector';\nimport DebugInfo from '../DebugInfo';\nimport { useKeyboardA11y } from '../../../Hooks/a11y';\nimport { resolveViewComponent } from '../../RenderingEngine/ComponentResolverFactory';\nimport showFeatureForTemplate from '../../../templateFeatureSupport';\n\nconst RowDensity = 'Row density';\n\nconst SaveViewChanges = 'Save changes';\nconst ViewAs = 'View as...';\nconst EditCustomizedView = 'Edit customized view';\nconst SetAsDefault = 'Set as default';\nconst MarkAsAppDefault = 'Mark as app default';\nconst DeleteCustomizedView = 'Delete customized view';\nconst ResetColumnWidths = 'Reset column widths';\nconst AutoSizeColumns = 'Auto size columns';\nconst ShowHeaderIcons = 'ShowHeaderIcons';\nconst Info = 'Query info';\nconst ImportCSVData = 'Import CSV data';\nconst ExportToExcel = 'Export to Excel';\nconst ExportToCSV = 'Export to CSV';\nconst Refresh = 'Refresh';\nconst GalleryLayoutToggle = 'Gallery layout';\nconst SwitchToTable = 'Display as Table';\nconst SwitchToGallery = 'Display as Gallery';\n\nconst shouldShowTemplateSwitch = ({\n allowSwitchTemplate,\n authoredTemplate,\n currentTemplate,\n isSmallScreen\n}) => {\n if (!allowSwitchTemplate) {\n return false;\n }\n\n // This switch behavior is only supported for views authored as Table.\n if (authoredTemplate !== REPEATING_STRUCTURE_TEMPLATES.TABLE) {\n return false;\n }\n\n if (\n currentTemplate !== REPEATING_STRUCTURE_TEMPLATES.TABLE &&\n currentTemplate !== REPEATING_STRUCTURE_TEMPLATES.GALLERY\n ) {\n return false;\n }\n\n // Small screens can always switch between table/gallery.\n // Large screens only show the action when currently on gallery (to allow switch back to table).\n return isSmallScreen || currentTemplate === REPEATING_STRUCTURE_TEMPLATES.GALLERY;\n};\n\nconst useMore = ({ view }) => {\n const {\n meta: {\n allowSwitchTemplate,\n galleryConfig: { showLayoutToggle = true } = {},\n template: authoredTemplate,\n displayDensity,\n toggleFieldVisibility,\n freezeFields,\n personalization,\n headerBar,\n enableAppDefault,\n enableFreezeColumns,\n autoSizeColumns,\n showQueryInfo,\n resetColumnWidths,\n rowDensity,\n showHeaderIcons: isHeaderIcons,\n showImportDataOption,\n showExportToExcelOption,\n showExportToCSVOption,\n allowRefresh\n },\n template,\n state: {\n showHeaderIcons,\n personalization: personalizationState,\n responsive: { sm: isSmallOrAbove } = {}\n } = {},\n type: { applyToggleVisibility, applyFreeze, applyGalleryLayout },\n toolBarOptions = [],\n defaultPresetId,\n renderFactory,\n getContext,\n galleryLayout\n } = view;\n\n const shouldShowTemplateSwitchOption = shouldShowTemplateSwitch({\n allowSwitchTemplate,\n authoredTemplate,\n currentTemplate: template,\n isSmallScreen: !isSmallOrAbove\n });\n\n const [popperRef, setPopperRef] = useElement();\n\n const actionsButtonRef = useRef(null);\n const [translate] = useTranslate();\n const { create } = useModalManager();\n const [moreContent, setMoreContent] = useState('default');\n const currentActiveView = personalizationState?.active;\n const currentDefaultView = personalizationState?.defaultPersonalization;\n const isAppDefaultView = currentActiveView === 'APP_DEFAULT';\n const isViewDirty = personalizationState?.dirty;\n const currentActiveViewName =\n personalizationState?.allPersonalizations?.[currentActiveView]?.name;\n const isPreset = !!personalizationState?.allPersonalizations?.[currentActiveView]?.isPreset;\n\n const onDeletePersonalization = useCallback(() => {\n create(\n PersonalizationDeleteConfirmation,\n {\n onSubmit: () => {\n view.type.deletePersonalization(currentActiveView);\n },\n currentActiveViewName,\n translate\n },\n {\n alert: true\n }\n );\n }, [create, currentActiveViewName, view.type, currentActiveView]);\n\n const [forceShowMenu, setForceShowMenu] = useState(false);\n\n const actions = useMemo(\n () => [\n [\n {\n id: 'switch-template',\n icon: template === REPEATING_STRUCTURE_TEMPLATES.TABLE ? 'grid' : 'table',\n text:\n template === REPEATING_STRUCTURE_TEMPLATES.TABLE\n ? translate(SwitchToGallery)\n : translate(SwitchToTable),\n show: shouldShowTemplateSwitchOption,\n onClick: () => {\n view.type.changeTemplate(\n template === REPEATING_STRUCTURE_TEMPLATES.TABLE\n ? REPEATING_STRUCTURE_TEMPLATES.GALLERY\n : REPEATING_STRUCTURE_TEMPLATES.TABLE\n );\n }\n },\n {\n id: colsVisibility,\n icon: 'eye-off',\n text: translate(colsVisibility),\n show: showFeatureForTemplate(template, 'showHideColumns') && !!toggleFieldVisibility,\n onClick: () => {\n setMoreContent(colsVisibility);\n setForceShowMenu(true);\n }\n },\n {\n id: RowDensity,\n icon: 'row-insert',\n text: translate(RowDensity),\n show:\n showFeatureForTemplate(template, 'rowDensity') &&\n displayDensity.length > 0 &&\n rowDensity,\n onClick: () => {\n setMoreContent(RowDensity);\n setForceShowMenu(true);\n }\n },\n {\n id: pinning,\n icon: 'freeze-column',\n text: translate(pinning),\n show:\n showFeatureForTemplate(template, 'freezeColumns') &&\n !!freezeFields &&\n !!enableFreezeColumns &&\n isSmallOrAbove,\n onClick: () => {\n setMoreContent(pinning);\n setForceShowMenu(true);\n }\n },\n {\n id: ShowHeaderIcons,\n icon: 'picture',\n text: showHeaderIcons ? translate('Hide header icons') : translate('Show header icons'),\n show: showFeatureForTemplate(template, 'showHeaderIcons') && isHeaderIcons,\n onClick: () => {\n view.type.updateHeaderIconsVisibility(!showHeaderIcons);\n }\n },\n {\n id: GalleryLayoutToggle,\n icon: (galleryLayout ?? 'cardgrid') === 'cardlist' ? 'grid' : 'row',\n text: translate(\n (galleryLayout ?? 'cardgrid') === 'cardlist' ? 'Card grid layout' : 'Card list layout'\n ),\n show:\n showLayoutToggle && showFeatureForTemplate(template, 'galleryLayout') && isSmallOrAbove,\n onClick: () => {\n const currentGalleryLayout = galleryLayout ?? 'cardgrid';\n\n applyGalleryLayout?.(currentGalleryLayout === 'cardlist' ? 'cardgrid' : 'cardlist');\n }\n },\n {\n id: AutoSizeColumns,\n icon: 'scale-up',\n text: translate(AutoSizeColumns),\n show: showFeatureForTemplate(template, 'autoSizeColumns') && autoSizeColumns,\n onClick: () => {\n view.applyColumnsAutoSize(false);\n }\n },\n {\n id: ResetColumnWidths,\n icon: 'scale-down',\n text: translate(ResetColumnWidths),\n show: showFeatureForTemplate(template, 'resetColumnWidths') && resetColumnWidths,\n onClick: () => {\n view.applyColumnsAutoSize(true);\n }\n },\n {\n id: Info,\n icon: 'information',\n text: translate(Info),\n show: showFeatureForTemplate(template, 'info') && showQueryInfo,\n onClick: () => {\n setMoreContent(Info);\n setForceShowMenu(true);\n }\n }\n ],\n [\n {\n id: ViewAs,\n icon: 'columns',\n text: translate(ViewAs),\n show: Boolean(personalization && !headerBar),\n onClick: () => {\n setMoreContent(ViewAs);\n setForceShowMenu(true);\n }\n },\n {\n id: SaveViewChanges,\n icon: 'clipboard-plus',\n text: translate(SaveViewChanges),\n show:\n showFeatureForTemplate(template, 'personalization') &&\n Boolean(\n personalization &&\n currentActiveView !== defaultPresetId &&\n (!isPreset || (isAppDefaultView && enableAppDefault)) &&\n isViewDirty\n ),\n onClick: () => {\n view.type.updatePersonalization(\n currentActiveView,\n currentDefaultView === currentActiveView,\n isAppDefaultView\n );\n }\n },\n {\n id: EditCustomizedView,\n icon: 'pencil',\n text: translate(EditCustomizedView),\n show:\n showFeatureForTemplate(template, 'personalization') &&\n Boolean(\n personalization &&\n (!isPreset || (isAppDefaultView && enableAppDefault)) &&\n currentActiveView !== defaultPresetId\n ),\n onClick: () => {\n setMoreContent(EditCustomizedView);\n setForceShowMenu(true);\n }\n },\n {\n id: DeleteCustomizedView,\n icon: 'trash',\n text: translate(DeleteCustomizedView),\n show:\n showFeatureForTemplate(template, 'personalization') &&\n Boolean(\n personalization &&\n !isPreset &&\n currentActiveView !== defaultPresetId &&\n !isAppDefaultView\n ),\n onClick: onDeletePersonalization\n },\n {\n id: SetAsDefault,\n icon: 'clipboard-check',\n text: translate(SetAsDefault),\n show:\n showFeatureForTemplate(template, 'personalization') &&\n Boolean(\n personalization && currentDefaultView !== currentActiveView && !isAppDefaultView\n ),\n onClick: () => view.type.setDefaultPersonalization(currentActiveView)\n },\n {\n id: MarkAsAppDefault,\n icon: 'clipboard-check',\n text: translate(MarkAsAppDefault),\n show: Boolean(isPreset && enableAppDefault && personalization && !isAppDefaultView),\n onClick: () =>\n view.type.setAppDefaultPersonalization('APP_DEFAULT', currentActiveViewName)\n },\n {\n id: ImportCSVData,\n icon: 'document-xls',\n text: translate(ImportCSVData),\n show: Boolean(showImportDataOption),\n onClick: () => view.type.importCSVData(create)\n },\n {\n id: ExportToExcel,\n testId: 'export-to-excel',\n icon: 'document-xls',\n text: translate(ExportToExcel),\n show: Boolean(showExportToExcelOption),\n onClick: () => view.type.exportToExcel()\n },\n {\n id: ExportToCSV,\n icon: 'document-xls',\n text: translate(ExportToCSV),\n show: Boolean(showExportToCSVOption),\n onClick: () => view.type.exportToCSV()\n },\n {\n id: Refresh,\n testId: 'refresh',\n icon: 'reset',\n text: translate(Refresh),\n show: showFeatureForTemplate(template, 'refresh') && Boolean(allowRefresh),\n onClick: () => {\n view.type.forceRefresh();\n }\n }\n ],\n ...toolBarOptions\n ],\n [\n translate,\n template,\n shouldShowTemplateSwitchOption,\n toggleFieldVisibility,\n displayDensity.length,\n rowDensity,\n freezeFields,\n enableFreezeColumns,\n showHeaderIcons,\n isHeaderIcons,\n autoSizeColumns,\n showQueryInfo,\n resetColumnWidths,\n personalization,\n headerBar,\n currentActiveView,\n defaultPresetId,\n isPreset,\n isViewDirty,\n isAppDefaultView,\n showExportToExcelOption,\n showExportToCSVOption,\n onDeletePersonalization,\n currentDefaultView,\n toolBarOptions,\n currentActiveViewName,\n view,\n enableAppDefault,\n isSmallOrAbove,\n galleryLayout,\n applyGalleryLayout\n ]\n );\n\n const filteredActions = useMemo(\n () =>\n actions\n .flat()\n .map(action => ({\n ...action,\n id: action.id.replaceAll(' ', '-')\n }))\n .filter(({ show = true }) => show),\n [actions]\n );\n\n const finishPopOver = () => {\n if (forceShowMenu) {\n setForceShowMenu(false);\n }\n };\n\n // setting focus on action button in different rendering cycle otherwise it will get lost due to re-render of toolbar\n useEffect(() => {\n if (!forceShowMenu && popperRef) {\n actionsButtonRef.current?.focus();\n }\n }, [forceShowMenu]);\n\n useKeyboardA11y({\n container: popperRef && forceShowMenu ? popperRef : null,\n onClose: popperRef && forceShowMenu ? finishPopOver : () => {}\n });\n\n let component;\n\n if (forceShowMenu) {\n switch (moreContent) {\n case colsVisibility:\n component = (\n <ColumnSelector\n dispatch={applyToggleVisibility}\n fieldDefs={view.getFieldDefs()}\n state={view.state}\n action={moreContent}\n finishPopOver={finishPopOver}\n />\n );\n break;\n\n case pinning:\n component = (\n <ColumnSelector\n dispatch={applyFreeze}\n fieldDefs={view.getFieldDefs()}\n state={view.state}\n action={moreContent}\n finishPopOver={finishPopOver}\n />\n );\n break;\n\n case RowDensity:\n component = resolveViewComponent('rowHeightRenderer', renderFactory, {\n ...getContext(),\n view,\n onClose: finishPopOver\n });\n break;\n\n case ViewAs:\n component = resolveViewComponent(\n 'personalizationSelectorRenderer',\n renderFactory,\n getContext()\n );\n break;\n\n case EditCustomizedView:\n component = actionsButtonRef.current\n ? resolveViewComponent('personalizationCreateEditRenderer', renderFactory, {\n onFinish: finishPopOver,\n editing: true,\n target: actionsButtonRef.current,\n ...getContext(),\n view\n })\n : null;\n break;\n\n case Info:\n component = actionsButtonRef.current ? (\n <DebugInfo view={view} target={actionsButtonRef.current} onClose={finishPopOver} />\n ) : null;\n break;\n\n default:\n component = null;\n break;\n }\n }\n // ColVisibility, pinning, RowDensity, ViewAs are all returning Menu, so popover is needed for them\n const selectedActionContent =\n component && [colsVisibility, pinning, RowDensity, ViewAs].includes(moreContent) ? (\n <Popover\n className='popper'\n arrow\n ref={setPopperRef}\n target={actionsButtonRef.current}\n placement='bottom-end'\n >\n {component}\n </Popover>\n ) : (\n component\n );\n\n return { actions: filteredActions, actionsButtonRef, selectedActionContent };\n};\n\nexport default useMore;\n"]}
|
|
1
|
+
{"version":3,"file":"useMore.js","sourceRoot":"","sources":["../../../../../Core/Components/Toolbar/hooks/useMore.jsx"],"names":[],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport {\n isTouchDevice,\n Popover,\n TouchDialog,\n useElement,\n useModalManager\n} from '@pega/cosmos-react-core';\nimport { REPEATING_STRUCTURE_TEMPLATES } from 'pega-repeating-structures-core';\n\nimport useTranslate from '../../../Hooks/useTranslate';\nimport PersonalizationDeleteConfirmation from '../../DefaultComponents/PersonalizationDeleteConfirmation';\nimport ColumnSelector, { colsVisibility, pinning } from '../ColumnSelector';\nimport DebugInfo from '../DebugInfo';\nimport { useKeyboardA11y } from '../../../Hooks/a11y';\nimport { resolveViewComponent } from '../../RenderingEngine/ComponentResolverFactory';\nimport showFeatureForTemplate from '../../../templateFeatureSupport';\n\nconst RowDensity = 'Row density';\n\nconst SaveViewChanges = 'Save changes';\nconst ViewAs = 'View as...';\nconst EditCustomizedView = 'Edit customized view';\nconst SetAsDefault = 'Set as default';\nconst MarkAsAppDefault = 'Mark as app default';\nconst DeleteCustomizedView = 'Delete customized view';\nconst ResetColumnWidths = 'Reset column widths';\nconst AutoSizeColumns = 'Auto size columns';\nconst ShowHeaderIcons = 'ShowHeaderIcons';\nconst Info = 'Query info';\nconst ImportCSVData = 'Import CSV data';\nconst ExportToExcel = 'Export to Excel';\nconst ExportToCSV = 'Export to CSV';\nconst Refresh = 'Refresh';\nconst GalleryLayoutToggle = 'Gallery layout';\nconst SwitchToTable = 'Display as Table';\nconst SwitchToGallery = 'Display as Gallery';\n\nconst shouldShowTemplateSwitch = ({\n allowSwitchTemplate,\n authoredTemplate,\n currentTemplate,\n isSmallScreen\n}) => {\n if (!allowSwitchTemplate) {\n return false;\n }\n\n // This switch behavior is only supported for views authored as Table.\n if (authoredTemplate !== REPEATING_STRUCTURE_TEMPLATES.TABLE) {\n return false;\n }\n\n if (\n currentTemplate !== REPEATING_STRUCTURE_TEMPLATES.TABLE &&\n currentTemplate !== REPEATING_STRUCTURE_TEMPLATES.GALLERY\n ) {\n return false;\n }\n\n // Small screens can always switch between table/gallery.\n // Large screens only show the action when currently on gallery (to allow switch back to table).\n return isSmallScreen || currentTemplate === REPEATING_STRUCTURE_TEMPLATES.GALLERY;\n};\n\nconst useMore = ({ view }) => {\n const {\n meta: {\n allowSwitchTemplate,\n galleryConfig: { showLayoutToggle = true } = {},\n template: authoredTemplate,\n displayDensity,\n toggleFieldVisibility,\n freezeFields,\n personalization,\n headerBar,\n enableAppDefault,\n enableFreezeColumns,\n autoSizeColumns,\n showQueryInfo,\n resetColumnWidths,\n rowDensity,\n showHeaderIcons: isHeaderIcons,\n showImportDataOption,\n showExportToExcelOption,\n showExportToCSVOption,\n allowRefresh\n },\n template,\n state: {\n showHeaderIcons,\n personalization: personalizationState,\n responsive: { sm: isSmallOrAbove } = {}\n } = {},\n type: { applyToggleVisibility, applyFreeze, applyGalleryLayout },\n toolBarOptions = [],\n defaultPresetId,\n renderFactory,\n getContext,\n galleryLayout\n } = view;\n\n const shouldShowTemplateSwitchOption = shouldShowTemplateSwitch({\n allowSwitchTemplate,\n authoredTemplate,\n currentTemplate: template,\n isSmallScreen: !isSmallOrAbove\n });\n\n const [popperRef, setPopperRef] = useElement();\n\n const actionsButtonRef = useRef(null);\n const [translate] = useTranslate();\n const { create } = useModalManager();\n const [moreContent, setMoreContent] = useState('default');\n const currentActiveView = personalizationState?.active;\n const currentDefaultView = personalizationState?.defaultPersonalization;\n const isAppDefaultView = currentActiveView === 'APP_DEFAULT';\n const isViewDirty = personalizationState?.dirty;\n const currentActiveViewName =\n personalizationState?.allPersonalizations?.[currentActiveView]?.name;\n const isPreset = !!personalizationState?.allPersonalizations?.[currentActiveView]?.isPreset;\n\n const onDeletePersonalization = useCallback(() => {\n create(\n PersonalizationDeleteConfirmation,\n {\n onSubmit: () => {\n view.type.deletePersonalization(currentActiveView);\n },\n currentActiveViewName,\n translate\n },\n {\n alert: true\n }\n );\n }, [create, currentActiveViewName, view.type, currentActiveView]);\n\n const [forceShowMenu, setForceShowMenu] = useState(false);\n const [open, setOpen] = useState(false);\n\n const actions = useMemo(\n () => [\n [\n {\n id: 'switch-template',\n icon: template === REPEATING_STRUCTURE_TEMPLATES.TABLE ? 'grid' : 'table',\n text:\n template === REPEATING_STRUCTURE_TEMPLATES.TABLE\n ? translate(SwitchToGallery)\n : translate(SwitchToTable),\n show: shouldShowTemplateSwitchOption,\n onClick: () => {\n view.type.changeTemplate(\n template === REPEATING_STRUCTURE_TEMPLATES.TABLE\n ? REPEATING_STRUCTURE_TEMPLATES.GALLERY\n : REPEATING_STRUCTURE_TEMPLATES.TABLE\n );\n }\n },\n {\n id: colsVisibility,\n icon: 'eye-off',\n text: translate(colsVisibility),\n show: showFeatureForTemplate(template, 'showHideColumns') && !!toggleFieldVisibility,\n onClick: () => {\n setMoreContent(colsVisibility);\n setOpen(true);\n setForceShowMenu(true);\n }\n },\n {\n id: RowDensity,\n icon: 'row-insert',\n text: translate(RowDensity),\n show:\n showFeatureForTemplate(template, 'rowDensity') &&\n displayDensity.length > 0 &&\n rowDensity,\n onClick: () => {\n setMoreContent(RowDensity);\n setOpen(true);\n setForceShowMenu(true);\n }\n },\n {\n id: pinning,\n icon: 'freeze-column',\n text: translate(pinning),\n show:\n showFeatureForTemplate(template, 'freezeColumns') &&\n !!freezeFields &&\n !!enableFreezeColumns &&\n isSmallOrAbove,\n onClick: () => {\n setMoreContent(pinning);\n setOpen(true);\n setForceShowMenu(true);\n }\n },\n {\n id: ShowHeaderIcons,\n icon: 'picture',\n text: showHeaderIcons ? translate('Hide header icons') : translate('Show header icons'),\n show: showFeatureForTemplate(template, 'showHeaderIcons') && isHeaderIcons,\n onClick: () => {\n view.type.updateHeaderIconsVisibility(!showHeaderIcons);\n }\n },\n {\n id: GalleryLayoutToggle,\n icon: (galleryLayout ?? 'cardgrid') === 'cardlist' ? 'grid' : 'row',\n text: translate(\n (galleryLayout ?? 'cardgrid') === 'cardlist' ? 'Card grid layout' : 'Card list layout'\n ),\n show:\n showLayoutToggle && showFeatureForTemplate(template, 'galleryLayout') && isSmallOrAbove,\n onClick: () => {\n const currentGalleryLayout = galleryLayout ?? 'cardgrid';\n\n applyGalleryLayout?.(currentGalleryLayout === 'cardlist' ? 'cardgrid' : 'cardlist');\n }\n },\n {\n id: AutoSizeColumns,\n icon: 'scale-up',\n text: translate(AutoSizeColumns),\n show: showFeatureForTemplate(template, 'autoSizeColumns') && autoSizeColumns,\n onClick: () => {\n view.applyColumnsAutoSize(false);\n }\n },\n {\n id: ResetColumnWidths,\n icon: 'scale-down',\n text: translate(ResetColumnWidths),\n show: showFeatureForTemplate(template, 'resetColumnWidths') && resetColumnWidths,\n onClick: () => {\n view.applyColumnsAutoSize(true);\n }\n },\n {\n id: Info,\n icon: 'information',\n text: translate(Info),\n show: showFeatureForTemplate(template, 'info') && showQueryInfo,\n onClick: () => {\n setMoreContent(Info);\n setOpen(true);\n setForceShowMenu(true);\n }\n }\n ],\n [\n {\n id: ViewAs,\n icon: 'columns',\n text: translate(ViewAs),\n show: Boolean(personalization && !headerBar),\n onClick: () => {\n setMoreContent(ViewAs);\n setOpen(true);\n setForceShowMenu(true);\n }\n },\n {\n id: SaveViewChanges,\n icon: 'clipboard-plus',\n text: translate(SaveViewChanges),\n show:\n showFeatureForTemplate(template, 'personalization') &&\n Boolean(\n personalization &&\n currentActiveView !== defaultPresetId &&\n (!isPreset || (isAppDefaultView && enableAppDefault)) &&\n isViewDirty\n ),\n onClick: () => {\n view.type.updatePersonalization(\n currentActiveView,\n currentDefaultView === currentActiveView,\n isAppDefaultView\n );\n }\n },\n {\n id: EditCustomizedView,\n icon: 'pencil',\n text: translate(EditCustomizedView),\n show:\n showFeatureForTemplate(template, 'personalization') &&\n Boolean(\n personalization &&\n (!isPreset || (isAppDefaultView && enableAppDefault)) &&\n currentActiveView !== defaultPresetId\n ),\n onClick: () => {\n setMoreContent(EditCustomizedView);\n setForceShowMenu(true);\n }\n },\n {\n id: DeleteCustomizedView,\n icon: 'trash',\n text: translate(DeleteCustomizedView),\n show:\n showFeatureForTemplate(template, 'personalization') &&\n Boolean(\n personalization &&\n !isPreset &&\n currentActiveView !== defaultPresetId &&\n !isAppDefaultView\n ),\n onClick: onDeletePersonalization\n },\n {\n id: SetAsDefault,\n icon: 'clipboard-check',\n text: translate(SetAsDefault),\n show:\n showFeatureForTemplate(template, 'personalization') &&\n Boolean(\n personalization && currentDefaultView !== currentActiveView && !isAppDefaultView\n ),\n onClick: () => view.type.setDefaultPersonalization(currentActiveView)\n },\n {\n id: MarkAsAppDefault,\n icon: 'clipboard-check',\n text: translate(MarkAsAppDefault),\n show: Boolean(isPreset && enableAppDefault && personalization && !isAppDefaultView),\n onClick: () =>\n view.type.setAppDefaultPersonalization('APP_DEFAULT', currentActiveViewName)\n },\n {\n id: ImportCSVData,\n icon: 'document-xls',\n text: translate(ImportCSVData),\n show: Boolean(showImportDataOption),\n onClick: () => view.type.importCSVData(create)\n },\n {\n id: ExportToExcel,\n testId: 'export-to-excel',\n icon: 'document-xls',\n text: translate(ExportToExcel),\n show: Boolean(showExportToExcelOption),\n onClick: () => view.type.exportToExcel()\n },\n {\n id: ExportToCSV,\n icon: 'document-xls',\n text: translate(ExportToCSV),\n show: Boolean(showExportToCSVOption),\n onClick: () => view.type.exportToCSV()\n },\n {\n id: Refresh,\n testId: 'refresh',\n icon: 'reset',\n text: translate(Refresh),\n show: showFeatureForTemplate(template, 'refresh') && Boolean(allowRefresh),\n onClick: () => {\n view.type.forceRefresh();\n }\n }\n ],\n ...toolBarOptions\n ],\n [\n translate,\n template,\n shouldShowTemplateSwitchOption,\n toggleFieldVisibility,\n displayDensity.length,\n rowDensity,\n freezeFields,\n enableFreezeColumns,\n showHeaderIcons,\n isHeaderIcons,\n autoSizeColumns,\n showQueryInfo,\n resetColumnWidths,\n personalization,\n headerBar,\n currentActiveView,\n defaultPresetId,\n isPreset,\n isViewDirty,\n isAppDefaultView,\n showExportToExcelOption,\n showExportToCSVOption,\n onDeletePersonalization,\n currentDefaultView,\n toolBarOptions,\n currentActiveViewName,\n view,\n enableAppDefault,\n isSmallOrAbove,\n galleryLayout,\n applyGalleryLayout\n ]\n );\n\n const filteredActions = useMemo(\n () =>\n actions\n .flat()\n .map(action => ({\n ...action,\n id: action.id.replaceAll(' ', '-')\n }))\n .filter(({ show = true }) => show),\n [actions]\n );\n\n const finishPopOver = () => {\n if (forceShowMenu) {\n if (isTouchDevice && [colsVisibility, pinning, RowDensity, ViewAs].includes(moreContent)) {\n setOpen(false);\n } else {\n setForceShowMenu(false);\n }\n }\n };\n\n // setting focus on action button in different rendering cycle otherwise it will get lost due to re-render of toolbar\n useEffect(() => {\n if (!forceShowMenu && popperRef) {\n actionsButtonRef.current?.focus();\n }\n }, [forceShowMenu]);\n\n useKeyboardA11y({\n container: popperRef && forceShowMenu ? popperRef : null,\n onClose: popperRef && forceShowMenu ? finishPopOver : () => {}\n });\n\n let component;\n\n if (forceShowMenu) {\n switch (moreContent) {\n case colsVisibility:\n component = (\n <ColumnSelector\n dispatch={applyToggleVisibility}\n fieldDefs={view.getFieldDefs()}\n state={view.state}\n action={moreContent}\n finishPopOver={finishPopOver}\n />\n );\n break;\n\n case pinning:\n component = (\n <ColumnSelector\n dispatch={applyFreeze}\n fieldDefs={view.getFieldDefs()}\n state={view.state}\n action={moreContent}\n finishPopOver={finishPopOver}\n />\n );\n break;\n\n case RowDensity:\n component = resolveViewComponent('rowHeightRenderer', renderFactory, {\n ...getContext(),\n view,\n onClose: finishPopOver\n });\n break;\n\n case ViewAs:\n component = resolveViewComponent(\n 'personalizationSelectorRenderer',\n renderFactory,\n getContext()\n );\n break;\n\n case EditCustomizedView:\n component = actionsButtonRef.current\n ? resolveViewComponent('personalizationCreateEditRenderer', renderFactory, {\n onFinish: finishPopOver,\n editing: true,\n target: actionsButtonRef.current,\n ...getContext(),\n view\n })\n : null;\n break;\n\n case Info:\n component = actionsButtonRef.current ? (\n <DebugInfo view={view} target={actionsButtonRef.current} onClose={finishPopOver} />\n ) : null;\n break;\n\n default:\n component = null;\n break;\n }\n }\n // ColVisibility, pinning, RowDensity, ViewAs are all returning Menu, so popover is needed for them\n const shouldWrapInFloatingContainer =\n component && [colsVisibility, pinning, RowDensity, ViewAs].includes(moreContent);\n\n let selectedActionContent = component;\n if (shouldWrapInFloatingContainer) {\n selectedActionContent = isTouchDevice ? (\n <TouchDialog\n open={open}\n onDismiss={() => setOpen(false)}\n onAfterClose={() => {\n setForceShowMenu(false);\n actionsButtonRef.current?.focus();\n }}\n heading={translate(moreContent)}\n >\n {component}\n </TouchDialog>\n ) : (\n <Popover\n className='popper'\n arrow\n ref={setPopperRef}\n target={actionsButtonRef.current}\n placement='bottom-end'\n >\n {component}\n </Popover>\n );\n }\n\n return { actions: filteredActions, actionsButtonRef, selectedActionContent };\n};\n\nexport default useMore;\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pega/lists-react",
|
|
3
|
-
"version": "10.0.0-build.
|
|
3
|
+
"version": "10.0.0-build.9.1",
|
|
4
4
|
"description": "Repeating view structures such as Table, Gallery(Repeating layouts), Kanban etc.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"author": "Pegasystems",
|
|
@@ -14,17 +14,17 @@
|
|
|
14
14
|
"build": "tsc -b tsconfig.build.json"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@pega/cosmos-react-condition-builder": "10.0.0-build.
|
|
18
|
-
"@pega/cosmos-react-core": "10.0.0-build.
|
|
19
|
-
"@pega/cosmos-react-rte": "10.0.0-build.
|
|
17
|
+
"@pega/cosmos-react-condition-builder": "10.0.0-build.9.1",
|
|
18
|
+
"@pega/cosmos-react-core": "10.0.0-build.9.1",
|
|
19
|
+
"@pega/cosmos-react-rte": "10.0.0-build.9.1",
|
|
20
20
|
"@types/lodash-es": "^4.17.12",
|
|
21
21
|
"@types/react": "^17.0.62 || ^18.3.3",
|
|
22
22
|
"@types/react-dom": "^17.0.20 || ^18.3.0",
|
|
23
23
|
"dayjs": "^1.11.13",
|
|
24
24
|
"fast-deep-equal": "^3.1.3",
|
|
25
25
|
"lodash-es": "^4.18.1",
|
|
26
|
-
"pega-repeating-structures-core": "npm:@pega/lists-core@10.0.0-build.
|
|
27
|
-
"pega-ui-list-data-apis": "npm:@pega/lists-core-utils@10.0.0-build.
|
|
26
|
+
"pega-repeating-structures-core": "npm:@pega/lists-core@10.0.0-build.9.1",
|
|
27
|
+
"pega-ui-list-data-apis": "npm:@pega/lists-core-utils@10.0.0-build.9.1",
|
|
28
28
|
"polished": "^4.1.0",
|
|
29
29
|
"prop-types": "^15.8.1",
|
|
30
30
|
"react": "^17.0.0 || ^18.0.0",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"@testing-library/react": "^16.0.0",
|
|
43
43
|
"@testing-library/user-event": "^14.6.1",
|
|
44
44
|
"jest-axe": "^8.0.0",
|
|
45
|
-
"srs-utils": "10.0.0-build.
|
|
45
|
+
"srs-utils": "10.0.0-build.9.1",
|
|
46
46
|
"typescript": "~6.0.3"
|
|
47
47
|
}
|
|
48
48
|
}
|