@eui/cli 23.0.0-alpha.1 → 23.0.0-alpha.3

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 (123) hide show
  1. package/README.md +36 -3
  2. package/bin/eui-cli.js +9 -0
  3. package/bin/scripts/new.js +8 -0
  4. package/lib/build.js +3 -11
  5. package/lib/cli.js +84 -7
  6. package/lib/generators.js +18 -0
  7. package/lib/skeletons/_angular/base/package.json +2 -2
  8. package/lib/skeletons/_angular/base/src/app/app.component.spec.ts +5 -5
  9. package/lib/skeletons/_angular/base/src/app/app.component.ts +2 -2
  10. package/lib/skeletons/_angular/base/src/app/app.config.ts +2 -2
  11. package/lib/skeletons/_angular/base/src/app/features/home/home.component.ts +2 -2
  12. package/lib/skeletons/_angular/base-mobile/angular.json +4 -4
  13. package/lib/skeletons/_angular/base-mobile/package.json +29 -15
  14. package/lib/skeletons/_angular/base-mobile/src/app/app-routing.module.ts +5 -5
  15. package/lib/skeletons/_angular/base-mobile/src/app/app.component.html +41 -19
  16. package/lib/skeletons/_angular/base-mobile/src/app/app.component.ts +24 -24
  17. package/lib/skeletons/_angular/base-mobile/src/app/app.config.ts +0 -80
  18. package/lib/skeletons/_angular/base-mobile/src/app/app.module.ts +2 -0
  19. package/lib/skeletons/_angular/base-mobile/src/app/core/core.module.ts +2 -17
  20. package/lib/skeletons/_angular/base-mobile/src/app/features/about/about.component.html +8 -3
  21. package/lib/skeletons/_angular/base-mobile/src/app/features/about/about.component.ts +5 -1
  22. package/lib/skeletons/_angular/base-mobile/src/app/features/about/{about-routing.module.ts → about.routes.ts} +2 -13
  23. package/lib/skeletons/_angular/base-mobile/src/app/features/about/change-log/changelog.component.ts +5 -1
  24. package/lib/skeletons/_angular/base-mobile/src/app/features/about/help-support/help-support.component.ts +12 -8
  25. package/lib/skeletons/_angular/base-mobile/src/app/features/about/legal-notice/legal-notice.component.html +1 -1
  26. package/lib/skeletons/_angular/base-mobile/src/app/features/about/legal-notice/legal-notice.component.ts +6 -4
  27. package/lib/skeletons/_angular/base-mobile/src/app/features/about/licence-details/licence-details.component.ts +6 -3
  28. package/lib/skeletons/_angular/base-mobile/src/app/features/about/opensource-licences/opensource-licences.component.ts +5 -1
  29. package/lib/skeletons/_angular/base-mobile/src/app/features/home/home.component.html +44 -5
  30. package/lib/skeletons/_angular/base-mobile/src/app/features/home/home.component.ts +69 -0
  31. package/lib/skeletons/_angular/base-mobile/src/app/features/home/home.routes.ts +6 -0
  32. package/lib/skeletons/_angular/base-mobile/src/app/features/module1/components/page1/page1.component.html +24 -5
  33. package/lib/skeletons/_angular/base-mobile/src/app/features/module1/components/page1/page1.component.ts +5 -4
  34. package/lib/skeletons/_angular/base-mobile/src/app/features/module1/components/page2/page2.component.html +24 -5
  35. package/lib/skeletons/_angular/base-mobile/src/app/features/module1/components/page2/page2.component.ts +5 -3
  36. package/lib/skeletons/_angular/base-mobile/src/app/features/module1/module1.component.html +2 -2
  37. package/lib/skeletons/_angular/base-mobile/src/app/features/module1/module1.component.ts +4 -4
  38. package/lib/skeletons/_angular/base-mobile/src/app/features/module1/{module1-routing.module.ts → module1.routes.ts} +2 -10
  39. package/lib/skeletons/_angular/base-mobile/src/app/features/welcome/welcome.component.html +32 -0
  40. package/lib/skeletons/_angular/base-mobile/src/app/features/welcome/welcome.component.ts +9 -0
  41. package/lib/skeletons/_angular/base-mobile/src/app/features/welcome/welcome.routes.ts +6 -0
  42. package/lib/skeletons/_angular/base-mobile/src/assets/docs/sample-pdf-mobile.pdf +0 -0
  43. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-1024.png +0 -0
  44. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-114.png +0 -0
  45. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-120.png +0 -0
  46. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-128.png +0 -0
  47. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-144.png +0 -0
  48. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-152.png +0 -0
  49. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-16.png +0 -0
  50. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-180.png +0 -0
  51. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-192.png +0 -0
  52. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-32.png +0 -0
  53. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-36.png +0 -0
  54. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-384.png +0 -0
  55. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-48.png +0 -0
  56. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-512.png +0 -0
  57. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-57.png +0 -0
  58. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-60.png +0 -0
  59. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-72.png +0 -0
  60. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-76.png +0 -0
  61. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-96.png +0 -0
  62. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1125-2436.png +0 -0
  63. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1170-2532.png +0 -0
  64. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1179-2556.png +0 -0
  65. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1242-2208.png +0 -0
  66. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1242-2688.png +0 -0
  67. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1284-2778.png +0 -0
  68. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1290-2796.png +0 -0
  69. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1488-2266.png +0 -0
  70. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1536-2048.png +0 -0
  71. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1620-2160.png +0 -0
  72. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1640-2360.png +0 -0
  73. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1668-2224.png +0 -0
  74. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1668-2388.png +0 -0
  75. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-2048-2732.png +0 -0
  76. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-640-1136.png +0 -0
  77. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-750-1334.png +0 -0
  78. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-828-1792.png +0 -0
  79. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1125-2436.png +0 -0
  80. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1170-2532.png +0 -0
  81. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1179-2556.png +0 -0
  82. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1242-2208.png +0 -0
  83. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1242-2688.png +0 -0
  84. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1284-2778.png +0 -0
  85. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1290-2796.png +0 -0
  86. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1488-2266.png +0 -0
  87. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1536-2048.png +0 -0
  88. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1620-2160.png +0 -0
  89. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1640-2360.png +0 -0
  90. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1668-2224.png +0 -0
  91. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1668-2388.png +0 -0
  92. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-2048-2732.png +0 -0
  93. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-640-1136.png +0 -0
  94. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-750-1334.png +0 -0
  95. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-828-1792.png +0 -0
  96. package/lib/skeletons/_angular/base-mobile/src/assets/images/app-icon.png +0 -0
  97. package/lib/skeletons/_angular/base-mobile/src/assets/images/image.png +0 -0
  98. package/lib/skeletons/_angular/base-mobile/src/index.html +1 -1
  99. package/lib/skeletons/_angular/base-mobile/src/main.ts +5 -0
  100. package/lib/skeletons/_angular/options/ecl-ec/src/app/app.component.html +57 -34
  101. package/lib/skeletons/_angular/options/ecl-ec/src/app/app.component.ts +2 -2
  102. package/lib/skeletons/_angular/options/ecl-ec/src/app/app.config.ts +2 -2
  103. package/lib/skeletons/_angular/options/ecl-ec/src/app/features/home/home.component.ts +1 -3
  104. package/lib/skeletons/_angular/options/ecl-eu/src/app/app.component.html +39 -19
  105. package/lib/skeletons/_angular/options/ecl-eu/src/app/app.component.ts +2 -2
  106. package/lib/skeletons/_angular/options/ecl-eu/src/app/app.config.ts +2 -2
  107. package/lib/skeletons/_angular/options/ecl-eu/src/app/features/home/home.component.ts +1 -3
  108. package/lib/skeletons/_angular/options/ecl-eu/src/app/shared/shared.module.ts +2 -2
  109. package/lib/skeletons/_angular/options/pnpm/package.json +28 -28
  110. package/package.json +3 -6
  111. package/lib/skeletons/_angular/base-mobile/src/app/core/reducers/index.ts +0 -32
  112. package/lib/skeletons/_angular/base-mobile/src/app/features/about/about.module.ts +0 -30
  113. package/lib/skeletons/_angular/base-mobile/src/app/features/about/privacy-statement/privacy-statement.component.html +0 -11
  114. package/lib/skeletons/_angular/base-mobile/src/app/features/about/privacy-statement/privacy-statement.component.ts +0 -103
  115. package/lib/skeletons/_angular/base-mobile/src/app/features/home/home-routing.module.ts +0 -15
  116. package/lib/skeletons/_angular/base-mobile/src/app/features/home/home.module.ts +0 -18
  117. package/lib/skeletons/_angular/base-mobile/src/app/features/module1/module1.module.ts +0 -21
  118. package/lib/skeletons/_angular/base-mobile/src/app/features/module2/module2-routing.module.ts +0 -16
  119. package/lib/skeletons/_angular/base-mobile/src/app/features/module2/module2.component.html +0 -11
  120. package/lib/skeletons/_angular/base-mobile/src/app/features/module2/module2.component.ts +0 -7
  121. package/lib/skeletons/_angular/base-mobile/src/app/features/module2/module2.module.ts +0 -17
  122. package/lib/skeletons/_angular/base-mobile/src/assets/docs/pdf-test.pdf +0 -0
  123. package/lib/skeletons/_angular/base-mobile/src/assets/images/app-icon.svg +0 -10
@@ -1,81 +1 @@
1
- /* pre-v19 - ignore this file
2
- import { inject, provideAppInitializer } from '@angular/core';
3
- import { ApplicationConfig, importProvidersFrom } from '@angular/core';
4
- import { provideRouter } from '@angular/router';
5
- import { Observable } from 'rxjs';
6
1
 
7
- import { routes } from './app.routes';
8
- import { AppStarterService } from './app-starter.service';
9
-
10
- import { TranslateModule } from '@ngx-translate/core';
11
-
12
- import { HTTP_INTERCEPTORS, provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';
13
- import {
14
- CachePreventionInterceptor,
15
- CorsSecurityInterceptor,
16
- CsrfPreventionInterceptor,
17
- EuLoginSessionTimeoutHandlingInterceptor,
18
- CoreModule as EuiCoreModule,
19
- translateConfig,
20
- EUI_CONFIG_TOKEN,
21
- provideEuiInitializer,
22
- EuiServiceStatus,
23
- } from '@eui/core';
24
-
25
- import { appConfig as euiAppConfig} from '../config';
26
- import { environment } from '../environments/environment';
27
- import { provideAnimations } from '@angular/platform-browser/animations';
28
-
29
- const init = (): Observable<EuiServiceStatus> => {
30
- const appStarter = inject(AppStarterService);
31
- return appStarter.start();
32
- };
33
-
34
- export const appConfig: ApplicationConfig = {
35
- providers: [
36
- {
37
- provide: EUI_CONFIG_TOKEN,
38
- useValue: { appConfig: euiAppConfig, environment }
39
- },
40
- {
41
- // Sets the withCredentials on Ajax Request to send the JSESSIONID cookie to another domain.
42
- // This is necessary when a request is being made to another domain that is protected by EU Login.
43
- provide: HTTP_INTERCEPTORS,
44
- useClass: CorsSecurityInterceptor,
45
- multi: true,
46
- },
47
- {
48
- // When the authentication session is invalid, we need to re-authenticate. The browser refreshes the current URL,
49
- // and lets the EU Login client redirect to the official EU Login page.
50
- provide: HTTP_INTERCEPTORS,
51
- useClass: EuLoginSessionTimeoutHandlingInterceptor,
52
- multi: true,
53
- },
54
- {
55
- // Adds HTTP header to each Ajax request that ensures the request is set by a piece of JavaScript code in the application.
56
- // This prevents dynamically-loaded content from forging a request in the name of the currently logged-in user.
57
- // Be aware that this assumes that cross-site scripting (XSS) is already put in place, (default setting in Angular).
58
- provide: HTTP_INTERCEPTORS,
59
- useClass: CsrfPreventionInterceptor,
60
- multi: true,
61
- },
62
- {
63
- // Asks the intermediate proxies not to return a cache copy of the resource.
64
- // In matter of fact forces each server in the chain to validate the freshness of the resource.
65
- provide: HTTP_INTERCEPTORS,
66
- useClass: CachePreventionInterceptor,
67
- multi: true,
68
- },
69
- provideEuiInitializer(),
70
- provideAppInitializer(init),
71
- provideHttpClient(withInterceptorsFromDi()),
72
- importProvidersFrom(
73
- EuiCoreModule.forRoot(),
74
- TranslateModule.forRoot(translateConfig)
75
- ),
76
- AppStarterService,
77
- provideRouter(routes),
78
- provideAnimations(),
79
- ],
80
- };
81
- */
@@ -7,6 +7,7 @@ import { AppComponent } from './app.component';
7
7
  import { CoreModule } from './core/core.module';
8
8
  import { AppStarterService } from './app-starter.service';
9
9
  import { ServiceWorkerModule } from '@angular/service-worker';
10
+ import { provideHttpClient, withFetch } from '@angular/common/http';
10
11
 
11
12
  @NgModule({
12
13
  declarations: [
@@ -36,6 +37,7 @@ import { ServiceWorkerModule } from '@angular/service-worker';
36
37
  deps: [AppStarterService],
37
38
  multi: true
38
39
  },
40
+ provideHttpClient(withFetch()),
39
41
  ],
40
42
  bootstrap: [
41
43
  AppComponent,
@@ -1,8 +1,5 @@
1
1
  import { NgModule } from '@angular/core';
2
- import { TranslateModule } from '@ngx-translate/core';
3
- import { StoreModule } from '@ngrx/store';
4
- import { EffectsModule } from '@ngrx/effects';
5
- import { StoreDevtoolsModule } from '@ngrx/store-devtools';
2
+ import { provideTranslateService } from '@ngx-translate/core';
6
3
 
7
4
  import { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';
8
5
 
@@ -15,15 +12,12 @@ import {
15
12
  EuLoginSessionTimeoutHandlingInterceptor,
16
13
  CoreModule as EuiCoreModule,
17
14
  translateConfig,
18
- CoreModuleEffects,
19
15
  EUI_CONFIG_TOKEN,
20
16
  } from '@eui/core';
21
17
 
22
18
  import { appConfig } from '../../config/index';
23
19
  import { environment } from '../../environments/environment';
24
20
 
25
- import { REDUCER_TOKEN, getReducers, metaReducers } from './reducers/index';
26
-
27
21
  import { SharedModule } from '@shared/shared.module';
28
22
 
29
23
  @NgModule({
@@ -31,11 +25,6 @@ import { SharedModule } from '@shared/shared.module';
31
25
  HttpClientModule,
32
26
  SharedModule,
33
27
  EuiCoreModule.forRoot(),
34
- EffectsModule.forRoot([...CoreModuleEffects]),
35
- TranslateModule.forRoot(translateConfig),
36
- StoreModule.forRoot(),
37
- StoreModule.forRoot(REDUCER_TOKEN, { metaReducers }),
38
- !environment.production ? StoreDevtoolsModule.instrument({ maxAge: 50 }) : [],
39
28
  IonicModule.forRoot({mode: 'md'}),
40
29
  ],
41
30
  declarations: [
@@ -44,11 +33,7 @@ import { SharedModule } from '@shared/shared.module';
44
33
  SharedModule,
45
34
  ],
46
35
  providers: [
47
- {
48
- provide: REDUCER_TOKEN,
49
- deps: [],
50
- useFactory: getReducers,
51
- },
36
+ provideTranslateService(translateConfig),
52
37
  {
53
38
  provide: EUI_CONFIG_TOKEN,
54
39
  useValue: { appConfig: appConfig, environment: environment }
@@ -4,7 +4,7 @@
4
4
  <euim-toolbar-title>{{ 'euim.about.text' | translate }}</euim-toolbar-title>
5
5
  <euim-toolbar-action-items>
6
6
  <ion-button>
7
- <ion-label class="eui-u-mr-m" (click)="toggleQRCode()" slot="end">
7
+ <ion-label (click)="toggleQRCode()" slot="end">
8
8
  <strong>
9
9
  @if (showCode) {
10
10
  {{ 'euim.about.hide.qrcode' | translate }}
@@ -21,7 +21,7 @@
21
21
 
22
22
  <euim-header-details color="branding">
23
23
  <div euimHeaderDetailsIcon>
24
- <euim-toolbar-qrcode [showCode]="showCode" logoUrl="./assets/images/app-icon.svg"
24
+ <euim-toolbar-qrcode [showCode]="showCode" logoUrl="./assets/images/app-icon.png"
25
25
  qrCodeUrl="https://github.com/Cordobo/angularx-qrcode"></euim-toolbar-qrcode>
26
26
  </div>
27
27
  <div euimHeaderDetailsTitle><strong>eUI / mobile</strong></div>
@@ -41,11 +41,16 @@
41
41
  <div euimLabel>{{'euim.about.changelog' | translate }}</div>
42
42
  </ion-label>
43
43
  </ion-item>
44
- <ion-item button (click)="onNavigate('/screen/about/privacy-statement')">
44
+ <ion-item button href="https://commission.europa.eu/privacy-policy-websites-managed-european-commission_en" target="_blank">
45
45
  <ion-icon name="finger-print-sharp" slot="start"></ion-icon>
46
46
  <ion-label>
47
47
  <div euimLabel>{{'euim.about.privacy.statement' | translate }}</div>
48
48
  </ion-label>
49
+ <ion-buttons>
50
+ <ion-button fill="clear">
51
+ <ion-icon name="open-outline" slot="icon-only"></ion-icon>
52
+ </ion-button>
53
+ </ion-buttons>
49
54
  </ion-item>
50
55
  <ion-item button (click)="onNavigate('/screen/about/opensource-licences')">
51
56
  <ion-icon name="ribbon-outline" slot="start"></ion-icon>
@@ -1,8 +1,12 @@
1
1
  import { Component } from '@angular/core';
2
2
  import { NavController } from '@ionic/angular';
3
+ import { EuimChipSelectorComponentModule, EuimAboutModule, EuimHeaderDetailsModule, EuimToolbarQrcodeModule, EuimToolbarComponentModule, EuimLabelModule } from '@eui/mobile-core';
4
+ import { IonToolbar, IonHeader, IonContent, IonButtons, IonList, IonListHeader, IonItem, IonLabel, IonIcon, IonButton } from '@ionic/angular/standalone';
5
+ import { TranslatePipe } from '@ngx-translate/core';
3
6
 
4
7
  @Component({
5
- templateUrl: './about.component.html'
8
+ templateUrl: './about.component.html',
9
+ imports: [TranslatePipe, IonToolbar, IonHeader, IonButtons, IonContent, IonList, IonListHeader, IonItem, IonLabel, IonIcon, IonButton, EuimChipSelectorComponentModule, EuimAboutModule, EuimHeaderDetailsModule, EuimToolbarQrcodeModule, EuimToolbarComponentModule, EuimLabelModule ]
6
10
  })
7
11
  export class AboutComponent {
8
12
  showCode = false;
@@ -1,14 +1,12 @@
1
- import { NgModule } from '@angular/core';
2
- import { RouterModule, Routes } from '@angular/router';
1
+ import { Routes } from '@angular/router';
3
2
  import { AboutComponent } from './about.component';
4
3
  import { ChangeLogComponent } from './change-log/changelog.component';
5
- import { PrivacystatementComponent } from './privacy-statement/privacy-statement.component';
6
4
  import { LegalNoticeComponent } from './legal-notice/legal-notice.component';
7
5
  import { HelpSupportComponent } from './help-support/help-support.component';
8
6
  import { OpensourceLicencesComponent } from './opensource-licences/opensource-licences.component';
9
7
  import { LicenceDetailsComponent } from './licence-details/licence-details.component';
10
8
 
11
- const routes: Routes = [
9
+ export const ABOUT_ROUTES: Routes = [
12
10
  {
13
11
  path: '',
14
12
  component: AboutComponent,
@@ -17,10 +15,6 @@ const routes: Routes = [
17
15
  path: 'change-log',
18
16
  component: ChangeLogComponent
19
17
  },
20
- {
21
- path: 'privacy-statement',
22
- component: PrivacystatementComponent
23
- },
24
18
  {
25
19
  path: 'legal-notice',
26
20
  component: LegalNoticeComponent
@@ -38,8 +32,3 @@ const routes: Routes = [
38
32
  component: LicenceDetailsComponent
39
33
  },
40
34
  ];
41
-
42
- @NgModule({
43
- imports: [RouterModule.forChild(routes)],
44
- })
45
- export class AboutRoutingModule {}
@@ -1,6 +1,10 @@
1
1
  import { Component } from '@angular/core';
2
+ import { EuimAboutModule, EuimToolbarComponentModule } from '@eui/mobile-core';
3
+ import { IonToolbar, IonHeader, IonContent } from '@ionic/angular/standalone';
4
+ import { TranslatePipe } from '@ngx-translate/core';
2
5
  @Component({
3
- templateUrl: './changelog.component.html'
6
+ templateUrl: './changelog.component.html',
7
+ imports: [TranslatePipe, EuimAboutModule, IonToolbar, IonHeader, IonContent, EuimToolbarComponentModule]
4
8
  })
5
9
  export class ChangeLogComponent {
6
10
  changeLogs = [
@@ -1,7 +1,11 @@
1
1
  import { Component } from '@angular/core';
2
+ import { EuimAboutModule, EuimAlertMessageModule, EuimToolbarComponentModule } from '@eui/mobile-core';
3
+ import { IonToolbar, IonHeader, IonContent, IonIcon, IonButton } from '@ionic/angular/standalone';
4
+ import { TranslatePipe } from '@ngx-translate/core';
2
5
 
3
6
  @Component({
4
- templateUrl: './help-support.component.html'
7
+ templateUrl: './help-support.component.html',
8
+ imports: [TranslatePipe, IonToolbar, IonIcon, IonButton, EuimAboutModule, EuimAlertMessageModule, IonHeader, IonContent, EuimToolbarComponentModule]
5
9
  })
6
10
  export class HelpSupportComponent {
7
11
  alertInfos = {
@@ -19,28 +23,28 @@ export class HelpSupportComponent {
19
23
  title: '+352 123 45 67890',
20
24
  phone: '+352 123 45 67890',
21
25
  subtitle: 'Customer service',
22
- startIcon: 'call',
26
+ startIcon: 'call-outline',
23
27
  hasBottomLine: true
24
28
  },
25
29
  {
26
30
  title: '+32 123 45 67890',
27
31
  phone: '+32 123 45 67890',
28
32
  subtitle: 'Helpdesk support',
29
- startIcon: 'call',
33
+ startIcon: 'call-outline',
30
34
  hasBottomLine: true
31
35
  },
32
36
  {
33
37
  title: 'digit-eui-support@ec.europa.eu',
34
38
  mail: 'digit-eui-support@ec.europa.eu',
35
39
  subtitle: 'Helpdesk support',
36
- startIcon: 'at',
40
+ startIcon: 'call-outline',
37
41
  hasBottomLine: true
38
42
  },
39
43
  {
40
44
  title: 'EC Microsoft Teams',
41
45
  link: 'https://teams.microsoft.com/l/channel/19%3a6db7a6cef52340eb91d67b8d75db2523%40thread.tacv2/%25E2%259D%2593%25E2%259D%2593%2520%2520HELPDESK%2520and%2520SUPPORT?groupId=fb6def72-c57b-4e8f-a82e-49be65d6e1f5&tenantId=b24c8b06-522c-46fe-9080-70926f8dddb1',
42
46
  subtitle: 'Microsoft Teams helpdesk channel',
43
- startIcon: 'people'
47
+ startIcon: 'call-outline'
44
48
  },
45
49
  ],
46
50
  },
@@ -51,21 +55,21 @@ export class HelpSupportComponent {
51
55
  title: 'eUI / mobile manual',
52
56
  subtitle: 'Getting started with library',
53
57
  link: 'https://euidev.ecdevops.eu/eui-showcase-mobile-18.x/home',
54
- startIcon: 'book',
58
+ startIcon: 'call-outline',
55
59
  endIcon: 'link'
56
60
  },
57
61
  {
58
62
  title: 'EU Login',
59
63
  subtitle: 'User manual',
60
64
  link: 'https://webgate.ec.europa.eu/cas/help.html',
61
- startIcon: 'book',
65
+ startIcon: 'call-outline',
62
66
  endIcon: 'link'
63
67
  },
64
68
  {
65
69
  title: 'FAQ',
66
70
  subtitle: 'Frequently asked questions',
67
71
  link: 'https://ec.europa.eu/sustainable-finance-taxonomy/faq',
68
- startIcon: 'book',
72
+ startIcon: 'call-outline',
69
73
  endIcon: 'link'
70
74
  }
71
75
  ]
@@ -7,6 +7,6 @@
7
7
  </ion-header>
8
8
  <ion-content>
9
9
  <euim-about-content-loading>
10
- <euim-pdf-viewer url="assets/docs/pdf-test.pdf"></euim-pdf-viewer>
10
+ <euim-pdf-viewer url="assets/docs/sample-pdf-mobile.pdf"></euim-pdf-viewer>
11
11
  </euim-about-content-loading>
12
12
  </ion-content>
@@ -1,8 +1,10 @@
1
1
  import { Component } from '@angular/core';
2
+ import { EuimAboutModule, EuimPdfViewerModule, EuimToolbarComponentModule } from '@eui/mobile-core';
3
+ import { IonToolbar, IonHeader, IonContent } from '@ionic/angular/standalone';
4
+ import { TranslatePipe } from '@ngx-translate/core';
2
5
 
3
6
  @Component({
4
- templateUrl: './legal-notice.component.html'
7
+ templateUrl: './legal-notice.component.html',
8
+ imports: [TranslatePipe, IonToolbar, EuimAboutModule, EuimPdfViewerModule, IonHeader, IonContent, EuimToolbarComponentModule]
5
9
  })
6
- export class LegalNoticeComponent {
7
-
8
- }
10
+ export class LegalNoticeComponent {}
@@ -1,7 +1,10 @@
1
1
  import { Component } from '@angular/core';
2
+ import { EuimAboutModule, EuimToolbarComponentModule } from '@eui/mobile-core';
3
+ import { IonToolbar, IonHeader, IonContent } from '@ionic/angular/standalone';
4
+ import { TranslatePipe } from '@ngx-translate/core';
2
5
 
3
6
  @Component({
4
- templateUrl: './licence-details.component.html'
7
+ templateUrl: './licence-details.component.html',
8
+ imports: [TranslatePipe, IonToolbar, EuimAboutModule, IonHeader, IonContent, EuimToolbarComponentModule]
5
9
  })
6
- export class LicenceDetailsComponent {
7
- }
10
+ export class LicenceDetailsComponent {}
@@ -1,8 +1,12 @@
1
1
  import { Component } from '@angular/core';
2
2
  import { NavController } from '@ionic/angular';
3
+ import { EuimAboutModule, EuimToolbarComponentModule } from '@eui/mobile-core';
4
+ import { IonToolbar, IonHeader, IonContent } from '@ionic/angular/standalone';
5
+ import { TranslatePipe } from '@ngx-translate/core';
3
6
 
4
7
  @Component({
5
- templateUrl: './opensource-licences.component.html'
8
+ templateUrl: './opensource-licences.component.html',
9
+ imports: [TranslatePipe, IonToolbar, EuimAboutModule, IonHeader, IonContent, EuimToolbarComponentModule]
6
10
  })
7
11
  export class OpensourceLicencesComponent {
8
12
  constructor(
@@ -1,11 +1,50 @@
1
1
  <ion-header>
2
- <ion-toolbar color="branding">
3
- <euim-toolbar [hasSidebarTrigger]="true" [hasLanguageSelector]="true">
4
- <euim-toolbar-title>eUI mobile showcase</euim-toolbar-title>
2
+ <ion-toolbar color="light">
3
+ <euim-toolbar [hasSidebarTrigger]="true">
4
+ <euim-toolbar-title>Home</euim-toolbar-title>
5
+ <euim-toolbar-action-items>
6
+ <ion-button>
7
+ <ion-icon slot="icon-only" name="share-social-outline"></ion-icon>
8
+ </ion-button>
9
+ </euim-toolbar-action-items>
5
10
  </euim-toolbar>
6
11
  </ion-toolbar>
7
12
  </ion-header>
8
13
 
9
- <ion-content class="ion-padding">
10
- Welcome to eUI mobile app
14
+ <ion-content>
15
+ <ion-list>
16
+ @for (item of items; track $index;) {
17
+ @if (item.sectionTitle) {
18
+ <ion-list-header lines="full">
19
+ <ion-label>{{ item.sectionTitle }}</ion-label>
20
+ </ion-list-header>
21
+ }
22
+ @for (item of item.items; track item;) {
23
+ <ion-item button lines="none" [href]="item.url" target="_blank">
24
+ @if (item.icon) {
25
+ <euim-avatar slot="start">
26
+ <euim-avatar-icon>
27
+ <ion-icon [name]="item.icon"></ion-icon>
28
+ </euim-avatar-icon>
29
+ </euim-avatar>
30
+ }
31
+
32
+ <ion-label>
33
+ @if (item.title) {
34
+ <div euimLabel euimLabelTitle euimLabelTruncate>{{ item.title }}</div>
35
+ }
36
+ @if (item.subtitle) {
37
+ <div euimLabel euimLabelSubTitle>{{ item.subtitle }}</div>
38
+ }
39
+ </ion-label>
40
+ </ion-item>
41
+ }
42
+
43
+ @if (item.hasHelperText) {
44
+ <euim-helper-text>
45
+ Please refer to documentation above to learn more about eUI/Mobile library and get started with variety of examples
46
+ </euim-helper-text>
47
+ }
48
+ }
49
+ </ion-list>
11
50
  </ion-content>
@@ -1,9 +1,78 @@
1
1
  import { Component, Inject } from '@angular/core';
2
2
  import { CONFIG_TOKEN, EuiAppConfig } from '@eui/core';
3
+ import { EUIM_TOOLBAR, EUIM_AVATAR, EUIM_LABEL, EuimHelperTextComponent } from '@eui/mobile-core';
4
+ import { IonToolbar, IonHeader, IonContent, IonList, IonButton, IonIcon, IonListHeader } from '@ionic/angular/standalone';
3
5
 
4
6
  @Component({
5
7
  templateUrl: './home.component.html',
8
+ imports: [EUIM_TOOLBAR, EUIM_AVATAR, EUIM_LABEL, IonList, IonListHeader, IonButton, IonIcon, EuimHelperTextComponent, IonToolbar, IonHeader, IonContent],
6
9
  })
7
10
  export class HomeComponent {
8
11
  constructor(@Inject(CONFIG_TOKEN) private config: EuiAppConfig) {}
12
+
13
+ items: ListItems[] = [
14
+ {
15
+ sectionTitle: 'DOCUMENTATION',
16
+ items: [
17
+ {
18
+ title: 'Design System',
19
+ subtitle: 'Explore 90+ mobile components',
20
+ url: 'https://eui.ecdevops.eu/eui-showcase-ux-components-21.x/showcase-design-system/home',
21
+ icon: 'color-palette-outline',
22
+ },
23
+ { title: 'Components',
24
+ subtitle: 'Explore 90+ mobile components',
25
+ url: 'https://eui.ecdevops.eu/eui-showcase-mobile-20.x/home/components?segment=alphabetical',
26
+ icon: 'cube-outline',
27
+ },
28
+ { title: 'Patterns',
29
+ subtitle: 'Explore proven component combinations',
30
+ url: 'https://eui.ecdevops.eu/eui-showcase-mobile-patterns-20.x/home',
31
+ icon: 'library-outline',
32
+ },
33
+ { title: 'Applications',
34
+ subtitle: 'Get inspired of 15+ eUI/Mobile apps ',
35
+ url: 'https://eui.ecdevops.eu/eui-showcase-mobile-patterns-20.x/home/patterns?segment=apps',
36
+ icon: 'apps-outline',
37
+ },
38
+ { title: 'Plugins & Services',
39
+ subtitle: 'Native hardware API’s',
40
+ url: 'https://eui.ecdevops.eu/eui-showcase-mobile-20.x/home/plugins-services',
41
+ icon: 'hardware-chip-outline',
42
+ },
43
+ ],
44
+
45
+ hasHelperText: true,
46
+ },
47
+ {
48
+ sectionTitle: 'CONTACT US',
49
+ items: [
50
+ {
51
+ title: 'Teams',
52
+ subtitle: 'Official eUI support channel ',
53
+ url: 'https://teams.microsoft.com/l/channel/19%3a6db7a6cef52340eb91d67b8d75db2523%40thread.tacv2/%25E2%259D%2593%25E2%259D%2593%2520%2520HELPDESK%2520and%2520SUPPORT?groupId=fb6def72-c57b-4e8f-a82e-49be65d6e1f5&tenantId=b24c8b06-522c-46fe-9080-70926f8dddb1',
54
+ icon: 'people-outline',
55
+ },
56
+ {
57
+ title: 'Helpdesk',
58
+ subtitle: 'Send us a support ticket',
59
+ url: 'mailto:digit-eui-support@ec.europa.eu',
60
+ icon: 'mail-outline',
61
+ },
62
+ ],
63
+ },
64
+ ];
65
+ }
66
+
67
+ interface Item {
68
+ title: string;
69
+ subtitle: string;
70
+ icon?: string;
71
+ url?: string;
72
+ }
73
+
74
+ interface ListItems {
75
+ sectionTitle?: string;
76
+ items: Item[];
77
+ hasHelperText?: boolean;
9
78
  }
@@ -0,0 +1,6 @@
1
+ import { Routes } from '@angular/router';
2
+ import { HomeComponent } from './home.component';
3
+
4
+ export const HOME_ROUTES: Routes = [
5
+ { path: '', component: HomeComponent },
6
+ ];
@@ -1,11 +1,30 @@
1
1
  <ion-header>
2
- <ion-toolbar color="branding">
2
+ <ion-toolbar color="light">
3
3
  <euim-toolbar>
4
- <euim-toolbar-title>Module 1 - Page 1</euim-toolbar-title>
4
+ <euim-toolbar-title>Page One</euim-toolbar-title>
5
+ <euim-toolbar-action-items>
6
+ <ion-button>
7
+ <ion-icon slot="icon-only" name="ellipsis-vertical-outline"></ion-icon>
8
+ </ion-button>
9
+ </euim-toolbar-action-items>
5
10
  </euim-toolbar>
6
11
  </ion-toolbar>
12
+ <euim-header-details hasBorderBottom="false">
13
+ <div euimHeaderDetailsIcon>
14
+ <euim-avatar>
15
+ <euim-avatar-icon>
16
+ <ion-icon name="reader-outline"></ion-icon>
17
+ </euim-avatar-icon>
18
+ </euim-avatar>
19
+ </div>
20
+ <div euimHeaderDetailsTitle><strong>Page One</strong></div>
21
+ <div euimHeaderDetailsMeta>Sample content</div>
22
+ </euim-header-details>
7
23
  </ion-header>
8
-
9
- <ion-content class="ion-padding">
10
- page 1 content
24
+ <ion-content>
25
+ <euim-empty-list-placeholder euimMarginTopLarge
26
+ description="Replace with your own content"
27
+ icon="cube-outline"
28
+ message="Module 1 / Page One">
29
+ </euim-empty-list-placeholder>
11
30
  </ion-content>
@@ -1,8 +1,9 @@
1
1
  import { Component } from '@angular/core';
2
-
2
+ import { EUIM_TOOLBAR, EUIM_EMPTY_LIST_PLACEHOLDER, EUIM_HEADER_DETAILS, EUIM_AVATAR } from '@eui/mobile-core';
3
+ import { IonToolbar, IonHeader, IonContent, IonIcon, IonButton } from '@ionic/angular/standalone';
3
4
  @Component({
4
5
  selector: 'page-one',
5
- templateUrl: './page1.component.html'
6
+ templateUrl: './page1.component.html',
7
+ imports: [EUIM_TOOLBAR, EUIM_EMPTY_LIST_PLACEHOLDER, EUIM_HEADER_DETAILS, EUIM_AVATAR, IonIcon, IonButton, IonToolbar, IonHeader, IonContent],
6
8
  })
7
- export class Page1Component {
8
- }
9
+ export class Page1Component {}
@@ -1,11 +1,30 @@
1
1
  <ion-header>
2
- <ion-toolbar color="branding">
2
+ <ion-toolbar color="light">
3
3
  <euim-toolbar>
4
- <euim-toolbar-title>Module 1 - Page 2</euim-toolbar-title>
4
+ <euim-toolbar-title>Page Two</euim-toolbar-title>
5
+ <euim-toolbar-action-items>
6
+ <ion-button>
7
+ <ion-icon slot="icon-only" name="ellipsis-vertical-outline"></ion-icon>
8
+ </ion-button>
9
+ </euim-toolbar-action-items>
5
10
  </euim-toolbar>
6
11
  </ion-toolbar>
12
+ <euim-header-details hasBorderBottom="false">
13
+ <div euimHeaderDetailsIcon>
14
+ <euim-avatar>
15
+ <euim-avatar-icon>
16
+ <ion-icon name="reader-outline"></ion-icon>
17
+ </euim-avatar-icon>
18
+ </euim-avatar>
19
+ </div>
20
+ <div euimHeaderDetailsTitle><strong>Page Two</strong></div>
21
+ <div euimHeaderDetailsMeta>Sample content</div>
22
+ </euim-header-details>
7
23
  </ion-header>
8
-
9
- <ion-content class="ion-padding">
10
- page 2 content
24
+ <ion-content>
25
+ <euim-empty-list-placeholder euimMarginTopLarge
26
+ description="Replace with your own content"
27
+ icon="cube-outline"
28
+ message="Module 1 / Page Two">
29
+ </euim-empty-list-placeholder>
11
30
  </ion-content>
@@ -1,8 +1,10 @@
1
1
  import { Component } from '@angular/core';
2
+ import { EUIM_TOOLBAR, EUIM_EMPTY_LIST_PLACEHOLDER, EUIM_HEADER_DETAILS, EUIM_AVATAR } from '@eui/mobile-core';
3
+ import { IonToolbar, IonHeader, IonContent, IonIcon, IonButton } from '@ionic/angular/standalone';
2
4
 
3
5
  @Component({
4
6
  selector: 'page-two',
5
- templateUrl: './page2.component.html'
7
+ templateUrl: './page2.component.html',
8
+ imports: [EUIM_HEADER_DETAILS, EUIM_AVATAR, EUIM_TOOLBAR, EUIM_EMPTY_LIST_PLACEHOLDER, IonIcon, IonButton, IonToolbar, IonHeader, IonContent],
6
9
  })
7
- export class Page2Component {
8
- }
10
+ export class Page2Component {}
@@ -1,7 +1,7 @@
1
1
  <ion-header>
2
- <ion-toolbar color="branding">
2
+ <ion-toolbar color="light">
3
3
  <euim-toolbar [hasSidebarTrigger]="true">
4
- <euim-toolbar-title>Module 1 - home</euim-toolbar-title>
4
+ <euim-toolbar-title>Module 1</euim-toolbar-title>
5
5
  </euim-toolbar>
6
6
  </ion-toolbar>
7
7
  </ion-header>
@@ -1,15 +1,15 @@
1
1
  import { Component } from '@angular/core';
2
2
  import { NavController } from '@ionic/angular';
3
+ import { EuimToolbarComponentModule } from '@eui/mobile-core';
4
+ import { IonToolbar, IonHeader, IonContent, IonButton } from '@ionic/angular/standalone';
3
5
 
4
6
  @Component({
5
7
  templateUrl: './module1.component.html',
8
+ imports: [EuimToolbarComponentModule, IonToolbar, IonHeader, IonContent, IonButton],
6
9
  })
7
10
  export class Module1Component {
8
11
 
9
- constructor(
10
- private navCtrl: NavController,
11
- ) {
12
- }
12
+ constructor(private navCtrl: NavController) {}
13
13
 
14
14
  onNavigate(url: string) {
15
15
  this.navCtrl.navigateForward(url);