@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
@@ -180,9 +180,9 @@ export class UploadFileComponent {
180
180
  return waitFor(() => this.processingFilesCount === 0, opts);
181
181
  }
182
182
  }
183
- UploadFileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: UploadFileComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
184
- UploadFileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.1", type: UploadFileComponent, selector: "app-upload-file", inputs: { fileExtension: "fileExtension", uniqueFile: "uniqueFile", instantUpload: "instantUpload", uploadFn: "uploadFn", deleteFn: "deleteFn", maxParallelUpload: "maxParallelUpload" }, viewQueries: [{ propertyName: "fileDropEl", first: true, predicate: ["fileDropRef"], descendants: true }], ngImport: i0, template: "<div *ngIf=\"!uniqueFile || files.length === 0\"\n class=\"container\"\n appDragAndDrop (fileDropped)=\"onFileDropped($event)\">\n <input\n type=\"file\"\n #fileDropRef\n id=\"fileDropRef\"\n multiple\n [accept]=\"fileExtension\"\n (change)=\"fileBrowseHandler($any($event.target).files)\"\n />\n <mat-icon style=\"font-size: xx-large;\" color=\"accent\" class=\"text-size\">upload</mat-icon>\n <ion-label\n [innerHTML]=\"\n 'FILE.UPLOAD.DRAG_AND_DROP' | translate: { extension: !fileExtension ? '' : ' (' + fileExtension + ')' }\n \"\n ></ion-label>\n <ion-button>{{ 'FILE.UPLOAD.BROWSE' | translate }}</ion-button>\n</div>\n<div class=\"files-list\">\n <div *ngFor=\"let file of files; index as i\"\n class=\"single-file\"\n [class.deleting]=\"file.deleting\">\n <mat-icon>description</mat-icon>\n <div class=\"info\">\n <h4 class=\"name\">\n {{ file.name }}\n </h4>\n <p class=\"size\">\n {{ file.size | fileSize }}\n </p>\n <ion-progress-bar *ngIf=\"!file.error\"\n [value]=\"file.progress||0\"\n [type]=\"(file.deleting || file.progress === -1) ? 'indeterminate' : 'determinate'\"></ion-progress-bar>\n <ion-label *ngIf=\"file.error\" color=\"danger\" [innerHTML]=\"file.error | translate\"></ion-label>\n </div>\n <!-- remote from list (before importation) -->\n <button *ngIf=\"!(file.progress) || file.error\" mat-icon-button (click)=\"deleteFile(i)\">\n <mat-icon>clear</mat-icon>\n </button>\n <!-- delete file (remotely - after importation) -->\n <button *ngIf=\"file.progress === 1 && !!deleteFn && !file.deleting\" mat-icon-button (click)=\"deleteFile(i)\">\n <mat-icon>clear</mat-icon>\n </button>\n </div>\n</div>\n", styles: [".container{width:calc(100% - 3rem);min-height:200px;padding:2rem;text-align:center;border:dashed 1px #979797;position:relative;margin:1.5rem}.container input{opacity:0;position:absolute;z-index:2;width:100%;height:100%;top:0;left:0;cursor:pointer}.container ion-label{display:block;font-size:20px;font-weight:600;color:#38424c}.container label{display:inline-block;color:#fff;width:183px;height:44px;border-radius:21.5px;background-color:#db202f;padding:8px 16px}.fileover{animation:shake 1s;animation-iteration-count:infinite}.files-list{max-height:300px;overflow:auto}.files-list .single-file{display:flex;flex-grow:1;padding:.5rem;justify-content:space-between;align-items:center;border:dashed 1px #979797;margin-bottom:1rem}.files-list .single-file.deleting .name{color:gray!important;font-style:italic!important}.files-list .single-file .name{font-size:14px;font-weight:500;color:#353f4a;margin:0}.files-list .single-file .size{font-size:12px;font-weight:500;color:#a4a4a4;margin:0 0 .25rem}.files-list .single-file .info{width:100%}@keyframes shake{0%{transform:translate(1px,1px) rotate(0)}10%{transform:translate(-1px,-2px) rotate(-1deg)}20%{transform:translate(-3px) rotate(1deg)}30%{transform:translate(3px,2px) rotate(0)}40%{transform:translate(1px,-1px) rotate(1deg)}50%{transform:translate(-1px,2px) rotate(-1deg)}60%{transform:translate(-3px,1px) rotate(0)}70%{transform:translate(3px,1px) rotate(-1deg)}80%{transform:translate(-1px,-1px) rotate(1deg)}90%{transform:translate(1px,2px) rotate(0)}to{transform:translate(1px,-2px) rotate(-1deg)}}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i3.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i3.IonProgressBar, selector: "ion-progress-bar", inputs: ["buffer", "color", "mode", "reversed", "type", "value"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i6.DragAndDropDirective, selector: "[appDragAndDrop]", outputs: ["fileDropped"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "pipe", type: i7.FileSizePipe, name: "fileSize" }] });
185
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: UploadFileComponent, decorators: [{
183
+ UploadFileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: UploadFileComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
184
+ UploadFileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.6", type: UploadFileComponent, selector: "app-upload-file", inputs: { fileExtension: "fileExtension", uniqueFile: "uniqueFile", instantUpload: "instantUpload", uploadFn: "uploadFn", deleteFn: "deleteFn", maxParallelUpload: "maxParallelUpload" }, viewQueries: [{ propertyName: "fileDropEl", first: true, predicate: ["fileDropRef"], descendants: true }], ngImport: i0, template: "<div *ngIf=\"!uniqueFile || files.length === 0\"\n class=\"container\"\n appDragAndDrop (fileDropped)=\"onFileDropped($event)\">\n <input\n type=\"file\"\n #fileDropRef\n id=\"fileDropRef\"\n multiple\n [accept]=\"fileExtension\"\n (change)=\"fileBrowseHandler($any($event.target).files)\"\n />\n <mat-icon style=\"font-size: xx-large;\" color=\"accent\" class=\"text-size\">upload</mat-icon>\n <ion-label\n [innerHTML]=\"\n 'FILE.UPLOAD.DRAG_AND_DROP' | translate: { extension: !fileExtension ? '' : ' (' + fileExtension + ')' }\n \"\n ></ion-label>\n <ion-button>{{ 'FILE.UPLOAD.BROWSE' | translate }}</ion-button>\n</div>\n<div class=\"files-list\">\n <div *ngFor=\"let file of files; index as i\"\n class=\"single-file\"\n [class.deleting]=\"file.deleting\">\n <mat-icon>description</mat-icon>\n <div class=\"info\">\n <h4 class=\"name\">\n {{ file.name }}\n </h4>\n <p class=\"size\">\n {{ file.size | fileSize }}\n </p>\n <ion-progress-bar *ngIf=\"!file.error\"\n [value]=\"file.progress||0\"\n [type]=\"(file.deleting || file.progress === -1) ? 'indeterminate' : 'determinate'\"></ion-progress-bar>\n <ion-label *ngIf=\"file.error\" color=\"danger\" [innerHTML]=\"file.error | translate\"></ion-label>\n </div>\n <!-- remote from list (before importation) -->\n <button *ngIf=\"!(file.progress) || file.error\" mat-icon-button (click)=\"deleteFile(i)\">\n <mat-icon>clear</mat-icon>\n </button>\n <!-- delete file (remotely - after importation) -->\n <button *ngIf=\"file.progress === 1 && !!deleteFn && !file.deleting\" mat-icon-button (click)=\"deleteFile(i)\">\n <mat-icon>clear</mat-icon>\n </button>\n </div>\n</div>\n", styles: [".container{width:calc(100% - 3rem);min-height:200px;padding:2rem;text-align:center;border:dashed 1px #979797;position:relative;margin:1.5rem}.container input{opacity:0;position:absolute;z-index:2;width:100%;height:100%;top:0;left:0;cursor:pointer}.container ion-label{display:block;font-size:20px;font-weight:600;color:#38424c}.container label{display:inline-block;color:#fff;width:183px;height:44px;border-radius:21.5px;background-color:#db202f;padding:8px 16px}.fileover{animation:shake 1s;animation-iteration-count:infinite}.files-list{max-height:300px;overflow:auto}.files-list .single-file{display:flex;flex-grow:1;padding:.5rem;justify-content:space-between;align-items:center;border:dashed 1px #979797;margin-bottom:1rem}.files-list .single-file.deleting .name{color:gray!important;font-style:italic!important}.files-list .single-file .name{font-size:14px;font-weight:500;color:#353f4a;margin:0}.files-list .single-file .size{font-size:12px;font-weight:500;color:#a4a4a4;margin:0 0 .25rem}.files-list .single-file .info{width:100%}@keyframes shake{0%{transform:translate(1px,1px) rotate(0)}10%{transform:translate(-1px,-2px) rotate(-1deg)}20%{transform:translate(-3px) rotate(1deg)}30%{transform:translate(3px,2px) rotate(0)}40%{transform:translate(1px,-1px) rotate(1deg)}50%{transform:translate(-1px,2px) rotate(-1deg)}60%{transform:translate(-3px,1px) rotate(0)}70%{transform:translate(3px,1px) rotate(-1deg)}80%{transform:translate(-1px,-1px) rotate(1deg)}90%{transform:translate(1px,2px) rotate(0)}to{transform:translate(1px,-2px) rotate(-1deg)}}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i3.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i3.IonProgressBar, selector: "ion-progress-bar", inputs: ["buffer", "color", "mode", "reversed", "type", "value"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i6.DragAndDropDirective, selector: "[appDragAndDrop]", outputs: ["fileDropped"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "pipe", type: i7.FileSizePipe, name: "fileSize" }] });
185
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: UploadFileComponent, decorators: [{
186
186
  type: Component,
187
187
  args: [{ selector: 'app-upload-file', template: "<div *ngIf=\"!uniqueFile || files.length === 0\"\n class=\"container\"\n appDragAndDrop (fileDropped)=\"onFileDropped($event)\">\n <input\n type=\"file\"\n #fileDropRef\n id=\"fileDropRef\"\n multiple\n [accept]=\"fileExtension\"\n (change)=\"fileBrowseHandler($any($event.target).files)\"\n />\n <mat-icon style=\"font-size: xx-large;\" color=\"accent\" class=\"text-size\">upload</mat-icon>\n <ion-label\n [innerHTML]=\"\n 'FILE.UPLOAD.DRAG_AND_DROP' | translate: { extension: !fileExtension ? '' : ' (' + fileExtension + ')' }\n \"\n ></ion-label>\n <ion-button>{{ 'FILE.UPLOAD.BROWSE' | translate }}</ion-button>\n</div>\n<div class=\"files-list\">\n <div *ngFor=\"let file of files; index as i\"\n class=\"single-file\"\n [class.deleting]=\"file.deleting\">\n <mat-icon>description</mat-icon>\n <div class=\"info\">\n <h4 class=\"name\">\n {{ file.name }}\n </h4>\n <p class=\"size\">\n {{ file.size | fileSize }}\n </p>\n <ion-progress-bar *ngIf=\"!file.error\"\n [value]=\"file.progress||0\"\n [type]=\"(file.deleting || file.progress === -1) ? 'indeterminate' : 'determinate'\"></ion-progress-bar>\n <ion-label *ngIf=\"file.error\" color=\"danger\" [innerHTML]=\"file.error | translate\"></ion-label>\n </div>\n <!-- remote from list (before importation) -->\n <button *ngIf=\"!(file.progress) || file.error\" mat-icon-button (click)=\"deleteFile(i)\">\n <mat-icon>clear</mat-icon>\n </button>\n <!-- delete file (remotely - after importation) -->\n <button *ngIf=\"file.progress === 1 && !!deleteFn && !file.deleting\" mat-icon-button (click)=\"deleteFile(i)\">\n <mat-icon>clear</mat-icon>\n </button>\n </div>\n</div>\n", styles: [".container{width:calc(100% - 3rem);min-height:200px;padding:2rem;text-align:center;border:dashed 1px #979797;position:relative;margin:1.5rem}.container input{opacity:0;position:absolute;z-index:2;width:100%;height:100%;top:0;left:0;cursor:pointer}.container ion-label{display:block;font-size:20px;font-weight:600;color:#38424c}.container label{display:inline-block;color:#fff;width:183px;height:44px;border-radius:21.5px;background-color:#db202f;padding:8px 16px}.fileover{animation:shake 1s;animation-iteration-count:infinite}.files-list{max-height:300px;overflow:auto}.files-list .single-file{display:flex;flex-grow:1;padding:.5rem;justify-content:space-between;align-items:center;border:dashed 1px #979797;margin-bottom:1rem}.files-list .single-file.deleting .name{color:gray!important;font-style:italic!important}.files-list .single-file .name{font-size:14px;font-weight:500;color:#353f4a;margin:0}.files-list .single-file .size{font-size:12px;font-weight:500;color:#a4a4a4;margin:0 0 .25rem}.files-list .single-file .info{width:100%}@keyframes shake{0%{transform:translate(1px,1px) rotate(0)}10%{transform:translate(-1px,-2px) rotate(-1deg)}20%{transform:translate(-3px) rotate(1deg)}30%{transform:translate(3px,2px) rotate(0)}40%{transform:translate(1px,-1px) rotate(1deg)}50%{transform:translate(-1px,2px) rotate(-1deg)}60%{transform:translate(-3px,1px) rotate(0)}70%{transform:translate(3px,1px) rotate(-1deg)}80%{transform:translate(-1px,-1px) rotate(1deg)}90%{transform:translate(1px,2px) rotate(0)}to{transform:translate(1px,-2px) rotate(-1deg)}}\n"] }]
188
188
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.TranslateService }]; }, propDecorators: { fileDropEl: [{
@@ -90,9 +90,9 @@ export class FormErrorTranslator {
90
90
  return errorKey;
91
91
  }
92
92
  }
93
- FormErrorTranslator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: FormErrorTranslator, deps: [{ token: i1.TranslateService }, { token: APP_FORM_ERROR_I18N_KEYS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
94
- FormErrorTranslator.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: FormErrorTranslator, providedIn: 'root' });
95
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: FormErrorTranslator, decorators: [{
93
+ FormErrorTranslator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: FormErrorTranslator, deps: [{ token: i1.TranslateService }, { token: APP_FORM_ERROR_I18N_KEYS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
94
+ FormErrorTranslator.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: FormErrorTranslator, providedIn: 'root' });
95
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: FormErrorTranslator, decorators: [{
96
96
  type: Injectable,
97
97
  args: [{ providedIn: 'root' }]
98
98
  }], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: undefined, decorators: [{
@@ -2,20 +2,20 @@ import { NgModule } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { TranslateModule } from '@ngx-translate/core';
4
4
  import { SharedModule } from '../../shared/shared.module';
5
- import { JobProgressionComponent } from './progression/job-progression.component';
5
+ import { JobProgressionIcon } from './progression/job-progression.icon';
6
6
  import { JobProgressionList } from './progression/job-progression.list';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "@ngx-translate/core";
9
9
  export class JobModule {
10
10
  }
11
- JobModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: JobModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
- JobModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.1", ngImport: i0, type: JobModule, declarations: [JobProgressionComponent,
11
+ JobModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: JobModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ JobModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.6", ngImport: i0, type: JobModule, declarations: [JobProgressionIcon,
13
13
  JobProgressionList], imports: [CommonModule,
14
- SharedModule, i1.TranslateModule], exports: [JobProgressionComponent] });
15
- JobModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: JobModule, imports: [CommonModule,
14
+ SharedModule, i1.TranslateModule], exports: [JobProgressionIcon] });
15
+ JobModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: JobModule, imports: [CommonModule,
16
16
  SharedModule,
17
17
  TranslateModule.forChild()] });
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: JobModule, decorators: [{
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: JobModule, decorators: [{
19
19
  type: NgModule,
20
20
  args: [{
21
21
  imports: [
@@ -24,12 +24,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
24
24
  TranslateModule.forChild(),
25
25
  ],
26
26
  declarations: [
27
- JobProgressionComponent,
27
+ JobProgressionIcon,
28
28
  JobProgressionList
29
29
  ],
30
30
  exports: [
31
- JobProgressionComponent
31
+ JobProgressionIcon
32
32
  ]
33
33
  }]
34
34
  }] });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9iLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc29jaWFsL2pvYi9qb2IubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDbEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7OztBQWdCeEUsTUFBTSxPQUFPLFNBQVM7O3NHQUFULFNBQVM7dUdBQVQsU0FBUyxpQkFQbEIsdUJBQXVCO1FBQ3ZCLGtCQUFrQixhQU5sQixZQUFZO1FBQ1osWUFBWSxpQ0FRWix1QkFBdUI7dUdBR2QsU0FBUyxZQVpsQixZQUFZO1FBQ1osWUFBWTtRQUNaLGVBQWUsQ0FBQyxRQUFRLEVBQUU7MkZBVWpCLFNBQVM7a0JBZHJCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixlQUFlLENBQUMsUUFBUSxFQUFFO3FCQUMzQjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1osdUJBQXVCO3dCQUN2QixrQkFBa0I7cUJBQ25CO29CQUNELE9BQU8sRUFBRTt3QkFDUCx1QkFBdUI7cUJBQ3hCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFNoYXJlZE1vZHVsZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9zaGFyZWQubW9kdWxlJztcbmltcG9ydCB7IEpvYlByb2dyZXNzaW9uQ29tcG9uZW50IH0gZnJvbSAnLi9wcm9ncmVzc2lvbi9qb2ItcHJvZ3Jlc3Npb24uY29tcG9uZW50JztcbmltcG9ydCB7IEpvYlByb2dyZXNzaW9uTGlzdCB9IGZyb20gJy4vcHJvZ3Jlc3Npb24vam9iLXByb2dyZXNzaW9uLmxpc3QnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFNoYXJlZE1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUuZm9yQ2hpbGQoKSxcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgSm9iUHJvZ3Jlc3Npb25Db21wb25lbnQsXG4gICAgSm9iUHJvZ3Jlc3Npb25MaXN0XG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBKb2JQcm9ncmVzc2lvbkNvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEpvYk1vZHVsZSB7fVxuIl19
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9iLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc29jaWFsL2pvYi9qb2IubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDeEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7OztBQWdCeEUsTUFBTSxPQUFPLFNBQVM7O3NHQUFULFNBQVM7dUdBQVQsU0FBUyxpQkFQbEIsa0JBQWtCO1FBQ2xCLGtCQUFrQixhQU5sQixZQUFZO1FBQ1osWUFBWSxpQ0FRWixrQkFBa0I7dUdBR1QsU0FBUyxZQVpsQixZQUFZO1FBQ1osWUFBWTtRQUNaLGVBQWUsQ0FBQyxRQUFRLEVBQUU7MkZBVWpCLFNBQVM7a0JBZHJCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixlQUFlLENBQUMsUUFBUSxFQUFFO3FCQUMzQjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1osa0JBQWtCO3dCQUNsQixrQkFBa0I7cUJBQ25CO29CQUNELE9BQU8sRUFBRTt3QkFDUCxrQkFBa0I7cUJBQ25CO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFNoYXJlZE1vZHVsZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9zaGFyZWQubW9kdWxlJztcbmltcG9ydCB7IEpvYlByb2dyZXNzaW9uSWNvbiB9IGZyb20gJy4vcHJvZ3Jlc3Npb24vam9iLXByb2dyZXNzaW9uLmljb24nO1xuaW1wb3J0IHsgSm9iUHJvZ3Jlc3Npb25MaXN0IH0gZnJvbSAnLi9wcm9ncmVzc2lvbi9qb2ItcHJvZ3Jlc3Npb24ubGlzdCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgU2hhcmVkTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZS5mb3JDaGlsZCgpLFxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBKb2JQcm9ncmVzc2lvbkljb24sXG4gICAgSm9iUHJvZ3Jlc3Npb25MaXN0XG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBKb2JQcm9ncmVzc2lvbkljb25cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBKb2JNb2R1bGUge31cbiJdfQ==
@@ -2,6 +2,7 @@ import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';
2
2
  import { JobProgression } from './job.model';
3
3
  import { BaseGraphqlService } from '../../core/services/base-graphql-service.class';
4
4
  import { ENVIRONMENT } from '../../../environments/environment.class';
5
+ import { of } from 'rxjs';
5
6
  import { gql } from '@apollo/client/core';
6
7
  import { isNil, toNumber } from '../../shared/functions';
7
8
  import { map } from 'rxjs/operators';
@@ -9,16 +10,18 @@ import { SocialErrorCodes } from '../social.errors';
9
10
  import * as i0 from "@angular/core";
10
11
  import * as i1 from "../../core/graphql/graphql.service";
11
12
  import * as i2 from "../../../environments/environment.class";
12
- export const JobProgressionServiceToken = new InjectionToken('JobProgressionService');
13
- const jobProgressionSubscription = gql `subscription UpdateJobProgression($id: Int!, $interval: Int){
14
- data: updateJobProgression(id: $id, interval: $interval) {
15
- id
16
- name
17
- message
18
- current
19
- total
20
- }
21
- }`;
13
+ export const APP_JOB_PROGRESSION_SERVICE = new InjectionToken('JobProgressionService');
14
+ const QUERIES = {
15
+ listenChanges: gql `subscription UpdateJobProgression($id: Int!, $interval: Int){
16
+ data: updateJobProgression(id: $id, interval: $interval) {
17
+ id
18
+ name
19
+ message
20
+ current
21
+ total
22
+ }
23
+ }`
24
+ };
22
25
  export class JobProgressionService extends BaseGraphqlService {
23
26
  constructor(graphql, environment) {
24
27
  super(graphql, environment);
@@ -28,13 +31,22 @@ export class JobProgressionService extends BaseGraphqlService {
28
31
  // For DEV only
29
32
  this._debug = environment && !environment.production;
30
33
  }
34
+ watchAll(options) {
35
+ return of([]); // TODO
36
+ }
37
+ addJob(id, job) {
38
+ throw new Error('no implemented');
39
+ }
40
+ removeJob(id) {
41
+ throw new Error('no implemented');
42
+ }
31
43
  listenChanges(id, options) {
32
44
  if (isNil(id))
33
45
  throw new Error(`${this._logPrefix}Missing argument 'id'`);
34
46
  if (this._debug)
35
47
  console.debug(`${this._logPrefix}[WS] Listening changes for job progression {${id}}...`);
36
48
  return this.graphql.subscribe({
37
- query: jobProgressionSubscription,
49
+ query: QUERIES.listenChanges,
38
50
  fetchPolicy: options?.fetchPolicy,
39
51
  variables: { id, interval: toNumber(options?.interval, 10) },
40
52
  error: { code: SocialErrorCodes.SUBSCRIBE_JOB_PROGRESSION_ERROR, message: 'SOCIAL.ERROR.SUBSCRIBE_JOB_PROGRESSION_ERROR' }
@@ -46,9 +58,9 @@ export class JobProgressionService extends BaseGraphqlService {
46
58
  }));
47
59
  }
48
60
  }
49
- JobProgressionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: JobProgressionService, deps: [{ token: i1.GraphqlService }, { token: ENVIRONMENT, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
50
- JobProgressionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: JobProgressionService });
51
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: JobProgressionService, decorators: [{
61
+ JobProgressionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: JobProgressionService, deps: [{ token: i1.GraphqlService }, { token: ENVIRONMENT, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
62
+ JobProgressionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: JobProgressionService });
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: JobProgressionService, decorators: [{
52
64
  type: Injectable
53
65
  }], ctorParameters: function () { return [{ type: i1.GraphqlService }, { type: i2.Environment, decorators: [{
54
66
  type: Optional
@@ -56,4 +68,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
56
68
  type: Inject,
57
69
  args: [ENVIRONMENT]
58
70
  }] }]; } });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9iLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC9qb2Ivam9iLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRXBGLE9BQU8sRUFBZSxXQUFXLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUVuRixPQUFPLEVBQWUsR0FBRyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7QUFFcEQsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsSUFBSSxjQUFjLENBQXdCLHVCQUF1QixDQUFDLENBQUM7QUFFN0csTUFBTSwwQkFBMEIsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7O0VBUXBDLENBQUE7QUFPRixNQUFNLE9BQU8scUJBQ1gsU0FBUSxrQkFBa0M7SUFHMUMsWUFDWSxPQUF1QixFQUNVLFdBQXdCO1FBRW5FLEtBQUssQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFIbEIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDVSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUduRSxJQUFJLENBQUMsVUFBVSxHQUFHLDRCQUE0QixDQUFDO1FBQy9DLGVBQWU7UUFDZixJQUFJLENBQUMsTUFBTSxHQUFHLFdBQVcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUM7SUFDdkQsQ0FBQztJQUVELGFBQWEsQ0FBQyxFQUFVLEVBQUUsT0FHekI7UUFFQyxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsdUJBQXVCLENBQUMsQ0FBQztRQUMxRSxJQUFJLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLCtDQUErQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRTFHLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQWdCO1lBQzNDLEtBQUssRUFBRSwwQkFBMEI7WUFDakMsV0FBVyxFQUFFLE9BQU8sRUFBRSxXQUFXO1lBQ2pDLFNBQVMsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUFDLEVBQUM7WUFDM0QsS0FBSyxFQUFFLEVBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLCtCQUErQixFQUFFLE9BQU8sRUFBRSw4Q0FBOEMsRUFBQztTQUN6SCxDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FBQyxDQUFDLEVBQUMsSUFBSSxFQUFDLEVBQUUsRUFBRTtZQUNiLE1BQU0sV0FBVyxHQUFHLElBQUksSUFBSSxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzVELElBQUksV0FBVyxJQUFJLElBQUksQ0FBQyxNQUFNO2dCQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxtQkFBbUIsRUFBRSxvQkFBb0IsRUFBRSxXQUFXLENBQUMsQ0FBQztZQUN4SCxPQUFPLFdBQVcsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBRUosQ0FBQzs7a0hBbkNVLHFCQUFxQixnREFNVixXQUFXO3NIQU50QixxQkFBcUI7MkZBQXJCLHFCQUFxQjtrQkFEakMsVUFBVTs7MEJBT04sUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEpvYlByb2dyZXNzaW9uIH0gZnJvbSAnLi9qb2IubW9kZWwnO1xuaW1wb3J0IHsgQmFzZUdyYXBocWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9iYXNlLWdyYXBocWwtc2VydmljZS5jbGFzcyc7XG5pbXBvcnQgeyBHcmFwaHFsU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvZ3JhcGhxbC9ncmFwaHFsLnNlcnZpY2UnO1xuaW1wb3J0IHsgRW52aXJvbm1lbnQsIEVOVklST05NRU5UIH0gZnJvbSAnLi4vLi4vLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50LmNsYXNzJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZldGNoUG9saWN5LCBncWwgfSBmcm9tICdAYXBvbGxvL2NsaWVudC9jb3JlJztcbmltcG9ydCB7IGlzTmlsLCB0b051bWJlciB9IGZyb20gJy4uLy4uL3NoYXJlZC9mdW5jdGlvbnMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU29jaWFsRXJyb3JDb2RlcyB9IGZyb20gJy4uL3NvY2lhbC5lcnJvcnMnO1xuXG5leHBvcnQgY29uc3QgSm9iUHJvZ3Jlc3Npb25TZXJ2aWNlVG9rZW4gPSBuZXcgSW5qZWN0aW9uVG9rZW48Sm9iUHJvZ3Jlc3Npb25TZXJ2aWNlPignSm9iUHJvZ3Jlc3Npb25TZXJ2aWNlJyk7XG5cbmNvbnN0IGpvYlByb2dyZXNzaW9uU3Vic2NyaXB0aW9uID0gZ3FsYHN1YnNjcmlwdGlvbiBVcGRhdGVKb2JQcm9ncmVzc2lvbigkaWQ6IEludCEsICRpbnRlcnZhbDogSW50KXtcbiAgZGF0YTogdXBkYXRlSm9iUHJvZ3Jlc3Npb24oaWQ6ICRpZCwgaW50ZXJ2YWw6ICRpbnRlcnZhbCkge1xuICAgIGlkXG4gICAgbmFtZVxuICAgIG1lc3NhZ2VcbiAgICBjdXJyZW50XG4gICAgdG90YWxcbiAgfVxufWBcblxuZXhwb3J0IGludGVyZmFjZSBJSm9iUHJvZ3Jlc3Npb25TZXJ2aWNlIHtcbiAgbGlzdGVuQ2hhbmdlcyhpZDogbnVtYmVyLCBvcHRpb25zPzogeyBpbnRlcnZhbD86IG51bWJlcjsgZmV0Y2hQb2xpY3k/OiBGZXRjaFBvbGljeSB9KTogT2JzZXJ2YWJsZTxKb2JQcm9ncmVzc2lvbj47XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBKb2JQcm9ncmVzc2lvblNlcnZpY2VcbiAgZXh0ZW5kcyBCYXNlR3JhcGhxbFNlcnZpY2U8Sm9iUHJvZ3Jlc3Npb24+XG4gIGltcGxlbWVudHMgSUpvYlByb2dyZXNzaW9uU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGdyYXBocWw6IEdyYXBocWxTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRU5WSVJPTk1FTlQpIHByb3RlY3RlZCBlbnZpcm9ubWVudDogRW52aXJvbm1lbnRcbiAgKSB7XG4gICAgc3VwZXIoZ3JhcGhxbCwgZW52aXJvbm1lbnQpO1xuICAgIHRoaXMuX2xvZ1ByZWZpeCA9ICdbam9iLXByb2dyZXNzaW9uLXNlcnZpY2VdICc7XG4gICAgLy8gRm9yIERFViBvbmx5XG4gICAgdGhpcy5fZGVidWcgPSBlbnZpcm9ubWVudCAmJiAhZW52aXJvbm1lbnQucHJvZHVjdGlvbjtcbiAgfVxuXG4gIGxpc3RlbkNoYW5nZXMoaWQ6IG51bWJlciwgb3B0aW9ucz86IHtcbiAgICBpbnRlcnZhbD86IG51bWJlcjtcbiAgICBmZXRjaFBvbGljeT86IEZldGNoUG9saWN5XG4gIH0pOiBPYnNlcnZhYmxlPEpvYlByb2dyZXNzaW9uPiB7XG5cbiAgICBpZiAoaXNOaWwoaWQpKSB0aHJvdyBuZXcgRXJyb3IoYCR7dGhpcy5fbG9nUHJlZml4fU1pc3NpbmcgYXJndW1lbnQgJ2lkJ2ApO1xuICAgIGlmICh0aGlzLl9kZWJ1ZykgY29uc29sZS5kZWJ1ZyhgJHt0aGlzLl9sb2dQcmVmaXh9W1dTXSBMaXN0ZW5pbmcgY2hhbmdlcyBmb3Igam9iIHByb2dyZXNzaW9uIHske2lkfX0uLi5gKTtcblxuICAgIHJldHVybiB0aGlzLmdyYXBocWwuc3Vic2NyaWJlPHsgZGF0YTogYW55IH0+KHtcbiAgICAgIHF1ZXJ5OiBqb2JQcm9ncmVzc2lvblN1YnNjcmlwdGlvbixcbiAgICAgIGZldGNoUG9saWN5OiBvcHRpb25zPy5mZXRjaFBvbGljeSxcbiAgICAgIHZhcmlhYmxlczogeyBpZCwgaW50ZXJ2YWw6IHRvTnVtYmVyKG9wdGlvbnM/LmludGVydmFsLCAxMCl9LFxuICAgICAgZXJyb3I6IHtjb2RlOiBTb2NpYWxFcnJvckNvZGVzLlNVQlNDUklCRV9KT0JfUFJPR1JFU1NJT05fRVJST1IsIG1lc3NhZ2U6ICdTT0NJQUwuRVJST1IuU1VCU0NSSUJFX0pPQl9QUk9HUkVTU0lPTl9FUlJPUid9XG4gICAgfSkucGlwZShcbiAgICAgIG1hcCgoe2RhdGF9KSA9PiB7XG4gICAgICAgIGNvbnN0IHByb2dyZXNzaW9uID0gZGF0YSAmJiBKb2JQcm9ncmVzc2lvbi5mcm9tT2JqZWN0KGRhdGEpO1xuICAgICAgICBpZiAocHJvZ3Jlc3Npb24gJiYgdGhpcy5fZGVidWcpIGNvbnNvbGUuZGVidWcoYCR7dGhpcy5fbG9nUHJlZml4fUpvYiBwcm9ncmVzc2lvbiAke2lkfSB1cGRhdGVkIG9uIHNlcnZlcmAsIHByb2dyZXNzaW9uKTtcbiAgICAgICAgcmV0dXJuIHByb2dyZXNzaW9uO1xuICAgICAgfSlcbiAgICApO1xuXG4gIH1cbn1cbiJdfQ==
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9iLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC9qb2Ivam9iLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRXBGLE9BQU8sRUFBZSxXQUFXLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNuRixPQUFPLEVBQWEsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBYyxHQUFHLEVBQXdCLE1BQU0scUJBQXFCLENBQUM7QUFDNUUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7QUFHcEQsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsSUFBSSxjQUFjLENBQXdCLHVCQUF1QixDQUFDLENBQUM7QUFFOUcsTUFBTSxPQUFPLEdBQUc7SUFDZCxhQUFhLEVBQUUsR0FBRyxDQUFBOzs7Ozs7OztJQVFoQjtDQUNILENBQUE7QUFVRCxNQUFNLE9BQU8scUJBQ1gsU0FBUSxrQkFBa0M7SUFHMUMsWUFDWSxPQUF1QixFQUNVLFdBQXdCO1FBRW5FLEtBQUssQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFIbEIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDVSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUduRSxJQUFJLENBQUMsVUFBVSxHQUFHLDRCQUE0QixDQUFDO1FBQy9DLGVBQWU7UUFDZixJQUFJLENBQUMsTUFBTSxHQUFHLFdBQVcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUM7SUFDdkQsQ0FBQztJQUVELFFBQVEsQ0FBQyxPQUVSO1FBQ0MsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPO0lBQ3hCLENBQUM7SUFFRCxNQUFNLENBQUMsRUFBVSxFQUFFLEdBQW9CO1FBQ3JDLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsU0FBUyxDQUFDLEVBQVU7UUFDbEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxhQUFhLENBQUMsRUFBVSxFQUFFLE9BR3pCO1FBRUMsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLHVCQUF1QixDQUFDLENBQUM7UUFDMUUsSUFBSSxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSwrQ0FBK0MsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUUxRyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFnQjtZQUMzQyxLQUFLLEVBQUUsT0FBTyxDQUFDLGFBQWE7WUFDNUIsV0FBVyxFQUFFLE9BQU8sRUFBRSxXQUFXO1lBQ2pDLFNBQVMsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUFDLEVBQUM7WUFDM0QsS0FBSyxFQUFFLEVBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLCtCQUErQixFQUFFLE9BQU8sRUFBRSw4Q0FBOEMsRUFBQztTQUN6SCxDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FBQyxDQUFDLEVBQUMsSUFBSSxFQUFDLEVBQUUsRUFBRTtZQUNiLE1BQU0sV0FBVyxHQUFHLElBQUksSUFBSSxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzVELElBQUksV0FBVyxJQUFJLElBQUksQ0FBQyxNQUFNO2dCQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxtQkFBbUIsRUFBRSxvQkFBb0IsRUFBRSxXQUFXLENBQUMsQ0FBQztZQUN4SCxPQUFPLFdBQVcsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBRUosQ0FBQzs7a0hBakRVLHFCQUFxQixnREFNVixXQUFXO3NIQU50QixxQkFBcUI7MkZBQXJCLHFCQUFxQjtrQkFEakMsVUFBVTs7MEJBT04sUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEpvYlByb2dyZXNzaW9uIH0gZnJvbSAnLi9qb2IubW9kZWwnO1xuaW1wb3J0IHsgQmFzZUdyYXBocWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9iYXNlLWdyYXBocWwtc2VydmljZS5jbGFzcyc7XG5pbXBvcnQgeyBHcmFwaHFsU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvZ3JhcGhxbC9ncmFwaHFsLnNlcnZpY2UnO1xuaW1wb3J0IHsgRW52aXJvbm1lbnQsIEVOVklST05NRU5UIH0gZnJvbSAnLi4vLi4vLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50LmNsYXNzJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgb2Z9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtGZXRjaFBvbGljeSwgZ3FsLCBXYXRjaFF1ZXJ5RmV0Y2hQb2xpY3l9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2NvcmUnO1xuaW1wb3J0IHsgaXNOaWwsIHRvTnVtYmVyIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2Z1bmN0aW9ucyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTb2NpYWxFcnJvckNvZGVzIH0gZnJvbSAnLi4vc29jaWFsLmVycm9ycyc7XG5pbXBvcnQge0Jhc2VFbnRpdHlHcmFwaHFsUXVlcmllc30gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9iYXNlLWVudGl0eS1zZXJ2aWNlLmNsYXNzJztcblxuZXhwb3J0IGNvbnN0IEFQUF9KT0JfUFJPR1JFU1NJT05fU0VSVklDRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxKb2JQcm9ncmVzc2lvblNlcnZpY2U+KCdKb2JQcm9ncmVzc2lvblNlcnZpY2UnKTtcblxuY29uc3QgUVVFUklFUyA9IHtcbiAgbGlzdGVuQ2hhbmdlczogZ3FsYHN1YnNjcmlwdGlvbiBVcGRhdGVKb2JQcm9ncmVzc2lvbigkaWQ6IEludCEsICRpbnRlcnZhbDogSW50KXtcbiAgICBkYXRhOiB1cGRhdGVKb2JQcm9ncmVzc2lvbihpZDogJGlkLCBpbnRlcnZhbDogJGludGVydmFsKSB7XG4gICAgICBpZFxuICAgICAgbmFtZVxuICAgICAgbWVzc2FnZVxuICAgICAgY3VycmVudFxuICAgICAgdG90YWxcbiAgICB9XG4gIH1gXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUpvYlByb2dyZXNzaW9uU2VydmljZSB7XG4gIHdhdGNoQWxsKCk6IE9ic2VydmFibGU8Sm9iUHJvZ3Jlc3Npb25bXT47XG4gIGFkZEpvYihpZDogbnVtYmVyLCBqb2I/OiBKb2JQcm9ncmVzc2lvbik7XG4gIHJlbW92ZUpvYihpZDogbnVtYmVyKTtcbiAgbGlzdGVuQ2hhbmdlcyhpZDogbnVtYmVyLCBvcHRpb25zPzogeyBpbnRlcnZhbD86IG51bWJlcjsgZmV0Y2hQb2xpY3k/OiBGZXRjaFBvbGljeSB9KTogT2JzZXJ2YWJsZTxKb2JQcm9ncmVzc2lvbj47XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBKb2JQcm9ncmVzc2lvblNlcnZpY2VcbiAgZXh0ZW5kcyBCYXNlR3JhcGhxbFNlcnZpY2U8Sm9iUHJvZ3Jlc3Npb24+XG4gIGltcGxlbWVudHMgSUpvYlByb2dyZXNzaW9uU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGdyYXBocWw6IEdyYXBocWxTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRU5WSVJPTk1FTlQpIHByb3RlY3RlZCBlbnZpcm9ubWVudDogRW52aXJvbm1lbnRcbiAgKSB7XG4gICAgc3VwZXIoZ3JhcGhxbCwgZW52aXJvbm1lbnQpO1xuICAgIHRoaXMuX2xvZ1ByZWZpeCA9ICdbam9iLXByb2dyZXNzaW9uLXNlcnZpY2VdICc7XG4gICAgLy8gRm9yIERFViBvbmx5XG4gICAgdGhpcy5fZGVidWcgPSBlbnZpcm9ubWVudCAmJiAhZW52aXJvbm1lbnQucHJvZHVjdGlvbjtcbiAgfVxuXG4gIHdhdGNoQWxsKG9wdGlvbnM/OiB7XG4gICAgZmV0Y2hQb2xpY3k/OiBXYXRjaFF1ZXJ5RmV0Y2hQb2xpY3lcbiAgfSk6IE9ic2VydmFibGU8Sm9iUHJvZ3Jlc3Npb25bXT4ge1xuICAgIHJldHVybiBvZihbXSk7IC8vIFRPRE9cbiAgfVxuXG4gIGFkZEpvYihpZDogbnVtYmVyLCBqb2I/OiBKb2JQcm9ncmVzc2lvbikge1xuICAgIHRocm93IG5ldyBFcnJvcignbm8gaW1wbGVtZW50ZWQnKTtcbiAgfVxuXG4gIHJlbW92ZUpvYihpZDogbnVtYmVyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdubyBpbXBsZW1lbnRlZCcpO1xuICB9XG5cbiAgbGlzdGVuQ2hhbmdlcyhpZDogbnVtYmVyLCBvcHRpb25zPzoge1xuICAgIGludGVydmFsPzogbnVtYmVyO1xuICAgIGZldGNoUG9saWN5PzogRmV0Y2hQb2xpY3lcbiAgfSk6IE9ic2VydmFibGU8Sm9iUHJvZ3Jlc3Npb24+IHtcblxuICAgIGlmIChpc05pbChpZCkpIHRocm93IG5ldyBFcnJvcihgJHt0aGlzLl9sb2dQcmVmaXh9TWlzc2luZyBhcmd1bWVudCAnaWQnYCk7XG4gICAgaWYgKHRoaXMuX2RlYnVnKSBjb25zb2xlLmRlYnVnKGAke3RoaXMuX2xvZ1ByZWZpeH1bV1NdIExpc3RlbmluZyBjaGFuZ2VzIGZvciBqb2IgcHJvZ3Jlc3Npb24geyR7aWR9fS4uLmApO1xuXG4gICAgcmV0dXJuIHRoaXMuZ3JhcGhxbC5zdWJzY3JpYmU8eyBkYXRhOiBhbnkgfT4oe1xuICAgICAgcXVlcnk6IFFVRVJJRVMubGlzdGVuQ2hhbmdlcyxcbiAgICAgIGZldGNoUG9saWN5OiBvcHRpb25zPy5mZXRjaFBvbGljeSxcbiAgICAgIHZhcmlhYmxlczogeyBpZCwgaW50ZXJ2YWw6IHRvTnVtYmVyKG9wdGlvbnM/LmludGVydmFsLCAxMCl9LFxuICAgICAgZXJyb3I6IHtjb2RlOiBTb2NpYWxFcnJvckNvZGVzLlNVQlNDUklCRV9KT0JfUFJPR1JFU1NJT05fRVJST1IsIG1lc3NhZ2U6ICdTT0NJQUwuRVJST1IuU1VCU0NSSUJFX0pPQl9QUk9HUkVTU0lPTl9FUlJPUid9XG4gICAgfSkucGlwZShcbiAgICAgIG1hcCgoe2RhdGF9KSA9PiB7XG4gICAgICAgIGNvbnN0IHByb2dyZXNzaW9uID0gZGF0YSAmJiBKb2JQcm9ncmVzc2lvbi5mcm9tT2JqZWN0KGRhdGEpO1xuICAgICAgICBpZiAocHJvZ3Jlc3Npb24gJiYgdGhpcy5fZGVidWcpIGNvbnNvbGUuZGVidWcoYCR7dGhpcy5fbG9nUHJlZml4fUpvYiBwcm9ncmVzc2lvbiAke2lkfSB1cGRhdGVkIG9uIHNlcnZlcmAsIHByb2dyZXNzaW9uKTtcbiAgICAgICAgcmV0dXJuIHByb2dyZXNzaW9uO1xuICAgICAgfSlcbiAgICApO1xuXG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,210 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Inject, Input, Optional, Output } from '@angular/core';
2
+ import { APP_JOB_PROGRESSION_SERVICE } 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 JobProgressionIcon {
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.autoHide, 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
+ this._subscriptions.add(this.jobProgressionService.watchAll()
44
+ .subscribe(items => {
45
+ (items || []).forEach(item => this.addJob(item.id, item));
46
+ }));
47
+ }
48
+ addJob(id, job) {
49
+ if (isNil(this.jobProgressionService)) {
50
+ console.warn(`${this._logPrefix}No service injected. Can't add a job`);
51
+ return;
52
+ }
53
+ if (!!this.getProgression(id)) {
54
+ console.warn(`${this._logPrefix}Job (id=${id}) already present`);
55
+ return;
56
+ }
57
+ if (this.debug) {
58
+ console.debug(`${this._logPrefix}Add job id=${id}`);
59
+ }
60
+ // Adding empty job progression
61
+ let progression = this.getProgression(id);
62
+ if (!progression) {
63
+ progression = job || new JobProgression(id);
64
+ this.jobProgressions.push(progression);
65
+ }
66
+ this.disabled = false;
67
+ const sub = this.jobProgressionService.listenChanges(id)
68
+ .pipe(filter(progression => {
69
+ if (id !== progression.id) {
70
+ console.error(`${this._logPrefix}Job progression (id=${progression.id}) doesn't match expected job (id=${id})`);
71
+ return false;
72
+ }
73
+ return true;
74
+ }), map(progression => {
75
+ // Ensure visible
76
+ this.visible = true;
77
+ // Get current progression object
78
+ const currentProgression = this.getProgression(id);
79
+ if (!currentProgression) {
80
+ // add it if absent
81
+ this.jobProgressions.push(progression);
82
+ if (this.debug) {
83
+ console.debug(`${this._logPrefix}Progression added id=${id}`, progression);
84
+ }
85
+ }
86
+ else {
87
+ // update current
88
+ Object.assign(currentProgression, progression);
89
+ if (this.debug) {
90
+ console.debug(`${this._logPrefix}Progression updated id=${id}`, progression);
91
+ }
92
+ }
93
+ return progression;
94
+ }))
95
+ .subscribe(progression => {
96
+ // update value
97
+ this.updateValue();
98
+ // job finished
99
+ if (progression.total > 0 && progression.current == progression.total) {
100
+ if (this.debug) {
101
+ console.debug(`${this._logPrefix}Finished job id=${progression.id}`);
102
+ }
103
+ // emit event
104
+ this.jobFinished.emit(progression.id);
105
+ if (this.autoRemove) {
106
+ setTimeout(() => {
107
+ this.removeJob(progression.id);
108
+ // If last job
109
+ if (this.autoHide && !this.jobProgressions?.length) {
110
+ setTimeout(async () => {
111
+ this._listPopover?.dismiss();
112
+ this.visible = false;
113
+ this.markForCheck();
114
+ }, this.autoHideDelay);
115
+ }
116
+ }, this.autoRemoveDelay);
117
+ }
118
+ }
119
+ });
120
+ this._subscriptionsById[id] = sub;
121
+ this._subscriptions.add(sub);
122
+ }
123
+ removeJob(id) {
124
+ if (this.debug) {
125
+ console.debug(`${this._logPrefix}Remove job id=${id}`);
126
+ }
127
+ const sub = this._subscriptionsById[id];
128
+ if (sub) {
129
+ this._subscriptions.remove(sub);
130
+ sub.unsubscribe();
131
+ }
132
+ const progression = this.getProgression(id);
133
+ if (progression) {
134
+ this.jobProgressions.splice(this.jobProgressions.indexOf(progression), 1);
135
+ }
136
+ this.updateValue();
137
+ }
138
+ getProgression(id) {
139
+ return this.jobProgressions.find(progression => progression.id === id);
140
+ }
141
+ updateValue() {
142
+ if (this.debug) {
143
+ console.debug(`${this._logPrefix}Updating value`);
144
+ }
145
+ let value = 0;
146
+ const nbProgression = arraySize(this.jobProgressions);
147
+ let allIndeterminate = nbProgression > 0;
148
+ this.jobProgressions.forEach(progression => {
149
+ const indeterminate = progression.total === 0;
150
+ allIndeterminate = allIndeterminate && indeterminate;
151
+ if (!indeterminate) {
152
+ value = value + progression.current * 100 / progression.total;
153
+ }
154
+ });
155
+ this.value = nbProgression > 0 ? value / nbProgression : 0;
156
+ this.mode = allIndeterminate ? 'indeterminate' : 'determinate';
157
+ if (this.debug) {
158
+ console.debug(`${this._logPrefix}Setting value=${this.value}, mode=${this.mode}`);
159
+ }
160
+ this.markForCheck();
161
+ }
162
+ async showList(event) {
163
+ this._listPopover = await this.popoverController.create({
164
+ component: JobProgressionList,
165
+ componentProps: {
166
+ titleI18n: this.titleI18n,
167
+ jobProgressions: this.jobProgressions
168
+ },
169
+ backdropDismiss: true,
170
+ keyboardClose: true,
171
+ event,
172
+ translucent: true,
173
+ cssClass: 'popover-large'
174
+ });
175
+ await this._listPopover.present();
176
+ await this._listPopover.onDidDismiss();
177
+ this._listPopover = undefined;
178
+ }
179
+ markForCheck() {
180
+ this.cd.markForCheck();
181
+ }
182
+ ngOnDestroy() {
183
+ if (this.debug) {
184
+ console.debug(`${this._logPrefix}Destroying`);
185
+ }
186
+ this._subscriptions.unsubscribe();
187
+ }
188
+ }
189
+ JobProgressionIcon.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: JobProgressionIcon, deps: [{ token: APP_JOB_PROGRESSION_SERVICE, optional: true }, { token: i1.PopoverController }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
190
+ JobProgressionIcon.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.6", type: JobProgressionIcon, selector: "app-job-progression-icon", inputs: { debug: "debug", titleI18n: "titleI18n", options: "options", autoHide: "autoHide" }, 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 });
191
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: JobProgressionIcon, decorators: [{
192
+ type: Component,
193
+ args: [{ selector: 'app-job-progression-icon', 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"] }]
194
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
195
+ type: Optional
196
+ }, {
197
+ type: Inject,
198
+ args: [APP_JOB_PROGRESSION_SERVICE]
199
+ }] }, { type: i1.PopoverController }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { debug: [{
200
+ type: Input
201
+ }], titleI18n: [{
202
+ type: Input
203
+ }], options: [{
204
+ type: Input
205
+ }], autoHide: [{
206
+ type: Input
207
+ }], jobFinished: [{
208
+ type: Output
209
+ }] } });
210
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9iLXByb2dyZXNzaW9uLmljb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC9qb2IvcHJvZ3Jlc3Npb24vam9iLXByb2dyZXNzaW9uLmljb24udHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC9qb2IvcHJvZ3Jlc3Npb24vam9iLXByb2dyZXNzaW9uLmljb24uaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd4SixPQUFPLEVBQTBCLDJCQUEyQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXBDLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRixPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxrQkFBa0IsRUFBNkIsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7O0FBZ0J2RixNQUFNLE9BQU8sa0JBQWtCO0lBd0I3QixZQUM2RCxxQkFBNkMsRUFDOUYsaUJBQW9DLEVBQ3BDLEVBQXFCO1FBRjRCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBd0I7UUFDOUYsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQXpCeEIsVUFBSyxHQUFHLEtBQUssQ0FBQztRQUNkLGNBQVMsR0FBRyw4QkFBOEIsQ0FBQztRQUcxQyxnQkFBVyxHQUFHLElB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LE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBQztJQUNoQyxDQUFDO0lBRVMsWUFBWTtRQUNwQixJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2QsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLFlBQVksQ0FBQyxDQUFDO1NBQy9DO1FBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNwQyxDQUFDOzsrR0E5TVUsa0JBQWtCLGtCQXlCUCwyQkFBMkI7bUdBekJ0QyxrQkFBa0IsdU1DMUIvQix3ckJBNEJBOzJGREZhLGtCQUFrQjtrQkFOOUIsU0FBUzsrQkFDRSwwQkFBMEIsbUJBR25CLHVCQUF1QixDQUFDLE1BQU07OzBCQTJCNUMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQywyQkFBMkI7NEdBdkJ4QyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRoZW1lUGFsZXR0ZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgUHJvZ3Jlc3NTcGlubmVyTW9kZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xuaW1wb3J0IHsgSUpvYlByb2dyZXNzaW9uU2VydmljZSwgQVBQX0pPQl9QUk9HUkVTU0lPTl9TRVJWSUNFIH0gZnJvbSAnLi4vam9iLnNlcnZpY2UnO1xuaW1wb3J0IHsgSm9iUHJvZ3Jlc3Npb24gfSBmcm9tICcuLi9qb2IubW9kZWwnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBPYmplY3RNYXAgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvdHlwZXMnO1xuaW1wb3J0IHsgYXJyYXlTaXplLCBpc05pbCwgdG9Cb29sZWFuLCB0b051bWJlciB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9mdW5jdGlvbnMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBQb3BvdmVyQ29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IEpvYlByb2dyZXNzaW9uTGlzdCwgSm9iUHJvZ3Jlc3Npb25MaXN0T3B0aW9ucyB9IGZyb20gJy4vam9iLXByb2dyZXNzaW9uLmxpc3QnO1xuaW1wb3J0IHtVc2VyRXZlbnROb3RpZmljYXRpb25JY29ufSBmcm9tICcuLi8uLi91c2VyLWV2ZW50L25vdGlmaWNhdGlvbi91c2VyLWV2ZW50LW5vdGlmaWNhdGlvbi5pY29uJztcblxuZXhwb3J0IGludGVyZmFjZSBKb2JQcm9ncmVzc2lvbk9wdGlvbnMge1xuICBhdXRvSGlkZTogYm9vbGVhbjtcbiAgYXV0b0hpZGVEZWxheTogbnVtYmVyO1xuICBhdXRvUmVtb3ZlOiBib29sZWFuO1xuICBhdXRvUmVtb3ZlRGVsYXk6IG51bWJlcjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWpvYi1wcm9ncmVzc2lvbi1pY29uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2pvYi1wcm9ncmVzc2lvbi5pY29uLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9qb2ItcHJvZ3Jlc3Npb24uaWNvbi5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEpvYlByb2dyZXNzaW9uSWNvbiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBASW5wdXQoKSBkZWJ1ZyA9IGZhbHNlO1xuICBASW5wdXQoKSB0aXRsZUkxOG4gPSAnU09DSUFMLkpPQi5QUk9HUkVTU0lPTi5USVRMRSc7XG4gIEBJbnB1dCgpIG9wdGlvbnM6IEpvYlByb2dyZXNzaW9uT3B0aW9ucztcbiAgQElucHV0KCkgYXV0b0hpZGU6IGJvb2xlYW47XG4gIEBPdXRwdXQoKSBqb2JGaW5pc2hlZCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIHZpc2libGU6IGJvb2xlYW47XG4gIGRpc2FibGVkID0gdHJ1ZTtcbiAgY29sb3I6IFRoZW1lUGFsZXR0ZSA9ICdhY2NlbnQnO1xuICBtb2RlOiBQcm9ncmVzc1NwaW5uZXJNb2RlID0gJ2RldGVybWluYXRlJztcbiAgdmFsdWUgPSAwO1xuICBqb2JQcm9ncmVzc2lvbnM6IEpvYlByb2dyZXNzaW9uW10gPSBbXTtcblxuICBwcm90ZWN0ZWQgYXV0b0hpZGVEZWxheTogbnVtYmVyO1xuICBwcm90ZWN0ZWQgYXV0b1JlbW92ZTogYm9vbGVhbjtcbiAgcHJvdGVjdGVkIGF1dG9SZW1vdmVEZWxheTogbnVtYmVyO1xuXG4gIHByaXZhdGUgX2xpc3RQb3BvdmVyOiBIVE1MSW9uUG9wb3ZlckVsZW1lbnQ7XG4gIHByaXZhdGUgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gIHByaXZhdGUgX3N1YnNjcmlwdGlvbnNCeUlkOiBPYmplY3RNYXA8U3Vic2NyaXB0aW9uPiA9IHt9O1xuICBwcml2YXRlIF9sb2dQcmVmaXggPSAnW2pvYi1wcm9ncmVzc2lvbl0gJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEFQUF9KT0JfUFJPR1JFU1NJT05fU0VSVklDRSkgcHJvdGVjdGVkIGpvYlByb2dyZXNzaW9uU2VydmljZTogSUpvYlByb2dyZXNzaW9uU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgcG9wb3ZlckNvbnRyb2xsZXI6IFBvcG92ZXJDb250cm9sbGVyLFxuICAgIHByb3RlY3RlZCBjZDogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG5cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmIChpc05pbCh0aGlzLmpvYlByb2dyZXNzaW9uU2VydmljZSkpIHtcbiAgICAgIGNvbnNvbGUud2FybihgJHt0aGlzLl9sb2dQcmVmaXh9Tm8gc2VydmljZSBpbmplY3RlZGApO1xuICAgIH1cbiAgICAvLyBwYXJzZSBvcHRpb25zXG4gICAgdGhpcy5hdXRvSGlkZSA9IHRvQm9vbGVhbih0aGlzLmF1dG9IaWRlLCB0aGlzLm9wdGlvbnM/LmF1dG9IaWRlIHx8IGZhbHNlKTtcbiAgICB0aGlzLnZpc2libGUgPSAhdGhpcy5hdXRvSGlkZTtcbiAgICB0aGlzLmF1dG9IaWRlRGVsYXkgPSB0b051bWJlcih0aGlzLm9wdGlvbnM/LmF1dG9IaWRlRGVsYXksIDEwMDApO1xuICAgIHRoaXMuYXV0b1JlbW92ZSA9IHRvQm9vbGVhbih0aGlzLm9wdGlvbnM/LmF1dG9SZW1vdmUsIHRydWUpO1xuICAgIHRoaXMuYXV0b1JlbW92ZURlbGF5ID0gdG9OdW1iZXIodGhpcy5vcHRpb25zPy5hdXRvUmVtb3ZlRGVsYXksIDEwMDApO1xuXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLmpvYlByb2dyZXNzaW9uU2VydmljZS53YXRjaEFsbCgpXG4gICAgICAgIC5zdWJzY3JpYmUoaXRlbXMgPT4ge1xuICAgICAgICAgIChpdGVtcyB8fCBbXSkuZm9yRWFjaChpdGVtID0+IHRoaXMuYWRkSm9iKGl0ZW0uaWQsIGl0ZW0pKTtcbiAgICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgYWRkSm9iKGlkOiBudW1iZXIsIGpvYj86IEpvYlByb2dyZXNzaW9uKSB7XG4gICAgaWYgKGlzTmlsKHRoaXMuam9iUHJvZ3Jlc3Npb25TZXJ2aWNlKSkge1xuICAgICAgY29uc29sZS53YXJuKGAke3RoaXMuX2xvZ1ByZWZpeH1ObyBzZXJ2aWNlIGluamVjdGVkLiBDYW4ndCBhZGQgYSBqb2JgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoISF0aGlzLmdldFByb2dyZXNzaW9uKGlkKSkge1xuICAgICAgY29uc29sZS53YXJuKGAke3RoaXMuX2xvZ1ByZWZpeH1Kb2IgKGlkPSR7aWR9KSBhbHJlYWR5IHByZXNlbnRgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuZGVidWcpIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoYCR7dGhpcy5fbG9nUHJlZml4fUFkZCBqb2IgaWQ9JHtpZH1gKTtcbiAgICB9XG4gICAgLy8gQWRkaW5nIGVtcHR5IGpvYiBwcm9ncmVzc2lvblxuICAgIGxldCBwcm9ncmVzc2lvbiA9IHRoaXMuZ2V0UHJvZ3Jlc3Npb24oaWQpO1xuICAgIGlmICghcHJvZ3Jlc3Npb24pIHtcbiAgICAgIHByb2dyZXNzaW9uID0gam9iIHx8IG5ldyBKb2JQcm9ncmVzc2lvbihpZCk7XG4gICAgICB0aGlzLmpvYlByb2dyZXNzaW9ucy5wdXNoKHByb2dyZXNzaW9uKTtcbiAgICB9XG5cbiAgICB0aGlzLmRpc2FibGVkID0gZmFsc2U7XG5cbiAgICBjb25zdCBzdWIgPSB0aGlzLmpvYlByb2dyZXNzaW9uU2VydmljZS5saXN0ZW5DaGFuZ2VzKGlkKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcihwcm9ncmVzc2lvbiA9PiB7XG4gICAgICAgICAgaWYgKGlkICE9PSBwcm9ncmVzc2lvbi5pZCkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgJHt0aGlzLl9sb2dQcmVmaXh9Sm9iIHByb2dyZXNzaW9uIChpZD0ke3Byb2dyZXNzaW9uLmlkfSkgZG9lc24ndCBtYXRjaCBleHBlY3RlZCBqb2IgKGlkPSR7aWR9KWApO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSksXG4gICAgICAgIG1hcChwcm9ncmVzc2lvbiA9PiB7XG4gICAgICAgICAgLy8gRW5zdXJlIHZpc2libGVcbiAgICAgICAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xuICAgICAgICAgIC8vIEdldCBjdXJyZW50IHByb2dyZXNzaW9uIG9iamVjdFxuICAgICAgICAgIGNvbnN0IGN1cnJlbnRQcm9ncmVzc2lvbiA9IHRoaXMuZ2V0UHJvZ3Jlc3Npb24oaWQpO1xuICAgICAgICAgIGlmICghY3VycmVudFByb2dyZXNzaW9uKSB7XG4gICAgICAgICAgICAvLyBhZGQgaXQgaWYgYWJzZW50XG4gICAgICAgICAgICB0aGlzLmpvYlByb2dyZXNzaW9ucy5wdXNoKHByb2dyZXNzaW9uKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmRlYnVnKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoYCR7dGhpcy5fbG9nUHJlZml4fVByb2dyZXNzaW9uIGFkZGVkIGlkPSR7aWR9YCwgcHJvZ3Jlc3Npb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyB1cGRhdGUgY3VycmVudFxuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihjdXJyZW50UHJvZ3Jlc3Npb24sIHByb2dyZXNzaW9uKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmRlYnVnKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoYCR7dGhpcy5fbG9nUHJlZml4fVByb2dyZXNzaW9uIHVwZGF0ZWQgaWQ9JHtpZH1gLCBwcm9ncmVzc2lvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBwcm9ncmVzc2lvbjtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUocHJvZ3Jlc3Npb24gPT4ge1xuICAgICAgICAvLyB1cGRhdGUgdmFsdWVcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSgpO1xuXG4gICAgICAgIC8vIGpvYiBmaW5pc2hlZFxuICAgICAgICBpZiAocHJvZ3Jlc3Npb24udG90YWwgPiAwICYmIHByb2dyZXNzaW9uLmN1cnJlbnQgPT0gcHJvZ3Jlc3Npb24udG90YWwpIHtcbiAgICAgICAgICBpZiAodGhpcy5kZWJ1Zykge1xuICAgICAgICAgICAgY29uc29sZS5kZWJ1ZyhgJHt0aGlzLl9sb2dQcmVmaXh9RmluaXNoZWQgam9iIGlkPSR7cHJvZ3Jlc3Npb24uaWR9YCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIGVtaXQgZXZlbnRcbiAgICAgICAgICB0aGlzLmpvYkZpbmlzaGVkLmVtaXQocHJvZ3Jlc3Npb24uaWQpO1xuICAgICAgICAgIGlmICh0aGlzLmF1dG9SZW1vdmUpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnJlbW92ZUpvYihwcm9ncmVzc2lvbi5pZCk7XG4gICAgICAgICAgICAgIC8vIElmIGxhc3Qgam9iXG4gICAgICAgICAgICAgIGlmICh0aGlzLmF1dG9IaWRlICYmICF0aGlzLmpvYlByb2dyZXNzaW9ucz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICB0aGlzLl9saXN0UG9wb3Zlcj8uZGlzbWlzcygpO1xuICAgICAgICAgICAgICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgICAgIH0sIHRoaXMuYXV0b0hpZGVEZWxheSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHRoaXMuYXV0b1JlbW92ZURlbGF5KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uc0J5SWRbaWRdID0gc3ViO1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKHN1Yik7XG4gIH1cblxuICByZW1vdmVKb2IoaWQ6IG51bWJlcikge1xuICAgIGlmICh0aGlzLmRlYnVnKSB7XG4gICAgICBjb25zb2xlLmRlYnVnKGAke3RoaXMuX2xvZ1ByZWZpeH1SZW1vdmUgam9iIGlkPSR7aWR9YCk7XG4gICAgfVxuICAgIGNvbnN0IHN1YiA9IHRoaXMuX3N1YnNjcmlwdGlvbnNCeUlkW2lkXTtcbiAgICBpZiAoc3ViKSB7XG4gICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnJlbW92ZShzdWIpO1xuICAgICAgc3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIGNvbnN0IHByb2dyZXNzaW9uID0gdGhpcy5nZXRQcm9ncmVzc2lvbihpZCk7XG4gICAgaWYgKHByb2dyZXNzaW9uKSB7XG4gICAgICB0aGlzLmpvYlByb2dyZXNzaW9ucy5zcGxpY2UodGhpcy5qb2JQcm9ncmVzc2lvbnMuaW5kZXhPZihwcm9ncmVzc2lvbiksIDEpO1xuICAgIH1cbiAgICB0aGlzLnVwZGF0ZVZhbHVlKCk7XG4gIH1cblxuICBnZXRQcm9ncmVzc2lvbihpZDogbnVtYmVyKTogSm9iUHJvZ3Jlc3Npb24gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmpvYlByb2dyZXNzaW9ucy5maW5kKHByb2dyZXNzaW9uID0+IHByb2dyZXNzaW9uLmlkID09PSBpZCk7XG4gIH1cblxuICB1cGRhdGVWYWx1ZSgpIHtcbiAgICBpZiAodGhpcy5kZWJ1Zykge1xuICAgICAgY29uc29sZS5kZWJ1ZyhgJHt0aGlzLl9sb2dQcmVmaXh9VXBkYXRpbmcgdmFsdWVgKTtcbiAgICB9XG4gICAgbGV0IHZhbHVlID0gMDtcbiAgICBjb25zdCBuYlByb2dyZXNzaW9uID0gYXJyYXlTaXplKHRoaXMuam9iUHJvZ3Jlc3Npb25zKTtcbiAgICBsZXQgYWxsSW5kZXRlcm1pbmF0ZSA9IG5iUHJvZ3Jlc3Npb24gPiAwO1xuXG4gICAgdGhpcy5qb2JQcm9ncmVzc2lvbnMuZm9yRWFjaChwcm9ncmVzc2lvbiA9PiB7XG4gICAgICBjb25zdCBpbmRldGVybWluYXRlID0gcHJvZ3Jlc3Npb24udG90YWwgPT09IDA7XG4gICAgICBhbGxJbmRldGVybWluYXRlID0gYWxsSW5kZXRlcm1pbmF0ZSAmJiBpbmRldGVybWluYXRlO1xuICAgICAgaWYgKCFpbmRldGVybWluYXRlKSB7XG4gICAgICAgIHZhbHVlID0gdmFsdWUgKyBwcm9ncmVzc2lvbi5jdXJyZW50ICogMTAwIC8gcHJvZ3Jlc3Npb24udG90YWw7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLnZhbHVlID0gbmJQcm9ncmVzc2lvbiA+IDAgPyB2YWx1ZSAvIG5iUHJvZ3Jlc3Npb24gOiAwO1xuICAgIHRoaXMubW9kZSA9IGFsbEluZGV0ZXJtaW5hdGUgPyAnaW5kZXRlcm1pbmF0ZScgOiAnZGV0ZXJtaW5hdGUnO1xuICAgIGlmICh0aGlzLmRlYnVnKSB7XG4gICAgICBjb25zb2xlLmRlYnVnKGAke3RoaXMuX2xvZ1ByZWZpeH1TZXR0aW5nIHZhbHVlPSR7dGhpcy52YWx1ZX0sIG1vZGU9JHt0aGlzLm1vZGV9YCk7XG4gICAgfVxuXG4gICAgdGhpcy5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGFzeW5jIHNob3dMaXN0KGV2ZW50OiBFdmVudCkge1xuICAgIHRoaXMuX2xpc3RQb3BvdmVyID0gYXdhaXQgdGhpcy5wb3BvdmVyQ29udHJvbGxlci5jcmVhdGUoe1xuICAgICAgY29tcG9uZW50OiBKb2JQcm9ncmVzc2lvbkxpc3QsXG4gICAgICBjb21wb25lbnRQcm9wczogPEpvYlByb2dyZXNzaW9uTGlzdE9wdGlvbnM+e1xuICAgICAgICB0aXRsZUkxOG46IHRoaXMudGl0bGVJMThuLFxuICAgICAgICBqb2JQcm9ncmVzc2lvbnM6IHRoaXMuam9iUHJvZ3Jlc3Npb25zXG4gICAgICB9LFxuICAgICAgYmFja2Ryb3BEaXNtaXNzOiB0cnVlLFxuICAgICAga2V5Ym9hcmRDbG9zZTogdHJ1ZSxcbiAgICAgIGV2ZW50LFxuICAgICAgdHJhbnNsdWNlbnQ6IHRydWUsXG4gICAgICBjc3NDbGFzczogJ3BvcG92ZXItbGFyZ2UnXG4gICAgfSk7XG4gICAgYXdhaXQgdGhpcy5fbGlzdFBvcG92ZXIucHJlc2VudCgpO1xuICAgIGF3YWl0IHRoaXMuX2xpc3RQb3BvdmVyLm9uRGlkRGlzbWlzcygpO1xuICAgIHRoaXMuX2xpc3RQb3BvdmVyID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJvdGVjdGVkIG1hcmtGb3JDaGVjaygpIHtcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGVidWcpIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoYCR7dGhpcy5fbG9nUHJlZml4fURlc3Ryb3lpbmdgKTtcbiAgICB9XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iLCI8YnV0dG9uXG4gICNidXR0b25cbiAgbWF0LWljb24tYnV0dG9uXG4gIFt0aXRsZV09XCJ0aXRsZUkxOG4gfCB0cmFuc2xhdGVcIlxuICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAqbmdJZj1cInZpc2libGVcIlxuICAoY2xpY2spPVwic2hvd0xpc3QoJGV2ZW50KVwiXG4+XG4gIDxtYXQtaWNvblxuICAgIFttYXRCYWRnZV09XCJqb2JQcm9ncmVzc2lvbnM/Lmxlbmd0aFwiXG4gICAgW21hdEJhZGdlSGlkZGVuXT1cIiFqb2JQcm9ncmVzc2lvbnM/Lmxlbmd0aFwiXG4gICAgbWF0QmFkZ2VDb2xvcj1cImFjY2VudFwiXG4gICAgbWF0QmFkZ2VTaXplPVwic21hbGxcIlxuICAgIG1hdEJhZGdlUG9zaXRpb249XCJhYm92ZSBhZnRlclwiXG4gID57eyBkaXNhYmxlZCB8fCBqb2JQcm9ncmVzc2lvbnM/Lmxlbmd0aCA/ICdzY2hlZHVsZScgOiAndGFza19hbHQnIH19XG4gIDwvbWF0LWljb24+XG4gIDxtYXQtc3Bpbm5lclxuICAgICNzcGlubmVyXG4gICAgKm5nSWY9XCJqb2JQcm9ncmVzc2lvbnM/Lmxlbmd0aFwiXG4gICAgY2xhc3M9XCJmbG9hdGluZy1zcGlubmVyXCJcbiAgICBbY29sb3JdPVwiY29sb3JcIlxuICAgIFttb2RlXT1cIm1vZGVcIlxuICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgZGlhbWV0ZXI9XCIzMFwiXG4gICAgc3Ryb2tlV2lkdGg9XCIzXCJcbiAgPjwvbWF0LXNwaW5uZXI+XG48L2J1dHRvbj5cblxuIl19
@@ -9,9 +9,9 @@ export class JobProgressionList {
9
9
  ngOnInit() {
10
10
  }
11
11
  }
12
- JobProgressionList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: JobProgressionList, deps: [], target: i0.ɵɵFactoryTarget.Component });
13
- JobProgressionList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.1", type: JobProgressionList, selector: "app-job-progression-list", inputs: { titleI18n: "titleI18n", jobProgressions: "jobProgressions" }, ngImport: i0, template: "<ion-list class=\"ion-list-popover\">\n\n <ion-row class=\"ion-list-header column\">\n <ion-col>\n <ion-label>{{titleI18n | translate}}</ion-label>\n </ion-col>\n </ion-row>\n\n <ion-item *ngIf=\"!jobProgressions?.length\">\n {{'SOCIAL.JOB.PROGRESSION.EMPTY' | translate}}\n </ion-item>\n <ion-item *ngFor=\"let jobProgression of jobProgressions\" class=\"ion-item-job-progression\">\n <ion-grid class=\"ion-no-margin\">\n <ion-row class=\"name\">\n <ion-col>\n {{jobProgression.name}}\n </ion-col>\n </ion-row>\n <ion-row class=\"message\">\n <ion-col>\n {{jobProgression.message}}\n </ion-col>\n </ion-row>\n <ion-row class=\"progress-bar\">\n <ion-col>\n <ion-progress-bar\n [value]=\"jobProgression.total > 0 ? jobProgression.current / jobProgression.total : undefined\"\n [type]=\"jobProgression.total > 0 ? 'determinate' : 'indeterminate'\">\n </ion-progress-bar>\n </ion-col>\n </ion-row>\n </ion-grid>\n </ion-item>\n\n</ion-list>\n", styles: [":host(.popover-viewport){overflow-y:auto;-webkit-user-select:none;user-select:none}.ion-item-job-progression{font-size:.9em}.ion-item-job-progression .message{font-style:italic}.ion-item-job-progression .progress-bar{margin-top:5px;margin-bottom:5px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i2.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i2.IonProgressBar, selector: "ion-progress-bar", inputs: ["buffer", "color", "mode", "reversed", "type", "value"] }, { kind: "component", type: i2.IonRow, selector: "ion-row" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] });
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: JobProgressionList, decorators: [{
12
+ JobProgressionList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: JobProgressionList, deps: [], target: i0.ɵɵFactoryTarget.Component });
13
+ JobProgressionList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.6", type: JobProgressionList, selector: "app-job-progression-list", inputs: { titleI18n: "titleI18n", jobProgressions: "jobProgressions" }, ngImport: i0, template: "<ion-list class=\"ion-list-popover\">\n\n <ion-row class=\"ion-list-header column\">\n <ion-col>\n <ion-label>{{titleI18n | translate}}</ion-label>\n </ion-col>\n </ion-row>\n\n <ion-item *ngIf=\"!jobProgressions?.length\">\n {{'SOCIAL.JOB.PROGRESSION.EMPTY' | translate}}\n </ion-item>\n <ion-item *ngFor=\"let jobProgression of jobProgressions\" class=\"ion-item-job-progression\">\n <ion-grid class=\"ion-no-margin\">\n <ion-row class=\"name\">\n <ion-col>\n {{jobProgression.name}}\n </ion-col>\n </ion-row>\n <ion-row class=\"message\">\n <ion-col>\n {{jobProgression.message}}\n </ion-col>\n </ion-row>\n <ion-row class=\"progress-bar\">\n <ion-col>\n <ion-progress-bar\n [value]=\"jobProgression.total > 0 ? jobProgression.current / jobProgression.total : undefined\"\n [type]=\"jobProgression.total > 0 ? 'determinate' : 'indeterminate'\">\n </ion-progress-bar>\n </ion-col>\n </ion-row>\n </ion-grid>\n </ion-item>\n\n</ion-list>\n", styles: [":host(.popover-viewport){overflow-y:auto;-webkit-user-select:none;user-select:none}.ion-item-job-progression{font-size:.9em}.ion-item-job-progression .message{font-style:italic}.ion-item-job-progression .progress-bar{margin-top:5px;margin-bottom:5px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i2.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i2.IonProgressBar, selector: "ion-progress-bar", inputs: ["buffer", "color", "mode", "reversed", "type", "value"] }, { kind: "component", type: i2.IonRow, selector: "ion-row" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: JobProgressionList, decorators: [{
15
15
  type: Component,
16
16
  args: [{ selector: 'app-job-progression-list', template: "<ion-list class=\"ion-list-popover\">\n\n <ion-row class=\"ion-list-header column\">\n <ion-col>\n <ion-label>{{titleI18n | translate}}</ion-label>\n </ion-col>\n </ion-row>\n\n <ion-item *ngIf=\"!jobProgressions?.length\">\n {{'SOCIAL.JOB.PROGRESSION.EMPTY' | translate}}\n </ion-item>\n <ion-item *ngFor=\"let jobProgression of jobProgressions\" class=\"ion-item-job-progression\">\n <ion-grid class=\"ion-no-margin\">\n <ion-row class=\"name\">\n <ion-col>\n {{jobProgression.name}}\n </ion-col>\n </ion-row>\n <ion-row class=\"message\">\n <ion-col>\n {{jobProgression.message}}\n </ion-col>\n </ion-row>\n <ion-row class=\"progress-bar\">\n <ion-col>\n <ion-progress-bar\n [value]=\"jobProgression.total > 0 ? jobProgression.current / jobProgression.total : undefined\"\n [type]=\"jobProgression.total > 0 ? 'determinate' : 'indeterminate'\">\n </ion-progress-bar>\n </ion-col>\n </ion-row>\n </ion-grid>\n </ion-item>\n\n</ion-list>\n", styles: [":host(.popover-viewport){overflow-y:auto;-webkit-user-select:none;user-select:none}.ion-item-job-progression{font-size:.9em}.ion-item-job-progression .message{font-style:italic}.ion-item-job-progression .progress-bar{margin-top:5px;margin-bottom:5px}\n"] }]
17
17
  }], ctorParameters: function () { return []; }, propDecorators: { titleI18n: [{