@tilde-nlp/ngx-common 4.0.28 → 5.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (497) hide show
  1. package/esm2022/lib/close-button/close-button.component.mjs +34 -34
  2. package/esm2022/lib/close-button/close-button.module.mjs +36 -36
  3. package/esm2022/lib/close-button/index.mjs +2 -2
  4. package/esm2022/lib/company-product/company-product.component.mjs +20 -20
  5. package/esm2022/lib/company-product/company-product.module.mjs +22 -22
  6. package/esm2022/lib/company-product/index.mjs +2 -2
  7. package/esm2022/lib/confirmation-modal/confirmation-modal.component.mjs +25 -25
  8. package/esm2022/lib/confirmation-modal/confirmation-modal.module.mjs +21 -21
  9. package/esm2022/lib/confirmation-modal/index.mjs +5 -5
  10. package/esm2022/lib/confirmation-modal/models/confirmation-body.model.mjs +1 -1
  11. package/esm2022/lib/confirmation-modal/models/confirmation.enum.mjs +5 -5
  12. package/esm2022/lib/confirmation-modal/services/confirmation.service.mjs +25 -25
  13. package/esm2022/lib/confirmation-modal/services/index.mjs +1 -1
  14. package/esm2022/lib/constants/index.mjs +1 -1
  15. package/esm2022/lib/constants/screen-size.const.mjs +10 -10
  16. package/esm2022/lib/directives/click-outside/click-outside.directive.mjs +29 -29
  17. package/esm2022/lib/directives/click-outside/click-outside.module.mjs +24 -24
  18. package/esm2022/lib/directives/click-outside/index.mjs +2 -2
  19. package/esm2022/lib/directives/drag-and-drop/drag-and-drop.directive.mjs +62 -62
  20. package/esm2022/lib/directives/drag-and-drop/drag-and-drop.module.mjs +24 -24
  21. package/esm2022/lib/directives/drag-and-drop/index.mjs +2 -2
  22. package/esm2022/lib/directives/index.mjs +3 -3
  23. package/esm2022/lib/directives/mat-button-loading/index.mjs +2 -2
  24. package/esm2022/lib/directives/mat-button-loading/mat-button-loading.directive.mjs +59 -59
  25. package/esm2022/lib/directives/mat-button-loading/mat-button-loading.module.mjs +20 -20
  26. package/esm2022/lib/extension-dialog/components/index.mjs +1 -1
  27. package/esm2022/lib/extension-dialog/components/open-extension-dialog/open-extension-dialog.component.mjs +22 -22
  28. package/esm2022/lib/extension-dialog/extension-dialog.component.mjs +142 -142
  29. package/esm2022/lib/extension-dialog/extension-dialog.module.mjs +51 -51
  30. package/esm2022/lib/extension-dialog/icons/file-types/excel.icon.mjs +1 -1
  31. package/esm2022/lib/extension-dialog/icons/file-types/index.mjs +9 -9
  32. package/esm2022/lib/extension-dialog/icons/file-types/interchange.icon.mjs +1 -1
  33. package/esm2022/lib/extension-dialog/icons/file-types/office-other.icon.mjs +1 -1
  34. package/esm2022/lib/extension-dialog/icons/file-types/other.icon.mjs +1 -1
  35. package/esm2022/lib/extension-dialog/icons/file-types/pdf.icon.mjs +1 -1
  36. package/esm2022/lib/extension-dialog/icons/file-types/powerpoint.icon.mjs +1 -1
  37. package/esm2022/lib/extension-dialog/icons/file-types/scanned.icon.mjs +1 -1
  38. package/esm2022/lib/extension-dialog/icons/file-types/web.icon.mjs +1 -1
  39. package/esm2022/lib/extension-dialog/icons/file-types/word.icon.mjs +1 -1
  40. package/esm2022/lib/extension-dialog/icons/index.mjs +1 -1
  41. package/esm2022/lib/extension-dialog/index.mjs +5 -5
  42. package/esm2022/lib/extension-dialog/models/enums/file-categories.enum.mjs +8 -8
  43. package/esm2022/lib/extension-dialog/models/enums/file-extensions.enum.mjs +34 -34
  44. package/esm2022/lib/extension-dialog/models/enums/file-type-icons.enum.mjs +12 -12
  45. package/esm2022/lib/extension-dialog/models/enums/file-types.enum.mjs +12 -12
  46. package/esm2022/lib/extension-dialog/models/enums/index.mjs +4 -4
  47. package/esm2022/lib/extension-dialog/models/index.mjs +2 -2
  48. package/esm2022/lib/extension-dialog/models/interfaces/config.mjs +1 -1
  49. package/esm2022/lib/extension-dialog/models/interfaces/dialog-data.model.mjs +1 -1
  50. package/esm2022/lib/extension-dialog/models/interfaces/index.mjs +2 -2
  51. package/esm2022/lib/extension-dialog/services/extension-dialog.service.mjs +22 -22
  52. package/esm2022/lib/extension-dialog/services/index.mjs +1 -1
  53. package/esm2022/lib/file-upload/file-upload.component.mjs +107 -107
  54. package/esm2022/lib/file-upload/file-upload.module.mjs +42 -42
  55. package/esm2022/lib/file-upload/index.mjs +3 -3
  56. package/esm2022/lib/file-upload/models/file-upload-error-type.enum.mjs +7 -7
  57. package/esm2022/lib/file-upload/models/file-upload-error.model.mjs +1 -1
  58. package/esm2022/lib/file-upload/models/index.mjs +2 -2
  59. package/esm2022/lib/filter-bar/filter-bar.component.mjs +146 -146
  60. package/esm2022/lib/filter-bar/filter-bar.module.mjs +71 -71
  61. package/esm2022/lib/filter-bar/index.mjs +3 -3
  62. package/esm2022/lib/filter-bar/models/filter-bar-change-event.model.mjs +1 -1
  63. package/esm2022/lib/filter-bar/models/filter-bar-filter-item.model.mjs +1 -1
  64. package/esm2022/lib/filter-bar/models/filter-bar-filter.model.mjs +1 -1
  65. package/esm2022/lib/filter-bar/models/filter-bar-settings.model.mjs +1 -1
  66. package/esm2022/lib/filter-bar/models/index.mjs +3 -3
  67. package/esm2022/lib/footer/footer.component.mjs +37 -37
  68. package/esm2022/lib/footer/footer.module.mjs +34 -34
  69. package/esm2022/lib/footer/index.mjs +2 -2
  70. package/esm2022/lib/helpers/auth-headers.helper.mjs +24 -21
  71. package/esm2022/lib/helpers/conversion.helper.mjs +10 -10
  72. package/esm2022/lib/helpers/file-extension.helper.mjs +5 -5
  73. package/esm2022/lib/helpers/html-element-parse.helper.mjs +15 -15
  74. package/esm2022/lib/helpers/html.helper.mjs +54 -54
  75. package/esm2022/lib/helpers/index.mjs +9 -9
  76. package/esm2022/lib/helpers/missing-translation.helper.mjs +6 -6
  77. package/esm2022/lib/helpers/resolution.helper.mjs +6 -6
  78. package/esm2022/lib/helpers/save-file.helper.mjs +10 -10
  79. package/esm2022/lib/helpers/sort.helper.mjs +11 -10
  80. package/esm2022/lib/inline-message/index.mjs +3 -3
  81. package/esm2022/lib/inline-message/inline-message.component.mjs +23 -23
  82. package/esm2022/lib/inline-message/inline-message.module.mjs +32 -32
  83. package/esm2022/lib/inline-message/models/index.mjs +3 -3
  84. package/esm2022/lib/inline-message/models/inline-message-icon-position.enum.mjs +5 -5
  85. package/esm2022/lib/inline-message/models/inline-message-type.enum.mjs +6 -6
  86. package/esm2022/lib/inline-message/models/inline-message.model.mjs +1 -1
  87. package/esm2022/lib/multi-functional-table/constants/disable-export-attribute-name.const.mjs +1 -1
  88. package/esm2022/lib/multi-functional-table/constants/index.mjs +1 -1
  89. package/esm2022/lib/multi-functional-table/index.mjs +4 -4
  90. package/esm2022/lib/multi-functional-table/models/batch-config.model.mjs +1 -1
  91. package/esm2022/lib/multi-functional-table/models/column-config.model.mjs +1 -1
  92. package/esm2022/lib/multi-functional-table/models/column-select-config.model.mjs +1 -1
  93. package/esm2022/lib/multi-functional-table/models/export-config.model.mjs +1 -1
  94. package/esm2022/lib/multi-functional-table/models/export-format.enum.mjs +4 -4
  95. package/esm2022/lib/multi-functional-table/models/filter-config.model.mjs +2 -2
  96. package/esm2022/lib/multi-functional-table/models/index.mjs +6 -6
  97. package/esm2022/lib/multi-functional-table/models/multi-functional-table-config.model.mjs +1 -1
  98. package/esm2022/lib/multi-functional-table/models/selected-column-local-storage-config.model.mjs +1 -1
  99. package/esm2022/lib/multi-functional-table/multi-functional-table.component.mjs +228 -229
  100. package/esm2022/lib/multi-functional-table/multi-functional-table.module.mjs +72 -72
  101. package/esm2022/lib/notification-message/enums/index.mjs +1 -1
  102. package/esm2022/lib/notification-message/enums/notification-message-type.enum.mjs +8 -8
  103. package/esm2022/lib/notification-message/index.mjs +4 -4
  104. package/esm2022/lib/notification-message/interfaces/index.mjs +1 -1
  105. package/esm2022/lib/notification-message/interfaces/notification-message.model.mjs +1 -1
  106. package/esm2022/lib/notification-message/notification-message.component.mjs +52 -52
  107. package/esm2022/lib/notification-message/notification-message.module.mjs +44 -44
  108. package/esm2022/lib/open-close-button/index.mjs +4 -4
  109. package/esm2022/lib/open-close-button/injection-tokens/index.mjs +1 -1
  110. package/esm2022/lib/open-close-button/injection-tokens/open-close-btn-icons.token.mjs +1 -1
  111. package/esm2022/lib/open-close-button/models/index.mjs +1 -1
  112. package/esm2022/lib/open-close-button/models/open-close-btn-icons.model.mjs +1 -1
  113. package/esm2022/lib/open-close-button/open-close-button.component.mjs +53 -53
  114. package/esm2022/lib/open-close-button/open-close-button.module.mjs +21 -21
  115. package/esm2022/lib/pipes/date-ago/date-ago.module.mjs +28 -28
  116. package/esm2022/lib/pipes/date-ago/date-ago.pipe.mjs +114 -114
  117. package/esm2022/lib/pipes/date-ago/index.mjs +2 -2
  118. package/esm2022/lib/pipes/date-ago/models/date-ago-interval.model.mjs +1 -1
  119. package/esm2022/lib/pipes/date-ago/models/date-ago-settings.model.mjs +1 -1
  120. package/esm2022/lib/pipes/date-ago/models/date-ago-settings.token.mjs +1 -1
  121. package/esm2022/lib/pipes/date-ago/models/date-ago.model.mjs +1 -1
  122. package/esm2022/lib/pipes/date-ago/models/index.mjs +4 -4
  123. package/esm2022/lib/pipes/filter-with-highlight/filter-with-highlight.module.mjs +24 -24
  124. package/esm2022/lib/pipes/filter-with-highlight/filter-with-highlight.pipe.mjs +43 -42
  125. package/esm2022/lib/pipes/filter-with-highlight/index.mjs +2 -2
  126. package/esm2022/lib/pipes/index.mjs +6 -7
  127. package/esm2022/lib/pipes/language-translate/index.mjs +2 -2
  128. package/esm2022/lib/pipes/language-translate/language-translate.module.mjs +18 -18
  129. package/esm2022/lib/pipes/language-translate/language-translate.pipe.mjs +100 -99
  130. package/esm2022/lib/pipes/sort-translations/index.mjs +2 -2
  131. package/esm2022/lib/pipes/sort-translations/sort-translations.module.mjs +22 -22
  132. package/esm2022/lib/pipes/sort-translations/sort-translations.pipe.mjs +60 -60
  133. package/esm2022/lib/pipes/sort-translations-by-property/index.mjs +2 -2
  134. package/esm2022/lib/pipes/sort-translations-by-property/sort-translations-by-property.module.mjs +18 -18
  135. package/esm2022/lib/pipes/sort-translations-by-property/sort-translations-by-property.pipe.mjs +40 -40
  136. package/esm2022/lib/plausible/index.mjs +4 -4
  137. package/esm2022/lib/plausible/models/index.mjs +1 -1
  138. package/esm2022/lib/plausible/models/plausible-event.model.mjs +1 -1
  139. package/esm2022/lib/plausible/plausible-event.directive.mjs +40 -40
  140. package/esm2022/lib/plausible/plausible.helper.mjs +37 -37
  141. package/esm2022/lib/plausible/plausible.module.mjs +24 -24
  142. package/esm2022/lib/services/alert/alert.service.mjs +167 -165
  143. package/esm2022/lib/services/alert/index.mjs +3 -3
  144. package/esm2022/lib/services/alert/injection-tokens/alert-configuration.token.mjs +1 -1
  145. package/esm2022/lib/services/alert/injection-tokens/index.mjs +1 -1
  146. package/esm2022/lib/services/alert/models/alert-configuration.model.mjs +2 -2
  147. package/esm2022/lib/services/alert/models/index.mjs +1 -1
  148. package/esm2022/lib/services/dom/dom.service.mjs +21 -21
  149. package/esm2022/lib/services/dom/index.mjs +1 -1
  150. package/esm2022/lib/services/icon/icon.service.mjs +35 -35
  151. package/esm2022/lib/services/icon/index.mjs +1 -1
  152. package/esm2022/lib/services/index.mjs +6 -6
  153. package/esm2022/lib/services/language-translate/index.mjs +1 -1
  154. package/esm2022/lib/services/language-translate/language-translate.service.mjs +25 -25
  155. package/esm2022/lib/services/notification/index.mjs +2 -2
  156. package/esm2022/lib/services/notification/models/index.mjs +2 -2
  157. package/esm2022/lib/services/notification/models/notification.model.mjs +1 -1
  158. package/esm2022/lib/services/notification/models/operations.enum.mjs +5 -5
  159. package/esm2022/lib/services/notification/notification.service.mjs +35 -35
  160. package/esm2022/lib/services/system/index.mjs +1 -1
  161. package/esm2022/lib/services/system/system.service.mjs +23 -23
  162. package/esm2022/lib/status-display/index.mjs +3 -3
  163. package/esm2022/lib/status-display/models/index.mjs +1 -1
  164. package/esm2022/lib/status-display/models/status-display-config.model.mjs +1 -1
  165. package/esm2022/lib/status-display/status-display.component.mjs +17 -17
  166. package/esm2022/lib/status-display/status-display.module.mjs +21 -21
  167. package/esm2022/lib/terminology/components/terminology-panel/terminology-collection-list/terminology-collection-card/terminology-collection-card.component.mjs +65 -65
  168. package/esm2022/lib/terminology/components/terminology-panel/terminology-collection-list/terminology-collection-list.component.mjs +70 -70
  169. package/esm2022/lib/terminology/components/terminology-panel/terminology-create-collection/terminology-create-collection-dialog/terminology-create-collection-dialog.component.mjs +60 -58
  170. package/esm2022/lib/terminology/components/terminology-panel/terminology-create-collection/terminology-create-collection.component.mjs +56 -56
  171. package/esm2022/lib/terminology/components/terminology-panel/terminology-panel.component.mjs +49 -49
  172. package/esm2022/lib/terminology/config/models/index.mjs +1 -1
  173. package/esm2022/lib/terminology/config/models/terminology-config.model.mjs +1 -1
  174. package/esm2022/lib/terminology/config/services/index.mjs +1 -1
  175. package/esm2022/lib/terminology/config/services/terminology-config/terminology-config.service.mjs +45 -48
  176. package/esm2022/lib/terminology/enums/combined-collection-tooltip-key.enum.mjs +5 -5
  177. package/esm2022/lib/terminology/enums/engine-term-collection-scope.enum.mjs +6 -6
  178. package/esm2022/lib/terminology/enums/engine-term-collection-source.enum.mjs +5 -5
  179. package/esm2022/lib/terminology/enums/engine-term-collection-status.enum.mjs +7 -7
  180. package/esm2022/lib/terminology/enums/engine-term-collection-sub-status.enum.mjs +13 -13
  181. package/esm2022/lib/terminology/enums/index.mjs +6 -6
  182. package/esm2022/lib/terminology/enums/mt-collection-status.enum.mjs +10 -10
  183. package/esm2022/lib/terminology/enums/mt-term-collection-v1-status.enum.mjs +6 -6
  184. package/esm2022/lib/terminology/enums/system-metadata-key.enum.mjs +6 -6
  185. package/esm2022/lib/terminology/enums/translation-api-version.model.mjs +5 -5
  186. package/esm2022/lib/terminology/factories/terminology-api.factory.mjs +12 -12
  187. package/esm2022/lib/terminology/factories/terminology-system.factory.mjs +13 -13
  188. package/esm2022/lib/terminology/icons/collections-menu.icon.mjs +1 -1
  189. package/esm2022/lib/terminology/icons/index.mjs +1 -1
  190. package/esm2022/lib/terminology/index.mjs +9 -9
  191. package/esm2022/lib/terminology/injection-tokens/terminology-api.token.mjs +1 -1
  192. package/esm2022/lib/terminology/injection-tokens/terminology-system.token.mjs +1 -1
  193. package/esm2022/lib/terminology/models/active-data.model.mjs +2 -2
  194. package/esm2022/lib/terminology/models/add-engine-terms-request-params.model.mjs +1 -1
  195. package/esm2022/lib/terminology/models/api-system.model.mjs +2 -2
  196. package/esm2022/lib/terminology/models/combined-collection.model.mjs +189 -189
  197. package/esm2022/lib/terminology/models/default-term-collection-order-update.model.mjs +1 -1
  198. package/esm2022/lib/terminology/models/domain.model.mjs +1 -1
  199. package/esm2022/lib/terminology/models/engine-term-collection-access-scope-update.model.mjs +1 -1
  200. package/esm2022/lib/terminology/models/engine-term-collection-access-scope.model.mjs +1 -1
  201. package/esm2022/lib/terminology/models/engine-term-collection-access-update.model.mjs +1 -1
  202. package/esm2022/lib/terminology/models/engine-term-collection-access.model.mjs +1 -1
  203. package/esm2022/lib/terminology/models/engine-term-collection-list.model.mjs +1 -1
  204. package/esm2022/lib/terminology/models/engine-term-collection.model.mjs +1 -1
  205. package/esm2022/lib/terminology/models/index.mjs +20 -20
  206. package/esm2022/lib/terminology/models/lang-list-item.model.mjs +1 -1
  207. package/esm2022/lib/terminology/models/mt-collection.model.mjs +1 -1
  208. package/esm2022/lib/terminology/models/mt-term-collection-v1.model.mjs +1 -1
  209. package/esm2022/lib/terminology/models/mt-term-service.model.mjs +1 -1
  210. package/esm2022/lib/terminology/models/system-api-service.model.mjs +1 -1
  211. package/esm2022/lib/terminology/models/system.model.mjs +2 -2
  212. package/esm2022/lib/terminology/models/terminology-engine.model.mjs +2 -2
  213. package/esm2022/lib/terminology/models/tld-term-collection-languages.model.mjs +1 -1
  214. package/esm2022/lib/terminology/models/tld-term-collection.model.mjs +2 -2
  215. package/esm2022/lib/terminology/models/update-engine-terms-request-params.model.mjs +1 -1
  216. package/esm2022/lib/terminology/models/vendor.model.mjs +1 -1
  217. package/esm2022/lib/terminology/services/engine-term-api/engine-term-api.service.mjs +51 -51
  218. package/esm2022/lib/terminology/services/engine-term-api/index.mjs +1 -1
  219. package/esm2022/lib/terminology/services/index.mjs +5 -5
  220. package/esm2022/lib/terminology/services/system-api-v1/system-api-v1.service.mjs +60 -59
  221. package/esm2022/lib/terminology/services/system-api-v2/models/engine-deployment.model.mjs +1 -1
  222. package/esm2022/lib/terminology/services/system-api-v2/models/engine-domain-list.model.mjs +1 -1
  223. package/esm2022/lib/terminology/services/system-api-v2/models/engine-domain.model.mjs +1 -1
  224. package/esm2022/lib/terminology/services/system-api-v2/models/engine-list.model.mjs +1 -1
  225. package/esm2022/lib/terminology/services/system-api-v2/models/engine-status.enum.mjs +10 -10
  226. package/esm2022/lib/terminology/services/system-api-v2/models/engine-sub-status.enum.mjs +17 -17
  227. package/esm2022/lib/terminology/services/system-api-v2/models/engine.model.mjs +1 -1
  228. package/esm2022/lib/terminology/services/system-api-v2/models/index.mjs +8 -8
  229. package/esm2022/lib/terminology/services/system-api-v2/models/revision.model.mjs +1 -1
  230. package/esm2022/lib/terminology/services/system-api-v2/models/worker-status.model.mjs +1 -1
  231. package/esm2022/lib/terminology/services/system-api-v2/system-api-v2.service.mjs +81 -81
  232. package/esm2022/lib/terminology/services/terminology/terminology.service.mjs +325 -324
  233. package/esm2022/lib/terminology/services/terminology-api-v1/terminology-api-v1.service.mjs +59 -58
  234. package/esm2022/lib/terminology/services/terminology-api-v2/terminology-api-v2.service.mjs +85 -84
  235. package/esm2022/lib/terminology/services/terminology-collection/index.mjs +1 -1
  236. package/esm2022/lib/terminology/services/terminology-collection/terminology-collection.service.mjs +54 -54
  237. package/esm2022/lib/terminology/terminology.component.mjs +137 -137
  238. package/esm2022/lib/terminology/terminology.module.mjs +132 -132
  239. package/esm2022/lib/tld-loader/index.mjs +2 -2
  240. package/esm2022/lib/tld-loader/tld-loader.component.mjs +11 -11
  241. package/esm2022/lib/tld-loader/tld-loader.module.mjs +20 -20
  242. package/esm2022/public-api.mjs +23 -23
  243. package/esm2022/tilde-nlp-ngx-common.mjs +4 -4
  244. package/fesm2022/tilde-nlp-ngx-common.mjs +3768 -3791
  245. package/fesm2022/tilde-nlp-ngx-common.mjs.map +1 -1
  246. package/index.d.ts +5 -5
  247. package/lib/close-button/close-button.component.d.ts +13 -13
  248. package/lib/close-button/close-button.module.d.ts +11 -11
  249. package/lib/close-button/index.d.ts +2 -2
  250. package/lib/company-product/company-product.component.d.ts +7 -7
  251. package/lib/company-product/company-product.module.d.ts +8 -8
  252. package/lib/company-product/index.d.ts +2 -2
  253. package/lib/confirmation-modal/confirmation-modal.component.d.ts +12 -12
  254. package/lib/confirmation-modal/confirmation-modal.module.d.ts +11 -11
  255. package/lib/confirmation-modal/index.d.ts +5 -5
  256. package/lib/confirmation-modal/models/confirmation-body.model.d.ts +8 -8
  257. package/lib/confirmation-modal/models/confirmation.enum.d.ts +4 -4
  258. package/lib/confirmation-modal/services/confirmation.service.d.ts +12 -12
  259. package/lib/confirmation-modal/services/index.d.ts +1 -1
  260. package/lib/constants/index.d.ts +1 -1
  261. package/lib/constants/screen-size.const.d.ts +10 -10
  262. package/lib/directives/click-outside/click-outside.directive.d.ts +10 -10
  263. package/lib/directives/click-outside/click-outside.module.d.ts +8 -8
  264. package/lib/directives/click-outside/index.d.ts +2 -2
  265. package/lib/directives/drag-and-drop/drag-and-drop.directive.d.ts +14 -14
  266. package/lib/directives/drag-and-drop/drag-and-drop.module.d.ts +8 -8
  267. package/lib/directives/drag-and-drop/index.d.ts +2 -2
  268. package/lib/directives/index.d.ts +3 -3
  269. package/lib/directives/mat-button-loading/index.d.ts +2 -2
  270. package/lib/directives/mat-button-loading/mat-button-loading.directive.d.ts +18 -18
  271. package/lib/directives/mat-button-loading/mat-button-loading.module.d.ts +8 -8
  272. package/lib/extension-dialog/components/index.d.ts +1 -1
  273. package/lib/extension-dialog/components/open-extension-dialog/open-extension-dialog.component.d.ts +10 -10
  274. package/lib/extension-dialog/extension-dialog.component.d.ts +21 -21
  275. package/lib/extension-dialog/extension-dialog.module.d.ts +15 -15
  276. package/lib/extension-dialog/icons/file-types/excel.icon.d.ts +1 -1
  277. package/lib/extension-dialog/icons/file-types/index.d.ts +9 -9
  278. package/lib/extension-dialog/icons/file-types/interchange.icon.d.ts +1 -1
  279. package/lib/extension-dialog/icons/file-types/office-other.icon.d.ts +1 -1
  280. package/lib/extension-dialog/icons/file-types/other.icon.d.ts +1 -1
  281. package/lib/extension-dialog/icons/file-types/pdf.icon.d.ts +1 -1
  282. package/lib/extension-dialog/icons/file-types/powerpoint.icon.d.ts +1 -1
  283. package/lib/extension-dialog/icons/file-types/scanned.icon.d.ts +1 -1
  284. package/lib/extension-dialog/icons/file-types/web.icon.d.ts +1 -1
  285. package/lib/extension-dialog/icons/file-types/word.icon.d.ts +1 -1
  286. package/lib/extension-dialog/icons/index.d.ts +1 -1
  287. package/lib/extension-dialog/index.d.ts +5 -5
  288. package/lib/extension-dialog/models/enums/file-categories.enum.d.ts +7 -7
  289. package/lib/extension-dialog/models/enums/file-extensions.enum.d.ts +33 -33
  290. package/lib/extension-dialog/models/enums/file-type-icons.enum.d.ts +11 -11
  291. package/lib/extension-dialog/models/enums/file-types.enum.d.ts +11 -11
  292. package/lib/extension-dialog/models/enums/index.d.ts +4 -4
  293. package/lib/extension-dialog/models/index.d.ts +2 -2
  294. package/lib/extension-dialog/models/interfaces/config.d.ts +18 -18
  295. package/lib/extension-dialog/models/interfaces/dialog-data.model.d.ts +3 -3
  296. package/lib/extension-dialog/models/interfaces/index.d.ts +2 -2
  297. package/lib/extension-dialog/services/extension-dialog.service.d.ts +9 -9
  298. package/lib/extension-dialog/services/index.d.ts +1 -1
  299. package/lib/file-upload/file-upload.component.d.ts +29 -29
  300. package/lib/file-upload/file-upload.module.d.ts +13 -13
  301. package/lib/file-upload/index.d.ts +3 -3
  302. package/lib/file-upload/models/file-upload-error-type.enum.d.ts +6 -6
  303. package/lib/file-upload/models/file-upload-error.model.d.ts +6 -6
  304. package/lib/file-upload/models/index.d.ts +2 -2
  305. package/lib/filter-bar/filter-bar.component.d.ts +54 -54
  306. package/lib/filter-bar/filter-bar.module.d.ts +19 -19
  307. package/lib/filter-bar/index.d.ts +3 -3
  308. package/lib/filter-bar/models/filter-bar-change-event.model.d.ts +6 -6
  309. package/lib/filter-bar/models/filter-bar-filter-item.model.d.ts +4 -4
  310. package/lib/filter-bar/models/filter-bar-filter.model.d.ts +6 -6
  311. package/lib/filter-bar/models/filter-bar-settings.model.d.ts +19 -19
  312. package/lib/filter-bar/models/index.d.ts +3 -3
  313. package/lib/footer/footer.component.d.ts +15 -15
  314. package/lib/footer/footer.module.d.ts +11 -11
  315. package/lib/footer/index.d.ts +2 -2
  316. package/lib/helpers/auth-headers.helper.d.ts +4 -4
  317. package/lib/helpers/conversion.helper.d.ts +4 -4
  318. package/lib/helpers/file-extension.helper.d.ts +3 -3
  319. package/lib/helpers/html-element-parse.helper.d.ts +3 -3
  320. package/lib/helpers/html.helper.d.ts +17 -17
  321. package/lib/helpers/index.d.ts +9 -9
  322. package/lib/helpers/missing-translation.helper.d.ts +4 -4
  323. package/lib/helpers/resolution.helper.d.ts +3 -3
  324. package/lib/helpers/save-file.helper.d.ts +3 -3
  325. package/lib/helpers/sort.helper.d.ts +3 -3
  326. package/lib/inline-message/index.d.ts +3 -3
  327. package/lib/inline-message/inline-message.component.d.ts +10 -10
  328. package/lib/inline-message/inline-message.module.d.ts +10 -10
  329. package/lib/inline-message/models/index.d.ts +3 -3
  330. package/lib/inline-message/models/inline-message-icon-position.enum.d.ts +4 -4
  331. package/lib/inline-message/models/inline-message-type.enum.d.ts +5 -5
  332. package/lib/inline-message/models/inline-message.model.d.ts +10 -10
  333. package/lib/multi-functional-table/constants/disable-export-attribute-name.const.d.ts +1 -1
  334. package/lib/multi-functional-table/constants/index.d.ts +1 -1
  335. package/lib/multi-functional-table/index.d.ts +4 -4
  336. package/lib/multi-functional-table/models/batch-config.model.d.ts +4 -4
  337. package/lib/multi-functional-table/models/column-config.model.d.ts +18 -18
  338. package/lib/multi-functional-table/models/column-select-config.model.d.ts +14 -14
  339. package/lib/multi-functional-table/models/export-config.model.d.ts +9 -9
  340. package/lib/multi-functional-table/models/export-format.enum.d.ts +3 -3
  341. package/lib/multi-functional-table/models/filter-config.model.d.ts +6 -7
  342. package/lib/multi-functional-table/models/index.d.ts +6 -6
  343. package/lib/multi-functional-table/models/multi-functional-table-config.model.d.ts +36 -36
  344. package/lib/multi-functional-table/models/selected-column-local-storage-config.model.d.ts +20 -20
  345. package/lib/multi-functional-table/multi-functional-table.component.d.ts +66 -67
  346. package/lib/multi-functional-table/multi-functional-table.module.d.ts +20 -20
  347. package/lib/notification-message/enums/index.d.ts +1 -1
  348. package/lib/notification-message/enums/notification-message-type.enum.d.ts +7 -7
  349. package/lib/notification-message/index.d.ts +4 -4
  350. package/lib/notification-message/interfaces/index.d.ts +1 -1
  351. package/lib/notification-message/interfaces/notification-message.model.d.ts +22 -22
  352. package/lib/notification-message/notification-message.component.d.ts +22 -22
  353. package/lib/notification-message/notification-message.module.d.ts +13 -13
  354. package/lib/open-close-button/index.d.ts +4 -4
  355. package/lib/open-close-button/injection-tokens/index.d.ts +1 -1
  356. package/lib/open-close-button/injection-tokens/open-close-btn-icons.token.d.ts +1 -1
  357. package/lib/open-close-button/models/index.d.ts +1 -1
  358. package/lib/open-close-button/models/open-close-btn-icons.model.d.ts +4 -4
  359. package/lib/open-close-button/open-close-button.component.d.ts +22 -22
  360. package/lib/open-close-button/open-close-button.module.d.ts +11 -11
  361. package/lib/pipes/date-ago/date-ago.module.d.ts +9 -9
  362. package/lib/pipes/date-ago/date-ago.pipe.d.ts +20 -20
  363. package/lib/pipes/date-ago/index.d.ts +2 -2
  364. package/lib/pipes/date-ago/models/date-ago-interval.model.d.ts +5 -5
  365. package/lib/pipes/date-ago/models/date-ago-settings.model.d.ts +26 -26
  366. package/lib/pipes/date-ago/models/date-ago-settings.token.d.ts +1 -1
  367. package/lib/pipes/date-ago/models/date-ago.model.d.ts +4 -4
  368. package/lib/pipes/date-ago/models/index.d.ts +4 -4
  369. package/lib/pipes/filter-with-highlight/filter-with-highlight.module.d.ts +8 -8
  370. package/lib/pipes/filter-with-highlight/filter-with-highlight.pipe.d.ts +7 -7
  371. package/lib/pipes/filter-with-highlight/index.d.ts +2 -2
  372. package/lib/pipes/index.d.ts +5 -6
  373. package/lib/pipes/language-translate/index.d.ts +2 -2
  374. package/lib/pipes/language-translate/language-translate.module.d.ts +8 -8
  375. package/lib/pipes/language-translate/language-translate.pipe.d.ts +19 -19
  376. package/lib/pipes/sort-translations/index.d.ts +2 -2
  377. package/lib/pipes/sort-translations/sort-translations.module.d.ts +8 -8
  378. package/lib/pipes/sort-translations/sort-translations.pipe.d.ts +20 -20
  379. package/lib/pipes/sort-translations-by-property/index.d.ts +2 -2
  380. package/lib/pipes/sort-translations-by-property/sort-translations-by-property.module.d.ts +8 -8
  381. package/lib/pipes/sort-translations-by-property/sort-translations-by-property.pipe.d.ts +15 -15
  382. package/lib/plausible/index.d.ts +4 -4
  383. package/lib/plausible/models/index.d.ts +1 -1
  384. package/lib/plausible/models/plausible-event.model.d.ts +7 -7
  385. package/lib/plausible/plausible-event.directive.d.ts +11 -11
  386. package/lib/plausible/plausible.helper.d.ts +15 -15
  387. package/lib/plausible/plausible.module.d.ts +8 -8
  388. package/lib/services/alert/alert.service.d.ts +37 -37
  389. package/lib/services/alert/index.d.ts +3 -3
  390. package/lib/services/alert/injection-tokens/alert-configuration.token.d.ts +1 -1
  391. package/lib/services/alert/injection-tokens/index.d.ts +1 -1
  392. package/lib/services/alert/models/alert-configuration.model.d.ts +7 -7
  393. package/lib/services/alert/models/index.d.ts +1 -1
  394. package/lib/services/dom/dom.service.d.ts +7 -7
  395. package/lib/services/dom/index.d.ts +1 -1
  396. package/lib/services/icon/icon.service.d.ts +14 -14
  397. package/lib/services/icon/index.d.ts +1 -1
  398. package/lib/services/index.d.ts +6 -6
  399. package/lib/services/language-translate/index.d.ts +1 -1
  400. package/lib/services/language-translate/language-translate.service.d.ts +10 -10
  401. package/lib/services/notification/index.d.ts +2 -2
  402. package/lib/services/notification/models/index.d.ts +2 -2
  403. package/lib/services/notification/models/notification.model.d.ts +6 -6
  404. package/lib/services/notification/models/operations.enum.d.ts +4 -4
  405. package/lib/services/notification/notification.service.d.ts +15 -15
  406. package/lib/services/system/index.d.ts +1 -1
  407. package/lib/services/system/system.service.d.ts +11 -11
  408. package/lib/status-display/index.d.ts +3 -3
  409. package/lib/status-display/models/index.d.ts +1 -1
  410. package/lib/status-display/models/status-display-config.model.d.ts +9 -9
  411. package/lib/status-display/status-display.component.d.ts +7 -7
  412. package/lib/status-display/status-display.module.d.ts +11 -11
  413. package/lib/terminology/components/terminology-panel/terminology-collection-list/terminology-collection-card/terminology-collection-card.component.d.ts +28 -28
  414. package/lib/terminology/components/terminology-panel/terminology-collection-list/terminology-collection-list.component.d.ts +30 -30
  415. package/lib/terminology/components/terminology-panel/terminology-create-collection/terminology-create-collection-dialog/terminology-create-collection-dialog.component.d.ts +32 -32
  416. package/lib/terminology/components/terminology-panel/terminology-create-collection/terminology-create-collection.component.d.ts +20 -20
  417. package/lib/terminology/components/terminology-panel/terminology-panel.component.d.ts +30 -30
  418. package/lib/terminology/config/models/index.d.ts +1 -1
  419. package/lib/terminology/config/models/terminology-config.model.d.ts +39 -39
  420. package/lib/terminology/config/services/index.d.ts +1 -1
  421. package/lib/terminology/config/services/terminology-config/terminology-config.service.d.ts +9 -10
  422. package/lib/terminology/enums/combined-collection-tooltip-key.enum.d.ts +4 -4
  423. package/lib/terminology/enums/engine-term-collection-scope.enum.d.ts +5 -5
  424. package/lib/terminology/enums/engine-term-collection-source.enum.d.ts +4 -4
  425. package/lib/terminology/enums/engine-term-collection-status.enum.d.ts +6 -6
  426. package/lib/terminology/enums/engine-term-collection-sub-status.enum.d.ts +12 -12
  427. package/lib/terminology/enums/index.d.ts +6 -6
  428. package/lib/terminology/enums/mt-collection-status.enum.d.ts +8 -8
  429. package/lib/terminology/enums/mt-term-collection-v1-status.enum.d.ts +5 -5
  430. package/lib/terminology/enums/system-metadata-key.enum.d.ts +5 -5
  431. package/lib/terminology/enums/translation-api-version.model.d.ts +4 -4
  432. package/lib/terminology/factories/terminology-api.factory.d.ts +5 -5
  433. package/lib/terminology/factories/terminology-system.factory.d.ts +5 -5
  434. package/lib/terminology/icons/collections-menu.icon.d.ts +1 -1
  435. package/lib/terminology/icons/index.d.ts +1 -1
  436. package/lib/terminology/index.d.ts +9 -9
  437. package/lib/terminology/injection-tokens/terminology-api.token.d.ts +1 -1
  438. package/lib/terminology/injection-tokens/terminology-system.token.d.ts +1 -1
  439. package/lib/terminology/models/active-data.model.d.ts +22 -23
  440. package/lib/terminology/models/add-engine-terms-request-params.model.d.ts +7 -7
  441. package/lib/terminology/models/api-system.model.d.ts +27 -27
  442. package/lib/terminology/models/combined-collection.model.d.ts +92 -92
  443. package/lib/terminology/models/default-term-collection-order-update.model.d.ts +5 -5
  444. package/lib/terminology/models/domain.model.d.ts +9 -9
  445. package/lib/terminology/models/engine-term-collection-access-scope-update.model.d.ts +3 -3
  446. package/lib/terminology/models/engine-term-collection-access-scope.model.d.ts +4 -4
  447. package/lib/terminology/models/engine-term-collection-access-update.model.d.ts +6 -6
  448. package/lib/terminology/models/engine-term-collection-access.model.d.ts +6 -6
  449. package/lib/terminology/models/engine-term-collection-list.model.d.ts +4 -4
  450. package/lib/terminology/models/engine-term-collection.model.d.ts +24 -24
  451. package/lib/terminology/models/index.d.ts +20 -20
  452. package/lib/terminology/models/lang-list-item.model.d.ts +6 -6
  453. package/lib/terminology/models/mt-collection.model.d.ts +17 -17
  454. package/lib/terminology/models/mt-term-collection-v1.model.d.ts +12 -12
  455. package/lib/terminology/models/mt-term-service.model.d.ts +8 -8
  456. package/lib/terminology/models/system-api-service.model.d.ts +5 -5
  457. package/lib/terminology/models/system.model.d.ts +19 -20
  458. package/lib/terminology/models/terminology-engine.model.d.ts +15 -15
  459. package/lib/terminology/models/tld-term-collection-languages.model.d.ts +11 -11
  460. package/lib/terminology/models/tld-term-collection.model.d.ts +46 -46
  461. package/lib/terminology/models/update-engine-terms-request-params.model.d.ts +4 -4
  462. package/lib/terminology/models/vendor.model.d.ts +5 -5
  463. package/lib/terminology/services/engine-term-api/engine-term-api.service.d.ts +19 -19
  464. package/lib/terminology/services/engine-term-api/index.d.ts +1 -1
  465. package/lib/terminology/services/index.d.ts +5 -5
  466. package/lib/terminology/services/system-api-v1/system-api-v1.service.d.ts +15 -15
  467. package/lib/terminology/services/system-api-v2/models/engine-deployment.model.d.ts +9 -9
  468. package/lib/terminology/services/system-api-v2/models/engine-domain-list.model.d.ts +4 -4
  469. package/lib/terminology/services/system-api-v2/models/engine-domain.model.d.ts +5 -5
  470. package/lib/terminology/services/system-api-v2/models/engine-list.model.d.ts +4 -4
  471. package/lib/terminology/services/system-api-v2/models/engine-status.enum.d.ts +9 -9
  472. package/lib/terminology/services/system-api-v2/models/engine-sub-status.enum.d.ts +16 -16
  473. package/lib/terminology/services/system-api-v2/models/engine.model.d.ts +24 -24
  474. package/lib/terminology/services/system-api-v2/models/index.d.ts +8 -8
  475. package/lib/terminology/services/system-api-v2/models/revision.model.d.ts +9 -9
  476. package/lib/terminology/services/system-api-v2/models/worker-status.model.d.ts +12 -12
  477. package/lib/terminology/services/system-api-v2/system-api-v2.service.d.ts +16 -16
  478. package/lib/terminology/services/terminology/terminology.service.d.ts +61 -61
  479. package/lib/terminology/services/terminology-api-v1/terminology-api-v1.service.d.ts +17 -17
  480. package/lib/terminology/services/terminology-api-v2/terminology-api-v2.service.d.ts +18 -18
  481. package/lib/terminology/services/terminology-collection/index.d.ts +1 -1
  482. package/lib/terminology/services/terminology-collection/terminology-collection.service.d.ts +17 -17
  483. package/lib/terminology/terminology.component.d.ts +37 -37
  484. package/lib/terminology/terminology.module.d.ts +29 -29
  485. package/lib/tld-loader/index.d.ts +2 -2
  486. package/lib/tld-loader/tld-loader.component.d.ts +5 -5
  487. package/lib/tld-loader/tld-loader.module.d.ts +7 -7
  488. package/package.json +5 -4
  489. package/public-api.d.ts +20 -20
  490. package/styles/custom/containers.scss +1 -1
  491. package/styles/typography.scss +1 -1
  492. package/esm2022/lib/pipes/object-length/index.mjs +0 -3
  493. package/esm2022/lib/pipes/object-length/object-length.module.mjs +0 -18
  494. package/esm2022/lib/pipes/object-length/object-length.pipe.mjs +0 -22
  495. package/lib/pipes/object-length/index.d.ts +0 -2
  496. package/lib/pipes/object-length/object-length.module.d.ts +0 -8
  497. package/lib/pipes/object-length/object-length.pipe.d.ts +0 -7
@@ -1,137 +1,137 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { Subject, takeUntil } from 'rxjs';
3
- import * as icons from './icons';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "./services";
6
- import * as i2 from "../services";
7
- import * as i3 from "@angular/common";
8
- import * as i4 from "../open-close-button/open-close-button.component";
9
- import * as i5 from "@angular/flex-layout/flex";
10
- import * as i6 from "@angular/flex-layout/extended";
11
- import * as i7 from "../close-button/close-button.component";
12
- import * as i8 from "@angular/material/button";
13
- import * as i9 from "@angular/material/icon";
14
- import * as i10 from "@angular/material/progress-spinner";
15
- import * as i11 from "@angular/material/menu";
16
- import * as i12 from "@angular/material/tooltip";
17
- import * as i13 from "./components/terminology-panel/terminology-panel.component";
18
- import * as i14 from "@ngx-translate/core";
19
- export class TerminologyComponent {
20
- constructor(terminologyService, iconService) {
21
- this.terminologyService = terminologyService;
22
- this.iconService = iconService;
23
- this.storeSelectedInLocalStorage = true;
24
- this.showMenuIconOnMobile = true;
25
- this.glossarySelectEvent = new EventEmitter();
26
- this.menuToggleEvent = new EventEmitter();
27
- this.isRefreshEnabled = false;
28
- this.isMenuOpened = false;
29
- this.destroy = new Subject();
30
- this.selected = null;
31
- }
32
- ngOnChanges(changes) {
33
- if (changes) {
34
- this.selected = this.terminologyService.engines[this.system.systemId]?.selected;
35
- }
36
- }
37
- ngOnInit() {
38
- this.iconService.registerIcons(icons);
39
- if (this.selectedCollectionId) {
40
- this.presetCollection();
41
- }
42
- this.watchSystemChanges();
43
- }
44
- selectGlossary(collection) {
45
- this.selected = collection;
46
- if (!collection?.mtCollection && collection !== null) {
47
- if (this.terminologyService.addToEngineValidation(collection)) {
48
- this.terminologyService.updateIfNecessary(collection, this.system.systemId, true).subscribe({
49
- next: (res) => {
50
- this.glossarySelectEvent.emit(res);
51
- },
52
- error: (error) => {
53
- this.terminologyService.handleAddToEngineError(error, this.system.systemId);
54
- }
55
- });
56
- }
57
- }
58
- else {
59
- this.glossarySelectEvent.emit(collection);
60
- }
61
- this.terminologyService.setSelectedCollection(this.system.systemId, collection, this.storeSelectedInLocalStorage);
62
- }
63
- openMenu() {
64
- this.menuToggleEvent.emit(true);
65
- this.isRefreshEnabled = true;
66
- this.isMenuOpened = true;
67
- this.terminologyService
68
- .startAutoRefresh(this.system.systemId)
69
- .subscribe(() => {
70
- const isBackgroundImportCompleted = this.isRefreshEnabled && !this.isMenuOpened && !this.selected?.isImporting;
71
- if ((!this.isRefreshEnabled && !this.selected?.isImporting) || isBackgroundImportCompleted) {
72
- this.stopRefresh();
73
- }
74
- });
75
- }
76
- closeMenu() {
77
- this.menuToggleEvent.emit(false);
78
- this.isMenuOpened = false;
79
- if (this.selected?.isImporting) {
80
- this.isRefreshEnabled = true;
81
- return;
82
- }
83
- this.stopRefresh();
84
- }
85
- ngOnDestroy() {
86
- this.terminologyService.resetEngines();
87
- this.stopRefresh();
88
- this.destroy.next(null);
89
- this.destroy.complete();
90
- }
91
- stopRefresh() {
92
- this.terminologyService.stopAutoRefresh(this.system.systemId);
93
- this.isRefreshEnabled = false;
94
- }
95
- presetCollection() {
96
- this.presetCollectionSubscription = this.terminologyService.getCollections().subscribe((res) => {
97
- res[this.system.systemId]?.collections.forEach((collection) => {
98
- if (collection.mtCollection?.id === this.selectedCollectionId || collection.termId === this.selectedCollectionId) {
99
- this.selected = collection;
100
- this.terminologyService.setSelectedCollection(this.system.systemId, collection, false);
101
- this.presetCollectionSubscription?.unsubscribe();
102
- }
103
- });
104
- });
105
- }
106
- watchSystemChanges() {
107
- this.terminologyService.getEnginesWithSelectedCollectionChange()
108
- .pipe(takeUntil(this.destroy))
109
- .subscribe((res) => {
110
- if (res[this.system.systemId]) {
111
- this.selected = res[this.system.systemId].selected;
112
- }
113
- });
114
- }
115
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TerminologyComponent, deps: [{ token: i1.TerminologyService }, { token: i2.IconService }], target: i0.ɵɵFactoryTarget.Component }); }
116
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TerminologyComponent, selector: "lib-terminology", inputs: { selectedCollectionId: "selectedCollectionId", system: "system", disabled: "disabled", storeSelectedInLocalStorage: "storeSelectedInLocalStorage", showMenuIconOnMobile: "showMenuIconOnMobile" }, outputs: { glossarySelectEvent: "glossarySelectEvent", menuToggleEvent: "menuToggleEvent" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"glossary-menu\" fxLayoutAlign=\"center center\" [ngClass.lt-sm]=\"'tld-term-collection-wrapper-mobile'\" fxLayoutGap=\"8px\">\r\n <span class=\"glossary-label\" fxHide.lt-md>\r\n {{ \"TERM_COLLECTIONS.GLOSSARY\" | translate }}\r\n </span>\r\n\r\n <lib-open-close-button\r\n *ngIf=\"!showMenuIconOnMobile; else defaultLayout\"\r\n class=\"tld-collection-menu-button\"\r\n #state=\"matMenuTrigger\"\r\n [isOpened]=\"state.menuOpen\"\r\n (menuOpened)=\"openMenu()\"\r\n (menuClosed)=\"closeMenu()\"\r\n [matMenuTriggerFor]=\"menu\"\r\n [attr.aria-label]=\"'TERM_COLLECTIONS.ARIA_LABELS.OTHER_COLLECTIONS' | translate\"\r\n [matTooltip]=\"selected?.mtCollection?.name ?? selected?.termCollection?.name ?? ''\"\r\n [disabled]=\"disabled\"\r\n >\r\n <span class=\"selected-collection\">\r\n {{ selected?.mtCollection?.name ?? selected?.termCollection?.name ?? (\"TERM_COLLECTIONS.SELECTED_NONE\" | translate) }}\r\n </span>\r\n <mat-spinner *ngIf=\"selected?.isImporting\" class=\"selected-col-spinner\" color=\"accent\" diameter=\"16\"></mat-spinner>\r\n </lib-open-close-button>\r\n\r\n <ng-template #defaultLayout>\r\n <lib-open-close-button\r\n fxHide.lt-sm\r\n class=\"tld-collection-menu-button\"\r\n #state=\"matMenuTrigger\"\r\n [isOpened]=\"state.menuOpen\"\r\n (menuOpened)=\"openMenu()\"\r\n (menuClosed)=\"closeMenu()\"\r\n [matMenuTriggerFor]=\"menu\"\r\n [attr.aria-label]=\"'TERM_COLLECTIONS.ARIA_LABELS.OTHER_COLLECTIONS' | translate\"\r\n [matTooltip]=\"selected?.mtCollection?.name ?? selected?.termCollection?.name ?? ''\"\r\n [disabled]=\"disabled\"\r\n >\r\n <span class=\"selected-collection\">\r\n {{ selected?.mtCollection?.name ?? selected?.termCollection?.name ?? (\"TERM_COLLECTIONS.SELECTED_NONE\" | translate) }}\r\n </span>\r\n <mat-spinner *ngIf=\"selected?.isImporting\" class=\"selected-col-spinner\" color=\"accent\" diameter=\"16\"></mat-spinner>\r\n </lib-open-close-button>\r\n\r\n <button (menuOpened)=\"openMenu()\" (menuClosed)=\"closeMenu()\" mat-icon-button fxHide.gt-xs #state=\"matMenuTrigger\" [matMenuTriggerFor]=\"menu\">\r\n <mat-icon svgIcon=\"collections_menu\" [attr.color]=\"selected ? 'accent' : ''\"></mat-icon>\r\n </button>\r\n </ng-template>\r\n</div>\r\n\r\n<mat-menu #menu=\"matMenu\" class=\"tld-collection-menu\">\r\n <tld-close-button fxHide.gt-xs></tld-close-button>\r\n <div class=\"tld-term-collection\" (click)=\"$event.stopPropagation()\" (keydown)=\"$event.stopPropagation()\">\r\n <lib-terminology-panel (glossarySelectEvent)=\"selectGlossary($event)\" [system]=\"system\" [selectedCollection]=\"selected\"></lib-terminology-panel>\r\n </div>\r\n</mat-menu>\r\n", styles: [":host ::ng-deep .mdc-circular-progress__circle-clipper,:host ::ng-deep .mdc-circular-progress__indeterminate-circle-graphic{width:100%!important}.selected-col-spinner{margin-left:5px}.tld-collection-menu-button .selected-collection{overflow:hidden;text-overflow:ellipsis;max-width:140px;display:inline-block;white-space:nowrap}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.OpenCloseButtonComponent, selector: "lib-open-close-button", inputs: ["disableFocusOnAction", "disabled", "isIcon", "ariaLabelCode", "isOpened"] }, { kind: "directive", type: i5.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i5.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i6.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide], [fxHide.print], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]", inputs: ["fxShow", "fxShow.print", "fxShow.xs", "fxShow.sm", "fxShow.md", "fxShow.lg", "fxShow.xl", "fxShow.lt-sm", "fxShow.lt-md", "fxShow.lt-lg", "fxShow.lt-xl", "fxShow.gt-xs", "fxShow.gt-sm", "fxShow.gt-md", "fxShow.gt-lg", "fxHide", "fxHide.print", "fxHide.xs", "fxHide.sm", "fxHide.md", "fxHide.lg", "fxHide.xl", "fxHide.lt-sm", "fxHide.lt-md", "fxHide.lt-lg", "fxHide.lt-xl", "fxHide.gt-xs", "fxHide.gt-sm", "fxHide.gt-md", "fxHide.gt-lg"] }, { kind: "directive", type: i6.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "component", type: i7.CloseButtonComponent, selector: "tld-close-button", inputs: ["ariaCode", "disabled", "tooltip"], outputs: ["tldClick"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i11.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "directive", type: i11.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i12.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i13.TerminologyPanelComponent, selector: "lib-terminology-panel", inputs: ["system", "selectedCollection"], outputs: ["glossarySelectEvent"] }, { kind: "pipe", type: i14.TranslatePipe, name: "translate" }] }); }
117
- }
118
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TerminologyComponent, decorators: [{
119
- type: Component,
120
- args: [{ selector: 'lib-terminology', template: "<div class=\"glossary-menu\" fxLayoutAlign=\"center center\" [ngClass.lt-sm]=\"'tld-term-collection-wrapper-mobile'\" fxLayoutGap=\"8px\">\r\n <span class=\"glossary-label\" fxHide.lt-md>\r\n {{ \"TERM_COLLECTIONS.GLOSSARY\" | translate }}\r\n </span>\r\n\r\n <lib-open-close-button\r\n *ngIf=\"!showMenuIconOnMobile; else defaultLayout\"\r\n class=\"tld-collection-menu-button\"\r\n #state=\"matMenuTrigger\"\r\n [isOpened]=\"state.menuOpen\"\r\n (menuOpened)=\"openMenu()\"\r\n (menuClosed)=\"closeMenu()\"\r\n [matMenuTriggerFor]=\"menu\"\r\n [attr.aria-label]=\"'TERM_COLLECTIONS.ARIA_LABELS.OTHER_COLLECTIONS' | translate\"\r\n [matTooltip]=\"selected?.mtCollection?.name ?? selected?.termCollection?.name ?? ''\"\r\n [disabled]=\"disabled\"\r\n >\r\n <span class=\"selected-collection\">\r\n {{ selected?.mtCollection?.name ?? selected?.termCollection?.name ?? (\"TERM_COLLECTIONS.SELECTED_NONE\" | translate) }}\r\n </span>\r\n <mat-spinner *ngIf=\"selected?.isImporting\" class=\"selected-col-spinner\" color=\"accent\" diameter=\"16\"></mat-spinner>\r\n </lib-open-close-button>\r\n\r\n <ng-template #defaultLayout>\r\n <lib-open-close-button\r\n fxHide.lt-sm\r\n class=\"tld-collection-menu-button\"\r\n #state=\"matMenuTrigger\"\r\n [isOpened]=\"state.menuOpen\"\r\n (menuOpened)=\"openMenu()\"\r\n (menuClosed)=\"closeMenu()\"\r\n [matMenuTriggerFor]=\"menu\"\r\n [attr.aria-label]=\"'TERM_COLLECTIONS.ARIA_LABELS.OTHER_COLLECTIONS' | translate\"\r\n [matTooltip]=\"selected?.mtCollection?.name ?? selected?.termCollection?.name ?? ''\"\r\n [disabled]=\"disabled\"\r\n >\r\n <span class=\"selected-collection\">\r\n {{ selected?.mtCollection?.name ?? selected?.termCollection?.name ?? (\"TERM_COLLECTIONS.SELECTED_NONE\" | translate) }}\r\n </span>\r\n <mat-spinner *ngIf=\"selected?.isImporting\" class=\"selected-col-spinner\" color=\"accent\" diameter=\"16\"></mat-spinner>\r\n </lib-open-close-button>\r\n\r\n <button (menuOpened)=\"openMenu()\" (menuClosed)=\"closeMenu()\" mat-icon-button fxHide.gt-xs #state=\"matMenuTrigger\" [matMenuTriggerFor]=\"menu\">\r\n <mat-icon svgIcon=\"collections_menu\" [attr.color]=\"selected ? 'accent' : ''\"></mat-icon>\r\n </button>\r\n </ng-template>\r\n</div>\r\n\r\n<mat-menu #menu=\"matMenu\" class=\"tld-collection-menu\">\r\n <tld-close-button fxHide.gt-xs></tld-close-button>\r\n <div class=\"tld-term-collection\" (click)=\"$event.stopPropagation()\" (keydown)=\"$event.stopPropagation()\">\r\n <lib-terminology-panel (glossarySelectEvent)=\"selectGlossary($event)\" [system]=\"system\" [selectedCollection]=\"selected\"></lib-terminology-panel>\r\n </div>\r\n</mat-menu>\r\n", styles: [":host ::ng-deep .mdc-circular-progress__circle-clipper,:host ::ng-deep .mdc-circular-progress__indeterminate-circle-graphic{width:100%!important}.selected-col-spinner{margin-left:5px}.tld-collection-menu-button .selected-collection{overflow:hidden;text-overflow:ellipsis;max-width:140px;display:inline-block;white-space:nowrap}\n"] }]
121
- }], ctorParameters: function () { return [{ type: i1.TerminologyService }, { type: i2.IconService }]; }, propDecorators: { selectedCollectionId: [{
122
- type: Input
123
- }], system: [{
124
- type: Input,
125
- args: [{ required: true }]
126
- }], disabled: [{
127
- type: Input
128
- }], storeSelectedInLocalStorage: [{
129
- type: Input
130
- }], showMenuIconOnMobile: [{
131
- type: Input
132
- }], glossarySelectEvent: [{
133
- type: Output
134
- }], menuToggleEvent: [{
135
- type: Output
136
- }] } });
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybWlub2xvZ3kuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbW1vbi9zcmMvbGliL3Rlcm1pbm9sb2d5L3Rlcm1pbm9sb2d5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi90ZXJtaW5vbG9neS90ZXJtaW5vbG9neS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWlDLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFFckgsT0FBTyxFQUFFLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3hELE9BQU8sS0FBSyxLQUFLLE1BQU0sU0FBUyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBT2pDLE1BQU0sT0FBTyxvQkFBb0I7SUFpQi9CLFlBQTZCLGtCQUFzQyxFQUFtQixXQUF3QjtRQUFqRix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQW1CLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBYnJHLGdDQUEyQixHQUFHLElBQUksQ0FBQztRQUNuQyx5QkFBb0IsR0FBRyxJQUFJLENBQUM7UUFDM0Isd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQTZCLENBQUM7UUFDcEUsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRWhELHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUN6QixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUdaLFlBQU8sR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRXpDLGFBQVEsR0FBOEIsSUFBSSxDQUFDO0lBRXNFLENBQUM7SUFFbEgsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxFQUFFO1lBQ1gsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsUUFBUSxDQUFDO1NBQ2pGO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV0QyxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUM3QixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztTQUN6QjtRQUVELElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxjQUFjLENBQUMsVUFBcUM7UUFDbEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7UUFFM0IsSUFBSSxDQUFDLFVBQVUsRUFBRSxZQUFZLElBQUksVUFBVSxLQUFLLElBQUksRUFBRTtZQUNwRCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLENBQUMsRUFBRTtnQkFDN0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUM7b0JBQzFGLElBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO3dCQUNaLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ3JDLENBQUM7b0JBQ0QsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7d0JBQ2YsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHNCQUFzQixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO29CQUM1RSxDQUFDO2lCQUNILENBQUMsQ0FBQzthQUNKO1NBQ0Y7YUFBTTtZQUNMLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDM0M7UUFFRCxJQUFJLENBQUMsa0JBQWtCLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBQ3BILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFaEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUV6QixJQUFJLENBQUMsa0JBQWtCO2FBQ3BCLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO2FBQ3RDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDWixNQUFNLDJCQUEyQixHQUMvQixJQUFJLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUM7WUFFN0UsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsSUFBSSwyQkFBMkIsRUFBRTtnQkFDMUYsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2FBQ3BCO1FBQ0gsQ0FBQyxDQUNGLENBQUM7SUFDTixDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWpDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBRTFCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUU7WUFDOUIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztZQUM3QixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVPLFdBQVc7UUFDakIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFDaEMsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixJQUFJLENBQUMsNEJBQTRCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQzdGLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtnQkFDNUQsSUFBSSxVQUFVLENBQUMsWUFBWSxFQUFFLEVBQUUsS0FBSyxJQUFJLENBQUMsb0JBQW9CLElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsb0JBQW9CLEVBQUU7b0JBQ2hILElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO29CQUUzQixJQUFJLENBQUMsa0JBQWtCLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO29CQUN2RixJQUFJLENBQUMsNEJBQTRCLEVBQUUsV0FBVyxFQUFFLENBQUM7aUJBQ2xEO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFTyxrQkFBa0I7UUFDeEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHNDQUFzQyxFQUFFO2FBQzdELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQzdCLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ25CLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDO2FBQ3BEO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDOytHQXpIVSxvQkFBb0I7bUdBQXBCLG9CQUFvQixxWENaakMsdXVGQXNEQTs7NEZEMUNhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxpQkFBaUI7bUlBS2xCLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDcUIsTUFBTTtzQkFBaEMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ2hCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csMkJBQTJCO3NCQUFuQyxLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDSSxtQkFBbUI7c0JBQTVCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUZXJtaW5vbG9neVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ29tYmluZWRDb2xsZWN0aW9uIH0gZnJvbSAnLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBJY29uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzJztcclxuaW1wb3J0ICogYXMgaWNvbnMgZnJvbSAnLi9pY29ucyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi10ZXJtaW5vbG9neScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Rlcm1pbm9sb2d5LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90ZXJtaW5vbG9neS5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGVybWlub2xvZ3lDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSBzZWxlY3RlZENvbGxlY3Rpb25JZCE6IHN0cmluZztcclxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBzeXN0ZW0hOiB7IHN5c3RlbUlkOiBzdHJpbmc7IHNvdXJjZUxhbmd1YWdlQ29kZTogc3RyaW5nOyB0YXJnZXRMYW5ndWFnZUNvZGU6IHN0cmluZyB9O1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBzdG9yZVNlbGVjdGVkSW5Mb2NhbFN0b3JhZ2UgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNob3dNZW51SWNvbk9uTW9iaWxlID0gdHJ1ZTtcclxuICBAT3V0cHV0KCkgZ2xvc3NhcnlTZWxlY3RFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8Q29tYmluZWRDb2xsZWN0aW9uIHwgbnVsbD4oKTtcclxuICBAT3V0cHV0KCkgbWVudVRvZ2dsZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBwcml2YXRlIGlzUmVmcmVzaEVuYWJsZWQgPSBmYWxzZTtcclxuICBwcml2YXRlIGlzTWVudU9wZW5lZCA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIHByZXNldENvbGxlY3Rpb25TdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgc2VsZWN0ZWQ6IENvbWJpbmVkQ29sbGVjdGlvbiB8IG51bGwgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHRlcm1pbm9sb2d5U2VydmljZTogVGVybWlub2xvZ3lTZXJ2aWNlLCBwcml2YXRlIHJlYWRvbmx5IGljb25TZXJ2aWNlOiBJY29uU2VydmljZSkge31cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXMpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZCA9IHRoaXMudGVybWlub2xvZ3lTZXJ2aWNlLmVuZ2luZXNbdGhpcy5zeXN0ZW0uc3lzdGVtSWRdPy5zZWxlY3RlZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pY29uU2VydmljZS5yZWdpc3Rlckljb25zKGljb25zKTtcclxuXHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZENvbGxlY3Rpb25JZCkge1xyXG4gICAgICB0aGlzLnByZXNldENvbGxlY3Rpb24oKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLndhdGNoU3lzdGVtQ2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0R2xvc3NhcnkoY29sbGVjdGlvbjogQ29tYmluZWRDb2xsZWN0aW9uIHwgbnVsbCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZCA9IGNvbGxlY3Rpb247XHJcblxyXG4gICAgaWYgKCFjb2xsZWN0aW9uPy5tdENvbGxlY3Rpb24gJiYgY29sbGVjdGlvbiAhPT0gbnVsbCkge1xyXG4gICAgICBpZiAodGhpcy50ZXJtaW5vbG9neVNlcnZpY2UuYWRkVG9FbmdpbmVWYWxpZGF0aW9uKGNvbGxlY3Rpb24pKSB7XHJcbiAgICAgICAgdGhpcy50ZXJtaW5vbG9neVNlcnZpY2UudXBkYXRlSWZOZWNlc3NhcnkoY29sbGVjdGlvbiwgdGhpcy5zeXN0ZW0uc3lzdGVtSWQsIHRydWUpLnN1YnNjcmliZSh7IFxyXG4gICAgICAgICAgbmV4dDogKHJlcykgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmdsb3NzYXJ5U2VsZWN0RXZlbnQuZW1pdChyZXMpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgdGhpcy50ZXJtaW5vbG9neVNlcnZpY2UuaGFuZGxlQWRkVG9FbmdpbmVFcnJvcihlcnJvciwgdGhpcy5zeXN0ZW0uc3lzdGVtSWQpXHJcbiAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmdsb3NzYXJ5U2VsZWN0RXZlbnQuZW1pdChjb2xsZWN0aW9uKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgdGhpcy50ZXJtaW5vbG9neVNlcnZpY2Uuc2V0U2VsZWN0ZWRDb2xsZWN0aW9uKHRoaXMuc3lzdGVtLnN5c3RlbUlkLCBjb2xsZWN0aW9uLCB0aGlzLnN0b3JlU2VsZWN0ZWRJbkxvY2FsU3RvcmFnZSk7XHJcbiAgfVxyXG5cclxuICBvcGVuTWVudSgpOiB2b2lkIHtcclxuICAgIHRoaXMubWVudVRvZ2dsZUV2ZW50LmVtaXQodHJ1ZSk7XHJcblxyXG4gICAgdGhpcy5pc1JlZnJlc2hFbmFibGVkID0gdHJ1ZTtcclxuICAgIHRoaXMuaXNNZW51T3BlbmVkID0gdHJ1ZTtcclxuXHJcbiAgICB0aGlzLnRlcm1pbm9sb2d5U2VydmljZVxyXG4gICAgICAuc3RhcnRBdXRvUmVmcmVzaCh0aGlzLnN5c3RlbS5zeXN0ZW1JZClcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBpc0JhY2tncm91bmRJbXBvcnRDb21wbGV0ZWQgPSBcclxuICAgICAgICAgICAgdGhpcy5pc1JlZnJlc2hFbmFibGVkICYmICF0aGlzLmlzTWVudU9wZW5lZCAmJiAhdGhpcy5zZWxlY3RlZD8uaXNJbXBvcnRpbmc7XHJcblxyXG4gICAgICAgICAgaWYgKCghdGhpcy5pc1JlZnJlc2hFbmFibGVkICYmICF0aGlzLnNlbGVjdGVkPy5pc0ltcG9ydGluZykgfHwgaXNCYWNrZ3JvdW5kSW1wb3J0Q29tcGxldGVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcFJlZnJlc2goKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VNZW51KCk6IHZvaWQge1xyXG4gICAgdGhpcy5tZW51VG9nZ2xlRXZlbnQuZW1pdChmYWxzZSk7XHJcblxyXG4gICAgdGhpcy5pc01lbnVPcGVuZWQgPSBmYWxzZTtcclxuXHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZD8uaXNJbXBvcnRpbmcpIHtcclxuICAgICAgdGhpcy5pc1JlZnJlc2hFbmFibGVkID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc3RvcFJlZnJlc2goKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy50ZXJtaW5vbG9neVNlcnZpY2UucmVzZXRFbmdpbmVzKCk7ICAgIFxyXG4gICAgdGhpcy5zdG9wUmVmcmVzaCgpO1xyXG4gICAgdGhpcy5kZXN0cm95Lm5leHQobnVsbCk7XHJcbiAgICB0aGlzLmRlc3Ryb3kuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RvcFJlZnJlc2goKTogdm9pZCB7XHJcbiAgICB0aGlzLnRlcm1pbm9sb2d5U2VydmljZS5zdG9wQXV0b1JlZnJlc2godGhpcy5zeXN0ZW0uc3lzdGVtSWQpO1xyXG4gICAgdGhpcy5pc1JlZnJlc2hFbmFibGVkID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHByZXNldENvbGxlY3Rpb24oKTogdm9pZCB7XHJcbiAgICB0aGlzLnByZXNldENvbGxlY3Rpb25TdWJzY3JpcHRpb24gPSB0aGlzLnRlcm1pbm9sb2d5U2VydmljZS5nZXRDb2xsZWN0aW9ucygpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgIHJlc1t0aGlzLnN5c3RlbS5zeXN0ZW1JZF0/LmNvbGxlY3Rpb25zLmZvckVhY2goKGNvbGxlY3Rpb24pID0+IHtcclxuICAgICAgICBpZiAoY29sbGVjdGlvbi5tdENvbGxlY3Rpb24/LmlkID09PSB0aGlzLnNlbGVjdGVkQ29sbGVjdGlvbklkIHx8IGNvbGxlY3Rpb24udGVybUlkID09PSB0aGlzLnNlbGVjdGVkQ29sbGVjdGlvbklkKSB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkID0gY29sbGVjdGlvbjtcclxuXHJcbiAgICAgICAgICB0aGlzLnRlcm1pbm9sb2d5U2VydmljZS5zZXRTZWxlY3RlZENvbGxlY3Rpb24odGhpcy5zeXN0ZW0uc3lzdGVtSWQsIGNvbGxlY3Rpb24sIGZhbHNlKTtcclxuICAgICAgICAgIHRoaXMucHJlc2V0Q29sbGVjdGlvblN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgd2F0Y2hTeXN0ZW1DaGFuZ2VzKCk6IHZvaWQge1xyXG4gICAgdGhpcy50ZXJtaW5vbG9neVNlcnZpY2UuZ2V0RW5naW5lc1dpdGhTZWxlY3RlZENvbGxlY3Rpb25DaGFuZ2UoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95KSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgIGlmIChyZXNbdGhpcy5zeXN0ZW0uc3lzdGVtSWRdKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZCA9IHJlc1t0aGlzLnN5c3RlbS5zeXN0ZW1JZF0uc2VsZWN0ZWQ7XHJcbiAgICAgIH0gICAgICBcclxuICAgIH0pXHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJnbG9zc2FyeS1tZW51XCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIiBbbmdDbGFzcy5sdC1zbV09XCIndGxkLXRlcm0tY29sbGVjdGlvbi13cmFwcGVyLW1vYmlsZSdcIiBmeExheW91dEdhcD1cIjhweFwiPlxyXG4gIDxzcGFuIGNsYXNzPVwiZ2xvc3NhcnktbGFiZWxcIiBmeEhpZGUubHQtbWQ+XHJcbiAgICB7eyBcIlRFUk1fQ09MTEVDVElPTlMuR0xPU1NBUllcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gIDwvc3Bhbj5cclxuXHJcbiAgPGxpYi1vcGVuLWNsb3NlLWJ1dHRvblxyXG4gICAgKm5nSWY9XCIhc2hvd01lbnVJY29uT25Nb2JpbGU7IGVsc2UgZGVmYXVsdExheW91dFwiXHJcbiAgICBjbGFzcz1cInRsZC1jb2xsZWN0aW9uLW1lbnUtYnV0dG9uXCJcclxuICAgICNzdGF0ZT1cIm1hdE1lbnVUcmlnZ2VyXCJcclxuICAgIFtpc09wZW5lZF09XCJzdGF0ZS5tZW51T3BlblwiXHJcbiAgICAobWVudU9wZW5lZCk9XCJvcGVuTWVudSgpXCJcclxuICAgIChtZW51Q2xvc2VkKT1cImNsb3NlTWVudSgpXCJcclxuICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCJcclxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1RFUk1fQ09MTEVDVElPTlMuQVJJQV9MQUJFTFMuT1RIRVJfQ09MTEVDVElPTlMnIHwgdHJhbnNsYXRlXCJcclxuICAgIFttYXRUb29sdGlwXT1cInNlbGVjdGVkPy5tdENvbGxlY3Rpb24/Lm5hbWUgPz8gc2VsZWN0ZWQ/LnRlcm1Db2xsZWN0aW9uPy5uYW1lID8/ICcnXCJcclxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJzZWxlY3RlZC1jb2xsZWN0aW9uXCI+XHJcbiAgICAgIHt7IHNlbGVjdGVkPy5tdENvbGxlY3Rpb24/Lm5hbWUgPz8gc2VsZWN0ZWQ/LnRlcm1Db2xsZWN0aW9uPy5uYW1lID8/IChcIlRFUk1fQ09MTEVDVElPTlMuU0VMRUNURURfTk9ORVwiIHwgdHJhbnNsYXRlKSB9fVxyXG4gICAgPC9zcGFuPlxyXG4gICAgPG1hdC1zcGlubmVyICpuZ0lmPVwic2VsZWN0ZWQ/LmlzSW1wb3J0aW5nXCIgY2xhc3M9XCJzZWxlY3RlZC1jb2wtc3Bpbm5lclwiIGNvbG9yPVwiYWNjZW50XCIgZGlhbWV0ZXI9XCIxNlwiPjwvbWF0LXNwaW5uZXI+XHJcbiAgPC9saWItb3Blbi1jbG9zZS1idXR0b24+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdExheW91dD5cclxuICAgIDxsaWItb3Blbi1jbG9zZS1idXR0b25cclxuICAgICAgZnhIaWRlLmx0LXNtXHJcbiAgICAgIGNsYXNzPVwidGxkLWNvbGxlY3Rpb24tbWVudS1idXR0b25cIlxyXG4gICAgICAjc3RhdGU9XCJtYXRNZW51VHJpZ2dlclwiXHJcbiAgICAgIFtpc09wZW5lZF09XCJzdGF0ZS5tZW51T3BlblwiXHJcbiAgICAgIChtZW51T3BlbmVkKT1cIm9wZW5NZW51KClcIlxyXG4gICAgICAobWVudUNsb3NlZCk9XCJjbG9zZU1lbnUoKVwiXHJcbiAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCJcclxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInVEVSTV9DT0xMRUNUSU9OUy5BUklBX0xBQkVMUy5PVEhFUl9DT0xMRUNUSU9OUycgfCB0cmFuc2xhdGVcIlxyXG4gICAgICBbbWF0VG9vbHRpcF09XCJzZWxlY3RlZD8ubXRDb2xsZWN0aW9uPy5uYW1lID8/IHNlbGVjdGVkPy50ZXJtQ29sbGVjdGlvbj8ubmFtZSA/PyAnJ1wiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICA+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwic2VsZWN0ZWQtY29sbGVjdGlvblwiPlxyXG4gICAgICAgIHt7IHNlbGVjdGVkPy5tdENvbGxlY3Rpb24/Lm5hbWUgPz8gc2VsZWN0ZWQ/LnRlcm1Db2xsZWN0aW9uPy5uYW1lID8/IChcIlRFUk1fQ09MTEVDVElPTlMuU0VMRUNURURfTk9ORVwiIHwgdHJhbnNsYXRlKSB9fVxyXG4gICAgICA8L3NwYW4+XHJcbiAgICAgIDxtYXQtc3Bpbm5lciAqbmdJZj1cInNlbGVjdGVkPy5pc0ltcG9ydGluZ1wiIGNsYXNzPVwic2VsZWN0ZWQtY29sLXNwaW5uZXJcIiBjb2xvcj1cImFjY2VudFwiIGRpYW1ldGVyPVwiMTZcIj48L21hdC1zcGlubmVyPlxyXG4gICAgPC9saWItb3Blbi1jbG9zZS1idXR0b24+XHJcblxyXG4gICAgPGJ1dHRvbiAobWVudU9wZW5lZCk9XCJvcGVuTWVudSgpXCIgKG1lbnVDbG9zZWQpPVwiY2xvc2VNZW51KClcIiBtYXQtaWNvbi1idXR0b24gZnhIaWRlLmd0LXhzICNzdGF0ZT1cIm1hdE1lbnVUcmlnZ2VyXCIgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIj5cclxuICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJjb2xsZWN0aW9uc19tZW51XCIgW2F0dHIuY29sb3JdPVwic2VsZWN0ZWQgPyAnYWNjZW50JyA6ICcnXCI+PC9tYXQtaWNvbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvZGl2PlxyXG5cclxuPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiIGNsYXNzPVwidGxkLWNvbGxlY3Rpb24tbWVudVwiPlxyXG4gIDx0bGQtY2xvc2UtYnV0dG9uIGZ4SGlkZS5ndC14cz48L3RsZC1jbG9zZS1idXR0b24+XHJcbiAgPGRpdiBjbGFzcz1cInRsZC10ZXJtLWNvbGxlY3Rpb25cIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCIgKGtleWRvd24pPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XHJcbiAgICA8bGliLXRlcm1pbm9sb2d5LXBhbmVsIChnbG9zc2FyeVNlbGVjdEV2ZW50KT1cInNlbGVjdEdsb3NzYXJ5KCRldmVudClcIiBbc3lzdGVtXT1cInN5c3RlbVwiIFtzZWxlY3RlZENvbGxlY3Rpb25dPVwic2VsZWN0ZWRcIj48L2xpYi10ZXJtaW5vbG9neS1wYW5lbD5cclxuICA8L2Rpdj5cclxuPC9tYXQtbWVudT5cclxuIl19
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { Subject, takeUntil } from 'rxjs';
3
+ import * as icons from './icons';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "./services";
6
+ import * as i2 from "../services";
7
+ import * as i3 from "@angular/common";
8
+ import * as i4 from "../open-close-button/open-close-button.component";
9
+ import * as i5 from "@ngbracket/ngx-layout/flex";
10
+ import * as i6 from "@ngbracket/ngx-layout/extended";
11
+ import * as i7 from "../close-button/close-button.component";
12
+ import * as i8 from "@angular/material/button";
13
+ import * as i9 from "@angular/material/icon";
14
+ import * as i10 from "@angular/material/progress-spinner";
15
+ import * as i11 from "@angular/material/menu";
16
+ import * as i12 from "@angular/material/tooltip";
17
+ import * as i13 from "./components/terminology-panel/terminology-panel.component";
18
+ import * as i14 from "@ngx-translate/core";
19
+ export class TerminologyComponent {
20
+ constructor(terminologyService, iconService) {
21
+ this.terminologyService = terminologyService;
22
+ this.iconService = iconService;
23
+ this.storeSelectedInLocalStorage = true;
24
+ this.showMenuIconOnMobile = true;
25
+ this.glossarySelectEvent = new EventEmitter();
26
+ this.menuToggleEvent = new EventEmitter();
27
+ this.isRefreshEnabled = false;
28
+ this.isMenuOpened = false;
29
+ this.destroy = new Subject();
30
+ this.selected = null;
31
+ }
32
+ ngOnChanges(changes) {
33
+ if (changes) {
34
+ this.selected = this.terminologyService.engines[this.system.systemId]?.selected;
35
+ }
36
+ }
37
+ ngOnInit() {
38
+ this.iconService.registerIcons(icons);
39
+ if (this.selectedCollectionId) {
40
+ this.presetCollection();
41
+ }
42
+ this.watchSystemChanges();
43
+ }
44
+ selectGlossary(collection) {
45
+ this.selected = collection;
46
+ if (!collection?.mtCollection && collection !== null) {
47
+ if (this.terminologyService.addToEngineValidation(collection)) {
48
+ this.terminologyService.updateIfNecessary(collection, this.system.systemId, true).subscribe({
49
+ next: (res) => {
50
+ this.glossarySelectEvent.emit(res);
51
+ },
52
+ error: (error) => {
53
+ this.terminologyService.handleAddToEngineError(error, this.system.systemId);
54
+ }
55
+ });
56
+ }
57
+ }
58
+ else {
59
+ this.glossarySelectEvent.emit(collection);
60
+ }
61
+ this.terminologyService.setSelectedCollection(this.system.systemId, collection, this.storeSelectedInLocalStorage);
62
+ }
63
+ openMenu() {
64
+ this.menuToggleEvent.emit(true);
65
+ this.isRefreshEnabled = true;
66
+ this.isMenuOpened = true;
67
+ this.terminologyService
68
+ .startAutoRefresh(this.system.systemId)
69
+ .subscribe(() => {
70
+ const isBackgroundImportCompleted = this.isRefreshEnabled && !this.isMenuOpened && !this.selected?.isImporting;
71
+ if ((!this.isRefreshEnabled && !this.selected?.isImporting) || isBackgroundImportCompleted) {
72
+ this.stopRefresh();
73
+ }
74
+ });
75
+ }
76
+ closeMenu() {
77
+ this.menuToggleEvent.emit(false);
78
+ this.isMenuOpened = false;
79
+ if (this.selected?.isImporting) {
80
+ this.isRefreshEnabled = true;
81
+ return;
82
+ }
83
+ this.stopRefresh();
84
+ }
85
+ ngOnDestroy() {
86
+ this.terminologyService.resetEngines();
87
+ this.stopRefresh();
88
+ this.destroy.next(null);
89
+ this.destroy.complete();
90
+ }
91
+ stopRefresh() {
92
+ this.terminologyService.stopAutoRefresh(this.system.systemId);
93
+ this.isRefreshEnabled = false;
94
+ }
95
+ presetCollection() {
96
+ this.presetCollectionSubscription = this.terminologyService.getCollections().subscribe((res) => {
97
+ res[this.system.systemId]?.collections.forEach((collection) => {
98
+ if (collection.mtCollection?.id === this.selectedCollectionId || collection.termId === this.selectedCollectionId) {
99
+ this.selected = collection;
100
+ this.terminologyService.setSelectedCollection(this.system.systemId, collection, false);
101
+ this.presetCollectionSubscription?.unsubscribe();
102
+ }
103
+ });
104
+ });
105
+ }
106
+ watchSystemChanges() {
107
+ this.terminologyService.getEnginesWithSelectedCollectionChange()
108
+ .pipe(takeUntil(this.destroy))
109
+ .subscribe((res) => {
110
+ if (res[this.system.systemId]) {
111
+ this.selected = res[this.system.systemId].selected;
112
+ }
113
+ });
114
+ }
115
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: TerminologyComponent, deps: [{ token: i1.TerminologyService }, { token: i2.IconService }], target: i0.ɵɵFactoryTarget.Component }); }
116
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: TerminologyComponent, selector: "lib-terminology", inputs: { selectedCollectionId: "selectedCollectionId", system: "system", disabled: "disabled", storeSelectedInLocalStorage: "storeSelectedInLocalStorage", showMenuIconOnMobile: "showMenuIconOnMobile" }, outputs: { glossarySelectEvent: "glossarySelectEvent", menuToggleEvent: "menuToggleEvent" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"glossary-menu\" fxLayoutAlign=\"center center\" [ngClass.lt-sm]=\"'tld-term-collection-wrapper-mobile'\" fxLayoutGap=\"8px\">\r\n <span class=\"glossary-label\" fxHide.lt-md>\r\n {{ \"TERM_COLLECTIONS.GLOSSARY\" | translate }}\r\n </span>\r\n\r\n <lib-open-close-button\r\n *ngIf=\"!showMenuIconOnMobile; else defaultLayout\"\r\n class=\"tld-collection-menu-button\"\r\n #state=\"matMenuTrigger\"\r\n [isOpened]=\"state.menuOpen\"\r\n (menuOpened)=\"openMenu()\"\r\n (menuClosed)=\"closeMenu()\"\r\n [matMenuTriggerFor]=\"menu\"\r\n [attr.aria-label]=\"'TERM_COLLECTIONS.ARIA_LABELS.OTHER_COLLECTIONS' | translate\"\r\n [matTooltip]=\"selected?.mtCollection?.name ?? selected?.termCollection?.name ?? ''\"\r\n [disabled]=\"disabled\"\r\n >\r\n <span class=\"selected-collection\">\r\n {{ selected?.mtCollection?.name ?? selected?.termCollection?.name ?? (\"TERM_COLLECTIONS.SELECTED_NONE\" | translate) }}\r\n </span>\r\n <mat-spinner *ngIf=\"selected?.isImporting\" class=\"selected-col-spinner\" color=\"accent\" diameter=\"16\"></mat-spinner>\r\n </lib-open-close-button>\r\n\r\n <ng-template #defaultLayout>\r\n <lib-open-close-button\r\n fxHide.lt-sm\r\n class=\"tld-collection-menu-button\"\r\n #state=\"matMenuTrigger\"\r\n [isOpened]=\"state.menuOpen\"\r\n (menuOpened)=\"openMenu()\"\r\n (menuClosed)=\"closeMenu()\"\r\n [matMenuTriggerFor]=\"menu\"\r\n [attr.aria-label]=\"'TERM_COLLECTIONS.ARIA_LABELS.OTHER_COLLECTIONS' | translate\"\r\n [matTooltip]=\"selected?.mtCollection?.name ?? selected?.termCollection?.name ?? ''\"\r\n [disabled]=\"disabled\"\r\n >\r\n <span class=\"selected-collection\">\r\n {{ selected?.mtCollection?.name ?? selected?.termCollection?.name ?? (\"TERM_COLLECTIONS.SELECTED_NONE\" | translate) }}\r\n </span>\r\n <mat-spinner *ngIf=\"selected?.isImporting\" class=\"selected-col-spinner\" color=\"accent\" diameter=\"16\"></mat-spinner>\r\n </lib-open-close-button>\r\n\r\n <button (menuOpened)=\"openMenu()\" (menuClosed)=\"closeMenu()\" mat-icon-button fxHide.gt-xs #state=\"matMenuTrigger\" [matMenuTriggerFor]=\"menu\">\r\n <mat-icon svgIcon=\"collections_menu\" [attr.color]=\"selected ? 'accent' : ''\"></mat-icon>\r\n </button>\r\n </ng-template>\r\n</div>\r\n\r\n<mat-menu #menu=\"matMenu\" class=\"tld-collection-menu\">\r\n <tld-close-button fxHide.gt-xs></tld-close-button>\r\n <div class=\"tld-term-collection\" (click)=\"$event.stopPropagation()\" (keydown)=\"$event.stopPropagation()\">\r\n <lib-terminology-panel (glossarySelectEvent)=\"selectGlossary($event)\" [system]=\"system\" [selectedCollection]=\"selected\"></lib-terminology-panel>\r\n </div>\r\n</mat-menu>\r\n", styles: [":host ::ng-deep .mdc-circular-progress__circle-clipper,:host ::ng-deep .mdc-circular-progress__indeterminate-circle-graphic{width:100%!important}.selected-col-spinner{margin-left:5px}.tld-collection-menu-button .selected-collection{overflow:hidden;text-overflow:ellipsis;max-width:140px;display:inline-block;white-space:nowrap}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.OpenCloseButtonComponent, selector: "lib-open-close-button", inputs: ["disableFocusOnAction", "disabled", "isIcon", "ariaLabelCode", "isOpened"] }, { kind: "directive", type: i5.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i5.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i6.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide], [fxHide.print], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]", inputs: ["fxShow", "fxShow.print", "fxShow.xs", "fxShow.sm", "fxShow.md", "fxShow.lg", "fxShow.xl", "fxShow.lt-sm", "fxShow.lt-md", "fxShow.lt-lg", "fxShow.lt-xl", "fxShow.gt-xs", "fxShow.gt-sm", "fxShow.gt-md", "fxShow.gt-lg", "fxHide", "fxHide.print", "fxHide.xs", "fxHide.sm", "fxHide.md", "fxHide.lg", "fxHide.xl", "fxHide.lt-sm", "fxHide.lt-md", "fxHide.lt-lg", "fxHide.lt-xl", "fxHide.gt-xs", "fxHide.gt-sm", "fxHide.gt-md", "fxHide.gt-lg"] }, { kind: "directive", type: i6.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "component", type: i7.CloseButtonComponent, selector: "tld-close-button", inputs: ["ariaCode", "disabled", "tooltip"], outputs: ["tldClick"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i11.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "directive", type: i11.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i12.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i13.TerminologyPanelComponent, selector: "lib-terminology-panel", inputs: ["system", "selectedCollection"], outputs: ["glossarySelectEvent"] }, { kind: "pipe", type: i14.TranslatePipe, name: "translate" }] }); }
117
+ }
118
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: TerminologyComponent, decorators: [{
119
+ type: Component,
120
+ args: [{ selector: 'lib-terminology', template: "<div class=\"glossary-menu\" fxLayoutAlign=\"center center\" [ngClass.lt-sm]=\"'tld-term-collection-wrapper-mobile'\" fxLayoutGap=\"8px\">\r\n <span class=\"glossary-label\" fxHide.lt-md>\r\n {{ \"TERM_COLLECTIONS.GLOSSARY\" | translate }}\r\n </span>\r\n\r\n <lib-open-close-button\r\n *ngIf=\"!showMenuIconOnMobile; else defaultLayout\"\r\n class=\"tld-collection-menu-button\"\r\n #state=\"matMenuTrigger\"\r\n [isOpened]=\"state.menuOpen\"\r\n (menuOpened)=\"openMenu()\"\r\n (menuClosed)=\"closeMenu()\"\r\n [matMenuTriggerFor]=\"menu\"\r\n [attr.aria-label]=\"'TERM_COLLECTIONS.ARIA_LABELS.OTHER_COLLECTIONS' | translate\"\r\n [matTooltip]=\"selected?.mtCollection?.name ?? selected?.termCollection?.name ?? ''\"\r\n [disabled]=\"disabled\"\r\n >\r\n <span class=\"selected-collection\">\r\n {{ selected?.mtCollection?.name ?? selected?.termCollection?.name ?? (\"TERM_COLLECTIONS.SELECTED_NONE\" | translate) }}\r\n </span>\r\n <mat-spinner *ngIf=\"selected?.isImporting\" class=\"selected-col-spinner\" color=\"accent\" diameter=\"16\"></mat-spinner>\r\n </lib-open-close-button>\r\n\r\n <ng-template #defaultLayout>\r\n <lib-open-close-button\r\n fxHide.lt-sm\r\n class=\"tld-collection-menu-button\"\r\n #state=\"matMenuTrigger\"\r\n [isOpened]=\"state.menuOpen\"\r\n (menuOpened)=\"openMenu()\"\r\n (menuClosed)=\"closeMenu()\"\r\n [matMenuTriggerFor]=\"menu\"\r\n [attr.aria-label]=\"'TERM_COLLECTIONS.ARIA_LABELS.OTHER_COLLECTIONS' | translate\"\r\n [matTooltip]=\"selected?.mtCollection?.name ?? selected?.termCollection?.name ?? ''\"\r\n [disabled]=\"disabled\"\r\n >\r\n <span class=\"selected-collection\">\r\n {{ selected?.mtCollection?.name ?? selected?.termCollection?.name ?? (\"TERM_COLLECTIONS.SELECTED_NONE\" | translate) }}\r\n </span>\r\n <mat-spinner *ngIf=\"selected?.isImporting\" class=\"selected-col-spinner\" color=\"accent\" diameter=\"16\"></mat-spinner>\r\n </lib-open-close-button>\r\n\r\n <button (menuOpened)=\"openMenu()\" (menuClosed)=\"closeMenu()\" mat-icon-button fxHide.gt-xs #state=\"matMenuTrigger\" [matMenuTriggerFor]=\"menu\">\r\n <mat-icon svgIcon=\"collections_menu\" [attr.color]=\"selected ? 'accent' : ''\"></mat-icon>\r\n </button>\r\n </ng-template>\r\n</div>\r\n\r\n<mat-menu #menu=\"matMenu\" class=\"tld-collection-menu\">\r\n <tld-close-button fxHide.gt-xs></tld-close-button>\r\n <div class=\"tld-term-collection\" (click)=\"$event.stopPropagation()\" (keydown)=\"$event.stopPropagation()\">\r\n <lib-terminology-panel (glossarySelectEvent)=\"selectGlossary($event)\" [system]=\"system\" [selectedCollection]=\"selected\"></lib-terminology-panel>\r\n </div>\r\n</mat-menu>\r\n", styles: [":host ::ng-deep .mdc-circular-progress__circle-clipper,:host ::ng-deep .mdc-circular-progress__indeterminate-circle-graphic{width:100%!important}.selected-col-spinner{margin-left:5px}.tld-collection-menu-button .selected-collection{overflow:hidden;text-overflow:ellipsis;max-width:140px;display:inline-block;white-space:nowrap}\n"] }]
121
+ }], ctorParameters: () => [{ type: i1.TerminologyService }, { type: i2.IconService }], propDecorators: { selectedCollectionId: [{
122
+ type: Input
123
+ }], system: [{
124
+ type: Input,
125
+ args: [{ required: true }]
126
+ }], disabled: [{
127
+ type: Input
128
+ }], storeSelectedInLocalStorage: [{
129
+ type: Input
130
+ }], showMenuIconOnMobile: [{
131
+ type: Input
132
+ }], glossarySelectEvent: [{
133
+ type: Output
134
+ }], menuToggleEvent: [{
135
+ type: Output
136
+ }] } });
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybWlub2xvZ3kuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbW1vbi9zcmMvbGliL3Rlcm1pbm9sb2d5L3Rlcm1pbm9sb2d5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi90ZXJtaW5vbG9neS90ZXJtaW5vbG9neS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWlDLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFFckgsT0FBTyxFQUFFLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3hELE9BQU8sS0FBSyxLQUFLLE1BQU0sU0FBUyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBT2pDLE1BQU0sT0FBTyxvQkFBb0I7SUFpQi9CLFlBQTZCLGtCQUFzQyxFQUFtQixXQUF3QjtRQUFqRix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQW1CLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBYnJHLGdDQUEyQixHQUFHLElBQUksQ0FBQztRQUNuQyx5QkFBb0IsR0FBRyxJQUFJLENBQUM7UUFDM0Isd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQTZCLENBQUM7UUFDcEUsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRWhELHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUN6QixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUdaLFlBQU8sR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRXpDLGFBQVEsR0FBOEIsSUFBSSxDQUFDO0lBRXNFLENBQUM7SUFFbEgsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxrQkFB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QUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDN0IsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDbkIsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO2dCQUM5QixJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQztZQUNyRCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDOzhHQXpIVSxvQkFBb0I7a0dBQXBCLG9CQUFvQixxWENaakMsdXVGQXNEQTs7MkZEMUNhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxpQkFBaUI7aUhBS2xCLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDcUIsTUFBTTtzQkFBaEMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ2hCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csMkJBQTJCO3NCQUFuQyxLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDSSxtQkFBbUI7c0JBQTVCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUZXJtaW5vbG9neVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ29tYmluZWRDb2xsZWN0aW9uIH0gZnJvbSAnLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBJY29uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzJztcclxuaW1wb3J0ICogYXMgaWNvbnMgZnJvbSAnLi9pY29ucyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi10ZXJtaW5vbG9neScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Rlcm1pbm9sb2d5LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90ZXJtaW5vbG9neS5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGVybWlub2xvZ3lDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSBzZWxlY3RlZENvbGxlY3Rpb25JZCE6IHN0cmluZztcclxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBzeXN0ZW0hOiB7IHN5c3RlbUlkOiBzdHJpbmc7IHNvdXJjZUxhbmd1YWdlQ29kZTogc3RyaW5nOyB0YXJnZXRMYW5ndWFnZUNvZGU6IHN0cmluZyB9O1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBzdG9yZVNlbGVjdGVkSW5Mb2NhbFN0b3JhZ2UgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNob3dNZW51SWNvbk9uTW9iaWxlID0gdHJ1ZTtcclxuICBAT3V0cHV0KCkgZ2xvc3NhcnlTZWxlY3RFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8Q29tYmluZWRDb2xsZWN0aW9uIHwgbnVsbD4oKTtcclxuICBAT3V0cHV0KCkgbWVudVRvZ2dsZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBwcml2YXRlIGlzUmVmcmVzaEVuYWJsZWQgPSBmYWxzZTtcclxuICBwcml2YXRlIGlzTWVudU9wZW5lZCA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIHByZXNldENvbGxlY3Rpb25TdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgc2VsZWN0ZWQ6IENvbWJpbmVkQ29sbGVjdGlvbiB8IG51bGwgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHRlcm1pbm9sb2d5U2VydmljZTogVGVybWlub2xvZ3lTZXJ2aWNlLCBwcml2YXRlIHJlYWRvbmx5IGljb25TZXJ2aWNlOiBJY29uU2VydmljZSkge31cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXMpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZCA9IHRoaXMudGVybWlub2xvZ3lTZXJ2aWNlLmVuZ2luZXNbdGhpcy5zeXN0ZW0uc3lzdGVtSWRdPy5zZWxlY3RlZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pY29uU2VydmljZS5yZWdpc3Rlckljb25zKGljb25zKTtcclxuXHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZENvbGxlY3Rpb25JZCkge1xyXG4gICAgICB0aGlzLnByZXNldENvbGxlY3Rpb24oKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLndhdGNoU3lzdGVtQ2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0R2xvc3NhcnkoY29sbGVjdGlvbjogQ29tYmluZWRDb2xsZWN0aW9uIHwgbnVsbCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZCA9IGNvbGxlY3Rpb247XHJcblxyXG4gICAgaWYgKCFjb2xsZWN0aW9uPy5tdENvbGxlY3Rpb24gJiYgY29sbGVjdGlvbiAhPT0gbnVsbCkge1xyXG4gICAgICBpZiAodGhpcy50ZXJtaW5vbG9neVNlcnZpY2UuYWRkVG9FbmdpbmVWYWxpZGF0aW9uKGNvbGxlY3Rpb24pKSB7XHJcbiAgICAgICAgdGhpcy50ZXJtaW5vbG9neVNlcnZpY2UudXBkYXRlSWZOZWNlc3NhcnkoY29sbGVjdGlvbiwgdGhpcy5zeXN0ZW0uc3lzdGVtSWQsIHRydWUpLnN1YnNjcmliZSh7IFxyXG4gICAgICAgICAgbmV4dDogKHJlcykgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmdsb3NzYXJ5U2VsZWN0RXZlbnQuZW1pdChyZXMpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgdGhpcy50ZXJtaW5vbG9neVNlcnZpY2UuaGFuZGxlQWRkVG9FbmdpbmVFcnJvcihlcnJvciwgdGhpcy5zeXN0ZW0uc3lzdGVtSWQpXHJcbiAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmdsb3NzYXJ5U2VsZWN0RXZlbnQuZW1pdChjb2xsZWN0aW9uKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgdGhpcy50ZXJtaW5vbG9neVNlcnZpY2Uuc2V0U2VsZWN0ZWRDb2xsZWN0aW9uKHRoaXMuc3lzdGVtLnN5c3RlbUlkLCBjb2xsZWN0aW9uLCB0aGlzLnN0b3JlU2VsZWN0ZWRJbkxvY2FsU3RvcmFnZSk7XHJcbiAgfVxyXG5cclxuICBvcGVuTWVudSgpOiB2b2lkIHtcclxuICAgIHRoaXMubWVudVRvZ2dsZUV2ZW50LmVtaXQodHJ1ZSk7XHJcblxyXG4gICAgdGhpcy5pc1JlZnJlc2hFbmFibGVkID0gdHJ1ZTtcclxuICAgIHRoaXMuaXNNZW51T3BlbmVkID0gdHJ1ZTtcclxuXHJcbiAgICB0aGlzLnRlcm1pbm9sb2d5U2VydmljZVxyXG4gICAgICAuc3RhcnRBdXRvUmVmcmVzaCh0aGlzLnN5c3RlbS5zeXN0ZW1JZClcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBpc0JhY2tncm91bmRJbXBvcnRDb21wbGV0ZWQgPSBcclxuICAgICAgICAgICAgdGhpcy5pc1JlZnJlc2hFbmFibGVkICYmICF0aGlzLmlzTWVudU9wZW5lZCAmJiAhdGhpcy5zZWxlY3RlZD8uaXNJbXBvcnRpbmc7XHJcblxyXG4gICAgICAgICAgaWYgKCghdGhpcy5pc1JlZnJlc2hFbmFibGVkICYmICF0aGlzLnNlbGVjdGVkPy5pc0ltcG9ydGluZykgfHwgaXNCYWNrZ3JvdW5kSW1wb3J0Q29tcGxldGVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcFJlZnJlc2goKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VNZW51KCk6IHZvaWQge1xyXG4gICAgdGhpcy5tZW51VG9nZ2xlRXZlbnQuZW1pdChmYWxzZSk7XHJcblxyXG4gICAgdGhpcy5pc01lbnVPcGVuZWQgPSBmYWxzZTtcclxuXHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZD8uaXNJbXBvcnRpbmcpIHtcclxuICAgICAgdGhpcy5pc1JlZnJlc2hFbmFibGVkID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc3RvcFJlZnJlc2goKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy50ZXJtaW5vbG9neVNlcnZpY2UucmVzZXRFbmdpbmVzKCk7ICAgIFxyXG4gICAgdGhpcy5zdG9wUmVmcmVzaCgpO1xyXG4gICAgdGhpcy5kZXN0cm95Lm5leHQobnVsbCk7XHJcbiAgICB0aGlzLmRlc3Ryb3kuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RvcFJlZnJlc2goKTogdm9pZCB7XHJcbiAgICB0aGlzLnRlcm1pbm9sb2d5U2VydmljZS5zdG9wQXV0b1JlZnJlc2godGhpcy5zeXN0ZW0uc3lzdGVtSWQpO1xyXG4gICAgdGhpcy5pc1JlZnJlc2hFbmFibGVkID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHByZXNldENvbGxlY3Rpb24oKTogdm9pZCB7XHJcbiAgICB0aGlzLnByZXNldENvbGxlY3Rpb25TdWJzY3JpcHRpb24gPSB0aGlzLnRlcm1pbm9sb2d5U2VydmljZS5nZXRDb2xsZWN0aW9ucygpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgIHJlc1t0aGlzLnN5c3RlbS5zeXN0ZW1JZF0/LmNvbGxlY3Rpb25zLmZvckVhY2goKGNvbGxlY3Rpb24pID0+IHtcclxuICAgICAgICBpZiAoY29sbGVjdGlvbi5tdENvbGxlY3Rpb24/LmlkID09PSB0aGlzLnNlbGVjdGVkQ29sbGVjdGlvbklkIHx8IGNvbGxlY3Rpb24udGVybUlkID09PSB0aGlzLnNlbGVjdGVkQ29sbGVjdGlvbklkKSB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkID0gY29sbGVjdGlvbjtcclxuXHJcbiAgICAgICAgICB0aGlzLnRlcm1pbm9sb2d5U2VydmljZS5zZXRTZWxlY3RlZENvbGxlY3Rpb24odGhpcy5zeXN0ZW0uc3lzdGVtSWQsIGNvbGxlY3Rpb24sIGZhbHNlKTtcclxuICAgICAgICAgIHRoaXMucHJlc2V0Q29sbGVjdGlvblN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgd2F0Y2hTeXN0ZW1DaGFuZ2VzKCk6IHZvaWQge1xyXG4gICAgdGhpcy50ZXJtaW5vbG9neVNlcnZpY2UuZ2V0RW5naW5lc1dpdGhTZWxlY3RlZENvbGxlY3Rpb25DaGFuZ2UoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95KSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgIGlmIChyZXNbdGhpcy5zeXN0ZW0uc3lzdGVtSWRdKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZCA9IHJlc1t0aGlzLnN5c3RlbS5zeXN0ZW1JZF0uc2VsZWN0ZWQ7XHJcbiAgICAgIH0gICAgICBcclxuICAgIH0pXHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJnbG9zc2FyeS1tZW51XCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIiBbbmdDbGFzcy5sdC1zbV09XCIndGxkLXRlcm0tY29sbGVjdGlvbi13cmFwcGVyLW1vYmlsZSdcIiBmeExheW91dEdhcD1cIjhweFwiPlxyXG4gIDxzcGFuIGNsYXNzPVwiZ2xvc3NhcnktbGFiZWxcIiBmeEhpZGUubHQtbWQ+XHJcbiAgICB7eyBcIlRFUk1fQ09MTEVDVElPTlMuR0xPU1NBUllcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gIDwvc3Bhbj5cclxuXHJcbiAgPGxpYi1vcGVuLWNsb3NlLWJ1dHRvblxyXG4gICAgKm5nSWY9XCIhc2hvd01lbnVJY29uT25Nb2JpbGU7IGVsc2UgZGVmYXVsdExheW91dFwiXHJcbiAgICBjbGFzcz1cInRsZC1jb2xsZWN0aW9uLW1lbnUtYnV0dG9uXCJcclxuICAgICNzdGF0ZT1cIm1hdE1lbnVUcmlnZ2VyXCJcclxuICAgIFtpc09wZW5lZF09XCJzdGF0ZS5tZW51T3BlblwiXHJcbiAgICAobWVudU9wZW5lZCk9XCJvcGVuTWVudSgpXCJcclxuICAgIChtZW51Q2xvc2VkKT1cImNsb3NlTWVudSgpXCJcclxuICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCJcclxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1RFUk1fQ09MTEVDVElPTlMuQVJJQV9MQUJFTFMuT1RIRVJfQ09MTEVDVElPTlMnIHwgdHJhbnNsYXRlXCJcclxuICAgIFttYXRUb29sdGlwXT1cInNlbGVjdGVkPy5tdENvbGxlY3Rpb24/Lm5hbWUgPz8gc2VsZWN0ZWQ/LnRlcm1Db2xsZWN0aW9uPy5uYW1lID8/ICcnXCJcclxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJzZWxlY3RlZC1jb2xsZWN0aW9uXCI+XHJcbiAgICAgIHt7IHNlbGVjdGVkPy5tdENvbGxlY3Rpb24/Lm5hbWUgPz8gc2VsZWN0ZWQ/LnRlcm1Db2xsZWN0aW9uPy5uYW1lID8/IChcIlRFUk1fQ09MTEVDVElPTlMuU0VMRUNURURfTk9ORVwiIHwgdHJhbnNsYXRlKSB9fVxyXG4gICAgPC9zcGFuPlxyXG4gICAgPG1hdC1zcGlubmVyICpuZ0lmPVwic2VsZWN0ZWQ/LmlzSW1wb3J0aW5nXCIgY2xhc3M9XCJzZWxlY3RlZC1jb2wtc3Bpbm5lclwiIGNvbG9yPVwiYWNjZW50XCIgZGlhbWV0ZXI9XCIxNlwiPjwvbWF0LXNwaW5uZXI+XHJcbiAgPC9saWItb3Blbi1jbG9zZS1idXR0b24+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdExheW91dD5cclxuICAgIDxsaWItb3Blbi1jbG9zZS1idXR0b25cclxuICAgICAgZnhIaWRlLmx0LXNtXHJcbiAgICAgIGNsYXNzPVwidGxkLWNvbGxlY3Rpb24tbWVudS1idXR0b25cIlxyXG4gICAgICAjc3RhdGU9XCJtYXRNZW51VHJpZ2dlclwiXHJcbiAgICAgIFtpc09wZW5lZF09XCJzdGF0ZS5tZW51T3BlblwiXHJcbiAgICAgIChtZW51T3BlbmVkKT1cIm9wZW5NZW51KClcIlxyXG4gICAgICAobWVudUNsb3NlZCk9XCJjbG9zZU1lbnUoKVwiXHJcbiAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCJcclxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInVEVSTV9DT0xMRUNUSU9OUy5BUklBX0xBQkVMUy5PVEhFUl9DT0xMRUNUSU9OUycgfCB0cmFuc2xhdGVcIlxyXG4gICAgICBbbWF0VG9vbHRpcF09XCJzZWxlY3RlZD8ubXRDb2xsZWN0aW9uPy5uYW1lID8/IHNlbGVjdGVkPy50ZXJtQ29sbGVjdGlvbj8ubmFtZSA/PyAnJ1wiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICA+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwic2VsZWN0ZWQtY29sbGVjdGlvblwiPlxyXG4gICAgICAgIHt7IHNlbGVjdGVkPy5tdENvbGxlY3Rpb24/Lm5hbWUgPz8gc2VsZWN0ZWQ/LnRlcm1Db2xsZWN0aW9uPy5uYW1lID8/IChcIlRFUk1fQ09MTEVDVElPTlMuU0VMRUNURURfTk9ORVwiIHwgdHJhbnNsYXRlKSB9fVxyXG4gICAgICA8L3NwYW4+XHJcbiAgICAgIDxtYXQtc3Bpbm5lciAqbmdJZj1cInNlbGVjdGVkPy5pc0ltcG9ydGluZ1wiIGNsYXNzPVwic2VsZWN0ZWQtY29sLXNwaW5uZXJcIiBjb2xvcj1cImFjY2VudFwiIGRpYW1ldGVyPVwiMTZcIj48L21hdC1zcGlubmVyPlxyXG4gICAgPC9saWItb3Blbi1jbG9zZS1idXR0b24+XHJcblxyXG4gICAgPGJ1dHRvbiAobWVudU9wZW5lZCk9XCJvcGVuTWVudSgpXCIgKG1lbnVDbG9zZWQpPVwiY2xvc2VNZW51KClcIiBtYXQtaWNvbi1idXR0b24gZnhIaWRlLmd0LXhzICNzdGF0ZT1cIm1hdE1lbnVUcmlnZ2VyXCIgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIj5cclxuICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJjb2xsZWN0aW9uc19tZW51XCIgW2F0dHIuY29sb3JdPVwic2VsZWN0ZWQgPyAnYWNjZW50JyA6ICcnXCI+PC9tYXQtaWNvbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvZGl2PlxyXG5cclxuPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiIGNsYXNzPVwidGxkLWNvbGxlY3Rpb24tbWVudVwiPlxyXG4gIDx0bGQtY2xvc2UtYnV0dG9uIGZ4SGlkZS5ndC14cz48L3RsZC1jbG9zZS1idXR0b24+XHJcbiAgPGRpdiBjbGFzcz1cInRsZC10ZXJtLWNvbGxlY3Rpb25cIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCIgKGtleWRvd24pPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XHJcbiAgICA8bGliLXRlcm1pbm9sb2d5LXBhbmVsIChnbG9zc2FyeVNlbGVjdEV2ZW50KT1cInNlbGVjdEdsb3NzYXJ5KCRldmVudClcIiBbc3lzdGVtXT1cInN5c3RlbVwiIFtzZWxlY3RlZENvbGxlY3Rpb25dPVwic2VsZWN0ZWRcIj48L2xpYi10ZXJtaW5vbG9neS1wYW5lbD5cclxuICA8L2Rpdj5cclxuPC9tYXQtbWVudT5cclxuIl19