juice-shop

Форк
0
/
app.module.ts 
322 строки · 13.5 Кб
1
/*
2
 * Copyright (c) 2014-2024 Bjoern Kimminich & the OWASP Juice Shop contributors.
3
 * SPDX-License-Identifier: MIT
4
 */
5

6
import { BrowserModule } from '@angular/platform-browser'
7
import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'
8
import { HTTP_INTERCEPTORS, HttpClient, HttpClientModule } from '@angular/common/http'
9
import { CookieModule, CookieService } from 'ngx-cookie'
10
import { ReactiveFormsModule, FormsModule } from '@angular/forms'
11
import { Routing } from './app.routing'
12
import { OverlayContainer } from '@angular/cdk/overlay'
13
import { TranslateLoader, TranslateModule } from '@ngx-translate/core'
14
import { TranslateHttpLoader } from '@ngx-translate/http-loader'
15
import { QRCodeModule } from 'anuglar2-qrcode'
16
import { ClipboardModule } from 'ngx-clipboard'
17
import { FileUploadModule } from 'ng2-file-upload'
18
import { SlideshowModule } from 'ng-simple-slideshow'
19
import { AppComponent } from './app.component'
20
import { AboutComponent } from './about/about.component'
21
import { AdministrationComponent } from './administration/administration.component'
22
import { BasketComponent } from './basket/basket.component'
23
import { LoginComponent } from './login/login.component'
24
import { NavbarComponent } from './navbar/navbar.component'
25
import { WelcomeComponent } from './welcome/welcome.component'
26
import { WelcomeBannerComponent } from './welcome-banner/welcome-banner.component'
27
import { SearchResultComponent } from './search-result/search-result.component'
28
import { ForgotPasswordComponent } from './forgot-password/forgot-password.component'
29
import { RegisterComponent } from './register/register.component'
30
import { ContactComponent } from './contact/contact.component'
31
import { ChangePasswordComponent } from './change-password/change-password.component'
32
import { ProductDetailsComponent } from './product-details/product-details.component'
33
import { ComplaintComponent } from './complaint/complaint.component'
34
import { ChatbotComponent } from './chatbot/chatbot.component'
35
import { TrackResultComponent } from './track-result/track-result.component'
36
import { RecycleComponent } from './recycle/recycle.component'
37
import { QrCodeComponent } from './qr-code/qr-code.component'
38
import { UserDetailsComponent } from './user-details/user-details.component'
39
import { ServerStartedNotificationComponent } from './server-started-notification/server-started-notification.component'
40
import {
41
  ChallengeSolvedNotificationComponent
42
} from './challenge-solved-notification/challenge-solved-notification.component'
43
import { OAuthComponent } from './oauth/oauth.component'
44
import { NFTUnlockComponent } from './nft-unlock/nft-unlock.component'
45
import { TokenSaleComponent } from './token-sale/token-sale.component'
46
import { ProductReviewEditComponent } from './product-review-edit/product-review-edit.component'
47
import { TwoFactorAuthEnterComponent } from './two-factor-auth-enter/two-factor-auth-enter.component'
48
import { PrivacySecurityComponent } from './privacy-security/privacy-security.component'
49
import { ErrorPageComponent } from './error-page/error-page.component'
50
import { NgMatSearchBarModule } from 'ng-mat-search-bar'
51
import { RequestInterceptor } from './Services/request.interceptor'
52
import { ProductService } from './Services/product.service'
53
import { ConfigurationService } from './Services/configuration.service'
54
import { AdministrationService } from './Services/administration.service'
55
import { SecurityQuestionService } from './Services/security-question.service'
56
import { UserService } from './Services/user.service'
57
import { SecurityAnswerService } from './Services/security-answer.service'
58
import { FeedbackService } from './Services/feedback.service'
59
import { CaptchaService } from './Services/captcha.service'
60
import { WindowRefService } from './Services/window-ref.service'
61
import { ProductReviewService } from './Services/product-review.service'
62
import { ComplaintService } from './Services/complaint.service'
63
import { ChatbotService } from './Services/chatbot.service'
64
import { TrackOrderService } from './Services/track-order.service'
65
import { RecycleService } from './Services/recycle.service'
66
import { BasketService } from './Services/basket.service'
67
import { ChallengeService } from './Services/challenge.service'
68
import { DataSubjectService } from './Services/data-subject.service'
69
import { ImageCaptchaService } from './Services/image-captcha.service'
70
import { KeysService } from './Services/keys.service'
71
import { AddressService } from './Services/address.service'
72
import { QuantityService } from './Services/quantity.service'
73
import { FlexLayoutModule } from '@angular/flex-layout'
74
import { BrowserAnimationsModule } from '@angular/platform-browser/animations'
75
import { MatToolbarModule } from '@angular/material/toolbar'
76
import { MatIconModule } from '@angular/material/icon'
77
import { MatFormFieldModule } from '@angular/material/form-field'
78
import { MatSelectModule } from '@angular/material/select'
79
import { MatButtonModule } from '@angular/material/button'
80
import { MatSidenavModule } from '@angular/material/sidenav'
81
import { MatTableModule } from '@angular/material/table'
82
import { MatPaginatorModule } from '@angular/material/paginator'
83
import { MatCardModule } from '@angular/material/card'
84
import { MatInputModule } from '@angular/material/input'
85
import { MatCheckboxModule } from '@angular/material/checkbox'
86
import { MatDialogModule } from '@angular/material/dialog'
87
import { MatDividerModule } from '@angular/material/divider'
88
import { MatDatepickerModule } from '@angular/material/datepicker'
89
import { MatNativeDateModule } from '@angular/material/core'
90
import { MatExpansionModule } from '@angular/material/expansion'
91
import { MatProgressBarModule } from '@angular/material/progress-bar'
92
import { MatTooltipModule } from '@angular/material/tooltip'
93
import { MatMenuModule } from '@angular/material/menu'
94
import { MatListModule } from '@angular/material/list'
95
import { SidenavComponent } from './sidenav/sidenav.component'
96
import { MatButtonToggleModule } from '@angular/material/button-toggle'
97
import { LayoutModule } from '@angular/cdk/layout'
98
import { MatGridListModule } from '@angular/material/grid-list'
99
import { MatSnackBarModule } from '@angular/material/snack-bar'
100
import { MatRadioModule } from '@angular/material/radio'
101
import { MatBadgeModule } from '@angular/material/badge'
102
import { HighlightModule, HIGHLIGHT_OPTIONS } from 'ngx-highlightjs'
103
import { ScoreBoardModule } from './score-board/score-board.module'
104
import { TwoFactorAuthComponent } from './two-factor-auth/two-factor-auth.component'
105
import { DataExportComponent } from './data-export/data-export.component'
106
import { LastLoginIpComponent } from './last-login-ip/last-login-ip.component'
107
import { PrivacyPolicyComponent } from './privacy-policy/privacy-policy.component'
108
import { AddressCreateComponent } from './address-create/address-create.component'
109
import { AddressSelectComponent } from './address-select/address-select.component'
110
import { PaymentService } from './Services/payment.service'
111
import { PaymentComponent } from './payment/payment.component'
112
import { PaymentMethodComponent } from './payment-method/payment-method.component'
113
import { SavedPaymentMethodsComponent } from './saved-payment-methods/saved-payment-methods.component'
114
import { AccountingComponent } from './accounting/accounting.component'
115
import { OrderSummaryComponent } from './order-summary/order-summary.component'
116
import { PurchaseBasketComponent } from './purchase-basket/purchase-basket.component'
117
import { AddressComponent } from './address/address.component'
118
import { SavedAddressComponent } from './saved-address/saved-address.component'
119
import { ChallengeStatusBadgeComponent } from './challenge-status-badge/challenge-status-badge.component'
120
import { OrderCompletionComponent } from './order-completion/order-completion.component'
121
import { WalletComponent } from './wallet/wallet.component'
122
import { WalletService } from './Services/wallet.service'
123
import { OrderHistoryComponent } from './order-history/order-history.component'
124
import { OrderHistoryService } from './Services/order-history.service'
125
import { DeliveryMethodComponent } from './delivery-method/delivery-method.component'
126
import { DeliveryService } from './Services/delivery.service'
127
import { PhotoWallComponent } from './photo-wall/photo-wall.component'
128
import { PhotoWallService } from './Services/photo-wall.service'
129
import { DeluxeUserComponent } from './deluxe-user/deluxe-user.component'
130
import { AccountingGuard, AdminGuard, DeluxeGuard, LoginGuard } from './app.guard'
131
import { MatPasswordStrengthModule } from '@angular-material-extensions/password-strength'
132
import { MatSlideToggleModule } from '@angular/material/slide-toggle'
133
import { FeedbackDetailsComponent } from './feedback-details/feedback-details.component'
134
import { MatSliderModule } from '@angular/material/slider'
135
import { MatTabsModule } from '@angular/material/tabs'
136
import { MatChipsModule } from '@angular/material/chips'
137
import { CodeSnippetComponent } from './code-snippet/code-snippet.component'
138
import { CodeAreaComponent } from './code-area/code-area.component'
139
import { NgxTextDiffModule } from 'ngx-text-diff'
140
import { CodeFixesComponent } from './code-fixes/code-fixes.component'
141

142
export function HttpLoaderFactory (http: HttpClient) {
143
  return new TranslateHttpLoader(http, './assets/i18n/', '.json')
144
}
145

146
@NgModule({
147
  declarations: [
148
    AppComponent,
149
    AboutComponent,
150
    AdministrationComponent,
151
    BasketComponent,
152
    LoginComponent,
153
    NavbarComponent,
154
    WelcomeComponent,
155
    WelcomeBannerComponent,
156
    SearchResultComponent,
157
    ForgotPasswordComponent,
158
    RegisterComponent,
159
    ContactComponent,
160
    ChangePasswordComponent,
161
    ProductDetailsComponent,
162
    ComplaintComponent,
163
    ChatbotComponent,
164
    TrackResultComponent,
165
    RecycleComponent,
166
    QrCodeComponent,
167
    UserDetailsComponent,
168
    ServerStartedNotificationComponent,
169
    ChallengeSolvedNotificationComponent,
170
    OAuthComponent,
171
    TokenSaleComponent,
172
    NFTUnlockComponent,
173
    ProductReviewEditComponent,
174
    TwoFactorAuthEnterComponent,
175
    SidenavComponent,
176
    PrivacySecurityComponent,
177
    ErrorPageComponent,
178
    TwoFactorAuthComponent,
179
    DataExportComponent,
180
    LastLoginIpComponent,
181
    PrivacyPolicyComponent,
182
    OrderCompletionComponent,
183
    AddressCreateComponent,
184
    AddressSelectComponent,
185
    AddressComponent,
186
    SavedAddressComponent,
187
    PaymentComponent,
188
    PaymentMethodComponent,
189
    SavedPaymentMethodsComponent,
190
    AccountingComponent,
191
    OrderSummaryComponent,
192
    PurchaseBasketComponent,
193
    PrivacyPolicyComponent,
194
    ChallengeStatusBadgeComponent,
195
    WalletComponent,
196
    OrderHistoryComponent,
197
    DeliveryMethodComponent,
198
    PhotoWallComponent,
199
    DeluxeUserComponent,
200
    FeedbackDetailsComponent,
201
    CodeSnippetComponent,
202
    CodeAreaComponent,
203
    CodeFixesComponent
204
  ],
205
  imports: [
206
    BrowserModule,
207
    Routing,
208
    TranslateModule.forRoot(
209
      {
210
        loader: {
211
          provide: TranslateLoader,
212
          useFactory: HttpLoaderFactory,
213
          deps: [HttpClient]
214
        }
215
      }
216
    ),
217
    CookieModule.forRoot(),
218
    MatPasswordStrengthModule.forRoot(),
219
    FlexLayoutModule,
220
    HttpClientModule,
221
    ReactiveFormsModule,
222
    BrowserAnimationsModule,
223
    SlideshowModule,
224
    QRCodeModule,
225
    FileUploadModule,
226
    ClipboardModule,
227
    MatToolbarModule,
228
    MatIconModule,
229
    FormsModule,
230
    MatFormFieldModule,
231
    MatSelectModule,
232
    MatButtonModule,
233
    MatSidenavModule,
234
    MatTableModule,
235
    MatPaginatorModule,
236
    MatCardModule,
237
    MatInputModule,
238
    MatCheckboxModule,
239
    MatDialogModule,
240
    MatDividerModule,
241
    MatDatepickerModule,
242
    MatNativeDateModule,
243
    MatExpansionModule,
244
    MatProgressBarModule,
245
    MatTooltipModule,
246
    MatMenuModule,
247
    MatListModule,
248
    MatButtonToggleModule,
249
    LayoutModule,
250
    MatGridListModule,
251
    NgMatSearchBarModule,
252
    MatBadgeModule,
253
    MatRadioModule,
254
    MatSnackBarModule,
255
    MatSliderModule,
256
    MatTabsModule,
257
    MatSlideToggleModule,
258
    MatChipsModule,
259
    NgxTextDiffModule,
260
    HighlightModule,
261
    ScoreBoardModule
262
  ],
263
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
264
  providers: [
265
    {
266
      provide: HTTP_INTERCEPTORS,
267
      useClass: RequestInterceptor,
268
      multi: true
269
    },
270
    {
271
      provide: HIGHLIGHT_OPTIONS,
272
      useValue: {
273
        coreLibraryLoader: async () => await import('highlight.js/lib/core'),
274
        lineNumbersLoader: async () => await import('highlightjs-line-numbers.js'),
275
        languages: {
276
          typescript: async () => await import('highlight.js/lib/languages/typescript'),
277
          javascript: async () => await import('highlight.js/lib/languages/javascript'),
278
          yaml: async () => await import('highlight.js/lib/languages/yaml')
279
        }
280
      }
281
    },
282
    ProductService,
283
    ConfigurationService,
284
    AdministrationService,
285
    SecurityQuestionService,
286
    DataSubjectService,
287
    UserService,
288
    SecurityAnswerService,
289
    CaptchaService,
290
    FeedbackService,
291
    WindowRefService,
292
    ProductReviewService,
293
    ComplaintService,
294
    ChatbotService,
295
    TrackOrderService,
296
    RecycleService,
297
    BasketService,
298
    ChallengeService,
299
    CookieService,
300
    AdminGuard,
301
    LoginGuard,
302
    PaymentService,
303
    AccountingGuard,
304
    DeluxeGuard,
305
    ImageCaptchaService,
306
    KeysService,
307
    AddressService,
308
    QuantityService,
309
    WalletService,
310
    OrderHistoryService,
311
    DeliveryService,
312
    PhotoWallService
313
  ],
314
  bootstrap: [AppComponent]
315
})
316
export class AppModule {
317
  constructor (public configurationService: ConfigurationService, public overlayContainer: OverlayContainer) {
318
    configurationService.getApplicationConfiguration().subscribe((conf) => {
319
      overlayContainer.getContainerElement().classList.add(conf.application.theme + '-theme')
320
    })
321
  }
322
}
323

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.