@sumaris-net/ngx-components 4.0.0-rc8 → 18.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 (555) hide show
  1. package/README.md +5 -3
  2. package/doc/changelog.md +522 -280
  3. package/esm2022/public_api.mjs +38 -19
  4. package/esm2022/src/app/admin/admin-routing.module.mjs +10 -17
  5. package/esm2022/src/app/admin/admin.module.mjs +7 -9
  6. package/esm2022/src/app/admin/services/filter/person.filter.mjs +3 -3
  7. package/esm2022/src/app/admin/services/person.service.mjs +31 -31
  8. package/esm2022/src/app/admin/services/validator/person.validator.mjs +10 -10
  9. package/esm2022/src/app/admin/users/users.mjs +22 -19
  10. package/esm2022/src/app/admin/users/users.module.mjs +8 -10
  11. package/esm2022/src/app/core/about/about.modal.mjs +7 -7
  12. package/esm2022/src/app/core/about/about.module.mjs +8 -21
  13. package/esm2022/src/app/core/account/account.module.mjs +28 -18
  14. package/esm2022/src/app/core/account/account.page.mjs +19 -5
  15. package/esm2022/src/app/core/account/new-token.form.mjs +106 -0
  16. package/esm2022/src/app/core/account/new-token.modal.mjs +27 -86
  17. package/esm2022/src/app/core/account/password/change-password.form.mjs +60 -0
  18. package/esm2022/src/app/core/account/password/change-password.module.mjs +22 -0
  19. package/esm2022/src/app/core/account/password/change-password.page.mjs +144 -0
  20. package/esm2022/src/app/core/account/token.table.mjs +47 -35
  21. package/esm2022/src/app/core/auth/auth.form.mjs +47 -28
  22. package/esm2022/src/app/core/auth/auth.modal.mjs +6 -6
  23. package/esm2022/src/app/core/auth/auth.module.mjs +22 -13
  24. package/esm2022/src/app/core/auth/reset-password.modal.mjs +77 -0
  25. package/esm2022/src/app/core/core.module.mjs +28 -61
  26. package/esm2022/src/app/core/core.testing.module.mjs +34 -20
  27. package/esm2022/src/app/core/form/array/form-array.mjs +325 -0
  28. package/esm2022/src/app/core/form/array/testing/form-array-test.module.mjs +23 -0
  29. package/esm2022/src/app/core/form/array/testing/form-array.test.mjs +94 -0
  30. package/esm2022/src/app/core/form/buttons/form-buttons-bar.component.mjs +24 -25
  31. package/esm2022/src/app/core/form/buttons/form-buttons-bar.module.mjs +9 -13
  32. package/esm2022/src/app/core/form/entity/editor.class.mjs +64 -517
  33. package/esm2022/src/app/core/form/entity/entity-editor-modal.class.mjs +26 -42
  34. package/esm2022/src/app/core/form/entity/entity-editor.class.mjs +42 -41
  35. package/esm2022/src/app/core/form/entity/entity-metadata.component.mjs +5 -5
  36. package/esm2022/src/app/core/form/entity/entity.module.mjs +8 -14
  37. package/esm2022/src/app/core/form/entity/tab-editor.class.mjs +194 -0
  38. package/esm2022/src/app/core/form/form-container.class.mjs +327 -0
  39. package/esm2022/src/app/core/form/form.class.mjs +39 -56
  40. package/esm2022/src/app/core/form/form.module.mjs +14 -10
  41. package/esm2022/src/app/core/form/form.utils.mjs +23 -306
  42. package/esm2022/src/app/core/form/list/list.form.mjs +16 -14
  43. package/esm2022/src/app/core/form/list/list.module.mjs +8 -12
  44. package/esm2022/src/app/core/form/properties/properties.form.mjs +139 -57
  45. package/esm2022/src/app/core/form/properties/properties.module.mjs +9 -15
  46. package/esm2022/src/app/core/form/properties/properties.table.mjs +27 -28
  47. package/esm2022/src/app/core/form/properties/properties.utils.mjs +60 -0
  48. package/esm2022/src/app/core/form/properties/property.validator.mjs +23 -9
  49. package/esm2022/src/app/core/form/properties/testing/properties-form.test.mjs +18 -18
  50. package/esm2022/src/app/core/form/properties/testing/properties-form.testing.module.mjs +8 -24
  51. package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.mjs +15 -15
  52. package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.module.mjs +10 -25
  53. package/esm2022/src/app/core/form/text-popover/text-popover.component.mjs +7 -7
  54. package/esm2022/src/app/core/form/text-popover/text-popover.module.mjs +9 -13
  55. package/esm2022/src/app/core/form/username/username.form.mjs +52 -0
  56. package/esm2022/src/app/core/form/username/username.module.mjs +20 -0
  57. package/esm2022/src/app/core/graphql/graphql.module.mjs +8 -16
  58. package/esm2022/src/app/core/graphql/graphql.service.mjs +101 -109
  59. package/esm2022/src/app/core/graphql/graphql.utils.mjs +12 -11
  60. package/esm2022/src/app/core/home/home.mjs +81 -52
  61. package/esm2022/src/app/core/home/home.module.mjs +10 -19
  62. package/esm2022/src/app/core/icon/icon.component.mjs +5 -5
  63. package/esm2022/src/app/core/icon/icon.module.mjs +8 -17
  64. package/esm2022/src/app/core/install/install-upgrade-card.component.mjs +33 -37
  65. package/esm2022/src/app/core/install/install-upgrade-card.module.mjs +9 -13
  66. package/esm2022/src/app/core/menu/menu.component.mjs +5 -6
  67. package/esm2022/src/app/core/menu/menu.model.mjs +21 -18
  68. package/esm2022/src/app/core/menu/menu.module.mjs +7 -12
  69. package/esm2022/src/app/core/menu/menu.service.mjs +44 -60
  70. package/esm2022/src/app/core/menu/sub-menu-tab.directive.mjs +4 -4
  71. package/esm2022/src/app/core/menu/testing/menu-other.testing.mjs +7 -6
  72. package/esm2022/src/app/core/menu/testing/menu.testing.mjs +43 -8
  73. package/esm2022/src/app/core/menu/testing/menu.testing.module.mjs +8 -27
  74. package/esm2022/src/app/core/offline/update-offline-mode-card.component.mjs +6 -7
  75. package/esm2022/src/app/core/offline/update-offline-mode-card.module.mjs +9 -13
  76. package/esm2022/src/app/core/peer/select-peer.modal.mjs +31 -21
  77. package/esm2022/src/app/core/peer/select-peer.module.mjs +11 -23
  78. package/esm2022/src/app/core/register/register-confirm.page.mjs +18 -16
  79. package/esm2022/src/app/core/register/register.form.mjs +7 -7
  80. package/esm2022/src/app/core/register/register.modal.mjs +6 -6
  81. package/esm2022/src/app/core/register/register.module.mjs +8 -29
  82. package/esm2022/src/app/core/services/account.service.mjs +272 -170
  83. package/esm2022/src/app/core/services/auth-guard.service.mjs +13 -15
  84. package/esm2022/src/app/core/services/base-entity-service.class.mjs +55 -64
  85. package/esm2022/src/app/core/services/base-graphql-service.class.mjs +39 -33
  86. package/esm2022/src/app/core/services/base58.mjs +8 -4
  87. package/esm2022/src/app/core/services/config/core.config.mjs +88 -37
  88. package/esm2022/src/app/core/services/config.service.mjs +81 -62
  89. package/esm2022/src/app/core/services/crypto.service.mjs +11 -11
  90. package/esm2022/src/app/core/services/errors.mjs +6 -5
  91. package/esm2022/src/app/core/services/local-settings.service.mjs +58 -44
  92. package/esm2022/src/app/core/services/model/account.model.mjs +12 -17
  93. package/esm2022/src/app/core/services/model/config.model.mjs +7 -7
  94. package/esm2022/src/app/core/services/model/department.model.mjs +3 -2
  95. package/esm2022/src/app/core/services/model/entity.decorators.mjs +6 -6
  96. package/esm2022/src/app/core/services/model/entity.model.mjs +27 -31
  97. package/esm2022/src/app/core/services/model/filter.model.mjs +12 -15
  98. package/esm2022/src/app/core/services/model/history.model.mjs +1 -1
  99. package/esm2022/src/app/core/services/model/model.enum.mjs +2 -2
  100. package/esm2022/src/app/core/services/model/peer.model.mjs +19 -9
  101. package/esm2022/src/app/core/services/model/person.model.mjs +26 -22
  102. package/esm2022/src/app/core/services/model/referential.model.mjs +36 -23
  103. package/esm2022/src/app/core/services/model/settings.model.mjs +2 -1
  104. package/esm2022/src/app/core/services/model/token.model.mjs +7 -3
  105. package/esm2022/src/app/core/services/model/tree-item-entity.model.mjs +3 -7
  106. package/esm2022/src/app/core/services/network.service.mjs +99 -76
  107. package/esm2022/src/app/core/services/network.types.mjs +1 -1
  108. package/esm2022/src/app/core/services/network.utils.mjs +3 -3
  109. package/esm2022/src/app/core/services/pipes/account.pipes.mjs +11 -11
  110. package/esm2022/src/app/core/services/pipes/department-to-string.pipe.mjs +6 -6
  111. package/esm2022/src/app/core/services/pipes/person-to-string.pipe.mjs +9 -9
  112. package/esm2022/src/app/core/services/pipes/pipes.module.mjs +54 -0
  113. package/esm2022/src/app/core/services/pipes/referential-to-string.pipe.mjs +21 -0
  114. package/esm2022/src/app/core/services/pipes/usage-mode.pipes.mjs +11 -11
  115. package/esm2022/src/app/core/services/platform.service.mjs +102 -69
  116. package/esm2022/src/app/core/services/storage/entities-storage.service.mjs +32 -39
  117. package/esm2022/src/app/core/services/storage/entity-store.class.mjs +36 -45
  118. package/esm2022/src/app/core/services/testing/referential-filter.model.mjs +1 -1
  119. package/esm2022/src/app/core/services/testing/referential.validator.mjs +14 -14
  120. package/esm2022/src/app/core/services/validator/account.validator.mjs +5 -5
  121. package/esm2022/src/app/core/services/validator/base.validator.class.mjs +5 -5
  122. package/esm2022/src/app/core/services/validator/local-settings.validator.mjs +34 -20
  123. package/esm2022/src/app/core/services/validator/user-settings.validator.mjs +5 -5
  124. package/esm2022/src/app/core/services/validator/user-token.validator.mjs +12 -9
  125. package/esm2022/src/app/core/settings/settings.module.mjs +9 -21
  126. package/esm2022/src/app/core/settings/settings.page.mjs +76 -63
  127. package/esm2022/src/app/core/table/async-table.class.mjs +219 -201
  128. package/esm2022/src/app/core/table/column/actions-column.component.mjs +127 -0
  129. package/esm2022/src/app/core/table/column/nav-actions-column.component.mjs +117 -0
  130. package/esm2022/src/app/core/table/column/row-field.component.mjs +116 -0
  131. package/esm2022/src/app/core/table/entities-async-table-datasource.class.mjs +31 -33
  132. package/esm2022/src/app/core/table/entities-table-datasource.class.mjs +36 -36
  133. package/esm2022/src/app/core/table/memory-table.class.mjs +5 -5
  134. package/esm2022/src/app/core/table/table-select-columns.component.mjs +8 -8
  135. package/esm2022/src/app/core/table/table.class.mjs +193 -152
  136. package/esm2022/src/app/core/table/table.model.mjs +1 -1
  137. package/esm2022/src/app/core/table/table.module.mjs +35 -24
  138. package/esm2022/src/app/core/table/table.pipes.mjs +77 -0
  139. package/esm2022/src/app/core/table/table.utils.mjs +2 -4
  140. package/esm2022/src/app/core/table/testing/table-validator.service.mjs +9 -5
  141. package/esm2022/src/app/core/table/testing/table.testing.mjs +116 -78
  142. package/esm2022/src/app/core/table/testing/table.testing.module.mjs +8 -33
  143. package/esm2022/src/app/core/table/testing/table2-validator.service.mjs +4 -4
  144. package/esm2022/src/app/core/table/testing/table2.testing.mjs +68 -45
  145. package/esm2022/src/app/shared/alerts.mjs +49 -45
  146. package/esm2022/src/app/shared/audio/audio.mjs +25 -27
  147. package/esm2022/src/app/shared/audio/audio.testing.mjs +5 -5
  148. package/esm2022/src/app/shared/audio/audio.testing.module.mjs +10 -25
  149. package/esm2022/src/app/shared/capacitor/keyboard.mjs +5 -5
  150. package/esm2022/src/app/shared/capacitor/plugins.mjs +1 -1
  151. package/esm2022/src/app/shared/constants.mjs +9 -4
  152. package/esm2022/src/app/shared/dates.mjs +18 -16
  153. package/esm2022/src/app/shared/debug/debug-service.class.mjs +1 -1
  154. package/esm2022/src/app/shared/debug/debug.component.mjs +5 -5
  155. package/esm2022/src/app/shared/debug/debug.module.mjs +8 -29
  156. package/esm2022/src/app/shared/directives/autofocus.directive.mjs +8 -15
  157. package/esm2022/src/app/shared/directives/autotitle.directive.mjs +4 -4
  158. package/esm2022/src/app/shared/directives/directives.module.mjs +8 -29
  159. package/esm2022/src/app/shared/directives/drag-and-drop.directive.mjs +4 -4
  160. package/esm2022/src/app/shared/directives/ng-var.directive.mjs +4 -4
  161. package/esm2022/src/app/shared/directives/resizable/resizable.component.mjs +4 -4
  162. package/esm2022/src/app/shared/directives/resizable/resizable.directive.mjs +4 -4
  163. package/esm2022/src/app/shared/directives/resizable/resizable.module.mjs +4 -4
  164. package/esm2022/src/app/shared/events.mjs +6 -8
  165. package/esm2022/src/app/shared/file/csv.utils.mjs +38 -18
  166. package/esm2022/src/app/shared/file/file.service.mjs +11 -15
  167. package/esm2022/src/app/shared/file/file.utils.mjs +13 -11
  168. package/esm2022/src/app/shared/file/images.utils.mjs +29 -4
  169. package/esm2022/src/app/shared/file/json.utils.mjs +11 -4
  170. package/esm2022/src/app/shared/file/uri.utils.mjs +1 -1
  171. package/esm2022/src/app/shared/focusable.mjs +1 -1
  172. package/esm2022/src/app/shared/form/field.component.mjs +69 -43
  173. package/esm2022/src/app/shared/form/field.model.mjs +4 -4
  174. package/esm2022/src/app/shared/form/loading-spinner.mjs +5 -5
  175. package/esm2022/src/app/shared/forms.mjs +116 -43
  176. package/esm2022/src/app/shared/functions.mjs +139 -71
  177. package/esm2022/src/app/shared/geolocation/geolocation.utils.mjs +14 -14
  178. package/esm2022/src/app/shared/gesture/gesture-config.mjs +10 -10
  179. package/esm2022/src/app/shared/gesture/hammer.utils.mjs +1 -1
  180. package/esm2022/src/app/shared/graph/colors.utils.mjs +14 -18
  181. package/esm2022/src/app/shared/graph/graph-colors.mjs +23 -29
  182. package/esm2022/src/app/shared/guard/component-dirty.guard.mjs +4 -4
  183. package/esm2022/src/app/shared/help/help.modal.mjs +6 -6
  184. package/esm2022/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +5 -5
  185. package/esm2022/src/app/shared/hotkeys/hotkeys.service.mjs +44 -17
  186. package/esm2022/src/app/shared/hotkeys/shared-hotkeys.module.mjs +9 -27
  187. package/esm2022/src/app/shared/http/http.utils.mjs +15 -11
  188. package/esm2022/src/app/shared/image/gallery/image-gallery.component.mjs +27 -27
  189. package/esm2022/src/app/shared/image/gallery/image-gallery.module.mjs +13 -10
  190. package/esm2022/src/app/shared/image/gallery/testing/gallegry.model.testing.mjs +1 -1
  191. package/esm2022/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +14 -17
  192. package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.mjs +9 -13
  193. package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +14 -11
  194. package/esm2022/src/app/shared/image/image.model.mjs +1 -1
  195. package/esm2022/src/app/shared/image/image.module.mjs +8 -13
  196. package/esm2022/src/app/shared/image/image.service.mjs +14 -12
  197. package/esm2022/src/app/shared/inputs.mjs +52 -20
  198. package/esm2022/src/app/shared/interceptors/progess.interceptor.mjs +2 -3
  199. package/esm2022/src/app/shared/logging/log-level.model.mjs +1 -1
  200. package/esm2022/src/app/shared/logging/logger.model.mjs +2 -2
  201. package/esm2022/src/app/shared/logging/logging-service.class.mjs +17 -20
  202. package/esm2022/src/app/shared/logging/logging-service.module.mjs +6 -6
  203. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.config.mjs +7 -10
  204. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.mjs +348 -238
  205. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +13 -16
  206. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.utils.mjs +5 -4
  207. package/esm2022/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +51 -37
  208. package/esm2022/src/app/shared/material/badge/badge.directive.mjs +99 -57
  209. package/esm2022/src/app/shared/material/badge/badge.module.mjs +8 -20
  210. package/esm2022/src/app/shared/material/badge/badge.test.mjs +5 -5
  211. package/esm2022/src/app/shared/material/boolean/boolean.module.mjs +19 -20
  212. package/esm2022/src/app/shared/material/boolean/material.boolean.mjs +209 -104
  213. package/esm2022/src/app/shared/material/boolean/testing/boolean.test.page.mjs +15 -8
  214. package/esm2022/src/app/shared/material/chips/chips.module.mjs +12 -13
  215. package/esm2022/src/app/shared/material/chips/material.chips.mjs +228 -168
  216. package/esm2022/src/app/shared/material/chips/testing/chips.test.mjs +20 -21
  217. package/esm2022/src/app/shared/material/datetime/datetime.module.mjs +12 -27
  218. package/esm2022/src/app/shared/material/datetime/material.date.mjs +167 -92
  219. package/esm2022/src/app/shared/material/datetime/material.dateshort.mjs +128 -77
  220. package/esm2022/src/app/shared/material/datetime/material.datetime.mjs +297 -165
  221. package/esm2022/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +34 -30
  222. package/esm2022/src/app/shared/material/datetime/testing/mat-date.test.mjs +31 -27
  223. package/esm2022/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +26 -23
  224. package/esm2022/src/app/shared/material/duration/duration.module.mjs +11 -16
  225. package/esm2022/src/app/shared/material/duration/duration.utils.mjs +3 -6
  226. package/esm2022/src/app/shared/material/duration/material.duration.mjs +35 -34
  227. package/esm2022/src/app/shared/material/duration/testing/mat-duration.test.mjs +23 -22
  228. package/esm2022/src/app/shared/material/latlong/latlong.utils.mjs +217 -170
  229. package/esm2022/src/app/shared/material/latlong/material.latlong.mjs +182 -241
  230. package/esm2022/src/app/shared/material/latlong/material.latlong.module.mjs +10 -15
  231. package/esm2022/src/app/shared/material/latlong/testing/latlong.test.mjs +19 -14
  232. package/esm2022/src/app/shared/material/material.animations.mjs +22 -22
  233. package/esm2022/src/app/shared/material/material.config.mjs +3 -0
  234. package/esm2022/src/app/shared/material/material.module.mjs +16 -16
  235. package/esm2022/src/app/shared/material/material.testing.module.mjs +50 -37
  236. package/esm2022/src/app/shared/material/paginator/material.paginator-i18n.mjs +12 -9
  237. package/esm2022/src/app/shared/material/stepper/material.stepper-i18n.mjs +4 -4
  238. package/esm2022/src/app/shared/material/swipe/material.swipe.mjs +26 -19
  239. package/esm2022/src/app/shared/material/swipe/swipe.module.mjs +7 -11
  240. package/esm2022/src/app/shared/material/swipe/testing/swipe.test.mjs +8 -8
  241. package/esm2022/src/app/shared/material/testing/common.test.mjs +30 -24
  242. package/esm2022/src/app/shared/material/text/testing/text-form.testing.mjs +30 -19
  243. package/esm2022/src/app/shared/material/text/text-form.component.mjs +128 -21
  244. package/esm2022/src/app/shared/material/text/text-form.module.mjs +8 -8
  245. package/esm2022/src/app/shared/modules.mjs +1 -1
  246. package/esm2022/src/app/shared/named-filter/named-filter-selector.component.mjs +118 -37
  247. package/esm2022/src/app/shared/named-filter/named-filter.model.mjs +1 -1
  248. package/esm2022/src/app/shared/named-filter/named-filter.module.mjs +5 -5
  249. package/esm2022/src/app/shared/named-filter/named-filter.service.mjs +8 -8
  250. package/esm2022/src/app/shared/named-filter/testing/named-filter-selector.testing.mjs +74 -0
  251. package/esm2022/src/app/shared/named-filter/testing/named-filter.testing.module.mjs +28 -0
  252. package/esm2022/src/app/shared/observables.mjs +14 -18
  253. package/esm2022/src/app/shared/pipes/arrays.pipe.mjs +53 -38
  254. package/esm2022/src/app/shared/pipes/badge.pipes.mjs +24 -0
  255. package/esm2022/src/app/shared/pipes/colors.pipe.mjs +8 -6
  256. package/esm2022/src/app/shared/pipes/date-diff-duration.pipe.mjs +8 -10
  257. package/esm2022/src/app/shared/pipes/date-format.pipe.mjs +15 -15
  258. package/esm2022/src/app/shared/pipes/date-from-now.pipe.mjs +6 -6
  259. package/esm2022/src/app/shared/pipes/duration.pipe.mjs +6 -6
  260. package/esm2022/src/app/shared/pipes/file-size.pipe.mjs +6 -13
  261. package/esm2022/src/app/shared/pipes/form.pipes.mjs +72 -47
  262. package/esm2022/src/app/shared/pipes/highlight.pipe.mjs +15 -15
  263. package/esm2022/src/app/shared/pipes/html.pipes.mjs +52 -0
  264. package/esm2022/src/app/shared/pipes/latlong-format.pipe.mjs +14 -14
  265. package/esm2022/src/app/shared/pipes/maps.pipe.mjs +17 -17
  266. package/esm2022/src/app/shared/pipes/maskito.pipe.mjs +37 -88
  267. package/esm2022/src/app/shared/pipes/math.pipes.mjs +16 -16
  268. package/esm2022/src/app/shared/pipes/ng-init.pipe.mjs +5 -5
  269. package/esm2022/src/app/shared/pipes/number-format.pipe.mjs +6 -6
  270. package/esm2022/src/app/shared/pipes/pipes.module.mjs +117 -137
  271. package/esm2022/src/app/shared/pipes/property.pipes.mjs +86 -47
  272. package/esm2022/src/app/shared/pipes/selection.pipes.mjs +179 -0
  273. package/esm2022/src/app/shared/pipes/string.pipes.mjs +50 -49
  274. package/esm2022/src/app/shared/pipes/translate-context.pipe.mjs +11 -11
  275. package/esm2022/src/app/shared/pipes/types.pipes.mjs +33 -17
  276. package/esm2022/src/app/shared/platforms.mjs +7 -5
  277. package/esm2022/src/app/shared/rx-state.module.mjs +7 -11
  278. package/esm2022/src/app/shared/services/entity-service.class.mjs +2 -2
  279. package/esm2022/src/app/shared/services/job.utils.mjs +7 -7
  280. package/esm2022/src/app/shared/services/memory-entity-service.class.mjs +43 -41
  281. package/esm2022/src/app/shared/services/progress-bar.service.mjs +4 -4
  282. package/esm2022/src/app/shared/services/startable-observable-service.class.mjs +11 -14
  283. package/esm2022/src/app/shared/services/startable-service.class.mjs +11 -17
  284. package/esm2022/src/app/shared/services/translate-context.service.mjs +18 -15
  285. package/esm2022/src/app/shared/services/validator-service.class.mjs +1 -1
  286. package/esm2022/src/app/shared/services.mjs +12 -12
  287. package/esm2022/src/app/shared/shared-routing.module.mjs +19 -18
  288. package/esm2022/src/app/shared/shared.module.mjs +29 -28
  289. package/esm2022/src/app/shared/shared.testing.module.mjs +18 -10
  290. package/esm2022/src/app/shared/storage/storage-explorer.component.mjs +39 -46
  291. package/esm2022/src/app/shared/storage/storage-explorer.module.mjs +8 -12
  292. package/esm2022/src/app/shared/storage/storage-explorer.testing-routing.module.mjs +9 -17
  293. package/esm2022/src/app/shared/storage/storage-explorer.testing.module.mjs +10 -18
  294. package/esm2022/src/app/shared/storage/storage.service.mjs +4 -4
  295. package/esm2022/src/app/shared/storage/storage.utils.mjs +2 -2
  296. package/esm2022/src/app/shared/testing/maskito.test.mjs +41 -0
  297. package/esm2022/src/app/shared/testing/observable.test.mjs +11 -13
  298. package/esm2022/src/app/shared/testing/tests.page.mjs +6 -6
  299. package/esm2022/src/app/shared/toast/toast.testing.mjs +11 -11
  300. package/esm2022/src/app/shared/toast/toast.testing.module.mjs +10 -25
  301. package/esm2022/src/app/shared/toast/toasts.mjs +9 -9
  302. package/esm2022/src/app/shared/toolbar/modal-toolbar.mjs +10 -8
  303. package/esm2022/src/app/shared/toolbar/toolbar.mjs +31 -32
  304. package/esm2022/src/app/shared/toolbar/toolbar.module.mjs +8 -39
  305. package/esm2022/src/app/shared/types.mjs +1 -1
  306. package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.mjs +12 -12
  307. package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +10 -25
  308. package/esm2022/src/app/shared/upload-file/upload-file-popover.component.mjs +7 -8
  309. package/esm2022/src/app/shared/upload-file/upload-file.component.mjs +21 -19
  310. package/esm2022/src/app/shared/upload-file/upload-file.model.mjs +2 -3
  311. package/esm2022/src/app/shared/validator/form-error-adapter.class.mjs +64 -56
  312. package/esm2022/src/app/shared/validator/validators.mjs +60 -39
  313. package/esm2022/src/app/shared/version/versions.mjs +2 -2
  314. package/esm2022/src/app/social/job/job.module.mjs +8 -27
  315. package/esm2022/src/app/social/job/progression/job-progression.component.mjs +9 -9
  316. package/esm2022/src/app/social/job/progression/job-progression.icon.mjs +49 -46
  317. package/esm2022/src/app/social/job/progression/job-progression.list.mjs +10 -13
  318. package/esm2022/src/app/social/job/progression/job-progression.model.mjs +1 -1
  319. package/esm2022/src/app/social/job/progression/job-progression.service.mjs +39 -21
  320. package/esm2022/src/app/social/job/testing/job-progression.testing.mjs +6 -11
  321. package/esm2022/src/app/social/job/testing/job-progression.testing.service.mjs +11 -30
  322. package/esm2022/src/app/social/job/testing/job.testing.module.mjs +8 -21
  323. package/esm2022/src/app/social/message/message.form.mjs +5 -5
  324. package/esm2022/src/app/social/message/message.modal.mjs +8 -8
  325. package/esm2022/src/app/social/message/message.model.mjs +8 -8
  326. package/esm2022/src/app/social/message/message.module.mjs +4 -4
  327. package/esm2022/src/app/social/message/message.service.mjs +7 -7
  328. package/esm2022/src/app/social/social.errors.mjs +2 -2
  329. package/esm2022/src/app/social/social.module.mjs +7 -32
  330. package/esm2022/src/app/social/social.testing.module.mjs +9 -20
  331. package/esm2022/src/app/social/user-event/notification/user-event-notification.icon.mjs +27 -23
  332. package/esm2022/src/app/social/user-event/notification/user-event-notification.list.mjs +19 -22
  333. package/esm2022/src/app/social/user-event/testing/user-event.testing.mjs +47 -23
  334. package/esm2022/src/app/social/user-event/testing/user-event.testing.model.mjs +8 -8
  335. package/esm2022/src/app/social/user-event/testing/user-event.testing.module.mjs +8 -21
  336. package/esm2022/src/app/social/user-event/testing/user-event.testing.service.mjs +27 -15
  337. package/esm2022/src/app/social/user-event/user-event.model.mjs +1 -1
  338. package/esm2022/src/app/social/user-event/user-event.module.mjs +8 -28
  339. package/esm2022/src/app/social/user-event/user-event.service.mjs +61 -64
  340. package/esm2022/src/environments/environment.class.mjs +9 -1
  341. package/esm2022/src/environments/environment.loader.mjs +5 -11
  342. package/esm2022/src/environments/environment.mjs +19 -11
  343. package/fesm2022/sumaris-net.ngx-components.mjs +16117 -14592
  344. package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
  345. package/package.json +36 -18
  346. package/public_api.d.ts +30 -22
  347. package/src/app/admin/services/filter/person.filter.d.ts +1 -1
  348. package/src/app/admin/users/users.d.ts +5 -6
  349. package/src/app/core/account/account.module.d.ts +10 -8
  350. package/src/app/core/account/account.page.d.ts +25 -15
  351. package/src/app/core/account/new-token.form.d.ts +29 -0
  352. package/src/app/core/account/new-token.modal.d.ts +9 -21
  353. package/src/app/core/account/password/change-password.form.d.ts +19 -0
  354. package/src/app/core/account/password/change-password.module.d.ts +11 -0
  355. package/src/app/core/account/password/change-password.page.d.ts +36 -0
  356. package/src/app/core/account/token.table.d.ts +7 -5
  357. package/src/app/core/auth/auth.form.d.ts +11 -9
  358. package/src/app/core/auth/auth.module.d.ts +6 -4
  359. package/src/app/core/auth/reset-password.modal.d.ts +26 -0
  360. package/src/app/core/core.module.d.ts +21 -24
  361. package/src/app/core/core.testing.module.d.ts +2 -1
  362. package/src/app/core/form/array/form-array.d.ts +136 -0
  363. package/src/app/core/form/array/testing/form-array-test.module.d.ts +12 -0
  364. package/src/app/core/form/array/testing/form-array.test.d.ts +26 -0
  365. package/src/app/core/form/buttons/form-buttons-bar.component.d.ts +2 -3
  366. package/src/app/core/form/entity/editor.class.d.ts +19 -179
  367. package/src/app/core/form/entity/entity-editor-modal.class.d.ts +10 -13
  368. package/src/app/core/form/entity/entity-editor.class.d.ts +12 -17
  369. package/src/app/core/form/entity/entity-metadata.component.d.ts +1 -1
  370. package/src/app/core/form/entity/tab-editor.class.d.ts +70 -0
  371. package/src/app/core/form/form-container.class.d.ts +126 -0
  372. package/src/app/core/form/form.class.d.ts +13 -26
  373. package/src/app/core/form/form.module.d.ts +2 -1
  374. package/src/app/core/form/form.utils.d.ts +60 -145
  375. package/src/app/core/form/list/list.form.d.ts +2 -2
  376. package/src/app/core/form/properties/properties.form.d.ts +34 -12
  377. package/src/app/core/form/properties/properties.table.d.ts +2 -2
  378. package/src/app/core/form/properties/properties.utils.d.ts +27 -0
  379. package/src/app/core/form/properties/property.validator.d.ts +9 -3
  380. package/src/app/core/form/text-popover/testing/text-popover.testing.d.ts +3 -1
  381. package/src/app/core/form/username/username.form.d.ts +19 -0
  382. package/src/app/core/form/username/username.module.d.ts +9 -0
  383. package/src/app/core/graphql/graphql.module.d.ts +1 -2
  384. package/src/app/core/graphql/graphql.service.d.ts +2 -4
  385. package/src/app/core/home/home.d.ts +26 -6
  386. package/src/app/core/menu/testing/menu-other.testing.d.ts +1 -1
  387. package/src/app/core/menu/testing/menu.testing.d.ts +11 -3
  388. package/src/app/core/peer/select-peer.modal.d.ts +13 -7
  389. package/src/app/core/peer/select-peer.module.d.ts +3 -4
  390. package/src/app/core/services/account.service.d.ts +9 -0
  391. package/src/app/core/services/base-entity-service.class.d.ts +1 -1
  392. package/src/app/core/services/config/core.config.d.ts +12 -1
  393. package/src/app/core/services/config.service.d.ts +4 -3
  394. package/src/app/core/services/errors.d.ts +11 -0
  395. package/src/app/core/services/local-settings.service.d.ts +8 -4
  396. package/src/app/core/services/model/entity.model.d.ts +6 -5
  397. package/src/app/core/services/model/filter.model.d.ts +1 -1
  398. package/src/app/core/services/model/peer.model.d.ts +1 -0
  399. package/src/app/core/services/model/person.model.d.ts +6 -2
  400. package/src/app/core/services/model/referential.model.d.ts +8 -3
  401. package/src/app/core/services/model/settings.model.d.ts +4 -2
  402. package/src/app/core/services/model/token.model.d.ts +1 -0
  403. package/src/app/core/services/model/tree-item-entity.model.d.ts +1 -1
  404. package/src/app/core/services/network.service.d.ts +11 -7
  405. package/src/app/core/services/pipes/department-to-string.pipe.d.ts +1 -1
  406. package/src/app/core/services/pipes/person-to-string.pipe.d.ts +3 -1
  407. package/src/app/core/services/pipes/pipes.module.d.ts +11 -0
  408. package/src/app/core/services/pipes/referential-to-string.pipe.d.ts +13 -0
  409. package/src/app/core/services/platform.service.d.ts +8 -3
  410. package/src/app/core/services/testing/referential-filter.model.d.ts +1 -1
  411. package/src/app/core/services/validator/local-settings.validator.d.ts +6 -2
  412. package/src/app/core/settings/settings.module.d.ts +2 -1
  413. package/src/app/core/settings/settings.page.d.ts +34 -21
  414. package/src/app/core/table/async-table.class.d.ts +22 -17
  415. package/src/app/core/table/column/actions-column.component.d.ts +59 -0
  416. package/src/app/core/table/column/nav-actions-column.component.d.ts +46 -0
  417. package/src/app/core/table/column/row-field.component.d.ts +40 -0
  418. package/src/app/core/table/entities-async-table-datasource.class.d.ts +1 -0
  419. package/src/app/core/table/entities-table-datasource.class.d.ts +1 -0
  420. package/src/app/core/table/table.class.d.ts +14 -11
  421. package/src/app/core/table/table.module.d.ts +8 -4
  422. package/src/app/core/table/table.pipes.d.ts +28 -0
  423. package/src/app/core/table/testing/table.testing.d.ts +12 -13
  424. package/src/app/core/table/testing/table2.testing.d.ts +13 -10
  425. package/src/app/shared/alerts.d.ts +4 -2
  426. package/src/app/shared/constants.d.ts +5 -0
  427. package/src/app/shared/dates.d.ts +12 -5
  428. package/src/app/shared/directives/autofocus.directive.d.ts +0 -1
  429. package/src/app/shared/events.d.ts +1 -1
  430. package/src/app/shared/file/csv.utils.d.ts +5 -0
  431. package/src/app/shared/file/images.utils.d.ts +17 -0
  432. package/src/app/shared/file/json.utils.d.ts +3 -0
  433. package/src/app/shared/form/field.component.d.ts +6 -3
  434. package/src/app/shared/forms.d.ts +32 -0
  435. package/src/app/shared/functions.d.ts +27 -8
  436. package/src/app/shared/graph/graph-colors.d.ts +1 -1
  437. package/src/app/shared/guard/component-dirty.guard.d.ts +1 -6
  438. package/src/app/shared/hotkeys/hotkeys.service.d.ts +17 -3
  439. package/src/app/shared/http/http.utils.d.ts +1 -0
  440. package/src/app/shared/image/gallery/image-gallery.component.d.ts +10 -10
  441. package/src/app/shared/image/gallery/image-gallery.module.d.ts +2 -1
  442. package/src/app/shared/image/gallery/testing/gallery.service.testing.d.ts +2 -2
  443. package/src/app/shared/image/gallery/testing/gallery.testing.module.d.ts +2 -1
  444. package/src/app/shared/inputs.d.ts +8 -6
  445. package/src/app/shared/material/autocomplete/material.autocomplete.config.d.ts +20 -1
  446. package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +56 -16
  447. package/src/app/shared/material/autocomplete/material.autocomplete.module.d.ts +1 -1
  448. package/src/app/shared/material/autocomplete/material.autocomplete.utils.d.ts +2 -1
  449. package/src/app/shared/material/autocomplete/testing/autocomplete.test.d.ts +3 -2
  450. package/src/app/shared/material/badge/badge.directive.d.ts +10 -4
  451. package/src/app/shared/material/boolean/boolean.module.d.ts +15 -14
  452. package/src/app/shared/material/boolean/material.boolean.d.ts +51 -25
  453. package/src/app/shared/material/boolean/testing/boolean.test.page.d.ts +1 -0
  454. package/src/app/shared/material/chips/chips.module.d.ts +2 -1
  455. package/src/app/shared/material/chips/material.chips.d.ts +46 -21
  456. package/src/app/shared/material/chips/testing/chips.test.d.ts +1 -0
  457. package/src/app/shared/material/datetime/datetime.module.d.ts +1 -1
  458. package/src/app/shared/material/datetime/material.date.d.ts +33 -18
  459. package/src/app/shared/material/datetime/material.dateshort.d.ts +29 -16
  460. package/src/app/shared/material/datetime/material.datetime.d.ts +41 -28
  461. package/src/app/shared/material/datetime/testing/mat-date-time.test.d.ts +3 -3
  462. package/src/app/shared/material/duration/duration.module.d.ts +1 -1
  463. package/src/app/shared/material/duration/material.duration.d.ts +1 -1
  464. package/src/app/shared/material/latlong/latlong.utils.d.ts +9 -1
  465. package/src/app/shared/material/latlong/material.latlong.d.ts +29 -32
  466. package/src/app/shared/material/latlong/material.latlong.module.d.ts +1 -1
  467. package/src/app/shared/material/latlong/testing/latlong.test.d.ts +5 -1
  468. package/src/app/shared/material/material.config.d.ts +3 -0
  469. package/src/app/shared/material/material.module.d.ts +5 -6
  470. package/src/app/shared/material/material.testing.module.d.ts +8 -7
  471. package/src/app/shared/material/swipe/material.swipe.d.ts +4 -3
  472. package/src/app/shared/material/text/testing/text-form.testing.d.ts +10 -4
  473. package/src/app/shared/material/text/text-form.component.d.ts +42 -8
  474. package/src/app/shared/named-filter/named-filter-selector.component.d.ts +30 -14
  475. package/src/app/shared/named-filter/named-filter.service.d.ts +12 -6
  476. package/src/app/shared/named-filter/testing/named-filter-selector.testing.d.ts +34 -0
  477. package/src/app/shared/named-filter/testing/named-filter.testing.module.d.ts +10 -0
  478. package/src/app/shared/pipes/arrays.pipe.d.ts +5 -0
  479. package/src/app/shared/pipes/badge.pipes.d.ts +7 -0
  480. package/src/app/shared/pipes/date-format.pipe.d.ts +3 -2
  481. package/src/app/shared/pipes/form.pipes.d.ts +18 -8
  482. package/src/app/shared/pipes/html.pipes.d.ts +15 -0
  483. package/src/app/shared/pipes/maps.pipe.d.ts +4 -4
  484. package/src/app/shared/pipes/maskito.pipe.d.ts +7 -9
  485. package/src/app/shared/pipes/pipes.module.d.ts +7 -4
  486. package/src/app/shared/pipes/property.pipes.d.ts +24 -3
  487. package/src/app/shared/pipes/selection.pipes.d.ts +62 -0
  488. package/src/app/shared/pipes/string.pipes.d.ts +6 -6
  489. package/src/app/shared/pipes/types.pipes.d.ts +6 -1
  490. package/src/app/shared/services/entity-service.class.d.ts +0 -2
  491. package/src/app/shared/services/memory-entity-service.class.d.ts +6 -3
  492. package/src/app/shared/services.d.ts +1 -0
  493. package/src/app/shared/shared.testing.module.d.ts +2 -1
  494. package/src/app/shared/storage/storage-explorer.component.d.ts +4 -3
  495. package/src/app/shared/testing/maskito.test.d.ts +10 -0
  496. package/src/app/shared/toolbar/toolbar.d.ts +7 -2
  497. package/src/app/shared/types.d.ts +5 -0
  498. package/src/app/shared/upload-file/upload-file.component.d.ts +1 -0
  499. package/src/app/shared/validator/form-error-adapter.class.d.ts +17 -11
  500. package/src/app/shared/validator/validators.d.ts +20 -9
  501. package/src/app/social/job/progression/job-progression.icon.d.ts +4 -5
  502. package/src/app/social/job/progression/job-progression.list.d.ts +1 -3
  503. package/src/app/social/job/progression/job-progression.service.d.ts +3 -4
  504. package/src/app/social/job/testing/job-progression.testing.d.ts +0 -1
  505. package/src/app/social/job/testing/job-progression.testing.service.d.ts +3 -11
  506. package/src/app/social/message/message.modal.d.ts +2 -2
  507. package/src/app/social/message/message.model.d.ts +1 -1
  508. package/src/app/social/user-event/notification/user-event-notification.icon.d.ts +4 -4
  509. package/src/app/social/user-event/testing/user-event.testing.d.ts +1 -0
  510. package/src/app/social/user-event/testing/user-event.testing.model.d.ts +2 -3
  511. package/src/app/social/user-event/testing/user-event.testing.service.d.ts +1 -0
  512. package/src/assets/i18n/en-US.json +48 -19
  513. package/src/assets/i18n/en.json +48 -20
  514. package/src/assets/i18n/fr.json +50 -20
  515. package/src/assets/manifest.json +1 -1
  516. package/src/environments/environment.class.d.ts +10 -0
  517. package/src/environments/environment.d.ts +0 -1
  518. package/src/environments/environment.loader.d.ts +0 -2
  519. package/src/theme/_functions.scss +15 -0
  520. package/src/theme/_icons.scss +1 -1
  521. package/src/theme/_ionic.globals.scss +8 -2
  522. package/src/theme/_ionic.scss +10 -10
  523. package/src/theme/_material.globals.scss +16 -43
  524. package/src/theme/_material.scss +45 -32
  525. package/src/theme/_mixins.scss +99 -18
  526. package/src/theme/_ngx-components.forms.scss +354 -0
  527. package/src/theme/_ngx-components.globals.scss +20 -10
  528. package/src/theme/_ngx-components.scss +194 -400
  529. package/src/theme/_ngx-components.table.scss +200 -207
  530. package/src/theme/_ngx-components.tabs.scss +54 -0
  531. package/src/theme/_responsive.scss +0 -31
  532. package/src/theme/_theme.scss +2 -0
  533. package/src/theme/_theme.variables.scss +172 -0
  534. package/esm2022/src/app/core/table/actions-column.component.mjs +0 -115
  535. package/esm2022/src/app/shared/material/boolean/material-boolean2.mjs +0 -266
  536. package/esm2022/src/app/shared/material/numpad/numpad.append-to-input.directive.mjs +0 -104
  537. package/esm2022/src/app/shared/material/numpad/numpad.component.mjs +0 -83
  538. package/esm2022/src/app/shared/material/numpad/numpad.container.mjs +0 -203
  539. package/esm2022/src/app/shared/material/numpad/numpad.content.mjs +0 -19
  540. package/esm2022/src/app/shared/material/numpad/numpad.directive.mjs +0 -168
  541. package/esm2022/src/app/shared/material/numpad/numpad.dom-service.mjs +0 -36
  542. package/esm2022/src/app/shared/material/numpad/numpad.model.mjs +0 -16
  543. package/esm2022/src/app/shared/material/numpad/numpad.module.mjs +0 -60
  544. package/esm2022/src/app/shared/material/numpad/testing/numpad.test.mjs +0 -48
  545. package/src/app/core/table/actions-column.component.d.ts +0 -48
  546. package/src/app/shared/material/boolean/material-boolean2.d.ts +0 -66
  547. package/src/app/shared/material/numpad/numpad.append-to-input.directive.d.ts +0 -22
  548. package/src/app/shared/material/numpad/numpad.component.d.ts +0 -26
  549. package/src/app/shared/material/numpad/numpad.container.d.ts +0 -40
  550. package/src/app/shared/material/numpad/numpad.content.d.ts +0 -7
  551. package/src/app/shared/material/numpad/numpad.directive.d.ts +0 -35
  552. package/src/app/shared/material/numpad/numpad.dom-service.d.ts +0 -16
  553. package/src/app/shared/material/numpad/numpad.model.d.ts +0 -30
  554. package/src/app/shared/material/numpad/numpad.module.d.ts +0 -16
  555. package/src/app/shared/material/numpad/testing/numpad.test.d.ts +0 -13
@@ -4,7 +4,7 @@ import { debounceTime, filter, switchMap } from 'rxjs/operators';
4
4
  import { BehaviorSubject } from 'rxjs';
5
5
  import { getMainDefinition } from '@apollo/client/utilities';
6
6
  import { v4 as uuidv4 } from 'uuid';
7
- const _global = typeof global !== 'undefined' ? global : (typeof window !== 'undefined' ? window : {});
7
+ const _global = typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : {};
8
8
  export const NativeWebSocket = _global.WebSocket || _global.MozWebSocket;
9
9
  /**
10
10
  * AppWebSocket class.
@@ -30,14 +30,16 @@ export function createTrackerLink(opts) {
30
30
  const trackedQueriesUpdated = new EventEmitter();
31
31
  const trackedQueriesById = {};
32
32
  const networkStatusSubject = new BehaviorSubject('none');
33
- opts.onNetworkStatusChange.subscribe(type => networkStatusSubject.next(type));
33
+ opts.onNetworkStatusChange.subscribe((type) => networkStatusSubject.next(type));
34
34
  // Save pending and tracked queries in storage
35
- trackedQueriesUpdated.pipe(debounceTime(opts.debounce || 1000), switchMap(() => networkStatusSubject),
35
+ trackedQueriesUpdated
36
+ .pipe(debounceTime(opts.debounce || 1000), switchMap(() => networkStatusSubject),
36
37
  // Continue if offline
37
- filter((type) => type === 'none' && !!opts.storage)).subscribe(() => {
38
+ filter((type) => type === 'none' && !!opts.storage))
39
+ .subscribe(() => {
38
40
  const trackedQueries = Object.getOwnPropertyNames(trackedQueriesById)
39
- .map(key => trackedQueriesById[key])
40
- .filter(value => value !== undefined);
41
+ .map((key) => trackedQueriesById[key])
42
+ .filter((value) => value !== undefined);
41
43
  if (opts.debug)
42
44
  console.debug('[apollo-tracker-link] Saving tracked queries to storage', trackedQueries);
43
45
  return opts.storage.setItem(TRACKED_QUERIES_STORAGE_KEY, JSON.stringify(trackedQueries));
@@ -56,13 +58,12 @@ export function createTrackerLink(opts) {
56
58
  name: operation.operationName,
57
59
  queryJSON: JSON.stringify(operation.query),
58
60
  variablesJSON: JSON.stringify(operation.variables),
59
- contextJSON: JSON.stringify(cleanContext)
61
+ contextJSON: JSON.stringify(cleanContext),
60
62
  };
61
63
  // Add to map
62
64
  trackedQueriesById[id] = trackedQuery;
63
65
  trackedQueriesUpdated.emit();
64
- const nextOperation = forward(operation)
65
- .map(data => {
66
+ const nextOperation = forward(operation).map((data) => {
66
67
  console.debug(`[apollo-tracker-link] Query {${operation.operationName}#${id}} succeed!`, data);
67
68
  delete trackedQueriesById[id];
68
69
  trackedQueriesUpdated.emit(trackedQueriesById); // update
@@ -86,7 +87,7 @@ export async function restoreTrackedQueries(opts) {
86
87
  return;
87
88
  if (opts.debug)
88
89
  console.debug('[apollo-tracker-link] Restoring tracked queries', list);
89
- const promises = (list || []).map(trackedQuery => {
90
+ const promises = (list || []).map((trackedQuery) => {
90
91
  const context = JSON.parse(trackedQuery.contextJSON);
91
92
  const query = JSON.parse(trackedQuery.queryJSON);
92
93
  const variables = JSON.parse(trackedQuery.variablesJSON);
@@ -115,4 +116,4 @@ export class StorageServiceWrapper {
115
116
  return this.storage.set(key, value);
116
117
  }
117
118
  }
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbC51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9ncmFwaHFsL2dyYXBocWwudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFlLFVBQVUsRUFBc0IsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBQyxZQUFZLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQy9ELE9BQU8sRUFBQyxlQUFlLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFHM0QsT0FBTyxFQUFDLEVBQUUsSUFBSSxNQUFNLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFJbEMsTUFBTSxPQUFPLEdBQUcsT0FBTyxNQUFNLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxNQUFNLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3ZHLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsU0FBUyxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUM7QUFNekU7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLFVBQVMsR0FBVyxFQUFFLFNBQTZCO0lBQzdFLE9BQU8sSUFBSSxlQUFlLENBQUMsR0FBRyxDQUFBLGdCQUFnQixDQUFDLENBQUM7QUFDbEQsQ0FBUSxDQUFDO0FBQ1QsWUFBWSxDQUFDLE1BQU0sR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDO0FBQzdDLFlBQVksQ0FBQyxPQUFPLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQztBQUMvQyxZQUFZLENBQUMsVUFBVSxHQUFHLGVBQWUsQ0FBQyxVQUFVLENBQUM7QUFDckQsWUFBWSxDQUFDLElBQUksR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDO0FBRXpDLE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxTQUFvQjtJQUN0RCxNQUFNLEdBQUcsR0FBRyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0MsT0FBTyxHQUFHLENBQUMsSUFBSSxLQUFLLHFCQUFxQixJQUFJLEdBQUcsQ0FBQyxTQUFTLEtBQUssVUFBVSxDQUFDO0FBQzVFLENBQUM7QUFFRCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsU0FBb0I7SUFDMUQsTUFBTSxHQUFHLEdBQUcsaUJBQWlCLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9DLE9BQU8sR0FBRyxDQUFDLElBQUksS0FBSyxxQkFBcUIsSUFBSSxHQUFHLENBQUMsU0FBUyxLQUFLLGNBQWMsQ0FBQztBQUNoRixDQUFDO0FBV0QsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsd0JBQXdCLENBQUM7QUFFcEUsTUFBTSxVQUFVLGlCQUFpQixDQUFDLElBSy9CO0lBRUQsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ2pELE1BQU0sa0JBQWtCLEdBQWlDLEVBQUUsQ0FBQztJQUU1RCxNQUFNLG9CQUFvQixHQUFHLElBQUksZUFBZSxDQUFTLE1BQU0sQ0FBQyxDQUFDO0lBQ2pFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUU5RSw4Q0FBOEM7SUFDOUMscUJBQXFCLENBQUMsSUFBSSxDQUN4QixZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsRUFDbkMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDO0lBQ3JDLHNCQUFzQjtJQUN0QixNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxNQUFNLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FDcEQsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ2IsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDO2FBQ2xFLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ25DLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUMsQ0FBQztRQUN4QyxJQUFJLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyx5REFBeUQsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUN6RyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLDJCQUEyQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUMzRixDQUFDLENBQUMsQ0FBQztJQUVMLE9BQU8sSUFBSSxVQUFVLENBQUMsQ0FBQyxTQUFvQixFQUFFLE9BQWlCLEVBQUUsRUFBRTtRQUNoRSxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFdkMsc0JBQXNCO1FBQ3RCLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTztZQUFFLE9BQU8sT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTVELE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUNoRCxPQUFPLENBQUMsS0FBSyxDQUFDLGlEQUFpRCxTQUFTLENBQUMsYUFBYSxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFakcsMEVBQTBFO1FBQzFFLE1BQU0sWUFBWSxHQUFHLEVBQUUsR0FBRyxPQUFPLEVBQUUsR0FBRyxFQUFDLGtCQUFrQixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDLEVBQUUsQ0FBQztRQUVoRixNQUFNLFlBQVksR0FBaUI7WUFDakMsRUFBRTtZQUNGLElBQUksRUFBRSxTQUFTLENBQUMsYUFBYTtZQUM3QixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO1lBQzFDLGFBQWEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUM7WUFDbEQsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDO1NBQzFDLENBQUM7UUFFRixhQUFhO1FBQ2Isa0JBQWtCLENBQUMsRUFBRSxDQUFDLEdBQUcsWUFBWSxDQUFDO1FBQ3RDLHFCQUFxQixDQUFDLElBQUksRUFBRSxDQUFDO1FBRTdCLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7YUFDckMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyxnQ0FBZ0MsU0FBUyxDQUFDLGFBQWEsSUFBSSxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztZQUMvRixPQUFPLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzlCLHFCQUFxQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsU0FBUztZQUV6RCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFDO1FBRUwsNkNBQTZDO1FBQzdDLElBQUksb0JBQW9CLENBQUMsUUFBUSxFQUFFLEtBQUssTUFBTSxFQUFFO1lBQzlDLElBQUksT0FBTyxDQUFDLGtCQUFrQixFQUFFO2dCQUM5QixPQUFPLENBQUMsS0FBSyxDQUFDLGdDQUFnQyxTQUFTLENBQUMsYUFBYSxJQUFJLEVBQUUsNkJBQTZCLEVBQUUsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7YUFDdkk7aUJBQ0k7Z0JBQ0gsT0FBTyxDQUFDLElBQUksQ0FBQyxnQ0FBZ0MsU0FBUyxDQUFDLGFBQWEsSUFBSSxFQUFFLGtGQUFrRixDQUFDLENBQUM7YUFDL0o7U0FDRjtRQUVELE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sQ0FBQyxLQUFLLFVBQVUscUJBQXFCLENBQUMsSUFJM0M7SUFFQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsMkJBQTJCLENBQUMsQ0FBbUIsQ0FBQztJQUVuRyxJQUFJLENBQUMsSUFBSTtRQUFFLE9BQU87SUFDbEIsSUFBSSxJQUFJLENBQUMsS0FBSztRQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsaURBQWlELEVBQUUsSUFBSSxDQUFDLENBQUM7SUFFdkYsTUFBTSxRQUFRLEdBQUcsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFO1FBQy9DLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3pELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7WUFDOUIsT0FBTztZQUNQLFFBQVEsRUFBRSxLQUFLO1lBQ2Ysa0JBQWtCLEVBQUUsT0FBTyxDQUFDLGtCQUFrQjtZQUM5QyxpREFBaUQ7WUFDakQsU0FBUztTQUNWLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQy9CLENBQUM7QUFHRCxNQUFNLE9BQU8scUJBQXFCO0lBQ1o7SUFBcEIsWUFBb0IsT0FBdUI7UUFBdkIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7SUFDM0MsQ0FBQztJQUVELE9BQU8sQ0FBQyxHQUFHO1FBQ1QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBQ0QsVUFBVSxDQUFDLEdBQUc7UUFDWixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFDRCxPQUFPLENBQUMsR0FBRyxFQUFFLEtBQUs7UUFDaEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBcG9sbG9DbGllbnQsIEFwb2xsb0xpbmssIE5leHRMaW5rLCBPcGVyYXRpb259IGZyb20gJ0BhcG9sbG8vY2xpZW50L2NvcmUnO1xuaW1wb3J0IHtFdmVudEVtaXR0ZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWUsIGZpbHRlciwgc3dpdGNoTWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2dldE1haW5EZWZpbml0aW9ufSBmcm9tICdAYXBvbGxvL2NsaWVudC91dGlsaXRpZXMnO1xuaW1wb3J0IHtQZXJzaXN0ZW50U3RvcmFnZX0gZnJvbSAnYXBvbGxvMy1jYWNoZS1wZXJzaXN0JztcbmltcG9ydCB7Q29ubmVjdGlvblR5cGV9IGZyb20gJy4uL3NlcnZpY2VzL25ldHdvcmsudHlwZXMnO1xuaW1wb3J0IHt2NCBhcyB1dWlkdjR9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IHtTdG9yYWdlU2VydmljZX0gZnJvbSAnLi4vLi4vc2hhcmVkL3N0b3JhZ2Uvc3RvcmFnZS5zZXJ2aWNlJztcblxuZGVjbGFyZSBsZXQgd2luZG93OiBhbnk7XG5jb25zdCBfZ2xvYmFsID0gdHlwZW9mIGdsb2JhbCAhPT0gJ3VuZGVmaW5lZCcgPyBnbG9iYWwgOiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgPyB3aW5kb3cgOiB7fSk7XG5leHBvcnQgY29uc3QgTmF0aXZlV2ViU29ja2V0ID0gX2dsb2JhbC5XZWJTb2NrZXQgfHwgX2dsb2JhbC5Nb3pXZWJTb2NrZXQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW1wdHlPYmplY3Qge1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbi8qKlxuICogQXBwV2ViU29ja2V0IGNsYXNzLlxuICogV2l0aCBhIGhhY2sgb24gZGVmYXVsdCBXZWJzb2NrZXQsIHRvIGF2b2lkIHRoZSB1c2Ugb2YgcHJvdG9jb2xcbiAqL1xuZXhwb3J0IGNvbnN0IEFwcFdlYlNvY2tldCA9IGZ1bmN0aW9uKHVybDogc3RyaW5nLCBwcm90b2NvbHM/OiBzdHJpbmcgfCBzdHJpbmdbXSkge1xuICByZXR1cm4gbmV3IE5hdGl2ZVdlYlNvY2tldCh1cmwvKm5vIHByb3RvY29scyovKTtcbn0gYXMgYW55O1xuQXBwV2ViU29ja2V0LkNMT1NFRCA9IE5hdGl2ZVdlYlNvY2tldC5DTE9TRUQ7XG5BcHBXZWJTb2NrZXQuQ0xPU0lORyA9IE5hdGl2ZVdlYlNvY2tldC5DTE9TSU5HO1xuQXBwV2ViU29ja2V0LkNPTk5FQ1RJTkcgPSBOYXRpdmVXZWJTb2NrZXQuQ09OTkVDVElORztcbkFwcFdlYlNvY2tldC5PUEVOID0gTmF0aXZlV2ViU29ja2V0Lk9QRU47XG5cbmV4cG9ydCBmdW5jdGlvbiBpc011dGF0aW9uT3BlcmF0aW9uKG9wZXJhdGlvbjogT3BlcmF0aW9uKSB7XG4gIGNvbnN0IGRlZiA9IGdldE1haW5EZWZpbml0aW9uKG9wZXJhdGlvbi5xdWVyeSk7XG4gIHJldHVybiBkZWYua2luZCA9PT0gJ09wZXJhdGlvbkRlZmluaXRpb24nICYmIGRlZi5vcGVyYXRpb24gPT09ICdtdXRhdGlvbic7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1N1YnNjcmlwdGlvbk9wZXJhdGlvbihvcGVyYXRpb246IE9wZXJhdGlvbikge1xuICBjb25zdCBkZWYgPSBnZXRNYWluRGVmaW5pdGlvbihvcGVyYXRpb24ucXVlcnkpO1xuICByZXR1cm4gZGVmLmtpbmQgPT09ICdPcGVyYXRpb25EZWZpbml0aW9uJyAmJiBkZWYub3BlcmF0aW9uID09PSAnc3Vic2NyaXB0aW9uJztcbn1cblxuXG5leHBvcnQgaW50ZXJmYWNlIFRyYWNrZWRRdWVyeSB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgcXVlcnlKU09OOiBzdHJpbmc7XG4gIHZhcmlhYmxlc0pTT046IHN0cmluZztcbiAgY29udGV4dEpTT046IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IFRSQUNLRURfUVVFUklFU19TVE9SQUdFX0tFWSA9ICdhcG9sbG8tdHJhY2tlci1wZXJzaXN0JztcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRyYWNrZXJMaW5rKG9wdHM6IHtcbiAgc3RvcmFnZT86IFBlcnNpc3RlbnRTdG9yYWdlPHN0cmluZz47XG4gIG9uTmV0d29ya1N0YXR1c0NoYW5nZTogT2JzZXJ2YWJsZTxDb25uZWN0aW9uVHlwZT47XG4gIGRlYm91bmNlPzogbnVtYmVyO1xuICBkZWJ1Zz86IGJvb2xlYW47XG4gIH0pOiBBcG9sbG9MaW5rIHtcblxuICBjb25zdCB0cmFja2VkUXVlcmllc1VwZGF0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIGNvbnN0IHRyYWNrZWRRdWVyaWVzQnlJZDoge1tpZDogc3RyaW5nXTogVHJhY2tlZFF1ZXJ5fSA9IHt9O1xuXG4gIGNvbnN0IG5ldHdvcmtTdGF0dXNTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCdub25lJyk7XG4gIG9wdHMub25OZXR3b3JrU3RhdHVzQ2hhbmdlLnN1YnNjcmliZSh0eXBlID0+IG5ldHdvcmtTdGF0dXNTdWJqZWN0Lm5leHQodHlwZSkpO1xuXG4gIC8vIFNhdmUgcGVuZGluZyBhbmQgdHJhY2tlZCBxdWVyaWVzIGluIHN0b3JhZ2VcbiAgdHJhY2tlZFF1ZXJpZXNVcGRhdGVkLnBpcGUoXG4gICAgZGVib3VuY2VUaW1lKG9wdHMuZGVib3VuY2UgfHwgMTAwMCksXG4gICAgc3dpdGNoTWFwKCgpID0+IG5ldHdvcmtTdGF0dXNTdWJqZWN0KSxcbiAgICAvLyBDb250aW51ZSBpZiBvZmZsaW5lXG4gICAgZmlsdGVyKCh0eXBlKSA9PiB0eXBlID09PSAnbm9uZScgJiYgISFvcHRzLnN0b3JhZ2UpXG4gICkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGNvbnN0IHRyYWNrZWRRdWVyaWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModHJhY2tlZFF1ZXJpZXNCeUlkKVxuICAgICAgICAubWFwKGtleSA9PiB0cmFja2VkUXVlcmllc0J5SWRba2V5XSlcbiAgICAgICAgLmZpbHRlcih2YWx1ZSA9PiB2YWx1ZSAhPT0gdW5kZWZpbmVkKTtcbiAgICAgIGlmIChvcHRzLmRlYnVnKSBjb25zb2xlLmRlYnVnKCdbYXBvbGxvLXRyYWNrZXItbGlua10gU2F2aW5nIHRyYWNrZWQgcXVlcmllcyB0byBzdG9yYWdlJywgdHJhY2tlZFF1ZXJpZXMpO1xuICAgICAgcmV0dXJuIG9wdHMuc3RvcmFnZS5zZXRJdGVtKFRSQUNLRURfUVVFUklFU19TVE9SQUdFX0tFWSwgSlNPTi5zdHJpbmdpZnkodHJhY2tlZFF1ZXJpZXMpKTtcbiAgICB9KTtcblxuICByZXR1cm4gbmV3IEFwb2xsb0xpbmsoKG9wZXJhdGlvbjogT3BlcmF0aW9uLCBmb3J3YXJkOiBOZXh0TGluaykgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSBvcGVyYXRpb24uZ2V0Q29udGV4dCgpO1xuXG4gICAgLy8gU2tpcCBpZiBub3QgdHJhY2tlZFxuICAgIGlmICghY29udGV4dCB8fCAhY29udGV4dC50cmFja2VkKSByZXR1cm4gZm9yd2FyZChvcGVyYXRpb24pO1xuXG4gICAgY29uc3QgaWQgPSBjb250ZXh0LnNlcmlhbGl6YXRpb25LZXkgfHwgdXVpZHY0KCk7XG4gICAgY29uc29sZS5kZWJ1ZyhgW2Fwb2xsby10cmFja2VyLWxpbmtdIFdhdGNoaW5nIHRyYWNrZWQgcXVlcnkgeyR7b3BlcmF0aW9uLm9wZXJhdGlvbk5hbWV9IyR7aWR9fWApO1xuXG4gICAgLy8gQ2xlYW4gY29udGV4dCwgYmVmb3JlIGNhbGxpbmcgSlNPTi5zdHJpbmdpZnkgKHJlbW92ZSB1bnVzZWQgYXR0cmlidXRlcylcbiAgICBjb25zdCBjbGVhbkNvbnRleHQgPSB7IC4uLmNvbnRleHQsIC4uLntvcHRpbWlzdGljUmVzcG9uc2U6IG51bGwsIGNhY2hlOiBudWxsfSB9O1xuXG4gICAgY29uc3QgdHJhY2tlZFF1ZXJ5OiBUcmFja2VkUXVlcnkgPSB7XG4gICAgICBpZCxcbiAgICAgIG5hbWU6IG9wZXJhdGlvbi5vcGVyYXRpb25OYW1lLFxuICAgICAgcXVlcnlKU09OOiBKU09OLnN0cmluZ2lmeShvcGVyYXRpb24ucXVlcnkpLFxuICAgICAgdmFyaWFibGVzSlNPTjogSlNPTi5zdHJpbmdpZnkob3BlcmF0aW9uLnZhcmlhYmxlcyksXG4gICAgICBjb250ZXh0SlNPTjogSlNPTi5zdHJpbmdpZnkoY2xlYW5Db250ZXh0KVxuICAgIH07XG5cbiAgICAvLyBBZGQgdG8gbWFwXG4gICAgdHJhY2tlZFF1ZXJpZXNCeUlkW2lkXSA9IHRyYWNrZWRRdWVyeTtcbiAgICB0cmFja2VkUXVlcmllc1VwZGF0ZWQuZW1pdCgpO1xuXG4gICAgY29uc3QgbmV4dE9wZXJhdGlvbiA9IGZvcndhcmQob3BlcmF0aW9uKVxuICAgICAgLm1hcChkYXRhID0+IHtcbiAgICAgICAgY29uc29sZS5kZWJ1ZyhgW2Fwb2xsby10cmFja2VyLWxpbmtdIFF1ZXJ5IHske29wZXJhdGlvbi5vcGVyYXRpb25OYW1lfSMke2lkfX0gc3VjY2VlZCFgLCBkYXRhKTtcbiAgICAgICAgZGVsZXRlIHRyYWNrZWRRdWVyaWVzQnlJZFtpZF07XG4gICAgICAgIHRyYWNrZWRRdWVyaWVzVXBkYXRlZC5lbWl0KHRyYWNrZWRRdWVyaWVzQnlJZCk7IC8vIHVwZGF0ZVxuXG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgfSk7XG5cbiAgICAvLyBJZiBvZmZsaW5lLCByZXR1cm4gdGhlIG9wdGltaXN0aWMgcmVzcG9uc2VcbiAgICBpZiAobmV0d29ya1N0YXR1c1N1YmplY3QuZ2V0VmFsdWUoKSA9PT0gJ25vbmUnKSB7XG4gICAgICBpZiAoY29udGV4dC5vcHRpbWlzdGljUmVzcG9uc2UpIHtcbiAgICAgICAgY29uc29sZS5kZWJ1ZyhgW2Fwb2xsby10cmFja2VyLWxpbmtdIFF1ZXJ5IHske29wZXJhdGlvbi5vcGVyYXRpb25OYW1lfSMke2lkfX0gaGFzIG9wdGltaXN0aWMgcmVzcG9uc2U6IGAsIGNvbnRleHQub3B0aW1pc3RpY1Jlc3BvbnNlKTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICBjb25zb2xlLndhcm4oYFthcG9sbG8tdHJhY2tlci1saW5rXSBRdWVyeSB7JHtvcGVyYXRpb24ub3BlcmF0aW9uTmFtZX0jJHtpZH19IG1pc3NpbmcgJ2NvbnRleHQub3B0aW1pc3RpY1Jlc3BvbnNlJzogd2FpdGluZyBuZXR3b3JrIFVQIGJlZm9yZSB0byBjb250aW51ZS4uLmApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuZXh0T3BlcmF0aW9uO1xuICB9KTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlc3RvcmVUcmFja2VkUXVlcmllcyhvcHRzOiB7XG4gIGFwb2xsb0NsaWVudDogQXBvbGxvQ2xpZW50PGFueT47XG4gIHN0b3JhZ2U6IFBlcnNpc3RlbnRTdG9yYWdlPGFueT47XG4gIGRlYnVnPzogYm9vbGVhbjtcbn0pIHtcblxuICBjb25zdCBsaXN0ID0gSlNPTi5wYXJzZShhd2FpdCBvcHRzLnN0b3JhZ2UuZ2V0SXRlbShUUkFDS0VEX1FVRVJJRVNfU1RPUkFHRV9LRVkpKSBhcyBUcmFja2VkUXVlcnlbXTtcblxuICBpZiAoIWxpc3QpIHJldHVybjtcbiAgaWYgKG9wdHMuZGVidWcpIGNvbnNvbGUuZGVidWcoJ1thcG9sbG8tdHJhY2tlci1saW5rXSBSZXN0b3JpbmcgdHJhY2tlZCBxdWVyaWVzJywgbGlzdCk7XG5cbiAgY29uc3QgcHJvbWlzZXMgPSAobGlzdCB8fCBbXSkubWFwKHRyYWNrZWRRdWVyeSA9PiB7XG4gICAgY29uc3QgY29udGV4dCA9IEpTT04ucGFyc2UodHJhY2tlZFF1ZXJ5LmNvbnRleHRKU09OKTtcbiAgICBjb25zdCBxdWVyeSA9IEpTT04ucGFyc2UodHJhY2tlZFF1ZXJ5LnF1ZXJ5SlNPTik7XG4gICAgY29uc3QgdmFyaWFibGVzID0gSlNPTi5wYXJzZSh0cmFja2VkUXVlcnkudmFyaWFibGVzSlNPTik7XG4gICAgcmV0dXJuIG9wdHMuYXBvbGxvQ2xpZW50Lm11dGF0ZSh7XG4gICAgICBjb250ZXh0LFxuICAgICAgbXV0YXRpb246IHF1ZXJ5LFxuICAgICAgb3B0aW1pc3RpY1Jlc3BvbnNlOiBjb250ZXh0Lm9wdGltaXN0aWNSZXNwb25zZSxcbiAgICAgIC8vdXBkYXRlOiB1cGRhdGVIYW5kbGVyQnlOYW1lW3RyYWNrZWRRdWVyeS5uYW1lXSxcbiAgICAgIHZhcmlhYmxlcyxcbiAgICB9KTtcbiAgfSk7XG5cbiAgcmV0dXJuIFByb21pc2UuYWxsKHByb21pc2VzKTtcbn1cblxuXG5leHBvcnQgY2xhc3MgU3RvcmFnZVNlcnZpY2VXcmFwcGVyIGltcGxlbWVudHMgUGVyc2lzdGVudFN0b3JhZ2U8c3RyaW5nPiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmFnZTogU3RvcmFnZVNlcnZpY2UpIHtcbiAgfVxuXG4gIGdldEl0ZW0oa2V5KSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmFnZS5nZXQoa2V5KTtcbiAgfVxuICByZW1vdmVJdGVtKGtleSkge1xuICAgIHJldHVybiB0aGlzLnN0b3JhZ2UucmVtb3ZlKGtleSk7XG4gIH1cbiAgc2V0SXRlbShrZXksIHZhbHVlKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmFnZS5zZXQoa2V5LCB2YWx1ZSk7XG4gIH1cbn1cbiJdfQ==
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbC51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9ncmFwaHFsL2dyYXBocWwudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixVQUFVLEVBQXVCLE1BQU0scUJBQXFCLENBQUM7QUFDcEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRzdELE9BQU8sRUFBRSxFQUFFLElBQUksTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSXBDLE1BQU0sT0FBTyxHQUFHLE9BQU8sTUFBTSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLE1BQU0sS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ3JHLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsU0FBUyxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUM7QUFNekU7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLFVBQVUsR0FBVyxFQUFFLFNBQTZCO0lBQzlFLE9BQU8sSUFBSSxlQUFlLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFDbkQsQ0FBUSxDQUFDO0FBQ1QsWUFBWSxDQUFDLE1BQU0sR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDO0FBQzdDLFlBQVksQ0FBQyxPQUFPLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQztBQUMvQyxZQUFZLENBQUMsVUFBVSxHQUFHLGVBQWUs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T0FBTyxDQUFnQjtJQUFHLENBQUM7SUFFL0MsT0FBTyxDQUFDLEdBQUc7UUFDVCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFDRCxVQUFVLENBQUMsR0FBRztRQUNaLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUNELE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSztRQUNoQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN0QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcG9sbG9DbGllbnQsIEFwb2xsb0xpbmssIE5leHRMaW5rLCBPcGVyYXRpb24gfSBmcm9tICdAYXBvbGxvL2NsaWVudC9jb3JlJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZ2V0TWFpbkRlZmluaXRpb24gfSBmcm9tICdAYXBvbGxvL2NsaWVudC91dGlsaXRpZXMnO1xuaW1wb3J0IHsgUGVyc2lzdGVudFN0b3JhZ2UgfSBmcm9tICdhcG9sbG8zLWNhY2hlLXBlcnNpc3QnO1xuaW1wb3J0IHsgQ29ubmVjdGlvblR5cGUgfSBmcm9tICcuLi9zZXJ2aWNlcy9uZXR3b3JrLnR5cGVzJztcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IHsgU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvc3RvcmFnZS9zdG9yYWdlLnNlcnZpY2UnO1xuXG5kZWNsYXJlIGxldCB3aW5kb3c6IGFueTtcbmNvbnN0IF9nbG9iYWwgPSB0eXBlb2YgZ2xvYmFsICE9PSAndW5kZWZpbmVkJyA/IGdsb2JhbCA6IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnID8gd2luZG93IDoge307XG5leHBvcnQgY29uc3QgTmF0aXZlV2ViU29ja2V0ID0gX2dsb2JhbC5XZWJTb2NrZXQgfHwgX2dsb2JhbC5Nb3pXZWJTb2NrZXQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW1wdHlPYmplY3Qge1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbi8qKlxuICogQXBwV2ViU29ja2V0IGNsYXNzLlxuICogV2l0aCBhIGhhY2sgb24gZGVmYXVsdCBXZWJzb2NrZXQsIHRvIGF2b2lkIHRoZSB1c2Ugb2YgcHJvdG9jb2xcbiAqL1xuZXhwb3J0IGNvbnN0IEFwcFdlYlNvY2tldCA9IGZ1bmN0aW9uICh1cmw6IHN0cmluZywgcHJvdG9jb2xzPzogc3RyaW5nIHwgc3RyaW5nW10pIHtcbiAgcmV0dXJuIG5ldyBOYXRpdmVXZWJTb2NrZXQodXJsIC8qbm8gcHJvdG9jb2xzKi8pO1xufSBhcyBhbnk7XG5BcHBXZWJTb2NrZXQuQ0xPU0VEID0gTmF0aXZlV2ViU29ja2V0LkNMT1NFRDtcbkFwcFdlYlNvY2tldC5DTE9TSU5HID0gTmF0aXZlV2ViU29ja2V0LkNMT1NJTkc7XG5BcHBXZWJTb2NrZXQuQ09OTkVDVElORyA9IE5hdGl2ZVdlYlNvY2tldC5DT05ORUNUSU5HO1xuQXBwV2ViU29ja2V0Lk9QRU4gPSBOYXRpdmVXZWJTb2NrZXQuT1BFTjtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzTXV0YXRpb25PcGVyYXRpb24ob3BlcmF0aW9uOiBPcGVyYXRpb24pIHtcbiAgY29uc3QgZGVmID0gZ2V0TWFpbkRlZmluaXRpb24ob3BlcmF0aW9uLnF1ZXJ5KTtcbiAgcmV0dXJuIGRlZi5raW5kID09PSAnT3BlcmF0aW9uRGVmaW5pdGlvbicgJiYgZGVmLm9wZXJhdGlvbiA9PT0gJ211dGF0aW9uJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU3Vic2NyaXB0aW9uT3BlcmF0aW9uKG9wZXJhdGlvbjogT3BlcmF0aW9uKSB7XG4gIGNvbnN0IGRlZiA9IGdldE1haW5EZWZpbml0aW9uKG9wZXJhdGlvbi5xdWVyeSk7XG4gIHJldHVybiBkZWYua2luZCA9PT0gJ09wZXJhdGlvbkRlZmluaXRpb24nICYmIGRlZi5vcGVyYXRpb24gPT09ICdzdWJzY3JpcHRpb24nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyYWNrZWRRdWVyeSB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgcXVlcnlKU09OOiBzdHJpbmc7XG4gIHZhcmlhYmxlc0pTT046IHN0cmluZztcbiAgY29udGV4dEpTT046IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IFRSQUNLRURfUVVFUklFU19TVE9SQUdFX0tFWSA9ICdhcG9sbG8tdHJhY2tlci1wZXJzaXN0JztcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRyYWNrZXJMaW5rKG9wdHM6IHtcbiAgc3RvcmFnZT86IFBlcnNpc3RlbnRTdG9yYWdlPHN0cmluZz47XG4gIG9uTmV0d29ya1N0YXR1c0NoYW5nZTogT2JzZXJ2YWJsZTxDb25uZWN0aW9uVHlwZT47XG4gIGRlYm91bmNlPzogbnVtYmVyO1xuICBkZWJ1Zz86IGJvb2xlYW47XG59KTogQXBvbGxvTGluayB7XG4gIGNvbnN0IHRyYWNrZWRRdWVyaWVzVXBkYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgY29uc3QgdHJhY2tlZFF1ZXJpZXNCeUlkOiB7IFtpZDogc3RyaW5nXTogVHJhY2tlZFF1ZXJ5IH0gPSB7fTtcblxuICBjb25zdCBuZXR3b3JrU3RhdHVzU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignbm9uZScpO1xuICBvcHRzLm9uTmV0d29ya1N0YXR1c0NoYW5nZS5zdWJzY3JpYmUoKHR5cGUpID0+IG5ldHdvcmtTdGF0dXNTdWJqZWN0Lm5leHQodHlwZSkpO1xuXG4gIC8vIFNhdmUgcGVuZGluZyBhbmQgdHJhY2tlZCBxdWVyaWVzIGluIHN0b3JhZ2VcbiAgdHJhY2tlZFF1ZXJpZXNVcGRhdGVkXG4gICAgLnBpcGUoXG4gICAgICBkZWJvdW5jZVRpbWUob3B0cy5kZWJvdW5jZSB8fCAxMDAwKSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiBuZXR3b3JrU3RhdHVzU3ViamVjdCksXG4gICAgICAvLyBDb250aW51ZSBpZiBvZmZsaW5lXG4gICAgICBmaWx0ZXIoKHR5cGUpID0+IHR5cGUgPT09ICdub25lJyAmJiAhIW9wdHMuc3RvcmFnZSlcbiAgICApXG4gICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBjb25zdCB0cmFja2VkUXVlcmllcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRyYWNrZWRRdWVyaWVzQnlJZClcbiAgICAgICAgLm1hcCgoa2V5KSA9PiB0cmFja2VkUXVlcmllc0J5SWRba2V5XSlcbiAgICAgICAgLmZpbHRlcigodmFsdWUpID0+IHZhbHVlICE9PSB1bmRlZmluZWQpO1xuICAgICAgaWYgKG9wdHMuZGVidWcpIGNvbnNvbGUuZGVidWcoJ1thcG9sbG8tdHJhY2tlci1saW5rXSBTYXZpbmcgdHJhY2tlZCBxdWVyaWVzIHRvIHN0b3JhZ2UnLCB0cmFja2VkUXVlcmllcyk7XG4gICAgICByZXR1cm4gb3B0cy5zdG9yYWdlLnNldEl0ZW0oVFJBQ0tFRF9RVUVSSUVTX1NUT1JBR0VfS0VZLCBKU09OLnN0cmluZ2lmeSh0cmFja2VkUXVlcmllcykpO1xuICAgIH0pO1xuXG4gIHJldHVybiBuZXcgQXBvbGxvTGluaygob3BlcmF0aW9uOiBPcGVyYXRpb24sIGZvcndhcmQ6IE5leHRMaW5rKSA9PiB7XG4gICAgY29uc3QgY29udGV4dCA9IG9wZXJhdGlvbi5nZXRDb250ZXh0KCk7XG5cbiAgICAvLyBTa2lwIGlmIG5vdCB0cmFja2VkXG4gICAgaWYgKCFjb250ZXh0IHx8ICFjb250ZXh0LnRyYWNrZWQpIHJldHVybiBmb3J3YXJkKG9wZXJhdGlvbik7XG5cbiAgICBjb25zdCBpZCA9IGNvbnRleHQuc2VyaWFsaXphdGlvbktleSB8fCB1dWlkdjQoKTtcbiAgICBjb25zb2xlLmRlYnVnKGBbYXBvbGxvLXRyYWNrZXItbGlua10gV2F0Y2hpbmcgdHJhY2tlZCBxdWVyeSB7JHtvcGVyYXRpb24ub3BlcmF0aW9uTmFtZX0jJHtpZH19YCk7XG5cbiAgICAvLyBDbGVhbiBjb250ZXh0LCBiZWZvcmUgY2FsbGluZyBKU09OLnN0cmluZ2lmeSAocmVtb3ZlIHVudXNlZCBhdHRyaWJ1dGVzKVxuICAgIGNvbnN0IGNsZWFuQ29udGV4dCA9IHsgLi4uY29udGV4dCwgLi4ueyBvcHRpbWlzdGljUmVzcG9uc2U6IG51bGwsIGNhY2hlOiBudWxsIH0gfTtcblxuICAgIGNvbnN0IHRyYWNrZWRRdWVyeTogVHJhY2tlZFF1ZXJ5ID0ge1xuICAgICAgaWQsXG4gICAgICBuYW1lOiBvcGVyYXRpb24ub3BlcmF0aW9uTmFtZSxcbiAgICAgIHF1ZXJ5SlNPTjogSlNPTi5zdHJpbmdpZnkob3BlcmF0aW9uLnF1ZXJ5KSxcbiAgICAgIHZhcmlhYmxlc0pTT046IEpTT04uc3RyaW5naWZ5KG9wZXJhdGlvbi52YXJpYWJsZXMpLFxuICAgICAgY29udGV4dEpTT046IEpTT04uc3RyaW5naWZ5KGNsZWFuQ29udGV4dCksXG4gICAgfTtcblxuICAgIC8vIEFkZCB0byBtYXBcbiAgICB0cmFja2VkUXVlcmllc0J5SWRbaWRdID0gdHJhY2tlZFF1ZXJ5O1xuICAgIHRyYWNrZWRRdWVyaWVzVXBkYXRlZC5lbWl0KCk7XG5cbiAgICBjb25zdCBuZXh0T3BlcmF0aW9uID0gZm9yd2FyZChvcGVyYXRpb24pLm1hcCgoZGF0YSkgPT4ge1xuICAgICAgY29uc29sZS5kZWJ1ZyhgW2Fwb2xsby10cmFja2VyLWxpbmtdIFF1ZXJ5IHske29wZXJhdGlvbi5vcGVyYXRpb25OYW1lfSMke2lkfX0gc3VjY2VlZCFgLCBkYXRhKTtcbiAgICAgIGRlbGV0ZSB0cmFja2VkUXVlcmllc0J5SWRbaWRdO1xuICAgICAgdHJhY2tlZFF1ZXJpZXNVcGRhdGVkLmVtaXQodHJhY2tlZFF1ZXJpZXNCeUlkKTsgLy8gdXBkYXRlXG5cbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH0pO1xuXG4gICAgLy8gSWYgb2ZmbGluZSwgcmV0dXJuIHRoZSBvcHRpbWlzdGljIHJlc3BvbnNlXG4gICAgaWYgKG5ldHdvcmtTdGF0dXNTdWJqZWN0LmdldFZhbHVlKCkgPT09ICdub25lJykge1xuICAgICAgaWYgKGNvbnRleHQub3B0aW1pc3RpY1Jlc3BvbnNlKSB7XG4gICAgICAgIGNvbnNvbGUuZGVidWcoYFthcG9sbG8tdHJhY2tlci1saW5rXSBRdWVyeSB7JHtvcGVyYXRpb24ub3BlcmF0aW9uTmFtZX0jJHtpZH19IGhhcyBvcHRpbWlzdGljIHJlc3BvbnNlOiBgLCBjb250ZXh0Lm9wdGltaXN0aWNSZXNwb25zZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgYFthcG9sbG8tdHJhY2tlci1saW5rXSBRdWVyeSB7JHtvcGVyYXRpb24ub3BlcmF0aW9uTmFtZX0jJHtpZH19IG1pc3NpbmcgJ2NvbnRleHQub3B0aW1pc3RpY1Jlc3BvbnNlJzogd2FpdGluZyBuZXR3b3JrIFVQIGJlZm9yZSB0byBjb250aW51ZS4uLmBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV4dE9wZXJhdGlvbjtcbiAgfSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZXN0b3JlVHJhY2tlZFF1ZXJpZXMob3B0czogeyBhcG9sbG9DbGllbnQ6IEFwb2xsb0NsaWVudDxhbnk+OyBzdG9yYWdlOiBQZXJzaXN0ZW50U3RvcmFnZTxhbnk+OyBkZWJ1Zz86IGJvb2xlYW4gfSkge1xuICBjb25zdCBsaXN0ID0gSlNPTi5wYXJzZShhd2FpdCBvcHRzLnN0b3JhZ2UuZ2V0SXRlbShUUkFDS0VEX1FVRVJJRVNfU1RPUkFHRV9LRVkpKSBhcyBUcmFja2VkUXVlcnlbXTtcblxuICBpZiAoIWxpc3QpIHJldHVybjtcbiAgaWYgKG9wdHMuZGVidWcpIGNvbnNvbGUuZGVidWcoJ1thcG9sbG8tdHJhY2tlci1saW5rXSBSZXN0b3JpbmcgdHJhY2tlZCBxdWVyaWVzJywgbGlzdCk7XG5cbiAgY29uc3QgcHJvbWlzZXMgPSAobGlzdCB8fCBbXSkubWFwKCh0cmFja2VkUXVlcnkpID0+IHtcbiAgICBjb25zdCBjb250ZXh0ID0gSlNPTi5wYXJzZSh0cmFja2VkUXVlcnkuY29udGV4dEpTT04pO1xuICAgIGNvbnN0IHF1ZXJ5ID0gSlNPTi5wYXJzZSh0cmFja2VkUXVlcnkucXVlcnlKU09OKTtcbiAgICBjb25zdCB2YXJpYWJsZXMgPSBKU09OLnBhcnNlKHRyYWNrZWRRdWVyeS52YXJpYWJsZXNKU09OKTtcbiAgICByZXR1cm4gb3B0cy5hcG9sbG9DbGllbnQubXV0YXRlKHtcbiAgICAgIGNvbnRleHQsXG4gICAgICBtdXRhdGlvbjogcXVlcnksXG4gICAgICBvcHRpbWlzdGljUmVzcG9uc2U6IGNvbnRleHQub3B0aW1pc3RpY1Jlc3BvbnNlLFxuICAgICAgLy91cGRhdGU6IHVwZGF0ZUhhbmRsZXJCeU5hbWVbdHJhY2tlZFF1ZXJ5Lm5hbWVdLFxuICAgICAgdmFyaWFibGVzLFxuICAgIH0pO1xuICB9KTtcblxuICByZXR1cm4gUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xufVxuXG5leHBvcnQgY2xhc3MgU3RvcmFnZVNlcnZpY2VXcmFwcGVyIGltcGxlbWVudHMgUGVyc2lzdGVudFN0b3JhZ2U8c3RyaW5nPiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmFnZTogU3RvcmFnZVNlcnZpY2UpIHt9XG5cbiAgZ2V0SXRlbShrZXkpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yYWdlLmdldChrZXkpO1xuICB9XG4gIHJlbW92ZUl0ZW0oa2V5KSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmFnZS5yZW1vdmUoa2V5KTtcbiAgfVxuICBzZXRJdGVtKGtleSwgdmFsdWUpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yYWdlLnNldChrZXksIHZhbHVlKTtcbiAgfVxufVxuIl19