igniteui-angular 12.3.5 → 12.3.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.
Files changed (32) hide show
  1. package/bundles/igniteui-angular.umd.js +87 -20
  2. package/bundles/igniteui-angular.umd.js.map +1 -1
  3. package/esm2015/lib/core/utils.js +14 -2
  4. package/esm2015/lib/data-operations/data-clone-strategy.js +7 -0
  5. package/esm2015/lib/data-operations/data-util.js +7 -6
  6. package/esm2015/lib/grids/api.service.js +2 -2
  7. package/esm2015/lib/grids/common/crud.service.js +4 -3
  8. package/esm2015/lib/grids/common/grid.interface.js +1 -1
  9. package/esm2015/lib/grids/common/pipes.js +2 -2
  10. package/esm2015/lib/grids/grid-base.directive.js +25 -1
  11. package/esm2015/lib/grids/grid-public-row.js +3 -4
  12. package/esm2015/lib/grids/row.directive.js +2 -3
  13. package/esm2015/lib/grids/summaries/grid-summary.service.js +2 -2
  14. package/esm2015/lib/grids/tree-grid/tree-grid.pipes.js +3 -3
  15. package/esm2015/lib/services/transaction/base-transaction.js +17 -4
  16. package/esm2015/lib/services/transaction/igx-hierarchical-transaction.js +3 -4
  17. package/esm2015/lib/services/transaction/igx-transaction.js +3 -3
  18. package/esm2015/lib/services/transaction/transaction-factory.service.js +1 -2
  19. package/esm2015/lib/services/transaction/transaction.js +1 -1
  20. package/esm2015/public_api.js +2 -1
  21. package/fesm2015/igniteui-angular.js +74 -21
  22. package/fesm2015/igniteui-angular.js.map +1 -1
  23. package/igniteui-angular.metadata.json +1 -1
  24. package/lib/core/utils.d.ts +8 -0
  25. package/lib/data-operations/data-clone-strategy.d.ts +6 -0
  26. package/lib/data-operations/data-util.d.ts +3 -2
  27. package/lib/grids/common/grid.interface.d.ts +2 -0
  28. package/lib/grids/grid-base.directive.d.ts +12 -0
  29. package/lib/services/transaction/base-transaction.d.ts +7 -0
  30. package/lib/services/transaction/transaction.d.ts +5 -0
  31. package/package.json +1 -1
  32. package/public_api.d.ts +1 -0
@@ -26,6 +26,14 @@ 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
+ *
33
+ * @param obj Source to copy prototype and descriptors from
34
+ * @returns New object with cloned prototype and property descriptors
35
+ */
36
+ export declare const copyDescriptors: (obj: any) => any;
29
37
  /**
30
38
  * Deep clones all first level keys of Obj2 and merges them to Obj1
31
39
  *
@@ -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
+ }
@@ -10,6 +10,7 @@ import { IGridGroupingStrategy } from './grouping-strategy';
10
10
  import { ITreeGridRecord } from '../grids/tree-grid/public_api';
11
11
  import { Transaction, HierarchicalTransaction } from '../services/transaction/transaction';
12
12
  import { GridType } from '../grids/common/grid.interface';
13
+ import { IDataCloneStrategy } from '../data-operations/data-clone-strategy';
13
14
  /**
14
15
  * @hidden
15
16
  */
@@ -46,7 +47,7 @@ export declare class DataUtil {
46
47
  * @param deleteRows Should delete rows with DELETE transaction type from data
47
48
  * @returns Provided data collections updated with all provided transactions
48
49
  */
49
- static mergeTransactions<T>(data: T[], transactions: Transaction[], primaryKey?: any, deleteRows?: boolean): T[];
50
+ static mergeTransactions<T>(data: T[], transactions: Transaction[], primaryKey?: any, cloneStrategy?: IDataCloneStrategy, deleteRows?: boolean): T[];
50
51
  /**
51
52
  * Merges all changes from provided transactions into provided hierarchical data collection
52
53
  *
@@ -57,7 +58,7 @@ export declare class DataUtil {
57
58
  * @param deleteRows Should delete rows with DELETE transaction type from data
58
59
  * @returns Provided data collections updated with all provided transactions
59
60
  */
60
- static mergeHierarchicalTransactions(data: any[], transactions: HierarchicalTransaction[], childDataKey: any, primaryKey?: any, deleteRows?: boolean): any[];
61
+ static mergeHierarchicalTransactions(data: any[], transactions: HierarchicalTransaction[], childDataKey: any, primaryKey?: any, cloneStrategy?: IDataCloneStrategy, deleteRows?: boolean): any[];
61
62
  static parseValue(dataType: GridColumnDataType, value: any): any;
62
63
  private static findParentFromPath;
63
64
  }
@@ -9,6 +9,7 @@ import { TransactionService, Transaction, State } from '../../services/public_ap
9
9
  import { ITreeGridRecord } from '../tree-grid/public_api';
10
10
  import { IGroupByRecord } from '../../data-operations/groupby-record.interface';
11
11
  import { IGroupByExpandState } from '../../data-operations/groupby-expand-state.interface';
12
+ import { IDataCloneStrategy } from '../../data-operations/data-clone-strategy';
12
13
  export interface IGridDataBindable {
13
14
  data: any[] | null;
14
15
  filteredData: any[];
@@ -31,6 +32,7 @@ export interface GridType extends IGridDataBindable {
31
32
  summaryPipeTrigger: number;
32
33
  hasColumnLayouts: boolean;
33
34
  filterMode: FilterMode;
35
+ dataCloneStrategy: IDataCloneStrategy;
34
36
  selectionService: any;
35
37
  navigation: any;
36
38
  filteringService: any;
@@ -49,6 +49,7 @@ import { IgxPaginatorComponent } from '../paginator/paginator.component';
49
49
  import { IgxGridHeaderRowComponent } from './headers/grid-header-row.component';
50
50
  import { IgxGridGroupByAreaComponent } from './grouping/grid-group-by-area.component';
51
51
  import { IgxFlatTransactionFactory } from '../services/transaction/transaction-factory.service';
52
+ import { IDataCloneStrategy } from '../data-operations/data-clone-strategy';
52
53
  export declare const IgxGridTransaction: InjectionToken<string>;
53
54
  export declare abstract class IgxGridBaseDirective extends DisplayDensityBase implements GridType, OnInit, DoCheck, OnDestroy, AfterContentInit, AfterViewInit {
54
55
  selectionService: IgxGridSelectionService;
@@ -287,6 +288,16 @@ export declare abstract class IgxGridBaseDirective extends DisplayDensityBase im
287
288
  */
288
289
  excelStyleFilteringComponents: QueryList<IgxGridExcelStyleFilteringComponent>;
289
290
  get headerGroups(): IgxGridHeaderGroupComponent[];
291
+ /**
292
+ * Gets/Sets the data clone strategy of the grid when in edit mode.
293
+ *
294
+ * @example
295
+ * ```html
296
+ * <igx-grid #grid [data]="localData" [dataCloneStrategy]="customCloneStrategy"></igx-grid>
297
+ * ```
298
+ */
299
+ get dataCloneStrategy(): IDataCloneStrategy;
300
+ set dataCloneStrategy(strategy: IDataCloneStrategy);
290
301
  /**
291
302
  * Emitted when a cell is clicked.
292
303
  *
@@ -1945,6 +1956,7 @@ export declare abstract class IgxGridBaseDirective extends DisplayDensityBase im
1945
1956
  private _currencyPositionLeft;
1946
1957
  private rowEditPositioningStrategy;
1947
1958
  private rowEditSettings;
1959
+ private _dataCloneStrategy;
1948
1960
  private transactionChange$;
1949
1961
  private _rendered;
1950
1962
  private readonly DRAG_SCROLL_DELTA;
@@ -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": "12.3.5",
3
+ "version": "12.3.6",
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
@@ -26,6 +26,7 @@ export * from './lib/directives/date-time-editor/public_api';
26
26
  /**
27
27
  * Data operations
28
28
  */
29
+ export * from './lib/data-operations/data-clone-strategy';
29
30
  export * from './lib/data-operations/filtering-expression.interface';
30
31
  export * from './lib/data-operations/filtering-expressions-tree';
31
32
  export * from './lib/data-operations/filtering-condition';