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 @@ -29,6 +29,7 @@ export const adaptivityModule: Module = {
draggingHeader: adaptivityDraggingHeaderViewControllerExtender,
editing: adaptivityEditingViewControllerExtender,
resizing: adaptivityResizingViewControllerExtender,
// @ts-expect-error the extender assumes the master detail extension of DataController
data: adaptivityDataControllerExtender,
editorFactory: adaptivityEditorFactoryViewControllerExtender,
columns: adaptivityColumnsControllerExtender,
Expand Down
18 changes: 8 additions & 10 deletions packages/devextreme/js/__internal/grids/grid_core/m_modules.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import errors from '@js/ui/widget/ui.errors';

import type {
Controllers, GridPropertyType, InternalGrid, InternalGridOptions, Module,
ModuleType,
OptionChanged,
Views,
} from './m_types';
Expand Down Expand Up @@ -381,21 +382,18 @@ export class View extends ModuleItem {

const MODULES_ORDER_MAX_INDEX = 1000000;

type ModuleTypeExtender = (Base: ModuleType<any>) => ModuleType<any>;

function getExtendedTypes(
types: Record<string, unknown>,
moduleExtenders: Record<string, unknown> = {},
): Record<string, typeof ModuleItem> {
types: Record<string, ModuleType<any>>,
moduleExtenders: Record<string, ModuleTypeExtender | undefined> = {},
): Record<string, ModuleType<any>> {
const extendTypes = { };
Object.entries(moduleExtenders)
.forEach(([name, extender]) => {
const currentType = types[name];
if (currentType) {
if (isFunction(extender)) {
extendTypes[name] = extender(currentType);
} else {
const classType = currentType as { inherit: (type: unknown) => unknown };
extendTypes[name] = classType.inherit(extender);
}
if (currentType && extender) {
extendTypes[name] = extender(currentType);
}
});
return extendTypes;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -274,13 +274,11 @@ type ViewTypes = {
export type ModuleType<T extends ModuleItem> = (new (...args: any[]) => T);

type ControllersExtender = {
[P in keyof Controllers]: ((Base: ModuleType<Controllers[P]>) => ModuleType<Controllers[P]>)
| Record<string, any>;
[P in keyof Controllers]: (Base: ModuleType<Controllers[P]>) => ModuleType<Controllers[P]>;
};

type ViewsExtender = {
[P in keyof Views]: ((Base: ModuleType<Views[P]>) => ModuleType<Views[P]>)
| Record<string, any>;
[P in keyof Views]: (Base: ModuleType<Views[P]>) => ModuleType<Views[P]>;
};

export interface Module {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import { normalizeDataSourceOptions } from '@js/common/data/data_source/utils';
import Class from '@js/core/class';
import { EventsStrategy } from '@js/core/events_strategy';
import { normalizeIndexes } from '@js/core/utils/array';
import { Deferred, when } from '@js/core/utils/deferred';
Expand Down Expand Up @@ -368,7 +367,7 @@ class PivotGridDataSource {
|| (storeOptions instanceof Store)
|| Array.isArray(storeOptions)) {
store = this.createLocalOrRemoteStore(dataSourceOptions, notifyProgress);
} else if (storeOptions instanceof Class || storeOptions instanceof xmlaStore.XmlaStore) {
} else if (isFunction(storeOptions.load) && isFunction(storeOptions.getFields)) {
store = storeOptions;
}
}
Expand Down
Loading
Loading