@eui/cli 21.0.0-next.4 → 21.0.0-next.40

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/bin/eui-cli.js +0 -7
  2. package/bin/scripts/inject-config-app.js +12 -0
  3. package/lib/app-utils/build.js +51 -44
  4. package/lib/skeletons/_angular/base/angular.json +16 -0
  5. package/lib/skeletons/_angular/base/eslint.config.js +43 -0
  6. package/lib/skeletons/_angular/base/package.json +4 -6
  7. package/lib/skeletons/_angular/base/src/app/app-starter.service.spec.ts +9 -6
  8. package/lib/skeletons/_angular/base/src/app/app.component.html +3 -3
  9. package/lib/skeletons/_angular/base/src/app/app.component.spec.ts +14 -11
  10. package/lib/skeletons/_angular/base/src/app/features/home/home.component.html +1 -1
  11. package/lib/skeletons/_angular/base/src/app/features/home/home.component.ts +5 -3
  12. package/lib/skeletons/_angular/base/src/app/features/module1/components/page1/page1.component.html +1 -1
  13. package/lib/skeletons/_angular/base/src/app/features/module1/components/page2/page2.component.html +1 -1
  14. package/lib/skeletons/_angular/base/src/app/features/module1/module1.component.html +2 -4
  15. package/lib/skeletons/_angular/base/src/app/features/module2/module2.component.html +1 -1
  16. package/lib/skeletons/_angular/base/src/dummy.spec.ts +2 -0
  17. package/lib/skeletons/_angular/base/src/tsconfig.app.json +3 -0
  18. package/lib/skeletons/_angular/base/tsconfig.json +28 -24
  19. package/lib/skeletons/_angular/base-mobile/package.json +3 -3
  20. package/lib/skeletons/_angular/options/ecl-ec/angular.json +7 -29
  21. package/lib/skeletons/_angular/options/ecl-ec/src/app/app.component.html +101 -155
  22. package/lib/skeletons/_angular/options/ecl-ec/src/app/app.component.ts +4 -3
  23. package/lib/skeletons/_angular/options/ecl-ec/src/app/features/home/home.component.ts +5 -3
  24. package/lib/skeletons/_angular/options/ecl-eu/angular.json +7 -29
  25. package/lib/skeletons/_angular/options/ecl-eu/src/app/app.component.html +43 -68
  26. package/lib/skeletons/_angular/options/ecl-eu/src/app/app.component.ts +2 -3
  27. package/lib/skeletons/_angular/options/ecl-eu/src/app/features/home/home.component.ts +5 -3
  28. package/lib/skeletons/_angular/options/pnpm/package.json +27 -29
  29. package/package.json +1 -1
  30. package/lib/app-utils/projects.js +0 -41
  31. package/lib/skeletons/_angular/base/src/.eslintrc.json +0 -121
  32. package/lib/skeletons/_angular/base/src/karma.conf.js +0 -47
package/bin/eui-cli.js CHANGED
@@ -11,9 +11,6 @@ const scriptIndex = args.findIndex(
11
11
  x === 'build-app' ||
12
12
  x === 'serve-app' ||
13
13
  x === 'lint-app' ||
14
- x === 'generate-sprite' ||
15
- x === 'generate-app-metadata' ||
16
- x === 'help' ||
17
14
  x === 'inject-config-app'
18
15
  );
19
16
  const script = scriptIndex === -1 ? args[0] : args[scriptIndex];
@@ -26,10 +23,6 @@ switch (script) {
26
23
  case 'build-app':
27
24
  case 'serve-app':
28
25
  case 'lint-app':
29
- case 'generate-translations':
30
- case 'generate-sprite':
31
- case 'generate-app-metadata':
32
- case 'help':
33
26
  case 'inject-config-app': {
34
27
  let genScript = script;
35
28
  if (script === '' || script === undefined) {
@@ -0,0 +1,12 @@
1
+ 'use strict';
2
+
3
+ const build = require('../../lib/app-utils/build');
4
+
5
+ Promise.resolve()
6
+ .then(() => {
7
+ return build.injectAppConfig();
8
+ })
9
+ .catch((e) => {
10
+ console.error(e);
11
+ process.exit(1);
12
+ });
@@ -6,16 +6,6 @@ const execSync = childProcess.execSync;
6
6
 
7
7
  const utils = require('../utils');
8
8
 
9
- // const execa = require('execa');
10
-
11
- // const tools = require('../../tools');
12
- // const mavenUtils = require('../../maven-utils');
13
- // const configUtils = require('../../../csdr/config/config-utils');
14
- // const versionUtils = require('../../../csdr/version/version-utils');
15
-
16
- // const preBuildUtils = require('../../pre-build/pre-build-utils');
17
-
18
-
19
9
  module.exports.run = () => {
20
10
  let {
21
11
  skipLint,
@@ -28,7 +18,6 @@ module.exports.run = () => {
28
18
  dryRun,
29
19
  maxSpaceSize,
30
20
  statsJson,
31
- extraWebpackConfig,
32
21
  ci,
33
22
  deployUrl,
34
23
  sourceMap,
@@ -39,17 +28,19 @@ module.exports.run = () => {
39
28
 
40
29
  utils.logTitle(`Building application : ${prjName}...`);
41
30
 
42
- const ng = path.resolve(process.cwd(), '@angular', 'cli', 'bin', 'ng');
31
+ const ng = path.resolve(process.cwd(), 'node_modules', '@angular', 'cli', 'bin', 'ng');
43
32
 
44
33
  return Promise.resolve()
45
- // .then(() => {
46
- // return preBuildUtils.projects.preBuild(currentProject, envTarget, true, configEnvTarget);
47
- // })
34
+ .then(() => {
35
+ if (configEnvTarget) {
36
+ return injectAppConfig();
37
+ }
38
+ })
48
39
 
49
40
  .then(() => {
50
41
  if (!skipLint) {
51
42
  utils.logInfo(`running ng lint ${prjName}`);
52
- execSync(`ng lint ${prjName}`);
43
+ execSync(`ng lint ${prjName}`, { cwd: process.cwd(), stdio: 'inherit' });
53
44
  }
54
45
  })
55
46
 
@@ -80,14 +71,12 @@ module.exports.run = () => {
80
71
  args.push(`--watch=false`);
81
72
  }
82
73
 
83
- args.push('--code-coverage');
84
-
85
74
  utils.logInfo(`ng test : watching = ${watch || false}`);
86
75
 
87
76
  utils.logInfo(`running Angular TEST with args: ${args} on :`);
88
77
 
89
78
  if (!dryRun) {
90
- execSync(`node ${args.join(' ')}`, { cwd: currentProject.paths.angularPath, stdio: 'inherit' });
79
+ execSync(`node ${args.join(' ')}`, { cwd: process.cwd(), stdio: 'inherit' });
91
80
  }
92
81
  }
93
82
  })
@@ -139,34 +128,12 @@ module.exports.run = () => {
139
128
  utils.logInfo(`running Angular BUILD with args: ${args}`);
140
129
 
141
130
  if (!dryRun && !skipCompile) {
142
- execSync(`node ${args.join(' ')}`, { cwd: currentProject.paths.angularPath, stdio: 'inherit' });
131
+ execSync(`node ${args.join(' ')}`, { cwd: process.cwd(), stdio: 'inherit' });
143
132
  }
144
133
  })
145
134
 
146
- // .then(() => {
147
- // const projectVersion = parseInt(configUtils.projects.getProjectEuiVersion(currentProject));
148
-
149
- // if (currentProject.build && currentProject.build.skipBrowserOutputPath) {
150
- // if (currentProject.build.esbuild || projectVersion >= 18) {
151
- // utils.copydir(path.join(currentProject.paths.rootPath, 'dist', 'browser'), path.join(currentProject.paths.rootPath, 'dist'));
152
- // utils.remove(path.join(currentProject.paths.rootPath, 'dist', 'browser'));
153
- // }
154
- // }
155
- // })
156
-
157
- // .then(() => {
158
- // const desti18ncompiledPath = path.join(currentProject.paths.rootPath, 'dist', 'assets', 'i18n-compiled');
159
- // if (utils.isDirExists(desti18ncompiledPath)) {
160
- // utils.logTitle('Post-build assets i18n-compiled folder content:');
161
- // const i18nfiles = utils.getFiles(desti18ncompiledPath);
162
- // console.log(i18nfiles);
163
- // }
164
-
165
- // const mediaAssetsPath = path.join(currentProject.paths.rootPath, 'dist', 'assets', 'media');
166
- // if (utils.isDirExists(mediaAssetsPath)) {
167
- // utils.copydirFiles(mediaAssetsPath, path.join(currentProject.paths.rootPath, 'dist', 'media'));
168
- // }
169
- // })
135
+
136
+
170
137
 
171
138
  .catch((e) => {
172
139
  throw e;
@@ -174,3 +141,43 @@ module.exports.run = () => {
174
141
  };
175
142
 
176
143
 
144
+ const injectAppConfig = module.exports.injectAppConfig = () => {
145
+ return Promise.resolve()
146
+ .then(() => {
147
+ let { configEnvTarget } = utils.getArgs();
148
+
149
+ if (!configEnvTarget) {
150
+ throw new Error('configEnvTarget not provided as argument');
151
+ }
152
+
153
+ // set default if not envTarget provided
154
+ let envFilePath = path.join(process.cwd(), 'src/assets/config', `env-json-config.json`);
155
+
156
+ utils.logInfo(`Executing configuration replacement for : ${configEnvTarget} environment`);
157
+
158
+ let envOpenidPrefix = 'env-json-config-';
159
+ let openidConfigAssetsFolder = 'assets/config';
160
+
161
+ envFilePath = path.join(process.cwd(), `src/${openidConfigAssetsFolder}`, `${envOpenidPrefix}${configEnvTarget}.json`);
162
+
163
+ if (!utils.isFileExists(envFilePath)) {
164
+ utils.logError(`Cannot find environment config to inject : `);
165
+ utils.logError(`${envFilePath} missing...`);
166
+ return;
167
+ }
168
+
169
+ let rootTargetFolder = 'src';
170
+ let replacedFile;
171
+
172
+ replacedFile = `${rootTargetFolder}/assets/env-json-config.json`;
173
+
174
+ utils.logInfo(`Replacing default ${replacedFile} file by ${envFilePath} content`);
175
+ utils.copy(envFilePath, path.join(process.cwd(), `${replacedFile}`));
176
+
177
+ utils.logSuccess();
178
+ })
179
+
180
+ .catch((e) => {
181
+ throw e;
182
+ });
183
+ }
@@ -122,6 +122,22 @@
122
122
  }
123
123
  },
124
124
  "defaultConfiguration": "development"
125
+ },
126
+ "test": {
127
+ "builder": "@angular/build:unit-test",
128
+ "options": {
129
+ "tsConfig": "src/tsconfig.spec.json"
130
+ }
131
+ },
132
+ "lint": {
133
+ "builder": "@angular-eslint/builder:lint",
134
+ "options": {
135
+ "lintFilePatterns": [
136
+ "src/**/*.ts",
137
+ "src/**/*.html"
138
+ ],
139
+ "eslintConfig": "eslint.config.js"
140
+ }
125
141
  }
126
142
  }
127
143
  }
@@ -0,0 +1,43 @@
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
+ },
34
+ },
35
+ {
36
+ files: ["**/*.html"],
37
+ extends: [
38
+ ...angular.configs.templateRecommended,
39
+ ...angular.configs.templateAccessibility,
40
+ ],
41
+ rules: {},
42
+ },
43
+ );
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eui-angular-app",
3
- "version": "21.0.0-next.4",
3
+ "version": "21.0.0-next.40",
4
4
  "license": "EUPL-1.1",
5
5
  "scripts": {
6
6
  "ng": "ng",
@@ -15,18 +15,16 @@
15
15
  "build-prod-skip-test": "eui-cli build-app --configuration=production-optimized --configEnvTarget=prod --skipTest",
16
16
  "build-prod-stats": "eui-cli build-app --configuration=production-optimized --configEnvTarget=prod --statsJson",
17
17
  "app:build": "eui-cli build-app",
18
- "app:inject-config": "eui-cli inject-config-app",
19
- "generate-changelog": "eui-cli generate-changelog",
20
- "generate-sprite": "eui-cli generate-sprite"
18
+ "app:inject-config": "eui-cli inject-config-app"
21
19
  },
22
20
  "private": true,
23
21
  "dependencies": {
24
- "@eui/deps-base": "21.0.0-next.4"
22
+ "@eui/deps-base": "21.0.0-next.40"
25
23
  },
26
24
  "devDependencies": {
27
25
  "npm-run-all": "4.1.5",
28
26
  "json-server": "1.0.0-beta.3",
29
- "nodemon": "2.0.22",
27
+ "nodemon": "3.1.11",
30
28
  "lowdb": "1.0.0",
31
29
  "body-parser": "1.20.3",
32
30
  "express": "4.21.2"
@@ -4,9 +4,12 @@ import {CONFIG_TOKEN, I18nService, UserService} from '@eui/core';
4
4
  import {EuiAppConfig} from '@eui/core';
5
5
  import {of} from 'rxjs';
6
6
  import {AppStarterService} from './app-starter.service';
7
- import SpyObj = jasmine.SpyObj;
8
7
  import { EuiServiceStatus } from '@eui/base';
9
8
  import { provideHttpClient, withInterceptorsFromDi } from "@angular/common/http";
9
+ import { describe, it, beforeEach, expect, vi } from 'vitest';
10
+
11
+ // eslint-disable-next-line
12
+ type SpyObj<T> = { [K in keyof T]: T[K] extends (...args: any[]) => any ? ReturnType<typeof vi.fn> : T[K] };
10
13
 
11
14
  describe('AppStarterService', () => {
12
15
  let service: AppStarterService;
@@ -16,8 +19,8 @@ describe('AppStarterService', () => {
16
19
  let configMock: EuiAppConfig;
17
20
 
18
21
  beforeEach(() => {
19
- userServiceMock = jasmine.createSpyObj('UserService', ['init']);
20
- i18nServiceMock = jasmine.createSpyObj('I18nService', ['init']);
22
+ userServiceMock = { init: vi.fn() } as SpyObj<UserService>;
23
+ i18nServiceMock = { init: vi.fn() } as SpyObj<I18nService>;
21
24
  configMock = {global: {}, modules: {core: {base: 'localhost:3000', userDetails: 'dummy'}}};
22
25
 
23
26
  TestBed.configureTestingModule({
@@ -40,8 +43,8 @@ describe('AppStarterService', () => {
40
43
  });
41
44
 
42
45
  it('should call start method', () => {
43
- userServiceMock.init.and.returnValue(of({ } as EuiServiceStatus));
44
- i18nServiceMock.init.and.returnValue(of({ } as EuiServiceStatus));
46
+ vi.mocked(userServiceMock.init).mockReturnValue(of({ } as EuiServiceStatus));
47
+ vi.mocked(i18nServiceMock.init).mockReturnValue(of({ } as EuiServiceStatus));
45
48
  service.start().subscribe(() => {
46
49
  expect(userServiceMock.init).toHaveBeenCalled();
47
50
  expect(i18nServiceMock.init).toHaveBeenCalled();
@@ -49,7 +52,7 @@ describe('AppStarterService', () => {
49
52
  });
50
53
 
51
54
  it('should call initUserService method', () => {
52
- userServiceMock.init.and.returnValue(of({ } as EuiServiceStatus));
55
+ vi.mocked(userServiceMock.init).mockReturnValue(of({ } as EuiServiceStatus));
53
56
  service.initUserService().subscribe(() => {
54
57
  expect(userServiceMock.init).toHaveBeenCalled();
55
58
  });
@@ -10,17 +10,17 @@
10
10
  <eui-user-profile isShowAvatarInitials>
11
11
  <eui-user-profile-menu>
12
12
  <eui-user-profile-menu-item>
13
- <eui-icon-svg icon="person:outline"/>{{ 'eui.my-profile-informations' | translate }}
13
+ <eui-icon-svg icon="user:regular"/>{{ 'eui.my-profile-informations' | translate }}
14
14
  </eui-user-profile-menu-item>
15
15
  <eui-user-profile-menu-item>
16
- <eui-icon-svg icon="log-out:outline"/>{{ 'eui.sign-out' | translate }}
16
+ <eui-icon-svg icon="sign-out:regular"/>{{ 'eui.sign-out' | translate }}
17
17
  </eui-user-profile-menu-item>
18
18
  </eui-user-profile-menu>
19
19
  </eui-user-profile>
20
20
  </eui-toolbar-item>
21
21
 
22
22
  <eui-toolbar-item>
23
- <eui-notifications [count]="notificationItems?.length" [items]="notificationItems"></eui-notifications>
23
+ <eui-notifications [count]="notificationItems.length" [items]="notificationItems" />
24
24
  </eui-toolbar-item>
25
25
  </eui-toolbar-items>
26
26
 
@@ -10,7 +10,10 @@ import { CONFIG_TOKEN, I18nService, I18nState, UserService} from '@eui/core';
10
10
  import { EuiAppConfig } from '@eui/core';
11
11
  import { Observable, of } from 'rxjs';
12
12
  import { TranslateModule } from '@ngx-translate/core';
13
- import SpyObj = jasmine.SpyObj;
13
+ import { describe, it, beforeEach, expect, vi } from 'vitest';
14
+
15
+ // eslint-disable-next-line
16
+ type SpyObj<T> = { [K in keyof T]: T[K] extends (...args: any[]) => any ? ReturnType<typeof vi.fn> : T[K] };
14
17
 
15
18
  describe('AppComponent', () => {
16
19
  let component: AppComponent;
@@ -20,18 +23,18 @@ describe('AppComponent', () => {
20
23
  let configMock: EuiAppConfig;
21
24
 
22
25
  beforeEach(async () => {
23
-
24
- // Handle the overloaded getState method
25
26
  type GetStateReturnType<T> = T extends keyof I18nState ? Observable<I18nState[T]> : Observable<I18nState>;
26
27
 
27
- userServiceMock = jasmine.createSpyObj('UserService', ['init']);
28
- i18nServiceMock = jasmine.createSpyObj<I18nService>('I18nService', ['init', 'getState']);
29
- i18nServiceMock.getState.and.callFake(<K extends keyof I18nState>(key?: K): GetStateReturnType<K> => {
30
- if (typeof key === 'string') {
31
- return of({ activeLang: 'en' }[key]) as GetStateReturnType<K>;
32
- }
33
- return of({ activeLang: 'en' }) as GetStateReturnType<K>;
34
- });
28
+ userServiceMock = { init: vi.fn() } as SpyObj<UserService>;
29
+ i18nServiceMock = {
30
+ init: vi.fn(),
31
+ getState: vi.fn(<K extends keyof I18nState>(key?: K): GetStateReturnType<K> => {
32
+ if (typeof key === 'string') {
33
+ return of({ activeLang: 'en' }[key]) as GetStateReturnType<K>;
34
+ }
35
+ return of({ activeLang: 'en' }) as GetStateReturnType<K>;
36
+ })
37
+ } as SpyObj<I18nService>;
35
38
  configMock = {global: {}, modules: {core: {base: 'localhost:3000', userDetails: 'dummy'}}};
36
39
 
37
40
  await TestBed.configureTestingModule({
@@ -1,5 +1,5 @@
1
1
  <eui-page>
2
- <eui-page-header label="{{ 'page.home.title' | translate }}"></eui-page-header>
2
+ <eui-page-header label="{{ 'page.home.title' | translate }}" />
3
3
 
4
4
  <eui-page-content>
5
5
  <h3 class="eui-u-font-bold eui-u-color-info">Overview</h3>
@@ -1,4 +1,4 @@
1
- import { Component, Inject } from '@angular/core';
1
+ import { Component, inject } from '@angular/core';
2
2
  import { CONFIG_TOKEN, EuiAppConfig } from '@eui/core';
3
3
  import { EUI_PAGE } from '@eui/components/eui-page';
4
4
  import { TranslateModule } from '@ngx-translate/core';
@@ -11,7 +11,9 @@ import { TranslateModule } from '@ngx-translate/core';
11
11
  ],
12
12
  })
13
13
  export class HomeComponent {
14
- constructor(@Inject(CONFIG_TOKEN) protected config: EuiAppConfig) {
15
- console.log(config);
14
+ protected config: EuiAppConfig = inject(CONFIG_TOKEN);
15
+
16
+ constructor() {
17
+ console.log(this.config);
16
18
  }
17
19
  }
@@ -1,5 +1,5 @@
1
1
  <eui-page>
2
- <eui-page-header label="Module 1 - page 1"></eui-page-header>
2
+ <eui-page-header label="Module 1 - page 1" />
3
3
 
4
4
  <eui-page-content>
5
5
  page 1 content
@@ -1,5 +1,5 @@
1
1
  <eui-page>
2
- <eui-page-header label="Module 1 - page 2"></eui-page-header>
2
+ <eui-page-header label="Module 1 - page 2" />
3
3
 
4
4
  <eui-page-content>
5
5
  page 1 content
@@ -1,7 +1,5 @@
1
1
  <eui-page>
2
- <eui-page-header label="Module 1"></eui-page-header>
2
+ <eui-page-header label="Module 1" />
3
3
 
4
- <eui-page-content>
5
-
6
- </eui-page-content>
4
+ <eui-page-content />
7
5
  </eui-page>
@@ -1,5 +1,5 @@
1
1
  <eui-page>
2
- <eui-page-header label="Module 2"></eui-page-header>
2
+ <eui-page-header label="Module 2" />
3
3
 
4
4
  <eui-page-content>
5
5
  Module 2 content
@@ -1,3 +1,5 @@
1
+ import { describe, expect, it } from 'vitest';
2
+
1
3
  // Dummy test
2
4
  describe('Test', () => {
3
5
  it('should work', () => {
@@ -9,6 +9,9 @@
9
9
  "strictTemplates": true,
10
10
  "strictInjectionParameters": true,
11
11
  },
12
+ "include": [
13
+ "**/*.ts"
14
+ ],
12
15
  "exclude": [
13
16
  "**/*.spec.ts",
14
17
  "app/shared/testing/router.mock.ts",
@@ -1,27 +1,31 @@
1
+ /* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */
2
+ /* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */
1
3
  {
2
- "compileOnSave": false,
3
- "compilerOptions": {
4
- "baseUrl": "./",
5
- "outDir": "./dist/out-tsc",
6
- "target": "ES2022",
7
- "module": "ES2022",
8
- "useDefineForClassFields": false,
9
- "lib": [
10
- "ES2022",
11
- "dom"
12
- ],
13
- "sourceMap": true,
14
- "declaration": false,
15
- "moduleResolution": "bundler",
16
- "emitDecoratorMetadata": false,
17
- "experimentalDecorators": true,
18
- "allowSyntheticDefaultImports": true,
19
- "importHelpers": true,
20
- "typeRoots": [
21
- "node_modules/@types"
22
- ],
23
- "paths": {
24
- "@shared/*": ["src/app/shared/*"],
4
+ "compileOnSave": false,
5
+ "compilerOptions": {
6
+ "baseUrl": "./",
7
+ "outDir": "./dist/out-tsc",
8
+ "target": "ES2022",
9
+ "module": "ES2022",
10
+ "useDefineForClassFields": false,
11
+ "lib": [
12
+ "ES2022",
13
+ "dom"
14
+ ],
15
+ "sourceMap": true,
16
+ "declaration": false,
17
+ "moduleResolution": "bundler",
18
+ "emitDecoratorMetadata": false,
19
+ "experimentalDecorators": true,
20
+ "allowSyntheticDefaultImports": true,
21
+ "importHelpers": true,
22
+ "typeRoots": [
23
+ "node_modules/@types"
24
+ ],
25
+ "paths": {
26
+ "@shared/*": [
27
+ "src/app/shared/*"
28
+ ]
29
+ }
25
30
  }
26
- }
27
31
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eui-angular-app",
3
- "version": "21.0.0-next.4",
3
+ "version": "21.0.0-next.40",
4
4
  "license": "EUPL-1.1",
5
5
  "scripts": {
6
6
  "ng": "ng",
@@ -21,7 +21,7 @@
21
21
  "private": true,
22
22
  "dependencies": {
23
23
  "@eui/deps-base": "18.2.20",
24
- "@eui/mobile-core": "18.1.3",
25
- "@eui/mobile-styles": "18.1.3"
24
+ "@eui/mobile-core": "18.1.4",
25
+ "@eui/mobile-styles": "18.1.4"
26
26
  }
27
27
  }
@@ -140,39 +140,17 @@
140
140
  "lint": {
141
141
  "builder": "@angular-eslint/builder:lint",
142
142
  "options": {
143
- "lintFilePatterns": ["src/**/*.ts", "src/**/*.html"],
144
- "eslintConfig": "src/.eslintrc.json"
143
+ "lintFilePatterns": [
144
+ "src/**/*.ts",
145
+ "src/**/*.html"
146
+ ],
147
+ "eslintConfig": "eslint.config.js"
145
148
  }
146
149
  },
147
150
  "test": {
148
- "builder": "@angular-devkit/build-angular:karma",
151
+ "builder": "@angular/build:unit-test",
149
152
  "options": {
150
- "polyfills": ["zone.js", "zone.js/testing"],
151
- "tsConfig": "src/tsconfig.spec.json",
152
- "karmaConfig": "src/karma.conf.js",
153
- "inlineStyleLanguage": "scss",
154
- "assets": [
155
- {
156
- "glob": "**/*",
157
- "input": "node_modules/@eui/core/assets/",
158
- "output": "./assets"
159
- },
160
- {
161
- "glob": "**/*",
162
- "input": "node_modules/@eui/styles/dist/assets/ecl",
163
- "output": "./assets/images/ecl"
164
- },
165
- {
166
- "glob": "**/*",
167
- "input": "node_modules/@eui/styles/dist/assets",
168
- "output": "./assets"
169
- },
170
- {
171
- "glob": "**/*",
172
- "input": "node_modules/@eui/ecl/assets/",
173
- "output": "./assets"
174
- }
175
- ]
153
+ "tsConfig": "src/tsconfig.spec.json"
176
154
  }
177
155
  }
178
156
  }