dhx-suite 9.2.4 → 9.2.6

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.
@@ -75,8 +75,13 @@ export declare class DataCollection<T extends IDataItem = IDataItem> implements
75
75
  getMetaMap(obj: T): any;
76
76
  setRange(from: number, to: number): void;
77
77
  getRawData(from: number, to: number, order?: T[], mode?: number): T[];
78
- protected _add(newItem: IDataItem, index?: number): Id;
79
- protected _remove(id: Id): void;
78
+ protected _add({ newItem, index, order, batch, }: {
79
+ newItem: IDataItem;
80
+ batch: IDataItem[];
81
+ order?: number;
82
+ index?: number;
83
+ }): Id;
84
+ protected _remove(id: Id, batch: Id[], index?: number): void;
80
85
  protected _copy(id: Id, index: number, target?: IDataCollection | ITreeCollection, targetId?: Id, key?: number): Id;
81
86
  protected _move(id: Id, index: number, target?: IDataCollection | ITreeCollection, targetId?: Id, key?: number, newId?: Id): Id;
82
87
  protected _addCore(obj: IDataItem, index?: number): Id;
@@ -4,11 +4,11 @@ import { DataCallback, DataEvents, IDataCollection, IDataItem, ITreeCollection,
4
4
  import { Id } from "../../ts-common/types";
5
5
  export declare function addToOrder(store: any, obj: object, parent: Id, index: number): void;
6
6
  export declare class TreeCollection<T extends IDataItem = IDataItem> extends DataCollection<T> implements ITreeCollection<T> {
7
- protected _childs: {
7
+ protected _children: {
8
8
  [id: string]: T[];
9
9
  };
10
10
  protected _root: Id;
11
- protected _initChilds: {
11
+ protected _initChildren: {
12
12
  [id: string]: T[];
13
13
  };
14
14
  constructor(config?: any, events?: IEventSystem<DataEvents>);
@@ -41,7 +41,13 @@ export declare class TreeCollection<T extends IDataItem = IDataItem> extends Dat
41
41
  map(callback: DataCallback<T>, parent?: Id, direct?: boolean): any[];
42
42
  getRawData(from: number, to: number, order?: T[], mode?: number, parent?: Id): T[];
43
43
  protected flatten(input: T[]): T[];
44
- protected _add(newItem: IDataItem, index?: number, parent?: Id, key?: number): Id;
44
+ protected _add({ newItem, index, parent, order, batch, }: {
45
+ newItem: IDataItem;
46
+ batch: IDataItem[];
47
+ index: number;
48
+ parent: Id;
49
+ order?: number;
50
+ }): Id;
45
51
  protected _setParent(item: IDataItem, parent: Id): void;
46
52
  protected _copy(id: Id, index: number, target?: IDataCollection | ITreeCollection, targetId?: Id, key?: number): Id;
47
53
  protected _move(id: Id, index: number, target?: ITreeCollection | IDataCollection, targetId?: Id, key?: number): Id;
@@ -50,11 +56,13 @@ export declare class TreeCollection<T extends IDataItem = IDataItem> extends Dat
50
56
  id?: Id;
51
57
  grouping: any;
52
58
  }): void;
53
- protected _removeCore(id: any): void;
59
+ protected _removeCore(id: Id): void;
60
+ private _removeFromParentList;
61
+ private _removeChildren;
62
+ private _removeFromOrders;
54
63
  protected _addToOrder(_order: any, obj: any, index: number): void;
55
64
  protected _parse_data(data: any, parent?: Id): void;
56
65
  protected _parseItem(item: any): void;
57
- private _fastDeleteChilds;
58
66
  private _recursiveFilter;
59
67
  private _serialize;
60
68
  private _applyFilter;
@@ -262,12 +262,12 @@ export declare enum DataEvents {
262
262
  }
263
263
  export interface IDataEventsHandlersMap {
264
264
  [key: string]: (...args: any[]) => any;
265
- [DataEvents.change]: (id?: Id, status?: Statuses, updatedItem?: any) => void;
265
+ [DataEvents.change]: (id?: Id, status?: Statuses, updatedItem?: IDataItem) => void;
266
266
  [DataEvents.filter]: (filter?: IFilter) => void;
267
- [DataEvents.afterAdd]: (newItem: any) => void;
268
- [DataEvents.afterRemove]: (removedItem: any) => void;
269
- [DataEvents.beforeAdd]: (newItem: any) => boolean | void;
270
- [DataEvents.beforeRemove]: (removedItem: any) => boolean | void;
267
+ [DataEvents.beforeAdd]: (newItem: IDataItem, batch: IDataItem[], index: number) => boolean | void;
268
+ [DataEvents.afterAdd]: (newItem: IDataItem, batch: IDataItem[], index: number) => void;
269
+ [DataEvents.beforeRemove]: (removedItem: IDataItem, batch: IDataItem[], index: number) => boolean | void;
270
+ [DataEvents.afterRemove]: (removedItem: IDataItem, batch: IDataItem[], index: number) => void;
271
271
  [DataEvents.removeAll]: () => void;
272
272
  [DataEvents.dataRequest]: (from: number, to: number) => void;
273
273
  [DataEvents.load]: () => void;
@@ -108,4 +108,5 @@ export declare class Grid extends View implements IGrid {
108
108
  private _normalizeConfig;
109
109
  protected _autoScroll(mode: IDirection): void;
110
110
  private _applyAutoWidth;
111
+ private _handleRow;
111
112
  }
@@ -1,5 +1,6 @@
1
1
  import { IContainerConfig } from "../../../ts-common/core";
2
2
  import { ICol, IColumnsWidth, IGridConfig, IRow, AdjustTargetType, TOption, IScrollState, IVisibleRange, ISizes } from "./../types";
3
+ import { Id } from "../../../ts-common/types";
3
4
  export declare function getTotalRowHeight(row: IRow): number;
4
5
  export declare function normalizeArray(obj: any, name: string): void;
5
6
  export declare function measureTextHeight({ text, width, lineHeight, font, htmlEnable, }: {
@@ -11,7 +12,7 @@ export declare function measureTextHeight({ text, width, lineHeight, font, htmlE
11
12
  }): number;
12
13
  export declare function countColumns(config: IGridConfig, columns: ICol[]): number;
13
14
  export declare function calculateVisibleRange(viewPortSize: ISizes, scroll: IScrollState, config: IGridConfig, data: IRow[]): IVisibleRange;
14
- export declare function getUnique(arr: any[], name: string, multiselection: boolean, editorType: ICol["editorType"]): any[];
15
+ export declare function getNormalizeFilterData(arr: any[], name: Id, multiselection: boolean, editorType: ICol["editorType"]): any[];
15
16
  export declare const getMaxRowHeight: ({ cols, row, config, }: {
16
17
  row: IRow;
17
18
  cols: ICol[];
@@ -12,7 +12,6 @@ export declare class Layout extends Cell implements ILayout {
12
12
  destructor(): void;
13
13
  toVDOM(): any;
14
14
  removeCell(id: string): void;
15
- addCell(config: ICellConfig, index?: number): void;
16
15
  getId(index: number): string;
17
16
  getRefs(name: string): any;
18
17
  getCell(id: string): any;
@@ -21,6 +20,7 @@ export declare class Layout extends Cell implements ILayout {
21
20
  cell(id: string): any;
22
21
  progressShow(): void;
23
22
  progressHide(): void;
23
+ protected _addCell(config: ICellConfig, index?: number): void;
24
24
  protected _getCss(content?: boolean): string;
25
25
  private _parseConfig;
26
26
  protected _createCell(cell: ILayoutConfig): ICell;
@@ -82,7 +82,6 @@ export interface IProCell extends ICell {
82
82
  export interface ILayout extends ICell {
83
83
  config: ILayoutConfig;
84
84
  removeCell(id: string): void;
85
- addCell(config: ICellConfig, index: number): any;
86
85
  getRefs(str: any): any;
87
86
  getCell(id: string): ICell;
88
87
  getId(index: number): string;
@@ -1,14 +1,15 @@
1
- import { ISpacer, ISeparator, IMenuItem, NavigationBarEvents, DataEvents, INavbar, INavbarEventHandlersMap, ITitle, ICustomHTML, INavItem } from "../../ts-navbar";
1
+ import { ISpacer, ISeparator, IMenuItem, NavigationBarEvents, DataEvents, INavbar, INavbarEventHandlersMap, ITitle, ICustomHTML, INavItem, NavigationType } from "../../ts-navbar";
2
2
  import { IEventSystem } from "../../ts-common/events";
3
- import { IDataEventsHandlersMap, TreeCollection } from "../../ts-data";
3
+ import { IDataEventsHandlersMap, IDataItem, TreeCollection } from "../../ts-data";
4
4
  import { ScrollView } from "../../ts-common/ScrollView";
5
5
  export interface ISidebarConfig {
6
- css?: string;
7
- menuCss?: string;
8
- data?: any[] | TreeCollection<ISidebarElement>;
6
+ data?: IDataItem[] | TreeCollection<ISidebarElement>;
9
7
  width?: number | string;
10
8
  minWidth?: number | string;
9
+ css?: string;
10
+ menuCss?: string;
11
11
  collapsed?: boolean;
12
+ navigationType?: NavigationType;
12
13
  }
13
14
  export type ISidebarElement = ISeparator | ISpacer | ITitle | INavItem | IMenuItem | ICustomHTML;
14
15
  export interface ISidebar extends INavbar {
@@ -51,8 +51,6 @@ export interface ITabbar {
51
51
  isDisabled(id?: string): boolean;
52
52
  /** @deprecated See a documentation: https://docs.dhtmlx.com/ */
53
53
  removeCell(id: string): void;
54
- /** @deprecated See a documentation: https://docs.dhtmlx.com/ */
55
- addCell(config: ITabbarConfig, index: number): any;
56
54
  }
57
55
  export interface ITabbarEventHandlersMap {
58
56
  [key: string]: (...args: any[]) => any;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dhx-suite",
3
- "version": "9.2.4",
3
+ "version": "9.2.6",
4
4
  "description": "dhtmlxSuite widget",
5
5
  "homepage":"https://docs.dhtmlx.com/suite/",
6
6
  "license":"GPL",
package/readme.txt CHANGED
@@ -1,7 +1,7 @@
1
1
  DHTMLX Suite
2
2
  ============
3
3
 
4
- Version 9.2.4, Standard
4
+ Version 9.2.6, Standard
5
5
 
6
6
  License
7
7
  ------------
package/whatsnew.txt CHANGED
@@ -1,3 +1,28 @@
1
+ # Version 9.2.6 (January 13, 2026)
2
+
3
+ ### Fixes
4
+
5
+ - Dataview, Grid, List. The issue with the functionality of the `beforeAdd` event during drag-n-drop
6
+ - Grid. The ability to enable grouping in Grid with `subrow` is fixed
7
+ - Grid. The ability to group a non-existent column without actual grouping is fixed
8
+ - Grid. The `comboFilter` not updating the options on adding new items or editing the existing ones
9
+ - Grid. Incorrect behavior of the `comboFilter` with enabled multiselection
10
+ - Grid. The issue with the custom scroll being duplicated by the system scroll in Firefox on Windows 11
11
+ - Grid. On grouping by a column with options, export to CSV/XLSX outputs the option's id instead of the displayed option's value
12
+ - Sidebar. The functionality of the `navigationType` configuration option is fixed
13
+
14
+ # Version 9.2.5 (November 28, 2025)
15
+
16
+ ### Updates
17
+
18
+ - DataCollection. The `beforeAdd`, `afterAdd`, `beforeRemove`, and `afterRemove` events are updated to include the `batch` and `index` parameters for handling batch operations
19
+
20
+ ### Fixes
21
+
22
+ - TreeCollection. The issue where the `items` property of a parent object returned by the `getItem()` and `find()` methods included a removed child item is fixed
23
+ - Grid. Improved performance of adding and removing data via the add() and remove() methods when the adjust configuration is enabled
24
+ - Grid. The issue where the combo filter with enabled `multiselection` displayed all options ignoring other active filters is fixed
25
+
1
26
  # Version 9.2.4 (November 17, 2025)
2
27
 
3
28
  ### Fixes