@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,104 @@
1
+ import { LOCALE_ID, NgModule } from '@angular/core';
2
+ import { BrowserModule } from '@angular/platform-browser';
3
+
4
+ import { AppComponent } from './app.component';
5
+ import { OAuthModule, OAuthStorage } from 'angular-oauth2-oidc';
6
+ import { HttpClient, HttpClientModule } from '@angular/common/http';
7
+ import { SharedModule } from './shared/shared.module';
8
+ import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
9
+ import { AppRoutingModule } from './app-routing.module';
10
+ import { MyStorageService } from './shared/core/storage/MyStorageService';
11
+ import { MyLocalStorageService } from './shared/core/storage/MyLocalStorageService';
12
+ import { environment } from '../environments/environment';
13
+ import { HttpInterceptorProviders } from './shared/core/interceptor';
14
+ import { registerLocaleData } from '@angular/common';
15
+ import localeFr from '@angular/common/locales/fr';
16
+ import { ApplicationConfigService } from './shared/core/config/application-config.service';
17
+ import { DialogService, DynamicDialogModule, DynamicDialogRef } from 'primeng/dynamicdialog';
18
+ import { LeafletMarkerClusterModule } from "@asymmetrik/ngx-leaflet-markercluster";
19
+ import { AccordionModule } from "primeng/accordion";
20
+ import { LeafletModule } from "@asymmetrik/ngx-leaflet";
21
+ import { LeafletDrawModule } from "@asymmetrik/ngx-leaflet-draw";
22
+ import { TranslateLoader, TranslateModule, TranslateService } from "@ngx-translate/core";
23
+ import { TranslateHttpLoader } from "@ngx-translate/http-loader";
24
+ import { HIGHLIGHT_OPTIONS, HighlightModule } from "ngx-highlightjs";
25
+
26
+ registerLocaleData(localeFr, 'fr');
27
+
28
+ @NgModule({
29
+ declarations: [],
30
+ imports: [
31
+ BrowserModule,
32
+ AppRoutingModule,
33
+ BrowserAnimationsModule,
34
+ HttpClientModule,
35
+ DynamicDialogModule,
36
+ LeafletModule,
37
+ LeafletDrawModule,
38
+ LeafletMarkerClusterModule,
39
+ AccordionModule,
40
+ SharedModule,
41
+ HighlightModule,
42
+ OAuthModule.forRoot({
43
+ resourceServer: {
44
+ allowedUrls: environment.allowedUrls,
45
+ sendAccessToken: true,
46
+ },
47
+ }),
48
+ TranslateModule.forRoot({
49
+ loader: {
50
+ provide: TranslateLoader,
51
+ useFactory: HttpLoaderFactory,
52
+ deps: [HttpClient],
53
+ },
54
+ }),
55
+ ],
56
+ providers: [
57
+ /*MenuService, TopbarMenuService,*/ DialogService, MyLocalStorageService, DynamicDialogRef,
58
+ {
59
+ provide: OAuthStorage,
60
+ useClass: MyStorageService,
61
+ },
62
+ HttpInterceptorProviders,
63
+ {
64
+ provide: LOCALE_ID,
65
+ useFactory: () => {
66
+
67
+ },
68
+ deps: [],
69
+ },
70
+ {
71
+ provide: LOCALE_ID,
72
+ useFactory: (translate: TranslateService) => {
73
+ return translate.getBrowserLang();
74
+ },
75
+ deps: [TranslateService],
76
+ },
77
+ {
78
+ provide: HIGHLIGHT_OPTIONS,
79
+ useValue: {
80
+ coreLibraryLoader: () => import('highlight.js/lib/core'),
81
+ languages: {
82
+ typescript: () => import('highlight.js/lib/languages/typescript'),
83
+ css: () => import('highlight.js/lib/languages/css'),
84
+ xml: () => import('highlight.js/lib/languages/xml'),
85
+ java: () => import('highlight.js/lib/languages/java')
86
+ },
87
+ // themePath: 'path-to-theme.css' // Optional, and useful if you want to change the theme dynamically
88
+ }
89
+ }
90
+ ],
91
+ bootstrap: [AppComponent],
92
+ })
93
+ export class AppModule {
94
+ constructor(applicationConfigService: ApplicationConfigService) {
95
+ applicationConfigService.endpointPrefix = environment.serverApiUrl;
96
+ applicationConfigService.endpointPrefixApiOpen = environment.serverApiOpenUrl;
97
+ applicationConfigService.endpointGeoApiGouvFr = "https://geo.api.gouv.fr/";
98
+ }
99
+ }
100
+
101
+ export function HttpLoaderFactory(http: HttpClient): TranslateHttpLoader {
102
+ return new TranslateHttpLoader(http, 'assets/i18n/');
103
+ }
104
+
@@ -0,0 +1,4 @@
1
+ export interface MenuChangeEvent {
2
+ key: string;
3
+ routeEvent?: boolean;
4
+ }
@@ -0,0 +1,6 @@
1
+ import { MenuItem } from "primeng/api";
2
+
3
+ export interface TabCloseEvent {
4
+ tab: MenuItem;
5
+ index: number;
6
+ }
@@ -0,0 +1,14 @@
1
+ <nav class="layout-breadcrumb">
2
+ <ol>
3
+ <li>
4
+ <a [routerLink]="['/']">
5
+ <i class="pi pi-home"></i>
6
+ </a>
7
+ </li>
8
+ <li class="layout-breadcrumb-chevron"> /</li>
9
+ <ng-template ngFor let-item let-last="last" [ngForOf]="breadcrumbs$ | async">
10
+ <li>{{item.label}}</li>
11
+ <li *ngIf="!last" class="layout-breadcrumb-chevron"> /</li>
12
+ </ng-template>
13
+ </ol>
14
+ </nav>
@@ -0,0 +1,48 @@
1
+ import { Component } from '@angular/core';
2
+ import { ActivatedRouteSnapshot, NavigationEnd, Router } from '@angular/router';
3
+ import { BehaviorSubject } from 'rxjs';
4
+ import { filter } from 'rxjs/operators';
5
+
6
+ interface Breadcrumb {
7
+ label: string;
8
+ url?: string;
9
+ }
10
+
11
+ @Component({
12
+ selector: 'app-breadcrumb',
13
+ templateUrl: './app.breadcrumb.component.html'
14
+ })
15
+ export class AppBreadcrumbComponent {
16
+
17
+ private readonly _breadcrumbs$ = new BehaviorSubject<Breadcrumb[]>([]);
18
+
19
+ readonly breadcrumbs$ = this._breadcrumbs$.asObservable();
20
+
21
+ constructor(private router: Router) {
22
+ this.router.events.pipe(filter((event) => event instanceof NavigationEnd)).subscribe(event => {
23
+ const root = this.router.routerState.snapshot.root;
24
+ const breadcrumbs: Breadcrumb[] = [];
25
+ this.addBreadcrumb(root, [], breadcrumbs);
26
+
27
+ this._breadcrumbs$.next(breadcrumbs);
28
+ });
29
+ }
30
+
31
+ private addBreadcrumb(route: ActivatedRouteSnapshot, parentUrl: string[], breadcrumbs: Breadcrumb[]) {
32
+ const routeUrl = parentUrl.concat(route.url.map(url => url.path));
33
+ const breadcrumb = route.data['breadcrumb'];
34
+ const parentBreadcrumb = route.parent && route.parent.data ? route.parent.data['breadcrumb'] : null;
35
+
36
+ if (breadcrumb && breadcrumb !== parentBreadcrumb) {
37
+ breadcrumbs.push({
38
+ label: route.data['breadcrumb'],
39
+ url: '/' + routeUrl.join('/')
40
+ });
41
+ }
42
+
43
+ if (route.firstChild) {
44
+ this.addBreadcrumb(route.firstChild, routeUrl, breadcrumbs);
45
+ }
46
+ }
47
+
48
+ }
@@ -0,0 +1,20 @@
1
+ <div class="layout-footer">
2
+ <div class="footer-start">
3
+
4
+ <img src="assets/layout/images/LogoCerema.svg" alt="logo"/>
5
+
6
+ <div class="flex-column">
7
+ <div class="block">
8
+ <span class="app-name">AMODIFIER-NomLong</span>
9
+ </div>
10
+ <div class="block ml-3">
11
+ <p>v{{version}}</p>
12
+ </div>
13
+ </div>
14
+
15
+ </div>
16
+ <div class="footer-end">
17
+ <img src="assets/layout/images/LogoCerema_horizontal.svg" style="min-width: 8rem; min-height: 2rem;" alt="logo"/>
18
+ </div>
19
+ </div>
20
+
@@ -0,0 +1,22 @@
1
+ import { Component, OnInit } from '@angular/core';
2
+ import { LayoutService } from "./service/app.layout.service";
3
+ import packageJson from '../../../../package.json';
4
+
5
+ @Component({
6
+ selector: 'app-footer',
7
+ templateUrl: './app.footer.component.html'
8
+ })
9
+ export class AppFooterComponent implements OnInit{
10
+ version!: string;
11
+
12
+ constructor(public layoutService: LayoutService) {
13
+ }
14
+
15
+ get colorScheme(): string {
16
+ return this.layoutService.config.colorScheme;
17
+ }
18
+
19
+ ngOnInit(): void {
20
+ this.version = packageJson.version;
21
+ }
22
+ }
@@ -0,0 +1,3 @@
1
+ <ul class="layout-menu">
2
+ <li app-menuitem *ngFor="let item of model; let i = index;" [item]="item" [index]="i" [root]="true"></li>
3
+ </ul>
@@ -0,0 +1,30 @@
1
+ import { Component, OnInit } from '@angular/core';
2
+ import { LayoutService } from './service/app.layout.service';
3
+
4
+ @Component({
5
+ selector: 'app-menu',
6
+ templateUrl: './app.menu.component.html'
7
+ })
8
+ export class AppMenuComponent implements OnInit {
9
+
10
+ model: any[] = [];
11
+
12
+ constructor(public layoutService: LayoutService) {
13
+ }
14
+
15
+ ngOnInit() {
16
+ this.model = [
17
+ {
18
+ label: 'Documentation', icon: 'pi pi-book',routerLink: ['/'],
19
+ items: [
20
+ {label: 'Bien démarrer', icon: 'pi pi-power-off', routerLink: ['/documentation/demarrer']},
21
+ {label: 'Architecture', icon: 'pi pi-arrows-h', routerLink: ['/documentation/architecture']},
22
+ {label: 'Persistance', icon: 'pi pi-database', routerLink: ['/documentation/persistance']},
23
+ {label: 'Sécurité', icon: 'pi pi-lock', routerLink: ['/documentation/securite']},
24
+ {label: 'Tests', icon: 'pi pi-thumbs-up', routerLink: ['/documentation/tests']},
25
+ {label: 'Déploiement', icon: 'pi pi-cloud', routerLink: ['/documentation/deploiement']},
26
+ ]
27
+ },
28
+ ];
29
+ }
30
+ }
@@ -0,0 +1,23 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import { MenuChangeEvent } from './api/menuchangeevent';
4
+
5
+ @Injectable({
6
+ providedIn: 'root'
7
+ })
8
+ export class MenuService {
9
+
10
+ private menuSource = new Subject<MenuChangeEvent>();
11
+ private resetSource = new Subject();
12
+
13
+ menuSource$ = this.menuSource.asObservable();
14
+ resetSource$ = this.resetSource.asObservable();
15
+
16
+ onMenuStateChange(event: MenuChangeEvent) {
17
+ this.menuSource.next(event);
18
+ }
19
+
20
+ reset() {
21
+ this.resetSource.next(true);
22
+ }
23
+ }
@@ -0,0 +1,213 @@
1
+ import { ChangeDetectorRef, Component, HostBinding, Input, OnDestroy, OnInit } from '@angular/core';
2
+ import { IsActiveMatchOptions, NavigationEnd, Router } from '@angular/router';
3
+ import { animate, state, style, transition, trigger } from '@angular/animations';
4
+ import { Subscription } from 'rxjs';
5
+ import { filter } from 'rxjs/operators';
6
+ import { MenuService } from './app.menu.service';
7
+ import { LayoutService } from './service/app.layout.service';
8
+
9
+ @Component({
10
+ // eslint-disable-next-line @angular-eslint/component-selector
11
+ selector: '[app-menuitem]',
12
+ template: `
13
+ <ng-container>
14
+ <div *ngIf="root && item.visible !== false" class="layout-menuitem-root-text">{{item.label}}</div>
15
+ <a *ngIf="(!item.routerLink || item.items) && item.visible !== false" [attr.href]="item.url"
16
+ (click)="itemClick($event)" (mouseenter)="onMouseEnter()"
17
+ [ngClass]="item.class" [attr.target]="item.target" tabindex="0" pRipple [pTooltip]="item.label"
18
+ [tooltipDisabled]="!(isSlim && root && !active)">
19
+ <i [ngClass]="item.icon" class="layout-menuitem-icon"></i>
20
+ <span class="layout-menuitem-text">{{item.label}}</span>
21
+ <i class="pi pi-fw pi-angle-down layout-submenu-toggler" *ngIf="item.items"></i>
22
+ </a>
23
+ <a *ngIf="(item.routerLink && !item.items) && item.visible !== false" (click)="itemClick($event)"
24
+ (mouseenter)="onMouseEnter()" [ngClass]="item.class"
25
+ [routerLink]="item.routerLink" routerLinkActive="active-route"
26
+ [routerLinkActiveOptions]="item.routerLinkActiveOptions||{ paths: 'exact', queryParams: 'ignored', matrixParams: 'ignored', fragment: 'ignored' }"
27
+ [fragment]="item.fragment" [queryParamsHandling]="item.queryParamsHandling"
28
+ [preserveFragment]="item.preserveFragment!"
29
+ [skipLocationChange]="item.skipLocationChange!" [replaceUrl]="item.replaceUrl!" [state]="item.state"
30
+ [queryParams]="item.queryParams"
31
+ [attr.target]="item.target" tabindex="0" pRipple [pTooltip]="item.label" [tooltipDisabled]="!(isSlim && root)">
32
+ <i [ngClass]="item.icon" class="layout-menuitem-icon"></i>
33
+ <span class="layout-menuitem-text">{{item.label}}</span>
34
+ <i class="pi pi-fw pi-angle-down layout-submenu-toggler" *ngIf="item.items"></i>
35
+ </a>
36
+
37
+ <ul *ngIf="item.items && item.visible !== false" [@children]="submenuAnimation">
38
+ <ng-template ngFor let-child let-i="index" [ngForOf]="item.items">
39
+ <li app-menuitem [item]="child" [index]="i" [parentKey]="key" [class]="child.badgeClass"></li>
40
+ </ng-template>
41
+ </ul>
42
+ </ng-container>
43
+ `,
44
+ animations: [
45
+ trigger('children', [
46
+ state('collapsed', style({
47
+ height: '0'
48
+ })),
49
+ state('expanded', style({
50
+ height: '*'
51
+ })),
52
+ state('hidden', style({
53
+ display: 'none'
54
+ })),
55
+ state('visible', style({
56
+ display: 'block'
57
+ })),
58
+ transition('collapsed <=> expanded', animate('400ms cubic-bezier(0.86, 0, 0.07, 1)'))
59
+ ])
60
+ ]
61
+ })
62
+ export class AppMenuitemComponent implements OnInit, OnDestroy {
63
+
64
+ @Input() item: any;
65
+
66
+ @Input() index!: number;
67
+
68
+ @Input() @HostBinding('class.layout-root-menuitem') root!: boolean;
69
+
70
+ @Input() parentKey!: string;
71
+
72
+ active = false;
73
+
74
+ menuSourceSubscription: Subscription;
75
+
76
+ menuResetSubscription: Subscription;
77
+
78
+ key: string = "";
79
+
80
+ constructor(public layoutService: LayoutService, private cd: ChangeDetectorRef, public router: Router, private menuService: MenuService) {
81
+ this.menuSourceSubscription = this.menuService.menuSource$.subscribe(value => {
82
+ Promise.resolve(null).then(() => {
83
+ if (value.routeEvent) {
84
+ this.active = (value.key === this.key || value.key.startsWith(this.key + '-')) ? true : false;
85
+ } else {
86
+ if (value.key !== this.key && !value.key.startsWith(this.key + '-')) {
87
+ this.active = false;
88
+ }
89
+ }
90
+ });
91
+ });
92
+
93
+ this.menuResetSubscription = this.menuService.resetSource$.subscribe(() => {
94
+ this.active = false;
95
+ });
96
+
97
+ this.router.events.pipe(filter(event => event instanceof NavigationEnd))
98
+ .subscribe(params => {
99
+ if (this.isSlim) {
100
+ this.active = false;
101
+ } else {
102
+ if (this.item.routerLink) {
103
+ this.updateActiveStateFromRoute();
104
+ }
105
+ }
106
+ });
107
+ }
108
+
109
+ ngOnInit() {
110
+ this.key = this.parentKey ? this.parentKey + '-' + this.index : String(this.index);
111
+
112
+ if (!this.isSlim && this.item.routerLink) {
113
+ this.updateActiveStateFromRoute();
114
+ }
115
+ }
116
+
117
+ updateActiveStateFromRoute() {
118
+ let activeRoute = this.router.isActive(this.item.routerLink[0], (<IsActiveMatchOptions>this.item.routerLinkActiveOptions || {
119
+ paths: 'exact',
120
+ queryParams: 'ignored',
121
+ matrixParams: 'ignored',
122
+ fragment: 'ignored'
123
+ }));
124
+
125
+ if (activeRoute) {
126
+ this.menuService.onMenuStateChange({key: this.key, routeEvent: true});
127
+ }
128
+ }
129
+
130
+ itemClick(event: MouseEvent) {
131
+ // avoid processing disabled items
132
+ if (this.item.disabled) {
133
+ event.preventDefault();
134
+ return;
135
+ }
136
+
137
+ // navigate with hover
138
+ if (this.root && this.isSlim) {
139
+ this.layoutService.state.menuHoverActive = !this.layoutService.state.menuHoverActive;
140
+ }
141
+
142
+ // execute command
143
+ if (this.item.command) {
144
+ this.item.command({originalEvent: event, item: this.item});
145
+ }
146
+
147
+ // add tab
148
+ if (event.metaKey && this.item.routerLink && (!this.item.data || !this.item.data.fullPage)) {
149
+ this.layoutService.onTabOpen(this.item);
150
+ event.preventDefault();
151
+ }
152
+
153
+ // toggle active state
154
+ if (this.item.items) {
155
+ this.active = !this.active;
156
+
157
+ if (this.root && this.active && this.isSlim) {
158
+ this.layoutService.onOverlaySubmenuOpen();
159
+ }
160
+ } else {
161
+ if (this.layoutService.isMobile()) {
162
+ this.layoutService.state.staticMenuMobileActive = false;
163
+ }
164
+
165
+ if (this.isSlim) {
166
+ this.menuService.reset();
167
+ this.layoutService.state.menuHoverActive = false;
168
+ }
169
+ }
170
+
171
+ this.menuService.onMenuStateChange({key: this.key});
172
+ }
173
+
174
+ onMouseEnter() {
175
+ // activate item on hover
176
+ if (this.root && this.isSlim && this.layoutService.isDesktop()) {
177
+ if (this.layoutService.state.menuHoverActive) {
178
+ this.active = true;
179
+ this.menuService.onMenuStateChange({key: this.key});
180
+ }
181
+ }
182
+ }
183
+
184
+ get submenuAnimation() {
185
+ if (this.layoutService.isDesktop() && this.layoutService.isSlim())
186
+ return this.active ? 'visible' : 'hidden';
187
+ else
188
+ return this.root ? 'expanded' : (this.active ? 'expanded' : 'collapsed');
189
+ }
190
+
191
+ get isSlim() {
192
+ return this.layoutService.isSlim();
193
+ }
194
+
195
+ get isMobile() {
196
+ return this.layoutService.isMobile();
197
+ }
198
+
199
+ @HostBinding('class.active-menuitem')
200
+ get activeClass() {
201
+ return this.active && !this.root;
202
+ }
203
+
204
+ ngOnDestroy() {
205
+ if (this.menuSourceSubscription) {
206
+ this.menuSourceSubscription.unsubscribe();
207
+ }
208
+
209
+ if (this.menuResetSubscription) {
210
+ this.menuResetSubscription.unsubscribe();
211
+ }
212
+ }
213
+ }
@@ -0,0 +1,5 @@
1
+ <div class="layout-sidebar">
2
+ <div class="layout-menu-container">
3
+ <app-menu></app-menu>
4
+ </div>
5
+ </div>
@@ -0,0 +1,13 @@
1
+ import { Component, ElementRef } from '@angular/core';
2
+ import { LayoutService } from './service/app.layout.service';
3
+
4
+ @Component({
5
+ selector: 'app-sidebar',
6
+ templateUrl: './app.sidebar.component.html'
7
+ })
8
+ export class AppSidebarComponent {
9
+
10
+ constructor(public layoutService: LayoutService, public el: ElementRef) {
11
+ }
12
+
13
+ }
@@ -0,0 +1,78 @@
1
+ <div class="layout-topbar">
2
+ <a class="app-logo" routerLink="/">
3
+ <img alt="app logo" [src]="logo">
4
+ <span class="app-name">AMODIFIER-NomLong</span>
5
+ </a>
6
+
7
+ <button #menubutton class="topbar-menubutton p-link" type="button" (click)="onMenuButtonClick()">
8
+ <span></span>
9
+ </button>
10
+
11
+ <ul class="topbar-menu">
12
+ <li *ngFor="let item of tabs; let i = index">
13
+ <a [routerLink]="item.routerLink" routerLinkActive="active-route"
14
+ [routerLinkActiveOptions]="item.routerLinkActiveOptions||{paths: 'exact', queryParams: 'ignored', fragment: 'ignored', matrixParams: 'ignored'}"
15
+ [fragment]="item.fragment" [queryParamsHandling]="item.queryParamsHandling"
16
+ [preserveFragment]="item.preserveFragment!"
17
+ [skipLocationChange]="item.skipLocationChange!" [replaceUrl]="item.replaceUrl!" [state]="item.state"
18
+ [queryParams]="item.queryParams">
19
+ <span>{{item.label}}</span>
20
+ </a>
21
+ <i class="pi pi-times" (click)="removeTab($event, item, i)"></i>
22
+ </li>
23
+ <li *ngIf="!tabs || tabs.length === 0" class="topbar-menu-empty">
24
+ (cmd + click) pour un nouvel onglet
25
+ </li>
26
+ </ul>
27
+
28
+ <div class="topbar-search" [ngClass]="{'topbar-search-active': searchActive}">
29
+ <button class="topbar-searchbutton p-link" type="button" (click)="activateSearch()">
30
+ <i class="pi pi-search"></i>
31
+ </button>
32
+
33
+ <div class="search-input-wrapper">
34
+ <span class="p-input-icon-right">
35
+ <input #searchinput type="text" pInputText placeholder="Search" (blur)="deactivateSearch()"
36
+ (keydown.escape)="deactivateSearch()"/>
37
+ <i class="pi pi-search"></i>
38
+ </span>
39
+ </div>
40
+ </div>
41
+
42
+ <div class="topbar-profile">
43
+ <button class="topbar-profile-button p-link" type="button" pStyleClass="@next" enterClass="hidden"
44
+ enterActiveClass="scalein" leaveToClass="hidden" leaveActiveClass="fadeout" [hideOnOutsideClick]="true">
45
+ <img alt="avatar" src="assets/layout/images/user.png">
46
+ <span class="profile-details">
47
+ <span class="profile-name">{{userActif.prenom}} {{userActif.nom}}</span>
48
+ <span class="profile-job">{{userActif.roleActifList}}</span>
49
+ </span>
50
+ <i class="pi pi-angle-down"></i>
51
+ </button>
52
+ <ul
53
+ class="list-none p-3 m-0 border-round shadow-2 hidden absolute surface-overlay origin-top w-full sm:w-12rem mt-2 right-0 top-auto">
54
+ <li>
55
+ <a pRipple
56
+ class="flex p-2 border-round align-items-center hover:surface-hover transition-colors transition-duration-150 cursor-pointer">
57
+ <i class="pi pi-user mr-3"></i>
58
+ <span>Profile</span>
59
+ </a>
60
+ <a pRipple
61
+ class="flex p-2 border-round align-items-center hover:surface-hover transition-colors transition-duration-150 cursor-pointer">
62
+ <i class="pi pi-inbox mr-3"></i>
63
+ <span>Inbox</span>
64
+ </a>
65
+ <a pRipple
66
+ class="flex p-2 border-round align-items-center hover:surface-hover transition-colors transition-duration-150 cursor-pointer">
67
+ <i class="pi pi-cog mr-3"></i>
68
+ <span>Settings</span>
69
+ </a>
70
+ <a pRipple (click)="appMain.onLogoutClick($event)"
71
+ class="flex p-2 border-round align-items-center hover:surface-hover transition-colors transition-duration-150 cursor-pointer">
72
+ <i class="pi pi-power-off mr-3"></i>
73
+ <span>{{'PROFIL.DECONNEXION' | translate}}</span>
74
+ </a>
75
+ </li>
76
+ </ul>
77
+ </div>
78
+ </div>
@@ -0,0 +1,72 @@
1
+ import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';
2
+ import { MenuItem } from 'primeng/api';
3
+ import { LayoutService } from "./service/app.layout.service";
4
+ import { User } from "../shared/entities/user.model";
5
+ import { UserService } from "../shared/service/user.service";
6
+ import { MainComponent } from "./main/main.component";
7
+
8
+ @Component({
9
+ selector: 'app-topbar',
10
+ templateUrl: './app.topbar.component.html'
11
+ })
12
+ export class AppTopBarComponent implements OnInit {
13
+
14
+ menu: MenuItem[] = [];
15
+ userActif!: User;
16
+
17
+ @ViewChild('searchinput') searchInput!: ElementRef;
18
+
19
+ @ViewChild('menubutton') menuButton!: ElementRef;
20
+
21
+ searchActive: boolean = false;
22
+
23
+ constructor(public layoutService: LayoutService,
24
+ public userService: UserService,
25
+ public appMain: MainComponent) {
26
+ }
27
+
28
+ ngOnInit(): void {
29
+ this.userActif = this.userService.currentUser;
30
+ }
31
+
32
+ onMenuButtonClick() {
33
+ this.layoutService.onMenuToggle();
34
+ }
35
+
36
+ activateSearch() {
37
+ this.searchActive = true;
38
+ setTimeout(() => {
39
+ this.searchInput.nativeElement.focus();
40
+ }, 100);
41
+ }
42
+
43
+ deactivateSearch() {
44
+ this.searchActive = false;
45
+ }
46
+
47
+ removeTab(event: MouseEvent, item: MenuItem, index: number) {
48
+ this.layoutService.onTabClose(item, index);
49
+ event.preventDefault();
50
+ }
51
+
52
+ get layoutTheme(): string {
53
+ return this.layoutService.config.layoutTheme;
54
+ }
55
+
56
+ get colorScheme(): string {
57
+ return this.layoutService.config.colorScheme;
58
+ }
59
+
60
+ get logo(): string {
61
+ /*
62
+ const path = 'assets/layout/images/logo-';
63
+ const logo = this.layoutTheme === 'primaryColor' ? 'light.png' : (this.colorScheme === 'light' ? 'dark.png' : 'light.png');
64
+ return path + logo;
65
+ */
66
+ return 'assets/layout/images/LogoCerema.svg';
67
+ }
68
+
69
+ get tabs(): MenuItem[] {
70
+ return this.layoutService.tabs;
71
+ }
72
+ }