@eui/cli 15.0.0-rc.18 → 15.0.0-rc.19
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.
- package/.version.properties +1 -1
- package/lib/skeletons/_angular/base/package.json +2 -2
- package/lib/skeletons/_angular/base-mobile/ionic.config.json +5 -0
- package/lib/skeletons/_angular/base-mobile/ngsw-config.json +33 -0
- package/lib/skeletons/_angular/base-mobile/package.json +4 -4
- package/lib/skeletons/_angular/base-mobile/src/app/app-routing.module.ts +17 -0
- package/lib/skeletons/_angular/base-mobile/src/app/app-starter.service.ts +73 -0
- package/lib/skeletons/_angular/base-mobile/src/app/app.component.html +9 -7
- package/lib/skeletons/_angular/base-mobile/src/app/app.component.ts +55 -0
- package/lib/skeletons/_angular/base-mobile/src/app/app.module.ts +44 -0
- package/lib/skeletons/_angular/base-mobile/src/app/core/components/.gitkeep +0 -0
- package/lib/skeletons/_angular/base-mobile/src/app/core/core.module.ts +2 -1
- package/lib/skeletons/_angular/base-mobile/src/app/core/reducers/index.ts +31 -0
- package/lib/skeletons/_angular/base-mobile/src/app/features/home/home-routing.module.ts +15 -0
- package/lib/skeletons/_angular/base-mobile/src/app/features/home/home.component.html +12 -6
- package/lib/skeletons/_angular/base-mobile/src/app/features/home/home.component.ts +11 -0
- package/lib/skeletons/_angular/base-mobile/src/app/features/home/home.module.ts +18 -0
- package/lib/skeletons/_angular/base-mobile/src/app/features/module1/components/page1/page1.component.html +9 -6
- package/lib/skeletons/_angular/base-mobile/src/app/features/module1/components/page2/page2.component.html +9 -6
- package/lib/skeletons/_angular/base-mobile/src/app/features/module1/module1.component.html +9 -6
- package/lib/skeletons/_angular/base-mobile/src/app/features/module2/module2.component.html +9 -6
- package/lib/skeletons/_angular/base-mobile/src/app/shared/testing/router.mock.ts +18 -0
- package/lib/skeletons/_angular/base-mobile/src/index.html +27 -0
- package/lib/skeletons/_angular/base-mobile/src/manifest.webmanifest +51 -0
- package/lib/skeletons/_angular/base-mobile/src/tsconfig.app.json +19 -0
- package/lib/skeletons/_angular/options/openid-jwt/package.json +2 -2
- package/lib/skeletons/web-symfony/myapp-web/package.json +2 -2
- package/package.json +1 -1
package/.version.properties
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
15.0.0-rc.
|
|
1
|
+
15.0.0-rc.19
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eui-angular-app",
|
|
3
|
-
"version": "15.0.0-rc.
|
|
3
|
+
"version": "15.0.0-rc.19",
|
|
4
4
|
"license": "EUPL-1.1",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"ng": "ng",
|
|
@@ -20,6 +20,6 @@
|
|
|
20
20
|
},
|
|
21
21
|
"private": true,
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@eui/deps-base": "15.0.0-rc.
|
|
23
|
+
"@eui/deps-base": "15.0.0-rc.19"
|
|
24
24
|
}
|
|
25
25
|
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "./node_modules/@angular/service-worker/config/schema.json",
|
|
3
|
+
"index": "/index.html",
|
|
4
|
+
"appData": {
|
|
5
|
+
"version": "1.1.2"
|
|
6
|
+
},
|
|
7
|
+
"assetGroups": [
|
|
8
|
+
{
|
|
9
|
+
"name": "app",
|
|
10
|
+
"installMode": "prefetch",
|
|
11
|
+
"resources": {
|
|
12
|
+
"files": [
|
|
13
|
+
"/favicon.ico",
|
|
14
|
+
"/index.html",
|
|
15
|
+
"/manifest.webmanifest",
|
|
16
|
+
"/*.css",
|
|
17
|
+
"/*.js"
|
|
18
|
+
]
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"name": "assets",
|
|
23
|
+
"installMode": "lazy",
|
|
24
|
+
"updateMode": "prefetch",
|
|
25
|
+
"resources": {
|
|
26
|
+
"files": [
|
|
27
|
+
"/assets/**",
|
|
28
|
+
"/*.(eot|svg|cur|jpg|png|webp|gif|otf|ttf|woff|woff2|ani)"
|
|
29
|
+
]
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
]
|
|
33
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eui-angular-app",
|
|
3
|
-
"version": "15.0.0-rc.
|
|
3
|
+
"version": "15.0.0-rc.19",
|
|
4
4
|
"license": "EUPL-1.1",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"ng": "ng",
|
|
@@ -20,9 +20,9 @@
|
|
|
20
20
|
},
|
|
21
21
|
"private": true,
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@eui/deps-base": "15.0.0-rc.
|
|
24
|
-
"@eui/mobile-core": "14.1.0-snapshot-
|
|
25
|
-
"@eui/mobile-styles": "14.1.0-snapshot-
|
|
23
|
+
"@eui/deps-base": "15.0.0-rc.19",
|
|
24
|
+
"@eui/mobile-core": "14.1.0-snapshot-1670348200908",
|
|
25
|
+
"@eui/mobile-styles": "14.1.0-snapshot-1670348200908"
|
|
26
26
|
},
|
|
27
27
|
"browserslist": [
|
|
28
28
|
"last 2 chrome versions",
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { RouterModule, Routes } from '@angular/router';
|
|
3
|
+
|
|
4
|
+
const routes: Routes = [
|
|
5
|
+
{ path: '', redirectTo: 'screen/home', pathMatch: 'full' },
|
|
6
|
+
{ path: 'index.jsp', redirectTo: 'screen/home' },
|
|
7
|
+
{ path: 'screen/home', loadChildren: () => import('./features/home/home.module').then(m => m.Module) },
|
|
8
|
+
{ path: 'screen/module1', loadChildren: () => import('./features/module1/module1.module').then(m => m.Module) },
|
|
9
|
+
{ path: 'screen/module2', loadChildren: () => import('./features/module2/module2.module').then(m => m.Module) },
|
|
10
|
+
];
|
|
11
|
+
|
|
12
|
+
@NgModule({
|
|
13
|
+
imports: [
|
|
14
|
+
RouterModule.forRoot(routes),
|
|
15
|
+
],
|
|
16
|
+
})
|
|
17
|
+
export class AppRoutingModule {}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import {
|
|
3
|
+
CONFIG_TOKEN,
|
|
4
|
+
UserService,
|
|
5
|
+
EuiAppConfig,
|
|
6
|
+
UserDetails,
|
|
7
|
+
UserPreferences,
|
|
8
|
+
I18nService,
|
|
9
|
+
} from '@eui/core';
|
|
10
|
+
import { HttpClient } from '@angular/common/http';
|
|
11
|
+
import { Observable, of, zip, catchError } from 'rxjs';
|
|
12
|
+
import { switchMap } from 'rxjs/operators';
|
|
13
|
+
|
|
14
|
+
@Injectable({
|
|
15
|
+
providedIn: 'root',
|
|
16
|
+
})
|
|
17
|
+
export class AppStarterService {
|
|
18
|
+
defaultUserPreferences: UserPreferences;
|
|
19
|
+
|
|
20
|
+
constructor(
|
|
21
|
+
protected userService: UserService,
|
|
22
|
+
protected i18nService: I18nService,
|
|
23
|
+
@Inject(CONFIG_TOKEN) private config: EuiAppConfig,
|
|
24
|
+
protected http: HttpClient,
|
|
25
|
+
) {
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
start(): Observable<any> {
|
|
29
|
+
|
|
30
|
+
return zip(
|
|
31
|
+
this.initUserService().pipe(
|
|
32
|
+
switchMap((userStatus) => {
|
|
33
|
+
return this.i18nService.init();
|
|
34
|
+
}),
|
|
35
|
+
),
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Fetches user details,
|
|
41
|
+
* create user: UserState object
|
|
42
|
+
* then initialise to the UserService on run time
|
|
43
|
+
*/
|
|
44
|
+
initUserService(): Observable<any> {
|
|
45
|
+
return zip(
|
|
46
|
+
this.fetchUserDetails(),
|
|
47
|
+
).pipe(
|
|
48
|
+
switchMap(([userDetails]) => {
|
|
49
|
+
return this.userService.init(userDetails);
|
|
50
|
+
}),
|
|
51
|
+
catchError((err) => {
|
|
52
|
+
return of(null);
|
|
53
|
+
})
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Fetches user details
|
|
59
|
+
*/
|
|
60
|
+
private fetchUserDetails(): Observable<UserDetails> {
|
|
61
|
+
// const url = this.config.modules.your_custom_module.your_custom_endpoint
|
|
62
|
+
const moduleCoreApi = this.config.modules.core;
|
|
63
|
+
const url = `${moduleCoreApi.base}${moduleCoreApi.userDetails}`;
|
|
64
|
+
const user = { userId: 'anonymous' };
|
|
65
|
+
|
|
66
|
+
if (!url) {
|
|
67
|
+
return of(user);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
return this.http.get<UserDetails>(url)
|
|
71
|
+
.pipe(catchError(err => { return of(null); }));
|
|
72
|
+
}
|
|
73
|
+
}
|
|
@@ -3,23 +3,25 @@
|
|
|
3
3
|
<euim-app-sidebar-header>
|
|
4
4
|
<euim-user-profile>
|
|
5
5
|
<euim-user-profile-avatar>
|
|
6
|
-
<euim-avatar-icon color="
|
|
7
|
-
<ion-icon icon="person"></ion-icon>
|
|
6
|
+
<euim-avatar-icon color="primary" size="m" fill="solid">
|
|
7
|
+
<ion-icon icon="person-circle"></ion-icon>
|
|
8
8
|
</euim-avatar-icon>
|
|
9
9
|
</euim-user-profile-avatar>
|
|
10
10
|
<euim-user-profile-infos >
|
|
11
11
|
<euim-user-profile-infos-item>
|
|
12
|
-
<p euimLabel
|
|
12
|
+
<p euimLabel></p>
|
|
13
|
+
</euim-user-profile-infos-item>
|
|
14
|
+
<euim-user-profile-infos-item>
|
|
15
|
+
<p euimLabel></p>
|
|
13
16
|
</euim-user-profile-infos-item>
|
|
14
17
|
</euim-user-profile-infos>
|
|
15
18
|
<euim-user-profile-action>
|
|
16
|
-
<
|
|
17
|
-
<ion-icon name="settings-sharp" ></ion-icon>
|
|
18
|
-
</ion-button>
|
|
19
|
+
<euim-language-selector euimPrimary></euim-language-selector>
|
|
19
20
|
</euim-user-profile-action>
|
|
20
21
|
</euim-user-profile>
|
|
21
22
|
</euim-app-sidebar-header>
|
|
22
23
|
|
|
23
|
-
<euim-app-sidebar-menu [items]="sidebarItems"></euim-app-sidebar-menu>
|
|
24
|
+
<euim-app-sidebar-menu [items]="sidebarItems" (itemClick)="onItemClick($event)"></euim-app-sidebar-menu>
|
|
25
|
+
|
|
24
26
|
</euim-app-sidebar>
|
|
25
27
|
</euim-app>
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { Component, OnDestroy, OnInit } from '@angular/core';
|
|
2
|
+
import { Store } from '@ngrx/store';
|
|
3
|
+
import {
|
|
4
|
+
getUserState,
|
|
5
|
+
UserState,
|
|
6
|
+
} from '@eui/core';
|
|
7
|
+
import { Observable, Subscription } from 'rxjs';
|
|
8
|
+
import { EuimMenuItem } from '@eui/mobile-core';
|
|
9
|
+
|
|
10
|
+
@Component({
|
|
11
|
+
selector: 'app-root',
|
|
12
|
+
templateUrl: './app.component.html',
|
|
13
|
+
})
|
|
14
|
+
export class AppComponent implements OnInit, OnDestroy {
|
|
15
|
+
userInfos: UserState;
|
|
16
|
+
// Observe state changes
|
|
17
|
+
userState: Observable<UserState>;
|
|
18
|
+
// an array to keep all subscriptions and easily unsubscribe
|
|
19
|
+
subs: Subscription[] = [];
|
|
20
|
+
|
|
21
|
+
sidebarItems = [
|
|
22
|
+
{ label: 'Home', url: 'screen/home', iconClass: 'eui-icon-home' },
|
|
23
|
+
{ label: 'Module 1', url: 'screen/module1', iconClass: 'eui-icon-work', children: [
|
|
24
|
+
{ label: 'page 1', url: 'screen/module1/page1' },
|
|
25
|
+
{ label: 'page 2', url: 'screen/module1/page2' },
|
|
26
|
+
] },
|
|
27
|
+
{ label: 'Module 2', url: 'screen/module2', iconClass: 'eui-icon-work' },
|
|
28
|
+
];
|
|
29
|
+
notificationItems = [
|
|
30
|
+
{ label: 'Title label 1', subLabel: 'Subtitle label' },
|
|
31
|
+
{ label: 'Title label 2', subLabel: 'Subtitle label' },
|
|
32
|
+
{ label: 'Title label 3', subLabel: 'Subtitle label' },
|
|
33
|
+
{ label: 'Title label 4', subLabel: 'Subtitle label' },
|
|
34
|
+
];
|
|
35
|
+
|
|
36
|
+
constructor(
|
|
37
|
+
private store: Store<any>,
|
|
38
|
+
) {
|
|
39
|
+
this.userState = this.store.select(getUserState);
|
|
40
|
+
this.subs.push(this.userState.subscribe((user: UserState) => {
|
|
41
|
+
this.userInfos = { ...user };
|
|
42
|
+
}));
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
ngOnInit() {
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
ngOnDestroy() {
|
|
49
|
+
this.subs.forEach((s: Subscription) => s.unsubscribe());
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
onItemClick(item: EuimMenuItem) {
|
|
53
|
+
// Handle any menu item click
|
|
54
|
+
}
|
|
55
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { BrowserModule } from '@angular/platform-browser';
|
|
2
|
+
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
|
3
|
+
import { APP_INITIALIZER, NgModule } from '@angular/core';
|
|
4
|
+
|
|
5
|
+
import { AppRoutingModule } from './app-routing.module';
|
|
6
|
+
import { AppComponent } from './app.component';
|
|
7
|
+
import { CoreModule } from './core/core.module';
|
|
8
|
+
import { AppStarterService } from './app-starter.service';
|
|
9
|
+
import { ServiceWorkerModule } from '@angular/service-worker';
|
|
10
|
+
|
|
11
|
+
@NgModule({
|
|
12
|
+
declarations: [
|
|
13
|
+
AppComponent,
|
|
14
|
+
],
|
|
15
|
+
imports: [
|
|
16
|
+
BrowserModule,
|
|
17
|
+
BrowserAnimationsModule,
|
|
18
|
+
CoreModule,
|
|
19
|
+
AppRoutingModule,
|
|
20
|
+
ServiceWorkerModule.register('ngsw-worker.js', {
|
|
21
|
+
enabled: false,
|
|
22
|
+
// Register the ServiceWorker as soon as the app is stable
|
|
23
|
+
// or after 30 seconds (whichever comes first).
|
|
24
|
+
registrationStrategy: 'registerWhenStable:30000'
|
|
25
|
+
}),
|
|
26
|
+
],
|
|
27
|
+
providers: [
|
|
28
|
+
AppStarterService,
|
|
29
|
+
{
|
|
30
|
+
provide: APP_INITIALIZER,
|
|
31
|
+
useFactory: (appStarterService) => {
|
|
32
|
+
return () => new Promise<void>((resolve) => {
|
|
33
|
+
appStarterService.start().subscribe(() => resolve());
|
|
34
|
+
});
|
|
35
|
+
},
|
|
36
|
+
deps: [AppStarterService],
|
|
37
|
+
multi: true
|
|
38
|
+
},
|
|
39
|
+
],
|
|
40
|
+
bootstrap: [
|
|
41
|
+
AppComponent,
|
|
42
|
+
],
|
|
43
|
+
})
|
|
44
|
+
export class AppModule {}
|
|
File without changes
|
|
@@ -4,7 +4,7 @@ import { StoreModule } from '@ngrx/store';
|
|
|
4
4
|
import { EffectsModule } from '@ngrx/effects';
|
|
5
5
|
import { StoreDevtoolsModule } from '@ngrx/store-devtools';
|
|
6
6
|
|
|
7
|
-
import { HTTP_INTERCEPTORS } from '@angular/common/http';
|
|
7
|
+
import { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';
|
|
8
8
|
|
|
9
9
|
import { IonicModule } from '@ionic/angular';
|
|
10
10
|
|
|
@@ -28,6 +28,7 @@ import { SharedModule } from '@shared/shared.module';
|
|
|
28
28
|
|
|
29
29
|
@NgModule({
|
|
30
30
|
imports: [
|
|
31
|
+
HttpClientModule,
|
|
31
32
|
SharedModule,
|
|
32
33
|
EuiCoreModule.forRoot(),
|
|
33
34
|
EffectsModule.forRoot([...CoreModuleEffects]),
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
import { MetaReducer } from '@ngrx/store';
|
|
3
|
+
import { storeFreeze } from 'ngrx-store-freeze';
|
|
4
|
+
import { reducers as coreReducers, CoreState, getAppState, localStorageSync } from '@eui/core';
|
|
5
|
+
|
|
6
|
+
import { environment } from '../../../environments/environment';
|
|
7
|
+
|
|
8
|
+
export const REDUCER_TOKEN = new InjectionToken<any>('Registered Reducers');
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Define here your app state
|
|
12
|
+
*
|
|
13
|
+
* [IMPORTANT]
|
|
14
|
+
* There are some **reserved** slice of the state
|
|
15
|
+
* that you **can not** use in your application ==> app |user | notification
|
|
16
|
+
*/
|
|
17
|
+
// eslint-disable-next-line
|
|
18
|
+
export interface AppState extends CoreState {
|
|
19
|
+
// [key: string]: fromTaskManager.State | any;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Define here the reducers of your app
|
|
24
|
+
*/
|
|
25
|
+
const rootReducer = Object.assign({}, coreReducers, {
|
|
26
|
+
// [fromTaskManager.namespace]: fromTaskManager.reducers,
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
export const getReducers = () => rootReducer;
|
|
30
|
+
|
|
31
|
+
export const metaReducers: MetaReducer<AppState>[] = !environment.production ? [localStorageSync, storeFreeze] : [localStorageSync];
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { RouterModule, Routes } from '@angular/router';
|
|
3
|
+
|
|
4
|
+
import { HomeComponent } from './home.component';
|
|
5
|
+
|
|
6
|
+
const routes: Routes = [
|
|
7
|
+
{ path: '', component: HomeComponent },
|
|
8
|
+
];
|
|
9
|
+
|
|
10
|
+
@NgModule({
|
|
11
|
+
imports: [
|
|
12
|
+
RouterModule.forChild(routes)
|
|
13
|
+
],
|
|
14
|
+
})
|
|
15
|
+
export class HomeRoutingModule {}
|
|
@@ -1,8 +1,14 @@
|
|
|
1
|
-
<
|
|
2
|
-
<
|
|
3
|
-
<euim-
|
|
4
|
-
|
|
1
|
+
<ion-header>
|
|
2
|
+
<ion-toolbar color="primary">
|
|
3
|
+
<euim-toolbar [hasSidebarTrigger]="true" [hasLanguageSelector]="true">
|
|
4
|
+
<euim-toolbar-title>eUI mobile showcase</euim-toolbar-title>
|
|
5
|
+
</euim-toolbar>
|
|
6
|
+
</ion-toolbar>
|
|
7
|
+
</ion-header>
|
|
5
8
|
|
|
6
|
-
|
|
9
|
+
<ion-content>
|
|
10
|
+
<div class="ion-padding">
|
|
11
|
+
Welcome to eUI mobile app
|
|
12
|
+
</div>
|
|
7
13
|
|
|
8
|
-
</
|
|
14
|
+
</ion-content>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Component, Inject } from '@angular/core';
|
|
2
|
+
import { CONFIG_TOKEN, EuiAppConfig } from '@eui/core';
|
|
3
|
+
|
|
4
|
+
@Component({
|
|
5
|
+
templateUrl: './home.component.html',
|
|
6
|
+
})
|
|
7
|
+
export class HomeComponent {
|
|
8
|
+
constructor(@Inject(CONFIG_TOKEN) private config: EuiAppConfig) {
|
|
9
|
+
console.log(config);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
|
|
3
|
+
import { SharedModule } from '../../shared/shared.module';
|
|
4
|
+
|
|
5
|
+
import { HomeRoutingModule } from './home-routing.module';
|
|
6
|
+
|
|
7
|
+
import { HomeComponent } from './home.component';
|
|
8
|
+
|
|
9
|
+
@NgModule({
|
|
10
|
+
imports: [
|
|
11
|
+
SharedModule,
|
|
12
|
+
HomeRoutingModule,
|
|
13
|
+
],
|
|
14
|
+
declarations: [
|
|
15
|
+
HomeComponent,
|
|
16
|
+
],
|
|
17
|
+
})
|
|
18
|
+
export class Module {}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
<
|
|
2
|
-
<
|
|
3
|
-
<euim-
|
|
4
|
-
|
|
1
|
+
<ion-header>
|
|
2
|
+
<ion-toolbar color="primary">
|
|
3
|
+
<euim-toolbar backButtonDefaultHref="/screen/module1">
|
|
4
|
+
<euim-toolbar-title>Module 1 - Page 1</euim-toolbar-title>
|
|
5
|
+
</euim-toolbar>
|
|
6
|
+
</ion-toolbar>
|
|
7
|
+
</ion-header>
|
|
5
8
|
|
|
9
|
+
<ion-content class="ion-padding">
|
|
6
10
|
page content
|
|
7
|
-
|
|
8
|
-
</euim-page>
|
|
11
|
+
</ion-content>
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
<
|
|
2
|
-
<
|
|
3
|
-
<euim-
|
|
4
|
-
|
|
1
|
+
<ion-header>
|
|
2
|
+
<ion-toolbar color="primary">
|
|
3
|
+
<euim-toolbar backButtonDefaultHref="/screen/module1">
|
|
4
|
+
<euim-toolbar-title>Module 1 - Page 2</euim-toolbar-title>
|
|
5
|
+
</euim-toolbar>
|
|
6
|
+
</ion-toolbar>
|
|
7
|
+
</ion-header>
|
|
5
8
|
|
|
9
|
+
<ion-content class="ion-padding">
|
|
6
10
|
page content
|
|
7
|
-
|
|
8
|
-
</euim-page>
|
|
11
|
+
</ion-content>
|
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
<
|
|
2
|
-
<
|
|
3
|
-
<euim-
|
|
4
|
-
|
|
1
|
+
<ion-header>
|
|
2
|
+
<ion-toolbar color="primary">
|
|
3
|
+
<euim-toolbar [hasSidebarTrigger]="true">
|
|
4
|
+
<euim-toolbar-title>Module 2 - home</euim-toolbar-title>
|
|
5
|
+
</euim-toolbar>
|
|
6
|
+
</ion-toolbar>
|
|
7
|
+
</ion-header>
|
|
5
8
|
|
|
9
|
+
<ion-content class="ion-padding">
|
|
6
10
|
page content
|
|
7
|
-
|
|
8
11
|
<br><br>
|
|
9
12
|
<a (click)="onNavigate('/screen/module1/page1')">Goto page 1</a>
|
|
10
13
|
<br><br>
|
|
11
14
|
<a (click)="onNavigate('/screen/module1/page2')">Goto page 2</a>
|
|
12
|
-
</
|
|
15
|
+
</ion-content>
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
<
|
|
2
|
-
<
|
|
3
|
-
<euim-
|
|
4
|
-
|
|
1
|
+
<ion-header>
|
|
2
|
+
<ion-toolbar color="primary">
|
|
3
|
+
<euim-toolbar [hasSidebarTrigger]="true">
|
|
4
|
+
<euim-toolbar-title>Module 2 - home</euim-toolbar-title>
|
|
5
|
+
</euim-toolbar>
|
|
6
|
+
</ion-toolbar>
|
|
7
|
+
</ion-header>
|
|
5
8
|
|
|
9
|
+
<ion-content class="ion-padding">
|
|
6
10
|
page content
|
|
7
|
-
|
|
8
|
-
</euim-page>
|
|
11
|
+
</ion-content>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { NavigationEnd } from '@angular/router';
|
|
2
|
+
import { Observable } from 'rxjs/Observable';
|
|
3
|
+
|
|
4
|
+
export class RouterMock {
|
|
5
|
+
routerState = { root: '' };
|
|
6
|
+
public navigationEnd = new NavigationEnd(0, 'http://url1', 'http://url2');
|
|
7
|
+
public events = new Observable(observer => {
|
|
8
|
+
observer.next(this.navigationEnd);
|
|
9
|
+
observer.complete();
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
constructor() {}
|
|
13
|
+
|
|
14
|
+
createUrlTree() {}
|
|
15
|
+
|
|
16
|
+
serializeUrl() {}
|
|
17
|
+
|
|
18
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html>
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="utf-8">
|
|
6
|
+
<title>Application name</title>
|
|
7
|
+
<base href="/">
|
|
8
|
+
<meta name="viewport" content="viewport-fit=cover, width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
|
|
9
|
+
<meta name="format-detection" content="telephone=no"/>
|
|
10
|
+
<meta name="msapplication-tap-highlight" content="no"/>
|
|
11
|
+
<link rel="manifest" href="manifest.webmanifest">
|
|
12
|
+
|
|
13
|
+
<link rel="icon" type="image/x-icon" href="favicon.ico">
|
|
14
|
+
|
|
15
|
+
<meta name="apple-mobile-web-app-capable" content="yes"/>
|
|
16
|
+
<meta name="apple-mobile-web-app-status-bar-style" content="black"/>
|
|
17
|
+
</head>
|
|
18
|
+
|
|
19
|
+
<body>
|
|
20
|
+
<app-root>
|
|
21
|
+
<div id="loader-wrapper">
|
|
22
|
+
<div id="loader"></div>
|
|
23
|
+
</div>
|
|
24
|
+
</app-root>
|
|
25
|
+
</body>
|
|
26
|
+
|
|
27
|
+
</html>
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "app",
|
|
3
|
+
"short_name": "app",
|
|
4
|
+
"theme_color": "#1976d2",
|
|
5
|
+
"background_color": "#fafafa",
|
|
6
|
+
"display": "standalone",
|
|
7
|
+
"scope": "./",
|
|
8
|
+
"start_url": "./",
|
|
9
|
+
"icons": [
|
|
10
|
+
{
|
|
11
|
+
"src": "assets/icons/icon-72x72.png",
|
|
12
|
+
"sizes": "72x72",
|
|
13
|
+
"type": "image/png"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"src": "assets/icons/icon-96x96.png",
|
|
17
|
+
"sizes": "96x96",
|
|
18
|
+
"type": "image/png"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"src": "assets/icons/icon-128x128.png",
|
|
22
|
+
"sizes": "128x128",
|
|
23
|
+
"type": "image/png"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"src": "assets/icons/icon-144x144.png",
|
|
27
|
+
"sizes": "144x144",
|
|
28
|
+
"type": "image/png"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"src": "assets/icons/icon-152x152.png",
|
|
32
|
+
"sizes": "152x152",
|
|
33
|
+
"type": "image/png"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"src": "assets/icons/icon-192x192.png",
|
|
37
|
+
"sizes": "192x192",
|
|
38
|
+
"type": "image/png"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"src": "assets/icons/icon-384x384.png",
|
|
42
|
+
"sizes": "384x384",
|
|
43
|
+
"type": "image/png"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"src": "assets/icons/icon-512x512.png",
|
|
47
|
+
"sizes": "512x512",
|
|
48
|
+
"type": "image/png"
|
|
49
|
+
}
|
|
50
|
+
]
|
|
51
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": "../tsconfig.json",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"outDir": "../out-tsc/app",
|
|
5
|
+
"types": []
|
|
6
|
+
},
|
|
7
|
+
"angularCompilerOptions": {
|
|
8
|
+
"annotateForClosureCompiler": true,
|
|
9
|
+
"strictTemplates": false,
|
|
10
|
+
"strictInjectionParameters": true,
|
|
11
|
+
},
|
|
12
|
+
"exclude": [
|
|
13
|
+
"test.ts",
|
|
14
|
+
"**/*.spec.ts",
|
|
15
|
+
"app/shared/testing/router.mock.ts",
|
|
16
|
+
"environments/environment.prod.ts",
|
|
17
|
+
"environments/environment.dev.ts"
|
|
18
|
+
]
|
|
19
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eui-angular-app",
|
|
3
|
-
"version": "15.0.0-rc.
|
|
3
|
+
"version": "15.0.0-rc.19",
|
|
4
4
|
"license": "EUPL-1.1",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"ng": "ng",
|
|
@@ -18,6 +18,6 @@
|
|
|
18
18
|
},
|
|
19
19
|
"private": true,
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@eui/deps-base": "15.0.0-rc.
|
|
21
|
+
"@eui/deps-base": "15.0.0-rc.19"
|
|
22
22
|
}
|
|
23
23
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eui-angular-app",
|
|
3
|
-
"version": "15.0.0-rc.
|
|
3
|
+
"version": "15.0.0-rc.19",
|
|
4
4
|
"license": "EUPL-1.1",
|
|
5
5
|
"description": "eUI JEE Symfony app scripts",
|
|
6
6
|
"scripts": {
|
|
@@ -19,6 +19,6 @@
|
|
|
19
19
|
},
|
|
20
20
|
"private": true,
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@eui/deps-base": "15.0.0-rc.
|
|
22
|
+
"@eui/deps-base": "15.0.0-rc.19"
|
|
23
23
|
}
|
|
24
24
|
}
|