@sumaris-net/ngx-components 1.23.8 → 2.0.0-rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (714) hide show
  1. package/doc/build.md +2 -2
  2. package/esm2020/public_api.mjs +274 -0
  3. package/esm2020/public_test_api.mjs +46 -0
  4. package/esm2020/src/app/admin/admin-routing.module.mjs +41 -0
  5. package/esm2020/src/app/admin/admin.module.mjs +49 -0
  6. package/esm2020/src/app/admin/services/filter/person.filter.mjs +59 -0
  7. package/esm2020/src/app/admin/services/person.service.mjs +161 -0
  8. package/esm2020/src/app/admin/services/validator/person.validator.mjs +34 -0
  9. package/esm2020/src/app/admin/users/list/users.mjs +227 -0
  10. package/esm2020/src/app/core/about/modal-about.mjs +71 -0
  11. package/esm2020/src/app/core/account/account.mjs +230 -0
  12. package/esm2020/src/app/core/auth/form/form-auth.mjs +131 -0
  13. package/esm2020/src/app/core/auth/modal/modal-auth.mjs +72 -0
  14. package/esm2020/src/app/core/core.module.mjs +223 -0
  15. package/esm2020/src/app/core/core.testing.module.mjs +72 -0
  16. package/esm2020/src/app/core/form/editor.class.mjs +608 -0
  17. package/esm2020/src/app/core/form/entity-editor-modal.class.mjs +406 -0
  18. package/esm2020/src/app/core/form/entity-editor.class.mjs +669 -0
  19. package/esm2020/src/app/core/form/entity-metadata.component.mjs +25 -0
  20. package/esm2020/src/app/core/form/form-buttons-bar.component.mjs +71 -0
  21. package/esm2020/src/app/core/form/form.class.mjs +334 -0
  22. package/esm2020/src/app/core/form/form.utils.mjs +264 -0
  23. package/esm2020/src/app/core/form/list.form.mjs +221 -0
  24. package/esm2020/src/app/core/form/properties.form.mjs +126 -0
  25. package/esm2020/src/app/core/graphql/graphql.module.mjs +22 -0
  26. package/esm2020/src/app/core/graphql/graphql.service.mjs +730 -0
  27. package/esm2020/src/app/core/graphql/graphql.utils.mjs +117 -0
  28. package/esm2020/src/app/core/home/home.mjs +257 -0
  29. package/esm2020/src/app/core/icon/icon.component.mjs +41 -0
  30. package/esm2020/src/app/core/icon/icon.module.mjs +29 -0
  31. package/esm2020/src/app/core/install/install-upgrade-card.component.mjs +337 -0
  32. package/esm2020/src/app/core/install/install-upgrade-card.module.mjs +33 -0
  33. package/esm2020/src/app/core/menu/menu.component.mjs +317 -0
  34. package/{esm2015/src/app/core/menu/menu.model.js → esm2020/src/app/core/menu/menu.model.mjs} +0 -0
  35. package/esm2020/src/app/core/menu/menu.module.mjs +45 -0
  36. package/{esm2015/src/app/core/menu/menu.service.js → esm2020/src/app/core/menu/menu.service.mjs} +9 -7
  37. package/esm2020/src/app/core/offline/update-offline-mode-card.component.mjs +27 -0
  38. package/esm2020/src/app/core/peer/select-peer.modal.mjs +130 -0
  39. package/esm2020/src/app/core/peer/select-peer.module.mjs +35 -0
  40. package/esm2020/src/app/core/register/confirm/confirm.mjs +81 -0
  41. package/esm2020/src/app/core/register/form/form-register.mjs +181 -0
  42. package/esm2020/src/app/core/register/modal/modal-register.mjs +52 -0
  43. package/esm2020/src/app/core/register/register.module.mjs +42 -0
  44. package/esm2020/src/app/core/services/account.service.mjs +1112 -0
  45. package/esm2020/src/app/core/services/auth-guard.service.mjs +71 -0
  46. package/esm2020/src/app/core/services/base-entity-service.class.mjs +433 -0
  47. package/esm2020/src/app/core/services/base-graphql-service.class.mjs +219 -0
  48. package/{esm2015/src/app/core/services/base58.js → esm2020/src/app/core/services/base58.mjs} +0 -0
  49. package/{esm2015/src/app/core/services/config/core.config.js → esm2020/src/app/core/services/config/core.config.mjs} +0 -0
  50. package/esm2020/src/app/core/services/config.service.mjs +354 -0
  51. package/{esm2015/src/app/core/services/crypto.service.js → esm2020/src/app/core/services/crypto.service.mjs} +7 -5
  52. package/{esm2015/src/app/core/services/errors.js → esm2020/src/app/core/services/errors.mjs} +0 -0
  53. package/esm2020/src/app/core/services/local-settings.service.mjs +442 -0
  54. package/esm2020/src/app/core/services/model/account.model.mjs +50 -0
  55. package/esm2020/src/app/core/services/model/config.model.mjs +89 -0
  56. package/esm2020/src/app/core/services/model/department.model.mjs +30 -0
  57. package/esm2020/src/app/core/services/model/entity.decorators.mjs +107 -0
  58. package/esm2020/src/app/core/services/model/entity.model.mjs +242 -0
  59. package/{esm2015/src/app/core/services/model/filter.model.js → esm2020/src/app/core/services/model/filter.model.mjs} +0 -0
  60. package/{esm2015/src/app/core/services/model/history.model.js → esm2020/src/app/core/services/model/history.model.mjs} +0 -0
  61. package/{esm2015/src/app/core/services/model/model.enum.js → esm2020/src/app/core/services/model/model.enum.mjs} +0 -0
  62. package/esm2020/src/app/core/services/model/peer.model.mjs +68 -0
  63. package/esm2020/src/app/core/services/model/person.model.mjs +83 -0
  64. package/esm2020/src/app/core/services/model/referential.model.mjs +145 -0
  65. package/esm2020/src/app/core/services/model/settings.model.mjs +75 -0
  66. package/esm2020/src/app/core/services/network.service.mjs +602 -0
  67. package/esm2020/src/app/core/services/network.utils.mjs +16 -0
  68. package/esm2020/src/app/core/services/pipes/account.pipes.mjs +38 -0
  69. package/esm2020/src/app/core/services/pipes/department-to-string.pipe.mjs +23 -0
  70. package/esm2020/src/app/core/services/pipes/person-to-string.pipe.mjs +23 -0
  71. package/esm2020/src/app/core/services/pipes/usage-mode.pipes.mjs +37 -0
  72. package/esm2020/src/app/core/services/platform.service.mjs +476 -0
  73. package/esm2020/src/app/core/services/storage/entities-storage.service.mjs +422 -0
  74. package/esm2020/src/app/core/services/storage/entity-store.class.mjs +449 -0
  75. package/esm2020/src/app/core/services/testing/referential-filter.model.mjs +23 -0
  76. package/esm2020/src/app/core/services/testing/referential.validator.mjs +45 -0
  77. package/esm2020/src/app/core/services/validator/account.validator.mjs +52 -0
  78. package/esm2020/src/app/core/services/validator/base.validator.class.mjs +47 -0
  79. package/esm2020/src/app/core/services/validator/local-settings.validator.mjs +66 -0
  80. package/esm2020/src/app/core/services/validator/user-settings.validator.mjs +29 -0
  81. package/esm2020/src/app/core/settings/settings.page.mjs +290 -0
  82. package/esm2020/src/app/core/table/actions-column.component.mjs +96 -0
  83. package/esm2020/src/app/core/table/entities-table-datasource.class.mjs +385 -0
  84. package/esm2020/src/app/core/table/memory-table.class.mjs +53 -0
  85. package/esm2020/src/app/core/table/table-select-columns.component.mjs +43 -0
  86. package/esm2020/src/app/core/table/table.class.mjs +1654 -0
  87. package/{esm2015/src/app/core/table/table.utils.js → esm2020/src/app/core/table/table.utils.mjs} +0 -0
  88. package/esm2020/src/app/core/table/testing/table.testing.mjs +264 -0
  89. package/esm2020/src/app/core/table/testing/table.testing.module.mjs +38 -0
  90. package/esm2020/src/app/core/text-popover/testing/text-popover.testing.mjs +37 -0
  91. package/esm2020/src/app/core/text-popover/testing/text-popover.testing.module.mjs +45 -0
  92. package/esm2020/src/app/core/text-popover/text-form.component.mjs +84 -0
  93. package/esm2020/src/app/core/text-popover/text-popover.component.mjs +92 -0
  94. package/esm2020/src/app/shared/alerts.mjs +238 -0
  95. package/esm2020/src/app/shared/audio/audio.mjs +201 -0
  96. package/esm2020/src/app/shared/audio/audio.testing.mjs +31 -0
  97. package/esm2020/src/app/shared/audio/audio.testing.module.mjs +45 -0
  98. package/esm2020/src/app/shared/capacitor/keyboard.mjs +40 -0
  99. package/esm2020/src/app/shared/capacitor/plugins.mjs +9 -0
  100. package/{esm2015/src/app/shared/constants.js → esm2020/src/app/shared/constants.mjs} +2 -1
  101. package/esm2020/src/app/shared/dates.mjs +134 -0
  102. package/esm2020/src/app/shared/directives/autofocus.directive.mjs +92 -0
  103. package/esm2020/src/app/shared/directives/autotitle.directive.mjs +30 -0
  104. package/esm2020/src/app/shared/directives/directives.module.mjs +43 -0
  105. package/esm2020/src/app/shared/directives/drag-and-drop.directive.mjs +53 -0
  106. package/esm2020/src/app/shared/directives/ng-var.directive.mjs +31 -0
  107. package/esm2020/src/app/shared/directives/resizable/resizable.component.mjs +59 -0
  108. package/esm2020/src/app/shared/directives/resizable/resizable.directive.mjs +40 -0
  109. package/esm2020/src/app/shared/directives/resizable/resizable.module.mjs +17 -0
  110. package/esm2020/src/app/shared/events.mjs +64 -0
  111. package/esm2020/src/app/shared/file/csv.utils.mjs +74 -0
  112. package/esm2020/src/app/shared/file/file.service.mjs +117 -0
  113. package/esm2020/src/app/shared/file/file.utils.mjs +113 -0
  114. package/esm2020/src/app/shared/file/images.utils.mjs +161 -0
  115. package/{esm2015/src/app/shared/file/uri.utils.js → esm2020/src/app/shared/file/uri.utils.mjs} +0 -0
  116. package/{esm2015/src/app/shared/focusable.js → esm2020/src/app/shared/focusable.mjs} +0 -0
  117. package/esm2020/src/app/shared/form/field.component.mjs +241 -0
  118. package/{esm2015/src/app/shared/form/field.model.js → esm2020/src/app/shared/form/field.model.mjs} +1 -1
  119. package/esm2020/src/app/shared/form/loading-spinner.mjs +36 -0
  120. package/esm2020/src/app/shared/forms.mjs +355 -0
  121. package/esm2020/src/app/shared/functions.mjs +417 -0
  122. package/{esm2015/src/app/shared/gesture/gesture-config.js → esm2020/src/app/shared/gesture/gesture-config.mjs} +7 -5
  123. package/esm2020/src/app/shared/gesture/hammer.utils.mjs +2 -0
  124. package/{esm2015/src/app/shared/graph/colors.utils.js → esm2020/src/app/shared/graph/colors.utils.mjs} +0 -0
  125. package/esm2020/src/app/shared/graph/graph-colors.mjs +254 -0
  126. package/esm2020/src/app/shared/guard/component-dirty.guard.mjs +57 -0
  127. package/esm2020/src/app/shared/help/help.modal.mjs +53 -0
  128. package/esm2020/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +23 -0
  129. package/esm2020/src/app/shared/hotkeys/hotkeys.service.mjs +84 -0
  130. package/esm2020/src/app/shared/hotkeys/shared-hotkeys.module.mjs +42 -0
  131. package/esm2020/src/app/shared/http/http.utils.mjs +52 -0
  132. package/esm2020/src/app/shared/image/gallery/image-gallery.component.mjs +279 -0
  133. package/esm2020/src/app/shared/image/gallery/image-gallery.module.mjs +46 -0
  134. package/esm2020/src/app/shared/image/gallery/testing/gallegry.model.testing.mjs +27 -0
  135. package/esm2020/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +89 -0
  136. package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.mjs +33 -0
  137. package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +56 -0
  138. package/esm2020/src/app/shared/image/image.model.mjs +2 -0
  139. package/esm2020/src/app/shared/image/image.module.mjs +29 -0
  140. package/esm2020/src/app/shared/image/image.service.mjs +99 -0
  141. package/{esm2015/src/app/shared/inputs.js → esm2020/src/app/shared/inputs.mjs} +4 -4
  142. package/{esm2015/src/app/shared/interceptors/progess.interceptor.js → esm2020/src/app/shared/interceptors/progess.interceptor.mjs} +0 -0
  143. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.config.mjs +47 -0
  144. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.mjs +836 -0
  145. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +78 -0
  146. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.utils.mjs +19 -0
  147. package/esm2020/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +205 -0
  148. package/esm2020/src/app/shared/material/badge/badge-icon.directive.mjs +143 -0
  149. package/esm2020/src/app/shared/material/badge/badge-icon.module.mjs +32 -0
  150. package/esm2020/src/app/shared/material/badge/badge-icon.test.mjs +27 -0
  151. package/esm2020/src/app/shared/material/boolean/boolean.module.mjs +68 -0
  152. package/esm2020/src/app/shared/material/boolean/material.boolean.mjs +253 -0
  153. package/esm2020/src/app/shared/material/chips/chips.module.mjs +76 -0
  154. package/esm2020/src/app/shared/material/chips/material.chips.mjs +692 -0
  155. package/esm2020/src/app/shared/material/chips/testing/chips.test.mjs +136 -0
  156. package/esm2020/src/app/shared/material/datetime/datetime.module.mjs +91 -0
  157. package/esm2020/src/app/shared/material/datetime/material.date.mjs +392 -0
  158. package/esm2020/src/app/shared/material/datetime/material.dateshort.mjs +327 -0
  159. package/esm2020/src/app/shared/material/datetime/material.datetime.mjs +416 -0
  160. package/esm2020/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +110 -0
  161. package/esm2020/src/app/shared/material/datetime/testing/mat-date.test.mjs +111 -0
  162. package/esm2020/src/app/shared/material/duration/duration.module.mjs +67 -0
  163. package/{esm2015/src/app/shared/material/duration/duration.utils.js → esm2020/src/app/shared/material/duration/duration.utils.mjs} +0 -0
  164. package/esm2020/src/app/shared/material/duration/material.duration.mjs +257 -0
  165. package/esm2020/src/app/shared/material/latlong/latlong.utils.mjs +266 -0
  166. package/esm2020/src/app/shared/material/latlong/material.latlong.mjs +381 -0
  167. package/esm2020/src/app/shared/material/latlong/material.latlong.module.mjs +67 -0
  168. package/esm2020/src/app/shared/material/latlong/testing/latlong.test.mjs +74 -0
  169. package/{esm2015/src/app/shared/material/material.animations.js → esm2020/src/app/shared/material/material.animations.mjs} +0 -0
  170. package/esm2020/src/app/shared/material/material.module.mjs +224 -0
  171. package/{esm2015/src/app/shared/material/material.testing.module.js → esm2020/src/app/shared/material/material.testing.module.mjs} +68 -34
  172. package/esm2020/src/app/shared/material/numpad/numpad.append-to-input.directive.mjs +98 -0
  173. package/esm2020/src/app/shared/material/numpad/numpad.component.mjs +80 -0
  174. package/esm2020/src/app/shared/material/numpad/numpad.container.mjs +190 -0
  175. package/esm2020/src/app/shared/material/numpad/numpad.content.mjs +17 -0
  176. package/esm2020/src/app/shared/material/numpad/numpad.directive.mjs +162 -0
  177. package/esm2020/src/app/shared/material/numpad/numpad.dom-service.mjs +37 -0
  178. package/{esm2015/src/app/shared/material/numpad/numpad.model.js → esm2020/src/app/shared/material/numpad/numpad.model.mjs} +1 -1
  179. package/esm2020/src/app/shared/material/numpad/numpad.module.mjs +60 -0
  180. package/esm2020/src/app/shared/material/numpad/testing/numpad.test.mjs +46 -0
  181. package/esm2020/src/app/shared/material/paginator/material.paginator-i18n.mjs +42 -0
  182. package/esm2020/src/app/shared/material/stepper/material.stepper-i18n.mjs +22 -0
  183. package/esm2020/src/app/shared/material/swipe/material.swipe.mjs +334 -0
  184. package/esm2020/src/app/shared/material/swipe/swipe.module.mjs +51 -0
  185. package/esm2020/src/app/shared/material/swipe/testing/swipe.test.mjs +65 -0
  186. package/esm2020/src/app/shared/observables.mjs +96 -0
  187. package/esm2020/src/app/shared/pipes/arrays.pipe.mjs +114 -0
  188. package/esm2020/src/app/shared/pipes/colors.pipe.mjs +23 -0
  189. package/esm2020/src/app/shared/pipes/date-diff-duration.pipe.mjs +49 -0
  190. package/esm2020/src/app/shared/pipes/date-format.pipe.mjs +42 -0
  191. package/{esm2015/src/app/shared/pipes/date-from-now.pipe.js → esm2020/src/app/shared/pipes/date-from-now.pipe.mjs} +13 -12
  192. package/{esm2015/src/app/shared/pipes/duration.pipe.js → esm2020/src/app/shared/pipes/duration.pipe.mjs} +13 -12
  193. package/esm2020/src/app/shared/pipes/file-size.pipe.mjs +62 -0
  194. package/esm2020/src/app/shared/pipes/form.pipes.mjs +187 -0
  195. package/esm2020/src/app/shared/pipes/highlight.pipe.mjs +48 -0
  196. package/esm2020/src/app/shared/pipes/latlong-format.pipe.mjs +46 -0
  197. package/esm2020/src/app/shared/pipes/maps.pipe.mjs +63 -0
  198. package/esm2020/src/app/shared/pipes/math.pipes.mjs +59 -0
  199. package/esm2020/src/app/shared/pipes/ng-init.pipe.mjs +21 -0
  200. package/{esm2015/src/app/shared/pipes/number-format.pipe.js → esm2020/src/app/shared/pipes/number-format.pipe.mjs} +14 -9
  201. package/esm2020/src/app/shared/pipes/pipes.module.mjs +206 -0
  202. package/esm2020/src/app/shared/pipes/property.pipes.mjs +96 -0
  203. package/esm2020/src/app/shared/pipes/string.pipes.mjs +69 -0
  204. package/esm2020/src/app/shared/pipes/translate-context.pipe.mjs +43 -0
  205. package/esm2020/src/app/shared/platforms.mjs +49 -0
  206. package/esm2020/src/app/shared/services/entity-service.class.mjs +19 -0
  207. package/esm2020/src/app/shared/services/job.utils.mjs +92 -0
  208. package/esm2020/src/app/shared/services/memory-entity-service.class.mjs +253 -0
  209. package/esm2020/src/app/shared/services/progress-bar.service.mjs +32 -0
  210. package/esm2020/src/app/shared/services/startable-service.class.mjs +94 -0
  211. package/esm2020/src/app/shared/services/storage/storage.service.mjs +132 -0
  212. package/esm2020/src/app/shared/services/storage/storage.utils.mjs +13 -0
  213. package/esm2020/src/app/shared/services/translate-context.service.mjs +81 -0
  214. package/esm2020/src/app/shared/services/validator-service.class.mjs +2 -0
  215. package/esm2020/src/app/shared/services.mjs +62 -0
  216. package/esm2020/src/app/shared/shared-routing.module.mjs +63 -0
  217. package/esm2020/src/app/shared/shared.module.mjs +208 -0
  218. package/esm2020/src/app/shared/shared.testing.module.mjs +76 -0
  219. package/esm2020/src/app/shared/testing/tests.page.mjs +33 -0
  220. package/esm2020/src/app/shared/toast/toast.testing.mjs +52 -0
  221. package/esm2020/src/app/shared/toast/toast.testing.module.mjs +45 -0
  222. package/esm2020/src/app/shared/toast/toasts.mjs +121 -0
  223. package/esm2020/src/app/shared/toolbar/modal-toolbar.mjs +58 -0
  224. package/esm2020/src/app/shared/toolbar/toolbar.mjs +226 -0
  225. package/esm2020/src/app/shared/toolbar/toolbar.module.mjs +53 -0
  226. package/{esm2015/src/app/shared/types.js → esm2020/src/app/shared/types.mjs} +0 -0
  227. package/esm2020/src/app/shared/upload-file/testing/upload-file.testing.mjs +57 -0
  228. package/esm2020/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +45 -0
  229. package/esm2020/src/app/shared/upload-file/upload-file-popover.component.mjs +97 -0
  230. package/esm2020/src/app/shared/upload-file/upload-file.component.mjs +204 -0
  231. package/esm2020/src/app/shared/upload-file/upload-file.model.mjs +20 -0
  232. package/esm2020/src/app/shared/validator/form-error-adapter.class.mjs +104 -0
  233. package/esm2020/src/app/shared/validator/validators.mjs +544 -0
  234. package/{esm2015/src/app/shared/version/versions.js → esm2020/src/app/shared/version/versions.mjs} +0 -0
  235. package/esm2020/src/app/social/job/job.model.mjs +26 -0
  236. package/esm2020/src/app/social/job/job.module.mjs +35 -0
  237. package/esm2020/src/app/social/job/job.service.mjs +59 -0
  238. package/esm2020/src/app/social/job/progression/job-progression.component.mjs +201 -0
  239. package/esm2020/src/app/social/job/progression/job-progression.list.mjs +22 -0
  240. package/esm2020/src/app/social/job/testing/job-progression.testing.mjs +51 -0
  241. package/esm2020/src/app/social/job/testing/job-progression.testing.service.mjs +33 -0
  242. package/esm2020/src/app/social/job/testing/job.testing.module.mjs +35 -0
  243. package/esm2020/src/app/social/message/message.form.mjs +81 -0
  244. package/esm2020/src/app/social/message/message.modal.mjs +93 -0
  245. package/esm2020/src/app/social/message/message.model.mjs +65 -0
  246. package/esm2020/src/app/social/message/message.module.mjs +35 -0
  247. package/esm2020/src/app/social/message/message.service.mjs +84 -0
  248. package/{esm2015/src/app/social/social.errors.js → esm2020/src/app/social/social.errors.mjs} +0 -0
  249. package/esm2020/src/app/social/social.module.mjs +47 -0
  250. package/esm2020/src/app/social/social.testing.module.mjs +51 -0
  251. package/esm2020/src/app/social/user-event/notification/user-event-notification.icon.mjs +97 -0
  252. package/esm2020/src/app/social/user-event/notification/user-event-notification.list.mjs +212 -0
  253. package/esm2020/src/app/social/user-event/testing/user-event.testing.mjs +228 -0
  254. package/esm2020/src/app/social/user-event/testing/user-event.testing.model.mjs +107 -0
  255. package/esm2020/src/app/social/user-event/testing/user-event.testing.module.mjs +35 -0
  256. package/esm2020/src/app/social/user-event/testing/user-event.testing.service.mjs +111 -0
  257. package/esm2020/src/app/social/user-event/user-event.model.mjs +2 -0
  258. package/esm2020/src/app/social/user-event/user-event.module.mjs +39 -0
  259. package/esm2020/src/app/social/user-event/user-event.service.mjs +486 -0
  260. package/{esm2015/src/app/vendor.js → esm2020/src/app/vendor.mjs} +1 -1
  261. package/esm2020/src/environments/environment.class.mjs +5 -0
  262. package/esm2020/src/environments/environment.mjs +86 -0
  263. package/esm2020/sumaris-net.ngx-components.mjs +5 -0
  264. package/fesm2015/sumaris-net.ngx-components.mjs +32493 -0
  265. package/fesm2015/sumaris-net.ngx-components.mjs.map +1 -0
  266. package/fesm2020/sumaris-net.ngx-components.mjs +31739 -0
  267. package/fesm2020/sumaris-net.ngx-components.mjs.map +1 -0
  268. package/index.d.ts +5 -0
  269. package/package.json +25 -34
  270. package/public_api.d.ts +23 -28
  271. package/public_test_api.d.ts +37 -0
  272. package/resources/README.md +8 -0
  273. package/src/app/admin/admin-routing.module.d.ts +7 -0
  274. package/src/app/admin/admin.module.d.ts +11 -0
  275. package/src/app/admin/services/person.service.d.ts +3 -0
  276. package/src/app/admin/services/validator/person.validator.d.ts +8 -5
  277. package/src/app/admin/users/list/users.d.ts +10 -7
  278. package/src/app/core/about/modal-about.d.ts +3 -0
  279. package/src/app/core/account/account.d.ts +11 -8
  280. package/src/app/core/auth/form/form-auth.d.ts +6 -3
  281. package/src/app/core/auth/modal/modal-auth.d.ts +3 -0
  282. package/src/app/core/core.module.d.ts +36 -0
  283. package/src/app/core/core.testing.module.d.ts +9 -0
  284. package/src/app/core/form/editor.class.d.ts +7 -2
  285. package/src/app/core/form/entity-editor-modal.class.d.ts +7 -4
  286. package/src/app/core/form/entity-editor.class.d.ts +4 -1
  287. package/src/app/core/form/entity-metadata.component.d.ts +3 -0
  288. package/src/app/core/form/form-buttons-bar.component.d.ts +3 -0
  289. package/src/app/core/form/form.class.d.ts +12 -9
  290. package/src/app/core/form/form.utils.d.ts +4 -4
  291. package/src/app/core/form/list.form.d.ts +10 -7
  292. package/src/app/core/form/properties.form.d.ts +10 -7
  293. package/src/app/core/graphql/graphql.module.d.ts +5 -0
  294. package/src/app/core/graphql/graphql.service.d.ts +9 -2
  295. package/src/app/core/graphql/graphql.utils.d.ts +8 -0
  296. package/src/app/core/home/home.d.ts +4 -1
  297. package/src/app/core/icon/icon.component.d.ts +5 -2
  298. package/src/app/core/icon/icon.module.d.ts +7 -0
  299. package/src/app/core/install/install-upgrade-card.component.d.ts +5 -2
  300. package/src/app/core/install/install-upgrade-card.module.d.ts +10 -0
  301. package/src/app/core/menu/menu.component.d.ts +7 -5
  302. package/src/app/core/menu/menu.module.d.ts +8 -0
  303. package/src/app/core/menu/menu.service.d.ts +3 -0
  304. package/src/app/core/offline/update-offline-mode-card.component.d.ts +3 -0
  305. package/src/app/core/peer/select-peer.modal.d.ts +7 -4
  306. package/src/app/core/peer/select-peer.module.d.ts +9 -0
  307. package/src/app/core/register/confirm/confirm.d.ts +3 -0
  308. package/src/app/core/register/form/form-register.d.ts +10 -7
  309. package/src/app/core/register/modal/modal-register.d.ts +3 -0
  310. package/src/app/core/register/register.module.d.ts +12 -0
  311. package/src/app/core/services/account.service.d.ts +5 -2
  312. package/src/app/core/services/auth-guard.service.d.ts +3 -0
  313. package/src/app/core/services/base-entity-service.class.d.ts +3 -0
  314. package/src/app/core/services/base-graphql-service.class.d.ts +3 -0
  315. package/src/app/core/services/config.service.d.ts +4 -1
  316. package/src/app/core/services/crypto.service.d.ts +3 -0
  317. package/src/app/core/services/local-settings.service.d.ts +5 -1
  318. package/src/app/core/services/model/referential.model.d.ts +1 -1
  319. package/src/app/core/services/network.service.d.ts +6 -5
  320. package/src/app/core/services/pipes/account.pipes.d.ts +7 -0
  321. package/src/app/core/services/pipes/department-to-string.pipe.d.ts +4 -0
  322. package/src/app/core/services/pipes/person-to-string.pipe.d.ts +4 -0
  323. package/src/app/core/services/pipes/usage-mode.pipes.d.ts +7 -0
  324. package/src/app/core/services/platform.service.d.ts +22 -21
  325. package/src/app/core/services/storage/entities-storage.service.d.ts +5 -2
  326. package/src/app/core/services/storage/entity-store.class.d.ts +3 -3
  327. package/src/app/core/services/testing/referential.validator.d.ts +8 -5
  328. package/src/app/core/services/validator/account.validator.d.ts +6 -3
  329. package/src/app/core/services/validator/base.validator.class.d.ts +8 -5
  330. package/src/app/core/services/validator/local-settings.validator.d.ts +8 -5
  331. package/src/app/core/services/validator/user-settings.validator.d.ts +6 -3
  332. package/src/app/core/settings/settings.page.d.ts +8 -5
  333. package/src/app/core/table/actions-column.component.d.ts +3 -0
  334. package/src/app/core/table/entities-table-datasource.class.d.ts +11 -9
  335. package/src/app/core/table/memory-table.class.d.ts +3 -0
  336. package/src/app/core/table/table-select-columns.component.d.ts +4 -5
  337. package/src/app/core/table/table.class.d.ts +53 -34
  338. package/src/app/core/table/testing/table.testing.d.ts +13 -15
  339. package/src/app/core/table/testing/table.testing.module.d.ts +9 -0
  340. package/src/app/core/text-popover/testing/text-popover.testing.d.ts +4 -1
  341. package/src/app/core/text-popover/testing/text-popover.testing.module.d.ts +9 -0
  342. package/src/app/core/text-popover/text-form.component.d.ts +7 -4
  343. package/src/app/core/text-popover/text-popover.component.d.ts +3 -0
  344. package/src/app/shared/alerts.d.ts +4 -4
  345. package/src/app/shared/audio/audio.d.ts +20 -11
  346. package/src/app/shared/audio/audio.testing.d.ts +13 -0
  347. package/src/app/shared/audio/audio.testing.module.d.ts +11 -0
  348. package/src/app/shared/capacitor/keyboard.d.ts +16 -0
  349. package/src/app/shared/capacitor/plugins.d.ts +7 -0
  350. package/src/app/shared/constants.d.ts +1 -0
  351. package/src/app/shared/directives/autofocus.directive.d.ts +9 -7
  352. package/src/app/shared/directives/autotitle.directive.d.ts +3 -0
  353. package/src/app/shared/directives/directives.module.d.ts +10 -0
  354. package/src/app/shared/directives/drag-and-drop.directive.d.ts +3 -0
  355. package/src/app/shared/directives/ng-var.directive.d.ts +3 -0
  356. package/src/app/shared/directives/resizable/resizable.component.d.ts +3 -0
  357. package/src/app/shared/directives/resizable/resizable.directive.d.ts +3 -0
  358. package/src/app/shared/directives/resizable/resizable.module.d.ts +6 -0
  359. package/src/app/shared/file/file.service.d.ts +3 -0
  360. package/src/app/shared/file/file.utils.d.ts +1 -1
  361. package/src/app/shared/form/field.component.d.ts +9 -3
  362. package/src/app/shared/form/field.model.d.ts +2 -2
  363. package/src/app/shared/form/loading-spinner.d.ts +3 -0
  364. package/src/app/shared/forms.d.ts +12 -12
  365. package/src/app/shared/gesture/gesture-config.d.ts +3 -0
  366. package/src/app/shared/gesture/hammer.utils.d.ts +11 -11
  367. package/src/app/shared/guard/component-dirty.guard.d.ts +3 -0
  368. package/src/app/shared/help/help.modal.d.ts +4 -1
  369. package/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.d.ts +3 -0
  370. package/src/app/shared/hotkeys/hotkeys.service.d.ts +4 -1
  371. package/src/app/shared/hotkeys/shared-hotkeys.module.d.ts +9 -0
  372. package/src/app/shared/image/gallery/image-gallery.component.d.ts +77 -0
  373. package/src/app/shared/image/gallery/image-gallery.module.d.ts +12 -0
  374. package/src/app/shared/image/gallery/testing/gallegry.model.testing.d.ts +12 -0
  375. package/src/app/shared/image/gallery/testing/gallery.service.testing.d.ts +33 -0
  376. package/src/app/shared/image/gallery/testing/gallery.testing.d.ts +15 -0
  377. package/src/app/shared/image/gallery/testing/gallery.testing.module.d.ts +12 -0
  378. package/src/app/shared/image/image.model.d.ts +5 -0
  379. package/src/app/shared/image/image.module.d.ts +8 -0
  380. package/src/app/shared/image/image.service.d.ts +32 -0
  381. package/src/app/shared/inputs.d.ts +3 -3
  382. package/src/app/shared/material/autocomplete/material.autocomplete.config.d.ts +36 -0
  383. package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +11 -40
  384. package/src/app/shared/material/autocomplete/material.autocomplete.module.d.ts +19 -0
  385. package/src/app/shared/material/autocomplete/material.autocomplete.utils.d.ts +4 -0
  386. package/src/app/shared/material/autocomplete/testing/autocomplete.test.d.ts +12 -9
  387. package/src/app/shared/material/badge/badge-icon.directive.d.ts +6 -4
  388. package/src/app/shared/material/badge/badge-icon.module.d.ts +8 -0
  389. package/src/app/shared/material/badge/badge-icon.test.d.ts +4 -1
  390. package/src/app/shared/material/boolean/boolean.module.d.ts +17 -0
  391. package/src/app/shared/material/boolean/material.boolean.d.ts +7 -4
  392. package/src/app/shared/material/chips/chips.module.d.ts +19 -0
  393. package/src/app/shared/material/chips/material.chips.d.ts +11 -8
  394. package/src/app/shared/material/chips/testing/chips.test.d.ts +8 -5
  395. package/src/app/shared/material/datetime/datetime.module.d.ts +22 -0
  396. package/src/app/shared/material/datetime/material.date.d.ts +11 -9
  397. package/src/app/shared/material/datetime/material.dateshort.d.ts +10 -9
  398. package/src/app/shared/material/datetime/material.datetime.d.ts +13 -12
  399. package/src/app/shared/material/datetime/testing/mat-date-time.test.d.ts +11 -9
  400. package/src/app/shared/material/datetime/testing/mat-date.test.d.ts +11 -9
  401. package/src/app/shared/material/duration/duration.module.d.ts +16 -0
  402. package/src/app/shared/material/duration/material.duration.d.ts +8 -5
  403. package/src/app/shared/material/latlong/material.latlong.d.ts +8 -5
  404. package/src/app/shared/material/latlong/material.latlong.module.d.ts +17 -0
  405. package/src/app/shared/material/latlong/testing/latlong.test.d.ts +10 -7
  406. package/src/app/shared/material/material.module.d.ts +43 -0
  407. package/src/app/shared/material/material.testing.module.d.ts +19 -0
  408. package/src/app/shared/material/numpad/numpad.append-to-input.directive.d.ts +3 -0
  409. package/src/app/shared/material/numpad/numpad.component.d.ts +4 -1
  410. package/src/app/shared/material/numpad/numpad.container.d.ts +5 -2
  411. package/src/app/shared/material/numpad/numpad.content.d.ts +3 -0
  412. package/src/app/shared/material/numpad/numpad.directive.d.ts +4 -1
  413. package/src/app/shared/material/numpad/numpad.dom-service.d.ts +3 -0
  414. package/src/app/shared/material/numpad/numpad.model.d.ts +1 -1
  415. package/src/app/shared/material/numpad/numpad.module.d.ts +14 -0
  416. package/src/app/shared/material/numpad/testing/numpad.test.d.ts +7 -4
  417. package/src/app/shared/material/paginator/material.paginator-i18n.d.ts +3 -0
  418. package/src/app/shared/material/stepper/material.stepper-i18n.d.ts +3 -0
  419. package/src/app/shared/material/swipe/material.swipe.d.ts +6 -3
  420. package/src/app/shared/material/swipe/swipe.module.d.ts +13 -0
  421. package/src/app/shared/material/swipe/testing/swipe.test.d.ts +7 -4
  422. package/src/app/shared/pipes/arrays.pipe.d.ts +15 -0
  423. package/src/app/shared/pipes/colors.pipe.d.ts +9 -0
  424. package/src/app/shared/pipes/date-diff-duration.pipe.d.ts +4 -0
  425. package/src/app/shared/pipes/date-format.pipe.d.ts +4 -0
  426. package/src/app/shared/pipes/date-from-now.pipe.d.ts +4 -0
  427. package/src/app/shared/pipes/duration.pipe.d.ts +4 -0
  428. package/src/app/shared/pipes/file-size.pipe.d.ts +3 -0
  429. package/src/app/shared/pipes/form.pipes.d.ts +18 -5
  430. package/src/app/shared/pipes/highlight.pipe.d.ts +4 -0
  431. package/src/app/shared/pipes/latlong-format.pipe.d.ts +7 -0
  432. package/src/app/shared/pipes/maps.pipe.d.ts +10 -0
  433. package/src/app/shared/pipes/math.pipes.d.ts +10 -0
  434. package/src/app/shared/pipes/ng-init.pipe.d.ts +3 -0
  435. package/src/app/shared/pipes/number-format.pipe.d.ts +4 -0
  436. package/src/app/shared/pipes/pipes.module.d.ts +24 -0
  437. package/src/app/shared/pipes/property.pipes.d.ts +6 -0
  438. package/src/app/shared/pipes/string.pipes.d.ts +11 -0
  439. package/src/app/shared/pipes/translate-context.pipe.d.ts +7 -0
  440. package/src/app/shared/platforms.d.ts +1 -0
  441. package/src/app/shared/services/entity-service.class.d.ts +3 -0
  442. package/src/app/shared/services/memory-entity-service.class.d.ts +3 -0
  443. package/src/app/shared/services/progress-bar.service.d.ts +4 -1
  444. package/src/app/shared/services/storage/storage.service.d.ts +23 -0
  445. package/src/app/shared/services/storage/storage.utils.d.ts +19 -0
  446. package/src/app/shared/services/translate-context.service.d.ts +3 -0
  447. package/src/app/shared/services/validator-service.class.d.ts +2 -2
  448. package/src/app/shared/shared-routing.module.d.ts +7 -0
  449. package/src/app/shared/shared.module.d.ts +23 -0
  450. package/src/app/shared/shared.testing.module.d.ts +12 -0
  451. package/src/app/shared/testing/tests.page.d.ts +3 -0
  452. package/src/app/shared/toast/toast.testing.d.ts +3 -0
  453. package/src/app/shared/toast/toast.testing.module.d.ts +9 -0
  454. package/src/app/shared/toolbar/modal-toolbar.d.ts +5 -2
  455. package/src/app/shared/toolbar/toolbar.d.ts +9 -5
  456. package/src/app/shared/toolbar/toolbar.module.d.ts +15 -0
  457. package/src/app/shared/upload-file/testing/upload-file.testing.d.ts +4 -1
  458. package/src/app/shared/upload-file/testing/upload-file.testing.module.d.ts +9 -0
  459. package/src/app/shared/upload-file/upload-file-popover.component.d.ts +3 -0
  460. package/src/app/shared/upload-file/upload-file.component.d.ts +3 -0
  461. package/src/app/shared/validator/form-error-adapter.class.d.ts +3 -0
  462. package/src/app/shared/validator/validators.d.ts +9 -9
  463. package/src/app/social/job/job.module.d.ts +9 -0
  464. package/src/app/social/job/job.service.d.ts +3 -0
  465. package/src/app/social/job/progression/job-progression.component.d.ts +4 -1
  466. package/src/app/social/job/progression/job-progression.list.d.ts +3 -0
  467. package/src/app/social/job/testing/job-progression.testing.d.ts +3 -0
  468. package/src/app/social/job/testing/job-progression.testing.service.d.ts +3 -0
  469. package/src/app/social/job/testing/job.testing.module.d.ts +9 -0
  470. package/src/app/social/message/message.form.d.ts +5 -2
  471. package/src/app/social/message/message.modal.d.ts +5 -2
  472. package/src/app/social/message/message.module.d.ts +9 -0
  473. package/src/app/social/message/message.service.d.ts +3 -0
  474. package/src/app/social/social.module.d.ts +10 -0
  475. package/src/app/social/social.testing.module.d.ts +9 -0
  476. package/src/app/social/user-event/notification/user-event-notification.icon.d.ts +4 -1
  477. package/src/app/social/user-event/notification/user-event-notification.list.d.ts +7 -4
  478. package/src/app/social/user-event/testing/user-event.testing.d.ts +3 -0
  479. package/src/app/social/user-event/testing/user-event.testing.model.d.ts +1 -0
  480. package/src/app/social/user-event/testing/user-event.testing.module.d.ts +9 -0
  481. package/src/app/social/user-event/testing/user-event.testing.service.d.ts +5 -1
  482. package/src/app/social/user-event/user-event.model.d.ts +3 -2
  483. package/src/app/social/user-event/user-event.module.d.ts +10 -0
  484. package/src/app/social/user-event/user-event.service.d.ts +16 -11
  485. package/src/assets/audio/beep-notification.mp3 +0 -0
  486. package/src/assets/i18n/fr.json +9 -2
  487. package/src/environments/environment.class.d.ts +2 -0
  488. package/src/environments/environment.d.ts +1 -1
  489. package/src/theme/_icons.scss +1 -1
  490. package/src/theme/_material.globals.scss +29 -31
  491. package/src/theme/_material.scss +3 -2
  492. package/src/theme/_mixins.scss +4 -4
  493. package/src/theme/_ngx-components.scss +6 -0
  494. package/src/theme/_print.scss +24 -0
  495. package/bundles/sumaris-net.ngx-components.umd.js +0 -35297
  496. package/bundles/sumaris-net.ngx-components.umd.js.map +0 -1
  497. package/bundles/sumaris-net.ngx-components.umd.min.js +0 -25
  498. package/bundles/sumaris-net.ngx-components.umd.min.js.map +0 -1
  499. package/esm2015/public_api.js +0 -244
  500. package/esm2015/src/app/admin/admin-routing.module.js +0 -34
  501. package/esm2015/src/app/admin/admin.module.js +0 -34
  502. package/esm2015/src/app/admin/services/filter/person.filter.js +0 -59
  503. package/esm2015/src/app/admin/services/person.service.js +0 -175
  504. package/esm2015/src/app/admin/services/validator/person.validator.js +0 -37
  505. package/esm2015/src/app/admin/users/list/users.js +0 -216
  506. package/esm2015/src/app/core/about/modal-about.js +0 -63
  507. package/esm2015/src/app/core/account/account.js +0 -240
  508. package/esm2015/src/app/core/auth/form/form-auth.js +0 -134
  509. package/esm2015/src/app/core/auth/modal/modal-auth.js +0 -78
  510. package/esm2015/src/app/core/core.module.js +0 -127
  511. package/esm2015/src/app/core/core.testing.module.js +0 -51
  512. package/esm2015/src/app/core/form/editor.class.js +0 -632
  513. package/esm2015/src/app/core/form/entity-editor-modal.class.js +0 -421
  514. package/esm2015/src/app/core/form/entity-editor.class.js +0 -696
  515. package/esm2015/src/app/core/form/entity-metadata.component.js +0 -22
  516. package/esm2015/src/app/core/form/form-buttons-bar.component.js +0 -63
  517. package/esm2015/src/app/core/form/form.class.js +0 -338
  518. package/esm2015/src/app/core/form/form.utils.js +0 -264
  519. package/esm2015/src/app/core/form/list.form.js +0 -219
  520. package/esm2015/src/app/core/form/properties.form.js +0 -119
  521. package/esm2015/src/app/core/graphql/graphql.module.js +0 -18
  522. package/esm2015/src/app/core/graphql/graphql.service.js +0 -734
  523. package/esm2015/src/app/core/graphql/graphql.utils.js +0 -107
  524. package/esm2015/src/app/core/home/home.js +0 -265
  525. package/esm2015/src/app/core/icon/icon.component.js +0 -32
  526. package/esm2015/src/app/core/icon/icon.module.js +0 -26
  527. package/esm2015/src/app/core/install/install-upgrade-card.component.js +0 -358
  528. package/esm2015/src/app/core/menu/menu.component.js +0 -329
  529. package/esm2015/src/app/core/menu/menu.module.js +0 -28
  530. package/esm2015/src/app/core/offline/update-offline-mode-card.component.js +0 -26
  531. package/esm2015/src/app/core/peer/select-peer.modal.js +0 -134
  532. package/esm2015/src/app/core/register/confirm/confirm.js +0 -86
  533. package/esm2015/src/app/core/register/form/form-register.js +0 -172
  534. package/esm2015/src/app/core/register/modal/modal-register.js +0 -55
  535. package/esm2015/src/app/core/services/account.service.js +0 -1165
  536. package/esm2015/src/app/core/services/auth-guard.service.js +0 -77
  537. package/esm2015/src/app/core/services/base-entity-service.class.js +0 -455
  538. package/esm2015/src/app/core/services/base-graphql-service.class.js +0 -221
  539. package/esm2015/src/app/core/services/config.service.js +0 -385
  540. package/esm2015/src/app/core/services/local-settings.service.js +0 -460
  541. package/esm2015/src/app/core/services/model/account.model.js +0 -50
  542. package/esm2015/src/app/core/services/model/config.model.js +0 -89
  543. package/esm2015/src/app/core/services/model/department.model.js +0 -30
  544. package/esm2015/src/app/core/services/model/entity.decorators.js +0 -104
  545. package/esm2015/src/app/core/services/model/entity.model.js +0 -245
  546. package/esm2015/src/app/core/services/model/peer.model.js +0 -68
  547. package/esm2015/src/app/core/services/model/person.model.js +0 -83
  548. package/esm2015/src/app/core/services/model/referential.model.js +0 -147
  549. package/esm2015/src/app/core/services/model/settings.model.js +0 -75
  550. package/esm2015/src/app/core/services/network.service.js +0 -639
  551. package/esm2015/src/app/core/services/network.utils.js +0 -19
  552. package/esm2015/src/app/core/services/pipes/account.pipes.js +0 -28
  553. package/esm2015/src/app/core/services/pipes/department-to-string.pipe.js +0 -18
  554. package/esm2015/src/app/core/services/pipes/person-to-string.pipe.js +0 -18
  555. package/esm2015/src/app/core/services/pipes/usage-mode.pipes.js +0 -27
  556. package/esm2015/src/app/core/services/platform.service.js +0 -549
  557. package/esm2015/src/app/core/services/storage/entities-storage.service.js +0 -452
  558. package/esm2015/src/app/core/services/storage/entity-store.class.js +0 -461
  559. package/esm2015/src/app/core/services/testing/referential-filter.model.js +0 -23
  560. package/esm2015/src/app/core/services/testing/referential.validator.js +0 -44
  561. package/esm2015/src/app/core/services/validator/account.validator.js +0 -55
  562. package/esm2015/src/app/core/services/validator/base.validator.class.js +0 -48
  563. package/esm2015/src/app/core/services/validator/local-settings.validator.js +0 -72
  564. package/esm2015/src/app/core/services/validator/user-settings.validator.js +0 -30
  565. package/esm2015/src/app/core/settings/settings.page.js +0 -305
  566. package/esm2015/src/app/core/table/actions-column.component.js +0 -74
  567. package/esm2015/src/app/core/table/entities-table-datasource.class.js +0 -389
  568. package/esm2015/src/app/core/table/memory-table.class.js +0 -59
  569. package/esm2015/src/app/core/table/table-select-columns.component.js +0 -44
  570. package/esm2015/src/app/core/table/table.class.js +0 -1651
  571. package/esm2015/src/app/core/table/testing/table.testing.js +0 -241
  572. package/esm2015/src/app/core/table/testing/table.testing.module.js +0 -26
  573. package/esm2015/src/app/core/text-popover/testing/text-popover.testing.js +0 -37
  574. package/esm2015/src/app/core/text-popover/testing/text-popover.testing.module.js +0 -33
  575. package/esm2015/src/app/core/text-popover/text-form.component.js +0 -72
  576. package/esm2015/src/app/core/text-popover/text-popover.component.js +0 -90
  577. package/esm2015/src/app/shared/alerts.js +0 -251
  578. package/esm2015/src/app/shared/audio/audio.js +0 -178
  579. package/esm2015/src/app/shared/dates.js +0 -134
  580. package/esm2015/src/app/shared/directives/autofocus.directive.js +0 -90
  581. package/esm2015/src/app/shared/directives/autotitle.directive.js +0 -27
  582. package/esm2015/src/app/shared/directives/directives.module.js +0 -30
  583. package/esm2015/src/app/shared/directives/drag-and-drop.directive.js +0 -43
  584. package/esm2015/src/app/shared/directives/ng-var.directive.js +0 -32
  585. package/esm2015/src/app/shared/directives/resizable/resizable.component.js +0 -54
  586. package/esm2015/src/app/shared/directives/resizable/resizable.directive.js +0 -34
  587. package/esm2015/src/app/shared/directives/resizable/resizable.module.js +0 -12
  588. package/esm2015/src/app/shared/events.js +0 -61
  589. package/esm2015/src/app/shared/file/csv.utils.js +0 -70
  590. package/esm2015/src/app/shared/file/file.service.js +0 -121
  591. package/esm2015/src/app/shared/file/file.utils.js +0 -116
  592. package/esm2015/src/app/shared/file/images.utils.js +0 -166
  593. package/esm2015/src/app/shared/form/field.component.js +0 -206
  594. package/esm2015/src/app/shared/form/loading-spinner.js +0 -24
  595. package/esm2015/src/app/shared/forms.js +0 -339
  596. package/esm2015/src/app/shared/functions.js +0 -418
  597. package/esm2015/src/app/shared/gesture/hammer.utils.js +0 -2
  598. package/esm2015/src/app/shared/graph/graph-colors.js +0 -256
  599. package/esm2015/src/app/shared/guard/component-dirty.guard.js +0 -61
  600. package/esm2015/src/app/shared/help/help.modal.js +0 -56
  601. package/esm2015/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.js +0 -20
  602. package/esm2015/src/app/shared/hotkeys/hotkeys.service.js +0 -91
  603. package/esm2015/src/app/shared/hotkeys/shared-hotkeys.module.js +0 -29
  604. package/esm2015/src/app/shared/http/http.utils.js +0 -57
  605. package/esm2015/src/app/shared/material/autocomplete/material.autocomplete.js +0 -825
  606. package/esm2015/src/app/shared/material/autocomplete/material.autocomplete.module.js +0 -46
  607. package/esm2015/src/app/shared/material/autocomplete/testing/autocomplete.test.js +0 -200
  608. package/esm2015/src/app/shared/material/badge/badge-icon.directive.js +0 -135
  609. package/esm2015/src/app/shared/material/badge/badge-icon.module.js +0 -23
  610. package/esm2015/src/app/shared/material/badge/badge-icon.test.js +0 -17
  611. package/esm2015/src/app/shared/material/boolean/boolean.module.js +0 -41
  612. package/esm2015/src/app/shared/material/boolean/material.boolean.js +0 -223
  613. package/esm2015/src/app/shared/material/chips/chips.module.js +0 -45
  614. package/esm2015/src/app/shared/material/chips/material.chips.js +0 -636
  615. package/esm2015/src/app/shared/material/chips/testing/chips.test.js +0 -138
  616. package/esm2015/src/app/shared/material/datetime/datetime.module.js +0 -54
  617. package/esm2015/src/app/shared/material/datetime/material.date.js +0 -375
  618. package/esm2015/src/app/shared/material/datetime/material.dateshort.js +0 -316
  619. package/esm2015/src/app/shared/material/datetime/material.datetime.js +0 -398
  620. package/esm2015/src/app/shared/material/datetime/testing/mat-date-time.test.js +0 -110
  621. package/esm2015/src/app/shared/material/datetime/testing/mat-date.test.js +0 -108
  622. package/esm2015/src/app/shared/material/duration/duration.module.js +0 -40
  623. package/esm2015/src/app/shared/material/duration/material.duration.js +0 -246
  624. package/esm2015/src/app/shared/material/latlong/latlong.utils.js +0 -249
  625. package/esm2015/src/app/shared/material/latlong/material.latlong.js +0 -350
  626. package/esm2015/src/app/shared/material/latlong/material.latlong.module.js +0 -41
  627. package/esm2015/src/app/shared/material/latlong/testing/latlong.test.js +0 -70
  628. package/esm2015/src/app/shared/material/material.module.js +0 -93
  629. package/esm2015/src/app/shared/material/numpad/numpad.append-to-input.directive.js +0 -96
  630. package/esm2015/src/app/shared/material/numpad/numpad.component.js +0 -73
  631. package/esm2015/src/app/shared/material/numpad/numpad.container.js +0 -149
  632. package/esm2015/src/app/shared/material/numpad/numpad.content.js +0 -14
  633. package/esm2015/src/app/shared/material/numpad/numpad.directive.js +0 -148
  634. package/esm2015/src/app/shared/material/numpad/numpad.dom-service.js +0 -37
  635. package/esm2015/src/app/shared/material/numpad/numpad.module.js +0 -39
  636. package/esm2015/src/app/shared/material/numpad/testing/numpad.test.js +0 -44
  637. package/esm2015/src/app/shared/material/paginator/material.paginator-i18n.js +0 -44
  638. package/esm2015/src/app/shared/material/stepper/material.stepper-i18n.js +0 -24
  639. package/esm2015/src/app/shared/material/swipe/material.swipe.js +0 -308
  640. package/esm2015/src/app/shared/material/swipe/swipe.module.js +0 -33
  641. package/esm2015/src/app/shared/material/swipe/testing/swipe.test.js +0 -68
  642. package/esm2015/src/app/shared/observables.js +0 -99
  643. package/esm2015/src/app/shared/pipes/arrays.pipe.js +0 -92
  644. package/esm2015/src/app/shared/pipes/date-diff-duration.pipe.js +0 -50
  645. package/esm2015/src/app/shared/pipes/date-format.pipe.js +0 -43
  646. package/esm2015/src/app/shared/pipes/file-size.pipe.js +0 -58
  647. package/esm2015/src/app/shared/pipes/form.pipes.js +0 -177
  648. package/esm2015/src/app/shared/pipes/highlight.pipe.js +0 -43
  649. package/esm2015/src/app/shared/pipes/latlong-format.pipe.js +0 -36
  650. package/esm2015/src/app/shared/pipes/maps.pipe.js +0 -48
  651. package/esm2015/src/app/shared/pipes/math.pipes.js +0 -44
  652. package/esm2015/src/app/shared/pipes/ng-init.pipe.js +0 -18
  653. package/esm2015/src/app/shared/pipes/pipes.module.js +0 -115
  654. package/esm2015/src/app/shared/pipes/property.pipes.js +0 -98
  655. package/esm2015/src/app/shared/pipes/string.pipes.js +0 -53
  656. package/esm2015/src/app/shared/pipes/translate-context.pipe.js +0 -36
  657. package/esm2015/src/app/shared/platforms.js +0 -45
  658. package/esm2015/src/app/shared/services/entity-service.class.js +0 -17
  659. package/esm2015/src/app/shared/services/job.utils.js +0 -96
  660. package/esm2015/src/app/shared/services/memory-entity-service.class.js +0 -260
  661. package/esm2015/src/app/shared/services/progress-bar.service.js +0 -30
  662. package/esm2015/src/app/shared/services/startable-service.class.js +0 -98
  663. package/esm2015/src/app/shared/services/storage.utils.js +0 -41
  664. package/esm2015/src/app/shared/services/translate-context.service.js +0 -83
  665. package/esm2015/src/app/shared/services/validator-service.class.js +0 -2
  666. package/esm2015/src/app/shared/services.js +0 -61
  667. package/esm2015/src/app/shared/shared-routing.module.js +0 -54
  668. package/esm2015/src/app/shared/shared.module.js +0 -135
  669. package/esm2015/src/app/shared/shared.testing.module.js +0 -33
  670. package/esm2015/src/app/shared/testing/tests.page.js +0 -34
  671. package/esm2015/src/app/shared/toast/toast.testing.js +0 -39
  672. package/esm2015/src/app/shared/toast/toast.testing.module.js +0 -33
  673. package/esm2015/src/app/shared/toast/toasts.js +0 -119
  674. package/esm2015/src/app/shared/toolbar/modal-toolbar.js +0 -53
  675. package/esm2015/src/app/shared/toolbar/toolbar.js +0 -213
  676. package/esm2015/src/app/shared/upload-file/testing/upload-file.testing.js +0 -59
  677. package/esm2015/src/app/shared/upload-file/testing/upload-file.testing.module.js +0 -33
  678. package/esm2015/src/app/shared/upload-file/upload-file-popover.component.js +0 -98
  679. package/esm2015/src/app/shared/upload-file/upload-file.component.js +0 -202
  680. package/esm2015/src/app/shared/upload-file/upload-file.model.js +0 -20
  681. package/esm2015/src/app/shared/validator/form-error-adapter.class.js +0 -99
  682. package/esm2015/src/app/shared/validator/validators.js +0 -537
  683. package/esm2015/src/app/social/job/job.model.js +0 -26
  684. package/esm2015/src/app/social/job/job.module.js +0 -25
  685. package/esm2015/src/app/social/job/job.service.js +0 -54
  686. package/esm2015/src/app/social/job/progression/job-progression.component.js +0 -200
  687. package/esm2015/src/app/social/job/progression/job-progression.list.js +0 -20
  688. package/esm2015/src/app/social/job/testing/job-progression.testing.js +0 -48
  689. package/esm2015/src/app/social/job/testing/job-progression.testing.service.js +0 -30
  690. package/esm2015/src/app/social/job/testing/job.testing.module.js +0 -25
  691. package/esm2015/src/app/social/message/message.form.js +0 -73
  692. package/esm2015/src/app/social/message/message.modal.js +0 -96
  693. package/esm2015/src/app/social/message/message.model.js +0 -65
  694. package/esm2015/src/app/social/message/message.module.js +0 -25
  695. package/esm2015/src/app/social/message/message.service.js +0 -87
  696. package/esm2015/src/app/social/social.module.js +0 -28
  697. package/esm2015/src/app/social/social.testing.module.js +0 -39
  698. package/esm2015/src/app/social/user-event/notification/user-event-notification.icon.js +0 -95
  699. package/esm2015/src/app/social/user-event/notification/user-event-notification.list.js +0 -203
  700. package/esm2015/src/app/social/user-event/testing/user-event.testing.js +0 -230
  701. package/esm2015/src/app/social/user-event/testing/user-event.testing.model.js +0 -103
  702. package/esm2015/src/app/social/user-event/testing/user-event.testing.module.js +0 -25
  703. package/esm2015/src/app/social/user-event/testing/user-event.testing.service.js +0 -117
  704. package/esm2015/src/app/social/user-event/user-event.model.js +0 -2
  705. package/esm2015/src/app/social/user-event/user-event.module.js +0 -27
  706. package/esm2015/src/app/social/user-event/user-event.service.js +0 -509
  707. package/esm2015/src/environments/environment.class.js +0 -5
  708. package/esm2015/src/environments/environment.js +0 -81
  709. package/esm2015/sumaris-net.ngx-components.js +0 -21
  710. package/fesm2015/sumaris-net.ngx-components.js +0 -29932
  711. package/fesm2015/sumaris-net.ngx-components.js.map +0 -1
  712. package/src/app/shared/services/storage.utils.d.ts +0 -13
  713. package/sumaris-net.ngx-components.d.ts +0 -20
  714. package/sumaris-net.ngx-components.metadata.json +0 -1
@@ -0,0 +1,208 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { SharedMaterialModule } from './material/material.module';
4
+ import { ReactiveFormsModule } from '@angular/forms';
5
+ import { TranslateModule, TranslateService } from '@ngx-translate/core';
6
+ import { IonicModule } from '@ionic/angular';
7
+ import { DateFormatPipe } from './pipes/date-format.pipe';
8
+ import { DateFromNowPipe } from './pipes/date-from-now.pipe';
9
+ import { TextMaskModule } from 'angular2-text-mask';
10
+ import { MatPaginatorIntl } from '@angular/material/paginator';
11
+ import { MatPaginatorI18n } from './material/paginator/material.paginator-i18n';
12
+ import { ProgressBarService } from './services/progress-bar.service';
13
+ import { HTTP_INTERCEPTORS } from '@angular/common/http';
14
+ import { ProgressInterceptor } from './interceptors/progess.interceptor';
15
+ import { ColorPickerModule } from 'ngx-color-picker';
16
+ import { AppFormField } from './form/field.component';
17
+ import { AudioProvider } from './audio/audio';
18
+ import { FullscreenOverlayContainer, Overlay, OverlayContainer } from '@angular/cdk/overlay';
19
+ import { SharedHotkeysModule } from './hotkeys/shared-hotkeys.module';
20
+ import { FileService } from './file/file.service';
21
+ import { DragDropModule } from '@angular/cdk/drag-drop';
22
+ import { MAT_AUTOCOMPLETE_DEFAULT_OPTIONS, MAT_AUTOCOMPLETE_SCROLL_STRATEGY } from '@angular/material/autocomplete';
23
+ import { MAT_SELECT_SCROLL_STRATEGY } from '@angular/material/select';
24
+ import { SharedDirectivesModule } from './directives/directives.module';
25
+ import { SharedPipesModule } from './pipes/pipes.module';
26
+ import { AppLoadingSpinner } from './form/loading-spinner';
27
+ import { DateDiffDurationPipe } from './pipes/date-diff-duration.pipe';
28
+ import { LatitudeFormatPipe, LatLongFormatPipe, LongitudeFormatPipe } from './pipes/latlong-format.pipe';
29
+ import { HighlightPipe } from './pipes/highlight.pipe';
30
+ import { NumberFormatPipe } from './pipes/number-format.pipe';
31
+ import { MarkdownModule } from 'ngx-markdown';
32
+ import { AppHelpModal } from './help/help.modal';
33
+ import { ENVIRONMENT } from '../../environments/environment.class';
34
+ import { TranslateContextService } from './services/translate-context.service';
35
+ import { MatStepperIntl } from '@angular/material/stepper';
36
+ import { MatStepperI18n } from './material/stepper/material.stepper-i18n';
37
+ import { UploadFileComponent } from './upload-file/upload-file.component';
38
+ import { UploadFilePopover } from './upload-file/upload-file-popover.component';
39
+ import { SharedTestsPage } from './testing/tests.page';
40
+ import { APP_STORAGE } from './services/storage/storage.utils';
41
+ import { StorageService } from './services/storage/storage.service';
42
+ import { SharedToolbarModule } from './toolbar/toolbar.module';
43
+ import * as i0 from "@angular/core";
44
+ export function scrollFactory(overlay) {
45
+ return () => overlay.scrollStrategies.close();
46
+ }
47
+ export class SharedModule {
48
+ static forRoot(environment) {
49
+ console.debug('[shared] Creating module (root)');
50
+ return {
51
+ ngModule: SharedModule,
52
+ providers: [
53
+ { provide: ENVIRONMENT, useValue: environment },
54
+ { provide: StorageService, useClass: StorageService, deps: [ENVIRONMENT] },
55
+ { provide: APP_STORAGE, useExisting: StorageService },
56
+ StorageService,
57
+ ProgressBarService,
58
+ AudioProvider,
59
+ FileService,
60
+ TranslateContextService,
61
+ // Export Pipes as providers
62
+ DateFormatPipe,
63
+ DateFromNowPipe,
64
+ DateDiffDurationPipe,
65
+ LatLongFormatPipe,
66
+ LatitudeFormatPipe,
67
+ LongitudeFormatPipe,
68
+ HighlightPipe,
69
+ NumberFormatPipe,
70
+ { provide: OverlayContainer, useClass: FullscreenOverlayContainer },
71
+ { provide: HTTP_INTERCEPTORS, useClass: ProgressInterceptor, multi: true, deps: [ProgressBarService] },
72
+ { provide: MatPaginatorIntl, useClass: MatPaginatorI18n, deps: [TranslateService] },
73
+ { provide: MatStepperIntl, useClass: MatStepperI18n, deps: [TranslateService] },
74
+ // FIXME: try to force a custom overlay for autocomplete, because of there is a bug when using inside an ionic modal
75
+ //{ provide: Overlay, useClass: Overlay},
76
+ { provide: MAT_AUTOCOMPLETE_SCROLL_STRATEGY, useFactory: scrollFactory, deps: [Overlay] },
77
+ { provide: MAT_AUTOCOMPLETE_DEFAULT_OPTIONS, useValue: {
78
+ autoActiveFirstOption: true
79
+ }
80
+ },
81
+ { provide: MAT_SELECT_SCROLL_STRATEGY, useFactory: scrollFactory, deps: [Overlay] }
82
+ ]
83
+ };
84
+ }
85
+ }
86
+ SharedModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: SharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
87
+ SharedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.1", ngImport: i0, type: SharedModule, declarations: [
88
+ // Components
89
+ AppFormField,
90
+ AppLoadingSpinner,
91
+ AppHelpModal,
92
+ UploadFileComponent,
93
+ UploadFilePopover,
94
+ SharedTestsPage], imports: [CommonModule,
95
+ IonicModule,
96
+ ReactiveFormsModule,
97
+ TranslateModule,
98
+ ColorPickerModule,
99
+ TextMaskModule,
100
+ DragDropModule,
101
+ MarkdownModule,
102
+ // Sub modules
103
+ SharedMaterialModule,
104
+ SharedDirectivesModule,
105
+ SharedPipesModule,
106
+ SharedHotkeysModule,
107
+ SharedToolbarModule], exports: [CommonModule,
108
+ IonicModule,
109
+ TranslateModule,
110
+ ReactiveFormsModule,
111
+ ColorPickerModule,
112
+ TextMaskModule,
113
+ DragDropModule,
114
+ MarkdownModule,
115
+ // Sub-modules
116
+ SharedMaterialModule,
117
+ SharedDirectivesModule,
118
+ SharedPipesModule,
119
+ SharedHotkeysModule,
120
+ SharedToolbarModule,
121
+ // Components
122
+ AppFormField,
123
+ AppLoadingSpinner,
124
+ AppHelpModal,
125
+ UploadFileComponent,
126
+ UploadFilePopover,
127
+ SharedTestsPage] });
128
+ SharedModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: SharedModule, imports: [CommonModule,
129
+ IonicModule,
130
+ ReactiveFormsModule,
131
+ TranslateModule,
132
+ ColorPickerModule,
133
+ TextMaskModule,
134
+ DragDropModule,
135
+ MarkdownModule,
136
+ // Sub modules
137
+ SharedMaterialModule,
138
+ SharedDirectivesModule,
139
+ SharedPipesModule,
140
+ SharedHotkeysModule,
141
+ SharedToolbarModule, CommonModule,
142
+ IonicModule,
143
+ TranslateModule,
144
+ ReactiveFormsModule,
145
+ ColorPickerModule,
146
+ TextMaskModule,
147
+ DragDropModule,
148
+ MarkdownModule,
149
+ // Sub-modules
150
+ SharedMaterialModule,
151
+ SharedDirectivesModule,
152
+ SharedPipesModule,
153
+ SharedHotkeysModule,
154
+ SharedToolbarModule] });
155
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: SharedModule, decorators: [{
156
+ type: NgModule,
157
+ args: [{
158
+ imports: [
159
+ CommonModule,
160
+ IonicModule,
161
+ ReactiveFormsModule,
162
+ TranslateModule,
163
+ ColorPickerModule,
164
+ TextMaskModule,
165
+ DragDropModule,
166
+ MarkdownModule,
167
+ // Sub modules
168
+ SharedMaterialModule,
169
+ SharedDirectivesModule,
170
+ SharedPipesModule,
171
+ SharedHotkeysModule,
172
+ SharedToolbarModule
173
+ ],
174
+ declarations: [
175
+ // Components
176
+ AppFormField,
177
+ AppLoadingSpinner,
178
+ AppHelpModal,
179
+ UploadFileComponent,
180
+ UploadFilePopover,
181
+ SharedTestsPage,
182
+ ],
183
+ exports: [
184
+ CommonModule,
185
+ IonicModule,
186
+ TranslateModule,
187
+ ReactiveFormsModule,
188
+ ColorPickerModule,
189
+ TextMaskModule,
190
+ DragDropModule,
191
+ MarkdownModule,
192
+ // Sub-modules
193
+ SharedMaterialModule,
194
+ SharedDirectivesModule,
195
+ SharedPipesModule,
196
+ SharedHotkeysModule,
197
+ SharedToolbarModule,
198
+ // Components
199
+ AppFormField,
200
+ AppLoadingSpinner,
201
+ AppHelpModal,
202
+ UploadFileComponent,
203
+ UploadFilePopover,
204
+ SharedTestsPage
205
+ ]
206
+ }]
207
+ }] });
208
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3NoYXJlZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFzQixRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxlQUFlLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDN0QsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sOENBQThDLENBQUM7QUFDOUUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDdkUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDbkQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUMs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QUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxlQUFlO3dCQUNmLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQixjQUFjO3dCQUNkLGNBQWM7d0JBQ2QsY0FBYzt3QkFFZCxjQUFjO3dCQUNkLG9CQUFvQjt3QkFDcEIsc0JBQXNCO3dCQUN0QixpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUVuQixhQUFhO3dCQUNiLFlBQVk7d0JBQ1osaUJBQWlCO3dCQUNqQixZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQixlQUFlO3FCQUNoQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1NoYXJlZE1hdGVyaWFsTW9kdWxlfSBmcm9tICcuL21hdGVyaWFsL21hdGVyaWFsLm1vZHVsZSc7XG5pbXBvcnQge1JlYWN0aXZlRm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7SW9uaWNNb2R1bGV9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7RGF0ZUZvcm1hdFBpcGV9IGZyb20gJy4vcGlwZXMvZGF0ZS1mb3JtYXQucGlwZSc7XG5pbXBvcnQge0RhdGVGcm9tTm93UGlwZX0gZnJvbSAnLi9waXBlcy9kYXRlLWZyb20tbm93LnBpcGUnO1xuaW1wb3J0IHtUZXh0TWFza01vZHVsZX0gZnJvbSAnYW5ndWxhcjItdGV4dC1tYXNrJztcbmltcG9ydCB7TWF0UGFnaW5hdG9ySW50bH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcbmltcG9ydCB7TWF0UGFnaW5hdG9ySTE4bn0gZnJvbSAnLi9tYXRlcmlhbC9wYWdpbmF0b3IvbWF0ZXJpYWwucGFnaW5hdG9yLWkxOG4nO1xuaW1wb3J0IHtQcm9ncmVzc0JhclNlcnZpY2V9IGZyb20gJy4vc2VydmljZXMvcHJvZ3Jlc3MtYmFyLnNlcnZpY2UnO1xuaW1wb3J0IHtIVFRQX0lOVEVSQ0VQVE9SU30gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtQcm9ncmVzc0ludGVyY2VwdG9yfSBmcm9tICcuL2ludGVyY2VwdG9ycy9wcm9nZXNzLmludGVyY2VwdG9yJztcbmltcG9ydCB7Q29sb3JQaWNrZXJNb2R1bGV9IGZyb20gJ25neC1jb2xvci1waWNrZXInO1xuaW1wb3J0IHtBcHBGb3JtRmllbGR9IGZyb20gJy4vZm9ybS9maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHtBdWRpb1Byb3ZpZGVyfSBmcm9tICcuL2F1ZGlvL2F1ZGlvJztcbmltcG9ydCB7Q2xvc2VTY3JvbGxTdHJhdGVneSwgRnVsbHNjcmVlbk92ZXJsYXlDb250YWluZXIsIE92ZXJsYXksIE92ZXJsYXlDb250YWluZXJ9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7U2hhcmVkSG90a2V5c01vZHVsZX0gZnJvbSAnLi9ob3RrZXlzL3NoYXJlZC1ob3RrZXlzLm1vZHVsZSc7XG5pbXBvcnQge0ZpbGVTZXJ2aWNlfSBmcm9tICcuL2ZpbGUvZmlsZS5zZXJ2aWNlJztcbmltcG9ydCB7RHJhZ0Ryb3BNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHtNQVRfQVVUT0NPTVBMRVRFX0RFRkFVTFRfT1BUSU9OUywgTUFUX0FVVE9DT01QTEVURV9TQ1JPTExfU1RSQVRFR1l9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQge01BVF9TRUxFQ1RfU0NST0xMX1NUUkFURUdZfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHtTaGFyZWREaXJlY3RpdmVzTW9kdWxlfSBmcm9tICcuL2RpcmVjdGl2ZXMvZGlyZWN0aXZlcy5tb2R1bGUnO1xuaW1wb3J0IHtTaGFyZWRQaXBlc01vZHVsZX0gZnJvbSAnLi9waXBlcy9waXBlcy5tb2R1bGUnO1xuaW1wb3J0IHtBcHBMb2FkaW5nU3Bpbm5lcn0gZnJvbSAnLi9mb3JtL2xvYWRpbmctc3Bpbm5lcic7XG5pbXBvcnQge0RhdGVEaWZmRHVyYXRpb25QaXBlfSBmcm9tICcuL3BpcGVzL2RhdGUtZGlmZi1kdXJhdGlvbi5waXBlJztcbmltcG9ydCB7TGF0aXR1ZGVGb3JtYXRQaXBlLCBMYXRMb25nRm9ybWF0UGlwZSwgTG9uZ2l0dWRlRm9ybWF0UGlwZX0gZnJvbSAnLi9waXBlcy9sYXRsb25nLWZvcm1hdC5waXBlJztcbmltcG9ydCB7SGlnaGxpZ2h0UGlwZX0gZnJvbSAnLi9waXBlcy9oaWdobGlnaHQucGlwZSc7XG5pbXBvcnQge051bWJlckZvcm1hdFBpcGV9IGZyb20gJy4vcGlwZXMvbnVtYmVyLWZvcm1hdC5waXBlJztcbmltcG9ydCB7TWFya2Rvd25Nb2R1bGV9IGZyb20gJ25neC1tYXJrZG93bic7XG5pbXBvcnQge0FwcEhlbHBNb2RhbH0gZnJvbSAnLi9oZWxwL2hlbHAubW9kYWwnO1xuaW1wb3J0IHtFbnZpcm9ubWVudCwgRU5WSVJPTk1FTlR9IGZyb20gJy4uLy4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudC5jbGFzcyc7XG5pbXBvcnQge1RyYW5zbGF0ZUNvbnRleHRTZXJ2aWNlfSBmcm9tICcuL3NlcnZpY2VzL3RyYW5zbGF0ZS1jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHtNYXRTdGVwcGVySW50bH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc3RlcHBlcic7XG5pbXBvcnQge01hdFN0ZXBwZXJJMThufSBmcm9tICcuL21hdGVyaWFsL3N0ZXBwZXIvbWF0ZXJpYWwuc3RlcHBlci1pMThuJztcbmltcG9ydCB7VXBsb2FkRmlsZUNvbXBvbmVudH0gZnJvbSAnLi91cGxvYWQtZmlsZS91cGxvYWQtZmlsZS5jb21wb25lbnQnO1xuaW1wb3J0IHtVcGxvYWRGaWxlUG9wb3Zlcn0gZnJvbSAnLi91cGxvYWQtZmlsZS91cGxvYWQtZmlsZS1wb3BvdmVyLmNvbXBvbmVudCc7XG5pbXBvcnQge1NoYXJlZFRlc3RzUGFnZX0gZnJvbSAnLi90ZXN0aW5nL3Rlc3RzLnBhZ2UnO1xuaW1wb3J0IHtBUFBfU1RPUkFHRX0gZnJvbSAnLi9zZXJ2aWNlcy9zdG9yYWdlL3N0b3JhZ2UudXRpbHMnO1xuaW1wb3J0IHtTdG9yYWdlU2VydmljZX0gZnJvbSAnLi9zZXJ2aWNlcy9zdG9yYWdlL3N0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQge1NoYXJlZFRvb2xiYXJNb2R1bGV9IGZyb20gJy4vdG9vbGJhci90b29sYmFyLm1vZHVsZSc7XG5cblxuZXhwb3J0IGZ1bmN0aW9uIHNjcm9sbEZhY3Rvcnkob3ZlcmxheTogT3ZlcmxheSk6ICgpID0+IENsb3NlU2Nyb2xsU3RyYXRlZ3kge1xuICByZXR1cm4gKCkgPT4gb3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLmNsb3NlKCk7XG59XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSW9uaWNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgQ29sb3JQaWNrZXJNb2R1bGUsXG4gICAgVGV4dE1hc2tNb2R1bGUsXG4gICAgRHJhZ0Ryb3BNb2R1bGUsXG4gICAgTWFya2Rvd25Nb2R1bGUsXG5cbiAgICAvLyBTdWIgbW9kdWxlc1xuICAgIFNoYXJlZE1hdGVyaWFsTW9kdWxlLFxuICAgIFNoYXJlZERpcmVjdGl2ZXNNb2R1bGUsXG4gICAgU2hhcmVkUGlwZXNNb2R1bGUsXG4gICAgU2hhcmVkSG90a2V5c01vZHVsZSxcbiAgICBTaGFyZWRUb29sYmFyTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIC8vIENvbXBvbmVudHNcbiAgICBBcHBGb3JtRmllbGQsXG4gICAgQXBwTG9hZGluZ1NwaW5uZXIsXG4gICAgQXBwSGVscE1vZGFsLFxuICAgIFVwbG9hZEZpbGVDb21wb25lbnQsXG4gICAgVXBsb2FkRmlsZVBvcG92ZXIsXG4gICAgU2hhcmVkVGVzdHNQYWdlLFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIElvbmljTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIENvbG9yUGlja2VyTW9kdWxlLFxuICAgIFRleHRNYXNrTW9kdWxlLFxuICAgIERyYWdEcm9wTW9kdWxlLFxuICAgIE1hcmtkb3duTW9kdWxlLFxuXG4gICAgLy8gU3ViLW1vZHVsZXNcbiAgICBTaGFyZWRNYXRlcmlhbE1vZHVsZSxcbiAgICBTaGFyZWREaXJlY3RpdmVzTW9kdWxlLFxuICAgIFNoYXJlZFBpcGVzTW9kdWxlLFxuICAgIFNoYXJlZEhvdGtleXNNb2R1bGUsXG4gICAgU2hhcmVkVG9vbGJhck1vZHVsZSxcblxuICAgIC8vIENvbXBvbmVudHNcbiAgICBBcHBGb3JtRmllbGQsXG4gICAgQXBwTG9hZGluZ1NwaW5uZXIsXG4gICAgQXBwSGVscE1vZGFsLFxuICAgIFVwbG9hZEZpbGVDb21wb25lbnQsXG4gICAgVXBsb2FkRmlsZVBvcG92ZXIsXG4gICAgU2hhcmVkVGVzdHNQYWdlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgU2hhcmVkTW9kdWxlIHtcblxuICBzdGF0aWMgZm9yUm9vdChlbnZpcm9ubWVudDogRW52aXJvbm1lbnQpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFNoYXJlZE1vZHVsZT4ge1xuICAgIGNvbnNvbGUuZGVidWcoJ1tzaGFyZWRdIENyZWF0aW5nIG1vZHVsZSAocm9vdCknKTtcblxuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogU2hhcmVkTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG5cbiAgICAgICAgeyBwcm92aWRlOiBFTlZJUk9OTUVOVCwgdXNlVmFsdWU6IGVudmlyb25tZW50IH0sXG4gICAgICAgIHsgcHJvdmlkZTogU3RvcmFnZVNlcnZpY2UsIHVzZUNsYXNzOiBTdG9yYWdlU2VydmljZSwgZGVwczogW0VOVklST05NRU5UXX0sXG4gICAgICAgIHsgcHJvdmlkZTogQVBQX1NUT1JBR0UsIHVzZUV4aXN0aW5nOiBTdG9yYWdlU2VydmljZX0sXG5cbiAgICAgICAgU3RvcmFnZVNlcnZpY2UsXG4gICAgICAgIFByb2dyZXNzQmFyU2VydmljZSxcbiAgICAgICAgQXVkaW9Qcm92aWRlcixcbiAgICAgICAgRmlsZVNlcnZpY2UsXG4gICAgICAgIFRyYW5zbGF0ZUNvbnRleHRTZXJ2aWNlLFxuXG4gICAgICAgIC8vIEV4cG9ydCBQaXBlcyBhcyBwcm92aWRlcnNcbiAgICAgICAgRGF0ZUZvcm1hdFBpcGUsXG4gICAgICAgIERhdGVGcm9tTm93UGlwZSxcbiAgICAgICAgRGF0ZURpZmZEdXJhdGlvblBpcGUsXG4gICAgICAgIExhdExvbmdGb3JtYXRQaXBlLFxuICAgICAgICBMYXRpdHVkZUZvcm1hdFBpcGUsXG4gICAgICAgIExvbmdpdHVkZUZvcm1hdFBpcGUsXG4gICAgICAgIEhpZ2hsaWdodFBpcGUsXG4gICAgICAgIE51bWJlckZvcm1hdFBpcGUsXG5cbiAgICAgICAgeyBwcm92aWRlOiBPdmVybGF5Q29udGFpbmVyLCB1c2VDbGFzczogRnVsbHNjcmVlbk92ZXJsYXlDb250YWluZXIgfSxcbiAgICAgICAgeyBwcm92aWRlOiBIVFRQX0lOVEVSQ0VQVE9SUywgdXNlQ2xhc3M6IFByb2dyZXNzSW50ZXJjZXB0b3IsIG11bHRpOiB0cnVlLCBkZXBzOiBbUHJvZ3Jlc3NCYXJTZXJ2aWNlXSB9LFxuICAgICAgICB7IHByb3ZpZGU6IE1hdFBhZ2luYXRvckludGwsIHVzZUNsYXNzOiBNYXRQYWdpbmF0b3JJMThuLCBkZXBzOiBbVHJhbnNsYXRlU2VydmljZV0gfSxcbiAgICAgICAgeyBwcm92aWRlOiBNYXRTdGVwcGVySW50bCwgdXNlQ2xhc3M6IE1hdFN0ZXBwZXJJMThuLCBkZXBzOiBbVHJhbnNsYXRlU2VydmljZV0gfSxcblxuICAgICAgICAvLyBGSVhNRTogdHJ5IHRvIGZvcmNlIGEgY3VzdG9tIG92ZXJsYXkgZm9yIGF1dG9jb21wbGV0ZSwgYmVjYXVzZSBvZiB0aGVyZSBpcyBhIGJ1ZyB3aGVuIHVzaW5nIGluc2lkZSBhbiBpb25pYyBtb2RhbFxuICAgICAgICAvL3sgcHJvdmlkZTogT3ZlcmxheSwgdXNlQ2xhc3M6IE92ZXJsYXl9LFxuICAgICAgICB7IHByb3ZpZGU6IE1BVF9BVVRPQ09NUExFVEVfU0NST0xMX1NUUkFURUdZLCB1c2VGYWN0b3J5OiBzY3JvbGxGYWN0b3J5LCBkZXBzOiBbT3ZlcmxheV0gfSxcbiAgICAgICAgeyBwcm92aWRlOiBNQVRfQVVUT0NPTVBMRVRFX0RFRkFVTFRfT1BUSU9OUywgdXNlVmFsdWU6IHtcbiAgICAgICAgICAgIGF1dG9BY3RpdmVGaXJzdE9wdGlvbjogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgeyBwcm92aWRlOiBNQVRfU0VMRUNUX1NDUk9MTF9TVFJBVEVHWSwgdXNlRmFjdG9yeTogc2Nyb2xsRmFjdG9yeSwgZGVwczogW092ZXJsYXldIH1cbiAgICAgIF1cbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -0,0 +1,76 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { MaterialTestingModule, SHARED_MATERIAL_TESTING_PAGES } from './material/material.testing.module';
4
+ import { TranslateModule } from '@ngx-translate/core';
5
+ import { ToastTestingModule } from './toast/toast.testing.module';
6
+ import { UploadFileTestingModule } from './upload-file/testing/upload-file.testing.module';
7
+ import { ImageGalleryTestingModule } from './image/gallery/testing/gallery.testing.module';
8
+ import { IonicModule } from '@ionic/angular';
9
+ import { AudioTestingModule } from './audio/audio.testing.module';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "@ngx-translate/core";
12
+ export const SHARED_TESTING_PAGES = [
13
+ ...SHARED_MATERIAL_TESTING_PAGES,
14
+ { label: 'Shared other components', divider: true },
15
+ { label: 'Image gallery', page: '/testing/shared/gallery' },
16
+ { label: 'Toast', page: '/testing/shared/toast' },
17
+ { label: 'File upload', page: '/testing/shared/upload-file' },
18
+ { label: 'Sound & Vibration', page: '/testing/shared/audio' }
19
+ ];
20
+ export class SharedTestingModule {
21
+ }
22
+ SharedTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: SharedTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
23
+ SharedTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.1", ngImport: i0, type: SharedTestingModule, imports: [CommonModule,
24
+ IonicModule, i1.TranslateModule,
25
+ // Testing sub-modules
26
+ MaterialTestingModule,
27
+ ToastTestingModule,
28
+ UploadFileTestingModule,
29
+ ImageGalleryTestingModule,
30
+ AudioTestingModule], exports: [
31
+ // Testing sub-modules
32
+ MaterialTestingModule,
33
+ ToastTestingModule,
34
+ UploadFileTestingModule,
35
+ ImageGalleryTestingModule,
36
+ AudioTestingModule] });
37
+ SharedTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: SharedTestingModule, imports: [CommonModule,
38
+ IonicModule,
39
+ TranslateModule.forChild(),
40
+ // Testing sub-modules
41
+ MaterialTestingModule,
42
+ ToastTestingModule,
43
+ UploadFileTestingModule,
44
+ ImageGalleryTestingModule,
45
+ AudioTestingModule,
46
+ // Testing sub-modules
47
+ MaterialTestingModule,
48
+ ToastTestingModule,
49
+ UploadFileTestingModule,
50
+ ImageGalleryTestingModule,
51
+ AudioTestingModule] });
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: SharedTestingModule, decorators: [{
53
+ type: NgModule,
54
+ args: [{
55
+ imports: [
56
+ CommonModule,
57
+ IonicModule,
58
+ TranslateModule.forChild(),
59
+ // Testing sub-modules
60
+ MaterialTestingModule,
61
+ ToastTestingModule,
62
+ UploadFileTestingModule,
63
+ ImageGalleryTestingModule,
64
+ AudioTestingModule
65
+ ],
66
+ exports: [
67
+ // Testing sub-modules
68
+ MaterialTestingModule,
69
+ ToastTestingModule,
70
+ UploadFileTestingModule,
71
+ ImageGalleryTestingModule,
72
+ AudioTestingModule
73
+ ]
74
+ }]
75
+ }] });
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLnRlc3RpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvc2hhcmVkLnRlc3RpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxxQkFBcUIsRUFBRSw2QkFBNkIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hHLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUV6RixPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQUN6RixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sOEJBQThCLENBQUM7OztBQUVoRSxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBa0I7SUFDakQsR0FBRyw2QkFBNkI7SUFFaEMsRUFBQyxLQUFLLEVBQUUseUJBQXlCLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBQztJQUNqRCxFQUFDLEtBQUssRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLHlCQUF5QixFQUFDO0lBQ3pELEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsdUJBQXVCLEVBQUM7SUFDL0MsRUFBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSw2QkFBNkIsRUFBQztJQUMzRCxFQUFDLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxJQUFJLEVBQUUsdUJBQXVCLEVBQUM7Q0FDNUQsQ0FBQztBQXdCRixNQUFNLE9BQU8sbUJBQW1COztnSEFBbkIsbUJBQW1CO2lIQUFuQixtQkFBbUIsWUFwQjVCLFlBQVk7UUFDWixXQUFXO1FBR1gsc0JBQXNCO1FBQ3RCLHFCQUFxQjtRQUNyQixrQkFBa0I7UUFDbEIsdUJBQXVCO1FBQ3ZCLHlCQUF5QjtRQUN6QixrQkFBa0I7UUFHbEIsc0JBQXNCO1FBQ3RCLHFCQUFxQjtRQUNyQixrQkFBa0I7UUFDbEIsdUJBQXVCO1FBQ3ZCLHlCQUF5QjtRQUN6QixrQkFBa0I7aUhBR1QsbUJBQW1CLFlBcEI1QixZQUFZO1FBQ1osV0FBVztRQUNYLGVBQWUsQ0FBQyxRQUFRLEVBQUU7UUFFMUIsc0JBQXNCO1FBQ3RCLHFCQUFxQjtRQUNyQixrQkFBa0I7UUFDbEIsdUJBQXVCO1FBQ3ZCLHlCQUF5QjtRQUN6QixrQkFBa0I7UUFHbEIsc0JBQXNCO1FBQ3RCLHFCQUFxQjtRQUNyQixrQkFBa0I7UUFDbEIsdUJBQXVCO1FBQ3ZCLHlCQUF5QjtRQUN6QixrQkFBa0I7MkZBR1QsbUJBQW1CO2tCQXRCL0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGVBQWUsQ0FBQyxRQUFRLEVBQUU7d0JBRTFCLHNCQUFzQjt3QkFDdEIscUJBQXFCO3dCQUNyQixrQkFBa0I7d0JBQ2xCLHVCQUF1Qjt3QkFDdkIseUJBQXlCO3dCQUN6QixrQkFBa0I7cUJBQ25CO29CQUNELE9BQU8sRUFBRTt3QkFDUCxzQkFBc0I7d0JBQ3RCLHFCQUFxQjt3QkFDckIsa0JBQWtCO3dCQUNsQix1QkFBdUI7d0JBQ3ZCLHlCQUF5Qjt3QkFDekIsa0JBQWtCO3FCQUNuQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge01hdGVyaWFsVGVzdGluZ01vZHVsZSwgU0hBUkVEX01BVEVSSUFMX1RFU1RJTkdfUEFHRVN9IGZyb20gJy4vbWF0ZXJpYWwvbWF0ZXJpYWwudGVzdGluZy5tb2R1bGUnO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtUb2FzdFRlc3RpbmdNb2R1bGV9IGZyb20gJy4vdG9hc3QvdG9hc3QudGVzdGluZy5tb2R1bGUnO1xuaW1wb3J0IHtVcGxvYWRGaWxlVGVzdGluZ01vZHVsZX0gZnJvbSAnLi91cGxvYWQtZmlsZS90ZXN0aW5nL3VwbG9hZC1maWxlLnRlc3RpbmcubW9kdWxlJztcbmltcG9ydCB7VGVzdGluZ1BhZ2V9IGZyb20gJy4vdGVzdGluZy90ZXN0cy5wYWdlJztcbmltcG9ydCB7SW1hZ2VHYWxsZXJ5VGVzdGluZ01vZHVsZX0gZnJvbSAnLi9pbWFnZS9nYWxsZXJ5L3Rlc3RpbmcvZ2FsbGVyeS50ZXN0aW5nLm1vZHVsZSc7XG5pbXBvcnQge0lvbmljTW9kdWxlfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQge0F1ZGlvVGVzdGluZ01vZHVsZX0gZnJvbSAnLi9hdWRpby9hdWRpby50ZXN0aW5nLm1vZHVsZSc7XG5cbmV4cG9ydCBjb25zdCBTSEFSRURfVEVTVElOR19QQUdFUzogVGVzdGluZ1BhZ2VbXSA9IFtcbiAgLi4uU0hBUkVEX01BVEVSSUFMX1RFU1RJTkdfUEFHRVMsXG5cbiAge2xhYmVsOiAnU2hhcmVkIG90aGVyIGNvbXBvbmVudHMnLCBkaXZpZGVyOiB0cnVlfSxcbiAge2xhYmVsOiAnSW1hZ2UgZ2FsbGVyeScsIHBhZ2U6ICcvdGVzdGluZy9zaGFyZWQvZ2FsbGVyeSd9LFxuICB7bGFiZWw6ICdUb2FzdCcsIHBhZ2U6ICcvdGVzdGluZy9zaGFyZWQvdG9hc3QnfSxcbiAge2xhYmVsOiAnRmlsZSB1cGxvYWQnLCBwYWdlOiAnL3Rlc3Rpbmcvc2hhcmVkL3VwbG9hZC1maWxlJ30sXG4gIHtsYWJlbDogJ1NvdW5kICYgVmlicmF0aW9uJywgcGFnZTogJy90ZXN0aW5nL3NoYXJlZC9hdWRpbyd9XG5dO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIElvbmljTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZS5mb3JDaGlsZCgpLFxuXG4gICAgLy8gVGVzdGluZyBzdWItbW9kdWxlc1xuICAgIE1hdGVyaWFsVGVzdGluZ01vZHVsZSxcbiAgICBUb2FzdFRlc3RpbmdNb2R1bGUsXG4gICAgVXBsb2FkRmlsZVRlc3RpbmdNb2R1bGUsXG4gICAgSW1hZ2VHYWxsZXJ5VGVzdGluZ01vZHVsZSxcbiAgICBBdWRpb1Rlc3RpbmdNb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIC8vIFRlc3Rpbmcgc3ViLW1vZHVsZXNcbiAgICBNYXRlcmlhbFRlc3RpbmdNb2R1bGUsXG4gICAgVG9hc3RUZXN0aW5nTW9kdWxlLFxuICAgIFVwbG9hZEZpbGVUZXN0aW5nTW9kdWxlLFxuICAgIEltYWdlR2FsbGVyeVRlc3RpbmdNb2R1bGUsXG4gICAgQXVkaW9UZXN0aW5nTW9kdWxlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgU2hhcmVkVGVzdGluZ01vZHVsZSB7XG59XG4iXX0=
@@ -0,0 +1,33 @@
1
+ import { Component, Inject, InjectionToken, Optional } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/router";
4
+ import * as i2 from "@ngx-translate/core";
5
+ import * as i3 from "@angular/common";
6
+ import * as i4 from "@ionic/angular";
7
+ export const APP_TESTING_PAGES = new InjectionToken('testingPages');
8
+ export class SharedTestsPage {
9
+ constructor(route, router, translate, pages) {
10
+ this.route = route;
11
+ this.router = router;
12
+ this.translate = translate;
13
+ this.pages = pages;
14
+ console.info('[testing] Loaded tests pages:', pages);
15
+ }
16
+ async openPage(page) {
17
+ return this.router.navigate([page], {
18
+ relativeTo: this.route
19
+ });
20
+ }
21
+ }
22
+ SharedTestsPage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: SharedTestsPage, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }, { token: i2.TranslateService }, { token: APP_TESTING_PAGES, optional: true }], target: i0.ɵɵFactoryTarget.Component });
23
+ SharedTestsPage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.1", type: SharedTestsPage, selector: "app-tests-page", ngImport: i0, template: "\n<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-menu-button></ion-menu-button>\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Tests</ion-title>\n\n </ion-toolbar>\n</ion-header>\n\n<ion-content>\n\n <ion-list *ngIf=\"pages?.length\">\n\n <ng-container *ngFor=\"let item of pages\">\n\n <ion-item-divider *ngIf=\"item.divider; else link\">{{item.label}}</ion-item-divider>\n\n <ng-template #link>\n <ion-item tappable class=\"text-1x\"\n (click)=\"openPage(item.page)\">{{item.label}}</ion-item>\n </ng-template>\n </ng-container>\n </ion-list>\n\n</ion-content>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.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.1", ngImport: i0, type: SharedTestsPage, decorators: [{
25
+ type: Component,
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
+ }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.TranslateService }, { type: undefined, decorators: [{
28
+ type: Optional
29
+ }, {
30
+ type: Inject,
31
+ args: [APP_TESTING_PAGES]
32
+ }] }]; } });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdHMucGFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3Rlc3RpbmcvdGVzdHMucGFnZS50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3Rlc3RpbmcvdGVzdHMucGFnZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7Ozs7OztBQVUxRSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGNBQWMsQ0FBZ0IsY0FBYyxDQUFDLENBQUM7QUFNbkYsTUFBTSxPQUFPLGVBQWU7SUFFMUIsWUFDYyxLQUFxQixFQUNyQixNQUFjLEVBQ2QsU0FBMkIsRUFDUyxLQUFvQjtRQUh4RCxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDUyxVQUFLLEdBQUwsS0FBSyxDQUFlO1FBRXBFLE9BQU8sQ0FBQyxJQUFJLENBQUMsK0JBQStCLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSTtRQUNqQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDbEMsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLO1NBQ3ZCLENBQUMsQ0FBQztJQUNMLENBQUM7OzRHQWZVLGVBQWUsc0dBTUYsaUJBQWlCO2dHQU45QixlQUFlLHNEQ2hCNUIseXJCQThCQTsyRkRkYSxlQUFlO2tCQUozQixTQUFTOytCQUNFLGdCQUFnQjs7MEJBU3JCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEluamVjdCwgSW5qZWN0aW9uVG9rZW4sIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXN0aW5nUGFnZSB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHBhZ2U/OiBzdHJpbmc7XG4gIGRpdmlkZXI/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3QgQVBQX1RFU1RJTkdfUEFHRVMgPSBuZXcgSW5qZWN0aW9uVG9rZW48VGVzdGluZ1BhZ2VbXT4oJ3Rlc3RpbmdQYWdlcycpO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtdGVzdHMtcGFnZScsXG4gIHRlbXBsYXRlVXJsOiAnLi90ZXN0cy5wYWdlLmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFNoYXJlZFRlc3RzUGFnZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBwcm90ZWN0ZWQgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgcHJvdGVjdGVkIHJvdXRlcjogUm91dGVyLFxuICAgICAgcHJvdGVjdGVkIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQVBQX1RFU1RJTkdfUEFHRVMpIHB1YmxpYyBwYWdlczogVGVzdGluZ1BhZ2VbXVxuICAgICkge1xuICAgIGNvbnNvbGUuaW5mbygnW3Rlc3RpbmddIExvYWRlZCB0ZXN0cyBwYWdlczonLCBwYWdlcyk7XG4gIH1cblxuICBhc3luYyBvcGVuUGFnZShwYWdlKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMucm91dGVyLm5hdmlnYXRlKFtwYWdlXSwge1xuICAgICAgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZVxuICAgIH0pO1xuICB9XG59XG5cbiIsIlxuPGlvbi1oZWFkZXI+XG4gIDxpb24tdG9vbGJhciBjb2xvcj1cInByaW1hcnlcIj5cblxuICAgIDxpb24tYnV0dG9ucyBzbG90PVwic3RhcnRcIj5cbiAgICAgIDxpb24tbWVudS1idXR0b24+PC9pb24tbWVudS1idXR0b24+XG4gICAgICA8aW9uLWJhY2stYnV0dG9uPjwvaW9uLWJhY2stYnV0dG9uPlxuICAgIDwvaW9uLWJ1dHRvbnM+XG5cbiAgICA8aW9uLXRpdGxlPlRlc3RzPC9pb24tdGl0bGU+XG5cbiAgPC9pb24tdG9vbGJhcj5cbjwvaW9uLWhlYWRlcj5cblxuPGlvbi1jb250ZW50PlxuXG4gIDxpb24tbGlzdCAqbmdJZj1cInBhZ2VzPy5sZW5ndGhcIj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcGFnZXNcIj5cblxuICAgICAgPGlvbi1pdGVtLWRpdmlkZXIgKm5nSWY9XCJpdGVtLmRpdmlkZXI7IGVsc2UgbGlua1wiPnt7aXRlbS5sYWJlbH19PC9pb24taXRlbS1kaXZpZGVyPlxuXG4gICAgICA8bmctdGVtcGxhdGUgI2xpbms+XG4gICAgICAgIDxpb24taXRlbSB0YXBwYWJsZSBjbGFzcz1cInRleHQtMXhcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5QYWdlKGl0ZW0ucGFnZSlcIj57e2l0ZW0ubGFiZWx9fTwvaW9uLWl0ZW0+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2lvbi1saXN0PlxuXG48L2lvbi1jb250ZW50PlxuIl19
@@ -0,0 +1,52 @@
1
+ import { Component } from '@angular/core';
2
+ import { Toasts } from './toasts';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@ionic/angular";
5
+ import * as i2 from "@ngx-translate/core";
6
+ export class ToastTestingPage {
7
+ constructor(toastController, translate) {
8
+ this.toastController = toastController;
9
+ this.translate = translate;
10
+ this.defaultOptions = {
11
+ showCloseButton: false
12
+ };
13
+ }
14
+ showToast(opts) {
15
+ return Toasts.show(this.toastController, this.translate, {
16
+ ...this.defaultOptions,
17
+ message: 'This is a message',
18
+ ...opts
19
+ });
20
+ }
21
+ showInfo(opts) {
22
+ return this.showToast({
23
+ type: 'info',
24
+ message: 'This is a info text !',
25
+ ...opts
26
+ });
27
+ }
28
+ showWarning(opts) {
29
+ return this.showToast({
30
+ type: 'warning',
31
+ message: 'This is a warning text !',
32
+ ...opts
33
+ });
34
+ }
35
+ showError(opts) {
36
+ return this.showToast({
37
+ type: 'error',
38
+ message: 'This is a error text !',
39
+ ...opts
40
+ });
41
+ }
42
+ toggleCloseButton() {
43
+ this.defaultOptions.showCloseButton = !this.defaultOptions.showCloseButton;
44
+ }
45
+ }
46
+ ToastTestingPage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: ToastTestingPage, deps: [{ token: i1.ToastController }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
47
+ ToastTestingPage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.1", type: ToastTestingPage, selector: "toast-testing", ngImport: i0, template: "<ion-toolbar color=\"primary\">\n <ion-title>Toasts</ion-title>\n</ion-toolbar>\n\n<ion-content class=\"ion-padding\">\n\n <p>Toast examples:</p>\n\n <ion-button (click)=\"showToast()\" color=\"dark\">\n default\n </ion-button>\n\n <ion-button (click)=\"showInfo({duration: 100000})\" 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" }] });
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: ToastTestingPage, decorators: [{
49
+ type: Component,
50
+ args: [{ selector: 'toast-testing', template: "<ion-toolbar color=\"primary\">\n <ion-title>Toasts</ion-title>\n</ion-toolbar>\n\n<ion-content class=\"ion-padding\">\n\n <p>Toast examples:</p>\n\n <ion-button (click)=\"showToast()\" color=\"dark\">\n default\n </ion-button>\n\n <ion-button (click)=\"showInfo({duration: 100000})\" 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" }]
51
+ }], ctorParameters: function () { return [{ type: i1.ToastController }, { type: i2.TranslateService }]; } });
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QudGVzdGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3RvYXN0L3RvYXN0LnRlc3RpbmcudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC90b2FzdC90b2FzdC50ZXN0aW5nLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV4QyxPQUFPLEVBQW1CLE1BQU0sRUFBQyxNQUFNLFVBQVUsQ0FBQzs7OztBQU9sRCxNQUFNLE9BQU8sZ0JBQWdCO0lBTTNCLFlBQ1UsZUFBZ0MsRUFDaEMsU0FBMkI7UUFEM0Isb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBTjVCLG1CQUFjLEdBQXFCO1lBQzFDLGVBQWUsRUFBRSxLQUFLO1NBQ3ZCLENBQUM7SUFNRixDQUFDO0lBRUQsU0FBUyxDQUFDLElBQXVCO1FBQy9CLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDdkQsR0FBRyxJQUFJLENBQUMsY0FBYztZQUN0QixPQUFPLEVBQUUsbUJBQW1CO1lBQzVCLEdBQUcsSUFBSTtTQUNSLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBdUI7UUFDL0IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ3BCLElBQUksRUFBRSxNQUFNO1lBQ1osT0FBTyxFQUFFLHVCQUF1QjtZQUNoQyxHQUFHLElBQUk7U0FDUixDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVyxDQUFDLElBQXVCO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNwQixJQUFJLEVBQUUsU0FBUztZQUNmLE9BQU8sRUFBRSwwQkFBMEI7WUFDbkMsR0FBRyxJQUFJO1NBQ1IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUF1QjtRQUMvQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDcEIsSUFBSSxFQUFFLE9BQU87WUFDYixPQUFPLEVBQUUsd0JBQXdCO1lBQ2pDLEdBQUcsSUFBSTtTQUNSLENBQUMsQ0FBQztJQUNMLENBQUM7SUFHRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDO0lBQzdFLENBQUM7OzZHQS9DVSxnQkFBZ0I7aUdBQWhCLGdCQUFnQixxRENUN0IsZ3lCQXNDQTsyRkQ3QmEsZ0JBQWdCO2tCQUo1QixTQUFTOytCQUNFLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1RvYXN0Q29udHJvbGxlcn0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHtTaG93VG9hc3RPcHRpb25zLCBUb2FzdHN9IGZyb20gJy4vdG9hc3RzJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RvYXN0LXRlc3RpbmcnLFxuICB0ZW1wbGF0ZVVybDogJ3RvYXN0LnRlc3RpbmcuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgVG9hc3RUZXN0aW5nUGFnZSAge1xuXG4gIHJlYWRvbmx5IGRlZmF1bHRPcHRpb25zOiBTaG93VG9hc3RPcHRpb25zID0ge1xuICAgIHNob3dDbG9zZUJ1dHRvbjogZmFsc2VcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHRvYXN0Q29udHJvbGxlcjogVG9hc3RDb250cm9sbGVyLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge1xuICB9XG5cbiAgc2hvd1RvYXN0KG9wdHM/OiBTaG93VG9hc3RPcHRpb25zKSB7XG4gICAgcmV0dXJuIFRvYXN0cy5zaG93KHRoaXMudG9hc3RDb250cm9sbGVyLCB0aGlzLnRyYW5zbGF0ZSwge1xuICAgICAgLi4udGhpcy5kZWZhdWx0T3B0aW9ucyxcbiAgICAgIG1lc3NhZ2U6ICdUaGlzIGlzIGEgbWVzc2FnZScsXG4gICAgICAuLi5vcHRzXG4gICAgfSk7XG4gIH1cblxuICBzaG93SW5mbyhvcHRzPzogU2hvd1RvYXN0T3B0aW9ucykge1xuICAgcmV0dXJuIHRoaXMuc2hvd1RvYXN0KHtcbiAgICAgdHlwZTogJ2luZm8nLFxuICAgICBtZXNzYWdlOiAnVGhpcyBpcyBhIGluZm8gdGV4dCAhJyxcbiAgICAgLi4ub3B0c1xuICAgfSk7XG4gIH1cblxuICBzaG93V2FybmluZyhvcHRzPzogU2hvd1RvYXN0T3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLnNob3dUb2FzdCh7XG4gICAgICB0eXBlOiAnd2FybmluZycsXG4gICAgICBtZXNzYWdlOiAnVGhpcyBpcyBhIHdhcm5pbmcgdGV4dCAhJyxcbiAgICAgIC4uLm9wdHNcbiAgICB9KTtcbiAgfVxuXG4gIHNob3dFcnJvcihvcHRzPzogU2hvd1RvYXN0T3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLnNob3dUb2FzdCh7XG4gICAgICB0eXBlOiAnZXJyb3InLFxuICAgICAgbWVzc2FnZTogJ1RoaXMgaXMgYSBlcnJvciB0ZXh0ICEnLFxuICAgICAgLi4ub3B0c1xuICAgIH0pO1xuICB9XG5cblxuICB0b2dnbGVDbG9zZUJ1dHRvbigpIHtcbiAgICB0aGlzLmRlZmF1bHRPcHRpb25zLnNob3dDbG9zZUJ1dHRvbiA9ICF0aGlzLmRlZmF1bHRPcHRpb25zLnNob3dDbG9zZUJ1dHRvbjtcbiAgfVxufVxuIiwiPGlvbi10b29sYmFyIGNvbG9yPVwicHJpbWFyeVwiPlxuICA8aW9uLXRpdGxlPlRvYXN0czwvaW9uLXRpdGxlPlxuPC9pb24tdG9vbGJhcj5cblxuPGlvbi1jb250ZW50IGNsYXNzPVwiaW9uLXBhZGRpbmdcIj5cblxuICA8cD5Ub2FzdCBleGFtcGxlczo8L3A+XG5cbiAgPGlvbi1idXR0b24gKGNsaWNrKT1cInNob3dUb2FzdCgpXCIgY29sb3I9XCJkYXJrXCI+XG4gICAgZGVmYXVsdFxuICA8L2lvbi1idXR0b24+XG5cbiAgPGlvbi1idXR0b24gKGNsaWNrKT1cInNob3dJbmZvKHtkdXJhdGlvbjogMTAwMDAwfSlcIiBjb2xvcj1cInNlY29uZGFyeVwiPlxuICAgIGluZm9cbiAgPC9pb24tYnV0dG9uPlxuXG4gIDxpb24tYnV0dG9uIChjbGljayk9XCJzaG93V2FybmluZygpXCIgY29sb3I9XCJhY2NlbnRcIj5cbiAgICB3YXJuaW5nXG4gIDwvaW9uLWJ1dHRvbj5cblxuICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwic2hvd0Vycm9yKClcIiBjb2xvcj1cImRhbmdlclwiPlxuICAgIGVycm9yXG4gIDwvaW9uLWJ1dHRvbj5cblxuICA8YnIvPlxuXG5cbiAgPGlvbi1saXN0PlxuXG5cbiAgICA8aW9uLWl0ZW0+XG4gICAgICA8aW9uLWNoZWNrYm94IHNsb3Q9XCJzdGFydFwiIFt2YWx1ZV09XCJkZWZhdWx0T3B0aW9ucy5zaG93Q2xvc2VCdXR0b25cIiAgKGlvbkNoYW5nZSk9XCJ0b2dnbGVDbG9zZUJ1dHRvbigpXCI+PC9pb24tY2hlY2tib3g+XG4gICAgICA8aW9uLWxhYmVsPkNsb3NlIGJ1dHRvbiA/PC9pb24tbGFiZWw+XG4gICAgPC9pb24taXRlbT5cbiAgPC9pb24tbGlzdD5cblxuXG48L2lvbi1jb250ZW50PlxuIl19
@@ -0,0 +1,45 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { RouterModule } from '@angular/router';
3
+ import { IonicModule } from '@ionic/angular';
4
+ import { CommonModule } from '@angular/common';
5
+ import { TranslateModule } from '@ngx-translate/core';
6
+ import { ToastTestingPage } from './toast.testing';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@ngx-translate/core";
9
+ import * as i2 from "@angular/router";
10
+ const routes = [
11
+ {
12
+ path: 'toast',
13
+ pathMatch: 'full',
14
+ component: ToastTestingPage
15
+ }
16
+ ];
17
+ export class ToastTestingModule {
18
+ }
19
+ ToastTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: ToastTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
20
+ ToastTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.1", ngImport: i0, type: ToastTestingModule, declarations: [ToastTestingPage], imports: [CommonModule,
21
+ IonicModule, i1.TranslateModule, i2.RouterModule], exports: [RouterModule,
22
+ ToastTestingPage] });
23
+ ToastTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: ToastTestingModule, imports: [CommonModule,
24
+ IonicModule,
25
+ TranslateModule.forChild(),
26
+ RouterModule.forChild(routes), RouterModule] });
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: ToastTestingModule, decorators: [{
28
+ type: NgModule,
29
+ args: [{
30
+ imports: [
31
+ CommonModule,
32
+ IonicModule,
33
+ TranslateModule.forChild(),
34
+ RouterModule.forChild(routes)
35
+ ],
36
+ declarations: [
37
+ ToastTestingPage
38
+ ],
39
+ exports: [
40
+ RouterModule,
41
+ ToastTestingPage
42
+ ]
43
+ }]
44
+ }] });
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QudGVzdGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC90b2FzdC90b2FzdC50ZXN0aW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQVMsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQUVqRCxNQUFNLE1BQU0sR0FBVztJQUNyQjtRQUNFLElBQUksRUFBRSxPQUFPO1FBQ2IsU0FBUyxFQUFFLE1BQU07UUFDakIsU0FBUyxFQUFFLGdCQUFnQjtLQUM1QjtDQUNGLENBQUM7QUFpQkYsTUFBTSxPQUFPLGtCQUFrQjs7K0dBQWxCLGtCQUFrQjtnSEFBbEIsa0JBQWtCLGlCQVAzQixnQkFBZ0IsYUFOaEIsWUFBWTtRQUNaLFdBQVcsa0RBUVgsWUFBWTtRQUNaLGdCQUFnQjtnSEFHUCxrQkFBa0IsWUFiM0IsWUFBWTtRQUNaLFdBQVc7UUFDWCxlQUFlLENBQUMsUUFBUSxFQUFFO1FBQzFCLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBTTdCLFlBQVk7MkZBSUgsa0JBQWtCO2tCQWY5QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsZUFBZSxDQUFDLFFBQVEsRUFBRTt3QkFDMUIsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7cUJBQzlCO29CQUNELFlBQVksRUFBRTt3QkFDWixnQkFBZ0I7cUJBQ2pCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGdCQUFnQjtxQkFDakI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Um91dGVyTW9kdWxlLCBSb3V0ZXN9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0lvbmljTW9kdWxlfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7VG9hc3RUZXN0aW5nUGFnZX0gZnJvbSAnLi90b2FzdC50ZXN0aW5nJztcblxuY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXG4gIHtcbiAgICBwYXRoOiAndG9hc3QnLFxuICAgIHBhdGhNYXRjaDogJ2Z1bGwnLFxuICAgIGNvbXBvbmVudDogVG9hc3RUZXN0aW5nUGFnZVxuICB9XG5dO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIElvbmljTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZS5mb3JDaGlsZCgpLFxuICAgIFJvdXRlck1vZHVsZS5mb3JDaGlsZChyb3V0ZXMpXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFRvYXN0VGVzdGluZ1BhZ2VcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFJvdXRlck1vZHVsZSxcbiAgICBUb2FzdFRlc3RpbmdQYWdlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgVG9hc3RUZXN0aW5nTW9kdWxlIHtcbn1cbiJdfQ==
@@ -0,0 +1,121 @@
1
+ import { createAnimation, IonicSafeString } from '@ionic/angular';
2
+ import { isEmptyArray, isNotNil } from '../functions';
3
+ const TOAST_MAX_HEIGHT_PX = 75;
4
+ const TOAST_MAX_STACK_SIZE = 4;
5
+ export class Toasts {
6
+ static async show(toastController, translate, opts) {
7
+ if (!toastController || !translate) {
8
+ console.error('Missing required argument \'toastController\' or \'translate\'');
9
+ if (opts.message instanceof IonicSafeString)
10
+ console.info('[toasts] message: ' + (translate && translate.instant(opts.message.value) || opts.message.value));
11
+ else if (typeof opts.message === 'string')
12
+ console.info('[toasts] message: ' + (translate && translate.instant(opts.message, opts.messageParams) || opts.message));
13
+ return Promise.resolve({});
14
+ }
15
+ this.counter++; // Increment toast counter
16
+ let currentOffset = this.stackSize;
17
+ if (this.stackSize < TOAST_MAX_STACK_SIZE) {
18
+ this.stackSize++; // Increment stack offset
19
+ }
20
+ else {
21
+ this.stackSize = 1; // Reset the stack
22
+ currentOffset = 0;
23
+ }
24
+ const updateCounters = () => {
25
+ // Decrease counter
26
+ this.counter--;
27
+ // If all toast closed: reset the stack offset
28
+ if (this.counter === 0) {
29
+ this.stackSize = 0;
30
+ }
31
+ // If current toast is the last one, decrease the offset
32
+ else if (this.stackSize == currentOffset + 1) {
33
+ this.stackSize--;
34
+ }
35
+ };
36
+ const message = opts.message && opts.message instanceof IonicSafeString ? opts.message.value : opts.message;
37
+ const i18nKeys = [message];
38
+ if (opts.header)
39
+ i18nKeys.push(opts.header);
40
+ let closeButton;
41
+ if (opts.showCloseButton) {
42
+ opts.buttons = opts.buttons || [];
43
+ const buttonIndex = opts.buttons
44
+ .map(b => typeof b === 'object' && b || undefined)
45
+ .filter(isNotNil)
46
+ .findIndex(b => b.role === 'close');
47
+ if (buttonIndex !== -1) {
48
+ closeButton = opts.buttons[buttonIndex];
49
+ }
50
+ else {
51
+ closeButton = { role: 'close' };
52
+ opts.buttons.push(closeButton);
53
+ }
54
+ closeButton.text = closeButton.text || 'COMMON.BTN_OK';
55
+ i18nKeys.push(closeButton.text);
56
+ }
57
+ // Read CSS
58
+ const cssArray = opts.cssClass && typeof opts.cssClass === 'string' && opts.cssClass.split(',') || opts.cssClass || [];
59
+ // Add 'error' class, if need
60
+ if (opts.type) {
61
+ switch (opts.type) {
62
+ case 'error':
63
+ opts.header = 'ERROR';
64
+ cssArray.push('danger');
65
+ break;
66
+ case 'warning':
67
+ cssArray.push('accent');
68
+ break;
69
+ case 'info':
70
+ cssArray.push('secondary');
71
+ break;
72
+ }
73
+ }
74
+ opts.cssClass = cssArray;
75
+ const translations = translate.instant(i18nKeys);
76
+ if (opts.messageParams) {
77
+ translations[message] = translate.instant(message, opts.messageParams);
78
+ }
79
+ if (closeButton) {
80
+ closeButton.text = translations[closeButton.text];
81
+ }
82
+ // Retrieve the toast position
83
+ const position = opts.position || (opts.mode === 'ios' ? 'bottom' : 'top');
84
+ if (!opts.enterAnimation && position !== 'middle') {
85
+ // Compute positions, using the stack offset
86
+ const direction = position === 'top' ? 1 : -1;
87
+ const start = (currentOffset) * TOAST_MAX_HEIGHT_PX - direction * TOAST_MAX_HEIGHT_PX;
88
+ const end = direction * (currentOffset) * TOAST_MAX_HEIGHT_PX;
89
+ opts.enterAnimation = (baseEl, opts) => createAnimation()
90
+ .addElement(baseEl.querySelector('.toast-wrapper'))
91
+ .duration(250)
92
+ .fromTo('transform', `translateY(${start}px)`, `translateY(${end}px)`)
93
+ .fromTo('opacity', '0', '1');
94
+ }
95
+ const toast = await toastController.create({
96
+ // Default values
97
+ //position,
98
+ duration: opts.showCloseButton ? 10000 : 4000,
99
+ //...opts,
100
+ message: translations[message],
101
+ //header: opts.header && translations[opts.header] || undefined
102
+ });
103
+ if (opts.onWillPresent)
104
+ opts.onWillPresent(toast);
105
+ await toast.present();
106
+ if (isEmptyArray(opts.buttons)) {
107
+ // Not need to wait dismiss (no 'await')
108
+ toast.onDidDismiss().then(updateCounters);
109
+ return null; // no result
110
+ }
111
+ else {
112
+ // Wait for button result
113
+ const result = await toast.onDidDismiss();
114
+ updateCounters();
115
+ return result;
116
+ }
117
+ }
118
+ }
119
+ Toasts.counter = 0;
120
+ Toasts.stackSize = 0;
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvdG9hc3QvdG9hc3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxlQUFlLEVBQUUsZUFBZSxFQUFrQixNQUFNLGdCQUFnQixDQUFDO0FBSWpGLE9BQU8sRUFBQyxZQUFZLEVBQUUsUUFBUSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBRXBELE1BQU0sbUJBQW1CLEdBQUcsRUFBRSxDQUFDO0FBQy9CLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxDQUFDO0FBUy9CLE1BQU0sT0FBTyxNQUFNO0lBSWpCLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUNmLGVBQWdDLEVBQ2hDLFNBQTJCLEVBQzNCLElBQXNCO1FBRXRCLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxnRUFBZ0UsQ0FBQyxDQUFDO1lBQ2hGLElBQUksSUFBSSxDQUFDLE9BQU8sWUFBWSxlQUFlO2dCQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztpQkFDeEosSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssUUFBUTtnQkFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLENBQUMsU0FBUyxJQUFJLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDbkssT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQzVC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bnQiOlsiaW1wb3J0IHtjcmVhdGVBbmltYXRpb24sIElvbmljU2FmZVN0cmluZywgVG9hc3RDb250cm9sbGVyfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtPdmVybGF5RXZlbnREZXRhaWwsIFRvYXN0T3B0aW9uc30gZnJvbSAnQGlvbmljL2NvcmUnO1xuaW1wb3J0IHtUb2FzdEJ1dHRvbn0gZnJvbSAnQGlvbmljL2NvcmUvZGlzdC90eXBlcy9jb21wb25lbnRzL3RvYXN0L3RvYXN0LWludGVyZmFjZSc7XG5pbXBvcnQge2lzRW1wdHlBcnJheSwgaXNOb3ROaWx9IGZyb20gJy4uL2Z1bmN0aW9ucyc7XG5cbmNvbnN0IFRPQVNUX01BWF9IRUlHSFRfUFggPSA3NTtcbmNvbnN0IFRPQVNUX01BWF9TVEFDS19TSVpFID0gNDtcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNob3dUb2FzdE9wdGlvbnMgZXh0ZW5kcyBUb2FzdE9wdGlvbnMge1xuICB0eXBlPzogJ2Vycm9yJ3wnd2FybmluZyd8J2luZm8nO1xuICBtZXNzYWdlUGFyYW1zPzogYW55O1xuICBzaG93Q2xvc2VCdXR0b24/OiBib29sZWFuO1xuICBvbldpbGxQcmVzZW50PzogKHRvYXN0OiBIVE1MSW9uVG9hc3RFbGVtZW50KSA9PiB2b2lkO1xufVxuXG5leHBvcnQgY2xhc3MgVG9hc3RzIHtcbiAgc3RhdGljIGNvdW50ZXIgPSAwO1xuICBzdGF0aWMgc3RhY2tTaXplID0gMDtcblxuICBzdGF0aWMgYXN5bmMgc2hvdzxUID0gYW55PihcbiAgICB0b2FzdENvbnRyb2xsZXI6IFRvYXN0Q29udHJvbGxlcixcbiAgICB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgb3B0czogU2hvd1RvYXN0T3B0aW9uc1xuICApOiBQcm9taXNlPE92ZXJsYXlFdmVudERldGFpbDxUPj4ge1xuICAgIGlmICghdG9hc3RDb250cm9sbGVyIHx8ICF0cmFuc2xhdGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ01pc3NpbmcgcmVxdWlyZWQgYXJndW1lbnQgXFwndG9hc3RDb250cm9sbGVyXFwnIG9yIFxcJ3RyYW5zbGF0ZVxcJycpO1xuICAgICAgaWYgKG9wdHMubWVzc2FnZSBpbnN0YW5jZW9mIElvbmljU2FmZVN0cmluZykgY29uc29sZS5pbmZvKCdbdG9hc3RzXSBtZXNzYWdlOiAnICsgKHRyYW5zbGF0ZSAmJiB0cmFuc2xhdGUuaW5zdGFudChvcHRzLm1lc3NhZ2UudmFsdWUpIHx8IG9wdHMubWVzc2FnZS52YWx1ZSkpO1xuICAgICAgZWxzZSBpZiAodHlwZW9mIG9wdHMubWVzc2FnZSA9PT0gJ3N0cmluZycpIGNvbnNvbGUuaW5mbygnW3RvYXN0c10gbWVzc2FnZTogJyArICh0cmFuc2xhdGUgJiYgdHJhbnNsYXRlLmluc3RhbnQob3B0cy5tZXNzYWdlLCBvcHRzLm1lc3NhZ2VQYXJhbXMpIHx8IG9wdHMubWVzc2FnZSkpO1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSk7XG4gICAgfVxuXG4gICAgdGhpcy5jb3VudGVyKys7IC8vIEluY3JlbWVudCB0b2FzdCBjb3VudGVyXG4gICAgbGV0IGN1cnJlbnRPZmZzZXQgPSB0aGlzLnN0YWNrU2l6ZTtcbiAgICBpZiAodGhpcy5zdGFja1NpemUgPCBUT0FTVF9NQVhfU1RBQ0tfU0laRSkge1xuICAgICAgdGhpcy5zdGFja1NpemUrKzsgLy8gSW5jcmVtZW50IHN0YWNrIG9mZnNldFxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMuc3RhY2tTaXplID0gMTsgLy8gUmVzZXQgdGhlIHN0YWNrXG4gICAgICBjdXJyZW50T2Zmc2V0ID0gMDtcbiAgICB9XG4gICAgY29uc3QgdXBkYXRlQ291bnRlcnMgPSAoKSA9PiB7XG4gICAgICAvLyBEZWNyZWFzZSBjb3VudGVyXG4gICAgICB0aGlzLmNvdW50ZXItLTtcbiAgICAgIC8vIElmIGFsbCB0b2FzdCBjbG9zZWQ6IHJlc2V0IHRoZSBzdGFjayBvZmZzZXRcbiAgICAgIGlmICh0aGlzLmNvdW50ZXIgPT09IDApIHtcbiAgICAgICAgdGhpcy5zdGFja1NpemUgPSAwO1xuICAgICAgfVxuICAgICAgLy8gSWYgY3VycmVudCB0b2FzdCBpcyB0aGUgbGFzdCBvbmUsIGRlY3JlYXNlIHRoZSBvZmZzZXRcbiAgICAgIGVsc2UgaWYgKHRoaXMuc3RhY2tTaXplID09IGN1cnJlbnRPZmZzZXQgKyAxKXtcbiAgICAgICAgdGhpcy5zdGFja1NpemUtLTtcbiAgICAgIH1cbiAgICB9O1xuXG5cbiAgICBjb25zdCBtZXNzYWdlID0gb3B0cy5tZXNzYWdlICYmIG9wdHMubWVzc2FnZSBpbnN0YW5jZW9mIElvbmljU2FmZVN0cmluZyA/IG9wdHMubWVzc2FnZS52YWx1ZSA6IG9wdHMubWVzc2FnZSBhcyBzdHJpbmc7XG4gICAgY29uc3QgaTE4bktleXMgPSBbbWVzc2FnZV07XG4gICAgaWYgKG9wdHMuaGVhZGVyKSBpMThuS2V5cy5wdXNoKG9wdHMuaGVhZGVyKTtcblxuICAgIGxldCBjbG9zZUJ1dHRvbjogVG9hc3RCdXR0b247XG4gICAgaWYgKG9wdHMuc2hvd0Nsb3NlQnV0dG9uKSB7XG4gICAgICBvcHRzLmJ1dHRvbnMgPSBvcHRzLmJ1dHRvbnMgfHwgW107XG4gICAgICBjb25zdCBidXR0b25JbmRleCA9IG9wdHMuYnV0dG9uc1xuICAgICAgICAubWFwKGIgPT4gdHlwZW9mIGIgPT09ICdvYmplY3QnICYmIGIgYXMgVG9hc3RCdXR0b24gfHwgdW5kZWZpbmVkKVxuICAgICAgICAuZmlsdGVyKGlzTm90TmlsKVxuICAgICAgICAuZmluZEluZGV4KGIgPT4gYi5yb2xlID09PSAnY2xvc2UnKTtcbiAgICAgIGlmIChidXR0b25JbmRleCAhPT0gLTEpIHtcbiAgICAgICAgY2xvc2VCdXR0b24gPSBvcHRzLmJ1dHRvbnNbYnV0dG9uSW5kZXhdIGFzIFRvYXN0QnV0dG9uO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2xvc2VCdXR0b24gPSB7cm9sZTogJ2Nsb3NlJ307XG4gICAgICAgIG9wdHMuYnV0dG9ucy5wdXNoKGNsb3NlQnV0dG9uKTtcbiAgICAgIH1cbiAgICAgIGNsb3NlQnV0dG9uLnRleHQgPSBjbG9zZUJ1dHRvbi50ZXh0IHx8ICdDT01NT04uQlROX09LJztcbiAgICAgIGkxOG5LZXlzLnB1c2goY2xvc2VCdXR0b24udGV4dCk7XG4gICAgfVxuXG4gICAgLy8gUmVhZCBDU1NcbiAgICBjb25zdCBjc3NBcnJheSA9IG9wdHMuY3NzQ2xhc3MgJiYgdHlwZW9mIG9wdHMuY3NzQ2xhc3MgPT09ICdzdHJpbmcnICYmIG9wdHMuY3NzQ2xhc3Muc3BsaXQoJywnKSB8fCAob3B0cy5jc3NDbGFzcyBhcyBBcnJheTxzdHJpbmc+KSB8fCBbXTtcblxuICAgIC8vIEFkZCAnZXJyb3InIGNsYXNzLCBpZiBuZWVkXG4gICAgaWYgKG9wdHMudHlwZSkge1xuICAgICAgc3dpdGNoIChvcHRzLnR5cGUpIHtcbiAgICAgICAgY2FzZSAnZXJyb3InOlxuICAgICAgICAgIG9wdHMuaGVhZGVyID0gJ0VSUk9SJztcbiAgICAgICAgICBjc3NBcnJheS5wdXNoKCdkYW5nZXInKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnd2FybmluZyc6XG4gICAgICAgICAgY3NzQXJyYXkucHVzaCgnYWNjZW50Jyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2luZm8nOlxuICAgICAgICAgIGNzc0FycmF5LnB1c2goJ3NlY29uZGFyeScpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIG9wdHMuY3NzQ2xhc3MgPSBjc3NBcnJheTtcblxuICAgIGNvbnN0IHRyYW5zbGF0aW9ucyA9IHRyYW5zbGF0ZS5pbnN0YW50KGkxOG5LZXlzKTtcbiAgICBpZiAob3B0cy5tZXNzYWdlUGFyYW1zKSB7XG4gICAgICB0cmFuc2xhdGlvbnNbbWVzc2FnZV0gPSB0cmFuc2xhdGUuaW5zdGFudChtZXNzYWdlLCBvcHRzLm1lc3NhZ2VQYXJhbXMpO1xuICAgIH1cblxuICAgIGlmIChjbG9zZUJ1dHRvbikge1xuICAgICAgY2xvc2VCdXR0b24udGV4dCA9IHRyYW5zbGF0aW9uc1tjbG9zZUJ1dHRvbi50ZXh0XTtcbiAgICB9XG5cbiAgICAvLyBSZXRyaWV2ZSB0aGUgdG9hc3QgcG9zaXRpb25cbiAgICBjb25zdCBwb3NpdGlvbiA9IG9wdHMucG9zaXRpb24gfHwgKG9wdHMubW9kZSA9PT0gJ2lvcycgPyAnYm90dG9tJyA6ICd0b3AnKTtcblxuICAgIGlmICghb3B0cy5lbnRlckFuaW1hdGlvbiAmJiBwb3NpdGlvbiAhPT0gJ21pZGRsZScpIHtcbiAgICAgIC8vIENvbXB1dGUgcG9zaXRpb25zLCB1c2luZyB0aGUgc3RhY2sgb2Zmc2V0XG4gICAgICBjb25zdCBkaXJlY3Rpb24gPSBwb3NpdGlvbiA9PT0gJ3RvcCcgPyAxIDogLTE7XG4gICAgICBjb25zdCBzdGFydCA9IChjdXJyZW50T2Zmc2V0KSAqIFRPQVNUX01BWF9IRUlHSFRfUFggIC0gZGlyZWN0aW9uICogVE9BU1RfTUFYX0hFSUdIVF9QWDtcbiAgICAgIGNvbnN0IGVuZCA9IGRpcmVjdGlvbiAqIChjdXJyZW50T2Zmc2V0KSAqIFRPQVNUX01BWF9IRUlHSFRfUFg7XG4gICAgICBvcHRzLmVudGVyQW5pbWF0aW9uID0gKGJhc2VFbDogYW55LCBvcHRzPzogYW55KSA9PiBjcmVhdGVBbmltYXRpb24oKVxuICAgICAgICAgIC5hZGRFbGVtZW50KGJhc2VFbC5xdWVyeVNlbGVjdG9yKCcudG9hc3Qtd3JhcHBlcicpKVxuICAgICAgICAgIC5kdXJhdGlvbigyNTApXG4gICAgICAgICAgLmZyb21UbygndHJhbnNmb3JtJywgYHRyYW5zbGF0ZVkoJHtzdGFydH1weClgLCBgdHJhbnNsYXRlWSgke2VuZH1weClgKVxuICAgICAgICAgIC5mcm9tVG8oJ29wYWNpdHknLCAnMCcsICcxJyk7XG4gICAgfVxuXG4gICAgY29uc3QgdG9hc3QgPSBhd2FpdCB0b2FzdENvbnRyb2xsZXIuY3JlYXRlKHtcbiAgICAgIC8vIERlZmF1bHQgdmFsdWVzXG4gICAgICAvL3Bvc2l0aW9uLFxuICAgICAgZHVyYXRpb246IG9wdHMuc2hvd0Nsb3NlQnV0dG9uID8gMTAwMDAgOiA0MDAwLFxuICAgICAgLy8uLi5vcHRzLFxuICAgICAgbWVzc2FnZTogdHJhbnNsYXRpb25zW21lc3NhZ2VdLFxuICAgICAgLy9oZWFkZXI6IG9wdHMuaGVhZGVyICYmIHRyYW5zbGF0aW9uc1tvcHRzLmhlYWRlcl0gfHwgdW5kZWZpbmVkXG4gICAgfSk7XG5cbiAgICBpZiAob3B0cy5vbldpbGxQcmVzZW50KSBvcHRzLm9uV2lsbFByZXNlbnQodG9hc3QpO1xuXG4gICAgYXdhaXQgdG9hc3QucHJlc2VudCgpO1xuXG4gICAgaWYgKGlzRW1wdHlBcnJheShvcHRzLmJ1dHRvbnMpKSB7XG4gICAgICAvLyBOb3QgbmVlZCB0byB3YWl0IGRpc21pc3MgKG5vICdhd2FpdCcpXG4gICAgICB0b2FzdC5vbkRpZERpc21pc3MoKS50aGVuKHVwZGF0ZUNvdW50ZXJzKTtcbiAgICAgIHJldHVybiBudWxsOyAvLyBubyByZXN1bHRcbiAgICB9XG5cbiAgICBlbHNlIHtcbiAgICAgIC8vIFdhaXQgZm9yIGJ1dHRvbiByZXN1bHRcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRvYXN0Lm9uRGlkRGlzbWlzcygpO1xuXG4gICAgICB1cGRhdGVDb3VudGVycygpO1xuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgfVxufVxuIl19