gridjs-spreadsheet 26.8.0 → 26.9.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.
@@ -1194,4 +1194,24 @@
1194
1194
  <rect x="24" y="17" width="6" height="20" fill="#FFFFFF" id="redact-plus-v" />
1195
1195
  </g>
1196
1196
  </g>
1197
- &#10; </svg>
1197
+ &#10; <g id="RedactionSearchResult" transform="matrix(0.3033,0,0,0.3033,180,126)">
1198
+
1199
+
1200
+
1201
+ <!-- Unified blue-grey rounded background to indicate 'search' context -->
1202
+ <rect x="4" y="4" width="54" height="54" fill="#56754B" rx="4" ry="4" id="bg-rect" />
1203
+ <!-- Search results list: two white horizontal lines representing the searched content -->
1204
+ <rect x="10" y="10" width="14" height="3" fill="#FFFFFF" rx="1.5" id="search-line-1" />
1205
+ <rect x="10" y="16" width="14" height="3" fill="#FFFFFF" rx="1.5" id="search-line-2" />
1206
+
1207
+ <!-- Magnifying glass: represents the 'search' action, positioned on the right side of the list -->
1208
+ <circle cx="35" cy="18" r="7" fill="none" stroke="#FFFFFF" stroke-width="2.5" id="search-glass" />
1209
+ <line x1="42" y1="23" x2="47" y2="28" stroke="#FFFFFF" stroke-width="4" stroke-linecap="round" id="search-handle" />
1210
+
1211
+ <g transform="translate(27, 27) scale(0.66) translate(-32, -16)">
1212
+ <rect x="9" y="9" width="36" height="36" fill="#E53935" rx="4" ry="4" id="redact-rect" />
1213
+ <line x1="9" y1="9" x2="45" y2="45" stroke="#FFFFFF" stroke-width="4" stroke-linecap="round" id="redact-line" />
1214
+ <rect x="17" y="24" width="20" height="6" fill="#FFFFFF" id="redact-plus-h" />
1215
+ <rect x="24" y="17" width="6" height="20" fill="#FFFFFF" id="redact-plus-v" />
1216
+ </g>
1217
+ </g> &#10; </svg>
package/angular.d.ts CHANGED
@@ -8,7 +8,7 @@ import type {
8
8
  SimpleChanges,
9
9
  } from '@angular/core';
10
10
  import type * as i0 from '@angular/core';
11
- import type Spreadsheet from 'gridjs-spreadsheet';
11
+ import type Spreadsheet, { SemanticAutomationOptions } from 'gridjs-spreadsheet';
12
12
  import type { GridJsAdapter } from './shared';
13
13
 
14
14
  export declare class GridJsSpreadsheetComponent implements AfterViewInit, OnChanges, OnDestroy {
@@ -21,6 +21,7 @@ export declare class GridJsSpreadsheetComponent implements AfterViewInit, OnChan
21
21
  height: string;
22
22
  showToolbar: boolean;
23
23
  showContextmenu: boolean;
24
+ semanticAutomation: SemanticAutomationOptions | null;
24
25
  ready: EventEmitter<{ instance: Spreadsheet; adapter: GridJsAdapter }>;
25
26
  change: EventEmitter<any[]>;
26
27
  error: EventEmitter<any>;
@@ -47,6 +48,7 @@ export declare class GridJsSpreadsheetComponent implements AfterViewInit, OnChan
47
48
  height: { alias: 'height'; required: false };
48
49
  showToolbar: { alias: 'showToolbar'; required: false };
49
50
  showContextmenu: { alias: 'showContextmenu'; required: false };
51
+ semanticAutomation: { alias: 'semanticAutomation'; required: false };
50
52
  },
51
53
  {
52
54
  ready: 'ready';
package/angular.js CHANGED
@@ -29,6 +29,7 @@ export class GridJsSpreadsheetComponent {
29
29
  height = 'calc(100vh - 96px)';
30
30
  showToolbar = true;
31
31
  showContextmenu = true;
32
+ semanticAutomation = null;
32
33
 
33
34
  ready = new EventEmitter();
34
35
  change = new EventEmitter();
@@ -80,6 +81,7 @@ export class GridJsSpreadsheetComponent {
80
81
  this.locale,
81
82
  String(this.showToolbar),
82
83
  String(this.showContextmenu),
84
+ JSON.stringify(this.semanticAutomation || null),
83
85
  ].join('|');
84
86
 
85
87
  if (mountKey === this.lastMountKey && this.adapter) return;
@@ -100,6 +102,7 @@ export class GridJsSpreadsheetComponent {
100
102
  token: this.token,
101
103
  showToolbar: this.showToolbar,
102
104
  showContextmenu: this.showContextmenu,
105
+ semanticAutomation: this.semanticAutomation,
103
106
  callbacks: {
104
107
  ready: (instance, activeAdapter) => this.zone.run(() => this.ready.emit({ instance, adapter: activeAdapter })),
105
108
  change: (...args) => this.zone.run(() => this.change.emit(args)),
@@ -154,6 +157,7 @@ GridJsSpreadsheetComponent.ɵcmp = /* @__PURE__ */ i0.ɵɵngDeclareComponent({
154
157
  height: 'height',
155
158
  showToolbar: 'showToolbar',
156
159
  showContextmenu: 'showContextmenu',
160
+ semanticAutomation: 'semanticAutomation',
157
161
  },
158
162
  outputs: {
159
163
  ready: 'ready',
package/example/pom.xml CHANGED
@@ -17,7 +17,7 @@
17
17
  </repositories>
18
18
  <groupId>com.aspose.gridjs</groupId>
19
19
  <artifactId>gridjsdemo</artifactId>
20
- <version>26.8</version>
20
+ <version>26.9</version>
21
21
  <name>gridjsdemo</name>
22
22
  <description>GridJs Demo project for Spring Boot</description>
23
23
  <properties>
@@ -51,12 +51,12 @@
51
51
  <dependency>
52
52
  <groupId>com.aspose</groupId>
53
53
  <artifactId>aspose-cells</artifactId>
54
- <version>26.7</version>
54
+ <version>26.9</version>
55
55
  </dependency>
56
56
  <dependency>
57
57
  <groupId>com.aspose</groupId>
58
58
  <artifactId>aspose-cells</artifactId>
59
- <version>26.7</version>
59
+ <version>26.9</version>
60
60
  <classifier>gridjs</classifier>
61
61
  </dependency>
62
62
  <!-- <dependency>
package/index.d.ts CHANGED
@@ -69,6 +69,123 @@ declare module 'gridjs-spreadsheet' {
69
69
  * @returns Promise<string> for the new reason, or null to cancel
70
70
  */
71
71
  onRedactionAddReason?: (existingReasons: string[]) => Promise<string | null>;
72
+ /** Versioned Object API for AI Agent and automated tests. Disabled by default. */
73
+ semanticAutomation?: SemanticAutomationOptions;
74
+ }
75
+
76
+ export interface SemanticAutomationOptions {
77
+ enabled?: boolean;
78
+ instanceId?: string;
79
+ }
80
+
81
+ export type SemanticRuntimePhase =
82
+ | 'disabled'
83
+ | 'initializing'
84
+ | 'loading'
85
+ | 'rendering'
86
+ | 'ready'
87
+ | 'updating'
88
+ | 'failed'
89
+ | 'destroyed';
90
+
91
+ export interface SemanticRuntimeState {
92
+ contractVersion: string;
93
+ instanceId: string;
94
+ instanceGeneration: string;
95
+ workbookSessionId: string | null;
96
+ phase: SemanticRuntimePhase;
97
+ revision: number;
98
+ failure: { code: string; message: string; retryable: boolean } | null;
99
+ activeOperationIds: string[];
100
+ lastOperationId: string | null;
101
+ activeSheetId: string | null;
102
+ }
103
+
104
+ export interface SemanticOperation {
105
+ operationId: string;
106
+ kind: string;
107
+ action: string;
108
+ instanceGeneration: string;
109
+ workbookSessionId: string | null;
110
+ parentOperationId: string | null;
111
+ phase: 'pending' | 'running' | 'completed' | 'failed' | 'cancelled';
112
+ progress: number;
113
+ revision: number | null;
114
+ result: Record<string, any> | null;
115
+ error: { code: string; message: string; retryable: boolean } | null;
116
+ }
117
+
118
+ export interface SemanticStateRequest {
119
+ kind: 'workbook' | 'sheets' | 'sheet' | 'cell' | 'range' | 'selection';
120
+ sheetId?: string;
121
+ address?: string;
122
+ range?: string;
123
+ offset?: number;
124
+ limit?: number;
125
+ }
126
+
127
+ export interface SemanticStateSnapshot {
128
+ contractVersion: string;
129
+ instanceId: string;
130
+ instanceGeneration: string;
131
+ workbookSessionId: string;
132
+ revision: number;
133
+ target: Record<string, any>;
134
+ state: Record<string, any>;
135
+ }
136
+
137
+ export type SemanticCellValue =
138
+ | { kind: 'blank' }
139
+ | { kind: 'text'; value: string }
140
+ | { kind: 'number'; value: number }
141
+ | { kind: 'boolean'; value: boolean };
142
+
143
+ export type SemanticEditableCellValue =
144
+ | { kind: 'blank' }
145
+ | { kind: 'text'; value: string };
146
+
147
+ export type SemanticActionRequest =
148
+ | { action: 'sheet.activate'; parameters: { sheetId: string }; invocationId?: string }
149
+ | { action: 'cell.activate'; parameters: { sheetId: string; address: string }; invocationId?: string }
150
+ | { action: 'range.select'; parameters: { sheetId: string; address?: string; range?: string }; invocationId?: string }
151
+ | { action: 'cell.setValue'; parameters: { sheetId: string; address: string; value: SemanticEditableCellValue }; invocationId?: string };
152
+
153
+ export interface SemanticActionReceipt {
154
+ operationId: string;
155
+ action: string;
156
+ instanceGeneration: string;
157
+ workbookSessionId: string;
158
+ phase: 'running';
159
+ }
160
+
161
+ export interface SemanticFacade {
162
+ describeContract(): Record<string, any>;
163
+ getCapabilities(): Record<string, any>;
164
+ getContract(): Record<string, any>;
165
+ getRuntimeState(): SemanticRuntimeState;
166
+ waitForRuntime(options?: { phase?: SemanticRuntimePhase; timeoutMs?: number; signal?: AbortSignal }): Promise<SemanticRuntimeState>;
167
+ subscribe(options: { event?: 'runtimechange' | 'operationchange' | 'sheetchange' | 'selectionchange' | 'cellchange' | '*'; fromRevision?: number; onEvent: (event: Record<string, any>) => void }): { unsubscribe(): void };
168
+ getOperation(operationId: string): SemanticOperation;
169
+ listOperations(): SemanticOperation[];
170
+ waitForOperation(options: { operationId: string; timeoutMs?: number; signal?: AbortSignal }): Promise<SemanticOperation>;
171
+ getState(request: SemanticStateRequest): SemanticStateSnapshot;
172
+ query(request: SemanticStateRequest): SemanticStateSnapshot;
173
+ getAvailableActions(request?: Pick<SemanticStateRequest, 'kind' | 'sheetId'>): ReadonlyArray<{ action: string; capability: string }>;
174
+ perform(request: SemanticActionRequest): SemanticActionReceipt;
175
+ }
176
+
177
+ export interface SemanticInstanceDescriptor {
178
+ instanceId: string;
179
+ instanceGeneration: string;
180
+ contractVersion: string;
181
+ runtimePhase: SemanticRuntimePhase;
182
+ workbookSessionId: string | null;
183
+ }
184
+
185
+ export interface GridJSSemanticAutomationRegistry {
186
+ readonly version: '1.0.0';
187
+ listInstances(): SemanticInstanceDescriptor[];
188
+ getInstance(instanceId: string): SemanticFacade | null;
72
189
  }
73
190
 
74
191
  export type CELL_SELECTED = 'cell-selected';
@@ -92,6 +209,7 @@ declare module 'gridjs-spreadsheet' {
92
209
  export type REDACTION_UPDATED = 'redaction-updated';
93
210
  export type REDACTION_REASON_INSERTED = 'redactionReason-inserted';
94
211
  export type REDACTION_TRANSPARENCY_TOGGLED = 'redactionTransparency-toggled';
212
+ export type SEARCH_REDACTED = 'search-redacted';
95
213
  export type CUSTOM_BUTTON = 'custom-button';
96
214
  export type UPDATE_SERVER_ERROR = 'updateServerError';
97
215
  export type UPDATE_CELL_ERROR = 'updateCellError';
@@ -279,6 +397,10 @@ declare module 'gridjs-spreadsheet' {
279
397
  envt: REDACTION_TRANSPARENCY_TOGGLED,
280
398
  callback: (isTransparent: boolean) => void
281
399
  ): void;
400
+ (
401
+ envt: SEARCH_REDACTED,
402
+ callback: (sheetNames: string[], detail: { keywords: string, isCaseSensitive: boolean, matchWholeCell: boolean, reason: string, color: string, baseId: string }) => void
403
+ ): void;
282
404
  (
283
405
  envt: CUSTOM_BUTTON,
284
406
  callback: (tag: string, button: CustomToolbarButton) => void
@@ -366,6 +488,8 @@ declare module 'gridjs-spreadsheet' {
366
488
  constructor(container: string | HTMLElement, opts?: Options);
367
489
  /** Build version string (injected at compile time) */
368
490
  readonly version: string;
491
+ /** Public Semantic Automation facade. */
492
+ semantic: SemanticFacade;
369
493
  on: SpreadsheetEventHandler;
370
494
  /**
371
495
  * retrieve cell
@@ -548,6 +672,7 @@ declare module 'gridjs-spreadsheet' {
548
672
  global {
549
673
  interface Window {
550
674
  x_spreadsheet(container: string | HTMLElement, opts?: Options): Spreadsheet;
675
+ GridJSSemanticAutomation?: GridJSSemanticAutomationRegistry;
551
676
  }
552
677
  }
553
678
  }
package/package.json CHANGED
@@ -1,170 +1,171 @@
1
- {
2
- "name": "gridjs-spreadsheet",
3
- "version": "26.8.0",
4
- "description": "Lightweight, high-performance JavaScript spreadsheet component for building online Excel editors and web spreadsheet apps. Supports React, Vue 3, and Angular with TypeScript declarations. Features include formulas, charts, formatting, data validation, copy/paste from Excel, and server-side integration.",
5
- "types": "index.d.ts",
6
- "main": "xspreadsheet.js",
7
- "exports": {
8
- ".": {
9
- "types": "./index.d.ts",
10
- "default": "./xspreadsheet.js"
11
- },
12
- "./xspreadsheet.css": "./xspreadsheet.css",
13
- "./vue": {
14
- "types": "./vue.d.ts",
15
- "default": "./vue.js"
16
- },
17
- "./react": {
18
- "types": "./react.d.ts",
19
- "default": "./react.js"
20
- },
21
- "./angular": {
22
- "types": "./angular.d.ts",
23
- "default": "./angular.js"
24
- },
25
- "./shared": {
26
- "types": "./shared.d.ts",
27
- "default": "./shared.js"
28
- },
29
- "./package.json": "./package.json"
30
- },
31
- "files": [
32
- "readme.md",
33
- "preview.gif",
34
- "xspreadsheet.js",
35
- "xspreadsheet.css",
36
- "*.svg",
37
- "index.js",
38
- "index.d.ts",
39
- "shared.js",
40
- "shared.d.ts",
41
- "react.js",
42
- "react.d.ts",
43
- "vue.js",
44
- "vue.d.ts",
45
- "angular.js",
46
- "angular.d.ts",
47
- "example/.gitignore",
48
- "example/README.md",
49
- "example/HELP.md",
50
- "example/Dockerfile",
51
- "example/compose.yaml",
52
- "example/pom.xml",
53
- "example/mvnw",
54
- "example/mvnw.cmd",
55
- "example/src/main/java",
56
- "example/src/main/resources",
57
- "example/wb",
58
- "example/react-gridjs/index.html",
59
- "example/react-gridjs/package.json",
60
- "example/react-gridjs/src",
61
- "example/react-gridjs/vite.config.js",
62
- "example/vue-gridjs/index.html",
63
- "example/vue-gridjs/package.json",
64
- "example/vue-gridjs/src",
65
- "example/vue-gridjs/vite.config.js",
66
- "example/angular-gridjs/.nvmrc",
67
- "example/angular-gridjs/angular.json",
68
- "example/angular-gridjs/package.json",
69
- "example/angular-gridjs/proxy.conf.json",
70
- "example/angular-gridjs/src",
71
- "example/angular-gridjs/tsconfig.json",
72
- "example/angular-gridjs/tsconfig.app.json",
73
- "example/vanilla-gridjs/shared",
74
- "example/vanilla-gridjs/npm/index.html",
75
- "example/vanilla-gridjs/npm/main.js",
76
- "example/vanilla-gridjs/npm/package.json",
77
- "example/vanilla-gridjs/npm/vite.config.js",
78
- "example/vanilla-gridjs/script/index.html",
79
- "example/vanilla-gridjs/script/main.js",
80
- "example/vanilla-gridjs/script/package.json",
81
- "example/vanilla-gridjs/script/vite.config.js"
82
- ],
83
- "keywords": [
84
- "excel",
85
- "spreadsheet",
86
- "web-excel",
87
- "online-excel",
88
- "excel-viewer",
89
- "excel-editor",
90
- "javascript-excel",
91
- "javascript-spreadsheet",
92
- "excel-component",
93
- "spreadsheet-ui",
94
- "react-spreadsheet",
95
- "vue-excel",
96
- "angular-spreadsheet",
97
- "vue-spreadsheet",
98
- "react-excel",
99
- "angular-excel",
100
- "typescript",
101
- "xlsx",
102
- "xls",
103
- "csv",
104
- "ods",
105
- "numbers",
106
- "xlsm",
107
- "xlsb",
108
- "excel-io",
109
- "redact",
110
- "redaction",
111
- "data-redaction",
112
- "collaborative-editing",
113
- "excel-api",
114
- "data-table",
115
- "datagrid",
116
- "convert-pdf",
117
- "convert-html",
118
- "sheets",
119
- "web-spreadsheet",
120
- "spreadsheet-editor",
121
- "excel-online",
122
- "excel-formula",
123
- "excel-chart",
124
- "data-validation",
125
- "copy-paste-excel",
126
- "spreadsheet-component",
127
- "open-source-excel",
128
- "free-excel-editor",
129
- "gridjs"
130
- ],
131
- "author": "Aspose Cells Team",
132
- "dependencies": {
133
- "jszip": "~3.10.1"
134
- },
135
- "peerDependencies": {
136
- "vue": ">=3.0.0",
137
- "react": ">=16.8.0",
138
- "@angular/core": ">=14.0.0",
139
- "@angular/common": ">=14.0.0"
140
- },
141
- "peerDependenciesMeta": {
142
- "vue": {
143
- "optional": true
144
- },
145
- "react": {
146
- "optional": true
147
- },
148
- "@angular/core": {
149
- "optional": true
150
- },
151
- "@angular/common": {
152
- "optional": true
153
- }
154
- },
155
- "engines": {
156
- "node": ">=18"
157
- },
158
- "publishConfig": {
159
- "access": "public"
160
- },
161
- "license": "MIT",
162
- "repository": {
163
- "type": "git",
164
- "url": "git+https://github.com/aspose-cells/Aspose.Cells.Grid-for-.NET.git"
165
- },
166
- "homepage": "https://products.aspose.app/cells/editor",
167
- "bugs": {
168
- "url": "https://forum.aspose.com/c/cells"
169
- }
170
- }
1
+ {
2
+ "name": "gridjs-spreadsheet",
3
+ "version": "26.9.0",
4
+ "description": "Lightweight, high-performance JavaScript spreadsheet component for building online Excel editors and web spreadsheet apps. Supports React, Vue 3, and Angular with TypeScript declarations. Features include formulas, charts, formatting, data validation, copy/paste from Excel, and server-side integration.",
5
+ "types": "index.d.ts",
6
+ "main": "xspreadsheet.js",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./index.d.ts",
10
+ "default": "./xspreadsheet.js"
11
+ },
12
+ "./xspreadsheet.css": "./xspreadsheet.css",
13
+ "./vue": {
14
+ "types": "./vue.d.ts",
15
+ "default": "./vue.js"
16
+ },
17
+ "./react": {
18
+ "types": "./react.d.ts",
19
+ "default": "./react.js"
20
+ },
21
+ "./angular": {
22
+ "types": "./angular.d.ts",
23
+ "default": "./angular.js"
24
+ },
25
+ "./shared": {
26
+ "types": "./shared.d.ts",
27
+ "default": "./shared.js"
28
+ },
29
+ "./package.json": "./package.json"
30
+ },
31
+ "files": [
32
+ "readme.md",
33
+ "preview.gif",
34
+ "xspreadsheet.js",
35
+ "xspreadsheet.css",
36
+ "*.svg",
37
+ "*.jpg",
38
+ "index.js",
39
+ "index.d.ts",
40
+ "shared.js",
41
+ "shared.d.ts",
42
+ "react.js",
43
+ "react.d.ts",
44
+ "vue.js",
45
+ "vue.d.ts",
46
+ "angular.js",
47
+ "angular.d.ts",
48
+ "example/.gitignore",
49
+ "example/README.md",
50
+ "example/HELP.md",
51
+ "example/Dockerfile",
52
+ "example/compose.yaml",
53
+ "example/pom.xml",
54
+ "example/mvnw",
55
+ "example/mvnw.cmd",
56
+ "example/src/main/java",
57
+ "example/src/main/resources",
58
+ "example/wb",
59
+ "example/react-gridjs/index.html",
60
+ "example/react-gridjs/package.json",
61
+ "example/react-gridjs/src",
62
+ "example/react-gridjs/vite.config.js",
63
+ "example/vue-gridjs/index.html",
64
+ "example/vue-gridjs/package.json",
65
+ "example/vue-gridjs/src",
66
+ "example/vue-gridjs/vite.config.js",
67
+ "example/angular-gridjs/.nvmrc",
68
+ "example/angular-gridjs/angular.json",
69
+ "example/angular-gridjs/package.json",
70
+ "example/angular-gridjs/proxy.conf.json",
71
+ "example/angular-gridjs/src",
72
+ "example/angular-gridjs/tsconfig.json",
73
+ "example/angular-gridjs/tsconfig.app.json",
74
+ "example/vanilla-gridjs/shared",
75
+ "example/vanilla-gridjs/npm/index.html",
76
+ "example/vanilla-gridjs/npm/main.js",
77
+ "example/vanilla-gridjs/npm/package.json",
78
+ "example/vanilla-gridjs/npm/vite.config.js",
79
+ "example/vanilla-gridjs/script/index.html",
80
+ "example/vanilla-gridjs/script/main.js",
81
+ "example/vanilla-gridjs/script/package.json",
82
+ "example/vanilla-gridjs/script/vite.config.js"
83
+ ],
84
+ "keywords": [
85
+ "excel",
86
+ "spreadsheet",
87
+ "web-excel",
88
+ "online-excel",
89
+ "excel-viewer",
90
+ "excel-editor",
91
+ "javascript-excel",
92
+ "javascript-spreadsheet",
93
+ "excel-component",
94
+ "spreadsheet-ui",
95
+ "react-spreadsheet",
96
+ "vue-excel",
97
+ "angular-spreadsheet",
98
+ "vue-spreadsheet",
99
+ "react-excel",
100
+ "angular-excel",
101
+ "typescript",
102
+ "xlsx",
103
+ "xls",
104
+ "csv",
105
+ "ods",
106
+ "numbers",
107
+ "xlsm",
108
+ "xlsb",
109
+ "excel-io",
110
+ "redact",
111
+ "redaction",
112
+ "data-redaction",
113
+ "collaborative-editing",
114
+ "excel-api",
115
+ "data-table",
116
+ "datagrid",
117
+ "convert-pdf",
118
+ "convert-html",
119
+ "sheets",
120
+ "web-spreadsheet",
121
+ "spreadsheet-editor",
122
+ "excel-online",
123
+ "excel-formula",
124
+ "excel-chart",
125
+ "data-validation",
126
+ "copy-paste-excel",
127
+ "spreadsheet-component",
128
+ "open-source-excel",
129
+ "free-excel-editor",
130
+ "gridjs"
131
+ ],
132
+ "author": "Aspose Cells Team",
133
+ "dependencies": {
134
+ "jszip": "~3.10.1"
135
+ },
136
+ "peerDependencies": {
137
+ "vue": ">=3.0.0",
138
+ "react": ">=16.8.0",
139
+ "@angular/core": ">=14.0.0",
140
+ "@angular/common": ">=14.0.0"
141
+ },
142
+ "peerDependenciesMeta": {
143
+ "vue": {
144
+ "optional": true
145
+ },
146
+ "react": {
147
+ "optional": true
148
+ },
149
+ "@angular/core": {
150
+ "optional": true
151
+ },
152
+ "@angular/common": {
153
+ "optional": true
154
+ }
155
+ },
156
+ "engines": {
157
+ "node": ">=18"
158
+ },
159
+ "publishConfig": {
160
+ "access": "public"
161
+ },
162
+ "license": "MIT",
163
+ "repository": {
164
+ "type": "git",
165
+ "url": "git+https://github.com/aspose-cells/Aspose.Cells.Grid-for-.NET.git"
166
+ },
167
+ "homepage": "https://products.aspose.app/cells/editor",
168
+ "bugs": {
169
+ "url": "https://forum.aspose.com/c/cells"
170
+ }
171
+ }
package/react.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { CSSProperties } from 'react';
2
- import type Spreadsheet from 'gridjs-spreadsheet';
2
+ import type Spreadsheet, { SemanticAutomationOptions } from 'gridjs-spreadsheet';
3
3
  import type { GridJsAdapter } from './shared';
4
4
 
5
5
  export interface GridJsSpreadsheetProps {
@@ -12,6 +12,7 @@ export interface GridJsSpreadsheetProps {
12
12
  height?: string | number;
13
13
  showToolbar?: boolean;
14
14
  showContextmenu?: boolean;
15
+ semanticAutomation?: SemanticAutomationOptions;
15
16
  className?: string;
16
17
  style?: CSSProperties;
17
18
  onReady?: (instance: Spreadsheet, adapter: GridJsAdapter) => void;
package/react.js CHANGED
@@ -22,6 +22,7 @@ export function GridJsSpreadsheet({
22
22
  height = 'calc(100vh - 96px)',
23
23
  showToolbar = true,
24
24
  showContextmenu = true,
25
+ semanticAutomation,
25
26
  className = 'gridjs-react-host',
26
27
  style,
27
28
  onReady,
@@ -54,6 +55,7 @@ export function GridJsSpreadsheet({
54
55
  token,
55
56
  showToolbar,
56
57
  showContextmenu,
58
+ semanticAutomation,
57
59
  callbacks: {
58
60
  ready: onReady,
59
61
  change: onChange,
@@ -88,7 +90,7 @@ export function GridJsSpreadsheet({
88
90
  adapterRef.current = null;
89
91
  if (hostRef.current) hostRef.current.innerHTML = '';
90
92
  };
91
- }, [apiBase, dataKey, loader, mode, locale, token, showToolbar, showContextmenu]);
93
+ }, [apiBase, dataKey, loader, mode, locale, token, showToolbar, showContextmenu, semanticAutomation]);
92
94
 
93
95
  useEffect(() => {
94
96
  if (adapterRef.current && token) {