@sumaris-net/ngx-components 3.0.0-rc1 → 4.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 (633) hide show
  1. package/esm2022/public_api.mjs +337 -0
  2. package/{esm2020 → esm2022}/src/app/admin/admin-routing.module.mjs +8 -8
  3. package/{esm2020 → esm2022}/src/app/admin/admin.module.mjs +11 -11
  4. package/esm2022/src/app/admin/services/filter/person.filter.mjs +68 -0
  5. package/esm2022/src/app/admin/services/person.service.mjs +174 -0
  6. package/esm2022/src/app/admin/services/validator/person.validator.mjs +72 -0
  7. package/esm2022/src/app/admin/users/users.mjs +273 -0
  8. package/esm2022/src/app/admin/users/users.module.mjs +58 -0
  9. package/{esm2020 → esm2022}/src/app/core/about/about.modal.mjs +18 -5
  10. package/{esm2020 → esm2022}/src/app/core/about/about.module.mjs +9 -9
  11. package/{esm2020 → esm2022}/src/app/core/account/account.module.mjs +22 -22
  12. package/esm2022/src/app/core/account/account.page.mjs +335 -0
  13. package/esm2022/src/app/core/account/new-token.modal.mjs +125 -0
  14. package/esm2022/src/app/core/account/token.table.mjs +141 -0
  15. package/esm2022/src/app/core/auth/auth.form.mjs +140 -0
  16. package/esm2022/src/app/core/auth/auth.modal.mjs +76 -0
  17. package/{esm2020 → esm2022}/src/app/core/auth/auth.module.mjs +16 -16
  18. package/{esm2020 → esm2022}/src/app/core/core.module.mjs +87 -87
  19. package/{esm2020 → esm2022}/src/app/core/core.testing.module.mjs +23 -23
  20. package/esm2022/src/app/core/form/buttons/form-buttons-bar.component.mjs +109 -0
  21. package/{esm2020 → esm2022}/src/app/core/form/buttons/form-buttons-bar.module.mjs +10 -10
  22. package/esm2022/src/app/core/form/entity/editor.class.mjs +713 -0
  23. package/esm2022/src/app/core/form/entity/entity-editor-modal.class.mjs +436 -0
  24. package/esm2022/src/app/core/form/entity/entity-editor.class.mjs +724 -0
  25. package/esm2022/src/app/core/form/entity/entity-metadata.component.mjs +24 -0
  26. package/{esm2020 → esm2022}/src/app/core/form/entity/entity.module.mjs +11 -11
  27. package/esm2022/src/app/core/form/form.class.mjs +353 -0
  28. package/{esm2020 → esm2022}/src/app/core/form/form.module.mjs +30 -30
  29. package/{esm2020 → esm2022}/src/app/core/form/form.utils.mjs +69 -60
  30. package/esm2022/src/app/core/form/list/list.form.mjs +233 -0
  31. package/{esm2020 → esm2022}/src/app/core/form/list/list.module.mjs +10 -10
  32. package/esm2022/src/app/core/form/properties/properties.form.mjs +143 -0
  33. package/{esm2020 → esm2022}/src/app/core/form/properties/properties.module.mjs +13 -13
  34. package/esm2022/src/app/core/form/properties/properties.table.mjs +269 -0
  35. package/esm2022/src/app/core/form/properties/property.validator.mjs +24 -0
  36. package/esm2022/src/app/core/form/properties/testing/properties-form.test.mjs +95 -0
  37. package/{esm2020 → esm2022}/src/app/core/form/properties/testing/properties-form.testing.module.mjs +11 -11
  38. package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.mjs +73 -0
  39. package/{esm2020 → esm2022}/src/app/core/form/text-popover/testing/text-popover.testing.module.mjs +10 -10
  40. package/esm2022/src/app/core/form/text-popover/text-form.component.mjs +97 -0
  41. package/esm2022/src/app/core/form/text-popover/text-popover.component.mjs +152 -0
  42. package/{esm2020 → esm2022}/src/app/core/form/text-popover/text-popover.module.mjs +12 -12
  43. package/{esm2020 → esm2022}/src/app/core/graphql/graphql.module.mjs +5 -5
  44. package/esm2022/src/app/core/graphql/graphql.service.mjs +787 -0
  45. package/{esm2020 → esm2022}/src/app/core/graphql/graphql.utils.mjs +2 -1
  46. package/esm2022/src/app/core/home/home.mjs +283 -0
  47. package/esm2022/src/app/core/home/home.module.mjs +51 -0
  48. package/esm2022/src/app/core/icon/icon.component.mjs +40 -0
  49. package/{esm2020 → esm2022}/src/app/core/icon/icon.module.mjs +7 -7
  50. package/esm2022/src/app/core/install/install-upgrade-card.component.mjs +358 -0
  51. package/{esm2020 → esm2022}/src/app/core/install/install-upgrade-card.module.mjs +10 -10
  52. package/esm2022/src/app/core/menu/menu.component.mjs +260 -0
  53. package/esm2022/src/app/core/menu/menu.model.mjs +268 -0
  54. package/esm2022/src/app/core/menu/menu.module.mjs +52 -0
  55. package/esm2022/src/app/core/menu/menu.service.mjs +665 -0
  56. package/esm2022/src/app/core/menu/sub-menu-tab.directive.mjs +109 -0
  57. package/{esm2020 → esm2022}/src/app/core/menu/testing/menu-other.testing.mjs +4 -4
  58. package/esm2022/src/app/core/menu/testing/menu.testing.mjs +122 -0
  59. package/{esm2020 → esm2022}/src/app/core/menu/testing/menu.testing.module.mjs +12 -12
  60. package/esm2022/src/app/core/offline/update-offline-mode-card.component.mjs +29 -0
  61. package/{esm2020 → esm2022}/src/app/core/offline/update-offline-mode-card.module.mjs +10 -10
  62. package/esm2022/src/app/core/peer/select-peer.modal.mjs +192 -0
  63. package/{esm2020 → esm2022}/src/app/core/peer/select-peer.module.mjs +13 -13
  64. package/esm2022/src/app/core/register/register-confirm.page.mjs +88 -0
  65. package/esm2022/src/app/core/register/register.form.mjs +194 -0
  66. package/esm2022/src/app/core/register/register.modal.mjs +55 -0
  67. package/{esm2020 → esm2022}/src/app/core/register/register.module.mjs +13 -13
  68. package/esm2022/src/app/core/services/account.service.mjs +1217 -0
  69. package/esm2022/src/app/core/services/auth-guard.service.mjs +76 -0
  70. package/esm2022/src/app/core/services/base-entity-service.class.mjs +482 -0
  71. package/esm2022/src/app/core/services/base-graphql-service.class.mjs +224 -0
  72. package/esm2022/src/app/core/services/base58.mjs +79 -0
  73. package/esm2022/src/app/core/services/config.service.mjs +365 -0
  74. package/esm2022/src/app/core/services/crypto.service.mjs +107 -0
  75. package/esm2022/src/app/core/services/local-settings.service.mjs +468 -0
  76. package/esm2022/src/app/core/services/model/account.model.mjs +153 -0
  77. package/esm2022/src/app/core/services/model/config.model.mjs +105 -0
  78. package/esm2022/src/app/core/services/model/department.model.mjs +33 -0
  79. package/esm2022/src/app/core/services/model/entity.decorators.mjs +97 -0
  80. package/esm2022/src/app/core/services/model/entity.model.mjs +228 -0
  81. package/esm2022/src/app/core/services/model/peer.model.mjs +82 -0
  82. package/esm2022/src/app/core/services/model/person.model.mjs +109 -0
  83. package/esm2022/src/app/core/services/model/referential.model.mjs +185 -0
  84. package/esm2022/src/app/core/services/model/token.model.mjs +52 -0
  85. package/esm2022/src/app/core/services/network.service.mjs +608 -0
  86. package/{esm2020 → esm2022}/src/app/core/services/pipes/account.pipes.mjs +9 -9
  87. package/{esm2020 → esm2022}/src/app/core/services/pipes/department-to-string.pipe.mjs +5 -5
  88. package/{esm2020 → esm2022}/src/app/core/services/pipes/person-to-string.pipe.mjs +5 -5
  89. package/{esm2020 → esm2022}/src/app/core/services/pipes/usage-mode.pipes.mjs +9 -9
  90. package/{esm2020 → esm2022}/src/app/core/services/platform.service.mjs +27 -5
  91. package/esm2022/src/app/core/services/storage/entities-storage.service.mjs +434 -0
  92. package/esm2022/src/app/core/services/storage/entity-store.class.mjs +458 -0
  93. package/esm2022/src/app/core/services/testing/referential-filter.model.mjs +25 -0
  94. package/esm2022/src/app/core/services/testing/referential.validator.mjs +46 -0
  95. package/esm2022/src/app/core/services/validator/account.validator.mjs +45 -0
  96. package/esm2022/src/app/core/services/validator/base.validator.class.mjs +49 -0
  97. package/esm2022/src/app/core/services/validator/local-settings.validator.mjs +67 -0
  98. package/{esm2020 → esm2022}/src/app/core/services/validator/user-settings.validator.mjs +4 -4
  99. package/{esm2020 → esm2022}/src/app/core/services/validator/user-token.validator.mjs +4 -4
  100. package/{esm2020 → esm2022}/src/app/core/settings/settings.module.mjs +9 -9
  101. package/esm2022/src/app/core/settings/settings.page.mjs +328 -0
  102. package/esm2022/src/app/core/table/actions-column.component.mjs +115 -0
  103. package/esm2022/src/app/core/table/async-table.class.mjs +1735 -0
  104. package/esm2022/src/app/core/table/entities-async-table-datasource.class.mjs +386 -0
  105. package/esm2022/src/app/core/table/entities-table-datasource.class.mjs +401 -0
  106. package/esm2022/src/app/core/table/memory-table.class.mjs +57 -0
  107. package/esm2022/src/app/core/table/table-select-columns.component.mjs +46 -0
  108. package/esm2022/src/app/core/table/table.class.mjs +1771 -0
  109. package/esm2022/src/app/core/table/table.model.mjs +16 -0
  110. package/{esm2020 → esm2022}/src/app/core/table/table.module.mjs +12 -12
  111. package/esm2022/src/app/core/table/testing/table-validator.service.mjs +28 -0
  112. package/esm2022/src/app/core/table/testing/table.testing.mjs +291 -0
  113. package/{esm2020 → esm2022}/src/app/core/table/testing/table.testing.module.mjs +16 -16
  114. package/esm2022/src/app/core/table/testing/table2-validator.service.mjs +25 -0
  115. package/esm2022/src/app/core/table/testing/table2.testing.mjs +250 -0
  116. package/esm2022/src/app/shared/audio/audio.mjs +251 -0
  117. package/esm2022/src/app/shared/audio/audio.testing.mjs +32 -0
  118. package/{esm2020 → esm2022}/src/app/shared/audio/audio.testing.module.mjs +10 -10
  119. package/esm2022/src/app/shared/capacitor/keyboard.mjs +42 -0
  120. package/esm2022/src/app/shared/capacitor/plugins.mjs +9 -0
  121. package/esm2022/src/app/shared/dates.mjs +149 -0
  122. package/esm2022/src/app/shared/debug/debug.component.mjs +40 -0
  123. package/{esm2020 → esm2022}/src/app/shared/debug/debug.module.mjs +14 -14
  124. package/esm2022/src/app/shared/directives/autofocus.directive.mjs +98 -0
  125. package/esm2022/src/app/shared/directives/autotitle.directive.mjs +32 -0
  126. package/{esm2020 → esm2022}/src/app/shared/directives/directives.module.mjs +13 -13
  127. package/esm2022/src/app/shared/directives/drag-and-drop.directive.mjs +52 -0
  128. package/esm2022/src/app/shared/directives/ng-var.directive.mjs +33 -0
  129. package/esm2022/src/app/shared/directives/resizable/resizable.component.mjs +62 -0
  130. package/esm2022/src/app/shared/directives/resizable/resizable.directive.mjs +45 -0
  131. package/{esm2020 → esm2022}/src/app/shared/directives/resizable/resizable.module.mjs +5 -5
  132. package/esm2022/src/app/shared/file/file.service.mjs +122 -0
  133. package/{esm2020 → esm2022}/src/app/shared/file/file.utils.mjs +2 -2
  134. package/esm2022/src/app/shared/form/field.component.mjs +353 -0
  135. package/esm2022/src/app/shared/form/loading-spinner.mjs +35 -0
  136. package/{esm2020 → esm2022}/src/app/shared/functions.mjs +2 -2
  137. package/esm2022/src/app/shared/geolocation/geolocation.utils.mjs +82 -0
  138. package/esm2022/src/app/shared/gesture/gesture-config.mjs +46 -0
  139. package/esm2022/src/app/shared/graph/graph-colors.mjs +219 -0
  140. package/esm2022/src/app/shared/guard/component-dirty.guard.mjs +59 -0
  141. package/esm2022/src/app/shared/help/help.modal.mjs +63 -0
  142. package/esm2022/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +24 -0
  143. package/esm2022/src/app/shared/hotkeys/hotkeys.service.mjs +85 -0
  144. package/{esm2020 → esm2022}/src/app/shared/hotkeys/shared-hotkeys.module.mjs +12 -12
  145. package/esm2022/src/app/shared/image/gallery/image-gallery.component.mjs +388 -0
  146. package/{esm2020 → esm2022}/src/app/shared/image/gallery/image-gallery.module.mjs +22 -22
  147. package/esm2022/src/app/shared/image/gallery/testing/gallegry.model.testing.mjs +26 -0
  148. package/esm2022/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +90 -0
  149. package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.mjs +41 -0
  150. package/{esm2020 → esm2022}/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +16 -16
  151. package/{esm2020 → esm2022}/src/app/shared/image/image.module.mjs +11 -11
  152. package/esm2022/src/app/shared/image/image.service.mjs +104 -0
  153. package/esm2022/src/app/shared/inputs.mjs +231 -0
  154. package/esm2022/src/app/shared/interceptors/progess.interceptor.mjs +28 -0
  155. package/esm2022/src/app/shared/logging/logging-service.class.mjs +128 -0
  156. package/{esm2020 → esm2022}/src/app/shared/logging/logging-service.module.mjs +8 -8
  157. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.config.mjs +49 -0
  158. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.mjs +961 -0
  159. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +82 -0
  160. package/esm2022/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +217 -0
  161. package/esm2022/src/app/shared/material/badge/badge.directive.mjs +209 -0
  162. package/{esm2020 → esm2022}/src/app/shared/material/badge/badge.module.mjs +9 -9
  163. package/esm2022/src/app/shared/material/badge/badge.test.mjs +42 -0
  164. package/esm2022/src/app/shared/material/boolean/boolean.module.mjs +72 -0
  165. package/esm2022/src/app/shared/material/boolean/material-boolean2.mjs +266 -0
  166. package/esm2022/src/app/shared/material/boolean/material.boolean.mjs +271 -0
  167. package/esm2022/src/app/shared/material/boolean/testing/boolean.test.page.mjs +54 -0
  168. package/{esm2020 → esm2022}/src/app/shared/material/chips/chips.module.mjs +30 -30
  169. package/esm2022/src/app/shared/material/chips/material.chips.mjs +719 -0
  170. package/esm2022/src/app/shared/material/chips/testing/chips.test.mjs +148 -0
  171. package/{esm2020 → esm2022}/src/app/shared/material/datetime/datetime.module.mjs +38 -38
  172. package/esm2022/src/app/shared/material/datetime/material.date.mjs +396 -0
  173. package/esm2022/src/app/shared/material/datetime/material.dateshort.mjs +406 -0
  174. package/esm2022/src/app/shared/material/datetime/material.datetime.mjs +523 -0
  175. package/esm2022/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +125 -0
  176. package/esm2022/src/app/shared/material/datetime/testing/mat-date.test.mjs +122 -0
  177. package/esm2022/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +115 -0
  178. package/esm2022/src/app/shared/material/duration/duration.module.mjs +70 -0
  179. package/{esm2020 → esm2022}/src/app/shared/material/duration/duration.utils.mjs +2 -2
  180. package/esm2022/src/app/shared/material/duration/material.duration.mjs +273 -0
  181. package/esm2022/src/app/shared/material/duration/testing/mat-duration.test.mjs +79 -0
  182. package/{esm2020 → esm2022}/src/app/shared/material/latlong/latlong.utils.mjs +3 -3
  183. package/esm2022/src/app/shared/material/latlong/material.latlong.mjs +415 -0
  184. package/esm2022/src/app/shared/material/latlong/material.latlong.module.mjs +72 -0
  185. package/esm2022/src/app/shared/material/latlong/testing/latlong.test.mjs +113 -0
  186. package/{esm2020 → esm2022}/src/app/shared/material/material.module.mjs +131 -131
  187. package/{esm2020 → esm2022}/src/app/shared/material/material.testing.module.mjs +45 -45
  188. package/esm2022/src/app/shared/material/numpad/numpad.append-to-input.directive.mjs +104 -0
  189. package/esm2022/src/app/shared/material/numpad/numpad.component.mjs +83 -0
  190. package/esm2022/src/app/shared/material/numpad/numpad.container.mjs +203 -0
  191. package/esm2022/src/app/shared/material/numpad/numpad.content.mjs +19 -0
  192. package/esm2022/src/app/shared/material/numpad/numpad.directive.mjs +168 -0
  193. package/esm2022/src/app/shared/material/numpad/numpad.dom-service.mjs +36 -0
  194. package/esm2022/src/app/shared/material/numpad/numpad.model.mjs +16 -0
  195. package/{esm2020 → esm2022}/src/app/shared/material/numpad/numpad.module.mjs +20 -20
  196. package/esm2022/src/app/shared/material/numpad/testing/numpad.test.mjs +48 -0
  197. package/esm2022/src/app/shared/material/paginator/material.paginator-i18n.mjs +48 -0
  198. package/esm2022/src/app/shared/material/stepper/material.stepper-i18n.mjs +23 -0
  199. package/esm2022/src/app/shared/material/swipe/material.swipe.mjs +368 -0
  200. package/{esm2020 → esm2022}/src/app/shared/material/swipe/swipe.module.mjs +19 -19
  201. package/esm2022/src/app/shared/material/swipe/testing/swipe.test.mjs +67 -0
  202. package/esm2022/src/app/shared/material/testing/common.test.mjs +105 -0
  203. package/esm2022/src/app/shared/named-filter/named-filter-selector.component.mjs +212 -0
  204. package/esm2022/src/app/shared/named-filter/named-filter.model.mjs +49 -0
  205. package/{esm2020 → esm2022}/src/app/shared/named-filter/named-filter.module.mjs +5 -5
  206. package/esm2022/src/app/shared/named-filter/named-filter.service.mjs +69 -0
  207. package/{esm2020 → esm2022}/src/app/shared/pipes/arrays.pipe.mjs +25 -25
  208. package/{esm2020 → esm2022}/src/app/shared/pipes/colors.pipe.mjs +4 -4
  209. package/esm2022/src/app/shared/pipes/date-diff-duration.pipe.mjs +51 -0
  210. package/esm2022/src/app/shared/pipes/date-format.pipe.mjs +72 -0
  211. package/esm2022/src/app/shared/pipes/date-from-now.pipe.mjs +28 -0
  212. package/esm2022/src/app/shared/pipes/duration.pipe.mjs +36 -0
  213. package/esm2022/src/app/shared/pipes/file-size.pipe.mjs +60 -0
  214. package/esm2022/src/app/shared/pipes/form.pipes.mjs +194 -0
  215. package/{esm2020 → esm2022}/src/app/shared/pipes/highlight.pipe.mjs +5 -5
  216. package/esm2022/src/app/shared/pipes/latlong-format.pipe.mjs +42 -0
  217. package/{esm2020 → esm2022}/src/app/shared/pipes/maps.pipe.mjs +13 -13
  218. package/esm2022/src/app/shared/pipes/maskito.pipe.mjs +118 -0
  219. package/{esm2020 → esm2022}/src/app/shared/pipes/math.pipes.mjs +13 -13
  220. package/esm2022/src/app/shared/pipes/ng-init.pipe.mjs +19 -0
  221. package/{esm2020 → esm2022}/src/app/shared/pipes/number-format.pipe.mjs +5 -5
  222. package/esm2022/src/app/shared/pipes/pipes.module.mjs +256 -0
  223. package/esm2022/src/app/shared/pipes/property.pipes.mjs +97 -0
  224. package/{esm2020 → esm2022}/src/app/shared/pipes/string.pipes.mjs +31 -31
  225. package/esm2022/src/app/shared/pipes/translate-context.pipe.mjs +44 -0
  226. package/{esm2020 → esm2022}/src/app/shared/pipes/types.pipes.mjs +14 -14
  227. package/esm2022/src/app/shared/rx-state.module.mjs +23 -0
  228. package/esm2022/src/app/shared/services/memory-entity-service.class.mjs +347 -0
  229. package/esm2022/src/app/shared/services/progress-bar.service.mjs +31 -0
  230. package/esm2022/src/app/shared/services/startable-observable-service.class.mjs +121 -0
  231. package/esm2022/src/app/shared/services/startable-service.class.mjs +113 -0
  232. package/esm2022/src/app/shared/services/translate-context.service.mjs +104 -0
  233. package/{esm2020 → esm2022}/src/app/shared/shared-routing.module.mjs +11 -11
  234. package/esm2022/src/app/shared/shared.module.mjs +217 -0
  235. package/{esm2020 → esm2022}/src/app/shared/shared.testing.module.mjs +40 -40
  236. package/esm2022/src/app/shared/storage/storage-explorer.component.mjs +286 -0
  237. package/esm2022/src/app/shared/storage/storage-explorer.module.mjs +46 -0
  238. package/{esm2020 → esm2022}/src/app/shared/storage/storage-explorer.testing-routing.module.mjs +7 -7
  239. package/{esm2020 → esm2022}/src/app/shared/storage/storage-explorer.testing.module.mjs +6 -6
  240. package/esm2022/src/app/shared/storage/storage.service.mjs +134 -0
  241. package/{esm2020 → esm2022}/src/app/shared/storage/storage.utils.mjs +1 -1
  242. package/esm2022/src/app/shared/testing/observable.test.mjs +96 -0
  243. package/esm2022/src/app/shared/testing/tests.page.mjs +37 -0
  244. package/esm2022/src/app/shared/toast/toast.testing.mjs +52 -0
  245. package/{esm2020 → esm2022}/src/app/shared/toast/toast.testing.module.mjs +10 -10
  246. package/esm2022/src/app/shared/toast/toasts.mjs +144 -0
  247. package/esm2022/src/app/shared/toolbar/modal-toolbar.mjs +60 -0
  248. package/esm2022/src/app/shared/toolbar/toolbar.mjs +264 -0
  249. package/esm2022/src/app/shared/toolbar/toolbar.module.mjs +57 -0
  250. package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.mjs +59 -0
  251. package/{esm2020 → esm2022}/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +10 -10
  252. package/esm2022/src/app/shared/upload-file/upload-file-popover.component.mjs +107 -0
  253. package/esm2022/src/app/shared/upload-file/upload-file.component.mjs +211 -0
  254. package/esm2022/src/app/shared/upload-file/upload-file.model.mjs +27 -0
  255. package/esm2022/src/app/shared/validator/form-error-adapter.class.mjs +106 -0
  256. package/esm2022/src/app/shared/validator/validators.mjs +580 -0
  257. package/esm2022/src/app/shared/version/versions.mjs +81 -0
  258. package/{esm2020 → esm2022}/src/app/social/job/job.module.mjs +12 -12
  259. package/esm2022/src/app/social/job/progression/job-progression.component.mjs +35 -0
  260. package/esm2022/src/app/social/job/progression/job-progression.icon.mjs +232 -0
  261. package/esm2022/src/app/social/job/progression/job-progression.list.mjs +50 -0
  262. package/esm2022/src/app/social/job/progression/job-progression.model.mjs +28 -0
  263. package/esm2022/src/app/social/job/progression/job-progression.service.mjs +73 -0
  264. package/esm2022/src/app/social/job/testing/job-progression.testing.mjs +43 -0
  265. package/esm2022/src/app/social/job/testing/job-progression.testing.service.mjs +53 -0
  266. package/{esm2020 → esm2022}/src/app/social/job/testing/job.testing.module.mjs +9 -9
  267. package/esm2022/src/app/social/message/message.form.mjs +88 -0
  268. package/esm2022/src/app/social/message/message.modal.mjs +102 -0
  269. package/esm2022/src/app/social/message/message.model.mjs +71 -0
  270. package/{esm2020 → esm2022}/src/app/social/message/message.module.mjs +10 -10
  271. package/esm2022/src/app/social/message/message.service.mjs +88 -0
  272. package/{esm2020 → esm2022}/src/app/social/social.module.mjs +19 -19
  273. package/{esm2020 → esm2022}/src/app/social/social.testing.module.mjs +10 -10
  274. package/esm2022/src/app/social/user-event/notification/user-event-notification.icon.mjs +123 -0
  275. package/esm2022/src/app/social/user-event/notification/user-event-notification.list.mjs +263 -0
  276. package/esm2022/src/app/social/user-event/testing/user-event.testing.mjs +233 -0
  277. package/esm2022/src/app/social/user-event/testing/user-event.testing.model.mjs +128 -0
  278. package/{esm2020 → esm2022}/src/app/social/user-event/testing/user-event.testing.module.mjs +9 -9
  279. package/esm2022/src/app/social/user-event/testing/user-event.testing.service.mjs +116 -0
  280. package/esm2022/src/app/social/user-event/user-event.module.mjs +43 -0
  281. package/esm2022/src/app/social/user-event/user-event.service.mjs +498 -0
  282. package/esm2022/src/environments/environment.class.mjs +47 -0
  283. package/{fesm2020 → fesm2022}/sumaris-net.ngx-components.mjs +5555 -4021
  284. package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -0
  285. package/package.json +11 -17
  286. package/public_api.d.ts +1 -0
  287. package/src/app/admin/users/users.d.ts +1 -1
  288. package/src/app/admin/users/users.module.d.ts +2 -1
  289. package/src/app/core/account/new-token.modal.d.ts +1 -1
  290. package/src/app/core/account/token.table.d.ts +1 -1
  291. package/src/app/core/form/buttons/form-buttons-bar.component.d.ts +1 -1
  292. package/src/app/core/form/entity/editor.class.d.ts +1 -1
  293. package/src/app/core/form/entity/entity-editor-modal.class.d.ts +1 -1
  294. package/src/app/core/form/entity/entity-metadata.component.d.ts +1 -1
  295. package/src/app/core/form/form.class.d.ts +1 -1
  296. package/src/app/core/form/list/list.form.d.ts +1 -1
  297. package/src/app/core/form/properties/properties.form.d.ts +1 -1
  298. package/src/app/core/form/properties/properties.table.d.ts +1 -1
  299. package/src/app/core/form/text-popover/text-form.component.d.ts +1 -1
  300. package/src/app/core/form/text-popover/text-popover.component.d.ts +1 -1
  301. package/src/app/core/home/home.module.d.ts +4 -3
  302. package/src/app/core/icon/icon.component.d.ts +1 -1
  303. package/src/app/core/install/install-upgrade-card.component.d.ts +1 -1
  304. package/src/app/core/menu/menu.component.d.ts +1 -1
  305. package/src/app/core/menu/menu.module.d.ts +3 -5
  306. package/src/app/core/menu/menu.service.d.ts +1 -1
  307. package/src/app/core/menu/sub-menu-tab.directive.d.ts +1 -1
  308. package/src/app/core/offline/update-offline-mode-card.component.d.ts +1 -1
  309. package/src/app/core/peer/select-peer.modal.d.ts +1 -1
  310. package/src/app/core/services/base-entity-service.class.d.ts +1 -1
  311. package/src/app/core/services/model/person.model.d.ts +1 -1
  312. package/src/app/core/services/model/settings.model.d.ts +1 -1
  313. package/src/app/core/services/network.types.d.ts +2 -2
  314. package/src/app/core/services/storage/entity-store.class.d.ts +1 -1
  315. package/src/app/core/table/actions-column.component.d.ts +1 -1
  316. package/src/app/core/table/async-table.class.d.ts +1 -1
  317. package/src/app/core/table/memory-table.class.d.ts +1 -1
  318. package/src/app/core/table/table-select-columns.component.d.ts +1 -1
  319. package/src/app/core/table/table.class.d.ts +1 -1
  320. package/src/app/core/table/table.model.d.ts +1 -1
  321. package/src/app/core/table/testing/table.testing.d.ts +1 -1
  322. package/src/app/shared/audio/audio.d.ts +1 -1
  323. package/src/app/shared/debug/debug.component.d.ts +1 -1
  324. package/src/app/shared/directives/autofocus.directive.d.ts +1 -1
  325. package/src/app/shared/directives/ng-var.directive.d.ts +1 -1
  326. package/src/app/shared/directives/resizable/resizable.component.d.ts +1 -1
  327. package/src/app/shared/events.d.ts +1 -1
  328. package/src/app/shared/form/field.component.d.ts +1 -1
  329. package/src/app/shared/form/loading-spinner.d.ts +1 -1
  330. package/src/app/shared/help/help.modal.d.ts +1 -1
  331. package/src/app/shared/image/gallery/image-gallery.component.d.ts +1 -1
  332. package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +1 -1
  333. package/src/app/shared/material/autocomplete/material.autocomplete.module.d.ts +10 -9
  334. package/src/app/shared/material/badge/badge.directive.d.ts +1 -1
  335. package/src/app/shared/material/boolean/boolean.module.d.ts +4 -5
  336. package/src/app/shared/material/boolean/material-boolean2.d.ts +1 -1
  337. package/src/app/shared/material/boolean/material.boolean.d.ts +1 -1
  338. package/src/app/shared/material/chips/material.chips.d.ts +1 -1
  339. package/src/app/shared/material/datetime/datetime.module.d.ts +2 -2
  340. package/src/app/shared/material/datetime/material.date.d.ts +2 -2
  341. package/src/app/shared/material/datetime/material.dateshort.d.ts +3 -3
  342. package/src/app/shared/material/datetime/material.datetime.d.ts +5 -4
  343. package/src/app/shared/material/duration/duration.module.d.ts +6 -5
  344. package/src/app/shared/material/duration/material.duration.d.ts +2 -2
  345. package/src/app/shared/material/latlong/material.latlong.d.ts +5 -5
  346. package/src/app/shared/material/latlong/material.latlong.module.d.ts +9 -8
  347. package/src/app/shared/material/latlong/testing/latlong.test.d.ts +2 -0
  348. package/src/app/shared/material/numpad/numpad.append-to-input.directive.d.ts +1 -1
  349. package/src/app/shared/material/numpad/numpad.component.d.ts +1 -1
  350. package/src/app/shared/material/numpad/numpad.content.d.ts +1 -1
  351. package/src/app/shared/material/numpad/numpad.directive.d.ts +1 -1
  352. package/src/app/shared/material/swipe/material.swipe.d.ts +1 -1
  353. package/src/app/shared/material/testing/common.test.d.ts +4 -2
  354. package/src/app/shared/named-filter/named-filter-selector.component.d.ts +1 -1
  355. package/src/app/shared/pipes/maskito.pipe.d.ts +16 -0
  356. package/src/app/shared/pipes/pipes.module.d.ts +5 -4
  357. package/src/app/shared/pipes/types.pipes.d.ts +3 -3
  358. package/src/app/shared/rx-state.module.d.ts +1 -1
  359. package/src/app/shared/services/job.utils.d.ts +1 -1
  360. package/src/app/shared/shared.module.d.ts +11 -12
  361. package/src/app/shared/storage/storage-explorer.component.d.ts +1 -1
  362. package/src/app/shared/storage/storage-explorer.module.d.ts +3 -3
  363. package/src/app/shared/storage/storage.service.d.ts +1 -1
  364. package/src/app/shared/storage/storage.utils.d.ts +1 -1
  365. package/src/app/shared/toolbar/modal-toolbar.d.ts +1 -1
  366. package/src/app/shared/toolbar/toolbar.d.ts +1 -1
  367. package/src/app/shared/toolbar/toolbar.module.d.ts +4 -3
  368. package/src/app/shared/upload-file/upload-file-popover.component.d.ts +1 -1
  369. package/src/app/shared/upload-file/upload-file.component.d.ts +1 -1
  370. package/src/app/shared/upload-file/upload-file.model.d.ts +2 -2
  371. package/src/app/social/job/progression/job-progression.component.d.ts +1 -1
  372. package/src/app/social/job/progression/job-progression.icon.d.ts +1 -1
  373. package/src/app/social/job/progression/job-progression.list.d.ts +1 -1
  374. package/src/app/social/message/message.form.d.ts +1 -1
  375. package/src/app/social/message/message.modal.d.ts +1 -1
  376. package/src/app/social/user-event/notification/user-event-notification.icon.d.ts +4 -3
  377. package/src/app/social/user-event/notification/user-event-notification.list.d.ts +1 -1
  378. package/src/app/social/user-event/user-event.model.d.ts +2 -2
  379. package/src/app/social/user-event/user-event.module.d.ts +3 -2
  380. package/src/assets/i18n/fr.json +2 -2
  381. package/src/theme/_material.globals.scss +2 -2
  382. package/src/theme/_material.scss +14 -1
  383. package/src/theme/_mixins.scss +2 -2
  384. package/src/theme/_ngx-components.scss +7 -8
  385. package/src/theme/_ngx-components.table.scss +12 -6
  386. package/esm2020/public_api.mjs +0 -336
  387. package/esm2020/src/app/admin/services/filter/person.filter.mjs +0 -59
  388. package/esm2020/src/app/admin/services/person.service.mjs +0 -170
  389. package/esm2020/src/app/admin/services/validator/person.validator.mjs +0 -71
  390. package/esm2020/src/app/admin/users/users.mjs +0 -259
  391. package/esm2020/src/app/admin/users/users.module.mjs +0 -54
  392. package/esm2020/src/app/core/account/account.page.mjs +0 -317
  393. package/esm2020/src/app/core/account/new-token.modal.mjs +0 -115
  394. package/esm2020/src/app/core/account/token.table.mjs +0 -137
  395. package/esm2020/src/app/core/auth/auth.form.mjs +0 -132
  396. package/esm2020/src/app/core/auth/auth.modal.mjs +0 -72
  397. package/esm2020/src/app/core/form/buttons/form-buttons-bar.component.mjs +0 -107
  398. package/esm2020/src/app/core/form/entity/editor.class.mjs +0 -679
  399. package/esm2020/src/app/core/form/entity/entity-editor-modal.class.mjs +0 -422
  400. package/esm2020/src/app/core/form/entity/entity-editor.class.mjs +0 -690
  401. package/esm2020/src/app/core/form/entity/entity-metadata.component.mjs +0 -25
  402. package/esm2020/src/app/core/form/form.class.mjs +0 -345
  403. package/esm2020/src/app/core/form/list/list.form.mjs +0 -222
  404. package/esm2020/src/app/core/form/properties/properties.form.mjs +0 -132
  405. package/esm2020/src/app/core/form/properties/properties.table.mjs +0 -265
  406. package/esm2020/src/app/core/form/properties/property.validator.mjs +0 -23
  407. package/esm2020/src/app/core/form/properties/testing/properties-form.test.mjs +0 -90
  408. package/esm2020/src/app/core/form/text-popover/testing/text-popover.testing.mjs +0 -70
  409. package/esm2020/src/app/core/form/text-popover/text-form.component.mjs +0 -89
  410. package/esm2020/src/app/core/form/text-popover/text-popover.component.mjs +0 -146
  411. package/esm2020/src/app/core/graphql/graphql.service.mjs +0 -774
  412. package/esm2020/src/app/core/home/home.mjs +0 -258
  413. package/esm2020/src/app/core/home/home.module.mjs +0 -48
  414. package/esm2020/src/app/core/icon/icon.component.mjs +0 -41
  415. package/esm2020/src/app/core/install/install-upgrade-card.component.mjs +0 -344
  416. package/esm2020/src/app/core/menu/menu.component.mjs +0 -239
  417. package/esm2020/src/app/core/menu/menu.model.mjs +0 -247
  418. package/esm2020/src/app/core/menu/menu.module.mjs +0 -57
  419. package/esm2020/src/app/core/menu/menu.service.mjs +0 -654
  420. package/esm2020/src/app/core/menu/sub-menu-tab.directive.mjs +0 -98
  421. package/esm2020/src/app/core/menu/testing/menu.testing.mjs +0 -121
  422. package/esm2020/src/app/core/offline/update-offline-mode-card.component.mjs +0 -27
  423. package/esm2020/src/app/core/peer/select-peer.modal.mjs +0 -183
  424. package/esm2020/src/app/core/register/register-confirm.page.mjs +0 -81
  425. package/esm2020/src/app/core/register/register.form.mjs +0 -183
  426. package/esm2020/src/app/core/register/register.modal.mjs +0 -52
  427. package/esm2020/src/app/core/services/account.service.mjs +0 -1206
  428. package/esm2020/src/app/core/services/auth-guard.service.mjs +0 -71
  429. package/esm2020/src/app/core/services/base-entity-service.class.mjs +0 -468
  430. package/esm2020/src/app/core/services/base-graphql-service.class.mjs +0 -221
  431. package/esm2020/src/app/core/services/base58.mjs +0 -78
  432. package/esm2020/src/app/core/services/config.service.mjs +0 -355
  433. package/esm2020/src/app/core/services/crypto.service.mjs +0 -107
  434. package/esm2020/src/app/core/services/local-settings.service.mjs +0 -460
  435. package/esm2020/src/app/core/services/model/account.model.mjs +0 -147
  436. package/esm2020/src/app/core/services/model/config.model.mjs +0 -92
  437. package/esm2020/src/app/core/services/model/department.model.mjs +0 -30
  438. package/esm2020/src/app/core/services/model/entity.decorators.mjs +0 -97
  439. package/esm2020/src/app/core/services/model/entity.model.mjs +0 -225
  440. package/esm2020/src/app/core/services/model/peer.model.mjs +0 -68
  441. package/esm2020/src/app/core/services/model/person.model.mjs +0 -97
  442. package/esm2020/src/app/core/services/model/referential.model.mjs +0 -164
  443. package/esm2020/src/app/core/services/model/token.model.mjs +0 -48
  444. package/esm2020/src/app/core/services/network.service.mjs +0 -590
  445. package/esm2020/src/app/core/services/storage/entities-storage.service.mjs +0 -428
  446. package/esm2020/src/app/core/services/storage/entity-store.class.mjs +0 -449
  447. package/esm2020/src/app/core/services/testing/referential-filter.model.mjs +0 -23
  448. package/esm2020/src/app/core/services/testing/referential.validator.mjs +0 -45
  449. package/esm2020/src/app/core/services/validator/account.validator.mjs +0 -41
  450. package/esm2020/src/app/core/services/validator/base.validator.class.mjs +0 -47
  451. package/esm2020/src/app/core/services/validator/local-settings.validator.mjs +0 -66
  452. package/esm2020/src/app/core/settings/settings.page.mjs +0 -312
  453. package/esm2020/src/app/core/table/actions-column.component.mjs +0 -102
  454. package/esm2020/src/app/core/table/async-table.class.mjs +0 -1698
  455. package/esm2020/src/app/core/table/entities-async-table-datasource.class.mjs +0 -384
  456. package/esm2020/src/app/core/table/entities-table-datasource.class.mjs +0 -399
  457. package/esm2020/src/app/core/table/memory-table.class.mjs +0 -53
  458. package/esm2020/src/app/core/table/table-select-columns.component.mjs +0 -43
  459. package/esm2020/src/app/core/table/table.class.mjs +0 -1733
  460. package/esm2020/src/app/core/table/table.model.mjs +0 -12
  461. package/esm2020/src/app/core/table/testing/table-validator.service.mjs +0 -27
  462. package/esm2020/src/app/core/table/testing/table.testing.mjs +0 -281
  463. package/esm2020/src/app/core/table/testing/table2-validator.service.mjs +0 -24
  464. package/esm2020/src/app/core/table/testing/table2.testing.mjs +0 -242
  465. package/esm2020/src/app/shared/audio/audio.mjs +0 -248
  466. package/esm2020/src/app/shared/audio/audio.testing.mjs +0 -31
  467. package/esm2020/src/app/shared/capacitor/keyboard.mjs +0 -40
  468. package/esm2020/src/app/shared/capacitor/plugins.mjs +0 -9
  469. package/esm2020/src/app/shared/dates.mjs +0 -149
  470. package/esm2020/src/app/shared/debug/debug.component.mjs +0 -39
  471. package/esm2020/src/app/shared/directives/autofocus.directive.mjs +0 -93
  472. package/esm2020/src/app/shared/directives/autotitle.directive.mjs +0 -30
  473. package/esm2020/src/app/shared/directives/drag-and-drop.directive.mjs +0 -53
  474. package/esm2020/src/app/shared/directives/ng-var.directive.mjs +0 -31
  475. package/esm2020/src/app/shared/directives/resizable/resizable.component.mjs +0 -60
  476. package/esm2020/src/app/shared/directives/resizable/resizable.directive.mjs +0 -40
  477. package/esm2020/src/app/shared/file/file.service.mjs +0 -117
  478. package/esm2020/src/app/shared/form/field.component.mjs +0 -334
  479. package/esm2020/src/app/shared/form/loading-spinner.mjs +0 -36
  480. package/esm2020/src/app/shared/geolocation/geolocation.utils.mjs +0 -80
  481. package/esm2020/src/app/shared/gesture/gesture-config.mjs +0 -49
  482. package/esm2020/src/app/shared/graph/graph-colors.mjs +0 -212
  483. package/esm2020/src/app/shared/guard/component-dirty.guard.mjs +0 -57
  484. package/esm2020/src/app/shared/help/help.modal.mjs +0 -53
  485. package/esm2020/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +0 -23
  486. package/esm2020/src/app/shared/hotkeys/hotkeys.service.mjs +0 -81
  487. package/esm2020/src/app/shared/image/gallery/image-gallery.component.mjs +0 -368
  488. package/esm2020/src/app/shared/image/gallery/testing/gallegry.model.testing.mjs +0 -27
  489. package/esm2020/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +0 -90
  490. package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.mjs +0 -39
  491. package/esm2020/src/app/shared/image/image.service.mjs +0 -98
  492. package/esm2020/src/app/shared/inputs.mjs +0 -231
  493. package/esm2020/src/app/shared/interceptors/progess.interceptor.mjs +0 -27
  494. package/esm2020/src/app/shared/logging/logging-service.class.mjs +0 -121
  495. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.config.mjs +0 -47
  496. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.mjs +0 -925
  497. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +0 -78
  498. package/esm2020/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +0 -209
  499. package/esm2020/src/app/shared/material/badge/badge.directive.mjs +0 -199
  500. package/esm2020/src/app/shared/material/badge/badge.test.mjs +0 -41
  501. package/esm2020/src/app/shared/material/boolean/boolean.module.mjs +0 -76
  502. package/esm2020/src/app/shared/material/boolean/material-boolean2.mjs +0 -248
  503. package/esm2020/src/app/shared/material/boolean/material.boolean.mjs +0 -254
  504. package/esm2020/src/app/shared/material/boolean/testing/boolean.test.page.mjs +0 -51
  505. package/esm2020/src/app/shared/material/chips/material.chips.mjs +0 -688
  506. package/esm2020/src/app/shared/material/chips/testing/chips.test.mjs +0 -143
  507. package/esm2020/src/app/shared/material/datetime/material.date.mjs +0 -378
  508. package/esm2020/src/app/shared/material/datetime/material.dateshort.mjs +0 -387
  509. package/esm2020/src/app/shared/material/datetime/material.datetime.mjs +0 -501
  510. package/esm2020/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +0 -120
  511. package/esm2020/src/app/shared/material/datetime/testing/mat-date.test.mjs +0 -118
  512. package/esm2020/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +0 -111
  513. package/esm2020/src/app/shared/material/duration/duration.module.mjs +0 -67
  514. package/esm2020/src/app/shared/material/duration/material.duration.mjs +0 -258
  515. package/esm2020/src/app/shared/material/duration/testing/mat-duration.test.mjs +0 -76
  516. package/esm2020/src/app/shared/material/latlong/material.latlong.mjs +0 -383
  517. package/esm2020/src/app/shared/material/latlong/material.latlong.module.mjs +0 -67
  518. package/esm2020/src/app/shared/material/latlong/testing/latlong.test.mjs +0 -102
  519. package/esm2020/src/app/shared/material/numpad/numpad.append-to-input.directive.mjs +0 -98
  520. package/esm2020/src/app/shared/material/numpad/numpad.component.mjs +0 -80
  521. package/esm2020/src/app/shared/material/numpad/numpad.container.mjs +0 -190
  522. package/esm2020/src/app/shared/material/numpad/numpad.content.mjs +0 -17
  523. package/esm2020/src/app/shared/material/numpad/numpad.directive.mjs +0 -162
  524. package/esm2020/src/app/shared/material/numpad/numpad.dom-service.mjs +0 -32
  525. package/esm2020/src/app/shared/material/numpad/numpad.model.mjs +0 -15
  526. package/esm2020/src/app/shared/material/numpad/testing/numpad.test.mjs +0 -46
  527. package/esm2020/src/app/shared/material/paginator/material.paginator-i18n.mjs +0 -46
  528. package/esm2020/src/app/shared/material/stepper/material.stepper-i18n.mjs +0 -22
  529. package/esm2020/src/app/shared/material/swipe/material.swipe.mjs +0 -345
  530. package/esm2020/src/app/shared/material/swipe/testing/swipe.test.mjs +0 -64
  531. package/esm2020/src/app/shared/material/testing/common.test.mjs +0 -95
  532. package/esm2020/src/app/shared/named-filter/named-filter-selector.component.mjs +0 -202
  533. package/esm2020/src/app/shared/named-filter/named-filter.model.mjs +0 -45
  534. package/esm2020/src/app/shared/named-filter/named-filter.service.mjs +0 -63
  535. package/esm2020/src/app/shared/pipes/date-diff-duration.pipe.mjs +0 -48
  536. package/esm2020/src/app/shared/pipes/date-format.pipe.mjs +0 -66
  537. package/esm2020/src/app/shared/pipes/date-from-now.pipe.mjs +0 -27
  538. package/esm2020/src/app/shared/pipes/duration.pipe.mjs +0 -34
  539. package/esm2020/src/app/shared/pipes/file-size.pipe.mjs +0 -62
  540. package/esm2020/src/app/shared/pipes/form.pipes.mjs +0 -187
  541. package/esm2020/src/app/shared/pipes/latlong-format.pipe.mjs +0 -46
  542. package/esm2020/src/app/shared/pipes/ng-init.pipe.mjs +0 -21
  543. package/esm2020/src/app/shared/pipes/pipes.module.mjs +0 -247
  544. package/esm2020/src/app/shared/pipes/property.pipes.mjs +0 -93
  545. package/esm2020/src/app/shared/pipes/translate-context.pipe.mjs +0 -43
  546. package/esm2020/src/app/shared/rx-state.module.mjs +0 -23
  547. package/esm2020/src/app/shared/services/memory-entity-service.class.mjs +0 -339
  548. package/esm2020/src/app/shared/services/progress-bar.service.mjs +0 -33
  549. package/esm2020/src/app/shared/services/startable-observable-service.class.mjs +0 -121
  550. package/esm2020/src/app/shared/services/startable-service.class.mjs +0 -113
  551. package/esm2020/src/app/shared/services/translate-context.service.mjs +0 -103
  552. package/esm2020/src/app/shared/shared.module.mjs +0 -224
  553. package/esm2020/src/app/shared/storage/storage-explorer.component.mjs +0 -268
  554. package/esm2020/src/app/shared/storage/storage-explorer.module.mjs +0 -47
  555. package/esm2020/src/app/shared/storage/storage.service.mjs +0 -132
  556. package/esm2020/src/app/shared/testing/observable.test.mjs +0 -95
  557. package/esm2020/src/app/shared/testing/tests.page.mjs +0 -33
  558. package/esm2020/src/app/shared/toast/toast.testing.mjs +0 -51
  559. package/esm2020/src/app/shared/toast/toasts.mjs +0 -144
  560. package/esm2020/src/app/shared/toolbar/modal-toolbar.mjs +0 -58
  561. package/esm2020/src/app/shared/toolbar/toolbar.mjs +0 -251
  562. package/esm2020/src/app/shared/toolbar/toolbar.module.mjs +0 -53
  563. package/esm2020/src/app/shared/upload-file/testing/upload-file.testing.mjs +0 -58
  564. package/esm2020/src/app/shared/upload-file/upload-file-popover.component.mjs +0 -97
  565. package/esm2020/src/app/shared/upload-file/upload-file.component.mjs +0 -204
  566. package/esm2020/src/app/shared/upload-file/upload-file.model.mjs +0 -20
  567. package/esm2020/src/app/shared/validator/form-error-adapter.class.mjs +0 -104
  568. package/esm2020/src/app/shared/validator/validators.mjs +0 -580
  569. package/esm2020/src/app/shared/version/versions.mjs +0 -81
  570. package/esm2020/src/app/social/job/progression/job-progression.component.mjs +0 -34
  571. package/esm2020/src/app/social/job/progression/job-progression.icon.mjs +0 -223
  572. package/esm2020/src/app/social/job/progression/job-progression.list.mjs +0 -46
  573. package/esm2020/src/app/social/job/progression/job-progression.model.mjs +0 -23
  574. package/esm2020/src/app/social/job/progression/job-progression.service.mjs +0 -71
  575. package/esm2020/src/app/social/job/testing/job-progression.testing.mjs +0 -41
  576. package/esm2020/src/app/social/job/testing/job-progression.testing.service.mjs +0 -55
  577. package/esm2020/src/app/social/message/message.form.mjs +0 -84
  578. package/esm2020/src/app/social/message/message.modal.mjs +0 -93
  579. package/esm2020/src/app/social/message/message.model.mjs +0 -64
  580. package/esm2020/src/app/social/message/message.service.mjs +0 -84
  581. package/esm2020/src/app/social/user-event/notification/user-event-notification.icon.mjs +0 -114
  582. package/esm2020/src/app/social/user-event/notification/user-event-notification.list.mjs +0 -246
  583. package/esm2020/src/app/social/user-event/testing/user-event.testing.mjs +0 -227
  584. package/esm2020/src/app/social/user-event/testing/user-event.testing.model.mjs +0 -112
  585. package/esm2020/src/app/social/user-event/testing/user-event.testing.service.mjs +0 -111
  586. package/esm2020/src/app/social/user-event/user-event.module.mjs +0 -39
  587. package/esm2020/src/app/social/user-event/user-event.service.mjs +0 -488
  588. package/esm2020/src/environments/environment.class.mjs +0 -5
  589. package/fesm2015/sumaris-net.ngx-components.mjs +0 -41541
  590. package/fesm2015/sumaris-net.ngx-components.mjs.map +0 -1
  591. package/fesm2020/sumaris-net.ngx-components.mjs.map +0 -1
  592. /package/{esm2020 → esm2022}/src/app/core/services/config/core.config.mjs +0 -0
  593. /package/{esm2020 → esm2022}/src/app/core/services/errors.mjs +0 -0
  594. /package/{esm2020 → esm2022}/src/app/core/services/model/filter.model.mjs +0 -0
  595. /package/{esm2020 → esm2022}/src/app/core/services/model/history.model.mjs +0 -0
  596. /package/{esm2020 → esm2022}/src/app/core/services/model/model.enum.mjs +0 -0
  597. /package/{esm2020 → esm2022}/src/app/core/services/model/settings.model.mjs +0 -0
  598. /package/{esm2020 → esm2022}/src/app/core/services/model/tree-item-entity.model.mjs +0 -0
  599. /package/{esm2020 → esm2022}/src/app/core/services/network.types.mjs +0 -0
  600. /package/{esm2020 → esm2022}/src/app/core/services/network.utils.mjs +0 -0
  601. /package/{esm2020 → esm2022}/src/app/core/table/table.utils.mjs +0 -0
  602. /package/{esm2020 → esm2022}/src/app/shared/alerts.mjs +0 -0
  603. /package/{esm2020 → esm2022}/src/app/shared/constants.mjs +0 -0
  604. /package/{esm2020 → esm2022}/src/app/shared/debug/debug-service.class.mjs +0 -0
  605. /package/{esm2020 → esm2022}/src/app/shared/events.mjs +0 -0
  606. /package/{esm2020 → esm2022}/src/app/shared/file/csv.utils.mjs +0 -0
  607. /package/{esm2020 → esm2022}/src/app/shared/file/images.utils.mjs +0 -0
  608. /package/{esm2020 → esm2022}/src/app/shared/file/json.utils.mjs +0 -0
  609. /package/{esm2020 → esm2022}/src/app/shared/file/uri.utils.mjs +0 -0
  610. /package/{esm2020 → esm2022}/src/app/shared/focusable.mjs +0 -0
  611. /package/{esm2020 → esm2022}/src/app/shared/form/field.model.mjs +0 -0
  612. /package/{esm2020 → esm2022}/src/app/shared/forms.mjs +0 -0
  613. /package/{esm2020 → esm2022}/src/app/shared/gesture/hammer.utils.mjs +0 -0
  614. /package/{esm2020 → esm2022}/src/app/shared/graph/colors.utils.mjs +0 -0
  615. /package/{esm2020 → esm2022}/src/app/shared/http/http.utils.mjs +0 -0
  616. /package/{esm2020 → esm2022}/src/app/shared/image/image.model.mjs +0 -0
  617. /package/{esm2020 → esm2022}/src/app/shared/logging/log-level.model.mjs +0 -0
  618. /package/{esm2020 → esm2022}/src/app/shared/logging/logger.model.mjs +0 -0
  619. /package/{esm2020 → esm2022}/src/app/shared/logging/logging-service.config.mjs +0 -0
  620. /package/{esm2020 → esm2022}/src/app/shared/material/autocomplete/material.autocomplete.utils.mjs +0 -0
  621. /package/{esm2020 → esm2022}/src/app/shared/material/material.animations.mjs +0 -0
  622. /package/{esm2020 → esm2022}/src/app/shared/modules.mjs +0 -0
  623. /package/{esm2020 → esm2022}/src/app/shared/observables.mjs +0 -0
  624. /package/{esm2020 → esm2022}/src/app/shared/platforms.mjs +0 -0
  625. /package/{esm2020 → esm2022}/src/app/shared/services/entity-service.class.mjs +0 -0
  626. /package/{esm2020 → esm2022}/src/app/shared/services/job.utils.mjs +0 -0
  627. /package/{esm2020 → esm2022}/src/app/shared/services/validator-service.class.mjs +0 -0
  628. /package/{esm2020 → esm2022}/src/app/shared/services.mjs +0 -0
  629. /package/{esm2020 → esm2022}/src/app/shared/types.mjs +0 -0
  630. /package/{esm2020 → esm2022}/src/app/social/social.errors.mjs +0 -0
  631. /package/{esm2020 → esm2022}/src/app/social/user-event/user-event.model.mjs +0 -0
  632. /package/{esm2020 → esm2022}/src/environments/environment.mjs +0 -0
  633. /package/{esm2020 → esm2022}/sumaris-net.ngx-components.mjs +0 -0
@@ -1,248 +0,0 @@
1
- import { Injectable, Optional } from '@angular/core';
2
- import { AudioManagement } from '@ionic-native/audio-management/ngx';
3
- import { isNil, sleep, toBoolean } from '../functions';
4
- import { StartableService } from '../services/startable-service.class';
5
- import { Haptics } from '@capacitor/haptics';
6
- import { NativeAudio } from '@capacitor-community/native-audio';
7
- import { Capacitor } from '@capacitor/core';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "@ionic/angular";
10
- import * as i2 from "@ionic-native/audio-management/ngx";
11
- const SYSTEM_SOUNDS = [
12
- { assetId: 'startup', assetPath: 'assets/audio/unfa-ping.mp3', vibration: [300, 250, 750] },
13
- { assetId: 'beep-confirm', assetPath: 'assets/audio/beep-confirm.mp3', vibration: 250 },
14
- { assetId: 'beep-error', assetPath: 'assets/audio/beep-error.mp3', vibration: 1000 },
15
- { assetId: 'beep-notification', assetPath: 'assets/audio/beep-notification.mp3', vibration: [450, 150, 450] }
16
- ];
17
- const DEFAULT_AUDIO_MODE_RETURN = {
18
- audioMode: AudioManagement.AudioMode.NORMAL,
19
- label: 'Normal'
20
- };
21
- function audioModeToString(mode) {
22
- switch (mode) {
23
- case AudioManagement.AudioMode.SILENT: return 'Silent';
24
- case AudioManagement.AudioMode.NORMAL: return 'Normal';
25
- case AudioManagement.AudioMode.VIBRATE: return 'Vibrate';
26
- }
27
- }
28
- export class AudioProvider extends StartableService {
29
- constructor(platform, audioManagement) {
30
- super(platform);
31
- this.platform = platform;
32
- this.audioManagement = audioManagement;
33
- this._audioMode = AudioManagement.AudioMode.NORMAL;
34
- this._assetPathPrefix = '';
35
- this._preloadedSounds = {};
36
- this._htmlAudioCache = {};
37
- console.info(`[audio] Create audio provider`);
38
- }
39
- async ngOnStart() {
40
- const cordova = this.platform.is('cordova');
41
- this._assetPathPrefix = cordova ? 'public/' : '';
42
- this._audioType = cordova && Capacitor.isPluginAvailable('NativeAudio') ? 'native' : 'html5';
43
- console.info(`[audio] Starting audio provider {${this._audioType}}...`);
44
- // Listen audio mode changed
45
- if (cordova && this.audioManagement) {
46
- await this.readAudioMode();
47
- }
48
- // Pre-loading system sounds
49
- console.debug('[audio] Preloading audio sounds...');
50
- let errorCount = 0;
51
- await Promise.all(SYSTEM_SOUNDS.map(s => {
52
- // Disable vibration in HTML 5 mode
53
- if (this._audioType === 'html5')
54
- s.vibration = undefined;
55
- return this.preload(s)
56
- .catch(_ => errorCount++);
57
- }));
58
- if (errorCount > 0) {
59
- console.warn('[audio] Preloading audio sounds [OK] with ${errorCount} errors during preload.');
60
- }
61
- else {
62
- console.debug('[audio] Preloading audio sounds [OK]');
63
- }
64
- }
65
- playBeepConfirm() {
66
- return this.play('beep-confirm', {
67
- // Vibrate only if in vibration mode
68
- vibrate: this._audioMode === AudioManagement.AudioMode.VIBRATE
69
- });
70
- }
71
- playBeepError() {
72
- return this.play('beep-error', {
73
- // Always vibrate (will skip vibration if silent mode)
74
- vibrate: true
75
- });
76
- }
77
- async playBeepNotification() {
78
- await this.play('beep-notification', {
79
- vibrate: this._audioMode === AudioManagement.AudioMode.VIBRATE
80
- });
81
- }
82
- async playStartupSound() {
83
- return this.play('startup');
84
- }
85
- async preload(sound) {
86
- if (!sound?.assetId)
87
- return; // Skip
88
- if (!!this._preloadedSounds[sound.assetId])
89
- return; // Already preloaded
90
- if (isNil(this._audioType))
91
- await this.ready();
92
- const assetPath = (this._assetPathPrefix || '') + sound.assetPath;
93
- console.info(`[audio] Preloading sound '${sound.assetId}', from file '${assetPath}'...`);
94
- try {
95
- if (this._audioType === 'native') {
96
- this._preloadedSounds[sound.assetId] = sound;
97
- await NativeAudio.preload({
98
- audioChannelNum: 1,
99
- isUrl: false,
100
- ...sound,
101
- assetPath
102
- });
103
- }
104
- else {
105
- this._htmlAudioCache[sound.assetId] = new Audio(assetPath);
106
- this._preloadedSounds[sound.assetId] = sound;
107
- }
108
- // Add to map
109
- console.info(`[audio] Preloading sound '${sound.assetId}' [OK]`);
110
- }
111
- catch (err) {
112
- const errorMsg = err?.message || err;
113
- if (errorMsg === 'Audio Asset already exists') {
114
- console.info(`[audio] Preloading sound '${sound.assetId}': Skipped (${errorMsg})`);
115
- }
116
- else {
117
- this._preloadedSounds[sound.assetId] = null;
118
- console.error(`[audio] Unable to preload sound '${sound.assetId}', from file '${assetPath}': ${errorMsg}\n${err?.originalStack || ''}`);
119
- throw err;
120
- }
121
- }
122
- }
123
- async play(assetId, opts) {
124
- // Make sure provider is ready
125
- if (!this.started)
126
- await this.ready();
127
- const sound = this._preloadedSounds[assetId];
128
- if (!sound) {
129
- throw Error(`Unable to find sound '${assetId}'. Please call preload() before playing a sound.`);
130
- }
131
- // If silent: skip
132
- if (this._audioMode === AudioManagement.AudioMode.SILENT)
133
- return;
134
- const promises = [];
135
- // Normal mode = can play the sound
136
- if (this._audioMode === AudioManagement.AudioMode.NORMAL) {
137
- // Use native audio
138
- if (this._audioType === 'native') {
139
- promises.push(NativeAudio.play({
140
- assetId: sound.assetId,
141
- time: (sound.time || 0)
142
- }));
143
- }
144
- // Or HTML 5 audio
145
- else {
146
- const audio = this._htmlAudioCache[assetId] || new Audio(sound.assetPath);
147
- promises.push(audio.play());
148
- }
149
- }
150
- // Vibrate mode: by default make vibration is enable
151
- else if (isNil(sound.vibration) && isNil(opts && opts.vibrate)) {
152
- opts = opts || {};
153
- opts.vibrate = true;
154
- }
155
- // Do vibration (if sound as default vibration, or if user ask for it)
156
- if (toBoolean(opts?.vibrate, !!sound.vibration)) {
157
- promises.push(this.vibrate(opts && opts.vibration || sound.vibration));
158
- }
159
- return (promises.length === 1 ? promises[0] : Promise.all(promises))
160
- .catch(err => {
161
- console.error(`[audio] Error while playing audio sound '${assetId}': ${err && err.message || err}`, err);
162
- });
163
- }
164
- async unload(assetId) {
165
- if (isNil(this._audioType))
166
- await this.ready();
167
- // Remove from map
168
- this._preloadedSounds[assetId] = undefined;
169
- // Native unload
170
- if (this._audioType === 'native') {
171
- try {
172
- await NativeAudio.unload({ assetId });
173
- }
174
- catch (err) {
175
- console.error(`[audio] Unable to unload audio '${assetId}': ${err && err.message || err}`, err);
176
- }
177
- }
178
- // HTML5 audio unload
179
- else {
180
- this._htmlAudioCache[assetId].remove();
181
- this._htmlAudioCache[assetId] = undefined;
182
- }
183
- }
184
- /**
185
- *
186
- * @param duration Duration of the vibration in milliseconds.
187
- */
188
- async vibrate(duration) {
189
- if (!this.started)
190
- await this.ready();
191
- if (Array.isArray(duration)) {
192
- if (this._debug)
193
- console.debug('[audio] Vibrate: ' + JSON.stringify(duration));
194
- for (let i = 0; i < duration.length; i++) {
195
- const time = duration[i];
196
- const silent = i % 2 !== 0;
197
- if (silent) {
198
- if (this._debug)
199
- console.debug('[audio] silent during ' + time);
200
- await sleep(time);
201
- }
202
- else {
203
- if (this._debug)
204
- console.debug('[audio] vibrate during ' + time);
205
- await Promise.all([
206
- Haptics.vibrate({ duration: time }),
207
- sleep(time)
208
- ]);
209
- }
210
- }
211
- }
212
- else {
213
- if (this._debug)
214
- console.debug('[audio] vibrate during ' + duration);
215
- await Haptics.vibrate({ duration });
216
- }
217
- }
218
- async setAudioMode(mode) {
219
- try {
220
- console.info(`[audio] Changing audio mode to {${audioModeToString(mode)}}`);
221
- await this.audioManagement.setAudioMode(mode);
222
- this._audioMode = mode;
223
- }
224
- catch (err) {
225
- console.error(`[audio] Error while changing audio mode to {${audioModeToString(mode)}}: ${err?.message || err}`, err);
226
- // Continue
227
- }
228
- }
229
- /* -- protected methods -- */
230
- async readAudioMode() {
231
- let value = await this.audioManagement.getAudioMode();
232
- value = {
233
- ...DEFAULT_AUDIO_MODE_RETURN,
234
- ...value
235
- };
236
- console.debug(`[audio] Detected audio mode {label: '${value.label}', audioMode: ${value.audioMode}}`);
237
- this._audioMode = value.audioMode;
238
- }
239
- }
240
- AudioProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AudioProvider, deps: [{ token: i1.Platform }, { token: i2.AudioManagement, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
241
- AudioProvider.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AudioProvider, providedIn: 'root' });
242
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AudioProvider, decorators: [{
243
- type: Injectable,
244
- args: [{ providedIn: 'root' }]
245
- }], ctorParameters: function () { return [{ type: i1.Platform }, { type: i2.AudioManagement, decorators: [{
246
- type: Optional
247
- }] }]; } });
248
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaW8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9hdWRpby9hdWRpby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDbkUsT0FBTyxFQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ3JELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDOUQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGlCQUFpQixDQUFDOzs7O0FBYTFDLE1BQU0sYUFBYSxHQUFZO0lBQzdCLEVBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsNEJBQTRCLEVBQUUsU0FBUyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBQztJQUN6RixFQUFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLCtCQUErQixFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUM7SUFDckYsRUFBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSw2QkFBNkIsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFDO0lBQ2xGLEVBQUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxvQ0FBb0MsRUFBRSxTQUFTLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFDO0NBQzVHLENBQUM7QUFFRixNQUFNLHlCQUF5QixHQUFvQztJQUNqRSxTQUFTLEVBQUcsZUFBZSxDQUFDLFNB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ICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UGxhdGZvcm19IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7QXVkaW9NYW5hZ2VtZW50fSBmcm9tICdAaW9uaWMtbmF0aXZlL2F1ZGlvLW1hbmFnZW1lbnQvbmd4JztcbmltcG9ydCB7aXNOaWwsIHNsZWVwLCB0b0Jvb2xlYW59IGZyb20gJy4uL2Z1bmN0aW9ucyc7XG5pbXBvcnQge1N0YXJ0YWJsZVNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2VzL3N0YXJ0YWJsZS1zZXJ2aWNlLmNsYXNzJztcbmltcG9ydCB7SGFwdGljc30gZnJvbSAnQGNhcGFjaXRvci9oYXB0aWNzJztcbmltcG9ydCB7TmF0aXZlQXVkaW99IGZyb20gJ0BjYXBhY2l0b3ItY29tbXVuaXR5L25hdGl2ZS1hdWRpbyc7XG5pbXBvcnQge0NhcGFjaXRvcn0gZnJvbSAnQGNhcGFjaXRvci9jb3JlJztcblxuZXhwb3J0IHR5cGUgQXVkaW9UeXBlID0gJ2h0bWw1JyB8ICduYXRpdmUnO1xuZXhwb3J0IGludGVyZmFjZSBTb3VuZCB7XG4gIGFzc2V0SWQ6IHN0cmluZzsgLy8gdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGZpbGVcbiAgYXNzZXRQYXRoOiBzdHJpbmc7IC8vICByZWxhdGl2ZSBwYXRoIG9mIHRoZSBmaWxlIG9yIGFic29sdXRlIHVybCAoZmlsZTovLylcbiAgdm9sdW1lPzogbnVtYmVyOyAvLyBTb3VuZCB2b2x1bWVcbiAgaXNVcmw/OiBib29sZWFuOyAvLyBwYXNzIHRydWUgaWYgYXNzZXRQYXRoIGlzIGEgYGZpbGU6Ly9gIHVybFxuICB0aW1lPzogbnVtYmVyOyAvLyBzb3VuZCBzZWVrIHRpbWVcbiAgYXVkaW9DaGFubmVsTnVtPzogbnVtYmVyOyAvLyBudW1iZXIgb2YgYXVkaW8gY2hhbm5lbHNcbiAgdmlicmF0aW9uPzogbnVtYmVyfG51bWJlcltdOyAvLyBTaG91bGQgdmlicmF0ZSA/IHNldCBkdXJhdGlvblxufVxuXG5jb25zdCBTWVNURU1fU09VTkRTOiBTb3VuZFtdID0gW1xuICB7YXNzZXRJZDogJ3N0YXJ0dXAnLCBhc3NldFBhdGg6ICdhc3NldHMvYXVkaW8vdW5mYS1waW5nLm1wMycsIHZpYnJhdGlvbjogWzMwMCwgMjUwLCA3NTBdfSxcbiAge2Fzc2V0SWQ6ICdiZWVwLWNvbmZpcm0nLCBhc3NldFBhdGg6ICdhc3NldHMvYXVkaW8vYmVlcC1jb25maXJtLm1wMycsIHZpYnJhdGlvbjogMjUwfSxcbiAge2Fzc2V0SWQ6ICdiZWVwLWVycm9yJywgYXNzZXRQYXRoOiAnYXNzZXRzL2F1ZGlvL2JlZXAtZXJyb3IubXAzJywgdmlicmF0aW9uOiAxMDAwfSxcbiAge2Fzc2V0SWQ6ICdiZWVwLW5vdGlmaWNhdGlvbicsIGFzc2V0UGF0aDogJ2Fzc2V0cy9hdWRpby9iZWVwLW5vdGlmaWNhdGlvbi5tcDMnLCB2aWJyYXRpb246IFs0NTAsIDE1MCwgNDUwXX1cbl07XG5cbmNvbnN0IERFRkFVTFRfQVVESU9fTU9ERV9SRVRVUk46IEF1ZGlvTWFuYWdlbWVudC5BdWRpb01vZGVSZXR1cm4gPSB7XG4gIGF1ZGlvTW9kZTogIEF1ZGlvTWFuYWdlbWVudC5BdWRpb01vZGUuTk9STUFMLFxuICBsYWJlbDogJ05vcm1hbCdcbn07XG5cbmZ1bmN0aW9uIGF1ZGlvTW9kZVRvU3RyaW5nKG1vZGU6IEF1ZGlvTWFuYWdlbWVudC5BdWRpb01vZGUpIHtcbiAgc3dpdGNoIChtb2RlKSB7XG4gICAgY2FzZSBBdWRpb01hbmFnZW1lbnQuQXVkaW9Nb2RlLlNJTEVOVDogcmV0dXJuICdTaWxlbnQnO1xuICAgIGNhc2UgQXVkaW9NYW5hZ2VtZW50LkF1ZGlvTW9kZS5OT1JNQUw6IHJldHVybiAnTm9ybWFsJztcbiAgICBjYXNlIEF1ZGlvTWFuYWdlbWVudC5BdWRpb01vZGUuVklCUkFURTogcmV0dXJuICdWaWJyYXRlJztcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBBdWRpb1Byb3ZpZGVyIGV4dGVuZHMgU3RhcnRhYmxlU2VydmljZTx2b2lkPiB7XG5cblxuICBwcml2YXRlIF9hdWRpb1R5cGU6IEF1ZGlvVHlwZTtcbiAgcHJpdmF0ZSBfYXVkaW9Nb2RlOiBBdWRpb01hbmFnZW1lbnQuQXVkaW9Nb2RlID0gQXVkaW9NYW5hZ2VtZW50LkF1ZGlvTW9kZS5OT1JNQUw7XG4gIHByaXZhdGUgX2Fzc2V0UGF0aFByZWZpeCA9ICcnO1xuXG4gIHByaXZhdGUgX3ByZWxvYWRlZFNvdW5kczoge1tpZDogc3RyaW5nXTogU291bmR9ID0ge307XG4gIHByaXZhdGUgX2h0bWxBdWRpb0NhY2hlOiB7W2lkOiBzdHJpbmddOiBIVE1MQXVkaW9FbGVtZW50fSA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBwbGF0Zm9ybTogUGxhdGZvcm0sXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBhdWRpb01hbmFnZW1lbnQ6IEF1ZGlvTWFuYWdlbWVudFxuICApIHtcbiAgICBzdXBlcihwbGF0Zm9ybSk7XG4gICAgY29uc29sZS5pbmZvKGBbYXVkaW9dIENyZWF0ZSBhdWRpbyBwcm92aWRlcmApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIG5nT25TdGFydCgpOiBQcm9taXNlPHZvaWQ+IHtcblxuICAgIGNvbnN0IGNvcmRvdmEgPSB0aGlzLnBsYXRmb3JtLmlzKCdjb3Jkb3ZhJyk7XG4gICAgdGhpcy5fYXNzZXRQYXRoUHJlZml4ID0gY29yZG92YSA/ICdwdWJsaWMvJyA6ICcnO1xuICAgIHRoaXMuX2F1ZGlvVHlwZSA9IGNvcmRvdmEgJiYgQ2FwYWNpdG9yLmlzUGx1Z2luQXZhaWxhYmxlKCdOYXRpdmVBdWRpbycpID8gJ25hdGl2ZScgOiAnaHRtbDUnO1xuICAgIGNvbnNvbGUuaW5mbyhgW2F1ZGlvXSBTdGFydGluZyBhdWRpbyBwcm92aWRlciB7JHt0aGlzLl9hdWRpb1R5cGV9fS4uLmApO1xuXG4gICAgLy8gTGlzdGVuIGF1ZGlvIG1vZGUgY2hhbmdlZFxuICAgIGlmIChjb3Jkb3ZhICYmIHRoaXMuYXVkaW9NYW5hZ2VtZW50KSB7XG4gICAgICBhd2FpdCB0aGlzLnJlYWRBdWRpb01vZGUoKTtcbiAgICB9XG5cbiAgICAvLyBQcmUtbG9hZGluZyBzeXN0ZW0gc291bmRzXG4gICAgY29uc29sZS5kZWJ1ZygnW2F1ZGlvXSBQcmVsb2FkaW5nIGF1ZGlvIHNvdW5kcy4uLicpO1xuICAgIGxldCBlcnJvckNvdW50ID0gMDtcbiAgICBhd2FpdCBQcm9taXNlLmFsbChTWVNURU1fU09VTkRTLm1hcChzID0+IHtcbiAgICAgIC8vIERpc2FibGUgdmlicmF0aW9uIGluIEhUTUwgNSBtb2RlXG4gICAgICBpZiAodGhpcy5fYXVkaW9UeXBlID09PSAnaHRtbDUnKSBzLnZpYnJhdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybiB0aGlzLnByZWxvYWQocylcbiAgICAgICAgLmNhdGNoKF8gPT4gZXJyb3JDb3VudCsrKTtcbiAgICB9KSk7XG5cbiAgICBpZiAoZXJyb3JDb3VudCA+IDApIHtcbiAgICAgIGNvbnNvbGUud2FybignW2F1ZGlvXSBQcmVsb2FkaW5nIGF1ZGlvIHNvdW5kcyBbT0tdIHdpdGggJHtlcnJvckNvdW50fSBlcnJvcnMgZHVyaW5nIHByZWxvYWQuJyk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgY29uc29sZS5kZWJ1ZygnW2F1ZGlvXSBQcmVsb2FkaW5nIGF1ZGlvIHNvdW5kcyBbT0tdJyk7XG4gICAgfVxuICB9XG5cbiAgcGxheUJlZXBDb25maXJtKCk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMucGxheSgnYmVlcC1jb25maXJtJywge1xuICAgICAgLy8gVmlicmF0ZSBvbmx5IGlmIGluIHZpYnJhdGlvbiBtb2RlXG4gICAgICB2aWJyYXRlOiB0aGlzLl9hdWRpb01vZGUgPT09IEF1ZGlvTWFuYWdlbWVudC5BdWRpb01vZGUuVklCUkFURVxuICAgIH0pO1xuICB9XG5cbiAgcGxheUJlZXBFcnJvcigpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLnBsYXkoJ2JlZXAtZXJyb3InLCB7XG4gICAgICAvLyBBbHdheXMgdmlicmF0ZSAod2lsbCBza2lwIHZpYnJhdGlvbiBpZiBzaWxlbnQgbW9kZSlcbiAgICAgIHZpYnJhdGU6IHRydWVcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHBsYXlCZWVwTm90aWZpY2F0aW9uKCk6IFByb21pc2U8YW55PiB7XG4gICAgYXdhaXQgdGhpcy5wbGF5KCdiZWVwLW5vdGlmaWNhdGlvbicse1xuICAgICAgdmlicmF0ZTogdGhpcy5fYXVkaW9Nb2RlID09PSBBdWRpb01hbmFnZW1lbnQuQXVkaW9Nb2RlLlZJQlJBVEVcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHBsYXlTdGFydHVwU291bmQoKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5wbGF5KCdzdGFydHVwJyk7XG4gIH1cblxuXG4gIGFzeW5jIHByZWxvYWQoc291bmQ6IFNvdW5kKSB7XG4gICAgaWYgKCFzb3VuZD8uYXNzZXRJZCkgcmV0dXJuOyAvLyBTa2lwXG4gICAgaWYgKCEhdGhpcy5fcHJlbG9hZGVkU291bmRzW3NvdW5kLmFzc2V0SWRdKSByZXR1cm47IC8vIEFscmVhZHkgcHJlbG9hZGVkXG4gICAgaWYgKGlzTmlsKHRoaXMuX2F1ZGlvVHlwZSkpIGF3YWl0IHRoaXMucmVhZHkoKTtcblxuICAgIGNvbnN0IGFzc2V0UGF0aCA9ICh0aGlzLl9hc3NldFBhdGhQcmVmaXggfHwgJycpICsgc291bmQuYXNzZXRQYXRoO1xuICAgIGNvbnNvbGUuaW5mbyhgW2F1ZGlvXSBQcmVsb2FkaW5nIHNvdW5kICcke3NvdW5kLmFzc2V0SWR9JywgZnJvbSBmaWxlICcke2Fzc2V0UGF0aH0nLi4uYCk7XG5cbiAgICB0cnkge1xuICAgICAgaWYgKHRoaXMuX2F1ZGlvVHlwZSA9PT0gJ25hdGl2ZScpIHtcbiAgICAgICAgdGhpcy5fcHJlbG9hZGVkU291bmRzW3NvdW5kLmFzc2V0SWRdID0gc291bmQ7XG4gICAgICAgIGF3YWl0IE5hdGl2ZUF1ZGlvLnByZWxvYWQoe1xuICAgICAgICAgIGF1ZGlvQ2hhbm5lbE51bTogMSxcbiAgICAgICAgICBpc1VybDogZmFsc2UsXG4gICAgICAgICAgLi4uc291bmQsXG4gICAgICAgICAgYXNzZXRQYXRoXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIHRoaXMuX2h0bWxBdWRpb0NhY2hlW3NvdW5kLmFzc2V0SWRdID0gIG5ldyBBdWRpbyhhc3NldFBhdGgpO1xuICAgICAgICB0aGlzLl9wcmVsb2FkZWRTb3VuZHNbc291bmQuYXNzZXRJZF0gPSBzb3VuZDtcbiAgICAgIH1cblxuICAgICAgLy8gQWRkIHRvIG1hcFxuICAgICAgY29uc29sZS5pbmZvKGBbYXVkaW9dIFByZWxvYWRpbmcgc291bmQgJyR7c291bmQuYXNzZXRJZH0nIFtPS11gKTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycikge1xuICAgICAgY29uc3QgZXJyb3JNc2cgPSBlcnI/Lm1lc3NhZ2UgfHwgZXJyO1xuICAgICAgaWYgKGVycm9yTXNnID09PSAnQXVkaW8gQXNzZXQgYWxyZWFkeSBleGlzdHMnKSB7XG4gICAgICAgIGNvbnNvbGUuaW5mbyhgW2F1ZGlvXSBQcmVsb2FkaW5nIHNvdW5kICcke3NvdW5kLmFzc2V0SWR9JzogU2tpcHBlZCAoJHtlcnJvck1zZ30pYCk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5fcHJlbG9hZGVkU291bmRzW3NvdW5kLmFzc2V0SWRdID0gbnVsbDtcbiAgICAgICAgY29uc29sZS5lcnJvcihgW2F1ZGlvXSBVbmFibGUgdG8gcHJlbG9hZCBzb3VuZCAnJHtzb3VuZC5hc3NldElkfScsIGZyb20gZmlsZSAnJHthc3NldFBhdGh9JzogJHtlcnJvck1zZ31cXG4ke2Vycj8ub3JpZ2luYWxTdGFja3x8Jyd9YCk7XG4gICAgICAgIHRocm93IGVycjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhc3luYyBwbGF5KGFzc2V0SWQ6IHN0cmluZywgb3B0cz86IHt2aWJyYXRlPzogYm9vbGVhbjsgdmlicmF0aW9uPzogbnVtYmVyfG51bWJlcltdfSkge1xuXG4gICAgLy8gTWFrZSBzdXJlIHByb3ZpZGVyIGlzIHJlYWR5XG4gICAgaWYgKCF0aGlzLnN0YXJ0ZWQpIGF3YWl0IHRoaXMucmVhZHkoKTtcblxuICAgIGNvbnN0IHNvdW5kID0gdGhpcy5fcHJlbG9hZGVkU291bmRzW2Fzc2V0SWRdO1xuICAgIGlmICghc291bmQpIHtcbiAgICAgIHRocm93IEVycm9yKGBVbmFibGUgdG8gZmluZCBzb3VuZCAnJHthc3NldElkfScuIFBsZWFzZSBjYWxsIHByZWxvYWQoKSBiZWZvcmUgcGxheWluZyBhIHNvdW5kLmApO1xuICAgIH1cblxuICAgIC8vIElmIHNpbGVudDogc2tpcFxuICAgIGlmICh0aGlzLl9hdWRpb01vZGUgPT09IEF1ZGlvTWFuYWdlbWVudC5BdWRpb01vZGUuU0lMRU5UKSByZXR1cm47XG5cbiAgICBjb25zdCBwcm9taXNlczogUHJvbWlzZTxhbnk+W10gPSBbXTtcblxuICAgIC8vIE5vcm1hbCBtb2RlID0gY2FuIHBsYXkgdGhlIHNvdW5kXG4gICAgaWYgKHRoaXMuX2F1ZGlvTW9kZSA9PT0gQXVkaW9NYW5hZ2VtZW50LkF1ZGlvTW9kZS5OT1JNQUwpIHtcbiAgICAgIC8vIFVzZSBuYXRpdmUgYXVkaW9cbiAgICAgIGlmICh0aGlzLl9hdWRpb1R5cGUgPT09ICduYXRpdmUnKSB7XG4gICAgICAgIHByb21pc2VzLnB1c2goTmF0aXZlQXVkaW8ucGxheSh7XG4gICAgICAgICAgYXNzZXRJZDogc291bmQuYXNzZXRJZCxcbiAgICAgICAgICB0aW1lOiAoc291bmQudGltZSB8fCAwKVxuICAgICAgICB9KSk7XG4gICAgICB9XG4gICAgICAvLyBPciBIVE1MIDUgYXVkaW9cbiAgICAgIGVsc2Uge1xuICAgICAgICBjb25zdCBhdWRpbyA9IHRoaXMuX2h0bWxBdWRpb0NhY2hlW2Fzc2V0SWRdIHx8IG5ldyBBdWRpbyhzb3VuZC5hc3NldFBhdGgpO1xuICAgICAgICBwcm9taXNlcy5wdXNoKGF1ZGlvLnBsYXkoKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVmlicmF0ZSBtb2RlOiBieSBkZWZhdWx0IG1ha2UgdmlicmF0aW9uIGlzIGVuYWJsZVxuICAgIGVsc2UgaWYgKGlzTmlsKHNvdW5kLnZpYnJhdGlvbikgJiYgaXNOaWwob3B0cyAmJiBvcHRzLnZpYnJhdGUpKSB7XG4gICAgICBvcHRzID0gb3B0cyB8fCB7fTtcbiAgICAgIG9wdHMudmlicmF0ZSA9IHRydWU7XG4gICAgfVxuXG4gICAgLy8gRG8gdmlicmF0aW9uIChpZiBzb3VuZCBhcyBkZWZhdWx0IHZpYnJhdGlvbiwgb3IgaWYgdXNlciBhc2sgZm9yIGl0KVxuICAgIGlmICh0b0Jvb2xlYW4ob3B0cz8udmlicmF0ZSwgISFzb3VuZC52aWJyYXRpb24pKSB7XG4gICAgICBwcm9taXNlcy5wdXNoKHRoaXMudmlicmF0ZShvcHRzICYmIG9wdHMudmlicmF0aW9uIHx8IHNvdW5kLnZpYnJhdGlvbikpO1xuICAgIH1cblxuICAgIHJldHVybiAocHJvbWlzZXMubGVuZ3RoID09PSAxID8gcHJvbWlzZXNbMF0gOiBQcm9taXNlLmFsbChwcm9taXNlcykpXG4gICAgICAuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgW2F1ZGlvXSBFcnJvciB3aGlsZSBwbGF5aW5nIGF1ZGlvIHNvdW5kICcke2Fzc2V0SWR9JzogJHtlcnIgJiYgZXJyLm1lc3NhZ2UgfHwgZXJyfWAsIGVycik7XG4gICAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHVubG9hZChhc3NldElkOiBzdHJpbmcpIHtcbiAgICBpZiAoaXNOaWwodGhpcy5fYXVkaW9UeXBlKSkgYXdhaXQgdGhpcy5yZWFkeSgpO1xuXG4gICAgLy8gUmVtb3ZlIGZyb20gbWFwXG4gICAgdGhpcy5fcHJlbG9hZGVkU291bmRzW2Fzc2V0SWRdID0gdW5kZWZpbmVkO1xuXG4gICAgLy8gTmF0aXZlIHVubG9hZFxuICAgIGlmICh0aGlzLl9hdWRpb1R5cGUgPT09ICduYXRpdmUnKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBOYXRpdmVBdWRpby51bmxvYWQoe2Fzc2V0SWR9KTtcbiAgICAgIH1cbiAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgW2F1ZGlvXSBVbmFibGUgdG8gdW5sb2FkIGF1ZGlvICcke2Fzc2V0SWR9JzogJHtlcnIgJiYgZXJyLm1lc3NhZ2UgfHwgZXJyfWAsIGVycik7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIEhUTUw1IGF1ZGlvIHVubG9hZFxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5faHRtbEF1ZGlvQ2FjaGVbYXNzZXRJZF0ucmVtb3ZlKCk7XG4gICAgICB0aGlzLl9odG1sQXVkaW9DYWNoZVthc3NldElkXSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIGR1cmF0aW9uIER1cmF0aW9uIG9mIHRoZSB2aWJyYXRpb24gaW4gbWlsbGlzZWNvbmRzLlxuICAgKi9cbiAgYXN5bmMgdmlicmF0ZShkdXJhdGlvbj86IG51bWJlcnxudW1iZXJbXSkge1xuICAgIGlmICghdGhpcy5zdGFydGVkKSBhd2FpdCB0aGlzLnJlYWR5KCk7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZHVyYXRpb24pKSB7XG4gICAgICBpZiAodGhpcy5fZGVidWcpIGNvbnNvbGUuZGVidWcoJ1thdWRpb10gVmlicmF0ZTogJyArIEpTT04uc3RyaW5naWZ5KGR1cmF0aW9uKSk7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGR1cmF0aW9uLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IHRpbWUgPSBkdXJhdGlvbltpXTtcbiAgICAgICAgY29uc3Qgc2lsZW50ID0gaSAlIDIgIT09IDA7XG4gICAgICAgIGlmIChzaWxlbnQpIHtcbiAgICAgICAgICBpZiAodGhpcy5fZGVidWcpIGNvbnNvbGUuZGVidWcoJ1thdWRpb10gc2lsZW50IGR1cmluZyAnICsgdGltZSk7XG4gICAgICAgICAgYXdhaXQgc2xlZXAodGltZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgaWYgKHRoaXMuX2RlYnVnKSBjb25zb2xlLmRlYnVnKCdbYXVkaW9dIHZpYnJhdGUgZHVyaW5nICcgKyB0aW1lKTtcbiAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAgICAgICBIYXB0aWNzLnZpYnJhdGUoe2R1cmF0aW9uOiB0aW1lfSksXG4gICAgICAgICAgICBzbGVlcCh0aW1lKVxuICAgICAgICAgIF0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgaWYgKHRoaXMuX2RlYnVnKSBjb25zb2xlLmRlYnVnKCdbYXVkaW9dIHZpYnJhdGUgZHVyaW5nICcgKyBkdXJhdGlvbik7XG4gICAgICBhd2FpdCBIYXB0aWNzLnZpYnJhdGUoe2R1cmF0aW9ufSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgc2V0QXVkaW9Nb2RlKG1vZGU6IEF1ZGlvTWFuYWdlbWVudC5BdWRpb01vZGUpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc29sZS5pbmZvKGBbYXVkaW9dIENoYW5naW5nIGF1ZGlvIG1vZGUgdG8geyR7YXVkaW9Nb2RlVG9TdHJpbmcobW9kZSl9fWApO1xuICAgICAgYXdhaXQgdGhpcy5hdWRpb01hbmFnZW1lbnQuc2V0QXVkaW9Nb2RlKG1vZGUpO1xuICAgICAgdGhpcy5fYXVkaW9Nb2RlID0gbW9kZTtcbiAgICB9XG4gICAgY2F0Y2goZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBbYXVkaW9dIEVycm9yIHdoaWxlIGNoYW5naW5nIGF1ZGlvIG1vZGUgdG8geyR7YXVkaW9Nb2RlVG9TdHJpbmcobW9kZSl9fTogJHtlcnI/Lm1lc3NhZ2UgfHwgZXJyfWAsIGVycik7XG4gICAgICAvLyBDb250aW51ZVxuICAgIH1cbiAgfVxuXG4gIC8qIC0tIHByb3RlY3RlZCBtZXRob2RzICAtLSAqL1xuXG4gIHByb3RlY3RlZCBhc3luYyByZWFkQXVkaW9Nb2RlKCkge1xuICAgIGxldCB2YWx1ZSA9IGF3YWl0IHRoaXMuYXVkaW9NYW5hZ2VtZW50LmdldEF1ZGlvTW9kZSgpO1xuICAgIHZhbHVlID0ge1xuICAgICAgLi4uREVGQVVMVF9BVURJT19NT0RFX1JFVFVSTixcbiAgICAgIC4uLnZhbHVlXG4gICAgfTtcbiAgICBjb25zb2xlLmRlYnVnKGBbYXVkaW9dIERldGVjdGVkIGF1ZGlvIG1vZGUge2xhYmVsOiAnJHt2YWx1ZS5sYWJlbH0nLCBhdWRpb01vZGU6ICR7dmFsdWUuYXVkaW9Nb2RlfX1gKTtcbiAgICB0aGlzLl9hdWRpb01vZGUgPSB2YWx1ZS5hdWRpb01vZGU7XG4gIH1cblxufVxuIl19
@@ -1,31 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "./audio";
4
- import * as i2 from "@ionic/angular";
5
- export class AudioTestingPage {
6
- constructor(audio) {
7
- this.audio = audio;
8
- }
9
- playBeepConfirm() {
10
- return this.audio.playBeepConfirm();
11
- }
12
- playBeepError() {
13
- return this.audio.playBeepError();
14
- }
15
- playStartupSound() {
16
- return this.audio.playStartupSound();
17
- }
18
- playBeepNotification() {
19
- return this.audio.playBeepNotification();
20
- }
21
- vibrate(duration) {
22
- return this.audio.vibrate(duration || [1000, 500, 1000, 500, 1000]);
23
- }
24
- }
25
- AudioTestingPage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AudioTestingPage, deps: [{ token: i1.AudioProvider }], target: i0.ɵɵFactoryTarget.Component });
26
- AudioTestingPage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: AudioTestingPage, selector: "audio-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)=\"playStartupSound()\" color=\"dark\">\n <ion-icon name=\"play\" slot=\"start\"></ion-icon>\n Startup\n </ion-button>\n\n <ion-button (click)=\"playBeepConfirm()\" color=\"success\">\n <ion-icon name=\"play\" slot=\"start\"></ion-icon>\n Confirmation\n </ion-button>\n\n <ion-button (click)=\"playBeepNotification()\" color=\"tertiary\">\n <ion-icon name=\"play\" slot=\"start\"></ion-icon>\n Notification\n </ion-button>\n\n <ion-button (click)=\"playBeepError()\" color=\"accent\">\n <ion-icon name=\"play\" slot=\"start\"></ion-icon>\n Error\n </ion-button>\n\n <ion-button (click)=\"vibrate()\" color=\"accent\">\n Vibrate (many time)\n </ion-button>\n\n</ion-content>\n", dependencies: [{ kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i2.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }] });
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AudioTestingPage, decorators: [{
28
- type: Component,
29
- args: [{ selector: 'audio-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)=\"playStartupSound()\" color=\"dark\">\n <ion-icon name=\"play\" slot=\"start\"></ion-icon>\n Startup\n </ion-button>\n\n <ion-button (click)=\"playBeepConfirm()\" color=\"success\">\n <ion-icon name=\"play\" slot=\"start\"></ion-icon>\n Confirmation\n </ion-button>\n\n <ion-button (click)=\"playBeepNotification()\" color=\"tertiary\">\n <ion-icon name=\"play\" slot=\"start\"></ion-icon>\n Notification\n </ion-button>\n\n <ion-button (click)=\"playBeepError()\" color=\"accent\">\n <ion-icon name=\"play\" slot=\"start\"></ion-icon>\n Error\n </ion-button>\n\n <ion-button (click)=\"vibrate()\" color=\"accent\">\n Vibrate (many time)\n </ion-button>\n\n</ion-content>\n" }]
30
- }], ctorParameters: function () { return [{ type: i1.AudioProvider }]; } });
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaW8udGVzdGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL2F1ZGlvL2F1ZGlvLnRlc3RpbmcudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9hdWRpby9hdWRpby50ZXN0aW5nLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7OztBQU94QyxNQUFNLE9BQU8sZ0JBQWdCO0lBRTNCLFlBQ1UsS0FBb0I7UUFBcEIsVUFBSyxHQUFMLEtBQUssQ0FBZTtJQUU5QixDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBQ0QsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUNELG9CQUFvQjtRQUNsQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQsT0FBTyxDQUFDLFFBQTBCO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQzs7OEdBdEJVLGdCQUFnQjtrR0FBaEIsZ0JBQWdCLHFEQ1A3QixxM0JBaUNBOzRGRDFCYSxnQkFBZ0I7a0JBSjVCLFNBQVM7K0JBQ0UsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QXVkaW9Qcm92aWRlcn0gZnJvbSAnLi9hdWRpbyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1ZGlvLXRlc3RpbmcnLFxuICB0ZW1wbGF0ZVVybDogJ2F1ZGlvLnRlc3RpbmcuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQXVkaW9UZXN0aW5nUGFnZSAge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYXVkaW86IEF1ZGlvUHJvdmlkZXJcbiAgKSB7XG4gIH1cblxuICBwbGF5QmVlcENvbmZpcm0oKSB7XG4gICAgcmV0dXJuIHRoaXMuYXVkaW8ucGxheUJlZXBDb25maXJtKCk7XG4gIH1cbiAgcGxheUJlZXBFcnJvcigpIHtcbiAgICByZXR1cm4gdGhpcy5hdWRpby5wbGF5QmVlcEVycm9yKCk7XG4gIH1cbiAgcGxheVN0YXJ0dXBTb3VuZCgpIHtcbiAgICByZXR1cm4gdGhpcy5hdWRpby5wbGF5U3RhcnR1cFNvdW5kKCk7XG4gIH1cbiAgcGxheUJlZXBOb3RpZmljYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuYXVkaW8ucGxheUJlZXBOb3RpZmljYXRpb24oKTtcbiAgfVxuXG4gIHZpYnJhdGUoZHVyYXRpb24/OiBudW1iZXJ8bnVtYmVyW10pIHtcbiAgICByZXR1cm4gdGhpcy5hdWRpby52aWJyYXRlKGR1cmF0aW9uIHx8IFsxMDAwLCA1MDAsIDEwMDAsIDUwMCwgMTAwMF0pO1xuICB9XG59XG4iLCI8aW9uLXRvb2xiYXIgY29sb3I9XCJwcmltYXJ5XCI+XG4gIDxpb24tdGl0bGU+VG9hc3RzPC9pb24tdGl0bGU+XG48L2lvbi10b29sYmFyPlxuXG48aW9uLWNvbnRlbnQgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuXG4gIDxwPlRvYXN0IGV4YW1wbGVzOjwvcD5cblxuICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwicGxheVN0YXJ0dXBTb3VuZCgpXCIgY29sb3I9XCJkYXJrXCI+XG4gICAgPGlvbi1pY29uIG5hbWU9XCJwbGF5XCIgc2xvdD1cInN0YXJ0XCI+PC9pb24taWNvbj5cbiAgICBTdGFydHVwXG4gIDwvaW9uLWJ1dHRvbj5cblxuICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwicGxheUJlZXBDb25maXJtKClcIiBjb2xvcj1cInN1Y2Nlc3NcIj5cbiAgICA8aW9uLWljb24gbmFtZT1cInBsYXlcIiBzbG90PVwic3RhcnRcIj48L2lvbi1pY29uPlxuICAgIENvbmZpcm1hdGlvblxuICA8L2lvbi1idXR0b24+XG5cbiAgPGlvbi1idXR0b24gKGNsaWNrKT1cInBsYXlCZWVwTm90aWZpY2F0aW9uKClcIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAgPGlvbi1pY29uIG5hbWU9XCJwbGF5XCIgc2xvdD1cInN0YXJ0XCI+PC9pb24taWNvbj5cbiAgICBOb3RpZmljYXRpb25cbiAgPC9pb24tYnV0dG9uPlxuXG4gIDxpb24tYnV0dG9uIChjbGljayk9XCJwbGF5QmVlcEVycm9yKClcIiBjb2xvcj1cImFjY2VudFwiPlxuICAgIDxpb24taWNvbiBuYW1lPVwicGxheVwiIHNsb3Q9XCJzdGFydFwiPjwvaW9uLWljb24+XG4gICAgRXJyb3JcbiAgPC9pb24tYnV0dG9uPlxuXG4gIDxpb24tYnV0dG9uIChjbGljayk9XCJ2aWJyYXRlKClcIiBjb2xvcj1cImFjY2VudFwiPlxuICAgIFZpYnJhdGUgKG1hbnkgdGltZSlcbiAgPC9pb24tYnV0dG9uPlxuXG48L2lvbi1jb250ZW50PlxuIl19
@@ -1,40 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { Capacitor } from '@capacitor/core';
3
- import { CapacitorPlugins } from './plugins';
4
- import { Keyboard } from '@capacitor/keyboard';
5
- import { BehaviorSubject } from 'rxjs';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@ionic/angular";
8
- export class KeyboardService {
9
- constructor(platform) {
10
- this.platform = platform;
11
- this._enable = false;
12
- this._visibleSubject = new BehaviorSubject(false);
13
- platform.ready().then(() => this.init());
14
- }
15
- get visibleSubject() {
16
- return this._visibleSubject.asObservable();
17
- }
18
- get visible() {
19
- return this._visibleSubject.value;
20
- }
21
- get enable() {
22
- return this._enable;
23
- }
24
- async init() {
25
- this._enable = this.platform.is('capacitor') && Capacitor.isPluginAvailable(CapacitorPlugins.Keyboard);
26
- if (this._enable) {
27
- this._handlers = await Promise.all([
28
- Keyboard.addListener('keyboardWillShow', () => this._visibleSubject.next(true)),
29
- Keyboard.addListener('keyboardDidHide', () => this._visibleSubject.next(false))
30
- ]);
31
- }
32
- }
33
- }
34
- KeyboardService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: KeyboardService, deps: [{ token: i1.Platform }], target: i0.ɵɵFactoryTarget.Injectable });
35
- KeyboardService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: KeyboardService, providedIn: 'root' });
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: KeyboardService, decorators: [{
37
- type: Injectable,
38
- args: [{ providedIn: 'root' }]
39
- }], ctorParameters: function () { return [{ type: i1.Platform }]; } });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Ym9hcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9jYXBhY2l0b3Iva2V5Ym9hcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsU0FBUyxFQUF1QixNQUFNLGlCQUFpQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUMzQyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGVBQWUsRUFBYSxNQUFNLE1BQU0sQ0FBQzs7O0FBSWpELE1BQU0sT0FBTyxlQUFlO0lBaUIxQixZQUFvQixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBZjlCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsb0JBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQWU1RCxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFiRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDO0lBQ3BDLENBQUM7SUFDRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQU1PLEtBQUssQ0FBQyxJQUFJO1FBQ2hCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksU0FBUyxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZHLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQztnQkFDakMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDL0UsUUFBUSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNoRixDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7OzZHQTdCVSxlQUFlO2lIQUFmLGVBQWUsY0FESCxNQUFNOzRGQUNsQixlQUFlO2tCQUQzQixVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NhcGFjaXRvciwgUGx1Z2luTGlzdGVuZXJIYW5kbGV9IGZyb20gJ0BjYXBhY2l0b3IvY29yZSc7XG5pbXBvcnQge0NhcGFjaXRvclBsdWdpbnN9IGZyb20gJy4vcGx1Z2lucyc7XG5pbXBvcnQge0tleWJvYXJkfSBmcm9tICdAY2FwYWNpdG9yL2tleWJvYXJkJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7UGxhdGZvcm19IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgS2V5Ym9hcmRTZXJ2aWNlIHtcblxuICBwcml2YXRlIF9lbmFibGUgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfdmlzaWJsZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJpdmF0ZSBfaGFuZGxlcnM6IFBsdWdpbkxpc3RlbmVySGFuZGxlW107XG5cbiAgZ2V0IHZpc2libGVTdWJqZWN0KCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl92aXNpYmxlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCB2aXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl92aXNpYmxlU3ViamVjdC52YWx1ZTtcbiAgfVxuICBnZXQgZW5hYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9lbmFibGU7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBsYXRmb3JtOiBQbGF0Zm9ybSkge1xuICAgIHBsYXRmb3JtLnJlYWR5KCkudGhlbigoKSA9PiB0aGlzLmluaXQoKSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGluaXQoKSB7XG4gICAgdGhpcy5fZW5hYmxlID0gdGhpcy5wbGF0Zm9ybS5pcygnY2FwYWNpdG9yJykgJiYgQ2FwYWNpdG9yLmlzUGx1Z2luQXZhaWxhYmxlKENhcGFjaXRvclBsdWdpbnMuS2V5Ym9hcmQpO1xuICAgIGlmICh0aGlzLl9lbmFibGUpIHtcbiAgICAgIHRoaXMuX2hhbmRsZXJzID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgICBLZXlib2FyZC5hZGRMaXN0ZW5lcigna2V5Ym9hcmRXaWxsU2hvdycsICgpID0+IHRoaXMuX3Zpc2libGVTdWJqZWN0Lm5leHQodHJ1ZSkpLFxuICAgICAgICBLZXlib2FyZC5hZGRMaXN0ZW5lcigna2V5Ym9hcmREaWRIaWRlJywgKCkgPT4gdGhpcy5fdmlzaWJsZVN1YmplY3QubmV4dChmYWxzZSkpXG4gICAgICBdKTtcbiAgICB9XG4gIH1cblxufVxuIl19
@@ -1,9 +0,0 @@
1
- import { Capacitor } from '@capacitor/core';
2
- export class CapacitorPlugins {
3
- }
4
- CapacitorPlugins.Camera = 'Camera';
5
- CapacitorPlugins.StatusBar = 'StatusBar';
6
- CapacitorPlugins.Keyboard = 'Keyboard';
7
- //static readonly BarcodeScanner = 'BarcodeScanner';
8
- CapacitorPlugins.isAvailable = Capacitor.isPluginAvailable;
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL2NhcGFjaXRvci9wbHVnaW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUkxQyxNQUFNLE9BQU8sZ0JBQWdCOztBQUNYLHVCQUFNLEdBQUcsUUFBUSxDQUFDO0FBQ2xCLDBCQUFTLEdBQUcsV0FBVyxDQUFDO0FBQ3hCLHlCQUFRLEdBQUcsVUFBVSxDQUFDO0FBQ3RDLG9EQUFvRDtBQUU3Qyw0QkFBVyxHQUFHLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2FwYWNpdG9yfSBmcm9tICdAY2FwYWNpdG9yL2NvcmUnO1xuXG5leHBvcnQgZGVjbGFyZSB0eXBlIENhcGFjaXRvclBsdWdpblR5cGUgPSAnQ2FtZXJhJ3wnU3RhdHVzQmFyJ3wnS2V5Ym9hcmQnfCdCYXJjb2RlU2Nhbm5lcic7XG5cbmV4cG9ydCBjbGFzcyBDYXBhY2l0b3JQbHVnaW5zIHtcbiAgc3RhdGljIHJlYWRvbmx5IENhbWVyYSA9ICdDYW1lcmEnO1xuICBzdGF0aWMgcmVhZG9ubHkgU3RhdHVzQmFyID0gJ1N0YXR1c0Jhcic7XG4gIHN0YXRpYyByZWFkb25seSBLZXlib2FyZCA9ICdLZXlib2FyZCc7XG4gIC8vc3RhdGljIHJlYWRvbmx5IEJhcmNvZGVTY2FubmVyID0gJ0JhcmNvZGVTY2FubmVyJztcblxuICBzdGF0aWMgaXNBdmFpbGFibGUgPSBDYXBhY2l0b3IuaXNQbHVnaW5BdmFpbGFibGU7XG59XG4iXX0=
@@ -1,149 +0,0 @@
1
- import { isMoment } from 'moment';
2
- import { DATE_ISO_PATTERN, DATE_MATCH_REGEXP, DATE_PATTERN } from './constants';
3
- import * as momentImported from 'moment';
4
- import * as momentTZImported from 'moment-timezone';
5
- import { unwrapESModule } from './modules';
6
- // // Workaround for issue https://github.com/ng-packagr/ng-packagr/issues/2215
7
- const moment = unwrapESModule(momentImported);
8
- const momentTZ = unwrapESModule(momentTZImported);
9
- export const DATE_UNIX_TIMESTAMP = 'X';
10
- export const DATE_UNIX_MS_TIMESTAMP = 'x';
11
- export const MOMENT_NO_TIME_PROPERTY = '_hasNoTime';
12
- export class DateUtils {
13
- static min(date1, date2) {
14
- return date1 && (!date2 || date1.isSameOrBefore(date2)) ? date1 : date2;
15
- }
16
- static max(date1, date2) {
17
- const d1 = fromDateISOString(date1);
18
- const d2 = fromDateISOString(date2);
19
- return d1 && (!d2 || d1.isSameOrAfter(d2)) ? d1 : d2;
20
- }
21
- static equals(date1, date2) {
22
- return DateUtils.isSame(date1, date2);
23
- }
24
- static isSame(date1, date2, granularity) {
25
- const d1 = fromDateISOString(date1);
26
- const d2 = fromDateISOString(date2);
27
- return (!d1 && !d2) || (d1 && d1.isSame(d2, granularity));
28
- }
29
- /**
30
- * Create a copy of a date, without time fields (always return a new Moment object, or undefined).
31
- * Same implementation as the Java class Dates.resetTime() (see any SUMARiS like Pod)
32
- *
33
- * @param value
34
- * @param timezone a timezone (see https://momentjs.com/timezone/)
35
- * @param keepLocalTime if true, only the timezone (and offset) is updated, keeping the local time same. Consequently, it will now point to a different point in time if the offset has changed.
36
- */
37
- static resetTime(value, timezone, keepLocalTime) {
38
- if (!value)
39
- return undefined;
40
- const date = fromDateISOString(value);
41
- // No timezone
42
- if (!timezone) {
43
- return date.clone().startOf('day');
44
- }
45
- // Use timezone
46
- return date.clone() // clone the original date
47
- .tz(timezone, keepLocalTime)
48
- .startOf('day');
49
- }
50
- static markNoTime(value) {
51
- if (!value)
52
- return undefined;
53
- value[MOMENT_NO_TIME_PROPERTY] = true;
54
- return value;
55
- }
56
- static markTime(value) {
57
- if (!value)
58
- return undefined;
59
- delete value[MOMENT_NO_TIME_PROPERTY];
60
- return value;
61
- }
62
- static isNoTime(value) {
63
- return value?.[MOMENT_NO_TIME_PROPERTY] === true;
64
- }
65
- /**
66
- * Test if a date is on the given day of week
67
- *
68
- * @param date
69
- * @param weekday
70
- * @param timezone
71
- */
72
- static isAtDay(date, weekday, timezone) {
73
- let momentDate = date && fromDateISOString(date);
74
- if (!momentDate)
75
- return null;
76
- if (timezone)
77
- momentDate = momentDate.clone().tz(timezone).startOf('day');
78
- return momentDate.day() === weekday;
79
- }
80
- }
81
- DateUtils.moment = moment;
82
- DateUtils.momentTZ = momentTZ;
83
- DateUtils.toDateISOString = toDateISOString;
84
- DateUtils.fromDateISOString = fromDateISOString;
85
- DateUtils.toDuration = toDuration;
86
- export function toDateISOString(value) {
87
- if (!value)
88
- return undefined;
89
- // Already a valid ISO date time string (without timezone): use it
90
- if (typeof value === 'string'
91
- && value.indexOf('+') === -1
92
- && value.lastIndexOf('Z') === value.length - 1) {
93
- return value;
94
- }
95
- // Make sure to have a Moment object
96
- const date = fromDateISOString(value);
97
- if (!date)
98
- return undefined;
99
- return DateUtils.isNoTime(date)
100
- ? date.toISOString(true /* important ! */).substring(0, 10)
101
- : date.toISOString();
102
- }
103
- export function fromDateISOString(value) {
104
- // Already a moment object: use it
105
- if (!value || isMoment(value))
106
- return value;
107
- if (typeof value === 'string' && !!value.match(DATE_MATCH_REGEXP)) {
108
- // Parse the input value, as a date only
109
- const dateOnly = DateUtils.moment(value, DATE_PATTERN, true);
110
- return DateUtils.markNoTime(dateOnly);
111
- }
112
- // Parse the input value, as a ISO date time
113
- const date = DateUtils.moment(value, DATE_ISO_PATTERN);
114
- if (date.isValid())
115
- return date;
116
- // Not valid: trying to convert from unix timestamp
117
- if (typeof value === 'string') {
118
- console.warn('Wrong date format - Trying to convert from local time: ' + value);
119
- if (value.length === 10) {
120
- return DateUtils.moment(value, DATE_UNIX_TIMESTAMP);
121
- }
122
- else if (value.length === 13) {
123
- return DateUtils.moment(value, DATE_UNIX_MS_TIMESTAMP);
124
- }
125
- }
126
- console.warn('Unable to parse date: ' + value);
127
- return undefined;
128
- }
129
- export function fromUnixTimestamp(timeInSec) {
130
- return DateUtils.moment(timeInSec, DATE_UNIX_TIMESTAMP);
131
- }
132
- export function fromUnixMsTimestamp(timeInMs) {
133
- return DateUtils.moment(timeInMs, DATE_UNIX_MS_TIMESTAMP);
134
- }
135
- export function toDuration(value, unit) {
136
- if (!value)
137
- return undefined;
138
- const duration = DateUtils.moment.duration(value, unit);
139
- // fix 990+ ms
140
- if (duration.milliseconds() >= 990) {
141
- duration.add(1000 - duration.milliseconds(), 'ms');
142
- }
143
- // fix 59 s
144
- if (duration.seconds() >= 59) {
145
- duration.add(60 - duration.seconds(), 's');
146
- }
147
- return duration;
148
- }
149
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9kYXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVksUUFBUSxFQUFzQixNQUFNLFFBQVEsQ0FBQztBQUNoRSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQzlFLE9BQU8sS0FBSyxjQUFjLE1BQU0sUUFBUSxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxnQkFBZ0IsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBRXpDLCtFQUErRTtBQUMvRSxNQUFNLE1BQU0sR0FBRyxjQUFjLENBQXdCLGNBQWMsQ0FBQyxDQUFDO0FBQ3JFLE1BQU0sUUFBUSxHQUFHLGNBQWMsQ0FBMEIsZ0JBQWdCLENBQUMsQ0FBQztBQUUzRSxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxHQUFHLENBQUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsR0FBRyxDQUFDO0FBQzFDLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLFlBQVksQ0FBQztBQUVwRCxNQUFNLE9BQU8sU0FBUztJQVNwQixNQUFNLENBQUMsR0FBRyxDQUFDLEtBQWEsRUFBRSxLQUFhO1FBQ3JDLE9BQU8sS0FBSyxJQUFJLENBQUMsQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUMxRSxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFxQixFQUFFLEtBQXFCO1FBQ3JELE1BQU0sRUFBRSxHQUFHLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sRUFBRSxHQUFHLGlCQUFpQixDQUFD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LEVBQUU7UUFDbEMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLFlBQVksRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQ3BEO0lBQ0QsV0FBVztJQUNYLElBQUksUUFBUSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRTtRQUM1QixRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxRQUFRLENBQUMsT0FBTyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7S0FDNUM7SUFFRCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHVyYXRpb24sIGlzTW9tZW50LCBNb21lbnQsIHVuaXRPZlRpbWUgfSBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHtEQVRFX0lTT19QQVRURVJOLCBEQVRFX01BVENIX1JFR0VYUCwgREFURV9QQVRURVJOfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgKiBhcyBtb21lbnRJbXBvcnRlZCBmcm9tICdtb21lbnQnO1xuaW1wb3J0ICogYXMgbW9tZW50VFpJbXBvcnRlZCBmcm9tICdtb21lbnQtdGltZXpvbmUnO1xuaW1wb3J0IHt1bndyYXBFU01vZHVsZX0gZnJvbSAnLi9tb2R1bGVzJztcblxuLy8gLy8gV29ya2Fyb3VuZCBmb3IgaXNzdWUgaHR0cHM6Ly9naXRodWIuY29tL25nLXBhY2thZ3IvbmctcGFja2Fnci9pc3N1ZXMvMjIxNVxuY29uc3QgbW9tZW50ID0gdW53cmFwRVNNb2R1bGU8dHlwZW9mIG1vbWVudEltcG9ydGVkPihtb21lbnRJbXBvcnRlZCk7XG5jb25zdCBtb21lbnRUWiA9IHVud3JhcEVTTW9kdWxlPHR5cGVvZiBtb21lbnRUWkltcG9ydGVkPihtb21lbnRUWkltcG9ydGVkKTtcblxuZXhwb3J0IGNvbnN0IERBVEVfVU5JWF9USU1FU1RBTVAgPSAnWCc7XG5leHBvcnQgY29uc3QgREFURV9VTklYX01TX1RJTUVTVEFNUCA9ICd4JztcbmV4cG9ydCBjb25zdCBNT01FTlRfTk9fVElNRV9QUk9QRVJUWSA9ICdfaGFzTm9UaW1lJztcblxuZXhwb3J0IGNsYXNzIERhdGVVdGlscyB7XG5cbiAgc3RhdGljIG1vbWVudCA9IG1vbWVudDtcbiAgc3RhdGljIG1vbWVudFRaID0gbW9tZW50VFo7XG5cbiAgc3RhdGljIHRvRGF0ZUlTT1N0cmluZyA9IHRvRGF0ZUlTT1N0cmluZztcbiAgc3RhdGljIGZyb21EYXRlSVNPU3RyaW5nID0gZnJvbURhdGVJU09TdHJpbmc7XG4gIHN0YXRpYyB0b0R1cmF0aW9uID0gdG9EdXJhdGlvbjtcblxuICBzdGF0aWMgbWluKGRhdGUxOiBNb21lbnQsIGRhdGUyOiBNb21lbnQpOiBNb21lbnQge1xuICAgIHJldHVybiBkYXRlMSAmJiAoIWRhdGUyIHx8IGRhdGUxLmlzU2FtZU9yQmVmb3JlKGRhdGUyKSkgPyBkYXRlMSA6IGRhdGUyO1xuICB9XG5cbiAgc3RhdGljIG1heChkYXRlMTogTW9tZW50fCBzdHJpbmcsIGRhdGUyOiBNb21lbnR8IHN0cmluZyk6IE1vbWVudCB7XG4gICAgY29uc3QgZDEgPSBmcm9tRGF0ZUlTT1N0cmluZyhkYXRlMSk7XG4gICAgY29uc3QgZDIgPSBmcm9tRGF0ZUlTT1N0cmluZyhkYXRlMik7XG4gICAgcmV0dXJuIGQxICYmICghZDIgfHwgZDEuaXNTYW1lT3JBZnRlcihkMikpID8gZDEgOiBkMjtcbiAgfVxuXG4gIHN0YXRpYyBlcXVhbHMoZGF0ZTE6IE1vbWVudCB8IHN0cmluZywgZGF0ZTI6IE1vbWVudCB8IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBEYXRlVXRpbHMuaXNTYW1lKGRhdGUxLCBkYXRlMik7XG4gIH1cblxuICBzdGF0aWMgaXNTYW1lKGRhdGUxOiBNb21lbnQgfCBzdHJpbmcsIGRhdGUyOiBNb21lbnQgfCBzdHJpbmcsIGdyYW51bGFyaXR5PzogdW5pdE9mVGltZS5TdGFydE9mKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZDEgPSBmcm9tRGF0ZUlTT1N0cmluZyhkYXRlMSk7XG4gICAgY29uc3QgZDIgPSBmcm9tRGF0ZUlTT1N0cmluZyhkYXRlMik7XG4gICAgcmV0dXJuICghZDEgJiYgIWQyKSB8fCAoZDEgJiYgZDEuaXNTYW1lKGQyLCBncmFudWxhcml0eSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGNvcHkgb2YgYSBkYXRlLCB3aXRob3V0IHRpbWUgZmllbGRzIChhbHdheXMgcmV0dXJuIGEgbmV3IE1vbWVudCBvYmplY3QsIG9yIHVuZGVmaW5lZCkuXG4gICAqIFNhbWUgaW1wbGVtZW50YXRpb24gYXMgdGhlIEphdmEgY2xhc3MgRGF0ZXMucmVzZXRUaW1lKCkgKHNlZSBhbnkgU1VNQVJpUyBsaWtlIFBvZClcbiAgICpcbiAgICogQHBhcmFtIHZhbHVlXG4gICAqIEBwYXJhbSB0aW1lem9uZSBhIHRpbWV6b25lIChzZWUgaHR0cHM6Ly9tb21lbnRqcy5jb20vdGltZXpvbmUvKVxuICAgKiBAcGFyYW0ga2VlcExvY2FsVGltZSBpZiB0cnVlLCBvbmx5IHRoZSB0aW1lem9uZSAoYW5kIG9mZnNldCkgaXMgdXBkYXRlZCwga2VlcGluZyB0aGUgbG9jYWwgdGltZSBzYW1lLiBDb25zZXF1ZW50bHksIGl0IHdpbGwgbm93IHBvaW50IHRvIGEgZGlmZmVyZW50IHBvaW50IGluIHRpbWUgaWYgdGhlIG9mZnNldCBoYXMgY2hhbmdlZC5cbiAgICovXG4gIHN0YXRpYyByZXNldFRpbWUodmFsdWU6IE1vbWVudHxzdHJpbmcsIHRpbWV6b25lPzogc3RyaW5nLCBrZWVwTG9jYWxUaW1lPzogYm9vbGVhbik6IE1vbWVudCB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBjb25zdCBkYXRlID0gZnJvbURhdGVJU09TdHJpbmcodmFsdWUpO1xuICAgIC8vIE5vIHRpbWV6b25lXG4gICAgaWYgKCF0aW1lem9uZSkge1xuICAgICAgcmV0dXJuIGRhdGUuY2xvbmUoKS5zdGFydE9mKCdkYXknKTtcbiAgICB9XG4gICAgLy8gVXNlIHRpbWV6b25lXG4gICAgcmV0dXJuIGRhdGUuY2xvbmUoKSAvLyBjbG9uZSB0aGUgb3JpZ2luYWwgZGF0ZVxuICAgICAgLnR6KHRpbWV6b25lLCBrZWVwTG9jYWxUaW1lKVxuICAgICAgLnN0YXJ0T2YoJ2RheScpO1xuICB9XG5cbiAgc3RhdGljIG1hcmtOb1RpbWUodmFsdWU6IE1vbWVudCk6IE1vbWVudCB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB2YWx1ZVtNT01FTlRfTk9fVElNRV9QUk9QRVJUWV0gPSB0cnVlO1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHN0YXRpYyBtYXJrVGltZSh2YWx1ZTogTW9tZW50KTogTW9tZW50IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGRlbGV0ZSB2YWx1ZVtNT01FTlRfTk9fVElNRV9QUk9QRVJUWV07XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgc3RhdGljIGlzTm9UaW1lKHZhbHVlOiBNb21lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdmFsdWU/LltNT01FTlRfTk9fVElNRV9QUk9QRVJUWV0gPT09IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogVGVzdCBpZiBhIGRhdGUgaXMgb24gdGhlIGdpdmVuIGRheSBvZiB3ZWVrXG4gICAqXG4gICAqIEBwYXJhbSBkYXRlXG4gICAqIEBwYXJhbSB3ZWVrZGF5XG4gICAqIEBwYXJhbSB0aW1lem9uZVxuICAgKi9cbiAgc3RhdGljIGlzQXREYXkoZGF0ZTogc3RyaW5nfE1vbWVudCwgd2Vla2RheTogbnVtYmVyLCB0aW1lem9uZT86IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGxldCBtb21lbnREYXRlID0gZGF0ZSAmJiBmcm9tRGF0ZUlTT1N0cmluZyhkYXRlKTtcbiAgICBpZiAoIW1vbWVudERhdGUpIHJldHVybiBudWxsO1xuICAgIGlmICh0aW1lem9uZSkgbW9tZW50RGF0ZSA9IG1vbWVudERhdGUuY2xvbmUoKS50eih0aW1lem9uZSkuc3RhcnRPZignZGF5Jyk7XG4gICAgcmV0dXJuIG1vbWVudERhdGUuZGF5KCkgPT09IHdlZWtkYXk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvRGF0ZUlTT1N0cmluZyh2YWx1ZTogYW55KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCF2YWx1ZSkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAvLyBBbHJlYWR5IGEgdmFsaWQgSVNPIGRhdGUgdGltZSBzdHJpbmcgKHdpdGhvdXQgdGltZXpvbmUpOiB1c2UgaXRcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZydcbiAgICAmJiB2YWx1ZS5pbmRleE9mKCcrJykgPT09IC0xXG4gICAgJiYgdmFsdWUubGFzdEluZGV4T2YoJ1onKSA9PT0gdmFsdWUubGVuZ3RoIC0gMSkge1xuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIC8vIE1ha2Ugc3VyZSB0byBoYXZlIGEgTW9tZW50IG9iamVjdFxuICBjb25zdCBkYXRlID0gZnJvbURhdGVJU09TdHJpbmcodmFsdWUpO1xuICBpZiAoIWRhdGUpIHJldHVybiB1bmRlZmluZWQ7XG4gIHJldHVybiBEYXRlVXRpbHMuaXNOb1RpbWUoZGF0ZSlcbiAgICA/IGRhdGUudG9JU09TdHJpbmcodHJ1ZSAvKiBpbXBvcnRhbnQgISAqLykuc3Vic3RyaW5nKDAsIDEwKVxuICAgIDogZGF0ZS50b0lTT1N0cmluZygpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZnJvbURhdGVJU09TdHJpbmcodmFsdWU6IGFueSk6IE1vbWVudCB8IHVuZGVmaW5lZCB7XG4gIC8vIEFscmVhZHkgYSBtb21lbnQgb2JqZWN0OiB1c2UgaXRcbiAgaWYgKCF2YWx1ZSB8fCBpc01vbWVudCh2YWx1ZSkpIHJldHVybiB2YWx1ZTtcblxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiAhIXZhbHVlLm1hdGNoKERBVEVfTUFUQ0hfUkVHRVhQKSkge1xuICAgIC8vIFBhcnNlIHRoZSBpbnB1dCB2YWx1ZSwgYXMgYSBkYXRlIG9ubHlcbiAgICBjb25zdCBkYXRlT25seTogTW9tZW50ID0gRGF0ZVV0aWxzLm1vbWVudCh2YWx1ZSwgREFURV9QQVRURVJOLCB0cnVlKTtcbiAgICByZXR1cm4gRGF0ZVV0aWxzLm1hcmtOb1RpbWUoZGF0ZU9ubHkpO1xuICB9XG5cbiAgLy8gUGFyc2UgdGhlIGlucHV0IHZhbHVlLCBhcyBhIElTTyBkYXRlIHRpbWVcbiAgY29uc3QgZGF0ZTogTW9tZW50ID0gRGF0ZVV0aWxzLm1vbWVudCh2YWx1ZSwgREFURV9JU09fUEFUVEVSTik7XG4gIGlmIChkYXRlLmlzVmFsaWQoKSkgcmV0dXJuIGRhdGU7XG5cbiAgLy8gTm90IHZhbGlkOiB0cnlpbmcgdG8gY29udmVydCBmcm9tIHVuaXggdGltZXN0YW1wXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgY29uc29sZS53YXJuKCdXcm9uZyBkYXRlIGZvcm1hdCAtIFRyeWluZyB0byBjb252ZXJ0IGZyb20gbG9jYWwgdGltZTogJyArIHZhbHVlKTtcbiAgICBpZiAodmFsdWUubGVuZ3RoID09PSAxMCkge1xuICAgICAgcmV0dXJuIERhdGVVdGlscy5tb21lbnQodmFsdWUsIERBVEVfVU5JWF9USU1FU1RBTVApO1xuICAgIH1cbiAgICBlbHNlIGlmICh2YWx1ZS5sZW5ndGggPT09IDEzKSB7XG4gICAgICByZXR1cm4gRGF0ZVV0aWxzLm1vbWVudCh2YWx1ZSwgREFURV9VTklYX01TX1RJTUVTVEFNUCk7XG4gICAgfVxuICB9XG5cbiAgY29uc29sZS53YXJuKCdVbmFibGUgdG8gcGFyc2UgZGF0ZTogJyArIHZhbHVlKTtcbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZyb21Vbml4VGltZXN0YW1wKHRpbWVJblNlYzogbnVtYmVyKSB7XG4gIHJldHVybiBEYXRlVXRpbHMubW9tZW50KHRpbWVJblNlYywgREFURV9VTklYX1RJTUVTVEFNUCk7XG59XG5leHBvcnQgZnVuY3Rpb24gZnJvbVVuaXhNc1RpbWVzdGFtcCh0aW1lSW5NczogbnVtYmVyKSB7XG4gIHJldHVybiBEYXRlVXRpbHMubW9tZW50KHRpbWVJbk1zLCBEQVRFX1VOSVhfTVNfVElNRVNUQU1QKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvRHVyYXRpb24odmFsdWU6IG51bWJlciwgdW5pdD86IHVuaXRPZlRpbWUuRHVyYXRpb25Db25zdHJ1Y3Rvcik6IER1cmF0aW9uIHtcbiAgaWYgKCF2YWx1ZSkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICBjb25zdCBkdXJhdGlvbiA9IERhdGVVdGlscy5tb21lbnQuZHVyYXRpb24odmFsdWUsIHVuaXQpO1xuXG4gIC8vIGZpeCA5OTArIG1zXG4gIGlmIChkdXJhdGlvbi5taWxsaXNlY29uZHMoKSA+PSA5OTApIHtcbiAgICBkdXJhdGlvbi5hZGQoMTAwMCAtIGR1cmF0aW9uLm1pbGxpc2Vjb25kcygpLCAnbXMnKTtcbiAgfVxuICAvLyBmaXggNTkgc1xuICBpZiAoZHVyYXRpb24uc2Vjb25kcygpID49IDU5KSB7XG4gICAgZHVyYXRpb24uYWRkKDYwIC0gZHVyYXRpb24uc2Vjb25kcygpLCAncycpO1xuICB9XG5cbiAgcmV0dXJuIGR1cmF0aW9uO1xufVxuIl19
@@ -1,39 +0,0 @@
1
- import { Component, Inject, Input, Optional, ViewChild } from '@angular/core';
2
- import { ENVIRONMENT } from '../../../environments/environment.class';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@ionic/angular";
5
- import * as i2 from "@angular/material/expansion";
6
- import * as i3 from "@angular/material/icon";
7
- import * as i4 from "../../../environments/environment.class";
8
- export class DebugComponent {
9
- constructor(environment) {
10
- this.title = '';
11
- this.enable = null;
12
- this.expanded = false;
13
- this.enable = !environment || !environment.production;
14
- }
15
- toggle() {
16
- this.expansionPanel.toggle();
17
- }
18
- }
19
- DebugComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DebugComponent, deps: [{ token: ENVIRONMENT, optional: true }], target: i0.ɵɵFactoryTarget.Component });
20
- DebugComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DebugComponent, selector: "app-debug", inputs: { title: "title", enable: "enable", expanded: "expanded" }, viewQueries: [{ propertyName: "expansionPanel", first: true, predicate: ["expansionPanel"], descendants: true }], ngImport: i0, template: "<!-- debug -->\n<ion-item tappable (click)=\"toggle()\" lines=\"none\" color=\"secondary50\">\n <ion-icon slot=\"start\" name=\"bug\" ></ion-icon>\n <ion-label color=\"primary\">Debug {{title}}</ion-label>\n <mat-icon slot=\"end\">{{expansionPanel.expanded ? 'expand_less' : 'expand_more' }}</mat-icon>\n</ion-item>\n<mat-expansion-panel #expansionPanel [(expanded)]=\"expanded\">\n <ion-text color=\"primary100\" >\n <div class=\"ion-margin-start\">\n <ng-content></ng-content>\n </div>\n </ion-text>\n</mat-expansion-panel>\n", styles: ["ion-item{cursor:pointer!important}ion-item mat-icon,ion-item ion-icon{color:var(--ion-color-primary)}.mat-expansion-panel{--expansion-panel-padding: 4px;background:var(--ion-color-secondary50)!important}.mat-expansion-panel.mat-expanded{margin-bottom:4px!important}.mat-expansion-panel .mat-expansion-panel-body *{color:var(--ion-color-primary100)}\n"], dependencies: [{ kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i1.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i2.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["disabled", "expanded", "hideToggle", "togglePosition"], outputs: ["opened", "closed", "expandedChange", "afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DebugComponent, decorators: [{
22
- type: Component,
23
- args: [{ selector: 'app-debug', template: "<!-- debug -->\n<ion-item tappable (click)=\"toggle()\" lines=\"none\" color=\"secondary50\">\n <ion-icon slot=\"start\" name=\"bug\" ></ion-icon>\n <ion-label color=\"primary\">Debug {{title}}</ion-label>\n <mat-icon slot=\"end\">{{expansionPanel.expanded ? 'expand_less' : 'expand_more' }}</mat-icon>\n</ion-item>\n<mat-expansion-panel #expansionPanel [(expanded)]=\"expanded\">\n <ion-text color=\"primary100\" >\n <div class=\"ion-margin-start\">\n <ng-content></ng-content>\n </div>\n </ion-text>\n</mat-expansion-panel>\n", styles: ["ion-item{cursor:pointer!important}ion-item mat-icon,ion-item ion-icon{color:var(--ion-color-primary)}.mat-expansion-panel{--expansion-panel-padding: 4px;background:var(--ion-color-secondary50)!important}.mat-expansion-panel.mat-expanded{margin-bottom:4px!important}.mat-expansion-panel .mat-expansion-panel-body *{color:var(--ion-color-primary100)}\n"] }]
24
- }], ctorParameters: function () { return [{ type: i4.Environment, decorators: [{
25
- type: Inject,
26
- args: [ENVIRONMENT]
27
- }, {
28
- type: Optional
29
- }] }]; }, propDecorators: { title: [{
30
- type: Input
31
- }], enable: [{
32
- type: Input
33
- }], expanded: [{
34
- type: Input
35
- }], expansionPanel: [{
36
- type: ViewChild,
37
- args: ['expansionPanel']
38
- }] } });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvZGVidWcvZGVidWcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvZGVidWcvZGVidWcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFNUUsT0FBTyxFQUFjLFdBQVcsRUFBQyxNQUFNLHlDQUF5QyxDQUFDOzs7Ozs7QUFPakYsTUFBTSxPQUFPLGNBQWM7SUFRekIsWUFDbUMsV0FBd0I7UUFQbEQsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLFdBQU0sR0FBWSxJQUFJLENBQUM7UUFDdkIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQU94QixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsV0FBVyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQztJQUN4RCxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDL0IsQ0FBQzs7NEdBaEJVLGNBQWMsa0JBU2YsV0FBVztnR0FUVixjQUFjLHVPQ1QzQixpaUJBYUE7NEZESmEsY0FBYztrQkFMMUIsU0FBUzsrQkFDRSxXQUFXOzswQkFhbEIsTUFBTTsyQkFBQyxXQUFXOzswQkFBRyxRQUFROzRDQVB2QixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRXVCLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEluamVjdCwgSW5wdXQsIE9wdGlvbmFsLCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNYXRFeHBhbnNpb25QYW5lbH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZXhwYW5zaW9uJztcbmltcG9ydCB7RW52aXJvbm1lbnQsIEVOVklST05NRU5UfSBmcm9tICcuLi8uLi8uLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQuY2xhc3MnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZGVidWcnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGVidWcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kZWJ1Zy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIERlYnVnQ29tcG9uZW50IHtcblxuICBASW5wdXQoKSB0aXRsZSA9ICcnO1xuICBASW5wdXQoKSBlbmFibGU6IGJvb2xlYW4gPSBudWxsO1xuICBASW5wdXQoKSBleHBhbmRlZCA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGQoJ2V4cGFuc2lvblBhbmVsJykgZXhwYW5zaW9uUGFuZWw6IE1hdEV4cGFuc2lvblBhbmVsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoRU5WSVJPTk1FTlQpIEBPcHRpb25hbCgpIGVudmlyb25tZW50OiBFbnZpcm9ubWVudFxuICApIHtcbiAgICB0aGlzLmVuYWJsZSA9ICFlbnZpcm9ubWVudCB8fCAhZW52aXJvbm1lbnQucHJvZHVjdGlvbjtcbiAgfVxuXG4gIHRvZ2dsZSgpIHtcbiAgICB0aGlzLmV4cGFuc2lvblBhbmVsLnRvZ2dsZSgpO1xuICB9XG59XG4iLCI8IS0tIGRlYnVnIC0tPlxuPGlvbi1pdGVtIHRhcHBhYmxlIChjbGljayk9XCJ0b2dnbGUoKVwiIGxpbmVzPVwibm9uZVwiIGNvbG9yPVwic2Vjb25kYXJ5NTBcIj5cbiAgPGlvbi1pY29uIHNsb3Q9XCJzdGFydFwiIG5hbWU9XCJidWdcIiA+PC9pb24taWNvbj5cbiAgPGlvbi1sYWJlbCBjb2xvcj1cInByaW1hcnlcIj5EZWJ1ZyB7e3RpdGxlfX08L2lvbi1sYWJlbD5cbiAgPG1hdC1pY29uIHNsb3Q9XCJlbmRcIj57e2V4cGFuc2lvblBhbmVsLmV4cGFuZGVkID8gJ2V4cGFuZF9sZXNzJyA6ICdleHBhbmRfbW9yZScgfX08L21hdC1pY29uPlxuPC9pb24taXRlbT5cbjxtYXQtZXhwYW5zaW9uLXBhbmVsICNleHBhbnNpb25QYW5lbCBbKGV4cGFuZGVkKV09XCJleHBhbmRlZFwiPlxuICA8aW9uLXRleHQgY29sb3I9XCJwcmltYXJ5MTAwXCIgPlxuICAgIDxkaXYgY2xhc3M9XCJpb24tbWFyZ2luLXN0YXJ0XCI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIDwvaW9uLXRleHQ+XG48L21hdC1leHBhbnNpb24tcGFuZWw+XG4iXX0=