igniteui-angular 13.0.4 → 13.0.8

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 (42) hide show
  1. package/esm2020/lib/combo/combo.common.mjs +2 -2
  2. package/esm2020/lib/core/utils.mjs +13 -2
  3. package/esm2020/lib/data-operations/data-clone-strategy.mjs +7 -0
  4. package/esm2020/lib/data-operations/data-util.mjs +7 -6
  5. package/esm2020/lib/directives/scroll-inertia/scroll_inertia.directive.mjs +33 -1
  6. package/esm2020/lib/grids/api.service.mjs +2 -2
  7. package/esm2020/lib/grids/common/crud.service.mjs +4 -3
  8. package/esm2020/lib/grids/common/grid.interface.mjs +1 -1
  9. package/esm2020/lib/grids/common/pipes.mjs +2 -2
  10. package/esm2020/lib/grids/grid-base.directive.mjs +27 -2
  11. package/esm2020/lib/grids/grid-public-row.mjs +16 -5
  12. package/esm2020/lib/grids/row.directive.mjs +2 -3
  13. package/esm2020/lib/grids/summaries/grid-summary.service.mjs +3 -2
  14. package/esm2020/lib/grids/tree-grid/tree-grid-selection.service.mjs +28 -27
  15. package/esm2020/lib/grids/tree-grid/tree-grid.grouping.pipe.mjs +8 -4
  16. package/esm2020/lib/grids/tree-grid/tree-grid.pipes.mjs +3 -3
  17. package/esm2020/lib/services/excel/excel-files.mjs +3 -3
  18. package/esm2020/lib/services/excel/worksheet-data.mjs +7 -3
  19. package/esm2020/lib/services/overlay/overlay.mjs +2 -1
  20. package/esm2020/lib/services/transaction/base-transaction.mjs +17 -4
  21. package/esm2020/lib/services/transaction/igx-hierarchical-transaction.mjs +3 -4
  22. package/esm2020/lib/services/transaction/igx-transaction.mjs +3 -3
  23. package/esm2020/lib/services/transaction/transaction-factory.service.mjs +1 -2
  24. package/esm2020/lib/services/transaction/transaction.mjs +1 -1
  25. package/esm2020/public_api.mjs +2 -1
  26. package/fesm2015/igniteui-angular.mjs +164 -56
  27. package/fesm2015/igniteui-angular.mjs.map +1 -1
  28. package/fesm2020/igniteui-angular.mjs +164 -56
  29. package/fesm2020/igniteui-angular.mjs.map +1 -1
  30. package/lib/core/utils.d.ts +7 -0
  31. package/lib/data-operations/data-clone-strategy.d.ts +6 -0
  32. package/lib/data-operations/data-util.d.ts +3 -2
  33. package/lib/directives/scroll-inertia/scroll_inertia.directive.d.ts +6 -0
  34. package/lib/grids/common/grid.interface.d.ts +3 -1
  35. package/lib/grids/grid-base.directive.d.ts +13 -1
  36. package/lib/grids/grid-public-row.d.ts +8 -0
  37. package/lib/grids/tree-grid/tree-grid-selection.service.d.ts +2 -1
  38. package/lib/services/excel/worksheet-data.d.ts +2 -0
  39. package/lib/services/transaction/base-transaction.d.ts +7 -0
  40. package/lib/services/transaction/transaction.d.ts +5 -0
  41. package/package.json +1 -1
  42. package/public_api.d.ts +1 -0
@@ -26,6 +26,13 @@ export declare const cloneArray: (array: any[], deep?: boolean) => any[];
26
26
  * @hidden
27
27
  */
28
28
  export declare const cloneHierarchicalArray: (array: any[], childDataKey: any) => any[];
29
+ /**
30
+ * Creates an object with prototype from provided source and copies
31
+ * all properties descriptors from provided source
32
+ * @param obj Source to copy prototype and descriptors from
33
+ * @returns New object with cloned prototype and property descriptors
34
+ */
35
+ export declare const copyDescriptors: (obj: any) => any;
29
36
  /**
30
37
  * Deep clones all first level keys of Obj2 and merges them to Obj1
31
38
  *
@@ -0,0 +1,6 @@
1
+ export interface IDataCloneStrategy {
2
+ clone(data: any): any;
3
+ }
4
+ export declare class DefaultDataCloneStrategy implements IDataCloneStrategy {
5
+ clone(data: any): any;
6
+ }
@@ -9,6 +9,7 @@ import { GridType } from '../grids/common/grid.interface';
9
9
  import { ITreeGridRecord } from '../grids/tree-grid/tree-grid.interfaces';
10
10
  import { ISortingExpression } from './sorting-strategy';
11
11
  import { IGridSortingStrategy, IGridGroupingStrategy } from '../grids/common/strategy';
12
+ import { IDataCloneStrategy } from '../data-operations/data-clone-strategy';
12
13
  /**
13
14
  * @hidden
14
15
  */
@@ -45,7 +46,7 @@ export declare class DataUtil {
45
46
  * @param deleteRows Should delete rows with DELETE transaction type from data
46
47
  * @returns Provided data collections updated with all provided transactions
47
48
  */
48
- static mergeTransactions<T>(data: T[], transactions: Transaction[], primaryKey?: any, deleteRows?: boolean): T[];
49
+ static mergeTransactions<T>(data: T[], transactions: Transaction[], primaryKey?: any, cloneStrategy?: IDataCloneStrategy, deleteRows?: boolean): T[];
49
50
  /**
50
51
  * Merges all changes from provided transactions into provided hierarchical data collection
51
52
  *
@@ -56,7 +57,7 @@ export declare class DataUtil {
56
57
  * @param deleteRows Should delete rows with DELETE transaction type from data
57
58
  * @returns Provided data collections updated with all provided transactions
58
59
  */
59
- static mergeHierarchicalTransactions(data: any[], transactions: HierarchicalTransaction[], childDataKey: any, primaryKey?: any, deleteRows?: boolean): any[];
60
+ static mergeHierarchicalTransactions(data: any[], transactions: HierarchicalTransaction[], childDataKey: any, primaryKey?: any, cloneStrategy?: IDataCloneStrategy, deleteRows?: boolean): any[];
60
61
  static parseValue(dataType: GridColumnDataType, value: any): any;
61
62
  private static findParentFromPath;
62
63
  }
@@ -50,6 +50,12 @@ export declare class IgxScrollInertiaDirective implements OnInit, OnDestroy {
50
50
  * When there is still room to scroll up/down prevent the parent elements from scrolling too.
51
51
  */
52
52
  protected preventParentScroll(evt: any, preventDefault: any, nextTop?: number): void;
53
+ /**
54
+ * @hidden
55
+ * Checks if the wheel event would have scrolled an element under the display container
56
+ * in DOM tree so that it can correctly be ignored until that element can no longer be scrolled.
57
+ */
58
+ protected didChildScroll(evt: any, scrollDeltaX: any, scrollDeltaY: any): boolean;
53
59
  /**
54
60
  * @hidden
55
61
  * Function that is called the first moment we start interacting with the content on a touch device
@@ -26,6 +26,7 @@ import { IGridGroupingStrategy, IGridSortingStrategy } from './strategy';
26
26
  import { IForOfState, IgxGridForOfDirective } from '../../directives/for-of/for_of.directive';
27
27
  import { OverlaySettings } from '../../services/overlay/utilities';
28
28
  import { IPinningConfig } from '../grid.common';
29
+ import { IDataCloneStrategy } from '../../data-operations/data-clone-strategy';
29
30
  export declare const IGX_GRID_BASE: InjectionToken<GridType>;
30
31
  export declare const IGX_GRID_SERVICE_BASE: InjectionToken<GridServiceType>;
31
32
  export interface IPathSegment {
@@ -86,7 +87,7 @@ export interface RowType {
86
87
  parent?: RowType;
87
88
  hasChildren?: boolean;
88
89
  treeRow?: ITreeGridRecord;
89
- addRowUI?: any;
90
+ addRowUI?: boolean;
90
91
  focused?: boolean;
91
92
  grid: GridType;
92
93
  onRowSelectorClick?: (event: MouseEvent) => void;
@@ -240,6 +241,7 @@ export interface GridType extends IGridDataBindable {
240
241
  summaryPipeTrigger: number;
241
242
  hasColumnLayouts: boolean;
242
243
  isLoading: boolean;
244
+ dataCloneStrategy: IDataCloneStrategy;
243
245
  gridAPI: GridServiceType;
244
246
  filterMode: FilterMode;
245
247
  theadRow: any;
@@ -51,6 +51,7 @@ import { IGridSortingStrategy } from './common/strategy';
51
51
  import { IgxGridExcelStyleFilteringComponent } from './filtering/excel-style/grid.excel-style-filtering.component';
52
52
  import { IgxGridHeaderComponent } from './headers/grid-header.component';
53
53
  import { IgxGridFilteringRowComponent } from './filtering/base/grid-filtering-row.component';
54
+ import { IDataCloneStrategy } from '../data-operations/data-clone-strategy';
54
55
  import * as i0 from "@angular/core";
55
56
  export declare abstract class IgxGridBaseDirective extends DisplayDensityBase implements GridType, OnInit, DoCheck, OnDestroy, AfterContentInit, AfterViewInit {
56
57
  selectionService: IgxGridSelectionService;
@@ -126,6 +127,16 @@ export declare abstract class IgxGridBaseDirective extends DisplayDensityBase im
126
127
  */
127
128
  set summaryRowHeight(value: number);
128
129
  get summaryRowHeight(): number;
130
+ /**
131
+ * Gets/Sets the data clone strategy of the grid when in edit mode.
132
+ *
133
+ * @example
134
+ * ```html
135
+ * <igx-grid #grid [data]="localData" [dataCloneStrategy]="customCloneStrategy"></igx-grid>
136
+ * ```
137
+ */
138
+ get dataCloneStrategy(): IDataCloneStrategy;
139
+ set dataCloneStrategy(strategy: IDataCloneStrategy);
129
140
  /**
130
141
  * Controls the copy behavior of the grid.
131
142
  */
@@ -1784,6 +1795,7 @@ export declare abstract class IgxGridBaseDirective extends DisplayDensityBase im
1784
1795
  private transactionChange$;
1785
1796
  private _rendered;
1786
1797
  private readonly DRAG_SCROLL_DELTA;
1798
+ private _dataCloneStrategy;
1787
1799
  /**
1788
1800
  * @hidden @internal
1789
1801
  */
@@ -3372,5 +3384,5 @@ export declare abstract class IgxGridBaseDirective extends DisplayDensityBase im
3372
3384
  private rebuildMatchCache;
3373
3385
  private configureRowEditingOverlay;
3374
3386
  static ɵfac: i0.ɵɵFactoryDeclaration<IgxGridBaseDirective, [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, { optional: true; }, null, null, { optional: true; }]>;
3375
- static ɵdir: i0.ɵɵDirectiveDeclaration<IgxGridBaseDirective, never, never, { "snackbarDisplayTime": "snackbarDisplayTime"; "autoGenerate": "autoGenerate"; "emptyGridTemplate": "emptyGridTemplate"; "addRowEmptyTemplate": "addRowEmptyTemplate"; "loadingGridTemplate": "loadingGridTemplate"; "summaryRowHeight": "summaryRowHeight"; "clipboardOptions": "clipboardOptions"; "class": "class"; "evenRowCSS": "evenRowCSS"; "oddRowCSS": "oddRowCSS"; "rowClasses": "rowClasses"; "rowStyles": "rowStyles"; "primaryKey": "primaryKey"; "uniqueColumnValuesStrategy": "uniqueColumnValuesStrategy"; "resourceStrings": "resourceStrings"; "filteringLogic": "filteringLogic"; "filteringExpressionsTree": "filteringExpressionsTree"; "advancedFilteringExpressionsTree": "advancedFilteringExpressionsTree"; "locale": "locale"; "pagingMode": "pagingMode"; "paging": "paging"; "page": "page"; "perPage": "perPage"; "hideRowSelectors": "hideRowSelectors"; "rowDraggable": "rowDraggable"; "rowEditable": "rowEditable"; "height": "height"; "width": "width"; "rowHeight": "rowHeight"; "columnWidth": "columnWidth"; "emptyGridMessage": "emptyGridMessage"; "isLoading": "isLoading"; "emptyFilteredGridMessage": "emptyFilteredGridMessage"; "pinning": "pinning"; "allowFiltering": "allowFiltering"; "allowAdvancedFiltering": "allowAdvancedFiltering"; "filterMode": "filterMode"; "summaryPosition": "summaryPosition"; "summaryCalculationMode": "summaryCalculationMode"; "showSummaryOnCollapse": "showSummaryOnCollapse"; "filterStrategy": "filterStrategy"; "sortStrategy": "sortStrategy"; "selectedRows": "selectedRows"; "sortingExpressions": "sortingExpressions"; "batchEditing": "batchEditing"; "cellSelection": "cellSelection"; "rowSelection": "rowSelection"; "columnSelection": "columnSelection"; "expansionStates": "expansionStates"; "outlet": "outlet"; "totalRecords": "totalRecords"; "selectRowOnClick": "selectRowOnClick"; }, { "filteringExpressionsTreeChange": "filteringExpressionsTreeChange"; "advancedFilteringExpressionsTreeChange": "advancedFilteringExpressionsTreeChange"; "gridScroll": "gridScroll"; "pageChange": "pageChange"; "perPageChange": "perPageChange"; "cellClick": "cellClick"; "selected": "selected"; "rowSelectionChanging": "rowSelectionChanging"; "columnSelectionChanging": "columnSelectionChanging"; "columnPin": "columnPin"; "columnPinned": "columnPinned"; "cellEditEnter": "cellEditEnter"; "cellEditExit": "cellEditExit"; "cellEdit": "cellEdit"; "cellEditDone": "cellEditDone"; "rowEditEnter": "rowEditEnter"; "rowEdit": "rowEdit"; "rowEditDone": "rowEditDone"; "rowEditExit": "rowEditExit"; "columnInit": "columnInit"; "sorting": "sorting"; "sortingDone": "sortingDone"; "filtering": "filtering"; "filteringDone": "filteringDone"; "pagingDone": "pagingDone"; "rowAdded": "rowAdded"; "rowDeleted": "rowDeleted"; "rowDelete": "rowDelete"; "rowAdd": "rowAdd"; "columnResized": "columnResized"; "contextMenu": "contextMenu"; "doubleClick": "doubleClick"; "columnVisibilityChanging": "columnVisibilityChanging"; "columnVisibilityChanged": "columnVisibilityChanged"; "columnMovingStart": "columnMovingStart"; "columnMoving": "columnMoving"; "columnMovingEnd": "columnMovingEnd"; "gridKeydown": "gridKeydown"; "rowDragStart": "rowDragStart"; "rowDragEnd": "rowDragEnd"; "gridCopy": "gridCopy"; "expansionStatesChange": "expansionStatesChange"; "rowToggle": "rowToggle"; "rowPinning": "rowPinning"; "rowPinned": "rowPinned"; "activeNodeChange": "activeNodeChange"; "sortingExpressionsChange": "sortingExpressionsChange"; "toolbarExporting": "toolbarExporting"; "rangeSelected": "rangeSelected"; "rendered": "rendered"; "localeChange": "localeChange"; }, ["actionStrip", "excelStyleLoadingValuesTemplateDirective", "rowAddText", "rowExpandedIndicatorTemplate", "rowCollapsedIndicatorTemplate", "headerExpandIndicatorTemplate", "headerCollapseIndicatorTemplate", "excelStyleHeaderIconTemplate", "sortAscendingHeaderIconTemplate", "sortDescendingHeaderIconTemplate", "sortHeaderIconTemplate", "excelStyleFilteringComponents", "columnList", "headSelectorsTemplates", "rowSelectorsTemplates", "dragGhostCustomTemplates", "rowEditCustomDirectives", "rowEditTextDirectives", "rowEditActionsDirectives", "dragIndicatorIconTemplates", "rowEditTabsCUSTOM", "toolbar", "paginationComponents"]>;
3387
+ static ɵdir: i0.ɵɵDirectiveDeclaration<IgxGridBaseDirective, never, never, { "snackbarDisplayTime": "snackbarDisplayTime"; "autoGenerate": "autoGenerate"; "emptyGridTemplate": "emptyGridTemplate"; "addRowEmptyTemplate": "addRowEmptyTemplate"; "loadingGridTemplate": "loadingGridTemplate"; "summaryRowHeight": "summaryRowHeight"; "dataCloneStrategy": "dataCloneStrategy"; "clipboardOptions": "clipboardOptions"; "class": "class"; "evenRowCSS": "evenRowCSS"; "oddRowCSS": "oddRowCSS"; "rowClasses": "rowClasses"; "rowStyles": "rowStyles"; "primaryKey": "primaryKey"; "uniqueColumnValuesStrategy": "uniqueColumnValuesStrategy"; "resourceStrings": "resourceStrings"; "filteringLogic": "filteringLogic"; "filteringExpressionsTree": "filteringExpressionsTree"; "advancedFilteringExpressionsTree": "advancedFilteringExpressionsTree"; "locale": "locale"; "pagingMode": "pagingMode"; "paging": "paging"; "page": "page"; "perPage": "perPage"; "hideRowSelectors": "hideRowSelectors"; "rowDraggable": "rowDraggable"; "rowEditable": "rowEditable"; "height": "height"; "width": "width"; "rowHeight": "rowHeight"; "columnWidth": "columnWidth"; "emptyGridMessage": "emptyGridMessage"; "isLoading": "isLoading"; "emptyFilteredGridMessage": "emptyFilteredGridMessage"; "pinning": "pinning"; "allowFiltering": "allowFiltering"; "allowAdvancedFiltering": "allowAdvancedFiltering"; "filterMode": "filterMode"; "summaryPosition": "summaryPosition"; "summaryCalculationMode": "summaryCalculationMode"; "showSummaryOnCollapse": "showSummaryOnCollapse"; "filterStrategy": "filterStrategy"; "sortStrategy": "sortStrategy"; "selectedRows": "selectedRows"; "sortingExpressions": "sortingExpressions"; "batchEditing": "batchEditing"; "cellSelection": "cellSelection"; "rowSelection": "rowSelection"; "columnSelection": "columnSelection"; "expansionStates": "expansionStates"; "outlet": "outlet"; "totalRecords": "totalRecords"; "selectRowOnClick": "selectRowOnClick"; }, { "filteringExpressionsTreeChange": "filteringExpressionsTreeChange"; "advancedFilteringExpressionsTreeChange": "advancedFilteringExpressionsTreeChange"; "gridScroll": "gridScroll"; "pageChange": "pageChange"; "perPageChange": "perPageChange"; "cellClick": "cellClick"; "selected": "selected"; "rowSelectionChanging": "rowSelectionChanging"; "columnSelectionChanging": "columnSelectionChanging"; "columnPin": "columnPin"; "columnPinned": "columnPinned"; "cellEditEnter": "cellEditEnter"; "cellEditExit": "cellEditExit"; "cellEdit": "cellEdit"; "cellEditDone": "cellEditDone"; "rowEditEnter": "rowEditEnter"; "rowEdit": "rowEdit"; "rowEditDone": "rowEditDone"; "rowEditExit": "rowEditExit"; "columnInit": "columnInit"; "sorting": "sorting"; "sortingDone": "sortingDone"; "filtering": "filtering"; "filteringDone": "filteringDone"; "pagingDone": "pagingDone"; "rowAdded": "rowAdded"; "rowDeleted": "rowDeleted"; "rowDelete": "rowDelete"; "rowAdd": "rowAdd"; "columnResized": "columnResized"; "contextMenu": "contextMenu"; "doubleClick": "doubleClick"; "columnVisibilityChanging": "columnVisibilityChanging"; "columnVisibilityChanged": "columnVisibilityChanged"; "columnMovingStart": "columnMovingStart"; "columnMoving": "columnMoving"; "columnMovingEnd": "columnMovingEnd"; "gridKeydown": "gridKeydown"; "rowDragStart": "rowDragStart"; "rowDragEnd": "rowDragEnd"; "gridCopy": "gridCopy"; "expansionStatesChange": "expansionStatesChange"; "rowToggle": "rowToggle"; "rowPinning": "rowPinning"; "rowPinned": "rowPinned"; "activeNodeChange": "activeNodeChange"; "sortingExpressionsChange": "sortingExpressionsChange"; "toolbarExporting": "toolbarExporting"; "rangeSelected": "rangeSelected"; "rendered": "rendered"; "localeChange": "localeChange"; }, ["actionStrip", "excelStyleLoadingValuesTemplateDirective", "rowAddText", "rowExpandedIndicatorTemplate", "rowCollapsedIndicatorTemplate", "headerExpandIndicatorTemplate", "headerCollapseIndicatorTemplate", "excelStyleHeaderIconTemplate", "sortAscendingHeaderIconTemplate", "sortDescendingHeaderIconTemplate", "sortHeaderIconTemplate", "excelStyleFilteringComponents", "columnList", "headSelectorsTemplates", "rowSelectorsTemplates", "dragGhostCustomTemplates", "rowEditCustomDirectives", "rowEditTextDirectives", "rowEditActionsDirectives", "dragIndicatorIconTemplates", "rowEditTabsCUSTOM", "toolbar", "paginationComponents"]>;
3376
3388
  }
@@ -25,6 +25,14 @@ declare abstract class BaseRow implements RowType {
25
25
  * ```
26
26
  */
27
27
  get key(): any;
28
+ /**
29
+ * Gets if this represents add row UI
30
+ *
31
+ * ```typescript
32
+ * let isAddRow = row.addRowUI;
33
+ * ```
34
+ */
35
+ get addRowUI(): boolean;
28
36
  /**
29
37
  * The data record that populates the row.
30
38
  *
@@ -8,7 +8,7 @@ export declare class IgxTreeGridSelectionService extends IgxGridSelectionService
8
8
  /** Deselect specified rows. No event is emitted. */
9
9
  deselectRowsWithNoEvent(rowIDs: any[]): void;
10
10
  emitRowSelectionEvent(newSelection: any, added: any, removed: any, event?: any): boolean;
11
- updateCascadeSelectionOnFilterAndCRUD(parents: Set<any>, crudRowID?: any, visibleRowIDs?: any[]): void;
11
+ updateCascadeSelectionOnFilterAndCRUD(parents: Set<any>, crudRowID?: any, visibleRowIDs?: Set<any>): void;
12
12
  private cascadeSelectRowsWithNoEvent;
13
13
  private cascadeDeselectRowsWithNoEvent;
14
14
  get selectionService(): IgxGridSelectionService;
@@ -39,6 +39,7 @@ export declare class IgxTreeGridSelectionService extends IgxGridSelectionService
39
39
  */
40
40
  private handleRowSelectionState;
41
41
  private get_all_children;
42
+ private selectDeselectRow;
42
43
  static ɵfac: i0.ɵɵFactoryDeclaration<IgxTreeGridSelectionService, never>;
43
44
  static ɵprov: i0.ɵɵInjectableDeclaration<IgxTreeGridSelectionService>;
44
45
  }
@@ -15,11 +15,13 @@ export declare class WorksheetData {
15
15
  private _rowCount;
16
16
  private _dataDictionary;
17
17
  private _isSpecialData;
18
+ private _hasMultiColumnHeader;
18
19
  constructor(_data: IExportRecord[], options: IgxExcelExporterOptions, sort: any, columnCount: number, rootKeys: string[], indexOfLastPinnedColumn: number, columnWidths: number[], owner: IColumnList, owners: Map<any, IColumnList>);
19
20
  get data(): IExportRecord[];
20
21
  get rowCount(): number;
21
22
  get isEmpty(): boolean;
22
23
  get isSpecialData(): boolean;
23
24
  get dataDictionary(): WorksheetDataDictionary;
25
+ get hasMultiColumnHeader(): boolean;
24
26
  private initializeData;
25
27
  }
@@ -1,6 +1,12 @@
1
1
  import { TransactionService, Transaction, State, StateUpdateEvent } from './transaction';
2
2
  import { EventEmitter } from '@angular/core';
3
+ import { IDataCloneStrategy } from '../../data-operations/data-clone-strategy';
3
4
  export declare class IgxBaseTransactionService<T extends Transaction, S extends State> implements TransactionService<T, S> {
5
+ /**
6
+ * @inheritdoc
7
+ */
8
+ get cloneStrategy(): IDataCloneStrategy;
9
+ set cloneStrategy(strategy: IDataCloneStrategy);
4
10
  /**
5
11
  * @inheritdoc
6
12
  */
@@ -20,6 +26,7 @@ export declare class IgxBaseTransactionService<T extends Transaction, S extends
20
26
  protected _isPending: boolean;
21
27
  protected _pendingTransactions: T[];
22
28
  protected _pendingStates: Map<any, S>;
29
+ private _cloneStrategy;
23
30
  /**
24
31
  * @inheritdoc
25
32
  */
@@ -1,4 +1,5 @@
1
1
  import { EventEmitter } from '@angular/core';
2
+ import { IDataCloneStrategy } from '../../data-operations/data-clone-strategy';
2
3
  export declare enum TransactionType {
3
4
  ADD = "add",
4
5
  DELETE = "delete",
@@ -48,6 +49,10 @@ export interface TransactionService<T extends Transaction, S extends State> {
48
49
  * Returns whether transaction is enabled for this service
49
50
  */
50
51
  readonly enabled: boolean;
52
+ /**
53
+ * Gets/Sets the data clone strategy used to clone data
54
+ */
55
+ cloneStrategy: IDataCloneStrategy;
51
56
  /**
52
57
  * Event fired when transaction state has changed - add transaction, commit all transactions, undo and redo
53
58
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "igniteui-angular",
3
- "version": "13.0.4",
3
+ "version": "13.0.8",
4
4
  "description": "Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps",
5
5
  "author": "Infragistics",
6
6
  "license": "SEE LICENSE IN LICENSE",
package/public_api.d.ts CHANGED
@@ -28,6 +28,7 @@ export * from './lib/directives/date-time-editor/public_api';
28
28
  /**
29
29
  * Data operations
30
30
  */
31
+ export * from './lib/data-operations/data-clone-strategy';
31
32
  export * from './lib/data-operations/filtering-expression.interface';
32
33
  export * from './lib/data-operations/filtering-expressions-tree';
33
34
  export * from './lib/data-operations/filtering-condition';