slickgrid-react 4.1.0 → 4.3.0

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.
Files changed (34) hide show
  1. package/README.md +5 -5
  2. package/dist/cjs/components/slickgrid-react.js +16 -10
  3. package/dist/cjs/components/slickgrid-react.js.map +1 -1
  4. package/dist/cjs/index.js.map +1 -1
  5. package/dist/cjs/models/index.js +0 -1
  6. package/dist/cjs/models/index.js.map +1 -1
  7. package/dist/esm/components/slickgrid-react.js +16 -10
  8. package/dist/esm/components/slickgrid-react.js.map +1 -1
  9. package/dist/esm/index.js.map +1 -1
  10. package/dist/esm/models/index.js +0 -1
  11. package/dist/esm/models/index.js.map +1 -1
  12. package/dist/types/components/slickgrid-react.d.ts +2 -0
  13. package/dist/types/components/slickgrid-react.d.ts.map +1 -1
  14. package/dist/types/components/slickgridReactProps.d.ts +19 -7
  15. package/dist/types/components/slickgridReactProps.d.ts.map +1 -1
  16. package/dist/types/index.d.ts +2 -2
  17. package/dist/types/index.d.ts.map +1 -1
  18. package/dist/types/models/index.d.ts +0 -1
  19. package/dist/types/models/index.d.ts.map +1 -1
  20. package/dist/types/models/slickgridReactInstance.interface.d.ts +1 -2
  21. package/dist/types/models/slickgridReactInstance.interface.d.ts.map +1 -1
  22. package/package.json +34 -34
  23. package/src/slickgrid-react/components/slickgrid-react.tsx +17 -10
  24. package/src/slickgrid-react/components/slickgridReactProps.ts +7 -7
  25. package/src/slickgrid-react/index.ts +0 -2
  26. package/src/slickgrid-react/models/index.ts +0 -1
  27. package/src/slickgrid-react/models/slickgridReactInstance.interface.ts +1 -2
  28. package/dist/cjs/models/slickGrid.interface.js +0 -3
  29. package/dist/cjs/models/slickGrid.interface.js.map +0 -1
  30. package/dist/esm/models/slickGrid.interface.js +0 -2
  31. package/dist/esm/models/slickGrid.interface.js.map +0 -1
  32. package/dist/types/models/slickGrid.interface.d.ts +0 -7
  33. package/dist/types/models/slickGrid.interface.d.ts.map +0 -1
  34. package/src/slickgrid-react/models/slickGrid.interface.ts +0 -7
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "slickgrid-react",
3
- "version": "4.1.0",
3
+ "version": "4.3.0",
4
4
  "description": "Slickgrid components made available in React",
5
5
  "keywords": [
6
6
  "react",
@@ -34,7 +34,7 @@
34
34
  },
35
35
  "repository": {
36
36
  "type": "git",
37
- "url": "git+ssh://git@github.com/ghiscoding/slickgrid-react.git"
37
+ "url": "https://github.com/ghiscoding/slickgrid-react.git"
38
38
  },
39
39
  "license": "MIT",
40
40
  "author": "Ghislain B.",
@@ -96,18 +96,18 @@
96
96
  "/src/slickgrid-react"
97
97
  ],
98
98
  "dependencies": {
99
- "@slickgrid-universal/common": "~4.1.0",
100
- "@slickgrid-universal/custom-footer-component": "~4.1.0",
101
- "@slickgrid-universal/empty-warning-component": "~4.1.0",
102
- "@slickgrid-universal/event-pub-sub": "~4.1.0",
103
- "@slickgrid-universal/pagination-component": "~4.1.0",
99
+ "@slickgrid-universal/common": "~4.3.0",
100
+ "@slickgrid-universal/custom-footer-component": "~4.3.0",
101
+ "@slickgrid-universal/empty-warning-component": "~4.3.0",
102
+ "@slickgrid-universal/event-pub-sub": "~4.3.0",
103
+ "@slickgrid-universal/pagination-component": "~4.3.0",
104
104
  "dequal": "^2.0.3",
105
- "dompurify": "^3.0.6",
105
+ "dompurify": "^3.0.8",
106
106
  "font-awesome": "^4.7.0",
107
- "i18next": "^23.7.11",
107
+ "i18next": "^23.7.18",
108
108
  "moment-mini": "^2.29.4",
109
109
  "regenerator-runtime": "^0.14.1",
110
- "sortablejs": "^1.15.1"
110
+ "sortablejs": "^1.15.2"
111
111
  },
112
112
  "devDependencies": {
113
113
  "@4tw/cypress-drag-drop": "^2.2.5",
@@ -115,46 +115,46 @@
115
115
  "@fnando/sparkline": "^0.3.10",
116
116
  "@popperjs/core": "^2.11.8",
117
117
  "@release-it/conventional-changelog": "^8.0.1",
118
- "@slickgrid-universal/composite-editor-component": "~4.1.0",
119
- "@slickgrid-universal/custom-tooltip-plugin": "~4.1.0",
120
- "@slickgrid-universal/excel-export": "~4.1.0",
121
- "@slickgrid-universal/graphql": "~4.1.0",
122
- "@slickgrid-universal/odata": "~4.1.0",
123
- "@slickgrid-universal/rxjs-observable": "~4.1.0",
124
- "@slickgrid-universal/text-export": "~4.1.0",
125
- "@testing-library/jest-dom": "^6.1.5",
118
+ "@slickgrid-universal/composite-editor-component": "~4.3.0",
119
+ "@slickgrid-universal/custom-tooltip-plugin": "~4.3.0",
120
+ "@slickgrid-universal/excel-export": "~4.3.0",
121
+ "@slickgrid-universal/graphql": "~4.3.0",
122
+ "@slickgrid-universal/odata": "~4.3.0",
123
+ "@slickgrid-universal/rxjs-observable": "~4.3.0",
124
+ "@slickgrid-universal/text-export": "~4.3.0",
125
+ "@testing-library/jest-dom": "^6.2.0",
126
126
  "@testing-library/react": "^14.1.2",
127
- "@testing-library/user-event": "^14.5.1",
127
+ "@testing-library/user-event": "^14.5.2",
128
128
  "@types/bluebird": "^3.5.42",
129
129
  "@types/dompurify": "^3.0.5",
130
130
  "@types/flatpickr": "^3.1.2",
131
131
  "@types/fnando__sparkline": "^0.3.7",
132
132
  "@types/i18next-xhr-backend": "^1.4.2",
133
133
  "@types/jest": "^29.5.11",
134
- "@types/node": "^20.10.5",
135
- "@types/react": "^18.2.45",
134
+ "@types/node": "^20.11.5",
135
+ "@types/react": "^18.2.48",
136
136
  "@types/react-dom": "^18.2.18",
137
137
  "@types/sortablejs": "^1.15.7",
138
138
  "@types/text-encoding-utf-8": "^1.0.5",
139
139
  "@types/webpack": "^5.28.5",
140
- "@typescript-eslint/eslint-plugin": "^6.15.0",
141
- "@typescript-eslint/parser": "^6.15.0",
140
+ "@typescript-eslint/eslint-plugin": "^6.19.0",
141
+ "@typescript-eslint/parser": "^6.19.0",
142
142
  "@webpack-cli/serve": "^2.0.5",
143
143
  "bootstrap": "^5.3.2",
144
144
  "clean-webpack-plugin": "^4.0.0",
145
145
  "concurrently": "^8.2.2",
146
- "copy-webpack-plugin": "^11.0.0",
146
+ "copy-webpack-plugin": "^12.0.2",
147
147
  "copyfiles": "^2.4.1",
148
- "css-loader": "^6.8.1",
148
+ "css-loader": "^6.9.1",
149
149
  "custom-event-polyfill": "^1.0.7",
150
- "cypress": "^13.6.1",
150
+ "cypress": "^13.6.3",
151
151
  "esbuild-loader": "^4.0.2",
152
152
  "eslint": "^8.56.0",
153
153
  "eslint-plugin-import": "^2.29.1",
154
154
  "eslint-plugin-prefer-arrow": "^1.2.3",
155
155
  "fetch-jsonp": "^1.3.0",
156
156
  "font-awesome": "^4.7.0",
157
- "html-loader": "4.2.0",
157
+ "html-loader": "5.0.0",
158
158
  "html-webpack-plugin": "5.6.0",
159
159
  "i18next-http-backend": "^2.4.2",
160
160
  "isomorphic-fetch": "^3.0.0",
@@ -163,21 +163,21 @@
163
163
  "jest-environment-jsdom": "^29.7.0",
164
164
  "jest-extended": "^4.0.2",
165
165
  "jsdom-global": "^3.0.2",
166
- "mini-css-extract-plugin": "^2.7.6",
166
+ "mini-css-extract-plugin": "^2.7.7",
167
167
  "moment-mini": "^2.29.4",
168
168
  "npm-run-all2": "^6.1.1",
169
169
  "promise-polyfill": "^8.3.0",
170
170
  "react": "^18.2.0",
171
171
  "react-dom": "^18.2.0",
172
- "react-i18next": "^13.5.0",
173
- "react-router-dom": "^6.21.0",
172
+ "react-i18next": "^14.0.1",
173
+ "react-router-dom": "^6.21.3",
174
174
  "release-it": "^17.0.1",
175
175
  "rimraf": "^5.0.5",
176
176
  "rxjs": "^7.8.1",
177
- "sass": "^1.69.5",
178
- "sass-loader": "^13.3.2",
177
+ "sass": "^1.70.0",
178
+ "sass-loader": "^14.0.0",
179
179
  "serve": "^14.2.1",
180
- "style-loader": "3.3.3",
180
+ "style-loader": "3.3.4",
181
181
  "ts-jest": "^29.1.1",
182
182
  "ts-loader": "^9.5.1",
183
183
  "typescript": "^5.3.3",
@@ -190,6 +190,6 @@
190
190
  "npm": ">=8.5.0"
191
191
  },
192
192
  "resolutions": {
193
- "caniuse-lite": "1.0.30001566"
193
+ "caniuse-lite": "1.0.30001579"
194
194
  }
195
195
  }
@@ -109,6 +109,7 @@ export class SlickgridReact<TData = any> extends React.Component<SlickgridReactP
109
109
  protected _eventHandler!: SlickEventHandler;
110
110
  protected _eventPubSubService!: EventPubSubService;
111
111
  protected _hideHeaderRowAfterPageLoad = false;
112
+ protected _isAutosizeColsCalled = false;
112
113
  protected _isGridInitialized = false;
113
114
  protected _isDatasetInitialized = false;
114
115
  protected _isDatasetHierarchicalInitialized = false;
@@ -215,8 +216,9 @@ export class SlickgridReact<TData = any> extends React.Component<SlickgridReactP
215
216
 
216
217
  // expand/autofit columns on first page load
217
218
  // we can assume that if the prevDataset was empty then we are on first load
218
- if (this.grid && this.gridOptions.autoFitColumnsOnFirstLoad && prevDatasetLn === 0) {
219
+ if (this.grid && this.gridOptions.autoFitColumnsOnFirstLoad && prevDatasetLn === 0 && !this._isAutosizeColsCalled) {
219
220
  this.grid.autosizeColumns();
221
+ this._isAutosizeColsCalled = true;
220
222
  }
221
223
  }
222
224
 
@@ -288,6 +290,7 @@ export class SlickgridReact<TData = any> extends React.Component<SlickgridReactP
288
290
  this.sortService,
289
291
  this.treeDataService,
290
292
  this.props.translaterService,
293
+ () => this.gridService
291
294
  );
292
295
 
293
296
  this.gridStateService = this.props.externalServices?.gridStateService ?? new GridStateService(this.extensionService, this.filterService, this._eventPubSubService, this.sharedService, this.sortService, this.treeDataService);
@@ -400,6 +403,7 @@ export class SlickgridReact<TData = any> extends React.Component<SlickgridReactP
400
403
 
401
404
  this._gridOptions.translater = this.props.translaterService;
402
405
  this._eventHandler = eventHandler;
406
+ this._isAutosizeColsCalled = false;
403
407
 
404
408
  // when detecting a frozen grid, we'll automatically enable the mousewheel scroll handler so that we can scroll from both left/right frozen containers
405
409
  if (this._gridOptions && ((this._gridOptions.frozenRow !== undefined && this._gridOptions.frozenRow >= 0) || this._gridOptions.frozenColumn !== undefined && this._gridOptions.frozenColumn >= 0) && this._gridOptions.enableMouseWheelScrollHandler === undefined) {
@@ -966,11 +970,6 @@ export class SlickgridReact<TData = any> extends React.Component<SlickgridReactP
966
970
  throw new Error(`[Slickgrid-React] You cannot enable both autosize/fit viewport & resize by content, you must choose which resize technique to use. You can enable these 2 options ("autoFitColumnsOnFirstLoad" and "enableAutoSizeColumns") OR these other 2 options ("autosizeColumnsByCellContentOnFirstLoad" and "enableAutoResizeColumnsByCellContent").`);
967
971
  }
968
972
 
969
- // expand/autofit columns on first page load
970
- if (grid && options.autoFitColumnsOnFirstLoad && options.enableAutoSizeColumns && typeof grid.autosizeColumns === 'function') {
971
- this.grid.autosizeColumns();
972
- }
973
-
974
973
  // auto-resize grid on browser resize
975
974
  if (options.gridHeight || options.gridWidth) {
976
975
  this.resizerService.resizeGrid(0, { height: options.gridHeight, width: options.gridWidth });
@@ -978,10 +977,10 @@ export class SlickgridReact<TData = any> extends React.Component<SlickgridReactP
978
977
  this.resizerService.resizeGrid();
979
978
  }
980
979
 
981
- if (grid && options?.enableAutoResize) {
982
- if (options.autoFitColumnsOnFirstLoad && options.enableAutoSizeColumns && typeof grid.autosizeColumns === 'function') {
983
- grid.autosizeColumns();
984
- }
980
+ // expand/autofit columns on first page load
981
+ if (grid && options?.enableAutoResize && options.autoFitColumnsOnFirstLoad && options.enableAutoSizeColumns && !this._isAutosizeColsCalled) {
982
+ grid.autosizeColumns();
983
+ this._isAutosizeColsCalled = true;
985
984
  }
986
985
  }
987
986
 
@@ -1110,6 +1109,14 @@ export class SlickgridReact<TData = any> extends React.Component<SlickgridReactP
1110
1109
  return showing;
1111
1110
  }
1112
1111
 
1112
+ setData(data: TData[], shouldAutosizeColumns = false) {
1113
+ if (shouldAutosizeColumns) {
1114
+ this._isAutosizeColsCalled = false;
1115
+ this._currentDatasetLength = 0;
1116
+ }
1117
+ this.dataset = data || [];
1118
+ }
1119
+
1113
1120
  /**
1114
1121
  * Check if there's any Pagination Presets defined in the Grid Options,
1115
1122
  * if there are then load them in the paginationOptions object
@@ -23,7 +23,6 @@ import {
23
23
  SortService,
24
24
  TranslaterService,
25
25
  TreeDataService,
26
- SlickGridEventData,
27
26
  OnActiveCellChangedEventArgs,
28
27
  DragRowMove,
29
28
  OnAddNewRowEventArgs,
@@ -67,6 +66,7 @@ import {
67
66
  OnRowsOrCountChangedEventArgs,
68
67
  OnSetItemsCalledEventArgs,
69
68
  PagingInfo,
69
+ SlickGrid,
70
70
  } from '@slickgrid-universal/common';
71
71
  import { EventPubSubService } from '@slickgrid-universal/event-pub-sub';
72
72
  import { SlickgridReactInstance } from '../models';
@@ -111,14 +111,14 @@ export interface SlickgridReactProps {
111
111
 
112
112
  // Slick Grid events
113
113
  onActiveCellChanged?: (e: CustomEvent<{ eventData: any; args: OnActiveCellChangedEventArgs; }>) => void;
114
- onActiveCellPositionChanged?: (e: CustomEvent<{ eventData: any; args: SlickGridEventData; }>) => void;
114
+ onActiveCellPositionChanged?: (e: CustomEvent<{ eventData: any; args: { grid: SlickGrid; }; }>) => void;
115
115
  onAddNewRow?: (e: CustomEvent<{ eventData: any; args: OnAddNewRowEventArgs; }>) => void;
116
116
  onAutosizeColumns?: (e: CustomEvent<{ eventData: any; args: OnAutosizeColumnsEventArgs; }>) => void;
117
117
  onBeforeAppendCell?: (e: CustomEvent<{ eventData: any; args: OnBeforeAppendCellEventArgs; }>) => void;
118
118
  onBeforeSearchChange?: (e: CustomEvent<{ eventData: any; args: OnCellChangeEventArgs; }>) => void;
119
119
  onBeforeCellEditorDestroy?: (e: CustomEvent<{ eventData: any; args: OnBeforeCellEditorDestroyEventArgs; }>) => void;
120
120
  onBeforeColumnsResize?: (e: CustomEvent<{ eventData: any; args: OnBeforeColumnsResizeEventArgs; }>) => void;
121
- onBeforeDestroy?: (e: CustomEvent<{ eventData: any; args: SlickGridEventData; }>) => void;
121
+ onBeforeDestroy?: (e: CustomEvent<{ eventData: any; args: { grid: SlickGrid; }; }>) => void;
122
122
  onBeforeEditCell?: (e: CustomEvent<{ eventData: any; args: OnBeforeEditCellEventArgs; }>) => void;
123
123
  onBeforeHeaderCellDestroy?: (e: CustomEvent<{ eventData: any; args: OnBeforeHeaderCellDestroyEventArgs; }>) => void;
124
124
  onBeforeHeaderRowCellDestroy?: (e: CustomEvent<{ eventData: any; args: OnBeforeHeaderRowCellDestroyEventArgs; }>) => void;
@@ -133,7 +133,7 @@ export interface SlickgridReactProps {
133
133
  onColumnsResized?: (e: CustomEvent<{ eventData: any; args: OnColumnsResizedEventArgs; }>) => void;
134
134
  onColumnsResizeDblClick?: (e: CustomEvent<{ eventData: any; args: OnColumnsResizeDblClickEventArgs; }>) => void;
135
135
  onCompositeEditorChange?: (e: CustomEvent<{ eventData: any; args: OnCompositeEditorChangeEventArgs; }>) => void;
136
- onContextMenu?: (e: CustomEvent<{ eventData: any; args: SlickGridEventData; }>) => void;
136
+ onContextMenu?: (e: CustomEvent<{ eventData: any; args: { grid: SlickGrid; }; }>) => void;
137
137
  onDrag?: (e: CustomEvent<{ eventData: any; args: DragRowMove; }>) => void;
138
138
  onDragEnd?: (e: CustomEvent<{ eventData: any; args: DragRowMove; }>) => void;
139
139
  onDragInit?: (e: CustomEvent<{ eventData: any; args: DragRowMove; }>) => void;
@@ -151,10 +151,10 @@ export interface SlickgridReactProps {
151
151
  onHeaderRowMouseEnter?: (e: CustomEvent<{ eventData: any; args: OnHeaderMouseEventArgs; }>) => void;
152
152
  onHeaderRowMouseLeave?: (e: CustomEvent<{ eventData: any; args: OnHeaderMouseEventArgs; }>) => void;
153
153
  onKeyDown?: (e: CustomEvent<{ eventData: any; args: OnKeyDownEventArgs; }>) => void;
154
- onMouseEnter?: (e: CustomEvent<{ eventData: any; args: SlickGridEventData; }>) => void;
155
- onMouseLeave?: (e: CustomEvent<{ eventData: any; args: SlickGridEventData; }>) => void;
154
+ onMouseEnter?: (e: CustomEvent<{ eventData: any; args: { grid: SlickGrid; }; }>) => void;
155
+ onMouseLeave?: (e: CustomEvent<{ eventData: any; args: { grid: SlickGrid; }; }>) => void;
156
156
  onValidationError?: (e: CustomEvent<{ eventData: any; args: OnValidationErrorEventArgs; }>) => void;
157
- onViewportChanged?: (e: CustomEvent<{ eventData: any; args: SlickGridEventData; }>) => void;
157
+ onViewportChanged?: (e: CustomEvent<{ eventData: any; args: { grid: SlickGrid; }; }>) => void;
158
158
  onRendered?: (e: CustomEvent<{ eventData: any; args: OnRenderedEventArgs; }>) => void;
159
159
  onSelectedRowsChanged?: (e: CustomEvent<{ eventData: any; args: OnSelectedRowsChangedEventArgs; }>) => void;
160
160
  onSetOptions?: (e: CustomEvent<{ eventData: any; args: OnSetOptionsEventArgs; }>) => void;
@@ -9,7 +9,6 @@ import {
9
9
  SlickgridReactInstance,
10
10
  SlickgridReactComponentOutput,
11
11
  GridOption,
12
- SlickGrid,
13
12
  } from './models/index';
14
13
 
15
14
  // expose all public classes
@@ -24,7 +23,6 @@ export {
24
23
  SlickgridReactInstance,
25
24
  SlickgridReactComponentOutput,
26
25
  GridOption,
27
- SlickGrid,
28
26
  SlickgridReact,
29
27
  SlickgridConfig
30
28
  };
@@ -1,4 +1,3 @@
1
1
  export * from './slickgridReactInstance.interface';
2
2
  export * from './reactComponentOutput.interface';
3
3
  export * from './gridOption.interface';
4
- export * from './slickGrid.interface';
@@ -9,13 +9,12 @@ import {
9
9
  PaginationService,
10
10
  ResizerService,
11
11
  SlickDataView,
12
+ SlickGrid,
12
13
  SortService,
13
14
  TreeDataService
14
15
  } from '@slickgrid-universal/common';
15
16
  import { EventPubSubService } from '@slickgrid-universal/event-pub-sub';
16
17
 
17
- import { SlickGrid } from '../models/index';
18
-
19
18
  export interface SlickgridReactInstance {
20
19
  element: HTMLDivElement;
21
20
 
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=slickGrid.interface.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"slickGrid.interface.js","sourceRoot":"","sources":["../../../src/slickgrid-react/models/slickGrid.interface.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=slickGrid.interface.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"slickGrid.interface.js","sourceRoot":"","sources":["../../../src/slickgrid-react/models/slickGrid.interface.ts"],"names":[],"mappings":""}
@@ -1,7 +0,0 @@
1
- import { SlickGrid as UniversalSlickGrid } from '@slickgrid-universal/common';
2
- import { GridOption } from './gridOption.interface';
3
- export interface SlickGrid extends UniversalSlickGrid {
4
- /** Returns an object containing all of the Grid options set on the grid. See a list of Grid Options here. */
5
- getOptions(): GridOption;
6
- }
7
- //# sourceMappingURL=slickGrid.interface.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"slickGrid.interface.d.ts","sourceRoot":"","sources":["../../../src/slickgrid-react/models/slickGrid.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,MAAM,WAAW,SAAU,SAAQ,kBAAkB;IACnD,8GAA8G;IAC9G,UAAU,IAAI,UAAU,CAAC;CAC1B"}
@@ -1,7 +0,0 @@
1
- import { SlickGrid as UniversalSlickGrid } from '@slickgrid-universal/common';
2
- import { GridOption } from './gridOption.interface';
3
-
4
- export interface SlickGrid extends UniversalSlickGrid {
5
- /** Returns an object containing all of the Grid options set on the grid. See a list of Grid Options here. */
6
- getOptions(): GridOption;
7
- }