@pega/lists-react 9.0.0-build.4.0 → 9.0.0-build.4.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.
@@ -1,8 +1,13 @@
1
- declare function RepeatingStructureA11y({ children, a11yRef, view }: {
2
- children: any;
3
- a11yRef: any;
4
- view: any;
5
- }): import("react/jsx-runtime").JSX.Element;
1
+ /**
2
+ * Provides accessibility features for repeating structures, including focus boundary handling
3
+ * and announcing changes in the view's state for accessibility purposes.
4
+ *
5
+ * @param {Object} props.a11yRef - A reference object containing accessibility-related handlers.
6
+ * @param {Object} props.view - The view object containing the current state of the repeating structure.
7
+ *
8
+ * @returns {JSX.Element} The rendered structure with accessibility features.
9
+ */
10
+ declare function RepeatingStructureA11y({ children, a11yRef, view }: Object): JSX.Element;
6
11
  declare namespace RepeatingStructureA11y {
7
12
  namespace propTypes {
8
13
  let children: PropTypes.Requireable<object>;
@@ -1 +1 @@
1
- {"version":3,"file":"RepeatingStructureA11y.d.ts","sourceRoot":"","sources":["../../../../Core/Components/A11y/RepeatingStructureA11y.jsx"],"names":[],"mappings":"AAeA;;;;4CAgBC;;;;;;;;;;;;;;;;;sBA9BqB,YAAY"}
1
+ {"version":3,"file":"RepeatingStructureA11y.d.ts","sourceRoot":"","sources":["../../../../Core/Components/A11y/RepeatingStructureA11y.jsx"],"names":[],"mappings":"AAgBA;;;;;;;;GAQG;AACH,qEALW,MAAM,GAGJ,GAAG,CAAC,OAAO,CAgDvB;;;;;;;;;;;;;;;;;sBAtEqB,YAAY"}
@@ -2,7 +2,8 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
2
2
  import { useCallback } from 'react';
3
3
  import PropTypes from 'prop-types';
4
4
  import styled from 'styled-components';
5
- import useAnnounceGroup from '../../Hooks/a11y/useAnnounceGroup';
5
+ import useAnnounce from '../../Hooks/a11y/useAnnounce';
6
+ import useTranslate from '../../Hooks/useTranslate';
6
7
  const StyledInput = styled.input `
7
8
  width: 0;
8
9
  height: 0;
@@ -11,12 +12,36 @@ const StyledInput = styled.input `
11
12
  outline: none;
12
13
  opacity: 0;
13
14
  `;
15
+ /**
16
+ * Provides accessibility features for repeating structures, including focus boundary handling
17
+ * and announcing changes in the view's state for accessibility purposes.
18
+ *
19
+ * @param {Object} props.a11yRef - A reference object containing accessibility-related handlers.
20
+ * @param {Object} props.view - The view object containing the current state of the repeating structure.
21
+ *
22
+ * @returns {JSX.Element} The rendered structure with accessibility features.
23
+ */
14
24
  export default function RepeatingStructureA11y({ children, a11yRef, view }) {
25
+ const [translate] = useTranslate();
15
26
  const onFocusHandler = useCallback(e => {
16
27
  a11yRef.current.boundaryElementsFocusHandler(e);
17
28
  }, [a11yRef]);
18
29
  const { state } = view;
19
- useAnnounceGroup(state);
30
+ // For show/hide columns, we only use the 'modified' message because there is always at least one column present.
31
+ // Any change—whether adding or removing a column is considered a modification for accessibility announcement.
32
+ useAnnounce(state.hiddenColumns, {
33
+ modified: translate('Show/Hide modified')
34
+ }, state.personalization?.active);
35
+ useAnnounce(state.freezeColumns, {
36
+ added: translate('Freeze applied'),
37
+ modified: translate('Freeze modified'),
38
+ removed: translate('Freeze removed')
39
+ }, state.personalization?.active);
40
+ useAnnounce(state.groups, {
41
+ added: translate('Group applied'),
42
+ modified: translate('Group modified'),
43
+ removed: translate('Group removed')
44
+ }, state.personalization?.active);
20
45
  return (_jsxs(_Fragment, { children: [_jsx(StyledInput, { className: 'top', type: 'text', "aria-hidden": true, onFocus: onFocusHandler }), children, _jsx(StyledInput, { className: 'bottom', type: 'text', "aria-hidden": true, onFocus: onFocusHandler })] }));
21
46
  }
22
47
  RepeatingStructureA11y.propTypes = {
@@ -1 +1 @@
1
- {"version":3,"file":"RepeatingStructureA11y.js","sourceRoot":"","sources":["../../../../Core/Components/A11y/RepeatingStructureA11y.jsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,gBAAgB,MAAM,mCAAmC,CAAC;AAEjE,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAA;;;;;;;CAO/B,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE;IACxE,MAAM,cAAc,GAAG,WAAW,CAChC,CAAC,CAAC,EAAE;QACF,OAAO,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IACF,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IACvB,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACxB,OAAO,CACL,8BACE,KAAC,WAAW,IAAC,SAAS,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,uBAAa,OAAO,EAAE,cAAc,GAAI,EAC/E,QAAQ,EACT,KAAC,WAAW,IAAC,SAAS,EAAC,QAAQ,EAAC,IAAI,EAAC,MAAM,uBAAa,OAAO,EAAE,cAAc,GAAI,IAClF,CACJ,CAAC;AACJ,CAAC;AAED,sBAAsB,CAAC,SAAS,GAAG;IACjC,QAAQ,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;IAClE,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,UAAU;IAC1D,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,UAAU;CACnD,CAAC;AAEF,sBAAsB,CAAC,YAAY,GAAG;IACpC,QAAQ,EAAE,EAAE;CACb,CAAC","sourcesContent":["import { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport useAnnounceGroup from '../../Hooks/a11y/useAnnounceGroup';\n\nconst StyledInput = styled.input`\n width: 0;\n height: 0;\n border-width: 0;\n position: absolute;\n outline: none;\n opacity: 0;\n`;\n\nexport default function RepeatingStructureA11y({ children, a11yRef, view }) {\n const onFocusHandler = useCallback(\n e => {\n a11yRef.current.boundaryElementsFocusHandler(e);\n },\n [a11yRef]\n );\n const { state } = view;\n useAnnounceGroup(state);\n return (\n <>\n <StyledInput className='top' type='text' aria-hidden onFocus={onFocusHandler} />\n {children}\n <StyledInput className='bottom' type='text' aria-hidden onFocus={onFocusHandler} />\n </>\n );\n}\n\nRepeatingStructureA11y.propTypes = {\n children: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),\n a11yRef: PropTypes.objectOf(PropTypes.objectOf).isRequired,\n view: PropTypes.objectOf(PropTypes.any).isRequired\n};\n\nRepeatingStructureA11y.defaultProps = {\n children: []\n};\n"]}
1
+ {"version":3,"file":"RepeatingStructureA11y.js","sourceRoot":"","sources":["../../../../Core/Components/A11y/RepeatingStructureA11y.jsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,WAAW,MAAM,8BAA8B,CAAC;AACvD,OAAO,YAAY,MAAM,0BAA0B,CAAC;AAEpD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAA;;;;;;;CAO/B,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE;IACxE,MAAM,CAAC,SAAS,CAAC,GAAG,YAAY,EAAE,CAAC;IACnC,MAAM,cAAc,GAAG,WAAW,CAChC,CAAC,CAAC,EAAE;QACF,OAAO,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IACF,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IACvB,iHAAiH;IACjH,8GAA8G;IAC9G,WAAW,CACT,KAAK,CAAC,aAAa,EACnB;QACE,QAAQ,EAAE,SAAS,CAAC,oBAAoB,CAAC;KAC1C,EACD,KAAK,CAAC,eAAe,EAAE,MAAM,CAC9B,CAAC;IAEF,WAAW,CACT,KAAK,CAAC,aAAa,EACnB;QACE,KAAK,EAAE,SAAS,CAAC,gBAAgB,CAAC;QAClC,QAAQ,EAAE,SAAS,CAAC,iBAAiB,CAAC;QACtC,OAAO,EAAE,SAAS,CAAC,gBAAgB,CAAC;KACrC,EACD,KAAK,CAAC,eAAe,EAAE,MAAM,CAC9B,CAAC;IAEF,WAAW,CACT,KAAK,CAAC,MAAM,EACZ;QACE,KAAK,EAAE,SAAS,CAAC,eAAe,CAAC;QACjC,QAAQ,EAAE,SAAS,CAAC,gBAAgB,CAAC;QACrC,OAAO,EAAE,SAAS,CAAC,eAAe,CAAC;KACpC,EACD,KAAK,CAAC,eAAe,EAAE,MAAM,CAC9B,CAAC;IAEF,OAAO,CACL,8BACE,KAAC,WAAW,IAAC,SAAS,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,uBAAa,OAAO,EAAE,cAAc,GAAI,EAC/E,QAAQ,EACT,KAAC,WAAW,IAAC,SAAS,EAAC,QAAQ,EAAC,IAAI,EAAC,MAAM,uBAAa,OAAO,EAAE,cAAc,GAAI,IAClF,CACJ,CAAC;AACJ,CAAC;AAED,sBAAsB,CAAC,SAAS,GAAG;IACjC,QAAQ,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;IAClE,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,UAAU;IAC1D,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,UAAU;CACnD,CAAC;AAEF,sBAAsB,CAAC,YAAY,GAAG;IACpC,QAAQ,EAAE,EAAE;CACb,CAAC","sourcesContent":["import { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport useAnnounce from '../../Hooks/a11y/useAnnounce';\nimport useTranslate from '../../Hooks/useTranslate';\n\nconst StyledInput = styled.input`\n width: 0;\n height: 0;\n border-width: 0;\n position: absolute;\n outline: none;\n opacity: 0;\n`;\n\n/**\n * Provides accessibility features for repeating structures, including focus boundary handling\n * and announcing changes in the view's state for accessibility purposes.\n *\n * @param {Object} props.a11yRef - A reference object containing accessibility-related handlers.\n * @param {Object} props.view - The view object containing the current state of the repeating structure.\n *\n * @returns {JSX.Element} The rendered structure with accessibility features.\n */\nexport default function RepeatingStructureA11y({ children, a11yRef, view }) {\n const [translate] = useTranslate();\n const onFocusHandler = useCallback(\n e => {\n a11yRef.current.boundaryElementsFocusHandler(e);\n },\n [a11yRef]\n );\n const { state } = view;\n // For show/hide columns, we only use the 'modified' message because there is always at least one column present.\n // Any change—whether adding or removing a column is considered a modification for accessibility announcement.\n useAnnounce(\n state.hiddenColumns,\n {\n modified: translate('Show/Hide modified')\n },\n state.personalization?.active\n );\n\n useAnnounce(\n state.freezeColumns,\n {\n added: translate('Freeze applied'),\n modified: translate('Freeze modified'),\n removed: translate('Freeze removed')\n },\n state.personalization?.active\n );\n\n useAnnounce(\n state.groups,\n {\n added: translate('Group applied'),\n modified: translate('Group modified'),\n removed: translate('Group removed')\n },\n state.personalization?.active\n );\n\n return (\n <>\n <StyledInput className='top' type='text' aria-hidden onFocus={onFocusHandler} />\n {children}\n <StyledInput className='bottom' type='text' aria-hidden onFocus={onFocusHandler} />\n </>\n );\n}\n\nRepeatingStructureA11y.propTypes = {\n children: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),\n a11yRef: PropTypes.objectOf(PropTypes.objectOf).isRequired,\n view: PropTypes.objectOf(PropTypes.any).isRequired\n};\n\nRepeatingStructureA11y.defaultProps = {\n children: []\n};\n"]}
@@ -1,16 +1,24 @@
1
- export function getIconByFieldType(type: any): import("react/jsx-runtime").JSX.Element;
1
+ /**
2
+ * Returns an Icon component based on the field type.
3
+ *
4
+ * @param {string} type - The type of the field for which the icon is required.
5
+ * @returns {JSX.Element} - A React Icon component with the appropriate icon name.
6
+ */
7
+ export function getIconByFieldType(type: string): JSX.Element;
2
8
  /**
3
9
  * Transforms the columns array into array of columns grouped by category
4
- * @param {Array} columns : ;
10
+ * @param {Array} columns - The array of column objects to be transformed.
11
+ * @param {string} action - The action to perform, either 'Show/hide columns' or 'Freeze columns'.
5
12
  * @returns Arrays of columns nested by category
6
13
  */
7
- export function transformData(columns: any[], action: any): any[];
14
+ export function transformData(columns: any[], action: string): any[];
8
15
  export function ColumnSelectorControl(props: any): import("react/jsx-runtime").JSX.Element;
9
16
  export namespace ColumnSelectorControl {
10
17
  namespace propTypes {
11
18
  let data: PropTypes.Validator<(object | null | undefined)[]>;
12
- let onSelect: PropTypes.Validator<(...args: any[]) => any>;
13
- let forceShowPopup: PropTypes.Validator<boolean>;
19
+ let onSubmit: PropTypes.Validator<(...args: any[]) => any>;
20
+ let onCancel: PropTypes.Validator<(...args: any[]) => any>;
21
+ let action: PropTypes.Validator<string>;
14
22
  }
15
23
  }
16
24
  export const colsVisibility: "Show/hide columns";
@@ -18,16 +26,19 @@ export const pinning: "Freeze columns";
18
26
  declare const _default: import("react").MemoExoticComponent<typeof ColumnSelector>;
19
27
  export default _default;
20
28
  import PropTypes from 'prop-types';
21
- declare function ColumnSelector({ dispatch, columns, action }: {
29
+ declare function ColumnSelector({ dispatch, columns, action, finishPopOver }: {
22
30
  dispatch: any;
23
31
  columns: any;
24
32
  action: any;
33
+ finishPopOver: any;
25
34
  }): import("react/jsx-runtime").JSX.Element;
26
35
  declare namespace ColumnSelector {
27
36
  export namespace propTypes_1 {
28
- let dispatch: PropTypes.Validator<(...args: any[]) => any>;
29
- let columns: PropTypes.Validator<(object | null | undefined)[]>;
30
- let action: PropTypes.Validator<string>;
37
+ export let dispatch: PropTypes.Validator<(...args: any[]) => any>;
38
+ export let columns: PropTypes.Validator<(object | null | undefined)[]>;
39
+ let action_1: PropTypes.Validator<string>;
40
+ export { action_1 as action };
41
+ export let finishPopOver: PropTypes.Validator<(...args: any[]) => any>;
31
42
  }
32
43
  export { propTypes_1 as propTypes };
33
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnSelector.d.ts","sourceRoot":"","sources":["../../../../Core/Components/Toolbar/ColumnSelector.jsx"],"names":[],"mappings":"AAWA,uFAGC;AACD;;;;GAIG;AACH,kEA4DC;AAED,2FA8DC;;;;;;;;AAxID,6BAA8B,mBAAmB,CAAC;AAClD,sBAAuB,gBAAgB,CAAC;;;sBARlB,YAAY;AAuJlC;;;;4CAwBC"}
1
+ {"version":3,"file":"ColumnSelector.d.ts","sourceRoot":"","sources":["../../../../Core/Components/Toolbar/ColumnSelector.jsx"],"names":[],"mappings":"AAoBA;;;;;GAKG;AACH,yCAHW,MAAM,GACJ,GAAG,CAAC,OAAO,CAKvB;AAeD;;;;;GAKG;AACH,sDAHW,MAAM,SAgEhB;AA2BD,2FAwEC;;;;;;;;;AAjMD,6BAA8B,mBAAmB,CAAC;AAClD,sBAAuB,gBAAgB,CAAC;;;sBAjBlB,YAAY;AA0NlC;;;;;4CAqBC"}
@@ -1,18 +1,38 @@
1
- import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { memo, useCallback, useEffect, useRef, useState, useMemo } from 'react';
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { memo, useCallback, useEffect, useState, useMemo } from 'react';
3
3
  import PropTypes from 'prop-types';
4
- import { Icon, SearchInput, Menu, menuHelpers, useElement } from '@pega/cosmos-react-core';
5
- import useSelect from '../../Hooks/useSelect';
4
+ import styled from 'styled-components';
5
+ import { Icon, SearchInput, Menu, menuHelpers, useElement, Flex, Button } from '@pega/cosmos-react-core';
6
6
  import { allowToggle, getFieldIcon } from '../../Utils';
7
+ import useTranslate from '../../Hooks/useTranslate';
7
8
  export const colsVisibility = 'Show/hide columns';
8
9
  export const pinning = 'Freeze columns';
10
+ /**
11
+ * Returns an Icon component based on the field type.
12
+ *
13
+ * @param {string} type - The type of the field for which the icon is required.
14
+ * @returns {JSX.Element} - A React Icon component with the appropriate icon name.
15
+ */
9
16
  export function getIconByFieldType(type) {
10
17
  const iconName = getFieldIcon(type);
11
18
  return _jsx(Icon, { "data-test-id": iconName, "data-testid": iconName, name: iconName });
12
19
  }
20
+ /**
21
+ * Determines the list of changed column IDs.
22
+ *
23
+ * @param {Set<string>} initialSelectedColumns - The initial set of selected column IDs.
24
+ * @param {Set<string>} currentSelectedColumns - The current set of selected column IDs.
25
+ * @returns {string[]} - Array of modified column IDs.
26
+ */
27
+ function getModifiedColumns(initialSelectedColumns, currentSelectedColumns) {
28
+ const addedColumns = [...currentSelectedColumns].filter(id => !initialSelectedColumns.has(id));
29
+ const removedColumns = [...initialSelectedColumns].filter(id => !currentSelectedColumns.has(id));
30
+ return [...addedColumns, ...removedColumns];
31
+ }
13
32
  /**
14
33
  * Transforms the columns array into array of columns grouped by category
15
- * @param {Array} columns : ;
34
+ * @param {Array} columns - The array of column objects to be transformed.
35
+ * @param {string} action - The action to perform, either 'Show/hide columns' or 'Freeze columns'.
16
36
  * @returns Arrays of columns nested by category
17
37
  */
18
38
  export function transformData(columns, action) {
@@ -26,35 +46,33 @@ export function transformData(columns, action) {
26
46
  .forEach(column => {
27
47
  const { field: { id, category = [], type }, label, hidden, frozen } = column;
28
48
  const lastCategoryLabel = category.length ? category[category.length - 1].label : undefined;
29
- let selectAction;
30
49
  let disabled;
31
50
  if (action === colsVisibility) {
32
- selectAction = !hidden;
33
51
  disabled = !allowColumnToggle && !hidden;
34
52
  }
35
- else if (action === pinning)
36
- selectAction = frozen;
37
53
  if (categoryObj[lastCategoryLabel])
38
54
  categoryObj[lastCategoryLabel].items.push({
39
55
  id,
40
56
  primary: label,
41
57
  label,
42
- selected: selectAction,
58
+ selected: action === colsVisibility ? !hidden : frozen,
43
59
  type,
44
- disabled
60
+ disabled,
61
+ visual: getIconByFieldType(type)
45
62
  });
46
63
  else {
47
64
  categoryObj[lastCategoryLabel] = {
48
65
  id: `category:${lastCategoryLabel}`,
49
- label: lastCategoryLabel,
66
+ primary: lastCategoryLabel,
50
67
  items: [
51
68
  {
52
69
  id,
53
70
  primary: label,
54
- selected: selectAction,
71
+ selected: action === colsVisibility ? !hidden : frozen,
55
72
  label,
56
73
  type,
57
- disabled
74
+ disabled,
75
+ visual: getIconByFieldType(type)
58
76
  }
59
77
  ]
60
78
  };
@@ -72,69 +90,75 @@ export function transformData(columns, action) {
72
90
  });
73
91
  return result;
74
92
  }
93
+ const Footer = memo(({ onCancel, onSubmit, disabled }) => {
94
+ const [translate] = useTranslate();
95
+ return (_jsxs(Flex, { container: { justify: 'between' }, children: [_jsx(Button, { onClick: onCancel, "data-testid": 'cancel', children: translate('Cancel') }), _jsx(Button, { variant: 'primary', onClick: onSubmit, disabled: disabled, "data-testid": 'submit', children: translate('Submit') })] }));
96
+ });
97
+ Footer.displayName = 'Footer';
98
+ Footer.propTypes = {
99
+ onCancel: PropTypes.func.isRequired,
100
+ onSubmit: PropTypes.func.isRequired,
101
+ disabled: PropTypes.bool.isRequired
102
+ };
103
+ const StyledMenu = styled(Menu) `
104
+ width: 16rem;
105
+ `;
75
106
  export function ColumnSelectorControl(props) {
76
- const { data, onSelect, forceShowPopup } = props;
77
- const flatData = menuHelpers.flatten(data);
78
- data.forEach(d => {
79
- if (d.items)
80
- d.items.forEach(item => {
81
- item.visual = getIconByFieldType(item.type);
82
- });
83
- else {
84
- d.visual = getIconByFieldType(d.type);
85
- }
86
- });
87
- const selectedData = flatData.filter(o => o.selected).map(obj => obj.id);
88
- const [visibleColumns, onChecked] = useSelect(selectedData);
89
- const onChange = useCallback(id => onChecked(id), [onChecked]);
90
- const [searchQuery, onSearch] = useState('');
91
- const [searchEl, setSearchEl] = useElement(null);
92
- const hasMountedRef = useRef(false);
93
- const onSearchTriggered = useCallback(searchString => {
94
- onSearch(searchString);
95
- }, [onSearch]);
96
- useEffect(() => {
97
- if (forceShowPopup && searchEl)
98
- searchEl.focus();
99
- }, [forceShowPopup, searchEl]);
107
+ const { data, onSubmit, onCancel, action } = props;
108
+ const initialSelectedColumns = useMemo(() => new Set(menuHelpers
109
+ .flatten(data)
110
+ .filter(item => item.selected)
111
+ .map(item => item.id)), [data]);
112
+ const [searchText, setSearchText] = useState('');
113
+ const [searchRef, setSearchRef] = useElement(null);
114
+ const [items, setItems] = useState(data);
115
+ const selectedColumns = useMemo(() => new Set(menuHelpers.getSelected(items).map(item => item.id)), [items]);
100
116
  useEffect(() => {
101
- if (hasMountedRef.current) {
102
- const previousVisibleColumns = flatData.filter(o => o.selected).map(o => o.id);
103
- const currentVisibleColumns = [...visibleColumns];
104
- const toggledColumns = [
105
- ...currentVisibleColumns.filter(id => !previousVisibleColumns.includes(id)),
106
- ...previousVisibleColumns.filter(id => !visibleColumns.has(id))
107
- ];
108
- onSelect(toggledColumns);
117
+ if (searchRef) {
118
+ searchRef.focus();
109
119
  }
110
- hasMountedRef.current = true;
111
- }, [visibleColumns]);
112
- const itemsToRender = searchQuery
113
- ? flatData.filter(item => item.label.toLowerCase().includes(searchQuery.toLowerCase()))
114
- : data;
115
- return (_jsx(Menu, { items: itemsToRender, mode: 'multi-select', onItemClick: onChange, role: 'listbox', focusControlEl: searchEl || undefined, header: _jsx(SearchInput, { value: searchQuery, onSearchChange: onSearchTriggered, ref: setSearchEl }) }));
120
+ }, [searchRef]);
121
+ const itemsToRender = useMemo(() => {
122
+ return menuHelpers.mapTree(searchText
123
+ ? menuHelpers
124
+ .flatten(items)
125
+ .filter(({ primary }) => primary.toLowerCase().includes(searchText.toLowerCase()))
126
+ : items, item => {
127
+ return {
128
+ ...item,
129
+ visual: item.visual,
130
+ selected: item.items ? undefined : item.selected,
131
+ disabled: item.selected && action === colsVisibility && selectedColumns.size <= 1
132
+ };
133
+ });
134
+ }, [searchText, items]);
135
+ const modifiedColumns = useMemo(() => getModifiedColumns(initialSelectedColumns, selectedColumns), [initialSelectedColumns, selectedColumns, action]);
136
+ const isSubmitEnabled = !(action === colsVisibility && selectedColumns.size === 0) && modifiedColumns.length > 0;
137
+ return (_jsx(StyledMenu, { items: itemsToRender, mode: 'multi-select', onItemClick: (id, args) => {
138
+ setItems(cur => menuHelpers.toggleSelected(cur, id, args.mode));
139
+ }, role: 'listbox', focusControlEl: searchRef || undefined, header: _jsx(SearchInput, { value: searchText, onSearchChange: setSearchText, ref: setSearchRef }), footer: _jsx(Footer, { onCancel: onCancel, onSubmit: () => onSubmit(modifiedColumns), disabled: !isSubmitEnabled }) }));
116
140
  }
117
141
  ColumnSelectorControl.propTypes = {
118
142
  data: PropTypes.arrayOf(PropTypes.object).isRequired,
119
- onSelect: PropTypes.func.isRequired,
120
- forceShowPopup: PropTypes.bool.isRequired
143
+ onSubmit: PropTypes.func.isRequired,
144
+ onCancel: PropTypes.func.isRequired,
145
+ action: PropTypes.string.isRequired
121
146
  };
122
- function ColumnSelector({ dispatch, columns, action }) {
123
- const data = useMemo(() => transformData(columns, action), [columns, action]);
124
- const [forceShowPopup, setForceShowPopup] = useState(true);
125
- const onSelectHandler = useCallback(cols => {
126
- if (columns.length > 100) {
127
- setForceShowPopup(false);
147
+ function ColumnSelector({ dispatch, columns, action, finishPopOver }) {
148
+ const transformed = useMemo(() => transformData(columns, action), [columns, action]);
149
+ const onSubmitHandler = useCallback(changedCols => {
150
+ if (changedCols.length > 0) {
151
+ dispatch(changedCols);
128
152
  }
129
- if (cols.length > 0)
130
- dispatch(cols);
131
- }, [dispatch, columns.length]);
132
- return (_jsx(_Fragment, { children: forceShowPopup && (_jsx(ColumnSelectorControl, { data: data, onSelect: onSelectHandler, forceShowPopup: forceShowPopup })) }));
153
+ finishPopOver();
154
+ }, [dispatch]);
155
+ return (_jsx(ColumnSelectorControl, { data: transformed, onSubmit: onSubmitHandler, onCancel: finishPopOver, action: action }));
133
156
  }
134
157
  ColumnSelector.propTypes = {
135
158
  dispatch: PropTypes.func.isRequired,
136
159
  columns: PropTypes.arrayOf(PropTypes.object).isRequired,
137
- action: PropTypes.string.isRequired
160
+ action: PropTypes.string.isRequired,
161
+ finishPopOver: PropTypes.func.isRequired
138
162
  };
139
163
  export default memo(ColumnSelector);
140
164
  //# sourceMappingURL=ColumnSelector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnSelector.js","sourceRoot":"","sources":["../../../../Core/Components/Toolbar/ColumnSelector.jsx"],"names":[],"mappings":"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","sourcesContent":["import { memo, useCallback, useEffect, useRef, useState, useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Icon, SearchInput, Menu, menuHelpers, useElement } from '@pega/cosmos-react-core';\n\nimport useSelect from '../../Hooks/useSelect';\nimport { allowToggle, getFieldIcon } from '../../Utils';\n\nexport const colsVisibility = 'Show/hide columns';\nexport const pinning = 'Freeze columns';\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 * Transforms the columns array into array of columns grouped by category\n * @param {Array} columns : ;\n * @returns Arrays of columns nested by category\n */\nexport function transformData(columns, action) {\n const result = [];\n if (!columns?.length) return result;\n\n const categoryObj = {};\n const allowColumnToggle = allowToggle(columns[0].parent.getVisibleColumns());\n\n columns\n ?.filter(c => c.field.toggle)\n .forEach(column => {\n const {\n field: { id, category = [], type },\n label,\n hidden,\n frozen\n } = column;\n const lastCategoryLabel = category.length ? category[category.length - 1].label : undefined;\n let selectAction;\n let disabled;\n if (action === colsVisibility) {\n selectAction = !hidden;\n disabled = !allowColumnToggle && !hidden;\n } else if (action === pinning) selectAction = frozen;\n if (categoryObj[lastCategoryLabel])\n categoryObj[lastCategoryLabel].items.push({\n id,\n primary: label,\n label,\n selected: selectAction,\n type,\n disabled\n });\n else {\n categoryObj[lastCategoryLabel] = {\n id: `category:${lastCategoryLabel}`,\n label: lastCategoryLabel,\n items: [\n {\n id,\n primary: label,\n selected: selectAction,\n label,\n type,\n disabled\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 return result;\n}\n\nexport function ColumnSelectorControl(props) {\n const { data, onSelect, forceShowPopup } = props;\n const flatData = menuHelpers.flatten(data);\n\n data.forEach(d => {\n if (d.items)\n d.items.forEach(item => {\n item.visual = getIconByFieldType(item.type);\n });\n else {\n d.visual = getIconByFieldType(d.type);\n }\n });\n\n const selectedData = flatData.filter(o => o.selected).map(obj => obj.id);\n const [visibleColumns, onChecked] = useSelect(selectedData);\n const onChange = useCallback(id => onChecked(id), [onChecked]);\n const [searchQuery, onSearch] = useState('');\n const [searchEl, setSearchEl] = useElement(null);\n\n const hasMountedRef = useRef(false);\n\n const onSearchTriggered = useCallback(\n searchString => {\n onSearch(searchString);\n },\n [onSearch]\n );\n\n useEffect(() => {\n if (forceShowPopup && searchEl) searchEl.focus();\n }, [forceShowPopup, searchEl]);\n\n useEffect(() => {\n if (hasMountedRef.current) {\n const previousVisibleColumns = flatData.filter(o => o.selected).map(o => o.id);\n const currentVisibleColumns = [...visibleColumns];\n const toggledColumns = [\n ...currentVisibleColumns.filter(id => !previousVisibleColumns.includes(id)),\n ...previousVisibleColumns.filter(id => !visibleColumns.has(id))\n ];\n onSelect(toggledColumns);\n }\n hasMountedRef.current = true;\n }, [visibleColumns]);\n\n const itemsToRender = searchQuery\n ? flatData.filter(item => item.label.toLowerCase().includes(searchQuery.toLowerCase()))\n : data;\n\n return (\n <Menu\n items={itemsToRender}\n mode='multi-select'\n onItemClick={onChange}\n role='listbox'\n focusControlEl={searchEl || undefined}\n header={\n <SearchInput value={searchQuery} onSearchChange={onSearchTriggered} ref={setSearchEl} />\n }\n />\n );\n}\n\nColumnSelectorControl.propTypes = {\n data: PropTypes.arrayOf(PropTypes.object).isRequired,\n onSelect: PropTypes.func.isRequired,\n forceShowPopup: PropTypes.bool.isRequired\n};\n\nfunction ColumnSelector({ dispatch, columns, action }) {\n const data = useMemo(() => transformData(columns, action), [columns, action]);\n const [forceShowPopup, setForceShowPopup] = useState(true);\n const onSelectHandler = useCallback(\n cols => {\n if (columns.length > 100) {\n setForceShowPopup(false);\n }\n if (cols.length > 0) dispatch(cols);\n },\n [dispatch, columns.length]\n );\n\n return (\n <>\n {forceShowPopup && (\n <ColumnSelectorControl\n data={data}\n onSelect={onSelectHandler}\n forceShowPopup={forceShowPopup}\n />\n )}\n </>\n );\n}\n\nColumnSelector.propTypes = {\n dispatch: PropTypes.func.isRequired,\n columns: PropTypes.arrayOf(PropTypes.object).isRequired,\n action: PropTypes.string.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,WAAW,EACX,IAAI,EACJ,WAAW,EACX,UAAU,EACV,IAAI,EACJ,MAAM,EACP,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACxD,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,OAAO,EAAE,MAAM;IAC3C,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,IAAI,CAAC,OAAO,EAAE,MAAM;QAAE,OAAO,MAAM,CAAC;IAEpC,MAAM,WAAW,GAAG,EAAE,CAAC;IACvB,MAAM,iBAAiB,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAE7E,OAAO;QACL,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;SAC5B,OAAO,CAAC,MAAM,CAAC,EAAE;QAChB,MAAM,EACJ,KAAK,EAAE,EAAE,EAAE,EAAE,QAAQ,GAAG,EAAE,EAAE,IAAI,EAAE,EAClC,KAAK,EACL,MAAM,EACN,MAAM,EACP,GAAG,MAAM,CAAC;QACX,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,QAAQ,CAAC;QACb,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;YAC9B,QAAQ,GAAG,CAAC,iBAAiB,IAAI,CAAC,MAAM,CAAC;QAC3C,CAAC;QACD,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,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;gBACtD,IAAI;gBACJ,QAAQ;gBACR,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,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;wBACtD,KAAK;wBACL,IAAI;wBACJ,QAAQ;wBACR,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;IAEnD,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,IACT,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,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE;IAClE,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IAErF,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,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,UAAU;IACvD,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} from '@pega/cosmos-react-core';\n\nimport { allowToggle, 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(columns, action) {\n const result = [];\n if (!columns?.length) return result;\n\n const categoryObj = {};\n const allowColumnToggle = allowToggle(columns[0].parent.getVisibleColumns());\n\n columns\n ?.filter(c => c.field.toggle)\n .forEach(column => {\n const {\n field: { id, category = [], type },\n label,\n hidden,\n frozen\n } = column;\n const lastCategoryLabel = category.length ? category[category.length - 1].label : undefined;\n let disabled;\n if (action === colsVisibility) {\n disabled = !allowColumnToggle && !hidden;\n }\n if (categoryObj[lastCategoryLabel])\n categoryObj[lastCategoryLabel].items.push({\n id,\n primary: label,\n label,\n selected: action === colsVisibility ? !hidden : frozen,\n type,\n disabled,\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 ? !hidden : frozen,\n label,\n type,\n disabled,\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\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 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, columns, action, finishPopOver }) {\n const transformed = useMemo(() => transformData(columns, action), [columns, action]);\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 columns: PropTypes.arrayOf(PropTypes.object).isRequired,\n action: PropTypes.string.isRequired,\n finishPopOver: PropTypes.func.isRequired\n};\n\nexport default memo(ColumnSelector);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"useMore.d.ts","sourceRoot":"","sources":["../../../../../Core/Components/Toolbar/hooks/useMore.jsx"],"names":[],"mappings":";AA6BA;;;;;;EAyWC"}
1
+ {"version":3,"file":"useMore.d.ts","sourceRoot":"","sources":["../../../../../Core/Components/Toolbar/hooks/useMore.jsx"],"names":[],"mappings":";AA6BA;;;;;;EAqXC"}
@@ -276,10 +276,10 @@ const useMore = ({ view }) => {
276
276
  });
277
277
  let content;
278
278
  if (moreContent === colsVisibility) {
279
- content = (_jsx(ColumnSelector, { dispatch: applyToggleVisibility, columns: columns, action: moreContent }));
279
+ content = (_jsx(ColumnSelector, { dispatch: applyToggleVisibility, columns: columns, action: moreContent, finishPopOver: finishPopOver }));
280
280
  }
281
281
  else if (moreContent === pinning) {
282
- content = _jsx(ColumnSelector, { dispatch: applyFreeze, columns: columns, action: moreContent });
282
+ content = (_jsx(ColumnSelector, { dispatch: applyFreeze, columns: columns, action: moreContent, finishPopOver: finishPopOver }));
283
283
  }
284
284
  else if (moreContent === RowDensity) {
285
285
  content = resolveViewComponent('rowHeightRenderer', renderFactory, {
@@ -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';\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';\n\nconst RowDensity = 'Row density';\n\nconst SaveViewAs = 'Save view as..';\nconst SaveViewChanges = 'Save changes';\nconst ViewAs = 'View as...';\nconst EditView = 'Edit view';\nconst SetAsDefault = 'Set as default';\nconst MarkAsAppDefault = 'Mark as app default';\nconst Delete = 'Delete 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';\n\nconst useMore = ({ view }) => {\n const {\n meta: {\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 state: {\n showHeaderIcons,\n personalization: personalizationState,\n responsive: { sm: isSmallOrAbove } = {}\n } = {},\n type: { applyToggleVisibility, applyFreeze },\n toolBarOptions = [],\n columns,\n defaultPresetId,\n renderFactory,\n getContext\n } = view;\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: colsVisibility,\n icon: 'eye-off',\n text: translate(colsVisibility),\n show: !!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: displayDensity.length > 0 && 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: !!freezeFields && !!enableFreezeColumns && 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: isHeaderIcons,\n onClick: () => {\n view.type.updateHeaderIconsVisibility(!showHeaderIcons);\n }\n },\n {\n id: AutoSizeColumns,\n icon: 'scale-up',\n text: translate(AutoSizeColumns),\n show: autoSizeColumns,\n onClick: () => {\n view.applyColumnsAutoSize(false);\n }\n },\n {\n id: ResetColumnWidths,\n icon: 'scale-down',\n text: translate(ResetColumnWidths),\n show: resetColumnWidths,\n onClick: () => {\n view.applyColumnsAutoSize(true);\n }\n },\n {\n id: Info,\n icon: 'information',\n text: translate(Info),\n show: 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: SaveViewAs,\n icon: 'clipboard-plus',\n text: translate(SaveViewAs),\n show: Boolean(personalization),\n onClick: () => {\n setMoreContent(SaveViewAs);\n setForceShowMenu(true);\n }\n },\n {\n id: SaveViewChanges,\n icon: 'clipboard-plus',\n text: translate(SaveViewChanges),\n show: 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: EditView,\n icon: 'pencil',\n text: translate(EditView),\n show: Boolean(\n personalization &&\n (!isPreset || (isAppDefaultView && enableAppDefault)) &&\n currentActiveView !== defaultPresetId\n ),\n onClick: () => {\n setMoreContent(EditView);\n setForceShowMenu(true);\n }\n },\n {\n id: Delete,\n icon: 'trash',\n text: translate(Delete),\n show: 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: Boolean(\n (personalization || isPreset || currentActiveView === defaultPresetId) &&\n currentDefaultView !== currentActiveView &&\n !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: Boolean(allowRefresh),\n onClick: () => {\n view.type.forceRefresh();\n }\n }\n ],\n ...toolBarOptions\n ],\n [\n translate,\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 ]\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,\n onClose: finishPopOver\n });\n\n let content;\n if (moreContent === colsVisibility) {\n content = (\n <ColumnSelector dispatch={applyToggleVisibility} columns={columns} action={moreContent} />\n );\n } else if (moreContent === pinning) {\n content = <ColumnSelector dispatch={applyFreeze} columns={columns} action={moreContent} />;\n } else if (moreContent === RowDensity) {\n content = resolveViewComponent('rowHeightRenderer', renderFactory, {\n ...getContext(),\n view,\n onClose: finishPopOver\n });\n } else if (moreContent === ViewAs) {\n content = resolveViewComponent('personalizationSelectorRenderer', renderFactory, getContext());\n } else if (moreContent === SaveViewAs) {\n content = resolveViewComponent('personalizationCreateEditRenderer', renderFactory, {\n onFinish: finishPopOver,\n ...getContext(),\n view\n });\n } else if (moreContent === EditView) {\n content = resolveViewComponent('personalizationCreateEditRenderer', renderFactory, {\n onFinish: finishPopOver,\n editing: true,\n ...getContext(),\n view\n });\n } else if (moreContent === Info) {\n content = <DebugInfo view={view} targetRef={actionsButtonRef} onClose={finishPopOver} />;\n }\n\n const popover = forceShowMenu && (\n <Popover\n className='popper'\n arrow\n ref={setPopperRef}\n target={actionsButtonRef.current}\n placement='bottom-end'\n >\n {content}\n </Popover>\n );\n\n return { actions: filteredActions, actionsButtonRef, popover };\n};\n\nexport default useMore;\n"]}
1
+ {"version":3,"file":"useMore.js","sourceRoot":"","sources":["../../../../../Core/Components/Toolbar/hooks/useMore.jsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE1E,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/E,OAAO,YAAY,MAAM,6BAA6B,CAAC;AACvD,OAAO,iCAAiC,MAAM,2DAA2D,CAAC;AAC1G,OAAO,cAAc,EAAE,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AAEtF,MAAM,UAAU,GAAG,aAAa,CAAC;AAEjC,MAAM,UAAU,GAAG,gBAAgB,CAAC;AACpC,MAAM,eAAe,GAAG,cAAc,CAAC;AACvC,MAAM,MAAM,GAAG,YAAY,CAAC;AAC5B,MAAM,QAAQ,GAAG,WAAW,CAAC;AAC7B,MAAM,YAAY,GAAG,gBAAgB,CAAC;AACtC,MAAM,gBAAgB,GAAG,qBAAqB,CAAC;AAC/C,MAAM,MAAM,GAAG,aAAa,CAAC;AAC7B,MAAM,iBAAiB,GAAG,qBAAqB,CAAC;AAChD,MAAM,eAAe,GAAG,mBAAmB,CAAC;AAC5C,MAAM,eAAe,GAAG,iBAAiB,CAAC;AAC1C,MAAM,IAAI,GAAG,YAAY,CAAC;AAC1B,MAAM,aAAa,GAAG,iBAAiB,CAAC;AACxC,MAAM,aAAa,GAAG,iBAAiB,CAAC;AACxC,MAAM,WAAW,GAAG,eAAe,CAAC;AACpC,MAAM,OAAO,GAAG,SAAS,CAAC;AAE1B,MAAM,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IAC3B,MAAM,EACJ,IAAI,EAAE,EACJ,cAAc,EACd,qBAAqB,EACrB,YAAY,EACZ,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,eAAe,EAAE,aAAa,EAC9B,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,YAAY,EACb,EACD,KAAK,EAAE,EACL,eAAe,EACf,eAAe,EAAE,oBAAoB,EACrC,UAAU,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,EACxC,GAAG,EAAE,EACN,IAAI,EAAE,EAAE,qBAAqB,EAAE,WAAW,EAAE,EAC5C,cAAc,GAAG,EAAE,EACnB,OAAO,EACP,eAAe,EACf,aAAa,EACb,UAAU,EACX,GAAG,IAAI,CAAC;IAET,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,UAAU,EAAE,CAAC;IAE/C,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,CAAC,SAAS,CAAC,GAAG,YAAY,EAAE,CAAC;IACnC,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,EAAE,CAAC;IACrC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC1D,MAAM,iBAAiB,GAAG,oBAAoB,EAAE,MAAM,CAAC;IACvD,MAAM,kBAAkB,GAAG,oBAAoB,EAAE,sBAAsB,CAAC;IACxE,MAAM,gBAAgB,GAAG,iBAAiB,KAAK,aAAa,CAAC;IAC7D,MAAM,WAAW,GAAG,oBAAoB,EAAE,KAAK,CAAC;IAChD,MAAM,qBAAqB,GACzB,oBAAoB,EAAE,mBAAmB,EAAE,CAAC,iBAAiB,CAAC,EAAE,IAAI,CAAC;IACvE,MAAM,QAAQ,GAAG,CAAC,CAAC,oBAAoB,EAAE,mBAAmB,EAAE,CAAC,iBAAiB,CAAC,EAAE,QAAQ,CAAC;IAE5F,MAAM,uBAAuB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC/C,MAAM,CACJ,iCAAiC,EACjC;YACE,QAAQ,EAAE,GAAG,EAAE;gBACb,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;YACrD,CAAC;YACD,qBAAqB;YACrB,SAAS;SACV,EACD;YACE,KAAK,EAAE,IAAI;SACZ,CACF,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,EAAE,qBAAqB,EAAE,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAElE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE1D,MAAM,OAAO,GAAG,OAAO,CACrB,GAAG,EAAE,CAAC;QACJ;YACE;gBACE,EAAE,EAAE,cAAc;gBAClB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS,CAAC,cAAc,CAAC;gBAC/B,IAAI,EAAE,CAAC,CAAC,qBAAqB;gBAC7B,OAAO,EAAE,GAAG,EAAE;oBACZ,cAAc,CAAC,cAAc,CAAC,CAAC;oBAC/B,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACzB,CAAC;aACF;YACD;gBACE,EAAE,EAAE,UAAU;gBACd,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,SAAS,CAAC,UAAU,CAAC;gBAC3B,IAAI,EAAE,cAAc,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU;gBAC7C,OAAO,EAAE,GAAG,EAAE;oBACZ,cAAc,CAAC,UAAU,CAAC,CAAC;oBAC3B,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACzB,CAAC;aACF;YACD;gBACE,EAAE,EAAE,OAAO;gBACX,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC;gBACxB,IAAI,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,mBAAmB,IAAI,cAAc;gBAC/D,OAAO,EAAE,GAAG,EAAE;oBACZ,cAAc,CAAC,OAAO,CAAC,CAAC;oBACxB,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACzB,CAAC;aACF;YACD;gBACE,EAAE,EAAE,eAAe;gBACnB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC;gBACvF,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,GAAG,EAAE;oBACZ,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,eAAe,CAAC,CAAC;gBAC1D,CAAC;aACF;YACD;gBACE,EAAE,EAAE,eAAe;gBACnB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,SAAS,CAAC,eAAe,CAAC;gBAChC,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,GAAG,EAAE;oBACZ,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;gBACnC,CAAC;aACF;YACD;gBACE,EAAE,EAAE,iBAAiB;gBACrB,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,SAAS,CAAC,iBAAiB,CAAC;gBAClC,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,GAAG,EAAE;oBACZ,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;gBAClC,CAAC;aACF;YACD;gBACE,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;gBACrB,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,GAAG,EAAE;oBACZ,cAAc,CAAC,IAAI,CAAC,CAAC;oBACrB,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACzB,CAAC;aACF;SACF;QACD;YACE;gBACE,EAAE,EAAE,MAAM;gBACV,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;gBACvB,IAAI,EAAE,OAAO,CAAC,eAAe,IAAI,CAAC,SAAS,CAAC;gBAC5C,OAAO,EAAE,GAAG,EAAE;oBACZ,cAAc,CAAC,MAAM,CAAC,CAAC;oBACvB,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACzB,CAAC;aACF;YACD;gBACE,EAAE,EAAE,UAAU;gBACd,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,SAAS,CAAC,UAAU,CAAC;gBAC3B,IAAI,EAAE,OAAO,CAAC,eAAe,CAAC;gBAC9B,OAAO,EAAE,GAAG,EAAE;oBACZ,cAAc,CAAC,UAAU,CAAC,CAAC;oBAC3B,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACzB,CAAC;aACF;YACD;gBACE,EAAE,EAAE,eAAe;gBACnB,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,SAAS,CAAC,eAAe,CAAC;gBAChC,IAAI,EAAE,OAAO,CACX,eAAe;oBACb,iBAAiB,KAAK,eAAe;oBACrC,CAAC,CAAC,QAAQ,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,CAAC;oBACrD,WAAW,CACd;gBACD,OAAO,EAAE,GAAG,EAAE;oBACZ,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAC7B,iBAAiB,EACjB,kBAAkB,KAAK,iBAAiB,EACxC,gBAAgB,CACjB,CAAC;gBACJ,CAAC;aACF;YACD;gBACE,EAAE,EAAE,QAAQ;gBACZ,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC;gBACzB,IAAI,EAAE,OAAO,CACX,eAAe;oBACb,CAAC,CAAC,QAAQ,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,CAAC;oBACrD,iBAAiB,KAAK,eAAe,CACxC;gBACD,OAAO,EAAE,GAAG,EAAE;oBACZ,cAAc,CAAC,QAAQ,CAAC,CAAC;oBACzB,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACzB,CAAC;aACF;YACD;gBACE,EAAE,EAAE,MAAM;gBACV,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;gBACvB,IAAI,EAAE,OAAO,CACX,eAAe;oBACb,CAAC,QAAQ;oBACT,iBAAiB,KAAK,eAAe;oBACrC,CAAC,gBAAgB,CACpB;gBACD,OAAO,EAAE,uBAAuB;aACjC;YACD;gBACE,EAAE,EAAE,YAAY;gBAChB,IAAI,EAAE,iBAAiB;gBACvB,IAAI,EAAE,SAAS,CAAC,YAAY,CAAC;gBAC7B,IAAI,EAAE,OAAO,CACX,CAAC,eAAe,IAAI,QAAQ,IAAI,iBAAiB,KAAK,eAAe,CAAC;oBACpE,kBAAkB,KAAK,iBAAiB;oBACxC,CAAC,gBAAgB,CACpB;gBACD,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,iBAAiB,CAAC;aACtE;YACD;gBACE,EAAE,EAAE,gBAAgB;gBACpB,IAAI,EAAE,iBAAiB;gBACvB,IAAI,EAAE,SAAS,CAAC,gBAAgB,CAAC;gBACjC,IAAI,EAAE,OAAO,CAAC,QAAQ,IAAI,gBAAgB,IAAI,eAAe,IAAI,CAAC,gBAAgB,CAAC;gBACnF,OAAO,EAAE,GAAG,EAAE,CACZ,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,aAAa,EAAE,qBAAqB,CAAC;aAC/E;YACD;gBACE,EAAE,EAAE,aAAa;gBACjB,IAAI,EAAE,cAAc;gBACpB,IAAI,EAAE,SAAS,CAAC,aAAa,CAAC;gBAC9B,IAAI,EAAE,OAAO,CAAC,oBAAoB,CAAC;gBACnC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;aAC/C;YACD;gBACE,EAAE,EAAE,aAAa;gBACjB,MAAM,EAAE,iBAAiB;gBACzB,IAAI,EAAE,cAAc;gBACpB,IAAI,EAAE,SAAS,CAAC,aAAa,CAAC;gBAC9B,IAAI,EAAE,OAAO,CAAC,uBAAuB,CAAC;gBACtC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;aACzC;YACD;gBACE,EAAE,EAAE,WAAW;gBACf,IAAI,EAAE,cAAc;gBACpB,IAAI,EAAE,SAAS,CAAC,WAAW,CAAC;gBAC5B,IAAI,EAAE,OAAO,CAAC,qBAAqB,CAAC;gBACpC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;aACvC;YACD;gBACE,EAAE,EAAE,OAAO;gBACX,MAAM,EAAE,SAAS;gBACjB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC;gBACxB,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC;gBAC3B,OAAO,EAAE,GAAG,EAAE;oBACZ,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gBAC3B,CAAC;aACF;SACF;QACD,GAAG,cAAc;KAClB,EACD;QACE,SAAS;QACT,qBAAqB;QACrB,cAAc,CAAC,MAAM;QACrB,UAAU;QACV,YAAY;QACZ,mBAAmB;QACnB,eAAe;QACf,aAAa;QACb,eAAe;QACf,aAAa;QACb,iBAAiB;QACjB,eAAe;QACf,SAAS;QACT,iBAAiB;QACjB,eAAe;QACf,QAAQ;QACR,WAAW;QACX,gBAAgB;QAChB,uBAAuB;QACvB,qBAAqB;QACrB,uBAAuB;QACvB,kBAAkB;QAClB,cAAc;QACd,qBAAqB;QACrB,IAAI;QACJ,gBAAgB;QAChB,cAAc;KACf,CACF,CAAC;IAEF,MAAM,eAAe,GAAG,OAAO,CAC7B,GAAG,EAAE,CACH,OAAO;SACJ,IAAI,EAAE;SACN,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACd,GAAG,MAAM;QACT,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC;KACnC,CAAC,CAAC;SACF,MAAM,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EACtC,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,IAAI,aAAa,EAAE,CAAC;YAClB,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CAAC;IAEF,qHAAqH;IACrH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,aAAa,IAAI,SAAS,EAAE,CAAC;YAChC,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;QACpC,CAAC;IACH,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,eAAe,CAAC;QACd,SAAS,EAAE,SAAS;QACpB,OAAO,EAAE,aAAa;KACvB,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC;IACZ,IAAI,WAAW,KAAK,cAAc,EAAE,CAAC;QACnC,OAAO,GAAG,CACR,KAAC,cAAc,IACb,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,WAAW,EACnB,aAAa,EAAE,aAAa,GAC5B,CACH,CAAC;IACJ,CAAC;SAAM,IAAI,WAAW,KAAK,OAAO,EAAE,CAAC;QACnC,OAAO,GAAG,CACR,KAAC,cAAc,IACb,QAAQ,EAAE,WAAW,EACrB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,WAAW,EACnB,aAAa,EAAE,aAAa,GAC5B,CACH,CAAC;IACJ,CAAC;SAAM,IAAI,WAAW,KAAK,UAAU,EAAE,CAAC;QACtC,OAAO,GAAG,oBAAoB,CAAC,mBAAmB,EAAE,aAAa,EAAE;YACjE,GAAG,UAAU,EAAE;YACf,IAAI;YACJ,OAAO,EAAE,aAAa;SACvB,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;QAClC,OAAO,GAAG,oBAAoB,CAAC,iCAAiC,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC;IACjG,CAAC;SAAM,IAAI,WAAW,KAAK,UAAU,EAAE,CAAC;QACtC,OAAO,GAAG,oBAAoB,CAAC,mCAAmC,EAAE,aAAa,EAAE;YACjF,QAAQ,EAAE,aAAa;YACvB,GAAG,UAAU,EAAE;YACf,IAAI;SACL,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,GAAG,oBAAoB,CAAC,mCAAmC,EAAE,aAAa,EAAE;YACjF,QAAQ,EAAE,aAAa;YACvB,OAAO,EAAE,IAAI;YACb,GAAG,UAAU,EAAE;YACf,IAAI;SACL,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QAChC,OAAO,GAAG,KAAC,SAAS,IAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,aAAa,GAAI,CAAC;IAC3F,CAAC;IAED,MAAM,OAAO,GAAG,aAAa,IAAI,CAC/B,KAAC,OAAO,IACN,SAAS,EAAC,QAAQ,EAClB,KAAK,QACL,GAAG,EAAE,YAAY,EACjB,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAChC,SAAS,EAAC,YAAY,YAErB,OAAO,GACA,CACX,CAAC;IAEF,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC;AACjE,CAAC,CAAC;AAEF,eAAe,OAAO,CAAC","sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { Popover, useElement, useModalManager } from '@pega/cosmos-react-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';\n\nconst RowDensity = 'Row density';\n\nconst SaveViewAs = 'Save view as..';\nconst SaveViewChanges = 'Save changes';\nconst ViewAs = 'View as...';\nconst EditView = 'Edit view';\nconst SetAsDefault = 'Set as default';\nconst MarkAsAppDefault = 'Mark as app default';\nconst Delete = 'Delete 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';\n\nconst useMore = ({ view }) => {\n const {\n meta: {\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 state: {\n showHeaderIcons,\n personalization: personalizationState,\n responsive: { sm: isSmallOrAbove } = {}\n } = {},\n type: { applyToggleVisibility, applyFreeze },\n toolBarOptions = [],\n columns,\n defaultPresetId,\n renderFactory,\n getContext\n } = view;\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: colsVisibility,\n icon: 'eye-off',\n text: translate(colsVisibility),\n show: !!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: displayDensity.length > 0 && 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: !!freezeFields && !!enableFreezeColumns && 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: isHeaderIcons,\n onClick: () => {\n view.type.updateHeaderIconsVisibility(!showHeaderIcons);\n }\n },\n {\n id: AutoSizeColumns,\n icon: 'scale-up',\n text: translate(AutoSizeColumns),\n show: autoSizeColumns,\n onClick: () => {\n view.applyColumnsAutoSize(false);\n }\n },\n {\n id: ResetColumnWidths,\n icon: 'scale-down',\n text: translate(ResetColumnWidths),\n show: resetColumnWidths,\n onClick: () => {\n view.applyColumnsAutoSize(true);\n }\n },\n {\n id: Info,\n icon: 'information',\n text: translate(Info),\n show: 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: SaveViewAs,\n icon: 'clipboard-plus',\n text: translate(SaveViewAs),\n show: Boolean(personalization),\n onClick: () => {\n setMoreContent(SaveViewAs);\n setForceShowMenu(true);\n }\n },\n {\n id: SaveViewChanges,\n icon: 'clipboard-plus',\n text: translate(SaveViewChanges),\n show: 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: EditView,\n icon: 'pencil',\n text: translate(EditView),\n show: Boolean(\n personalization &&\n (!isPreset || (isAppDefaultView && enableAppDefault)) &&\n currentActiveView !== defaultPresetId\n ),\n onClick: () => {\n setMoreContent(EditView);\n setForceShowMenu(true);\n }\n },\n {\n id: Delete,\n icon: 'trash',\n text: translate(Delete),\n show: 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: Boolean(\n (personalization || isPreset || currentActiveView === defaultPresetId) &&\n currentDefaultView !== currentActiveView &&\n !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: Boolean(allowRefresh),\n onClick: () => {\n view.type.forceRefresh();\n }\n }\n ],\n ...toolBarOptions\n ],\n [\n translate,\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 ]\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,\n onClose: finishPopOver\n });\n\n let content;\n if (moreContent === colsVisibility) {\n content = (\n <ColumnSelector\n dispatch={applyToggleVisibility}\n columns={columns}\n action={moreContent}\n finishPopOver={finishPopOver}\n />\n );\n } else if (moreContent === pinning) {\n content = (\n <ColumnSelector\n dispatch={applyFreeze}\n columns={columns}\n action={moreContent}\n finishPopOver={finishPopOver}\n />\n );\n } else if (moreContent === RowDensity) {\n content = resolveViewComponent('rowHeightRenderer', renderFactory, {\n ...getContext(),\n view,\n onClose: finishPopOver\n });\n } else if (moreContent === ViewAs) {\n content = resolveViewComponent('personalizationSelectorRenderer', renderFactory, getContext());\n } else if (moreContent === SaveViewAs) {\n content = resolveViewComponent('personalizationCreateEditRenderer', renderFactory, {\n onFinish: finishPopOver,\n ...getContext(),\n view\n });\n } else if (moreContent === EditView) {\n content = resolveViewComponent('personalizationCreateEditRenderer', renderFactory, {\n onFinish: finishPopOver,\n editing: true,\n ...getContext(),\n view\n });\n } else if (moreContent === Info) {\n content = <DebugInfo view={view} targetRef={actionsButtonRef} onClose={finishPopOver} />;\n }\n\n const popover = forceShowMenu && (\n <Popover\n className='popper'\n arrow\n ref={setPopperRef}\n target={actionsButtonRef.current}\n placement='bottom-end'\n >\n {content}\n </Popover>\n );\n\n return { actions: filteredActions, actionsButtonRef, popover };\n};\n\nexport default useMore;\n"]}
@@ -0,0 +1,19 @@
1
+ type Messages = {
2
+ added: string | undefined;
3
+ modified: string | undefined;
4
+ removed: string | undefined;
5
+ };
6
+ /**
7
+ * Announces accessibility messages for array changes using a polite live region.
8
+ * Triggers the appropriate message when items are added, modified, or removed,
9
+ * considering personalization context. Useful for screen readers to inform users
10
+ * about dynamic updates in lists or tables.
11
+ *
12
+ * @template T
13
+ * @param {T | undefined} currentStateSlice - The current array of items or undefined.
14
+ * @param {Messages} messages - Object containing messages for added, modified, and removed states.
15
+ * @param {string} [activePersonalization] - Optional key to track personalization context changes.
16
+ */
17
+ export default function useAnnounce<T extends any[] | undefined>(currentStateSlice: T, messages: Messages, activePersonalization?: string): void;
18
+ export {};
19
+ //# sourceMappingURL=useAnnounce.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAnnounce.d.ts","sourceRoot":"","sources":["../../../../Core/Hooks/a11y/useAnnounce.ts"],"names":[],"mappings":"AAMA,KAAK,QAAQ,GAAG;IACd,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,CAAC,SAAS,GAAG,EAAE,GAAG,SAAS,EAC7D,iBAAiB,EAAE,CAAC,EACpB,QAAQ,EAAE,QAAQ,EAClB,qBAAqB,CAAC,EAAE,MAAM,QAuC/B"}
@@ -0,0 +1,49 @@
1
+ import { useEffect } from 'react';
2
+ import { useLiveLog, usePrevious } from '@pega/cosmos-react-core';
3
+ import { deepEqual } from '../../Utils';
4
+ /**
5
+ * Announces accessibility messages for array changes using a polite live region.
6
+ * Triggers the appropriate message when items are added, modified, or removed,
7
+ * considering personalization context. Useful for screen readers to inform users
8
+ * about dynamic updates in lists or tables.
9
+ *
10
+ * @template T
11
+ * @param {T | undefined} currentStateSlice - The current array of items or undefined.
12
+ * @param {Messages} messages - Object containing messages for added, modified, and removed states.
13
+ * @param {string} [activePersonalization] - Optional key to track personalization context changes.
14
+ */
15
+ export default function useAnnounce(currentStateSlice, messages, activePersonalization) {
16
+ const { announcePolite } = useLiveLog();
17
+ const previousStateSlice = usePrevious(currentStateSlice);
18
+ const previousActivePersonalization = usePrevious(activePersonalization);
19
+ useEffect(() => {
20
+ if (!previousStateSlice || !currentStateSlice)
21
+ return;
22
+ const personalizationChanged = activePersonalization !== previousActivePersonalization;
23
+ const previousLen = previousStateSlice.length ?? 0;
24
+ const currentLen = currentStateSlice.length ?? 0;
25
+ const isAdded = (previousLen === 0 || personalizationChanged) && currentLen > 0;
26
+ const isModified = !personalizationChanged &&
27
+ previousLen > 0 &&
28
+ currentLen > 0 &&
29
+ !deepEqual(previousStateSlice, currentStateSlice);
30
+ const isRemoved = !personalizationChanged && previousLen > 0 && currentLen === 0;
31
+ let message;
32
+ if (isAdded) {
33
+ message = messages.added;
34
+ }
35
+ else if (isModified) {
36
+ message = messages.modified;
37
+ }
38
+ else if (isRemoved) {
39
+ message = messages.removed;
40
+ }
41
+ if (message) {
42
+ const timeout = setTimeout(() => {
43
+ announcePolite({ message, type: 'info' });
44
+ }, 1000);
45
+ return () => clearTimeout(timeout);
46
+ }
47
+ }, [currentStateSlice, activePersonalization]);
48
+ }
49
+ //# sourceMappingURL=useAnnounce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAnnounce.js","sourceRoot":"","sources":["../../../../Core/Hooks/a11y/useAnnounce.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAQxC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,OAAO,UAAU,WAAW,CACjC,iBAAoB,EACpB,QAAkB,EAClB,qBAA8B;IAE9B,MAAM,EAAE,cAAc,EAAE,GAAG,UAAU,EAAE,CAAC;IACxC,MAAM,kBAAkB,GAAG,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAC1D,MAAM,6BAA6B,GAAG,WAAW,CAAC,qBAAqB,CAAC,CAAC;IAEzE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,kBAAkB,IAAI,CAAC,iBAAiB;YAAE,OAAO;QAEtD,MAAM,sBAAsB,GAAG,qBAAqB,KAAK,6BAA6B,CAAC;QACvF,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,IAAI,CAAC,CAAC;QACnD,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,IAAI,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,CAAC,WAAW,KAAK,CAAC,IAAI,sBAAsB,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC;QAEhF,MAAM,UAAU,GACd,CAAC,sBAAsB;YACvB,WAAW,GAAG,CAAC;YACf,UAAU,GAAG,CAAC;YACd,CAAC,SAAS,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAC;QAEpD,MAAM,SAAS,GAAG,CAAC,sBAAsB,IAAI,WAAW,GAAG,CAAC,IAAI,UAAU,KAAK,CAAC,CAAC;QAEjF,IAAI,OAA2B,CAAC;QAEhC,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC3B,CAAC;aAAM,IAAI,UAAU,EAAE,CAAC;YACtB,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAC9B,CAAC;aAAM,IAAI,SAAS,EAAE,CAAC;YACrB,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;QAC7B,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC9B,cAAc,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YAC5C,CAAC,EAAE,IAAI,CAAC,CAAC;YACT,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;IACH,CAAC,EAAE,CAAC,iBAAiB,EAAE,qBAAqB,CAAC,CAAC,CAAC;AACjD,CAAC","sourcesContent":["import { useEffect } from 'react';\n\nimport { useLiveLog, usePrevious } from '@pega/cosmos-react-core';\n\nimport { deepEqual } from '../../Utils';\n\ntype Messages = {\n added: string | undefined;\n modified: string | undefined;\n removed: string | undefined;\n};\n\n/**\n * Announces accessibility messages for array changes using a polite live region.\n * Triggers the appropriate message when items are added, modified, or removed,\n * considering personalization context. Useful for screen readers to inform users\n * about dynamic updates in lists or tables.\n *\n * @template T\n * @param {T | undefined} currentStateSlice - The current array of items or undefined.\n * @param {Messages} messages - Object containing messages for added, modified, and removed states.\n * @param {string} [activePersonalization] - Optional key to track personalization context changes.\n */\nexport default function useAnnounce<T extends any[] | undefined>(\n currentStateSlice: T,\n messages: Messages,\n activePersonalization?: string\n) {\n const { announcePolite } = useLiveLog();\n const previousStateSlice = usePrevious(currentStateSlice);\n const previousActivePersonalization = usePrevious(activePersonalization);\n\n useEffect(() => {\n if (!previousStateSlice || !currentStateSlice) return;\n\n const personalizationChanged = activePersonalization !== previousActivePersonalization;\n const previousLen = previousStateSlice.length ?? 0;\n const currentLen = currentStateSlice.length ?? 0;\n const isAdded = (previousLen === 0 || personalizationChanged) && currentLen > 0;\n\n const isModified =\n !personalizationChanged &&\n previousLen > 0 &&\n currentLen > 0 &&\n !deepEqual(previousStateSlice, currentStateSlice);\n\n const isRemoved = !personalizationChanged && previousLen > 0 && currentLen === 0;\n\n let message: string | undefined;\n\n if (isAdded) {\n message = messages.added;\n } else if (isModified) {\n message = messages.modified;\n } else if (isRemoved) {\n message = messages.removed;\n }\n\n if (message) {\n const timeout = setTimeout(() => {\n announcePolite({ message, type: 'info' });\n }, 1000);\n return () => clearTimeout(timeout);\n }\n }, [currentStateSlice, activePersonalization]);\n}\n"]}
@@ -157,6 +157,10 @@ declare const defaultTranslations: {
157
157
  created_view_with_default: string;
158
158
  deleted_view: string;
159
159
  view_navigation_instructions: string;
160
+ 'Show/Hide modified': string;
161
+ 'Freeze applied': string;
162
+ 'Freeze modified': string;
163
+ 'Freeze removed': string;
160
164
  };
161
165
  export default defaultTranslations;
162
166
  //# sourceMappingURL=defaultTranslations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaultTranslations.d.ts","sourceRoot":"","sources":["../../../Core/Localization/defaultTranslations.ts"],"names":[],"mappings":"AACA,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqKxB,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"defaultTranslations.d.ts","sourceRoot":"","sources":["../../../Core/Localization/defaultTranslations.ts"],"names":[],"mappings":"AACA,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyKxB,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -157,7 +157,11 @@ const defaultTranslations = {
157
157
  created_view: 'Created view "{0}"',
158
158
  created_view_with_default: 'Created view "{0}" and marked as default view',
159
159
  deleted_view: 'Deleted view "{0}"',
160
- view_navigation_instructions: '{0}, Refer to keyboard instructions for navigation.'
160
+ view_navigation_instructions: '{0}, Refer to keyboard instructions for navigation.',
161
+ 'Show/Hide modified': 'Show/Hide modified',
162
+ 'Freeze applied': 'Freeze applied',
163
+ 'Freeze modified': 'Freeze modified',
164
+ 'Freeze removed': 'Freeze removed'
161
165
  };
162
166
  export default defaultTranslations;
163
167
  //# sourceMappingURL=defaultTranslations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaultTranslations.js","sourceRoot":"","sources":["../../../Core/Localization/defaultTranslations.ts"],"names":[],"mappings":"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","sourcesContent":["// FIXME: Move this file to Demo folder once the typings are available from cosmos translations pack\nconst defaultTranslations = {\n Submit: 'Submit',\n 'Hide header icons': 'Hide header icons',\n 'Column name:': 'Column name:',\n 'Template:': 'Template:',\n 'Hide columns': 'Hide columns',\n 'Remove filter': 'Remove filter',\n Year: 'Year',\n Quarter: 'Quarter',\n Month: 'Month',\n Week: 'Week',\n Day: 'Day',\n Hour: 'Hour',\n Minute: 'Minute',\n 'Month of year': 'Month of year',\n 'Day of month': 'Day of month',\n 'Day of week': 'Day of week',\n 'Hour of day': 'Hour of day',\n Add: 'Add',\n Aggregate: 'Aggregate',\n Cancel: 'Cancel',\n Ok: 'Ok',\n 'has unsaved changes, do you want to discard and proceed?':\n 'has unsaved changes, do you want to discard and proceed?',\n Actions: 'Actions',\n actions: 'actions',\n 'Edit details': 'Edit details',\n 'Change stage': 'Change stage',\n Preview: 'Preview',\n 'Open in a new tab': 'Open in a new tab',\n Edit: 'Edit',\n 'Copy text': 'Copy text',\n 'Paste text': 'Paste text',\n 'Filter by this': 'Filter by this',\n 'Open link in new tab': 'Open link in new tab',\n default: 'default',\n Grouping: 'Grouping',\n to: 'to',\n Filter: 'Filter',\n Freeze: 'Freeze',\n Hide: 'Hide',\n Summarize: 'Summarize',\n 'Combine with left': 'Combine with left',\n 'Combine with right': 'Combine with right',\n Delete: 'Delete',\n Format: 'Format',\n Alias: 'Alias',\n 'Enter alias': 'Enter alias',\n 'Filter by': 'Filter by',\n Group: 'Group',\n 'Group by': 'Group by',\n Sort: 'Sort',\n 'Sort by': 'Sort by',\n 'Row density': 'Row density',\n 'Show/hide columns': 'Show/hide columns',\n 'Freeze columns': 'Freeze columns',\n 'Save view as..': 'Save view as..',\n 'Save changes': 'Save changes',\n 'View as...': 'View as...',\n 'Edit view': 'Edit view',\n 'Set as default': 'Set as default',\n 'Mark as default?': 'Mark as default?',\n 'Mark as app default': 'Mark as app default',\n 'Delete view': 'Delete view',\n 'Reset column widths': 'Reset column widths',\n 'Auto size columns': 'Auto size columns',\n ShowHeaderIcons: 'ShowHeaderIcons',\n 'Query info': 'Query info',\n 'Export to Excel': 'Export to Excel',\n 'Export to CSV': 'Export to CSV',\n Class: 'Class',\n 'Data page': 'Data page',\n 'Data source': 'Data source',\n 'Time taken': 'Time taken',\n 'Insight ID': 'Insight ID',\n 'Undo hierarchy': 'Undo hierarchy',\n Normal: 'Normal',\n Hierarchical: 'Hierarchical',\n Display: 'Display',\n table: 'table',\n 'Use arrow keys or Shift plus Alt plus arrow keys to navigate':\n 'Use arrow keys or Shift plus Alt plus arrow keys to navigate',\n 'No actions available': 'No actions available',\n 'Use Enter to open header menu': 'Use Enter to open header menu',\n 'Loading more results': 'Loading more results',\n Sorted: 'Sorted',\n 'Sort priority': 'Sort priority',\n 'Filtered column': 'Filtered column',\n Ascending: 'Ascending',\n Descending: 'Descending',\n Select: 'Select',\n 'Select all': 'Select all',\n 'Collapse all groups': 'Collapse all groups',\n 'Expand all groups': 'Expand all groups',\n Sum: 'Sum',\n Min: 'Min',\n Max: 'Max',\n Avg: 'Avg',\n 'Aggregate options': 'Aggregate options',\n 'Select two or more items to enable bulk actions':\n 'Select two or more items to enable bulk actions',\n 'Bulk actions': 'Bulk actions',\n 'Group applied': 'Group applied',\n 'Group modified': 'Group modified',\n 'Group removed': 'Group removed',\n Loading: 'Loading',\n 'Loading completed': 'Loading completed',\n 'name is reserved for non Personalized view and cannot be used.':\n 'name is reserved for non Personalized view and cannot be used.',\n 'This view is already present.': 'This view is already present.',\n 'This view name cannot be empty.': 'This view name cannot be empty.',\n 'View name must contain less than 65 characters.':\n 'View name must contain less than 65 characters.',\n 'Sort order': 'Sort order',\n Field: 'Field',\n 'Column name cannot be empty.': 'Column name cannot be empty.',\n 'Sort ascending': 'Sort ascending',\n 'Sort descending': 'Sort descending',\n 'Remove sort': 'Remove sort',\n 'No records found.': 'No records found.',\n 'Clear filter': 'Clear filter',\n Equals: 'Equals',\n 'Not equals': 'Not equals',\n After: 'After',\n Before: 'Before',\n 'On or after': 'On or after',\n 'On or before': 'On or before',\n 'Greater than': 'Greater than',\n 'Less than': 'Less than',\n 'Greater than or equals': 'Greater than or equals',\n 'Less than or equals': 'Less than or equals',\n 'Starts with': 'Starts with',\n 'Not starts with': 'Not starts with',\n 'Ends with': 'Ends with',\n 'Not ends with': 'Not ends with',\n Contains: 'Contains',\n 'Not contains': 'Not contains',\n 'Is any of': 'Is any of',\n 'Is not any of': 'Is not any of',\n 'Is null': 'Is null',\n 'Is not null': 'Is not null',\n true: 'true',\n false: 'false',\n 'Interactive content': 'Interactive content',\n 'Filter value': 'Filter value',\n 'Filter comparison': 'Filter comparison',\n state: 'state',\n 'Filter column': 'Filter column',\n Refresh: 'Refresh',\n table_a11y_intro: 'Tab or click into the grid to use key commands.',\n table_a11y_instructions_arrow_keys_label: 'Arrow keys or Shift+Alt+Arrow keys',\n table_a11y_instructions_arrow_keys_description: 'navigate cells',\n table_a11y_instructions_enter_label: 'Enter key',\n table_a11y_instructions_enter_description:\n 'when on a cell with editable controls, switches to Tab navigation mode. Tab key now navigates between all interactive controls in the grid',\n table_a11y_instructions_escape_label: 'Escape key',\n table_a11y_instructions_escape_description: 'restores arrow-based grid navigation',\n saved_changes: '\"{0}\" saved with changes',\n saved_changes_with_default: '\"{0}\" saved with changes and marked as default view',\n view_marked_default: '\"{0}\" view is marked as Default',\n view_marked_app_default: '\"{0}\" view is marked as App Default',\n created_view: 'Created view \"{0}\"',\n created_view_with_default: 'Created view \"{0}\" and marked as default view',\n deleted_view: 'Deleted view \"{0}\"',\n view_navigation_instructions: '{0}, Refer to keyboard instructions for navigation.'\n};\n\nexport default defaultTranslations;\n"]}
1
+ {"version":3,"file":"defaultTranslations.js","sourceRoot":"","sources":["../../../Core/Localization/defaultTranslations.ts"],"names":[],"mappings":"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","sourcesContent":["// FIXME: Move this file to Demo folder once the typings are available from cosmos translations pack\nconst defaultTranslations = {\n Submit: 'Submit',\n 'Hide header icons': 'Hide header icons',\n 'Column name:': 'Column name:',\n 'Template:': 'Template:',\n 'Hide columns': 'Hide columns',\n 'Remove filter': 'Remove filter',\n Year: 'Year',\n Quarter: 'Quarter',\n Month: 'Month',\n Week: 'Week',\n Day: 'Day',\n Hour: 'Hour',\n Minute: 'Minute',\n 'Month of year': 'Month of year',\n 'Day of month': 'Day of month',\n 'Day of week': 'Day of week',\n 'Hour of day': 'Hour of day',\n Add: 'Add',\n Aggregate: 'Aggregate',\n Cancel: 'Cancel',\n Ok: 'Ok',\n 'has unsaved changes, do you want to discard and proceed?':\n 'has unsaved changes, do you want to discard and proceed?',\n Actions: 'Actions',\n actions: 'actions',\n 'Edit details': 'Edit details',\n 'Change stage': 'Change stage',\n Preview: 'Preview',\n 'Open in a new tab': 'Open in a new tab',\n Edit: 'Edit',\n 'Copy text': 'Copy text',\n 'Paste text': 'Paste text',\n 'Filter by this': 'Filter by this',\n 'Open link in new tab': 'Open link in new tab',\n default: 'default',\n Grouping: 'Grouping',\n to: 'to',\n Filter: 'Filter',\n Freeze: 'Freeze',\n Hide: 'Hide',\n Summarize: 'Summarize',\n 'Combine with left': 'Combine with left',\n 'Combine with right': 'Combine with right',\n Delete: 'Delete',\n Format: 'Format',\n Alias: 'Alias',\n 'Enter alias': 'Enter alias',\n 'Filter by': 'Filter by',\n Group: 'Group',\n 'Group by': 'Group by',\n Sort: 'Sort',\n 'Sort by': 'Sort by',\n 'Row density': 'Row density',\n 'Show/hide columns': 'Show/hide columns',\n 'Freeze columns': 'Freeze columns',\n 'Save view as..': 'Save view as..',\n 'Save changes': 'Save changes',\n 'View as...': 'View as...',\n 'Edit view': 'Edit view',\n 'Set as default': 'Set as default',\n 'Mark as default?': 'Mark as default?',\n 'Mark as app default': 'Mark as app default',\n 'Delete view': 'Delete view',\n 'Reset column widths': 'Reset column widths',\n 'Auto size columns': 'Auto size columns',\n ShowHeaderIcons: 'ShowHeaderIcons',\n 'Query info': 'Query info',\n 'Export to Excel': 'Export to Excel',\n 'Export to CSV': 'Export to CSV',\n Class: 'Class',\n 'Data page': 'Data page',\n 'Data source': 'Data source',\n 'Time taken': 'Time taken',\n 'Insight ID': 'Insight ID',\n 'Undo hierarchy': 'Undo hierarchy',\n Normal: 'Normal',\n Hierarchical: 'Hierarchical',\n Display: 'Display',\n table: 'table',\n 'Use arrow keys or Shift plus Alt plus arrow keys to navigate':\n 'Use arrow keys or Shift plus Alt plus arrow keys to navigate',\n 'No actions available': 'No actions available',\n 'Use Enter to open header menu': 'Use Enter to open header menu',\n 'Loading more results': 'Loading more results',\n Sorted: 'Sorted',\n 'Sort priority': 'Sort priority',\n 'Filtered column': 'Filtered column',\n Ascending: 'Ascending',\n Descending: 'Descending',\n Select: 'Select',\n 'Select all': 'Select all',\n 'Collapse all groups': 'Collapse all groups',\n 'Expand all groups': 'Expand all groups',\n Sum: 'Sum',\n Min: 'Min',\n Max: 'Max',\n Avg: 'Avg',\n 'Aggregate options': 'Aggregate options',\n 'Select two or more items to enable bulk actions':\n 'Select two or more items to enable bulk actions',\n 'Bulk actions': 'Bulk actions',\n 'Group applied': 'Group applied',\n 'Group modified': 'Group modified',\n 'Group removed': 'Group removed',\n Loading: 'Loading',\n 'Loading completed': 'Loading completed',\n 'name is reserved for non Personalized view and cannot be used.':\n 'name is reserved for non Personalized view and cannot be used.',\n 'This view is already present.': 'This view is already present.',\n 'This view name cannot be empty.': 'This view name cannot be empty.',\n 'View name must contain less than 65 characters.':\n 'View name must contain less than 65 characters.',\n 'Sort order': 'Sort order',\n Field: 'Field',\n 'Column name cannot be empty.': 'Column name cannot be empty.',\n 'Sort ascending': 'Sort ascending',\n 'Sort descending': 'Sort descending',\n 'Remove sort': 'Remove sort',\n 'No records found.': 'No records found.',\n 'Clear filter': 'Clear filter',\n Equals: 'Equals',\n 'Not equals': 'Not equals',\n After: 'After',\n Before: 'Before',\n 'On or after': 'On or after',\n 'On or before': 'On or before',\n 'Greater than': 'Greater than',\n 'Less than': 'Less than',\n 'Greater than or equals': 'Greater than or equals',\n 'Less than or equals': 'Less than or equals',\n 'Starts with': 'Starts with',\n 'Not starts with': 'Not starts with',\n 'Ends with': 'Ends with',\n 'Not ends with': 'Not ends with',\n Contains: 'Contains',\n 'Not contains': 'Not contains',\n 'Is any of': 'Is any of',\n 'Is not any of': 'Is not any of',\n 'Is null': 'Is null',\n 'Is not null': 'Is not null',\n true: 'true',\n false: 'false',\n 'Interactive content': 'Interactive content',\n 'Filter value': 'Filter value',\n 'Filter comparison': 'Filter comparison',\n state: 'state',\n 'Filter column': 'Filter column',\n Refresh: 'Refresh',\n table_a11y_intro: 'Tab or click into the grid to use key commands.',\n table_a11y_instructions_arrow_keys_label: 'Arrow keys or Shift+Alt+Arrow keys',\n table_a11y_instructions_arrow_keys_description: 'navigate cells',\n table_a11y_instructions_enter_label: 'Enter key',\n table_a11y_instructions_enter_description:\n 'when on a cell with editable controls, switches to Tab navigation mode. Tab key now navigates between all interactive controls in the grid',\n table_a11y_instructions_escape_label: 'Escape key',\n table_a11y_instructions_escape_description: 'restores arrow-based grid navigation',\n saved_changes: '\"{0}\" saved with changes',\n saved_changes_with_default: '\"{0}\" saved with changes and marked as default view',\n view_marked_default: '\"{0}\" view is marked as Default',\n view_marked_app_default: '\"{0}\" view is marked as App Default',\n created_view: 'Created view \"{0}\"',\n created_view_with_default: 'Created view \"{0}\" and marked as default view',\n deleted_view: 'Deleted view \"{0}\"',\n view_navigation_instructions: '{0}, Refer to keyboard instructions for navigation.',\n 'Show/Hide modified': 'Show/Hide modified',\n 'Freeze applied': 'Freeze applied',\n 'Freeze modified': 'Freeze modified',\n 'Freeze removed': 'Freeze removed'\n};\n\nexport default defaultTranslations;\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pega/lists-react",
3
- "version": "9.0.0-build.4.0",
3
+ "version": "9.0.0-build.4.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,10 +14,10 @@
14
14
  "build": "tsc -b tsconfig.build.json"
15
15
  },
16
16
  "dependencies": {
17
- "@pega/cosmos-react-condition-builder": "9.0.0-build.4.0",
18
- "@pega/cosmos-react-core": "9.0.0-build.4.0",
19
- "@pega/cosmos-react-rte": "9.0.0-build.4.0",
20
- "@pega/cosmos-react-work": "9.0.0-build.4.0",
17
+ "@pega/cosmos-react-condition-builder": "9.0.0-build.4.1",
18
+ "@pega/cosmos-react-core": "9.0.0-build.4.1",
19
+ "@pega/cosmos-react-rte": "9.0.0-build.4.1",
20
+ "@pega/cosmos-react-work": "9.0.0-build.4.1",
21
21
  "@types/lodash.get": "^4.4.9",
22
22
  "@types/react": "^17.0.62 || ^18.3.3",
23
23
  "@types/react-dom": "^17.0.20 || ^18.3.0",
@@ -25,8 +25,8 @@
25
25
  "dayjs": "^1.11.13",
26
26
  "fast-deep-equal": "^3.1.3",
27
27
  "lodash.get": "^4.4.2",
28
- "pega-repeating-structures-core": "npm:@pega/lists-core@9.0.0-build.4.0",
29
- "pega-ui-list-data-apis": "npm:@pega/lists-core-utils@9.0.0-build.4.0",
28
+ "pega-repeating-structures-core": "npm:@pega/lists-core@9.0.0-build.4.1",
29
+ "pega-ui-list-data-apis": "npm:@pega/lists-core-utils@9.0.0-build.4.1",
30
30
  "polished": "^4.1.0",
31
31
  "prop-types": "^15.8.1",
32
32
  "react": "^17.0.0 || ^18.0.0",
@@ -45,7 +45,7 @@
45
45
  "@testing-library/react": "^16.0.0",
46
46
  "@testing-library/user-event": "^14.6.1",
47
47
  "jest-axe": "^8.0.0",
48
- "srs-utils": "9.0.0-build.4.0",
48
+ "srs-utils": "9.0.0-build.4.1",
49
49
  "typescript": "~5.8.3"
50
50
  }
51
51
  }
@@ -1,9 +0,0 @@
1
- /**
2
- * A custom React hook to manage a set of selected items.
3
- *
4
- * @param - The initial list of selected item IDs.
5
- *
6
- * @returns An array containing the set of selected items, a function to toggle selection, and a function to check if an item is selected.
7
- */
8
- export default function useSelect(initialSelected?: string[]): [Set<string>, (id: string) => void, (item: string) => boolean];
9
- //# sourceMappingURL=useSelect.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useSelect.d.ts","sourceRoot":"","sources":["../../../Core/Hooks/useSelect.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAC/B,eAAe,GAAE,MAAM,EAAO,GAC7B,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,CAkBhE"}
@@ -1,24 +0,0 @@
1
- import { useCallback, useState } from 'react';
2
- /**
3
- * A custom React hook to manage a set of selected items.
4
- *
5
- * @param - The initial list of selected item IDs.
6
- *
7
- * @returns An array containing the set of selected items, a function to toggle selection, and a function to check if an item is selected.
8
- */
9
- export default function useSelect(initialSelected = []) {
10
- const [selected, setSelected] = useState(new Set([...initialSelected]));
11
- const onSelect = useCallback((id) => {
12
- const value = id;
13
- if (selected.has(value)) {
14
- selected.delete(value);
15
- }
16
- else {
17
- selected.add(value);
18
- }
19
- setSelected(new Set(selected));
20
- }, [selected, setSelected]);
21
- const isSelected = useCallback((item) => selected.has(item), [selected]);
22
- return [selected, onSelect, isSelected];
23
- }
24
- //# sourceMappingURL=useSelect.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useSelect.js","sourceRoot":"","sources":["../../../Core/Hooks/useSelect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE9C;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAC/B,kBAA4B,EAAE;IAE9B,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;IAExE,MAAM,QAAQ,GAAG,WAAW,CAC1B,CAAC,EAAU,EAAE,EAAE;QACb,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QACD,WAAW,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjC,CAAC,EACD,CAAC,QAAQ,EAAE,WAAW,CAAC,CACxB,CAAC;IACF,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEjF,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAC1C,CAAC","sourcesContent":["import { useCallback, useState } from 'react';\n\n/**\n * A custom React hook to manage a set of selected items.\n *\n * @param - The initial list of selected item IDs.\n *\n * @returns An array containing the set of selected items, a function to toggle selection, and a function to check if an item is selected.\n */\nexport default function useSelect(\n initialSelected: string[] = []\n): [Set<string>, (id: string) => void, (item: string) => boolean] {\n const [selected, setSelected] = useState(new Set([...initialSelected]));\n\n const onSelect = useCallback(\n (id: string) => {\n const value = id;\n if (selected.has(value)) {\n selected.delete(value);\n } else {\n selected.add(value);\n }\n setSelected(new Set(selected));\n },\n [selected, setSelected]\n );\n const isSelected = useCallback((item: string) => selected.has(item), [selected]);\n\n return [selected, onSelect, isSelected];\n}\n"]}