@sumaris-net/ngx-components 4.0.0-rc9 → 18.0.0

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 +33 -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 +7 -5
  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 @@
4
4
  const _cache = {
5
5
  mobile: null,
6
6
  cordova: null,
7
- capacitor: null
7
+ capacitor: null,
8
8
  };
9
9
  export const matchMedia = (win, query) => win.matchMedia(query).matches;
10
10
  export const testUserAgent = (win, expr) => {
@@ -34,10 +34,12 @@ export const isCapacitor = (win) => {
34
34
  };
35
35
  export const isMobile = (win) => {
36
36
  if (_cache.mobile === null || _cache.mobile === undefined) {
37
- _cache.mobile = isAndroid(win) || isIOS(window)
38
- // Workaround, for MS Windows touch screen (detected as mobile, but forced as desktop)
39
- || (isTouchUi(win) && !isWindows(win));
37
+ _cache.mobile =
38
+ isAndroid(win) ||
39
+ isIOS(window) ||
40
+ // Workaround, for MS Windows touch screen (detected as mobile, but forced as desktop)
41
+ (isTouchUi(win) && !isWindows(win));
40
42
  }
41
43
  return _cache.mobile;
42
44
  };
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvcGxhdGZvcm1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztTQUVTO0FBRVQsTUFBTSxNQUFNLEdBQUc7SUFDYixNQUFNLEVBQUUsSUFBSTtJQUNaLE9BQU8sRUFBRSxJQUFJO0lBQ2IsU0FBUyxFQUFFLElBQUk7Q0FDaEIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLEdBQVcsRUFBRSxLQUFhLEVBQVcsRUFBRSxDQUNoRSxHQUFHLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQztBQUVoQyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxHQUFXLEVBQUUsSUFBWSxFQUFFLEVBQUU7SUFDekQsTUFBTSxTQUFTLEdBQVcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxTQUFTLElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxNQUFNLElBQUssTUFBYyxDQUFDLEtBQUssQ0FBQztJQUNuRyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDOUIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUMsR0FBWSxFQUFFLEVBQUUsQ0FDeEMsYUFBYSxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUVqQyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxHQUFZLEVBQUUsRUFBRSxDQUN4QyxVQUFVLENBQUMsR0FBRyxFQUFFLHNCQUFzQixDQUFDLENBQUM7QUFFMUMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRTtJQUM3QixtQkFBbUI7SUFDbkIsSUFBSSxhQUFhLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxFQUFFO1FBQy9CLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFFRCxVQUFVO0lBQ1YsSUFBSSxhQUFhLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxJQUFJLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUN0RCxPQUFPLElBQUksQ0FBQztLQUNiO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUNuQyxhQUFhLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUVwRCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUN2QyxhQUFhLENBQUMsR0FBRyxFQUFFLGVBQWUsQ0FBQyxDQUFDO0FBRXRDLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQVEsRUFBVyxFQUFFO0lBQy9DLElBQUksTUFBTSxDQUFDLFNBQVMsS0FBSyxJQUFJLElBQUksTUFBTSxDQUFDLFNBQVMsS0FBSyxTQUFTLEVBQUU7UUFDL0QsTUFBTSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7S0FDN0Q7SUFDRCxPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUM7QUFDMUIsQ0FBQyxDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUU7SUFDdEMsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRTtRQUN6RCxNQUFNLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQzdDLHNGQUFzRjtlQUNuRixDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0tBQzFDO0lBQ0QsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDO0FBQ3ZCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIC0tLVxuICogU291cmNlOiBodHRwczovL2dpdGh1Yi5jb20vaW9uaWMtdGVhbS9pb25pYy1mcmFtZXdvcmsvYmxvYi9iMGQ1M2NhNzM2MTk1ODU2NzFkOGNmNGRjMjRlNDdmODI2NDk1YTBhL2NvcmUvc3JjL3V0aWxzL3BsYXRmb3JtLnRzXG4gKiAtLS0gKi9cblxuY29uc3QgX2NhY2hlID0ge1xuICBtb2JpbGU6IG51bGwsXG4gIGNvcmRvdmE6IG51bGwsXG4gIGNhcGFjaXRvcjogbnVsbFxufTtcblxuZXhwb3J0IGNvbnN0IG1hdGNoTWVkaWEgPSAod2luOiBXaW5kb3csIHF1ZXJ5OiBzdHJpbmcpOiBib29sZWFuID0+XG4gIHdpbi5tYXRjaE1lZGlhKHF1ZXJ5KS5tYXRjaGVzO1xuXG5leHBvcnQgY29uc3QgdGVzdFVzZXJBZ2VudCA9ICh3aW46IFdpbmRvdywgZXhwcjogUmVnRXhwKSA9PiB7XG4gIGNvbnN0IHVzZXJBZ2VudDogc3RyaW5nID0gd2luLm5hdmlnYXRvci51c2VyQWdlbnQgfHwgd2luLm5hdmlnYXRvci52ZW5kb3IgfHwgKHdpbmRvdyBhcyBhbnkpLm9wZXJhO1xuICByZXR1cm4gZXhwci50ZXN0KHVzZXJBZ2VudCk7XG59O1xuXG5leHBvcnQgY29uc3QgaXNXaW5kb3dzID0gKHdpbj86IFdpbmRvdykgPT5cbiAgdGVzdFVzZXJBZ2VudCh3aW4sIC93aW5kb3dzL2kpO1xuXG5leHBvcnQgY29uc3QgaXNUb3VjaFVpID0gKHdpbj86IFdpbmRvdykgPT5cbiAgbWF0Y2hNZWRpYSh3aW4sICcoYW55LXBvaW50ZXI6Y29hcnNlKScpO1xuXG5jb25zdCBpc0lwYWQgPSAod2luOiBXaW5kb3cpID0+IHtcbiAgLy8gaU9TIDEyIGFuZCBiZWxvd1xuICBpZiAodGVzdFVzZXJBZ2VudCh3aW4sIC9pUGFkL2kpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvLyBpT1MgMTMrXG4gIGlmICh0ZXN0VXNlckFnZW50KHdpbiwgL01hY2ludG9zaC9pKSAmJiBpc1RvdWNoVWkod2luKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzSU9TID0gKHdpbjogV2luZG93KSA9PlxuICB0ZXN0VXNlckFnZW50KHdpbiwgL2lQaG9uZXxpUG9kL2kpIHx8IGlzSXBhZCh3aW4pO1xuXG5leHBvcnQgY29uc3QgaXNBbmRyb2lkID0gKHdpbjogV2luZG93KSA9PlxuICB0ZXN0VXNlckFnZW50KHdpbiwgL2FuZHJvaWR8c2luay9pKTtcblxuZXhwb3J0IGNvbnN0IGlzQ2FwYWNpdG9yID0gKHdpbjogYW55KTogYm9vbGVhbiA9PiB7XG4gIGlmIChfY2FjaGUuY2FwYWNpdG9yID09PSBudWxsIHx8IF9jYWNoZS5jYXBhY2l0b3IgPT09IHVuZGVmaW5lZCkge1xuICAgIF9jYWNoZS5jYXBhY2l0b3IgPSAhISh3aW5bJ0NhcGFjaXRvciddIHx8IHdpblsnY2FwYWNpdG9yJ10pO1xuICB9XG4gIHJldHVybiBfY2FjaGUuY2FwYWNpdG9yO1xufTtcbmV4cG9ydCBjb25zdCBpc01vYmlsZSA9ICh3aW46IFdpbmRvdykgPT4ge1xuICBpZiAoX2NhY2hlLm1vYmlsZSA9PT0gbnVsbCB8fCBfY2FjaGUubW9iaWxlID09PSB1bmRlZmluZWQpIHtcbiAgICBfY2FjaGUubW9iaWxlID0gaXNBbmRyb2lkKHdpbikgfHwgaXNJT1Mod2luZG93KVxuICAgICAgLy8gV29ya2Fyb3VuZCwgZm9yIE1TIFdpbmRvd3MgdG91Y2ggc2NyZWVuIChkZXRlY3RlZCBhcyBtb2JpbGUsIGJ1dCBmb3JjZWQgYXMgZGVza3RvcClcbiAgICAgIHx8IChpc1RvdWNoVWkod2luKSAmJiAhaXNXaW5kb3dzKHdpbikpO1xuICB9XG4gIHJldHVybiBfY2FjaGUubW9iaWxlO1xufTtcbiJdfQ==
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvcGxhdGZvcm1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztTQUVTO0FBRVQsTUFBTSxNQUFNLEdBQUc7SUFDYixNQUFNLEVBQUUsSUFBSTtJQUNaLE9BQU8sRUFBRSxJQUFJO0lBQ2IsU0FBUyxFQUFFLElBQUk7Q0FDaEIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLEdBQVcsRUFBRSxLQUFhLEVBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDO0FBRWpHLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLEdBQVcsRUFBRSxJQUFZLEVBQUUsRUFBRTtJQUN6RCxNQUFNLFNBQVMsR0FBVyxHQUFHLENBQUMsU0FBUyxDQUFDLFNBQVMsSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sSUFBSyxNQUFjLENBQUMsS0FBSyxDQUFDO0lBQ25HLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUM5QixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxHQUFZLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFFMUUsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUMsR0FBWSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLHNCQUFzQixDQUFDLENBQUM7QUFFbkYsTUFBTSxNQUFNLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRTtJQUM3QixtQkFBbUI7SUFDbkIsSUFBSSxhQUFhLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDaEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsVUFBVTtJQUNWLElBQUksYUFBYSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUMsSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN2RCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxjQUFjLENBQUMsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7QUFFeEYsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLGVBQWUsQ0FBQyxDQUFDO0FBRTlFLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQVEsRUFBVyxFQUFFO0lBQy9DLElBQUksTUFBTSxDQUFDLFNBQVMsS0FBSyxJQUFJLElBQUksTUFBTSxDQUFDLFNBQVMsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUNoRSxNQUFNLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDO0FBQzFCLENBQUMsQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFO0lBQ3RDLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxJQUFJLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUMxRCxNQUFNLENBQUMsTUFBTTtZQUNYLFNBQVMsQ0FBQyxHQUFHLENBQUM7Z0JBQ2QsS0FBSyxDQUFDLE1BQU0sQ0FBQztnQkFDYixzRkFBc0Y7Z0JBQ3RGLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQztBQUN2QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiAtLS1cbiAqIFNvdXJjZTogaHR0cHM6Ly9naXRodWIuY29tL2lvbmljLXRlYW0vaW9uaWMtZnJhbWV3b3JrL2Jsb2IvYjBkNTNjYTczNjE5NTg1NjcxZDhjZjRkYzI0ZTQ3ZjgyNjQ5NWEwYS9jb3JlL3NyYy91dGlscy9wbGF0Zm9ybS50c1xuICogLS0tICovXG5cbmNvbnN0IF9jYWNoZSA9IHtcbiAgbW9iaWxlOiBudWxsLFxuICBjb3Jkb3ZhOiBudWxsLFxuICBjYXBhY2l0b3I6IG51bGwsXG59O1xuXG5leHBvcnQgY29uc3QgbWF0Y2hNZWRpYSA9ICh3aW46IFdpbmRvdywgcXVlcnk6IHN0cmluZyk6IGJvb2xlYW4gPT4gd2luLm1hdGNoTWVkaWEocXVlcnkpLm1hdGNoZXM7XG5cbmV4cG9ydCBjb25zdCB0ZXN0VXNlckFnZW50ID0gKHdpbjogV2luZG93LCBleHByOiBSZWdFeHApID0+IHtcbiAgY29uc3QgdXNlckFnZW50OiBzdHJpbmcgPSB3aW4ubmF2aWdhdG9yLnVzZXJBZ2VudCB8fCB3aW4ubmF2aWdhdG9yLnZlbmRvciB8fCAod2luZG93IGFzIGFueSkub3BlcmE7XG4gIHJldHVybiBleHByLnRlc3QodXNlckFnZW50KTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1dpbmRvd3MgPSAod2luPzogV2luZG93KSA9PiB0ZXN0VXNlckFnZW50KHdpbiwgL3dpbmRvd3MvaSk7XG5cbmV4cG9ydCBjb25zdCBpc1RvdWNoVWkgPSAod2luPzogV2luZG93KSA9PiBtYXRjaE1lZGlhKHdpbiwgJyhhbnktcG9pbnRlcjpjb2Fyc2UpJyk7XG5cbmNvbnN0IGlzSXBhZCA9ICh3aW46IFdpbmRvdykgPT4ge1xuICAvLyBpT1MgMTIgYW5kIGJlbG93XG4gIGlmICh0ZXN0VXNlckFnZW50KHdpbiwgL2lQYWQvaSkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8vIGlPUyAxMytcbiAgaWYgKHRlc3RVc2VyQWdlbnQod2luLCAvTWFjaW50b3NoL2kpICYmIGlzVG91Y2hVaSh3aW4pKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59O1xuXG5leHBvcnQgY29uc3QgaXNJT1MgPSAod2luOiBXaW5kb3cpID0+IHRlc3RVc2VyQWdlbnQod2luLCAvaVBob25lfGlQb2QvaSkgfHwgaXNJcGFkKHdpbik7XG5cbmV4cG9ydCBjb25zdCBpc0FuZHJvaWQgPSAod2luOiBXaW5kb3cpID0+IHRlc3RVc2VyQWdlbnQod2luLCAvYW5kcm9pZHxzaW5rL2kpO1xuXG5leHBvcnQgY29uc3QgaXNDYXBhY2l0b3IgPSAod2luOiBhbnkpOiBib29sZWFuID0+IHtcbiAgaWYgKF9jYWNoZS5jYXBhY2l0b3IgPT09IG51bGwgfHwgX2NhY2hlLmNhcGFjaXRvciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgX2NhY2hlLmNhcGFjaXRvciA9ICEhKHdpblsnQ2FwYWNpdG9yJ10gfHwgd2luWydjYXBhY2l0b3InXSk7XG4gIH1cbiAgcmV0dXJuIF9jYWNoZS5jYXBhY2l0b3I7XG59O1xuZXhwb3J0IGNvbnN0IGlzTW9iaWxlID0gKHdpbjogV2luZG93KSA9PiB7XG4gIGlmIChfY2FjaGUubW9iaWxlID09PSBudWxsIHx8IF9jYWNoZS5tb2JpbGUgPT09IHVuZGVmaW5lZCkge1xuICAgIF9jYWNoZS5tb2JpbGUgPVxuICAgICAgaXNBbmRyb2lkKHdpbikgfHxcbiAgICAgIGlzSU9TKHdpbmRvdykgfHxcbiAgICAgIC8vIFdvcmthcm91bmQsIGZvciBNUyBXaW5kb3dzIHRvdWNoIHNjcmVlbiAoZGV0ZWN0ZWQgYXMgbW9iaWxlLCBidXQgZm9yY2VkIGFzIGRlc2t0b3ApXG4gICAgICAoaXNUb3VjaFVpKHdpbikgJiYgIWlzV2luZG93cyh3aW4pKTtcbiAgfVxuICByZXR1cm4gX2NhY2hlLm1vYmlsZTtcbn07XG4iXX0=
@@ -5,19 +5,15 @@ import { RxPush } from '@rx-angular/template/push';
5
5
  import { RxLet } from '@rx-angular/template/let';
6
6
  import * as i0 from "@angular/core";
7
7
  export class RxStateModule {
8
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: RxStateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.6", ngImport: i0, type: RxStateModule, imports: [RxPush, RxFor, RxIf, RxLet], exports: [RxPush, RxFor, RxIf, RxLet] });
10
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: RxStateModule });
8
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: RxStateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: RxStateModule, imports: [RxPush, RxFor, RxIf, RxLet], exports: [RxPush, RxFor, RxIf, RxLet] });
10
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: RxStateModule });
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: RxStateModule, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: RxStateModule, decorators: [{
13
13
  type: NgModule,
14
14
  args: [{
15
- imports: [
16
- RxPush, RxFor, RxIf, RxLet
17
- ],
18
- exports: [
19
- RxPush, RxFor, RxIf, RxLet
20
- ]
15
+ imports: [RxPush, RxFor, RxIf, RxLet],
16
+ exports: [RxPush, RxFor, RxIf, RxLet],
21
17
  }]
22
18
  }] });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicngtc3RhdGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvcngtc3RhdGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQy9DLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDakQsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLDBCQUEwQixDQUFDOztBQVUvQyxNQUFNLE9BQU8sYUFBYTt1R0FBYixhQUFhO3dHQUFiLGFBQWEsWUFOdEIsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxhQUcxQixNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLO3dHQUdqQixhQUFhOzsyRkFBYixhQUFhO2tCQVJ6QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLO3FCQUMzQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSztxQkFDM0I7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UnhGb3J9IGZyb20gJ0ByeC1hbmd1bGFyL3RlbXBsYXRlL2Zvcic7XG5pbXBvcnQge1J4SWZ9IGZyb20gJ0ByeC1hbmd1bGFyL3RlbXBsYXRlL2lmJztcbmltcG9ydCB7UnhQdXNofSBmcm9tICdAcngtYW5ndWxhci90ZW1wbGF0ZS9wdXNoJztcbmltcG9ydCB7UnhMZXR9IGZyb20gJ0ByeC1hbmd1bGFyL3RlbXBsYXRlL2xldCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBSeFB1c2gsIFJ4Rm9yLCBSeElmLCBSeExldFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgUnhQdXNoLCBSeEZvciwgUnhJZiwgUnhMZXRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBSeFN0YXRlTW9kdWxlIHtcblxufVxuIl19
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicngtc3RhdGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvcngtc3RhdGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbkQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQU1qRCxNQUFNLE9BQU8sYUFBYTt1R0FBYixhQUFhO3dHQUFiLGFBQWEsWUFIZCxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLGFBQzFCLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUs7d0dBRXpCLGFBQWE7OzJGQUFiLGFBQWE7a0JBSnpCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDO29CQUNyQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUM7aUJBQ3RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJ4Rm9yIH0gZnJvbSAnQHJ4LWFuZ3VsYXIvdGVtcGxhdGUvZm9yJztcbmltcG9ydCB7IFJ4SWYgfSBmcm9tICdAcngtYW5ndWxhci90ZW1wbGF0ZS9pZic7XG5pbXBvcnQgeyBSeFB1c2ggfSBmcm9tICdAcngtYW5ndWxhci90ZW1wbGF0ZS9wdXNoJztcbmltcG9ydCB7IFJ4TGV0IH0gZnJvbSAnQHJ4LWFuZ3VsYXIvdGVtcGxhdGUvbGV0JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1J4UHVzaCwgUnhGb3IsIFJ4SWYsIFJ4TGV0XSxcbiAgZXhwb3J0czogW1J4UHVzaCwgUnhGb3IsIFJ4SWYsIFJ4TGV0XSxcbn0pXG5leHBvcnQgY2xhc3MgUnhTdGF0ZU1vZHVsZSB7fVxuIl19
@@ -1,7 +1,7 @@
1
1
  export function mergeLoadResult(res1, res2) {
2
2
  return {
3
3
  data: (res1.data || []).concat(...res2.data),
4
- total: ((res1.total || res1.data?.length || 0) + (res2.total || res2.data?.length || 0))
4
+ total: (res1.total || res1.data?.length || 0) + (res2.total || res2.data?.length || 0),
5
5
  };
6
6
  }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXNlcnZpY2UuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9zZXJ2aWNlcy9lbnRpdHktc2VydmljZS5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEwSEEsTUFBTSxVQUFVLGVBQWUsQ0FBSSxJQUFtQixFQUFFLElBQW1CO0lBQ3pFLE9BQU87UUFDTCxJQUFJLEVBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDN0MsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQztLQUN6RixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZldGNoUG9saWN5LCBXYXRjaFF1ZXJ5RmV0Y2hQb2xpY3kgfSBmcm9tICdAYXBvbGxvL2NsaWVudC9jb3JlJztcbmltcG9ydCB7IFNvcnREaXJlY3Rpb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcbmltcG9ydCB7IEVtcHR5T2JqZWN0IH0gZnJvbSAnLi4vLi4vY29yZS9ncmFwaHFsL2dyYXBocWwudXRpbHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUGFnZSB7XG4gIG9mZnNldDogbnVtYmVyO1xuICBzaXplOiBudW1iZXI7XG4gIHNvcnRCeT86IHN0cmluZztcbiAgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb247XG59XG5cbmV4cG9ydCBkZWNsYXJlIHR5cGUgRmV0Y2hNb3JlRm48UiwgViA9IEVtcHR5T2JqZWN0PiA9ICh2YXJpYWJsZXM/OiBWKSA9PiBQcm9taXNlPFI+O1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTG9hZFJlc3VsdDxUPiB7XG4gIGRhdGE6IFRbXTtcbiAgdG90YWw/OiBudW1iZXI7XG4gIGVycm9ycz86IGFueVtdO1xuICBmZXRjaE1vcmU/OiBGZXRjaE1vcmVGbjxMb2FkUmVzdWx0PFQ+Pjtcbn1cblxuZXhwb3J0IGRlY2xhcmUgdHlwZSBTdWdnZXN0Rm48VCwgRj4gPSAodmFsdWU6IGFueSwgZmlsdGVyPzogRixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvcnRCeT86IHN0cmluZ3xrZXlvZiBULFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRzPzoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZXRjaFBvbGljeT86IEZldGNoUG9saWN5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSA9PiBQcm9taXNlPFRbXSB8IExvYWRSZXN1bHQ8VD4+O1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3VnZ2VzdFNlcnZpY2U8VCwgRj4ge1xuICBzdWdnZXN0OiBTdWdnZXN0Rm48VCwgRj47XG59XG5cbmV4cG9ydCBkZWNsYXJlIHR5cGUgRmlsdGVyRm48VD4gPSAoZGF0YTogVCkgPT4gYm9vbGVhbjtcbmV4cG9ydCBkZWNsYXJlIHR5cGUgRmlsdGVyRm5GYWN0b3J5PFQsIEY+ID0gKGZpbHRlcjogRikgPT4gRmlsdGVyRm48VD47XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBFbnRpdHlTZXJ2aWNlTG9hZE9wdGlvbnMge1xuICBmZXRjaFBvbGljeT86IEZldGNoUG9saWN5O1xuICB0cmFzaD86IGJvb2xlYW47XG4gIHRvRW50aXR5PzogYm9vbGVhbjtcbiAgcXVlcnk/OiBhbnk7XG4gIHZhcmlhYmxlcz86IGFueTtcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBFbnRpdHlTZXJ2aWNlV2F0Y2hPcHRpb25zIHtcbiAgZmV0Y2hQb2xpY3k/OiBXYXRjaFF1ZXJ5RmV0Y2hQb2xpY3k7XG4gIHRyYXNoPzogYm9vbGVhbjtcbiAgdG9FbnRpdHk/OiBib29sZWFuO1xuICBxdWVyeT86IGFueTtcbiAgdmFyaWFibGVzPzogYW55O1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRW50aXR5U2VydmljZUxpc3RlbkNoYW5nZXNPcHRpb25zIHtcbiAgaW50ZXJ2YWw/OiBudW1iZXI7XG4gIGZldGNoUG9saWN5PzogRmV0Y2hQb2xpY3k7XG4gIHRvRW50aXR5PzogYm9vbGVhbjtcbiAgcXVlcnk/OiBhbnk7XG4gIHZhcmlhYmxlcz86IGFueTtcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSUVudGl0eVNlcnZpY2U8XG4gIFQsXG4gIElEID0gYW55LFxuICBMTyA9IEVudGl0eVNlcnZpY2VMb2FkT3B0aW9ucz4ge1xuXG4gIGxvYWQoXG4gICAgaWQ6IElELFxuICAgIG9wdHM/OiBMT1xuICApOiBQcm9taXNlPFQ+O1xuXG4gIGNhblVzZXJXcml0ZShkYXRhOiBULCBvcHRzPzogYW55KTogYm9vbGVhbjtcblxuICBzYXZlKGRhdGE6IFQsIG9wdHM/OiBhbnkpOiBQcm9taXNlPFQ+O1xuXG4gIGRlbGV0ZShkYXRhOiBULCBvcHRzPzogYW55KTogUHJvbWlzZTxhbnk+O1xuXG4gIGxpc3RlbkNoYW5nZXMoaWQ6IElELCBvcHRzPzogYW55KTogT2JzZXJ2YWJsZTxUIHwgdW5kZWZpbmVkPjtcbn1cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEVudGl0aWVzU2VydmljZUxvYWRPcHRpb25zIGV4dGVuZHMgRW50aXR5U2VydmljZUxvYWRPcHRpb25zIHtcbiAgd2l0aFRvdGFsPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEVudGl0aWVzU2VydmljZVdhdGNoT3B0aW9ucyBleHRlbmRzIEVudGl0eVNlcnZpY2VXYXRjaE9wdGlvbnMge1xuICB3aXRoVG90YWw/OiBib29sZWFuO1xufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSUVudGl0aWVzU2VydmljZTxULCBGLCBPIGV4dGVuZHMgRW50aXRpZXNTZXJ2aWNlV2F0Y2hPcHRpb25zID0gRW50aXRpZXNTZXJ2aWNlV2F0Y2hPcHRpb25zPiB7XG5cbiAgd2F0Y2hBbGwoXG4gICAgb2Zmc2V0OiBudW1iZXIsXG4gICAgc2l6ZTogbnVtYmVyLFxuICAgIHNvcnRCeT86IHN0cmluZyxcbiAgICBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvbixcbiAgICBmaWx0ZXI/OiBQYXJ0aWFsPEY+LFxuICAgIG9wdGlvbnM/OiBPXG4gICk6IE9ic2VydmFibGU8TG9hZFJlc3VsdDxUPj47XG5cbiAgLy8gVE9ET1xuICAvKndhdGNoUGFnZShcbiAgICBwYWdlOiBQYWdlPFQ+LFxuICAgIGZpbHRlcj86IEYsXG4gICAgb3B0aW9ucz86IE9cbiAgKTogT2JzZXJ2YWJsZTxMb2FkUmVzdWx0PFQ+PjsqL1xuXG4gIHNhdmVBbGwoZGF0YTogVFtdLCBvcHRzPzogYW55KTogUHJvbWlzZTxUW10+O1xuXG4gIGRlbGV0ZUFsbChkYXRhOiBUW10sIG9wdHM/OiBhbnkpOiBQcm9taXNlPGFueT47XG5cbiAgYXNGaWx0ZXIoZmlsdGVyOiBQYXJ0aWFsPEY+KTogRjtcbn1cblxuZXhwb3J0IGRlY2xhcmUgdHlwZSBMb2FkUmVzdWx0QnlQYWdlRm48VD4gPSAob2Zmc2V0OiBudW1iZXIsIHNpemU6IG51bWJlcikgPT4gUHJvbWlzZTxMb2FkUmVzdWx0PFQ+PjtcblxuZXhwb3J0IGludGVyZmFjZSBJRW50aXR5RnVsbFNlcnZpY2U8VCwgSUQsIEYsIE8gZXh0ZW5kcyBFbnRpdGllc1NlcnZpY2VXYXRjaE9wdGlvbnMgJiBFbnRpdHlTZXJ2aWNlTG9hZE9wdGlvbnM+XG4gIGV4dGVuZHMgSUVudGl0eVNlcnZpY2U8VCwgSUQsIE8+LCBJRW50aXRpZXNTZXJ2aWNlPFQsIEYsIE8+ICB7XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlTG9hZFJlc3VsdDxUPihyZXMxOiBMb2FkUmVzdWx0PFQ+LCByZXMyOiBMb2FkUmVzdWx0PFQ+KTogTG9hZFJlc3VsdDxUPiB7XG4gIHJldHVybiB7XG4gICAgZGF0YSA6IChyZXMxLmRhdGEgfHwgW10pLmNvbmNhdCguLi5yZXMyLmRhdGEpLFxuICAgIHRvdGFsOiAoKHJlczEudG90YWwgfHwgcmVzMS5kYXRhPy5sZW5ndGggfHwgMCkgKyAocmVzMi50b3RhbCB8fCByZXMyLmRhdGE/Lmxlbmd0aCB8fCAwKSlcbiAgfTtcbn1cbiJdfQ==
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXNlcnZpY2UuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9zZXJ2aWNlcy9lbnRpdHktc2VydmljZS5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF5R0EsTUFBTSxVQUFVLGVBQWUsQ0FBSSxJQUFtQixFQUFFLElBQW1CO0lBQ3pFLE9BQU87UUFDTCxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDNUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDO0tBQ3ZGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmV0Y2hQb2xpY3ksIFdhdGNoUXVlcnlGZXRjaFBvbGljeSB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2NvcmUnO1xuaW1wb3J0IHsgU29ydERpcmVjdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHsgRW1wdHlPYmplY3QgfSBmcm9tICcuLi8uLi9jb3JlL2dyYXBocWwvZ3JhcGhxbC51dGlscyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQYWdlIHtcbiAgb2Zmc2V0OiBudW1iZXI7XG4gIHNpemU6IG51bWJlcjtcbiAgc29ydEJ5Pzogc3RyaW5nO1xuICBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvbjtcbn1cblxuZXhwb3J0IGRlY2xhcmUgdHlwZSBGZXRjaE1vcmVGbjxSLCBWID0gRW1wdHlPYmplY3Q+ID0gKHZhcmlhYmxlcz86IFYpID0+IFByb21pc2U8Uj47XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBMb2FkUmVzdWx0PFQ+IHtcbiAgZGF0YTogVFtdO1xuICB0b3RhbD86IG51bWJlcjtcbiAgZXJyb3JzPzogYW55W107XG4gIGZldGNoTW9yZT86IEZldGNoTW9yZUZuPExvYWRSZXN1bHQ8VD4+O1xufVxuXG5leHBvcnQgZGVjbGFyZSB0eXBlIFN1Z2dlc3RGbjxULCBGPiA9IChcbiAgdmFsdWU6IGFueSxcbiAgZmlsdGVyPzogRixcbiAgc29ydEJ5Pzogc3RyaW5nIHwga2V5b2YgVCxcbiAgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb24sXG4gIG9wdHM/OiB7XG4gICAgZmV0Y2hQb2xpY3k/OiBGZXRjaFBvbGljeTtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gIH1cbikgPT4gUHJvbWlzZTxUW10gfCBMb2FkUmVzdWx0PFQ+PjtcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN1Z2dlc3RTZXJ2aWNlPFQsIEY+IHtcbiAgc3VnZ2VzdDogU3VnZ2VzdEZuPFQsIEY+O1xufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRW50aXR5U2VydmljZUxvYWRPcHRpb25zIHtcbiAgZmV0Y2hQb2xpY3k/OiBGZXRjaFBvbGljeTtcbiAgdHJhc2g/OiBib29sZWFuO1xuICB0b0VudGl0eT86IGJvb2xlYW47XG4gIHF1ZXJ5PzogYW55O1xuICB2YXJpYWJsZXM/OiBhbnk7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEVudGl0eVNlcnZpY2VXYXRjaE9wdGlvbnMge1xuICBmZXRjaFBvbGljeT86IFdhdGNoUXVlcnlGZXRjaFBvbGljeTtcbiAgdHJhc2g/OiBib29sZWFuO1xuICB0b0VudGl0eT86IGJvb2xlYW47XG4gIHF1ZXJ5PzogYW55O1xuICB2YXJpYWJsZXM/OiBhbnk7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBFbnRpdHlTZXJ2aWNlTGlzdGVuQ2hhbmdlc09wdGlvbnMge1xuICBpbnRlcnZhbD86IG51bWJlcjtcbiAgZmV0Y2hQb2xpY3k/OiBGZXRjaFBvbGljeTtcbiAgdG9FbnRpdHk/OiBib29sZWFuO1xuICBxdWVyeT86IGFueTtcbiAgdmFyaWFibGVzPzogYW55O1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJRW50aXR5U2VydmljZTxULCBJRCA9IGFueSwgTE8gPSBFbnRpdHlTZXJ2aWNlTG9hZE9wdGlvbnM+IHtcbiAgbG9hZChpZDogSUQsIG9wdHM/OiBMTyk6IFByb21pc2U8VD47XG5cbiAgY2FuVXNlcldyaXRlKGRhdGE6IFQsIG9wdHM/OiBhbnkpOiBib29sZWFuO1xuXG4gIHNhdmUoZGF0YTogVCwgb3B0cz86IGFueSk6IFByb21pc2U8VD47XG5cbiAgZGVsZXRlKGRhdGE6IFQsIG9wdHM/OiBhbnkpOiBQcm9taXNlPGFueT47XG5cbiAgbGlzdGVuQ2hhbmdlcyhpZDogSUQsIG9wdHM/OiBhbnkpOiBPYnNlcnZhYmxlPFQgfCB1bmRlZmluZWQ+O1xufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRW50aXRpZXNTZXJ2aWNlTG9hZE9wdGlvbnMgZXh0ZW5kcyBFbnRpdHlTZXJ2aWNlTG9hZE9wdGlvbnMge1xuICB3aXRoVG90YWw/OiBib29sZWFuO1xufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRW50aXRpZXNTZXJ2aWNlV2F0Y2hPcHRpb25zIGV4dGVuZHMgRW50aXR5U2VydmljZVdhdGNoT3B0aW9ucyB7XG4gIHdpdGhUb3RhbD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJRW50aXRpZXNTZXJ2aWNlPFQsIEYsIE8gZXh0ZW5kcyBFbnRpdGllc1NlcnZpY2VXYXRjaE9wdGlvbnMgPSBFbnRpdGllc1NlcnZpY2VXYXRjaE9wdGlvbnM+IHtcbiAgd2F0Y2hBbGwob2Zmc2V0OiBudW1iZXIsIHNpemU6IG51bWJlciwgc29ydEJ5Pzogc3RyaW5nLCBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvbiwgZmlsdGVyPzogUGFydGlhbDxGPiwgb3B0aW9ucz86IE8pOiBPYnNlcnZhYmxlPExvYWRSZXN1bHQ8VD4+O1xuXG4gIC8vIFRPRE9cbiAgLyp3YXRjaFBhZ2UoXG4gICAgcGFnZTogUGFnZTxUPixcbiAgICBmaWx0ZXI/OiBGLFxuICAgIG9wdGlvbnM/OiBPXG4gICk6IE9ic2VydmFibGU8TG9hZFJlc3VsdDxUPj47Ki9cblxuICBzYXZlQWxsKGRhdGE6IFRbXSwgb3B0cz86IGFueSk6IFByb21pc2U8VFtdPjtcblxuICBkZWxldGVBbGwoZGF0YTogVFtdLCBvcHRzPzogYW55KTogUHJvbWlzZTxhbnk+O1xuXG4gIGFzRmlsdGVyKGZpbHRlcjogUGFydGlhbDxGPik6IEY7XG59XG5cbmV4cG9ydCBkZWNsYXJlIHR5cGUgTG9hZFJlc3VsdEJ5UGFnZUZuPFQ+ID0gKG9mZnNldDogbnVtYmVyLCBzaXplOiBudW1iZXIpID0+IFByb21pc2U8TG9hZFJlc3VsdDxUPj47XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUVudGl0eUZ1bGxTZXJ2aWNlPFQsIElELCBGLCBPIGV4dGVuZHMgRW50aXRpZXNTZXJ2aWNlV2F0Y2hPcHRpb25zICYgRW50aXR5U2VydmljZUxvYWRPcHRpb25zPlxuICBleHRlbmRzIElFbnRpdHlTZXJ2aWNlPFQsIElELCBPPixcbiAgICBJRW50aXRpZXNTZXJ2aWNlPFQsIEYsIE8+IHt9XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZUxvYWRSZXN1bHQ8VD4ocmVzMTogTG9hZFJlc3VsdDxUPiwgcmVzMjogTG9hZFJlc3VsdDxUPik6IExvYWRSZXN1bHQ8VD4ge1xuICByZXR1cm4ge1xuICAgIGRhdGE6IChyZXMxLmRhdGEgfHwgW10pLmNvbmNhdCguLi5yZXMyLmRhdGEpLFxuICAgIHRvdGFsOiAocmVzMS50b3RhbCB8fCByZXMxLmRhdGE/Lmxlbmd0aCB8fCAwKSArIChyZXMyLnRvdGFsIHx8IHJlczIuZGF0YT8ubGVuZ3RoIHx8IDApLFxuICB9O1xufVxuIl19
@@ -3,7 +3,7 @@ import { isNil, isNotNil, toNumber } from '../functions';
3
3
  // @dynamic
4
4
  export class JobUtils {
5
5
  static defers(runnableList, opts) {
6
- return runnableList.map(runnable => JobUtils.defer(runnable, opts));
6
+ return runnableList.map((runnable) => JobUtils.defer(runnable, opts));
7
7
  }
8
8
  static defer(runnable, opts) {
9
9
  return defer(() => JobUtils.run(runnable, opts));
@@ -16,7 +16,7 @@ export class JobUtils {
16
16
  progression.next(opts.maxProgression);
17
17
  progression.complete();
18
18
  })
19
- .catch(err => progression.error(err));
19
+ .catch((err) => progression.error(err));
20
20
  return progression;
21
21
  }
22
22
  static async fetchAllPages(loadPageFn, opts) {
@@ -39,7 +39,7 @@ export class JobUtils {
39
39
  // Concat to previous result
40
40
  data = data.concat(res.data);
41
41
  // Compute variables, for next loop
42
- currentPageDataCount = res.data && res.data.length || 0;
42
+ currentPageDataCount = (res.data && res.data.length) || 0;
43
43
  offset += currentPageDataCount;
44
44
  // Set total count (only once)
45
45
  if (isNil(total) && isNotNil(res.total)) {
@@ -60,7 +60,7 @@ export class JobUtils {
60
60
  }
61
61
  if (opts?.onPageLoaded)
62
62
  opts.onPageLoaded(res);
63
- } while (currentPageDataCount > 0 && ((isNil(total) && currentPageDataCount === fetchSize) || (isNotNil(total) && (offset < total))));
63
+ } while (currentPageDataCount > 0 && ((isNil(total) && currentPageDataCount === fetchSize) || (isNotNil(total) && offset < total)));
64
64
  // Complete progression to reach progressionStep value (because of round)
65
65
  if (isNotNil(progressionStep)) {
66
66
  // If total return by loadAll was bad !
@@ -70,7 +70,7 @@ export class JobUtils {
70
70
  pageCount = Math.round(data.length / fetchSize + 0.5);
71
71
  }
72
72
  // Compute final increment, using the real page count
73
- progressionStep = Math.max(0, maxProgression - (progressionStep * pageCount));
73
+ progressionStep = Math.max(0, maxProgression - progressionStep * pageCount);
74
74
  }
75
75
  // Or increment once (e.g. when total is not known, in received LoadResult)
76
76
  else if (progression) {
@@ -85,8 +85,8 @@ export class JobUtils {
85
85
  }
86
86
  return {
87
87
  data,
88
- total
88
+ total,
89
89
  };
90
90
  }
91
91
  }
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9iLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvc2VydmljZXMvam9iLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQzFELE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQVV6RCxXQUFXO0FBQ1gsTUFBTSxPQUFPLFFBQVE7SUFFbkIsTUFBTSxDQUFDLE1BQU0sQ0FBMkMsWUFBNEMsRUFBRSxJQUFRO1FBQzVHLE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQTJDLFFBQXNDLEVBQUUsSUFBUTtRQUNyRyxPQUFPLEtBQUssQ0FBcUIsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQUcsQ0FBMkMsUUFBc0MsRUFBRSxJQUFPO1FBRWxHLE1BQU0sV0FBVyxHQUFHLElBQUksZUFBZSxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ25ELFFBQVEsQ0FBQyxFQUFDLEdBQUcsSUFBSSxFQUFFLFdBQVcsRUFBQyxDQUFDO2FBQzdCLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDVCxJQUFJLElBQUksRUFBRSxjQUFjO2dCQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ2hFLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN6QixDQUFDLENBQUM7YUFDRCxLQUFLLENBQUMsR0FBRyxDQUFDLEVB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LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBpc05pbCwgaXNOb3ROaWwsIHRvTnVtYmVyIH0gZnJvbSAnLi4vZnVuY3Rpb25zJztcbmltcG9ydCB7IExvYWRSZXN1bHQsIExvYWRSZXN1bHRCeVBhZ2VGbiB9IGZyb20gJy4vZW50aXR5LXNlcnZpY2UuY2xhc3MnO1xuXG5leHBvcnQgdHlwZSBDYWxsYWJsZVdpdGhQcm9ncmVzc2lvbkZuPE8gZXh0ZW5kcyBDYWxsYWJsZVdpdGhQcm9ncmVzc2lvbk9wdGlvbnM+ID0gKG9wdHM/OiBPKSA9PiBQcm9taXNlPGFueT47XG5leHBvcnQgaW50ZXJmYWNlIENhbGxhYmxlV2l0aFByb2dyZXNzaW9uT3B0aW9ucyB7XG4gIG1heFByb2dyZXNzaW9uPzogbnVtYmVyO1xuICBwcm9ncmVzc2lvbj86IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+O1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbi8vIEBkeW5hbWljXG5leHBvcnQgY2xhc3MgSm9iVXRpbHMge1xuXG4gIHN0YXRpYyBkZWZlcnM8TyBleHRlbmRzIENhbGxhYmxlV2l0aFByb2dyZXNzaW9uT3B0aW9ucz4ocnVubmFibGVMaXN0OiBDYWxsYWJsZVdpdGhQcm9ncmVzc2lvbkZuPE8+W10sIG9wdHM/OiBPKTogT2JzZXJ2YWJsZTxudW1iZXI+W10ge1xuICAgIHJldHVybiBydW5uYWJsZUxpc3QubWFwKHJ1bm5hYmxlID0+IEpvYlV0aWxzLmRlZmVyKHJ1bm5hYmxlLCBvcHRzKSk7XG4gIH1cblxuICBzdGF0aWMgZGVmZXI8TyBleHRlbmRzIENhbGxhYmxlV2l0aFByb2dyZXNzaW9uT3B0aW9ucz4ocnVubmFibGU6IENhbGxhYmxlV2l0aFByb2dyZXNzaW9uRm48Tz4sIG9wdHM/OiBPKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gZGVmZXI8T2JzZXJ2YWJsZTxudW1iZXI+PigoKSA9PiBKb2JVdGlscy5ydW4ocnVubmFibGUsIG9wdHMpKTtcbiAgfVxuXG4gIHN0YXRpYyBydW48TyBleHRlbmRzIENhbGxhYmxlV2l0aFByb2dyZXNzaW9uT3B0aW9ucz4ocnVubmFibGU6IENhbGxhYmxlV2l0aFByb2dyZXNzaW9uRm48Tz4sIG9wdHM6IE8pOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuXG4gICAgY29uc3QgcHJvZ3Jlc3Npb24gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XG4gICAgcnVubmFibGUoey4uLm9wdHMsIHByb2dyZXNzaW9ufSlcbiAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgaWYgKG9wdHM/Lm1heFByb2dyZXNzaW9uKSBwcm9ncmVzc2lvbi5uZXh0KG9wdHMubWF4UHJvZ3Jlc3Npb24pO1xuICAgICAgICBwcm9ncmVzc2lvbi5jb21wbGV0ZSgpO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaChlcnIgPT4gcHJvZ3Jlc3Npb24uZXJyb3IoZXJyKSk7XG4gICAgcmV0dXJuIHByb2dyZXNzaW9uO1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIGZldGNoQWxsUGFnZXM8VD4oXG4gICAgbG9hZFBhZ2VGbjogTG9hZFJlc3VsdEJ5UGFnZUZuPFQ+LFxuICAgIG9wdHM/OiB7XG4gICAgICBwcm9ncmVzc2lvbj86IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+O1xuICAgICAgbWF4UHJvZ3Jlc3Npb24/OiBudW1iZXI7XG4gICAgICBvblBhZ2VMb2FkZWQ/OiAocGFnZVJlc3VsdDogTG9hZFJlc3VsdDxUPikgPT4gYW55O1xuICAgICAgbG9nUHJlZml4Pzogc3RyaW5nO1xuICAgICAgZmV0Y2hTaXplPzogbnVtYmVyO1xuICAgIH0pOiBQcm9taXNlPExvYWRSZXN1bHQ8VD4+IHtcblxuICAgIGNvbnN0IG1heFByb2dyZXNzaW9uID0gdG9OdW1iZXIob3B0cz8ubWF4UHJvZ3Jlc3Npb24sIDEwMCk7XG4gICAgY29uc3QgcHJvZ3Jlc3Npb24gPSBvcHRzPy5wcm9ncmVzc2lvbjtcbiAgICBsZXQgdG90YWw7IGxldCBwYWdlQ291bnQ7IGxldCBwcm9ncmVzc2lvblN0ZXA7IGxldCBjdXJyZW50UGFnZURhdGFDb3VudDogbnVtYmVyO1xuICAgIGNvbnN0IGZldGNoU2l6ZSA9IHRvTnVtYmVyKG9wdHM/LmZldGNoU2l6ZSwgMTAwMCk7XG4gICAgaWYgKGZldGNoU2l6ZSA8PSAwKSB0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byBmZXRjaCBwYWdlczogaW52YWxpZCBmZXRjaFNpemU6ICcgKyBmZXRjaFNpemUpO1xuICAgIGxldCBvZmZzZXQgPSAwO1xuICAgIGxldCBkYXRhOiBUW10gPSBbXTtcbiAgICBkbyB7XG5cbiAgICAgIGlmIChvcHRzICYmIG9wdHMubG9nUHJlZml4KSBjb25zb2xlLmRlYnVnKGAke29wdHMubG9nUHJlZml4fSBGZXRjaGluZyBwYWdlICMke29mZnNldCAvIGZldGNoU2l6ZX0uLi5gKTtcblxuICAgICAgLy8gRmV0Y2ggYSBwYWdlXG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBsb2FkUGFnZUZuKG9mZnNldCwgZmV0Y2hTaXplKTtcblxuICAgICAgLy8gQ29uY2F0IHRvIHByZXZpb3VzIHJlc3VsdFxuICAgICAgZGF0YSA9IGRhdGEuY29uY2F0KHJlcy5kYXRhKTtcblxuICAgICAgLy8gQ29tcHV0ZSB2YXJpYWJsZXMsIGZvciBuZXh0IGxvb3BcbiAgICAgIGN1cnJlbnRQYWdlRGF0YUNvdW50ID0gcmVzLmRhdGEgJiYgcmVzLmRhdGEubGVuZ3RoIHx8IDA7XG4gICAgICBvZmZzZXQgKz0gY3VycmVudFBhZ2VEYXRhQ291bnQ7XG5cbiAgICAgIC8vIFNldCB0b3RhbCBjb3VudCAob25seSBvbmNlKVxuICAgICAgaWYgKGlzTmlsKHRvdGFsKSAmJiBpc05vdE5pbChyZXMudG90YWwpKSB7XG4gICAgICAgIHRvdGFsID0gcmVzLnRvdGFsO1xuICAgICAgICAvLyBDb21wdXRlIHRoZSBudW1iZXIgb2YgcGFnZVxuICAgICAgICBwYWdlQ291bnQgPSBNYXRoLnJvdW5kKHJlcy50b3RhbCAvIGZldGNoU2l6ZSArIDAuNSk7IC8vIFJvdW5kIHRvIEhBTEZfVVAgaW50ZWdlclxuICAgICAgICAvLyBDb21wdXRlIHN0ZXAsIGJ5IGRpdmlkaW5nIG1heFByb2dyZXNzaW9uIGJ5IG51bWJlciBvZiBwYWdlXG4gICAgICAgIGlmIChwcm9ncmVzc2lvbikge1xuICAgICAgICAgIHByb2dyZXNzaW9uU3RlcCA9IG1heFByb2dyZXNzaW9uIC8gcGFnZUNvdW50O1xuICAgICAgICAgIC8vIERFQlVHXG4gICAgICAgICAgaWYgKG9wdHMgJiYgb3B0cy5sb2dQcmVmaXgpIGNvbnNvbGUuZGVidWcoYCR7b3B0cy5sb2dQcmVmaXh9IHtwYWdlQ291bnQ6ICR7cGFnZUNvdW50fSwgcHJvZ3Jlc3M6ICR7cHJvZ3Jlc3Npb24udmFsdWU/LnRvRml4ZWQoMil9LCBwYWdlUHJvZ3Jlc3NTdGVwOiAke3Byb2dyZXNzaW9uU3RlcD8udG9GaXhlZCgxKX19YCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gSW5jcmVtZW50IHByb2dyZXNzaW9uIG9uIGVhY2ggaXRlcmF0aW9uIChpZiBwb3NzaWJsZSlcbiAgICAgIGlmIChpc05vdE5pbChwcm9ncmVzc2lvblN0ZXApKSB7XG4gICAgICAgIHByb2dyZXNzaW9uLm5leHQocHJvZ3Jlc3Npb24udmFsdWUgKyBwcm9ncmVzc2lvblN0ZXApO1xuICAgICAgfVxuXG4gICAgICBpZiAob3B0cz8ub25QYWdlTG9hZGVkKSBvcHRzLm9uUGFnZUxvYWRlZChyZXMpO1xuXG4gICAgfSB3aGlsZSAoY3VycmVudFBhZ2VEYXRhQ291bnQgPiAwICYmICgoaXNOaWwodG90YWwpICYmIGN1cnJlbnRQYWdlRGF0YUNvdW50ID09PSBmZXRjaFNpemUpIHx8IChpc05vdE5pbCh0b3RhbCkgJiYgKG9mZnNldCA8IHRvdGFsKSkpKTtcblxuICAgIC8vIENvbXBsZXRlIHByb2dyZXNzaW9uIHRvIHJlYWNoIHByb2dyZXNzaW9uU3RlcCB2YWx1ZSAoYmVjYXVzZSBvZiByb3VuZClcbiAgICBpZiAoaXNOb3ROaWwocHJvZ3Jlc3Npb25TdGVwKSkge1xuXG4gICAgICAvLyBJZiB0b3RhbCByZXR1cm4gYnkgbG9hZEFsbCB3YXMgYmFkICFcbiAgICAgIGlmIChpc05vdE5pbCh0b3RhbCkgJiYgZGF0YS5sZW5ndGggPCB0b3RhbCkge1xuICAgICAgICBjb25zb2xlLndhcm4oYEEgZnVuY3Rpb24gbG9hZEFsbCgpIHJldHVybmVkIGEgYmFkIHRvdGFsIChsZXNzIHRoYW4gYWxsIHBhZ2UncyBkYXRhKSEgRXhwZWN0ZWQgJHt0b3RhbH0gYnV0IGZldGNoICR7ZGF0YS5sZW5ndGh9YCk7XG4gICAgICAgIHRvdGFsID0gZGF0YS5sZW5ndGg7XG4gICAgICAgIHBhZ2VDb3VudCA9IE1hdGgucm91bmQoZGF0YS5sZW5ndGggLyBmZXRjaFNpemUgKyAwLjUpO1xuICAgICAgfVxuXG4gICAgICAvLyBDb21wdXRlIGZpbmFsIGluY3JlbWVudCwgdXNpbmcgdGhlIHJlYWwgcGFnZSBjb3VudFxuICAgICAgcHJvZ3Jlc3Npb25TdGVwID0gTWF0aC5tYXgoMCwgbWF4UHJvZ3Jlc3Npb24gLSAocHJvZ3Jlc3Npb25TdGVwICogcGFnZUNvdW50KSk7XG5cbiAgICB9XG5cbiAgICAvLyBPciBpbmNyZW1lbnQgb25jZSAoZS5nLiB3aGVuIHRvdGFsIGlzIG5vdCBrbm93biwgaW4gcmVjZWl2ZWQgTG9hZFJlc3VsdClcbiAgICBlbHNlIGlmIChwcm9ncmVzc2lvbikge1xuICAgICAgcHJvZ3Jlc3Npb25TdGVwID0gbWF4UHJvZ3Jlc3Npb247XG4gICAgfVxuXG4gICAgLy8gREVCVUdcbiAgICBpZiAob3B0cyAmJiBvcHRzLmxvZ1ByZWZpeCkgY29uc29sZS5kZWJ1ZyhgJHtvcHRzLmxvZ1ByZWZpeH0gQWxsIHBhZ2VzIGZldGNoZWQgLSB7cHJvZ3Jlc3M6ICR7cHJvZ3Jlc3Npb24udmFsdWU/LnRvRml4ZWQoMil9LCBsYXN0UHJvZ3Jlc3NTdGVwOiAke3Byb2dyZXNzaW9uU3RlcD8udG9GaXhlZCgxKX1gKTtcblxuICAgIC8vIEZpbmFsIGluY3JlbWVudFxuICAgIGlmIChwcm9ncmVzc2lvbiAmJiBwcm9ncmVzc2lvblN0ZXAgPiAwKSB7XG4gICAgICBwcm9ncmVzc2lvbi5uZXh0KHByb2dyZXNzaW9uLnZhbHVlICsgcHJvZ3Jlc3Npb25TdGVwKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgZGF0YSxcbiAgICAgIHRvdGFsXG4gICAgfTtcbiAgfVxufVxuIl19
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9iLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvc2VydmljZXMvam9iLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQzFELE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQVV6RCxXQUFXO0FBQ1gsTUFBTSxPQUFPLFFBQVE7SUFDbkIsTUFBTSxDQUFDLE1BQU0sQ0FBMkMsWUFBNEMsRUFBRSxJQUFRO1FBQzVHLE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBMkMsUUFBc0MsRUFBRSxJQUFRO1FBQ3JHLE9BQU8sS0FBSyxDQUFxQixHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxNQUFNLENBQUMsR0FBRyxDQUEyQyxRQUFzQyxFQUFFLElBQU87UUFDbEcsTUFBTSxXQUFXLEdBQUcsSUFBSSxlQUFlLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFDbkQsUUFBUSxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUM7YUFDL0IsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNULElBQUksSUFBSSxFQUFFLGNBQWM7Z0JBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDaEUsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3pCLENBQUMsQ0FBQzthQUNELEtBQUssQ0FBQyxDQUFDLEdB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Q0osS0FBSztTQUNOLENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGRlZmVyLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBpc05pbCwgaXNOb3ROaWwsIHRvTnVtYmVyIH0gZnJvbSAnLi4vZnVuY3Rpb25zJztcbmltcG9ydCB7IExvYWRSZXN1bHQsIExvYWRSZXN1bHRCeVBhZ2VGbiB9IGZyb20gJy4vZW50aXR5LXNlcnZpY2UuY2xhc3MnO1xuXG5leHBvcnQgdHlwZSBDYWxsYWJsZVdpdGhQcm9ncmVzc2lvbkZuPE8gZXh0ZW5kcyBDYWxsYWJsZVdpdGhQcm9ncmVzc2lvbk9wdGlvbnM+ID0gKG9wdHM/OiBPKSA9PiBQcm9taXNlPGFueT47XG5leHBvcnQgaW50ZXJmYWNlIENhbGxhYmxlV2l0aFByb2dyZXNzaW9uT3B0aW9ucyB7XG4gIG1heFByb2dyZXNzaW9uPzogbnVtYmVyO1xuICBwcm9ncmVzc2lvbj86IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+O1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbi8vIEBkeW5hbWljXG5leHBvcnQgY2xhc3MgSm9iVXRpbHMge1xuICBzdGF0aWMgZGVmZXJzPE8gZXh0ZW5kcyBDYWxsYWJsZVdpdGhQcm9ncmVzc2lvbk9wdGlvbnM+KHJ1bm5hYmxlTGlzdDogQ2FsbGFibGVXaXRoUHJvZ3Jlc3Npb25GbjxPPltdLCBvcHRzPzogTyk6IE9ic2VydmFibGU8bnVtYmVyPltdIHtcbiAgICByZXR1cm4gcnVubmFibGVMaXN0Lm1hcCgocnVubmFibGUpID0+IEpvYlV0aWxzLmRlZmVyKHJ1bm5hYmxlLCBvcHRzKSk7XG4gIH1cblxuICBzdGF0aWMgZGVmZXI8TyBleHRlbmRzIENhbGxhYmxlV2l0aFByb2dyZXNzaW9uT3B0aW9ucz4ocnVubmFibGU6IENhbGxhYmxlV2l0aFByb2dyZXNzaW9uRm48Tz4sIG9wdHM/OiBPKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gZGVmZXI8T2JzZXJ2YWJsZTxudW1iZXI+PigoKSA9PiBKb2JVdGlscy5ydW4ocnVubmFibGUsIG9wdHMpKTtcbiAgfVxuXG4gIHN0YXRpYyBydW48TyBleHRlbmRzIENhbGxhYmxlV2l0aFByb2dyZXNzaW9uT3B0aW9ucz4ocnVubmFibGU6IENhbGxhYmxlV2l0aFByb2dyZXNzaW9uRm48Tz4sIG9wdHM6IE8pOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIGNvbnN0IHByb2dyZXNzaW9uID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xuICAgIHJ1bm5hYmxlKHsgLi4ub3B0cywgcHJvZ3Jlc3Npb24gfSlcbiAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgaWYgKG9wdHM/Lm1heFByb2dyZXNzaW9uKSBwcm9ncmVzc2lvbi5uZXh0KG9wdHMubWF4UHJvZ3Jlc3Npb24pO1xuICAgICAgICBwcm9ncmVzc2lvbi5jb21wbGV0ZSgpO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyKSA9PiBwcm9ncmVzc2lvbi5lcnJvcihlcnIpKTtcbiAgICByZXR1cm4gcHJvZ3Jlc3Npb247XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgZmV0Y2hBbGxQYWdlczxUPihcbiAgICBsb2FkUGFnZUZuOiBMb2FkUmVzdWx0QnlQYWdlRm48VD4sXG4gICAgb3B0cz86IHtcbiAgICAgIHByb2dyZXNzaW9uPzogQmVoYXZpb3JTdWJqZWN0PG51bWJlcj47XG4gICAgICBtYXhQcm9ncmVzc2lvbj86IG51bWJlcjtcbiAgICAgIG9uUGFnZUxvYWRlZD86IChwYWdlUmVzdWx0OiBMb2FkUmVzdWx0PFQ+KSA9PiBhbnk7XG4gICAgICBsb2dQcmVmaXg/OiBzdHJpbmc7XG4gICAgICBmZXRjaFNpemU/OiBudW1iZXI7XG4gICAgfVxuICApOiBQcm9taXNlPExvYWRSZXN1bHQ8VD4+IHtcbiAgICBjb25zdCBtYXhQcm9ncmVzc2lvbiA9IHRvTnVtYmVyKG9wdHM/Lm1heFByb2dyZXNzaW9uLCAxMDApO1xuICAgIGNvbnN0IHByb2dyZXNzaW9uID0gb3B0cz8ucHJvZ3Jlc3Npb247XG4gICAgbGV0IHRvdGFsO1xuICAgIGxldCBwYWdlQ291bnQ7XG4gICAgbGV0IHByb2dyZXNzaW9uU3RlcDtcbiAgICBsZXQgY3VycmVudFBhZ2VEYXRhQ291bnQ6IG51bWJlcjtcbiAgICBjb25zdCBmZXRjaFNpemUgPSB0b051bWJlcihvcHRzPy5mZXRjaFNpemUsIDEwMDApO1xuICAgIGlmIChmZXRjaFNpemUgPD0gMCkgdGhyb3cgbmV3IEVycm9yKCdVbmFibGUgdG8gZmV0Y2ggcGFnZXM6IGludmFsaWQgZmV0Y2hTaXplOiAnICsgZmV0Y2hTaXplKTtcbiAgICBsZXQgb2Zmc2V0ID0gMDtcbiAgICBsZXQgZGF0YTogVFtdID0gW107XG4gICAgZG8ge1xuICAgICAgaWYgKG9wdHMgJiYgb3B0cy5sb2dQcmVmaXgpIGNvbnNvbGUuZGVidWcoYCR7b3B0cy5sb2dQcmVmaXh9IEZldGNoaW5nIHBhZ2UgIyR7b2Zmc2V0IC8gZmV0Y2hTaXplfS4uLmApO1xuXG4gICAgICAvLyBGZXRjaCBhIHBhZ2VcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGxvYWRQYWdlRm4ob2Zmc2V0LCBmZXRjaFNpemUpO1xuXG4gICAgICAvLyBDb25jYXQgdG8gcHJldmlvdXMgcmVzdWx0XG4gICAgICBkYXRhID0gZGF0YS5jb25jYXQocmVzLmRhdGEpO1xuXG4gICAgICAvLyBDb21wdXRlIHZhcmlhYmxlcywgZm9yIG5leHQgbG9vcFxuICAgICAgY3VycmVudFBhZ2VEYXRhQ291bnQgPSAocmVzLmRhdGEgJiYgcmVzLmRhdGEubGVuZ3RoKSB8fCAwO1xuICAgICAgb2Zmc2V0ICs9IGN1cnJlbnRQYWdlRGF0YUNvdW50O1xuXG4gICAgICAvLyBTZXQgdG90YWwgY291bnQgKG9ubHkgb25jZSlcbiAgICAgIGlmIChpc05pbCh0b3RhbCkgJiYgaXNOb3ROaWwocmVzLnRvdGFsKSkge1xuICAgICAgICB0b3RhbCA9IHJlcy50b3RhbDtcbiAgICAgICAgLy8gQ29tcHV0ZSB0aGUgbnVtYmVyIG9mIHBhZ2VcbiAgICAgICAgcGFnZUNvdW50ID0gTWF0aC5yb3VuZChyZXMudG90YWwgLyBmZXRjaFNpemUgKyAwLjUpOyAvLyBSb3VuZCB0byBIQUxGX1VQIGludGVnZXJcbiAgICAgICAgLy8gQ29tcHV0ZSBzdGVwLCBieSBkaXZpZGluZyBtYXhQcm9ncmVzc2lvbiBieSBudW1iZXIgb2YgcGFnZVxuICAgICAgICBpZiAocHJvZ3Jlc3Npb24pIHtcbiAgICAgICAgICBwcm9ncmVzc2lvblN0ZXAgPSBtYXhQcm9ncmVzc2lvbiAvIHBhZ2VDb3VudDtcbiAgICAgICAgICAvLyBERUJVR1xuICAgICAgICAgIGlmIChvcHRzICYmIG9wdHMubG9nUHJlZml4KVxuICAgICAgICAgICAgY29uc29sZS5kZWJ1ZyhcbiAgICAgICAgICAgICAgYCR7b3B0cy5sb2dQcmVmaXh9IHtwYWdlQ291bnQ6ICR7cGFnZUNvdW50fSwgcHJvZ3Jlc3M6ICR7cHJvZ3Jlc3Npb24udmFsdWU/LnRvRml4ZWQoMil9LCBwYWdlUHJvZ3Jlc3NTdGVwOiAke3Byb2dyZXNzaW9uU3RlcD8udG9GaXhlZCgxKX19YFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBJbmNyZW1lbnQgcHJvZ3Jlc3Npb24gb24gZWFjaCBpdGVyYXRpb24gKGlmIHBvc3NpYmxlKVxuICAgICAgaWYgKGlzTm90TmlsKHByb2dyZXNzaW9uU3RlcCkpIHtcbiAgICAgICAgcHJvZ3Jlc3Npb24ubmV4dChwcm9ncmVzc2lvbi52YWx1ZSArIHByb2dyZXNzaW9uU3RlcCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChvcHRzPy5vblBhZ2VMb2FkZWQpIG9wdHMub25QYWdlTG9hZGVkKHJlcyk7XG4gICAgfSB3aGlsZSAoY3VycmVudFBhZ2VEYXRhQ291bnQgPiAwICYmICgoaXNOaWwodG90YWwpICYmIGN1cnJlbnRQYWdlRGF0YUNvdW50ID09PSBmZXRjaFNpemUpIHx8IChpc05vdE5pbCh0b3RhbCkgJiYgb2Zmc2V0IDwgdG90YWwpKSk7XG5cbiAgICAvLyBDb21wbGV0ZSBwcm9ncmVzc2lvbiB0byByZWFjaCBwcm9ncmVzc2lvblN0ZXAgdmFsdWUgKGJlY2F1c2Ugb2Ygcm91bmQpXG4gICAgaWYgKGlzTm90TmlsKHByb2dyZXNzaW9uU3RlcCkpIHtcbiAgICAgIC8vIElmIHRvdGFsIHJldHVybiBieSBsb2FkQWxsIHdhcyBiYWQgIVxuICAgICAgaWYgKGlzTm90TmlsKHRvdGFsKSAmJiBkYXRhLmxlbmd0aCA8IHRvdGFsKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihgQSBmdW5jdGlvbiBsb2FkQWxsKCkgcmV0dXJuZWQgYSBiYWQgdG90YWwgKGxlc3MgdGhhbiBhbGwgcGFnZSdzIGRhdGEpISBFeHBlY3RlZCAke3RvdGFsfSBidXQgZmV0Y2ggJHtkYXRhLmxlbmd0aH1gKTtcbiAgICAgICAgdG90YWwgPSBkYXRhLmxlbmd0aDtcbiAgICAgICAgcGFnZUNvdW50ID0gTWF0aC5yb3VuZChkYXRhLmxlbmd0aCAvIGZldGNoU2l6ZSArIDAuNSk7XG4gICAgICB9XG5cbiAgICAgIC8vIENvbXB1dGUgZmluYWwgaW5jcmVtZW50LCB1c2luZyB0aGUgcmVhbCBwYWdlIGNvdW50XG4gICAgICBwcm9ncmVzc2lvblN0ZXAgPSBNYXRoLm1heCgwLCBtYXhQcm9ncmVzc2lvbiAtIHByb2dyZXNzaW9uU3RlcCAqIHBhZ2VDb3VudCk7XG4gICAgfVxuXG4gICAgLy8gT3IgaW5jcmVtZW50IG9uY2UgKGUuZy4gd2hlbiB0b3RhbCBpcyBub3Qga25vd24sIGluIHJlY2VpdmVkIExvYWRSZXN1bHQpXG4gICAgZWxzZSBpZiAocHJvZ3Jlc3Npb24pIHtcbiAgICAgIHByb2dyZXNzaW9uU3RlcCA9IG1heFByb2dyZXNzaW9uO1xuICAgIH1cblxuICAgIC8vIERFQlVHXG4gICAgaWYgKG9wdHMgJiYgb3B0cy5sb2dQcmVmaXgpXG4gICAgICBjb25zb2xlLmRlYnVnKFxuICAgICAgICBgJHtvcHRzLmxvZ1ByZWZpeH0gQWxsIHBhZ2VzIGZldGNoZWQgLSB7cHJvZ3Jlc3M6ICR7cHJvZ3Jlc3Npb24udmFsdWU/LnRvRml4ZWQoMil9LCBsYXN0UHJvZ3Jlc3NTdGVwOiAke3Byb2dyZXNzaW9uU3RlcD8udG9GaXhlZCgxKX1gXG4gICAgICApO1xuXG4gICAgLy8gRmluYWwgaW5jcmVtZW50XG4gICAgaWYgKHByb2dyZXNzaW9uICYmIHByb2dyZXNzaW9uU3RlcCA+IDApIHtcbiAgICAgIHByb2dyZXNzaW9uLm5leHQocHJvZ3Jlc3Npb24udmFsdWUgKyBwcm9ncmVzc2lvblN0ZXApO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBkYXRhLFxuICAgICAgdG90YWwsXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -16,12 +16,12 @@ export class InMemoryEntitiesService extends StartableObservableService {
16
16
  _hiddenData = null;
17
17
  dirtySubject = new BehaviorSubject(false);
18
18
  savingSubject = new BehaviorSubject(false);
19
+ sortByReplacement;
19
20
  _sortFn;
20
21
  _onLoad;
21
22
  _onSaveFn;
22
23
  _equalsFn;
23
24
  _filterFnFactory;
24
- _sortByReplacement;
25
25
  set value(data) {
26
26
  this.setValue(data);
27
27
  }
@@ -40,22 +40,24 @@ export class InMemoryEntitiesService extends StartableObservableService {
40
40
  this.filterType = filterType;
41
41
  options = {
42
42
  onSort: this.sort,
43
- ...options
43
+ ...options,
44
44
  };
45
45
  this._sortFn = options.onSort;
46
46
  this._onLoad = options.onLoad;
47
47
  this._onSaveFn = options.onSave;
48
48
  this._equalsFn = options.equals;
49
- this._filterFnFactory = options.filterFnFactory || ((f) => {
50
- const filter = this.asFilter(f);
51
- if (filter instanceof EntityFilter) {
52
- return filter.asFilterFn();
53
- }
54
- return undefined;
55
- });
49
+ this._filterFnFactory =
50
+ options.filterFnFactory ||
51
+ ((f) => {
52
+ const filter = this.asFilter(f);
53
+ if (filter instanceof EntityFilter) {
54
+ return filter.asFilterFn();
55
+ }
56
+ return undefined;
57
+ });
56
58
  this._startByReadyFunction = false; // Need setValue() to be called, to start the service
57
- this._sortByReplacement = {
58
- ...options.sortByReplacement
59
+ this.sortByReplacement = {
60
+ ...options.sortByReplacement,
59
61
  };
60
62
  }
61
63
  async ngOnStart(data) {
@@ -145,16 +147,18 @@ export class InMemoryEntitiesService extends StartableObservableService {
145
147
  data = [];
146
148
  }
147
149
  else {
148
- excludedDataByPagination = (size > 0 && ((offset + size) < data.length))
149
- // Slice using limit to size
150
- ? data.slice(0, offset - 1).concat(data.slice(offset + size))
151
- // Slice without limit
152
- : data.slice(0, offset - 1);
153
- data = (size > 0 && ((offset + size) < data.length))
154
- // Slice using limit to size
155
- ? data.slice(offset, offset + size)
156
- // Slice without limit
157
- : data.slice(offset);
150
+ excludedDataByPagination =
151
+ size > 0 && offset + size < data.length
152
+ ? // Slice using limit to size
153
+ data.slice(0, offset).concat(data.slice(offset + size))
154
+ : // Slice without limit
155
+ data.slice(0, offset);
156
+ data =
157
+ size > 0 && offset + size < data.length
158
+ ? // Slice using limit to size
159
+ data.slice(offset, offset + size)
160
+ : // Slice without limit
161
+ data.slice(offset);
158
162
  }
159
163
  }
160
164
  // Apply a limit
@@ -174,11 +178,10 @@ export class InMemoryEntitiesService extends StartableObservableService {
174
178
  const res = { data, total };
175
179
  const nextOffset = size > 0 ? (offset || 0) + size : total;
176
180
  if (nextOffset < total) {
177
- res.fetchMore = () => this.loadAll(nextOffset, size, sortBy, sortDirection, filter, { ...opts, updateHiddenData: false })
178
- .then(res => {
181
+ res.fetchMore = () => this.loadAll(nextOffset, size, sortBy, sortDirection, filter, { ...opts, updateHiddenData: false }).then((res) => {
179
182
  // Update hidden data (remove new fetched item)
180
183
  if (res.data?.length) {
181
- this._hiddenData = this._hiddenData?.filter(item => !res.data.includes(item));
184
+ this._hiddenData = this._hiddenData?.filter((item) => !res.data.includes(item));
182
185
  }
183
186
  return res;
184
187
  });
@@ -195,10 +198,9 @@ export class InMemoryEntitiesService extends StartableObservableService {
195
198
  watchAll(offset, size, sortBy, sortDirection, filterData, options) {
196
199
  offset = offset >= 0 ? offset : 0;
197
200
  size = size >= 0 ? size : -1;
198
- return this.dataSubject
199
- .pipe(
201
+ return this.dataSubject.pipe(
200
202
  // Warn if waiting value to be set
201
- tap((data) => this.debug && !data && console.debug('[memory-data-service] Waiting value to be set...')), filter(isNotNil), mergeMap(_ => this.loadAll(offset, size, sortBy, sortDirection, filterData, options)), filter(isNotNil), // Skip no result (e.g. when stopped)
203
+ tap((data) => this.debug && !data && console.debug('[memory-data-service] Waiting value to be set...')), filter(isNotNil), mergeMap((_) => this.loadAll(offset, size, sortBy, sortDirection, filterData, options)), filter(isNotNil), // Skip no result (e.g. when stopped)
202
204
  takeUntil(this.stopSubject));
203
205
  }
204
206
  async saveAll(data, options) {
@@ -211,7 +213,7 @@ export class InMemoryEntitiesService extends StartableObservableService {
211
213
  data = data.concat(...this._hiddenData);
212
214
  if (this._onSaveFn) {
213
215
  const res = this._onSaveFn(data);
214
- data = ((res instanceof Promise)) ? await res : res;
216
+ data = res instanceof Promise ? await res : res;
215
217
  }
216
218
  this.dataSubject.next(data);
217
219
  this.markAsDirty();
@@ -228,8 +230,8 @@ export class InMemoryEntitiesService extends StartableObservableService {
228
230
  this.markAsSaving();
229
231
  try {
230
232
  // Remove deleted item, from data
231
- const updatedData = data.filter(entity => {
232
- const removed = dataToRemove.findIndex(entityToRemove => this.equals(entityToRemove, entity)) !== -1;
233
+ const updatedData = data.filter((entity) => {
234
+ const removed = dataToRemove.findIndex((entityToRemove) => this.equals(entityToRemove, entity)) !== -1;
233
235
  return !removed;
234
236
  });
235
237
  const deleteCount = data.length - updatedData.length;
@@ -247,7 +249,7 @@ export class InMemoryEntitiesService extends StartableObservableService {
247
249
  // Make sure to fill sortBy BEFORE checking in the replacement map
248
250
  sortBy = sortBy || 'id';
249
251
  // Replace sortBy, using the replacement map
250
- sortBy = this._sortByReplacement[sortBy] || sortBy;
252
+ sortBy = this.sortByReplacement[sortBy] || sortBy;
251
253
  // Execute the sort
252
254
  return EntityUtils.sort(data, sortBy, sortDirection);
253
255
  }
@@ -255,7 +257,7 @@ export class InMemoryEntitiesService extends StartableObservableService {
255
257
  return EntityFilterUtils.fromObject(source, this.filterType);
256
258
  }
257
259
  addSortByReplacement(source, target) {
258
- this._sortByReplacement[source] = target;
260
+ this.sortByReplacement[source] = target;
259
261
  }
260
262
  equals(d1, d2) {
261
263
  if (this._equalsFn)
@@ -277,7 +279,7 @@ export class InMemoryEntitiesService extends StartableObservableService {
277
279
  * @deprecated TODO Please rename this getter into visibleCount (and create count = hiddenCount + visibleCount)
278
280
  */
279
281
  get count() {
280
- return (this.dataSubject.value?.length || 0);
282
+ return this.dataSubject.value?.length || 0;
281
283
  }
282
284
  get hiddenCount() {
283
285
  return this._hiddenData?.length || 0;
@@ -301,7 +303,7 @@ export class InMemoryEntitiesService extends StartableObservableService {
301
303
  const filterFn = this._filterFnFactory && this._filterFnFactory(_filter);
302
304
  if (filterFn) {
303
305
  const filteredData = [];
304
- data.forEach(value => {
306
+ data.forEach((value) => {
305
307
  if (filterFn(value))
306
308
  filteredData.push(value);
307
309
  else
@@ -322,9 +324,9 @@ export class InMemoryEntitiesService extends StartableObservableService {
322
324
  async waitWhileSaving(opts) {
323
325
  if (this.saving) {
324
326
  return firstFalsePromise(this.savingSubject, {
325
- stop: opts?.stop || merge(this.stopSubject, this.dataSubject),
326
- stopError: false,
327
- ...opts
327
+ stop: opts?.stop || merge(this.stopSubject, this.dataSubject), // Stop if destroyed or new data Received
328
+ stopError: false, // Avoid error when stopped
329
+ ...opts,
328
330
  });
329
331
  }
330
332
  }
@@ -338,10 +340,10 @@ export class InMemoryEntitiesService extends StartableObservableService {
338
340
  this.savingSubject.next(false);
339
341
  }
340
342
  }
341
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: InMemoryEntitiesService, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
342
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.6", type: InMemoryEntitiesService, usesInheritance: true, ngImport: i0 });
343
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: InMemoryEntitiesService, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
344
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: InMemoryEntitiesService, usesInheritance: true, ngImport: i0 });
343
345
  }
344
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: InMemoryEntitiesService, decorators: [{
346
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: InMemoryEntitiesService, decorators: [{
345
347
  type: Directive
346
348
  }], ctorParameters: () => [{ type: undefined }, { type: undefined }, { type: undefined }] });
347
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5LWVudGl0eS1zZXJ2aWNlLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvc2VydmljZXMvbWVtb3J5LWVudGl0eS1zZXJ2aWNlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQzFELE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQVU5RSxPQUFPLEVBQUUsU0FBUyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQVcsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDekYsT0FBTyxFQUFFLGlCQUFpQixFQUFrQixNQUFNLGdCQUFnQixDQUFDO0FBQ25FLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOztBQWNsRixXQUFXO0FBRVgsa0VBQWtFO0FBQ2xFLE1BQU0sT0FBTyx1QkFLWCxTQUFRLDBCQUFvQztJQW1DaEM7SUFDQTtJQWpDWixLQUFLLEdBQUcsS0FBSyxDQUFDO0lBRU4sV0FBVyxHQUFRLElBQUksQ0FBQztJQUV2QixZQUFZLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7SUFFM0MsYUFBYSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQ3BELE9BQU8sQ0FBcUU7SUFDNUUsT0FBTyxDQUFvQztJQUMzQyxTQUFTLENBQW9DO0lBQzdDLFNBQVMsQ0FBNEI7SUFDckMs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QUFXLENBQUMsSUFBSSxDQUMxQixHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNYLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ2xCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDMUIsT0FBTyxFQUFDLElBQUksRUFBRSxLQUFLLEVBQUMsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVTLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBcUI7UUFDbkQsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFHO1lBQ2hCLE9BQU8saUJBQWlCLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtnQkFDM0MsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQztnQkFDN0QsU0FBUyxFQUFFLEtBQUs7Z0JBQ2hCLEdBQUcsSUFBSTthQUNSLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVTLFlBQVk7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFO1lBQzdCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQy9CO0lBQ0gsQ0FBQztJQUVTLFdBQVc7UUFDbkIsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRTtZQUM1QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNoQztJQUNILENBQUM7dUdBbGFVLHVCQUF1QjsyRkFBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQUZuQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBtZXJnZSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIG1lcmdlTWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGlzRW1wdHlBcnJheSwgaXNOaWwsIGlzTm90RW1wdHlBcnJheSwgaXNOb3ROaWwgfSBmcm9tICcuLi9mdW5jdGlvbnMnO1xuaW1wb3J0IHtcbiAgRW50aXRpZXNTZXJ2aWNlTG9hZE9wdGlvbnMsXG4gIEVudGl0aWVzU2VydmljZVdhdGNoT3B0aW9ucyxcbiAgRmlsdGVyRm4sXG4gIEZpbHRlckZuRmFjdG9yeSxcbiAgSUVudGl0aWVzU2VydmljZSxcbiAgTG9hZFJlc3VsdCxcbn0gZnJvbSAnLi9lbnRpdHktc2VydmljZS5jbGFzcyc7XG5pbXBvcnQgeyBTb3J0RGlyZWN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRW50aXR5VXRpbHMsIElFbnRpdHkgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL21vZGVsL2VudGl0eS5tb2RlbCc7XG5pbXBvcnQgeyBFbnRpdHlGaWx0ZXIsIEVudGl0eUZpbHRlclV0aWxzIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9tb2RlbC9maWx0ZXIubW9kZWwnO1xuaW1wb3J0IHsgZmlyc3RGYWxzZVByb21pc2UsIFdhaXRGb3JPcHRpb25zIH0gZnJvbSAnLi4vb2JzZXJ2YWJsZXMnO1xuaW1wb3J0IHsgU3RhcnRhYmxlT2JzZXJ2YWJsZVNlcnZpY2UgfSBmcm9tICcuL3N0YXJ0YWJsZS1vYnNlcnZhYmxlLXNlcnZpY2UuY2xhc3MnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEluTWVtb3J5RW50aXRpZXNTZXJ2aWNlT3B0aW9uczxULCBGPiB7XG4gIG9uU29ydD86IChkYXRhOiBUW10sIHNvcnRCeT86IHN0cmluZywgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb24pID0+IFRbXTtcbiAgb25Mb2FkPzogKGRhdGE6IFRbXSkgPT4gVFtdIHwgUHJvbWlzZTxUW10+O1xuICBvblNhdmU/OiAoZGF0YTogVFtdKSA9PiBUW10gfCBQcm9taXNlPFRbXT47XG4gIGVxdWFscz86IChkMTogVCwgZDI6IFQpID0+IGJvb2xlYW47XG5cbiAgZmlsdGVyRm5GYWN0b3J5PzogRmlsdGVyRm5GYWN0b3J5PFQsIEY+O1xuICBmaWx0ZXJGbj86IEZpbHRlckZuPFQ+O1xuXG4gIHNvcnRCeVJlcGxhY2VtZW50PzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuLy8gQGR5bmFtaWNcbkBEaXJlY3RpdmUoKVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtY2xhc3Mtc3VmZml4XG5leHBvcnQgY2xhc3MgSW5NZW1vcnlFbnRpdGllc1NlcnZpY2U8XG4gIFQgZXh0ZW5kcyBJRW50aXR5PFQsIElEPixcbiAgRiA9IGFueSxcbiAgSUQgPSBudW1iZXIsXG4gIE8gZXh0ZW5kcyBFbnRpdGllc1NlcnZpY2VXYXRjaE9wdGlvbnMgPSBFbnRpdGllc1NlcnZpY2VXYXRjaE9wdGlvbnM+XG4gIGV4dGVuZHMgU3RhcnRhYmxlT2JzZXJ2YWJsZVNlcnZpY2U8VFtdLCBUW10+XG4gIGltcGxlbWVudHMgSUVudGl0aWVzU2VydmljZTxULCBGLCBPPiwgT25EZXN0cm95IHtcblxuICBkZWJ1ZyA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX2hpZGRlbkRhdGE6IFRbXSA9IG51bGw7XG5cbiAgcmVhZG9ubHkgZGlydHlTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzYXZpbmdTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3NvcnRGbjogKGRhdGE6IFRbXSwgc29ydEJ5Pzogc3RyaW5nLCBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvbikgPT4gVFtdO1xuICBwcml2YXRlIHJlYWRvbmx5IF9vbkxvYWQ6IChkYXRhOiBUW10pID0+IFRbXSB8IFByb21pc2U8VFtdPjtcbiAgcHJpdmF0ZSByZWFkb25seSBfb25TYXZlRm46IChkYXRhOiBUW10pID0+IFRbXSB8IFByb21pc2U8VFtdPjtcbiAgcHJpdmF0ZSByZWFkb25seSBfZXF1YWxzRm46IChkMTogVCwgZDI6IFQpID0+IGJvb2xlYW47XG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZpbHRlckZuRmFjdG9yeTogRmlsdGVyRm5GYWN0b3J5PFQsIEY+O1xuICBwcml2YXRlIHJlYWRvbmx5IF9zb3J0QnlSZXBsYWNlbWVudDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuXG4gIHNldCB2YWx1ZShkYXRhOiBUW10pIHtcbiAgICB0aGlzLnNldFZhbHVlKGRhdGEpO1xuICB9XG5cbiAgZ2V0IHZhbHVlKCk6IFRbXSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVN1YmplY3QuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIGdldCBzYXZpbmcoKTogYm9vbGVhbntcbiAgICByZXR1cm4gdGhpcy5zYXZpbmdTdWJqZWN0LnZhbHVlO1xuICB9XG5cbiAgZ2V0IGRpcnR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRpcnR5U3ViamVjdC52YWx1ZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBkYXRhVHlwZTogbmV3KCkgPT4gVCxcbiAgICBwcm90ZWN0ZWQgZmlsdGVyVHlwZTogbmV3KCkgPT4gRixcbiAgICBvcHRpb25zPzogSW5NZW1vcnlFbnRpdGllc1NlcnZpY2VPcHRpb25zPFQsIEY+XG4gICkge1xuICAgIHN1cGVyKG51bGwpO1xuICAgIG9wdGlvbnMgPSB7XG4gICAgICBvblNvcnQ6IHRoaXMuc29ydCxcbiAgICAgIC4uLm9wdGlvbnNcbiAgICB9O1xuXG4gICAgdGhpcy5fc29ydEZuID0gb3B0aW9ucy5vblNvcnQ7XG4gICAgdGhpcy5fb25Mb2FkID0gb3B0aW9ucy5vbkxvYWQ7XG4gICAgdGhpcy5fb25TYXZlRm4gPSBvcHRpb25zLm9uU2F2ZTtcbiAgICB0aGlzLl9lcXVhbHNGbiA9IG9wdGlvbnMuZXF1YWxzO1xuICAgIHRoaXMuX2ZpbHRlckZuRmFjdG9yeSA9IG9wdGlvbnMuZmlsdGVyRm5GYWN0b3J5IHx8ICgoZikgPT4ge1xuICAgICAgY29uc3QgZmlsdGVyID0gdGhpcy5hc0ZpbHRlcihmKSBhcyBGO1xuICAgICAgaWYgKGZpbHRlciBpbnN0YW5jZW9mIEVudGl0eUZpbHRlcikge1xuICAgICAgICByZXR1cm4gZmlsdGVyLmFzRmlsdGVyRm4oKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSk7XG4gICAgdGhpcy5fc3RhcnRCeVJlYWR5RnVuY3Rpb24gPSBmYWxzZTsgLy8gTmVlZCBzZXRWYWx1ZSgpIHRvIGJlIGNhbGxlZCwgdG8gc3RhcnQgdGhlIHNlcnZpY2VcblxuICAgIHRoaXMuX3NvcnRCeVJlcGxhY2VtZW50ID0ge1xuICAgICAgLi4ub3B0aW9ucy5zb3J0QnlSZXBsYWNlbWVudFxuICAgIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgbmdPblN0YXJ0KGRhdGE/OiBUW10pOiBQcm9taXNlPFRbXT4ge1xuICAgIGlmICghZGF0YSkgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIHJlcXVpcmVkIGRhdGEsIHRvIHN0YXJ0IHRoaXMgc2VydmljZScpO1xuICAgIGlmICh0aGlzLmRlYnVnKSBjb25zb2xlLmRlYnVnKCdbbWVtb3J5LWRhdGEtc2VydmljZV0gU3RhcnRpbmcuLi4nKTtcbiAgICB0aGlzLl9oaWRkZW5EYXRhID0gW107XG4gICAgdGhpcy5tYXJrQXNTYXZlZCgpO1xuICAgIHRoaXMubWFya0FzUHJpc3RpbmUoKTtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBuZ09uU3RvcCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5kZWJ1ZykgY29uc29sZS5kZWJ1ZygnW21lbW9yeS1kYXRhLXNlcnZpY2VdIFN0b3BwaW5nLi4uJyk7XG4gICAgdGhpcy5faGlkZGVuRGF0YSA9IG51bGw7XG4gICAgdGhpcy5tYXJrQXNTYXZlZCgpO1xuICAgIHRoaXMubWFya0FzUHJpc3RpbmUoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3RvcCgpO1xuICB9XG5cbiAgc2V0VmFsdWUoZGF0YTogVFtdKSB7XG4gICAgLy8gSWYgc2VydmljZSBhbHJlYWR5IHN0YXJ0ZWRcbiAgICBpZiAodGhpcy5zdGFydGVkKSB7XG4gICAgICAvLyBVcGRhdGUgdGhlIGRhdGEsIGlmIGNoYW5nZWRcbiAgICAgIGlmICh0aGlzLmRhdGFTdWJqZWN0LnZhbHVlICE9PSBkYXRhKSB7XG4gICAgICAgIHRoaXMuX2hpZGRlbkRhdGEgPSBbXTtcbiAgICAgICAgdGhpcy5kYXRhU3ViamVjdC5uZXh0KGRhdGEpO1xuICAgICAgfVxuXG4gICAgICAvLyBSZXNldCBkaXJ0eSBhbmQgc2F2aW5nIHN0YXRlXG4gICAgICAvLyAoRml4IE9ic0JpbyBpc3N1ZSBvbiBzYW1wbGVzIHRhYmxlIDogc3RpbGwgZGlydHkgYWZ0ZXIgc2V0dGluZyB0aGUgc2FtZSB2YWx1ZSBhZ2FpbilcbiAgICAgIHRoaXMubWFya0FzU2F2ZWQoKTtcbiAgICAgIHRoaXMubWFya0FzUHJpc3RpbmUoKTtcbiAgICB9XG4gICAgLy8gSWYgc2VydmljZSBub3Qgc3RhcnRlZCB5ZXQsIHRoZW4gc3RhcnQgaXQsIHVzaW5nIGdpdmVuIGRhdGFcbiAgICBlbHNlIHtcbiAgICAgIHRoaXMuc3RhcnQoZGF0YSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgbG9hZEFsbChcbiAgICBvZmZzZXQ6IG51bWJlcixcbiAgICBzaXplOiBudW1iZXIsXG4gICAgc29ydEJ5Pzogc3RyaW5nLFxuICAgIHNvcnREaXJlY3Rpb24/OiBTb3J0RGlyZWN0aW9uLFxuICAgIGZpbHRlcj86IEYsXG4gICAgb3B0cz86IEVudGl0aWVzU2VydmljZUxvYWRPcHRpb25zICYge3VwZGF0ZUhpZGRlbkRhdGE/OiBib29sZWFufVxuICApOiBQcm9taXNlPExvYWRSZXN1bHQ8VD4+IHtcblxuICAgIG9mZnNldCA9IG9mZnNldCA+PSAwID8gb2Zmc2V0IDogMDtcbiAgICBzaXplID0gc2l6ZSA+PSAwID8gc2l6ZSA6IC0xO1xuXG4gICAgY29uc3Qgb3JpZ2luYWxEYXRhID0gdGhpcy5kYXRhU3ViamVjdC52YWx1ZTtcbiAgICBpZiAoaXNOaWwob3JpZ2luYWxEYXRhKSkge1xuICAgICAgY29uc29sZS53YXJuKCdbbWVtb3J5LWRhdGEtc2VydmljZV0gQ2Fubm90IGxvYWQgYWxsOiBubyB2YWx1ZSBzZXQuIFdpbGwgcmV0dXJuIGVtcHR5IHJlc3VsdCcpO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICAvLyBXYWl0IHNlcnZpY2UgaXMgcmVhZHlcbiAgICAgIGF3YWl0IHRoaXMucmVhZHkoKTtcblxuICAgICAgLy8gV2FpdCB3aGlsZSBidXN5IChlLmcuIHdoZW4gc2F2aW5nLCBvciBkZWxldGluZylcbiAgICAgIGF3YWl0IHRoaXMud2FpdElkbGUoe3N0b3BFcnJvcjogZmFsc2UgLyphdm9pZCBlcnJvciB3aGVuIHN0b3BwZWQqL30pO1xuICAgIH1cbiAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAvLyBTaG91bGQgYmUgYSBzdG9wIGVycm9yOiBsb2cgYW5kIGNvbnRpbnVlXG4gICAgICBpZiAoIXRoaXMuc3RvcHBlZCkgY29uc29sZS5lcnJvcignVW5leHBlY3RlZCBlcnJvciwgd2hpbGUgd2FpdGluZyA6JywgZXJyKTtcbiAgICB9XG5cbiAgICAvLyBNYWtlIHN1cmUgc2VydmljZSBpcyBub3Qgc3RvcHBlZFxuICAgIGlmICh0aGlzLnN0b3BwZWQpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCBleGNsdWRlZERhdGFCeUZpbHRlcjogVFtdID0gW107XG4gICAgbGV0IGV4Y2x1ZGVkRGF0YUJ5UGFnaW5hdGlvbjogVFtdO1xuXG4gICAgdHJ5IHtcbiAgICAgIGlmIChpc0VtcHR5QXJyYXkob3JpZ2luYWxEYXRhKSkge1xuICAgICAgICByZXR1cm4ge2RhdGE6IFtdLCB0b3RhbDogMH07XG4gICAgICB9XG5cbiAgICAgIC8vIEFwcGx5IHNvcnRcbiAgICAgIGxldCBkYXRhID0gdGhpcy5fc29ydEZuKG9yaWdpbmFsRGF0YSwgc29ydEJ5LCBzb3J0RGlyZWN0aW9uKSA7XG5cbiAgICAgIGlmICh0aGlzLl9vbkxvYWQpIHtcbiAgICAgICAgZGF0YSA9IGF3YWl0IHRoaXMuX29uTG9hZChkYXRhKTtcbiAgICAgIH1cblxuICAgICAgLy8gQXBwbHkgZmlsdGVyICh3aWxsIHVwZGF0ZSBoaWRkZW5EYXRhKVxuICAgICAgZGF0YSA9IHRoaXMuZmlsdGVyKGRhdGEsIGZpbHRlciwgZXhjbHVkZWREYXRhQnlGaWx0ZXIpO1xuXG4gICAgICAvLyBDb21wdXRlIHRoZSB0b3RhbCBsZW5ndGhcbiAgICAgIGNvbnN0IHRvdGFsID0gZGF0YS5sZW5ndGg7XG5cbiAgICAgIC8vIElmIHBhZ2Ugc2l6ZT0wIChlLmcuIG9ubHkgbmVlZCB0b3RhbClcbiAgICAgIGlmIChzaXplID09PSAwKSB7XG4gICAgICAgIGV4Y2x1ZGVkRGF0YUJ5UGFnaW5hdGlvbiA9IGRhdGE7XG4gICAgICAgIHJldHVybiB7ZGF0YTogW10sIHRvdGFsfTtcbiAgICAgIH1cblxuICAgICAgLy8gU2xpY2UgaW4gYSBwYWdlICh1c2luZyBvZmZzZXQgYW5kIHNpemUpXG4gICAgICBpZiAob2Zmc2V0ID4gMCkge1xuXG4gICAgICAgIC8vIE9mZnNldCBhZnRlciB0aGUgZW5kOiBubyByZXN1bHRcbiAgICAgICAgaWYgKG9mZnNldCA+PSBkYXRhLmxlbmd0aCkge1xuICAgICAgICAgIGV4Y2x1ZGVkRGF0YUJ5UGFnaW5hdGlvbiA9IGRhdGE7XG4gICAgICAgICAgZGF0YSA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGV4Y2x1ZGVkRGF0YUJ5UGFnaW5hdGlvbiA9IChzaXplID4gMCAmJiAoKG9mZnNldCArIHNpemUpIDwgZGF0YS5sZW5ndGgpKVxuICAgICAgICAgICAgLy8gU2xpY2UgdXNpbmcgbGltaXQgdG8gc2l6ZVxuICAgICAgICAgICAgPyBkYXRhLnNsaWNlKDAsIG9mZnNldCAtMSkuY29uY2F0KGRhdGEuc2xpY2Uob2Zmc2V0ICsgc2l6ZSkpXG4gICAgICAgICAgICAvLyBTbGljZSB3aXRob3V0IGxpbWl0XG4gICAgICAgICAgICA6IGRhdGEuc2xpY2UoMCwgb2Zmc2V0LTEpO1xuXG4gICAgICAgICAgZGF0YSA9IChzaXplID4gMCAmJiAoKG9mZnNldCArIHNpemUpIDwgZGF0YS5sZW5ndGgpKVxuICAgICAgICAgICAgLy8gU2xpY2UgdXNpbmcgbGltaXQgdG8gc2l6ZVxuICAgICAgICAgICAgPyBkYXRhLnNsaWNlKG9mZnNldCwgb2Zmc2V0ICsgc2l6ZSlcbiAgICAgICAgICAgIC8vIFNsaWNlIHdpdGhvdXQgbGltaXRcbiAgICAgICAgICAgIDogZGF0YS5zbGljZShvZmZzZXQpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIEFwcGx5IGEgbGltaXRcbiAgICAgIGVsc2UgaWYgKHNpemUgPiAwKXtcbiAgICAgICAgZXhjbHVkZWREYXRhQnlQYWdpbmF0aW9uID0gZGF0YS5zbGljZShzaXplKTtcbiAgICAgICAgZGF0YSA9IGRhdGEuc2xpY2UoMCwgc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIC8vIE5vIGxpbWl0OlxuICAgICAgZWxzZSBpZiAoc2l6ZSA9PT0gLTEpe1xuICAgICAgICAvLyBLZWVwIGFsbCBkYXRhXG4gICAgICB9XG5cbiAgICAgIC8vIC8hXFwgSWYgYWxyZWFkeSBvYnNlcnZlZCwgdGhlbiBhbHdheXMgY3JlYXRlIGEgY29weSBvZiB0aGUgb3JpZ2luYWwgYXJyYXlcbiAgICAgIC8vIEJlY2F1c2UgZGF0YXNvdXJjZSB3aWxsIG9ubHkgdXBkYXRlIGlmIHRoZSBhcnJheSBjaGFuZ2VkXG4gICAgICBpZiAoZGF0YSA9PT0gb3JpZ2luYWxEYXRhKSB7XG4gICAgICAgIGRhdGEgPSBkYXRhLnNsaWNlKCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlczogTG9hZFJlc3VsdDxUPiA9IHtkYXRhLCB0b3RhbH07XG5cbiAgICAgIGNvbnN0IG5leHRPZmZzZXQgPSBzaXplID4gMCA/IChvZmZzZXQgfHwgMCkgKyBzaXplIDogdG90YWw7XG4gICAgICBpZiAobmV4dE9mZnNldCA8IHRvdGFsKSB7XG4gICAgICAgIHJlcy5mZXRjaE1vcmUgPSAoKSA9PiB0aGlzLmxvYWRBbGwobmV4dE9mZnNldCwgc2l6ZSwgc29ydEJ5LCBzb3J0RGlyZWN0aW9uLCBmaWx0ZXIsIHsuLi5vcHRzLCB1cGRhdGVIaWRkZW5EYXRhOiBmYWxzZX0pXG4gICAgICAgICAgLnRoZW4ocmVzID0+IHtcbiAgICAgICAgICAgIC8vIFVwZGF0ZSBoaWRkZW4gZGF0YSAocmVtb3ZlIG5ldyBmZXRjaGVkIGl0ZW0pXG4gICAgICAgICAgICBpZiAocmVzLmRhdGE/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICB0aGlzLl9oaWRkZW5EYXRhID0gdGhpcy5faGlkZGVuRGF0YT8uZmlsdGVyKGl0ZW0gPT4gIXJlcy5kYXRhLmluY2x1ZGVzKGl0ZW0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXM7XG4gICAgfVxuICAgIGZpbmFsbHkge1xuICAgICAgLy8gUmVtZW1iZXIgaGlkZGVuIGRhdGFcbiAgICAgIGlmIChvcHRzPy51cGRhdGVIaWRkZW5EYXRhICE9PSBmYWxzZSkge1xuICAgICAgICB0aGlzLl9oaWRkZW5EYXRhID0gIWV4Y2x1ZGVkRGF0YUJ5UGFnaW5hdGlvbiA/IGV4Y2x1ZGVkRGF0YUJ5RmlsdGVyIDogZXhjbHVkZWREYXRhQnlGaWx0ZXIuY29uY2F0KC4uLmV4Y2x1ZGVkRGF0YUJ5UGFnaW5hdGlvbik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgd2F0Y2hBbGwoXG4gICAgb2Zmc2V0OiBudW1iZXIsXG4gICAgc2l6ZTogbnVtYmVyLFxuICAgIHNvcnRCeT86IHN0cmluZyxcbiAgICBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvbixcbiAgICBmaWx0ZXJEYXRhPzogRixcbiAgICBvcHRpb25zPzogYW55XG4gICk6IE9ic2VydmFibGU8TG9hZFJlc3VsdDxUPj4ge1xuXG4gICAgb2Zmc2V0ID0gb2Zmc2V0ID49IDAgPyBvZmZzZXQgOiAwO1xuICAgIHNpemUgPSBzaXplID49IDAgPyBzaXplIDogLTE7XG5cbiAgICByZXR1cm4gdGhpcy5kYXRhU3ViamVjdFxuICAgICAgLnBpcGUoXG4gICAgICAgIC8vIFdhcm4gaWYgd2FpdGluZyB2YWx1ZSB0byBiZSBzZXRcbiAgICAgICAgdGFwKChkYXRhKSA9PiB0aGlzLmRlYnVnICYmICFkYXRhICYmIGNvbnNvbGUuZGVidWcoJ1ttZW1vcnktZGF0YS1zZXJ2aWNlXSBXYWl0aW5nIHZhbHVlIHRvIGJlIHNldC4uLicpKSxcbiAgICAgICAgZmlsdGVyKGlzTm90TmlsKSxcbiAgICAgICAgbWVyZ2VNYXAoXyA9PiB0aGlzLmxvYWRBbGwob2Zmc2V0LCBzaXplLCBzb3J0QnksIHNvcnREaXJlY3Rpb24sIGZpbHRlckRhdGEsIG9wdGlvbnMpKSxcbiAgICAgICAgZmlsdGVyKGlzTm90TmlsKSwgLy8gU2tpcCBubyByZXN1bHQgKGUuZy4gd2hlbiBzdG9wcGVkKVxuICAgICAgICB0YWtlVW50aWwodGhpcy5zdG9wU3ViamVjdClcbiAgICAgICk7XG4gIH1cblxuICBhc3luYyBzYXZlQWxsKGRhdGE6IFRbXSwgb3B0aW9ucz86IGFueSk6IFByb21pc2U8VFtdPiB7XG4gICAgaWYgKCF0aGlzLmRhdGFTdWJqZWN0LnZhbHVlKSB0aHJvdyBuZXcgRXJyb3IoJ1ttZW1vcnktc2VydmljZV0gQ291bGQgbm90IHNhdmUsIGJlY2F1c2UgdmFsdWUgbm90IHNldCcpO1xuXG4gICAgdGhpcy5tYXJrQXNTYXZpbmcoKTtcblxuICAgIHRyeSB7XG5cbiAgICAgIC8vIFJlc3RvcmUgaGlkZGVuIGRhdGFcbiAgICAgIGlmIChpc05vdEVtcHR5QXJyYXkodGhpcy5faGlkZGVuRGF0YSkpXG4gICAgICAgIGRhdGEgPSBkYXRhLmNvbmNhdCguLi50aGlzLl9oaWRkZW5EYXRhKTtcblxuICAgICAgaWYgKHRoaXMuX29uU2F2ZUZuKSB7XG4gICAgICAgIGNvbnN0IHJlcyA9IHRoaXMuX29uU2F2ZUZuKGRhdGEpO1xuICAgICAgICBkYXRhID0gKChyZXMgaW5zdGFuY2VvZiBQcm9taXNlKSkgPyBhd2FpdCByZXMgOiByZXM7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZGF0YVN1YmplY3QubmV4dChkYXRhKTtcbiAgICAgIHRoaXMubWFya0FzRGlydHkoKTtcbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cbiAgICBmaW5hbGx5IHtcbiAgICAgIHRoaXMubWFya0FzU2F2ZWQoKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBkZWxldGVBbGwoZGF0YVRvUmVtb3ZlOiBUW10sIG9wdGlvbnM/OiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgIGxldCBkYXRhID0gdGhpcy5kYXRhU3ViamVjdC52YWx1ZTtcbiAgICBpZiAoIWRhdGEpIHRocm93IG5ldyBFcnJvcignW21lbW9yeS1zZXJ2aWNlXSBDb3VsZCBub3QgZGVsZXRlLCBiZWNhdXNlIHZhbHVlIG5vdCBzZXQnKTtcblxuICAgIHRoaXMubWFya0FzU2F2aW5nKCk7XG5cbiAgICB0cnkge1xuICAgICAgLy8gUmVtb3ZlIGRlbGV0ZWQgaXRlbSwgZnJvbSBkYXRhXG4gICAgICBjb25zdCB1cGRhdGVkRGF0YSA9IGRhdGEuZmlsdGVyKGVudGl0eSA9PiB7XG4gICAgICAgIGNvbnN0IHJlbW92ZWQgPSBkYXRhVG9SZW1vdmUuZmluZEluZGV4KGVudGl0eVRvUmVtb3ZlID0+IHRoaXMuZXF1YWxzKGVudGl0eVRvUmVtb3ZlLCBlbnRpdHkpKSAhPT0gLTE7XG4gICAgICAgIHJldHVybiAhcmVtb3ZlZDtcbiAgICAgIH0pO1xuICAgICAgY29uc3QgZGVsZXRlQ291bnQgPSBkYXRhLmxlbmd0aCAtIHVwZGF0ZWREYXRhLmxlbmd0aDtcbiAgICAgIGlmIChkZWxldGVDb3VudCA+IDApIHtcbiAgICAgICAgZGF0YSA9IHVwZGF0ZWREYXRhO1xuICAgICAgICB0aGlzLmRhdGFTdWJqZWN0Lm5leHQoZGF0YSk7XG4gICAgICAgIHRoaXMubWFya0FzRGlydHkoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZmluYWxseSB7XG4gICAgICB0aGlzLm1hcmtBc1NhdmVkKCk7XG4gICAgfVxuICB9XG5cbiAgc29ydChkYXRhOiBUW10sIHNvcnRCeT86IHN0cmluZywgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb24pOiBUW10ge1xuICAgIC8vIE1ha2Ugc3VyZSB0byBmaWxsIHNvcnRCeSBCRUZPUkUgY2hlY2tpbmcgaW4gdGhlIHJlcGxhY2VtZW50IG1hcFxuICAgIHNvcnRCeSA9IHNvcnRCeSB8fCAnaWQnO1xuICAgIC8vIFJlcGxhY2Ugc29ydEJ5LCB1c2luZyB0aGUgcmVwbGFjZW1lbnQgbWFwXG4gICAgc29ydEJ5ID0gdGhpcy5fc29ydEJ5UmVwbGFjZW1lbnRbc29ydEJ5XSB8fCBzb3J0Qnk7XG5cbiAgICAvLyBFeGVjdXRlIHRoZSBzb3J0XG4gICAgcmV0dXJuIEVudGl0eVV0aWxzLnNvcnQoZGF0YSwgc29ydEJ5LCBzb3J0RGlyZWN0aW9uKTtcbiAgfVxuXG4gIGFzRmlsdGVyKHNvdXJjZTogUGFydGlhbDxGPik6IEYge1xuICAgIHJldHVybiBFbnRpdHlGaWx0ZXJVdGlscy5mcm9tT2JqZWN0KHNvdXJjZSwgdGhpcy5maWx0ZXJUeXBlKTtcbiAgfVxuXG4gIGFkZFNvcnRCeVJlcGxhY2VtZW50KHNvdXJjZTogc3RyaW5nLCB0YXJnZXQ6IHN0cmluZykge1xuICAgIHRoaXMuX3NvcnRCeVJlcGxhY2VtZW50W3NvdXJjZV0gPSB0YXJnZXQ7XG4gIH1cblxuICBlcXVhbHMoZDE6IFQsIGQyOiBUKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuX2VxdWFsc0ZuKSByZXR1cm4gdGhpcy5fZXF1YWxzRm4oZDEsIGQyKTtcbiAgICByZXR1cm4gZDEgJiYgZDEuZXF1YWxzID8gZDEuZXF1YWxzKGQyKSA6IEVudGl0eVV0aWxzLmVxdWFscyhkMSwgZDIsICdpZCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvdW50IGRhdGEgc3RvcmVkIGJ5IHRoZSBzZXJ2aWNlICh3aXRob3V0IGhpZGRlbiBkYXRhKS5cbiAgICpcbiAgICogQHBhcmFtIG9wdHNcbiAgICovXG4gIC8vIGdldCB2aXNpYmxlQ291bnQoKTogbnVtYmVyIHtcbiAgLy8gICByZXR1cm4gKHRoaXMuZGF0YVN1YmplY3QudmFsdWU/Lmxlbmd0aCB8fCAwKTtcbiAgLy8gfVxuXG4gIC8qKlxuICAgKiBDb3VudCBkYXRhIHN0b3JlZCBieSB0aGUgc2VydmljZSAod2l0aG91dCBoaWRkZW4gZGF0YSkuXG4gICAqXG4gICAqIEBwYXJhbSBvcHRzXG4gICAqIEBkZXByZWNhdGVkIFRPRE8gUGxlYXNlIHJlbmFtZSB0aGlzIGdldHRlciBpbnRvIHZpc2libGVDb3VudCAoYW5kIGNyZWF0ZSBjb3VudCA9IGhpZGRlbkNvdW50ICsgdmlzaWJsZUNvdW50KVxuICAgKi9cbiAgZ2V0IGNvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuICh0aGlzLmRhdGFTdWJqZWN0LnZhbHVlPy5sZW5ndGggfHwgMCk7XG4gIH1cblxuICBnZXQgaGlkZGVuQ291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5faGlkZGVuRGF0YT8ubGVuZ3RoIHx8IDA7XG4gIH1cblxuICBhc3luYyB3YWl0SWRsZShvcHRzPzogV2FpdEZvck9wdGlvbnMpIHtcbiAgICBhd2FpdCB0aGlzLndhaXRXaGlsZVNhdmluZyhvcHRzKTtcbiAgfVxuXG4gIG1hcmtBc0RpcnR5KCkge1xuICAgIGlmICghdGhpcy5kaXJ0eVN1YmplY3QudmFsdWUpIHtcbiAgICAgIHRoaXMuZGlydHlTdWJqZWN0Lm5leHQodHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgbWFya0FzUHJpc3RpbmUoKSB7XG4gICAgaWYgKHRoaXMuZGlydHlTdWJqZWN0LnZhbHVlKSB7XG4gICAgICB0aGlzLmRpcnR5U3ViamVjdC5uZXh0KGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICAvKiAtLSBwcm90ZWN0ZWQgbWV0aG9kcyAtLSAqL1xuXG4gIHByb3RlY3RlZCBmaWx0ZXIoZGF0YTogVFtdLCBfZmlsdGVyOiBGLCBoaWRkZW5EYXRhOiBUW10pOiBUW10ge1xuXG4gICAgLy8gaWYgZmlsdGVyIGlzIERhdGFGaWx0ZXIgaW5zdGFuY2UsIHVzZSBpdHMgdGVzdCBmdW5jdGlvblxuICAgIGNvbnN0IGZpbHRlckZuID0gdGhpcy5fZmlsdGVyRm5GYWN0b3J5ICYmIHRoaXMuX2ZpbHRlckZuRmFjdG9yeShfZmlsdGVyKTtcbiAgICBpZiAoZmlsdGVyRm4pIHtcbiAgICAgIGNvbnN0IGZpbHRlcmVkRGF0YSA9IFtdO1xuXG4gICAgICBkYXRhLmZvckVhY2godmFsdWUgPT4ge1xuICAgICAgICBpZiAoZmlsdGVyRm4odmFsdWUpKVxuICAgICAgICAgIGZpbHRlcmVkRGF0YS5wdXNoKHZhbHVlKTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgIGhpZGRlbkRhdGEucHVzaCh2YWx1ZSk7XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIGZpbHRlcmVkRGF0YTtcbiAgICB9XG5cbiAgICAvLyBkZWZhdWx0LCBubyBmaWx0ZXJcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjb25uZWN0KCk6IE9ic2VydmFibGU8TG9hZFJlc3VsdDxUPj4ge1xuICAgIHJldHVybiB0aGlzLmRhdGFTdWJqZWN0LnBpcGUoXG4gICAgICBtYXAoKGRhdGEpID0+IHtcbiAgICAgICAgZGF0YSA9IGRhdGEgfHwgW107XG4gICAgICAgIGNvbnN0IHRvdGFsID0gZGF0YS5sZW5ndGg7XG4gICAgICAgIHJldHVybiB7ZGF0YSwgdG90YWx9O1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHdhaXRXaGlsZVNhdmluZyhvcHRzPzogV2FpdEZvck9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5zYXZpbmcpICB7XG4gICAgICByZXR1cm4gZmlyc3RGYWxzZVByb21pc2UodGhpcy5zYXZpbmdTdWJqZWN0LCB7XG4gICAgICAgIHN0b3A6IG9wdHM/LnN0b3AgfHwgbWVyZ2UodGhpcy5zdG9wU3ViamVjdCwgdGhpcy5kYXRhU3ViamVjdCksIC8vIFN0b3AgaWYgZGVzdHJveWVkIG9yIG5ldyBkYXRhIFJlY2VpdmVkXG4gICAgICAgIHN0b3BFcnJvcjogZmFsc2UsIC8vIEF2b2lkIGVycm9yIHdoZW4gc3RvcHBlZFxuICAgICAgICAuLi5vcHRzXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgbWFya0FzU2F2aW5nKCkge1xuICAgIGlmICghdGhpcy5zYXZpbmdTdWJqZWN0LnZhbHVlKSB7XG4gICAgICB0aGlzLnNhdmluZ1N1YmplY3QubmV4dCh0cnVlKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgbWFya0FzU2F2ZWQoKSB7XG4gICAgaWYgKHRoaXMuc2F2aW5nU3ViamVjdC52YWx1ZSkge1xuICAgICAgdGhpcy5zYXZpbmdTdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG5cbn1cbiJdfQ==
349
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5LWVudGl0eS1zZXJ2aWNlLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvc2VydmljZXMvbWVtb3J5LWVudGl0eS1zZXJ2aWNlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQzFELE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUc5RSxPQUFPLEVBQUUsU0FBUyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQVcsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDekYsT0FBTyxFQUFFLGlCQUFpQixFQUFrQixNQUFNLGdCQUFnQixDQUFDO0FBQ25FLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOztBQWVsRixXQUFXO0FBRVgsa0VBQWtFO0FBQ2xFLE1BQU0sT0FBTyx1QkFNWCxTQUFRLDBCQUFvQztJQW1DaEM7SUFDQTtJQWpDWixLQUFLLEdBQUcsS0FBSyxDQUFDO0lBRU4sV0FBVyxHQUFRLElBQUksQ0FBQztJQUV2QixZQUFZLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDbkQsYUFBYSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBRTFDLGlCQUFpQixDQUE0QjtJQUUvQyxPQUFPLENBQXFFO0lBQzVFLE9BQU8sQ0FBb0M7SUFDM0MsU0FBUyxDQUFvQztJQUM3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S0FBSyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsQ0FBQztJQUNILENBQUM7dUdBbFpVLHVCQUF1QjsyRkFBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQUZuQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBtZXJnZSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIG1lcmdlTWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGlzRW1wdHlBcnJheSwgaXNOaWwsIGlzTm90RW1wdHlBcnJheSwgaXNOb3ROaWwgfSBmcm9tICcuLi9mdW5jdGlvbnMnO1xuaW1wb3J0IHsgRW50aXRpZXNTZXJ2aWNlTG9hZE9wdGlvbnMsIEVudGl0aWVzU2VydmljZVdhdGNoT3B0aW9ucywgSUVudGl0aWVzU2VydmljZSwgTG9hZFJlc3VsdCB9IGZyb20gJy4vZW50aXR5LXNlcnZpY2UuY2xhc3MnO1xuaW1wb3J0IHsgU29ydERpcmVjdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVudGl0eVV0aWxzLCBJRW50aXR5IH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9tb2RlbC9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHsgRW50aXR5RmlsdGVyLCBFbnRpdHlGaWx0ZXJVdGlscyB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbW9kZWwvZmlsdGVyLm1vZGVsJztcbmltcG9ydCB7IGZpcnN0RmFsc2VQcm9taXNlLCBXYWl0Rm9yT3B0aW9ucyB9IGZyb20gJy4uL29ic2VydmFibGVzJztcbmltcG9ydCB7IFN0YXJ0YWJsZU9ic2VydmFibGVTZXJ2aWNlIH0gZnJvbSAnLi9zdGFydGFibGUtb2JzZXJ2YWJsZS1zZXJ2aWNlLmNsYXNzJztcbmltcG9ydCB7IEZpbHRlckZuLCBGaWx0ZXJGbkZhY3RvcnkgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW5NZW1vcnlFbnRpdGllc1NlcnZpY2VPcHRpb25zPFQsIEY+IHtcbiAgb25Tb3J0PzogKGRhdGE6IFRbXSwgc29ydEJ5Pzogc3RyaW5nLCBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvbikgPT4gVFtdO1xuICBvbkxvYWQ/OiAoZGF0YTogVFtdKSA9PiBUW10gfCBQcm9taXNlPFRbXT47XG4gIG9uU2F2ZT86IChkYXRhOiBUW10pID0+IFRbXSB8IFByb21pc2U8VFtdPjtcbiAgZXF1YWxzPzogKGQxOiBULCBkMjogVCkgPT4gYm9vbGVhbjtcblxuICBmaWx0ZXJGbkZhY3Rvcnk/OiBGaWx0ZXJGbkZhY3Rvcnk8VCwgRj47XG4gIGZpbHRlckZuPzogRmlsdGVyRm48VD47XG5cbiAgc29ydEJ5UmVwbGFjZW1lbnQ/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xufVxuXG4vLyBAZHluYW1pY1xuQERpcmVjdGl2ZSgpXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1jbGFzcy1zdWZmaXhcbmV4cG9ydCBjbGFzcyBJbk1lbW9yeUVudGl0aWVzU2VydmljZTxcbiAgICBUIGV4dGVuZHMgSUVudGl0eTxULCBJRD4sXG4gICAgRiA9IGFueSxcbiAgICBJRCA9IG51bWJlcixcbiAgICBPIGV4dGVuZHMgRW50aXRpZXNTZXJ2aWNlV2F0Y2hPcHRpb25zID0gRW50aXRpZXNTZXJ2aWNlV2F0Y2hPcHRpb25zLFxuICA+XG4gIGV4dGVuZHMgU3RhcnRhYmxlT2JzZXJ2YWJsZVNlcnZpY2U8VFtdLCBUW10+XG4gIGltcGxlbWVudHMgSUVudGl0aWVzU2VydmljZTxULCBGLCBPPiwgT25EZXN0cm95XG57XG4gIGRlYnVnID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfaGlkZGVuRGF0YTogVFtdID0gbnVsbDtcblxuICByZWFkb25seSBkaXJ0eVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgc2F2aW5nU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBzb3J0QnlSZXBsYWNlbWVudDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9zb3J0Rm46IChkYXRhOiBUW10sIHNvcnRCeT86IHN0cmluZywgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb24pID0+IFRbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBfb25Mb2FkOiAoZGF0YTogVFtdKSA9PiBUW10gfCBQcm9taXNlPFRbXT47XG4gIHByaXZhdGUgcmVhZG9ubHkgX29uU2F2ZUZuOiAoZGF0YTogVFtdKSA9PiBUW10gfCBQcm9taXNlPFRbXT47XG4gIHByaXZhdGUgcmVhZG9ubHkgX2VxdWFsc0ZuOiAoZDE6IFQsIGQyOiBUKSA9PiBib29sZWFuO1xuICBwcml2YXRlIHJlYWRvbmx5IF9maWx0ZXJGbkZhY3Rvcnk6IEZpbHRlckZuRmFjdG9yeTxULCBGPjtcblxuICBzZXQgdmFsdWUoZGF0YTogVFtdKSB7XG4gICAgdGhpcy5zZXRWYWx1ZShkYXRhKTtcbiAgfVxuXG4gIGdldCB2YWx1ZSgpOiBUW10ge1xuICAgIHJldHVybiB0aGlzLmRhdGFTdWJqZWN0LmdldFZhbHVlKCk7XG4gIH1cblxuICBnZXQgc2F2aW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNhdmluZ1N1YmplY3QudmFsdWU7XG4gIH1cblxuICBnZXQgZGlydHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZGlydHlTdWJqZWN0LnZhbHVlO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGRhdGFUeXBlOiBuZXcgKCkgPT4gVCxcbiAgICBwcm90ZWN0ZWQgZmlsdGVyVHlwZTogbmV3ICgpID0+IEYsXG4gICAgb3B0aW9ucz86IEluTWVtb3J5RW50aXRpZXNTZXJ2aWNlT3B0aW9uczxULCBGPlxuICApIHtcbiAgICBzdXBlcihudWxsKTtcbiAgICBvcHRpb25zID0ge1xuICAgICAgb25Tb3J0OiB0aGlzLnNvcnQsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH07XG5cbiAgICB0aGlzLl9zb3J0Rm4gPSBvcHRpb25zLm9uU29ydDtcbiAgICB0aGlzLl9vbkxvYWQgPSBvcHRpb25zLm9uTG9hZDtcbiAgICB0aGlzLl9vblNhdmVGbiA9IG9wdGlvbnMub25TYXZlO1xuICAgIHRoaXMuX2VxdWFsc0ZuID0gb3B0aW9ucy5lcXVhbHM7XG4gICAgdGhpcy5fZmlsdGVyRm5GYWN0b3J5ID1cbiAgICAgIG9wdGlvbnMuZmlsdGVyRm5GYWN0b3J5IHx8XG4gICAgICAoKGYpID0+IHtcbiAgICAgICAgY29uc3QgZmlsdGVyID0gdGhpcy5hc0ZpbHRlcihmKSBhcyBGO1xuICAgICAgICBpZiAoZmlsdGVyIGluc3RhbmNlb2YgRW50aXR5RmlsdGVyKSB7XG4gICAgICAgICAgcmV0dXJuIGZpbHRlci5hc0ZpbHRlckZuKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH0pO1xuICAgIHRoaXMuX3N0YXJ0QnlSZWFkeUZ1bmN0aW9uID0gZmFsc2U7IC8vIE5lZWQgc2V0VmFsdWUoKSB0byBiZSBjYWxsZWQsIHRvIHN0YXJ0IHRoZSBzZXJ2aWNlXG5cbiAgICB0aGlzLnNvcnRCeVJlcGxhY2VtZW50ID0ge1xuICAgICAgLi4ub3B0aW9ucy5zb3J0QnlSZXBsYWNlbWVudCxcbiAgICB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIG5nT25TdGFydChkYXRhPzogVFtdKTogUHJvbWlzZTxUW10+IHtcbiAgICBpZiAoIWRhdGEpIHRocm93IG5ldyBFcnJvcignTWlzc2luZyByZXF1aXJlZCBkYXRhLCB0byBzdGFydCB0aGlzIHNlcnZpY2UnKTtcbiAgICBpZiAodGhpcy5kZWJ1ZykgY29uc29sZS5kZWJ1ZygnW21lbW9yeS1kYXRhLXNlcnZpY2VdIFN0YXJ0aW5nLi4uJyk7XG4gICAgdGhpcy5faGlkZGVuRGF0YSA9IFtdO1xuICAgIHRoaXMubWFya0FzU2F2ZWQoKTtcbiAgICB0aGlzLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgbmdPblN0b3AoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuZGVidWcpIGNvbnNvbGUuZGVidWcoJ1ttZW1vcnktZGF0YS1zZXJ2aWNlXSBTdG9wcGluZy4uLicpO1xuICAgIHRoaXMuX2hpZGRlbkRhdGEgPSBudWxsO1xuICAgIHRoaXMubWFya0FzU2F2ZWQoKTtcbiAgICB0aGlzLm1hcmtBc1ByaXN0aW5lKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN0b3AoKTtcbiAgfVxuXG4gIHNldFZhbHVlKGRhdGE6IFRbXSkge1xuICAgIC8vIElmIHNlcnZpY2UgYWxyZWFkeSBzdGFydGVkXG4gICAgaWYgKHRoaXMuc3RhcnRlZCkge1xuICAgICAgLy8gVXBkYXRlIHRoZSBkYXRhLCBpZiBjaGFuZ2VkXG4gICAgICBpZiAodGhpcy5kYXRhU3ViamVjdC52YWx1ZSAhPT0gZGF0YSkge1xuICAgICAgICB0aGlzLl9oaWRkZW5EYXRhID0gW107XG4gICAgICAgIHRoaXMuZGF0YVN1YmplY3QubmV4dChkYXRhKTtcbiAgICAgIH1cblxuICAgICAgLy8gUmVzZXQgZGlydHkgYW5kIHNhdmluZyBzdGF0ZVxuICAgICAgLy8gKEZpeCBPYnNCaW8gaXNzdWUgb24gc2FtcGxlcyB0YWJsZSA6IHN0aWxsIGRpcnR5IGFmdGVyIHNldHRpbmcgdGhlIHNhbWUgdmFsdWUgYWdhaW4pXG4gICAgICB0aGlzLm1hcmtBc1NhdmVkKCk7XG4gICAgICB0aGlzLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgfVxuICAgIC8vIElmIHNlcnZpY2Ugbm90IHN0YXJ0ZWQgeWV0LCB0aGVuIHN0YXJ0IGl0LCB1c2luZyBnaXZlbiBkYXRhXG4gICAgZWxzZSB7XG4gICAgICB0aGlzLnN0YXJ0KGRhdGEpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGxvYWRBbGwoXG4gICAgb2Zmc2V0OiBudW1iZXIsXG4gICAgc2l6ZTogbnVtYmVyLFxuICAgIHNvcnRCeT86IHN0cmluZyxcbiAgICBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvbixcbiAgICBmaWx0ZXI/OiBGLFxuICAgIG9wdHM/OiBFbnRpdGllc1NlcnZpY2VMb2FkT3B0aW9ucyAmIHsgdXBkYXRlSGlkZGVuRGF0YT86IGJvb2xlYW4gfVxuICApOiBQcm9taXNlPExvYWRSZXN1bHQ8VD4+IHtcbiAgICBvZmZzZXQgPSBvZmZzZXQgPj0gMCA/IG9mZnNldCA6IDA7XG4gICAgc2l6ZSA9IHNpemUgPj0gMCA/IHNpemUgOiAtMTtcblxuICAgIGNvbnN0IG9yaWdpbmFsRGF0YSA9IHRoaXMuZGF0YVN1YmplY3QudmFsdWU7XG4gICAgaWYgKGlzTmlsKG9yaWdpbmFsRGF0YSkpIHtcbiAgICAgIGNvbnNvbGUud2FybignW21lbW9yeS1kYXRhLXNlcnZpY2VdIENhbm5vdCBsb2FkIGFsbDogbm8gdmFsdWUgc2V0LiBXaWxsIHJldHVybiBlbXB0eSByZXN1bHQnKTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgLy8gV2FpdCBzZXJ2aWNlIGlzIHJlYWR5XG4gICAgICBhd2FpdCB0aGlzLnJlYWR5KCk7XG5cbiAgICAgIC8vIFdhaXQgd2hpbGUgYnVzeSAoZS5nLiB3aGVuIHNhdmluZywgb3IgZGVsZXRpbmcpXG4gICAgICBhd2FpdCB0aGlzLndhaXRJZGxlKHsgc3RvcEVycm9yOiBmYWxzZSAvKmF2b2lkIGVycm9yIHdoZW4gc3RvcHBlZCovIH0pO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgLy8gU2hvdWxkIGJlIGEgc3RvcCBlcnJvcjogbG9nIGFuZCBjb250aW51ZVxuICAgICAgaWYgKCF0aGlzLnN0b3BwZWQpIGNvbnNvbGUuZXJyb3IoJ1VuZXhwZWN0ZWQgZXJyb3IsIHdoaWxlIHdhaXRpbmcgOicsIGVycik7XG4gICAgfVxuXG4gICAgLy8gTWFrZSBzdXJlIHNlcnZpY2UgaXMgbm90IHN0b3BwZWRcbiAgICBpZiAodGhpcy5zdG9wcGVkKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgZXhjbHVkZWREYXRhQnlGaWx0ZXI6IFRbXSA9IFtdO1xuICAgIGxldCBleGNsdWRlZERhdGFCeVBhZ2luYXRpb246IFRbXTtcblxuICAgIHRyeSB7XG4gICAgICBpZiAoaXNFbXB0eUFycmF5KG9yaWdpbmFsRGF0YSkpIHtcbiAgICAgICAgcmV0dXJuIHsgZGF0YTogW10sIHRvdGFsOiAwIH07XG4gICAgICB9XG5cbiAgICAgIC8vIEFwcGx5IHNvcnRcbiAgICAgIGxldCBkYXRhID0gdGhpcy5fc29ydEZuKG9yaWdpbmFsRGF0YSwgc29ydEJ5LCBzb3J0RGlyZWN0aW9uKTtcblxuICAgICAgaWYgKHRoaXMuX29uTG9hZCkge1xuICAgICAgICBkYXRhID0gYXdhaXQgdGhpcy5fb25Mb2FkKGRhdGEpO1xuICAgICAgfVxuXG4gICAgICAvLyBBcHBseSBmaWx0ZXIgKHdpbGwgdXBkYXRlIGhpZGRlbkRhdGEpXG4gICAgICBkYXRhID0gdGhpcy5maWx0ZXIoZGF0YSwgZmlsdGVyLCBleGNsdWRlZERhdGFCeUZpbHRlcik7XG5cbiAgICAgIC8vIENvbXB1dGUgdGhlIHRvdGFsIGxlbmd0aFxuICAgICAgY29uc3QgdG90YWwgPSBkYXRhLmxlbmd0aDtcblxuICAgICAgLy8gSWYgcGFnZSBzaXplPTAgKGUuZy4gb25seSBuZWVkIHRvdGFsKVxuICAgICAgaWYgKHNpemUgPT09IDApIHtcbiAgICAgICAgZXhjbHVkZWREYXRhQnlQYWdpbmF0aW9uID0gZGF0YTtcbiAgICAgICAgcmV0dXJuIHsgZGF0YTogW10sIHRvdGFsIH07XG4gICAgICB9XG5cbiAgICAgIC8vIFNsaWNlIGluIGEgcGFnZSAodXNpbmcgb2Zmc2V0IGFuZCBzaXplKVxuICAgICAgaWYgKG9mZnNldCA+IDApIHtcbiAgICAgICAgLy8gT2Zmc2V0IGFmdGVyIHRoZSBlbmQ6IG5vIHJlc3VsdFxuICAgICAgICBpZiAob2Zmc2V0ID49IGRhdGEubGVuZ3RoKSB7XG4gICAgICAgICAgZXhjbHVkZWREYXRhQnlQYWdpbmF0aW9uID0gZGF0YTtcbiAgICAgICAgICBkYXRhID0gW107XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZXhjbHVkZWREYXRhQnlQYWdpbmF0aW9uID1cbiAgICAgICAgICAgIHNpemUgPiAwICYmIG9mZnNldCArIHNpemUgPCBkYXRhLmxlbmd0aFxuICAgICAgICAgICAgICA/IC8vIFNsaWNlIHVzaW5nIGxpbWl0IHRvIHNpemVcbiAgICAgICAgICAgICAgICBkYXRhLnNsaWNlKDAsIG9mZnNldCkuY29uY2F0KGRhdGEuc2xpY2Uob2Zmc2V0ICsgc2l6ZSkpXG4gICAgICAgICAgICAgIDogLy8gU2xpY2Ugd2l0aG91dCBsaW1pdFxuICAgICAgICAgICAgICAgIGRhdGEuc2xpY2UoMCwgb2Zmc2V0KTtcblxuICAgICAgICAgIGRhdGEgPVxuICAgICAgICAgICAgc2l6ZSA+IDAgJiYgb2Zmc2V0ICsgc2l6ZSA8IGRhdGEubGVuZ3RoXG4gICAgICAgICAgICAgID8gLy8gU2xpY2UgdXNpbmcgbGltaXQgdG8gc2l6ZVxuICAgICAgICAgICAgICAgIGRhdGEuc2xpY2Uob2Zmc2V0LCBvZmZzZXQgKyBzaXplKVxuICAgICAgICAgICAgICA6IC8vIFNsaWNlIHdpdGhvdXQgbGltaXRcbiAgICAgICAgICAgICAgICBkYXRhLnNsaWNlKG9mZnNldCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gQXBwbHkgYSBsaW1pdFxuICAgICAgZWxzZSBpZiAoc2l6ZSA+IDApIHtcbiAgICAgICAgZXhjbHVkZWREYXRhQnlQYWdpbmF0aW9uID0gZGF0YS5zbGljZShzaXplKTtcbiAgICAgICAgZGF0YSA9IGRhdGEuc2xpY2UoMCwgc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIC8vIE5vIGxpbWl0OlxuICAgICAgZWxzZSBpZiAoc2l6ZSA9PT0gLTEpIHtcbiAgICAgICAgLy8gS2VlcCBhbGwgZGF0YVxuICAgICAgfVxuXG4gICAgICAvLyAvIVxcIElmIGFscmVhZHkgb2JzZXJ2ZWQsIHRoZW4gYWx3YXlzIGNyZWF0ZSBhIGNvcHkgb2YgdGhlIG9yaWdpbmFsIGFycmF5XG4gICAgICAvLyBCZWNhdXNlIGRhdGFzb3VyY2Ugd2lsbCBvbmx5IHVwZGF0ZSBpZiB0aGUgYXJyYXkgY2hhbmdlZFxuICAgICAgaWYgKGRhdGEgPT09IG9yaWdpbmFsRGF0YSkge1xuICAgICAgICBkYXRhID0gZGF0YS5zbGljZSgpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCByZXM6IExvYWRSZXN1bHQ8VD4gPSB7IGRhdGEsIHRvdGFsIH07XG5cbiAgICAgIGNvbnN0IG5leHRPZmZzZXQgPSBzaXplID4gMCA/IChvZmZzZXQgfHwgMCkgKyBzaXplIDogdG90YWw7XG4gICAgICBpZiAobmV4dE9mZnNldCA8IHRvdGFsKSB7XG4gICAgICAgIHJlcy5mZXRjaE1vcmUgPSAoKSA9PlxuICAgICAgICAgIHRoaXMubG9hZEFsbChuZXh0T2Zmc2V0LCBzaXplLCBzb3J0QnksIHNvcnREaXJlY3Rpb24sIGZpbHRlciwgeyAuLi5vcHRzLCB1cGRhdGVIaWRkZW5EYXRhOiBmYWxzZSB9KS50aGVuKChyZXMpID0+IHtcbiAgICAgICAgICAgIC8vIFVwZGF0ZSBoaWRkZW4gZGF0YSAocmVtb3ZlIG5ldyBmZXRjaGVkIGl0ZW0pXG4gICAgICAgICAgICBpZiAocmVzLmRhdGE/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICB0aGlzLl9oaWRkZW5EYXRhID0gdGhpcy5faGlkZGVuRGF0YT8uZmlsdGVyKChpdGVtKSA9PiAhcmVzLmRhdGEuaW5jbHVkZXMoaXRlbSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlcztcbiAgICB9IGZpbmFsbHkge1xuICAgICAgLy8gUmVtZW1iZXIgaGlkZGVuIGRhdGFcbiAgICAgIGlmIChvcHRzPy51cGRhdGVIaWRkZW5EYXRhICE9PSBmYWxzZSkge1xuICAgICAgICB0aGlzLl9oaWRkZW5EYXRhID0gIWV4Y2x1ZGVkRGF0YUJ5UGFnaW5hdGlvbiA/IGV4Y2x1ZGVkRGF0YUJ5RmlsdGVyIDogZXhjbHVkZWREYXRhQnlGaWx0ZXIuY29uY2F0KC4uLmV4Y2x1ZGVkRGF0YUJ5UGFnaW5hdGlvbik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgd2F0Y2hBbGwob2Zmc2V0OiBudW1iZXIsIHNpemU6IG51bWJlciwgc29ydEJ5Pzogc3RyaW5nLCBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvbiwgZmlsdGVyRGF0YT86IEYsIG9wdGlvbnM/OiBhbnkpOiBPYnNlcnZhYmxlPExvYWRSZXN1bHQ8VD4+IHtcbiAgICBvZmZzZXQgPSBvZmZzZXQgPj0gMCA/IG9mZnNldCA6IDA7XG4gICAgc2l6ZSA9IHNpemUgPj0gMCA/IHNpemUgOiAtMTtcblxuICAgIHJldHVybiB0aGlzLmRhdGFTdWJqZWN0LnBpcGUoXG4gICAgICAvLyBXYXJuIGlmIHdhaXRpbmcgdmFsdWUgdG8gYmUgc2V0XG4gICAgICB0YXAoKGRhdGEpID0+IHRoaXMuZGVidWcgJiYgIWRhdGEgJiYgY29uc29sZS5kZWJ1ZygnW21lbW9yeS1kYXRhLXNlcnZpY2VdIFdhaXRpbmcgdmFsdWUgdG8gYmUgc2V0Li4uJykpLFxuICAgICAgZmlsdGVyKGlzTm90TmlsKSxcbiAgICAgIG1lcmdlTWFwKChfKSA9PiB0aGlzLmxvYWRBbGwob2Zmc2V0LCBzaXplLCBzb3J0QnksIHNvcnREaXJlY3Rpb24sIGZpbHRlckRhdGEsIG9wdGlvbnMpKSxcbiAgICAgIGZpbHRlcihpc05vdE5pbCksIC8vIFNraXAgbm8gcmVzdWx0IChlLmcuIHdoZW4gc3RvcHBlZClcbiAgICAgIHRha2VVbnRpbCh0aGlzLnN0b3BTdWJqZWN0KVxuICAgICk7XG4gIH1cblxuICBhc3luYyBzYXZlQWxsKGRhdGE6IFRbXSwgb3B0aW9ucz86IGFueSk6IFByb21pc2U8VFtdPiB7XG4gICAgaWYgKCF0aGlzLmRhdGFTdWJqZWN0LnZhbHVlKSB0aHJvdyBuZXcgRXJyb3IoJ1ttZW1vcnktc2VydmljZV0gQ291bGQgbm90IHNhdmUsIGJlY2F1c2UgdmFsdWUgbm90IHNldCcpO1xuXG4gICAgdGhpcy5tYXJrQXNTYXZpbmcoKTtcblxuICAgIHRyeSB7XG4gICAgICAvLyBSZXN0b3JlIGhpZGRlbiBkYXRhXG4gICAgICBpZiAoaXNOb3RFbXB0eUFycmF5KHRoaXMuX2hpZGRlbkRhdGEpKSBkYXRhID0gZGF0YS5jb25jYXQoLi4udGhpcy5faGlkZGVuRGF0YSk7XG5cbiAgICAgIGlmICh0aGlzLl9vblNhdmVGbikge1xuICAgICAgICBjb25zdCByZXMgPSB0aGlzLl9vblNhdmVGbihkYXRhKTtcbiAgICAgICAgZGF0YSA9IHJlcyBpbnN0YW5jZW9mIFByb21pc2UgPyBhd2FpdCByZXMgOiByZXM7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZGF0YVN1YmplY3QubmV4dChkYXRhKTtcbiAgICAgIHRoaXMubWFya0FzRGlydHkoKTtcbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLm1hcmtBc1NhdmVkKCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZGVsZXRlQWxsKGRhdGFUb1JlbW92ZTogVFtdLCBvcHRpb25zPzogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICBsZXQgZGF0YSA9IHRoaXMuZGF0YVN1YmplY3QudmFsdWU7XG4gICAgaWYgKCFkYXRhKSB0aHJvdyBuZXcgRXJyb3IoJ1ttZW1vcnktc2VydmljZV0gQ291bGQgbm90IGRlbGV0ZSwgYmVjYXVzZSB2YWx1ZSBub3Qgc2V0Jyk7XG5cbiAgICB0aGlzLm1hcmtBc1NhdmluZygpO1xuXG4gICAgdHJ5IHtcbiAgICAgIC8vIFJlbW92ZSBkZWxldGVkIGl0ZW0sIGZyb20gZGF0YVxuICAgICAgY29uc3QgdXBkYXRlZERhdGEgPSBkYXRhLmZpbHRlcigoZW50aXR5KSA9PiB7XG4gICAgICAgIGNvbnN0IHJlbW92ZWQgPSBkYXRhVG9SZW1vdmUuZmluZEluZGV4KChlbnRpdHlUb1JlbW92ZSkgPT4gdGhpcy5lcXVhbHMoZW50aXR5VG9SZW1vdmUsIGVudGl0eSkpICE9PSAtMTtcbiAgICAgICAgcmV0dXJuICFyZW1vdmVkO1xuICAgICAgfSk7XG4gICAgICBjb25zdCBkZWxldGVDb3VudCA9IGRhdGEubGVuZ3RoIC0gdXBkYXRlZERhdGEubGVuZ3RoO1xuICAgICAgaWYgKGRlbGV0ZUNvdW50ID4gMCkge1xuICAgICAgICBkYXRhID0gdXBkYXRlZERhdGE7XG4gICAgICAgIHRoaXMuZGF0YVN1YmplY3QubmV4dChkYXRhKTtcbiAgICAgICAgdGhpcy5tYXJrQXNEaXJ0eSgpO1xuICAgICAgfVxuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLm1hcmtBc1NhdmVkKCk7XG4gICAgfVxuICB9XG5cbiAgc29ydChkYXRhOiBUW10sIHNvcnRCeT86IHN0cmluZywgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb24pOiBUW10ge1xuICAgIC8vIE1ha2Ugc3VyZSB0byBmaWxsIHNvcnRCeSBCRUZPUkUgY2hlY2tpbmcgaW4gdGhlIHJlcGxhY2VtZW50IG1hcFxuICAgIHNvcnRCeSA9IHNvcnRCeSB8fCAnaWQnO1xuICAgIC8vIFJlcGxhY2Ugc29ydEJ5LCB1c2luZyB0aGUgcmVwbGFjZW1lbnQgbWFwXG4gICAgc29ydEJ5ID0gdGhpcy5zb3J0QnlSZXBsYWNlbWVudFtzb3J0QnldIHx8IHNvcnRCeTtcblxuICAgIC8vIEV4ZWN1dGUgdGhlIHNvcnRcbiAgICByZXR1cm4gRW50aXR5VXRpbHMuc29ydChkYXRhLCBzb3J0QnksIHNvcnREaXJlY3Rpb24pO1xuICB9XG5cbiAgYXNGaWx0ZXIoc291cmNlOiBQYXJ0aWFsPEY+KTogRiB7XG4gICAgcmV0dXJuIEVudGl0eUZpbHRlclV0aWxzLmZyb21PYmplY3Qoc291cmNlLCB0aGlzLmZpbHRlclR5cGUpO1xuICB9XG5cbiAgYWRkU29ydEJ5UmVwbGFjZW1lbnQoc291cmNlOiBzdHJpbmcsIHRhcmdldDogc3RyaW5nKSB7XG4gICAgdGhpcy5zb3J0QnlSZXBsYWNlbWVudFtzb3VyY2VdID0gdGFyZ2V0O1xuICB9XG5cbiAgZXF1YWxzKGQxOiBULCBkMjogVCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLl9lcXVhbHNGbikgcmV0dXJuIHRoaXMuX2VxdWFsc0ZuKGQxLCBkMik7XG4gICAgcmV0dXJuIGQxICYmIGQxLmVxdWFscyA/IGQxLmVxdWFscyhkMikgOiBFbnRpdHlVdGlscy5lcXVhbHMoZDEsIGQyLCAnaWQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb3VudCBkYXRhIHN0b3JlZCBieSB0aGUgc2VydmljZSAod2l0aG91dCBoaWRkZW4gZGF0YSkuXG4gICAqXG4gICAqIEBwYXJhbSBvcHRzXG4gICAqL1xuICAvLyBnZXQgdmlzaWJsZUNvdW50KCk6IG51bWJlciB7XG4gIC8vICAgcmV0dXJuICh0aGlzLmRhdGFTdWJqZWN0LnZhbHVlPy5sZW5ndGggfHwgMCk7XG4gIC8vIH1cblxuICAvKipcbiAgICogQ291bnQgZGF0YSBzdG9yZWQgYnkgdGhlIHNlcnZpY2UgKHdpdGhvdXQgaGlkZGVuIGRhdGEpLlxuICAgKlxuICAgKiBAcGFyYW0gb3B0c1xuICAgKiBAZGVwcmVjYXRlZCBUT0RPIFBsZWFzZSByZW5hbWUgdGhpcyBnZXR0ZXIgaW50byB2aXNpYmxlQ291bnQgKGFuZCBjcmVhdGUgY291bnQgPSBoaWRkZW5Db3VudCArIHZpc2libGVDb3VudClcbiAgICovXG4gIGdldCBjb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmRhdGFTdWJqZWN0LnZhbHVlPy5sZW5ndGggfHwgMDtcbiAgfVxuXG4gIGdldCBoaWRkZW5Db3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9oaWRkZW5EYXRhPy5sZW5ndGggfHwgMDtcbiAgfVxuXG4gIGFzeW5jIHdhaXRJZGxlKG9wdHM/OiBXYWl0Rm9yT3B0aW9ucykge1xuICAgIGF3YWl0IHRoaXMud2FpdFdoaWxlU2F2aW5nKG9wdHMpO1xuICB9XG5cbiAgbWFya0FzRGlydHkoKSB7XG4gICAgaWYgKCF0aGlzLmRpcnR5U3ViamVjdC52YWx1ZSkge1xuICAgICAgdGhpcy5kaXJ0eVN1YmplY3QubmV4dCh0cnVlKTtcbiAgICB9XG4gIH1cblxuICBtYXJrQXNQcmlzdGluZSgpIHtcbiAgICBpZiAodGhpcy5kaXJ0eVN1YmplY3QudmFsdWUpIHtcbiAgICAgIHRoaXMuZGlydHlTdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIC8qIC0tIHByb3RlY3RlZCBtZXRob2RzIC0tICovXG5cbiAgcHJvdGVjdGVkIGZpbHRlcihkYXRhOiBUW10sIF9maWx0ZXI6IEYsIGhpZGRlbkRhdGE6IFRbXSk6IFRbXSB7XG4gICAgLy8gaWYgZmlsdGVyIGlzIERhdGFGaWx0ZXIgaW5zdGFuY2UsIHVzZSBpdHMgdGVzdCBmdW5jdGlvblxuICAgIGNvbnN0IGZpbHRlckZuID0gdGhpcy5fZmlsdGVyRm5GYWN0b3J5ICYmIHRoaXMuX2ZpbHRlckZuRmFjdG9yeShfZmlsdGVyKTtcbiAgICBpZiAoZmlsdGVyRm4pIHtcbiAgICAgIGNvbnN0IGZpbHRlcmVkRGF0YSA9IFtdO1xuXG4gICAgICBkYXRhLmZvckVhY2goKHZhbHVlKSA9PiB7XG4gICAgICAgIGlmIChmaWx0ZXJGbih2YWx1ZSkpIGZpbHRlcmVkRGF0YS5wdXNoKHZhbHVlKTtcbiAgICAgICAgZWxzZSBoaWRkZW5EYXRhLnB1c2godmFsdWUpO1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBmaWx0ZXJlZERhdGE7XG4gICAgfVxuXG4gICAgLy8gZGVmYXVsdCwgbm8gZmlsdGVyXG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBwcm90ZWN0ZWQgY29ubmVjdCgpOiBPYnNlcnZhYmxlPExvYWRSZXN1bHQ8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5kYXRhU3ViamVjdC5waXBlKFxuICAgICAgbWFwKChkYXRhKSA9PiB7XG4gICAgICAgIGRhdGEgPSBkYXRhIHx8IFtdO1xuICAgICAgICBjb25zdCB0b3RhbCA9IGRhdGEubGVuZ3RoO1xuICAgICAgICByZXR1cm4geyBkYXRhLCB0b3RhbCB9O1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHdhaXRXaGlsZVNhdmluZyhvcHRzPzogV2FpdEZvck9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5zYXZpbmcpIHtcbiAgICAgIHJldHVybiBmaXJzdEZhbHNlUHJvbWlzZSh0aGlzLnNhdmluZ1N1YmplY3QsIHtcbiAgICAgICAgc3RvcDogb3B0cz8uc3RvcCB8fCBtZXJnZSh0aGlzLnN0b3BTdWJqZWN0LCB0aGlzLmRhdGFTdWJqZWN0KSwgLy8gU3RvcCBpZiBkZXN0cm95ZWQgb3IgbmV3IGRhdGEgUmVjZWl2ZWRcbiAgICAgICAgc3RvcEVycm9yOiBmYWxzZSwgLy8gQXZvaWQgZXJyb3Igd2hlbiBzdG9wcGVkXG4gICAgICAgIC4uLm9wdHMsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgbWFya0FzU2F2aW5nKCkge1xuICAgIGlmICghdGhpcy5zYXZpbmdTdWJqZWN0LnZhbHVlKSB7XG4gICAgICB0aGlzLnNhdmluZ1N1YmplY3QubmV4dCh0cnVlKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgbWFya0FzU2F2ZWQoKSB7XG4gICAgaWYgKHRoaXMuc2F2aW5nU3ViamVjdC52YWx1ZSkge1xuICAgICAgdGhpcy5zYXZpbmdTdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -21,11 +21,11 @@ export class ProgressBarService {
21
21
  this.onProgressChanged.emit(null);
22
22
  }
23
23
  }
24
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: ProgressBarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
25
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: ProgressBarService, providedIn: 'root' });
24
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ProgressBarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
25
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ProgressBarService, providedIn: 'root' });
26
26
  }
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: ProgressBarService, decorators: [{
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ProgressBarService, decorators: [{
28
28
  type: Injectable,
29
29
  args: [{ providedIn: 'root' }]
30
30
  }] });
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MtYmFyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9zZXJ2aWNlcy9wcm9ncmVzcy1iYXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBR3pFLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUFzQixvQkFBb0IsQ0FBQyxDQUFDO0FBWXRHLE1BQU0sT0FBTyxrQkFBa0I7SUFDckIsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO0lBRTdCLGlCQUFpQixHQUFHLElBQUksWUFBWSxFQUFtQixDQUFDO0lBRXhELElBQUk7UUFDQSxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksSUFBSSxDQUFDLGdCQUFnQixLQUFLLENBQUMsRUFBRTtZQUM3QixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3hDO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLEVBQUU7WUFDM0IsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7U0FDM0I7UUFDRCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxDQUFDLEVBQUU7WUFDL0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNuQztJQUNILENBQUM7dUdBdkJVLGtCQUFrQjsyR0FBbEIsa0JBQWtCLGNBRE4sTUFBTTs7MkZBQ2xCLGtCQUFrQjtrQkFEOUIsVUFBVTttQkFBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1Byb2dyZXNzQmFyTW9kZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyJztcblxuZXhwb3J0IGNvbnN0IEFQUF9QUk9HUkVTU19CQVJfU0VSVklDRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJUHJvZ3Jlc3NCYXJTZXJ2aWNlPignUHJvZ3Jlc3NCYXJTZXJ2aWNlJyk7XG5cbmV4cG9ydCBkZWNsYXJlIHR5cGUgUHJvZ3Jlc3NNb2RlID0gUHJvZ3Jlc3NCYXJNb2RlO1xuXG5leHBvcnQgaW50ZXJmYWNlIElQcm9ncmVzc0JhclNlcnZpY2Uge1xuICBvblByb2dyZXNzQ2hhbmdlZDogRXZlbnRFbWl0dGVyPFByb2dyZXNzQmFyTW9kZT47XG4gIGxpc3QoKTogbnVtYmVyO1xuICBpbmNyZWFzZSgpO1xuICBkZWNyZWFzZSgpO1xufVxuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBQcm9ncmVzc0JhclNlcnZpY2UgaW1wbGVtZW50cyBJUHJvZ3Jlc3NCYXJTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBfcmVxdWVzdHNSdW5uaW5nID0gMDtcblxuICBvblByb2dyZXNzQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8UHJvZ3Jlc3NCYXJNb2RlPigpO1xuXG4gIGxpc3QoKTogbnVtYmVyIHtcbiAgICAgIHJldHVybiB0aGlzLl9yZXF1ZXN0c1J1bm5pbmc7XG4gIH1cblxuICBpbmNyZWFzZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9yZXF1ZXN0c1J1bm5pbmcrKztcbiAgICBpZiAodGhpcy5fcmVxdWVzdHNSdW5uaW5nID09PSAxKSB7XG4gICAgICAgIHRoaXMub25Qcm9ncmVzc0NoYW5nZWQuZW1pdCgncXVlcnknKTtcbiAgICB9XG4gIH1cblxuICBkZWNyZWFzZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fcmVxdWVzdHNSdW5uaW5nID4gMCkge1xuICAgICAgICB0aGlzLl9yZXF1ZXN0c1J1bm5pbmctLTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX3JlcXVlc3RzUnVubmluZyA9PT0gMCkge1xuICAgICAgdGhpcy5vblByb2dyZXNzQ2hhbmdlZC5lbWl0KG51bGwpO1xuICAgIH1cbiAgfVxuXG5cbn1cbiJdfQ==
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MtYmFyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9zZXJ2aWNlcy9wcm9ncmVzcy1iYXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBR3pFLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUFzQixvQkFBb0IsQ0FBQyxDQUFDO0FBWXRHLE1BQU0sT0FBTyxrQkFBa0I7SUFDckIsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO0lBRTdCLGlCQUFpQixHQUFHLElBQUksWUFBWSxFQUFtQixDQUFDO0lBRXhELElBQUk7UUFDRixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUMvQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksSUFBSSxDQUFDLGdCQUFnQixLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkMsQ0FBQztJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDMUIsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLGdCQUFnQixLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsQ0FBQztJQUNILENBQUM7dUdBdkJVLGtCQUFrQjsyR0FBbEIsa0JBQWtCLGNBREwsTUFBTTs7MkZBQ25CLGtCQUFrQjtrQkFEOUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQcm9ncmVzc0Jhck1vZGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1iYXInO1xuXG5leHBvcnQgY29uc3QgQVBQX1BST0dSRVNTX0JBUl9TRVJWSUNFID0gbmV3IEluamVjdGlvblRva2VuPElQcm9ncmVzc0JhclNlcnZpY2U+KCdQcm9ncmVzc0JhclNlcnZpY2UnKTtcblxuZXhwb3J0IGRlY2xhcmUgdHlwZSBQcm9ncmVzc01vZGUgPSBQcm9ncmVzc0Jhck1vZGU7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVByb2dyZXNzQmFyU2VydmljZSB7XG4gIG9uUHJvZ3Jlc3NDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8UHJvZ3Jlc3NCYXJNb2RlPjtcbiAgbGlzdCgpOiBudW1iZXI7XG4gIGluY3JlYXNlKCk7XG4gIGRlY3JlYXNlKCk7XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgUHJvZ3Jlc3NCYXJTZXJ2aWNlIGltcGxlbWVudHMgSVByb2dyZXNzQmFyU2VydmljZSB7XG4gIHByaXZhdGUgX3JlcXVlc3RzUnVubmluZyA9IDA7XG5cbiAgb25Qcm9ncmVzc0NoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFByb2dyZXNzQmFyTW9kZT4oKTtcblxuICBsaXN0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3JlcXVlc3RzUnVubmluZztcbiAgfVxuXG4gIGluY3JlYXNlKCk6IHZvaWQge1xuICAgIHRoaXMuX3JlcXVlc3RzUnVubmluZysrO1xuICAgIGlmICh0aGlzLl9yZXF1ZXN0c1J1bm5pbmcgPT09IDEpIHtcbiAgICAgIHRoaXMub25Qcm9ncmVzc0NoYW5nZWQuZW1pdCgncXVlcnknKTtcbiAgICB9XG4gIH1cblxuICBkZWNyZWFzZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fcmVxdWVzdHNSdW5uaW5nID4gMCkge1xuICAgICAgdGhpcy5fcmVxdWVzdHNSdW5uaW5nLS07XG4gICAgfVxuICAgIGlmICh0aGlzLl9yZXF1ZXN0c1J1bm5pbmcgPT09IDApIHtcbiAgICAgIHRoaXMub25Qcm9ncmVzc0NoYW5nZWQuZW1pdChudWxsKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==