igniteui-angular 12.2.4 → 12.3.0-alpha.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 (41) hide show
  1. package/README.md +12 -11
  2. package/bundles/igniteui-angular.umd.js +1773 -1462
  3. package/bundles/igniteui-angular.umd.js.map +1 -1
  4. package/esm2015/igniteui-angular.js +97 -97
  5. package/esm2015/lib/combo/combo-dropdown.component.js +9 -4
  6. package/esm2015/lib/combo/combo-item.component.js +4 -3
  7. package/esm2015/lib/combo/combo.api.js +3 -3
  8. package/esm2015/lib/combo/combo.common.js +999 -2
  9. package/esm2015/lib/combo/combo.component.js +92 -1124
  10. package/esm2015/lib/combo/combo.pipes.js +3 -3
  11. package/esm2015/lib/data-operations/data-util.js +2 -3
  12. package/esm2015/lib/data-operations/grouping-strategy.js +1 -1
  13. package/esm2015/lib/grids/grid/grid.component.js +19 -2
  14. package/esm2015/lib/grids/grid/grid.pipes.js +3 -3
  15. package/esm2015/lib/services/exporter-common/base-export-service.js +2 -2
  16. package/esm2015/lib/simple-combo/public_api.js +2 -0
  17. package/esm2015/lib/simple-combo/simple-combo.component.js +298 -0
  18. package/esm2015/lib/toast/toast.component.js +46 -21
  19. package/esm2015/public_api.js +2 -1
  20. package/fesm2015/igniteui-angular.js +1305 -1025
  21. package/fesm2015/igniteui-angular.js.map +1 -1
  22. package/igniteui-angular.d.ts +96 -96
  23. package/igniteui-angular.metadata.json +1 -1
  24. package/lib/combo/combo-dropdown.component.d.ts +2 -0
  25. package/lib/combo/combo-item.component.d.ts +2 -0
  26. package/lib/combo/combo.common.d.ts +717 -4
  27. package/lib/combo/combo.component.d.ts +39 -782
  28. package/lib/combo/combo.pipes.d.ts +1 -1
  29. package/lib/data-operations/data-util.d.ts +2 -1
  30. package/lib/data-operations/grouping-strategy.d.ts +5 -2
  31. package/lib/grids/grid/grid.component.d.ts +17 -0
  32. package/lib/grids/grid/grid.pipes.d.ts +2 -1
  33. package/lib/simple-combo/public_api.d.ts +1 -0
  34. package/lib/simple-combo/simple-combo.component.d.ts +109 -0
  35. package/lib/toast/toast.component.d.ts +8 -4
  36. package/migrations/migration-collection.json +5 -0
  37. package/migrations/update-12_3_0/changes/members.json +26 -0
  38. package/migrations/update-12_3_0/index.d.ts +3 -0
  39. package/migrations/update-12_3_0/index.js +9 -0
  40. package/package.json +1 -1
  41. package/public_api.d.ts +1 -0
@@ -5,7 +5,7 @@ import { IComboFilteringOptions } from './combo.component';
5
5
  * @hidden
6
6
  */
7
7
  export declare class IgxComboFilteringPipe implements PipeTransform {
8
- transform(collection: any[], searchValue: any, displayKey: any, shouldFilter: boolean, filteringOptions: IComboFilteringOptions): any[];
8
+ transform(collection: any[], searchValue: any, displayKey: any, filteringOptions: IComboFilteringOptions, shouldFilter?: boolean): any[];
9
9
  }
10
10
  /**
11
11
  * @hidden
@@ -6,6 +6,7 @@ import { IGroupByKey } from './groupby-expand-state.interface';
6
6
  import { IGroupByRecord } from './groupby-record.interface';
7
7
  import { IGroupingState } from './groupby-state.interface';
8
8
  import { ISortingExpression } from './sorting-expression.interface';
9
+ import { IGridGroupingStrategy } from './grouping-strategy';
9
10
  import { ITreeGridRecord } from '../grids/tree-grid/public_api';
10
11
  import { Transaction, HierarchicalTransaction } from '../services/transaction/transaction';
11
12
  import { GridType } from '../grids/common/grid.interface';
@@ -30,7 +31,7 @@ export declare class DataUtil {
30
31
  static sort<T>(data: T[], expressions: ISortingExpression[], sorting?: IGridSortingStrategy, grid?: GridType): T[];
31
32
  static treeGridSort(hierarchicalData: ITreeGridRecord[], expressions: ISortingExpression[], sorting?: IGridSortingStrategy, parent?: ITreeGridRecord, grid?: GridType): ITreeGridRecord[];
32
33
  static cloneTreeGridRecord(hierarchicalRecord: ITreeGridRecord): ITreeGridRecord;
33
- static group<T>(data: T[], state: IGroupingState, grid?: GridType, groupsRecords?: any[], fullResult?: IGroupByResult): IGroupByResult;
34
+ static group<T>(data: T[], state: IGroupingState, grouping?: IGridGroupingStrategy, grid?: GridType, groupsRecords?: any[], fullResult?: IGroupByResult): IGroupByResult;
34
35
  static page<T>(data: T[], state: IPagingState, dataLength?: number): T[];
35
36
  static filter<T>(data: T[], state: IFilteringState, grid?: GridType): T[];
36
37
  static correctPagingState(state: IPagingState, length: number): void;
@@ -1,6 +1,9 @@
1
- import { IgxSorting } from './sorting-strategy';
1
+ import { IgxSorting, IGridSortingStrategy } from './sorting-strategy';
2
2
  import { IGroupingState } from './groupby-state.interface';
3
3
  import { IGroupByResult } from './grouping-result.interface';
4
- export declare class IgxGrouping extends IgxSorting {
4
+ export interface IGridGroupingStrategy extends IGridSortingStrategy {
5
+ groupBy(data: any[], state: IGroupingState, grid?: any, groupsRecords?: any[], fullResult?: IGroupByResult): IGroupByResult;
6
+ }
7
+ export declare class IgxGrouping extends IgxSorting implements IGridGroupingStrategy {
5
8
  groupBy(data: any[], state: IGroupingState, grid?: any, groupsRecords?: any[], fullResult?: IGroupByResult): IGroupByResult;
6
9
  }
@@ -13,6 +13,7 @@ import { IgxGroupByRowSelectorDirective } from '../selection/row-selectors';
13
13
  import { RowType } from '../common/row.interface';
14
14
  import { IgxGridGroupByAreaComponent } from '../grouping/grid-group-by-area.component';
15
15
  import { CellType } from '../common/cell.interface';
16
+ import { IGridGroupingStrategy } from '../../data-operations/grouping-strategy';
16
17
  export interface IGroupingDoneEventArgs extends IBaseEventArgs {
17
18
  expressions: Array<ISortingExpression> | ISortingExpression;
18
19
  groupedColumns: Array<IgxColumnComponent> | IgxColumnComponent;
@@ -181,6 +182,10 @@ export declare class IgxGridComponent extends IgxGridBaseDirective implements Gr
181
182
  * @hidden
182
183
  */
183
184
  protected _groupAreaTemplate: TemplateRef<any>;
185
+ /**
186
+ * @hidden
187
+ */
188
+ protected _groupStrategy: IGridGroupingStrategy;
184
189
  /**
185
190
  * @hidden
186
191
  */
@@ -269,6 +274,18 @@ export declare class IgxGridComponent extends IgxGridBaseDirective implements Gr
269
274
  */
270
275
  get hideGroupedColumns(): boolean;
271
276
  set hideGroupedColumns(value: boolean);
277
+ /**
278
+ * Gets/Sets the grouping strategy of the grid.
279
+ *
280
+ * @remarks The default IgxGrouping extends from IgxSorting and a custom one can be used as a `sortStrategy` as well.
281
+ *
282
+ * @example
283
+ * ```html
284
+ * <igx-grid #grid [data]="localData" [groupStrategy]="groupStrategy"></igx-grid>
285
+ * ```
286
+ */
287
+ get groupStrategy(): IGridGroupingStrategy;
288
+ set groupStrategy(value: IGridGroupingStrategy);
272
289
  /**
273
290
  * Gets/Sets the message displayed inside the GroupBy drop area where columns can be dragged on.
274
291
  *
@@ -9,6 +9,7 @@ import { IgxGridBaseDirective } from '../grid-base.directive';
9
9
  import { GridType } from '../common/grid.interface';
10
10
  import { IFilteringStrategy } from '../../data-operations/filtering-strategy';
11
11
  import { IGridSortingStrategy } from '../../data-operations/sorting-strategy';
12
+ import { IGridGroupingStrategy } from '../../data-operations/grouping-strategy';
12
13
  /**
13
14
  * @hidden
14
15
  */
@@ -23,7 +24,7 @@ export declare class IgxGridSortingPipe implements PipeTransform {
23
24
  export declare class IgxGridGroupingPipe implements PipeTransform {
24
25
  private gridAPI;
25
26
  constructor(gridAPI: GridBaseAPIService<IgxGridBaseDirective & GridType>);
26
- transform(collection: any[], expression: IGroupingExpression | IGroupingExpression[], expansion: IGroupByExpandState | IGroupByExpandState[], defaultExpanded: boolean, id: string, groupsRecords: any[], _pipeTrigger: number): IGroupByResult;
27
+ transform(collection: any[], expression: IGroupingExpression | IGroupingExpression[], expansion: IGroupByExpandState | IGroupByExpandState[], groupingStrategy: IGridGroupingStrategy, defaultExpanded: boolean, id: string, groupsRecords: any[], _pipeTrigger: number): IGroupByResult;
27
28
  }
28
29
  /**
29
30
  * @hidden
@@ -0,0 +1 @@
1
+ export * from './simple-combo.component';
@@ -0,0 +1,109 @@
1
+ import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, Injector } from '@angular/core';
2
+ import { ControlValueAccessor } from '@angular/forms';
3
+ import { IgxComboDropDownComponent } from '../combo/combo-dropdown.component';
4
+ import { IgxComboAPIService } from '../combo/combo.api';
5
+ import { IgxComboBaseDirective } from '../combo/combo.common';
6
+ import { IDisplayDensityOptions } from '../core/displayDensity';
7
+ import { IgxSelectionAPIService } from '../core/selection';
8
+ import { CancelableEventArgs, IBaseEventArgs, PlatformUtil } from '../core/utils';
9
+ import { IgxIconService } from '../icon/public_api';
10
+ import { IgxInputGroupType } from '../input-group/public_api';
11
+ /** Emitted when an igx-simple-combo's selection is changing. */
12
+ export interface ISimpleComboSelectionChangingEventArgs extends CancelableEventArgs, IBaseEventArgs {
13
+ /** An object which represents the value that is currently selected */
14
+ oldSelection: any;
15
+ /** An object which represents the value that will be selected after this event */
16
+ newSelection: any;
17
+ /** The text that will be displayed in the combo text box */
18
+ displayText: string;
19
+ }
20
+ /**
21
+ * Represents a drop-down list that provides filtering functionality, allowing users to choose a single option from a predefined list.
22
+ *
23
+ * @igxModule IgxSimpleComboModule
24
+ * @igxTheme igx-combo-theme
25
+ * @igxKeywords combobox, single combo selection
26
+ * @igxGroup Grids & Lists
27
+ *
28
+ * @remarks
29
+ * It provides the ability to filter items as well as perform single selection on the provided data.
30
+ * Additionally, it exposes keyboard navigation and custom styling capabilities.
31
+ * @example
32
+ * ```html
33
+ * <igx-simple-combo [itemsMaxHeight]="250" [data]="locationData"
34
+ * [displayKey]="'field'" [valueKey]="'field'"
35
+ * placeholder="Location" searchPlaceholder="Search...">
36
+ * </igx-simple-combo>
37
+ * ```
38
+ */
39
+ export declare class IgxSimpleComboComponent extends IgxComboBaseDirective implements ControlValueAccessor, AfterViewInit {
40
+ protected elementRef: ElementRef;
41
+ protected cdr: ChangeDetectorRef;
42
+ protected selectionService: IgxSelectionAPIService;
43
+ protected comboAPI: IgxComboAPIService;
44
+ protected _iconService: IgxIconService;
45
+ private platformUtil;
46
+ protected _displayDensityOptions: IDisplayDensityOptions;
47
+ protected _inputGroupType: IgxInputGroupType;
48
+ protected _injector: Injector;
49
+ /** @hidden @internal */
50
+ dropdown: IgxComboDropDownComponent;
51
+ /**
52
+ * Emitted when item selection is changing, before the selection completes
53
+ *
54
+ * ```html
55
+ * <igx-simple-combo (selectionChanging)='handleSelection()'></igx-simple-combo>
56
+ * ```
57
+ */
58
+ selectionChanging: EventEmitter<ISimpleComboSelectionChangingEventArgs>;
59
+ /** @hidden @internal */
60
+ composing: boolean;
61
+ private _updateInput;
62
+ /** @hidden @internal */
63
+ get filteredData(): any[] | null;
64
+ /** @hidden @internal */
65
+ set filteredData(val: any[] | null);
66
+ constructor(elementRef: ElementRef, cdr: ChangeDetectorRef, selectionService: IgxSelectionAPIService, comboAPI: IgxComboAPIService, _iconService: IgxIconService, platformUtil: PlatformUtil, _displayDensityOptions: IDisplayDensityOptions, _inputGroupType: IgxInputGroupType, _injector: Injector);
67
+ /**
68
+ * Select a defined item
69
+ *
70
+ * @param item the item to be selected
71
+ * ```typescript
72
+ * this.combo.select("New York");
73
+ * ```
74
+ */
75
+ select(item: any): void;
76
+ /**
77
+ * Deselect a defined item
78
+ *
79
+ * @param item the items to be deselected
80
+ * ```typescript
81
+ * this.combo.deselect("New York");
82
+ * ```
83
+ */
84
+ deselect(item: any): void;
85
+ /** @hidden @internal */
86
+ writeValue(value: any): void;
87
+ /** @hidden @internal */
88
+ ngAfterViewInit(): void;
89
+ /** @hidden @internal */
90
+ handleInputChange(event?: any): void;
91
+ /** @hidden @internal */
92
+ handleKeyDown(event: KeyboardEvent): void;
93
+ /** @hidden @internal */
94
+ handleKeyUp(event: KeyboardEvent): void;
95
+ /** @hidden @internal */
96
+ getEditElement(): HTMLElement;
97
+ /** @hidden @internal */
98
+ handleClear(event: Event): void;
99
+ /** @hidden @internal */
100
+ handleOpened(): void;
101
+ /** @hidden @internal */
102
+ focusSearchInput(opening?: boolean): void;
103
+ protected findMatch: (element: any) => boolean;
104
+ protected setSelection(newSelection: any): void;
105
+ protected createDisplayText(newSelection: any[], oldSelection: any[]): any;
106
+ private clearSelection;
107
+ }
108
+ export declare class IgxSimpleComboModule {
109
+ }
@@ -1,4 +1,4 @@
1
- import { ChangeDetectorRef, ElementRef, EventEmitter, OnInit } from '@angular/core';
1
+ import { ChangeDetectorRef, ElementRef, EventEmitter, OnChanges, OnInit, SimpleChanges } from '@angular/core';
2
2
  import { IgxNavigationService } from '../core/navigation';
3
3
  import { IgxOverlayService, PositionSettings } from '../services/public_api';
4
4
  import { IgxNotificationsDirective } from '../directives/notification/notifications.directive';
@@ -31,7 +31,7 @@ export declare type IgxToastPosition = (typeof IgxToastPosition)[keyof typeof Ig
31
31
  * </igx-toast>
32
32
  * ```
33
33
  */
34
- export declare class IgxToastComponent extends IgxNotificationsDirective implements OnInit {
34
+ export declare class IgxToastComponent extends IgxNotificationsDirective implements OnInit, OnChanges {
35
35
  private _element;
36
36
  /**
37
37
  * @hidden
@@ -77,7 +77,8 @@ export declare class IgxToastComponent extends IgxNotificationsDirective impleme
77
77
  *
78
78
  * @memberof IgxToastComponent
79
79
  */
80
- position: IgxToastPosition;
80
+ get position(): IgxToastPosition;
81
+ set position(position: IgxToastPosition);
81
82
  /**
82
83
  * Get the position and animation settings used by the toast.
83
84
  * ```typescript
@@ -107,6 +108,7 @@ export declare class IgxToastComponent extends IgxNotificationsDirective impleme
107
108
  * ```
108
109
  */
109
110
  set positionSettings(settings: PositionSettings);
111
+ private _position;
110
112
  private _positionSettings;
111
113
  /**
112
114
  * Gets the nativeElement of the toast.
@@ -126,7 +128,7 @@ export declare class IgxToastComponent extends IgxNotificationsDirective impleme
126
128
  * this.toast.open();
127
129
  * ```
128
130
  */
129
- open(message?: string): void;
131
+ open(message?: string, settings?: PositionSettings): void;
130
132
  /**
131
133
  * Opens or closes the toast, depending on its current state.
132
134
  *
@@ -139,6 +141,8 @@ export declare class IgxToastComponent extends IgxNotificationsDirective impleme
139
141
  * @hidden
140
142
  */
141
143
  ngOnInit(): void;
144
+ ngOnChanges(changes: SimpleChanges): void;
145
+ private calculatePosition;
142
146
  }
143
147
  /**
144
148
  * @hidden
@@ -105,6 +105,11 @@
105
105
  "version": "12.1.0",
106
106
  "description": "Updates Ignite UI for Angular from v11.1.x to v12.1.0",
107
107
  "factory": "./update-12_1_0"
108
+ },
109
+ "migration-22": {
110
+ "version": "12.3.0",
111
+ "description": "Updates Ignite UI for Angular from v12.1.x to v12.3.0",
112
+ "factory": "./update-12_3_0"
108
113
  }
109
114
  }
110
115
  }
@@ -0,0 +1,26 @@
1
+ {
2
+ "$schema": "../../common/schema/members-changes.schema.json",
3
+ "changes": [
4
+ {
5
+ "member": "selectItems",
6
+ "replaceWith": "select",
7
+ "definedIn": [
8
+ "IgxComboComponent"
9
+ ]
10
+ },
11
+ {
12
+ "member": "deselectItems",
13
+ "replaceWith": "deselect",
14
+ "definedIn": [
15
+ "IgxComboComponent"
16
+ ]
17
+ },
18
+ {
19
+ "member": "selectedItems()",
20
+ "replaceWith": "selection",
21
+ "definedIn": [
22
+ "IgxComboBaseDirective"
23
+ ]
24
+ }
25
+ ]
26
+ }
@@ -0,0 +1,3 @@
1
+ import { Rule } from '@angular-devkit/schematics';
2
+ declare const _default: () => Rule;
3
+ export default _default;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const UpdateChanges_1 = require("../common/UpdateChanges");
4
+ const version = '12.3.0';
5
+ exports.default = () => (host, context) => {
6
+ context.logger.info(`Applying migration for Ignite UI for Angular to version ${version}`);
7
+ const update = new UpdateChanges_1.UpdateChanges(__dirname, host, context);
8
+ update.applyChanges();
9
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "igniteui-angular",
3
- "version": "12.2.4",
3
+ "version": "12.3.0-alpha.0",
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
@@ -55,6 +55,7 @@ export * from './lib/carousel/public_api';
55
55
  export * from './lib/checkbox/checkbox.component';
56
56
  export * from './lib/chips/public_api';
57
57
  export * from './lib/combo/public_api';
58
+ export * from './lib/simple-combo/public_api';
58
59
  export * from './lib/date-picker/public_api';
59
60
  export * from './lib/dialog/dialog.component';
60
61
  export * from './lib/drop-down/public_api';