@sumaris-net/ngx-components 18.23.62 → 21.0.0-rc1

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 (799) hide show
  1. package/README.md +2 -0
  2. package/doc/build.md +3 -5
  3. package/fesm2022/sumaris-net.ngx-components.mjs +2383 -2150
  4. package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
  5. package/package.json +15 -15
  6. package/src/assets/environments/environment-test.json +2 -2
  7. package/src/assets/i18n/en-US.json +4 -1
  8. package/src/assets/i18n/en.json +4 -1
  9. package/src/assets/i18n/fr.json +10 -6
  10. package/src/assets/manifest.json +1 -1
  11. package/src/theme/_icons.scss +8 -12
  12. package/src/theme/_ionic.globals.scss +8 -1
  13. package/src/theme/_material.globals.scss +4 -1
  14. package/src/theme/_material.scss +16 -13
  15. package/src/theme/_mixins.scss +7 -1
  16. package/src/theme/_ngx-components.forms.scss +87 -84
  17. package/src/theme/_ngx-components.globals.scss +2 -0
  18. package/src/theme/_ngx-components.scss +19 -4
  19. package/src/theme/_ngx-components.table.scss +31 -26
  20. package/src/theme/_ngx-components.tabs.scss +16 -14
  21. package/src/theme/_responsive.scss +2 -0
  22. package/src/theme/_roboto.scss +3 -0
  23. package/src/theme/_theme.scss +11 -14
  24. package/src/theme/_theme.variables.scss +6 -1
  25. package/src/theme/ionic/ionic.functions.color.scss +13 -5
  26. package/src/theme/ionic/ionic.globals.scss +4 -4
  27. package/src/theme/ionic/ionic.theme.default.scss +2 -0
  28. package/types/sumaris-net.ngx-components.d.ts +14132 -0
  29. package/esm2022/public_api.mjs +0 -403
  30. package/esm2022/src/app/admin/admin-routing.module.mjs +0 -34
  31. package/esm2022/src/app/admin/admin.module.mjs +0 -32
  32. package/esm2022/src/app/admin/users/person.filter.mjs +0 -157
  33. package/esm2022/src/app/admin/users/person.service.mjs +0 -226
  34. package/esm2022/src/app/admin/users/person.validator.mjs +0 -78
  35. package/esm2022/src/app/admin/users/users-select.modal.mjs +0 -167
  36. package/esm2022/src/app/admin/users/users.mjs +0 -502
  37. package/esm2022/src/app/admin/users/users.module.mjs +0 -59
  38. package/esm2022/src/app/admin/users/users.utils.mjs +0 -29
  39. package/esm2022/src/app/core/about/about.modal.mjs +0 -119
  40. package/esm2022/src/app/core/about/about.module.mjs +0 -22
  41. package/esm2022/src/app/core/account/account.module.mjs +0 -75
  42. package/esm2022/src/app/core/account/account.page.mjs +0 -426
  43. package/esm2022/src/app/core/account/new-token.form.mjs +0 -109
  44. package/esm2022/src/app/core/account/new-token.modal.mjs +0 -66
  45. package/esm2022/src/app/core/account/password/change-password.form.mjs +0 -63
  46. package/esm2022/src/app/core/account/password/change-password.module.mjs +0 -22
  47. package/esm2022/src/app/core/account/password/change-password.page.mjs +0 -150
  48. package/esm2022/src/app/core/account/token.table.mjs +0 -160
  49. package/esm2022/src/app/core/auth/auth.form.mjs +0 -159
  50. package/esm2022/src/app/core/auth/auth.modal.mjs +0 -76
  51. package/esm2022/src/app/core/auth/auth.module.mjs +0 -56
  52. package/esm2022/src/app/core/auth/reset-password.modal.mjs +0 -89
  53. package/esm2022/src/app/core/core.module.mjs +0 -157
  54. package/esm2022/src/app/core/core.testing.module.mjs +0 -128
  55. package/esm2022/src/app/core/form/array/form-array.mjs +0 -328
  56. package/esm2022/src/app/core/form/array/testing/form-array-test.module.mjs +0 -23
  57. package/esm2022/src/app/core/form/array/testing/form-array.test.mjs +0 -97
  58. package/esm2022/src/app/core/form/buttons/form-buttons-bar.component.mjs +0 -111
  59. package/esm2022/src/app/core/form/buttons/form-buttons-bar.module.mjs +0 -31
  60. package/esm2022/src/app/core/form/entity/editor.class.mjs +0 -268
  61. package/esm2022/src/app/core/form/entity/entity-editor-modal.class.mjs +0 -420
  62. package/esm2022/src/app/core/form/entity/entity-editor.class.mjs +0 -748
  63. package/esm2022/src/app/core/form/entity/entity-metadata.component.mjs +0 -25
  64. package/esm2022/src/app/core/form/entity/entity.module.mjs +0 -33
  65. package/esm2022/src/app/core/form/entity/tab-editor.class.mjs +0 -190
  66. package/esm2022/src/app/core/form/form-container.class.mjs +0 -347
  67. package/esm2022/src/app/core/form/form.class.mjs +0 -342
  68. package/esm2022/src/app/core/form/form.module.mjs +0 -77
  69. package/esm2022/src/app/core/form/form.utils.mjs +0 -238
  70. package/esm2022/src/app/core/form/list/list.form.mjs +0 -243
  71. package/esm2022/src/app/core/form/list/list.module.mjs +0 -31
  72. package/esm2022/src/app/core/form/properties/properties-file.service.mjs +0 -133
  73. package/esm2022/src/app/core/form/properties/properties.form.mjs +0 -397
  74. package/esm2022/src/app/core/form/properties/properties.module.mjs +0 -85
  75. package/esm2022/src/app/core/form/properties/properties.table.mjs +0 -267
  76. package/esm2022/src/app/core/form/properties/properties.utils.mjs +0 -304
  77. package/esm2022/src/app/core/form/properties/property.validator.mjs +0 -70
  78. package/esm2022/src/app/core/form/properties/testing/properties-form.test.mjs +0 -103
  79. package/esm2022/src/app/core/form/properties/testing/properties-form.testing.module.mjs +0 -23
  80. package/esm2022/src/app/core/form/text/testing/text-form.testing.mjs +0 -42
  81. package/esm2022/src/app/core/form/text/testing/text-form.testing.module.mjs +0 -25
  82. package/esm2022/src/app/core/form/text/text-form.component.mjs +0 -205
  83. package/esm2022/src/app/core/form/text/text-form.module.mjs +0 -31
  84. package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.mjs +0 -73
  85. package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.module.mjs +0 -22
  86. package/esm2022/src/app/core/form/text-popover/text-popover.component.mjs +0 -164
  87. package/esm2022/src/app/core/form/text-popover/text-popover.module.mjs +0 -32
  88. package/esm2022/src/app/core/form/username/username.form.mjs +0 -55
  89. package/esm2022/src/app/core/form/username/username.module.mjs +0 -20
  90. package/esm2022/src/app/core/graphql/graphql.module.mjs +0 -14
  91. package/esm2022/src/app/core/graphql/graphql.service.mjs +0 -781
  92. package/esm2022/src/app/core/graphql/graphql.utils.mjs +0 -119
  93. package/esm2022/src/app/core/home/home.mjs +0 -472
  94. package/esm2022/src/app/core/home/home.module.mjs +0 -54
  95. package/esm2022/src/app/core/icon/icon.component.mjs +0 -40
  96. package/esm2022/src/app/core/icon/icon.module.mjs +0 -20
  97. package/esm2022/src/app/core/install/install-upgrade-card.component.mjs +0 -394
  98. package/esm2022/src/app/core/install/install-upgrade-card.module.mjs +0 -31
  99. package/esm2022/src/app/core/menu/menu.component.mjs +0 -273
  100. package/esm2022/src/app/core/menu/menu.model.mjs +0 -327
  101. package/esm2022/src/app/core/menu/menu.module.mjs +0 -47
  102. package/esm2022/src/app/core/menu/menu.service.mjs +0 -666
  103. package/esm2022/src/app/core/menu/sub-menu-tab.directive.mjs +0 -113
  104. package/esm2022/src/app/core/menu/testing/menu-other.testing.mjs +0 -51
  105. package/esm2022/src/app/core/menu/testing/menu.testing.mjs +0 -165
  106. package/esm2022/src/app/core/menu/testing/menu.testing.module.mjs +0 -60
  107. package/esm2022/src/app/core/offline/update-offline-mode-card.component.mjs +0 -28
  108. package/esm2022/src/app/core/offline/update-offline-mode-card.module.mjs +0 -31
  109. package/esm2022/src/app/core/peer/select-peer.modal.mjs +0 -350
  110. package/esm2022/src/app/core/peer/select-peer.module.mjs +0 -36
  111. package/esm2022/src/app/core/register/register-confirm.page.mjs +0 -90
  112. package/esm2022/src/app/core/register/register.form.mjs +0 -197
  113. package/esm2022/src/app/core/register/register.modal.mjs +0 -55
  114. package/esm2022/src/app/core/register/register.module.mjs +0 -23
  115. package/esm2022/src/app/core/services/account.service.mjs +0 -1403
  116. package/esm2022/src/app/core/services/auth-guard.service.mjs +0 -74
  117. package/esm2022/src/app/core/services/base-entity-service.class.mjs +0 -499
  118. package/esm2022/src/app/core/services/base-graphql-service.class.mjs +0 -224
  119. package/esm2022/src/app/core/services/base58.mjs +0 -83
  120. package/esm2022/src/app/core/services/config/core.config.mjs +0 -293
  121. package/esm2022/src/app/core/services/config.service.mjs +0 -384
  122. package/esm2022/src/app/core/services/crypto.service.mjs +0 -107
  123. package/esm2022/src/app/core/services/errors.mjs +0 -54
  124. package/esm2022/src/app/core/services/local-settings.service.mjs +0 -540
  125. package/esm2022/src/app/core/services/model/account.model.mjs +0 -192
  126. package/esm2022/src/app/core/services/model/config.model.mjs +0 -111
  127. package/esm2022/src/app/core/services/model/department.model.mjs +0 -35
  128. package/esm2022/src/app/core/services/model/entity.decorators.mjs +0 -97
  129. package/esm2022/src/app/core/services/model/entity.model.mjs +0 -347
  130. package/esm2022/src/app/core/services/model/filter.model.mjs +0 -169
  131. package/esm2022/src/app/core/services/model/history.model.mjs +0 -2
  132. package/esm2022/src/app/core/services/model/model.enum.mjs +0 -11
  133. package/esm2022/src/app/core/services/model/node-feature.model.mjs +0 -31
  134. package/esm2022/src/app/core/services/model/peer.model.mjs +0 -114
  135. package/esm2022/src/app/core/services/model/person.model.mjs +0 -118
  136. package/esm2022/src/app/core/services/model/referential.model.mjs +0 -207
  137. package/esm2022/src/app/core/services/model/settings.model.mjs +0 -6
  138. package/esm2022/src/app/core/services/model/token.model.mjs +0 -57
  139. package/esm2022/src/app/core/services/model/tree-item-entity.model.mjs +0 -234
  140. package/esm2022/src/app/core/services/network.service.mjs +0 -759
  141. package/esm2022/src/app/core/services/network.types.mjs +0 -2
  142. package/esm2022/src/app/core/services/network.utils.mjs +0 -35
  143. package/esm2022/src/app/core/services/pipes/account.pipes.mjs +0 -38
  144. package/esm2022/src/app/core/services/pipes/department-to-string.pipe.mjs +0 -23
  145. package/esm2022/src/app/core/services/pipes/person-to-string.pipe.mjs +0 -23
  146. package/esm2022/src/app/core/services/pipes/pipes.module.mjs +0 -58
  147. package/esm2022/src/app/core/services/pipes/referential-to-string.pipe.mjs +0 -36
  148. package/esm2022/src/app/core/services/pipes/usage-mode.pipes.mjs +0 -37
  149. package/esm2022/src/app/core/services/platform.service.mjs +0 -780
  150. package/esm2022/src/app/core/services/storage/entities-storage.service.mjs +0 -427
  151. package/esm2022/src/app/core/services/storage/entity-store.class.mjs +0 -450
  152. package/esm2022/src/app/core/services/testing/referential-filter.model.mjs +0 -25
  153. package/esm2022/src/app/core/services/testing/referential.validator.mjs +0 -46
  154. package/esm2022/src/app/core/services/validator/account.validator.mjs +0 -46
  155. package/esm2022/src/app/core/services/validator/base.validator.class.mjs +0 -49
  156. package/esm2022/src/app/core/services/validator/local-settings.validator.mjs +0 -57
  157. package/esm2022/src/app/core/services/validator/user-settings.validator.mjs +0 -27
  158. package/esm2022/src/app/core/services/validator/user-token.validator.mjs +0 -55
  159. package/esm2022/src/app/core/settings/settings.module.mjs +0 -23
  160. package/esm2022/src/app/core/settings/settings.page.mjs +0 -406
  161. package/esm2022/src/app/core/table/async-table.class.mjs +0 -1882
  162. package/esm2022/src/app/core/table/column/actions-column.component.mjs +0 -137
  163. package/esm2022/src/app/core/table/column/nav-actions-column.component.mjs +0 -120
  164. package/esm2022/src/app/core/table/column/row-field.component.mjs +0 -116
  165. package/esm2022/src/app/core/table/entities-async-table-datasource.class.mjs +0 -415
  166. package/esm2022/src/app/core/table/entities-table-datasource.class.mjs +0 -407
  167. package/esm2022/src/app/core/table/memory-table.class.mjs +0 -57
  168. package/esm2022/src/app/core/table/table-select-columns.component.mjs +0 -46
  169. package/esm2022/src/app/core/table/table.class.mjs +0 -1918
  170. package/esm2022/src/app/core/table/table.model.mjs +0 -21
  171. package/esm2022/src/app/core/table/table.module.mjs +0 -51
  172. package/esm2022/src/app/core/table/table.pipes.mjs +0 -76
  173. package/esm2022/src/app/core/table/table.utils.mjs +0 -34
  174. package/esm2022/src/app/core/table/testing/nested-table.testing.mjs +0 -326
  175. package/esm2022/src/app/core/table/testing/table-validator.service.mjs +0 -32
  176. package/esm2022/src/app/core/table/testing/table.testing.mjs +0 -342
  177. package/esm2022/src/app/core/table/testing/table.testing.module.mjs +0 -47
  178. package/esm2022/src/app/core/table/testing/table2-validator.service.mjs +0 -25
  179. package/esm2022/src/app/core/table/testing/table2.testing.mjs +0 -322
  180. package/esm2022/src/app/shared/alerts.mjs +0 -243
  181. package/esm2022/src/app/shared/audio/audio.mjs +0 -255
  182. package/esm2022/src/app/shared/audio/audio.testing.mjs +0 -32
  183. package/esm2022/src/app/shared/audio/audio.testing.module.mjs +0 -30
  184. package/esm2022/src/app/shared/base64.utils.mjs +0 -59
  185. package/esm2022/src/app/shared/capacitor/keyboard.mjs +0 -42
  186. package/esm2022/src/app/shared/capacitor/plugins.mjs +0 -10
  187. package/esm2022/src/app/shared/constants.mjs +0 -18
  188. package/esm2022/src/app/shared/dates.mjs +0 -212
  189. package/esm2022/src/app/shared/debug/debug-service.class.mjs +0 -3
  190. package/esm2022/src/app/shared/debug/debug.component.mjs +0 -44
  191. package/esm2022/src/app/shared/debug/debug.module.mjs +0 -23
  192. package/esm2022/src/app/shared/directives/autofocus.directive.mjs +0 -91
  193. package/esm2022/src/app/shared/directives/autoresize.directive.mjs +0 -75
  194. package/esm2022/src/app/shared/directives/autotitle.directive.mjs +0 -30
  195. package/esm2022/src/app/shared/directives/autotooltip.directive.mjs +0 -35
  196. package/esm2022/src/app/shared/directives/cell-selection/cell-identifier.directive.mjs +0 -55
  197. package/esm2022/src/app/shared/directives/cell-selection/cell-selection.directive.mjs +0 -206
  198. package/esm2022/src/app/shared/directives/cell-selection/cell-selection.service.mjs +0 -204
  199. package/esm2022/src/app/shared/directives/directives.module.mjs +0 -53
  200. package/esm2022/src/app/shared/directives/drag-and-drop.directive.mjs +0 -52
  201. package/esm2022/src/app/shared/directives/ng-var.directive.mjs +0 -33
  202. package/esm2022/src/app/shared/directives/resizable/resizable.component.mjs +0 -62
  203. package/esm2022/src/app/shared/directives/resizable/resizable.directive.mjs +0 -96
  204. package/esm2022/src/app/shared/directives/resizable/resizable.module.mjs +0 -17
  205. package/esm2022/src/app/shared/directives/throttled-click.directive.mjs +0 -43
  206. package/esm2022/src/app/shared/events.mjs +0 -64
  207. package/esm2022/src/app/shared/file/csv.utils.mjs +0 -97
  208. package/esm2022/src/app/shared/file/file.service.mjs +0 -118
  209. package/esm2022/src/app/shared/file/file.utils.mjs +0 -117
  210. package/esm2022/src/app/shared/file/images.utils.mjs +0 -186
  211. package/esm2022/src/app/shared/file/json.utils.mjs +0 -58
  212. package/esm2022/src/app/shared/file/uri.utils.mjs +0 -29
  213. package/esm2022/src/app/shared/file/url.utils.mjs +0 -213
  214. package/esm2022/src/app/shared/focusable.mjs +0 -6
  215. package/esm2022/src/app/shared/form/field.component.mjs +0 -388
  216. package/esm2022/src/app/shared/form/field.model.mjs +0 -100
  217. package/esm2022/src/app/shared/form/loading-spinner.mjs +0 -35
  218. package/esm2022/src/app/shared/forms.mjs +0 -593
  219. package/esm2022/src/app/shared/functions.mjs +0 -825
  220. package/esm2022/src/app/shared/geolocation/geolocation.utils.mjs +0 -94
  221. package/esm2022/src/app/shared/gesture/gesture-config.mjs +0 -46
  222. package/esm2022/src/app/shared/gesture/hammer.utils.mjs +0 -2
  223. package/esm2022/src/app/shared/graph/colors.utils.mjs +0 -85
  224. package/esm2022/src/app/shared/graph/graph-colors.mjs +0 -214
  225. package/esm2022/src/app/shared/guard/component-dirty.guard.mjs +0 -68
  226. package/esm2022/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +0 -23
  227. package/esm2022/src/app/shared/hotkeys/hotkeys.service.mjs +0 -147
  228. package/esm2022/src/app/shared/hotkeys/shared-hotkeys.module.mjs +0 -24
  229. package/esm2022/src/app/shared/html.utils.mjs +0 -35
  230. package/esm2022/src/app/shared/http/http.utils.mjs +0 -56
  231. package/esm2022/src/app/shared/image/gallery/image-gallery.component.mjs +0 -452
  232. package/esm2022/src/app/shared/image/gallery/image-gallery.module.mjs +0 -62
  233. package/esm2022/src/app/shared/image/gallery/testing/gallegry.model.testing.mjs +0 -26
  234. package/esm2022/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +0 -92
  235. package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.mjs +0 -37
  236. package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +0 -59
  237. package/esm2022/src/app/shared/image/image.model.mjs +0 -2
  238. package/esm2022/src/app/shared/image/image.module.mjs +0 -24
  239. package/esm2022/src/app/shared/image/image.service.mjs +0 -117
  240. package/esm2022/src/app/shared/inputs.mjs +0 -281
  241. package/esm2022/src/app/shared/interceptors/progess.interceptor.mjs +0 -27
  242. package/esm2022/src/app/shared/logging/log-level.model.mjs +0 -48
  243. package/esm2022/src/app/shared/logging/logger.model.mjs +0 -47
  244. package/esm2022/src/app/shared/logging/logging-service.class.mjs +0 -125
  245. package/esm2022/src/app/shared/logging/logging-service.config.mjs +0 -2
  246. package/esm2022/src/app/shared/logging/logging-service.module.mjs +0 -30
  247. package/esm2022/src/app/shared/markdown/markdown.component.mjs +0 -321
  248. package/esm2022/src/app/shared/markdown/markdown.directive.mjs +0 -34
  249. package/esm2022/src/app/shared/markdown/markdown.modal.mjs +0 -99
  250. package/esm2022/src/app/shared/markdown/markdown.module.mjs +0 -87
  251. package/esm2022/src/app/shared/markdown/markdown.service.mjs +0 -204
  252. package/esm2022/src/app/shared/markdown/markdown.utils.mjs +0 -87
  253. package/esm2022/src/app/shared/markdown/testing/markdown.test.mjs +0 -55
  254. package/esm2022/src/app/shared/markdown/testing/markdown.testing.module.mjs +0 -30
  255. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.config.mjs +0 -46
  256. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.mjs +0 -1356
  257. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +0 -81
  258. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.utils.mjs +0 -18
  259. package/esm2022/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +0 -242
  260. package/esm2022/src/app/shared/material/badge/badge.directive.mjs +0 -251
  261. package/esm2022/src/app/shared/material/badge/badge.module.mjs +0 -20
  262. package/esm2022/src/app/shared/material/badge/badge.test.mjs +0 -42
  263. package/esm2022/src/app/shared/material/boolean/boolean.module.mjs +0 -70
  264. package/esm2022/src/app/shared/material/boolean/material.boolean.mjs +0 -374
  265. package/esm2022/src/app/shared/material/boolean/testing/boolean.test.page.mjs +0 -83
  266. package/esm2022/src/app/shared/material/chips/chips.module.mjs +0 -74
  267. package/esm2022/src/app/shared/material/chips/material.chips.mjs +0 -843
  268. package/esm2022/src/app/shared/material/chips/testing/chips.test.mjs +0 -151
  269. package/esm2022/src/app/shared/material/datetime/datetime.module.mjs +0 -79
  270. package/esm2022/src/app/shared/material/datetime/material.date.mjs +0 -473
  271. package/esm2022/src/app/shared/material/datetime/material.dateshort.mjs +0 -457
  272. package/esm2022/src/app/shared/material/datetime/material.datetime.mjs +0 -850
  273. package/esm2022/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +0 -140
  274. package/esm2022/src/app/shared/material/datetime/testing/mat-date.test.mjs +0 -127
  275. package/esm2022/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +0 -118
  276. package/esm2022/src/app/shared/material/duration/duration.module.mjs +0 -61
  277. package/esm2022/src/app/shared/material/duration/duration.utils.mjs +0 -16
  278. package/esm2022/src/app/shared/material/duration/material.duration.mjs +0 -283
  279. package/esm2022/src/app/shared/material/duration/testing/mat-duration.test.mjs +0 -85
  280. package/esm2022/src/app/shared/material/latlong/latlong.utils.mjs +0 -319
  281. package/esm2022/src/app/shared/material/latlong/material.latlong-input.mjs +0 -471
  282. package/esm2022/src/app/shared/material/latlong/material.latlong.mjs +0 -231
  283. package/esm2022/src/app/shared/material/latlong/material.latlong.module.mjs +0 -68
  284. package/esm2022/src/app/shared/material/latlong/testing/latlong.test.mjs +0 -138
  285. package/esm2022/src/app/shared/material/material.animations.mjs +0 -200
  286. package/esm2022/src/app/shared/material/material.config.mjs +0 -3
  287. package/esm2022/src/app/shared/material/material.module.mjs +0 -224
  288. package/esm2022/src/app/shared/material/material.testing.module.mjs +0 -234
  289. package/esm2022/src/app/shared/material/paginator/material.paginator-i18n.mjs +0 -51
  290. package/esm2022/src/app/shared/material/stepper/material.stepper-i18n.mjs +0 -23
  291. package/esm2022/src/app/shared/material/swipe/material.swipe.mjs +0 -379
  292. package/esm2022/src/app/shared/material/swipe/swipe.module.mjs +0 -52
  293. package/esm2022/src/app/shared/material/swipe/testing/swipe.test.mjs +0 -67
  294. package/esm2022/src/app/shared/material/test/test-component.mjs +0 -264
  295. package/esm2022/src/app/shared/material/testing/common.test.mjs +0 -111
  296. package/esm2022/src/app/shared/modules.mjs +0 -12
  297. package/esm2022/src/app/shared/named-filter/named-filter-selector.component.mjs +0 -306
  298. package/esm2022/src/app/shared/named-filter/named-filter.model.mjs +0 -49
  299. package/esm2022/src/app/shared/named-filter/named-filter.module.mjs +0 -24
  300. package/esm2022/src/app/shared/named-filter/named-filter.service.mjs +0 -69
  301. package/esm2022/src/app/shared/named-filter/testing/named-filter-selector.testing.mjs +0 -74
  302. package/esm2022/src/app/shared/named-filter/testing/named-filter.testing.module.mjs +0 -28
  303. package/esm2022/src/app/shared/observables.mjs +0 -104
  304. package/esm2022/src/app/shared/pipes/arrays.pipe.mjs +0 -251
  305. package/esm2022/src/app/shared/pipes/badge.pipes.mjs +0 -25
  306. package/esm2022/src/app/shared/pipes/colors.pipe.mjs +0 -29
  307. package/esm2022/src/app/shared/pipes/date-diff-duration.pipe.mjs +0 -50
  308. package/esm2022/src/app/shared/pipes/date-format.pipe.mjs +0 -72
  309. package/esm2022/src/app/shared/pipes/date-from-now.pipe.mjs +0 -28
  310. package/esm2022/src/app/shared/pipes/date-from.pipe.mjs +0 -29
  311. package/esm2022/src/app/shared/pipes/dates.pipe.mjs +0 -18
  312. package/esm2022/src/app/shared/pipes/display-with.pipe.mjs +0 -23
  313. package/esm2022/src/app/shared/pipes/duration.pipe.mjs +0 -34
  314. package/esm2022/src/app/shared/pipes/file-size.pipe.mjs +0 -53
  315. package/esm2022/src/app/shared/pipes/form.pipes.mjs +0 -219
  316. package/esm2022/src/app/shared/pipes/highlight.pipe.mjs +0 -50
  317. package/esm2022/src/app/shared/pipes/html.pipes.mjs +0 -102
  318. package/esm2022/src/app/shared/pipes/latlong-format.pipe.mjs +0 -42
  319. package/esm2022/src/app/shared/pipes/maps.pipe.mjs +0 -65
  320. package/esm2022/src/app/shared/pipes/maskito.pipe.mjs +0 -67
  321. package/esm2022/src/app/shared/pipes/math.pipes.mjs +0 -77
  322. package/esm2022/src/app/shared/pipes/ng-init.pipe.mjs +0 -19
  323. package/esm2022/src/app/shared/pipes/number-format.pipe.mjs +0 -17
  324. package/esm2022/src/app/shared/pipes/observable.pipes.mjs +0 -63
  325. package/esm2022/src/app/shared/pipes/pipes.module.mjs +0 -304
  326. package/esm2022/src/app/shared/pipes/property.pipes.mjs +0 -148
  327. package/esm2022/src/app/shared/pipes/selection.pipes.mjs +0 -177
  328. package/esm2022/src/app/shared/pipes/string.pipes.mjs +0 -183
  329. package/esm2022/src/app/shared/pipes/translate-context.pipe.mjs +0 -44
  330. package/esm2022/src/app/shared/pipes/types.pipes.mjs +0 -74
  331. package/esm2022/src/app/shared/pipes/url.pipes.mjs +0 -35
  332. package/esm2022/src/app/shared/platforms.mjs +0 -81
  333. package/esm2022/src/app/shared/print/print.service.mjs +0 -305
  334. package/esm2022/src/app/shared/regexps.mjs +0 -103
  335. package/esm2022/src/app/shared/rx-state/rx-state.decorators.mjs +0 -193
  336. package/esm2022/src/app/shared/rx-state/rx-state.module.mjs +0 -19
  337. package/esm2022/src/app/shared/rx-state/rx-state.types.mjs +0 -2
  338. package/esm2022/src/app/shared/services/entity-service.class.mjs +0 -44
  339. package/esm2022/src/app/shared/services/job.utils.mjs +0 -92
  340. package/esm2022/src/app/shared/services/memory-entity-service.class.mjs +0 -362
  341. package/esm2022/src/app/shared/services/progress-bar.service.mjs +0 -31
  342. package/esm2022/src/app/shared/services/startable-observable-service.class.mjs +0 -144
  343. package/esm2022/src/app/shared/services/startable-service.class.mjs +0 -118
  344. package/esm2022/src/app/shared/services/translate-context.service.mjs +0 -107
  345. package/esm2022/src/app/shared/services/validator-service.class.mjs +0 -2
  346. package/esm2022/src/app/shared/services.mjs +0 -85
  347. package/esm2022/src/app/shared/shared-routing.module.mjs +0 -72
  348. package/esm2022/src/app/shared/shared.module.mjs +0 -229
  349. package/esm2022/src/app/shared/shared.testing.module.mjs +0 -108
  350. package/esm2022/src/app/shared/storage/storage-explorer.component.mjs +0 -281
  351. package/esm2022/src/app/shared/storage/storage-explorer.module.mjs +0 -42
  352. package/esm2022/src/app/shared/storage/storage-explorer.testing-routing.module.mjs +0 -27
  353. package/esm2022/src/app/shared/storage/storage-explorer.testing.module.mjs +0 -25
  354. package/esm2022/src/app/shared/storage/storage.service.mjs +0 -134
  355. package/esm2022/src/app/shared/storage/storage.utils.mjs +0 -13
  356. package/esm2022/src/app/shared/testing/maskito.test.mjs +0 -41
  357. package/esm2022/src/app/shared/testing/observable.test.mjs +0 -94
  358. package/esm2022/src/app/shared/testing/tests.page.mjs +0 -37
  359. package/esm2022/src/app/shared/toast/toast.testing.mjs +0 -54
  360. package/esm2022/src/app/shared/toast/toast.testing.module.mjs +0 -31
  361. package/esm2022/src/app/shared/toast/toasts.mjs +0 -134
  362. package/esm2022/src/app/shared/toolbar/modal-toolbar.mjs +0 -62
  363. package/esm2022/src/app/shared/toolbar/toolbar.mjs +0 -272
  364. package/esm2022/src/app/shared/toolbar/toolbar.module.mjs +0 -26
  365. package/esm2022/src/app/shared/types.mjs +0 -2
  366. package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.mjs +0 -59
  367. package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +0 -30
  368. package/esm2022/src/app/shared/upload-file/upload-file-popover.component.mjs +0 -108
  369. package/esm2022/src/app/shared/upload-file/upload-file.component.mjs +0 -216
  370. package/esm2022/src/app/shared/upload-file/upload-file.model.mjs +0 -26
  371. package/esm2022/src/app/shared/validator/form-error-adapter.class.mjs +0 -122
  372. package/esm2022/src/app/shared/validator/validators.mjs +0 -658
  373. package/esm2022/src/app/shared/version/versions.mjs +0 -81
  374. package/esm2022/src/app/social/config/social.config.mjs +0 -9
  375. package/esm2022/src/app/social/feed/feed.component.mjs +0 -317
  376. package/esm2022/src/app/social/feed/feed.directive.mjs +0 -151
  377. package/esm2022/src/app/social/feed/feed.model.mjs +0 -60
  378. package/esm2022/src/app/social/feed/feed.module.mjs +0 -24
  379. package/esm2022/src/app/social/feed/feed.page.mjs +0 -67
  380. package/esm2022/src/app/social/feed/feed.service.mjs +0 -222
  381. package/esm2022/src/app/social/feed/testing/feed.testing.mjs +0 -66
  382. package/esm2022/src/app/social/feed/testing/feed.testing.module.mjs +0 -23
  383. package/esm2022/src/app/social/job/job.module.mjs +0 -23
  384. package/esm2022/src/app/social/job/progression/job-progression.component.mjs +0 -38
  385. package/esm2022/src/app/social/job/progression/job-progression.icon.mjs +0 -241
  386. package/esm2022/src/app/social/job/progression/job-progression.list.mjs +0 -50
  387. package/esm2022/src/app/social/job/progression/job-progression.model.mjs +0 -29
  388. package/esm2022/src/app/social/job/progression/job-progression.service.mjs +0 -91
  389. package/esm2022/src/app/social/job/testing/job-progression.testing.mjs +0 -38
  390. package/esm2022/src/app/social/job/testing/job-progression.testing.service.mjs +0 -34
  391. package/esm2022/src/app/social/job/testing/job.testing.module.mjs +0 -22
  392. package/esm2022/src/app/social/message/message.form.mjs +0 -149
  393. package/esm2022/src/app/social/message/message.modal.mjs +0 -116
  394. package/esm2022/src/app/social/message/message.model.mjs +0 -86
  395. package/esm2022/src/app/social/message/message.module.mjs +0 -25
  396. package/esm2022/src/app/social/message/message.service.mjs +0 -198
  397. package/esm2022/src/app/social/social.errors.mjs +0 -11
  398. package/esm2022/src/app/social/social.module.mjs +0 -22
  399. package/esm2022/src/app/social/social.testing.module.mjs +0 -72
  400. package/esm2022/src/app/social/user-event/notification/user-event-notification.icon.mjs +0 -191
  401. package/esm2022/src/app/social/user-event/notification/user-event-notification.list.mjs +0 -280
  402. package/esm2022/src/app/social/user-event/notification/user-event-notification.modal.mjs +0 -84
  403. package/esm2022/src/app/social/user-event/testing/user-event.testing.mjs +0 -273
  404. package/esm2022/src/app/social/user-event/testing/user-event.testing.model.mjs +0 -129
  405. package/esm2022/src/app/social/user-event/testing/user-event.testing.module.mjs +0 -22
  406. package/esm2022/src/app/social/user-event/testing/user-event.testing.service.mjs +0 -128
  407. package/esm2022/src/app/social/user-event/user-event.model.mjs +0 -2
  408. package/esm2022/src/app/social/user-event/user-event.module.mjs +0 -24
  409. package/esm2022/src/app/social/user-event/user-event.service.mjs +0 -512
  410. package/esm2022/src/environments/environment.class.mjs +0 -69
  411. package/esm2022/src/environments/environment.loader.mjs +0 -77
  412. package/esm2022/src/environments/environment.mjs +0 -133
  413. package/esm2022/sumaris-net.ngx-components.mjs +0 -5
  414. package/index.d.ts +0 -5
  415. package/public_api.d.ts +0 -364
  416. package/src/app/admin/admin-routing.module.d.ts +0 -9
  417. package/src/app/admin/admin.module.d.ts +0 -10
  418. package/src/app/admin/users/person.filter.d.ts +0 -37
  419. package/src/app/admin/users/person.service.d.ts +0 -61
  420. package/src/app/admin/users/person.validator.d.ts +0 -23
  421. package/src/app/admin/users/users-select.modal.d.ts +0 -73
  422. package/src/app/admin/users/users.d.ts +0 -89
  423. package/src/app/admin/users/users.module.d.ts +0 -15
  424. package/src/app/admin/users/users.utils.d.ts +0 -6
  425. package/src/app/core/about/about.modal.d.ts +0 -44
  426. package/src/app/core/about/about.module.d.ts +0 -11
  427. package/src/app/core/account/account.module.d.ts +0 -18
  428. package/src/app/core/account/account.page.d.ts +0 -93
  429. package/src/app/core/account/new-token.form.d.ts +0 -30
  430. package/src/app/core/account/new-token.modal.d.ts +0 -29
  431. package/src/app/core/account/password/change-password.form.d.ts +0 -19
  432. package/src/app/core/account/password/change-password.module.d.ts +0 -11
  433. package/src/app/core/account/password/change-password.page.d.ts +0 -36
  434. package/src/app/core/account/token.table.d.ts +0 -28
  435. package/src/app/core/auth/auth.form.d.ts +0 -38
  436. package/src/app/core/auth/auth.modal.d.ts +0 -24
  437. package/src/app/core/auth/auth.module.d.ts +0 -13
  438. package/src/app/core/auth/reset-password.modal.d.ts +0 -29
  439. package/src/app/core/core.module.d.ts +0 -28
  440. package/src/app/core/core.testing.module.d.ts +0 -16
  441. package/src/app/core/form/array/form-array.d.ts +0 -147
  442. package/src/app/core/form/array/testing/form-array-test.module.d.ts +0 -12
  443. package/src/app/core/form/array/testing/form-array.test.d.ts +0 -27
  444. package/src/app/core/form/buttons/form-buttons-bar.component.d.ts +0 -38
  445. package/src/app/core/form/buttons/form-buttons-bar.module.d.ts +0 -9
  446. package/src/app/core/form/entity/editor.class.d.ts +0 -85
  447. package/src/app/core/form/entity/entity-editor-modal.class.d.ts +0 -126
  448. package/src/app/core/form/entity/entity-editor.class.d.ts +0 -211
  449. package/src/app/core/form/entity/entity-metadata.component.d.ts +0 -13
  450. package/src/app/core/form/entity/entity.module.d.ts +0 -11
  451. package/src/app/core/form/entity/tab-editor.class.d.ts +0 -66
  452. package/src/app/core/form/form-container.class.d.ts +0 -131
  453. package/src/app/core/form/form.class.d.ts +0 -148
  454. package/src/app/core/form/form.module.d.ts +0 -15
  455. package/src/app/core/form/form.utils.d.ts +0 -301
  456. package/src/app/core/form/list/list.form.d.ts +0 -83
  457. package/src/app/core/form/list/list.module.d.ts +0 -9
  458. package/src/app/core/form/properties/properties-file.service.d.ts +0 -26
  459. package/src/app/core/form/properties/properties.form.d.ts +0 -109
  460. package/src/app/core/form/properties/properties.module.d.ts +0 -18
  461. package/src/app/core/form/properties/properties.table.d.ts +0 -73
  462. package/src/app/core/form/properties/properties.utils.d.ts +0 -59
  463. package/src/app/core/form/properties/property.validator.d.ts +0 -27
  464. package/src/app/core/form/properties/testing/properties-form.test.d.ts +0 -22
  465. package/src/app/core/form/properties/testing/properties-form.testing.module.d.ts +0 -12
  466. package/src/app/core/form/text/testing/text-form.testing.d.ts +0 -19
  467. package/src/app/core/form/text/testing/text-form.testing.module.d.ts +0 -14
  468. package/src/app/core/form/text/text-form.component.d.ts +0 -66
  469. package/src/app/core/form/text/text-form.module.d.ts +0 -9
  470. package/src/app/core/form/text-popover/testing/text-popover.testing.d.ts +0 -16
  471. package/src/app/core/form/text-popover/testing/text-popover.testing.module.d.ts +0 -11
  472. package/src/app/core/form/text-popover/text-popover.component.d.ts +0 -81
  473. package/src/app/core/form/text-popover/text-popover.module.d.ts +0 -10
  474. package/src/app/core/form/username/username.form.d.ts +0 -19
  475. package/src/app/core/form/username/username.module.d.ts +0 -9
  476. package/src/app/core/graphql/graphql.module.d.ts +0 -7
  477. package/src/app/core/graphql/graphql.service.d.ts +0 -138
  478. package/src/app/core/graphql/graphql.utils.d.ts +0 -47
  479. package/src/app/core/home/home.d.ts +0 -135
  480. package/src/app/core/home/home.module.d.ts +0 -16
  481. package/src/app/core/icon/icon.component.d.ts +0 -13
  482. package/src/app/core/icon/icon.module.d.ts +0 -9
  483. package/src/app/core/install/install-upgrade-card.component.d.ts +0 -63
  484. package/src/app/core/install/install-upgrade-card.module.d.ts +0 -9
  485. package/src/app/core/menu/menu.component.d.ts +0 -69
  486. package/src/app/core/menu/menu.model.d.ts +0 -161
  487. package/src/app/core/menu/menu.module.d.ts +0 -12
  488. package/src/app/core/menu/menu.service.d.ts +0 -93
  489. package/src/app/core/menu/sub-menu-tab.directive.d.ts +0 -29
  490. package/src/app/core/menu/testing/menu-other.testing.d.ts +0 -15
  491. package/src/app/core/menu/testing/menu.testing.d.ts +0 -53
  492. package/src/app/core/menu/testing/menu.testing.module.d.ts +0 -12
  493. package/src/app/core/offline/update-offline-mode-card.component.d.ts +0 -11
  494. package/src/app/core/offline/update-offline-mode-card.module.d.ts +0 -9
  495. package/src/app/core/peer/select-peer.modal.d.ts +0 -108
  496. package/src/app/core/peer/select-peer.module.d.ts +0 -12
  497. package/src/app/core/register/register-confirm.page.d.ts +0 -24
  498. package/src/app/core/register/register.form.d.ts +0 -49
  499. package/src/app/core/register/register.modal.d.ts +0 -14
  500. package/src/app/core/register/register.module.d.ts +0 -12
  501. package/src/app/core/services/account.service.d.ts +0 -236
  502. package/src/app/core/services/auth-guard.service.d.ts +0 -17
  503. package/src/app/core/services/base-entity-service.class.d.ts +0 -134
  504. package/src/app/core/services/base-graphql-service.class.d.ts +0 -77
  505. package/src/app/core/services/base58.d.ts +0 -7
  506. package/src/app/core/services/config/core.config.d.ts +0 -52
  507. package/src/app/core/services/config.service.d.ts +0 -63
  508. package/src/app/core/services/crypto.service.d.ts +0 -44
  509. package/src/app/core/services/errors.d.ts +0 -65
  510. package/src/app/core/services/local-settings.service.d.ts +0 -130
  511. package/src/app/core/services/model/account.model.d.ts +0 -66
  512. package/src/app/core/services/model/config.model.d.ts +0 -37
  513. package/src/app/core/services/model/department.model.d.ts +0 -11
  514. package/src/app/core/services/model/entity.decorators.d.ts +0 -17
  515. package/src/app/core/services/model/entity.model.d.ts +0 -133
  516. package/src/app/core/services/model/filter.model.d.ts +0 -37
  517. package/src/app/core/services/model/history.model.d.ts +0 -20
  518. package/src/app/core/services/model/model.enum.d.ts +0 -7
  519. package/src/app/core/services/model/node-feature.model.d.ts +0 -14
  520. package/src/app/core/services/model/peer.model.d.ts +0 -35
  521. package/src/app/core/services/model/person.model.d.ts +0 -39
  522. package/src/app/core/services/model/referential.model.d.ts +0 -85
  523. package/src/app/core/services/model/settings.model.d.ts +0 -29
  524. package/src/app/core/services/model/token.model.d.ts +0 -22
  525. package/src/app/core/services/model/tree-item-entity.model.d.ts +0 -62
  526. package/src/app/core/services/network.service.d.ts +0 -184
  527. package/src/app/core/services/network.types.d.ts +0 -4
  528. package/src/app/core/services/network.utils.d.ts +0 -39
  529. package/src/app/core/services/pipes/account.pipes.d.ts +0 -15
  530. package/src/app/core/services/pipes/department-to-string.pipe.d.ts +0 -9
  531. package/src/app/core/services/pipes/person-to-string.pipe.d.ts +0 -11
  532. package/src/app/core/services/pipes/pipes.module.d.ts +0 -11
  533. package/src/app/core/services/pipes/referential-to-string.pipe.d.ts +0 -23
  534. package/src/app/core/services/pipes/usage-mode.pipes.d.ts +0 -15
  535. package/src/app/core/services/platform.service.d.ts +0 -126
  536. package/src/app/core/services/storage/entities-storage.service.d.ts +0 -108
  537. package/src/app/core/services/storage/entity-store.class.d.ts +0 -113
  538. package/src/app/core/services/testing/referential-filter.model.d.ts +0 -9
  539. package/src/app/core/services/testing/referential.validator.d.ts +0 -22
  540. package/src/app/core/services/validator/account.validator.d.ts +0 -24
  541. package/src/app/core/services/validator/base.validator.class.d.ts +0 -21
  542. package/src/app/core/services/validator/local-settings.validator.d.ts +0 -18
  543. package/src/app/core/services/validator/user-settings.validator.d.ts +0 -10
  544. package/src/app/core/services/validator/user-token.validator.d.ts +0 -13
  545. package/src/app/core/settings/settings.module.d.ts +0 -12
  546. package/src/app/core/settings/settings.page.d.ts +0 -89
  547. package/src/app/core/table/async-table.class.d.ts +0 -443
  548. package/src/app/core/table/column/actions-column.component.d.ts +0 -65
  549. package/src/app/core/table/column/nav-actions-column.component.d.ts +0 -47
  550. package/src/app/core/table/column/row-field.component.d.ts +0 -41
  551. package/src/app/core/table/entities-async-table-datasource.class.d.ts +0 -103
  552. package/src/app/core/table/entities-table-datasource.class.d.ts +0 -102
  553. package/src/app/core/table/memory-table.class.d.ts +0 -25
  554. package/src/app/core/table/table-select-columns.component.d.ts +0 -22
  555. package/src/app/core/table/table.class.d.ts +0 -427
  556. package/src/app/core/table/table.model.d.ts +0 -31
  557. package/src/app/core/table/table.module.d.ts +0 -14
  558. package/src/app/core/table/table.pipes.d.ts +0 -30
  559. package/src/app/core/table/table.utils.d.ts +0 -13
  560. package/src/app/core/table/testing/nested-table.testing.d.ts +0 -54
  561. package/src/app/core/table/testing/table-validator.service.d.ts +0 -17
  562. package/src/app/core/table/testing/table.testing.d.ts +0 -55
  563. package/src/app/core/table/testing/table.testing.module.d.ts +0 -17
  564. package/src/app/core/table/testing/table2-validator.service.d.ts +0 -15
  565. package/src/app/core/table/testing/table2.testing.d.ts +0 -53
  566. package/src/app/shared/alerts.d.ts +0 -55
  567. package/src/app/shared/audio/audio.d.ts +0 -45
  568. package/src/app/shared/audio/audio.testing.d.ts +0 -13
  569. package/src/app/shared/audio/audio.testing.module.d.ts +0 -11
  570. package/src/app/shared/base64.utils.d.ts +0 -7
  571. package/src/app/shared/capacitor/keyboard.d.ts +0 -16
  572. package/src/app/shared/capacitor/plugins.d.ts +0 -8
  573. package/src/app/shared/constants.d.ts +0 -15
  574. package/src/app/shared/dates.d.ts +0 -85
  575. package/src/app/shared/debug/debug-service.class.d.ts +0 -5
  576. package/src/app/shared/debug/debug.component.d.ts +0 -14
  577. package/src/app/shared/debug/debug.module.d.ts +0 -12
  578. package/src/app/shared/directives/autofocus.directive.d.ts +0 -18
  579. package/src/app/shared/directives/autoresize.directive.d.ts +0 -20
  580. package/src/app/shared/directives/autotitle.directive.d.ts +0 -11
  581. package/src/app/shared/directives/autotooltip.directive.d.ts +0 -14
  582. package/src/app/shared/directives/cell-selection/cell-identifier.directive.d.ts +0 -17
  583. package/src/app/shared/directives/cell-selection/cell-selection.directive.d.ts +0 -29
  584. package/src/app/shared/directives/cell-selection/cell-selection.service.d.ts +0 -67
  585. package/src/app/shared/directives/directives.module.d.ts +0 -15
  586. package/src/app/shared/directives/drag-and-drop.directive.d.ts +0 -17
  587. package/src/app/shared/directives/ng-var.directive.d.ts +0 -12
  588. package/src/app/shared/directives/resizable/resizable.component.d.ts +0 -21
  589. package/src/app/shared/directives/resizable/resizable.directive.d.ts +0 -24
  590. package/src/app/shared/directives/resizable/resizable.module.d.ts +0 -8
  591. package/src/app/shared/directives/throttled-click.directive.d.ts +0 -16
  592. package/src/app/shared/events.d.ts +0 -29
  593. package/src/app/shared/file/csv.utils.d.ts +0 -30
  594. package/src/app/shared/file/file.service.d.ts +0 -23
  595. package/src/app/shared/file/file.utils.d.ts +0 -20
  596. package/src/app/shared/file/images.utils.d.ts +0 -36
  597. package/src/app/shared/file/json.utils.d.ts +0 -19
  598. package/src/app/shared/file/uri.utils.d.ts +0 -8
  599. package/src/app/shared/file/url.utils.d.ts +0 -108
  600. package/src/app/shared/focusable.d.ts +0 -4
  601. package/src/app/shared/form/field.component.d.ts +0 -83
  602. package/src/app/shared/form/field.model.d.ts +0 -88
  603. package/src/app/shared/form/loading-spinner.d.ts +0 -8
  604. package/src/app/shared/forms.d.ts +0 -170
  605. package/src/app/shared/functions.d.ts +0 -296
  606. package/src/app/shared/geolocation/geolocation.utils.d.ts +0 -25
  607. package/src/app/shared/gesture/gesture-config.d.ts +0 -15
  608. package/src/app/shared/gesture/hammer.utils.d.ts +0 -16
  609. package/src/app/shared/graph/colors.utils.d.ts +0 -34
  610. package/src/app/shared/graph/graph-colors.d.ts +0 -63
  611. package/src/app/shared/guard/component-dirty.guard.d.ts +0 -14
  612. package/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.d.ts +0 -8
  613. package/src/app/shared/hotkeys/hotkeys.service.d.ts +0 -48
  614. package/src/app/shared/hotkeys/shared-hotkeys.module.d.ts +0 -11
  615. package/src/app/shared/html.utils.d.ts +0 -17
  616. package/src/app/shared/http/http.utils.d.ts +0 -28
  617. package/src/app/shared/image/gallery/image-gallery.component.d.ts +0 -139
  618. package/src/app/shared/image/gallery/image-gallery.module.d.ts +0 -15
  619. package/src/app/shared/image/gallery/testing/gallegry.model.testing.d.ts +0 -12
  620. package/src/app/shared/image/gallery/testing/gallery.service.testing.d.ts +0 -33
  621. package/src/app/shared/image/gallery/testing/gallery.testing.d.ts +0 -16
  622. package/src/app/shared/image/gallery/testing/gallery.testing.module.d.ts +0 -13
  623. package/src/app/shared/image/image.model.d.ts +0 -7
  624. package/src/app/shared/image/image.module.d.ts +0 -8
  625. package/src/app/shared/image/image.service.d.ts +0 -37
  626. package/src/app/shared/inputs.d.ts +0 -37
  627. package/src/app/shared/interceptors/progess.interceptor.d.ts +0 -8
  628. package/src/app/shared/logging/log-level.model.d.ts +0 -38
  629. package/src/app/shared/logging/logger.model.d.ts +0 -68
  630. package/src/app/shared/logging/logging-service.class.d.ts +0 -39
  631. package/src/app/shared/logging/logging-service.config.d.ts +0 -25
  632. package/src/app/shared/logging/logging-service.module.d.ts +0 -9
  633. package/src/app/shared/markdown/markdown.component.d.ts +0 -86
  634. package/src/app/shared/markdown/markdown.directive.d.ts +0 -13
  635. package/src/app/shared/markdown/markdown.modal.d.ts +0 -49
  636. package/src/app/shared/markdown/markdown.module.d.ts +0 -17
  637. package/src/app/shared/markdown/markdown.service.d.ts +0 -37
  638. package/src/app/shared/markdown/markdown.utils.d.ts +0 -26
  639. package/src/app/shared/markdown/testing/markdown.test.d.ts +0 -18
  640. package/src/app/shared/markdown/testing/markdown.testing.module.d.ts +0 -12
  641. package/src/app/shared/material/autocomplete/material.autocomplete.config.d.ts +0 -74
  642. package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +0 -224
  643. package/src/app/shared/material/autocomplete/material.autocomplete.module.d.ts +0 -23
  644. package/src/app/shared/material/autocomplete/material.autocomplete.utils.d.ts +0 -5
  645. package/src/app/shared/material/autocomplete/testing/autocomplete.test.d.ts +0 -48
  646. package/src/app/shared/material/badge/badge.directive.d.ts +0 -43
  647. package/src/app/shared/material/badge/badge.module.d.ts +0 -10
  648. package/src/app/shared/material/badge/badge.test.d.ts +0 -21
  649. package/src/app/shared/material/boolean/boolean.module.d.ts +0 -21
  650. package/src/app/shared/material/boolean/material.boolean.d.ts +0 -94
  651. package/src/app/shared/material/boolean/testing/boolean.test.page.d.ts +0 -31
  652. package/src/app/shared/material/chips/chips.module.d.ts +0 -22
  653. package/src/app/shared/material/chips/material.chips.d.ts +0 -167
  654. package/src/app/shared/material/chips/testing/chips.test.d.ts +0 -32
  655. package/src/app/shared/material/datetime/datetime.module.d.ts +0 -25
  656. package/src/app/shared/material/datetime/material.date.d.ts +0 -90
  657. package/src/app/shared/material/datetime/material.dateshort.d.ts +0 -89
  658. package/src/app/shared/material/datetime/material.datetime.d.ts +0 -136
  659. package/src/app/shared/material/datetime/testing/mat-date-time.test.d.ts +0 -38
  660. package/src/app/shared/material/datetime/testing/mat-date.test.d.ts +0 -32
  661. package/src/app/shared/material/datetime/testing/mat-dateshort.test.d.ts +0 -31
  662. package/src/app/shared/material/duration/duration.module.d.ts +0 -18
  663. package/src/app/shared/material/duration/duration.utils.d.ts +0 -2
  664. package/src/app/shared/material/duration/material.duration.d.ts +0 -64
  665. package/src/app/shared/material/duration/testing/mat-duration.test.d.ts +0 -23
  666. package/src/app/shared/material/latlong/latlong.utils.d.ts +0 -59
  667. package/src/app/shared/material/latlong/material.latlong-input.d.ts +0 -93
  668. package/src/app/shared/material/latlong/material.latlong.d.ts +0 -90
  669. package/src/app/shared/material/latlong/material.latlong.module.d.ts +0 -21
  670. package/src/app/shared/material/latlong/testing/latlong.test.d.ts +0 -30
  671. package/src/app/shared/material/material.animations.d.ts +0 -8
  672. package/src/app/shared/material/material.config.d.ts +0 -3
  673. package/src/app/shared/material/material.module.d.ts +0 -44
  674. package/src/app/shared/material/material.testing.module.d.ts +0 -31
  675. package/src/app/shared/material/paginator/material.paginator-i18n.d.ts +0 -12
  676. package/src/app/shared/material/stepper/material.stepper-i18n.d.ts +0 -10
  677. package/src/app/shared/material/swipe/material.swipe.d.ts +0 -89
  678. package/src/app/shared/material/swipe/swipe.module.d.ts +0 -16
  679. package/src/app/shared/material/swipe/testing/swipe.test.d.ts +0 -22
  680. package/src/app/shared/material/test/test-component.d.ts +0 -75
  681. package/src/app/shared/material/testing/common.test.d.ts +0 -25
  682. package/src/app/shared/modules.d.ts +0 -9
  683. package/src/app/shared/named-filter/named-filter-selector.component.d.ts +0 -63
  684. package/src/app/shared/named-filter/named-filter.model.d.ts +0 -32
  685. package/src/app/shared/named-filter/named-filter.module.d.ts +0 -13
  686. package/src/app/shared/named-filter/named-filter.service.d.ts +0 -32
  687. package/src/app/shared/named-filter/testing/named-filter-selector.testing.d.ts +0 -34
  688. package/src/app/shared/named-filter/testing/named-filter.testing.module.d.ts +0 -10
  689. package/src/app/shared/observables.d.ts +0 -32
  690. package/src/app/shared/pipes/arrays.pipe.d.ts +0 -93
  691. package/src/app/shared/pipes/badge.pipes.d.ts +0 -7
  692. package/src/app/shared/pipes/colors.pipe.d.ts +0 -9
  693. package/src/app/shared/pipes/date-diff-duration.pipe.d.ts +0 -25
  694. package/src/app/shared/pipes/date-format.pipe.d.ts +0 -35
  695. package/src/app/shared/pipes/date-from-now.pipe.d.ts +0 -14
  696. package/src/app/shared/pipes/date-from.pipe.d.ts +0 -14
  697. package/src/app/shared/pipes/dates.pipe.d.ts +0 -10
  698. package/src/app/shared/pipes/display-with.pipe.d.ts +0 -8
  699. package/src/app/shared/pipes/duration.pipe.d.ts +0 -23
  700. package/src/app/shared/pipes/file-size.pipe.d.ts +0 -30
  701. package/src/app/shared/pipes/form.pipes.d.ts +0 -69
  702. package/src/app/shared/pipes/highlight.pipe.d.ts +0 -11
  703. package/src/app/shared/pipes/html.pipes.d.ts +0 -50
  704. package/src/app/shared/pipes/latlong-format.pipe.d.ts +0 -20
  705. package/src/app/shared/pipes/maps.pipe.d.ts +0 -23
  706. package/src/app/shared/pipes/maskito.pipe.d.ts +0 -14
  707. package/src/app/shared/pipes/math.pipes.d.ts +0 -26
  708. package/src/app/shared/pipes/ng-init.pipe.d.ts +0 -8
  709. package/src/app/shared/pipes/number-format.pipe.d.ts +0 -9
  710. package/src/app/shared/pipes/observable.pipes.d.ts +0 -25
  711. package/src/app/shared/pipes/pipes.module.d.ts +0 -36
  712. package/src/app/shared/pipes/property.pipes.d.ts +0 -46
  713. package/src/app/shared/pipes/selection.pipes.d.ts +0 -62
  714. package/src/app/shared/pipes/string.pipes.d.ts +0 -67
  715. package/src/app/shared/pipes/translate-context.pipe.d.ts +0 -17
  716. package/src/app/shared/pipes/types.pipes.d.ts +0 -30
  717. package/src/app/shared/pipes/url.pipes.d.ts +0 -27
  718. package/src/app/shared/platforms.d.ts +0 -16
  719. package/src/app/shared/print/print.service.d.ts +0 -94
  720. package/src/app/shared/regexps.d.ts +0 -32
  721. package/src/app/shared/rx-state/rx-state.decorators.d.ts +0 -33
  722. package/src/app/shared/rx-state/rx-state.module.d.ts +0 -10
  723. package/src/app/shared/rx-state/rx-state.types.d.ts +0 -5
  724. package/src/app/shared/services/entity-service.class.d.ts +0 -117
  725. package/src/app/shared/services/job.utils.d.ts +0 -20
  726. package/src/app/shared/services/memory-entity-service.class.d.ts +0 -87
  727. package/src/app/shared/services/progress-bar.service.d.ts +0 -20
  728. package/src/app/shared/services/startable-observable-service.class.d.ts +0 -51
  729. package/src/app/shared/services/startable-service.class.d.ts +0 -38
  730. package/src/app/shared/services/translate-context.service.d.ts +0 -29
  731. package/src/app/shared/services/validator-service.class.d.ts +0 -11
  732. package/src/app/shared/services.d.ts +0 -17
  733. package/src/app/shared/shared-routing.module.d.ts +0 -23
  734. package/src/app/shared/shared.module.d.ts +0 -33
  735. package/src/app/shared/shared.testing.module.d.ts +0 -20
  736. package/src/app/shared/storage/storage-explorer.component.d.ts +0 -60
  737. package/src/app/shared/storage/storage-explorer.module.d.ts +0 -13
  738. package/src/app/shared/storage/storage-explorer.testing-routing.module.d.ts +0 -9
  739. package/src/app/shared/storage/storage-explorer.testing.module.d.ts +0 -10
  740. package/src/app/shared/storage/storage.service.d.ts +0 -22
  741. package/src/app/shared/storage/storage.utils.d.ts +0 -19
  742. package/src/app/shared/testing/maskito.test.d.ts +0 -10
  743. package/src/app/shared/testing/observable.test.d.ts +0 -25
  744. package/src/app/shared/testing/tests.page.d.ts +0 -20
  745. package/src/app/shared/toast/toast.testing.d.ts +0 -15
  746. package/src/app/shared/toast/toast.testing.module.d.ts +0 -12
  747. package/src/app/shared/toast/toasts.d.ts +0 -16
  748. package/src/app/shared/toolbar/modal-toolbar.d.ts +0 -21
  749. package/src/app/shared/toolbar/toolbar.d.ts +0 -70
  750. package/src/app/shared/toolbar/toolbar.module.d.ts +0 -16
  751. package/src/app/shared/types.d.ts +0 -45
  752. package/src/app/shared/upload-file/testing/upload-file.testing.d.ts +0 -21
  753. package/src/app/shared/upload-file/testing/upload-file.testing.module.d.ts +0 -11
  754. package/src/app/shared/upload-file/upload-file-popover.component.d.ts +0 -41
  755. package/src/app/shared/upload-file/upload-file.component.d.ts +0 -50
  756. package/src/app/shared/upload-file/upload-file.model.d.ts +0 -30
  757. package/src/app/shared/validator/form-error-adapter.class.d.ts +0 -33
  758. package/src/app/shared/validator/validators.d.ts +0 -145
  759. package/src/app/shared/version/versions.d.ts +0 -26
  760. package/src/app/social/config/social.config.d.ts +0 -4
  761. package/src/app/social/feed/feed.component.d.ts +0 -91
  762. package/src/app/social/feed/feed.directive.d.ts +0 -32
  763. package/src/app/social/feed/feed.model.d.ts +0 -69
  764. package/src/app/social/feed/feed.module.d.ts +0 -13
  765. package/src/app/social/feed/feed.page.d.ts +0 -24
  766. package/src/app/social/feed/feed.service.d.ts +0 -85
  767. package/src/app/social/feed/testing/feed.testing.d.ts +0 -23
  768. package/src/app/social/feed/testing/feed.testing.module.d.ts +0 -12
  769. package/src/app/social/job/job.module.d.ts +0 -12
  770. package/src/app/social/job/progression/job-progression.component.d.ts +0 -24
  771. package/src/app/social/job/progression/job-progression.icon.d.ts +0 -63
  772. package/src/app/social/job/progression/job-progression.list.d.ts +0 -20
  773. package/src/app/social/job/progression/job-progression.model.d.ts +0 -10
  774. package/src/app/social/job/progression/job-progression.service.d.ts +0 -33
  775. package/src/app/social/job/testing/job-progression.testing.d.ts +0 -13
  776. package/src/app/social/job/testing/job-progression.testing.service.d.ts +0 -9
  777. package/src/app/social/job/testing/job.testing.module.d.ts +0 -11
  778. package/src/app/social/message/message.form.d.ts +0 -36
  779. package/src/app/social/message/message.modal.d.ts +0 -47
  780. package/src/app/social/message/message.model.d.ts +0 -36
  781. package/src/app/social/message/message.module.d.ts +0 -14
  782. package/src/app/social/message/message.service.d.ts +0 -44
  783. package/src/app/social/social.errors.d.ts +0 -10
  784. package/src/app/social/social.module.d.ts +0 -20
  785. package/src/app/social/social.testing.module.d.ts +0 -14
  786. package/src/app/social/user-event/notification/user-event-notification.icon.d.ts +0 -47
  787. package/src/app/social/user-event/notification/user-event-notification.list.d.ts +0 -77
  788. package/src/app/social/user-event/notification/user-event-notification.modal.d.ts +0 -37
  789. package/src/app/social/user-event/testing/user-event.testing.d.ts +0 -44
  790. package/src/app/social/user-event/testing/user-event.testing.model.d.ts +0 -42
  791. package/src/app/social/user-event/testing/user-event.testing.module.d.ts +0 -11
  792. package/src/app/social/user-event/testing/user-event.testing.service.d.ts +0 -41
  793. package/src/app/social/user-event/user-event.model.d.ts +0 -44
  794. package/src/app/social/user-event/user-event.module.d.ts +0 -14
  795. package/src/app/social/user-event/user-event.service.d.ts +0 -124
  796. package/src/environments/environment.class.d.ts +0 -86
  797. package/src/environments/environment.d.ts +0 -2
  798. package/src/environments/environment.loader.d.ts +0 -24
  799. package/src/theme/_globals.scss +0 -5
@@ -1,384 +0,0 @@
1
- import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';
2
- import { gql } from 'apollo-angular';
3
- import { Configuration } from './model/config.model';
4
- import { BehaviorSubject, Subject } from 'rxjs';
5
- import { ErrorCodes } from './errors';
6
- import { isNotEmptyArray, isNotNil } from '../../shared/functions';
7
- import { CORE_CONFIG_OPTIONS } from './config/core.config';
8
- import { Toasts } from '../../shared/toast/toasts';
9
- import { filter } from 'rxjs/operators';
10
- import { ENVIRONMENT } from '../../../environments/environment.class';
11
- import { BaseGraphqlService } from './base-graphql-service.class';
12
- import { isMobile } from '../../shared/platforms';
13
- import { ImagesUtils } from '../../shared/file/images.utils';
14
- import * as i0 from "@angular/core";
15
- import * as i1 from "@ionic/angular";
16
- import * as i2 from "../graphql/graphql.service";
17
- import * as i3 from "@ionic/storage-angular";
18
- import * as i4 from "./network.service";
19
- import * as i5 from "../../shared/file/file.service";
20
- import * as i6 from "@ngx-translate/core";
21
- import * as i7 from "./account.service";
22
- import * as i8 from "../../../environments/environment.class";
23
- const CONFIGURATION_STORAGE_KEY = 'configuration';
24
- /* ------------------------------------
25
- * GraphQL queries
26
- * ------------------------------------*/
27
- export const ConfigFragments = {
28
- config: gql `
29
- fragment ConfigFragment on ConfigurationVO {
30
- id
31
- label
32
- name
33
- description
34
- comments
35
- properties
36
- smallLogo
37
- largeLogo
38
- backgroundImages
39
- partners {
40
- id
41
- label
42
- name
43
- logo
44
- siteUrl
45
- __typename
46
- }
47
- updateDate
48
- creationDate
49
- statusId
50
- __typename
51
- }
52
- `,
53
- };
54
- const ConfigQueries = {
55
- load: gql `
56
- query Configuration {
57
- data: configuration {
58
- ...ConfigFragment
59
- }
60
- }
61
- ${ConfigFragments.config}
62
- `,
63
- };
64
- // Save (create or update) account mutation
65
- const ConfigMutations = {
66
- save: gql `
67
- mutation SaveConfiguration($data: ConfigurationVOInput) {
68
- data: saveConfiguration(config: $data) {
69
- ...ConfigFragment
70
- }
71
- }
72
- ${ConfigFragments.config}
73
- `,
74
- };
75
- const ClearCache = gql `
76
- query ClearCache($name: String) {
77
- clearCache(name: $name)
78
- }
79
- `;
80
- const CacheStatistics = gql `
81
- query CacheStatistics {
82
- cacheStatistics
83
- }
84
- `;
85
- export const APP_CONFIG_OPTIONS = new InjectionToken('defaultOptions');
86
- export class ConfigService extends BaseGraphqlService {
87
- platform;
88
- graphql;
89
- storage;
90
- network;
91
- file;
92
- toastController;
93
- translate;
94
- accountService;
95
- environment;
96
- _optionDefs;
97
- $data = new BehaviorSubject(null);
98
- get config() {
99
- // If first call: start loading
100
- if (!this.started)
101
- this.start();
102
- return this.$data.pipe(filter(isNotNil));
103
- }
104
- constructor(platform, graphql, storage, network, file, toastController, translate, accountService, environment, defaultOptionsMap) {
105
- super(graphql, environment);
106
- this.platform = platform;
107
- this.graphql = graphql;
108
- this.storage = storage;
109
- this.network = network;
110
- this.file = file;
111
- this.toastController = toastController;
112
- this.translate = translate;
113
- this.accountService = accountService;
114
- this.environment = environment;
115
- this._debug = !environment.production;
116
- if (this._debug)
117
- console.debug('[config] Creating service');
118
- this._optionDefs = Object.values({ ...CORE_CONFIG_OPTIONS, ...defaultOptionsMap });
119
- }
120
- async ngOnStart() {
121
- console.debug('[config] Starting configuration...');
122
- const data = await this.loadOrRestoreLocally();
123
- this.$data.next(data);
124
- // Restart if graphql service restart
125
- this.registerSubscription(this.graphql.stopSubject.subscribe(() => this.restart()));
126
- return data;
127
- }
128
- async loadDefault(opts) {
129
- const now = Date.now();
130
- console.debug('[config] Loading Pod configuration...');
131
- const query = (opts && opts.query) || ConfigQueries.load;
132
- const variables = (opts && opts.variables) || undefined;
133
- const res = await this.graphql.query({
134
- query,
135
- variables,
136
- error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
137
- fetchPolicy: (opts && opts.fetchPolicy) || undefined /*default*/,
138
- });
139
- const data = res?.data && opts?.toEntity !== false ? Configuration.fromObject(res.data) : res?.data;
140
- console.info(`[config] Pod configuration loaded in ${Date.now() - now}ms:`, data);
141
- return data;
142
- }
143
- async load(id, opts) {
144
- console.warn('[config] Invalid call of configService.load(id). Please use loadDefault() instead');
145
- return this.loadDefault(opts);
146
- }
147
- canUserWrite(data) {
148
- return this.accountService.isAdmin();
149
- }
150
- /**
151
- * Save a configuration
152
- *
153
- * @param config
154
- */
155
- async save(config) {
156
- console.debug('[config] Saving Pod configuration...', config);
157
- const json = config.asObject();
158
- // Execute mutation
159
- const res = await this.graphql.mutate({
160
- mutation: ConfigMutations.save,
161
- variables: {
162
- data: json,
163
- },
164
- error: {
165
- code: ErrorCodes.SAVE_CONFIG_ERROR,
166
- message: 'ERROR.SAVE_CONFIG_ERROR',
167
- },
168
- });
169
- // Copy update properties
170
- const savedConfig = res?.data;
171
- this.copyIdAndUpdateDate(savedConfig, config);
172
- console.debug('[config] Pod configuration saved!');
173
- // Full reload, to let pod recomputing some fields
174
- const reloadedConfig = await this.loadDefault({ fetchPolicy: 'network-only' });
175
- // Update computed properties, from reloaded item
176
- config.smallLogo = reloadedConfig?.smallLogo;
177
- config.largeLogo = reloadedConfig?.largeLogo;
178
- config.backgroundImages = reloadedConfig?.backgroundImages;
179
- config.partners = reloadedConfig?.partners;
180
- // If this is the default config
181
- const defaultConfig = this.$data.value;
182
- if (isNotNil(defaultConfig) && reloadedConfig?.label === defaultConfig.label) {
183
- // Emit update event when is default config
184
- this.$data.next(reloadedConfig);
185
- }
186
- // return the original entity
187
- return config;
188
- }
189
- async getCacheStatistics() {
190
- const now = Date.now();
191
- console.debug('[config] Loading server cache statistics...');
192
- const res = await this.graphql.query({
193
- query: CacheStatistics,
194
- variables: null,
195
- error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
196
- fetchPolicy: 'network-only',
197
- });
198
- const data = (res && res.cacheStatistics) || undefined;
199
- console.info(`[config] Server cache statistics loaded in ${Date.now() - now}ms:`, data);
200
- return data;
201
- }
202
- async clearCache(opts) {
203
- const now = Date.now();
204
- console.debug('[config] Clear server cache...');
205
- const variables = (opts && opts.cacheName && { name: opts.cacheName }) || undefined;
206
- const res = await this.graphql.query({
207
- query: ClearCache,
208
- variables,
209
- error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
210
- fetchPolicy: 'no-cache',
211
- });
212
- const data = (res && res.clearCache) || undefined;
213
- console.info(`[config] Clear server cache in ${Date.now() - now}ms:`, data);
214
- return data;
215
- }
216
- delete(data) {
217
- throw new Error('Not implemented yet!');
218
- }
219
- listenChanges(id) {
220
- return new Subject(); // TODO
221
- }
222
- get optionDefs() {
223
- return this._optionDefs;
224
- }
225
- /* -- protected method -- */
226
- copyIdAndUpdateDate(source, target) {
227
- if (!source)
228
- return;
229
- target.id = source.id || target.id;
230
- target.updateDate = source.updateDate || target.updateDate;
231
- }
232
- async loadOrRestoreLocally() {
233
- let data;
234
- let wasJustLoaded = false;
235
- if (this.network.online) {
236
- try {
237
- data = await this.loadDefault({ fetchPolicy: 'network-only' });
238
- wasJustLoaded = true;
239
- }
240
- catch (err) {
241
- // Log, then continue
242
- console.error((err && err.message) || err, err);
243
- }
244
- }
245
- // Save it into local storage, for next startup
246
- if (data) {
247
- setTimeout(() => this.storeLocally(data), 2000);
248
- }
249
- // If not loaded remotely: try to restore it
250
- else {
251
- data = await this.restoreLocally();
252
- }
253
- // Make sure label has been filled
254
- data.label = data.label || this.environment.name;
255
- // Reset name (if same as label)
256
- data.name = data.name !== data.label ? data.name : undefined;
257
- // Check compatible version
258
- if (wasJustLoaded) {
259
- // TODO
260
- }
261
- return data;
262
- }
263
- async restoreLocally() {
264
- let data;
265
- // Try to load from local storage
266
- const value = await this.storage.get(CONFIGURATION_STORAGE_KEY);
267
- if (value) {
268
- console.debug('[config] Restoring configuration from local storage...');
269
- if (typeof value === 'string') {
270
- try {
271
- data = Configuration.fromObject(JSON.parse(value));
272
- }
273
- catch (err) {
274
- console.error(`Failed to parse config found in local storage: ${(err && err.message) || err}`, err);
275
- }
276
- }
277
- else if (typeof value === 'object') {
278
- data = Configuration.fromObject(value);
279
- }
280
- console.debug('[config] Restoring configuration [OK]');
281
- }
282
- // Or load default value, from the environment
283
- if (!data) {
284
- console.debug('[config] No configuration found. Using environment...');
285
- data = Configuration.fromObject(this.environment);
286
- }
287
- return data;
288
- }
289
- async storeLocally(data) {
290
- // Nothing to store : reset
291
- if (!data) {
292
- await this.storage.remove(CONFIGURATION_STORAGE_KEY);
293
- }
294
- // Config exists: store it in the local storage
295
- else {
296
- let now = this._debug && Date.now();
297
- // Convert images, for offline usage
298
- if (this.network.online && isMobile(window)) {
299
- const jobs = [];
300
- // Download logos
301
- if (data.largeLogo && data.largeLogo.startsWith('http')) {
302
- const largeLogo = ImagesUtils.getImageAndCredit(data.largeLogo)?.image; // Remove credit
303
- jobs.push(this.file.getImage(largeLogo).then((imgUrl) => (data.largeLogo = imgUrl)));
304
- }
305
- if (data.smallLogo && data.smallLogo.startsWith('http')) {
306
- const smallLogo = ImagesUtils.getImageAndCredit(data.smallLogo)?.image; // Remove credit
307
- jobs.push(this.file.getImage(smallLogo).then((imgUrl) => (data.smallLogo = imgUrl)));
308
- }
309
- // Background images
310
- if (isNotEmptyArray(data.backgroundImages)) {
311
- const options = {
312
- maxWidth: this.platform.width(),
313
- maxHeight: this.platform.height(),
314
- };
315
- // Convert the FIRST image found
316
- // WARN: it's NOT necessary to convert ALL image, but only one, for smaller memory footprint
317
- const index = data.backgroundImages.findIndex((img) => img?.startsWith('http'));
318
- if (index !== -1) {
319
- const image = ImagesUtils.getImageAndCredit(data.backgroundImages[index])?.image; // Remove credit
320
- jobs.push(this.file.getImage(image, options).then((dataUrl) => (data.backgroundImages = [dataUrl])));
321
- }
322
- }
323
- // Partners
324
- if (isNotEmptyArray(data.partners)) {
325
- data.partners.forEach((dep) => {
326
- if (dep?.logo && dep.logo.startsWith('http')) {
327
- jobs.push(this.file
328
- .getImage(dep.logo, {
329
- maxHeight: 50 /*see home page CSS */,
330
- })
331
- .then((img) => (dep.logo = img))
332
- .catch((err) => {
333
- console.error((err && err.message) || err);
334
- delete dep.logo;
335
- }));
336
- }
337
- });
338
- }
339
- if (jobs.length) {
340
- if (this._debug)
341
- console.debug(`[config] Fetching ${jobs.length} images...`);
342
- try {
343
- await Promise.all(jobs);
344
- if (this._debug)
345
- console.debug(`[config] Fetching ${jobs.length} images [OK] in ${Date.now() - now}ms`);
346
- }
347
- catch (err) {
348
- console.error(`[config] Failed to fetch image(s): ${(err && err.message) || err}`, err);
349
- }
350
- }
351
- }
352
- // Saving config to storage
353
- {
354
- now = this._debug && Date.now();
355
- if (this._debug)
356
- console.debug('[config] Saving config into local storage...');
357
- await this.storage.set(CONFIGURATION_STORAGE_KEY, data.asObject());
358
- if (this._debug)
359
- console.debug(`[config] Saving config into local storage [OK] in ${Date.now() - now}ms`);
360
- }
361
- }
362
- }
363
- async showToast(opts) {
364
- await Toasts.show(this.toastController, this.translate, opts);
365
- }
366
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ConfigService, deps: [{ token: i1.Platform }, { token: i2.GraphqlService }, { token: i3.Storage }, { token: i4.NetworkService }, { token: i5.FileService }, { token: i1.ToastController }, { token: i6.TranslateService }, { token: i7.AccountService }, { token: ENVIRONMENT }, { token: APP_CONFIG_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
367
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ConfigService, providedIn: 'root' });
368
- }
369
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ConfigService, decorators: [{
370
- type: Injectable,
371
- args: [{
372
- providedIn: 'root',
373
- deps: [APP_CONFIG_OPTIONS],
374
- }]
375
- }], ctorParameters: () => [{ type: i1.Platform }, { type: i2.GraphqlService }, { type: i3.Storage }, { type: i4.NetworkService }, { type: i5.FileService }, { type: i1.ToastController }, { type: i6.TranslateService }, { type: i7.AccountService }, { type: i8.Environment, decorators: [{
376
- type: Inject,
377
- args: [ENVIRONMENT]
378
- }] }, { type: undefined, decorators: [{
379
- type: Optional
380
- }, {
381
- type: Inject,
382
- args: [APP_CONFIG_OPTIONS]
383
- }] }] });
384
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvY29uZmlnLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXJELE9BQU8sRUFBRSxlQUFlLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHdEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUduRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUzRCxPQUFPLEVBQW9CLE1BQU0sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXJFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QyxPQUFPLEVBQWUsV0FBVyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDbkYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFHbEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBR2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7Ozs7OztBQUU3RCxNQUFNLHlCQUF5QixHQUFHLGVBQWUsQ0FBQztBQUVsRDs7eUNBRXlDO0FBQ3pDLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRztJQUM3QixNQUFNLEVBQUUsR0FBRyxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3QlY7Q0FDRixDQUFDO0FBRUYsTUFBTSxhQUFhLEdBQWtCO0lBQ25DLElBQUksRUFBRSxHQUFHLENBQUE7Ozs7OztNQU1MLGVBQWUsQ0FBQyxNQUFNO0dBQ3pCO0NBQ0YsQ0FBQztBQUVGLDJDQUEyQztBQUMzQyxNQUFNLGVBQWUsR0FBK0I7SUFDbEQsSUFBSSxFQUFFLEdBQUcsQ0FBQTs7Ozs7O01BTUwsZUFBZSxDQUFDLE1BQU07R0FDekI7Q0FDRixDQUFDO0FBRUYsTUFBTSxVQUFVLEdBQVEsR0FBRyxDQUFBOzs7O0NBSTFCLENBQUM7QUFFRixNQUFNLGVBQWUsR0FBUSxHQUFHLENBQUE7Ozs7Q0FJL0IsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksY0FBYyxDQUF5QixnQkFBZ0IsQ0FBQyxDQUFDO0FBTS9GLE1BQU0sT0FBTyxhQUNYLFNBQVEsa0JBQTZEO0lBYXpEO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDcUI7SUFsQnpCLFdBQVcsQ0FBd0I7SUFDbkMsS0FBSyxHQUFHLElBQUksZUFBZSxDQUFnQixJQUFJLENBQUMsQ0FBQztJQUV6RCxJQUFJLE1BQU07UUFDUiwrQkFBK0I7UUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPO1lBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELFlBQ1ksUUFBa0IsRUFDbEIsT0FBdUIsRUFDdkIsT0FBZ0IsRUFDaEIsT0FBdUIsRUFDdkIsSUFBaUIsRUFDakIsZUFBZ0MsRUFDaEMsU0FBMkIsRUFDM0IsY0FBOEIsRUFDVCxXQUF3QixFQUNmLGlCQUF5QztRQUVqRixLQUFLLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBWGxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDdkIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ2pCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDVCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUt2RCxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQztRQUN0QyxJQUFJLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBRTVELElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsbUJBQW1CLEVBQUUsR0FBRyxpQkFBaUIsRUFBRSxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVTLEtBQUssQ0FBQyxTQUFTO1FBQ3ZCLE9BQU8sQ0FBQyxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQztRQUVwRCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQy9DLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXRCLHFDQUFxQztRQUNyQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFcEYsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUErQjtRQUMvQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDdkIsT0FBTyxDQUFDLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO1FBRXZELE1BQU0sS0FBSyxHQUFHLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDO1FBQ3pELE1BQU0sU0FBUyxHQUFHLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxTQUFTLENBQUM7UUFDeEQsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBZ0I7WUFDbEQsS0FBSztZQUNMLFNBQVM7WUFDVCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLGlCQUFpQixFQUFFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRTtZQUNqRixXQUFXLEVBQUUsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxXQUFXO1NBQ2pFLENBQUMsQ0FBQztRQUVILE1BQU0sSUFBSSxHQUFHLEdBQUcsRUFBRSxJQUFJLElBQUksSUFBSSxFQUFFLFFBQVEsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDO1FBQ3BHLE9BQU8sQ0FBQyxJQUFJLENBQUMsd0NBQXdDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNsRixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQVUsRUFBRSxJQUFrRTtRQUN2RixPQUFPLENBQUMsSUFBSSxDQUFDLG1GQUFtRixDQUFDLENBQUM7UUFFbEcsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBbUI7UUFDOUIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFxQjtRQUM5QixPQUFPLENBQUMsS0FBSyxDQUFDLHNDQUFzQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRTlELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUUvQixtQkFBbUI7UUFDbkIsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBZ0I7WUFDbkQsUUFBUSxFQUFFLGVBQWUsQ0FBQyxJQUFJO1lBQzlCLFNBQVMsRUFBRTtnQkFDVCxJQUFJLEVBQUUsSUFBSTthQUNYO1lBQ0QsS0FBSyxFQUFFO2dCQUNMLElBQUksRUFBRSxVQUFVLENBQUMsaUJBQWlCO2dCQUNsQyxPQUFPLEVBQUUseUJBQXlCO2FBQ25DO1NBQ0YsQ0FBQyxDQUFDO1FBRUgseUJBQXlCO1FBQ3pCLE1BQU0sV0FBVyxHQUFHLEdBQUcsRUFBRSxJQUFJLENBQUM7UUFDOUIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUU5QyxPQUFPLENBQUMsS0FBSyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7UUFFbkQsa0RBQWtEO1FBQ2xELE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO1FBRS9FLGlEQUFpRDtRQUNqRCxNQUFNLENBQUMsU0FBUyxHQUFHLGNBQWMsRUFBRSxTQUFTLENBQUM7UUFDN0MsTUFBTSxDQUFDLFNBQVMsR0FBRyxjQUFjLEVBQUUsU0FBUyxDQUFDO1FBQzdDLE1BQU0sQ0FBQyxnQkFBZ0IsR0FBRyxjQUFjLEVBQUUsZ0JBQWdCLENBQUM7UUFDM0QsTUFBTSxDQUFDLFFBQVEsR0FBRyxjQUFjLEVBQUUsUUFBUSxDQUFDO1FBRTNDLGdDQUFnQztRQUNoQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUN2QyxJQUFJLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxjQUFjLEVBQUUsS0FBSyxLQUFLLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUM3RSwyQ0FBMkM7WUFDM0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbEMsQ0FBQztRQUVELDZCQUE2QjtRQUM3QixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsS0FBSyxDQUFDLGtCQUFrQjtRQUN0QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDdkIsT0FBTyxDQUFDLEtBQUssQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO1FBRTdELE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQTJCO1lBQzdELEtBQUssRUFBRSxlQUFlO1lBQ3RCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLEVBQUUseUJBQXlCLEVBQUU7WUFDakYsV0FBVyxFQUFFLGNBQWM7U0FDNUIsQ0FBQyxDQUFDO1FBRUgsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLFNBQVMsQ0FBQztRQUN2RCxPQUFPLENBQUMsSUFBSSxDQUFDLDhDQUE4QyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDeEYsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUE2QjtRQUM1QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDdkIsT0FBTyxDQUFDLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBRWhELE1BQU0sU0FBUyxHQUFHLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksU0FBUyxDQUFDO1FBRXBGLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQTBCO1lBQzVELEtBQUssRUFBRSxVQUFVO1lBQ2pCLFNBQVM7WUFDVCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLGlCQUFpQixFQUFFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRTtZQUNqRixXQUFXLEVBQUUsVUFBVTtTQUN4QixDQUFDLENBQUM7UUFFSCxNQUFNLElBQUksR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksU0FBUyxDQUFDO1FBQ2xELE9BQU8sQ0FBQyxJQUFJLENBQUMsa0NBQWtDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM1RSxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBbUI7UUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxhQUFhLENBQUMsRUFBVTtRQUN0QixPQUFPLElBQUksT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPO0lBQy9CLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVELDRCQUE0QjtJQUVsQixtQkFBbUIsQ0FBQyxNQUFpQyxFQUFFLE1BQXFCO1FBQ3BGLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTztRQUVwQixNQUFNLENBQUMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxFQUFFLElBQUksTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNuQyxNQUFNLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQztJQUM3RCxDQUFDO0lBRU8sS0FBSyxDQUFDLG9CQUFvQjtRQUNoQyxJQUFJLElBQW1CLENBQUM7UUFDeEIsSUFBSSxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUM7Z0JBQ0gsSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO2dCQUMvRCxhQUFhLEdBQUcsSUFBSSxDQUFDO1lBQ3ZCLENBQUM7WUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO2dCQUNiLHFCQUFxQjtnQkFDckIsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ2xELENBQUM7UUFDSCxDQUFDO1FBRUQsK0NBQStDO1FBQy9DLElBQUksSUFBSSxFQUFFLENBQUM7WUFDVCxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNsRCxDQUFDO1FBRUQsNENBQTRDO2FBQ3ZDLENBQUM7WUFDSixJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDckMsQ0FBQztRQUVELGtDQUFrQztRQUNsQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7UUFFakQsZ0NBQWdDO1FBQ2hDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFN0QsMkJBQTJCO1FBQzNCLElBQUksYUFBYSxFQUFFLENBQUM7WUFDbEIsT0FBTztRQUNULENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTyxLQUFLLENBQUMsY0FBYztRQUMxQixJQUFJLElBQW1CLENBQUM7UUFFeEIsaUNBQWlDO1FBQ2pDLE1BQU0sS0FBSyxHQUFRLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUNyRSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyx3REFBd0QsQ0FBQyxDQUFDO1lBQ3hFLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQzlCLElBQUksQ0FBQztvQkFDSCxJQUFJLEdBQUcsYUFBYSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ3JELENBQUM7Z0JBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztvQkFDYixPQUFPLENBQUMsS0FBSyxDQUFDLGtEQUFrRCxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ3RHLENBQUM7WUFDSCxDQUFDO2lCQUFNLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ3JDLElBQUksR0FBRyxhQUFhLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3pDLENBQUM7WUFFRCxPQUFPLENBQUMsS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7UUFDekQsQ0FBQztRQUVELDhDQUE4QztRQUM5QyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDVixPQUFPLENBQUMsS0FBSyxDQUFDLHVEQUF1RCxDQUFDLENBQUM7WUFDdkUsSUFBSSxHQUFHLGFBQWEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQWtCLENBQUMsQ0FBQztRQUMzRCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU8sS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFvQjtRQUM3QywyQkFBMkI7UUFDM0IsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7UUFDRCwrQ0FBK0M7YUFDMUMsQ0FBQztZQUNKLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBRXBDLG9DQUFvQztZQUNwQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO2dCQUM1QyxNQUFNLElBQUksR0FBRyxFQUFFLENBQUM7Z0JBRWhCLGlCQUFpQjtnQkFDakIsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7b0JBQ3hELE1BQU0sU0FBUyxHQUFHLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsZ0JBQWdCO29CQUN4RixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDdkYsQ0FBQztnQkFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztvQkFDeEQsTUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxnQkFBZ0I7b0JBQ3hGLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2RixDQUFDO2dCQUVELG9CQUFvQjtnQkFDcEIsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztvQkFDM0MsTUFBTSxPQUFPLEdBQUc7d0JBQ2QsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFO3dCQUMvQixTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUU7cUJBQ2xDLENBQUM7b0JBRUYsZ0NBQWdDO29CQUNoQyw0RkFBNEY7b0JBQzVGLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztvQkFDaEYsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQzt3QkFDakIsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLGdCQUFnQjt3QkFDbEcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUN2RyxDQUFDO2dCQUNILENBQUM7Z0JBRUQsV0FBVztnQkFDWCxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztvQkFDbkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTt3QkFDNUIsSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7NEJBQzdDLElBQUksQ0FBQyxJQUFJLENBQ1AsSUFBSSxDQUFDLElBQUk7aUNBQ04sUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUU7Z0NBQ2xCLFNBQVMsRUFBRSxFQUFFLENBQUMsc0JBQXNCOzZCQUNyQyxDQUFDO2lDQUNELElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDO2lDQUMvQixLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQ0FDYixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztnQ0FDM0MsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDOzRCQUNsQixDQUFDLENBQUMsQ0FDTCxDQUFDO3dCQUNKLENBQUM7b0JBQ0gsQ0FBQyxDQUFDLENBQUM7Z0JBQ0wsQ0FBQztnQkFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDaEIsSUFBSSxJQUFJLENBQUMsTUFBTTt3QkFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLHFCQUFxQixJQUFJLENBQUMsTUFBTSxZQUFZLENBQUMsQ0FBQztvQkFDN0UsSUFBSSxDQUFDO3dCQUNILE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDeEIsSUFBSSxJQUFJLENBQUMsTUFBTTs0QkFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLHFCQUFxQixJQUFJLENBQUMsTUFBTSxtQkFBbUIsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUM7b0JBQzFHLENBQUM7b0JBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQzt3QkFDYixPQUFPLENBQUMsS0FBSyxDQUFDLHNDQUFzQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBQzFGLENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7WUFFRCwyQkFBMkI7WUFDM0IsQ0FBQztnQkFDQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ2hDLElBQUksSUFBSSxDQUFDLE1BQU07b0JBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO2dCQUMvRSxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLHlCQUF5QixFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO2dCQUNuRSxJQUFJLElBQUksQ0FBQyxNQUFNO29CQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMscURBQXFELElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQzVHLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVTLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBc0I7UUFDOUMsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNoRSxDQUFDO3dHQW5VVSxhQUFhLHFQQXNCZCxXQUFXLGFBQ0Msa0JBQWtCOzRHQXZCN0IsYUFBYSxjQUhaLE1BQU07OzRGQUdQLGFBQWE7a0JBSnpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07b0JBQ2xCLElBQUksRUFBRSxDQUFDLGtCQUFrQixDQUFDO2lCQUMzQjs7MEJBdUJJLE1BQU07MkJBQUMsV0FBVzs7MEJBQ2xCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdxbCB9IGZyb20gJ2Fwb2xsby1hbmd1bGFyJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb24gfSBmcm9tICcuL21vZGVsL2NvbmZpZy5tb2RlbCc7XG5pbXBvcnQgeyBTdG9yYWdlIH0gZnJvbSAnQGlvbmljL3N0b3JhZ2UtYW5ndWxhcic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEVycm9yQ29kZXMgfSBmcm9tICcuL2Vycm9ycyc7XG5pbXBvcnQgeyBHcmFwaHFsU2VydmljZSB9IGZyb20gJy4uL2dyYXBocWwvZ3JhcGhxbC5zZXJ2aWNlJztcbmltcG9ydCB7IEZvcm1GaWVsZERlZmluaXRpb24sIEZvcm1GaWVsZERlZmluaXRpb25NYXAgfSBmcm9tICcuLi8uLi9zaGFyZWQvZm9ybS9maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBpc05vdEVtcHR5QXJyYXksIGlzTm90TmlsIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2Z1bmN0aW9ucyc7XG5pbXBvcnQgeyBGaWxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9maWxlL2ZpbGUuc2VydmljZSc7XG5pbXBvcnQgeyBOZXR3b3JrU2VydmljZSB9IGZyb20gJy4vbmV0d29yay5zZXJ2aWNlJztcbmltcG9ydCB7IENPUkVfQ09ORklHX09QVElPTlMgfSBmcm9tICcuL2NvbmZpZy9jb3JlLmNvbmZpZyc7XG5pbXBvcnQgeyBQbGF0Zm9ybSwgVG9hc3RDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgU2hvd1RvYXN0T3B0aW9ucywgVG9hc3RzIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3RvYXN0L3RvYXN0cyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFbnRpdHlTZXJ2aWNlTG9hZE9wdGlvbnMsIElFbnRpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3NlcnZpY2VzL2VudGl0eS1zZXJ2aWNlLmNsYXNzJztcbmltcG9ydCB7IEVudmlyb25tZW50LCBFTlZJUk9OTUVOVCB9IGZyb20gJy4uLy4uLy4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudC5jbGFzcyc7XG5pbXBvcnQgeyBCYXNlR3JhcGhxbFNlcnZpY2UgfSBmcm9tICcuL2Jhc2UtZ3JhcGhxbC1zZXJ2aWNlLmNsYXNzJztcbmltcG9ydCB7IElTdGFydGFibGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3NlcnZpY2VzL3N0YXJ0YWJsZS1zZXJ2aWNlLmNsYXNzJztcbmltcG9ydCB7IEFjY291bnRTZXJ2aWNlIH0gZnJvbSAnLi9hY2NvdW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgaXNNb2JpbGUgfSBmcm9tICcuLi8uLi9zaGFyZWQvcGxhdGZvcm1zJztcbmltcG9ydCB7IEJhc2VFbnRpdHlHcmFwaHFsTXV0YXRpb25zIH0gZnJvbSAnLi9iYXNlLWVudGl0eS1zZXJ2aWNlLmNsYXNzJztcblxuaW1wb3J0IHsgSW1hZ2VzVXRpbHMgfSBmcm9tICcuLi8uLi9zaGFyZWQvZmlsZS9pbWFnZXMudXRpbHMnO1xuXG5jb25zdCBDT05GSUdVUkFUSU9OX1NUT1JBR0VfS0VZID0gJ2NvbmZpZ3VyYXRpb24nO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEdyYXBoUUwgcXVlcmllc1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbmV4cG9ydCBjb25zdCBDb25maWdGcmFnbWVudHMgPSB7XG4gIGNvbmZpZzogZ3FsYFxuICAgIGZyYWdtZW50IENvbmZpZ0ZyYWdtZW50IG9uIENvbmZpZ3VyYXRpb25WTyB7XG4gICAgICBpZFxuICAgICAgbGFiZWxcbiAgICAgIG5hbWVcbiAgICAgIGRlc2NyaXB0aW9uXG4gICAgICBjb21tZW50c1xuICAgICAgcHJvcGVydGllc1xuICAgICAgc21hbGxMb2dvXG4gICAgICBsYXJnZUxvZ29cbiAgICAgIGJhY2tncm91bmRJbWFnZXNcbiAgICAgIHBhcnRuZXJzIHtcbiAgICAgICAgaWRcbiAgICAgICAgbGFiZWxcbiAgICAgICAgbmFtZVxuICAgICAgICBsb2dvXG4gICAgICAgIHNpdGVVcmxcbiAgICAgICAgX190eXBlbmFtZVxuICAgICAgfVxuICAgICAgdXBkYXRlRGF0ZVxuICAgICAgY3JlYXRpb25EYXRlXG4gICAgICBzdGF0dXNJZFxuICAgICAgX190eXBlbmFtZVxuICAgIH1cbiAgYCxcbn07XG5cbmNvbnN0IENvbmZpZ1F1ZXJpZXM6IHsgbG9hZDogYW55IH0gPSB7XG4gIGxvYWQ6IGdxbGBcbiAgICBxdWVyeSBDb25maWd1cmF0aW9uIHtcbiAgICAgIGRhdGE6IGNvbmZpZ3VyYXRpb24ge1xuICAgICAgICAuLi5Db25maWdGcmFnbWVudFxuICAgICAgfVxuICAgIH1cbiAgICAke0NvbmZpZ0ZyYWdtZW50cy5jb25maWd9XG4gIGAsXG59O1xuXG4vLyBTYXZlIChjcmVhdGUgb3IgdXBkYXRlKSBhY2NvdW50IG11dGF0aW9uXG5jb25zdCBDb25maWdNdXRhdGlvbnM6IEJhc2VFbnRpdHlHcmFwaHFsTXV0YXRpb25zID0ge1xuICBzYXZlOiBncWxgXG4gICAgbXV0YXRpb24gU2F2ZUNvbmZpZ3VyYXRpb24oJGRhdGE6IENvbmZpZ3VyYXRpb25WT0lucHV0KSB7XG4gICAgICBkYXRhOiBzYXZlQ29uZmlndXJhdGlvbihjb25maWc6ICRkYXRhKSB7XG4gICAgICAgIC4uLkNvbmZpZ0ZyYWdtZW50XG4gICAgICB9XG4gICAgfVxuICAgICR7Q29uZmlnRnJhZ21lbnRzLmNvbmZpZ31cbiAgYCxcbn07XG5cbmNvbnN0IENsZWFyQ2FjaGU6IGFueSA9IGdxbGBcbiAgcXVlcnkgQ2xlYXJDYWNoZSgkbmFtZTogU3RyaW5nKSB7XG4gICAgY2xlYXJDYWNoZShuYW1lOiAkbmFtZSlcbiAgfVxuYDtcblxuY29uc3QgQ2FjaGVTdGF0aXN0aWNzOiBhbnkgPSBncWxgXG4gIHF1ZXJ5IENhY2hlU3RhdGlzdGljcyB7XG4gICAgY2FjaGVTdGF0aXN0aWNzXG4gIH1cbmA7XG5cbmV4cG9ydCBjb25zdCBBUFBfQ09ORklHX09QVElPTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW48Rm9ybUZpZWxkRGVmaW5pdGlvbk1hcD4oJ2RlZmF1bHRPcHRpb25zJyk7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICBkZXBzOiBbQVBQX0NPTkZJR19PUFRJT05TXSxcbn0pXG5leHBvcnQgY2xhc3MgQ29uZmlnU2VydmljZVxuICBleHRlbmRzIEJhc2VHcmFwaHFsU2VydmljZTxDb25maWd1cmF0aW9uLCBhbnksIG51bWJlciwgQ29uZmlndXJhdGlvbj5cbiAgaW1wbGVtZW50cyBJRW50aXR5U2VydmljZTxDb25maWd1cmF0aW9uPiwgSVN0YXJ0YWJsZVNlcnZpY2U8Q29uZmlndXJhdGlvbj5cbntcbiAgcHJpdmF0ZSBfb3B0aW9uRGVmczogRm9ybUZpZWxkRGVmaW5pdGlvbltdO1xuICBwcml2YXRlICRkYXRhID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDb25maWd1cmF0aW9uPihudWxsKTtcblxuICBnZXQgY29uZmlnKCk6IE9ic2VydmFibGU8Q29uZmlndXJhdGlvbj4ge1xuICAgIC8vIElmIGZpcnN0IGNhbGw6IHN0YXJ0IGxvYWRpbmdcbiAgICBpZiAoIXRoaXMuc3RhcnRlZCkgdGhpcy5zdGFydCgpO1xuICAgIHJldHVybiB0aGlzLiRkYXRhLnBpcGUoZmlsdGVyKGlzTm90TmlsKSk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcGxhdGZvcm06IFBsYXRmb3JtLFxuICAgIHByb3RlY3RlZCBncmFwaHFsOiBHcmFwaHFsU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgc3RvcmFnZTogU3RvcmFnZSxcbiAgICBwcm90ZWN0ZWQgbmV0d29yazogTmV0d29ya1NlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGZpbGU6IEZpbGVTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCB0b2FzdENvbnRyb2xsZXI6IFRvYXN0Q29udHJvbGxlcixcbiAgICBwcm90ZWN0ZWQgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBhY2NvdW50U2VydmljZTogQWNjb3VudFNlcnZpY2UsXG4gICAgQEluamVjdChFTlZJUk9OTUVOVCkgcHJvdGVjdGVkIGVudmlyb25tZW50OiBFbnZpcm9ubWVudCxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEFQUF9DT05GSUdfT1BUSU9OUykgZGVmYXVsdE9wdGlvbnNNYXA6IEZvcm1GaWVsZERlZmluaXRpb25NYXBcbiAgKSB7XG4gICAgc3VwZXIoZ3JhcGhxbCwgZW52aXJvbm1lbnQpO1xuXG4gICAgdGhpcy5fZGVidWcgPSAhZW52aXJvbm1lbnQucHJvZHVjdGlvbjtcbiAgICBpZiAodGhpcy5fZGVidWcpIGNvbnNvbGUuZGVidWcoJ1tjb25maWddIENyZWF0aW5nIHNlcnZpY2UnKTtcblxuICAgIHRoaXMuX29wdGlvbkRlZnMgPSBPYmplY3QudmFsdWVzKHsgLi4uQ09SRV9DT05GSUdfT1BUSU9OUywgLi4uZGVmYXVsdE9wdGlvbnNNYXAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgbmdPblN0YXJ0KCk6IFByb21pc2U8Q29uZmlndXJhdGlvbj4ge1xuICAgIGNvbnNvbGUuZGVidWcoJ1tjb25maWddIFN0YXJ0aW5nIGNvbmZpZ3VyYXRpb24uLi4nKTtcblxuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmxvYWRPclJlc3RvcmVMb2NhbGx5KCk7XG4gICAgdGhpcy4kZGF0YS5uZXh0KGRhdGEpO1xuXG4gICAgLy8gUmVzdGFydCBpZiBncmFwaHFsIHNlcnZpY2UgcmVzdGFydFxuICAgIHRoaXMucmVnaXN0ZXJTdWJzY3JpcHRpb24odGhpcy5ncmFwaHFsLnN0b3BTdWJqZWN0LnN1YnNjcmliZSgoKSA9PiB0aGlzLnJlc3RhcnQoKSkpO1xuXG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBhc3luYyBsb2FkRGVmYXVsdChvcHRzPzogRW50aXR5U2VydmljZUxvYWRPcHRpb25zKTogUHJvbWlzZTxDb25maWd1cmF0aW9uPiB7XG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICBjb25zb2xlLmRlYnVnKCdbY29uZmlnXSBMb2FkaW5nIFBvZCBjb25maWd1cmF0aW9uLi4uJyk7XG5cbiAgICBjb25zdCBxdWVyeSA9IChvcHRzICYmIG9wdHMucXVlcnkpIHx8IENvbmZpZ1F1ZXJpZXMubG9hZDtcbiAgICBjb25zdCB2YXJpYWJsZXMgPSAob3B0cyAmJiBvcHRzLnZhcmlhYmxlcykgfHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuZ3JhcGhxbC5xdWVyeTx7IGRhdGE6IGFueSB9Pih7XG4gICAgICBxdWVyeSxcbiAgICAgIHZhcmlhYmxlcyxcbiAgICAgIGVycm9yOiB7IGNvZGU6IEVycm9yQ29kZXMuTE9BRF9DT05GSUdfRVJST1IsIG1lc3NhZ2U6ICdFUlJPUi5MT0FEX0NPTkZJR19FUlJPUicgfSxcbiAgICAgIGZldGNoUG9saWN5OiAob3B0cyAmJiBvcHRzLmZldGNoUG9saWN5KSB8fCB1bmRlZmluZWQgLypkZWZhdWx0Ki8sXG4gICAgfSk7XG5cbiAgICBjb25zdCBkYXRhID0gcmVzPy5kYXRhICYmIG9wdHM/LnRvRW50aXR5ICE9PSBmYWxzZSA/IENvbmZpZ3VyYXRpb24uZnJvbU9iamVjdChyZXMuZGF0YSkgOiByZXM/LmRhdGE7XG4gICAgY29uc29sZS5pbmZvKGBbY29uZmlnXSBQb2QgY29uZmlndXJhdGlvbiBsb2FkZWQgaW4gJHtEYXRlLm5vdygpIC0gbm93fW1zOmAsIGRhdGEpO1xuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgYXN5bmMgbG9hZChpZDogbnVtYmVyLCBvcHRzPzogRW50aXR5U2VydmljZUxvYWRPcHRpb25zICYgeyBxdWVyeT86IGFueTsgdmFyaWFibGVzPzogYW55IH0pOiBQcm9taXNlPENvbmZpZ3VyYXRpb24+IHtcbiAgICBjb25zb2xlLndhcm4oJ1tjb25maWddIEludmFsaWQgY2FsbCBvZiBjb25maWdTZXJ2aWNlLmxvYWQoaWQpLiBQbGVhc2UgdXNlIGxvYWREZWZhdWx0KCkgaW5zdGVhZCcpO1xuXG4gICAgcmV0dXJuIHRoaXMubG9hZERlZmF1bHQob3B0cyk7XG4gIH1cblxuICBjYW5Vc2VyV3JpdGUoZGF0YTogQ29uZmlndXJhdGlvbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFjY291bnRTZXJ2aWNlLmlzQWRtaW4oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTYXZlIGEgY29uZmlndXJhdGlvblxuICAgKlxuICAgKiBAcGFyYW0gY29uZmlnXG4gICAqL1xuICBhc3luYyBzYXZlKGNvbmZpZzogQ29uZmlndXJhdGlvbik6IFByb21pc2U8Q29uZmlndXJhdGlvbj4ge1xuICAgIGNvbnNvbGUuZGVidWcoJ1tjb25maWddIFNhdmluZyBQb2QgY29uZmlndXJhdGlvbi4uLicsIGNvbmZpZyk7XG5cbiAgICBjb25zdCBqc29uID0gY29uZmlnLmFzT2JqZWN0KCk7XG5cbiAgICAvLyBFeGVjdXRlIG11dGF0aW9uXG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5ncmFwaHFsLm11dGF0ZTx7IGRhdGE6IGFueSB9Pih7XG4gICAgICBtdXRhdGlvbjogQ29uZmlnTXV0YXRpb25zLnNhdmUsXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgZGF0YToganNvbixcbiAgICAgIH0sXG4gICAgICBlcnJvcjoge1xuICAgICAgICBjb2RlOiBFcnJvckNvZGVzLlNBVkVfQ09ORklHX0VSUk9SLFxuICAgICAgICBtZXNzYWdlOiAnRVJST1IuU0FWRV9DT05GSUdfRVJST1InLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIENvcHkgdXBkYXRlIHByb3BlcnRpZXNcbiAgICBjb25zdCBzYXZlZENvbmZpZyA9IHJlcz8uZGF0YTtcbiAgICB0aGlzLmNvcHlJZEFuZFVwZGF0ZURhdGUoc2F2ZWRDb25maWcsIGNvbmZpZyk7XG5cbiAgICBjb25zb2xlLmRlYnVnKCdbY29uZmlnXSBQb2QgY29uZmlndXJhdGlvbiBzYXZlZCEnKTtcblxuICAgIC8vIEZ1bGwgcmVsb2FkLCB0byBsZXQgcG9kIHJlY29tcHV0aW5nIHNvbWUgZmllbGRzXG4gICAgY29uc3QgcmVsb2FkZWRDb25maWcgPSBhd2FpdCB0aGlzLmxvYWREZWZhdWx0KHsgZmV0Y2hQb2xpY3k6ICduZXR3b3JrLW9ubHknIH0pO1xuXG4gICAgLy8gVXBkYXRlIGNvbXB1dGVkIHByb3BlcnRpZXMsIGZyb20gcmVsb2FkZWQgaXRlbVxuICAgIGNvbmZpZy5zbWFsbExvZ28gPSByZWxvYWRlZENvbmZpZz8uc21hbGxMb2dvO1xuICAgIGNvbmZpZy5sYXJnZUxvZ28gPSByZWxvYWRlZENvbmZpZz8ubGFyZ2VMb2dvO1xuICAgIGNvbmZpZy5iYWNrZ3JvdW5kSW1hZ2VzID0gcmVsb2FkZWRDb25maWc/LmJhY2tncm91bmRJbWFnZXM7XG4gICAgY29uZmlnLnBhcnRuZXJzID0gcmVsb2FkZWRDb25maWc/LnBhcnRuZXJzO1xuXG4gICAgLy8gSWYgdGhpcyBpcyB0aGUgZGVmYXVsdCBjb25maWdcbiAgICBjb25zdCBkZWZhdWx0Q29uZmlnID0gdGhpcy4kZGF0YS52YWx1ZTtcbiAgICBpZiAoaXNOb3ROaWwoZGVmYXVsdENvbmZpZykgJiYgcmVsb2FkZWRDb25maWc/LmxhYmVsID09PSBkZWZhdWx0Q29uZmlnLmxhYmVsKSB7XG4gICAgICAvLyBFbWl0IHVwZGF0ZSBldmVudCB3aGVuIGlzIGRlZmF1bHQgY29uZmlnXG4gICAgICB0aGlzLiRkYXRhLm5leHQocmVsb2FkZWRDb25maWcpO1xuICAgIH1cblxuICAgIC8vIHJldHVybiB0aGUgb3JpZ2luYWwgZW50aXR5XG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfVxuXG4gIGFzeW5jIGdldENhY2hlU3RhdGlzdGljcygpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgY29uc29sZS5kZWJ1ZygnW2NvbmZpZ10gTG9hZGluZyBzZXJ2ZXIgY2FjaGUgc3RhdGlzdGljcy4uLicpO1xuXG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5ncmFwaHFsLnF1ZXJ5PHsgY2FjaGVTdGF0aXN0aWNzOiBhbnkgfT4oe1xuICAgICAgcXVlcnk6IENhY2hlU3RhdGlzdGljcyxcbiAgICAgIHZhcmlhYmxlczogbnVsbCxcbiAgICAgIGVycm9yOiB7IGNvZGU6IEVycm9yQ29kZXMuTE9BRF9DT05GSUdfRVJST1IsIG1lc3NhZ2U6ICdFUlJPUi5MT0FEX0NPTkZJR19FUlJPUicgfSxcbiAgICAgIGZldGNoUG9saWN5OiAnbmV0d29yay1vbmx5JyxcbiAgICB9KTtcblxuICAgIGNvbnN0IGRhdGEgPSAocmVzICYmIHJlcy5jYWNoZVN0YXRpc3RpY3MpIHx8IHVuZGVmaW5lZDtcbiAgICBjb25zb2xlLmluZm8oYFtjb25maWddIFNlcnZlciBjYWNoZSBzdGF0aXN0aWNzIGxvYWRlZCBpbiAke0RhdGUubm93KCkgLSBub3d9bXM6YCwgZGF0YSk7XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBhc3luYyBjbGVhckNhY2hlKG9wdHM/OiB7IGNhY2hlTmFtZT86IHN0cmluZyB9KSB7XG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICBjb25zb2xlLmRlYnVnKCdbY29uZmlnXSBDbGVhciBzZXJ2ZXIgY2FjaGUuLi4nKTtcblxuICAgIGNvbnN0IHZhcmlhYmxlcyA9IChvcHRzICYmIG9wdHMuY2FjaGVOYW1lICYmIHsgbmFtZTogb3B0cy5jYWNoZU5hbWUgfSkgfHwgdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5ncmFwaHFsLnF1ZXJ5PHsgY2xlYXJDYWNoZTogYm9vbGVhbiB9Pih7XG4gICAgICBxdWVyeTogQ2xlYXJDYWNoZSxcbiAgICAgIHZhcmlhYmxlcyxcbiAgICAgIGVycm9yOiB7IGNvZGU6IEVycm9yQ29kZXMuTE9BRF9DT05GSUdfRVJST1IsIG1lc3NhZ2U6ICdFUlJPUi5MT0FEX0NPTkZJR19FUlJPUicgfSxcbiAgICAgIGZldGNoUG9saWN5OiAnbm8tY2FjaGUnLFxuICAgIH0pO1xuXG4gICAgY29uc3QgZGF0YSA9IChyZXMgJiYgcmVzLmNsZWFyQ2FjaGUpIHx8IHVuZGVmaW5lZDtcbiAgICBjb25zb2xlLmluZm8oYFtjb25maWddIENsZWFyIHNlcnZlciBjYWNoZSBpbiAke0RhdGUubm93KCkgLSBub3d9bXM6YCwgZGF0YSk7XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBkZWxldGUoZGF0YTogQ29uZmlndXJhdGlvbik6IFByb21pc2U8YW55PiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQgeWV0IScpO1xuICB9XG5cbiAgbGlzdGVuQ2hhbmdlcyhpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxDb25maWd1cmF0aW9uIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIG5ldyBTdWJqZWN0KCk7IC8vIFRPRE9cbiAgfVxuXG4gIGdldCBvcHRpb25EZWZzKCk6IEZvcm1GaWVsZERlZmluaXRpb25bXSB7XG4gICAgcmV0dXJuIHRoaXMuX29wdGlvbkRlZnM7XG4gIH1cblxuICAvKiAtLSBwcm90ZWN0ZWQgbWV0aG9kIC0tICovXG5cbiAgcHJvdGVjdGVkIGNvcHlJZEFuZFVwZGF0ZURhdGUoc291cmNlOiBDb25maWd1cmF0aW9uIHwgdW5kZWZpbmVkLCB0YXJnZXQ6IENvbmZpZ3VyYXRpb24pIHtcbiAgICBpZiAoIXNvdXJjZSkgcmV0dXJuO1xuXG4gICAgdGFyZ2V0LmlkID0gc291cmNlLmlkIHx8IHRhcmdldC5pZDtcbiAgICB0YXJnZXQudXBkYXRlRGF0ZSA9IHNvdXJjZS51cGRhdGVEYXRlIHx8IHRhcmdldC51cGRhdGVEYXRlO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsb2FkT3JSZXN0b3JlTG9jYWxseSgpOiBQcm9taXNlPENvbmZpZ3VyYXRpb24+IHtcbiAgICBsZXQgZGF0YTogQ29uZmlndXJhdGlvbjtcbiAgICBsZXQgd2FzSnVzdExvYWRlZCA9IGZhbHNlO1xuICAgIGlmICh0aGlzLm5ldHdvcmsub25saW5lKSB7XG4gICAgICB0cnkge1xuICAgICAgICBkYXRhID0gYXdhaXQgdGhpcy5sb2FkRGVmYXVsdCh7IGZldGNoUG9saWN5OiAnbmV0d29yay1vbmx5JyB9KTtcbiAgICAgICAgd2FzSnVzdExvYWRlZCA9IHRydWU7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgLy8gTG9nLCB0aGVuIGNvbnRpbnVlXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoKGVyciAmJiBlcnIubWVzc2FnZSkgfHwgZXJyLCBlcnIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNhdmUgaXQgaW50byBsb2NhbCBzdG9yYWdlLCBmb3IgbmV4dCBzdGFydHVwXG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5zdG9yZUxvY2FsbHkoZGF0YSksIDIwMDApO1xuICAgIH1cblxuICAgIC8vIElmIG5vdCBsb2FkZWQgcmVtb3RlbHk6IHRyeSB0byByZXN0b3JlIGl0XG4gICAgZWxzZSB7XG4gICAgICBkYXRhID0gYXdhaXQgdGhpcy5yZXN0b3JlTG9jYWxseSgpO1xuICAgIH1cblxuICAgIC8vIE1ha2Ugc3VyZSBsYWJlbCBoYXMgYmVlbiBmaWxsZWRcbiAgICBkYXRhLmxhYmVsID0gZGF0YS5sYWJlbCB8fCB0aGlzLmVudmlyb25tZW50Lm5hbWU7XG5cbiAgICAvLyBSZXNldCBuYW1lIChpZiBzYW1lIGFzIGxhYmVsKVxuICAgIGRhdGEubmFtZSA9IGRhdGEubmFtZSAhPT0gZGF0YS5sYWJlbCA/IGRhdGEubmFtZSA6IHVuZGVmaW5lZDtcblxuICAgIC8vIENoZWNrIGNvbXBhdGlibGUgdmVyc2lvblxuICAgIGlmICh3YXNKdXN0TG9hZGVkKSB7XG4gICAgICAvLyBUT0RPXG4gICAgfVxuXG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlc3RvcmVMb2NhbGx5KCk6IFByb21pc2U8Q29uZmlndXJhdGlvbj4ge1xuICAgIGxldCBkYXRhOiBDb25maWd1cmF0aW9uO1xuXG4gICAgLy8gVHJ5IHRvIGxvYWQgZnJvbSBsb2NhbCBzdG9yYWdlXG4gICAgY29uc3QgdmFsdWU6IGFueSA9IGF3YWl0IHRoaXMuc3RvcmFnZS5nZXQoQ09ORklHVVJBVElPTl9TVE9SQUdFX0tFWSk7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBjb25zb2xlLmRlYnVnKCdbY29uZmlnXSBSZXN0b3JpbmcgY29uZmlndXJhdGlvbiBmcm9tIGxvY2FsIHN0b3JhZ2UuLi4nKTtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgZGF0YSA9IENvbmZpZ3VyYXRpb24uZnJvbU9iamVjdChKU09OLnBhcnNlKHZhbHVlKSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBwYXJzZSBjb25maWcgZm91bmQgaW4gbG9jYWwgc3RvcmFnZTogJHsoZXJyICYmIGVyci5tZXNzYWdlKSB8fCBlcnJ9YCwgZXJyKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIGRhdGEgPSBDb25maWd1cmF0aW9uLmZyb21PYmplY3QodmFsdWUpO1xuICAgICAgfVxuXG4gICAgICBjb25zb2xlLmRlYnVnKCdbY29uZmlnXSBSZXN0b3JpbmcgY29uZmlndXJhdGlvbiBbT0tdJyk7XG4gICAgfVxuXG4gICAgLy8gT3IgbG9hZCBkZWZhdWx0IHZhbHVlLCBmcm9tIHRoZSBlbnZpcm9ubWVudFxuICAgIGlmICghZGF0YSkge1xuICAgICAgY29uc29sZS5kZWJ1ZygnW2NvbmZpZ10gTm8gY29uZmlndXJhdGlvbiBmb3VuZC4gVXNpbmcgZW52aXJvbm1lbnQuLi4nKTtcbiAgICAgIGRhdGEgPSBDb25maWd1cmF0aW9uLmZyb21PYmplY3QodGhpcy5lbnZpcm9ubWVudCBhcyBhbnkpO1xuICAgIH1cblxuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzdG9yZUxvY2FsbHkoZGF0YT86IENvbmZpZ3VyYXRpb24pIHtcbiAgICAvLyBOb3RoaW5nIHRvIHN0b3JlIDogcmVzZXRcbiAgICBpZiAoIWRhdGEpIHtcbiAgICAgIGF3YWl0IHRoaXMuc3RvcmFnZS5yZW1vdmUoQ09ORklHVVJBVElPTl9TVE9SQUdFX0tFWSk7XG4gICAgfVxuICAgIC8vIENvbmZpZyBleGlzdHM6IHN0b3JlIGl0IGluIHRoZSBsb2NhbCBzdG9yYWdlXG4gICAgZWxzZSB7XG4gICAgICBsZXQgbm93ID0gdGhpcy5fZGVidWcgJiYgRGF0ZS5ub3coKTtcblxuICAgICAgLy8gQ29udmVydCBpbWFnZXMsIGZvciBvZmZsaW5lIHVzYWdlXG4gICAgICBpZiAodGhpcy5uZXR3b3JrLm9ubGluZSAmJiBpc01vYmlsZSh3aW5kb3cpKSB7XG4gICAgICAgIGNvbnN0IGpvYnMgPSBbXTtcblxuICAgICAgICAvLyBEb3dubG9hZCBsb2dvc1xuICAgICAgICBpZiAoZGF0YS5sYXJnZUxvZ28gJiYgZGF0YS5sYXJnZUxvZ28uc3RhcnRzV2l0aCgnaHR0cCcpKSB7XG4gICAgICAgICAgY29uc3QgbGFyZ2VMb2dvID0gSW1hZ2VzVXRpbHMuZ2V0SW1hZ2VBbmRDcmVkaXQoZGF0YS5sYXJnZUxvZ28pPy5pbWFnZTsgLy8gUmVtb3ZlIGNyZWRpdFxuICAgICAgICAgIGpvYnMucHVzaCh0aGlzLmZpbGUuZ2V0SW1hZ2UobGFyZ2VMb2dvKS50aGVuKChpbWdVcmwpID0+IChkYXRhLmxhcmdlTG9nbyA9IGltZ1VybCkpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5zbWFsbExvZ28gJiYgZGF0YS5zbWFsbExvZ28uc3RhcnRzV2l0aCgnaHR0cCcpKSB7XG4gICAgICAgICAgY29uc3Qgc21hbGxMb2dvID0gSW1hZ2VzVXRpbHMuZ2V0SW1hZ2VBbmRDcmVkaXQoZGF0YS5zbWFsbExvZ28pPy5pbWFnZTsgLy8gUmVtb3ZlIGNyZWRpdFxuICAgICAgICAgIGpvYnMucHVzaCh0aGlzLmZpbGUuZ2V0SW1hZ2Uoc21hbGxMb2dvKS50aGVuKChpbWdVcmwpID0+IChkYXRhLnNtYWxsTG9nbyA9IGltZ1VybCkpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEJhY2tncm91bmQgaW1hZ2VzXG4gICAgICAgIGlmIChpc05vdEVtcHR5QXJyYXkoZGF0YS5iYWNrZ3JvdW5kSW1hZ2VzKSkge1xuICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgICAgICBtYXhXaWR0aDogdGhpcy5wbGF0Zm9ybS53aWR0aCgpLFxuICAgICAgICAgICAgbWF4SGVpZ2h0OiB0aGlzLnBsYXRmb3JtLmhlaWdodCgpLFxuICAgICAgICAgIH07XG5cbiAgICAgICAgICAvLyBDb252ZXJ0IHRoZSBGSVJTVCBpbWFnZSBmb3VuZFxuICAgICAgICAgIC8vIFdBUk46IGl0J3MgTk9UIG5lY2Vzc2FyeSB0byBjb252ZXJ0IEFMTCBpbWFnZSwgYnV0IG9ubHkgb25lLCBmb3Igc21hbGxlciBtZW1vcnkgZm9vdHByaW50XG4gICAgICAgICAgY29uc3QgaW5kZXggPSBkYXRhLmJhY2tncm91bmRJbWFnZXMuZmluZEluZGV4KChpbWcpID0+IGltZz8uc3RhcnRzV2l0aCgnaHR0cCcpKTtcbiAgICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICBjb25zdCBpbWFnZSA9IEltYWdlc1V0aWxzLmdldEltYWdlQW5kQ3JlZGl0KGRhdGEuYmFja2dyb3VuZEltYWdlc1tpbmRleF0pPy5pbWFnZTsgLy8gUmVtb3ZlIGNyZWRpdFxuICAgICAgICAgICAgam9icy5wdXNoKHRoaXMuZmlsZS5nZXRJbWFnZShpbWFnZSwgb3B0aW9ucykudGhlbigoZGF0YVVybCkgPT4gKGRhdGEuYmFja2dyb3VuZEltYWdlcyA9IFtkYXRhVXJsXSkpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBQYXJ0bmVyc1xuICAgICAgICBpZiAoaXNOb3RFbXB0eUFycmF5KGRhdGEucGFydG5lcnMpKSB7XG4gICAgICAgICAgZGF0YS5wYXJ0bmVycy5mb3JFYWNoKChkZXApID0+IHtcbiAgICAgICAgICAgIGlmIChkZXA/LmxvZ28gJiYgZGVwLmxvZ28uc3RhcnRzV2l0aCgnaHR0cCcpKSB7XG4gICAgICAgICAgICAgIGpvYnMucHVzaChcbiAgICAgICAgICAgICAgICB0aGlzLmZpbGVcbiAgICAgICAgICAgICAgICAgIC5nZXRJbWFnZShkZXAubG9nbywge1xuICAgICAgICAgICAgICAgICAgICBtYXhIZWlnaHQ6IDUwIC8qc2VlIGhvbWUgcGFnZSBDU1MgKi8sXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgLnRoZW4oKGltZykgPT4gKGRlcC5sb2dvID0gaW1nKSlcbiAgICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoKGVyciAmJiBlcnIubWVzc2FnZSkgfHwgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGRlcC5sb2dvO1xuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChqb2JzLmxlbmd0aCkge1xuICAgICAgICAgIGlmICh0aGlzLl9kZWJ1ZykgY29uc29sZS5kZWJ1ZyhgW2NvbmZpZ10gRmV0Y2hpbmcgJHtqb2JzLmxlbmd0aH0gaW1hZ2VzLi4uYCk7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKGpvYnMpO1xuICAgICAgICAgICAgaWYgKHRoaXMuX2RlYnVnKSBjb25zb2xlLmRlYnVnKGBbY29uZmlnXSBGZXRjaGluZyAke2pvYnMubGVuZ3RofSBpbWFnZXMgW09LXSBpbiAke0RhdGUubm93KCkgLSBub3d9bXNgKTtcbiAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFtjb25maWddIEZhaWxlZCB0byBmZXRjaCBpbWFnZShzKTogJHsoZXJyICYmIGVyci5tZXNzYWdlKSB8fCBlcnJ9YCwgZXJyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gU2F2aW5nIGNvbmZpZyB0byBzdG9yYWdlXG4gICAgICB7XG4gICAgICAgIG5vdyA9IHRoaXMuX2RlYnVnICYmIERhdGUubm93KCk7XG4gICAgICAgIGlmICh0aGlzLl9kZWJ1ZykgY29uc29sZS5kZWJ1ZygnW2NvbmZpZ10gU2F2aW5nIGNvbmZpZyBpbnRvIGxvY2FsIHN0b3JhZ2UuLi4nKTtcbiAgICAgICAgYXdhaXQgdGhpcy5zdG9yYWdlLnNldChDT05GSUdVUkFUSU9OX1NUT1JBR0VfS0VZLCBkYXRhLmFzT2JqZWN0KCkpO1xuICAgICAgICBpZiAodGhpcy5fZGVidWcpIGNvbnNvbGUuZGVidWcoYFtjb25maWddIFNhdmluZyBjb25maWcgaW50byBsb2NhbCBzdG9yYWdlIFtPS10gaW4gJHtEYXRlLm5vdygpIC0gbm93fW1zYCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHNob3dUb2FzdChvcHRzOiBTaG93VG9hc3RPcHRpb25zKSB7XG4gICAgYXdhaXQgVG9hc3RzLnNob3codGhpcy50b2FzdENvbnRyb2xsZXIsIHRoaXMudHJhbnNsYXRlLCBvcHRzKTtcbiAgfVxufVxuIl19
@@ -1,107 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { scryptEncode } from '@polkadot/util-crypto/scrypt/encode';
3
- import { base58Decode, base64Decode, base64Encode, cryptoWaitReady, ed25519PairFromSeed, ed25519Sign, ed25519Verify, sha256AsU8a, sha512AsU8a, } from '@polkadot/util-crypto';
4
- import { bytesToHex as toHex } from '@noble/hashes/utils';
5
- import { stringToU8a } from '@polkadot/util';
6
- import * as i0 from "@angular/core";
7
- export const ED25519_SEED_LENGTH = 32; // Length of a ED25519 seed
8
- export const SCRYPT_PARAMS = {
9
- SIMPLE: {
10
- N: 2048,
11
- r: 8,
12
- p: 1,
13
- },
14
- DEFAULT: {
15
- N: 4096,
16
- r: 16,
17
- p: 1,
18
- },
19
- SECURE: {
20
- N: 16384,
21
- r: 32,
22
- p: 2,
23
- },
24
- HARDEST: {
25
- N: 65536,
26
- r: 32,
27
- p: 4,
28
- },
29
- EXTREME: {
30
- N: 262144,
31
- r: 64,
32
- p: 8,
33
- },
34
- };
35
- export class CryptoService {
36
- static _ready = false;
37
- static get started() {
38
- return this._ready;
39
- }
40
- static async ready() {
41
- if (this._ready)
42
- return; // OK
43
- await cryptoWaitReady();
44
- this._ready = true;
45
- }
46
- /**
47
- * Generate a sign keypair, using scrypt, from a salt and a password
48
- *
49
- * @param salt
50
- * @param password
51
- * @param scryptParams
52
- */
53
- static async scryptKeypair(salt, password, scryptParams) {
54
- if (!this.started)
55
- await this.ready();
56
- const saltU8a = stringToU8a(salt);
57
- const result = scryptEncode(password, saltU8a, scryptParams || SCRYPT_PARAMS.DEFAULT);
58
- const seed = result.password.slice(0, ED25519_SEED_LENGTH);
59
- return ed25519PairFromSeed(seed);
60
- }
61
- /**
62
- * Sign a message, from a key pair
63
- */
64
- static async sign(message, keypair) {
65
- if (!this.started)
66
- await this.ready();
67
- const m = stringToU8a(message);
68
- const sig = ed25519Sign(m, keypair);
69
- return base64Encode(sig);
70
- }
71
- /**
72
- * Sign a message, from a key pair
73
- */
74
- static async verify(message, signature, publicKey) {
75
- if (!this.started)
76
- await this.ready();
77
- const m = stringToU8a(message);
78
- const sig = base64Decode(signature);
79
- const pub = base58Decode(publicKey);
80
- return ed25519Verify(m, sig, pub);
81
- }
82
- /**
83
- * Hash (using SHA256) a message, as Hex
84
- */
85
- static sha256(message) {
86
- const bytes = sha256AsU8a(message);
87
- return toHex(bytes);
88
- }
89
- /**
90
- * Hash (using SHA512) a message, as Hex
91
- */
92
- static sha512(message) {
93
- const bytes = sha512AsU8a(message);
94
- return toHex(bytes);
95
- }
96
- static encodeBase64(message) {
97
- const m = stringToU8a(message);
98
- return base64Encode(m);
99
- }
100
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CryptoService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
101
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CryptoService, providedIn: 'root' });
102
- }
103
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CryptoService, decorators: [{
104
- type: Injectable,
105
- args: [{ providedIn: 'root' }]
106
- }] });
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J5cHRvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvY3J5cHRvLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFbkUsT0FBTyxFQUNMLFlBQVksRUFDWixZQUFZLEVBQ1osWUFBWSxFQUNaLGVBQWUsRUFDZixtQkFBbUIsRUFDbkIsV0FBVyxFQUNYLGFBQWEsRUFDYixXQUFXLEVBQ1gsV0FBVyxHQUNaLE1BQU0sdUJBQXVCLENBQUM7QUFFL0IsT0FBTyxFQUFFLFVBQVUsSUFBSSxLQUFLLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRTdDLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLEVBQUUsQ0FBQyxDQUFDLDJCQUEyQjtBQUVsRSxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUc7SUFDM0IsTUFBTSxFQUFnQjtRQUNwQixDQUFDLEVBQUUsSUFBSTtRQUNQLENBQUMsRUFBRSxDQUFDO1FBQ0osQ0FBQyxFQUFFLENBQUM7S0FDTDtJQUNELE9BQU8sRUFBZ0I7UUFDckIsQ0FBQyxFQUFFLElBQUk7UUFDUCxDQUFDLEVBQUUsRUFBRTtRQUNMLENBQUMsRUFBRSxDQUFDO0tBQ0w7SUFDRCxNQUFNLEVBQWdCO1FBQ3BCLENBQUMsRUFBRSxLQUFLO1FBQ1IsQ0FBQyxFQUFFLEVBQUU7UUFDTCxDQUFDLEVBQUUsQ0FBQztLQUNMO0lBQ0QsT0FBTyxFQUFnQjtRQUNyQixDQUFDLEVBQUUsS0FBSztRQUNSLENBQUMsRUFBRSxFQUFFO1FBQ0wsQ0FBQyxFQUFFLENBQUM7S0FDTDtJQUNELE9BQU8sRUFBZ0I7UUFDckIsQ0FBQyxF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QUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgc2NyeXB0RW5jb2RlIH0gZnJvbSAnQHBvbGthZG90L3V0aWwtY3J5cHRvL3NjcnlwdC9lbmNvZGUnO1xuaW1wb3J0IHsgU2NyeXB0UGFyYW1zIH0gZnJvbSAnQHBvbGthZG90L3V0aWwtY3J5cHRvL3NjcnlwdC90eXBlcyc7XG5pbXBvcnQge1xuICBiYXNlNThEZWNvZGUsXG4gIGJhc2U2NERlY29kZSxcbiAgYmFzZTY0RW5jb2RlLFxuICBjcnlwdG9XYWl0UmVhZHksXG4gIGVkMjU1MTlQYWlyRnJvbVNlZWQsXG4gIGVkMjU1MTlTaWduLFxuICBlZDI1NTE5VmVyaWZ5LFxuICBzaGEyNTZBc1U4YSxcbiAgc2hhNTEyQXNVOGEsXG59IGZyb20gJ0Bwb2xrYWRvdC91dGlsLWNyeXB0byc7XG5cbmltcG9ydCB7IGJ5dGVzVG9IZXggYXMgdG9IZXggfSBmcm9tICdAbm9ibGUvaGFzaGVzL3V0aWxzJztcbmltcG9ydCB7IEtleXBhaXIgfSBmcm9tICdAcG9sa2Fkb3QvdXRpbC1jcnlwdG8vdHlwZXMnO1xuaW1wb3J0IHsgc3RyaW5nVG9VOGEgfSBmcm9tICdAcG9sa2Fkb3QvdXRpbCc7XG5cbmV4cG9ydCBjb25zdCBFRDI1NTE5X1NFRURfTEVOR1RIID0gMzI7IC8vIExlbmd0aCBvZiBhIEVEMjU1MTkgc2VlZFxuXG5leHBvcnQgY29uc3QgU0NSWVBUX1BBUkFNUyA9IHtcbiAgU0lNUExFOiA8U2NyeXB0UGFyYW1zPntcbiAgICBOOiAyMDQ4LFxuICAgIHI6IDgsXG4gICAgcDogMSxcbiAgfSxcbiAgREVGQVVMVDogPFNjcnlwdFBhcmFtcz57XG4gICAgTjogNDA5NixcbiAgICByOiAxNixcbiAgICBwOiAxLFxuICB9LFxuICBTRUNVUkU6IDxTY3J5cHRQYXJhbXM+e1xuICAgIE46IDE2Mzg0LFxuICAgIHI6IDMyLFxuICAgIHA6IDIsXG4gIH0sXG4gIEhBUkRFU1Q6IDxTY3J5cHRQYXJhbXM+e1xuICAgIE46IDY1NTM2LFxuICAgIHI6IDMyLFxuICAgIHA6IDQsXG4gIH0sXG4gIEVYVFJFTUU6IDxTY3J5cHRQYXJhbXM+e1xuICAgIE46IDI2MjE0NCxcbiAgICByOiA2NCxcbiAgICBwOiA4LFxuICB9LFxufTtcblxuZXhwb3J0IHsgS2V5cGFpciB9O1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIENyeXB0b1NlcnZpY2Uge1xuICBwcml2YXRlIHN0YXRpYyBfcmVhZHkgPSBmYWxzZTtcblxuICBwcml2YXRlIHN0YXRpYyBnZXQgc3RhcnRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVhZHk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBhc3luYyByZWFkeSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5fcmVhZHkpIHJldHVybjsgLy8gT0tcblxuICAgIGF3YWl0IGNyeXB0b1dhaXRSZWFkeSgpO1xuICAgIHRoaXMuX3JlYWR5ID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZSBhIHNpZ24ga2V5cGFpciwgdXNpbmcgc2NyeXB0LCBmcm9tIGEgc2FsdCBhbmQgYSBwYXNzd29yZFxuICAgKlxuICAgKiBAcGFyYW0gc2FsdFxuICAgKiBAcGFyYW0gcGFzc3dvcmRcbiAgICogQHBhcmFtIHNjcnlwdFBhcmFtc1xuICAgKi9cbiAgc3RhdGljIGFzeW5jIHNjcnlwdEtleXBhaXIoc2FsdDogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nLCBzY3J5cHRQYXJhbXM/OiBTY3J5cHRQYXJhbXMpOiBQcm9taXNlPEtleXBhaXI+IHtcbiAgICBpZiAoIXRoaXMuc3RhcnRlZCkgYXdhaXQgdGhpcy5yZWFkeSgpO1xuICAgIGNvbnN0IHNhbHRVOGEgPSBzdHJpbmdUb1U4YShzYWx0KTtcbiAgICBjb25zdCByZXN1bHQgPSBzY3J5cHRFbmNvZGUocGFzc3dvcmQsIHNhbHRVOGEsIHNjcnlwdFBhcmFtcyB8fCBTQ1JZUFRfUEFSQU1TLkRFRkFVTFQpO1xuICAgIGNvbnN0IHNlZWQgPSByZXN1bHQucGFzc3dvcmQuc2xpY2UoMCwgRUQyNTUxOV9TRUVEX0xFTkdUSCk7XG4gICAgcmV0dXJuIGVkMjU1MTlQYWlyRnJvbVNlZWQoc2VlZCk7XG4gIH1cblxuICAvKipcbiAgICogU2lnbiBhIG1lc3NhZ2UsIGZyb20gYSBrZXkgcGFpclxuICAgKi9cbiAgc3RhdGljIGFzeW5jIHNpZ24obWVzc2FnZTogc3RyaW5nLCBrZXlwYWlyOiBLZXlwYWlyKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBpZiAoIXRoaXMuc3RhcnRlZCkgYXdhaXQgdGhpcy5yZWFkeSgpO1xuXG4gICAgY29uc3QgbSA9IHN0cmluZ1RvVThhKG1lc3NhZ2UpO1xuICAgIGNvbnN0IHNpZyA9IGVkMjU1MTlTaWduKG0sIGtleXBhaXIpO1xuICAgIHJldHVybiBiYXNlNjRFbmNvZGUoc2lnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWduIGEgbWVzc2FnZSwgZnJvbSBhIGtleSBwYWlyXG4gICAqL1xuICBzdGF0aWMgYXN5bmMgdmVyaWZ5KG1lc3NhZ2U6IHN0cmluZywgc2lnbmF0dXJlOiBzdHJpbmcsIHB1YmxpY0tleTogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgaWYgKCF0aGlzLnN0YXJ0ZWQpIGF3YWl0IHRoaXMucmVhZHkoKTtcblxuICAgIGNvbnN0IG0gPSBzdHJpbmdUb1U4YShtZXNzYWdlKTtcbiAgICBjb25zdCBzaWcgPSBiYXNlNjREZWNvZGUoc2lnbmF0dXJlKTtcbiAgICBjb25zdCBwdWIgPSBiYXNlNThEZWNvZGUocHVibGljS2V5KTtcbiAgICByZXR1cm4gZWQyNTUxOVZlcmlmeShtLCBzaWcsIHB1Yik7XG4gIH1cblxuICAvKipcbiAgICogSGFzaCAodXNpbmcgU0hBMjU2KSBhIG1lc3NhZ2UsIGFzIEhleFxuICAgKi9cbiAgc3RhdGljIHNoYTI1NihtZXNzYWdlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGJ5dGVzID0gc2hhMjU2QXNVOGEobWVzc2FnZSk7XG4gICAgcmV0dXJuIHRvSGV4KGJ5dGVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYXNoICh1c2luZyBTSEE1MTIpIGEgbWVzc2FnZSwgYXMgSGV4XG4gICAqL1xuICBzdGF0aWMgc2hhNTEyKG1lc3NhZ2U6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgYnl0ZXMgPSBzaGE1MTJBc1U4YShtZXNzYWdlKTtcbiAgICByZXR1cm4gdG9IZXgoYnl0ZXMpO1xuICB9XG5cbiAgc3RhdGljIGVuY29kZUJhc2U2NChtZXNzYWdlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IG0gPSBzdHJpbmdUb1U4YShtZXNzYWdlKTtcbiAgICByZXR1cm4gYmFzZTY0RW5jb2RlKG0pO1xuICB9XG59XG4iXX0=
@@ -1,54 +0,0 @@
1
- export const ErrorCodes = {
2
- UNKNOWN_ERROR: 0,
3
- LOAD_ACCOUNT_ERROR: 1,
4
- BAD_PASSWORD: 2,
5
- UNKNOWN_ACCOUNT_EMAIL: 3,
6
- EMAIL_ALREADY_REGISTERED: 4,
7
- UNREACHABLE_NETWORK_ERROR: 4,
8
- UNKNOWN_NETWORK_ERROR: 5,
9
- SENT_CONFIRMATION_EMAIL_FAILED: 6,
10
- CONFIRM_EMAIL_FAILED: 7,
11
- SAVE_ACCOUNT_ERROR: 8,
12
- ACCOUNT_NOT_EXISTS: 9,
13
- SAVE_SETTINGS_ERROR: 8,
14
- SUBSCRIBE_ACCOUNT_ERROR: 10,
15
- ENTITY_STORAGE_MIGRATION_FAILED: 11,
16
- LOAD_DATA_ERROR: 12,
17
- SAVE_DATA_ERROR: 13,
18
- DELETE_DATA_ERROR: 14,
19
- SUBSCRIBE_DATA_ERROR: 15,
20
- // DATA errors (load error)
21
- LOAD_PERSONS_ERROR: 100,
22
- DATA_NOT_FOUND_ERROR: 104,
23
- TABLE_INVALID_ROW_ERROR: 350,
24
- TABLE_READ_ONLY: 351,
25
- UNAUTHORIZED: 401,
26
- INTERNAL_SERVER_ERROR: 500,
27
- AUTH_CHALLENGE_ERROR: 601,
28
- AUTH_SERVER_ERROR: 602,
29
- AUTH_SEND_RESET_PASSWORD_EMAIL_ERROR: 603,
30
- AUTH_RESET_PUBKEY_ERROR: 604,
31
- AUTH_UPDATE_PUBKEY_ERROR: 605,
32
- LOAD_CONFIG_ERROR: 700,
33
- SAVE_CONFIG_ERROR: 701,
34
- LOAD_TRASH_ENTITY_ERROR: 800,
35
- DELETE_TRASH_ENTITY_ERROR: 801,
36
- };
37
- export const ServerErrorCodes = {
38
- BAD_REQUEST: 400,
39
- UNAUTHORIZED: 401, // not authenticated
40
- FORBIDDEN: 403, // authenticated but no access right
41
- NOT_FOUND: 404,
42
- // sumaris-core-shared errors
43
- INTERNAL_SERVER_ERROR: 500,
44
- DATA_LOCKED: 520,
45
- BAD_UPDATE_DATE: 521,
46
- DENY_DELETION: 522,
47
- DATA_NOT_UNIQUE: 523,
48
- // sumaris-server errors
49
- INVALID_EMAIL_CONFIRMATION: 550,
50
- INVALID_QUERY_VARIABLES: 551,
51
- ACCOUNT_ALREADY_EXISTS: 552,
52
- BAD_APP_VERSION: 553,
53
- };
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL3NlcnZpY2VzL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpQkEsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLGFBQWEsRUFBRSxDQUFDO0lBRWhCLGtCQUFrQixFQUFFLENBQUM7SUFDckIsWUFBWSxFQUFFLENBQUM7SUFDZixxQkFBcUIsRUFBRSxDQUFDO0lBQ3hCLHdCQUF3QixFQUFFLENBQUM7SUFDM0IseUJBQXlCLEVBQUUsQ0FBQztJQUM1QixxQkFBcUIsRUFBRSxDQUFDO0lBQ3hCLDhCQUE4QixFQUFFLENBQUM7SUFDakMsb0JBQW9CLEVBQUUsQ0FBQztJQUN2QixrQkFBa0IsRUFBRSxDQUFDO0lBQ3JCLGtCQUFrQixFQUFFLENBQUM7SUFDckIsbUJBQW1CLEVBQUUsQ0FBQztJQUN0Qix1QkFBdUIsRUFBRSxFQUFFO0lBQzNCLCtCQUErQixFQUFFLEVBQUU7SUFFbkMsZUFBZSxFQUFFLEVBQUU7SUFDbkIsZUFBZSxFQUFFLEVBQUU7SUFDbkIsaUJBQWlCLEVBQUUsRUFBRTtJQUNyQixvQkFBb0IsRUFBRSxFQUFFO0lBRXhCLDJCQUEyQjtJQUMzQixrQkFBa0IsRUFBRSxHQUFHO0lBQ3ZCLG9CQUFvQixFQUFFLEdBQUc7SUFFekIsdUJBQXVCLEVBQUUsR0FBRztJQUM1QixlQUFlLEVBQUUsR0FBRztJQUVwQixZQUFZLEVBQUUsR0FBRztJQUNqQixxQkFBcUIsRUFBRSxHQUFHO0lBQzFCLG9CQUFvQixFQUFFLEdBQUc7SUFDekIsaUJBQWlCLEVBQUUsR0FBRztJQUN0QixvQ0FBb0MsRUFBRSxHQUFHO0lBQ3pDLHVCQUF1QixFQUFFLEdBQUc7SUFDNUIsd0JBQXdCLEVBQUUsR0FBRztJQUU3QixpQkFBaUIsRUFBRSxHQUFHO0lBQ3RCLGlCQUFpQixFQUFFLEdBQUc7SUFFdEIsdUJBQXVCLEVBQUUsR0FBRztJQUM1Qix5QkFBeUIsRUFBRSxHQUFHO0NBQy9CLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUM5QixXQUFXLEVBQUUsR0FBRztJQUNoQixZQUFZLEVBQUUsR0FBRyxFQUFFLG9CQUFvQjtJQUN2QyxTQUFTLEVBQUUsR0FBRyxFQUFFLG9DQUFvQztJQUNwRCxTQUFTLEVBQUUsR0FBRztJQUVkLDZCQUE2QjtJQUM3QixxQkFBcUIsRUFBRSxHQUFHO0lBQzFCLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLGVBQWUsRUFBRSxHQUFHO0lBQ3BCLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLGVBQWUsRUFBRSxHQUFHO0lBRXBCLHdCQUF3QjtJQUN4QiwwQkFBMEIsRUFBRSxHQUFHO0lBQy9CLHVCQUF1QixFQUFFLEdBQUc7SUFDNUIsc0JBQXNCLEVBQUUsR0FBRztJQUMzQixlQUFlLEVBQUUsR0FBRztDQUNyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybUVycm9ycyB9IGZyb20gJy4uLy4uL3NoYXJlZC9mb3Jtcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwRXJyb3Ige1xuICBjb2RlPzogbnVtYmVyO1xuICBtZXNzYWdlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwcEVycm9yV2l0aERldGFpbHMgZXh0ZW5kcyBBcHBFcnJvciB7XG4gIGRldGFpbHM6IEFwcEVycm9yICYgeyBlcnJvcnM/OiBGb3JtRXJyb3JzIH07XG59XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTZXJ2aWNlRXJyb3Ige1xuICBjb2RlOiBudW1iZXI7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgcmVqZWN0PzogKGVycikgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGNvbnN0IEVycm9yQ29kZXMgPSB7XG4gIFVOS05PV05fRVJST1I6IDAsXG5cbiAgTE9BRF9BQ0NPVU5UX0VSUk9SOiAxLFxuICBCQURfUEFTU1dPUkQ6IDIsXG4gIFVOS05PV05fQUNDT1VOVF9FTUFJTDogMyxcbiAgRU1BSUxfQUxSRUFEWV9SRUdJU1RFUkVEOiA0LFxuICBVTlJFQUNIQUJMRV9ORVRXT1JLX0VSUk9SOiA0LFxuICBVTktOT1dOX05FVFdPUktfRVJST1I6IDUsXG4gIFNFTlRfQ09ORklSTUFUSU9OX0VNQUlMX0ZBSUxFRDogNixcbiAgQ09ORklSTV9FTUFJTF9GQUlMRUQ6IDcsXG4gIFNBVkVfQUNDT1VOVF9FUlJPUjogOCxcbiAgQUNDT1VOVF9OT1RfRVhJU1RTOiA5LFxuICBTQVZFX1NFVFRJTkdTX0VSUk9SOiA4LFxuICBTVUJTQ1JJQkVfQUNDT1VOVF9FUlJPUjogMTAsXG4gIEVOVElUWV9TVE9SQUdFX01JR1JBVElPTl9GQUlMRUQ6IDExLFxuXG4gIExPQURfREFUQV9FUlJPUjogMTIsXG4gIFNBVkVfREFUQV9FUlJPUjogMTMsXG4gIERFTEVURV9EQVRBX0VSUk9SOiAxNCxcbiAgU1VCU0NSSUJFX0RBVEFfRVJST1I6IDE1LFxuXG4gIC8vIERBVEEgZXJyb3JzIChsb2FkIGVycm9yKVxuICBMT0FEX1BFUlNPTlNfRVJST1I6IDEwMCxcbiAgREFUQV9OT1RfRk9VTkRfRVJST1I6IDEwNCxcblxuICBUQUJMRV9JTlZBTElEX1JPV19FUlJPUjogMzUwLFxuICBUQUJMRV9SRUFEX09OTFk6IDM1MSxcblxuICBVTkFVVEhPUklaRUQ6IDQwMSxcbiAgSU5URVJOQUxfU0VSVkVSX0VSUk9SOiA1MDAsXG4gIEFVVEhfQ0hBTExFTkdFX0VSUk9SOiA2MDEsXG4gIEFVVEhfU0VSVkVSX0VSUk9SOiA2MDIsXG4gIEFVVEhfU0VORF9SRVNFVF9QQVNTV09SRF9FTUFJTF9FUlJPUjogNjAzLFxuICBBVVRIX1JFU0VUX1BVQktFWV9FUlJPUjogNjA0LFxuICBBVVRIX1VQREFURV9QVUJLRVlfRVJST1I6IDYwNSxcblxuICBMT0FEX0NPTkZJR19FUlJPUjogNzAwLFxuICBTQVZFX0NPTkZJR19FUlJPUjogNzAxLFxuXG4gIExPQURfVFJBU0hfRU5USVRZX0VSUk9SOiA4MDAsXG4gIERFTEVURV9UUkFTSF9FTlRJVFlfRVJST1I6IDgwMSxcbn07XG5cbmV4cG9ydCBjb25zdCBTZXJ2ZXJFcnJvckNvZGVzID0ge1xuICBCQURfUkVRVUVTVDogNDAwLFxuICBVTkFVVEhPUklaRUQ6IDQwMSwgLy8gbm90IGF1dGhlbnRpY2F0ZWRcbiAgRk9SQklEREVOOiA0MDMsIC8vIGF1dGhlbnRpY2F0ZWQgYnV0IG5vIGFjY2VzcyByaWdodFxuICBOT1RfRk9VTkQ6IDQwNCxcblxuICAvLyBzdW1hcmlzLWNvcmUtc2hhcmVkIGVycm9yc1xuICBJTlRFUk5BTF9TRVJWRVJfRVJST1I6IDUwMCxcbiAgREFUQV9MT0NLRUQ6IDUyMCxcbiAgQkFEX1VQREFURV9EQVRFOiA1MjEsXG4gIERFTllfREVMRVRJT046IDUyMixcbiAgREFUQV9OT1RfVU5JUVVFOiA1MjMsXG5cbiAgLy8gc3VtYXJpcy1zZXJ2ZXIgZXJyb3JzXG4gIElOVkFMSURfRU1BSUxfQ09ORklSTUFUSU9OOiA1NTAsXG4gIElOVkFMSURfUVVFUllfVkFSSUFCTEVTOiA1NTEsXG4gIEFDQ09VTlRfQUxSRUFEWV9FWElTVFM6IDU1MixcbiAgQkFEX0FQUF9WRVJTSU9OOiA1NTMsXG59O1xuIl19