@bizdoc/core 1.13.0-next.3 → 1.13.0-next.7

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 (330) hide show
  1. package/esm2020/lib/admin/document-trace/trace-element.component.mjs +22 -26
  2. package/esm2020/lib/app.component.mjs +1 -1
  3. package/esm2020/lib/browse/browse-items.component.mjs +4 -4
  4. package/esm2020/lib/browse/expanded-item/expanded-item.component.mjs +63 -49
  5. package/esm2020/lib/compose/trace/flow.component.mjs +45 -75
  6. package/esm2020/lib/compose/trace/trace.component.mjs +24 -32
  7. package/esm2020/lib/core/hub.service.mjs +1 -1
  8. package/esm2020/lib/core/mailbox.service.mjs +31 -6
  9. package/esm2020/lib/core/models.mjs +1 -1
  10. package/esm2020/lib/core/translations.mjs +9 -2
  11. package/esm2020/lib/home/home-base.component.mjs +2 -2
  12. package/fesm2015/bizdoc-core.mjs +191 -185
  13. package/fesm2015/bizdoc-core.mjs.map +1 -1
  14. package/fesm2020/bizdoc-core.mjs +187 -183
  15. package/fesm2020/bizdoc-core.mjs.map +1 -1
  16. package/lib/admin/document-trace/trace-element.component.d.ts +1 -1
  17. package/lib/app.component.d.ts +2 -2
  18. package/lib/browse/expanded-item/expanded-item.component.d.ts +6 -6
  19. package/lib/core/hub.service.d.ts +1 -0
  20. package/lib/core/mailbox.service.d.ts +4 -1
  21. package/lib/core/models.d.ts +6 -2
  22. package/lib/core/translations.d.ts +8 -1
  23. package/package.json +10 -10
  24. package/bizdoc-core.d.ts.map +0 -1
  25. package/lib/admin/admin-dismiss.service.d.ts.map +0 -1
  26. package/lib/admin/admin-menu.component.d.ts.map +0 -1
  27. package/lib/admin/core/ace.input.d.ts.map +0 -1
  28. package/lib/admin/core/color-picker.input.d.ts.map +0 -1
  29. package/lib/admin/core/search.input.d.ts.map +0 -1
  30. package/lib/admin/diff/configuration-diff.component.d.ts.map +0 -1
  31. package/lib/admin/document-trace/Timeline.d.ts.map +0 -1
  32. package/lib/admin/document-trace/document-trace.component.d.ts.map +0 -1
  33. package/lib/admin/document-trace/reassign.dialog.d.ts.map +0 -1
  34. package/lib/admin/document-trace/trace-element.component.d.ts.map +0 -1
  35. package/lib/admin/form/form.resolve.service.d.ts.map +0 -1
  36. package/lib/admin/form/form.service.d.ts.map +0 -1
  37. package/lib/admin/form/workflow/node-ref.d.ts.map +0 -1
  38. package/lib/admin/form/workflow/node.component.d.ts.map +0 -1
  39. package/lib/admin/form/workflow/role-node.component.d.ts.map +0 -1
  40. package/lib/admin/form/workflow/workflow.component.d.ts.map +0 -1
  41. package/lib/admin/indices/manage-cube-index.component.d.ts.map +0 -1
  42. package/lib/admin/patterns/patterns.component.d.ts.map +0 -1
  43. package/lib/admin/permissions/permissions.component.d.ts.map +0 -1
  44. package/lib/admin/positions/positions-popup.component.d.ts.map +0 -1
  45. package/lib/admin/positions/positions.component.d.ts.map +0 -1
  46. package/lib/admin/profiler/profiler.component.d.ts.map +0 -1
  47. package/lib/admin/utility-ref.d.ts.map +0 -1
  48. package/lib/admin/utility-wrapper.component.d.ts.map +0 -1
  49. package/lib/admin/utility.pane.component.d.ts.map +0 -1
  50. package/lib/app.component.d.ts.map +0 -1
  51. package/lib/bizdoc.module.d.ts.map +0 -1
  52. package/lib/browse/browse-items.component.d.ts.map +0 -1
  53. package/lib/browse/browse.mobile.component.d.ts.map +0 -1
  54. package/lib/browse/browse.pane.component.d.ts.map +0 -1
  55. package/lib/browse/expanded-item/expanded-item.component.d.ts.map +0 -1
  56. package/lib/browse/filter/filter.component.d.ts.map +0 -1
  57. package/lib/browse/folders-menu.component.d.ts.map +0 -1
  58. package/lib/chat/chat-info.d.ts.map +0 -1
  59. package/lib/chat/chat.mobile.component.d.ts.map +0 -1
  60. package/lib/chat/chat.service.d.ts.map +0 -1
  61. package/lib/chat/contacts.component.d.ts.map +0 -1
  62. package/lib/chat/contacts.pane.component.d.ts.map +0 -1
  63. package/lib/chat/conversation.component.d.ts.map +0 -1
  64. package/lib/chat/conversation.pane.component.d.ts.map +0 -1
  65. package/lib/compose/action/action-picker.component.d.ts.map +0 -1
  66. package/lib/compose/action/action-ref.d.ts.map +0 -1
  67. package/lib/compose/action/action.base.d.ts.map +0 -1
  68. package/lib/compose/action/action.dialog.d.ts.map +0 -1
  69. package/lib/compose/action/action.pane.dialog.exp.d.ts.map +0 -1
  70. package/lib/compose/action/assign-action.component.d.ts.map +0 -1
  71. package/lib/compose/action/return-action.component.d.ts.map +0 -1
  72. package/lib/compose/attachments/attachments.component.d.ts.map +0 -1
  73. package/lib/compose/attachments/preview/attachment-preview.component.d.ts.map +0 -1
  74. package/lib/compose/attachments/progress-button.directive.d.ts.map +0 -1
  75. package/lib/compose/can-deactivate-changes.service.d.ts.map +0 -1
  76. package/lib/compose/comments/Comments.pane.component.d.ts.map +0 -1
  77. package/lib/compose/comments/comment.component.d.ts.map +0 -1
  78. package/lib/compose/comments/comments.component.d.ts.map +0 -1
  79. package/lib/compose/comments/edit-comment.component.d.ts.map +0 -1
  80. package/lib/compose/comments/edits.component.d.ts.map +0 -1
  81. package/lib/compose/comments/quick-comment.component.exp.d.ts.map +0 -1
  82. package/lib/compose/comments/votes.component.d.ts.map +0 -1
  83. package/lib/compose/compose-resolve.service.d.ts.map +0 -1
  84. package/lib/compose/compose.mobile.component.d.ts.map +0 -1
  85. package/lib/compose/compose.pane.component.d.ts.map +0 -1
  86. package/lib/compose/copy/copy.dialog.d.ts.map +0 -1
  87. package/lib/compose/dismiss.service.d.ts.map +0 -1
  88. package/lib/compose/document-resolver.service.d.ts.map +0 -1
  89. package/lib/compose/document.component.d.ts.map +0 -1
  90. package/lib/compose/document.mobile.component.d.ts.map +0 -1
  91. package/lib/compose/document.pane.component.d.ts.map +0 -1
  92. package/lib/compose/events/events.component.d.ts.map +0 -1
  93. package/lib/compose/form-ref.d.ts.map +0 -1
  94. package/lib/compose/form-selector/form-selector.sheet.d.ts.map +0 -1
  95. package/lib/compose/form.component.d.ts.map +0 -1
  96. package/lib/compose/new-menu.component.d.ts.map +0 -1
  97. package/lib/compose/privilage.directive.d.ts.map +0 -1
  98. package/lib/compose/recipient-resolver.service.d.ts.map +0 -1
  99. package/lib/compose/save-changes.dialog.d.ts.map +0 -1
  100. package/lib/compose/state.component.d.ts.map +0 -1
  101. package/lib/compose/tag/tags.component.d.ts.map +0 -1
  102. package/lib/compose/trace/flow.component.d.ts.map +0 -1
  103. package/lib/compose/trace/people.component.d.ts.map +0 -1
  104. package/lib/compose/trace/trace.base.d.ts.map +0 -1
  105. package/lib/compose/trace/trace.component.d.ts.map +0 -1
  106. package/lib/compose/trace/trace.pane.component.d.ts.map +0 -1
  107. package/lib/compose/version-compare/version-compare.component.d.ts.map +0 -1
  108. package/lib/compose/version-compare/version-compare.directive.d.ts.map +0 -1
  109. package/lib/compose/version-compare/version.pane.component.d.ts.map +0 -1
  110. package/lib/core/NgComponentOutlet.d.ts.map +0 -1
  111. package/lib/core/account.service.d.ts.map +0 -1
  112. package/lib/core/animated-icon/animated-icon.directive.d.ts.map +0 -1
  113. package/lib/core/animations.d.ts.map +0 -1
  114. package/lib/core/authentication.d.ts.map +0 -1
  115. package/lib/core/avatar/avatar.component.d.ts.map +0 -1
  116. package/lib/core/base.d.ts.map +0 -1
  117. package/lib/core/colors.d.ts.map +0 -1
  118. package/lib/core/component-factory-resolver.d.ts.map +0 -1
  119. package/lib/core/configuration.d.ts.map +0 -1
  120. package/lib/core/controls/address.input.d.ts.map +0 -1
  121. package/lib/core/controls/auto-complete.input.d.ts.map +0 -1
  122. package/lib/core/controls/combination-picker-body.d.ts.map +0 -1
  123. package/lib/core/controls/combination-picker.d.ts.map +0 -1
  124. package/lib/core/controls/combination-pool.d.ts.map +0 -1
  125. package/lib/core/controls/file.input.d.ts.map +0 -1
  126. package/lib/core/controls/select.input.d.ts.map +0 -1
  127. package/lib/core/controls/time-picker.d.ts.map +0 -1
  128. package/lib/core/controls/timespan.input.d.ts.map +0 -1
  129. package/lib/core/datasource.service.d.ts.map +0 -1
  130. package/lib/core/decorators.d.ts.map +0 -1
  131. package/lib/core/firebase.service.d.ts.map +0 -1
  132. package/lib/core/functions.d.ts.map +0 -1
  133. package/lib/core/guide/guide.component.d.ts.map +0 -1
  134. package/lib/core/guide/guide.service.d.ts.map +0 -1
  135. package/lib/core/http.interceptor.d.ts.map +0 -1
  136. package/lib/core/hub.service.d.ts.map +0 -1
  137. package/lib/core/identity/identity.component.d.ts.map +0 -1
  138. package/lib/core/info/attachment-info.service.d.ts.map +0 -1
  139. package/lib/core/info/document-info.service.d.ts.map +0 -1
  140. package/lib/core/info/location-info.component.d.ts.map +0 -1
  141. package/lib/core/info/map-info.d.ts.map +0 -1
  142. package/lib/core/layout/autocomplete.field.d.ts.map +0 -1
  143. package/lib/core/layout/checkbox.d.ts.map +0 -1
  144. package/lib/core/layout/checkbox.field.d.ts.map +0 -1
  145. package/lib/core/layout/date-range.field.d.ts.map +0 -1
  146. package/lib/core/layout/date.field.d.ts.map +0 -1
  147. package/lib/core/layout/expression.field.d.ts.map +0 -1
  148. package/lib/core/layout/html.field.d.ts.map +0 -1
  149. package/lib/core/layout/input.base.d.ts.map +0 -1
  150. package/lib/core/layout/input.field.d.ts.map +0 -1
  151. package/lib/core/layout/layout.component.d.ts.map +0 -1
  152. package/lib/core/layout/numeric.field.d.ts.map +0 -1
  153. package/lib/core/layout/select.field.d.ts.map +0 -1
  154. package/lib/core/layout/switch.field.d.ts.map +0 -1
  155. package/lib/core/layout/textarea.field.d.ts.map +0 -1
  156. package/lib/core/layout/timespan.field.d.ts.map +0 -1
  157. package/lib/core/lottie-animation.d.ts.map +0 -1
  158. package/lib/core/mailbox.service.d.ts.map +0 -1
  159. package/lib/core/models.d.ts.map +0 -1
  160. package/lib/core/none.component.d.ts.map +0 -1
  161. package/lib/core/pipes/action.pipe.d.ts.map +0 -1
  162. package/lib/core/pipes/calendar.pipe.d.ts.map +0 -1
  163. package/lib/core/pipes/date-format.pipe.d.ts.map +0 -1
  164. package/lib/core/pipes/daterange.pipe.d.ts.map +0 -1
  165. package/lib/core/pipes/difference.pipe.d.ts.map +0 -1
  166. package/lib/core/pipes/duration-format.pipe.d.ts.map +0 -1
  167. package/lib/core/pipes/duration.pipe.d.ts.map +0 -1
  168. package/lib/core/pipes/form.pipe.d.ts.map +0 -1
  169. package/lib/core/pipes/join.pipe.d.ts.map +0 -1
  170. package/lib/core/pipes/role.pipe.d.ts.map +0 -1
  171. package/lib/core/pipes/sanitize-html.pipe.d.ts.map +0 -1
  172. package/lib/core/pipes/sort.pipe.d.ts.map +0 -1
  173. package/lib/core/pipes/state.pipe.d.ts.map +0 -1
  174. package/lib/core/pipes/time-ago.pipe.d.ts.map +0 -1
  175. package/lib/core/pipes/translate.pipe.d.ts.map +0 -1
  176. package/lib/core/pipes/type-value.pipe.d.ts.map +0 -1
  177. package/lib/core/pipes/user-name.pipe.d.ts.map +0 -1
  178. package/lib/core/popup/popup-ref.d.ts.map +0 -1
  179. package/lib/core/popup/popup.component.d.ts.map +0 -1
  180. package/lib/core/popup/popup.service.d.ts.map +0 -1
  181. package/lib/core/popup/tooltip.directive.d.ts.map +0 -1
  182. package/lib/core/prompt/ask/ask.dialog.d.ts.map +0 -1
  183. package/lib/core/prompt/mask/mask.component.d.ts.map +0 -1
  184. package/lib/core/prompt.service.d.ts.map +0 -1
  185. package/lib/core/router.d.ts.map +0 -1
  186. package/lib/core/session.service.d.ts.map +0 -1
  187. package/lib/core/slots/pane-ref.d.ts.map +0 -1
  188. package/lib/core/slots/router.directive.d.ts.map +0 -1
  189. package/lib/core/slots/router.service.d.ts.map +0 -1
  190. package/lib/core/slots/slots.component.d.ts.map +0 -1
  191. package/lib/core/tagging/documents.component.d.ts.map +0 -1
  192. package/lib/core/tagging/edit-input.component.d.ts.map +0 -1
  193. package/lib/core/tagging/emoji.component.d.ts.map +0 -1
  194. package/lib/core/tagging/tagging-item.directive.d.ts.map +0 -1
  195. package/lib/core/tagging/tagging.component-base.d.ts.map +0 -1
  196. package/lib/core/tagging/tagging.directive.d.ts.map +0 -1
  197. package/lib/core/tagging/tagging.pipe.d.ts.map +0 -1
  198. package/lib/core/tagging/users.component.d.ts.map +0 -1
  199. package/lib/core/translate.service.d.ts.map +0 -1
  200. package/lib/core/translations.d.ts.map +0 -1
  201. package/lib/core/window-title.service.d.ts.map +0 -1
  202. package/lib/cube/accum/accum.component.d.ts.map +0 -1
  203. package/lib/cube/chart/chart.component.d.ts.map +0 -1
  204. package/lib/cube/cube-info.service.d.ts.map +0 -1
  205. package/lib/cube/cube-menu.component.d.ts.map +0 -1
  206. package/lib/cube/cube-view.component.d.ts.map +0 -1
  207. package/lib/cube/cube.service.d.ts.map +0 -1
  208. package/lib/cube/declarations.d.ts.map +0 -1
  209. package/lib/cube/explore/document-item.component.d.ts.map +0 -1
  210. package/lib/cube/explore/explore-item.component.d.ts.map +0 -1
  211. package/lib/cube/explore/explore-items.component.d.ts.map +0 -1
  212. package/lib/cube/explore/explore.pane.component.d.ts.map +0 -1
  213. package/lib/cube/explore/item-resolver.service.d.ts.map +0 -1
  214. package/lib/cube/explore/item.pane.component.d.ts.map +0 -1
  215. package/lib/cube/filter/filter-tags.component.exp.d.ts.map +0 -1
  216. package/lib/cube/filter/filter.component.d.ts.map +0 -1
  217. package/lib/cube/grid/grid.component.d.ts.map +0 -1
  218. package/lib/cube/grid/spreadsheet.component.d.ts.map +0 -1
  219. package/lib/cube/matrix/matrix.base.d.ts.map +0 -1
  220. package/lib/cube/matrix/matrix.mobile.component.d.ts.map +0 -1
  221. package/lib/cube/matrix/matrix.pane.component.d.ts.map +0 -1
  222. package/lib/cube/matrix/popup.component.d.ts.map +0 -1
  223. package/lib/cube/matrix/table.component.d.ts.map +0 -1
  224. package/lib/cube/parallel/item.d.ts.map +0 -1
  225. package/lib/cube/parallel/parallel.component.d.ts.map +0 -1
  226. package/lib/cube/pivot/pivot.component.d.ts.map +0 -1
  227. package/lib/cube/sum/sum.component.d.ts.map +0 -1
  228. package/lib/cube/view-base.d.ts.map +0 -1
  229. package/lib/cube/view.mobile.component.d.ts.map +0 -1
  230. package/lib/cube/view.pane.component.d.ts.map +0 -1
  231. package/lib/dashboard/actions/actions.widget.d.ts.map +0 -1
  232. package/lib/dashboard/cube/accum-cube.widget.d.ts.map +0 -1
  233. package/lib/dashboard/cube/cube-analysis.base.d.ts.map +0 -1
  234. package/lib/dashboard/cube/cube-analysis.widget.d.ts.map +0 -1
  235. package/lib/dashboard/cube/cube-chart.widget.d.ts.map +0 -1
  236. package/lib/dashboard/cube/documents.widget.d.ts.map +0 -1
  237. package/lib/dashboard/cube/filter/filter.component.d.ts.map +0 -1
  238. package/lib/dashboard/dashboard.component.d.ts.map +0 -1
  239. package/lib/dashboard/dashboard.pane.component.d.ts.map +0 -1
  240. package/lib/dashboard/recents/recents.widget.d.ts.map +0 -1
  241. package/lib/dashboard/score/activity.widget.d.ts.map +0 -1
  242. package/lib/dashboard/score/compare-departments.widget.d.ts.map +0 -1
  243. package/lib/dashboard/score/peers-performance.widget.d.ts.map +0 -1
  244. package/lib/dashboard/score/pending-results.widget.d.ts.map +0 -1
  245. package/lib/dashboard/score/personal-score.widget.d.ts.map +0 -1
  246. package/lib/dashboard/widget-item.component.d.ts.map +0 -1
  247. package/lib/dashboard/widget-ref.d.ts.map +0 -1
  248. package/lib/desktop.module.d.ts.map +0 -1
  249. package/lib/home/about/about.dialog.d.ts.map +0 -1
  250. package/lib/home/home-base.component.d.ts.map +0 -1
  251. package/lib/home/home.desktop.component.d.ts.map +0 -1
  252. package/lib/home/home.mobile.component.d.ts.map +0 -1
  253. package/lib/home/notifications/notifications.component.d.ts.map +0 -1
  254. package/lib/home/options/options.component.d.ts.map +0 -1
  255. package/lib/home/outofoffice/outofoffice.component.d.ts.map +0 -1
  256. package/lib/home/search.service.d.ts.map +0 -1
  257. package/lib/home/sign/sign.component.d.ts.map +0 -1
  258. package/lib/home/tools.component.d.ts.map +0 -1
  259. package/lib/impersonate/impersonate.component.d.ts.map +0 -1
  260. package/lib/mobile.module.d.ts.map +0 -1
  261. package/lib/modules/chart.module.d.ts.map +0 -1
  262. package/lib/modules/circular-gauge.module.d.ts.map +0 -1
  263. package/lib/modules/date.adapter.d.ts.map +0 -1
  264. package/lib/modules/datepicker.intl.d.ts.map +0 -1
  265. package/lib/modules/diagram.module.d.ts.map +0 -1
  266. package/lib/modules/gantt.module.d.ts.map +0 -1
  267. package/lib/modules/grid.module.d.ts.map +0 -1
  268. package/lib/modules/material.module.d.ts.map +0 -1
  269. package/lib/modules/paginator.intl.d.ts.map +0 -1
  270. package/lib/modules/pivot.module.d.ts.map +0 -1
  271. package/lib/modules/schedule.module.d.ts.map +0 -1
  272. package/lib/modules/spreadsheet.module.d.ts.map +0 -1
  273. package/lib/modules/stepper.intl.d.ts.map +0 -1
  274. package/lib/modules/texteditor.module.d.ts.map +0 -1
  275. package/lib/notifications/filter.component.d.ts.map +0 -1
  276. package/lib/notifications/notifications-table.component.d.ts.map +0 -1
  277. package/lib/notifications/notifications.component-base.d.ts.map +0 -1
  278. package/lib/notifications/notifications.mobile.component.d.ts.map +0 -1
  279. package/lib/notifications/notifications.pane.component.d.ts.map +0 -1
  280. package/lib/notifications/notifications.service.d.ts.map +0 -1
  281. package/lib/notifications/types/commented.notification.d.ts.map +0 -1
  282. package/lib/notifications/types/cube-anomaly.notification.d.ts.map +0 -1
  283. package/lib/notifications/types/escalated.notification.d.ts.map +0 -1
  284. package/lib/notifications/types/liked.notification.d.ts.map +0 -1
  285. package/lib/notifications/types/long-running-task.notification.d.ts.map +0 -1
  286. package/lib/notifications/types/notification-base.d.ts.map +0 -1
  287. package/lib/notifications/types/nudge.notification.d.ts.map +0 -1
  288. package/lib/notifications/types/state-changed.notification.d.ts.map +0 -1
  289. package/lib/notifications/types/tagged.notification.d.ts.map +0 -1
  290. package/lib/notifications/types/text.notification.d.ts.map +0 -1
  291. package/lib/notifications/types/upcoming-event.notification.d.ts.map +0 -1
  292. package/lib/options/options.component.d.ts.map +0 -1
  293. package/lib/options/options.service.d.ts.map +0 -1
  294. package/lib/reports/arguments-component.d.ts.map +0 -1
  295. package/lib/reports/cube/grid-documents.component.d.ts.map +0 -1
  296. package/lib/reports/cube/table-documents.component.d.ts.map +0 -1
  297. package/lib/reports/cube/usage-args.component.d.ts.map +0 -1
  298. package/lib/reports/cube/usage-base.d.ts.map +0 -1
  299. package/lib/reports/cube/usage-chart.component.d.ts.map +0 -1
  300. package/lib/reports/cube/usage-pivot.component.d.ts.map +0 -1
  301. package/lib/reports/report-ref.d.ts.map +0 -1
  302. package/lib/reports/report-viewer.component.d.ts.map +0 -1
  303. package/lib/reports/report.mobile.component.d.ts.map +0 -1
  304. package/lib/reports/report.pane.component.d.ts.map +0 -1
  305. package/lib/reports/reports-menu.component.d.ts.map +0 -1
  306. package/lib/reports/substitution/substitution.component.d.ts.map +0 -1
  307. package/lib/reports/table/table-view.component.d.ts.map +0 -1
  308. package/lib/reports/tasks/tasks.component.d.ts.map +0 -1
  309. package/lib/routes.desktop.d.ts.map +0 -1
  310. package/lib/routes.mobile.d.ts.map +0 -1
  311. package/lib/scheduler/schedule.component.d.ts.map +0 -1
  312. package/lib/scheduler/scheduler.mobile.component.d.ts.map +0 -1
  313. package/lib/scheduler/scheduler.pane.component.d.ts.map +0 -1
  314. package/lib/shared.module.d.ts.map +0 -1
  315. package/lib/system.module.d.ts.map +0 -1
  316. package/lib/views/cube/chart.component.d.ts.map +0 -1
  317. package/lib/views/cube/cube-base.d.ts.map +0 -1
  318. package/lib/views/cube/explore.component.d.ts.map +0 -1
  319. package/lib/views/cube/matrix.component.d.ts.map +0 -1
  320. package/lib/views/cube/parallel.component.d.ts.map +0 -1
  321. package/lib/views/cube/pivot.component.d.ts.map +0 -1
  322. package/lib/views/cube/sum.component.d.ts.map +0 -1
  323. package/lib/views/cube/view.component.d.ts.map +0 -1
  324. package/lib/views/document-view-ref.d.ts.map +0 -1
  325. package/lib/views/timeline/timeline.component.exp.d.ts.map +0 -1
  326. package/lib/views/view-item.component.d.ts.map +0 -1
  327. package/lib/views/views.component.d.ts.map +0 -1
  328. package/lib/views/views.mobile.component.d.ts.map +0 -1
  329. package/lib/views/views.pane.component.d.ts.map +0 -1
  330. package/public-api.d.ts.map +0 -1
@@ -128,7 +128,7 @@ import { Spreadsheet, isNumber, SpreadsheetModule, SelectionService as Selection
128
128
  import * as i4$1 from '@ctrl/ngx-emoji-mart';
129
129
  import { PickerModule } from '@ctrl/ngx-emoji-mart';
130
130
  import * as i11$1 from '@syncfusion/ej2-angular-diagrams';
131
- import { Diagram, UndoRedo, ConnectorDrawingTool, DiagramConstraints, DiagramTools, NodeConstraints, ConnectorConstraints, SelectorConstraints, Node, SymbolPaletteComponent, ComplexHierarchicalTree, BpmnDiagrams, DataBinding, ConnectionPointOrigin, SnapConstraints, ComplexHierarchicalTreeService, DiagramModule, SymbolPaletteModule, ConnectorBridgingService, LineRoutingService, BpmnDiagramsService, LayoutAnimationService, UndoRedoService, SnappingService, ConnectorEditingService, ToolBase } from '@syncfusion/ej2-angular-diagrams';
131
+ import { Diagram, UndoRedo, ConnectorDrawingTool, DiagramConstraints, DiagramTools, NodeConstraints, ConnectorConstraints, SelectorConstraints, Node, SymbolPaletteComponent, ComplexHierarchicalTree, BpmnDiagrams, DataBinding, LineDistribution, ConnectionPointOrigin, SnapConstraints, ComplexHierarchicalTreeService, DiagramModule, SymbolPaletteModule, ConnectorBridgingService, LineRoutingService, BpmnDiagramsService, LayoutAnimationService, UndoRedoService, SnappingService, ConnectorEditingService, ToolBase } from '@syncfusion/ej2-angular-diagrams';
132
132
  import * as i9$2 from '@syncfusion/ej2-angular-schedule';
133
133
  import { Schedule, Day, WorkWeek, Month, MonthAgenda, Agenda, Year, ScheduleModule, ExcelExportService as ExcelExportService$2, DayService, WorkWeekService, MonthService, MonthAgendaService, ICalendarExportService, AgendaService, YearService } from '@syncfusion/ej2-angular-schedule';
134
134
  import * as i10$2 from '@syncfusion/ej2-angular-kanban';
@@ -1247,6 +1247,8 @@ class MailboxService {
1247
1247
  };
1248
1248
  messaging.new$.
1249
1249
  subscribe(m => {
1250
+ if (m.userId !== _session.profile.userId)
1251
+ return;
1250
1252
  _session.profile.inboxCount++;
1251
1253
  const folder = _session.profile.folders.find(f => f.name === m.model.folderId);
1252
1254
  folder.count++;
@@ -1564,20 +1566,43 @@ function isHttpProgressEvent(event) {
1564
1566
  }
1565
1567
  function calculateState(upload, event) {
1566
1568
  if (isHttpProgressEvent(event)) {
1567
- return {
1569
+ return new UploadEvent({
1568
1570
  progress: event.total
1569
1571
  ? Math.round((100 * event.loaded) / event.total)
1570
1572
  : upload.progress,
1571
1573
  state: 'progress',
1572
- };
1574
+ });
1573
1575
  }
1574
1576
  if (isHttpResponse(event)) {
1575
- return {
1577
+ return new UploadEvent({
1576
1578
  progress: 100,
1577
1579
  state: 'done',
1578
- };
1580
+ });
1579
1581
  }
1580
1582
  return upload;
1583
+ }
1584
+ class UploadEvent {
1585
+ constructor(options) { }
1586
+ }
1587
+ function reportprogress(filename) {
1588
+ return (source) => source.pipe(map(r => {
1589
+ //if (event instanceof ProgressEvent) {
1590
+ // observe.next(new UploadEvent(
1591
+ // file.name,
1592
+ // (event as ProgressEvent).loaded,
1593
+ // (event as ProgressEvent).total
1594
+ // ));
1595
+ //} else if (event instanceof HttpResponse) {
1596
+ // const res = event as HttpResponse<any>;
1597
+ // if (res.status === 200) {
1598
+ // const model = res.body as Attachment;
1599
+ // observe.next(model);
1600
+ // }
1601
+ // else
1602
+ // observe.error({ status: res.status, error: res.body });
1603
+ // observe.complete();
1604
+ return r;
1605
+ }));
1581
1606
  }
1582
1607
 
1583
1608
  class ActionRef {
@@ -2077,6 +2102,9 @@ const STRINGS = {
2077
2102
  YouRepliedTo: 'You replied {0}',
2078
2103
  ReplyingToYou: '{0} in reply to you',
2079
2104
  ByYou: '{0} by you',
2105
+ ActionBy: '{0} by {1}',
2106
+ ActionByBy: '{0} by {1} on behalf of {2}',
2107
+ ActionByYou: '{0} by you',
2080
2108
  Received: 'Received',
2081
2109
  ChangeLanguage: 'Language',
2082
2110
  NewMail: 'New {0} #{1} {2}',
@@ -2348,6 +2376,7 @@ const STRINGS = {
2348
2376
  Votes: 'Votes',
2349
2377
  Tasks: 'Tasks',
2350
2378
  System: 'System',
2379
+ Everything: 'Everything',
2351
2380
  NothingHere: 'Nothing to see here',
2352
2381
  Matrix: 'Matrix',
2353
2382
  Working: 'Working on it...'
@@ -2384,7 +2413,7 @@ const STRINGS = {
2384
2413
  Skipped: '- דולג',
2385
2414
  Route: 'חותמים',
2386
2415
  Trace: 'הסטוריה',
2387
- Log: 'הסטוריה',
2416
+ Everything: 'הסטוריה',
2388
2417
  ProfilerSearchHelp: 'הקלד/י שם משתמש ובחר/י מהרשימה כדי לסקור פעולותיו.',
2389
2418
  TraceSearchHelp: 'הקלד/י מספר מסמך ובחר/י כדי לעקוב אחרי תנועותיו.',
2390
2419
  DiagramVersion: 'גרסה {0}',
@@ -2745,6 +2774,9 @@ const STRINGS = {
2745
2774
  YouRepliedTo: '{0}השבת ל',
2746
2775
  ReplyingToYou: '{0} השיב לך',
2747
2776
  ByYou: '{0} דרכך',
2777
+ ActionByYou: '{0} דרכך',
2778
+ ActionByBy: '{0} דרך {1} בשם {2}',
2779
+ ActionBy: '{0} דרך {1}',
2748
2780
  EscalatedTo: 'החרפה אל {0} אחרי <em>{1}</em>',
2749
2781
  EscalatedFrom: 'החרפה מ-{0} אחרי <em>{1}</em>',
2750
2782
  EscalatedBy: '{0} הועבר אל {1}',
@@ -6917,15 +6949,15 @@ function getSecondsUntilUpdate(time) {
6917
6949
 
6918
6950
  const REFRESH_TIME = 30000, TYPING_HINT_TIME = 1500;
6919
6951
  class ExpandedItemComponent {
6920
- constructor(_sb, _chat, _accounts, _dir, _translate, _mailbox, _dialog, _session, _messaging) {
6952
+ constructor(_sb, _chat, _accounts, _mailbox, _session, _dir, _dialog, _translate, _messaging) {
6921
6953
  this._sb = _sb;
6922
6954
  this._chat = _chat;
6923
6955
  this._accounts = _accounts;
6924
- this._dir = _dir;
6925
- this._translate = _translate;
6926
6956
  this._mailbox = _mailbox;
6927
- this._dialog = _dialog;
6928
6957
  this._session = _session;
6958
+ this._dir = _dir;
6959
+ this._dialog = _dialog;
6960
+ this._translate = _translate;
6929
6961
  this._messaging = _messaging;
6930
6962
  this.sent = new EventEmitter();
6931
6963
  this._destroy = new Subject();
@@ -6933,22 +6965,22 @@ class ExpandedItemComponent {
6933
6965
  ngOnInit() {
6934
6966
  this._messaging.comment$.pipe(takeUntil(this._destroy)).
6935
6967
  subscribe(e => {
6936
- if (e.id === this.item.id && (e.model.byId || e.model.userId) !== this._session.userId) {
6968
+ if (e.id === this.model.id && (e.model.byId || e.model.userId) !== this._session.userId) {
6937
6969
  this._comments();
6938
6970
  this._accounts.get(e.model.userId).subscribe(u => this._sb.toast('Commented', u.gender, u.name));
6939
6971
  }
6940
6972
  });
6941
6973
  this._messaging.update$.pipe(takeUntil(this._destroy)).subscribe(e => {
6942
- if (e.model.id === this.item.id) {
6974
+ if (e.model.id === this.model.id) {
6943
6975
  this._refresh();
6944
- (e.userId !== this._session.userId) && this._accounts.get(e.userId).subscribe(u => this._sb.toast('MailVersionUpdate', this.item.number, u.name));
6976
+ (e.userId !== this._session.userId) && this._accounts.get(e.userId).subscribe(u => this._sb.toast('MailVersionUpdate', this.model.number, u.name));
6945
6977
  }
6946
6978
  });
6947
6979
  this._mailbox.changed.pipe(takeUntil(this._destroy)).subscribe(e => {
6948
- if (e.id === this.item.id)
6980
+ if (e.id === this.model.id)
6949
6981
  this._refresh();
6950
6982
  });
6951
- this._messaging.commentTyping$.pipe(takeUntil(this._destroy), filter$1(e => e.id === this.item.documentId)).subscribe(c => {
6983
+ this._messaging.commentTyping$.pipe(takeUntil(this._destroy), filter$1(e => e.id === this.model.documentId)).subscribe(c => {
6952
6984
  this.typing = true;
6953
6985
  clearTimeout(this._typingTask);
6954
6986
  this._typingTask = setTimeout(() => this.typing = false, TYPING_HINT_TIME);
@@ -6958,31 +6990,28 @@ class ExpandedItemComponent {
6958
6990
  }
6959
6991
  _note() {
6960
6992
  return __awaiter(this, void 0, void 0, function* () {
6961
- const { ownerId, issued, substitutingId, received, replied, log, id, note, byId, action, toId } = this.item;
6993
+ const { ownerId, issued, substitutingId, received, replied, log, id, note, byId, action, toId, escalated, originId } = this.model;
6962
6994
  if (substitutingId) {
6963
- this._accounts.get(substitutingId).subscribe(u => {
6964
- if (replied) {
6965
- const time = this._fromNow(replied), action = this._session.profile.actions.find(a => a.name === action), adjective = (action.adjective || action.title).toLowerCase();
6966
- if (toId)
6967
- this._accounts.get(toId).subscribe(t => this.note = this._translate.personalize('YouSubstituteActionTakenTo', u.gender, adjective, this._formatUserElement(t), this._formatUserElement(u), time));
6968
- else
6969
- this.note = this._translate.personalize('YouSubstituteActionTaken', u.gender, adjective, this._formatUserElement(u), time);
6970
- }
6971
- else {
6972
- const escalations = issued &&
6973
- log.filter(l => l.time > issued &&
6974
- l.type === 'Escalation'
6975
- && l.recipientId === id);
6976
- if (escalations && escalations.length) {
6977
- const duration = dayjs(escalations[0].time).diff(received, 's');
6978
- this.note = this._translate.personalize('EscalatedFrom', u.gender, this._formatUserElement(u), this._duration(duration));
6979
- }
6980
- else {
6981
- const time = this._fromNow(received);
6982
- this.note = this._translate.personalize('SubstitutingNote', u.gender, this._formatUserElement(u), time, note || '');
6983
- }
6995
+ const substituting = yield this._accounts.get(substitutingId).toPromise();
6996
+ if (replied) {
6997
+ const time = this._fromNow(replied), action = this._session.profile.actions.find(a => a.name === action), adjective = (action.adjective || action.title).toLowerCase();
6998
+ if (toId) {
6999
+ const to = yield this._accounts.get(toId).toPromise();
7000
+ this.note = this._translate.personalize('YouSubstituteActionTakenTo', substituting.gender, adjective, this._formatUserElement(to), this._formatUserElement(substituting), time);
6984
7001
  }
6985
- });
7002
+ else
7003
+ this.note = this._translate.personalize('YouSubstituteActionTaken', substituting.gender, adjective, this._formatUserElement(substituting), time);
7004
+ }
7005
+ else if (escalated) {
7006
+ const escalations = log.filter(l => l.time > issued &&
7007
+ l.type === 'Escalation'
7008
+ && l.recipientId === id);
7009
+ this.note = this._translate.personalize('EscalatedFrom', substituting.gender, this._formatUserElement(substituting), this._duration(escalations[0].duration));
7010
+ }
7011
+ else {
7012
+ const time = this._fromNow(received);
7013
+ this.note = this._translate.personalize('SubstitutingNote', substituting.gender, this._formatUserElement(substituting), time, note || '');
7014
+ }
6986
7015
  }
6987
7016
  else if (replied) {
6988
7017
  const time = this._fromNow(replied);
@@ -7016,6 +7045,23 @@ class ExpandedItemComponent {
7016
7045
  }
7017
7046
  else if (note)
7018
7047
  this.note = note;
7048
+ else if (originId) {
7049
+ const origin = this.model.recipients.find(r => r.id === originId);
7050
+ if (origin.toId) {
7051
+ const action = this._session.profile.actions.find(a => a.name === origin.action), adjective = action.adjective || action.past || action.title;
7052
+ if ((origin.byId || origin.userId) === this._session.userId)
7053
+ this.note = this._translate.get('ActionByYou', adjective);
7054
+ else if (origin.byId) {
7055
+ const who = yield this._accounts.get(origin.userId).toPromise();
7056
+ const by = yield this._accounts.get(origin.byId).toPromise();
7057
+ this.note = this._translate.get('ActionByBy', adjective, by.name, who.name);
7058
+ }
7059
+ else {
7060
+ const who = yield this._accounts.get(origin.userId).toPromise();
7061
+ this.note = this._translate.get('ActionBy', adjective, who.name);
7062
+ }
7063
+ }
7064
+ }
7019
7065
  else if (ownerId === this._session.profile.userId && issued) {
7020
7066
  const time = this._fromNow(issued);
7021
7067
  if (byId) {
@@ -7058,9 +7104,9 @@ class ExpandedItemComponent {
7058
7104
  /** */
7059
7105
  _refresh() {
7060
7106
  return __awaiter(this, void 0, void 0, function* () {
7061
- const { actions } = this.item;
7107
+ const { actions } = this.model;
7062
7108
  this.actions = actions && actions.length ? this._session.profile.actions.filter(a => actions.indexOf(a.name) > -1) : null;
7063
- const { senderId } = this.item;
7109
+ const { senderId } = this.model;
7064
7110
  // sender
7065
7111
  if (senderId && (senderId !== this._session.userId)) {
7066
7112
  const who = yield this._accounts.get(senderId).toPromise();
@@ -7072,14 +7118,14 @@ class ExpandedItemComponent {
7072
7118
  });
7073
7119
  }
7074
7120
  _comments() {
7075
- const { viewed, comments } = this.item;
7121
+ const { viewed, comments } = this.model;
7076
7122
  this.newComments = viewed ?
7077
7123
  comments.filter(c => c.time > viewed && (c.byId || c.userId) !== this._session.userId).length || null : null;
7078
7124
  }
7079
7125
  _awaiting() {
7080
7126
  return __awaiter(this, void 0, void 0, function* () {
7081
7127
  //awaiting
7082
- let recipients = this.item.recipients.filter(r => r.pending && !r.estimate).
7128
+ let recipients = this.model.recipients.filter(r => r.pending && !r.estimate).
7083
7129
  sort((r0, r1) => r0.received > r1.received ? 1 : -1).
7084
7130
  map(r => r.userId);
7085
7131
  recipients = recipients.filter((r, i) => recipients.indexOf(r) === i); /* unique */
@@ -7111,10 +7157,10 @@ class ExpandedItemComponent {
7111
7157
  * @param action
7112
7158
  */
7113
7159
  send(action) {
7114
- const { id, number, version, formId } = this.item;
7160
+ const { id, number, version, formId } = this.model;
7115
7161
  const data = {
7116
7162
  action,
7117
- item: this.item
7163
+ item: this.model
7118
7164
  };
7119
7165
  this._dialog.open(ActionDialog, {
7120
7166
  data,
@@ -7128,10 +7174,10 @@ class ExpandedItemComponent {
7128
7174
  this._accounts.get(r.toId).subscribe(u => this._sb.toast('SentTo', number, adjective.toLowerCase(), u.name));
7129
7175
  else
7130
7176
  this._sb.toast('Sent', number, adjective.toLowerCase());
7131
- this.sent.emit(this.item);
7177
+ this.sent.emit(this.model);
7132
7178
  this.mode = 'done';
7133
7179
  }, e => {
7134
- this._handleResponse(e, this.item, 'SendErr');
7180
+ this._handleResponse(e, this.model, 'SendErr');
7135
7181
  this.mode = 'failed';
7136
7182
  });
7137
7183
  }
@@ -7175,12 +7221,12 @@ class ExpandedItemComponent {
7175
7221
  this._typingTask && clearTimeout(this._typingTask);
7176
7222
  }
7177
7223
  }
7178
- ExpandedItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ExpandedItemComponent, deps: [{ token: PromptService }, { token: ChatInfo }, { token: AccountService }, { token: i7$2.Directionality }, { token: TranslateService }, { token: MailboxService }, { token: i3$2.MatDialog }, { token: SessionService }, { token: HubService }], target: i0.ɵɵFactoryTarget.Component });
7179
- ExpandedItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: ExpandedItemComponent, selector: "bizdoc-expanded-item", inputs: { item: "item" }, outputs: { sent: "sent" }, ngImport: i0, template: "<div class=\"summary\" *ngIf=\"item.summary\" [innerHTML]=\"item.summary\">\r\n</div>\r\n<div>\r\n <bizdoc-attachments [model]=\"item\"></bizdoc-attachments>\r\n <bizdoc-events [model]=\"item\"></bizdoc-events>\r\n</div>\r\n<div class=\"row\">\r\n <span class=\"note\" [innerHTML]=\"note | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n <span class=\"divider\"></span>\r\n <ng-container *ngFor=\"let a of actions\">\r\n <button mat-icon-button (click)=\"send(a.name)\" [bizdocTooltip]=\"a.title\" *ngIf=\"a.icon\" class=\"tool\">\r\n <mat-icon>{{a.icon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n</div>\r\n<div class=\"row\">\r\n <div class=\"mat-small\" fxLayout=\"row\">\r\n <span>{{item.stateId | state : 'past' }}</span>\r\n &nbsp;\r\n <span class=\"time\" [bizdocTooltip]=\"item.received | amCalendar\">{{item.received | amTimeAgo}}</span>\r\n &nbsp;\r\n <span [innerHTML]=\"sender | sanitizeHtml\" (click)=\"chat($event)\" class=\"who\"></span>&nbsp;\r\n <span [innerHTML]=\"awaiting | sanitizeHtml\" (click)=\"chat($event)\" class=\"who\"></span>\r\n </div>\r\n <span class=\"divider\"></span>\r\n <div fxLayoutAlign=\"center center\">\r\n <span class=\"mat-small\" *ngIf=\"typing\">{{'SomeoneTyping'|translate}}</span>\r\n <div *ngIf=\"item.comments.length\" class=\"mat-small\">\r\n <span *ngIf=\"!newComments; else newcomments\">{{item.comments.length > 1 ? ('CommentsCount' | translate : item.comments.length) : 'OneComment' | translate }}</span>\r\n </div>\r\n </div>\r\n <div *ngIf=\"item.tags\">\r\n <span *ngFor=\"let tag of item.tags\" class=\"mat-chip mat-standard-chip small-chip\">{{tag}}</span>\r\n </div>\r\n</div>\r\n<ng-template #newcomments>\r\n <span [innerHTML]=\"'NewCommentsCount' | translate : item.comments.length : newComments | sanitizeHtml\"></span>\r\n</ng-template>\r\n", styles: [":host{display:flex;flex-direction:column;overflow:hidden;padding-right:24px;padding-left:24px;text-align:start}.row{align-items:center;min-height:27px;flex-direction:row;box-sizing:border-box;display:flex}.note{font-weight:200}.time{text-transform:uppercase}.summary{max-width:-moz-fit-content;max-width:fit-content}\n"], components: [{ type: AttachmentsComponent, selector: "bizdoc-attachments", inputs: ["model", "viewedIndicator", "includeDeleted"] }, { type: DocumentEventsComponent, selector: "bizdoc-events", inputs: ["model"] }, { type: i7$1.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"] }, { type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i6$1.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i6$1.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }], pipes: { "sanitizeHtml": SanitizeHtmlPipe, "state": StatePipe, "amCalendar": CalendarPipe, "amTimeAgo": TimeAgoPipe, "translate": TranslatePipe } });
7224
+ ExpandedItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ExpandedItemComponent, deps: [{ token: PromptService }, { token: ChatInfo }, { token: AccountService }, { token: MailboxService }, { token: SessionService }, { token: i7$2.Directionality }, { token: i3$2.MatDialog }, { token: TranslateService }, { token: HubService }], target: i0.ɵɵFactoryTarget.Component });
7225
+ ExpandedItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: ExpandedItemComponent, selector: "bizdoc-expanded-item", inputs: { model: "model" }, outputs: { sent: "sent" }, ngImport: i0, template: "<div class=\"summary\" *ngIf=\"model.summary\" [innerHTML]=\"model.summary\">\r\n</div>\r\n<div>\r\n <bizdoc-attachments [model]=\"model\"></bizdoc-attachments>\r\n <bizdoc-events [model]=\"model\"></bizdoc-events>\r\n</div>\r\n<div class=\"row\">\r\n <span class=\"note\" [innerHTML]=\"note | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n <span class=\"divider\"></span>\r\n <ng-container *ngFor=\"let a of actions\">\r\n <button mat-icon-button (click)=\"send(a.name)\" [bizdocTooltip]=\"a.title\" *ngIf=\"a.icon\" class=\"tool\">\r\n <mat-icon>{{a.icon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n</div>\r\n<div class=\"row\">\r\n <div class=\"mat-small\" fxLayout=\"row\">\r\n <span>{{model.stateId | state : 'past' }}</span>\r\n &nbsp;\r\n <span class=\"time\" [bizdocTooltip]=\"model.received | amCalendar\">{{model.received | amTimeAgo}}</span>\r\n &nbsp;\r\n <span [innerHTML]=\"sender | sanitizeHtml\" (click)=\"chat($event)\" class=\"who\"></span>&nbsp;\r\n <span [innerHTML]=\"awaiting | sanitizeHtml\" (click)=\"chat($event)\" class=\"who\"></span>\r\n </div>\r\n <span class=\"divider\"></span>\r\n <div fxLayoutAlign=\"center center\">\r\n <span class=\"mat-small\" *ngIf=\"typing\">{{'SomeoneTyping'|translate}}</span>\r\n <div *ngIf=\"model.comments.length\" class=\"mat-small\">\r\n <span *ngIf=\"!newComments; else newcomments\">{{model.comments.length > 1 ? ('CommentsCount' | translate : model.comments.length) : 'OneComment' | translate }}</span>\r\n </div>\r\n </div>\r\n <div *ngIf=\"model.tags\">\r\n <span *ngFor=\"let tag of model.tags\" class=\"mat-chip mat-standard-chip small-chip\">{{tag}}</span>\r\n </div>\r\n</div>\r\n<ng-template #newcomments>\r\n <span [innerHTML]=\"'NewCommentsCount' | translate : model.comments.length : newComments | sanitizeHtml\"></span>\r\n</ng-template>\r\n", styles: [":host{display:flex;flex-direction:column;overflow:hidden;padding-right:24px;padding-left:24px;text-align:start}.row{align-items:center;min-height:27px;flex-direction:row;box-sizing:border-box;display:flex}.note{font-weight:200}.time{text-transform:uppercase}.summary{max-width:-moz-fit-content;max-width:fit-content}\n"], components: [{ type: AttachmentsComponent, selector: "bizdoc-attachments", inputs: ["model", "viewedIndicator", "includeDeleted"] }, { type: DocumentEventsComponent, selector: "bizdoc-events", inputs: ["model"] }, { type: i7$1.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"] }, { type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i6$1.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i6$1.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }], pipes: { "sanitizeHtml": SanitizeHtmlPipe, "state": StatePipe, "amCalendar": CalendarPipe, "amTimeAgo": TimeAgoPipe, "translate": TranslatePipe } });
7180
7226
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ExpandedItemComponent, decorators: [{
7181
7227
  type: Component,
7182
- args: [{ selector: 'bizdoc-expanded-item', template: "<div class=\"summary\" *ngIf=\"item.summary\" [innerHTML]=\"item.summary\">\r\n</div>\r\n<div>\r\n <bizdoc-attachments [model]=\"item\"></bizdoc-attachments>\r\n <bizdoc-events [model]=\"item\"></bizdoc-events>\r\n</div>\r\n<div class=\"row\">\r\n <span class=\"note\" [innerHTML]=\"note | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n <span class=\"divider\"></span>\r\n <ng-container *ngFor=\"let a of actions\">\r\n <button mat-icon-button (click)=\"send(a.name)\" [bizdocTooltip]=\"a.title\" *ngIf=\"a.icon\" class=\"tool\">\r\n <mat-icon>{{a.icon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n</div>\r\n<div class=\"row\">\r\n <div class=\"mat-small\" fxLayout=\"row\">\r\n <span>{{item.stateId | state : 'past' }}</span>\r\n &nbsp;\r\n <span class=\"time\" [bizdocTooltip]=\"item.received | amCalendar\">{{item.received | amTimeAgo}}</span>\r\n &nbsp;\r\n <span [innerHTML]=\"sender | sanitizeHtml\" (click)=\"chat($event)\" class=\"who\"></span>&nbsp;\r\n <span [innerHTML]=\"awaiting | sanitizeHtml\" (click)=\"chat($event)\" class=\"who\"></span>\r\n </div>\r\n <span class=\"divider\"></span>\r\n <div fxLayoutAlign=\"center center\">\r\n <span class=\"mat-small\" *ngIf=\"typing\">{{'SomeoneTyping'|translate}}</span>\r\n <div *ngIf=\"item.comments.length\" class=\"mat-small\">\r\n <span *ngIf=\"!newComments; else newcomments\">{{item.comments.length > 1 ? ('CommentsCount' | translate : item.comments.length) : 'OneComment' | translate }}</span>\r\n </div>\r\n </div>\r\n <div *ngIf=\"item.tags\">\r\n <span *ngFor=\"let tag of item.tags\" class=\"mat-chip mat-standard-chip small-chip\">{{tag}}</span>\r\n </div>\r\n</div>\r\n<ng-template #newcomments>\r\n <span [innerHTML]=\"'NewCommentsCount' | translate : item.comments.length : newComments | sanitizeHtml\"></span>\r\n</ng-template>\r\n", styles: [":host{display:flex;flex-direction:column;overflow:hidden;padding-right:24px;padding-left:24px;text-align:start}.row{align-items:center;min-height:27px;flex-direction:row;box-sizing:border-box;display:flex}.note{font-weight:200}.time{text-transform:uppercase}.summary{max-width:-moz-fit-content;max-width:fit-content}\n"] }]
7183
- }], ctorParameters: function () { return [{ type: PromptService }, { type: ChatInfo }, { type: AccountService }, { type: i7$2.Directionality }, { type: TranslateService }, { type: MailboxService }, { type: i3$2.MatDialog }, { type: SessionService }, { type: HubService }]; }, propDecorators: { item: [{
7228
+ args: [{ selector: 'bizdoc-expanded-item', template: "<div class=\"summary\" *ngIf=\"model.summary\" [innerHTML]=\"model.summary\">\r\n</div>\r\n<div>\r\n <bizdoc-attachments [model]=\"model\"></bizdoc-attachments>\r\n <bizdoc-events [model]=\"model\"></bizdoc-events>\r\n</div>\r\n<div class=\"row\">\r\n <span class=\"note\" [innerHTML]=\"note | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n <span class=\"divider\"></span>\r\n <ng-container *ngFor=\"let a of actions\">\r\n <button mat-icon-button (click)=\"send(a.name)\" [bizdocTooltip]=\"a.title\" *ngIf=\"a.icon\" class=\"tool\">\r\n <mat-icon>{{a.icon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n</div>\r\n<div class=\"row\">\r\n <div class=\"mat-small\" fxLayout=\"row\">\r\n <span>{{model.stateId | state : 'past' }}</span>\r\n &nbsp;\r\n <span class=\"time\" [bizdocTooltip]=\"model.received | amCalendar\">{{model.received | amTimeAgo}}</span>\r\n &nbsp;\r\n <span [innerHTML]=\"sender | sanitizeHtml\" (click)=\"chat($event)\" class=\"who\"></span>&nbsp;\r\n <span [innerHTML]=\"awaiting | sanitizeHtml\" (click)=\"chat($event)\" class=\"who\"></span>\r\n </div>\r\n <span class=\"divider\"></span>\r\n <div fxLayoutAlign=\"center center\">\r\n <span class=\"mat-small\" *ngIf=\"typing\">{{'SomeoneTyping'|translate}}</span>\r\n <div *ngIf=\"model.comments.length\" class=\"mat-small\">\r\n <span *ngIf=\"!newComments; else newcomments\">{{model.comments.length > 1 ? ('CommentsCount' | translate : model.comments.length) : 'OneComment' | translate }}</span>\r\n </div>\r\n </div>\r\n <div *ngIf=\"model.tags\">\r\n <span *ngFor=\"let tag of model.tags\" class=\"mat-chip mat-standard-chip small-chip\">{{tag}}</span>\r\n </div>\r\n</div>\r\n<ng-template #newcomments>\r\n <span [innerHTML]=\"'NewCommentsCount' | translate : model.comments.length : newComments | sanitizeHtml\"></span>\r\n</ng-template>\r\n", styles: [":host{display:flex;flex-direction:column;overflow:hidden;padding-right:24px;padding-left:24px;text-align:start}.row{align-items:center;min-height:27px;flex-direction:row;box-sizing:border-box;display:flex}.note{font-weight:200}.time{text-transform:uppercase}.summary{max-width:-moz-fit-content;max-width:fit-content}\n"] }]
7229
+ }], ctorParameters: function () { return [{ type: PromptService }, { type: ChatInfo }, { type: AccountService }, { type: MailboxService }, { type: SessionService }, { type: i7$2.Directionality }, { type: i3$2.MatDialog }, { type: TranslateService }, { type: HubService }]; }, propDecorators: { model: [{
7184
7230
  type: Input
7185
7231
  }], sent: [{
7186
7232
  type: Output
@@ -7280,7 +7326,7 @@ class BrowseItemsComponent {
7280
7326
  this._remove(item);
7281
7327
  });
7282
7328
  this._messaging.new$.pipe(takeUntil(this._destroy)).subscribe(m => {
7283
- if (!this.dataSource)
7329
+ if (!this.dataSource || m.userId !== this._session.profile.userId)
7284
7330
  return;
7285
7331
  const item = this.dataSource.data.find(c => c.id === m.model.id);
7286
7332
  if (!item && this.folderId === m.model.folderId) {
@@ -7613,7 +7659,7 @@ class BrowseItemsComponent {
7613
7659
  }
7614
7660
  }
7615
7661
  BrowseItemsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BrowseItemsComponent, deps: [{ token: MailboxService }, { token: AccountService }, { token: CubeService }, { token: SessionService }, { token: PromptService }, { token: TranslateService }, { token: i0.ChangeDetectorRef }, { token: RouterImpl }, { token: HubService }, { token: BIZDOC_CONFIG }], target: i0.ɵɵFactoryTarget.Component });
7616
- BrowseItemsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BrowseItemsComponent, selector: "bizdoc-browse-items", inputs: { folderId: "folderId", filterType: "filterType", filters: "filters" }, outputs: { onopen: "open", onview: "view" }, viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true, static: true }, { propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<bizdoc-none *ngIf=\"dataSource?.data.length === 0\" title=\"NoMessages\" [subtitle]=\"!isMobile && folderId === DRAFT ? 'AltN' : null\" icon=\"mail_outline\"></bizdoc-none>\r\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<mat-table cdkDropList class=\"data-table\"\r\n [cdkDropListDisabled]=\"isMobile\"\r\n [cdkDropListData]=\"dataSource?.data\"\r\n cdkDropListConnectedTo=\"folders\"\r\n cdkDropListSortingDisabled\r\n [dataSource]=\"dataSource\" matSort multiTemplateDataRows (matSortChange)=\"sortData()\"\r\n id=\"browse-table\" [@list]=\"dataSource\" [style.display]=\"dataSource?.data.length ?'':'none'\">\r\n <ng-container matColumnDef=\"select\">\r\n <mat-header-cell *matHeaderCellDef>\r\n <div class=\"\"></div>\r\n <mat-checkbox (change)=\"$event ? masterToggle() : null\" [aria-label]=\"'Check'|translate\"\r\n [checked]=\"selection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\">\r\n </mat-checkbox>\r\n </mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\">\r\n <mat-checkbox (click)=\"$event.stopPropagation()\" [aria-label]=\"'Check'|translate\"\r\n (change)=\"$event ? selection.toggle(item) : null\"\r\n [checked]=\"selection.isSelected(item)\">\r\n </mat-checkbox>\r\n <!-- drag -->\r\n <!--<button mat-icon-button cdkDragHandle\r\n (mousedown)=\"dragDisabled = false\"\r\n (mouseup)=\"dragDisabled = true\"\r\n (touchstart)=\"dragDisabled = false\"\r\n (touchend)=\"dragDisabled = true\"\r\n class=\"drag\" aria-disabled=\"true\" fxHide.xs>\r\n <mat-icon>drag_indicator</mat-icon>\r\n </button>-->\r\n <button mat-icon-button (click)=\"toggleExpanded(item, $event)\" [bizdocTooltip]=\"'Details' | translate\" [attr.aria-label]=\"'Details' | translate\" class=\"tool\"><mat-icon>{{item == expandedElement ? 'unfold_less' : 'unfold_more'}}</mat-icon></button>\r\n </mat-cell>\r\n </ng-container>\r\n <!-- Number column -->\r\n <ng-container matColumnDef=\"number\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Number' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\"> {{item.number}} </mat-cell>\r\n </ng-container>\r\n\r\n <!-- Subject column -->\r\n <ng-container matColumnDef=\"subject\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Subject' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\"> {{item.subject}} </mat-cell>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"owner\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Owner' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\">\r\n <bizdoc-identity-name *ngIf=\"item.ownerId\" [identity]=\"item.ownerId\" [by]=\"item.ownerById\"></bizdoc-identity-name>\r\n </mat-cell>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sender\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Sender' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\">\r\n <bizdoc-identity-name *ngIf=\"item.senderId\" [identity]=\"item.senderId\" [by]=\"item.byId\"></bizdoc-identity-name>\r\n </mat-cell>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"received\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Received' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\"> {{item.received | amCalendar}} </mat-cell>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"receivedAgo\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header=\"received\">{{'Received' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\" [bizdocTooltip]=\"item.received | amCalendar\">{{item.received | amTimeAgo}}</mat-cell>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"replied\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Replied' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\"> {{item.replied | amCalendar}} </mat-cell>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"issued\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Issued' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\"> {{item.issued | amCalendar}} </mat-cell>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"issuedAgo\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header=\"issued\">{{'Issued' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\" [bizdocTooltip]=\"item.issued | amCalendar\"> {{item.issued | amTimeAgo}} </mat-cell>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"state\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header=\"stateId\">{{'Status' | translate }}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\">\r\n <bizdoc-status [stateId]=\"item.stateId\"></bizdoc-status>\r\n </mat-cell>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"customColumns\">\r\n <ng-container *ngFor=\"let c of customColumns\" [matColumnDef]=\"c.name\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header> {{c.title}} </mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\">\r\n <ng-container [ngSwitch]=\"c.type\">\r\n <span *ngSwitchCase=\"'Date'\">\r\n {{item.model[c.name] | amCalendar }}\r\n </span>\r\n <span *ngSwitchCase=\"'Decimal'\">\r\n {{item.model[c.name] | number }}\r\n </span>\r\n <span *ngSwitchCase=\"'Boolean'\">\r\n <mat-checkbox [checked]=\"item.model[c.name]\" [disabled]=\"true\"></mat-checkbox>\r\n </span>\r\n <span *ngSwitchDefault>\r\n {{item.model[c.name]}}z\r\n </span>\r\n </ng-container>\r\n </mat-cell>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <!-- Value column -->\r\n <ng-container matColumnDef=\"value\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Amount' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\"> {{item.value | currency : item.currencyCode : 'symbol' : currencyFormat}} </mat-cell>\r\n </ng-container>\r\n\r\n <!-- options column -->\r\n <ng-container matColumnDef=\"options\">\r\n <mat-header-cell *matHeaderCellDef></mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\">\r\n <button mat-icon-button (click)=\"flag(item, $event)\" [bizdocTooltip]=\"'Flagged'| translate\" [attr.aria-label]=\"'ToggleFlagged' | translate\" class=\"tool\"><mat-icon [class.document-flag]=\"item.flag\">{{item.flag ? 'star' : 'star_border'}}</mat-icon></button>\r\n <button mat-icon-button (click)=\"view(item, $event)\" [bizdocTooltip]=\"'View' | translate\" [attr.aria-label]=\"'View' | translate\" class=\"tool\" *ngIf=\"enableAnalysis\"><mat-icon>data_usage</mat-icon></button>\r\n <button mat-icon-button (click)=\"$event.stopPropagation()\" [matMenuTriggerFor]=\"menu\" fxHide.xs [matMenuTriggerData]=\"{item: item}\" [bizdocTooltip]=\"'Options' | translate\" [attr.aria-label]=\"'Options' | translate\" class=\"tool\"><mat-icon>more_vert</mat-icon></button>\r\n </mat-cell>\r\n </ng-container>\r\n <!-- Expanded Content Column -->\r\n <ng-container matColumnDef=\"expandedDetail\">\r\n <mat-cell *matCellDef=\"let item\" [attr.colspan]=\"displayedColumns.length\" [@updated]=\"item == updatedElement\"\r\n [class.read-row]=\"item.read\">\r\n <div [@detailExpand]=\"item == expandedElement ? 'expanded' : 'collapsed'\" style=\"width: 100%\">\r\n <bizdoc-expanded-item [item]=\"item\" *ngIf=\"item == expandedElement\"></bizdoc-expanded-item>\r\n </div>\r\n </mat-cell>\r\n </ng-container>\r\n <mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></mat-header-row>\r\n <mat-row @item [@updated]=\"item == updatedElement\"\r\n *matRowDef=\"let item; let dataIndex = dataIndex; columns: displayedColumns;\" class=\"element-row\"\r\n cdkDrag [cdkDragData]=\"item\"\r\n [cdkDragDisabled]=\"dragDisabled\"\r\n (cdkDragReleased)=\"dragDisabled = true\"\r\n [ngClass]=\"{'selecteded-row': selectedElement === item,\r\n 'expanded-row': expandedElement === item,\r\n 'odd-row': dataIndex % 2,\r\n 'read-row': item.read}\" matRipple\r\n (click)=\"open(item, $event)\">\r\n <div *cdkDragPreview>\r\n <button mat-icon-button aria-disabled=\"true\"><mat-icon>drag_indicator</mat-icon></button> <span>#{{item.number}}</span>\r\n </div>\r\n <div *cdkDragPlaceholder>\r\n <!-- none -->\r\n </div>\r\n </mat-row>\r\n <mat-row *matRowDef=\"let item; ; let dataIndex = dataIndex; columns: ['expandedDetail']\"\r\n class=\"detail-row\" matRipple\r\n [ngClass]=\"{ 'selecteded-row': selectedElement === item,\r\n 'odd-row': dataIndex % 2\r\n }\"></mat-row>\r\n</mat-table>\r\n<mat-paginator #paginator [hidePageSize]=\"true\" [pageSize]=\"PAGE_SIZE\" [style.display]=\"!isMobile && dataSource?.data.length>PAGE_SIZE ? '':'none'\"></mat-paginator>\r\n<mat-menu #menu=\"matMenu\">\r\n <ng-template matMenuContent let-item=\"item\">\r\n <button mat-menu-item (click)=\"open(item, $event)\">{{'Open'|translate}}</button>\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"toggleRead(item)\">{{(item.read ?'MarkAsUnread':'MarkAsRead')|translate}}</button>\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"copy(item)\">{{'Copy'| translate}}</button>\r\n </ng-template>\r\n</mat-menu>\r\n", styles: ["#browse-table{width:100%}#browse-table .detail-row{min-height:0}#browse-table .element-row{cursor:pointer}#browse-table .element-row .drag{cursor:move}#browse-table .read-row{font-weight:100}@media screen and (min-width: 600px){.mat-row .tool{opacity:.05}.mat-row:hover .tool{opacity:1}}::ng-deep .mat-column-options{justify-content:end;padding-inline-end:8px}::ng-deep .mat-column-value{justify-content:right}::ng-deep .mat-column-select{white-space:nowrap}::ng-deep .mat-column-number{white-space:nowrap}\n"], components: [{ type: NoneComponent, selector: "bizdoc-none", inputs: ["title", "subtitle", "icon"] }, { type: i10$1.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { type: i5$1.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { type: i7.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i7$1.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"] }, { type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i6$2.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { type: IdentityName, selector: "bizdoc-identity-name", inputs: ["identity", "by", "chating"] }, { type: ExpandedItemComponent, selector: "bizdoc-expanded-item", inputs: ["item"], outputs: ["sent"] }, { type: i5$1.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { type: i5$1.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { type: i18.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { type: i8$2.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i8$2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i9.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }], directives: [{ type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i22.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { type: i6$2.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { type: i5$1.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { type: i5$1.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { type: i5$1.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { type: i5$1.MatCellDef, selector: "[matCellDef]" }, { type: i5$1.MatCell, selector: "mat-cell, td[mat-cell]" }, { type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: StateDirective, selector: "bizdoc-status", inputs: ["stateId"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i10.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i10.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i10.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i25.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide], [fxHide.print], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]", inputs: ["fxShow", "fxShow.print", "fxShow.xs", "fxShow.sm", "fxShow.md", "fxShow.lg", "fxShow.xl", "fxShow.lt-sm", "fxShow.lt-md", "fxShow.lt-lg", "fxShow.lt-xl", "fxShow.gt-xs", "fxShow.gt-sm", "fxShow.gt-md", "fxShow.gt-lg", "fxHide", "fxHide.print", "fxHide.xs", "fxHide.sm", "fxHide.md", "fxHide.lg", "fxHide.xl", "fxHide.lt-sm", "fxHide.lt-md", "fxHide.lt-lg", "fxHide.lt-xl", "fxHide.gt-xs", "fxHide.gt-sm", "fxHide.gt-md", "fxHide.gt-lg"] }, { type: i8$2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i5$1.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { type: i5$1.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { type: i22.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { type: i6.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { type: i10.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i25.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i22.CdkDragPreview, selector: "ng-template[cdkDragPreview]", inputs: ["data", "matchSize"] }, { type: i22.CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { type: i8$2.MatMenuContent, selector: "ng-template[matMenuContent]" }], pipes: { "translate": TranslatePipe, "amCalendar": CalendarPipe, "amTimeAgo": TimeAgoPipe, "number": i10.DecimalPipe, "currency": i10.CurrencyPipe }, animations: [
7662
+ BrowseItemsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BrowseItemsComponent, selector: "bizdoc-browse-items", inputs: { folderId: "folderId", filterType: "filterType", filters: "filters" }, outputs: { onopen: "open", onview: "view" }, viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true, static: true }, { propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<bizdoc-none *ngIf=\"dataSource?.data.length === 0\" title=\"NoMessages\" [subtitle]=\"!isMobile && folderId === DRAFT ? 'AltN' : null\" icon=\"mail_outline\"></bizdoc-none>\r\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<mat-table cdkDropList class=\"data-table\"\r\n [cdkDropListDisabled]=\"isMobile\"\r\n [cdkDropListData]=\"dataSource?.data\"\r\n cdkDropListConnectedTo=\"folders\"\r\n cdkDropListSortingDisabled\r\n [dataSource]=\"dataSource\" matSort multiTemplateDataRows (matSortChange)=\"sortData()\"\r\n id=\"browse-table\" [@list]=\"dataSource\" [style.display]=\"dataSource?.data.length ?'':'none'\">\r\n <ng-container matColumnDef=\"select\">\r\n <mat-header-cell *matHeaderCellDef>\r\n <div class=\"\"></div>\r\n <mat-checkbox (change)=\"$event ? masterToggle() : null\" [aria-label]=\"'Check'|translate\"\r\n [checked]=\"selection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\">\r\n </mat-checkbox>\r\n </mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\">\r\n <mat-checkbox (click)=\"$event.stopPropagation()\" [aria-label]=\"'Check'|translate\"\r\n (change)=\"$event ? selection.toggle(item) : null\"\r\n [checked]=\"selection.isSelected(item)\">\r\n </mat-checkbox>\r\n <!-- drag -->\r\n <!--<button mat-icon-button cdkDragHandle\r\n (mousedown)=\"dragDisabled = false\"\r\n (mouseup)=\"dragDisabled = true\"\r\n (touchstart)=\"dragDisabled = false\"\r\n (touchend)=\"dragDisabled = true\"\r\n class=\"drag\" aria-disabled=\"true\" fxHide.xs>\r\n <mat-icon>drag_indicator</mat-icon>\r\n </button>-->\r\n <button mat-icon-button (click)=\"toggleExpanded(item, $event)\" [bizdocTooltip]=\"'Details' | translate\" [attr.aria-label]=\"'Details' | translate\" class=\"tool\"><mat-icon>{{item == expandedElement ? 'unfold_less' : 'unfold_more'}}</mat-icon></button>\r\n </mat-cell>\r\n </ng-container>\r\n <!-- Number column -->\r\n <ng-container matColumnDef=\"number\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Number' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\"> {{item.number}} </mat-cell>\r\n </ng-container>\r\n\r\n <!-- Subject column -->\r\n <ng-container matColumnDef=\"subject\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Subject' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\"> {{item.subject}} </mat-cell>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"owner\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Owner' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\">\r\n <bizdoc-identity-name *ngIf=\"item.ownerId\" [identity]=\"item.ownerId\" [by]=\"item.ownerById\"></bizdoc-identity-name>\r\n </mat-cell>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sender\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Sender' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\">\r\n <bizdoc-identity-name *ngIf=\"item.senderId\" [identity]=\"item.senderId\" [by]=\"item.byId\"></bizdoc-identity-name>\r\n </mat-cell>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"received\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Received' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\"> {{item.received | amCalendar}} </mat-cell>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"receivedAgo\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header=\"received\">{{'Received' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\" [bizdocTooltip]=\"item.received | amCalendar\">{{item.received | amTimeAgo}}</mat-cell>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"replied\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Replied' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\"> {{item.replied | amCalendar}} </mat-cell>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"issued\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Issued' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\"> {{item.issued | amCalendar}} </mat-cell>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"issuedAgo\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header=\"issued\">{{'Issued' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\" [bizdocTooltip]=\"item.issued | amCalendar\"> {{item.issued | amTimeAgo}} </mat-cell>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"state\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header=\"stateId\">{{'Status' | translate }}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\">\r\n <bizdoc-status [stateId]=\"item.stateId\"></bizdoc-status>\r\n </mat-cell>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"customColumns\">\r\n <ng-container *ngFor=\"let c of customColumns\" [matColumnDef]=\"c.name\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header> {{c.title}} </mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\">\r\n <ng-container [ngSwitch]=\"c.type\">\r\n <span *ngSwitchCase=\"'Date'\">\r\n {{item.model[c.name] | amCalendar }}\r\n </span>\r\n <span *ngSwitchCase=\"'Decimal'\">\r\n {{item.model[c.name] | number }}\r\n </span>\r\n <span *ngSwitchCase=\"'Boolean'\">\r\n <mat-checkbox [checked]=\"item.model[c.name]\" [disabled]=\"true\"></mat-checkbox>\r\n </span>\r\n <span *ngSwitchDefault>\r\n {{item.model[c.name]}}z\r\n </span>\r\n </ng-container>\r\n </mat-cell>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <!-- Value column -->\r\n <ng-container matColumnDef=\"value\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Amount' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\"> {{item.value | currency : item.currencyCode : 'symbol' : currencyFormat}} </mat-cell>\r\n </ng-container>\r\n\r\n <!-- options column -->\r\n <ng-container matColumnDef=\"options\">\r\n <mat-header-cell *matHeaderCellDef></mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\">\r\n <button mat-icon-button (click)=\"flag(item, $event)\" [bizdocTooltip]=\"'Flagged'| translate\" [attr.aria-label]=\"'ToggleFlagged' | translate\" class=\"tool\"><mat-icon [class.document-flag]=\"item.flag\">{{item.flag ? 'star' : 'star_border'}}</mat-icon></button>\r\n <button mat-icon-button (click)=\"view(item, $event)\" [bizdocTooltip]=\"'View' | translate\" [attr.aria-label]=\"'View' | translate\" class=\"tool\" *ngIf=\"enableAnalysis\"><mat-icon>data_usage</mat-icon></button>\r\n <button mat-icon-button (click)=\"$event.stopPropagation()\" [matMenuTriggerFor]=\"menu\" fxHide.xs [matMenuTriggerData]=\"{item: item}\" [bizdocTooltip]=\"'Options' | translate\" [attr.aria-label]=\"'Options' | translate\" class=\"tool\"><mat-icon>more_vert</mat-icon></button>\r\n </mat-cell>\r\n </ng-container>\r\n <!-- Expanded Content Column -->\r\n <ng-container matColumnDef=\"expandedDetail\">\r\n <mat-cell *matCellDef=\"let item\" [attr.colspan]=\"displayedColumns.length\" [@updated]=\"item == updatedElement\"\r\n [class.read-row]=\"item.read\">\r\n <div [@detailExpand]=\"item == expandedElement ? 'expanded' : 'collapsed'\" style=\"width: 100%\">\r\n <bizdoc-expanded-item [model]=\"item\" *ngIf=\"item == expandedElement\"></bizdoc-expanded-item>\r\n </div>\r\n </mat-cell>\r\n </ng-container>\r\n <mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></mat-header-row>\r\n <mat-row @item [@updated]=\"item == updatedElement\"\r\n *matRowDef=\"let item; let dataIndex = dataIndex; columns: displayedColumns;\" class=\"element-row\"\r\n cdkDrag [cdkDragData]=\"item\"\r\n [cdkDragDisabled]=\"dragDisabled\"\r\n (cdkDragReleased)=\"dragDisabled = true\"\r\n [ngClass]=\"{'selecteded-row': selectedElement === item,\r\n 'expanded-row': expandedElement === item,\r\n 'odd-row': dataIndex % 2,\r\n 'read-row': item.read}\" matRipple\r\n (click)=\"open(item, $event)\">\r\n <div *cdkDragPreview>\r\n <button mat-icon-button aria-disabled=\"true\"><mat-icon>drag_indicator</mat-icon></button> <span>#{{item.number}}</span>\r\n </div>\r\n <div *cdkDragPlaceholder>\r\n <!-- none -->\r\n </div>\r\n </mat-row>\r\n <mat-row *matRowDef=\"let item; ; let dataIndex = dataIndex; columns: ['expandedDetail']\"\r\n class=\"detail-row\" matRipple\r\n [ngClass]=\"{ 'selecteded-row': selectedElement === item,\r\n 'odd-row': dataIndex % 2\r\n }\"></mat-row>\r\n</mat-table>\r\n<mat-paginator #paginator [hidePageSize]=\"true\" [pageSize]=\"PAGE_SIZE\" [style.display]=\"!isMobile && dataSource?.data.length>PAGE_SIZE ? '':'none'\"></mat-paginator>\r\n<mat-menu #menu=\"matMenu\">\r\n <ng-template matMenuContent let-item=\"item\">\r\n <button mat-menu-item (click)=\"open(item, $event)\">{{'Open'|translate}}</button>\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"toggleRead(item)\">{{(item.read ?'MarkAsUnread':'MarkAsRead')|translate}}</button>\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"copy(item)\">{{'Copy'| translate}}</button>\r\n </ng-template>\r\n</mat-menu>\r\n", styles: ["#browse-table{width:100%}#browse-table .detail-row{min-height:0}#browse-table .element-row{cursor:pointer}#browse-table .element-row .drag{cursor:move}#browse-table .read-row{font-weight:100}@media screen and (min-width: 600px){.mat-row .tool{opacity:.05}.mat-row:hover .tool{opacity:1}}::ng-deep .mat-column-options{justify-content:end;padding-inline-end:8px}::ng-deep .mat-column-value{justify-content:right}::ng-deep .mat-column-select{white-space:nowrap}::ng-deep .mat-column-number{white-space:nowrap}\n"], components: [{ type: NoneComponent, selector: "bizdoc-none", inputs: ["title", "subtitle", "icon"] }, { type: i10$1.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { type: i5$1.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { type: i7.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i7$1.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"] }, { type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i6$2.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { type: IdentityName, selector: "bizdoc-identity-name", inputs: ["identity", "by", "chating"] }, { type: ExpandedItemComponent, selector: "bizdoc-expanded-item", inputs: ["model"], outputs: ["sent"] }, { type: i5$1.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { type: i5$1.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { type: i18.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { type: i8$2.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i8$2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i9.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }], directives: [{ type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i22.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { type: i6$2.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { type: i5$1.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { type: i5$1.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { type: i5$1.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { type: i5$1.MatCellDef, selector: "[matCellDef]" }, { type: i5$1.MatCell, selector: "mat-cell, td[mat-cell]" }, { type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: StateDirective, selector: "bizdoc-status", inputs: ["stateId"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i10.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i10.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i10.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i25.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide], [fxHide.print], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]", inputs: ["fxShow", "fxShow.print", "fxShow.xs", "fxShow.sm", "fxShow.md", "fxShow.lg", "fxShow.xl", "fxShow.lt-sm", "fxShow.lt-md", "fxShow.lt-lg", "fxShow.lt-xl", "fxShow.gt-xs", "fxShow.gt-sm", "fxShow.gt-md", "fxShow.gt-lg", "fxHide", "fxHide.print", "fxHide.xs", "fxHide.sm", "fxHide.md", "fxHide.lg", "fxHide.xl", "fxHide.lt-sm", "fxHide.lt-md", "fxHide.lt-lg", "fxHide.lt-xl", "fxHide.gt-xs", "fxHide.gt-sm", "fxHide.gt-md", "fxHide.gt-lg"] }, { type: i8$2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i5$1.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { type: i5$1.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { type: i22.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { type: i6.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { type: i10.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i25.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i22.CdkDragPreview, selector: "ng-template[cdkDragPreview]", inputs: ["data", "matchSize"] }, { type: i22.CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { type: i8$2.MatMenuContent, selector: "ng-template[matMenuContent]" }], pipes: { "translate": TranslatePipe, "amCalendar": CalendarPipe, "amTimeAgo": TimeAgoPipe, "number": i10.DecimalPipe, "currency": i10.CurrencyPipe }, animations: [
7617
7663
  listAnimation,
7618
7664
  itemAnimation,
7619
7665
  expandListItemAnimation,
@@ -7626,7 +7672,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
7626
7672
  itemAnimation,
7627
7673
  expandListItemAnimation,
7628
7674
  listItemUpdatedAnimation
7629
- ], template: "<bizdoc-none *ngIf=\"dataSource?.data.length === 0\" title=\"NoMessages\" [subtitle]=\"!isMobile && folderId === DRAFT ? 'AltN' : null\" icon=\"mail_outline\"></bizdoc-none>\r\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<mat-table cdkDropList class=\"data-table\"\r\n [cdkDropListDisabled]=\"isMobile\"\r\n [cdkDropListData]=\"dataSource?.data\"\r\n cdkDropListConnectedTo=\"folders\"\r\n cdkDropListSortingDisabled\r\n [dataSource]=\"dataSource\" matSort multiTemplateDataRows (matSortChange)=\"sortData()\"\r\n id=\"browse-table\" [@list]=\"dataSource\" [style.display]=\"dataSource?.data.length ?'':'none'\">\r\n <ng-container matColumnDef=\"select\">\r\n <mat-header-cell *matHeaderCellDef>\r\n <div class=\"\"></div>\r\n <mat-checkbox (change)=\"$event ? masterToggle() : null\" [aria-label]=\"'Check'|translate\"\r\n [checked]=\"selection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\">\r\n </mat-checkbox>\r\n </mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\">\r\n <mat-checkbox (click)=\"$event.stopPropagation()\" [aria-label]=\"'Check'|translate\"\r\n (change)=\"$event ? selection.toggle(item) : null\"\r\n [checked]=\"selection.isSelected(item)\">\r\n </mat-checkbox>\r\n <!-- drag -->\r\n <!--<button mat-icon-button cdkDragHandle\r\n (mousedown)=\"dragDisabled = false\"\r\n (mouseup)=\"dragDisabled = true\"\r\n (touchstart)=\"dragDisabled = false\"\r\n (touchend)=\"dragDisabled = true\"\r\n class=\"drag\" aria-disabled=\"true\" fxHide.xs>\r\n <mat-icon>drag_indicator</mat-icon>\r\n </button>-->\r\n <button mat-icon-button (click)=\"toggleExpanded(item, $event)\" [bizdocTooltip]=\"'Details' | translate\" [attr.aria-label]=\"'Details' | translate\" class=\"tool\"><mat-icon>{{item == expandedElement ? 'unfold_less' : 'unfold_more'}}</mat-icon></button>\r\n </mat-cell>\r\n </ng-container>\r\n <!-- Number column -->\r\n <ng-container matColumnDef=\"number\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Number' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\"> {{item.number}} </mat-cell>\r\n </ng-container>\r\n\r\n <!-- Subject column -->\r\n <ng-container matColumnDef=\"subject\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Subject' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\"> {{item.subject}} </mat-cell>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"owner\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Owner' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\">\r\n <bizdoc-identity-name *ngIf=\"item.ownerId\" [identity]=\"item.ownerId\" [by]=\"item.ownerById\"></bizdoc-identity-name>\r\n </mat-cell>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sender\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Sender' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\">\r\n <bizdoc-identity-name *ngIf=\"item.senderId\" [identity]=\"item.senderId\" [by]=\"item.byId\"></bizdoc-identity-name>\r\n </mat-cell>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"received\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Received' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\"> {{item.received | amCalendar}} </mat-cell>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"receivedAgo\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header=\"received\">{{'Received' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\" [bizdocTooltip]=\"item.received | amCalendar\">{{item.received | amTimeAgo}}</mat-cell>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"replied\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Replied' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\"> {{item.replied | amCalendar}} </mat-cell>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"issued\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Issued' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\"> {{item.issued | amCalendar}} </mat-cell>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"issuedAgo\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header=\"issued\">{{'Issued' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\" [bizdocTooltip]=\"item.issued | amCalendar\"> {{item.issued | amTimeAgo}} </mat-cell>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"state\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header=\"stateId\">{{'Status' | translate }}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\">\r\n <bizdoc-status [stateId]=\"item.stateId\"></bizdoc-status>\r\n </mat-cell>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"customColumns\">\r\n <ng-container *ngFor=\"let c of customColumns\" [matColumnDef]=\"c.name\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header> {{c.title}} </mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\">\r\n <ng-container [ngSwitch]=\"c.type\">\r\n <span *ngSwitchCase=\"'Date'\">\r\n {{item.model[c.name] | amCalendar }}\r\n </span>\r\n <span *ngSwitchCase=\"'Decimal'\">\r\n {{item.model[c.name] | number }}\r\n </span>\r\n <span *ngSwitchCase=\"'Boolean'\">\r\n <mat-checkbox [checked]=\"item.model[c.name]\" [disabled]=\"true\"></mat-checkbox>\r\n </span>\r\n <span *ngSwitchDefault>\r\n {{item.model[c.name]}}z\r\n </span>\r\n </ng-container>\r\n </mat-cell>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <!-- Value column -->\r\n <ng-container matColumnDef=\"value\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Amount' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\"> {{item.value | currency : item.currencyCode : 'symbol' : currencyFormat}} </mat-cell>\r\n </ng-container>\r\n\r\n <!-- options column -->\r\n <ng-container matColumnDef=\"options\">\r\n <mat-header-cell *matHeaderCellDef></mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\">\r\n <button mat-icon-button (click)=\"flag(item, $event)\" [bizdocTooltip]=\"'Flagged'| translate\" [attr.aria-label]=\"'ToggleFlagged' | translate\" class=\"tool\"><mat-icon [class.document-flag]=\"item.flag\">{{item.flag ? 'star' : 'star_border'}}</mat-icon></button>\r\n <button mat-icon-button (click)=\"view(item, $event)\" [bizdocTooltip]=\"'View' | translate\" [attr.aria-label]=\"'View' | translate\" class=\"tool\" *ngIf=\"enableAnalysis\"><mat-icon>data_usage</mat-icon></button>\r\n <button mat-icon-button (click)=\"$event.stopPropagation()\" [matMenuTriggerFor]=\"menu\" fxHide.xs [matMenuTriggerData]=\"{item: item}\" [bizdocTooltip]=\"'Options' | translate\" [attr.aria-label]=\"'Options' | translate\" class=\"tool\"><mat-icon>more_vert</mat-icon></button>\r\n </mat-cell>\r\n </ng-container>\r\n <!-- Expanded Content Column -->\r\n <ng-container matColumnDef=\"expandedDetail\">\r\n <mat-cell *matCellDef=\"let item\" [attr.colspan]=\"displayedColumns.length\" [@updated]=\"item == updatedElement\"\r\n [class.read-row]=\"item.read\">\r\n <div [@detailExpand]=\"item == expandedElement ? 'expanded' : 'collapsed'\" style=\"width: 100%\">\r\n <bizdoc-expanded-item [item]=\"item\" *ngIf=\"item == expandedElement\"></bizdoc-expanded-item>\r\n </div>\r\n </mat-cell>\r\n </ng-container>\r\n <mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></mat-header-row>\r\n <mat-row @item [@updated]=\"item == updatedElement\"\r\n *matRowDef=\"let item; let dataIndex = dataIndex; columns: displayedColumns;\" class=\"element-row\"\r\n cdkDrag [cdkDragData]=\"item\"\r\n [cdkDragDisabled]=\"dragDisabled\"\r\n (cdkDragReleased)=\"dragDisabled = true\"\r\n [ngClass]=\"{'selecteded-row': selectedElement === item,\r\n 'expanded-row': expandedElement === item,\r\n 'odd-row': dataIndex % 2,\r\n 'read-row': item.read}\" matRipple\r\n (click)=\"open(item, $event)\">\r\n <div *cdkDragPreview>\r\n <button mat-icon-button aria-disabled=\"true\"><mat-icon>drag_indicator</mat-icon></button> <span>#{{item.number}}</span>\r\n </div>\r\n <div *cdkDragPlaceholder>\r\n <!-- none -->\r\n </div>\r\n </mat-row>\r\n <mat-row *matRowDef=\"let item; ; let dataIndex = dataIndex; columns: ['expandedDetail']\"\r\n class=\"detail-row\" matRipple\r\n [ngClass]=\"{ 'selecteded-row': selectedElement === item,\r\n 'odd-row': dataIndex % 2\r\n }\"></mat-row>\r\n</mat-table>\r\n<mat-paginator #paginator [hidePageSize]=\"true\" [pageSize]=\"PAGE_SIZE\" [style.display]=\"!isMobile && dataSource?.data.length>PAGE_SIZE ? '':'none'\"></mat-paginator>\r\n<mat-menu #menu=\"matMenu\">\r\n <ng-template matMenuContent let-item=\"item\">\r\n <button mat-menu-item (click)=\"open(item, $event)\">{{'Open'|translate}}</button>\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"toggleRead(item)\">{{(item.read ?'MarkAsUnread':'MarkAsRead')|translate}}</button>\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"copy(item)\">{{'Copy'| translate}}</button>\r\n </ng-template>\r\n</mat-menu>\r\n", styles: ["#browse-table{width:100%}#browse-table .detail-row{min-height:0}#browse-table .element-row{cursor:pointer}#browse-table .element-row .drag{cursor:move}#browse-table .read-row{font-weight:100}@media screen and (min-width: 600px){.mat-row .tool{opacity:.05}.mat-row:hover .tool{opacity:1}}::ng-deep .mat-column-options{justify-content:end;padding-inline-end:8px}::ng-deep .mat-column-value{justify-content:right}::ng-deep .mat-column-select{white-space:nowrap}::ng-deep .mat-column-number{white-space:nowrap}\n"] }]
7675
+ ], template: "<bizdoc-none *ngIf=\"dataSource?.data.length === 0\" title=\"NoMessages\" [subtitle]=\"!isMobile && folderId === DRAFT ? 'AltN' : null\" icon=\"mail_outline\"></bizdoc-none>\r\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<mat-table cdkDropList class=\"data-table\"\r\n [cdkDropListDisabled]=\"isMobile\"\r\n [cdkDropListData]=\"dataSource?.data\"\r\n cdkDropListConnectedTo=\"folders\"\r\n cdkDropListSortingDisabled\r\n [dataSource]=\"dataSource\" matSort multiTemplateDataRows (matSortChange)=\"sortData()\"\r\n id=\"browse-table\" [@list]=\"dataSource\" [style.display]=\"dataSource?.data.length ?'':'none'\">\r\n <ng-container matColumnDef=\"select\">\r\n <mat-header-cell *matHeaderCellDef>\r\n <div class=\"\"></div>\r\n <mat-checkbox (change)=\"$event ? masterToggle() : null\" [aria-label]=\"'Check'|translate\"\r\n [checked]=\"selection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\">\r\n </mat-checkbox>\r\n </mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\">\r\n <mat-checkbox (click)=\"$event.stopPropagation()\" [aria-label]=\"'Check'|translate\"\r\n (change)=\"$event ? selection.toggle(item) : null\"\r\n [checked]=\"selection.isSelected(item)\">\r\n </mat-checkbox>\r\n <!-- drag -->\r\n <!--<button mat-icon-button cdkDragHandle\r\n (mousedown)=\"dragDisabled = false\"\r\n (mouseup)=\"dragDisabled = true\"\r\n (touchstart)=\"dragDisabled = false\"\r\n (touchend)=\"dragDisabled = true\"\r\n class=\"drag\" aria-disabled=\"true\" fxHide.xs>\r\n <mat-icon>drag_indicator</mat-icon>\r\n </button>-->\r\n <button mat-icon-button (click)=\"toggleExpanded(item, $event)\" [bizdocTooltip]=\"'Details' | translate\" [attr.aria-label]=\"'Details' | translate\" class=\"tool\"><mat-icon>{{item == expandedElement ? 'unfold_less' : 'unfold_more'}}</mat-icon></button>\r\n </mat-cell>\r\n </ng-container>\r\n <!-- Number column -->\r\n <ng-container matColumnDef=\"number\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Number' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\"> {{item.number}} </mat-cell>\r\n </ng-container>\r\n\r\n <!-- Subject column -->\r\n <ng-container matColumnDef=\"subject\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Subject' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\"> {{item.subject}} </mat-cell>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"owner\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Owner' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\">\r\n <bizdoc-identity-name *ngIf=\"item.ownerId\" [identity]=\"item.ownerId\" [by]=\"item.ownerById\"></bizdoc-identity-name>\r\n </mat-cell>\r\n </ng-container>\r\n <ng-container matColumnDef=\"sender\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Sender' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\">\r\n <bizdoc-identity-name *ngIf=\"item.senderId\" [identity]=\"item.senderId\" [by]=\"item.byId\"></bizdoc-identity-name>\r\n </mat-cell>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"received\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Received' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\"> {{item.received | amCalendar}} </mat-cell>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"receivedAgo\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header=\"received\">{{'Received' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\" [bizdocTooltip]=\"item.received | amCalendar\">{{item.received | amTimeAgo}}</mat-cell>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"replied\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Replied' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\"> {{item.replied | amCalendar}} </mat-cell>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"issued\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Issued' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\"> {{item.issued | amCalendar}} </mat-cell>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"issuedAgo\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header=\"issued\">{{'Issued' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\" [bizdocTooltip]=\"item.issued | amCalendar\"> {{item.issued | amTimeAgo}} </mat-cell>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"state\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header=\"stateId\">{{'Status' | translate }}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\">\r\n <bizdoc-status [stateId]=\"item.stateId\"></bizdoc-status>\r\n </mat-cell>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"customColumns\">\r\n <ng-container *ngFor=\"let c of customColumns\" [matColumnDef]=\"c.name\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header> {{c.title}} </mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\">\r\n <ng-container [ngSwitch]=\"c.type\">\r\n <span *ngSwitchCase=\"'Date'\">\r\n {{item.model[c.name] | amCalendar }}\r\n </span>\r\n <span *ngSwitchCase=\"'Decimal'\">\r\n {{item.model[c.name] | number }}\r\n </span>\r\n <span *ngSwitchCase=\"'Boolean'\">\r\n <mat-checkbox [checked]=\"item.model[c.name]\" [disabled]=\"true\"></mat-checkbox>\r\n </span>\r\n <span *ngSwitchDefault>\r\n {{item.model[c.name]}}z\r\n </span>\r\n </ng-container>\r\n </mat-cell>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <!-- Value column -->\r\n <ng-container matColumnDef=\"value\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Amount' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\"> {{item.value | currency : item.currencyCode : 'symbol' : currencyFormat}} </mat-cell>\r\n </ng-container>\r\n\r\n <!-- options column -->\r\n <ng-container matColumnDef=\"options\">\r\n <mat-header-cell *matHeaderCellDef></mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\">\r\n <button mat-icon-button (click)=\"flag(item, $event)\" [bizdocTooltip]=\"'Flagged'| translate\" [attr.aria-label]=\"'ToggleFlagged' | translate\" class=\"tool\"><mat-icon [class.document-flag]=\"item.flag\">{{item.flag ? 'star' : 'star_border'}}</mat-icon></button>\r\n <button mat-icon-button (click)=\"view(item, $event)\" [bizdocTooltip]=\"'View' | translate\" [attr.aria-label]=\"'View' | translate\" class=\"tool\" *ngIf=\"enableAnalysis\"><mat-icon>data_usage</mat-icon></button>\r\n <button mat-icon-button (click)=\"$event.stopPropagation()\" [matMenuTriggerFor]=\"menu\" fxHide.xs [matMenuTriggerData]=\"{item: item}\" [bizdocTooltip]=\"'Options' | translate\" [attr.aria-label]=\"'Options' | translate\" class=\"tool\"><mat-icon>more_vert</mat-icon></button>\r\n </mat-cell>\r\n </ng-container>\r\n <!-- Expanded Content Column -->\r\n <ng-container matColumnDef=\"expandedDetail\">\r\n <mat-cell *matCellDef=\"let item\" [attr.colspan]=\"displayedColumns.length\" [@updated]=\"item == updatedElement\"\r\n [class.read-row]=\"item.read\">\r\n <div [@detailExpand]=\"item == expandedElement ? 'expanded' : 'collapsed'\" style=\"width: 100%\">\r\n <bizdoc-expanded-item [model]=\"item\" *ngIf=\"item == expandedElement\"></bizdoc-expanded-item>\r\n </div>\r\n </mat-cell>\r\n </ng-container>\r\n <mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></mat-header-row>\r\n <mat-row @item [@updated]=\"item == updatedElement\"\r\n *matRowDef=\"let item; let dataIndex = dataIndex; columns: displayedColumns;\" class=\"element-row\"\r\n cdkDrag [cdkDragData]=\"item\"\r\n [cdkDragDisabled]=\"dragDisabled\"\r\n (cdkDragReleased)=\"dragDisabled = true\"\r\n [ngClass]=\"{'selecteded-row': selectedElement === item,\r\n 'expanded-row': expandedElement === item,\r\n 'odd-row': dataIndex % 2,\r\n 'read-row': item.read}\" matRipple\r\n (click)=\"open(item, $event)\">\r\n <div *cdkDragPreview>\r\n <button mat-icon-button aria-disabled=\"true\"><mat-icon>drag_indicator</mat-icon></button> <span>#{{item.number}}</span>\r\n </div>\r\n <div *cdkDragPlaceholder>\r\n <!-- none -->\r\n </div>\r\n </mat-row>\r\n <mat-row *matRowDef=\"let item; ; let dataIndex = dataIndex; columns: ['expandedDetail']\"\r\n class=\"detail-row\" matRipple\r\n [ngClass]=\"{ 'selecteded-row': selectedElement === item,\r\n 'odd-row': dataIndex % 2\r\n }\"></mat-row>\r\n</mat-table>\r\n<mat-paginator #paginator [hidePageSize]=\"true\" [pageSize]=\"PAGE_SIZE\" [style.display]=\"!isMobile && dataSource?.data.length>PAGE_SIZE ? '':'none'\"></mat-paginator>\r\n<mat-menu #menu=\"matMenu\">\r\n <ng-template matMenuContent let-item=\"item\">\r\n <button mat-menu-item (click)=\"open(item, $event)\">{{'Open'|translate}}</button>\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"toggleRead(item)\">{{(item.read ?'MarkAsUnread':'MarkAsRead')|translate}}</button>\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"copy(item)\">{{'Copy'| translate}}</button>\r\n </ng-template>\r\n</mat-menu>\r\n", styles: ["#browse-table{width:100%}#browse-table .detail-row{min-height:0}#browse-table .element-row{cursor:pointer}#browse-table .element-row .drag{cursor:move}#browse-table .read-row{font-weight:100}@media screen and (min-width: 600px){.mat-row .tool{opacity:.05}.mat-row:hover .tool{opacity:1}}::ng-deep .mat-column-options{justify-content:end;padding-inline-end:8px}::ng-deep .mat-column-value{justify-content:right}::ng-deep .mat-column-select{white-space:nowrap}::ng-deep .mat-column-number{white-space:nowrap}\n"] }]
7630
7676
  }], ctorParameters: function () {
7631
7677
  return [{ type: MailboxService }, { type: AccountService }, { type: CubeService }, { type: SessionService }, { type: PromptService }, { type: TranslateService }, { type: i0.ChangeDetectorRef }, { type: RouterImpl }, { type: HubService }, { type: undefined, decorators: [{
7632
7678
  type: Inject,
@@ -13230,8 +13276,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
13230
13276
  args: [{ name: 'amDurationFormat' }]
13231
13277
  }], ctorParameters: function () { return [{ type: TranslateService }]; } });
13232
13278
 
13233
- Diagram.Inject(ComplexHierarchicalTree, BpmnDiagrams, DataBinding /*, LayoutAnimation, LineRouting, ConnectorBridging*/);
13234
- const PENDING_PATH = 'M18,22l-0.01-6L14,12l3.99-4.01L18,2H6v6l4,4l-4,3.99V22H18z M8,7.5V4h8v3.5l-4,4L8,7.5z', FYI_PATH = 'M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z', ESCALATED_PATH = 'M22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM12.5 8H11v6l4.75 2.85.75-1.23-4-2.37V8zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9c4.97 0 9-4.03 9-9s-4.03-9-9-9zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z', WARNNING_PATH$1 = 'M 13.763735,1.8433735 H 6.3037349 l -5.27,5.27 v 7.4599995 l 5.27,5.27 h 7.4600001 l 5.27,-5.27 V 7.1133735 Z m -3.73,14.2999995 c -0.7200001,0 -1.3000001,-0.58 -1.3000001,-1.3 0,-0.72 0.58,-1.3 1.3000001,-1.3 0.72,0 1.3,0.58 1.3,1.3 0,0.72 -0.58,1.3 -1.3,1.3 z m 1,-4.3 H 9.0337349 V 5.8433735 h 2.0000001 z';
13279
+ Diagram.Inject(ComplexHierarchicalTree, BpmnDiagrams, DataBinding, LineDistribution /*, LineRouting, ConnectorBridging, LayoutAnimation, LineRouting, ConnectorBridging*/);
13280
+ const
13281
+ //ELLIPSIS = 'M 650, 150 a 75,150 0 1,0 1,0 z',
13282
+ FYI_PATH = 'M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z', ESCALATED_PATH = 'M22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM12.5 8H11v6l4.75 2.85.75-1.23-4-2.37V8zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9c4.97 0 9-4.03 9-9s-4.03-9-9-9zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z', WARNNING_PATH$1 = 'M 13.763735,1.8433735 H 6.3037349 l -5.27,5.27 v 7.4599995 l 5.27,5.27 h 7.4600001 l 5.27,-5.27 V 7.1133735 Z m -3.73,14.2999995 c -0.7200001,0 -1.3000001,-0.58 -1.3000001,-1.3 0,-0.72 0.58,-1.3 1.3000001,-1.3 0.72,0 1.3,0.58 1.3,1.3 0,0.72 -0.58,1.3 -1.3,1.3 z m 1,-4.3 H 9.0337349 V 5.8433735 h 2.0000001 z';
13235
13283
  /** flow-view component*/
13236
13284
  class FlowViewComponent extends TraceBase {
13237
13285
  /** workflow-view ctor */
@@ -13247,19 +13295,16 @@ class FlowViewComponent extends TraceBase {
13247
13295
  this.diagramConstraints = DiagramConstraints.Default |
13248
13296
  DiagramConstraints.Pan |
13249
13297
  DiagramConstraints.LineRouting |
13250
- DiagramConstraints.Bridging;
13298
+ DiagramConstraints.Zoom;
13251
13299
  this.layout = {
13252
13300
  type: 'ComplexHierarchicalTree',
13253
13301
  connectionPointOrigin: ConnectionPointOrigin.DifferentPoint,
13254
13302
  horizontalSpacing: 50,
13303
+ enableRouting: true,
13255
13304
  verticalSpacing: 50,
13256
- //connectorSegments: 'Layout',
13257
- //arrangement: ChildArrangement.Nonlinear,
13258
- //horizontalAlignment:'Center',
13259
- //verticalAlignment: 'Auto',
13305
+ horizontalAlignment: 'Center',
13260
13306
  connectionDirection: 'Orientation',
13261
13307
  orientation: this._session.inverse ? 'RightToLeft' : 'LeftToRight',
13262
- margin: { left: 10, right: 10, top: 10, bottom: 10 }
13263
13308
  };
13264
13309
  this.scrollSettings = {
13265
13310
  minZoom: .5,
@@ -13348,7 +13393,6 @@ class FlowViewComponent extends TraceBase {
13348
13393
  obj.style.strokeWidth = 0;
13349
13394
  }
13350
13395
  else {
13351
- // obj.shape = { type: 'Bpmn', shape: 'Event' } as BpmnShapeModel;
13352
13396
  obj.width = obj.height = 50;
13353
13397
  if (obj.annotations && obj.annotations.length)
13354
13398
  obj.annotations[0].style.color = this._session.theme.dark ? 'white' : 'black';
@@ -13359,7 +13403,8 @@ class FlowViewComponent extends TraceBase {
13359
13403
  }
13360
13404
  else {
13361
13405
  obj.style.strokeColor = this._accentColor;
13362
- obj.style.fill = recipient && recipient.pending ? this._session.getAccent(400) : 'transparent';
13406
+ obj.style.fill = recipient && recipient.pending ?
13407
+ this._session.getAccent(recipient.userId === this._session.userId ? 500 : 400) : 'transparent';
13363
13408
  }
13364
13409
  obj.style.strokeWidth = 2;
13365
13410
  }
@@ -13467,7 +13512,7 @@ class FlowViewComponent extends TraceBase {
13467
13512
  });
13468
13513
  if (c.sourceId === node.id) {
13469
13514
  //
13470
- if (c.virtualizing && !this.model.recipients.some(r => r.nodeId === c.targetId && r.originId === recipient.id))
13515
+ if (c.virtual && c.originId !== recipient.id)
13471
13516
  return;
13472
13517
  connectors.push({
13473
13518
  sourceID: nod.id,
@@ -13500,56 +13545,40 @@ class FlowViewComponent extends TraceBase {
13500
13545
  indicators.push(actionIndicator);
13501
13546
  }
13502
13547
  }
13503
- if (recipient.pending && !recipient.estimate)
13548
+ if (recipient.fyi)
13504
13549
  indicators.push({
13505
- id: nod.id + 'pending',
13550
+ id: nod.id + 'fyi',
13506
13551
  shape: {
13507
13552
  type: 'Path',
13508
- data: PENDING_PATH,
13509
- align: this._session.inverse ? 'XMaxYMax' : 'XMinYMax'
13553
+ data: FYI_PATH,
13554
+ align: this._session.inverse ? 'XMinYMax' : 'XMaxYMax'
13510
13555
  },
13511
13556
  style: {
13512
- fill: this._session.getAccent(900)
13557
+ fill: '#1976d2'
13513
13558
  },
13514
13559
  addInfo: {
13515
13560
  indicator: true,
13516
13561
  parentId: nod.id
13517
13562
  }
13518
13563
  });
13519
- if (recipient.fyi)
13520
- indicators.push({
13521
- id: nod.id + 'fyi',
13564
+ if (recipient.escalated) {
13565
+ const escalateIndicator = {
13566
+ id: nod.id + 'escalate',
13522
13567
  shape: {
13523
13568
  type: 'Path',
13524
- data: FYI_PATH,
13569
+ data: ESCALATED_PATH,
13525
13570
  align: this._session.inverse ? 'XMinYMax' : 'XMaxYMax'
13526
13571
  },
13527
13572
  style: {
13528
- fill: '#1976d2'
13573
+ fill: this._session.getAccent(900)
13529
13574
  },
13530
13575
  addInfo: {
13531
13576
  indicator: true,
13532
13577
  parentId: nod.id
13533
13578
  }
13534
- });
13535
- // if (this.model.log.filter(l => l.time > this._submitted && l.type === 'Escalation' && l.recipientId === recipient.id).length) {
13536
- // const escalateIndicator = {
13537
- // id: nod.id + 'escalate',
13538
- // shape: {
13539
- // type: 'Path',
13540
- // data: ESCALATED_PATH,
13541
- // align: this._session.inverse ? 'XMinYMax' : 'XMaxYMax'
13542
- // },
13543
- // style: {
13544
- // fill: this._session.getAccent(900)
13545
- // },
13546
- // addInfo: {
13547
- // indicator: true,
13548
- // parentId: nod.id
13549
- // } as NodeInfoModel
13550
- // } as NodeModel;
13551
- // indicators.push(escalateIndicator);
13552
- // }
13579
+ };
13580
+ indicators.push(escalateIndicator);
13581
+ }
13553
13582
  }
13554
13583
  }
13555
13584
  else {
@@ -13616,36 +13645,6 @@ class FlowViewComponent extends TraceBase {
13616
13645
  }
13617
13646
  }
13618
13647
  }
13619
- /**
13620
- *
13621
- * @param connector
13622
- * @param index
13623
- * @param vconnectors
13624
- */
13625
- function reroute(connector, index) {
13626
- while (index < dconnectors.length) {
13627
- let dconnector = dconnectors[index];
13628
- if (dconnector.sourceId === connector.targetId) {
13629
- if (nodes.some(n => n.id === dconnector.targetId))
13630
- connectors.push({
13631
- sourceID: connector.sourceId,
13632
- targetID: dconnector.targetId,
13633
- addInfo: {
13634
- estimate: dconnector.estimate,
13635
- time: dconnector.time
13636
- }
13637
- });
13638
- else
13639
- reroute({
13640
- time: dconnector.time,
13641
- targetId: dconnector.targetId,
13642
- estimate: dconnector.estimate,
13643
- sourceId: connector.sourceId
13644
- }, index + 1);
13645
- }
13646
- index++;
13647
- }
13648
- }
13649
13648
  return { connectors, nodes, indicators };
13650
13649
  });
13651
13650
  }
@@ -13843,11 +13842,28 @@ class FlowViewComponent extends TraceBase {
13843
13842
  tooltip.substituting = this._translate.personalize('SubstitutingFor', substituting.gender, substituting.name);
13844
13843
  }
13845
13844
  }
13846
- const escalations = this.model.log.filter(l => l.time > this._issued && l.type === 'Escalation' && l.recipientId === recipient.id);
13847
- if (escalations.length) {
13845
+ if (recipient.originId && !recipient.replied) {
13846
+ const origin = this.model.recipients.find(r => r.id === recipient.originId);
13847
+ if (origin.toId) {
13848
+ const action = this._session.profile.actions.find(a => a.name === origin.action), adjective = action.adjective || action.past || action.title;
13849
+ if ((origin.byId || origin.userId) === this._session.userId)
13850
+ tooltip.substituting = this._translate.get('ActionByYou', adjective);
13851
+ else if (origin.byId) {
13852
+ const who = yield this._accounts.get(origin.userId).toPromise();
13853
+ const by = yield this._accounts.get(origin.byId).toPromise();
13854
+ tooltip.substituting = this._translate.get('ActionByBy', adjective, by.name, who.name);
13855
+ }
13856
+ else {
13857
+ const who = yield this._accounts.get(origin.userId).toPromise();
13858
+ tooltip.substituting = this._translate.get('ActionBy', adjective, who.name);
13859
+ }
13860
+ }
13861
+ }
13862
+ if (recipient.escalated) {
13863
+ const escalations = this.model.log.filter(l => l.type === 'Escalation' && l.recipientId === recipient.id);
13848
13864
  const userIds = escalations.map(e => e.userId);
13849
13865
  const users = yield this._accounts.getAll(userIds).toPromise();
13850
- const duration = this._duration.transform(dayjs(escalations[escalations.length - 1].time).diff(recipient.received, 's'));
13866
+ const duration = this._duration.transform(dayjs.duration(escalations[escalations.length - 1].duration, 's'));
13851
13867
  tooltip.escalation = this._translate.get('EscalatedTo', this._translate.join(users.map(u => u.name)), duration);
13852
13868
  }
13853
13869
  if (recipient.replied) {
@@ -14068,22 +14084,16 @@ class TraceViewComponent extends TraceBase {
14068
14084
  }
14069
14085
  }
14070
14086
  else if (recipient.byId) {
14071
- let who = yield profileOf(recipient.userId);
14072
- if (recipient.byId === this._session.userId) {
14087
+ let who = yield profileOf(recipient.userId), by = yield profileOf(recipient.byId);
14088
+ if (recipient.byId === this._session.userId)
14073
14089
  step.name = this._translate.get('ByYou', nameOf(who));
14074
- if (action)
14075
- step.action = yield actionBy(action, You, recipient.toId);
14076
- }
14077
14090
  else {
14078
- let by = yield profileOf(recipient.byId);
14079
14091
  step.name = this._translate.get('By', nameOf(who), nameOf(by));
14080
14092
  if (by.role)
14081
14093
  step.role = by.role;
14082
- if (action)
14083
- step.action = yield actionBy(action, by.gender, recipient.toId);
14084
14094
  }
14085
14095
  if (action)
14086
- step.action = yield actionBy(action, who.gender, recipient.toId);
14096
+ step.action = yield actionBy(action, by.gender, recipient.toId);
14087
14097
  }
14088
14098
  else {
14089
14099
  if (recipient.userId === this._session.userId)
@@ -14183,30 +14193,28 @@ class TraceViewComponent extends TraceBase {
14183
14193
  step.role = by.role;
14184
14194
  }
14185
14195
  }
14186
- else {
14196
+ else if (recipient.escalated) {
14187
14197
  let escalations = this.model.log.filter(l => l.time > issued &&
14188
14198
  l.type === 'Escalation' && l.recipientId === recipient.id);
14189
- if (escalations.length) {
14190
- let escalate = [];
14191
- for (let escalation of escalations) {
14192
- let who = yield profileOf(escalation.userId);
14193
- escalate.push(who);
14194
- }
14195
- let who = yield profileOf(recipient.userId);
14196
- if (escalations.length === 1 && escalate[0] === this._session.userId)
14197
- step.name = this._translate.get('EscalatedByYou', nameOf(who));
14198
- else
14199
- step.name = this._translate.get('EscalatedBy', nameOf(who), this._translate.join(escalate.map(e => nameOf(e))));
14199
+ let escalate = [];
14200
+ for (let escalation of escalations) {
14201
+ let who = yield profileOf(escalation.userId);
14202
+ escalate.push(who);
14200
14203
  }
14204
+ let who = yield profileOf(recipient.userId);
14205
+ if (escalations.length === 1 && escalate[0] === this._session.userId)
14206
+ step.name = this._translate.get('EscalatedByYou', nameOf(who));
14207
+ else
14208
+ step.name = this._translate.get('EscalatedBy', nameOf(who), this._translate.join(escalate.map(e => nameOf(e))));
14209
+ }
14210
+ else {
14211
+ if (recipient.userId === this._session.userId)
14212
+ step.name = this._translate.get('You');
14201
14213
  else {
14202
- if (recipient.userId === this._session.userId)
14203
- step.name = this._translate.get('You');
14204
- else {
14205
- let who = yield profileOf(recipient.userId);
14206
- step.name = nameOf(who);
14207
- if (who.role)
14208
- step.role = who.role;
14209
- }
14214
+ let who = yield profileOf(recipient.userId);
14215
+ step.name = nameOf(who);
14216
+ if (who.role)
14217
+ step.role = who.role;
14210
14218
  }
14211
14219
  }
14212
14220
  trace.push(step);
@@ -14245,10 +14253,10 @@ class TraceViewComponent extends TraceBase {
14245
14253
  }
14246
14254
  }
14247
14255
  TraceViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: TraceViewComponent, deps: [{ token: SessionService }, { token: TranslateService }, { token: AccountService }, { token: ChatInfo }, { token: HubService }], target: i0.ɵɵFactoryTarget.Component });
14248
- TraceViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: TraceViewComponent, selector: "bizdoc-trace", inputs: { model: "model" }, outputs: { versionSelected: "versionSelected" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"nav-toolbar row\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" [bizdocTooltip]=\"'ShowAll'|translate\"><mat-icon>filter_list</mat-icon></button>\r\n <mat-menu #menu> \r\n <button mat-menu-item (click)=\"showAll=false\">\r\n <mat-icon>{{ !showAll?'check':'' }}</mat-icon>\r\n <span>{{'Route' | translate }}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"showAll=true\">\r\n <mat-icon>{{showAll?'check':''}}</mat-icon>\r\n <span>{{'Log' | translate }}</span>\r\n </button>\r\n </mat-menu>\r\n</div>\r\n<table class=\"mat-table\" @list>\r\n <tbody role=\"rowgroup\">\r\n <tr class=\"mat-row\" *ngFor=\"let l of data\" @item>\r\n <td class=\"mat-cell\">\r\n <span [innerHTML]=\"l.name | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n <span *ngIf=l.role>{{'JoinComma'|translate}}{{l.role}}</span>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <ng-container [ngSwitch]=\"l.type\">\r\n <ng-container *ngSwitchCase=\"'ActionTaken'\">\r\n <span [innerHTML]=\"l.action | sanitizeHtml\" (click)=\"chat($event)\" class=\"to\"></span>\r\n </ng-container>\r\n <span *ngSwitchCase=\"'Submit'\">{{'Issued' | translate}}</span>\r\n <span *ngSwitchCase=\"'Pending'\">{{'IsPending' | translate}}</span>\r\n <span *ngSwitchCase=\"'CheckOut'\">{{'CheckedIn' | translate : l.fileName}}</span>\r\n <span *ngSwitchCase=\"'CheckIn'\">{{'CheckedOut' | translate : l.fileName}}</span>\r\n <span *ngSwitchCase=\"'Estimate'\">{{'Estimate' | translate}}</span>\r\n <span *ngSwitchCase=\"'ModelChange'\">{{'Changed' | translate}}</span>\r\n </ng-container>\r\n <span *ngIf=\"l.fyi\">&nbsp;{{'FYI'|translate}}</span>\r\n </td>\r\n <td class=\"mat-cell\" [ngSwitch]=\"l.estimate\">\r\n <ng-container *ngSwitchCase=\"true\">\r\n <span *ngIf=\"l.durationMax && l.durationMax === l.durationMin\" [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTime'| translate : (l.durationMax | amDuration:'s')}}</span>\r\n <span *ngIf=\"l.durationMax && l.durationMax !== l.durationMin\"\r\n [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTimeRange'| translate : (l.durationMin | amDuration:'s') : (l.durationMax | amDuration:'s')}}</span>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <span>{{l.time | amCalendar : null : CALENDAR_SPEC }}</span>\r\n <span *ngIf=\"l.duration\" [bizdocTooltip]=\"l.duration|amDurationFormat\" class=\"duration\">&nbsp;({{l.duration | amDuration:'s'}})</span>\r\n </ng-container>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <span *ngIf=\"l.note\">{{l.note}}</span>\r\n <button mat-icon-button *ngIf=\"l.type==='ModelChange'\" (click)=\"compare(l)\" [bizdocTooltip]=\"'Compare'|translate\" bizdocTooltipPosition=\"start\"><mat-icon>more_horiz</mat-icon></button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n", styles: [":host{width:100%}table{width:100%;background:transparent}table td{padding:0 4px}.duration{white-space:nowrap}\n"], components: [{ type: i7$1.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"] }, { type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i8$2.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i8$2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }], directives: [{ type: i8$2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i10.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i10.NgSwitchDefault, selector: "[ngSwitchDefault]" }], pipes: { "translate": TranslatePipe, "sanitizeHtml": SanitizeHtmlPipe, "amDurationFormat": DurationFormatPipe, "amDuration": DurationPipe, "amCalendar": CalendarPipe }, animations: [listAnimation, itemAnimation] });
14256
+ TraceViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: TraceViewComponent, selector: "bizdoc-trace", inputs: { model: "model" }, outputs: { versionSelected: "versionSelected" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"nav-toolbar row\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" [bizdocTooltip]=\"'ShowAll'|translate\"><mat-icon>filter_list</mat-icon></button>\r\n <mat-menu #menu> \r\n <button mat-menu-item (click)=\"showAll=false\">\r\n <mat-icon>{{ !showAll?'check':'' }}</mat-icon>\r\n <span>{{'Route' | translate }}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"showAll=true\">\r\n <mat-icon>{{showAll?'check':''}}</mat-icon>\r\n <span>{{'Everything' | translate }}</span>\r\n </button>\r\n </mat-menu>\r\n</div>\r\n<table class=\"mat-table\" @list>\r\n <tbody role=\"rowgroup\">\r\n <tr class=\"mat-row\" *ngFor=\"let l of data\" @item>\r\n <td class=\"mat-cell\">\r\n <span [innerHTML]=\"l.name | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n <span *ngIf=l.role>{{'JoinComma'|translate}}{{l.role}}</span>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <ng-container [ngSwitch]=\"l.type\">\r\n <ng-container *ngSwitchCase=\"'ActionTaken'\">\r\n <span [innerHTML]=\"l.action | sanitizeHtml\" (click)=\"chat($event)\" class=\"to\"></span>\r\n </ng-container>\r\n <span *ngSwitchCase=\"'Submit'\">{{'Issued' | translate}}</span>\r\n <span *ngSwitchCase=\"'Pending'\">{{'IsPending' | translate}}</span>\r\n <span *ngSwitchCase=\"'CheckOut'\">{{'CheckedIn' | translate : l.fileName}}</span>\r\n <span *ngSwitchCase=\"'CheckIn'\">{{'CheckedOut' | translate : l.fileName}}</span>\r\n <span *ngSwitchCase=\"'Estimate'\">{{'Estimate' | translate}}</span>\r\n <span *ngSwitchCase=\"'ModelChange'\">{{'Changed' | translate}}</span>\r\n </ng-container>\r\n <span *ngIf=\"l.fyi\">&nbsp;{{'FYI'|translate}}</span>\r\n </td>\r\n <td class=\"mat-cell\" [ngSwitch]=\"l.estimate\">\r\n <ng-container *ngSwitchCase=\"true\">\r\n <span *ngIf=\"l.durationMax && l.durationMax === l.durationMin\" [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTime'| translate : (l.durationMax | amDuration:'s')}}</span>\r\n <span *ngIf=\"l.durationMax && l.durationMax !== l.durationMin\"\r\n [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTimeRange'| translate : (l.durationMin | amDuration:'s') : (l.durationMax | amDuration:'s')}}</span>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <span>{{l.time | amCalendar : null : CALENDAR_SPEC }}</span>\r\n <span *ngIf=\"l.duration\" [bizdocTooltip]=\"l.duration|amDurationFormat\" class=\"duration\">&nbsp;({{l.duration | amDuration:'s'}})</span>\r\n </ng-container>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <span *ngIf=\"l.note\">{{l.note}}</span>\r\n <button mat-icon-button *ngIf=\"l.type==='ModelChange'\" (click)=\"compare(l)\" [bizdocTooltip]=\"'Compare'|translate\" bizdocTooltipPosition=\"start\"><mat-icon>more_horiz</mat-icon></button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n", styles: [":host{width:100%}table{width:100%;background:transparent}table td{padding:0 4px}.duration{white-space:nowrap}\n"], components: [{ type: i7$1.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"] }, { type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i8$2.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i8$2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }], directives: [{ type: i8$2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i10.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i10.NgSwitchDefault, selector: "[ngSwitchDefault]" }], pipes: { "translate": TranslatePipe, "sanitizeHtml": SanitizeHtmlPipe, "amDurationFormat": DurationFormatPipe, "amDuration": DurationPipe, "amCalendar": CalendarPipe }, animations: [listAnimation, itemAnimation] });
14249
14257
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: TraceViewComponent, decorators: [{
14250
14258
  type: Component,
14251
- args: [{ selector: 'bizdoc-trace', animations: [listAnimation, itemAnimation], template: "<div class=\"nav-toolbar row\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" [bizdocTooltip]=\"'ShowAll'|translate\"><mat-icon>filter_list</mat-icon></button>\r\n <mat-menu #menu> \r\n <button mat-menu-item (click)=\"showAll=false\">\r\n <mat-icon>{{ !showAll?'check':'' }}</mat-icon>\r\n <span>{{'Route' | translate }}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"showAll=true\">\r\n <mat-icon>{{showAll?'check':''}}</mat-icon>\r\n <span>{{'Log' | translate }}</span>\r\n </button>\r\n </mat-menu>\r\n</div>\r\n<table class=\"mat-table\" @list>\r\n <tbody role=\"rowgroup\">\r\n <tr class=\"mat-row\" *ngFor=\"let l of data\" @item>\r\n <td class=\"mat-cell\">\r\n <span [innerHTML]=\"l.name | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n <span *ngIf=l.role>{{'JoinComma'|translate}}{{l.role}}</span>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <ng-container [ngSwitch]=\"l.type\">\r\n <ng-container *ngSwitchCase=\"'ActionTaken'\">\r\n <span [innerHTML]=\"l.action | sanitizeHtml\" (click)=\"chat($event)\" class=\"to\"></span>\r\n </ng-container>\r\n <span *ngSwitchCase=\"'Submit'\">{{'Issued' | translate}}</span>\r\n <span *ngSwitchCase=\"'Pending'\">{{'IsPending' | translate}}</span>\r\n <span *ngSwitchCase=\"'CheckOut'\">{{'CheckedIn' | translate : l.fileName}}</span>\r\n <span *ngSwitchCase=\"'CheckIn'\">{{'CheckedOut' | translate : l.fileName}}</span>\r\n <span *ngSwitchCase=\"'Estimate'\">{{'Estimate' | translate}}</span>\r\n <span *ngSwitchCase=\"'ModelChange'\">{{'Changed' | translate}}</span>\r\n </ng-container>\r\n <span *ngIf=\"l.fyi\">&nbsp;{{'FYI'|translate}}</span>\r\n </td>\r\n <td class=\"mat-cell\" [ngSwitch]=\"l.estimate\">\r\n <ng-container *ngSwitchCase=\"true\">\r\n <span *ngIf=\"l.durationMax && l.durationMax === l.durationMin\" [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTime'| translate : (l.durationMax | amDuration:'s')}}</span>\r\n <span *ngIf=\"l.durationMax && l.durationMax !== l.durationMin\"\r\n [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTimeRange'| translate : (l.durationMin | amDuration:'s') : (l.durationMax | amDuration:'s')}}</span>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <span>{{l.time | amCalendar : null : CALENDAR_SPEC }}</span>\r\n <span *ngIf=\"l.duration\" [bizdocTooltip]=\"l.duration|amDurationFormat\" class=\"duration\">&nbsp;({{l.duration | amDuration:'s'}})</span>\r\n </ng-container>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <span *ngIf=\"l.note\">{{l.note}}</span>\r\n <button mat-icon-button *ngIf=\"l.type==='ModelChange'\" (click)=\"compare(l)\" [bizdocTooltip]=\"'Compare'|translate\" bizdocTooltipPosition=\"start\"><mat-icon>more_horiz</mat-icon></button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n", styles: [":host{width:100%}table{width:100%;background:transparent}table td{padding:0 4px}.duration{white-space:nowrap}\n"] }]
14259
+ args: [{ selector: 'bizdoc-trace', animations: [listAnimation, itemAnimation], template: "<div class=\"nav-toolbar row\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" [bizdocTooltip]=\"'ShowAll'|translate\"><mat-icon>filter_list</mat-icon></button>\r\n <mat-menu #menu> \r\n <button mat-menu-item (click)=\"showAll=false\">\r\n <mat-icon>{{ !showAll?'check':'' }}</mat-icon>\r\n <span>{{'Route' | translate }}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"showAll=true\">\r\n <mat-icon>{{showAll?'check':''}}</mat-icon>\r\n <span>{{'Everything' | translate }}</span>\r\n </button>\r\n </mat-menu>\r\n</div>\r\n<table class=\"mat-table\" @list>\r\n <tbody role=\"rowgroup\">\r\n <tr class=\"mat-row\" *ngFor=\"let l of data\" @item>\r\n <td class=\"mat-cell\">\r\n <span [innerHTML]=\"l.name | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n <span *ngIf=l.role>{{'JoinComma'|translate}}{{l.role}}</span>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <ng-container [ngSwitch]=\"l.type\">\r\n <ng-container *ngSwitchCase=\"'ActionTaken'\">\r\n <span [innerHTML]=\"l.action | sanitizeHtml\" (click)=\"chat($event)\" class=\"to\"></span>\r\n </ng-container>\r\n <span *ngSwitchCase=\"'Submit'\">{{'Issued' | translate}}</span>\r\n <span *ngSwitchCase=\"'Pending'\">{{'IsPending' | translate}}</span>\r\n <span *ngSwitchCase=\"'CheckOut'\">{{'CheckedIn' | translate : l.fileName}}</span>\r\n <span *ngSwitchCase=\"'CheckIn'\">{{'CheckedOut' | translate : l.fileName}}</span>\r\n <span *ngSwitchCase=\"'Estimate'\">{{'Estimate' | translate}}</span>\r\n <span *ngSwitchCase=\"'ModelChange'\">{{'Changed' | translate}}</span>\r\n </ng-container>\r\n <span *ngIf=\"l.fyi\">&nbsp;{{'FYI'|translate}}</span>\r\n </td>\r\n <td class=\"mat-cell\" [ngSwitch]=\"l.estimate\">\r\n <ng-container *ngSwitchCase=\"true\">\r\n <span *ngIf=\"l.durationMax && l.durationMax === l.durationMin\" [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTime'| translate : (l.durationMax | amDuration:'s')}}</span>\r\n <span *ngIf=\"l.durationMax && l.durationMax !== l.durationMin\"\r\n [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTimeRange'| translate : (l.durationMin | amDuration:'s') : (l.durationMax | amDuration:'s')}}</span>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <span>{{l.time | amCalendar : null : CALENDAR_SPEC }}</span>\r\n <span *ngIf=\"l.duration\" [bizdocTooltip]=\"l.duration|amDurationFormat\" class=\"duration\">&nbsp;({{l.duration | amDuration:'s'}})</span>\r\n </ng-container>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <span *ngIf=\"l.note\">{{l.note}}</span>\r\n <button mat-icon-button *ngIf=\"l.type==='ModelChange'\" (click)=\"compare(l)\" [bizdocTooltip]=\"'Compare'|translate\" bizdocTooltipPosition=\"start\"><mat-icon>more_horiz</mat-icon></button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n", styles: [":host{width:100%}table{width:100%;background:transparent}table td{padding:0 4px}.duration{white-space:nowrap}\n"] }]
14252
14260
  }], ctorParameters: function () { return [{ type: SessionService }, { type: TranslateService }, { type: AccountService }, { type: ChatInfo }, { type: HubService }]; }, propDecorators: { model: [{
14253
14261
  type: Input
14254
14262
  }], versionSelected: [{
@@ -17333,7 +17341,7 @@ class HomeBase {
17333
17341
  this._messaging.new$.subscribe(m => {
17334
17342
  const { model: { formId: name, subject, number } } = m;
17335
17343
  const form = this._session.profile.forms.find(f => f.name === name), msg = this._translate.get('NewMail', form.title, number, subject || '');
17336
- this._snackBar.open(msg, this._translate.get('OpenNew'), {
17344
+ this._snackBar.open(msg, m.userId === this._session.profile.userId ? this._translate.get('OpenNew') : null, {
17337
17345
  duration: 5000,
17338
17346
  direction: this._session.direction,
17339
17347
  politeness: 'assertive'
@@ -26960,33 +26968,31 @@ class TraceElementComponent {
26960
26968
  this.nodeType = this._session.profile.nodes.find(n => n.name === addInfo.nodeType);
26961
26969
  }
26962
26970
  recipientInfo(recipient) {
26963
- const observables = [], observe = this._accounts.get(recipient.userId);
26964
- observables.push(observe);
26965
- const escalations = this.timeline.log.filter(l => l.time > this.timeline.startDate && l.type === 'Escalation' && l.recipientId === recipient.id);
26966
- if (escalations.length)
26967
- escalations.forEach(e => {
26968
- const observe = this._accounts.get(e.userId);
26969
- observables.push(observe);
26970
- });
26971
- else if (recipient.byId) {
26972
- const observe = this._accounts.get(recipient.byId);
26973
- observables.push(observe);
26974
- }
26975
- if (recipient.substitutingId) {
26976
- const observe = this._accounts.get(recipient.substitutingId);
26977
- observables.push(observe);
26978
- }
26979
- return forkJoin(observables).pipe(map(us => us.map(u => this._chat.format(u))), map(us => {
26980
- if (escalations.length)
26981
- return this._translate.get('EscalatedBy', us[0], this._translate.join(us.slice(1)));
26982
- else if (recipient.byId && recipient.substitutingId)
26983
- return this._translate.get('SubstitutingBy', us[0], us[2], us[1]);
26984
- else if (recipient.substitutingId)
26985
- return this._translate.get('Substituting', us[0], us[1]);
26986
- else if (recipient.byId)
26987
- return this._translate.get('By', us[0], us[1]);
26988
- return us[0];
26989
- }));
26971
+ return __awaiter(this, void 0, void 0, function* () {
26972
+ const info = [];
26973
+ const who = yield this._accounts.get(recipient.userId).toPromise();
26974
+ if (recipient.escalated) {
26975
+ const escalations = this.timeline.log.filter(l => l.type === 'Escalation' && l.recipientId === recipient.id);
26976
+ const escalate = yield this._accounts.get(escalations[0].userId).toPromise();
26977
+ info.push(this._translate.get('EscalatedBy', this._chat.format(escalate), this._chat.format(who)));
26978
+ }
26979
+ if (recipient.substitutingId) {
26980
+ const substitute = yield this._accounts.get(recipient.substitutingId).toPromise();
26981
+ if (recipient.byId) {
26982
+ const by = yield this._accounts.get(recipient.byId).toPromise();
26983
+ info.push(this._translate.get('SubstitutingBy', this._chat.format(who), this._chat.format(substitute), this._chat.format(by)));
26984
+ }
26985
+ else
26986
+ info.push(this._translate.get('Substituting', this._chat.format(who), this._chat.format(substitute)));
26987
+ }
26988
+ else if (recipient.byId) {
26989
+ const by = yield this._accounts.get(recipient.byId).toPromise();
26990
+ info.push(this._translate.get('By', this._chat.format(who), this._chat.format(by)));
26991
+ }
26992
+ else
26993
+ info.push(this._chat.format(who));
26994
+ return info.join(this._translate.comma);
26995
+ });
26990
26996
  }
26991
26997
  logInfo(log) {
26992
26998
  const observables = [];