@freegridjs/angular 0.8.1 → 1.0.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.
package/LICENSE CHANGED
@@ -25,7 +25,8 @@ This license covers the FreeGrid software, including the packages @freegridjs/co
25
25
  erp.example.com) needs its own Company License. Applications without a domain (desktop
26
26
  apps, intranets reached by address) count as one domain per installation site.
27
27
  - The fee is KRW 200,000 per domain per year. The license is valid for one year from the
28
- date it is issued and may be renewed.
28
+ date it is issued and may be renewed. A perpetual Company License costs KRW 400,000 per
29
+ domain, paid once, and does not expire.
29
30
  - A license key is provided with each Company License. Setting the key removes the
30
31
  console notice described in section 5.
31
32
 
@@ -61,6 +62,7 @@ FreeGrid 라이선스 (요약, 한국어)
61
62
  회사 라이선스가 필요합니다. 30일 동안은 평가 목적으로 라이선스 없이 써 볼 수 있습니다.
62
63
  - 도메인 1개(www 포함) 기준 연 200,000원이며, 발급일로부터 1년간 유효하고
63
64
  갱신할 수 있습니다. 서브도메인(예: erp.example.com)은 별도로 요금이 책정됩니다.
65
+ - 영구 라이선스는 도메인 1개 기준 400,000원을 한 번 결제하며 만료되지 않습니다.
64
66
  - 라이선스마다 키를 발급하며, 키를 설정하면 콘솔 안내가 사라집니다.
65
67
  - 모든 사용자: 저작권과 이 라이선스 문구를 유지해야 하며, 소프트웨어 자체를 판매하거나
66
68
  별도 그리드 라이브러리로 재배포할 수 없고, 라이선스 확인을 제거하거나 키를 다른
package/README.md CHANGED
@@ -39,7 +39,7 @@ Docs: https://freegrid.app/docs/#angular
39
39
 
40
40
  ## License
41
41
 
42
- Free for personal use. Company use needs a domain license: KRW 200,000 per domain per year
42
+ Free for personal use. Company use needs a domain license: KRW 200,000 per domain per year, or KRW 400,000 once (perpetual)
43
43
  (each subdomain is licensed separately). See https://freegrid.app/pricing/ and the LICENSE file.
44
44
 
45
- 개인은 무료, 회사는 도메인당 연 20만 원이며, 서브도메인은 별도로 요금이 책정됩니다. 자세한 내용은 https://freegrid.app/pricing/
45
+ 개인은 무료, 회사는 도메인당 연 20만 원 또는 영구 40만 원이며, 서브도메인은 별도로 요금이 책정됩니다. 자세한 내용은 https://freegrid.app/pricing/
@@ -28,6 +28,11 @@ const OUTPUTS = {
28
28
  rowsLoadFailed: "rowsLoadFailed",
29
29
  pivotChange: "pivotChange",
30
30
  rowDrop: "rowDrop",
31
+ transactionApplied: "transactionApplied",
32
+ rowEditStart: "rowEditStart",
33
+ columnGroupOpened: "columnGroupOpened",
34
+ advancedFilterChange: "advancedFilterChange",
35
+ rowEditStop: "rowEditStop",
31
36
  childrenLoaded: "childrenLoaded",
32
37
  childrenLoadFailed: "childrenLoadFailed",
33
38
  scroll: "gridScroll",
@@ -69,6 +74,11 @@ var FreeGridComponent = class FreeGridComponent {
69
74
  this.rowsLoadFailed = new EventEmitter();
70
75
  this.pivotChange = new EventEmitter();
71
76
  this.rowDrop = new EventEmitter();
77
+ this.transactionApplied = new EventEmitter();
78
+ this.rowEditStart = new EventEmitter();
79
+ this.columnGroupOpened = new EventEmitter();
80
+ this.advancedFilterChange = new EventEmitter();
81
+ this.rowEditStop = new EventEmitter();
72
82
  this.childrenLoaded = new EventEmitter();
73
83
  this.childrenLoadFailed = new EventEmitter();
74
84
  this.gridScroll = new EventEmitter();
@@ -193,6 +203,11 @@ var FreeGridComponent = class FreeGridComponent {
193
203
  rowsLoadFailed: "rowsLoadFailed",
194
204
  pivotChange: "pivotChange",
195
205
  rowDrop: "rowDrop",
206
+ transactionApplied: "transactionApplied",
207
+ rowEditStart: "rowEditStart",
208
+ columnGroupOpened: "columnGroupOpened",
209
+ advancedFilterChange: "advancedFilterChange",
210
+ rowEditStop: "rowEditStop",
196
211
  childrenLoaded: "childrenLoaded",
197
212
  childrenLoadFailed: "childrenLoadFailed",
198
213
  gridScroll: "gridScroll",
@@ -275,6 +290,11 @@ i0.ɵɵngDeclareClassMetadata({
275
290
  rowsLoadFailed: [{ type: Output }],
276
291
  pivotChange: [{ type: Output }],
277
292
  rowDrop: [{ type: Output }],
293
+ transactionApplied: [{ type: Output }],
294
+ rowEditStart: [{ type: Output }],
295
+ columnGroupOpened: [{ type: Output }],
296
+ advancedFilterChange: [{ type: Output }],
297
+ rowEditStop: [{ type: Output }],
278
298
  childrenLoaded: [{ type: Output }],
279
299
  childrenLoadFailed: [{ type: Output }],
280
300
  gridScroll: [{ type: Output }],
@@ -1 +1 @@
1
- {"version":3,"file":"freegridjs-angular.mjs","names":[],"sources":["../../src/free-grid.component.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, NgZone, Output, inject,\n type AfterViewInit, type OnChanges, type OnDestroy, type SimpleChanges,\n} from '@angular/core';\nimport { createGrid, type ColumnDef, type GridApi, type GridEvents, type GridOptions, type LocalePack, type Row } from '@freegridjs/core';\n\n/** Grid event → output name. `paste` and `scroll` are prefixed so they don't clash with the DOM events of the host. */\nconst OUTPUTS = {\n cellClick: 'cellClick',\n cellDoubleClick: 'cellDoubleClick',\n selectionChange: 'selectionChange',\n sortChange: 'sortChange',\n filterChange: 'filterChange',\n columnResize: 'columnResize',\n columnMove: 'columnMove',\n focusChange: 'focusChange',\n columnVisible: 'columnVisible',\n rangeChange: 'rangeChange',\n cellValueChanged: 'cellValueChanged',\n paste: 'gridPaste',\n editStart: 'editStart',\n editStop: 'editStop',\n validationFailed: 'validationFailed',\n rowsAdded: 'rowsAdded',\n rowsRemoved: 'rowsRemoved',\n groupChange: 'groupChange',\n groupToggle: 'groupToggle',\n detailToggle: 'detailToggle',\n rowDragEnd: 'rowDragEnd',\n pageChange: 'pageChange',\n rowsLoaded: 'rowsLoaded',\n rowsLoadFailed: 'rowsLoadFailed',\n pivotChange: 'pivotChange',\n rowDrop: 'rowDrop',\n childrenLoaded: 'childrenLoaded',\n childrenLoadFailed: 'childrenLoadFailed',\n scroll: 'gridScroll',\n beforeSort: 'beforeSort',\n beforeFilter: 'beforeFilter',\n beforePageChange: 'beforePageChange',\n beforeEdit: 'beforeEdit',\n beforeCellChange: 'beforeCellChange',\n} as const satisfies Record<keyof GridEvents, string>;\n\n/**\n * `<free-grid [columns]=\"columns\" [data]=\"rows\" (cellClick)=\"…\" />`\n *\n * Inputs listed here update the grid when they change; anything else goes in `[options]` and applies at creation.\n * The grid runs outside Angular's zone; outputs re-enter it only when someone listens.\n */\n@Component({\n selector: 'free-grid',\n standalone: true,\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[style.display]': '\"block\"', '[style.height]': 'hostHeight' },\n})\nexport class FreeGridComponent implements AfterViewInit, OnChanges, OnDestroy {\n @Input() columns: ColumnDef[] = [];\n @Input() data: Row[] = [];\n /** Any other grid option (rowDrag, treeData, pagination, …), applied at creation. */\n @Input() options?: Partial<GridOptions>;\n @Input() rowSelection?: GridOptions['rowSelection'];\n @Input() getRowId?: GridOptions['getRowId'];\n @Input() rowHeight?: number;\n @Input() headerHeight?: number;\n @Input() theme?: string;\n @Input() locale?: string | Partial<LocalePack>;\n @Input() summary?: GridOptions['summary'];\n @Input() groupBy?: string[];\n @Input() pivot?: GridOptions['pivot'];\n @Input() fontSize?: number;\n @Input() fontFamily?: string;\n /** Host height; number = px. */\n @Input() height: number | string = 400;\n\n /** The grid API once the view is ready. */\n @Output() readonly ready = new EventEmitter<GridApi>();\n @Output() readonly cellClick = new EventEmitter<GridEvents['cellClick']>();\n @Output() readonly cellDoubleClick = new EventEmitter<GridEvents['cellDoubleClick']>();\n @Output() readonly selectionChange = new EventEmitter<GridEvents['selectionChange']>();\n @Output() readonly sortChange = new EventEmitter<GridEvents['sortChange']>();\n @Output() readonly filterChange = new EventEmitter<GridEvents['filterChange']>();\n @Output() readonly columnResize = new EventEmitter<GridEvents['columnResize']>();\n @Output() readonly columnMove = new EventEmitter<GridEvents['columnMove']>();\n @Output() readonly focusChange = new EventEmitter<GridEvents['focusChange']>();\n @Output() readonly columnVisible = new EventEmitter<GridEvents['columnVisible']>();\n @Output() readonly rangeChange = new EventEmitter<GridEvents['rangeChange']>();\n @Output() readonly cellValueChanged = new EventEmitter<GridEvents['cellValueChanged']>();\n @Output() readonly gridPaste = new EventEmitter<GridEvents['paste']>();\n @Output() readonly editStart = new EventEmitter<GridEvents['editStart']>();\n @Output() readonly editStop = new EventEmitter<GridEvents['editStop']>();\n @Output() readonly validationFailed = new EventEmitter<GridEvents['validationFailed']>();\n @Output() readonly rowsAdded = new EventEmitter<GridEvents['rowsAdded']>();\n @Output() readonly rowsRemoved = new EventEmitter<GridEvents['rowsRemoved']>();\n @Output() readonly groupChange = new EventEmitter<GridEvents['groupChange']>();\n @Output() readonly groupToggle = new EventEmitter<GridEvents['groupToggle']>();\n @Output() readonly detailToggle = new EventEmitter<GridEvents['detailToggle']>();\n @Output() readonly rowDragEnd = new EventEmitter<GridEvents['rowDragEnd']>();\n @Output() readonly pageChange = new EventEmitter<GridEvents['pageChange']>();\n @Output() readonly rowsLoaded = new EventEmitter<GridEvents['rowsLoaded']>();\n @Output() readonly rowsLoadFailed = new EventEmitter<GridEvents['rowsLoadFailed']>();\n @Output() readonly pivotChange = new EventEmitter<GridEvents['pivotChange']>();\n @Output() readonly rowDrop = new EventEmitter<GridEvents['rowDrop']>();\n @Output() readonly childrenLoaded = new EventEmitter<GridEvents['childrenLoaded']>();\n @Output() readonly childrenLoadFailed = new EventEmitter<GridEvents['childrenLoadFailed']>();\n @Output() readonly gridScroll = new EventEmitter<GridEvents['scroll']>();\n @Output() readonly beforeSort = new EventEmitter<GridEvents['beforeSort']>();\n @Output() readonly beforeFilter = new EventEmitter<GridEvents['beforeFilter']>();\n @Output() readonly beforePageChange = new EventEmitter<GridEvents['beforePageChange']>();\n @Output() readonly beforeEdit = new EventEmitter<GridEvents['beforeEdit']>();\n @Output() readonly beforeCellChange = new EventEmitter<GridEvents['beforeCellChange']>();\n\n /** The grid API (null before the view is ready and after destroy). */\n api: GridApi | null = null;\n\n private readonly host: HTMLElement = inject(ElementRef).nativeElement;\n private readonly zone = inject(NgZone);\n\n get hostHeight(): string {\n return typeof this.height === 'number' ? `${this.height}px` : this.height;\n }\n\n ngAfterViewInit(): void {\n const api = this.zone.runOutsideAngular(() => createGrid(this.host, {\n ...this.options,\n columns: this.columns, data: this.data, rowSelection: this.rowSelection, getRowId: this.getRowId,\n rowHeight: this.rowHeight, headerHeight: this.headerHeight, theme: this.theme, locale: this.locale,\n summary: this.summary, groupBy: this.groupBy, pivot: this.pivot, fontSize: this.fontSize, fontFamily: this.fontFamily,\n }));\n for (const [type, name] of Object.entries(OUTPUTS)) {\n const out = (this as unknown as Record<string, EventEmitter<unknown>>)[name];\n api.on(type as keyof GridEvents, payload => {\n if (out.observed) this.zone.run(() => out.emit(payload));\n });\n }\n this.api = api;\n this.ready.emit(api);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const api = this.api;\n if (!api) return;\n this.zone.runOutsideAngular(() => {\n if (changes['columns']) api.setColumns(this.columns);\n if (changes['data']) api.setData(this.data ?? []);\n if (changes['theme'] && this.theme) api.setTheme(this.theme);\n if (changes['locale'] && this.locale !== undefined) api.setLocale(this.locale);\n if (changes['summary']) api.setSummary(this.summary ?? null);\n if (changes['groupBy']) api.setGroupBy(this.groupBy ?? []);\n if (changes['pivot']) api.setPivot(this.pivot ?? null);\n if (changes['fontSize'] || changes['fontFamily']) api.setFont({ size: this.fontSize, family: this.fontFamily ?? null });\n });\n }\n\n ngOnDestroy(): void {\n this.api?.destroy();\n this.api = null;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"freegridjs-angular.mjs","names":[],"sources":["../../src/free-grid.component.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, NgZone, Output, inject,\n type AfterViewInit, type OnChanges, type OnDestroy, type SimpleChanges,\n} from '@angular/core';\nimport { createGrid, type ColumnDef, type GridApi, type GridEvents, type GridOptions, type LocalePack, type Row } from '@freegridjs/core';\n\n/** Grid event → output name. `paste` and `scroll` are prefixed so they don't clash with the DOM events of the host. */\nconst OUTPUTS = {\n cellClick: 'cellClick',\n cellDoubleClick: 'cellDoubleClick',\n selectionChange: 'selectionChange',\n sortChange: 'sortChange',\n filterChange: 'filterChange',\n columnResize: 'columnResize',\n columnMove: 'columnMove',\n focusChange: 'focusChange',\n columnVisible: 'columnVisible',\n rangeChange: 'rangeChange',\n cellValueChanged: 'cellValueChanged',\n paste: 'gridPaste',\n editStart: 'editStart',\n editStop: 'editStop',\n validationFailed: 'validationFailed',\n rowsAdded: 'rowsAdded',\n rowsRemoved: 'rowsRemoved',\n groupChange: 'groupChange',\n groupToggle: 'groupToggle',\n detailToggle: 'detailToggle',\n rowDragEnd: 'rowDragEnd',\n pageChange: 'pageChange',\n rowsLoaded: 'rowsLoaded',\n rowsLoadFailed: 'rowsLoadFailed',\n pivotChange: 'pivotChange',\n rowDrop: 'rowDrop',\n transactionApplied: 'transactionApplied',\n rowEditStart: 'rowEditStart',\n columnGroupOpened: 'columnGroupOpened',\n advancedFilterChange: 'advancedFilterChange',\n rowEditStop: 'rowEditStop',\n childrenLoaded: 'childrenLoaded',\n childrenLoadFailed: 'childrenLoadFailed',\n scroll: 'gridScroll',\n beforeSort: 'beforeSort',\n beforeFilter: 'beforeFilter',\n beforePageChange: 'beforePageChange',\n beforeEdit: 'beforeEdit',\n beforeCellChange: 'beforeCellChange',\n} as const satisfies Record<keyof GridEvents, string>;\n\n/**\n * `<free-grid [columns]=\"columns\" [data]=\"rows\" (cellClick)=\"…\" />`\n *\n * Inputs listed here update the grid when they change; anything else goes in `[options]` and applies at creation.\n * The grid runs outside Angular's zone; outputs re-enter it only when someone listens.\n */\n@Component({\n selector: 'free-grid',\n standalone: true,\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[style.display]': '\"block\"', '[style.height]': 'hostHeight' },\n})\nexport class FreeGridComponent implements AfterViewInit, OnChanges, OnDestroy {\n @Input() columns: ColumnDef[] = [];\n @Input() data: Row[] = [];\n /** Any other grid option (rowDrag, treeData, pagination, …), applied at creation. */\n @Input() options?: Partial<GridOptions>;\n @Input() rowSelection?: GridOptions['rowSelection'];\n @Input() getRowId?: GridOptions['getRowId'];\n @Input() rowHeight?: number;\n @Input() headerHeight?: number;\n @Input() theme?: string;\n @Input() locale?: string | Partial<LocalePack>;\n @Input() summary?: GridOptions['summary'];\n @Input() groupBy?: string[];\n @Input() pivot?: GridOptions['pivot'];\n @Input() fontSize?: number;\n @Input() fontFamily?: string;\n /** Host height; number = px. */\n @Input() height: number | string = 400;\n\n /** The grid API once the view is ready. */\n @Output() readonly ready = new EventEmitter<GridApi>();\n @Output() readonly cellClick = new EventEmitter<GridEvents['cellClick']>();\n @Output() readonly cellDoubleClick = new EventEmitter<GridEvents['cellDoubleClick']>();\n @Output() readonly selectionChange = new EventEmitter<GridEvents['selectionChange']>();\n @Output() readonly sortChange = new EventEmitter<GridEvents['sortChange']>();\n @Output() readonly filterChange = new EventEmitter<GridEvents['filterChange']>();\n @Output() readonly columnResize = new EventEmitter<GridEvents['columnResize']>();\n @Output() readonly columnMove = new EventEmitter<GridEvents['columnMove']>();\n @Output() readonly focusChange = new EventEmitter<GridEvents['focusChange']>();\n @Output() readonly columnVisible = new EventEmitter<GridEvents['columnVisible']>();\n @Output() readonly rangeChange = new EventEmitter<GridEvents['rangeChange']>();\n @Output() readonly cellValueChanged = new EventEmitter<GridEvents['cellValueChanged']>();\n @Output() readonly gridPaste = new EventEmitter<GridEvents['paste']>();\n @Output() readonly editStart = new EventEmitter<GridEvents['editStart']>();\n @Output() readonly editStop = new EventEmitter<GridEvents['editStop']>();\n @Output() readonly validationFailed = new EventEmitter<GridEvents['validationFailed']>();\n @Output() readonly rowsAdded = new EventEmitter<GridEvents['rowsAdded']>();\n @Output() readonly rowsRemoved = new EventEmitter<GridEvents['rowsRemoved']>();\n @Output() readonly groupChange = new EventEmitter<GridEvents['groupChange']>();\n @Output() readonly groupToggle = new EventEmitter<GridEvents['groupToggle']>();\n @Output() readonly detailToggle = new EventEmitter<GridEvents['detailToggle']>();\n @Output() readonly rowDragEnd = new EventEmitter<GridEvents['rowDragEnd']>();\n @Output() readonly pageChange = new EventEmitter<GridEvents['pageChange']>();\n @Output() readonly rowsLoaded = new EventEmitter<GridEvents['rowsLoaded']>();\n @Output() readonly rowsLoadFailed = new EventEmitter<GridEvents['rowsLoadFailed']>();\n @Output() readonly pivotChange = new EventEmitter<GridEvents['pivotChange']>();\n @Output() readonly rowDrop = new EventEmitter<GridEvents['rowDrop']>();\n @Output() readonly transactionApplied = new EventEmitter<GridEvents['transactionApplied']>();\n @Output() readonly rowEditStart = new EventEmitter<GridEvents['rowEditStart']>();\n @Output() readonly columnGroupOpened = new EventEmitter<GridEvents['columnGroupOpened']>();\n @Output() readonly advancedFilterChange = new EventEmitter<GridEvents['advancedFilterChange']>();\n @Output() readonly rowEditStop = new EventEmitter<GridEvents['rowEditStop']>();\n @Output() readonly childrenLoaded = new EventEmitter<GridEvents['childrenLoaded']>();\n @Output() readonly childrenLoadFailed = new EventEmitter<GridEvents['childrenLoadFailed']>();\n @Output() readonly gridScroll = new EventEmitter<GridEvents['scroll']>();\n @Output() readonly beforeSort = new EventEmitter<GridEvents['beforeSort']>();\n @Output() readonly beforeFilter = new EventEmitter<GridEvents['beforeFilter']>();\n @Output() readonly beforePageChange = new EventEmitter<GridEvents['beforePageChange']>();\n @Output() readonly beforeEdit = new EventEmitter<GridEvents['beforeEdit']>();\n @Output() readonly beforeCellChange = new EventEmitter<GridEvents['beforeCellChange']>();\n\n /** The grid API (null before the view is ready and after destroy). */\n api: GridApi | null = null;\n\n private readonly host: HTMLElement = inject(ElementRef).nativeElement;\n private readonly zone = inject(NgZone);\n\n get hostHeight(): string {\n return typeof this.height === 'number' ? `${this.height}px` : this.height;\n }\n\n ngAfterViewInit(): void {\n const api = this.zone.runOutsideAngular(() => createGrid(this.host, {\n ...this.options,\n columns: this.columns, data: this.data, rowSelection: this.rowSelection, getRowId: this.getRowId,\n rowHeight: this.rowHeight, headerHeight: this.headerHeight, theme: this.theme, locale: this.locale,\n summary: this.summary, groupBy: this.groupBy, pivot: this.pivot, fontSize: this.fontSize, fontFamily: this.fontFamily,\n }));\n for (const [type, name] of Object.entries(OUTPUTS)) {\n const out = (this as unknown as Record<string, EventEmitter<unknown>>)[name];\n api.on(type as keyof GridEvents, payload => {\n if (out.observed) this.zone.run(() => out.emit(payload));\n });\n }\n this.api = api;\n this.ready.emit(api);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const api = this.api;\n if (!api) return;\n this.zone.runOutsideAngular(() => {\n if (changes['columns']) api.setColumns(this.columns);\n if (changes['data']) api.setData(this.data ?? []);\n if (changes['theme'] && this.theme) api.setTheme(this.theme);\n if (changes['locale'] && this.locale !== undefined) api.setLocale(this.locale);\n if (changes['summary']) api.setSummary(this.summary ?? null);\n if (changes['groupBy']) api.setGroupBy(this.groupBy ?? []);\n if (changes['pivot']) api.setPivot(this.pivot ?? null);\n if (changes['fontSize'] || changes['fontFamily']) api.setFont({ size: this.fontSize, family: this.fontFamily ?? null });\n });\n }\n\n ngOnDestroy(): void {\n this.api?.destroy();\n this.api = null;\n }\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@freegridjs/angular",
3
- "version": "0.8.1",
3
+ "version": "1.0.0",
4
4
  "description": "Angular component for FreeGrid, the fast data grid (free for personal use).",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "peerDependencies": {
7
7
  "@angular/core": ">=17.0.0",
8
- "@freegridjs/core": "^0.8.1"
8
+ "@freegridjs/core": "^1.0.0"
9
9
  },
10
10
  "sideEffects": false,
11
11
  "keywords": [
@@ -126,6 +126,28 @@ export declare class FreeGridComponent implements AfterViewInit, OnChanges, OnDe
126
126
  readonly rowDrop: EventEmitter<import("@freegridjs/core").RowDropParams & {
127
127
  fromGrid: GridApi | null;
128
128
  }>;
129
+ readonly transactionApplied: EventEmitter<import("@freegridjs/core").TransactionResult>;
130
+ readonly rowEditStart: EventEmitter<{
131
+ row: Row;
132
+ rowIndex: number;
133
+ }>;
134
+ readonly columnGroupOpened: EventEmitter<{
135
+ groupId: string;
136
+ open: boolean;
137
+ }>;
138
+ readonly advancedFilterChange: EventEmitter<{
139
+ advancedFilter: import("@freegridjs/core").AdvancedFilter | null;
140
+ }>;
141
+ readonly rowEditStop: EventEmitter<{
142
+ row: Row;
143
+ rowIndex: number;
144
+ committed: boolean;
145
+ changes: {
146
+ colId: string;
147
+ oldValue: unknown;
148
+ newValue: unknown;
149
+ }[];
150
+ }>;
129
151
  readonly childrenLoaded: EventEmitter<{
130
152
  row: Row;
131
153
  rows: Row[];
@@ -261,6 +283,11 @@ export declare class FreeGridComponent implements AfterViewInit, OnChanges, OnDe
261
283
  "rowsLoadFailed": "rowsLoadFailed";
262
284
  "pivotChange": "pivotChange";
263
285
  "rowDrop": "rowDrop";
286
+ "transactionApplied": "transactionApplied";
287
+ "rowEditStart": "rowEditStart";
288
+ "columnGroupOpened": "columnGroupOpened";
289
+ "advancedFilterChange": "advancedFilterChange";
290
+ "rowEditStop": "rowEditStop";
264
291
  "childrenLoaded": "childrenLoaded";
265
292
  "childrenLoadFailed": "childrenLoadFailed";
266
293
  "gridScroll": "gridScroll";