@pega/lists-core 9.0.0-build.15.1 → 9.0.0-build.16.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnGenerator.js","sourceRoot":"","sources":["../../../../src/core/generators/ColumnGenerator.ts"],"names":[],"mappings":"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","sourcesContent":["import get from 'lodash.get';\n\nimport type { ExcludeStrict, OmitStrict } from '@pega/cosmos-react-core';\nimport type { Condition } from '@pega/cosmos-react-condition-builder';\n\nimport type {\n ConditionalStyleFormat,\n FieldDef,\n Meta,\n StyleFormat\n} from '../../../types/Meta.types';\nimport type { State, Sort, AggregationType } from '../../../types/State.types';\nimport { compareObjects, evaluateStyleFormatForCell } from '../utils/util';\nimport * as actions from '../actions/actions';\nimport { RICH_TEXT } from '../constants';\nimport type RsProps from '../RsProps';\nimport type RsInternal from '../RsInternal';\nimport type RsStore from '../RsStore';\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport type { ApiContext } from '../../../types/ApiContext.types';\nimport type StateResolver from '../StateResolver';\n\nimport type Row from './RowGenerator';\nimport type {\n ColumnConfig,\n ColumnResizerProps,\n ColumnStyle,\n SortProperties,\n ColumnContext,\n ColumnRenderingEngineProps\n} from './ColumnGenerator.types';\nimport type { RowContext, RowData } from './RowGenerator.types';\nimport type { FormatterFunction } from './ViewGenerator.types';\n\nexport default class Column {\n /** Reference to repeating structure props. */\n #rsProps: RsProps;\n /** Reference to repeating structure store. */\n #rsStore: RsStore;\n /** Reference to rs internal object. */\n #rsInternal: RsInternal;\n /** */\n #dispatch: StateResolver['dispatch'];\n /** The common CSS styles for a column like width, order etc. */\n style = {} as ColumnStyle;\n /** Indicates if the column is grouped.\n * @default false\n */\n grouped = false;\n /** Indicates if the column is frozen.\n * @default false\n */\n frozen = false;\n /** Indicates if any filter is appplied to the column.\n * @default false\n */\n filtered = false;\n /** Indicates if any sorting is applied to the column.\n * @default false\n */\n sorted = false;\n /** Indicates the sorting sequence of the column if it is {@link sorted}. */\n sortSequence?: SortProperties['sortSequence'];\n /** Indicates the sorting order of the column if it is {@link sorted}. */\n sortOrder?: SortProperties['sortOrder'];\n /** Indicates if the column is lastFrozen column if it is {@link frozen}.\n * @default false\n */\n lastFrozen = false;\n /** Indicates if aggregation is applied on the column.\n * @default false\n */\n aggregated = false;\n /** Aggregated value for the column for an {@link aggregationType} if {@link aggregated aggregation} is applied. */\n aggregateValue?: number;\n /** Current aggregation type applied on the column. */\n aggregationType?: AggregationType;\n /** Indicates the current width of the column. */\n currentWidth?: number;\n /** Field meta for this column from {@link Meta.fieldDefs meta fieldDefs}. */\n field: FieldDef;\n /** Indicates if the formatting is allowed on this column.\n * @default true\n */\n formatterAllowed = true;\n /** Indicates the current formatter applied to the column. */\n formatterName?: string;\n /** The formatter function corresponding toe the {@link formatterName}. */\n formatter?: FormatterFunction;\n /** The name of the renderer for this cell. */\n cellRenderer?: string;\n /** Indicates if the column is hidden.\n * @default false\n */\n hidden = false;\n /** Label for the column that can be displayed to end user. */\n label?: string;\n /** Categorized label for the column if the column has categories derived from {@link FieldDef.category}. */\n categorizedHeaderLabel?: string;\n /** Indicates if the column is first visual column for the end user.\n * @default false\n */\n isFirstVisualColumn = false;\n /** Indicates if the column is first data column, excluding any action column like checkbox, row action, drag drop column.\n * @default false\n */\n isFirstDataColumn = false;\n /** Indicates if the column is last column. */\n isLastColumn = false;\n /** Indicates if the column is a custom column derived from Customize column feature.\n * E.g. column generated by joining 2 columns. */\n isCustomColumn = false;\n /** Visual order of the column with respect to other columns */\n order?: number;\n /** CSS classes for the column.\n * @default empty array.\n */\n classList = [] as string[];\n /** Indicates if the icons should be shown for the column on the header based on {@link FieldDef.type type}. */\n showHeaderIcons = false;\n /** Indicates if the width of the column is changed. */\n isWidthChanged = false;\n /** Indicates if tooltip should be shown for the column in cells. */\n #showToolTip!: boolean;\n /** Indicates the current display mode for hierarchical columns. */\n displayMode?: string | null;\n /** Indicates if the selection column is disabled for selection. */\n disableSelection?: boolean;\n // TODO: Update executionContext type. 'RowContext' | 'ViewContext' | null\n /** The current running execution context i.e. row context for the column in which the column is being rendered. */\n #executionContext: RowContext | null;\n /** The {@link Row row} in which column is being rendered. */\n #pRow: Row | null;\n /** The formatted value for the column. */\n formattedValue: string | null;\n /** Returns the resize events that can be attached to column DOM node. */\n getResizerProps: () => ColumnResizerProps | undefined;\n /** Alias of the column */\n alias?: string;\n /** Indicates a re-render is triggered for the column. */\n refresh?: number;\n /** A factory function provided to RsCore that returns component or component definition for specified type\n * @param type It is equal to value of {@link FieldDef.cellRenderer cellRenderer}(if added in fieldDefs of that column).\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 RsProps.formatters formatters} are provided for that column)\n */\n renderFactory?: RsProps['renderFactory'];\n /** Reference to {@link Column} class construtcor. */\n type?: typeof Column;\n /** Array of conditional style formats applied to this column. */\n conditionalStyleFormats?: OmitStrict<ConditionalStyleFormat, 'fieldName'>[];\n\n /**\n * Creates a new instance of a column within a repeating structure template.\n * @param config It represents few config properties which is used to create column instance.\n * @param rsInternal A reference to rsInternal object.\n */\n constructor(config: ColumnConfig, rsInternal: RsInternal) {\n const {\n aggregateValue,\n aggregationType,\n currentWidth,\n field,\n formatterName,\n formatter,\n cellRenderer,\n label,\n alias,\n categorizedHeaderLabel,\n sortSequence,\n sortOrder,\n order,\n displayMode,\n disableSelection,\n filtered = false,\n formatterAllowed = true,\n hidden = false,\n style = {} as ColumnStyle,\n grouped = false,\n frozen = false,\n lastFrozen = false,\n aggregated = false,\n sorted = false,\n isFirstVisualColumn = false,\n isFirstDataColumn = false,\n isLastColumn = false,\n isCustomColumn = false,\n classList = [],\n showHeaderIcons = false,\n showTooltip = !!(field.showTooltip === undefined ? true : field.showTooltip),\n isWidthChanged = false,\n refresh,\n conditionalStyleFormats\n } = config;\n const { getRsStore, getRsProps, getRsStateResolver } = rsInternal;\n const rsStore = getRsStore();\n const rsProps = getRsProps();\n const { dispatch } = getRsStateResolver();\n this.#rsInternal = rsInternal;\n this.#rsProps = rsProps;\n this.#rsStore = rsStore;\n this.#dispatch = dispatch;\n this.renderFactory = rsProps.renderFactory;\n this.type = this.constructor as typeof Column;\n // Persisted props at column level.\n this.style = style;\n this.grouped = grouped;\n this.frozen = frozen;\n this.filtered = filtered;\n this.sorted = sorted;\n this.sortSequence = sortSequence;\n this.sortOrder = sortOrder;\n this.lastFrozen = lastFrozen;\n this.aggregated = aggregated;\n this.aggregateValue = aggregateValue;\n this.aggregationType = aggregationType;\n this.currentWidth = currentWidth;\n this.field = field;\n this.formatterAllowed = formatterAllowed;\n this.formatterName = formatterName;\n this.formatter = formatter;\n this.cellRenderer = cellRenderer;\n this.hidden = hidden;\n this.label = label;\n this.alias = alias;\n this.refresh = refresh;\n this.categorizedHeaderLabel = categorizedHeaderLabel;\n this.isFirstVisualColumn = isFirstVisualColumn;\n this.isFirstDataColumn = isFirstDataColumn;\n this.isLastColumn = isLastColumn;\n this.isCustomColumn = isCustomColumn;\n this.order = order;\n this.classList = classList;\n this.showHeaderIcons = showHeaderIcons;\n this.showTooltip = showTooltip;\n this.isWidthChanged = isWidthChanged;\n this.displayMode = displayMode;\n this.disableSelection = disableSelection;\n this.conditionalStyleFormats = conditionalStyleFormats;\n\n // this props are only used at time of rendering. values are not persisted across rows / cells\n this.#executionContext = null;\n this.#pRow = null;\n this.formattedValue = null;\n\n /** IMP: For generator methods use traditional function syntax\n * rather than arrow function for memory efficiency\n * and bind 'this' to the methods which requires 'this' context. */\n this.getUniqueValues = this.getUniqueValues.bind(this);\n this.getRenderFormatters = this.getRenderFormatters.bind(this);\n this.getSortProperties = this.getSortProperties.bind(this);\n this.getFilterProperties = this.getFilterProperties.bind(this);\n this.getUIProps = this.getUIProps.bind(this);\n this.getHeaderUIProps = this.getHeaderUIProps.bind(this);\n this.getResizerProps = () => getRsStore().getColumnResizerProps?.();\n this.setProp = this.setProp.bind(this);\n this.getRenderingEngineProps = this.getRenderingEngineProps.bind(this);\n this.renderDisplayMode = this.renderDisplayMode.bind(this);\n\n this.setExecutionContext = this.setExecutionContext.bind(this);\n this.getExecutionContext = this.getExecutionContext.bind(this);\n this.getContext = this.getContext.bind(this);\n this.getExpression = this.getExpression.bind(this);\n // All action APIs supported on instance\n this.applyGrouping = this.applyGrouping.bind(this);\n this.applySorting = this.applySorting.bind(this);\n this.applyToggleVisibility = this.applyToggleVisibility.bind(this);\n this.applyFreeze = this.applyFreeze.bind(this);\n this.applyFreezeAtIndex = this.applyFreezeAtIndex.bind(this);\n this.applyAggregation = this.applyAggregation.bind(this);\n this.applyLabel = this.applyLabel.bind(this);\n this.applyFormatter = this.applyFormatter.bind(this);\n this.removeFormatter = this.removeFormatter.bind(this);\n this.applyMerge = this.applyMerge.bind(this);\n this.deleteCustomColumn = this.deleteCustomColumn.bind(this);\n this.applyColumnAutoSize = this.applyColumnAutoSize.bind(this);\n this.applyDisplay = this.applyDisplay.bind(this);\n this.getCellStyleFormat = this.getCellStyleFormat.bind(this);\n }\n\n /** Reference to current view object. */\n get parent() {\n return this.#rsInternal.getView();\n }\n\n /** The data for all the cells for the column. */\n get data(): RowData[keyof RowData][] {\n return this.parent.data?.map(d => get(d, this.field.name)) || [];\n }\n\n /**\n * It returns the expression for the column if it is a {@link isCustomColumn custom} column.\n */\n getExpression() {\n return this.parent.state?.customFields?.find(c => c.id === this.field.id)?.expression;\n }\n\n // Used by setProp for mutation\n /**\n * Returns the current column config, which can be used to create a new instance of the column.\n * This is typically used with {@link setProp}\n * @returns {ColumnConfig}\n */\n #get(): ColumnConfig {\n return {\n aggregated: this.aggregated,\n grouped: this.grouped,\n aggregateValue: this.aggregateValue,\n aggregationType: this.aggregationType,\n currentWidth: this.currentWidth,\n field: this.field,\n style: this.style,\n frozen: this.frozen,\n lastFrozen: this.lastFrozen,\n formatterAllowed: this.formatterAllowed,\n formatterName: this.formatterName,\n formatter: this.formatter,\n hidden: this.hidden,\n label: this.label,\n categorizedHeaderLabel: this.categorizedHeaderLabel,\n cellRenderer: this.cellRenderer,\n filtered: this.filtered,\n sorted: this.sorted,\n sortSequence: this.sortSequence,\n sortOrder: this.sortOrder,\n isCustomColumn: this.isCustomColumn,\n isFirstVisualColumn: this.isFirstVisualColumn,\n isFirstDataColumn: this.isFirstDataColumn,\n isLastColumn: this.isLastColumn,\n order: this.order,\n classList: this.classList,\n showHeaderIcons: this.showHeaderIcons,\n isWidthChanged: this.isWidthChanged,\n displayMode: this.displayMode,\n disableSelection: this.disableSelection,\n alias: this.alias,\n conditionalStyleFormats: this.conditionalStyleFormats\n };\n }\n\n /**\n * Indicates if tooltip needs to be shown or not for the current column cells.\n */\n get showTooltip() {\n return this.#showToolTip && this.cellRenderer !== RICH_TEXT;\n }\n\n /**\n * Sets the showTooltip flag for the current column.\n */\n set showTooltip(showTooltip) {\n this.#showToolTip = showTooltip;\n }\n\n /**\n * Retrieves the distinct values for this column using {@link ApiContext.fetchUniqueColValues fetchUniqueColValues}.\n */\n async getUniqueValues() {\n return (\n this.#rsProps.apiContext.fetchUniqueColValues?.(\n this.parent.state,\n this.parent.meta,\n this.field.id,\n {\n ...(this.#rsStore.refreshInProgress && {\n invalidateCache: true,\n invalidateCacheToken: this.#rsStore.refreshToken\n })\n }\n ) || Promise.resolve([])\n );\n }\n\n /**\n * Returns the formatters available for the current column from\n * {@link RsProps.renderFormatterTypeMap renderFormatterTypeMap} based on its {@link FieldDef.type type}\n */\n getRenderFormatters() {\n const formattersForType = this.parent.renderFormatterTypeMap?.[this.field.type] || [];\n return this.field.formatters ?? formattersForType;\n }\n\n /** Returns the sorting information for the current column. */\n getSortProperties() {\n return {\n sorted: this.sorted,\n sortSequence: this.sortSequence,\n sortOrder: this.sortOrder\n };\n }\n\n /** Returns the filter information for the current column. */\n getFilterProperties(): { filtered: boolean; filterExpression: Condition | undefined } {\n return {\n filtered: this.filtered,\n filterExpression: this.parent.state.filterExpression\n };\n }\n\n /**\n * Retrieves the UI properties for the column, which can be applied to value cells within this column.\n */\n getUIProps() {\n // FIXME: aria-colIndex is NaN sometimes\n return {\n style: { ...this.style },\n 'data-col-id': this.field.id,\n classList: [...this.classList],\n 'aria-colindex': this.order! + 1,\n role: this.field.isRowHeader ? 'rowheader' : 'gridcell'\n };\n }\n\n /**\n * Retrieves the {@link StyleFormat style format} style format applicable to the cell\n * @returns The style format if applicable, otherwise `undefined`.\n *\n */\n getCellStyleFormat(): StyleFormat | undefined {\n return evaluateStyleFormatForCell(this, this.#rsInternal);\n }\n\n /**\n * Retrieves the UI properties for the column, which can be applied to the header cells of this column.\n */\n getHeaderUIProps() {\n return {\n 'data-col-id': this.field.id,\n draggable: this.field.reorderFields,\n role: 'columnheader',\n ...(this.field.reorderFields && this.parent.type.getFieldReorderProps?.())\n };\n }\n\n // TODO: why return search query in column rendering engine props.\n /**\n * Provides essential information for cell rendering, including the column and row.\n * Additionally, it supplies the current search query.\n */\n getRenderingEngineProps(): ColumnRenderingEngineProps {\n return {\n column: this as Column,\n row: this.#pRow,\n searchKeyword: this.parent?.state?.search?.query\n };\n }\n\n /**\n * Sets the current execution context, {@link RowContext}, when rendering a cell for this column.\n * This dynamic context is updated for each cell in the column as it is rendered.\n */\n setExecutionContext(row: Row | null) {\n this.#pRow = row;\n this.#executionContext = row ? row.getContext() : null;\n }\n\n /**\n * Retrieves the current execution context, i.e., {@link RowContext}, when rendering a cell for this column.\n * This context dynamically updates as each cell in the column is rendered.\n */\n getExecutionContext() {\n return this.#executionContext;\n }\n\n /**\n * Returns the current column {@link ColumnContext context}.\n * @param overriddenExecutionContext - optional param to override the execution context with custom {@link RowContext}.\n * @returns\n *\n * @public\n */\n getContext(overriddenExecutionContext?: RowContext | null): ColumnContext {\n return {\n name: 'column',\n getField: () => this.field,\n getValue: () =>\n get((overriddenExecutionContext || this.#executionContext)?.getValue?.(), this.field?.name),\n getExecutionContext: () => overriddenExecutionContext || this.#executionContext,\n getParentContext: () => this.parent.getContext(),\n getFormatter: () => this.formatter,\n formatterAllowed: () => this.formatterAllowed,\n getCellRenderer: () => this.cellRenderer,\n getFormatterName: () => this.formatterName,\n getFormattedValue: () => this.formattedValue,\n getSearchKeyword: () => this.parent?.state?.searchText,\n showTooltip: () => this.showTooltip,\n getToolTipValue: () => {\n const tooltip = this.field?.tooltip;\n if (!tooltip) {\n return this.formattedValue;\n }\n return (overriddenExecutionContext || this.#executionContext)?.getValue?.()?.[tooltip];\n },\n /** Returns the header label */\n getLabel: () => this.categorizedHeaderLabel,\n setProp: (\n prop:\n | Partial<OmitStrict<Column, 'data' | 'isAutoSizable' | 'parent'>>\n | ExcludeStrict<keyof Column, 'data' | 'isAutoSizable' | 'parent'>,\n value?: Column[keyof Column]\n ) => this.setPropMutatively(prop, value),\n getSortProperties: this.getSortProperties,\n getExpression: this.getExpression,\n getFilterProperties: this.getFilterProperties,\n searchKeyword: this.parent?.state?.searchText,\n getTableMeta: () => this.parent.meta,\n getRsMeta: () => this.parent.meta,\n applyGrouping: this.applyGrouping,\n applySorting: this.applySorting,\n applyToggleVisibility: this.applyToggleVisibility,\n applyFreeze: this.applyFreeze,\n applyAggregation: this.applyAggregation,\n applyLabel: this.applyLabel,\n applyFormatter: this.applyFormatter,\n removeFormatter: this.removeFormatter,\n applyMerge: this.applyMerge,\n deleteCustomColumn: this.deleteCustomColumn,\n getRendererType: () => {\n return this.isCustomColumn ? 'customCellRenderer' : 'cellRenderer';\n },\n selectAllRows: this.parent.type.selectAllRows,\n getDisableSelection: () => this.disableSelection\n };\n }\n\n /**\n * Updates property of the column with value. The updated value will be reflected on next re-render.\n * @param prop Either partial of {@link Column} or individual properties of {@link Column}.\n * @param [value] An optional parameter to provide value for {@link prop} in case prop is not of type {@link ColumnConfig}\n * @returns void\n */\n setPropMutatively(\n prop:\n | Partial<OmitStrict<Column, 'data' | 'isAutoSizable' | 'parent'>>\n | ExcludeStrict<keyof Column, 'data' | 'isAutoSizable' | 'parent'>,\n value?: Column[keyof Column]\n ) {\n if (typeof prop !== 'object' && value) {\n // @ts-expect-error check the index based type error.\n this[prop] = value;\n } else {\n Object.entries(prop).forEach(([k, v]) => {\n // @ts-expect-error Element implicitly has an 'any' type because expression of type 'string' can't be used to index type 'Column'.\n this[k] = v;\n });\n }\n }\n\n // setProp is used to make columns immutables.\n /**\n * Sets a {@link prop property} and its {@link value} in the {@link Column} instance, creating an immutable instance.\n * Always use `setProp` to update properties of {@link Column} to ensure immutability.\n *\n * @param prop Either a partial {@link ColumnConfig} or individual properties of {@link ColumnConfig}.\n * @param [value] Optional value to set for `prop` if `prop` is not of type {@link ColumnConfig}.\n * @returns void\n */\n\n setProp(\n prop: Partial<ColumnConfig> | keyof ColumnConfig,\n value?: ColumnConfig[keyof ColumnConfig]\n ) {\n const { getView } = this.#rsInternal;\n const index = getView().columns!.findIndex(c => c === this);\n let pObject = prop;\n if (typeof prop !== 'object') {\n pObject = { [prop]: value };\n }\n\n // Change object if any value changes actually.\n // @ts-expect-error utils should be converted to TS in order to resolve this.\n if (!compareObjects(this, pObject, Object.keys(pObject)) && index >= 0) {\n const newColumn = new Column(\n {\n ...this.#get(),\n ...(pObject as Partial<ColumnConfig>)\n },\n this.#rsInternal\n );\n const cloned = [...getView().columns!];\n cloned.splice(index, 1, newColumn);\n getView().columns = cloned;\n return newColumn;\n }\n return this;\n }\n\n /**\n * Applies grouping to this column.\n *\n * Dispatches an action that modifies the {@link State.groups groups} in the state.\n */\n applyGrouping() {\n this.#dispatch(actions.actionToggleGrouping(this.field));\n }\n\n /**\n * Applies sorting to this column.\n *\n * Dispatches an action that updates the {@link State.sortingOrder sortingOrder} in the state.\n *\n * @param flushState If true, it will reset the existing {@link State.sortingOrder sortingOrder} state for this column.\n * @param sortOrderId The sort order, either 'asc' or 'desc'.\n */\n // eslint-disable-next-line @typescript-eslint/default-param-last\n applySorting(flushState = false, sortOrderId: Sort['order']) {\n this.#dispatch(\n actions.actionColumnSort({\n id: this.field.id,\n flushState,\n sortOrderId\n })\n );\n }\n\n /**\n * Toggles the visibility of a column, allowing it to be shown or hidden.\n *\n * Dispatches an action that updates {@link State.hiddenColumns hiddenColumns} in the state.\n *\n * @param column The column to be toggled.\n */\n\n applyToggleVisibility() {\n this.#dispatch(actions.actionColumnToggle([this.field.id]));\n }\n\n /**\n * Toggles the \"freeze\" effect on a column, locking it to the left while the rest of the content scrolls.\n * This helps keep key columns visible in large datasets.\n *\n * Dispatches an action that updates {@link State.freezeColumns freezeColumns} in the state.\n */\n applyFreeze() {\n this.#dispatch(actions.actionColumnPin([this.field.id]));\n }\n\n /**\n * Toggles the \"freeze\" effect on a column, locking it at given index while the rest of the columns\n * continues to scroll. This can be used to keep key columns visible in large datasets.\n * The freeze order of the given column is defined by {@link index} passed.\n *\n * Dispatches an action that modifies {@link State.freezeColumns freezeColumns} in the state.\n * @param index\n */\n applyFreezeAtIndex(index: number) {\n this.#dispatch(actions.actionColumnPinAtIndex(this.field.id, index));\n }\n\n /** Applies aggregation to the column, summarizing the data based on a specified {@link type aggregationType}.\n *\n * Dispatches an action that modifies {@link State.aggregationInfo aggregation} in the state.\n */\n applyAggregation(type: AggregationType) {\n this.#dispatch(\n actions.actionUpdateAggregation({\n columnId: this.field.id,\n type\n })\n );\n }\n\n /** Applies label to the current column.\n *\n * Dispatches an action that updates {@link State.columnAlias columnAlias} in the state.\n */\n applyLabel(label: NonNullable<Column['label']>) {\n this.#dispatch(\n actions.actionChangeLabel({\n columnId: this.field.id,\n label\n })\n );\n }\n\n /** Applies formatter to the current column.\n *\n * Dispatches an action that updates {@link State.renderFormatter renderFormatter} in the state.\n * @param name - Formatter name.\n */\n applyFormatter(name: NonNullable<Column['formatterName']>) {\n this.#dispatch(\n actions.actionUpdateRenderFormatter({\n columnId: this.field.id,\n name\n })\n );\n }\n\n /** Removes formatter of the current column.\n *\n * Dispatches an action that updates {@link State.renderFormatter renderFormatter} in the state.\n */\n removeFormatter() {\n this.#dispatch(\n actions.actionRemoveRenderFormatter({\n columnId: this.field.id\n })\n );\n }\n\n /**\n * Applies {@link mode displayMode} to hierarchical column.\n *\n * Dispatches an action that modifies {@link State.hierarchicalGroup hierarchicalGroups},\n * {@link State.groupToggle groupToggle}, {@link State.groups groups} in the state.\n * @param mode\n */\n applyDisplay(mode: string) {\n const { hierarchicalInfo } = this.field;\n this.#rsStore.groupingInfo = [] as NonNullable<RsStore['groupingInfo']>;\n this.#dispatch(\n actions.actionUpdateDisplayMode({\n parentId: hierarchicalInfo!.parentId,\n materializedPathId: hierarchicalInfo!.materializedPathId,\n targetId: hierarchicalInfo!.targetId,\n columnId: this.field.id,\n sortById: hierarchicalInfo!.sortById || hierarchicalInfo!.targetId,\n mode\n })\n );\n }\n\n /**\n * Applies merge operation(combine columns) to 2 columns based on selected template.\n *\n * Dispatches an action that modifies {@link State.customFields customFields} in the state.\n * @param mergeWith On which column the merge operation to be performed(left/right)\n * @param title label for the new custom column.\n * @param templateName The template which should be used to merge the columns\n * @param bHideColumns Hide the existing columns.\n */\n applyMerge(\n mergeWith: 'left' | 'right',\n title: string,\n templateName: NonNullable<Meta['dynamicFieldTemplates']>[number]['value'],\n bHideColumns: boolean\n ) {\n const step = mergeWith === 'left' ? -1 : 1;\n const targetId = this.parent.columns!.find(c => c.order === this.order! + step)!.field.id;\n this.#dispatch(\n actions.actionMergeColumns({\n sourceId: this.field.id,\n targetId,\n title,\n templateName,\n bHideColumns,\n uniqueID: String(+new Date())\n })\n );\n }\n\n /**\n * Deletes the custom column.\n *\n * Dispatches an action that modifies {@link State.customFields customFields} in the state by removing this column from it.\n */\n deleteCustomColumn() {\n this.#dispatch(\n actions.actionDeleteCustomColumn({\n columnId: this.field.id\n })\n );\n }\n\n /**\n * Updates column's width based on the autosize logic.\n *\n * Dispatches an action that modifies the {@link State.columnWidths columnWidths} in the state.\n */\n\n applyColumnAutoSize() {\n this.#dispatch(actions.actionColumnAutoSize(this, this.parent.getDomContainer()!));\n }\n\n /**\n * Determines if autosize is enabled for this column.\n */\n get isAutoSizable() {\n return this.field.autosize && !this.hidden && this.cellRenderer !== RICH_TEXT;\n }\n\n /**\n * Determines whether hierarchical mode should be enabled for this column.\n */\n renderDisplayMode() {\n const { meta } = this.parent;\n const { hierarchicalInfo } = this.field;\n\n return hierarchicalInfo?.materializedPathId && meta.grouping && !meta.editing;\n }\n\n /**\n * Retrieves the personalized width of the column, sourced from either\n * {@link RsProps.persistedInfo persistedInfo} or the current\n * {@link State.personalization personalized state}.\n *\n * @returns The personalized width of the column.\n */\n\n getPersonalizedWidth() {\n let columnWidths: State['columnWidths'] = {};\n if (this.#rsProps.persistedInfo) {\n columnWidths = this.#rsProps.persistedInfo.columnWidths;\n } else {\n const { active, allPersonalizations } = this.parent.state?.personalization ?? {};\n columnWidths = allPersonalizations?.[active!]?.personalizationState?.columnWidths;\n }\n return columnWidths?.[this.field.id];\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ColumnGenerator.js","sourceRoot":"","sources":["../../../../src/core/generators/ColumnGenerator.ts"],"names":[],"mappings":"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","sourcesContent":["import get from 'lodash-es/get';\n\nimport type { ExcludeStrict, OmitStrict } from '@pega/cosmos-react-core';\nimport type { Condition } from '@pega/cosmos-react-condition-builder';\n\nimport type {\n ConditionalStyleFormat,\n FieldDef,\n Meta,\n StyleFormat\n} from '../../../types/Meta.types';\nimport type { State, Sort, AggregationType } from '../../../types/State.types';\nimport { compareObjects, evaluateStyleFormatForCell } from '../utils/util';\nimport * as actions from '../actions/actions';\nimport { RICH_TEXT } from '../constants';\nimport type RsProps from '../RsProps';\nimport type RsInternal from '../RsInternal';\nimport type RsStore from '../RsStore';\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport type { ApiContext } from '../../../types/ApiContext.types';\nimport type StateResolver from '../StateResolver';\n\nimport type Row from './RowGenerator';\nimport type {\n ColumnConfig,\n ColumnResizerProps,\n ColumnStyle,\n SortProperties,\n ColumnContext,\n ColumnRenderingEngineProps\n} from './ColumnGenerator.types';\nimport type { RowContext, RowData } from './RowGenerator.types';\nimport type { FormatterFunction } from './ViewGenerator.types';\n\nexport default class Column {\n /** Reference to repeating structure props. */\n #rsProps: RsProps;\n /** Reference to repeating structure store. */\n #rsStore: RsStore;\n /** Reference to rs internal object. */\n #rsInternal: RsInternal;\n /** */\n #dispatch: StateResolver['dispatch'];\n /** The common CSS styles for a column like width, order etc. */\n style = {} as ColumnStyle;\n /** Indicates if the column is grouped.\n * @default false\n */\n grouped = false;\n /** Indicates if the column is frozen.\n * @default false\n */\n frozen = false;\n /** Indicates if any filter is appplied to the column.\n * @default false\n */\n filtered = false;\n /** Indicates if any sorting is applied to the column.\n * @default false\n */\n sorted = false;\n /** Indicates the sorting sequence of the column if it is {@link sorted}. */\n sortSequence?: SortProperties['sortSequence'];\n /** Indicates the sorting order of the column if it is {@link sorted}. */\n sortOrder?: SortProperties['sortOrder'];\n /** Indicates if the column is lastFrozen column if it is {@link frozen}.\n * @default false\n */\n lastFrozen = false;\n /** Indicates if aggregation is applied on the column.\n * @default false\n */\n aggregated = false;\n /** Aggregated value for the column for an {@link aggregationType} if {@link aggregated aggregation} is applied. */\n aggregateValue?: number;\n /** Current aggregation type applied on the column. */\n aggregationType?: AggregationType;\n /** Indicates the current width of the column. */\n currentWidth?: number;\n /** Field meta for this column from {@link Meta.fieldDefs meta fieldDefs}. */\n field: FieldDef;\n /** Indicates if the formatting is allowed on this column.\n * @default true\n */\n formatterAllowed = true;\n /** Indicates the current formatter applied to the column. */\n formatterName?: string;\n /** The formatter function corresponding toe the {@link formatterName}. */\n formatter?: FormatterFunction;\n /** The name of the renderer for this cell. */\n cellRenderer?: string;\n /** Indicates if the column is hidden.\n * @default false\n */\n hidden = false;\n /** Label for the column that can be displayed to end user. */\n label?: string;\n /** Categorized label for the column if the column has categories derived from {@link FieldDef.category}. */\n categorizedHeaderLabel?: string;\n /** Indicates if the column is first visual column for the end user.\n * @default false\n */\n isFirstVisualColumn = false;\n /** Indicates if the column is first data column, excluding any action column like checkbox, row action, drag drop column.\n * @default false\n */\n isFirstDataColumn = false;\n /** Indicates if the column is last column. */\n isLastColumn = false;\n /** Indicates if the column is a custom column derived from Customize column feature.\n * E.g. column generated by joining 2 columns. */\n isCustomColumn = false;\n /** Visual order of the column with respect to other columns */\n order?: number;\n /** CSS classes for the column.\n * @default empty array.\n */\n classList = [] as string[];\n /** Indicates if the icons should be shown for the column on the header based on {@link FieldDef.type type}. */\n showHeaderIcons = false;\n /** Indicates if the width of the column is changed. */\n isWidthChanged = false;\n /** Indicates if tooltip should be shown for the column in cells. */\n #showToolTip!: boolean;\n /** Indicates the current display mode for hierarchical columns. */\n displayMode?: string | null;\n /** Indicates if the selection column is disabled for selection. */\n disableSelection?: boolean;\n // TODO: Update executionContext type. 'RowContext' | 'ViewContext' | null\n /** The current running execution context i.e. row context for the column in which the column is being rendered. */\n #executionContext: RowContext | null;\n /** The {@link Row row} in which column is being rendered. */\n #pRow: Row | null;\n /** The formatted value for the column. */\n formattedValue: string | null;\n /** Returns the resize events that can be attached to column DOM node. */\n getResizerProps: () => ColumnResizerProps | undefined;\n /** Alias of the column */\n alias?: string;\n /** Indicates a re-render is triggered for the column. */\n refresh?: number;\n /** A factory function provided to RsCore that returns component or component definition for specified type\n * @param type It is equal to value of {@link FieldDef.cellRenderer cellRenderer}(if added in fieldDefs of that column).\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 RsProps.formatters formatters} are provided for that column)\n */\n renderFactory?: RsProps['renderFactory'];\n /** Reference to {@link Column} class construtcor. */\n type?: typeof Column;\n /** Array of conditional style formats applied to this column. */\n conditionalStyleFormats?: OmitStrict<ConditionalStyleFormat, 'fieldName'>[];\n\n /**\n * Creates a new instance of a column within a repeating structure template.\n * @param config It represents few config properties which is used to create column instance.\n * @param rsInternal A reference to rsInternal object.\n */\n constructor(config: ColumnConfig, rsInternal: RsInternal) {\n const {\n aggregateValue,\n aggregationType,\n currentWidth,\n field,\n formatterName,\n formatter,\n cellRenderer,\n label,\n alias,\n categorizedHeaderLabel,\n sortSequence,\n sortOrder,\n order,\n displayMode,\n disableSelection,\n filtered = false,\n formatterAllowed = true,\n hidden = false,\n style = {} as ColumnStyle,\n grouped = false,\n frozen = false,\n lastFrozen = false,\n aggregated = false,\n sorted = false,\n isFirstVisualColumn = false,\n isFirstDataColumn = false,\n isLastColumn = false,\n isCustomColumn = false,\n classList = [],\n showHeaderIcons = false,\n showTooltip = !!(field.showTooltip === undefined ? true : field.showTooltip),\n isWidthChanged = false,\n refresh,\n conditionalStyleFormats\n } = config;\n const { getRsStore, getRsProps, getRsStateResolver } = rsInternal;\n const rsStore = getRsStore();\n const rsProps = getRsProps();\n const { dispatch } = getRsStateResolver();\n this.#rsInternal = rsInternal;\n this.#rsProps = rsProps;\n this.#rsStore = rsStore;\n this.#dispatch = dispatch;\n this.renderFactory = rsProps.renderFactory;\n this.type = this.constructor as typeof Column;\n // Persisted props at column level.\n this.style = style;\n this.grouped = grouped;\n this.frozen = frozen;\n this.filtered = filtered;\n this.sorted = sorted;\n this.sortSequence = sortSequence;\n this.sortOrder = sortOrder;\n this.lastFrozen = lastFrozen;\n this.aggregated = aggregated;\n this.aggregateValue = aggregateValue;\n this.aggregationType = aggregationType;\n this.currentWidth = currentWidth;\n this.field = field;\n this.formatterAllowed = formatterAllowed;\n this.formatterName = formatterName;\n this.formatter = formatter;\n this.cellRenderer = cellRenderer;\n this.hidden = hidden;\n this.label = label;\n this.alias = alias;\n this.refresh = refresh;\n this.categorizedHeaderLabel = categorizedHeaderLabel;\n this.isFirstVisualColumn = isFirstVisualColumn;\n this.isFirstDataColumn = isFirstDataColumn;\n this.isLastColumn = isLastColumn;\n this.isCustomColumn = isCustomColumn;\n this.order = order;\n this.classList = classList;\n this.showHeaderIcons = showHeaderIcons;\n this.showTooltip = showTooltip;\n this.isWidthChanged = isWidthChanged;\n this.displayMode = displayMode;\n this.disableSelection = disableSelection;\n this.conditionalStyleFormats = conditionalStyleFormats;\n\n // this props are only used at time of rendering. values are not persisted across rows / cells\n this.#executionContext = null;\n this.#pRow = null;\n this.formattedValue = null;\n\n /** IMP: For generator methods use traditional function syntax\n * rather than arrow function for memory efficiency\n * and bind 'this' to the methods which requires 'this' context. */\n this.getUniqueValues = this.getUniqueValues.bind(this);\n this.getRenderFormatters = this.getRenderFormatters.bind(this);\n this.getSortProperties = this.getSortProperties.bind(this);\n this.getFilterProperties = this.getFilterProperties.bind(this);\n this.getUIProps = this.getUIProps.bind(this);\n this.getHeaderUIProps = this.getHeaderUIProps.bind(this);\n this.getResizerProps = () => getRsStore().getColumnResizerProps?.();\n this.setProp = this.setProp.bind(this);\n this.getRenderingEngineProps = this.getRenderingEngineProps.bind(this);\n this.renderDisplayMode = this.renderDisplayMode.bind(this);\n\n this.setExecutionContext = this.setExecutionContext.bind(this);\n this.getExecutionContext = this.getExecutionContext.bind(this);\n this.getContext = this.getContext.bind(this);\n this.getExpression = this.getExpression.bind(this);\n // All action APIs supported on instance\n this.applyGrouping = this.applyGrouping.bind(this);\n this.applySorting = this.applySorting.bind(this);\n this.applyToggleVisibility = this.applyToggleVisibility.bind(this);\n this.applyFreeze = this.applyFreeze.bind(this);\n this.applyFreezeAtIndex = this.applyFreezeAtIndex.bind(this);\n this.applyAggregation = this.applyAggregation.bind(this);\n this.applyLabel = this.applyLabel.bind(this);\n this.applyFormatter = this.applyFormatter.bind(this);\n this.removeFormatter = this.removeFormatter.bind(this);\n this.applyMerge = this.applyMerge.bind(this);\n this.deleteCustomColumn = this.deleteCustomColumn.bind(this);\n this.applyColumnAutoSize = this.applyColumnAutoSize.bind(this);\n this.applyDisplay = this.applyDisplay.bind(this);\n this.getCellStyleFormat = this.getCellStyleFormat.bind(this);\n }\n\n /** Reference to current view object. */\n get parent() {\n return this.#rsInternal.getView();\n }\n\n /** The data for all the cells for the column. */\n get data(): RowData[keyof RowData][] {\n return this.parent.data?.map(d => get(d, this.field.name)) || [];\n }\n\n /**\n * It returns the expression for the column if it is a {@link isCustomColumn custom} column.\n */\n getExpression() {\n return this.parent.state?.customFields?.find(c => c.id === this.field.id)?.expression;\n }\n\n // Used by setProp for mutation\n /**\n * Returns the current column config, which can be used to create a new instance of the column.\n * This is typically used with {@link setProp}\n * @returns {ColumnConfig}\n */\n #get(): ColumnConfig {\n return {\n aggregated: this.aggregated,\n grouped: this.grouped,\n aggregateValue: this.aggregateValue,\n aggregationType: this.aggregationType,\n currentWidth: this.currentWidth,\n field: this.field,\n style: this.style,\n frozen: this.frozen,\n lastFrozen: this.lastFrozen,\n formatterAllowed: this.formatterAllowed,\n formatterName: this.formatterName,\n formatter: this.formatter,\n hidden: this.hidden,\n label: this.label,\n categorizedHeaderLabel: this.categorizedHeaderLabel,\n cellRenderer: this.cellRenderer,\n filtered: this.filtered,\n sorted: this.sorted,\n sortSequence: this.sortSequence,\n sortOrder: this.sortOrder,\n isCustomColumn: this.isCustomColumn,\n isFirstVisualColumn: this.isFirstVisualColumn,\n isFirstDataColumn: this.isFirstDataColumn,\n isLastColumn: this.isLastColumn,\n order: this.order,\n classList: this.classList,\n showHeaderIcons: this.showHeaderIcons,\n isWidthChanged: this.isWidthChanged,\n displayMode: this.displayMode,\n disableSelection: this.disableSelection,\n alias: this.alias,\n conditionalStyleFormats: this.conditionalStyleFormats\n };\n }\n\n /**\n * Indicates if tooltip needs to be shown or not for the current column cells.\n */\n get showTooltip() {\n return this.#showToolTip && this.cellRenderer !== RICH_TEXT;\n }\n\n /**\n * Sets the showTooltip flag for the current column.\n */\n set showTooltip(showTooltip) {\n this.#showToolTip = showTooltip;\n }\n\n /**\n * Retrieves the distinct values for this column using {@link ApiContext.fetchUniqueColValues fetchUniqueColValues}.\n */\n async getUniqueValues() {\n return (\n this.#rsProps.apiContext.fetchUniqueColValues?.(\n this.parent.state,\n this.parent.meta,\n this.field.id,\n {\n ...(this.#rsStore.refreshInProgress && {\n invalidateCache: true,\n invalidateCacheToken: this.#rsStore.refreshToken\n })\n }\n ) || Promise.resolve([])\n );\n }\n\n /**\n * Returns the formatters available for the current column from\n * {@link RsProps.renderFormatterTypeMap renderFormatterTypeMap} based on its {@link FieldDef.type type}\n */\n getRenderFormatters() {\n const formattersForType = this.parent.renderFormatterTypeMap?.[this.field.type] || [];\n return this.field.formatters ?? formattersForType;\n }\n\n /** Returns the sorting information for the current column. */\n getSortProperties() {\n return {\n sorted: this.sorted,\n sortSequence: this.sortSequence,\n sortOrder: this.sortOrder\n };\n }\n\n /** Returns the filter information for the current column. */\n getFilterProperties(): { filtered: boolean; filterExpression: Condition | undefined } {\n return {\n filtered: this.filtered,\n filterExpression: this.parent.state.filterExpression\n };\n }\n\n /**\n * Retrieves the UI properties for the column, which can be applied to value cells within this column.\n */\n getUIProps() {\n // FIXME: aria-colIndex is NaN sometimes\n return {\n style: { ...this.style },\n 'data-col-id': this.field.id,\n classList: [...this.classList],\n 'aria-colindex': this.order! + 1,\n role: this.field.isRowHeader ? 'rowheader' : 'gridcell'\n };\n }\n\n /**\n * Retrieves the {@link StyleFormat style format} style format applicable to the cell\n * @returns The style format if applicable, otherwise `undefined`.\n *\n */\n getCellStyleFormat(): StyleFormat | undefined {\n return evaluateStyleFormatForCell(this, this.#rsInternal);\n }\n\n /**\n * Retrieves the UI properties for the column, which can be applied to the header cells of this column.\n */\n getHeaderUIProps() {\n return {\n 'data-col-id': this.field.id,\n draggable: this.field.reorderFields,\n role: 'columnheader',\n ...(this.field.reorderFields && this.parent.type.getFieldReorderProps?.())\n };\n }\n\n // TODO: why return search query in column rendering engine props.\n /**\n * Provides essential information for cell rendering, including the column and row.\n * Additionally, it supplies the current search query.\n */\n getRenderingEngineProps(): ColumnRenderingEngineProps {\n return {\n column: this as Column,\n row: this.#pRow,\n searchKeyword: this.parent?.state?.search?.query\n };\n }\n\n /**\n * Sets the current execution context, {@link RowContext}, when rendering a cell for this column.\n * This dynamic context is updated for each cell in the column as it is rendered.\n */\n setExecutionContext(row: Row | null) {\n this.#pRow = row;\n this.#executionContext = row ? row.getContext() : null;\n }\n\n /**\n * Retrieves the current execution context, i.e., {@link RowContext}, when rendering a cell for this column.\n * This context dynamically updates as each cell in the column is rendered.\n */\n getExecutionContext() {\n return this.#executionContext;\n }\n\n /**\n * Returns the current column {@link ColumnContext context}.\n * @param overriddenExecutionContext - optional param to override the execution context with custom {@link RowContext}.\n * @returns\n *\n * @public\n */\n getContext(overriddenExecutionContext?: RowContext | null): ColumnContext {\n return {\n name: 'column',\n getField: () => this.field,\n getValue: () =>\n get((overriddenExecutionContext || this.#executionContext)?.getValue?.(), this.field?.name),\n getExecutionContext: () => overriddenExecutionContext || this.#executionContext,\n getParentContext: () => this.parent.getContext(),\n getFormatter: () => this.formatter,\n formatterAllowed: () => this.formatterAllowed,\n getCellRenderer: () => this.cellRenderer,\n getFormatterName: () => this.formatterName,\n getFormattedValue: () => this.formattedValue,\n getSearchKeyword: () => this.parent?.state?.searchText,\n showTooltip: () => this.showTooltip,\n getToolTipValue: () => {\n const tooltip = this.field?.tooltip;\n if (!tooltip) {\n return this.formattedValue;\n }\n return (overriddenExecutionContext || this.#executionContext)?.getValue?.()?.[tooltip];\n },\n /** Returns the header label */\n getLabel: () => this.categorizedHeaderLabel,\n setProp: (\n prop:\n | Partial<OmitStrict<Column, 'data' | 'isAutoSizable' | 'parent'>>\n | ExcludeStrict<keyof Column, 'data' | 'isAutoSizable' | 'parent'>,\n value?: Column[keyof Column]\n ) => this.setPropMutatively(prop, value),\n getSortProperties: this.getSortProperties,\n getExpression: this.getExpression,\n getFilterProperties: this.getFilterProperties,\n searchKeyword: this.parent?.state?.searchText,\n getTableMeta: () => this.parent.meta,\n getRsMeta: () => this.parent.meta,\n applyGrouping: this.applyGrouping,\n applySorting: this.applySorting,\n applyToggleVisibility: this.applyToggleVisibility,\n applyFreeze: this.applyFreeze,\n applyAggregation: this.applyAggregation,\n applyLabel: this.applyLabel,\n applyFormatter: this.applyFormatter,\n removeFormatter: this.removeFormatter,\n applyMerge: this.applyMerge,\n deleteCustomColumn: this.deleteCustomColumn,\n getRendererType: () => {\n return this.isCustomColumn ? 'customCellRenderer' : 'cellRenderer';\n },\n selectAllRows: this.parent.type.selectAllRows,\n getDisableSelection: () => this.disableSelection\n };\n }\n\n /**\n * Updates property of the column with value. The updated value will be reflected on next re-render.\n * @param prop Either partial of {@link Column} or individual properties of {@link Column}.\n * @param [value] An optional parameter to provide value for {@link prop} in case prop is not of type {@link ColumnConfig}\n * @returns void\n */\n setPropMutatively(\n prop:\n | Partial<OmitStrict<Column, 'data' | 'isAutoSizable' | 'parent'>>\n | ExcludeStrict<keyof Column, 'data' | 'isAutoSizable' | 'parent'>,\n value?: Column[keyof Column]\n ) {\n if (typeof prop !== 'object' && value) {\n // @ts-expect-error check the index based type error.\n this[prop] = value;\n } else {\n Object.entries(prop).forEach(([k, v]) => {\n // @ts-expect-error Element implicitly has an 'any' type because expression of type 'string' can't be used to index type 'Column'.\n this[k] = v;\n });\n }\n }\n\n // setProp is used to make columns immutables.\n /**\n * Sets a {@link prop property} and its {@link value} in the {@link Column} instance, creating an immutable instance.\n * Always use `setProp` to update properties of {@link Column} to ensure immutability.\n *\n * @param prop Either a partial {@link ColumnConfig} or individual properties of {@link ColumnConfig}.\n * @param [value] Optional value to set for `prop` if `prop` is not of type {@link ColumnConfig}.\n * @returns void\n */\n\n setProp(\n prop: Partial<ColumnConfig> | keyof ColumnConfig,\n value?: ColumnConfig[keyof ColumnConfig]\n ) {\n const { getView } = this.#rsInternal;\n const index = getView().columns!.findIndex(c => c === this);\n let pObject = prop;\n if (typeof prop !== 'object') {\n pObject = { [prop]: value };\n }\n\n // Change object if any value changes actually.\n // @ts-expect-error utils should be converted to TS in order to resolve this.\n if (!compareObjects(this, pObject, Object.keys(pObject)) && index >= 0) {\n const newColumn = new Column(\n {\n ...this.#get(),\n ...(pObject as Partial<ColumnConfig>)\n },\n this.#rsInternal\n );\n const cloned = [...getView().columns!];\n cloned.splice(index, 1, newColumn);\n getView().columns = cloned;\n return newColumn;\n }\n return this;\n }\n\n /**\n * Applies grouping to this column.\n *\n * Dispatches an action that modifies the {@link State.groups groups} in the state.\n */\n applyGrouping() {\n this.#dispatch(actions.actionToggleGrouping(this.field));\n }\n\n /**\n * Applies sorting to this column.\n *\n * Dispatches an action that updates the {@link State.sortingOrder sortingOrder} in the state.\n *\n * @param flushState If true, it will reset the existing {@link State.sortingOrder sortingOrder} state for this column.\n * @param sortOrderId The sort order, either 'asc' or 'desc'.\n */\n // eslint-disable-next-line @typescript-eslint/default-param-last\n applySorting(flushState = false, sortOrderId: Sort['order']) {\n this.#dispatch(\n actions.actionColumnSort({\n id: this.field.id,\n flushState,\n sortOrderId\n })\n );\n }\n\n /**\n * Toggles the visibility of a column, allowing it to be shown or hidden.\n *\n * Dispatches an action that updates {@link State.hiddenColumns hiddenColumns} in the state.\n *\n * @param column The column to be toggled.\n */\n\n applyToggleVisibility() {\n this.#dispatch(actions.actionColumnToggle([this.field.id]));\n }\n\n /**\n * Toggles the \"freeze\" effect on a column, locking it to the left while the rest of the content scrolls.\n * This helps keep key columns visible in large datasets.\n *\n * Dispatches an action that updates {@link State.freezeColumns freezeColumns} in the state.\n */\n applyFreeze() {\n this.#dispatch(actions.actionColumnPin([this.field.id]));\n }\n\n /**\n * Toggles the \"freeze\" effect on a column, locking it at given index while the rest of the columns\n * continues to scroll. This can be used to keep key columns visible in large datasets.\n * The freeze order of the given column is defined by {@link index} passed.\n *\n * Dispatches an action that modifies {@link State.freezeColumns freezeColumns} in the state.\n * @param index\n */\n applyFreezeAtIndex(index: number) {\n this.#dispatch(actions.actionColumnPinAtIndex(this.field.id, index));\n }\n\n /** Applies aggregation to the column, summarizing the data based on a specified {@link type aggregationType}.\n *\n * Dispatches an action that modifies {@link State.aggregationInfo aggregation} in the state.\n */\n applyAggregation(type: AggregationType) {\n this.#dispatch(\n actions.actionUpdateAggregation({\n columnId: this.field.id,\n type\n })\n );\n }\n\n /** Applies label to the current column.\n *\n * Dispatches an action that updates {@link State.columnAlias columnAlias} in the state.\n */\n applyLabel(label: NonNullable<Column['label']>) {\n this.#dispatch(\n actions.actionChangeLabel({\n columnId: this.field.id,\n label\n })\n );\n }\n\n /** Applies formatter to the current column.\n *\n * Dispatches an action that updates {@link State.renderFormatter renderFormatter} in the state.\n * @param name - Formatter name.\n */\n applyFormatter(name: NonNullable<Column['formatterName']>) {\n this.#dispatch(\n actions.actionUpdateRenderFormatter({\n columnId: this.field.id,\n name\n })\n );\n }\n\n /** Removes formatter of the current column.\n *\n * Dispatches an action that updates {@link State.renderFormatter renderFormatter} in the state.\n */\n removeFormatter() {\n this.#dispatch(\n actions.actionRemoveRenderFormatter({\n columnId: this.field.id\n })\n );\n }\n\n /**\n * Applies {@link mode displayMode} to hierarchical column.\n *\n * Dispatches an action that modifies {@link State.hierarchicalGroup hierarchicalGroups},\n * {@link State.groupToggle groupToggle}, {@link State.groups groups} in the state.\n * @param mode\n */\n applyDisplay(mode: string) {\n const { hierarchicalInfo } = this.field;\n this.#rsStore.groupingInfo = [] as NonNullable<RsStore['groupingInfo']>;\n this.#dispatch(\n actions.actionUpdateDisplayMode({\n parentId: hierarchicalInfo!.parentId,\n materializedPathId: hierarchicalInfo!.materializedPathId,\n targetId: hierarchicalInfo!.targetId,\n columnId: this.field.id,\n sortById: hierarchicalInfo!.sortById || hierarchicalInfo!.targetId,\n mode\n })\n );\n }\n\n /**\n * Applies merge operation(combine columns) to 2 columns based on selected template.\n *\n * Dispatches an action that modifies {@link State.customFields customFields} in the state.\n * @param mergeWith On which column the merge operation to be performed(left/right)\n * @param title label for the new custom column.\n * @param templateName The template which should be used to merge the columns\n * @param bHideColumns Hide the existing columns.\n */\n applyMerge(\n mergeWith: 'left' | 'right',\n title: string,\n templateName: NonNullable<Meta['dynamicFieldTemplates']>[number]['value'],\n bHideColumns: boolean\n ) {\n const step = mergeWith === 'left' ? -1 : 1;\n const targetId = this.parent.columns!.find(c => c.order === this.order! + step)!.field.id;\n this.#dispatch(\n actions.actionMergeColumns({\n sourceId: this.field.id,\n targetId,\n title,\n templateName,\n bHideColumns,\n uniqueID: String(+new Date())\n })\n );\n }\n\n /**\n * Deletes the custom column.\n *\n * Dispatches an action that modifies {@link State.customFields customFields} in the state by removing this column from it.\n */\n deleteCustomColumn() {\n this.#dispatch(\n actions.actionDeleteCustomColumn({\n columnId: this.field.id\n })\n );\n }\n\n /**\n * Updates column's width based on the autosize logic.\n *\n * Dispatches an action that modifies the {@link State.columnWidths columnWidths} in the state.\n */\n\n applyColumnAutoSize() {\n this.#dispatch(actions.actionColumnAutoSize(this, this.parent.getDomContainer()!));\n }\n\n /**\n * Determines if autosize is enabled for this column.\n */\n get isAutoSizable() {\n return this.field.autosize && !this.hidden && this.cellRenderer !== RICH_TEXT;\n }\n\n /**\n * Determines whether hierarchical mode should be enabled for this column.\n */\n renderDisplayMode() {\n const { meta } = this.parent;\n const { hierarchicalInfo } = this.field;\n\n return hierarchicalInfo?.materializedPathId && meta.grouping && !meta.editing;\n }\n\n /**\n * Retrieves the personalized width of the column, sourced from either\n * {@link RsProps.persistedInfo persistedInfo} or the current\n * {@link State.personalization personalized state}.\n *\n * @returns The personalized width of the column.\n */\n\n getPersonalizedWidth() {\n let columnWidths: State['columnWidths'] = {};\n if (this.#rsProps.persistedInfo) {\n columnWidths = this.#rsProps.persistedInfo.columnWidths;\n } else {\n const { active, allPersonalizations } = this.parent.state?.personalization ?? {};\n columnWidths = allPersonalizations?.[active!]?.personalizationState?.columnWidths;\n }\n return columnWidths?.[this.field.id];\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pega/lists-core",
|
|
3
|
-
"version": "9.0.0-build.
|
|
3
|
+
"version": "9.0.0-build.16.1",
|
|
4
4
|
"description": "Core headless UI library that the users can use to write their own UI and create repeating structures like table, gallery, timeline etc.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"author": "Pegasystems",
|
|
@@ -14,13 +14,13 @@
|
|
|
14
14
|
"build": "tsc -b tsconfig.build.json"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@pega/cosmos-react-condition-builder": "9.0.0-build.
|
|
18
|
-
"@pega/cosmos-react-core": "9.0.0-build.
|
|
19
|
-
"@types/lodash
|
|
17
|
+
"@pega/cosmos-react-condition-builder": "9.0.0-build.16.1",
|
|
18
|
+
"@pega/cosmos-react-core": "9.0.0-build.16.1",
|
|
19
|
+
"@types/lodash-es": "^4.17.12",
|
|
20
20
|
"@types/uuid": "^9.0.0",
|
|
21
21
|
"dayjs": "^1.11.13",
|
|
22
22
|
"fast-deep-equal": "^3.1.3",
|
|
23
|
-
"lodash
|
|
23
|
+
"lodash-es": "^4.17.21",
|
|
24
24
|
"uuid": "^9.0.0"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|