@sumaris-net/ngx-components 2.7.2-rc9 → 2.7.3-rc2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (378) hide show
  1. package/doc/changelog.md +36 -0
  2. package/esm2022/public_api.mjs +11 -9
  3. package/esm2022/src/app/admin/admin-routing.module.mjs +10 -17
  4. package/esm2022/src/app/admin/admin.module.mjs +7 -9
  5. package/esm2022/src/app/admin/services/filter/person.filter.mjs +3 -3
  6. package/esm2022/src/app/admin/services/person.service.mjs +31 -31
  7. package/esm2022/src/app/admin/services/validator/person.validator.mjs +10 -10
  8. package/esm2022/src/app/admin/users/users.mjs +14 -7
  9. package/esm2022/src/app/admin/users/users.module.mjs +8 -10
  10. package/esm2022/src/app/core/about/about.modal.mjs +7 -7
  11. package/esm2022/src/app/core/about/about.module.mjs +8 -21
  12. package/esm2022/src/app/core/account/account.module.mjs +9 -15
  13. package/esm2022/src/app/core/account/account.page.mjs +5 -5
  14. package/esm2022/src/app/core/account/new-token.modal.mjs +9 -8
  15. package/esm2022/src/app/core/account/token.table.mjs +5 -5
  16. package/esm2022/src/app/core/auth/auth.form.mjs +9 -9
  17. package/esm2022/src/app/core/auth/auth.modal.mjs +6 -6
  18. package/esm2022/src/app/core/auth/auth.module.mjs +9 -9
  19. package/esm2022/src/app/core/core.module.mjs +17 -46
  20. package/esm2022/src/app/core/core.testing.module.mjs +15 -15
  21. package/esm2022/src/app/core/form/buttons/form-buttons-bar.component.mjs +16 -15
  22. package/esm2022/src/app/core/form/buttons/form-buttons-bar.module.mjs +9 -13
  23. package/esm2022/src/app/core/form/entity/editor.class.mjs +87 -89
  24. package/esm2022/src/app/core/form/entity/entity-editor-modal.class.mjs +12 -17
  25. package/esm2022/src/app/core/form/entity/entity-editor.class.mjs +31 -32
  26. package/esm2022/src/app/core/form/entity/entity-metadata.component.mjs +5 -5
  27. package/esm2022/src/app/core/form/entity/entity.module.mjs +8 -14
  28. package/esm2022/src/app/core/form/form.class.mjs +12 -12
  29. package/esm2022/src/app/core/form/form.module.mjs +8 -8
  30. package/esm2022/src/app/core/form/form.utils.mjs +25 -23
  31. package/esm2022/src/app/core/form/list/list.form.mjs +13 -12
  32. package/esm2022/src/app/core/form/list/list.module.mjs +8 -12
  33. package/esm2022/src/app/core/form/properties/properties.form.mjs +12 -15
  34. package/esm2022/src/app/core/form/properties/properties.module.mjs +9 -15
  35. package/esm2022/src/app/core/form/properties/properties.table.mjs +24 -26
  36. package/esm2022/src/app/core/form/properties/property.validator.mjs +6 -6
  37. package/esm2022/src/app/core/form/properties/testing/properties-form.test.mjs +18 -18
  38. package/esm2022/src/app/core/form/properties/testing/properties-form.testing.module.mjs +8 -24
  39. package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.mjs +9 -8
  40. package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.module.mjs +10 -25
  41. package/esm2022/src/app/core/form/text-popover/text-popover.component.mjs +6 -6
  42. package/esm2022/src/app/core/form/text-popover/text-popover.module.mjs +9 -13
  43. package/esm2022/src/app/core/graphql/graphql.module.mjs +8 -13
  44. package/esm2022/src/app/core/graphql/graphql.service.mjs +71 -95
  45. package/esm2022/src/app/core/graphql/graphql.utils.mjs +12 -11
  46. package/esm2022/src/app/core/home/home.mjs +26 -27
  47. package/esm2022/src/app/core/home/home.module.mjs +10 -19
  48. package/esm2022/src/app/core/icon/icon.component.mjs +5 -5
  49. package/esm2022/src/app/core/icon/icon.module.mjs +8 -17
  50. package/esm2022/src/app/core/install/install-upgrade-card.component.mjs +33 -37
  51. package/esm2022/src/app/core/install/install-upgrade-card.module.mjs +9 -13
  52. package/esm2022/src/app/core/menu/menu.component.mjs +5 -6
  53. package/esm2022/src/app/core/menu/menu.model.mjs +21 -18
  54. package/esm2022/src/app/core/menu/menu.module.mjs +7 -12
  55. package/esm2022/src/app/core/menu/menu.service.mjs +44 -60
  56. package/esm2022/src/app/core/menu/sub-menu-tab.directive.mjs +4 -4
  57. package/esm2022/src/app/core/menu/testing/menu-other.testing.mjs +5 -5
  58. package/esm2022/src/app/core/menu/testing/menu.testing.mjs +5 -5
  59. package/esm2022/src/app/core/menu/testing/menu.testing.module.mjs +8 -27
  60. package/esm2022/src/app/core/offline/update-offline-mode-card.component.mjs +6 -7
  61. package/esm2022/src/app/core/offline/update-offline-mode-card.module.mjs +9 -13
  62. package/esm2022/src/app/core/peer/select-peer.modal.mjs +8 -9
  63. package/esm2022/src/app/core/peer/select-peer.module.mjs +10 -19
  64. package/esm2022/src/app/core/register/register-confirm.page.mjs +12 -12
  65. package/esm2022/src/app/core/register/register.form.mjs +5 -5
  66. package/esm2022/src/app/core/register/register.modal.mjs +6 -6
  67. package/esm2022/src/app/core/register/register.module.mjs +8 -29
  68. package/esm2022/src/app/core/services/account.service.mjs +172 -160
  69. package/esm2022/src/app/core/services/auth-guard.service.mjs +13 -15
  70. package/esm2022/src/app/core/services/base-entity-service.class.mjs +51 -60
  71. package/esm2022/src/app/core/services/base-graphql-service.class.mjs +39 -33
  72. package/esm2022/src/app/core/services/base58.mjs +8 -4
  73. package/esm2022/src/app/core/services/config/core.config.mjs +37 -37
  74. package/esm2022/src/app/core/services/config.service.mjs +51 -49
  75. package/esm2022/src/app/core/services/crypto.service.mjs +11 -11
  76. package/esm2022/src/app/core/services/errors.mjs +3 -3
  77. package/esm2022/src/app/core/services/local-settings.service.mjs +36 -37
  78. package/esm2022/src/app/core/services/model/account.model.mjs +12 -17
  79. package/esm2022/src/app/core/services/model/config.model.mjs +5 -5
  80. package/esm2022/src/app/core/services/model/department.model.mjs +3 -2
  81. package/esm2022/src/app/core/services/model/entity.decorators.mjs +6 -6
  82. package/esm2022/src/app/core/services/model/entity.model.mjs +25 -25
  83. package/esm2022/src/app/core/services/model/filter.model.mjs +12 -15
  84. package/esm2022/src/app/core/services/model/history.model.mjs +1 -1
  85. package/esm2022/src/app/core/services/model/model.enum.mjs +2 -2
  86. package/esm2022/src/app/core/services/model/peer.model.mjs +9 -8
  87. package/esm2022/src/app/core/services/model/person.model.mjs +18 -17
  88. package/esm2022/src/app/core/services/model/referential.model.mjs +13 -13
  89. package/esm2022/src/app/core/services/model/settings.model.mjs +1 -1
  90. package/esm2022/src/app/core/services/model/token.model.mjs +2 -3
  91. package/esm2022/src/app/core/services/model/tree-item-entity.model.mjs +2 -6
  92. package/esm2022/src/app/core/services/network.service.mjs +42 -43
  93. package/esm2022/src/app/core/services/network.types.mjs +1 -1
  94. package/esm2022/src/app/core/services/network.utils.mjs +3 -3
  95. package/esm2022/src/app/core/services/pipes/account.pipes.mjs +11 -11
  96. package/esm2022/src/app/core/services/pipes/department-to-string.pipe.mjs +6 -6
  97. package/esm2022/src/app/core/services/pipes/person-to-string.pipe.mjs +6 -6
  98. package/esm2022/src/app/core/services/pipes/pipes.module.mjs +54 -0
  99. package/esm2022/src/app/core/services/pipes/referential-to-string.pipe.mjs +21 -0
  100. package/esm2022/src/app/core/services/pipes/usage-mode.pipes.mjs +11 -11
  101. package/esm2022/src/app/core/services/platform.service.mjs +45 -49
  102. package/esm2022/src/app/core/services/storage/entities-storage.service.mjs +32 -39
  103. package/esm2022/src/app/core/services/storage/entity-store.class.mjs +36 -45
  104. package/esm2022/src/app/core/services/testing/referential-filter.model.mjs +1 -1
  105. package/esm2022/src/app/core/services/testing/referential.validator.mjs +14 -14
  106. package/esm2022/src/app/core/services/validator/account.validator.mjs +5 -5
  107. package/esm2022/src/app/core/services/validator/base.validator.class.mjs +4 -4
  108. package/esm2022/src/app/core/services/validator/local-settings.validator.mjs +13 -13
  109. package/esm2022/src/app/core/services/validator/user-settings.validator.mjs +5 -5
  110. package/esm2022/src/app/core/services/validator/user-token.validator.mjs +12 -9
  111. package/esm2022/src/app/core/settings/settings.module.mjs +8 -21
  112. package/esm2022/src/app/core/settings/settings.page.mjs +12 -17
  113. package/esm2022/src/app/core/table/actions-column.component.mjs +13 -5
  114. package/esm2022/src/app/core/table/async-table.class.mjs +106 -112
  115. package/esm2022/src/app/core/table/entities-async-table-datasource.class.mjs +21 -26
  116. package/esm2022/src/app/core/table/entities-table-datasource.class.mjs +26 -29
  117. package/esm2022/src/app/core/table/memory-table.class.mjs +4 -4
  118. package/esm2022/src/app/core/table/table-select-columns.component.mjs +8 -8
  119. package/esm2022/src/app/core/table/table.class.mjs +107 -110
  120. package/esm2022/src/app/core/table/table.model.mjs +1 -1
  121. package/esm2022/src/app/core/table/table.module.mjs +8 -12
  122. package/esm2022/src/app/core/table/table.utils.mjs +2 -4
  123. package/esm2022/src/app/core/table/testing/table-validator.service.mjs +3 -3
  124. package/esm2022/src/app/core/table/testing/table.testing.mjs +9 -9
  125. package/esm2022/src/app/core/table/testing/table.testing.module.mjs +8 -33
  126. package/esm2022/src/app/core/table/testing/table2-validator.service.mjs +4 -4
  127. package/esm2022/src/app/core/table/testing/table2.testing.mjs +28 -26
  128. package/esm2022/src/app/shared/alerts.mjs +37 -35
  129. package/esm2022/src/app/shared/audio/audio.mjs +25 -27
  130. package/esm2022/src/app/shared/audio/audio.testing.mjs +5 -5
  131. package/esm2022/src/app/shared/audio/audio.testing.module.mjs +10 -25
  132. package/esm2022/src/app/shared/capacitor/keyboard.mjs +5 -5
  133. package/esm2022/src/app/shared/capacitor/plugins.mjs +1 -1
  134. package/esm2022/src/app/shared/constants.mjs +2 -3
  135. package/esm2022/src/app/shared/dates.mjs +5 -8
  136. package/esm2022/src/app/shared/debug/debug-service.class.mjs +1 -1
  137. package/esm2022/src/app/shared/debug/debug.component.mjs +5 -5
  138. package/esm2022/src/app/shared/debug/debug.module.mjs +8 -29
  139. package/esm2022/src/app/shared/directives/autofocus.directive.mjs +8 -12
  140. package/esm2022/src/app/shared/directives/autotitle.directive.mjs +3 -3
  141. package/esm2022/src/app/shared/directives/directives.module.mjs +8 -29
  142. package/esm2022/src/app/shared/directives/drag-and-drop.directive.mjs +4 -4
  143. package/esm2022/src/app/shared/directives/ng-var.directive.mjs +4 -4
  144. package/esm2022/src/app/shared/directives/resizable/resizable.component.mjs +3 -3
  145. package/esm2022/src/app/shared/directives/resizable/resizable.directive.mjs +4 -4
  146. package/esm2022/src/app/shared/directives/resizable/resizable.module.mjs +4 -4
  147. package/esm2022/src/app/shared/events.mjs +6 -8
  148. package/esm2022/src/app/shared/file/csv.utils.mjs +22 -18
  149. package/esm2022/src/app/shared/file/file.service.mjs +11 -15
  150. package/esm2022/src/app/shared/file/file.utils.mjs +13 -11
  151. package/esm2022/src/app/shared/file/images.utils.mjs +4 -4
  152. package/esm2022/src/app/shared/file/json.utils.mjs +3 -4
  153. package/esm2022/src/app/shared/file/uri.utils.mjs +1 -1
  154. package/esm2022/src/app/shared/focusable.mjs +1 -1
  155. package/esm2022/src/app/shared/form/field.component.mjs +33 -30
  156. package/esm2022/src/app/shared/form/field.model.mjs +4 -4
  157. package/esm2022/src/app/shared/form/loading-spinner.mjs +5 -5
  158. package/esm2022/src/app/shared/forms.mjs +30 -33
  159. package/esm2022/src/app/shared/functions.mjs +70 -65
  160. package/esm2022/src/app/shared/geolocation/geolocation.utils.mjs +14 -14
  161. package/esm2022/src/app/shared/gesture/gesture-config.mjs +9 -9
  162. package/esm2022/src/app/shared/gesture/hammer.utils.mjs +1 -1
  163. package/esm2022/src/app/shared/graph/colors.utils.mjs +14 -18
  164. package/esm2022/src/app/shared/graph/graph-colors.mjs +16 -22
  165. package/esm2022/src/app/shared/guard/component-dirty.guard.mjs +4 -4
  166. package/esm2022/src/app/shared/help/help.modal.mjs +6 -6
  167. package/esm2022/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +5 -5
  168. package/esm2022/src/app/shared/hotkeys/hotkeys.service.mjs +10 -11
  169. package/esm2022/src/app/shared/hotkeys/shared-hotkeys.module.mjs +9 -27
  170. package/esm2022/src/app/shared/http/http.utils.mjs +1 -1
  171. package/esm2022/src/app/shared/image/gallery/image-gallery.component.mjs +28 -27
  172. package/esm2022/src/app/shared/image/gallery/image-gallery.module.mjs +13 -10
  173. package/esm2022/src/app/shared/image/gallery/testing/gallegry.model.testing.mjs +1 -1
  174. package/esm2022/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +14 -17
  175. package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.mjs +9 -13
  176. package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +14 -11
  177. package/esm2022/src/app/shared/image/image.model.mjs +1 -1
  178. package/esm2022/src/app/shared/image/image.module.mjs +8 -13
  179. package/esm2022/src/app/shared/image/image.service.mjs +14 -12
  180. package/esm2022/src/app/shared/inputs.mjs +19 -20
  181. package/esm2022/src/app/shared/interceptors/progess.interceptor.mjs +2 -3
  182. package/esm2022/src/app/shared/logging/log-level.model.mjs +1 -1
  183. package/esm2022/src/app/shared/logging/logger.model.mjs +2 -2
  184. package/esm2022/src/app/shared/logging/logging-service.class.mjs +17 -20
  185. package/esm2022/src/app/shared/logging/logging-service.module.mjs +6 -6
  186. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.config.mjs +7 -10
  187. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.mjs +87 -96
  188. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +9 -15
  189. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.utils.mjs +2 -2
  190. package/esm2022/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +27 -26
  191. package/esm2022/src/app/shared/material/badge/badge.directive.mjs +45 -19
  192. package/esm2022/src/app/shared/material/badge/badge.module.mjs +8 -20
  193. package/esm2022/src/app/shared/material/badge/badge.test.mjs +5 -5
  194. package/esm2022/src/app/shared/material/boolean/boolean.module.mjs +9 -13
  195. package/esm2022/src/app/shared/material/boolean/material.boolean.mjs +262 -0
  196. package/esm2022/src/app/shared/material/boolean/testing/boolean.test.page.mjs +6 -6
  197. package/esm2022/src/app/shared/material/chips/chips.module.mjs +7 -11
  198. package/esm2022/src/app/shared/material/chips/material.chips.mjs +69 -70
  199. package/esm2022/src/app/shared/material/chips/testing/chips.test.mjs +17 -17
  200. package/esm2022/src/app/shared/material/datetime/datetime.module.mjs +5 -5
  201. package/esm2022/src/app/shared/material/datetime/material.date.mjs +37 -36
  202. package/esm2022/src/app/shared/material/datetime/material.dateshort.mjs +26 -33
  203. package/esm2022/src/app/shared/material/datetime/material.datetime.mjs +42 -38
  204. package/esm2022/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +20 -17
  205. package/esm2022/src/app/shared/material/datetime/testing/mat-date.test.mjs +22 -20
  206. package/esm2022/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +18 -17
  207. package/esm2022/src/app/shared/material/duration/duration.module.mjs +5 -5
  208. package/esm2022/src/app/shared/material/duration/duration.utils.mjs +3 -6
  209. package/esm2022/src/app/shared/material/duration/material.duration.mjs +23 -24
  210. package/esm2022/src/app/shared/material/duration/testing/mat-duration.test.mjs +17 -15
  211. package/esm2022/src/app/shared/material/latlong/latlong.utils.mjs +22 -24
  212. package/esm2022/src/app/shared/material/latlong/material.latlong.mjs +46 -41
  213. package/esm2022/src/app/shared/material/latlong/material.latlong.module.mjs +5 -5
  214. package/esm2022/src/app/shared/material/latlong/testing/latlong.test.mjs +5 -5
  215. package/esm2022/src/app/shared/material/material.animations.mjs +22 -22
  216. package/esm2022/src/app/shared/material/material.module.mjs +11 -11
  217. package/esm2022/src/app/shared/material/material.testing.module.mjs +26 -27
  218. package/esm2022/src/app/shared/material/paginator/material.paginator-i18n.mjs +8 -14
  219. package/esm2022/src/app/shared/material/stepper/material.stepper-i18n.mjs +4 -4
  220. package/esm2022/src/app/shared/material/swipe/material.swipe.mjs +15 -11
  221. package/esm2022/src/app/shared/material/swipe/swipe.module.mjs +7 -11
  222. package/esm2022/src/app/shared/material/swipe/testing/swipe.test.mjs +8 -8
  223. package/esm2022/src/app/shared/material/testing/common.test.mjs +17 -15
  224. package/esm2022/src/app/shared/material/text/testing/text-form.testing.mjs +6 -6
  225. package/esm2022/src/app/shared/material/text/text-form.component.mjs +17 -16
  226. package/esm2022/src/app/shared/material/text/text-form.module.mjs +8 -8
  227. package/esm2022/src/app/shared/modules.mjs +1 -1
  228. package/esm2022/src/app/shared/named-filter/named-filter-selector.component.mjs +6 -7
  229. package/esm2022/src/app/shared/named-filter/named-filter.model.mjs +1 -1
  230. package/esm2022/src/app/shared/named-filter/named-filter.module.mjs +5 -5
  231. package/esm2022/src/app/shared/named-filter/named-filter.service.mjs +6 -6
  232. package/esm2022/src/app/shared/observables.mjs +14 -18
  233. package/esm2022/src/app/shared/pipes/arrays.pipe.mjs +38 -38
  234. package/esm2022/src/app/shared/pipes/colors.pipe.mjs +5 -5
  235. package/esm2022/src/app/shared/pipes/date-diff-duration.pipe.mjs +8 -10
  236. package/esm2022/src/app/shared/pipes/date-format.pipe.mjs +14 -14
  237. package/esm2022/src/app/shared/pipes/date-from-now.pipe.mjs +6 -6
  238. package/esm2022/src/app/shared/pipes/duration.pipe.mjs +6 -6
  239. package/esm2022/src/app/shared/pipes/file-size.pipe.mjs +6 -13
  240. package/esm2022/src/app/shared/pipes/form.pipes.mjs +25 -25
  241. package/esm2022/src/app/shared/pipes/highlight.pipe.mjs +14 -14
  242. package/esm2022/src/app/shared/pipes/latlong-format.pipe.mjs +14 -14
  243. package/esm2022/src/app/shared/pipes/maps.pipe.mjs +17 -17
  244. package/esm2022/src/app/shared/pipes/maskito.pipe.mjs +11 -14
  245. package/esm2022/src/app/shared/pipes/math.pipes.mjs +16 -16
  246. package/esm2022/src/app/shared/pipes/ng-init.pipe.mjs +5 -5
  247. package/esm2022/src/app/shared/pipes/number-format.pipe.mjs +6 -6
  248. package/esm2022/src/app/shared/pipes/pipes.module.mjs +14 -22
  249. package/esm2022/src/app/shared/pipes/property.pipes.mjs +23 -25
  250. package/esm2022/src/app/shared/pipes/string.pipes.mjs +47 -48
  251. package/esm2022/src/app/shared/pipes/translate-context.pipe.mjs +11 -11
  252. package/esm2022/src/app/shared/pipes/types.pipes.mjs +17 -17
  253. package/esm2022/src/app/shared/platforms.mjs +7 -5
  254. package/esm2022/src/app/shared/rx-state.module.mjs +7 -11
  255. package/esm2022/src/app/shared/services/entity-service.class.mjs +2 -2
  256. package/esm2022/src/app/shared/services/job.utils.mjs +7 -7
  257. package/esm2022/src/app/shared/services/memory-entity-service.class.mjs +37 -35
  258. package/esm2022/src/app/shared/services/progress-bar.service.mjs +4 -4
  259. package/esm2022/src/app/shared/services/startable-observable-service.class.mjs +11 -14
  260. package/esm2022/src/app/shared/services/startable-service.class.mjs +11 -17
  261. package/esm2022/src/app/shared/services/translate-context.service.mjs +17 -14
  262. package/esm2022/src/app/shared/services/validator-service.class.mjs +1 -1
  263. package/esm2022/src/app/shared/services.mjs +10 -10
  264. package/esm2022/src/app/shared/shared-routing.module.mjs +19 -18
  265. package/esm2022/src/app/shared/shared.module.mjs +30 -27
  266. package/esm2022/src/app/shared/shared.testing.module.mjs +6 -6
  267. package/esm2022/src/app/shared/storage/storage-explorer.component.mjs +26 -28
  268. package/esm2022/src/app/shared/storage/storage-explorer.module.mjs +8 -12
  269. package/esm2022/src/app/shared/storage/storage-explorer.testing-routing.module.mjs +9 -17
  270. package/esm2022/src/app/shared/storage/storage-explorer.testing.module.mjs +10 -18
  271. package/esm2022/src/app/shared/storage/storage.service.mjs +4 -4
  272. package/esm2022/src/app/shared/storage/storage.utils.mjs +2 -2
  273. package/esm2022/src/app/shared/testing/observable.test.mjs +11 -13
  274. package/esm2022/src/app/shared/testing/tests.page.mjs +6 -6
  275. package/esm2022/src/app/shared/toast/toast.testing.mjs +10 -10
  276. package/esm2022/src/app/shared/toast/toast.testing.module.mjs +10 -25
  277. package/esm2022/src/app/shared/toast/toasts.mjs +9 -9
  278. package/esm2022/src/app/shared/toolbar/modal-toolbar.mjs +9 -7
  279. package/esm2022/src/app/shared/toolbar/toolbar.mjs +10 -15
  280. package/esm2022/src/app/shared/toolbar/toolbar.module.mjs +8 -39
  281. package/esm2022/src/app/shared/types.mjs +1 -1
  282. package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.mjs +8 -9
  283. package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +10 -25
  284. package/esm2022/src/app/shared/upload-file/upload-file-popover.component.mjs +7 -8
  285. package/esm2022/src/app/shared/upload-file/upload-file.component.mjs +17 -18
  286. package/esm2022/src/app/shared/upload-file/upload-file.model.mjs +2 -3
  287. package/esm2022/src/app/shared/validator/form-error-adapter.class.mjs +52 -50
  288. package/esm2022/src/app/shared/validator/validators.mjs +30 -30
  289. package/esm2022/src/app/shared/version/versions.mjs +2 -2
  290. package/esm2022/src/app/social/job/job.module.mjs +8 -27
  291. package/esm2022/src/app/social/job/progression/job-progression.component.mjs +9 -9
  292. package/esm2022/src/app/social/job/progression/job-progression.icon.mjs +27 -24
  293. package/esm2022/src/app/social/job/progression/job-progression.list.mjs +5 -7
  294. package/esm2022/src/app/social/job/progression/job-progression.model.mjs +1 -1
  295. package/esm2022/src/app/social/job/progression/job-progression.service.mjs +21 -17
  296. package/esm2022/src/app/social/job/testing/job-progression.testing.mjs +5 -5
  297. package/esm2022/src/app/social/job/testing/job-progression.testing.service.mjs +7 -7
  298. package/esm2022/src/app/social/job/testing/job.testing.module.mjs +8 -21
  299. package/esm2022/src/app/social/message/message.form.mjs +5 -5
  300. package/esm2022/src/app/social/message/message.modal.mjs +8 -8
  301. package/esm2022/src/app/social/message/message.model.mjs +8 -8
  302. package/esm2022/src/app/social/message/message.module.mjs +4 -4
  303. package/esm2022/src/app/social/message/message.service.mjs +7 -7
  304. package/esm2022/src/app/social/social.errors.mjs +2 -2
  305. package/esm2022/src/app/social/social.module.mjs +7 -32
  306. package/esm2022/src/app/social/social.testing.module.mjs +9 -20
  307. package/esm2022/src/app/social/user-event/notification/user-event-notification.icon.mjs +17 -14
  308. package/esm2022/src/app/social/user-event/notification/user-event-notification.list.mjs +19 -22
  309. package/esm2022/src/app/social/user-event/testing/user-event.testing.mjs +47 -23
  310. package/esm2022/src/app/social/user-event/testing/user-event.testing.model.mjs +8 -8
  311. package/esm2022/src/app/social/user-event/testing/user-event.testing.module.mjs +8 -21
  312. package/esm2022/src/app/social/user-event/testing/user-event.testing.service.mjs +27 -15
  313. package/esm2022/src/app/social/user-event/user-event.model.mjs +1 -1
  314. package/esm2022/src/app/social/user-event/user-event.module.mjs +8 -28
  315. package/esm2022/src/app/social/user-event/user-event.service.mjs +56 -61
  316. package/esm2022/src/environments/environment.class.mjs +2 -1
  317. package/esm2022/src/environments/environment.loader.mjs +4 -4
  318. package/esm2022/src/environments/environment.mjs +2 -2
  319. package/fesm2022/sumaris-net.ngx-components.mjs +6263 -7492
  320. package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
  321. package/package.json +12 -7
  322. package/public_api.d.ts +3 -8
  323. package/src/app/admin/users/users.d.ts +3 -2
  324. package/src/app/core/core.module.d.ts +21 -24
  325. package/src/app/core/form/form.utils.d.ts +1 -1
  326. package/src/app/core/services/config/core.config.d.ts +1 -1
  327. package/src/app/core/services/config.service.d.ts +3 -3
  328. package/src/app/core/services/local-settings.service.d.ts +2 -3
  329. package/src/app/core/services/model/entity.model.d.ts +3 -2
  330. package/src/app/core/services/model/settings.model.d.ts +2 -2
  331. package/src/app/core/services/pipes/department-to-string.pipe.d.ts +1 -1
  332. package/src/app/core/services/pipes/pipes.module.d.ts +11 -0
  333. package/src/app/core/services/pipes/referential-to-string.pipe.d.ts +12 -0
  334. package/src/app/core/table/actions-column.component.d.ts +3 -1
  335. package/src/app/shared/events.d.ts +1 -1
  336. package/src/app/shared/functions.d.ts +6 -5
  337. package/src/app/shared/graph/graph-colors.d.ts +1 -1
  338. package/src/app/shared/image/gallery/image-gallery.component.d.ts +10 -10
  339. package/src/app/shared/image/gallery/image-gallery.module.d.ts +2 -1
  340. package/src/app/shared/image/gallery/testing/gallery.service.testing.d.ts +2 -2
  341. package/src/app/shared/image/gallery/testing/gallery.testing.module.d.ts +2 -1
  342. package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +1 -1
  343. package/src/app/shared/material/boolean/boolean.module.d.ts +1 -1
  344. package/src/app/shared/material/boolean/{material-boolean.d.ts → material.boolean.d.ts} +2 -2
  345. package/src/app/shared/material/material.module.d.ts +5 -6
  346. package/src/app/shared/material/material.testing.module.d.ts +14 -15
  347. package/src/app/shared/material/swipe/material.swipe.d.ts +1 -1
  348. package/src/app/shared/pipes/pipes.module.d.ts +1 -1
  349. package/src/app/shared/pipes/string.pipes.d.ts +4 -5
  350. package/src/app/shared/validator/validators.d.ts +13 -4
  351. package/src/app/social/job/progression/job-progression.list.d.ts +1 -3
  352. package/src/app/social/message/message.modal.d.ts +2 -2
  353. package/src/app/social/user-event/testing/user-event.testing.d.ts +1 -0
  354. package/src/app/social/user-event/testing/user-event.testing.service.d.ts +1 -0
  355. package/src/assets/manifest.json +1 -1
  356. package/src/environments/environment.class.d.ts +1 -0
  357. package/src/theme/_ngx-components.scss +1 -25
  358. package/src/theme/_ngx-components.tabs.scss +361 -0
  359. package/src/theme/_theme.scss +1 -0
  360. package/esm2022/src/app/shared/material/boolean/material-boolean.mjs +0 -262
  361. package/esm2022/src/app/shared/material/numpad/numpad.append-to-input.directive.mjs +0 -104
  362. package/esm2022/src/app/shared/material/numpad/numpad.component.mjs +0 -83
  363. package/esm2022/src/app/shared/material/numpad/numpad.container.mjs +0 -203
  364. package/esm2022/src/app/shared/material/numpad/numpad.content.mjs +0 -19
  365. package/esm2022/src/app/shared/material/numpad/numpad.directive.mjs +0 -168
  366. package/esm2022/src/app/shared/material/numpad/numpad.dom-service.mjs +0 -36
  367. package/esm2022/src/app/shared/material/numpad/numpad.model.mjs +0 -16
  368. package/esm2022/src/app/shared/material/numpad/numpad.module.mjs +0 -60
  369. package/esm2022/src/app/shared/material/numpad/testing/numpad.test.mjs +0 -48
  370. package/src/app/shared/material/numpad/numpad.append-to-input.directive.d.ts +0 -22
  371. package/src/app/shared/material/numpad/numpad.component.d.ts +0 -26
  372. package/src/app/shared/material/numpad/numpad.container.d.ts +0 -40
  373. package/src/app/shared/material/numpad/numpad.content.d.ts +0 -7
  374. package/src/app/shared/material/numpad/numpad.directive.d.ts +0 -35
  375. package/src/app/shared/material/numpad/numpad.dom-service.d.ts +0 -16
  376. package/src/app/shared/material/numpad/numpad.model.d.ts +0 -30
  377. package/src/app/shared/material/numpad/numpad.module.d.ts +0 -16
  378. package/src/app/shared/material/numpad/testing/numpad.test.d.ts +0 -13
@@ -118,10 +118,10 @@ export class StorageService extends StartableService {
118
118
  await this.ready();
119
119
  return this._data.forEach(iteratorCallback);
120
120
  }
121
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: StorageService, deps: [{ token: i1.Platform }, { token: i2.Storage }, { token: ENVIRONMENT }], target: i0.ɵɵFactoryTarget.Injectable });
122
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: StorageService, providedIn: 'root' });
121
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: StorageService, deps: [{ token: i1.Platform }, { token: i2.Storage }, { token: ENVIRONMENT }], target: i0.ɵɵFactoryTarget.Injectable });
122
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: StorageService, providedIn: 'root' });
123
123
  }
124
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: StorageService, decorators: [{
124
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: StorageService, decorators: [{
125
125
  type: Injectable,
126
126
  args: [{
127
127
  providedIn: 'root',
@@ -131,4 +131,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
131
131
  type: Inject,
132
132
  args: [ENVIRONMENT]
133
133
  }] }] });
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvc3RvcmFnZS9zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFZLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXZFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNoRSxPQUFPLEVBQUUsV0FBVyxFQUFlLE1BQU0seUNBQXlDLENBQUM7QUFDbkYsT0FBTyxLQUFLLG1CQUFtQixNQUFNLGlDQUFpQyxDQUFDOzs7OztBQU12RSxNQUFNLE9BQU8sY0FBZSxTQUFRLGdCQUF5QjtJQUtuQjtJQUErQztJQUp2RixJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDO0lBQzVCLENBQUM7SUFFRCxZQUFZLFFBQWtCLEVBQVUsT0FBZ0IsRUFBK0IsV0FBd0I7UUFDN0csS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRHNCLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFBK0IsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFFN0csSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUM7UUFDdEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUVTLEtBQUssQ0FBQyxTQUFTO1FBQ3ZCLElBQUksQ0FBQztZQUNILE9BQU8sQ0FBQyxLQUFLLENBQUMsdUNBQXVDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsV0FBVyxHQUFHLENBQUMsQ0FBQztZQUUxRixnQ0FBZ0M7WUFDaEMsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFD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QUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdEMsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTyxDQUFDLGdCQUEyRTtRQUN2RixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFBRSxNQUFNLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN0QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDOUMsQ0FBQzt1R0FoSFUsY0FBYyxpRUFLeUMsV0FBVzsyR0FMbEUsY0FBYyxjQUhiLE1BQU07OzJGQUdQLGNBQWM7a0JBSjFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07b0JBQ2xCLElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQztpQkFDcEI7OzBCQU00RCxNQUFNOzJCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JhZ2UgfSBmcm9tICdAaW9uaWMvc3RvcmFnZS1hbmd1bGFyJztcbmltcG9ydCB7IElTdG9yYWdlLCBTdG9yYWdlRHJpdmVycyB9IGZyb20gJy4vc3RvcmFnZS51dGlscyc7XG5pbXBvcnQgeyBTdGFydGFibGVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc3RhcnRhYmxlLXNlcnZpY2UuY2xhc3MnO1xuaW1wb3J0IHsgUGxhdGZvcm0gfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBlbnZpcm9ubWVudCB9IGZyb20gJy4uLy4uLy4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudCc7XG5pbXBvcnQgeyBFTlZJUk9OTUVOVCwgRW52aXJvbm1lbnQgfSBmcm9tICcuLi8uLi8uLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQuY2xhc3MnO1xuaW1wb3J0ICogYXMgY29yZG92YVNRTGl0ZURyaXZlciBmcm9tICdsb2NhbGZvcmFnZS1jb3Jkb3Zhc3FsaXRlZHJpdmVyJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG4gIGRlcHM6IFtFTlZJUk9OTUVOVF0sXG59KVxuZXhwb3J0IGNsYXNzIFN0b3JhZ2VTZXJ2aWNlIGV4dGVuZHMgU3RhcnRhYmxlU2VydmljZTxTdG9yYWdlPiBpbXBsZW1lbnRzIElTdG9yYWdlPFN0b3JhZ2U+IHtcbiAgZ2V0IGRyaXZlcigpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9kYXRhPy5kcml2ZXI7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihwbGF0Zm9ybTogUGxhdGZvcm0sIHByaXZhdGUgc3RvcmFnZTogU3RvcmFnZSwgQEluamVjdChFTlZJUk9OTUVOVCkgcHJpdmF0ZSBlbnZpcm9ubWVudDogRW52aXJvbm1lbnQpIHtcbiAgICBzdXBlcihwbGF0Zm9ybSk7XG4gICAgdGhpcy5fZGVidWcgPSAhZW52aXJvbm1lbnQucHJvZHVjdGlvbjtcbiAgICB0aGlzLnN0YXJ0KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgbmdPblN0YXJ0KCk6IFByb21pc2U8U3RvcmFnZT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zb2xlLmRlYnVnKGBbc3RvcmFnZV0gU3RhcnRpbmcuLi4ge2RyaXZlck9yZGVyOiAke2Vudmlyb25tZW50LnN0b3JhZ2U/LmRyaXZlck9yZGVyfX1gKTtcblxuICAgICAgLy8gRGVmaW5lIENvcmRvdmEgU1FMTGl0ZSBkcml2ZXJcbiAgICAgIGF3YWl0IHRoaXMuc3RvcmFnZS5kZWZpbmVEcml2ZXIoY29yZG92YVNRTGl0ZURyaXZlcik7XG5cbiAgICAgIC8vIENyZWF0ZSB0aGUgc3RvcmFnZSBpbnN0YW5jZVxuICAgICAgY29uc3Qgc3RvcmFnZSA9IGF3YWl0IHRoaXMuc3RvcmFnZS5jcmVhdGUoKTtcblxuICAgICAgLy8gTWlncmF0ZSBmcm9tIG9sZCBzdG9yYWdlXG4gICAgICBhd2FpdCB0aGlzLm1pZ3JhdGUoc3RvcmFnZSk7XG5cbiAgICAgIGNvbnNvbGUuaW5mbyhgW3N0b3JhZ2VdIFN0YXJ0ZWQgdXNpbmcgZHJpdmVyOiAke3N0b3JhZ2U/LmRyaXZlcn1gKTtcbiAgICAgIHJldHVybiBzdG9yYWdlO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcignW3N0b3JhZ2VdIENhbm5vdCBjcmVhdGUgc3RvcmFnZTogJyArIChlcnI/Lm1lc3NhZ2UgfHwgZXJyKSwgZXJyKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgbWlncmF0ZShzdG9yYWdlOiBTdG9yYWdlKSB7XG4gICAgY29uc3QgY2FuTWlncmF0ZSA9IHN0b3JhZ2U/LmRyaXZlciA9PT0gU3RvcmFnZURyaXZlcnMuU1FMTGl0ZTtcblxuICAgIGlmICghY2FuTWlncmF0ZSkgcmV0dXJuOyAvLyBTa2lwXG5cbiAgICAvL1xuICAgIC8vIGNvbnN0IG9sZEZvcmFnZSA9IHN0b3JhZ2UuY3JlYXRlSW5zdGFuY2Uoe1xuICAgIC8vICAgbmFtZTogc3RvcmFnZS5jb25maWcoKS5uYW1lLFxuICAgIC8vICAgc3RvcmVOYW1lOiBzdG9yYWdlLmNvbmZpZygpLnN0b3JlTmFtZSxcbiAgICAvLyAgIGRyaXZlcjogW3N0b3JhZ2UuSU5ERVhFRERCLCBzdG9yYWdlLldFQlNRTF1cbiAgICAvLyB9KTtcbiAgICAvL1xuICAgIC8vIGNvbnN0IGtleXMgPSBhd2FpdCBvbGRGb3JhZ2Uua2V5cygpO1xuICAgIC8vXG4gICAgLy8gLy8gTm8gZGF0YSBpbiB0aGUgb2RsIHN0b3JhZ2U6IHNraXAgbWlncmF0aW9uXG4gICAgLy8gaWYgKGlzRW1wdHlBcnJheShrZXlzKSkge1xuICAgIC8vICAgLy8gRHJvcCB0aGUgb2xkIGluc3RhbmNlIChub3QgbmVlZCBhbnltb3JlKVxuICAgIC8vICAgY29uc29sZS5kZWJ1ZyhgW3BsYXRmb3JtXSBPbGQgc3RvcmFnZSBpcyBlbXB0eTogZHJvcHBpbmcgdW51c2VkIGluc3RhbmNlIHtuYW1lOiAnJHtzdG9yYWdlLmNvbmZpZygpLm5hbWV9JywgZHJpdmVyOiAnJHtvbGRGb3JhZ2UuZHJpdmVyKCl9J31gKTtcbiAgICAvLyAgIGF3YWl0IG9sZEZvcmFnZS5kcm9wSW5zdGFuY2UoKTtcbiAgICAvLyB9XG4gICAgLy8gLy8gSUYgc29tZSBkYXRhIHN0b3JlZCBpbiB0aGUgT0xEIHN0b3JhZ2U6IHN0YXJ0IG1pZ3JhdGlvblxuICAgIC8vIGVsc2Uge1xuICAgIC8vXG4gICAgLy8gICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuICAgIC8vICAgY29uc29sZS5pbmZvKGBbcGxhdGZvcm1dIFN0YXJ0aW5nIHN0b3JhZ2UgbWlncmF0aW9uLi4uYCk7XG4gICAgLy9cbiAgICAvLyAgIGNvbnN0IHRvYXN0ID0gYXdhaXQgdGhpcy5zaG93VG9hc3Qoe21lc3NhZ2U6ICdJTkZPLkRBVEFfTUlHUkFUSU9OX1NUQVJURUQnLCB0eXBlOiAnaW5mbycsIGR1cmF0aW9uOiAzMDAwMH0pO1xuICAgIC8vICAgdHJ5IHtcbiAgICAvLyAgICAgYXdhaXQgU3RvcmFnZVV0aWxzLmNvcHkob2xkRm9yYWdlLCBzdG9yYWdlLCB7a2V5cywgZGVsZXRlQWZ0ZXJDb3B5OiBmYWxzZX0pO1xuICAgIC8vXG4gICAgLy8gICAgIGNvbnN0IGR1cmF0aW9uID0gRGF0ZS5ub3coKSAtIG5vdztcbiAgICAvLyAgICAgc2V0VGltZW91dCgoKSA9PiB0b2FzdC5kaXNtaXNzKCksICBNYXRoLm1heCgyMDAwIC0gZHVyYXRpb24sIDApKTtcbiAgICAvLyAgICAgYXdhaXQgdGhpcy5zaG93VG9hc3Qoe21lc3NhZ2U6ICdJTkZPLkRBVEFfTUlHUkFUSU9OX1NVQ0NFRUQnLFxuICAgIC8vICAgICAgIHR5cGU6ICdpbmZvJyxcbiAgICAvLyAgICAgICBzaG93Q2xvc2VCdXR0b246IHRydWVcbiAgICAvLyAgICAgfSk7XG4gICAgLy8gICAgIGNvbnNvbGUuaW5mbygnW3BsYXRmb3JtXSBTdGFydGluZyBzdG9yYWdlIG1pZ3JhdGlvbiBbT0tdJyk7XG4gICAgLy9cbiAgICAvLyAgICAgLy8gRHJvcCB0aGUgb2xkIGluc3RhbmNlXG4gICAgLy8gICAgIGNvbnNvbGUuaW5mbyhgW3BsYXRmb3JtXSBEcm9wIG9sZCBzdG9yYWdlIHtuYW1lOiAnJHtzdG9yYWdlLmNvbmZpZygpLm5hbWV9JywgZHJpdmVyOiAnJHtvbGRGb3JhZ2UuZHJpdmVyKCl9J31gKTtcbiAgICAvLyAgICAgYXdhaXQgb2xkRm9yYWdlLmRyb3BJbnN0YW5jZSgpO1xuICAgIC8vICAgfVxuICAgIC8vICAgY2F0Y2ggKGVycikge1xuICAgIC8vICAgICBjb25zb2xlLmVycm9yKGVyciAmJiBlcnIubWVzc2FnZSB8fCBlcnIsIGVycik7XG4gICAgLy8gICAgIGF3YWl0IHRvYXN0LmRpc21pc3MoKTtcbiAgICAvLyAgICAgYXdhaXQgdGhpcy5zaG93VG9hc3Qoe21lc3NhZ2U6ICdFUlJPUi5EQVRBX01JR1JBVElPTl9GQUlMRUQnLFxuICAgIC8vICAgICAgIHR5cGU6ICdlcnJvcicsXG4gICAgLy8gICAgICAgc2hvd0Nsb3NlQnV0dG9uOiB0cnVlXG4gICAgLy8gICAgIH0pO1xuICAgIC8vICAgfVxuICAgIC8vfVxuICB9XG5cbiAgYXN5bmMgc2V0KGtleTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gICAgaWYgKCF0aGlzLnN0YXJ0ZWQpIGF3YWl0IHRoaXMucmVhZHkoKTtcbiAgICByZXR1cm4gdGhpcy5fZGF0YS5zZXQoa2V5LCB2YWx1ZSk7XG4gIH1cblxuICBhc3luYyBnZXQoa2V5OiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIGlmICghdGhpcy5zdGFydGVkKSBhd2FpdCB0aGlzLnJlYWR5KCk7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGEuZ2V0KGtleSk7XG4gIH1cblxuICBhc3luYyByZW1vdmUoa2V5OiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuc3RhcnRlZCkgYXdhaXQgdGhpcy5yZWFkeSgpO1xuICAgIHJldHVybiB0aGlzLl9kYXRhLnJlbW92ZShrZXkpO1xuICB9XG5cbiAgYXN5bmMga2V5cygpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgaWYgKCF0aGlzLnN0YXJ0ZWQpIGF3YWl0IHRoaXMucmVhZHkoKTtcbiAgICByZXR1cm4gdGhpcy5fZGF0YS5rZXlzKCk7XG4gIH1cblxuICBhc3luYyBjbGVhcigpIHtcbiAgICBpZiAoIXRoaXMuc3RhcnRlZCkgYXdhaXQgdGhpcy5yZWFkeSgpO1xuICAgIGF3YWl0IHRoaXMuX2RhdGEuY2xlYXIoKTtcbiAgfVxuXG4gIGFzeW5jIGZvckVhY2goaXRlcmF0b3JDYWxsYmFjazogKHZhbHVlOiBhbnksIGtleTogc3RyaW5nLCBpdGVyYXRpb25OdW1iZXI6IG51bWJlcikgPT4gYW55KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLnN0YXJ0ZWQpIGF3YWl0IHRoaXMucmVhZHkoKTtcbiAgICByZXR1cm4gdGhpcy5fZGF0YS5mb3JFYWNoKGl0ZXJhdG9yQ2FsbGJhY2spO1xuICB9XG59XG4iXX0=
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvc3RvcmFnZS9zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFZLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXZFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNoRSxPQUFPLEVBQUUsV0FBVyxFQUFlLE1BQU0seUNBQXlDLENBQUM7QUFDbkYsT0FBTyxLQUFLLG1CQUFtQixNQUFNLGlDQUFpQyxDQUFDOzs7OztBQU12RSxNQUFNLE9BQU8sY0FBZSxTQUFRLGdCQUF5QjtJQU9qRDtJQUNxQjtJQVAvQixJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDO0lBQzVCLENBQUM7SUFFRCxZQUNFLFFBQWtCLEVBQ1YsT0FBZ0IsRUFDSyxXQUF3QjtRQUVyRCxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFIUixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ0ssZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFHckQsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUM7UUFDdEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUVTLEtBQUssQ0FBQyxTQUFTO1FBQ3ZCLElBQUksQ0FBQztZQUNILE9BQU8sQ0FBQyxLQUFLLENBQUMsdUNBQXVDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsV0FBVyxHQUFHLENBQUMsQ0FBQztZQUUxRixnQ0FBZ0M7WUFDaEMsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFlB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LENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdEMsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTyxDQUFDLGdCQUEyRTtRQUN2RixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFBRSxNQUFNLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN0QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDOUMsQ0FBQzt1R0FwSFUsY0FBYyxpRUFRZixXQUFXOzJHQVJWLGNBQWMsY0FIYixNQUFNOzsyRkFHUCxjQUFjO2tCQUoxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO29CQUNsQixJQUFJLEVBQUUsQ0FBQyxXQUFXLENBQUM7aUJBQ3BCOzswQkFTSSxNQUFNOzJCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JhZ2UgfSBmcm9tICdAaW9uaWMvc3RvcmFnZS1hbmd1bGFyJztcbmltcG9ydCB7IElTdG9yYWdlLCBTdG9yYWdlRHJpdmVycyB9IGZyb20gJy4vc3RvcmFnZS51dGlscyc7XG5pbXBvcnQgeyBTdGFydGFibGVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc3RhcnRhYmxlLXNlcnZpY2UuY2xhc3MnO1xuaW1wb3J0IHsgUGxhdGZvcm0gfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBlbnZpcm9ubWVudCB9IGZyb20gJy4uLy4uLy4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudCc7XG5pbXBvcnQgeyBFTlZJUk9OTUVOVCwgRW52aXJvbm1lbnQgfSBmcm9tICcuLi8uLi8uLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQuY2xhc3MnO1xuaW1wb3J0ICogYXMgY29yZG92YVNRTGl0ZURyaXZlciBmcm9tICdsb2NhbGZvcmFnZS1jb3Jkb3Zhc3FsaXRlZHJpdmVyJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG4gIGRlcHM6IFtFTlZJUk9OTUVOVF0sXG59KVxuZXhwb3J0IGNsYXNzIFN0b3JhZ2VTZXJ2aWNlIGV4dGVuZHMgU3RhcnRhYmxlU2VydmljZTxTdG9yYWdlPiBpbXBsZW1lbnRzIElTdG9yYWdlPFN0b3JhZ2U+IHtcbiAgZ2V0IGRyaXZlcigpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9kYXRhPy5kcml2ZXI7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwbGF0Zm9ybTogUGxhdGZvcm0sXG4gICAgcHJpdmF0ZSBzdG9yYWdlOiBTdG9yYWdlLFxuICAgIEBJbmplY3QoRU5WSVJPTk1FTlQpIHByaXZhdGUgZW52aXJvbm1lbnQ6IEVudmlyb25tZW50XG4gICkge1xuICAgIHN1cGVyKHBsYXRmb3JtKTtcbiAgICB0aGlzLl9kZWJ1ZyA9ICFlbnZpcm9ubWVudC5wcm9kdWN0aW9uO1xuICAgIHRoaXMuc3RhcnQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBuZ09uU3RhcnQoKTogUHJvbWlzZTxTdG9yYWdlPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnNvbGUuZGVidWcoYFtzdG9yYWdlXSBTdGFydGluZy4uLiB7ZHJpdmVyT3JkZXI6ICR7ZW52aXJvbm1lbnQuc3RvcmFnZT8uZHJpdmVyT3JkZXJ9fWApO1xuXG4gICAgICAvLyBEZWZpbmUgQ29yZG92YSBTUUxMaXRlIGRyaXZlclxuICAgICAgYXdhaXQgdGhpcy5zdG9yYWdlLmRlZmluZURyaXZlcihjb3Jkb3ZhU1FMaXRlRHJpdmVyKTtcblxuICAgICAgLy8gQ3JlYXRlIHRoZSBzdG9yYWdlIGluc3RhbmNlXG4gICAgICBjb25zdCBzdG9yYWdlID0gYXdhaXQgdGhpcy5zdG9yYWdlLmNyZWF0ZSgpO1xuXG4gICAgICAvLyBNaWdyYXRlIGZyb20gb2xkIHN0b3JhZ2VcbiAgICAgIGF3YWl0IHRoaXMubWlncmF0ZShzdG9yYWdlKTtcblxuICAgICAgY29uc29sZS5pbmZvKGBbc3RvcmFnZV0gU3RhcnRlZCB1c2luZyBkcml2ZXI6ICR7c3RvcmFnZT8uZHJpdmVyfWApO1xuICAgICAgcmV0dXJuIHN0b3JhZ2U7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdbc3RvcmFnZV0gQ2Fubm90IGNyZWF0ZSBzdG9yYWdlOiAnICsgKGVycj8ubWVzc2FnZSB8fCBlcnIpLCBlcnIpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBtaWdyYXRlKHN0b3JhZ2U6IFN0b3JhZ2UpIHtcbiAgICBjb25zdCBjYW5NaWdyYXRlID0gc3RvcmFnZT8uZHJpdmVyID09PSBTdG9yYWdlRHJpdmVycy5TUUxMaXRlO1xuXG4gICAgaWYgKCFjYW5NaWdyYXRlKSByZXR1cm47IC8vIFNraXBcblxuICAgIC8vXG4gICAgLy8gY29uc3Qgb2xkRm9yYWdlID0gc3RvcmFnZS5jcmVhdGVJbnN0YW5jZSh7XG4gICAgLy8gICBuYW1lOiBzdG9yYWdlLmNvbmZpZygpLm5hbWUsXG4gICAgLy8gICBzdG9yZU5hbWU6IHN0b3JhZ2UuY29uZmlnKCkuc3RvcmVOYW1lLFxuICAgIC8vICAgZHJpdmVyOiBbc3RvcmFnZS5JTkRFWEVEREIsIHN0b3JhZ2UuV0VCU1FMXVxuICAgIC8vIH0pO1xuICAgIC8vXG4gICAgLy8gY29uc3Qga2V5cyA9IGF3YWl0IG9sZEZvcmFnZS5rZXlzKCk7XG4gICAgLy9cbiAgICAvLyAvLyBObyBkYXRhIGluIHRoZSBvZGwgc3RvcmFnZTogc2tpcCBtaWdyYXRpb25cbiAgICAvLyBpZiAoaXNFbXB0eUFycmF5KGtleXMpKSB7XG4gICAgLy8gICAvLyBEcm9wIHRoZSBvbGQgaW5zdGFuY2UgKG5vdCBuZWVkIGFueW1vcmUpXG4gICAgLy8gICBjb25zb2xlLmRlYnVnKGBbcGxhdGZvcm1dIE9sZCBzdG9yYWdlIGlzIGVtcHR5OiBkcm9wcGluZyB1bnVzZWQgaW5zdGFuY2Uge25hbWU6ICcke3N0b3JhZ2UuY29uZmlnKCkubmFtZX0nLCBkcml2ZXI6ICcke29sZEZvcmFnZS5kcml2ZXIoKX0nfWApO1xuICAgIC8vICAgYXdhaXQgb2xkRm9yYWdlLmRyb3BJbnN0YW5jZSgpO1xuICAgIC8vIH1cbiAgICAvLyAvLyBJRiBzb21lIGRhdGEgc3RvcmVkIGluIHRoZSBPTEQgc3RvcmFnZTogc3RhcnQgbWlncmF0aW9uXG4gICAgLy8gZWxzZSB7XG4gICAgLy9cbiAgICAvLyAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgLy8gICBjb25zb2xlLmluZm8oYFtwbGF0Zm9ybV0gU3RhcnRpbmcgc3RvcmFnZSBtaWdyYXRpb24uLi5gKTtcbiAgICAvL1xuICAgIC8vICAgY29uc3QgdG9hc3QgPSBhd2FpdCB0aGlzLnNob3dUb2FzdCh7bWVzc2FnZTogJ0lORk8uREFUQV9NSUdSQVRJT05fU1RBUlRFRCcsIHR5cGU6ICdpbmZvJywgZHVyYXRpb246IDMwMDAwfSk7XG4gICAgLy8gICB0cnkge1xuICAgIC8vICAgICBhd2FpdCBTdG9yYWdlVXRpbHMuY29weShvbGRGb3JhZ2UsIHN0b3JhZ2UsIHtrZXlzLCBkZWxldGVBZnRlckNvcHk6IGZhbHNlfSk7XG4gICAgLy9cbiAgICAvLyAgICAgY29uc3QgZHVyYXRpb24gPSBEYXRlLm5vdygpIC0gbm93O1xuICAgIC8vICAgICBzZXRUaW1lb3V0KCgpID0+IHRvYXN0LmRpc21pc3MoKSwgIE1hdGgubWF4KDIwMDAgLSBkdXJhdGlvbiwgMCkpO1xuICAgIC8vICAgICBhd2FpdCB0aGlzLnNob3dUb2FzdCh7bWVzc2FnZTogJ0lORk8uREFUQV9NSUdSQVRJT05fU1VDQ0VFRCcsXG4gICAgLy8gICAgICAgdHlwZTogJ2luZm8nLFxuICAgIC8vICAgICAgIHNob3dDbG9zZUJ1dHRvbjogdHJ1ZVxuICAgIC8vICAgICB9KTtcbiAgICAvLyAgICAgY29uc29sZS5pbmZvKCdbcGxhdGZvcm1dIFN0YXJ0aW5nIHN0b3JhZ2UgbWlncmF0aW9uIFtPS10nKTtcbiAgICAvL1xuICAgIC8vICAgICAvLyBEcm9wIHRoZSBvbGQgaW5zdGFuY2VcbiAgICAvLyAgICAgY29uc29sZS5pbmZvKGBbcGxhdGZvcm1dIERyb3Agb2xkIHN0b3JhZ2Uge25hbWU6ICcke3N0b3JhZ2UuY29uZmlnKCkubmFtZX0nLCBkcml2ZXI6ICcke29sZEZvcmFnZS5kcml2ZXIoKX0nfWApO1xuICAgIC8vICAgICBhd2FpdCBvbGRGb3JhZ2UuZHJvcEluc3RhbmNlKCk7XG4gICAgLy8gICB9XG4gICAgLy8gICBjYXRjaCAoZXJyKSB7XG4gICAgLy8gICAgIGNvbnNvbGUuZXJyb3IoZXJyICYmIGVyci5tZXNzYWdlIHx8IGVyciwgZXJyKTtcbiAgICAvLyAgICAgYXdhaXQgdG9hc3QuZGlzbWlzcygpO1xuICAgIC8vICAgICBhd2FpdCB0aGlzLnNob3dUb2FzdCh7bWVzc2FnZTogJ0VSUk9SLkRBVEFfTUlHUkFUSU9OX0ZBSUxFRCcsXG4gICAgLy8gICAgICAgdHlwZTogJ2Vycm9yJyxcbiAgICAvLyAgICAgICBzaG93Q2xvc2VCdXR0b246IHRydWVcbiAgICAvLyAgICAgfSk7XG4gICAgLy8gICB9XG4gICAgLy99XG4gIH1cblxuICBhc3luYyBzZXQoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcbiAgICBpZiAoIXRoaXMuc3RhcnRlZCkgYXdhaXQgdGhpcy5yZWFkeSgpO1xuICAgIHJldHVybiB0aGlzLl9kYXRhLnNldChrZXksIHZhbHVlKTtcbiAgfVxuXG4gIGFzeW5jIGdldChrZXk6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgaWYgKCF0aGlzLnN0YXJ0ZWQpIGF3YWl0IHRoaXMucmVhZHkoKTtcbiAgICByZXR1cm4gdGhpcy5fZGF0YS5nZXQoa2V5KTtcbiAgfVxuXG4gIGFzeW5jIHJlbW92ZShrZXk6IHN0cmluZykge1xuICAgIGlmICghdGhpcy5zdGFydGVkKSBhd2FpdCB0aGlzLnJlYWR5KCk7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGEucmVtb3ZlKGtleSk7XG4gIH1cblxuICBhc3luYyBrZXlzKCk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICBpZiAoIXRoaXMuc3RhcnRlZCkgYXdhaXQgdGhpcy5yZWFkeSgpO1xuICAgIHJldHVybiB0aGlzLl9kYXRhLmtleXMoKTtcbiAgfVxuXG4gIGFzeW5jIGNsZWFyKCkge1xuICAgIGlmICghdGhpcy5zdGFydGVkKSBhd2FpdCB0aGlzLnJlYWR5KCk7XG4gICAgYXdhaXQgdGhpcy5fZGF0YS5jbGVhcigpO1xuICB9XG5cbiAgYXN5bmMgZm9yRWFjaChpdGVyYXRvckNhbGxiYWNrOiAodmFsdWU6IGFueSwga2V5OiBzdHJpbmcsIGl0ZXJhdGlvbk51bWJlcjogbnVtYmVyKSA9PiBhbnkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMuc3RhcnRlZCkgYXdhaXQgdGhpcy5yZWFkeSgpO1xuICAgIHJldHVybiB0aGlzLl9kYXRhLmZvckVhY2goaXRlcmF0b3JDYWxsYmFjayk7XG4gIH1cbn1cbiJdfQ==
@@ -7,7 +7,7 @@ export const StorageDrivers = {
7
7
  SecureStorage: Drivers.SecureStorage,
8
8
  WebSQL: LocalForage.WEBSQL,
9
9
  IndexedDB: Drivers.IndexedDB,
10
- LocalStorage: Drivers.LocalStorage
10
+ LocalStorage: Drivers.LocalStorage,
11
11
  };
12
12
  export const APP_STORAGE = new InjectionToken('Storage');
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3N0b3JhZ2Uvc3RvcmFnZS51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzdDLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2QyxPQUFPLEtBQUssV0FBVyxNQUFNLGFBQWEsQ0FBQztBQUMzQyxPQUFPLEtBQUssbUJBQW1CLE1BQU0saUNBQWlDLENBQUM7QUFhdkUsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHO0lBQzVCLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQyxPQUFPO0lBQ3BDLGFBQWEsRUFBRSxPQUFPLENBQUMsYUFBYTtJQUNwQyxNQUFNLEVBQUUsV0FBVyxDQUFDLE1BQU07SUFDMUIsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTO0lBQzVCLFlBQVksRUFBRSxPQUFPLENBQUMsWUFBWTtDQUNuQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLElBQUksY0FBYyxDQUFXLFNBQVMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3Rpb25Ub2tlbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0RyaXZlcnN9IGZyb20gJ0Bpb25pYy9zdG9yYWdlJztcbmltcG9ydCAqIGFzIExvY2FsRm9yYWdlIGZyb20gJ2xvY2FsZm9yYWdlJztcbmltcG9ydCAqIGFzIENvcmRvdmFTUUxpdGVEcml2ZXIgZnJvbSAnbG9jYWxmb3JhZ2UtY29yZG92YXNxbGl0ZWRyaXZlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVN0b3JhZ2U8VCA9IGFueT4ge1xuICByZWFkb25seSBkcml2ZXI6IHN0cmluZztcbiAgcmVhZHkoKTogUHJvbWlzZTxUPjtcbiAgc2V0KGtleTogc3RyaW5nLCB2YWx1ZTogYW55KTogUHJvbWlzZTx2b2lkPjtcbiAgZ2V0KGtleTogc3RyaW5nKTogUHJvbWlzZTxhbnk+O1xuICByZW1vdmUoa2V5OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+O1xuICBrZXlzKCk6IFByb21pc2U8c3RyaW5nW10+O1xuICBjbGVhcigpOiBQcm9taXNlPHZvaWQ+O1xuICBmb3JFYWNoKGl0ZXJhdG9yQ2FsbGJhY2s6ICh2YWx1ZTogYW55LCBrZXk6IHN0cmluZywgaXRlcmF0aW9uTnVtYmVyOiBudW1iZXIpID0+IGFueSk6IFByb21pc2U8dm9pZD47XG59XG5cbmV4cG9ydCBjb25zdCBTdG9yYWdlRHJpdmVycyA9IHtcbiAgU1FMTGl0ZTogQ29yZG92YVNRTGl0ZURyaXZlci5fZHJpdmVyLFxuICBTZWN1cmVTdG9yYWdlOiBEcml2ZXJzLlNlY3VyZVN0b3JhZ2UsXG4gIFdlYlNRTDogTG9jYWxGb3JhZ2UuV0VCU1FMLFxuICBJbmRleGVkREI6IERyaXZlcnMuSW5kZXhlZERCLFxuICBMb2NhbFN0b3JhZ2U6IERyaXZlcnMuTG9jYWxTdG9yYWdlXG59O1xuXG5leHBvcnQgY29uc3QgQVBQX1NUT1JBR0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48SVN0b3JhZ2U+KCdTdG9yYWdlJyk7XG4iXX0=
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3N0b3JhZ2Uvc3RvcmFnZS51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEtBQUssV0FBVyxNQUFNLGFBQWEsQ0FBQztBQUMzQyxPQUFPLEtBQUssbUJBQW1CLE1BQU0saUNBQWlDLENBQUM7QUFhdkUsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHO0lBQzVCLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQyxPQUFPO0lBQ3BDLGFBQWEsRUFBRSxPQUFPLENBQUMsYUFBYTtJQUNwQyxNQUFNLEVBQUUsV0FBVyxDQUFDLE1BQU07SUFDMUIsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTO0lBQzVCLFlBQVksRUFBRSxPQUFPLENBQUMsWUFBWTtDQUNuQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLElBQUksY0FBYyxDQUFXLFNBQVMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERyaXZlcnMgfSBmcm9tICdAaW9uaWMvc3RvcmFnZSc7XG5pbXBvcnQgKiBhcyBMb2NhbEZvcmFnZSBmcm9tICdsb2NhbGZvcmFnZSc7XG5pbXBvcnQgKiBhcyBDb3Jkb3ZhU1FMaXRlRHJpdmVyIGZyb20gJ2xvY2FsZm9yYWdlLWNvcmRvdmFzcWxpdGVkcml2ZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIElTdG9yYWdlPFQgPSBhbnk+IHtcbiAgcmVhZG9ubHkgZHJpdmVyOiBzdHJpbmc7XG4gIHJlYWR5KCk6IFByb21pc2U8VD47XG4gIHNldChrZXk6IHN0cmluZywgdmFsdWU6IGFueSk6IFByb21pc2U8dm9pZD47XG4gIGdldChrZXk6IHN0cmluZyk6IFByb21pc2U8YW55PjtcbiAgcmVtb3ZlKGtleTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPjtcbiAga2V5cygpOiBQcm9taXNlPHN0cmluZ1tdPjtcbiAgY2xlYXIoKTogUHJvbWlzZTx2b2lkPjtcbiAgZm9yRWFjaChpdGVyYXRvckNhbGxiYWNrOiAodmFsdWU6IGFueSwga2V5OiBzdHJpbmcsIGl0ZXJhdGlvbk51bWJlcjogbnVtYmVyKSA9PiBhbnkpOiBQcm9taXNlPHZvaWQ+O1xufVxuXG5leHBvcnQgY29uc3QgU3RvcmFnZURyaXZlcnMgPSB7XG4gIFNRTExpdGU6IENvcmRvdmFTUUxpdGVEcml2ZXIuX2RyaXZlcixcbiAgU2VjdXJlU3RvcmFnZTogRHJpdmVycy5TZWN1cmVTdG9yYWdlLFxuICBXZWJTUUw6IExvY2FsRm9yYWdlLldFQlNRTCxcbiAgSW5kZXhlZERCOiBEcml2ZXJzLkluZGV4ZWREQixcbiAgTG9jYWxTdG9yYWdlOiBEcml2ZXJzLkxvY2FsU3RvcmFnZSxcbn07XG5cbmV4cG9ydCBjb25zdCBBUFBfU1RPUkFHRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJU3RvcmFnZT4oJ1N0b3JhZ2UnKTtcbiJdfQ==
@@ -12,18 +12,17 @@ export class ObservableTestPage {
12
12
  runningTaskCount = 0;
13
13
  taskId = 0;
14
14
  options = {
15
- stop: this._stopSubject
15
+ stop: this._stopSubject,
16
16
  };
17
17
  resultDiv;
18
- constructor() {
19
- }
18
+ constructor() { }
20
19
  ngOnDestroy() {
21
20
  this._stopSubject.next();
22
21
  }
23
22
  setOptions(opts) {
24
23
  this.options = {
25
24
  ...this.options,
26
- ...opts
25
+ ...opts,
27
26
  };
28
27
  this.log('Options changes to: ', { ...this.options, stop: this.options?.stop ? '$stop' : 'null' });
29
28
  }
@@ -42,10 +41,10 @@ export class ObservableTestPage {
42
41
  opts = {
43
42
  ...this.options,
44
43
  stop: this._stopSubject,
45
- ...opts
44
+ ...opts,
46
45
  };
47
46
  logPrefix = logPrefix || `[#${++this.taskId}] `;
48
- const value$ = this.$value.pipe(tap(value => this.log(logPrefix + `Received value: ${value}`)));
47
+ const value$ = this.$value.pipe(tap((value) => this.log(logPrefix + `Received value: ${value}`)));
49
48
  try {
50
49
  this.runningTaskCount++;
51
50
  this.log(logPrefix + 'Waiting...');
@@ -60,8 +59,7 @@ export class ObservableTestPage {
60
59
  catch (err) {
61
60
  const errorMsg = logPrefix + 'Error: ' + (err?.message || '');
62
61
  console.error(errorMsg, err);
63
- this.log(errorMsg
64
- + (err?.originalStack ? `<pre>${err.originalStack}</pre>` : ''));
62
+ this.log(errorMsg + (err?.originalStack ? `<pre>${err.originalStack}</pre>` : ''));
65
63
  }
66
64
  finally {
67
65
  this.runningTaskCount--;
@@ -83,14 +81,14 @@ export class ObservableTestPage {
83
81
  appendLog(message) {
84
82
  this.resultDiv.nativeElement.innerHTML += message + '<br/>';
85
83
  }
86
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: ObservableTestPage, deps: [], target: i0.ɵɵFactoryTarget.Component });
87
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: ObservableTestPage, selector: "app-observable-test", viewQueries: [{ propertyName: "resultDiv", first: true, predicate: ["result"], descendants: true }], ngImport: i0, template: "\n<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Observables test page</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n\n <ion-card>\n <ion-card-header>\n <ion-card-title>waitFor, waitForTrue, waitForFalse</ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <div style=\"display: inline-block\">\n <p>Set options: </p>\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({stopError: false})\">stopError: false</ion-button>\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({stopError: true})\">stopError: true</ion-button>\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({stopError: 'my error'})\">stopError: 'my error'</ion-button>\n\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({timeout: 2000})\">timeout: 2000</ion-button>\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({timeout: null})\">timeout: null</ion-button>\n <br/>\n <p>Call await function: </p>\n <ion-button (click)=\"waitForTrue()\">waitForTrue</ion-button>\n <ion-button (click)=\"firstNotNilPromise()\">firstNotNilPromise</ion-button>\n <br/>\n <p>Send event to source: </p>\n <ion-button (click)=\"emit(true)\">Emit 'true'</ion-button>\n <ion-button (click)=\"emit(false)\">Emit 'false'</ion-button>\n <br/>\n <p>Stop: </p>\n <ion-button color=\"danger\" (click)=\"stop()\">Stop</ion-button>\n </div>\n </ion-card-content>\n </ion-card>\n\n <ion-card>\n <ion-toolbar>\n <ion-title>Running job count: {{runningTaskCount}}</ion-title>\n <ion-button fill=\"outline\" slot=\"end\" (click)=\"result.innerHTML=''\">Clear log</ion-button>\n </ion-toolbar>\n <ion-card-content>\n <div #result style=\"color: var(--ion-color-medium)\">\n </div>\n </ion-card-content>\n </ion-card>\n</ion-content>\n", styles: ["ion-button{text-transform:none!important}\n"], dependencies: [{ kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i1.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i1.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i1.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: i1.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: i1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i1.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i1.IonBackButton, selector: "ion-back-button" }] });
84
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ObservableTestPage, deps: [], target: i0.ɵɵFactoryTarget.Component });
85
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: ObservableTestPage, selector: "app-observable-test", viewQueries: [{ propertyName: "resultDiv", first: true, predicate: ["result"], descendants: true }], ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"primary\">\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Observables test page</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n <ion-card>\n <ion-card-header>\n <ion-card-title>waitFor, waitForTrue, waitForFalse</ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <div style=\"display: inline-block\">\n <p>Set options:</p>\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({ stopError: false })\">\n stopError: false\n </ion-button>\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({ stopError: true })\">stopError: true</ion-button>\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({ stopError: 'my error' })\">\n stopError: 'my error'\n </ion-button>\n\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({ timeout: 2000 })\">timeout: 2000</ion-button>\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({ timeout: null })\">timeout: null</ion-button>\n <br />\n <p>Call await function:</p>\n <ion-button (click)=\"waitForTrue()\">waitForTrue</ion-button>\n <ion-button (click)=\"firstNotNilPromise()\">firstNotNilPromise</ion-button>\n <br />\n <p>Send event to source:</p>\n <ion-button (click)=\"emit(true)\">Emit 'true'</ion-button>\n <ion-button (click)=\"emit(false)\">Emit 'false'</ion-button>\n <br />\n <p>Stop:</p>\n <ion-button color=\"danger\" (click)=\"stop()\">Stop</ion-button>\n </div>\n </ion-card-content>\n </ion-card>\n\n <ion-card>\n <ion-toolbar>\n <ion-title>Running job count: {{ runningTaskCount }}</ion-title>\n <ion-button fill=\"outline\" slot=\"end\" (click)=\"result.innerHTML = ''\">Clear log</ion-button>\n </ion-toolbar>\n <ion-card-content>\n <div #result style=\"color: var(--ion-color-medium)\"></div>\n </ion-card-content>\n </ion-card>\n</ion-content>\n", styles: ["ion-button{text-transform:none!important}\n"], dependencies: [{ kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i1.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i1.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i1.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: i1.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: i1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i1.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i1.IonBackButton, selector: "ion-back-button" }] });
88
86
  }
89
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: ObservableTestPage, decorators: [{
87
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ObservableTestPage, decorators: [{
90
88
  type: Component,
91
- args: [{ selector: 'app-observable-test', template: "\n<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Observables test page</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n\n <ion-card>\n <ion-card-header>\n <ion-card-title>waitFor, waitForTrue, waitForFalse</ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <div style=\"display: inline-block\">\n <p>Set options: </p>\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({stopError: false})\">stopError: false</ion-button>\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({stopError: true})\">stopError: true</ion-button>\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({stopError: 'my error'})\">stopError: 'my error'</ion-button>\n\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({timeout: 2000})\">timeout: 2000</ion-button>\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({timeout: null})\">timeout: null</ion-button>\n <br/>\n <p>Call await function: </p>\n <ion-button (click)=\"waitForTrue()\">waitForTrue</ion-button>\n <ion-button (click)=\"firstNotNilPromise()\">firstNotNilPromise</ion-button>\n <br/>\n <p>Send event to source: </p>\n <ion-button (click)=\"emit(true)\">Emit 'true'</ion-button>\n <ion-button (click)=\"emit(false)\">Emit 'false'</ion-button>\n <br/>\n <p>Stop: </p>\n <ion-button color=\"danger\" (click)=\"stop()\">Stop</ion-button>\n </div>\n </ion-card-content>\n </ion-card>\n\n <ion-card>\n <ion-toolbar>\n <ion-title>Running job count: {{runningTaskCount}}</ion-title>\n <ion-button fill=\"outline\" slot=\"end\" (click)=\"result.innerHTML=''\">Clear log</ion-button>\n </ion-toolbar>\n <ion-card-content>\n <div #result style=\"color: var(--ion-color-medium)\">\n </div>\n </ion-card-content>\n </ion-card>\n</ion-content>\n", styles: ["ion-button{text-transform:none!important}\n"] }]
89
+ args: [{ selector: 'app-observable-test', template: "<ion-header>\n <ion-toolbar color=\"primary\">\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Observables test page</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n <ion-card>\n <ion-card-header>\n <ion-card-title>waitFor, waitForTrue, waitForFalse</ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <div style=\"display: inline-block\">\n <p>Set options:</p>\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({ stopError: false })\">\n stopError: false\n </ion-button>\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({ stopError: true })\">stopError: true</ion-button>\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({ stopError: 'my error' })\">\n stopError: 'my error'\n </ion-button>\n\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({ timeout: 2000 })\">timeout: 2000</ion-button>\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({ timeout: null })\">timeout: null</ion-button>\n <br />\n <p>Call await function:</p>\n <ion-button (click)=\"waitForTrue()\">waitForTrue</ion-button>\n <ion-button (click)=\"firstNotNilPromise()\">firstNotNilPromise</ion-button>\n <br />\n <p>Send event to source:</p>\n <ion-button (click)=\"emit(true)\">Emit 'true'</ion-button>\n <ion-button (click)=\"emit(false)\">Emit 'false'</ion-button>\n <br />\n <p>Stop:</p>\n <ion-button color=\"danger\" (click)=\"stop()\">Stop</ion-button>\n </div>\n </ion-card-content>\n </ion-card>\n\n <ion-card>\n <ion-toolbar>\n <ion-title>Running job count: {{ runningTaskCount }}</ion-title>\n <ion-button fill=\"outline\" slot=\"end\" (click)=\"result.innerHTML = ''\">Clear log</ion-button>\n </ion-toolbar>\n <ion-card-content>\n <div #result style=\"color: var(--ion-color-medium)\"></div>\n </ion-card-content>\n </ion-card>\n</ion-content>\n", styles: ["ion-button{text-transform:none!important}\n"] }]
92
90
  }], ctorParameters: () => [], propDecorators: { resultDiv: [{
93
91
  type: ViewChild,
94
92
  args: ['result']
95
93
  }] } });
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YWJsZS50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvdGVzdGluZy9vYnNlcnZhYmxlLnRlc3QudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC90ZXN0aW5nL29ic2VydmFibGUudGVzdC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQXlCLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUMsa0JBQWtCLEVBQWdDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzdGLE9BQU8sRUFBYSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUN0QyxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkMsT0FBTyxFQUFDLFNBQVMsRUFBRSxlQUFlLEVBQUMsTUFBTSxVQUFVLENBQUM7OztBQVFwRCxNQUFNLE9BQU8sa0JBQWtCO0lBRTdCLFlBQVksR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRW5DLE1BQU0sR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDO0lBQzVCLGdCQUFnQixHQUFHLENBQUMsQ0FBQztJQUNyQixNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ1gsT0FBTyxHQUEwQjtRQUMvQixJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVk7S0FDeEIsQ0FBQztJQUVtQixTQUFTLENBQWM7SUFFNUM7SUFFQSxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFTO1FBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUc7WUFDYixHQUFHLElBQUksQ0FBQyxPQUFPO1lBQ2YsR0FBRyxJQUFJO1NBQ1IsQ0FBQztR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QUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELEdBQUcsQ0FBQyxPQUFlLEVBQUUsR0FBRyxJQUFTO1FBQy9CLElBQUksV0FBVyxHQUFHLEdBQUcsZUFBZSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxNQUFNLE9BQU8sRUFBRSxDQUFDO1FBQ3hFLElBQUksSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ2pCLFdBQVcsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQztRQUNqRixDQUFDO1FBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsU0FBUyxDQUFDLE9BQWU7UUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsU0FBUyxJQUFJLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDOUQsQ0FBQzt1R0FyR1Usa0JBQWtCOzJGQUFsQixrQkFBa0IsZ0tDYi9CLDRqRUFxREE7OzJGRHhDYSxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0UscUJBQXFCO3dEQWVWLFNBQVM7c0JBQTdCLFNBQVM7dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkRlc3Ryb3ksIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2ZpcnN0Tm90TmlsUHJvbWlzZSwgRmlyc3RPcHRpb25zLCBXYWl0Rm9yT3B0aW9ucywgd2FpdEZvclRydWV9IGZyb20gJy4uL29ic2VydmFibGVzJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2lzTm90TmlsfSBmcm9tICcuLi9mdW5jdGlvbnMnO1xuaW1wb3J0IHt0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7RGF0ZVV0aWxzLCB0b0RhdGVJU09TdHJpbmd9IGZyb20gJy4uL2RhdGVzJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtb2JzZXJ2YWJsZS10ZXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL29ic2VydmFibGUudGVzdC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vb2JzZXJ2YWJsZS50ZXN0LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBPYnNlcnZhYmxlVGVzdFBhZ2UgaW1wbGVtZW50cyBPbkRlc3Ryb3l7XG5cbiAgX3N0b3BTdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAkdmFsdWUgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG4gIHJ1bm5pbmdUYXNrQ291bnQgPSAwO1xuICB0YXNrSWQgPSAwO1xuICBvcHRpb25zOiBQYXJ0aWFsPEZpcnN0T3B0aW9ucz4gPSB7XG4gICAgc3RvcDogdGhpcy5fc3RvcFN1YmplY3RcbiAgfTtcblxuICBAVmlld0NoaWxkKCdyZXN1bHQnKSByZXN1bHREaXYhOiBFbGVtZW50UmVmO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgICkge1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fc3RvcFN1YmplY3QubmV4dCgpO1xuICB9XG5cbiAgc2V0T3B0aW9ucyhvcHRzOiBhbnkpIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICAuLi5vcHRzXG4gICAgfTtcbiAgICB0aGlzLmxvZygnT3B0aW9ucyBjaGFuZ2VzIHRvOiAnLCB7Li4udGhpcy5vcHRpb25zLCBzdG9wOiB0aGlzLm9wdGlvbnM/LnN0b3AgPyAnJHN0b3AnIDogJ251bGwnfSk7XG4gIH1cblxuICBzZXRPcHRpb25zRXJyb3IoZXJyb3JNZXNzYWdlKSB7XG4gICAgdGhpcy5zZXRPcHRpb25zKHtzdG9wRXJyb3I6IG5ldyBFcnJvcihlcnJvck1lc3NhZ2UpfSk7XG4gIH1cblxuICBhc3luYyBmaXJzdE5vdE5pbFByb21pc2Uob3B0cz86IEZpcnN0T3B0aW9ucykge1xuICAgIGNvbnN0IGxvZ1ByZWZpeCA9IGBbZmlyc3ROb3ROaWxQcm9taXNlKCkgIyR7Kyt0aGlzLnRhc2tJZH1dIGA7XG4gICAgYXdhaXQgdGhpcy5leGVjdXRlKGZpcnN0Tm90TmlsUHJvbWlzZSwgb3B0cywgbG9nUHJlZml4KTtcbiAgfVxuXG4gIGFzeW5jIHdhaXRGb3JUcnVlKG9wdHM/OiBXYWl0Rm9yT3B0aW9ucykge1xuICAgIGNvbnN0IGxvZ1ByZWZpeCA9IGBbd2FpdEZvclRydWUoKSAjJHsrK3RoaXMudGFza0lkfV0gYDtcbiAgICBhd2FpdCB0aGlzLmV4ZWN1dGUod2FpdEZvclRydWUsIG9wdHMsIGxvZ1ByZWZpeCk7XG4gIH1cblxuXG4gIGFzeW5jIGV4ZWN1dGU8VCwgTyBleHRlbmRzIFdhaXRGb3JPcHRpb25zID0gV2FpdEZvck9wdGlvbnM+KFxuICAgIGZuOiAobzogT2JzZXJ2YWJsZTxhbnk+LCBvcHRzOiBPKSA9PiBQcm9taXNlPFQ+LFxuICAgIG9wdHM/OiBPLFxuICAgIGxvZ1ByZWZpeD86IHN0cmluZykge1xuXG4gICAgb3B0cyA9IHtcbiAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgIHN0b3A6IHRoaXMuX3N0b3BTdWJqZWN0LFxuICAgICAgLi4ub3B0c1xuICAgIH07XG4gICAgbG9nUHJlZml4ID0gbG9nUHJlZml4IHx8IGBbIyR7Kyt0aGlzLnRhc2tJZH1dIGA7XG5cbiAgICBjb25zdCB2YWx1ZSQgPSB0aGlzLiR2YWx1ZS5waXBlKFxuICAgICAgdGFwKHZhbHVlID0+IHRoaXMubG9nKGxvZ1ByZWZpeCArIGBSZWNlaXZlZCB2YWx1ZTogJHt2YWx1ZX1gKSlcbiAgICApO1xuXG4gICAgdHJ5IHtcbiAgICAgIHRoaXMucnVubmluZ1Rhc2tDb3VudCsrO1xuICAgICAgdGhpcy5sb2cobG9nUHJlZml4ICsgJ1dhaXRpbmcuLi4nKTtcblxuICAgICAgLy8gRXhlY3V0ZSB0aGUgYXN5bmMgZnVuY3Rpb25cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGZuKHZhbHVlJCwgb3B0cyk7XG5cbiAgICAgIC8vIER1bXAgcmVzdWx0XG4gICAgICBpZiAoaXNOb3ROaWwocmVzdWx0KSkgdGhpcy5sb2cobG9nUHJlZml4ICsgJ1tPS10gd2l0aCByZXN1bHQ6JywgcmVzdWx0KTtcbiAgICAgIGVsc2UgIHRoaXMubG9nKGxvZ1ByZWZpeCArICdbT0tdJyk7XG4gICAgfVxuICAgIGNhdGNoKGVycikge1xuICAgICAgY29uc3QgZXJyb3JNc2cgPSBsb2dQcmVmaXggKyAnRXJyb3I6ICcgKyAoZXJyPy5tZXNzYWdlIHx8ICcnKTtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3JNc2csIGVycik7XG4gICAgICB0aGlzLmxvZyhlcnJvck1zZ1xuICAgICAgICArIChlcnI/Lm9yaWdpbmFsU3RhY2sgPyBgPHByZT4ke2Vyci5vcmlnaW5hbFN0YWNrfTwvcHJlPmAgOiAnJylcbiAgICAgICk7XG4gICAgfVxuICAgIGZpbmFsbHkge1xuICAgICAgdGhpcy5ydW5uaW5nVGFza0NvdW50LS07XG4gICAgfVxuICB9XG5cbiAgZW1pdCh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy4kdmFsdWUubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBzdG9wKCkge1xuICAgIHRoaXMuX3N0b3BTdWJqZWN0Lm5leHQoKTtcbiAgfVxuXG4gIGxvZyhtZXNzYWdlOiBzdHJpbmcsIC4uLmFyZ3M6IGFueSkge1xuICAgIGxldCBmdWxsTWVzc2FnZSA9IGAke3RvRGF0ZUlTT1N0cmluZyhEYXRlVXRpbHMubW9tZW50KCkpfSAtICR7bWVzc2FnZX1gO1xuICAgIGlmIChhcmdzPy5sZW5ndGgpIHtcbiAgICAgIGZ1bGxNZXNzYWdlICs9ICcgLSA8c21hbGw+JyArIGFyZ3MubWFwKEpTT04uc3RyaW5naWZ5KS5qb2luKCcsICcpICsgJzwvc21hbGw+JztcbiAgICB9XG4gICAgdGhpcy5hcHBlbmRMb2coZnVsbE1lc3NhZ2UpO1xuICB9XG5cbiAgYXBwZW5kTG9nKG1lc3NhZ2U6IHN0cmluZykge1xuICAgIHRoaXMucmVzdWx0RGl2Lm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MICs9IG1lc3NhZ2UgKyAnPGJyLz4nO1xuICB9XG59XG5cbiIsIlxuPGlvbi1oZWFkZXI+XG4gIDxpb24tdG9vbGJhciBjb2xvcj1cInByaW1hcnlcIj5cblxuICAgIDxpb24tYnV0dG9ucyBzbG90PVwic3RhcnRcIj5cbiAgICAgIDxpb24tYmFjay1idXR0b24+PC9pb24tYmFjay1idXR0b24+XG4gICAgPC9pb24tYnV0dG9ucz5cblxuICAgIDxpb24tdGl0bGU+T2JzZXJ2YWJsZXMgdGVzdCBwYWdlPC9pb24tdGl0bGU+XG4gIDwvaW9uLXRvb2xiYXI+XG48L2lvbi1oZWFkZXI+XG5cbjxpb24tY29udGVudCBjbGFzcz1cImlvbi1wYWRkaW5nXCI+XG5cbiAgPGlvbi1jYXJkPlxuICAgIDxpb24tY2FyZC1oZWFkZXI+XG4gICAgICA8aW9uLWNhcmQtdGl0bGU+d2FpdEZvciwgd2FpdEZvclRydWUsIHdhaXRGb3JGYWxzZTwvaW9uLWNhcmQtdGl0bGU+XG4gICAgPC9pb24tY2FyZC1oZWFkZXI+XG4gICAgPGlvbi1jYXJkLWNvbnRlbnQ+XG4gICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogaW5saW5lLWJsb2NrXCI+XG4gICAgICAgIDxwPlNldCBvcHRpb25zOiA8L3A+XG4gICAgICAgIDxpb24tYnV0dG9uIGNvbG9yPVwibWVkaXVtXCIgZmlsbD1cIm91dGxpbmVcIiAoY2xpY2spPVwic2V0T3B0aW9ucyh7c3RvcEVycm9yOiBmYWxzZX0pXCI+c3RvcEVycm9yOiBmYWxzZTwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPGlvbi1idXR0b24gY29sb3I9XCJtZWRpdW1cIiBmaWxsPVwib3V0bGluZVwiIChjbGljayk9XCJzZXRPcHRpb25zKHtzdG9wRXJyb3I6IHRydWV9KVwiPnN0b3BFcnJvcjogdHJ1ZTwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPGlvbi1idXR0b24gY29sb3I9XCJtZWRpdW1cIiBmaWxsPVwib3V0bGluZVwiIChjbGljayk9XCJzZXRPcHRpb25zKHtzdG9wRXJyb3I6ICdteSBlcnJvcid9KVwiPnN0b3BFcnJvcjogJ215IGVycm9yJzwvaW9uLWJ1dHRvbj5cblxuICAgICAgICA8aW9uLWJ1dHRvbiBjb2xvcj1cIm1lZGl1bVwiIGZpbGw9XCJvdXRsaW5lXCIgKGNsaWNrKT1cInNldE9wdGlvbnMoe3RpbWVvdXQ6IDIwMDB9KVwiPnRpbWVvdXQ6IDIwMDA8L2lvbi1idXR0b24+XG4gICAgICAgIDxpb24tYnV0dG9uIGNvbG9yPVwibWVkaXVtXCIgZmlsbD1cIm91dGxpbmVcIiAoY2xpY2spPVwic2V0T3B0aW9ucyh7dGltZW91dDogbnVsbH0pXCI+dGltZW91dDogbnVsbDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPGJyLz5cbiAgICAgICAgPHA+Q2FsbCBhd2FpdCBmdW5jdGlvbjogPC9wPlxuICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwid2FpdEZvclRydWUoKVwiPndhaXRGb3JUcnVlPC9pb24tYnV0dG9uPlxuICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwiZmlyc3ROb3ROaWxQcm9taXNlKClcIj5maXJzdE5vdE5pbFByb21pc2U8L2lvbi1idXR0b24+XG4gICAgICAgIDxici8+XG4gICAgICAgIDxwPlNlbmQgZXZlbnQgdG8gc291cmNlOiA8L3A+XG4gICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJlbWl0KHRydWUpXCI+RW1pdCAndHJ1ZSc8L2lvbi1idXR0b24+XG4gICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJlbWl0KGZhbHNlKVwiPkVtaXQgJ2ZhbHNlJzwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPGJyLz5cbiAgICAgICAgPHA+U3RvcDogPC9wPlxuICAgICAgICA8aW9uLWJ1dHRvbiBjb2xvcj1cImRhbmdlclwiIChjbGljayk9XCJzdG9wKClcIj5TdG9wPC9pb24tYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9pb24tY2FyZC1jb250ZW50PlxuICA8L2lvbi1jYXJkPlxuXG4gIDxpb24tY2FyZD5cbiAgICA8aW9uLXRvb2xiYXI+XG4gICAgICA8aW9uLXRpdGxlPlJ1bm5pbmcgam9iIGNvdW50OiB7e3J1bm5pbmdUYXNrQ291bnR9fTwvaW9uLXRpdGxlPlxuICAgICAgPGlvbi1idXR0b24gZmlsbD1cIm91dGxpbmVcIiBzbG90PVwiZW5kXCIgKGNsaWNrKT1cInJlc3VsdC5pbm5lckhUTUw9JydcIj5DbGVhciBsb2c8L2lvbi1idXR0b24+XG4gICAgPC9pb24tdG9vbGJhcj5cbiAgICA8aW9uLWNhcmQtY29udGVudD5cbiAgICAgIDxkaXYgI3Jlc3VsdCBzdHlsZT1cImNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtKVwiPlxuICAgICAgPC9kaXY+XG4gICAgPC9pb24tY2FyZC1jb250ZW50PlxuICA8L2lvbi1jYXJkPlxuPC9pb24tY29udGVudD5cbiJdfQ==
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YWJsZS50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvdGVzdGluZy9vYnNlcnZhYmxlLnRlc3QudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC90ZXN0aW5nL29ic2VydmFibGUudGVzdC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXlCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsa0JBQWtCLEVBQWdDLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9GLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSxVQUFVLENBQUM7OztBQU90RCxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLFlBQVksR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRW5DLE1BQU0sR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDO0lBQzVCLGdCQUFnQixHQUFHLENBQUMsQ0FBQztJQUNyQixNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ1gsT0FBTyxHQUEwQjtRQUMvQixJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVk7S0FDeEIsQ0FBQztJQUVtQixTQUFTLENBQWM7SUFFNUMsZ0JBQWUsQ0FBQztJQUVoQixXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsVUFBVSxDQUFDLElBQVM7UUFDbEIsSUFBSSxDQUFDLE9BQU8sR0FBRztZQUNiLEdBQUcsSUFBSSxDQUFDLE9BQU87WUFDZixHQUFHLElBQUk7U0FDUixDQUFD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QUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsR0FBRyxDQUFDLE9BQWUsRUFBRSxHQUFHLElBQVM7UUFDL0IsSUFBSSxXQUFXLEdBQUcsR0FBRyxlQUFlLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQU0sT0FBTyxFQUFFLENBQUM7UUFDeEUsSUFBSSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDakIsV0FBVyxJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDO1FBQ2pGLENBQUM7UUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxTQUFTLENBQUMsT0FBZTtRQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxTQUFTLElBQUksT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUM5RCxDQUFDO3VHQXZGVSxrQkFBa0I7MkZBQWxCLGtCQUFrQixnS0NaL0IsdW1FQXFEQTs7MkZEekNhLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxxQkFBcUI7d0RBY1YsU0FBUztzQkFBN0IsU0FBUzt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkRlc3Ryb3ksIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmlyc3ROb3ROaWxQcm9taXNlLCBGaXJzdE9wdGlvbnMsIFdhaXRGb3JPcHRpb25zLCB3YWl0Rm9yVHJ1ZSB9IGZyb20gJy4uL29ic2VydmFibGVzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGlzTm90TmlsIH0gZnJvbSAnLi4vZnVuY3Rpb25zJztcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IERhdGVVdGlscywgdG9EYXRlSVNPU3RyaW5nIH0gZnJvbSAnLi4vZGF0ZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtb2JzZXJ2YWJsZS10ZXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL29ic2VydmFibGUudGVzdC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vb2JzZXJ2YWJsZS50ZXN0LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgT2JzZXJ2YWJsZVRlc3RQYWdlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgX3N0b3BTdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAkdmFsdWUgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG4gIHJ1bm5pbmdUYXNrQ291bnQgPSAwO1xuICB0YXNrSWQgPSAwO1xuICBvcHRpb25zOiBQYXJ0aWFsPEZpcnN0T3B0aW9ucz4gPSB7XG4gICAgc3RvcDogdGhpcy5fc3RvcFN1YmplY3QsXG4gIH07XG5cbiAgQFZpZXdDaGlsZCgncmVzdWx0JykgcmVzdWx0RGl2ITogRWxlbWVudFJlZjtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fc3RvcFN1YmplY3QubmV4dCgpO1xuICB9XG5cbiAgc2V0T3B0aW9ucyhvcHRzOiBhbnkpIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICAuLi5vcHRzLFxuICAgIH07XG4gICAgdGhpcy5sb2coJ09wdGlvbnMgY2hhbmdlcyB0bzogJywgeyAuLi50aGlzLm9wdGlvbnMsIHN0b3A6IHRoaXMub3B0aW9ucz8uc3RvcCA/ICckc3RvcCcgOiAnbnVsbCcgfSk7XG4gIH1cblxuICBzZXRPcHRpb25zRXJyb3IoZXJyb3JNZXNzYWdlKSB7XG4gICAgdGhpcy5zZXRPcHRpb25zKHsgc3RvcEVycm9yOiBuZXcgRXJyb3IoZXJyb3JNZXNzYWdlKSB9KTtcbiAgfVxuXG4gIGFzeW5jIGZpcnN0Tm90TmlsUHJvbWlzZShvcHRzPzogRmlyc3RPcHRpb25zKSB7XG4gICAgY29uc3QgbG9nUHJlZml4ID0gYFtmaXJzdE5vdE5pbFByb21pc2UoKSAjJHsrK3RoaXMudGFza0lkfV0gYDtcbiAgICBhd2FpdCB0aGlzLmV4ZWN1dGUoZmlyc3ROb3ROaWxQcm9taXNlLCBvcHRzLCBsb2dQcmVmaXgpO1xuICB9XG5cbiAgYXN5bmMgd2FpdEZvclRydWUob3B0cz86IFdhaXRGb3JPcHRpb25zKSB7XG4gICAgY29uc3QgbG9nUHJlZml4ID0gYFt3YWl0Rm9yVHJ1ZSgpICMkeysrdGhpcy50YXNrSWR9XSBgO1xuICAgIGF3YWl0IHRoaXMuZXhlY3V0ZSh3YWl0Rm9yVHJ1ZSwgb3B0cywgbG9nUHJlZml4KTtcbiAgfVxuXG4gIGFzeW5jIGV4ZWN1dGU8VCwgTyBleHRlbmRzIFdhaXRGb3JPcHRpb25zID0gV2FpdEZvck9wdGlvbnM+KGZuOiAobzogT2JzZXJ2YWJsZTxhbnk+LCBvcHRzOiBPKSA9PiBQcm9taXNlPFQ+LCBvcHRzPzogTywgbG9nUHJlZml4Pzogc3RyaW5nKSB7XG4gICAgb3B0cyA9IHtcbiAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgIHN0b3A6IHRoaXMuX3N0b3BTdWJqZWN0LFxuICAgICAgLi4ub3B0cyxcbiAgICB9O1xuICAgIGxvZ1ByZWZpeCA9IGxvZ1ByZWZpeCB8fCBgWyMkeysrdGhpcy50YXNrSWR9XSBgO1xuXG4gICAgY29uc3QgdmFsdWUkID0gdGhpcy4kdmFsdWUucGlwZSh0YXAoKHZhbHVlKSA9PiB0aGlzLmxvZyhsb2dQcmVmaXggKyBgUmVjZWl2ZWQgdmFsdWU6ICR7dmFsdWV9YCkpKTtcblxuICAgIHRyeSB7XG4gICAgICB0aGlzLnJ1bm5pbmdUYXNrQ291bnQrKztcbiAgICAgIHRoaXMubG9nKGxvZ1ByZWZpeCArICdXYWl0aW5nLi4uJyk7XG5cbiAgICAgIC8vIEV4ZWN1dGUgdGhlIGFzeW5jIGZ1bmN0aW9uXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBmbih2YWx1ZSQsIG9wdHMpO1xuXG4gICAgICAvLyBEdW1wIHJlc3VsdFxuICAgICAgaWYgKGlzTm90TmlsKHJlc3VsdCkpIHRoaXMubG9nKGxvZ1ByZWZpeCArICdbT0tdIHdpdGggcmVzdWx0OicsIHJlc3VsdCk7XG4gICAgICBlbHNlIHRoaXMubG9nKGxvZ1ByZWZpeCArICdbT0tdJyk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zdCBlcnJvck1zZyA9IGxvZ1ByZWZpeCArICdFcnJvcjogJyArIChlcnI/Lm1lc3NhZ2UgfHwgJycpO1xuICAgICAgY29uc29sZS5lcnJvcihlcnJvck1zZywgZXJyKTtcbiAgICAgIHRoaXMubG9nKGVycm9yTXNnICsgKGVycj8ub3JpZ2luYWxTdGFjayA/IGA8cHJlPiR7ZXJyLm9yaWdpbmFsU3RhY2t9PC9wcmU+YCA6ICcnKSk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMucnVubmluZ1Rhc2tDb3VudC0tO1xuICAgIH1cbiAgfVxuXG4gIGVtaXQodmFsdWU6IGFueSkge1xuICAgIHRoaXMuJHZhbHVlLm5leHQodmFsdWUpO1xuICB9XG5cbiAgc3RvcCgpIHtcbiAgICB0aGlzLl9zdG9wU3ViamVjdC5uZXh0KCk7XG4gIH1cblxuICBsb2cobWVzc2FnZTogc3RyaW5nLCAuLi5hcmdzOiBhbnkpIHtcbiAgICBsZXQgZnVsbE1lc3NhZ2UgPSBgJHt0b0RhdGVJU09TdHJpbmcoRGF0ZVV0aWxzLm1vbWVudCgpKX0gLSAke21lc3NhZ2V9YDtcbiAgICBpZiAoYXJncz8ubGVuZ3RoKSB7XG4gICAgICBmdWxsTWVzc2FnZSArPSAnIC0gPHNtYWxsPicgKyBhcmdzLm1hcChKU09OLnN0cmluZ2lmeSkuam9pbignLCAnKSArICc8L3NtYWxsPic7XG4gICAgfVxuICAgIHRoaXMuYXBwZW5kTG9nKGZ1bGxNZXNzYWdlKTtcbiAgfVxuXG4gIGFwcGVuZExvZyhtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnJlc3VsdERpdi5uYXRpdmVFbGVtZW50LmlubmVySFRNTCArPSBtZXNzYWdlICsgJzxici8+JztcbiAgfVxufVxuIiwiPGlvbi1oZWFkZXI+XG4gIDxpb24tdG9vbGJhciBjb2xvcj1cInByaW1hcnlcIj5cbiAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cInN0YXJ0XCI+XG4gICAgICA8aW9uLWJhY2stYnV0dG9uPjwvaW9uLWJhY2stYnV0dG9uPlxuICAgIDwvaW9uLWJ1dHRvbnM+XG5cbiAgICA8aW9uLXRpdGxlPk9ic2VydmFibGVzIHRlc3QgcGFnZTwvaW9uLXRpdGxlPlxuICA8L2lvbi10b29sYmFyPlxuPC9pb24taGVhZGVyPlxuXG48aW9uLWNvbnRlbnQgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuICA8aW9uLWNhcmQ+XG4gICAgPGlvbi1jYXJkLWhlYWRlcj5cbiAgICAgIDxpb24tY2FyZC10aXRsZT53YWl0Rm9yLCB3YWl0Rm9yVHJ1ZSwgd2FpdEZvckZhbHNlPC9pb24tY2FyZC10aXRsZT5cbiAgICA8L2lvbi1jYXJkLWhlYWRlcj5cbiAgICA8aW9uLWNhcmQtY29udGVudD5cbiAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBpbmxpbmUtYmxvY2tcIj5cbiAgICAgICAgPHA+U2V0IG9wdGlvbnM6PC9wPlxuICAgICAgICA8aW9uLWJ1dHRvbiBjb2xvcj1cIm1lZGl1bVwiIGZpbGw9XCJvdXRsaW5lXCIgKGNsaWNrKT1cInNldE9wdGlvbnMoeyBzdG9wRXJyb3I6IGZhbHNlIH0pXCI+XG4gICAgICAgICAgc3RvcEVycm9yOiBmYWxzZVxuICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgIDxpb24tYnV0dG9uIGNvbG9yPVwibWVkaXVtXCIgZmlsbD1cIm91dGxpbmVcIiAoY2xpY2spPVwic2V0T3B0aW9ucyh7IHN0b3BFcnJvcjogdHJ1ZSB9KVwiPnN0b3BFcnJvcjogdHJ1ZTwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPGlvbi1idXR0b24gY29sb3I9XCJtZWRpdW1cIiBmaWxsPVwib3V0bGluZVwiIChjbGljayk9XCJzZXRPcHRpb25zKHsgc3RvcEVycm9yOiAnbXkgZXJyb3InIH0pXCI+XG4gICAgICAgICAgc3RvcEVycm9yOiAnbXkgZXJyb3InXG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cblxuICAgICAgICA8aW9uLWJ1dHRvbiBjb2xvcj1cIm1lZGl1bVwiIGZpbGw9XCJvdXRsaW5lXCIgKGNsaWNrKT1cInNldE9wdGlvbnMoeyB0aW1lb3V0OiAyMDAwIH0pXCI+dGltZW91dDogMjAwMDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPGlvbi1idXR0b24gY29sb3I9XCJtZWRpdW1cIiBmaWxsPVwib3V0bGluZVwiIChjbGljayk9XCJzZXRPcHRpb25zKHsgdGltZW91dDogbnVsbCB9KVwiPnRpbWVvdXQ6IG51bGw8L2lvbi1idXR0b24+XG4gICAgICAgIDxiciAvPlxuICAgICAgICA8cD5DYWxsIGF3YWl0IGZ1bmN0aW9uOjwvcD5cbiAgICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cIndhaXRGb3JUcnVlKClcIj53YWl0Rm9yVHJ1ZTwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cImZpcnN0Tm90TmlsUHJvbWlzZSgpXCI+Zmlyc3ROb3ROaWxQcm9taXNlPC9pb24tYnV0dG9uPlxuICAgICAgICA8YnIgLz5cbiAgICAgICAgPHA+U2VuZCBldmVudCB0byBzb3VyY2U6PC9wPlxuICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwiZW1pdCh0cnVlKVwiPkVtaXQgJ3RydWUnPC9pb24tYnV0dG9uPlxuICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwiZW1pdChmYWxzZSlcIj5FbWl0ICdmYWxzZSc8L2lvbi1idXR0b24+XG4gICAgICAgIDxiciAvPlxuICAgICAgICA8cD5TdG9wOjwvcD5cbiAgICAgICAgPGlvbi1idXR0b24gY29sb3I9XCJkYW5nZXJcIiAoY2xpY2spPVwic3RvcCgpXCI+U3RvcDwvaW9uLWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvaW9uLWNhcmQtY29udGVudD5cbiAgPC9pb24tY2FyZD5cblxuICA8aW9uLWNhcmQ+XG4gICAgPGlvbi10b29sYmFyPlxuICAgICAgPGlvbi10aXRsZT5SdW5uaW5nIGpvYiBjb3VudDoge3sgcnVubmluZ1Rhc2tDb3VudCB9fTwvaW9uLXRpdGxlPlxuICAgICAgPGlvbi1idXR0b24gZmlsbD1cIm91dGxpbmVcIiBzbG90PVwiZW5kXCIgKGNsaWNrKT1cInJlc3VsdC5pbm5lckhUTUwgPSAnJ1wiPkNsZWFyIGxvZzwvaW9uLWJ1dHRvbj5cbiAgICA8L2lvbi10b29sYmFyPlxuICAgIDxpb24tY2FyZC1jb250ZW50PlxuICAgICAgPGRpdiAjcmVzdWx0IHN0eWxlPVwiY29sb3I6IHZhcigtLWlvbi1jb2xvci1tZWRpdW0pXCI+PC9kaXY+XG4gICAgPC9pb24tY2FyZC1jb250ZW50PlxuICA8L2lvbi1jYXJkPlxuPC9pb24tY29udGVudD5cbiJdfQ==
@@ -19,19 +19,19 @@ export class SharedTestsPage {
19
19
  }
20
20
  async openPage(page) {
21
21
  return this.router.navigate([page], {
22
- relativeTo: this.route
22
+ relativeTo: this.route,
23
23
  });
24
24
  }
25
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: SharedTestsPage, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }, { token: i2.TranslateService }, { token: APP_TESTING_PAGES, optional: true }], target: i0.ɵɵFactoryTarget.Component });
26
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: SharedTestsPage, selector: "app-tests-page", ngImport: i0, template: "\n<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-menu-button></ion-menu-button>\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Tests</ion-title>\n\n </ion-toolbar>\n</ion-header>\n\n<ion-content>\n\n <ion-list *ngIf=\"pages?.length\">\n\n <ng-container *ngFor=\"let item of pages\">\n\n <ion-item-divider *ngIf=\"item.divider; else link\">{{item.label}}</ion-item-divider>\n\n <ng-template #link>\n <ion-item tappable class=\"text-1x\"\n (click)=\"openPage(item.page)\">{{item.label}}</ion-item>\n </ng-template>\n </ng-container>\n </ion-list>\n\n</ion-content>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i4.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i4.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i4.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i4.IonItemDivider, selector: "ion-item-divider", inputs: ["color", "mode", "sticky"] }, { kind: "component", type: i4.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i4.IonMenuButton, selector: "ion-menu-button", inputs: ["autoHide", "color", "disabled", "menu", "mode", "type"] }, { kind: "component", type: i4.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i4.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i4.IonBackButton, selector: "ion-back-button" }] });
25
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: SharedTestsPage, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }, { token: i2.TranslateService }, { token: APP_TESTING_PAGES, optional: true }], target: i0.ɵɵFactoryTarget.Component });
26
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: SharedTestsPage, selector: "app-tests-page", ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"primary\">\n <ion-buttons slot=\"start\">\n <ion-menu-button></ion-menu-button>\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Tests</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content>\n <ion-list *ngIf=\"pages?.length\">\n <ng-container *ngFor=\"let item of pages\">\n <ion-item-divider *ngIf=\"item.divider; else link\">{{ item.label }}</ion-item-divider>\n\n <ng-template #link>\n <ion-item tappable class=\"text-1x\" (click)=\"openPage(item.page)\">{{ item.label }}</ion-item>\n </ng-template>\n </ng-container>\n </ion-list>\n</ion-content>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i4.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i4.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i4.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i4.IonItemDivider, selector: "ion-item-divider", inputs: ["color", "mode", "sticky"] }, { kind: "component", type: i4.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i4.IonMenuButton, selector: "ion-menu-button", inputs: ["autoHide", "color", "disabled", "menu", "mode", "type"] }, { kind: "component", type: i4.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i4.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i4.IonBackButton, selector: "ion-back-button" }] });
27
27
  }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: SharedTestsPage, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: SharedTestsPage, decorators: [{
29
29
  type: Component,
30
- args: [{ selector: 'app-tests-page', template: "\n<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-menu-button></ion-menu-button>\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Tests</ion-title>\n\n </ion-toolbar>\n</ion-header>\n\n<ion-content>\n\n <ion-list *ngIf=\"pages?.length\">\n\n <ng-container *ngFor=\"let item of pages\">\n\n <ion-item-divider *ngIf=\"item.divider; else link\">{{item.label}}</ion-item-divider>\n\n <ng-template #link>\n <ion-item tappable class=\"text-1x\"\n (click)=\"openPage(item.page)\">{{item.label}}</ion-item>\n </ng-template>\n </ng-container>\n </ion-list>\n\n</ion-content>\n" }]
30
+ args: [{ selector: 'app-tests-page', template: "<ion-header>\n <ion-toolbar color=\"primary\">\n <ion-buttons slot=\"start\">\n <ion-menu-button></ion-menu-button>\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Tests</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content>\n <ion-list *ngIf=\"pages?.length\">\n <ng-container *ngFor=\"let item of pages\">\n <ion-item-divider *ngIf=\"item.divider; else link\">{{ item.label }}</ion-item-divider>\n\n <ng-template #link>\n <ion-item tappable class=\"text-1x\" (click)=\"openPage(item.page)\">{{ item.label }}</ion-item>\n </ng-template>\n </ng-container>\n </ion-list>\n</ion-content>\n" }]
31
31
  }], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.TranslateService }, { type: undefined, decorators: [{
32
32
  type: Optional
33
33
  }, {
34
34
  type: Inject,
35
35
  args: [APP_TESTING_PAGES]
36
36
  }] }] });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdHMucGFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3Rlc3RpbmcvdGVzdHMucGFnZS50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3Rlc3RpbmcvdGVzdHMucGFnZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7Ozs7OztBQVUxRSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGNBQWMsQ0FBZ0IsY0FBYyxDQUFDLENBQUM7QUFNbkYsTUFBTSxPQUFPLGVBQWU7SUFHWjtJQUNBO0lBQ0E7SUFDb0M7SUFKbEQsWUFDYyxLQUFxQixFQUNyQixNQUFjLEVBQ2QsU0FBMkIsRUFDUyxLQUFvQjtRQUh4RCxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDUyxVQUFLLEdBQUwsS0FBSyxDQUFlO1FBRXBFLE9BQU8sQ0FBQyxJQUFJLENBQUMsK0JBQStCLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSTtRQUNqQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDbEMsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLO1NBQ3ZCLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBZlUsZUFBZSxzR0FNRixpQkFBaUI7MkZBTjlCLGVBQWUsc0RDaEI1Qix5ckJBOEJBOzsyRkRkYSxlQUFlO2tCQUozQixTQUFTOytCQUNFLGdCQUFnQjs7MEJBU3JCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEluamVjdCwgSW5qZWN0aW9uVG9rZW4sIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXN0aW5nUGFnZSB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHBhZ2U/OiBzdHJpbmc7XG4gIGRpdmlkZXI/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3QgQVBQX1RFU1RJTkdfUEFHRVMgPSBuZXcgSW5qZWN0aW9uVG9rZW48VGVzdGluZ1BhZ2VbXT4oJ3Rlc3RpbmdQYWdlcycpO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtdGVzdHMtcGFnZScsXG4gIHRlbXBsYXRlVXJsOiAnLi90ZXN0cy5wYWdlLmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFNoYXJlZFRlc3RzUGFnZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBwcm90ZWN0ZWQgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgcHJvdGVjdGVkIHJvdXRlcjogUm91dGVyLFxuICAgICAgcHJvdGVjdGVkIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQVBQX1RFU1RJTkdfUEFHRVMpIHB1YmxpYyBwYWdlczogVGVzdGluZ1BhZ2VbXVxuICAgICkge1xuICAgIGNvbnNvbGUuaW5mbygnW3Rlc3RpbmddIExvYWRlZCB0ZXN0cyBwYWdlczonLCBwYWdlcyk7XG4gIH1cblxuICBhc3luYyBvcGVuUGFnZShwYWdlKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMucm91dGVyLm5hdmlnYXRlKFtwYWdlXSwge1xuICAgICAgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZVxuICAgIH0pO1xuICB9XG59XG5cbiIsIlxuPGlvbi1oZWFkZXI+XG4gIDxpb24tdG9vbGJhciBjb2xvcj1cInByaW1hcnlcIj5cblxuICAgIDxpb24tYnV0dG9ucyBzbG90PVwic3RhcnRcIj5cbiAgICAgIDxpb24tbWVudS1idXR0b24+PC9pb24tbWVudS1idXR0b24+XG4gICAgICA8aW9uLWJhY2stYnV0dG9uPjwvaW9uLWJhY2stYnV0dG9uPlxuICAgIDwvaW9uLWJ1dHRvbnM+XG5cbiAgICA8aW9uLXRpdGxlPlRlc3RzPC9pb24tdGl0bGU+XG5cbiAgPC9pb24tdG9vbGJhcj5cbjwvaW9uLWhlYWRlcj5cblxuPGlvbi1jb250ZW50PlxuXG4gIDxpb24tbGlzdCAqbmdJZj1cInBhZ2VzPy5sZW5ndGhcIj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcGFnZXNcIj5cblxuICAgICAgPGlvbi1pdGVtLWRpdmlkZXIgKm5nSWY9XCJpdGVtLmRpdmlkZXI7IGVsc2UgbGlua1wiPnt7aXRlbS5sYWJlbH19PC9pb24taXRlbS1kaXZpZGVyPlxuXG4gICAgICA8bmctdGVtcGxhdGUgI2xpbms+XG4gICAgICAgIDxpb24taXRlbSB0YXBwYWJsZSBjbGFzcz1cInRleHQtMXhcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5QYWdlKGl0ZW0ucGFnZSlcIj57e2l0ZW0ubGFiZWx9fTwvaW9uLWl0ZW0+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2lvbi1saXN0PlxuXG48L2lvbi1jb250ZW50PlxuIl19
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdHMucGFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3Rlc3RpbmcvdGVzdHMucGFnZS50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3Rlc3RpbmcvdGVzdHMucGFnZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQVU1RSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGNBQWMsQ0FBZ0IsY0FBYyxDQUFDLENBQUM7QUFNbkYsTUFBTSxPQUFPLGVBQWU7SUFFZDtJQUNBO0lBQ0E7SUFDb0M7SUFKaEQsWUFDWSxLQUFxQixFQUNyQixNQUFjLEVBQ2QsU0FBMkIsRUFDUyxLQUFvQjtRQUh4RCxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDUyxVQUFLLEdBQUwsS0FBSyxDQUFlO1FBRWxFLE9BQU8sQ0FBQyxJQUFJLENBQUMsK0JBQStCLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSTtRQUNqQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDbEMsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLO1NBQ3ZCLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBZFUsZUFBZSxzR0FLSixpQkFBaUI7MkZBTDVCLGVBQWUsc0RDaEI1Qiw0cEJBc0JBOzsyRkROYSxlQUFlO2tCQUozQixTQUFTOytCQUNFLGdCQUFnQjs7MEJBUXZCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIEluamVjdGlvblRva2VuLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXN0aW5nUGFnZSB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHBhZ2U/OiBzdHJpbmc7XG4gIGRpdmlkZXI/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3QgQVBQX1RFU1RJTkdfUEFHRVMgPSBuZXcgSW5qZWN0aW9uVG9rZW48VGVzdGluZ1BhZ2VbXT4oJ3Rlc3RpbmdQYWdlcycpO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtdGVzdHMtcGFnZScsXG4gIHRlbXBsYXRlVXJsOiAnLi90ZXN0cy5wYWdlLmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBTaGFyZWRUZXN0c1BhZ2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByb3RlY3RlZCByb3V0ZXI6IFJvdXRlcixcbiAgICBwcm90ZWN0ZWQgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQVBQX1RFU1RJTkdfUEFHRVMpIHB1YmxpYyBwYWdlczogVGVzdGluZ1BhZ2VbXVxuICApIHtcbiAgICBjb25zb2xlLmluZm8oJ1t0ZXN0aW5nXSBMb2FkZWQgdGVzdHMgcGFnZXM6JywgcGFnZXMpO1xuICB9XG5cbiAgYXN5bmMgb3BlblBhZ2UocGFnZSk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbcGFnZV0sIHtcbiAgICAgIHJlbGF0aXZlVG86IHRoaXMucm91dGUsXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxpb24taGVhZGVyPlxuICA8aW9uLXRvb2xiYXIgY29sb3I9XCJwcmltYXJ5XCI+XG4gICAgPGlvbi1idXR0b25zIHNsb3Q9XCJzdGFydFwiPlxuICAgICAgPGlvbi1tZW51LWJ1dHRvbj48L2lvbi1tZW51LWJ1dHRvbj5cbiAgICAgIDxpb24tYmFjay1idXR0b24+PC9pb24tYmFjay1idXR0b24+XG4gICAgPC9pb24tYnV0dG9ucz5cblxuICAgIDxpb24tdGl0bGU+VGVzdHM8L2lvbi10aXRsZT5cbiAgPC9pb24tdG9vbGJhcj5cbjwvaW9uLWhlYWRlcj5cblxuPGlvbi1jb250ZW50PlxuICA8aW9uLWxpc3QgKm5nSWY9XCJwYWdlcz8ubGVuZ3RoXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBwYWdlc1wiPlxuICAgICAgPGlvbi1pdGVtLWRpdmlkZXIgKm5nSWY9XCJpdGVtLmRpdmlkZXI7IGVsc2UgbGlua1wiPnt7IGl0ZW0ubGFiZWwgfX08L2lvbi1pdGVtLWRpdmlkZXI+XG5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjbGluaz5cbiAgICAgICAgPGlvbi1pdGVtIHRhcHBhYmxlIGNsYXNzPVwidGV4dC0xeFwiIChjbGljayk9XCJvcGVuUGFnZShpdGVtLnBhZ2UpXCI+e3sgaXRlbS5sYWJlbCB9fTwvaW9uLWl0ZW0+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2lvbi1saXN0PlxuPC9pb24tY29udGVudD5cbiJdfQ==
@@ -5,7 +5,7 @@ import * as i1 from "@ionic/angular";
5
5
  export class ToastTestingPage {
6
6
  injector;
7
7
  defaultOptions = {
8
- showCloseButton: false
8
+ showCloseButton: false,
9
9
  };
10
10
  constructor(injector) {
11
11
  this.injector = injector;
@@ -15,38 +15,38 @@ export class ToastTestingPage {
15
15
  ...this.defaultOptions,
16
16
  duration: 5000, // 5s
17
17
  message: 'This is a message',
18
- ...opts
18
+ ...opts,
19
19
  });
20
20
  }
21
21
  showInfo(opts) {
22
22
  return this.showToast({
23
23
  type: 'info',
24
24
  message: 'This is a info text !',
25
- ...opts
25
+ ...opts,
26
26
  });
27
27
  }
28
28
  showWarning(opts) {
29
29
  return this.showToast({
30
30
  type: 'warning',
31
31
  message: 'This is a warning text !',
32
- ...opts
32
+ ...opts,
33
33
  });
34
34
  }
35
35
  showError(opts) {
36
36
  return this.showToast({
37
37
  type: 'error',
38
38
  message: 'This is a error text !',
39
- ...opts
39
+ ...opts,
40
40
  });
41
41
  }
42
42
  toggleCloseButton() {
43
43
  this.defaultOptions.showCloseButton = !this.defaultOptions.showCloseButton;
44
44
  }
45
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: ToastTestingPage, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
46
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: ToastTestingPage, selector: "toast-testing", ngImport: i0, template: "<ion-toolbar color=\"primary\">\n <ion-title>Toasts</ion-title>\n</ion-toolbar>\n\n<ion-content class=\"ion-padding\">\n\n <p>Toast examples:</p>\n\n <ion-button (click)=\"showToast()\" color=\"dark\">\n default\n </ion-button>\n\n <ion-button (click)=\"showInfo()\" color=\"secondary\">\n info\n </ion-button>\n\n <ion-button (click)=\"showWarning()\" color=\"accent\">\n warning\n </ion-button>\n\n <ion-button (click)=\"showError()\" color=\"danger\">\n error\n </ion-button>\n\n <ion-button (click)=\"showInfo({message: 'This is <b>HTML</b> text'})\" color=\"danger\">\n message with HTML\n </ion-button>\n <br/>\n\n\n <ion-list>\n\n\n <ion-item>\n <ion-checkbox [value]=\"defaultOptions.showCloseButton\" (ionChange)=\"toggleCloseButton()\">\n <ion-label>Close button ?</ion-label>\n </ion-checkbox>\n </ion-item>\n </ion-list>\n\n\n</ion-content>\n", dependencies: [{ kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonCheckbox, selector: "ion-checkbox", inputs: ["alignment", "checked", "color", "disabled", "indeterminate", "justify", "labelPlacement", "legacy", "mode", "name", "value"] }, { kind: "component", type: i1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i1.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i1.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i1.BooleanValueAccessor, selector: "ion-checkbox,ion-toggle" }] });
45
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ToastTestingPage, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
46
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: ToastTestingPage, selector: "toast-testing", ngImport: i0, template: "<ion-toolbar color=\"primary\">\n <ion-title>Toasts</ion-title>\n</ion-toolbar>\n\n<ion-content class=\"ion-padding\">\n <p>Toast examples:</p>\n\n <ion-button (click)=\"showToast()\" color=\"dark\">default</ion-button>\n\n <ion-button (click)=\"showInfo()\" color=\"secondary\">info</ion-button>\n\n <ion-button (click)=\"showWarning()\" color=\"accent\">warning</ion-button>\n\n <ion-button (click)=\"showError()\" color=\"danger\">error</ion-button>\n\n <ion-button (click)=\"showInfo({ message: 'This is <b>HTML</b> text' })\" color=\"danger\">message with HTML</ion-button>\n <br />\n\n <ion-list>\n <ion-item>\n <ion-checkbox [value]=\"defaultOptions.showCloseButton\" (ionChange)=\"toggleCloseButton()\">\n <ion-label>Close button ?</ion-label>\n </ion-checkbox>\n </ion-item>\n </ion-list>\n</ion-content>\n", dependencies: [{ kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonCheckbox, selector: "ion-checkbox", inputs: ["alignment", "checked", "color", "disabled", "indeterminate", "justify", "labelPlacement", "legacy", "mode", "name", "value"] }, { kind: "component", type: i1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i1.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i1.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i1.BooleanValueAccessor, selector: "ion-checkbox,ion-toggle" }] });
47
47
  }
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: ToastTestingPage, decorators: [{
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ToastTestingPage, decorators: [{
49
49
  type: Component,
50
- args: [{ selector: 'toast-testing', template: "<ion-toolbar color=\"primary\">\n <ion-title>Toasts</ion-title>\n</ion-toolbar>\n\n<ion-content class=\"ion-padding\">\n\n <p>Toast examples:</p>\n\n <ion-button (click)=\"showToast()\" color=\"dark\">\n default\n </ion-button>\n\n <ion-button (click)=\"showInfo()\" color=\"secondary\">\n info\n </ion-button>\n\n <ion-button (click)=\"showWarning()\" color=\"accent\">\n warning\n </ion-button>\n\n <ion-button (click)=\"showError()\" color=\"danger\">\n error\n </ion-button>\n\n <ion-button (click)=\"showInfo({message: 'This is <b>HTML</b> text'})\" color=\"danger\">\n message with HTML\n </ion-button>\n <br/>\n\n\n <ion-list>\n\n\n <ion-item>\n <ion-checkbox [value]=\"defaultOptions.showCloseButton\" (ionChange)=\"toggleCloseButton()\">\n <ion-label>Close button ?</ion-label>\n </ion-checkbox>\n </ion-item>\n </ion-list>\n\n\n</ion-content>\n" }]
50
+ args: [{ selector: 'toast-testing', template: "<ion-toolbar color=\"primary\">\n <ion-title>Toasts</ion-title>\n</ion-toolbar>\n\n<ion-content class=\"ion-padding\">\n <p>Toast examples:</p>\n\n <ion-button (click)=\"showToast()\" color=\"dark\">default</ion-button>\n\n <ion-button (click)=\"showInfo()\" color=\"secondary\">info</ion-button>\n\n <ion-button (click)=\"showWarning()\" color=\"accent\">warning</ion-button>\n\n <ion-button (click)=\"showError()\" color=\"danger\">error</ion-button>\n\n <ion-button (click)=\"showInfo({ message: 'This is <b>HTML</b> text' })\" color=\"danger\">message with HTML</ion-button>\n <br />\n\n <ion-list>\n <ion-item>\n <ion-checkbox [value]=\"defaultOptions.showCloseButton\" (ionChange)=\"toggleCloseButton()\">\n <ion-label>Close button ?</ion-label>\n </ion-checkbox>\n </ion-item>\n </ion-list>\n</ion-content>\n" }]
51
51
  }], ctorParameters: () => [{ type: i0.Injector }] });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QudGVzdGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3RvYXN0L3RvYXN0LnRlc3RpbmcudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC90b2FzdC90b2FzdC50ZXN0aW5nLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBVyxNQUFNLGVBQWUsQ0FBQztBQUVsRCxPQUFPLEVBQW1CLE1BQU0sRUFBQyxNQUFNLFVBQVUsQ0FBQzs7O0FBT2xELE1BQU0sT0FBTyxnQkFBZ0I7SUFPakI7SUFMRCxjQUFjLEdBQXFCO1FBQzFDLGVBQWUsRUFBRSxLQUFLO0tBQ3ZCLENBQUM7SUFFRixZQUNVLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7SUFFNUIsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUF1QjtRQUMvQixPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUN0QyxHQUFHLElBQUksQ0FBQyxjQUFjO1lBQ3RCLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSztZQUNyQixPQUFPLEVBQUUsbUJBQW1CO1lBQzVCLEdBQUcsSUFBSTtTQUNSLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBdUI7UUFDL0IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ3BCLElBQUksRUFBRSxNQUFNO1lBQ1osT0FBTyxFQUFFLHVCQUF1QjtZQUNoQyxHQUFHLElBQUk7U0FDUixDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVyxDQUFDLElBQXVCO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNwQixJQUFJLEVBQUUsU0FBUztZQUNmLE9BQU8sRUFBRSwwQkFBMEI7WUFDbkMsR0FBRyxJQUFJO1NBQ1IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUF1QjtRQUMvQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDcEIsSUFBSSxFQUFFLE9BQU87WUFDYixPQUFPLEVBQUUsd0JBQXdCO1lBQ2pDLEdBQUcsSUFBSTtTQUNSLENBQUMsQ0FBQztJQUNMLENBQUM7SUFHRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDO0lBQzdFLENBQUM7dUdBL0NVLGdCQUFnQjsyRkFBaEIsZ0JBQWdCLHFEQ1Q3Qiw4NEJBMENBOzsyRkRqQ2EsZ0JBQWdCO2tCQUo1QixTQUFTOytCQUNFLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5qZWN0b3J9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUb2FzdENvbnRyb2xsZXJ9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7U2hvd1RvYXN0T3B0aW9ucywgVG9hc3RzfSBmcm9tICcuL3RvYXN0cyc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0b2FzdC10ZXN0aW5nJyxcbiAgdGVtcGxhdGVVcmw6ICd0b2FzdC50ZXN0aW5nLmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFRvYXN0VGVzdGluZ1BhZ2UgIHtcblxuICByZWFkb25seSBkZWZhdWx0T3B0aW9uczogU2hvd1RvYXN0T3B0aW9ucyA9IHtcbiAgICBzaG93Q2xvc2VCdXR0b246IGZhbHNlXG4gIH07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3JcbiAgKSB7XG4gIH1cblxuICBzaG93VG9hc3Qob3B0cz86IFNob3dUb2FzdE9wdGlvbnMpIHtcbiAgICByZXR1cm4gVG9hc3RzLnNob3dTaW1wbGUodGhpcy5pbmplY3Rvciwge1xuICAgICAgLi4udGhpcy5kZWZhdWx0T3B0aW9ucyxcbiAgICAgIGR1cmF0aW9uOiA1MDAwLCAvLyA1c1xuICAgICAgbWVzc2FnZTogJ1RoaXMgaXMgYSBtZXNzYWdlJyxcbiAgICAgIC4uLm9wdHNcbiAgICB9KTtcbiAgfVxuXG4gIHNob3dJbmZvKG9wdHM/OiBTaG93VG9hc3RPcHRpb25zKSB7XG4gICByZXR1cm4gdGhpcy5zaG93VG9hc3Qoe1xuICAgICB0eXBlOiAnaW5mbycsXG4gICAgIG1lc3NhZ2U6ICdUaGlzIGlzIGEgaW5mbyB0ZXh0ICEnLFxuICAgICAuLi5vcHRzXG4gICB9KTtcbiAgfVxuXG4gIHNob3dXYXJuaW5nKG9wdHM/OiBTaG93VG9hc3RPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd1RvYXN0KHtcbiAgICAgIHR5cGU6ICd3YXJuaW5nJyxcbiAgICAgIG1lc3NhZ2U6ICdUaGlzIGlzIGEgd2FybmluZyB0ZXh0ICEnLFxuICAgICAgLi4ub3B0c1xuICAgIH0pO1xuICB9XG5cbiAgc2hvd0Vycm9yKG9wdHM/OiBTaG93VG9hc3RPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd1RvYXN0KHtcbiAgICAgIHR5cGU6ICdlcnJvcicsXG4gICAgICBtZXNzYWdlOiAnVGhpcyBpcyBhIGVycm9yIHRleHQgIScsXG4gICAgICAuLi5vcHRzXG4gICAgfSk7XG4gIH1cblxuXG4gIHRvZ2dsZUNsb3NlQnV0dG9uKCkge1xuICAgIHRoaXMuZGVmYXVsdE9wdGlvbnMuc2hvd0Nsb3NlQnV0dG9uID0gIXRoaXMuZGVmYXVsdE9wdGlvbnMuc2hvd0Nsb3NlQnV0dG9uO1xuICB9XG59XG4iLCI8aW9uLXRvb2xiYXIgY29sb3I9XCJwcmltYXJ5XCI+XG4gIDxpb24tdGl0bGU+VG9hc3RzPC9pb24tdGl0bGU+XG48L2lvbi10b29sYmFyPlxuXG48aW9uLWNvbnRlbnQgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuXG4gIDxwPlRvYXN0IGV4YW1wbGVzOjwvcD5cblxuICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwic2hvd1RvYXN0KClcIiBjb2xvcj1cImRhcmtcIj5cbiAgICBkZWZhdWx0XG4gIDwvaW9uLWJ1dHRvbj5cblxuICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwic2hvd0luZm8oKVwiIGNvbG9yPVwic2Vjb25kYXJ5XCI+XG4gICAgaW5mb1xuICA8L2lvbi1idXR0b24+XG5cbiAgPGlvbi1idXR0b24gKGNsaWNrKT1cInNob3dXYXJuaW5nKClcIiBjb2xvcj1cImFjY2VudFwiPlxuICAgIHdhcm5pbmdcbiAgPC9pb24tYnV0dG9uPlxuXG4gIDxpb24tYnV0dG9uIChjbGljayk9XCJzaG93RXJyb3IoKVwiIGNvbG9yPVwiZGFuZ2VyXCI+XG4gICAgZXJyb3JcbiAgPC9pb24tYnV0dG9uPlxuXG4gIDxpb24tYnV0dG9uIChjbGljayk9XCJzaG93SW5mbyh7bWVzc2FnZTogJ1RoaXMgaXMgPGI+SFRNTDwvYj4gdGV4dCd9KVwiIGNvbG9yPVwiZGFuZ2VyXCI+XG4gICAgbWVzc2FnZSB3aXRoIEhUTUxcbiAgPC9pb24tYnV0dG9uPlxuICA8YnIvPlxuXG5cbiAgPGlvbi1saXN0PlxuXG5cbiAgICA8aW9uLWl0ZW0+XG4gICAgICA8aW9uLWNoZWNrYm94IFt2YWx1ZV09XCJkZWZhdWx0T3B0aW9ucy5zaG93Q2xvc2VCdXR0b25cIiAgKGlvbkNoYW5nZSk9XCJ0b2dnbGVDbG9zZUJ1dHRvbigpXCI+XG4gICAgICAgIDxpb24tbGFiZWw+Q2xvc2UgYnV0dG9uID88L2lvbi1sYWJlbD5cbiAgICAgIDwvaW9uLWNoZWNrYm94PlxuICAgIDwvaW9uLWl0ZW0+XG4gIDwvaW9uLWxpc3Q+XG5cblxuPC9pb24tY29udGVudD5cbiJdfQ==
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QudGVzdGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3RvYXN0L3RvYXN0LnRlc3RpbmcudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC90b2FzdC90b2FzdC50ZXN0aW5nLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUVwRCxPQUFPLEVBQW9CLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQzs7O0FBT3BELE1BQU0sT0FBTyxnQkFBZ0I7SUFLUDtJQUpYLGNBQWMsR0FBcUI7UUFDMUMsZUFBZSxFQUFFLEtBQUs7S0FDdkIsQ0FBQztJQUVGLFlBQW9CLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7SUFBRyxDQUFDO0lBRTFDLFNBQVMsQ0FBQyxJQUF1QjtRQUMvQixPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUN0QyxHQUFHLElBQUksQ0FBQyxjQUFjO1lBQ3RCLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSztZQUNyQixPQUFPLEVBQUUsbUJBQW1CO1lBQzVCLEdBQUcsSUFBSTtTQUNSLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBdUI7UUFDOUIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ3BCLElBQUksRUFBRSxNQUFNO1lBQ1osT0FBTyxFQUFFLHVCQUF1QjtZQUNoQyxHQUFHLElBQUk7U0FDUixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQXVCO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNwQixJQUFJLEVBQUUsU0FBUztZQUNmLE9BQU8sRUFBRSwwQkFBMEI7WUFDbkMsR0FBRyxJQUFJO1NBQ1IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUF1QjtRQUMvQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDcEIsSUFBSSxFQUFFLE9BQU87WUFDYixPQUFPLEVBQUUsd0JBQXdCO1lBQ2pDLEdBQUcsSUFBSTtTQUNSLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDO0lBQzdFLENBQUM7dUdBMUNVLGdCQUFnQjsyRkFBaEIsZ0JBQWdCLHFEQ1Q3QixrMUJBMEJBOzsyRkRqQmEsZ0JBQWdCO2tCQUo1QixTQUFTOytCQUNFLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUb2FzdENvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBTaG93VG9hc3RPcHRpb25zLCBUb2FzdHMgfSBmcm9tICcuL3RvYXN0cyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RvYXN0LXRlc3RpbmcnLFxuICB0ZW1wbGF0ZVVybDogJ3RvYXN0LnRlc3RpbmcuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFRvYXN0VGVzdGluZ1BhZ2Uge1xuICByZWFkb25seSBkZWZhdWx0T3B0aW9uczogU2hvd1RvYXN0T3B0aW9ucyA9IHtcbiAgICBzaG93Q2xvc2VCdXR0b246IGZhbHNlLFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7fVxuXG4gIHNob3dUb2FzdChvcHRzPzogU2hvd1RvYXN0T3B0aW9ucykge1xuICAgIHJldHVybiBUb2FzdHMuc2hvd1NpbXBsZSh0aGlzLmluamVjdG9yLCB7XG4gICAgICAuLi50aGlzLmRlZmF1bHRPcHRpb25zLFxuICAgICAgZHVyYXRpb246IDUwMDAsIC8vIDVzXG4gICAgICBtZXNzYWdlOiAnVGhpcyBpcyBhIG1lc3NhZ2UnLFxuICAgICAgLi4ub3B0cyxcbiAgICB9KTtcbiAgfVxuXG4gIHNob3dJbmZvKG9wdHM/OiBTaG93VG9hc3RPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd1RvYXN0KHtcbiAgICAgIHR5cGU6ICdpbmZvJyxcbiAgICAgIG1lc3NhZ2U6ICdUaGlzIGlzIGEgaW5mbyB0ZXh0ICEnLFxuICAgICAgLi4ub3B0cyxcbiAgICB9KTtcbiAgfVxuXG4gIHNob3dXYXJuaW5nKG9wdHM/OiBTaG93VG9hc3RPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd1RvYXN0KHtcbiAgICAgIHR5cGU6ICd3YXJuaW5nJyxcbiAgICAgIG1lc3NhZ2U6ICdUaGlzIGlzIGEgd2FybmluZyB0ZXh0ICEnLFxuICAgICAgLi4ub3B0cyxcbiAgICB9KTtcbiAgfVxuXG4gIHNob3dFcnJvcihvcHRzPzogU2hvd1RvYXN0T3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLnNob3dUb2FzdCh7XG4gICAgICB0eXBlOiAnZXJyb3InLFxuICAgICAgbWVzc2FnZTogJ1RoaXMgaXMgYSBlcnJvciB0ZXh0ICEnLFxuICAgICAgLi4ub3B0cyxcbiAgICB9KTtcbiAgfVxuXG4gIHRvZ2dsZUNsb3NlQnV0dG9uKCkge1xuICAgIHRoaXMuZGVmYXVsdE9wdGlvbnMuc2hvd0Nsb3NlQnV0dG9uID0gIXRoaXMuZGVmYXVsdE9wdGlvbnMuc2hvd0Nsb3NlQnV0dG9uO1xuICB9XG59XG4iLCI8aW9uLXRvb2xiYXIgY29sb3I9XCJwcmltYXJ5XCI+XG4gIDxpb24tdGl0bGU+VG9hc3RzPC9pb24tdGl0bGU+XG48L2lvbi10b29sYmFyPlxuXG48aW9uLWNvbnRlbnQgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuICA8cD5Ub2FzdCBleGFtcGxlczo8L3A+XG5cbiAgPGlvbi1idXR0b24gKGNsaWNrKT1cInNob3dUb2FzdCgpXCIgY29sb3I9XCJkYXJrXCI+ZGVmYXVsdDwvaW9uLWJ1dHRvbj5cblxuICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwic2hvd0luZm8oKVwiIGNvbG9yPVwic2Vjb25kYXJ5XCI+aW5mbzwvaW9uLWJ1dHRvbj5cblxuICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwic2hvd1dhcm5pbmcoKVwiIGNvbG9yPVwiYWNjZW50XCI+d2FybmluZzwvaW9uLWJ1dHRvbj5cblxuICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwic2hvd0Vycm9yKClcIiBjb2xvcj1cImRhbmdlclwiPmVycm9yPC9pb24tYnV0dG9uPlxuXG4gIDxpb24tYnV0dG9uIChjbGljayk9XCJzaG93SW5mbyh7IG1lc3NhZ2U6ICdUaGlzIGlzIDxiPkhUTUw8L2I+IHRleHQnIH0pXCIgY29sb3I9XCJkYW5nZXJcIj5tZXNzYWdlIHdpdGggSFRNTDwvaW9uLWJ1dHRvbj5cbiAgPGJyIC8+XG5cbiAgPGlvbi1saXN0PlxuICAgIDxpb24taXRlbT5cbiAgICAgIDxpb24tY2hlY2tib3ggW3ZhbHVlXT1cImRlZmF1bHRPcHRpb25zLnNob3dDbG9zZUJ1dHRvblwiIChpb25DaGFuZ2UpPVwidG9nZ2xlQ2xvc2VCdXR0b24oKVwiPlxuICAgICAgICA8aW9uLWxhYmVsPkNsb3NlIGJ1dHRvbiA/PC9pb24tbGFiZWw+XG4gICAgICA8L2lvbi1jaGVja2JveD5cbiAgICA8L2lvbi1pdGVtPlxuICA8L2lvbi1saXN0PlxuPC9pb24tY29udGVudD5cbiJdfQ==
@@ -11,35 +11,20 @@ const routes = [
11
11
  {
12
12
  path: 'toast',
13
13
  pathMatch: 'full',
14
- component: ToastTestingPage
15
- }
14
+ component: ToastTestingPage,
15
+ },
16
16
  ];
17
17
  export class ToastTestingModule {
18
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: ToastTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
19
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.1", ngImport: i0, type: ToastTestingModule, declarations: [ToastTestingPage], imports: [CommonModule,
20
- IonicModule, i1.TranslateModule, i2.RouterModule], exports: [RouterModule,
21
- ToastTestingPage] });
22
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: ToastTestingModule, imports: [CommonModule,
23
- IonicModule,
24
- TranslateModule.forChild(),
25
- RouterModule.forChild(routes), RouterModule] });
18
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ToastTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
19
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.3", ngImport: i0, type: ToastTestingModule, declarations: [ToastTestingPage], imports: [CommonModule, IonicModule, i1.TranslateModule, i2.RouterModule], exports: [RouterModule, ToastTestingPage] });
20
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ToastTestingModule, imports: [CommonModule, IonicModule, TranslateModule.forChild(), RouterModule.forChild(routes), RouterModule] });
26
21
  }
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: ToastTestingModule, decorators: [{
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ToastTestingModule, decorators: [{
28
23
  type: NgModule,
29
24
  args: [{
30
- imports: [
31
- CommonModule,
32
- IonicModule,
33
- TranslateModule.forChild(),
34
- RouterModule.forChild(routes)
35
- ],
36
- declarations: [
37
- ToastTestingPage
38
- ],
39
- exports: [
40
- RouterModule,
41
- ToastTestingPage
42
- ]
25
+ imports: [CommonModule, IonicModule, TranslateModule.forChild(), RouterModule.forChild(routes)],
26
+ declarations: [ToastTestingPage],
27
+ exports: [RouterModule, ToastTestingPage],
43
28
  }]
44
29
  }] });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QudGVzdGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC90b2FzdC90b2FzdC50ZXN0aW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQVMsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQUVqRCxNQUFNLE1BQU0sR0FBVztJQUNyQjtRQUNFLElBQUksRUFBRSxPQUFPO1FBQ2IsU0FBUyxFQUFFLE1BQU07UUFDakIsU0FBUyxFQUFFLGdCQUFnQjtLQUM1QjtDQUNGLENBQUM7QUFpQkYsTUFBTSxPQUFPLGtCQUFrQjt1R0FBbEIsa0JBQWtCO3dHQUFsQixrQkFBa0IsaUJBUDNCLGdCQUFnQixhQU5oQixZQUFZO1lBQ1osV0FBVyxrREFRWCxZQUFZO1lBQ1osZ0JBQWdCO3dHQUdQLGtCQUFrQixZQWIzQixZQUFZO1lBQ1osV0FBVztZQUNYLGVBQWUsQ0FBQyxRQUFRLEVBQUU7WUFDMUIsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFNN0IsWUFBWTs7MkZBSUgsa0JBQWtCO2tCQWY5QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsZUFBZSxDQUFDLFFBQVEsRUFBRTt3QkFDMUIsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7cUJBQzlCO29CQUNELFlBQVksRUFBRTt3QkFDWixnQkFBZ0I7cUJBQ2pCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGdCQUFnQjtxQkFDakI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Um91dGVyTW9kdWxlLCBSb3V0ZXN9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0lvbmljTW9kdWxlfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7VG9hc3RUZXN0aW5nUGFnZX0gZnJvbSAnLi90b2FzdC50ZXN0aW5nJztcblxuY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXG4gIHtcbiAgICBwYXRoOiAndG9hc3QnLFxuICAgIHBhdGhNYXRjaDogJ2Z1bGwnLFxuICAgIGNvbXBvbmVudDogVG9hc3RUZXN0aW5nUGFnZVxuICB9XG5dO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIElvbmljTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZS5mb3JDaGlsZCgpLFxuICAgIFJvdXRlck1vZHVsZS5mb3JDaGlsZChyb3V0ZXMpXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFRvYXN0VGVzdGluZ1BhZ2VcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFJvdXRlck1vZHVsZSxcbiAgICBUb2FzdFRlc3RpbmdQYWdlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgVG9hc3RUZXN0aW5nTW9kdWxlIHtcbn1cbiJdfQ==
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QudGVzdGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC90b2FzdC90b2FzdC50ZXN0aW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQUVuRCxNQUFNLE1BQU0sR0FBVztJQUNyQjtRQUNFLElBQUksRUFBRSxPQUFPO1FBQ2IsU0FBUyxFQUFFLE1BQU07UUFDakIsU0FBUyxFQUFFLGdCQUFnQjtLQUM1QjtDQUNGLENBQUM7QUFPRixNQUFNLE9BQU8sa0JBQWtCO3VHQUFsQixrQkFBa0I7d0dBQWxCLGtCQUFrQixpQkFIZCxnQkFBZ0IsYUFEckIsWUFBWSxFQUFFLFdBQVcsa0RBRXpCLFlBQVksRUFBRSxnQkFBZ0I7d0dBRTdCLGtCQUFrQixZQUpuQixZQUFZLEVBQUUsV0FBVyxFQUFFLGVBQWUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUVwRixZQUFZOzsyRkFFWCxrQkFBa0I7a0JBTDlCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxlQUFlLENBQUMsUUFBUSxFQUFFLEVBQUUsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDL0YsWUFBWSxFQUFFLENBQUMsZ0JBQWdCLENBQUM7b0JBQ2hDLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQztpQkFDMUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlLCBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgSW9uaWNNb2R1bGUgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBUb2FzdFRlc3RpbmdQYWdlIH0gZnJvbSAnLi90b2FzdC50ZXN0aW5nJztcblxuY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXG4gIHtcbiAgICBwYXRoOiAndG9hc3QnLFxuICAgIHBhdGhNYXRjaDogJ2Z1bGwnLFxuICAgIGNvbXBvbmVudDogVG9hc3RUZXN0aW5nUGFnZSxcbiAgfSxcbl07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvbmljTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUuZm9yQ2hpbGQoKSwgUm91dGVyTW9kdWxlLmZvckNoaWxkKHJvdXRlcyldLFxuICBkZWNsYXJhdGlvbnM6IFtUb2FzdFRlc3RpbmdQYWdlXSxcbiAgZXhwb3J0czogW1JvdXRlck1vZHVsZSwgVG9hc3RUZXN0aW5nUGFnZV0sXG59KVxuZXhwb3J0IGNsYXNzIFRvYXN0VGVzdGluZ01vZHVsZSB7fVxuIl19
@@ -13,11 +13,11 @@ export class Toasts {
13
13
  // DEBUG
14
14
  //console.debug('[Toasts.show]', opts);
15
15
  if (!toastController || !translate) {
16
- console.error('Missing required argument \'toastController\' or \'translate\'');
16
+ console.error("Missing required argument 'toastController' or 'translate'");
17
17
  if (opts.message instanceof IonicSafeString)
18
- console.info('[toasts] message: ' + (translate && translate.instant(opts.message.value) || opts.message.value));
18
+ console.info('[toasts] message: ' + ((translate && translate.instant(opts.message.value)) || opts.message.value));
19
19
  else if (typeof opts.message === 'string')
20
- console.info('[toasts] message: ' + (translate && translate.instant(opts.message, opts.messageParams) || opts.message));
20
+ console.info('[toasts] message: ' + ((translate && translate.instant(opts.message, opts.messageParams)) || opts.message));
21
21
  return Promise.resolve({});
22
22
  }
23
23
  this.counter++; // Increment toast counter
@@ -49,9 +49,9 @@ export class Toasts {
49
49
  if (opts.showCloseButton) {
50
50
  opts.buttons = opts.buttons || [];
51
51
  const buttonIndex = opts.buttons
52
- .map(b => typeof b === 'object' && b || undefined)
52
+ .map((b) => (typeof b === 'object' && b) || undefined)
53
53
  .filter(isNotNil)
54
- .findIndex(b => b.role === 'close');
54
+ .findIndex((b) => b.role === 'close');
55
55
  if (buttonIndex !== -1) {
56
56
  closeButton = opts.buttons[buttonIndex];
57
57
  }
@@ -63,7 +63,7 @@ export class Toasts {
63
63
  i18nKeys.push(closeButton.text);
64
64
  }
65
65
  // Read CSS
66
- const cssArray = opts.cssClass && typeof opts.cssClass === 'string' && opts.cssClass.split(',') || opts.cssClass || [];
66
+ const cssArray = (opts.cssClass && typeof opts.cssClass === 'string' && opts.cssClass.split(',')) || opts.cssClass || [];
67
67
  // Add 'error' class, if need
68
68
  if (opts.type) {
69
69
  switch (opts.type) {
@@ -128,8 +128,8 @@ export class Toasts {
128
128
  return null;
129
129
  }
130
130
  const direction = opts.position === 'top' ? 1 : -1;
131
- const start = (currentOffset) * TOAST_MAX_HEIGHT_PX - direction * TOAST_MAX_HEIGHT_PX;
132
- const end = direction * (currentOffset) * TOAST_MAX_HEIGHT_PX;
131
+ const start = currentOffset * TOAST_MAX_HEIGHT_PX - direction * TOAST_MAX_HEIGHT_PX;
132
+ const end = direction * currentOffset * TOAST_MAX_HEIGHT_PX;
133
133
  return (baseEl, opts) => {
134
134
  // FIXME: wrapper is always null
135
135
  const wrapper = baseEl.querySelector('.toast-wrapper');
@@ -141,4 +141,4 @@ export class Toasts {
141
141
  };
142
142
  }
143
143
  }
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvdG9hc3QvdG9hc3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBc0IsZUFBZSxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUdyRCxPQUFPLEVBQUMsWUFBWSxFQUFFLFFBQVEsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUdwRCxNQUFNLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztBQUMvQixNQUFNLG9CQUFvQixHQUFHLENBQUMsQ0FBQztBQVMvQixNQUFNLE9BQU8sTUFBTTtJQUNqQixNQUFNLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztJQUNuQixNQUFNLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztJQUVyQixNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FDckIsUUFBa0IsRUFDbEIsSUFBc0I7UUFFcEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDZixlQUFnQyxFQUNoQyxTQUEyQixFQUMzQixJQUFzQjtRQUd0QixRQUFRO1FBQ1IsdUNBQXVDO1FBRXZDLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQyxPQUFPLENBQUMsS0FBSyxDQUFDLGdFQUFnRSxDQUFDLENBQUM7WUFDaEYsSUFBSSxJQUFJLENBQUMsT0FBTyxZQUFZLGVBQWU7Z0JBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxDQUFDLFNBQVMsSUFBSSxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2lCQUN4SixJQUFJLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxRQUFRO2dCQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNuSyxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDN0IsQ0FBQztRQUVELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLDBCQUEwQjtRQUMxQyxJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ25DLElBQUksSUFBSSxDQUFDLFNBQVMsR0FBRyxvQkFBb0IsRUFBRSxDQUFDO1lBQzFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLHlCQUF5QjtRQUM3QyxDQUFDO2FBQ0ksQ0FBQztZQUNKLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsa0JBQWtCO1lBQ3RDLGFBQWEsR0FBRyxDQUFDLENBQUM7UUFDcEIsQ0FBQztRQUNELE1BQU0sY0FBYyxHQUFHLEdBQUcsRUFBRTtZQUMxQixtQkFBbUI7WUFDbkIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2YsOENBQThDO1lBQzlDLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7WUFDckIsQ0FBQztZQUNELHdEQUF3RDtpQkFDbkQsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLGFBQWEsR0FBRyxDQUFDLEVBQUMsQ0FBQztnQkFDN0MsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLENBQUM7UUFDSCxDQUFDLENBQUM7UUFFRixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLFlBQVksZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQWlCLENBQUM7UUFDdEgsTUFBTSxRQUFRLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQixJQUFJLElBQUksQ0FBQyxNQUFNO1lBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFNUMsSUFBSSxXQUF3QixDQUFDO1FBQzdCLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7WUFDbEMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU87aUJBQzdCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxDQUFnQixJQUFJLFNBQVMsQ0FBQztpQkFDaEUsTUFBTSxDQUFDLFFBQVEsQ0FBQztpQkFDaEIsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsQ0FBQztZQUN0QyxJQUFJLFdBQVcsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUN2QixXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQWdCLENBQUM7WUFDekQsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLFdBQVcsR0FBRyxFQUFDLElBQUksRUFBRSxPQUFPLEVBQUMsQ0FBQztnQkFDOUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDakMsQ0FBQztZQUNELFdBQVcsQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDLElBQUksSUFBSSxlQUFlLENBQUM7WUFDdkQsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsQ0FBQztRQUVELFdBQVc7UUFDWCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLE9BQU8sSUFBSSxDQUFDLFFBQVEsS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUssSUFBSSxDQUFDLFFBQTBCLElBQUksRUFBRSxDQUFDO1FBRTFJLDZCQUE2QjtRQUM3QixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNkLFFBQVEsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNsQixLQUFLLE9BQU87b0JBQ1YsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDeEIsTUFBTTtnQkFDUixLQUFLLFNBQVM7b0JBQ1osUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDeEIsTUFBTTtnQkFDUixLQUFLLE1BQU07b0JBQ1QsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztvQkFDM0IsTUFBTTtZQUNWLENBQUM7UUFDSCxDQUFDO1FBRUQsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNqRCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2QixZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3pFLENBQUM7UUFFRCxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2hCLFdBQVcsQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBRUQsOEJBQThCO1FBQzlCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUzRSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsSUFBSSxRQUFRLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDbEQsc0RBQXNEO1lBQ3RELGlEQUFpRDtZQUNqRCxzRkFBc0Y7WUFDdEYseUVBQXlFO1lBQ3pFLDBCQUEwQjtZQUMxQixrQkFBa0I7WUFDbEIsaUNBQWlDO1lBQ2pDLG9EQUFvRDtZQUNwRCxRQUFRLENBQUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxDQUFDO1lBQzNDLFFBQVEsQ0FBQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsYUFBYSxDQUFDLENBQUM7UUFDdkQsQ0FBQztRQUVELElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBRXpCLE1BQU0sS0FBSyxHQUFHLE1BQU0sZUFBZSxDQUFDLE1BQU0sQ0FBQztZQUN6QyxpQkFBaUI7WUFDakIsUUFBUTtZQUNSLFFBQVEsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDN0MsR0FBRyxJQUFJO1lBQ1AsT0FBTyxFQUFFLFlBQVksQ0FBQyxPQUFPLENBQUM7WUFDOUIsK0RBQStEO1NBQ2hFLENBQUMsQ0FBQztRQUVILElBQUksSUFBSSxDQUFDLGFBQWE7WUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWxELE1BQU0sS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRXRCLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQy9CLHdDQUF3QztZQUN4QyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzFDLE9BQU8sSUFBSSxDQUFDLENBQUMsWUFBWTtRQUMzQixDQUFDO2FBRUksQ0FBQztZQUNKLHlCQUF5QjtZQUN6QixNQUFNLE1BQU0sR0FBRyxNQUFNLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUUxQyxjQUFjLEVBQUUsQ0FBQztZQUVqQixPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxhQUFrQyxFQUNsQyxhQUFxQixFQUNyQixJQUFzQjtRQUNoRCxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDL0IsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkQsTUFBTSxLQUFLLEdBQUcsQ0FBQyxhQUFhLENBQUMsR0FBRyxtQkFBbUIsR0FBSSxTQUFTLEdBQUcsbUJBQW1CLENBQUM7UUFDdkYsTUFBTSxHQUFHLEdBQUcsU0FBUyxHQUFHLENBQUMsYUFBYSxDQUFDLEdBQUcsbUJBQW1CLENBQUM7UUFDOUQsT0FBTyxDQUFDLE1BQW1CLEVBQUUsSUFBSSxFQUFFLEVBQUU7WUFDbkMsZ0NBQWdDO1lBQ2hDLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUN2RCxPQUFPLGVBQWUsRUFBRTtpQkFDckIsVUFBVSxDQUFDLE9BQU8sQ0FBQztpQkFDbkIsUUFBUSxDQUFDLEdBQUcsQ0FBQztpQkFDYixNQUFNLENBQUMsV0FBVyxFQUFFLGNBQWMsS0FBSyxLQUFLLEVBQUUsY0FBYyxHQUFHLEtBQUssQ0FBQztpQkFDckUsTUFBTSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDO0lBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QW5pbWF0aW9uQ29udHJvbGxlciwgY3JlYXRlQW5pbWF0aW9uLCBJb25pY1NhZmVTdHJpbmcsIFRvYXN0Q29udHJvbGxlcn0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7QW5pbWF0aW9uQnVpbGRlciwgT3ZlcmxheUV2ZW50RGV0YWlsLCBUb2FzdE9wdGlvbnN9IGZyb20gJ0Bpb25pYy9jb3JlJztcbmltcG9ydCB7VG9hc3RCdXR0b259IGZyb20gJ0Bpb25pYy9jb3JlL2Rpc3QvdHlwZXMvY29tcG9uZW50cy90b2FzdC90b2FzdC1pbnRlcmZhY2UnO1xuaW1wb3J0IHtpc0VtcHR5QXJyYXksIGlzTm90TmlsfSBmcm9tICcuLi9mdW5jdGlvbnMnO1xuaW1wb3J0IHtJbmplY3Rvcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmNvbnN0IFRPQVNUX01BWF9IRUlHSFRfUFggPSA3NTtcbmNvbnN0IFRPQVNUX01BWF9TVEFDS19TSVpFID0gNDtcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNob3dUb2FzdE9wdGlvbnMgZXh0ZW5kcyBUb2FzdE9wdGlvbnMge1xuICB0eXBlPzogJ2Vycm9yJ3wnd2FybmluZyd8J2luZm8nO1xuICBtZXNzYWdlUGFyYW1zPzogYW55O1xuICBzaG93Q2xvc2VCdXR0b24/OiBib29sZWFuO1xuICBvbldpbGxQcmVzZW50PzogKHRvYXN0OiBIVE1MSW9uVG9hc3RFbGVtZW50KSA9PiB2b2lkO1xufVxuXG5leHBvcnQgY2xhc3MgVG9hc3RzIHtcbiAgc3RhdGljIGNvdW50ZXIgPSAwO1xuICBzdGF0aWMgc3RhY2tTaXplID0gMDtcblxuICBzdGF0aWMgYXN5bmMgc2hvd1NpbXBsZTxUID0gYW55PihcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgb3B0czogU2hvd1RvYXN0T3B0aW9uc1xuICApOiBQcm9taXNlPE92ZXJsYXlFdmVudERldGFpbDxUPj4ge1xuICAgICAgcmV0dXJuIHRoaXMuc2hvdyhpbmplY3Rvci5nZXQoVG9hc3RDb250cm9sbGVyKSwgaW5qZWN0b3IuZ2V0KFRyYW5zbGF0ZVNlcnZpY2UpLCBvcHRzKTtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBzaG93PFQgPSBhbnk+KFxuICAgIHRvYXN0Q29udHJvbGxlcjogVG9hc3RDb250cm9sbGVyLFxuICAgIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBvcHRzOiBTaG93VG9hc3RPcHRpb25zXG4gICk6IFByb21pc2U8T3ZlcmxheUV2ZW50RGV0YWlsPFQ+PiB7XG5cbiAgICAvLyBERUJVR1xuICAgIC8vY29uc29sZS5kZWJ1ZygnW1RvYXN0cy5zaG93XScsIG9wdHMpO1xuXG4gICAgaWYgKCF0b2FzdENvbnRyb2xsZXIgfHwgIXRyYW5zbGF0ZSkge1xuICAgICAgY29uc29sZS5lcnJvcignTWlzc2luZyByZXF1aXJlZCBhcmd1bWVudCBcXCd0b2FzdENvbnRyb2xsZXJcXCcgb3IgXFwndHJhbnNsYXRlXFwnJyk7XG4gICAgICBpZiAob3B0cy5tZXNzYWdlIGluc3RhbmNlb2YgSW9uaWNTYWZlU3RyaW5nKSBjb25zb2xlLmluZm8oJ1t0b2FzdHNdIG1lc3NhZ2U6ICcgKyAodHJhbnNsYXRlICYmIHRyYW5zbGF0ZS5pbnN0YW50KG9wdHMubWVzc2FnZS52YWx1ZSkgfHwgb3B0cy5tZXNzYWdlLnZhbHVlKSk7XG4gICAgICBlbHNlIGlmICh0eXBlb2Ygb3B0cy5tZXNzYWdlID09PSAnc3RyaW5nJykgY29uc29sZS5pbmZvKCdbdG9hc3RzXSBtZXNzYWdlOiAnICsgKHRyYW5zbGF0ZSAmJiB0cmFuc2xhdGUuaW5zdGFudChvcHRzLm1lc3NhZ2UsIG9wdHMubWVzc2FnZVBhcmFtcykgfHwgb3B0cy5tZXNzYWdlKSk7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHt9KTtcbiAgICB9XG5cbiAgICB0aGlzLmNvdW50ZXIrKzsgLy8gSW5jcmVtZW50IHRvYXN0IGNvdW50ZXJcbiAgICBsZXQgY3VycmVudE9mZnNldCA9IHRoaXMuc3RhY2tTaXplO1xuICAgIGlmICh0aGlzLnN0YWNrU2l6ZSA8IFRPQVNUX01BWF9TVEFDS19TSVpFKSB7XG4gICAgICB0aGlzLnN0YWNrU2l6ZSsrOyAvLyBJbmNyZW1lbnQgc3RhY2sgb2Zmc2V0XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5zdGFja1NpemUgPSAxOyAvLyBSZXNldCB0aGUgc3RhY2tcbiAgICAgIGN1cnJlbnRPZmZzZXQgPSAwO1xuICAgIH1cbiAgICBjb25zdCB1cGRhdGVDb3VudGVycyA9ICgpID0+IHtcbiAgICAgIC8vIERlY3JlYXNlIGNvdW50ZXJcbiAgICAgIHRoaXMuY291bnRlci0tO1xuICAgICAgLy8gSWYgYWxsIHRvYXN0IGNsb3NlZDogcmVzZXQgdGhlIHN0YWNrIG9mZnNldFxuICAgICAgaWYgKHRoaXMuY291bnRlciA9PT0gMCkge1xuICAgICAgICB0aGlzLnN0YWNrU2l6ZSA9IDA7XG4gICAgICB9XG4gICAgICAvLyBJZiBjdXJyZW50IHRvYXN0IGlzIHRoZSBsYXN0IG9uZSwgZGVjcmVhc2UgdGhlIG9mZnNldFxuICAgICAgZWxzZSBpZiAodGhpcy5zdGFja1NpemUgPT09IGN1cnJlbnRPZmZzZXQgKyAxKXtcbiAgICAgICAgdGhpcy5zdGFja1NpemUtLTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgbWVzc2FnZSA9IG9wdHMubWVzc2FnZSAmJiBvcHRzLm1lc3NhZ2UgaW5zdGFuY2VvZiBJb25pY1NhZmVTdHJpbmcgPyBvcHRzLm1lc3NhZ2UudmFsdWUgOiBvcHRzLm1lc3NhZ2UgYXMgc3RyaW5nO1xuICAgIGNvbnN0IGkxOG5LZXlzID0gW21lc3NhZ2VdO1xuICAgIGlmIChvcHRzLmhlYWRlcikgaTE4bktleXMucHVzaChvcHRzLmhlYWRlcik7XG5cbiAgICBsZXQgY2xvc2VCdXR0b246IFRvYXN0QnV0dG9uO1xuICAgIGlmIChvcHRzLnNob3dDbG9zZUJ1dHRvbikge1xuICAgICAgb3B0cy5idXR0b25zID0gb3B0cy5idXR0b25zIHx8IFtdO1xuICAgICAgY29uc3QgYnV0dG9uSW5kZXggPSBvcHRzLmJ1dHRvbnNcbiAgICAgICAgLm1hcChiID0+IHR5cGVvZiBiID09PSAnb2JqZWN0JyAmJiBiIGFzIFRvYXN0QnV0dG9uIHx8IHVuZGVmaW5lZClcbiAgICAgICAgLmZpbHRlcihpc05vdE5pbClcbiAgICAgICAgLmZpbmRJbmRleChiID0+IGIucm9sZSA9PT0gJ2Nsb3NlJyk7XG4gICAgICBpZiAoYnV0dG9uSW5kZXggIT09IC0xKSB7XG4gICAgICAgIGNsb3NlQnV0dG9uID0gb3B0cy5idXR0b25zW2J1dHRvbkluZGV4XSBhcyBUb2FzdEJ1dHRvbjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNsb3NlQnV0dG9uID0ge3JvbGU6ICdjbG9zZSd9O1xuICAgICAgICBvcHRzLmJ1dHRvbnMucHVzaChjbG9zZUJ1dHRvbik7XG4gICAgICB9XG4gICAgICBjbG9zZUJ1dHRvbi50ZXh0ID0gY2xvc2VCdXR0b24udGV4dCB8fCAnQ09NTU9OLkJUTl9PSyc7XG4gICAgICBpMThuS2V5cy5wdXNoKGNsb3NlQnV0dG9uLnRleHQpO1xuICAgIH1cblxuICAgIC8vIFJlYWQgQ1NTXG4gICAgY29uc3QgY3NzQXJyYXkgPSBvcHRzLmNzc0NsYXNzICYmIHR5cGVvZiBvcHRzLmNzc0NsYXNzID09PSAnc3RyaW5nJyAmJiBvcHRzLmNzc0NsYXNzLnNwbGl0KCcsJykgfHwgKG9wdHMuY3NzQ2xhc3MgYXMgQXJyYXk8c3RyaW5nPikgfHwgW107XG5cbiAgICAvLyBBZGQgJ2Vycm9yJyBjbGFzcywgaWYgbmVlZFxuICAgIGlmIChvcHRzLnR5cGUpIHtcbiAgICAgIHN3aXRjaCAob3B0cy50eXBlKSB7XG4gICAgICAgIGNhc2UgJ2Vycm9yJzpcbiAgICAgICAgICBjc3NBcnJheS5wdXNoKCdkYW5nZXInKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnd2FybmluZyc6XG4gICAgICAgICAgY3NzQXJyYXkucHVzaCgnYWNjZW50Jyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2luZm8nOlxuICAgICAgICAgIGNzc0FycmF5LnB1c2goJ3NlY29uZGFyeScpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHRyYW5zbGF0aW9ucyA9IHRyYW5zbGF0ZS5pbnN0YW50KGkxOG5LZXlzKTtcbiAgICBpZiAob3B0cy5tZXNzYWdlUGFyYW1zKSB7XG4gICAgICB0cmFuc2xhdGlvbnNbbWVzc2FnZV0gPSB0cmFuc2xhdGUuaW5zdGFudChtZXNzYWdlLCBvcHRzLm1lc3NhZ2VQYXJhbXMpO1xuICAgIH1cblxuICAgIGlmIChjbG9zZUJ1dHRvbikge1xuICAgICAgY2xvc2VCdXR0b24udGV4dCA9IHRyYW5zbGF0aW9uc1tjbG9zZUJ1dHRvbi50ZXh0XTtcbiAgICB9XG5cbiAgICAvLyBSZXRyaWV2ZSB0aGUgdG9hc3QgcG9zaXRpb25cbiAgICBjb25zdCBwb3NpdGlvbiA9IG9wdHMucG9zaXRpb24gfHwgKG9wdHMubW9kZSA9PT0gJ2lvcycgPyAnYm90dG9tJyA6ICd0b3AnKTtcblxuICAgIGlmICghb3B0cy5lbnRlckFuaW1hdGlvbiAmJiBwb3NpdGlvbiAhPT0gJ21pZGRsZScpIHtcbiAgICAgIC8vIEZJWE1FOiBhbmltYXRpb24gZmFpbGVkLCBzaW5jZSBtaWdyYXRpb24gdG8gSW9uaWMgNlxuICAgICAgLy8gV2hlbiBjb21wdXRpbmcsIHRoZSBiYXNlRWxlIGhhcyBubyB3cmFwcGVyIHlldFxuICAgICAgLy9vcHRzLmVudGVyQW5pbWF0aW9uID0gdGhpcy5jcmVhdGVFbnRlckFuaW1hdGlvbihhbmltYXRpb25DdHJsLCBjdXJyZW50T2Zmc2V0LCBvcHRzKTtcbiAgICAgIC8vIG9wdHMuZW50ZXJBbmltYXRpb24gPSAoYmFzZUVsOiBIVE1MRWxlbWVudCwgb3B0cykgPT4gY3JlYXRlQW5pbWF0aW9uKClcbiAgICAgIC8vICAgICAuYWRkRWxlbWVudChiYXNlRWwpXG4gICAgICAvLyAgICAgLmRlbGF5KDQwMClcbiAgICAgIC8vICAgICAuYWZ0ZXJBZGRDbGFzcygnc3RhY2tlZCcpO1xuICAgICAgLy8gQXMgd29ya2Fyb3VuZCwgd2UgYWRkIGFuIG9mZnNldCB1c2luZyBhIENTUyBjbGFzc1xuICAgICAgY3NzQXJyYXkucHVzaCgndG9hc3Qtc3RhY2tlZC0nICsgcG9zaXRpb24pO1xuICAgICAgY3NzQXJyYXkucHVzaCgndG9hc3Qtc3RhY2stb2Zmc2V0LScgKyBjdXJyZW50T2Zmc2V0KTtcbiAgICB9XG5cbiAgICBvcHRzLmNzc0NsYXNzID0gY3NzQXJyYXk7XG5cbiAgICBjb25zdCB0b2FzdCA9IGF3YWl0IHRvYXN0Q29udHJvbGxlci5jcmVhdGUoe1xuICAgICAgLy8gRGVmYXVsdCB2YWx1ZXNcbiAgICAgIHBvc2l0aW9uLFxuICAgICAgZHVyYXRpb246IG9wdHMuc2hvd0Nsb3NlQnV0dG9uID8gMTAwMDAgOiA0MDAwLFxuICAgICAgLi4ub3B0cyxcbiAgICAgIG1lc3NhZ2U6IHRyYW5zbGF0aW9uc1ttZXNzYWdlXSxcbiAgICAgIC8vaGVhZGVyOiBvcHRzLmhlYWRlciAmJiB0cmFuc2xhdGlvbnNbb3B0cy5oZWFkZXJdIHx8IHVuZGVmaW5lZFxuICAgIH0pO1xuXG4gICAgaWYgKG9wdHMub25XaWxsUHJlc2VudCkgb3B0cy5vbldpbGxQcmVzZW50KHRvYXN0KTtcblxuICAgIGF3YWl0IHRvYXN0LnByZXNlbnQoKTtcblxuICAgIGlmIChpc0VtcHR5QXJyYXkob3B0cy5idXR0b25zKSkge1xuICAgICAgLy8gTm90IG5lZWQgdG8gd2FpdCBkaXNtaXNzIChubyAnYXdhaXQnKVxuICAgICAgdG9hc3Qub25EaWREaXNtaXNzKCkudGhlbih1cGRhdGVDb3VudGVycyk7XG4gICAgICByZXR1cm4gbnVsbDsgLy8gbm8gcmVzdWx0XG4gICAgfVxuXG4gICAgZWxzZSB7XG4gICAgICAvLyBXYWl0IGZvciBidXR0b24gcmVzdWx0XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0b2FzdC5vbkRpZERpc21pc3MoKTtcblxuICAgICAgdXBkYXRlQ291bnRlcnMoKTtcblxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgY3JlYXRlRW50ZXJBbmltYXRpb24oYW5pbWF0aW9uQ3RybDogQW5pbWF0aW9uQ29udHJvbGxlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRPZmZzZXQ6IG51bWJlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdHM6IFNob3dUb2FzdE9wdGlvbnMpOiBBbmltYXRpb25CdWlsZGVyIHtcbiAgICBpZiAob3B0cy5wb3NpdGlvbiA9PT0gJ21pZGRsZScpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGRpcmVjdGlvbiA9IG9wdHMucG9zaXRpb24gPT09ICd0b3AnID8gMSA6IC0xO1xuICAgIGNvbnN0IHN0YXJ0ID0gKGN1cnJlbnRPZmZzZXQpICogVE9BU1RfTUFYX0hFSUdIVF9QWCAgLSBkaXJlY3Rpb24gKiBUT0FTVF9NQVhfSEVJR0hUX1BYO1xuICAgIGNvbnN0IGVuZCA9IGRpcmVjdGlvbiAqIChjdXJyZW50T2Zmc2V0KSAqIFRPQVNUX01BWF9IRUlHSFRfUFg7XG4gICAgcmV0dXJuIChiYXNlRWw6IEhUTUxFbGVtZW50LCBvcHRzKSA9PiB7XG4gICAgICAvLyBGSVhNRTogd3JhcHBlciBpcyBhbHdheXMgbnVsbFxuICAgICAgY29uc3Qgd3JhcHBlciA9IGJhc2VFbC5xdWVyeVNlbGVjdG9yKCcudG9hc3Qtd3JhcHBlcicpO1xuICAgICAgcmV0dXJuIGNyZWF0ZUFuaW1hdGlvbigpXG4gICAgICAgIC5hZGRFbGVtZW50KHdyYXBwZXIpXG4gICAgICAgIC5kdXJhdGlvbigyNTApXG4gICAgICAgIC5mcm9tVG8oJ3RyYW5zZm9ybScsIGB0cmFuc2xhdGVZKCR7c3RhcnR9cHgpYCwgYHRyYW5zbGF0ZVkoJHtlbmR9cHgpYClcbiAgICAgICAgLmZyb21Ubygnb3BhY2l0eScsICcwJywgJzEnKTtcbiAgICB9O1xuICB9XG5cbn1cbiJdfQ==
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvdG9hc3QvdG9hc3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsZUFBZSxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUd2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUd0RCxNQUFNLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztBQUMvQixNQUFNLG9CQUFvQixHQUFHLENBQUMsQ0FBQztBQVMvQixNQUFNLE9BQU8sTUFBTTtJQUNqQixNQUFNLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztJQUNuQixNQUFNLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztJQUVyQixNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBVSxRQUFrQixFQUFFLElBQXNCO1FBQ3pFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQVUsZUFBZ0MsRUFBRSxTQUEyQixFQUFFLElBQXNCO1FBQzlHLFFBQVE7UUFDUix1Q0FBdUM7UUFFdkMsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25DLE9BQU8sQ0FBQyxLQUFLLENBQUMsNERBQTRELENBQUMsQ0FBQztZQUM1RSxJQUFJLElBQUksQ0FBQyxPQUFPLFlBQVksZUFBZTtnQkFDekMsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxDQUFDLENBQUMsU0FBUyxJ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O2FBQU0sQ0FBQztZQUNOLHlCQUF5QjtZQUN6QixNQUFNLE1BQU0sR0FBRyxNQUFNLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUUxQyxjQUFjLEVBQUUsQ0FBQztZQUVqQixPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxhQUFrQyxFQUFFLGFBQXFCLEVBQUUsSUFBc0I7UUFDM0csSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQy9CLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25ELE1BQU0sS0FBSyxHQUFHLGFBQWEsR0FBRyxtQkFBbUIsR0FBRyxTQUFTLEdBQUcsbUJBQW1CLENBQUM7UUFDcEYsTUFBTSxHQUFHLEdBQUcsU0FBUyxHQUFHLGFBQWEsR0FBRyxtQkFBbUIsQ0FBQztRQUM1RCxPQUFPLENBQUMsTUFBbUIsRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUNuQyxnQ0FBZ0M7WUFDaEMsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3ZELE9BQU8sZUFBZSxFQUFFO2lCQUNyQixVQUFVLENBQUMsT0FBTyxDQUFDO2lCQUNuQixRQUFRLENBQUMsR0FBRyxDQUFDO2lCQUNiLE1BQU0sQ0FBQyxXQUFXLEVBQUUsY0FBYyxLQUFLLEtBQUssRUFBRSxjQUFjLEdBQUcsS0FBSyxDQUFDO2lCQUNyRSxNQUFNLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUM7SUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5pbWF0aW9uQ29udHJvbGxlciwgY3JlYXRlQW5pbWF0aW9uLCBJb25pY1NhZmVTdHJpbmcsIFRvYXN0Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEFuaW1hdGlvbkJ1aWxkZXIsIE92ZXJsYXlFdmVudERldGFpbCwgVG9hc3RPcHRpb25zIH0gZnJvbSAnQGlvbmljL2NvcmUnO1xuaW1wb3J0IHsgVG9hc3RCdXR0b24gfSBmcm9tICdAaW9uaWMvY29yZS9kaXN0L3R5cGVzL2NvbXBvbmVudHMvdG9hc3QvdG9hc3QtaW50ZXJmYWNlJztcbmltcG9ydCB7IGlzRW1wdHlBcnJheSwgaXNOb3ROaWwgfSBmcm9tICcuLi9mdW5jdGlvbnMnO1xuaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuY29uc3QgVE9BU1RfTUFYX0hFSUdIVF9QWCA9IDc1O1xuY29uc3QgVE9BU1RfTUFYX1NUQUNLX1NJWkUgPSA0O1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2hvd1RvYXN0T3B0aW9ucyBleHRlbmRzIFRvYXN0T3B0aW9ucyB7XG4gIHR5cGU/OiAnZXJyb3InIHwgJ3dhcm5pbmcnIHwgJ2luZm8nO1xuICBtZXNzYWdlUGFyYW1zPzogYW55O1xuICBzaG93Q2xvc2VCdXR0b24/OiBib29sZWFuO1xuICBvbldpbGxQcmVzZW50PzogKHRvYXN0OiBIVE1MSW9uVG9hc3RFbGVtZW50KSA9PiB2b2lkO1xufVxuXG5leHBvcnQgY2xhc3MgVG9hc3RzIHtcbiAgc3RhdGljIGNvdW50ZXIgPSAwO1xuICBzdGF0aWMgc3RhY2tTaXplID0gMDtcblxuICBzdGF0aWMgYXN5bmMgc2hvd1NpbXBsZTxUID0gYW55PihpbmplY3RvcjogSW5qZWN0b3IsIG9wdHM6IFNob3dUb2FzdE9wdGlvbnMpOiBQcm9taXNlPE92ZXJsYXlFdmVudERldGFpbDxUPj4ge1xuICAgIHJldHVybiB0aGlzLnNob3coaW5qZWN0b3IuZ2V0KFRvYXN0Q29udHJvbGxlciksIGluamVjdG9yLmdldChUcmFuc2xhdGVTZXJ2aWNlKSwgb3B0cyk7XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgc2hvdzxUID0gYW55Pih0b2FzdENvbnRyb2xsZXI6IFRvYXN0Q29udHJvbGxlciwgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCBvcHRzOiBTaG93VG9hc3RPcHRpb25zKTogUHJvbWlzZTxPdmVybGF5RXZlbnREZXRhaWw8VD4+IHtcbiAgICAvLyBERUJVR1xuICAgIC8vY29uc29sZS5kZWJ1ZygnW1RvYXN0cy5zaG93XScsIG9wdHMpO1xuXG4gICAgaWYgKCF0b2FzdENvbnRyb2xsZXIgfHwgIXRyYW5zbGF0ZSkge1xuICAgICAgY29uc29sZS5lcnJvcihcIk1pc3NpbmcgcmVxdWlyZWQgYXJndW1lbnQgJ3RvYXN0Q29udHJvbGxlcicgb3IgJ3RyYW5zbGF0ZSdcIik7XG4gICAgICBpZiAob3B0cy5tZXNzYWdlIGluc3RhbmNlb2YgSW9uaWNTYWZlU3RyaW5nKVxuICAgICAgICBjb25zb2xlLmluZm8oJ1t0b2FzdHNdIG1lc3NhZ2U6ICcgKyAoKHRyYW5zbGF0ZSAmJiB0cmFuc2xhdGUuaW5zdGFudChvcHRzLm1lc3NhZ2UudmFsdWUpKSB8fCBvcHRzLm1lc3NhZ2UudmFsdWUpKTtcbiAgICAgIGVsc2UgaWYgKHR5cGVvZiBvcHRzLm1lc3NhZ2UgPT09ICdzdHJpbmcnKVxuICAgICAgICBjb25zb2xlLmluZm8oJ1t0b2FzdHNdIG1lc3NhZ2U6ICcgKyAoKHRyYW5zbGF0ZSAmJiB0cmFuc2xhdGUuaW5zdGFudChvcHRzLm1lc3NhZ2UsIG9wdHMubWVzc2FnZVBhcmFtcykpIHx8IG9wdHMubWVzc2FnZSkpO1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSk7XG4gICAgfVxuXG4gICAgdGhpcy5jb3VudGVyKys7IC8vIEluY3JlbWVudCB0b2FzdCBjb3VudGVyXG4gICAgbGV0IGN1cnJlbnRPZmZzZXQgPSB0aGlzLnN0YWNrU2l6ZTtcbiAgICBpZiAodGhpcy5zdGFja1NpemUgPCBUT0FTVF9NQVhfU1RBQ0tfU0laRSkge1xuICAgICAgdGhpcy5zdGFja1NpemUrKzsgLy8gSW5jcmVtZW50IHN0YWNrIG9mZnNldFxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN0YWNrU2l6ZSA9IDE7IC8vIFJlc2V0IHRoZSBzdGFja1xuICAgICAgY3VycmVudE9mZnNldCA9IDA7XG4gICAgfVxuICAgIGNvbnN0IHVwZGF0ZUNvdW50ZXJzID0gKCkgPT4ge1xuICAgICAgLy8gRGVjcmVhc2UgY291bnRlclxuICAgICAgdGhpcy5jb3VudGVyLS07XG4gICAgICAvLyBJZiBhbGwgdG9hc3QgY2xvc2VkOiByZXNldCB0aGUgc3RhY2sgb2Zmc2V0XG4gICAgICBpZiAodGhpcy5jb3VudGVyID09PSAwKSB7XG4gICAgICAgIHRoaXMuc3RhY2tTaXplID0gMDtcbiAgICAgIH1cbiAgICAgIC8vIElmIGN1cnJlbnQgdG9hc3QgaXMgdGhlIGxhc3Qgb25lLCBkZWNyZWFzZSB0aGUgb2Zmc2V0XG4gICAgICBlbHNlIGlmICh0aGlzLnN0YWNrU2l6ZSA9PT0gY3VycmVudE9mZnNldCArIDEpIHtcbiAgICAgICAgdGhpcy5zdGFja1NpemUtLTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgbWVzc2FnZSA9IG9wdHMubWVzc2FnZSAmJiBvcHRzLm1lc3NhZ2UgaW5zdGFuY2VvZiBJb25pY1NhZmVTdHJpbmcgPyBvcHRzLm1lc3NhZ2UudmFsdWUgOiAob3B0cy5tZXNzYWdlIGFzIHN0cmluZyk7XG4gICAgY29uc3QgaTE4bktleXMgPSBbbWVzc2FnZV07XG4gICAgaWYgKG9wdHMuaGVhZGVyKSBpMThuS2V5cy5wdXNoKG9wdHMuaGVhZGVyKTtcblxuICAgIGxldCBjbG9zZUJ1dHRvbjogVG9hc3RCdXR0b247XG4gICAgaWYgKG9wdHMuc2hvd0Nsb3NlQnV0dG9uKSB7XG4gICAgICBvcHRzLmJ1dHRvbnMgPSBvcHRzLmJ1dHRvbnMgfHwgW107XG4gICAgICBjb25zdCBidXR0b25JbmRleCA9IG9wdHMuYnV0dG9uc1xuICAgICAgICAubWFwKChiKSA9PiAodHlwZW9mIGIgPT09ICdvYmplY3QnICYmIChiIGFzIFRvYXN0QnV0dG9uKSkgfHwgdW5kZWZpbmVkKVxuICAgICAgICAuZmlsdGVyKGlzTm90TmlsKVxuICAgICAgICAuZmluZEluZGV4KChiKSA9PiBiLnJvbGUgPT09ICdjbG9zZScpO1xuICAgICAgaWYgKGJ1dHRvbkluZGV4ICE9PSAtMSkge1xuICAgICAgICBjbG9zZUJ1dHRvbiA9IG9wdHMuYnV0dG9uc1tidXR0b25JbmRleF0gYXMgVG9hc3RCdXR0b247XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjbG9zZUJ1dHRvbiA9IHsgcm9sZTogJ2Nsb3NlJyB9O1xuICAgICAgICBvcHRzLmJ1dHRvbnMucHVzaChjbG9zZUJ1dHRvbik7XG4gICAgICB9XG4gICAgICBjbG9zZUJ1dHRvbi50ZXh0ID0gY2xvc2VCdXR0b24udGV4dCB8fCAnQ09NTU9OLkJUTl9PSyc7XG4gICAgICBpMThuS2V5cy5wdXNoKGNsb3NlQnV0dG9uLnRleHQpO1xuICAgIH1cblxuICAgIC8vIFJlYWQgQ1NTXG4gICAgY29uc3QgY3NzQXJyYXkgPSAob3B0cy5jc3NDbGFzcyAmJiB0eXBlb2Ygb3B0cy5jc3NDbGFzcyA9PT0gJ3N0cmluZycgJiYgb3B0cy5jc3NDbGFzcy5zcGxpdCgnLCcpKSB8fCAob3B0cy5jc3NDbGFzcyBhcyBBcnJheTxzdHJpbmc+KSB8fCBbXTtcblxuICAgIC8vIEFkZCAnZXJyb3InIGNsYXNzLCBpZiBuZWVkXG4gICAgaWYgKG9wdHMudHlwZSkge1xuICAgICAgc3dpdGNoIChvcHRzLnR5cGUpIHtcbiAgICAgICAgY2FzZSAnZXJyb3InOlxuICAgICAgICAgIGNzc0FycmF5LnB1c2goJ2RhbmdlcicpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICd3YXJuaW5nJzpcbiAgICAgICAgICBjc3NBcnJheS5wdXNoKCdhY2NlbnQnKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnaW5mbyc6XG4gICAgICAgICAgY3NzQXJyYXkucHVzaCgnc2Vjb25kYXJ5Jyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgdHJhbnNsYXRpb25zID0gdHJhbnNsYXRlLmluc3RhbnQoaTE4bktleXMpO1xuICAgIGlmIChvcHRzLm1lc3NhZ2VQYXJhbXMpIHtcbiAgICAgIHRyYW5zbGF0aW9uc1ttZXNzYWdlXSA9IHRyYW5zbGF0ZS5pbnN0YW50KG1lc3NhZ2UsIG9wdHMubWVzc2FnZVBhcmFtcyk7XG4gICAgfVxuXG4gICAgaWYgKGNsb3NlQnV0dG9uKSB7XG4gICAgICBjbG9zZUJ1dHRvbi50ZXh0ID0gdHJhbnNsYXRpb25zW2Nsb3NlQnV0dG9uLnRleHRdO1xuICAgIH1cblxuICAgIC8vIFJldHJpZXZlIHRoZSB0b2FzdCBwb3NpdGlvblxuICAgIGNvbnN0IHBvc2l0aW9uID0gb3B0cy5wb3NpdGlvbiB8fCAob3B0cy5tb2RlID09PSAnaW9zJyA/ICdib3R0b20nIDogJ3RvcCcpO1xuXG4gICAgaWYgKCFvcHRzLmVudGVyQW5pbWF0aW9uICYmIHBvc2l0aW9uICE9PSAnbWlkZGxlJykge1xuICAgICAgLy8gRklYTUU6IGFuaW1hdGlvbiBmYWlsZWQsIHNpbmNlIG1pZ3JhdGlvbiB0byBJb25pYyA2XG4gICAgICAvLyBXaGVuIGNvbXB1dGluZywgdGhlIGJhc2VFbGUgaGFzIG5vIHdyYXBwZXIgeWV0XG4gICAgICAvL29wdHMuZW50ZXJBbmltYXRpb24gPSB0aGlzLmNyZWF0ZUVudGVyQW5pbWF0aW9uKGFuaW1hdGlvbkN0cmwsIGN1cnJlbnRPZmZzZXQsIG9wdHMpO1xuICAgICAgLy8gb3B0cy5lbnRlckFuaW1hdGlvbiA9IChiYXNlRWw6IEhUTUxFbGVtZW50LCBvcHRzKSA9PiBjcmVhdGVBbmltYXRpb24oKVxuICAgICAgLy8gICAgIC5hZGRFbGVtZW50KGJhc2VFbClcbiAgICAgIC8vICAgICAuZGVsYXkoNDAwKVxuICAgICAgLy8gICAgIC5hZnRlckFkZENsYXNzKCdzdGFja2VkJyk7XG4gICAgICAvLyBBcyB3b3JrYXJvdW5kLCB3ZSBhZGQgYW4gb2Zmc2V0IHVzaW5nIGEgQ1NTIGNsYXNzXG4gICAgICBjc3NBcnJheS5wdXNoKCd0b2FzdC1zdGFja2VkLScgKyBwb3NpdGlvbik7XG4gICAgICBjc3NBcnJheS5wdXNoKCd0b2FzdC1zdGFjay1vZmZzZXQtJyArIGN1cnJlbnRPZmZzZXQpO1xuICAgIH1cblxuICAgIG9wdHMuY3NzQ2xhc3MgPSBjc3NBcnJheTtcblxuICAgIGNvbnN0IHRvYXN0ID0gYXdhaXQgdG9hc3RDb250cm9sbGVyLmNyZWF0ZSh7XG4gICAgICAvLyBEZWZhdWx0IHZhbHVlc1xuICAgICAgcG9zaXRpb24sXG4gICAgICBkdXJhdGlvbjogb3B0cy5zaG93Q2xvc2VCdXR0b24gPyAxMDAwMCA6IDQwMDAsXG4gICAgICAuLi5vcHRzLFxuICAgICAgbWVzc2FnZTogdHJhbnNsYXRpb25zW21lc3NhZ2VdLFxuICAgICAgLy9oZWFkZXI6IG9wdHMuaGVhZGVyICYmIHRyYW5zbGF0aW9uc1tvcHRzLmhlYWRlcl0gfHwgdW5kZWZpbmVkXG4gICAgfSk7XG5cbiAgICBpZiAob3B0cy5vbldpbGxQcmVzZW50KSBvcHRzLm9uV2lsbFByZXNlbnQodG9hc3QpO1xuXG4gICAgYXdhaXQgdG9hc3QucHJlc2VudCgpO1xuXG4gICAgaWYgKGlzRW1wdHlBcnJheShvcHRzLmJ1dHRvbnMpKSB7XG4gICAgICAvLyBOb3QgbmVlZCB0byB3YWl0IGRpc21pc3MgKG5vICdhd2FpdCcpXG4gICAgICB0b2FzdC5vbkRpZERpc21pc3MoKS50aGVuKHVwZGF0ZUNvdW50ZXJzKTtcbiAgICAgIHJldHVybiBudWxsOyAvLyBubyByZXN1bHRcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gV2FpdCBmb3IgYnV0dG9uIHJlc3VsdFxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdG9hc3Qub25EaWREaXNtaXNzKCk7XG5cbiAgICAgIHVwZGF0ZUNvdW50ZXJzKCk7XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGNyZWF0ZUVudGVyQW5pbWF0aW9uKGFuaW1hdGlvbkN0cmw6IEFuaW1hdGlvbkNvbnRyb2xsZXIsIGN1cnJlbnRPZmZzZXQ6IG51bWJlciwgb3B0czogU2hvd1RvYXN0T3B0aW9ucyk6IEFuaW1hdGlvbkJ1aWxkZXIge1xuICAgIGlmIChvcHRzLnBvc2l0aW9uID09PSAnbWlkZGxlJykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgZGlyZWN0aW9uID0gb3B0cy5wb3NpdGlvbiA9PT0gJ3RvcCcgPyAxIDogLTE7XG4gICAgY29uc3Qgc3RhcnQgPSBjdXJyZW50T2Zmc2V0ICogVE9BU1RfTUFYX0hFSUdIVF9QWCAtIGRpcmVjdGlvbiAqIFRPQVNUX01BWF9IRUlHSFRfUFg7XG4gICAgY29uc3QgZW5kID0gZGlyZWN0aW9uICogY3VycmVudE9mZnNldCAqIFRPQVNUX01BWF9IRUlHSFRfUFg7XG4gICAgcmV0dXJuIChiYXNlRWw6IEhUTUxFbGVtZW50LCBvcHRzKSA9PiB7XG4gICAgICAvLyBGSVhNRTogd3JhcHBlciBpcyBhbHdheXMgbnVsbFxuICAgICAgY29uc3Qgd3JhcHBlciA9IGJhc2VFbC5xdWVyeVNlbGVjdG9yKCcudG9hc3Qtd3JhcHBlcicpO1xuICAgICAgcmV0dXJuIGNyZWF0ZUFuaW1hdGlvbigpXG4gICAgICAgIC5hZGRFbGVtZW50KHdyYXBwZXIpXG4gICAgICAgIC5kdXJhdGlvbigyNTApXG4gICAgICAgIC5mcm9tVG8oJ3RyYW5zZm9ybScsIGB0cmFuc2xhdGVZKCR7c3RhcnR9cHgpYCwgYHRyYW5zbGF0ZVkoJHtlbmR9cHgpYClcbiAgICAgICAgLmZyb21Ubygnb3BhY2l0eScsICcwJywgJzEnKTtcbiAgICB9O1xuICB9XG59XG4iXX0=