@sumaris-net/ngx-components 1.2.7 → 1.2.14

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 (793) hide show
  1. package/README.md +9 -7
  2. package/doc/build.md +2 -2
  3. package/doc/changelog.md +402 -1
  4. package/esm2020/public_api.mjs +298 -0
  5. package/esm2020/src/app/admin/admin-routing.module.mjs +41 -0
  6. package/esm2020/src/app/admin/admin.module.mjs +34 -0
  7. package/esm2020/src/app/admin/services/filter/person.filter.mjs +59 -0
  8. package/esm2020/src/app/admin/services/person.service.mjs +161 -0
  9. package/esm2020/src/app/admin/services/validator/person.validator.mjs +34 -0
  10. package/esm2020/src/app/admin/users/users.mjs +234 -0
  11. package/esm2020/src/app/admin/users/users.module.mjs +54 -0
  12. package/esm2020/src/app/core/about/about.modal.mjs +71 -0
  13. package/esm2020/src/app/core/about/about.module.mjs +34 -0
  14. package/esm2020/src/app/core/account/account.module.mjs +43 -0
  15. package/esm2020/src/app/core/account/account.page.mjs +245 -0
  16. package/esm2020/src/app/core/auth/auth.form.mjs +131 -0
  17. package/esm2020/src/app/core/auth/auth.modal.mjs +72 -0
  18. package/esm2020/src/app/core/auth/auth.module.mjs +47 -0
  19. package/esm2020/src/app/core/core.module.mjs +184 -0
  20. package/esm2020/src/app/core/core.testing.module.mjs +86 -0
  21. package/esm2020/src/app/core/form/buttons/form-buttons-bar.component.mjs +71 -0
  22. package/esm2020/src/app/core/form/buttons/form-buttons-bar.module.mjs +35 -0
  23. package/esm2020/src/app/core/form/entity/editor.class.mjs +675 -0
  24. package/esm2020/src/app/core/form/entity/entity-editor-modal.class.mjs +419 -0
  25. package/esm2020/src/app/core/form/entity/entity-editor.class.mjs +652 -0
  26. package/esm2020/src/app/core/form/entity/entity-metadata.component.mjs +25 -0
  27. package/esm2020/src/app/core/form/entity/entity.module.mjs +38 -0
  28. package/esm2020/src/app/core/form/form.class.mjs +340 -0
  29. package/esm2020/src/app/core/form/form.module.mjs +66 -0
  30. package/esm2020/src/app/core/form/form.utils.mjs +473 -0
  31. package/esm2020/src/app/core/form/list/list.form.mjs +222 -0
  32. package/esm2020/src/app/core/form/list/list.module.mjs +35 -0
  33. package/esm2020/src/app/core/form/properties/properties.form.mjs +129 -0
  34. package/esm2020/src/app/core/form/properties/properties.module.mjs +35 -0
  35. package/esm2020/src/app/core/form/properties/property.validator.mjs +23 -0
  36. package/esm2020/src/app/core/form/properties/testing/properties-form.test.mjs +90 -0
  37. package/esm2020/src/app/core/form/properties/testing/properties-form.testing.module.mjs +39 -0
  38. package/esm2020/src/app/core/form/text-popover/testing/text-popover.testing.mjs +37 -0
  39. package/esm2020/src/app/core/form/text-popover/testing/text-popover.testing.module.mjs +45 -0
  40. package/esm2020/src/app/core/form/text-popover/text-form.component.mjs +89 -0
  41. package/esm2020/src/app/core/form/text-popover/text-popover.component.mjs +105 -0
  42. package/esm2020/src/app/core/form/text-popover/text-popover.module.mjs +40 -0
  43. package/esm2020/src/app/core/graphql/graphql.module.mjs +22 -0
  44. package/esm2020/src/app/core/graphql/graphql.service.mjs +749 -0
  45. package/esm2020/src/app/core/graphql/graphql.utils.mjs +117 -0
  46. package/esm2020/src/app/core/home/home.mjs +257 -0
  47. package/esm2020/src/app/core/home/home.module.mjs +48 -0
  48. package/esm2020/src/app/core/icon/icon.component.mjs +41 -0
  49. package/esm2020/src/app/core/icon/icon.module.mjs +29 -0
  50. package/esm2020/src/app/core/install/install-upgrade-card.component.mjs +337 -0
  51. package/esm2020/src/app/core/install/install-upgrade-card.module.mjs +35 -0
  52. package/esm2020/src/app/core/menu/menu.component.mjs +330 -0
  53. package/esm2020/src/app/core/menu/menu.model.mjs +35 -0
  54. package/esm2020/src/app/core/menu/menu.module.mjs +44 -0
  55. package/esm2020/src/app/core/menu/menu.service.mjs +55 -0
  56. package/esm2020/src/app/core/offline/update-offline-mode-card.component.mjs +27 -0
  57. package/esm2020/src/app/core/offline/update-offline-mode-card.module.mjs +35 -0
  58. package/esm2020/src/app/core/peer/select-peer.modal.mjs +174 -0
  59. package/esm2020/src/app/core/peer/select-peer.module.mjs +42 -0
  60. package/esm2020/src/app/core/register/register-confirm.page.mjs +81 -0
  61. package/esm2020/src/app/core/register/register.form.mjs +181 -0
  62. package/esm2020/src/app/core/register/register.modal.mjs +52 -0
  63. package/esm2020/src/app/core/register/register.module.mjs +44 -0
  64. package/esm2020/src/app/core/services/account.service.mjs +1111 -0
  65. package/esm2020/src/app/core/services/auth-guard.service.mjs +71 -0
  66. package/esm2020/src/app/core/services/base-entity-service.class.mjs +441 -0
  67. package/{esm2015/src/app/core/services/base-graphql-service.class.js → esm2020/src/app/core/services/base-graphql-service.class.mjs} +36 -34
  68. package/{esm2015/src/app/core/services/base58.js → esm2020/src/app/core/services/base58.mjs} +2 -2
  69. package/esm2020/src/app/core/services/config/core.config.mjs +168 -0
  70. package/esm2020/src/app/core/services/config.service.mjs +354 -0
  71. package/esm2020/src/app/core/services/crypto.service.mjs +114 -0
  72. package/{esm2015/src/app/core/services/errors.js → esm2020/src/app/core/services/errors.mjs} +1 -1
  73. package/esm2020/src/app/core/services/local-settings.service.mjs +445 -0
  74. package/esm2020/src/app/core/services/model/account.model.mjs +50 -0
  75. package/esm2020/src/app/core/services/model/config.model.mjs +92 -0
  76. package/esm2020/src/app/core/services/model/department.model.mjs +30 -0
  77. package/esm2020/src/app/core/services/model/entity.decorators.mjs +97 -0
  78. package/esm2020/src/app/core/services/model/entity.model.mjs +228 -0
  79. package/esm2020/src/app/core/services/model/filter.model.mjs +94 -0
  80. package/{esm2015/src/app/core/services/model/history.model.js → esm2020/src/app/core/services/model/history.model.mjs} +0 -0
  81. package/{esm2015/src/app/core/services/model/model.enum.js → esm2020/src/app/core/services/model/model.enum.mjs} +0 -0
  82. package/esm2020/src/app/core/services/model/peer.model.mjs +68 -0
  83. package/esm2020/src/app/core/services/model/person.model.mjs +83 -0
  84. package/esm2020/src/app/core/services/model/referential.model.mjs +153 -0
  85. package/esm2020/src/app/core/services/model/settings.model.mjs +75 -0
  86. package/esm2020/src/app/core/services/network.service.mjs +574 -0
  87. package/esm2020/src/app/core/services/network.types.mjs +20 -0
  88. package/esm2020/src/app/core/services/network.utils.mjs +16 -0
  89. package/esm2020/src/app/core/services/pipes/account.pipes.mjs +38 -0
  90. package/esm2020/src/app/core/services/pipes/department-to-string.pipe.mjs +23 -0
  91. package/esm2020/src/app/core/services/pipes/person-to-string.pipe.mjs +23 -0
  92. package/esm2020/src/app/core/services/pipes/usage-mode.pipes.mjs +37 -0
  93. package/esm2020/src/app/core/services/platform.service.mjs +493 -0
  94. package/esm2020/src/app/core/services/storage/entities-storage.service.mjs +427 -0
  95. package/esm2020/src/app/core/services/storage/entity-store.class.mjs +449 -0
  96. package/esm2020/src/app/core/services/testing/referential-filter.model.mjs +23 -0
  97. package/esm2020/src/app/core/services/testing/referential.validator.mjs +45 -0
  98. package/esm2020/src/app/core/services/validator/account.validator.mjs +52 -0
  99. package/esm2020/src/app/core/services/validator/base.validator.class.mjs +47 -0
  100. package/esm2020/src/app/core/services/validator/local-settings.validator.mjs +66 -0
  101. package/esm2020/src/app/core/services/validator/user-settings.validator.mjs +29 -0
  102. package/esm2020/src/app/core/settings/settings.module.mjs +34 -0
  103. package/esm2020/src/app/core/settings/settings.page.mjs +293 -0
  104. package/esm2020/src/app/core/table/actions-column.component.mjs +96 -0
  105. package/esm2020/src/app/core/table/async-table.class.mjs +1619 -0
  106. package/esm2020/src/app/core/table/entities-async-table-datasource.class.mjs +382 -0
  107. package/esm2020/src/app/core/table/entities-table-datasource.class.mjs +399 -0
  108. package/esm2020/src/app/core/table/memory-table.class.mjs +53 -0
  109. package/esm2020/src/app/core/table/table-select-columns.component.mjs +43 -0
  110. package/esm2020/src/app/core/table/table.class.mjs +1658 -0
  111. package/esm2020/src/app/core/table/table.model.mjs +12 -0
  112. package/esm2020/src/app/core/table/table.module.mjs +40 -0
  113. package/esm2020/src/app/core/table/table.utils.mjs +13 -0
  114. package/esm2020/src/app/core/table/testing/table.testing.mjs +265 -0
  115. package/esm2020/src/app/core/table/testing/table.testing.module.mjs +38 -0
  116. package/esm2020/src/app/shared/alerts.mjs +238 -0
  117. package/esm2020/src/app/shared/audio/audio.mjs +201 -0
  118. package/esm2020/src/app/shared/audio/audio.testing.mjs +31 -0
  119. package/esm2020/src/app/shared/audio/audio.testing.module.mjs +45 -0
  120. package/esm2020/src/app/shared/capacitor/keyboard.mjs +40 -0
  121. package/esm2020/src/app/shared/capacitor/plugins.mjs +9 -0
  122. package/esm2020/src/app/shared/constants.mjs +10 -0
  123. package/esm2020/src/app/shared/dates.mjs +142 -0
  124. package/esm2020/src/app/shared/debug/debug.component.mjs +39 -0
  125. package/esm2020/src/app/shared/debug/debug.module.mjs +44 -0
  126. package/esm2020/src/app/shared/directives/autofocus.directive.mjs +92 -0
  127. package/esm2020/src/app/shared/directives/autotitle.directive.mjs +30 -0
  128. package/esm2020/src/app/shared/directives/directives.module.mjs +43 -0
  129. package/esm2020/src/app/shared/directives/drag-and-drop.directive.mjs +53 -0
  130. package/esm2020/src/app/shared/directives/ng-var.directive.mjs +31 -0
  131. package/esm2020/src/app/shared/directives/resizable/resizable.component.mjs +59 -0
  132. package/esm2020/src/app/shared/directives/resizable/resizable.directive.mjs +40 -0
  133. package/esm2020/src/app/shared/directives/resizable/resizable.module.mjs +17 -0
  134. package/esm2020/src/app/shared/events.mjs +64 -0
  135. package/esm2020/src/app/shared/file/csv.utils.mjs +74 -0
  136. package/esm2020/src/app/shared/file/file.service.mjs +117 -0
  137. package/esm2020/src/app/shared/file/file.utils.mjs +113 -0
  138. package/esm2020/src/app/shared/file/images.utils.mjs +161 -0
  139. package/esm2020/src/app/shared/file/json.utils.mjs +33 -0
  140. package/esm2020/src/app/shared/file/uri.utils.mjs +23 -0
  141. package/{esm2015/src/app/shared/focusable.js → esm2020/src/app/shared/focusable.mjs} +0 -0
  142. package/esm2020/src/app/shared/form/field.component.mjs +244 -0
  143. package/{esm2015/src/app/shared/form/field.model.js → esm2020/src/app/shared/form/field.model.mjs} +1 -1
  144. package/esm2020/src/app/shared/form/loading-spinner.mjs +36 -0
  145. package/esm2020/src/app/shared/forms.mjs +391 -0
  146. package/esm2020/src/app/shared/functions.mjs +462 -0
  147. package/esm2020/src/app/shared/geolocation/geolocation.utils.mjs +41 -0
  148. package/{esm2015/src/app/shared/gesture/gesture-config.js → esm2020/src/app/shared/gesture/gesture-config.mjs} +7 -5
  149. package/esm2020/src/app/shared/gesture/hammer.utils.mjs +2 -0
  150. package/{esm2015/src/app/shared/graph/colors.utils.js → esm2020/src/app/shared/graph/colors.utils.mjs} +1 -1
  151. package/esm2020/src/app/shared/graph/graph-colors.mjs +208 -0
  152. package/esm2020/src/app/shared/guard/component-dirty.guard.mjs +57 -0
  153. package/esm2020/src/app/shared/help/help.modal.mjs +53 -0
  154. package/esm2020/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +23 -0
  155. package/esm2020/src/app/shared/hotkeys/hotkeys.service.mjs +84 -0
  156. package/esm2020/src/app/shared/hotkeys/shared-hotkeys.module.mjs +42 -0
  157. package/esm2020/src/app/shared/http/http.utils.mjs +52 -0
  158. package/esm2020/src/app/shared/image/gallery/image-gallery.component.mjs +355 -0
  159. package/esm2020/src/app/shared/image/gallery/image-gallery.module.mjs +58 -0
  160. package/esm2020/src/app/shared/image/gallery/testing/gallegry.model.testing.mjs +27 -0
  161. package/esm2020/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +89 -0
  162. package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.mjs +39 -0
  163. package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +56 -0
  164. package/esm2020/src/app/shared/image/image.model.mjs +2 -0
  165. package/esm2020/src/app/shared/image/image.module.mjs +29 -0
  166. package/esm2020/src/app/shared/image/image.service.mjs +98 -0
  167. package/{esm2015/src/app/shared/inputs.js → esm2020/src/app/shared/inputs.mjs} +4 -4
  168. package/esm2020/src/app/shared/interceptors/progess.interceptor.mjs +27 -0
  169. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.config.mjs +47 -0
  170. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.mjs +905 -0
  171. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +78 -0
  172. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.utils.mjs +19 -0
  173. package/esm2020/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +209 -0
  174. package/esm2020/src/app/shared/material/badge/badge.directive.mjs +176 -0
  175. package/esm2020/src/app/shared/material/badge/badge.module.mjs +32 -0
  176. package/esm2020/src/app/shared/material/badge/badge.test.mjs +28 -0
  177. package/esm2020/src/app/shared/material/boolean/boolean.module.mjs +68 -0
  178. package/esm2020/src/app/shared/material/boolean/material.boolean.mjs +253 -0
  179. package/esm2020/src/app/shared/material/chips/chips.module.mjs +76 -0
  180. package/esm2020/src/app/shared/material/chips/material.chips.mjs +697 -0
  181. package/esm2020/src/app/shared/material/chips/testing/chips.test.mjs +143 -0
  182. package/esm2020/src/app/shared/material/datetime/datetime.module.mjs +91 -0
  183. package/esm2020/src/app/shared/material/datetime/material.date.mjs +388 -0
  184. package/esm2020/src/app/shared/material/datetime/material.dateshort.mjs +385 -0
  185. package/esm2020/src/app/shared/material/datetime/material.datetime.mjs +436 -0
  186. package/esm2020/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +108 -0
  187. package/esm2020/src/app/shared/material/datetime/testing/mat-date.test.mjs +110 -0
  188. package/esm2020/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +103 -0
  189. package/esm2020/src/app/shared/material/duration/duration.module.mjs +67 -0
  190. package/{esm2015/src/app/shared/material/duration/duration.utils.js → esm2020/src/app/shared/material/duration/duration.utils.mjs} +0 -0
  191. package/esm2020/src/app/shared/material/duration/material.duration.mjs +257 -0
  192. package/esm2020/src/app/shared/material/latlong/latlong.utils.mjs +266 -0
  193. package/esm2020/src/app/shared/material/latlong/material.latlong.mjs +381 -0
  194. package/esm2020/src/app/shared/material/latlong/material.latlong.module.mjs +67 -0
  195. package/esm2020/src/app/shared/material/latlong/testing/latlong.test.mjs +102 -0
  196. package/{esm2015/src/app/shared/material/material.animations.js → esm2020/src/app/shared/material/material.animations.mjs} +1 -1
  197. package/esm2020/src/app/shared/material/material.module.mjs +224 -0
  198. package/esm2020/src/app/shared/material/material.testing.module.mjs +168 -0
  199. package/esm2020/src/app/shared/material/numpad/numpad.append-to-input.directive.mjs +98 -0
  200. package/esm2020/src/app/shared/material/numpad/numpad.component.mjs +80 -0
  201. package/esm2020/src/app/shared/material/numpad/numpad.container.mjs +190 -0
  202. package/esm2020/src/app/shared/material/numpad/numpad.content.mjs +17 -0
  203. package/esm2020/src/app/shared/material/numpad/numpad.directive.mjs +162 -0
  204. package/esm2020/src/app/shared/material/numpad/numpad.dom-service.mjs +37 -0
  205. package/{esm2015/src/app/shared/material/numpad/numpad.model.js → esm2020/src/app/shared/material/numpad/numpad.model.mjs} +1 -1
  206. package/esm2020/src/app/shared/material/numpad/numpad.module.mjs +60 -0
  207. package/esm2020/src/app/shared/material/numpad/testing/numpad.test.mjs +46 -0
  208. package/esm2020/src/app/shared/material/paginator/material.paginator-i18n.mjs +42 -0
  209. package/esm2020/src/app/shared/material/stepper/material.stepper-i18n.mjs +22 -0
  210. package/esm2020/src/app/shared/material/swipe/material.swipe.mjs +334 -0
  211. package/esm2020/src/app/shared/material/swipe/swipe.module.mjs +51 -0
  212. package/esm2020/src/app/shared/material/swipe/testing/swipe.test.mjs +64 -0
  213. package/esm2020/src/app/shared/modules.mjs +11 -0
  214. package/esm2020/src/app/shared/observables.mjs +103 -0
  215. package/esm2020/src/app/shared/pipes/arrays.pipe.mjs +135 -0
  216. package/esm2020/src/app/shared/pipes/colors.pipe.mjs +23 -0
  217. package/esm2020/src/app/shared/pipes/date-diff-duration.pipe.mjs +48 -0
  218. package/esm2020/src/app/shared/pipes/date-format.pipe.mjs +66 -0
  219. package/{esm2015/src/app/shared/pipes/date-from-now.pipe.js → esm2020/src/app/shared/pipes/date-from-now.pipe.mjs} +13 -12
  220. package/{esm2015/src/app/shared/pipes/duration.pipe.js → esm2020/src/app/shared/pipes/duration.pipe.mjs} +13 -12
  221. package/esm2020/src/app/shared/pipes/file-size.pipe.mjs +62 -0
  222. package/esm2020/src/app/shared/pipes/form.pipes.mjs +187 -0
  223. package/esm2020/src/app/shared/pipes/highlight.pipe.mjs +48 -0
  224. package/esm2020/src/app/shared/pipes/latlong-format.pipe.mjs +46 -0
  225. package/esm2020/src/app/shared/pipes/maps.pipe.mjs +63 -0
  226. package/esm2020/src/app/shared/pipes/math.pipes.mjs +59 -0
  227. package/esm2020/src/app/shared/pipes/ng-init.pipe.mjs +21 -0
  228. package/esm2020/src/app/shared/pipes/number-format.pipe.mjs +30 -0
  229. package/esm2020/src/app/shared/pipes/pipes.module.mjs +218 -0
  230. package/esm2020/src/app/shared/pipes/property.pipes.mjs +93 -0
  231. package/esm2020/src/app/shared/pipes/string.pipes.mjs +95 -0
  232. package/esm2020/src/app/shared/pipes/translate-context.pipe.mjs +43 -0
  233. package/esm2020/src/app/shared/platforms.mjs +43 -0
  234. package/esm2020/src/app/shared/services/entity-service.class.mjs +7 -0
  235. package/esm2020/src/app/shared/services/job.utils.mjs +92 -0
  236. package/esm2020/src/app/shared/services/memory-entity-service.class.mjs +337 -0
  237. package/esm2020/src/app/shared/services/progress-bar.service.mjs +33 -0
  238. package/esm2020/src/app/shared/services/startable-observable-service.class.mjs +119 -0
  239. package/esm2020/src/app/shared/services/startable-service.class.mjs +105 -0
  240. package/esm2020/src/app/shared/services/storage/storage.service.mjs +132 -0
  241. package/esm2020/src/app/shared/services/storage/storage.utils.mjs +13 -0
  242. package/esm2020/src/app/shared/services/translate-context.service.mjs +81 -0
  243. package/esm2020/src/app/shared/services/validator-service.class.mjs +2 -0
  244. package/esm2020/src/app/shared/services.mjs +62 -0
  245. package/esm2020/src/app/shared/shared-routing.module.mjs +63 -0
  246. package/esm2020/src/app/shared/shared.module.mjs +207 -0
  247. package/esm2020/src/app/shared/shared.testing.module.mjs +76 -0
  248. package/esm2020/src/app/shared/testing/observable.test.mjs +95 -0
  249. package/esm2020/src/app/shared/testing/tests.page.mjs +33 -0
  250. package/esm2020/src/app/shared/toast/toast.testing.mjs +51 -0
  251. package/esm2020/src/app/shared/toast/toast.testing.module.mjs +45 -0
  252. package/esm2020/src/app/shared/toast/toasts.mjs +144 -0
  253. package/esm2020/src/app/shared/toolbar/modal-toolbar.mjs +58 -0
  254. package/esm2020/src/app/shared/toolbar/toolbar.mjs +249 -0
  255. package/esm2020/src/app/shared/toolbar/toolbar.module.mjs +53 -0
  256. package/esm2020/src/app/shared/types.mjs +2 -0
  257. package/esm2020/src/app/shared/upload-file/testing/upload-file.testing.mjs +57 -0
  258. package/esm2020/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +45 -0
  259. package/esm2020/src/app/shared/upload-file/upload-file-popover.component.mjs +97 -0
  260. package/esm2020/src/app/shared/upload-file/upload-file.component.mjs +204 -0
  261. package/esm2020/src/app/shared/upload-file/upload-file.model.mjs +20 -0
  262. package/esm2020/src/app/shared/validator/form-error-adapter.class.mjs +104 -0
  263. package/esm2020/src/app/shared/validator/validators.mjs +543 -0
  264. package/esm2020/src/app/shared/version/versions.mjs +81 -0
  265. package/esm2020/src/app/social/job/job.module.mjs +35 -0
  266. package/esm2020/src/app/social/job/progression/job-progression.icon.mjs +213 -0
  267. package/esm2020/src/app/social/job/progression/job-progression.list.mjs +22 -0
  268. package/esm2020/src/app/social/job/progression/job-progression.model.mjs +23 -0
  269. package/esm2020/src/app/social/job/progression/job-progression.service.mjs +71 -0
  270. package/esm2020/src/app/social/job/testing/job-progression.testing.mjs +52 -0
  271. package/esm2020/src/app/social/job/testing/job-progression.testing.service.mjs +55 -0
  272. package/esm2020/src/app/social/job/testing/job.testing.module.mjs +35 -0
  273. package/esm2020/src/app/social/message/message.form.mjs +81 -0
  274. package/esm2020/src/app/social/message/message.modal.mjs +93 -0
  275. package/esm2020/src/app/social/message/message.model.mjs +65 -0
  276. package/esm2020/src/app/social/message/message.module.mjs +35 -0
  277. package/esm2020/src/app/social/message/message.service.mjs +84 -0
  278. package/esm2020/src/app/social/social.errors.mjs +10 -0
  279. package/esm2020/src/app/social/social.module.mjs +47 -0
  280. package/esm2020/src/app/social/social.testing.module.mjs +51 -0
  281. package/esm2020/src/app/social/user-event/notification/user-event-notification.icon.mjs +108 -0
  282. package/esm2020/src/app/social/user-event/notification/user-event-notification.list.mjs +242 -0
  283. package/esm2020/src/app/social/user-event/testing/user-event.testing.mjs +229 -0
  284. package/esm2020/src/app/social/user-event/testing/user-event.testing.model.mjs +112 -0
  285. package/esm2020/src/app/social/user-event/testing/user-event.testing.module.mjs +35 -0
  286. package/esm2020/src/app/social/user-event/testing/user-event.testing.service.mjs +111 -0
  287. package/esm2020/src/app/social/user-event/user-event.model.mjs +2 -0
  288. package/esm2020/src/app/social/user-event/user-event.module.mjs +39 -0
  289. package/esm2020/src/app/social/user-event/user-event.service.mjs +487 -0
  290. package/esm2020/src/environments/environment.class.mjs +5 -0
  291. package/esm2020/src/environments/environment.mjs +86 -0
  292. package/esm2020/sumaris-net.ngx-components.mjs +5 -0
  293. package/fesm2015/sumaris-net.ngx-components.mjs +36563 -0
  294. package/fesm2015/sumaris-net.ngx-components.mjs.map +1 -0
  295. package/fesm2020/sumaris-net.ngx-components.mjs +35734 -0
  296. package/fesm2020/sumaris-net.ngx-components.mjs.map +1 -0
  297. package/index.d.ts +5 -0
  298. package/package.json +34 -32
  299. package/public_api.d.ts +137 -30
  300. package/resources/README.md +7 -0
  301. package/src/app/admin/admin-routing.module.d.ts +7 -0
  302. package/src/app/admin/admin.module.d.ts +7 -0
  303. package/src/app/admin/services/person.service.d.ts +5 -1
  304. package/src/app/admin/services/validator/person.validator.d.ts +8 -5
  305. package/src/app/admin/users/users.d.ts +44 -0
  306. package/src/app/admin/users/users.module.d.ts +13 -0
  307. package/src/app/core/about/{modal-about.d.ts → about.modal.d.ts} +3 -0
  308. package/src/app/core/about/about.module.d.ts +10 -0
  309. package/src/app/core/account/account.module.d.ts +11 -0
  310. package/src/app/core/account/{account.d.ts → account.page.d.ts} +23 -10
  311. package/src/app/core/auth/auth.form.d.ts +36 -0
  312. package/src/app/core/auth/auth.modal.d.ts +24 -0
  313. package/src/app/core/auth/auth.module.d.ts +11 -0
  314. package/src/app/core/core.module.d.ts +27 -0
  315. package/src/app/core/core.testing.module.d.ts +14 -0
  316. package/src/app/core/form/{form-buttons-bar.component.d.ts → buttons/form-buttons-bar.component.d.ts} +7 -2
  317. package/src/app/core/form/buttons/form-buttons-bar.module.d.ts +9 -0
  318. package/src/app/core/form/{editor.class.d.ts → entity/editor.class.d.ts} +84 -22
  319. package/src/app/core/form/entity/entity-editor-modal.class.d.ts +129 -0
  320. package/src/app/core/form/{entity-editor.class.d.ts → entity/entity-editor.class.d.ts} +54 -29
  321. package/src/app/core/form/entity/entity-metadata.component.d.ts +13 -0
  322. package/src/app/core/form/entity/entity.module.d.ts +10 -0
  323. package/src/app/core/form/form.class.d.ts +57 -30
  324. package/src/app/core/form/form.module.d.ts +13 -0
  325. package/src/app/core/form/form.utils.d.ts +123 -114
  326. package/src/app/core/form/{list.form.d.ts → list/list.form.d.ts} +14 -11
  327. package/src/app/core/form/list/list.module.d.ts +9 -0
  328. package/src/app/core/form/properties/properties.form.d.ts +43 -0
  329. package/src/app/core/form/properties/properties.module.d.ts +9 -0
  330. package/src/app/core/form/properties/property.validator.d.ts +13 -0
  331. package/src/app/core/form/properties/testing/properties-form.test.d.ts +19 -0
  332. package/src/app/core/form/properties/testing/properties-form.testing.module.d.ts +12 -0
  333. package/src/app/core/form/text-popover/testing/text-popover.testing.d.ts +10 -0
  334. package/src/app/core/form/text-popover/testing/text-popover.testing.module.d.ts +11 -0
  335. package/src/app/core/form/text-popover/text-form.component.d.ts +32 -0
  336. package/src/app/core/form/text-popover/text-popover.component.d.ts +45 -0
  337. package/src/app/core/form/text-popover/text-popover.module.d.ts +10 -0
  338. package/src/app/core/graphql/graphql.module.d.ts +5 -0
  339. package/src/app/core/graphql/graphql.service.d.ts +16 -5
  340. package/src/app/core/graphql/graphql.utils.d.ts +12 -1
  341. package/src/app/core/home/home.d.ts +9 -4
  342. package/src/app/core/home/home.module.d.ts +12 -0
  343. package/src/app/core/icon/icon.component.d.ts +6 -2
  344. package/src/app/core/icon/icon.module.d.ts +9 -0
  345. package/src/app/core/install/install-upgrade-card.component.d.ts +7 -9
  346. package/src/app/core/install/install-upgrade-card.module.d.ts +9 -0
  347. package/src/app/core/menu/menu.component.d.ts +22 -15
  348. package/src/app/core/menu/menu.model.d.ts +2 -0
  349. package/src/app/core/menu/menu.module.d.ts +8 -0
  350. package/src/app/core/menu/menu.service.d.ts +18 -6
  351. package/src/app/core/offline/update-offline-mode-card.component.d.ts +11 -0
  352. package/src/app/core/offline/update-offline-mode-card.module.d.ts +9 -0
  353. package/src/app/core/peer/select-peer.modal.d.ts +25 -8
  354. package/src/app/core/peer/select-peer.module.d.ts +11 -0
  355. package/src/app/core/register/{confirm/confirm.d.ts → register-confirm.page.d.ts} +6 -3
  356. package/src/app/core/register/{form/form-register.d.ts → register.form.d.ts} +15 -12
  357. package/src/app/core/register/{modal/modal-register.d.ts → register.modal.d.ts} +4 -1
  358. package/src/app/core/register/register.module.d.ts +12 -0
  359. package/src/app/core/services/account.service.d.ts +34 -13
  360. package/src/app/core/services/auth-guard.service.d.ts +3 -0
  361. package/src/app/core/services/base-entity-service.class.d.ts +10 -19
  362. package/src/app/core/services/base-graphql-service.class.d.ts +13 -9
  363. package/src/app/core/services/config/core.config.d.ts +25 -24
  364. package/src/app/core/services/config.service.d.ts +9 -3
  365. package/src/app/core/services/crypto.service.d.ts +26 -18
  366. package/src/app/core/services/errors.d.ts +1 -1
  367. package/src/app/core/services/local-settings.service.d.ts +15 -7
  368. package/src/app/core/services/model/config.model.d.ts +1 -0
  369. package/src/app/core/services/model/entity.decorators.d.ts +1 -9
  370. package/src/app/core/services/model/entity.model.d.ts +4 -1
  371. package/src/app/core/services/model/filter.model.d.ts +13 -2
  372. package/src/app/core/services/model/referential.model.d.ts +20 -14
  373. package/src/app/core/services/model/settings.model.d.ts +0 -1
  374. package/src/app/core/services/network.service.d.ts +34 -22
  375. package/src/app/core/services/network.types.d.ts +5 -0
  376. package/src/app/core/services/network.utils.d.ts +16 -0
  377. package/src/app/core/services/pipes/account.pipes.d.ts +7 -0
  378. package/src/app/core/services/pipes/department-to-string.pipe.d.ts +4 -0
  379. package/src/app/core/services/pipes/person-to-string.pipe.d.ts +4 -0
  380. package/src/app/core/services/pipes/usage-mode.pipes.d.ts +7 -0
  381. package/src/app/core/services/platform.service.d.ts +40 -27
  382. package/src/app/core/services/storage/entities-storage.service.d.ts +16 -9
  383. package/src/app/core/services/storage/entity-store.class.d.ts +6 -5
  384. package/src/app/core/services/testing/referential-filter.model.d.ts +9 -0
  385. package/src/app/core/services/testing/referential.validator.d.ts +22 -0
  386. package/src/app/core/services/validator/account.validator.d.ts +6 -3
  387. package/src/app/core/services/validator/base.validator.class.d.ts +9 -6
  388. package/src/app/core/services/validator/local-settings.validator.d.ts +8 -5
  389. package/src/app/core/services/validator/user-settings.validator.d.ts +6 -3
  390. package/src/app/core/settings/settings.module.d.ts +10 -0
  391. package/src/app/core/settings/settings.page.d.ts +13 -12
  392. package/src/app/core/table/actions-column.component.d.ts +4 -1
  393. package/src/app/core/table/async-table.class.d.ts +368 -0
  394. package/src/app/core/table/entities-async-table-datasource.class.d.ts +80 -0
  395. package/src/app/core/table/entities-table-datasource.class.d.ts +59 -36
  396. package/src/app/core/table/memory-table.class.d.ts +5 -3
  397. package/src/app/core/table/table-select-columns.component.d.ts +4 -5
  398. package/src/app/core/table/table.class.d.ts +67 -70
  399. package/src/app/core/table/table.model.d.ts +26 -0
  400. package/src/app/core/table/table.module.d.ts +10 -0
  401. package/src/app/core/table/table.utils.d.ts +2 -1
  402. package/src/app/core/table/testing/table.testing.d.ts +51 -0
  403. package/src/app/core/table/testing/table.testing.module.d.ts +11 -0
  404. package/src/app/shared/alerts.d.ts +4 -4
  405. package/src/app/shared/audio/audio.d.ts +20 -11
  406. package/src/app/shared/audio/audio.testing.d.ts +13 -0
  407. package/src/app/shared/audio/audio.testing.module.d.ts +11 -0
  408. package/src/app/shared/capacitor/keyboard.d.ts +16 -0
  409. package/src/app/shared/capacitor/plugins.d.ts +7 -0
  410. package/src/app/shared/constants.d.ts +2 -0
  411. package/src/app/shared/dates.d.ts +25 -4
  412. package/src/app/shared/debug/debug.component.d.ts +13 -0
  413. package/src/app/shared/debug/debug.module.d.ts +12 -0
  414. package/src/app/shared/directives/autofocus.directive.d.ts +11 -9
  415. package/src/app/shared/directives/autotitle.directive.d.ts +10 -0
  416. package/src/app/shared/directives/directives.module.d.ts +10 -0
  417. package/src/app/shared/directives/drag-and-drop.directive.d.ts +17 -0
  418. package/src/app/shared/directives/ng-var.directive.d.ts +12 -0
  419. package/src/app/shared/directives/resizable/resizable.component.d.ts +21 -0
  420. package/src/app/shared/directives/resizable/resizable.directive.d.ts +12 -0
  421. package/src/app/shared/directives/resizable/resizable.module.d.ts +8 -0
  422. package/src/app/shared/events.d.ts +6 -6
  423. package/src/app/shared/file/csv.utils.d.ts +19 -0
  424. package/src/app/shared/file/file.service.d.ts +8 -5
  425. package/src/app/shared/file/file.utils.d.ts +20 -0
  426. package/src/app/shared/file/images.utils.d.ts +19 -0
  427. package/src/app/shared/file/json.utils.d.ts +11 -0
  428. package/src/app/shared/file/uri.utils.d.ts +7 -0
  429. package/src/app/shared/form/field.component.d.ts +12 -3
  430. package/src/app/shared/form/field.model.d.ts +7 -6
  431. package/src/app/shared/form/loading-spinner.d.ts +3 -0
  432. package/src/app/shared/forms.d.ts +89 -0
  433. package/src/app/shared/functions.d.ts +21 -13
  434. package/src/app/shared/geolocation/geolocation.utils.d.ts +11 -0
  435. package/src/app/shared/gesture/gesture-config.d.ts +3 -0
  436. package/src/app/shared/gesture/hammer.utils.d.ts +11 -11
  437. package/src/app/shared/graph/graph-colors.d.ts +8 -8
  438. package/src/app/shared/guard/component-dirty.guard.d.ts +3 -0
  439. package/src/app/shared/help/help.modal.d.ts +7 -4
  440. package/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.d.ts +3 -0
  441. package/src/app/shared/hotkeys/hotkeys.service.d.ts +7 -3
  442. package/src/app/shared/hotkeys/shared-hotkeys.module.d.ts +9 -0
  443. package/src/app/shared/http/http.utils.d.ts +14 -1
  444. package/src/app/shared/image/gallery/image-gallery.component.d.ts +101 -0
  445. package/src/app/shared/image/gallery/image-gallery.module.d.ts +14 -0
  446. package/src/app/shared/image/gallery/testing/gallegry.model.testing.d.ts +12 -0
  447. package/src/app/shared/image/gallery/testing/gallery.service.testing.d.ts +33 -0
  448. package/src/app/shared/image/gallery/testing/gallery.testing.d.ts +16 -0
  449. package/src/app/shared/image/gallery/testing/gallery.testing.module.d.ts +12 -0
  450. package/src/app/shared/image/image.model.d.ts +5 -0
  451. package/src/app/shared/image/image.module.d.ts +8 -0
  452. package/src/app/shared/image/image.service.d.ts +32 -0
  453. package/src/app/shared/inputs.d.ts +3 -3
  454. package/src/app/shared/interceptors/progess.interceptor.d.ts +2 -2
  455. package/src/app/shared/material/autocomplete/material.autocomplete.config.d.ts +36 -0
  456. package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +69 -77
  457. package/src/app/shared/material/autocomplete/material.autocomplete.module.d.ts +19 -0
  458. package/src/app/shared/material/autocomplete/material.autocomplete.utils.d.ts +4 -0
  459. package/src/app/shared/material/autocomplete/testing/autocomplete.test.d.ts +24 -17
  460. package/src/app/shared/material/badge/badge.directive.d.ts +30 -0
  461. package/src/app/shared/material/badge/badge.module.d.ts +10 -0
  462. package/src/app/shared/material/badge/badge.test.d.ts +13 -0
  463. package/src/app/shared/material/boolean/boolean.module.d.ts +17 -0
  464. package/src/app/shared/material/boolean/material.boolean.d.ts +11 -10
  465. package/src/app/shared/material/chips/chips.module.d.ts +20 -1
  466. package/src/app/shared/material/chips/material.chips.d.ts +52 -19
  467. package/src/app/shared/material/chips/testing/chips.test.d.ts +12 -7
  468. package/src/app/shared/material/datetime/datetime.module.d.ts +22 -0
  469. package/src/app/shared/material/datetime/material.date.d.ts +45 -38
  470. package/src/app/shared/material/datetime/material.dateshort.d.ts +47 -38
  471. package/src/app/shared/material/datetime/material.datetime.d.ts +40 -39
  472. package/src/app/shared/material/datetime/testing/mat-date-time.test.d.ts +12 -9
  473. package/src/app/shared/material/datetime/testing/mat-date.test.d.ts +30 -0
  474. package/src/app/shared/material/datetime/testing/mat-dateshort.test.d.ts +29 -0
  475. package/src/app/shared/material/duration/duration.module.d.ts +16 -0
  476. package/src/app/shared/material/duration/material.duration.d.ts +14 -10
  477. package/src/app/shared/material/latlong/latlong.utils.d.ts +2 -2
  478. package/src/app/shared/material/latlong/material.latlong.d.ts +27 -23
  479. package/src/app/shared/material/latlong/material.latlong.module.d.ts +17 -0
  480. package/src/app/shared/material/latlong/testing/latlong.test.d.ts +13 -7
  481. package/src/app/shared/material/material.module.d.ts +43 -0
  482. package/src/app/shared/material/material.testing.module.d.ts +25 -0
  483. package/src/app/shared/material/numpad/numpad.append-to-input.directive.d.ts +3 -0
  484. package/src/app/shared/material/numpad/numpad.component.d.ts +4 -1
  485. package/src/app/shared/material/numpad/numpad.container.d.ts +5 -2
  486. package/src/app/shared/material/numpad/numpad.content.d.ts +3 -0
  487. package/src/app/shared/material/numpad/numpad.directive.d.ts +4 -1
  488. package/src/app/shared/material/numpad/numpad.dom-service.d.ts +3 -0
  489. package/src/app/shared/material/numpad/numpad.model.d.ts +1 -1
  490. package/src/app/shared/material/numpad/numpad.module.d.ts +14 -0
  491. package/src/app/shared/material/numpad/testing/numpad.test.d.ts +13 -0
  492. package/src/app/shared/material/paginator/material.paginator-i18n.d.ts +3 -0
  493. package/src/app/shared/material/stepper/material.stepper-i18n.d.ts +3 -0
  494. package/src/app/shared/material/swipe/material.swipe.d.ts +12 -8
  495. package/src/app/shared/material/swipe/swipe.module.d.ts +13 -0
  496. package/src/app/shared/material/swipe/testing/swipe.test.d.ts +11 -9
  497. package/src/app/shared/modules.d.ts +8 -0
  498. package/src/app/shared/observables.d.ts +18 -10
  499. package/src/app/shared/pipes/arrays.pipe.d.ts +27 -2
  500. package/src/app/shared/pipes/colors.pipe.d.ts +9 -0
  501. package/src/app/shared/pipes/date-diff-duration.pipe.d.ts +10 -2
  502. package/src/app/shared/pipes/date-format.pipe.d.ts +25 -9
  503. package/src/app/shared/pipes/date-from-now.pipe.d.ts +4 -0
  504. package/src/app/shared/pipes/duration.pipe.d.ts +4 -0
  505. package/src/app/shared/pipes/file-size.pipe.d.ts +3 -0
  506. package/src/app/shared/pipes/form.pipes.d.ts +43 -3
  507. package/src/app/shared/pipes/highlight.pipe.d.ts +4 -0
  508. package/src/app/shared/pipes/latlong-format.pipe.d.ts +13 -4
  509. package/src/app/shared/pipes/maps.pipe.d.ts +10 -0
  510. package/src/app/shared/pipes/math.pipes.d.ts +10 -0
  511. package/src/app/shared/pipes/ng-init.pipe.d.ts +3 -0
  512. package/src/app/shared/pipes/number-format.pipe.d.ts +7 -1
  513. package/src/app/shared/pipes/pipes.module.d.ts +24 -0
  514. package/src/app/shared/pipes/property.pipes.d.ts +26 -0
  515. package/src/app/shared/pipes/string.pipes.d.ts +24 -0
  516. package/src/app/shared/pipes/translate-context.pipe.d.ts +8 -1
  517. package/src/app/shared/platforms.d.ts +8 -0
  518. package/src/app/shared/services/entity-service.class.d.ts +28 -15
  519. package/src/app/shared/services/job.utils.d.ts +4 -2
  520. package/src/app/shared/services/memory-entity-service.class.d.ts +31 -10
  521. package/src/app/shared/services/progress-bar.service.d.ts +15 -4
  522. package/src/app/shared/services/startable-observable-service.class.d.ts +33 -0
  523. package/src/app/shared/services/startable-service.class.d.ts +13 -9
  524. package/src/app/shared/services/storage/storage.service.d.ts +23 -0
  525. package/src/app/shared/services/storage/storage.utils.d.ts +19 -0
  526. package/src/app/shared/services/translate-context.service.d.ts +3 -0
  527. package/src/app/shared/services/validator-service.class.d.ts +2 -2
  528. package/src/app/shared/services.d.ts +9 -0
  529. package/src/app/shared/shared-routing.module.d.ts +7 -0
  530. package/src/app/shared/shared.module.d.ts +24 -0
  531. package/src/app/shared/shared.testing.module.d.ts +14 -0
  532. package/src/app/shared/testing/observable.test.d.ts +25 -0
  533. package/src/app/shared/{material/testing/material.testing.page.d.ts → testing/tests.page.d.ts} +6 -2
  534. package/src/app/shared/toast/toast.testing.d.ts +15 -0
  535. package/src/app/shared/toast/toast.testing.module.d.ts +11 -0
  536. package/src/app/shared/{toasts.d.ts → toast/toasts.d.ts} +5 -2
  537. package/src/app/shared/toolbar/modal-toolbar.d.ts +5 -2
  538. package/src/app/shared/toolbar/toolbar.d.ts +22 -10
  539. package/src/app/shared/toolbar/toolbar.module.d.ts +15 -0
  540. package/src/app/shared/types.d.ts +4 -0
  541. package/src/app/shared/upload-file/testing/upload-file.testing.d.ts +20 -0
  542. package/src/app/shared/upload-file/testing/upload-file.testing.module.d.ts +11 -0
  543. package/src/app/shared/upload-file/upload-file-popover.component.d.ts +39 -0
  544. package/src/app/shared/upload-file/upload-file.component.d.ts +48 -0
  545. package/src/app/shared/upload-file/upload-file.model.d.ts +30 -0
  546. package/src/app/shared/validator/form-error-adapter.class.d.ts +6 -1
  547. package/src/app/shared/validator/validators.d.ts +47 -11
  548. package/src/app/shared/version/versions.d.ts +2 -0
  549. package/src/app/social/job/job.module.d.ts +11 -0
  550. package/src/app/social/job/progression/job-progression.icon.d.ts +47 -0
  551. package/src/app/social/job/progression/job-progression.list.d.ts +15 -0
  552. package/src/app/social/job/progression/job-progression.model.d.ts +11 -0
  553. package/src/app/social/job/progression/job-progression.service.d.ts +34 -0
  554. package/src/app/social/job/testing/job-progression.testing.d.ts +17 -0
  555. package/src/app/social/job/testing/job-progression.testing.service.d.ts +17 -0
  556. package/src/app/social/job/testing/job.testing.module.d.ts +11 -0
  557. package/src/app/social/message/message.form.d.ts +30 -0
  558. package/src/app/social/message/message.modal.d.ts +39 -0
  559. package/src/app/social/message/message.model.d.ts +31 -0
  560. package/src/app/social/message/message.module.d.ts +11 -0
  561. package/src/app/social/message/message.service.d.ts +27 -0
  562. package/src/app/social/social.errors.d.ts +9 -0
  563. package/src/app/social/social.module.d.ts +18 -2
  564. package/src/app/social/social.testing.module.d.ts +13 -0
  565. package/src/app/social/user-event/notification/user-event-notification.icon.d.ts +29 -0
  566. package/src/app/social/user-event/notification/user-event-notification.list.d.ts +67 -0
  567. package/src/app/social/user-event/testing/user-event.testing.d.ts +34 -0
  568. package/src/app/social/user-event/testing/user-event.testing.model.d.ts +44 -0
  569. package/src/app/social/user-event/testing/user-event.testing.module.d.ts +11 -0
  570. package/src/app/social/user-event/testing/user-event.testing.service.d.ts +41 -0
  571. package/src/app/social/user-event/user-event.model.d.ts +45 -0
  572. package/src/app/social/user-event/user-event.module.d.ts +12 -0
  573. package/src/app/social/user-event/user-event.service.d.ts +124 -0
  574. package/src/assets/audio/beep-notification.mp3 +0 -0
  575. package/src/assets/i18n/en-US.json +83 -18
  576. package/src/assets/i18n/en.json +83 -18
  577. package/src/assets/i18n/fr.json +95 -21
  578. package/src/assets/manifest.json +5 -5
  579. package/src/environments/environment.class.d.ts +12 -1
  580. package/src/environments/environment.d.ts +1 -1
  581. package/src/theme/_icons.scss +1 -1
  582. package/src/theme/_ionic.globals.scss +6 -1
  583. package/src/theme/_material.globals.scss +32 -32
  584. package/src/theme/_material.scss +32 -6
  585. package/src/theme/_mixins.scss +6 -4
  586. package/src/theme/_ngx-components.globals.scss +1 -0
  587. package/src/theme/_ngx-components.scss +222 -39
  588. package/src/theme/_print.scss +24 -0
  589. package/src/theme/_responsive.scss +12 -3
  590. package/bundles/sumaris-net.ngx-components.umd.js +0 -28721
  591. package/bundles/sumaris-net.ngx-components.umd.js.map +0 -1
  592. package/bundles/sumaris-net.ngx-components.umd.min.js +0 -25
  593. package/bundles/sumaris-net.ngx-components.umd.min.js.map +0 -1
  594. package/esm2015/public_api.js +0 -183
  595. package/esm2015/src/app/admin/admin-routing.module.js +0 -32
  596. package/esm2015/src/app/admin/admin.module.js +0 -33
  597. package/esm2015/src/app/admin/services/errors.js +0 -6
  598. package/esm2015/src/app/admin/services/filter/person.filter.js +0 -59
  599. package/esm2015/src/app/admin/services/person.service.js +0 -179
  600. package/esm2015/src/app/admin/services/validator/person.validator.js +0 -37
  601. package/esm2015/src/app/admin/users/list/users.js +0 -196
  602. package/esm2015/src/app/core/about/modal-about.js +0 -63
  603. package/esm2015/src/app/core/account/account.js +0 -193
  604. package/esm2015/src/app/core/auth/form/form-auth.js +0 -126
  605. package/esm2015/src/app/core/auth/modal/modal-auth.js +0 -66
  606. package/esm2015/src/app/core/core.module.js +0 -114
  607. package/esm2015/src/app/core/form/editor.class.js +0 -559
  608. package/esm2015/src/app/core/form/entity-editor.class.js +0 -617
  609. package/esm2015/src/app/core/form/entity-metadata.component.js +0 -22
  610. package/esm2015/src/app/core/form/form-buttons-bar.component.js +0 -60
  611. package/esm2015/src/app/core/form/form.class.js +0 -279
  612. package/esm2015/src/app/core/form/form.utils.js +0 -599
  613. package/esm2015/src/app/core/form/list.form.js +0 -219
  614. package/esm2015/src/app/core/form/properties.form.js +0 -119
  615. package/esm2015/src/app/core/graphql/graphql.module.js +0 -18
  616. package/esm2015/src/app/core/graphql/graphql.service.js +0 -733
  617. package/esm2015/src/app/core/graphql/graphql.utils.js +0 -107
  618. package/esm2015/src/app/core/home/home.js +0 -263
  619. package/esm2015/src/app/core/icon/icon.component.js +0 -29
  620. package/esm2015/src/app/core/install/install-upgrade-card.component.js +0 -388
  621. package/esm2015/src/app/core/menu/menu.component.js +0 -279
  622. package/esm2015/src/app/core/menu/menu.model.js +0 -33
  623. package/esm2015/src/app/core/menu/menu.module.js +0 -28
  624. package/esm2015/src/app/core/menu/menu.service.js +0 -28
  625. package/esm2015/src/app/core/peer/select-peer.modal.js +0 -134
  626. package/esm2015/src/app/core/register/confirm/confirm.js +0 -86
  627. package/esm2015/src/app/core/register/form/form-register.js +0 -172
  628. package/esm2015/src/app/core/register/modal/modal-register.js +0 -55
  629. package/esm2015/src/app/core/services/account.service.js +0 -1101
  630. package/esm2015/src/app/core/services/auth-guard.service.js +0 -77
  631. package/esm2015/src/app/core/services/base-entity-service.class.js +0 -448
  632. package/esm2015/src/app/core/services/config/core.config.js +0 -162
  633. package/esm2015/src/app/core/services/config.service.js +0 -377
  634. package/esm2015/src/app/core/services/crypto.service.js +0 -127
  635. package/esm2015/src/app/core/services/local-settings.service.js +0 -454
  636. package/esm2015/src/app/core/services/model/account.model.js +0 -50
  637. package/esm2015/src/app/core/services/model/config.model.js +0 -89
  638. package/esm2015/src/app/core/services/model/department.model.js +0 -30
  639. package/esm2015/src/app/core/services/model/entity.decorators.js +0 -104
  640. package/esm2015/src/app/core/services/model/entity.model.js +0 -230
  641. package/esm2015/src/app/core/services/model/filter.model.js +0 -68
  642. package/esm2015/src/app/core/services/model/peer.model.js +0 -68
  643. package/esm2015/src/app/core/services/model/person.model.js +0 -81
  644. package/esm2015/src/app/core/services/model/referential.model.js +0 -149
  645. package/esm2015/src/app/core/services/model/settings.model.js +0 -75
  646. package/esm2015/src/app/core/services/network.service.js +0 -581
  647. package/esm2015/src/app/core/services/network.utils.js +0 -19
  648. package/esm2015/src/app/core/services/pipes/account.pipes.js +0 -28
  649. package/esm2015/src/app/core/services/pipes/department-to-string.pipe.js +0 -18
  650. package/esm2015/src/app/core/services/pipes/person-to-string.pipe.js +0 -18
  651. package/esm2015/src/app/core/services/pipes/usage-mode.pipes.js +0 -27
  652. package/esm2015/src/app/core/services/platform.service.js +0 -424
  653. package/esm2015/src/app/core/services/storage/entities-storage.service.js +0 -445
  654. package/esm2015/src/app/core/services/storage/entity-store.class.js +0 -458
  655. package/esm2015/src/app/core/services/validator/account.validator.js +0 -55
  656. package/esm2015/src/app/core/services/validator/base.validator.class.js +0 -48
  657. package/esm2015/src/app/core/services/validator/local-settings.validator.js +0 -72
  658. package/esm2015/src/app/core/services/validator/user-settings.validator.js +0 -30
  659. package/esm2015/src/app/core/settings/settings.page.js +0 -301
  660. package/esm2015/src/app/core/table/actions-column.component.js +0 -74
  661. package/esm2015/src/app/core/table/entities-table-datasource.class.js +0 -326
  662. package/esm2015/src/app/core/table/memory-table.class.js +0 -64
  663. package/esm2015/src/app/core/table/table-select-columns.component.js +0 -44
  664. package/esm2015/src/app/core/table/table.class.js +0 -1552
  665. package/esm2015/src/app/core/table/table.utils.js +0 -13
  666. package/esm2015/src/app/shared/alerts.js +0 -251
  667. package/esm2015/src/app/shared/audio/audio.js +0 -178
  668. package/esm2015/src/app/shared/colors.utils.js +0 -2
  669. package/esm2015/src/app/shared/constants.js +0 -6
  670. package/esm2015/src/app/shared/dates.js +0 -82
  671. package/esm2015/src/app/shared/directives/autofocus.directive.js +0 -97
  672. package/esm2015/src/app/shared/directives/directives.module.js +0 -21
  673. package/esm2015/src/app/shared/events.js +0 -56
  674. package/esm2015/src/app/shared/file/base64-image-reader.js +0 -141
  675. package/esm2015/src/app/shared/file/file.service.js +0 -121
  676. package/esm2015/src/app/shared/form/field.component.js +0 -206
  677. package/esm2015/src/app/shared/form/loading-spinner.js +0 -24
  678. package/esm2015/src/app/shared/functions.js +0 -440
  679. package/esm2015/src/app/shared/gesture/hammer.utils.js +0 -2
  680. package/esm2015/src/app/shared/graph/graph-colors.js +0 -256
  681. package/esm2015/src/app/shared/guard/component-dirty.guard.js +0 -61
  682. package/esm2015/src/app/shared/help/help.modal.js +0 -56
  683. package/esm2015/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.js +0 -20
  684. package/esm2015/src/app/shared/hotkeys/hotkeys.service.js +0 -87
  685. package/esm2015/src/app/shared/hotkeys/shared-hotkeys.module.js +0 -29
  686. package/esm2015/src/app/shared/http/http.utils.js +0 -23
  687. package/esm2015/src/app/shared/interceptors/progess.interceptor.js +0 -20
  688. package/esm2015/src/app/shared/material/autocomplete/material.autocomplete.js +0 -711
  689. package/esm2015/src/app/shared/material/autocomplete/material.autocomplete.module.js +0 -46
  690. package/esm2015/src/app/shared/material/autocomplete/testing/autocomplete.test.js +0 -167
  691. package/esm2015/src/app/shared/material/badge/badge-icon.directive.js +0 -62
  692. package/esm2015/src/app/shared/material/badge/badge-icon.module.js +0 -23
  693. package/esm2015/src/app/shared/material/badge/badge-icon.test.js +0 -10
  694. package/esm2015/src/app/shared/material/boolean/boolean.module.js +0 -41
  695. package/esm2015/src/app/shared/material/boolean/material.boolean.js +0 -234
  696. package/esm2015/src/app/shared/material/chips/chips.module.js +0 -45
  697. package/esm2015/src/app/shared/material/chips/material.chips.js +0 -342
  698. package/esm2015/src/app/shared/material/chips/testing/chips.test.js +0 -100
  699. package/esm2015/src/app/shared/material/datetime/datetime.module.js +0 -54
  700. package/esm2015/src/app/shared/material/datetime/material.date.js +0 -307
  701. package/esm2015/src/app/shared/material/datetime/material.dateshort.js +0 -315
  702. package/esm2015/src/app/shared/material/datetime/material.datetime.js +0 -389
  703. package/esm2015/src/app/shared/material/datetime/testing/mat-date-time.test.js +0 -102
  704. package/esm2015/src/app/shared/material/duration/duration.module.js +0 -40
  705. package/esm2015/src/app/shared/material/duration/material.duration.js +0 -245
  706. package/esm2015/src/app/shared/material/latlong/latlong.utils.js +0 -249
  707. package/esm2015/src/app/shared/material/latlong/material.latlong.js +0 -345
  708. package/esm2015/src/app/shared/material/latlong/material.latlong.module.js +0 -41
  709. package/esm2015/src/app/shared/material/latlong/testing/latlong.test.js +0 -70
  710. package/esm2015/src/app/shared/material/material.module.js +0 -93
  711. package/esm2015/src/app/shared/material/numpad/numpad.append-to-input.directive.js +0 -96
  712. package/esm2015/src/app/shared/material/numpad/numpad.component.js +0 -73
  713. package/esm2015/src/app/shared/material/numpad/numpad.container.js +0 -149
  714. package/esm2015/src/app/shared/material/numpad/numpad.content.js +0 -14
  715. package/esm2015/src/app/shared/material/numpad/numpad.directive.js +0 -148
  716. package/esm2015/src/app/shared/material/numpad/numpad.dom-service.js +0 -37
  717. package/esm2015/src/app/shared/material/numpad/numpad.module.js +0 -39
  718. package/esm2015/src/app/shared/material/paginator/material.paginator-i18n.js +0 -44
  719. package/esm2015/src/app/shared/material/stepper/material.stepper-i18n.js +0 -24
  720. package/esm2015/src/app/shared/material/swipe/material.swipe.js +0 -306
  721. package/esm2015/src/app/shared/material/swipe/swipe.module.js +0 -33
  722. package/esm2015/src/app/shared/material/swipe/testing/swipe.test.js +0 -68
  723. package/esm2015/src/app/shared/material/testing/material.testing.module.js +0 -92
  724. package/esm2015/src/app/shared/material/testing/material.testing.page.js +0 -34
  725. package/esm2015/src/app/shared/observables.js +0 -68
  726. package/esm2015/src/app/shared/pipes/arrays.pipe.js +0 -92
  727. package/esm2015/src/app/shared/pipes/date-diff-duration.pipe.js +0 -46
  728. package/esm2015/src/app/shared/pipes/date-format.pipe.js +0 -40
  729. package/esm2015/src/app/shared/pipes/file-size.pipe.js +0 -58
  730. package/esm2015/src/app/shared/pipes/form.pipes.js +0 -70
  731. package/esm2015/src/app/shared/pipes/highlight.pipe.js +0 -43
  732. package/esm2015/src/app/shared/pipes/latlong-format.pipe.js +0 -43
  733. package/esm2015/src/app/shared/pipes/maps.pipe.js +0 -48
  734. package/esm2015/src/app/shared/pipes/math.pipes.js +0 -44
  735. package/esm2015/src/app/shared/pipes/ng-init.pipe.js +0 -18
  736. package/esm2015/src/app/shared/pipes/number-format.pipe.js +0 -22
  737. package/esm2015/src/app/shared/pipes/pipes.module.js +0 -100
  738. package/esm2015/src/app/shared/pipes/properties.pipe.js +0 -20
  739. package/esm2015/src/app/shared/pipes/string.pipes.js +0 -52
  740. package/esm2015/src/app/shared/pipes/translate-context.pipe.js +0 -38
  741. package/esm2015/src/app/shared/services/entity-service.class.js +0 -17
  742. package/esm2015/src/app/shared/services/job.utils.js +0 -78
  743. package/esm2015/src/app/shared/services/memory-entity-service.class.js +0 -226
  744. package/esm2015/src/app/shared/services/progress-bar.service.js +0 -30
  745. package/esm2015/src/app/shared/services/startable-service.class.js +0 -95
  746. package/esm2015/src/app/shared/services/storage.utils.js +0 -41
  747. package/esm2015/src/app/shared/services/translate-context.service.js +0 -83
  748. package/esm2015/src/app/shared/services/validator-service.class.js +0 -2
  749. package/esm2015/src/app/shared/shared-routing.module.js +0 -54
  750. package/esm2015/src/app/shared/shared.module.js +0 -125
  751. package/esm2015/src/app/shared/shared.testing.module.js +0 -19
  752. package/esm2015/src/app/shared/toasts.js +0 -119
  753. package/esm2015/src/app/shared/toolbar/modal-toolbar.js +0 -53
  754. package/esm2015/src/app/shared/toolbar/toolbar.js +0 -195
  755. package/esm2015/src/app/shared/types.js +0 -2
  756. package/esm2015/src/app/shared/validator/form-error-adapter.class.js +0 -75
  757. package/esm2015/src/app/shared/validator/validators.js +0 -421
  758. package/esm2015/src/app/shared/version/versions.js +0 -77
  759. package/esm2015/src/app/social/list/user-events.table.js +0 -159
  760. package/esm2015/src/app/social/services/errors.js +0 -5
  761. package/esm2015/src/app/social/services/model/user-event.model.js +0 -46
  762. package/esm2015/src/app/social/services/social.fragments.js +0 -27
  763. package/esm2015/src/app/social/services/user-event.service.js +0 -367
  764. package/esm2015/src/app/social/social.module.js +0 -31
  765. package/esm2015/src/app/vendor.js +0 -5
  766. package/esm2015/src/environments/environment.class.js +0 -5
  767. package/esm2015/src/environments/environment.js +0 -75
  768. package/esm2015/sumaris-net.ngx-components.js +0 -17
  769. package/fesm2015/sumaris-net.ngx-components.js +0 -24434
  770. package/fesm2015/sumaris-net.ngx-components.js.map +0 -1
  771. package/src/app/admin/services/errors.d.ts +0 -5
  772. package/src/app/admin/users/list/users.d.ts +0 -49
  773. package/src/app/core/auth/form/form-auth.d.ts +0 -33
  774. package/src/app/core/auth/modal/modal-auth.d.ts +0 -14
  775. package/src/app/core/form/entity-metadata.component.d.ts +0 -10
  776. package/src/app/core/form/properties.form.d.ts +0 -40
  777. package/src/app/shared/colors.utils.d.ts +0 -3
  778. package/src/app/shared/file/base64-image-reader.d.ts +0 -18
  779. package/src/app/shared/material/badge/badge-icon.directive.d.ts +0 -15
  780. package/src/app/shared/material/badge/badge-icon.module.d.ts +0 -2
  781. package/src/app/shared/material/badge/badge-icon.test.d.ts +0 -2
  782. package/src/app/shared/material/testing/material.testing.module.d.ts +0 -2
  783. package/src/app/shared/pipes/properties.pipe.d.ts +0 -7
  784. package/src/app/shared/services/storage.utils.d.ts +0 -13
  785. package/src/app/social/list/user-events.table.d.ts +0 -59
  786. package/src/app/social/services/errors.d.ts +0 -4
  787. package/src/app/social/services/model/user-event.model.d.ts +0 -29
  788. package/src/app/social/services/social.fragments.d.ts +0 -4
  789. package/src/app/social/services/user-event.service.d.ts +0 -82
  790. package/src/app/vendor.d.ts +0 -4
  791. package/src/assets/manifest.sumaris.json +0 -17
  792. package/sumaris-net.ngx-components.d.ts +0 -16
  793. package/sumaris-net.ngx-components.metadata.json +0 -1
@@ -1,97 +0,0 @@
1
- // Import the core angular services.
2
- import { Directive, ElementRef, Optional } from '@angular/core';
3
- import { Platform } from '@ionic/angular';
4
- import { Keyboard } from '@ionic-native/keyboard/ngx';
5
- // ----------------------------------------------------------------------------------- //
6
- // ----------------------------------------------------------------------------------- //
7
- const BASE_TIMER_DELAY = 100;
8
- export class AutofocusDirective {
9
- // I initialize the autofocus directive.
10
- constructor(elementRef, platform, keyboard) {
11
- this.keyboard = keyboard;
12
- this.timer = null;
13
- this.elementRef = elementRef;
14
- this.shouldFocusElement = '';
15
- this.timer = null;
16
- this.timerDelay = BASE_TIMER_DELAY;
17
- platform.ready().then(() => {
18
- this.touchUi = platform.is('mobile') || platform.is('tablet');
19
- });
20
- }
21
- // ---
22
- // PUBLIC METHODS.
23
- // ---
24
- // I get called once after the contents have been fully initialized.
25
- ngAfterContentInit() {
26
- // Because this directive can act on the stand-only "autofocus" attribute or
27
- // the more specialized "appAutofocus" property, we need to check to see if the
28
- // "shouldFocusElement" input property is the empty string. This will signify
29
- // that the focus it not being data-driven and should be performed automatically.
30
- if (this.shouldFocusElement === '') {
31
- this.startFocusWorkflow();
32
- }
33
- }
34
- // I get called every time the input bindings are updated.
35
- ngOnChanges(changes) {
36
- // If the timer delay is being passed-in as a string (ie, someone is using
37
- // attribute-input syntax, not property-input syntax), let's coalesce the
38
- // attribute to a numeric value so that our type-annotations are consistent.
39
- if (changes.timerDelay && (typeof (this.timerDelay) !== 'number')) {
40
- // If the coalesce fails, just fall-back to a sane value.
41
- if (isNaN(this.timerDelay = +this.timerDelay)) {
42
- this.timerDelay = BASE_TIMER_DELAY;
43
- }
44
- }
45
- // If the focus input is being data-driven, then we either need to start the
46
- // focus workflow if focus is required; or, clear any existing workflow if focus
47
- // is no longer required (so that we don't steal focus from another element).
48
- if (changes.shouldFocusElement) {
49
- (this.shouldFocusElement)
50
- ? this.startFocusWorkflow()
51
- : this.stopFocusWorkflow();
52
- }
53
- }
54
- // I get called once when the directive is being unmounted.
55
- ngOnDestroy() {
56
- this.stopFocusWorkflow();
57
- }
58
- // ---
59
- // PRIVATE METHODS.
60
- // ---
61
- // I start the timer-based workflow that will focus the current element.
62
- startFocusWorkflow() {
63
- // if touch UI: do NOT focus when keyboard hide
64
- if (this.touchUi && this.keyboard && this.keyboard.isVisible === false)
65
- return;
66
- // If there is already a timer running for this element, just let it play out -
67
- // resetting it at this point will only push-out the time at which the focus is
68
- // applied to the element.
69
- if (this.timer) {
70
- return;
71
- }
72
- this.timer = setTimeout(() => {
73
- this.timer = null;
74
- this.elementRef.nativeElement.focus();
75
- }, this.timerDelay);
76
- }
77
- // I stop the timer-based workflow, preventing focus from taking place.
78
- stopFocusWorkflow() {
79
- clearTimeout(this.timer);
80
- this.timer = null;
81
- }
82
- }
83
- AutofocusDirective.decorators = [
84
- { type: Directive, args: [{
85
- selector: '[autofocus], input[appAutofocus]',
86
- inputs: [
87
- 'shouldFocusElement: appAutofocus',
88
- 'timerDelay: autofocusDelay'
89
- ]
90
- },] }
91
- ];
92
- AutofocusDirective.ctorParameters = () => [
93
- { type: ElementRef },
94
- { type: Platform },
95
- { type: Keyboard, decorators: [{ type: Optional }] }
96
- ];
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2ZvY3VzLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL2RpcmVjdGl2ZXMvYXV0b2ZvY3VzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0M7QUFDcEMsT0FBTyxFQUFtQixTQUFTLEVBQUUsVUFBVSxFQUF3QixRQUFRLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQ3JILE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFHcEQseUZBQXlGO0FBQ3pGLHlGQUF5RjtBQUV6RixNQUFNLGdCQUFnQixHQUFHLEdBQUcsQ0FBQztBQVM3QixNQUFNLE9BQU8sa0JBQWtCO0lBUzdCLHdDQUF3QztJQUN4QyxZQUNFLFVBQXNCLEVBQ3RCLFFBQWtCLEVBQ0ksUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQVBsQyxVQUFLLEdBQVksSUFBSSxDQUFDO1FBUzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBRTdCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQztRQUVuQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUN6QixJQUFJLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNO0lBQ04sa0JBQWtCO0lBQ2xCLE1BQU07SUFFTixvRUFBb0U7SUFDN0Qsa0JBQWtCO1FBRXZCLDRFQUE0RTtRQUM1RSwrRUFBK0U7UUFDL0UsNkVBQTZFO1FBQzdFLGlGQUFpRjtRQUNqRixJQUFLLElBQUksQ0FBQyxrQkFBa0IsS0FBSyxFQUFFLEVBQUc7WUFFcEMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7U0FFM0I7SUFFSCxDQUFDO0lBR0QsMERBQTBEO0lBQ25ELFdBQVcsQ0FBRSxPQUFzQjtRQUV4QywwRUFBMEU7UUFDMUUseUVBQXlFO1FBQ3pFLDRFQUE0RTtRQUM1RSxJQUFLLE9BQU8sQ0FBQyxVQUFVLElBQUksQ0FBRSxPQUFNLENBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBRSxLQUFLLFFBQVEsQ0FBRSxFQUFHO1lBRXRFLHlEQUF5RDtZQUN6RCxJQUFLLEtBQUssQ0FBRSxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBRSxFQUFHO2dCQUVqRCxJQUFJLENBQUMsVUFBVSxHQUFHLGdCQUFnQixDQUFDO2FBRXBDO1NBRUY7UUFFRCw0RUFBNEU7UUFDNUUsZ0ZBQWdGO1FBQ2hGLDZFQUE2RTtRQUM3RSxJQUFLLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRztZQUVoQyxDQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBRTtnQkFDekIsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtnQkFDM0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUMzQjtTQUVGO0lBRUgsQ0FBQztJQUdELDJEQUEyRDtJQUNwRCxXQUFXO1FBRWhCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBRTNCLENBQUM7SUFFRCxNQUFNO0lBQ04sbUJBQW1CO0lBQ25CLE1BQU07SUFFTix3RUFBd0U7SUFDaEUsa0JBQWtCO1FBRXhCLCtDQUErQztRQUMvQyxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsS0FBSyxLQUFLO1lBQUUsT0FBTztRQUUvRSwrRUFBK0U7UUFDL0UsK0VBQStFO1FBQy9FLDBCQUEwQjtRQUMxQixJQUFLLElBQUksQ0FBQyxLQUFLLEVBQUc7WUFFaEIsT0FBTztTQUVSO1FBRUQsSUFBSSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQ3JCLEdBQUcsRUFBRTtZQUNILElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3hDLENBQUMsRUFDRCxJQUFJLENBQUMsVUFBVSxDQUNoQixDQUFDO0lBRUosQ0FBQztJQUdELHVFQUF1RTtJQUMvRCxpQkFBaUI7UUFFdkIsWUFBWSxDQUFFLElBQUksQ0FBQyxLQUFLLENBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztJQUVwQixDQUFDOzs7WUFoSUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxrQ0FBa0M7Z0JBQzVDLE1BQU0sRUFBRTtvQkFDTixrQ0FBa0M7b0JBQ2xDLDRCQUE0QjtpQkFDN0I7YUFDRjs7O1lBaEJvQyxVQUFVO1lBQ3ZDLFFBQVE7WUFDUixRQUFRLHVCQTRCWCxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLy8gSW1wb3J0IHRoZSBjb3JlIGFuZ3VsYXIgc2VydmljZXMuXG5pbXBvcnQge0FmdGVyQ29udGVudEluaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9wdGlvbmFsLCBTaW1wbGVDaGFuZ2VzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UGxhdGZvcm19IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7S2V5Ym9hcmR9IGZyb20gJ0Bpb25pYy1uYXRpdmUva2V5Ym9hcmQvbmd4JztcbmltcG9ydCBUaW1lb3V0ID0gTm9kZUpTLlRpbWVvdXQ7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIC8vXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAvL1xuXG5jb25zdCBCQVNFX1RJTUVSX0RFTEFZID0gMTAwO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYXV0b2ZvY3VzXSwgaW5wdXRbYXBwQXV0b2ZvY3VzXScsXG4gIGlucHV0czogW1xuICAgICdzaG91bGRGb2N1c0VsZW1lbnQ6IGFwcEF1dG9mb2N1cycsXG4gICAgJ3RpbWVyRGVsYXk6IGF1dG9mb2N1c0RlbGF5J1xuICBdXG59KVxuZXhwb3J0IGNsYXNzIEF1dG9mb2N1c0RpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcblxuICBwdWJsaWMgc2hvdWxkRm9jdXNFbGVtZW50OiBhbnk7XG4gIHB1YmxpYyB0aW1lckRlbGF5OiBudW1iZXI7XG5cbiAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmO1xuICBwcml2YXRlIHRpbWVyOiBUaW1lb3V0ID0gbnVsbDtcbiAgcHJpdmF0ZSB0b3VjaFVpOiBib29sZWFuO1xuXG4gIC8vIEkgaW5pdGlhbGl6ZSB0aGUgYXV0b2ZvY3VzIGRpcmVjdGl2ZS5cbiAgY29uc3RydWN0b3IoXG4gICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwbGF0Zm9ybTogUGxhdGZvcm0sXG4gICAgQE9wdGlvbmFsKCkgcHJvdGVjdGVkIGtleWJvYXJkOiBLZXlib2FyZCApIHtcblxuICAgIHRoaXMuZWxlbWVudFJlZiA9IGVsZW1lbnRSZWY7XG5cbiAgICB0aGlzLnNob3VsZEZvY3VzRWxlbWVudCA9ICcnO1xuICAgIHRoaXMudGltZXIgPSBudWxsO1xuICAgIHRoaXMudGltZXJEZWxheSA9IEJBU0VfVElNRVJfREVMQVk7XG5cbiAgICBwbGF0Zm9ybS5yZWFkeSgpLnRoZW4oKCkgPT4ge1xuICAgICAgdGhpcy50b3VjaFVpID0gcGxhdGZvcm0uaXMoJ21vYmlsZScpIHx8IHBsYXRmb3JtLmlzKCd0YWJsZXQnKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIC0tLVxuICAvLyBQVUJMSUMgTUVUSE9EUy5cbiAgLy8gLS0tXG5cbiAgLy8gSSBnZXQgY2FsbGVkIG9uY2UgYWZ0ZXIgdGhlIGNvbnRlbnRzIGhhdmUgYmVlbiBmdWxseSBpbml0aWFsaXplZC5cbiAgcHVibGljIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcblxuICAgIC8vIEJlY2F1c2UgdGhpcyBkaXJlY3RpdmUgY2FuIGFjdCBvbiB0aGUgc3RhbmQtb25seSBcImF1dG9mb2N1c1wiIGF0dHJpYnV0ZSBvclxuICAgIC8vIHRoZSBtb3JlIHNwZWNpYWxpemVkIFwiYXBwQXV0b2ZvY3VzXCIgcHJvcGVydHksIHdlIG5lZWQgdG8gY2hlY2sgdG8gc2VlIGlmIHRoZVxuICAgIC8vIFwic2hvdWxkRm9jdXNFbGVtZW50XCIgaW5wdXQgcHJvcGVydHkgaXMgdGhlIGVtcHR5IHN0cmluZy4gVGhpcyB3aWxsIHNpZ25pZnlcbiAgICAvLyB0aGF0IHRoZSBmb2N1cyBpdCBub3QgYmVpbmcgZGF0YS1kcml2ZW4gYW5kIHNob3VsZCBiZSBwZXJmb3JtZWQgYXV0b21hdGljYWxseS5cbiAgICBpZiAoIHRoaXMuc2hvdWxkRm9jdXNFbGVtZW50ID09PSAnJyApIHtcblxuICAgICAgdGhpcy5zdGFydEZvY3VzV29ya2Zsb3coKTtcblxuICAgIH1cblxuICB9XG5cblxuICAvLyBJIGdldCBjYWxsZWQgZXZlcnkgdGltZSB0aGUgaW5wdXQgYmluZGluZ3MgYXJlIHVwZGF0ZWQuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyggY2hhbmdlczogU2ltcGxlQ2hhbmdlcyApIHtcblxuICAgIC8vIElmIHRoZSB0aW1lciBkZWxheSBpcyBiZWluZyBwYXNzZWQtaW4gYXMgYSBzdHJpbmcgKGllLCBzb21lb25lIGlzIHVzaW5nXG4gICAgLy8gYXR0cmlidXRlLWlucHV0IHN5bnRheCwgbm90IHByb3BlcnR5LWlucHV0IHN5bnRheCksIGxldCdzIGNvYWxlc2NlIHRoZVxuICAgIC8vIGF0dHJpYnV0ZSB0byBhIG51bWVyaWMgdmFsdWUgc28gdGhhdCBvdXIgdHlwZS1hbm5vdGF0aW9ucyBhcmUgY29uc2lzdGVudC5cbiAgICBpZiAoIGNoYW5nZXMudGltZXJEZWxheSAmJiAoIHR5cGVvZiggdGhpcy50aW1lckRlbGF5ICkgIT09ICdudW1iZXInICkgKSB7XG5cbiAgICAgIC8vIElmIHRoZSBjb2FsZXNjZSBmYWlscywganVzdCBmYWxsLWJhY2sgdG8gYSBzYW5lIHZhbHVlLlxuICAgICAgaWYgKCBpc05hTiggdGhpcy50aW1lckRlbGF5ID0gK3RoaXMudGltZXJEZWxheSApICkge1xuXG4gICAgICAgIHRoaXMudGltZXJEZWxheSA9IEJBU0VfVElNRVJfREVMQVk7XG5cbiAgICAgIH1cblxuICAgIH1cblxuICAgIC8vIElmIHRoZSBmb2N1cyBpbnB1dCBpcyBiZWluZyBkYXRhLWRyaXZlbiwgdGhlbiB3ZSBlaXRoZXIgbmVlZCB0byBzdGFydCB0aGVcbiAgICAvLyBmb2N1cyB3b3JrZmxvdyBpZiBmb2N1cyBpcyByZXF1aXJlZDsgb3IsIGNsZWFyIGFueSBleGlzdGluZyB3b3JrZmxvdyBpZiBmb2N1c1xuICAgIC8vIGlzIG5vIGxvbmdlciByZXF1aXJlZCAoc28gdGhhdCB3ZSBkb24ndCBzdGVhbCBmb2N1cyBmcm9tIGFub3RoZXIgZWxlbWVudCkuXG4gICAgaWYgKCBjaGFuZ2VzLnNob3VsZEZvY3VzRWxlbWVudCApIHtcblxuICAgICAgKCB0aGlzLnNob3VsZEZvY3VzRWxlbWVudCApXG4gICAgICAgID8gdGhpcy5zdGFydEZvY3VzV29ya2Zsb3coKVxuICAgICAgICA6IHRoaXMuc3RvcEZvY3VzV29ya2Zsb3coKVxuICAgICAgO1xuXG4gICAgfVxuXG4gIH1cblxuXG4gIC8vIEkgZ2V0IGNhbGxlZCBvbmNlIHdoZW4gdGhlIGRpcmVjdGl2ZSBpcyBiZWluZyB1bm1vdW50ZWQuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcblxuICAgIHRoaXMuc3RvcEZvY3VzV29ya2Zsb3coKTtcblxuICB9XG5cbiAgLy8gLS0tXG4gIC8vIFBSSVZBVEUgTUVUSE9EUy5cbiAgLy8gLS0tXG5cbiAgLy8gSSBzdGFydCB0aGUgdGltZXItYmFzZWQgd29ya2Zsb3cgdGhhdCB3aWxsIGZvY3VzIHRoZSBjdXJyZW50IGVsZW1lbnQuXG4gIHByaXZhdGUgc3RhcnRGb2N1c1dvcmtmbG93KCkge1xuXG4gICAgLy8gaWYgdG91Y2ggVUk6IGRvIE5PVCBmb2N1cyB3aGVuIGtleWJvYXJkIGhpZGVcbiAgICBpZiAodGhpcy50b3VjaFVpICYmIHRoaXMua2V5Ym9hcmQgJiYgdGhpcy5rZXlib2FyZC5pc1Zpc2libGUgPT09IGZhbHNlKSByZXR1cm47XG5cbiAgICAvLyBJZiB0aGVyZSBpcyBhbHJlYWR5IGEgdGltZXIgcnVubmluZyBmb3IgdGhpcyBlbGVtZW50LCBqdXN0IGxldCBpdCBwbGF5IG91dCAtXG4gICAgLy8gcmVzZXR0aW5nIGl0IGF0IHRoaXMgcG9pbnQgd2lsbCBvbmx5IHB1c2gtb3V0IHRoZSB0aW1lIGF0IHdoaWNoIHRoZSBmb2N1cyBpc1xuICAgIC8vIGFwcGxpZWQgdG8gdGhlIGVsZW1lbnQuXG4gICAgaWYgKCB0aGlzLnRpbWVyICkge1xuXG4gICAgICByZXR1cm47XG5cbiAgICB9XG5cbiAgICB0aGlzLnRpbWVyID0gc2V0VGltZW91dChcbiAgICAgICgpID0+IHtcbiAgICAgICAgdGhpcy50aW1lciA9IG51bGw7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICB9LFxuICAgICAgdGhpcy50aW1lckRlbGF5XG4gICAgKTtcblxuICB9XG5cblxuICAvLyBJIHN0b3AgdGhlIHRpbWVyLWJhc2VkIHdvcmtmbG93LCBwcmV2ZW50aW5nIGZvY3VzIGZyb20gdGFraW5nIHBsYWNlLlxuICBwcml2YXRlIHN0b3BGb2N1c1dvcmtmbG93KCkge1xuXG4gICAgY2xlYXJUaW1lb3V0KCB0aGlzLnRpbWVyICk7XG4gICAgdGhpcy50aW1lciA9IG51bGw7XG5cbiAgfVxuXG59XG4iXX0=
@@ -1,21 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { IonicModule } from '@ionic/angular';
4
- import { AutofocusDirective } from './autofocus.directive';
5
- export class SharedDirectivesModule {
6
- }
7
- SharedDirectivesModule.decorators = [
8
- { type: NgModule, args: [{
9
- imports: [
10
- CommonModule,
11
- IonicModule
12
- ],
13
- declarations: [
14
- AutofocusDirective
15
- ],
16
- exports: [
17
- AutofocusDirective
18
- ]
19
- },] }
20
- ];
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aXZlcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9kaXJlY3RpdmVzL2RpcmVjdGl2ZXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQWV6RCxNQUFNLE9BQU8sc0JBQXNCOzs7WUFabEMsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUNaLFdBQVc7aUJBQ1o7Z0JBQ0QsWUFBWSxFQUFFO29CQUNaLGtCQUFrQjtpQkFDbkI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLGtCQUFrQjtpQkFDbkI7YUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0lvbmljTW9kdWxlfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQge0F1dG9mb2N1c0RpcmVjdGl2ZX0gZnJvbSAnLi9hdXRvZm9jdXMuZGlyZWN0aXZlJztcblxuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIElvbmljTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEF1dG9mb2N1c0RpcmVjdGl2ZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgQXV0b2ZvY3VzRGlyZWN0aXZlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgU2hhcmVkRGlyZWN0aXZlc01vZHVsZSB7XG59XG4iXX0=
@@ -1,56 +0,0 @@
1
- import { EventEmitter } from '@angular/core';
2
- import { fromEvent } from 'rxjs';
3
- import { filter } from 'rxjs/operators';
4
- export function createPromiseEventEmitter() {
5
- return new EventEmitter(true);
6
- }
7
- export function createPromiseEvent(eventType, promise, initArg) {
8
- const detail = Object.assign(Object.assign({}, (initArg && initArg.detail || {})), promise);
9
- return new CustomEvent(eventType, { detail });
10
- }
11
- export function emitPromiseEvent(emitter, eventType, initArg) {
12
- return new Promise((resolve, reject) => {
13
- const event = createPromiseEvent(eventType, {
14
- success: resolve,
15
- error: reject
16
- }, initArg);
17
- emitter.emit(event);
18
- });
19
- }
20
- /**
21
- * Listen end of scroll.
22
- * <p>
23
- * The threshold distance from the bottom of the content to call the infinite output event when scrolled.
24
- * The threshold value can be either a percent, or in pixels.
25
- * For example, use the value of 10% for the infinite output event to get called when the user has scrolled
26
- * 10% from the bottom of the page. Use the value 100px when the scroll is within 100 pixels from the bottom of the page.
27
- * </p>
28
- * @param element
29
- * @param threshold default to '15%'
30
- */
31
- export function fromScrollEndEvent(element, threshold) {
32
- threshold = threshold || '15%';
33
- let isEnd;
34
- // Listen using percentage
35
- if (threshold.endsWith('%')) {
36
- const thresholdRatio = parseInt(threshold.slice(0, threshold.length - 1)) / 100;
37
- isEnd = () => {
38
- const endPosRatio = 1 - (element.scrollTop + element.offsetHeight) / element.scrollHeight;
39
- return endPosRatio < thresholdRatio;
40
- };
41
- }
42
- // Listen using pixels
43
- else if (threshold.endsWith('px')) {
44
- const thresholdPx = parseInt(threshold.slice(0, threshold.length - 2));
45
- isEnd = () => {
46
- const endPosPx = element.scrollHeight - (element.scrollTop + element.offsetHeight);
47
- return endPosPx < thresholdPx;
48
- };
49
- }
50
- else {
51
- throw new Error('Invalid argument \'threshold\'. Expected value unit: \'px\' or \'%\' ');
52
- }
53
- return fromEvent(element, 'scroll')
54
- .pipe(filter(() => isEnd()));
55
- }
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvZXZlbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFDLFNBQVMsRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFTdEMsTUFBTSxVQUFVLHlCQUF5QjtJQUN2QyxPQUFPLElBQUksWUFBWSxDQUFxQixJQUFJLENBQUMsQ0FBQztBQUNwRCxDQUFDO0FBRUQsTUFBTSxVQUFVLGtCQUFrQixDQUFxQixTQUFpQixFQUNsQixPQUErQixFQUMvQixPQUE0QjtJQUdoRixNQUFNLE1BQU0sR0FBRyxnQ0FDVixDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxHQUNqQyxPQUFPLENBQ1gsQ0FBQztJQUNGLE9BQU8sSUFBSSxXQUFXLENBQTZCLFNBQVMsRUFBRSxFQUFDLE1BQU0sRUFBQyxDQUFDLENBQUM7QUFDMUUsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBb0IsT0FBeUMsRUFDMUMsU0FBaUIsRUFDakIsT0FBNEI7SUFDN0UsT0FBTyxJQUFJLE9BQU8sQ0FBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUN4QyxNQUFNLEtBQUssR0FBRyxrQkFBa0IsQ0FBQyxTQUFTLEVBQUU7WUFDMUMsT0FBTyxFQUFFLE9BQU87WUFDaEIsS0FBSyxFQUFFLE1BQU07U0FDZCxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ1osT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFNRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUFDLE9BQW9CLEVBQUUsU0FBa0I7SUFFekUsU0FBUyxHQUFHLFNBQVMsSUFBSSxLQUFLLENBQUM7SUFDL0IsSUFBSSxLQUFvQixDQUFDO0lBRXpCLDBCQUEwQjtJQUMxQixJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDM0IsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7UUFDaEYsS0FBSyxHQUFHLEdBQUcsRUFBRTtZQUNYLE1BQU0sV0FBVyxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUM7WUFDMUYsT0FBTyxXQUFXLEdBQUcsY0FBYyxDQUFDO1FBQ3RDLENBQUMsQ0FBQztLQUNIO0lBRUQsc0JBQXNCO1NBQ2pCLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUNqQyxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLEtBQUssR0FBRyxHQUFHLEVBQUU7WUFDWCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsWUFBWSxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDbkYsT0FBTyxRQUFRLEdBQUcsV0FBVyxDQUFDO1FBQ2hDLENBQUMsQ0FBQztLQUNIO1NBQ0k7UUFDSCxNQUFNLElBQUksS0FBSyxDQUFDLHVFQUF1RSxDQUFDLENBQUE7S0FDekY7SUFFRCxPQUFPLFNBQVMsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDO1NBQ2hDLElBQUksQ0FDSCxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FDdEIsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0V2ZW50RW1pdHRlcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2Zyb21FdmVudCwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2ZpbHRlcn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb21pc2VFdmVudFBheWxvYWQ8VCA9IGFueT4ge1xuICBzdWNjZXNzOiAoVCkgPT4gdm9pZDtcbiAgZXJyb3I6IChlcnI6IGFueSkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IHR5cGUgUHJvbWlzZUV2ZW50PFQgPSBhbnksIEQgPSB2b2lkPiA9IEN1c3RvbUV2ZW50PFByb21pc2VFdmVudFBheWxvYWQ8VD4gJiBEPjtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVByb21pc2VFdmVudEVtaXR0ZXI8VCA9IGFueSwgRCA9IHZvaWQ+KCk6IEV2ZW50RW1pdHRlcjxQcm9taXNlRXZlbnQ8VCwgRD4+IHtcbiAgcmV0dXJuIG5ldyBFdmVudEVtaXR0ZXI8UHJvbWlzZUV2ZW50PFQsIEQ+Pih0cnVlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVByb21pc2VFdmVudDxUID0gdm9pZCwgRCA9IHZvaWQ+KGV2ZW50VHlwZTogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvbWlzZTogUHJvbWlzZUV2ZW50UGF5bG9hZDxUPixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRBcmc/OiBDdXN0b21FdmVudEluaXQ8RD5cbiAgKTogUHJvbWlzZUV2ZW50PFQsIEQ+IHtcblxuICBjb25zdCBkZXRhaWwgPSA8UHJvbWlzZUV2ZW50UGF5bG9hZCAmIEQ+e1xuICAgIC4uLihpbml0QXJnICYmIGluaXRBcmcuZGV0YWlsIHx8IHt9KSxcbiAgICAuLi5wcm9taXNlXG4gIH07XG4gIHJldHVybiBuZXcgQ3VzdG9tRXZlbnQ8UHJvbWlzZUV2ZW50UGF5bG9hZDxUPiAmIEQ+KGV2ZW50VHlwZSwge2RldGFpbH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW1pdFByb21pc2VFdmVudDxUID0gYW55LCBEID0gdm9pZD4oZW1pdHRlcjogRXZlbnRFbWl0dGVyPFByb21pc2VFdmVudDxULCBEPj4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudFR5cGU6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRBcmc/OiBDdXN0b21FdmVudEluaXQ8RD4pOiBQcm9taXNlPFQ+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlPFQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCBldmVudCA9IGNyZWF0ZVByb21pc2VFdmVudChldmVudFR5cGUsIHtcbiAgICAgIHN1Y2Nlc3M6IHJlc29sdmUsXG4gICAgICBlcnJvcjogcmVqZWN0XG4gICAgfSwgaW5pdEFyZyk7XG4gICAgZW1pdHRlci5lbWl0KGV2ZW50KTtcbiAgfSk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcGxldGFibGVFdmVudCBleHRlbmRzIEV2ZW50IHtcbiAgdGFyZ2V0OiBFdmVudFRhcmdldCAmIHsgY29tcGxldGU/OiAoKSA9PiB2b2lkIH07XG59XG5cbi8qKlxuICogTGlzdGVuIGVuZCBvZiBzY3JvbGwuXG4gKiA8cD5cbiAqICAgVGhlIHRocmVzaG9sZCBkaXN0YW5jZSBmcm9tIHRoZSBib3R0b20gb2YgdGhlIGNvbnRlbnQgdG8gY2FsbCB0aGUgaW5maW5pdGUgb3V0cHV0IGV2ZW50IHdoZW4gc2Nyb2xsZWQuXG4gKiAgIFRoZSB0aHJlc2hvbGQgdmFsdWUgY2FuIGJlIGVpdGhlciBhIHBlcmNlbnQsIG9yIGluIHBpeGVscy5cbiAqICAgRm9yIGV4YW1wbGUsIHVzZSB0aGUgdmFsdWUgb2YgMTAlIGZvciB0aGUgaW5maW5pdGUgb3V0cHV0IGV2ZW50IHRvIGdldCBjYWxsZWQgd2hlbiB0aGUgdXNlciBoYXMgc2Nyb2xsZWRcbiAqICAgMTAlIGZyb20gdGhlIGJvdHRvbSBvZiB0aGUgcGFnZS4gVXNlIHRoZSB2YWx1ZSAxMDBweCB3aGVuIHRoZSBzY3JvbGwgaXMgd2l0aGluIDEwMCBwaXhlbHMgZnJvbSB0aGUgYm90dG9tIG9mIHRoZSBwYWdlLlxuICogPC9wPlxuICogQHBhcmFtIGVsZW1lbnRcbiAqIEBwYXJhbSB0aHJlc2hvbGQgZGVmYXVsdCB0byAnMTUlJ1xuICovXG5leHBvcnQgZnVuY3Rpb24gZnJvbVNjcm9sbEVuZEV2ZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCB0aHJlc2hvbGQ/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuXG4gIHRocmVzaG9sZCA9IHRocmVzaG9sZCB8fCAnMTUlJztcbiAgbGV0IGlzRW5kOiAoKSA9PiBib29sZWFuO1xuXG4gIC8vIExpc3RlbiB1c2luZyBwZXJjZW50YWdlXG4gIGlmICh0aHJlc2hvbGQuZW5kc1dpdGgoJyUnKSkge1xuICAgIGNvbnN0IHRocmVzaG9sZFJhdGlvID0gcGFyc2VJbnQodGhyZXNob2xkLnNsaWNlKDAsIHRocmVzaG9sZC5sZW5ndGggLSAxKSkgLyAxMDA7XG4gICAgaXNFbmQgPSAoKSA9PiB7XG4gICAgICBjb25zdCBlbmRQb3NSYXRpbyA9IDEgLSAoZWxlbWVudC5zY3JvbGxUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCkgLyBlbGVtZW50LnNjcm9sbEhlaWdodDtcbiAgICAgIHJldHVybiBlbmRQb3NSYXRpbyA8IHRocmVzaG9sZFJhdGlvO1xuICAgIH07XG4gIH1cblxuICAvLyBMaXN0ZW4gdXNpbmcgcGl4ZWxzXG4gIGVsc2UgaWYgKHRocmVzaG9sZC5lbmRzV2l0aCgncHgnKSkge1xuICAgIGNvbnN0IHRocmVzaG9sZFB4ID0gcGFyc2VJbnQodGhyZXNob2xkLnNsaWNlKDAsIHRocmVzaG9sZC5sZW5ndGggLSAyKSk7XG4gICAgaXNFbmQgPSAoKSA9PiB7XG4gICAgICBjb25zdCBlbmRQb3NQeCA9IGVsZW1lbnQuc2Nyb2xsSGVpZ2h0IC0gKGVsZW1lbnQuc2Nyb2xsVG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQpO1xuICAgICAgcmV0dXJuIGVuZFBvc1B4IDwgdGhyZXNob2xkUHg7XG4gICAgfTtcbiAgfVxuICBlbHNlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgYXJndW1lbnQgXFwndGhyZXNob2xkXFwnLiBFeHBlY3RlZCB2YWx1ZSB1bml0OiBcXCdweFxcJyBvciBcXCclXFwnICcpXG4gIH1cblxuICByZXR1cm4gZnJvbUV2ZW50KGVsZW1lbnQsICdzY3JvbGwnKVxuICAgIC5waXBlKFxuICAgICAgZmlsdGVyKCgpID0+IGlzRW5kKCkpXG4gICAgKTtcbn1cbiJdfQ==
@@ -1,141 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { isNilOrBlank } from '../functions';
3
- export const IMAGE_DEFAULTS = {
4
- MAX_HEIGHT: 480,
5
- MAX_WIDTH: 640,
6
- THUMB_MAX_HEIGHT: 200,
7
- THUMB_MAX_WIDTH: 200
8
- };
9
- export class Base64ImageReader {
10
- constructor() {
11
- }
12
- readFromBlob(file) {
13
- return __awaiter(this, void 0, void 0, function* () {
14
- if (!file)
15
- throw new Error('Illegal argument: missing file');
16
- const dataUrl = yield new Promise((resolve, reject) => {
17
- const reader = new FileReader();
18
- reader.addEventListener('load', (event) => resolve(reader.result), false);
19
- reader.readAsDataURL(file);
20
- });
21
- return dataUrl;
22
- });
23
- }
24
- readAndResizeFromUrl(path, opts) {
25
- return __awaiter(this, void 0, void 0, function* () {
26
- if (isNilOrBlank(path))
27
- throw new Error('Illegal argument: missing path');
28
- // Create the temporary image element
29
- const img = document.createElement('img');
30
- // Need to avoid CORS error
31
- // (see https://stackoverflow.com/questions/22710627/tainted-canvases-may-not-be-exported)
32
- img.crossOrigin = 'anonymous';
33
- try {
34
- return yield new Promise((resolve, reject) => {
35
- img.addEventListener('load', this.createImageOnLoadResizeFn(resolve, reject, opts), false);
36
- img.addEventListener('error', reject);
37
- img.src = path;
38
- });
39
- }
40
- catch (err) {
41
- throw new Error(`Failed to load and resize image {${path}}`);
42
- }
43
- finally {
44
- img.remove();
45
- }
46
- });
47
- }
48
- readAndResizeFromBlob(file, opts) {
49
- return __awaiter(this, void 0, void 0, function* () {
50
- if (!file)
51
- throw new Error('Illegal argument: missing file');
52
- // Create the temporary image element
53
- const img = document.createElement('img');
54
- // Need to avoid CORS error
55
- // (see https://stackoverflow.com/questions/22710627/tainted-canvases-may-not-be-exported)
56
- img.crossOrigin = 'anonymous';
57
- try {
58
- return yield new Promise((resolve, reject) => {
59
- const reader = new FileReader();
60
- reader.addEventListener('load', (event) => {
61
- // Resize image
62
- img.onload = this.createImageOnLoadResizeFn(resolve, reject, opts);
63
- img.src = reader.result;
64
- }, false);
65
- reader.readAsDataURL(file);
66
- });
67
- }
68
- finally {
69
- img.remove();
70
- }
71
- });
72
- }
73
- /* -- protected methods -- */
74
- createImageOnLoadResizeFn(resolve, reject, opts) {
75
- return function (event) {
76
- const maxWidth = (opts && opts.thumbnail ? IMAGE_DEFAULTS.THUMB_MAX_WIDTH : (opts && opts.maxWidth || IMAGE_DEFAULTS.MAX_WIDTH));
77
- const maxHeight = (opts && opts.thumbnail ? IMAGE_DEFAULTS.THUMB_MAX_HEIGHT : (opts && opts.maxHeight || IMAGE_DEFAULTS.MAX_HEIGHT));
78
- let width = event.target.width;
79
- let height = event.target.height;
80
- const canvas = document.createElement('canvas');
81
- let ctx;
82
- try {
83
- // Thumbnail: resize and crop (to the expected size)
84
- if (opts && opts.thumbnail) {
85
- // landscape
86
- if (width > height) {
87
- width *= maxHeight / height;
88
- height = maxHeight;
89
- }
90
- // portrait
91
- else {
92
- height *= maxWidth / width;
93
- width = maxWidth;
94
- }
95
- canvas.width = maxWidth;
96
- canvas.height = maxHeight;
97
- ctx = canvas.getContext('2d');
98
- const xoffset = Math.trunc((maxWidth - width) / 2 + 0.5);
99
- const yoffset = Math.trunc((maxHeight - height) / 2 + 0.5);
100
- ctx.drawImage(event.target, xoffset, // x1
101
- yoffset, // y1
102
- maxWidth + -2 * xoffset, // x2
103
- maxHeight + -2 * yoffset // y2
104
- );
105
- }
106
- // Resize, but keep the full image
107
- else {
108
- // landscape
109
- if (width > height) {
110
- if (width > maxWidth) {
111
- height *= maxWidth / width;
112
- width = maxWidth;
113
- }
114
- }
115
- // portrait
116
- else {
117
- if (height > maxHeight) {
118
- width *= maxHeight / height;
119
- height = maxHeight;
120
- }
121
- }
122
- canvas.width = width;
123
- canvas.height = height;
124
- ctx = canvas.getContext('2d');
125
- // Resize the whole image
126
- ctx.drawImage(event.target, 0, 0, canvas.width, canvas.height);
127
- }
128
- // Get image content as data URL
129
- const base64 = canvas.toDataURL();
130
- resolve(base64);
131
- }
132
- catch (err) {
133
- reject(err);
134
- }
135
- finally {
136
- canvas.remove();
137
- }
138
- };
139
- }
140
- }
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZTY0LWltYWdlLXJlYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL2ZpbGUvYmFzZTY0LWltYWdlLXJlYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUUxQyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUc7SUFDNUIsVUFBVSxFQUFFLEdBQUc7SUFDZixTQUFTLEVBQUUsR0FBRztJQUNkLGdCQUFnQixFQUFFLEdBQUc7SUFDckIsZUFBZSxFQUFFLEdBQUc7Q0FDckIsQ0FBQztBQVFGLE1BQU0sT0FBTyxpQkFBaUI7SUFFNUI7SUFDQSxDQUFDO0lBRUssWUFBWSxDQUFDLElBQVM7O1lBQzFCLElBQUksQ0FBQyxJQUFJO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztZQUM3RCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksT0FBTyxDQUFTLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUM1RCxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO2dCQUNoQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQWdCLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDcEYsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM3QixDQUFDLENBQUMsQ0FBQztZQUNILE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUM7S0FBQTtJQUVLLG9CQUFvQixDQUFDLElBQVksRUFBRSxJQUErQjs7WUFDdEUsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztZQUUxRSxxQ0FBcUM7WUFD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QVEsRUFBRTs0QkFDcEIsTUFBTSxJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUM7NEJBQzNCLEtBQUssR0FBRyxRQUFRLENBQUM7eUJBQ2xCO3FCQUNGO29CQUVELFdBQVc7eUJBQ047d0JBQ0gsSUFBSSxNQUFNLEdBQUcsU0FBUyxFQUFFOzRCQUN0QixLQUFLLElBQUksU0FBUyxHQUFHLE1BQU0sQ0FBQzs0QkFDNUIsTUFBTSxHQUFHLFNBQVMsQ0FBQzt5QkFDcEI7cUJBQ0Y7b0JBRUQsTUFBTSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7b0JBQ3JCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO29CQUN2QixHQUFHLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFFOUIseUJBQXlCO29CQUN6QixHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDaEU7Z0JBRUQsZ0NBQWdDO2dCQUNoQyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ2xDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUNqQjtZQUNELE9BQU8sR0FBRyxFQUFFO2dCQUNWLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNiO29CQUNPO2dCQUNOLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQzthQUNqQjtRQUVILENBQUMsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aXNOaWxPckJsYW5rfSBmcm9tICcuLi9mdW5jdGlvbnMnO1xuXG5leHBvcnQgY29uc3QgSU1BR0VfREVGQVVMVFMgPSB7XG4gIE1BWF9IRUlHSFQ6IDQ4MCxcbiAgTUFYX1dJRFRIOiA2NDAsXG4gIFRIVU1CX01BWF9IRUlHSFQ6IDIwMCxcbiAgVEhVTUJfTUFYX1dJRFRIOiAyMDBcbn07XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYXNlNjRJbWFnZVJlc2l6ZU9wdGlvbnMge1xuICBtYXhXaWR0aD86IG51bWJlcjtcbiAgbWF4SGVpZ2h0PzogbnVtYmVyO1xuICB0aHVtYm5haWw/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgQmFzZTY0SW1hZ2VSZWFkZXIge1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICB9XG5cbiAgYXN5bmMgcmVhZEZyb21CbG9iKGZpbGU6IGFueSk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgaWYgKCFmaWxlKSB0aHJvdyBuZXcgRXJyb3IoJ0lsbGVnYWwgYXJndW1lbnQ6IG1pc3NpbmcgZmlsZScpO1xuICAgIGNvbnN0IGRhdGFVcmwgPSBhd2FpdCBuZXcgUHJvbWlzZTxzdHJpbmc+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICByZWFkZXIuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIChldmVudCkgPT4gcmVzb2x2ZShyZWFkZXIucmVzdWx0IGFzIHN0cmluZyksIGZhbHNlKTtcbiAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xuICAgIH0pO1xuICAgIHJldHVybiBkYXRhVXJsO1xuICB9XG5cbiAgYXN5bmMgcmVhZEFuZFJlc2l6ZUZyb21VcmwocGF0aDogc3RyaW5nLCBvcHRzPzogQmFzZTY0SW1hZ2VSZXNpemVPcHRpb25zKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBpZiAoaXNOaWxPckJsYW5rKHBhdGgpKSB0aHJvdyBuZXcgRXJyb3IoJ0lsbGVnYWwgYXJndW1lbnQ6IG1pc3NpbmcgcGF0aCcpO1xuXG4gICAgLy8gQ3JlYXRlIHRoZSB0ZW1wb3JhcnkgaW1hZ2UgZWxlbWVudFxuICAgIGNvbnN0IGltZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ltZycpO1xuXG4gICAgLy8gTmVlZCB0byBhdm9pZCBDT1JTIGVycm9yXG4gICAgLy8gKHNlZSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yMjcxMDYyNy90YWludGVkLWNhbnZhc2VzLW1heS1ub3QtYmUtZXhwb3J0ZWQpXG4gICAgaW1nLmNyb3NzT3JpZ2luID0gJ2Fub255bW91cyc7XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IG5ldyBQcm9taXNlPHN0cmluZz4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBpbWcuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIHRoaXMuY3JlYXRlSW1hZ2VPbkxvYWRSZXNpemVGbihyZXNvbHZlLCByZWplY3QsIG9wdHMpLCBmYWxzZSk7XG4gICAgICAgIGltZy5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIHJlamVjdCk7XG4gICAgICAgIGltZy5zcmMgPSBwYXRoO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGNhdGNoIChlcnIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGxvYWQgYW5kIHJlc2l6ZSBpbWFnZSB7JHtwYXRofX1gKTtcbiAgICB9XG4gICAgZmluYWxseSB7XG4gICAgICBpbWcucmVtb3ZlKCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcmVhZEFuZFJlc2l6ZUZyb21CbG9iKGZpbGU6IGFueSwgb3B0czogQmFzZTY0SW1hZ2VSZXNpemVPcHRpb25zKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBpZiAoIWZpbGUpIHRocm93IG5ldyBFcnJvcignSWxsZWdhbCBhcmd1bWVudDogbWlzc2luZyBmaWxlJyk7XG5cbiAgICAvLyBDcmVhdGUgdGhlIHRlbXBvcmFyeSBpbWFnZSBlbGVtZW50XG4gICAgY29uc3QgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7XG5cbiAgICAvLyBOZWVkIHRvIGF2b2lkIENPUlMgZXJyb3JcbiAgICAvLyAoc2VlIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzIyNzEwNjI3L3RhaW50ZWQtY2FudmFzZXMtbWF5LW5vdC1iZS1leHBvcnRlZClcbiAgICBpbWcuY3Jvc3NPcmlnaW4gPSAnYW5vbnltb3VzJztcblxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYXdhaXQgbmV3IFByb21pc2U8c3RyaW5nPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICAgIHJlYWRlci5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgLy8gUmVzaXplIGltYWdlXG4gICAgICAgICAgaW1nLm9ubG9hZCA9IHRoaXMuY3JlYXRlSW1hZ2VPbkxvYWRSZXNpemVGbihyZXNvbHZlLCByZWplY3QsIG9wdHMpO1xuICAgICAgICAgIGltZy5zcmMgPSByZWFkZXIucmVzdWx0IGFzIHN0cmluZztcbiAgICAgICAgfSwgZmFsc2UpO1xuICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcbiAgICAgIH0pO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpbWcucmVtb3ZlKCk7XG4gICAgfVxuICB9XG5cbiAgLyogLS0gcHJvdGVjdGVkIG1ldGhvZHMgLS0gKi9cblxuICBwcm90ZWN0ZWQgY3JlYXRlSW1hZ2VPbkxvYWRSZXNpemVGbihyZXNvbHZlLCByZWplY3QsIG9wdHM/OiBCYXNlNjRJbWFnZVJlc2l6ZU9wdGlvbnMpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24oZXZlbnQpIHtcbiAgICAgIGNvbnN0XG4gICAgICAgIG1heFdpZHRoID0gKG9wdHMgJiYgb3B0cy50aHVtYm5haWwgPyBJTUFHRV9ERUZBVUxUUy5USFVNQl9NQVhfV0lEVEggOiAob3B0cyAmJiBvcHRzLm1heFdpZHRoIHx8IElNQUdFX0RFRkFVTFRTLk1BWF9XSURUSCkpO1xuICAgICAgICBjb25zdCBtYXhIZWlnaHQgPSAob3B0cyAmJiBvcHRzLnRodW1ibmFpbCA/IElNQUdFX0RFRkFVTFRTLlRIVU1CX01BWF9IRUlHSFQgOiAob3B0cyAmJiBvcHRzLm1heEhlaWdodCB8fCBJTUFHRV9ERUZBVUxUUy5NQVhfSEVJR0hUKSk7XG4gICAgICBsZXQgd2lkdGggPSBldmVudC50YXJnZXQud2lkdGg7XG4gICAgICAgIGxldCBoZWlnaHQgPSBldmVudC50YXJnZXQuaGVpZ2h0O1xuXG4gICAgICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcbiAgICAgIGxldCBjdHg7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIC8vIFRodW1ibmFpbDogcmVzaXplIGFuZCBjcm9wICh0byB0aGUgZXhwZWN0ZWQgc2l6ZSlcbiAgICAgICAgaWYgKG9wdHMgJiYgb3B0cy50aHVtYm5haWwpIHtcblxuICAgICAgICAgIC8vIGxhbmRzY2FwZVxuICAgICAgICAgIGlmICh3aWR0aCA+IGhlaWdodCkge1xuICAgICAgICAgICAgd2lkdGggKj0gbWF4SGVpZ2h0IC8gaGVpZ2h0O1xuICAgICAgICAgICAgaGVpZ2h0ID0gbWF4SGVpZ2h0O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIHBvcnRyYWl0XG4gICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBoZWlnaHQgKj0gbWF4V2lkdGggLyB3aWR0aDtcbiAgICAgICAgICAgIHdpZHRoID0gbWF4V2lkdGg7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNhbnZhcy53aWR0aCA9IG1heFdpZHRoO1xuICAgICAgICAgIGNhbnZhcy5oZWlnaHQgPSBtYXhIZWlnaHQ7XG4gICAgICAgICAgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG4gICAgICAgICAgY29uc3QgeG9mZnNldCA9IE1hdGgudHJ1bmMoKG1heFdpZHRoIC0gd2lkdGgpIC8gMiArIDAuNSk7XG4gICAgICAgICAgY29uc3QgeW9mZnNldCA9IE1hdGgudHJ1bmMoKG1heEhlaWdodCAtIGhlaWdodCkgLyAyICsgMC41KTtcbiAgICAgICAgICBjdHguZHJhd0ltYWdlKGV2ZW50LnRhcmdldCxcbiAgICAgICAgICAgIHhvZmZzZXQsIC8vIHgxXG4gICAgICAgICAgICB5b2Zmc2V0LCAvLyB5MVxuICAgICAgICAgICAgbWF4V2lkdGggKyAtMiAqIHhvZmZzZXQsIC8vIHgyXG4gICAgICAgICAgICBtYXhIZWlnaHQgKyAtMiAqIHlvZmZzZXQgLy8geTJcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUmVzaXplLCBidXQga2VlcCB0aGUgZnVsbCBpbWFnZVxuICAgICAgICBlbHNlIHtcblxuICAgICAgICAgIC8vIGxhbmRzY2FwZVxuICAgICAgICAgIGlmICh3aWR0aCA+IGhlaWdodCkge1xuICAgICAgICAgICAgaWYgKHdpZHRoID4gbWF4V2lkdGgpIHtcbiAgICAgICAgICAgICAgaGVpZ2h0ICo9IG1heFdpZHRoIC8gd2lkdGg7XG4gICAgICAgICAgICAgIHdpZHRoID0gbWF4V2lkdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gcG9ydHJhaXRcbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmIChoZWlnaHQgPiBtYXhIZWlnaHQpIHtcbiAgICAgICAgICAgICAgd2lkdGggKj0gbWF4SGVpZ2h0IC8gaGVpZ2h0O1xuICAgICAgICAgICAgICBoZWlnaHQgPSBtYXhIZWlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY2FudmFzLndpZHRoID0gd2lkdGg7XG4gICAgICAgICAgY2FudmFzLmhlaWdodCA9IGhlaWdodDtcbiAgICAgICAgICBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcblxuICAgICAgICAgIC8vIFJlc2l6ZSB0aGUgd2hvbGUgaW1hZ2VcbiAgICAgICAgICBjdHguZHJhd0ltYWdlKGV2ZW50LnRhcmdldCwgMCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEdldCBpbWFnZSBjb250ZW50IGFzIGRhdGEgVVJMXG4gICAgICAgIGNvbnN0IGJhc2U2NCA9IGNhbnZhcy50b0RhdGFVUkwoKTtcbiAgICAgICAgcmVzb2x2ZShiYXNlNjQpO1xuICAgICAgfVxuICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgIH1cbiAgICAgIGZpbmFsbHkge1xuICAgICAgICBjYW52YXMucmVtb3ZlKCk7XG4gICAgICB9XG5cbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -1,121 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { Inject, Injectable } from '@angular/core';
3
- import { Platform } from '@ionic/angular';
4
- import * as uuidv4Imported from 'uuid/v4';
5
- import { Base64ImageReader } from './base64-image-reader';
6
- import { chainPromises, firstNotNilPromise } from '../observables';
7
- import { HttpClient } from '@angular/common/http';
8
- import { ENVIRONMENT } from '../../../environments/environment.class';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "@ionic/angular";
11
- import * as i2 from "@angular/common/http";
12
- import * as i3 from "../../../environments/environment.class";
13
- const uuidv4 = uuidv4Imported;
14
- export class FileService {
15
- constructor(platform,
16
- //private transfer: FileTransfer,
17
- //@Optional() private file: File,
18
- http, environment) {
19
- this.platform = platform;
20
- this.http = http;
21
- this.environment = environment;
22
- this._started = false;
23
- this._debug = !environment.production;
24
- platform.ready().then(() => this.start());
25
- }
26
- get canUseFileSystem() {
27
- return false;
28
- // FIXME: seems not working well
29
- //return !!this.file.dataDirectory;
30
- }
31
- getImages(sources, opts) {
32
- if (!this._started)
33
- throw new Error('Platform must be started first!');
34
- //const fileTransfer = this.canUseFileSystem ? this.transfer.create() : undefined;
35
- //const jobsFactories = (sources || []).map(source => () => this.getImage(source, {...opts, fileTransfer}));
36
- const jobsFactories = (sources || []).map(source => () => this.getImage(source, Object.assign({}, opts)));
37
- return chainPromises(jobsFactories);
38
- }
39
- getImage(source, opts) {
40
- return __awaiter(this, void 0, void 0, function* () {
41
- let responseType = opts && opts.responseType || (this.canUseFileSystem ? 'file' : 'dataUrl');
42
- const debug = this._debug /*&& (!opts || !opts.fileTransfer)*/;
43
- const now = debug && Date.now();
44
- if (debug)
45
- console.debug(`[file] Fetching image {${source}} into ${responseType}...`);
46
- // Read the filename
47
- const lastSlashIndex = source.lastIndexOf('/');
48
- if (lastSlashIndex === -1)
49
- throw new Error('Invalid URL: ' + source);
50
- const fileName = lastSlashIndex < (source.length - 1) && source.substring(lastSlashIndex + 1) || uuidv4();
51
- // Download into the file system
52
- if (responseType === 'file' && this.canUseFileSystem) {
53
- console.warn(`WARN: [file] Fetching image {${source}} in local file...`);
54
- const targetFilePath = this._imageDirectory + fileName;
55
- try {
56
- const blob = yield firstNotNilPromise(this.http.get(source, {
57
- observe: 'body',
58
- responseType: 'blob',
59
- reportProgress: false
60
- }));
61
- console.debug('[file] Getting blob :' + blob.type);
62
- //await this.file.writeFile(this._imageDirectory, fileName, blob, {replace: true});
63
- //const fileTransfer = (opts && opts.fileTransfer) || this.transfer.create();
64
- //await fileTransfer.download(source, targetFilePath);
65
- if (debug)
66
- console.debug(`[file] Fetching image {${source}} into ${responseType} [OK] in ${Date.now() - now}ms`);
67
- return targetFilePath;
68
- }
69
- catch (err) {
70
- console.error(`[file] Error while download ${source}: ${err && err.message || err}`);
71
- // Continue (fallback to data Url)
72
- responseType = 'dataUrl';
73
- }
74
- }
75
- if (responseType === 'dataUrl') {
76
- // Get as data url (e.g. 'data:image/png:...')
77
- const dataUrl = yield new Base64ImageReader().readAndResizeFromUrl(source, opts);
78
- if (debug)
79
- console.debug(`[file] Fetching image {${source}} into ${responseType} [OK] in ${Date.now() - now}ms`);
80
- return dataUrl;
81
- }
82
- // Keep original URL
83
- return source;
84
- });
85
- }
86
- /* -- protected methods -- */
87
- start() {
88
- // File system exists
89
- if (this.canUseFileSystem) {
90
- //console.info("[file] Application directory: ", this.file.applicationDirectory);
91
- //console.info("[file] Application storage directory: ", this.file.applicationStorageDirectory);
92
- //console.info("[file] Data directory: ", this.file.dataDirectory);
93
- // this.file.createDir(this.file.dataDirectory, 'images', false)
94
- // .then((dir) => {
95
- // this._imageDirectory = this.file.dataDirectory + 'images/';
96
- // console.info("[file] Images directory: ", dir.fullPath);
97
- // })
98
- // .catch(err => {
99
- // console.error("[file] Cannot create the images directory: " + (this.file.dataDirectory + 'images/ : ' + (err && err.message || err)));
100
- // this._imageDirectory = this.file.dataDirectory;
101
- // });
102
- }
103
- this._started = true;
104
- }
105
- }
106
- FileService.ɵprov = i0.ɵɵdefineInjectable({ factory: function FileService_Factory() { return new FileService(i0.ɵɵinject(i1.Platform), i0.ɵɵinject(i2.HttpClient), i0.ɵɵinject(i3.ENVIRONMENT)); }, token: FileService, providedIn: "root" });
107
- FileService.decorators = [
108
- { type: Injectable, args: [{
109
- providedIn: 'root',
110
- deps: [
111
- Platform,
112
- HttpClient
113
- ]
114
- },] }
115
- ];
116
- FileService.ctorParameters = () => [
117
- { type: Platform },
118
- { type: HttpClient },
119
- { type: undefined, decorators: [{ type: Inject, args: [ENVIRONMENT,] }] }
120
- ];
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvZmlsZS9maWxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEtBQUssY0FBYyxNQUFNLFNBQVMsQ0FBQztBQUMxQyxPQUFPLEVBQUMsaUJBQWlCLEVBQTJCLE1BQU0sdUJBQXVCLENBQUM7QUFDbEYsT0FBTyxFQUFDLGFBQWEsRUFBRSxrQkFBa0IsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0seUNBQXlDLENBQUM7Ozs7O0FBRXBFLE1BQU0sTUFBTSxHQUFHLGNBQWMsQ0FBQztBQVM5QixNQUFNLE9BQU8sV0FBVztJQWF0QixZQUNVLFFBQWtCO0lBQzFCLGlDQUFpQztJQUNqQyxpQ0FBaUM7SUFDekIsSUFBZ0IsRUFDTyxXQUFXO1FBSmxDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFHbEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNPLGdCQUFXLEdBQVgsV0FBVyxDQUFBO1FBZnBDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFpQnZCLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDO1FBRXRDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQWhCRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLEtBQUssQ0FBQztRQUNiLGdDQUFnQztRQUNoQyxtQ0FBbUM7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SSxpQkFBaUIsRUFBRSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDakYsSUFBSSxLQUFLO29CQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsMEJBQTBCLE1BQU0sVUFBVSxZQUFZLFlBQVksSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUM7Z0JBQ2pILE9BQU8sT0FBTyxDQUFDO2FBQ2hCO1lBRUQsb0JBQW9CO1lBQ3BCLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUM7S0FBQTtJQUVELDZCQUE2QjtJQUVuQixLQUFLO1FBRWIscUJBQXFCO1FBQ3JCLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3pCLGlGQUFpRjtZQUNqRixnR0FBZ0c7WUFDaEcsbUVBQW1FO1lBRW5FLGdFQUFnRTtZQUNoRSxxQkFBcUI7WUFDckIsa0VBQWtFO1lBQ2xFLCtEQUErRDtZQUMvRCxPQUFPO1lBQ1Asb0JBQW9CO1lBQ3BCLDZJQUE2STtZQUM3SSxzREFBc0Q7WUFDdEQsUUFBUTtTQUNUO1FBRUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFDdkIsQ0FBQzs7OztZQXpIRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07Z0JBQ2xCLElBQUksRUFBRTtvQkFDSixRQUFRO29CQUNSLFVBQVU7aUJBQ1g7YUFDRjs7O1lBZk8sUUFBUTtZQUlSLFVBQVU7NENBOEJiLE1BQU0sU0FBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtQbGF0Zm9ybX0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0ICogYXMgdXVpZHY0SW1wb3J0ZWQgZnJvbSAndXVpZC92NCc7XG5pbXBvcnQge0Jhc2U2NEltYWdlUmVhZGVyLCBCYXNlNjRJbWFnZVJlc2l6ZU9wdGlvbnN9IGZyb20gJy4vYmFzZTY0LWltYWdlLXJlYWRlcic7XG5pbXBvcnQge2NoYWluUHJvbWlzZXMsIGZpcnN0Tm90TmlsUHJvbWlzZX0gZnJvbSAnLi4vb2JzZXJ2YWJsZXMnO1xuaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge0VOVklST05NRU5UfSBmcm9tICcuLi8uLi8uLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQuY2xhc3MnO1xuXG5jb25zdCB1dWlkdjQgPSB1dWlkdjRJbXBvcnRlZDtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG4gIGRlcHM6IFtcbiAgICBQbGF0Zm9ybSxcbiAgICBIdHRwQ2xpZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRmlsZVNlcnZpY2Uge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2RlYnVnOiBib29sZWFuO1xuICBwcml2YXRlIF9zdGFydGVkID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfaW1hZ2VEaXJlY3Rvcnk6IHN0cmluZztcblxuICBnZXQgY2FuVXNlRmlsZVN5c3RlbSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gICAgLy8gRklYTUU6IHNlZW1zIG5vdCB3b3JraW5nIHdlbGxcbiAgICAvL3JldHVybiAhIXRoaXMuZmlsZS5kYXRhRGlyZWN0b3J5O1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwbGF0Zm9ybTogUGxhdGZvcm0sXG4gICAgLy9wcml2YXRlIHRyYW5zZmVyOiBGaWxlVHJhbnNmZXIsXG4gICAgLy9AT3B0aW9uYWwoKSBwcml2YXRlIGZpbGU6IEZpbGUsXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIEBJbmplY3QoRU5WSVJPTk1FTlQpIHByb3RlY3RlZCBlbnZpcm9ubWVudCkge1xuXG4gICAgdGhpcy5fZGVidWcgPSAhZW52aXJvbm1lbnQucHJvZHVjdGlvbjtcblxuICAgIHBsYXRmb3JtLnJlYWR5KCkudGhlbigoKSA9PiB0aGlzLnN0YXJ0KCkpO1xuICB9XG5cbiAgZ2V0SW1hZ2VzKHNvdXJjZXM6IHN0cmluZ1tdLCBvcHRzPzogQmFzZTY0SW1hZ2VSZXNpemVPcHRpb25zICYge1xuICAgIHJlc3BvbnNlVHlwZT86ICdmaWxlJyB8ICdkYXRhVXJsJztcbiAgfSk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICBpZiAoIXRoaXMuX3N0YXJ0ZWQpIHRocm93IG5ldyBFcnJvcignUGxhdGZvcm0gbXVzdCBiZSBzdGFydGVkIGZpcnN0IScpO1xuXG4gICAgLy9jb25zdCBmaWxlVHJhbnNmZXIgPSB0aGlzLmNhblVzZUZpbGVTeXN0ZW0gPyB0aGlzLnRyYW5zZmVyLmNyZWF0ZSgpIDogdW5kZWZpbmVkO1xuICAgIC8vY29uc3Qgam9ic0ZhY3RvcmllcyA9IChzb3VyY2VzIHx8IFtdKS5tYXAoc291cmNlID0+ICgpID0+IHRoaXMuZ2V0SW1hZ2Uoc291cmNlLCB7Li4ub3B0cywgZmlsZVRyYW5zZmVyfSkpO1xuXG4gICAgY29uc3Qgam9ic0ZhY3RvcmllcyA9IChzb3VyY2VzIHx8IFtdKS5tYXAoc291cmNlID0+ICgpID0+IHRoaXMuZ2V0SW1hZ2Uoc291cmNlLCB7Li4ub3B0c30pKTtcbiAgICByZXR1cm4gY2hhaW5Qcm9taXNlczxzdHJpbmc+KGpvYnNGYWN0b3JpZXMpO1xuICB9XG5cbiAgYXN5bmMgZ2V0SW1hZ2Uoc291cmNlOiBzdHJpbmcsIG9wdHM/OiBCYXNlNjRJbWFnZVJlc2l6ZU9wdGlvbnMgJiB7XG4gICAgLy9maWxlVHJhbnNmZXI/OiBGaWxlVHJhbnNmZXJPYmplY3Q7XG4gICAgcmVzcG9uc2VUeXBlPzogJ2ZpbGUnIHwgJ2RhdGFVcmwnO1xuICAgIH0pOiBQcm9taXNlPHN0cmluZz4ge1xuXG4gICAgbGV0IHJlc3BvbnNlVHlwZSA9IG9wdHMgJiYgb3B0cy5yZXNwb25zZVR5cGUgfHwgKHRoaXMuY2FuVXNlRmlsZVN5c3RlbSA/ICdmaWxlJyA6ICdkYXRhVXJsJyk7XG5cbiAgICBjb25zdCBkZWJ1ZyA9IHRoaXMuX2RlYnVnIC8qJiYgKCFvcHRzIHx8ICFvcHRzLmZpbGVUcmFuc2ZlcikqLztcbiAgICBjb25zdCBub3cgPSBkZWJ1ZyAmJiBEYXRlLm5vdygpO1xuICAgIGlmIChkZWJ1ZykgY29uc29sZS5kZWJ1ZyhgW2ZpbGVdIEZldGNoaW5nIGltYWdlIHske3NvdXJjZX19IGludG8gJHtyZXNwb25zZVR5cGV9Li4uYCk7XG5cbiAgICAvLyBSZWFkIHRoZSBmaWxlbmFtZVxuICAgIGNvbnN0IGxhc3RTbGFzaEluZGV4ID0gc291cmNlLmxhc3RJbmRleE9mKCcvJyk7XG4gICAgaWYgKGxhc3RTbGFzaEluZGV4ID09PSAtMSkgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIFVSTDogJyArIHNvdXJjZSk7XG4gICAgY29uc3QgZmlsZU5hbWUgPSBsYXN0U2xhc2hJbmRleCA8IChzb3VyY2UubGVuZ3RoIC0gMSkgJiYgc291cmNlLnN1YnN0cmluZyhsYXN0U2xhc2hJbmRleCArIDEpIHx8IHV1aWR2NCgpO1xuXG5cbiAgICAvLyBEb3dubG9hZCBpbnRvIHRoZSBmaWxlIHN5c3RlbVxuICAgIGlmIChyZXNwb25zZVR5cGUgPT09ICdmaWxlJyAmJiB0aGlzLmNhblVzZUZpbGVTeXN0ZW0pIHtcbiAgICAgIGNvbnNvbGUud2FybihgV0FSTjogW2ZpbGVdIEZldGNoaW5nIGltYWdlIHske3NvdXJjZX19IGluIGxvY2FsIGZpbGUuLi5gKTtcbiAgICAgIGNvbnN0IHRhcmdldEZpbGVQYXRoID0gdGhpcy5faW1hZ2VEaXJlY3RvcnkgKyBmaWxlTmFtZTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGJsb2I6IEJsb2IgPSBhd2FpdCBmaXJzdE5vdE5pbFByb21pc2UodGhpcy5odHRwLmdldChzb3VyY2UsIHtcbiAgICAgICAgICBvYnNlcnZlOiAnYm9keScsXG4gICAgICAgICAgcmVzcG9uc2VUeXBlOiAnYmxvYicsXG4gICAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IGZhbHNlXG4gICAgICAgIH0pKTtcbiAgICAgICAgY29uc29sZS5kZWJ1ZygnW2ZpbGVdIEdldHRpbmcgYmxvYiA6JyArIGJsb2IudHlwZSk7XG5cbiAgICAgICAgLy9hd2FpdCB0aGlzLmZpbGUud3JpdGVGaWxlKHRoaXMuX2ltYWdlRGlyZWN0b3J5LCBmaWxlTmFtZSwgYmxvYiwge3JlcGxhY2U6IHRydWV9KTtcblxuICAgICAgICAvL2NvbnN0IGZpbGVUcmFuc2ZlciA9IChvcHRzICYmIG9wdHMuZmlsZVRyYW5zZmVyKSB8fCB0aGlzLnRyYW5zZmVyLmNyZWF0ZSgpO1xuICAgICAgICAvL2F3YWl0IGZpbGVUcmFuc2Zlci5kb3dubG9hZChzb3VyY2UsIHRhcmdldEZpbGVQYXRoKTtcbiAgICAgICAgaWYgKGRlYnVnKSBjb25zb2xlLmRlYnVnKGBbZmlsZV0gRmV0Y2hpbmcgaW1hZ2UgeyR7c291cmNlfX0gaW50byAke3Jlc3BvbnNlVHlwZX0gW09LXSBpbiAke0RhdGUubm93KCkgLSBub3d9bXNgKTtcbiAgICAgICAgcmV0dXJuIHRhcmdldEZpbGVQYXRoO1xuICAgICAgfVxuICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBbZmlsZV0gRXJyb3Igd2hpbGUgZG93bmxvYWQgJHtzb3VyY2V9OiAke2VyciAmJiBlcnIubWVzc2FnZSB8fCBlcnJ9YCk7XG5cbiAgICAgICAgLy8gQ29udGludWUgKGZhbGxiYWNrIHRvIGRhdGEgVXJsKVxuICAgICAgICByZXNwb25zZVR5cGUgPSAnZGF0YVVybCc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHJlc3BvbnNlVHlwZSA9PT0gJ2RhdGFVcmwnKSB7XG4gICAgICAvLyBHZXQgYXMgZGF0YSB1cmwgKGUuZy4gJ2RhdGE6aW1hZ2UvcG5nOi4uLicpXG4gICAgICBjb25zdCBkYXRhVXJsID0gYXdhaXQgbmV3IEJhc2U2NEltYWdlUmVhZGVyKCkucmVhZEFuZFJlc2l6ZUZyb21Vcmwoc291cmNlLCBvcHRzKTtcbiAgICAgIGlmIChkZWJ1ZykgY29uc29sZS5kZWJ1ZyhgW2ZpbGVdIEZldGNoaW5nIGltYWdlIHske3NvdXJjZX19IGludG8gJHtyZXNwb25zZVR5cGV9IFtPS10gaW4gJHtEYXRlLm5vdygpIC0gbm93fW1zYCk7XG4gICAgICByZXR1cm4gZGF0YVVybDtcbiAgICB9XG5cbiAgICAvLyBLZWVwIG9yaWdpbmFsIFVSTFxuICAgIHJldHVybiBzb3VyY2U7XG4gIH1cblxuICAvKiAtLSBwcm90ZWN0ZWQgbWV0aG9kcyAtLSAqL1xuXG4gIHByb3RlY3RlZCBzdGFydCgpIHtcblxuICAgIC8vIEZpbGUgc3lzdGVtIGV4aXN0c1xuICAgIGlmICh0aGlzLmNhblVzZUZpbGVTeXN0ZW0pIHtcbiAgICAgIC8vY29uc29sZS5pbmZvKFwiW2ZpbGVdIEFwcGxpY2F0aW9uIGRpcmVjdG9yeTogXCIsIHRoaXMuZmlsZS5hcHBsaWNhdGlvbkRpcmVjdG9yeSk7XG4gICAgICAvL2NvbnNvbGUuaW5mbyhcIltmaWxlXSBBcHBsaWNhdGlvbiBzdG9yYWdlIGRpcmVjdG9yeTogXCIsIHRoaXMuZmlsZS5hcHBsaWNhdGlvblN0b3JhZ2VEaXJlY3RvcnkpO1xuICAgICAgLy9jb25zb2xlLmluZm8oXCJbZmlsZV0gRGF0YSBkaXJlY3Rvcnk6IFwiLCB0aGlzLmZpbGUuZGF0YURpcmVjdG9yeSk7XG5cbiAgICAgIC8vIHRoaXMuZmlsZS5jcmVhdGVEaXIodGhpcy5maWxlLmRhdGFEaXJlY3RvcnksICdpbWFnZXMnLCBmYWxzZSlcbiAgICAgIC8vICAgLnRoZW4oKGRpcikgPT4ge1xuICAgICAgLy8gICAgIHRoaXMuX2ltYWdlRGlyZWN0b3J5ID0gdGhpcy5maWxlLmRhdGFEaXJlY3RvcnkgKyAnaW1hZ2VzLyc7XG4gICAgICAvLyAgICAgY29uc29sZS5pbmZvKFwiW2ZpbGVdIEltYWdlcyBkaXJlY3Rvcnk6IFwiLCBkaXIuZnVsbFBhdGgpO1xuICAgICAgLy8gICB9KVxuICAgICAgLy8gICAuY2F0Y2goZXJyID0+IHtcbiAgICAgIC8vICAgICBjb25zb2xlLmVycm9yKFwiW2ZpbGVdIENhbm5vdCBjcmVhdGUgdGhlIGltYWdlcyBkaXJlY3Rvcnk6IFwiICsgKHRoaXMuZmlsZS5kYXRhRGlyZWN0b3J5ICsgJ2ltYWdlcy8gOiAnICsgKGVyciAmJiBlcnIubWVzc2FnZSB8fCBlcnIpKSk7XG4gICAgICAvLyAgICAgdGhpcy5faW1hZ2VEaXJlY3RvcnkgPSB0aGlzLmZpbGUuZGF0YURpcmVjdG9yeTtcbiAgICAgIC8vICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5fc3RhcnRlZCA9IHRydWU7XG4gIH1cblxufVxuIl19