new-front-common-library 18.0.2-REF2 → 18.0.2

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 (241) hide show
  1. package/README.md +28 -28
  2. package/assets/css/_dark-theme.scss +243 -243
  3. package/assets/css/_flex.scss +55 -55
  4. package/assets/css/_global.scss +417 -417
  5. package/assets/css/_light-theme.scss +221 -221
  6. package/assets/css/_mat-palettes.scss +98 -102
  7. package/assets/css/_themes.scss +55 -55
  8. package/assets/css/material/_mdc-dark-theme.scss +265 -265
  9. package/assets/css/material/_mdc-light-theme.scss +264 -264
  10. package/assets/css/material/_mdc.scss +408 -408
  11. package/assets/i18n/front-common/de.json +30 -30
  12. package/assets/i18n/front-common/en.json +30 -30
  13. package/assets/i18n/front-common/fr.json +30 -30
  14. package/esm2022/lib/util/array.service.mjs +1 -1
  15. package/esm2022/lib/util/component/header/advanced-search/advanced-search.component.mjs +3 -3
  16. package/esm2022/lib/util/component/header/advanced-search/contract-rapid-search/contract-rapid-search.component.mjs +3 -3
  17. package/esm2022/lib/util/component/header/advanced-search/deal-rapid-search/deal-rapid-search.component.mjs +3 -3
  18. package/esm2022/lib/util/component/header/advanced-search/invoice-rapid-search/invoice-rapid-search.component.mjs +3 -3
  19. package/esm2022/lib/util/component/header/advanced-search/product-rapid-search/product-rapid-search.component.mjs +3 -3
  20. package/esm2022/lib/util/component/header/advanced-search/purchase-order-rapid-search/purchase-order-rapid-search.component.mjs +3 -3
  21. package/esm2022/lib/util/component/header/advanced-search/royalty-contract-rapid-search/royalty-contract-rapid-search.component.mjs +3 -3
  22. package/esm2022/lib/util/component/header/advanced-search/royalty-count-rapid-search/royalty-count-rapid-search.component.mjs +3 -3
  23. package/esm2022/lib/util/component/header/advanced-search/royalty-invoice-rapid-search/royalty-invoice-rapid-search.component.mjs +3 -3
  24. package/esm2022/lib/util/component/header/advanced-search/third-party-rapid-search/third-party-rapid-search.component.mjs +3 -3
  25. package/esm2022/lib/util/component/header/advanced-search/work-record-rapid-search/work-record-rapid-search.component.mjs +3 -3
  26. package/esm2022/lib/util/component/header/advanced-search/work-version-rapid-search/work-version-rapid-search.component.mjs +3 -3
  27. package/esm2022/lib/util/component/header/header.component.mjs +4 -5
  28. package/esm2022/lib/util/component/header/history/history.component.mjs +3 -3
  29. package/esm2022/lib/util/component/header/menu/menu.component.mjs +3 -3
  30. package/esm2022/lib/util/component/header/menu/menu.const.mjs +1 -1
  31. package/esm2022/lib/util/component/header/menu/menu.model.mjs +1 -1
  32. package/esm2022/lib/util/component/header/settings/settings.component.mjs +3 -3
  33. package/esm2022/lib/util/component/overlay/overlay.component.mjs +3 -3
  34. package/esm2022/lib/util/component/overlay/overlay.service.mjs +1 -1
  35. package/esm2022/lib/util/component/popup/popup-login/popup-login.component.mjs +3 -3
  36. package/esm2022/lib/util/component/sub-header/sub-header.component.mjs +3 -3
  37. package/esm2022/lib/util/config.mjs +1 -1
  38. package/esm2022/lib/util/date/PeriodModel.mjs +1 -1
  39. package/esm2022/lib/util/date/date-format-constants.mjs +1 -1
  40. package/esm2022/lib/util/date/date.util.mjs +1 -1
  41. package/esm2022/lib/util/decorators/theme.decorator.mjs +1 -1
  42. package/esm2022/lib/util/decorators/user.decorator.mjs +1 -1
  43. package/esm2022/lib/util/directives/my-number-formatter-directive.mjs +1 -1
  44. package/esm2022/lib/util/directives/show-if-truncated.directive.mjs +1 -1
  45. package/esm2022/lib/util/enums/family.enum.mjs +1 -1
  46. package/esm2022/lib/util/enums/history-item-type.enum.mjs +1 -1
  47. package/esm2022/lib/util/enums/rapid-search-item-type.enum.mjs +1 -1
  48. package/esm2022/lib/util/enums/status-color.enum.mjs +1 -1
  49. package/esm2022/lib/util/event/header/header-events.service.mjs +1 -1
  50. package/esm2022/lib/util/event/storage/local-storage-events.service.mjs +1 -1
  51. package/esm2022/lib/util/event/storage/session-storage-events.service.mjs +1 -1
  52. package/esm2022/lib/util/http/http-params.builder.mjs +1 -1
  53. package/esm2022/lib/util/i18n/de.mjs +1 -2
  54. package/esm2022/lib/util/i18n/en.mjs +1 -2
  55. package/esm2022/lib/util/i18n/fr.mjs +1 -2
  56. package/esm2022/lib/util/i18n/multi-translate-http-loader.mjs +1 -1
  57. package/esm2022/lib/util/interfaces/permissions.interface.mjs +1 -1
  58. package/esm2022/lib/util/models/any-line.model.mjs +1 -1
  59. package/esm2022/lib/util/models/audio-content.model.mjs +1 -1
  60. package/esm2022/lib/util/models/authPermission.model.mjs +1 -1
  61. package/esm2022/lib/util/models/authUser.model.mjs +1 -1
  62. package/esm2022/lib/util/models/basic.model.mjs +1 -1
  63. package/esm2022/lib/util/models/box-set-item.model.mjs +1 -1
  64. package/esm2022/lib/util/models/commercial/deal-rapid-search-model.mjs +1 -1
  65. package/esm2022/lib/util/models/commercial/invoice-rapid-search-model.mjs +1 -1
  66. package/esm2022/lib/util/models/commercial/work-record-rapid-search-model.mjs +1 -1
  67. package/esm2022/lib/util/models/disc-program.model.mjs +1 -1
  68. package/esm2022/lib/util/models/disc.model.mjs +1 -1
  69. package/esm2022/lib/util/models/eventType.model.mjs +1 -1
  70. package/esm2022/lib/util/models/expenditure-commitment/purchase-order-file.model.mjs +1 -1
  71. package/esm2022/lib/util/models/expenditure-commitment/purchase-order-rapid-search.model.mjs +1 -1
  72. package/esm2022/lib/util/models/family.model.mjs +1 -1
  73. package/esm2022/lib/util/models/index.mjs +5 -6
  74. package/esm2022/lib/util/models/lang-line.model.mjs +1 -1
  75. package/esm2022/lib/util/models/legal/contract-rapid-search-model.mjs +1 -1
  76. package/esm2022/lib/util/models/legal/contract-work.model.mjs +1 -1
  77. package/esm2022/lib/util/models/legal/contract-work2.model.mjs +1 -1
  78. package/esm2022/lib/util/models/legal/type-status-rapid-search.model.mjs +1 -1
  79. package/esm2022/lib/util/models/link-routing-module.model.mjs +1 -1
  80. package/esm2022/lib/util/models/media-line.model.mjs +1 -1
  81. package/esm2022/lib/util/models/menu-language.model.mjs +1 -1
  82. package/esm2022/lib/util/models/permission.model.mjs +1 -1
  83. package/esm2022/lib/util/models/product-box-set.model.mjs +1 -1
  84. package/esm2022/lib/util/models/product-disc-detail.model.mjs +1 -1
  85. package/esm2022/lib/util/models/product-disc.model.mjs +1 -1
  86. package/esm2022/lib/util/models/product-division.model.mjs +1 -1
  87. package/esm2022/lib/util/models/product-type.model.mjs +1 -1
  88. package/esm2022/lib/util/models/product.model.mjs +1 -1
  89. package/esm2022/lib/util/models/program.model.mjs +1 -1
  90. package/esm2022/lib/util/models/purchase-order/purchase-order.model.mjs +1 -1
  91. package/esm2022/lib/util/models/rapid-search-all-document.model.mjs +1 -1
  92. package/esm2022/lib/util/models/referential/WorkVersionArticleDto.mjs +1 -1
  93. package/esm2022/lib/util/models/referential/adress-type.model.mjs +1 -1
  94. package/esm2022/lib/util/models/referential/adress.model.mjs +1 -1
  95. package/esm2022/lib/util/models/referential/attached-file.model.mjs +1 -1
  96. package/esm2022/lib/util/models/referential/bank-account.model.mjs +1 -1
  97. package/esm2022/lib/util/models/referential/bank-accounts.model.mjs +1 -1
  98. package/esm2022/lib/util/models/referential/basic-hierarchy.model.mjs +1 -1
  99. package/esm2022/lib/util/models/referential/broadcast-list-item.model.mjs +1 -1
  100. package/esm2022/lib/util/models/referential/color.model.mjs +1 -1
  101. package/esm2022/lib/util/models/referential/company.model.mjs +1 -1
  102. package/esm2022/lib/util/models/referential/content-type.model.mjs +1 -1
  103. package/esm2022/lib/util/models/referential/content.model.mjs +1 -1
  104. package/esm2022/lib/util/models/referential/cost-center-criteria-values.model.mjs +1 -1
  105. package/esm2022/lib/util/models/referential/cost-center-criteria.model.mjs +1 -1
  106. package/esm2022/lib/util/models/referential/cost-center.model.mjs +1 -1
  107. package/esm2022/lib/util/models/referential/coutry.model.mjs +1 -1
  108. package/esm2022/lib/util/models/referential/currency.model.mjs +1 -1
  109. package/esm2022/lib/util/models/referential/editorial-content.model.mjs +1 -1
  110. package/esm2022/lib/util/models/referential/fixing.model.mjs +1 -1
  111. package/esm2022/lib/util/models/referential/flat-media.model.mjs +1 -1
  112. package/esm2022/lib/util/models/referential/format-image.model.mjs +1 -1
  113. package/esm2022/lib/util/models/referential/format-type.model.mjs +1 -1
  114. package/esm2022/lib/util/models/referential/format.model.mjs +1 -1
  115. package/esm2022/lib/util/models/referential/fsk-index.model.mjs +1 -1
  116. package/esm2022/lib/util/models/referential/fsk.model.mjs +1 -1
  117. package/esm2022/lib/util/models/referential/function.model.mjs +1 -1
  118. package/esm2022/lib/util/models/referential/genre.model.mjs +1 -1
  119. package/esm2022/lib/util/models/referential/invoice-product-type.model.mjs +1 -1
  120. package/esm2022/lib/util/models/referential/keywords.model.mjs +1 -1
  121. package/esm2022/lib/util/models/referential/language.model.mjs +1 -1
  122. package/esm2022/lib/util/models/referential/media-filter.model.mjs +1 -1
  123. package/esm2022/lib/util/models/referential/media.model.mjs +1 -1
  124. package/esm2022/lib/util/models/referential/module.model.mjs +1 -1
  125. package/esm2022/lib/util/models/referential/parameter.model.mjs +1 -1
  126. package/esm2022/lib/util/models/referential/participant.model.mjs +1 -1
  127. package/esm2022/lib/util/models/referential/person.model.mjs +1 -1
  128. package/esm2022/lib/util/models/referential/project-status.model.mjs +1 -1
  129. package/esm2022/lib/util/models/referential/quota.model.mjs +1 -1
  130. package/esm2022/lib/util/models/referential/referential-entity-state.model.mjs +1 -1
  131. package/esm2022/lib/util/models/referential/referential-value.model.mjs +1 -1
  132. package/esm2022/lib/util/models/referential/referentiel.model.mjs +1 -1
  133. package/esm2022/lib/util/models/referential/restriction.model.mjs +1 -1
  134. package/esm2022/lib/util/models/referential/sap-order.model.mjs +1 -1
  135. package/esm2022/lib/util/models/referential/service-error.model.mjs +1 -1
  136. package/esm2022/lib/util/models/referential/sound.model.mjs +1 -1
  137. package/esm2022/lib/util/models/referential/territories-languages.model.mjs +1 -1
  138. package/esm2022/lib/util/models/referential/territory-filter.model.mjs +1 -1
  139. package/esm2022/lib/util/models/referential/territory.model.mjs +1 -1
  140. package/esm2022/lib/util/models/referential/theme.model.mjs +1 -1
  141. package/esm2022/lib/util/models/referential/third-party-address-rapid-search.model.mjs +1 -1
  142. package/esm2022/lib/util/models/referential/third-party-creation-request.model.mjs +1 -1
  143. package/esm2022/lib/util/models/referential/third-party-module.model.mjs +1 -1
  144. package/esm2022/lib/util/models/referential/third-party-rapid-search.model.mjs +1 -1
  145. package/esm2022/lib/util/models/referential/third-party.model.mjs +1 -1
  146. package/esm2022/lib/util/models/referential/translated-value-model.mjs +1 -1
  147. package/esm2022/lib/util/models/referential/tva.model.mjs +1 -1
  148. package/esm2022/lib/util/models/referential/type-export.model.mjs +1 -1
  149. package/esm2022/lib/util/models/referential/type-tva-company-territory.model.mjs +1 -1
  150. package/esm2022/lib/util/models/referential/type-tva.model.mjs +1 -1
  151. package/esm2022/lib/util/models/referential/user-form.model.mjs +1 -1
  152. package/esm2022/lib/util/models/referential/work-addons-model.mjs +1 -1
  153. package/esm2022/lib/util/models/referential/work-appartenance.model.mjs +1 -1
  154. package/esm2022/lib/util/models/referential/work-genre.model.mjs +1 -1
  155. package/esm2022/lib/util/models/referential/work-language.model.mjs +1 -1
  156. package/esm2022/lib/util/models/referential/work-milo.model.mjs +1 -1
  157. package/esm2022/lib/util/models/referential/work-participant.model.mjs +1 -1
  158. package/esm2022/lib/util/models/referential/work-restrictions-model.mjs +1 -1
  159. package/esm2022/lib/util/models/referential/work-theme.model.mjs +1 -1
  160. package/esm2022/lib/util/models/referential/work-title.model.mjs +1 -1
  161. package/esm2022/lib/util/models/referential/work-version-origin.model.mjs +1 -1
  162. package/esm2022/lib/util/models/referential/work-version-rapid-search.model.mjs +1 -1
  163. package/esm2022/lib/util/models/referential/work-versions-used.model.mjs +1 -1
  164. package/esm2022/lib/util/models/referential/work-versions.model.mjs +1 -1
  165. package/esm2022/lib/util/models/referential/work-year-production.model.mjs +1 -1
  166. package/esm2022/lib/util/models/referential/work.model.mjs +1 -1
  167. package/esm2022/lib/util/models/referential/zone.model.mjs +1 -1
  168. package/esm2022/lib/util/models/referentiel.model.mjs +1 -1
  169. package/esm2022/lib/util/models/royalty/royalty-contract-rapid-search.model.mjs +1 -1
  170. package/esm2022/lib/util/models/royalty/royalty-count-rapid-search.model.mjs +1 -1
  171. package/esm2022/lib/util/models/royalty/royalty-invoice-rapid-search.model.mjs +1 -1
  172. package/esm2022/lib/util/models/search-response.model.mjs +1 -1
  173. package/esm2022/lib/util/models/section.model.mjs +1 -1
  174. package/esm2022/lib/util/models/select/options.model.mjs +1 -1
  175. package/esm2022/lib/util/models/select/select.model.mjs +1 -1
  176. package/esm2022/lib/util/models/subsidiary.model.mjs +1 -1
  177. package/esm2022/lib/util/models/subtitle-content.model.mjs +1 -1
  178. package/esm2022/lib/util/models/user-video.model.mjs +1 -1
  179. package/esm2022/lib/util/models/user.model.mjs +1 -1
  180. package/esm2022/lib/util/models/video/product-rapid-search.model.mjs +1 -1
  181. package/esm2022/lib/util/models/video/support-rapid-search.model.mjs +1 -1
  182. package/esm2022/lib/util/models/video-content.model.mjs +1 -1
  183. package/esm2022/lib/util/number.validator.mjs +1 -1
  184. package/esm2022/lib/util/paginator/custom-paginator-configuration.mjs +1 -1
  185. package/esm2022/lib/util/permissions/permissions.service.mjs +1 -1
  186. package/esm2022/lib/util/pipes/capitalizefirst.pipe.mjs +1 -1
  187. package/esm2022/lib/util/pipes/comma-separated-number.pipe.mjs +1 -1
  188. package/esm2022/lib/util/pipes/common-translate.pipe.mjs +1 -1
  189. package/esm2022/lib/util/pipes/display-html.pipe.mjs +1 -1
  190. package/esm2022/lib/util/pipes/display-null.pipe.mjs +1 -1
  191. package/esm2022/lib/util/pipes/format-currency.pipe.mjs +1 -1
  192. package/esm2022/lib/util/pipes/format-duration.pipe.mjs +1 -1
  193. package/esm2022/lib/util/pipes/format-number-input.pipe.mjs +1 -1
  194. package/esm2022/lib/util/pipes/local-date.pipe.mjs +1 -1
  195. package/esm2022/lib/util/pipes/my-number.pipe.mjs +1 -1
  196. package/esm2022/lib/util/pipes/third-party-address-search.pipe.mjs +1 -1
  197. package/esm2022/lib/util/pipes/third-party-address.pipe.mjs +1 -1
  198. package/esm2022/lib/util/pipes/trim-string.pipe.mjs +1 -1
  199. package/esm2022/lib/util/regex/regex.service.mjs +1 -1
  200. package/esm2022/lib/util/services/api/commercial-api.service.mjs +1 -1
  201. package/esm2022/lib/util/services/api/common-api.service.mjs +1 -1
  202. package/esm2022/lib/util/services/api/legal-api.service.mjs +1 -1
  203. package/esm2022/lib/util/services/api/video-api.service.mjs +1 -1
  204. package/esm2022/lib/util/services/auth/auth.service.mjs +1 -1
  205. package/esm2022/lib/util/services/elasticsearch/elasticsearch.service.mjs +1 -1
  206. package/esm2022/lib/util/services/elasticsearch/subsidiaries.service.mjs +1 -1
  207. package/esm2022/lib/util/services/form-action/form-actions-events.service.mjs +1 -1
  208. package/esm2022/lib/util/services/guard/auth.guard.mjs +1 -1
  209. package/esm2022/lib/util/services/guard/login.guard.mjs +1 -1
  210. package/esm2022/lib/util/services/history/history.service.mjs +1 -1
  211. package/esm2022/lib/util/services/interceptor/auth.interceptor.mjs +1 -1
  212. package/esm2022/lib/util/services/jwt-security/aes.service.mjs +1 -1
  213. package/esm2022/lib/util/services/jwt-security/interceptorhttp.service.mjs +1 -1
  214. package/esm2022/lib/util/services/jwt-security/jwt.helpher.mjs +1 -1
  215. package/esm2022/lib/util/services/storage/local-storage.service.mjs +2 -2
  216. package/esm2022/lib/util/services/storage/session-storage.service.mjs +1 -1
  217. package/esm2022/lib/util/services/translate-language/lang.service.mjs +1 -1
  218. package/esm2022/lib/util/services/user/user-subsidiary.service.mjs +1 -1
  219. package/esm2022/lib/util/sort.mjs +1 -1
  220. package/esm2022/lib/util/theme/theme-event.service.mjs +1 -1
  221. package/esm2022/lib/util/toaster/toaster-events.service.mjs +1 -1
  222. package/esm2022/lib/util/util.module.mjs +5 -11
  223. package/esm2022/public-api.mjs +1 -2
  224. package/fesm2022/new-front-common-library.mjs +64 -222
  225. package/fesm2022/new-front-common-library.mjs.map +1 -1
  226. package/lib/util/i18n/de.d.ts +0 -1
  227. package/lib/util/i18n/en.d.ts +0 -1
  228. package/lib/util/i18n/fr.d.ts +0 -1
  229. package/lib/util/models/index.d.ts +4 -5
  230. package/lib/util/services/auth/auth.service.d.ts +1 -1
  231. package/lib/util/util.module.d.ts +17 -18
  232. package/package.json +8 -8
  233. package/public-api.d.ts +0 -1
  234. package/esm2022/lib/util/component/notification/notification-bar.component.mjs +0 -36
  235. package/esm2022/lib/util/models/notification.model.mjs +0 -3
  236. package/esm2022/lib/util/services/api/notification-api.service.mjs +0 -26
  237. package/esm2022/lib/util/services/notification/notification.service.mjs +0 -106
  238. package/lib/util/component/notification/notification-bar.component.d.ts +0 -14
  239. package/lib/util/models/notification.model.d.ts +0 -14
  240. package/lib/util/services/api/notification-api.service.d.ts +0 -14
  241. package/lib/util/services/notification/notification.service.d.ts +0 -28
@@ -2,7 +2,6 @@ export declare const de: {
2
2
  'COMMON.HEADER.MENU.DASHBOARD': string;
3
3
  'COMMON.HEADER.MENU.USER.SECTION_TITLE': string;
4
4
  'COMMON.HEADER.MENU.USER.SETTINGS': string;
5
- 'COMMON.HEADER.MENU.USER.NOTIFICATIONS': string;
6
5
  'COMMON.HEADER.MENU.REFERENTIAL.SUPPORT': string;
7
6
  'COMMON.HEADER.MENU.REFERENTIAL.BATCH': string;
8
7
  'COMMON.HEADER.MENU.TV-DATA': string;
@@ -2,7 +2,6 @@ export declare const en: {
2
2
  'COMMON.HEADER.MENU.DASHBOARD': string;
3
3
  'COMMON.HEADER.MENU.USER.SECTION_TITLE': string;
4
4
  'COMMON.HEADER.MENU.USER.SETTINGS': string;
5
- 'COMMON.HEADER.MENU.USER.NOTIFICATIONS': string;
6
5
  'COMMON.HEADER.MENU.REFERENTIAL.SUPPORT': string;
7
6
  'COMMON.HEADER.MENU.REFERENTIAL.BATCH': string;
8
7
  'COMMON.HEADER.MENU.TV-DATA': string;
@@ -2,7 +2,6 @@ export declare const fr: {
2
2
  'COMMON.HEADER.MENU.DASHBOARD': string;
3
3
  'COMMON.HEADER.MENU.USER.SECTION_TITLE': string;
4
4
  'COMMON.HEADER.MENU.USER.SETTINGS': string;
5
- 'COMMON.HEADER.MENU.USER.NOTIFICATIONS': string;
6
5
  'COMMON.HEADER.MENU.REFERENTIAL.SUPPORT': string;
7
6
  'COMMON.HEADER.MENU.REFERENTIAL.BATCH': string;
8
7
  'COMMON.HEADER.MENU.TV-DATA': string;
@@ -94,8 +94,7 @@ export * from './user.model';
94
94
  export * from './legal/contract-work.model';
95
95
  export * from './legal/contract-work2.model';
96
96
  export * from './../services/form-action/form-actions-events.service';
97
- export * from './permission.model';
98
- export * from './section.model';
99
- export * from './subsidiary.model';
100
- export * from './family.model';
101
- export * from './notification.model';
97
+ export * from './../models/permission.model';
98
+ export * from './../models/section.model';
99
+ export * from './../models/subsidiary.model';
100
+ export * from './../models/family.model';
@@ -1,7 +1,7 @@
1
1
  import { Observable } from 'rxjs';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class AuthService {
4
- private readonly isAuthenticatedSubject;
4
+ private isAuthenticatedSubject;
5
5
  isAuthenticated$: Observable<boolean>;
6
6
  setAuthenticated(isAuthenticated: boolean): void;
7
7
  static ɵfac: i0.ɵɵFactoryDeclaration<AuthService, never>;
@@ -35,29 +35,28 @@ import * as i31 from "./component/header/settings/settings.component";
35
35
  import * as i32 from "./component/header/advanced-search/royalty-contract-rapid-search/royalty-contract-rapid-search.component";
36
36
  import * as i33 from "./component/header/advanced-search/royalty-invoice-rapid-search/royalty-invoice-rapid-search.component";
37
37
  import * as i34 from "./component/header/advanced-search/royalty-count-rapid-search/royalty-count-rapid-search.component";
38
- import * as i35 from "./component/notification/notification-bar.component";
39
- import * as i36 from "@angular/material/input";
40
- import * as i37 from "@angular/material/tooltip";
41
- import * as i38 from "@angular/material/button";
42
- import * as i39 from "@angular/material/toolbar";
43
- import * as i40 from "@angular/material/form-field";
44
- import * as i41 from "@angular/common";
45
- import * as i42 from "@ngx-translate/core";
46
- import * as i43 from "@angular/material/card";
47
- import * as i44 from "@angular/material/dialog";
48
- import * as i45 from "ngx-permissions";
49
- import * as i46 from "@angular/material/progress-spinner";
50
- import * as i47 from "@angular/router";
51
- import * as i48 from "@angular/forms";
52
- import * as i49 from "@angular/material/icon";
53
- import * as i50 from "@angular/material/menu";
54
- import * as i51 from "@angular/material/autocomplete";
38
+ import * as i35 from "@angular/material/input";
39
+ import * as i36 from "@angular/material/tooltip";
40
+ import * as i37 from "@angular/material/button";
41
+ import * as i38 from "@angular/material/toolbar";
42
+ import * as i39 from "@angular/material/form-field";
43
+ import * as i40 from "@angular/common";
44
+ import * as i41 from "@ngx-translate/core";
45
+ import * as i42 from "@angular/material/card";
46
+ import * as i43 from "@angular/material/dialog";
47
+ import * as i44 from "ngx-permissions";
48
+ import * as i45 from "@angular/material/progress-spinner";
49
+ import * as i46 from "@angular/router";
50
+ import * as i47 from "@angular/forms";
51
+ import * as i48 from "@angular/material/icon";
52
+ import * as i49 from "@angular/material/menu";
53
+ import * as i50 from "@angular/material/autocomplete";
55
54
  export declare class UtilModule {
56
55
  private readonly langService;
57
56
  constructor();
58
57
  static forRoot(config?: Config): ModuleWithProviders<UtilModule>;
59
58
  static forChild(config?: Config): ModuleWithProviders<UtilModule>;
60
59
  static ɵfac: i0.ɵɵFactoryDeclaration<UtilModule, never>;
61
- static ɵmod: i0.ɵɵNgModuleDeclaration<UtilModule, [typeof i1.MyNumberFormatterDirective, typeof i2.CapitalizefirstPipe, typeof i3.SpacesNumberPipe, typeof i4.SanitizeHtml, typeof i5.DisplayNullPipe, typeof i6.FormatNumberInput, typeof i7.LocalDatePipe, typeof i8.MyNumberPipe, typeof i9.TrimStringPipe, typeof i10.CommonTranslatePipe, typeof i11.ThirdPartyAddressPipe, typeof i12.ThirdPartyAddressSearchPipe, typeof i13.FormatDurationPipe, typeof i14.MyDialogPopupLoginComponent, typeof i15.OverlayComponent, typeof i16.HeaderComponent, typeof i17.SubHeaderComponent, typeof i18.ShowIfTruncatedDirective, typeof i19.FormatCurrencyPipe, typeof i20.MenuComponent, typeof i21.PurchaseOrderRapidSearchComponent, typeof i22.ProductRapidSearchComponent, typeof i23.WorkVersionRapidSearchComponent, typeof i24.DealRapidSearchComponent, typeof i25.WorkRecordRapidSearchComponent, typeof i26.ThirdPartyRapidSearchComponent, typeof i27.ContractRapidSearchComponent, typeof i28.InvoiceRapidSearchComponent, typeof i29.AdvancedSearchComponent, typeof i30.HistoryComponent, typeof i31.SettingsComponent, typeof i32.RoyaltyContractRapidSearchComponent, typeof i33.RoyaltyInvoiceRapidSearchComponent, typeof i34.RoyaltyCountRapidSearchComponent, typeof i35.NotificationBarComponent], [typeof i36.MatInputModule, typeof i37.MatTooltipModule, typeof i38.MatButtonModule, typeof i39.MatToolbarModule, typeof i40.MatFormFieldModule, typeof i41.CommonModule, typeof i42.TranslateModule, typeof i43.MatCardModule, typeof i44.MatDialogModule, typeof i45.NgxPermissionsModule, typeof i46.MatProgressSpinnerModule, typeof i47.RouterModule, typeof i48.ReactiveFormsModule, typeof i48.FormsModule, typeof i49.MatIconModule, typeof i50.MatMenuModule, typeof i51.MatAutocompleteModule, typeof i41.NgOptimizedImage], [typeof i1.MyNumberFormatterDirective, typeof i2.CapitalizefirstPipe, typeof i3.SpacesNumberPipe, typeof i4.SanitizeHtml, typeof i5.DisplayNullPipe, typeof i6.FormatNumberInput, typeof i7.LocalDatePipe, typeof i8.MyNumberPipe, typeof i19.FormatCurrencyPipe, typeof i13.FormatDurationPipe, typeof i9.TrimStringPipe, typeof i11.ThirdPartyAddressPipe, typeof i16.HeaderComponent, typeof i15.OverlayComponent, typeof i17.SubHeaderComponent, typeof i18.ShowIfTruncatedDirective, typeof i10.CommonTranslatePipe]>;
60
+ static ɵmod: i0.ɵɵNgModuleDeclaration<UtilModule, [typeof i1.MyNumberFormatterDirective, typeof i2.CapitalizefirstPipe, typeof i3.SpacesNumberPipe, typeof i4.SanitizeHtml, typeof i5.DisplayNullPipe, typeof i6.FormatNumberInput, typeof i7.LocalDatePipe, typeof i8.MyNumberPipe, typeof i9.TrimStringPipe, typeof i10.CommonTranslatePipe, typeof i11.ThirdPartyAddressPipe, typeof i12.ThirdPartyAddressSearchPipe, typeof i13.FormatDurationPipe, typeof i14.MyDialogPopupLoginComponent, typeof i15.OverlayComponent, typeof i16.HeaderComponent, typeof i17.SubHeaderComponent, typeof i18.ShowIfTruncatedDirective, typeof i19.FormatCurrencyPipe, typeof i20.MenuComponent, typeof i21.PurchaseOrderRapidSearchComponent, typeof i22.ProductRapidSearchComponent, typeof i23.WorkVersionRapidSearchComponent, typeof i24.DealRapidSearchComponent, typeof i25.WorkRecordRapidSearchComponent, typeof i26.ThirdPartyRapidSearchComponent, typeof i27.ContractRapidSearchComponent, typeof i28.InvoiceRapidSearchComponent, typeof i29.AdvancedSearchComponent, typeof i30.HistoryComponent, typeof i31.SettingsComponent, typeof i32.RoyaltyContractRapidSearchComponent, typeof i33.RoyaltyInvoiceRapidSearchComponent, typeof i34.RoyaltyCountRapidSearchComponent], [typeof i35.MatInputModule, typeof i36.MatTooltipModule, typeof i37.MatButtonModule, typeof i38.MatToolbarModule, typeof i39.MatFormFieldModule, typeof i40.CommonModule, typeof i41.TranslateModule, typeof i42.MatCardModule, typeof i43.MatDialogModule, typeof i44.NgxPermissionsModule, typeof i45.MatProgressSpinnerModule, typeof i46.RouterModule, typeof i47.ReactiveFormsModule, typeof i47.FormsModule, typeof i48.MatIconModule, typeof i49.MatMenuModule, typeof i50.MatAutocompleteModule, typeof i40.NgOptimizedImage], [typeof i1.MyNumberFormatterDirective, typeof i2.CapitalizefirstPipe, typeof i3.SpacesNumberPipe, typeof i4.SanitizeHtml, typeof i5.DisplayNullPipe, typeof i6.FormatNumberInput, typeof i7.LocalDatePipe, typeof i8.MyNumberPipe, typeof i19.FormatCurrencyPipe, typeof i13.FormatDurationPipe, typeof i9.TrimStringPipe, typeof i11.ThirdPartyAddressPipe, typeof i16.HeaderComponent, typeof i15.OverlayComponent, typeof i17.SubHeaderComponent, typeof i18.ShowIfTruncatedDirective, typeof i10.CommonTranslatePipe]>;
62
61
  static ɵinj: i0.ɵɵInjectorDeclaration<UtilModule>;
63
62
  }
package/package.json CHANGED
@@ -1,16 +1,13 @@
1
1
  {
2
2
  "name": "new-front-common-library",
3
- "version": "18.0.2-REF2",
4
- "dependencies": {
5
- "@stomp/stompjs": "^7.2.1",
6
- "@types/sockjs-client": "^1.5.4",
7
- "sockjs-client": "^1.6.1",
3
+ "version": "18.0.2",
4
+ "Dependencies": {
5
+ "@angular/common": "18.2.10",
6
+ "@angular/core": "18.2.10",
8
7
  "tslib": "^2.6.2"
9
8
  },
10
9
  "peerDependencies": {
11
10
  "@angular/cdk": "18.2.10",
12
- "@angular/common": "18.2.10",
13
- "@angular/core": "18.2.10",
14
11
  "@angular/material": "18.2.10",
15
12
  "@ngx-translate/core": "^15.0.0",
16
13
  "@ngx-translate/http-loader": "8.0.0",
@@ -31,5 +28,8 @@
31
28
  "default": "./fesm2022/new-front-common-library.mjs"
32
29
  }
33
30
  },
34
- "sideEffects": false
31
+ "sideEffects": false,
32
+ "dependencies": {
33
+ "tslib": "^2.3.0"
34
+ }
35
35
  }
package/public-api.d.ts CHANGED
@@ -54,4 +54,3 @@ export * from './lib/util/toaster/toaster-events.service';
54
54
  export * from './lib/util/event/header/header-events.service';
55
55
  export * from './lib/util/directives/show-if-truncated.directive';
56
56
  export * from './lib/util/i18n/multi-translate-http-loader';
57
- export * from './lib/util/services/notification/notification.service';
@@ -1,36 +0,0 @@
1
- import { Component, inject, input } from '@angular/core';
2
- import { Subscription } from 'rxjs';
3
- import { NotificationService } from '../../services/notification/notification.service';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/common";
6
- import * as i2 from "@angular/material/icon";
7
- export class NotificationBarComponent {
8
- constructor() {
9
- this.lang = input();
10
- this.notifications = [];
11
- this.subs = new Subscription();
12
- this.notificationService = inject(NotificationService);
13
- }
14
- ngOnInit() {
15
- this.subs.add(this.notificationService.notifications$.subscribe(notification => {
16
- if (notification && !this.notifications.some(otherNotification => otherNotification.id === notification.id)) {
17
- this.notifications.push(notification);
18
- }
19
- }));
20
- }
21
- ngOnDestroy() {
22
- this.subs.unsubscribe();
23
- }
24
- ackNotification(notification) {
25
- this.notificationService.ackNotification(notification);
26
- let index = this.notifications.indexOf(notification);
27
- this.notifications.splice(index, 1);
28
- }
29
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: NotificationBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
30
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.10", type: NotificationBarComponent, selector: "notification-bar", inputs: { lang: { classPropertyName: "lang", publicName: "lang", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"notification-bar-wrapper\">\n <div *ngFor=\"let notification of notifications\"\n [ngClass]=\"'notification-bar notification-bar-' + notification.classification\">\n <div class=\"notification-bar-message\">\n <mat-icon class=\"material-icons-outlined mat-icon-small\">\n <ng-container *ngIf=\"notification.classification === 'INFO'\">info</ng-container>\n <ng-container *ngIf=\"notification.classification === 'FEAT'\">rocket_launch</ng-container>\n <ng-container *ngIf=\"notification.classification === 'MAINT'\">warning_amber</ng-container>\n </mat-icon>\n <span>{{ lang() === 'fr' ? notification.messageFr : notification.messageEn }}</span>\n </div>\n <button class=\"notification-close-button\" (click)=\"ackNotification(notification)\">\n <mat-icon class=\"material-icons-outlined mat-icon-small\">close</mat-icon>\n </button>\n </div>\n</div>\n", styles: [":host{position:relative}.notification-bar-wrapper{display:block;left:0;overflow:hidden;right:0;width:100%}.notification-bar-wrapper *{box-sizing:border-box;margin:0;padding:0}.notification-bar-wrapper .notification-bar{border:1px solid;border-radius:5px;align-items:center;display:inline-flex;margin:0 auto;padding:3px;position:relative;font-size:14px;color:#fff;width:100%}.notification-bar-wrapper .notification-bar .notification-close-button{background:transparent;cursor:pointer;border:0;border-radius:0;color:#fff;transition:all .25s ease}.notification-bar-wrapper .notification-bar .notification-bar-message{display:flex;width:100%;margin:auto;gap:10px}.notification-bar-wrapper .notification-bar.notification-bar-INFO{background-color:#03a9f5}.notification-bar-wrapper .notification-bar.notification-bar-FEAT{background-color:#37b400}.notification-bar-wrapper .notification-bar.notification-bar-MAINT{background-color:#ff6358}.notification-bar-wrapper .mat-icon-small{height:18px;width:18px;min-width:18px;font-size:18px;color:#fff!important;margin-right:0!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
31
- }
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: NotificationBarComponent, decorators: [{
33
- type: Component,
34
- args: [{ selector: 'notification-bar', template: "<div class=\"notification-bar-wrapper\">\n <div *ngFor=\"let notification of notifications\"\n [ngClass]=\"'notification-bar notification-bar-' + notification.classification\">\n <div class=\"notification-bar-message\">\n <mat-icon class=\"material-icons-outlined mat-icon-small\">\n <ng-container *ngIf=\"notification.classification === 'INFO'\">info</ng-container>\n <ng-container *ngIf=\"notification.classification === 'FEAT'\">rocket_launch</ng-container>\n <ng-container *ngIf=\"notification.classification === 'MAINT'\">warning_amber</ng-container>\n </mat-icon>\n <span>{{ lang() === 'fr' ? notification.messageFr : notification.messageEn }}</span>\n </div>\n <button class=\"notification-close-button\" (click)=\"ackNotification(notification)\">\n <mat-icon class=\"material-icons-outlined mat-icon-small\">close</mat-icon>\n </button>\n </div>\n</div>\n", styles: [":host{position:relative}.notification-bar-wrapper{display:block;left:0;overflow:hidden;right:0;width:100%}.notification-bar-wrapper *{box-sizing:border-box;margin:0;padding:0}.notification-bar-wrapper .notification-bar{border:1px solid;border-radius:5px;align-items:center;display:inline-flex;margin:0 auto;padding:3px;position:relative;font-size:14px;color:#fff;width:100%}.notification-bar-wrapper .notification-bar .notification-close-button{background:transparent;cursor:pointer;border:0;border-radius:0;color:#fff;transition:all .25s ease}.notification-bar-wrapper .notification-bar .notification-bar-message{display:flex;width:100%;margin:auto;gap:10px}.notification-bar-wrapper .notification-bar.notification-bar-INFO{background-color:#03a9f5}.notification-bar-wrapper .notification-bar.notification-bar-FEAT{background-color:#37b400}.notification-bar-wrapper .notification-bar.notification-bar-MAINT{background-color:#ff6358}.notification-bar-wrapper .mat-icon-small{height:18px;width:18px;min-width:18px;font-size:18px;color:#fff!important;margin-right:0!important}\n"] }]
35
- }] });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXctZnJvbnQtY29tbW9uLWxpYnJhcnkvc3JjL2xpYi91dGlsL2NvbXBvbmVudC9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXctZnJvbnQtY29tbW9uLWxpYnJhcnkvc3JjL2xpYi91dGlsL2NvbXBvbmVudC9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWtDLE1BQU0sZUFBZSxDQUFDO0FBRXpGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0RBQWtELENBQUM7Ozs7QUFRdkYsTUFBTSxPQUFPLHdCQUF3QjtJQUxyQztRQU1FLFNBQUksR0FBd0IsS0FBSyxFQUFVLENBQUM7UUFFckMsa0JBQWEsR0FBd0IsRUFBRSxDQUFDO1FBRTlCLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTFCLHdCQUFtQixHQUF3QixNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztLQW1CekY7SUFqQkMsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQzdFLElBQUksWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsS0FBSyxZQUFZLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztnQkFDNUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDeEMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLGVBQWUsQ0FBQyxZQUErQjtRQUNwRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3ZELElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN0QyxDQUFDOytHQXpCVSx3QkFBd0I7bUdBQXhCLHdCQUF3Qix5TENYckMsODVCQWdCQTs7NEZETGEsd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNFLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCwgSW5wdXRTaWduYWwsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25vdGlmaWNhdGlvbi1iYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbm90aWZpY2F0aW9uLWJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWyAnLi9ub3RpZmljYXRpb24tYmFyLmNvbXBvbmVudC5zY3NzJyBdXG59KVxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbkJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgbGFuZzogSW5wdXRTaWduYWw8c3RyaW5nPiA9IGlucHV0PHN0cmluZz4oKTtcblxuICBwdWJsaWMgbm90aWZpY2F0aW9uczogTm90aWZpY2F0aW9uTW9kZWxbXSA9IFtdO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc3VicyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UgPSBpbmplY3QoTm90aWZpY2F0aW9uU2VydmljZSk7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzLmFkZCh0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uubm90aWZpY2F0aW9ucyQuc3Vic2NyaWJlKG5vdGlmaWNhdGlvbiA9PiB7XG4gICAgICBpZiAobm90aWZpY2F0aW9uICYmICF0aGlzLm5vdGlmaWNhdGlvbnMuc29tZShvdGhlck5vdGlmaWNhdGlvbiA9PiBvdGhlck5vdGlmaWNhdGlvbi5pZCA9PT0gbm90aWZpY2F0aW9uLmlkKSkge1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnMucHVzaChub3RpZmljYXRpb24pO1xuICAgICAgfVxuICAgIH0pKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vicy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIGFja05vdGlmaWNhdGlvbihub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbk1vZGVsKTogdm9pZCB7XG4gICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmFja05vdGlmaWNhdGlvbihub3RpZmljYXRpb24pO1xuICAgIGxldCBpbmRleCA9IHRoaXMubm90aWZpY2F0aW9ucy5pbmRleE9mKG5vdGlmaWNhdGlvbik7XG4gICAgdGhpcy5ub3RpZmljYXRpb25zLnNwbGljZShpbmRleCwgMSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJub3RpZmljYXRpb24tYmFyLXdyYXBwZXJcIj5cbiAgPGRpdiAqbmdGb3I9XCJsZXQgbm90aWZpY2F0aW9uIG9mIG5vdGlmaWNhdGlvbnNcIlxuICAgICAgIFtuZ0NsYXNzXT1cIidub3RpZmljYXRpb24tYmFyIG5vdGlmaWNhdGlvbi1iYXItJyArIG5vdGlmaWNhdGlvbi5jbGFzc2lmaWNhdGlvblwiPlxuICAgIDxkaXYgY2xhc3M9XCJub3RpZmljYXRpb24tYmFyLW1lc3NhZ2VcIj5cbiAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zLW91dGxpbmVkIG1hdC1pY29uLXNtYWxsXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJub3RpZmljYXRpb24uY2xhc3NpZmljYXRpb24gPT09ICdJTkZPJ1wiPmluZm88L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm5vdGlmaWNhdGlvbi5jbGFzc2lmaWNhdGlvbiA9PT0gJ0ZFQVQnXCI+cm9ja2V0X2xhdW5jaDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibm90aWZpY2F0aW9uLmNsYXNzaWZpY2F0aW9uID09PSAnTUFJTlQnXCI+d2FybmluZ19hbWJlcjwvbmctY29udGFpbmVyPlxuICAgICAgPC9tYXQtaWNvbj5cbiAgICAgIDxzcGFuPnt7IGxhbmcoKSA9PT0gJ2ZyJyA/IG5vdGlmaWNhdGlvbi5tZXNzYWdlRnIgOiBub3RpZmljYXRpb24ubWVzc2FnZUVuIH19PC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxidXR0b24gY2xhc3M9XCJub3RpZmljYXRpb24tY2xvc2UtYnV0dG9uXCIgKGNsaWNrKT1cImFja05vdGlmaWNhdGlvbihub3RpZmljYXRpb24pXCI+XG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJtYXRlcmlhbC1pY29ucy1vdXRsaW5lZCBtYXQtaWNvbi1zbWFsbFwiPmNsb3NlPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -1,3 +0,0 @@
1
- export class NotificationModel {
2
- }
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV3LWZyb250LWNvbW1vbi1saWJyYXJ5L3NyYy9saWIvdXRpbC9tb2RlbHMvbm90aWZpY2F0aW9uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxpQkFBaUI7Q0FZN0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZWN0aW9uTW9kZWwgfSBmcm9tICcuL3NlY3Rpb24ubW9kZWwnO1xuXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uTW9kZWwge1xuICBwdWJsaWMgaWQ6IG51bWJlcjtcbiAgcHVibGljIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIHB1YmxpYyBjbGFzc2lmaWNhdGlvbjogc3RyaW5nO1xuICBwdWJsaWMgbWVzc2FnZUVuOiBzdHJpbmc7XG4gIHB1YmxpYyBtZXNzYWdlRnI6IHN0cmluZztcbiAgcHVibGljIHRhcmdldFNlY3Rpb25zOiBTZWN0aW9uTW9kZWxbXTtcbiAgcHVibGljIHB1YmxpY2F0aW9uRGF0ZTogRGF0ZTtcbiAgcHVibGljIGV4cGlyYXRpb25EYXRlOiBEYXRlO1xuICBwdWJsaWMgcHVibGlzaGVkOiBib29sZWFuO1xuICBwdWJsaWMgY3JlYXRlZEJ5OiBzdHJpbmc7XG4gIHB1YmxpYyBjcmVhdGVkRGF0ZTogRGF0ZTtcbn1cbiJdfQ==
@@ -1,26 +0,0 @@
1
- import { Inject, Injectable } from '@angular/core';
2
- import { WEB_CONFIG } from '../../config';
3
- import { catchError } from 'rxjs/operators';
4
- import { CommonApiService } from './common-api.service';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common/http";
7
- export class NotificationApiService {
8
- constructor(config, http) {
9
- this.config = config;
10
- this.http = http;
11
- this.apiUrl = this.config.api_url + '/authorization-api/';
12
- }
13
- getLiveNotifications() {
14
- return this.http.get(this.apiUrl + `notifications/live`)
15
- .pipe(catchError(CommonApiService.handleError));
16
- }
17
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: NotificationApiService, deps: [{ token: WEB_CONFIG }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
18
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: NotificationApiService }); }
19
- }
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: NotificationApiService, decorators: [{
21
- type: Injectable
22
- }], ctorParameters: () => [{ type: undefined, decorators: [{
23
- type: Inject,
24
- args: [WEB_CONFIG]
25
- }] }, { type: i1.HttpClient }] });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLWFwaS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV3LWZyb250LWNvbW1vbi1saWJyYXJ5L3NyYy9saWIvdXRpbC9zZXJ2aWNlcy9hcGkvbm90aWZpY2F0aW9uLWFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBVSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7QUFHeEQsTUFBTSxPQUFPLHNCQUFzQjtJQUdqQyxZQUFpRCxNQUFjLEVBQ2xDLElBQWdCO1FBREksV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNsQyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBSHRDLFdBQU0sR0FBVyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxxQkFBcUIsQ0FBQztJQUlwRSxDQUFDO0lBRU0sb0JBQW9CO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQXNCLElBQUksQ0FBQyxNQUFNLEdBQUcsb0JBQW9CLENBQUM7YUFDMUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7K0dBVlUsc0JBQXNCLGtCQUdiLFVBQVU7bUhBSG5CLHNCQUFzQjs7NEZBQXRCLHNCQUFzQjtrQkFEbEMsVUFBVTs7MEJBSUksTUFBTTsyQkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb25maWcsIFdFQl9DT05GSUcgfSBmcm9tICcuLi8uLi9jb25maWcnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvbm90aWZpY2F0aW9uLm1vZGVsJztcbmltcG9ydCB7IGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQ29tbW9uQXBpU2VydmljZSB9IGZyb20gJy4vY29tbW9uLWFwaS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbkFwaVNlcnZpY2Uge1xuICBwdWJsaWMgYXBpVXJsOiBzdHJpbmcgPSB0aGlzLmNvbmZpZy5hcGlfdXJsICsgJy9hdXRob3JpemF0aW9uLWFwaS8nO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoV0VCX0NPTkZJRykgcHJpdmF0ZSByZWFkb25seSBjb25maWc6IENvbmZpZyxcbiAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSBodHRwOiBIdHRwQ2xpZW50KSB7XG4gIH1cblxuICBwdWJsaWMgZ2V0TGl2ZU5vdGlmaWNhdGlvbnMoKTogT2JzZXJ2YWJsZTxOb3RpZmljYXRpb25Nb2RlbFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8Tm90aWZpY2F0aW9uTW9kZWxbXT4odGhpcy5hcGlVcmwgKyBgbm90aWZpY2F0aW9ucy9saXZlYClcbiAgICAgIC5waXBlKGNhdGNoRXJyb3IoQ29tbW9uQXBpU2VydmljZS5oYW5kbGVFcnJvcikpO1xuICB9XG59XG4iXX0=
@@ -1,106 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { Inject, Injectable } from '@angular/core';
3
- import { Client } from '@stomp/stompjs';
4
- import { BehaviorSubject } from 'rxjs';
5
- import SockJS from 'sockjs-client';
6
- import { User } from '../../decorators/user.decorator';
7
- import { WEB_CONFIG } from '../../config';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "../api/notification-api.service";
10
- import * as i2 from "../storage/local-storage.service";
11
- import * as i3 from "../auth/auth.service";
12
- export const NOTIFICATION_WEBSOCKET_URL = '/authorization-api/ws';
13
- export const NOTIFICATION_TOPIC = '/topic/notification';
14
- export const ACKED_NOTIFICATIONS_LOCAL_STORAGE_KEY = 'ackedNotifications';
15
- export class NotificationService {
16
- constructor(config, notificationApiService, localStorage, authService) {
17
- this.config = config;
18
- this.notificationApiService = notificationApiService;
19
- this.localStorage = localStorage;
20
- this.authService = authService;
21
- this.stompClient = null;
22
- this.notificationSubject = new BehaviorSubject(null);
23
- // Observable for components to subscribe to messages
24
- this.notifications$ = this.notificationSubject.asObservable();
25
- // Subject to track the connection status (connected/disconnected)
26
- this.connectionSubject = new BehaviorSubject(false);
27
- this.apiUrl = this.config.api_url + NOTIFICATION_WEBSOCKET_URL;
28
- authService.isAuthenticated$.subscribe(isAuthenticated => {
29
- if (isAuthenticated) {
30
- this.fetchLiveNotifications();
31
- this.subscribeToNotifications();
32
- }
33
- });
34
- }
35
- ackNotification(notification) {
36
- const ackedNotifications = this.localStorage.get(ACKED_NOTIFICATIONS_LOCAL_STORAGE_KEY) ?? [];
37
- ackedNotifications.push(notification.id);
38
- this.localStorage.post(ACKED_NOTIFICATIONS_LOCAL_STORAGE_KEY, ackedNotifications);
39
- }
40
- fetchLiveNotifications() {
41
- this.notificationApiService.getLiveNotifications().subscribe(notifications => {
42
- const liveNotificationIds = notifications.map(notification => notification.id);
43
- // Clear up any acked notifications that have expired (no longer live)
44
- let ackedNotifications = this.localStorage.get(ACKED_NOTIFICATIONS_LOCAL_STORAGE_KEY) ?? [];
45
- ackedNotifications = ackedNotifications.filter(ackedNotificationId => liveNotificationIds.indexOf(ackedNotificationId) >= 0);
46
- this.localStorage.post(ACKED_NOTIFICATIONS_LOCAL_STORAGE_KEY, ackedNotifications);
47
- // Handle new notifications
48
- notifications.filter(notification => notification.published)
49
- .filter(notification => ackedNotifications.indexOf(notification.id) === -1)
50
- .forEach(notification => this.handleNotification(notification));
51
- });
52
- }
53
- subscribeToNotifications() {
54
- if (this.stompClient) {
55
- return;
56
- }
57
- // Start listening for new notifications
58
- const socket = new SockJS(this.apiUrl); // Initialize the SockJS WebSocket connection to the server
59
- // Configure the STOMP client with connection details
60
- this.stompClient = new Client({
61
- webSocketFactory: () => socket, // Use SockJS as the WebSocket factory
62
- reconnectDelay: 5000, // Reconnect delay if connection is lost
63
- });
64
- if (!this.stompClient) {
65
- console.error('Failed to initialize stomp client');
66
- return;
67
- }
68
- // On successful connection
69
- this.stompClient.onConnect = () => {
70
- this.connectionSubject.next(true);
71
- // Register notification callback
72
- this.stompClient.subscribe(NOTIFICATION_TOPIC, (message) => {
73
- const notification = JSON.parse(message.body);
74
- this.handleNotification(notification);
75
- });
76
- };
77
- this.stompClient.onStompError = (frame) => {
78
- console.error('Broker reported error: ' + frame.headers['message']);
79
- console.error('Additional details: ' + frame.body);
80
- };
81
- console.log('Activating stomp client');
82
- this.stompClient.activate();
83
- }
84
- handleNotification(notification) {
85
- const targetSectionIds = notification.targetSections.map(section => section.id);
86
- const userSectionIds = this.user.permissions.map(permission => permission.sectionId);
87
- if (targetSectionIds.some((targetSectionId) => userSectionIds.includes(targetSectionId))) {
88
- this.notificationSubject.next(notification);
89
- }
90
- }
91
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: NotificationService, deps: [{ token: WEB_CONFIG }, { token: i1.NotificationApiService }, { token: i2.LocalStorageService }, { token: i3.AuthService }], target: i0.ɵɵFactoryTarget.Injectable }); }
92
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: NotificationService, providedIn: 'root' }); }
93
- }
94
- __decorate([
95
- User()
96
- ], NotificationService.prototype, "user", void 0);
97
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: NotificationService, decorators: [{
98
- type: Injectable,
99
- args: [{
100
- providedIn: 'root',
101
- }]
102
- }], ctorParameters: () => [{ type: undefined, decorators: [{
103
- type: Inject,
104
- args: [WEB_CONFIG]
105
- }] }, { type: i1.NotificationApiService }, { type: i2.LocalStorageService }, { type: i3.AuthService }], propDecorators: { user: [] } });
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXctZnJvbnQtY29tbW9uLWxpYnJhcnkvc3JjL2xpYi91dGlsL3NlcnZpY2VzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBVyxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxNQUFNLE1BQU0sZUFBZSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN2RCxPQUFPLEVBQVUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7OztBQU1sRCxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyx1QkFBdUIsQ0FBQztBQUNsRSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxxQkFBcUIsQ0FBQztBQUN4RCxNQUFNLENBQUMsTUFBTSxxQ0FBcUMsR0FBRyxvQkFBb0IsQ0FBQztBQUsxRSxNQUFNLE9BQU8sbUJBQW1CO0lBYzlCLFlBQWlELE1BQWMsRUFDbEMsc0JBQThDLEVBQzlDLFlBQWlDLEVBQ3pDLFdBQXdCO1FBSEksV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNsQywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzlDLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUN6QyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQWJyQyxnQkFBVyxHQUFrQixJQUFJLENBQUM7UUFFekIsd0JBQW1CLEdBQUcsSUFBSSxlQUFlLENBQW9CLElBQUksQ0FBQyxDQUFDO1FBRXBGLHFEQUFxRDtRQUM5QyxtQkFBYyxHQUFHLElB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QztZQUN6RixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzlDLENBQUM7SUFDSCxDQUFDOytHQTlGVSxtQkFBbUIsa0JBY1YsVUFBVTttSEFkbkIsbUJBQW1CLGNBRmxCLE1BQU07O0FBR0g7SUFBZCxJQUFJLEVBQUU7aURBQXdCOzRGQURwQixtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFlYyxNQUFNOzJCQUFDLFVBQVU7MElBYmYsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2xpZW50LCBNZXNzYWdlIH0gZnJvbSAnQHN0b21wL3N0b21wanMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgU29ja0pTIGZyb20gJ3NvY2tqcy1jbGllbnQnO1xuaW1wb3J0IHsgVXNlciB9IGZyb20gJy4uLy4uL2RlY29yYXRvcnMvdXNlci5kZWNvcmF0b3InO1xuaW1wb3J0IHsgQ29uZmlnLCBXRUJfQ09ORklHIH0gZnJvbSAnLi4vLi4vY29uZmlnJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvbk1vZGVsLCBVc2VyTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uQXBpU2VydmljZSB9IGZyb20gJy4uL2FwaS9ub3RpZmljYXRpb24tYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9jYWxTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uL3N0b3JhZ2UvbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vYXV0aC9hdXRoLnNlcnZpY2UnO1xuXG5leHBvcnQgY29uc3QgTk9USUZJQ0FUSU9OX1dFQlNPQ0tFVF9VUkwgPSAnL2F1dGhvcml6YXRpb24tYXBpL3dzJztcbmV4cG9ydCBjb25zdCBOT1RJRklDQVRJT05fVE9QSUMgPSAnL3RvcGljL25vdGlmaWNhdGlvbic7XG5leHBvcnQgY29uc3QgQUNLRURfTk9USUZJQ0FUSU9OU19MT0NBTF9TVE9SQUdFX0tFWSA9ICdhY2tlZE5vdGlmaWNhdGlvbnMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uU2VydmljZSB7XG4gIEBVc2VyKCkgcHVibGljIHVzZXI6IFVzZXJNb2RlbDtcblxuICBwdWJsaWMgYXBpVXJsOiBzdHJpbmc7XG4gIHByaXZhdGUgc3RvbXBDbGllbnQ6IENsaWVudCB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbm90aWZpY2F0aW9uU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Tm90aWZpY2F0aW9uTW9kZWw+KG51bGwpO1xuXG4gIC8vIE9ic2VydmFibGUgZm9yIGNvbXBvbmVudHMgdG8gc3Vic2NyaWJlIHRvIG1lc3NhZ2VzXG4gIHB1YmxpYyBub3RpZmljYXRpb25zJCA9IHRoaXMubm90aWZpY2F0aW9uU3ViamVjdC5hc09ic2VydmFibGUoKTtcblxuICAvLyBTdWJqZWN0IHRvIHRyYWNrIHRoZSBjb25uZWN0aW9uIHN0YXR1cyAoY29ubmVjdGVkL2Rpc2Nvbm5lY3RlZClcbiAgcHJpdmF0ZSByZWFkb25seSBjb25uZWN0aW9uU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoV0VCX0NPTkZJRykgcHJpdmF0ZSByZWFkb25seSBjb25maWc6IENvbmZpZyxcbiAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSBub3RpZmljYXRpb25BcGlTZXJ2aWNlOiBOb3RpZmljYXRpb25BcGlTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGxvY2FsU3RvcmFnZTogTG9jYWxTdG9yYWdlU2VydmljZSxcbiAgICAgICAgICAgICAgcmVhZG9ubHkgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlKSB7XG4gICAgdGhpcy5hcGlVcmwgPSB0aGlzLmNvbmZpZy5hcGlfdXJsICsgTk9USUZJQ0FUSU9OX1dFQlNPQ0tFVF9VUkw7XG4gICAgYXV0aFNlcnZpY2UuaXNBdXRoZW50aWNhdGVkJC5zdWJzY3JpYmUoaXNBdXRoZW50aWNhdGVkID0+IHtcbiAgICAgIGlmIChpc0F1dGhlbnRpY2F0ZWQpIHtcbiAgICAgICAgdGhpcy5mZXRjaExpdmVOb3RpZmljYXRpb25zKCk7XG4gICAgICAgIHRoaXMuc3Vic2NyaWJlVG9Ob3RpZmljYXRpb25zKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYWNrTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbjogTm90aWZpY2F0aW9uTW9kZWwpOiB2b2lkIHtcbiAgICBjb25zdCBhY2tlZE5vdGlmaWNhdGlvbnM6IG51bWJlcltdID0gdGhpcy5sb2NhbFN0b3JhZ2UuZ2V0KEFDS0VEX05PVElGSUNBVElPTlNfTE9DQUxfU1RPUkFHRV9LRVkpID8/IFtdO1xuICAgIGFja2VkTm90aWZpY2F0aW9ucy5wdXNoKG5vdGlmaWNhdGlvbi5pZCk7XG4gICAgdGhpcy5sb2NhbFN0b3JhZ2UucG9zdChBQ0tFRF9OT1RJRklDQVRJT05TX0xPQ0FMX1NUT1JBR0VfS0VZLCBhY2tlZE5vdGlmaWNhdGlvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBmZXRjaExpdmVOb3RpZmljYXRpb25zKCk6IHZvaWQge1xuICAgIHRoaXMubm90aWZpY2F0aW9uQXBpU2VydmljZS5nZXRMaXZlTm90aWZpY2F0aW9ucygpLnN1YnNjcmliZShub3RpZmljYXRpb25zID0+IHtcbiAgICAgIGNvbnN0IGxpdmVOb3RpZmljYXRpb25JZHMgPSBub3RpZmljYXRpb25zLm1hcChub3RpZmljYXRpb24gPT4gbm90aWZpY2F0aW9uLmlkKTtcblxuICAgICAgLy8gQ2xlYXIgdXAgYW55IGFja2VkIG5vdGlmaWNhdGlvbnMgdGhhdCBoYXZlIGV4cGlyZWQgKG5vIGxvbmdlciBsaXZlKVxuICAgICAgbGV0IGFja2VkTm90aWZpY2F0aW9uczogbnVtYmVyW10gPSB0aGlzLmxvY2FsU3RvcmFnZS5nZXQoQUNLRURfTk9USUZJQ0FUSU9OU19MT0NBTF9TVE9SQUdFX0tFWSkgPz8gW107XG4gICAgICBhY2tlZE5vdGlmaWNhdGlvbnMgPSBhY2tlZE5vdGlmaWNhdGlvbnMuZmlsdGVyKGFja2VkTm90aWZpY2F0aW9uSWQgPT4gbGl2ZU5vdGlmaWNhdGlvbklkcy5pbmRleE9mKGFja2VkTm90aWZpY2F0aW9uSWQpID49IDApXG4gICAgICB0aGlzLmxvY2FsU3RvcmFnZS5wb3N0KEFDS0VEX05PVElGSUNBVElPTlNfTE9DQUxfU1RPUkFHRV9LRVksIGFja2VkTm90aWZpY2F0aW9ucyk7XG5cbiAgICAgIC8vIEhhbmRsZSBuZXcgbm90aWZpY2F0aW9uc1xuICAgICAgbm90aWZpY2F0aW9ucy5maWx0ZXIobm90aWZpY2F0aW9uID0+IG5vdGlmaWNhdGlvbi5wdWJsaXNoZWQpXG4gICAgICAgIC5maWx0ZXIobm90aWZpY2F0aW9uID0+IGFja2VkTm90aWZpY2F0aW9ucy5pbmRleE9mKG5vdGlmaWNhdGlvbi5pZCkgPT09IC0xKVxuICAgICAgICAuZm9yRWFjaChub3RpZmljYXRpb24gPT4gdGhpcy5oYW5kbGVOb3RpZmljYXRpb24obm90aWZpY2F0aW9uKSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHN1YnNjcmliZVRvTm90aWZpY2F0aW9ucygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdG9tcENsaWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFN0YXJ0IGxpc3RlbmluZyBmb3IgbmV3IG5vdGlmaWNhdGlvbnNcbiAgICBjb25zdCBzb2NrZXQgPSBuZXcgU29ja0pTKHRoaXMuYXBpVXJsKTsgLy8gSW5pdGlhbGl6ZSB0aGUgU29ja0pTIFdlYlNvY2tldCBjb25uZWN0aW9uIHRvIHRoZSBzZXJ2ZXJcblxuICAgIC8vIENvbmZpZ3VyZSB0aGUgU1RPTVAgY2xpZW50IHdpdGggY29ubmVjdGlvbiBkZXRhaWxzXG4gICAgdGhpcy5zdG9tcENsaWVudCA9IG5ldyBDbGllbnQoe1xuICAgICAgd2ViU29ja2V0RmFjdG9yeTogKCkgPT4gc29ja2V0LCAvLyBVc2UgU29ja0pTIGFzIHRoZSBXZWJTb2NrZXQgZmFjdG9yeVxuICAgICAgcmVjb25uZWN0RGVsYXk6IDUwMDAsIC8vIFJlY29ubmVjdCBkZWxheSBpZiBjb25uZWN0aW9uIGlzIGxvc3RcbiAgICB9KTtcblxuICAgIGlmICghdGhpcy5zdG9tcENsaWVudCkge1xuICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGluaXRpYWxpemUgc3RvbXAgY2xpZW50Jyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gT24gc3VjY2Vzc2Z1bCBjb25uZWN0aW9uXG4gICAgdGhpcy5zdG9tcENsaWVudC5vbkNvbm5lY3QgPSAoKSA9PiB7XG4gICAgICB0aGlzLmNvbm5lY3Rpb25TdWJqZWN0Lm5leHQodHJ1ZSk7XG4gICAgICAvLyBSZWdpc3RlciBub3RpZmljYXRpb24gY2FsbGJhY2tcbiAgICAgIHRoaXMuc3RvbXBDbGllbnQuc3Vic2NyaWJlKE5PVElGSUNBVElPTl9UT1BJQywgKG1lc3NhZ2U6IE1lc3NhZ2UpID0+IHtcbiAgICAgICAgY29uc3Qgbm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb25Nb2RlbCA9IEpTT04ucGFyc2UobWVzc2FnZS5ib2R5KTtcbiAgICAgICAgdGhpcy5oYW5kbGVOb3RpZmljYXRpb24obm90aWZpY2F0aW9uKTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICB0aGlzLnN0b21wQ2xpZW50Lm9uU3RvbXBFcnJvciA9IChmcmFtZSkgPT4ge1xuICAgICAgY29uc29sZS5lcnJvcignQnJva2VyIHJlcG9ydGVkIGVycm9yOiAnICsgZnJhbWUuaGVhZGVyc1snbWVzc2FnZSddKTtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0FkZGl0aW9uYWwgZGV0YWlsczogJyArIGZyYW1lLmJvZHkpO1xuICAgIH07XG5cbiAgICBjb25zb2xlLmxvZygnQWN0aXZhdGluZyBzdG9tcCBjbGllbnQnKTtcbiAgICB0aGlzLnN0b21wQ2xpZW50LmFjdGl2YXRlKCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZU5vdGlmaWNhdGlvbihub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbk1vZGVsKTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0U2VjdGlvbklkcyA9IG5vdGlmaWNhdGlvbi50YXJnZXRTZWN0aW9ucy5tYXAoc2VjdGlvbiA9PiBzZWN0aW9uLmlkKTtcbiAgICBjb25zdCB1c2VyU2VjdGlvbklkcyA9IHRoaXMudXNlci5wZXJtaXNzaW9ucy5tYXAocGVybWlzc2lvbiA9PiBwZXJtaXNzaW9uLnNlY3Rpb25JZCk7XG5cbiAgICBpZiAodGFyZ2V0U2VjdGlvbklkcy5zb21lKCh0YXJnZXRTZWN0aW9uSWQpID0+IHVzZXJTZWN0aW9uSWRzLmluY2x1ZGVzKHRhcmdldFNlY3Rpb25JZCkpKSB7XG4gICAgICB0aGlzLm5vdGlmaWNhdGlvblN1YmplY3QubmV4dChub3RpZmljYXRpb24pO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -1,14 +0,0 @@
1
- import { InputSignal, OnDestroy, OnInit } from '@angular/core';
2
- import { NotificationModel } from '../../models';
3
- import * as i0 from "@angular/core";
4
- export declare class NotificationBarComponent implements OnInit, OnDestroy {
5
- lang: InputSignal<string>;
6
- notifications: NotificationModel[];
7
- private readonly subs;
8
- private readonly notificationService;
9
- ngOnInit(): void;
10
- ngOnDestroy(): void;
11
- ackNotification(notification: NotificationModel): void;
12
- static ɵfac: i0.ɵɵFactoryDeclaration<NotificationBarComponent, never>;
13
- static ɵcmp: i0.ɵɵComponentDeclaration<NotificationBarComponent, "notification-bar", never, { "lang": { "alias": "lang"; "required": false; "isSignal": true; }; }, {}, never, never, false, never>;
14
- }
@@ -1,14 +0,0 @@
1
- import { SectionModel } from './section.model';
2
- export declare class NotificationModel {
3
- id: number;
4
- description: string;
5
- classification: string;
6
- messageEn: string;
7
- messageFr: string;
8
- targetSections: SectionModel[];
9
- publicationDate: Date;
10
- expirationDate: Date;
11
- published: boolean;
12
- createdBy: string;
13
- createdDate: Date;
14
- }
@@ -1,14 +0,0 @@
1
- import { Config } from '../../config';
2
- import { Observable } from 'rxjs';
3
- import { NotificationModel } from '../../models/notification.model';
4
- import { HttpClient } from '@angular/common/http';
5
- import * as i0 from "@angular/core";
6
- export declare class NotificationApiService {
7
- private readonly config;
8
- private readonly http;
9
- apiUrl: string;
10
- constructor(config: Config, http: HttpClient);
11
- getLiveNotifications(): Observable<NotificationModel[]>;
12
- static ɵfac: i0.ɵɵFactoryDeclaration<NotificationApiService, never>;
13
- static ɵprov: i0.ɵɵInjectableDeclaration<NotificationApiService>;
14
- }
@@ -1,28 +0,0 @@
1
- import { Config } from '../../config';
2
- import { NotificationModel, UserModel } from '../../models';
3
- import { NotificationApiService } from '../api/notification-api.service';
4
- import { LocalStorageService } from '../storage/local-storage.service';
5
- import { AuthService } from '../auth/auth.service';
6
- import * as i0 from "@angular/core";
7
- export declare const NOTIFICATION_WEBSOCKET_URL = "/authorization-api/ws";
8
- export declare const NOTIFICATION_TOPIC = "/topic/notification";
9
- export declare const ACKED_NOTIFICATIONS_LOCAL_STORAGE_KEY = "ackedNotifications";
10
- export declare class NotificationService {
11
- private readonly config;
12
- private readonly notificationApiService;
13
- private readonly localStorage;
14
- readonly authService: AuthService;
15
- user: UserModel;
16
- apiUrl: string;
17
- private stompClient;
18
- private readonly notificationSubject;
19
- notifications$: import("rxjs").Observable<NotificationModel>;
20
- private readonly connectionSubject;
21
- constructor(config: Config, notificationApiService: NotificationApiService, localStorage: LocalStorageService, authService: AuthService);
22
- ackNotification(notification: NotificationModel): void;
23
- private fetchLiveNotifications;
24
- private subscribeToNotifications;
25
- private handleNotification;
26
- static ɵfac: i0.ɵɵFactoryDeclaration<NotificationService, never>;
27
- static ɵprov: i0.ɵɵInjectableDeclaration<NotificationService>;
28
- }