@sumaris-net/ngx-components 2.0.0-rc16 → 2.0.0-rc19

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 (293) hide show
  1. package/esm2020/public_api.mjs +34 -21
  2. package/esm2020/src/app/admin/admin-routing.module.mjs +6 -6
  3. package/esm2020/src/app/admin/admin.module.mjs +6 -6
  4. package/esm2020/src/app/admin/services/person.service.mjs +3 -3
  5. package/esm2020/src/app/admin/services/validator/person.validator.mjs +3 -3
  6. package/esm2020/src/app/admin/users/{list/users.mjs → users.mjs} +31 -31
  7. package/esm2020/src/app/admin/users/users.module.mjs +54 -0
  8. package/esm2020/src/app/core/about/about.modal.mjs +71 -0
  9. package/esm2020/src/app/core/about/about.module.mjs +34 -0
  10. package/esm2020/src/app/core/account/account.module.mjs +43 -0
  11. package/esm2020/src/app/core/account/account.page.mjs +239 -0
  12. package/esm2020/src/app/core/auth/auth.form.mjs +131 -0
  13. package/esm2020/src/app/core/auth/auth.modal.mjs +72 -0
  14. package/esm2020/src/app/core/auth/auth.module.mjs +47 -0
  15. package/esm2020/src/app/core/core.module.mjs +86 -125
  16. package/esm2020/src/app/core/core.testing.module.mjs +7 -7
  17. package/esm2020/src/app/core/form/{form-buttons-bar.component.mjs → buttons/form-buttons-bar.component.mjs} +7 -7
  18. package/esm2020/src/app/core/form/buttons/form-buttons-bar.module.mjs +35 -0
  19. package/esm2020/src/app/core/form/entity/editor.class.mjs +675 -0
  20. package/esm2020/src/app/core/form/entity/entity-editor-modal.class.mjs +421 -0
  21. package/esm2020/src/app/core/form/entity/entity-editor.class.mjs +646 -0
  22. package/esm2020/src/app/core/form/{entity-metadata.component.mjs → entity/entity-metadata.component.mjs} +6 -6
  23. package/esm2020/src/app/core/form/entity/entity.module.mjs +38 -0
  24. package/esm2020/src/app/core/form/form.class.mjs +3 -3
  25. package/esm2020/src/app/core/form/form.module.mjs +66 -0
  26. package/esm2020/src/app/core/form/list/list.form.mjs +222 -0
  27. package/esm2020/src/app/core/form/list/list.module.mjs +35 -0
  28. package/esm2020/src/app/core/form/properties/properties.form.mjs +3 -3
  29. package/esm2020/src/app/core/form/properties/properties.module.mjs +35 -0
  30. package/esm2020/src/app/core/form/properties/property.validator.mjs +3 -3
  31. package/esm2020/src/app/core/form/properties/testing/properties-form.test.mjs +3 -3
  32. package/esm2020/src/app/core/form/properties/testing/properties-form.testing.module.mjs +4 -4
  33. package/esm2020/src/app/core/{text-popover → form/text-popover}/testing/text-popover.testing.mjs +4 -4
  34. package/esm2020/src/app/core/form/text-popover/testing/text-popover.testing.module.mjs +45 -0
  35. package/esm2020/src/app/core/{text-popover → form/text-popover}/text-form.component.mjs +8 -8
  36. package/esm2020/src/app/core/{text-popover → form/text-popover}/text-popover.component.mjs +6 -6
  37. package/esm2020/src/app/core/form/text-popover/text-popover.module.mjs +40 -0
  38. package/esm2020/src/app/core/graphql/graphql.module.mjs +4 -4
  39. package/esm2020/src/app/core/graphql/graphql.service.mjs +3 -3
  40. package/esm2020/src/app/core/home/home.mjs +8 -8
  41. package/esm2020/src/app/core/home/home.module.mjs +48 -0
  42. package/esm2020/src/app/core/icon/icon.component.mjs +3 -3
  43. package/esm2020/src/app/core/icon/icon.module.mjs +4 -4
  44. package/esm2020/src/app/core/install/install-upgrade-card.component.mjs +3 -3
  45. package/esm2020/src/app/core/install/install-upgrade-card.module.mjs +17 -15
  46. package/esm2020/src/app/core/menu/menu.component.mjs +5 -5
  47. package/esm2020/src/app/core/menu/menu.module.mjs +9 -10
  48. package/esm2020/src/app/core/menu/menu.service.mjs +3 -3
  49. package/esm2020/src/app/core/offline/update-offline-mode-card.component.mjs +3 -3
  50. package/esm2020/src/app/core/offline/update-offline-mode-card.module.mjs +35 -0
  51. package/esm2020/src/app/core/peer/select-peer.modal.mjs +3 -3
  52. package/esm2020/src/app/core/peer/select-peer.module.mjs +14 -10
  53. package/esm2020/src/app/core/register/register-confirm.page.mjs +81 -0
  54. package/esm2020/src/app/core/register/register.form.mjs +181 -0
  55. package/esm2020/src/app/core/register/register.modal.mjs +52 -0
  56. package/esm2020/src/app/core/register/register.module.mjs +17 -15
  57. package/esm2020/src/app/core/services/account.service.mjs +3 -3
  58. package/esm2020/src/app/core/services/auth-guard.service.mjs +6 -6
  59. package/esm2020/src/app/core/services/base-entity-service.class.mjs +3 -3
  60. package/esm2020/src/app/core/services/base-graphql-service.class.mjs +3 -3
  61. package/esm2020/src/app/core/services/config.service.mjs +3 -3
  62. package/esm2020/src/app/core/services/crypto.service.mjs +3 -3
  63. package/esm2020/src/app/core/services/local-settings.service.mjs +3 -3
  64. package/esm2020/src/app/core/services/network.service.mjs +3 -3
  65. package/esm2020/src/app/core/services/pipes/account.pipes.mjs +8 -8
  66. package/esm2020/src/app/core/services/pipes/department-to-string.pipe.mjs +4 -4
  67. package/esm2020/src/app/core/services/pipes/person-to-string.pipe.mjs +4 -4
  68. package/esm2020/src/app/core/services/pipes/usage-mode.pipes.mjs +8 -8
  69. package/esm2020/src/app/core/services/platform.service.mjs +3 -3
  70. package/esm2020/src/app/core/services/storage/entities-storage.service.mjs +3 -3
  71. package/esm2020/src/app/core/services/testing/referential.validator.mjs +3 -3
  72. package/esm2020/src/app/core/services/validator/account.validator.mjs +3 -3
  73. package/esm2020/src/app/core/services/validator/base.validator.class.mjs +3 -3
  74. package/esm2020/src/app/core/services/validator/local-settings.validator.mjs +3 -3
  75. package/esm2020/src/app/core/services/validator/user-settings.validator.mjs +3 -3
  76. package/esm2020/src/app/core/settings/settings.module.mjs +34 -0
  77. package/esm2020/src/app/core/settings/settings.page.mjs +4 -4
  78. package/esm2020/src/app/core/table/actions-column.component.mjs +3 -3
  79. package/esm2020/src/app/core/table/entities-table-datasource.class.mjs +3 -3
  80. package/esm2020/src/app/core/table/memory-table.class.mjs +3 -3
  81. package/esm2020/src/app/core/table/table-select-columns.component.mjs +3 -3
  82. package/esm2020/src/app/core/table/table.class.mjs +3 -3
  83. package/esm2020/src/app/core/table/table.module.mjs +40 -0
  84. package/esm2020/src/app/core/table/testing/table.testing.mjs +6 -6
  85. package/esm2020/src/app/core/table/testing/table.testing.module.mjs +4 -4
  86. package/esm2020/src/app/shared/audio/audio.mjs +3 -3
  87. package/esm2020/src/app/shared/audio/audio.testing.mjs +3 -3
  88. package/esm2020/src/app/shared/audio/audio.testing.module.mjs +4 -4
  89. package/esm2020/src/app/shared/capacitor/keyboard.mjs +3 -3
  90. package/esm2020/src/app/shared/debug/debug.component.mjs +3 -3
  91. package/esm2020/src/app/shared/debug/debug.module.mjs +4 -4
  92. package/esm2020/src/app/shared/directives/autofocus.directive.mjs +3 -3
  93. package/esm2020/src/app/shared/directives/autotitle.directive.mjs +3 -3
  94. package/esm2020/src/app/shared/directives/directives.module.mjs +4 -4
  95. package/esm2020/src/app/shared/directives/drag-and-drop.directive.mjs +3 -3
  96. package/esm2020/src/app/shared/directives/ng-var.directive.mjs +3 -3
  97. package/esm2020/src/app/shared/directives/resizable/resizable.component.mjs +3 -3
  98. package/esm2020/src/app/shared/directives/resizable/resizable.directive.mjs +3 -3
  99. package/esm2020/src/app/shared/directives/resizable/resizable.module.mjs +4 -4
  100. package/esm2020/src/app/shared/file/file.service.mjs +3 -3
  101. package/esm2020/src/app/shared/form/field.component.mjs +3 -3
  102. package/esm2020/src/app/shared/form/loading-spinner.mjs +3 -3
  103. package/esm2020/src/app/shared/gesture/gesture-config.mjs +3 -3
  104. package/esm2020/src/app/shared/guard/component-dirty.guard.mjs +3 -3
  105. package/esm2020/src/app/shared/help/help.modal.mjs +3 -3
  106. package/esm2020/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +3 -3
  107. package/esm2020/src/app/shared/hotkeys/hotkeys.service.mjs +3 -3
  108. package/esm2020/src/app/shared/hotkeys/shared-hotkeys.module.mjs +4 -4
  109. package/esm2020/src/app/shared/image/gallery/image-gallery.component.mjs +3 -3
  110. package/esm2020/src/app/shared/image/gallery/image-gallery.module.mjs +4 -4
  111. package/esm2020/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +3 -3
  112. package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.mjs +3 -3
  113. package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +4 -4
  114. package/esm2020/src/app/shared/image/image.module.mjs +4 -4
  115. package/esm2020/src/app/shared/image/image.service.mjs +3 -3
  116. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.mjs +3 -3
  117. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +4 -4
  118. package/esm2020/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +3 -3
  119. package/esm2020/src/app/shared/material/badge/badge.directive.mjs +3 -3
  120. package/esm2020/src/app/shared/material/badge/badge.module.mjs +4 -4
  121. package/esm2020/src/app/shared/material/badge/badge.test.mjs +3 -3
  122. package/esm2020/src/app/shared/material/boolean/boolean.module.mjs +4 -4
  123. package/esm2020/src/app/shared/material/boolean/material.boolean.mjs +3 -3
  124. package/esm2020/src/app/shared/material/chips/chips.module.mjs +4 -4
  125. package/esm2020/src/app/shared/material/chips/material.chips.mjs +3 -3
  126. package/esm2020/src/app/shared/material/chips/testing/chips.test.mjs +3 -3
  127. package/esm2020/src/app/shared/material/datetime/datetime.module.mjs +4 -4
  128. package/esm2020/src/app/shared/material/datetime/material.date.mjs +3 -3
  129. package/esm2020/src/app/shared/material/datetime/material.dateshort.mjs +3 -3
  130. package/esm2020/src/app/shared/material/datetime/material.datetime.mjs +3 -3
  131. package/esm2020/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +3 -3
  132. package/esm2020/src/app/shared/material/datetime/testing/mat-date.test.mjs +3 -3
  133. package/esm2020/src/app/shared/material/duration/duration.module.mjs +4 -4
  134. package/esm2020/src/app/shared/material/duration/material.duration.mjs +3 -3
  135. package/esm2020/src/app/shared/material/latlong/material.latlong.mjs +3 -3
  136. package/esm2020/src/app/shared/material/latlong/material.latlong.module.mjs +4 -4
  137. package/esm2020/src/app/shared/material/latlong/testing/latlong.test.mjs +3 -3
  138. package/esm2020/src/app/shared/material/material.module.mjs +4 -4
  139. package/esm2020/src/app/shared/material/material.testing.module.mjs +4 -4
  140. package/esm2020/src/app/shared/material/numpad/numpad.append-to-input.directive.mjs +3 -3
  141. package/esm2020/src/app/shared/material/numpad/numpad.component.mjs +3 -3
  142. package/esm2020/src/app/shared/material/numpad/numpad.container.mjs +3 -3
  143. package/esm2020/src/app/shared/material/numpad/numpad.content.mjs +3 -3
  144. package/esm2020/src/app/shared/material/numpad/numpad.directive.mjs +3 -3
  145. package/esm2020/src/app/shared/material/numpad/numpad.dom-service.mjs +3 -3
  146. package/esm2020/src/app/shared/material/numpad/numpad.module.mjs +4 -4
  147. package/esm2020/src/app/shared/material/numpad/testing/numpad.test.mjs +3 -3
  148. package/esm2020/src/app/shared/material/paginator/material.paginator-i18n.mjs +3 -3
  149. package/esm2020/src/app/shared/material/stepper/material.stepper-i18n.mjs +3 -3
  150. package/esm2020/src/app/shared/material/swipe/material.swipe.mjs +3 -3
  151. package/esm2020/src/app/shared/material/swipe/swipe.module.mjs +4 -4
  152. package/esm2020/src/app/shared/material/swipe/testing/swipe.test.mjs +3 -3
  153. package/esm2020/src/app/shared/pipes/arrays.pipe.mjs +24 -24
  154. package/esm2020/src/app/shared/pipes/colors.pipe.mjs +3 -3
  155. package/esm2020/src/app/shared/pipes/date-diff-duration.pipe.mjs +4 -4
  156. package/esm2020/src/app/shared/pipes/date-format.pipe.mjs +4 -4
  157. package/esm2020/src/app/shared/pipes/date-from-now.pipe.mjs +4 -4
  158. package/esm2020/src/app/shared/pipes/duration.pipe.mjs +4 -4
  159. package/esm2020/src/app/shared/pipes/file-size.pipe.mjs +3 -3
  160. package/esm2020/src/app/shared/pipes/form.pipes.mjs +18 -18
  161. package/esm2020/src/app/shared/pipes/highlight.pipe.mjs +4 -4
  162. package/esm2020/src/app/shared/pipes/latlong-format.pipe.mjs +9 -9
  163. package/esm2020/src/app/shared/pipes/maps.pipe.mjs +12 -12
  164. package/esm2020/src/app/shared/pipes/math.pipes.mjs +12 -12
  165. package/esm2020/src/app/shared/pipes/ng-init.pipe.mjs +3 -3
  166. package/esm2020/src/app/shared/pipes/number-format.pipe.mjs +4 -4
  167. package/esm2020/src/app/shared/pipes/pipes.module.mjs +4 -4
  168. package/esm2020/src/app/shared/pipes/property.pipes.mjs +7 -7
  169. package/esm2020/src/app/shared/pipes/string.pipes.mjs +15 -15
  170. package/esm2020/src/app/shared/pipes/translate-context.pipe.mjs +8 -8
  171. package/esm2020/src/app/shared/services/memory-entity-service.class.mjs +3 -3
  172. package/esm2020/src/app/shared/services/progress-bar.service.mjs +3 -3
  173. package/esm2020/src/app/shared/services/storage/storage.service.mjs +3 -3
  174. package/esm2020/src/app/shared/services/translate-context.service.mjs +3 -3
  175. package/esm2020/src/app/shared/shared-routing.module.mjs +7 -7
  176. package/esm2020/src/app/shared/shared.module.mjs +9 -5
  177. package/esm2020/src/app/shared/shared.testing.module.mjs +4 -4
  178. package/esm2020/src/app/shared/testing/observable.test.mjs +3 -3
  179. package/esm2020/src/app/shared/testing/tests.page.mjs +3 -3
  180. package/esm2020/src/app/shared/toast/toast.testing.mjs +3 -3
  181. package/esm2020/src/app/shared/toast/toast.testing.module.mjs +4 -4
  182. package/esm2020/src/app/shared/toolbar/modal-toolbar.mjs +3 -3
  183. package/esm2020/src/app/shared/toolbar/toolbar.mjs +3 -3
  184. package/esm2020/src/app/shared/toolbar/toolbar.module.mjs +4 -4
  185. package/esm2020/src/app/shared/upload-file/testing/upload-file.testing.mjs +3 -3
  186. package/esm2020/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +4 -4
  187. package/esm2020/src/app/shared/upload-file/upload-file-popover.component.mjs +3 -3
  188. package/esm2020/src/app/shared/upload-file/upload-file.component.mjs +3 -3
  189. package/esm2020/src/app/shared/validator/form-error-adapter.class.mjs +3 -3
  190. package/esm2020/src/app/social/job/job.module.mjs +4 -4
  191. package/esm2020/src/app/social/job/job.service.mjs +3 -3
  192. package/esm2020/src/app/social/job/progression/job-progression.icon.mjs +3 -3
  193. package/esm2020/src/app/social/job/progression/job-progression.list.mjs +3 -3
  194. package/esm2020/src/app/social/job/testing/job-progression.testing.mjs +3 -3
  195. package/esm2020/src/app/social/job/testing/job-progression.testing.service.mjs +3 -3
  196. package/esm2020/src/app/social/job/testing/job.testing.module.mjs +4 -4
  197. package/esm2020/src/app/social/message/message.form.mjs +3 -3
  198. package/esm2020/src/app/social/message/message.modal.mjs +3 -3
  199. package/esm2020/src/app/social/message/message.module.mjs +4 -4
  200. package/esm2020/src/app/social/message/message.service.mjs +3 -3
  201. package/esm2020/src/app/social/social.module.mjs +4 -4
  202. package/esm2020/src/app/social/social.testing.module.mjs +4 -4
  203. package/esm2020/src/app/social/user-event/notification/user-event-notification.icon.mjs +3 -3
  204. package/esm2020/src/app/social/user-event/notification/user-event-notification.list.mjs +6 -6
  205. package/esm2020/src/app/social/user-event/testing/user-event.testing.mjs +3 -3
  206. package/esm2020/src/app/social/user-event/testing/user-event.testing.module.mjs +4 -4
  207. package/esm2020/src/app/social/user-event/testing/user-event.testing.service.mjs +3 -3
  208. package/esm2020/src/app/social/user-event/user-event.module.mjs +4 -4
  209. package/esm2020/src/app/social/user-event/user-event.service.mjs +3 -3
  210. package/esm2020/src/app/vendor.mjs +2 -1
  211. package/fesm2015/sumaris-net.ngx-components.mjs +3514 -3083
  212. package/fesm2015/sumaris-net.ngx-components.mjs.map +1 -1
  213. package/fesm2020/sumaris-net.ngx-components.mjs +3426 -3003
  214. package/fesm2020/sumaris-net.ngx-components.mjs.map +1 -1
  215. package/package.json +1 -1
  216. package/plugins/clovelced-plugin-audiomanagement/README.md +66 -0
  217. package/plugins/cordova-plugin-camera/README.md +703 -0
  218. package/plugins/cordova-plugin-device/README.md +309 -0
  219. package/plugins/cordova-plugin-file/README.md +848 -0
  220. package/plugins/cordova-plugin-file-transfer/README.md +598 -0
  221. package/plugins/cordova-plugin-file-transfer/doc/de/README.md +311 -0
  222. package/plugins/cordova-plugin-file-transfer/doc/es/README.md +311 -0
  223. package/plugins/cordova-plugin-file-transfer/doc/fr/README.md +270 -0
  224. package/plugins/cordova-plugin-file-transfer/doc/it/README.md +311 -0
  225. package/plugins/cordova-plugin-file-transfer/doc/ja/README.md +311 -0
  226. package/plugins/cordova-plugin-file-transfer/doc/ko/README.md +311 -0
  227. package/plugins/cordova-plugin-file-transfer/doc/pl/README.md +311 -0
  228. package/plugins/cordova-plugin-file-transfer/doc/zh/README.md +311 -0
  229. package/plugins/cordova-plugin-ionic-keyboard/README.md +220 -0
  230. package/plugins/cordova-plugin-ionic-webview/README.md +181 -0
  231. package/plugins/cordova-plugin-media-capture/README.md +626 -0
  232. package/plugins/cordova-plugin-splashscreen/README.md +387 -0
  233. package/plugins/cordova-plugin-statusbar/README.md +341 -0
  234. package/plugins/cordova-plugin-telerik-imagepicker/README.md +155 -0
  235. package/plugins/cordova-plugin-whitelist/README.md +185 -0
  236. package/plugins/cordova-sqlite-storage/README.md +1848 -0
  237. package/plugins/integrator-cordova-plugin-downloader/README.md +49 -0
  238. package/public_api.d.ts +33 -20
  239. package/src/app/admin/admin.module.d.ts +1 -1
  240. package/src/app/admin/users/{list/users.d.ts → users.d.ts} +11 -11
  241. package/src/app/admin/users/users.module.d.ts +13 -0
  242. package/src/app/core/about/{modal-about.d.ts → about.modal.d.ts} +1 -1
  243. package/src/app/core/about/about.module.d.ts +10 -0
  244. package/src/app/core/account/account.module.d.ts +11 -0
  245. package/src/app/core/account/{account.d.ts → account.page.d.ts} +5 -1
  246. package/src/app/core/auth/{form/form-auth.d.ts → auth.form.d.ts} +9 -9
  247. package/src/app/core/auth/{modal/modal-auth.d.ts → auth.modal.d.ts} +4 -4
  248. package/src/app/core/auth/auth.module.d.ts +11 -0
  249. package/src/app/core/core.module.d.ts +20 -29
  250. package/src/app/core/core.testing.module.d.ts +1 -1
  251. package/src/app/core/form/{form-buttons-bar.component.d.ts → buttons/form-buttons-bar.component.d.ts} +2 -2
  252. package/src/app/core/form/buttons/form-buttons-bar.module.d.ts +9 -0
  253. package/src/app/core/form/{editor.class.d.ts → entity/editor.class.d.ts} +9 -9
  254. package/src/app/core/form/{entity-editor-modal.class.d.ts → entity/entity-editor-modal.class.d.ts} +7 -7
  255. package/src/app/core/form/{entity-editor.class.d.ts → entity/entity-editor.class.d.ts} +10 -10
  256. package/src/app/core/form/{entity-metadata.component.d.ts → entity/entity-metadata.component.d.ts} +1 -1
  257. package/src/app/core/form/entity/entity.module.d.ts +10 -0
  258. package/src/app/core/form/form.module.d.ts +13 -0
  259. package/src/app/core/form/{list.form.d.ts → list/list.form.d.ts} +3 -3
  260. package/src/app/core/form/list/list.module.d.ts +9 -0
  261. package/src/app/core/form/properties/properties.module.d.ts +9 -0
  262. package/src/app/core/{text-popover → form/text-popover}/testing/text-popover.testing.d.ts +0 -0
  263. package/src/app/core/{text-popover → form/text-popover}/testing/text-popover.testing.module.d.ts +0 -0
  264. package/src/app/core/{text-popover → form/text-popover}/text-form.component.d.ts +1 -1
  265. package/src/app/core/{text-popover → form/text-popover}/text-popover.component.d.ts +0 -0
  266. package/src/app/core/form/text-popover/text-popover.module.d.ts +10 -0
  267. package/src/app/core/home/home.module.d.ts +12 -0
  268. package/src/app/core/install/install-upgrade-card.module.d.ts +6 -7
  269. package/src/app/core/menu/menu.component.d.ts +1 -1
  270. package/src/app/core/offline/update-offline-mode-card.module.d.ts +9 -0
  271. package/src/app/core/peer/select-peer.module.d.ts +5 -4
  272. package/src/app/core/register/{confirm/confirm.d.ts → register-confirm.page.d.ts} +4 -4
  273. package/src/app/core/register/{form/form-register.d.ts → register.form.d.ts} +7 -7
  274. package/src/app/core/register/{modal/modal-register.d.ts → register.modal.d.ts} +2 -2
  275. package/src/app/core/register/register.module.d.ts +6 -6
  276. package/src/app/core/settings/settings.module.d.ts +10 -0
  277. package/src/app/core/table/table.module.d.ts +10 -0
  278. package/src/app/shared/shared.module.d.ts +2 -1
  279. package/src/app/vendor.d.ts +1 -0
  280. package/esm2020/src/app/admin/users/list/users.module.mjs +0 -58
  281. package/esm2020/src/app/core/about/modal-about.mjs +0 -71
  282. package/esm2020/src/app/core/account/account.mjs +0 -230
  283. package/esm2020/src/app/core/auth/form/form-auth.mjs +0 -131
  284. package/esm2020/src/app/core/auth/modal/modal-auth.mjs +0 -72
  285. package/esm2020/src/app/core/form/editor.class.mjs +0 -675
  286. package/esm2020/src/app/core/form/entity-editor-modal.class.mjs +0 -421
  287. package/esm2020/src/app/core/form/entity-editor.class.mjs +0 -646
  288. package/esm2020/src/app/core/form/list.form.mjs +0 -222
  289. package/esm2020/src/app/core/register/confirm/confirm.mjs +0 -81
  290. package/esm2020/src/app/core/register/form/form-register.mjs +0 -181
  291. package/esm2020/src/app/core/register/modal/modal-register.mjs +0 -52
  292. package/esm2020/src/app/core/text-popover/testing/text-popover.testing.module.mjs +0 -45
  293. package/src/app/admin/users/list/users.module.d.ts +0 -14
@@ -32,9 +32,9 @@ export class CustomReuseStrategy extends IonicRouteStrategy {
32
32
  return result;
33
33
  }
34
34
  }
35
- CustomReuseStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: CustomReuseStrategy, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
36
- CustomReuseStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: CustomReuseStrategy });
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: CustomReuseStrategy, decorators: [{
35
+ CustomReuseStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: CustomReuseStrategy, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
36
+ CustomReuseStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: CustomReuseStrategy });
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: CustomReuseStrategy, decorators: [{
38
38
  type: Injectable
39
39
  }] });
40
40
  export class SharedRoutingModule {
@@ -42,13 +42,13 @@ export class SharedRoutingModule {
42
42
  console.debug('[shared-routing] Creating module...');
43
43
  }
44
44
  }
45
- SharedRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: SharedRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
46
- SharedRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.5", ngImport: i0, type: SharedRoutingModule, imports: [RouterModule] });
47
- SharedRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: SharedRoutingModule, providers: [
45
+ SharedRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: SharedRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
46
+ SharedRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.8", ngImport: i0, type: SharedRoutingModule, imports: [RouterModule] });
47
+ SharedRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: SharedRoutingModule, providers: [
48
48
  { provide: RouteReuseStrategy, useClass: CustomReuseStrategy },
49
49
  { provide: ComponentDirtyGuard, useClass: ComponentDirtyGuard }
50
50
  ], imports: [RouterModule] });
51
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: SharedRoutingModule, decorators: [{
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: SharedRoutingModule, decorators: [{
52
52
  type: NgModule,
53
53
  args: [{
54
54
  imports: [
@@ -40,6 +40,7 @@ import { SharedTestsPage } from './testing/tests.page';
40
40
  import { APP_STORAGE } from './services/storage/storage.utils';
41
41
  import { StorageService } from './services/storage/storage.service';
42
42
  import { SharedToolbarModule } from './toolbar/toolbar.module';
43
+ import { NgxJdenticonModule } from 'ngx-jdenticon';
43
44
  import * as i0 from "@angular/core";
44
45
  export function scrollFactory(overlay) {
45
46
  return () => overlay.scrollStrategies.close();
@@ -83,8 +84,8 @@ export class SharedModule {
83
84
  };
84
85
  }
85
86
  }
86
- SharedModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: SharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
87
- SharedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.5", ngImport: i0, type: SharedModule, declarations: [
87
+ SharedModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: SharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
88
+ SharedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.8", ngImport: i0, type: SharedModule, declarations: [
88
89
  // Components
89
90
  AppFormField,
90
91
  AppLoadingSpinner,
@@ -112,6 +113,7 @@ SharedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
112
113
  TextMaskModule,
113
114
  DragDropModule,
114
115
  MarkdownModule,
116
+ NgxJdenticonModule,
115
117
  // Sub-modules
116
118
  SharedMaterialModule,
117
119
  SharedDirectivesModule,
@@ -125,7 +127,7 @@ SharedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
125
127
  UploadFileComponent,
126
128
  UploadFilePopover,
127
129
  SharedTestsPage] });
128
- SharedModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: SharedModule, imports: [CommonModule,
130
+ SharedModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: SharedModule, imports: [CommonModule,
129
131
  IonicModule,
130
132
  ReactiveFormsModule,
131
133
  TranslateModule,
@@ -146,13 +148,14 @@ SharedModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
146
148
  TextMaskModule,
147
149
  DragDropModule,
148
150
  MarkdownModule,
151
+ NgxJdenticonModule,
149
152
  // Sub-modules
150
153
  SharedMaterialModule,
151
154
  SharedDirectivesModule,
152
155
  SharedPipesModule,
153
156
  SharedHotkeysModule,
154
157
  SharedToolbarModule] });
155
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: SharedModule, decorators: [{
158
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: SharedModule, decorators: [{
156
159
  type: NgModule,
157
160
  args: [{
158
161
  imports: [
@@ -189,6 +192,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImpor
189
192
  TextMaskModule,
190
193
  DragDropModule,
191
194
  MarkdownModule,
195
+ NgxJdenticonModule,
192
196
  // Sub-modules
193
197
  SharedMaterialModule,
194
198
  SharedDirectivesModule,
@@ -205,4 +209,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImpor
205
209
  ]
206
210
  }]
207
211
  }] });
208
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3NoYXJlZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFzQixRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxlQUFlLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDN0QsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sOENBQThDLENBQUM7QUFDOUUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDdkUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDbkQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUMs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QUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxlQUFlO3dCQUNmLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQixjQUFjO3dCQUNkLGNBQWM7d0JBQ2QsY0FBYzt3QkFFZCxjQUFjO3dCQUNkLG9CQUFvQjt3QkFDcEIsc0JBQXNCO3dCQUN0QixpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUVuQixhQUFhO3dCQUNiLFlBQVk7d0JBQ1osaUJBQWlCO3dCQUNqQixZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQixlQUFlO3FCQUNoQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1NoYXJlZE1hdGVyaWFsTW9kdWxlfSBmcm9tICcuL21hdGVyaWFsL21hdGVyaWFsLm1vZHVsZSc7XG5pbXBvcnQge1JlYWN0aXZlRm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7SW9uaWNNb2R1bGV9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7RGF0ZUZvcm1hdFBpcGV9IGZyb20gJy4vcGlwZXMvZGF0ZS1mb3JtYXQucGlwZSc7XG5pbXBvcnQge0RhdGVGcm9tTm93UGlwZX0gZnJvbSAnLi9waXBlcy9kYXRlLWZyb20tbm93LnBpcGUnO1xuaW1wb3J0IHtUZXh0TWFza01vZHVsZX0gZnJvbSAnYW5ndWxhcjItdGV4dC1tYXNrJztcbmltcG9ydCB7TWF0UGFnaW5hdG9ySW50bH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcbmltcG9ydCB7TWF0UGFnaW5hdG9ySTE4bn0gZnJvbSAnLi9tYXRlcmlhbC9wYWdpbmF0b3IvbWF0ZXJpYWwucGFnaW5hdG9yLWkxOG4nO1xuaW1wb3J0IHtQcm9ncmVzc0JhclNlcnZpY2V9IGZyb20gJy4vc2VydmljZXMvcHJvZ3Jlc3MtYmFyLnNlcnZpY2UnO1xuaW1wb3J0IHtIVFRQX0lOVEVSQ0VQVE9SU30gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtQcm9ncmVzc0ludGVyY2VwdG9yfSBmcm9tICcuL2ludGVyY2VwdG9ycy9wcm9nZXNzLmludGVyY2VwdG9yJztcbmltcG9ydCB7Q29sb3JQaWNrZXJNb2R1bGV9IGZyb20gJ25neC1jb2xvci1waWNrZXInO1xuaW1wb3J0IHtBcHBGb3JtRmllbGR9IGZyb20gJy4vZm9ybS9maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHtBdWRpb1Byb3ZpZGVyfSBmcm9tICcuL2F1ZGlvL2F1ZGlvJztcbmltcG9ydCB7Q2xvc2VTY3JvbGxTdHJhdGVneSwgRnVsbHNjcmVlbk92ZXJsYXlDb250YWluZXIsIE92ZXJsYXksIE92ZXJsYXlDb250YWluZXJ9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7U2hhcmVkSG90a2V5c01vZHVsZX0gZnJvbSAnLi9ob3RrZXlzL3NoYXJlZC1ob3RrZXlzLm1vZHVsZSc7XG5pbXBvcnQge0ZpbGVTZXJ2aWNlfSBmcm9tICcuL2ZpbGUvZmlsZS5zZXJ2aWNlJztcbmltcG9ydCB7RHJhZ0Ryb3BNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHtNQVRfQVVUT0NPTVBMRVRFX0RFRkFVTFRfT1BUSU9OUywgTUFUX0FVVE9DT01QTEVURV9TQ1JPTExfU1RSQVRFR1l9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQge01BVF9TRUxFQ1RfU0NST0xMX1NUUkFURUdZfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHtTaGFyZWREaXJlY3RpdmVzTW9kdWxlfSBmcm9tICcuL2RpcmVjdGl2ZXMvZGlyZWN0aXZlcy5tb2R1bGUnO1xuaW1wb3J0IHtTaGFyZWRQaXBlc01vZHVsZX0gZnJvbSAnLi9waXBlcy9waXBlcy5tb2R1bGUnO1xuaW1wb3J0IHtBcHBMb2FkaW5nU3Bpbm5lcn0gZnJvbSAnLi9mb3JtL2xvYWRpbmctc3Bpbm5lcic7XG5pbXBvcnQge0RhdGVEaWZmRHVyYXRpb25QaXBlfSBmcm9tICcuL3BpcGVzL2RhdGUtZGlmZi1kdXJhdGlvbi5waXBlJztcbmltcG9ydCB7TGF0aXR1ZGVGb3JtYXRQaXBlLCBMYXRMb25nRm9ybWF0UGlwZSwgTG9uZ2l0dWRlRm9ybWF0UGlwZX0gZnJvbSAnLi9waXBlcy9sYXRsb25nLWZvcm1hdC5waXBlJztcbmltcG9ydCB7SGlnaGxpZ2h0UGlwZX0gZnJvbSAnLi9waXBlcy9oaWdobGlnaHQucGlwZSc7XG5pbXBvcnQge051bWJlckZvcm1hdFBpcGV9IGZyb20gJy4vcGlwZXMvbnVtYmVyLWZvcm1hdC5waXBlJztcbmltcG9ydCB7TWFya2Rvd25Nb2R1bGV9IGZyb20gJ25neC1tYXJrZG93bic7XG5pbXBvcnQge0FwcEhlbHBNb2RhbH0gZnJvbSAnLi9oZWxwL2hlbHAubW9kYWwnO1xuaW1wb3J0IHtFbnZpcm9ubWVudCwgRU5WSVJPTk1FTlR9IGZyb20gJy4uLy4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudC5jbGFzcyc7XG5pbXBvcnQge1RyYW5zbGF0ZUNvbnRleHRTZXJ2aWNlfSBmcm9tICcuL3NlcnZpY2VzL3RyYW5zbGF0ZS1jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHtNYXRTdGVwcGVySW50bH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc3RlcHBlcic7XG5pbXBvcnQge01hdFN0ZXBwZXJJMThufSBmcm9tICcuL21hdGVyaWFsL3N0ZXBwZXIvbWF0ZXJpYWwuc3RlcHBlci1pMThuJztcbmltcG9ydCB7VXBsb2FkRmlsZUNvbXBvbmVudH0gZnJvbSAnLi91cGxvYWQtZmlsZS91cGxvYWQtZmlsZS5jb21wb25lbnQnO1xuaW1wb3J0IHtVcGxvYWRGaWxlUG9wb3Zlcn0gZnJvbSAnLi91cGxvYWQtZmlsZS91cGxvYWQtZmlsZS1wb3BvdmVyLmNvbXBvbmVudCc7XG5pbXBvcnQge1NoYXJlZFRlc3RzUGFnZX0gZnJvbSAnLi90ZXN0aW5nL3Rlc3RzLnBhZ2UnO1xuaW1wb3J0IHtBUFBfU1RPUkFHRX0gZnJvbSAnLi9zZXJ2aWNlcy9zdG9yYWdlL3N0b3JhZ2UudXRpbHMnO1xuaW1wb3J0IHtTdG9yYWdlU2VydmljZX0gZnJvbSAnLi9zZXJ2aWNlcy9zdG9yYWdlL3N0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQge1NoYXJlZFRvb2xiYXJNb2R1bGV9IGZyb20gJy4vdG9vbGJhci90b29sYmFyLm1vZHVsZSc7XG5cblxuZXhwb3J0IGZ1bmN0aW9uIHNjcm9sbEZhY3Rvcnkob3ZlcmxheTogT3ZlcmxheSk6ICgpID0+IENsb3NlU2Nyb2xsU3RyYXRlZ3kge1xuICByZXR1cm4gKCkgPT4gb3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLmNsb3NlKCk7XG59XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSW9uaWNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgQ29sb3JQaWNrZXJNb2R1bGUsXG4gICAgVGV4dE1hc2tNb2R1bGUsXG4gICAgRHJhZ0Ryb3BNb2R1bGUsXG4gICAgTWFya2Rvd25Nb2R1bGUsXG5cbiAgICAvLyBTdWIgbW9kdWxlc1xuICAgIFNoYXJlZE1hdGVyaWFsTW9kdWxlLFxuICAgIFNoYXJlZERpcmVjdGl2ZXNNb2R1bGUsXG4gICAgU2hhcmVkUGlwZXNNb2R1bGUsXG4gICAgU2hhcmVkSG90a2V5c01vZHVsZSxcbiAgICBTaGFyZWRUb29sYmFyTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIC8vIENvbXBvbmVudHNcbiAgICBBcHBGb3JtRmllbGQsXG4gICAgQXBwTG9hZGluZ1NwaW5uZXIsXG4gICAgQXBwSGVscE1vZGFsLFxuICAgIFVwbG9hZEZpbGVDb21wb25lbnQsXG4gICAgVXBsb2FkRmlsZVBvcG92ZXIsXG4gICAgU2hhcmVkVGVzdHNQYWdlLFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIElvbmljTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIENvbG9yUGlja2VyTW9kdWxlLFxuICAgIFRleHRNYXNrTW9kdWxlLFxuICAgIERyYWdEcm9wTW9kdWxlLFxuICAgIE1hcmtkb3duTW9kdWxlLFxuXG4gICAgLy8gU3ViLW1vZHVsZXNcbiAgICBTaGFyZWRNYXRlcmlhbE1vZHVsZSxcbiAgICBTaGFyZWREaXJlY3RpdmVzTW9kdWxlLFxuICAgIFNoYXJlZFBpcGVzTW9kdWxlLFxuICAgIFNoYXJlZEhvdGtleXNNb2R1bGUsXG4gICAgU2hhcmVkVG9vbGJhck1vZHVsZSxcblxuICAgIC8vIENvbXBvbmVudHNcbiAgICBBcHBGb3JtRmllbGQsXG4gICAgQXBwTG9hZGluZ1NwaW5uZXIsXG4gICAgQXBwSGVscE1vZGFsLFxuICAgIFVwbG9hZEZpbGVDb21wb25lbnQsXG4gICAgVXBsb2FkRmlsZVBvcG92ZXIsXG4gICAgU2hhcmVkVGVzdHNQYWdlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgU2hhcmVkTW9kdWxlIHtcblxuICBzdGF0aWMgZm9yUm9vdChlbnZpcm9ubWVudDogRW52aXJvbm1lbnQpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFNoYXJlZE1vZHVsZT4ge1xuICAgIGNvbnNvbGUuZGVidWcoJ1tzaGFyZWRdIENyZWF0aW5nIG1vZHVsZSAocm9vdCknKTtcblxuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogU2hhcmVkTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG5cbiAgICAgICAgeyBwcm92aWRlOiBFTlZJUk9OTUVOVCwgdXNlVmFsdWU6IGVudmlyb25tZW50IH0sXG4gICAgICAgIHsgcHJvdmlkZTogU3RvcmFnZVNlcnZpY2UsIHVzZUNsYXNzOiBTdG9yYWdlU2VydmljZSwgZGVwczogW0VOVklST05NRU5UXX0sXG4gICAgICAgIHsgcHJvdmlkZTogQVBQX1NUT1JBR0UsIHVzZUV4aXN0aW5nOiBTdG9yYWdlU2VydmljZX0sXG5cbiAgICAgICAgU3RvcmFnZVNlcnZpY2UsXG4gICAgICAgIFByb2dyZXNzQmFyU2VydmljZSxcbiAgICAgICAgQXVkaW9Qcm92aWRlcixcbiAgICAgICAgRmlsZVNlcnZpY2UsXG4gICAgICAgIFRyYW5zbGF0ZUNvbnRleHRTZXJ2aWNlLFxuXG4gICAgICAgIC8vIEV4cG9ydCBQaXBlcyBhcyBwcm92aWRlcnNcbiAgICAgICAgRGF0ZUZvcm1hdFBpcGUsXG4gICAgICAgIERhdGVGcm9tTm93UGlwZSxcbiAgICAgICAgRGF0ZURpZmZEdXJhdGlvblBpcGUsXG4gICAgICAgIExhdExvbmdGb3JtYXRQaXBlLFxuICAgICAgICBMYXRpdHVkZUZvcm1hdFBpcGUsXG4gICAgICAgIExvbmdpdHVkZUZvcm1hdFBpcGUsXG4gICAgICAgIEhpZ2hsaWdodFBpcGUsXG4gICAgICAgIE51bWJlckZvcm1hdFBpcGUsXG5cbiAgICAgICAgeyBwcm92aWRlOiBPdmVybGF5Q29udGFpbmVyLCB1c2VDbGFzczogRnVsbHNjcmVlbk92ZXJsYXlDb250YWluZXIgfSxcbiAgICAgICAgeyBwcm92aWRlOiBIVFRQX0lOVEVSQ0VQVE9SUywgdXNlQ2xhc3M6IFByb2dyZXNzSW50ZXJjZXB0b3IsIG11bHRpOiB0cnVlLCBkZXBzOiBbUHJvZ3Jlc3NCYXJTZXJ2aWNlXSB9LFxuICAgICAgICB7IHByb3ZpZGU6IE1hdFBhZ2luYXRvckludGwsIHVzZUNsYXNzOiBNYXRQYWdpbmF0b3JJMThuLCBkZXBzOiBbVHJhbnNsYXRlU2VydmljZV0gfSxcbiAgICAgICAgeyBwcm92aWRlOiBNYXRTdGVwcGVySW50bCwgdXNlQ2xhc3M6IE1hdFN0ZXBwZXJJMThuLCBkZXBzOiBbVHJhbnNsYXRlU2VydmljZV0gfSxcblxuICAgICAgICAvLyBGSVhNRTogdHJ5IHRvIGZvcmNlIGEgY3VzdG9tIG92ZXJsYXkgZm9yIGF1dG9jb21wbGV0ZSwgYmVjYXVzZSBvZiB0aGVyZSBpcyBhIGJ1ZyB3aGVuIHVzaW5nIGluc2lkZSBhbiBpb25pYyBtb2RhbFxuICAgICAgICAvL3sgcHJvdmlkZTogT3ZlcmxheSwgdXNlQ2xhc3M6IE92ZXJsYXl9LFxuICAgICAgICB7IHByb3ZpZGU6IE1BVF9BVVRPQ09NUExFVEVfU0NST0xMX1NUUkFURUdZLCB1c2VGYWN0b3J5OiBzY3JvbGxGYWN0b3J5LCBkZXBzOiBbT3ZlcmxheV0gfSxcbiAgICAgICAgeyBwcm92aWRlOiBNQVRfQVVUT0NPTVBMRVRFX0RFRkFVTFRfT1BUSU9OUywgdXNlVmFsdWU6IHtcbiAgICAgICAgICAgIGF1dG9BY3RpdmVGaXJzdE9wdGlvbjogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgeyBwcm92aWRlOiBNQVRfU0VMRUNUX1NDUk9MTF9TVFJBVEVHWSwgdXNlRmFjdG9yeTogc2Nyb2xsRmFjdG9yeSwgZGVwczogW092ZXJsYXldIH1cbiAgICAgIF1cbiAgICB9O1xuICB9XG59XG4iXX0=
212
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3NoYXJlZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFzQixRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxlQUFlLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDN0QsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sOENBQThDLENBQUM7QUFDOUUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDdkUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDbkQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUMs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WUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLGlCQUFpQjt3QkFDakIsZUFBZTtxQkFDaEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxlQUFlO3dCQUNmLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQixjQUFjO3dCQUNkLGNBQWM7d0JBQ2QsY0FBYzt3QkFDZCxrQkFBa0I7d0JBRWxCLGNBQWM7d0JBQ2Qsb0JBQW9CO3dCQUNwQixzQkFBc0I7d0JBQ3RCLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBRW5CLGFBQWE7d0JBQ2IsWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixpQkFBaUI7d0JBQ2pCLGVBQWU7cUJBQ2hCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7U2hhcmVkTWF0ZXJpYWxNb2R1bGV9IGZyb20gJy4vbWF0ZXJpYWwvbWF0ZXJpYWwubW9kdWxlJztcbmltcG9ydCB7UmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtJb25pY01vZHVsZX0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHtEYXRlRm9ybWF0UGlwZX0gZnJvbSAnLi9waXBlcy9kYXRlLWZvcm1hdC5waXBlJztcbmltcG9ydCB7RGF0ZUZyb21Ob3dQaXBlfSBmcm9tICcuL3BpcGVzL2RhdGUtZnJvbS1ub3cucGlwZSc7XG5pbXBvcnQge1RleHRNYXNrTW9kdWxlfSBmcm9tICdhbmd1bGFyMi10ZXh0LW1hc2snO1xuaW1wb3J0IHtNYXRQYWdpbmF0b3JJbnRsfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xuaW1wb3J0IHtNYXRQYWdpbmF0b3JJMThufSBmcm9tICcuL21hdGVyaWFsL3BhZ2luYXRvci9tYXRlcmlhbC5wYWdpbmF0b3ItaTE4bic7XG5pbXBvcnQge1Byb2dyZXNzQmFyU2VydmljZX0gZnJvbSAnLi9zZXJ2aWNlcy9wcm9ncmVzcy1iYXIuc2VydmljZSc7XG5pbXBvcnQge0hUVFBfSU5URVJDRVBUT1JTfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge1Byb2dyZXNzSW50ZXJjZXB0b3J9IGZyb20gJy4vaW50ZXJjZXB0b3JzL3Byb2dlc3MuaW50ZXJjZXB0b3InO1xuaW1wb3J0IHtDb2xvclBpY2tlck1vZHVsZX0gZnJvbSAnbmd4LWNvbG9yLXBpY2tlcic7XG5pbXBvcnQge0FwcEZvcm1GaWVsZH0gZnJvbSAnLi9mb3JtL2ZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQge0F1ZGlvUHJvdmlkZXJ9IGZyb20gJy4vYXVkaW8vYXVkaW8nO1xuaW1wb3J0IHtDbG9zZVNjcm9sbFN0cmF0ZWd5LCBGdWxsc2NyZWVuT3ZlcmxheUNvbnRhaW5lciwgT3ZlcmxheSwgT3ZlcmxheUNvbnRhaW5lcn0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHtTaGFyZWRIb3RrZXlzTW9kdWxlfSBmcm9tICcuL2hvdGtleXMvc2hhcmVkLWhvdGtleXMubW9kdWxlJztcbmltcG9ydCB7RmlsZVNlcnZpY2V9IGZyb20gJy4vZmlsZS9maWxlLnNlcnZpY2UnO1xuaW1wb3J0IHtEcmFnRHJvcE1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQge01BVF9BVVRPQ09NUExFVEVfREVGQVVMVF9PUFRJT05TLCBNQVRfQVVUT0NPTVBMRVRFX1NDUk9MTF9TVFJBVEVHWX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7TUFUX1NFTEVDVF9TQ1JPTExfU1RSQVRFR1l9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQge1NoYXJlZERpcmVjdGl2ZXNNb2R1bGV9IGZyb20gJy4vZGlyZWN0aXZlcy9kaXJlY3RpdmVzLm1vZHVsZSc7XG5pbXBvcnQge1NoYXJlZFBpcGVzTW9kdWxlfSBmcm9tICcuL3BpcGVzL3BpcGVzLm1vZHVsZSc7XG5pbXBvcnQge0FwcExvYWRpbmdTcGlubmVyfSBmcm9tICcuL2Zvcm0vbG9hZGluZy1zcGlubmVyJztcbmltcG9ydCB7RGF0ZURpZmZEdXJhdGlvblBpcGV9IGZyb20gJy4vcGlwZXMvZGF0ZS1kaWZmLWR1cmF0aW9uLnBpcGUnO1xuaW1wb3J0IHtMYXRpdHVkZUZvcm1hdFBpcGUsIExhdExvbmdGb3JtYXRQaXBlLCBMb25naXR1ZGVGb3JtYXRQaXBlfSBmcm9tICcuL3BpcGVzL2xhdGxvbmctZm9ybWF0LnBpcGUnO1xuaW1wb3J0IHtIaWdobGlnaHRQaXBlfSBmcm9tICcuL3BpcGVzL2hpZ2hsaWdodC5waXBlJztcbmltcG9ydCB7TnVtYmVyRm9ybWF0UGlwZX0gZnJvbSAnLi9waXBlcy9udW1iZXItZm9ybWF0LnBpcGUnO1xuaW1wb3J0IHtNYXJrZG93bk1vZHVsZX0gZnJvbSAnbmd4LW1hcmtkb3duJztcbmltcG9ydCB7QXBwSGVscE1vZGFsfSBmcm9tICcuL2hlbHAvaGVscC5tb2RhbCc7XG5pbXBvcnQge0Vudmlyb25tZW50LCBFTlZJUk9OTUVOVH0gZnJvbSAnLi4vLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50LmNsYXNzJztcbmltcG9ydCB7VHJhbnNsYXRlQ29udGV4dFNlcnZpY2V9IGZyb20gJy4vc2VydmljZXMvdHJhbnNsYXRlLWNvbnRleHQuc2VydmljZSc7XG5pbXBvcnQge01hdFN0ZXBwZXJJbnRsfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zdGVwcGVyJztcbmltcG9ydCB7TWF0U3RlcHBlckkxOG59IGZyb20gJy4vbWF0ZXJpYWwvc3RlcHBlci9tYXRlcmlhbC5zdGVwcGVyLWkxOG4nO1xuaW1wb3J0IHtVcGxvYWRGaWxlQ29tcG9uZW50fSBmcm9tICcuL3VwbG9hZC1maWxlL3VwbG9hZC1maWxlLmNvbXBvbmVudCc7XG5pbXBvcnQge1VwbG9hZEZpbGVQb3BvdmVyfSBmcm9tICcuL3VwbG9hZC1maWxlL3VwbG9hZC1maWxlLXBvcG92ZXIuY29tcG9uZW50JztcbmltcG9ydCB7U2hhcmVkVGVzdHNQYWdlfSBmcm9tICcuL3Rlc3RpbmcvdGVzdHMucGFnZSc7XG5pbXBvcnQge0FQUF9TVE9SQUdFfSBmcm9tICcuL3NlcnZpY2VzL3N0b3JhZ2Uvc3RvcmFnZS51dGlscyc7XG5pbXBvcnQge1N0b3JhZ2VTZXJ2aWNlfSBmcm9tICcuL3NlcnZpY2VzL3N0b3JhZ2Uvc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7U2hhcmVkVG9vbGJhck1vZHVsZX0gZnJvbSAnLi90b29sYmFyL3Rvb2xiYXIubW9kdWxlJztcbmltcG9ydCB7Tmd4SmRlbnRpY29uTW9kdWxlfSBmcm9tICduZ3gtamRlbnRpY29uJztcblxuXG5leHBvcnQgZnVuY3Rpb24gc2Nyb2xsRmFjdG9yeShvdmVybGF5OiBPdmVybGF5KTogKCkgPT4gQ2xvc2VTY3JvbGxTdHJhdGVneSB7XG4gIHJldHVybiAoKSA9PiBvdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMuY2xvc2UoKTtcbn1cblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBJb25pY01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBDb2xvclBpY2tlck1vZHVsZSxcbiAgICBUZXh0TWFza01vZHVsZSxcbiAgICBEcmFnRHJvcE1vZHVsZSxcbiAgICBNYXJrZG93bk1vZHVsZSxcblxuICAgIC8vIFN1YiBtb2R1bGVzXG4gICAgU2hhcmVkTWF0ZXJpYWxNb2R1bGUsXG4gICAgU2hhcmVkRGlyZWN0aXZlc01vZHVsZSxcbiAgICBTaGFyZWRQaXBlc01vZHVsZSxcbiAgICBTaGFyZWRIb3RrZXlzTW9kdWxlLFxuICAgIFNoYXJlZFRvb2xiYXJNb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgLy8gQ29tcG9uZW50c1xuICAgIEFwcEZvcm1GaWVsZCxcbiAgICBBcHBMb2FkaW5nU3Bpbm5lcixcbiAgICBBcHBIZWxwTW9kYWwsXG4gICAgVXBsb2FkRmlsZUNvbXBvbmVudCxcbiAgICBVcGxvYWRGaWxlUG9wb3ZlcixcbiAgICBTaGFyZWRUZXN0c1BhZ2UsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSW9uaWNNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgQ29sb3JQaWNrZXJNb2R1bGUsXG4gICAgVGV4dE1hc2tNb2R1bGUsXG4gICAgRHJhZ0Ryb3BNb2R1bGUsXG4gICAgTWFya2Rvd25Nb2R1bGUsXG4gICAgTmd4SmRlbnRpY29uTW9kdWxlLFxuXG4gICAgLy8gU3ViLW1vZHVsZXNcbiAgICBTaGFyZWRNYXRlcmlhbE1vZHVsZSxcbiAgICBTaGFyZWREaXJlY3RpdmVzTW9kdWxlLFxuICAgIFNoYXJlZFBpcGVzTW9kdWxlLFxuICAgIFNoYXJlZEhvdGtleXNNb2R1bGUsXG4gICAgU2hhcmVkVG9vbGJhck1vZHVsZSxcblxuICAgIC8vIENvbXBvbmVudHNcbiAgICBBcHBGb3JtRmllbGQsXG4gICAgQXBwTG9hZGluZ1NwaW5uZXIsXG4gICAgQXBwSGVscE1vZGFsLFxuICAgIFVwbG9hZEZpbGVDb21wb25lbnQsXG4gICAgVXBsb2FkRmlsZVBvcG92ZXIsXG4gICAgU2hhcmVkVGVzdHNQYWdlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgU2hhcmVkTW9kdWxlIHtcblxuICBzdGF0aWMgZm9yUm9vdChlbnZpcm9ubWVudDogRW52aXJvbm1lbnQpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFNoYXJlZE1vZHVsZT4ge1xuICAgIGNvbnNvbGUuZGVidWcoJ1tzaGFyZWRdIENyZWF0aW5nIG1vZHVsZSAocm9vdCknKTtcblxuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogU2hhcmVkTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG5cbiAgICAgICAgeyBwcm92aWRlOiBFTlZJUk9OTUVOVCwgdXNlVmFsdWU6IGVudmlyb25tZW50IH0sXG4gICAgICAgIHsgcHJvdmlkZTogU3RvcmFnZVNlcnZpY2UsIHVzZUNsYXNzOiBTdG9yYWdlU2VydmljZSwgZGVwczogW0VOVklST05NRU5UXX0sXG4gICAgICAgIHsgcHJvdmlkZTogQVBQX1NUT1JBR0UsIHVzZUV4aXN0aW5nOiBTdG9yYWdlU2VydmljZX0sXG5cbiAgICAgICAgU3RvcmFnZVNlcnZpY2UsXG4gICAgICAgIFByb2dyZXNzQmFyU2VydmljZSxcbiAgICAgICAgQXVkaW9Qcm92aWRlcixcbiAgICAgICAgRmlsZVNlcnZpY2UsXG4gICAgICAgIFRyYW5zbGF0ZUNvbnRleHRTZXJ2aWNlLFxuXG4gICAgICAgIC8vIEV4cG9ydCBQaXBlcyBhcyBwcm92aWRlcnNcbiAgICAgICAgRGF0ZUZvcm1hdFBpcGUsXG4gICAgICAgIERhdGVGcm9tTm93UGlwZSxcbiAgICAgICAgRGF0ZURpZmZEdXJhdGlvblBpcGUsXG4gICAgICAgIExhdExvbmdGb3JtYXRQaXBlLFxuICAgICAgICBMYXRpdHVkZUZvcm1hdFBpcGUsXG4gICAgICAgIExvbmdpdHVkZUZvcm1hdFBpcGUsXG4gICAgICAgIEhpZ2hsaWdodFBpcGUsXG4gICAgICAgIE51bWJlckZvcm1hdFBpcGUsXG5cbiAgICAgICAgeyBwcm92aWRlOiBPdmVybGF5Q29udGFpbmVyLCB1c2VDbGFzczogRnVsbHNjcmVlbk92ZXJsYXlDb250YWluZXIgfSxcbiAgICAgICAgeyBwcm92aWRlOiBIVFRQX0lOVEVSQ0VQVE9SUywgdXNlQ2xhc3M6IFByb2dyZXNzSW50ZXJjZXB0b3IsIG11bHRpOiB0cnVlLCBkZXBzOiBbUHJvZ3Jlc3NCYXJTZXJ2aWNlXSB9LFxuICAgICAgICB7IHByb3ZpZGU6IE1hdFBhZ2luYXRvckludGwsIHVzZUNsYXNzOiBNYXRQYWdpbmF0b3JJMThuLCBkZXBzOiBbVHJhbnNsYXRlU2VydmljZV0gfSxcbiAgICAgICAgeyBwcm92aWRlOiBNYXRTdGVwcGVySW50bCwgdXNlQ2xhc3M6IE1hdFN0ZXBwZXJJMThuLCBkZXBzOiBbVHJhbnNsYXRlU2VydmljZV0gfSxcblxuICAgICAgICAvLyBGSVhNRTogdHJ5IHRvIGZvcmNlIGEgY3VzdG9tIG92ZXJsYXkgZm9yIGF1dG9jb21wbGV0ZSwgYmVjYXVzZSBvZiB0aGVyZSBpcyBhIGJ1ZyB3aGVuIHVzaW5nIGluc2lkZSBhbiBpb25pYyBtb2RhbFxuICAgICAgICAvL3sgcHJvdmlkZTogT3ZlcmxheSwgdXNlQ2xhc3M6IE92ZXJsYXl9LFxuICAgICAgICB7IHByb3ZpZGU6IE1BVF9BVVRPQ09NUExFVEVfU0NST0xMX1NUUkFURUdZLCB1c2VGYWN0b3J5OiBzY3JvbGxGYWN0b3J5LCBkZXBzOiBbT3ZlcmxheV0gfSxcbiAgICAgICAgeyBwcm92aWRlOiBNQVRfQVVUT0NPTVBMRVRFX0RFRkFVTFRfT1BUSU9OUywgdXNlVmFsdWU6IHtcbiAgICAgICAgICAgIGF1dG9BY3RpdmVGaXJzdE9wdGlvbjogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgeyBwcm92aWRlOiBNQVRfU0VMRUNUX1NDUk9MTF9TVFJBVEVHWSwgdXNlRmFjdG9yeTogc2Nyb2xsRmFjdG9yeSwgZGVwczogW092ZXJsYXldIH1cbiAgICAgIF1cbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -19,8 +19,8 @@ export const SHARED_TESTING_PAGES = [
19
19
  ];
20
20
  export class SharedTestingModule {
21
21
  }
22
- SharedTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: SharedTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
23
- SharedTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.5", ngImport: i0, type: SharedTestingModule, imports: [CommonModule,
22
+ SharedTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: SharedTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
23
+ SharedTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.8", ngImport: i0, type: SharedTestingModule, imports: [CommonModule,
24
24
  IonicModule, i1.TranslateModule,
25
25
  // Testing sub-modules
26
26
  MaterialTestingModule,
@@ -34,7 +34,7 @@ SharedTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", ver
34
34
  UploadFileTestingModule,
35
35
  ImageGalleryTestingModule,
36
36
  AudioTestingModule] });
37
- SharedTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: SharedTestingModule, imports: [CommonModule,
37
+ SharedTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: SharedTestingModule, imports: [CommonModule,
38
38
  IonicModule,
39
39
  TranslateModule.forChild(),
40
40
  // Testing sub-modules
@@ -49,7 +49,7 @@ SharedTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", ver
49
49
  UploadFileTestingModule,
50
50
  ImageGalleryTestingModule,
51
51
  AudioTestingModule] });
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: SharedTestingModule, decorators: [{
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: SharedTestingModule, decorators: [{
53
53
  type: NgModule,
54
54
  args: [{
55
55
  imports: [
@@ -84,9 +84,9 @@ export class ObservableTestPage {
84
84
  this.resultDiv.nativeElement.innerHTML += message + '<br/>';
85
85
  }
86
86
  }
87
- ObservableTestPage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: ObservableTestPage, deps: [], target: i0.ɵɵFactoryTarget.Component });
88
- ObservableTestPage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", type: ObservableTestPage, selector: "app-observable-test", viewQueries: [{ propertyName: "resultDiv", first: true, predicate: ["result"], descendants: true }], ngImport: i0, template: "\n<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Observables test page</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n\n <ion-card>\n <ion-card-header>\n <ion-card-title>waitFor, waitForTrue, waitForFalse</ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <div style=\"display: inline-block\">\n <p>Set options: </p>\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({stopError: false})\">stopError: false</ion-button>\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({stopError: true})\">stopError: true</ion-button>\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({stopError: 'my error'})\">stopError: 'my error'</ion-button>\n\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({timeout: 2000})\">timeout: 2000</ion-button>\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({timeout: null})\">timeout: null</ion-button>\n <br/>\n <p>Call await function: </p>\n <ion-button (click)=\"waitForTrue()\">waitForTrue</ion-button>\n <ion-button (click)=\"firstNotNilPromise()\">firstNotNilPromise</ion-button>\n <br/>\n <p>Send event to source: </p>\n <ion-button (click)=\"emit(true)\">Emit 'true'</ion-button>\n <ion-button (click)=\"emit(false)\">Emit 'false'</ion-button>\n <br/>\n <p>Stop: </p>\n <ion-button color=\"danger\" (click)=\"stop()\">Stop</ion-button>\n </div>\n </ion-card-content>\n </ion-card>\n\n <ion-card>\n <ion-toolbar>\n <ion-title>Running job count: {{runningTaskCount}}</ion-title>\n <ion-button fill=\"outline\" slot=\"end\" (click)=\"result.innerHTML=''\">Clear log</ion-button>\n </ion-toolbar>\n <ion-card-content>\n <div #result style=\"color: var(--ion-color-medium)\">\n </div>\n </ion-card-content>\n </ion-card>\n</ion-content>\n", styles: ["ion-button{text-transform:none!important}\n"], dependencies: [{ kind: "component", type: i1.IonBackButton, selector: "ion-back-button", inputs: ["color", "defaultHref", "disabled", "icon", "mode", "routerAnimation", "text", "type"] }, { kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i1.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i1.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i1.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: i1.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: i1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i1.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i1.IonBackButtonDelegate, selector: "ion-back-button", inputs: ["defaultHref", "routerAnimation"] }] });
89
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: ObservableTestPage, decorators: [{
87
+ ObservableTestPage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ObservableTestPage, deps: [], target: i0.ɵɵFactoryTarget.Component });
88
+ ObservableTestPage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.8", type: ObservableTestPage, selector: "app-observable-test", viewQueries: [{ propertyName: "resultDiv", first: true, predicate: ["result"], descendants: true }], ngImport: i0, template: "\n<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Observables test page</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n\n <ion-card>\n <ion-card-header>\n <ion-card-title>waitFor, waitForTrue, waitForFalse</ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <div style=\"display: inline-block\">\n <p>Set options: </p>\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({stopError: false})\">stopError: false</ion-button>\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({stopError: true})\">stopError: true</ion-button>\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({stopError: 'my error'})\">stopError: 'my error'</ion-button>\n\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({timeout: 2000})\">timeout: 2000</ion-button>\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({timeout: null})\">timeout: null</ion-button>\n <br/>\n <p>Call await function: </p>\n <ion-button (click)=\"waitForTrue()\">waitForTrue</ion-button>\n <ion-button (click)=\"firstNotNilPromise()\">firstNotNilPromise</ion-button>\n <br/>\n <p>Send event to source: </p>\n <ion-button (click)=\"emit(true)\">Emit 'true'</ion-button>\n <ion-button (click)=\"emit(false)\">Emit 'false'</ion-button>\n <br/>\n <p>Stop: </p>\n <ion-button color=\"danger\" (click)=\"stop()\">Stop</ion-button>\n </div>\n </ion-card-content>\n </ion-card>\n\n <ion-card>\n <ion-toolbar>\n <ion-title>Running job count: {{runningTaskCount}}</ion-title>\n <ion-button fill=\"outline\" slot=\"end\" (click)=\"result.innerHTML=''\">Clear log</ion-button>\n </ion-toolbar>\n <ion-card-content>\n <div #result style=\"color: var(--ion-color-medium)\">\n </div>\n </ion-card-content>\n </ion-card>\n</ion-content>\n", styles: ["ion-button{text-transform:none!important}\n"], dependencies: [{ kind: "component", type: i1.IonBackButton, selector: "ion-back-button", inputs: ["color", "defaultHref", "disabled", "icon", "mode", "routerAnimation", "text", "type"] }, { kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i1.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i1.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i1.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: i1.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: i1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i1.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i1.IonBackButtonDelegate, selector: "ion-back-button", inputs: ["defaultHref", "routerAnimation"] }] });
89
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ObservableTestPage, decorators: [{
90
90
  type: Component,
91
91
  args: [{ selector: 'app-observable-test', template: "\n<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Observables test page</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n\n <ion-card>\n <ion-card-header>\n <ion-card-title>waitFor, waitForTrue, waitForFalse</ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <div style=\"display: inline-block\">\n <p>Set options: </p>\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({stopError: false})\">stopError: false</ion-button>\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({stopError: true})\">stopError: true</ion-button>\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({stopError: 'my error'})\">stopError: 'my error'</ion-button>\n\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({timeout: 2000})\">timeout: 2000</ion-button>\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({timeout: null})\">timeout: null</ion-button>\n <br/>\n <p>Call await function: </p>\n <ion-button (click)=\"waitForTrue()\">waitForTrue</ion-button>\n <ion-button (click)=\"firstNotNilPromise()\">firstNotNilPromise</ion-button>\n <br/>\n <p>Send event to source: </p>\n <ion-button (click)=\"emit(true)\">Emit 'true'</ion-button>\n <ion-button (click)=\"emit(false)\">Emit 'false'</ion-button>\n <br/>\n <p>Stop: </p>\n <ion-button color=\"danger\" (click)=\"stop()\">Stop</ion-button>\n </div>\n </ion-card-content>\n </ion-card>\n\n <ion-card>\n <ion-toolbar>\n <ion-title>Running job count: {{runningTaskCount}}</ion-title>\n <ion-button fill=\"outline\" slot=\"end\" (click)=\"result.innerHTML=''\">Clear log</ion-button>\n </ion-toolbar>\n <ion-card-content>\n <div #result style=\"color: var(--ion-color-medium)\">\n </div>\n </ion-card-content>\n </ion-card>\n</ion-content>\n", styles: ["ion-button{text-transform:none!important}\n"] }]
92
92
  }], ctorParameters: function () { return []; }, propDecorators: { resultDiv: [{
@@ -19,9 +19,9 @@ export class SharedTestsPage {
19
19
  });
20
20
  }
21
21
  }
22
- SharedTestsPage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: SharedTestsPage, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }, { token: i2.TranslateService }, { token: APP_TESTING_PAGES, optional: true }], target: i0.ɵɵFactoryTarget.Component });
23
- SharedTestsPage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", type: SharedTestsPage, selector: "app-tests-page", ngImport: i0, template: "\n<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-menu-button></ion-menu-button>\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Tests</ion-title>\n\n </ion-toolbar>\n</ion-header>\n\n<ion-content>\n\n <ion-list *ngIf=\"pages?.length\">\n\n <ng-container *ngFor=\"let item of pages\">\n\n <ion-item-divider *ngIf=\"item.divider; else link\">{{item.label}}</ion-item-divider>\n\n <ng-template #link>\n <ion-item tappable class=\"text-1x\"\n (click)=\"openPage(item.page)\">{{item.label}}</ion-item>\n </ng-template>\n </ng-container>\n </ion-list>\n\n</ion-content>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.IonBackButton, selector: "ion-back-button", inputs: ["color", "defaultHref", "disabled", "icon", "mode", "routerAnimation", "text", "type"] }, { kind: "component", type: i4.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i4.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i4.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i4.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i4.IonItemDivider, selector: "ion-item-divider", inputs: ["color", "mode", "sticky"] }, { kind: "component", type: i4.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i4.IonMenuButton, selector: "ion-menu-button", inputs: ["autoHide", "color", "disabled", "menu", "mode", "type"] }, { kind: "component", type: i4.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i4.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i4.IonBackButtonDelegate, selector: "ion-back-button", inputs: ["defaultHref", "routerAnimation"] }] });
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: SharedTestsPage, decorators: [{
22
+ SharedTestsPage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: SharedTestsPage, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }, { token: i2.TranslateService }, { token: APP_TESTING_PAGES, optional: true }], target: i0.ɵɵFactoryTarget.Component });
23
+ SharedTestsPage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.8", type: SharedTestsPage, selector: "app-tests-page", ngImport: i0, template: "\n<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-menu-button></ion-menu-button>\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Tests</ion-title>\n\n </ion-toolbar>\n</ion-header>\n\n<ion-content>\n\n <ion-list *ngIf=\"pages?.length\">\n\n <ng-container *ngFor=\"let item of pages\">\n\n <ion-item-divider *ngIf=\"item.divider; else link\">{{item.label}}</ion-item-divider>\n\n <ng-template #link>\n <ion-item tappable class=\"text-1x\"\n (click)=\"openPage(item.page)\">{{item.label}}</ion-item>\n </ng-template>\n </ng-container>\n </ion-list>\n\n</ion-content>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.IonBackButton, selector: "ion-back-button", inputs: ["color", "defaultHref", "disabled", "icon", "mode", "routerAnimation", "text", "type"] }, { kind: "component", type: i4.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i4.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i4.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i4.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i4.IonItemDivider, selector: "ion-item-divider", inputs: ["color", "mode", "sticky"] }, { kind: "component", type: i4.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i4.IonMenuButton, selector: "ion-menu-button", inputs: ["autoHide", "color", "disabled", "menu", "mode", "type"] }, { kind: "component", type: i4.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i4.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i4.IonBackButtonDelegate, selector: "ion-back-button", inputs: ["defaultHref", "routerAnimation"] }] });
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: SharedTestsPage, decorators: [{
25
25
  type: Component,
26
26
  args: [{ selector: 'app-tests-page', template: "\n<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-menu-button></ion-menu-button>\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Tests</ion-title>\n\n </ion-toolbar>\n</ion-header>\n\n<ion-content>\n\n <ion-list *ngIf=\"pages?.length\">\n\n <ng-container *ngFor=\"let item of pages\">\n\n <ion-item-divider *ngIf=\"item.divider; else link\">{{item.label}}</ion-item-divider>\n\n <ng-template #link>\n <ion-item tappable class=\"text-1x\"\n (click)=\"openPage(item.page)\">{{item.label}}</ion-item>\n </ng-template>\n </ng-container>\n </ion-list>\n\n</ion-content>\n" }]
27
27
  }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.TranslateService }, { type: undefined, decorators: [{
@@ -42,9 +42,9 @@ export class ToastTestingPage {
42
42
  this.defaultOptions.showCloseButton = !this.defaultOptions.showCloseButton;
43
43
  }
44
44
  }
45
- ToastTestingPage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: ToastTestingPage, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
46
- ToastTestingPage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", type: ToastTestingPage, selector: "toast-testing", ngImport: i0, template: "<ion-toolbar color=\"primary\">\n <ion-title>Toasts</ion-title>\n</ion-toolbar>\n\n<ion-content class=\"ion-padding\">\n\n <p>Toast examples:</p>\n\n <ion-button (click)=\"showToast()\" color=\"dark\">\n default\n </ion-button>\n\n <ion-button (click)=\"showInfo()\" color=\"secondary\">\n info\n </ion-button>\n\n <ion-button (click)=\"showWarning()\" color=\"accent\">\n warning\n </ion-button>\n\n <ion-button (click)=\"showError()\" color=\"danger\">\n error\n </ion-button>\n\n <br/>\n\n\n <ion-list>\n\n\n <ion-item>\n <ion-checkbox slot=\"start\" [value]=\"defaultOptions.showCloseButton\" (ionChange)=\"toggleCloseButton()\"></ion-checkbox>\n <ion-label>Close button ?</ion-label>\n </ion-item>\n </ion-list>\n\n\n</ion-content>\n", dependencies: [{ kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonCheckbox, selector: "ion-checkbox", inputs: ["checked", "color", "disabled", "indeterminate", "mode", "name", "value"] }, { kind: "component", type: i1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i1.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i1.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i1.BooleanValueAccessor, selector: "ion-checkbox,ion-toggle" }] });
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: ToastTestingPage, decorators: [{
45
+ ToastTestingPage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ToastTestingPage, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
46
+ ToastTestingPage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.8", type: ToastTestingPage, selector: "toast-testing", ngImport: i0, template: "<ion-toolbar color=\"primary\">\n <ion-title>Toasts</ion-title>\n</ion-toolbar>\n\n<ion-content class=\"ion-padding\">\n\n <p>Toast examples:</p>\n\n <ion-button (click)=\"showToast()\" color=\"dark\">\n default\n </ion-button>\n\n <ion-button (click)=\"showInfo()\" color=\"secondary\">\n info\n </ion-button>\n\n <ion-button (click)=\"showWarning()\" color=\"accent\">\n warning\n </ion-button>\n\n <ion-button (click)=\"showError()\" color=\"danger\">\n error\n </ion-button>\n\n <br/>\n\n\n <ion-list>\n\n\n <ion-item>\n <ion-checkbox slot=\"start\" [value]=\"defaultOptions.showCloseButton\" (ionChange)=\"toggleCloseButton()\"></ion-checkbox>\n <ion-label>Close button ?</ion-label>\n </ion-item>\n </ion-list>\n\n\n</ion-content>\n", dependencies: [{ kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonCheckbox, selector: "ion-checkbox", inputs: ["checked", "color", "disabled", "indeterminate", "mode", "name", "value"] }, { kind: "component", type: i1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i1.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i1.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i1.BooleanValueAccessor, selector: "ion-checkbox,ion-toggle" }] });
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ToastTestingPage, decorators: [{
48
48
  type: Component,
49
49
  args: [{ selector: 'toast-testing', template: "<ion-toolbar color=\"primary\">\n <ion-title>Toasts</ion-title>\n</ion-toolbar>\n\n<ion-content class=\"ion-padding\">\n\n <p>Toast examples:</p>\n\n <ion-button (click)=\"showToast()\" color=\"dark\">\n default\n </ion-button>\n\n <ion-button (click)=\"showInfo()\" color=\"secondary\">\n info\n </ion-button>\n\n <ion-button (click)=\"showWarning()\" color=\"accent\">\n warning\n </ion-button>\n\n <ion-button (click)=\"showError()\" color=\"danger\">\n error\n </ion-button>\n\n <br/>\n\n\n <ion-list>\n\n\n <ion-item>\n <ion-checkbox slot=\"start\" [value]=\"defaultOptions.showCloseButton\" (ionChange)=\"toggleCloseButton()\"></ion-checkbox>\n <ion-label>Close button ?</ion-label>\n </ion-item>\n </ion-list>\n\n\n</ion-content>\n" }]
50
50
  }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
@@ -16,15 +16,15 @@ const routes = [
16
16
  ];
17
17
  export class ToastTestingModule {
18
18
  }
19
- ToastTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: ToastTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
20
- ToastTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.5", ngImport: i0, type: ToastTestingModule, declarations: [ToastTestingPage], imports: [CommonModule,
19
+ ToastTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ToastTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
20
+ ToastTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.8", ngImport: i0, type: ToastTestingModule, declarations: [ToastTestingPage], imports: [CommonModule,
21
21
  IonicModule, i1.TranslateModule, i2.RouterModule], exports: [RouterModule,
22
22
  ToastTestingPage] });
23
- ToastTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: ToastTestingModule, imports: [CommonModule,
23
+ ToastTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ToastTestingModule, imports: [CommonModule,
24
24
  IonicModule,
25
25
  TranslateModule.forChild(),
26
26
  RouterModule.forChild(routes), RouterModule] });
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: ToastTestingModule, decorators: [{
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ToastTestingModule, decorators: [{
28
28
  type: NgModule,
29
29
  args: [{
30
30
  imports: [
@@ -33,9 +33,9 @@ export class ModalToolbarComponent {
33
33
  this._subscription.unsubscribe();
34
34
  }
35
35
  }
36
- ModalToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: ModalToolbarComponent, deps: [{ token: i1.Hotkeys }], target: i0.ɵɵFactoryTarget.Component });
37
- ModalToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", 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\n (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\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\n *ngIf=\"canValidate\"\n (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", "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 });
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: ModalToolbarComponent, decorators: [{
36
+ ModalToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ModalToolbarComponent, deps: [{ token: i1.Hotkeys }], target: i0.ɵɵFactoryTarget.Component });
37
+ ModalToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.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\n (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\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\n *ngIf=\"canValidate\"\n (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", "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 });
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ModalToolbarComponent, decorators: [{
39
39
  type: Component,
40
40
  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\n (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\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\n *ngIf=\"canValidate\"\n (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" }]
41
41
  }], ctorParameters: function () { return [{ type: i1.Hotkeys }]; }, propDecorators: { modalName: [{
@@ -175,11 +175,11 @@ export class ToolbarComponent {
175
175
  this.onSearch.emit(event);
176
176
  }
177
177
  }
178
- ToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: ToolbarComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }, { token: i2.IonRouterOutlet }, { token: i0.ChangeDetectorRef }, { token: i3.ProgressBarService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
179
- ToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", type: ToolbarComponent, selector: "app-toolbar", inputs: { title: "title", color: "color", class: "class", backHref: "backHref", defaultBackHref: "defaultBackHref", hasValidate: "hasValidate", hasClose: "hasClose", hasSearch: "hasSearch", canGoBack: "canGoBack", canShowMenu: "canShowMenu" }, outputs: { onValidate: "onValidate", onClose: "onClose", onValidateAndClose: "onValidateAndClose", onBackClick: "onBackClick", onSearch: "onSearch" }, providers: [
178
+ ToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ToolbarComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }, { token: i2.IonRouterOutlet }, { token: i0.ChangeDetectorRef }, { token: i3.ProgressBarService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
179
+ ToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.8", type: ToolbarComponent, selector: "app-toolbar", inputs: { title: "title", color: "color", class: "class", backHref: "backHref", defaultBackHref: "defaultBackHref", hasValidate: "hasValidate", hasClose: "hasClose", hasSearch: "hasSearch", canGoBack: "canGoBack", canShowMenu: "canShowMenu" }, outputs: { onValidate: "onValidate", onClose: "onClose", onValidateAndClose: "onValidateAndClose", onBackClick: "onBackClick", onSearch: "onSearch" }, providers: [
180
180
  { provide: ToolbarToken, useExisting: ToolbarComponent }
181
181
  ], 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\n <ion-buttons slot=\"start\">\n\n <!-- back button -->\n <ion-button class=\"back-button\"\n *ngIf=\"canGoBack\"\n (click)=\"doBackClick($event)\"\n routerDirection=\"back\" >\n <ion-icon slot=\"icon-only\" name=\"arrow-back\"></ion-icon>\n </ion-button>\n\n <!-- show menu button -->\n <ion-menu-toggle #menuToggle\n [menu]=\"'left'\"\n [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\"></ng-content>\n\n <ng-content select=\"ion-buttons[slot=end]\"></ng-content>\n\n <ion-buttons slot=\"end\" collapse=\"true\">\n\n <ng-content select=\"[slot=end]\"></ng-content>\n\n <!-- search bar -->\n <ion-searchbar #searchbar animated\n type=\"search\"\n *ngIf=\"hasSearch\"\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 <ion-button (click)=\"toggleSearchBar()\"\n *ngIf=\"hasSearch && !showSearchBar\">\n <ion-icon slot=\"icon-only\" name=\"search\"></ion-icon>\n </ion-button>\n\n <!-- close button -->\n <ion-button *ngIf=\"hasClose\"\n (tap)=\"tapClose($event)\"\n class=\"visible-xs visible-sm visible-mobile\">\n <ion-icon slot=\"icon-only\" name=\"close\"></ion-icon>\n </ion-button>\n\n <!-- validate button -->\n <ion-button *ngIf=\"hasValidate\"\n (tap)=\"tapValidate($event)\"\n class=\"visible-xs visible-sm visible-mobile\">\n <ion-icon slot=\"icon-only\" name=\"save\"></ion-icon>\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n\n <!-- progress bar -->\n <mat-progress-bar [color]=\"color|matColor\" [mode]=\"progressBarMode$ | async\">\n </mat-progress-bar>\n</ion-header>\n", styles: [""], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "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", "autocomplete", "autocorrect", "cancelButtonIcon", "cancelButtonText", "clearIcon", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "mode", "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: i5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.MatColorPipe, name: "matColor" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
182
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: ToolbarComponent, decorators: [{
182
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ToolbarComponent, decorators: [{
183
183
  type: Component,
184
184
  args: [{ selector: 'app-toolbar', providers: [
185
185
  { provide: ToolbarToken, useExisting: ToolbarComponent }
@@ -11,8 +11,8 @@ import { MatIconModule } from '@angular/material/icon';
11
11
  import * as i0 from "@angular/core";
12
12
  export class SharedToolbarModule {
13
13
  }
14
- SharedToolbarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: SharedToolbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
15
- SharedToolbarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.5", ngImport: i0, type: SharedToolbarModule, declarations: [ToolbarComponent,
14
+ SharedToolbarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: SharedToolbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
15
+ SharedToolbarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.8", ngImport: i0, type: SharedToolbarModule, declarations: [ToolbarComponent,
16
16
  ModalToolbarComponent], imports: [CommonModule,
17
17
  IonicModule,
18
18
  TranslateModule,
@@ -21,14 +21,14 @@ SharedToolbarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", ver
21
21
  MatProgressBarModule,
22
22
  MatIconModule], exports: [ToolbarComponent,
23
23
  ModalToolbarComponent] });
24
- SharedToolbarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: SharedToolbarModule, imports: [CommonModule,
24
+ SharedToolbarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: SharedToolbarModule, imports: [CommonModule,
25
25
  IonicModule,
26
26
  TranslateModule,
27
27
  HammerModule,
28
28
  SharedPipesModule,
29
29
  MatProgressBarModule,
30
30
  MatIconModule] });
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: SharedToolbarModule, decorators: [{
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: SharedToolbarModule, decorators: [{
32
32
  type: NgModule,
33
33
  args: [{
34
34
  imports: [
@@ -48,9 +48,9 @@ export class UploadFileTestingPage {
48
48
  return true;
49
49
  }
50
50
  }
51
- UploadFileTestingPage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: UploadFileTestingPage, deps: [{ token: i1.PopoverController }], target: i0.ɵɵFactoryTarget.Component });
52
- UploadFileTestingPage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", type: UploadFileTestingPage, selector: "upload-file-testing", ngImport: i0, template: "<ion-toolbar color=\"primary\">\n <ion-title>File upload</ion-title>\n</ion-toolbar>\n\n<ion-content class=\"ion-padding\">\n\n <p>Popover examples:</p>\n\n <ion-button (click)=\"showPopover($event, {uniqueFile: true})\" color=\"tertiary\">\n <span translate>COMMON.BTN_IMPORT</span>&nbsp;(unique file)\n </ion-button>\n\n <ion-button (click)=\"showPopover($event, {uniqueFile: false})\" color=\"tertiary\">\n <span translate>COMMON.BTN_IMPORT</span>&nbsp;(many files)\n </ion-button>\n\n <ion-button (click)=\"showPopover($event, {uniqueFile: false, instantUpload: true})\" color=\"tertiary\">\n <span translate>COMMON.BTN_IMPORT</span>&nbsp;(instant upload)\n </ion-button>\n\n <ion-button (click)=\"showPopover($event, {uniqueFile: false, instantUpload: true, maxParallelUpload: 3})\" color=\"tertiary\">\n <span translate>COMMON.BTN_IMPORT</span>&nbsp;(max parallel upload)\n </ion-button>\n\n</ion-content>\n", dependencies: [{ kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i2.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }] });
53
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: UploadFileTestingPage, decorators: [{
51
+ UploadFileTestingPage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: UploadFileTestingPage, deps: [{ token: i1.PopoverController }], target: i0.ɵɵFactoryTarget.Component });
52
+ UploadFileTestingPage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.8", type: UploadFileTestingPage, selector: "upload-file-testing", ngImport: i0, template: "<ion-toolbar color=\"primary\">\n <ion-title>File upload</ion-title>\n</ion-toolbar>\n\n<ion-content class=\"ion-padding\">\n\n <p>Popover examples:</p>\n\n <ion-button (click)=\"showPopover($event, {uniqueFile: true})\" color=\"tertiary\">\n <span translate>COMMON.BTN_IMPORT</span>&nbsp;(unique file)\n </ion-button>\n\n <ion-button (click)=\"showPopover($event, {uniqueFile: false})\" color=\"tertiary\">\n <span translate>COMMON.BTN_IMPORT</span>&nbsp;(many files)\n </ion-button>\n\n <ion-button (click)=\"showPopover($event, {uniqueFile: false, instantUpload: true})\" color=\"tertiary\">\n <span translate>COMMON.BTN_IMPORT</span>&nbsp;(instant upload)\n </ion-button>\n\n <ion-button (click)=\"showPopover($event, {uniqueFile: false, instantUpload: true, maxParallelUpload: 3})\" color=\"tertiary\">\n <span translate>COMMON.BTN_IMPORT</span>&nbsp;(max parallel upload)\n </ion-button>\n\n</ion-content>\n", dependencies: [{ kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i2.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }] });
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: UploadFileTestingPage, decorators: [{
54
54
  type: Component,
55
55
  args: [{ selector: 'upload-file-testing', template: "<ion-toolbar color=\"primary\">\n <ion-title>File upload</ion-title>\n</ion-toolbar>\n\n<ion-content class=\"ion-padding\">\n\n <p>Popover examples:</p>\n\n <ion-button (click)=\"showPopover($event, {uniqueFile: true})\" color=\"tertiary\">\n <span translate>COMMON.BTN_IMPORT</span>&nbsp;(unique file)\n </ion-button>\n\n <ion-button (click)=\"showPopover($event, {uniqueFile: false})\" color=\"tertiary\">\n <span translate>COMMON.BTN_IMPORT</span>&nbsp;(many files)\n </ion-button>\n\n <ion-button (click)=\"showPopover($event, {uniqueFile: false, instantUpload: true})\" color=\"tertiary\">\n <span translate>COMMON.BTN_IMPORT</span>&nbsp;(instant upload)\n </ion-button>\n\n <ion-button (click)=\"showPopover($event, {uniqueFile: false, instantUpload: true, maxParallelUpload: 3})\" color=\"tertiary\">\n <span translate>COMMON.BTN_IMPORT</span>&nbsp;(max parallel upload)\n </ion-button>\n\n</ion-content>\n" }]
56
56
  }], ctorParameters: function () { return [{ type: i1.PopoverController }]; } });
@@ -16,15 +16,15 @@ const routes = [
16
16
  ];
17
17
  export class UploadFileTestingModule {
18
18
  }
19
- UploadFileTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: UploadFileTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
20
- UploadFileTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.5", ngImport: i0, type: UploadFileTestingModule, declarations: [UploadFileTestingPage], imports: [CommonModule,
19
+ UploadFileTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: UploadFileTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
20
+ UploadFileTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.8", ngImport: i0, type: UploadFileTestingModule, declarations: [UploadFileTestingPage], imports: [CommonModule,
21
21
  IonicModule, i1.TranslateModule, i2.RouterModule], exports: [RouterModule,
22
22
  UploadFileTestingPage] });
23
- UploadFileTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: UploadFileTestingModule, imports: [CommonModule,
23
+ UploadFileTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: UploadFileTestingModule, imports: [CommonModule,
24
24
  IonicModule,
25
25
  TranslateModule.forChild(),
26
26
  RouterModule.forChild(routes), RouterModule] });
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: UploadFileTestingModule, decorators: [{
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: UploadFileTestingModule, decorators: [{
28
28
  type: NgModule,
29
29
  args: [{
30
30
  imports: [
@@ -71,9 +71,9 @@ export class UploadFilePopover {
71
71
  }
72
72
  }
73
73
  }
74
- UploadFilePopover.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: UploadFilePopover, deps: [{ token: i1.PopoverController }, { token: i2.TranslateService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
75
- UploadFilePopover.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", type: UploadFilePopover, selector: "app-upload-file-popover", inputs: { fileExtension: "fileExtension", title: "title", uniqueFile: "uniqueFile", instantUpload: "instantUpload", uploadFn: "uploadFn", deleteFn: "deleteFn", maxParallelUpload: "maxParallelUpload" }, viewQueries: [{ propertyName: "uploader", first: true, predicate: ["uploader"], descendants: true, static: true }], ngImport: i0, template: "\n<ion-content class=\"ion-no-padding\" scrollY=\"false\">\n <div class=\"modal-content\">\n <app-upload-file\n #uploader\n [uploadFn]=\"uploadFn\"\n [deleteFn]=\"deleteFn\"\n [fileExtension]=\"fileExtension\"\n [instantUpload]=\"instantUpload\"\n [uniqueFile]=\"uniqueFile\"\n [maxParallelUpload]=\"maxParallelUpload\"\n ></app-upload-file>\n </div>\n</ion-content>\n\n<ion-footer>\n <ion-toolbar>\n <ion-row class=\"ion-no-padding\" nowrap>\n <ion-col>\n <div *ngIf=\"importing\" class=\"importing-info\">\n <ion-text color=\"medium\"><small translate>FILE.UPLOAD.IMPORTING</small></ion-text>\n &nbsp;<ion-spinner name=\"dots\" color=\"accent\"></ion-spinner>\n </div>\n <ion-item *ngIf=\"error\" lines=\"none\">\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" class=\"ion-text-wrap\" [innerHTML]=\"error | translate\"></ion-label>\n </ion-item>\n </ion-col>\n <ion-col size=\"auto\">\n <ion-button fill=\"clear\" color=\"dark\" (click)=\"cancel()\">\n <ion-label translate>COMMON.BTN_CANCEL</ion-label>\n </ion-button>\n <ion-button\n [fill]=\"disabled ? 'clear' : 'solid'\"\n (click)=\"onValidate($event)\"\n (keyup.enter)=\"onValidate($event)\"\n color=\"tertiary\"\n [disabled]=\"disabled\"\n >\n <ion-label translate>COMMON.BTN_IMPORT</ion-label>\n </ion-button>\n </ion-col>\n </ion-row>\n </ion-toolbar>\n</ion-footer>\n", styles: [".importing-info{padding-inline-start:var(--ion-padding);display:inline-flex;flex-wrap:nowrap;padding-top:8px}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1.IonFooter, selector: "ion-footer", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i1.IonRow, selector: "ion-row" }, { kind: "component", type: i1.IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: i1.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i2.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i4.UploadFileComponent, selector: "app-upload-file", inputs: ["fileExtension", "uniqueFile", "instantUpload", "uploadFn", "deleteFn", "maxParallelUpload"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
76
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: UploadFilePopover, decorators: [{
74
+ UploadFilePopover.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: UploadFilePopover, deps: [{ token: i1.PopoverController }, { token: i2.TranslateService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
75
+ UploadFilePopover.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.8", type: UploadFilePopover, selector: "app-upload-file-popover", inputs: { fileExtension: "fileExtension", title: "title", uniqueFile: "uniqueFile", instantUpload: "instantUpload", uploadFn: "uploadFn", deleteFn: "deleteFn", maxParallelUpload: "maxParallelUpload" }, viewQueries: [{ propertyName: "uploader", first: true, predicate: ["uploader"], descendants: true, static: true }], ngImport: i0, template: "\n<ion-content class=\"ion-no-padding\" scrollY=\"false\">\n <div class=\"modal-content\">\n <app-upload-file\n #uploader\n [uploadFn]=\"uploadFn\"\n [deleteFn]=\"deleteFn\"\n [fileExtension]=\"fileExtension\"\n [instantUpload]=\"instantUpload\"\n [uniqueFile]=\"uniqueFile\"\n [maxParallelUpload]=\"maxParallelUpload\"\n ></app-upload-file>\n </div>\n</ion-content>\n\n<ion-footer>\n <ion-toolbar>\n <ion-row class=\"ion-no-padding\" nowrap>\n <ion-col>\n <div *ngIf=\"importing\" class=\"importing-info\">\n <ion-text color=\"medium\"><small translate>FILE.UPLOAD.IMPORTING</small></ion-text>\n &nbsp;<ion-spinner name=\"dots\" color=\"accent\"></ion-spinner>\n </div>\n <ion-item *ngIf=\"error\" lines=\"none\">\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" class=\"ion-text-wrap\" [innerHTML]=\"error | translate\"></ion-label>\n </ion-item>\n </ion-col>\n <ion-col size=\"auto\">\n <ion-button fill=\"clear\" color=\"dark\" (click)=\"cancel()\">\n <ion-label translate>COMMON.BTN_CANCEL</ion-label>\n </ion-button>\n <ion-button\n [fill]=\"disabled ? 'clear' : 'solid'\"\n (click)=\"onValidate($event)\"\n (keyup.enter)=\"onValidate($event)\"\n color=\"tertiary\"\n [disabled]=\"disabled\"\n >\n <ion-label translate>COMMON.BTN_IMPORT</ion-label>\n </ion-button>\n </ion-col>\n </ion-row>\n </ion-toolbar>\n</ion-footer>\n", styles: [".importing-info{padding-inline-start:var(--ion-padding);display:inline-flex;flex-wrap:nowrap;padding-top:8px}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1.IonFooter, selector: "ion-footer", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i1.IonRow, selector: "ion-row" }, { kind: "component", type: i1.IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: i1.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i2.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i4.UploadFileComponent, selector: "app-upload-file", inputs: ["fileExtension", "uniqueFile", "instantUpload", "uploadFn", "deleteFn", "maxParallelUpload"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
76
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: UploadFilePopover, decorators: [{
77
77
  type: Component,
78
78
  args: [{ selector: 'app-upload-file-popover', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "\n<ion-content class=\"ion-no-padding\" scrollY=\"false\">\n <div class=\"modal-content\">\n <app-upload-file\n #uploader\n [uploadFn]=\"uploadFn\"\n [deleteFn]=\"deleteFn\"\n [fileExtension]=\"fileExtension\"\n [instantUpload]=\"instantUpload\"\n [uniqueFile]=\"uniqueFile\"\n [maxParallelUpload]=\"maxParallelUpload\"\n ></app-upload-file>\n </div>\n</ion-content>\n\n<ion-footer>\n <ion-toolbar>\n <ion-row class=\"ion-no-padding\" nowrap>\n <ion-col>\n <div *ngIf=\"importing\" class=\"importing-info\">\n <ion-text color=\"medium\"><small translate>FILE.UPLOAD.IMPORTING</small></ion-text>\n &nbsp;<ion-spinner name=\"dots\" color=\"accent\"></ion-spinner>\n </div>\n <ion-item *ngIf=\"error\" lines=\"none\">\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" class=\"ion-text-wrap\" [innerHTML]=\"error | translate\"></ion-label>\n </ion-item>\n </ion-col>\n <ion-col size=\"auto\">\n <ion-button fill=\"clear\" color=\"dark\" (click)=\"cancel()\">\n <ion-label translate>COMMON.BTN_CANCEL</ion-label>\n </ion-button>\n <ion-button\n [fill]=\"disabled ? 'clear' : 'solid'\"\n (click)=\"onValidate($event)\"\n (keyup.enter)=\"onValidate($event)\"\n color=\"tertiary\"\n [disabled]=\"disabled\"\n >\n <ion-label translate>COMMON.BTN_IMPORT</ion-label>\n </ion-button>\n </ion-col>\n </ion-row>\n </ion-toolbar>\n</ion-footer>\n", styles: [".importing-info{padding-inline-start:var(--ion-padding);display:inline-flex;flex-wrap:nowrap;padding-top:8px}\n"] }]
79
79
  }], ctorParameters: function () { return [{ type: i1.PopoverController }, { type: i2.TranslateService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { uploader: [{
@@ -180,9 +180,9 @@ export class UploadFileComponent {
180
180
  return waitFor(() => this.processingFilesCount === 0, opts);
181
181
  }
182
182
  }
183
- UploadFileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: UploadFileComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
184
- UploadFileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", type: UploadFileComponent, selector: "app-upload-file", inputs: { fileExtension: "fileExtension", uniqueFile: "uniqueFile", instantUpload: "instantUpload", uploadFn: "uploadFn", deleteFn: "deleteFn", maxParallelUpload: "maxParallelUpload" }, viewQueries: [{ propertyName: "fileDropEl", first: true, predicate: ["fileDropRef"], descendants: true }], ngImport: i0, template: "<div *ngIf=\"!uniqueFile || files.length === 0\"\n class=\"container\"\n appDragAndDrop (fileDropped)=\"onFileDropped($event)\">\n <input\n type=\"file\"\n #fileDropRef\n id=\"fileDropRef\"\n multiple\n [accept]=\"fileExtension\"\n (change)=\"fileBrowseHandler($any($event.target).files)\"\n />\n <mat-icon style=\"font-size: xx-large;\" color=\"accent\" class=\"text-size\">upload</mat-icon>\n <ion-label\n [innerHTML]=\"\n 'FILE.UPLOAD.DRAG_AND_DROP' | translate: { extension: !fileExtension ? '' : ' (' + fileExtension + ')' }\n \"\n ></ion-label>\n <ion-button>{{ 'FILE.UPLOAD.BROWSE' | translate }}</ion-button>\n</div>\n<div class=\"files-list\">\n <div *ngFor=\"let file of files; index as i\"\n class=\"single-file\"\n [class.deleting]=\"file.deleting\">\n <mat-icon>description</mat-icon>\n <div class=\"info\">\n <h4 class=\"name\">\n {{ file.name }}\n </h4>\n <p class=\"size\">\n {{ file.size | fileSize }}\n </p>\n <ion-progress-bar *ngIf=\"!file.error\"\n [value]=\"file.progress||0\"\n [type]=\"(file.deleting || file.progress === -1) ? 'indeterminate' : 'determinate'\"></ion-progress-bar>\n <ion-label *ngIf=\"file.error\" color=\"danger\" [innerHTML]=\"file.error | translate\"></ion-label>\n </div>\n <!-- remote from list (before importation) -->\n <button *ngIf=\"!(file.progress) || file.error\" mat-icon-button (click)=\"deleteFile(i)\">\n <mat-icon>clear</mat-icon>\n </button>\n <!-- delete file (remotely - after importation) -->\n <button *ngIf=\"file.progress === 1 && !!deleteFn && !file.deleting\" mat-icon-button (click)=\"deleteFile(i)\">\n <mat-icon>clear</mat-icon>\n </button>\n </div>\n</div>\n", styles: [".container{width:calc(100% - 3rem);min-height:200px;padding:2rem;text-align:center;border:dashed 1px #979797;position:relative;margin:1.5rem}.container input{opacity:0;position:absolute;z-index:2;width:100%;height:100%;top:0;left:0;cursor:pointer}.container ion-label{display:block;font-size:20px;font-weight:600;color:#38424c}.container label{display:inline-block;color:#fff;width:183px;height:44px;border-radius:21.5px;background-color:#db202f;padding:8px 16px}.fileover{animation:shake 1s;animation-iteration-count:infinite}.files-list{max-height:300px;overflow:auto}.files-list .single-file{display:flex;flex-grow:1;padding:.5rem;justify-content:space-between;align-items:center;border:dashed 1px #979797;margin-bottom:1rem}.files-list .single-file.deleting .name{color:gray!important;font-style:italic!important}.files-list .single-file .name{font-size:14px;font-weight:500;color:#353f4a;margin:0}.files-list .single-file .size{font-size:12px;font-weight:500;color:#a4a4a4;margin:0 0 .25rem}.files-list .single-file .info{width:100%}@keyframes shake{0%{transform:translate(1px,1px) rotate(0)}10%{transform:translate(-1px,-2px) rotate(-1deg)}20%{transform:translate(-3px) rotate(1deg)}30%{transform:translate(3px,2px) rotate(0)}40%{transform:translate(1px,-1px) rotate(1deg)}50%{transform:translate(-1px,2px) rotate(-1deg)}60%{transform:translate(-3px,1px) rotate(0)}70%{transform:translate(3px,1px) rotate(-1deg)}80%{transform:translate(-1px,-1px) rotate(1deg)}90%{transform:translate(1px,2px) rotate(0)}to{transform:translate(1px,-2px) rotate(-1deg)}}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i3.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i3.IonProgressBar, selector: "ion-progress-bar", inputs: ["buffer", "color", "mode", "reversed", "type", "value"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i6.DragAndDropDirective, selector: "[appDragAndDrop]", outputs: ["fileDropped"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "pipe", type: i7.FileSizePipe, name: "fileSize" }] });
185
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: UploadFileComponent, decorators: [{
183
+ UploadFileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: UploadFileComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
184
+ UploadFileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.8", type: UploadFileComponent, selector: "app-upload-file", inputs: { fileExtension: "fileExtension", uniqueFile: "uniqueFile", instantUpload: "instantUpload", uploadFn: "uploadFn", deleteFn: "deleteFn", maxParallelUpload: "maxParallelUpload" }, viewQueries: [{ propertyName: "fileDropEl", first: true, predicate: ["fileDropRef"], descendants: true }], ngImport: i0, template: "<div *ngIf=\"!uniqueFile || files.length === 0\"\n class=\"container\"\n appDragAndDrop (fileDropped)=\"onFileDropped($event)\">\n <input\n type=\"file\"\n #fileDropRef\n id=\"fileDropRef\"\n multiple\n [accept]=\"fileExtension\"\n (change)=\"fileBrowseHandler($any($event.target).files)\"\n />\n <mat-icon style=\"font-size: xx-large;\" color=\"accent\" class=\"text-size\">upload</mat-icon>\n <ion-label\n [innerHTML]=\"\n 'FILE.UPLOAD.DRAG_AND_DROP' | translate: { extension: !fileExtension ? '' : ' (' + fileExtension + ')' }\n \"\n ></ion-label>\n <ion-button>{{ 'FILE.UPLOAD.BROWSE' | translate }}</ion-button>\n</div>\n<div class=\"files-list\">\n <div *ngFor=\"let file of files; index as i\"\n class=\"single-file\"\n [class.deleting]=\"file.deleting\">\n <mat-icon>description</mat-icon>\n <div class=\"info\">\n <h4 class=\"name\">\n {{ file.name }}\n </h4>\n <p class=\"size\">\n {{ file.size | fileSize }}\n </p>\n <ion-progress-bar *ngIf=\"!file.error\"\n [value]=\"file.progress||0\"\n [type]=\"(file.deleting || file.progress === -1) ? 'indeterminate' : 'determinate'\"></ion-progress-bar>\n <ion-label *ngIf=\"file.error\" color=\"danger\" [innerHTML]=\"file.error | translate\"></ion-label>\n </div>\n <!-- remote from list (before importation) -->\n <button *ngIf=\"!(file.progress) || file.error\" mat-icon-button (click)=\"deleteFile(i)\">\n <mat-icon>clear</mat-icon>\n </button>\n <!-- delete file (remotely - after importation) -->\n <button *ngIf=\"file.progress === 1 && !!deleteFn && !file.deleting\" mat-icon-button (click)=\"deleteFile(i)\">\n <mat-icon>clear</mat-icon>\n </button>\n </div>\n</div>\n", styles: [".container{width:calc(100% - 3rem);min-height:200px;padding:2rem;text-align:center;border:dashed 1px #979797;position:relative;margin:1.5rem}.container input{opacity:0;position:absolute;z-index:2;width:100%;height:100%;top:0;left:0;cursor:pointer}.container ion-label{display:block;font-size:20px;font-weight:600;color:#38424c}.container label{display:inline-block;color:#fff;width:183px;height:44px;border-radius:21.5px;background-color:#db202f;padding:8px 16px}.fileover{animation:shake 1s;animation-iteration-count:infinite}.files-list{max-height:300px;overflow:auto}.files-list .single-file{display:flex;flex-grow:1;padding:.5rem;justify-content:space-between;align-items:center;border:dashed 1px #979797;margin-bottom:1rem}.files-list .single-file.deleting .name{color:gray!important;font-style:italic!important}.files-list .single-file .name{font-size:14px;font-weight:500;color:#353f4a;margin:0}.files-list .single-file .size{font-size:12px;font-weight:500;color:#a4a4a4;margin:0 0 .25rem}.files-list .single-file .info{width:100%}@keyframes shake{0%{transform:translate(1px,1px) rotate(0)}10%{transform:translate(-1px,-2px) rotate(-1deg)}20%{transform:translate(-3px) rotate(1deg)}30%{transform:translate(3px,2px) rotate(0)}40%{transform:translate(1px,-1px) rotate(1deg)}50%{transform:translate(-1px,2px) rotate(-1deg)}60%{transform:translate(-3px,1px) rotate(0)}70%{transform:translate(3px,1px) rotate(-1deg)}80%{transform:translate(-1px,-1px) rotate(1deg)}90%{transform:translate(1px,2px) rotate(0)}to{transform:translate(1px,-2px) rotate(-1deg)}}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i3.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i3.IonProgressBar, selector: "ion-progress-bar", inputs: ["buffer", "color", "mode", "reversed", "type", "value"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i6.DragAndDropDirective, selector: "[appDragAndDrop]", outputs: ["fileDropped"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "pipe", type: i7.FileSizePipe, name: "fileSize" }] });
185
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: UploadFileComponent, decorators: [{
186
186
  type: Component,
187
187
  args: [{ selector: 'app-upload-file', template: "<div *ngIf=\"!uniqueFile || files.length === 0\"\n class=\"container\"\n appDragAndDrop (fileDropped)=\"onFileDropped($event)\">\n <input\n type=\"file\"\n #fileDropRef\n id=\"fileDropRef\"\n multiple\n [accept]=\"fileExtension\"\n (change)=\"fileBrowseHandler($any($event.target).files)\"\n />\n <mat-icon style=\"font-size: xx-large;\" color=\"accent\" class=\"text-size\">upload</mat-icon>\n <ion-label\n [innerHTML]=\"\n 'FILE.UPLOAD.DRAG_AND_DROP' | translate: { extension: !fileExtension ? '' : ' (' + fileExtension + ')' }\n \"\n ></ion-label>\n <ion-button>{{ 'FILE.UPLOAD.BROWSE' | translate }}</ion-button>\n</div>\n<div class=\"files-list\">\n <div *ngFor=\"let file of files; index as i\"\n class=\"single-file\"\n [class.deleting]=\"file.deleting\">\n <mat-icon>description</mat-icon>\n <div class=\"info\">\n <h4 class=\"name\">\n {{ file.name }}\n </h4>\n <p class=\"size\">\n {{ file.size | fileSize }}\n </p>\n <ion-progress-bar *ngIf=\"!file.error\"\n [value]=\"file.progress||0\"\n [type]=\"(file.deleting || file.progress === -1) ? 'indeterminate' : 'determinate'\"></ion-progress-bar>\n <ion-label *ngIf=\"file.error\" color=\"danger\" [innerHTML]=\"file.error | translate\"></ion-label>\n </div>\n <!-- remote from list (before importation) -->\n <button *ngIf=\"!(file.progress) || file.error\" mat-icon-button (click)=\"deleteFile(i)\">\n <mat-icon>clear</mat-icon>\n </button>\n <!-- delete file (remotely - after importation) -->\n <button *ngIf=\"file.progress === 1 && !!deleteFn && !file.deleting\" mat-icon-button (click)=\"deleteFile(i)\">\n <mat-icon>clear</mat-icon>\n </button>\n </div>\n</div>\n", styles: [".container{width:calc(100% - 3rem);min-height:200px;padding:2rem;text-align:center;border:dashed 1px #979797;position:relative;margin:1.5rem}.container input{opacity:0;position:absolute;z-index:2;width:100%;height:100%;top:0;left:0;cursor:pointer}.container ion-label{display:block;font-size:20px;font-weight:600;color:#38424c}.container label{display:inline-block;color:#fff;width:183px;height:44px;border-radius:21.5px;background-color:#db202f;padding:8px 16px}.fileover{animation:shake 1s;animation-iteration-count:infinite}.files-list{max-height:300px;overflow:auto}.files-list .single-file{display:flex;flex-grow:1;padding:.5rem;justify-content:space-between;align-items:center;border:dashed 1px #979797;margin-bottom:1rem}.files-list .single-file.deleting .name{color:gray!important;font-style:italic!important}.files-list .single-file .name{font-size:14px;font-weight:500;color:#353f4a;margin:0}.files-list .single-file .size{font-size:12px;font-weight:500;color:#a4a4a4;margin:0 0 .25rem}.files-list .single-file .info{width:100%}@keyframes shake{0%{transform:translate(1px,1px) rotate(0)}10%{transform:translate(-1px,-2px) rotate(-1deg)}20%{transform:translate(-3px) rotate(1deg)}30%{transform:translate(3px,2px) rotate(0)}40%{transform:translate(1px,-1px) rotate(1deg)}50%{transform:translate(-1px,2px) rotate(-1deg)}60%{transform:translate(-3px,1px) rotate(0)}70%{transform:translate(3px,1px) rotate(-1deg)}80%{transform:translate(-1px,-1px) rotate(1deg)}90%{transform:translate(1px,2px) rotate(0)}to{transform:translate(1px,-2px) rotate(-1deg)}}\n"] }]
188
188
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.TranslateService }]; }, propDecorators: { fileDropEl: [{
@@ -90,9 +90,9 @@ export class FormErrorTranslator {
90
90
  return errorKey;
91
91
  }
92
92
  }
93
- FormErrorTranslator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: FormErrorTranslator, deps: [{ token: i1.TranslateService }, { token: APP_FORM_ERROR_I18N_KEYS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
94
- FormErrorTranslator.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: FormErrorTranslator, providedIn: 'root' });
95
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: FormErrorTranslator, decorators: [{
93
+ FormErrorTranslator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: FormErrorTranslator, deps: [{ token: i1.TranslateService }, { token: APP_FORM_ERROR_I18N_KEYS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
94
+ FormErrorTranslator.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: FormErrorTranslator, providedIn: 'root' });
95
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: FormErrorTranslator, decorators: [{
96
96
  type: Injectable,
97
97
  args: [{ providedIn: 'root' }]
98
98
  }], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: undefined, decorators: [{