@cerema/cadriciel 0.5.0

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 (842) hide show
  1. package/.vscode/settings.json +3 -0
  2. package/_template/.idea/compiler.xml +28 -0
  3. package/_template/.idea/encodings.xml +13 -0
  4. package/_template/.idea/jarRepositories.xml +30 -0
  5. package/_template/.idea/jpa-buddy.xml +7 -0
  6. package/_template/.idea/misc.xml +15 -0
  7. package/_template/README.md +118 -0
  8. package/_template/angular.json +139 -0
  9. package/_template/docker/data/db/.gitkeep +0 -0
  10. package/_template/docker/data/pgadmin/.gitkeep +0 -0
  11. package/_template/docker/docker-compose.yml +22 -0
  12. package/_template/mvnw +310 -0
  13. package/_template/mvnw.cmd +182 -0
  14. package/_template/package-lock.json +5 -0
  15. package/_template/package.json +77 -0
  16. package/_template/pom.xml +234 -0
  17. package/_template/yarn.lock +7005 -0
  18. package/_template/{{project}}-data/Readme.md +27 -0
  19. package/_template/{{project}}-data/pom.xml +46 -0
  20. package/_template/{{project}}-data/src/main/resources/db/dev/Readme.md +5 -0
  21. package/_template/{{project}}-data/src/main/resources/db/dev/V202206021513__dev-data.sql +5 -0
  22. package/_template/{{project}}-data/src/main/resources/db/migration/Readme.md +38 -0
  23. package/_template/{{project}}-data/src/main/resources/db/migration/V202110140819__Init.sql +23 -0
  24. package/_template/{{project}}-data/src/main/resources/flyway.properties +10 -0
  25. package/_template/{{project}}-ihm/karma.conf.js +65 -0
  26. package/_template/{{project}}-ihm/pom.xml +192 -0
  27. package/_template/{{project}}-ihm/src/app/app-routing.module.ts +35 -0
  28. package/_template/{{project}}-ihm/src/app/app.component.css +40 -0
  29. package/_template/{{project}}-ihm/src/app/app.component.html +1 -0
  30. package/_template/{{project}}-ihm/src/app/app.component.spec.ts +25 -0
  31. package/_template/{{project}}-ihm/src/app/app.component.ts +60 -0
  32. package/_template/{{project}}-ihm/src/app/app.module.ts +104 -0
  33. package/_template/{{project}}-ihm/src/app/layout/api/menuchangeevent.ts +4 -0
  34. package/_template/{{project}}-ihm/src/app/layout/api/tabcloseevent.ts +6 -0
  35. package/_template/{{project}}-ihm/src/app/layout/app.breadcrumb.component.html +14 -0
  36. package/_template/{{project}}-ihm/src/app/layout/app.breadcrumb.component.ts +48 -0
  37. package/_template/{{project}}-ihm/src/app/layout/app.footer.component.html +20 -0
  38. package/_template/{{project}}-ihm/src/app/layout/app.footer.component.ts +22 -0
  39. package/_template/{{project}}-ihm/src/app/layout/app.menu.component.html +3 -0
  40. package/_template/{{project}}-ihm/src/app/layout/app.menu.component.ts +30 -0
  41. package/_template/{{project}}-ihm/src/app/layout/app.menu.service.ts +23 -0
  42. package/_template/{{project}}-ihm/src/app/layout/app.menuitem.component.ts +213 -0
  43. package/_template/{{project}}-ihm/src/app/layout/app.sidebar.component.html +5 -0
  44. package/_template/{{project}}-ihm/src/app/layout/app.sidebar.component.ts +13 -0
  45. package/_template/{{project}}-ihm/src/app/layout/app.topbar.component.html +78 -0
  46. package/_template/{{project}}-ihm/src/app/layout/app.topbar.component.ts +72 -0
  47. package/_template/{{project}}-ihm/src/app/layout/config/app.config.component.html +85 -0
  48. package/_template/{{project}}-ihm/src/app/layout/config/app.config.component.ts +230 -0
  49. package/_template/{{project}}-ihm/src/app/layout/config/config.module.ts +27 -0
  50. package/_template/{{project}}-ihm/src/app/layout/main/main.component.html +15 -0
  51. package/_template/{{project}}-ihm/src/app/layout/main/main.component.spec.ts +29 -0
  52. package/_template/{{project}}-ihm/src/app/layout/main/main.component.ts +156 -0
  53. package/_template/{{project}}-ihm/src/app/layout/main-routing.module.ts +32 -0
  54. package/_template/{{project}}-ihm/src/app/layout/main.module.ts +45 -0
  55. package/_template/{{project}}-ihm/src/app/layout/service/app.layout.service.ts +124 -0
  56. package/_template/{{project}}-ihm/src/app/shared/components/code/code.component.ts +22 -0
  57. package/_template/{{project}}-ihm/src/app/shared/components/indic/indic.component.html +8 -0
  58. package/_template/{{project}}-ihm/src/app/shared/components/indic/indic.component.scss +0 -0
  59. package/_template/{{project}}-ihm/src/app/shared/components/indic/indic.component.spec.ts +23 -0
  60. package/_template/{{project}}-ihm/src/app/shared/components/indic/indic.component.ts +61 -0
  61. package/_template/{{project}}-ihm/src/app/shared/constants/dateFormat.constants.ts +1 -0
  62. package/_template/{{project}}-ihm/src/app/shared/constants/mocks/user-mocks.constants.ts +36 -0
  63. package/_template/{{project}}-ihm/src/app/shared/constants/pagination.constants.ts +1 -0
  64. package/_template/{{project}}-ihm/src/app/shared/core/config/application-config.service.spec.ts +16 -0
  65. package/_template/{{project}}-ihm/src/app/shared/core/config/application-config.service.ts +46 -0
  66. package/_template/{{project}}-ihm/src/app/shared/core/guard/can-modify.guard.spec.ts +98 -0
  67. package/_template/{{project}}-ihm/src/app/shared/core/guard/can-modify.guard.ts +36 -0
  68. package/_template/{{project}}-ihm/src/app/shared/core/guard/login.guard.spec.ts +21 -0
  69. package/_template/{{project}}-ihm/src/app/shared/core/guard/login.guard.ts +23 -0
  70. package/_template/{{project}}-ihm/src/app/shared/core/interceptor/handle-req.interceptor.ts +31 -0
  71. package/_template/{{project}}-ihm/src/app/shared/core/interceptor/index.ts +10 -0
  72. package/_template/{{project}}-ihm/src/app/shared/core/request/pageable.model.ts +5 -0
  73. package/_template/{{project}}-ihm/src/app/shared/core/request/request-util.ts +21 -0
  74. package/_template/{{project}}-ihm/src/app/shared/core/resolver/accueil.resolver.spec.ts +21 -0
  75. package/_template/{{project}}-ihm/src/app/shared/core/resolver/accueil.resolver.ts +18 -0
  76. package/_template/{{project}}-ihm/src/app/shared/core/storage/MyLocalStorageService.ts +23 -0
  77. package/_template/{{project}}-ihm/src/app/shared/core/storage/MyStorageService.ts +17 -0
  78. package/_template/{{project}}-ihm/src/app/shared/entities/claims.model.ts +9 -0
  79. package/_template/{{project}}-ihm/src/app/shared/entities/user.model.ts +9 -0
  80. package/_template/{{project}}-ihm/src/app/shared/enums/roles.enums.ts +6 -0
  81. package/_template/{{project}}-ihm/src/app/shared/service/user.service.spec.ts +64 -0
  82. package/_template/{{project}}-ihm/src/app/shared/service/user.service.ts +46 -0
  83. package/_template/{{project}}-ihm/src/app/shared/shared.module.ts +15 -0
  84. package/_template/{{project}}-ihm/src/app/{{project}}/components/auth/accessdenied/accessdenied-routing.module.ts +12 -0
  85. package/_template/{{project}}-ihm/src/app/{{project}}/components/auth/accessdenied/accessdenied.component.html +11 -0
  86. package/_template/{{project}}-ihm/src/app/{{project}}/components/auth/accessdenied/accessdenied.component.ts +7 -0
  87. package/_template/{{project}}-ihm/src/app/{{project}}/components/auth/accessdenied/accessdenied.module.ts +18 -0
  88. package/_template/{{project}}-ihm/src/app/{{project}}/components/auth/auth-routing.module.ts +14 -0
  89. package/_template/{{project}}-ihm/src/app/{{project}}/components/auth/auth.module.ts +13 -0
  90. package/_template/{{project}}-ihm/src/app/{{project}}/components/auth/error/error-routing.module.ts +12 -0
  91. package/_template/{{project}}-ihm/src/app/{{project}}/components/auth/error/error.component.html +10 -0
  92. package/_template/{{project}}-ihm/src/app/{{project}}/components/auth/error/error.component.ts +7 -0
  93. package/_template/{{project}}-ihm/src/app/{{project}}/components/auth/error/error.module.ts +18 -0
  94. package/_template/{{project}}-ihm/src/app/{{project}}/components/auth/login/login-routing.module.ts +12 -0
  95. package/_template/{{project}}-ihm/src/app/{{project}}/components/auth/login/login.component.html +15 -0
  96. package/_template/{{project}}-ihm/src/app/{{project}}/components/auth/login/login.component.ts +46 -0
  97. package/_template/{{project}}-ihm/src/app/{{project}}/components/auth/login/login.module.ts +22 -0
  98. package/_template/{{project}}-ihm/src/app/{{project}}/components/auth/logout/logout/logout.component.html +8 -0
  99. package/_template/{{project}}-ihm/src/app/{{project}}/components/auth/logout/logout/logout.component.scss +21 -0
  100. package/_template/{{project}}-ihm/src/app/{{project}}/components/auth/logout/logout/logout.component.spec.ts +26 -0
  101. package/_template/{{project}}-ihm/src/app/{{project}}/components/auth/logout/logout/logout.component.ts +15 -0
  102. package/_template/{{project}}-ihm/src/app/{{project}}/components/auth/logout/logout.module.ts +27 -0
  103. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/architecture/architecture.component.html +132 -0
  104. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/architecture/architecture.component.scss +0 -0
  105. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/architecture/architecture.component.spec.ts +23 -0
  106. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/architecture/architecture.component.ts +86 -0
  107. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/demarrer/demarrer.component.html +3 -0
  108. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/demarrer/demarrer.component.scss +0 -0
  109. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/demarrer/demarrer.component.spec.ts +23 -0
  110. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/demarrer/demarrer.component.ts +15 -0
  111. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/deploiement/deploiement.component.html +3 -0
  112. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/deploiement/deploiement.component.scss +0 -0
  113. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/deploiement/deploiement.component.spec.ts +23 -0
  114. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/deploiement/deploiement.component.ts +15 -0
  115. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/documentation-routing.module.ts +25 -0
  116. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/documentation.module.ts +39 -0
  117. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/persitance/persitance.component.html +3 -0
  118. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/persitance/persitance.component.scss +0 -0
  119. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/persitance/persitance.component.spec.ts +23 -0
  120. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/persitance/persitance.component.ts +15 -0
  121. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/portail/portail.component.html +117 -0
  122. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/portail/portail.component.scss +0 -0
  123. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/portail/portail.component.spec.ts +23 -0
  124. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/portail/portail.component.ts +25 -0
  125. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/securite/securite.component.html +3 -0
  126. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/securite/securite.component.scss +0 -0
  127. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/securite/securite.component.spec.ts +23 -0
  128. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/securite/securite.component.ts +15 -0
  129. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/tests/tests.component.html +3 -0
  130. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/tests/tests.component.scss +0 -0
  131. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/tests/tests.component.spec.ts +23 -0
  132. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/tests/tests.component.ts +15 -0
  133. package/_template/{{project}}-ihm/src/app/{{project}}/components/notfound/notfound-routing.module.ts +12 -0
  134. package/_template/{{project}}-ihm/src/app/{{project}}/components/notfound/notfound.component.html +42 -0
  135. package/_template/{{project}}-ihm/src/app/{{project}}/components/notfound/notfound.component.ts +7 -0
  136. package/_template/{{project}}-ihm/src/app/{{project}}/components/notfound/notfound.module.ts +18 -0
  137. package/_template/{{project}}-ihm/src/assets/.gitkeep +0 -0
  138. package/_template/{{project}}-ihm/src/assets/favicon.ico +0 -0
  139. package/_template/{{project}}-ihm/src/assets/i18n/fr.json +33 -0
  140. package/_template/{{project}}-ihm/src/assets/images/angular.png +0 -0
  141. package/_template/{{project}}-ihm/src/assets/images/orionavatar.png +0 -0
  142. package/_template/{{project}}-ihm/src/assets/layout/fonts/lato-v17-latin-ext_latin-300.woff +0 -0
  143. package/_template/{{project}}-ihm/src/assets/layout/fonts/lato-v17-latin-ext_latin-300.woff2 +0 -0
  144. package/_template/{{project}}-ihm/src/assets/layout/fonts/lato-v17-latin-ext_latin-700.woff +0 -0
  145. package/_template/{{project}}-ihm/src/assets/layout/fonts/lato-v17-latin-ext_latin-700.woff2 +0 -0
  146. package/_template/{{project}}-ihm/src/assets/layout/fonts/lato-v17-latin-ext_latin-regular.woff +0 -0
  147. package/_template/{{project}}-ihm/src/assets/layout/fonts/lato-v17-latin-ext_latin-regular.woff2 +0 -0
  148. package/_template/{{project}}-ihm/src/assets/layout/images/LogoCerema.svg +226 -0
  149. package/_template/{{project}}-ihm/src/assets/layout/images/LogoCerema_horizontal.svg +167 -0
  150. package/_template/{{project}}-ihm/src/assets/layout/images/SpinnerCerema.svg +5 -0
  151. package/_template/{{project}}-ihm/src/assets/layout/images/avatar.png +0 -0
  152. package/_template/{{project}}-ihm/src/assets/layout/images/logo-dark.png +0 -0
  153. package/_template/{{project}}-ihm/src/assets/layout/images/logo-light.png +0 -0
  154. package/_template/{{project}}-ihm/src/assets/layout/images/user.png +0 -0
  155. package/_template/{{project}}-ihm/src/assets/layout/styles/layout/_breadcrumb.scss +18 -0
  156. package/_template/{{project}}-ihm/src/assets/layout/styles/layout/_config.scss +33 -0
  157. package/_template/{{project}}-ihm/src/assets/layout/styles/layout/_content.scss +20 -0
  158. package/_template/{{project}}-ihm/src/assets/layout/styles/layout/_fonts.scss +27 -0
  159. package/_template/{{project}}-ihm/src/assets/layout/styles/layout/_footer.scss +25 -0
  160. package/_template/{{project}}-ihm/src/assets/layout/styles/layout/_main.scss +29 -0
  161. package/_template/{{project}}-ihm/src/assets/layout/styles/layout/_responsive.scss +159 -0
  162. package/_template/{{project}}-ihm/src/assets/layout/styles/layout/_sidebar.scss +2 -0
  163. package/_template/{{project}}-ihm/src/assets/layout/styles/layout/_topbar.scss +250 -0
  164. package/_template/{{project}}-ihm/src/assets/layout/styles/layout/_typography.scss +63 -0
  165. package/_template/{{project}}-ihm/src/assets/layout/styles/layout/_utils.scss +19 -0
  166. package/_template/{{project}}-ihm/src/assets/layout/styles/layout/layout.scss +15 -0
  167. package/_template/{{project}}-ihm/src/assets/layout/styles/layout/preloading.css +64 -0
  168. package/_template/{{project}}-ihm/src/assets/layout/styles/layout/preloading.scss +79 -0
  169. package/_template/{{project}}-ihm/src/assets/layout/styles/layout/sidebar/_sidebar_slim.scss +131 -0
  170. package/_template/{{project}}-ihm/src/assets/layout/styles/layout/sidebar/_sidebar_vertical.scss +133 -0
  171. package/_template/{{project}}-ihm/src/assets/layout/styles/layout/theme/_dark.scss +10 -0
  172. package/_template/{{project}}-ihm/src/assets/layout/styles/layout/theme/_light.scss +10 -0
  173. package/_template/{{project}}-ihm/src/assets/layout/styles/layout/theme/_primary.scss +10 -0
  174. package/_template/{{project}}-ihm/src/assets/layout/styles/layout/theme/_themes.scss +3 -0
  175. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/_colors.scss +17 -0
  176. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/_common.scss +68 -0
  177. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/_components.scss +102 -0
  178. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/_mixins.scss +203 -0
  179. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/button/_button.scss +560 -0
  180. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/button/_speeddial.scss +81 -0
  181. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/button/_splitbutton.scss +381 -0
  182. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_carousel.scss +37 -0
  183. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_datatable.scss +278 -0
  184. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_dataview.scss +55 -0
  185. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_filter.scss +138 -0
  186. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_fullcalendar.scss +329 -0
  187. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_orderlist.scss +103 -0
  188. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_organizationchart.scss +50 -0
  189. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_paginator.scss +92 -0
  190. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_picklist.scss +103 -0
  191. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_timeline.scss +38 -0
  192. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_tree.scss +144 -0
  193. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_treetable.scss +246 -0
  194. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_virtualscroller.scss +28 -0
  195. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/file/_fileupload.scss +58 -0
  196. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_autocomplete.scss +117 -0
  197. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_calendar.scss +263 -0
  198. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_cascadeselect.scss +109 -0
  199. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_checkbox.scss +85 -0
  200. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_chips.scss +54 -0
  201. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_colorpicker.scss +19 -0
  202. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_dropdown.scss +135 -0
  203. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_editor.scss +122 -0
  204. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_inputgroup.scss +75 -0
  205. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_inputmask.scss +16 -0
  206. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_inputnumber.scss +28 -0
  207. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_inputswitch.scss +60 -0
  208. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_inputtext.scss +99 -0
  209. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_listbox.scss +82 -0
  210. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_multiselect.scss +171 -0
  211. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_password.scss +53 -0
  212. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_radiobutton.scss +78 -0
  213. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_rating.scss +48 -0
  214. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_selectbutton.scss +50 -0
  215. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_slider.scss +71 -0
  216. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_togglebutton.scss +48 -0
  217. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_treeselect.scss +139 -0
  218. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/menu/_breadcrumb.scss +42 -0
  219. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/menu/_contextmenu.scss +56 -0
  220. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/menu/_dock.scss +86 -0
  221. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/menu/_megamenu.scss +106 -0
  222. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/menu/_menu.scss +45 -0
  223. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/menu/_menubar.scss +183 -0
  224. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/menu/_panelmenu.scss +140 -0
  225. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/menu/_slidemenu.scss +59 -0
  226. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/menu/_steps.scss +56 -0
  227. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/menu/_tabmenu.scss +69 -0
  228. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/menu/_tieredmenu.scss +60 -0
  229. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/messages/_inlinemessage.scss +64 -0
  230. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/messages/_message.scss +102 -0
  231. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/messages/_toast.scss +95 -0
  232. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/misc/_avatar.scss +30 -0
  233. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/misc/_badge.scss +48 -0
  234. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/misc/_blockui.scss +0 -0
  235. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/misc/_chip.scss +38 -0
  236. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/misc/_inplace.scss +17 -0
  237. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/misc/_progressbar.scss +17 -0
  238. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/misc/_scrolltop.scss +20 -0
  239. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/misc/_skeleton.scss +8 -0
  240. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/misc/_tag.scss +35 -0
  241. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/misc/_terminal.scss +11 -0
  242. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/multimedia/_galleria.scss +139 -0
  243. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/multimedia/_image.scss +44 -0
  244. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/overlay/_confirmpopup.scss +65 -0
  245. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/overlay/_dialog.scss +64 -0
  246. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/overlay/_overlaypanel.scss +62 -0
  247. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/overlay/_sidebar.scss +23 -0
  248. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/overlay/_tooltip.scss +33 -0
  249. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/panel/_accordion.scss +119 -0
  250. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/panel/_card.scss +30 -0
  251. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/panel/_divider.scss +31 -0
  252. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/panel/_fieldset.scss +47 -0
  253. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/panel/_panel.scss +58 -0
  254. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/panel/_scrollpanel.scss +6 -0
  255. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/panel/_splitter.scss +19 -0
  256. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/panel/_tabview.scss +78 -0
  257. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/panel/_toolbar.scss +10 -0
  258. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/_extensions.scss +90 -0
  259. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/_variables.scss +867 -0
  260. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/blue/theme.css +7341 -0
  261. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/blue/theme.scss +12 -0
  262. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/cyan/theme.css +7341 -0
  263. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/cyan/theme.scss +12 -0
  264. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/deeppurple/theme.css +7341 -0
  265. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/deeppurple/theme.scss +12 -0
  266. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/green/theme.css +7341 -0
  267. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/green/theme.scss +12 -0
  268. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/indigo/theme.css +6228 -0
  269. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/indigo/theme.scss +12 -0
  270. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/lime/theme.css +7341 -0
  271. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/lime/theme.scss +12 -0
  272. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/orange/theme.css +7341 -0
  273. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/orange/theme.scss +12 -0
  274. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/pink/theme.css +7341 -0
  275. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/pink/theme.scss +12 -0
  276. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/purple/theme.css +7341 -0
  277. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/purple/theme.scss +12 -0
  278. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/yellow/theme.css +7341 -0
  279. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/yellow/theme.scss +12 -0
  280. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/_extensions.scss +90 -0
  281. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/_variables.scss +870 -0
  282. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/blue/theme.css +7341 -0
  283. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/blue/theme.scss +12 -0
  284. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/cyan/theme.css +7341 -0
  285. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/cyan/theme.scss +12 -0
  286. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/deeppurple/theme.css +7341 -0
  287. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/deeppurple/theme.scss +12 -0
  288. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/green/theme.css +7341 -0
  289. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/green/theme.scss +12 -0
  290. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/indigo/theme.css +7341 -0
  291. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/indigo/theme.scss +12 -0
  292. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/lime/theme.css +7341 -0
  293. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/lime/theme.scss +12 -0
  294. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/orange/theme.css +7341 -0
  295. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/orange/theme.scss +12 -0
  296. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/pink/theme.css +7341 -0
  297. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/pink/theme.scss +12 -0
  298. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/purple/theme.css +7341 -0
  299. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/purple/theme.scss +12 -0
  300. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/yellow/theme.css +7341 -0
  301. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/yellow/theme.scss +12 -0
  302. package/_template/{{project}}-ihm/src/assets/{{project}}/data/chat.json +124 -0
  303. package/_template/{{project}}-ihm/src/assets/{{project}}/data/countries.json +972 -0
  304. package/_template/{{project}}-ihm/src/assets/{{project}}/data/customers-large.json +3604 -0
  305. package/_template/{{project}}-ihm/src/assets/{{project}}/data/customers-medium.json +804 -0
  306. package/_template/{{project}}-ihm/src/assets/{{project}}/data/customers-small.json +164 -0
  307. package/_template/{{project}}-ihm/src/assets/{{project}}/data/file-management.json +197 -0
  308. package/_template/{{project}}-ihm/src/assets/{{project}}/data/files-lazy.json +25 -0
  309. package/_template/{{project}}-ihm/src/assets/{{project}}/data/files.json +120 -0
  310. package/_template/{{project}}-ihm/src/assets/{{project}}/data/filesystem-lazy.json +20 -0
  311. package/_template/{{project}}-ihm/src/assets/{{project}}/data/filesystem.json +312 -0
  312. package/_template/{{project}}-ihm/src/assets/{{project}}/data/gares.json +6179 -0
  313. package/_template/{{project}}-ihm/src/assets/{{project}}/data/icons.json +8516 -0
  314. package/_template/{{project}}-ihm/src/assets/{{project}}/data/kanban.json +304 -0
  315. package/_template/{{project}}-ihm/src/assets/{{project}}/data/mail.json +365 -0
  316. package/_template/{{project}}-ihm/src/assets/{{project}}/data/members.json +49 -0
  317. package/_template/{{project}}-ihm/src/assets/{{project}}/data/photos.json +94 -0
  318. package/_template/{{project}}-ihm/src/assets/{{project}}/data/products-mixed.json +364 -0
  319. package/_template/{{project}}-ihm/src/assets/{{project}}/data/products-orders-small.json +341 -0
  320. package/_template/{{project}}-ihm/src/assets/{{project}}/data/products-orders.json +833 -0
  321. package/_template/{{project}}-ihm/src/assets/{{project}}/data/products-small.json +124 -0
  322. package/_template/{{project}}-ihm/src/assets/{{project}}/data/products.json +394 -0
  323. package/_template/{{project}}-ihm/src/assets/{{project}}/data/scheduleevents.json +79 -0
  324. package/_template/{{project}}-ihm/src/assets/{{project}}/data/tasks.json +205 -0
  325. package/_template/{{project}}-ihm/src/assets/{{project}}/images/auth/access-denied.svg +103 -0
  326. package/_template/{{project}}-ihm/src/assets/{{project}}/images/auth/error.svg +343 -0
  327. package/_template/{{project}}-ihm/src/assets/{{project}}/styles/badges.css +109 -0
  328. package/_template/{{project}}-ihm/src/assets/{{project}}/styles/badges.scss +109 -0
  329. package/_template/{{project}}-ihm/src/assets/{{project}}/styles/flags/flags.css +1 -0
  330. package/_template/{{project}}-ihm/src/assets/{{project}}/styles/flags/flags_responsive.png +0 -0
  331. package/_template/{{project}}-ihm/src/assets/{{project}}/styles/marep_leaflet.css +4 -0
  332. package/_template/{{project}}-ihm/src/environments/environment.ts +24 -0
  333. package/_template/{{project}}-ihm/src/index.html +28 -0
  334. package/_template/{{project}}-ihm/src/main.ts +13 -0
  335. package/_template/{{project}}-ihm/src/polyfills.ts +64 -0
  336. package/_template/{{project}}-ihm/src/styles.scss +27 -0
  337. package/_template/{{project}}-ihm/src/test.ts +24 -0
  338. package/_template/{{project}}-ihm/src/themes.scss +84 -0
  339. package/_template/{{project}}-ihm/tsconfig.app.json +13 -0
  340. package/_template/{{project}}-ihm/tsconfig.json +36 -0
  341. package/_template/{{project}}-ihm/tsconfig.spec.json +13 -0
  342. package/_template/{{project}}-metier/pom.xml +134 -0
  343. package/_template/{{project}}-metier/src/main/java/fr/cerema/dsi/commons/services/ContentMailService.java +18 -0
  344. package/_template/{{project}}-metier/src/main/java/fr/cerema/dsi/commons/services/GenericService.java +30 -0
  345. package/_template/{{project}}-metier/src/main/java/fr/cerema/dsi/commons/services/GenericServiceImpl.java +62 -0
  346. package/_template/{{project}}-metier/src/main/java/fr/cerema/dsi/commons/services/MailService.java +42 -0
  347. package/_template/{{project}}-metier/src/main/java/fr/cerema/dsi/marep/services/marep/ProfilService.java +24 -0
  348. package/_template/{{project}}-metier/src/main/java/fr/cerema/dsi/marep/services/marep/UserService.java +36 -0
  349. package/_template/{{project}}-metier/src/main/java/fr/cerema/dsi/marep/services/marep/impl/ProfilServiceImpl.java +26 -0
  350. package/_template/{{project}}-metier/src/main/java/fr/cerema/dsi/marep/services/marep/impl/UserServiceImpl.java +75 -0
  351. package/_template/{{project}}-metier/src/main/java/fr/cerema/dsi/marep/services/security/UserSecurityServiceUtil.java +30 -0
  352. package/_template/{{project}}-metier/src/test/java/fr/cerema/dsi/marep/services/marep/UserServiceImplTest.java +60 -0
  353. package/_template/{{project}}-persistance/pom.xml +72 -0
  354. package/_template/{{project}}-persistance/src/main/java/fr/cerema/dsi/commons/repositories/AbstractDao.java +118 -0
  355. package/_template/{{project}}-persistance/src/main/java/fr/cerema/dsi/commons/repositories/GenericRepository.java +101 -0
  356. package/_template/{{project}}-persistance/src/main/java/fr/cerema/dsi/commons/repositories/IAbstractDao.java +66 -0
  357. package/_template/{{project}}-persistance/src/main/java/fr/cerema/dsi/marep/repositories/marep/ProfilRepository.java +18 -0
  358. package/_template/{{project}}-persistance/src/main/java/fr/cerema/dsi/marep/repositories/marep/UserRepository.java +28 -0
  359. package/_template/{{project}}-presentation/Readme.md +98 -0
  360. package/_template/{{project}}-presentation/pom.xml +258 -0
  361. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/commons/beans/errors/ApiSubError.java +5 -0
  362. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/commons/beans/errors/ApiValidationSubError.java +13 -0
  363. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/commons/beans/errors/JsonApiError.java +308 -0
  364. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/commons/controllers/AbstractErrorHandler.java +67 -0
  365. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/commons/controllers/CustomErrorController.java +57 -0
  366. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/commons/controllers/RestResponseEntityExceptionHandler.java +75 -0
  367. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/commons/security/auth/jwt/exceptions/InvalidTokenException.java +30 -0
  368. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/commons/security/exceptions/AuthenticationServiceException.java +30 -0
  369. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/commons/security/exceptions/NoRoleForUserServiceException.java +29 -0
  370. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/commons/security/filters/AppCorsFilter.java +45 -0
  371. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/App.java +20 -0
  372. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/config/AspectJConfiguration.java +58 -0
  373. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/config/AuthenticationTokenFilter.java +126 -0
  374. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/config/MailConfig.java +54 -0
  375. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/config/ResourceServerConfig.java +78 -0
  376. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/config/WebConfiguration.java +60 -0
  377. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/config/service/CustomUserDetailsService.java +41 -0
  378. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/config/service/StaticResourcesWebConfiguration.java +41 -0
  379. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/controllers/AccountController.java +59 -0
  380. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/controllers/ApiOpenController.java +62 -0
  381. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/controllers/HelloWorld.java +11 -0
  382. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/controllers/UserController.java +63 -0
  383. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/dto/CommuneDTO.java +19 -0
  384. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/dto/CommuneWithGeoDTO.java +19 -0
  385. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/dto/DepartementDTO.java +19 -0
  386. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/dto/DepartementWithGeoDTO.java +18 -0
  387. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/dto/GareDTO.java +49 -0
  388. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/dto/GenericDTO.java +20 -0
  389. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/dto/ProfilDTO.java +26 -0
  390. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/dto/RegionDTO.java +19 -0
  391. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/dto/RegionWithGeoDTO.java +18 -0
  392. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/dto/UserDTO.java +57 -0
  393. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/dto/UserWithCurrentAuthorityDTO.java +31 -0
  394. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/mapper/UserMapper.java +26 -0
  395. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/utils/GeometryUtils.java +17 -0
  396. package/_template/{{project}}-presentation/src/main/resources/META-INF/spring.factories +2 -0
  397. package/_template/{{project}}-presentation/src/main/resources/banner.txt +3 -0
  398. package/_template/{{project}}-presentation/src/main/resources/logback-spring.xml +15 -0
  399. package/_template/{{project}}-presentation/src/main/resources-filtered/application-dev.yml +143 -0
  400. package/_template/{{project}}-presentation/src/main/resources-filtered/application.yml +131 -0
  401. package/_template/{{project}}-presentation/src/test/java/fr/cerema/dsi/marep/service/IntegrationTest.java +18 -0
  402. package/_template/{{project}}-presentation/src/test/java/fr/cerema/dsi/marep/service/UserServiceImplIT.java +43 -0
  403. package/_template/{{project}}-presentation/src/test/resources/application.yml +41 -0
  404. package/_template/{{project}}-presentation/src/test/resources/db.migration/Readme.md +6 -0
  405. package/_template/{{project}}-transverse/pom.xml +0 -0
  406. package/_template/{{project}}-transverse/src/main/java/fr/cerema/dsi/commons/entities/GenericEntity.java +43 -0
  407. package/_template/{{project}}-transverse/src/main/java/fr/cerema/dsi/commons/exceptions/BadRequestException.java +43 -0
  408. package/_template/{{project}}-transverse/src/main/java/fr/cerema/dsi/commons/exceptions/EntityNotFoundException.java +9 -0
  409. package/_template/{{project}}-transverse/src/main/java/fr/cerema/dsi/commons/exceptions/GenericRepositoryException.java +29 -0
  410. package/_template/{{project}}-transverse/src/main/java/fr/cerema/dsi/commons/exceptions/GenericServiceException.java +29 -0
  411. package/_template/{{project}}-transverse/src/main/java/fr/cerema/dsi/commons/exceptions/UserNotFoundException.java +11 -0
  412. package/_template/{{project}}-transverse/src/main/java/fr/cerema/dsi/commons/exceptions/UtilsException.java +13 -0
  413. package/_template/{{project}}-transverse/src/main/java/fr/cerema/dsi/marep/entities/Commune.java +37 -0
  414. package/_template/{{project}}-transverse/src/main/java/fr/cerema/dsi/marep/entities/Departement.java +37 -0
  415. package/_template/{{project}}-transverse/src/main/java/fr/cerema/dsi/marep/entities/Gare.java +48 -0
  416. package/_template/{{project}}-transverse/src/main/java/fr/cerema/dsi/marep/entities/Profil.java +53 -0
  417. package/_template/{{project}}-transverse/src/main/java/fr/cerema/dsi/marep/entities/Region.java +30 -0
  418. package/_template/{{project}}-transverse/src/main/java/fr/cerema/dsi/marep/entities/User.java +79 -0
  419. package/_template/{{project}}-transverse/src/main/java/fr/cerema/dsi/marep/enums/Role.java +8 -0
  420. package/_template/{{project}}-transverse/src/main/java/fr/cerema/dsi/marep/exceptions/JwtConfMalformedException.java +9 -0
  421. package/cli.js +156 -0
  422. package/package.json +23 -0
  423. package/template/.idea/compiler.xml +28 -0
  424. package/template/.idea/encodings.xml +13 -0
  425. package/template/.idea/jarRepositories.xml +30 -0
  426. package/template/.idea/jpa-buddy.xml +7 -0
  427. package/template/.idea/misc.xml +15 -0
  428. package/template/README.md +118 -0
  429. package/template/angular.json +139 -0
  430. package/template/docker/data/db/.gitkeep +0 -0
  431. package/template/docker/data/pgadmin/.gitkeep +0 -0
  432. package/template/docker/docker-compose.yml +22 -0
  433. package/template/mvnw +310 -0
  434. package/template/mvnw.cmd +182 -0
  435. package/template/package-lock.json +5 -0
  436. package/template/package.json +77 -0
  437. package/template/pom.xml +234 -0
  438. package/template/yarn.lock +7005 -0
  439. package/template/{{project}}-data/Readme.md +27 -0
  440. package/template/{{project}}-data/pom.xml +46 -0
  441. package/template/{{project}}-data/src/main/resources/db/dev/Readme.md +5 -0
  442. package/template/{{project}}-data/src/main/resources/db/dev/V202206021513__dev-data.sql +5 -0
  443. package/template/{{project}}-data/src/main/resources/db/migration/Readme.md +38 -0
  444. package/template/{{project}}-data/src/main/resources/db/migration/V202110140819__Init.sql +23 -0
  445. package/template/{{project}}-data/src/main/resources/flyway.properties +10 -0
  446. package/template/{{project}}-ihm/karma.conf.js +65 -0
  447. package/template/{{project}}-ihm/pom.xml +192 -0
  448. package/template/{{project}}-ihm/src/app/app-routing.module.ts +35 -0
  449. package/template/{{project}}-ihm/src/app/app.component.css +40 -0
  450. package/template/{{project}}-ihm/src/app/app.component.html +1 -0
  451. package/template/{{project}}-ihm/src/app/app.component.spec.ts +25 -0
  452. package/template/{{project}}-ihm/src/app/app.component.ts +60 -0
  453. package/template/{{project}}-ihm/src/app/app.module.ts +104 -0
  454. package/template/{{project}}-ihm/src/app/layout/api/menuchangeevent.ts +4 -0
  455. package/template/{{project}}-ihm/src/app/layout/api/tabcloseevent.ts +6 -0
  456. package/template/{{project}}-ihm/src/app/layout/app.breadcrumb.component.html +14 -0
  457. package/template/{{project}}-ihm/src/app/layout/app.breadcrumb.component.ts +48 -0
  458. package/template/{{project}}-ihm/src/app/layout/app.footer.component.html +20 -0
  459. package/template/{{project}}-ihm/src/app/layout/app.footer.component.ts +22 -0
  460. package/template/{{project}}-ihm/src/app/layout/app.menu.component.html +3 -0
  461. package/template/{{project}}-ihm/src/app/layout/app.menu.component.ts +30 -0
  462. package/template/{{project}}-ihm/src/app/layout/app.menu.service.ts +23 -0
  463. package/template/{{project}}-ihm/src/app/layout/app.menuitem.component.ts +213 -0
  464. package/template/{{project}}-ihm/src/app/layout/app.sidebar.component.html +5 -0
  465. package/template/{{project}}-ihm/src/app/layout/app.sidebar.component.ts +13 -0
  466. package/template/{{project}}-ihm/src/app/layout/app.topbar.component.html +78 -0
  467. package/template/{{project}}-ihm/src/app/layout/app.topbar.component.ts +72 -0
  468. package/template/{{project}}-ihm/src/app/layout/config/app.config.component.html +85 -0
  469. package/template/{{project}}-ihm/src/app/layout/config/app.config.component.ts +230 -0
  470. package/template/{{project}}-ihm/src/app/layout/config/config.module.ts +27 -0
  471. package/template/{{project}}-ihm/src/app/layout/main/main.component.html +15 -0
  472. package/template/{{project}}-ihm/src/app/layout/main/main.component.spec.ts +29 -0
  473. package/template/{{project}}-ihm/src/app/layout/main/main.component.ts +156 -0
  474. package/template/{{project}}-ihm/src/app/layout/main-routing.module.ts +32 -0
  475. package/template/{{project}}-ihm/src/app/layout/main.module.ts +45 -0
  476. package/template/{{project}}-ihm/src/app/layout/service/app.layout.service.ts +124 -0
  477. package/template/{{project}}-ihm/src/app/shared/components/code/code.component.ts +22 -0
  478. package/template/{{project}}-ihm/src/app/shared/components/indic/indic.component.html +8 -0
  479. package/template/{{project}}-ihm/src/app/shared/components/indic/indic.component.scss +0 -0
  480. package/template/{{project}}-ihm/src/app/shared/components/indic/indic.component.spec.ts +23 -0
  481. package/template/{{project}}-ihm/src/app/shared/components/indic/indic.component.ts +61 -0
  482. package/template/{{project}}-ihm/src/app/shared/constants/dateFormat.constants.ts +1 -0
  483. package/template/{{project}}-ihm/src/app/shared/constants/mocks/user-mocks.constants.ts +36 -0
  484. package/template/{{project}}-ihm/src/app/shared/constants/pagination.constants.ts +1 -0
  485. package/template/{{project}}-ihm/src/app/shared/core/config/application-config.service.spec.ts +16 -0
  486. package/template/{{project}}-ihm/src/app/shared/core/config/application-config.service.ts +46 -0
  487. package/template/{{project}}-ihm/src/app/shared/core/guard/can-modify.guard.spec.ts +98 -0
  488. package/template/{{project}}-ihm/src/app/shared/core/guard/can-modify.guard.ts +36 -0
  489. package/template/{{project}}-ihm/src/app/shared/core/guard/login.guard.spec.ts +21 -0
  490. package/template/{{project}}-ihm/src/app/shared/core/guard/login.guard.ts +23 -0
  491. package/template/{{project}}-ihm/src/app/shared/core/interceptor/handle-req.interceptor.ts +31 -0
  492. package/template/{{project}}-ihm/src/app/shared/core/interceptor/index.ts +10 -0
  493. package/template/{{project}}-ihm/src/app/shared/core/request/pageable.model.ts +5 -0
  494. package/template/{{project}}-ihm/src/app/shared/core/request/request-util.ts +21 -0
  495. package/template/{{project}}-ihm/src/app/shared/core/resolver/accueil.resolver.spec.ts +21 -0
  496. package/template/{{project}}-ihm/src/app/shared/core/resolver/accueil.resolver.ts +18 -0
  497. package/template/{{project}}-ihm/src/app/shared/core/storage/MyLocalStorageService.ts +23 -0
  498. package/template/{{project}}-ihm/src/app/shared/core/storage/MyStorageService.ts +17 -0
  499. package/template/{{project}}-ihm/src/app/shared/entities/claims.model.ts +9 -0
  500. package/template/{{project}}-ihm/src/app/shared/entities/user.model.ts +9 -0
  501. package/template/{{project}}-ihm/src/app/shared/enums/roles.enums.ts +6 -0
  502. package/template/{{project}}-ihm/src/app/shared/service/user.service.spec.ts +64 -0
  503. package/template/{{project}}-ihm/src/app/shared/service/user.service.ts +46 -0
  504. package/template/{{project}}-ihm/src/app/shared/shared.module.ts +15 -0
  505. package/template/{{project}}-ihm/src/app/{{project}}/components/auth/accessdenied/accessdenied-routing.module.ts +12 -0
  506. package/template/{{project}}-ihm/src/app/{{project}}/components/auth/accessdenied/accessdenied.component.html +11 -0
  507. package/template/{{project}}-ihm/src/app/{{project}}/components/auth/accessdenied/accessdenied.component.ts +7 -0
  508. package/template/{{project}}-ihm/src/app/{{project}}/components/auth/accessdenied/accessdenied.module.ts +18 -0
  509. package/template/{{project}}-ihm/src/app/{{project}}/components/auth/auth-routing.module.ts +14 -0
  510. package/template/{{project}}-ihm/src/app/{{project}}/components/auth/auth.module.ts +13 -0
  511. package/template/{{project}}-ihm/src/app/{{project}}/components/auth/error/error-routing.module.ts +12 -0
  512. package/template/{{project}}-ihm/src/app/{{project}}/components/auth/error/error.component.html +10 -0
  513. package/template/{{project}}-ihm/src/app/{{project}}/components/auth/error/error.component.ts +7 -0
  514. package/template/{{project}}-ihm/src/app/{{project}}/components/auth/error/error.module.ts +18 -0
  515. package/template/{{project}}-ihm/src/app/{{project}}/components/auth/login/login-routing.module.ts +12 -0
  516. package/template/{{project}}-ihm/src/app/{{project}}/components/auth/login/login.component.html +15 -0
  517. package/template/{{project}}-ihm/src/app/{{project}}/components/auth/login/login.component.ts +46 -0
  518. package/template/{{project}}-ihm/src/app/{{project}}/components/auth/login/login.module.ts +22 -0
  519. package/template/{{project}}-ihm/src/app/{{project}}/components/auth/logout/logout/logout.component.html +8 -0
  520. package/template/{{project}}-ihm/src/app/{{project}}/components/auth/logout/logout/logout.component.scss +21 -0
  521. package/template/{{project}}-ihm/src/app/{{project}}/components/auth/logout/logout/logout.component.spec.ts +26 -0
  522. package/template/{{project}}-ihm/src/app/{{project}}/components/auth/logout/logout/logout.component.ts +15 -0
  523. package/template/{{project}}-ihm/src/app/{{project}}/components/auth/logout/logout.module.ts +27 -0
  524. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/architecture/architecture.component.html +132 -0
  525. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/architecture/architecture.component.scss +0 -0
  526. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/architecture/architecture.component.spec.ts +23 -0
  527. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/architecture/architecture.component.ts +86 -0
  528. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/demarrer/demarrer.component.html +3 -0
  529. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/demarrer/demarrer.component.scss +0 -0
  530. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/demarrer/demarrer.component.spec.ts +23 -0
  531. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/demarrer/demarrer.component.ts +15 -0
  532. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/deploiement/deploiement.component.html +3 -0
  533. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/deploiement/deploiement.component.scss +0 -0
  534. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/deploiement/deploiement.component.spec.ts +23 -0
  535. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/deploiement/deploiement.component.ts +15 -0
  536. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/documentation-routing.module.ts +25 -0
  537. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/documentation.module.ts +39 -0
  538. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/persitance/persitance.component.html +3 -0
  539. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/persitance/persitance.component.scss +0 -0
  540. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/persitance/persitance.component.spec.ts +23 -0
  541. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/persitance/persitance.component.ts +15 -0
  542. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/portail/portail.component.html +117 -0
  543. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/portail/portail.component.scss +0 -0
  544. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/portail/portail.component.spec.ts +23 -0
  545. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/portail/portail.component.ts +25 -0
  546. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/securite/securite.component.html +3 -0
  547. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/securite/securite.component.scss +0 -0
  548. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/securite/securite.component.spec.ts +23 -0
  549. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/securite/securite.component.ts +15 -0
  550. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/tests/tests.component.html +3 -0
  551. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/tests/tests.component.scss +0 -0
  552. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/tests/tests.component.spec.ts +23 -0
  553. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/tests/tests.component.ts +15 -0
  554. package/template/{{project}}-ihm/src/app/{{project}}/components/notfound/notfound-routing.module.ts +12 -0
  555. package/template/{{project}}-ihm/src/app/{{project}}/components/notfound/notfound.component.html +42 -0
  556. package/template/{{project}}-ihm/src/app/{{project}}/components/notfound/notfound.component.ts +7 -0
  557. package/template/{{project}}-ihm/src/app/{{project}}/components/notfound/notfound.module.ts +18 -0
  558. package/template/{{project}}-ihm/src/assets/.gitkeep +0 -0
  559. package/template/{{project}}-ihm/src/assets/favicon.ico +0 -0
  560. package/template/{{project}}-ihm/src/assets/i18n/fr.json +33 -0
  561. package/template/{{project}}-ihm/src/assets/images/angular.png +0 -0
  562. package/template/{{project}}-ihm/src/assets/images/orionavatar.png +0 -0
  563. package/template/{{project}}-ihm/src/assets/layout/fonts/lato-v17-latin-ext_latin-300.woff +0 -0
  564. package/template/{{project}}-ihm/src/assets/layout/fonts/lato-v17-latin-ext_latin-300.woff2 +0 -0
  565. package/template/{{project}}-ihm/src/assets/layout/fonts/lato-v17-latin-ext_latin-700.woff +0 -0
  566. package/template/{{project}}-ihm/src/assets/layout/fonts/lato-v17-latin-ext_latin-700.woff2 +0 -0
  567. package/template/{{project}}-ihm/src/assets/layout/fonts/lato-v17-latin-ext_latin-regular.woff +0 -0
  568. package/template/{{project}}-ihm/src/assets/layout/fonts/lato-v17-latin-ext_latin-regular.woff2 +0 -0
  569. package/template/{{project}}-ihm/src/assets/layout/images/LogoCerema.svg +226 -0
  570. package/template/{{project}}-ihm/src/assets/layout/images/LogoCerema_horizontal.svg +167 -0
  571. package/template/{{project}}-ihm/src/assets/layout/images/SpinnerCerema.svg +5 -0
  572. package/template/{{project}}-ihm/src/assets/layout/images/avatar.png +0 -0
  573. package/template/{{project}}-ihm/src/assets/layout/images/logo-dark.png +0 -0
  574. package/template/{{project}}-ihm/src/assets/layout/images/logo-light.png +0 -0
  575. package/template/{{project}}-ihm/src/assets/layout/images/user.png +0 -0
  576. package/template/{{project}}-ihm/src/assets/layout/styles/layout/_breadcrumb.scss +18 -0
  577. package/template/{{project}}-ihm/src/assets/layout/styles/layout/_config.scss +33 -0
  578. package/template/{{project}}-ihm/src/assets/layout/styles/layout/_content.scss +20 -0
  579. package/template/{{project}}-ihm/src/assets/layout/styles/layout/_fonts.scss +27 -0
  580. package/template/{{project}}-ihm/src/assets/layout/styles/layout/_footer.scss +25 -0
  581. package/template/{{project}}-ihm/src/assets/layout/styles/layout/_main.scss +29 -0
  582. package/template/{{project}}-ihm/src/assets/layout/styles/layout/_responsive.scss +159 -0
  583. package/template/{{project}}-ihm/src/assets/layout/styles/layout/_sidebar.scss +2 -0
  584. package/template/{{project}}-ihm/src/assets/layout/styles/layout/_topbar.scss +250 -0
  585. package/template/{{project}}-ihm/src/assets/layout/styles/layout/_typography.scss +63 -0
  586. package/template/{{project}}-ihm/src/assets/layout/styles/layout/_utils.scss +19 -0
  587. package/template/{{project}}-ihm/src/assets/layout/styles/layout/layout.scss +15 -0
  588. package/template/{{project}}-ihm/src/assets/layout/styles/layout/preloading.css +64 -0
  589. package/template/{{project}}-ihm/src/assets/layout/styles/layout/preloading.scss +79 -0
  590. package/template/{{project}}-ihm/src/assets/layout/styles/layout/sidebar/_sidebar_slim.scss +131 -0
  591. package/template/{{project}}-ihm/src/assets/layout/styles/layout/sidebar/_sidebar_vertical.scss +133 -0
  592. package/template/{{project}}-ihm/src/assets/layout/styles/layout/theme/_dark.scss +10 -0
  593. package/template/{{project}}-ihm/src/assets/layout/styles/layout/theme/_light.scss +10 -0
  594. package/template/{{project}}-ihm/src/assets/layout/styles/layout/theme/_primary.scss +10 -0
  595. package/template/{{project}}-ihm/src/assets/layout/styles/layout/theme/_themes.scss +3 -0
  596. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/_colors.scss +17 -0
  597. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/_common.scss +68 -0
  598. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/_components.scss +102 -0
  599. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/_mixins.scss +203 -0
  600. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/button/_button.scss +560 -0
  601. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/button/_speeddial.scss +81 -0
  602. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/button/_splitbutton.scss +381 -0
  603. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_carousel.scss +37 -0
  604. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_datatable.scss +278 -0
  605. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_dataview.scss +55 -0
  606. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_filter.scss +138 -0
  607. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_fullcalendar.scss +329 -0
  608. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_orderlist.scss +103 -0
  609. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_organizationchart.scss +50 -0
  610. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_paginator.scss +92 -0
  611. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_picklist.scss +103 -0
  612. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_timeline.scss +38 -0
  613. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_tree.scss +144 -0
  614. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_treetable.scss +246 -0
  615. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_virtualscroller.scss +28 -0
  616. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/file/_fileupload.scss +58 -0
  617. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_autocomplete.scss +117 -0
  618. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_calendar.scss +263 -0
  619. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_cascadeselect.scss +109 -0
  620. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_checkbox.scss +85 -0
  621. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_chips.scss +54 -0
  622. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_colorpicker.scss +19 -0
  623. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_dropdown.scss +135 -0
  624. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_editor.scss +122 -0
  625. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_inputgroup.scss +75 -0
  626. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_inputmask.scss +16 -0
  627. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_inputnumber.scss +28 -0
  628. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_inputswitch.scss +60 -0
  629. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_inputtext.scss +99 -0
  630. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_listbox.scss +82 -0
  631. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_multiselect.scss +171 -0
  632. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_password.scss +53 -0
  633. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_radiobutton.scss +78 -0
  634. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_rating.scss +48 -0
  635. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_selectbutton.scss +50 -0
  636. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_slider.scss +71 -0
  637. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_togglebutton.scss +48 -0
  638. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_treeselect.scss +139 -0
  639. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/menu/_breadcrumb.scss +42 -0
  640. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/menu/_contextmenu.scss +56 -0
  641. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/menu/_dock.scss +86 -0
  642. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/menu/_megamenu.scss +106 -0
  643. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/menu/_menu.scss +45 -0
  644. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/menu/_menubar.scss +183 -0
  645. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/menu/_panelmenu.scss +140 -0
  646. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/menu/_slidemenu.scss +59 -0
  647. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/menu/_steps.scss +56 -0
  648. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/menu/_tabmenu.scss +69 -0
  649. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/menu/_tieredmenu.scss +60 -0
  650. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/messages/_inlinemessage.scss +64 -0
  651. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/messages/_message.scss +102 -0
  652. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/messages/_toast.scss +95 -0
  653. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/misc/_avatar.scss +30 -0
  654. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/misc/_badge.scss +48 -0
  655. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/misc/_blockui.scss +0 -0
  656. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/misc/_chip.scss +38 -0
  657. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/misc/_inplace.scss +17 -0
  658. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/misc/_progressbar.scss +17 -0
  659. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/misc/_scrolltop.scss +20 -0
  660. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/misc/_skeleton.scss +8 -0
  661. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/misc/_tag.scss +35 -0
  662. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/misc/_terminal.scss +11 -0
  663. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/multimedia/_galleria.scss +139 -0
  664. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/multimedia/_image.scss +44 -0
  665. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/overlay/_confirmpopup.scss +65 -0
  666. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/overlay/_dialog.scss +64 -0
  667. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/overlay/_overlaypanel.scss +62 -0
  668. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/overlay/_sidebar.scss +23 -0
  669. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/overlay/_tooltip.scss +33 -0
  670. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/panel/_accordion.scss +119 -0
  671. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/panel/_card.scss +30 -0
  672. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/panel/_divider.scss +31 -0
  673. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/panel/_fieldset.scss +47 -0
  674. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/panel/_panel.scss +58 -0
  675. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/panel/_scrollpanel.scss +6 -0
  676. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/panel/_splitter.scss +19 -0
  677. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/panel/_tabview.scss +78 -0
  678. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/panel/_toolbar.scss +10 -0
  679. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/_extensions.scss +90 -0
  680. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/_variables.scss +867 -0
  681. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/blue/theme.css +7341 -0
  682. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/blue/theme.scss +12 -0
  683. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/cyan/theme.css +7341 -0
  684. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/cyan/theme.scss +12 -0
  685. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/deeppurple/theme.css +7341 -0
  686. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/deeppurple/theme.scss +12 -0
  687. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/green/theme.css +7341 -0
  688. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/green/theme.scss +12 -0
  689. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/indigo/theme.css +6228 -0
  690. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/indigo/theme.scss +12 -0
  691. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/lime/theme.css +7341 -0
  692. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/lime/theme.scss +12 -0
  693. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/orange/theme.css +7341 -0
  694. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/orange/theme.scss +12 -0
  695. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/pink/theme.css +7341 -0
  696. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/pink/theme.scss +12 -0
  697. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/purple/theme.css +7341 -0
  698. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/purple/theme.scss +12 -0
  699. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/yellow/theme.css +7341 -0
  700. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/yellow/theme.scss +12 -0
  701. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/_extensions.scss +90 -0
  702. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/_variables.scss +870 -0
  703. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/blue/theme.css +7341 -0
  704. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/blue/theme.scss +12 -0
  705. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/cyan/theme.css +7341 -0
  706. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/cyan/theme.scss +12 -0
  707. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/deeppurple/theme.css +7341 -0
  708. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/deeppurple/theme.scss +12 -0
  709. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/green/theme.css +7341 -0
  710. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/green/theme.scss +12 -0
  711. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/indigo/theme.css +7341 -0
  712. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/indigo/theme.scss +12 -0
  713. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/lime/theme.css +7341 -0
  714. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/lime/theme.scss +12 -0
  715. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/orange/theme.css +7341 -0
  716. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/orange/theme.scss +12 -0
  717. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/pink/theme.css +7341 -0
  718. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/pink/theme.scss +12 -0
  719. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/purple/theme.css +7341 -0
  720. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/purple/theme.scss +12 -0
  721. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/yellow/theme.css +7341 -0
  722. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/yellow/theme.scss +12 -0
  723. package/template/{{project}}-ihm/src/assets/{{project}}/data/chat.json +124 -0
  724. package/template/{{project}}-ihm/src/assets/{{project}}/data/countries.json +972 -0
  725. package/template/{{project}}-ihm/src/assets/{{project}}/data/customers-large.json +3604 -0
  726. package/template/{{project}}-ihm/src/assets/{{project}}/data/customers-medium.json +804 -0
  727. package/template/{{project}}-ihm/src/assets/{{project}}/data/customers-small.json +164 -0
  728. package/template/{{project}}-ihm/src/assets/{{project}}/data/file-management.json +197 -0
  729. package/template/{{project}}-ihm/src/assets/{{project}}/data/files-lazy.json +25 -0
  730. package/template/{{project}}-ihm/src/assets/{{project}}/data/files.json +120 -0
  731. package/template/{{project}}-ihm/src/assets/{{project}}/data/filesystem-lazy.json +20 -0
  732. package/template/{{project}}-ihm/src/assets/{{project}}/data/filesystem.json +312 -0
  733. package/template/{{project}}-ihm/src/assets/{{project}}/data/gares.json +6179 -0
  734. package/template/{{project}}-ihm/src/assets/{{project}}/data/icons.json +8516 -0
  735. package/template/{{project}}-ihm/src/assets/{{project}}/data/kanban.json +304 -0
  736. package/template/{{project}}-ihm/src/assets/{{project}}/data/mail.json +365 -0
  737. package/template/{{project}}-ihm/src/assets/{{project}}/data/members.json +49 -0
  738. package/template/{{project}}-ihm/src/assets/{{project}}/data/photos.json +94 -0
  739. package/template/{{project}}-ihm/src/assets/{{project}}/data/products-mixed.json +364 -0
  740. package/template/{{project}}-ihm/src/assets/{{project}}/data/products-orders-small.json +341 -0
  741. package/template/{{project}}-ihm/src/assets/{{project}}/data/products-orders.json +833 -0
  742. package/template/{{project}}-ihm/src/assets/{{project}}/data/products-small.json +124 -0
  743. package/template/{{project}}-ihm/src/assets/{{project}}/data/products.json +394 -0
  744. package/template/{{project}}-ihm/src/assets/{{project}}/data/scheduleevents.json +79 -0
  745. package/template/{{project}}-ihm/src/assets/{{project}}/data/tasks.json +205 -0
  746. package/template/{{project}}-ihm/src/assets/{{project}}/images/auth/access-denied.svg +103 -0
  747. package/template/{{project}}-ihm/src/assets/{{project}}/images/auth/error.svg +343 -0
  748. package/template/{{project}}-ihm/src/assets/{{project}}/styles/badges.css +109 -0
  749. package/template/{{project}}-ihm/src/assets/{{project}}/styles/badges.scss +109 -0
  750. package/template/{{project}}-ihm/src/assets/{{project}}/styles/flags/flags.css +1 -0
  751. package/template/{{project}}-ihm/src/assets/{{project}}/styles/flags/flags_responsive.png +0 -0
  752. package/template/{{project}}-ihm/src/assets/{{project}}/styles/marep_leaflet.css +4 -0
  753. package/template/{{project}}-ihm/src/environments/environment.ts +24 -0
  754. package/template/{{project}}-ihm/src/index.html +28 -0
  755. package/template/{{project}}-ihm/src/main.ts +13 -0
  756. package/template/{{project}}-ihm/src/polyfills.ts +64 -0
  757. package/template/{{project}}-ihm/src/styles.scss +27 -0
  758. package/template/{{project}}-ihm/src/test.ts +24 -0
  759. package/template/{{project}}-ihm/src/themes.scss +84 -0
  760. package/template/{{project}}-ihm/tsconfig.app.json +13 -0
  761. package/template/{{project}}-ihm/tsconfig.json +36 -0
  762. package/template/{{project}}-ihm/tsconfig.spec.json +13 -0
  763. package/template/{{project}}-metier/pom.xml +134 -0
  764. package/template/{{project}}-metier/src/main/java/fr/cerema/dsi/commons/services/ContentMailService.java +18 -0
  765. package/template/{{project}}-metier/src/main/java/fr/cerema/dsi/commons/services/GenericService.java +30 -0
  766. package/template/{{project}}-metier/src/main/java/fr/cerema/dsi/commons/services/GenericServiceImpl.java +62 -0
  767. package/template/{{project}}-metier/src/main/java/fr/cerema/dsi/commons/services/MailService.java +42 -0
  768. package/template/{{project}}-metier/src/main/java/fr/cerema/dsi/marep/services/marep/ProfilService.java +24 -0
  769. package/template/{{project}}-metier/src/main/java/fr/cerema/dsi/marep/services/marep/UserService.java +36 -0
  770. package/template/{{project}}-metier/src/main/java/fr/cerema/dsi/marep/services/marep/impl/ProfilServiceImpl.java +26 -0
  771. package/template/{{project}}-metier/src/main/java/fr/cerema/dsi/marep/services/marep/impl/UserServiceImpl.java +75 -0
  772. package/template/{{project}}-metier/src/main/java/fr/cerema/dsi/marep/services/security/UserSecurityServiceUtil.java +30 -0
  773. package/template/{{project}}-metier/src/test/java/fr/cerema/dsi/marep/services/marep/UserServiceImplTest.java +60 -0
  774. package/template/{{project}}-persistance/pom.xml +72 -0
  775. package/template/{{project}}-persistance/src/main/java/fr/cerema/dsi/commons/repositories/AbstractDao.java +118 -0
  776. package/template/{{project}}-persistance/src/main/java/fr/cerema/dsi/commons/repositories/GenericRepository.java +101 -0
  777. package/template/{{project}}-persistance/src/main/java/fr/cerema/dsi/commons/repositories/IAbstractDao.java +66 -0
  778. package/template/{{project}}-persistance/src/main/java/fr/cerema/dsi/marep/repositories/marep/ProfilRepository.java +18 -0
  779. package/template/{{project}}-persistance/src/main/java/fr/cerema/dsi/marep/repositories/marep/UserRepository.java +28 -0
  780. package/template/{{project}}-presentation/Readme.md +98 -0
  781. package/template/{{project}}-presentation/pom.xml +258 -0
  782. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/commons/beans/errors/ApiSubError.java +5 -0
  783. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/commons/beans/errors/ApiValidationSubError.java +13 -0
  784. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/commons/beans/errors/JsonApiError.java +308 -0
  785. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/commons/controllers/AbstractErrorHandler.java +67 -0
  786. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/commons/controllers/CustomErrorController.java +57 -0
  787. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/commons/controllers/RestResponseEntityExceptionHandler.java +75 -0
  788. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/commons/security/auth/jwt/exceptions/InvalidTokenException.java +30 -0
  789. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/commons/security/exceptions/AuthenticationServiceException.java +30 -0
  790. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/commons/security/exceptions/NoRoleForUserServiceException.java +29 -0
  791. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/commons/security/filters/AppCorsFilter.java +45 -0
  792. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/App.java +20 -0
  793. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/config/AspectJConfiguration.java +58 -0
  794. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/config/AuthenticationTokenFilter.java +126 -0
  795. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/config/MailConfig.java +54 -0
  796. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/config/ResourceServerConfig.java +78 -0
  797. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/config/WebConfiguration.java +60 -0
  798. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/config/service/CustomUserDetailsService.java +41 -0
  799. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/config/service/StaticResourcesWebConfiguration.java +41 -0
  800. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/controllers/AccountController.java +59 -0
  801. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/controllers/ApiOpenController.java +62 -0
  802. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/controllers/HelloWorld.java +11 -0
  803. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/controllers/UserController.java +63 -0
  804. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/dto/CommuneDTO.java +19 -0
  805. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/dto/CommuneWithGeoDTO.java +19 -0
  806. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/dto/DepartementDTO.java +19 -0
  807. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/dto/DepartementWithGeoDTO.java +18 -0
  808. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/dto/GareDTO.java +49 -0
  809. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/dto/GenericDTO.java +20 -0
  810. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/dto/ProfilDTO.java +26 -0
  811. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/dto/RegionDTO.java +19 -0
  812. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/dto/RegionWithGeoDTO.java +18 -0
  813. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/dto/UserDTO.java +57 -0
  814. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/dto/UserWithCurrentAuthorityDTO.java +31 -0
  815. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/mapper/UserMapper.java +26 -0
  816. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/utils/GeometryUtils.java +17 -0
  817. package/template/{{project}}-presentation/src/main/resources/META-INF/spring.factories +2 -0
  818. package/template/{{project}}-presentation/src/main/resources/banner.txt +3 -0
  819. package/template/{{project}}-presentation/src/main/resources/logback-spring.xml +15 -0
  820. package/template/{{project}}-presentation/src/main/resources-filtered/application-dev.yml +143 -0
  821. package/template/{{project}}-presentation/src/main/resources-filtered/application.yml +131 -0
  822. package/template/{{project}}-presentation/src/test/java/fr/cerema/dsi/marep/service/IntegrationTest.java +18 -0
  823. package/template/{{project}}-presentation/src/test/java/fr/cerema/dsi/marep/service/UserServiceImplIT.java +43 -0
  824. package/template/{{project}}-presentation/src/test/resources/application.yml +41 -0
  825. package/template/{{project}}-presentation/src/test/resources/db.migration/Readme.md +6 -0
  826. package/template/{{project}}-transverse/pom.xml +33 -0
  827. package/template/{{project}}-transverse/src/main/java/fr/cerema/dsi/commons/entities/GenericEntity.java +43 -0
  828. package/template/{{project}}-transverse/src/main/java/fr/cerema/dsi/commons/exceptions/BadRequestException.java +43 -0
  829. package/template/{{project}}-transverse/src/main/java/fr/cerema/dsi/commons/exceptions/EntityNotFoundException.java +9 -0
  830. package/template/{{project}}-transverse/src/main/java/fr/cerema/dsi/commons/exceptions/GenericRepositoryException.java +29 -0
  831. package/template/{{project}}-transverse/src/main/java/fr/cerema/dsi/commons/exceptions/GenericServiceException.java +29 -0
  832. package/template/{{project}}-transverse/src/main/java/fr/cerema/dsi/commons/exceptions/UserNotFoundException.java +11 -0
  833. package/template/{{project}}-transverse/src/main/java/fr/cerema/dsi/commons/exceptions/UtilsException.java +13 -0
  834. package/template/{{project}}-transverse/src/main/java/fr/cerema/dsi/marep/entities/Commune.java +37 -0
  835. package/template/{{project}}-transverse/src/main/java/fr/cerema/dsi/marep/entities/Departement.java +37 -0
  836. package/template/{{project}}-transverse/src/main/java/fr/cerema/dsi/marep/entities/Gare.java +48 -0
  837. package/template/{{project}}-transverse/src/main/java/fr/cerema/dsi/marep/entities/Profil.java +53 -0
  838. package/template/{{project}}-transverse/src/main/java/fr/cerema/dsi/marep/entities/Region.java +30 -0
  839. package/template/{{project}}-transverse/src/main/java/fr/cerema/dsi/marep/entities/User.java +79 -0
  840. package/template/{{project}}-transverse/src/main/java/fr/cerema/dsi/marep/enums/Role.java +8 -0
  841. package/template/{{project}}-transverse/src/main/java/fr/cerema/dsi/marep/exceptions/JwtConfMalformedException.java +9 -0
  842. package/template.zip +0 -0
@@ -0,0 +1,60 @@
1
+ package fr.cerema.dsi.{{project}}.config;
2
+
3
+ import io.swagger.v3.oas.models.OpenAPI;
4
+ import io.swagger.v3.oas.models.info.Info;
5
+ import io.swagger.v3.oas.models.info.License;
6
+ import io.swagger.v3.oas.models.servers.Server;
7
+ import org.apache.commons.lang3.StringUtils;
8
+ import org.slf4j.Logger;
9
+ import org.slf4j.LoggerFactory;
10
+ import org.springframework.beans.factory.annotation.Value;
11
+ import org.springframework.cache.annotation.EnableCaching;
12
+ import org.springframework.context.annotation.Bean;
13
+ import org.springframework.context.annotation.Configuration;
14
+ import org.springframework.http.MediaType;
15
+ import org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer;
16
+ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
17
+
18
+ @Configuration
19
+ @EnableCaching
20
+ public class WebConfiguration implements WebMvcConfigurer {
21
+
22
+ private static Logger logger = LoggerFactory.getLogger(WebConfiguration.class);
23
+
24
+ @Value("${url.externe:}")
25
+ private String urlExterne;
26
+
27
+ @Value("${info.app.version:unknown}")
28
+ private String version;
29
+
30
+ @Override
31
+ public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
32
+
33
+ logger.info("Initialisation de la configuration de la négociation de contenu.");
34
+
35
+ configurer.
36
+ favorParameter(true).
37
+ parameterName("mediaType").
38
+ ignoreAcceptHeader(false).
39
+ defaultContentType(MediaType.APPLICATION_JSON).
40
+ mediaType("xml", MediaType.APPLICATION_XML).
41
+ mediaType("json", MediaType.APPLICATION_JSON);
42
+ }
43
+
44
+ @Bean
45
+ public OpenAPI infoOpenAPI() {
46
+ // TODO ADAPTE
47
+ OpenAPI openAPI = new OpenAPI()
48
+ .info(new Info().title("{{projectUpper}} API")
49
+ .description("<b>AMODIFIER-TitreLong</b>.")
50
+ .version(version)
51
+ .license(new License().name("Cecill 2.0")
52
+ .url("http://www.cecill.info/licences/Licence_CeCILL_V2-fr.html")));
53
+
54
+ if (StringUtils.isNotBlank(urlExterne)) {
55
+ openAPI.addServersItem(new Server().url(urlExterne));
56
+ }
57
+ return openAPI;
58
+ }
59
+
60
+ }
@@ -0,0 +1,41 @@
1
+ package fr.cerema.dsi.{{project}}.config.service;
2
+
3
+ import fr.cerema.dsi.commons.security.exceptions.NoRoleForUserServiceException;
4
+ import fr.cerema.dsi.{{project}}.enums.Role;
5
+ import fr.cerema.dsi.{{project}}.services.{{project}}.ProfilService;
6
+ import org.springframework.beans.factory.annotation.Autowired;
7
+ import org.springframework.security.core.GrantedAuthority;
8
+ import org.springframework.security.core.authority.SimpleGrantedAuthority;
9
+ import org.springframework.security.core.userdetails.UserDetails;
10
+ import org.springframework.security.core.userdetails.UserDetailsService;
11
+ import org.springframework.security.core.userdetails.UsernameNotFoundException;
12
+ import org.springframework.stereotype.Service;
13
+
14
+ import java.util.ArrayList;
15
+ import java.util.List;
16
+
17
+
18
+ @Service
19
+ public class CustomUserDetailsService implements UserDetailsService {
20
+
21
+ @Autowired
22
+ private ProfilService profilService;
23
+
24
+ private static final String PREFIX_ROLE = "ROLE_";
25
+
26
+ @Override
27
+ public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
28
+ // récupération des rôles
29
+ List<Role> roles = profilService.findAllCurrentRolesByUsername(username);
30
+ List<GrantedAuthority> authorities = new ArrayList<>();
31
+ // Création des authorities de Spring
32
+ roles.forEach(role -> authorities.add(new SimpleGrantedAuthority(PREFIX_ROLE + role)));
33
+ if (authorities.isEmpty()) {
34
+ throw new NoRoleForUserServiceException(
35
+ String.format("L'utilisateur %s n'a pas de role nous ne pouvons pas l'authentifier",
36
+ username));
37
+ }
38
+ return new org.springframework.security.core.userdetails.User(username, "",
39
+ authorities);
40
+ }
41
+ }
@@ -0,0 +1,41 @@
1
+ package fr.cerema.dsi.{{project}}.config.service;
2
+
3
+ import org.springframework.context.annotation.Configuration;
4
+ import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistration;
5
+ import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
6
+ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
7
+
8
+ @Configuration
9
+ public class StaticResourcesWebConfiguration implements WebMvcConfigurer {
10
+
11
+ protected static final String[] RESOURCE_LOCATIONS = new String[]{
12
+ "classpath:/static/",
13
+ "classpath:/static/content/",
14
+ "classpath:/static/i18n/",
15
+ };
16
+ protected static final String[] RESOURCE_PATHS = new String[]{
17
+ "/*.js",
18
+ "/*.css",
19
+ "/*.svg",
20
+ "/*.png",
21
+ "*.ico",
22
+ "/content/**",
23
+ "/i18n/*",
24
+ };
25
+
26
+
27
+ @Override
28
+ public void addResourceHandlers(ResourceHandlerRegistry registry) {
29
+ ResourceHandlerRegistration resourceHandlerRegistration = appendResourceHandler(registry);
30
+ initializeResourceHandler(resourceHandlerRegistration);
31
+ }
32
+
33
+ protected ResourceHandlerRegistration appendResourceHandler(ResourceHandlerRegistry registry) {
34
+ return registry.addResourceHandler(RESOURCE_PATHS);
35
+ }
36
+
37
+ protected void initializeResourceHandler(
38
+ ResourceHandlerRegistration resourceHandlerRegistration) {
39
+ resourceHandlerRegistration.addResourceLocations(RESOURCE_LOCATIONS);
40
+ }
41
+ }
@@ -0,0 +1,59 @@
1
+ package fr.cerema.dsi.{{project}}.controllers;
2
+
3
+ import fr.cerema.dsi.{{project}}.dto.UserWithCurrentAuthorityDTO;
4
+ import fr.cerema.dsi.{{project}}.entities.User;
5
+ import fr.cerema.dsi.{{project}}.mapper.UserMapper;
6
+ import fr.cerema.dsi.{{project}}.services.{{project}}.UserService;
7
+ import io.swagger.v3.oas.annotations.Operation;
8
+ import io.swagger.v3.oas.annotations.media.Content;
9
+ import io.swagger.v3.oas.annotations.media.Schema;
10
+ import io.swagger.v3.oas.annotations.responses.ApiResponse;
11
+ import io.swagger.v3.oas.annotations.responses.ApiResponses;
12
+ import io.swagger.v3.oas.annotations.tags.Tag;
13
+ import org.springframework.http.HttpStatus;
14
+ import org.springframework.http.MediaType;
15
+ import org.springframework.http.ResponseEntity;
16
+ import org.springframework.web.bind.annotation.CrossOrigin;
17
+ import org.springframework.web.bind.annotation.GetMapping;
18
+ import org.springframework.web.bind.annotation.RequestMapping;
19
+ import org.springframework.web.bind.annotation.RestController;
20
+ import org.springframework.web.server.ResponseStatusException;
21
+
22
+ import java.util.Optional;
23
+
24
+ @Tag(name = "12 - Account", description = "Permet d'interroger le niveau d'authorisation de l'utilisateur courant")
25
+ @RestController
26
+ @RequestMapping("/api")
27
+ @CrossOrigin
28
+ public class AccountController {
29
+
30
+ private final UserService userService;
31
+
32
+ private final UserMapper userMapper;
33
+
34
+ public AccountController(UserService userService, UserMapper userMapper) {
35
+ this.userService = userService;
36
+ this.userMapper = userMapper;
37
+ }
38
+
39
+
40
+ @Operation(summary = "Récupère l'utilisateur actuellement connecté")
41
+ @ApiResponses(value = {
42
+ @ApiResponse(responseCode = "200", description = "L'utilisateur connecté", content = {
43
+ @Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
44
+ schema = @Schema(implementation = UserWithCurrentAuthorityDTO.class)
45
+ )
46
+ }),
47
+ @ApiResponse(responseCode = "404", description = "L'utilisateur n'existe pas dans l'application", content = @Content)
48
+ })
49
+ @GetMapping("/user")
50
+ public ResponseEntity<UserWithCurrentAuthorityDTO> getCurrentUser() {
51
+ Optional<User> userOptional = this.userService.getCurrentUser();
52
+ if (userOptional.isPresent()) {
53
+ return new ResponseEntity<>(userMapper.toDtoWithCurrentAuthority(userOptional.get()),
54
+ HttpStatus.OK);
55
+ }
56
+ throw new ResponseStatusException(HttpStatus.NOT_FOUND,
57
+ "L'utilisateur n'existe pas dans l'application");
58
+ }
59
+ }
@@ -0,0 +1,62 @@
1
+ package fr.cerema.dsi.{{project}}.controllers;
2
+
3
+ import fr.cerema.dsi.{{project}}.dto.UserDTO;
4
+ import fr.cerema.dsi.{{project}}.entities.User;
5
+ import fr.cerema.dsi.{{project}}.mapper.UserMapper;
6
+ import fr.cerema.dsi.{{project}}.services.{{project}}.UserService;
7
+ import io.swagger.v3.oas.annotations.Operation;
8
+ import io.swagger.v3.oas.annotations.media.ArraySchema;
9
+ import io.swagger.v3.oas.annotations.media.Content;
10
+ import io.swagger.v3.oas.annotations.media.Schema;
11
+ import io.swagger.v3.oas.annotations.responses.ApiResponse;
12
+ import io.swagger.v3.oas.annotations.tags.Tag;
13
+ import org.slf4j.Logger;
14
+ import org.slf4j.LoggerFactory;
15
+ import org.springframework.beans.factory.annotation.Autowired;
16
+ import org.springframework.http.HttpStatus;
17
+ import org.springframework.http.MediaType;
18
+ import org.springframework.http.ResponseEntity;
19
+ import org.springframework.web.bind.annotation.CrossOrigin;
20
+ import org.springframework.web.bind.annotation.GetMapping;
21
+ import org.springframework.web.bind.annotation.RequestMapping;
22
+ import org.springframework.web.bind.annotation.RestController;
23
+
24
+ import java.util.List;
25
+ import java.util.stream.Collectors;
26
+
27
+ @Tag(name = "API open", description = "Permet d'interroger et de parcourir les API sans authentification")
28
+ @RestController
29
+ @RequestMapping("/api-open")
30
+ @CrossOrigin
31
+ public class ApiOpenController {
32
+
33
+ private final Logger log = LoggerFactory.getLogger(ApiOpenController.class);
34
+
35
+ private final UserService userService;
36
+
37
+ private final UserMapper userMapper;
38
+
39
+ @Autowired
40
+ public ApiOpenController(UserService userService, UserMapper userMapper) {
41
+ this.userService = userService;
42
+ this.userMapper = userMapper;
43
+ }
44
+
45
+ @Operation(summary = "Récupère tous les administrateurs {{projectUpper}}",
46
+ description =
47
+ "Permet d'obtenir la liste de tous les utilisateurs qui sont administrateurs {{projectUpper}}")
48
+ @ApiResponse(responseCode = "200", description = "Les administrateurs {{projectUpper}} demandés", content = {
49
+ @Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
50
+ array = @ArraySchema(schema = @Schema(implementation = User.class))
51
+ )}
52
+ )
53
+ @GetMapping("/users/admin-{{project}}")
54
+ public ResponseEntity<List<UserDTO>> getAllAdmin{{projectID}}() {
55
+ log.debug("Requête REST pour obtenir tous les administrateurs {{projectUpper}}");
56
+ List<UserDTO> userDTOList = this.userService.findAllAdmin{{projectID}}()
57
+ .stream()
58
+ .map(this.userMapper::toDtoWithoutProfilSet)
59
+ .collect(Collectors.toList());
60
+ return new ResponseEntity<>(userDTOList, HttpStatus.OK);
61
+ }
62
+ }
@@ -0,0 +1,11 @@
1
+ package fr.cerema.dsi.{{project}}.controllers;
2
+ import org.springframework.web.bind.annotation.GetMapping;
3
+ import org.springframework.web.bind.annotation.RestController;
4
+
5
+ @RestController
6
+ public class HelloWorld {
7
+ @GetMapping("/hello-world")
8
+ public String HelloWorld(){
9
+ return "Hello World";
10
+ }
11
+ }
@@ -0,0 +1,63 @@
1
+ package fr.cerema.dsi.{{project}}.controllers;
2
+
3
+ import fr.cerema.dsi.{{project}}.dto.UserDTO;
4
+ import fr.cerema.dsi.{{project}}.entities.User;
5
+ import fr.cerema.dsi.{{project}}.mapper.UserMapper;
6
+ import fr.cerema.dsi.{{project}}.services.{{project}}.UserService;
7
+ import io.swagger.v3.oas.annotations.Operation;
8
+ import io.swagger.v3.oas.annotations.media.ArraySchema;
9
+ import io.swagger.v3.oas.annotations.media.Content;
10
+ import io.swagger.v3.oas.annotations.media.Schema;
11
+ import io.swagger.v3.oas.annotations.responses.ApiResponse;
12
+ import io.swagger.v3.oas.annotations.tags.Tag;
13
+ import org.slf4j.Logger;
14
+ import org.slf4j.LoggerFactory;
15
+ import org.springframework.beans.factory.annotation.Autowired;
16
+ import org.springframework.http.HttpStatus;
17
+ import org.springframework.http.MediaType;
18
+ import org.springframework.http.ResponseEntity;
19
+ import org.springframework.web.bind.annotation.CrossOrigin;
20
+ import org.springframework.web.bind.annotation.GetMapping;
21
+ import org.springframework.web.bind.annotation.RequestMapping;
22
+ import org.springframework.web.bind.annotation.RestController;
23
+
24
+ import java.util.List;
25
+ import java.util.stream.Collectors;
26
+
27
+ @Tag(name = "01 - Utilisateurs de {{projectUpper}}", description = "Permet d'interroger et de parcourir les utilisateurs de {{projectUpper}}")
28
+ @RestController
29
+ @RequestMapping("/api")
30
+ @CrossOrigin
31
+ public class UserController {
32
+
33
+ private final Logger log = LoggerFactory.getLogger(UserController.class);
34
+
35
+ private final UserService userService;
36
+
37
+ private final UserMapper userMapper;
38
+
39
+ @Autowired
40
+ public UserController(UserService userService, UserMapper userMapper) {
41
+ this.userService = userService;
42
+ this.userMapper = userMapper;
43
+ }
44
+
45
+ @Operation(summary = "Récupère tous les administrateurs {{projectUpper}}",
46
+ description =
47
+ "Permet d'obtenir la liste de tous les utilisateurs qui sont administrateurs {{projectUpper}}")
48
+ @ApiResponse(responseCode = "200", description = "Les administrateurs {{projectUpper}} demandés", content = {
49
+ @Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
50
+ array = @ArraySchema(schema = @Schema(implementation = User.class))
51
+ )}
52
+ )
53
+ @GetMapping("/users/admin-{{project}}")
54
+ public ResponseEntity<List<UserDTO>> getAllAdmin{{projectID}}() {
55
+ log.debug("Requête REST pour obtenir tous les administrateurs {{projectUpper}}");
56
+ List<UserDTO> userDTOList = this.userService.findAllAdmin{{projectID}}()
57
+ .stream()
58
+ .map(this.userMapper::toDtoWithoutProfilSet)
59
+ .collect(Collectors.toList());
60
+ return new ResponseEntity<>(userDTOList, HttpStatus.OK);
61
+ }
62
+
63
+ }
@@ -0,0 +1,19 @@
1
+ package fr.cerema.dsi.{{project}}.dto;
2
+
3
+ import com.fasterxml.jackson.annotation.JsonProperty;
4
+ import lombok.Getter;
5
+ import lombok.Setter;
6
+
7
+ @Getter
8
+ @Setter
9
+ public class CommuneDTO extends GenericDTO {
10
+
11
+ @JsonProperty("code")
12
+ private String code;
13
+
14
+ @JsonProperty("nom")
15
+ private String nom;
16
+
17
+ @JsonProperty("departement")
18
+ private DepartementDTO departement;
19
+ }
@@ -0,0 +1,19 @@
1
+ package fr.cerema.dsi.{{project}}.dto;
2
+
3
+ import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
4
+ import com.fasterxml.jackson.databind.annotation.JsonSerialize;
5
+ import lombok.Getter;
6
+ import lombok.Setter;
7
+ import org.locationtech.jts.geom.Geometry;
8
+ import org.n52.jackson.datatype.jts.GeometryDeserializer;
9
+ import org.n52.jackson.datatype.jts.GeometrySerializer;
10
+
11
+ @Getter
12
+ @Setter
13
+ public class CommuneWithGeoDTO extends CommuneDTO {
14
+
15
+ @JsonSerialize(using = GeometrySerializer.class)
16
+ @JsonDeserialize(using = GeometryDeserializer.class)
17
+ private Geometry geometry;
18
+
19
+ }
@@ -0,0 +1,19 @@
1
+ package fr.cerema.dsi.{{project}}.dto;
2
+
3
+ import com.fasterxml.jackson.annotation.JsonProperty;
4
+ import lombok.Getter;
5
+ import lombok.Setter;
6
+
7
+ @Getter
8
+ @Setter
9
+ public class DepartementDTO extends GenericDTO {
10
+
11
+ @JsonProperty("code")
12
+ private String code;
13
+
14
+ @JsonProperty("nom")
15
+ private String nom;
16
+
17
+ @JsonProperty("region")
18
+ private RegionDTO region;
19
+ }
@@ -0,0 +1,18 @@
1
+ package fr.cerema.dsi.{{project}}.dto;
2
+
3
+ import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
4
+ import com.fasterxml.jackson.databind.annotation.JsonSerialize;
5
+ import lombok.Getter;
6
+ import lombok.Setter;
7
+ import org.locationtech.jts.geom.Geometry;
8
+ import org.n52.jackson.datatype.jts.GeometryDeserializer;
9
+ import org.n52.jackson.datatype.jts.GeometrySerializer;
10
+
11
+ @Getter
12
+ @Setter
13
+ public class DepartementWithGeoDTO extends DepartementDTO {
14
+
15
+ @JsonSerialize(using = GeometrySerializer.class)
16
+ @JsonDeserialize(using = GeometryDeserializer.class)
17
+ private Geometry geometry;
18
+ }
@@ -0,0 +1,49 @@
1
+ package fr.cerema.dsi.{{project}}.dto;
2
+
3
+ import com.fasterxml.jackson.annotation.JsonProperty;
4
+ import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
5
+ import com.fasterxml.jackson.databind.annotation.JsonSerialize;
6
+ import lombok.Getter;
7
+ import lombok.Setter;
8
+ import org.locationtech.jts.geom.Geometry;
9
+ import org.n52.jackson.datatype.jts.GeometryDeserializer;
10
+ import org.n52.jackson.datatype.jts.GeometrySerializer;
11
+
12
+ public class GareDTO extends GenericDTO {
13
+
14
+ @Getter
15
+ @Setter
16
+ @JsonProperty("nom")
17
+ private String nom;
18
+
19
+ @Getter
20
+ @Setter
21
+ @JsonProperty("voyageur")
22
+ private Boolean voyageur;
23
+
24
+ @Getter
25
+ @Setter
26
+ @JsonProperty("fret")
27
+ private Boolean fret;
28
+
29
+ @Getter
30
+ @Setter
31
+ @JsonProperty("infrastructure")
32
+ private Boolean infrastructure;
33
+
34
+ @Getter
35
+ @Setter
36
+ @JsonProperty("exploitee")
37
+ private Boolean exploitee;
38
+
39
+ @Getter
40
+ @Setter
41
+ @JsonSerialize(using = GeometrySerializer.class)
42
+ @JsonDeserialize(using = GeometryDeserializer.class)
43
+ private Geometry geometry;
44
+
45
+ @Getter
46
+ @Setter
47
+ @JsonProperty("commune")
48
+ private CommuneDTO commune;
49
+ }
@@ -0,0 +1,20 @@
1
+ package fr.cerema.dsi.{{project}}.dto;
2
+
3
+ import com.fasterxml.jackson.annotation.JsonProperty;
4
+
5
+ import java.io.Serializable;
6
+
7
+ public abstract class GenericDTO implements Serializable {
8
+
9
+ @JsonProperty("id")
10
+ private Long id;
11
+
12
+ public Long getId() {
13
+ return id;
14
+ }
15
+
16
+ public void setId(Long id) {
17
+ this.id = id;
18
+ }
19
+
20
+ }
@@ -0,0 +1,26 @@
1
+ package fr.cerema.dsi.{{project}}.dto;
2
+
3
+ import fr.cerema.dsi.{{project}}.enums.Role;
4
+
5
+ public class ProfilDTO extends GenericDTO {
6
+
7
+ private Role profilUtilisateur;
8
+
9
+
10
+ public Role getProfilUtilisateur() {
11
+ return profilUtilisateur;
12
+ }
13
+
14
+ public void setProfilUtilisateur(Role profilUtilisateur) {
15
+ this.profilUtilisateur = profilUtilisateur;
16
+ }
17
+
18
+
19
+ @Override
20
+ public String toString() {
21
+ return "ProfilDTO{" +
22
+ "id=" + this.getId() +
23
+ ", profilUtilisateur=" + profilUtilisateur +
24
+ '}';
25
+ }
26
+ }
@@ -0,0 +1,19 @@
1
+ package fr.cerema.dsi.{{project}}.dto;
2
+
3
+
4
+ import com.fasterxml.jackson.annotation.JsonProperty;
5
+ import lombok.Getter;
6
+ import lombok.Setter;
7
+
8
+
9
+ @Getter
10
+ @Setter
11
+ public class RegionDTO extends GenericDTO {
12
+
13
+ @JsonProperty("code")
14
+ private String code;
15
+
16
+ @JsonProperty("nom")
17
+ private String nom;
18
+
19
+ }
@@ -0,0 +1,18 @@
1
+ package fr.cerema.dsi.{{project}}.dto;
2
+
3
+ import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
4
+ import com.fasterxml.jackson.databind.annotation.JsonSerialize;
5
+ import lombok.Getter;
6
+ import lombok.Setter;
7
+ import org.locationtech.jts.geom.Geometry;
8
+ import org.n52.jackson.datatype.jts.GeometryDeserializer;
9
+ import org.n52.jackson.datatype.jts.GeometrySerializer;
10
+
11
+ @Getter
12
+ @Setter
13
+ public class RegionWithGeoDTO extends RegionDTO {
14
+
15
+ @JsonSerialize(using = GeometrySerializer.class)
16
+ @JsonDeserialize(using = GeometryDeserializer.class)
17
+ private Geometry geometry;
18
+ }
@@ -0,0 +1,57 @@
1
+ package fr.cerema.dsi.{{project}}.dto;
2
+
3
+ import java.util.Set;
4
+
5
+ public class UserDTO extends GenericDTO {
6
+
7
+ private String email;
8
+
9
+ private String orionId;
10
+
11
+ private Set<ProfilDTO> profilSet;
12
+
13
+ private Long idDirectionCourante;
14
+
15
+ public String getEmail() {
16
+ return email;
17
+ }
18
+
19
+ public void setEmail(String email) {
20
+ this.email = email;
21
+ }
22
+
23
+ public String getOrionId() {
24
+ return orionId;
25
+ }
26
+
27
+ public void setOrionId(String orionId) {
28
+ this.orionId = orionId;
29
+ }
30
+
31
+ public Set<ProfilDTO> getProfilSet() {
32
+ return profilSet;
33
+ }
34
+
35
+ public void setProfilSet(Set<ProfilDTO> profilSet) {
36
+ this.profilSet = profilSet;
37
+ }
38
+
39
+ public Long getIdDirectionCourante() {
40
+ return idDirectionCourante;
41
+ }
42
+
43
+ public void setIdDirectionCourante(Long idDirectionCourante) {
44
+ this.idDirectionCourante = idDirectionCourante;
45
+ }
46
+
47
+
48
+ @Override
49
+ public String toString() {
50
+ return "UserDTO{" +
51
+ "email='" + email + '\'' +
52
+ ", orionId='" + orionId + '\'' +
53
+ ", profilSet=" + profilSet +
54
+ ", idDirectionCourante=" + idDirectionCourante +
55
+ '}';
56
+ }
57
+ }
@@ -0,0 +1,31 @@
1
+ package fr.cerema.dsi.{{project}}.dto;
2
+
3
+ import fr.cerema.dsi.{{project}}.enums.Role;
4
+ import lombok.Getter;
5
+ import lombok.Setter;
6
+
7
+ import java.io.Serializable;
8
+ import java.util.List;
9
+
10
+ @Getter
11
+ @Setter
12
+ public class UserWithCurrentAuthorityDTO implements Serializable {
13
+
14
+ private Long id;
15
+
16
+ private String email;
17
+
18
+ private String orionId;
19
+
20
+ private List<Role> roleActifList;
21
+
22
+ @Override
23
+ public String toString() {
24
+ return "UserWithCurrentAuthorityDTO{" +
25
+ "id=" + id +
26
+ ", email='" + email + '\'' +
27
+ ", orionId='" + orionId + '\'' +
28
+ ", roleActifList=" + roleActifList +
29
+ '}';
30
+ }
31
+ }
@@ -0,0 +1,26 @@
1
+ package fr.cerema.dsi.{{project}}.mapper;
2
+
3
+ import fr.cerema.dsi.{{project}}.dto.UserDTO;
4
+ import fr.cerema.dsi.{{project}}.dto.UserWithCurrentAuthorityDTO;
5
+ import fr.cerema.dsi.{{project}}.entities.User;
6
+ import fr.cerema.dsi.{{project}}.services.{{project}}.ProfilService;
7
+ import org.mapstruct.Mapper;
8
+ import org.mapstruct.Mapping;
9
+ import org.springframework.beans.factory.annotation.Autowired;
10
+
11
+ @Mapper(componentModel = "spring", uses = {})
12
+ public abstract class UserMapper {
13
+
14
+ @Autowired
15
+ public ProfilService profilService;
16
+
17
+ public abstract UserDTO toDto(User user);
18
+
19
+ @Mapping(target = "profilSet", ignore = true)
20
+ public abstract UserDTO toDtoWithoutProfilSet(User user);
21
+
22
+ public abstract User toEntity(UserDTO userDTO);
23
+
24
+ @Mapping(target = "roleActifList", expression = "java(this.profilService.findAllCurrentRolesByUsername(user.getEmail()))")
25
+ public abstract UserWithCurrentAuthorityDTO toDtoWithCurrentAuthority(User user);
26
+ }