@sumaris-net/ngx-components 2.6.26 → 2.7.0-rc10

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 (738) hide show
  1. package/esm2022/public_api.mjs +339 -0
  2. package/{esm2020 → esm2022}/src/app/admin/admin-routing.module.mjs +8 -8
  3. package/{esm2020 → esm2022}/src/app/admin/admin.module.mjs +12 -12
  4. package/esm2022/src/app/admin/services/filter/person.filter.mjs +69 -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 +264 -0
  8. package/esm2022/src/app/admin/users/users.module.mjs +58 -0
  9. package/{esm2020 → esm2022}/src/app/core/about/about.modal.mjs +20 -7
  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 +337 -0
  13. package/esm2022/src/app/core/account/new-token.modal.mjs +130 -0
  14. package/esm2022/src/app/core/account/token.table.mjs +146 -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/esm2022/src/app/core/core.testing.module.mjs +93 -0
  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 +718 -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 +730 -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/esm2022/src/app/core/form/form.utils.mjs +485 -0
  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-popover.component.mjs +152 -0
  41. package/{esm2020 → esm2022}/src/app/core/form/text-popover/text-popover.module.mjs +10 -10
  42. package/{esm2020 → esm2022}/src/app/core/graphql/graphql.module.mjs +6 -6
  43. package/esm2022/src/app/core/graphql/graphql.service.mjs +788 -0
  44. package/esm2022/src/app/core/graphql/graphql.utils.mjs +118 -0
  45. package/esm2022/src/app/core/home/home.mjs +282 -0
  46. package/esm2022/src/app/core/home/home.module.mjs +51 -0
  47. package/esm2022/src/app/core/icon/icon.component.mjs +40 -0
  48. package/{esm2020 → esm2022}/src/app/core/icon/icon.module.mjs +7 -7
  49. package/esm2022/src/app/core/install/install-upgrade-card.component.mjs +358 -0
  50. package/{esm2020 → esm2022}/src/app/core/install/install-upgrade-card.module.mjs +10 -10
  51. package/esm2022/src/app/core/menu/menu.component.mjs +264 -0
  52. package/esm2022/src/app/core/menu/menu.model.mjs +269 -0
  53. package/esm2022/src/app/core/menu/menu.module.mjs +52 -0
  54. package/esm2022/src/app/core/menu/menu.service.mjs +671 -0
  55. package/esm2022/src/app/core/menu/sub-menu-tab.directive.mjs +109 -0
  56. package/{esm2020 → esm2022}/src/app/core/menu/testing/menu-other.testing.mjs +5 -5
  57. package/esm2022/src/app/core/menu/testing/menu.testing.mjs +122 -0
  58. package/{esm2020 → esm2022}/src/app/core/menu/testing/menu.testing.module.mjs +12 -12
  59. package/esm2022/src/app/core/offline/update-offline-mode-card.component.mjs +29 -0
  60. package/{esm2020 → esm2022}/src/app/core/offline/update-offline-mode-card.module.mjs +10 -10
  61. package/esm2022/src/app/core/peer/select-peer.modal.mjs +193 -0
  62. package/{esm2020 → esm2022}/src/app/core/peer/select-peer.module.mjs +13 -13
  63. package/{esm2020 → esm2022}/src/app/core/register/register-confirm.page.mjs +16 -9
  64. package/esm2022/src/app/core/register/register.form.mjs +194 -0
  65. package/esm2022/src/app/core/register/register.modal.mjs +55 -0
  66. package/{esm2020 → esm2022}/src/app/core/register/register.module.mjs +13 -13
  67. package/esm2022/src/app/core/services/account.service.mjs +1243 -0
  68. package/esm2022/src/app/core/services/auth-guard.service.mjs +76 -0
  69. package/esm2022/src/app/core/services/base-entity-service.class.mjs +482 -0
  70. package/esm2022/src/app/core/services/base-graphql-service.class.mjs +224 -0
  71. package/esm2022/src/app/core/services/base58.mjs +79 -0
  72. package/esm2022/src/app/core/services/config.service.mjs +367 -0
  73. package/esm2022/src/app/core/services/crypto.service.mjs +107 -0
  74. package/{esm2020 → esm2022}/src/app/core/services/errors.mjs +3 -3
  75. package/esm2022/src/app/core/services/local-settings.service.mjs +468 -0
  76. package/esm2022/src/app/core/services/model/account.model.mjs +155 -0
  77. package/esm2022/src/app/core/services/model/config.model.mjs +107 -0
  78. package/esm2022/src/app/core/services/model/department.model.mjs +34 -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/{esm2020 → esm2022}/src/app/core/services/model/filter.model.mjs +1 -1
  82. package/esm2022/src/app/core/services/model/peer.model.mjs +83 -0
  83. package/esm2022/src/app/core/services/model/person.model.mjs +110 -0
  84. package/esm2022/src/app/core/services/model/referential.model.mjs +189 -0
  85. package/esm2022/src/app/core/services/model/token.model.mjs +57 -0
  86. package/esm2022/src/app/core/services/model/tree-item-entity.model.mjs +199 -0
  87. package/esm2022/src/app/core/services/network.service.mjs +626 -0
  88. package/esm2022/src/app/core/services/network.types.mjs +20 -0
  89. package/esm2022/src/app/core/services/network.utils.mjs +15 -0
  90. package/{esm2020 → esm2022}/src/app/core/services/pipes/account.pipes.mjs +9 -9
  91. package/{esm2020 → esm2022}/src/app/core/services/pipes/department-to-string.pipe.mjs +5 -5
  92. package/{esm2020 → esm2022}/src/app/core/services/pipes/person-to-string.pipe.mjs +5 -5
  93. package/{esm2020 → esm2022}/src/app/core/services/pipes/usage-mode.pipes.mjs +9 -9
  94. package/esm2022/src/app/core/services/platform.service.mjs +557 -0
  95. package/esm2022/src/app/core/services/storage/entities-storage.service.mjs +434 -0
  96. package/esm2022/src/app/core/services/storage/entity-store.class.mjs +458 -0
  97. package/esm2022/src/app/core/services/testing/referential-filter.model.mjs +25 -0
  98. package/esm2022/src/app/core/services/testing/referential.validator.mjs +46 -0
  99. package/esm2022/src/app/core/services/validator/account.validator.mjs +45 -0
  100. package/esm2022/src/app/core/services/validator/base.validator.class.mjs +49 -0
  101. package/esm2022/src/app/core/services/validator/local-settings.validator.mjs +67 -0
  102. package/{esm2020 → esm2022}/src/app/core/services/validator/user-settings.validator.mjs +5 -5
  103. package/{esm2020 → esm2022}/src/app/core/services/validator/user-token.validator.mjs +5 -5
  104. package/{esm2020 → esm2022}/src/app/core/settings/settings.module.mjs +9 -9
  105. package/esm2022/src/app/core/settings/settings.page.mjs +328 -0
  106. package/esm2022/src/app/core/table/actions-column.component.mjs +115 -0
  107. package/esm2022/src/app/core/table/async-table.class.mjs +1740 -0
  108. package/esm2022/src/app/core/table/entities-async-table-datasource.class.mjs +386 -0
  109. package/esm2022/src/app/core/table/entities-table-datasource.class.mjs +401 -0
  110. package/esm2022/src/app/core/table/memory-table.class.mjs +57 -0
  111. package/esm2022/src/app/core/table/table-select-columns.component.mjs +46 -0
  112. package/esm2022/src/app/core/table/table.class.mjs +1781 -0
  113. package/esm2022/src/app/core/table/table.model.mjs +16 -0
  114. package/{esm2020 → esm2022}/src/app/core/table/table.module.mjs +12 -12
  115. package/esm2022/src/app/core/table/table.utils.mjs +33 -0
  116. package/esm2022/src/app/core/table/testing/table-validator.service.mjs +28 -0
  117. package/esm2022/src/app/core/table/testing/table.testing.mjs +291 -0
  118. package/esm2022/src/app/core/table/testing/table.testing.module.mjs +50 -0
  119. package/esm2022/src/app/core/table/testing/table2-validator.service.mjs +25 -0
  120. package/esm2022/src/app/core/table/testing/table2.testing.mjs +250 -0
  121. package/esm2022/src/app/shared/alerts.mjs +239 -0
  122. package/esm2022/src/app/shared/audio/audio.mjs +251 -0
  123. package/esm2022/src/app/shared/audio/audio.testing.mjs +32 -0
  124. package/{esm2020 → esm2022}/src/app/shared/audio/audio.testing.module.mjs +10 -10
  125. package/esm2022/src/app/shared/capacitor/keyboard.mjs +42 -0
  126. package/esm2022/src/app/shared/capacitor/plugins.mjs +9 -0
  127. package/esm2022/src/app/shared/dates.mjs +149 -0
  128. package/esm2022/src/app/shared/debug/debug.component.mjs +40 -0
  129. package/{esm2020 → esm2022}/src/app/shared/debug/debug.module.mjs +14 -14
  130. package/esm2022/src/app/shared/directives/autofocus.directive.mjs +98 -0
  131. package/esm2022/src/app/shared/directives/autotitle.directive.mjs +32 -0
  132. package/{esm2020 → esm2022}/src/app/shared/directives/directives.module.mjs +13 -13
  133. package/esm2022/src/app/shared/directives/drag-and-drop.directive.mjs +52 -0
  134. package/esm2022/src/app/shared/directives/ng-var.directive.mjs +33 -0
  135. package/esm2022/src/app/shared/directives/resizable/resizable.component.mjs +62 -0
  136. package/esm2022/src/app/shared/directives/resizable/resizable.directive.mjs +45 -0
  137. package/{esm2020 → esm2022}/src/app/shared/directives/resizable/resizable.module.mjs +5 -5
  138. package/esm2022/src/app/shared/events.mjs +65 -0
  139. package/esm2022/src/app/shared/file/csv.utils.mjs +72 -0
  140. package/esm2022/src/app/shared/file/file.service.mjs +122 -0
  141. package/esm2022/src/app/shared/file/file.utils.mjs +113 -0
  142. package/esm2022/src/app/shared/file/images.utils.mjs +161 -0
  143. package/{esm2020 → esm2022}/src/app/shared/file/json.utils.mjs +1 -1
  144. package/esm2022/src/app/shared/file/uri.utils.mjs +24 -0
  145. package/esm2022/src/app/shared/form/field.component.mjs +353 -0
  146. package/{esm2020 → esm2022}/src/app/shared/form/field.model.mjs +1 -1
  147. package/esm2022/src/app/shared/form/loading-spinner.mjs +35 -0
  148. package/esm2022/src/app/shared/forms.mjs +414 -0
  149. package/esm2022/src/app/shared/functions.mjs +483 -0
  150. package/esm2022/src/app/shared/geolocation/geolocation.utils.mjs +82 -0
  151. package/esm2022/src/app/shared/gesture/gesture-config.mjs +46 -0
  152. package/{esm2020 → esm2022}/src/app/shared/graph/colors.utils.mjs +1 -1
  153. package/esm2022/src/app/shared/graph/graph-colors.mjs +219 -0
  154. package/esm2022/src/app/shared/guard/component-dirty.guard.mjs +59 -0
  155. package/esm2022/src/app/shared/help/help.modal.mjs +63 -0
  156. package/esm2022/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +23 -0
  157. package/esm2022/src/app/shared/hotkeys/hotkeys.service.mjs +85 -0
  158. package/{esm2020 → esm2022}/src/app/shared/hotkeys/shared-hotkeys.module.mjs +13 -13
  159. package/esm2022/src/app/shared/http/http.utils.mjs +56 -0
  160. package/esm2022/src/app/shared/image/gallery/image-gallery.component.mjs +388 -0
  161. package/{esm2020 → esm2022}/src/app/shared/image/gallery/image-gallery.module.mjs +22 -22
  162. package/esm2022/src/app/shared/image/gallery/testing/gallegry.model.testing.mjs +26 -0
  163. package/esm2022/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +90 -0
  164. package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.mjs +41 -0
  165. package/{esm2020 → esm2022}/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +16 -16
  166. package/{esm2020 → esm2022}/src/app/shared/image/image.module.mjs +11 -11
  167. package/esm2022/src/app/shared/image/image.service.mjs +104 -0
  168. package/esm2022/src/app/shared/inputs.mjs +231 -0
  169. package/esm2022/src/app/shared/interceptors/progess.interceptor.mjs +28 -0
  170. package/esm2022/src/app/shared/logging/logger.model.mjs +47 -0
  171. package/esm2022/src/app/shared/logging/logging-service.class.mjs +128 -0
  172. package/{esm2020 → esm2022}/src/app/shared/logging/logging-service.module.mjs +8 -8
  173. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.config.mjs +49 -0
  174. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.mjs +967 -0
  175. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +82 -0
  176. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.utils.mjs +17 -0
  177. package/esm2022/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +217 -0
  178. package/esm2022/src/app/shared/material/badge/badge.directive.mjs +209 -0
  179. package/{esm2020 → esm2022}/src/app/shared/material/badge/badge.module.mjs +9 -9
  180. package/esm2022/src/app/shared/material/badge/badge.test.mjs +42 -0
  181. package/esm2022/src/app/shared/material/boolean/boolean.module.mjs +67 -0
  182. package/esm2022/src/app/shared/material/boolean/material-boolean.mjs +262 -0
  183. package/esm2022/src/app/shared/material/boolean/testing/boolean.test.page.mjs +53 -0
  184. package/esm2022/src/app/shared/material/chips/chips.module.mjs +76 -0
  185. package/esm2022/src/app/shared/material/chips/material.chips.mjs +719 -0
  186. package/esm2022/src/app/shared/material/chips/testing/chips.test.mjs +148 -0
  187. package/esm2022/src/app/shared/material/datetime/datetime.module.mjs +90 -0
  188. package/esm2022/src/app/shared/material/datetime/material.date.mjs +424 -0
  189. package/esm2022/src/app/shared/material/datetime/material.dateshort.mjs +432 -0
  190. package/esm2022/src/app/shared/material/datetime/material.datetime.mjs +612 -0
  191. package/esm2022/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +132 -0
  192. package/esm2022/src/app/shared/material/datetime/testing/mat-date.test.mjs +123 -0
  193. package/esm2022/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +115 -0
  194. package/esm2022/src/app/shared/material/duration/duration.module.mjs +70 -0
  195. package/esm2022/src/app/shared/material/duration/duration.utils.mjs +36 -0
  196. package/esm2022/src/app/shared/material/duration/material.duration.mjs +273 -0
  197. package/esm2022/src/app/shared/material/duration/testing/mat-duration.test.mjs +79 -0
  198. package/esm2022/src/app/shared/material/latlong/latlong.utils.mjs +266 -0
  199. package/esm2022/src/app/shared/material/latlong/material.latlong.mjs +440 -0
  200. package/esm2022/src/app/shared/material/latlong/material.latlong.module.mjs +72 -0
  201. package/esm2022/src/app/shared/material/latlong/testing/latlong.test.mjs +113 -0
  202. package/esm2022/src/app/shared/material/material.module.mjs +229 -0
  203. package/esm2022/src/app/shared/material/material.testing.module.mjs +221 -0
  204. package/esm2022/src/app/shared/material/numpad/numpad.append-to-input.directive.mjs +104 -0
  205. package/{esm2020 → esm2022}/src/app/shared/material/numpad/numpad.component.mjs +19 -16
  206. package/esm2022/src/app/shared/material/numpad/numpad.container.mjs +203 -0
  207. package/esm2022/src/app/shared/material/numpad/numpad.content.mjs +19 -0
  208. package/esm2022/src/app/shared/material/numpad/numpad.directive.mjs +168 -0
  209. package/esm2022/src/app/shared/material/numpad/numpad.dom-service.mjs +36 -0
  210. package/esm2022/src/app/shared/material/numpad/numpad.model.mjs +16 -0
  211. package/{esm2020 → esm2022}/src/app/shared/material/numpad/numpad.module.mjs +21 -21
  212. package/esm2022/src/app/shared/material/numpad/testing/numpad.test.mjs +48 -0
  213. package/esm2022/src/app/shared/material/paginator/material.paginator-i18n.mjs +48 -0
  214. package/esm2022/src/app/shared/material/stepper/material.stepper-i18n.mjs +23 -0
  215. package/esm2022/src/app/shared/material/swipe/material.swipe.mjs +368 -0
  216. package/esm2022/src/app/shared/material/swipe/swipe.module.mjs +56 -0
  217. package/esm2022/src/app/shared/material/swipe/testing/swipe.test.mjs +67 -0
  218. package/esm2022/src/app/shared/material/testing/common.test.mjs +105 -0
  219. package/esm2022/src/app/shared/material/text/testing/text-form.testing.mjs +31 -0
  220. package/esm2022/src/app/shared/material/text/text-form.component.mjs +97 -0
  221. package/{esm2020 → esm2022}/src/app/shared/material/text/text-form.module.mjs +24 -24
  222. package/esm2022/src/app/shared/named-filter/named-filter-selector.component.mjs +246 -0
  223. package/esm2022/src/app/shared/named-filter/named-filter.model.mjs +49 -0
  224. package/{esm2020 → esm2022}/src/app/shared/named-filter/named-filter.module.mjs +5 -5
  225. package/esm2022/src/app/shared/named-filter/named-filter.service.mjs +69 -0
  226. package/esm2022/src/app/shared/observables.mjs +104 -0
  227. package/esm2022/src/app/shared/pipes/arrays.pipe.mjs +141 -0
  228. package/esm2022/src/app/shared/pipes/colors.pipe.mjs +27 -0
  229. package/esm2022/src/app/shared/pipes/date-diff-duration.pipe.mjs +51 -0
  230. package/esm2022/src/app/shared/pipes/date-format.pipe.mjs +72 -0
  231. package/esm2022/src/app/shared/pipes/date-from-now.pipe.mjs +28 -0
  232. package/esm2022/src/app/shared/pipes/duration.pipe.mjs +36 -0
  233. package/esm2022/src/app/shared/pipes/file-size.pipe.mjs +60 -0
  234. package/esm2022/src/app/shared/pipes/form.pipes.mjs +194 -0
  235. package/esm2022/src/app/shared/pipes/highlight.pipe.mjs +48 -0
  236. package/esm2022/src/app/shared/pipes/latlong-format.pipe.mjs +42 -0
  237. package/{esm2020 → esm2022}/src/app/shared/pipes/maps.pipe.mjs +13 -13
  238. package/esm2022/src/app/shared/pipes/maskito.pipe.mjs +69 -0
  239. package/esm2022/src/app/shared/pipes/math.pipes.mjs +59 -0
  240. package/esm2022/src/app/shared/pipes/ng-init.pipe.mjs +19 -0
  241. package/esm2022/src/app/shared/pipes/number-format.pipe.mjs +30 -0
  242. package/esm2022/src/app/shared/pipes/pipes.module.mjs +252 -0
  243. package/esm2022/src/app/shared/pipes/property.pipes.mjs +97 -0
  244. package/esm2022/src/app/shared/pipes/string.pipes.mjs +135 -0
  245. package/esm2022/src/app/shared/pipes/translate-context.pipe.mjs +44 -0
  246. package/esm2022/src/app/shared/pipes/types.pipes.mjs +58 -0
  247. package/esm2022/src/app/shared/platforms.mjs +43 -0
  248. package/esm2022/src/app/shared/rx-state.module.mjs +23 -0
  249. package/esm2022/src/app/shared/services/job.utils.mjs +92 -0
  250. package/esm2022/src/app/shared/services/memory-entity-service.class.mjs +347 -0
  251. package/esm2022/src/app/shared/services/progress-bar.service.mjs +31 -0
  252. package/esm2022/src/app/shared/services/startable-observable-service.class.mjs +121 -0
  253. package/esm2022/src/app/shared/services/startable-service.class.mjs +113 -0
  254. package/esm2022/src/app/shared/services/translate-context.service.mjs +104 -0
  255. package/esm2022/src/app/shared/services.mjs +62 -0
  256. package/esm2022/src/app/shared/shared-routing.module.mjs +71 -0
  257. package/esm2022/src/app/shared/shared.module.mjs +231 -0
  258. package/{esm2020 → esm2022}/src/app/shared/shared.testing.module.mjs +40 -40
  259. package/esm2022/src/app/shared/storage/storage-explorer.component.mjs +286 -0
  260. package/esm2022/src/app/shared/storage/storage-explorer.module.mjs +46 -0
  261. package/{esm2020 → esm2022}/src/app/shared/storage/storage-explorer.testing-routing.module.mjs +7 -7
  262. package/{esm2020 → esm2022}/src/app/shared/storage/storage-explorer.testing.module.mjs +6 -6
  263. package/esm2022/src/app/shared/storage/storage.service.mjs +134 -0
  264. package/{esm2020 → esm2022}/src/app/shared/storage/storage.utils.mjs +1 -1
  265. package/esm2022/src/app/shared/testing/observable.test.mjs +96 -0
  266. package/esm2022/src/app/shared/testing/tests.page.mjs +37 -0
  267. package/esm2022/src/app/shared/toast/toast.testing.mjs +52 -0
  268. package/{esm2020 → esm2022}/src/app/shared/toast/toast.testing.module.mjs +10 -10
  269. package/esm2022/src/app/shared/toast/toasts.mjs +144 -0
  270. package/esm2022/src/app/shared/toolbar/modal-toolbar.mjs +60 -0
  271. package/esm2022/src/app/shared/toolbar/toolbar.mjs +263 -0
  272. package/esm2022/src/app/shared/toolbar/toolbar.module.mjs +57 -0
  273. package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.mjs +59 -0
  274. package/{esm2020 → esm2022}/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +10 -10
  275. package/esm2022/src/app/shared/upload-file/upload-file-popover.component.mjs +107 -0
  276. package/esm2022/src/app/shared/upload-file/upload-file.component.mjs +211 -0
  277. package/esm2022/src/app/shared/upload-file/upload-file.model.mjs +27 -0
  278. package/esm2022/src/app/shared/validator/form-error-adapter.class.mjs +106 -0
  279. package/esm2022/src/app/shared/validator/validators.mjs +580 -0
  280. package/esm2022/src/app/shared/version/versions.mjs +81 -0
  281. package/esm2022/src/app/social/job/job.module.mjs +42 -0
  282. package/esm2022/src/app/social/job/progression/job-progression.component.mjs +35 -0
  283. package/esm2022/src/app/social/job/progression/job-progression.icon.mjs +232 -0
  284. package/esm2022/src/app/social/job/progression/job-progression.list.mjs +50 -0
  285. package/esm2022/src/app/social/job/progression/job-progression.model.mjs +29 -0
  286. package/esm2022/src/app/social/job/progression/job-progression.service.mjs +73 -0
  287. package/esm2022/src/app/social/job/testing/job-progression.testing.mjs +43 -0
  288. package/esm2022/src/app/social/job/testing/job-progression.testing.service.mjs +53 -0
  289. package/{esm2020 → esm2022}/src/app/social/job/testing/job.testing.module.mjs +9 -9
  290. package/esm2022/src/app/social/message/message.form.mjs +140 -0
  291. package/esm2022/src/app/social/message/message.modal.mjs +110 -0
  292. package/esm2022/src/app/social/message/message.model.mjs +75 -0
  293. package/{esm2020 → esm2022}/src/app/social/message/message.module.mjs +5 -5
  294. package/esm2022/src/app/social/message/message.service.mjs +110 -0
  295. package/{esm2020 → esm2022}/src/app/social/social.module.mjs +19 -19
  296. package/{esm2020 → esm2022}/src/app/social/social.testing.module.mjs +10 -10
  297. package/esm2022/src/app/social/user-event/notification/user-event-notification.icon.mjs +123 -0
  298. package/esm2022/src/app/social/user-event/notification/user-event-notification.list.mjs +263 -0
  299. package/esm2022/src/app/social/user-event/testing/user-event.testing.mjs +233 -0
  300. package/esm2022/src/app/social/user-event/testing/user-event.testing.model.mjs +129 -0
  301. package/{esm2020 → esm2022}/src/app/social/user-event/testing/user-event.testing.module.mjs +9 -9
  302. package/esm2022/src/app/social/user-event/testing/user-event.testing.service.mjs +116 -0
  303. package/esm2022/src/app/social/user-event/user-event.module.mjs +43 -0
  304. package/esm2022/src/app/social/user-event/user-event.service.mjs +512 -0
  305. package/esm2022/src/environments/environment.class.mjs +50 -0
  306. package/esm2022/src/environments/environment.loader.mjs +83 -0
  307. package/esm2022/src/environments/environment.mjs +97 -0
  308. package/{fesm2020 → fesm2022}/sumaris-net.ngx-components.mjs +13100 -10864
  309. package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -0
  310. package/package.json +37 -17
  311. package/public_api.d.ts +12 -5
  312. package/src/app/admin/users/users.d.ts +1 -1
  313. package/src/app/admin/users/users.module.d.ts +2 -1
  314. package/src/app/core/about/about.modal.d.ts +1 -1
  315. package/src/app/core/account/account.page.d.ts +1 -1
  316. package/src/app/core/account/new-token.modal.d.ts +1 -1
  317. package/src/app/core/account/token.table.d.ts +1 -1
  318. package/src/app/core/auth/auth.form.d.ts +1 -1
  319. package/src/app/core/auth/auth.modal.d.ts +1 -1
  320. package/src/app/core/form/buttons/form-buttons-bar.component.d.ts +1 -1
  321. package/src/app/core/form/entity/editor.class.d.ts +3 -3
  322. package/src/app/core/form/entity/entity-editor-modal.class.d.ts +1 -1
  323. package/src/app/core/form/entity/entity-editor.class.d.ts +1 -1
  324. package/src/app/core/form/entity/entity-metadata.component.d.ts +1 -1
  325. package/src/app/core/form/form.class.d.ts +1 -1
  326. package/src/app/core/form/list/list.form.d.ts +1 -1
  327. package/src/app/core/form/properties/properties.form.d.ts +1 -1
  328. package/src/app/core/form/properties/properties.table.d.ts +2 -3
  329. package/src/app/core/form/properties/property.validator.d.ts +1 -1
  330. package/src/app/core/form/properties/testing/properties-form.test.d.ts +1 -1
  331. package/src/app/core/form/text-popover/testing/text-popover.testing.d.ts +1 -1
  332. package/src/app/core/form/text-popover/text-popover.component.d.ts +1 -1
  333. package/src/app/core/graphql/graphql.utils.d.ts +1 -1
  334. package/src/app/core/home/home.d.ts +1 -1
  335. package/src/app/core/home/home.module.d.ts +4 -3
  336. package/src/app/core/icon/icon.component.d.ts +1 -1
  337. package/src/app/core/install/install-upgrade-card.component.d.ts +1 -1
  338. package/src/app/core/menu/menu.component.d.ts +2 -2
  339. package/src/app/core/menu/menu.model.d.ts +0 -1
  340. package/src/app/core/menu/menu.module.d.ts +3 -5
  341. package/src/app/core/menu/menu.service.d.ts +1 -1
  342. package/src/app/core/menu/sub-menu-tab.directive.d.ts +1 -1
  343. package/src/app/core/menu/testing/menu-other.testing.d.ts +1 -1
  344. package/src/app/core/menu/testing/menu.testing.d.ts +1 -1
  345. package/src/app/core/offline/update-offline-mode-card.component.d.ts +1 -1
  346. package/src/app/core/peer/select-peer.modal.d.ts +1 -1
  347. package/src/app/core/register/register-confirm.page.d.ts +1 -1
  348. package/src/app/core/register/register.form.d.ts +1 -1
  349. package/src/app/core/register/register.modal.d.ts +1 -1
  350. package/src/app/core/services/base-entity-service.class.d.ts +2 -2
  351. package/src/app/core/services/base-graphql-service.class.d.ts +1 -1
  352. package/src/app/core/services/model/person.model.d.ts +1 -1
  353. package/src/app/core/services/model/settings.model.d.ts +1 -1
  354. package/src/app/core/services/network.types.d.ts +2 -2
  355. package/src/app/core/services/storage/entity-store.class.d.ts +1 -1
  356. package/src/app/core/services/validator/base.validator.class.d.ts +1 -1
  357. package/src/app/core/settings/settings.page.d.ts +1 -1
  358. package/src/app/core/table/actions-column.component.d.ts +2 -2
  359. package/src/app/core/table/async-table.class.d.ts +1 -1
  360. package/src/app/core/table/entities-async-table-datasource.class.d.ts +1 -1
  361. package/src/app/core/table/entities-table-datasource.class.d.ts +1 -1
  362. package/src/app/core/table/memory-table.class.d.ts +3 -3
  363. package/src/app/core/table/table-select-columns.component.d.ts +1 -1
  364. package/src/app/core/table/table.class.d.ts +4 -3
  365. package/src/app/core/table/table.model.d.ts +1 -1
  366. package/src/app/core/table/testing/table.testing.d.ts +5 -4
  367. package/src/app/core/table/testing/table.testing.module.d.ts +8 -5
  368. package/src/app/core/table/testing/table2-validator.service.d.ts +15 -0
  369. package/src/app/core/table/testing/table2.testing.d.ts +45 -0
  370. package/src/app/shared/audio/audio.d.ts +1 -1
  371. package/src/app/shared/audio/audio.testing.d.ts +1 -1
  372. package/src/app/shared/debug/debug.component.d.ts +1 -1
  373. package/src/app/shared/directives/autofocus.directive.d.ts +1 -1
  374. package/src/app/shared/directives/autotitle.directive.d.ts +1 -1
  375. package/src/app/shared/directives/drag-and-drop.directive.d.ts +1 -1
  376. package/src/app/shared/directives/ng-var.directive.d.ts +1 -1
  377. package/src/app/shared/directives/resizable/resizable.component.d.ts +1 -1
  378. package/src/app/shared/directives/resizable/resizable.directive.d.ts +1 -1
  379. package/src/app/shared/events.d.ts +1 -1
  380. package/src/app/shared/form/field.component.d.ts +4 -5
  381. package/src/app/shared/form/field.model.d.ts +2 -0
  382. package/src/app/shared/form/loading-spinner.d.ts +1 -1
  383. package/src/app/shared/functions.d.ts +2 -2
  384. package/src/app/shared/help/help.modal.d.ts +2 -2
  385. package/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.d.ts +3 -5
  386. package/src/app/shared/hotkeys/hotkeys.service.d.ts +3 -3
  387. package/src/app/shared/image/gallery/image-gallery.component.d.ts +3 -3
  388. package/src/app/shared/image/gallery/testing/gallery.testing.d.ts +2 -2
  389. package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +10 -8
  390. package/src/app/shared/material/autocomplete/material.autocomplete.module.d.ts +10 -9
  391. package/src/app/shared/material/autocomplete/testing/autocomplete.test.d.ts +1 -1
  392. package/src/app/shared/material/badge/badge.directive.d.ts +1 -1
  393. package/src/app/shared/material/badge/badge.test.d.ts +1 -1
  394. package/src/app/shared/material/boolean/boolean.module.d.ts +5 -5
  395. package/src/app/shared/material/boolean/{material.boolean.d.ts → material-boolean.d.ts} +20 -23
  396. package/src/app/shared/material/boolean/testing/boolean.test.page.d.ts +21 -0
  397. package/src/app/shared/material/chips/material.chips.d.ts +8 -9
  398. package/src/app/shared/material/chips/testing/chips.test.d.ts +2 -2
  399. package/src/app/shared/material/datetime/datetime.module.d.ts +2 -2
  400. package/src/app/shared/material/datetime/material.date.d.ts +8 -5
  401. package/src/app/shared/material/datetime/material.dateshort.d.ts +11 -8
  402. package/src/app/shared/material/datetime/material.datetime.d.ts +24 -12
  403. package/src/app/shared/material/datetime/testing/mat-date-time.test.d.ts +7 -1
  404. package/src/app/shared/material/datetime/testing/mat-date.test.d.ts +3 -1
  405. package/src/app/shared/material/datetime/testing/mat-dateshort.test.d.ts +3 -1
  406. package/src/app/shared/material/duration/duration.module.d.ts +6 -5
  407. package/src/app/shared/material/duration/material.duration.d.ts +6 -5
  408. package/src/app/shared/material/duration/testing/mat-duration.test.d.ts +22 -0
  409. package/src/app/shared/material/latlong/material.latlong.d.ts +16 -9
  410. package/src/app/shared/material/latlong/material.latlong.module.d.ts +9 -8
  411. package/src/app/shared/material/latlong/testing/latlong.test.d.ts +3 -1
  412. package/src/app/shared/material/material.testing.module.d.ts +23 -19
  413. package/src/app/shared/material/numpad/numpad.append-to-input.directive.d.ts +1 -1
  414. package/src/app/shared/material/numpad/numpad.component.d.ts +1 -1
  415. package/src/app/shared/material/numpad/numpad.container.d.ts +1 -1
  416. package/src/app/shared/material/numpad/numpad.content.d.ts +1 -1
  417. package/src/app/shared/material/numpad/numpad.directive.d.ts +1 -1
  418. package/src/app/shared/material/numpad/numpad.dom-service.d.ts +3 -3
  419. package/src/app/shared/material/numpad/testing/numpad.test.d.ts +1 -1
  420. package/src/app/shared/material/paginator/material.paginator-i18n.d.ts +0 -3
  421. package/src/app/shared/material/swipe/material.swipe.d.ts +6 -6
  422. package/src/app/shared/material/swipe/swipe.module.d.ts +2 -1
  423. package/src/app/shared/material/swipe/testing/swipe.test.d.ts +1 -1
  424. package/src/app/shared/material/testing/common.test.d.ts +25 -0
  425. package/src/app/shared/material/text/testing/text-form.testing.d.ts +1 -1
  426. package/src/app/shared/material/text/text-form.component.d.ts +1 -1
  427. package/src/app/shared/named-filter/named-filter-selector.component.d.ts +4 -1
  428. package/src/app/shared/named-filter/named-filter.service.d.ts +1 -1
  429. package/src/app/shared/pipes/maskito.pipe.d.ts +9 -0
  430. package/src/app/shared/pipes/ng-init.pipe.d.ts +1 -1
  431. package/src/app/shared/pipes/pipes.module.d.ts +5 -4
  432. package/src/app/shared/pipes/string.pipes.d.ts +6 -0
  433. package/src/app/shared/pipes/types.pipes.d.ts +7 -0
  434. package/src/app/shared/rx-state.module.d.ts +10 -0
  435. package/src/app/shared/services/job.utils.d.ts +1 -1
  436. package/src/app/shared/services/memory-entity-service.class.d.ts +1 -1
  437. package/src/app/shared/services/startable-observable-service.class.d.ts +3 -0
  438. package/src/app/shared/services/startable-service.class.d.ts +3 -0
  439. package/src/app/shared/shared.module.d.ts +4 -4
  440. package/src/app/shared/storage/storage-explorer.component.d.ts +1 -1
  441. package/src/app/shared/storage/storage-explorer.module.d.ts +3 -3
  442. package/src/app/shared/storage/storage.service.d.ts +1 -1
  443. package/src/app/shared/storage/storage.utils.d.ts +1 -1
  444. package/src/app/shared/testing/observable.test.d.ts +1 -1
  445. package/src/app/shared/testing/tests.page.d.ts +1 -1
  446. package/src/app/shared/toast/toast.testing.d.ts +1 -1
  447. package/src/app/shared/toolbar/modal-toolbar.d.ts +1 -1
  448. package/src/app/shared/toolbar/toolbar.d.ts +1 -1
  449. package/src/app/shared/toolbar/toolbar.module.d.ts +4 -3
  450. package/src/app/shared/upload-file/testing/upload-file.testing.d.ts +1 -1
  451. package/src/app/shared/upload-file/upload-file-popover.component.d.ts +1 -1
  452. package/src/app/shared/upload-file/upload-file.component.d.ts +1 -1
  453. package/src/app/shared/upload-file/upload-file.model.d.ts +2 -2
  454. package/src/app/social/job/progression/job-progression.component.d.ts +17 -3
  455. package/src/app/social/job/progression/job-progression.icon.d.ts +24 -10
  456. package/src/app/social/job/progression/job-progression.list.d.ts +3 -3
  457. package/src/app/social/job/progression/job-progression.model.d.ts +0 -1
  458. package/src/app/social/job/testing/job-progression.testing.d.ts +3 -6
  459. package/src/app/social/message/message.form.d.ts +1 -1
  460. package/src/app/social/message/message.modal.d.ts +1 -1
  461. package/src/app/social/user-event/notification/user-event-notification.icon.d.ts +4 -3
  462. package/src/app/social/user-event/notification/user-event-notification.list.d.ts +1 -1
  463. package/src/app/social/user-event/testing/user-event.testing.d.ts +1 -1
  464. package/src/app/social/user-event/testing/user-event.testing.model.d.ts +0 -1
  465. package/src/app/social/user-event/user-event.model.d.ts +2 -2
  466. package/src/app/social/user-event/user-event.module.d.ts +3 -2
  467. package/src/app/social/user-event/user-event.service.d.ts +1 -1
  468. package/src/assets/i18n/fr.json +2 -2
  469. package/src/assets/img/logo/logo-eis.png +0 -0
  470. package/src/assets/manifest.json +1 -1
  471. package/src/environments/environment.loader.d.ts +1 -1
  472. package/src/theme/_material.globals.scss +51 -19
  473. package/src/theme/_material.scss +35 -19
  474. package/src/theme/_mixins.scss +4 -4
  475. package/src/theme/_ngx-components.globals.scss +6 -1
  476. package/src/theme/_ngx-components.scss +262 -538
  477. package/src/theme/_ngx-components.table.scss +597 -0
  478. package/src/theme/_theme.scss +1 -0
  479. package/esm2020/public_api.mjs +0 -332
  480. package/esm2020/src/app/admin/services/filter/person.filter.mjs +0 -59
  481. package/esm2020/src/app/admin/services/person.service.mjs +0 -170
  482. package/esm2020/src/app/admin/services/validator/person.validator.mjs +0 -71
  483. package/esm2020/src/app/admin/users/users.mjs +0 -250
  484. package/esm2020/src/app/admin/users/users.module.mjs +0 -54
  485. package/esm2020/src/app/core/account/account.page.mjs +0 -319
  486. package/esm2020/src/app/core/account/new-token.modal.mjs +0 -121
  487. package/esm2020/src/app/core/account/token.table.mjs +0 -141
  488. package/esm2020/src/app/core/auth/auth.form.mjs +0 -131
  489. package/esm2020/src/app/core/auth/auth.modal.mjs +0 -72
  490. package/esm2020/src/app/core/core.testing.module.mjs +0 -86
  491. package/esm2020/src/app/core/form/buttons/form-buttons-bar.component.mjs +0 -107
  492. package/esm2020/src/app/core/form/entity/editor.class.mjs +0 -685
  493. package/esm2020/src/app/core/form/entity/entity-editor-modal.class.mjs +0 -422
  494. package/esm2020/src/app/core/form/entity/entity-editor.class.mjs +0 -696
  495. package/esm2020/src/app/core/form/entity/entity-metadata.component.mjs +0 -25
  496. package/esm2020/src/app/core/form/form.class.mjs +0 -345
  497. package/esm2020/src/app/core/form/form.utils.mjs +0 -476
  498. package/esm2020/src/app/core/form/list/list.form.mjs +0 -222
  499. package/esm2020/src/app/core/form/properties/properties.form.mjs +0 -132
  500. package/esm2020/src/app/core/form/properties/properties.table.mjs +0 -267
  501. package/esm2020/src/app/core/form/properties/property.validator.mjs +0 -23
  502. package/esm2020/src/app/core/form/properties/testing/properties-form.test.mjs +0 -90
  503. package/esm2020/src/app/core/form/text-popover/testing/text-popover.testing.mjs +0 -70
  504. package/esm2020/src/app/core/form/text-popover/text-popover.component.mjs +0 -146
  505. package/esm2020/src/app/core/graphql/graphql.service.mjs +0 -776
  506. package/esm2020/src/app/core/graphql/graphql.utils.mjs +0 -117
  507. package/esm2020/src/app/core/home/home.mjs +0 -257
  508. package/esm2020/src/app/core/home/home.module.mjs +0 -48
  509. package/esm2020/src/app/core/icon/icon.component.mjs +0 -41
  510. package/esm2020/src/app/core/install/install-upgrade-card.component.mjs +0 -344
  511. package/esm2020/src/app/core/menu/menu.component.mjs +0 -242
  512. package/esm2020/src/app/core/menu/menu.model.mjs +0 -247
  513. package/esm2020/src/app/core/menu/menu.module.mjs +0 -57
  514. package/esm2020/src/app/core/menu/menu.service.mjs +0 -660
  515. package/esm2020/src/app/core/menu/sub-menu-tab.directive.mjs +0 -98
  516. package/esm2020/src/app/core/menu/testing/menu.testing.mjs +0 -121
  517. package/esm2020/src/app/core/offline/update-offline-mode-card.component.mjs +0 -27
  518. package/esm2020/src/app/core/peer/select-peer.modal.mjs +0 -183
  519. package/esm2020/src/app/core/register/register.form.mjs +0 -183
  520. package/esm2020/src/app/core/register/register.modal.mjs +0 -52
  521. package/esm2020/src/app/core/services/account.service.mjs +0 -1235
  522. package/esm2020/src/app/core/services/auth-guard.service.mjs +0 -71
  523. package/esm2020/src/app/core/services/base-entity-service.class.mjs +0 -468
  524. package/esm2020/src/app/core/services/base-graphql-service.class.mjs +0 -221
  525. package/esm2020/src/app/core/services/base58.mjs +0 -78
  526. package/esm2020/src/app/core/services/config.service.mjs +0 -357
  527. package/esm2020/src/app/core/services/crypto.service.mjs +0 -107
  528. package/esm2020/src/app/core/services/local-settings.service.mjs +0 -460
  529. package/esm2020/src/app/core/services/model/account.model.mjs +0 -147
  530. package/esm2020/src/app/core/services/model/config.model.mjs +0 -92
  531. package/esm2020/src/app/core/services/model/department.model.mjs +0 -30
  532. package/esm2020/src/app/core/services/model/entity.decorators.mjs +0 -97
  533. package/esm2020/src/app/core/services/model/entity.model.mjs +0 -225
  534. package/esm2020/src/app/core/services/model/peer.model.mjs +0 -68
  535. package/esm2020/src/app/core/services/model/person.model.mjs +0 -97
  536. package/esm2020/src/app/core/services/model/referential.model.mjs +0 -167
  537. package/esm2020/src/app/core/services/model/token.model.mjs +0 -52
  538. package/esm2020/src/app/core/services/model/tree-item-entity.model.mjs +0 -199
  539. package/esm2020/src/app/core/services/network.service.mjs +0 -607
  540. package/esm2020/src/app/core/services/network.types.mjs +0 -20
  541. package/esm2020/src/app/core/services/network.utils.mjs +0 -15
  542. package/esm2020/src/app/core/services/platform.service.mjs +0 -535
  543. package/esm2020/src/app/core/services/storage/entities-storage.service.mjs +0 -428
  544. package/esm2020/src/app/core/services/storage/entity-store.class.mjs +0 -449
  545. package/esm2020/src/app/core/services/testing/referential-filter.model.mjs +0 -23
  546. package/esm2020/src/app/core/services/testing/referential.validator.mjs +0 -45
  547. package/esm2020/src/app/core/services/validator/account.validator.mjs +0 -41
  548. package/esm2020/src/app/core/services/validator/base.validator.class.mjs +0 -47
  549. package/esm2020/src/app/core/services/validator/local-settings.validator.mjs +0 -66
  550. package/esm2020/src/app/core/settings/settings.page.mjs +0 -312
  551. package/esm2020/src/app/core/table/actions-column.component.mjs +0 -102
  552. package/esm2020/src/app/core/table/async-table.class.mjs +0 -1698
  553. package/esm2020/src/app/core/table/entities-async-table-datasource.class.mjs +0 -384
  554. package/esm2020/src/app/core/table/entities-table-datasource.class.mjs +0 -399
  555. package/esm2020/src/app/core/table/memory-table.class.mjs +0 -53
  556. package/esm2020/src/app/core/table/table-select-columns.component.mjs +0 -43
  557. package/esm2020/src/app/core/table/table.class.mjs +0 -1733
  558. package/esm2020/src/app/core/table/table.model.mjs +0 -12
  559. package/esm2020/src/app/core/table/table.utils.mjs +0 -33
  560. package/esm2020/src/app/core/table/testing/table-validator.service.mjs +0 -27
  561. package/esm2020/src/app/core/table/testing/table.testing.mjs +0 -281
  562. package/esm2020/src/app/core/table/testing/table.testing.module.mjs +0 -38
  563. package/esm2020/src/app/shared/alerts.mjs +0 -239
  564. package/esm2020/src/app/shared/audio/audio.mjs +0 -248
  565. package/esm2020/src/app/shared/audio/audio.testing.mjs +0 -31
  566. package/esm2020/src/app/shared/capacitor/keyboard.mjs +0 -40
  567. package/esm2020/src/app/shared/capacitor/plugins.mjs +0 -9
  568. package/esm2020/src/app/shared/dates.mjs +0 -149
  569. package/esm2020/src/app/shared/debug/debug.component.mjs +0 -39
  570. package/esm2020/src/app/shared/directives/autofocus.directive.mjs +0 -93
  571. package/esm2020/src/app/shared/directives/autotitle.directive.mjs +0 -30
  572. package/esm2020/src/app/shared/directives/drag-and-drop.directive.mjs +0 -53
  573. package/esm2020/src/app/shared/directives/ng-var.directive.mjs +0 -31
  574. package/esm2020/src/app/shared/directives/resizable/resizable.component.mjs +0 -59
  575. package/esm2020/src/app/shared/directives/resizable/resizable.directive.mjs +0 -40
  576. package/esm2020/src/app/shared/events.mjs +0 -65
  577. package/esm2020/src/app/shared/file/csv.utils.mjs +0 -72
  578. package/esm2020/src/app/shared/file/file.service.mjs +0 -117
  579. package/esm2020/src/app/shared/file/file.utils.mjs +0 -113
  580. package/esm2020/src/app/shared/file/images.utils.mjs +0 -161
  581. package/esm2020/src/app/shared/file/uri.utils.mjs +0 -24
  582. package/esm2020/src/app/shared/form/field.component.mjs +0 -332
  583. package/esm2020/src/app/shared/form/loading-spinner.mjs +0 -36
  584. package/esm2020/src/app/shared/forms.mjs +0 -414
  585. package/esm2020/src/app/shared/functions.mjs +0 -482
  586. package/esm2020/src/app/shared/geolocation/geolocation.utils.mjs +0 -80
  587. package/esm2020/src/app/shared/gesture/gesture-config.mjs +0 -49
  588. package/esm2020/src/app/shared/graph/graph-colors.mjs +0 -212
  589. package/esm2020/src/app/shared/guard/component-dirty.guard.mjs +0 -57
  590. package/esm2020/src/app/shared/help/help.modal.mjs +0 -53
  591. package/esm2020/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +0 -23
  592. package/esm2020/src/app/shared/hotkeys/hotkeys.service.mjs +0 -84
  593. package/esm2020/src/app/shared/http/http.utils.mjs +0 -56
  594. package/esm2020/src/app/shared/image/gallery/image-gallery.component.mjs +0 -368
  595. package/esm2020/src/app/shared/image/gallery/testing/gallegry.model.testing.mjs +0 -27
  596. package/esm2020/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +0 -90
  597. package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.mjs +0 -39
  598. package/esm2020/src/app/shared/image/image.service.mjs +0 -98
  599. package/esm2020/src/app/shared/inputs.mjs +0 -231
  600. package/esm2020/src/app/shared/interceptors/progess.interceptor.mjs +0 -27
  601. package/esm2020/src/app/shared/logging/logger.model.mjs +0 -47
  602. package/esm2020/src/app/shared/logging/logging-service.class.mjs +0 -121
  603. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.config.mjs +0 -47
  604. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.mjs +0 -920
  605. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +0 -78
  606. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.utils.mjs +0 -17
  607. package/esm2020/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +0 -209
  608. package/esm2020/src/app/shared/material/badge/badge.directive.mjs +0 -199
  609. package/esm2020/src/app/shared/material/badge/badge.test.mjs +0 -41
  610. package/esm2020/src/app/shared/material/boolean/boolean.module.mjs +0 -68
  611. package/esm2020/src/app/shared/material/boolean/material.boolean.mjs +0 -253
  612. package/esm2020/src/app/shared/material/chips/chips.module.mjs +0 -76
  613. package/esm2020/src/app/shared/material/chips/material.chips.mjs +0 -696
  614. package/esm2020/src/app/shared/material/chips/testing/chips.test.mjs +0 -143
  615. package/esm2020/src/app/shared/material/datetime/datetime.module.mjs +0 -91
  616. package/esm2020/src/app/shared/material/datetime/material.date.mjs +0 -376
  617. package/esm2020/src/app/shared/material/datetime/material.dateshort.mjs +0 -385
  618. package/esm2020/src/app/shared/material/datetime/material.datetime.mjs +0 -499
  619. package/esm2020/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +0 -109
  620. package/esm2020/src/app/shared/material/datetime/testing/mat-date.test.mjs +0 -111
  621. package/esm2020/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +0 -103
  622. package/esm2020/src/app/shared/material/duration/duration.module.mjs +0 -67
  623. package/esm2020/src/app/shared/material/duration/duration.utils.mjs +0 -36
  624. package/esm2020/src/app/shared/material/duration/material.duration.mjs +0 -257
  625. package/esm2020/src/app/shared/material/latlong/latlong.utils.mjs +0 -266
  626. package/esm2020/src/app/shared/material/latlong/material.latlong.mjs +0 -382
  627. package/esm2020/src/app/shared/material/latlong/material.latlong.module.mjs +0 -67
  628. package/esm2020/src/app/shared/material/latlong/testing/latlong.test.mjs +0 -102
  629. package/esm2020/src/app/shared/material/material.module.mjs +0 -229
  630. package/esm2020/src/app/shared/material/material.testing.module.mjs +0 -179
  631. package/esm2020/src/app/shared/material/numpad/numpad.append-to-input.directive.mjs +0 -98
  632. package/esm2020/src/app/shared/material/numpad/numpad.container.mjs +0 -190
  633. package/esm2020/src/app/shared/material/numpad/numpad.content.mjs +0 -17
  634. package/esm2020/src/app/shared/material/numpad/numpad.directive.mjs +0 -162
  635. package/esm2020/src/app/shared/material/numpad/numpad.dom-service.mjs +0 -37
  636. package/esm2020/src/app/shared/material/numpad/numpad.model.mjs +0 -15
  637. package/esm2020/src/app/shared/material/numpad/testing/numpad.test.mjs +0 -46
  638. package/esm2020/src/app/shared/material/paginator/material.paginator-i18n.mjs +0 -46
  639. package/esm2020/src/app/shared/material/stepper/material.stepper-i18n.mjs +0 -22
  640. package/esm2020/src/app/shared/material/swipe/material.swipe.mjs +0 -344
  641. package/esm2020/src/app/shared/material/swipe/swipe.module.mjs +0 -52
  642. package/esm2020/src/app/shared/material/swipe/testing/swipe.test.mjs +0 -64
  643. package/esm2020/src/app/shared/material/text/testing/text-form.testing.mjs +0 -29
  644. package/esm2020/src/app/shared/material/text/text-form.component.mjs +0 -89
  645. package/esm2020/src/app/shared/named-filter/named-filter-selector.component.mjs +0 -224
  646. package/esm2020/src/app/shared/named-filter/named-filter.model.mjs +0 -45
  647. package/esm2020/src/app/shared/named-filter/named-filter.service.mjs +0 -63
  648. package/esm2020/src/app/shared/observables.mjs +0 -104
  649. package/esm2020/src/app/shared/pipes/arrays.pipe.mjs +0 -141
  650. package/esm2020/src/app/shared/pipes/colors.pipe.mjs +0 -25
  651. package/esm2020/src/app/shared/pipes/date-diff-duration.pipe.mjs +0 -48
  652. package/esm2020/src/app/shared/pipes/date-format.pipe.mjs +0 -66
  653. package/esm2020/src/app/shared/pipes/date-from-now.pipe.mjs +0 -27
  654. package/esm2020/src/app/shared/pipes/duration.pipe.mjs +0 -34
  655. package/esm2020/src/app/shared/pipes/file-size.pipe.mjs +0 -62
  656. package/esm2020/src/app/shared/pipes/form.pipes.mjs +0 -187
  657. package/esm2020/src/app/shared/pipes/highlight.pipe.mjs +0 -48
  658. package/esm2020/src/app/shared/pipes/latlong-format.pipe.mjs +0 -46
  659. package/esm2020/src/app/shared/pipes/math.pipes.mjs +0 -59
  660. package/esm2020/src/app/shared/pipes/ng-init.pipe.mjs +0 -21
  661. package/esm2020/src/app/shared/pipes/number-format.pipe.mjs +0 -30
  662. package/esm2020/src/app/shared/pipes/pipes.module.mjs +0 -239
  663. package/esm2020/src/app/shared/pipes/property.pipes.mjs +0 -93
  664. package/esm2020/src/app/shared/pipes/string.pipes.mjs +0 -121
  665. package/esm2020/src/app/shared/pipes/translate-context.pipe.mjs +0 -43
  666. package/esm2020/src/app/shared/pipes/types.pipes.mjs +0 -45
  667. package/esm2020/src/app/shared/platforms.mjs +0 -43
  668. package/esm2020/src/app/shared/services/job.utils.mjs +0 -92
  669. package/esm2020/src/app/shared/services/memory-entity-service.class.mjs +0 -339
  670. package/esm2020/src/app/shared/services/progress-bar.service.mjs +0 -33
  671. package/esm2020/src/app/shared/services/startable-observable-service.class.mjs +0 -118
  672. package/esm2020/src/app/shared/services/startable-service.class.mjs +0 -110
  673. package/esm2020/src/app/shared/services/translate-context.service.mjs +0 -103
  674. package/esm2020/src/app/shared/services.mjs +0 -62
  675. package/esm2020/src/app/shared/shared-routing.module.mjs +0 -71
  676. package/esm2020/src/app/shared/shared.module.mjs +0 -229
  677. package/esm2020/src/app/shared/storage/storage-explorer.component.mjs +0 -268
  678. package/esm2020/src/app/shared/storage/storage-explorer.module.mjs +0 -47
  679. package/esm2020/src/app/shared/storage/storage.service.mjs +0 -132
  680. package/esm2020/src/app/shared/testing/observable.test.mjs +0 -95
  681. package/esm2020/src/app/shared/testing/tests.page.mjs +0 -33
  682. package/esm2020/src/app/shared/toast/toast.testing.mjs +0 -51
  683. package/esm2020/src/app/shared/toast/toasts.mjs +0 -144
  684. package/esm2020/src/app/shared/toolbar/modal-toolbar.mjs +0 -58
  685. package/esm2020/src/app/shared/toolbar/toolbar.mjs +0 -251
  686. package/esm2020/src/app/shared/toolbar/toolbar.module.mjs +0 -53
  687. package/esm2020/src/app/shared/upload-file/testing/upload-file.testing.mjs +0 -58
  688. package/esm2020/src/app/shared/upload-file/upload-file-popover.component.mjs +0 -97
  689. package/esm2020/src/app/shared/upload-file/upload-file.component.mjs +0 -204
  690. package/esm2020/src/app/shared/upload-file/upload-file.model.mjs +0 -20
  691. package/esm2020/src/app/shared/validator/form-error-adapter.class.mjs +0 -104
  692. package/esm2020/src/app/shared/validator/validators.mjs +0 -580
  693. package/esm2020/src/app/shared/version/versions.mjs +0 -81
  694. package/esm2020/src/app/social/job/job.module.mjs +0 -42
  695. package/esm2020/src/app/social/job/progression/job-progression.component.mjs +0 -20
  696. package/esm2020/src/app/social/job/progression/job-progression.icon.mjs +0 -216
  697. package/esm2020/src/app/social/job/progression/job-progression.list.mjs +0 -43
  698. package/esm2020/src/app/social/job/progression/job-progression.model.mjs +0 -23
  699. package/esm2020/src/app/social/job/progression/job-progression.service.mjs +0 -71
  700. package/esm2020/src/app/social/job/testing/job-progression.testing.mjs +0 -52
  701. package/esm2020/src/app/social/job/testing/job-progression.testing.service.mjs +0 -55
  702. package/esm2020/src/app/social/message/message.form.mjs +0 -136
  703. package/esm2020/src/app/social/message/message.modal.mjs +0 -99
  704. package/esm2020/src/app/social/message/message.model.mjs +0 -67
  705. package/esm2020/src/app/social/message/message.service.mjs +0 -105
  706. package/esm2020/src/app/social/user-event/notification/user-event-notification.icon.mjs +0 -114
  707. package/esm2020/src/app/social/user-event/notification/user-event-notification.list.mjs +0 -246
  708. package/esm2020/src/app/social/user-event/testing/user-event.testing.mjs +0 -227
  709. package/esm2020/src/app/social/user-event/testing/user-event.testing.model.mjs +0 -112
  710. package/esm2020/src/app/social/user-event/testing/user-event.testing.service.mjs +0 -111
  711. package/esm2020/src/app/social/user-event/user-event.module.mjs +0 -39
  712. package/esm2020/src/app/social/user-event/user-event.service.mjs +0 -501
  713. package/esm2020/src/environments/environment.class.mjs +0 -5
  714. package/esm2020/src/environments/environment.loader.mjs +0 -79
  715. package/esm2020/src/environments/environment.mjs +0 -97
  716. package/fesm2015/sumaris-net.ngx-components.mjs +0 -41105
  717. package/fesm2015/sumaris-net.ngx-components.mjs.map +0 -1
  718. package/fesm2020/sumaris-net.ngx-components.mjs.map +0 -1
  719. package/resources/README.md +0 -7
  720. /package/{esm2020 → esm2022}/src/app/core/services/config/core.config.mjs +0 -0
  721. /package/{esm2020 → esm2022}/src/app/core/services/model/history.model.mjs +0 -0
  722. /package/{esm2020 → esm2022}/src/app/core/services/model/model.enum.mjs +0 -0
  723. /package/{esm2020 → esm2022}/src/app/core/services/model/settings.model.mjs +0 -0
  724. /package/{esm2020 → esm2022}/src/app/shared/constants.mjs +0 -0
  725. /package/{esm2020 → esm2022}/src/app/shared/debug/debug-service.class.mjs +0 -0
  726. /package/{esm2020 → esm2022}/src/app/shared/focusable.mjs +0 -0
  727. /package/{esm2020 → esm2022}/src/app/shared/gesture/hammer.utils.mjs +0 -0
  728. /package/{esm2020 → esm2022}/src/app/shared/image/image.model.mjs +0 -0
  729. /package/{esm2020 → esm2022}/src/app/shared/logging/log-level.model.mjs +0 -0
  730. /package/{esm2020 → esm2022}/src/app/shared/logging/logging-service.config.mjs +0 -0
  731. /package/{esm2020 → esm2022}/src/app/shared/material/material.animations.mjs +0 -0
  732. /package/{esm2020 → esm2022}/src/app/shared/modules.mjs +0 -0
  733. /package/{esm2020 → esm2022}/src/app/shared/services/entity-service.class.mjs +0 -0
  734. /package/{esm2020 → esm2022}/src/app/shared/services/validator-service.class.mjs +0 -0
  735. /package/{esm2020 → esm2022}/src/app/shared/types.mjs +0 -0
  736. /package/{esm2020 → esm2022}/src/app/social/social.errors.mjs +0 -0
  737. /package/{esm2020 → esm2022}/src/app/social/user-event/user-event.model.mjs +0 -0
  738. /package/{esm2020 → esm2022}/sumaris-net.ngx-components.mjs +0 -0
@@ -1,118 +0,0 @@
1
- import { __decorate, __param } from "tslib";
2
- import { Optional } from '@angular/core';
3
- import { BehaviorSubject, firstValueFrom, Subject, Subscription } from 'rxjs';
4
- import { filter, takeUntil } from 'rxjs/operators';
5
- /**
6
- * Same as StartableService, but with a dataSubject instead of a simple 'data' property
7
- */
8
- let StartableObservableService = class StartableObservableService {
9
- constructor(prerequisiteService) {
10
- this.dataSubject = new BehaviorSubject(null);
11
- this.startSubject = new Subject();
12
- this.stopSubject = new Subject();
13
- this._debug = false;
14
- this._startByReadyFunction = true; // should start when calling ready() ?
15
- this._started = false;
16
- this._startPromise = null;
17
- this._startPrerequisite = null;
18
- this._subscription = null;
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
- };
114
- StartableObservableService = __decorate([
115
- __param(0, Optional())
116
- ], StartableObservableService);
117
- export { StartableObservableService };
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRhYmxlLW9ic2VydmFibGUtc2VydmljZS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3NlcnZpY2VzL3N0YXJ0YWJsZS1vYnNlcnZhYmxlLXNlcnZpY2UuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5RSxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR25EOztHQUVHO0FBQ0ksSUFBZSwwQkFBMEIsR0FBekMsTUFBZSwwQkFBMEI7SUFjOUMsWUFDYyxtQkFBbUQ7UUFieEQsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBSSxJQUFJLENBQUMsQ0FBQztRQUMzQyxpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFLLENBQUM7UUFDaEMsZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRWpDLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZiwwQkFBcUIsR0FBRyxJQUFJLENBQUMsQ0FBQyxzQ0FBc0M7UUFFdEUsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixrQkFBYSxHQUFlLElBQUksQ0FBQztRQUNqQyx1QkFBa0IsR0FBdUIsSUFBSSxDQUFDO1FBQzlDLGtCQUFhLEdBQWlCLElBQUksQ0FBQztRQUt6QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsbUJBQW1CO1lBQzNDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUU7WUFDbkMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQVE7UUFDWixJ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LENBQUE7QUEvSHFCLDBCQUEwQjtJQWUzQyxXQUFBLFFBQVEsRUFBRSxDQUFBO0dBZk8sMEJBQTBCLENBK0gvQztTQS9IcUIsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZmlyc3RWYWx1ZUZyb20sIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBJU3RhcnRhYmxlU2VydmljZSB9IGZyb20gJy4vc3RhcnRhYmxlLXNlcnZpY2UuY2xhc3MnO1xuXG4vKipcbiAqIFNhbWUgYXMgU3RhcnRhYmxlU2VydmljZSwgYnV0IHdpdGggYSBkYXRhU3ViamVjdCBpbnN0ZWFkIG9mIGEgc2ltcGxlICdkYXRhJyBwcm9wZXJ0eVxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU3RhcnRhYmxlT2JzZXJ2YWJsZVNlcnZpY2U8VCA9IGFueSwgTyA9IGFueT4gaW1wbGVtZW50cyBJU3RhcnRhYmxlU2VydmljZTxUPiB7XG5cbiAgcmVhZG9ubHkgZGF0YVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFQ+KG51bGwpO1xuICByZWFkb25seSBzdGFydFN1YmplY3QgPSBuZXcgU3ViamVjdDxUPigpO1xuICByZWFkb25seSBzdG9wU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHJvdGVjdGVkIF9kZWJ1ZyA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgX3N0YXJ0QnlSZWFkeUZ1bmN0aW9uID0gdHJ1ZTsgLy8gc2hvdWxkIHN0YXJ0IHdoZW4gY2FsbGluZyByZWFkeSgpID9cblxuICBwcml2YXRlIF9zdGFydGVkID0gZmFsc2U7XG4gIHByaXZhdGUgX3N0YXJ0UHJvbWlzZTogUHJvbWlzZTxUPiA9IG51bGw7XG4gIHByaXZhdGUgX3N0YXJ0UHJlcmVxdWlzaXRlOiAoKSA9PiBQcm9taXNlPGFueT4gPSBudWxsO1xuICBwcml2YXRlIF9zdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IG51bGw7XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIHByZXJlcXVpc2l0ZVNlcnZpY2U/OiB7IHJlYWR5OiAoKSA9PiBQcm9taXNlPGFueT4gfVxuICApIHtcbiAgICB0aGlzLl9zdGFydFByZXJlcXVpc2l0ZSA9IHByZXJlcXVpc2l0ZVNlcnZpY2VcbiAgICAgID8gKCkgPT4gcHJlcmVxdWlzaXRlU2VydmljZS5yZWFkeSgpXG4gICAgICA6ICgpID0+IFByb21pc2UucmVzb2x2ZSgpO1xuICB9XG5cbiAgc3RhcnQob3B0cz86IE8pOiBQcm9taXNlPFQ+IHtcbiAgICBpZiAodGhpcy5fc3RhcnRQcm9taXNlKSByZXR1cm4gdGhpcy5fc3RhcnRQcm9taXNlO1xuICAgIGlmICh0aGlzLl9zdGFydGVkKSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuZGF0YVN1YmplY3QudmFsdWUpO1xuXG4gICAgdGhpcy5fc3RhcnRQcm9taXNlID0gdGhpcy5fc3RhcnRQcmVyZXF1aXNpdGUoKVxuICAgICAgLnRoZW4oKCkgPT4gdGhpcy5uZ09uU3RhcnQob3B0cykpXG4gICAgICAudGhlbihkYXRhID0+IHtcblxuICAgICAgICB0aGlzLl9zdGFydGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5fc3RhcnRQcm9taXNlID0gdW5kZWZpbmVkO1xuXG4gICAgICAgIC8vIFNob3VsZCBiZSBkb25lIEFGVEVSICd0aGlzLl9zdGFydGVkID0gdHJ1ZScsIGJlY2F1c2Ugb2YgdGhlICdmaWx0ZXInIG9wZXJhdG9yLCBpbnNpZGUgcmVhZHkoKSBmdW5jdGlvblxuICAgICAgICB0aGlzLmRhdGFTdWJqZWN0Lm5leHQoZGF0YSk7XG4gICAgICAgIHRoaXMuc3RhcnRTdWJqZWN0Lm5leHQoZGF0YSk7XG5cbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICAgIGlmICghdGhpcy5zdG9wcGVkKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIHN0YXJ0IGEgc2VydmljZTogJyArIChlcnIgJiYgZXJyLm1lc3NhZ2UgfHwgZXJyKSwgZXJyKTtcbiAgICAgICAgICB0aGlzLl9zdGFydGVkID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5fc3RhcnRQcm9taXNlID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH0pO1xuICAgIHJldHVybiB0aGlzLl9zdGFydFByb21pc2U7XG4gIH1cblxuICByZWFkeSgpOiBQcm9taXNlPFQ+IHtcbiAgICBpZiAodGhpcy5fc3RhcnRlZCkgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLmRhdGFTdWJqZWN0LnZhbHVlKTtcbiAgICBpZiAodGhpcy5fc3RhcnRQcm9taXNlKSByZXR1cm4gdGhpcy5fc3RhcnRQcm9taXNlO1xuICAgIGlmICh0aGlzLl9zdGFydEJ5UmVhZHlGdW5jdGlvbikgcmV0dXJuIHRoaXMuc3RhcnQoKTtcblxuICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLmRhdGFTdWJqZWN0XG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuc3RvcFN1YmplY3QpLFxuICAgICAgICAvLyBXYWl0IHN0YXJ0KCkgdG8gYmUgY2FsbGVkLCB0byBleGNsdWRlIHRoZSBpbml0aWFsICdudWxsJyB2YWx1ZVxuICAgICAgICBmaWx0ZXIoXyA9PiB0aGlzLl9zdGFydGVkKVxuICAgICAgKSk7XG4gIH1cblxuICBhc3luYyBzdG9wKCkge1xuXG4gICAgdHJ5IHtcbiAgICAgIHRoaXMudW5zdWJzY3JpYmUoKTtcbiAgICAgIGF3YWl0IHRoaXMubmdPblN0b3AoKTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIHN0b3AgYSBzZXJ2aWNlOiAnICsgKGVyciAmJiBlcnIubWVzc2FnZSB8fCBlcnIpLCBlcnIpO1xuICAgIH1cbiAgICBmaW5hbGx5IHtcbiAgICAgIHRoaXMuX3N0YXJ0ZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuX3N0YXJ0UHJvbWlzZSA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuc3RvcFN1YmplY3QubmV4dCgpOyAvLyBTdG9wIGFsbCBydW5uaW5nIG9ic2VydmFibGVzXG4gICAgICB0aGlzLmRhdGFTdWJqZWN0Lm5leHQobnVsbCk7IC8vIFJlc2V0IGRhdGFcbiAgICB9XG4gIH1cblxuICBhc3luYyByZXN0YXJ0KG9wdHM/OiBPKTogUHJvbWlzZTxUPiB7XG4gICAgaWYgKHRoaXMuX3N0YXJ0UHJvbWlzZSkgYXdhaXQgdGhpcy5fc3RhcnRQcm9taXNlOyAvLyBXYWl0IGVuZCBvZiBwcmV2aW91cyBsb2FkaW5nXG4gICAgaWYgKHRoaXMuX3N0YXJ0ZWQpIGF3YWl0IHRoaXMuc3RvcCgpOyAvLyBUaGVuIHN0b3AgaWYgc3RhcnRlZFxuICAgIHJldHVybiB0aGlzLnN0YXJ0KG9wdHMpOyAvLyBUaGVuIHN0YXJ0IGFnYWluXG4gIH1cblxuICBnZXQgc3RhcnRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhcnRlZDtcbiAgfVxuXG4gIGdldCBzdGFydGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLl9zdGFydFByb21pc2U7XG4gIH1cblxuICBnZXQgc3RvcHBlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuX3N0YXJ0ZWQgJiYgIXRoaXMuX3N0YXJ0UHJvbWlzZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgZGF0YSgpOiBUIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhU3ViamVjdC52YWx1ZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXQgZGF0YSh2YWx1ZTogVCkge1xuICAgIGlmICh0aGlzLmRhdGFTdWJqZWN0LnZhbHVlICE9PSB2YWx1ZSkge1xuICAgICAgdGhpcy5kYXRhU3ViamVjdC5uZXh0KHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVnaXN0ZXJTdWJzY3JpcHRpb24oc3ViOiBTdWJzY3JpcHRpb24pIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24gPSB0aGlzLl9zdWJzY3JpcHRpb24gfHwgbmV3IFN1YnNjcmlwdGlvbigpO1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoc3ViKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB1bnJlZ2lzdGVyU3Vic2NyaXB0aW9uKHN1YjogU3Vic2NyaXB0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uPy5yZW1vdmUoc3ViKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB1bnN1YnNjcmliZSgpIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBuZ09uU3RvcCgpOiBQcm9taXNlPHZvaWQ+IHwgdm9pZCB7XG4gICAgLy8gQ2FuIGJlIG92ZXJ3cml0dGVuIGJ5IHN1YmNsYXNzZXNcbiAgfVxuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBuZ09uU3RhcnQob3B0cz86IE8pOiBQcm9taXNlPFQ+O1xufVxuIl19
@@ -1,110 +0,0 @@
1
- import { __decorate, __param } from "tslib";
2
- import { Optional } from '@angular/core';
3
- import { Subject, Subscription } from 'rxjs';
4
- import { takeUntil } from 'rxjs/operators';
5
- export function isStartableService(data) {
6
- return (typeof data?.['start'] === 'function')
7
- && (typeof data?.['stop'] === 'function')
8
- && (typeof data?.['ready'] === 'function');
9
- }
10
- let StartableService = class StartableService {
11
- constructor(prerequisiteService) {
12
- this.startSubject = new Subject();
13
- this.stopSubject = new Subject();
14
- this._debug = false;
15
- this._startByReadyFunction = true; // should start when calling ready() ?
16
- this._data = null;
17
- this._started = false;
18
- this._startPromise = null;
19
- this._startPrerequisite = null;
20
- this._subscription = null;
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 start, if running
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
- };
106
- StartableService = __decorate([
107
- __param(0, Optional())
108
- ], StartableService);
109
- export { StartableService };
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRhYmxlLXNlcnZpY2UuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9zZXJ2aWNlcy9zdGFydGFibGUtc2VydmljZS5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFTM0MsTUFBTSxVQUFVLGtCQUFrQixDQUFDLElBQVM7SUFDMUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssVUFBVSxDQUFDO1dBQ3pDLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxVQUFVLENBQUM7V0FDdEMsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFVBQVUsQ0FBQyxDQUN6QztBQUNMLENBQUM7QUFFTSxJQUFlLGdCQUFnQixHQUEvQixNQUFlLGdCQUFnQjtJQWNwQyxZQUNjLG1CQUFtRDtRQWJ4RCxpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFLLENBQUM7UUFDaEMsZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRWpDLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZiwwQkFBcUIsR0FBRyxJQUFJLENBQUMsQ0FBQyxzQ0FBc0M7UUFDcEUsVUFBSyxHQUFNLElBQUksQ0FBQztRQUVsQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGtCQUFhLEdBQWUsSUFBSSxDQUFDO1FBQ2pDLHVCQUFrQixHQUF1QixJQUFJLENBQUM7UUFDOUMsa0JBQWEsR0FBaUIsSUFBSSxDQUFDO1FBS3pDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxtQkFBbUI7WUFDM0MsQ0FB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QUksRUFBRSxDQUFDLENBQUMsdUJBQXVCO1FBQzdELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLG1CQUFtQjtJQUM5QyxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDL0MsQ0FBQztJQUVTLG9CQUFvQixDQUFDLEdBQWlCO1FBQzlDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzlELElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFUyxzQkFBc0IsQ0FBQyxHQUFpQjtRQUNoRCxJQUFJLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRVMsV0FBVztRQUNuQixJQUFJLENBQUMsYUFBYSxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFFUyxRQUFRO1FBQ2hCLG1DQUFtQztJQUNyQyxDQUFDO0NBR0YsQ0FBQTtBQWhIcUIsZ0JBQWdCO0lBZWpDLFdBQUEsUUFBUSxFQUFFLENBQUE7R0FmTyxnQkFBZ0IsQ0FnSHJDO1NBaEhxQixnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVN0YXJ0YWJsZVNlcnZpY2U8VCA9IGFueT4ge1xuICBzdGFydGVkOiBib29sZWFuO1xuICBzdGFydCgpOiBQcm9taXNlPFQ+O1xuICBzdG9wKCk6IFByb21pc2U8dm9pZD47XG4gIHJlYWR5KCk6IFByb21pc2U8VD47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1N0YXJ0YWJsZVNlcnZpY2UoZGF0YTogYW55KTogZGF0YSBpcyBJU3RhcnRhYmxlU2VydmljZSB7XG4gIHJldHVybiAodHlwZW9mIGRhdGE/Llsnc3RhcnQnXSA9PT0gJ2Z1bmN0aW9uJylcbiAgICAmJiAodHlwZW9mIGRhdGE/Llsnc3RvcCddID09PSAnZnVuY3Rpb24nKVxuICAgICYmICh0eXBlb2YgZGF0YT8uWydyZWFkeSddID09PSAnZnVuY3Rpb24nKVxuICAgIDtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFN0YXJ0YWJsZVNlcnZpY2U8VCA9IGFueSwgTyA9IGFueT4gaW1wbGVtZW50cyBJU3RhcnRhYmxlU2VydmljZTxUPiB7XG5cbiAgcmVhZG9ubHkgc3RhcnRTdWJqZWN0ID0gbmV3IFN1YmplY3Q8VD4oKTtcbiAgcmVhZG9ubHkgc3RvcFN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByb3RlY3RlZCBfZGVidWcgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIF9zdGFydEJ5UmVhZHlGdW5jdGlvbiA9IHRydWU7IC8vIHNob3VsZCBzdGFydCB3aGVuIGNhbGxpbmcgcmVhZHkoKSA/XG4gIHByb3RlY3RlZCBfZGF0YTogVCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBfc3RhcnRlZCA9IGZhbHNlO1xuICBwcml2YXRlIF9zdGFydFByb21pc2U6IFByb21pc2U8VD4gPSBudWxsO1xuICBwcml2YXRlIF9zdGFydFByZXJlcXVpc2l0ZTogKCkgPT4gUHJvbWlzZTxhbnk+ID0gbnVsbDtcbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gPSBudWxsO1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBwcmVyZXF1aXNpdGVTZXJ2aWNlPzogeyByZWFkeTogKCkgPT4gUHJvbWlzZTxhbnk+IH1cbiAgKSB7XG4gICAgdGhpcy5fc3RhcnRQcmVyZXF1aXNpdGUgPSBwcmVyZXF1aXNpdGVTZXJ2aWNlXG4gICAgICA/ICgpID0+IHByZXJlcXVpc2l0ZVNlcnZpY2UucmVhZHkoKVxuICAgICAgOiAoKSA9PiBQcm9taXNlLnJlc29sdmUoKTtcbiAgfVxuXG4gIHN0YXJ0KG9wdHM/OiBPKTogUHJvbWlzZTxUPiB7XG4gICAgaWYgKHRoaXMuX3N0YXJ0UHJvbWlzZSkgcmV0dXJuIHRoaXMuX3N0YXJ0UHJvbWlzZTtcbiAgICBpZiAodGhpcy5fc3RhcnRlZCkgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLl9kYXRhKTtcblxuICAgIHRoaXMuX3N0YXJ0UHJvbWlzZSA9IHRoaXMuX3N0YXJ0UHJlcmVxdWlzaXRlKClcbiAgICAgIC50aGVuKCgpID0+IHRoaXMubmdPblN0YXJ0KG9wdHMpKVxuICAgICAgLnRoZW4oZGF0YSA9PiB7XG4gICAgICAgIHRoaXMuX2RhdGEgPSBkYXRhO1xuXG4gICAgICAgIHRoaXMuX3N0YXJ0ZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLl9zdGFydFByb21pc2UgPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgdGhpcy5zdGFydFN1YmplY3QubmV4dChkYXRhKTtcblxuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLnN0b3BwZWQpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gc3RhcnQgYSBzZXJ2aWNlOiAnICsgKGVyciAmJiBlcnIubWVzc2FnZSB8fCBlcnIpLCBlcnIpO1xuICAgICAgICAgIHRoaXMuX3N0YXJ0UHJvbWlzZSA9IG51bGw7XG4gICAgICAgICAgdGhpcy5fc3RhcnRlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfSk7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXJ0UHJvbWlzZTtcbiAgfVxuXG4gIHJlYWR5KCk6IFByb21pc2U8VD4ge1xuICAgIGlmICh0aGlzLl9zdGFydGVkKSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuX2RhdGEpO1xuICAgIGlmICh0aGlzLl9zdGFydFByb21pc2UpIHJldHVybiB0aGlzLl9zdGFydFByb21pc2U7XG4gICAgaWYgKHRoaXMuX3N0YXJ0QnlSZWFkeUZ1bmN0aW9uKSByZXR1cm4gdGhpcy5zdGFydCgpO1xuXG4gICAgcmV0dXJuIHRoaXMuc3RhcnRTdWJqZWN0XG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5zdG9wU3ViamVjdCkpXG4gICAgICAudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBzdG9wKCkge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLnVuc3Vic2NyaWJlKCk7XG4gICAgICBhd2FpdCB0aGlzLm5nT25TdG9wKCk7XG4gICAgfVxuICAgIGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBzdG9wIGEgc2VydmljZTogJyArIChlcnIgJiYgZXJyLm1lc3NhZ2UgfHwgZXJyKSwgZXJyKTtcbiAgICB9XG4gICAgZmluYWxseSB7XG4gICAgICB0aGlzLl9kYXRhID0gbnVsbDtcbiAgICAgIHRoaXMuX3N0YXJ0ZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuX3N0YXJ0UHJvbWlzZSA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuc3RvcFN1YmplY3QubmV4dCgpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHJlc3RhcnQob3B0cz86IE8pOiBQcm9taXNlPFQ+IHtcbiAgICBpZiAodGhpcy5fc3RhcnRQcm9taXNlKSBhd2FpdCB0aGlzLl9zdGFydFByb21pc2U7IC8vIFdhaXQgZW5kIG9mIHByZXZpb3VzIHN0YXJ0LCBpZiBydW5uaW5nXG4gICAgaWYgKHRoaXMuX3N0YXJ0ZWQpIGF3YWl0IHRoaXMuc3RvcCgpOyAvLyBUaGVuIHN0b3AgaWYgc3RhcnRlZFxuICAgIHJldHVybiB0aGlzLnN0YXJ0KG9wdHMpOyAvLyBUaGVuIHN0YXJ0IGFnYWluXG4gIH1cblxuICBnZXQgc3RhcnRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhcnRlZDtcbiAgfVxuXG4gIGdldCBzdGFydGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLl9zdGFydFByb21pc2U7XG4gIH1cblxuICBnZXQgc3RvcHBlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuX3N0YXJ0ZWQgJiYgIXRoaXMuX3N0YXJ0UHJvbWlzZTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWdpc3RlclN1YnNjcmlwdGlvbihzdWI6IFN1YnNjcmlwdGlvbikge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbiA9IHRoaXMuX3N1YnNjcmlwdGlvbiB8fCBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uLmFkZChzdWIpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHVucmVnaXN0ZXJTdWJzY3JpcHRpb24oc3ViOiBTdWJzY3JpcHRpb24pOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24/LnJlbW92ZShzdWIpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHVuc3Vic2NyaWJlKCkge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24gPSBudWxsO1xuICB9XG5cbiAgcHJvdGVjdGVkIG5nT25TdG9wKCk6IFByb21pc2U8dm9pZD4gfCB2b2lkIHtcbiAgICAvLyBDYW4gYmUgb3ZlcndyaXR0ZW4gYnkgc3ViY2xhc3Nlc1xuICB9XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IG5nT25TdGFydChvcHRzPzogTyk6IFByb21pc2U8VD47XG59XG4iXX0=
@@ -1,103 +0,0 @@
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
- constructor(translate) {
9
- this.translate = translate;
10
- }
11
- get(key, context, interpolateParams) {
12
- // No context: do a normal translate
13
- if (!key || !isNil(context))
14
- return this.translate.get(key, interpolateParams);
15
- if (Array.isArray(key)) {
16
- if (!key.length)
17
- return of();
18
- // Observe the first key, then add other
19
- return this.get(key[0])
20
- .pipe(map(translation => key.slice(1) // Skip 1, because we already have it
21
- .reduce((map, k) => {
22
- map[k] = this.instant(k, context);
23
- return map;
24
- },
25
- // Init with the first value
26
- {
27
- [key[0]]: translation
28
- })));
29
- }
30
- // Compute a contextual i18n key, using the context as suffix
31
- const contextualKeys = this.contextualKeys(key, context);
32
- // Return the contextual translation, or default of not exists
33
- return this.translate.get(contextualKeys, interpolateParams)
34
- .pipe(map(translations => this.findFirstValid(contextualKeys, translations)));
35
- }
36
- instant(key, context, interpolateParams) {
37
- // No context: do a normal translate
38
- if (!key || isNilOrBlank(context))
39
- return this.translate.instant(key, interpolateParams);
40
- if (Array.isArray(key)) {
41
- return key.reduce((map, k) => {
42
- map[k] = this.instant(k, context);
43
- return map;
44
- }, {});
45
- }
46
- // Compute a contextual i18n key, using the context as suffix
47
- const contextualKeys = this.contextualKeys(key, context);
48
- const translations = this.translate.instant(contextualKeys, interpolateParams);
49
- return this.findFirstValid(contextualKeys, translations);
50
- }
51
- /**
52
- * Compute contextual i18n keys, using the context as suffix.<br>
53
- * Suffix can be simple name (like 'aaa' - will return ['<key>.aaa']) or complexe (like 'aaa.bbb' - will return ['<key>.aaa.bbb', '<key>.aaa']
54
- *
55
- * @param key
56
- * @param context
57
- * @private
58
- */
59
- contextualKeys(key, context) {
60
- return context.split('.')
61
- .filter(isNotNilOrBlank)
62
- .reduce((res, item) => {
63
- const inheritedContext = res.length > 0 ? (res[res.length - 1] + '.') : '';
64
- return res.concat(inheritedContext + item);
65
- }, [])
66
- .reverse() // Start with children, ends with parent key
67
- .map(contextItem => this.contextualKey(key, contextItem))
68
- .concat(key);
69
- }
70
- /**
71
- * Compute a contextual i18n key, using the context as suffix
72
- *
73
- * @param key
74
- * @param context
75
- * @private
76
- */
77
- contextualKey(key, context) {
78
- // Append a dot on context if missing
79
- if (!context.endsWith('.')) {
80
- context = context + '.';
81
- }
82
- // Compute a contextual i18n key, using the context as suffix
83
- const parts = key.split('.');
84
- return (parts.length === 1)
85
- ? `${context}${key}`
86
- : parts.slice(0, parts.length - 1).concat(context + parts[parts.length - 1]).join('.');
87
- }
88
- findFirstValid(keys, translations) {
89
- // For eac contextual key: try to find translation, then use the first valid
90
- for (const key of keys) {
91
- if (translations[key] !== key)
92
- return translations[key];
93
- }
94
- return translations[keys[keys.length - 1]]; // Return the last keys translation
95
- }
96
- }
97
- TranslateContextService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TranslateContextService, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
98
- TranslateContextService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TranslateContextService, providedIn: 'root' });
99
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TranslateContextService, decorators: [{
100
- type: Injectable,
101
- args: [{ providedIn: 'root' }]
102
- }], ctorParameters: function () { return [{ type: i1.TranslateService }]; } });
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLWNvbnRleHQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3NlcnZpY2VzL3RyYW5zbGF0ZS1jb250ZXh0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkMsT0FBTyxFQUFhLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUMsTUFBTSxjQUFjLENBQUM7OztBQUlsRSxNQUFNLE9BQU8sdUJBQXVCO0lBRWxDLFlBQ1ksU0FBMkI7UUFBM0IsY0FBUyxHQUFULFNBQVMsQ0FBa0I7SUFFdkMsQ0FBQztJQUdELEdBQUcsQ0FBQyxHQUFvQixFQUFFLE9BQWdCLEVBQUUsaUJBQXVCO1FBQ2pFLG9DQUFvQztRQUNwQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFFL0UsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTTtnQkFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQzdCLHdDQUF3QztZQUN4QyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUNwQixJQUFJLENBQUMsR0FBRyxDQUNQLFdBQVcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxxQ0FBcUM7aUJBQ3hELE1BQU0sQ0FBQyxDQUFDLEdB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QUcsR0FBRyxDQUFDO1NBQ3pCO1FBRUQsNkRBQTZEO1FBQzdELE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0IsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO1lBQ3pCLENBQUMsQ0FBQyxHQUFHLE9BQU8sR0FBRyxHQUFHLEVBQUU7WUFDcEIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBRU8sY0FBYyxDQUFDLElBQWMsRUFBRSxZQUF1QztRQUM1RSw0RUFBNEU7UUFDNUUsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUU7WUFDdEIsSUFBSSxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRztnQkFBRSxPQUFPLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN6RDtRQUNELE9BQU8sWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQ0FBbUM7SUFDL0UsQ0FBQzs7b0hBeEdVLHVCQUF1Qjt3SEFBdkIsdUJBQXVCLGNBRFgsTUFBTTsyRkFDbEIsdUJBQXVCO2tCQURuQyxVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgb2Z9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtpc05pbCwgaXNOaWxPckJsYW5rLCBpc05vdE5pbE9yQmxhbmt9IGZyb20gJy4uL2Z1bmN0aW9ucyc7XG5cblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRlQ29udGV4dFNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgKSB7XG4gIH1cblxuXG4gIGdldChrZXk6IHN0cmluZ3xzdHJpbmdbXSwgY29udGV4dD86IHN0cmluZywgaW50ZXJwb2xhdGVQYXJhbXM/OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIC8vIE5vIGNvbnRleHQ6IGRvIGEgbm9ybWFsIHRyYW5zbGF0ZVxuICAgIGlmICgha2V5IHx8ICFpc05pbChjb250ZXh0KSkgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmdldChrZXksIGludGVycG9sYXRlUGFyYW1zKTtcblxuICAgIGlmIChBcnJheS5pc0FycmF5KGtleSkpIHtcbiAgICAgIGlmICgha2V5Lmxlbmd0aCkgcmV0dXJuIG9mKCk7XG4gICAgICAvLyBPYnNlcnZlIHRoZSBmaXJzdCBrZXksIHRoZW4gYWRkIG90aGVyXG4gICAgICByZXR1cm4gdGhpcy5nZXQoa2V5WzBdKVxuICAgICAgICAucGlwZShtYXAoXG4gICAgICAgICAgdHJhbnNsYXRpb24gPT4ga2V5LnNsaWNlKDEpIC8vIFNraXAgMSwgYmVjYXVzZSB3ZSBhbHJlYWR5IGhhdmUgaXRcbiAgICAgICAgICAgICAgICAgIC5yZWR1Y2UoKG1hcCwgaykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBtYXBba10gPSB0aGlzLmluc3RhbnQoaywgY29udGV4dCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBtYXA7XG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgLy8gSW5pdCB3aXRoIHRoZSBmaXJzdCB2YWx1ZVxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBba2V5WzBdXTogdHJhbnNsYXRpb25cbiAgICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8vIENvbXB1dGUgYSBjb250ZXh0dWFsIGkxOG4ga2V5LCB1c2luZyB0aGUgY29udGV4dCBhcyBzdWZmaXhcbiAgICBjb25zdCBjb250ZXh0dWFsS2V5cyA9IHRoaXMuY29udGV4dHVhbEtleXMoa2V5LCBjb250ZXh0KTtcblxuICAgIC8vIFJldHVybiB0aGUgY29udGV4dHVhbCB0cmFuc2xhdGlvbiwgb3IgZGVmYXVsdCBvZiBub3QgZXhpc3RzXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmdldChjb250ZXh0dWFsS2V5cywgaW50ZXJwb2xhdGVQYXJhbXMpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHRyYW5zbGF0aW9ucyA9PiB0aGlzLmZpbmRGaXJzdFZhbGlkKGNvbnRleHR1YWxLZXlzLCB0cmFuc2xhdGlvbnMpKVxuICAgICAgKTtcbiAgfVxuXG4gIGluc3RhbnQoa2V5OiBzdHJpbmd8c3RyaW5nW10sIGNvbnRleHQ/OiBzdHJpbmcsIGludGVycG9sYXRlUGFyYW1zPzogYW55KTogYW55IHtcbiAgICAvLyBObyBjb250ZXh0OiBkbyBhIG5vcm1hbCB0cmFuc2xhdGVcbiAgICBpZiAoIWtleSB8fCBpc05pbE9yQmxhbmsoY29udGV4dCkpIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGtleSwgaW50ZXJwb2xhdGVQYXJhbXMpO1xuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoa2V5KSkge1xuICAgICAgcmV0dXJuIGtleS5yZWR1Y2UoKG1hcCwgaykgPT4ge1xuICAgICAgICBtYXBba10gPSB0aGlzLmluc3RhbnQoaywgY29udGV4dCk7XG4gICAgICAgIHJldHVybiBtYXA7XG4gICAgICB9LCB7fSk7XG4gICAgfVxuXG4gICAgLy8gQ29tcHV0ZSBhIGNvbnRleHR1YWwgaTE4biBrZXksIHVzaW5nIHRoZSBjb250ZXh0IGFzIHN1ZmZpeFxuICAgIGNvbnN0IGNvbnRleHR1YWxLZXlzID0gdGhpcy5jb250ZXh0dWFsS2V5cyhrZXksIGNvbnRleHQpO1xuICAgIGNvbnN0IHRyYW5zbGF0aW9ucyA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoY29udGV4dHVhbEtleXMsIGludGVycG9sYXRlUGFyYW1zKTtcblxuICAgIHJldHVybiB0aGlzLmZpbmRGaXJzdFZhbGlkKGNvbnRleHR1YWxLZXlzLCB0cmFuc2xhdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbXB1dGUgY29udGV4dHVhbCBpMThuIGtleXMsIHVzaW5nIHRoZSBjb250ZXh0IGFzIHN1ZmZpeC48YnI+XG4gICAqIFN1ZmZpeCBjYW4gYmUgc2ltcGxlIG5hbWUgKGxpa2UgJ2FhYScgLSB3aWxsIHJldHVybiBbJzxrZXk+LmFhYSddKSBvciBjb21wbGV4ZSAobGlrZSAnYWFhLmJiYicgLSB3aWxsIHJldHVybiBbJzxrZXk+LmFhYS5iYmInLCAnPGtleT4uYWFhJ11cbiAgICpcbiAgICogQHBhcmFtIGtleVxuICAgKiBAcGFyYW0gY29udGV4dFxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgY29udGV4dHVhbEtleXMoa2V5OiBzdHJpbmcsIGNvbnRleHQ6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gY29udGV4dC5zcGxpdCgnLicpXG4gICAgICAuZmlsdGVyKGlzTm90TmlsT3JCbGFuaylcbiAgICAgIC5yZWR1Y2UoKHJlcywgaXRlbSkgPT4ge1xuICAgICAgICBjb25zdCBpbmhlcml0ZWRDb250ZXh0ID0gcmVzLmxlbmd0aCA+IDAgPyAocmVzW3Jlcy5sZW5ndGggLSAxXSArICcuJykgOiAnJztcbiAgICAgICAgcmV0dXJuIHJlcy5jb25jYXQoIGluaGVyaXRlZENvbnRleHQgKyBpdGVtKTtcbiAgICAgIH0sIFtdKVxuICAgICAgLnJldmVyc2UoKSAvLyBTdGFydCB3aXRoIGNoaWxkcmVuLCBlbmRzIHdpdGggcGFyZW50IGtleVxuICAgICAgLm1hcChjb250ZXh0SXRlbSA9PiB0aGlzLmNvbnRleHR1YWxLZXkoa2V5LCBjb250ZXh0SXRlbSkpXG4gICAgICAuY29uY2F0KGtleSk7XG4gIH1cblxuICAvKipcbiAgICogQ29tcHV0ZSBhIGNvbnRleHR1YWwgaTE4biBrZXksIHVzaW5nIHRoZSBjb250ZXh0IGFzIHN1ZmZpeFxuICAgKlxuICAgKiBAcGFyYW0ga2V5XG4gICAqIEBwYXJhbSBjb250ZXh0XG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBjb250ZXh0dWFsS2V5KGtleTogc3RyaW5nLCBjb250ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuXG4gICAgLy8gQXBwZW5kIGEgZG90IG9uIGNvbnRleHQgaWYgbWlzc2luZ1xuICAgIGlmICghY29udGV4dC5lbmRzV2l0aCgnLicpKSB7XG4gICAgICBjb250ZXh0ID0gY29udGV4dCArICcuJztcbiAgICB9XG5cbiAgICAvLyBDb21wdXRlIGEgY29udGV4dHVhbCBpMThuIGtleSwgdXNpbmcgdGhlIGNvbnRleHQgYXMgc3VmZml4XG4gICAgY29uc3QgcGFydHMgPSBrZXkuc3BsaXQoJy4nKTtcbiAgICByZXR1cm4gKHBhcnRzLmxlbmd0aCA9PT0gMSlcbiAgICAgID8gYCR7Y29udGV4dH0ke2tleX1gXG4gICAgICA6IHBhcnRzLnNsaWNlKDAsIHBhcnRzLmxlbmd0aCAtIDEpLmNvbmNhdChjb250ZXh0ICsgcGFydHNbcGFydHMubGVuZ3RoIC0gMV0pLmpvaW4oJy4nKTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZEZpcnN0VmFsaWQoa2V5czogc3RyaW5nW10sIHRyYW5zbGF0aW9uczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSk6IHN0cmluZyB7XG4gICAgLy8gRm9yIGVhYyBjb250ZXh0dWFsIGtleTogdHJ5IHRvIGZpbmQgdHJhbnNsYXRpb24sIHRoZW4gdXNlIHRoZSBmaXJzdCB2YWxpZFxuICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICAgIGlmICh0cmFuc2xhdGlvbnNba2V5XSAhPT0ga2V5KSByZXR1cm4gdHJhbnNsYXRpb25zW2tleV07XG4gICAgfVxuICAgIHJldHVybiB0cmFuc2xhdGlvbnNba2V5c1trZXlzLmxlbmd0aC0xXV07IC8vIFJldHVybiB0aGUgbGFzdCBrZXlzIHRyYW5zbGF0aW9uXG4gIH1cbn1cbiJdfQ==
@@ -1,62 +0,0 @@
1
- import { getPropertyByPathAsString, isNotEmptyArray, isNotNil, isNotNilOrBlank, matchUpperCase, propertiesPathComparator, startsWithUpperCase } from './functions';
2
- export function suggestFromArray(items, value, opts) {
3
- if (isNotNil(value) && typeof value === 'object')
4
- return { data: [value] };
5
- value = (typeof value === 'string' && value !== '*') && value.toUpperCase() || undefined;
6
- const keys = opts && (opts.searchAttribute && [opts.searchAttribute] || opts.searchAttributes) || ['label'];
7
- if (!items) {
8
- return { data: [], total: 0 };
9
- }
10
- // Filter items
11
- let filteredItems = items;
12
- if (isNotNilOrBlank(value)) {
13
- // If wildcard, search using regexp
14
- if (opts?.anySearch || value.indexOf('*') !== -1) {
15
- value = value.replace(/[*]+/g, '.*');
16
- filteredItems = filteredItems.filter(v => keys.findIndex(key => matchUpperCase(getPropertyByPathAsString(v, key), value)) !== -1);
17
- }
18
- // Else (no wildcard), search using startsWith
19
- else {
20
- filteredItems = filteredItems.filter(v => keys.findIndex(key => startsWithUpperCase(getPropertyByPathAsString(v, key), value)) !== -1);
21
- }
22
- }
23
- // Exclude ids
24
- if (isNotEmptyArray(opts?.excludedIds)) {
25
- filteredItems = filteredItems.filter(v => !opts.excludedIds.includes(+v['id']));
26
- }
27
- // Sort
28
- if (!opts || opts.skipSort !== true) {
29
- // Make to copy input items, before sorting (if not yet already done)
30
- if (filteredItems === items)
31
- filteredItems = filteredItems.slice();
32
- // Sort by keys
33
- filteredItems.sort(propertiesPathComparator(keys));
34
- }
35
- const total = filteredItems.length || 0;
36
- // Pagination (truncate if need)
37
- let pageData = filteredItems;
38
- if (opts) {
39
- if ((opts.offset || 0) > 0) {
40
- pageData = pageData.slice(opts.offset);
41
- }
42
- if (isNotNil(opts.size) && pageData.length > opts.size) {
43
- pageData = pageData.slice(0, opts.size);
44
- }
45
- }
46
- const result = {
47
- data: pageData,
48
- total
49
- };
50
- // Add fetch more capability, if total was fetched
51
- const nextOffset = (opts && opts.offset || 0) + pageData.length;
52
- if (nextOffset < total) {
53
- result.fetchMore = async (_) => suggestFromArray(filteredItems, undefined /*OPTIMISATION: already applied*/, {
54
- ...opts,
55
- offset: nextOffset,
56
- skipSort: true,
57
- excludedIds: undefined // OPTIMISATION: already filtered
58
- });
59
- }
60
- return result;
61
- }
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9zZXJ2aWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wseUJBQXlCLEVBQ3pCLGVBQWUsRUFDZixRQUFRLEVBQ1IsZUFBZSxFQUNmLGNBQWMsRUFDZCx3QkFBd0IsRUFDeEIsbUJBQW1CLEVBQ3BCLE1BQU0sYUFBYSxDQUFDO0FBRXJCLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBVSxLQUFVLEVBQUUsS0FBVSxFQUFFLElBUWpFO0lBQ0MsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUTtRQUFFLE9BQU8sRUFBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBQyxDQUFDO0lBRXpFLEtBQUssR0FBRyxDQUFDLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLEtBQUssR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLFdBQVcsRUFBRSxJQUFJLFNBQVMsQ0FBQztJQUV6RixNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFNUcsSUFBSSxDQUFDLEtBQUssRUFBRTtRQUNWLE9BQU8sRUFBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUMsQ0FBQztLQUM3QjtJQUVELGVBQWU7SUFDZixJQUFJLGFBQWEsR0FBRyxLQUFLLENBQUM7SUFDMUIsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFFMUIsbUNBQW1DO1FBQ25DLElBQUksSUFBSSxFQUFFLFNBQVMsSUFBSyxLQUFnQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUM1RCxLQUFLLEdBQUksS0FBZ0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ2pELGFBQWEsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ25JO1FBQ0QsOENBQThDO2FBQ3pDO1lBQ0gsYUFBYSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMseUJBQXlCLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN4STtLQUNGO0lBRUQsY0FBYztJQUNkLElBQUksZUFBZSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsRUFBRTtRQUN0QyxhQUFhLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ2pGO0lBRUQsT0FBTztJQUNQLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLEVBQUU7UUFFbkMscUVBQXFFO1FBQ3JFLElBQUksYUFBYSxLQUFLLEtBQUs7WUFBRSxhQUFhLEdBQUcsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRW5FLGVBQWU7UUFDZixhQUFhLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7S0FDcEQ7SUFFRCxNQUFNLEtBQUssR0FBRyxhQUFhLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQztJQUV4QyxnQ0FBZ0M7SUFDaEMsSUFBSSxRQUFRLEdBQUcsYUFBYSxDQUFDO0lBQzdCLElBQUksSUFBSSxFQUFFO1FBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzFCLFFBQVEsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN4QztRQUNELElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxRQUFRLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDdEQsUUFBUSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN6QztLQUNGO0lBRUQsTUFBTSxNQUFNLEdBQWtCO1FBQzVCLElBQUksRUFBRSxRQUFRO1FBQ2QsS0FBSztLQUNOLENBQUM7SUFFRixrREFBa0Q7SUFDbEQsTUFBTSxVQUFVLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO0lBQ2hFLElBQUksVUFBVSxHQUFHLEtBQUssRUFBRTtRQUN0QixNQUFNLENBQUMsU0FBUyxHQUFHLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsaUNBQWlDLEVBQ3pHO1lBQ0UsR0FBRyxJQUFJO1lBQ1AsTUFBTSxFQUFFLFVBQVU7WUFDbEIsUUFBUSxFQUFFLElBQUk7WUFDZCxXQUFXLEVBQUUsU0FBUyxDQUFDLGlDQUFpQztTQUN6RCxDQUFDLENBQUM7S0FDTjtJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0xvYWRSZXN1bHR9IGZyb20gJy4vc2VydmljZXMvZW50aXR5LXNlcnZpY2UuY2xhc3MnO1xuaW1wb3J0IHtcbiAgZ2V0UHJvcGVydHlCeVBhdGhBc1N0cmluZyxcbiAgaXNOb3RFbXB0eUFycmF5LFxuICBpc05vdE5pbCxcbiAgaXNOb3ROaWxPckJsYW5rLFxuICBtYXRjaFVwcGVyQ2FzZSxcbiAgcHJvcGVydGllc1BhdGhDb21wYXJhdG9yLFxuICBzdGFydHNXaXRoVXBwZXJDYXNlXG59IGZyb20gJy4vZnVuY3Rpb25zJztcblxuZXhwb3J0IGZ1bmN0aW9uIHN1Z2dlc3RGcm9tQXJyYXk8VCA9IGFueT4oaXRlbXM6IFRbXSwgdmFsdWU6IGFueSwgb3B0cz86IHtcbiAgb2Zmc2V0PzogbnVtYmVyO1xuICBzaXplPzogbnVtYmVyO1xuICBzZWFyY2hBdHRyaWJ1dGU/OiBzdHJpbmc7XG4gIHNlYXJjaEF0dHJpYnV0ZXM/OiBzdHJpbmdbXTtcbiAgZXhjbHVkZWRJZHM/OiBudW1iZXJbXTtcbiAgc2tpcFNvcnQ/OiBib29sZWFuO1xuICBhbnlTZWFyY2g/OiBib29sZWFuO1xufSk6IExvYWRSZXN1bHQ8VD4ge1xuICBpZiAoaXNOb3ROaWwodmFsdWUpICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHJldHVybiB7ZGF0YTogW3ZhbHVlXX07XG5cbiAgdmFsdWUgPSAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZSAhPT0gJyonKSAmJiB2YWx1ZS50b1VwcGVyQ2FzZSgpIHx8IHVuZGVmaW5lZDtcblxuICBjb25zdCBrZXlzID0gb3B0cyAmJiAob3B0cy5zZWFyY2hBdHRyaWJ1dGUgJiYgW29wdHMuc2VhcmNoQXR0cmlidXRlXSB8fCBvcHRzLnNlYXJjaEF0dHJpYnV0ZXMpIHx8IFsnbGFiZWwnXTtcblxuICBpZiAoIWl0ZW1zKSB7XG4gICAgcmV0dXJuIHtkYXRhOiBbXSwgdG90YWw6IDB9O1xuICB9XG5cbiAgLy8gRmlsdGVyIGl0ZW1zXG4gIGxldCBmaWx0ZXJlZEl0ZW1zID0gaXRlbXM7XG4gIGlmIChpc05vdE5pbE9yQmxhbmsodmFsdWUpKSB7XG5cbiAgICAvLyBJZiB3aWxkY2FyZCwgc2VhcmNoIHVzaW5nIHJlZ2V4cFxuICAgIGlmIChvcHRzPy5hbnlTZWFyY2ggfHwgKHZhbHVlIGFzIHN0cmluZykuaW5kZXhPZignKicpICE9PSAtMSkge1xuICAgICAgdmFsdWUgPSAodmFsdWUgYXMgc3RyaW5nKS5yZXBsYWNlKC9bKl0rL2csICcuKicpO1xuICAgICAgZmlsdGVyZWRJdGVtcyA9IGZpbHRlcmVkSXRlbXMuZmlsdGVyKHYgPT4ga2V5cy5maW5kSW5kZXgoa2V5ID0+IG1hdGNoVXBwZXJDYXNlKGdldFByb3BlcnR5QnlQYXRoQXNTdHJpbmcodiwga2V5KSwgdmFsdWUpKSAhPT0gLTEpO1xuICAgIH1cbiAgICAvLyBFbHNlIChubyB3aWxkY2FyZCksIHNlYXJjaCB1c2luZyBzdGFydHNXaXRoXG4gICAgZWxzZSB7XG4gICAgICBmaWx0ZXJlZEl0ZW1zID0gZmlsdGVyZWRJdGVtcy5maWx0ZXIodiA9PiBrZXlzLmZpbmRJbmRleChrZXkgPT4gc3RhcnRzV2l0aFVwcGVyQ2FzZShnZXRQcm9wZXJ0eUJ5UGF0aEFzU3RyaW5nKHYsIGtleSksIHZhbHVlKSkgIT09IC0xKTtcbiAgICB9XG4gIH1cblxuICAvLyBFeGNsdWRlIGlkc1xuICBpZiAoaXNOb3RFbXB0eUFycmF5KG9wdHM/LmV4Y2x1ZGVkSWRzKSkge1xuICAgIGZpbHRlcmVkSXRlbXMgPSBmaWx0ZXJlZEl0ZW1zLmZpbHRlcih2ID0+ICFvcHRzLmV4Y2x1ZGVkSWRzLmluY2x1ZGVzKCt2WydpZCddKSk7XG4gIH1cblxuICAvLyBTb3J0XG4gIGlmICghb3B0cyB8fCBvcHRzLnNraXBTb3J0ICE9PSB0cnVlKSB7XG5cbiAgICAvLyBNYWtlIHRvIGNvcHkgaW5wdXQgaXRlbXMsIGJlZm9yZSBzb3J0aW5nIChpZiBub3QgeWV0IGFscmVhZHkgZG9uZSlcbiAgICBpZiAoZmlsdGVyZWRJdGVtcyA9PT0gaXRlbXMpIGZpbHRlcmVkSXRlbXMgPSBmaWx0ZXJlZEl0ZW1zLnNsaWNlKCk7XG5cbiAgICAvLyBTb3J0IGJ5IGtleXNcbiAgICBmaWx0ZXJlZEl0ZW1zLnNvcnQocHJvcGVydGllc1BhdGhDb21wYXJhdG9yKGtleXMpKTtcbiAgfVxuXG4gIGNvbnN0IHRvdGFsID0gZmlsdGVyZWRJdGVtcy5sZW5ndGggfHwgMDtcblxuICAvLyBQYWdpbmF0aW9uICh0cnVuY2F0ZSBpZiBuZWVkKVxuICBsZXQgcGFnZURhdGEgPSBmaWx0ZXJlZEl0ZW1zO1xuICBpZiAob3B0cykge1xuICAgIGlmICgob3B0cy5vZmZzZXQgfHwgMCkgPiAwKSB7XG4gICAgICBwYWdlRGF0YSA9IHBhZ2VEYXRhLnNsaWNlKG9wdHMub2Zmc2V0KTtcbiAgICB9XG4gICAgaWYgKGlzTm90TmlsKG9wdHMuc2l6ZSkgJiYgcGFnZURhdGEubGVuZ3RoID4gb3B0cy5zaXplKSB7XG4gICAgICBwYWdlRGF0YSA9IHBhZ2VEYXRhLnNsaWNlKDAsIG9wdHMuc2l6ZSk7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgcmVzdWx0OiBMb2FkUmVzdWx0PFQ+ID0ge1xuICAgIGRhdGE6IHBhZ2VEYXRhLFxuICAgIHRvdGFsXG4gIH07XG5cbiAgLy8gQWRkIGZldGNoIG1vcmUgY2FwYWJpbGl0eSwgaWYgdG90YWwgd2FzIGZldGNoZWRcbiAgY29uc3QgbmV4dE9mZnNldCA9IChvcHRzICYmIG9wdHMub2Zmc2V0IHx8IDApICsgcGFnZURhdGEubGVuZ3RoO1xuICBpZiAobmV4dE9mZnNldCA8IHRvdGFsKSB7XG4gICAgcmVzdWx0LmZldGNoTW9yZSA9IGFzeW5jIChfKSA9PiBzdWdnZXN0RnJvbUFycmF5KGZpbHRlcmVkSXRlbXMsIHVuZGVmaW5lZCAvKk9QVElNSVNBVElPTjogYWxyZWFkeSBhcHBsaWVkKi8sXG4gICAgICB7XG4gICAgICAgIC4uLm9wdHMsXG4gICAgICAgIG9mZnNldDogbmV4dE9mZnNldCxcbiAgICAgICAgc2tpcFNvcnQ6IHRydWUsIC8vIE9QVElNSVNBVElPTjogYWxyZWFkeSBzb3J0ZWRcbiAgICAgICAgZXhjbHVkZWRJZHM6IHVuZGVmaW5lZCAvLyBPUFRJTUlTQVRJT046IGFscmVhZHkgZmlsdGVyZWRcbiAgICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cbiJdfQ==
@@ -1,71 +0,0 @@
1
- import { Injectable, NgModule } from '@angular/core';
2
- import { RouteReuseStrategy, RouterModule } from '@angular/router';
3
- import { IonicRouteStrategy } from '@ionic/angular';
4
- import { ComponentDirtyGuard } from './guard/component-dirty.guard';
5
- import { isNil, isNotNil } from './functions';
6
- import * as i0 from "@angular/core";
7
- export class CustomReuseStrategy extends IonicRouteStrategy {
8
- /**
9
- * Force to reuse the route when:
10
- * - path change from [/new] -> [/:id]
11
- * - or path change from [/new] -> [/new?id=:id]
12
- *
13
- * @param future
14
- * @param curr
15
- */
16
- shouldReuseRoute(future, curr) {
17
- const reuse = super.shouldReuseRoute(future, curr);
18
- // Is sam route config
19
- if (!reuse && future.routeConfig && future.routeConfig === curr.routeConfig) {
20
- // Read the parameter name, where id is stored
21
- const pathIdParam = future.routeConfig.data && future.routeConfig.data.pathIdParam || 'id';
22
- // Read the current route id
23
- const currId = curr.params[pathIdParam] === 'new'
24
- ? (curr.queryParams[pathIdParam] || curr.queryParams['id'] || 'new') // e.g. path like '/new/?id=<ID>'
25
- : curr.params[pathIdParam]; // e.g. path like '/<ID>'
26
- // Read the future route id
27
- const futureId = future.params[pathIdParam] === 'new'
28
- ? (future.queryParams[pathIdParam] || future.queryParams['id'] || 'new') // e.g. path like '/new/?id=<ID>'
29
- : future.params[pathIdParam]; // e.g. path like '/<ID>'
30
- // Reuse if same ID, using a futureId, if exists
31
- if (isNotNil(futureId)) {
32
- // Allow reuse when changing from /new to /new?id=:id
33
- if (currId === 'new' && isNil(curr.queryParams[pathIdParam]) && future.params[pathIdParam] === 'new' && isNotNil(future.queryParams[pathIdParam])) {
34
- return true;
35
- }
36
- // Allow reuse same id, expect when expected '/new'
37
- return futureId !== 'new' && futureId === currId;
38
- }
39
- }
40
- return reuse;
41
- }
42
- }
43
- CustomReuseStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CustomReuseStrategy, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
44
- CustomReuseStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CustomReuseStrategy });
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CustomReuseStrategy, decorators: [{
46
- type: Injectable
47
- }] });
48
- export class SharedRoutingModule {
49
- constructor() {
50
- console.debug('[shared-routing] Creating module...');
51
- }
52
- }
53
- SharedRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SharedRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
54
- SharedRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: SharedRoutingModule, imports: [RouterModule] });
55
- SharedRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", 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: "14.3.0", ngImport: i0, type: SharedRoutingModule, decorators: [{
60
- type: NgModule,
61
- args: [{
62
- imports: [
63
- RouterModule
64
- ],
65
- providers: [
66
- { provide: RouteReuseStrategy, useClass: CustomReuseStrategy },
67
- { provide: ComponentDirtyGuard, useClass: ComponentDirtyGuard }
68
- ]
69
- }]
70
- }], ctorParameters: function () { return []; } });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLXJvdXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvc2hhcmVkLXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBeUIsa0JBQWtCLEVBQUUsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFDLEtBQUssRUFBRSxRQUFRLEVBQUMsTUFBTSxhQUFhLENBQUM7O0FBSTVDLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxrQkFBa0I7SUFFekQ7Ozs7Ozs7T0FPRztJQUNILGdCQUFnQixDQUFDLE1BQThCLEVBQUUsSUFBNEI7UUFDM0UsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVuRCxzQkFBc0I7UUFDdEIsSUFBSSxDQUFDLEtBQUssSUFBSSxNQUFNLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQyxXQUFXLEtBQUssSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUMzRSw4Q0FBOEM7WUFDOUMsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQztZQUUzRiw0QkFBNEI7WUFDNUIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxLQUFLO2dCQUMvQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsaUNBQWlDO2dCQUN0RyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLHlCQUF5QjtZQUV2RCwyQkFBMkI7WUFDM0IsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxLQUFLO2dCQUNuRCxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsaUNBQWlDO2dCQUMxRyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLHlCQUF5QjtZQUV6RCxnREFBZ0Q7WUFDaEQsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ3RCLHFEQUFxRDtnQkFDckQsSUFBSSxNQUFNLEtBQUssS0FBSyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxLQUFLLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRTtvQkFDakosT0FBTyxJQUFJLENBQUM7aUJBQ2I7Z0JBRUQsbURBQW1EO2dCQUNuRCxPQUFPLFFBQVEsS0FBSyxLQUFLLElBQUksUUFBUSxLQUFLLE1BQU0sQ0FBQzthQUNsRDtTQUNGO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOztnSEF6Q1UsbUJBQW1CO29IQUFuQixtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVTs7QUFzRFgsTUFBTSxPQUFPLG1CQUFtQjtJQUU5QjtRQUNFLE9BQU8sQ0FBQyxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQztJQUN2RCxDQUFDOztnSEFKVSxtQkFBbUI7aUhBQW5CLG1CQUFtQixZQVA1QixZQUFZO2lIQU9ILG1CQUFtQixhQUxuQjtRQUNULEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxtQkFBbUIsRUFBRTtRQUM5RCxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsbUJBQW1CLEVBQUU7S0FDaEUsWUFMQyxZQUFZOzJGQU9ILG1CQUFtQjtrQkFUL0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTtxQkFDYjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixFQUFFO3dCQUM5RCxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsbUJBQW1CLEVBQUU7cUJBQ2hFO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJvdXRlUmV1c2VTdHJhdGVneSwgUm91dGVyTW9kdWxlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtJb25pY1JvdXRlU3RyYXRlZ3l9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7Q29tcG9uZW50RGlydHlHdWFyZH0gZnJvbSAnLi9ndWFyZC9jb21wb25lbnQtZGlydHkuZ3VhcmQnO1xuaW1wb3J0IHtpc05pbCwgaXNOb3ROaWx9IGZyb20gJy4vZnVuY3Rpb25zJztcblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ3VzdG9tUmV1c2VTdHJhdGVneSBleHRlbmRzIElvbmljUm91dGVTdHJhdGVneSB7XG5cbiAgLyoqXG4gICAqIEZvcmNlIHRvIHJldXNlIHRoZSByb3V0ZSB3aGVuOlxuICAgKiAgLSBwYXRoIGNoYW5nZSBmcm9tIFsvbmV3XSAtPiBbLzppZF1cbiAgICogIC0gb3IgcGF0aCBjaGFuZ2UgZnJvbSBbL25ld10gLT4gWy9uZXc/aWQ9OmlkXVxuICAgKlxuICAgKiBAcGFyYW0gZnV0dXJlXG4gICAqIEBwYXJhbSBjdXJyXG4gICAqL1xuICBzaG91bGRSZXVzZVJvdXRlKGZ1dHVyZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgY3VycjogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHJldXNlID0gc3VwZXIuc2hvdWxkUmV1c2VSb3V0ZShmdXR1cmUsIGN1cnIpO1xuXG4gICAgLy8gSXMgc2FtIHJvdXRlIGNvbmZpZ1xuICAgIGlmICghcmV1c2UgJiYgZnV0dXJlLnJvdXRlQ29uZmlnICYmIGZ1dHVyZS5yb3V0ZUNvbmZpZyA9PT0gY3Vyci5yb3V0ZUNvbmZpZykge1xuICAgICAgLy8gUmVhZCB0aGUgcGFyYW1ldGVyIG5hbWUsIHdoZXJlIGlkIGlzIHN0b3JlZFxuICAgICAgY29uc3QgcGF0aElkUGFyYW0gPSBmdXR1cmUucm91dGVDb25maWcuZGF0YSAmJiBmdXR1cmUucm91dGVDb25maWcuZGF0YS5wYXRoSWRQYXJhbSB8fCAnaWQnO1xuXG4gICAgICAvLyBSZWFkIHRoZSBjdXJyZW50IHJvdXRlIGlkXG4gICAgICBjb25zdCBjdXJySWQgPSBjdXJyLnBhcmFtc1twYXRoSWRQYXJhbV0gPT09ICduZXcnXG4gICAgICAgID8gKGN1cnIucXVlcnlQYXJhbXNbcGF0aElkUGFyYW1dIHx8IGN1cnIucXVlcnlQYXJhbXNbJ2lkJ10gfHwgJ25ldycpIC8vIGUuZy4gcGF0aCBsaWtlICcvbmV3Lz9pZD08SUQ+J1xuICAgICAgICA6IGN1cnIucGFyYW1zW3BhdGhJZFBhcmFtXTsgLy8gZS5nLiBwYXRoIGxpa2UgJy88SUQ+J1xuXG4gICAgICAvLyBSZWFkIHRoZSBmdXR1cmUgcm91dGUgaWRcbiAgICAgIGNvbnN0IGZ1dHVyZUlkID0gZnV0dXJlLnBhcmFtc1twYXRoSWRQYXJhbV0gPT09ICduZXcnXG4gICAgICAgID8gKGZ1dHVyZS5xdWVyeVBhcmFtc1twYXRoSWRQYXJhbV0gfHwgZnV0dXJlLnF1ZXJ5UGFyYW1zWydpZCddIHx8ICduZXcnKSAvLyBlLmcuIHBhdGggbGlrZSAnL25ldy8/aWQ9PElEPidcbiAgICAgICAgOiBmdXR1cmUucGFyYW1zW3BhdGhJZFBhcmFtXTsgLy8gZS5nLiBwYXRoIGxpa2UgJy88SUQ+J1xuXG4gICAgICAvLyBSZXVzZSBpZiBzYW1lIElELCB1c2luZyBhIGZ1dHVyZUlkLCBpZiBleGlzdHNcbiAgICAgIGlmIChpc05vdE5pbChmdXR1cmVJZCkpIHtcbiAgICAgICAgLy8gQWxsb3cgcmV1c2Ugd2hlbiBjaGFuZ2luZyBmcm9tIC9uZXcgdG8gL25ldz9pZD06aWRcbiAgICAgICAgaWYgKGN1cnJJZCA9PT0gJ25ldycgJiYgaXNOaWwoY3Vyci5xdWVyeVBhcmFtc1twYXRoSWRQYXJhbV0pICYmIGZ1dHVyZS5wYXJhbXNbcGF0aElkUGFyYW1dID09PSAnbmV3JyAmJiBpc05vdE5pbChmdXR1cmUucXVlcnlQYXJhbXNbcGF0aElkUGFyYW1dKSkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQWxsb3cgcmV1c2Ugc2FtZSBpZCwgZXhwZWN0IHdoZW4gZXhwZWN0ZWQgJy9uZXcnXG4gICAgICAgIHJldHVybiBmdXR1cmVJZCAhPT0gJ25ldycgJiYgZnV0dXJlSWQgPT09IGN1cnJJZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmV1c2U7XG4gIH1cbn1cblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIFJvdXRlck1vZHVsZVxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IFJvdXRlUmV1c2VTdHJhdGVneSwgdXNlQ2xhc3M6IEN1c3RvbVJldXNlU3RyYXRlZ3kgfSxcbiAgICB7IHByb3ZpZGU6IENvbXBvbmVudERpcnR5R3VhcmQsIHVzZUNsYXNzOiBDb21wb25lbnREaXJ0eUd1YXJkIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTaGFyZWRSb3V0aW5nTW9kdWxlIHtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBjb25zb2xlLmRlYnVnKCdbc2hhcmVkLXJvdXRpbmddIENyZWF0aW5nIG1vZHVsZS4uLicpO1xuICB9XG59XG4iXX0=