Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import dataQuery from '@js/common/data/query';
import storeHelper from '@js/common/data/store_helper';
import { normalizeSortingInfo } from '@js/common/data/utils';
import type { dxElementWrapper } from '@js/core/renderer';
import $ from '@js/core/renderer';
import { extend } from '@js/core/utils/extend';
import { each } from '@js/core/utils/iterator';
Expand All @@ -14,6 +15,7 @@ import type { RawItemData, RemoteOperationsOptions } from '@ts/grids/grid_core/d
import type { ModuleType } from '@ts/grids/grid_core/types';
import { ColumnsView } from '@ts/grids/grid_core/views/columns_view';
import { CLASSES as VIEW_CLASSES } from '@ts/grids/grid_core/views/const';
import type { RowRenderOptions, SummaryRowsViewExtension } from '@ts/grids/grid_core/views/types';

import type { EditingController } from '../../grid_core/editing/editing';
import type { RowsView } from '../../grid_core/views/rows_view';
Expand Down Expand Up @@ -485,7 +487,7 @@ export const summaryEditingControllerExtender = (

export const summaryRowsViewExtender = (
Base: ModuleType<RowsView>,
): ModuleType<RowsView> => class SummaryRowsViewExtender extends Base {
): ModuleType<RowsView & SummaryRowsViewExtension> => class SummaryRowsViewExtender extends Base {
protected _createRow(row) {
// @ts-expect-error
const $row = super._createRow.apply(this, arguments);
Expand Down Expand Up @@ -530,10 +532,15 @@ export const summaryRowsViewExtender = (
const groupCellColSpan = Number($groupCell.attr('colSpan')) || 1;
const alignByColumnCellCount = this._getAlignByColumnCellCount(groupCellColSpan, options);

this._renderGroupSummaryCellsCore($groupCell, options, groupCellColSpan, alignByColumnCellCount);
this.renderGroupSummaryCellsCore($groupCell, options, groupCellColSpan, alignByColumnCellCount);
}

private _renderGroupSummaryCellsCore($groupCell, options, groupCellColSpan, alignByColumnCellCount) {
public renderGroupSummaryCellsCore(
$groupCell: dxElementWrapper,
options: RowRenderOptions,
groupCellColSpan: number,
alignByColumnCellCount: number,
): void {
if (alignByColumnCellCount > 0) {
$groupCell.attr('colSpan', groupCellColSpan - alignByColumnCellCount);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ import gridCoreUtils from '../utils';
import type { ColumnsView } from '../views/columns_view';
import { normalizeWidth } from '../views/columns_view';
import type { RowsView } from '../views/rows_view';
import type { RowsViewScrollEvent } from '../views/types';
import type { RowsViewScrollEvent, SummaryRowsViewExtension } from '../views/types';
import { CLASSES } from './const';

const FIRST_CELL_CLASS = 'dx-first-cell';
Expand Down Expand Up @@ -681,7 +681,9 @@ const columnHeadersView = (Base: ModuleType<ColumnHeadersView>) => class ColumnH
}
};

const rowsView = (Base: ModuleType<RowsView>) => class RowsViewFixedColumnsExtender extends baseFixedColumns(Base) {
const rowsView = (
Base: ModuleType<RowsView & SummaryRowsViewExtension>,
) => class RowsViewFixedColumnsExtender extends baseFixedColumns(Base) {
protected _fixedScrollTimeout: any;

public dispose() {
Expand Down Expand Up @@ -856,7 +858,7 @@ const rowsView = (Base: ModuleType<RowsView>) => class RowsViewFixedColumnsExten
return result && (!this._isFixedColumns || !column.fixed);
}

private _renderGroupSummaryCellsCore($groupCell, options, groupCellColSpan, alignByColumnCellCount) {
public renderGroupSummaryCellsCore($groupCell, options, groupCellColSpan, alignByColumnCellCount) {
let alignByFixedColumnCellCount;

if (this._isFixedTableRendering) {
Expand All @@ -878,8 +880,7 @@ const rowsView = (Base: ModuleType<RowsView>) => class RowsViewFixedColumnsExten
alignByColumnCellCount = alignByFixedColumnCellCount;
}

// @ts-expect-error DataGrid's method
super._renderGroupSummaryCellsCore($groupCell, options, groupCellColSpan, alignByColumnCellCount);
super.renderGroupSummaryCellsCore($groupCell, options, groupCellColSpan, alignByColumnCellCount);
}

private _getSummaryCellIndex(columnIndex, columns) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ import { CLASSES as COLUMN_HEADERS_CLASSES } from '@ts/grids/grid_core/column_he
import { getDraggingPanelBoundingRects } from '@ts/grids/grid_core/columns_resizing_reordering/utils';
import type { EditorFactory } from '@ts/grids/grid_core/editor_factory/editor_factory';
import type {
ColumnPoint, InternalGrid, ModuleType, OptionChanged,
ColumnPoint, ColumnPointProps, InternalGrid, ModuleType, OptionChanged,
} from '@ts/grids/grid_core/types';
import type { RowsView } from '@ts/grids/grid_core/views/rows_view';
import type { ScrollPosition } from '@ts/grids/grid_core/views/types';
Expand Down Expand Up @@ -799,7 +799,7 @@ export class ColumnsResizerViewController extends modules.ViewController {
}

protected _correctColumnIndexForPoint(
point: ColumnPoint,
point: ColumnPointProps,
correctionValue: number,
// eslint-disable-next-line @typescript-eslint/no-unused-vars -- overrides use the param
columns: Column[],
Expand All @@ -811,7 +811,7 @@ export class ColumnsResizerViewController extends modules.ViewController {
* @extended: adaptivity
*/
protected _pointCreated(
point: ColumnPoint,
point: ColumnPointProps,
columns: Column[],
cells?: dxElementWrapper,
): boolean {
Expand Down Expand Up @@ -1082,7 +1082,7 @@ export class ColumnsResizerViewController extends modules.ViewController {
const topYMap = this._generateColumnsTopYIndex(needToCheckPrevPoint);
const columns = this._columnsController ? this._columnsController.getVisibleColumns() : [];
const cells = this._columnHeadersView.getColumnElements();
const correctColumnY = (point: ColumnPoint): ColumnPoint => {
const correctColumnY = (point: ColumnPointProps): ColumnPointProps => {
const x = Math.ceil(point.x);

if (topYMap[x]) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ export class ResizingController extends modules.ViewController {

protected _rowsView!: RowsView;

private _columnHeadersView!: ColumnHeadersView;
protected _columnHeadersView!: ColumnHeadersView;

public _columnsController!: ColumnsController;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import type {
import type { RawItemData } from '../data_source_adapter/types';
import gridCoreUtils from '../utils';
import { CLASSES } from './const';
import type { MasterDetailRowsViewExtension } from './types';
import { isDetailRow } from './utils';

const columns = (Base: ModuleType<ColumnsController>) => class ColumnsMasterDetailExtender extends Base {
Expand Down Expand Up @@ -353,7 +354,11 @@ const resizing = (Base: ModuleType<ResizingController>) => class ResizingMasterD
}
};

const rowsView = (Base: ModuleType<RowsView>) => class RowsViewMasterDetailExtender extends Base {
const rowsView = (
Base: ModuleType<RowsView>,
): ModuleType<
RowsView & MasterDetailRowsViewExtension
> => class RowsViewMasterDetailExtender extends Base {
protected _getCellTemplate(options) {
const that = this;
const { column } = options;
Expand Down Expand Up @@ -394,14 +399,14 @@ const rowsView = (Base: ModuleType<RowsView>) => class RowsViewMasterDetailExten

if (isDetailRowResult) {
if (this._needRenderCell(0, options.columnIndices)) {
this._renderMasterDetailCell($row, row, options);
this.renderMasterDetailCell($row, row, options);
}
} else {
super._renderCells.apply(this, arguments as any);
}
}

protected _renderMasterDetailCell($row, row, options): dxElementWrapper {
public renderMasterDetailCell($row, row, options): dxElementWrapper {
const visibleColumns = this._columnsController.getVisibleColumns();

const $detailCell = this._renderCell($row, {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import type { dxElementWrapper } from '@js/core/renderer';

import type { RowRenderOptions, ViewRow } from '../views/types';

export interface MasterDetailRowsViewExtension {
// eslint-disable-next-line @typescript-eslint/method-signature-style -- overridden by methods
renderMasterDetailCell(
$row: dxElementWrapper,
row: ViewRow,
options: RowRenderOptions,
): dxElementWrapper;
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import type { dxElementWrapper } from '@js/core/renderer';
import $ from '@js/core/renderer';
import { getBoundingRect } from '@js/core/utils/position';
import { isDefined } from '@js/core/utils/type';
import type { ColumnPointProps } from '@ts/grids/grid_core/types';

import type { ColumnHeadersView } from '../column_headers/m_column_headers';
import { CLASSES, StickyPosition } from './const';
Expand Down Expand Up @@ -196,13 +197,7 @@ const noNeedToCreateResizingPoint = (
nextColumn,
cells,
}: {
point: {
x: number;
index: number;
item: HTMLElement;
isLeftBoundary: boolean | undefined;
isRightBoundary: boolean | undefined;
};
point: ColumnPointProps;
column;
nextColumn;
cells: dxElementWrapper | undefined;
Expand Down
Loading
Loading