Skip to content
Merged
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 @@ -36,7 +36,7 @@ const EXTENDER_KINDS: ExtenderKind[] = ['controllers', 'views'];
* Key: className, Value: class info + sourceFile.
*
* When there are duplicate class names across files (e.g. KeyboardNavigationController
* in both m_keyboard_navigation_core.ts and m_keyboard_navigation.ts), we keep BOTH:
* in both keyboard_navigation_core.ts and m_keyboard_navigation.ts), we keep BOTH:
* - The "base" version (doesn't extend a class of the same name) goes in the main registry
* - The "shadow" version goes in a separate list to be handled during chain building
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,15 @@ import type { DxEvent } from '@js/events';
import { hiddenFocus } from '@js/ui/shared/accessibility';
import type { KeyboardKeyDownEvent } from '@ts/events/core/keyboard_processor';
import type { Column, GroupColumn } from '@ts/grids/grid_core/columns_controller/types';
import { ColumnKeyboardNavigationController } from '@ts/grids/grid_core/keyboard_navigation/column_keyboard_navigation_core';
import { Direction } from '@ts/grids/grid_core/keyboard_navigation/const';
import { ColumnKeyboardNavigationController } from '@ts/grids/grid_core/keyboard_navigation/m_column_keyboard_navigation_core';
import type { FocusedCellPosition } from '@ts/grids/grid_core/keyboard_navigation/types';
import type { Views } from '@ts/grids/grid_core/types';
import type { ViewDataChange } from '@ts/grids/grid_core/views/types';

import gridCore from '../core';
import { CLASSES as GROUPING_CLASSES } from '../grouping/const';
import { ColumnKeyboardNavigationMixin } from './m_column_keyboard_navigation_mixin';
import { ColumnKeyboardNavigationMixin } from './column_keyboard_navigation_mixin';

export class GroupPanelKeyboardNavigationController
extends ColumnKeyboardNavigationMixin(ColumnKeyboardNavigationController) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@ import $ from '@js/core/renderer';
import { isDefined } from '@js/core/utils/type';
import type { Column } from '@ts/grids/grid_core/columns_controller/types';
import { KEY_CODES } from '@ts/grids/grid_core/keyboard_navigation/const';
import type { HeadersKeyboardNavigationController } from '@ts/grids/grid_core/keyboard_navigation/m_headers_keyboard_navigation';
import { headersKeyboardNavigationModule } from '@ts/grids/grid_core/keyboard_navigation/m_headers_keyboard_navigation';
import type { HeadersKeyboardNavigationController } from '@ts/grids/grid_core/keyboard_navigation/headers_keyboard_navigation';
import { headersKeyboardNavigationModule } from '@ts/grids/grid_core/keyboard_navigation/headers_keyboard_navigation';
import type { ModuleType } from '@ts/grids/grid_core/types';

import gridCore from '../core';
import { ColumnKeyboardNavigationMixin } from './m_column_keyboard_navigation_mixin';
import { ColumnKeyboardNavigationMixin } from './column_keyboard_navigation_mixin';

const headersKeyboardNavigation: (
Base: ModuleType<HeadersKeyboardNavigationController>,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { ColumnKeyboardNavigationController } from '@ts/grids/grid_core/keyboard_navigation/m_column_keyboard_navigation_core';
import type { ColumnKeyboardNavigationController } from '@ts/grids/grid_core/keyboard_navigation/column_keyboard_navigation_core';
import type { ModuleType } from '@ts/grids/grid_core/types';

export type MixinBase = ModuleType<ColumnKeyboardNavigationController>;
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { editorFactoryModule } from '@ts/grids/grid_core/editor_factory/m_editor_factory';
import { editorFactoryModule } from '@ts/grids/grid_core/editor_factory/editor_factory';

import gridCore from '../core';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ import './module_not_extended/pager';
import './module_not_extended/columns_resizing_reordering';
import './module_not_extended/keyboard_navigation';
import './keyboard_navigation/headers_keyboard_navigation';
import './keyboard_navigation/m_group_panel_keyboard_navigation';
import './keyboard_navigation/group_panel_keyboard_navigation';
import './summary/summary_module';
import './module_not_extended/sticky_columns';
import './module_not_extended/column_fixing';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,31 +24,24 @@ import { FIELD_ITEM_CONTENT_CLASS } from '@ts/ui/form/constants';
import { AI_COLUMN_NAME } from '../ai_column/const';
import type { ColumnsController } from '../columns_controller/columns_controller';
import type { ProcessedItem } from '../data_controller/types';
import { EDIT_MODE_FORM, EDIT_MODE_POPUP, EDIT_MODE_ROW } from '../editing/const';
import type { EditingController } from '../editing/m_editing';
import type { KeyboardNavigationController } from '../keyboard_navigation/m_keyboard_navigation';
import gridCoreUtils from '../m_utils';
import { CLASSES as MASTER_DETAIL_CLASSES } from '../master_detail/const';
import modules from '../modules/modules';
import type { OptionChanged, RowKey } from '../types';
import type { RowsView } from '../views/rows_view';
import type { ColumnWidth, ViewCellOptions } from '../views/types';
import { isPercentWidth } from '../views/utils';
import {
ADAPTIVE_COLUMN_BUTTON_CLASS,
ADAPTIVE_COLUMN_NAME,
ADAPTIVE_COLUMN_NAME_CLASS,
ADAPTIVE_ITEM_TEXT_CLASS,
ADAPTIVE_NAMESPACE,
ADAPTIVE_ROW_TYPE,
CLASSES,
COLUMN_HEADERS_VIEW,
COLUMN_VIEWS,
COMMAND_ADAPTIVE_HIDDEN_CLASS,
EDIT_MODE_FORM,
EDIT_MODE_POPUP,
EDIT_MODE_ROW,
FORM_ITEM_MODIFIED,
HIDDEN_COLUMN_CLASS,
HIDDEN_COLUMNS_WIDTH,
MASTER_DETAIL_CELL_CLASS,
ROWS_VIEW,
} from './const';
import type {
Expand All @@ -71,7 +64,7 @@ function adaptiveCellTemplate(container: DxElement, options: ViewCellOptions): v

if (options.rowType === 'data') {
const $adaptiveColumnButton = $('<span>')
.addClass(adaptiveColumnsController.addWidgetPrefix(ADAPTIVE_COLUMN_BUTTON_CLASS));
.addClass(adaptiveColumnsController.addWidgetPrefix(CLASSES.adaptiveColumnButton));

eventsEngine.on(
$adaptiveColumnButton,
Expand Down Expand Up @@ -117,7 +110,7 @@ export class AdaptiveColumnsViewController extends modules.ViewController {
command: ADAPTIVE_COLUMN_NAME,
visible: true,
adaptiveHidden: true,
cssClass: ADAPTIVE_COLUMN_NAME_CLASS,
cssClass: CLASSES.commandAdaptive,
alignment: 'center',
width: 'auto',
cellTemplate: adaptiveCellTemplate,
Expand Down Expand Up @@ -228,14 +221,14 @@ export class AdaptiveColumnsViewController extends modules.ViewController {
container.innerHTML = text;
}

$container.addClass(ADAPTIVE_ITEM_TEXT_CLASS);
$container.addClass(CLASSES.adaptiveItemText);
if (!isDefined(text) || text === '') {
$container.html('&nbsp;');
}

if (!this._isRowEditMode()) {
if (this._isItemModified(item, cellOptions)) {
$container.addClass(FORM_ITEM_MODIFIED);
$container.addClass(CLASSES.itemModified);
}
}

Expand Down Expand Up @@ -281,7 +274,7 @@ export class AdaptiveColumnsViewController extends modules.ViewController {
value: this._getValueFromCellOptions(columnIndex, cellOptions),
}), () => {
$container.contents().remove();
$container.removeClass(ADAPTIVE_ITEM_TEXT_CLASS);
$container.removeClass(CLASSES.adaptiveItemText);
renderFormTemplate();
});

Expand Down Expand Up @@ -501,9 +494,9 @@ export class AdaptiveColumnsViewController extends modules.ViewController {
* @extended: keyboard_navigation
*/
protected _showHiddenCellsInView({ $cells, isCommandColumn }: HiddenCellsInViewOptions): void {
let cssClassNameToRemove = this.addWidgetPrefix(HIDDEN_COLUMN_CLASS);
let cssClassNameToRemove = this.addWidgetPrefix(CLASSES.hiddenColumn);
if (isCommandColumn) {
cssClassNameToRemove = COMMAND_ADAPTIVE_HIDDEN_CLASS;
cssClassNameToRemove = CLASSES.commandAdaptiveHidden;
$cells.attr({
tabIndex: 0,
'aria-hidden': null,
Expand All @@ -519,14 +512,14 @@ export class AdaptiveColumnsViewController extends modules.ViewController {
if (view && view.isVisible() && view.element()) {
const viewName = view.name;
// @ts-expect-error the view is rendered here
const $hiddenCommandCells = view.element().find(`.${COMMAND_ADAPTIVE_HIDDEN_CLASS}`);
const $hiddenCommandCells = view.element().find(`.${CLASSES.commandAdaptiveHidden}`);
this._showHiddenCellsInView({
viewName,
$cells: $hiddenCommandCells,
isCommandColumn: true,
});
// @ts-expect-error the view is rendered here
const $hiddenCells = view.element().find(`.${this.addWidgetPrefix(HIDDEN_COLUMN_CLASS)}`);
const $hiddenCells = view.element().find(`.${this.addWidgetPrefix(CLASSES.hiddenColumn)}`);
this._showHiddenCellsInView({
viewName,
$cells: $hiddenCells,
Expand Down Expand Up @@ -559,7 +552,7 @@ export class AdaptiveColumnsViewController extends modules.ViewController {

private _isCellValid($cell: dxElementWrapper | undefined): boolean | number | undefined {
return $cell?.length
&& !$cell.hasClass(MASTER_DETAIL_CELL_CLASS)
&& !$cell.hasClass(MASTER_DETAIL_CLASSES.detailCell)
&& !$cell.hasClass(VIEW_CLASSES.groupCell);
}

Expand Down Expand Up @@ -636,8 +629,8 @@ export class AdaptiveColumnsViewController extends modules.ViewController {
*/
protected _hideVisibleCellInView({ $cell, isCommandColumn }: HiddenCellInViewOptions): void {
const cssClassNameToAdd = isCommandColumn
? COMMAND_ADAPTIVE_HIDDEN_CLASS
: this.addWidgetPrefix(HIDDEN_COLUMN_CLASS);
? CLASSES.commandAdaptiveHidden
: this.addWidgetPrefix(CLASSES.hiddenColumn);
$cell.attr({
tabIndex: -1,
'aria-hidden': true,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import type { InternalGridOptions, Module } from '../types';
import { AdaptiveColumnsViewController } from './adaptivity';
import { adaptivityColumnsControllerExtender } from './extenders/adaptivity_columns_controller';
import { adaptivityColumnsResizerViewControllerExtender } from './extenders/adaptivity_columns_resizer_view_controller';
import { adaptivityDataControllerExtender } from './extenders/adaptivity_data_controller';
Expand All @@ -9,7 +10,6 @@ import { adaptivityHeadersKeyboardNavigationViewControllerExtender } from './ext
import { adaptivityKeyboardNavigationViewControllerExtender } from './extenders/adaptivity_keyboard_navigation_view_controller';
import { adaptivityResizingViewControllerExtender } from './extenders/adaptivity_resizing_view_controller';
import { adaptivityRowsViewExtender } from './extenders/adaptivity_rows_view';
import { AdaptiveColumnsViewController } from './m_adaptivity';

export const adaptivityModule: Module = {
defaultOptions(): Pick<InternalGridOptions, 'columnHidingEnabled'> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,23 +7,19 @@ export const ADAPTIVE_NAMESPACE = 'dxDataGridAdaptivity';
export const HIDDEN_COLUMNS_WIDTH = 'adaptiveHidden';
export const ADAPTIVE_ROW_TYPE = 'detailAdaptive';

export const FORM_ITEM_MODIFIED = 'dx-item-modified';
export const CLASSES = {
itemModified: 'dx-item-modified',
hiddenColumn: 'hidden-column',
adaptiveColumnButton: 'adaptive-more',
commandAdaptive: 'dx-command-adaptive',
commandAdaptiveHidden: 'dx-command-adaptive-hidden',
adaptiveDetailRow: 'dx-adaptive-detail-row',
adaptiveItemText: 'dx-adaptive-item-text',
lastDataCell: 'dx-last-data-cell',
revertTooltip: 'revert-tooltip',
};

export const HIDDEN_COLUMN_CLASS = 'hidden-column';
export const ADAPTIVE_COLUMN_BUTTON_CLASS = 'adaptive-more';
export const ADAPTIVE_COLUMN_NAME_CLASS = 'dx-command-adaptive';
export const COMMAND_ADAPTIVE_HIDDEN_CLASS = 'dx-command-adaptive-hidden';
export const ADAPTIVE_DETAIL_ROW_CLASS = 'dx-adaptive-detail-row';
export const ADAPTIVE_ITEM_TEXT_CLASS = 'dx-adaptive-item-text';
export const MASTER_DETAIL_CELL_CLASS = 'dx-master-detail-cell';
export const LAST_DATA_CELL_CLASS = 'dx-last-data-cell';
export const ADAPTIVE_COLUMN_NAME = 'adaptive';
export const EDIT_MODE_BATCH = 'batch';
export const EDIT_MODE_ROW = 'row';
export const EDIT_MODE_FORM = 'form';
export const EDIT_MODE_POPUP = 'popup';
export const REVERT_TOOLTIP_CLASS = 'revert-tooltip';

export const EXPAND_ARIA_NAME = 'dxDataGrid-ariaAdaptiveExpand';
export const COLLAPSE_ARIA_NAME = 'dxDataGrid-ariaAdaptiveCollapse';
export const LEGACY_SCROLLING_MODE = 'scrolling.legacyMode';
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ import type { ColumnsController } from '@ts/grids/grid_core/columns_controller/c
import type { Column } from '@ts/grids/grid_core/columns_controller/types';
import type { ModuleType } from '@ts/grids/grid_core/types';

import type { AdaptiveColumnsViewController } from '../adaptivity';
import { HIDDEN_COLUMNS_WIDTH } from '../const';
import type { AdaptiveColumnsViewController } from '../m_adaptivity';

export const adaptivityColumnsControllerExtender = (
Base: ModuleType<ColumnsController>,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,9 @@ import gridCoreUtils from '@ts/grids/grid_core/m_utils';
import type { MasterDetailDataControllerExtension } from '@ts/grids/grid_core/master_detail/m_master_detail';
import type { ModuleType, RowKey } from '@ts/grids/grid_core/types';

import {
ADAPTIVE_ROW_TYPE,
COLLAPSE_ARIA_NAME,
EXPAND_ARIA_NAME,
LEGACY_SCROLLING_MODE,
} from '../const';
import type { AdaptiveColumnsViewController } from '../m_adaptivity';
import { LEGACY_SCROLLING_MODE } from '../../virtual_scrolling/const';
import type { AdaptiveColumnsViewController } from '../adaptivity';
import { ADAPTIVE_ROW_TYPE, COLLAPSE_ARIA_NAME, EXPAND_ARIA_NAME } from '../const';
import type { AdaptivityDataController } from '../types';
import { getAdaptiveDetailRowIndex, resolveAdaptiveDetailRowTarget } from '../utils';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,8 @@ import gridCoreUtils from '@ts/grids/grid_core/m_utils';
import type { ModuleType } from '@ts/grids/grid_core/types';
import { FIELD_ITEM_CONTENT_CLASS } from '@ts/ui/form/constants';

import {
ADAPTIVE_ROW_TYPE,
EDIT_MODE_BATCH,
EDIT_MODE_ROW,
} from '../const';
import { EDIT_MODE_BATCH, EDIT_MODE_ROW } from '../../editing/const';
import { ADAPTIVE_ROW_TYPE } from '../const';
import type { AdaptivityDataController } from '../types';

export const adaptivityEditingViewControllerExtender = (
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
/* eslint-disable @typescript-eslint/explicit-function-return-type */
/* eslint-disable @typescript-eslint/no-unsafe-return */
import type { EditorFactory } from '@ts/grids/grid_core/editor_factory/m_editor_factory';
import type { EditorFactory } from '@ts/grids/grid_core/editor_factory/editor_factory';
import type { ModuleType } from '@ts/grids/grid_core/types';
import { FIELD_ITEM_CONTENT_CLASS } from '@ts/ui/form/constants';

import { REVERT_TOOLTIP_CLASS } from '../const';
import { CLASSES } from '../const';

export const adaptivityEditorFactoryViewControllerExtender = (
Base: ModuleType<EditorFactory>,
Expand All @@ -21,6 +21,6 @@ export const adaptivityEditorFactoryViewControllerExtender = (
* Overrides interface
*/
public _getRevertTooltipsSelector() {
return `${super._getRevertTooltipsSelector()}, .${FIELD_ITEM_CONTENT_CLASS} .${this.addWidgetPrefix(REVERT_TOOLTIP_CLASS)}`;
return `${super._getRevertTooltipsSelector()}, .${FIELD_ITEM_CONTENT_CLASS} .${this.addWidgetPrefix(CLASSES.revertTooltip)}`;
}
};
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
/* eslint-disable @typescript-eslint/no-explicit-any */
import type { Column } from '@ts/grids/grid_core/columns_controller/types';
import type { Direction } from '@ts/grids/grid_core/keyboard_navigation/const';
import type { HeadersKeyboardNavigationController } from '@ts/grids/grid_core/keyboard_navigation/m_headers_keyboard_navigation';
import type { HeadersKeyboardNavigationController } from '@ts/grids/grid_core/keyboard_navigation/headers_keyboard_navigation';
import type { ModuleType } from '@ts/grids/grid_core/types';

import { HIDDEN_COLUMNS_WIDTH } from '../const';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,7 @@ import type { Column } from '@ts/grids/grid_core/columns_controller/types';
import type { KeyboardNavigationController } from '@ts/grids/grid_core/keyboard_navigation/m_keyboard_navigation';
import type { ModuleType } from '@ts/grids/grid_core/types';

import {
ADAPTIVE_ITEM_TEXT_CLASS,
COMMAND_ADAPTIVE_HIDDEN_CLASS,
HIDDEN_COLUMN_CLASS,
HIDDEN_COLUMNS_WIDTH,
} from '../const';
import { CLASSES, HIDDEN_COLUMNS_WIDTH } from '../const';

function focusCellHandler(e): void {
const $nextCell = e.data?.$nextCell;
Expand All @@ -28,8 +23,8 @@ export const adaptivityKeyboardNavigationViewControllerExtender = (
public _isCellValid($cell, isClick?) {
return (
super._isCellValid($cell, isClick)
&& !$cell.hasClass(this.addWidgetPrefix(HIDDEN_COLUMN_CLASS))
&& !$cell.hasClass(COMMAND_ADAPTIVE_HIDDEN_CLASS)
&& !$cell.hasClass(this.addWidgetPrefix(CLASSES.hiddenColumn))
&& !$cell.hasClass(CLASSES.commandAdaptiveHidden)
);
}

Expand Down Expand Up @@ -58,6 +53,6 @@ export const adaptivityKeyboardNavigationViewControllerExtender = (
}

public _isCellElement($cell) {
return super._isCellElement($cell) || $cell.hasClass(ADAPTIVE_ITEM_TEXT_CLASS);
return super._isCellElement($cell) || $cell.hasClass(CLASSES.adaptiveItemText);
}
};
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,7 @@ import type { RowsView } from '@ts/grids/grid_core/views/rows_view';
import { FIELD_ITEM_CONTENT_CLASS } from '@ts/ui/form/constants';

import {
ADAPTIVE_COLUMN_NAME_CLASS,
ADAPTIVE_DETAIL_ROW_CLASS,
ADAPTIVE_ROW_TYPE,
EXPAND_ARIA_NAME,
HIDDEN_COLUMN_CLASS,
HIDDEN_COLUMNS_WIDTH,
LAST_DATA_CELL_CLASS,
ADAPTIVE_ROW_TYPE, CLASSES, EXPAND_ARIA_NAME, HIDDEN_COLUMNS_WIDTH,
} from '../const';
import type { AdaptivityDataController } from '../types';

Expand Down Expand Up @@ -47,7 +41,7 @@ export const adaptivityRowsViewExtender = (
const $row = super._createRow.apply(this, arguments as any);

if (row?.rowType === ADAPTIVE_ROW_TYPE && row.key === this._dataController.getAdaptiveExpandedKey()) {
$row.addClass(ADAPTIVE_DETAIL_ROW_CLASS);
$row.addClass(CLASSES.adaptiveDetailRow);
}
return $row;
}
Expand All @@ -59,7 +53,7 @@ export const adaptivityRowsViewExtender = (
const hiddenColumnsLength = this.adaptiveColumnsController.getHiddenColumns().length;

if (hidingColumnsQueueLength && !hiddenColumnsLength) {
getDataCellElements($row).last().addClass(LAST_DATA_CELL_CLASS);
getDataCellElements($row).last().addClass(CLASSES.lastDataCell);
}

if (options.row.rowType === 'data') {
Expand All @@ -81,7 +75,7 @@ export const adaptivityRowsViewExtender = (
super._cellPrepared.apply(this, arguments as any);

if (options.row.rowType !== ADAPTIVE_ROW_TYPE && options.column.visibleWidth === HIDDEN_COLUMNS_WIDTH) {
$cell.addClass(this.addWidgetPrefix(HIDDEN_COLUMN_CLASS));
$cell.addClass(this.addWidgetPrefix(CLASSES.hiddenColumn));
}
}

Expand Down Expand Up @@ -120,6 +114,6 @@ export const adaptivityRowsViewExtender = (
// @ts-expect-error
const isClickable = super.isClickableElement?.($target) ?? false;

return isClickable || !!$target.closest(`.${ADAPTIVE_COLUMN_NAME_CLASS}`).length;
return isClickable || !!$target.closest(`.${CLASSES.commandAdaptive}`).length;
}
};
Loading
Loading