app.module.ts 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274
  1. import { registerLocaleData } from '@angular/common';
  2. import localeFr from '@angular/common/locales/fr';
  3. registerLocaleData(localeFr, 'fr');
  4. import { NgModule, LOCALE_ID } from '@angular/core';
  5. import { BrowserModule, Meta, Title } from '@angular/platform-browser'; // <-- Ajouté Meta, Title
  6. import { AppRoutingModule } from './app-routing.module';
  7. import { AppComponent } from './app.component';
  8. import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
  9. import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
  10. import { MaterialModule } from './material/material.module';
  11. import { FlexLayoutModule } from "@angular/flex-layout";
  12. import { ChartsModule } from 'ng2-charts';
  13. import { FormsModule, ReactiveFormsModule } from '@angular/forms';
  14. import { MatSnackBarModule } from '@angular/material/snack-bar';
  15. import { SatDatepickerModule, SatNativeDateModule } from 'saturn-datepicker';
  16. // Interceptors
  17. import { JwtInterceptor } from './interceptors/jwt.interceptor';
  18. // import { ErrorInterceptor } from './interceptors/error.interceptor';
  19. // Components (liste inchangée)
  20. import { LoginComponent } from './components/login/login.component';
  21. import { NavbarComponent } from './components/shared/navbar/navbar.component';
  22. import { FooterComponent } from './components/shared/footer/footer.component';
  23. import { StatisticComponent } from './components/admin/statistic/statistic.component';
  24. import { AlertMessageComponent } from './components/shared/alert-message/alert-message.component';
  25. import { RegisterComponent } from './components/register/register.component';
  26. import { ContactComponent } from './components/shared/contact/contact.component';
  27. import { MapComponent } from './components/shared/contact/map/map.component';
  28. import { FormulaireComponent } from './components/shared/contact/formulaire/formulaire.component';
  29. import { InformationComponent } from './components/shared/contact/information/information.component';
  30. import { UsersComponent } from './components/admin/users/users.component';
  31. import { UsersListComponent } from './components/admin/users/users-list/users-list.component';
  32. import { UsersDetailsComponent } from './components/admin/users/users-details/users-details.component';
  33. import { UsersEditComponent } from './components/admin/users/users-edit/users-edit.component';
  34. import { UsersDeleteComponent } from './components/admin/users/users-delete/users-delete.component';
  35. import { ConfirmComponent } from './components/shared/contact/formulaire/confirm/confirm.component';
  36. import { NotFoundComponent } from './components/shared/not-found/not-found.component';
  37. import { HomeComponent } from './components/home/home.component';
  38. import { GainComponent } from './components/auth/gain/gain.component';
  39. import { GainListComponent } from './components/auth/gain/gain-list/gain-list.component';
  40. import { GainFormComponent } from './components/auth/gain/gain-form/gain-form.component';
  41. import { MentionsLegalesComponent } from './components/shared/mentions-legales/mentions-legales.component';
  42. import { PolitiqueConfidentialiteComponent } from './components/shared/politique-confidentialite/politique-confidentialite.component';
  43. import { CguComponent } from './components/shared/cgu/cgu.component';
  44. import { UsersFormComponent } from './components/admin/users/users-form/users-form.component';
  45. import { EmailingComponent } from './components/admin/emailing/emailing.component';
  46. import { ProfilComponent } from './components/auth/profil/profil.component';
  47. import { EmailFormComponent } from './components/admin/emailing/email-form/email-form.component';
  48. import { LotsComponent } from './components/admin/lots/lots.component';
  49. import { EditProfilInfoConnexionComponent } from './components/auth/profil/edit-profil-info-connexion/edit-profil-info-connexion.component';
  50. import { EditProfilInfoUserComponent } from './components/auth/profil/edit-profil-info-user/edit-profil-info-user.component';
  51. import { AssistanceComponent } from './components/admin/assistance/assistance.component';
  52. import { AssistanceListComponent } from './components/admin/assistance/assistance-list/assistance-list.component';
  53. import { UsersBloqueComponent } from './components/admin/users/users-bloque/users-bloque.component';
  54. import { LostPasswordComponent } from './components/login/lost-password/lost-password.component';
  55. import { ResetPasswordComponent } from './components/login/reset-password/reset-password.component';
  56. import { ConfirmMessageComponent } from './components/shared/confirm-message/confirm-message.component';
  57. import { ResponseContactComponent } from './components/admin/assistance/response-contact/response-contact.component';
  58. import { AdminLoginComponent } from './components/admin/admin-login/admin-login.component';
  59. import { TirageComponent } from './components/auth/tirage/tirage.component';
  60. // Ajoute ton service SEO si tu l'as créé
  61. import { SeoService } from './services/seo.service'; // <-- à adapter selon ton arborescence
  62. @NgModule({
  63. declarations: [
  64. AppComponent,
  65. NavbarComponent,
  66. FooterComponent,
  67. StatisticComponent,
  68. LoginComponent,
  69. AlertMessageComponent,
  70. RegisterComponent,
  71. ContactComponent,
  72. MapComponent,
  73. FormulaireComponent,
  74. InformationComponent,
  75. UsersComponent,
  76. UsersListComponent,
  77. UsersDetailsComponent,
  78. UsersEditComponent,
  79. UsersDeleteComponent,
  80. ConfirmComponent,
  81. NotFoundComponent,
  82. HomeComponent,
  83. GainComponent,
  84. GainListComponent,
  85. GainFormComponent,
  86. MentionsLegalesComponent,
  87. PolitiqueConfidentialiteComponent,
  88. CguComponent,
  89. UsersFormComponent,
  90. EmailingComponent,
  91. ProfilComponent,
  92. EmailFormComponent,
  93. LotsComponent,
  94. EditProfilInfoConnexionComponent,
  95. EditProfilInfoUserComponent,
  96. AssistanceComponent,
  97. AssistanceListComponent,
  98. ResponseContactComponent,
  99. UsersBloqueComponent,
  100. LostPasswordComponent,
  101. ResetPasswordComponent,
  102. ConfirmMessageComponent,
  103. AdminLoginComponent,
  104. TirageComponent
  105. ],
  106. imports: [
  107. BrowserModule.withServerTransition({ appId: 'serverApp' }), // SSR ready
  108. AppRoutingModule,
  109. BrowserAnimationsModule,
  110. HttpClientModule,
  111. MaterialModule,
  112. FlexLayoutModule,
  113. ChartsModule,
  114. FormsModule,
  115. MatSnackBarModule,
  116. ReactiveFormsModule,
  117. SatDatepickerModule,
  118. SatNativeDateModule
  119. // FlexLayoutServerModule, // décommenter si besoin pour SSR
  120. ],
  121. providers: [
  122. { provide: HTTP_INTERCEPTORS, useClass: JwtInterceptor, multi: true },
  123. // { provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true },
  124. { provide: LOCALE_ID, useValue: 'fr-FR' },
  125. Meta, // <-- Ajouté pour SEO dynamique
  126. Title, // <-- Ajouté pour SEO dynamique
  127. SeoService // <-- Ajouté si tu utilises un service SEO personnalisé
  128. ],
  129. bootstrap: [AppComponent]
  130. })
  131. export class AppModule { }
  132. // import { registerLocaleData } from '@angular/common';
  133. // import localeFr from '@angular/common/locales/fr';
  134. // registerLocaleData(localeFr, 'fr');
  135. // import { ErrorInterceptor } from './interceptors/error.interceptor';
  136. // import { SatDatepickerModule, SatNativeDateModule } from 'saturn-datepicker';
  137. // import { JwtInterceptor } from './interceptors/jwt.interceptor';
  138. // import { BrowserModule } from '@angular/platform-browser';
  139. // import { MatSnackBarModule } from '@angular/material/snack-bar';
  140. // import { NgModule, LOCALE_ID } from '@angular/core';
  141. // import { AppRoutingModule } from './app-routing.module';
  142. // import { AppComponent } from './app.component';
  143. // import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
  144. // import { MaterialModule } from './material/material.module';
  145. // import { FlexLayoutModule } from "@angular/flex-layout";
  146. // import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
  147. // import { ChartsModule } from 'ng2-charts';
  148. // import { FormsModule } from '@angular/forms';
  149. // // import { FlexLayoutServerModule } from '@angular/flex-layout/server';
  150. // import { ReactiveFormsModule } from '@angular/forms';
  151. // //components
  152. // import { LoginComponent } from './components/login/login.component';
  153. // import { NavbarComponent } from './components/shared/navbar/navbar.component';
  154. // import { FooterComponent } from './components/shared/footer/footer.component';
  155. // import { StatisticComponent } from './components/admin/statistic/statistic.component';
  156. // import { AlertMessageComponent } from './components/shared/alert-message/alert-message.component';
  157. // import { RegisterComponent } from './components/register/register.component';
  158. // import { ContactComponent } from './components/shared/contact/contact.component';
  159. // import { MapComponent } from './components/shared/contact/map/map.component';
  160. // import { FormulaireComponent } from './components/shared/contact/formulaire/formulaire.component';
  161. // import { InformationComponent } from './components/shared/contact/information/information.component';
  162. // import { UsersComponent } from './components/admin/users/users.component';
  163. // import { UsersListComponent } from './components/admin/users/users-list/users-list.component';
  164. // import { UsersDetailsComponent } from './components/admin/users/users-details/users-details.component';
  165. // import { UsersEditComponent } from './components/admin/users/users-edit/users-edit.component';
  166. // import { UsersDeleteComponent } from './components/admin/users/users-delete/users-delete.component';
  167. // import { ConfirmComponent } from './components/shared/contact/formulaire/confirm/confirm.component';
  168. // import { NotFoundComponent } from './components/shared/not-found/not-found.component';
  169. // import { HomeComponent } from './components/home/home.component';
  170. // import { GainComponent } from './components/auth/gain/gain.component';
  171. // import { GainListComponent } from './components/auth/gain/gain-list/gain-list.component';
  172. // import { GainFormComponent } from './components/auth/gain/gain-form/gain-form.component';
  173. // import { MentionsLegalesComponent } from './components/shared/mentions-legales/mentions-legales.component';
  174. // import { PolitiqueConfidentialiteComponent } from './components/shared/politique-confidentialite/politique-confidentialite.component';
  175. // import { CguComponent } from './components/shared/cgu/cgu.component';
  176. // import { UsersFormComponent } from './components/admin/users/users-form/users-form.component';
  177. // import { EmailingComponent } from './components/admin/emailing/emailing.component';
  178. // import { ProfilComponent } from './components/auth/profil/profil.component';
  179. // import { EmailFormComponent } from './components/admin/emailing/email-form/email-form.component';
  180. // import { LotsComponent } from './components/admin/lots/lots.component';
  181. // import { EditProfilInfoConnexionComponent } from './components/auth/profil/edit-profil-info-connexion/edit-profil-info-connexion.component';
  182. // import { EditProfilInfoUserComponent } from './components/auth/profil/edit-profil-info-user/edit-profil-info-user.component';
  183. // import { AssistanceComponent } from './components/admin/assistance/assistance.component';
  184. // import { AssistanceListComponent } from './components/admin/assistance/assistance-list/assistance-list.component';
  185. // import { UsersBloqueComponent } from './components/admin/users/users-bloque/users-bloque.component';
  186. // import { LostPasswordComponent } from './components/login/lost-password/lost-password.component';
  187. // import { ResetPasswordComponent } from './components/login/reset-password/reset-password.component';
  188. // import { ConfirmMessageComponent } from './components/shared/confirm-message/confirm-message.component';
  189. // import { ResponseContactComponent } from './components/admin/assistance/response-contact/response-contact.component';
  190. // import { AdminLoginComponent } from './components/admin/admin-login/admin-login.component';
  191. // import { MatSnackBarRef } from '@angular/material/snack-bar';
  192. // import { TirageComponent } from './components/auth/tirage/tirage.component';
  193. // @NgModule({
  194. // declarations: [
  195. // AppComponent,
  196. // NavbarComponent,
  197. // FooterComponent,
  198. // StatisticComponent,
  199. // LoginComponent,
  200. // AlertMessageComponent,
  201. // RegisterComponent,
  202. // ContactComponent,
  203. // MapComponent,
  204. // FormulaireComponent,
  205. // InformationComponent,
  206. // UsersComponent,
  207. // UsersListComponent,
  208. // UsersDetailsComponent,
  209. // UsersEditComponent,
  210. // UsersDeleteComponent,
  211. // ConfirmComponent,
  212. // NotFoundComponent,
  213. // HomeComponent,
  214. // GainComponent,
  215. // GainListComponent,
  216. // GainFormComponent,
  217. // MentionsLegalesComponent,
  218. // PolitiqueConfidentialiteComponent,
  219. // CguComponent,
  220. // UsersFormComponent,
  221. // EmailingComponent,
  222. // ProfilComponent,
  223. // EmailFormComponent,
  224. // LotsComponent,
  225. // EditProfilInfoConnexionComponent,
  226. // EditProfilInfoUserComponent,
  227. // AssistanceComponent,
  228. // AssistanceListComponent,
  229. // ResponseContactComponent,
  230. // UsersBloqueComponent,
  231. // LostPasswordComponent,
  232. // ResetPasswordComponent,
  233. // ConfirmMessageComponent,
  234. // AdminLoginComponent,
  235. // TirageComponent,
  236. // ],
  237. // imports: [
  238. // BrowserModule.withServerTransition({ appId: 'serverApp' }),
  239. // AppRoutingModule,
  240. // BrowserAnimationsModule,
  241. // HttpClientModule,
  242. // MaterialModule,
  243. // FlexLayoutModule,
  244. // ChartsModule,
  245. // FormsModule,
  246. // MatSnackBarModule,
  247. // ReactiveFormsModule,
  248. // SatDatepickerModule,
  249. // // FlexLayoutServerModule,
  250. // SatNativeDateModule,
  251. // ],
  252. // providers: [
  253. // { provide: HTTP_INTERCEPTORS, useClass: JwtInterceptor, multi: true },
  254. // // { provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true },
  255. // { provide: LOCALE_ID, useValue: 'fr-FR' },
  256. // ],
  257. // bootstrap: [AppComponent]
  258. // })
  259. // export class AppModule { }