Skip to content

Commit e9e8c0a

Browse files
committed
chore(*): Add class deprecation decorator.
1 parent bd4cb58 commit e9e8c0a

File tree

3 files changed

+25
-7
lines changed

3 files changed

+25
-7
lines changed

projects/igniteui-angular/src/lib/core/deprecateDecorators.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,24 @@
11
import { isDevMode } from '@angular/core';
22

3+
/**
4+
* @hidden
5+
*/
6+
export function DeprecateClass(message: string) {
7+
let isMessageShown = false;
8+
9+
return function<T extends new(...args: any[]) => {} >(originalClass: T) {
10+
return class extends originalClass {
11+
constructor(...args) {
12+
const target: any = originalClass;
13+
const targetName = typeof target === 'function' ? target.name : target.constructor.name;
14+
isMessageShown = showMessage(`${targetName}: ${message}`, isMessageShown);
15+
16+
super(args);
17+
}
18+
};
19+
};
20+
}
21+
322
/**
423
* @hidden
524
*/

projects/igniteui-angular/src/lib/grids/hiding/column-hiding.component.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,10 @@ import { IColumnVisibilityChangedEventArgs, IgxColumnHidingItemDirective } from
1010
import { ColumnChooserBaseDirective } from '../column-chooser-base';
1111
import { takeUntil } from 'rxjs/operators';
1212
import { Subject } from 'rxjs';
13-
import { DeprecateMethod } from '../../core/deprecateDecorators';
13+
import { DeprecateClass } from '../../core/deprecateDecorators';
1414

15+
@DeprecateClass(`The 'IgxColumnHiding' component is deprecated.
16+
Please use the 'IgxColumnActions' component with the 'IgxColumnHiding' directive instead.`)
1517
@Component({
1618
preserveWhitespaces: false,
1719
selector: 'igx-column-hiding',
@@ -124,8 +126,6 @@ export class IgxColumnHidingComponent extends ColumnChooserBaseDirective impleme
124126
/**
125127
* @hidden
126128
*/
127-
@DeprecateMethod(`The IgxColumnHiding component is deprecated. Please use the
128-
IgxColumnActions component with the IgxColumnHiding directive instead.`)
129129
protected createColumnItem(container: any, column: any) {
130130
if (column.grid.hasColumnLayouts && !column.columnLayout) {
131131
return null;

projects/igniteui-angular/src/lib/grids/pinning/column-pinning.component.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@
22
import { Component, ChangeDetectorRef } from '@angular/core';
33
import { ColumnChooserBaseDirective } from '../column-chooser-base';
44
import { IgxColumnPinningItemDirective } from './pinning.directive';
5-
import { DeprecateMethod } from '../../core/deprecateDecorators';
6-
5+
import { DeprecateMethod, DeprecateClass } from '../../core/deprecateDecorators';
76

87

8+
@DeprecateClass(`The 'IgxColumnPinning' component is deprecated.
9+
Please use the 'IgxColumnActions' component with the 'IgxColumnPinning' directive instead.`)
910
@Component({
1011
preserveWhitespaces: false,
1112
selector: 'igx-column-pinning',
@@ -20,8 +21,6 @@ export class IgxColumnPinningComponent extends ColumnChooserBaseDirective {
2021
/**
2122
* @hidden
2223
*/
23-
@DeprecateMethod(`The IgxColumnPinning component is deprecated. Please use the
24-
IgxColumnActions component with the IgxColumnPinning directive instead.`)
2524
createColumnItem(container: any, column: any) {
2625
if (column.level !== 0 || column.disablePinning) {
2726
return null;

0 commit comments

Comments
 (0)