@sumaris-net/ngx-components 2.18.0-beta8 → 2.21.0-rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (715) hide show
  1. package/README.md +3 -0
  2. package/doc/build.md +14 -14
  3. package/doc/changelog.md +1386 -88
  4. package/doc/feed/feed-en.json +26 -0
  5. package/doc/feed/feed-fr.json +28 -0
  6. package/fesm2022/sumaris-net.ngx-components.mjs +32441 -22724
  7. package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
  8. package/package.json +42 -39
  9. package/src/assets/environments/environment-test.json +2 -2
  10. package/src/assets/i18n/en-US.json +143 -45
  11. package/src/assets/i18n/en.json +142 -43
  12. package/src/assets/i18n/fr.json +147 -47
  13. package/src/assets/manifest.json +1 -1
  14. package/src/theme/_icons.scss +8 -12
  15. package/src/theme/_ionic.globals.scss +8 -1
  16. package/src/theme/_markdown.scss +1 -1
  17. package/src/theme/_material.globals.scss +4 -1
  18. package/src/theme/_material.scss +60 -17
  19. package/src/theme/_mixins.scss +39 -4
  20. package/src/theme/_ngx-components.forms.scss +115 -89
  21. package/src/theme/_ngx-components.globals.scss +4 -1
  22. package/src/theme/_ngx-components.scss +162 -110
  23. package/src/theme/_ngx-components.table.scss +105 -44
  24. package/src/theme/_ngx-components.tabs.scss +46 -14
  25. package/src/theme/_responsive.scss +15 -0
  26. package/src/theme/_roboto.scss +3 -0
  27. package/src/theme/_theme.scss +11 -14
  28. package/src/theme/_theme.variables.scss +7 -3
  29. package/src/theme/ionic/ionic.functions.color.scss +13 -5
  30. package/src/theme/ionic/ionic.globals.scss +4 -4
  31. package/src/theme/ionic/ionic.theme.default.scss +2 -0
  32. package/types/sumaris-net.ngx-components.d.ts +14132 -0
  33. package/esm2022/public_api.mjs +0 -358
  34. package/esm2022/src/app/admin/admin-routing.module.mjs +0 -34
  35. package/esm2022/src/app/admin/admin.module.mjs +0 -32
  36. package/esm2022/src/app/admin/services/filter/person.filter.mjs +0 -69
  37. package/esm2022/src/app/admin/services/person.service.mjs +0 -174
  38. package/esm2022/src/app/admin/services/validator/person.validator.mjs +0 -72
  39. package/esm2022/src/app/admin/users/users.mjs +0 -267
  40. package/esm2022/src/app/admin/users/users.module.mjs +0 -56
  41. package/esm2022/src/app/core/about/about.modal.mjs +0 -84
  42. package/esm2022/src/app/core/about/about.module.mjs +0 -21
  43. package/esm2022/src/app/core/account/account.module.mjs +0 -68
  44. package/esm2022/src/app/core/account/account.page.mjs +0 -351
  45. package/esm2022/src/app/core/account/new-token.modal.mjs +0 -132
  46. package/esm2022/src/app/core/account/password/change-password.form.mjs +0 -60
  47. package/esm2022/src/app/core/account/password/change-password.module.mjs +0 -22
  48. package/esm2022/src/app/core/account/password/change-password.page.mjs +0 -144
  49. package/esm2022/src/app/core/account/token.table.mjs +0 -152
  50. package/esm2022/src/app/core/auth/auth.form.mjs +0 -159
  51. package/esm2022/src/app/core/auth/auth.modal.mjs +0 -76
  52. package/esm2022/src/app/core/auth/auth.module.mjs +0 -56
  53. package/esm2022/src/app/core/auth/reset-password.modal.mjs +0 -77
  54. package/esm2022/src/app/core/core.module.mjs +0 -151
  55. package/esm2022/src/app/core/core.testing.module.mjs +0 -107
  56. package/esm2022/src/app/core/form/array/form-array.mjs +0 -325
  57. package/esm2022/src/app/core/form/array/testing/form-array-test.module.mjs +0 -23
  58. package/esm2022/src/app/core/form/array/testing/form-array.test.mjs +0 -94
  59. package/esm2022/src/app/core/form/buttons/form-buttons-bar.component.mjs +0 -108
  60. package/esm2022/src/app/core/form/buttons/form-buttons-bar.module.mjs +0 -31
  61. package/esm2022/src/app/core/form/entity/editor.class.mjs +0 -265
  62. package/esm2022/src/app/core/form/entity/entity-editor-modal.class.mjs +0 -420
  63. package/esm2022/src/app/core/form/entity/entity-editor.class.mjs +0 -731
  64. package/esm2022/src/app/core/form/entity/entity-metadata.component.mjs +0 -24
  65. package/esm2022/src/app/core/form/entity/entity.module.mjs +0 -32
  66. package/esm2022/src/app/core/form/entity/tab-editor.class.mjs +0 -194
  67. package/esm2022/src/app/core/form/form-container.class.mjs +0 -327
  68. package/esm2022/src/app/core/form/form.class.mjs +0 -336
  69. package/esm2022/src/app/core/form/form.module.mjs +0 -70
  70. package/esm2022/src/app/core/form/form.utils.mjs +0 -197
  71. package/esm2022/src/app/core/form/list/list.form.mjs +0 -235
  72. package/esm2022/src/app/core/form/list/list.module.mjs +0 -31
  73. package/esm2022/src/app/core/form/properties/properties.form.mjs +0 -225
  74. package/esm2022/src/app/core/form/properties/properties.module.mjs +0 -37
  75. package/esm2022/src/app/core/form/properties/properties.table.mjs +0 -268
  76. package/esm2022/src/app/core/form/properties/properties.utils.mjs +0 -60
  77. package/esm2022/src/app/core/form/properties/property.validator.mjs +0 -38
  78. package/esm2022/src/app/core/form/properties/testing/properties-form.test.mjs +0 -95
  79. package/esm2022/src/app/core/form/properties/testing/properties-form.testing.module.mjs +0 -23
  80. package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.mjs +0 -73
  81. package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.module.mjs +0 -30
  82. package/esm2022/src/app/core/form/text-popover/text-popover.component.mjs +0 -152
  83. package/esm2022/src/app/core/form/text-popover/text-popover.module.mjs +0 -31
  84. package/esm2022/src/app/core/form/username/username.form.mjs +0 -52
  85. package/esm2022/src/app/core/form/username/username.module.mjs +0 -20
  86. package/esm2022/src/app/core/graphql/graphql.module.mjs +0 -14
  87. package/esm2022/src/app/core/graphql/graphql.service.mjs +0 -783
  88. package/esm2022/src/app/core/graphql/graphql.utils.mjs +0 -119
  89. package/esm2022/src/app/core/home/home.mjs +0 -311
  90. package/esm2022/src/app/core/home/home.module.mjs +0 -42
  91. package/esm2022/src/app/core/icon/icon.component.mjs +0 -40
  92. package/esm2022/src/app/core/icon/icon.module.mjs +0 -20
  93. package/esm2022/src/app/core/install/install-upgrade-card.component.mjs +0 -354
  94. package/esm2022/src/app/core/install/install-upgrade-card.module.mjs +0 -31
  95. package/esm2022/src/app/core/menu/menu.component.mjs +0 -263
  96. package/esm2022/src/app/core/menu/menu.model.mjs +0 -272
  97. package/esm2022/src/app/core/menu/menu.module.mjs +0 -47
  98. package/esm2022/src/app/core/menu/menu.service.mjs +0 -655
  99. package/esm2022/src/app/core/menu/sub-menu-tab.directive.mjs +0 -109
  100. package/esm2022/src/app/core/menu/testing/menu-other.testing.mjs +0 -49
  101. package/esm2022/src/app/core/menu/testing/menu.testing.mjs +0 -157
  102. package/esm2022/src/app/core/menu/testing/menu.testing.module.mjs +0 -60
  103. package/esm2022/src/app/core/offline/update-offline-mode-card.component.mjs +0 -28
  104. package/esm2022/src/app/core/offline/update-offline-mode-card.module.mjs +0 -31
  105. package/esm2022/src/app/core/peer/select-peer.modal.mjs +0 -203
  106. package/esm2022/src/app/core/peer/select-peer.module.mjs +0 -30
  107. package/esm2022/src/app/core/register/register-confirm.page.mjs +0 -90
  108. package/esm2022/src/app/core/register/register.form.mjs +0 -194
  109. package/esm2022/src/app/core/register/register.modal.mjs +0 -55
  110. package/esm2022/src/app/core/register/register.module.mjs +0 -23
  111. package/esm2022/src/app/core/services/account.service.mjs +0 -1346
  112. package/esm2022/src/app/core/services/auth-guard.service.mjs +0 -74
  113. package/esm2022/src/app/core/services/base-entity-service.class.mjs +0 -473
  114. package/esm2022/src/app/core/services/base-graphql-service.class.mjs +0 -230
  115. package/esm2022/src/app/core/services/base58.mjs +0 -83
  116. package/esm2022/src/app/core/services/config/core.config.mjs +0 -233
  117. package/esm2022/src/app/core/services/config.service.mjs +0 -384
  118. package/esm2022/src/app/core/services/crypto.service.mjs +0 -107
  119. package/esm2022/src/app/core/services/errors.mjs +0 -52
  120. package/esm2022/src/app/core/services/local-settings.service.mjs +0 -482
  121. package/esm2022/src/app/core/services/model/account.model.mjs +0 -150
  122. package/esm2022/src/app/core/services/model/config.model.mjs +0 -107
  123. package/esm2022/src/app/core/services/model/department.model.mjs +0 -35
  124. package/esm2022/src/app/core/services/model/entity.decorators.mjs +0 -97
  125. package/esm2022/src/app/core/services/model/entity.model.mjs +0 -224
  126. package/esm2022/src/app/core/services/model/filter.model.mjs +0 -93
  127. package/esm2022/src/app/core/services/model/history.model.mjs +0 -2
  128. package/esm2022/src/app/core/services/model/model.enum.mjs +0 -11
  129. package/esm2022/src/app/core/services/model/peer.model.mjs +0 -93
  130. package/esm2022/src/app/core/services/model/person.model.mjs +0 -114
  131. package/esm2022/src/app/core/services/model/referential.model.mjs +0 -202
  132. package/esm2022/src/app/core/services/model/settings.model.mjs +0 -4
  133. package/esm2022/src/app/core/services/model/token.model.mjs +0 -56
  134. package/esm2022/src/app/core/services/model/tree-item-entity.model.mjs +0 -195
  135. package/esm2022/src/app/core/services/network.service.mjs +0 -631
  136. package/esm2022/src/app/core/services/network.types.mjs +0 -20
  137. package/esm2022/src/app/core/services/network.utils.mjs +0 -15
  138. package/esm2022/src/app/core/services/pipes/account.pipes.mjs +0 -38
  139. package/esm2022/src/app/core/services/pipes/department-to-string.pipe.mjs +0 -23
  140. package/esm2022/src/app/core/services/pipes/person-to-string.pipe.mjs +0 -23
  141. package/esm2022/src/app/core/services/pipes/pipes.module.mjs +0 -54
  142. package/esm2022/src/app/core/services/pipes/referential-to-string.pipe.mjs +0 -21
  143. package/esm2022/src/app/core/services/pipes/usage-mode.pipes.mjs +0 -37
  144. package/esm2022/src/app/core/services/platform.service.mjs +0 -583
  145. package/esm2022/src/app/core/services/storage/entities-storage.service.mjs +0 -427
  146. package/esm2022/src/app/core/services/storage/entity-store.class.mjs +0 -449
  147. package/esm2022/src/app/core/services/testing/referential-filter.model.mjs +0 -25
  148. package/esm2022/src/app/core/services/testing/referential.validator.mjs +0 -46
  149. package/esm2022/src/app/core/services/validator/account.validator.mjs +0 -45
  150. package/esm2022/src/app/core/services/validator/base.validator.class.mjs +0 -49
  151. package/esm2022/src/app/core/services/validator/local-settings.validator.mjs +0 -81
  152. package/esm2022/src/app/core/services/validator/user-settings.validator.mjs +0 -27
  153. package/esm2022/src/app/core/services/validator/user-token.validator.mjs +0 -55
  154. package/esm2022/src/app/core/settings/settings.module.mjs +0 -22
  155. package/esm2022/src/app/core/settings/settings.page.mjs +0 -341
  156. package/esm2022/src/app/core/table/async-table.class.mjs +0 -1753
  157. package/esm2022/src/app/core/table/column/actions-column.component.mjs +0 -127
  158. package/esm2022/src/app/core/table/column/nav-actions-column.component.mjs +0 -117
  159. package/esm2022/src/app/core/table/column/row-field.component.mjs +0 -116
  160. package/esm2022/src/app/core/table/entities-async-table-datasource.class.mjs +0 -384
  161. package/esm2022/src/app/core/table/entities-table-datasource.class.mjs +0 -401
  162. package/esm2022/src/app/core/table/memory-table.class.mjs +0 -57
  163. package/esm2022/src/app/core/table/table-select-columns.component.mjs +0 -46
  164. package/esm2022/src/app/core/table/table.class.mjs +0 -1816
  165. package/esm2022/src/app/core/table/table.model.mjs +0 -16
  166. package/esm2022/src/app/core/table/table.module.mjs +0 -51
  167. package/esm2022/src/app/core/table/table.pipes.mjs +0 -77
  168. package/esm2022/src/app/core/table/table.utils.mjs +0 -31
  169. package/esm2022/src/app/core/table/testing/table-validator.service.mjs +0 -32
  170. package/esm2022/src/app/core/table/testing/table.testing.mjs +0 -329
  171. package/esm2022/src/app/core/table/testing/table.testing.module.mjs +0 -25
  172. package/esm2022/src/app/core/table/testing/table2-validator.service.mjs +0 -25
  173. package/esm2022/src/app/core/table/testing/table2.testing.mjs +0 -273
  174. package/esm2022/src/app/shared/alerts.mjs +0 -243
  175. package/esm2022/src/app/shared/audio/audio.mjs +0 -249
  176. package/esm2022/src/app/shared/audio/audio.testing.mjs +0 -32
  177. package/esm2022/src/app/shared/audio/audio.testing.module.mjs +0 -30
  178. package/esm2022/src/app/shared/capacitor/keyboard.mjs +0 -42
  179. package/esm2022/src/app/shared/capacitor/plugins.mjs +0 -9
  180. package/esm2022/src/app/shared/constants.mjs +0 -16
  181. package/esm2022/src/app/shared/dates.mjs +0 -151
  182. package/esm2022/src/app/shared/debug/debug-service.class.mjs +0 -3
  183. package/esm2022/src/app/shared/debug/debug.component.mjs +0 -40
  184. package/esm2022/src/app/shared/debug/debug.module.mjs +0 -23
  185. package/esm2022/src/app/shared/directives/autofocus.directive.mjs +0 -91
  186. package/esm2022/src/app/shared/directives/autotitle.directive.mjs +0 -32
  187. package/esm2022/src/app/shared/directives/directives.module.mjs +0 -22
  188. package/esm2022/src/app/shared/directives/drag-and-drop.directive.mjs +0 -52
  189. package/esm2022/src/app/shared/directives/ng-var.directive.mjs +0 -33
  190. package/esm2022/src/app/shared/directives/resizable/resizable.component.mjs +0 -62
  191. package/esm2022/src/app/shared/directives/resizable/resizable.directive.mjs +0 -45
  192. package/esm2022/src/app/shared/directives/resizable/resizable.module.mjs +0 -17
  193. package/esm2022/src/app/shared/events.mjs +0 -63
  194. package/esm2022/src/app/shared/file/csv.utils.mjs +0 -92
  195. package/esm2022/src/app/shared/file/file.service.mjs +0 -118
  196. package/esm2022/src/app/shared/file/file.utils.mjs +0 -115
  197. package/esm2022/src/app/shared/file/images.utils.mjs +0 -186
  198. package/esm2022/src/app/shared/file/json.utils.mjs +0 -58
  199. package/esm2022/src/app/shared/file/uri.utils.mjs +0 -24
  200. package/esm2022/src/app/shared/focusable.mjs +0 -6
  201. package/esm2022/src/app/shared/form/field.component.mjs +0 -379
  202. package/esm2022/src/app/shared/form/field.model.mjs +0 -25
  203. package/esm2022/src/app/shared/form/loading-spinner.mjs +0 -35
  204. package/esm2022/src/app/shared/forms.mjs +0 -459
  205. package/esm2022/src/app/shared/functions.mjs +0 -551
  206. package/esm2022/src/app/shared/geolocation/geolocation.utils.mjs +0 -82
  207. package/esm2022/src/app/shared/gesture/gesture-config.mjs +0 -46
  208. package/esm2022/src/app/shared/gesture/hammer.utils.mjs +0 -2
  209. package/esm2022/src/app/shared/graph/colors.utils.mjs +0 -60
  210. package/esm2022/src/app/shared/graph/graph-colors.mjs +0 -213
  211. package/esm2022/src/app/shared/guard/component-dirty.guard.mjs +0 -59
  212. package/esm2022/src/app/shared/help/help.modal.mjs +0 -63
  213. package/esm2022/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +0 -23
  214. package/esm2022/src/app/shared/hotkeys/hotkeys.service.mjs +0 -112
  215. package/esm2022/src/app/shared/hotkeys/shared-hotkeys.module.mjs +0 -24
  216. package/esm2022/src/app/shared/http/http.utils.mjs +0 -56
  217. package/esm2022/src/app/shared/image/gallery/image-gallery.component.mjs +0 -388
  218. package/esm2022/src/app/shared/image/gallery/image-gallery.module.mjs +0 -62
  219. package/esm2022/src/app/shared/image/gallery/testing/gallegry.model.testing.mjs +0 -26
  220. package/esm2022/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +0 -87
  221. package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.mjs +0 -37
  222. package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +0 -59
  223. package/esm2022/src/app/shared/image/image.model.mjs +0 -2
  224. package/esm2022/src/app/shared/image/image.module.mjs +0 -24
  225. package/esm2022/src/app/shared/image/image.service.mjs +0 -106
  226. package/esm2022/src/app/shared/inputs.mjs +0 -263
  227. package/esm2022/src/app/shared/interceptors/progess.interceptor.mjs +0 -27
  228. package/esm2022/src/app/shared/logging/log-level.model.mjs +0 -48
  229. package/esm2022/src/app/shared/logging/logger.model.mjs +0 -47
  230. package/esm2022/src/app/shared/logging/logging-service.class.mjs +0 -125
  231. package/esm2022/src/app/shared/logging/logging-service.config.mjs +0 -2
  232. package/esm2022/src/app/shared/logging/logging-service.module.mjs +0 -30
  233. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.config.mjs +0 -46
  234. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.mjs +0 -1071
  235. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +0 -79
  236. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.utils.mjs +0 -18
  237. package/esm2022/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +0 -231
  238. package/esm2022/src/app/shared/material/badge/badge.directive.mjs +0 -251
  239. package/esm2022/src/app/shared/material/badge/badge.module.mjs +0 -20
  240. package/esm2022/src/app/shared/material/badge/badge.test.mjs +0 -42
  241. package/esm2022/src/app/shared/material/boolean/boolean.module.mjs +0 -71
  242. package/esm2022/src/app/shared/material/boolean/material.boolean.mjs +0 -376
  243. package/esm2022/src/app/shared/material/boolean/testing/boolean.test.page.mjs +0 -61
  244. package/esm2022/src/app/shared/material/chips/chips.module.mjs +0 -75
  245. package/esm2022/src/app/shared/material/chips/material.chips.mjs +0 -779
  246. package/esm2022/src/app/shared/material/chips/testing/chips.test.mjs +0 -147
  247. package/esm2022/src/app/shared/material/datetime/datetime.module.mjs +0 -76
  248. package/esm2022/src/app/shared/material/datetime/material.date.mjs +0 -471
  249. package/esm2022/src/app/shared/material/datetime/material.dateshort.mjs +0 -457
  250. package/esm2022/src/app/shared/material/datetime/material.datetime.mjs +0 -681
  251. package/esm2022/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +0 -136
  252. package/esm2022/src/app/shared/material/datetime/testing/mat-date.test.mjs +0 -127
  253. package/esm2022/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +0 -118
  254. package/esm2022/src/app/shared/material/duration/duration.module.mjs +0 -65
  255. package/esm2022/src/app/shared/material/duration/duration.utils.mjs +0 -33
  256. package/esm2022/src/app/shared/material/duration/material.duration.mjs +0 -274
  257. package/esm2022/src/app/shared/material/duration/testing/mat-duration.test.mjs +0 -80
  258. package/esm2022/src/app/shared/material/latlong/latlong.utils.mjs +0 -313
  259. package/esm2022/src/app/shared/material/latlong/material.latlong.mjs +0 -381
  260. package/esm2022/src/app/shared/material/latlong/material.latlong.module.mjs +0 -67
  261. package/esm2022/src/app/shared/material/latlong/testing/latlong.test.mjs +0 -118
  262. package/esm2022/src/app/shared/material/material.animations.mjs +0 -143
  263. package/esm2022/src/app/shared/material/material.config.mjs +0 -3
  264. package/esm2022/src/app/shared/material/material.module.mjs +0 -229
  265. package/esm2022/src/app/shared/material/material.testing.module.mjs +0 -234
  266. package/esm2022/src/app/shared/material/paginator/material.paginator-i18n.mjs +0 -51
  267. package/esm2022/src/app/shared/material/stepper/material.stepper-i18n.mjs +0 -23
  268. package/esm2022/src/app/shared/material/swipe/material.swipe.mjs +0 -375
  269. package/esm2022/src/app/shared/material/swipe/swipe.module.mjs +0 -52
  270. package/esm2022/src/app/shared/material/swipe/testing/swipe.test.mjs +0 -67
  271. package/esm2022/src/app/shared/material/testing/common.test.mjs +0 -111
  272. package/esm2022/src/app/shared/material/text/testing/text-form.testing.mjs +0 -42
  273. package/esm2022/src/app/shared/material/text/text-form.component.mjs +0 -204
  274. package/esm2022/src/app/shared/material/text/text-form.module.mjs +0 -63
  275. package/esm2022/src/app/shared/modules.mjs +0 -12
  276. package/esm2022/src/app/shared/named-filter/named-filter-selector.component.mjs +0 -303
  277. package/esm2022/src/app/shared/named-filter/named-filter.model.mjs +0 -49
  278. package/esm2022/src/app/shared/named-filter/named-filter.module.mjs +0 -24
  279. package/esm2022/src/app/shared/named-filter/named-filter.service.mjs +0 -69
  280. package/esm2022/src/app/shared/named-filter/testing/named-filter-selector.testing.mjs +0 -74
  281. package/esm2022/src/app/shared/named-filter/testing/named-filter.testing.module.mjs +0 -28
  282. package/esm2022/src/app/shared/observables.mjs +0 -100
  283. package/esm2022/src/app/shared/pipes/arrays.pipe.mjs +0 -156
  284. package/esm2022/src/app/shared/pipes/badge.pipes.mjs +0 -24
  285. package/esm2022/src/app/shared/pipes/colors.pipe.mjs +0 -29
  286. package/esm2022/src/app/shared/pipes/date-diff-duration.pipe.mjs +0 -49
  287. package/esm2022/src/app/shared/pipes/date-format.pipe.mjs +0 -72
  288. package/esm2022/src/app/shared/pipes/date-from-now.pipe.mjs +0 -28
  289. package/esm2022/src/app/shared/pipes/duration.pipe.mjs +0 -36
  290. package/esm2022/src/app/shared/pipes/file-size.pipe.mjs +0 -53
  291. package/esm2022/src/app/shared/pipes/form.pipes.mjs +0 -219
  292. package/esm2022/src/app/shared/pipes/highlight.pipe.mjs +0 -48
  293. package/esm2022/src/app/shared/pipes/html.pipes.mjs +0 -52
  294. package/esm2022/src/app/shared/pipes/latlong-format.pipe.mjs +0 -42
  295. package/esm2022/src/app/shared/pipes/maps.pipe.mjs +0 -63
  296. package/esm2022/src/app/shared/pipes/maskito.pipe.mjs +0 -67
  297. package/esm2022/src/app/shared/pipes/math.pipes.mjs +0 -59
  298. package/esm2022/src/app/shared/pipes/ng-init.pipe.mjs +0 -19
  299. package/esm2022/src/app/shared/pipes/number-format.pipe.mjs +0 -30
  300. package/esm2022/src/app/shared/pipes/pipes.module.mjs +0 -236
  301. package/esm2022/src/app/shared/pipes/property.pipes.mjs +0 -136
  302. package/esm2022/src/app/shared/pipes/selection.pipes.mjs +0 -180
  303. package/esm2022/src/app/shared/pipes/string.pipes.mjs +0 -136
  304. package/esm2022/src/app/shared/pipes/translate-context.pipe.mjs +0 -44
  305. package/esm2022/src/app/shared/pipes/types.pipes.mjs +0 -74
  306. package/esm2022/src/app/shared/platforms.mjs +0 -45
  307. package/esm2022/src/app/shared/rx-state.module.mjs +0 -19
  308. package/esm2022/src/app/shared/services/entity-service.class.mjs +0 -7
  309. package/esm2022/src/app/shared/services/job.utils.mjs +0 -92
  310. package/esm2022/src/app/shared/services/memory-entity-service.class.mjs +0 -349
  311. package/esm2022/src/app/shared/services/progress-bar.service.mjs +0 -31
  312. package/esm2022/src/app/shared/services/startable-observable-service.class.mjs +0 -118
  313. package/esm2022/src/app/shared/services/startable-service.class.mjs +0 -107
  314. package/esm2022/src/app/shared/services/translate-context.service.mjs +0 -107
  315. package/esm2022/src/app/shared/services/validator-service.class.mjs +0 -2
  316. package/esm2022/src/app/shared/services.mjs +0 -62
  317. package/esm2022/src/app/shared/shared-routing.module.mjs +0 -72
  318. package/esm2022/src/app/shared/shared.module.mjs +0 -234
  319. package/esm2022/src/app/shared/shared.testing.module.mjs +0 -100
  320. package/esm2022/src/app/shared/storage/storage-explorer.component.mjs +0 -279
  321. package/esm2022/src/app/shared/storage/storage-explorer.module.mjs +0 -42
  322. package/esm2022/src/app/shared/storage/storage-explorer.testing-routing.module.mjs +0 -27
  323. package/esm2022/src/app/shared/storage/storage-explorer.testing.module.mjs +0 -25
  324. package/esm2022/src/app/shared/storage/storage.service.mjs +0 -134
  325. package/esm2022/src/app/shared/storage/storage.utils.mjs +0 -13
  326. package/esm2022/src/app/shared/testing/maskito.test.mjs +0 -41
  327. package/esm2022/src/app/shared/testing/observable.test.mjs +0 -94
  328. package/esm2022/src/app/shared/testing/tests.page.mjs +0 -37
  329. package/esm2022/src/app/shared/toast/toast.testing.mjs +0 -52
  330. package/esm2022/src/app/shared/toast/toast.testing.module.mjs +0 -30
  331. package/esm2022/src/app/shared/toast/toasts.mjs +0 -144
  332. package/esm2022/src/app/shared/toolbar/modal-toolbar.mjs +0 -62
  333. package/esm2022/src/app/shared/toolbar/toolbar.mjs +0 -263
  334. package/esm2022/src/app/shared/toolbar/toolbar.module.mjs +0 -26
  335. package/esm2022/src/app/shared/types.mjs +0 -2
  336. package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.mjs +0 -59
  337. package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +0 -30
  338. package/esm2022/src/app/shared/upload-file/upload-file-popover.component.mjs +0 -106
  339. package/esm2022/src/app/shared/upload-file/upload-file.component.mjs +0 -213
  340. package/esm2022/src/app/shared/upload-file/upload-file.model.mjs +0 -26
  341. package/esm2022/src/app/shared/validator/form-error-adapter.class.mjs +0 -114
  342. package/esm2022/src/app/shared/validator/validators.mjs +0 -601
  343. package/esm2022/src/app/shared/version/versions.mjs +0 -81
  344. package/esm2022/src/app/social/job/job.module.mjs +0 -23
  345. package/esm2022/src/app/social/job/progression/job-progression.component.mjs +0 -35
  346. package/esm2022/src/app/social/job/progression/job-progression.icon.mjs +0 -235
  347. package/esm2022/src/app/social/job/progression/job-progression.list.mjs +0 -47
  348. package/esm2022/src/app/social/job/progression/job-progression.model.mjs +0 -29
  349. package/esm2022/src/app/social/job/progression/job-progression.service.mjs +0 -91
  350. package/esm2022/src/app/social/job/testing/job-progression.testing.mjs +0 -38
  351. package/esm2022/src/app/social/job/testing/job-progression.testing.service.mjs +0 -34
  352. package/esm2022/src/app/social/job/testing/job.testing.module.mjs +0 -22
  353. package/esm2022/src/app/social/message/message.form.mjs +0 -140
  354. package/esm2022/src/app/social/message/message.modal.mjs +0 -110
  355. package/esm2022/src/app/social/message/message.model.mjs +0 -75
  356. package/esm2022/src/app/social/message/message.module.mjs +0 -22
  357. package/esm2022/src/app/social/message/message.service.mjs +0 -110
  358. package/esm2022/src/app/social/social.errors.mjs +0 -10
  359. package/esm2022/src/app/social/social.module.mjs +0 -22
  360. package/esm2022/src/app/social/social.testing.module.mjs +0 -40
  361. package/esm2022/src/app/social/user-event/notification/user-event-notification.icon.mjs +0 -127
  362. package/esm2022/src/app/social/user-event/notification/user-event-notification.list.mjs +0 -260
  363. package/esm2022/src/app/social/user-event/testing/user-event.testing.mjs +0 -257
  364. package/esm2022/src/app/social/user-event/testing/user-event.testing.model.mjs +0 -129
  365. package/esm2022/src/app/social/user-event/testing/user-event.testing.module.mjs +0 -22
  366. package/esm2022/src/app/social/user-event/testing/user-event.testing.service.mjs +0 -128
  367. package/esm2022/src/app/social/user-event/user-event.model.mjs +0 -2
  368. package/esm2022/src/app/social/user-event/user-event.module.mjs +0 -23
  369. package/esm2022/src/app/social/user-event/user-event.service.mjs +0 -509
  370. package/esm2022/src/environments/environment.class.mjs +0 -57
  371. package/esm2022/src/environments/environment.loader.mjs +0 -77
  372. package/esm2022/src/environments/environment.mjs +0 -105
  373. package/esm2022/sumaris-net.ngx-components.mjs +0 -5
  374. package/index.d.ts +0 -5
  375. package/public_api.d.ts +0 -322
  376. package/src/app/admin/admin-routing.module.d.ts +0 -9
  377. package/src/app/admin/admin.module.d.ts +0 -10
  378. package/src/app/admin/services/filter/person.filter.d.ts +0 -21
  379. package/src/app/admin/services/person.service.d.ts +0 -49
  380. package/src/app/admin/services/validator/person.validator.d.ts +0 -23
  381. package/src/app/admin/users/users.d.ts +0 -45
  382. package/src/app/admin/users/users.module.d.ts +0 -14
  383. package/src/app/core/about/about.modal.d.ts +0 -32
  384. package/src/app/core/about/about.module.d.ts +0 -10
  385. package/src/app/core/account/account.module.d.ts +0 -16
  386. package/src/app/core/account/account.page.d.ts +0 -80
  387. package/src/app/core/account/new-token.modal.d.ts +0 -41
  388. package/src/app/core/account/password/change-password.form.d.ts +0 -19
  389. package/src/app/core/account/password/change-password.module.d.ts +0 -11
  390. package/src/app/core/account/password/change-password.page.d.ts +0 -36
  391. package/src/app/core/account/token.table.d.ts +0 -27
  392. package/src/app/core/auth/auth.form.d.ts +0 -38
  393. package/src/app/core/auth/auth.modal.d.ts +0 -24
  394. package/src/app/core/auth/auth.module.d.ts +0 -13
  395. package/src/app/core/auth/reset-password.modal.d.ts +0 -26
  396. package/src/app/core/core.module.d.ts +0 -28
  397. package/src/app/core/core.testing.module.d.ts +0 -15
  398. package/src/app/core/form/array/form-array.d.ts +0 -136
  399. package/src/app/core/form/array/testing/form-array-test.module.d.ts +0 -12
  400. package/src/app/core/form/array/testing/form-array.test.d.ts +0 -26
  401. package/src/app/core/form/buttons/form-buttons-bar.component.d.ts +0 -37
  402. package/src/app/core/form/buttons/form-buttons-bar.module.d.ts +0 -9
  403. package/src/app/core/form/entity/editor.class.d.ts +0 -83
  404. package/src/app/core/form/entity/entity-editor-modal.class.d.ts +0 -126
  405. package/src/app/core/form/entity/entity-editor.class.d.ts +0 -204
  406. package/src/app/core/form/entity/entity-metadata.component.d.ts +0 -13
  407. package/src/app/core/form/entity/entity.module.d.ts +0 -10
  408. package/src/app/core/form/entity/tab-editor.class.d.ts +0 -70
  409. package/src/app/core/form/form-container.class.d.ts +0 -126
  410. package/src/app/core/form/form.class.d.ts +0 -144
  411. package/src/app/core/form/form.module.d.ts +0 -14
  412. package/src/app/core/form/form.utils.d.ts +0 -251
  413. package/src/app/core/form/list/list.form.d.ts +0 -81
  414. package/src/app/core/form/list/list.module.d.ts +0 -9
  415. package/src/app/core/form/properties/properties.form.d.ts +0 -66
  416. package/src/app/core/form/properties/properties.module.d.ts +0 -11
  417. package/src/app/core/form/properties/properties.table.d.ts +0 -78
  418. package/src/app/core/form/properties/properties.utils.d.ts +0 -27
  419. package/src/app/core/form/properties/property.validator.d.ts +0 -19
  420. package/src/app/core/form/properties/testing/properties-form.test.d.ts +0 -19
  421. package/src/app/core/form/properties/testing/properties-form.testing.module.d.ts +0 -12
  422. package/src/app/core/form/text-popover/testing/text-popover.testing.d.ts +0 -16
  423. package/src/app/core/form/text-popover/testing/text-popover.testing.module.d.ts +0 -11
  424. package/src/app/core/form/text-popover/text-popover.component.d.ts +0 -71
  425. package/src/app/core/form/text-popover/text-popover.module.d.ts +0 -9
  426. package/src/app/core/form/username/username.form.d.ts +0 -19
  427. package/src/app/core/form/username/username.module.d.ts +0 -9
  428. package/src/app/core/graphql/graphql.module.d.ts +0 -7
  429. package/src/app/core/graphql/graphql.service.d.ts +0 -147
  430. package/src/app/core/graphql/graphql.utils.d.ts +0 -42
  431. package/src/app/core/home/home.d.ts +0 -94
  432. package/src/app/core/home/home.module.d.ts +0 -13
  433. package/src/app/core/icon/icon.component.d.ts +0 -13
  434. package/src/app/core/icon/icon.module.d.ts +0 -9
  435. package/src/app/core/install/install-upgrade-card.component.d.ts +0 -64
  436. package/src/app/core/install/install-upgrade-card.module.d.ts +0 -9
  437. package/src/app/core/menu/menu.component.d.ts +0 -69
  438. package/src/app/core/menu/menu.model.d.ts +0 -144
  439. package/src/app/core/menu/menu.module.d.ts +0 -12
  440. package/src/app/core/menu/menu.service.d.ts +0 -94
  441. package/src/app/core/menu/sub-menu-tab.directive.d.ts +0 -29
  442. package/src/app/core/menu/testing/menu-other.testing.d.ts +0 -15
  443. package/src/app/core/menu/testing/menu.testing.d.ts +0 -51
  444. package/src/app/core/menu/testing/menu.testing.module.d.ts +0 -12
  445. package/src/app/core/offline/update-offline-mode-card.component.d.ts +0 -11
  446. package/src/app/core/offline/update-offline-mode-card.module.d.ts +0 -9
  447. package/src/app/core/peer/select-peer.modal.d.ts +0 -60
  448. package/src/app/core/peer/select-peer.module.d.ts +0 -10
  449. package/src/app/core/register/register-confirm.page.d.ts +0 -24
  450. package/src/app/core/register/register.form.d.ts +0 -49
  451. package/src/app/core/register/register.modal.d.ts +0 -14
  452. package/src/app/core/register/register.module.d.ts +0 -12
  453. package/src/app/core/services/account.service.d.ts +0 -205
  454. package/src/app/core/services/auth-guard.service.d.ts +0 -17
  455. package/src/app/core/services/base-entity-service.class.d.ts +0 -123
  456. package/src/app/core/services/base-graphql-service.class.d.ts +0 -77
  457. package/src/app/core/services/base58.d.ts +0 -7
  458. package/src/app/core/services/config/core.config.d.ts +0 -41
  459. package/src/app/core/services/config.service.d.ts +0 -63
  460. package/src/app/core/services/crypto.service.d.ts +0 -44
  461. package/src/app/core/services/errors.d.ts +0 -63
  462. package/src/app/core/services/local-settings.service.d.ts +0 -95
  463. package/src/app/core/services/model/account.model.d.ts +0 -41
  464. package/src/app/core/services/model/config.model.d.ts +0 -36
  465. package/src/app/core/services/model/department.model.d.ts +0 -11
  466. package/src/app/core/services/model/entity.decorators.d.ts +0 -17
  467. package/src/app/core/services/model/entity.model.d.ts +0 -87
  468. package/src/app/core/services/model/filter.model.d.ts +0 -37
  469. package/src/app/core/services/model/history.model.d.ts +0 -20
  470. package/src/app/core/services/model/model.enum.d.ts +0 -7
  471. package/src/app/core/services/model/peer.model.d.ts +0 -30
  472. package/src/app/core/services/model/person.model.d.ts +0 -37
  473. package/src/app/core/services/model/referential.model.d.ts +0 -83
  474. package/src/app/core/services/model/settings.model.d.ts +0 -28
  475. package/src/app/core/services/model/token.model.d.ts +0 -22
  476. package/src/app/core/services/model/tree-item-entity.model.d.ts +0 -53
  477. package/src/app/core/services/network.service.d.ts +0 -151
  478. package/src/app/core/services/network.types.d.ts +0 -5
  479. package/src/app/core/services/network.utils.d.ts +0 -31
  480. package/src/app/core/services/pipes/account.pipes.d.ts +0 -15
  481. package/src/app/core/services/pipes/department-to-string.pipe.d.ts +0 -9
  482. package/src/app/core/services/pipes/person-to-string.pipe.d.ts +0 -11
  483. package/src/app/core/services/pipes/pipes.module.d.ts +0 -11
  484. package/src/app/core/services/pipes/referential-to-string.pipe.d.ts +0 -13
  485. package/src/app/core/services/pipes/usage-mode.pipes.d.ts +0 -15
  486. package/src/app/core/services/platform.service.d.ts +0 -100
  487. package/src/app/core/services/storage/entities-storage.service.d.ts +0 -108
  488. package/src/app/core/services/storage/entity-store.class.d.ts +0 -113
  489. package/src/app/core/services/testing/referential-filter.model.d.ts +0 -9
  490. package/src/app/core/services/testing/referential.validator.d.ts +0 -22
  491. package/src/app/core/services/validator/account.validator.d.ts +0 -24
  492. package/src/app/core/services/validator/base.validator.class.d.ts +0 -21
  493. package/src/app/core/services/validator/local-settings.validator.d.ts +0 -22
  494. package/src/app/core/services/validator/user-settings.validator.d.ts +0 -10
  495. package/src/app/core/services/validator/user-token.validator.d.ts +0 -13
  496. package/src/app/core/settings/settings.module.d.ts +0 -11
  497. package/src/app/core/settings/settings.page.d.ts +0 -81
  498. package/src/app/core/table/async-table.class.d.ts +0 -389
  499. package/src/app/core/table/column/actions-column.component.d.ts +0 -59
  500. package/src/app/core/table/column/nav-actions-column.component.d.ts +0 -46
  501. package/src/app/core/table/column/row-field.component.d.ts +0 -40
  502. package/src/app/core/table/entities-async-table-datasource.class.d.ts +0 -81
  503. package/src/app/core/table/entities-table-datasource.class.d.ts +0 -95
  504. package/src/app/core/table/memory-table.class.d.ts +0 -25
  505. package/src/app/core/table/table-select-columns.component.d.ts +0 -22
  506. package/src/app/core/table/table.class.d.ts +0 -394
  507. package/src/app/core/table/table.model.d.ts +0 -26
  508. package/src/app/core/table/table.module.d.ts +0 -14
  509. package/src/app/core/table/table.pipes.d.ts +0 -28
  510. package/src/app/core/table/table.utils.d.ts +0 -11
  511. package/src/app/core/table/testing/table-validator.service.d.ts +0 -17
  512. package/src/app/core/table/testing/table.testing.d.ts +0 -54
  513. package/src/app/core/table/testing/table.testing.module.d.ts +0 -14
  514. package/src/app/core/table/testing/table2-validator.service.d.ts +0 -15
  515. package/src/app/core/table/testing/table2.testing.d.ts +0 -48
  516. package/src/app/shared/alerts.d.ts +0 -55
  517. package/src/app/shared/audio/audio.d.ts +0 -44
  518. package/src/app/shared/audio/audio.testing.d.ts +0 -13
  519. package/src/app/shared/audio/audio.testing.module.d.ts +0 -11
  520. package/src/app/shared/capacitor/keyboard.d.ts +0 -16
  521. package/src/app/shared/capacitor/plugins.d.ts +0 -7
  522. package/src/app/shared/constants.d.ts +0 -13
  523. package/src/app/shared/dates.d.ts +0 -48
  524. package/src/app/shared/debug/debug-service.class.d.ts +0 -5
  525. package/src/app/shared/debug/debug.component.d.ts +0 -13
  526. package/src/app/shared/debug/debug.module.d.ts +0 -12
  527. package/src/app/shared/directives/autofocus.directive.d.ts +0 -18
  528. package/src/app/shared/directives/autotitle.directive.d.ts +0 -10
  529. package/src/app/shared/directives/directives.module.d.ts +0 -12
  530. package/src/app/shared/directives/drag-and-drop.directive.d.ts +0 -17
  531. package/src/app/shared/directives/ng-var.directive.d.ts +0 -12
  532. package/src/app/shared/directives/resizable/resizable.component.d.ts +0 -21
  533. package/src/app/shared/directives/resizable/resizable.directive.d.ts +0 -12
  534. package/src/app/shared/directives/resizable/resizable.module.d.ts +0 -8
  535. package/src/app/shared/events.d.ts +0 -28
  536. package/src/app/shared/file/csv.utils.d.ts +0 -24
  537. package/src/app/shared/file/file.service.d.ts +0 -23
  538. package/src/app/shared/file/file.utils.d.ts +0 -20
  539. package/src/app/shared/file/images.utils.d.ts +0 -36
  540. package/src/app/shared/file/json.utils.d.ts +0 -19
  541. package/src/app/shared/file/uri.utils.d.ts +0 -8
  542. package/src/app/shared/focusable.d.ts +0 -4
  543. package/src/app/shared/form/field.component.d.ts +0 -74
  544. package/src/app/shared/form/field.model.d.ts +0 -39
  545. package/src/app/shared/form/loading-spinner.d.ts +0 -8
  546. package/src/app/shared/forms.d.ts +0 -103
  547. package/src/app/shared/functions.d.ts +0 -152
  548. package/src/app/shared/geolocation/geolocation.utils.d.ts +0 -19
  549. package/src/app/shared/gesture/gesture-config.d.ts +0 -15
  550. package/src/app/shared/gesture/hammer.utils.d.ts +0 -16
  551. package/src/app/shared/graph/colors.utils.d.ts +0 -17
  552. package/src/app/shared/graph/graph-colors.d.ts +0 -63
  553. package/src/app/shared/guard/component-dirty.guard.d.ts +0 -14
  554. package/src/app/shared/help/help.modal.d.ts +0 -33
  555. package/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.d.ts +0 -8
  556. package/src/app/shared/hotkeys/hotkeys.service.d.ts +0 -42
  557. package/src/app/shared/hotkeys/shared-hotkeys.module.d.ts +0 -11
  558. package/src/app/shared/http/http.utils.d.ts +0 -28
  559. package/src/app/shared/image/gallery/image-gallery.component.d.ts +0 -98
  560. package/src/app/shared/image/gallery/image-gallery.module.d.ts +0 -15
  561. package/src/app/shared/image/gallery/testing/gallegry.model.testing.d.ts +0 -12
  562. package/src/app/shared/image/gallery/testing/gallery.service.testing.d.ts +0 -33
  563. package/src/app/shared/image/gallery/testing/gallery.testing.d.ts +0 -16
  564. package/src/app/shared/image/gallery/testing/gallery.testing.module.d.ts +0 -13
  565. package/src/app/shared/image/image.model.d.ts +0 -5
  566. package/src/app/shared/image/image.module.d.ts +0 -8
  567. package/src/app/shared/image/image.service.d.ts +0 -32
  568. package/src/app/shared/inputs.d.ts +0 -34
  569. package/src/app/shared/interceptors/progess.interceptor.d.ts +0 -8
  570. package/src/app/shared/logging/log-level.model.d.ts +0 -38
  571. package/src/app/shared/logging/logger.model.d.ts +0 -68
  572. package/src/app/shared/logging/logging-service.class.d.ts +0 -39
  573. package/src/app/shared/logging/logging-service.config.d.ts +0 -25
  574. package/src/app/shared/logging/logging-service.module.d.ts +0 -9
  575. package/src/app/shared/material/autocomplete/material.autocomplete.config.d.ts +0 -55
  576. package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +0 -180
  577. package/src/app/shared/material/autocomplete/material.autocomplete.module.d.ts +0 -22
  578. package/src/app/shared/material/autocomplete/material.autocomplete.utils.d.ts +0 -5
  579. package/src/app/shared/material/autocomplete/testing/autocomplete.test.d.ts +0 -46
  580. package/src/app/shared/material/badge/badge.directive.d.ts +0 -43
  581. package/src/app/shared/material/badge/badge.module.d.ts +0 -10
  582. package/src/app/shared/material/badge/badge.test.d.ts +0 -21
  583. package/src/app/shared/material/boolean/boolean.module.d.ts +0 -21
  584. package/src/app/shared/material/boolean/material.boolean.d.ts +0 -93
  585. package/src/app/shared/material/boolean/testing/boolean.test.page.d.ts +0 -22
  586. package/src/app/shared/material/chips/chips.module.d.ts +0 -22
  587. package/src/app/shared/material/chips/material.chips.d.ts +0 -150
  588. package/src/app/shared/material/chips/testing/chips.test.d.ts +0 -32
  589. package/src/app/shared/material/datetime/datetime.module.d.ts +0 -24
  590. package/src/app/shared/material/datetime/material.date.d.ts +0 -90
  591. package/src/app/shared/material/datetime/material.dateshort.d.ts +0 -89
  592. package/src/app/shared/material/datetime/material.datetime.d.ts +0 -121
  593. package/src/app/shared/material/datetime/testing/mat-date-time.test.d.ts +0 -37
  594. package/src/app/shared/material/datetime/testing/mat-date.test.d.ts +0 -32
  595. package/src/app/shared/material/datetime/testing/mat-dateshort.test.d.ts +0 -31
  596. package/src/app/shared/material/duration/duration.module.d.ts +0 -19
  597. package/src/app/shared/material/duration/duration.utils.d.ts +0 -3
  598. package/src/app/shared/material/duration/material.duration.d.ts +0 -58
  599. package/src/app/shared/material/duration/testing/mat-duration.test.d.ts +0 -22
  600. package/src/app/shared/material/latlong/latlong.utils.d.ts +0 -21
  601. package/src/app/shared/material/latlong/material.latlong.d.ts +0 -70
  602. package/src/app/shared/material/latlong/material.latlong.module.d.ts +0 -20
  603. package/src/app/shared/material/latlong/testing/latlong.test.d.ts +0 -27
  604. package/src/app/shared/material/material.animations.d.ts +0 -6
  605. package/src/app/shared/material/material.config.d.ts +0 -3
  606. package/src/app/shared/material/material.module.d.ts +0 -45
  607. package/src/app/shared/material/material.testing.module.d.ts +0 -31
  608. package/src/app/shared/material/paginator/material.paginator-i18n.d.ts +0 -12
  609. package/src/app/shared/material/stepper/material.stepper-i18n.d.ts +0 -10
  610. package/src/app/shared/material/swipe/material.swipe.d.ts +0 -90
  611. package/src/app/shared/material/swipe/swipe.module.d.ts +0 -16
  612. package/src/app/shared/material/swipe/testing/swipe.test.d.ts +0 -22
  613. package/src/app/shared/material/testing/common.test.d.ts +0 -25
  614. package/src/app/shared/material/text/testing/text-form.testing.d.ts +0 -19
  615. package/src/app/shared/material/text/text-form.component.d.ts +0 -66
  616. package/src/app/shared/material/text/text-form.module.d.ts +0 -16
  617. package/src/app/shared/modules.d.ts +0 -9
  618. package/src/app/shared/named-filter/named-filter-selector.component.d.ts +0 -60
  619. package/src/app/shared/named-filter/named-filter.model.d.ts +0 -32
  620. package/src/app/shared/named-filter/named-filter.module.d.ts +0 -13
  621. package/src/app/shared/named-filter/named-filter.service.d.ts +0 -32
  622. package/src/app/shared/named-filter/testing/named-filter-selector.testing.d.ts +0 -34
  623. package/src/app/shared/named-filter/testing/named-filter.testing.module.d.ts +0 -10
  624. package/src/app/shared/observables.d.ts +0 -30
  625. package/src/app/shared/pipes/arrays.pipe.d.ts +0 -59
  626. package/src/app/shared/pipes/badge.pipes.d.ts +0 -7
  627. package/src/app/shared/pipes/colors.pipe.d.ts +0 -9
  628. package/src/app/shared/pipes/date-diff-duration.pipe.d.ts +0 -23
  629. package/src/app/shared/pipes/date-format.pipe.d.ts +0 -35
  630. package/src/app/shared/pipes/date-from-now.pipe.d.ts +0 -12
  631. package/src/app/shared/pipes/duration.pipe.d.ts +0 -13
  632. package/src/app/shared/pipes/file-size.pipe.d.ts +0 -30
  633. package/src/app/shared/pipes/form.pipes.d.ts +0 -69
  634. package/src/app/shared/pipes/highlight.pipe.d.ts +0 -11
  635. package/src/app/shared/pipes/html.pipes.d.ts +0 -15
  636. package/src/app/shared/pipes/latlong-format.pipe.d.ts +0 -20
  637. package/src/app/shared/pipes/maps.pipe.d.ts +0 -22
  638. package/src/app/shared/pipes/maskito.pipe.d.ts +0 -14
  639. package/src/app/shared/pipes/math.pipes.d.ts +0 -20
  640. package/src/app/shared/pipes/ng-init.pipe.d.ts +0 -8
  641. package/src/app/shared/pipes/number-format.pipe.d.ts +0 -10
  642. package/src/app/shared/pipes/pipes.module.d.ts +0 -31
  643. package/src/app/shared/pipes/property.pipes.d.ts +0 -47
  644. package/src/app/shared/pipes/selection.pipes.d.ts +0 -62
  645. package/src/app/shared/pipes/string.pipes.d.ts +0 -53
  646. package/src/app/shared/pipes/translate-context.pipe.d.ts +0 -17
  647. package/src/app/shared/pipes/types.pipes.d.ts +0 -30
  648. package/src/app/shared/platforms.d.ts +0 -8
  649. package/src/app/shared/rx-state.module.d.ts +0 -10
  650. package/src/app/shared/services/entity-service.class.d.ts +0 -71
  651. package/src/app/shared/services/job.utils.d.ts +0 -20
  652. package/src/app/shared/services/memory-entity-service.class.d.ts +0 -78
  653. package/src/app/shared/services/progress-bar.service.d.ts +0 -20
  654. package/src/app/shared/services/startable-observable-service.class.d.ts +0 -36
  655. package/src/app/shared/services/startable-service.class.d.ts +0 -37
  656. package/src/app/shared/services/translate-context.service.d.ts +0 -29
  657. package/src/app/shared/services/validator-service.class.d.ts +0 -11
  658. package/src/app/shared/services.d.ts +0 -10
  659. package/src/app/shared/shared-routing.module.d.ts +0 -23
  660. package/src/app/shared/shared.module.d.ts +0 -34
  661. package/src/app/shared/shared.testing.module.d.ts +0 -19
  662. package/src/app/shared/storage/storage-explorer.component.d.ts +0 -59
  663. package/src/app/shared/storage/storage-explorer.module.d.ts +0 -13
  664. package/src/app/shared/storage/storage-explorer.testing-routing.module.d.ts +0 -9
  665. package/src/app/shared/storage/storage-explorer.testing.module.d.ts +0 -10
  666. package/src/app/shared/storage/storage.service.d.ts +0 -22
  667. package/src/app/shared/storage/storage.utils.d.ts +0 -19
  668. package/src/app/shared/testing/maskito.test.d.ts +0 -10
  669. package/src/app/shared/testing/observable.test.d.ts +0 -25
  670. package/src/app/shared/testing/tests.page.d.ts +0 -20
  671. package/src/app/shared/toast/toast.testing.d.ts +0 -15
  672. package/src/app/shared/toast/toast.testing.module.d.ts +0 -11
  673. package/src/app/shared/toast/toasts.d.ts +0 -17
  674. package/src/app/shared/toolbar/modal-toolbar.d.ts +0 -21
  675. package/src/app/shared/toolbar/toolbar.d.ts +0 -68
  676. package/src/app/shared/toolbar/toolbar.module.d.ts +0 -16
  677. package/src/app/shared/types.d.ts +0 -31
  678. package/src/app/shared/upload-file/testing/upload-file.testing.d.ts +0 -21
  679. package/src/app/shared/upload-file/testing/upload-file.testing.module.d.ts +0 -11
  680. package/src/app/shared/upload-file/upload-file-popover.component.d.ts +0 -39
  681. package/src/app/shared/upload-file/upload-file.component.d.ts +0 -49
  682. package/src/app/shared/upload-file/upload-file.model.d.ts +0 -30
  683. package/src/app/shared/validator/form-error-adapter.class.d.ts +0 -33
  684. package/src/app/shared/validator/validators.d.ts +0 -130
  685. package/src/app/shared/version/versions.d.ts +0 -26
  686. package/src/app/social/job/job.module.d.ts +0 -12
  687. package/src/app/social/job/progression/job-progression.component.d.ts +0 -23
  688. package/src/app/social/job/progression/job-progression.icon.d.ts +0 -62
  689. package/src/app/social/job/progression/job-progression.list.d.ts +0 -19
  690. package/src/app/social/job/progression/job-progression.model.d.ts +0 -10
  691. package/src/app/social/job/progression/job-progression.service.d.ts +0 -33
  692. package/src/app/social/job/testing/job-progression.testing.d.ts +0 -13
  693. package/src/app/social/job/testing/job-progression.testing.service.d.ts +0 -9
  694. package/src/app/social/job/testing/job.testing.module.d.ts +0 -11
  695. package/src/app/social/message/message.form.d.ts +0 -36
  696. package/src/app/social/message/message.modal.d.ts +0 -43
  697. package/src/app/social/message/message.model.d.ts +0 -33
  698. package/src/app/social/message/message.module.d.ts +0 -12
  699. package/src/app/social/message/message.service.d.ts +0 -32
  700. package/src/app/social/social.errors.d.ts +0 -9
  701. package/src/app/social/social.module.d.ts +0 -20
  702. package/src/app/social/social.testing.module.d.ts +0 -13
  703. package/src/app/social/user-event/notification/user-event-notification.icon.d.ts +0 -32
  704. package/src/app/social/user-event/notification/user-event-notification.list.d.ts +0 -71
  705. package/src/app/social/user-event/testing/user-event.testing.d.ts +0 -35
  706. package/src/app/social/user-event/testing/user-event.testing.model.d.ts +0 -42
  707. package/src/app/social/user-event/testing/user-event.testing.module.d.ts +0 -11
  708. package/src/app/social/user-event/testing/user-event.testing.service.d.ts +0 -42
  709. package/src/app/social/user-event/user-event.model.d.ts +0 -44
  710. package/src/app/social/user-event/user-event.module.d.ts +0 -13
  711. package/src/app/social/user-event/user-event.service.d.ts +0 -129
  712. package/src/environments/environment.class.d.ts +0 -68
  713. package/src/environments/environment.d.ts +0 -2
  714. package/src/environments/environment.loader.d.ts +0 -24
  715. package/src/theme/_globals.scss +0 -5
@@ -1,144 +0,0 @@
1
- import { createAnimation, IonicSafeString, ToastController } from '@ionic/angular';
2
- import { TranslateService } from '@ngx-translate/core';
3
- import { isEmptyArray, isNotNil } from '../functions';
4
- const TOAST_MAX_HEIGHT_PX = 75;
5
- const TOAST_MAX_STACK_SIZE = 4;
6
- export class Toasts {
7
- static counter = 0;
8
- static stackSize = 0;
9
- static async showSimple(injector, opts) {
10
- return this.show(injector.get(ToastController), injector.get(TranslateService), opts);
11
- }
12
- static async show(toastController, translate, opts) {
13
- // DEBUG
14
- //console.debug('[Toasts.show]', opts);
15
- if (!toastController || !translate) {
16
- console.error("Missing required argument 'toastController' or 'translate'");
17
- if (opts.message instanceof IonicSafeString)
18
- console.info('[toasts] message: ' + ((translate && translate.instant(opts.message.value)) || opts.message.value));
19
- else if (typeof opts.message === 'string')
20
- console.info('[toasts] message: ' + ((translate && translate.instant(opts.message, opts.messageParams)) || opts.message));
21
- return Promise.resolve({});
22
- }
23
- this.counter++; // Increment toast counter
24
- let currentOffset = this.stackSize;
25
- if (this.stackSize < TOAST_MAX_STACK_SIZE) {
26
- this.stackSize++; // Increment stack offset
27
- }
28
- else {
29
- this.stackSize = 1; // Reset the stack
30
- currentOffset = 0;
31
- }
32
- const updateCounters = () => {
33
- // Decrease counter
34
- this.counter--;
35
- // If all toast closed: reset the stack offset
36
- if (this.counter === 0) {
37
- this.stackSize = 0;
38
- }
39
- // If current toast is the last one, decrease the offset
40
- else if (this.stackSize === currentOffset + 1) {
41
- this.stackSize--;
42
- }
43
- };
44
- const message = opts.message && opts.message instanceof IonicSafeString ? opts.message.value : opts.message;
45
- const i18nKeys = [message];
46
- if (opts.header)
47
- i18nKeys.push(opts.header);
48
- let closeButton;
49
- if (opts.showCloseButton) {
50
- opts.buttons = opts.buttons || [];
51
- const buttonIndex = opts.buttons
52
- .map((b) => (typeof b === 'object' && b) || undefined)
53
- .filter(isNotNil)
54
- .findIndex((b) => b.role === 'close');
55
- if (buttonIndex !== -1) {
56
- closeButton = opts.buttons[buttonIndex];
57
- }
58
- else {
59
- closeButton = { role: 'close' };
60
- opts.buttons.push(closeButton);
61
- }
62
- closeButton.text = closeButton.text || 'COMMON.BTN_OK';
63
- i18nKeys.push(closeButton.text);
64
- }
65
- // Read CSS
66
- const cssArray = (opts.cssClass && typeof opts.cssClass === 'string' && opts.cssClass.split(',')) || opts.cssClass || [];
67
- // Add 'error' class, if need
68
- if (opts.type) {
69
- switch (opts.type) {
70
- case 'error':
71
- cssArray.push('danger');
72
- break;
73
- case 'warning':
74
- cssArray.push('accent');
75
- break;
76
- case 'info':
77
- cssArray.push('secondary');
78
- break;
79
- }
80
- }
81
- const translations = translate.instant(i18nKeys);
82
- if (opts.messageParams) {
83
- translations[message] = translate.instant(message, opts.messageParams);
84
- }
85
- if (closeButton) {
86
- closeButton.text = translations[closeButton.text];
87
- }
88
- // Retrieve the toast position
89
- const position = opts.position || (opts.mode === 'ios' ? 'bottom' : 'top');
90
- if (!opts.enterAnimation && position !== 'middle') {
91
- // FIXME: animation failed, since migration to Ionic 6
92
- // When computing, the baseEle has no wrapper yet
93
- //opts.enterAnimation = this.createEnterAnimation(animationCtrl, currentOffset, opts);
94
- // opts.enterAnimation = (baseEl: HTMLElement, opts) => createAnimation()
95
- // .addElement(baseEl)
96
- // .delay(400)
97
- // .afterAddClass('stacked');
98
- // As workaround, we add an offset using a CSS class
99
- cssArray.push('toast-stacked-' + position);
100
- cssArray.push('toast-stack-offset-' + currentOffset);
101
- }
102
- opts.cssClass = cssArray;
103
- const toast = await toastController.create({
104
- // Default values
105
- position,
106
- duration: opts.showCloseButton ? 10000 : 4000,
107
- ...opts,
108
- message: translations[message],
109
- //header: opts.header && translations[opts.header] || undefined
110
- });
111
- if (opts.onWillPresent)
112
- opts.onWillPresent(toast);
113
- await toast.present();
114
- if (isEmptyArray(opts.buttons)) {
115
- // Not need to wait dismiss (no 'await')
116
- toast.onDidDismiss().then(updateCounters);
117
- return null; // no result
118
- }
119
- else {
120
- // Wait for button result
121
- const result = await toast.onDidDismiss();
122
- updateCounters();
123
- return result;
124
- }
125
- }
126
- static createEnterAnimation(animationCtrl, currentOffset, opts) {
127
- if (opts.position === 'middle') {
128
- return null;
129
- }
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;
133
- return (baseEl, opts) => {
134
- // FIXME: wrapper is always null
135
- const wrapper = baseEl.querySelector('.toast-wrapper');
136
- return createAnimation()
137
- .addElement(wrapper)
138
- .duration(250)
139
- .fromTo('transform', `translateY(${start}px)`, `translateY(${end}px)`)
140
- .fromTo('opacity', '0', '1');
141
- };
142
- }
143
- }
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvdG9hc3QvdG9hc3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsZUFBZSxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUd2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUd0RCxNQUFNLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztBQUMvQixNQUFNLG9CQUFvQixHQUFHLENBQUMsQ0FBQztBQVMvQixNQUFNLE9BQU8sTUFBTTtJQUNqQixNQUFNLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztJQUNuQixNQUFNLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztJQUVyQixNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBVSxRQUFrQixFQUFFLElBQXNCO1FBQ3pFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQVUsZUFBZ0MsRUFBRSxTQUEyQixFQUFFLElBQXNCO1FBQzlHLFFBQVE7UUFDUix1Q0FBdUM7UUFFdkMsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25DLE9BQU8sQ0FBQyxLQUFLLENBQUMsNERBQTRELENBQUMsQ0FBQztZQUM1RSxJQUFJLElBQUksQ0FBQyxPQUFPLFlBQVksZUFBZTtnQkFDekMsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxDQUFDLENBQUMsU0FBUyxJ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O2FBQU0sQ0FBQztZQUNOLHlCQUF5QjtZQUN6QixNQUFNLE1BQU0sR0FBRyxNQUFNLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUUxQyxjQUFjLEVBQUUsQ0FBQztZQUVqQixPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxhQUFrQyxFQUFFLGFBQXFCLEVBQUUsSUFBc0I7UUFDM0csSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQy9CLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25ELE1BQU0sS0FBSyxHQUFHLGFBQWEsR0FBRyxtQkFBbUIsR0FBRyxTQUFTLEdBQUcsbUJBQW1CLENBQUM7UUFDcEYsTUFBTSxHQUFHLEdBQUcsU0FBUyxHQUFHLGFBQWEsR0FBRyxtQkFBbUIsQ0FBQztRQUM1RCxPQUFPLENBQUMsTUFBbUIsRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUNuQyxnQ0FBZ0M7WUFDaEMsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3ZELE9BQU8sZUFBZSxFQUFFO2lCQUNyQixVQUFVLENBQUMsT0FBTyxDQUFDO2lCQUNuQixRQUFRLENBQUMsR0FBRyxDQUFDO2lCQUNiLE1BQU0sQ0FBQyxXQUFXLEVBQUUsY0FBYyxLQUFLLEtBQUssRUFBRSxjQUFjLEdBQUcsS0FBSyxDQUFDO2lCQUNyRSxNQUFNLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUM7SUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5pbWF0aW9uQ29udHJvbGxlciwgY3JlYXRlQW5pbWF0aW9uLCBJb25pY1NhZmVTdHJpbmcsIFRvYXN0Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEFuaW1hdGlvbkJ1aWxkZXIsIE92ZXJsYXlFdmVudERldGFpbCwgVG9hc3RPcHRpb25zIH0gZnJvbSAnQGlvbmljL2NvcmUnO1xuaW1wb3J0IHsgVG9hc3RCdXR0b24gfSBmcm9tICdAaW9uaWMvY29yZS9kaXN0L3R5cGVzL2NvbXBvbmVudHMvdG9hc3QvdG9hc3QtaW50ZXJmYWNlJztcbmltcG9ydCB7IGlzRW1wdHlBcnJheSwgaXNOb3ROaWwgfSBmcm9tICcuLi9mdW5jdGlvbnMnO1xuaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuY29uc3QgVE9BU1RfTUFYX0hFSUdIVF9QWCA9IDc1O1xuY29uc3QgVE9BU1RfTUFYX1NUQUNLX1NJWkUgPSA0O1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2hvd1RvYXN0T3B0aW9ucyBleHRlbmRzIFRvYXN0T3B0aW9ucyB7XG4gIHR5cGU/OiAnZXJyb3InIHwgJ3dhcm5pbmcnIHwgJ2luZm8nO1xuICBtZXNzYWdlUGFyYW1zPzogYW55O1xuICBzaG93Q2xvc2VCdXR0b24/OiBib29sZWFuO1xuICBvbldpbGxQcmVzZW50PzogKHRvYXN0OiBIVE1MSW9uVG9hc3RFbGVtZW50KSA9PiB2b2lkO1xufVxuXG5leHBvcnQgY2xhc3MgVG9hc3RzIHtcbiAgc3RhdGljIGNvdW50ZXIgPSAwO1xuICBzdGF0aWMgc3RhY2tTaXplID0gMDtcblxuICBzdGF0aWMgYXN5bmMgc2hvd1NpbXBsZTxUID0gYW55PihpbmplY3RvcjogSW5qZWN0b3IsIG9wdHM6IFNob3dUb2FzdE9wdGlvbnMpOiBQcm9taXNlPE92ZXJsYXlFdmVudERldGFpbDxUPj4ge1xuICAgIHJldHVybiB0aGlzLnNob3coaW5qZWN0b3IuZ2V0KFRvYXN0Q29udHJvbGxlciksIGluamVjdG9yLmdldChUcmFuc2xhdGVTZXJ2aWNlKSwgb3B0cyk7XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgc2hvdzxUID0gYW55Pih0b2FzdENvbnRyb2xsZXI6IFRvYXN0Q29udHJvbGxlciwgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCBvcHRzOiBTaG93VG9hc3RPcHRpb25zKTogUHJvbWlzZTxPdmVybGF5RXZlbnREZXRhaWw8VD4+IHtcbiAgICAvLyBERUJVR1xuICAgIC8vY29uc29sZS5kZWJ1ZygnW1RvYXN0cy5zaG93XScsIG9wdHMpO1xuXG4gICAgaWYgKCF0b2FzdENvbnRyb2xsZXIgfHwgIXRyYW5zbGF0ZSkge1xuICAgICAgY29uc29sZS5lcnJvcihcIk1pc3NpbmcgcmVxdWlyZWQgYXJndW1lbnQgJ3RvYXN0Q29udHJvbGxlcicgb3IgJ3RyYW5zbGF0ZSdcIik7XG4gICAgICBpZiAob3B0cy5tZXNzYWdlIGluc3RhbmNlb2YgSW9uaWNTYWZlU3RyaW5nKVxuICAgICAgICBjb25zb2xlLmluZm8oJ1t0b2FzdHNdIG1lc3NhZ2U6ICcgKyAoKHRyYW5zbGF0ZSAmJiB0cmFuc2xhdGUuaW5zdGFudChvcHRzLm1lc3NhZ2UudmFsdWUpKSB8fCBvcHRzLm1lc3NhZ2UudmFsdWUpKTtcbiAgICAgIGVsc2UgaWYgKHR5cGVvZiBvcHRzLm1lc3NhZ2UgPT09ICdzdHJpbmcnKVxuICAgICAgICBjb25zb2xlLmluZm8oJ1t0b2FzdHNdIG1lc3NhZ2U6ICcgKyAoKHRyYW5zbGF0ZSAmJiB0cmFuc2xhdGUuaW5zdGFudChvcHRzLm1lc3NhZ2UsIG9wdHMubWVzc2FnZVBhcmFtcykpIHx8IG9wdHMubWVzc2FnZSkpO1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSk7XG4gICAgfVxuXG4gICAgdGhpcy5jb3VudGVyKys7IC8vIEluY3JlbWVudCB0b2FzdCBjb3VudGVyXG4gICAgbGV0IGN1cnJlbnRPZmZzZXQgPSB0aGlzLnN0YWNrU2l6ZTtcbiAgICBpZiAodGhpcy5zdGFja1NpemUgPCBUT0FTVF9NQVhfU1RBQ0tfU0laRSkge1xuICAgICAgdGhpcy5zdGFja1NpemUrKzsgLy8gSW5jcmVtZW50IHN0YWNrIG9mZnNldFxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN0YWNrU2l6ZSA9IDE7IC8vIFJlc2V0IHRoZSBzdGFja1xuICAgICAgY3VycmVudE9mZnNldCA9IDA7XG4gICAgfVxuICAgIGNvbnN0IHVwZGF0ZUNvdW50ZXJzID0gKCkgPT4ge1xuICAgICAgLy8gRGVjcmVhc2UgY291bnRlclxuICAgICAgdGhpcy5jb3VudGVyLS07XG4gICAgICAvLyBJZiBhbGwgdG9hc3QgY2xvc2VkOiByZXNldCB0aGUgc3RhY2sgb2Zmc2V0XG4gICAgICBpZiAodGhpcy5jb3VudGVyID09PSAwKSB7XG4gICAgICAgIHRoaXMuc3RhY2tTaXplID0gMDtcbiAgICAgIH1cbiAgICAgIC8vIElmIGN1cnJlbnQgdG9hc3QgaXMgdGhlIGxhc3Qgb25lLCBkZWNyZWFzZSB0aGUgb2Zmc2V0XG4gICAgICBlbHNlIGlmICh0aGlzLnN0YWNrU2l6ZSA9PT0gY3VycmVudE9mZnNldCArIDEpIHtcbiAgICAgICAgdGhpcy5zdGFja1NpemUtLTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgbWVzc2FnZSA9IG9wdHMubWVzc2FnZSAmJiBvcHRzLm1lc3NhZ2UgaW5zdGFuY2VvZiBJb25pY1NhZmVTdHJpbmcgPyBvcHRzLm1lc3NhZ2UudmFsdWUgOiAob3B0cy5tZXNzYWdlIGFzIHN0cmluZyk7XG4gICAgY29uc3QgaTE4bktleXMgPSBbbWVzc2FnZV07XG4gICAgaWYgKG9wdHMuaGVhZGVyKSBpMThuS2V5cy5wdXNoKG9wdHMuaGVhZGVyKTtcblxuICAgIGxldCBjbG9zZUJ1dHRvbjogVG9hc3RCdXR0b247XG4gICAgaWYgKG9wdHMuc2hvd0Nsb3NlQnV0dG9uKSB7XG4gICAgICBvcHRzLmJ1dHRvbnMgPSBvcHRzLmJ1dHRvbnMgfHwgW107XG4gICAgICBjb25zdCBidXR0b25JbmRleCA9IG9wdHMuYnV0dG9uc1xuICAgICAgICAubWFwKChiKSA9PiAodHlwZW9mIGIgPT09ICdvYmplY3QnICYmIChiIGFzIFRvYXN0QnV0dG9uKSkgfHwgdW5kZWZpbmVkKVxuICAgICAgICAuZmlsdGVyKGlzTm90TmlsKVxuICAgICAgICAuZmluZEluZGV4KChiKSA9PiBiLnJvbGUgPT09ICdjbG9zZScpO1xuICAgICAgaWYgKGJ1dHRvbkluZGV4ICE9PSAtMSkge1xuICAgICAgICBjbG9zZUJ1dHRvbiA9IG9wdHMuYnV0dG9uc1tidXR0b25JbmRleF0gYXMgVG9hc3RCdXR0b247XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjbG9zZUJ1dHRvbiA9IHsgcm9sZTogJ2Nsb3NlJyB9O1xuICAgICAgICBvcHRzLmJ1dHRvbnMucHVzaChjbG9zZUJ1dHRvbik7XG4gICAgICB9XG4gICAgICBjbG9zZUJ1dHRvbi50ZXh0ID0gY2xvc2VCdXR0b24udGV4dCB8fCAnQ09NTU9OLkJUTl9PSyc7XG4gICAgICBpMThuS2V5cy5wdXNoKGNsb3NlQnV0dG9uLnRleHQpO1xuICAgIH1cblxuICAgIC8vIFJlYWQgQ1NTXG4gICAgY29uc3QgY3NzQXJyYXkgPSAob3B0cy5jc3NDbGFzcyAmJiB0eXBlb2Ygb3B0cy5jc3NDbGFzcyA9PT0gJ3N0cmluZycgJiYgb3B0cy5jc3NDbGFzcy5zcGxpdCgnLCcpKSB8fCAob3B0cy5jc3NDbGFzcyBhcyBBcnJheTxzdHJpbmc+KSB8fCBbXTtcblxuICAgIC8vIEFkZCAnZXJyb3InIGNsYXNzLCBpZiBuZWVkXG4gICAgaWYgKG9wdHMudHlwZSkge1xuICAgICAgc3dpdGNoIChvcHRzLnR5cGUpIHtcbiAgICAgICAgY2FzZSAnZXJyb3InOlxuICAgICAgICAgIGNzc0FycmF5LnB1c2goJ2RhbmdlcicpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICd3YXJuaW5nJzpcbiAgICAgICAgICBjc3NBcnJheS5wdXNoKCdhY2NlbnQnKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnaW5mbyc6XG4gICAgICAgICAgY3NzQXJyYXkucHVzaCgnc2Vjb25kYXJ5Jyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgdHJhbnNsYXRpb25zID0gdHJhbnNsYXRlLmluc3RhbnQoaTE4bktleXMpO1xuICAgIGlmIChvcHRzLm1lc3NhZ2VQYXJhbXMpIHtcbiAgICAgIHRyYW5zbGF0aW9uc1ttZXNzYWdlXSA9IHRyYW5zbGF0ZS5pbnN0YW50KG1lc3NhZ2UsIG9wdHMubWVzc2FnZVBhcmFtcyk7XG4gICAgfVxuXG4gICAgaWYgKGNsb3NlQnV0dG9uKSB7XG4gICAgICBjbG9zZUJ1dHRvbi50ZXh0ID0gdHJhbnNsYXRpb25zW2Nsb3NlQnV0dG9uLnRleHRdO1xuICAgIH1cblxuICAgIC8vIFJldHJpZXZlIHRoZSB0b2FzdCBwb3NpdGlvblxuICAgIGNvbnN0IHBvc2l0aW9uID0gb3B0cy5wb3NpdGlvbiB8fCAob3B0cy5tb2RlID09PSAnaW9zJyA/ICdib3R0b20nIDogJ3RvcCcpO1xuXG4gICAgaWYgKCFvcHRzLmVudGVyQW5pbWF0aW9uICYmIHBvc2l0aW9uICE9PSAnbWlkZGxlJykge1xuICAgICAgLy8gRklYTUU6IGFuaW1hdGlvbiBmYWlsZWQsIHNpbmNlIG1pZ3JhdGlvbiB0byBJb25pYyA2XG4gICAgICAvLyBXaGVuIGNvbXB1dGluZywgdGhlIGJhc2VFbGUgaGFzIG5vIHdyYXBwZXIgeWV0XG4gICAgICAvL29wdHMuZW50ZXJBbmltYXRpb24gPSB0aGlzLmNyZWF0ZUVudGVyQW5pbWF0aW9uKGFuaW1hdGlvbkN0cmwsIGN1cnJlbnRPZmZzZXQsIG9wdHMpO1xuICAgICAgLy8gb3B0cy5lbnRlckFuaW1hdGlvbiA9IChiYXNlRWw6IEhUTUxFbGVtZW50LCBvcHRzKSA9PiBjcmVhdGVBbmltYXRpb24oKVxuICAgICAgLy8gICAgIC5hZGRFbGVtZW50KGJhc2VFbClcbiAgICAgIC8vICAgICAuZGVsYXkoNDAwKVxuICAgICAgLy8gICAgIC5hZnRlckFkZENsYXNzKCdzdGFja2VkJyk7XG4gICAgICAvLyBBcyB3b3JrYXJvdW5kLCB3ZSBhZGQgYW4gb2Zmc2V0IHVzaW5nIGEgQ1NTIGNsYXNzXG4gICAgICBjc3NBcnJheS5wdXNoKCd0b2FzdC1zdGFja2VkLScgKyBwb3NpdGlvbik7XG4gICAgICBjc3NBcnJheS5wdXNoKCd0b2FzdC1zdGFjay1vZmZzZXQtJyArIGN1cnJlbnRPZmZzZXQpO1xuICAgIH1cblxuICAgIG9wdHMuY3NzQ2xhc3MgPSBjc3NBcnJheTtcblxuICAgIGNvbnN0IHRvYXN0ID0gYXdhaXQgdG9hc3RDb250cm9sbGVyLmNyZWF0ZSh7XG4gICAgICAvLyBEZWZhdWx0IHZhbHVlc1xuICAgICAgcG9zaXRpb24sXG4gICAgICBkdXJhdGlvbjogb3B0cy5zaG93Q2xvc2VCdXR0b24gPyAxMDAwMCA6IDQwMDAsXG4gICAgICAuLi5vcHRzLFxuICAgICAgbWVzc2FnZTogdHJhbnNsYXRpb25zW21lc3NhZ2VdLFxuICAgICAgLy9oZWFkZXI6IG9wdHMuaGVhZGVyICYmIHRyYW5zbGF0aW9uc1tvcHRzLmhlYWRlcl0gfHwgdW5kZWZpbmVkXG4gICAgfSk7XG5cbiAgICBpZiAob3B0cy5vbldpbGxQcmVzZW50KSBvcHRzLm9uV2lsbFByZXNlbnQodG9hc3QpO1xuXG4gICAgYXdhaXQgdG9hc3QucHJlc2VudCgpO1xuXG4gICAgaWYgKGlzRW1wdHlBcnJheShvcHRzLmJ1dHRvbnMpKSB7XG4gICAgICAvLyBOb3QgbmVlZCB0byB3YWl0IGRpc21pc3MgKG5vICdhd2FpdCcpXG4gICAgICB0b2FzdC5vbkRpZERpc21pc3MoKS50aGVuKHVwZGF0ZUNvdW50ZXJzKTtcbiAgICAgIHJldHVybiBudWxsOyAvLyBubyByZXN1bHRcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gV2FpdCBmb3IgYnV0dG9uIHJlc3VsdFxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdG9hc3Qub25EaWREaXNtaXNzKCk7XG5cbiAgICAgIHVwZGF0ZUNvdW50ZXJzKCk7XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGNyZWF0ZUVudGVyQW5pbWF0aW9uKGFuaW1hdGlvbkN0cmw6IEFuaW1hdGlvbkNvbnRyb2xsZXIsIGN1cnJlbnRPZmZzZXQ6IG51bWJlciwgb3B0czogU2hvd1RvYXN0T3B0aW9ucyk6IEFuaW1hdGlvbkJ1aWxkZXIge1xuICAgIGlmIChvcHRzLnBvc2l0aW9uID09PSAnbWlkZGxlJykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgZGlyZWN0aW9uID0gb3B0cy5wb3NpdGlvbiA9PT0gJ3RvcCcgPyAxIDogLTE7XG4gICAgY29uc3Qgc3RhcnQgPSBjdXJyZW50T2Zmc2V0ICogVE9BU1RfTUFYX0hFSUdIVF9QWCAtIGRpcmVjdGlvbiAqIFRPQVNUX01BWF9IRUlHSFRfUFg7XG4gICAgY29uc3QgZW5kID0gZGlyZWN0aW9uICogY3VycmVudE9mZnNldCAqIFRPQVNUX01BWF9IRUlHSFRfUFg7XG4gICAgcmV0dXJuIChiYXNlRWw6IEhUTUxFbGVtZW50LCBvcHRzKSA9PiB7XG4gICAgICAvLyBGSVhNRTogd3JhcHBlciBpcyBhbHdheXMgbnVsbFxuICAgICAgY29uc3Qgd3JhcHBlciA9IGJhc2VFbC5xdWVyeVNlbGVjdG9yKCcudG9hc3Qtd3JhcHBlcicpO1xuICAgICAgcmV0dXJuIGNyZWF0ZUFuaW1hdGlvbigpXG4gICAgICAgIC5hZGRFbGVtZW50KHdyYXBwZXIpXG4gICAgICAgIC5kdXJhdGlvbigyNTApXG4gICAgICAgIC5mcm9tVG8oJ3RyYW5zZm9ybScsIGB0cmFuc2xhdGVZKCR7c3RhcnR9cHgpYCwgYHRyYW5zbGF0ZVkoJHtlbmR9cHgpYClcbiAgICAgICAgLmZyb21Ubygnb3BhY2l0eScsICcwJywgJzEnKTtcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -1,62 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { toBoolean } from '../functions';
3
- import { Subscription } from 'rxjs';
4
- import { filter } from 'rxjs/operators';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "../hotkeys/hotkeys.service";
7
- import * as i2 from "@angular/common";
8
- import * as i3 from "@ionic/angular";
9
- import * as i4 from "@angular/material/icon";
10
- export class ModalToolbarComponent {
11
- hotkeys;
12
- _subscription = new Subscription();
13
- modalName = 'modal-toolbar';
14
- title = '';
15
- color = 'primary';
16
- showSpinner = false;
17
- canValidate;
18
- validateIcon = { icon: 'checkmark' };
19
- cancel = new EventEmitter();
20
- validate = new EventEmitter();
21
- constructor(hotkeys) {
22
- this.hotkeys = hotkeys;
23
- }
24
- ngOnInit() {
25
- this.canValidate = toBoolean(this.canValidate, this.validate.observed);
26
- // Ctrl+S
27
- this._subscription.add(this.hotkeys
28
- .addShortcut({ keys: 'control.s', description: 'COMMON.BTN_VALIDATE', elementName: this.modalName })
29
- .pipe(filter(() => this.canValidate))
30
- .subscribe((event) => this.validate.emit(event)));
31
- // Escape
32
- this._subscription.add(this.hotkeys
33
- .addShortcut({ keys: 'escape', description: 'COMMON.BTN_CLOSE', elementName: this.modalName })
34
- .subscribe((event) => this.cancel.emit(event)));
35
- }
36
- ngOnDestroy() {
37
- this._subscription.unsubscribe();
38
- }
39
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ModalToolbarComponent, deps: [{ token: i1.Hotkeys }], target: i0.ɵɵFactoryTarget.Component });
40
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: ModalToolbarComponent, selector: "app-modal-toolbar", inputs: { modalName: "modalName", title: "title", color: "color", showSpinner: "showSpinner", canValidate: "canValidate", validateIcon: "validateIcon" }, outputs: { cancel: "cancel", validate: "validate" }, ngImport: i0, template: "<ion-header>\n <ion-toolbar [color]=\"color\">\n <ion-buttons slot=\"start\">\n <ion-button visible-xs visible-sm visible-mobile (click)=\"cancel.emit()\">\n <ion-icon slot=\"icon-only\" name=\"arrow-back\"></ion-icon>\n </ion-button>\n\n <ng-content select=\"[slot=start]\"></ng-content>\n </ion-buttons>\n\n <ion-title [innerHTML]=\"title\"></ion-title>\n\n <ng-content select=\"ion-title\"></ng-content>\n\n <ng-content select=\"ion-buttons[slot=end]\"></ng-content>\n\n <ion-buttons slot=\"end\">\n <ng-content select=\"ion-button[slot=end]\"></ng-content>\n\n <ion-spinner *ngIf=\"showSpinner\"></ion-spinner>\n\n <ion-button visible-xs visible-sm visible-mobile *ngIf=\"canValidate\" (click)=\"validate.emit($event)\">\n <ion-icon slot=\"icon-only\" *ngIf=\"validateIcon?.icon\" [name]=\"validateIcon.icon\"></ion-icon>\n <mat-icon slot=\"icon-only\" *ngIf=\"validateIcon?.matIcon\">{{ validateIcon.matIcon }}</mat-icon>\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.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: i3.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i3.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i3.IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: i3.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i3.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
41
- }
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ModalToolbarComponent, decorators: [{
43
- type: Component,
44
- args: [{ selector: 'app-modal-toolbar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ion-header>\n <ion-toolbar [color]=\"color\">\n <ion-buttons slot=\"start\">\n <ion-button visible-xs visible-sm visible-mobile (click)=\"cancel.emit()\">\n <ion-icon slot=\"icon-only\" name=\"arrow-back\"></ion-icon>\n </ion-button>\n\n <ng-content select=\"[slot=start]\"></ng-content>\n </ion-buttons>\n\n <ion-title [innerHTML]=\"title\"></ion-title>\n\n <ng-content select=\"ion-title\"></ng-content>\n\n <ng-content select=\"ion-buttons[slot=end]\"></ng-content>\n\n <ion-buttons slot=\"end\">\n <ng-content select=\"ion-button[slot=end]\"></ng-content>\n\n <ion-spinner *ngIf=\"showSpinner\"></ion-spinner>\n\n <ion-button visible-xs visible-sm visible-mobile *ngIf=\"canValidate\" (click)=\"validate.emit($event)\">\n <ion-icon slot=\"icon-only\" *ngIf=\"validateIcon?.icon\" [name]=\"validateIcon.icon\"></ion-icon>\n <mat-icon slot=\"icon-only\" *ngIf=\"validateIcon?.matIcon\">{{ validateIcon.matIcon }}</mat-icon>\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n" }]
45
- }], ctorParameters: () => [{ type: i1.Hotkeys }], propDecorators: { modalName: [{
46
- type: Input
47
- }], title: [{
48
- type: Input
49
- }], color: [{
50
- type: Input
51
- }], showSpinner: [{
52
- type: Input
53
- }], canValidate: [{
54
- type: Input
55
- }], validateIcon: [{
56
- type: Input
57
- }], cancel: [{
58
- type: Output
59
- }], validate: [{
60
- type: Output
61
- }] } });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtdG9vbGJhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3Rvb2xiYXIvbW9kYWwtdG9vbGJhci50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3Rvb2xiYXIvbW9kYWwtdG9vbGJhci5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUdwQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQVF4QyxNQUFNLE9BQU8scUJBQXFCO0lBMEJaO0lBekJaLGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBRzNDLFNBQVMsR0FBRyxlQUFlLENBQUM7SUFHNUIsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUdYLEtBQUssR0FBRyxTQUFTLENBQUM7SUFHbEIsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUdwQixXQUFXLENBQVU7SUFFWixZQUFZLEdBQVksRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFHdkQsTUFBTSxHQUFHLElBQUksWUFBWSxFQUFTLENBQUM7SUFHbkMsUUFBUSxHQUFHLElBQUksWUFBWSxFQUFTLENBQUM7SUFFckMsWUFBb0IsT0FBZ0I7UUFBaEIsWUFBTyxHQUFQLE9BQU8sQ0FBUztJQUFHLENBQUM7SUFFeEMsUUFBUTtRQUNOLElBQUksQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV2RSxTQUFTO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQ3BCLElBQUksQ0FBQyxPQUFPO2FBQ1QsV0FBVyxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUscUJBQXFCLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQzthQUNuRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUNwQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQ25ELENBQUM7UUFFRixTQUFTO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQ3BCLElBQUksQ0FBQyxPQUFPO2FBQ1QsV0FBVyxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQzthQUM3RixTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQ2pELENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbkMsQ0FBQzt1R0FqRFUscUJBQXFCOzJGQUFyQixxQkFBcUIsd1FDYmxDLGtqQ0E0QkE7OzJGRGZhLHFCQUFxQjtrQkFOakMsU0FBUzsrQkFDRSxtQkFBbUIsbUJBR1osdUJBQXVCLENBQUMsTUFBTTs0RUFNL0MsU0FBUztzQkFEUixLQUFLO2dCQUlOLEtBQUs7c0JBREosS0FBSztnQkFJTixLQUFLO3NCQURKLEtBQUs7Z0JBSU4sV0FBVztzQkFEVixLQUFLO2dCQUlOLFdBQVc7c0JBRFYsS0FBSztnQkFHRyxZQUFZO3NCQUFwQixLQUFLO2dCQUdOLE1BQU07c0JBREwsTUFBTTtnQkFJUCxRQUFRO3NCQURQLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0b0Jvb2xlYW4gfSBmcm9tICcuLi9mdW5jdGlvbnMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBIb3RrZXlzIH0gZnJvbSAnLi4vaG90a2V5cy9ob3RrZXlzLnNlcnZpY2UnO1xuaW1wb3J0IHsgSWNvblJlZiB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLW1vZGFsLXRvb2xiYXInLFxuICB0ZW1wbGF0ZVVybDogJ21vZGFsLXRvb2xiYXIuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21vZGFsLXRvb2xiYXIuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTW9kYWxUb29sYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF9zdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgQElucHV0KClcbiAgbW9kYWxOYW1lID0gJ21vZGFsLXRvb2xiYXInO1xuXG4gIEBJbnB1dCgpXG4gIHRpdGxlID0gJyc7XG5cbiAgQElucHV0KClcbiAgY29sb3IgPSAncHJpbWFyeSc7XG5cbiAgQElucHV0KClcbiAgc2hvd1NwaW5uZXIgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBjYW5WYWxpZGF0ZTogYm9vbGVhbjtcblxuICBASW5wdXQoKSB2YWxpZGF0ZUljb246IEljb25SZWYgPSB7IGljb246ICdjaGVja21hcmsnIH07XG5cbiAgQE91dHB1dCgpXG4gIGNhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHZhbGlkYXRlID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGhvdGtleXM6IEhvdGtleXMpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jYW5WYWxpZGF0ZSA9IHRvQm9vbGVhbih0aGlzLmNhblZhbGlkYXRlLCB0aGlzLnZhbGlkYXRlLm9ic2VydmVkKTtcblxuICAgIC8vIEN0cmwrU1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoXG4gICAgICB0aGlzLmhvdGtleXNcbiAgICAgICAgLmFkZFNob3J0Y3V0KHsga2V5czogJ2NvbnRyb2wucycsIGRlc2NyaXB0aW9uOiAnQ09NTU9OLkJUTl9WQUxJREFURScsIGVsZW1lbnROYW1lOiB0aGlzLm1vZGFsTmFtZSB9KVxuICAgICAgICAucGlwZShmaWx0ZXIoKCkgPT4gdGhpcy5jYW5WYWxpZGF0ZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB0aGlzLnZhbGlkYXRlLmVtaXQoZXZlbnQpKVxuICAgICk7XG5cbiAgICAvLyBFc2NhcGVcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgdGhpcy5ob3RrZXlzXG4gICAgICAgIC5hZGRTaG9ydGN1dCh7IGtleXM6ICdlc2NhcGUnLCBkZXNjcmlwdGlvbjogJ0NPTU1PTi5CVE5fQ0xPU0UnLCBlbGVtZW50TmFtZTogdGhpcy5tb2RhbE5hbWUgfSlcbiAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHRoaXMuY2FuY2VsLmVtaXQoZXZlbnQpKVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIiwiPGlvbi1oZWFkZXI+XG4gIDxpb24tdG9vbGJhciBbY29sb3JdPVwiY29sb3JcIj5cbiAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cInN0YXJ0XCI+XG4gICAgICA8aW9uLWJ1dHRvbiB2aXNpYmxlLXhzIHZpc2libGUtc20gdmlzaWJsZS1tb2JpbGUgKGNsaWNrKT1cImNhbmNlbC5lbWl0KClcIj5cbiAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJpY29uLW9ubHlcIiBuYW1lPVwiYXJyb3ctYmFja1wiPjwvaW9uLWljb24+XG4gICAgICA8L2lvbi1idXR0b24+XG5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzbG90PXN0YXJ0XVwiPjwvbmctY29udGVudD5cbiAgICA8L2lvbi1idXR0b25zPlxuXG4gICAgPGlvbi10aXRsZSBbaW5uZXJIVE1MXT1cInRpdGxlXCI+PC9pb24tdGl0bGU+XG5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJpb24tdGl0bGVcIj48L25nLWNvbnRlbnQ+XG5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJpb24tYnV0dG9uc1tzbG90PWVuZF1cIj48L25nLWNvbnRlbnQ+XG5cbiAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cImVuZFwiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiaW9uLWJ1dHRvbltzbG90PWVuZF1cIj48L25nLWNvbnRlbnQ+XG5cbiAgICAgIDxpb24tc3Bpbm5lciAqbmdJZj1cInNob3dTcGlubmVyXCI+PC9pb24tc3Bpbm5lcj5cblxuICAgICAgPGlvbi1idXR0b24gdmlzaWJsZS14cyB2aXNpYmxlLXNtIHZpc2libGUtbW9iaWxlICpuZ0lmPVwiY2FuVmFsaWRhdGVcIiAoY2xpY2spPVwidmFsaWRhdGUuZW1pdCgkZXZlbnQpXCI+XG4gICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgKm5nSWY9XCJ2YWxpZGF0ZUljb24/Lmljb25cIiBbbmFtZV09XCJ2YWxpZGF0ZUljb24uaWNvblwiPjwvaW9uLWljb24+XG4gICAgICAgIDxtYXQtaWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgKm5nSWY9XCJ2YWxpZGF0ZUljb24/Lm1hdEljb25cIj57eyB2YWxpZGF0ZUljb24ubWF0SWNvbiB9fTwvbWF0LWljb24+XG4gICAgICA8L2lvbi1idXR0b24+XG4gICAgPC9pb24tYnV0dG9ucz5cbiAgPC9pb24tdG9vbGJhcj5cbjwvaW9uLWhlYWRlcj5cbiJdfQ==
@@ -1,263 +0,0 @@
1
- import { booleanAttribute, ChangeDetectionStrategy, Component, EventEmitter, Inject, Input, Optional, Output, ViewChild, } from '@angular/core';
2
- import { APP_PROGRESS_BAR_SERVICE } from '../services/progress-bar.service';
3
- import { isNotNil, isNotNilOrBlank, toBoolean } from '../functions';
4
- import { debounceTime, distinctUntilChanged, startWith } from 'rxjs/operators';
5
- import { BehaviorSubject } from 'rxjs';
6
- import { HAMMER_PRESS_TIME } from '../gesture/gesture-config';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/router";
9
- import * as i2 from "@ionic/angular";
10
- import * as i3 from "@angular/material/progress-bar";
11
- import * as i4 from "../pipes/colors.pipe";
12
- import * as i5 from "@rx-angular/template/push";
13
- export class ToolbarToken {
14
- }
15
- export class ToolbarComponent {
16
- route;
17
- router;
18
- navController;
19
- routerOutlet;
20
- cd;
21
- progressBarService;
22
- _closeTapCount = 0;
23
- _validateTapCount = 0;
24
- _defaultBackHref;
25
- _backHref;
26
- progressBarMode$ = new BehaviorSubject(null);
27
- showSearchBar = false;
28
- set progressBarMode(value) {
29
- if (this.progressBarService)
30
- return; // Skip if managed by the progress service
31
- this.progressBarMode$.next(value);
32
- }
33
- get progressBarMode() {
34
- return this.progressBarMode$.value;
35
- }
36
- title = '';
37
- color = 'primary';
38
- class = '';
39
- set backHref(value) {
40
- if (value !== this._backHref) {
41
- this._backHref = value;
42
- this.canGoBack = this.canGoBack || isNotNil(value);
43
- this.markForCheck();
44
- }
45
- }
46
- get backHref() {
47
- return this._backHref;
48
- }
49
- set defaultBackHref(value) {
50
- if (value !== this._defaultBackHref) {
51
- this._defaultBackHref = value;
52
- this.canGoBack = this.canGoBack || isNotNil(value);
53
- this.markForCheck();
54
- }
55
- }
56
- get defaultBackHref() {
57
- return this._defaultBackHref;
58
- }
59
- hasValidate = false;
60
- hasClose = false;
61
- hasSearch;
62
- canGoBack;
63
- canShowMenu = true;
64
- onValidate = new EventEmitter();
65
- onClose = new EventEmitter();
66
- onValidateAndClose = new EventEmitter();
67
- onBackClick = new EventEmitter();
68
- onSearch = new EventEmitter();
69
- searchbar;
70
- menuToggle;
71
- constructor(route, router, navController, routerOutlet, cd, progressBarService) {
72
- this.route = route;
73
- this.router = router;
74
- this.navController = navController;
75
- this.routerOutlet = routerOutlet;
76
- this.cd = cd;
77
- this.progressBarService = progressBarService;
78
- // Listen progress bar service mode
79
- if (progressBarService) {
80
- progressBarService.onProgressChanged
81
- .pipe(startWith(null), // none, by default
82
- debounceTime(100), // wait 100ms, to group changes
83
- // DEBUG
84
- //tap((mode) => console.debug('[toolbar] Updating progressBarMode: ' + mode))
85
- distinctUntilChanged())
86
- .subscribe((value) => this.progressBarMode$.next(value));
87
- }
88
- }
89
- ngOnInit() {
90
- this.hasValidate = toBoolean(this.hasValidate, this.onValidate.observed);
91
- this.canGoBack = toBoolean(this.canGoBack, this.routerOutlet.canGoBack() || isNotNilOrBlank(this._backHref) || isNotNilOrBlank(this._defaultBackHref));
92
- this.hasSearch = toBoolean(this.hasSearch, this.onSearch.observed);
93
- }
94
- ngOnDestroy() {
95
- this.onBackClick.complete();
96
- this.onBackClick.unsubscribe();
97
- this.onValidate.complete();
98
- this.onValidate.unsubscribe();
99
- this.onClose.complete();
100
- this.onClose.unsubscribe();
101
- this.onValidateAndClose.complete();
102
- this.onValidateAndClose.unsubscribe();
103
- this.onSearch.complete();
104
- this.onSearch.unsubscribe();
105
- }
106
- async toggleSearchBar() {
107
- this.showSearchBar = !this.showSearchBar;
108
- if (this.showSearchBar && this.searchbar) {
109
- setTimeout(() => {
110
- this.searchbar.setFocus();
111
- this.markForCheck();
112
- }, 300);
113
- }
114
- }
115
- doBackClick(event) {
116
- this.onBackClick.emit(event);
117
- // Stop propagation, if need (can be cancelled by onBackClick observers)
118
- if (event.defaultPrevented)
119
- return;
120
- // Execute the back action
121
- this.goBack();
122
- }
123
- async goBack() {
124
- console.debug('[toolbar] calling goBack()');
125
- if (this._backHref) {
126
- const replaceUrl = !this.routerOutlet.canGoBack();
127
- // Relative href
128
- if (this._backHref.startsWith('.')) {
129
- this.navController.setDirection('back');
130
- return this.router.navigate([this._backHref], { relativeTo: this.route, replaceUrl });
131
- }
132
- else {
133
- return this.navController.navigateBack(this._backHref);
134
- }
135
- }
136
- else if (this.routerOutlet.canGoBack()) {
137
- return this.navController.pop();
138
- }
139
- else if (this._defaultBackHref) {
140
- // Relative href
141
- if (this._defaultBackHref.startsWith('.')) {
142
- this.navController.setDirection('back');
143
- return this.router.navigate([this._defaultBackHref], { relativeTo: this.route, replaceUrl: true });
144
- }
145
- else {
146
- return this.navController.navigateBack(this._defaultBackHref);
147
- }
148
- }
149
- else {
150
- console.error("[toolbar] Cannot go back. Missing attribute 'defaultBackHref' or 'backHref'");
151
- return false;
152
- }
153
- }
154
- tapClose(event) {
155
- // DEV only
156
- // console.debug("[toolbar] tapClose", event.tapCount);
157
- if (this._validateTapCount > 0)
158
- return;
159
- // Distinguish simple and double tap
160
- this._closeTapCount = event.tapCount;
161
- setTimeout(() => {
162
- // Event is obsolete (a new tap event occur)
163
- if (event.tapCount < this._closeTapCount) {
164
- // Ignore event
165
- }
166
- // If event still the last tap event: process it
167
- else {
168
- this.onClose.emit(event.srcEvent || event);
169
- // Reset tab count
170
- this._closeTapCount = 0;
171
- }
172
- }, 500);
173
- }
174
- tapValidate(event) {
175
- // DEV only
176
- //console.debug("[toolbar] tapValidate", event.tapCount);
177
- if (this.onValidateAndClose.observed) {
178
- this.onValidate.emit(event.srcEvent || event);
179
- }
180
- // Distinguish simple and double tap
181
- else {
182
- this._validateTapCount = event.tapCount;
183
- setTimeout(() => {
184
- // Event is obsolete (a new tap event occur)
185
- if (event.tapCount < this._validateTapCount) {
186
- // Ignore event
187
- }
188
- // If event still the last tap event: process it
189
- else {
190
- if (this._validateTapCount === 1) {
191
- this.onValidate.emit(event.srcEvent || event);
192
- }
193
- else if (this._validateTapCount >= 2) {
194
- this.onValidateAndClose.emit(event.srcEvent || event);
195
- }
196
- // Reset tab count
197
- this._validateTapCount = 0;
198
- }
199
- }, HAMMER_PRESS_TIME + 10);
200
- }
201
- }
202
- ionSearchBarChanged(event) {
203
- this.onSearch.emit(event);
204
- }
205
- markForCheck() {
206
- this.cd.markForCheck();
207
- }
208
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ToolbarComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }, { token: i2.NavController }, { token: i2.IonRouterOutlet }, { token: i0.ChangeDetectorRef }, { token: APP_PROGRESS_BAR_SERVICE, optional: true }], target: i0.ɵɵFactoryTarget.Component });
209
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: ToolbarComponent, selector: "app-toolbar", inputs: { progressBarMode: "progressBarMode", title: "title", color: "color", class: "class", backHref: "backHref", defaultBackHref: "defaultBackHref", hasValidate: ["hasValidate", "hasValidate", booleanAttribute], hasClose: ["hasClose", "hasClose", booleanAttribute], hasSearch: ["hasSearch", "hasSearch", booleanAttribute], canGoBack: ["canGoBack", "canGoBack", booleanAttribute], canShowMenu: ["canShowMenu", "canShowMenu", booleanAttribute] }, outputs: { onValidate: "onValidate", onClose: "onClose", onValidateAndClose: "onValidateAndClose", onBackClick: "onBackClick", onSearch: "onSearch" }, providers: [{ provide: ToolbarToken, useExisting: ToolbarComponent }], viewQueries: [{ propertyName: "searchbar", first: true, predicate: ["searchbar"], descendants: true, static: true }, { propertyName: "menuToggle", first: true, predicate: ["menuToggle"], descendants: true, static: true }], ngImport: i0, template: "<ion-header [class]=\"class\">\n <ion-toolbar [color]=\"color\">\n <ion-buttons slot=\"start\">\n <!-- back button -->\n @if (canGoBack) {\n <ion-button class=\"back-button\" (click)=\"doBackClick($event)\" routerDirection=\"back\">\n <ion-icon slot=\"icon-only\" name=\"arrow-back\"></ion-icon>\n </ion-button>\n }\n\n <!-- show menu button -->\n <ion-menu-toggle #menuToggle [menu]=\"'left'\" [class.cdk-visually-hidden]=\"canGoBack || !canShowMenu\">\n <ion-button>\n <ion-icon slot=\"icon-only\" name=\"menu\"></ion-icon>\n </ion-button>\n </ion-menu-toggle>\n\n <ng-content select=\"[slot=start]\"></ng-content>\n </ion-buttons>\n\n <ion-title [innerHTML]=\"title\"></ion-title>\n\n <ng-content select=\"ion-title, ion-segment\"></ng-content>\n\n <ng-content select=\"ion-buttons[slot=end]\"></ng-content>\n\n <ion-buttons slot=\"end\" collapse=\"true\">\n <ng-content select=\"[slot=end]\"></ng-content>\n\n <!-- search bar -->\n @if (hasSearch) {\n <ion-searchbar\n #searchbar\n animated\n type=\"search\"\n [class.cdk-visually-hidden]=\"!showSearchBar\"\n show-cancel-button=\"always\"\n (ionChange)=\"ionSearchBarChanged($event)\"\n (ionCancel)=\"toggleSearchBar()\"\n ></ion-searchbar>\n\n <!-- search button -->\n @if (!showSearchBar) {\n <ion-button (click)=\"toggleSearchBar()\">\n <ion-icon slot=\"icon-only\" name=\"search\"></ion-icon>\n </ion-button>\n }\n }\n\n <!-- close button -->\n @if (hasClose) {\n <ion-button (tap)=\"tapClose($event)\" class=\"visible-xs visible-sm visible-mobile\">\n <ion-icon slot=\"icon-only\" name=\"close\"></ion-icon>\n </ion-button>\n }\n\n <!-- validate button -->\n @if (hasValidate) {\n <ion-button (tap)=\"tapValidate($event)\" class=\"visible-xs visible-sm visible-mobile\">\n <ion-icon slot=\"icon-only\" name=\"save\"></ion-icon>\n </ion-button>\n }\n </ion-buttons>\n </ion-toolbar>\n\n <!-- progress bar -->\n <mat-progress-bar [color]=\"color | matColor\" [mode]=\"progressBarMode$ | push\"></mat-progress-bar>\n</ion-header>\n", styles: [""], dependencies: [{ kind: "component", type: i2.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: i2.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i2.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonMenuToggle, selector: "ion-menu-toggle", inputs: ["autoHide", "menu"] }, { kind: "component", type: i2.IonSearchbar, selector: "ion-searchbar", inputs: ["animated", "autocapitalize", "autocomplete", "autocorrect", "cancelButtonIcon", "cancelButtonText", "clearIcon", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "maxlength", "minlength", "mode", "name", "placeholder", "searchIcon", "showCancelButton", "showClearButton", "spellcheck", "type", "value"] }, { kind: "component", type: i2.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i2.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i2.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { kind: "component", type: i3.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "pipe", type: i4.MatColorPipe, name: "matColor" }, { kind: "pipe", type: i5.RxPush, name: "push" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
210
- }
211
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ToolbarComponent, decorators: [{
212
- type: Component,
213
- args: [{ selector: 'app-toolbar', providers: [{ provide: ToolbarToken, useExisting: ToolbarComponent }], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ion-header [class]=\"class\">\n <ion-toolbar [color]=\"color\">\n <ion-buttons slot=\"start\">\n <!-- back button -->\n @if (canGoBack) {\n <ion-button class=\"back-button\" (click)=\"doBackClick($event)\" routerDirection=\"back\">\n <ion-icon slot=\"icon-only\" name=\"arrow-back\"></ion-icon>\n </ion-button>\n }\n\n <!-- show menu button -->\n <ion-menu-toggle #menuToggle [menu]=\"'left'\" [class.cdk-visually-hidden]=\"canGoBack || !canShowMenu\">\n <ion-button>\n <ion-icon slot=\"icon-only\" name=\"menu\"></ion-icon>\n </ion-button>\n </ion-menu-toggle>\n\n <ng-content select=\"[slot=start]\"></ng-content>\n </ion-buttons>\n\n <ion-title [innerHTML]=\"title\"></ion-title>\n\n <ng-content select=\"ion-title, ion-segment\"></ng-content>\n\n <ng-content select=\"ion-buttons[slot=end]\"></ng-content>\n\n <ion-buttons slot=\"end\" collapse=\"true\">\n <ng-content select=\"[slot=end]\"></ng-content>\n\n <!-- search bar -->\n @if (hasSearch) {\n <ion-searchbar\n #searchbar\n animated\n type=\"search\"\n [class.cdk-visually-hidden]=\"!showSearchBar\"\n show-cancel-button=\"always\"\n (ionChange)=\"ionSearchBarChanged($event)\"\n (ionCancel)=\"toggleSearchBar()\"\n ></ion-searchbar>\n\n <!-- search button -->\n @if (!showSearchBar) {\n <ion-button (click)=\"toggleSearchBar()\">\n <ion-icon slot=\"icon-only\" name=\"search\"></ion-icon>\n </ion-button>\n }\n }\n\n <!-- close button -->\n @if (hasClose) {\n <ion-button (tap)=\"tapClose($event)\" class=\"visible-xs visible-sm visible-mobile\">\n <ion-icon slot=\"icon-only\" name=\"close\"></ion-icon>\n </ion-button>\n }\n\n <!-- validate button -->\n @if (hasValidate) {\n <ion-button (tap)=\"tapValidate($event)\" class=\"visible-xs visible-sm visible-mobile\">\n <ion-icon slot=\"icon-only\" name=\"save\"></ion-icon>\n </ion-button>\n }\n </ion-buttons>\n </ion-toolbar>\n\n <!-- progress bar -->\n <mat-progress-bar [color]=\"color | matColor\" [mode]=\"progressBarMode$ | push\"></mat-progress-bar>\n</ion-header>\n" }]
214
- }], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.NavController }, { type: i2.IonRouterOutlet }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
215
- type: Optional
216
- }, {
217
- type: Inject,
218
- args: [APP_PROGRESS_BAR_SERVICE]
219
- }] }], propDecorators: { progressBarMode: [{
220
- type: Input
221
- }], title: [{
222
- type: Input
223
- }], color: [{
224
- type: Input
225
- }], class: [{
226
- type: Input
227
- }], backHref: [{
228
- type: Input
229
- }], defaultBackHref: [{
230
- type: Input
231
- }], hasValidate: [{
232
- type: Input,
233
- args: [{ transform: booleanAttribute }]
234
- }], hasClose: [{
235
- type: Input,
236
- args: [{ transform: booleanAttribute }]
237
- }], hasSearch: [{
238
- type: Input,
239
- args: [{ transform: booleanAttribute }]
240
- }], canGoBack: [{
241
- type: Input,
242
- args: [{ transform: booleanAttribute }]
243
- }], canShowMenu: [{
244
- type: Input,
245
- args: [{ transform: booleanAttribute }]
246
- }], onValidate: [{
247
- type: Output
248
- }], onClose: [{
249
- type: Output
250
- }], onValidateAndClose: [{
251
- type: Output
252
- }], onBackClick: [{
253
- type: Output
254
- }], onSearch: [{
255
- type: Output
256
- }], searchbar: [{
257
- type: ViewChild,
258
- args: ['searchbar', { static: true }]
259
- }], menuToggle: [{
260
- type: ViewChild,
261
- args: ['menuToggle', { static: true }]
262
- }] } });
263
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3Rvb2xiYXIvdG9vbGJhci50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3Rvb2xiYXIvdG9vbGJhci5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsd0JBQXdCLEVBQXVCLE1BQU0sa0NBQWtDLENBQUM7QUFHakcsT0FBTyxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0UsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUVuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7OztBQUs5RCxNQUFNLE9BQWdCLFlBQVk7Q0FRakM7QUFTRCxNQUFNLE9BQU8sZ0JBQWdCO0lBOERqQjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ2dEO0lBbEVsRCxjQUFjLEdBQUcsQ0FBQyxDQUFDO0lBQ25CLGlCQUFpQixHQUFHLENBQUMsQ0FBQztJQUN0QixnQkFBZ0IsQ0FBUztJQUN6QixTQUFTLENBQVM7SUFFUCxnQkFBZ0IsR0FBRyxJQUFJLGVBQWUsQ0FBa0IsSUFBSSxDQUFDLENBQUM7SUFDdkUsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUVoQyxJQUFhLGVBQWUsQ0FBQyxLQUFzQjtRQUNqRCxJQUFJLElBQUksQ0FBQyxrQkFBa0I7WUFBRSxPQUFPLENBQUMsMENBQTBDO1FBQy9FLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7SUFDckMsQ0FBQztJQUVRLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDWCxLQUFLLEdBQWMsU0FBUyxDQUFDO0lBQzdCLEtBQUssR0FBRyxFQUFFLENBQUM7SUFFcEIsSUFBYSxRQUFRLENBQUMsS0FBYTtRQUNqQyxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNuRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQWEsZUFBZSxDQUFDLEtBQWE7UUFDeEMsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztZQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25ELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUMvQixDQUFDO0lBRXVDLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDcEIsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNqQixTQUFTLENBQVU7SUFDbkIsU0FBUyxDQUFVO0lBQ25CLFdBQVcsR0FBRyxJQUFJLENBQUM7SUFFakQsVUFBVSxHQUFHLElBQUksWUFBWSxFQUFTLENBQUM7SUFDdkMsT0FBTyxHQUFHLElBQUksWUFBWSxFQUFTLENBQUM7SUFDcEMsa0JBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQztJQUMvQyxXQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQztJQUN4QyxRQUFRLEdBQUcsSUFBSSxZQUFZLEVBQXFELENBQUM7SUFFakQsU0FBUyxDQUFlO0lBQ3ZCLFVBQVUsQ0FBZ0I7SUFFckUsWUFDVSxLQUFxQixFQUNyQixNQUFjLEVBQ2QsYUFBNEIsRUFDNUIsWUFBNkIsRUFDN0IsRUFBcUIsRUFDMkIsa0JBQXVDO1FBTHZGLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixpQkFBWSxHQUFaLFlBQVksQ0FBaUI7UUFDN0IsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFDMkIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFxQjtRQUUvRixtQ0FBbUM7UUFDbkMsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1lBQ3ZCLGtCQUFrQixDQUFDLGlCQUFpQjtpQkFDakMsSUFBSSxDQUNILFNBQVMsQ0FBa0IsSUFBSSxDQUFDLEVBQUUsbUJBQW1CO1lBQ3JELFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSwrQkFBK0I7WUFDbEQsUUFBUTtZQUNSLDZFQUE2RTtZQUU3RSxvQkFBb0IsRUFBRSxDQUN2QjtpQkFDQSxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUM3RCxDQUFDO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekUsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQ3hCLElBQUksQ0FBQyxTQUFTLEVBQ2QsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FDM0csQ0FBQztRQUNGLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxLQUFLLENBQUMsZUFBZTtRQUNuQixJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUN6QyxJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3pDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNWLENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQVk7UUFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFN0Isd0VBQXdFO1FBQ3hFLElBQUksS0FBSyxDQUFDLGdCQUFnQjtZQUFFLE9BQU87UUFFbkMsMEJBQTBCO1FBQzFCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU07UUFDVixPQUFPLENBQUMsS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDNUMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkIsTUFBTSxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2xELGdCQUFnQjtZQUNoQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN4QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUN4RixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDekQsQ0FBQztRQUNILENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUN6QyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDbEMsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDakMsZ0JBQWdCO1lBQ2hCLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUMxQyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDeEMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDckcsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDaEUsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxDQUFDLEtBQUssQ0FBQyw2RUFBNkUsQ0FBQyxDQUFDO1lBQzdGLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztJQUNILENBQUM7SUFFRCxRQUFRLENBQUMsS0FBcUI7UUFDNUIsV0FBVztRQUNYLHVEQUF1RDtRQUN2RCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDO1lBQUUsT0FBTztRQUV2QyxvQ0FBb0M7UUFDcEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO1FBQ3JDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCw0Q0FBNEM7WUFDNUMsSUFBSSxLQUFLLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDekMsZUFBZTtZQUNqQixDQUFDO1lBRUQsZ0RBQWdEO2lCQUMzQyxDQUFDO2dCQUNKLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLENBQUM7Z0JBRTNDLGtCQUFrQjtnQkFDbEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUM7WUFDMUIsQ0FBQztRQUNILENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNWLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBcUI7UUFDL0IsV0FBVztRQUNYLHlEQUF5RDtRQUV6RCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxDQUFDO1FBQ2hELENBQUM7UUFFRCxvQ0FBb0M7YUFDL0IsQ0FBQztZQUNKLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO1lBQ3hDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsNENBQTRDO2dCQUM1QyxJQUFJLEtBQUssQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7b0JBQzVDLGVBQWU7Z0JBQ2pCLENBQUM7Z0JBRUQsZ0RBQWdEO3FCQUMzQyxDQUFDO29CQUNKLElBQUksSUFBSSxDQUFDLGlCQUFpQixLQUFLLENBQUMsRUFBRSxDQUFDO3dCQUNqQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxDQUFDO29CQUNoRCxDQUFDO3lCQUFNLElBQUksSUFBSSxDQUFDLGlCQUFpQixJQUFJLENBQUMsRUFBRSxDQUFDO3dCQUN2QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLENBQUM7b0JBQ3hELENBQUM7b0JBRUQsa0JBQWtCO29CQUNsQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxDQUFDO2dCQUM3QixDQUFDO1lBQ0gsQ0FBQyxFQUFFLGlCQUFpQixHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQzdCLENBQUM7SUFDSCxDQUFDO0lBRVMsbUJBQW1CLENBQUMsS0FBWTtRQUN4QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUEwRCxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUVTLFlBQVk7UUFDcEIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN6QixDQUFDO3VHQXROVSxnQkFBZ0IsbUtBbUVMLHdCQUF3QjsyRkFuRW5DLGdCQUFnQiwrTkE4Q1AsZ0JBQWdCLHNDQUNoQixnQkFBZ0IseUNBQ2hCLGdCQUFnQix5Q0FDaEIsZ0JBQWdCLCtDQUNoQixnQkFBZ0IsdUtBckR6QixDQUFDLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyx5UEN4Q3ZFLCt3RUFvRUE7OzJGRHpCYSxnQkFBZ0I7a0JBUDVCLFNBQVM7K0JBQ0UsYUFBYSxhQUdaLENBQUMsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsa0JBQWtCLEVBQUUsQ0FBQyxtQkFDcEQsdUJBQXVCLENBQUMsTUFBTTs7MEJBcUU1QyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLHdCQUF3Qjt5Q0ExRGpDLGVBQWU7c0JBQTNCLEtBQUs7Z0JBU0csS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRU8sUUFBUTtzQkFBcEIsS0FBSztnQkFZTyxlQUFlO3NCQUEzQixLQUFLO2dCQVlrQyxXQUFXO3NCQUFsRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLFFBQVE7c0JBQS9DLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0UsU0FBUztzQkFBaEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDRSxTQUFTO3NCQUFoRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLFdBQVc7c0JBQWxELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBRTVCLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUVtQyxTQUFTO3NCQUFsRCxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ0csVUFBVTtzQkFBcEQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBUFBfUFJPR1JFU1NfQkFSX1NFUlZJQ0UsIElQcm9ncmVzc0JhclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9wcm9ncmVzcy1iYXIuc2VydmljZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IElvbk1lbnVUb2dnbGUsIElvblJvdXRlck91dGxldCwgSW9uU2VhcmNoYmFyLCBOYXZDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgaXNOb3ROaWwsIGlzTm90TmlsT3JCbGFuaywgdG9Cb29sZWFuIH0gZnJvbSAnLi4vZnVuY3Rpb25zJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSGFtbWVyVGFwRXZlbnQgfSBmcm9tICcuLi9nZXN0dXJlL2hhbW1lci51dGlscyc7XG5pbXBvcnQgeyBIQU1NRVJfUFJFU1NfVElNRSB9IGZyb20gJy4uL2dlc3R1cmUvZ2VzdHVyZS1jb25maWcnO1xuaW1wb3J0IHsgQXBwQ29sb3JzIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgU2VhcmNoYmFyQ2hhbmdlRXZlbnREZXRhaWwgYXMgSVNlYXJjaGJhclNlYXJjaGJhckNoYW5nZUV2ZW50RGV0YWlsIH0gZnJvbSAnQGlvbmljL2NvcmUvZGlzdC90eXBlcy9jb21wb25lbnRzL3NlYXJjaGJhci9zZWFyY2hiYXItaW50ZXJmYWNlJztcbmltcG9ydCB7IFByb2dyZXNzQmFyTW9kZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcic7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUb29sYmFyVG9rZW4ge1xuICBhYnN0cmFjdCBvbkJhY2tDbGljazogT2JzZXJ2YWJsZTxFdmVudD47XG5cbiAgYWJzdHJhY3QgZG9CYWNrQ2xpY2soZXZlbnQ6IEV2ZW50KTtcblxuICBhYnN0cmFjdCBnb0JhY2soKTogUHJvbWlzZTxib29sZWFuPjtcblxuICBhYnN0cmFjdCBjYW5Hb0JhY2s6IGJvb2xlYW47XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC10b29sYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICd0b29sYmFyLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90b29sYmFyLnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBUb29sYmFyVG9rZW4sIHVzZUV4aXN0aW5nOiBUb29sYmFyQ29tcG9uZW50IH1dLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVG9vbGJhckNvbXBvbmVudCBpbXBsZW1lbnRzIFRvb2xiYXJUb2tlbiwgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF9jbG9zZVRhcENvdW50ID0gMDtcbiAgcHJpdmF0ZSBfdmFsaWRhdGVUYXBDb3VudCA9IDA7XG4gIHByaXZhdGUgX2RlZmF1bHRCYWNrSHJlZjogc3RyaW5nO1xuICBwcml2YXRlIF9iYWNrSHJlZjogc3RyaW5nO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBwcm9ncmVzc0Jhck1vZGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQcm9ncmVzc0Jhck1vZGU+KG51bGwpO1xuICBwcm90ZWN0ZWQgc2hvd1NlYXJjaEJhciA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHNldCBwcm9ncmVzc0Jhck1vZGUodmFsdWU6IFByb2dyZXNzQmFyTW9kZSkge1xuICAgIGlmICh0aGlzLnByb2dyZXNzQmFyU2VydmljZSkgcmV0dXJuOyAvLyBTa2lwIGlmIG1hbmFnZWQgYnkgdGhlIHByb2dyZXNzIHNlcnZpY2VcbiAgICB0aGlzLnByb2dyZXNzQmFyTW9kZSQubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBnZXQgcHJvZ3Jlc3NCYXJNb2RlKCk6IFByb2dyZXNzQmFyTW9kZSB7XG4gICAgcmV0dXJuIHRoaXMucHJvZ3Jlc3NCYXJNb2RlJC52YWx1ZTtcbiAgfVxuXG4gIEBJbnB1dCgpIHRpdGxlID0gJyc7XG4gIEBJbnB1dCgpIGNvbG9yOiBBcHBDb2xvcnMgPSAncHJpbWFyeSc7XG4gIEBJbnB1dCgpIGNsYXNzID0gJyc7XG5cbiAgQElucHV0KCkgc2V0IGJhY2tIcmVmKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuX2JhY2tIcmVmKSB7XG4gICAgICB0aGlzLl9iYWNrSHJlZiA9IHZhbHVlO1xuICAgICAgdGhpcy5jYW5Hb0JhY2sgPSB0aGlzLmNhbkdvQmFjayB8fCBpc05vdE5pbCh2YWx1ZSk7XG4gICAgICB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBiYWNrSHJlZigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9iYWNrSHJlZjtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBkZWZhdWx0QmFja0hyZWYodmFsdWU6IHN0cmluZykge1xuICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5fZGVmYXVsdEJhY2tIcmVmKSB7XG4gICAgICB0aGlzLl9kZWZhdWx0QmFja0hyZWYgPSB2YWx1ZTtcbiAgICAgIHRoaXMuY2FuR29CYWNrID0gdGhpcy5jYW5Hb0JhY2sgfHwgaXNOb3ROaWwodmFsdWUpO1xuICAgICAgdGhpcy5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICBnZXQgZGVmYXVsdEJhY2tIcmVmKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2RlZmF1bHRCYWNrSHJlZjtcbiAgfVxuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBoYXNWYWxpZGF0ZSA9IGZhbHNlO1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaGFzQ2xvc2UgPSBmYWxzZTtcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGhhc1NlYXJjaDogYm9vbGVhbjtcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGNhbkdvQmFjazogYm9vbGVhbjtcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGNhblNob3dNZW51ID0gdHJ1ZTtcblxuICBAT3V0cHV0KCkgb25WYWxpZGF0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBvbkNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcbiAgQE91dHB1dCgpIG9uVmFsaWRhdGVBbmRDbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBvbkJhY2tDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBvblNlYXJjaCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNlYXJjaGJhclNlYXJjaGJhckNoYW5nZUV2ZW50RGV0YWlsPj4oKTtcblxuICBAVmlld0NoaWxkKCdzZWFyY2hiYXInLCB7IHN0YXRpYzogdHJ1ZSB9KSBzZWFyY2hiYXI6IElvblNlYXJjaGJhcjtcbiAgQFZpZXdDaGlsZCgnbWVudVRvZ2dsZScsIHsgc3RhdGljOiB0cnVlIH0pIG1lbnVUb2dnbGU6IElvbk1lbnVUb2dnbGU7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIG5hdkNvbnRyb2xsZXI6IE5hdkNvbnRyb2xsZXIsXG4gICAgcHJpdmF0ZSByb3V0ZXJPdXRsZXQ6IElvblJvdXRlck91dGxldCxcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEFQUF9QUk9HUkVTU19CQVJfU0VSVklDRSkgcHJvdGVjdGVkIHByb2dyZXNzQmFyU2VydmljZTogSVByb2dyZXNzQmFyU2VydmljZVxuICApIHtcbiAgICAvLyBMaXN0ZW4gcHJvZ3Jlc3MgYmFyIHNlcnZpY2UgbW9kZVxuICAgIGlmIChwcm9ncmVzc0JhclNlcnZpY2UpIHtcbiAgICAgIHByb2dyZXNzQmFyU2VydmljZS5vblByb2dyZXNzQ2hhbmdlZFxuICAgICAgICAucGlwZShcbiAgICAgICAgICBzdGFydFdpdGgoPFByb2dyZXNzQmFyTW9kZT5udWxsKSwgLy8gbm9uZSwgYnkgZGVmYXVsdFxuICAgICAgICAgIGRlYm91bmNlVGltZSgxMDApLCAvLyB3YWl0IDEwMG1zLCB0byBncm91cCBjaGFuZ2VzXG4gICAgICAgICAgLy8gREVCVUdcbiAgICAgICAgICAvL3RhcCgobW9kZSkgPT4gY29uc29sZS5kZWJ1ZygnW3Rvb2xiYXJdIFVwZGF0aW5nIHByb2dyZXNzQmFyTW9kZTogJyArIG1vZGUpKVxuXG4gICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB0aGlzLnByb2dyZXNzQmFyTW9kZSQubmV4dCh2YWx1ZSkpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaGFzVmFsaWRhdGUgPSB0b0Jvb2xlYW4odGhpcy5oYXNWYWxpZGF0ZSwgdGhpcy5vblZhbGlkYXRlLm9ic2VydmVkKTtcbiAgICB0aGlzLmNhbkdvQmFjayA9IHRvQm9vbGVhbihcbiAgICAgIHRoaXMuY2FuR29CYWNrLFxuICAgICAgdGhpcy5yb3V0ZXJPdXRsZXQuY2FuR29CYWNrKCkgfHwgaXNOb3ROaWxPckJsYW5rKHRoaXMuX2JhY2tIcmVmKSB8fCBpc05vdE5pbE9yQmxhbmsodGhpcy5fZGVmYXVsdEJhY2tIcmVmKVxuICAgICk7XG4gICAgdGhpcy5oYXNTZWFyY2ggPSB0b0Jvb2xlYW4odGhpcy5oYXNTZWFyY2gsIHRoaXMub25TZWFyY2gub2JzZXJ2ZWQpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5vbkJhY2tDbGljay5jb21wbGV0ZSgpO1xuICAgIHRoaXMub25CYWNrQ2xpY2sudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLm9uVmFsaWRhdGUuY29tcGxldGUoKTtcbiAgICB0aGlzLm9uVmFsaWRhdGUudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLm9uQ2xvc2UuY29tcGxldGUoKTtcbiAgICB0aGlzLm9uQ2xvc2UudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLm9uVmFsaWRhdGVBbmRDbG9zZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMub25WYWxpZGF0ZUFuZENsb3NlLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5vblNlYXJjaC5jb21wbGV0ZSgpO1xuICAgIHRoaXMub25TZWFyY2gudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGFzeW5jIHRvZ2dsZVNlYXJjaEJhcigpIHtcbiAgICB0aGlzLnNob3dTZWFyY2hCYXIgPSAhdGhpcy5zaG93U2VhcmNoQmFyO1xuICAgIGlmICh0aGlzLnNob3dTZWFyY2hCYXIgJiYgdGhpcy5zZWFyY2hiYXIpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnNlYXJjaGJhci5zZXRGb2N1cygpO1xuICAgICAgICB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSwgMzAwKTtcbiAgICB9XG4gIH1cblxuICBkb0JhY2tDbGljayhldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLm9uQmFja0NsaWNrLmVtaXQoZXZlbnQpO1xuXG4gICAgLy8gU3RvcCBwcm9wYWdhdGlvbiwgaWYgbmVlZCAoY2FuIGJlIGNhbmNlbGxlZCBieSBvbkJhY2tDbGljayBvYnNlcnZlcnMpXG4gICAgaWYgKGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHJldHVybjtcblxuICAgIC8vIEV4ZWN1dGUgdGhlIGJhY2sgYWN0aW9uXG4gICAgdGhpcy5nb0JhY2soKTtcbiAgfVxuXG4gIGFzeW5jIGdvQmFjaygpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zb2xlLmRlYnVnKCdbdG9vbGJhcl0gY2FsbGluZyBnb0JhY2soKScpO1xuICAgIGlmICh0aGlzLl9iYWNrSHJlZikge1xuICAgICAgY29uc3QgcmVwbGFjZVVybCA9ICF0aGlzLnJvdXRlck91dGxldC5jYW5Hb0JhY2soKTtcbiAgICAgIC8vIFJlbGF0aXZlIGhyZWZcbiAgICAgIGlmICh0aGlzLl9iYWNrSHJlZi5zdGFydHNXaXRoKCcuJykpIHtcbiAgICAgICAgdGhpcy5uYXZDb250cm9sbGVyLnNldERpcmVjdGlvbignYmFjaycpO1xuICAgICAgICByZXR1cm4gdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RoaXMuX2JhY2tIcmVmXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLCByZXBsYWNlVXJsIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF2Q29udHJvbGxlci5uYXZpZ2F0ZUJhY2sodGhpcy5fYmFja0hyZWYpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy5yb3V0ZXJPdXRsZXQuY2FuR29CYWNrKCkpIHtcbiAgICAgIHJldHVybiB0aGlzLm5hdkNvbnRyb2xsZXIucG9wKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9kZWZhdWx0QmFja0hyZWYpIHtcbiAgICAgIC8vIFJlbGF0aXZlIGhyZWZcbiAgICAgIGlmICh0aGlzLl9kZWZhdWx0QmFja0hyZWYuc3RhcnRzV2l0aCgnLicpKSB7XG4gICAgICAgIHRoaXMubmF2Q29udHJvbGxlci5zZXREaXJlY3Rpb24oJ2JhY2snKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucm91dGVyLm5hdmlnYXRlKFt0aGlzLl9kZWZhdWx0QmFja0hyZWZdLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUsIHJlcGxhY2VVcmw6IHRydWUgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXZDb250cm9sbGVyLm5hdmlnYXRlQmFjayh0aGlzLl9kZWZhdWx0QmFja0hyZWYpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmVycm9yKFwiW3Rvb2xiYXJdIENhbm5vdCBnbyBiYWNrLiBNaXNzaW5nIGF0dHJpYnV0ZSAnZGVmYXVsdEJhY2tIcmVmJyBvciAnYmFja0hyZWYnXCIpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHRhcENsb3NlKGV2ZW50OiBIYW1tZXJUYXBFdmVudCkge1xuICAgIC8vIERFViBvbmx5XG4gICAgLy8gY29uc29sZS5kZWJ1ZyhcIlt0b29sYmFyXSB0YXBDbG9zZVwiLCBldmVudC50YXBDb3VudCk7XG4gICAgaWYgKHRoaXMuX3ZhbGlkYXRlVGFwQ291bnQgPiAwKSByZXR1cm47XG5cbiAgICAvLyBEaXN0aW5ndWlzaCBzaW1wbGUgYW5kIGRvdWJsZSB0YXBcbiAgICB0aGlzLl9jbG9zZVRhcENvdW50ID0gZXZlbnQudGFwQ291bnQ7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvLyBFdmVudCBpcyBvYnNvbGV0ZSAoYSBuZXcgdGFwIGV2ZW50IG9jY3VyKVxuICAgICAgaWYgKGV2ZW50LnRhcENvdW50IDwgdGhpcy5fY2xvc2VUYXBDb3VudCkge1xuICAgICAgICAvLyBJZ25vcmUgZXZlbnRcbiAgICAgIH1cblxuICAgICAgLy8gSWYgZXZlbnQgc3RpbGwgdGhlIGxhc3QgdGFwIGV2ZW50OiBwcm9jZXNzIGl0XG4gICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5vbkNsb3NlLmVtaXQoZXZlbnQuc3JjRXZlbnQgfHwgZXZlbnQpO1xuXG4gICAgICAgIC8vIFJlc2V0IHRhYiBjb3VudFxuICAgICAgICB0aGlzLl9jbG9zZVRhcENvdW50ID0gMDtcbiAgICAgIH1cbiAgICB9LCA1MDApO1xuICB9XG5cbiAgdGFwVmFsaWRhdGUoZXZlbnQ6IEhhbW1lclRhcEV2ZW50KSB7XG4gICAgLy8gREVWIG9ubHlcbiAgICAvL2NvbnNvbGUuZGVidWcoXCJbdG9vbGJhcl0gdGFwVmFsaWRhdGVcIiwgZXZlbnQudGFwQ291bnQpO1xuXG4gICAgaWYgKHRoaXMub25WYWxpZGF0ZUFuZENsb3NlLm9ic2VydmVkKSB7XG4gICAgICB0aGlzLm9uVmFsaWRhdGUuZW1pdChldmVudC5zcmNFdmVudCB8fCBldmVudCk7XG4gICAgfVxuXG4gICAgLy8gRGlzdGluZ3Vpc2ggc2ltcGxlIGFuZCBkb3VibGUgdGFwXG4gICAgZWxzZSB7XG4gICAgICB0aGlzLl92YWxpZGF0ZVRhcENvdW50ID0gZXZlbnQudGFwQ291bnQ7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgLy8gRXZlbnQgaXMgb2Jzb2xldGUgKGEgbmV3IHRhcCBldmVudCBvY2N1cilcbiAgICAgICAgaWYgKGV2ZW50LnRhcENvdW50IDwgdGhpcy5fdmFsaWRhdGVUYXBDb3VudCkge1xuICAgICAgICAgIC8vIElnbm9yZSBldmVudFxuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgZXZlbnQgc3RpbGwgdGhlIGxhc3QgdGFwIGV2ZW50OiBwcm9jZXNzIGl0XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGlmICh0aGlzLl92YWxpZGF0ZVRhcENvdW50ID09PSAxKSB7XG4gICAgICAgICAgICB0aGlzLm9uVmFsaWRhdGUuZW1pdChldmVudC5zcmNFdmVudCB8fCBldmVudCk7XG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLl92YWxpZGF0ZVRhcENvdW50ID49IDIpIHtcbiAgICAgICAgICAgIHRoaXMub25WYWxpZGF0ZUFuZENsb3NlLmVtaXQoZXZlbnQuc3JjRXZlbnQgfHwgZXZlbnQpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIFJlc2V0IHRhYiBjb3VudFxuICAgICAgICAgIHRoaXMuX3ZhbGlkYXRlVGFwQ291bnQgPSAwO1xuICAgICAgICB9XG4gICAgICB9LCBIQU1NRVJfUFJFU1NfVElNRSArIDEwKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaW9uU2VhcmNoQmFyQ2hhbmdlZChldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLm9uU2VhcmNoLmVtaXQoZXZlbnQgYXMgQ3VzdG9tRXZlbnQ8SVNlYXJjaGJhclNlYXJjaGJhckNoYW5nZUV2ZW50RGV0YWlsPik7XG4gIH1cblxuICBwcm90ZWN0ZWQgbWFya0ZvckNoZWNrKCkge1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cbn1cbiIsIjxpb24taGVhZGVyIFtjbGFzc109XCJjbGFzc1wiPlxuICA8aW9uLXRvb2xiYXIgW2NvbG9yXT1cImNvbG9yXCI+XG4gICAgPGlvbi1idXR0b25zIHNsb3Q9XCJzdGFydFwiPlxuICAgICAgPCEtLSBiYWNrIGJ1dHRvbiAtLT5cbiAgICAgIEBpZiAoY2FuR29CYWNrKSB7XG4gICAgICAgIDxpb24tYnV0dG9uIGNsYXNzPVwiYmFjay1idXR0b25cIiAoY2xpY2spPVwiZG9CYWNrQ2xpY2soJGV2ZW50KVwiIHJvdXRlckRpcmVjdGlvbj1cImJhY2tcIj5cbiAgICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJhcnJvdy1iYWNrXCI+PC9pb24taWNvbj5cbiAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgfVxuXG4gICAgICA8IS0tIHNob3cgbWVudSBidXR0b24gLS0+XG4gICAgICA8aW9uLW1lbnUtdG9nZ2xlICNtZW51VG9nZ2xlIFttZW51XT1cIidsZWZ0J1wiIFtjbGFzcy5jZGstdmlzdWFsbHktaGlkZGVuXT1cImNhbkdvQmFjayB8fCAhY2FuU2hvd01lbnVcIj5cbiAgICAgICAgPGlvbi1idXR0b24+XG4gICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJpY29uLW9ubHlcIiBuYW1lPVwibWVudVwiPjwvaW9uLWljb24+XG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgIDwvaW9uLW1lbnUtdG9nZ2xlPlxuXG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc2xvdD1zdGFydF1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9pb24tYnV0dG9ucz5cblxuICAgIDxpb24tdGl0bGUgW2lubmVySFRNTF09XCJ0aXRsZVwiPjwvaW9uLXRpdGxlPlxuXG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiaW9uLXRpdGxlLCBpb24tc2VnbWVudFwiPjwvbmctY29udGVudD5cblxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImlvbi1idXR0b25zW3Nsb3Q9ZW5kXVwiPjwvbmctY29udGVudD5cblxuICAgIDxpb24tYnV0dG9ucyBzbG90PVwiZW5kXCIgY29sbGFwc2U9XCJ0cnVlXCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc2xvdD1lbmRdXCI+PC9uZy1jb250ZW50PlxuXG4gICAgICA8IS0tIHNlYXJjaCBiYXIgLS0+XG4gICAgICBAaWYgKGhhc1NlYXJjaCkge1xuICAgICAgICA8aW9uLXNlYXJjaGJhclxuICAgICAgICAgICNzZWFyY2hiYXJcbiAgICAgICAgICBhbmltYXRlZFxuICAgICAgICAgIHR5cGU9XCJzZWFyY2hcIlxuICAgICAgICAgIFtjbGFzcy5jZGstdmlzdWFsbHktaGlkZGVuXT1cIiFzaG93U2VhcmNoQmFyXCJcbiAgICAgICAgICBzaG93LWNhbmNlbC1idXR0b249XCJhbHdheXNcIlxuICAgICAgICAgIChpb25DaGFuZ2UpPVwiaW9uU2VhcmNoQmFyQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAoaW9uQ2FuY2VsKT1cInRvZ2dsZVNlYXJjaEJhcigpXCJcbiAgICAgICAgPjwvaW9uLXNlYXJjaGJhcj5cblxuICAgICAgICA8IS0tIHNlYXJjaCBidXR0b24gLS0+XG4gICAgICAgIEBpZiAoIXNob3dTZWFyY2hCYXIpIHtcbiAgICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwidG9nZ2xlU2VhcmNoQmFyKClcIj5cbiAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cInNlYXJjaFwiPjwvaW9uLWljb24+XG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIDwhLS0gY2xvc2UgYnV0dG9uIC0tPlxuICAgICAgQGlmIChoYXNDbG9zZSkge1xuICAgICAgICA8aW9uLWJ1dHRvbiAodGFwKT1cInRhcENsb3NlKCRldmVudClcIiBjbGFzcz1cInZpc2libGUteHMgdmlzaWJsZS1zbSB2aXNpYmxlLW1vYmlsZVwiPlxuICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cImNsb3NlXCI+PC9pb24taWNvbj5cbiAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgfVxuXG4gICAgICA8IS0tIHZhbGlkYXRlIGJ1dHRvbiAtLT5cbiAgICAgIEBpZiAoaGFzVmFsaWRhdGUpIHtcbiAgICAgICAgPGlvbi1idXR0b24gKHRhcCk9XCJ0YXBWYWxpZGF0ZSgkZXZlbnQpXCIgY2xhc3M9XCJ2aXNpYmxlLXhzIHZpc2libGUtc20gdmlzaWJsZS1tb2JpbGVcIj5cbiAgICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJzYXZlXCI+PC9pb24taWNvbj5cbiAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgfVxuICAgIDwvaW9uLWJ1dHRvbnM+XG4gIDwvaW9uLXRvb2xiYXI+XG5cbiAgPCEtLSBwcm9ncmVzcyBiYXIgLS0+XG4gIDxtYXQtcHJvZ3Jlc3MtYmFyIFtjb2xvcl09XCJjb2xvciB8IG1hdENvbG9yXCIgW21vZGVdPVwicHJvZ3Jlc3NCYXJNb2RlJCB8IHB1c2hcIj48L21hdC1wcm9ncmVzcy1iYXI+XG48L2lvbi1oZWFkZXI+XG4iXX0=
@@ -1,26 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { TranslateModule } from '@ngx-translate/core';
4
- import { IonicModule } from '@ionic/angular';
5
- import { ToolbarComponent } from './toolbar';
6
- import { ModalToolbarComponent } from './modal-toolbar';
7
- import { HammerModule } from '@angular/platform-browser';
8
- import { SharedPipesModule } from '../pipes/pipes.module';
9
- import { MatIconModule } from '@angular/material/icon';
10
- import { MatProgressBarModule } from '@angular/material/progress-bar';
11
- import { RxStateModule } from '../rx-state.module';
12
- import * as i0 from "@angular/core";
13
- export class SharedToolbarModule {
14
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SharedToolbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
15
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: SharedToolbarModule, declarations: [ToolbarComponent, ModalToolbarComponent], imports: [CommonModule, IonicModule, TranslateModule, HammerModule, SharedPipesModule, RxStateModule, MatProgressBarModule, MatIconModule], exports: [ToolbarComponent, ModalToolbarComponent] });
16
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SharedToolbarModule, imports: [CommonModule, IonicModule, TranslateModule, HammerModule, SharedPipesModule, RxStateModule, MatProgressBarModule, MatIconModule] });
17
- }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SharedToolbarModule, decorators: [{
19
- type: NgModule,
20
- args: [{
21
- imports: [CommonModule, IonicModule, TranslateModule, HammerModule, SharedPipesModule, RxStateModule, MatProgressBarModule, MatIconModule],
22
- declarations: [ToolbarComponent, ModalToolbarComponent],
23
- exports: [ToolbarComponent, ModalToolbarComponent],
24
- }]
25
- }] });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC90b29sYmFyL3Rvb2xiYXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQU9uRCxNQUFNLE9BQU8sbUJBQW1CO3VHQUFuQixtQkFBbUI7d0dBQW5CLG1CQUFtQixpQkFIZixnQkFBZ0IsRUFBRSxxQkFBcUIsYUFENUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxhQUFhLGFBRS9ILGdCQUFnQixFQUFFLHFCQUFxQjt3R0FFdEMsbUJBQW1CLFlBSnBCLFlBQVksRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsYUFBYTs7MkZBSTlILG1CQUFtQjtrQkFML0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLG9CQUFvQixFQUFFLGFBQWEsQ0FBQztvQkFDMUksWUFBWSxFQUFFLENBQUMsZ0JBQWdCLEVBQUUscUJBQXFCLENBQUM7b0JBQ3ZELE9BQU8sRUFBRSxDQUFDLGdCQUFnQixFQUFFLHFCQUFxQixDQUFDO2lCQUNuRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBJb25pY01vZHVsZSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IFRvb2xiYXJDb21wb25lbnQgfSBmcm9tICcuL3Rvb2xiYXInO1xuaW1wb3J0IHsgTW9kYWxUb29sYmFyQ29tcG9uZW50IH0gZnJvbSAnLi9tb2RhbC10b29sYmFyJztcbmltcG9ydCB7IEhhbW1lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgU2hhcmVkUGlwZXNNb2R1bGUgfSBmcm9tICcuLi9waXBlcy9waXBlcy5tb2R1bGUnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1iYXInO1xuaW1wb3J0IHsgUnhTdGF0ZU1vZHVsZSB9IGZyb20gJy4uL3J4LXN0YXRlLm1vZHVsZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvbmljTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIEhhbW1lck1vZHVsZSwgU2hhcmVkUGlwZXNNb2R1bGUsIFJ4U3RhdGVNb2R1bGUsIE1hdFByb2dyZXNzQmFyTW9kdWxlLCBNYXRJY29uTW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zOiBbVG9vbGJhckNvbXBvbmVudCwgTW9kYWxUb29sYmFyQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW1Rvb2xiYXJDb21wb25lbnQsIE1vZGFsVG9vbGJhckNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFNoYXJlZFRvb2xiYXJNb2R1bGUge31cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGhlbWVQYWxldHRlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBQcmVkZWZpbmVkQ29sb3JzIH0gZnJvbSAnQGlvbmljL2NvcmUnO1xuaW1wb3J0IHsgUHJlZGljYXRlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBkZWNsYXJlIHR5cGUgS2V5VHlwZSA9IHN0cmluZyB8IG51bWJlcjtcbmV4cG9ydCBkZWNsYXJlIHR5cGUgS2V5VmFsdWVUeXBlPFQ+ID0geyBba2V5IGluIEtleVR5cGVdOiBUIH07XG5cbmV4cG9ydCBkZWNsYXJlIHR5cGUgS2V5c0VudW08VD4gPSB7IFtQIGluIGtleW9mIFJlcXVpcmVkPFQ+XTogYm9vbGVhbiB9O1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgT2JqZWN0TWFwPE8gPSBhbnk+IHtcbiAgW2tleTogc3RyaW5nXTogTztcbn1cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE9iamVjdE1hcEVudHJ5PE8gPSBhbnk+IHtcbiAga2V5OiBzdHJpbmc7XG4gIHZhbHVlPzogTztcbn1cblxuZXhwb3J0IGRlY2xhcmUgdHlwZSBQcm9wZXJ0aWVzTWFwID0gT2JqZWN0TWFwPHN0cmluZz47XG5cbmV4cG9ydCBkZWNsYXJlIHR5cGUgUHJvcGVydHkgPSBPYmplY3RNYXBFbnRyeTxzdHJpbmc+O1xuXG5leHBvcnQgZGVjbGFyZSB0eXBlIFByb3BlcnRpZXNBcnJheSA9IFByb3BlcnR5W107XG5cbmV4cG9ydCBkZWNsYXJlIHR5cGUgQXBwQ29sb3JzID0gUHJlZGVmaW5lZENvbG9ycyB8IFRoZW1lUGFsZXR0ZSB8IHN0cmluZztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEljb25SZWYge1xuICBpY29uPzogc3RyaW5nOyAvLyBBbiBpb24taWNvbiBuYW1lXG4gIG1hdEljb24/OiBzdHJpbmc7IC8vIEEgbWF0IGljb25cbiAgbWF0U3ZnSWNvbj86IHN0cmluZzsgLy8gQSBtYXQgU1ZHIGljb25cbiAgY29sb3I/OiBBcHBDb2xvcnM7XG59XG5cbmV4cG9ydCBkZWNsYXJlIHR5cGUgRmlsdGVyRm48VD4gPSBQcmVkaWNhdGU8VD47XG5leHBvcnQgZGVjbGFyZSB0eXBlIEZpbHRlckZuRmFjdG9yeTxULCBGPiA9IChmaWx0ZXI6IEYpID0+IEZpbHRlckZuPFQ+O1xuXG5leHBvcnQgZGVjbGFyZSB0eXBlIEZ1bmN0aW9uPFAsIFI+ID0gKHZhbHVlOiBQKSA9PiBSO1xuZXhwb3J0IGRlY2xhcmUgdHlwZSBCaUZ1bmN0aW9uPFAxLCBQMiwgUj4gPSAodjE6IFAxLCB2MjogUDIpID0+IFI7XG4iXX0=