@igniteui/angular-templates 20.1.1465 → 20.1.1470

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 (35) hide show
  1. package/igx-ts/carousel/default/files/src/app/__path__/__filePrefix__.component.ts +0 -1
  2. package/igx-ts/custom-templates/awesome-grid/files/src/app/__path__/__filePrefix__.component.ts +3 -4
  3. package/igx-ts/custom-templates/crm-grid/files/src/app/__path__/__filePrefix__.component.ts +2 -2
  4. package/igx-ts/custom-templates/crm-grid/files/src/app/__path__/data.ts +0 -2
  5. package/igx-ts/custom-templates/fintech-grid/files/src/app/__path__/__filePrefix__.component.html +2 -2
  6. package/igx-ts/custom-templates/fintech-grid/files/src/app/__path__/__filePrefix__.component.ts +9 -13
  7. package/igx-ts/custom-templates/fintech-grid/files/src/app/__path__/localData/financialData.ts +1 -9
  8. package/igx-ts/custom-templates/fintech-grid/files/src/app/__path__/localData.service.ts +1 -1
  9. package/igx-ts/custom-templates/fintech-tree-grid/files/src/app/__path__/__filePrefix__.component.ts +8 -12
  10. package/igx-ts/custom-templates/fintech-tree-grid/files/src/app/__path__/assets/financialData.ts +1 -9
  11. package/igx-ts/custom-templates/fintech-tree-grid/files/src/app/__path__/localData.service.ts +1 -1
  12. package/igx-ts/custom-templates/fintech-tree-grid/files/src/app/__path__/tree-grid-grouping.pipe.ts +2 -2
  13. package/igx-ts/custom-templates/login/files/src/app/__path__/__filePrefix__.component.ts +3 -1
  14. package/igx-ts/custom-templates/weather-forecast/files/src/app/__path__/weather-data.ts +0 -1
  15. package/igx-ts/generate/files/src/app/__path__/__filePrefix__.component.ts +0 -1
  16. package/igx-ts/grid/grid-custom/index.js +0 -1
  17. package/igx-ts/hierarchical-grid/hierarchical-grid-batch-editing/files/src/app/__path__/data.ts +39 -39
  18. package/igx-ts/hierarchical-grid/hierarchical-grid-batch-editing/files/src/app/__path__/singer.ts +0 -1
  19. package/igx-ts/hierarchical-grid/hierarchical-grid-custom/files/src/app/__path__/__filePrefix__.component.ts +5 -1
  20. package/igx-ts/hierarchical-grid/hierarchical-grid-custom/index.js +0 -2
  21. package/igx-ts/projects/_base/files/angular.json +5 -4
  22. package/igx-ts/projects/_base/files/eslint.config.js +48 -0
  23. package/igx-ts/projects/_base/files/package.json +6 -13
  24. package/igx-ts/projects/_base_with_home/files/src/app/home/home.component.ts +0 -1
  25. package/igx-ts/projects/side-nav-auth/files/src/app/authentication/providers/microsoft-provider.ts +0 -1
  26. package/igx-ts/projects/side-nav-auth/files/src/app/authentication/services/local-storage.ts +1 -1
  27. package/igx-ts/projects/side-nav-auth/files/src/app/authentication/services/microsoft-keys.ts +0 -2
  28. package/igx-ts/projects/side-nav-auth/files/src/app/authentication/services/user.service.ts +0 -1
  29. package/igx-ts/select/default/files/src/app/__path__/__filePrefix__.component.html +2 -2
  30. package/igx-ts/select/select-groups/files/src/app/__path__/__filePrefix__.component.html +2 -2
  31. package/igx-ts/select/select-in-form/files/src/app/__path__/__filePrefix__.component.html +2 -2
  32. package/igx-ts/tree/default/files/src/app/__path__/services/data.service.ts +1 -1
  33. package/igx-ts/tree-grid/tree-grid-custom/index.js +0 -1
  34. package/package.json +2 -2
  35. package/igx-ts/projects/_base/files/eslint.config.mjs +0 -29
@@ -14,7 +14,6 @@ export class <%=ClassName%>Component implements OnInit {
14
14
  public interval = 3000;
15
15
  public pause = true;
16
16
  public loop = true;
17
- constructor() { }
18
17
 
19
18
  public ngOnInit() {
20
19
  this.addNewSlide();
@@ -17,7 +17,6 @@ import {
17
17
  IgxOverlayService,
18
18
  IgxStringFilteringOperand,
19
19
  IgxSummaryResult,
20
- OverlayClosingEventArgs,
21
20
  OverlaySettings,
22
21
  IgxSwitchComponent,
23
22
  IgxInputGroupComponent,
@@ -86,10 +85,10 @@ export class <%=ClassName%>Component implements OnInit, OnDestroy, AfterViewInit
86
85
  public overlaySettings!: OverlaySettings;
87
86
  public winner: Athlete = { Avatar: '', Name: '' } as Athlete;
88
87
  public top3: Athlete[] = [];
89
- private _live: boolean = true;
88
+ private _live = true;
90
89
  private _timer: any;
91
90
  private windowWidth: any;
92
- private _overlayId: string = '';
91
+ private _overlayId = '';
93
92
 
94
93
  get live(): boolean {
95
94
  return this._live;
@@ -127,7 +126,7 @@ export class <%=ClassName%>Component implements OnInit, OnDestroy, AfterViewInit
127
126
  this.localData.forEach(rec => this.getSpeed(rec));
128
127
  this.windowWidth = window.innerWidth;
129
128
  this._timer = setInterval(() => this.ticker(), 1500);
130
- this.overlayService.closing.subscribe((event: OverlayClosingEventArgs) => {
129
+ this.overlayService.closing.subscribe(() => {
131
130
  this.showOverlay = false;
132
131
  });
133
132
  }
@@ -94,8 +94,8 @@ export class <%=ClassName%>Component implements OnInit, AfterViewInit {
94
94
  public soonSummary = SoonSummary;
95
95
 
96
96
  public cols!: QueryList<ColumnType>;
97
- public hiddenColsLength: number = 0;
98
- public pinnedColsLength: number = 0;
97
+ public hiddenColsLength = 0;
98
+ public pinnedColsLength = 0;
99
99
 
100
100
  public searchText = '';
101
101
  public caseSensitive = false;
@@ -34,7 +34,6 @@ export interface Employee {
34
34
  tags: string;
35
35
  }
36
36
 
37
- /* tslint:disable */
38
37
  export const DATA: Employee[] = [
39
38
  { "id": 256286239, "avatar": "assets/images/men/43.jpg", "name": "Gawain Beadnall", "email": "gbeadnall0@etsy.com", "company": "Divanoodle", "position": "Statistician I", "work_phone": "+1-317-866-4381", "mobile_phone": "+1-203-937-3567", "fax": "+1-212-115-1790", "street": "47 Garrison Park", "city": "Indianapolis", "post_code": 46207, "state": "IN", "country": "United States", "referred_by": "Vyky Corwin", "created_on": new Date("12/8/2017"), "birthday": new Date("2/10/2002"), "last_activity": new Date("12/16/2017"), "next_activity": new Date("4/16/2019"), "deals_won": 5, "deals_lost": 13, "deals_pending": 7, "deals_total": 25, "ratio": 28, "estimated_sales": 686210, "actual_sales": 421105, "tags": "warm, engineering" },
40
39
  { "id": 863241310, "avatar": "assets/images/women/40.jpg", "name": "Ivy Simkovich", "email": "isimkovich1@clickbank.net", "company": "Linktype", "position": "Research Nurse", "work_phone": "+1-770-283-2050", "mobile_phone": "+1-509-995-2578", "fax": "+1-907-491-2187", "street": "3 Aberg Street", "city": "Marietta", "post_code": 30061, "state": "GA", "country": "United States", "referred_by": "Hew Chung", "created_on": new Date("6/24/2017"), "birthday": new Date("1/1/1997"), "last_activity": new Date("7/15/2017"), "next_activity": new Date("6/15/2019"), "deals_won": 2, "deals_lost": 4, "deals_pending": 29, "deals_total": 35, "ratio": 33, "estimated_sales": 2008801, "actual_sales": 186592, "tags": "demo, medical" },
@@ -487,4 +486,3 @@ export const DATA: Employee[] = [
487
486
  { "id": 75323534, "avatar": "assets/images/women/52.jpg", "name": "Lorena Mousdall", "email": "lmousdallcn@elegantthemes.com", "company": "Aimbo", "position": "Geologist III", "work_phone": "+1-720-341-5046", "mobile_phone": "+1-916-195-7584", "fax": "+1-215-624-1834", "street": "12 Melby Place", "city": "Denver", "post_code": 80241, "state": "CO", "country": "United States", "referred_by": "Carmina Tomaszek", "created_on": new Date("3/13/2017"), "birthday": new Date("9/13/1978"), "last_activity": new Date("3/24/2017"), "next_activity": new Date("10/24/2018"), "deals_won": 14, "deals_lost": 11, "deals_pending": 2, "deals_total": 27, "ratio": 56, "estimated_sales": 300438, "actual_sales": 1338988, "tags": "cool, engineering" },
488
487
  { "id": 46063202, "avatar": "assets/images/women/71.jpg", "name": "Gayle St Pierre", "email": "gstco@cargocollective.com", "company": "Trupe", "position": "VP Accounting", "work_phone": "+1-530-168-6924", "mobile_phone": "+1-646-366-5359", "fax": "+1-757-548-1834", "street": "48 Veith Junction", "city": "Chico", "post_code": 95973, "state": "CA", "country": "United States", "referred_by": "Lynda Drinan", "created_on": new Date("3/26/2017"), "birthday": new Date("3/10/1971"), "last_activity": new Date("4/17/2017"), "next_activity": new Date("10/17/2018"), "deals_won": 13, "deals_lost": 14, "deals_pending": 9, "deals_total": 36, "ratio": 48, "estimated_sales": 1716966, "actual_sales": 668928, "tags": "cold, medical" },
489
488
  { "id": 743401827, "avatar": "assets/images/women/56.jpg", "name": "Romy Giacomelli", "email": "rgiacomellicp@ezinearticles.com", "company": "Eimbee", "position": "Cost Accountant", "work_phone": "+1-719-646-0552", "mobile_phone": "+1-203-707-2786", "fax": "+1-214-685-1141", "street": "952 Springs Alley", "city": "Colorado Springs", "post_code": 80915, "state": "CO", "country": "United States", "referred_by": "Alanna Begg", "created_on": new Date("11/18/2017"), "birthday": new Date("10/16/1982"), "last_activity": new Date("12/2/2017"), "next_activity": new Date("2/2/2018"), "deals_won": 5, "deals_lost": 13, "deals_pending": 8, "deals_total": 26, "ratio": 28, "estimated_sales": 1423424, "actual_sales": 949815, "tags": "subscriber, construction" }];
490
- /* tslint:enable */
@@ -5,7 +5,7 @@
5
5
  <igx-switch [checked]="true" [(ngModel)]="theme" (change)="onThemeChanged($event)">Dark</igx-switch>
6
6
  </div>
7
7
  <div class="control-item">
8
- <igx-switch [checked]="grouped" (change)="onChange($event)"
8
+ <igx-switch [checked]="grouped" (change)="onChange()"
9
9
  cssClass="fintech-sample-switch">
10
10
  Grouped</igx-switch>
11
11
  </div>
@@ -203,7 +203,7 @@
203
203
  </div>
204
204
 
205
205
  <igx-dialog #dialog [closeOnOutsideSelect]="true" (closed)="onCloseHandler()">
206
- <div (keydown)="closeDialog($event)">
206
+ <div (keydown)="closeDialog($event)" tabindex="0">
207
207
  <igx-dialog-title> Chart </igx-dialog-title>
208
208
 
209
209
  <div style="padding: 20px">
@@ -93,13 +93,13 @@ export class <%=ClassName%>Component implements OnInit, AfterViewInit, OnDestroy
93
93
  @ViewChild('chart1', { static: true }) public chart1!: IgxCategoryChartComponent;
94
94
  @ViewChild('dialog', { static: true }) public dialog!: IgxDialogComponent;
95
95
 
96
- public showToolbar: boolean = false;
96
+ public showToolbar = false;
97
97
  public properties: string[] = [];
98
98
  public selectionMode: GridSelectionMode = 'multiple';
99
99
  public chartType = CategoryChartType;
100
- public theme: boolean = false;
101
- public volume: number = 1000;
102
- public frequency: number = 500;
100
+ public theme = false;
101
+ public volume = 1000;
102
+ public frequency = 500;
103
103
  public data: any[] = [];
104
104
  public chartData: any[] = [];
105
105
  public multiCellSelection: { data: any[] } = { data: [] };
@@ -133,7 +133,7 @@ export class <%=ClassName%>Component implements OnInit, AfterViewInit, OnDestroy
133
133
  public contracts = Contract;
134
134
  public regions = REGIONS;
135
135
  private subscription: any;
136
- private selectedButton: number = -1;
136
+ private selectedButton = -1;
137
137
  private timer: any;
138
138
  private volumeChanged: any;
139
139
  constructor(
@@ -166,7 +166,7 @@ export class <%=ClassName%>Component implements OnInit, AfterViewInit, OnDestroy
166
166
  ];
167
167
  this.volumeChanged = this.volumeSlider.valueChange.pipe(debounce(() => timer(200)));
168
168
  this.volumeChanged.subscribe(
169
- (x: any) => {
169
+ () => {
170
170
  this.localService.getData(this.volume);
171
171
  },
172
172
  (err: string) => console.log('Error: ' + err));
@@ -250,7 +250,7 @@ export class <%=ClassName%>Component implements OnInit, AfterViewInit, OnDestroy
250
250
  }
251
251
  }
252
252
 
253
- public onChange(event: IChangeCheckboxEventArgs): void {
253
+ public onChange(): void {
254
254
  if (this.grid1.groupingExpressions.length > 0) {
255
255
  this.grid1.groupingExpressions = [];
256
256
  } else {
@@ -364,11 +364,10 @@ export class <%=ClassName%>Component implements OnInit, AfterViewInit, OnDestroy
364
364
  private strongPositive = (rowData: any): boolean => {
365
365
  return rowData['Change(%)'] >= 1;
366
366
  }
367
- private strongNegative = (rowData: any, key: string): boolean => {
367
+ private strongNegative = (rowData: any): boolean => {
368
368
  return rowData['Change(%)'] <= -1;
369
369
  }
370
370
 
371
- // tslint:disable:member-ordering
372
371
  public trends = {
373
372
  changeNeg: this.changeNegative,
374
373
  changePos: this.changePositive,
@@ -431,8 +430,6 @@ export class <%=ClassName%>Component implements OnInit, AfterViewInit, OnDestroy
431
430
  }
432
431
  }
433
432
 
434
- // tslint:enable:member-ordering
435
-
436
433
  private disableOtherButtons(ind: number, disableButtons: boolean): void {
437
434
  if (this.subscription) {
438
435
  this.subscription.unsubscribe();
@@ -480,9 +477,8 @@ export class <%=ClassName%>Component implements OnInit, AfterViewInit, OnDestroy
480
477
  */
481
478
  private updateRandomPrices(data: any[]): any {
482
479
  const newData = data.slice();
483
- for (let i = Math.round(Math.random() * 10), y = 0; i < data.length; i += Math.round(Math.random() * 10)) {
480
+ for (let i = Math.round(Math.random() * 10); i < data.length; i += Math.round(Math.random() * 10)) {
484
481
  newData[i] = this.randomizeObjectData(data[i]);
485
- y++;
486
482
  }
487
483
  return newData;
488
484
  }
@@ -1,4 +1,3 @@
1
- /* tslint:disable */
2
1
  export const REGIONS: any[] = [
3
2
  {
4
3
  "Region": "North America",
@@ -48,7 +47,6 @@ export const MOCKFINANCEDATA: any[] = [
48
47
  "IndSect": "Consumer, Cyclical",
49
48
  "IndSubg": "Airlines",
50
49
  "SecType": "PUBLIC",
51
- // tslint:disable-next-line:object-literal-sort-keys
52
50
  "CpnTyp": "FIXED",
53
51
  "IssuerN": "AMERICAN AIRLINES GROUP",
54
52
  "Moodys": "WR",
@@ -887,7 +885,6 @@ interface IResponse {
887
885
  data: any[];
888
886
  recordsUpdated: number;
889
887
  }
890
- /* tslint:enable */
891
888
  export class FinancialData {
892
889
  public generateData(count: number): any[] {
893
890
  const currData = [];
@@ -900,13 +897,10 @@ export class FinancialData {
900
897
  const region = REGIONS[this.generateRandomNumber(0, 5)];
901
898
  dataObj.Region = region.Region;
902
899
  dataObj.Country = this.randomizeCountry(region);
903
- // for (let y = 0; y < 80; y++) {
904
- // dataObj["Text" + y] = "Text";
905
- // }
906
900
 
907
901
  for (const mockData of MOCKFINANCEDATA) {
908
902
  for (const prop in mockData) {
909
- if (mockData.hasOwnProperty(prop)) {
903
+ if (Object.prototype.hasOwnProperty.call(mockData, prop)) {
910
904
  dataObj[prop] = mockData[prop];
911
905
  }
912
906
  }
@@ -930,12 +924,10 @@ export class FinancialData {
930
924
 
931
925
  public updateRandomPrices(data: any[]): any {
932
926
  const currData = data.slice(0, data.length + 1);
933
- let y = 0;
934
927
  for (let i = Math.round(Math.random() * 10); i < data.length; i += Math.round(Math.random() * 10)) {
935
928
  const dataObj = Object.assign({}, data[i]);
936
929
  this.randomizeObjectData(dataObj);
937
930
  currData[i] = dataObj;
938
- y++;
939
931
  }
940
932
  // return {data: currData, recordsUpdated: y };
941
933
  return currData;
@@ -12,7 +12,7 @@ export class LocalDataService {
12
12
  this.records = this.records$.asObservable();
13
13
  }
14
14
 
15
- public getData(count: number = 10) {
15
+ public getData(count = 10) {
16
16
  const financialData: FinancialData = new FinancialData();
17
17
  this.records$.next(financialData.generateData(count));
18
18
  }
@@ -70,11 +70,11 @@ export class <%=ClassName%>Component implements OnInit, AfterViewInit, OnDestroy
70
70
  @ViewChild('slider1', { static: true }) public volumeSlider!: IgxSliderComponent;
71
71
  @ViewChild('slider2', { static: true }) public intervalSlider!: IgxSliderComponent;
72
72
 
73
- public showToolbar: boolean = true;
73
+ public showToolbar = true;
74
74
  public selectionMode: GridSelectionMode = 'multiple';
75
- public theme: boolean = false;
76
- public volume: number = 1000;
77
- public frequency: number = 500;
75
+ public theme = false;
76
+ public volume = 1000;
77
+ public frequency = 500;
78
78
  public data: any[] = [];
79
79
  public controls = [
80
80
  {
@@ -111,7 +111,7 @@ export class <%=ClassName%>Component implements OnInit, AfterViewInit, OnDestroy
111
111
  field: 'Price'
112
112
  },
113
113
  {
114
- aggregate: (parent: any, data: any[]) => {
114
+ aggregate: (parent: any) => {
115
115
  return parent.Change / (parent.Price - parent.Change) * 100;
116
116
  },
117
117
  field: 'Change(%)'
@@ -137,7 +137,7 @@ export class <%=ClassName%>Component implements OnInit, AfterViewInit, OnDestroy
137
137
  };
138
138
 
139
139
  private subscription: any;
140
- private selectedButton: number = -1;
140
+ private selectedButton = -1;
141
141
  private timer: any;
142
142
  private volumeChanged: any;
143
143
 
@@ -150,7 +150,7 @@ export class <%=ClassName%>Component implements OnInit, AfterViewInit, OnDestroy
150
150
  this.grid1.sortingExpressions = [{ fieldName: this.groupColumnKey, dir: SortingDirection.Desc }];
151
151
  this.volumeChanged = this.volumeSlider.valueChange.pipe(debounce(() => timer(200)));
152
152
  this.volumeChanged.subscribe(
153
- (x: any) => {
153
+ () => {
154
154
  this.localService.getData(this.volume);
155
155
  },
156
156
  (err: string) => console.log('Error: ' + err));
@@ -241,11 +241,10 @@ export class <%=ClassName%>Component implements OnInit, AfterViewInit, OnDestroy
241
241
  private strongPositive = (rowData: any): boolean => {
242
242
  return rowData['Change(%)'] >= 1;
243
243
  }
244
- private strongNegative = (rowData: any, key: string): boolean => {
244
+ private strongNegative = (rowData: any): boolean => {
245
245
  return rowData['Change(%)'] <= -1;
246
246
  }
247
247
 
248
- // tslint:disable:member-ordering
249
248
  public trends = {
250
249
  changeNeg: this.changeNegative,
251
250
  changePos: this.changePositive,
@@ -261,7 +260,6 @@ export class <%=ClassName%>Component implements OnInit, AfterViewInit, OnDestroy
261
260
  strongNegative2: this.strongNegative,
262
261
  strongPositive2: this.strongPositive
263
262
  };
264
- // tslint:enable:member-ordering
265
263
 
266
264
  private disableOtherButtons(ind: number, disableButtons: boolean): void {
267
265
  if (this.subscription) {
@@ -308,10 +306,8 @@ export class <%=ClassName%>Component implements OnInit, AfterViewInit, OnDestroy
308
306
  */
309
307
  private updateRandomPrices(data: any[]): any {
310
308
  const newData = data.slice();
311
- let y = 0;
312
309
  for (let i = Math.round(Math.random() * 10); i < newData.length; i += Math.round(Math.random() * 10)) {
313
310
  this.randomizeObjectData(newData[i]);
314
- y++;
315
311
  }
316
312
  return newData;
317
313
  }
@@ -1,4 +1,3 @@
1
- /* tslint:disable */
2
1
  export const REGIONS: any[] = [
3
2
  {
4
3
  "Region": "North America",
@@ -48,7 +47,6 @@ export const MOCKFINANCEDATA: any[] = [
48
47
  "IndSect": "Consumer, Cyclical",
49
48
  "IndSubg": "Airlines",
50
49
  "SecType": "PUBLIC",
51
- // tslint:disable-next-line:object-literal-sort-keys
52
50
  "CpnTyp": "FIXED",
53
51
  "IssuerN": "AMERICAN AIRLINES GROUP",
54
52
  "Moodys": "WR",
@@ -887,7 +885,6 @@ interface IResponse {
887
885
  data: any[];
888
886
  recordsUpdated: number;
889
887
  }
890
- /* tslint:enable */
891
888
  export class FinancialData {
892
889
  public generateData(count: number): any[] {
893
890
  const currData = [];
@@ -900,13 +897,10 @@ export class FinancialData {
900
897
  const region = REGIONS[this.generateRandomNumber(0, 5)];
901
898
  dataObj.Region = region.Region;
902
899
  dataObj.Country = this.randomizeCountry(region);
903
- // for (let y = 0; y < 80; y++) {
904
- // dataObj["Text" + y] = "Text";
905
- // }
906
900
 
907
901
  for (const mockData of MOCKFINANCEDATA) {
908
902
  for (const prop in mockData) {
909
- if (mockData.hasOwnProperty(prop)) {
903
+ if (Object.prototype.hasOwnProperty.call(mockData, prop)) {
910
904
  dataObj[prop] = mockData[prop];
911
905
  }
912
906
  }
@@ -930,12 +924,10 @@ export class FinancialData {
930
924
 
931
925
  public updateRandomPrices(data: any[]): any {
932
926
  const currData = data.slice(0, data.length + 1);
933
- let y = 0;
934
927
  for (let i = Math.round(Math.random() * 10); i < data.length; i += Math.round(Math.random() * 10)) {
935
928
  const dataObj = Object.assign({}, data[i]);
936
929
  this.randomizeObjectData(dataObj);
937
930
  currData[i] = dataObj;
938
- y++;
939
931
  }
940
932
  // return {data: currData, recordsUpdated: y };
941
933
  return currData;
@@ -12,7 +12,7 @@ export class LocalDataService {
12
12
  this.records = this.records$.asObservable();
13
13
  }
14
14
 
15
- public getData(count: number = 10): void {
15
+ public getData(count = 10): void {
16
16
  const financialData: FinancialData = new FinancialData();
17
17
  this.records$.next(financialData.generateData(count));
18
18
  }
@@ -7,7 +7,7 @@ class GroupByRecord {
7
7
  }
8
8
 
9
9
  export class ITreeGridAggregation {
10
- public field: string = '';
10
+ public field = '';
11
11
  public aggregate: (parent: any, children: any[]) => any = [] as any;
12
12
  }
13
13
 
@@ -40,7 +40,7 @@ export class <%=ClassName%>TreeGridGroupingPipe implements PipeTransform {
40
40
  parentID: any,
41
41
  data: any[]) {
42
42
  for (const groupRecord of groupRecords) {
43
- const parent: { [key: string]: any } = {};
43
+ const parent: Record<string, any> = {};
44
44
  const children = groupRecord.records;
45
45
 
46
46
  parent[primaryKey] = parentID + groupRecord.key;
@@ -1,4 +1,4 @@
1
- import { Component, EventEmitter, Output } from '@angular/core';
1
+ import { Component } from '@angular/core';
2
2
  import {
3
3
  FormBuilder,
4
4
  FormGroup,
@@ -56,6 +56,7 @@ export class <%=ClassName%>Component {
56
56
  }
57
57
 
58
58
  tryLogin() {
59
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
59
60
  const loginInfo = this.loginForm.value;
60
61
  // use loginInfo
61
62
  this.showLogin = false;
@@ -72,6 +73,7 @@ export class <%=ClassName%>Component {
72
73
  }
73
74
 
74
75
  tryRegister() {
76
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
75
77
  const registerInfo = this.registrationForm.value;
76
78
  // use registerInfo
77
79
  this.showRegister = false;
@@ -1,4 +1,3 @@
1
- // tslint:disable:object-literal-sort-keys
2
1
  export const data = {
3
2
  city: 'Sofia',
4
3
  humidity: '44%',
@@ -8,5 +8,4 @@ import { Component } from '@angular/core';
8
8
  })
9
9
  export class <%=ClassName%>Component {
10
10
  title = '<%=name%>';
11
- constructor() { }
12
11
  }
@@ -56,7 +56,6 @@ class IgxCustomGridTemplate extends IgniteUIForAngularTemplate_1.IgniteUIForAngu
56
56
  const featureUrl = "https://www.infragistics.com/products/ignite-ui-angular/angular/components/grid/";
57
57
  const anchorWrapper = {
58
58
  start: `<a href="`,
59
- // tslint:disable-next-line:object-literal-sort-keys
60
59
  href: ``,
61
60
  middle: `" target="_blank">`,
62
61
  text: ``,
@@ -3704,7 +3704,7 @@ export const CUSTOMERS = [
3704
3704
  CompanyName: "Godos Cocina Típica",
3705
3705
  ContactName: "José Pedro Freyre",
3706
3706
  ContactTitle: "Sales Manager",
3707
- Address: "C\/ Romero, 33",
3707
+ Address: "C/ Romero, 33",
3708
3708
  City: "Sevilla",
3709
3709
  PostalCode: "41101",
3710
3710
  Country: "Spain",
@@ -3719,7 +3719,7 @@ export const CUSTOMERS = [
3719
3719
  ShipVia: 2,
3720
3720
  Freight: 107.8300,
3721
3721
  ShipName: "Godos Cocina Típica",
3722
- ShipAddress: "C\/ Romero, 33",
3722
+ ShipAddress: "C/ Romero, 33",
3723
3723
  ShipCity: "Sevilla",
3724
3724
  ShipPostalCode: "41101",
3725
3725
  ShipCountry: "Spain",
@@ -4698,7 +4698,7 @@ export const CUSTOMERS = [
4698
4698
  CompanyName: "Bólido Comidas preparadas",
4699
4699
  ContactName: "Martín Sommer",
4700
4700
  ContactTitle: "Owner",
4701
- Address: "C\/ Araquil, 67",
4701
+ Address: "C/ Araquil, 67",
4702
4702
  City: "Madrid",
4703
4703
  PostalCode: "28023",
4704
4704
  Country: "Spain",
@@ -4714,7 +4714,7 @@ export const CUSTOMERS = [
4714
4714
  ShipVia: 2,
4715
4715
  Freight: 77.9200,
4716
4716
  ShipName: "Bólido Comidas preparadas",
4717
- ShipAddress: "C\/ Araquil, 67",
4717
+ ShipAddress: "C/ Araquil, 67",
4718
4718
  ShipCity: "Madrid",
4719
4719
  ShipPostalCode: "28023",
4720
4720
  ShipCountry: "Spain",
@@ -12973,7 +12973,7 @@ export const CUSTOMERS = [
12973
12973
  ]
12974
12974
  }, {
12975
12975
  CustomerID: "NORTS",
12976
- CompanyName: "North\/South",
12976
+ CompanyName: "North/South",
12977
12977
  ContactName: "Simon Crowther",
12978
12978
  ContactTitle: "Sales Associate",
12979
12979
  Address: "South House 300 Queensbridge",
@@ -12991,7 +12991,7 @@ export const CUSTOMERS = [
12991
12991
  ShippedDate: new Date("1997-04-29T00:00:00"),
12992
12992
  ShipVia: 3,
12993
12993
  Freight: 32.0700,
12994
- ShipName: "North\/South",
12994
+ ShipName: "North/South",
12995
12995
  ShipAddress: "South House 300 Queensbridge",
12996
12996
  ShipCity: "London",
12997
12997
  ShipPostalCode: "SW7 1RZ",
@@ -14431,7 +14431,7 @@ export const CUSTOMERS = [
14431
14431
  CompanyName: "Godos Cocina Típica",
14432
14432
  ContactName: "José Pedro Freyre",
14433
14433
  ContactTitle: "Sales Manager",
14434
- Address: "C\/ Romero, 33",
14434
+ Address: "C/ Romero, 33",
14435
14435
  City: "Sevilla",
14436
14436
  PostalCode: "41101",
14437
14437
  Country: "Spain",
@@ -14446,7 +14446,7 @@ export const CUSTOMERS = [
14446
14446
  ShipVia: 3,
14447
14447
  Freight: 4.3200,
14448
14448
  ShipName: "Godos Cocina Típica",
14449
- ShipAddress: "C\/ Romero, 33",
14449
+ ShipAddress: "C/ Romero, 33",
14450
14450
  ShipCity: "Sevilla",
14451
14451
  ShipPostalCode: "41101",
14452
14452
  ShipCountry: "Spain",
@@ -17227,7 +17227,7 @@ export const CUSTOMERS = [
17227
17227
  CustomerID: "WILMK",
17228
17228
  CompanyName: "Wilman Kala",
17229
17229
  ContactName: "Matti Karttunen",
17230
- ContactTitle: "Owner\/Marketing Assistant",
17230
+ ContactTitle: "Owner/Marketing Assistant",
17231
17231
  Address: "Keskuskatu 45",
17232
17232
  City: "Helsinki",
17233
17233
  PostalCode: "21240",
@@ -17812,7 +17812,7 @@ export const CUSTOMERS = [
17812
17812
  CompanyName: "Godos Cocina Típica",
17813
17813
  ContactName: "José Pedro Freyre",
17814
17814
  ContactTitle: "Sales Manager",
17815
- Address: "C\/ Romero, 33",
17815
+ Address: "C/ Romero, 33",
17816
17816
  City: "Sevilla",
17817
17817
  PostalCode: "41101",
17818
17818
  Country: "Spain",
@@ -17827,7 +17827,7 @@ export const CUSTOMERS = [
17827
17827
  ShipVia: 3,
17828
17828
  Freight: 85.4600,
17829
17829
  ShipName: "Godos Cocina Típica",
17830
- ShipAddress: "C\/ Romero, 33",
17830
+ ShipAddress: "C/ Romero, 33",
17831
17831
  ShipCity: "Sevilla",
17832
17832
  ShipPostalCode: "41101",
17833
17833
  ShipCountry: "Spain",
@@ -19704,7 +19704,7 @@ export const CUSTOMERS = [
19704
19704
  CustomerID: "WILMK",
19705
19705
  CompanyName: "Wilman Kala",
19706
19706
  ContactName: "Matti Karttunen",
19707
- ContactTitle: "Owner\/Marketing Assistant",
19707
+ ContactTitle: "Owner/Marketing Assistant",
19708
19708
  Address: "Keskuskatu 45",
19709
19709
  City: "Helsinki",
19710
19710
  PostalCode: "21240",
@@ -20654,7 +20654,7 @@ export const CUSTOMERS = [
20654
20654
  CustomerID: "WILMK",
20655
20655
  CompanyName: "Wilman Kala",
20656
20656
  ContactName: "Matti Karttunen",
20657
- ContactTitle: "Owner\/Marketing Assistant",
20657
+ ContactTitle: "Owner/Marketing Assistant",
20658
20658
  Address: "Keskuskatu 45",
20659
20659
  City: "Helsinki",
20660
20660
  PostalCode: "21240",
@@ -23153,7 +23153,7 @@ export const CUSTOMERS = [
23153
23153
  ]
23154
23154
  }, {
23155
23155
  CustomerID: "NORTS",
23156
- CompanyName: "North\/South",
23156
+ CompanyName: "North/South",
23157
23157
  ContactName: "Simon Crowther",
23158
23158
  ContactTitle: "Sales Associate",
23159
23159
  Address: "South House 300 Queensbridge",
@@ -23171,7 +23171,7 @@ export const CUSTOMERS = [
23171
23171
  ShippedDate: new Date("1997-11-28T00:00:00"),
23172
23172
  ShipVia: 3,
23173
23173
  Freight: 1.3900,
23174
- ShipName: "North\/South",
23174
+ ShipName: "North/South",
23175
23175
  ShipAddress: "South House 300 Queensbridge",
23176
23176
  ShipCity: "London",
23177
23177
  ShipPostalCode: "SW7 1RZ",
@@ -25229,7 +25229,7 @@ export const CUSTOMERS = [
25229
25229
  CompanyName: "Bólido Comidas preparadas",
25230
25230
  ContactName: "Martín Sommer",
25231
25231
  ContactTitle: "Owner",
25232
- Address: "C\/ Araquil, 67",
25232
+ Address: "C/ Araquil, 67",
25233
25233
  City: "Madrid",
25234
25234
  PostalCode: "28023",
25235
25235
  Country: "Spain",
@@ -25245,7 +25245,7 @@ export const CUSTOMERS = [
25245
25245
  ShipVia: 2,
25246
25246
  Freight: 97.0900,
25247
25247
  ShipName: "Bólido Comidas preparadas",
25248
- ShipAddress: "C\/ Araquil, 67",
25248
+ ShipAddress: "C/ Araquil, 67",
25249
25249
  ShipCity: "Madrid",
25250
25250
  ShipPostalCode: "28023",
25251
25251
  ShipCountry: "Spain",
@@ -28357,7 +28357,7 @@ export const CUSTOMERS = [
28357
28357
  CompanyName: "Godos Cocina Típica",
28358
28358
  ContactName: "José Pedro Freyre",
28359
28359
  ContactTitle: "Sales Manager",
28360
- Address: "C\/ Romero, 33",
28360
+ Address: "C/ Romero, 33",
28361
28361
  City: "Sevilla",
28362
28362
  PostalCode: "41101",
28363
28363
  Country: "Spain",
@@ -28372,7 +28372,7 @@ export const CUSTOMERS = [
28372
28372
  ShipVia: 2,
28373
28373
  Freight: 175.3200,
28374
28374
  ShipName: "Godos Cocina Típica",
28375
- ShipAddress: "C\/ Romero, 33",
28375
+ ShipAddress: "C/ Romero, 33",
28376
28376
  ShipCity: "Sevilla",
28377
28377
  ShipPostalCode: "41101",
28378
28378
  ShipCountry: "Spain",
@@ -28405,7 +28405,7 @@ export const CUSTOMERS = [
28405
28405
  CustomerID: "WILMK",
28406
28406
  CompanyName: "Wilman Kala",
28407
28407
  ContactName: "Matti Karttunen",
28408
- ContactTitle: "Owner\/Marketing Assistant",
28408
+ ContactTitle: "Owner/Marketing Assistant",
28409
28409
  Address: "Keskuskatu 45",
28410
28410
  City: "Helsinki",
28411
28411
  PostalCode: "21240",
@@ -28446,7 +28446,7 @@ export const CUSTOMERS = [
28446
28446
  CompanyName: "Godos Cocina Típica",
28447
28447
  ContactName: "José Pedro Freyre",
28448
28448
  ContactTitle: "Sales Manager",
28449
- Address: "C\/ Romero, 33",
28449
+ Address: "C/ Romero, 33",
28450
28450
  City: "Sevilla",
28451
28451
  PostalCode: "41101",
28452
28452
  Country: "Spain",
@@ -28461,7 +28461,7 @@ export const CUSTOMERS = [
28461
28461
  ShipVia: 2,
28462
28462
  Freight: 19.5800,
28463
28463
  ShipName: "Godos Cocina Típica",
28464
- ShipAddress: "C\/ Romero, 33",
28464
+ ShipAddress: "C/ Romero, 33",
28465
28465
  ShipCity: "Sevilla",
28466
28466
  ShipPostalCode: "41101",
28467
28467
  ShipCountry: "Spain",
@@ -28639,7 +28639,7 @@ export const CUSTOMERS = [
28639
28639
  CustomerID: "WILMK",
28640
28640
  CompanyName: "Wilman Kala",
28641
28641
  ContactName: "Matti Karttunen",
28642
- ContactTitle: "Owner\/Marketing Assistant",
28642
+ ContactTitle: "Owner/Marketing Assistant",
28643
28643
  Address: "Keskuskatu 45",
28644
28644
  City: "Helsinki",
28645
28645
  PostalCode: "21240",
@@ -29025,7 +29025,7 @@ export const CUSTOMERS = [
29025
29025
  CompanyName: "Godos Cocina Típica",
29026
29026
  ContactName: "José Pedro Freyre",
29027
29027
  ContactTitle: "Sales Manager",
29028
- Address: "C\/ Romero, 33",
29028
+ Address: "C/ Romero, 33",
29029
29029
  City: "Sevilla",
29030
29030
  PostalCode: "41101",
29031
29031
  Country: "Spain",
@@ -29040,7 +29040,7 @@ export const CUSTOMERS = [
29040
29040
  ShipVia: 2,
29041
29041
  Freight: 51.8700,
29042
29042
  ShipName: "Godos Cocina Típica",
29043
- ShipAddress: "C\/ Romero, 33",
29043
+ ShipAddress: "C/ Romero, 33",
29044
29044
  ShipCity: "Sevilla",
29045
29045
  ShipPostalCode: "41101",
29046
29046
  ShipCountry: "Spain",
@@ -29919,7 +29919,7 @@ export const CUSTOMERS = [
29919
29919
  CustomerID: "WILMK",
29920
29920
  CompanyName: "Wilman Kala",
29921
29921
  ContactName: "Matti Karttunen",
29922
- ContactTitle: "Owner\/Marketing Assistant",
29922
+ ContactTitle: "Owner/Marketing Assistant",
29923
29923
  Address: "Keskuskatu 45",
29924
29924
  City: "Helsinki",
29925
29925
  PostalCode: "21240",
@@ -29965,7 +29965,7 @@ export const CUSTOMERS = [
29965
29965
  CompanyName: "Godos Cocina Típica",
29966
29966
  ContactName: "José Pedro Freyre",
29967
29967
  ContactTitle: "Sales Manager",
29968
- Address: "C\/ Romero, 33",
29968
+ Address: "C/ Romero, 33",
29969
29969
  City: "Sevilla",
29970
29970
  PostalCode: "41101",
29971
29971
  Country: "Spain",
@@ -29980,7 +29980,7 @@ export const CUSTOMERS = [
29980
29980
  ShipVia: 1,
29981
29981
  Freight: 38.1900,
29982
29982
  ShipName: "Godos Cocina Típica",
29983
- ShipAddress: "C\/ Romero, 33",
29983
+ ShipAddress: "C/ Romero, 33",
29984
29984
  ShipCity: "Sevilla",
29985
29985
  ShipPostalCode: "41101",
29986
29986
  ShipCountry: "Spain",
@@ -31526,7 +31526,7 @@ export const CUSTOMERS = [
31526
31526
  CompanyName: "Godos Cocina Típica",
31527
31527
  ContactName: "José Pedro Freyre",
31528
31528
  ContactTitle: "Sales Manager",
31529
- Address: "C\/ Romero, 33",
31529
+ Address: "C/ Romero, 33",
31530
31530
  City: "Sevilla",
31531
31531
  PostalCode: "41101",
31532
31532
  Country: "Spain",
@@ -31541,7 +31541,7 @@ export const CUSTOMERS = [
31541
31541
  ShipVia: 3,
31542
31542
  Freight: 23.3900,
31543
31543
  ShipName: "Godos Cocina Típica",
31544
- ShipAddress: "C\/ Romero, 33",
31544
+ ShipAddress: "C/ Romero, 33",
31545
31545
  ShipCity: "Sevilla",
31546
31546
  ShipPostalCode: "41101",
31547
31547
  ShipCountry: "Spain",
@@ -32460,7 +32460,7 @@ export const CUSTOMERS = [
32460
32460
  CompanyName: "Bólido Comidas preparadas",
32461
32461
  ContactName: "Martín Sommer",
32462
32462
  ContactTitle: "Owner",
32463
- Address: "C\/ Araquil, 67",
32463
+ Address: "C/ Araquil, 67",
32464
32464
  City: "Madrid",
32465
32465
  PostalCode: "28023",
32466
32466
  Country: "Spain",
@@ -32476,7 +32476,7 @@ export const CUSTOMERS = [
32476
32476
  ShipVia: 1,
32477
32477
  Freight: 16.1600,
32478
32478
  ShipName: "Bólido Comidas preparadas",
32479
- ShipAddress: "C\/ Araquil, 67",
32479
+ ShipAddress: "C/ Araquil, 67",
32480
32480
  ShipCity: "Madrid",
32481
32481
  ShipPostalCode: "28023",
32482
32482
  ShipCountry: "Spain",
@@ -33944,7 +33944,7 @@ export const CUSTOMERS = [
33944
33944
  CustomerID: "WILMK",
33945
33945
  CompanyName: "Wilman Kala",
33946
33946
  ContactName: "Matti Karttunen",
33947
- ContactTitle: "Owner\/Marketing Assistant",
33947
+ ContactTitle: "Owner/Marketing Assistant",
33948
33948
  Address: "Keskuskatu 45",
33949
33949
  City: "Helsinki",
33950
33950
  PostalCode: "21240",
@@ -34114,7 +34114,7 @@ export const CUSTOMERS = [
34114
34114
  CompanyName: "Godos Cocina Típica",
34115
34115
  ContactName: "José Pedro Freyre",
34116
34116
  ContactTitle: "Sales Manager",
34117
- Address: "C\/ Romero, 33",
34117
+ Address: "C/ Romero, 33",
34118
34118
  City: "Sevilla",
34119
34119
  PostalCode: "41101",
34120
34120
  Country: "Spain",
@@ -34129,7 +34129,7 @@ export const CUSTOMERS = [
34129
34129
  ShipVia: 1,
34130
34130
  Freight: 59.1100,
34131
34131
  ShipName: "Godos Cocina Típica",
34132
- ShipAddress: "C\/ Romero, 33",
34132
+ ShipAddress: "C/ Romero, 33",
34133
34133
  ShipCity: "Sevilla",
34134
34134
  ShipPostalCode: "41101",
34135
34135
  ShipCountry: "Spain",
@@ -35318,7 +35318,7 @@ export const CUSTOMERS = [
35318
35318
  CompanyName: "Godos Cocina Típica",
35319
35319
  ContactName: "José Pedro Freyre",
35320
35320
  ContactTitle: "Sales Manager",
35321
- Address: "C\/ Romero, 33",
35321
+ Address: "C/ Romero, 33",
35322
35322
  City: "Sevilla",
35323
35323
  PostalCode: "41101",
35324
35324
  Country: "Spain",
@@ -35333,7 +35333,7 @@ export const CUSTOMERS = [
35333
35333
  ShipVia: 1,
35334
35334
  Freight: 3.2000,
35335
35335
  ShipName: "Godos Cocina Típica",
35336
- ShipAddress: "C\/ Romero, 33",
35336
+ ShipAddress: "C/ Romero, 33",
35337
35337
  ShipCity: "Sevilla",
35338
35338
  ShipPostalCode: "41101",
35339
35339
  ShipCountry: "Spain",
@@ -36125,7 +36125,7 @@ export const CUSTOMERS = [
36125
36125
  ]
36126
36126
  }, {
36127
36127
  CustomerID: "NORTS",
36128
- CompanyName: "North\/South",
36128
+ CompanyName: "North/South",
36129
36129
  ContactName: "Simon Crowther",
36130
36130
  ContactTitle: "Sales Associate",
36131
36131
  Address: "South House 300 Queensbridge",
@@ -36143,7 +36143,7 @@ export const CUSTOMERS = [
36143
36143
  ShippedDate: new Date("1998-05-01T00:00:00"),
36144
36144
  ShipVia: 3,
36145
36145
  Freight: 4.1300,
36146
- ShipName: "North\/South",
36146
+ ShipName: "North/South",
36147
36147
  ShipAddress: "South House 300 Queensbridge",
36148
36148
  ShipCity: "London",
36149
36149
  ShipPostalCode: "SW7 1RZ",
@@ -1,4 +1,3 @@
1
- // tslint:disable:interface-name
2
1
  export interface Song {
3
2
  TrackNumber: number;
4
3
  Title: string;
@@ -12,7 +12,11 @@ export class <%=ClassName%>Component {
12
12
  public localData: Artist[] = ARTISTS;
13
13
 
14
14
  public toggleColumn(col: ColumnType, event: MouseEvent): void {
15
- col.pinned ? col.unpin() : col.pin();
15
+ if (col.pinned) {
16
+ col.unpin();
17
+ } else {
18
+ col.pin();
19
+ }
16
20
  event.stopPropagation();
17
21
  }
18
22
  }
@@ -50,7 +50,6 @@ class IgxHierarchicalGridTemplate extends IgniteUIForAngularTemplate_1.IgniteUIF
50
50
  selectedFeatures: this.getSelectedFeatures(columnFeatures, gridFeatures),
51
51
  // must be assigned after getSelectedFeatures evaluates, TODO: refactor method
52
52
  additionalMarkup: this.additionalElements.join("\n"),
53
- // tslint:disable-next-line: object-literal-sort-keys
54
53
  columnFeatures: columnFeatures.join(" "),
55
54
  gridFeatures: gridFeatures.join(" "),
56
55
  rowIslandFeatures: gridFeatures.join(" ").replace(/Singers/g, "Albums")
@@ -67,7 +66,6 @@ class IgxHierarchicalGridTemplate extends IgniteUIForAngularTemplate_1.IgniteUIF
67
66
  }
68
67
  return super.generateConfig(name, { extraConfig });
69
68
  }
70
- //tslint:disable
71
69
  pinningTemplate(columnName) {
72
70
  // https://github.com/IgniteUI/igniteui-angular/issues/3998
73
71
  // Defining let-columnRef="column" does not seem to work.
@@ -111,7 +111,6 @@
111
111
  "lint": {
112
112
  "builder": "@angular-eslint/builder:lint",
113
113
  "options": {
114
- "eslintConfig": "eslint.config.mjs",
115
114
  "lintFilePatterns": [
116
115
  "src/**/*.ts",
117
116
  "src/**/*.html"
@@ -121,7 +120,9 @@
121
120
  }
122
121
  }
123
122
  },
124
- "cli": {
125
- "schematicCollections": ["@angular-eslint/schematics"]
126
- }
123
+ "cli": {
124
+ "schematicCollections": [
125
+ "@angular-eslint/schematics"
126
+ ]
127
+ }
127
128
  }
@@ -0,0 +1,48 @@
1
+ // @ts-check
2
+ const eslint = require("@eslint/js");
3
+ const tseslint = require("typescript-eslint");
4
+ const angular = require("angular-eslint");
5
+
6
+ module.exports = tseslint.config(
7
+ {
8
+ files: ["**/*.ts"],
9
+ extends: [
10
+ eslint.configs.recommended,
11
+ ...tseslint.configs.recommended,
12
+ ...tseslint.configs.stylistic,
13
+ ...angular.configs.tsRecommended,
14
+ ],
15
+ processor: angular.processInlineTemplates,
16
+ rules: {
17
+ "@angular-eslint/directive-selector": [
18
+ "error",
19
+ {
20
+ type: "attribute",
21
+ prefix: "app",
22
+ style: "camelCase",
23
+ },
24
+ ],
25
+ "@angular-eslint/component-selector": [
26
+ "error",
27
+ {
28
+ type: "element",
29
+ prefix: "app",
30
+ style: "kebab-case",
31
+ },
32
+ ],
33
+ // Relax rules
34
+ "@typescript-eslint/no-explicit-any": "off",
35
+ "@angular-eslint/prefer-inject": "off",
36
+ },
37
+ },
38
+ {
39
+ files: ["**/*.html"],
40
+ extends: [
41
+ ...angular.configs.templateRecommended,
42
+ ],
43
+ rules: {
44
+ // Relax rules
45
+ "@angular-eslint/template/eqeqeq": "off",
46
+ },
47
+ }
48
+ );
@@ -31,24 +31,16 @@
31
31
  "@angular/core": "^20.3.0",
32
32
  "@angular/common": "^20.3.0"
33
33
  },
34
- "rxjs": "~7.8.1"
34
+ "glob": "^11.0.3",
35
+ "rimraf": "^6.0.1"
35
36
  },
36
37
  "devDependencies": {
37
38
  "@angular-devkit/build-angular": "~20.3.0",
38
- "@angular-eslint/builder": "~20.3.0",
39
- "@angular-eslint/eslint-plugin": "~20.3.0",
40
- "@angular-eslint/eslint-plugin-template": "~20.3.0",
41
- "@angular-eslint/schematics": "~20.3.0",
42
- "@angular-eslint/template-parser": "~20.3.0",
43
39
  "@angular/cli": "~20.3.0",
44
40
  "@angular/compiler-cli": "~20.3.0",
45
41
  "@types/jasmine": "~5.1.4",
46
- "@typescript-eslint/eslint-plugin": "~8.45.0",
47
- "@typescript-eslint/parser": "~8.45.0",
48
- "eslint": "~9.36.0",
49
- "eslint-plugin-import": "^2.32.0",
50
- "eslint-plugin-prefer-arrow": "^1.2.3",
51
- "eslint-plugin-unicorn": "^61.0.2",
42
+ "angular-eslint": "~20.3.0",
43
+ "eslint": "~9.35.0",
52
44
  "igniteui-cli": "~<%=cliVersion%>",
53
45
  "jasmine-core": "~5.11.0",
54
46
  "karma": "~6.4.4",
@@ -56,6 +48,7 @@
56
48
  "karma-coverage": "~2.2.1",
57
49
  "karma-jasmine": "~5.1.0",
58
50
  "karma-jasmine-html-reporter": "~2.1.0",
59
- "typescript": "~5.9.2"
51
+ "typescript": "~5.9.2",
52
+ "typescript-eslint": "~8.40.0"
60
53
  }
61
54
  }
@@ -8,5 +8,4 @@ import { Component } from '@angular/core';
8
8
  })
9
9
  export class HomeComponent {
10
10
  title = 'Welcome to Ignite UI for Angular!';
11
- constructor() { }
12
11
  }
@@ -20,7 +20,6 @@ export class MicrosoftProvider extends BaseOidcProvider {
20
20
  // Microsoft OIDC doesn't support CORS for keys discovery URIs, intended for backend
21
21
  // See https://stackoverflow.com/a/44688644
22
22
  // Example implementation:
23
- // tslint:disable-next-line:max-line-length
24
23
  // https://blogs.msdn.microsoft.com/mihansen/2018/07/12/net-core-angular-app-with-openid-connection-implicit-flow-authentication-angular-auth-oidc-client/
25
24
  // https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-protocols-oidc
26
25
  this.oidcConfigService.wellKnownEndpoints.jwks_uri = MicrosoftProvider.keysURL;
@@ -3,7 +3,7 @@ import { Inject, Injectable, PLATFORM_ID } from '@angular/core';
3
3
 
4
4
  class LocalStorageFallback implements Storage {
5
5
  [name: string]: any;
6
- readonly length: number = 0;
6
+ readonly length = 0;
7
7
  clear(): void { }
8
8
  getItem(key: string): string | null { return null; }
9
9
  key(index: number): string | null { return null; }
@@ -1,5 +1,3 @@
1
- // tslint:disable
2
-
3
1
  // Replace with backend discovery from https://login.microsoftonline.com/consumers/discovery/v2.0/keys
4
2
  // See https://blogs.msdn.microsoft.com/mihansen/2018/07/12/net-core-angular-app-with-openid-connection-implicit-flow-authentication-angular-auth-oidc-client/
5
3
  export default { "keys": [{ "kty": "RSA", "use": "sig", "kid": "1LTMzakihiRla_8z2BEJVXeWMqo", "x5t": "1LTMzakihiRla_8z2BEJVXeWMqo", "n": "3sKcJSD4cHwTY5jYm5lNEzqk3wON1CaARO5EoWIQt5u-X-ZnW61CiRZpWpfhKwRYU153td5R8p-AJDWT-NcEJ0MHU3KiuIEPmbgJpS7qkyURuHRucDM2lO4L4XfIlvizQrlyJnJcd09uLErZEO9PcvKiDHoois2B4fGj7CsAe5UZgExJvACDlsQSku2JUyDmZUZP2_u_gCuqNJM5o0hW7FKRI3MFoYCsqSEmHnnumuJ2jF0RHDRWQpodhlAR6uKLoiWHqHO3aG7scxYMj5cMzkpe1Kq_Dm5yyHkMCSJ_JaRhwymFfV_SWkqd3n-WVZT0ADLEq0RNi9tqZ43noUnO_w", "e": "AQAB", "x5c": ["MIIDYDCCAkigAwIBAgIJAIB4jVVJ3BeuMA0GCSqGSIb3DQEBCwUAMCkxJzAlBgNVBAMTHkxpdmUgSUQgU1RTIFNpZ25pbmcgUHVibGljIEtleTAeFw0xNjA0MDUxNDQzMzVaFw0yMTA0MDQxNDQzMzVaMCkxJzAlBgNVBAMTHkxpdmUgSUQgU1RTIFNpZ25pbmcgUHVibGljIEtleTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN7CnCUg+HB8E2OY2JuZTRM6pN8DjdQmgETuRKFiELebvl/mZ1utQokWaVqX4SsEWFNed7XeUfKfgCQ1k/jXBCdDB1NyoriBD5m4CaUu6pMlEbh0bnAzNpTuC+F3yJb4s0K5ciZyXHdPbixK2RDvT3Lyogx6KIrNgeHxo+wrAHuVGYBMSbwAg5bEEpLtiVMg5mVGT9v7v4ArqjSTOaNIVuxSkSNzBaGArKkhJh557pridoxdERw0VkKaHYZQEerii6Ilh6hzt2hu7HMWDI+XDM5KXtSqvw5ucsh5DAkifyWkYcMphX1f0lpKnd5/llWU9AAyxKtETYvbameN56FJzv8CAwEAAaOBijCBhzAdBgNVHQ4EFgQU9IdLLpbC2S8Wn1MCXsdtFac9SRYwWQYDVR0jBFIwUIAU9IdLLpbC2S8Wn1MCXsdtFac9SRahLaQrMCkxJzAlBgNVBAMTHkxpdmUgSUQgU1RTIFNpZ25pbmcgUHVibGljIEtleYIJAIB4jVVJ3BeuMAsGA1UdDwQEAwIBxjANBgkqhkiG9w0BAQsFAAOCAQEAXk0sQAib0PGqvwELTlflQEKS++vqpWYPW/2gCVCn5shbyP1J7z1nT8kE/ZDVdl3LvGgTMfdDHaRF5ie5NjkTHmVOKbbHaWpTwUFbYAFBJGnx+s/9XSdmNmW9GlUjdpd6lCZxsI6888r0ptBgKINRRrkwMlq3jD1U0kv4JlsIhafUIOqGi4+hIDXBlY0F/HJPfUU75N885/r4CCxKhmfh3PBM35XOch/NGC67fLjqLN+TIWLoxnvil9m3jRjqOA9u50JUeDGZABIYIMcAdLpI2lcfru4wXcYXuQul22nAR7yOyGKNOKULoOTE4t4AeGRqCogXSxZgaTgKSBhvhE+MGg=="], "issuer": "https://login.microsoftonline.com/9188040d-6c67-4c5b-b112-36a304b66dad/v2.0" }, { "kty": "RSA", "use": "sig", "kid": "xP_zn6I1YkXcUUmlBoPuXTGsaxk", "x5t": "xP_zn6I1YkXcUUmlBoPuXTGsaxk", "n": "2pWatafeb3mB0A73-Z-URwrubwDldWvivRu19GNC61MBOb3fZ4I4lyhUhNuS7aJRPJIFB6zl-HFx1nHpGg74BHe0z9skODHYZEACd2iKBIet55DdduIe1CXsZ9keyEmNaGv3XS4OW_7IDM0j5wR9OHugUifkH3PQIcFvTYanHmXojTmgjIOWoz7y0okpyN9-FbZRzdfx-ej-njaj5gR8r69muwO5wlTbIG20V40R6zYh-QODMUpayy7jDGFGw5vjFH9Ca0tLZcNQq__JKE_mp-0fODOAQobOrBUoASFkyCd95BVW7KJrndvW7ofRWaCTuZZOy5SnU4asbjMrgxFZFw", "e": "AQAB", "x5c": ["MIIDYDCCAkigAwIBAgIJAJzCyTLC+DjJMA0GCSqGSIb3DQEBCwUAMCkxJzAlBgNVBAMTHkxpdmUgSUQgU1RTIFNpZ25pbmcgUHVibGljIEtleTAeFw0xNjA3MTMyMDMyMTFaFw0yMTA3MTIyMDMyMTFaMCkxJzAlBgNVBAMTHkxpdmUgSUQgU1RTIFNpZ25pbmcgUHVibGljIEtleTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANqVmrWn3m95gdAO9/mflEcK7m8A5XVr4r0btfRjQutTATm932eCOJcoVITbku2iUTySBQes5fhxcdZx6RoO+AR3tM/bJDgx2GRAAndoigSHreeQ3XbiHtQl7GfZHshJjWhr910uDlv+yAzNI+cEfTh7oFIn5B9z0CHBb02Gpx5l6I05oIyDlqM+8tKJKcjffhW2Uc3X8fno/p42o+YEfK+vZrsDucJU2yBttFeNEes2IfkDgzFKWssu4wxhRsOb4xR/QmtLS2XDUKv/yShP5qftHzgzgEKGzqwVKAEhZMgnfeQVVuyia53b1u6H0Vmgk7mWTsuUp1OGrG4zK4MRWRcCAwEAAaOBijCBhzAdBgNVHQ4EFgQU11z579/IePwuc4WBdN4L0ljG4CUwWQYDVR0jBFIwUIAU11z579/IePwuc4WBdN4L0ljG4CWhLaQrMCkxJzAlBgNVBAMTHkxpdmUgSUQgU1RTIFNpZ25pbmcgUHVibGljIEtleYIJAJzCyTLC+DjJMAsGA1UdDwQEAwIBxjANBgkqhkiG9w0BAQsFAAOCAQEAiASLEpQseGNahE+9f9PQgmX3VgjJerNjXr1zXWXDJfFE31DxgsxddjcIgoBL9lwegOHHvwpzK1ecgH45xcJ0Z/40OgY8NITqXbQRfdgLrEGJCoyOQEbjb5PW5k2aOdn7LBxvDsH6Y8ax26v+EFMPh3G+xheh6bfoIRSK1b+44PfoDZoJ9NfJibOZ4Cq+wt/yOvpMYQDB/9CNo18wmA3RCLYjf2nAc7RO0PDYHSIq5QDWV+1awmXDKgIdRpYPpRtn9KFXQkpCeEc/lDTG+o6n7nC40wyjioyR6QmHGvNkMR4VfSoTKCTnFATyDpI1bqU2K7KNjUEsCYfwybFB8d6mjQ=="], "issuer": "https://login.microsoftonline.com/9188040d-6c67-4c5b-b112-36a304b66dad/v2.0" }] };
@@ -16,7 +16,6 @@ const USER_TOKEN = 'currentUser';
16
16
  providedIn: 'root'
17
17
  })
18
18
  export class UserService {
19
- // tslint:disable-next-line:variable-name
20
19
  private _currentUser: User | null;
21
20
  /** Current logged in user, if any */
22
21
  public get currentUser() { return this._currentUser; }
@@ -7,8 +7,8 @@
7
7
  </p>
8
8
 
9
9
  <div class="select-wrapper">
10
- <igx-select #select>
11
- <label igxLabel>Simple Select</label>
10
+ <igx-select #select id="simple-select">
11
+ <label igxLabel for="simple-select">Simple Select</label>
12
12
  <igx-select-item *ngFor="let item of items" [value]="item">
13
13
  {{item}}
14
14
  </igx-select-item>
@@ -8,8 +8,8 @@
8
8
  </p>
9
9
 
10
10
  <div class="select-wrapper">
11
- <igx-select #select>
12
- <label igxLabel>Select With Groups</label>
11
+ <igx-select #select id="selectWithGroups">
12
+ <label igxLabel for="selectWithGroups">Select With Groups</label>
13
13
  <igx-select-item-group *ngFor="let item of items" [label]="item.type">
14
14
  <igx-select-item *ngFor="let fruit of item.fruits" [value]="fruit">
15
15
  {{fruit}}
@@ -10,9 +10,9 @@
10
10
 
11
11
  <form>
12
12
  <div class="select-wrapper">
13
- <igx-select #model="ngModel" [(ngModel)]="selected" [ngModelOptions]="{standalone: true}"
13
+ <igx-select id="fruitSelect" #model="ngModel" [(ngModel)]="selected" [ngModelOptions]="{standalone: true}"
14
14
  [placeholder]="'Pick One'">
15
- <label igxLabel>Favorite fruit</label>
15
+ <label igxLabel for="fruitSelect">Favorite fruit</label>
16
16
  <igx-prefix>Fruit</igx-prefix>
17
17
  <igx-select-item> None </igx-select-item>
18
18
  <igx-select-item *ngFor="let fruit of fruits" [value]="fruit">
@@ -7,7 +7,7 @@ export class DataService {
7
7
  private nodeData: SelectableNodeData[] = [];
8
8
  private selectedNode: Set<string> = new Set<string>();
9
9
  private deselectedNode: Set<string> = new Set<string>();
10
- private data$: ReplaySubject<SelectableNodeData[]> = new ReplaySubject();
10
+ private data$: ReplaySubject<SelectableNodeData[]> = new ReplaySubject<SelectableNodeData[]>();
11
11
  public get data(): Observable<SelectableNodeData[]> {
12
12
  return this.data$;
13
13
  }
@@ -50,7 +50,6 @@ class IgxCustomTreeGridTemplate extends IgniteUIForAngularTemplate_1.IgniteUIFor
50
50
  const featureUrl = "https://www.infragistics.com/products/ignite-ui-angular/angular/components/treegrid/";
51
51
  const anchorWrapper = {
52
52
  start: `<a href="`,
53
- // tslint:disable-next-line:object-literal-sort-keys
54
53
  href: ``,
55
54
  middle: `" target="_blank">`,
56
55
  text: ``,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@igniteui/angular-templates",
3
- "version": "20.1.1465",
3
+ "version": "20.1.1470",
4
4
  "description": "Templates for Ignite UI for Angular projects and components",
5
5
  "repository": {
6
6
  "type": "git",
@@ -12,7 +12,7 @@
12
12
  "author": "Infragistics",
13
13
  "license": "MIT",
14
14
  "dependencies": {
15
- "@igniteui/cli-core": "~14.6.5",
15
+ "@igniteui/cli-core": "~14.7.0",
16
16
  "typescript": "~5.5.4"
17
17
  }
18
18
  }
@@ -1,29 +0,0 @@
1
- import { FlatCompat } from '@eslint/eslintrc';
2
-
3
- const compat = new FlatCompat();
4
-
5
- export default [
6
- {
7
- files: ['**/*.ts', '**/*.tsx'],
8
- languageOptions: {
9
- parser: await import('@typescript-eslint/parser'),
10
- parserOptions: {
11
- project: ['tsconfig.json'],
12
- createDefaultProgram: true,
13
- },
14
- },
15
- rules: {
16
- // Basic TypeScript linting without Angular template processing
17
- },
18
- },
19
- {
20
- files: ['**/*.html'],
21
- ...compat.extends('plugin:@angular-eslint/template/recommended')[0],
22
- rules: {
23
- eqeqeq: 'off'
24
- },
25
- },
26
- {
27
- ignores: ['projects/**/*', '**/*.spec.ts']
28
- },
29
- ];