new-front-common-library 16.1.32-LEG-2 → 16.1.32-ROY-1

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 +221 -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 +12 -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 +158 -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 +5522 -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 +10 -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 +141 -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,96 +1,96 @@
1
- import { Component, EventEmitter, HostListener, Input, Output } from '@angular/core';
2
- import { MENU_SECTIONS } from './menu.const';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "../../overlay/overlay.service";
5
- import * as i2 from "../../../services/api/video-api.service";
6
- import * as i3 from "../../../services/api/commercial-api.service";
7
- import * as i4 from "@angular/material/toolbar";
8
- import * as i5 from "@angular/common";
9
- import * as i6 from "ngx-permissions";
10
- import * as i7 from "@angular/material/icon";
11
- import * as i8 from "@angular/material/menu";
12
- import * as i9 from "../../../pipes/common-translate.pipe";
13
- export class MenuComponent {
14
- onClickOutside(event) {
15
- const menuButton = event.target.closest('.button-wrapper');
16
- const insideMenu = event.target.closest('.mat-menu-panel');
17
- if (!menuButton && !insideMenu) {
18
- this.forceCloseMenu();
19
- }
20
- }
21
- constructor(overlayService, videoApiService, commercialApiService) {
22
- this.overlayService = overlayService;
23
- this.videoApiService = videoApiService;
24
- this.commercialApiService = commercialApiService;
25
- this.navigate = new EventEmitter();
26
- this.redirect = new EventEmitter();
27
- this.activeMenu = null;
28
- this.menuButtons = MENU_SECTIONS;
29
- this.menuTriggerRef = null;
30
- }
31
- openMenu(menuTrigger, menuLabel) {
32
- if (this.activeMenu === menuLabel) {
33
- this.forceCloseMenu();
34
- return;
35
- }
36
- this.forceCloseMenu();
37
- this.activeMenu = menuLabel;
38
- this.menuTriggerRef = menuTrigger;
39
- menuTrigger.openMenu();
40
- }
41
- forceCloseMenu() {
42
- this.activeMenu = null;
43
- this.menuTriggerRef?.closeMenu();
44
- }
45
- extractAllProducts() {
46
- this.overlayService.show();
47
- this.videoApiService.getProductExtractionXlsx(this.lang).subscribe(res => {
48
- const xlsFile = new Blob([res], {
49
- type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
50
- });
51
- const fileURL = URL.createObjectURL(xlsFile);
52
- window.open(fileURL);
53
- this.overlayService.hide();
54
- });
55
- }
56
- extractAccountWrittingDownload() {
57
- this.overlayService.show();
58
- this.commercialApiService.getAccountWrittingDownload();
59
- this.overlayService.hide();
60
- }
61
- performAction(link) {
62
- this.forceCloseMenu();
63
- switch (link.actionType) {
64
- case 'navigate':
65
- this.navigate.emit(link);
66
- break;
67
- case 'redirect':
68
- this.redirect.emit(link);
69
- break;
70
- case 'exportAccountWriting':
71
- this.extractAccountWrittingDownload();
72
- break;
73
- case 'extractProduct':
74
- this.extractAllProducts();
75
- break;
76
- default:
77
- throw new Error(`performAction error - No action type on menuLink : ${link}`);
78
- }
79
- }
80
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MenuComponent, deps: [{ token: i1.OverlayService }, { token: i2.VideoApiService }, { token: i3.CommercialApiService }], target: i0.ɵɵFactoryTarget.Component }); }
81
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MenuComponent, selector: "sc-menu", inputs: { lang: "lang" }, outputs: { navigate: "navigate", redirect: "redirect" }, host: { listeners: { "document:click": "onClickOutside($event)" } }, ngImport: i0, template: "<div class=\"d-flex justify-content-start\">\r\n <ng-container *ngFor=\"let menuCurrent of menuButtons\" class=\"menu-panel-container\">\r\n <ng-container *ngxPermissionsExcept=\"menuCurrent.restrictions\">\r\n <mat-toolbar class=\"toolbar-padding\">\r\n <div\r\n [attr.aria-label]=\"menuCurrent.label + '-btn'\"\r\n class=\"button-wrapper\"\r\n [ngClass]=\"{ active: activeMenu === menuCurrent.label }\"\r\n *ngxPermissionsOnly=\"menuCurrent.permissions\"\r\n (click)=\"openMenu(menuTrigger, menuCurrent.label)\"\r\n >\r\n <button class=\"menu-button primary-color\" [matMenuTriggerFor]=\"i\" #menuTrigger=\"matMenuTrigger\"\r\n style=\"z-index: 99999\">\r\n <div class=\"text-menu-button\">\r\n <span>{{ menuCurrent.label | commonTranslate : lang }}</span>\r\n <div class=\"indicator\">\r\n <div class=\"line primary\"></div>\r\n </div>\r\n </div>\r\n <mat-icon class=\"primary-color icon-more\" [ngClass]=\"{ rotated: activeMenu === menuCurrent.label }\">\r\n expand_more\r\n </mat-icon>\r\n </button>\r\n <div class=\"indicator\"></div>\r\n </div>\r\n </mat-toolbar>\r\n\r\n <mat-menu #i=\"matMenu\" [aria-label]=\"menuCurrent.label + '-menu'\" class=\"custom-menu custom-menu-panel\"\r\n [hasBackdrop]=\"false\">\r\n <div class=\"menu-container d-flex\" (click)=\"$event.stopPropagation()\">\r\n <ng-container *ngFor=\"let section of menuCurrent.sections\">\r\n <ng-container *ngxPermissionsOnly=\"section.permissions\">\r\n <ng-container *ngxPermissionsExcept=\"section.restrictions\">\r\n <div class=\"menu-section\">\r\n <h3 class=\"primary-color\">{{ section.label | commonTranslate : lang }}</h3>\r\n <ng-container *ngFor=\"let link of section.links\">\r\n <ng-container *ngxPermissionsOnly=\"link.permissions\">\r\n <button (click)=\"performAction(link)\" *ngxPermissionsExcept=\"link.restrictions\" mat-menu-item\r\n class=\"custom-menu-item\">\r\n {{ link.label | commonTranslate : lang }}\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </mat-menu>\r\n </ng-container>\r\n </ng-container>\r\n</div>\r\n", styles: ["::ng-deep .light-theme .mat-toolbar{background-color:#fff}::ng-deep .dark-theme .mat-toolbar{background-color:#2a2d3e}.mat-icon{overflow:visible}.menu-section{display:flex;flex-direction:column;margin-right:10px}.menu-section h3{margin:0 0 10px 10px;font-size:16px;font-weight:400}.mat-menu-item{padding:5px 0;text-align:left}.mat-menu-item:hover{font-weight:400;color:#3f51b5}.menu-container{padding-left:10px;display:flex;flex-direction:row;gap:30px}.button-wrapper{display:flex;flex-direction:column;position:relative;top:15px;margin-right:.5vw}.toolbar-padding{align-items:start;padding:0!important}.indicator{display:flex;flex-direction:column;align-items:center;margin-top:0}.text-menu-button{display:flex;flex-direction:column;font-size:min(1.2vw,16px)}.line{width:0;height:2px;transition:all .5s ease-in-out;display:block;opacity:0}.button-wrapper.active .line{width:100%;opacity:1}.icon{margin-top:-8px;display:none}.menu-button{all:unset;display:inline-flex;align-items:center;cursor:pointer;background-color:transparent!important;font-weight:700!important;max-width:-moz-fit-content!important;max-width:fit-content!important;font-size:16px;padding-bottom:10px}.menu-button mat-icon{vertical-align:middle}.custom-menu-item{padding-left:10px!important}::ng-deep .mat-mdc-menu-panel.custom-menu-panel{max-width:-moz-fit-content!important;max-width:fit-content!important;overflow:visible!important}.icon-more{display:flex;align-items:center;justify-content:center;transition:transform .5s ease-in-out;font-size:min(1.5vw,24px)!important}.icon-more.rotated{transform:rotate(180deg)}\n"], dependencies: [{ kind: "component", type: i4.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgxPermissionsDirective, selector: "[ngxPermissionsOnly],[ngxPermissionsExcept]", inputs: ["ngxPermissionsOnly", "ngxPermissionsOnlyThen", "ngxPermissionsOnlyElse", "ngxPermissionsExcept", "ngxPermissionsExceptElse", "ngxPermissionsExceptThen", "ngxPermissionsThen", "ngxPermissionsElse", "ngxPermissionsOnlyAuthorisedStrategy", "ngxPermissionsOnlyUnauthorisedStrategy", "ngxPermissionsExceptUnauthorisedStrategy", "ngxPermissionsExceptAuthorisedStrategy", "ngxPermissionsUnauthorisedStrategy", "ngxPermissionsAuthorisedStrategy"], outputs: ["permissionsAuthorized", "permissionsUnauthorized"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i8.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i8.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "pipe", type: i9.CommonTranslatePipe, name: "commonTranslate" }] }); }
82
- }
83
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MenuComponent, decorators: [{
84
- type: Component,
85
- args: [{ selector: 'sc-menu', template: "<div class=\"d-flex justify-content-start\">\r\n <ng-container *ngFor=\"let menuCurrent of menuButtons\" class=\"menu-panel-container\">\r\n <ng-container *ngxPermissionsExcept=\"menuCurrent.restrictions\">\r\n <mat-toolbar class=\"toolbar-padding\">\r\n <div\r\n [attr.aria-label]=\"menuCurrent.label + '-btn'\"\r\n class=\"button-wrapper\"\r\n [ngClass]=\"{ active: activeMenu === menuCurrent.label }\"\r\n *ngxPermissionsOnly=\"menuCurrent.permissions\"\r\n (click)=\"openMenu(menuTrigger, menuCurrent.label)\"\r\n >\r\n <button class=\"menu-button primary-color\" [matMenuTriggerFor]=\"i\" #menuTrigger=\"matMenuTrigger\"\r\n style=\"z-index: 99999\">\r\n <div class=\"text-menu-button\">\r\n <span>{{ menuCurrent.label | commonTranslate : lang }}</span>\r\n <div class=\"indicator\">\r\n <div class=\"line primary\"></div>\r\n </div>\r\n </div>\r\n <mat-icon class=\"primary-color icon-more\" [ngClass]=\"{ rotated: activeMenu === menuCurrent.label }\">\r\n expand_more\r\n </mat-icon>\r\n </button>\r\n <div class=\"indicator\"></div>\r\n </div>\r\n </mat-toolbar>\r\n\r\n <mat-menu #i=\"matMenu\" [aria-label]=\"menuCurrent.label + '-menu'\" class=\"custom-menu custom-menu-panel\"\r\n [hasBackdrop]=\"false\">\r\n <div class=\"menu-container d-flex\" (click)=\"$event.stopPropagation()\">\r\n <ng-container *ngFor=\"let section of menuCurrent.sections\">\r\n <ng-container *ngxPermissionsOnly=\"section.permissions\">\r\n <ng-container *ngxPermissionsExcept=\"section.restrictions\">\r\n <div class=\"menu-section\">\r\n <h3 class=\"primary-color\">{{ section.label | commonTranslate : lang }}</h3>\r\n <ng-container *ngFor=\"let link of section.links\">\r\n <ng-container *ngxPermissionsOnly=\"link.permissions\">\r\n <button (click)=\"performAction(link)\" *ngxPermissionsExcept=\"link.restrictions\" mat-menu-item\r\n class=\"custom-menu-item\">\r\n {{ link.label | commonTranslate : lang }}\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </mat-menu>\r\n </ng-container>\r\n </ng-container>\r\n</div>\r\n", styles: ["::ng-deep .light-theme .mat-toolbar{background-color:#fff}::ng-deep .dark-theme .mat-toolbar{background-color:#2a2d3e}.mat-icon{overflow:visible}.menu-section{display:flex;flex-direction:column;margin-right:10px}.menu-section h3{margin:0 0 10px 10px;font-size:16px;font-weight:400}.mat-menu-item{padding:5px 0;text-align:left}.mat-menu-item:hover{font-weight:400;color:#3f51b5}.menu-container{padding-left:10px;display:flex;flex-direction:row;gap:30px}.button-wrapper{display:flex;flex-direction:column;position:relative;top:15px;margin-right:.5vw}.toolbar-padding{align-items:start;padding:0!important}.indicator{display:flex;flex-direction:column;align-items:center;margin-top:0}.text-menu-button{display:flex;flex-direction:column;font-size:min(1.2vw,16px)}.line{width:0;height:2px;transition:all .5s ease-in-out;display:block;opacity:0}.button-wrapper.active .line{width:100%;opacity:1}.icon{margin-top:-8px;display:none}.menu-button{all:unset;display:inline-flex;align-items:center;cursor:pointer;background-color:transparent!important;font-weight:700!important;max-width:-moz-fit-content!important;max-width:fit-content!important;font-size:16px;padding-bottom:10px}.menu-button mat-icon{vertical-align:middle}.custom-menu-item{padding-left:10px!important}::ng-deep .mat-mdc-menu-panel.custom-menu-panel{max-width:-moz-fit-content!important;max-width:fit-content!important;overflow:visible!important}.icon-more{display:flex;align-items:center;justify-content:center;transition:transform .5s ease-in-out;font-size:min(1.5vw,24px)!important}.icon-more.rotated{transform:rotate(180deg)}\n"] }]
86
- }], ctorParameters: function () { return [{ type: i1.OverlayService }, { type: i2.VideoApiService }, { type: i3.CommercialApiService }]; }, propDecorators: { lang: [{
87
- type: Input
88
- }], navigate: [{
89
- type: Output
90
- }], redirect: [{
91
- type: Output
92
- }], onClickOutside: [{
93
- type: HostListener,
94
- args: ['document:click', ['$event']]
95
- }] } });
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXctZnJvbnQtY29tbW9uLWxpYnJhcnkvc3JjL2xpYi91dGlsL2NvbXBvbmVudC9oZWFkZXIvbWVudS9tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldy1mcm9udC1jb21tb24tbGlicmFyeS9zcmMvbGliL3V0aWwvY29tcG9uZW50L2hlYWRlci9tZW51L21lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLckYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7Ozs7QUFRN0MsTUFBTSxPQUFPLGFBQWE7SUFVeEIsY0FBYyxDQUFDLEtBQWlCO1FBQzlCLE1BQU0sVUFBVSxHQUFJLEtBQUssQ0FBQyxNQUFzQixDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzVFLE1BQU0sVUFBVSxHQUFJLEtBQUssQ0FBQyxNQUFzQixDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRTVFLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDOUIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3ZCO0lBQ0gsQ0FBQztJQUVELFlBQ1UsY0FBOEIsRUFDOUIsZUFBZ0MsRUFDaEMsb0JBQTBDO1FBRjFDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQXBCbkMsYUFBUSxHQUEyQixJQUFJLFlBQVksRUFBWSxDQUFDO1FBQ2hFLGFBQVEsR0FBMkIsSUFBSSxZQUFZLEVBQVksQ0FBQztRQUUxRSxlQUFVLEdBQWtCLElBQUksQ0FBQztRQUN4QixnQkFBVyxHQUFHLGFBQWEsQ0FBQztRQUNwQyxtQkFBYyxHQUEwQixJQUFJLENBQUM7SUFnQmxELENBQUM7SUFFRyxRQUFRLENBQUMsV0FBMkIsRUFBRSxTQUFpQjtRQUM1RCxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN0QixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDNUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxXQUFXLENBQUM7UUFDbEMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFTSxjQUFjO1FBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxjQUFjLEVBQUUsU0FBUyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVNLGtCQUFrQjtRQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxlQUFlLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN2RSxNQUFNLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUM5QixJQUFJLEVBQUUsbUVBQW1FO2FBQzFFLENBQUMsQ0FBQztZQUNILE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDN0MsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNyQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLDhCQUE4QjtRQUNuQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVNLGFBQWEsQ0FBQyxJQUFjO1FBQ2pDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUV0QixRQUFRLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDdkIsS0FBSyxVQUFVO2dCQUNiLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN6QixNQUFNO1lBQ1IsS0FBSyxVQUFVO2dCQUNiLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN6QixNQUFNO1lBQ1IsS0FBSyxzQkFBc0I7Z0JBQ3pCLElBQUksQ0FBQyw4QkFBOEIsRUFBRSxDQUFDO2dCQUN0QyxNQUFNO1lBQ1IsS0FBSyxnQkFBZ0I7Z0JBQ25CLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2dCQUMxQixNQUFNO1lBQ1I7Z0JBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyxzREFBc0QsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUNqRjtJQUNILENBQUM7K0dBL0VVLGFBQWE7bUdBQWIsYUFBYSx1TUNiMUIsMm1GQW9EQTs7NEZEdkNhLGFBQWE7a0JBTHpCLFNBQVM7K0JBQ0UsU0FBUztzS0FLSCxJQUFJO3NCQUFuQixLQUFLO2dCQUNXLFFBQVE7c0JBQXhCLE1BQU07Z0JBQ1UsUUFBUTtzQkFBeEIsTUFBTTtnQkFPUCxjQUFjO3NCQURiLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdE1lbnVUcmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XHJcbmltcG9ydCB7IENvbW1lcmNpYWxBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXBpL2NvbW1lcmNpYWwtYXBpLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBWaWRlb0FwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hcGkvdmlkZW8tYXBpLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBPdmVybGF5U2VydmljZSB9IGZyb20gJy4uLy4uL292ZXJsYXkvb3ZlcmxheS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTUVOVV9TRUNUSU9OUyB9IGZyb20gJy4vbWVudS5jb25zdCc7XHJcbmltcG9ydCB7IE1lbnVMaW5rIH0gZnJvbSAnLi9tZW51Lm1vZGVsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2MtbWVudScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL21lbnUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL21lbnUuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWVudUNvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgcHVibGljIGxhbmchOiBzdHJpbmc7XHJcbiAgQE91dHB1dCgpIHB1YmxpYyBuYXZpZ2F0ZTogRXZlbnRFbWl0dGVyPE1lbnVMaW5rPiA9IG5ldyBFdmVudEVtaXR0ZXI8TWVudUxpbms+KCk7XHJcbiAgQE91dHB1dCgpIHB1YmxpYyByZWRpcmVjdDogRXZlbnRFbWl0dGVyPE1lbnVMaW5rPiA9IG5ldyBFdmVudEVtaXR0ZXI8TWVudUxpbms+KCk7XHJcblxyXG4gIHB1YmxpYyBhY3RpdmVNZW51OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBwdWJsaWMgcmVhZG9ubHkgbWVudUJ1dHRvbnMgPSBNRU5VX1NFQ1RJT05TO1xyXG4gIHByaXZhdGUgbWVudVRyaWdnZXJSZWY6IE1hdE1lbnVUcmlnZ2VyIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcclxuICBvbkNsaWNrT3V0c2lkZShldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgY29uc3QgbWVudUJ1dHRvbiA9IChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsb3Nlc3QoJy5idXR0b24td3JhcHBlcicpO1xyXG4gICAgY29uc3QgaW5zaWRlTWVudSA9IChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsb3Nlc3QoJy5tYXQtbWVudS1wYW5lbCcpO1xyXG5cclxuICAgIGlmICghbWVudUJ1dHRvbiAmJiAhaW5zaWRlTWVudSkge1xyXG4gICAgICB0aGlzLmZvcmNlQ2xvc2VNZW51KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgb3ZlcmxheVNlcnZpY2U6IE92ZXJsYXlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB2aWRlb0FwaVNlcnZpY2U6IFZpZGVvQXBpU2VydmljZSxcclxuICAgIHByaXZhdGUgY29tbWVyY2lhbEFwaVNlcnZpY2U6IENvbW1lcmNpYWxBcGlTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBwdWJsaWMgb3Blbk1lbnUobWVudVRyaWdnZXI6IE1hdE1lbnVUcmlnZ2VyLCBtZW51TGFiZWw6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuYWN0aXZlTWVudSA9PT0gbWVudUxhYmVsKSB7XHJcbiAgICAgIHRoaXMuZm9yY2VDbG9zZU1lbnUoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZm9yY2VDbG9zZU1lbnUoKTtcclxuICAgIHRoaXMuYWN0aXZlTWVudSA9IG1lbnVMYWJlbDtcclxuICAgIHRoaXMubWVudVRyaWdnZXJSZWYgPSBtZW51VHJpZ2dlcjtcclxuICAgIG1lbnVUcmlnZ2VyLm9wZW5NZW51KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZm9yY2VDbG9zZU1lbnUoKTogdm9pZCB7XHJcbiAgICB0aGlzLmFjdGl2ZU1lbnUgPSBudWxsO1xyXG4gICAgdGhpcy5tZW51VHJpZ2dlclJlZj8uY2xvc2VNZW51KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZXh0cmFjdEFsbFByb2R1Y3RzKCkge1xyXG4gICAgdGhpcy5vdmVybGF5U2VydmljZS5zaG93KCk7XHJcbiAgICB0aGlzLnZpZGVvQXBpU2VydmljZS5nZXRQcm9kdWN0RXh0cmFjdGlvblhsc3godGhpcy5sYW5nKS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgY29uc3QgeGxzRmlsZSA9IG5ldyBCbG9iKFtyZXNdLCB7XHJcbiAgICAgICAgdHlwZTogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0J1xyXG4gICAgICB9KTtcclxuICAgICAgY29uc3QgZmlsZVVSTCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoeGxzRmlsZSk7XHJcbiAgICAgIHdpbmRvdy5vcGVuKGZpbGVVUkwpO1xyXG4gICAgICB0aGlzLm92ZXJsYXlTZXJ2aWNlLmhpZGUoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGV4dHJhY3RBY2NvdW50V3JpdHRpbmdEb3dubG9hZCgpOiB2b2lkIHtcclxuICAgIHRoaXMub3ZlcmxheVNlcnZpY2Uuc2hvdygpO1xyXG4gICAgdGhpcy5jb21tZXJjaWFsQXBpU2VydmljZS5nZXRBY2NvdW50V3JpdHRpbmdEb3dubG9hZCgpO1xyXG4gICAgdGhpcy5vdmVybGF5U2VydmljZS5oaWRlKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcGVyZm9ybUFjdGlvbihsaW5rOiBNZW51TGluayk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JjZUNsb3NlTWVudSgpO1xyXG5cclxuICAgIHN3aXRjaCAobGluay5hY3Rpb25UeXBlKSB7XHJcbiAgICAgIGNhc2UgJ25hdmlnYXRlJzpcclxuICAgICAgICB0aGlzLm5hdmlnYXRlLmVtaXQobGluayk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3JlZGlyZWN0JzpcclxuICAgICAgICB0aGlzLnJlZGlyZWN0LmVtaXQobGluayk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2V4cG9ydEFjY291bnRXcml0aW5nJzpcclxuICAgICAgICB0aGlzLmV4dHJhY3RBY2NvdW50V3JpdHRpbmdEb3dubG9hZCgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdleHRyYWN0UHJvZHVjdCc6XHJcbiAgICAgICAgdGhpcy5leHRyYWN0QWxsUHJvZHVjdHMoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHBlcmZvcm1BY3Rpb24gZXJyb3IgLSBObyBhY3Rpb24gdHlwZSBvbiBtZW51TGluayA6ICR7bGlua31gKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnRcIj5cclxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBtZW51Q3VycmVudCBvZiBtZW51QnV0dG9uc1wiIGNsYXNzPVwibWVudS1wYW5lbC1jb250YWluZXJcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5neFBlcm1pc3Npb25zRXhjZXB0PVwibWVudUN1cnJlbnQucmVzdHJpY3Rpb25zXCI+XHJcbiAgICAgIDxtYXQtdG9vbGJhciBjbGFzcz1cInRvb2xiYXItcGFkZGluZ1wiPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibWVudUN1cnJlbnQubGFiZWwgKyAnLWJ0bidcIlxyXG4gICAgICAgICAgY2xhc3M9XCJidXR0b24td3JhcHBlclwiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7IGFjdGl2ZTogYWN0aXZlTWVudSA9PT0gbWVudUN1cnJlbnQubGFiZWwgfVwiXHJcbiAgICAgICAgICAqbmd4UGVybWlzc2lvbnNPbmx5PVwibWVudUN1cnJlbnQucGVybWlzc2lvbnNcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm9wZW5NZW51KG1lbnVUcmlnZ2VyLCBtZW51Q3VycmVudC5sYWJlbClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJtZW51LWJ1dHRvbiBwcmltYXJ5LWNvbG9yXCIgW21hdE1lbnVUcmlnZ2VyRm9yXT1cImlcIiAjbWVudVRyaWdnZXI9XCJtYXRNZW51VHJpZ2dlclwiXHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPVwiei1pbmRleDogOTk5OTlcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbWVudS1idXR0b25cIj5cclxuICAgICAgICAgICAgICA8c3Bhbj57eyBtZW51Q3VycmVudC5sYWJlbCB8IGNvbW1vblRyYW5zbGF0ZSA6IGxhbmcgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluZGljYXRvclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpbmUgcHJpbWFyeVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwicHJpbWFyeS1jb2xvciBpY29uLW1vcmVcIiBbbmdDbGFzc109XCJ7IHJvdGF0ZWQ6IGFjdGl2ZU1lbnUgPT09IG1lbnVDdXJyZW50LmxhYmVsIH1cIj5cclxuICAgICAgICAgICAgICBleHBhbmRfbW9yZVxyXG4gICAgICAgICAgICA8L21hdC1pY29uPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5kaWNhdG9yXCI+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbWF0LXRvb2xiYXI+XHJcblxyXG4gICAgICA8bWF0LW1lbnUgI2k9XCJtYXRNZW51XCIgW2FyaWEtbGFiZWxdPVwibWVudUN1cnJlbnQubGFiZWwgKyAnLW1lbnUnXCIgY2xhc3M9XCJjdXN0b20tbWVudSBjdXN0b20tbWVudS1wYW5lbFwiXHJcbiAgICAgICAgICAgICAgICBbaGFzQmFja2Ryb3BdPVwiZmFsc2VcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWVudS1jb250YWluZXIgZC1mbGV4XCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc2VjdGlvbiBvZiBtZW51Q3VycmVudC5zZWN0aW9uc1wiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ3hQZXJtaXNzaW9uc09ubHk9XCJzZWN0aW9uLnBlcm1pc3Npb25zXCI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmd4UGVybWlzc2lvbnNFeGNlcHQ9XCJzZWN0aW9uLnJlc3RyaWN0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtc2VjdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJwcmltYXJ5LWNvbG9yXCI+e3sgc2VjdGlvbi5sYWJlbCB8IGNvbW1vblRyYW5zbGF0ZSA6IGxhbmcgfX08L2gzPlxyXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBsaW5rIG9mIHNlY3Rpb24ubGlua3NcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ3hQZXJtaXNzaW9uc09ubHk9XCJsaW5rLnBlcm1pc3Npb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJwZXJmb3JtQWN0aW9uKGxpbmspXCIgKm5neFBlcm1pc3Npb25zRXhjZXB0PVwibGluay5yZXN0cmljdGlvbnNcIiBtYXQtbWVudS1pdGVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY3VzdG9tLW1lbnUtaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBsaW5rLmxhYmVsIHwgY29tbW9uVHJhbnNsYXRlIDogbGFuZyB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbWF0LW1lbnU+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+XHJcbiJdfQ==
1
+ import { Component, EventEmitter, HostListener, Input, Output } from '@angular/core';
2
+ import { MENU_SECTIONS } from './menu.const';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../overlay/overlay.service";
5
+ import * as i2 from "../../../services/api/video-api.service";
6
+ import * as i3 from "../../../services/api/commercial-api.service";
7
+ import * as i4 from "@angular/material/toolbar";
8
+ import * as i5 from "@angular/common";
9
+ import * as i6 from "ngx-permissions";
10
+ import * as i7 from "@angular/material/icon";
11
+ import * as i8 from "@angular/material/menu";
12
+ import * as i9 from "../../../pipes/common-translate.pipe";
13
+ export class MenuComponent {
14
+ onClickOutside(event) {
15
+ const menuButton = event.target.closest('.button-wrapper');
16
+ const insideMenu = event.target.closest('.mat-menu-panel');
17
+ if (!menuButton && !insideMenu) {
18
+ this.forceCloseMenu();
19
+ }
20
+ }
21
+ constructor(overlayService, videoApiService, commercialApiService) {
22
+ this.overlayService = overlayService;
23
+ this.videoApiService = videoApiService;
24
+ this.commercialApiService = commercialApiService;
25
+ this.navigate = new EventEmitter();
26
+ this.redirect = new EventEmitter();
27
+ this.activeMenu = null;
28
+ this.menuButtons = MENU_SECTIONS;
29
+ this.menuTriggerRef = null;
30
+ }
31
+ openMenu(menuTrigger, menuLabel) {
32
+ if (this.activeMenu === menuLabel) {
33
+ this.forceCloseMenu();
34
+ return;
35
+ }
36
+ this.forceCloseMenu();
37
+ this.activeMenu = menuLabel;
38
+ this.menuTriggerRef = menuTrigger;
39
+ menuTrigger.openMenu();
40
+ }
41
+ forceCloseMenu() {
42
+ this.activeMenu = null;
43
+ this.menuTriggerRef?.closeMenu();
44
+ }
45
+ extractAllProducts() {
46
+ this.overlayService.show();
47
+ this.videoApiService.getProductExtractionXlsx(this.lang).subscribe(res => {
48
+ const xlsFile = new Blob([res], {
49
+ type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
50
+ });
51
+ const fileURL = URL.createObjectURL(xlsFile);
52
+ window.open(fileURL);
53
+ this.overlayService.hide();
54
+ });
55
+ }
56
+ extractAccountWrittingDownload() {
57
+ this.overlayService.show();
58
+ this.commercialApiService.getAccountWrittingDownload();
59
+ this.overlayService.hide();
60
+ }
61
+ performAction(link) {
62
+ this.forceCloseMenu();
63
+ switch (link.actionType) {
64
+ case 'navigate':
65
+ this.navigate.emit(link);
66
+ break;
67
+ case 'redirect':
68
+ this.redirect.emit(link);
69
+ break;
70
+ case 'exportAccountWriting':
71
+ this.extractAccountWrittingDownload();
72
+ break;
73
+ case 'extractProduct':
74
+ this.extractAllProducts();
75
+ break;
76
+ default:
77
+ throw new Error(`performAction error - No action type on menuLink : ${link}`);
78
+ }
79
+ }
80
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MenuComponent, deps: [{ token: i1.OverlayService }, { token: i2.VideoApiService }, { token: i3.CommercialApiService }], target: i0.ɵɵFactoryTarget.Component }); }
81
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MenuComponent, selector: "sc-menu", inputs: { lang: "lang" }, outputs: { navigate: "navigate", redirect: "redirect" }, host: { listeners: { "document:click": "onClickOutside($event)" } }, ngImport: i0, template: "<div class=\"d-flex justify-content-start\">\n <ng-container *ngFor=\"let menuCurrent of menuButtons\" class=\"menu-panel-container\">\n <ng-container *ngxPermissionsExcept=\"menuCurrent.restrictions\">\n <mat-toolbar class=\"toolbar-padding\">\n <div\n [attr.aria-label]=\"menuCurrent.label + '-btn'\"\n class=\"button-wrapper\"\n [ngClass]=\"{ active: activeMenu === menuCurrent.label }\"\n *ngxPermissionsOnly=\"menuCurrent.permissions\"\n (click)=\"openMenu(menuTrigger, menuCurrent.label)\"\n >\n <button class=\"menu-button primary-color\" [matMenuTriggerFor]=\"i\" #menuTrigger=\"matMenuTrigger\"\n style=\"z-index: 99999\">\n <div class=\"text-menu-button\">\n <span>{{ menuCurrent.label | commonTranslate : lang }}</span>\n <div class=\"indicator\">\n <div class=\"line primary\"></div>\n </div>\n </div>\n <mat-icon class=\"primary-color icon-more\" [ngClass]=\"{ rotated: activeMenu === menuCurrent.label }\">\n expand_more\n </mat-icon>\n </button>\n <div class=\"indicator\"></div>\n </div>\n </mat-toolbar>\n\n <mat-menu #i=\"matMenu\" [aria-label]=\"menuCurrent.label + '-menu'\" class=\"custom-menu custom-menu-panel\"\n [hasBackdrop]=\"false\">\n <div class=\"menu-container d-flex\" (click)=\"$event.stopPropagation()\">\n <ng-container *ngFor=\"let section of menuCurrent.sections\">\n <ng-container *ngxPermissionsOnly=\"section.permissions\">\n <ng-container *ngxPermissionsExcept=\"section.restrictions\">\n <div class=\"menu-section\">\n <h3 class=\"primary-color\">{{ section.label | commonTranslate : lang }}</h3>\n <ng-container *ngFor=\"let link of section.links\">\n <ng-container *ngxPermissionsOnly=\"link.permissions\">\n <button (click)=\"performAction(link)\" *ngxPermissionsExcept=\"link.restrictions\" mat-menu-item\n class=\"custom-menu-item\">\n {{ link.label | commonTranslate : lang }}\n </button>\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </mat-menu>\n </ng-container>\n </ng-container>\n</div>\n", styles: ["::ng-deep .light-theme .mat-toolbar{background-color:#fff}::ng-deep .dark-theme .mat-toolbar{background-color:#2a2d3e}.mat-icon{overflow:visible}.menu-section{display:flex;flex-direction:column;margin-right:10px}.menu-section h3{margin:0 0 10px 10px;font-size:16px;font-weight:400}.mat-menu-item{padding:5px 0;text-align:left}.mat-menu-item:hover{font-weight:400;color:#3f51b5}.menu-container{padding-left:10px;display:flex;flex-direction:row;gap:30px}.button-wrapper{display:flex;flex-direction:column;position:relative;top:15px;margin-right:.5vw}.toolbar-padding{align-items:start;padding:0!important}.indicator{display:flex;flex-direction:column;align-items:center;margin-top:0}.text-menu-button{display:flex;flex-direction:column;font-size:min(1.2vw,16px)}.line{width:0;height:2px;transition:all .5s ease-in-out;display:block;opacity:0}.button-wrapper.active .line{width:100%;opacity:1}.icon{margin-top:-8px;display:none}.menu-button{all:unset;display:inline-flex;align-items:center;cursor:pointer;background-color:transparent!important;font-weight:700!important;max-width:-moz-fit-content!important;max-width:fit-content!important;font-size:16px;padding-bottom:10px}.menu-button mat-icon{vertical-align:middle}.custom-menu-item{padding-left:10px!important}::ng-deep .mat-mdc-menu-panel.custom-menu-panel{max-width:-moz-fit-content!important;max-width:fit-content!important;overflow:visible!important}.icon-more{display:flex;align-items:center;justify-content:center;transition:transform .5s ease-in-out;font-size:min(1.5vw,24px)!important}.icon-more.rotated{transform:rotate(180deg)}\n"], dependencies: [{ kind: "component", type: i4.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgxPermissionsDirective, selector: "[ngxPermissionsOnly],[ngxPermissionsExcept]", inputs: ["ngxPermissionsOnly", "ngxPermissionsOnlyThen", "ngxPermissionsOnlyElse", "ngxPermissionsExcept", "ngxPermissionsExceptElse", "ngxPermissionsExceptThen", "ngxPermissionsThen", "ngxPermissionsElse", "ngxPermissionsOnlyAuthorisedStrategy", "ngxPermissionsOnlyUnauthorisedStrategy", "ngxPermissionsExceptUnauthorisedStrategy", "ngxPermissionsExceptAuthorisedStrategy", "ngxPermissionsUnauthorisedStrategy", "ngxPermissionsAuthorisedStrategy"], outputs: ["permissionsAuthorized", "permissionsUnauthorized"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i8.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i8.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "pipe", type: i9.CommonTranslatePipe, name: "commonTranslate" }] }); }
82
+ }
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MenuComponent, decorators: [{
84
+ type: Component,
85
+ args: [{ selector: 'sc-menu', template: "<div class=\"d-flex justify-content-start\">\n <ng-container *ngFor=\"let menuCurrent of menuButtons\" class=\"menu-panel-container\">\n <ng-container *ngxPermissionsExcept=\"menuCurrent.restrictions\">\n <mat-toolbar class=\"toolbar-padding\">\n <div\n [attr.aria-label]=\"menuCurrent.label + '-btn'\"\n class=\"button-wrapper\"\n [ngClass]=\"{ active: activeMenu === menuCurrent.label }\"\n *ngxPermissionsOnly=\"menuCurrent.permissions\"\n (click)=\"openMenu(menuTrigger, menuCurrent.label)\"\n >\n <button class=\"menu-button primary-color\" [matMenuTriggerFor]=\"i\" #menuTrigger=\"matMenuTrigger\"\n style=\"z-index: 99999\">\n <div class=\"text-menu-button\">\n <span>{{ menuCurrent.label | commonTranslate : lang }}</span>\n <div class=\"indicator\">\n <div class=\"line primary\"></div>\n </div>\n </div>\n <mat-icon class=\"primary-color icon-more\" [ngClass]=\"{ rotated: activeMenu === menuCurrent.label }\">\n expand_more\n </mat-icon>\n </button>\n <div class=\"indicator\"></div>\n </div>\n </mat-toolbar>\n\n <mat-menu #i=\"matMenu\" [aria-label]=\"menuCurrent.label + '-menu'\" class=\"custom-menu custom-menu-panel\"\n [hasBackdrop]=\"false\">\n <div class=\"menu-container d-flex\" (click)=\"$event.stopPropagation()\">\n <ng-container *ngFor=\"let section of menuCurrent.sections\">\n <ng-container *ngxPermissionsOnly=\"section.permissions\">\n <ng-container *ngxPermissionsExcept=\"section.restrictions\">\n <div class=\"menu-section\">\n <h3 class=\"primary-color\">{{ section.label | commonTranslate : lang }}</h3>\n <ng-container *ngFor=\"let link of section.links\">\n <ng-container *ngxPermissionsOnly=\"link.permissions\">\n <button (click)=\"performAction(link)\" *ngxPermissionsExcept=\"link.restrictions\" mat-menu-item\n class=\"custom-menu-item\">\n {{ link.label | commonTranslate : lang }}\n </button>\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </mat-menu>\n </ng-container>\n </ng-container>\n</div>\n", styles: ["::ng-deep .light-theme .mat-toolbar{background-color:#fff}::ng-deep .dark-theme .mat-toolbar{background-color:#2a2d3e}.mat-icon{overflow:visible}.menu-section{display:flex;flex-direction:column;margin-right:10px}.menu-section h3{margin:0 0 10px 10px;font-size:16px;font-weight:400}.mat-menu-item{padding:5px 0;text-align:left}.mat-menu-item:hover{font-weight:400;color:#3f51b5}.menu-container{padding-left:10px;display:flex;flex-direction:row;gap:30px}.button-wrapper{display:flex;flex-direction:column;position:relative;top:15px;margin-right:.5vw}.toolbar-padding{align-items:start;padding:0!important}.indicator{display:flex;flex-direction:column;align-items:center;margin-top:0}.text-menu-button{display:flex;flex-direction:column;font-size:min(1.2vw,16px)}.line{width:0;height:2px;transition:all .5s ease-in-out;display:block;opacity:0}.button-wrapper.active .line{width:100%;opacity:1}.icon{margin-top:-8px;display:none}.menu-button{all:unset;display:inline-flex;align-items:center;cursor:pointer;background-color:transparent!important;font-weight:700!important;max-width:-moz-fit-content!important;max-width:fit-content!important;font-size:16px;padding-bottom:10px}.menu-button mat-icon{vertical-align:middle}.custom-menu-item{padding-left:10px!important}::ng-deep .mat-mdc-menu-panel.custom-menu-panel{max-width:-moz-fit-content!important;max-width:fit-content!important;overflow:visible!important}.icon-more{display:flex;align-items:center;justify-content:center;transition:transform .5s ease-in-out;font-size:min(1.5vw,24px)!important}.icon-more.rotated{transform:rotate(180deg)}\n"] }]
86
+ }], ctorParameters: function () { return [{ type: i1.OverlayService }, { type: i2.VideoApiService }, { type: i3.CommercialApiService }]; }, propDecorators: { lang: [{
87
+ type: Input
88
+ }], navigate: [{
89
+ type: Output
90
+ }], redirect: [{
91
+ type: Output
92
+ }], onClickOutside: [{
93
+ type: HostListener,
94
+ args: ['document:click', ['$event']]
95
+ }] } });
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXctZnJvbnQtY29tbW9uLWxpYnJhcnkvc3JjL2xpYi91dGlsL2NvbXBvbmVudC9oZWFkZXIvbWVudS9tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldy1mcm9udC1jb21tb24tbGlicmFyeS9zcmMvbGliL3V0aWwvY29tcG9uZW50L2hlYWRlci9tZW51L21lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLckYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7Ozs7QUFRN0MsTUFBTSxPQUFPLGFBQWE7SUFVeEIsY0FBYyxDQUFDLEtBQWlCO1FBQzlCLE1BQU0sVUFBVSxHQUFJLEtBQUssQ0FBQyxNQUFzQixDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzVFLE1BQU0sVUFBVSxHQUFJLEtBQUssQ0FBQyxNQUFzQixDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRTVFLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDOUIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3ZCO0lBQ0gsQ0FBQztJQUVELFlBQ1UsY0FBOEIsRUFDOUIsZUFBZ0MsRUFDaEMsb0JBQTBDO1FBRjFDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQXBCbkMsYUFBUSxHQUEyQixJQUFJLFlBQVksRUFBWSxDQUFDO1FBQ2hFLGFBQVEsR0FBMkIsSUFBSSxZQUFZLEVBQVksQ0FBQztRQUUxRSxlQUFVLEdBQWtCLElBQUksQ0FBQztRQUN4QixnQkFBVyxHQUFHLGFBQWEsQ0FBQztRQUNwQyxtQkFBYyxHQUEwQixJQUFJLENBQUM7SUFnQmxELENBQUM7SUFFRyxRQUFRLENBQUMsV0FBMkIsRUFBRSxTQUFpQjtRQUM1RCxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN0QixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDNUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxXQUFXLENBQUM7UUFDbEMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFTSxjQUFjO1FBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxjQUFjLEVBQUUsU0FBUyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVNLGtCQUFrQjtRQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxlQUFlLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN2RSxNQUFNLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUM5QixJQUFJLEVBQUUsbUVBQW1FO2FBQzFFLENBQUMsQ0FBQztZQUNILE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDN0MsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNyQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLDhCQUE4QjtRQUNuQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVNLGFBQWEsQ0FBQyxJQUFjO1FBQ2pDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUV0QixRQUFRLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDdkIsS0FBSyxVQUFVO2dCQUNiLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN6QixNQUFNO1lBQ1IsS0FBSyxVQUFVO2dCQUNiLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN6QixNQUFNO1lBQ1IsS0FBSyxzQkFBc0I7Z0JBQ3pCLElBQUksQ0FBQyw4QkFBOEIsRUFBRSxDQUFDO2dCQUN0QyxNQUFNO1lBQ1IsS0FBSyxnQkFBZ0I7Z0JBQ25CLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2dCQUMxQixNQUFNO1lBQ1I7Z0JBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyxzREFBc0QsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUNqRjtJQUNILENBQUM7K0dBL0VVLGFBQWE7bUdBQWIsYUFBYSx1TUNiMUIsbWdGQW9EQTs7NEZEdkNhLGFBQWE7a0JBTHpCLFNBQVM7K0JBQ0UsU0FBUztzS0FLSCxJQUFJO3NCQUFuQixLQUFLO2dCQUNXLFFBQVE7c0JBQXhCLE1BQU07Z0JBQ1UsUUFBUTtzQkFBeEIsTUFBTTtnQkFPUCxjQUFjO3NCQURiLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRNZW51VHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgQ29tbWVyY2lhbEFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hcGkvY29tbWVyY2lhbC1hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBWaWRlb0FwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hcGkvdmlkZW8tYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgT3ZlcmxheVNlcnZpY2UgfSBmcm9tICcuLi8uLi9vdmVybGF5L292ZXJsYXkuc2VydmljZSc7XG5pbXBvcnQgeyBNRU5VX1NFQ1RJT05TIH0gZnJvbSAnLi9tZW51LmNvbnN0JztcbmltcG9ydCB7IE1lbnVMaW5rIH0gZnJvbSAnLi9tZW51Lm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2MtbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWVudS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIE1lbnVDb21wb25lbnQge1xuICBASW5wdXQoKSBwdWJsaWMgbGFuZyE6IHN0cmluZztcbiAgQE91dHB1dCgpIHB1YmxpYyBuYXZpZ2F0ZTogRXZlbnRFbWl0dGVyPE1lbnVMaW5rPiA9IG5ldyBFdmVudEVtaXR0ZXI8TWVudUxpbms+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgcmVkaXJlY3Q6IEV2ZW50RW1pdHRlcjxNZW51TGluaz4gPSBuZXcgRXZlbnRFbWl0dGVyPE1lbnVMaW5rPigpO1xuXG4gIHB1YmxpYyBhY3RpdmVNZW51OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgcHVibGljIHJlYWRvbmx5IG1lbnVCdXR0b25zID0gTUVOVV9TRUNUSU9OUztcbiAgcHJpdmF0ZSBtZW51VHJpZ2dlclJlZjogTWF0TWVudVRyaWdnZXIgfCBudWxsID0gbnVsbDtcblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXG4gIG9uQ2xpY2tPdXRzaWRlKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgbWVudUJ1dHRvbiA9IChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsb3Nlc3QoJy5idXR0b24td3JhcHBlcicpO1xuICAgIGNvbnN0IGluc2lkZU1lbnUgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5jbG9zZXN0KCcubWF0LW1lbnUtcGFuZWwnKTtcblxuICAgIGlmICghbWVudUJ1dHRvbiAmJiAhaW5zaWRlTWVudSkge1xuICAgICAgdGhpcy5mb3JjZUNsb3NlTWVudSgpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgb3ZlcmxheVNlcnZpY2U6IE92ZXJsYXlTZXJ2aWNlLFxuICAgIHByaXZhdGUgdmlkZW9BcGlTZXJ2aWNlOiBWaWRlb0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb21tZXJjaWFsQXBpU2VydmljZTogQ29tbWVyY2lhbEFwaVNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBvcGVuTWVudShtZW51VHJpZ2dlcjogTWF0TWVudVRyaWdnZXIsIG1lbnVMYWJlbDogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYWN0aXZlTWVudSA9PT0gbWVudUxhYmVsKSB7XG4gICAgICB0aGlzLmZvcmNlQ2xvc2VNZW51KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5mb3JjZUNsb3NlTWVudSgpO1xuICAgIHRoaXMuYWN0aXZlTWVudSA9IG1lbnVMYWJlbDtcbiAgICB0aGlzLm1lbnVUcmlnZ2VyUmVmID0gbWVudVRyaWdnZXI7XG4gICAgbWVudVRyaWdnZXIub3Blbk1lbnUoKTtcbiAgfVxuXG4gIHB1YmxpYyBmb3JjZUNsb3NlTWVudSgpOiB2b2lkIHtcbiAgICB0aGlzLmFjdGl2ZU1lbnUgPSBudWxsO1xuICAgIHRoaXMubWVudVRyaWdnZXJSZWY/LmNsb3NlTWVudSgpO1xuICB9XG5cbiAgcHVibGljIGV4dHJhY3RBbGxQcm9kdWN0cygpIHtcbiAgICB0aGlzLm92ZXJsYXlTZXJ2aWNlLnNob3coKTtcbiAgICB0aGlzLnZpZGVvQXBpU2VydmljZS5nZXRQcm9kdWN0RXh0cmFjdGlvblhsc3godGhpcy5sYW5nKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIGNvbnN0IHhsc0ZpbGUgPSBuZXcgQmxvYihbcmVzXSwge1xuICAgICAgICB0eXBlOiAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQnXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGZpbGVVUkwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKHhsc0ZpbGUpO1xuICAgICAgd2luZG93Lm9wZW4oZmlsZVVSTCk7XG4gICAgICB0aGlzLm92ZXJsYXlTZXJ2aWNlLmhpZGUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBleHRyYWN0QWNjb3VudFdyaXR0aW5nRG93bmxvYWQoKTogdm9pZCB7XG4gICAgdGhpcy5vdmVybGF5U2VydmljZS5zaG93KCk7XG4gICAgdGhpcy5jb21tZXJjaWFsQXBpU2VydmljZS5nZXRBY2NvdW50V3JpdHRpbmdEb3dubG9hZCgpO1xuICAgIHRoaXMub3ZlcmxheVNlcnZpY2UuaGlkZSgpO1xuICB9XG5cbiAgcHVibGljIHBlcmZvcm1BY3Rpb24obGluazogTWVudUxpbmspOiB2b2lkIHtcbiAgICB0aGlzLmZvcmNlQ2xvc2VNZW51KCk7XG5cbiAgICBzd2l0Y2ggKGxpbmsuYWN0aW9uVHlwZSkge1xuICAgICAgY2FzZSAnbmF2aWdhdGUnOlxuICAgICAgICB0aGlzLm5hdmlnYXRlLmVtaXQobGluayk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncmVkaXJlY3QnOlxuICAgICAgICB0aGlzLnJlZGlyZWN0LmVtaXQobGluayk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZXhwb3J0QWNjb3VudFdyaXRpbmcnOlxuICAgICAgICB0aGlzLmV4dHJhY3RBY2NvdW50V3JpdHRpbmdEb3dubG9hZCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2V4dHJhY3RQcm9kdWN0JzpcbiAgICAgICAgdGhpcy5leHRyYWN0QWxsUHJvZHVjdHMoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHBlcmZvcm1BY3Rpb24gZXJyb3IgLSBObyBhY3Rpb24gdHlwZSBvbiBtZW51TGluayA6ICR7bGlua31gKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LXN0YXJ0XCI+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG1lbnVDdXJyZW50IG9mIG1lbnVCdXR0b25zXCIgY2xhc3M9XCJtZW51LXBhbmVsLWNvbnRhaW5lclwiPlxuICAgIDxuZy1jb250YWluZXIgKm5neFBlcm1pc3Npb25zRXhjZXB0PVwibWVudUN1cnJlbnQucmVzdHJpY3Rpb25zXCI+XG4gICAgICA8bWF0LXRvb2xiYXIgY2xhc3M9XCJ0b29sYmFyLXBhZGRpbmdcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibWVudUN1cnJlbnQubGFiZWwgKyAnLWJ0bidcIlxuICAgICAgICAgIGNsYXNzPVwiYnV0dG9uLXdyYXBwZXJcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsgYWN0aXZlOiBhY3RpdmVNZW51ID09PSBtZW51Q3VycmVudC5sYWJlbCB9XCJcbiAgICAgICAgICAqbmd4UGVybWlzc2lvbnNPbmx5PVwibWVudUN1cnJlbnQucGVybWlzc2lvbnNcIlxuICAgICAgICAgIChjbGljayk9XCJvcGVuTWVudShtZW51VHJpZ2dlciwgbWVudUN1cnJlbnQubGFiZWwpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJtZW51LWJ1dHRvbiBwcmltYXJ5LWNvbG9yXCIgW21hdE1lbnVUcmlnZ2VyRm9yXT1cImlcIiAjbWVudVRyaWdnZXI9XCJtYXRNZW51VHJpZ2dlclwiXG4gICAgICAgICAgICAgICAgICBzdHlsZT1cInotaW5kZXg6IDk5OTk5XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1tZW51LWJ1dHRvblwiPlxuICAgICAgICAgICAgICA8c3Bhbj57eyBtZW51Q3VycmVudC5sYWJlbCB8IGNvbW1vblRyYW5zbGF0ZSA6IGxhbmcgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbmRpY2F0b3JcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGluZSBwcmltYXJ5XCI+PC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJwcmltYXJ5LWNvbG9yIGljb24tbW9yZVwiIFtuZ0NsYXNzXT1cInsgcm90YXRlZDogYWN0aXZlTWVudSA9PT0gbWVudUN1cnJlbnQubGFiZWwgfVwiPlxuICAgICAgICAgICAgICBleHBhbmRfbW9yZVxuICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5kaWNhdG9yXCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9tYXQtdG9vbGJhcj5cblxuICAgICAgPG1hdC1tZW51ICNpPVwibWF0TWVudVwiIFthcmlhLWxhYmVsXT1cIm1lbnVDdXJyZW50LmxhYmVsICsgJy1tZW51J1wiIGNsYXNzPVwiY3VzdG9tLW1lbnUgY3VzdG9tLW1lbnUtcGFuZWxcIlxuICAgICAgICAgICAgICAgIFtoYXNCYWNrZHJvcF09XCJmYWxzZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWVudS1jb250YWluZXIgZC1mbGV4XCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHNlY3Rpb24gb2YgbWVudUN1cnJlbnQuc2VjdGlvbnNcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5neFBlcm1pc3Npb25zT25seT1cInNlY3Rpb24ucGVybWlzc2lvbnNcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmd4UGVybWlzc2lvbnNFeGNlcHQ9XCJzZWN0aW9uLnJlc3RyaWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LXNlY3Rpb25cIj5cbiAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInByaW1hcnktY29sb3JcIj57eyBzZWN0aW9uLmxhYmVsIHwgY29tbW9uVHJhbnNsYXRlIDogbGFuZyB9fTwvaDM+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBsaW5rIG9mIHNlY3Rpb24ubGlua3NcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmd4UGVybWlzc2lvbnNPbmx5PVwibGluay5wZXJtaXNzaW9uc1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInBlcmZvcm1BY3Rpb24obGluaylcIiAqbmd4UGVybWlzc2lvbnNFeGNlcHQ9XCJsaW5rLnJlc3RyaWN0aW9uc1wiIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY3VzdG9tLW1lbnUtaXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgbGluay5sYWJlbCB8IGNvbW1vblRyYW5zbGF0ZSA6IGxhbmcgfX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L21hdC1tZW51PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19