@sumaris-net/ngx-components 3.0.0-rc1 → 4.0.0-rc2

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 (633) hide show
  1. package/esm2022/public_api.mjs +337 -0
  2. package/{esm2020 → esm2022}/src/app/admin/admin-routing.module.mjs +8 -8
  3. package/{esm2020 → esm2022}/src/app/admin/admin.module.mjs +11 -11
  4. package/esm2022/src/app/admin/services/filter/person.filter.mjs +68 -0
  5. package/esm2022/src/app/admin/services/person.service.mjs +174 -0
  6. package/esm2022/src/app/admin/services/validator/person.validator.mjs +72 -0
  7. package/esm2022/src/app/admin/users/users.mjs +273 -0
  8. package/esm2022/src/app/admin/users/users.module.mjs +58 -0
  9. package/{esm2020 → esm2022}/src/app/core/about/about.modal.mjs +18 -5
  10. package/{esm2020 → esm2022}/src/app/core/about/about.module.mjs +9 -9
  11. package/{esm2020 → esm2022}/src/app/core/account/account.module.mjs +22 -22
  12. package/esm2022/src/app/core/account/account.page.mjs +335 -0
  13. package/esm2022/src/app/core/account/new-token.modal.mjs +125 -0
  14. package/esm2022/src/app/core/account/token.table.mjs +141 -0
  15. package/esm2022/src/app/core/auth/auth.form.mjs +140 -0
  16. package/esm2022/src/app/core/auth/auth.modal.mjs +76 -0
  17. package/{esm2020 → esm2022}/src/app/core/auth/auth.module.mjs +16 -16
  18. package/{esm2020 → esm2022}/src/app/core/core.module.mjs +87 -87
  19. package/{esm2020 → esm2022}/src/app/core/core.testing.module.mjs +23 -23
  20. package/esm2022/src/app/core/form/buttons/form-buttons-bar.component.mjs +109 -0
  21. package/{esm2020 → esm2022}/src/app/core/form/buttons/form-buttons-bar.module.mjs +10 -10
  22. package/esm2022/src/app/core/form/entity/editor.class.mjs +713 -0
  23. package/esm2022/src/app/core/form/entity/entity-editor-modal.class.mjs +436 -0
  24. package/esm2022/src/app/core/form/entity/entity-editor.class.mjs +724 -0
  25. package/esm2022/src/app/core/form/entity/entity-metadata.component.mjs +24 -0
  26. package/{esm2020 → esm2022}/src/app/core/form/entity/entity.module.mjs +11 -11
  27. package/esm2022/src/app/core/form/form.class.mjs +353 -0
  28. package/{esm2020 → esm2022}/src/app/core/form/form.module.mjs +30 -30
  29. package/{esm2020 → esm2022}/src/app/core/form/form.utils.mjs +69 -60
  30. package/esm2022/src/app/core/form/list/list.form.mjs +233 -0
  31. package/{esm2020 → esm2022}/src/app/core/form/list/list.module.mjs +10 -10
  32. package/esm2022/src/app/core/form/properties/properties.form.mjs +143 -0
  33. package/{esm2020 → esm2022}/src/app/core/form/properties/properties.module.mjs +13 -13
  34. package/esm2022/src/app/core/form/properties/properties.table.mjs +269 -0
  35. package/esm2022/src/app/core/form/properties/property.validator.mjs +24 -0
  36. package/esm2022/src/app/core/form/properties/testing/properties-form.test.mjs +95 -0
  37. package/{esm2020 → esm2022}/src/app/core/form/properties/testing/properties-form.testing.module.mjs +11 -11
  38. package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.mjs +73 -0
  39. package/{esm2020 → esm2022}/src/app/core/form/text-popover/testing/text-popover.testing.module.mjs +10 -10
  40. package/esm2022/src/app/core/form/text-popover/text-form.component.mjs +97 -0
  41. package/esm2022/src/app/core/form/text-popover/text-popover.component.mjs +152 -0
  42. package/{esm2020 → esm2022}/src/app/core/form/text-popover/text-popover.module.mjs +12 -12
  43. package/{esm2020 → esm2022}/src/app/core/graphql/graphql.module.mjs +5 -5
  44. package/esm2022/src/app/core/graphql/graphql.service.mjs +787 -0
  45. package/{esm2020 → esm2022}/src/app/core/graphql/graphql.utils.mjs +2 -1
  46. package/esm2022/src/app/core/home/home.mjs +283 -0
  47. package/esm2022/src/app/core/home/home.module.mjs +51 -0
  48. package/esm2022/src/app/core/icon/icon.component.mjs +40 -0
  49. package/{esm2020 → esm2022}/src/app/core/icon/icon.module.mjs +7 -7
  50. package/esm2022/src/app/core/install/install-upgrade-card.component.mjs +358 -0
  51. package/{esm2020 → esm2022}/src/app/core/install/install-upgrade-card.module.mjs +10 -10
  52. package/esm2022/src/app/core/menu/menu.component.mjs +260 -0
  53. package/esm2022/src/app/core/menu/menu.model.mjs +268 -0
  54. package/esm2022/src/app/core/menu/menu.module.mjs +52 -0
  55. package/esm2022/src/app/core/menu/menu.service.mjs +665 -0
  56. package/esm2022/src/app/core/menu/sub-menu-tab.directive.mjs +109 -0
  57. package/{esm2020 → esm2022}/src/app/core/menu/testing/menu-other.testing.mjs +4 -4
  58. package/esm2022/src/app/core/menu/testing/menu.testing.mjs +122 -0
  59. package/{esm2020 → esm2022}/src/app/core/menu/testing/menu.testing.module.mjs +12 -12
  60. package/esm2022/src/app/core/offline/update-offline-mode-card.component.mjs +29 -0
  61. package/{esm2020 → esm2022}/src/app/core/offline/update-offline-mode-card.module.mjs +10 -10
  62. package/esm2022/src/app/core/peer/select-peer.modal.mjs +192 -0
  63. package/{esm2020 → esm2022}/src/app/core/peer/select-peer.module.mjs +13 -13
  64. package/esm2022/src/app/core/register/register-confirm.page.mjs +88 -0
  65. package/esm2022/src/app/core/register/register.form.mjs +194 -0
  66. package/esm2022/src/app/core/register/register.modal.mjs +55 -0
  67. package/{esm2020 → esm2022}/src/app/core/register/register.module.mjs +13 -13
  68. package/esm2022/src/app/core/services/account.service.mjs +1217 -0
  69. package/esm2022/src/app/core/services/auth-guard.service.mjs +76 -0
  70. package/esm2022/src/app/core/services/base-entity-service.class.mjs +482 -0
  71. package/esm2022/src/app/core/services/base-graphql-service.class.mjs +224 -0
  72. package/esm2022/src/app/core/services/base58.mjs +79 -0
  73. package/esm2022/src/app/core/services/config.service.mjs +365 -0
  74. package/esm2022/src/app/core/services/crypto.service.mjs +107 -0
  75. package/esm2022/src/app/core/services/local-settings.service.mjs +468 -0
  76. package/esm2022/src/app/core/services/model/account.model.mjs +153 -0
  77. package/esm2022/src/app/core/services/model/config.model.mjs +105 -0
  78. package/esm2022/src/app/core/services/model/department.model.mjs +33 -0
  79. package/esm2022/src/app/core/services/model/entity.decorators.mjs +97 -0
  80. package/esm2022/src/app/core/services/model/entity.model.mjs +228 -0
  81. package/esm2022/src/app/core/services/model/peer.model.mjs +82 -0
  82. package/esm2022/src/app/core/services/model/person.model.mjs +109 -0
  83. package/esm2022/src/app/core/services/model/referential.model.mjs +185 -0
  84. package/esm2022/src/app/core/services/model/token.model.mjs +52 -0
  85. package/esm2022/src/app/core/services/network.service.mjs +608 -0
  86. package/{esm2020 → esm2022}/src/app/core/services/pipes/account.pipes.mjs +9 -9
  87. package/{esm2020 → esm2022}/src/app/core/services/pipes/department-to-string.pipe.mjs +5 -5
  88. package/{esm2020 → esm2022}/src/app/core/services/pipes/person-to-string.pipe.mjs +5 -5
  89. package/{esm2020 → esm2022}/src/app/core/services/pipes/usage-mode.pipes.mjs +9 -9
  90. package/{esm2020 → esm2022}/src/app/core/services/platform.service.mjs +27 -5
  91. package/esm2022/src/app/core/services/storage/entities-storage.service.mjs +434 -0
  92. package/esm2022/src/app/core/services/storage/entity-store.class.mjs +458 -0
  93. package/esm2022/src/app/core/services/testing/referential-filter.model.mjs +25 -0
  94. package/esm2022/src/app/core/services/testing/referential.validator.mjs +46 -0
  95. package/esm2022/src/app/core/services/validator/account.validator.mjs +45 -0
  96. package/esm2022/src/app/core/services/validator/base.validator.class.mjs +49 -0
  97. package/esm2022/src/app/core/services/validator/local-settings.validator.mjs +67 -0
  98. package/{esm2020 → esm2022}/src/app/core/services/validator/user-settings.validator.mjs +4 -4
  99. package/{esm2020 → esm2022}/src/app/core/services/validator/user-token.validator.mjs +4 -4
  100. package/{esm2020 → esm2022}/src/app/core/settings/settings.module.mjs +9 -9
  101. package/esm2022/src/app/core/settings/settings.page.mjs +328 -0
  102. package/esm2022/src/app/core/table/actions-column.component.mjs +115 -0
  103. package/esm2022/src/app/core/table/async-table.class.mjs +1735 -0
  104. package/esm2022/src/app/core/table/entities-async-table-datasource.class.mjs +386 -0
  105. package/esm2022/src/app/core/table/entities-table-datasource.class.mjs +401 -0
  106. package/esm2022/src/app/core/table/memory-table.class.mjs +57 -0
  107. package/esm2022/src/app/core/table/table-select-columns.component.mjs +46 -0
  108. package/esm2022/src/app/core/table/table.class.mjs +1771 -0
  109. package/esm2022/src/app/core/table/table.model.mjs +16 -0
  110. package/{esm2020 → esm2022}/src/app/core/table/table.module.mjs +12 -12
  111. package/esm2022/src/app/core/table/testing/table-validator.service.mjs +28 -0
  112. package/esm2022/src/app/core/table/testing/table.testing.mjs +291 -0
  113. package/{esm2020 → esm2022}/src/app/core/table/testing/table.testing.module.mjs +16 -16
  114. package/esm2022/src/app/core/table/testing/table2-validator.service.mjs +25 -0
  115. package/esm2022/src/app/core/table/testing/table2.testing.mjs +250 -0
  116. package/esm2022/src/app/shared/audio/audio.mjs +251 -0
  117. package/esm2022/src/app/shared/audio/audio.testing.mjs +32 -0
  118. package/{esm2020 → esm2022}/src/app/shared/audio/audio.testing.module.mjs +10 -10
  119. package/esm2022/src/app/shared/capacitor/keyboard.mjs +42 -0
  120. package/esm2022/src/app/shared/capacitor/plugins.mjs +9 -0
  121. package/esm2022/src/app/shared/dates.mjs +149 -0
  122. package/esm2022/src/app/shared/debug/debug.component.mjs +40 -0
  123. package/{esm2020 → esm2022}/src/app/shared/debug/debug.module.mjs +14 -14
  124. package/esm2022/src/app/shared/directives/autofocus.directive.mjs +98 -0
  125. package/esm2022/src/app/shared/directives/autotitle.directive.mjs +32 -0
  126. package/{esm2020 → esm2022}/src/app/shared/directives/directives.module.mjs +13 -13
  127. package/esm2022/src/app/shared/directives/drag-and-drop.directive.mjs +52 -0
  128. package/esm2022/src/app/shared/directives/ng-var.directive.mjs +33 -0
  129. package/esm2022/src/app/shared/directives/resizable/resizable.component.mjs +62 -0
  130. package/esm2022/src/app/shared/directives/resizable/resizable.directive.mjs +45 -0
  131. package/{esm2020 → esm2022}/src/app/shared/directives/resizable/resizable.module.mjs +5 -5
  132. package/esm2022/src/app/shared/file/file.service.mjs +122 -0
  133. package/{esm2020 → esm2022}/src/app/shared/file/file.utils.mjs +2 -2
  134. package/esm2022/src/app/shared/form/field.component.mjs +353 -0
  135. package/esm2022/src/app/shared/form/loading-spinner.mjs +35 -0
  136. package/{esm2020 → esm2022}/src/app/shared/functions.mjs +2 -2
  137. package/esm2022/src/app/shared/geolocation/geolocation.utils.mjs +82 -0
  138. package/esm2022/src/app/shared/gesture/gesture-config.mjs +46 -0
  139. package/esm2022/src/app/shared/graph/graph-colors.mjs +219 -0
  140. package/esm2022/src/app/shared/guard/component-dirty.guard.mjs +59 -0
  141. package/esm2022/src/app/shared/help/help.modal.mjs +63 -0
  142. package/esm2022/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +24 -0
  143. package/esm2022/src/app/shared/hotkeys/hotkeys.service.mjs +85 -0
  144. package/{esm2020 → esm2022}/src/app/shared/hotkeys/shared-hotkeys.module.mjs +12 -12
  145. package/esm2022/src/app/shared/image/gallery/image-gallery.component.mjs +388 -0
  146. package/{esm2020 → esm2022}/src/app/shared/image/gallery/image-gallery.module.mjs +22 -22
  147. package/esm2022/src/app/shared/image/gallery/testing/gallegry.model.testing.mjs +26 -0
  148. package/esm2022/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +90 -0
  149. package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.mjs +41 -0
  150. package/{esm2020 → esm2022}/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +16 -16
  151. package/{esm2020 → esm2022}/src/app/shared/image/image.module.mjs +11 -11
  152. package/esm2022/src/app/shared/image/image.service.mjs +104 -0
  153. package/esm2022/src/app/shared/inputs.mjs +231 -0
  154. package/esm2022/src/app/shared/interceptors/progess.interceptor.mjs +28 -0
  155. package/esm2022/src/app/shared/logging/logging-service.class.mjs +128 -0
  156. package/{esm2020 → esm2022}/src/app/shared/logging/logging-service.module.mjs +8 -8
  157. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.config.mjs +49 -0
  158. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.mjs +961 -0
  159. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +82 -0
  160. package/esm2022/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +217 -0
  161. package/esm2022/src/app/shared/material/badge/badge.directive.mjs +209 -0
  162. package/{esm2020 → esm2022}/src/app/shared/material/badge/badge.module.mjs +9 -9
  163. package/esm2022/src/app/shared/material/badge/badge.test.mjs +42 -0
  164. package/esm2022/src/app/shared/material/boolean/boolean.module.mjs +72 -0
  165. package/esm2022/src/app/shared/material/boolean/material-boolean2.mjs +266 -0
  166. package/esm2022/src/app/shared/material/boolean/material.boolean.mjs +271 -0
  167. package/esm2022/src/app/shared/material/boolean/testing/boolean.test.page.mjs +54 -0
  168. package/{esm2020 → esm2022}/src/app/shared/material/chips/chips.module.mjs +30 -30
  169. package/esm2022/src/app/shared/material/chips/material.chips.mjs +719 -0
  170. package/esm2022/src/app/shared/material/chips/testing/chips.test.mjs +148 -0
  171. package/{esm2020 → esm2022}/src/app/shared/material/datetime/datetime.module.mjs +38 -38
  172. package/esm2022/src/app/shared/material/datetime/material.date.mjs +396 -0
  173. package/esm2022/src/app/shared/material/datetime/material.dateshort.mjs +406 -0
  174. package/esm2022/src/app/shared/material/datetime/material.datetime.mjs +523 -0
  175. package/esm2022/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +125 -0
  176. package/esm2022/src/app/shared/material/datetime/testing/mat-date.test.mjs +122 -0
  177. package/esm2022/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +115 -0
  178. package/esm2022/src/app/shared/material/duration/duration.module.mjs +70 -0
  179. package/{esm2020 → esm2022}/src/app/shared/material/duration/duration.utils.mjs +2 -2
  180. package/esm2022/src/app/shared/material/duration/material.duration.mjs +273 -0
  181. package/esm2022/src/app/shared/material/duration/testing/mat-duration.test.mjs +79 -0
  182. package/{esm2020 → esm2022}/src/app/shared/material/latlong/latlong.utils.mjs +3 -3
  183. package/esm2022/src/app/shared/material/latlong/material.latlong.mjs +415 -0
  184. package/esm2022/src/app/shared/material/latlong/material.latlong.module.mjs +72 -0
  185. package/esm2022/src/app/shared/material/latlong/testing/latlong.test.mjs +113 -0
  186. package/{esm2020 → esm2022}/src/app/shared/material/material.module.mjs +131 -131
  187. package/{esm2020 → esm2022}/src/app/shared/material/material.testing.module.mjs +45 -45
  188. package/esm2022/src/app/shared/material/numpad/numpad.append-to-input.directive.mjs +104 -0
  189. package/esm2022/src/app/shared/material/numpad/numpad.component.mjs +83 -0
  190. package/esm2022/src/app/shared/material/numpad/numpad.container.mjs +203 -0
  191. package/esm2022/src/app/shared/material/numpad/numpad.content.mjs +19 -0
  192. package/esm2022/src/app/shared/material/numpad/numpad.directive.mjs +168 -0
  193. package/esm2022/src/app/shared/material/numpad/numpad.dom-service.mjs +36 -0
  194. package/esm2022/src/app/shared/material/numpad/numpad.model.mjs +16 -0
  195. package/{esm2020 → esm2022}/src/app/shared/material/numpad/numpad.module.mjs +20 -20
  196. package/esm2022/src/app/shared/material/numpad/testing/numpad.test.mjs +48 -0
  197. package/esm2022/src/app/shared/material/paginator/material.paginator-i18n.mjs +48 -0
  198. package/esm2022/src/app/shared/material/stepper/material.stepper-i18n.mjs +23 -0
  199. package/esm2022/src/app/shared/material/swipe/material.swipe.mjs +368 -0
  200. package/{esm2020 → esm2022}/src/app/shared/material/swipe/swipe.module.mjs +19 -19
  201. package/esm2022/src/app/shared/material/swipe/testing/swipe.test.mjs +67 -0
  202. package/esm2022/src/app/shared/material/testing/common.test.mjs +105 -0
  203. package/esm2022/src/app/shared/named-filter/named-filter-selector.component.mjs +212 -0
  204. package/esm2022/src/app/shared/named-filter/named-filter.model.mjs +49 -0
  205. package/{esm2020 → esm2022}/src/app/shared/named-filter/named-filter.module.mjs +5 -5
  206. package/esm2022/src/app/shared/named-filter/named-filter.service.mjs +69 -0
  207. package/{esm2020 → esm2022}/src/app/shared/pipes/arrays.pipe.mjs +25 -25
  208. package/{esm2020 → esm2022}/src/app/shared/pipes/colors.pipe.mjs +4 -4
  209. package/esm2022/src/app/shared/pipes/date-diff-duration.pipe.mjs +51 -0
  210. package/esm2022/src/app/shared/pipes/date-format.pipe.mjs +72 -0
  211. package/esm2022/src/app/shared/pipes/date-from-now.pipe.mjs +28 -0
  212. package/esm2022/src/app/shared/pipes/duration.pipe.mjs +36 -0
  213. package/esm2022/src/app/shared/pipes/file-size.pipe.mjs +60 -0
  214. package/esm2022/src/app/shared/pipes/form.pipes.mjs +194 -0
  215. package/{esm2020 → esm2022}/src/app/shared/pipes/highlight.pipe.mjs +5 -5
  216. package/esm2022/src/app/shared/pipes/latlong-format.pipe.mjs +42 -0
  217. package/{esm2020 → esm2022}/src/app/shared/pipes/maps.pipe.mjs +13 -13
  218. package/esm2022/src/app/shared/pipes/maskito.pipe.mjs +118 -0
  219. package/{esm2020 → esm2022}/src/app/shared/pipes/math.pipes.mjs +13 -13
  220. package/esm2022/src/app/shared/pipes/ng-init.pipe.mjs +19 -0
  221. package/{esm2020 → esm2022}/src/app/shared/pipes/number-format.pipe.mjs +5 -5
  222. package/esm2022/src/app/shared/pipes/pipes.module.mjs +256 -0
  223. package/esm2022/src/app/shared/pipes/property.pipes.mjs +97 -0
  224. package/{esm2020 → esm2022}/src/app/shared/pipes/string.pipes.mjs +31 -31
  225. package/esm2022/src/app/shared/pipes/translate-context.pipe.mjs +44 -0
  226. package/{esm2020 → esm2022}/src/app/shared/pipes/types.pipes.mjs +14 -14
  227. package/esm2022/src/app/shared/rx-state.module.mjs +23 -0
  228. package/esm2022/src/app/shared/services/memory-entity-service.class.mjs +347 -0
  229. package/esm2022/src/app/shared/services/progress-bar.service.mjs +31 -0
  230. package/esm2022/src/app/shared/services/startable-observable-service.class.mjs +121 -0
  231. package/esm2022/src/app/shared/services/startable-service.class.mjs +113 -0
  232. package/esm2022/src/app/shared/services/translate-context.service.mjs +104 -0
  233. package/{esm2020 → esm2022}/src/app/shared/shared-routing.module.mjs +11 -11
  234. package/esm2022/src/app/shared/shared.module.mjs +217 -0
  235. package/{esm2020 → esm2022}/src/app/shared/shared.testing.module.mjs +40 -40
  236. package/esm2022/src/app/shared/storage/storage-explorer.component.mjs +286 -0
  237. package/esm2022/src/app/shared/storage/storage-explorer.module.mjs +46 -0
  238. package/{esm2020 → esm2022}/src/app/shared/storage/storage-explorer.testing-routing.module.mjs +7 -7
  239. package/{esm2020 → esm2022}/src/app/shared/storage/storage-explorer.testing.module.mjs +6 -6
  240. package/esm2022/src/app/shared/storage/storage.service.mjs +134 -0
  241. package/{esm2020 → esm2022}/src/app/shared/storage/storage.utils.mjs +1 -1
  242. package/esm2022/src/app/shared/testing/observable.test.mjs +96 -0
  243. package/esm2022/src/app/shared/testing/tests.page.mjs +37 -0
  244. package/esm2022/src/app/shared/toast/toast.testing.mjs +52 -0
  245. package/{esm2020 → esm2022}/src/app/shared/toast/toast.testing.module.mjs +10 -10
  246. package/esm2022/src/app/shared/toast/toasts.mjs +144 -0
  247. package/esm2022/src/app/shared/toolbar/modal-toolbar.mjs +60 -0
  248. package/esm2022/src/app/shared/toolbar/toolbar.mjs +264 -0
  249. package/esm2022/src/app/shared/toolbar/toolbar.module.mjs +57 -0
  250. package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.mjs +59 -0
  251. package/{esm2020 → esm2022}/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +10 -10
  252. package/esm2022/src/app/shared/upload-file/upload-file-popover.component.mjs +107 -0
  253. package/esm2022/src/app/shared/upload-file/upload-file.component.mjs +211 -0
  254. package/esm2022/src/app/shared/upload-file/upload-file.model.mjs +27 -0
  255. package/esm2022/src/app/shared/validator/form-error-adapter.class.mjs +106 -0
  256. package/esm2022/src/app/shared/validator/validators.mjs +580 -0
  257. package/esm2022/src/app/shared/version/versions.mjs +81 -0
  258. package/{esm2020 → esm2022}/src/app/social/job/job.module.mjs +12 -12
  259. package/esm2022/src/app/social/job/progression/job-progression.component.mjs +35 -0
  260. package/esm2022/src/app/social/job/progression/job-progression.icon.mjs +232 -0
  261. package/esm2022/src/app/social/job/progression/job-progression.list.mjs +50 -0
  262. package/esm2022/src/app/social/job/progression/job-progression.model.mjs +28 -0
  263. package/esm2022/src/app/social/job/progression/job-progression.service.mjs +73 -0
  264. package/esm2022/src/app/social/job/testing/job-progression.testing.mjs +43 -0
  265. package/esm2022/src/app/social/job/testing/job-progression.testing.service.mjs +53 -0
  266. package/{esm2020 → esm2022}/src/app/social/job/testing/job.testing.module.mjs +9 -9
  267. package/esm2022/src/app/social/message/message.form.mjs +88 -0
  268. package/esm2022/src/app/social/message/message.modal.mjs +102 -0
  269. package/esm2022/src/app/social/message/message.model.mjs +71 -0
  270. package/{esm2020 → esm2022}/src/app/social/message/message.module.mjs +10 -10
  271. package/esm2022/src/app/social/message/message.service.mjs +88 -0
  272. package/{esm2020 → esm2022}/src/app/social/social.module.mjs +19 -19
  273. package/{esm2020 → esm2022}/src/app/social/social.testing.module.mjs +10 -10
  274. package/esm2022/src/app/social/user-event/notification/user-event-notification.icon.mjs +123 -0
  275. package/esm2022/src/app/social/user-event/notification/user-event-notification.list.mjs +263 -0
  276. package/esm2022/src/app/social/user-event/testing/user-event.testing.mjs +233 -0
  277. package/esm2022/src/app/social/user-event/testing/user-event.testing.model.mjs +128 -0
  278. package/{esm2020 → esm2022}/src/app/social/user-event/testing/user-event.testing.module.mjs +9 -9
  279. package/esm2022/src/app/social/user-event/testing/user-event.testing.service.mjs +116 -0
  280. package/esm2022/src/app/social/user-event/user-event.module.mjs +43 -0
  281. package/esm2022/src/app/social/user-event/user-event.service.mjs +498 -0
  282. package/esm2022/src/environments/environment.class.mjs +47 -0
  283. package/{fesm2020 → fesm2022}/sumaris-net.ngx-components.mjs +5555 -4021
  284. package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -0
  285. package/package.json +11 -17
  286. package/public_api.d.ts +1 -0
  287. package/src/app/admin/users/users.d.ts +1 -1
  288. package/src/app/admin/users/users.module.d.ts +2 -1
  289. package/src/app/core/account/new-token.modal.d.ts +1 -1
  290. package/src/app/core/account/token.table.d.ts +1 -1
  291. package/src/app/core/form/buttons/form-buttons-bar.component.d.ts +1 -1
  292. package/src/app/core/form/entity/editor.class.d.ts +1 -1
  293. package/src/app/core/form/entity/entity-editor-modal.class.d.ts +1 -1
  294. package/src/app/core/form/entity/entity-metadata.component.d.ts +1 -1
  295. package/src/app/core/form/form.class.d.ts +1 -1
  296. package/src/app/core/form/list/list.form.d.ts +1 -1
  297. package/src/app/core/form/properties/properties.form.d.ts +1 -1
  298. package/src/app/core/form/properties/properties.table.d.ts +1 -1
  299. package/src/app/core/form/text-popover/text-form.component.d.ts +1 -1
  300. package/src/app/core/form/text-popover/text-popover.component.d.ts +1 -1
  301. package/src/app/core/home/home.module.d.ts +4 -3
  302. package/src/app/core/icon/icon.component.d.ts +1 -1
  303. package/src/app/core/install/install-upgrade-card.component.d.ts +1 -1
  304. package/src/app/core/menu/menu.component.d.ts +1 -1
  305. package/src/app/core/menu/menu.module.d.ts +3 -5
  306. package/src/app/core/menu/menu.service.d.ts +1 -1
  307. package/src/app/core/menu/sub-menu-tab.directive.d.ts +1 -1
  308. package/src/app/core/offline/update-offline-mode-card.component.d.ts +1 -1
  309. package/src/app/core/peer/select-peer.modal.d.ts +1 -1
  310. package/src/app/core/services/base-entity-service.class.d.ts +1 -1
  311. package/src/app/core/services/model/person.model.d.ts +1 -1
  312. package/src/app/core/services/model/settings.model.d.ts +1 -1
  313. package/src/app/core/services/network.types.d.ts +2 -2
  314. package/src/app/core/services/storage/entity-store.class.d.ts +1 -1
  315. package/src/app/core/table/actions-column.component.d.ts +1 -1
  316. package/src/app/core/table/async-table.class.d.ts +1 -1
  317. package/src/app/core/table/memory-table.class.d.ts +1 -1
  318. package/src/app/core/table/table-select-columns.component.d.ts +1 -1
  319. package/src/app/core/table/table.class.d.ts +1 -1
  320. package/src/app/core/table/table.model.d.ts +1 -1
  321. package/src/app/core/table/testing/table.testing.d.ts +1 -1
  322. package/src/app/shared/audio/audio.d.ts +1 -1
  323. package/src/app/shared/debug/debug.component.d.ts +1 -1
  324. package/src/app/shared/directives/autofocus.directive.d.ts +1 -1
  325. package/src/app/shared/directives/ng-var.directive.d.ts +1 -1
  326. package/src/app/shared/directives/resizable/resizable.component.d.ts +1 -1
  327. package/src/app/shared/events.d.ts +1 -1
  328. package/src/app/shared/form/field.component.d.ts +1 -1
  329. package/src/app/shared/form/loading-spinner.d.ts +1 -1
  330. package/src/app/shared/help/help.modal.d.ts +1 -1
  331. package/src/app/shared/image/gallery/image-gallery.component.d.ts +1 -1
  332. package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +1 -1
  333. package/src/app/shared/material/autocomplete/material.autocomplete.module.d.ts +10 -9
  334. package/src/app/shared/material/badge/badge.directive.d.ts +1 -1
  335. package/src/app/shared/material/boolean/boolean.module.d.ts +4 -5
  336. package/src/app/shared/material/boolean/material-boolean2.d.ts +1 -1
  337. package/src/app/shared/material/boolean/material.boolean.d.ts +1 -1
  338. package/src/app/shared/material/chips/material.chips.d.ts +1 -1
  339. package/src/app/shared/material/datetime/datetime.module.d.ts +2 -2
  340. package/src/app/shared/material/datetime/material.date.d.ts +2 -2
  341. package/src/app/shared/material/datetime/material.dateshort.d.ts +3 -3
  342. package/src/app/shared/material/datetime/material.datetime.d.ts +5 -4
  343. package/src/app/shared/material/duration/duration.module.d.ts +6 -5
  344. package/src/app/shared/material/duration/material.duration.d.ts +2 -2
  345. package/src/app/shared/material/latlong/material.latlong.d.ts +5 -5
  346. package/src/app/shared/material/latlong/material.latlong.module.d.ts +9 -8
  347. package/src/app/shared/material/latlong/testing/latlong.test.d.ts +2 -0
  348. package/src/app/shared/material/numpad/numpad.append-to-input.directive.d.ts +1 -1
  349. package/src/app/shared/material/numpad/numpad.component.d.ts +1 -1
  350. package/src/app/shared/material/numpad/numpad.content.d.ts +1 -1
  351. package/src/app/shared/material/numpad/numpad.directive.d.ts +1 -1
  352. package/src/app/shared/material/swipe/material.swipe.d.ts +1 -1
  353. package/src/app/shared/material/testing/common.test.d.ts +4 -2
  354. package/src/app/shared/named-filter/named-filter-selector.component.d.ts +1 -1
  355. package/src/app/shared/pipes/maskito.pipe.d.ts +16 -0
  356. package/src/app/shared/pipes/pipes.module.d.ts +5 -4
  357. package/src/app/shared/pipes/types.pipes.d.ts +3 -3
  358. package/src/app/shared/rx-state.module.d.ts +1 -1
  359. package/src/app/shared/services/job.utils.d.ts +1 -1
  360. package/src/app/shared/shared.module.d.ts +11 -12
  361. package/src/app/shared/storage/storage-explorer.component.d.ts +1 -1
  362. package/src/app/shared/storage/storage-explorer.module.d.ts +3 -3
  363. package/src/app/shared/storage/storage.service.d.ts +1 -1
  364. package/src/app/shared/storage/storage.utils.d.ts +1 -1
  365. package/src/app/shared/toolbar/modal-toolbar.d.ts +1 -1
  366. package/src/app/shared/toolbar/toolbar.d.ts +1 -1
  367. package/src/app/shared/toolbar/toolbar.module.d.ts +4 -3
  368. package/src/app/shared/upload-file/upload-file-popover.component.d.ts +1 -1
  369. package/src/app/shared/upload-file/upload-file.component.d.ts +1 -1
  370. package/src/app/shared/upload-file/upload-file.model.d.ts +2 -2
  371. package/src/app/social/job/progression/job-progression.component.d.ts +1 -1
  372. package/src/app/social/job/progression/job-progression.icon.d.ts +1 -1
  373. package/src/app/social/job/progression/job-progression.list.d.ts +1 -1
  374. package/src/app/social/message/message.form.d.ts +1 -1
  375. package/src/app/social/message/message.modal.d.ts +1 -1
  376. package/src/app/social/user-event/notification/user-event-notification.icon.d.ts +4 -3
  377. package/src/app/social/user-event/notification/user-event-notification.list.d.ts +1 -1
  378. package/src/app/social/user-event/user-event.model.d.ts +2 -2
  379. package/src/app/social/user-event/user-event.module.d.ts +3 -2
  380. package/src/assets/i18n/fr.json +2 -2
  381. package/src/theme/_material.globals.scss +2 -2
  382. package/src/theme/_material.scss +22 -1
  383. package/src/theme/_mixins.scss +2 -2
  384. package/src/theme/_ngx-components.scss +7 -8
  385. package/src/theme/_ngx-components.table.scss +12 -6
  386. package/esm2020/public_api.mjs +0 -336
  387. package/esm2020/src/app/admin/services/filter/person.filter.mjs +0 -59
  388. package/esm2020/src/app/admin/services/person.service.mjs +0 -170
  389. package/esm2020/src/app/admin/services/validator/person.validator.mjs +0 -71
  390. package/esm2020/src/app/admin/users/users.mjs +0 -259
  391. package/esm2020/src/app/admin/users/users.module.mjs +0 -54
  392. package/esm2020/src/app/core/account/account.page.mjs +0 -317
  393. package/esm2020/src/app/core/account/new-token.modal.mjs +0 -115
  394. package/esm2020/src/app/core/account/token.table.mjs +0 -137
  395. package/esm2020/src/app/core/auth/auth.form.mjs +0 -132
  396. package/esm2020/src/app/core/auth/auth.modal.mjs +0 -72
  397. package/esm2020/src/app/core/form/buttons/form-buttons-bar.component.mjs +0 -107
  398. package/esm2020/src/app/core/form/entity/editor.class.mjs +0 -679
  399. package/esm2020/src/app/core/form/entity/entity-editor-modal.class.mjs +0 -422
  400. package/esm2020/src/app/core/form/entity/entity-editor.class.mjs +0 -690
  401. package/esm2020/src/app/core/form/entity/entity-metadata.component.mjs +0 -25
  402. package/esm2020/src/app/core/form/form.class.mjs +0 -345
  403. package/esm2020/src/app/core/form/list/list.form.mjs +0 -222
  404. package/esm2020/src/app/core/form/properties/properties.form.mjs +0 -132
  405. package/esm2020/src/app/core/form/properties/properties.table.mjs +0 -265
  406. package/esm2020/src/app/core/form/properties/property.validator.mjs +0 -23
  407. package/esm2020/src/app/core/form/properties/testing/properties-form.test.mjs +0 -90
  408. package/esm2020/src/app/core/form/text-popover/testing/text-popover.testing.mjs +0 -70
  409. package/esm2020/src/app/core/form/text-popover/text-form.component.mjs +0 -89
  410. package/esm2020/src/app/core/form/text-popover/text-popover.component.mjs +0 -146
  411. package/esm2020/src/app/core/graphql/graphql.service.mjs +0 -774
  412. package/esm2020/src/app/core/home/home.mjs +0 -258
  413. package/esm2020/src/app/core/home/home.module.mjs +0 -48
  414. package/esm2020/src/app/core/icon/icon.component.mjs +0 -41
  415. package/esm2020/src/app/core/install/install-upgrade-card.component.mjs +0 -344
  416. package/esm2020/src/app/core/menu/menu.component.mjs +0 -239
  417. package/esm2020/src/app/core/menu/menu.model.mjs +0 -247
  418. package/esm2020/src/app/core/menu/menu.module.mjs +0 -57
  419. package/esm2020/src/app/core/menu/menu.service.mjs +0 -654
  420. package/esm2020/src/app/core/menu/sub-menu-tab.directive.mjs +0 -98
  421. package/esm2020/src/app/core/menu/testing/menu.testing.mjs +0 -121
  422. package/esm2020/src/app/core/offline/update-offline-mode-card.component.mjs +0 -27
  423. package/esm2020/src/app/core/peer/select-peer.modal.mjs +0 -183
  424. package/esm2020/src/app/core/register/register-confirm.page.mjs +0 -81
  425. package/esm2020/src/app/core/register/register.form.mjs +0 -183
  426. package/esm2020/src/app/core/register/register.modal.mjs +0 -52
  427. package/esm2020/src/app/core/services/account.service.mjs +0 -1206
  428. package/esm2020/src/app/core/services/auth-guard.service.mjs +0 -71
  429. package/esm2020/src/app/core/services/base-entity-service.class.mjs +0 -468
  430. package/esm2020/src/app/core/services/base-graphql-service.class.mjs +0 -221
  431. package/esm2020/src/app/core/services/base58.mjs +0 -78
  432. package/esm2020/src/app/core/services/config.service.mjs +0 -355
  433. package/esm2020/src/app/core/services/crypto.service.mjs +0 -107
  434. package/esm2020/src/app/core/services/local-settings.service.mjs +0 -460
  435. package/esm2020/src/app/core/services/model/account.model.mjs +0 -147
  436. package/esm2020/src/app/core/services/model/config.model.mjs +0 -92
  437. package/esm2020/src/app/core/services/model/department.model.mjs +0 -30
  438. package/esm2020/src/app/core/services/model/entity.decorators.mjs +0 -97
  439. package/esm2020/src/app/core/services/model/entity.model.mjs +0 -225
  440. package/esm2020/src/app/core/services/model/peer.model.mjs +0 -68
  441. package/esm2020/src/app/core/services/model/person.model.mjs +0 -97
  442. package/esm2020/src/app/core/services/model/referential.model.mjs +0 -164
  443. package/esm2020/src/app/core/services/model/token.model.mjs +0 -48
  444. package/esm2020/src/app/core/services/network.service.mjs +0 -590
  445. package/esm2020/src/app/core/services/storage/entities-storage.service.mjs +0 -428
  446. package/esm2020/src/app/core/services/storage/entity-store.class.mjs +0 -449
  447. package/esm2020/src/app/core/services/testing/referential-filter.model.mjs +0 -23
  448. package/esm2020/src/app/core/services/testing/referential.validator.mjs +0 -45
  449. package/esm2020/src/app/core/services/validator/account.validator.mjs +0 -41
  450. package/esm2020/src/app/core/services/validator/base.validator.class.mjs +0 -47
  451. package/esm2020/src/app/core/services/validator/local-settings.validator.mjs +0 -66
  452. package/esm2020/src/app/core/settings/settings.page.mjs +0 -312
  453. package/esm2020/src/app/core/table/actions-column.component.mjs +0 -102
  454. package/esm2020/src/app/core/table/async-table.class.mjs +0 -1698
  455. package/esm2020/src/app/core/table/entities-async-table-datasource.class.mjs +0 -384
  456. package/esm2020/src/app/core/table/entities-table-datasource.class.mjs +0 -399
  457. package/esm2020/src/app/core/table/memory-table.class.mjs +0 -53
  458. package/esm2020/src/app/core/table/table-select-columns.component.mjs +0 -43
  459. package/esm2020/src/app/core/table/table.class.mjs +0 -1733
  460. package/esm2020/src/app/core/table/table.model.mjs +0 -12
  461. package/esm2020/src/app/core/table/testing/table-validator.service.mjs +0 -27
  462. package/esm2020/src/app/core/table/testing/table.testing.mjs +0 -281
  463. package/esm2020/src/app/core/table/testing/table2-validator.service.mjs +0 -24
  464. package/esm2020/src/app/core/table/testing/table2.testing.mjs +0 -242
  465. package/esm2020/src/app/shared/audio/audio.mjs +0 -248
  466. package/esm2020/src/app/shared/audio/audio.testing.mjs +0 -31
  467. package/esm2020/src/app/shared/capacitor/keyboard.mjs +0 -40
  468. package/esm2020/src/app/shared/capacitor/plugins.mjs +0 -9
  469. package/esm2020/src/app/shared/dates.mjs +0 -149
  470. package/esm2020/src/app/shared/debug/debug.component.mjs +0 -39
  471. package/esm2020/src/app/shared/directives/autofocus.directive.mjs +0 -93
  472. package/esm2020/src/app/shared/directives/autotitle.directive.mjs +0 -30
  473. package/esm2020/src/app/shared/directives/drag-and-drop.directive.mjs +0 -53
  474. package/esm2020/src/app/shared/directives/ng-var.directive.mjs +0 -31
  475. package/esm2020/src/app/shared/directives/resizable/resizable.component.mjs +0 -60
  476. package/esm2020/src/app/shared/directives/resizable/resizable.directive.mjs +0 -40
  477. package/esm2020/src/app/shared/file/file.service.mjs +0 -117
  478. package/esm2020/src/app/shared/form/field.component.mjs +0 -334
  479. package/esm2020/src/app/shared/form/loading-spinner.mjs +0 -36
  480. package/esm2020/src/app/shared/geolocation/geolocation.utils.mjs +0 -80
  481. package/esm2020/src/app/shared/gesture/gesture-config.mjs +0 -49
  482. package/esm2020/src/app/shared/graph/graph-colors.mjs +0 -212
  483. package/esm2020/src/app/shared/guard/component-dirty.guard.mjs +0 -57
  484. package/esm2020/src/app/shared/help/help.modal.mjs +0 -53
  485. package/esm2020/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +0 -23
  486. package/esm2020/src/app/shared/hotkeys/hotkeys.service.mjs +0 -81
  487. package/esm2020/src/app/shared/image/gallery/image-gallery.component.mjs +0 -368
  488. package/esm2020/src/app/shared/image/gallery/testing/gallegry.model.testing.mjs +0 -27
  489. package/esm2020/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +0 -90
  490. package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.mjs +0 -39
  491. package/esm2020/src/app/shared/image/image.service.mjs +0 -98
  492. package/esm2020/src/app/shared/inputs.mjs +0 -231
  493. package/esm2020/src/app/shared/interceptors/progess.interceptor.mjs +0 -27
  494. package/esm2020/src/app/shared/logging/logging-service.class.mjs +0 -121
  495. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.config.mjs +0 -47
  496. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.mjs +0 -925
  497. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +0 -78
  498. package/esm2020/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +0 -209
  499. package/esm2020/src/app/shared/material/badge/badge.directive.mjs +0 -199
  500. package/esm2020/src/app/shared/material/badge/badge.test.mjs +0 -41
  501. package/esm2020/src/app/shared/material/boolean/boolean.module.mjs +0 -76
  502. package/esm2020/src/app/shared/material/boolean/material-boolean2.mjs +0 -248
  503. package/esm2020/src/app/shared/material/boolean/material.boolean.mjs +0 -254
  504. package/esm2020/src/app/shared/material/boolean/testing/boolean.test.page.mjs +0 -51
  505. package/esm2020/src/app/shared/material/chips/material.chips.mjs +0 -688
  506. package/esm2020/src/app/shared/material/chips/testing/chips.test.mjs +0 -143
  507. package/esm2020/src/app/shared/material/datetime/material.date.mjs +0 -378
  508. package/esm2020/src/app/shared/material/datetime/material.dateshort.mjs +0 -387
  509. package/esm2020/src/app/shared/material/datetime/material.datetime.mjs +0 -501
  510. package/esm2020/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +0 -120
  511. package/esm2020/src/app/shared/material/datetime/testing/mat-date.test.mjs +0 -118
  512. package/esm2020/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +0 -111
  513. package/esm2020/src/app/shared/material/duration/duration.module.mjs +0 -67
  514. package/esm2020/src/app/shared/material/duration/material.duration.mjs +0 -258
  515. package/esm2020/src/app/shared/material/duration/testing/mat-duration.test.mjs +0 -76
  516. package/esm2020/src/app/shared/material/latlong/material.latlong.mjs +0 -383
  517. package/esm2020/src/app/shared/material/latlong/material.latlong.module.mjs +0 -67
  518. package/esm2020/src/app/shared/material/latlong/testing/latlong.test.mjs +0 -102
  519. package/esm2020/src/app/shared/material/numpad/numpad.append-to-input.directive.mjs +0 -98
  520. package/esm2020/src/app/shared/material/numpad/numpad.component.mjs +0 -80
  521. package/esm2020/src/app/shared/material/numpad/numpad.container.mjs +0 -190
  522. package/esm2020/src/app/shared/material/numpad/numpad.content.mjs +0 -17
  523. package/esm2020/src/app/shared/material/numpad/numpad.directive.mjs +0 -162
  524. package/esm2020/src/app/shared/material/numpad/numpad.dom-service.mjs +0 -32
  525. package/esm2020/src/app/shared/material/numpad/numpad.model.mjs +0 -15
  526. package/esm2020/src/app/shared/material/numpad/testing/numpad.test.mjs +0 -46
  527. package/esm2020/src/app/shared/material/paginator/material.paginator-i18n.mjs +0 -46
  528. package/esm2020/src/app/shared/material/stepper/material.stepper-i18n.mjs +0 -22
  529. package/esm2020/src/app/shared/material/swipe/material.swipe.mjs +0 -345
  530. package/esm2020/src/app/shared/material/swipe/testing/swipe.test.mjs +0 -64
  531. package/esm2020/src/app/shared/material/testing/common.test.mjs +0 -95
  532. package/esm2020/src/app/shared/named-filter/named-filter-selector.component.mjs +0 -202
  533. package/esm2020/src/app/shared/named-filter/named-filter.model.mjs +0 -45
  534. package/esm2020/src/app/shared/named-filter/named-filter.service.mjs +0 -63
  535. package/esm2020/src/app/shared/pipes/date-diff-duration.pipe.mjs +0 -48
  536. package/esm2020/src/app/shared/pipes/date-format.pipe.mjs +0 -66
  537. package/esm2020/src/app/shared/pipes/date-from-now.pipe.mjs +0 -27
  538. package/esm2020/src/app/shared/pipes/duration.pipe.mjs +0 -34
  539. package/esm2020/src/app/shared/pipes/file-size.pipe.mjs +0 -62
  540. package/esm2020/src/app/shared/pipes/form.pipes.mjs +0 -187
  541. package/esm2020/src/app/shared/pipes/latlong-format.pipe.mjs +0 -46
  542. package/esm2020/src/app/shared/pipes/ng-init.pipe.mjs +0 -21
  543. package/esm2020/src/app/shared/pipes/pipes.module.mjs +0 -247
  544. package/esm2020/src/app/shared/pipes/property.pipes.mjs +0 -93
  545. package/esm2020/src/app/shared/pipes/translate-context.pipe.mjs +0 -43
  546. package/esm2020/src/app/shared/rx-state.module.mjs +0 -23
  547. package/esm2020/src/app/shared/services/memory-entity-service.class.mjs +0 -339
  548. package/esm2020/src/app/shared/services/progress-bar.service.mjs +0 -33
  549. package/esm2020/src/app/shared/services/startable-observable-service.class.mjs +0 -121
  550. package/esm2020/src/app/shared/services/startable-service.class.mjs +0 -113
  551. package/esm2020/src/app/shared/services/translate-context.service.mjs +0 -103
  552. package/esm2020/src/app/shared/shared.module.mjs +0 -224
  553. package/esm2020/src/app/shared/storage/storage-explorer.component.mjs +0 -268
  554. package/esm2020/src/app/shared/storage/storage-explorer.module.mjs +0 -47
  555. package/esm2020/src/app/shared/storage/storage.service.mjs +0 -132
  556. package/esm2020/src/app/shared/testing/observable.test.mjs +0 -95
  557. package/esm2020/src/app/shared/testing/tests.page.mjs +0 -33
  558. package/esm2020/src/app/shared/toast/toast.testing.mjs +0 -51
  559. package/esm2020/src/app/shared/toast/toasts.mjs +0 -144
  560. package/esm2020/src/app/shared/toolbar/modal-toolbar.mjs +0 -58
  561. package/esm2020/src/app/shared/toolbar/toolbar.mjs +0 -251
  562. package/esm2020/src/app/shared/toolbar/toolbar.module.mjs +0 -53
  563. package/esm2020/src/app/shared/upload-file/testing/upload-file.testing.mjs +0 -58
  564. package/esm2020/src/app/shared/upload-file/upload-file-popover.component.mjs +0 -97
  565. package/esm2020/src/app/shared/upload-file/upload-file.component.mjs +0 -204
  566. package/esm2020/src/app/shared/upload-file/upload-file.model.mjs +0 -20
  567. package/esm2020/src/app/shared/validator/form-error-adapter.class.mjs +0 -104
  568. package/esm2020/src/app/shared/validator/validators.mjs +0 -580
  569. package/esm2020/src/app/shared/version/versions.mjs +0 -81
  570. package/esm2020/src/app/social/job/progression/job-progression.component.mjs +0 -34
  571. package/esm2020/src/app/social/job/progression/job-progression.icon.mjs +0 -223
  572. package/esm2020/src/app/social/job/progression/job-progression.list.mjs +0 -46
  573. package/esm2020/src/app/social/job/progression/job-progression.model.mjs +0 -23
  574. package/esm2020/src/app/social/job/progression/job-progression.service.mjs +0 -71
  575. package/esm2020/src/app/social/job/testing/job-progression.testing.mjs +0 -41
  576. package/esm2020/src/app/social/job/testing/job-progression.testing.service.mjs +0 -55
  577. package/esm2020/src/app/social/message/message.form.mjs +0 -84
  578. package/esm2020/src/app/social/message/message.modal.mjs +0 -93
  579. package/esm2020/src/app/social/message/message.model.mjs +0 -64
  580. package/esm2020/src/app/social/message/message.service.mjs +0 -84
  581. package/esm2020/src/app/social/user-event/notification/user-event-notification.icon.mjs +0 -114
  582. package/esm2020/src/app/social/user-event/notification/user-event-notification.list.mjs +0 -246
  583. package/esm2020/src/app/social/user-event/testing/user-event.testing.mjs +0 -227
  584. package/esm2020/src/app/social/user-event/testing/user-event.testing.model.mjs +0 -112
  585. package/esm2020/src/app/social/user-event/testing/user-event.testing.service.mjs +0 -111
  586. package/esm2020/src/app/social/user-event/user-event.module.mjs +0 -39
  587. package/esm2020/src/app/social/user-event/user-event.service.mjs +0 -488
  588. package/esm2020/src/environments/environment.class.mjs +0 -5
  589. package/fesm2015/sumaris-net.ngx-components.mjs +0 -41541
  590. package/fesm2015/sumaris-net.ngx-components.mjs.map +0 -1
  591. package/fesm2020/sumaris-net.ngx-components.mjs.map +0 -1
  592. /package/{esm2020 → esm2022}/src/app/core/services/config/core.config.mjs +0 -0
  593. /package/{esm2020 → esm2022}/src/app/core/services/errors.mjs +0 -0
  594. /package/{esm2020 → esm2022}/src/app/core/services/model/filter.model.mjs +0 -0
  595. /package/{esm2020 → esm2022}/src/app/core/services/model/history.model.mjs +0 -0
  596. /package/{esm2020 → esm2022}/src/app/core/services/model/model.enum.mjs +0 -0
  597. /package/{esm2020 → esm2022}/src/app/core/services/model/settings.model.mjs +0 -0
  598. /package/{esm2020 → esm2022}/src/app/core/services/model/tree-item-entity.model.mjs +0 -0
  599. /package/{esm2020 → esm2022}/src/app/core/services/network.types.mjs +0 -0
  600. /package/{esm2020 → esm2022}/src/app/core/services/network.utils.mjs +0 -0
  601. /package/{esm2020 → esm2022}/src/app/core/table/table.utils.mjs +0 -0
  602. /package/{esm2020 → esm2022}/src/app/shared/alerts.mjs +0 -0
  603. /package/{esm2020 → esm2022}/src/app/shared/constants.mjs +0 -0
  604. /package/{esm2020 → esm2022}/src/app/shared/debug/debug-service.class.mjs +0 -0
  605. /package/{esm2020 → esm2022}/src/app/shared/events.mjs +0 -0
  606. /package/{esm2020 → esm2022}/src/app/shared/file/csv.utils.mjs +0 -0
  607. /package/{esm2020 → esm2022}/src/app/shared/file/images.utils.mjs +0 -0
  608. /package/{esm2020 → esm2022}/src/app/shared/file/json.utils.mjs +0 -0
  609. /package/{esm2020 → esm2022}/src/app/shared/file/uri.utils.mjs +0 -0
  610. /package/{esm2020 → esm2022}/src/app/shared/focusable.mjs +0 -0
  611. /package/{esm2020 → esm2022}/src/app/shared/form/field.model.mjs +0 -0
  612. /package/{esm2020 → esm2022}/src/app/shared/forms.mjs +0 -0
  613. /package/{esm2020 → esm2022}/src/app/shared/gesture/hammer.utils.mjs +0 -0
  614. /package/{esm2020 → esm2022}/src/app/shared/graph/colors.utils.mjs +0 -0
  615. /package/{esm2020 → esm2022}/src/app/shared/http/http.utils.mjs +0 -0
  616. /package/{esm2020 → esm2022}/src/app/shared/image/image.model.mjs +0 -0
  617. /package/{esm2020 → esm2022}/src/app/shared/logging/log-level.model.mjs +0 -0
  618. /package/{esm2020 → esm2022}/src/app/shared/logging/logger.model.mjs +0 -0
  619. /package/{esm2020 → esm2022}/src/app/shared/logging/logging-service.config.mjs +0 -0
  620. /package/{esm2020 → esm2022}/src/app/shared/material/autocomplete/material.autocomplete.utils.mjs +0 -0
  621. /package/{esm2020 → esm2022}/src/app/shared/material/material.animations.mjs +0 -0
  622. /package/{esm2020 → esm2022}/src/app/shared/modules.mjs +0 -0
  623. /package/{esm2020 → esm2022}/src/app/shared/observables.mjs +0 -0
  624. /package/{esm2020 → esm2022}/src/app/shared/platforms.mjs +0 -0
  625. /package/{esm2020 → esm2022}/src/app/shared/services/entity-service.class.mjs +0 -0
  626. /package/{esm2020 → esm2022}/src/app/shared/services/job.utils.mjs +0 -0
  627. /package/{esm2020 → esm2022}/src/app/shared/services/validator-service.class.mjs +0 -0
  628. /package/{esm2020 → esm2022}/src/app/shared/services.mjs +0 -0
  629. /package/{esm2020 → esm2022}/src/app/shared/types.mjs +0 -0
  630. /package/{esm2020 → esm2022}/src/app/social/social.errors.mjs +0 -0
  631. /package/{esm2020 → esm2022}/src/app/social/user-event/user-event.model.mjs +0 -0
  632. /package/{esm2020 → esm2022}/src/environments/environment.mjs +0 -0
  633. /package/{esm2020 → esm2022}/sumaris-net.ngx-components.mjs +0 -0
@@ -0,0 +1,121 @@
1
+ import { Directive, Optional } from '@angular/core';
2
+ import { BehaviorSubject, firstValueFrom, Subject, Subscription } from 'rxjs';
3
+ import { filter, takeUntil } from 'rxjs/operators';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * Same as StartableService, but with a dataSubject instead of a simple 'data' property
7
+ */
8
+ export class StartableObservableService {
9
+ dataSubject = new BehaviorSubject(null);
10
+ startSubject = new Subject();
11
+ stopSubject = new Subject();
12
+ _debug = false;
13
+ _startByReadyFunction = true; // should start when calling ready() ?
14
+ _started = false;
15
+ _startPromise = null;
16
+ _startPrerequisite = null;
17
+ _subscription = null;
18
+ constructor(prerequisiteService) {
19
+ this._startPrerequisite = prerequisiteService
20
+ ? () => prerequisiteService.ready()
21
+ : () => Promise.resolve();
22
+ }
23
+ start(opts) {
24
+ if (this._startPromise)
25
+ return this._startPromise;
26
+ if (this._started)
27
+ return Promise.resolve(this.dataSubject.value);
28
+ this._startPromise = this._startPrerequisite()
29
+ .then(() => this.ngOnStart(opts))
30
+ .then(data => {
31
+ this._started = true;
32
+ this._startPromise = undefined;
33
+ // Should be done AFTER 'this._started = true', because of the 'filter' operator, inside ready() function
34
+ this.dataSubject.next(data);
35
+ this.startSubject.next(data);
36
+ return data;
37
+ })
38
+ .catch(err => {
39
+ if (!this.stopped) {
40
+ console.error('Failed to start a service: ' + (err && err.message || err), err);
41
+ this._started = false;
42
+ this._startPromise = null;
43
+ }
44
+ return null;
45
+ });
46
+ return this._startPromise;
47
+ }
48
+ ready() {
49
+ if (this._started)
50
+ return Promise.resolve(this.dataSubject.value);
51
+ if (this._startPromise)
52
+ return this._startPromise;
53
+ if (this._startByReadyFunction)
54
+ return this.start();
55
+ return firstValueFrom(this.dataSubject
56
+ .pipe(takeUntil(this.stopSubject),
57
+ // Wait start() to be called, to exclude the initial 'null' value
58
+ filter(_ => this._started)));
59
+ }
60
+ async stop() {
61
+ try {
62
+ this.unsubscribe();
63
+ await this.ngOnStop();
64
+ }
65
+ catch (err) {
66
+ console.error('Failed to stop a service: ' + (err && err.message || err), err);
67
+ }
68
+ finally {
69
+ this._started = false;
70
+ this._startPromise = undefined;
71
+ this.stopSubject.next(); // Stop all running observables
72
+ this.dataSubject.next(null); // Reset data
73
+ }
74
+ }
75
+ async restart(opts) {
76
+ if (this._startPromise)
77
+ await this._startPromise; // Wait end of previous loading
78
+ if (this._started)
79
+ await this.stop(); // Then stop if started
80
+ return this.start(opts); // Then start again
81
+ }
82
+ get started() {
83
+ return this._started;
84
+ }
85
+ get starting() {
86
+ return !!this._startPromise;
87
+ }
88
+ get stopped() {
89
+ return !this._started && !this._startPromise;
90
+ }
91
+ get data() {
92
+ return this.dataSubject.value;
93
+ }
94
+ set data(value) {
95
+ if (this.dataSubject.value !== value) {
96
+ this.dataSubject.next(value);
97
+ }
98
+ }
99
+ registerSubscription(sub) {
100
+ this._subscription = this._subscription || new Subscription();
101
+ this._subscription.add(sub);
102
+ }
103
+ unregisterSubscription(sub) {
104
+ this._subscription?.remove(sub);
105
+ }
106
+ unsubscribe() {
107
+ this._subscription?.unsubscribe();
108
+ this._subscription = null;
109
+ }
110
+ ngOnStop() {
111
+ // Can be overwritten by subclasses
112
+ }
113
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StartableObservableService, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
114
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: StartableObservableService, ngImport: i0 });
115
+ }
116
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StartableObservableService, decorators: [{
117
+ type: Directive
118
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
119
+ type: Optional
120
+ }] }]; } });
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRhYmxlLW9ic2VydmFibGUtc2VydmljZS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3NlcnZpY2VzL3N0YXJ0YWJsZS1vYnNlcnZhYmxlLXNlcnZpY2UuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBQyxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5RSxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUduRDs7R0FFRztBQUVILE1BQU0sT0FBZ0IsMEJBQTBCO0lBRXJDLFdBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBSSxJQUFJLENBQUMsQ0FBQztJQUMzQyxZQUFZLEdBQUcsSUFBSSxPQUFPLEVBQUssQ0FBQztJQUNoQyxXQUFXLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUVqQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ2YscUJBQXFCLEdBQUcsSUFBSSxDQUFDLENBQUMsc0NBQXNDO0lBRXRFLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsYUFBYSxHQUFlLElBQUksQ0FBQztJQUNqQyxrQkFBa0IsR0FBdUIsSUFBSSxDQUFDO0lBQzlDLGFBQWEsR0FBaUIsSUFBSSxDQUFDO0lBRTNDLFlBQ2MsbUJBQW1EO1FBRS9ELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxtQkFBbUI7WUFDM0MsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRTtZQUNuQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBUTtRQUNaLElBQUksSUFB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QTBCOzRGQUExQiwwQkFBMEI7OzRGQUExQiwwQkFBMEI7a0JBRC9DLFNBQVM7OzBCQWdCTCxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZpcnN0VmFsdWVGcm9tLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSVN0YXJ0YWJsZVNlcnZpY2UgfSBmcm9tICcuL3N0YXJ0YWJsZS1zZXJ2aWNlLmNsYXNzJztcblxuLyoqXG4gKiBTYW1lIGFzIFN0YXJ0YWJsZVNlcnZpY2UsIGJ1dCB3aXRoIGEgZGF0YVN1YmplY3QgaW5zdGVhZCBvZiBhIHNpbXBsZSAnZGF0YScgcHJvcGVydHlcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU3RhcnRhYmxlT2JzZXJ2YWJsZVNlcnZpY2U8VCA9IGFueSwgTyA9IGFueT4gaW1wbGVtZW50cyBJU3RhcnRhYmxlU2VydmljZTxUPiB7XG5cbiAgcmVhZG9ubHkgZGF0YVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFQ+KG51bGwpO1xuICByZWFkb25seSBzdGFydFN1YmplY3QgPSBuZXcgU3ViamVjdDxUPigpO1xuICByZWFkb25seSBzdG9wU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHJvdGVjdGVkIF9kZWJ1ZyA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgX3N0YXJ0QnlSZWFkeUZ1bmN0aW9uID0gdHJ1ZTsgLy8gc2hvdWxkIHN0YXJ0IHdoZW4gY2FsbGluZyByZWFkeSgpID9cblxuICBwcml2YXRlIF9zdGFydGVkID0gZmFsc2U7XG4gIHByaXZhdGUgX3N0YXJ0UHJvbWlzZTogUHJvbWlzZTxUPiA9IG51bGw7XG4gIHByaXZhdGUgX3N0YXJ0UHJlcmVxdWlzaXRlOiAoKSA9PiBQcm9taXNlPGFueT4gPSBudWxsO1xuICBwcml2YXRlIF9zdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IG51bGw7XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIHByZXJlcXVpc2l0ZVNlcnZpY2U/OiB7IHJlYWR5OiAoKSA9PiBQcm9taXNlPGFueT4gfVxuICApIHtcbiAgICB0aGlzLl9zdGFydFByZXJlcXVpc2l0ZSA9IHByZXJlcXVpc2l0ZVNlcnZpY2VcbiAgICAgID8gKCkgPT4gcHJlcmVxdWlzaXRlU2VydmljZS5yZWFkeSgpXG4gICAgICA6ICgpID0+IFByb21pc2UucmVzb2x2ZSgpO1xuICB9XG5cbiAgc3RhcnQob3B0cz86IE8pOiBQcm9taXNlPFQ+IHtcbiAgICBpZiAodGhpcy5fc3RhcnRQcm9taXNlKSByZXR1cm4gdGhpcy5fc3RhcnRQcm9taXNlO1xuICAgIGlmICh0aGlzLl9zdGFydGVkKSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuZGF0YVN1YmplY3QudmFsdWUpO1xuXG4gICAgdGhpcy5fc3RhcnRQcm9taXNlID0gdGhpcy5fc3RhcnRQcmVyZXF1aXNpdGUoKVxuICAgICAgLnRoZW4oKCkgPT4gdGhpcy5uZ09uU3RhcnQob3B0cykpXG4gICAgICAudGhlbihkYXRhID0+IHtcblxuICAgICAgICB0aGlzLl9zdGFydGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5fc3RhcnRQcm9taXNlID0gdW5kZWZpbmVkO1xuXG4gICAgICAgIC8vIFNob3VsZCBiZSBkb25lIEFGVEVSICd0aGlzLl9zdGFydGVkID0gdHJ1ZScsIGJlY2F1c2Ugb2YgdGhlICdmaWx0ZXInIG9wZXJhdG9yLCBpbnNpZGUgcmVhZHkoKSBmdW5jdGlvblxuICAgICAgICB0aGlzLmRhdGFTdWJqZWN0Lm5leHQoZGF0YSk7XG4gICAgICAgIHRoaXMuc3RhcnRTdWJqZWN0Lm5leHQoZGF0YSk7XG5cbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICAgIGlmICghdGhpcy5zdG9wcGVkKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIHN0YXJ0IGEgc2VydmljZTogJyArIChlcnIgJiYgZXJyLm1lc3NhZ2UgfHwgZXJyKSwgZXJyKTtcbiAgICAgICAgICB0aGlzLl9zdGFydGVkID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5fc3RhcnRQcm9taXNlID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH0pO1xuICAgIHJldHVybiB0aGlzLl9zdGFydFByb21pc2U7XG4gIH1cblxuICByZWFkeSgpOiBQcm9taXNlPFQ+IHtcbiAgICBpZiAodGhpcy5fc3RhcnRlZCkgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLmRhdGFTdWJqZWN0LnZhbHVlKTtcbiAgICBpZiAodGhpcy5fc3RhcnRQcm9taXNlKSByZXR1cm4gdGhpcy5fc3RhcnRQcm9taXNlO1xuICAgIGlmICh0aGlzLl9zdGFydEJ5UmVhZHlGdW5jdGlvbikgcmV0dXJuIHRoaXMuc3RhcnQoKTtcblxuICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLmRhdGFTdWJqZWN0XG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuc3RvcFN1YmplY3QpLFxuICAgICAgICAvLyBXYWl0IHN0YXJ0KCkgdG8gYmUgY2FsbGVkLCB0byBleGNsdWRlIHRoZSBpbml0aWFsICdudWxsJyB2YWx1ZVxuICAgICAgICBmaWx0ZXIoXyA9PiB0aGlzLl9zdGFydGVkKVxuICAgICAgKSk7XG4gIH1cblxuICBhc3luYyBzdG9wKCkge1xuXG4gICAgdHJ5IHtcbiAgICAgIHRoaXMudW5zdWJzY3JpYmUoKTtcbiAgICAgIGF3YWl0IHRoaXMubmdPblN0b3AoKTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIHN0b3AgYSBzZXJ2aWNlOiAnICsgKGVyciAmJiBlcnIubWVzc2FnZSB8fCBlcnIpLCBlcnIpO1xuICAgIH1cbiAgICBmaW5hbGx5IHtcbiAgICAgIHRoaXMuX3N0YXJ0ZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuX3N0YXJ0UHJvbWlzZSA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuc3RvcFN1YmplY3QubmV4dCgpOyAvLyBTdG9wIGFsbCBydW5uaW5nIG9ic2VydmFibGVzXG4gICAgICB0aGlzLmRhdGFTdWJqZWN0Lm5leHQobnVsbCk7IC8vIFJlc2V0IGRhdGFcbiAgICB9XG4gIH1cblxuICBhc3luYyByZXN0YXJ0KG9wdHM/OiBPKTogUHJvbWlzZTxUPiB7XG4gICAgaWYgKHRoaXMuX3N0YXJ0UHJvbWlzZSkgYXdhaXQgdGhpcy5fc3RhcnRQcm9taXNlOyAvLyBXYWl0IGVuZCBvZiBwcmV2aW91cyBsb2FkaW5nXG4gICAgaWYgKHRoaXMuX3N0YXJ0ZWQpIGF3YWl0IHRoaXMuc3RvcCgpOyAvLyBUaGVuIHN0b3AgaWYgc3RhcnRlZFxuICAgIHJldHVybiB0aGlzLnN0YXJ0KG9wdHMpOyAvLyBUaGVuIHN0YXJ0IGFnYWluXG4gIH1cblxuICBnZXQgc3RhcnRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhcnRlZDtcbiAgfVxuXG4gIGdldCBzdGFydGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLl9zdGFydFByb21pc2U7XG4gIH1cblxuICBnZXQgc3RvcHBlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuX3N0YXJ0ZWQgJiYgIXRoaXMuX3N0YXJ0UHJvbWlzZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgZGF0YSgpOiBUIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhU3ViamVjdC52YWx1ZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXQgZGF0YSh2YWx1ZTogVCkge1xuICAgIGlmICh0aGlzLmRhdGFTdWJqZWN0LnZhbHVlICE9PSB2YWx1ZSkge1xuICAgICAgdGhpcy5kYXRhU3ViamVjdC5uZXh0KHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVnaXN0ZXJTdWJzY3JpcHRpb24oc3ViOiBTdWJzY3JpcHRpb24pIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24gPSB0aGlzLl9zdWJzY3JpcHRpb24gfHwgbmV3IFN1YnNjcmlwdGlvbigpO1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoc3ViKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB1bnJlZ2lzdGVyU3Vic2NyaXB0aW9uKHN1YjogU3Vic2NyaXB0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uPy5yZW1vdmUoc3ViKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB1bnN1YnNjcmliZSgpIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBuZ09uU3RvcCgpOiBQcm9taXNlPHZvaWQ+IHwgdm9pZCB7XG4gICAgLy8gQ2FuIGJlIG92ZXJ3cml0dGVuIGJ5IHN1YmNsYXNzZXNcbiAgfVxuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBuZ09uU3RhcnQob3B0cz86IE8pOiBQcm9taXNlPFQ+O1xufVxuIl19
@@ -0,0 +1,113 @@
1
+ import { Directive, Optional } from '@angular/core';
2
+ import { Subject, Subscription } from 'rxjs';
3
+ import { takeUntil } from 'rxjs/operators';
4
+ import * as i0 from "@angular/core";
5
+ export function isStartableService(data) {
6
+ return (typeof data?.['start'] === 'function')
7
+ && (typeof data?.['stop'] === 'function')
8
+ && (typeof data?.['ready'] === 'function');
9
+ }
10
+ export class StartableService {
11
+ startSubject = new Subject();
12
+ stopSubject = new Subject();
13
+ _debug = false;
14
+ _startByReadyFunction = true; // should start when calling ready() ?
15
+ _data = null;
16
+ _started = false;
17
+ _startPromise = null;
18
+ _startPrerequisite = null;
19
+ _subscription = null;
20
+ constructor(prerequisiteService) {
21
+ this._startPrerequisite = prerequisiteService
22
+ ? () => prerequisiteService.ready()
23
+ : () => Promise.resolve();
24
+ }
25
+ start(opts) {
26
+ if (this._startPromise)
27
+ return this._startPromise;
28
+ if (this._started)
29
+ return Promise.resolve(this._data);
30
+ this._startPromise = this._startPrerequisite()
31
+ .then(() => this.ngOnStart(opts))
32
+ .then(data => {
33
+ this._data = data;
34
+ this._started = true;
35
+ this._startPromise = undefined;
36
+ this.startSubject.next(data);
37
+ return data;
38
+ })
39
+ .catch(err => {
40
+ if (!this.stopped) {
41
+ console.error('Failed to start a service: ' + (err && err.message || err), err);
42
+ this._startPromise = null;
43
+ this._started = false;
44
+ }
45
+ return null;
46
+ });
47
+ return this._startPromise;
48
+ }
49
+ ready() {
50
+ if (this._started)
51
+ return Promise.resolve(this._data);
52
+ if (this._startPromise)
53
+ return this._startPromise;
54
+ if (this._startByReadyFunction)
55
+ return this.start();
56
+ return this.startSubject
57
+ .pipe(takeUntil(this.stopSubject))
58
+ .toPromise();
59
+ }
60
+ async stop() {
61
+ try {
62
+ this.unsubscribe();
63
+ await this.ngOnStop();
64
+ }
65
+ catch (err) {
66
+ console.error('Failed to stop a service: ' + (err && err.message || err), err);
67
+ }
68
+ finally {
69
+ this._data = null;
70
+ this._started = false;
71
+ this._startPromise = undefined;
72
+ this.stopSubject.next();
73
+ }
74
+ }
75
+ async restart(opts) {
76
+ if (this._startPromise)
77
+ await this._startPromise; // Wait end of previous loading
78
+ if (this._started)
79
+ await this.stop(); // Then stop if started
80
+ return this.start(opts); // Then start again
81
+ }
82
+ get started() {
83
+ return this._started;
84
+ }
85
+ get starting() {
86
+ return !!this._startPromise;
87
+ }
88
+ get stopped() {
89
+ return !this._started && !this._startPromise;
90
+ }
91
+ registerSubscription(sub) {
92
+ this._subscription = this._subscription || new Subscription();
93
+ this._subscription.add(sub);
94
+ }
95
+ unregisterSubscription(sub) {
96
+ this._subscription?.remove(sub);
97
+ }
98
+ unsubscribe() {
99
+ this._subscription?.unsubscribe();
100
+ this._subscription = null;
101
+ }
102
+ ngOnStop() {
103
+ // Can be overwritten by subclasses
104
+ }
105
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StartableService, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
106
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: StartableService, ngImport: i0 });
107
+ }
108
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StartableService, decorators: [{
109
+ type: Directive
110
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
111
+ type: Optional
112
+ }] }]; } });
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRhYmxlLXNlcnZpY2UuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9zZXJ2aWNlcy9zdGFydGFibGUtc2VydmljZS5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUMsT0FBTyxFQUFFLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7O0FBU3pDLE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxJQUFTO0lBQzFDLE9BQU8sQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFVBQVUsQ0FBQztXQUN6QyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssVUFBVSxDQUFDO1dBQ3RDLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxVQUFVLENBQUMsQ0FDekM7QUFDTCxDQUFDO0FBR0QsTUFBTSxPQUFnQixnQkFBZ0I7SUFFM0IsWUFBWSxHQUFHLElBQUksT0FBTyxFQUFLLENBQUM7SUFDaEMsV0FBVyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFFakMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUNmLHFCQUFxQixHQUFHLElBQUksQ0FBQyxDQUFDLHNDQUFzQztJQUNwRSxLQUFLLEdBQU0sSUFBSSxDQUFDO0lBRWxCLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsYUFBYSxHQUFlLElBQUksQ0FBQztJQUNqQyxrQkFBa0IsR0FBdUIsSUFBSSxDQUFDO0lBQzlDLGFBQWEsR0FBaUIsSUFBSSxDQUFDO0lBRTNDLFlBQ2MsbUJBQW1EO1FBRS9ELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxtQkFBbUI7WUFDM0MsQ0FBQyxDQUFD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RSxDQUFDLENBQUMsdUJBQXVCO1FBQzdELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLG1CQUFtQjtJQUM5QyxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDL0MsQ0FBQztJQUVTLG9CQUFvQixDQUFDLEdBQWlCO1FBQzlDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzlELElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFUyxzQkFBc0IsQ0FBQyxHQUFpQjtRQUNoRCxJQUFJLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRVMsV0FBVztRQUNuQixJQUFJLENBQUMsYUFBYSxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFFUyxRQUFRO1FBQ2hCLG1DQUFtQztJQUNyQyxDQUFDO3dHQTdHbUIsZ0JBQWdCOzRGQUFoQixnQkFBZ0I7OzRGQUFoQixnQkFBZ0I7a0JBRHJDLFNBQVM7OzBCQWdCTCxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U3ViamVjdCwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7dGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVN0YXJ0YWJsZVNlcnZpY2U8VCA9IGFueT4ge1xuICBzdGFydGVkOiBib29sZWFuO1xuICBzdGFydCgpOiBQcm9taXNlPFQ+O1xuICBzdG9wKCk6IFByb21pc2U8dm9pZD47XG4gIHJlYWR5KCk6IFByb21pc2U8VD47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1N0YXJ0YWJsZVNlcnZpY2UoZGF0YTogYW55KTogZGF0YSBpcyBJU3RhcnRhYmxlU2VydmljZSB7XG4gIHJldHVybiAodHlwZW9mIGRhdGE/Llsnc3RhcnQnXSA9PT0gJ2Z1bmN0aW9uJylcbiAgICAmJiAodHlwZW9mIGRhdGE/Llsnc3RvcCddID09PSAnZnVuY3Rpb24nKVxuICAgICYmICh0eXBlb2YgZGF0YT8uWydyZWFkeSddID09PSAnZnVuY3Rpb24nKVxuICAgIDtcbn1cblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU3RhcnRhYmxlU2VydmljZTxUID0gYW55LCBPID0gYW55PiBpbXBsZW1lbnRzIElTdGFydGFibGVTZXJ2aWNlPFQ+IHtcblxuICByZWFkb25seSBzdGFydFN1YmplY3QgPSBuZXcgU3ViamVjdDxUPigpO1xuICByZWFkb25seSBzdG9wU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHJvdGVjdGVkIF9kZWJ1ZyA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgX3N0YXJ0QnlSZWFkeUZ1bmN0aW9uID0gdHJ1ZTsgLy8gc2hvdWxkIHN0YXJ0IHdoZW4gY2FsbGluZyByZWFkeSgpID9cbiAgcHJvdGVjdGVkIF9kYXRhOiBUID0gbnVsbDtcblxuICBwcml2YXRlIF9zdGFydGVkID0gZmFsc2U7XG4gIHByaXZhdGUgX3N0YXJ0UHJvbWlzZTogUHJvbWlzZTxUPiA9IG51bGw7XG4gIHByaXZhdGUgX3N0YXJ0UHJlcmVxdWlzaXRlOiAoKSA9PiBQcm9taXNlPGFueT4gPSBudWxsO1xuICBwcml2YXRlIF9zdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IG51bGw7XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIHByZXJlcXVpc2l0ZVNlcnZpY2U/OiB7IHJlYWR5OiAoKSA9PiBQcm9taXNlPGFueT4gfVxuICApIHtcbiAgICB0aGlzLl9zdGFydFByZXJlcXVpc2l0ZSA9IHByZXJlcXVpc2l0ZVNlcnZpY2VcbiAgICAgID8gKCkgPT4gcHJlcmVxdWlzaXRlU2VydmljZS5yZWFkeSgpXG4gICAgICA6ICgpID0+IFByb21pc2UucmVzb2x2ZSgpO1xuICB9XG5cbiAgc3RhcnQob3B0cz86IE8pOiBQcm9taXNlPFQ+IHtcbiAgICBpZiAodGhpcy5fc3RhcnRQcm9taXNlKSByZXR1cm4gdGhpcy5fc3RhcnRQcm9taXNlO1xuICAgIGlmICh0aGlzLl9zdGFydGVkKSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuX2RhdGEpO1xuXG4gICAgdGhpcy5fc3RhcnRQcm9taXNlID0gdGhpcy5fc3RhcnRQcmVyZXF1aXNpdGUoKVxuICAgICAgLnRoZW4oKCkgPT4gdGhpcy5uZ09uU3RhcnQob3B0cykpXG4gICAgICAudGhlbihkYXRhID0+IHtcbiAgICAgICAgdGhpcy5fZGF0YSA9IGRhdGE7XG5cbiAgICAgICAgdGhpcy5fc3RhcnRlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuX3N0YXJ0UHJvbWlzZSA9IHVuZGVmaW5lZDtcblxuICAgICAgICB0aGlzLnN0YXJ0U3ViamVjdC5uZXh0KGRhdGEpO1xuXG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaChlcnIgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuc3RvcHBlZCkge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBzdGFydCBhIHNlcnZpY2U6ICcgKyAoZXJyICYmIGVyci5tZXNzYWdlIHx8IGVyciksIGVycik7XG4gICAgICAgICAgdGhpcy5fc3RhcnRQcm9taXNlID0gbnVsbDtcbiAgICAgICAgICB0aGlzLl9zdGFydGVkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5fc3RhcnRQcm9taXNlO1xuICB9XG5cbiAgcmVhZHkoKTogUHJvbWlzZTxUPiB7XG4gICAgaWYgKHRoaXMuX3N0YXJ0ZWQpIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5fZGF0YSk7XG4gICAgaWYgKHRoaXMuX3N0YXJ0UHJvbWlzZSkgcmV0dXJuIHRoaXMuX3N0YXJ0UHJvbWlzZTtcbiAgICBpZiAodGhpcy5fc3RhcnRCeVJlYWR5RnVuY3Rpb24pIHJldHVybiB0aGlzLnN0YXJ0KCk7XG5cbiAgICByZXR1cm4gdGhpcy5zdGFydFN1YmplY3RcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnN0b3BTdWJqZWN0KSlcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGFzeW5jIHN0b3AoKSB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMudW5zdWJzY3JpYmUoKTtcbiAgICAgIGF3YWl0IHRoaXMubmdPblN0b3AoKTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIHN0b3AgYSBzZXJ2aWNlOiAnICsgKGVyciAmJiBlcnIubWVzc2FnZSB8fCBlcnIpLCBlcnIpO1xuICAgIH1cbiAgICBmaW5hbGx5IHtcbiAgICAgIHRoaXMuX2RhdGEgPSBudWxsO1xuICAgICAgdGhpcy5fc3RhcnRlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5fc3RhcnRQcm9taXNlID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5zdG9wU3ViamVjdC5uZXh0KCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcmVzdGFydChvcHRzPzogTyk6IFByb21pc2U8VD4ge1xuICAgIGlmICh0aGlzLl9zdGFydFByb21pc2UpIGF3YWl0IHRoaXMuX3N0YXJ0UHJvbWlzZTsgLy8gV2FpdCBlbmQgb2YgcHJldmlvdXMgbG9hZGluZ1xuICAgIGlmICh0aGlzLl9zdGFydGVkKSBhd2FpdCB0aGlzLnN0b3AoKTsgLy8gVGhlbiBzdG9wIGlmIHN0YXJ0ZWRcbiAgICByZXR1cm4gdGhpcy5zdGFydChvcHRzKTsgLy8gVGhlbiBzdGFydCBhZ2FpblxuICB9XG5cbiAgZ2V0IHN0YXJ0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXJ0ZWQ7XG4gIH1cblxuICBnZXQgc3RhcnRpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5fc3RhcnRQcm9taXNlO1xuICB9XG5cbiAgZ2V0IHN0b3BwZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLl9zdGFydGVkICYmICF0aGlzLl9zdGFydFByb21pc2U7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVnaXN0ZXJTdWJzY3JpcHRpb24oc3ViOiBTdWJzY3JpcHRpb24pIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24gPSB0aGlzLl9zdWJzY3JpcHRpb24gfHwgbmV3IFN1YnNjcmlwdGlvbigpO1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoc3ViKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB1bnJlZ2lzdGVyU3Vic2NyaXB0aW9uKHN1YjogU3Vic2NyaXB0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uPy5yZW1vdmUoc3ViKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB1bnN1YnNjcmliZSgpIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBuZ09uU3RvcCgpOiBQcm9taXNlPHZvaWQ+IHwgdm9pZCB7XG4gICAgLy8gQ2FuIGJlIG92ZXJ3cml0dGVuIGJ5IHN1YmNsYXNzZXNcbiAgfVxuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBuZ09uU3RhcnQob3B0cz86IE8pOiBQcm9taXNlPFQ+O1xufVxuIl19
@@ -0,0 +1,104 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { map } from 'rxjs/operators';
3
+ import { of } from 'rxjs';
4
+ import { isNil, isNilOrBlank, isNotNilOrBlank } from '../functions';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@ngx-translate/core";
7
+ export class TranslateContextService {
8
+ translate;
9
+ constructor(translate) {
10
+ this.translate = translate;
11
+ }
12
+ get(key, context, interpolateParams) {
13
+ // No context: do a normal translate
14
+ if (!key || !isNil(context))
15
+ return this.translate.get(key, interpolateParams);
16
+ if (Array.isArray(key)) {
17
+ if (!key.length)
18
+ return of();
19
+ // Observe the first key, then add other
20
+ return this.get(key[0])
21
+ .pipe(map(translation => key.slice(1) // Skip 1, because we already have it
22
+ .reduce((map, k) => {
23
+ map[k] = this.instant(k, context);
24
+ return map;
25
+ },
26
+ // Init with the first value
27
+ {
28
+ [key[0]]: translation
29
+ })));
30
+ }
31
+ // Compute a contextual i18n key, using the context as suffix
32
+ const contextualKeys = this.contextualKeys(key, context);
33
+ // Return the contextual translation, or default of not exists
34
+ return this.translate.get(contextualKeys, interpolateParams)
35
+ .pipe(map(translations => this.findFirstValid(contextualKeys, translations)));
36
+ }
37
+ instant(key, context, interpolateParams) {
38
+ // No context: do a normal translate
39
+ if (!key || isNilOrBlank(context))
40
+ return this.translate.instant(key, interpolateParams);
41
+ if (Array.isArray(key)) {
42
+ return key.reduce((map, k) => {
43
+ map[k] = this.instant(k, context);
44
+ return map;
45
+ }, {});
46
+ }
47
+ // Compute a contextual i18n key, using the context as suffix
48
+ const contextualKeys = this.contextualKeys(key, context);
49
+ const translations = this.translate.instant(contextualKeys, interpolateParams);
50
+ return this.findFirstValid(contextualKeys, translations);
51
+ }
52
+ /**
53
+ * Compute contextual i18n keys, using the context as suffix.<br>
54
+ * Suffix can be simple name (like 'aaa' - will return ['<key>.aaa']) or complexe (like 'aaa.bbb' - will return ['<key>.aaa.bbb', '<key>.aaa']
55
+ *
56
+ * @param key
57
+ * @param context
58
+ * @private
59
+ */
60
+ contextualKeys(key, context) {
61
+ return context.split('.')
62
+ .filter(isNotNilOrBlank)
63
+ .reduce((res, item) => {
64
+ const inheritedContext = res.length > 0 ? (res[res.length - 1] + '.') : '';
65
+ return res.concat(inheritedContext + item);
66
+ }, [])
67
+ .reverse() // Start with children, ends with parent key
68
+ .map(contextItem => this.contextualKey(key, contextItem))
69
+ .concat(key);
70
+ }
71
+ /**
72
+ * Compute a contextual i18n key, using the context as suffix
73
+ *
74
+ * @param key
75
+ * @param context
76
+ * @private
77
+ */
78
+ contextualKey(key, context) {
79
+ // Append a dot on context if missing
80
+ if (!context.endsWith('.')) {
81
+ context = context + '.';
82
+ }
83
+ // Compute a contextual i18n key, using the context as suffix
84
+ const parts = key.split('.');
85
+ return (parts.length === 1)
86
+ ? `${context}${key}`
87
+ : parts.slice(0, parts.length - 1).concat(context + parts[parts.length - 1]).join('.');
88
+ }
89
+ findFirstValid(keys, translations) {
90
+ // For eac contextual key: try to find translation, then use the first valid
91
+ for (const key of keys) {
92
+ if (translations[key] !== key)
93
+ return translations[key];
94
+ }
95
+ return translations[keys[keys.length - 1]]; // Return the last keys translation
96
+ }
97
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TranslateContextService, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
98
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TranslateContextService, providedIn: 'root' });
99
+ }
100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TranslateContextService, decorators: [{
101
+ type: Injectable,
102
+ args: [{ providedIn: 'root' }]
103
+ }], ctorParameters: function () { return [{ type: i1.TranslateService }]; } });
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLWNvbnRleHQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3NlcnZpY2VzL3RyYW5zbGF0ZS1jb250ZXh0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkMsT0FBTyxFQUFhLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUMsTUFBTSxjQUFjLENBQUM7OztBQUlsRSxNQUFNLE9BQU8sdUJBQXVCO0lBR3RCO0lBRFosWUFDWSxTQUEyQjtRQUEzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtJQUV2QyxDQUFDO0lBR0QsR0FBRyxDQUFDLEdBQW9CLEVBQUUsT0FBZ0IsRUFBRSxpQkFBdUI7UUFDakUsb0NBQW9DO1FBQ3BDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUUvRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNO2dCQUFFLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDN0Isd0NBQXdDO1lBQ3hDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ3BCLElBQUksQ0FBQyxHQUFHLENBQ1AsV0FBVyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLHFDQUFxQztpQkFDeEQsTUFBTSxDQUFDLENB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QU8sR0FBRyxHQUFHLENBQUM7U0FDekI7UUFFRCw2REFBNkQ7UUFDN0QsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3QixPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7WUFDekIsQ0FBQyxDQUFDLEdBQUcsT0FBTyxHQUFHLEdBQUcsRUFBRTtZQUNwQixDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFTyxjQUFjLENBQUMsSUFBYyxFQUFFLFlBQXVDO1FBQzVFLDRFQUE0RTtRQUM1RSxLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRTtZQUN0QixJQUFJLFlBQVksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHO2dCQUFFLE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3pEO1FBQ0QsT0FBTyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLG1DQUFtQztJQUMvRSxDQUFDO3dHQXhHVSx1QkFBdUI7NEdBQXZCLHVCQUF1QixjQURYLE1BQU07OzRGQUNsQix1QkFBdUI7a0JBRG5DLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2lzTmlsLCBpc05pbE9yQmxhbmssIGlzTm90TmlsT3JCbGFua30gZnJvbSAnLi4vZnVuY3Rpb25zJztcblxuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGVDb250ZXh0U2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZVxuICApIHtcbiAgfVxuXG5cbiAgZ2V0KGtleTogc3RyaW5nfHN0cmluZ1tdLCBjb250ZXh0Pzogc3RyaW5nLCBpbnRlcnBvbGF0ZVBhcmFtcz86IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgLy8gTm8gY29udGV4dDogZG8gYSBub3JtYWwgdHJhbnNsYXRlXG4gICAgaWYgKCFrZXkgfHwgIWlzTmlsKGNvbnRleHQpKSByZXR1cm4gdGhpcy50cmFuc2xhdGUuZ2V0KGtleSwgaW50ZXJwb2xhdGVQYXJhbXMpO1xuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoa2V5KSkge1xuICAgICAgaWYgKCFrZXkubGVuZ3RoKSByZXR1cm4gb2YoKTtcbiAgICAgIC8vIE9ic2VydmUgdGhlIGZpcnN0IGtleSwgdGhlbiBhZGQgb3RoZXJcbiAgICAgIHJldHVybiB0aGlzLmdldChrZXlbMF0pXG4gICAgICAgIC5waXBlKG1hcChcbiAgICAgICAgICB0cmFuc2xhdGlvbiA9PiBrZXkuc2xpY2UoMSkgLy8gU2tpcCAxLCBiZWNhdXNlIHdlIGFscmVhZHkgaGF2ZSBpdFxuICAgICAgICAgICAgICAgICAgLnJlZHVjZSgobWFwLCBrKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIG1hcFtrXSA9IHRoaXMuaW5zdGFudChrLCBjb250ZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1hcDtcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAvLyBJbml0IHdpdGggdGhlIGZpcnN0IHZhbHVlXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFtrZXlbMF1dOiB0cmFuc2xhdGlvblxuICAgICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gQ29tcHV0ZSBhIGNvbnRleHR1YWwgaTE4biBrZXksIHVzaW5nIHRoZSBjb250ZXh0IGFzIHN1ZmZpeFxuICAgIGNvbnN0IGNvbnRleHR1YWxLZXlzID0gdGhpcy5jb250ZXh0dWFsS2V5cyhrZXksIGNvbnRleHQpO1xuXG4gICAgLy8gUmV0dXJuIHRoZSBjb250ZXh0dWFsIHRyYW5zbGF0aW9uLCBvciBkZWZhdWx0IG9mIG5vdCBleGlzdHNcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuZ2V0KGNvbnRleHR1YWxLZXlzLCBpbnRlcnBvbGF0ZVBhcmFtcylcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAodHJhbnNsYXRpb25zID0+IHRoaXMuZmluZEZpcnN0VmFsaWQoY29udGV4dHVhbEtleXMsIHRyYW5zbGF0aW9ucykpXG4gICAgICApO1xuICB9XG5cbiAgaW5zdGFudChrZXk6IHN0cmluZ3xzdHJpbmdbXSwgY29udGV4dD86IHN0cmluZywgaW50ZXJwb2xhdGVQYXJhbXM/OiBhbnkpOiBhbnkge1xuICAgIC8vIE5vIGNvbnRleHQ6IGRvIGEgbm9ybWFsIHRyYW5zbGF0ZVxuICAgIGlmICgha2V5IHx8IGlzTmlsT3JCbGFuayhjb250ZXh0KSkgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoa2V5LCBpbnRlcnBvbGF0ZVBhcmFtcyk7XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShrZXkpKSB7XG4gICAgICByZXR1cm4ga2V5LnJlZHVjZSgobWFwLCBrKSA9PiB7XG4gICAgICAgIG1hcFtrXSA9IHRoaXMuaW5zdGFudChrLCBjb250ZXh0KTtcbiAgICAgICAgcmV0dXJuIG1hcDtcbiAgICAgIH0sIHt9KTtcbiAgICB9XG5cbiAgICAvLyBDb21wdXRlIGEgY29udGV4dHVhbCBpMThuIGtleSwgdXNpbmcgdGhlIGNvbnRleHQgYXMgc3VmZml4XG4gICAgY29uc3QgY29udGV4dHVhbEtleXMgPSB0aGlzLmNvbnRleHR1YWxLZXlzKGtleSwgY29udGV4dCk7XG4gICAgY29uc3QgdHJhbnNsYXRpb25zID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudChjb250ZXh0dWFsS2V5cywgaW50ZXJwb2xhdGVQYXJhbXMpO1xuXG4gICAgcmV0dXJuIHRoaXMuZmluZEZpcnN0VmFsaWQoY29udGV4dHVhbEtleXMsIHRyYW5zbGF0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogQ29tcHV0ZSBjb250ZXh0dWFsIGkxOG4ga2V5cywgdXNpbmcgdGhlIGNvbnRleHQgYXMgc3VmZml4Ljxicj5cbiAgICogU3VmZml4IGNhbiBiZSBzaW1wbGUgbmFtZSAobGlrZSAnYWFhJyAtIHdpbGwgcmV0dXJuIFsnPGtleT4uYWFhJ10pIG9yIGNvbXBsZXhlIChsaWtlICdhYWEuYmJiJyAtIHdpbGwgcmV0dXJuIFsnPGtleT4uYWFhLmJiYicsICc8a2V5Pi5hYWEnXVxuICAgKlxuICAgKiBAcGFyYW0ga2V5XG4gICAqIEBwYXJhbSBjb250ZXh0XG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBjb250ZXh0dWFsS2V5cyhrZXk6IHN0cmluZywgY29udGV4dDogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBjb250ZXh0LnNwbGl0KCcuJylcbiAgICAgIC5maWx0ZXIoaXNOb3ROaWxPckJsYW5rKVxuICAgICAgLnJlZHVjZSgocmVzLCBpdGVtKSA9PiB7XG4gICAgICAgIGNvbnN0IGluaGVyaXRlZENvbnRleHQgPSByZXMubGVuZ3RoID4gMCA/IChyZXNbcmVzLmxlbmd0aCAtIDFdICsgJy4nKSA6ICcnO1xuICAgICAgICByZXR1cm4gcmVzLmNvbmNhdCggaW5oZXJpdGVkQ29udGV4dCArIGl0ZW0pO1xuICAgICAgfSwgW10pXG4gICAgICAucmV2ZXJzZSgpIC8vIFN0YXJ0IHdpdGggY2hpbGRyZW4sIGVuZHMgd2l0aCBwYXJlbnQga2V5XG4gICAgICAubWFwKGNvbnRleHRJdGVtID0+IHRoaXMuY29udGV4dHVhbEtleShrZXksIGNvbnRleHRJdGVtKSlcbiAgICAgIC5jb25jYXQoa2V5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21wdXRlIGEgY29udGV4dHVhbCBpMThuIGtleSwgdXNpbmcgdGhlIGNvbnRleHQgYXMgc3VmZml4XG4gICAqXG4gICAqIEBwYXJhbSBrZXlcbiAgICogQHBhcmFtIGNvbnRleHRcbiAgICogQHByaXZhdGVcbiAgICovXG4gIGNvbnRleHR1YWxLZXkoa2V5OiBzdHJpbmcsIGNvbnRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG5cbiAgICAvLyBBcHBlbmQgYSBkb3Qgb24gY29udGV4dCBpZiBtaXNzaW5nXG4gICAgaWYgKCFjb250ZXh0LmVuZHNXaXRoKCcuJykpIHtcbiAgICAgIGNvbnRleHQgPSBjb250ZXh0ICsgJy4nO1xuICAgIH1cblxuICAgIC8vIENvbXB1dGUgYSBjb250ZXh0dWFsIGkxOG4ga2V5LCB1c2luZyB0aGUgY29udGV4dCBhcyBzdWZmaXhcbiAgICBjb25zdCBwYXJ0cyA9IGtleS5zcGxpdCgnLicpO1xuICAgIHJldHVybiAocGFydHMubGVuZ3RoID09PSAxKVxuICAgICAgPyBgJHtjb250ZXh0fSR7a2V5fWBcbiAgICAgIDogcGFydHMuc2xpY2UoMCwgcGFydHMubGVuZ3RoIC0gMSkuY29uY2F0KGNvbnRleHQgKyBwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXSkuam9pbignLicpO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kRmlyc3RWYWxpZChrZXlzOiBzdHJpbmdbXSwgdHJhbnNsYXRpb25zOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9KTogc3RyaW5nIHtcbiAgICAvLyBGb3IgZWFjIGNvbnRleHR1YWwga2V5OiB0cnkgdG8gZmluZCB0cmFuc2xhdGlvbiwgdGhlbiB1c2UgdGhlIGZpcnN0IHZhbGlkXG4gICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgICAgaWYgKHRyYW5zbGF0aW9uc1trZXldICE9PSBrZXkpIHJldHVybiB0cmFuc2xhdGlvbnNba2V5XTtcbiAgICB9XG4gICAgcmV0dXJuIHRyYW5zbGF0aW9uc1trZXlzW2tleXMubGVuZ3RoLTFdXTsgLy8gUmV0dXJuIHRoZSBsYXN0IGtleXMgdHJhbnNsYXRpb25cbiAgfVxufVxuIl19
@@ -39,24 +39,24 @@ export class CustomReuseStrategy extends IonicRouteStrategy {
39
39
  }
40
40
  return reuse;
41
41
  }
42
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CustomReuseStrategy, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
43
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CustomReuseStrategy });
42
44
  }
43
- CustomReuseStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CustomReuseStrategy, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
44
- CustomReuseStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CustomReuseStrategy });
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CustomReuseStrategy, decorators: [{
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CustomReuseStrategy, decorators: [{
46
46
  type: Injectable
47
47
  }] });
48
48
  export class SharedRoutingModule {
49
49
  constructor() {
50
50
  console.debug('[shared-routing] Creating module...');
51
51
  }
52
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SharedRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
53
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: SharedRoutingModule, imports: [RouterModule] });
54
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SharedRoutingModule, providers: [
55
+ { provide: RouteReuseStrategy, useClass: CustomReuseStrategy },
56
+ { provide: ComponentDirtyGuard, useClass: ComponentDirtyGuard }
57
+ ], imports: [RouterModule] });
52
58
  }
53
- SharedRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SharedRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
54
- SharedRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: SharedRoutingModule, imports: [RouterModule] });
55
- SharedRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SharedRoutingModule, providers: [
56
- { provide: RouteReuseStrategy, useClass: CustomReuseStrategy },
57
- { provide: ComponentDirtyGuard, useClass: ComponentDirtyGuard }
58
- ], imports: [RouterModule] });
59
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SharedRoutingModule, decorators: [{
59
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SharedRoutingModule, decorators: [{
60
60
  type: NgModule,
61
61
  args: [{
62
62
  imports: [
@@ -68,4 +68,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
68
68
  ]
69
69
  }]
70
70
  }], ctorParameters: function () { return []; } });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLXJvdXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvc2hhcmVkLXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBeUIsa0JBQWtCLEVBQUUsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFDLEtBQUssRUFBRSxRQUFRLEVBQUMsTUFBTSxhQUFhLENBQUM7O0FBSTVDLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxrQkFBa0I7SUFFekQ7Ozs7Ozs7T0FPRztJQUNILGdCQUFnQixDQUFDLE1BQThCLEVBQUUsSUFBNEI7UUFDM0UsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVuRCxzQkFBc0I7UUFDdEIsSUFBSSxDQUFDLEtBQUssSUFBSSxNQUFNLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQyxXQUFXLEtBQUssSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUMzRSw4Q0FBOEM7WUFDOUMsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQztZQUUzRiw0QkFBNEI7WUFDNUIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxLQUFLO2dCQUMvQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsaUNBQWlDO2dCQUN0RyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLHlCQUF5QjtZQUV2RCwyQkFBMkI7WUFDM0IsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxLQUFLO2dCQUNuRCxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsaUNBQWlDO2dCQUMxRyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLHlCQUF5QjtZQUV6RCxnREFBZ0Q7WUFDaEQsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ3RCLHFEQUFxRDtnQkFDckQsSUFBSSxNQUFNLEtBQUssS0FBSyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxLQUFLLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRTtvQkFDakosT0FBTyxJQUFJLENBQUM7aUJBQ2I7Z0JBRUQsbURBQW1EO2dCQUNuRCxPQUFPLFFBQVEsS0FBSyxLQUFLLElBQUksUUFBUSxLQUFLLE1BQU0sQ0FBQzthQUNsRDtTQUNGO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOztpSEF6Q1UsbUJBQW1CO3FIQUFuQixtQkFBbUI7NEZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVTs7QUFzRFgsTUFBTSxPQUFPLG1CQUFtQjtJQUU5QjtRQUNFLE9BQU8sQ0FBQyxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQztJQUN2RCxDQUFDOztpSEFKVSxtQkFBbUI7a0hBQW5CLG1CQUFtQixZQVA1QixZQUFZO2tIQU9ILG1CQUFtQixhQUxuQjtRQUNULEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxtQkFBbUIsRUFBRTtRQUM5RCxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsbUJBQW1CLEVBQUU7S0FDaEUsWUFMQyxZQUFZOzRGQU9ILG1CQUFtQjtrQkFUL0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTtxQkFDYjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixFQUFFO3dCQUM5RCxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsbUJBQW1CLEVBQUU7cUJBQ2hFO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJvdXRlUmV1c2VTdHJhdGVneSwgUm91dGVyTW9kdWxlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtJb25pY1JvdXRlU3RyYXRlZ3l9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7Q29tcG9uZW50RGlydHlHdWFyZH0gZnJvbSAnLi9ndWFyZC9jb21wb25lbnQtZGlydHkuZ3VhcmQnO1xuaW1wb3J0IHtpc05pbCwgaXNOb3ROaWx9IGZyb20gJy4vZnVuY3Rpb25zJztcblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ3VzdG9tUmV1c2VTdHJhdGVneSBleHRlbmRzIElvbmljUm91dGVTdHJhdGVneSB7XG5cbiAgLyoqXG4gICAqIEZvcmNlIHRvIHJldXNlIHRoZSByb3V0ZSB3aGVuOlxuICAgKiAgLSBwYXRoIGNoYW5nZSBmcm9tIFsvbmV3XSAtPiBbLzppZF1cbiAgICogIC0gb3IgcGF0aCBjaGFuZ2UgZnJvbSBbL25ld10gLT4gWy9uZXc/aWQ9OmlkXVxuICAgKlxuICAgKiBAcGFyYW0gZnV0dXJlXG4gICAqIEBwYXJhbSBjdXJyXG4gICAqL1xuICBzaG91bGRSZXVzZVJvdXRlKGZ1dHVyZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgY3VycjogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHJldXNlID0gc3VwZXIuc2hvdWxkUmV1c2VSb3V0ZShmdXR1cmUsIGN1cnIpO1xuXG4gICAgLy8gSXMgc2FtIHJvdXRlIGNvbmZpZ1xuICAgIGlmICghcmV1c2UgJiYgZnV0dXJlLnJvdXRlQ29uZmlnICYmIGZ1dHVyZS5yb3V0ZUNvbmZpZyA9PT0gY3Vyci5yb3V0ZUNvbmZpZykge1xuICAgICAgLy8gUmVhZCB0aGUgcGFyYW1ldGVyIG5hbWUsIHdoZXJlIGlkIGlzIHN0b3JlZFxuICAgICAgY29uc3QgcGF0aElkUGFyYW0gPSBmdXR1cmUucm91dGVDb25maWcuZGF0YSAmJiBmdXR1cmUucm91dGVDb25maWcuZGF0YS5wYXRoSWRQYXJhbSB8fCAnaWQnO1xuXG4gICAgICAvLyBSZWFkIHRoZSBjdXJyZW50IHJvdXRlIGlkXG4gICAgICBjb25zdCBjdXJySWQgPSBjdXJyLnBhcmFtc1twYXRoSWRQYXJhbV0gPT09ICduZXcnXG4gICAgICAgID8gKGN1cnIucXVlcnlQYXJhbXNbcGF0aElkUGFyYW1dIHx8IGN1cnIucXVlcnlQYXJhbXNbJ2lkJ10gfHwgJ25ldycpIC8vIGUuZy4gcGF0aCBsaWtlICcvbmV3Lz9pZD08SUQ+J1xuICAgICAgICA6IGN1cnIucGFyYW1zW3BhdGhJZFBhcmFtXTsgLy8gZS5nLiBwYXRoIGxpa2UgJy88SUQ+J1xuXG4gICAgICAvLyBSZWFkIHRoZSBmdXR1cmUgcm91dGUgaWRcbiAgICAgIGNvbnN0IGZ1dHVyZUlkID0gZnV0dXJlLnBhcmFtc1twYXRoSWRQYXJhbV0gPT09ICduZXcnXG4gICAgICAgID8gKGZ1dHVyZS5xdWVyeVBhcmFtc1twYXRoSWRQYXJhbV0gfHwgZnV0dXJlLnF1ZXJ5UGFyYW1zWydpZCddIHx8ICduZXcnKSAvLyBlLmcuIHBhdGggbGlrZSAnL25ldy8/aWQ9PElEPidcbiAgICAgICAgOiBmdXR1cmUucGFyYW1zW3BhdGhJZFBhcmFtXTsgLy8gZS5nLiBwYXRoIGxpa2UgJy88SUQ+J1xuXG4gICAgICAvLyBSZXVzZSBpZiBzYW1lIElELCB1c2luZyBhIGZ1dHVyZUlkLCBpZiBleGlzdHNcbiAgICAgIGlmIChpc05vdE5pbChmdXR1cmVJZCkpIHtcbiAgICAgICAgLy8gQWxsb3cgcmV1c2Ugd2hlbiBjaGFuZ2luZyBmcm9tIC9uZXcgdG8gL25ldz9pZD06aWRcbiAgICAgICAgaWYgKGN1cnJJZCA9PT0gJ25ldycgJiYgaXNOaWwoY3Vyci5xdWVyeVBhcmFtc1twYXRoSWRQYXJhbV0pICYmIGZ1dHVyZS5wYXJhbXNbcGF0aElkUGFyYW1dID09PSAnbmV3JyAmJiBpc05vdE5pbChmdXR1cmUucXVlcnlQYXJhbXNbcGF0aElkUGFyYW1dKSkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQWxsb3cgcmV1c2Ugc2FtZSBpZCwgZXhwZWN0IHdoZW4gZXhwZWN0ZWQgJy9uZXcnXG4gICAgICAgIHJldHVybiBmdXR1cmVJZCAhPT0gJ25ldycgJiYgZnV0dXJlSWQgPT09IGN1cnJJZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmV1c2U7XG4gIH1cbn1cblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIFJvdXRlck1vZHVsZVxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IFJvdXRlUmV1c2VTdHJhdGVneSwgdXNlQ2xhc3M6IEN1c3RvbVJldXNlU3RyYXRlZ3kgfSxcbiAgICB7IHByb3ZpZGU6IENvbXBvbmVudERpcnR5R3VhcmQsIHVzZUNsYXNzOiBDb21wb25lbnREaXJ0eUd1YXJkIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTaGFyZWRSb3V0aW5nTW9kdWxlIHtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBjb25zb2xlLmRlYnVnKCdbc2hhcmVkLXJvdXRpbmddIENyZWF0aW5nIG1vZHVsZS4uLicpO1xuICB9XG59XG4iXX0=
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLXJvdXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvc2hhcmVkLXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBeUIsa0JBQWtCLEVBQUUsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFDLEtBQUssRUFBRSxRQUFRLEVBQUMsTUFBTSxhQUFhLENBQUM7O0FBSTVDLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxrQkFBa0I7SUFFekQ7Ozs7Ozs7T0FPRztJQUNILGdCQUFnQixDQUFDLE1BQThCLEVBQUUsSUFBNEI7UUFDM0UsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVuRCxzQkFBc0I7UUFDdEIsSUFBSSxDQUFDLEtBQUssSUFBSSxNQUFNLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQyxXQUFXLEtBQUssSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUMzRSw4Q0FBOEM7WUFDOUMsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQztZQUUzRiw0QkFBNEI7WUFDNUIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxLQUFLO2dCQUMvQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsaUNBQWlDO2dCQUN0RyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLHlCQUF5QjtZQUV2RCwyQkFBMkI7WUFDM0IsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxLQUFLO2dCQUNuRCxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsaUNBQWlDO2dCQUMxRyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLHlCQUF5QjtZQUV6RCxnREFBZ0Q7WUFDaEQsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ3RCLHFEQUFxRDtnQkFDckQsSUFBSSxNQUFNLEtBQUssS0FBSyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxLQUFLLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRTtvQkFDakosT0FBTyxJQUFJLENBQUM7aUJBQ2I7Z0JBRUQsbURBQW1EO2dCQUNuRCxPQUFPLFFBQVEsS0FBSyxLQUFLLElBQUksUUFBUSxLQUFLLE1BQU0sQ0FBQzthQUNsRDtTQUNGO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO3dHQXpDVSxtQkFBbUI7NEdBQW5CLG1CQUFtQjs7NEZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVTs7QUFzRFgsTUFBTSxPQUFPLG1CQUFtQjtJQUU5QjtRQUNFLE9BQU8sQ0FBQyxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQztJQUN2RCxDQUFDO3dHQUpVLG1CQUFtQjt5R0FBbkIsbUJBQW1CLFlBUDVCLFlBQVk7eUdBT0gsbUJBQW1CLGFBTG5CO1lBQ1QsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixFQUFFO1lBQzlELEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxtQkFBbUIsRUFBRTtTQUNoRSxZQUxDLFlBQVk7OzRGQU9ILG1CQUFtQjtrQkFUL0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTtxQkFDYjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixFQUFFO3dCQUM5RCxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsbUJBQW1CLEVBQUU7cUJBQ2hFO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJvdXRlUmV1c2VTdHJhdGVneSwgUm91dGVyTW9kdWxlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtJb25pY1JvdXRlU3RyYXRlZ3l9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7Q29tcG9uZW50RGlydHlHdWFyZH0gZnJvbSAnLi9ndWFyZC9jb21wb25lbnQtZGlydHkuZ3VhcmQnO1xuaW1wb3J0IHtpc05pbCwgaXNOb3ROaWx9IGZyb20gJy4vZnVuY3Rpb25zJztcblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ3VzdG9tUmV1c2VTdHJhdGVneSBleHRlbmRzIElvbmljUm91dGVTdHJhdGVneSB7XG5cbiAgLyoqXG4gICAqIEZvcmNlIHRvIHJldXNlIHRoZSByb3V0ZSB3aGVuOlxuICAgKiAgLSBwYXRoIGNoYW5nZSBmcm9tIFsvbmV3XSAtPiBbLzppZF1cbiAgICogIC0gb3IgcGF0aCBjaGFuZ2UgZnJvbSBbL25ld10gLT4gWy9uZXc/aWQ9OmlkXVxuICAgKlxuICAgKiBAcGFyYW0gZnV0dXJlXG4gICAqIEBwYXJhbSBjdXJyXG4gICAqL1xuICBzaG91bGRSZXVzZVJvdXRlKGZ1dHVyZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgY3VycjogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHJldXNlID0gc3VwZXIuc2hvdWxkUmV1c2VSb3V0ZShmdXR1cmUsIGN1cnIpO1xuXG4gICAgLy8gSXMgc2FtIHJvdXRlIGNvbmZpZ1xuICAgIGlmICghcmV1c2UgJiYgZnV0dXJlLnJvdXRlQ29uZmlnICYmIGZ1dHVyZS5yb3V0ZUNvbmZpZyA9PT0gY3Vyci5yb3V0ZUNvbmZpZykge1xuICAgICAgLy8gUmVhZCB0aGUgcGFyYW1ldGVyIG5hbWUsIHdoZXJlIGlkIGlzIHN0b3JlZFxuICAgICAgY29uc3QgcGF0aElkUGFyYW0gPSBmdXR1cmUucm91dGVDb25maWcuZGF0YSAmJiBmdXR1cmUucm91dGVDb25maWcuZGF0YS5wYXRoSWRQYXJhbSB8fCAnaWQnO1xuXG4gICAgICAvLyBSZWFkIHRoZSBjdXJyZW50IHJvdXRlIGlkXG4gICAgICBjb25zdCBjdXJySWQgPSBjdXJyLnBhcmFtc1twYXRoSWRQYXJhbV0gPT09ICduZXcnXG4gICAgICAgID8gKGN1cnIucXVlcnlQYXJhbXNbcGF0aElkUGFyYW1dIHx8IGN1cnIucXVlcnlQYXJhbXNbJ2lkJ10gfHwgJ25ldycpIC8vIGUuZy4gcGF0aCBsaWtlICcvbmV3Lz9pZD08SUQ+J1xuICAgICAgICA6IGN1cnIucGFyYW1zW3BhdGhJZFBhcmFtXTsgLy8gZS5nLiBwYXRoIGxpa2UgJy88SUQ+J1xuXG4gICAgICAvLyBSZWFkIHRoZSBmdXR1cmUgcm91dGUgaWRcbiAgICAgIGNvbnN0IGZ1dHVyZUlkID0gZnV0dXJlLnBhcmFtc1twYXRoSWRQYXJhbV0gPT09ICduZXcnXG4gICAgICAgID8gKGZ1dHVyZS5xdWVyeVBhcmFtc1twYXRoSWRQYXJhbV0gfHwgZnV0dXJlLnF1ZXJ5UGFyYW1zWydpZCddIHx8ICduZXcnKSAvLyBlLmcuIHBhdGggbGlrZSAnL25ldy8/aWQ9PElEPidcbiAgICAgICAgOiBmdXR1cmUucGFyYW1zW3BhdGhJZFBhcmFtXTsgLy8gZS5nLiBwYXRoIGxpa2UgJy88SUQ+J1xuXG4gICAgICAvLyBSZXVzZSBpZiBzYW1lIElELCB1c2luZyBhIGZ1dHVyZUlkLCBpZiBleGlzdHNcbiAgICAgIGlmIChpc05vdE5pbChmdXR1cmVJZCkpIHtcbiAgICAgICAgLy8gQWxsb3cgcmV1c2Ugd2hlbiBjaGFuZ2luZyBmcm9tIC9uZXcgdG8gL25ldz9pZD06aWRcbiAgICAgICAgaWYgKGN1cnJJZCA9PT0gJ25ldycgJiYgaXNOaWwoY3Vyci5xdWVyeVBhcmFtc1twYXRoSWRQYXJhbV0pICYmIGZ1dHVyZS5wYXJhbXNbcGF0aElkUGFyYW1dID09PSAnbmV3JyAmJiBpc05vdE5pbChmdXR1cmUucXVlcnlQYXJhbXNbcGF0aElkUGFyYW1dKSkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQWxsb3cgcmV1c2Ugc2FtZSBpZCwgZXhwZWN0IHdoZW4gZXhwZWN0ZWQgJy9uZXcnXG4gICAgICAgIHJldHVybiBmdXR1cmVJZCAhPT0gJ25ldycgJiYgZnV0dXJlSWQgPT09IGN1cnJJZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmV1c2U7XG4gIH1cbn1cblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIFJvdXRlck1vZHVsZVxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IFJvdXRlUmV1c2VTdHJhdGVneSwgdXNlQ2xhc3M6IEN1c3RvbVJldXNlU3RyYXRlZ3kgfSxcbiAgICB7IHByb3ZpZGU6IENvbXBvbmVudERpcnR5R3VhcmQsIHVzZUNsYXNzOiBDb21wb25lbnREaXJ0eUd1YXJkIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTaGFyZWRSb3V0aW5nTW9kdWxlIHtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBjb25zb2xlLmRlYnVnKCdbc2hhcmVkLXJvdXRpbmddIENyZWF0aW5nIG1vZHVsZS4uLicpO1xuICB9XG59XG4iXX0=