@pega/lists-react 9.0.0-build.20.0 → 9.0.0-build.20.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/Core/Components/HeaderMenu/actions.d.ts +1 -1
- package/lib/Core/Components/HeaderMenu/actions.d.ts.map +1 -1
- package/lib/Core/Components/HeaderMenu/actions.js +3 -3
- package/lib/Core/Components/HeaderMenu/actions.js.map +1 -1
- package/lib/Core/Components/HeaderMenu/index.js +2 -2
- package/lib/Core/Components/HeaderMenu/index.js.map +1 -1
- package/lib/Core/Components/RFColumnConfigurator.d.ts.map +1 -1
- package/lib/Core/Components/RFColumnConfigurator.js +32 -9
- package/lib/Core/Components/RFColumnConfigurator.js.map +1 -1
- package/lib/Core/Components/RenderingEngine/Formatter.d.ts.map +1 -1
- package/lib/Core/Components/RenderingEngine/Formatter.js +4 -1
- package/lib/Core/Components/RenderingEngine/Formatter.js.map +1 -1
- package/lib/Core/Components/RenderingEngine/RenderCell.d.ts.map +1 -1
- package/lib/Core/Components/RenderingEngine/RenderCell.js +2 -1
- package/lib/Core/Components/RenderingEngine/RenderCell.js.map +1 -1
- package/lib/Core/Hooks/useRepeat.js +2 -2
- package/lib/Core/Hooks/useRepeat.js.map +1 -1
- package/lib/types/RepeatingStructuresBoot.types.d.ts +12 -2
- package/lib/types/RepeatingStructuresBoot.types.d.ts.map +1 -1
- package/lib/types/RepeatingStructuresBoot.types.js.map +1 -1
- package/package.json +7 -7
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export function customizeColumn(column: any,
|
|
1
|
+
export function customizeColumn(column: any, rfConfig: any, displayMode: any, newColumnAlias: any, oldAlias: any): void;
|
|
2
2
|
/**
|
|
3
3
|
* This method is executed when a column is removed from the table, it sets the focus to the next
|
|
4
4
|
* column on the left, or if its the first column, then on the next column on right.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../../Core/Components/HeaderMenu/actions.js"],"names":[],"mappings":"AA0BA,
|
|
1
|
+
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../../Core/Components/HeaderMenu/actions.js"],"names":[],"mappings":"AA0BA,wHAaC;AAmDD;;;;GAIG;AACH,oCAFW,MAAM,QAahB;AAED;;;;;;UAwHC"}
|
|
@@ -18,9 +18,9 @@ function isColumnWithDateFuncGrouping(column) {
|
|
|
18
18
|
return (view.meta.dateFunctions &&
|
|
19
19
|
(column.field.type === FieldType.DATE || column.field.type === FieldType.DATE_TIME));
|
|
20
20
|
}
|
|
21
|
-
export function customizeColumn(column,
|
|
22
|
-
if (
|
|
23
|
-
column.applyFormatter(
|
|
21
|
+
export function customizeColumn(column, rfConfig, displayMode, newColumnAlias, oldAlias) {
|
|
22
|
+
if (rfConfig !== undefined) {
|
|
23
|
+
column.applyFormatter(rfConfig);
|
|
24
24
|
}
|
|
25
25
|
if (displayMode !== undefined) {
|
|
26
26
|
column.applyDisplay(displayMode);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../../../../Core/Components/HeaderMenu/actions.js"],"names":[],"mappings":"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","sourcesContent":["import { FieldType, getFilters } from 'pega-repeating-structures-core';\n\nimport { allowToggle } from '../../Utils';\nimport { sortActions, TOOLBAR_FEATURES } from '../../constants';\n\nconst Grouping = 'Grouping';\nconst Filter = 'Filter';\nconst ClearFilter = 'Clear filter';\nconst Freeze = 'Freeze';\nconst Visibility = 'Hide';\nconst Summarize = 'Summarize';\nconst DynamicColumnLeft = 'Combine with left';\nconst DynamicColumnRight = 'Combine with right';\nconst DynamicColumnDelete = 'Delete';\nconst CustomizeColumn = 'Format';\nconst UndoHierarchy = 'Undo hierarchy';\n\n/** Checks if it's a column where grouping by date-functions is enabled */\nfunction isColumnWithDateFuncGrouping(column) {\n const view = column.parent;\n return (\n view.meta.dateFunctions &&\n (column.field.type === FieldType.DATE || column.field.type === FieldType.DATE_TIME)\n );\n}\n\nexport function customizeColumn(column, rfName, displayMode, newColumnAlias, oldAlias) {\n if (rfName !== undefined) {\n column.applyFormatter(rfName);\n }\n\n if (displayMode !== undefined) {\n column.applyDisplay(displayMode);\n }\n\n // old alias can be undefined\n if (oldAlias?.trim() !== newColumnAlias.trim()) {\n column.applyLabel(newColumnAlias);\n }\n}\n\nconst updateRowHeight = column => {\n const view = column.parent;\n const { customFields } = view.state;\n\n let shouldUpdateRowDensity = true;\n customFields.forEach(field => {\n if (field.id !== column.field.id) {\n const { expression } = field;\n expression.forEach(exp => {\n if (Array.isArray(exp) && exp[0] === 'multiline') shouldUpdateRowDensity = false;\n });\n }\n });\n if (shouldUpdateRowDensity) view.type.applyRowHeight(view.meta?.defaultRowHeight);\n};\n\nconst prepareColumnSortActions = (column, translate, finishPopOver) => {\n const SortActions = [];\n sortActions.forEach(action => {\n const { actionId, actionName, actionIcon } = action;\n // eslint-disable-next-line\n if (actionId != column.sortOrder)\n SortActions.push({\n id: actionName,\n icon: actionIcon,\n label: translate(actionName),\n show: column.parent.shouldDisplayFeature(TOOLBAR_FEATURES.SORT, column),\n onClick: () => {\n column.applySorting(!column.sorted, actionId);\n finishPopOver();\n }\n });\n });\n return SortActions;\n};\n\nfunction removeFilter(column) {\n const { filterExpression } = column.parent.state;\n const { applyFilter, clearFilter } = column.parent.type;\n const filters = getFilters({ filterExpression });\n if (filters.length > 1) {\n clearFilter(column.field.id);\n } else {\n applyFilter({\n filterExp: null\n });\n }\n}\n\n/**\n * This method is executed when a column is removed from the table, it sets the focus to the next\n * column on the left, or if its the first column, then on the next column on right.\n * @param {object} column\n */\nexport function handleFocus(column) {\n const { order } = column;\n let focusColumnOrder = order;\n // When hiding first column, focus should go to the next column on right\n if (order === 0) focusColumnOrder = 2;\n const selector = `[role='columnheader'][aria-colindex='${focusColumnOrder}'] > .icons-ph > .header-menu > button`;\n const domContainer = column.parent.getDomContainer();\n const ele = domContainer.querySelector(selector);\n if (ele) {\n ele.focus();\n }\n}\n\nexport function getActions({ column, setMoreContent, onUndoHierarchy, translate, finishPopOver }) {\n const {\n aggregateOptions,\n grouping: isGroupingEnabled,\n toggleFieldVisibility\n } = column.parent.meta;\n return [\n ...prepareColumnSortActions(column, translate, finishPopOver),\n {\n id: Filter,\n icon: 'filter',\n label: translate(Filter),\n show: column.parent.shouldDisplayFeature(TOOLBAR_FEATURES.FILTER, column),\n onClick: () => setMoreContent(Filter)\n },\n {\n id: ClearFilter,\n icon: 'reset',\n label: translate(ClearFilter),\n show: !!column.filtered,\n onClick: () => {\n removeFilter(column);\n finishPopOver();\n }\n },\n {\n id: Grouping,\n icon: 'row',\n label: column.grouped ? translate('Ungroup') : translate('Group'),\n show:\n isGroupingEnabled &&\n !column.parent?.hierarchicalGroupEnabled &&\n column.parent.shouldDisplayFeature(TOOLBAR_FEATURES.GROUPING, column),\n onClick: () => {\n if (isColumnWithDateFuncGrouping(column) && !column.grouped) {\n setMoreContent(Grouping);\n return;\n }\n column.applyGrouping();\n finishPopOver();\n }\n },\n {\n id: Visibility,\n icon: 'eye-off',\n label: translate(Visibility),\n show: !!(toggleFieldVisibility && column.field.toggle),\n onClick: () => {\n column.applyToggleVisibility();\n finishPopOver();\n handleFocus(column);\n },\n disabled: !allowToggle(column.parent.getVisibleColumns())\n },\n {\n id: Freeze,\n icon: 'freeze-column',\n label: column.frozen ? translate('Unfreeze') : translate('Freeze'),\n show: !!column.field.freeze,\n onClick: () => {\n column.applyFreeze();\n finishPopOver();\n }\n },\n {\n id: Summarize,\n icon: 'sigma',\n label: column.aggregated ? translate('Remove aggregation') : translate('Aggregate'),\n show: !!(\n column.field.aggregation &&\n aggregateOptions[column.field.type] &&\n aggregateOptions[column.field.type].length\n ),\n onClick: () => {\n column.applyAggregation(\n !column.aggregated ? aggregateOptions[column.field.type]?.[0] : undefined\n );\n finishPopOver();\n }\n },\n {\n id: DynamicColumnLeft,\n icon: 'arrow-left-column',\n label: translate(DynamicColumnLeft),\n show: !!column.field.combineColumn && !column.isFirstDataColumn,\n onClick: () => setMoreContent(DynamicColumnLeft)\n },\n {\n id: DynamicColumnRight,\n icon: 'arrow-right-column',\n label: translate(DynamicColumnRight),\n show: !!column.field.combineColumn && !column.isLastColumn,\n onClick: () => setMoreContent(DynamicColumnRight)\n },\n {\n id: DynamicColumnDelete,\n icon: 'column-delete',\n label: translate(DynamicColumnDelete),\n show: !!column.isCustomColumn,\n onClick: () => {\n column.deleteCustomColumn();\n updateRowHeight(column);\n handleFocus(column);\n }\n },\n {\n id: CustomizeColumn,\n icon: 'circle-stacked-mixed',\n label: translate(CustomizeColumn),\n show: !!column.field.customizeColumn && !column.isCustomColumn,\n onClick: () => setMoreContent(CustomizeColumn)\n },\n {\n id: UndoHierarchy,\n icon: 'folder-nested-solid',\n label: translate(UndoHierarchy),\n show: column.isFirstDataColumn && !!column.parent?.hierarchicalGroupEnabled,\n onClick: onUndoHierarchy\n }\n ];\n}\n"]}
|
|
1
|
+
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../../../../Core/Components/HeaderMenu/actions.js"],"names":[],"mappings":"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","sourcesContent":["import { FieldType, getFilters } from 'pega-repeating-structures-core';\n\nimport { allowToggle } from '../../Utils';\nimport { sortActions, TOOLBAR_FEATURES } from '../../constants';\n\nconst Grouping = 'Grouping';\nconst Filter = 'Filter';\nconst ClearFilter = 'Clear filter';\nconst Freeze = 'Freeze';\nconst Visibility = 'Hide';\nconst Summarize = 'Summarize';\nconst DynamicColumnLeft = 'Combine with left';\nconst DynamicColumnRight = 'Combine with right';\nconst DynamicColumnDelete = 'Delete';\nconst CustomizeColumn = 'Format';\nconst UndoHierarchy = 'Undo hierarchy';\n\n/** Checks if it's a column where grouping by date-functions is enabled */\nfunction isColumnWithDateFuncGrouping(column) {\n const view = column.parent;\n return (\n view.meta.dateFunctions &&\n (column.field.type === FieldType.DATE || column.field.type === FieldType.DATE_TIME)\n );\n}\n\nexport function customizeColumn(column, rfConfig, displayMode, newColumnAlias, oldAlias) {\n if (rfConfig !== undefined) {\n column.applyFormatter(rfConfig);\n }\n\n if (displayMode !== undefined) {\n column.applyDisplay(displayMode);\n }\n\n // old alias can be undefined\n if (oldAlias?.trim() !== newColumnAlias.trim()) {\n column.applyLabel(newColumnAlias);\n }\n}\n\nconst updateRowHeight = column => {\n const view = column.parent;\n const { customFields } = view.state;\n\n let shouldUpdateRowDensity = true;\n customFields.forEach(field => {\n if (field.id !== column.field.id) {\n const { expression } = field;\n expression.forEach(exp => {\n if (Array.isArray(exp) && exp[0] === 'multiline') shouldUpdateRowDensity = false;\n });\n }\n });\n if (shouldUpdateRowDensity) view.type.applyRowHeight(view.meta?.defaultRowHeight);\n};\n\nconst prepareColumnSortActions = (column, translate, finishPopOver) => {\n const SortActions = [];\n sortActions.forEach(action => {\n const { actionId, actionName, actionIcon } = action;\n // eslint-disable-next-line\n if (actionId != column.sortOrder)\n SortActions.push({\n id: actionName,\n icon: actionIcon,\n label: translate(actionName),\n show: column.parent.shouldDisplayFeature(TOOLBAR_FEATURES.SORT, column),\n onClick: () => {\n column.applySorting(!column.sorted, actionId);\n finishPopOver();\n }\n });\n });\n return SortActions;\n};\n\nfunction removeFilter(column) {\n const { filterExpression } = column.parent.state;\n const { applyFilter, clearFilter } = column.parent.type;\n const filters = getFilters({ filterExpression });\n if (filters.length > 1) {\n clearFilter(column.field.id);\n } else {\n applyFilter({\n filterExp: null\n });\n }\n}\n\n/**\n * This method is executed when a column is removed from the table, it sets the focus to the next\n * column on the left, or if its the first column, then on the next column on right.\n * @param {object} column\n */\nexport function handleFocus(column) {\n const { order } = column;\n let focusColumnOrder = order;\n // When hiding first column, focus should go to the next column on right\n if (order === 0) focusColumnOrder = 2;\n const selector = `[role='columnheader'][aria-colindex='${focusColumnOrder}'] > .icons-ph > .header-menu > button`;\n const domContainer = column.parent.getDomContainer();\n const ele = domContainer.querySelector(selector);\n if (ele) {\n ele.focus();\n }\n}\n\nexport function getActions({ column, setMoreContent, onUndoHierarchy, translate, finishPopOver }) {\n const {\n aggregateOptions,\n grouping: isGroupingEnabled,\n toggleFieldVisibility\n } = column.parent.meta;\n return [\n ...prepareColumnSortActions(column, translate, finishPopOver),\n {\n id: Filter,\n icon: 'filter',\n label: translate(Filter),\n show: column.parent.shouldDisplayFeature(TOOLBAR_FEATURES.FILTER, column),\n onClick: () => setMoreContent(Filter)\n },\n {\n id: ClearFilter,\n icon: 'reset',\n label: translate(ClearFilter),\n show: !!column.filtered,\n onClick: () => {\n removeFilter(column);\n finishPopOver();\n }\n },\n {\n id: Grouping,\n icon: 'row',\n label: column.grouped ? translate('Ungroup') : translate('Group'),\n show:\n isGroupingEnabled &&\n !column.parent?.hierarchicalGroupEnabled &&\n column.parent.shouldDisplayFeature(TOOLBAR_FEATURES.GROUPING, column),\n onClick: () => {\n if (isColumnWithDateFuncGrouping(column) && !column.grouped) {\n setMoreContent(Grouping);\n return;\n }\n column.applyGrouping();\n finishPopOver();\n }\n },\n {\n id: Visibility,\n icon: 'eye-off',\n label: translate(Visibility),\n show: !!(toggleFieldVisibility && column.field.toggle),\n onClick: () => {\n column.applyToggleVisibility();\n finishPopOver();\n handleFocus(column);\n },\n disabled: !allowToggle(column.parent.getVisibleColumns())\n },\n {\n id: Freeze,\n icon: 'freeze-column',\n label: column.frozen ? translate('Unfreeze') : translate('Freeze'),\n show: !!column.field.freeze,\n onClick: () => {\n column.applyFreeze();\n finishPopOver();\n }\n },\n {\n id: Summarize,\n icon: 'sigma',\n label: column.aggregated ? translate('Remove aggregation') : translate('Aggregate'),\n show: !!(\n column.field.aggregation &&\n aggregateOptions[column.field.type] &&\n aggregateOptions[column.field.type].length\n ),\n onClick: () => {\n column.applyAggregation(\n !column.aggregated ? aggregateOptions[column.field.type]?.[0] : undefined\n );\n finishPopOver();\n }\n },\n {\n id: DynamicColumnLeft,\n icon: 'arrow-left-column',\n label: translate(DynamicColumnLeft),\n show: !!column.field.combineColumn && !column.isFirstDataColumn,\n onClick: () => setMoreContent(DynamicColumnLeft)\n },\n {\n id: DynamicColumnRight,\n icon: 'arrow-right-column',\n label: translate(DynamicColumnRight),\n show: !!column.field.combineColumn && !column.isLastColumn,\n onClick: () => setMoreContent(DynamicColumnRight)\n },\n {\n id: DynamicColumnDelete,\n icon: 'column-delete',\n label: translate(DynamicColumnDelete),\n show: !!column.isCustomColumn,\n onClick: () => {\n column.deleteCustomColumn();\n updateRowHeight(column);\n handleFocus(column);\n }\n },\n {\n id: CustomizeColumn,\n icon: 'circle-stacked-mixed',\n label: translate(CustomizeColumn),\n show: !!column.field.customizeColumn && !column.isCustomColumn,\n onClick: () => setMoreContent(CustomizeColumn)\n },\n {\n id: UndoHierarchy,\n icon: 'folder-nested-solid',\n label: translate(UndoHierarchy),\n show: column.isFirstDataColumn && !!column.parent?.hierarchicalGroupEnabled,\n onClick: onUndoHierarchy\n }\n ];\n}\n"]}
|
|
@@ -117,8 +117,8 @@ export default function HeaderMenu({ column, popoverButtonRef }) {
|
|
|
117
117
|
view.type.applyRowHeight('4');
|
|
118
118
|
}, onCancel: finishPopOver, popoverButtonRef: popoverButtonRef, heading: `Combine with ${moreContent === DynamicColumnLeft ? 'left' : 'right'}` }));
|
|
119
119
|
case CustomizeColumn:
|
|
120
|
-
return (_jsx(RFColumnConfigurator, { column: column, finishPopOver: finishPopOver, onSubmit: (
|
|
121
|
-
customizeColumn(column,
|
|
120
|
+
return (_jsx(RFColumnConfigurator, { column: column, finishPopOver: finishPopOver, onSubmit: (rfConfig, columnAlias, displayMode) => {
|
|
121
|
+
customizeColumn(column, rfConfig, displayMode, columnAlias, column.alias);
|
|
122
122
|
}, onCancel: finishPopOver, popoverButtonRef: popoverButtonRef }));
|
|
123
123
|
default:
|
|
124
124
|
return (_jsx(Menu, { scrollAt: '400', "data-test-id": 'action-menu', items: firstLevelActions.flat(), className: 'action-menu', focusControlEl: popoverButtonRef.current, onItemClick: id => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../Core/Components/HeaderMenu/index.jsx"],"names":[],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types';\nimport { useCallback, useMemo, useEffect, useState } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport {\n Icon,\n Popover,\n Menu,\n useElement,\n Button,\n VisuallyHiddenText,\n createUID,\n getActiveElement,\n useOuterEvent\n} from '@pega/cosmos-react-core';\nimport { removeEmptyValues, FieldType } from 'pega-repeating-structures-core';\n\nimport useTranslate from '../../Hooks/useTranslate';\nimport DynamicFieldConfiguration from '../DynamicFieldConfiguration';\nimport FilterComponent from '../Filters/Filter';\nimport RFColumnConfigurator from '../RFColumnConfigurator';\nimport GroupingMenu from '../Grouping/GroupingMenu';\n\nimport { getActions, customizeColumn } from './actions';\n\nconst Default = 'default';\nconst Filter = 'Filter';\nconst Grouping = 'Grouping';\nconst DynamicColumnLeft = 'Combine with left';\nconst DynamicColumnRight = 'Combine with right';\nconst CustomizeColumn = 'Format';\nconst sortActionStates = ['Sort-ascending', 'Sort-descending', 'Remove-sort'];\n\nconst ariaSort = {\n asc: 'ascending',\n desc: 'descending'\n};\n\nfunction getFirstLevelActions(actions) {\n return removeEmptyValues(\n actions.map(function mapper(s) {\n if (Array.isArray(s)) {\n return s.map(mapper);\n }\n const { id, icon, label, show = true, onClick, disabled } = s;\n if (!show) {\n return null;\n }\n return {\n 'data-test-id': id,\n primary: label,\n visual: <Icon name={icon} />,\n id: id.replaceAll(' ', '-'), // eg: Combine with right -> Combine-with-right\n onClick,\n disabled\n };\n })\n );\n}\n\nfunction getFocusables(elementRef) {\n return elementRef.querySelectorAll(\n 'a[href]:not([disabled]), button:not([disabled]), textarea:not([disabled]):not([readonly]), input:not([disabled]):not([readonly]), select:not([disabled]):not([readonly])'\n );\n}\n\nfunction headerMenuTabHandler(e, popperRef) {\n const focusables = getFocusables(popperRef);\n const { 0: firstFocusable, [focusables.length - 1]: lastFocusable } = focusables;\n const activeEl = getActiveElement();\n\n if (!e.shiftKey && (activeEl === popperRef || activeEl === lastFocusable)) {\n firstFocusable?.focus();\n e.preventDefault();\n } else if (e.shiftKey && (activeEl === popperRef || activeEl === firstFocusable)) {\n lastFocusable?.focus();\n e.preventDefault();\n }\n}\n\nexport default function HeaderMenu({ column, popoverButtonRef }) {\n const view = column.parent;\n const {\n state: { clearColFilter }\n } = view;\n const [translate] = useTranslate();\n const { field } = column;\n const uid = createUID();\n const sortDescriptionId = `${uid}_description`;\n const isClearColFilter = clearColFilter === field.id;\n const sort = ariaSort[column?.getSortProperties()?.sortOrder];\n const sortSequence = column?.getSortProperties()?.sortSequence;\n const filtered = column?.filtered;\n\n const [moreContent, setMoreContent] = useState(Default);\n const [forceShowMenu, setForceShowMenu] = useState(false);\n const [sortDescription, setSortDescription] = useState('');\n const [popperRef, setPopperRef] = useElement();\n\n const finishPopOver = useCallback(() => {\n if (moreContent === Filter && isClearColFilter) {\n view.type.clearFilter(null);\n }\n if (popperRef && popoverButtonRef.current) {\n popoverButtonRef.current.focus();\n }\n setForceShowMenu(false);\n }, [moreContent, isClearColFilter, view, popperRef, popoverButtonRef]);\n\n const onUndoHierarchy = useCallback(() => {\n column.parent?.type.clearHierarchicalGroup();\n finishPopOver();\n }, [column, finishPopOver]);\n\n useEffect(() => {\n let sortStr = '';\n if (sort) sortStr = `${translate('Sorted')} ${translate(sort)}`;\n if (sortSequence) sortStr += ` ${translate('Sort priority')} ${sortSequence}`;\n if (filtered) sortStr += ` ${translate('Filtered column')}`;\n setSortDescription(sortStr);\n }, [sort, sortSequence, filtered, translate]);\n\n const actions = useMemo(\n () =>\n getActions({\n column,\n setMoreContent,\n onUndoHierarchy,\n translate,\n finishPopOver\n }),\n [column, onUndoHierarchy, translate, finishPopOver]\n );\n\n const firstLevelActions = useMemo(() => getFirstLevelActions(actions), [actions]);\n\n const content = useMemo(() => {\n switch (moreContent) {\n case Filter:\n return (\n <FilterComponent\n column={column}\n finishPopOver={finishPopOver}\n popoverButtonRef={popoverButtonRef}\n />\n );\n case Grouping:\n return <GroupingMenu column={column} finishPopOver={finishPopOver} />;\n case DynamicColumnLeft:\n case DynamicColumnRight:\n return (\n <DynamicFieldConfiguration\n column={column}\n onSubmit={(title, templateName, bHideColumns) => {\n column.applyMerge(\n moreContent === DynamicColumnLeft ? 'left' : 'right',\n title,\n templateName,\n bHideColumns\n );\n finishPopOver();\n if (templateName === 'multiline') view.type.applyRowHeight('4');\n }}\n onCancel={finishPopOver}\n popoverButtonRef={popoverButtonRef}\n heading={`Combine with ${moreContent === DynamicColumnLeft ? 'left' : 'right'}`}\n />\n );\n case CustomizeColumn:\n return (\n <RFColumnConfigurator\n column={column}\n finishPopOver={finishPopOver}\n onSubmit={(rfName, columnAlias, displayMode) => {\n customizeColumn(column, rfName, displayMode, columnAlias, column.alias);\n }}\n onCancel={finishPopOver}\n popoverButtonRef={popoverButtonRef}\n />\n );\n default:\n return (\n <Menu\n scrollAt='400'\n data-test-id='action-menu'\n items={firstLevelActions.flat()}\n className='action-menu'\n focusControlEl={popoverButtonRef.current}\n onItemClick={id => {\n // NVDA/JAWS reading out the stale sort order on sort action\n // Removing intermediate sort state and adding back when we receive it from column prop\n if (sortActionStates.includes(id)) {\n setSortDescription('');\n }\n }}\n />\n );\n }\n }, [moreContent, column, finishPopOver, popoverButtonRef, firstLevelActions, view.type]);\n\n useOuterEvent('mousedown', [popperRef], () => {\n if (\n moreContent !== Filter &&\n moreContent !== 'Format' &&\n moreContent !== 'Combine with left' &&\n moreContent !== 'Combine with right'\n ) {\n finishPopOver();\n }\n });\n\n useEffect(() => {\n if (isClearColFilter) {\n setMoreContent(Filter);\n setForceShowMenu(true);\n }\n }, [isClearColFilter]);\n\n useEffect(() => {\n // Focus the first focusable element in nested menu content eg: filter,customize column etc\n if (moreContent && popperRef && moreContent !== 'default') {\n getFocusables(popperRef)?.[0]?.focus();\n }\n }, [forceShowMenu, popperRef, moreContent]);\n\n // Don't show the menu for columns which are of action type eg: rowActionMenu, rowDragDrop etc\n if (firstLevelActions.flat().length === 0 || field.type === FieldType.ACTION_FIELD_TYPE)\n return null;\n\n return (\n <div className='header-menu'>\n <Button\n variant='simple'\n className='button-more'\n compact\n icon\n aria-expanded={forceShowMenu}\n aria-label={`${translate('Actions')} - ${column.categorizedHeaderLabel}`}\n label={!forceShowMenu ? `${translate('Actions')}` : undefined}\n ref={popoverButtonRef}\n aria-describedby={sortDescriptionId}\n onClick={() => {\n setMoreContent('default');\n setForceShowMenu(true);\n }}\n onKeyDown={e => {\n if (forceShowMenu && e.key !== 'Enter') {\n // TODO remove preventDefault when popover steals the focus into its content\n e.preventDefault();\n }\n if (e.key === 'Escape' && forceShowMenu) {\n e.stopPropagation();\n setForceShowMenu(false);\n setPopperRef(null);\n }\n }}\n >\n <Icon name='more' />\n </Button>\n {forceShowMenu &&\n createPortal(\n <Popover\n className='popper'\n ref={setPopperRef}\n arrow\n target={popoverButtonRef.current}\n placement='bottom-start'\n hideOnTargetHidden\n // TODO: Consume FormDialog cosmos component in nested menu option renderers filter, group etc\n onKeyDown={e => {\n if (e.key === 'Escape' && forceShowMenu) {\n setForceShowMenu(false);\n setPopperRef(null);\n popoverButtonRef.current.focus();\n }\n if (e.key === 'Tab') {\n headerMenuTabHandler(e, popperRef);\n }\n }}\n >\n {content}\n </Popover>,\n column.parent.getDomContainer()\n )}\n\n <VisuallyHiddenText id={sortDescriptionId} aria-hidden>\n {sortDescription}\n </VisuallyHiddenText>\n </div>\n );\n}\n\nHeaderMenu.propTypes = {\n column: PropTypes.objectOf(PropTypes.any),\n popoverButtonRef: PropTypes.objectOf(PropTypes.any)\n};\n\nHeaderMenu.defaultProps = {\n column: {},\n popoverButtonRef: {}\n};\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../Core/Components/HeaderMenu/index.jsx"],"names":[],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types';\nimport { useCallback, useMemo, useEffect, useState } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport {\n Icon,\n Popover,\n Menu,\n useElement,\n Button,\n VisuallyHiddenText,\n createUID,\n getActiveElement,\n useOuterEvent\n} from '@pega/cosmos-react-core';\nimport { removeEmptyValues, FieldType } from 'pega-repeating-structures-core';\n\nimport useTranslate from '../../Hooks/useTranslate';\nimport DynamicFieldConfiguration from '../DynamicFieldConfiguration';\nimport FilterComponent from '../Filters/Filter';\nimport RFColumnConfigurator from '../RFColumnConfigurator';\nimport GroupingMenu from '../Grouping/GroupingMenu';\n\nimport { getActions, customizeColumn } from './actions';\n\nconst Default = 'default';\nconst Filter = 'Filter';\nconst Grouping = 'Grouping';\nconst DynamicColumnLeft = 'Combine with left';\nconst DynamicColumnRight = 'Combine with right';\nconst CustomizeColumn = 'Format';\nconst sortActionStates = ['Sort-ascending', 'Sort-descending', 'Remove-sort'];\n\nconst ariaSort = {\n asc: 'ascending',\n desc: 'descending'\n};\n\nfunction getFirstLevelActions(actions) {\n return removeEmptyValues(\n actions.map(function mapper(s) {\n if (Array.isArray(s)) {\n return s.map(mapper);\n }\n const { id, icon, label, show = true, onClick, disabled } = s;\n if (!show) {\n return null;\n }\n return {\n 'data-test-id': id,\n primary: label,\n visual: <Icon name={icon} />,\n id: id.replaceAll(' ', '-'), // eg: Combine with right -> Combine-with-right\n onClick,\n disabled\n };\n })\n );\n}\n\nfunction getFocusables(elementRef) {\n return elementRef.querySelectorAll(\n 'a[href]:not([disabled]), button:not([disabled]), textarea:not([disabled]):not([readonly]), input:not([disabled]):not([readonly]), select:not([disabled]):not([readonly])'\n );\n}\n\nfunction headerMenuTabHandler(e, popperRef) {\n const focusables = getFocusables(popperRef);\n const { 0: firstFocusable, [focusables.length - 1]: lastFocusable } = focusables;\n const activeEl = getActiveElement();\n\n if (!e.shiftKey && (activeEl === popperRef || activeEl === lastFocusable)) {\n firstFocusable?.focus();\n e.preventDefault();\n } else if (e.shiftKey && (activeEl === popperRef || activeEl === firstFocusable)) {\n lastFocusable?.focus();\n e.preventDefault();\n }\n}\n\nexport default function HeaderMenu({ column, popoverButtonRef }) {\n const view = column.parent;\n const {\n state: { clearColFilter }\n } = view;\n const [translate] = useTranslate();\n const { field } = column;\n const uid = createUID();\n const sortDescriptionId = `${uid}_description`;\n const isClearColFilter = clearColFilter === field.id;\n const sort = ariaSort[column?.getSortProperties()?.sortOrder];\n const sortSequence = column?.getSortProperties()?.sortSequence;\n const filtered = column?.filtered;\n\n const [moreContent, setMoreContent] = useState(Default);\n const [forceShowMenu, setForceShowMenu] = useState(false);\n const [sortDescription, setSortDescription] = useState('');\n const [popperRef, setPopperRef] = useElement();\n\n const finishPopOver = useCallback(() => {\n if (moreContent === Filter && isClearColFilter) {\n view.type.clearFilter(null);\n }\n if (popperRef && popoverButtonRef.current) {\n popoverButtonRef.current.focus();\n }\n setForceShowMenu(false);\n }, [moreContent, isClearColFilter, view, popperRef, popoverButtonRef]);\n\n const onUndoHierarchy = useCallback(() => {\n column.parent?.type.clearHierarchicalGroup();\n finishPopOver();\n }, [column, finishPopOver]);\n\n useEffect(() => {\n let sortStr = '';\n if (sort) sortStr = `${translate('Sorted')} ${translate(sort)}`;\n if (sortSequence) sortStr += ` ${translate('Sort priority')} ${sortSequence}`;\n if (filtered) sortStr += ` ${translate('Filtered column')}`;\n setSortDescription(sortStr);\n }, [sort, sortSequence, filtered, translate]);\n\n const actions = useMemo(\n () =>\n getActions({\n column,\n setMoreContent,\n onUndoHierarchy,\n translate,\n finishPopOver\n }),\n [column, onUndoHierarchy, translate, finishPopOver]\n );\n\n const firstLevelActions = useMemo(() => getFirstLevelActions(actions), [actions]);\n\n const content = useMemo(() => {\n switch (moreContent) {\n case Filter:\n return (\n <FilterComponent\n column={column}\n finishPopOver={finishPopOver}\n popoverButtonRef={popoverButtonRef}\n />\n );\n case Grouping:\n return <GroupingMenu column={column} finishPopOver={finishPopOver} />;\n case DynamicColumnLeft:\n case DynamicColumnRight:\n return (\n <DynamicFieldConfiguration\n column={column}\n onSubmit={(title, templateName, bHideColumns) => {\n column.applyMerge(\n moreContent === DynamicColumnLeft ? 'left' : 'right',\n title,\n templateName,\n bHideColumns\n );\n finishPopOver();\n if (templateName === 'multiline') view.type.applyRowHeight('4');\n }}\n onCancel={finishPopOver}\n popoverButtonRef={popoverButtonRef}\n heading={`Combine with ${moreContent === DynamicColumnLeft ? 'left' : 'right'}`}\n />\n );\n case CustomizeColumn:\n return (\n <RFColumnConfigurator\n column={column}\n finishPopOver={finishPopOver}\n onSubmit={(rfConfig, columnAlias, displayMode) => {\n customizeColumn(column, rfConfig, displayMode, columnAlias, column.alias);\n }}\n onCancel={finishPopOver}\n popoverButtonRef={popoverButtonRef}\n />\n );\n default:\n return (\n <Menu\n scrollAt='400'\n data-test-id='action-menu'\n items={firstLevelActions.flat()}\n className='action-menu'\n focusControlEl={popoverButtonRef.current}\n onItemClick={id => {\n // NVDA/JAWS reading out the stale sort order on sort action\n // Removing intermediate sort state and adding back when we receive it from column prop\n if (sortActionStates.includes(id)) {\n setSortDescription('');\n }\n }}\n />\n );\n }\n }, [moreContent, column, finishPopOver, popoverButtonRef, firstLevelActions, view.type]);\n\n useOuterEvent('mousedown', [popperRef], () => {\n if (\n moreContent !== Filter &&\n moreContent !== 'Format' &&\n moreContent !== 'Combine with left' &&\n moreContent !== 'Combine with right'\n ) {\n finishPopOver();\n }\n });\n\n useEffect(() => {\n if (isClearColFilter) {\n setMoreContent(Filter);\n setForceShowMenu(true);\n }\n }, [isClearColFilter]);\n\n useEffect(() => {\n // Focus the first focusable element in nested menu content eg: filter,customize column etc\n if (moreContent && popperRef && moreContent !== 'default') {\n getFocusables(popperRef)?.[0]?.focus();\n }\n }, [forceShowMenu, popperRef, moreContent]);\n\n // Don't show the menu for columns which are of action type eg: rowActionMenu, rowDragDrop etc\n if (firstLevelActions.flat().length === 0 || field.type === FieldType.ACTION_FIELD_TYPE)\n return null;\n\n return (\n <div className='header-menu'>\n <Button\n variant='simple'\n className='button-more'\n compact\n icon\n aria-expanded={forceShowMenu}\n aria-label={`${translate('Actions')} - ${column.categorizedHeaderLabel}`}\n label={!forceShowMenu ? `${translate('Actions')}` : undefined}\n ref={popoverButtonRef}\n aria-describedby={sortDescriptionId}\n onClick={() => {\n setMoreContent('default');\n setForceShowMenu(true);\n }}\n onKeyDown={e => {\n if (forceShowMenu && e.key !== 'Enter') {\n // TODO remove preventDefault when popover steals the focus into its content\n e.preventDefault();\n }\n if (e.key === 'Escape' && forceShowMenu) {\n e.stopPropagation();\n setForceShowMenu(false);\n setPopperRef(null);\n }\n }}\n >\n <Icon name='more' />\n </Button>\n {forceShowMenu &&\n createPortal(\n <Popover\n className='popper'\n ref={setPopperRef}\n arrow\n target={popoverButtonRef.current}\n placement='bottom-start'\n hideOnTargetHidden\n // TODO: Consume FormDialog cosmos component in nested menu option renderers filter, group etc\n onKeyDown={e => {\n if (e.key === 'Escape' && forceShowMenu) {\n setForceShowMenu(false);\n setPopperRef(null);\n popoverButtonRef.current.focus();\n }\n if (e.key === 'Tab') {\n headerMenuTabHandler(e, popperRef);\n }\n }}\n >\n {content}\n </Popover>,\n column.parent.getDomContainer()\n )}\n\n <VisuallyHiddenText id={sortDescriptionId} aria-hidden>\n {sortDescription}\n </VisuallyHiddenText>\n </div>\n );\n}\n\nHeaderMenu.propTypes = {\n column: PropTypes.objectOf(PropTypes.any),\n popoverButtonRef: PropTypes.objectOf(PropTypes.any)\n};\n\nHeaderMenu.defaultProps = {\n column: {},\n popoverButtonRef: {}\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RFColumnConfigurator.d.ts","sourceRoot":"","sources":["../../../Core/Components/RFColumnConfigurator.jsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RFColumnConfigurator.d.ts","sourceRoot":"","sources":["../../../Core/Components/RFColumnConfigurator.jsx"],"names":[],"mappings":"AAqKA;;;;;;4CA4EC;;;;;;;;;;;;sBAhPqB,YAAY"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { memo, useState, useCallback } from 'react';
|
|
2
|
+
import { memo, useState, useCallback, useRef } from 'react';
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
4
|
import styled from 'styled-components';
|
|
5
|
+
import fastDeepEqual from 'fast-deep-equal/es6';
|
|
5
6
|
import { Input, Button, Select, Option, FormDialog } from '@pega/cosmos-react-core';
|
|
6
7
|
import useTranslate from '../Hooks/useTranslate';
|
|
7
8
|
import { DEFAULT_FORMAT } from '../constants';
|
|
@@ -30,14 +31,16 @@ Footer.propTypes = {
|
|
|
30
31
|
};
|
|
31
32
|
const defaultDisplayMode = 'Normal';
|
|
32
33
|
const displayModes = [defaultDisplayMode, 'Hierarchical'];
|
|
33
|
-
const Body = memo(({ column, rfName, columnAlias, displayMode, onRFChange, oncolumnAliasChange, onDisplayModeChange }) => {
|
|
34
|
+
const Body = memo(({ column, rfName, columnAlias, displayMode, onRFChange, setRFConfig, rfConfig, oncolumnAliasChange, onDisplayModeChange, formatterRef }) => {
|
|
34
35
|
const renderFormatters = column.getRenderFormatters();
|
|
35
|
-
const
|
|
36
|
+
const componentName = renderFormatters?.find(f => f.value === rfName)?.component;
|
|
37
|
+
const Component = componentName && column.renderFactory?.(componentName);
|
|
38
|
+
const isDefaultFormatterExist = renderFormatters?.find(formatter => formatter.isDefault || formatter.label === DEFAULT_FORMAT);
|
|
36
39
|
const renderDisplayMode = column.renderDisplayMode();
|
|
37
40
|
const [translate] = useTranslate();
|
|
38
41
|
const label = getFieldLabel(column.field);
|
|
39
42
|
const showFormatter = column.formatterName !== 'UserReference' && !column.field.disableFormatting;
|
|
40
|
-
return (_jsxs(_Fragment, { children: [_jsx(StyledRow, { children: _jsx(Input, { type: 'text', label: translate('Field'), value: label, readOnly: true }) }), _jsx(StyledRow, { children: _jsx(Input, { id: 'customise-label', type: 'text', label: translate('Alias'), onChange: oncolumnAliasChange, placeholder: translate('Enter alias'), value: columnAlias, "data-test-id": 'Customise label' }) }), showFormatter && renderFormatters && (_jsx(StyledRow, { children: _jsxs(Select, { id: 'select-customised-format', label: translate('Format'), onChange: onRFChange, value: rfName || '', "data-test-id": 'Customise format', children: [!isDefaultFormatterExist && (_jsx(Option, { value: DEFAULT_FORMAT, children: translate(DEFAULT_FORMAT) }, DEFAULT_FORMAT)), renderFormatters?.map(v => (_jsx(Option, { value: v.value, children: translate(v.label) }, v.value)))] }) })), renderDisplayMode && (_jsx(StyledRow, { children: _jsx(Select, { id: 'select-customised-display', label: translate('Display'), onChange: onDisplayModeChange, value: displayMode || defaultDisplayMode, "data-test-id": 'Customise display', children: displayModes.map(mode => (_jsx(Option, { value: mode, children: translate(mode) }, mode))) }) }))] }));
|
|
43
|
+
return (_jsxs(_Fragment, { children: [_jsx(StyledRow, { children: _jsx(Input, { type: 'text', label: translate('Field'), value: label, readOnly: true }) }), _jsx(StyledRow, { children: _jsx(Input, { id: 'customise-label', type: 'text', label: translate('Alias'), onChange: oncolumnAliasChange, placeholder: translate('Enter alias'), value: columnAlias, "data-test-id": 'Customise label' }) }), showFormatter && renderFormatters && (_jsx(StyledRow, { children: _jsxs(Select, { id: 'select-customised-format', label: translate('Format'), onChange: onRFChange, value: rfName || '', "data-test-id": 'Customise format', children: [!isDefaultFormatterExist && (_jsx(Option, { value: DEFAULT_FORMAT, children: translate(DEFAULT_FORMAT) }, DEFAULT_FORMAT)), renderFormatters?.map(v => (_jsx(Option, { value: v.value, children: translate(v.label) }, v.value)))] }) })), Component && (_jsx(Component, { ref: formatterRef, formatting: { type: rfName, config: rfConfig }, onChange: setRFConfig })), renderDisplayMode && (_jsx(StyledRow, { children: _jsx(Select, { id: 'select-customised-display', label: translate('Display'), onChange: onDisplayModeChange, value: displayMode || defaultDisplayMode, "data-test-id": 'Customise display', children: displayModes.map(mode => (_jsx(Option, { value: mode, children: translate(mode) }, mode))) }) }))] }));
|
|
41
44
|
});
|
|
42
45
|
Body.displayName = 'Body';
|
|
43
46
|
Body.propTypes = {
|
|
@@ -60,19 +63,39 @@ Body.defaultProps = {
|
|
|
60
63
|
};
|
|
61
64
|
export default function RFColumnConfigurator({ column, onCancel, onSubmit, finishPopOver, popoverButtonRef }) {
|
|
62
65
|
const [columnAlias, setColumnAlias] = useState(column.alias || '');
|
|
63
|
-
const
|
|
66
|
+
const renderFormatters = column.getRenderFormatters();
|
|
67
|
+
const [rfName, setRFName] = useState((typeof column.formatterConfig === 'string'
|
|
68
|
+
? column.formatterConfig
|
|
69
|
+
: column.formatterConfig?.type) || DEFAULT_FORMAT);
|
|
70
|
+
const [rfConfig, setRFConfig] = useState(column.formatterConfig?.config !== undefined
|
|
71
|
+
? column.formatterConfig?.config
|
|
72
|
+
: renderFormatters?.find(f => f.value === rfName)?.defaultConfig);
|
|
73
|
+
const formatterRef = useRef(null);
|
|
64
74
|
const [displayMode, setDisplayMode] = useState(column.displayMode);
|
|
65
75
|
const [translate] = useTranslate();
|
|
66
76
|
const onSubmitChanges = useCallback(() => {
|
|
67
|
-
|
|
77
|
+
// Validating whether formatter settings are valid or not
|
|
78
|
+
if (formatterRef.current?.validate && !formatterRef.current.validate())
|
|
79
|
+
return;
|
|
80
|
+
const isRFNameChanged = rfName !==
|
|
81
|
+
(typeof column.formatterConfig === 'string'
|
|
82
|
+
? column.formatterConfig
|
|
83
|
+
: column.formatterConfig?.type);
|
|
84
|
+
const isRFConfigChanged = !fastDeepEqual(rfConfig, column.formatterConfig?.config); // can be undefined
|
|
85
|
+
const isRFChanged = isRFNameChanged || isRFConfigChanged;
|
|
68
86
|
const isLableChanged = columnAlias.trim() !== column.alias?.trim(); // can be undefined
|
|
69
87
|
const isDisplayChanged = displayMode !== column.displayMode;
|
|
70
88
|
if (isRFChanged || isLableChanged || isDisplayChanged) {
|
|
71
|
-
onSubmit(
|
|
89
|
+
onSubmit(
|
|
90
|
+
// eslint-disable-next-line no-nested-ternary
|
|
91
|
+
isRFChanged ? (rfConfig ? { type: rfName, config: rfConfig } : rfName) : undefined, columnAlias, isDisplayChanged ? displayMode : undefined);
|
|
72
92
|
}
|
|
73
93
|
finishPopOver();
|
|
74
|
-
}, [column, onSubmit, rfName, columnAlias, finishPopOver, displayMode]);
|
|
75
|
-
return (_jsx(_Fragment, { children: popoverButtonRef.current ? (_jsx(FormDialog, { heading: translate('Format'), onSubmit: onSubmitChanges, onCancel: onCancel, target: popoverButtonRef.current, children: _jsx(Body, { column: column, rfName: rfName, columnAlias: columnAlias, displayMode: displayMode, onRFChange: e =>
|
|
94
|
+
}, [column, onSubmit, rfName, columnAlias, finishPopOver, displayMode, rfConfig]);
|
|
95
|
+
return (_jsx(_Fragment, { children: popoverButtonRef.current ? (_jsx(FormDialog, { heading: translate('Format'), onSubmit: onSubmitChanges, onCancel: onCancel, target: popoverButtonRef.current, children: _jsx(Body, { column: column, rfName: rfName, columnAlias: columnAlias, displayMode: displayMode, onRFChange: e => {
|
|
96
|
+
setRFName(e.target.value);
|
|
97
|
+
setRFConfig(renderFormatters?.find(f => f.value === e.target.value)?.defaultConfig);
|
|
98
|
+
}, setRFConfig: setRFConfig, rfConfig: rfConfig, oncolumnAliasChange: e => setColumnAlias(e.target.value), onDisplayModeChange: e => setDisplayMode(e.target.value), formatterRef: formatterRef }) })) : null }));
|
|
76
99
|
}
|
|
77
100
|
RFColumnConfigurator.propTypes = {
|
|
78
101
|
column: PropTypes.objectOf(PropTypes.any).isRequired,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RFColumnConfigurator.js","sourceRoot":"","sources":["../../../Core/Components/RFColumnConfigurator.jsx"],"names":[],"mappings":"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","sourcesContent":["import { memo, useState, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { Input, Button, Select, Option, FormDialog } from '@pega/cosmos-react-core';\n\nimport useTranslate from '../Hooks/useTranslate';\nimport { DEFAULT_FORMAT } from '../constants';\n\nconst StyledRow = styled.div`\n margin: 0.625rem 0;\n`;\n\n// Returns user friendly label from field information\nfunction getFieldLabel(field) {\n // Add category information (if applicable)\n if (field.category && field.category.length) {\n const combinedCategories = field.category\n .map(currentCategory => currentCategory.label)\n .join('.');\n return `${combinedCategories}.${field.label}`;\n }\n\n return `${field.label}`;\n}\n\nconst Footer = memo(({ cancel, submit }) => {\n const [translate] = useTranslate();\n return (\n <footer>\n <Button onClick={cancel} data-test-id='cancel'>\n {translate('Cancel')}\n </Button>\n <Button variant='primary' onClick={submit} data-test-id='submit'>\n {translate('Submit')}\n </Button>\n </footer>\n );\n});\n\nFooter.displayName = 'Footer';\n\nFooter.propTypes = {\n cancel: PropTypes.func.isRequired,\n submit: PropTypes.func.isRequired\n};\n\nconst defaultDisplayMode = 'Normal';\nconst displayModes = [defaultDisplayMode, 'Hierarchical'];\n\nconst Body = memo(\n ({\n column,\n rfName,\n columnAlias,\n displayMode,\n onRFChange,\n oncolumnAliasChange,\n onDisplayModeChange\n }) => {\n const renderFormatters = column.getRenderFormatters();\n const isDefaultFormatterExist = renderFormatters?.find(\n formatter => formatter.label === DEFAULT_FORMAT\n );\n const renderDisplayMode = column.renderDisplayMode();\n const [translate] = useTranslate();\n const label = getFieldLabel(column.field);\n const showFormatter =\n column.formatterName !== 'UserReference' && !column.field.disableFormatting;\n return (\n <>\n <StyledRow>\n <Input type='text' label={translate('Field')} value={label} readOnly />\n </StyledRow>\n <StyledRow>\n <Input\n id='customise-label'\n type='text'\n label={translate('Alias')}\n onChange={oncolumnAliasChange}\n placeholder={translate('Enter alias')}\n value={columnAlias}\n data-test-id='Customise label'\n />\n </StyledRow>\n\n {showFormatter && renderFormatters && (\n <StyledRow>\n <Select\n id='select-customised-format'\n label={translate('Format')}\n onChange={onRFChange}\n value={rfName || ''}\n data-test-id='Customise format'\n >\n {!isDefaultFormatterExist && (\n <Option key={DEFAULT_FORMAT} value={DEFAULT_FORMAT}>\n {translate(DEFAULT_FORMAT)}\n </Option>\n )}\n {renderFormatters?.map(v => (\n <Option key={v.value} value={v.value}>\n {translate(v.label)}\n </Option>\n ))}\n </Select>\n </StyledRow>\n )}\n {renderDisplayMode && (\n <StyledRow>\n <Select\n id='select-customised-display'\n label={translate('Display')}\n onChange={onDisplayModeChange}\n value={displayMode || defaultDisplayMode}\n data-test-id='Customise display'\n >\n {displayModes.map(mode => (\n <Option key={mode} value={mode}>\n {translate(mode)}\n </Option>\n ))}\n </Select>\n </StyledRow>\n )}\n </>\n );\n }\n);\n\nBody.displayName = 'Body';\n\nBody.propTypes = {\n column: PropTypes.objectOf(PropTypes.any),\n rfName: PropTypes.string,\n columnAlias: PropTypes.string,\n onRFChange: PropTypes.func,\n oncolumnAliasChange: PropTypes.func,\n displayMode: PropTypes.string,\n onDisplayModeChange: PropTypes.func\n};\n\nBody.defaultProps = {\n column: {},\n rfName: '',\n columnAlias: '',\n onRFChange: () => {},\n oncolumnAliasChange: () => {},\n displayMode: defaultDisplayMode,\n onDisplayModeChange: () => {}\n};\n\nexport default function RFColumnConfigurator({\n column,\n onCancel,\n onSubmit,\n finishPopOver,\n popoverButtonRef\n}) {\n const [columnAlias, setColumnAlias] = useState(column.alias || '');\n const [rfName, setRFName] = useState(column.formatterName || DEFAULT_FORMAT);\n const [displayMode, setDisplayMode] = useState(column.displayMode);\n const [translate] = useTranslate();\n const onSubmitChanges = useCallback(() => {\n const isRFChanged = rfName !== column.formatterName;\n const isLableChanged = columnAlias.trim() !== column.alias?.trim(); // can be undefined\n const isDisplayChanged = displayMode !== column.displayMode;\n\n if (isRFChanged || isLableChanged || isDisplayChanged) {\n onSubmit(\n isRFChanged ? rfName : undefined,\n columnAlias,\n isDisplayChanged ? displayMode : undefined\n );\n }\n finishPopOver();\n }, [column, onSubmit, rfName, columnAlias, finishPopOver, displayMode]);\n\n return (\n <>\n {popoverButtonRef.current ? (\n <FormDialog\n heading={translate('Format')}\n onSubmit={onSubmitChanges}\n onCancel={onCancel}\n target={popoverButtonRef.current}\n >\n <Body\n column={column}\n rfName={rfName}\n columnAlias={columnAlias}\n displayMode={displayMode}\n onRFChange={e => setRFName(e.target.value)}\n oncolumnAliasChange={e => setColumnAlias(e.target.value)}\n onDisplayModeChange={e => setDisplayMode(e.target.value)}\n />\n </FormDialog>\n ) : null}\n </>\n );\n}\n\nRFColumnConfigurator.propTypes = {\n column: PropTypes.objectOf(PropTypes.any).isRequired,\n onCancel: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n finishPopOver: PropTypes.func.isRequired\n};\n"]}
|
|
1
|
+
{"version":3,"file":"RFColumnConfigurator.js","sourceRoot":"","sources":["../../../Core/Components/RFColumnConfigurator.jsx"],"names":[],"mappings":"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","sourcesContent":["import { memo, useState, useCallback, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport fastDeepEqual from 'fast-deep-equal/es6';\n\nimport { Input, Button, Select, Option, FormDialog } from '@pega/cosmos-react-core';\n\nimport useTranslate from '../Hooks/useTranslate';\nimport { DEFAULT_FORMAT } from '../constants';\n\nconst StyledRow = styled.div`\n margin: 0.625rem 0;\n`;\n\n// Returns user friendly label from field information\nfunction getFieldLabel(field) {\n // Add category information (if applicable)\n if (field.category && field.category.length) {\n const combinedCategories = field.category\n .map(currentCategory => currentCategory.label)\n .join('.');\n return `${combinedCategories}.${field.label}`;\n }\n\n return `${field.label}`;\n}\n\nconst Footer = memo(({ cancel, submit }) => {\n const [translate] = useTranslate();\n return (\n <footer>\n <Button onClick={cancel} data-test-id='cancel'>\n {translate('Cancel')}\n </Button>\n <Button variant='primary' onClick={submit} data-test-id='submit'>\n {translate('Submit')}\n </Button>\n </footer>\n );\n});\n\nFooter.displayName = 'Footer';\n\nFooter.propTypes = {\n cancel: PropTypes.func.isRequired,\n submit: PropTypes.func.isRequired\n};\n\nconst defaultDisplayMode = 'Normal';\nconst displayModes = [defaultDisplayMode, 'Hierarchical'];\n\nconst Body = memo(\n ({\n column,\n rfName,\n columnAlias,\n displayMode,\n onRFChange,\n setRFConfig,\n rfConfig,\n oncolumnAliasChange,\n onDisplayModeChange,\n formatterRef\n }) => {\n const renderFormatters = column.getRenderFormatters();\n const componentName = renderFormatters?.find(f => f.value === rfName)?.component;\n const Component = componentName && column.renderFactory?.(componentName);\n const isDefaultFormatterExist = renderFormatters?.find(\n formatter => formatter.isDefault || formatter.label === DEFAULT_FORMAT\n );\n const renderDisplayMode = column.renderDisplayMode();\n const [translate] = useTranslate();\n const label = getFieldLabel(column.field);\n const showFormatter =\n column.formatterName !== 'UserReference' && !column.field.disableFormatting;\n return (\n <>\n <StyledRow>\n <Input type='text' label={translate('Field')} value={label} readOnly />\n </StyledRow>\n <StyledRow>\n <Input\n id='customise-label'\n type='text'\n label={translate('Alias')}\n onChange={oncolumnAliasChange}\n placeholder={translate('Enter alias')}\n value={columnAlias}\n data-test-id='Customise label'\n />\n </StyledRow>\n\n {showFormatter && renderFormatters && (\n <StyledRow>\n <Select\n id='select-customised-format'\n label={translate('Format')}\n onChange={onRFChange}\n value={rfName || ''}\n data-test-id='Customise format'\n >\n {!isDefaultFormatterExist && (\n <Option key={DEFAULT_FORMAT} value={DEFAULT_FORMAT}>\n {translate(DEFAULT_FORMAT)}\n </Option>\n )}\n {renderFormatters?.map(v => (\n <Option key={v.value} value={v.value}>\n {translate(v.label)}\n </Option>\n ))}\n </Select>\n </StyledRow>\n )}\n {Component && (\n <Component\n ref={formatterRef}\n formatting={{ type: rfName, config: rfConfig }}\n onChange={setRFConfig}\n />\n )}\n {renderDisplayMode && (\n <StyledRow>\n <Select\n id='select-customised-display'\n label={translate('Display')}\n onChange={onDisplayModeChange}\n value={displayMode || defaultDisplayMode}\n data-test-id='Customise display'\n >\n {displayModes.map(mode => (\n <Option key={mode} value={mode}>\n {translate(mode)}\n </Option>\n ))}\n </Select>\n </StyledRow>\n )}\n </>\n );\n }\n);\n\nBody.displayName = 'Body';\n\nBody.propTypes = {\n column: PropTypes.objectOf(PropTypes.any),\n rfName: PropTypes.string,\n columnAlias: PropTypes.string,\n onRFChange: PropTypes.func,\n oncolumnAliasChange: PropTypes.func,\n displayMode: PropTypes.string,\n onDisplayModeChange: PropTypes.func\n};\n\nBody.defaultProps = {\n column: {},\n rfName: '',\n columnAlias: '',\n onRFChange: () => {},\n oncolumnAliasChange: () => {},\n displayMode: defaultDisplayMode,\n onDisplayModeChange: () => {}\n};\n\nexport default function RFColumnConfigurator({\n column,\n onCancel,\n onSubmit,\n finishPopOver,\n popoverButtonRef\n}) {\n const [columnAlias, setColumnAlias] = useState(column.alias || '');\n const renderFormatters = column.getRenderFormatters();\n const [rfName, setRFName] = useState(\n (typeof column.formatterConfig === 'string'\n ? column.formatterConfig\n : column.formatterConfig?.type) || DEFAULT_FORMAT\n );\n const [rfConfig, setRFConfig] = useState(\n column.formatterConfig?.config !== undefined\n ? column.formatterConfig?.config\n : renderFormatters?.find(f => f.value === rfName)?.defaultConfig\n );\n const formatterRef = useRef(null);\n\n const [displayMode, setDisplayMode] = useState(column.displayMode);\n const [translate] = useTranslate();\n const onSubmitChanges = useCallback(() => {\n // Validating whether formatter settings are valid or not\n if (formatterRef.current?.validate && !formatterRef.current.validate()) return;\n\n const isRFNameChanged =\n rfName !==\n (typeof column.formatterConfig === 'string'\n ? column.formatterConfig\n : column.formatterConfig?.type);\n const isRFConfigChanged = !fastDeepEqual(rfConfig, column.formatterConfig?.config); // can be undefined\n const isRFChanged = isRFNameChanged || isRFConfigChanged;\n const isLableChanged = columnAlias.trim() !== column.alias?.trim(); // can be undefined\n const isDisplayChanged = displayMode !== column.displayMode;\n\n if (isRFChanged || isLableChanged || isDisplayChanged) {\n onSubmit(\n // eslint-disable-next-line no-nested-ternary\n isRFChanged ? (rfConfig ? { type: rfName, config: rfConfig } : rfName) : undefined,\n columnAlias,\n isDisplayChanged ? displayMode : undefined\n );\n }\n finishPopOver();\n }, [column, onSubmit, rfName, columnAlias, finishPopOver, displayMode, rfConfig]);\n\n return (\n <>\n {popoverButtonRef.current ? (\n <FormDialog\n heading={translate('Format')}\n onSubmit={onSubmitChanges}\n onCancel={onCancel}\n target={popoverButtonRef.current}\n >\n <Body\n column={column}\n rfName={rfName}\n columnAlias={columnAlias}\n displayMode={displayMode}\n onRFChange={e => {\n setRFName(e.target.value);\n setRFConfig(renderFormatters?.find(f => f.value === e.target.value)?.defaultConfig);\n }}\n setRFConfig={setRFConfig}\n rfConfig={rfConfig}\n oncolumnAliasChange={e => setColumnAlias(e.target.value)}\n onDisplayModeChange={e => setDisplayMode(e.target.value)}\n formatterRef={formatterRef}\n />\n </FormDialog>\n ) : null}\n </>\n );\n}\n\nRFColumnConfigurator.propTypes = {\n column: PropTypes.objectOf(PropTypes.any).isRequired,\n onCancel: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n finishPopOver: PropTypes.func.isRequired\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Formatter.d.ts","sourceRoot":"","sources":["../../../../Core/Components/RenderingEngine/Formatter.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"Formatter.d.ts","sourceRoot":"","sources":["../../../../Core/Components/RenderingEngine/Formatter.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,OAAO,QAyBtE"}
|
|
@@ -6,13 +6,16 @@ export default function Formatter(context, applyFormatter) {
|
|
|
6
6
|
const { locale, timezone } = context.getRsMeta();
|
|
7
7
|
const rowData = context.getExecutionContext?.()?.getValue?.();
|
|
8
8
|
const fieldDef = context.getField();
|
|
9
|
+
// TODO: Need to read this context.formatterConfig from context.getField() once its available there.
|
|
10
|
+
const formatterConfig = context.formatterConfig;
|
|
9
11
|
let formattedValue = applyFormatter && formatter
|
|
10
12
|
? formatter(inputValue, {
|
|
11
13
|
locale,
|
|
12
14
|
timezone,
|
|
13
15
|
rowData,
|
|
14
16
|
fieldDef,
|
|
15
|
-
translate
|
|
17
|
+
translate,
|
|
18
|
+
formatterConfig
|
|
16
19
|
})
|
|
17
20
|
: inputValue?.toString();
|
|
18
21
|
// Empty cell value for any field type
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Formatter.js","sourceRoot":"","sources":["../../../../Core/Components/RenderingEngine/Formatter.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,0BAA0B,CAAC;AAEpD,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,OAAY,EAAE,cAAuB;IACrE,MAAM,CAAC,SAAS,CAAC,GAAG,YAAY,EAAE,CAAC;IACnC,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IACtC,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IACzC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IACjD,MAAM,OAAO,GAAG,OAAO,CAAC,mBAAmB,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC;IAC9D,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IACpC,IAAI,cAAc,GAChB,cAAc,IAAI,SAAS;QACzB,CAAC,CAAC,SAAS,CAAC,UAAU,EAAE;YACpB,MAAM;YACN,QAAQ;YACR,OAAO;YACP,QAAQ;YACR,SAAS;
|
|
1
|
+
{"version":3,"file":"Formatter.js","sourceRoot":"","sources":["../../../../Core/Components/RenderingEngine/Formatter.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,0BAA0B,CAAC;AAEpD,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,OAAY,EAAE,cAAuB;IACrE,MAAM,CAAC,SAAS,CAAC,GAAG,YAAY,EAAE,CAAC;IACnC,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IACtC,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IACzC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IACjD,MAAM,OAAO,GAAG,OAAO,CAAC,mBAAmB,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC;IAC9D,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IACpC,oGAAoG;IACpG,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IAChD,IAAI,cAAc,GAChB,cAAc,IAAI,SAAS;QACzB,CAAC,CAAC,SAAS,CAAC,UAAU,EAAE;YACpB,MAAM;YACN,QAAQ;YACR,OAAO;YACP,QAAQ;YACR,SAAS;YACT,eAAe;SAChB,CAAC;QACJ,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC;IAC7B,sCAAsC;IACtC,IAAI,cAAc,KAAK,EAAE,IAAI,cAAc,KAAK,IAAI,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QACrF,cAAc,GAAG,IAAI,CAAC;IACxB,CAAC;IACD,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;AACpD,CAAC","sourcesContent":["import useTranslate from '../../Hooks/useTranslate';\n\nexport default function Formatter(context: any, applyFormatter: boolean) {\n const [translate] = useTranslate();\n const inputValue = context.getValue();\n const formatter = context.getFormatter();\n const { locale, timezone } = context.getRsMeta();\n const rowData = context.getExecutionContext?.()?.getValue?.();\n const fieldDef = context.getField();\n // TODO: Need to read this context.formatterConfig from context.getField() once its available there.\n const formatterConfig = context.formatterConfig;\n let formattedValue =\n applyFormatter && formatter\n ? formatter(inputValue, {\n locale,\n timezone,\n rowData,\n fieldDef,\n translate,\n formatterConfig\n })\n : inputValue?.toString();\n // Empty cell value for any field type\n if (formattedValue === '' || formattedValue === null || formattedValue === undefined) {\n formattedValue = '––';\n }\n context.setProp('formattedValue', formattedValue);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderCell.d.ts","sourceRoot":"","sources":["../../../../Core/Components/RenderingEngine/RenderCell.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAe7E,UAAU,oBAAqB,SAAQ,WAAW,CAAC,0BAA0B;IAC3E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,KAAK,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,iBAAS,eAAe,CAAC,EACvB,SAAgB,EAChB,WAAmB,EACnB,mBAA2B,EAC3B,YAAoB,EACpB,OAAe,EACf,OAAO,EACP,MAAM,EACN,KAAY,EACZ,SAAS,EACV,EAAE,oBAAoB,
|
|
1
|
+
{"version":3,"file":"RenderCell.d.ts","sourceRoot":"","sources":["../../../../Core/Components/RenderingEngine/RenderCell.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAe7E,UAAU,oBAAqB,SAAQ,WAAW,CAAC,0BAA0B;IAC3E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,KAAK,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,iBAAS,eAAe,CAAC,EACvB,SAAgB,EAChB,WAAmB,EACnB,mBAA2B,EAC3B,YAAoB,EACpB,OAAe,EACf,OAAO,EACP,MAAM,EACN,KAAY,EACZ,SAAS,EACV,EAAE,oBAAoB,2CAiDtB;;AAED,wBAAqC"}
|
|
@@ -23,7 +23,8 @@ function RenderingEngine({ formatter = true, highlighter = false, expressionEval
|
|
|
23
23
|
...context,
|
|
24
24
|
renderFactory,
|
|
25
25
|
resolveCellComponent,
|
|
26
|
-
resolveViewComponent
|
|
26
|
+
resolveViewComponent,
|
|
27
|
+
formatterConfig: column.formatterConfig
|
|
27
28
|
};
|
|
28
29
|
const pipeline = [];
|
|
29
30
|
const { getField, getRendererType } = engineContext;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderCell.js","sourceRoot":"","sources":["../../../../Core/Components/RenderingEngine/RenderCell.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1D,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAGvC,OAAO,EAAE,SAAS,EAAoB,MAAM,gCAAgC,CAAC;AAE7E,OAAO,EAAE,eAAe,IAAI,EAAE,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,aAAa,MAAM,6BAA6B,CAAC;AAExD,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAE1C,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAA0C;IACpE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK;CACvB,CAAC;AAaF,SAAS,eAAe,CAAC,EACvB,SAAS,GAAG,IAAI,EAChB,WAAW,GAAG,KAAK,EACnB,mBAAmB,GAAG,KAAK,EAC3B,YAAY,GAAG,KAAK,EACpB,OAAO,GAAG,KAAK,EACf,OAAO,EACP,MAAM,EACN,KAAK,GAAG,IAAI,CAAC,8CAA8C,EAC3D,SAAS,EACY;IACrB,MAAM,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;IAEjF,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC;IAC/B,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC;IAEjC,MAAM,sBAAsB,GAAG,MAAM,CAAC,mBAAmB,EAAE,CAAC;IAE5D,MAAM,aAAa,GAAG;QACpB,UAAU,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO;QACvC,GAAG,MAAM,CAAC,UAAU,CAAC,sBAAsB,CAAC;QAC5C,GAAG,OAAO;QACV,aAAa;QACb,oBAAoB;QACpB,oBAAoB;
|
|
1
|
+
{"version":3,"file":"RenderCell.js","sourceRoot":"","sources":["../../../../Core/Components/RenderingEngine/RenderCell.tsx"],"names":[],"mappings":"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","sourcesContent":["import { memo, useMemo, useRef, useContext } from 'react';\nimport styled from 'styled-components';\nimport type { CSSObject } from 'styled-components';\n\nimport { FieldType, type RsCoreTypes } from 'pega-repeating-structures-core';\n\nimport { createClassName as cx } from '../../Utils';\nimport GlobalContext from '../../Context/GlobalContext';\n\nimport Formatter from './Formatter';\nimport ExpresssionEvaluator from './ExpresssionEvaluator';\nimport Flasher from './Flasher';\nimport useHighlighter from './useHighlighter';\nimport ErrorHandler from './ErrorHandler';\n\nconst StyledSpan = styled.span<{ style: RenderingEngineProps['style'] }>`\n ${props => props.style}\n`;\n\ninterface RenderingEngineProps extends RsCoreTypes.ColumnRenderingEngineProps {\n formatter?: boolean;\n highlighter?: boolean;\n expressionEvaluator?: boolean;\n errorHandler?: boolean;\n flasher?: boolean;\n context?: any;\n style?: CSSObject | null;\n className?: string;\n}\n\nfunction RenderingEngine({\n formatter = true,\n highlighter = false,\n expressionEvaluator = false,\n errorHandler = false,\n flasher = false,\n context,\n column,\n style = null /* This prop is provided by CellWrapper.jsx */,\n className\n}: RenderingEngineProps) {\n const { resolveCellComponent, resolveViewComponent } = useContext(GlobalContext);\n\n const engineWrapper = useRef();\n const { renderFactory } = column;\n\n const columnExecutionContext = column.getExecutionContext();\n\n const engineContext = {\n getElement: () => engineWrapper.current,\n ...column.getContext(columnExecutionContext),\n ...context,\n renderFactory,\n resolveCellComponent,\n resolveViewComponent,\n formatterConfig: column.formatterConfig\n };\n const pipeline: any[] = [];\n const { getField, getRendererType } = engineContext;\n const field = getField();\n\n const isHighlighterApplicable = useMemo(\n () => !!(field.type === FieldType.TEXT && column.parent?.meta?.globalSearch),\n [field.type, column]\n );\n\n if (expressionEvaluator) pipeline.push(ExpresssionEvaluator);\n if (column.formatterAllowed) pipeline.push((c: any) => Formatter(c, formatter));\n if (errorHandler) pipeline.push(ErrorHandler);\n if (flasher) pipeline.push(Flasher);\n\n useHighlighter(engineContext, {\n shouldHighlight: highlighter && isHighlighterApplicable\n });\n\n pipeline.forEach(p => p(engineContext));\n\n return (\n <StyledSpan\n ref={engineWrapper}\n style={style}\n className={cx('cell-content', className)}\n {...(highlighter &&\n isHighlighterApplicable &&\n engineContext.getSearchKeyword() && { key: engineContext.getSearchKeyword() })}\n >\n {resolveCellComponent(getRendererType?.() || 'cellRenderer', renderFactory, engineContext)}\n </StyledSpan>\n );\n}\n\nexport default memo(RenderingEngine);\n"]}
|
|
@@ -162,11 +162,11 @@ export default function useRepeat({ meta, apiContext, presets = [], persistedInf
|
|
|
162
162
|
const sanitizedFormats = sanitizeConditionalStyleFormats(conditionalStyleFormats, fieldDefs);
|
|
163
163
|
instance.getView().type.setConditionalStyleFormats(sanitizedFormats);
|
|
164
164
|
}, []);
|
|
165
|
-
const setRenderFormatter = useCallback((columnId,
|
|
165
|
+
const setRenderFormatter = useCallback((columnId, formatter) => {
|
|
166
166
|
instance
|
|
167
167
|
.getView()
|
|
168
168
|
.columns?.find(c => c.field.id === columnId)
|
|
169
|
-
?.applyFormatter(
|
|
169
|
+
?.applyFormatter(formatter);
|
|
170
170
|
}, [instance]);
|
|
171
171
|
const removeRenderFormatter = useCallback(columnId => {
|
|
172
172
|
instance
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRepeat.js","sourceRoot":"","sources":["../../../Core/Hooks/useRepeat.ts"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useCallback, useRef, useImperativeHandle, type RefObject } from 'react';\nimport { v4 as uuidV4 } from 'uuid';\n\nimport {\n initializeRsCore,\n rowDragDropColumnMeta,\n sanitizeConditionalStyleFormats,\n type RsCoreTypes\n} from 'pega-repeating-structures-core';\n\nimport { deepEqual, isRowReorderFieldEnabled } from '../Utils';\nimport type { RepeatingStructuresProps } from '../../types/RepeatingStructuresBoot.types';\n\nimport useThunkReducer from './useThunkReducer';\nimport useTranslate from './useTranslate';\n\n/**\n * Represents the instance of a repeating structure, containing methods and properties\n * to interact with it.\n */\nexport interface Instance {\n /** A unique identifier for the repeating structure instance. */\n rsID: string;\n /** The API context for interacting with the repeating structure. See {@link RsCoreTypes.ApiContext} */\n apiContext: RsCoreTypes.ApiContext;\n /** The core API for managing the repeating structure's state and behavior. See {@link RsCoreTypes.RsCore}. */\n rsCoreApi: RsCoreTypes.RsCore;\n /** A method to retrieve the current view of the repeating structure. See {@link RsCoreTypes.RsCore.getView} */\n getView: RsCoreTypes.RsCore['getView'];\n /**\n * @deprecated This set of methods is deprecated and will be removed in future versions.\n * Use methods exposed using repeatComponentInstance instead.\n *\n * A set of APIs to interact with the repeating structure. See {@link RsCoreTypes.RsApi}.\n * */\n api: Pick<RsCoreTypes.RsApi, 'dispatchAction' | 'setRecordCount'>;\n}\n\nfunction getRsCoreApi(instance: Instance, opt: RsCoreTypes.RsCoreInitArgs) {\n if (instance.rsCoreApi) return instance.rsCoreApi;\n return initializeRsCore(opt);\n}\n\n/**\n * A custom React hook to manage the lifecycle of repeating structures using `RsCore` library.\n * It provides an RsCoreTypes.RsApi for interacting with the view.\n * Provide additional callbacks to API Context via `addCallbacks` method.\n *\n * @param props - RepeatingStructuresProps required to initialize and manage the repeating structures.\n * @see {@link RepeatingStructuresProps}\n * @returns A singleton instance object that contains methods to interact with repeating structure.\n * @see {@link Instance}\n */\nexport default function useRepeat({\n meta,\n apiContext,\n presets = [],\n persistedInfo,\n onRowClickAction,\n renderFactory,\n renderFormatterTypeMap,\n formatters,\n onViewReady,\n mode,\n toolBarOptions,\n styleFormats,\n repeatComponentInstance\n}: RepeatingStructuresProps & { repeatComponentInstance: RefObject<RsCoreTypes.RsApi> }): Instance {\n // Create the repeat instance\n const instance: Instance = useRef<Instance>({ rsID: uuidV4() } as Instance).current;\n\n // Normalize metadata everytime as you might have added custom column.\n // TODO: refactor this to normalizeMeta when required.\n\n const [, dispatch] = useThunkReducer();\n // FIXME: remove renderFactory from RsApi params\n\n type RsCoreTranslationKeys = keyof NonNullable<RsCoreTypes.RsCoreInitArgs['translations']>;\n const rsCoreTranslationKeys: RsCoreTranslationKeys[] = [\n 'created_view',\n 'created_view_with_default',\n 'deleted_view',\n 'saved_changes',\n 'saved_changes_with_default',\n 'view_marked_app_default',\n 'view_marked_default',\n 'view_navigation_instructions',\n 'Actions',\n 'Select',\n 'Reorder',\n 'Error',\n 'required'\n ];\n\n const [translate] = useTranslate();\n const rsCoreTranslationValues = translate(rsCoreTranslationKeys);\n const rsCoreTranslations = Object.fromEntries(\n rsCoreTranslationKeys.map((key, index) => [key, rsCoreTranslationValues[index]])\n );\n\n Object.assign(instance, {\n apiContext,\n rsCoreApi: getRsCoreApi(instance, {\n formatters,\n renderFormatterTypeMap,\n toolBarOptions,\n meta,\n onRowClickAction,\n apiContext,\n presets,\n persistedInfo,\n dispatch,\n mode,\n renderFactory,\n styleFormats,\n translations: rsCoreTranslations\n })\n });\n\n Object.assign(instance, {\n getView: instance.rsCoreApi.getView\n });\n\n // TODO: enrich this to take meta as well\n instance.rsCoreApi.updateInitArgs({ apiContext, styleFormats });\n\n instance.api = {\n ...(instance.api || {}),\n setRecordCount: instance.getView().type.setRecordCount,\n dispatchAction: instance.getView().type.dispatchAction\n };\n\n /** Compare new payload with current state to avoid unnecessary rerenders */\n // TODO: create separate api for setting visibility state for OOTB columns.\n const setHiddenColumns = useCallback(\n (hiddenColumns: string[], ootbColumns?: { dragHandle?: boolean }) => {\n if (\n hiddenColumns &&\n !ootbColumns &&\n hiddenColumns.length === instance.getView().state.hiddenColumns?.length &&\n hiddenColumns.every(id => instance.getView().state.hiddenColumns?.includes(id))\n ) {\n return;\n }\n if (ootbColumns?.dragHandle && !isRowReorderFieldEnabled(instance.getView().meta)) {\n delete ootbColumns.dragHandle;\n }\n instance.getView().type.applyHiddenColumns(hiddenColumns, ootbColumns);\n },\n [instance]\n );\n\n const setColumnOrder: RsCoreTypes.RsApi['setColumnOrder'] = useCallback(\n (colOrder: string[]) => {\n if (colOrder && deepEqual(colOrder, instance.getView().state.colOrder)) {\n return;\n }\n instance.getView().type.applyOrder(colOrder);\n },\n [instance]\n );\n\n const setAggregations: RsCoreTypes.RsApi['setAggregations'] = useCallback(\n (agg: RsCoreTypes.State['aggregationInfo']) => {\n if (agg && deepEqual(agg, instance.getView().state.aggregationInfo)) {\n return;\n }\n if (agg) instance.getView().type.applyAggregations(agg);\n },\n [instance]\n );\n\n const setFilter: RsCoreTypes.RsApi['setFilter'] = useCallback(\n newFilter => {\n if (newFilter && deepEqual(newFilter, instance.getView().state.filterExpression)) {\n return;\n }\n instance.getView().type.applyFilter({ filterExp: newFilter });\n },\n [instance]\n );\n\n const setAliases: RsCoreTypes.RsApi['setAliases'] = useCallback(\n aliases => {\n if (!aliases) {\n return;\n }\n instance.getView().type.applyAliases({ aliases });\n },\n [instance]\n );\n\n const setSorting: RsCoreTypes.RsApi['setSorting'] = useCallback(\n sortingOrder => {\n if (sortingOrder && deepEqual(sortingOrder, instance.getView().state.sortingOrder)) {\n return;\n }\n instance.getView().type.applySorting(sortingOrder);\n },\n [instance]\n );\n\n const setGrouping: RsCoreTypes.RsApi['setGrouping'] = useCallback(\n (groups: RsCoreTypes.Group[]) => {\n if (groups && deepEqual(groups, instance.getView().state.groups)) {\n return;\n }\n instance.getView().type.applyGrouping(groups);\n },\n [instance]\n );\n\n const setRowReorderFieldVisibility: RsCoreTypes.RsApi['setRowReorderFieldVisibility'] =\n useCallback(\n visibility => {\n if (isRowReorderFieldEnabled(instance.getView().meta)) {\n instance\n .getView()\n .type.updateColumnsVisibility({ [rowDragDropColumnMeta.field.id]: visibility });\n }\n },\n [instance]\n );\n\n const updateColumnsVisibility: RsCoreTypes.RsApi['updateColumnsVisibility'] = useCallback(\n columns => {\n const fieldDefs = instance.getView().meta.fieldDefs.map(field => field.id);\n const columnsToBeToggled: Record<string, boolean> = {};\n Object.keys(columns).forEach(column => {\n if (fieldDefs.includes(column)) {\n columnsToBeToggled[column] = columns[column];\n }\n });\n if (Object.keys(columnsToBeToggled).length) {\n instance.getView().type.updateColumnsVisibility(columnsToBeToggled);\n }\n },\n [instance]\n );\n\n const getActiveViewInfo = useCallback(() => {\n const {\n state: { personalization }\n } = instance.getView();\n\n const activePersonalization = personalization?.active;\n const activePersonalizationName = activePersonalization\n ? personalization?.allPersonalizations?.[activePersonalization]?.name\n : undefined;\n return {\n id: activePersonalization,\n name: activePersonalizationName,\n isDirty: !!personalization?.dirty\n };\n }, [instance]);\n\n const setConditionalStyleFormats: RsCoreTypes.RsApi['setConditionalStyleFormats'] = useCallback(\n conditionalStyleFormats => {\n const {\n meta: { fieldDefs }\n } = instance.getView();\n\n if (\n conditionalStyleFormats &&\n deepEqual(conditionalStyleFormats, instance.getView().state.conditionalStyleFormats)\n ) {\n return;\n }\n\n const sanitizedFormats = sanitizeConditionalStyleFormats(conditionalStyleFormats, fieldDefs);\n instance.getView().type.setConditionalStyleFormats(sanitizedFormats);\n },\n []\n );\n\n const setRenderFormatter: RsCoreTypes.RsApi['setRenderFormatter'] = useCallback(\n (columnId, formatterName) => {\n instance\n .getView()\n .columns?.find(c => c.field.id === columnId)\n ?.applyFormatter(formatterName);\n },\n [instance]\n );\n\n const removeRenderFormatter: RsCoreTypes.RsApi['removeRenderFormatter'] = useCallback(\n columnId => {\n instance\n .getView()\n .columns?.find(c => c.field.id === columnId)\n ?.removeFormatter();\n },\n [instance]\n );\n\n // TODO: Move the RsCoreTypes.RsApi's to separate file, maybe useRsApi.ts\n // TODO:\n useImperativeHandle(\n repeatComponentInstance,\n () => ({\n refreshView: instance.getView().type.forceRefresh,\n setRecordCount: instance.getView().type.setRecordCount,\n dispatchAction: instance.getView().type.dispatchAction,\n getActiveViewInfo,\n /** Only expose below APIs when those features are enabled */\n setHiddenColumns: instance.getView().meta.toggleFieldVisibility\n ? setHiddenColumns\n : undefined,\n setColumnOrder: instance.getView().meta.reorderFields ? setColumnOrder : undefined,\n setFilter,\n setSorting,\n setAliases,\n setGrouping: instance.getView().meta.grouping ? setGrouping : undefined,\n setAggregations,\n setRenderFormatter,\n removeRenderFormatter,\n setRowReorderFieldVisibility,\n updateColumnsVisibility,\n setConditionalStyleFormats\n }),\n\n []\n );\n\n // When ever component mounts, do this after first render of component\n useEffect(() => {\n instance.getView().type.doBootstrap();\n if (onViewReady) onViewReady(instance.api);\n if (instance.apiContext.addCallbacks && repeatComponentInstance?.current) {\n // add instance APIs as callbacks <setRecordCount> for push communication from Nebula to Client\n instance.apiContext.addCallbacks({\n ...repeatComponentInstance.current,\n forceRefresh: instance.getView().type.forceRefresh\n });\n }\n\n instance.apiContext.setRsID?.(instance.getView().rsID);\n\n instance.rsCoreApi.notifyViewEvent().mount();\n return () => {\n instance.rsCoreApi.notifyViewEvent().unmount();\n // Marking it as ts-ignore. Making these objects take null will increase conditional blocks in code.\n // @ts-ignore\n instance.rsCoreApi = null;\n // @ts-ignore\n instance.getView = null;\n };\n }, [instance]);\n\n useEffect(() => {\n instance.rsCoreApi.notifyViewEvent().afterRender();\n }, [instance, instance.getView().state]);\n\n return instance;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"useRepeat.js","sourceRoot":"","sources":["../../../Core/Hooks/useRepeat.ts"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useCallback, useRef, useImperativeHandle, type RefObject } from 'react';\nimport { v4 as uuidV4 } from 'uuid';\n\nimport {\n initializeRsCore,\n rowDragDropColumnMeta,\n sanitizeConditionalStyleFormats,\n type RsCoreTypes\n} from 'pega-repeating-structures-core';\n\nimport { deepEqual, isRowReorderFieldEnabled } from '../Utils';\nimport type { RepeatingStructuresProps } from '../../types/RepeatingStructuresBoot.types';\n\nimport useThunkReducer from './useThunkReducer';\nimport useTranslate from './useTranslate';\n\n/**\n * Represents the instance of a repeating structure, containing methods and properties\n * to interact with it.\n */\nexport interface Instance {\n /** A unique identifier for the repeating structure instance. */\n rsID: string;\n /** The API context for interacting with the repeating structure. See {@link RsCoreTypes.ApiContext} */\n apiContext: RsCoreTypes.ApiContext;\n /** The core API for managing the repeating structure's state and behavior. See {@link RsCoreTypes.RsCore}. */\n rsCoreApi: RsCoreTypes.RsCore;\n /** A method to retrieve the current view of the repeating structure. See {@link RsCoreTypes.RsCore.getView} */\n getView: RsCoreTypes.RsCore['getView'];\n /**\n * @deprecated This set of methods is deprecated and will be removed in future versions.\n * Use methods exposed using repeatComponentInstance instead.\n *\n * A set of APIs to interact with the repeating structure. See {@link RsCoreTypes.RsApi}.\n * */\n api: Pick<RsCoreTypes.RsApi, 'dispatchAction' | 'setRecordCount'>;\n}\n\nfunction getRsCoreApi(instance: Instance, opt: RsCoreTypes.RsCoreInitArgs) {\n if (instance.rsCoreApi) return instance.rsCoreApi;\n return initializeRsCore(opt);\n}\n\n/**\n * A custom React hook to manage the lifecycle of repeating structures using `RsCore` library.\n * It provides an RsCoreTypes.RsApi for interacting with the view.\n * Provide additional callbacks to API Context via `addCallbacks` method.\n *\n * @param props - RepeatingStructuresProps required to initialize and manage the repeating structures.\n * @see {@link RepeatingStructuresProps}\n * @returns A singleton instance object that contains methods to interact with repeating structure.\n * @see {@link Instance}\n */\nexport default function useRepeat({\n meta,\n apiContext,\n presets = [],\n persistedInfo,\n onRowClickAction,\n renderFactory,\n renderFormatterTypeMap,\n formatters,\n onViewReady,\n mode,\n toolBarOptions,\n styleFormats,\n repeatComponentInstance\n}: RepeatingStructuresProps & { repeatComponentInstance: RefObject<RsCoreTypes.RsApi> }): Instance {\n // Create the repeat instance\n const instance: Instance = useRef<Instance>({ rsID: uuidV4() } as Instance).current;\n\n // Normalize metadata everytime as you might have added custom column.\n // TODO: refactor this to normalizeMeta when required.\n\n const [, dispatch] = useThunkReducer();\n // FIXME: remove renderFactory from RsApi params\n\n type RsCoreTranslationKeys = keyof NonNullable<RsCoreTypes.RsCoreInitArgs['translations']>;\n const rsCoreTranslationKeys: RsCoreTranslationKeys[] = [\n 'created_view',\n 'created_view_with_default',\n 'deleted_view',\n 'saved_changes',\n 'saved_changes_with_default',\n 'view_marked_app_default',\n 'view_marked_default',\n 'view_navigation_instructions',\n 'Actions',\n 'Select',\n 'Reorder',\n 'Error',\n 'required'\n ];\n\n const [translate] = useTranslate();\n const rsCoreTranslationValues = translate(rsCoreTranslationKeys);\n const rsCoreTranslations = Object.fromEntries(\n rsCoreTranslationKeys.map((key, index) => [key, rsCoreTranslationValues[index]])\n );\n\n Object.assign(instance, {\n apiContext,\n rsCoreApi: getRsCoreApi(instance, {\n formatters,\n renderFormatterTypeMap,\n toolBarOptions,\n meta,\n onRowClickAction,\n apiContext,\n presets,\n persistedInfo,\n dispatch,\n mode,\n renderFactory,\n styleFormats,\n translations: rsCoreTranslations\n })\n });\n\n Object.assign(instance, {\n getView: instance.rsCoreApi.getView\n });\n\n // TODO: enrich this to take meta as well\n instance.rsCoreApi.updateInitArgs({ apiContext, styleFormats });\n\n instance.api = {\n ...(instance.api || {}),\n setRecordCount: instance.getView().type.setRecordCount,\n dispatchAction: instance.getView().type.dispatchAction\n };\n\n /** Compare new payload with current state to avoid unnecessary rerenders */\n // TODO: create separate api for setting visibility state for OOTB columns.\n const setHiddenColumns = useCallback(\n (hiddenColumns: string[], ootbColumns?: { dragHandle?: boolean }) => {\n if (\n hiddenColumns &&\n !ootbColumns &&\n hiddenColumns.length === instance.getView().state.hiddenColumns?.length &&\n hiddenColumns.every(id => instance.getView().state.hiddenColumns?.includes(id))\n ) {\n return;\n }\n if (ootbColumns?.dragHandle && !isRowReorderFieldEnabled(instance.getView().meta)) {\n delete ootbColumns.dragHandle;\n }\n instance.getView().type.applyHiddenColumns(hiddenColumns, ootbColumns);\n },\n [instance]\n );\n\n const setColumnOrder: RsCoreTypes.RsApi['setColumnOrder'] = useCallback(\n (colOrder: string[]) => {\n if (colOrder && deepEqual(colOrder, instance.getView().state.colOrder)) {\n return;\n }\n instance.getView().type.applyOrder(colOrder);\n },\n [instance]\n );\n\n const setAggregations: RsCoreTypes.RsApi['setAggregations'] = useCallback(\n (agg: RsCoreTypes.State['aggregationInfo']) => {\n if (agg && deepEqual(agg, instance.getView().state.aggregationInfo)) {\n return;\n }\n if (agg) instance.getView().type.applyAggregations(agg);\n },\n [instance]\n );\n\n const setFilter: RsCoreTypes.RsApi['setFilter'] = useCallback(\n newFilter => {\n if (newFilter && deepEqual(newFilter, instance.getView().state.filterExpression)) {\n return;\n }\n instance.getView().type.applyFilter({ filterExp: newFilter });\n },\n [instance]\n );\n\n const setAliases: RsCoreTypes.RsApi['setAliases'] = useCallback(\n aliases => {\n if (!aliases) {\n return;\n }\n instance.getView().type.applyAliases({ aliases });\n },\n [instance]\n );\n\n const setSorting: RsCoreTypes.RsApi['setSorting'] = useCallback(\n sortingOrder => {\n if (sortingOrder && deepEqual(sortingOrder, instance.getView().state.sortingOrder)) {\n return;\n }\n instance.getView().type.applySorting(sortingOrder);\n },\n [instance]\n );\n\n const setGrouping: RsCoreTypes.RsApi['setGrouping'] = useCallback(\n (groups: RsCoreTypes.Group[]) => {\n if (groups && deepEqual(groups, instance.getView().state.groups)) {\n return;\n }\n instance.getView().type.applyGrouping(groups);\n },\n [instance]\n );\n\n const setRowReorderFieldVisibility: RsCoreTypes.RsApi['setRowReorderFieldVisibility'] =\n useCallback(\n visibility => {\n if (isRowReorderFieldEnabled(instance.getView().meta)) {\n instance\n .getView()\n .type.updateColumnsVisibility({ [rowDragDropColumnMeta.field.id]: visibility });\n }\n },\n [instance]\n );\n\n const updateColumnsVisibility: RsCoreTypes.RsApi['updateColumnsVisibility'] = useCallback(\n columns => {\n const fieldDefs = instance.getView().meta.fieldDefs.map(field => field.id);\n const columnsToBeToggled: Record<string, boolean> = {};\n Object.keys(columns).forEach(column => {\n if (fieldDefs.includes(column)) {\n columnsToBeToggled[column] = columns[column];\n }\n });\n if (Object.keys(columnsToBeToggled).length) {\n instance.getView().type.updateColumnsVisibility(columnsToBeToggled);\n }\n },\n [instance]\n );\n\n const getActiveViewInfo = useCallback(() => {\n const {\n state: { personalization }\n } = instance.getView();\n\n const activePersonalization = personalization?.active;\n const activePersonalizationName = activePersonalization\n ? personalization?.allPersonalizations?.[activePersonalization]?.name\n : undefined;\n return {\n id: activePersonalization,\n name: activePersonalizationName,\n isDirty: !!personalization?.dirty\n };\n }, [instance]);\n\n const setConditionalStyleFormats: RsCoreTypes.RsApi['setConditionalStyleFormats'] = useCallback(\n conditionalStyleFormats => {\n const {\n meta: { fieldDefs }\n } = instance.getView();\n\n if (\n conditionalStyleFormats &&\n deepEqual(conditionalStyleFormats, instance.getView().state.conditionalStyleFormats)\n ) {\n return;\n }\n\n const sanitizedFormats = sanitizeConditionalStyleFormats(conditionalStyleFormats, fieldDefs);\n instance.getView().type.setConditionalStyleFormats(sanitizedFormats);\n },\n []\n );\n\n const setRenderFormatter: RsCoreTypes.RsApi['setRenderFormatter'] = useCallback(\n (columnId, formatter) => {\n instance\n .getView()\n .columns?.find(c => c.field.id === columnId)\n ?.applyFormatter(formatter);\n },\n [instance]\n );\n\n const removeRenderFormatter: RsCoreTypes.RsApi['removeRenderFormatter'] = useCallback(\n columnId => {\n instance\n .getView()\n .columns?.find(c => c.field.id === columnId)\n ?.removeFormatter();\n },\n [instance]\n );\n\n // TODO: Move the RsCoreTypes.RsApi's to separate file, maybe useRsApi.ts\n // TODO:\n useImperativeHandle(\n repeatComponentInstance,\n () => ({\n refreshView: instance.getView().type.forceRefresh,\n setRecordCount: instance.getView().type.setRecordCount,\n dispatchAction: instance.getView().type.dispatchAction,\n getActiveViewInfo,\n /** Only expose below APIs when those features are enabled */\n setHiddenColumns: instance.getView().meta.toggleFieldVisibility\n ? setHiddenColumns\n : undefined,\n setColumnOrder: instance.getView().meta.reorderFields ? setColumnOrder : undefined,\n setFilter,\n setSorting,\n setAliases,\n setGrouping: instance.getView().meta.grouping ? setGrouping : undefined,\n setAggregations,\n setRenderFormatter,\n removeRenderFormatter,\n setRowReorderFieldVisibility,\n updateColumnsVisibility,\n setConditionalStyleFormats\n }),\n\n []\n );\n\n // When ever component mounts, do this after first render of component\n useEffect(() => {\n instance.getView().type.doBootstrap();\n if (onViewReady) onViewReady(instance.api);\n if (instance.apiContext.addCallbacks && repeatComponentInstance?.current) {\n // add instance APIs as callbacks <setRecordCount> for push communication from Nebula to Client\n instance.apiContext.addCallbacks({\n ...repeatComponentInstance.current,\n forceRefresh: instance.getView().type.forceRefresh\n });\n }\n\n instance.apiContext.setRsID?.(instance.getView().rsID);\n\n instance.rsCoreApi.notifyViewEvent().mount();\n return () => {\n instance.rsCoreApi.notifyViewEvent().unmount();\n // Marking it as ts-ignore. Making these objects take null will increase conditional blocks in code.\n // @ts-ignore\n instance.rsCoreApi = null;\n // @ts-ignore\n instance.getView = null;\n };\n }, [instance]);\n\n useEffect(() => {\n instance.rsCoreApi.notifyViewEvent().afterRender();\n }, [instance, instance.getView().state]);\n\n return instance;\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ReactNode } from 'react';
|
|
1
|
+
import type { ReactNode, Ref } from 'react';
|
|
2
2
|
import type { RsCoreTypes } from 'pega-repeating-structures-core';
|
|
3
3
|
import type { FormControlProps, IconName, OmitStrict } from '@pega/cosmos-react-core';
|
|
4
4
|
import type { RsApi } from 'pega-repeating-structures-core/lib/types/ApiContext.types';
|
|
@@ -51,7 +51,17 @@ type ViewRendererProps = ViewContext & {
|
|
|
51
51
|
/** A unique id to identify the current repeating structure. */
|
|
52
52
|
rsID: RsCoreTypes.View['rsID'];
|
|
53
53
|
} & ExternalStateInfo & PropsFromRenderFactory;
|
|
54
|
-
type
|
|
54
|
+
type FormatSettingsRendererProps = {
|
|
55
|
+
ref: Ref<{
|
|
56
|
+
validate: () => boolean;
|
|
57
|
+
}>;
|
|
58
|
+
formatting: {
|
|
59
|
+
type: string;
|
|
60
|
+
config: unknown;
|
|
61
|
+
};
|
|
62
|
+
onChange: (config: unknown) => void;
|
|
63
|
+
};
|
|
64
|
+
type RendererProps = CellRendererProps | ViewRendererProps | FormatSettingsRendererProps;
|
|
55
65
|
export interface RsRenderFactoryReturnType extends OmitStrict<RsCoreTypes.RenderFactoryWithProps, 'component'> {
|
|
56
66
|
/**
|
|
57
67
|
* A function that accepts component props and returns a React node to be rendered as a cell within repeating structures.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RepeatingStructuresBoot.types.d.ts","sourceRoot":"","sources":["../../types/RepeatingStructuresBoot.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"RepeatingStructuresBoot.types.d.ts","sourceRoot":"","sources":["../../types/RepeatingStructuresBoot.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RepeatingStructuresBoot.types.js","sourceRoot":"","sources":["../../types/RepeatingStructuresBoot.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { ReactNode } from 'react';\n\nimport type { RsCoreTypes } from 'pega-repeating-structures-core';\nimport type { FormControlProps, IconName, OmitStrict } from '@pega/cosmos-react-core';\nimport type { RsApi } from 'pega-repeating-structures-core/lib/types/ApiContext.types';\nimport type RsCoreBootArgs from 'pega-repeating-structures-core/lib/types/RsCoreBootArgs.types';\n\ntype PropsFromRenderFactory = Pick<RsCoreTypes.RenderFactoryWithProps, 'props'>;\ntype ColumnContext = ReturnType<RsCoreTypes.Column['getContext']>;\ntype ViewContext = ReturnType<RsCoreTypes.View['getContext']>;\n\n// Contract for Cell renderer props.\n/**\n * A set of props that will be exposed to Cell renderers.\n *\n */\ntype CellRendererProps = {\n /** Reference to the cell body element */\n getElement: () => HTMLElement;\n /** Styles applicable to current cell. This should be applied to cell renderers.\n * This is method is only available for data cells.\n */\n getStyles?: () => {\n /**\n * Foreground color applicable to the cell content, otherwise undefined.\n *\n * Note: This will be applied by default to `cell container`(having class `cell-content`) of repeating structures.\n *\n * Supports standard CSS color formats like below:\n * - Named colors: `'red'`, `'blue'`, `'green'`, `'yellow'`, `'black'`, `'white'`, etc.\n * - Hex codes: `'#RRGGBB'`, `'#RGB'`, `'#RRGGBBAA'`, `'#RGBA'`\n * - RGB: `'rgb(255, 0, 0)'`\n * - RGBA: `'rgba(255, 0, 0, 0.5)'`\n *\n * Optional\n */\n foregroundColor?: string;\n };\n /** Formatted value of the cell. */\n value: ReturnType<ColumnContext['getFormattedValue']>;\n /** Tooltip value of the cell. */\n title: ReturnType<ColumnContext['getToolTipValue']>;\n} & ColumnContext &\n PropsFromRenderFactory;\n\n// Contract for View renderer props.\ntype ExternalStateInfo = {\n /** External state key and its persisted value in the RS state. Supported external state keys are:\n * - Value of {@link RsCoreTypes.Meta.externalFilters externalFilters}\n */\n [externalStateKey: string]: NonNullable<RsCoreTypes.State['externalState']>[''];\n};\n\n/**\n * A set of props that will be exposed to View renderer. Supported view renderers are:\n * - Renderer for {@link RsCoreTypes.Meta.externalFilters externalFilters}\n */\ntype ViewRendererProps = ViewContext & {\n /** A unique id to identify the current repeating structure. */\n rsID: RsCoreTypes.View['rsID'];\n} & ExternalStateInfo &\n PropsFromRenderFactory;\n\ntype RendererProps = CellRendererProps | ViewRendererProps;\n\n// RsCore exposes generic function types for `component`.\n// For RepeatingStructures, these types are overridden to include additional renderer props, and the return type is specified as ReactNode.\nexport interface RsRenderFactoryReturnType\n extends OmitStrict<RsCoreTypes.RenderFactoryWithProps, 'component'> {\n /**\n * A function that accepts component props and returns a React node to be rendered as a cell within repeating structures.\n * @param props - The props passed by repeating structures and {@link PropsFromRenderFactory static props } from the render factory.\n * @returns The component function or null or undefined. If component definition is null/undefined then cell will be rendered directly with value derived for the cell or the formatted value(if {@link RsCoreTypes.RsCoreInitArgs.formatters formatters} are provided for that column)\n */\n component: ((props: RendererProps) => ReactNode) | null | undefined;\n}\n\ntype RsCoreStyleFormat = NonNullable<RsCoreTypes.RsCoreInitArgs['styleFormats']>[number];\ninterface RsStyleFormatConfig extends OmitStrict<RsCoreStyleFormat['config'], 'icon'> {\n /**\n * An icon used as a visual indicator of the applied format.\n * Optional.\n */\n icon?: {\n /** Icon from 'budicon' set of cosmos. */\n name: IconName;\n /** The color of icon. */\n color: string;\n };\n}\n\n// RS can only accept icons that are supported in cosmos, while RsCore accepts icon generically, therefore overriding the interface.\nexport interface RsStyleFormat extends OmitStrict<RsCoreStyleFormat, 'config'> {\n config: RsStyleFormatConfig;\n}\n\nexport type RepeatingStructuresProps = {\n /** An initial state that can be provided to repeating structure to load repeating structure instance with that state.\\\n * **Note**: If {@link RSTypes.Meta.personalization personalization} in meta is set to true then persistedInfo will be ignored. */\n persistedInfo?: RsCoreTypes.PersonalizedState;\n\n /** A meta data object to provide definition of repeating structure */\n meta: RsCoreTypes.Meta;\n\n /** A set of api's provided to repeating structure to establish communication b/w repeating structure and its consumer (e.g. providing data to repeating structure) */\n apiContext: RsCoreTypes.ApiContext;\n\n /** To provide multiple variants of metadata of repeating structures. If multiple variations is provided make sure the first variation should be part of {@link RepeatingStructuresProps.meta meta} key and rest all should be fed to presets. */\n presets?: RsCoreTypes.RsCoreInitArgs['presets'];\n\n /** A debug mode will print logs in console for the action dispatched by RsCore and the state derived after consumption of it. */\n mode?: 'info' | 'debug' | 'normal';\n\n errors?: RsCoreTypes.Errors;\n\n /** This should be a factory function that returns component or component definition for specified type.\n * @param type -\n * - For cell renderer - Value of {@link RsCoreTypes.FieldDef.cellRenderer cellRenderer}(if added in fieldDefs of that column).\n * - For view renderer - Value of supported external view renderers in `Meta`. Supported view renderer is {@link RsCoreTypes.Meta.externalFilters externalFilters}.\n *\n * @param field - Metadata which contains info configured for that column. Applicable only in case of `cell renderer`.\n * @returns It should return a component definition (or an object that contains component definition).\n * This component definition will be used by RepeatingStructures to render a cell with the component provided by renderFactory.\n * If component definition is not provided from render factory or renderFactory is not provided to Repeating structures then cell will be rendered directly with value derived for the cell or the formatted value(if {@link RsCoreTypes.RsCoreInitArgs.formatters formatters} are provided for that column)\n */\n renderFactory?: (\n type: string,\n field?: RsCoreTypes.FieldDef\n ) => Pick<RsRenderFactoryReturnType, 'component'> | RsRenderFactoryReturnType;\n\n /** A map of formatters that will be displayed to consumer to format a fieldDef in repeating structure */\n renderFormatterTypeMap?: RsCoreTypes.RsCoreInitArgs['renderFormatterTypeMap'];\n\n /**\n * This function acts as a callback that is invoked when the view is ready\n * @param utilityCallbacks - Few utility callbacks to interact with Repeating structures.\n * @returns {void} void\n */\n onViewReady?: (utilityCallbacks: Pick<RsApi, 'setRecordCount' | 'dispatchAction'>) => void;\n\n /** An object of formatter functions which formats the raw value. */\n formatters?: RsCoreTypes.RsCoreInitArgs['formatters'];\n\n /** A set of style formatters to be applied on FieldDef. E.g. background, icon.\n *\n * **Note**: Style formats are only supported for `Table` template.\n */\n styleFormats?: RsStyleFormat[];\n\n /** A list of all the toolbar actions to be displayed at the top of a repeating structure */\n toolBarOptions?: RsCoreTypes.RsCoreInitArgs['toolBarOptions'];\n\n /**\n * This function is provided as ui props in row generator to attach it as click handler to a row in repeating structure\n * @param {RsCoreTypes.RowData} data - current row data\n * @returns {void} void\n */\n onRowClickAction?: RsCoreTypes.RsCoreInitArgs['onRowClickAction'];\n\n /** Pass a heading and content to show additional information in the toolbar */\n additionalInfo?: FormControlProps['additionalInfo'];\n\n /* Used to provide localized strings, typically overriding default translations */\n translations?: RsCoreBootArgs['translations'];\n};\n"]}
|
|
1
|
+
{"version":3,"file":"RepeatingStructuresBoot.types.js","sourceRoot":"","sources":["../../types/RepeatingStructuresBoot.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { ReactNode, Ref } from 'react';\n\nimport type { RsCoreTypes } from 'pega-repeating-structures-core';\nimport type { FormControlProps, IconName, OmitStrict } from '@pega/cosmos-react-core';\nimport type { RsApi } from 'pega-repeating-structures-core/lib/types/ApiContext.types';\nimport type RsCoreBootArgs from 'pega-repeating-structures-core/lib/types/RsCoreBootArgs.types';\n\ntype PropsFromRenderFactory = Pick<RsCoreTypes.RenderFactoryWithProps, 'props'>;\ntype ColumnContext = ReturnType<RsCoreTypes.Column['getContext']>;\ntype ViewContext = ReturnType<RsCoreTypes.View['getContext']>;\n\n// Contract for Cell renderer props.\n/**\n * A set of props that will be exposed to Cell renderers.\n *\n */\ntype CellRendererProps = {\n /** Reference to the cell body element */\n getElement: () => HTMLElement;\n /** Styles applicable to current cell. This should be applied to cell renderers.\n * This is method is only available for data cells.\n */\n getStyles?: () => {\n /**\n * Foreground color applicable to the cell content, otherwise undefined.\n *\n * Note: This will be applied by default to `cell container`(having class `cell-content`) of repeating structures.\n *\n * Supports standard CSS color formats like below:\n * - Named colors: `'red'`, `'blue'`, `'green'`, `'yellow'`, `'black'`, `'white'`, etc.\n * - Hex codes: `'#RRGGBB'`, `'#RGB'`, `'#RRGGBBAA'`, `'#RGBA'`\n * - RGB: `'rgb(255, 0, 0)'`\n * - RGBA: `'rgba(255, 0, 0, 0.5)'`\n *\n * Optional\n */\n foregroundColor?: string;\n };\n /** Formatted value of the cell. */\n value: ReturnType<ColumnContext['getFormattedValue']>;\n /** Tooltip value of the cell. */\n title: ReturnType<ColumnContext['getToolTipValue']>;\n} & ColumnContext &\n PropsFromRenderFactory;\n\n// Contract for View renderer props.\ntype ExternalStateInfo = {\n /** External state key and its persisted value in the RS state. Supported external state keys are:\n * - Value of {@link RsCoreTypes.Meta.externalFilters externalFilters}\n */\n [externalStateKey: string]: NonNullable<RsCoreTypes.State['externalState']>[''];\n};\n\n/**\n * A set of props that will be exposed to View renderer. Supported view renderers are:\n * - Renderer for {@link RsCoreTypes.Meta.externalFilters externalFilters}\n */\ntype ViewRendererProps = ViewContext & {\n /** A unique id to identify the current repeating structure. */\n rsID: RsCoreTypes.View['rsID'];\n} & ExternalStateInfo &\n PropsFromRenderFactory;\n\ntype FormatSettingsRendererProps = {\n ref: Ref<{ validate: () => boolean }>;\n formatting: { type: string; config: unknown };\n onChange: (config: unknown) => void;\n};\n\ntype RendererProps = CellRendererProps | ViewRendererProps | FormatSettingsRendererProps;\n\n// RsCore exposes generic function types for `component`.\n// For RepeatingStructures, these types are overridden to include additional renderer props, and the return type is specified as ReactNode.\nexport interface RsRenderFactoryReturnType\n extends OmitStrict<RsCoreTypes.RenderFactoryWithProps, 'component'> {\n /**\n * A function that accepts component props and returns a React node to be rendered as a cell within repeating structures.\n * @param props - The props passed by repeating structures and {@link PropsFromRenderFactory static props } from the render factory.\n * @returns The component function or null or undefined. If component definition is null/undefined then cell will be rendered directly with value derived for the cell or the formatted value(if {@link RsCoreTypes.RsCoreInitArgs.formatters formatters} are provided for that column)\n */\n component: ((props: RendererProps) => ReactNode) | null | undefined;\n}\n\ntype RsCoreStyleFormat = NonNullable<RsCoreTypes.RsCoreInitArgs['styleFormats']>[number];\ninterface RsStyleFormatConfig extends OmitStrict<RsCoreStyleFormat['config'], 'icon'> {\n /**\n * An icon used as a visual indicator of the applied format.\n * Optional.\n */\n icon?: {\n /** Icon from 'budicon' set of cosmos. */\n name: IconName;\n /** The color of icon. */\n color: string;\n };\n}\n\n// RS can only accept icons that are supported in cosmos, while RsCore accepts icon generically, therefore overriding the interface.\nexport interface RsStyleFormat extends OmitStrict<RsCoreStyleFormat, 'config'> {\n config: RsStyleFormatConfig;\n}\n\nexport type RepeatingStructuresProps = {\n /** An initial state that can be provided to repeating structure to load repeating structure instance with that state.\\\n * **Note**: If {@link RSTypes.Meta.personalization personalization} in meta is set to true then persistedInfo will be ignored. */\n persistedInfo?: RsCoreTypes.PersonalizedState;\n\n /** A meta data object to provide definition of repeating structure */\n meta: RsCoreTypes.Meta;\n\n /** A set of api's provided to repeating structure to establish communication b/w repeating structure and its consumer (e.g. providing data to repeating structure) */\n apiContext: RsCoreTypes.ApiContext;\n\n /** To provide multiple variants of metadata of repeating structures. If multiple variations is provided make sure the first variation should be part of {@link RepeatingStructuresProps.meta meta} key and rest all should be fed to presets. */\n presets?: RsCoreTypes.RsCoreInitArgs['presets'];\n\n /** A debug mode will print logs in console for the action dispatched by RsCore and the state derived after consumption of it. */\n mode?: 'info' | 'debug' | 'normal';\n\n errors?: RsCoreTypes.Errors;\n\n /** This should be a factory function that returns component or component definition for specified type.\n * @param type -\n * - For cell renderer - Value of {@link RsCoreTypes.FieldDef.cellRenderer cellRenderer}(if added in fieldDefs of that column).\n * - For view renderer - Value of supported external view renderers in `Meta`. Supported view renderer is {@link RsCoreTypes.Meta.externalFilters externalFilters}.\n *\n * @param field - Metadata which contains info configured for that column. Applicable only in case of `cell renderer`.\n * @returns It should return a component definition (or an object that contains component definition).\n * This component definition will be used by RepeatingStructures to render a cell with the component provided by renderFactory.\n * If component definition is not provided from render factory or renderFactory is not provided to Repeating structures then cell will be rendered directly with value derived for the cell or the formatted value(if {@link RsCoreTypes.RsCoreInitArgs.formatters formatters} are provided for that column)\n */\n renderFactory?: (\n type: string,\n field?: RsCoreTypes.FieldDef\n ) => Pick<RsRenderFactoryReturnType, 'component'> | RsRenderFactoryReturnType;\n\n /** A map of formatters that will be displayed to consumer to format a fieldDef in repeating structure */\n renderFormatterTypeMap?: RsCoreTypes.RsCoreInitArgs['renderFormatterTypeMap'];\n\n /**\n * This function acts as a callback that is invoked when the view is ready\n * @param utilityCallbacks - Few utility callbacks to interact with Repeating structures.\n * @returns {void} void\n */\n onViewReady?: (utilityCallbacks: Pick<RsApi, 'setRecordCount' | 'dispatchAction'>) => void;\n\n /** An object of formatter functions which formats the raw value. */\n formatters?: RsCoreTypes.RsCoreInitArgs['formatters'];\n\n /** A set of style formatters to be applied on FieldDef. E.g. background, icon.\n *\n * **Note**: Style formats are only supported for `Table` template.\n */\n styleFormats?: RsStyleFormat[];\n\n /** A list of all the toolbar actions to be displayed at the top of a repeating structure */\n toolBarOptions?: RsCoreTypes.RsCoreInitArgs['toolBarOptions'];\n\n /**\n * This function is provided as ui props in row generator to attach it as click handler to a row in repeating structure\n * @param {RsCoreTypes.RowData} data - current row data\n * @returns {void} void\n */\n onRowClickAction?: RsCoreTypes.RsCoreInitArgs['onRowClickAction'];\n\n /** Pass a heading and content to show additional information in the toolbar */\n additionalInfo?: FormControlProps['additionalInfo'];\n\n /* Used to provide localized strings, typically overriding default translations */\n translations?: RsCoreBootArgs['translations'];\n};\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pega/lists-react",
|
|
3
|
-
"version": "9.0.0-build.20.
|
|
3
|
+
"version": "9.0.0-build.20.2",
|
|
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,9 +14,9 @@
|
|
|
14
14
|
"build": "tsc -b tsconfig.build.json"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@pega/cosmos-react-condition-builder": "9.0.0-build.20.
|
|
18
|
-
"@pega/cosmos-react-core": "9.0.0-build.20.
|
|
19
|
-
"@pega/cosmos-react-rte": "9.0.0-build.20.
|
|
17
|
+
"@pega/cosmos-react-condition-builder": "9.0.0-build.20.2",
|
|
18
|
+
"@pega/cosmos-react-core": "9.0.0-build.20.2",
|
|
19
|
+
"@pega/cosmos-react-rte": "9.0.0-build.20.2",
|
|
20
20
|
"@types/lodash-es": "^4.17.12",
|
|
21
21
|
"@types/react": "^17.0.62 || ^18.3.3",
|
|
22
22
|
"@types/react-dom": "^17.0.20 || ^18.3.0",
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
"dayjs": "^1.11.13",
|
|
25
25
|
"fast-deep-equal": "^3.1.3",
|
|
26
26
|
"lodash-es": "^4.17.23",
|
|
27
|
-
"pega-repeating-structures-core": "npm:@pega/lists-core@9.0.0-build.20.
|
|
28
|
-
"pega-ui-list-data-apis": "npm:@pega/lists-core-utils@9.0.0-build.20.
|
|
27
|
+
"pega-repeating-structures-core": "npm:@pega/lists-core@9.0.0-build.20.2",
|
|
28
|
+
"pega-ui-list-data-apis": "npm:@pega/lists-core-utils@9.0.0-build.20.2",
|
|
29
29
|
"polished": "^4.1.0",
|
|
30
30
|
"prop-types": "^15.8.1",
|
|
31
31
|
"react": "^17.0.0 || ^18.0.0",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"@testing-library/react": "^16.0.0",
|
|
45
45
|
"@testing-library/user-event": "^14.6.1",
|
|
46
46
|
"jest-axe": "^8.0.0",
|
|
47
|
-
"srs-utils": "9.0.0-build.20.
|
|
47
|
+
"srs-utils": "9.0.0-build.20.2",
|
|
48
48
|
"typescript": "~5.9.3"
|
|
49
49
|
}
|
|
50
50
|
}
|