├── src ├── assets │ └── .gitkeep ├── app │ ├── shell │ │ ├── home │ │ │ ├── home.component.css │ │ │ ├── home.component.html │ │ │ └── home.component.ts │ │ ├── +state │ │ │ └── state.ts │ │ ├── navbar │ │ │ ├── navbar.component.html │ │ │ └── navbar.component.ts │ │ ├── sidebar │ │ │ ├── sidebar.component.css │ │ │ ├── sidebar.component.html │ │ │ └── sidebar.component.ts │ │ └── about │ │ │ ├── lazy │ │ │ └── lazy.component.ts │ │ │ └── about.component.ts │ ├── domains │ │ ├── ticketing │ │ │ ├── ui-common │ │ │ │ ├── flight-card │ │ │ │ │ ├── flight-card.component.css │ │ │ │ │ ├── flight-card.component.html │ │ │ │ │ └── flight-card.component.ts │ │ │ │ └── index.ts │ │ │ ├── feature-booking │ │ │ │ ├── flight-edit │ │ │ │ │ ├── flight-edit.component.css │ │ │ │ │ ├── flight-edit.component.html │ │ │ │ │ └── flight-edit.component.ts │ │ │ │ ├── flight-search │ │ │ │ │ ├── flight-search.component.css │ │ │ │ │ ├── flight-search.component.html │ │ │ │ │ └── flight-search.component.ts │ │ │ │ ├── index.ts │ │ │ │ ├── passenger-search │ │ │ │ │ ├── passenger-search.component.css │ │ │ │ │ ├── passenger-search.component.html │ │ │ │ │ └── passenger-search.component.ts │ │ │ │ ├── flight-booking.component.html │ │ │ │ ├── flight-booking.component.ts │ │ │ │ ├── utils │ │ │ │ │ └── booking.interceptor.ts │ │ │ │ ├── provider.ts │ │ │ │ └── flight-booking.routes.ts │ │ │ ├── feature-next-flight │ │ │ │ ├── index.ts │ │ │ │ └── next-flight.component.ts │ │ │ ├── feature-my-tickets │ │ │ │ ├── index.ts │ │ │ │ ├── ticket.service.ts │ │ │ │ ├── my-tickets.component.ts │ │ │ │ └── tickets.module.ts │ │ │ └── data │ │ │ │ ├── passenger.ts │ │ │ │ ├── index.ts │ │ │ │ ├── flight.ts │ │ │ │ ├── +state │ │ │ │ ├── selectors.ts │ │ │ │ ├── actions.ts │ │ │ │ ├── effects.ts │ │ │ │ └── reducers.ts │ │ │ │ └── flight.service.ts │ │ └── checkin │ │ │ ├── data │ │ │ ├── index.ts │ │ │ ├── hidden.service.ts │ │ │ └── checkin.service.ts │ │ │ └── feature-manage │ │ │ ├── feature-manage.component.css │ │ │ ├── index.ts │ │ │ ├── feature-manage.component.html │ │ │ └── feature-manage.component.ts │ ├── shared │ │ ├── util-auth │ │ │ ├── index.ts │ │ │ ├── auth.service.ts │ │ │ └── auth.interceptor.ts │ │ ├── util-logger │ │ │ ├── log-level.ts │ │ │ ├── color-config.ts │ │ │ ├── index.ts │ │ │ ├── log-formatter.ts │ │ │ ├── logger-config.ts │ │ │ ├── color.service.ts │ │ │ ├── log-appender.ts │ │ │ ├── features.ts │ │ │ ├── logger-module.ts │ │ │ ├── log.service.ts │ │ │ └── providers.ts │ │ └── util-common │ │ │ ├── index.ts │ │ │ ├── combine-environment-providers.ts │ │ │ ├── city.pipe.ts │ │ │ ├── city.validator.ts │ │ │ └── legacy.interceptor.ts │ ├── app.component.html │ ├── init.service.ts │ ├── logger.config.ts │ ├── app.component.css │ ├── app.routes.ts │ └── app.component.ts ├── favicon.ico ├── styles.css ├── index.html └── main.ts ├── .detective ├── hash ├── config.json └── log ├── update.sh ├── .vscode ├── extensions.json ├── launch.json ├── tasks.json └── settings.json ├── tsconfig.app.json ├── tsconfig.spec.json ├── .editorconfig ├── .gitignore ├── sheriff.config.ts ├── tsconfig.json ├── README.md ├── .eslintrc.json ├── package.json ├── angular.json └── deps.json /src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/shell/home/home.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.detective/hash: -------------------------------------------------------------------------------- 1 | e86440ef0b0e1366ad344ca1e66eab4093caccde, v1.3.0 -------------------------------------------------------------------------------- /src/app/domains/ticketing/ui-common/flight-card/flight-card.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/shell/home/home.component.html: -------------------------------------------------------------------------------- 1 |
Id: {{id}}
4 |ShowDetails: {{showDetails}}
5 | -------------------------------------------------------------------------------- /src/app/shared/util-common/index.ts: -------------------------------------------------------------------------------- 1 | export * from './city.pipe'; 2 | export * from './city.validator'; 3 | export * from './legacy.interceptor' 4 | export * from './combine-environment-providers' 5 | -------------------------------------------------------------------------------- /src/app/app.component.html: -------------------------------------------------------------------------------- 1 || Id | 6 |FirstName | 7 |Name | 8 |Bonus Miles | 9 |Status | 10 | 11 |
|---|---|---|---|---|
| {{p.id}} | 14 |{{p.firstName}} | 15 |{{p.name}} | 16 |{{p.bonusMiles}} | 17 |{{p.passengerStatus}} | 18 |
Flight-No.: #{{item.id}}
9 |Date: {{item.date | date:'dd.MM.yyyy HH:mm:ss'}}
10 |11 | 12 | 13 | Edit 14 |
15 |{{ basket | json }}
49 |
--------------------------------------------------------------------------------
/src/main.ts:
--------------------------------------------------------------------------------
1 | import { LayoutModule } from '@angular/cdk/layout';
2 | import { provideHttpClient, withInterceptors } from '@angular/common/http';
3 | import { importProvidersFrom } from '@angular/core';
4 | import { bootstrapApplication } from '@angular/platform-browser';
5 | import { provideAnimations } from '@angular/platform-browser/animations';
6 | import {
7 | PreloadAllModules,
8 | provideRouter,
9 | withPreloading,
10 | } from '@angular/router';
11 | import { provideEffects } from '@ngrx/effects';
12 | import { provideStore } from '@ngrx/store';
13 | import { provideStoreDevtools } from '@ngrx/store-devtools';
14 | import { reducer } from './app/shell/+state/state';
15 | import { AppComponent } from './app/app.component';
16 | import { APP_ROUTES } from './app/app.routes';
17 | import { authInterceptor } from './app/shared/util-auth';
18 | import { provideLogger } from './app/shared/util-logger';
19 | import { TicketsModule } from './app/domains/ticketing/feature-my-tickets';
20 | import { loggerConfig } from './app/logger.config';
21 |
22 | bootstrapApplication(AppComponent, {
23 | providers: [
24 | provideHttpClient(
25 | withInterceptors([authInterceptor]),
26 | ),
27 |
28 | provideRouter(
29 | APP_ROUTES,
30 | withPreloading(PreloadAllModules)
31 | ),
32 |
33 | provideLogger(loggerConfig),
34 |
35 | provideStore(reducer),
36 | provideEffects(),
37 | provideStoreDevtools({connectInZone: true}),
38 | provideAnimations(),
39 |
40 | importProvidersFrom(TicketsModule),
41 | importProvidersFrom(LayoutModule),
42 | ],
43 | });
44 |
--------------------------------------------------------------------------------
/src/app/shared/util-logger/log.service.ts:
--------------------------------------------------------------------------------
1 | import { inject, Injectable } from '@angular/core';
2 | import { LogAppender, LOG_APPENDERS } from './log-appender';
3 | import { LOG_FORMATTER } from './log-formatter';
4 | import { LogLevel } from './log-level';
5 | import { LoggerConfig } from './logger-config';
6 |
7 | @Injectable()
8 | export class LogService {
9 | private appenders = inject(LOG_APPENDERS);
10 | private formatter = inject(LOG_FORMATTER);
11 | private config = inject(LoggerConfig);
12 |
13 | private parentLogger = inject(LogService, {
14 | optional: true,
15 | skipSelf: true,
16 | });
17 |
18 | readonly categories: Record