igniteui-cli 10.1.0 → 11.0.0-beta.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.
@@ -60,7 +60,7 @@ command = {
60
60
  if (success && !argv.skipInstall) {
61
61
  cli_core_1.Util.log("Installing npm packages.");
62
62
  try {
63
- cli_core_1.Util.execSync("npm install --quiet");
63
+ cli_core_1.Util.execSync("npm install --force --quiet");
64
64
  cli_core_1.Util.log("npm packages installed.");
65
65
  }
66
66
  catch (error) {
@@ -66,8 +66,8 @@ class jQueryTemplate {
66
66
  getJqueryDependenciesScriptTag() {
67
67
  let builder = "<!-- Ignite UI required script references -->\n";
68
68
  // builder += "<script src=\"http://ajax.aspnetcdn.com/ajax/modernizr/modernizr-2.8.3.js\"></script>\n";
69
- builder += "<script src=\"http://code.jquery.com/jquery-1.11.3.min.js\"></script>\n";
70
- builder += "<script src=\"http://code.jquery.com/ui/1.11.1/jquery-ui.min.js\"></script>\n";
69
+ builder += "<script src=\"https://code.jquery.com/jquery-1.12.4.min.js\" integrity=\"sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=\" crossorigin=\"anonymous\"></script>\n";
70
+ builder += "<script src=\"https://code.jquery.com/ui/1.12.1/jquery-ui.min.js\" integrity=\"sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU=\" crossorigin=\"anonymous\"></script>\n";
71
71
  return builder;
72
72
  }
73
73
  getScriptTags() {
@@ -56,7 +56,7 @@ function updateConfig(host) {
56
56
  function default_1() {
57
57
  return (host, context) => {
58
58
  context.logger.info("Updating project to Ignite UI CLI 3.0.0");
59
- (0, cli_core_1.addClassToBody)(host, "igx-typography");
59
+ (0, cli_core_1.addClassToBody)(host, "ig-typography");
60
60
  addHomeHeaderStyles(host);
61
61
  removeGridForRoot(host);
62
62
  updateConfig(host);
@@ -20,25 +20,25 @@ describe("Update 3.0.0", () => {
20
20
  beforeEach(() => {
21
21
  appTree = new testing_1.UnitTestTree(new schematics_1.EmptyTree());
22
22
  });
23
- it("should add igx-typography class to body if needed", (done) => __awaiter(void 0, void 0, void 0, function* () {
23
+ it("should add ig-typography class to body if needed", (done) => __awaiter(void 0, void 0, void 0, function* () {
24
24
  const indexFile = "/src/index.html";
25
25
  appTree.create(indexFile, `<body>
26
26
  <app-root></app-root>
27
27
  </body>`);
28
28
  yield schematicRunner.runSchematicAsync("migration-02", {}, appTree).toPromise();
29
29
  expect(appTree.readContent(indexFile))
30
- .toEqual(`<body class="igx-typography">
30
+ .toEqual(`<body class="ig-typography">
31
31
  <app-root></app-root>
32
32
  </body>`);
33
33
  appTree.overwrite(indexFile, `<body class="">`);
34
34
  yield schematicRunner.runSchematicAsync("migration-02", {}, appTree).toPromise();
35
- expect(appTree.readContent(indexFile)).toEqual(`<body class="igx-typography">`);
35
+ expect(appTree.readContent(indexFile)).toEqual(`<body class="ig-typography">`);
36
36
  appTree.overwrite(indexFile, `<body class="test class">`);
37
37
  yield schematicRunner.runSchematicAsync("migration-02", {}, appTree).toPromise();
38
- expect(appTree.readContent(indexFile)).toEqual(`<body class="test class igx-typography">`);
39
- appTree.overwrite(indexFile, `<body class="test igx-typography">`);
38
+ expect(appTree.readContent(indexFile)).toEqual(`<body class="test class ig-typography">`);
39
+ appTree.overwrite(indexFile, `<body class="test ig-typography">`);
40
40
  yield schematicRunner.runSchematicAsync("migration-02", {}, appTree).toPromise();
41
- expect(appTree.readContent(indexFile)).toEqual(`<body class="test igx-typography">`);
41
+ expect(appTree.readContent(indexFile)).toEqual(`<body class="test ig-typography">`);
42
42
  done();
43
43
  }));
44
44
  it("should add additional header styles to home css", (done) => __awaiter(void 0, void 0, void 0, function* () {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "igniteui-cli",
3
- "version": "10.1.0",
3
+ "version": "11.0.0-beta.0",
4
4
  "description": "CLI tool for creating Ignite UI projects",
5
5
  "keywords": [
6
6
  "CLI",
@@ -72,8 +72,8 @@
72
72
  "all": true
73
73
  },
74
74
  "dependencies": {
75
- "@igniteui/angular-templates": "~14.1.1010",
76
- "@igniteui/cli-core": "~10.1.0",
75
+ "@igniteui/angular-templates": "~15.0.1100-beta.0",
76
+ "@igniteui/cli-core": "~11.0.0-beta.0",
77
77
  "chalk": "^2.3.2",
78
78
  "fs-extra": "^3.0.1",
79
79
  "glob": "^7.1.2",
@@ -5,8 +5,8 @@
5
5
  <base href="/">
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1">
7
7
  <link rel="icon" type="image/x-icon" href="favicon.ico">
8
- <script src="http://code.jquery.com/jquery-1.12.3.js"></script>
9
- <script src="http://code.jquery.com/ui/1.11.4/jquery-ui.min.js"></script>
8
+ <script src="https://code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
9
+ <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js" integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU=" crossorigin="anonymous"></script>
10
10
  </head>
11
11
  <body>
12
12
  <app-root></app-root>
@@ -167,8 +167,8 @@
167
167
  }
168
168
  </style>
169
169
  $(scriptBlock)
170
- <script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
171
- <script src="https://cdnjs.cloudflare.com/ajax/libs/knockout.mapping/2.4.1/knockout.mapping.min.js"></script>
170
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.5.1/knockout-latest.min.js" integrity="sha512-vs7+jbztHoMto5Yd/yinM4/y2DOkPLt0fATcN+j+G4ANY2z4faIzZIOMkpBmWdcxt+596FemCh9M18NUJTZwvw==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
171
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/knockout.mapping/2.4.1/knockout.mapping.min.js" integrity="sha512-1LyBPWtezbX0LO4X4QzhfZd9jSetVu5W0IFpMV9ecq4lJUQBR6hx8uiNfUI2Aoe7LCF4rK1NV3rY+uil4VJ3QQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
172
172
  <script src="../ignite-ui/js/extensions/infragistics.ui.combo.knockout-extensions.js"></script>
173
173
  <script src="../ignite-ui/js/extensions/infragistics.ui.editors.knockout-extensions.js"></script>
174
174
  <script src="../ignite-ui/js/extensions/infragistics.ui.datachart.knockout-extensions.js"></script>
@@ -282,7 +282,7 @@
282
282
  <div class="grid-holder">
283
283
  <table id="grid" data-bind="igGrid: {
284
284
  dataSource: data,
285
-
285
+
286
286
  height: 250,
287
287
  autoCommit: true,
288
288
  autoGenerateColumns: false,
@@ -335,8 +335,8 @@
335
335
  }
336
336
  ]
337
337
  }"></table>
338
-
339
-
338
+
339
+
340
340
  </div>
341
341
  <div class="sample-bar-chart-holder" style="">
342
342
  <div id="barColumnChart" data-bind='igDataChart: {
@@ -409,14 +409,14 @@
409
409
  interval: chartIntervalX,
410
410
  label: "month",
411
411
  labelLocation: "outsideTop"
412
-
412
+
413
413
  }, {
414
414
  name: "yAxis",
415
415
  type: "numericY",
416
416
  interval: 10,
417
417
  minimumValue: -50,
418
418
  maximumValue: 50
419
-
419
+
420
420
  }],
421
421
  series: [{
422
422
  name: "line1",
@@ -457,7 +457,7 @@
457
457
  </div>
458
458
  <div id="legendLineChart"></div>
459
459
  </div>
460
-
460
+
461
461
  <div class="sample-polar-chart-holder">
462
462
  <div id="polarSplineChartRevenue" data-bind='igDataChart: {
463
463
  width: "97%",
@@ -554,9 +554,9 @@
554
554
  </div>
555
555
  <div id="legendPolarChartProfit" class="polar-chart-legend"></div>
556
556
  </div>
557
-
557
+
558
558
  </div>
559
559
  </div>
560
560
  </div>
561
561
  </body>
562
- </html>
562
+ </html>
@@ -2,7 +2,7 @@
2
2
  <html>
3
3
  <head>
4
4
  <title>$(name)</title>
5
- <script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
5
+ <script src="https://code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
6
6
 
7
7
  <link href="assets/app.css" rel="stylesheet" />
8
8
  <!-- Navigation Header JavaScript Files -->
@@ -15,4 +15,4 @@
15
15
  <img src="assets/Ignite-header-apps-960.png" alt="Ignite UI" height="602" width="602" />
16
16
  </div>
17
17
  </body>
18
- </html>
18
+ </html>
@@ -7,12 +7,12 @@
7
7
  <link rel="stylesheet" href="styles.css">
8
8
 
9
9
  <!-- Ignite UI Required Combined CSS Files -->
10
- <link href="http://cdn-na.infragistics.com/igniteui/latest/css/themes/infragistics/infragistics.theme.css" rel="stylesheet" />
11
- <link href="http://cdn-na.infragistics.com/igniteui/latest/css/structure/infragistics.css" rel="stylesheet" />
10
+ <link href="https://cdn-na.infragistics.com/igniteui/latest/css/themes/infragistics/infragistics.theme.css" rel="stylesheet" />
11
+ <link href="https://cdn-na.infragistics.com/igniteui/latest/css/structure/infragistics.css" rel="stylesheet" />
12
12
 
13
13
 
14
- <script src="http://code.jquery.com/jquery-1.12.3.js"></script>
15
- <script src="http://code.jquery.com/ui/1.11.4/jquery-ui.min.js"></script>
14
+ <script src="https://code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
15
+ <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js" integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU=" crossorigin="anonymous"></script>
16
16
 
17
17
  <!-- Polyfill(s) for older browsers -->
18
18
  <script src="node_modules/core-js/client/shim.min.js"></script>
@@ -23,9 +23,9 @@
23
23
  <script src="systemjs.config.js"></script>
24
24
 
25
25
  <!-- Ignite UI Required Combined JavaScript Files -->
26
- <script src="http://cdn-na.infragistics.com/igniteui/latest/js/infragistics.core.js"></script>
27
- <script src="http://cdn-na.infragistics.com/igniteui/latest/js/infragistics.lob.js"></script>
28
- <script src="http://cdn-na.infragistics.com/igniteui/latest/js/infragistics.dv.js"></script>
26
+ <script src="https://cdn-na.infragistics.com/igniteui/latest/js/infragistics.core.js"></script>
27
+ <script src="https://cdn-na.infragistics.com/igniteui/latest/js/infragistics.lob.js"></script>
28
+ <script src="https://cdn-na.infragistics.com/igniteui/latest/js/infragistics.dv.js"></script>
29
29
 
30
30
  <script>
31
31
  System.import('app').catch(function(err){ console.error(err); });
@@ -4,16 +4,16 @@
4
4
  <title></title>
5
5
 
6
6
  <!-- Ignite UI Required Combined CSS Files -->
7
- <link href="http://cdn-na.infragistics.com/igniteui/2020.1/latest/css/themes/infragistics/infragistics.theme.css" rel="stylesheet" />
8
- <link href="http://cdn-na.infragistics.com/igniteui/2020.1/latest/css/structure/infragistics.css" rel="stylesheet" />
7
+ <link href="https://cdn-na.infragistics.com/igniteui/2020.1/latest/css/themes/infragistics/infragistics.theme.css" rel="stylesheet" />
8
+ <link href="https://cdn-na.infragistics.com/igniteui/2020.1/latest/css/structure/infragistics.css" rel="stylesheet" />
9
9
 
10
- <script src="http://ajax.aspnetcdn.com/ajax/modernizr/modernizr-2.8.3.js"></script>
11
- <script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
12
- <script src="http://code.jquery.com/ui/1.11.1/jquery-ui.min.js"></script>
10
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.3/modernizr.min.js" integrity="sha512-3n19xznO0ubPpSwYCRRBgHh63DrV+bdZfHK52b1esvId4GsfwStQNPJFjeQos2h3JwCmZl0/LgLxSKMAI55hgw==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
11
+ <script src="https://code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
12
+ <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js" integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU=" crossorigin="anonymous"></script>
13
13
 
14
14
  <!-- Ignite UI Required Combined JavaScript Files -->
15
- <script src="http://cdn-na.infragistics.com/igniteui/2020.1/latest/js/infragistics.core.js"></script>
16
- <script src="http://cdn-na.infragistics.com/igniteui/2020.1/latest/js/infragistics.lob.js"></script>
15
+ <script src="https://cdn-na.infragistics.com/igniteui/2020.1/latest/js/infragistics.core.js"></script>
16
+ <script src="https://cdn-na.infragistics.com/igniteui/2020.1/latest/js/infragistics.lob.js"></script>
17
17
 
18
18
  </head>
19
19
  <body>
@@ -96,4 +96,4 @@
96
96
  });
97
97
  </script>
98
98
  </body>
99
- </html>
99
+ </html>
@@ -18,7 +18,7 @@ export default class $(ClassName) extends LitElement {
18
18
  </igc-expansion-panel>
19
19
  <igc-expansion-panel>
20
20
  <div slot="title">Ignite UI for Angular</div>
21
- <p>Ignite UI for Angularis a complete set of Material-based UI Widgets, Components & Sketch, Adobe XD and Figma UI kitsby Infragistics. Ignite UI for Angular is designed to enable developers to build enterprise-ready, high-performance HTML5 & JavaScript apps for modern desktop browsers.</p>
21
+ <p>Ignite UI for Angular is a complete set of Material-based UI Widgets, Components & Sketch, Adobe XD and Figma UI kits by Infragistics. Ignite UI for Angular is designed to enable developers to build enterprise-ready, high-performance HTML5 & JavaScript apps for modern desktop browsers.</p>
22
22
  </igc-expansion-panel>
23
23
  <igc-expansion-panel>
24
24
  <div slot="title">Ignite UI for jQuery</div>
@@ -1,16 +1,15 @@
1
- /* eslint-disable import/extensions */
2
- import { html, css, LitElement } from 'lit';
1
+ import { css, html, LitElement } from 'lit';
3
2
  import { customElement } from 'lit/decorators.js';
4
3
  import {
5
- IgcDataGridModule,
6
- IgcGridColumnOptionsModule,
4
+ EditModeType,
5
+ GridActivationMode,
6
+ GridSelectionMode,
7
7
  IgcDataGridComponent,
8
+ IgcDataGridModule,
8
9
  IgcGridCellValueChangingEventArgs,
10
+ IgcGridColumnOptionsModule,
9
11
  IgcTemplateCellUpdatingEventArgs,
10
- IgcTemplateColumnComponent,
11
- GridActivationMode,
12
- GridSelectionMode,
13
- EditModeType,
12
+ IgcTemplateColumnComponent
14
13
  } from 'igniteui-webcomponents-grids';
15
14
  import { ModuleManager } from 'igniteui-webcomponents-core';
16
15
  import { DataGridSharedData } from './DataGridSharedData';
@@ -1,12 +1,11 @@
1
- /* eslint-disable import/extensions, max-classes-per-file, class-methods-use-this */
2
- import { html, css, LitElement } from 'lit';
1
+ import { css, html, LitElement } from 'lit';
3
2
  import { customElement } from 'lit/decorators.js';
4
3
  import {
5
- IgcDataGridModule,
6
- IgcGridColumnOptionsModule,
7
4
  IgcDataGridComponent,
5
+ IgcDataGridModule,
8
6
  IgcColumnGroupDescription,
9
7
  IgcColumnSummaryDescription,
8
+ IgcGridColumnOptionsModule
10
9
  } from 'igniteui-webcomponents-grids';
11
10
  import {
12
11
  ModuleManager, IgcProvideCalculatorEventArgs, SummaryOperand, SummaryCalculator,
@@ -0,0 +1,23 @@
1
+ {
2
+ "root": true,
3
+ "env": {
4
+ "browser": true,
5
+ "es2021": true,
6
+ "jasmine": true
7
+ },
8
+ "extends": [
9
+ "eslint:recommended",
10
+ "plugin:@typescript-eslint/recommended"
11
+ ],
12
+ "parser": "@typescript-eslint/parser",
13
+ "parserOptions": {
14
+ "ecmaVersion": 12,
15
+ "sourceType": "module"
16
+ },
17
+ "plugins": [
18
+ "@typescript-eslint"
19
+ ],
20
+ "rules": {
21
+ "@typescript-eslint/no-inferrable-types": "off"
22
+ }
23
+ }
@@ -16,7 +16,7 @@
16
16
  "start": "tsc && concurrently -k -r \"tsc --watch\" \"wds\"",
17
17
  "build": "rimraf dist && tsc && rollup -c rollup.config.mjs",
18
18
  "start:build": "web-dev-server --root-dir dist --app-index index.html --open",
19
- "lint": "eslint --ext .js,.ts,.html . --ignore-path .gitignore",
19
+ "lint": "eslint \"**/*.{js,ts}\" --ignore-path .gitignore",
20
20
  "test": "tsc && wtr"
21
21
  },
22
22
  "dependencies": {
@@ -27,7 +27,6 @@
27
27
  "devDependencies": {
28
28
  "@babel/preset-env": "^7.16.4",
29
29
  "@open-wc/building-rollup": "^2.0.1",
30
- "@open-wc/eslint-config": "^4.3.0",
31
30
  "@open-wc/testing": "^2.5.33",
32
31
  "@rollup/plugin-babel": "^5.3.0",
33
32
  "@rollup/plugin-node-resolve": "^13.0.6",
@@ -41,7 +40,8 @@
41
40
  "concurrently": "^6.3.0",
42
41
  "deepmerge": "^4.2.2",
43
42
  "eslint": "^7.32.0",
44
- "igniteui-cli": "10.1.0",
43
+ "eslint-plugin-lit": "^1.6.1",
44
+ "igniteui-cli": "11.0.0-beta.0",
45
45
  "rimraf": "^3.0.2",
46
46
  "rollup": "^2.60.0",
47
47
  "rollup-plugin-copy-assets": "^2.0.3",
@@ -49,19 +49,5 @@
49
49
  "rollup-plugin-workbox": "^6.2.0",
50
50
  "source-map": "^0.7.3",
51
51
  "tslib": "^2.3.1"
52
- },
53
- "eslintConfig": {
54
- "parser": "@typescript-eslint/parser",
55
- "extends": [
56
- "@open-wc"
57
- ],
58
- "plugins": [
59
- "@typescript-eslint"
60
- ],
61
- "rules": {
62
- "no-unused-vars": "off",
63
- "import/no-unresolved": "off",
64
- "linebreak-style": "off"
65
- }
66
52
  }
67
53
  }
@@ -16,7 +16,7 @@
16
16
  "start": "tsc && concurrently -k -r \"tsc --watch\" \"wds\"",
17
17
  "build": "rimraf dist && tsc && rollup -c rollup.config.mjs",
18
18
  "start:build": "web-dev-server --root-dir dist --app-index index.html --open",
19
- "lint": "eslint --ext .js,.ts,.html . --ignore-path .gitignore",
19
+ "lint": "eslint \"**/*.{js,ts}\" --ignore-path .gitignore",
20
20
  "test": "tsc && wtr"
21
21
  },
22
22
  "dependencies": {
@@ -36,7 +36,6 @@
36
36
  "devDependencies": {
37
37
  "@babel/preset-env": "^7.16.4",
38
38
  "@open-wc/building-rollup": "^2.0.1",
39
- "@open-wc/eslint-config": "^4.3.0",
40
39
  "@open-wc/testing": "^2.5.33",
41
40
  "@rollup/plugin-babel": "^5.3.0",
42
41
  "@rollup/plugin-node-resolve": "^13.0.6",
@@ -50,7 +49,8 @@
50
49
  "concurrently": "^6.3.0",
51
50
  "deepmerge": "^4.2.2",
52
51
  "eslint": "^7.32.0",
53
- "igniteui-cli": "10.1.0",
52
+ "eslint-plugin-lit": "^1.6.1",
53
+ "igniteui-cli": "11.0.0-beta.0",
54
54
  "rimraf": "^3.0.2",
55
55
  "rollup": "^2.60.0",
56
56
  "rollup-plugin-copy-assets": "^2.0.3",
@@ -58,18 +58,5 @@
58
58
  "rollup-plugin-workbox": "^6.2.0",
59
59
  "source-map": "^0.7.3",
60
60
  "tslib": "^2.3.1"
61
- },
62
- "eslintConfig": {
63
- "parser": "@typescript-eslint/parser",
64
- "extends": [
65
- "@open-wc"
66
- ],
67
- "plugins": [
68
- "@typescript-eslint"
69
- ],
70
- "rules": {
71
- "no-unused-vars": "off",
72
- "import/no-unresolved": "off"
73
- }
74
61
  }
75
62
  }
@@ -19,7 +19,7 @@ export class HomeComponent extends LitElement {
19
19
  <h1>Welcome to Ignite UI for Web Components!</h1>
20
20
  <h4>A complete library of UI components, giving you the ability to build modern web applications using encapsulation and the concept of reusable components in a dependency-free approach.</h4>
21
21
  <img src="./src/assets/astronaut-components.svg" alt="indigoDesign">
22
- <p class="igx-typography__subtitle-1">Discover more at</p>
22
+ <p class="ig-typography__subtitle-1">Discover more at</p>
23
23
  <p>
24
24
  <a href="https://www.infragistics.com/products/ignite-ui-web-components" target="_blank">
25
25
  www.infragistics.com/products/ignite-ui-web-components
@@ -30,7 +30,7 @@ export class HomeComponent extends LitElement {
30
30
  www.infragistics.com/products/indigo-design
31
31
  </a>
32
32
  </p>
33
- <p class="igx-typography__subtitle-1">We are also on GitHub</p>
33
+ <p class="ig-typography__subtitle-1">We are also on GitHub</p>
34
34
  <p class="content__container--wide">
35
35
  <a href="https://github.com/IgniteUI/igniteui-cli" target="_blank">
36
36
  <span class="content__link-image"></span>Ignite UI CLI