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

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 (287) hide show
  1. package/doc/changelog.md +50 -0
  2. package/esm2020/public_api.mjs +9 -5
  3. package/esm2020/src/app/admin/admin-routing.module.mjs +5 -5
  4. package/esm2020/src/app/admin/admin.module.mjs +13 -28
  5. package/esm2020/src/app/admin/services/person.service.mjs +3 -3
  6. package/esm2020/src/app/admin/services/validator/person.validator.mjs +3 -3
  7. package/esm2020/src/app/admin/users/list/users.mjs +33 -27
  8. package/esm2020/src/app/admin/users/list/users.module.mjs +58 -0
  9. package/esm2020/src/app/core/about/modal-about.mjs +3 -3
  10. package/esm2020/src/app/core/account/account.mjs +3 -3
  11. package/esm2020/src/app/core/auth/form/form-auth.mjs +3 -3
  12. package/esm2020/src/app/core/auth/modal/modal-auth.mjs +3 -3
  13. package/esm2020/src/app/core/core.module.mjs +6 -6
  14. package/esm2020/src/app/core/core.testing.module.mjs +26 -12
  15. package/esm2020/src/app/core/form/editor.class.mjs +129 -62
  16. package/esm2020/src/app/core/form/entity-editor-modal.class.mjs +25 -10
  17. package/esm2020/src/app/core/form/entity-editor.class.mjs +10 -33
  18. package/esm2020/src/app/core/form/entity-metadata.component.mjs +3 -3
  19. package/esm2020/src/app/core/form/form-buttons-bar.component.mjs +3 -3
  20. package/esm2020/src/app/core/form/form.class.mjs +10 -4
  21. package/esm2020/src/app/core/form/form.utils.mjs +39 -4
  22. package/esm2020/src/app/core/form/list.form.mjs +7 -6
  23. package/esm2020/src/app/core/form/properties/properties.form.mjs +129 -0
  24. package/esm2020/src/app/core/form/properties/property.validator.mjs +23 -0
  25. package/esm2020/src/app/core/form/properties/testing/properties-form.test.mjs +90 -0
  26. package/esm2020/src/app/core/form/properties/testing/properties-form.testing.module.mjs +39 -0
  27. package/esm2020/src/app/core/graphql/graphql.module.mjs +4 -4
  28. package/esm2020/src/app/core/graphql/graphql.service.mjs +3 -3
  29. package/esm2020/src/app/core/graphql/graphql.utils.mjs +2 -2
  30. package/esm2020/src/app/core/home/home.mjs +3 -3
  31. package/esm2020/src/app/core/icon/icon.component.mjs +5 -5
  32. package/esm2020/src/app/core/icon/icon.module.mjs +4 -4
  33. package/esm2020/src/app/core/install/install-upgrade-card.component.mjs +3 -3
  34. package/esm2020/src/app/core/install/install-upgrade-card.module.mjs +4 -4
  35. package/esm2020/src/app/core/menu/menu.component.mjs +3 -3
  36. package/esm2020/src/app/core/menu/menu.module.mjs +4 -4
  37. package/esm2020/src/app/core/menu/menu.service.mjs +3 -3
  38. package/esm2020/src/app/core/offline/update-offline-mode-card.component.mjs +3 -3
  39. package/esm2020/src/app/core/peer/select-peer.modal.mjs +3 -3
  40. package/esm2020/src/app/core/peer/select-peer.module.mjs +4 -4
  41. package/esm2020/src/app/core/register/confirm/confirm.mjs +3 -3
  42. package/esm2020/src/app/core/register/form/form-register.mjs +3 -3
  43. package/esm2020/src/app/core/register/modal/modal-register.mjs +3 -3
  44. package/esm2020/src/app/core/register/register.module.mjs +4 -4
  45. package/esm2020/src/app/core/services/account.service.mjs +5 -5
  46. package/esm2020/src/app/core/services/auth-guard.service.mjs +3 -3
  47. package/esm2020/src/app/core/services/base-entity-service.class.mjs +8 -9
  48. package/esm2020/src/app/core/services/base-graphql-service.class.mjs +3 -3
  49. package/esm2020/src/app/core/services/config.service.mjs +5 -5
  50. package/esm2020/src/app/core/services/crypto.service.mjs +3 -3
  51. package/esm2020/src/app/core/services/local-settings.service.mjs +3 -3
  52. package/esm2020/src/app/core/services/model/peer.model.mjs +3 -3
  53. package/esm2020/src/app/core/services/model/referential.model.mjs +11 -3
  54. package/esm2020/src/app/core/services/network.service.mjs +21 -28
  55. package/esm2020/src/app/core/services/pipes/account.pipes.mjs +8 -8
  56. package/esm2020/src/app/core/services/pipes/department-to-string.pipe.mjs +4 -4
  57. package/esm2020/src/app/core/services/pipes/person-to-string.pipe.mjs +4 -4
  58. package/esm2020/src/app/core/services/pipes/usage-mode.pipes.mjs +8 -8
  59. package/esm2020/src/app/core/services/platform.service.mjs +3 -3
  60. package/esm2020/src/app/core/services/storage/entities-storage.service.mjs +3 -3
  61. package/esm2020/src/app/core/services/testing/referential.validator.mjs +3 -3
  62. package/esm2020/src/app/core/services/validator/account.validator.mjs +3 -3
  63. package/esm2020/src/app/core/services/validator/base.validator.class.mjs +3 -3
  64. package/esm2020/src/app/core/services/validator/local-settings.validator.mjs +3 -3
  65. package/esm2020/src/app/core/services/validator/user-settings.validator.mjs +3 -3
  66. package/esm2020/src/app/core/settings/settings.page.mjs +4 -4
  67. package/esm2020/src/app/core/table/actions-column.component.mjs +9 -9
  68. package/esm2020/src/app/core/table/entities-table-datasource.class.mjs +74 -65
  69. package/esm2020/src/app/core/table/memory-table.class.mjs +3 -3
  70. package/esm2020/src/app/core/table/table-select-columns.component.mjs +3 -3
  71. package/esm2020/src/app/core/table/table.class.mjs +223 -208
  72. package/esm2020/src/app/core/table/table.utils.mjs +1 -1
  73. package/esm2020/src/app/core/table/testing/table.testing.mjs +5 -5
  74. package/esm2020/src/app/core/table/testing/table.testing.module.mjs +4 -4
  75. package/esm2020/src/app/core/text-popover/testing/text-popover.testing.mjs +3 -3
  76. package/esm2020/src/app/core/text-popover/testing/text-popover.testing.module.mjs +4 -4
  77. package/esm2020/src/app/core/text-popover/text-form.component.mjs +3 -3
  78. package/esm2020/src/app/core/text-popover/text-popover.component.mjs +3 -3
  79. package/esm2020/src/app/shared/audio/audio.mjs +4 -4
  80. package/esm2020/src/app/shared/audio/audio.testing.mjs +3 -3
  81. package/esm2020/src/app/shared/audio/audio.testing.module.mjs +4 -4
  82. package/esm2020/src/app/shared/capacitor/keyboard.mjs +3 -3
  83. package/esm2020/src/app/shared/debug/debug.component.mjs +39 -0
  84. package/esm2020/src/app/shared/debug/debug.module.mjs +44 -0
  85. package/esm2020/src/app/shared/directives/autofocus.directive.mjs +6 -6
  86. package/esm2020/src/app/shared/directives/autotitle.directive.mjs +3 -3
  87. package/esm2020/src/app/shared/directives/directives.module.mjs +4 -4
  88. package/esm2020/src/app/shared/directives/drag-and-drop.directive.mjs +3 -3
  89. package/esm2020/src/app/shared/directives/ng-var.directive.mjs +3 -3
  90. package/esm2020/src/app/shared/directives/resizable/resizable.component.mjs +3 -3
  91. package/esm2020/src/app/shared/directives/resizable/resizable.directive.mjs +3 -3
  92. package/esm2020/src/app/shared/directives/resizable/resizable.module.mjs +4 -4
  93. package/esm2020/src/app/shared/events.mjs +2 -2
  94. package/esm2020/src/app/shared/file/file.service.mjs +5 -5
  95. package/esm2020/src/app/shared/form/field.component.mjs +10 -7
  96. package/esm2020/src/app/shared/form/loading-spinner.mjs +3 -3
  97. package/esm2020/src/app/shared/forms.mjs +21 -2
  98. package/esm2020/src/app/shared/functions.mjs +23 -10
  99. package/esm2020/src/app/shared/gesture/gesture-config.mjs +3 -3
  100. package/esm2020/src/app/shared/graph/graph-colors.mjs +17 -63
  101. package/esm2020/src/app/shared/guard/component-dirty.guard.mjs +3 -3
  102. package/esm2020/src/app/shared/help/help.modal.mjs +3 -3
  103. package/esm2020/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +3 -3
  104. package/esm2020/src/app/shared/hotkeys/hotkeys.service.mjs +3 -3
  105. package/esm2020/src/app/shared/hotkeys/shared-hotkeys.module.mjs +4 -4
  106. package/esm2020/src/app/shared/image/gallery/image-gallery.component.mjs +3 -3
  107. package/esm2020/src/app/shared/image/gallery/image-gallery.module.mjs +4 -4
  108. package/esm2020/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +3 -3
  109. package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.mjs +3 -3
  110. package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +4 -4
  111. package/esm2020/src/app/shared/image/image.module.mjs +4 -4
  112. package/esm2020/src/app/shared/image/image.service.mjs +3 -3
  113. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.mjs +8 -10
  114. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +4 -4
  115. package/esm2020/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +3 -3
  116. package/esm2020/src/app/shared/material/badge/badge.directive.mjs +157 -0
  117. package/esm2020/src/app/shared/material/badge/badge.module.mjs +32 -0
  118. package/esm2020/src/app/shared/material/badge/badge.test.mjs +26 -0
  119. package/esm2020/src/app/shared/material/boolean/boolean.module.mjs +4 -4
  120. package/esm2020/src/app/shared/material/boolean/material.boolean.mjs +3 -3
  121. package/esm2020/src/app/shared/material/chips/chips.module.mjs +4 -4
  122. package/esm2020/src/app/shared/material/chips/material.chips.mjs +11 -13
  123. package/esm2020/src/app/shared/material/chips/testing/chips.test.mjs +3 -3
  124. package/esm2020/src/app/shared/material/datetime/datetime.module.mjs +4 -4
  125. package/esm2020/src/app/shared/material/datetime/material.date.mjs +79 -83
  126. package/esm2020/src/app/shared/material/datetime/material.dateshort.mjs +5 -5
  127. package/esm2020/src/app/shared/material/datetime/material.datetime.mjs +95 -77
  128. package/esm2020/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +5 -5
  129. package/esm2020/src/app/shared/material/datetime/testing/mat-date.test.mjs +5 -5
  130. package/esm2020/src/app/shared/material/duration/duration.module.mjs +4 -4
  131. package/esm2020/src/app/shared/material/duration/material.duration.mjs +3 -3
  132. package/esm2020/src/app/shared/material/latlong/material.latlong.mjs +3 -3
  133. package/esm2020/src/app/shared/material/latlong/material.latlong.module.mjs +4 -4
  134. package/esm2020/src/app/shared/material/latlong/testing/latlong.test.mjs +3 -3
  135. package/esm2020/src/app/shared/material/material.animations.mjs +1 -1
  136. package/esm2020/src/app/shared/material/material.module.mjs +10 -10
  137. package/esm2020/src/app/shared/material/material.testing.module.mjs +24 -12
  138. package/esm2020/src/app/shared/material/numpad/numpad.append-to-input.directive.mjs +3 -3
  139. package/esm2020/src/app/shared/material/numpad/numpad.component.mjs +3 -3
  140. package/esm2020/src/app/shared/material/numpad/numpad.container.mjs +5 -5
  141. package/esm2020/src/app/shared/material/numpad/numpad.content.mjs +3 -3
  142. package/esm2020/src/app/shared/material/numpad/numpad.directive.mjs +3 -3
  143. package/esm2020/src/app/shared/material/numpad/numpad.dom-service.mjs +3 -3
  144. package/esm2020/src/app/shared/material/numpad/numpad.module.mjs +4 -4
  145. package/esm2020/src/app/shared/material/numpad/testing/numpad.test.mjs +3 -3
  146. package/esm2020/src/app/shared/material/paginator/material.paginator-i18n.mjs +3 -3
  147. package/esm2020/src/app/shared/material/stepper/material.stepper-i18n.mjs +3 -3
  148. package/esm2020/src/app/shared/material/swipe/material.swipe.mjs +3 -3
  149. package/esm2020/src/app/shared/material/swipe/swipe.module.mjs +4 -4
  150. package/esm2020/src/app/shared/material/swipe/testing/swipe.test.mjs +3 -3
  151. package/esm2020/src/app/shared/observables.mjs +29 -22
  152. package/esm2020/src/app/shared/pipes/arrays.pipe.mjs +48 -27
  153. package/esm2020/src/app/shared/pipes/colors.pipe.mjs +3 -3
  154. package/esm2020/src/app/shared/pipes/date-diff-duration.pipe.mjs +4 -4
  155. package/esm2020/src/app/shared/pipes/date-format.pipe.mjs +4 -4
  156. package/esm2020/src/app/shared/pipes/date-from-now.pipe.mjs +4 -4
  157. package/esm2020/src/app/shared/pipes/duration.pipe.mjs +4 -4
  158. package/esm2020/src/app/shared/pipes/file-size.pipe.mjs +3 -3
  159. package/esm2020/src/app/shared/pipes/form.pipes.mjs +18 -18
  160. package/esm2020/src/app/shared/pipes/highlight.pipe.mjs +4 -4
  161. package/esm2020/src/app/shared/pipes/latlong-format.pipe.mjs +9 -9
  162. package/esm2020/src/app/shared/pipes/maps.pipe.mjs +12 -12
  163. package/esm2020/src/app/shared/pipes/math.pipes.mjs +12 -12
  164. package/esm2020/src/app/shared/pipes/ng-init.pipe.mjs +3 -3
  165. package/esm2020/src/app/shared/pipes/number-format.pipe.mjs +4 -4
  166. package/esm2020/src/app/shared/pipes/pipes.module.mjs +10 -6
  167. package/esm2020/src/app/shared/pipes/property.pipes.mjs +7 -7
  168. package/esm2020/src/app/shared/pipes/string.pipes.mjs +15 -15
  169. package/esm2020/src/app/shared/pipes/translate-context.pipe.mjs +8 -8
  170. package/esm2020/src/app/shared/services/entity-service.class.mjs +1 -13
  171. package/esm2020/src/app/shared/services/memory-entity-service.class.mjs +127 -43
  172. package/esm2020/src/app/shared/services/progress-bar.service.mjs +3 -3
  173. package/esm2020/src/app/shared/services/startable-observable-service.class.mjs +119 -0
  174. package/esm2020/src/app/shared/services/startable-service.class.mjs +42 -31
  175. package/esm2020/src/app/shared/services/storage/storage.service.mjs +3 -3
  176. package/esm2020/src/app/shared/services/translate-context.service.mjs +3 -3
  177. package/esm2020/src/app/shared/shared-routing.module.mjs +7 -7
  178. package/esm2020/src/app/shared/shared.module.mjs +4 -4
  179. package/esm2020/src/app/shared/shared.testing.module.mjs +4 -4
  180. package/esm2020/src/app/shared/testing/observable.test.mjs +96 -0
  181. package/esm2020/src/app/shared/testing/tests.page.mjs +3 -3
  182. package/esm2020/src/app/shared/toast/toast.testing.mjs +10 -11
  183. package/esm2020/src/app/shared/toast/toast.testing.module.mjs +4 -4
  184. package/esm2020/src/app/shared/toast/toasts.mjs +38 -15
  185. package/esm2020/src/app/shared/toolbar/modal-toolbar.mjs +5 -5
  186. package/esm2020/src/app/shared/toolbar/toolbar.mjs +9 -9
  187. package/esm2020/src/app/shared/toolbar/toolbar.module.mjs +4 -4
  188. package/esm2020/src/app/shared/upload-file/testing/upload-file.testing.mjs +3 -3
  189. package/esm2020/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +4 -4
  190. package/esm2020/src/app/shared/upload-file/upload-file-popover.component.mjs +3 -3
  191. package/esm2020/src/app/shared/upload-file/upload-file.component.mjs +3 -3
  192. package/esm2020/src/app/shared/validator/form-error-adapter.class.mjs +3 -3
  193. package/esm2020/src/app/social/job/job.module.mjs +9 -9
  194. package/esm2020/src/app/social/job/job.service.mjs +27 -15
  195. package/esm2020/src/app/social/job/progression/job-progression.icon.mjs +210 -0
  196. package/esm2020/src/app/social/job/progression/job-progression.list.mjs +3 -3
  197. package/esm2020/src/app/social/job/testing/job-progression.testing.mjs +33 -31
  198. package/esm2020/src/app/social/job/testing/job-progression.testing.service.mjs +27 -5
  199. package/esm2020/src/app/social/job/testing/job.testing.module.mjs +4 -4
  200. package/esm2020/src/app/social/message/message.form.mjs +3 -3
  201. package/esm2020/src/app/social/message/message.modal.mjs +3 -3
  202. package/esm2020/src/app/social/message/message.module.mjs +4 -4
  203. package/esm2020/src/app/social/message/message.service.mjs +3 -3
  204. package/esm2020/src/app/social/social.module.mjs +5 -5
  205. package/esm2020/src/app/social/social.testing.module.mjs +4 -4
  206. package/esm2020/src/app/social/user-event/notification/user-event-notification.icon.mjs +28 -17
  207. package/esm2020/src/app/social/user-event/notification/user-event-notification.list.mjs +6 -6
  208. package/esm2020/src/app/social/user-event/testing/user-event.testing.mjs +6 -6
  209. package/esm2020/src/app/social/user-event/testing/user-event.testing.module.mjs +4 -4
  210. package/esm2020/src/app/social/user-event/testing/user-event.testing.service.mjs +3 -3
  211. package/esm2020/src/app/social/user-event/user-event.module.mjs +9 -9
  212. package/esm2020/src/app/social/user-event/user-event.service.mjs +5 -5
  213. package/esm2020/src/app/vendor.mjs +6 -1
  214. package/fesm2015/sumaris-net.ngx-components.mjs +2692 -1945
  215. package/fesm2015/sumaris-net.ngx-components.mjs.map +1 -1
  216. package/fesm2020/sumaris-net.ngx-components.mjs +2512 -1718
  217. package/fesm2020/sumaris-net.ngx-components.mjs.map +1 -1
  218. package/package.json +6 -2
  219. package/public_api.d.ts +8 -4
  220. package/src/app/admin/admin.module.d.ts +4 -8
  221. package/src/app/admin/users/list/users.d.ts +1 -0
  222. package/src/app/admin/users/list/users.module.d.ts +14 -0
  223. package/src/app/core/core.module.d.ts +1 -1
  224. package/src/app/core/core.testing.module.d.ts +2 -1
  225. package/src/app/core/form/editor.class.d.ts +20 -6
  226. package/src/app/core/form/entity-editor-modal.class.d.ts +13 -4
  227. package/src/app/core/form/entity-editor.class.d.ts +4 -11
  228. package/src/app/core/form/form.class.d.ts +2 -0
  229. package/src/app/core/form/form.utils.d.ts +28 -2
  230. package/src/app/core/form/{properties.form.d.ts → properties/properties.form.d.ts} +13 -13
  231. package/src/app/core/form/properties/property.validator.d.ts +13 -0
  232. package/src/app/core/form/properties/testing/properties-form.test.d.ts +19 -0
  233. package/src/app/core/form/properties/testing/properties-form.testing.module.d.ts +12 -0
  234. package/src/app/core/services/model/referential.model.d.ts +6 -1
  235. package/src/app/core/services/network.service.d.ts +6 -8
  236. package/src/app/core/table/entities-table-datasource.class.d.ts +22 -15
  237. package/src/app/core/table/table.class.d.ts +37 -47
  238. package/src/app/core/table/table.utils.d.ts +2 -1
  239. package/src/app/shared/debug/debug.component.d.ts +13 -0
  240. package/src/app/shared/debug/debug.module.d.ts +12 -0
  241. package/src/app/shared/events.d.ts +4 -4
  242. package/src/app/shared/form/field.component.d.ts +4 -1
  243. package/src/app/shared/forms.d.ts +8 -1
  244. package/src/app/shared/functions.d.ts +9 -4
  245. package/src/app/shared/graph/graph-colors.d.ts +8 -8
  246. package/src/app/shared/image/gallery/testing/gallery.testing.d.ts +1 -1
  247. package/src/app/shared/material/badge/badge.directive.d.ts +28 -0
  248. package/src/app/shared/material/badge/badge.module.d.ts +10 -0
  249. package/src/app/shared/material/badge/badge.test.d.ts +12 -0
  250. package/src/app/shared/material/datetime/material.date.d.ts +12 -13
  251. package/src/app/shared/material/datetime/material.datetime.d.ts +14 -14
  252. package/src/app/shared/material/material.module.d.ts +2 -2
  253. package/src/app/shared/material/material.testing.module.d.ts +10 -9
  254. package/src/app/shared/observables.d.ts +1 -1
  255. package/src/app/shared/pipes/arrays.pipe.d.ts +12 -2
  256. package/src/app/shared/pipes/pipes.module.d.ts +1 -1
  257. package/src/app/shared/services/entity-service.class.d.ts +0 -11
  258. package/src/app/shared/services/memory-entity-service.class.d.ts +20 -6
  259. package/src/app/shared/services/startable-observable-service.class.d.ts +33 -0
  260. package/src/app/shared/services/startable-service.class.d.ts +12 -9
  261. package/src/app/shared/testing/observable.test.d.ts +25 -0
  262. package/src/app/shared/toast/toast.testing.d.ts +3 -5
  263. package/src/app/shared/toast/toasts.d.ts +5 -2
  264. package/src/app/social/job/job.module.d.ts +2 -2
  265. package/src/app/social/job/job.service.d.ts +10 -2
  266. package/src/app/social/job/progression/{job-progression.component.d.ts → job-progression.icon.d.ts} +5 -5
  267. package/src/app/social/job/testing/job-progression.testing.d.ts +7 -4
  268. package/src/app/social/job/testing/job-progression.testing.service.d.ts +4 -0
  269. package/src/app/social/social.module.d.ts +1 -1
  270. package/src/app/social/user-event/notification/user-event-notification.icon.d.ts +8 -5
  271. package/src/app/social/user-event/testing/user-event.testing.d.ts +2 -2
  272. package/src/app/social/user-event/user-event.module.d.ts +1 -1
  273. package/src/app/social/user-event/user-event.service.d.ts +1 -1
  274. package/src/app/vendor.d.ts +2 -0
  275. package/src/theme/_ionic.globals.scss +4 -0
  276. package/src/theme/_material.globals.scss +3 -1
  277. package/src/theme/_material.scss +29 -4
  278. package/src/theme/_mixins.scss +3 -3
  279. package/src/theme/_ngx-components.scss +26 -0
  280. package/esm2020/src/app/core/form/properties.form.mjs +0 -126
  281. package/esm2020/src/app/shared/material/badge/badge-icon.directive.mjs +0 -143
  282. package/esm2020/src/app/shared/material/badge/badge-icon.module.mjs +0 -32
  283. package/esm2020/src/app/shared/material/badge/badge-icon.test.mjs +0 -27
  284. package/esm2020/src/app/social/job/progression/job-progression.component.mjs +0 -201
  285. package/src/app/shared/material/badge/badge-icon.directive.d.ts +0 -30
  286. package/src/app/shared/material/badge/badge-icon.module.d.ts +0 -10
  287. package/src/app/shared/material/badge/badge-icon.test.d.ts +0 -12
@@ -1,201 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, Inject, Input, Optional, Output } from '@angular/core';
2
- import { JobProgressionServiceToken } from '../job.service';
3
- import { JobProgression } from '../job.model';
4
- import { Subscription } from 'rxjs';
5
- import { arraySize, isNil, toBoolean, toNumber } from '../../../shared/functions';
6
- import { filter, map } from 'rxjs/operators';
7
- import { JobProgressionList } from './job-progression.list';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "@ionic/angular";
10
- import * as i2 from "@angular/common";
11
- import * as i3 from "@angular/material/icon";
12
- import * as i4 from "@angular/material/button";
13
- import * as i5 from "@angular/material/progress-spinner";
14
- import * as i6 from "@angular/material/badge";
15
- import * as i7 from "@ngx-translate/core";
16
- export class JobProgressionComponent {
17
- constructor(jobProgressionService, popoverController, cd) {
18
- this.jobProgressionService = jobProgressionService;
19
- this.popoverController = popoverController;
20
- this.cd = cd;
21
- this.debug = false;
22
- this.titleI18n = 'SOCIAL.JOB.PROGRESSION.TITLE';
23
- this.jobFinished = new EventEmitter();
24
- this.disabled = true;
25
- this.color = 'accent';
26
- this.mode = 'determinate';
27
- this.value = 0;
28
- this.jobProgressions = [];
29
- this._subscriptions = new Subscription();
30
- this._subscriptionsById = {};
31
- this._logPrefix = '[job-progression] ';
32
- }
33
- ngOnInit() {
34
- if (isNil(this.jobProgressionService)) {
35
- console.warn(`${this._logPrefix}No service injected`);
36
- }
37
- // parse options
38
- this.autoHide = toBoolean(this.options?.autoHide, false);
39
- this.visible = !this.autoHide;
40
- this.autoHideDelay = toNumber(this.options?.autoHideDelay, 1000);
41
- this.autoRemove = toBoolean(this.options?.autoRemove, true);
42
- this.autoRemoveDelay = toNumber(this.options?.autoRemoveDelay, 1000);
43
- }
44
- addJob(id) {
45
- if (isNil(this.jobProgressionService)) {
46
- console.warn(`${this._logPrefix}No service injected. Can't add a job`);
47
- return;
48
- }
49
- if (!!this.getProgression(id)) {
50
- console.warn(`${this._logPrefix}Job (id=${id}) already present`);
51
- return;
52
- }
53
- if (this.debug) {
54
- console.debug(`${this._logPrefix}Add job id=${id}`);
55
- }
56
- // Adding empty job progression
57
- const progression = new JobProgression(id);
58
- this.jobProgressions.push(progression);
59
- this.disabled = false;
60
- const sub = this.jobProgressionService.listenChanges(id)
61
- .pipe(filter(progression => {
62
- if (id !== progression.id) {
63
- console.error(`${this._logPrefix}Job progression (id=${progression.id}) doesn't match expected job (id=${id})`);
64
- return false;
65
- }
66
- return true;
67
- }), map(progression => {
68
- // Ensure visible
69
- this.visible = true;
70
- // Get current progression object
71
- const currentProgression = this.getProgression(id);
72
- if (!currentProgression) {
73
- // add it if absent
74
- this.jobProgressions.push(progression);
75
- if (this.debug) {
76
- console.debug(`${this._logPrefix}Progression added id=${id}`, progression);
77
- }
78
- }
79
- else {
80
- // update current
81
- Object.assign(currentProgression, progression);
82
- if (this.debug) {
83
- console.debug(`${this._logPrefix}Progression updated id=${id}`, progression);
84
- }
85
- }
86
- return progression;
87
- }))
88
- .subscribe(progression => {
89
- // update value
90
- this.updateValue();
91
- // job finished
92
- if (progression.total > 0 && progression.current == progression.total) {
93
- if (this.debug) {
94
- console.debug(`${this._logPrefix}Finished job id=${progression.id}`);
95
- }
96
- // emit event
97
- this.jobFinished.emit(progression.id);
98
- if (this.autoRemove) {
99
- setTimeout(() => {
100
- this.removeJob(progression.id);
101
- // If last job
102
- if (this.autoHide && !this.jobProgressions?.length) {
103
- setTimeout(async () => {
104
- this._listPopover?.dismiss();
105
- this.visible = false;
106
- this.markForCheck();
107
- }, this.autoHideDelay);
108
- }
109
- }, this.autoRemoveDelay);
110
- }
111
- }
112
- });
113
- this._subscriptionsById[id] = sub;
114
- this._subscriptions.add(sub);
115
- }
116
- removeJob(id) {
117
- if (this.debug) {
118
- console.debug(`${this._logPrefix}Remove job id=${id}`);
119
- }
120
- const sub = this._subscriptionsById[id];
121
- if (sub) {
122
- this._subscriptions.remove(sub);
123
- sub.unsubscribe();
124
- }
125
- const progression = this.getProgression(id);
126
- if (progression) {
127
- this.jobProgressions.splice(this.jobProgressions.indexOf(progression), 1);
128
- }
129
- this.updateValue();
130
- }
131
- getProgression(id) {
132
- return this.jobProgressions.find(progression => progression.id === id);
133
- }
134
- updateValue() {
135
- if (this.debug) {
136
- console.debug(`${this._logPrefix}Updating value`);
137
- }
138
- let value = 0;
139
- const nbProgression = arraySize(this.jobProgressions);
140
- let allIndeterminate = nbProgression > 0;
141
- this.jobProgressions.forEach(progression => {
142
- const indeterminate = progression.total === 0;
143
- allIndeterminate = allIndeterminate && indeterminate;
144
- if (!indeterminate) {
145
- value = value + progression.current * 100 / progression.total;
146
- }
147
- });
148
- this.value = nbProgression > 0 ? value / nbProgression : 0;
149
- this.mode = allIndeterminate ? 'indeterminate' : 'determinate';
150
- if (this.debug) {
151
- console.debug(`${this._logPrefix}Setting value=${this.value}, mode=${this.mode}`);
152
- }
153
- this.markForCheck();
154
- }
155
- async showList(event) {
156
- this._listPopover = await this.popoverController.create({
157
- component: JobProgressionList,
158
- componentProps: {
159
- titleI18n: this.titleI18n,
160
- jobProgressions: this.jobProgressions
161
- },
162
- backdropDismiss: true,
163
- keyboardClose: true,
164
- event,
165
- translucent: true,
166
- cssClass: 'popover-large'
167
- });
168
- await this._listPopover.present();
169
- await this._listPopover.onDidDismiss();
170
- this._listPopover = undefined;
171
- }
172
- markForCheck() {
173
- this.cd.markForCheck();
174
- }
175
- ngOnDestroy() {
176
- if (this.debug) {
177
- console.debug(`${this._logPrefix}Destroying`);
178
- }
179
- this._subscriptions.unsubscribe();
180
- }
181
- }
182
- JobProgressionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: JobProgressionComponent, deps: [{ token: JobProgressionServiceToken, optional: true }, { token: i1.PopoverController }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
183
- JobProgressionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.1", type: JobProgressionComponent, selector: "app-job-progression", inputs: { debug: "debug", titleI18n: "titleI18n", options: "options" }, outputs: { jobFinished: "jobFinished" }, ngImport: i0, template: "<button\n #button\n mat-icon-button\n [title]=\"titleI18n | translate\"\n [disabled]=\"disabled\"\n *ngIf=\"visible\"\n (click)=\"showList($event)\"\n>\n <mat-icon\n [matBadge]=\"jobProgressions?.length\"\n [matBadgeHidden]=\"!jobProgressions?.length\"\n matBadgeColor=\"accent\"\n matBadgeSize=\"small\"\n matBadgePosition=\"above after\"\n >{{ disabled || jobProgressions?.length ? 'schedule' : 'task_alt' }}\n </mat-icon>\n <mat-spinner\n #spinner\n *ngIf=\"jobProgressions?.length\"\n class=\"floating-spinner\"\n [color]=\"color\"\n [mode]=\"mode\"\n [value]=\"value\"\n diameter=\"30\"\n strokeWidth=\"3\"\n ></mat-spinner>\n</button>\n\n", styles: [".floating-spinner{position:absolute;top:6px;left:5px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i6.MatBadge, selector: "[matBadge]", inputs: ["matBadgeDisabled", "matBadgeColor", "matBadgeOverlap", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
184
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: JobProgressionComponent, decorators: [{
185
- type: Component,
186
- args: [{ selector: 'app-job-progression', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n #button\n mat-icon-button\n [title]=\"titleI18n | translate\"\n [disabled]=\"disabled\"\n *ngIf=\"visible\"\n (click)=\"showList($event)\"\n>\n <mat-icon\n [matBadge]=\"jobProgressions?.length\"\n [matBadgeHidden]=\"!jobProgressions?.length\"\n matBadgeColor=\"accent\"\n matBadgeSize=\"small\"\n matBadgePosition=\"above after\"\n >{{ disabled || jobProgressions?.length ? 'schedule' : 'task_alt' }}\n </mat-icon>\n <mat-spinner\n #spinner\n *ngIf=\"jobProgressions?.length\"\n class=\"floating-spinner\"\n [color]=\"color\"\n [mode]=\"mode\"\n [value]=\"value\"\n diameter=\"30\"\n strokeWidth=\"3\"\n ></mat-spinner>\n</button>\n\n", styles: [".floating-spinner{position:absolute;top:6px;left:5px}\n"] }]
187
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
188
- type: Optional
189
- }, {
190
- type: Inject,
191
- args: [JobProgressionServiceToken]
192
- }] }, { type: i1.PopoverController }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { debug: [{
193
- type: Input
194
- }], titleI18n: [{
195
- type: Input
196
- }], options: [{
197
- type: Input
198
- }], jobFinished: [{
199
- type: Output
200
- }] } });
201
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9iLXByb2dyZXNzaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc29jaWFsL2pvYi9wcm9ncmVzc2lvbi9qb2ItcHJvZ3Jlc3Npb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zb2NpYWwvam9iL3Byb2dyZXNzaW9uL2pvYi1wcm9ncmVzc2lvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd4SixPQUFPLEVBQTBCLDBCQUEwQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXBDLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRixPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxrQkFBa0IsRUFBNkIsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7O0FBZXZGLE1BQU0sT0FBTyx1QkFBdUI7SUF3QmxDLFlBQzRELHFCQUE2QyxFQUM3RixpQkFBb0MsRUFDcEMsRUFBcUI7UUFGMkIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF3QjtRQUM3RixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBekJ4QixVQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ2QsY0FBUyxHQUFHLDhCQUE4QixDQUFDO1FBRTFD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QkE0QkE7MkZESGEsdUJBQXVCO2tCQU5uQyxTQUFTOytCQUNFLHFCQUFxQixtQkFHZCx1QkFBdUIsQ0FBQyxNQUFNOzswQkEyQjVDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsMEJBQTBCOzRHQXZCdkMsS0FBSztzQkFBYixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWwsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGhlbWVQYWxldHRlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBQcm9ncmVzc1NwaW5uZXJNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5pbXBvcnQgeyBJSm9iUHJvZ3Jlc3Npb25TZXJ2aWNlLCBKb2JQcm9ncmVzc2lvblNlcnZpY2VUb2tlbiB9IGZyb20gJy4uL2pvYi5zZXJ2aWNlJztcbmltcG9ydCB7IEpvYlByb2dyZXNzaW9uIH0gZnJvbSAnLi4vam9iLm1vZGVsJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgT2JqZWN0TWFwIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3R5cGVzJztcbmltcG9ydCB7IGFycmF5U2l6ZSwgaXNOaWwsIHRvQm9vbGVhbiwgdG9OdW1iZXIgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcbmltcG9ydCB7IGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUG9wb3ZlckNvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBKb2JQcm9ncmVzc2lvbkxpc3QsIEpvYlByb2dyZXNzaW9uTGlzdE9wdGlvbnMgfSBmcm9tICcuL2pvYi1wcm9ncmVzc2lvbi5saXN0JztcblxuZXhwb3J0IGludGVyZmFjZSBKb2JQcm9ncmVzc2lvbk9wdGlvbnMge1xuICBhdXRvSGlkZTogYm9vbGVhbjtcbiAgYXV0b0hpZGVEZWxheTogbnVtYmVyO1xuICBhdXRvUmVtb3ZlOiBib29sZWFuO1xuICBhdXRvUmVtb3ZlRGVsYXk6IG51bWJlcjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWpvYi1wcm9ncmVzc2lvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9qb2ItcHJvZ3Jlc3Npb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9qb2ItcHJvZ3Jlc3Npb24uY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBKb2JQcm9ncmVzc2lvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBASW5wdXQoKSBkZWJ1ZyA9IGZhbHNlO1xuICBASW5wdXQoKSB0aXRsZUkxOG4gPSAnU09DSUFMLkpPQi5QUk9HUkVTU0lPTi5USVRMRSc7XG4gIEBJbnB1dCgpIG9wdGlvbnM6IEpvYlByb2dyZXNzaW9uT3B0aW9ucztcbiAgQE91dHB1dCgpIGpvYkZpbmlzaGVkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgdmlzaWJsZTogYm9vbGVhbjtcbiAgZGlzYWJsZWQgPSB0cnVlO1xuICBjb2xvcjogVGhlbWVQYWxldHRlID0gJ2FjY2VudCc7XG4gIG1vZGU6IFByb2dyZXNzU3Bpbm5lck1vZGUgPSAnZGV0ZXJtaW5hdGUnO1xuICB2YWx1ZSA9IDA7XG4gIGpvYlByb2dyZXNzaW9uczogSm9iUHJvZ3Jlc3Npb25bXSA9IFtdO1xuXG4gIHByb3RlY3RlZCBhdXRvSGlkZTogYm9vbGVhbjtcbiAgcHJvdGVjdGVkIGF1dG9IaWRlRGVsYXk6IG51bWJlcjtcbiAgcHJvdGVjdGVkIGF1dG9SZW1vdmU6IGJvb2xlYW47XG4gIHByb3RlY3RlZCBhdXRvUmVtb3ZlRGVsYXk6IG51bWJlcjtcblxuICBwcml2YXRlIF9saXN0UG9wb3ZlcjogSFRNTElvblBvcG92ZXJFbGVtZW50O1xuICBwcml2YXRlIF9zdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICBwcml2YXRlIF9zdWJzY3JpcHRpb25zQnlJZDogT2JqZWN0TWFwPFN1YnNjcmlwdGlvbj4gPSB7fTtcbiAgcHJpdmF0ZSBfbG9nUHJlZml4ID0gJ1tqb2ItcHJvZ3Jlc3Npb25dICc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChKb2JQcm9ncmVzc2lvblNlcnZpY2VUb2tlbikgcHJvdGVjdGVkIGpvYlByb2dyZXNzaW9uU2VydmljZTogSUpvYlByb2dyZXNzaW9uU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgcG9wb3ZlckNvbnRyb2xsZXI6IFBvcG92ZXJDb250cm9sbGVyLFxuICAgIHByb3RlY3RlZCBjZDogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG5cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmIChpc05pbCh0aGlzLmpvYlByb2dyZXNzaW9uU2VydmljZSkpIHtcbiAgICAgIGNvbnNvbGUud2FybihgJHt0aGlzLl9sb2dQcmVmaXh9Tm8gc2VydmljZSBpbmplY3RlZGApO1xuICAgIH1cbiAgICAvLyBwYXJzZSBvcHRpb25zXG4gICAgdGhpcy5hdXRvSGlkZSA9IHRvQm9vbGVhbih0aGlzLm9wdGlvbnM/LmF1dG9IaWRlLCBmYWxzZSk7XG4gICAgdGhpcy52aXNpYmxlID0gIXRoaXMuYXV0b0hpZGU7XG4gICAgdGhpcy5hdXRvSGlkZURlbGF5ID0gdG9OdW1iZXIodGhpcy5vcHRpb25zPy5hdXRvSGlkZURlbGF5LCAxMDAwKTtcbiAgICB0aGlzLmF1dG9SZW1vdmUgPSB0b0Jvb2xlYW4odGhpcy5vcHRpb25zPy5hdXRvUmVtb3ZlLCB0cnVlKTtcbiAgICB0aGlzLmF1dG9SZW1vdmVEZWxheSA9IHRvTnVtYmVyKHRoaXMub3B0aW9ucz8uYXV0b1JlbW92ZURlbGF5LCAxMDAwKTtcbiAgfVxuXG4gIGFkZEpvYihpZDogbnVtYmVyKSB7XG4gICAgaWYgKGlzTmlsKHRoaXMuam9iUHJvZ3Jlc3Npb25TZXJ2aWNlKSkge1xuICAgICAgY29uc29sZS53YXJuKGAke3RoaXMuX2xvZ1ByZWZpeH1ObyBzZXJ2aWNlIGluamVjdGVkLiBDYW4ndCBhZGQgYSBqb2JgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoISF0aGlzLmdldFByb2dyZXNzaW9uKGlkKSkge1xuICAgICAgY29uc29sZS53YXJuKGAke3RoaXMuX2xvZ1ByZWZpeH1Kb2IgKGlkPSR7aWR9KSBhbHJlYWR5IHByZXNlbnRgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuZGVidWcpIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoYCR7dGhpcy5fbG9nUHJlZml4fUFkZCBqb2IgaWQ9JHtpZH1gKTtcbiAgICB9XG4gICAgLy8gQWRkaW5nIGVtcHR5IGpvYiBwcm9ncmVzc2lvblxuICAgIGNvbnN0IHByb2dyZXNzaW9uID0gbmV3IEpvYlByb2dyZXNzaW9uKGlkKTtcbiAgICB0aGlzLmpvYlByb2dyZXNzaW9ucy5wdXNoKHByb2dyZXNzaW9uKTtcblxuICAgIHRoaXMuZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IHN1YiA9IHRoaXMuam9iUHJvZ3Jlc3Npb25TZXJ2aWNlLmxpc3RlbkNoYW5nZXMoaWQpXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKHByb2dyZXNzaW9uID0+IHtcbiAgICAgICAgICBpZiAoaWQgIT09IHByb2dyZXNzaW9uLmlkKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGAke3RoaXMuX2xvZ1ByZWZpeH1Kb2IgcHJvZ3Jlc3Npb24gKGlkPSR7cHJvZ3Jlc3Npb24uaWR9KSBkb2Vzbid0IG1hdGNoIGV4cGVjdGVkIGpvYiAoaWQ9JHtpZH0pYCk7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9KSxcbiAgICAgICAgbWFwKHByb2dyZXNzaW9uID0+IHtcbiAgICAgICAgICAvLyBFbnN1cmUgdmlzaWJsZVxuICAgICAgICAgIHRoaXMudmlzaWJsZSA9IHRydWU7XG4gICAgICAgICAgLy8gR2V0IGN1cnJlbnQgcHJvZ3Jlc3Npb24gb2JqZWN0XG4gICAgICAgICAgY29uc3QgY3VycmVudFByb2dyZXNzaW9uID0gdGhpcy5nZXRQcm9ncmVzc2lvbihpZCk7XG4gICAgICAgICAgaWYgKCFjdXJyZW50UHJvZ3Jlc3Npb24pIHtcbiAgICAgICAgICAgIC8vIGFkZCBpdCBpZiBhYnNlbnRcbiAgICAgICAgICAgIHRoaXMuam9iUHJvZ3Jlc3Npb25zLnB1c2gocHJvZ3Jlc3Npb24pO1xuICAgICAgICAgICAgaWYgKHRoaXMuZGVidWcpIHtcbiAgICAgICAgICAgICAgY29uc29sZS5kZWJ1ZyhgJHt0aGlzLl9sb2dQcmVmaXh9UHJvZ3Jlc3Npb24gYWRkZWQgaWQ9JHtpZH1gLCBwcm9ncmVzc2lvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIHVwZGF0ZSBjdXJyZW50XG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKGN1cnJlbnRQcm9ncmVzc2lvbiwgcHJvZ3Jlc3Npb24pO1xuICAgICAgICAgICAgaWYgKHRoaXMuZGVidWcpIHtcbiAgICAgICAgICAgICAgY29uc29sZS5kZWJ1ZyhgJHt0aGlzLl9sb2dQcmVmaXh9UHJvZ3Jlc3Npb24gdXBkYXRlZCBpZD0ke2lkfWAsIHByb2dyZXNzaW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHByb2dyZXNzaW9uO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShwcm9ncmVzc2lvbiA9PiB7XG4gICAgICAgIC8vIHVwZGF0ZSB2YWx1ZVxuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKCk7XG5cbiAgICAgICAgLy8gam9iIGZpbmlzaGVkXG4gICAgICAgIGlmIChwcm9ncmVzc2lvbi50b3RhbCA+IDAgJiYgcHJvZ3Jlc3Npb24uY3VycmVudCA9PSBwcm9ncmVzc2lvbi50b3RhbCkge1xuICAgICAgICAgIGlmICh0aGlzLmRlYnVnKSB7XG4gICAgICAgICAgICBjb25zb2xlLmRlYnVnKGAke3RoaXMuX2xvZ1ByZWZpeH1GaW5pc2hlZCBqb2IgaWQ9JHtwcm9ncmVzc2lvbi5pZH1gKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gZW1pdCBldmVudFxuICAgICAgICAgIHRoaXMuam9iRmluaXNoZWQuZW1pdChwcm9ncmVzc2lvbi5pZCk7XG4gICAgICAgICAgaWYgKHRoaXMuYXV0b1JlbW92ZSkge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMucmVtb3ZlSm9iKHByb2dyZXNzaW9uLmlkKTtcbiAgICAgICAgICAgICAgLy8gSWYgbGFzdCBqb2JcbiAgICAgICAgICAgICAgaWYgKHRoaXMuYXV0b0hpZGUgJiYgIXRoaXMuam9iUHJvZ3Jlc3Npb25zPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuX2xpc3RQb3BvdmVyPy5kaXNtaXNzKCk7XG4gICAgICAgICAgICAgICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICAgICAgfSwgdGhpcy5hdXRvSGlkZURlbGF5KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgdGhpcy5hdXRvUmVtb3ZlRGVsYXkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zQnlJZFtpZF0gPSBzdWI7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoc3ViKTtcbiAgfVxuXG4gIHJlbW92ZUpvYihpZDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuZGVidWcpIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoYCR7dGhpcy5fbG9nUHJlZml4fVJlbW92ZSBqb2IgaWQ9JHtpZH1gKTtcbiAgICB9XG4gICAgY29uc3Qgc3ViID0gdGhpcy5fc3Vic2NyaXB0aW9uc0J5SWRbaWRdO1xuICAgIGlmIChzdWIpIHtcbiAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMucmVtb3ZlKHN1Yik7XG4gICAgICBzdWIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgY29uc3QgcHJvZ3Jlc3Npb24gPSB0aGlzLmdldFByb2dyZXNzaW9uKGlkKTtcbiAgICBpZiAocHJvZ3Jlc3Npb24pIHtcbiAgICAgIHRoaXMuam9iUHJvZ3Jlc3Npb25zLnNwbGljZSh0aGlzLmpvYlByb2dyZXNzaW9ucy5pbmRleE9mKHByb2dyZXNzaW9uKSwgMSk7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlVmFsdWUoKTtcbiAgfVxuXG4gIGdldFByb2dyZXNzaW9uKGlkOiBudW1iZXIpOiBKb2JQcm9ncmVzc2lvbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuam9iUHJvZ3Jlc3Npb25zLmZpbmQocHJvZ3Jlc3Npb24gPT4gcHJvZ3Jlc3Npb24uaWQgPT09IGlkKTtcbiAgfVxuXG4gIHVwZGF0ZVZhbHVlKCkge1xuICAgIGlmICh0aGlzLmRlYnVnKSB7XG4gICAgICBjb25zb2xlLmRlYnVnKGAke3RoaXMuX2xvZ1ByZWZpeH1VcGRhdGluZyB2YWx1ZWApO1xuICAgIH1cbiAgICBsZXQgdmFsdWUgPSAwO1xuICAgIGNvbnN0IG5iUHJvZ3Jlc3Npb24gPSBhcnJheVNpemUodGhpcy5qb2JQcm9ncmVzc2lvbnMpO1xuICAgIGxldCBhbGxJbmRldGVybWluYXRlID0gbmJQcm9ncmVzc2lvbiA+IDA7XG5cbiAgICB0aGlzLmpvYlByb2dyZXNzaW9ucy5mb3JFYWNoKHByb2dyZXNzaW9uID0+IHtcbiAgICAgIGNvbnN0IGluZGV0ZXJtaW5hdGUgPSBwcm9ncmVzc2lvbi50b3RhbCA9PT0gMDtcbiAgICAgIGFsbEluZGV0ZXJtaW5hdGUgPSBhbGxJbmRldGVybWluYXRlICYmIGluZGV0ZXJtaW5hdGU7XG4gICAgICBpZiAoIWluZGV0ZXJtaW5hdGUpIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZSArIHByb2dyZXNzaW9uLmN1cnJlbnQgKiAxMDAgLyBwcm9ncmVzc2lvbi50b3RhbDtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMudmFsdWUgPSBuYlByb2dyZXNzaW9uID4gMCA/IHZhbHVlIC8gbmJQcm9ncmVzc2lvbiA6IDA7XG4gICAgdGhpcy5tb2RlID0gYWxsSW5kZXRlcm1pbmF0ZSA/ICdpbmRldGVybWluYXRlJyA6ICdkZXRlcm1pbmF0ZSc7XG4gICAgaWYgKHRoaXMuZGVidWcpIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoYCR7dGhpcy5fbG9nUHJlZml4fVNldHRpbmcgdmFsdWU9JHt0aGlzLnZhbHVlfSwgbW9kZT0ke3RoaXMubW9kZX1gKTtcbiAgICB9XG5cbiAgICB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgYXN5bmMgc2hvd0xpc3QoZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5fbGlzdFBvcG92ZXIgPSBhd2FpdCB0aGlzLnBvcG92ZXJDb250cm9sbGVyLmNyZWF0ZSh7XG4gICAgICBjb21wb25lbnQ6IEpvYlByb2dyZXNzaW9uTGlzdCxcbiAgICAgIGNvbXBvbmVudFByb3BzOiA8Sm9iUHJvZ3Jlc3Npb25MaXN0T3B0aW9ucz57XG4gICAgICAgIHRpdGxlSTE4bjogdGhpcy50aXRsZUkxOG4sXG4gICAgICAgIGpvYlByb2dyZXNzaW9uczogdGhpcy5qb2JQcm9ncmVzc2lvbnNcbiAgICAgIH0sXG4gICAgICBiYWNrZHJvcERpc21pc3M6IHRydWUsXG4gICAgICBrZXlib2FyZENsb3NlOiB0cnVlLFxuICAgICAgZXZlbnQsXG4gICAgICB0cmFuc2x1Y2VudDogdHJ1ZSxcbiAgICAgIGNzc0NsYXNzOiAncG9wb3Zlci1sYXJnZSdcbiAgICB9KTtcbiAgICBhd2FpdCB0aGlzLl9saXN0UG9wb3Zlci5wcmVzZW50KCk7XG4gICAgYXdhaXQgdGhpcy5fbGlzdFBvcG92ZXIub25EaWREaXNtaXNzKCk7XG4gICAgdGhpcy5fbGlzdFBvcG92ZXIgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgbWFya0ZvckNoZWNrKCkge1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kZWJ1Zykge1xuICAgICAgY29uc29sZS5kZWJ1ZyhgJHt0aGlzLl9sb2dQcmVmaXh9RGVzdHJveWluZ2ApO1xuICAgIH1cbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiIsIjxidXR0b25cbiAgI2J1dHRvblxuICBtYXQtaWNvbi1idXR0b25cbiAgW3RpdGxlXT1cInRpdGxlSTE4biB8IHRyYW5zbGF0ZVwiXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICpuZ0lmPVwidmlzaWJsZVwiXG4gIChjbGljayk9XCJzaG93TGlzdCgkZXZlbnQpXCJcbj5cbiAgPG1hdC1pY29uXG4gICAgW21hdEJhZGdlXT1cImpvYlByb2dyZXNzaW9ucz8ubGVuZ3RoXCJcbiAgICBbbWF0QmFkZ2VIaWRkZW5dPVwiIWpvYlByb2dyZXNzaW9ucz8ubGVuZ3RoXCJcbiAgICBtYXRCYWRnZUNvbG9yPVwiYWNjZW50XCJcbiAgICBtYXRCYWRnZVNpemU9XCJzbWFsbFwiXG4gICAgbWF0QmFkZ2VQb3NpdGlvbj1cImFib3ZlIGFmdGVyXCJcbiAgPnt7IGRpc2FibGVkIHx8IGpvYlByb2dyZXNzaW9ucz8ubGVuZ3RoID8gJ3NjaGVkdWxlJyA6ICd0YXNrX2FsdCcgfX1cbiAgPC9tYXQtaWNvbj5cbiAgPG1hdC1zcGlubmVyXG4gICAgI3NwaW5uZXJcbiAgICAqbmdJZj1cImpvYlByb2dyZXNzaW9ucz8ubGVuZ3RoXCJcbiAgICBjbGFzcz1cImZsb2F0aW5nLXNwaW5uZXJcIlxuICAgIFtjb2xvcl09XCJjb2xvclwiXG4gICAgW21vZGVdPVwibW9kZVwiXG4gICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICBkaWFtZXRlcj1cIjMwXCJcbiAgICBzdHJva2VXaWR0aD1cIjNcIlxuICA+PC9tYXQtc3Bpbm5lcj5cbjwvYnV0dG9uPlxuXG4iXX0=
@@ -1,30 +0,0 @@
1
- import { ElementRef, OnDestroy, OnInit } from '@angular/core';
2
- import { MatBadgeSize } from '@angular/material/badge';
3
- import { AppColors } from '../../types';
4
- import * as i0 from "@angular/core";
5
- export declare type MatBadgeFill = 'clear' | 'solid';
6
- export declare class MatBadgeIconDirective implements OnInit, OnDestroy {
7
- private el;
8
- set size(value: MatBadgeSize);
9
- get size(): MatBadgeSize;
10
- set color(value: AppColors);
11
- get color(): AppColors;
12
- set fill(value: MatBadgeFill);
13
- get fill(): MatBadgeFill;
14
- set matIcon(icon: string);
15
- set ionIcon(icon: string);
16
- private _size;
17
- private _color;
18
- private _fill;
19
- private _matIcon;
20
- private _ionIcon;
21
- private _html;
22
- private _subscription;
23
- private _$update;
24
- constructor(el: ElementRef);
25
- ngOnInit(): void;
26
- ngOnDestroy(): void;
27
- private updateView;
28
- static ɵfac: i0.ɵɵFactoryDeclaration<MatBadgeIconDirective, never>;
29
- static ɵdir: i0.ɵɵDirectiveDeclaration<MatBadgeIconDirective, "[matBadgeIcon], [ionBadgeIcon]", never, { "size": "matBadgeSize"; "color": "matBadgeColor"; "fill": "matBadgeFill"; "matIcon": "matBadgeIcon"; "ionIcon": "ionBadgeIcon"; }, {}, never, never, false>;
30
- }
@@ -1,10 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- import * as i1 from "./badge-icon.directive";
3
- import * as i2 from "@angular/common";
4
- import * as i3 from "@ionic/angular";
5
- import * as i4 from "@angular/material/badge";
6
- export declare class SharedMatBadgeIconModule {
7
- static ɵfac: i0.ɵɵFactoryDeclaration<SharedMatBadgeIconModule, never>;
8
- static ɵmod: i0.ɵɵNgModuleDeclaration<SharedMatBadgeIconModule, [typeof i1.MatBadgeIconDirective], [typeof i2.CommonModule, typeof i3.IonicModule, typeof i4.MatBadgeModule], [typeof i1.MatBadgeIconDirective]>;
9
- static ɵinj: i0.ɵɵInjectorDeclaration<SharedMatBadgeIconModule>;
10
- }
@@ -1,12 +0,0 @@
1
- import { BehaviorSubject } from 'rxjs';
2
- import { MatBadgeFill } from './badge-icon.directive';
3
- import { MatBadgeSize } from '@angular/material/badge';
4
- import * as i0 from "@angular/core";
5
- export declare class MatBadgeIconTestPage {
6
- $icon: BehaviorSubject<string>;
7
- $size: BehaviorSubject<MatBadgeSize>;
8
- $fill: BehaviorSubject<MatBadgeFill>;
9
- $color: BehaviorSubject<string>;
10
- static ɵfac: i0.ɵɵFactoryDeclaration<MatBadgeIconTestPage, never>;
11
- static ɵcmp: i0.ɵɵComponentDeclaration<MatBadgeIconTestPage, "mat-badge-icon-test", never, {}, {}, never, never, false>;
12
- }