new-front-common-library 16.1.32-LEG-2 → 16.1.32-ROY-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 (403) 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 -98
  7. package/assets/css/_themes.scss +56 -56
  8. package/assets/css/_themes_v18.scss +55 -55
  9. package/assets/css/material/_mdc-dark-theme.scss +265 -265
  10. package/assets/css/material/_mdc-light-theme.scss +264 -264
  11. package/assets/css/material/_mdc.scss +408 -408
  12. package/assets/css/old-themes/_dark-theme.scss +639 -639
  13. package/assets/css/old-themes/_global.scss +689 -689
  14. package/assets/css/old-themes/_light-theme.scss +646 -646
  15. package/assets/css/old-themes/_themes-deprecated.scss +65 -65
  16. package/assets/i18n/front-common/de.json +30 -30
  17. package/assets/i18n/front-common/en.json +30 -30
  18. package/assets/i18n/front-common/fr.json +30 -30
  19. package/esm2022/lib/util/array.service.mjs +19 -19
  20. package/esm2022/lib/util/component/header/header.component.mjs +224 -221
  21. package/esm2022/lib/util/component/header/menu/menu.component.mjs +96 -96
  22. package/esm2022/lib/util/component/header/menu/menu.const.mjs +544 -544
  23. package/esm2022/lib/util/component/header/menu/menu.model.mjs +2 -2
  24. package/esm2022/lib/util/component/overlay/overlay.component.mjs +40 -40
  25. package/esm2022/lib/util/component/overlay/overlay.service.mjs +24 -24
  26. package/esm2022/lib/util/component/popup/popup-login/popup-login.component.mjs +90 -90
  27. package/esm2022/lib/util/component/sub-header/sub-header.component.mjs +44 -44
  28. package/esm2022/lib/util/config.mjs +8 -8
  29. package/esm2022/lib/util/date/PeriodModel.mjs +8 -8
  30. package/esm2022/lib/util/date/date-format-constants.mjs +12 -12
  31. package/esm2022/lib/util/date/date.util.mjs +218 -218
  32. package/esm2022/lib/util/decorators/theme.decorator.mjs +22 -22
  33. package/esm2022/lib/util/decorators/user.decorator.mjs +25 -25
  34. package/esm2022/lib/util/directives/my-number-formatter-directive.mjs +34 -34
  35. package/esm2022/lib/util/directives/show-if-truncated.directive.mjs +25 -25
  36. package/esm2022/lib/util/enums/family.enum.mjs +6 -6
  37. package/esm2022/lib/util/enums/rapid-search-item-type.enum.mjs +13 -12
  38. package/esm2022/lib/util/enums/status-color.enum.mjs +11 -11
  39. package/esm2022/lib/util/event/header/header-events.service.mjs +21 -21
  40. package/esm2022/lib/util/event/storage/local-storage-events.service.mjs +17 -17
  41. package/esm2022/lib/util/event/storage/session-storage-events.service.mjs +18 -18
  42. package/esm2022/lib/util/http/http-params.builder.mjs +27 -27
  43. package/esm2022/lib/util/i18n/de.mjs +158 -158
  44. package/esm2022/lib/util/i18n/en.mjs +158 -158
  45. package/esm2022/lib/util/i18n/fr.mjs +159 -158
  46. package/esm2022/lib/util/i18n/multi-translate-http-loader.mjs +21 -21
  47. package/esm2022/lib/util/interfaces/permissions.interface.mjs +2 -2
  48. package/esm2022/lib/util/models/any-line.model.mjs +37 -37
  49. package/esm2022/lib/util/models/audio-content.model.mjs +27 -27
  50. package/esm2022/lib/util/models/authPermission.model.mjs +16 -16
  51. package/esm2022/lib/util/models/authUser.model.mjs +21 -21
  52. package/esm2022/lib/util/models/basic.model.mjs +14 -14
  53. package/esm2022/lib/util/models/box-set-item.model.mjs +19 -19
  54. package/esm2022/lib/util/models/commercial/deal-rapid-search-model.mjs +3 -3
  55. package/esm2022/lib/util/models/commercial/invoice-rapid-search-model.mjs +9 -9
  56. package/esm2022/lib/util/models/commercial/work-record-rapid-search-model.mjs +13 -13
  57. package/esm2022/lib/util/models/disc-program.model.mjs +26 -26
  58. package/esm2022/lib/util/models/disc.model.mjs +22 -22
  59. package/esm2022/lib/util/models/eventType.model.mjs +7 -7
  60. package/esm2022/lib/util/models/expenditure-commitment/purchase-order-file.model.mjs +22 -22
  61. package/esm2022/lib/util/models/expenditure-commitment/purchase-order-rapid-search.model.mjs +3 -3
  62. package/esm2022/lib/util/models/family.model.mjs +7 -7
  63. package/esm2022/lib/util/models/index.mjs +101 -101
  64. package/esm2022/lib/util/models/lang-line.model.mjs +27 -27
  65. package/esm2022/lib/util/models/legal/contract-rapid-search-model.mjs +3 -3
  66. package/esm2022/lib/util/models/legal/contract-work.model.mjs +23 -23
  67. package/esm2022/lib/util/models/legal/contract-work2.model.mjs +21 -21
  68. package/esm2022/lib/util/models/legal/type-status-rapid-search.model.mjs +3 -3
  69. package/esm2022/lib/util/models/media-line.model.mjs +18 -18
  70. package/esm2022/lib/util/models/menu-language.model.mjs +15 -15
  71. package/esm2022/lib/util/models/permission.model.mjs +20 -20
  72. package/esm2022/lib/util/models/product-box-set.model.mjs +16 -16
  73. package/esm2022/lib/util/models/product-disc-detail.model.mjs +22 -22
  74. package/esm2022/lib/util/models/product-disc.model.mjs +27 -27
  75. package/esm2022/lib/util/models/product-division.model.mjs +29 -29
  76. package/esm2022/lib/util/models/product-type.model.mjs +22 -22
  77. package/esm2022/lib/util/models/product.model.mjs +62 -62
  78. package/esm2022/lib/util/models/program.model.mjs +28 -28
  79. package/esm2022/lib/util/models/purchase-order/purchase-order.model.mjs +53 -53
  80. package/esm2022/lib/util/models/referential/WorkVersionArticleDto.mjs +17 -17
  81. package/esm2022/lib/util/models/referential/adress-type.model.mjs +14 -14
  82. package/esm2022/lib/util/models/referential/adress.model.mjs +28 -28
  83. package/esm2022/lib/util/models/referential/attached-file.model.mjs +17 -17
  84. package/esm2022/lib/util/models/referential/bank-account.model.mjs +24 -24
  85. package/esm2022/lib/util/models/referential/bank-accounts.model.mjs +31 -31
  86. package/esm2022/lib/util/models/referential/basic-hierarchy.model.mjs +8 -8
  87. package/esm2022/lib/util/models/referential/broadcast-list-item.model.mjs +13 -13
  88. package/esm2022/lib/util/models/referential/color.model.mjs +16 -16
  89. package/esm2022/lib/util/models/referential/company.model.mjs +16 -16
  90. package/esm2022/lib/util/models/referential/content-type.model.mjs +17 -17
  91. package/esm2022/lib/util/models/referential/content.model.mjs +22 -22
  92. package/esm2022/lib/util/models/referential/cost-center-criteria-values.model.mjs +14 -14
  93. package/esm2022/lib/util/models/referential/cost-center-criteria.model.mjs +13 -13
  94. package/esm2022/lib/util/models/referential/cost-center.model.mjs +28 -28
  95. package/esm2022/lib/util/models/referential/coutry.model.mjs +16 -16
  96. package/esm2022/lib/util/models/referential/currency.model.mjs +20 -20
  97. package/esm2022/lib/util/models/referential/editorial-content.model.mjs +18 -18
  98. package/esm2022/lib/util/models/referential/fixing.model.mjs +16 -16
  99. package/esm2022/lib/util/models/referential/flat-media.model.mjs +18 -18
  100. package/esm2022/lib/util/models/referential/format-image.model.mjs +16 -16
  101. package/esm2022/lib/util/models/referential/format-type.model.mjs +16 -16
  102. package/esm2022/lib/util/models/referential/format.model.mjs +17 -17
  103. package/esm2022/lib/util/models/referential/fsk-index.model.mjs +20 -20
  104. package/esm2022/lib/util/models/referential/fsk.model.mjs +22 -22
  105. package/esm2022/lib/util/models/referential/function.model.mjs +23 -23
  106. package/esm2022/lib/util/models/referential/genre.model.mjs +17 -17
  107. package/esm2022/lib/util/models/referential/invoice-product-type.model.mjs +22 -22
  108. package/esm2022/lib/util/models/referential/keywords.model.mjs +13 -13
  109. package/esm2022/lib/util/models/referential/language.model.mjs +18 -18
  110. package/esm2022/lib/util/models/referential/media-filter.model.mjs +3 -3
  111. package/esm2022/lib/util/models/referential/media.model.mjs +20 -20
  112. package/esm2022/lib/util/models/referential/module.model.mjs +20 -20
  113. package/esm2022/lib/util/models/referential/parameter.model.mjs +2 -2
  114. package/esm2022/lib/util/models/referential/participant.model.mjs +20 -20
  115. package/esm2022/lib/util/models/referential/person.model.mjs +23 -23
  116. package/esm2022/lib/util/models/referential/project-status.model.mjs +16 -16
  117. package/esm2022/lib/util/models/referential/quota.model.mjs +17 -17
  118. package/esm2022/lib/util/models/referential/referential-entity-state.model.mjs +16 -16
  119. package/esm2022/lib/util/models/referential/referential-value.model.mjs +16 -16
  120. package/esm2022/lib/util/models/referential/referentiel.model.mjs +26 -26
  121. package/esm2022/lib/util/models/referential/restriction.model.mjs +20 -20
  122. package/esm2022/lib/util/models/referential/sap-order.model.mjs +20 -20
  123. package/esm2022/lib/util/models/referential/service-error.model.mjs +15 -15
  124. package/esm2022/lib/util/models/referential/sound.model.mjs +16 -16
  125. package/esm2022/lib/util/models/referential/territories-languages.model.mjs +16 -16
  126. package/esm2022/lib/util/models/referential/territory-filter.model.mjs +3 -3
  127. package/esm2022/lib/util/models/referential/territory.model.mjs +17 -17
  128. package/esm2022/lib/util/models/referential/theme.model.mjs +17 -17
  129. package/esm2022/lib/util/models/referential/third-party-address-rapid-search.model.mjs +3 -3
  130. package/esm2022/lib/util/models/referential/third-party-creation-request.model.mjs +44 -44
  131. package/esm2022/lib/util/models/referential/third-party-module.model.mjs +20 -20
  132. package/esm2022/lib/util/models/referential/third-party-rapid-search.model.mjs +3 -3
  133. package/esm2022/lib/util/models/referential/third-party.model.mjs +83 -83
  134. package/esm2022/lib/util/models/referential/translated-value-model.mjs +16 -16
  135. package/esm2022/lib/util/models/referential/tva.model.mjs +16 -16
  136. package/esm2022/lib/util/models/referential/type-export.model.mjs +16 -16
  137. package/esm2022/lib/util/models/referential/type-tva-company-territory.model.mjs +32 -32
  138. package/esm2022/lib/util/models/referential/type-tva.model.mjs +25 -25
  139. package/esm2022/lib/util/models/referential/user-form.model.mjs +2 -2
  140. package/esm2022/lib/util/models/referential/work-addons-model.mjs +16 -16
  141. package/esm2022/lib/util/models/referential/work-appartenance.model.mjs +17 -17
  142. package/esm2022/lib/util/models/referential/work-genre.model.mjs +16 -16
  143. package/esm2022/lib/util/models/referential/work-language.model.mjs +16 -16
  144. package/esm2022/lib/util/models/referential/work-milo.model.mjs +61 -61
  145. package/esm2022/lib/util/models/referential/work-participant.model.mjs +21 -21
  146. package/esm2022/lib/util/models/referential/work-restrictions-model.mjs +13 -13
  147. package/esm2022/lib/util/models/referential/work-theme.model.mjs +16 -16
  148. package/esm2022/lib/util/models/referential/work-title.model.mjs +20 -20
  149. package/esm2022/lib/util/models/referential/work-version-origin.model.mjs +16 -16
  150. package/esm2022/lib/util/models/referential/work-version-rapid-search.model.mjs +3 -3
  151. package/esm2022/lib/util/models/referential/work-versions-used.model.mjs +19 -19
  152. package/esm2022/lib/util/models/referential/work-versions.model.mjs +27 -27
  153. package/esm2022/lib/util/models/referential/work-year-production.model.mjs +13 -13
  154. package/esm2022/lib/util/models/referential/work.model.mjs +22 -22
  155. package/esm2022/lib/util/models/referential/zone.model.mjs +14 -14
  156. package/esm2022/lib/util/models/referentiel.model.mjs +26 -26
  157. package/esm2022/lib/util/models/search-response.model.mjs +10 -10
  158. package/esm2022/lib/util/models/section.model.mjs +8 -8
  159. package/esm2022/lib/util/models/select/options.model.mjs +8 -8
  160. package/esm2022/lib/util/models/select/select.model.mjs +7 -7
  161. package/esm2022/lib/util/models/subsidiary.model.mjs +8 -8
  162. package/esm2022/lib/util/models/subtitle-content.model.mjs +28 -28
  163. package/esm2022/lib/util/models/user-video.model.mjs +22 -22
  164. package/esm2022/lib/util/models/user.model.mjs +35 -36
  165. package/esm2022/lib/util/models/video/product-rapid-search.model.mjs +3 -3
  166. package/esm2022/lib/util/models/video/support-rapid-search.model.mjs +3 -3
  167. package/esm2022/lib/util/models/video-content.model.mjs +18 -18
  168. package/esm2022/lib/util/number.validator.mjs +129 -129
  169. package/esm2022/lib/util/paginator/custom-paginator-configuration.mjs +59 -59
  170. package/esm2022/lib/util/permissions/permissions.service.mjs +49 -49
  171. package/esm2022/lib/util/pipes/capitalizefirst.pipe.mjs +41 -41
  172. package/esm2022/lib/util/pipes/comma-separated-number.pipe.mjs +15 -15
  173. package/esm2022/lib/util/pipes/common-translate.pipe.mjs +38 -38
  174. package/esm2022/lib/util/pipes/display-html.pipe.mjs +20 -20
  175. package/esm2022/lib/util/pipes/display-null.pipe.mjs +24 -24
  176. package/esm2022/lib/util/pipes/format-currency.pipe.mjs +31 -31
  177. package/esm2022/lib/util/pipes/format-duration.pipe.mjs +23 -23
  178. package/esm2022/lib/util/pipes/format-number-input.pipe.mjs +22 -22
  179. package/esm2022/lib/util/pipes/local-date.pipe.mjs +27 -27
  180. package/esm2022/lib/util/pipes/my-number.pipe.mjs +44 -44
  181. package/esm2022/lib/util/pipes/third-party-address-search.pipe.mjs +15 -15
  182. package/esm2022/lib/util/pipes/third-party-address.pipe.mjs +16 -16
  183. package/esm2022/lib/util/pipes/trim-string.pipe.mjs +25 -25
  184. package/esm2022/lib/util/regex/regex.service.mjs +94 -94
  185. package/esm2022/lib/util/services/api/commercial-api.service.mjs +28 -28
  186. package/esm2022/lib/util/services/api/common-api.service.mjs +98 -98
  187. package/esm2022/lib/util/services/api/legal-api.service.mjs +32 -32
  188. package/esm2022/lib/util/services/api/video-api.service.mjs +45 -45
  189. package/esm2022/lib/util/services/auth/auth.service.mjs +18 -18
  190. package/esm2022/lib/util/services/elasticsearch/elasticsearch.service.mjs +166 -158
  191. package/esm2022/lib/util/services/elasticsearch/subsidiaries.service.mjs +48 -54
  192. package/esm2022/lib/util/services/form-action/form-actions-events.service.mjs +25 -25
  193. package/esm2022/lib/util/services/guard/auth.guard.mjs +32 -32
  194. package/esm2022/lib/util/services/guard/login.guard.mjs +23 -23
  195. package/esm2022/lib/util/services/history/history.service.mjs +39 -39
  196. package/esm2022/lib/util/services/interceptor/auth.interceptor.mjs +53 -53
  197. package/esm2022/lib/util/services/jwt-security/aes.service.mjs +34 -34
  198. package/esm2022/lib/util/services/jwt-security/interceptorhttp.service.mjs +18 -18
  199. package/esm2022/lib/util/services/jwt-security/jwt.helpher.mjs +34 -34
  200. package/esm2022/lib/util/services/storage/local-storage.service.mjs +36 -36
  201. package/esm2022/lib/util/services/storage/session-storage.service.mjs +38 -38
  202. package/esm2022/lib/util/services/translate-language/lang.service.mjs +31 -31
  203. package/esm2022/lib/util/services/user/user-subsidiary.service.mjs +22 -22
  204. package/esm2022/lib/util/sort.mjs +22 -22
  205. package/esm2022/lib/util/theme/theme-event.service.mjs +17 -17
  206. package/esm2022/lib/util/toaster/toaster-events.service.mjs +32 -32
  207. package/esm2022/lib/util/util.module.mjs +281 -281
  208. package/esm2022/new-front-common-library.mjs +4 -4
  209. package/esm2022/public-api.mjs +59 -59
  210. package/fesm2022/new-front-common-library.mjs +5527 -5521
  211. package/fesm2022/new-front-common-library.mjs.map +1 -1
  212. package/index.d.ts +5 -5
  213. package/lib/util/array.service.d.ts +7 -7
  214. package/lib/util/component/header/header.component.d.ts +74 -74
  215. package/lib/util/component/header/menu/menu.component.d.ts +27 -27
  216. package/lib/util/component/header/menu/menu.const.d.ts +2 -2
  217. package/lib/util/component/header/menu/menu.model.d.ts +23 -23
  218. package/lib/util/component/overlay/overlay.component.d.ts +17 -17
  219. package/lib/util/component/overlay/overlay.service.d.ts +13 -13
  220. package/lib/util/component/popup/popup-login/popup-login.component.d.ts +35 -35
  221. package/lib/util/component/sub-header/sub-header.component.d.ts +13 -13
  222. package/lib/util/config.d.ts +8 -8
  223. package/lib/util/date/PeriodModel.d.ts +6 -6
  224. package/lib/util/date/date-format-constants.d.ts +25 -25
  225. package/lib/util/date/date.util.d.ts +16 -16
  226. package/lib/util/decorators/theme.decorator.d.ts +1 -1
  227. package/lib/util/decorators/user.decorator.d.ts +1 -1
  228. package/lib/util/directives/my-number-formatter-directive.d.ts +15 -15
  229. package/lib/util/directives/show-if-truncated.directive.d.ts +11 -11
  230. package/lib/util/enums/family.enum.d.ts +4 -4
  231. package/lib/util/enums/rapid-search-item-type.enum.d.ts +11 -10
  232. package/lib/util/enums/status-color.enum.d.ts +9 -9
  233. package/lib/util/event/header/header-events.service.d.ts +11 -11
  234. package/lib/util/event/storage/local-storage-events.service.d.ts +9 -9
  235. package/lib/util/event/storage/session-storage-events.service.d.ts +10 -10
  236. package/lib/util/http/http-params.builder.d.ts +9 -9
  237. package/lib/util/i18n/de.d.ts +141 -141
  238. package/lib/util/i18n/en.d.ts +141 -141
  239. package/lib/util/i18n/fr.d.ts +142 -141
  240. package/lib/util/i18n/multi-translate-http-loader.d.ts +14 -14
  241. package/lib/util/interfaces/permissions.interface.d.ts +3 -3
  242. package/lib/util/models/any-line.model.d.ts +24 -24
  243. package/lib/util/models/audio-content.model.d.ts +27 -27
  244. package/lib/util/models/authPermission.model.d.ts +7 -7
  245. package/lib/util/models/authUser.model.d.ts +16 -16
  246. package/lib/util/models/basic.model.d.ts +11 -11
  247. package/lib/util/models/box-set-item.model.d.ts +12 -12
  248. package/lib/util/models/commercial/deal-rapid-search-model.d.ts +10 -10
  249. package/lib/util/models/commercial/invoice-rapid-search-model.d.ts +18 -18
  250. package/lib/util/models/commercial/work-record-rapid-search-model.d.ts +21 -21
  251. package/lib/util/models/disc-program.model.d.ts +9 -9
  252. package/lib/util/models/disc.model.d.ts +15 -15
  253. package/lib/util/models/eventType.model.d.ts +5 -5
  254. package/lib/util/models/expenditure-commitment/purchase-order-file.model.d.ts +8 -8
  255. package/lib/util/models/expenditure-commitment/purchase-order-rapid-search.model.d.ts +10 -10
  256. package/lib/util/models/family.model.d.ts +5 -5
  257. package/lib/util/models/index.d.ts +100 -100
  258. package/lib/util/models/lang-line.model.d.ts +18 -18
  259. package/lib/util/models/legal/contract-rapid-search-model.d.ts +10 -10
  260. package/lib/util/models/legal/contract-work.model.d.ts +27 -27
  261. package/lib/util/models/legal/contract-work2.model.d.ts +23 -23
  262. package/lib/util/models/legal/type-status-rapid-search.model.d.ts +5 -5
  263. package/lib/util/models/media-line.model.d.ts +9 -9
  264. package/lib/util/models/menu-language.model.d.ts +6 -6
  265. package/lib/util/models/permission.model.d.ts +12 -12
  266. package/lib/util/models/product-box-set.model.d.ts +8 -8
  267. package/lib/util/models/product-disc-detail.model.d.ts +14 -14
  268. package/lib/util/models/product-disc.model.d.ts +11 -11
  269. package/lib/util/models/product-division.model.d.ts +15 -15
  270. package/lib/util/models/product-type.model.d.ts +7 -7
  271. package/lib/util/models/product.model.d.ts +52 -52
  272. package/lib/util/models/program.model.d.ts +21 -21
  273. package/lib/util/models/purchase-order/purchase-order.model.d.ts +40 -40
  274. package/lib/util/models/referential/WorkVersionArticleDto.d.ts +10 -10
  275. package/lib/util/models/referential/adress-type.model.d.ts +5 -5
  276. package/lib/util/models/referential/adress.model.d.ts +20 -20
  277. package/lib/util/models/referential/attached-file.model.d.ts +11 -11
  278. package/lib/util/models/referential/bank-account.model.d.ts +15 -15
  279. package/lib/util/models/referential/bank-accounts.model.d.ts +17 -17
  280. package/lib/util/models/referential/basic-hierarchy.model.d.ts +6 -6
  281. package/lib/util/models/referential/broadcast-list-item.model.d.ts +8 -8
  282. package/lib/util/models/referential/color.model.d.ts +6 -6
  283. package/lib/util/models/referential/company.model.d.ts +7 -7
  284. package/lib/util/models/referential/content-type.model.d.ts +12 -12
  285. package/lib/util/models/referential/content.model.d.ts +7 -7
  286. package/lib/util/models/referential/cost-center-criteria-values.model.d.ts +7 -7
  287. package/lib/util/models/referential/cost-center-criteria.model.d.ts +12 -12
  288. package/lib/util/models/referential/cost-center.model.d.ts +18 -18
  289. package/lib/util/models/referential/coutry.model.d.ts +7 -7
  290. package/lib/util/models/referential/currency.model.d.ts +11 -11
  291. package/lib/util/models/referential/editorial-content.model.d.ts +25 -25
  292. package/lib/util/models/referential/fixing.model.d.ts +10 -10
  293. package/lib/util/models/referential/flat-media.model.d.ts +9 -9
  294. package/lib/util/models/referential/format-image.model.d.ts +7 -7
  295. package/lib/util/models/referential/format-type.model.d.ts +6 -6
  296. package/lib/util/models/referential/format.model.d.ts +7 -7
  297. package/lib/util/models/referential/fsk-index.model.d.ts +22 -22
  298. package/lib/util/models/referential/fsk.model.d.ts +37 -37
  299. package/lib/util/models/referential/function.model.d.ts +8 -8
  300. package/lib/util/models/referential/genre.model.d.ts +7 -7
  301. package/lib/util/models/referential/invoice-product-type.model.d.ts +7 -7
  302. package/lib/util/models/referential/keywords.model.d.ts +6 -6
  303. package/lib/util/models/referential/language.model.d.ts +11 -11
  304. package/lib/util/models/referential/media-filter.model.d.ts +10 -10
  305. package/lib/util/models/referential/media.model.d.ts +11 -11
  306. package/lib/util/models/referential/module.model.d.ts +11 -11
  307. package/lib/util/models/referential/parameter.model.d.ts +6 -6
  308. package/lib/util/models/referential/participant.model.d.ts +11 -11
  309. package/lib/util/models/referential/person.model.d.ts +13 -13
  310. package/lib/util/models/referential/project-status.model.d.ts +6 -6
  311. package/lib/util/models/referential/quota.model.d.ts +7 -7
  312. package/lib/util/models/referential/referential-entity-state.model.d.ts +11 -11
  313. package/lib/util/models/referential/referential-value.model.d.ts +11 -11
  314. package/lib/util/models/referential/referentiel.model.d.ts +12 -12
  315. package/lib/util/models/referential/restriction.model.d.ts +9 -9
  316. package/lib/util/models/referential/sap-order.model.d.ts +27 -27
  317. package/lib/util/models/referential/service-error.model.d.ts +13 -13
  318. package/lib/util/models/referential/sound.model.d.ts +6 -6
  319. package/lib/util/models/referential/territories-languages.model.d.ts +8 -8
  320. package/lib/util/models/referential/territory-filter.model.d.ts +6 -6
  321. package/lib/util/models/referential/territory.model.d.ts +12 -12
  322. package/lib/util/models/referential/theme.model.d.ts +7 -7
  323. package/lib/util/models/referential/third-party-address-rapid-search.model.d.ts +8 -8
  324. package/lib/util/models/referential/third-party-creation-request.model.d.ts +48 -48
  325. package/lib/util/models/referential/third-party-module.model.d.ts +11 -11
  326. package/lib/util/models/referential/third-party-rapid-search.model.d.ts +8 -8
  327. package/lib/util/models/referential/third-party.model.d.ts +45 -45
  328. package/lib/util/models/referential/translated-value-model.d.ts +10 -10
  329. package/lib/util/models/referential/tva.model.d.ts +7 -7
  330. package/lib/util/models/referential/type-export.model.d.ts +7 -7
  331. package/lib/util/models/referential/type-tva-company-territory.model.d.ts +18 -18
  332. package/lib/util/models/referential/type-tva.model.d.ts +10 -10
  333. package/lib/util/models/referential/user-form.model.d.ts +5 -5
  334. package/lib/util/models/referential/work-addons-model.d.ts +25 -25
  335. package/lib/util/models/referential/work-appartenance.model.d.ts +7 -7
  336. package/lib/util/models/referential/work-genre.model.d.ts +11 -11
  337. package/lib/util/models/referential/work-language.model.d.ts +11 -11
  338. package/lib/util/models/referential/work-milo.model.d.ts +46 -46
  339. package/lib/util/models/referential/work-participant.model.d.ts +10 -10
  340. package/lib/util/models/referential/work-restrictions-model.d.ts +18 -18
  341. package/lib/util/models/referential/work-theme.model.d.ts +11 -11
  342. package/lib/util/models/referential/work-title.model.d.ts +10 -10
  343. package/lib/util/models/referential/work-version-origin.model.d.ts +10 -10
  344. package/lib/util/models/referential/work-version-rapid-search.model.d.ts +9 -9
  345. package/lib/util/models/referential/work-versions-used.model.d.ts +12 -12
  346. package/lib/util/models/referential/work-versions.model.d.ts +29 -29
  347. package/lib/util/models/referential/work-year-production.model.d.ts +6 -6
  348. package/lib/util/models/referential/work.model.d.ts +74 -74
  349. package/lib/util/models/referential/zone.model.d.ts +6 -6
  350. package/lib/util/models/referentiel.model.d.ts +12 -12
  351. package/lib/util/models/search-response.model.d.ts +7 -7
  352. package/lib/util/models/section.model.d.ts +7 -7
  353. package/lib/util/models/select/options.model.d.ts +6 -6
  354. package/lib/util/models/select/select.model.d.ts +5 -5
  355. package/lib/util/models/subsidiary.model.d.ts +7 -7
  356. package/lib/util/models/subtitle-content.model.d.ts +26 -26
  357. package/lib/util/models/user-video.model.d.ts +10 -10
  358. package/lib/util/models/user.model.d.ts +27 -28
  359. package/lib/util/models/video/product-rapid-search.model.d.ts +8 -8
  360. package/lib/util/models/video/support-rapid-search.model.d.ts +6 -6
  361. package/lib/util/models/video-content.model.d.ts +24 -24
  362. package/lib/util/number.validator.d.ts +14 -14
  363. package/lib/util/paginator/custom-paginator-configuration.d.ts +16 -16
  364. package/lib/util/permissions/permissions.service.d.ts +15 -15
  365. package/lib/util/pipes/capitalizefirst.pipe.d.ts +8 -8
  366. package/lib/util/pipes/comma-separated-number.pipe.d.ts +7 -7
  367. package/lib/util/pipes/common-translate.pipe.d.ts +12 -12
  368. package/lib/util/pipes/display-html.pipe.d.ts +10 -10
  369. package/lib/util/pipes/display-null.pipe.d.ts +8 -8
  370. package/lib/util/pipes/format-currency.pipe.d.ts +10 -10
  371. package/lib/util/pipes/format-duration.pipe.d.ts +7 -7
  372. package/lib/util/pipes/format-number-input.pipe.d.ts +7 -7
  373. package/lib/util/pipes/local-date.pipe.d.ts +9 -9
  374. package/lib/util/pipes/my-number.pipe.d.ts +11 -11
  375. package/lib/util/pipes/third-party-address-search.pipe.d.ts +8 -8
  376. package/lib/util/pipes/third-party-address.pipe.d.ts +8 -8
  377. package/lib/util/pipes/trim-string.pipe.d.ts +7 -7
  378. package/lib/util/regex/regex.service.d.ts +12 -12
  379. package/lib/util/services/api/commercial-api.service.d.ts +12 -12
  380. package/lib/util/services/api/common-api.service.d.ts +27 -27
  381. package/lib/util/services/api/legal-api.service.d.ts +15 -15
  382. package/lib/util/services/api/video-api.service.d.ts +17 -17
  383. package/lib/util/services/auth/auth.service.d.ts +9 -9
  384. package/lib/util/services/elasticsearch/elasticsearch.service.d.ts +35 -34
  385. package/lib/util/services/elasticsearch/subsidiaries.service.d.ts +12 -12
  386. package/lib/util/services/form-action/form-actions-events.service.d.ts +14 -14
  387. package/lib/util/services/guard/auth.guard.d.ts +2 -2
  388. package/lib/util/services/guard/login.guard.d.ts +1 -1
  389. package/lib/util/services/history/history.service.d.ts +10 -10
  390. package/lib/util/services/interceptor/auth.interceptor.d.ts +16 -16
  391. package/lib/util/services/jwt-security/aes.service.d.ts +12 -12
  392. package/lib/util/services/jwt-security/interceptorhttp.service.d.ts +8 -8
  393. package/lib/util/services/jwt-security/jwt.helpher.d.ts +4 -4
  394. package/lib/util/services/storage/local-storage.service.d.ts +13 -13
  395. package/lib/util/services/storage/session-storage.service.d.ts +13 -13
  396. package/lib/util/services/translate-language/lang.service.d.ts +14 -14
  397. package/lib/util/services/user/user-subsidiary.service.d.ts +9 -9
  398. package/lib/util/sort.d.ts +4 -4
  399. package/lib/util/theme/theme-event.service.d.ts +9 -9
  400. package/lib/util/toaster/toaster-events.service.d.ts +15 -15
  401. package/lib/util/util.module.d.ts +49 -49
  402. package/package.json +1 -1
  403. package/public-api.d.ts +56 -56
@@ -1,158 +1,166 @@
1
- import { Inject, Injectable } from '@angular/core';
2
- import { from } from 'rxjs';
3
- import { Client as ClientJs } from 'elasticsearch-browser';
4
- import { WEB_CONFIG } from '../../config';
5
- import { WorkRecordRapidSearchModel } from "../../models/commercial/work-record-rapid-search-model";
6
- import { InvoiceRapidSearchModel } from "../../models/commercial/invoice-rapid-search-model";
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "./subsidiaries.service";
9
- export class ElasticsearchService {
10
- constructor(config, subsidiariesMappingService) {
11
- this.config = config;
12
- this.subsidiariesMappingService = subsidiariesMappingService;
13
- this.PROFILE_SEARCH_CONFIG = {
14
- 'COMMERCIAL': ['unity-invoice*', 'unity-deal*', 'unity-work-record*'],
15
- 'ACCOUNTANT': ['unity-invoice*', 'unity-deal*', 'unity-work-record*'],
16
- 'ADMINISTRATIVE_CONTROLLER': ['unity-invoice*', 'unity-deal*', 'unity-work-record*'],
17
- 'VIDEO_CONSULT': ['unity-product*'],
18
- 'BDC': ['unity-purchase-order*'],
19
- 'LEGAL': ['unity-contract*']
20
- };
21
- }
22
- getElasticsearchClient() {
23
- if (!this.client) {
24
- this.client = new ClientJs({
25
- host: this.config.elasticsearch_url
26
- });
27
- }
28
- return this.client;
29
- }
30
- getSearchResponse(text, user) {
31
- const allIndexes = new Set();
32
- allIndexes.add('unity-work-version*');
33
- allIndexes.add('unity-third-party*');
34
- for (const permission of user.permissions) {
35
- const indexes = this.PROFILE_SEARCH_CONFIG[permission.code];
36
- indexes?.forEach(idx => allIndexes.add(idx));
37
- }
38
- const body = [];
39
- for (const index of allIndexes) {
40
- body.push({ index });
41
- switch (index) {
42
- case 'unity-work-version*':
43
- body.push({
44
- query: {
45
- dis_max: {
46
- queries: [{ wildcard: { miloCode: { value: '*' + text + '*' } } }, { wildcard: { title: { value: '*' + text + '*' } } }, { wildcard: { title: { value: text + '*' } } }, { wildcard: { title: { value: text } } }],
47
- tie_breaker: 0.5
48
- }
49
- },
50
- sort: [{ _score: { order: 'desc' } }, { title: { order: "asc" } }],
51
- size: 50
52
- });
53
- break;
54
- case 'unity-product*':
55
- body.push({
56
- query: { dis_max: { queries: [{ wildcard: { ean: { value: '*' + text + '*' } } }, { wildcard: { title: { value: '*' + text + '*' } } }] } },
57
- sort: { releaseDate: { order: 'desc' } },
58
- size: 50
59
- });
60
- break;
61
- case 'unity-purchase-order*':
62
- body.push({
63
- query: { dis_max: { queries: [{ wildcard: { poNumber: { value: '*' + text + '*' } } }, { wildcard: { ean: { value: '*' + text + '*' } } }, { wildcard: { basketNumber: { value: '*' + text + '*' } } }] } },
64
- size: 50
65
- });
66
- break;
67
- case 'unity-deal*':
68
- body.push({
69
- query: { dis_max: { queries: [{ wildcard: { dealNumber: { value: '*' + text + '*' } } }] } },
70
- sort: [{ _score: { order: 'desc' } }, { 'dealNumber.keyword': { order: 'asc' } }],
71
- size: 50
72
- });
73
- break;
74
- case 'unity-work-record*':
75
- body.push({
76
- query: { dis_max: { queries: [{ wildcard: { workRecordId: { value: '*' + text + '*' } } }] } },
77
- sort: [{ 'workRecordId.keyword': { order: 'asc' } }],
78
- size: 50
79
- });
80
- break;
81
- case 'unity-invoice*':
82
- body.push({
83
- query: { dis_max: { queries: [{ wildcard: { number: { value: '*' + text + '*' } } }] } },
84
- sort: [{ 'number.keyword': { order: 'asc' } }],
85
- size: 50
86
- });
87
- break;
88
- case 'unity-third-party*':
89
- body.push({
90
- query: {
91
- dis_max: {
92
- queries: [{ wildcard: { companyOrPersonName: { value: '*' + text + '*' } } }, { wildcard: { companyOrPersonName: { value: text + '*' } } }, { wildcard: { companyOrPersonName: { value: text } } }],
93
- tie_breaker: 0.5
94
- }
95
- },
96
- sort: [{ _score: { order: 'desc' } }, { companyOrPersonName: { order: 'asc' } }],
97
- size: 50
98
- });
99
- break;
100
- case 'unity-contract*':
101
- body.push({
102
- query: { bool: this.composeContractQuery(text, user.subsidiaries) },
103
- sort: [{ 'lisaId.keyword': { order: 'asc' } }],
104
- size: 50
105
- });
106
- break;
107
- }
108
- }
109
- return from(this.getElasticsearchClient().msearch({ body }));
110
- }
111
- getDocuments(searchResponse) {
112
- let results = [];
113
- if (searchResponse && searchResponse.responses) {
114
- for (const r of searchResponse.responses) {
115
- if (r.error || !r.hits) {
116
- continue;
117
- }
118
- const item = r.hits.hits && r.hits.hits.length > 0 ? r.hits.hits.map(v => this.mapDocument(v)) : [];
119
- results = results.concat(item);
120
- }
121
- }
122
- return results;
123
- }
124
- mapDocument(doc) {
125
- switch (doc._source.docType) {
126
- case 'INVOICE':
127
- return Object.assign(new InvoiceRapidSearchModel(), doc._source);
128
- case 'WORK_RECORD':
129
- return Object.assign(new WorkRecordRapidSearchModel(), doc._source);
130
- default:
131
- return doc._source;
132
- }
133
- }
134
- composeContractQuery(text, subsidiadies) {
135
- const societes = this.subsidiariesMappingService.getSocieteAppartenance(subsidiadies);
136
- const must = [
137
- { wildcard: { lisaId: { value: '*' + text + '*' } } }
138
- ];
139
- const should = [];
140
- should.push({ bool: { must_not: { exists: { field: 'societeAppartenance' } } } });
141
- if (societes && societes.length > 0) {
142
- should.push({ terms: { societeAppartenance: societes } });
143
- }
144
- const boolQuery = { must };
145
- boolQuery.should = should;
146
- boolQuery.minimum_should_match = 1;
147
- return boolQuery;
148
- }
149
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ElasticsearchService, deps: [{ token: WEB_CONFIG }, { token: i1.SubsidiariesService }], target: i0.ɵɵFactoryTarget.Injectable }); }
150
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ElasticsearchService }); }
151
- }
152
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ElasticsearchService, decorators: [{
153
- type: Injectable
154
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
155
- type: Inject,
156
- args: [WEB_CONFIG]
157
- }] }, { type: i1.SubsidiariesService }]; } });
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxhc3RpY3NlYXJjaC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV3LWZyb250LWNvbW1vbi1saWJyYXJ5L3NyYy9saWIvdXRpbC9zZXJ2aWNlcy9lbGFzdGljc2VhcmNoL2VsYXN0aWNzZWFyY2guc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUMsSUFBSSxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBQyxNQUFNLElBQUksUUFBUSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFJekQsT0FBTyxFQUFTLFVBQVUsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUloRCxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQUVsRyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxvREFBb0QsQ0FBQzs7O0FBTTNGLE1BQU0sT0FBTyxvQkFBb0I7SUFFL0IsWUFBd0MsTUFBYyxFQUNsQywwQkFBK0M7UUFEM0IsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNsQywrQkFBMEIsR0FBMUIsMEJBQTBCLENBQXFCO1FBSW5FLDBCQUFxQixHQUFHO1lBQ3RCLFlBQVksRUFBRSxDQUFDLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxvQkFBb0IsQ0FBQztZQUNyRSxZQUFZLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsb0JBQW9CLENBQUM7WUFDckUsMkJBQTJCLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsb0JBQW9CLENBQUM7WUFDcEYsZUFBZSxFQUFFLENBQUMsZ0JBQWdCLENBQUM7WUFDbkMsS0FBSyxFQUFFLENBQUMsdUJBQXVCLENBQUM7WUFDaEMsT0FBTyxFQUFFLENBQUMsaUJBQWlCLENBQUM7U0FDN0IsQ0FBQTtJQVZELENBQUM7SUFZTyxzQkFBc0I7UUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDaEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLFFBQVEsQ0FBQztnQkFDekIsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCO2FBQ3BDLENBQUMsQ0FBQztTQUNKO1FBQ0QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxJQUFZLEVBQUUsSUFBbUI7UUFDeEQsTUFBTSxVQUFVLEdBQWdCLElBQUksR0FBRyxFQUFVLENBQUM7UUFDbEQsVUFBVSxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO1FBQ3JDLFVBQVUsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtRQUVwQyxLQUFLLE1BQU0sVUFBVSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDekMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1RCxPQUFPLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzlDO1FBRUQsTUFBTSxJQUFJLEdBQVUsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssTUFBTSxLQUFLLElBQUksVUFBVSxFQUFFO1lBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDO1lBQ25CLFFBQVEsS0FBSyxFQUFFO2dCQUNiLEtBQUsscUJBQXFCO29CQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDO3dCQUNSLEtBQUssRUFBRTs0QkFDTCxPQUFPLEVBQUU7Z0NBQ1AsT0FBTyxFQUFFLENBQUMsRUFBQyxRQUFRLEVBQUUsRUFBQyxRQUFRLEVBQUUsRUFBQyxLQUFLLEVBQUUsR0FBRyxHQUFHLElBQUksR0FBRyxHQUFHLEVBQUMsRUFBQyxFQUFDLEVBQUUsRUFBQyxRQUFRLEVBQUUsRUFBQyxLQUFLLEVBQUUsRUFBQyxLQUFLLEVBQUUsR0FBRyxHQUFHLElBQUksR0FBRyxHQUFHLEVBQUMsRUFBQyxFQUFDLEVBQUUsRUFBQyxRQUFRLEVBQUUsRUFBQyxLQUFLLEVBQUUsRUFBQyxLQUFLLEVBQUUsSUFBSSxHQUFHLEdBQUcsRUFBQyxFQUFDLEVBQUMsRUFBRSxFQUFDLFFBQVEsRUFBRSxFQUFDLEtBQUssRUFBRSxFQUFDLEtBQUssRUFBRSxJQUFJLEVBQUMsRUFBQyxFQUFDLENBQUM7Z0NBQzFMLFdBQVcsRUFBRSxHQUFHOzZCQUNqQjt5QkFDRjt3QkFDRCxJQUFJLEVBQUUsQ0FBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEtBQUssRUFBRSxNQUFNLEVBQUMsRUFBQyxFQUFFLEVBQUMsS0FBSyxFQUFFLEVBQUMsS0FBSyxFQUFFLEtBQUssRUFBQyxFQUFDLENBQUM7d0JBQzFELElBQUksRUFBRSxFQUFFO3FCQUNULENBQUMsQ0FBQztvQkFDSCxNQUFNO2dCQUNSLEtBQUssZ0JBQWdCO29CQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDO3dCQUNSLEtBQUssRUFBRSxFQUFDLE9BQU8sRUFBRSxFQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUMsUUFBUSxFQUFFLEVBQUMsR0FBRyxFQUFFLEVBQUMsS0FBSyxFQUFFLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBRyxFQUFDLEVBQUMsRUFBQyxFQUFFLEVBQUMsUUFBUSxFQUFFLEVBQUMsS0FBSyxFQUFFLEVBQUMsS0FBSyxFQUFFLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBRyxFQUFDLEVBQUMsRUFBQyxDQUFDLEVBQUMsRUFBQzt3QkFDM0gsSUFBSSxFQUFFLEVBQUMsV0FBVyxFQUFFLEVBQUMsS0FBSyxFQUFFLE1BQU0sRUFBQyxFQUFDO3dCQUNwQyxJQUFJLEVBQUUsRUFBRTtxQkFDVCxDQUFDLENBQUM7b0JBQ0gsTUFBTTtnQkFDUixLQUFLLHVCQUF1QjtvQkFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQzt3QkFDUixLQUFLLEVBQUUsRUFBQyxPQUFPLEVBQUUsRUFBQyxPQUFPLEVBQUUsQ0FBQyxFQUFDLFFBQVEsRUFBRSxFQUFDLFFBQVEsRUFBRSxFQUFDLEtBQUssRUFBRSxHQUFHLEdBQUcsSUFBSSxHQUFHLEdBQUcsRUFBQyxFQUFDLEVBQUMsRUFBRSxFQUFDLFFBQVEsRUFBRSxFQUFDLEdBQUcsRUFBRSxFQUFDLEtBQUssRUFBRSxHQUFHLEdBQUcsSUFBSSxHQUFHLEdBQUcsRUFBQyxFQUFDLEVBQUMsRUFBRSxFQUFDLFFBQVEsRUFBRSxFQUFDLFlBQVksRUFBRSxFQUFDLEtBQUssRUFBRSxHQUFHLEdBQUcsSUFBSSxHQUFHLEdBQUcsRUFBQyxFQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUM7d0JBQ3JMLElBQUksRUFBRSxFQUFFO3FCQUNULENBQUMsQ0FBQztvQkFDSCxNQUFNO2dCQUNSLEtBQUssYUFBYTtvQkFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQzt3QkFDUixLQUFLLEVBQUUsRUFBQyxPQUFPLEVBQUUsRUFBQyxPQUFPLEVBQUUsQ0FBQyxFQUFDLFFBQVEsRUFBRSxFQUFDLFVBQVUsRUFBRSxFQUFDLEtBQUssRUFBRSxHQUFHLEdBQUcsSUFBSSxHQUFHLEdBQUcsRUFBQyxFQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUM7d0JBQ2xGLElBQUksRUFBRSxDQUFDLEVBQUMsTUFBTSxFQUFFLEVBQUMsS0FBSyxFQUFFLE1BQU0sRUFBQyxFQUFDLEVBQUUsRUFBQyxvQkFBb0IsRUFBRSxFQUFDLEtBQUssRUFBRSxLQUFLLEVBQUMsRUFBQyxDQUFDO3dCQUN6RSxJQUFJLEVBQUUsRUFBRTtxQkFDVCxDQUFDLENBQUM7b0JBQ0gsTUFBTTtnQkFDUixLQUFLLG9CQUFvQjtvQkFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQzt3QkFDUixLQUFLLEVBQUUsRUFBQyxPQUFPLEVBQUUsRUFBQyxPQUFPLEVBQUUsQ0FBQyxFQUFDLFFBQVEsRUFBRSxFQUFDLFlBQVksRUFBRSxFQUFDLEtBQUssRUFBRSxHQUFHLEdBQUcsSUFBSSxHQUFHLEdBQUcsRUFBQyxFQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUM7d0JBQ3BGLElBQUksRUFBRSxDQUFDLEVBQUMsc0JBQXNCLEVBQUUsRUFBQyxLQUFLLEVBQUUsS0FBSyxFQUFDLEVBQUMsQ0FBQzt3QkFDaEQsSUFBSSxFQUFFLEVBQUU7cUJBQ1QsQ0FBQyxDQUFDO29CQUNILE1BQU07Z0JBQ1IsS0FBSyxnQkFBZ0I7b0JBQ25CLElBQUksQ0FBQyxJQUFJLENBQUM7d0JBQ1IsS0FBSyxFQUFFLEVBQUMsT0FBTyxFQUFFLEVBQUMsT0FBTyxFQUFFLENBQUMsRUFBQyxRQUFRLEVBQUUsRUFBQyxNQUFNLEVBQUUsRUFBQyxLQUFLLEVBQUUsR0FBRyxHQUFHLElBQUksR0FBRyxHQUFHLEVBQUMsRUFBQyxFQUFDLENBQUMsRUFBQyxFQUFDO3dCQUM5RSxJQUFJLEVBQUUsQ0FBQyxFQUFDLGdCQUFnQixFQUFFLEVBQUMsS0FBSyxFQUFFLEtBQUssRUFBQyxFQUFDLENBQUM7d0JBQzFDLElBQUksRUFBRSxFQUFFO3FCQUNULENBQUMsQ0FBQztvQkFDSCxNQUFNO2dCQUNSLEtBQUssb0JBQW9CO29CQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDO3dCQUNSLEtBQUssRUFBRTs0QkFDTCxPQUFPLEVBQUU7Z0NBQ1AsT0FBTyxFQUFFLENBQUMsRUFBQyxRQUFRLEVBQUUsRUFBQyxtQkFBbUIsRUFBRSxFQUFDLEtBQUssRUFBRSxHQUFHLEdBQUcsSUFBSSxHQUFHLEdBQUcsRUFBQyxFQUFDLEVBQUMsRUFBRSxFQUFDLFFBQVEsRUFBRSxFQUFDLG1CQUFtQixFQUFFLEVBQUMsS0FBSyxFQUFFLElBQUksR0FBRyxHQUFHLEVBQUMsRUFBQyxFQUFDLEVBQUUsRUFBQyxRQUFRLEVBQUUsRUFBQyxtQkFBbUIsRUFBRSxFQUFDLEtBQUssRUFBRSxJQUFJLEVBQUMsRUFBQyxFQUFDLENBQUM7Z0NBQ2pMLFdBQVcsRUFBRSxHQUFHOzZCQUNqQjt5QkFDRjt3QkFDRCxJQUFJLEVBQUUsQ0FBQyxFQUFDLE1BQU0sRUFBRSxFQUFDLEtBQUssRUFBRSxNQUFNLEVBQUMsRUFBQyxFQUFFLEVBQUMsbUJBQW1CLEVBQUUsRUFBQyxLQUFLLEVBQUUsS0FBSyxFQUFDLEVBQUMsQ0FBQzt3QkFDeEUsSUFBSSxFQUFFLEVBQUU7cUJBQ1QsQ0FBQyxDQUFDO29CQUNILE1BQU07Z0JBQ1IsS0FBSyxpQkFBaUI7b0JBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUM7d0JBQ1IsS0FBSyxFQUFFLEVBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFDO3dCQUNqRSxJQUFJLEVBQUUsQ0FBQyxFQUFDLGdCQUFnQixFQUFFLEVBQUMsS0FBSyxFQUFFLEtBQUssRUFBQyxFQUFDLENBQUM7d0JBQzFDLElBQUksRUFBRSxFQUFFO3FCQUNULENBQUMsQ0FBQztvQkFDSCxNQUFNO2FBQ1Q7U0FDRjtRQUNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFDLElBQUksRUFBQyxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRU0sWUFBWSxDQUFDLGNBQW1CO1FBRXJDLElBQUksT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNqQixJQUFJLGNBQWMsSUFBSSxjQUFjLENBQUMsU0FBUyxFQUFFO1lBQzlDLEtBQUssTUFBTSxDQUFDLElBQUksY0FBYyxDQUFDLFNBQVMsRUFBRTtnQkFDeEMsSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRTtvQkFDdEIsU0FBUztpQkFDVjtnQkFFRCxNQUFNLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDcEcsT0FBTyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDaEM7U0FDRjtRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxXQUFXLENBQUMsR0FBUTtRQUNsQixRQUFRLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFO1lBQzNCLEtBQUssU0FBUztnQkFDWixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSx1QkFBdUIsRUFBRSxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNuRSxLQUFLLGFBQWE7Z0JBQ2hCLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLDBCQUEwQixFQUFFLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3RFO2dCQUNFLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQztTQUN0QjtJQUNILENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxJQUFZLEVBQUUsWUFBWTtRQUNyRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUMsc0JBQXNCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdEYsTUFBTSxJQUFJLEdBQVU7WUFDbEIsRUFBQyxRQUFRLEVBQUUsRUFBQyxNQUFNLEVBQUUsRUFBQyxLQUFLLEVBQUUsR0FBRyxHQUFHLElBQUksR0FBRyxHQUFHLEVBQUMsRUFBQyxFQUFDO1NBQ2hELENBQUM7UUFDRixNQUFNLE1BQU0sR0FBVSxFQUFFLENBQUM7UUFDekIsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksRUFBRSxFQUFDLFFBQVEsRUFBRSxFQUFDLE1BQU0sRUFBRSxFQUFDLEtBQUssRUFBRSxxQkFBcUIsRUFBQyxFQUFDLEVBQUMsRUFBQyxDQUFDLENBQUM7UUFDMUUsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDbkMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFDLEtBQUssRUFBRSxFQUFDLG1CQUFtQixFQUFFLFFBQVEsRUFBQyxFQUFDLENBQUMsQ0FBQztTQUN2RDtRQUNELE1BQU0sU0FBUyxHQUFRLEVBQUMsSUFBSSxFQUFDLENBQUM7UUFDOUIsU0FBUyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDMUIsU0FBUyxDQUFDLG9CQUFvQixHQUFHLENBQUMsQ0FBQztRQUNuQyxPQUFPLFNBQVMsQ0FBQTtJQUNsQixDQUFDOytHQXRKVSxvQkFBb0Isa0JBRVgsVUFBVTttSEFGbkIsb0JBQW9COzs0RkFBcEIsb0JBQW9CO2tCQURoQyxVQUFVOzswQkFHSSxNQUFNOzJCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7ZnJvbSwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7Q2xpZW50IGFzIENsaWVudEpzfSBmcm9tICdlbGFzdGljc2VhcmNoLWJyb3dzZXInO1xyXG5pbXBvcnQge0NsaWVudCwgTVNlYXJjaFJlc3BvbnNlfSBmcm9tICdlbGFzdGljc2VhcmNoJztcclxuaW1wb3J0IHtQdXJjaGFzZU9yZGVyUmFwaWRTZWFyY2hNb2RlbH0gZnJvbSBcIi4uLy4uL21vZGVscy9leHBlbmRpdHVyZS1jb21taXRtZW50L3B1cmNoYXNlLW9yZGVyLXJhcGlkLXNlYXJjaC5tb2RlbFwiO1xyXG5pbXBvcnQge1Byb2R1Y3RSYXBpZFNlYXJjaE1vZGVsfSBmcm9tIFwiLi4vLi4vbW9kZWxzL3ZpZGVvL3Byb2R1Y3QtcmFwaWQtc2VhcmNoLm1vZGVsXCI7XHJcbmltcG9ydCB7Q29uZmlnLCBXRUJfQ09ORklHfSBmcm9tICcuLi8uLi9jb25maWcnO1xyXG5pbXBvcnQge1dvcmtWZXJzaW9uUmFwaWRTZWFyY2hNb2RlbH0gZnJvbSBcIi4uLy4uL21vZGVscy9yZWZlcmVudGlhbC93b3JrLXZlcnNpb24tcmFwaWQtc2VhcmNoLm1vZGVsXCI7XHJcbmltcG9ydCB7RGVhbFJhcGlkU2VhcmNoTW9kZWx9IGZyb20gJy4uLy4uL21vZGVscy9jb21tZXJjaWFsL2RlYWwtcmFwaWQtc2VhcmNoLW1vZGVsJztcclxuaW1wb3J0IHtUaGlyZFBhcnR5UmFwaWRTZWFyY2hNb2RlbH0gZnJvbSBcIi4uLy4uL21vZGVscy9yZWZlcmVudGlhbC90aGlyZC1wYXJ0eS1yYXBpZC1zZWFyY2gubW9kZWxcIjtcclxuaW1wb3J0IHtXb3JrUmVjb3JkUmFwaWRTZWFyY2hNb2RlbH0gZnJvbSBcIi4uLy4uL21vZGVscy9jb21tZXJjaWFsL3dvcmstcmVjb3JkLXJhcGlkLXNlYXJjaC1tb2RlbFwiO1xyXG5pbXBvcnQge0NvbnRyYWN0UmFwaWRTZWFyY2hNb2RlbH0gZnJvbSBcIi4uLy4uL21vZGVscy9sZWdhbC9jb250cmFjdC1yYXBpZC1zZWFyY2gtbW9kZWxcIjtcclxuaW1wb3J0IHtJbnZvaWNlUmFwaWRTZWFyY2hNb2RlbH0gZnJvbSBcIi4uLy4uL21vZGVscy9jb21tZXJjaWFsL2ludm9pY2UtcmFwaWQtc2VhcmNoLW1vZGVsXCI7XHJcbmltcG9ydCB7QXV0aFVzZXJNb2RlbH0gZnJvbSBcIi4uLy4uL21vZGVsc1wiO1xyXG5pbXBvcnQge1N1YnNpZGlhcmllc1NlcnZpY2V9IGZyb20gXCIuL3N1YnNpZGlhcmllcy5zZXJ2aWNlXCI7XHJcblxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRWxhc3RpY3NlYXJjaFNlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3RvcihASW5qZWN0KFdFQl9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBDb25maWcsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBzdWJzaWRpYXJpZXNNYXBwaW5nU2VydmljZTogU3Vic2lkaWFyaWVzU2VydmljZSkge1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjbGllbnQ6IENsaWVudDtcclxuICBQUk9GSUxFX1NFQVJDSF9DT05GSUcgPSB7XHJcbiAgICAnQ09NTUVSQ0lBTCc6IFsndW5pdHktaW52b2ljZSonLCAndW5pdHktZGVhbConLCAndW5pdHktd29yay1yZWNvcmQqJ10sXHJcbiAgICAnQUNDT1VOVEFOVCc6IFsndW5pdHktaW52b2ljZSonLCAndW5pdHktZGVhbConLCAndW5pdHktd29yay1yZWNvcmQqJ10sXHJcbiAgICAnQURNSU5JU1RSQVRJVkVfQ09OVFJPTExFUic6IFsndW5pdHktaW52b2ljZSonLCAndW5pdHktZGVhbConLCAndW5pdHktd29yay1yZWNvcmQqJ10sXHJcbiAgICAnVklERU9fQ09OU1VMVCc6IFsndW5pdHktcHJvZHVjdConXSxcclxuICAgICdCREMnOiBbJ3VuaXR5LXB1cmNoYXNlLW9yZGVyKiddLFxyXG4gICAgJ0xFR0FMJzogWyd1bml0eS1jb250cmFjdConXVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRFbGFzdGljc2VhcmNoQ2xpZW50KCk6IENsaWVudCB7XHJcbiAgICBpZiAoIXRoaXMuY2xpZW50KSB7XHJcbiAgICAgIHRoaXMuY2xpZW50ID0gbmV3IENsaWVudEpzKHtcclxuICAgICAgICBob3N0OiB0aGlzLmNvbmZpZy5lbGFzdGljc2VhcmNoX3VybFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmNsaWVudDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTZWFyY2hSZXNwb25zZSh0ZXh0OiBzdHJpbmcsIHVzZXI6IEF1dGhVc2VyTW9kZWwpOiBPYnNlcnZhYmxlPE1TZWFyY2hSZXNwb25zZTxhbnk+PiB7XHJcbiAgICBjb25zdCBhbGxJbmRleGVzOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQ8c3RyaW5nPigpO1xyXG4gICAgYWxsSW5kZXhlcy5hZGQoJ3VuaXR5LXdvcmstdmVyc2lvbionKVxyXG4gICAgYWxsSW5kZXhlcy5hZGQoJ3VuaXR5LXRoaXJkLXBhcnR5KicpXHJcblxyXG4gICAgZm9yIChjb25zdCBwZXJtaXNzaW9uIG9mIHVzZXIucGVybWlzc2lvbnMpIHtcclxuICAgICAgY29uc3QgaW5kZXhlcyA9IHRoaXMuUFJPRklMRV9TRUFSQ0hfQ09ORklHW3Blcm1pc3Npb24uY29kZV07XHJcbiAgICAgIGluZGV4ZXM/LmZvckVhY2goaWR4ID0+IGFsbEluZGV4ZXMuYWRkKGlkeCkpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGJvZHk6IGFueVtdID0gW107XHJcbiAgICBmb3IgKGNvbnN0IGluZGV4IG9mIGFsbEluZGV4ZXMpIHtcclxuICAgICAgYm9keS5wdXNoKHtpbmRleH0pO1xyXG4gICAgICBzd2l0Y2ggKGluZGV4KSB7XHJcbiAgICAgICAgY2FzZSAndW5pdHktd29yay12ZXJzaW9uKicgOlxyXG4gICAgICAgICAgYm9keS5wdXNoKHtcclxuICAgICAgICAgICAgcXVlcnk6IHtcclxuICAgICAgICAgICAgICBkaXNfbWF4OiB7XHJcbiAgICAgICAgICAgICAgICBxdWVyaWVzOiBbe3dpbGRjYXJkOiB7bWlsb0NvZGU6IHt2YWx1ZTogJyonICsgdGV4dCArICcqJ319fSwge3dpbGRjYXJkOiB7dGl0bGU6IHt2YWx1ZTogJyonICsgdGV4dCArICcqJ319fSwge3dpbGRjYXJkOiB7dGl0bGU6IHt2YWx1ZTogdGV4dCArICcqJ319fSwge3dpbGRjYXJkOiB7dGl0bGU6IHt2YWx1ZTogdGV4dH19fV0sXHJcbiAgICAgICAgICAgICAgICB0aWVfYnJlYWtlcjogMC41XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBzb3J0OiBbe19zY29yZToge29yZGVyOiAnZGVzYyd9fSwge3RpdGxlOiB7b3JkZXI6IFwiYXNjXCJ9fV0sXHJcbiAgICAgICAgICAgIHNpemU6IDUwXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3VuaXR5LXByb2R1Y3QqJyA6XHJcbiAgICAgICAgICBib2R5LnB1c2goe1xyXG4gICAgICAgICAgICBxdWVyeToge2Rpc19tYXg6IHtxdWVyaWVzOiBbe3dpbGRjYXJkOiB7ZWFuOiB7dmFsdWU6ICcqJyArIHRleHQgKyAnKid9fX0sIHt3aWxkY2FyZDoge3RpdGxlOiB7dmFsdWU6ICcqJyArIHRleHQgKyAnKid9fX1dfX0sXHJcbiAgICAgICAgICAgIHNvcnQ6IHtyZWxlYXNlRGF0ZToge29yZGVyOiAnZGVzYyd9fSxcclxuICAgICAgICAgICAgc2l6ZTogNTBcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAndW5pdHktcHVyY2hhc2Utb3JkZXIqJyA6XHJcbiAgICAgICAgICBib2R5LnB1c2goe1xyXG4gICAgICAgICAgICBxdWVyeToge2Rpc19tYXg6IHtxdWVyaWVzOiBbe3dpbGRjYXJkOiB7cG9OdW1iZXI6IHt2YWx1ZTogJyonICsgdGV4dCArICcqJ319fSwge3dpbGRjYXJkOiB7ZWFuOiB7dmFsdWU6ICcqJyArIHRleHQgKyAnKid9fX0sIHt3aWxkY2FyZDoge2Jhc2tldE51bWJlcjoge3ZhbHVlOiAnKicgKyB0ZXh0ICsgJyonfX19XX19LFxyXG4gICAgICAgICAgICBzaXplOiA1MFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICd1bml0eS1kZWFsKicgOlxyXG4gICAgICAgICAgYm9keS5wdXNoKHtcclxuICAgICAgICAgICAgcXVlcnk6IHtkaXNfbWF4OiB7cXVlcmllczogW3t3aWxkY2FyZDoge2RlYWxOdW1iZXI6IHt2YWx1ZTogJyonICsgdGV4dCArICcqJ319fV19fSxcclxuICAgICAgICAgICAgc29ydDogW3tfc2NvcmU6IHtvcmRlcjogJ2Rlc2MnfX0sIHsnZGVhbE51bWJlci5rZXl3b3JkJzoge29yZGVyOiAnYXNjJ319XSxcclxuICAgICAgICAgICAgc2l6ZTogNTBcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAndW5pdHktd29yay1yZWNvcmQqJyA6XHJcbiAgICAgICAgICBib2R5LnB1c2goe1xyXG4gICAgICAgICAgICBxdWVyeToge2Rpc19tYXg6IHtxdWVyaWVzOiBbe3dpbGRjYXJkOiB7d29ya1JlY29yZElkOiB7dmFsdWU6ICcqJyArIHRleHQgKyAnKid9fX1dfX0sXHJcbiAgICAgICAgICAgIHNvcnQ6IFt7J3dvcmtSZWNvcmRJZC5rZXl3b3JkJzoge29yZGVyOiAnYXNjJ319XSxcclxuICAgICAgICAgICAgc2l6ZTogNTBcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAndW5pdHktaW52b2ljZSonIDpcclxuICAgICAgICAgIGJvZHkucHVzaCh7XHJcbiAgICAgICAgICAgIHF1ZXJ5OiB7ZGlzX21heDoge3F1ZXJpZXM6IFt7d2lsZGNhcmQ6IHtudW1iZXI6IHt2YWx1ZTogJyonICsgdGV4dCArICcqJ319fV19fSxcclxuICAgICAgICAgICAgc29ydDogW3snbnVtYmVyLmtleXdvcmQnOiB7b3JkZXI6ICdhc2MnfX1dLFxyXG4gICAgICAgICAgICBzaXplOiA1MFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICd1bml0eS10aGlyZC1wYXJ0eSonIDpcclxuICAgICAgICAgIGJvZHkucHVzaCh7XHJcbiAgICAgICAgICAgIHF1ZXJ5OiB7XHJcbiAgICAgICAgICAgICAgZGlzX21heDoge1xyXG4gICAgICAgICAgICAgICAgcXVlcmllczogW3t3aWxkY2FyZDoge2NvbXBhbnlPclBlcnNvbk5hbWU6IHt2YWx1ZTogJyonICsgdGV4dCArICcqJ319fSwge3dpbGRjYXJkOiB7Y29tcGFueU9yUGVyc29uTmFtZToge3ZhbHVlOiB0ZXh0ICsgJyonfX19LCB7d2lsZGNhcmQ6IHtjb21wYW55T3JQZXJzb25OYW1lOiB7dmFsdWU6IHRleHR9fX1dLFxyXG4gICAgICAgICAgICAgICAgdGllX2JyZWFrZXI6IDAuNVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgc29ydDogW3tfc2NvcmU6IHtvcmRlcjogJ2Rlc2MnfX0sIHtjb21wYW55T3JQZXJzb25OYW1lOiB7b3JkZXI6ICdhc2MnfX1dLFxyXG4gICAgICAgICAgICBzaXplOiA1MFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICd1bml0eS1jb250cmFjdConIDpcclxuICAgICAgICAgIGJvZHkucHVzaCh7XHJcbiAgICAgICAgICAgIHF1ZXJ5OiB7Ym9vbDogdGhpcy5jb21wb3NlQ29udHJhY3RRdWVyeSh0ZXh0LCB1c2VyLnN1YnNpZGlhcmllcyl9LFxyXG4gICAgICAgICAgICBzb3J0OiBbeydsaXNhSWQua2V5d29yZCc6IHtvcmRlcjogJ2FzYyd9fV0sXHJcbiAgICAgICAgICAgIHNpemU6IDUwXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZnJvbSh0aGlzLmdldEVsYXN0aWNzZWFyY2hDbGllbnQoKS5tc2VhcmNoKHtib2R5fSkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldERvY3VtZW50cyhzZWFyY2hSZXNwb25zZTogYW55KTogKFB1cmNoYXNlT3JkZXJSYXBpZFNlYXJjaE1vZGVsIHwgUHJvZHVjdFJhcGlkU2VhcmNoTW9kZWwgfFxyXG4gICAgV29ya1ZlcnNpb25SYXBpZFNlYXJjaE1vZGVsIHwgRGVhbFJhcGlkU2VhcmNoTW9kZWwgfCBXb3JrUmVjb3JkUmFwaWRTZWFyY2hNb2RlbCB8IFRoaXJkUGFydHlSYXBpZFNlYXJjaE1vZGVsIHwgQ29udHJhY3RSYXBpZFNlYXJjaE1vZGVsKVtdIHtcclxuICAgIGxldCByZXN1bHRzID0gW107XHJcbiAgICBpZiAoc2VhcmNoUmVzcG9uc2UgJiYgc2VhcmNoUmVzcG9uc2UucmVzcG9uc2VzKSB7XHJcbiAgICAgIGZvciAoY29uc3QgciBvZiBzZWFyY2hSZXNwb25zZS5yZXNwb25zZXMpIHtcclxuICAgICAgICBpZiAoci5lcnJvciB8fCAhci5oaXRzKSB7XHJcbiAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGl0ZW0gPSByLmhpdHMuaGl0cyAmJiByLmhpdHMuaGl0cy5sZW5ndGggPiAwID8gci5oaXRzLmhpdHMubWFwKHYgPT4gdGhpcy5tYXBEb2N1bWVudCh2KSkgOiBbXTtcclxuICAgICAgICByZXN1bHRzID0gcmVzdWx0cy5jb25jYXQoaXRlbSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHRzO1xyXG4gIH1cclxuXHJcbiAgbWFwRG9jdW1lbnQoZG9jOiBhbnkpOiBhbnkge1xyXG4gICAgc3dpdGNoIChkb2MuX3NvdXJjZS5kb2NUeXBlKSB7XHJcbiAgICAgIGNhc2UgJ0lOVk9JQ0UnOlxyXG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKG5ldyBJbnZvaWNlUmFwaWRTZWFyY2hNb2RlbCgpLCBkb2MuX3NvdXJjZSk7XHJcbiAgICAgIGNhc2UgJ1dPUktfUkVDT1JEJzpcclxuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgV29ya1JlY29yZFJhcGlkU2VhcmNoTW9kZWwoKSwgZG9jLl9zb3VyY2UpO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBkb2MuX3NvdXJjZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29tcG9zZUNvbnRyYWN0UXVlcnkodGV4dDogc3RyaW5nLCBzdWJzaWRpYWRpZXMpIHtcclxuICAgIGNvbnN0IHNvY2lldGVzID0gdGhpcy5zdWJzaWRpYXJpZXNNYXBwaW5nU2VydmljZS5nZXRTb2NpZXRlQXBwYXJ0ZW5hbmNlKHN1YnNpZGlhZGllcyk7XHJcbiAgICBjb25zdCBtdXN0OiBhbnlbXSA9IFtcclxuICAgICAge3dpbGRjYXJkOiB7bGlzYUlkOiB7dmFsdWU6ICcqJyArIHRleHQgKyAnKid9fX1cclxuICAgIF07XHJcbiAgICBjb25zdCBzaG91bGQ6IGFueVtdID0gW107XHJcbiAgICBzaG91bGQucHVzaCh7Ym9vbDoge211c3Rfbm90OiB7ZXhpc3RzOiB7ZmllbGQ6ICdzb2NpZXRlQXBwYXJ0ZW5hbmNlJ319fX0pO1xyXG4gICAgaWYgKHNvY2lldGVzICYmIHNvY2lldGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgc2hvdWxkLnB1c2goe3Rlcm1zOiB7c29jaWV0ZUFwcGFydGVuYW5jZTogc29jaWV0ZXN9fSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBib29sUXVlcnk6IGFueSA9IHttdXN0fTtcclxuICAgIGJvb2xRdWVyeS5zaG91bGQgPSBzaG91bGQ7XHJcbiAgICBib29sUXVlcnkubWluaW11bV9zaG91bGRfbWF0Y2ggPSAxO1xyXG4gICAgcmV0dXJuIGJvb2xRdWVyeVxyXG4gIH1cclxuXHJcbn1cclxuIl19
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { from } from 'rxjs';
3
+ import { Client as ClientJs } from 'elasticsearch-browser';
4
+ import { WEB_CONFIG } from '../../config';
5
+ import { WorkRecordRapidSearchModel } from "../../models/commercial/work-record-rapid-search-model";
6
+ import { InvoiceRapidSearchModel } from "../../models/commercial/invoice-rapid-search-model";
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "./subsidiaries.service";
9
+ export class ElasticsearchService {
10
+ constructor(config, subsidiariesMappingService) {
11
+ this.config = config;
12
+ this.subsidiariesMappingService = subsidiariesMappingService;
13
+ this.PROFILE_SEARCH_CONFIG = {
14
+ 'COMMERCIAL': ['unity-invoice*', 'unity-deal*', 'unity-work-record*'],
15
+ 'ACCOUNTANT': ['unity-invoice*', 'unity-deal*', 'unity-work-record*'],
16
+ 'ADMINISTRATIVE_CONTROLLER': ['unity-invoice*', 'unity-deal*', 'unity-work-record*'],
17
+ 'VIDEO_CONSULT': ['unity-product*'],
18
+ 'BDC': ['unity-purchase-order*'],
19
+ 'LEGAL': ['unity-contract*'],
20
+ 'ROYALTY': ['unity-royalty-contract'],
21
+ };
22
+ }
23
+ getElasticsearchClient() {
24
+ if (!this.client) {
25
+ this.client = new ClientJs({
26
+ host: this.config.elasticsearch_url
27
+ });
28
+ }
29
+ return this.client;
30
+ }
31
+ getSearchResponse(text, user) {
32
+ const allIndexes = new Set();
33
+ allIndexes.add('unity-work-version*');
34
+ allIndexes.add('unity-third-party*');
35
+ for (const permission of user.permissions) {
36
+ const indexes = this.PROFILE_SEARCH_CONFIG[permission.code];
37
+ indexes?.forEach(idx => allIndexes.add(idx));
38
+ }
39
+ const body = [];
40
+ for (const index of allIndexes) {
41
+ body.push({ index });
42
+ switch (index) {
43
+ case 'unity-work-version*':
44
+ body.push({
45
+ query: {
46
+ dis_max: {
47
+ queries: [{ wildcard: { miloCode: { value: '*' + text + '*' } } }, { wildcard: { title: { value: '*' + text + '*' } } }, { wildcard: { title: { value: text + '*' } } }, { wildcard: { title: { value: text } } }],
48
+ tie_breaker: 0.5
49
+ }
50
+ },
51
+ sort: [{ _score: { order: 'desc' } }, { title: { order: "asc" } }],
52
+ size: 50
53
+ });
54
+ break;
55
+ case 'unity-product*':
56
+ body.push({
57
+ query: { dis_max: { queries: [{ wildcard: { ean: { value: '*' + text + '*' } } }, { wildcard: { title: { value: '*' + text + '*' } } }] } },
58
+ sort: { releaseDate: { order: 'desc' } },
59
+ size: 50
60
+ });
61
+ break;
62
+ case 'unity-purchase-order*':
63
+ body.push({
64
+ query: { dis_max: { queries: [{ wildcard: { poNumber: { value: '*' + text + '*' } } }, { wildcard: { ean: { value: '*' + text + '*' } } }, { wildcard: { basketNumber: { value: '*' + text + '*' } } }] } },
65
+ size: 50
66
+ });
67
+ break;
68
+ case 'unity-deal*':
69
+ body.push({
70
+ query: { dis_max: { queries: [{ wildcard: { dealNumber: { value: '*' + text + '*' } } }] } },
71
+ sort: [{ _score: { order: 'desc' } }, { 'dealNumber.keyword': { order: 'asc' } }],
72
+ size: 50
73
+ });
74
+ break;
75
+ case 'unity-work-record*':
76
+ body.push({
77
+ query: { dis_max: { queries: [{ wildcard: { workRecordId: { value: '*' + text + '*' } } }] } },
78
+ sort: [{ 'workRecordId.keyword': { order: 'asc' } }],
79
+ size: 50
80
+ });
81
+ break;
82
+ case 'unity-invoice*':
83
+ body.push({
84
+ query: { dis_max: { queries: [{ wildcard: { number: { value: '*' + text + '*' } } }] } },
85
+ sort: [{ 'number.keyword': { order: 'asc' } }],
86
+ size: 50
87
+ });
88
+ break;
89
+ case 'unity-third-party*':
90
+ body.push({
91
+ query: {
92
+ dis_max: {
93
+ queries: [{ wildcard: { companyOrPersonName: { value: '*' + text + '*' } } }, { wildcard: { companyOrPersonName: { value: text + '*' } } }, { wildcard: { companyOrPersonName: { value: text } } }],
94
+ tie_breaker: 0.5
95
+ }
96
+ },
97
+ sort: [{ _score: { order: 'desc' } }, { companyOrPersonName: { order: 'asc' } }],
98
+ size: 50
99
+ });
100
+ break;
101
+ case 'unity-contract*':
102
+ body.push({
103
+ query: { bool: this.composeContractQuery(text, user.subsidiaries) },
104
+ sort: [{ 'lisaId.keyword': { order: 'asc' } }],
105
+ size: 50
106
+ });
107
+ break;
108
+ case 'unity-royalty-contract':
109
+ body.push({
110
+ query: { dis_max: { queries: [{ wildcard: { contractNumber: { value: '*' + text + '*' } } }] } },
111
+ sort: [{ 'contractNumber.keyword': { order: 'asc' } }],
112
+ size: 50
113
+ });
114
+ break;
115
+ }
116
+ }
117
+ return from(this.getElasticsearchClient().msearch({ body }));
118
+ }
119
+ getDocuments(searchResponse) {
120
+ let results = [];
121
+ if (searchResponse && searchResponse.responses) {
122
+ for (const r of searchResponse.responses) {
123
+ if (r.error || !r.hits) {
124
+ continue;
125
+ }
126
+ const item = r.hits.hits && r.hits.hits.length > 0 ? r.hits.hits.map(v => this.mapDocument(v)) : [];
127
+ results = results.concat(item);
128
+ }
129
+ }
130
+ return results;
131
+ }
132
+ mapDocument(doc) {
133
+ switch (doc._source.docType) {
134
+ case 'INVOICE':
135
+ return Object.assign(new InvoiceRapidSearchModel(), doc._source);
136
+ case 'WORK_RECORD':
137
+ return Object.assign(new WorkRecordRapidSearchModel(), doc._source);
138
+ default:
139
+ return doc._source;
140
+ }
141
+ }
142
+ composeContractQuery(text, subsidiadies) {
143
+ const societes = this.subsidiariesMappingService.getSocieteAppartenance(subsidiadies);
144
+ const must = [
145
+ { wildcard: { lisaId: { value: '*' + text + '*' } } }
146
+ ];
147
+ const should = [];
148
+ should.push({ bool: { must_not: { exists: { field: 'societeAppartenance' } } } });
149
+ if (societes && societes.length > 0) {
150
+ should.push({ terms: { societeAppartenance: societes } });
151
+ }
152
+ const boolQuery = { must };
153
+ boolQuery.should = should;
154
+ boolQuery.minimum_should_match = 1;
155
+ return boolQuery;
156
+ }
157
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ElasticsearchService, deps: [{ token: WEB_CONFIG }, { token: i1.SubsidiariesService }], target: i0.ɵɵFactoryTarget.Injectable }); }
158
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ElasticsearchService }); }
159
+ }
160
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ElasticsearchService, decorators: [{
161
+ type: Injectable
162
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
163
+ type: Inject,
164
+ args: [WEB_CONFIG]
165
+ }] }, { type: i1.SubsidiariesService }]; } });
166
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxhc3RpY3NlYXJjaC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV3LWZyb250LWNvbW1vbi1saWJyYXJ5L3NyYy9saWIvdXRpbC9zZXJ2aWNlcy9lbGFzdGljc2VhcmNoL2VsYXN0aWNzZWFyY2guc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUMsSUFBSSxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBQyxNQUFNLElBQUksUUFBUSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFJekQsT0FBTyxFQUFTLFVBQVUsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUloRCxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQUVsRyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxvREFBb0QsQ0FBQzs7O0FBTTNGLE1BQU0sT0FBTyxvQkFBb0I7SUFFL0IsWUFBd0MsTUFBYyxFQUNsQywwQkFBK0M7UUFEM0IsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNsQywrQkFBMEIsR0FBMUIsMEJBQTBCLENBQXFCO1FBSW5FLDBCQUFxQixHQUFHO1lBQ3RCLFlBQVksRUFBRSxDQUFDLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxvQkFBb0IsQ0FBQztZQUNyRSxZQUFZLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsb0JBQW9CLENBQUM7WUFDckUsMkJBQTJCLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsb0JBQW9CLENBQUM7WUFDcEYsZUFBZSxFQUFFLENBQUMsZ0JBQWdCLENBQUM7WUFDbkMsS0FBSyxFQUFFLENBQUMsdUJBQXVCLENBQUM7WUFDaEMsT0FBTyxFQUFFLENBQUMsaUJBQWlCLENBQUM7WUFDNUIsU0FBUyxF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O1lBQ2xCLEVBQUMsUUFBUSxFQUFFLEVBQUMsTUFBTSxFQUFFLEVBQUMsS0FBSyxFQUFFLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBRyxFQUFDLEVBQUMsRUFBQztTQUNoRCxDQUFDO1FBQ0YsTUFBTSxNQUFNLEdBQVUsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBQyxJQUFJLEVBQUUsRUFBQyxRQUFRLEVBQUUsRUFBQyxNQUFNLEVBQUUsRUFBQyxLQUFLLEVBQUUscUJBQXFCLEVBQUMsRUFBQyxFQUFDLEVBQUMsQ0FBQyxDQUFDO1FBQzFFLElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ25DLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBQyxLQUFLLEVBQUUsRUFBQyxtQkFBbUIsRUFBRSxRQUFRLEVBQUMsRUFBQyxDQUFDLENBQUM7U0FDdkQ7UUFDRCxNQUFNLFNBQVMsR0FBUSxFQUFDLElBQUksRUFBQyxDQUFDO1FBQzlCLFNBQVMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxvQkFBb0IsR0FBRyxDQUFDLENBQUM7UUFDbkMsT0FBTyxTQUFTLENBQUE7SUFDbEIsQ0FBQzsrR0E5SlUsb0JBQW9CLGtCQUVYLFVBQVU7bUhBRm5CLG9CQUFvQjs7NEZBQXBCLG9CQUFvQjtrQkFEaEMsVUFBVTs7MEJBR0ksTUFBTTsyQkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtmcm9tLCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Q2xpZW50IGFzIENsaWVudEpzfSBmcm9tICdlbGFzdGljc2VhcmNoLWJyb3dzZXInO1xuaW1wb3J0IHtDbGllbnQsIE1TZWFyY2hSZXNwb25zZX0gZnJvbSAnZWxhc3RpY3NlYXJjaCc7XG5pbXBvcnQge1B1cmNoYXNlT3JkZXJSYXBpZFNlYXJjaE1vZGVsfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2V4cGVuZGl0dXJlLWNvbW1pdG1lbnQvcHVyY2hhc2Utb3JkZXItcmFwaWQtc2VhcmNoLm1vZGVsXCI7XG5pbXBvcnQge1Byb2R1Y3RSYXBpZFNlYXJjaE1vZGVsfSBmcm9tIFwiLi4vLi4vbW9kZWxzL3ZpZGVvL3Byb2R1Y3QtcmFwaWQtc2VhcmNoLm1vZGVsXCI7XG5pbXBvcnQge0NvbmZpZywgV0VCX0NPTkZJR30gZnJvbSAnLi4vLi4vY29uZmlnJztcbmltcG9ydCB7V29ya1ZlcnNpb25SYXBpZFNlYXJjaE1vZGVsfSBmcm9tIFwiLi4vLi4vbW9kZWxzL3JlZmVyZW50aWFsL3dvcmstdmVyc2lvbi1yYXBpZC1zZWFyY2gubW9kZWxcIjtcbmltcG9ydCB7RGVhbFJhcGlkU2VhcmNoTW9kZWx9IGZyb20gJy4uLy4uL21vZGVscy9jb21tZXJjaWFsL2RlYWwtcmFwaWQtc2VhcmNoLW1vZGVsJztcbmltcG9ydCB7VGhpcmRQYXJ0eVJhcGlkU2VhcmNoTW9kZWx9IGZyb20gXCIuLi8uLi9tb2RlbHMvcmVmZXJlbnRpYWwvdGhpcmQtcGFydHktcmFwaWQtc2VhcmNoLm1vZGVsXCI7XG5pbXBvcnQge1dvcmtSZWNvcmRSYXBpZFNlYXJjaE1vZGVsfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2NvbW1lcmNpYWwvd29yay1yZWNvcmQtcmFwaWQtc2VhcmNoLW1vZGVsXCI7XG5pbXBvcnQge0NvbnRyYWN0UmFwaWRTZWFyY2hNb2RlbH0gZnJvbSBcIi4uLy4uL21vZGVscy9sZWdhbC9jb250cmFjdC1yYXBpZC1zZWFyY2gtbW9kZWxcIjtcbmltcG9ydCB7SW52b2ljZVJhcGlkU2VhcmNoTW9kZWx9IGZyb20gXCIuLi8uLi9tb2RlbHMvY29tbWVyY2lhbC9pbnZvaWNlLXJhcGlkLXNlYXJjaC1tb2RlbFwiO1xuaW1wb3J0IHtBdXRoVXNlck1vZGVsfSBmcm9tIFwiLi4vLi4vbW9kZWxzXCI7XG5pbXBvcnQge1N1YnNpZGlhcmllc1NlcnZpY2V9IGZyb20gXCIuL3N1YnNpZGlhcmllcy5zZXJ2aWNlXCI7XG5cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEVsYXN0aWNzZWFyY2hTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KFdFQl9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBDb25maWcsXG4gICAgICAgICAgICAgIHByaXZhdGUgc3Vic2lkaWFyaWVzTWFwcGluZ1NlcnZpY2U6IFN1YnNpZGlhcmllc1NlcnZpY2UpIHtcbiAgfVxuXG4gIHByaXZhdGUgY2xpZW50OiBDbGllbnQ7XG4gIFBST0ZJTEVfU0VBUkNIX0NPTkZJRyA9IHtcbiAgICAnQ09NTUVSQ0lBTCc6IFsndW5pdHktaW52b2ljZSonLCAndW5pdHktZGVhbConLCAndW5pdHktd29yay1yZWNvcmQqJ10sXG4gICAgJ0FDQ09VTlRBTlQnOiBbJ3VuaXR5LWludm9pY2UqJywgJ3VuaXR5LWRlYWwqJywgJ3VuaXR5LXdvcmstcmVjb3JkKiddLFxuICAgICdBRE1JTklTVFJBVElWRV9DT05UUk9MTEVSJzogWyd1bml0eS1pbnZvaWNlKicsICd1bml0eS1kZWFsKicsICd1bml0eS13b3JrLXJlY29yZConXSxcbiAgICAnVklERU9fQ09OU1VMVCc6IFsndW5pdHktcHJvZHVjdConXSxcbiAgICAnQkRDJzogWyd1bml0eS1wdXJjaGFzZS1vcmRlcionXSxcbiAgICAnTEVHQUwnOiBbJ3VuaXR5LWNvbnRyYWN0KiddLFxuICAgICdST1lBTFRZJzogWyd1bml0eS1yb3lhbHR5LWNvbnRyYWN0J10sXG4gIH1cblxuICBwcml2YXRlIGdldEVsYXN0aWNzZWFyY2hDbGllbnQoKTogQ2xpZW50IHtcbiAgICBpZiAoIXRoaXMuY2xpZW50KSB7XG4gICAgICB0aGlzLmNsaWVudCA9IG5ldyBDbGllbnRKcyh7XG4gICAgICAgIGhvc3Q6IHRoaXMuY29uZmlnLmVsYXN0aWNzZWFyY2hfdXJsXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50O1xuICB9XG5cbiAgcHVibGljIGdldFNlYXJjaFJlc3BvbnNlKHRleHQ6IHN0cmluZywgdXNlcjogQXV0aFVzZXJNb2RlbCk6IE9ic2VydmFibGU8TVNlYXJjaFJlc3BvbnNlPGFueT4+IHtcbiAgICBjb25zdCBhbGxJbmRleGVzOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgIGFsbEluZGV4ZXMuYWRkKCd1bml0eS13b3JrLXZlcnNpb24qJylcbiAgICBhbGxJbmRleGVzLmFkZCgndW5pdHktdGhpcmQtcGFydHkqJylcblxuICAgIGZvciAoY29uc3QgcGVybWlzc2lvbiBvZiB1c2VyLnBlcm1pc3Npb25zKSB7XG4gICAgICBjb25zdCBpbmRleGVzID0gdGhpcy5QUk9GSUxFX1NFQVJDSF9DT05GSUdbcGVybWlzc2lvbi5jb2RlXTtcbiAgICAgIGluZGV4ZXM/LmZvckVhY2goaWR4ID0+IGFsbEluZGV4ZXMuYWRkKGlkeCkpO1xuICAgIH1cblxuICAgIGNvbnN0IGJvZHk6IGFueVtdID0gW107XG4gICAgZm9yIChjb25zdCBpbmRleCBvZiBhbGxJbmRleGVzKSB7XG4gICAgICBib2R5LnB1c2goe2luZGV4fSk7XG4gICAgICBzd2l0Y2ggKGluZGV4KSB7XG4gICAgICAgIGNhc2UgJ3VuaXR5LXdvcmstdmVyc2lvbionIDpcbiAgICAgICAgICBib2R5LnB1c2goe1xuICAgICAgICAgICAgcXVlcnk6IHtcbiAgICAgICAgICAgICAgZGlzX21heDoge1xuICAgICAgICAgICAgICAgIHF1ZXJpZXM6IFt7d2lsZGNhcmQ6IHttaWxvQ29kZToge3ZhbHVlOiAnKicgKyB0ZXh0ICsgJyonfX19LCB7d2lsZGNhcmQ6IHt0aXRsZToge3ZhbHVlOiAnKicgKyB0ZXh0ICsgJyonfX19LCB7d2lsZGNhcmQ6IHt0aXRsZToge3ZhbHVlOiB0ZXh0ICsgJyonfX19LCB7d2lsZGNhcmQ6IHt0aXRsZToge3ZhbHVlOiB0ZXh0fX19XSxcbiAgICAgICAgICAgICAgICB0aWVfYnJlYWtlcjogMC41XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzb3J0OiBbe19zY29yZToge29yZGVyOiAnZGVzYyd9fSwge3RpdGxlOiB7b3JkZXI6IFwiYXNjXCJ9fV0sXG4gICAgICAgICAgICBzaXplOiA1MFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICd1bml0eS1wcm9kdWN0KicgOlxuICAgICAgICAgIGJvZHkucHVzaCh7XG4gICAgICAgICAgICBxdWVyeToge2Rpc19tYXg6IHtxdWVyaWVzOiBbe3dpbGRjYXJkOiB7ZWFuOiB7dmFsdWU6ICcqJyArIHRleHQgKyAnKid9fX0sIHt3aWxkY2FyZDoge3RpdGxlOiB7dmFsdWU6ICcqJyArIHRleHQgKyAnKid9fX1dfX0sXG4gICAgICAgICAgICBzb3J0OiB7cmVsZWFzZURhdGU6IHtvcmRlcjogJ2Rlc2MnfX0sXG4gICAgICAgICAgICBzaXplOiA1MFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICd1bml0eS1wdXJjaGFzZS1vcmRlcionIDpcbiAgICAgICAgICBib2R5LnB1c2goe1xuICAgICAgICAgICAgcXVlcnk6IHtkaXNfbWF4OiB7cXVlcmllczogW3t3aWxkY2FyZDoge3BvTnVtYmVyOiB7dmFsdWU6ICcqJyArIHRleHQgKyAnKid9fX0sIHt3aWxkY2FyZDoge2Vhbjoge3ZhbHVlOiAnKicgKyB0ZXh0ICsgJyonfX19LCB7d2lsZGNhcmQ6IHtiYXNrZXROdW1iZXI6IHt2YWx1ZTogJyonICsgdGV4dCArICcqJ319fV19fSxcbiAgICAgICAgICAgIHNpemU6IDUwXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3VuaXR5LWRlYWwqJyA6XG4gICAgICAgICAgYm9keS5wdXNoKHtcbiAgICAgICAgICAgIHF1ZXJ5OiB7ZGlzX21heDoge3F1ZXJpZXM6IFt7d2lsZGNhcmQ6IHtkZWFsTnVtYmVyOiB7dmFsdWU6ICcqJyArIHRleHQgKyAnKid9fX1dfX0sXG4gICAgICAgICAgICBzb3J0OiBbe19zY29yZToge29yZGVyOiAnZGVzYyd9fSwgeydkZWFsTnVtYmVyLmtleXdvcmQnOiB7b3JkZXI6ICdhc2MnfX1dLFxuICAgICAgICAgICAgc2l6ZTogNTBcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAndW5pdHktd29yay1yZWNvcmQqJyA6XG4gICAgICAgICAgYm9keS5wdXNoKHtcbiAgICAgICAgICAgIHF1ZXJ5OiB7ZGlzX21heDoge3F1ZXJpZXM6IFt7d2lsZGNhcmQ6IHt3b3JrUmVjb3JkSWQ6IHt2YWx1ZTogJyonICsgdGV4dCArICcqJ319fV19fSxcbiAgICAgICAgICAgIHNvcnQ6IFt7J3dvcmtSZWNvcmRJZC5rZXl3b3JkJzoge29yZGVyOiAnYXNjJ319XSxcbiAgICAgICAgICAgIHNpemU6IDUwXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3VuaXR5LWludm9pY2UqJyA6XG4gICAgICAgICAgYm9keS5wdXNoKHtcbiAgICAgICAgICAgIHF1ZXJ5OiB7ZGlzX21heDoge3F1ZXJpZXM6IFt7d2lsZGNhcmQ6IHtudW1iZXI6IHt2YWx1ZTogJyonICsgdGV4dCArICcqJ319fV19fSxcbiAgICAgICAgICAgIHNvcnQ6IFt7J251bWJlci5rZXl3b3JkJzoge29yZGVyOiAnYXNjJ319XSxcbiAgICAgICAgICAgIHNpemU6IDUwXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3VuaXR5LXRoaXJkLXBhcnR5KicgOlxuICAgICAgICAgIGJvZHkucHVzaCh7XG4gICAgICAgICAgICBxdWVyeToge1xuICAgICAgICAgICAgICBkaXNfbWF4OiB7XG4gICAgICAgICAgICAgICAgcXVlcmllczogW3t3aWxkY2FyZDoge2NvbXBhbnlPclBlcnNvbk5hbWU6IHt2YWx1ZTogJyonICsgdGV4dCArICcqJ319fSwge3dpbGRjYXJkOiB7Y29tcGFueU9yUGVyc29uTmFtZToge3ZhbHVlOiB0ZXh0ICsgJyonfX19LCB7d2lsZGNhcmQ6IHtjb21wYW55T3JQZXJzb25OYW1lOiB7dmFsdWU6IHRleHR9fX1dLFxuICAgICAgICAgICAgICAgIHRpZV9icmVha2VyOiAwLjVcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNvcnQ6IFt7X3Njb3JlOiB7b3JkZXI6ICdkZXNjJ319LCB7Y29tcGFueU9yUGVyc29uTmFtZToge29yZGVyOiAnYXNjJ319XSxcbiAgICAgICAgICAgIHNpemU6IDUwXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3VuaXR5LWNvbnRyYWN0KicgOlxuICAgICAgICAgIGJvZHkucHVzaCh7XG4gICAgICAgICAgICBxdWVyeToge2Jvb2w6IHRoaXMuY29tcG9zZUNvbnRyYWN0UXVlcnkodGV4dCwgdXNlci5zdWJzaWRpYXJpZXMpfSxcbiAgICAgICAgICAgIHNvcnQ6IFt7J2xpc2FJZC5rZXl3b3JkJzoge29yZGVyOiAnYXNjJ319XSxcbiAgICAgICAgICAgIHNpemU6IDUwXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3VuaXR5LXJveWFsdHktY29udHJhY3QnIDpcbiAgICAgICAgICBib2R5LnB1c2goe1xuICAgICAgICAgICAgcXVlcnk6IHtkaXNfbWF4OiB7cXVlcmllczogW3t3aWxkY2FyZDoge2NvbnRyYWN0TnVtYmVyOiB7dmFsdWU6ICcqJyArIHRleHQgKyAnKid9fX1dfX0sXG4gICAgICAgICAgICBzb3J0OiBbeydjb250cmFjdE51bWJlci5rZXl3b3JkJzoge29yZGVyOiAnYXNjJ319XSxcbiAgICAgICAgICAgIHNpemU6IDUwXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmcm9tKHRoaXMuZ2V0RWxhc3RpY3NlYXJjaENsaWVudCgpLm1zZWFyY2goe2JvZHl9KSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0RG9jdW1lbnRzKHNlYXJjaFJlc3BvbnNlOiBhbnkpOiAoUHVyY2hhc2VPcmRlclJhcGlkU2VhcmNoTW9kZWwgfCBQcm9kdWN0UmFwaWRTZWFyY2hNb2RlbCB8XG4gICAgV29ya1ZlcnNpb25SYXBpZFNlYXJjaE1vZGVsIHwgRGVhbFJhcGlkU2VhcmNoTW9kZWwgfCBXb3JrUmVjb3JkUmFwaWRTZWFyY2hNb2RlbCB8IFRoaXJkUGFydHlSYXBpZFNlYXJjaE1vZGVsIHwgQ29udHJhY3RSYXBpZFNlYXJjaE1vZGVsKVtdIHtcbiAgICBsZXQgcmVzdWx0cyA9IFtdO1xuICAgIGlmIChzZWFyY2hSZXNwb25zZSAmJiBzZWFyY2hSZXNwb25zZS5yZXNwb25zZXMpIHtcbiAgICAgIGZvciAoY29uc3QgciBvZiBzZWFyY2hSZXNwb25zZS5yZXNwb25zZXMpIHtcbiAgICAgICAgaWYgKHIuZXJyb3IgfHwgIXIuaGl0cykge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaXRlbSA9IHIuaGl0cy5oaXRzICYmIHIuaGl0cy5oaXRzLmxlbmd0aCA+IDAgPyByLmhpdHMuaGl0cy5tYXAodiA9PiB0aGlzLm1hcERvY3VtZW50KHYpKSA6IFtdO1xuICAgICAgICByZXN1bHRzID0gcmVzdWx0cy5jb25jYXQoaXRlbSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHRzO1xuICB9XG5cbiAgbWFwRG9jdW1lbnQoZG9jOiBhbnkpOiBhbnkge1xuICAgIHN3aXRjaCAoZG9jLl9zb3VyY2UuZG9jVHlwZSkge1xuICAgICAgY2FzZSAnSU5WT0lDRSc6XG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKG5ldyBJbnZvaWNlUmFwaWRTZWFyY2hNb2RlbCgpLCBkb2MuX3NvdXJjZSk7XG4gICAgICBjYXNlICdXT1JLX1JFQ09SRCc6XG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKG5ldyBXb3JrUmVjb3JkUmFwaWRTZWFyY2hNb2RlbCgpLCBkb2MuX3NvdXJjZSk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gZG9jLl9zb3VyY2U7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjb21wb3NlQ29udHJhY3RRdWVyeSh0ZXh0OiBzdHJpbmcsIHN1YnNpZGlhZGllcykge1xuICAgIGNvbnN0IHNvY2lldGVzID0gdGhpcy5zdWJzaWRpYXJpZXNNYXBwaW5nU2VydmljZS5nZXRTb2NpZXRlQXBwYXJ0ZW5hbmNlKHN1YnNpZGlhZGllcyk7XG4gICAgY29uc3QgbXVzdDogYW55W10gPSBbXG4gICAgICB7d2lsZGNhcmQ6IHtsaXNhSWQ6IHt2YWx1ZTogJyonICsgdGV4dCArICcqJ319fVxuICAgIF07XG4gICAgY29uc3Qgc2hvdWxkOiBhbnlbXSA9IFtdO1xuICAgIHNob3VsZC5wdXNoKHtib29sOiB7bXVzdF9ub3Q6IHtleGlzdHM6IHtmaWVsZDogJ3NvY2lldGVBcHBhcnRlbmFuY2UnfX19fSk7XG4gICAgaWYgKHNvY2lldGVzICYmIHNvY2lldGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHNob3VsZC5wdXNoKHt0ZXJtczoge3NvY2lldGVBcHBhcnRlbmFuY2U6IHNvY2lldGVzfX0pO1xuICAgIH1cbiAgICBjb25zdCBib29sUXVlcnk6IGFueSA9IHttdXN0fTtcbiAgICBib29sUXVlcnkuc2hvdWxkID0gc2hvdWxkO1xuICAgIGJvb2xRdWVyeS5taW5pbXVtX3Nob3VsZF9tYXRjaCA9IDE7XG4gICAgcmV0dXJuIGJvb2xRdWVyeVxuICB9XG5cbn1cbiJdfQ==
@@ -1,54 +1,48 @@
1
- import { inject, Injectable } from "@angular/core";
2
- import { LegalApiService } from "../api/legal-api.service";
3
- import * as i0 from "@angular/core";
4
- export class SubsidiariesService {
5
- constructor() {
6
- this.legalService = inject(LegalApiService);
7
- this.defaultMapping = {
8
- 1: [4991],
9
- 2: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990],
10
- 3: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990],
11
- 4: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990],
12
- 5: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990],
13
- 6: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990],
14
- 7: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990]
15
- };
16
- this.subsidiaryToSocieteMapLegal = {};
17
- const isLocal = window.location.hostname === 'localhost';
18
- if (isLocal) {
19
- this.loadTableSocieteAppartenance();
20
- }
21
- else {
22
- console.log('Default mapping for subsidiaryToSocieteMapLegal');
23
- }
24
- }
25
- loadTableSocieteAppartenance() {
26
- this.legalService.getMappingSocietesSubsidiaries().subscribe({
27
- next: (map) => {
28
- this.subsidiaryToSocieteMapLegal = map;
29
- },
30
- error: () => {
31
- console.log('Error legal-api : Default mapping for subsidiaryToSocieteMapLegal');
32
- this.subsidiaryToSocieteMapLegal = { ...this.defaultMapping };
33
- }
34
- });
35
- }
36
- getSocieteAppartenance(subsidiaries) {
37
- if (subsidiaries === null) {
38
- return null;
39
- }
40
- return subsidiaries
41
- .reduce((acc, sub) => {
42
- const societes = this.subsidiaryToSocieteMapLegal[sub.id] || [];
43
- return acc.concat(societes);
44
- }, [])
45
- .filter((v, i, arr) => arr.indexOf(v) === i);
46
- }
47
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SubsidiariesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
48
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SubsidiariesService, providedIn: 'root' }); }
49
- }
50
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SubsidiariesService, decorators: [{
51
- type: Injectable,
52
- args: [{ providedIn: 'root' }]
53
- }], ctorParameters: function () { return []; } });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2lkaWFyaWVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXctZnJvbnQtY29tbW9uLWxpYnJhcnkvc3JjL2xpYi91dGlsL3NlcnZpY2VzL2VsYXN0aWNzZWFyY2gvc3Vic2lkaWFyaWVzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDBCQUEwQixDQUFDOztBQUd6RCxNQUFNLE9BQU8sbUJBQW1CO0lBZ0I5QjtRQWRpQixpQkFBWSxHQUFvQixNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFakUsbUJBQWMsR0FBNkI7WUFDakQsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO1lBQ1QsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDcEQsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDcEQsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDcEQsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDcEQsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDcEQsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7U0FDckQsQ0FBQTtRQUVPLGdDQUEyQixHQUE2QixFQUFFLENBQUM7UUFHakUsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEtBQUssV0FBVyxDQUFDO1FBQ3pELElBQUksT0FBTyxFQUFFO1lBQ1gsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7U0FDckM7YUFBTTtZQUNMLE9BQU8sQ0FBQyxHQUFHLENBQUMsaURBQWlELENBQUMsQ0FBQztTQUNoRTtJQUNILENBQUM7SUFDRCw0QkFBNEI7UUFDMUIsSUFBSSxDQUFDLFlBQVksQ0FBQyw4QkFBOEIsRUFBRSxDQUFDLFNBQVMsQ0FBQztZQUMzRCxJQUFJLEVBQUUsQ0FBQyxHQUE2QixFQUFFLEVBQUU7Z0JBQ3RDLElBQUksQ0FBQywyQkFBMkIsR0FBRyxHQUFHLENBQUM7WUFDekMsQ0FBQztZQUNELEtBQUssRUFBRSxHQUFHLEVBQUU7Z0JBQ1YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtRUFBbUUsQ0FBQyxDQUFDO2dCQUNqRixJQUFJLENBQUMsMkJBQTJCLEdBQUcsRUFBQyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUMsQ0FBQztZQUM5RCxDQUFDO1NBQ0YsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELHNCQUFzQixDQUFDLFlBQStCO1FBQ3BELElBQUksWUFBWSxLQUFLLElBQUksRUFBRTtZQUN6QixPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsT0FBTyxZQUFZO2FBQ2hCLE1BQU0sQ0FBQyxDQUFDLEdBQWEsRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUM3QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsMkJBQTJCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNoRSxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDOUIsQ0FBQyxFQUFFLEVBQUUsQ0FBQzthQUNMLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7K0dBOUNVLG1CQUFtQjttSEFBbkIsbUJBQW1CLGNBRFAsTUFBTTs7NEZBQ2xCLG1CQUFtQjtrQkFEL0IsVUFBVTttQkFBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtTdWJzaWRpYXJ5TW9kZWx9IGZyb20gXCIuLi8uLi9tb2RlbHNcIjtcclxuaW1wb3J0IHtMZWdhbEFwaVNlcnZpY2V9IGZyb20gXCIuLi9hcGkvbGVnYWwtYXBpLnNlcnZpY2VcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxyXG5leHBvcnQgY2xhc3MgU3Vic2lkaWFyaWVzU2VydmljZSB7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgbGVnYWxTZXJ2aWNlOiBMZWdhbEFwaVNlcnZpY2UgPSBpbmplY3QoTGVnYWxBcGlTZXJ2aWNlKTtcclxuXHJcbiAgcHJpdmF0ZSBkZWZhdWx0TWFwcGluZzogUmVjb3JkPG51bWJlciwgbnVtYmVyW10+ID0ge1xyXG4gICAgMTogWzQ5OTFdLFxyXG4gICAgMjogWzMzMiwgMzMzLCAzMzQsIDczOSwgMzM1LCAxMzc5LCAxMzgwLCA0OTg4LCA0OTkwXSxcclxuICAgIDM6IFszMzIsIDMzMywgMzM0LCA3MzksIDMzNSwgMTM3OSwgMTM4MCwgNDk4OCwgNDk5MF0sXHJcbiAgICA0OiBbMzMyLCAzMzMsIDMzNCwgNzM5LCAzMzUsIDEzNzksIDEzODAsIDQ5ODgsIDQ5OTBdLFxyXG4gICAgNTogWzMzMiwgMzMzLCAzMzQsIDczOSwgMzM1LCAxMzc5LCAxMzgwLCA0OTg4LCA0OTkwXSxcclxuICAgIDY6IFszMzIsIDMzMywgMzM0LCA3MzksIDMzNSwgMTM3OSwgMTM4MCwgNDk4OCwgNDk5MF0sXHJcbiAgICA3OiBbMzMyLCAzMzMsIDMzNCwgNzM5LCAzMzUsIDEzNzksIDEzODAsIDQ5ODgsIDQ5OTBdXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN1YnNpZGlhcnlUb1NvY2lldGVNYXBMZWdhbDogUmVjb3JkPG51bWJlciwgbnVtYmVyW10+ID0ge307XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgY29uc3QgaXNMb2NhbCA9IHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSA9PT0gJ2xvY2FsaG9zdCc7XHJcbiAgICBpZiAoaXNMb2NhbCkge1xyXG4gICAgICB0aGlzLmxvYWRUYWJsZVNvY2lldGVBcHBhcnRlbmFuY2UoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdEZWZhdWx0IG1hcHBpbmcgZm9yIHN1YnNpZGlhcnlUb1NvY2lldGVNYXBMZWdhbCcpO1xyXG4gICAgfVxyXG4gIH1cclxuICBsb2FkVGFibGVTb2NpZXRlQXBwYXJ0ZW5hbmNlKCkge1xyXG4gICAgdGhpcy5sZWdhbFNlcnZpY2UuZ2V0TWFwcGluZ1NvY2lldGVzU3Vic2lkaWFyaWVzKCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKG1hcDogUmVjb3JkPG51bWJlciwgbnVtYmVyW10+KSA9PiB7XHJcbiAgICAgICAgdGhpcy5zdWJzaWRpYXJ5VG9Tb2NpZXRlTWFwTGVnYWwgPSBtYXA7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0Vycm9yIGxlZ2FsLWFwaSA6IERlZmF1bHQgbWFwcGluZyBmb3Igc3Vic2lkaWFyeVRvU29jaWV0ZU1hcExlZ2FsJyk7XHJcbiAgICAgICAgdGhpcy5zdWJzaWRpYXJ5VG9Tb2NpZXRlTWFwTGVnYWwgPSB7Li4udGhpcy5kZWZhdWx0TWFwcGluZ307XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBnZXRTb2NpZXRlQXBwYXJ0ZW5hbmNlKHN1YnNpZGlhcmllczogU3Vic2lkaWFyeU1vZGVsW10pIHtcclxuICAgIGlmIChzdWJzaWRpYXJpZXMgPT09IG51bGwpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc3Vic2lkaWFyaWVzXHJcbiAgICAgIC5yZWR1Y2UoKGFjYzogbnVtYmVyW10sIHN1YikgPT4ge1xyXG4gICAgICAgIGNvbnN0IHNvY2lldGVzID0gdGhpcy5zdWJzaWRpYXJ5VG9Tb2NpZXRlTWFwTGVnYWxbc3ViLmlkXSB8fCBbXTtcclxuICAgICAgICByZXR1cm4gYWNjLmNvbmNhdChzb2NpZXRlcyk7XHJcbiAgICAgIH0sIFtdKVxyXG4gICAgICAuZmlsdGVyKCh2LCBpLCBhcnIpID0+IGFyci5pbmRleE9mKHYpID09PSBpKTtcclxuICB9XHJcbn1cclxuIl19
1
+ import { inject, Injectable } from "@angular/core";
2
+ import { LegalApiService } from "../api/legal-api.service";
3
+ import * as i0 from "@angular/core";
4
+ export class SubsidiariesService {
5
+ constructor() {
6
+ this.legalService = inject(LegalApiService);
7
+ this.defaultMapping = {
8
+ 1: [4991],
9
+ 2: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990],
10
+ 3: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990],
11
+ 4: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990],
12
+ 5: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990],
13
+ 6: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990],
14
+ 7: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990]
15
+ };
16
+ this.subsidiaryToSocieteMapLegal = {};
17
+ this.loadTableSocieteAppartenance();
18
+ }
19
+ loadTableSocieteAppartenance() {
20
+ this.legalService.getMappingSocietesSubsidiaries().subscribe({
21
+ next: (map) => {
22
+ this.subsidiaryToSocieteMapLegal = map;
23
+ },
24
+ error: () => {
25
+ console.log('Default mapping for subsidiaryToSocieteMapLegal');
26
+ this.subsidiaryToSocieteMapLegal = { ...this.defaultMapping };
27
+ }
28
+ });
29
+ }
30
+ getSocieteAppartenance(subsidiaries) {
31
+ if (subsidiaries === null) {
32
+ return null;
33
+ }
34
+ return subsidiaries
35
+ .reduce((acc, sub) => {
36
+ const societes = this.subsidiaryToSocieteMapLegal[sub.id] || [];
37
+ return acc.concat(societes);
38
+ }, [])
39
+ .filter((v, i, arr) => arr.indexOf(v) === i);
40
+ }
41
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SubsidiariesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
42
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SubsidiariesService, providedIn: 'root' }); }
43
+ }
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SubsidiariesService, decorators: [{
45
+ type: Injectable,
46
+ args: [{ providedIn: 'root' }]
47
+ }], ctorParameters: function () { return []; } });
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2lkaWFyaWVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXctZnJvbnQtY29tbW9uLWxpYnJhcnkvc3JjL2xpYi91dGlsL3NlcnZpY2VzL2VsYXN0aWNzZWFyY2gvc3Vic2lkaWFyaWVzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDBCQUEwQixDQUFDOztBQUd6RCxNQUFNLE9BQU8sbUJBQW1CO0lBZ0I5QjtRQWRpQixpQkFBWSxHQUFvQixNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFakUsbUJBQWMsR0FBNkI7WUFDakQsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO1lBQ1QsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDcEQsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDcEQsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDcEQsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDcEQsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDcEQsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7U0FDckQsQ0FBQTtRQUVPLGdDQUEyQixHQUE2QixFQUFFLENBQUM7UUFHakUsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUNELDRCQUE0QjtRQUMxQixJQUFJLENBQUMsWUFBWSxDQUFDLDhCQUE4QixFQUFFLENBQUMsU0FBUyxDQUFDO1lBQzNELElBQUksRUFBRSxDQUFDLEdBQTZCLEVBQUUsRUFBRTtnQkFDdEMsSUFBSSxDQUFDLDJCQUEyQixHQUFHLEdBQUcsQ0FBQztZQUN6QyxDQUFDO1lBQ0QsS0FBSyxFQUFFLEdBQUcsRUFBRTtnQkFDVixPQUFPLENBQUMsR0FBRyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7Z0JBQy9ELElBQUksQ0FBQywyQkFBMkIsR0FBRyxFQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBQyxDQUFDO1lBQzlELENBQUM7U0FDRixDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsc0JBQXNCLENBQUMsWUFBK0I7UUFDcEQsSUFBSSxZQUFZLEtBQUssSUFBSSxFQUFFO1lBQ3pCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxPQUFPLFlBQVk7YUFDaEIsTUFBTSxDQUFDLENBQUMsR0FBYSxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQzdCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2hFLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5QixDQUFDLEVBQUUsRUFBRSxDQUFDO2FBQ0wsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDakQsQ0FBQzsrR0F6Q1UsbUJBQW1CO21IQUFuQixtQkFBbUIsY0FEUCxNQUFNOzs0RkFDbEIsbUJBQW1CO2tCQUQvQixVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtTdWJzaWRpYXJ5TW9kZWx9IGZyb20gXCIuLi8uLi9tb2RlbHNcIjtcbmltcG9ydCB7TGVnYWxBcGlTZXJ2aWNlfSBmcm9tIFwiLi4vYXBpL2xlZ2FsLWFwaS5zZXJ2aWNlXCI7XG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIFN1YnNpZGlhcmllc1NlcnZpY2Uge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbGVnYWxTZXJ2aWNlOiBMZWdhbEFwaVNlcnZpY2UgPSBpbmplY3QoTGVnYWxBcGlTZXJ2aWNlKTtcblxuICBwcml2YXRlIGRlZmF1bHRNYXBwaW5nOiBSZWNvcmQ8bnVtYmVyLCBudW1iZXJbXT4gPSB7XG4gICAgMTogWzQ5OTFdLFxuICAgIDI6IFszMzIsIDMzMywgMzM0LCA3MzksIDMzNSwgMTM3OSwgMTM4MCwgNDk4OCwgNDk5MF0sXG4gICAgMzogWzMzMiwgMzMzLCAzMzQsIDczOSwgMzM1LCAxMzc5LCAxMzgwLCA0OTg4LCA0OTkwXSxcbiAgICA0OiBbMzMyLCAzMzMsIDMzNCwgNzM5LCAzMzUsIDEzNzksIDEzODAsIDQ5ODgsIDQ5OTBdLFxuICAgIDU6IFszMzIsIDMzMywgMzM0LCA3MzksIDMzNSwgMTM3OSwgMTM4MCwgNDk4OCwgNDk5MF0sXG4gICAgNjogWzMzMiwgMzMzLCAzMzQsIDczOSwgMzM1LCAxMzc5LCAxMzgwLCA0OTg4LCA0OTkwXSxcbiAgICA3OiBbMzMyLCAzMzMsIDMzNCwgNzM5LCAzMzUsIDEzNzksIDEzODAsIDQ5ODgsIDQ5OTBdXG4gIH1cblxuICBwcml2YXRlIHN1YnNpZGlhcnlUb1NvY2lldGVNYXBMZWdhbDogUmVjb3JkPG51bWJlciwgbnVtYmVyW10+ID0ge307XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5sb2FkVGFibGVTb2NpZXRlQXBwYXJ0ZW5hbmNlKCk7XG4gIH1cbiAgbG9hZFRhYmxlU29jaWV0ZUFwcGFydGVuYW5jZSgpIHtcbiAgICB0aGlzLmxlZ2FsU2VydmljZS5nZXRNYXBwaW5nU29jaWV0ZXNTdWJzaWRpYXJpZXMoKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKG1hcDogUmVjb3JkPG51bWJlciwgbnVtYmVyW10+KSA9PiB7XG4gICAgICAgIHRoaXMuc3Vic2lkaWFyeVRvU29jaWV0ZU1hcExlZ2FsID0gbWFwO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdEZWZhdWx0IG1hcHBpbmcgZm9yIHN1YnNpZGlhcnlUb1NvY2lldGVNYXBMZWdhbCcpO1xuICAgICAgICB0aGlzLnN1YnNpZGlhcnlUb1NvY2lldGVNYXBMZWdhbCA9IHsuLi50aGlzLmRlZmF1bHRNYXBwaW5nfTtcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgZ2V0U29jaWV0ZUFwcGFydGVuYW5jZShzdWJzaWRpYXJpZXM6IFN1YnNpZGlhcnlNb2RlbFtdKSB7XG4gICAgaWYgKHN1YnNpZGlhcmllcyA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBzdWJzaWRpYXJpZXNcbiAgICAgIC5yZWR1Y2UoKGFjYzogbnVtYmVyW10sIHN1YikgPT4ge1xuICAgICAgICBjb25zdCBzb2NpZXRlcyA9IHRoaXMuc3Vic2lkaWFyeVRvU29jaWV0ZU1hcExlZ2FsW3N1Yi5pZF0gfHwgW107XG4gICAgICAgIHJldHVybiBhY2MuY29uY2F0KHNvY2lldGVzKTtcbiAgICAgIH0sIFtdKVxuICAgICAgLmZpbHRlcigodiwgaSwgYXJyKSA9PiBhcnIuaW5kZXhPZih2KSA9PT0gaSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,25 +1,25 @@
1
- import { EventEmitter, Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class FormActionsEventsService {
4
- constructor() {
5
- this.updateEvent = new EventEmitter(true);
6
- this.consultToEdit = new EventEmitter(true);
7
- this.EditToConsult = new EventEmitter(true);
8
- this.consultToDuplicate = new EventEmitter(true);
9
- }
10
- emitUpdateEvent() {
11
- this.updateEvent.emit();
12
- }
13
- emitEventIsUpdateTrue() {
14
- this.consultToEdit.emit(true);
15
- }
16
- emitConsultEvent() {
17
- this.EditToConsult.emit();
18
- }
19
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormActionsEventsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
20
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormActionsEventsService }); }
21
- }
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormActionsEventsService, decorators: [{
23
- type: Injectable
24
- }], ctorParameters: function () { return []; } });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hY3Rpb25zLWV2ZW50cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV3LWZyb250LWNvbW1vbi1saWJyYXJ5L3NyYy9saWIvdXRpbC9zZXJ2aWNlcy9mb3JtLWFjdGlvbi9mb3JtLWFjdGlvbnMtZXZlbnRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBR3pELE1BQU0sT0FBTyx3QkFBd0I7SUFPakM7UUFMTyxnQkFBVyxHQUEwQixJQUFJLFlBQVksQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUNyRSxrQkFBYSxHQUEwQixJQUFJLFlBQVksQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUN2RSxrQkFBYSxHQUEwQixJQUFJLFlBQVksQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUN2RSx1QkFBa0IsR0FBMEIsSUFBSSxZQUFZLENBQVUsSUFBSSxDQUFDLENBQUM7SUFHbkYsQ0FBQztJQUVNLGVBQWU7UUFDbEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU0scUJBQXFCO1FBQ3hCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTSxnQkFBZ0I7UUFDbkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM5QixDQUFDOytHQXBCUSx3QkFBd0I7bUhBQXhCLHdCQUF3Qjs7NEZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRm9ybUFjdGlvbnNFdmVudHNTZXJ2aWNlIHtcclxuXHJcbiAgICBwdWJsaWMgdXBkYXRlRXZlbnQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4odHJ1ZSk7XHJcbiAgICBwdWJsaWMgY29uc3VsdFRvRWRpdDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPih0cnVlKTtcclxuICAgIHB1YmxpYyBFZGl0VG9Db25zdWx0OiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KHRydWUpO1xyXG4gICAgcHVibGljIGNvbnN1bHRUb0R1cGxpY2F0ZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPih0cnVlKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZW1pdFVwZGF0ZUV2ZW50KCkge1xyXG4gICAgICAgIHRoaXMudXBkYXRlRXZlbnQuZW1pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBlbWl0RXZlbnRJc1VwZGF0ZVRydWUoKSB7XHJcbiAgICAgICAgdGhpcy5jb25zdWx0VG9FZGl0LmVtaXQodHJ1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGVtaXRDb25zdWx0RXZlbnQoKSB7XHJcbiAgICAgICAgdGhpcy5FZGl0VG9Db25zdWx0LmVtaXQoKTtcclxuICAgIH1cclxufVxyXG4iXX0=
1
+ import { EventEmitter, Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class FormActionsEventsService {
4
+ constructor() {
5
+ this.updateEvent = new EventEmitter(true);
6
+ this.consultToEdit = new EventEmitter(true);
7
+ this.EditToConsult = new EventEmitter(true);
8
+ this.consultToDuplicate = new EventEmitter(true);
9
+ }
10
+ emitUpdateEvent() {
11
+ this.updateEvent.emit();
12
+ }
13
+ emitEventIsUpdateTrue() {
14
+ this.consultToEdit.emit(true);
15
+ }
16
+ emitConsultEvent() {
17
+ this.EditToConsult.emit();
18
+ }
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormActionsEventsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
20
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormActionsEventsService }); }
21
+ }
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormActionsEventsService, decorators: [{
23
+ type: Injectable
24
+ }], ctorParameters: function () { return []; } });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hY3Rpb25zLWV2ZW50cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV3LWZyb250LWNvbW1vbi1saWJyYXJ5L3NyYy9saWIvdXRpbC9zZXJ2aWNlcy9mb3JtLWFjdGlvbi9mb3JtLWFjdGlvbnMtZXZlbnRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBR3pELE1BQU0sT0FBTyx3QkFBd0I7SUFPakM7UUFMTyxnQkFBVyxHQUEwQixJQUFJLFlBQVksQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUNyRSxrQkFBYSxHQUEwQixJQUFJLFlBQVksQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUN2RSxrQkFBYSxHQUEwQixJQUFJLFlBQVksQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUN2RSx1QkFBa0IsR0FBMEIsSUFBSSxZQUFZLENBQVUsSUFBSSxDQUFDLENBQUM7SUFHbkYsQ0FBQztJQUVNLGVBQWU7UUFDbEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU0scUJBQXFCO1FBQ3hCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTSxnQkFBZ0I7UUFDbkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM5QixDQUFDOytHQXBCUSx3QkFBd0I7bUhBQXhCLHdCQUF3Qjs7NEZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRm9ybUFjdGlvbnNFdmVudHNTZXJ2aWNlIHtcblxuICAgIHB1YmxpYyB1cGRhdGVFdmVudDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPih0cnVlKTtcbiAgICBwdWJsaWMgY29uc3VsdFRvRWRpdDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPih0cnVlKTtcbiAgICBwdWJsaWMgRWRpdFRvQ29uc3VsdDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPih0cnVlKTtcbiAgICBwdWJsaWMgY29uc3VsdFRvRHVwbGljYXRlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KHRydWUpO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgfVxuXG4gICAgcHVibGljIGVtaXRVcGRhdGVFdmVudCgpIHtcbiAgICAgICAgdGhpcy51cGRhdGVFdmVudC5lbWl0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGVtaXRFdmVudElzVXBkYXRlVHJ1ZSgpIHtcbiAgICAgICAgdGhpcy5jb25zdWx0VG9FZGl0LmVtaXQodHJ1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGVtaXRDb25zdWx0RXZlbnQoKSB7XG4gICAgICAgIHRoaXMuRWRpdFRvQ29uc3VsdC5lbWl0KCk7XG4gICAgfVxufVxuIl19