@bizdoc/core 2.3.20 → 2.3.22

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 (411) hide show
  1. package/assets/system/icons.json +1 -1
  2. package/assets/themes/brown.min.css +1 -90
  3. package/assets/themes/dark.min.css +1 -90
  4. package/assets/themes/deep-purple-light-blue.min.css +1 -90
  5. package/assets/themes/deep-purple-teal.min.css +1 -90
  6. package/assets/themes/default.min.css +4 -4
  7. package/assets/themes/green.min.css +1 -90
  8. package/assets/themes/indigo.min.css +1 -90
  9. package/assets/themes/spreadsheet.min.css +15 -0
  10. package/esm2022/lib/admin/admin-dismiss.service.mjs +3 -3
  11. package/esm2022/lib/admin/admin-menu.component.mjs +3 -3
  12. package/esm2022/lib/admin/architecture/cube-axes-filter.component.mjs +3 -3
  13. package/esm2022/lib/admin/architecture/designer-element.component.mjs +57 -59
  14. package/esm2022/lib/admin/architecture/designer-privileges.component.mjs +3 -3
  15. package/esm2022/lib/admin/architecture/designer.base.mjs +19 -35
  16. package/esm2022/lib/admin/architecture/designer.component.mjs +18 -8
  17. package/esm2022/lib/admin/architecture/elements/action.component.mjs +5 -5
  18. package/esm2022/lib/admin/architecture/elements/analysis-view.component.mjs +5 -5
  19. package/esm2022/lib/admin/architecture/elements/analysis-widget.component.mjs +3 -3
  20. package/esm2022/lib/admin/architecture/elements/anomaly-rule.component.mjs +3 -3
  21. package/esm2022/lib/admin/architecture/elements/attribute.component.mjs +5 -5
  22. package/esm2022/lib/admin/architecture/elements/box-form.component.mjs +3 -3
  23. package/esm2022/lib/admin/architecture/elements/configuration-datasource.component.mjs +3 -3
  24. package/esm2022/lib/admin/architecture/elements/control.component.mjs +5 -9
  25. package/esm2022/lib/admin/architecture/elements/cube-index-utility.component.mjs +3 -3
  26. package/esm2022/lib/admin/architecture/elements/cube-view.component.mjs +5 -5
  27. package/esm2022/lib/admin/architecture/elements/cube.component.mjs +5 -5
  28. package/esm2022/lib/admin/architecture/elements/document-state-widget.component.mjs +3 -3
  29. package/esm2022/lib/admin/architecture/elements/documents-report.component.mjs +3 -3
  30. package/esm2022/lib/admin/architecture/elements/documents-widget.component.mjs +3 -3
  31. package/esm2022/lib/admin/architecture/elements/explore-view.component.mjs +3 -3
  32. package/esm2022/lib/admin/architecture/elements/folder.component.mjs +5 -5
  33. package/esm2022/lib/admin/architecture/elements/form-invite.dialog.mjs +3 -3
  34. package/esm2022/lib/admin/architecture/elements/form.component.mjs +5 -5
  35. package/esm2022/lib/admin/architecture/elements/guide.component.mjs +5 -5
  36. package/esm2022/lib/admin/architecture/elements/job.component.mjs +5 -5
  37. package/esm2022/lib/admin/architecture/elements/matrix-view.component.mjs +22 -5
  38. package/esm2022/lib/admin/architecture/elements/node.component.mjs +5 -5
  39. package/esm2022/lib/admin/architecture/elements/parallel-view.component.mjs +5 -5
  40. package/esm2022/lib/admin/architecture/elements/performance-report.component.mjs +3 -3
  41. package/esm2022/lib/admin/architecture/elements/performance-widget.component.mjs +3 -3
  42. package/esm2022/lib/admin/architecture/elements/pivot-view.component.mjs +8 -7
  43. package/esm2022/lib/admin/architecture/elements/policy.component.mjs +5 -5
  44. package/esm2022/lib/admin/architecture/elements/report.component.mjs +5 -5
  45. package/esm2022/lib/admin/architecture/elements/return-to-role-action.component.mjs +3 -3
  46. package/esm2022/lib/admin/architecture/elements/role.component.mjs +5 -5
  47. package/esm2022/lib/admin/architecture/elements/rule.component.mjs +5 -5
  48. package/esm2022/lib/admin/architecture/elements/source.component.mjs +5 -5
  49. package/esm2022/lib/admin/architecture/elements/state.component.mjs +5 -5
  50. package/esm2022/lib/admin/architecture/elements/sum-view.component.mjs +3 -3
  51. package/esm2022/lib/admin/architecture/elements/tasks-report.component.mjs +3 -3
  52. package/esm2022/lib/admin/architecture/elements/type.component.mjs +5 -5
  53. package/esm2022/lib/admin/architecture/elements/usage-report.component.mjs +3 -3
  54. package/esm2022/lib/admin/architecture/elements/utility.component.mjs +5 -5
  55. package/esm2022/lib/admin/architecture/elements/view.component.mjs +5 -5
  56. package/esm2022/lib/admin/architecture/elements/widget.component.mjs +5 -5
  57. package/esm2022/lib/admin/architecture/icon-picker.component.mjs +3 -3
  58. package/esm2022/lib/admin/core/ace.input.mjs +3 -3
  59. package/esm2022/lib/admin/core/color-picker.input.mjs +3 -3
  60. package/esm2022/lib/admin/core/localized-string.component.mjs +3 -3
  61. package/esm2022/lib/admin/core/search.input.mjs +3 -3
  62. package/esm2022/lib/admin/diff/configuration-diff.component.mjs +3 -3
  63. package/esm2022/lib/admin/document-trace/document-trace.component.mjs +3 -3
  64. package/esm2022/lib/admin/document-trace/reassign.dialog.mjs +3 -3
  65. package/esm2022/lib/admin/document-trace/trace-element.component.mjs +3 -3
  66. package/esm2022/lib/admin/form/designer/box-designer.component.mjs +3 -3
  67. package/esm2022/lib/admin/form/designer/design-control.component.mjs +3 -3
  68. package/esm2022/lib/admin/form/designer/properties.component.mjs +3 -3
  69. package/esm2022/lib/admin/form/designer/section.component.mjs +3 -3
  70. package/esm2022/lib/admin/form/designer/settings.component.mjs +3 -3
  71. package/esm2022/lib/admin/form/form.resolve.service.mjs +3 -3
  72. package/esm2022/lib/admin/form/workflow/node.component.mjs +3 -3
  73. package/esm2022/lib/admin/form/workflow/role-node.component.mjs +3 -3
  74. package/esm2022/lib/admin/form/workflow/workflow.component.mjs +3 -3
  75. package/esm2022/lib/admin/indices/manage-cube-index.component.mjs +3 -3
  76. package/esm2022/lib/admin/patterns/patterns.component.mjs +3 -3
  77. package/esm2022/lib/admin/permissions/permissions.component.mjs +3 -3
  78. package/esm2022/lib/admin/positions/positions-popup.component.mjs +3 -3
  79. package/esm2022/lib/admin/positions/positions.component.mjs +3 -3
  80. package/esm2022/lib/admin/profiler/outofoffice.component.mjs +3 -3
  81. package/esm2022/lib/admin/profiler/profiler.component.mjs +3 -3
  82. package/esm2022/lib/admin/system.service.mjs +3 -3
  83. package/esm2022/lib/admin/utility-wrapper.component.mjs +3 -3
  84. package/esm2022/lib/admin/utility.pane.component.mjs +3 -3
  85. package/esm2022/lib/app.component.mjs +6 -6
  86. package/esm2022/lib/bizdoc.module.mjs +4 -4
  87. package/esm2022/lib/browse/browse-items.component.mjs +11 -9
  88. package/esm2022/lib/browse/browse.mobile.component.mjs +5 -5
  89. package/esm2022/lib/browse/browse.pane.component.mjs +3 -3
  90. package/esm2022/lib/browse/expanded-item/expanded-item.component.mjs +3 -3
  91. package/esm2022/lib/browse/filter/filter.component.mjs +5 -5
  92. package/esm2022/lib/browse/folders-menu.component.mjs +3 -3
  93. package/esm2022/lib/chat/chat-info.mjs +3 -3
  94. package/esm2022/lib/chat/chat.mobile.component.mjs +3 -3
  95. package/esm2022/lib/chat/chat.service.mjs +3 -3
  96. package/esm2022/lib/chat/contacts.component.mjs +6 -6
  97. package/esm2022/lib/chat/contacts.pane.component.mjs +3 -3
  98. package/esm2022/lib/chat/conversation.component.mjs +3 -3
  99. package/esm2022/lib/chat/conversation.pane.component.mjs +3 -3
  100. package/esm2022/lib/compose/action/action-picker.component.mjs +3 -3
  101. package/esm2022/lib/compose/action/action.dialog.mjs +3 -3
  102. package/esm2022/lib/compose/action/action.pane.dialog.exp.mjs +3 -3
  103. package/esm2022/lib/compose/action/assign-action.component.mjs +3 -3
  104. package/esm2022/lib/compose/action/moveto-action.component.mjs +3 -3
  105. package/esm2022/lib/compose/action/return-action.component.mjs +3 -3
  106. package/esm2022/lib/compose/attachments/attachments.component.mjs +3 -3
  107. package/esm2022/lib/compose/attachments/preview/attachment-preview.component.mjs +3 -3
  108. package/esm2022/lib/compose/attachments/progress-button.directive.mjs +3 -3
  109. package/esm2022/lib/compose/box/box.component.mjs +3 -3
  110. package/esm2022/lib/compose/box/control.component.mjs +3 -3
  111. package/esm2022/lib/compose/box/row.component.mjs +3 -3
  112. package/esm2022/lib/compose/can-deactivate-changes.service.mjs +3 -3
  113. package/esm2022/lib/compose/comments/comment.component.mjs +3 -3
  114. package/esm2022/lib/compose/comments/comments.component.mjs +3 -3
  115. package/esm2022/lib/compose/comments/comments.pane.component.mjs +3 -3
  116. package/esm2022/lib/compose/comments/edit-comment.component.mjs +3 -3
  117. package/esm2022/lib/compose/comments/edits.component.mjs +3 -3
  118. package/esm2022/lib/compose/comments/quick-comment.component.exp.mjs +3 -3
  119. package/esm2022/lib/compose/comments/votes.component.mjs +3 -3
  120. package/esm2022/lib/compose/compose-resolve.service.mjs +6 -6
  121. package/esm2022/lib/compose/compose.mobile.component.mjs +7 -11
  122. package/esm2022/lib/compose/compose.pane.component.mjs +9 -12
  123. package/esm2022/lib/compose/copy/copy.dialog.mjs +3 -3
  124. package/esm2022/lib/compose/dismiss.service.mjs +3 -3
  125. package/esm2022/lib/compose/document-resolver.service.mjs +3 -3
  126. package/esm2022/lib/compose/document.component.mjs +3 -3
  127. package/esm2022/lib/compose/document.mobile.component.mjs +3 -3
  128. package/esm2022/lib/compose/document.pane.component.mjs +3 -3
  129. package/esm2022/lib/compose/events/events.component.mjs +3 -3
  130. package/esm2022/lib/compose/form-selector/form-selector.sheet.mjs +3 -3
  131. package/esm2022/lib/compose/form.component.mjs +3 -3
  132. package/esm2022/lib/compose/new-menu.component.mjs +3 -3
  133. package/esm2022/lib/compose/privilage.directive.mjs +6 -6
  134. package/esm2022/lib/compose/recipient-resolver.service.mjs +3 -3
  135. package/esm2022/lib/compose/state.component.mjs +3 -3
  136. package/esm2022/lib/compose/tag/tags.component.mjs +3 -3
  137. package/esm2022/lib/compose/trace/flow.component.mjs +3 -3
  138. package/esm2022/lib/compose/trace/people.component.mjs +3 -3
  139. package/esm2022/lib/compose/trace/trace.base.mjs +3 -3
  140. package/esm2022/lib/compose/trace/trace.component.mjs +3 -3
  141. package/esm2022/lib/compose/trace/trace.pane.component.mjs +3 -3
  142. package/esm2022/lib/compose/version-compare/version-compare.component.mjs +3 -3
  143. package/esm2022/lib/compose/version-compare/version-compare.directive.mjs +9 -9
  144. package/esm2022/lib/compose/version-compare/version.pane.component.mjs +3 -3
  145. package/esm2022/lib/core/StickyToolbar.mjs +30 -0
  146. package/esm2022/lib/core/account.service.mjs +3 -3
  147. package/esm2022/lib/core/animated-icon/animated-icon.directive.mjs +3 -3
  148. package/esm2022/lib/core/animations.mjs +2 -2
  149. package/esm2022/lib/core/avatar/avatar.component.mjs +3 -3
  150. package/esm2022/lib/core/checkbox.mjs +3 -3
  151. package/esm2022/lib/core/component-factory-resolver.mjs +3 -3
  152. package/esm2022/lib/core/datasource.service.mjs +3 -3
  153. package/esm2022/lib/core/fields/address.designer.mjs +3 -3
  154. package/esm2022/lib/core/fields/address.field.mjs +3 -3
  155. package/esm2022/lib/core/fields/autocomplete.field.mjs +6 -6
  156. package/esm2022/lib/core/fields/checkbox.designer.mjs +3 -3
  157. package/esm2022/lib/core/fields/checkbox.field.mjs +3 -3
  158. package/esm2022/lib/core/fields/checklist.designer.mjs +3 -3
  159. package/esm2022/lib/core/fields/checklist.field.mjs +3 -3
  160. package/esm2022/lib/core/fields/date-range.designer.mjs +3 -3
  161. package/esm2022/lib/core/fields/date-range.field.mjs +3 -3
  162. package/esm2022/lib/core/fields/date.designer.mjs +3 -3
  163. package/esm2022/lib/core/fields/date.field.mjs +3 -3
  164. package/esm2022/lib/core/fields/expression.field.mjs +6 -6
  165. package/esm2022/lib/core/fields/file.designer.mjs +3 -3
  166. package/esm2022/lib/core/fields/file.field.mjs +3 -3
  167. package/esm2022/lib/core/fields/html.designer.mjs +3 -3
  168. package/esm2022/lib/core/fields/html.field.mjs +3 -3
  169. package/esm2022/lib/core/fields/input.designer.mjs +3 -3
  170. package/esm2022/lib/core/fields/input.field.mjs +3 -3
  171. package/esm2022/lib/core/fields/localized-string.field.mjs +6 -6
  172. package/esm2022/lib/core/fields/numeric.designer.mjs +3 -3
  173. package/esm2022/lib/core/fields/numeric.field.mjs +3 -3
  174. package/esm2022/lib/core/fields/options.base.mjs +6 -6
  175. package/esm2022/lib/core/fields/options.component.mjs +3 -3
  176. package/esm2022/lib/core/fields/radio-button.designer.mjs +3 -3
  177. package/esm2022/lib/core/fields/radio-button.field.mjs +3 -3
  178. package/esm2022/lib/core/fields/select.designer.mjs +3 -3
  179. package/esm2022/lib/core/fields/select.field.mjs +3 -3
  180. package/esm2022/lib/core/fields/signature.designer.mjs +3 -3
  181. package/esm2022/lib/core/fields/signature.field.mjs +3 -3
  182. package/esm2022/lib/core/fields/switch.field.mjs +3 -3
  183. package/esm2022/lib/core/fields/tags.designer.mjs +3 -3
  184. package/esm2022/lib/core/fields/tags.field.mjs +3 -3
  185. package/esm2022/lib/core/fields/textarea.designer.mjs +3 -3
  186. package/esm2022/lib/core/fields/textarea.field.mjs +3 -3
  187. package/esm2022/lib/core/fields/time.designer.mjs +3 -3
  188. package/esm2022/lib/core/fields/time.field.mjs +3 -3
  189. package/esm2022/lib/core/fields/timespan.field.mjs +6 -6
  190. package/esm2022/lib/core/fields/yesno.designer.mjs +3 -3
  191. package/esm2022/lib/core/fields/yesno.field.mjs +3 -3
  192. package/esm2022/lib/core/guide/guide.component.mjs +3 -3
  193. package/esm2022/lib/core/guide/guide.service.mjs +3 -3
  194. package/esm2022/lib/core/guide/help-tip.component.mjs +3 -3
  195. package/esm2022/lib/core/http.interceptor.mjs +3 -3
  196. package/esm2022/lib/core/hub.service.mjs +3 -3
  197. package/esm2022/lib/core/identity/identity.component.mjs +3 -3
  198. package/esm2022/lib/core/info/attachment-info.service.mjs +3 -3
  199. package/esm2022/lib/core/info/document-info.service.mjs +3 -3
  200. package/esm2022/lib/core/info/location-info.component.mjs +3 -3
  201. package/esm2022/lib/core/info/map-info.mjs +3 -3
  202. package/esm2022/lib/core/inputs/address.input.mjs +3 -3
  203. package/esm2022/lib/core/inputs/auto-complete.input.mjs +3 -3
  204. package/esm2022/lib/core/inputs/combination-picker-body.mjs +3 -3
  205. package/esm2022/lib/core/inputs/combination-picker.mjs +5 -5
  206. package/esm2022/lib/core/inputs/combination-pool.mjs +3 -3
  207. package/esm2022/lib/core/inputs/file.input.mjs +3 -3
  208. package/esm2022/lib/core/inputs/select.input.mjs +3 -3
  209. package/esm2022/lib/core/inputs/signature.input.mjs +3 -3
  210. package/esm2022/lib/core/inputs/time-picker.mjs +3 -3
  211. package/esm2022/lib/core/inputs/timespan.input.mjs +3 -3
  212. package/esm2022/lib/core/layout.component.mjs +3 -3
  213. package/esm2022/lib/core/lottie-animation.mjs +3 -3
  214. package/esm2022/lib/core/mailbox.service.mjs +3 -3
  215. package/esm2022/lib/core/none.component.mjs +3 -3
  216. package/esm2022/lib/core/pipes/action.pipe.mjs +3 -3
  217. package/esm2022/lib/core/pipes/calendar.pipe.mjs +3 -3
  218. package/esm2022/lib/core/pipes/date-format.pipe.mjs +3 -3
  219. package/esm2022/lib/core/pipes/daterange.pipe.mjs +6 -6
  220. package/esm2022/lib/core/pipes/difference.pipe.mjs +3 -3
  221. package/esm2022/lib/core/pipes/duration-format.pipe.mjs +3 -3
  222. package/esm2022/lib/core/pipes/duration.pipe.mjs +3 -3
  223. package/esm2022/lib/core/pipes/form.pipe.mjs +3 -3
  224. package/esm2022/lib/core/pipes/join.pipe.mjs +3 -3
  225. package/esm2022/lib/core/pipes/localized-string.pipe.mjs +3 -3
  226. package/esm2022/lib/core/pipes/role.pipe.mjs +3 -3
  227. package/esm2022/lib/core/pipes/sanitize-html.pipe.mjs +3 -3
  228. package/esm2022/lib/core/pipes/sort.pipe.mjs +6 -6
  229. package/esm2022/lib/core/pipes/state.pipe.mjs +3 -3
  230. package/esm2022/lib/core/pipes/time-ago.pipe.mjs +6 -6
  231. package/esm2022/lib/core/pipes/translate.pipe.mjs +9 -9
  232. package/esm2022/lib/core/pipes/type-value.pipe.mjs +3 -3
  233. package/esm2022/lib/core/pipes/user-name.pipe.mjs +3 -3
  234. package/esm2022/lib/core/popup/popup.component.mjs +3 -3
  235. package/esm2022/lib/core/popup/popup.service.mjs +3 -3
  236. package/esm2022/lib/core/popup/tooltip.directive.mjs +6 -6
  237. package/esm2022/lib/core/prompt/ask/ask.dialog.mjs +3 -3
  238. package/esm2022/lib/core/prompt/mask/mask.component.mjs +3 -3
  239. package/esm2022/lib/core/prompt.service.mjs +3 -3
  240. package/esm2022/lib/core/router.mjs +6 -6
  241. package/esm2022/lib/core/save-changes.dialog.mjs +3 -3
  242. package/esm2022/lib/core/session.service.mjs +3 -3
  243. package/esm2022/lib/core/slots/router.directive.mjs +3 -3
  244. package/esm2022/lib/core/slots/router.service.mjs +3 -3
  245. package/esm2022/lib/core/slots/slots.component.mjs +5 -5
  246. package/esm2022/lib/core/tagging/documents.component.mjs +3 -3
  247. package/esm2022/lib/core/tagging/edit-input.component.mjs +3 -3
  248. package/esm2022/lib/core/tagging/emoji.component.mjs +3 -3
  249. package/esm2022/lib/core/tagging/tagging-item.directive.mjs +3 -3
  250. package/esm2022/lib/core/tagging/tagging.component-base.mjs +3 -3
  251. package/esm2022/lib/core/tagging/tagging.directive.mjs +3 -3
  252. package/esm2022/lib/core/tagging/tagging.pipe.mjs +3 -3
  253. package/esm2022/lib/core/tagging/users.component.mjs +3 -3
  254. package/esm2022/lib/core/translate.service.mjs +3 -3
  255. package/esm2022/lib/core/translations.mjs +4 -2
  256. package/esm2022/lib/core/window-title.service.mjs +3 -3
  257. package/esm2022/lib/cube/accum/accum.component.mjs +3 -3
  258. package/esm2022/lib/cube/chart/chart.component.mjs +3 -3
  259. package/esm2022/lib/cube/cube-info.service.mjs +3 -3
  260. package/esm2022/lib/cube/cube-menu.component.mjs +3 -3
  261. package/esm2022/lib/cube/cube-view.component.mjs +5 -5
  262. package/esm2022/lib/cube/cube.service.mjs +3 -3
  263. package/esm2022/lib/cube/explore/document-item.component.mjs +3 -3
  264. package/esm2022/lib/cube/explore/explore-item.component.mjs +3 -3
  265. package/esm2022/lib/cube/explore/explore-items.component.mjs +3 -3
  266. package/esm2022/lib/cube/explore/explore.pane.component.mjs +3 -3
  267. package/esm2022/lib/cube/explore/item-resolver.service.mjs +6 -6
  268. package/esm2022/lib/cube/explore/item.pane.component.mjs +3 -3
  269. package/esm2022/lib/cube/filter/filter-tags.component.exp.mjs +3 -3
  270. package/esm2022/lib/cube/filter/filter.component.mjs +3 -3
  271. package/esm2022/lib/cube/grid/grid.component.mjs +3 -3
  272. package/esm2022/lib/cube/matrix/matrix.base.mjs +3 -3
  273. package/esm2022/lib/cube/matrix/matrix.mobile.component.mjs +3 -3
  274. package/esm2022/lib/cube/matrix/matrix.pane.component.mjs +3 -3
  275. package/esm2022/lib/cube/matrix/popup.component.mjs +3 -3
  276. package/esm2022/lib/cube/matrix/table.component.mjs +8 -5
  277. package/esm2022/lib/cube/parallel/parallel.component.mjs +3 -3
  278. package/esm2022/lib/cube/pivot/pivot.component.mjs +3 -3
  279. package/esm2022/lib/cube/spreadsheet/spreadsheet.component.mjs +391 -0
  280. package/esm2022/lib/cube/spreadsheet/spreadsheet.container.mjs +19 -0
  281. package/esm2022/lib/cube/sum/sum.component.mjs +11 -9
  282. package/esm2022/lib/cube/view-base.mjs +3 -3
  283. package/esm2022/lib/cube/view.mobile.component.mjs +3 -3
  284. package/esm2022/lib/cube/view.pane.component.mjs +3 -3
  285. package/esm2022/lib/dashboard/actions/actions.widget.mjs +3 -3
  286. package/esm2022/lib/dashboard/cube/accum-cube.widget.mjs +3 -3
  287. package/esm2022/lib/dashboard/cube/compare.widget.mjs +3 -3
  288. package/esm2022/lib/dashboard/cube/cube-analysis.base.mjs +3 -3
  289. package/esm2022/lib/dashboard/cube/cube-analysis.widget.mjs +3 -3
  290. package/esm2022/lib/dashboard/cube/cube-chart.widget.mjs +3 -3
  291. package/esm2022/lib/dashboard/cube/document-state.widget.mjs +3 -3
  292. package/esm2022/lib/dashboard/cube/documents.widget.mjs +3 -3
  293. package/esm2022/lib/dashboard/cube/filter/filter.component.mjs +3 -3
  294. package/esm2022/lib/dashboard/dashboard.component.mjs +3 -3
  295. package/esm2022/lib/dashboard/dashboard.pane.component.mjs +3 -3
  296. package/esm2022/lib/dashboard/recents/recents.widget.mjs +7 -5
  297. package/esm2022/lib/dashboard/score/activity.widget.mjs +3 -3
  298. package/esm2022/lib/dashboard/score/compare-groups.widget.mjs +3 -3
  299. package/esm2022/lib/dashboard/score/peers-performance.widget.mjs +3 -3
  300. package/esm2022/lib/dashboard/score/pending-results.widget.mjs +3 -3
  301. package/esm2022/lib/dashboard/score/personal-score.widget.mjs +3 -3
  302. package/esm2022/lib/dashboard/widget-item.component.mjs +3 -3
  303. package/esm2022/lib/designer.module.mjs +4 -4
  304. package/esm2022/lib/desktop.module.mjs +4 -4
  305. package/esm2022/lib/home/about/about.dialog.mjs +3 -3
  306. package/esm2022/lib/home/home-base.component.mjs +3 -3
  307. package/esm2022/lib/home/home.desktop.component.mjs +3 -3
  308. package/esm2022/lib/home/home.mobile.component.mjs +6 -6
  309. package/esm2022/lib/home/notifications/notifications.component.mjs +3 -3
  310. package/esm2022/lib/home/options/options.component.mjs +3 -3
  311. package/esm2022/lib/home/outofoffice/outofoffice.component.mjs +3 -3
  312. package/esm2022/lib/home/sign/sign.component.mjs +3 -3
  313. package/esm2022/lib/home/tools.component.mjs +3 -3
  314. package/esm2022/lib/impersonate/impersonate.component.mjs +3 -3
  315. package/esm2022/lib/mobile.module.mjs +4 -4
  316. package/esm2022/lib/modules/chart.module.mjs +4 -4
  317. package/esm2022/lib/modules/circular-gauge.module.mjs +4 -4
  318. package/esm2022/lib/modules/datepicker.intl.mjs +3 -3
  319. package/esm2022/lib/modules/dayjs.module.mjs +4 -4
  320. package/esm2022/lib/modules/diagram.module.mjs +4 -4
  321. package/esm2022/lib/modules/gantt.module.mjs +7 -7
  322. package/esm2022/lib/modules/grid.module.mjs +4 -4
  323. package/esm2022/lib/modules/linear-gauge.module.mjs +4 -4
  324. package/esm2022/lib/modules/material.module.mjs +4 -4
  325. package/esm2022/lib/modules/paginator.intl.mjs +3 -3
  326. package/esm2022/lib/modules/pivot.module.mjs +4 -4
  327. package/esm2022/lib/modules/schedule.module.mjs +4 -4
  328. package/esm2022/lib/modules/spreadsheet.module.mjs +4 -4
  329. package/esm2022/lib/modules/stepper.intl.mjs +3 -3
  330. package/esm2022/lib/modules/texteditor.module.mjs +4 -4
  331. package/esm2022/lib/notifications/filter.component.mjs +3 -3
  332. package/esm2022/lib/notifications/notifications-table.component.mjs +3 -3
  333. package/esm2022/lib/notifications/notifications.mobile.component.mjs +3 -3
  334. package/esm2022/lib/notifications/notifications.pane.component.mjs +3 -3
  335. package/esm2022/lib/notifications/notifications.service.mjs +3 -3
  336. package/esm2022/lib/notifications/types/commented.notification.mjs +3 -3
  337. package/esm2022/lib/notifications/types/cube-anomaly.notification.mjs +3 -3
  338. package/esm2022/lib/notifications/types/escalated.notification.mjs +3 -3
  339. package/esm2022/lib/notifications/types/invite.notification.mjs +3 -3
  340. package/esm2022/lib/notifications/types/liked.notification.mjs +3 -3
  341. package/esm2022/lib/notifications/types/long-running-task.notification.mjs +3 -3
  342. package/esm2022/lib/notifications/types/notification-base.mjs +3 -3
  343. package/esm2022/lib/notifications/types/nudge.notification.mjs +3 -3
  344. package/esm2022/lib/notifications/types/state-changed.notification.mjs +3 -3
  345. package/esm2022/lib/notifications/types/tagged.notification.mjs +3 -3
  346. package/esm2022/lib/notifications/types/text.notification.mjs +3 -3
  347. package/esm2022/lib/notifications/types/upcoming-event.notification.mjs +3 -3
  348. package/esm2022/lib/options/options.component.mjs +3 -3
  349. package/esm2022/lib/options/options.service.mjs +3 -3
  350. package/esm2022/lib/reports/arguments-component.mjs +3 -3
  351. package/esm2022/lib/reports/cube/documents.component.mjs +3 -3
  352. package/esm2022/lib/reports/cube/grid-documents.component.mjs +3 -3
  353. package/esm2022/lib/reports/cube/role-performance.component.mjs +3 -3
  354. package/esm2022/lib/reports/cube/table-documents.component.mjs +3 -3
  355. package/esm2022/lib/reports/cube/usage-args.component.mjs +3 -3
  356. package/esm2022/lib/reports/cube/usage-base.mjs +3 -3
  357. package/esm2022/lib/reports/cube/usage-chart.component.mjs +3 -3
  358. package/esm2022/lib/reports/cube/usage-pivot.component.mjs +3 -3
  359. package/esm2022/lib/reports/cube/usage.component.mjs +3 -3
  360. package/esm2022/lib/reports/report-viewer.component.mjs +3 -3
  361. package/esm2022/lib/reports/report.mobile.component.mjs +3 -3
  362. package/esm2022/lib/reports/report.pane.component.mjs +3 -3
  363. package/esm2022/lib/reports/reports-menu.component.mjs +3 -3
  364. package/esm2022/lib/reports/substitution/substitution.component.mjs +3 -3
  365. package/esm2022/lib/reports/table/table-view.component.mjs +3 -3
  366. package/esm2022/lib/reports/tasks/tasks.component.mjs +3 -3
  367. package/esm2022/lib/routes.mobile.mjs +4 -7
  368. package/esm2022/lib/scheduler/schedule.component.mjs +3 -3
  369. package/esm2022/lib/scheduler/scheduler.mobile.component.mjs +3 -3
  370. package/esm2022/lib/scheduler/scheduler.pane.component.mjs +5 -5
  371. package/esm2022/lib/search/cube.component.mjs +3 -3
  372. package/esm2022/lib/search/document.component.mjs +3 -3
  373. package/esm2022/lib/search/guide.component.mjs +3 -3
  374. package/esm2022/lib/search/path.component.mjs +3 -3
  375. package/esm2022/lib/search/search.service.mjs +3 -3
  376. package/esm2022/lib/shared.module.mjs +24 -15
  377. package/esm2022/lib/system.module.mjs +17 -17
  378. package/esm2022/lib/views/cube/chart.component.mjs +3 -3
  379. package/esm2022/lib/views/cube/cube-base.mjs +14 -9
  380. package/esm2022/lib/views/cube/explore.component.mjs +3 -3
  381. package/esm2022/lib/views/cube/matrix.component.mjs +6 -4
  382. package/esm2022/lib/views/cube/parallel.component.mjs +3 -3
  383. package/esm2022/lib/views/cube/pivot.component.mjs +3 -3
  384. package/esm2022/lib/views/cube/sum.component.mjs +3 -3
  385. package/esm2022/lib/views/cube/view.component.mjs +3 -3
  386. package/esm2022/lib/views/timeline/timeline.component.exp.mjs +41 -41
  387. package/esm2022/lib/views/view-item.component.mjs +3 -3
  388. package/esm2022/lib/views/views.component.mjs +3 -3
  389. package/esm2022/lib/views/views.mobile.component.mjs +3 -3
  390. package/esm2022/lib/views/views.pane.component.mjs +5 -5
  391. package/esm2022/public-api.mjs +4 -2
  392. package/fesm2022/bizdoc-core.mjs +1510 -1429
  393. package/fesm2022/bizdoc-core.mjs.map +1 -1
  394. package/lib/admin/architecture/designer-element.component.d.ts +26 -22
  395. package/lib/admin/architecture/designer.base.d.ts +7 -12
  396. package/lib/admin/architecture/elements/control.component.d.ts +0 -1
  397. package/lib/admin/architecture/elements/matrix-view.component.d.ts +13 -3
  398. package/lib/browse/browse-items.component.d.ts +1 -1
  399. package/lib/compose/compose.mobile.component.d.ts +1 -2
  400. package/lib/compose/compose.pane.component.d.ts +1 -2
  401. package/lib/core/StickyToolbar.d.ts +13 -0
  402. package/lib/core/translations.d.ts +2 -0
  403. package/lib/cube/{grid → spreadsheet}/spreadsheet.component.d.ts +9 -2
  404. package/lib/cube/spreadsheet/spreadsheet.container.d.ts +5 -0
  405. package/lib/shared.module.d.ts +140 -138
  406. package/lib/system.module.d.ts +1 -1
  407. package/lib/views/cube/cube-base.d.ts +1 -1
  408. package/lib/views/timeline/timeline.component.exp.d.ts +10 -2
  409. package/package.json +17 -17
  410. package/public-api.d.ts +3 -1
  411. package/esm2022/lib/cube/grid/spreadsheet.component.mjs +0 -376
@@ -22,10 +22,10 @@ export class BoxFormControlComponent {
22
22
  instance.control.setValue(this.model[this.metadata.name], { emitEvent: false });
23
23
  this.form.addControl(this.metadata.name, instance.control, { emitEvent: false });
24
24
  }
25
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: BoxFormControlComponent, deps: [{ token: BIZDOC_CONFIG }, { token: i0.ViewContainerRef }, { token: i1.BizDocComponentFactoryResolver }, { token: i2.SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
26
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: BoxFormControlComponent, selector: "bizdoc-box-control", inputs: { form: "form", mode: "mode", model: "model", metadata: "metadata" }, host: { properties: { "attr.data-help": "metadata.name" } }, ngImport: i0, template: '', isInline: true, encapsulation: i0.ViewEncapsulation.None }); }
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: BoxFormControlComponent, deps: [{ token: BIZDOC_CONFIG }, { token: i0.ViewContainerRef }, { token: i1.BizDocComponentFactoryResolver }, { token: i2.SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
26
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: BoxFormControlComponent, selector: "bizdoc-box-control", inputs: { form: "form", mode: "mode", model: "model", metadata: "metadata" }, host: { properties: { "attr.data-help": "metadata.name" } }, ngImport: i0, template: '', isInline: true, encapsulation: i0.ViewEncapsulation.None }); }
27
27
  }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: BoxFormControlComponent, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: BoxFormControlComponent, decorators: [{
29
29
  type: Component,
30
30
  args: [{
31
31
  encapsulation: ViewEncapsulation.None,
@@ -20,10 +20,10 @@ export class BoxFormRowComponent {
20
20
  this.form.addControl(f.name, instance.control);
21
21
  });
22
22
  }
23
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: BoxFormRowComponent, deps: [{ token: i0.ViewContainerRef }, { token: i1.BizDocComponentFactoryResolver }, { token: i2.SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
24
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: BoxFormRowComponent, selector: "bizdoc-box-row", inputs: { form: "form", mode: "mode", model: "model", metadata: "metadata" }, ngImport: i0, template: '', isInline: true }); }
23
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: BoxFormRowComponent, deps: [{ token: i0.ViewContainerRef }, { token: i1.BizDocComponentFactoryResolver }, { token: i2.SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
24
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: BoxFormRowComponent, selector: "bizdoc-box-row", inputs: { form: "form", mode: "mode", model: "model", metadata: "metadata" }, ngImport: i0, template: '', isInline: true }); }
25
25
  }
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: BoxFormRowComponent, decorators: [{
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: BoxFormRowComponent, decorators: [{
27
27
  type: Component,
28
28
  args: [{
29
29
  selector: 'bizdoc-box-row',
@@ -18,10 +18,10 @@ export class CanDeactivateCompose {
18
18
  else
19
19
  return true;
20
20
  }
21
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: CanDeactivateCompose, deps: [{ token: i1.PromptService }], target: i0.ɵɵFactoryTarget.Injectable }); }
22
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: CanDeactivateCompose }); }
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CanDeactivateCompose, deps: [{ token: i1.PromptService }], target: i0.ɵɵFactoryTarget.Injectable }); }
22
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CanDeactivateCompose }); }
23
23
  }
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: CanDeactivateCompose, decorators: [{
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CanDeactivateCompose, decorators: [{
25
25
  type: Injectable
26
26
  }], ctorParameters: () => [{ type: i1.PromptService }] });
27
27
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FuLWRlYWN0aXZhdGUtY2hhbmdlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb21wb3NlL2Nhbi1kZWFjdGl2YXRlLWNoYW5nZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFHM0MsTUFBTSxPQUFPLG9CQUFvQjtJQUMvQixZQUFvQixHQUFrQjtRQUFsQixRQUFHLEdBQUgsR0FBRyxDQUFlO0lBQ3RDLENBQUM7SUFDRCxhQUFhLENBQUMsU0FBaUM7UUFDN0MsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUs7WUFDdEIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFO2dCQUN2SSxJQUFJLEVBQUU7b0JBQ0osT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDOztvQkFFN0IsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEIsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7WUFDRCxPQUFPLElBQUksQ0FBQztJQUNuQixDQUFDOzhHQVpVLG9CQUFvQjtrSEFBcEIsb0JBQW9COzsyRkFBcEIsb0JBQW9CO2tCQURoQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBVcmxUcmVlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQ29tcG9zZU1vYmlsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9zZS5tb2JpbGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gJy4uL2NvcmUvcHJvbXB0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDYW5EZWFjdGl2YXRlQ29tcG9zZSB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfc2I6IFByb21wdFNlcnZpY2UpIHtcclxuICB9XHJcbiAgY2FuRGVhY3RpdmF0ZShjb21wb25lbnQ6IENvbXBvc2VNb2JpbGVDb21wb25lbnQpOiBPYnNlcnZhYmxlPGJvb2xlYW4gfCBVcmxUcmVlPiB8IFByb21pc2U8Ym9vbGVhbiB8IFVybFRyZWU+IHwgYm9vbGVhbiB8IFVybFRyZWUge1xyXG4gICAgaWYgKGNvbXBvbmVudC5mb3JtLmRpcnR5KVxyXG4gICAgICByZXR1cm4gdGhpcy5fc2IuYXNrKCdTYXZlQ2hhbmdlc0FzaycsICdTYXZlQ2hhbmdlcycsIHsgaTE4bjogdHJ1ZSwgY29sb3I6ICdwcmltYXJ5Jywgb2s6ICdTYXZlJywgY2FuY2VsOiAnSWdub3JlJyB9KS5waXBlKHN3aXRjaE1hcChvayA9PiB7XHJcbiAgICAgICAgaWYgKG9rKVxyXG4gICAgICAgICAgcmV0dXJuIGNvbXBvbmVudC5mb3JtLnNhdmUoKTtcclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICByZXR1cm4gb2YodHJ1ZSk7XHJcbiAgICAgIH0pKTtcclxuICAgIGVsc2UgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -156,10 +156,10 @@ export class CommentComponent {
156
156
  documentId: this.model.documentId
157
157
  });
158
158
  }
159
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: CommentComponent, deps: [{ token: i1.SessionService }, { token: i2.PromptService }, { token: i3.TranslateService }, { token: i4.ChatInfo }, { token: i5.AccountService }, { token: i6.Popup }, { token: i7.Overlay }, { token: i8.MailboxService }, { token: i0.ViewContainerRef }, { token: BIZDOC_CONFIG }], target: i0.ɵɵFactoryTarget.Component }); }
160
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.1", type: CommentComponent, selector: "bizdoc-comment", inputs: { model: "model", item: "item" }, outputs: { deleted: "deleted", reply: "reply" }, host: { classAttribute: "comment" }, viewQueries: [{ propertyName: "bodyElement", first: true, predicate: ["body"], descendants: true }, { propertyName: "previewTemplate", first: true, predicate: ["previewTemplate"], descendants: true }], ngImport: i0, template: "<div class=\"row\">\n <div class=\"comment-body\" #body>\n <div [innerHTML]=\"item.text|taggingHtml:item.resource\" class=\"comment-text\"></div>\n @if (item.image) {\n <img [src]=\"'data:image/png;base64,'+item.image\" alt=\"\" (click)=\"preview()\" />\n }\n </div>\n @if (me) {\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" class=\"tool\" (click)=\"$event.stopPropagation()\"><mat-icon>more_vert</mat-icon></button>\n }\n <mat-menu #menu>\n <ng-template matMenuContent>\n <button mat-menu-item (click)=\"edit()\">{{'Edit'|translate}}</button>\n <mat-divider></mat-divider>\n <button mat-menu-item (click)=\"delete()\">{{'Delete'|translate}}</button>\n </ng-template>\n </mat-menu>\n</div>\n<div class=\"row\">\n <div class=\"column\">\n <span [innerHTML]=\"name | sanitizeHtml\" (click)=\"chat($event)\"></span>\n <div>\n <small class=\"flex\" bizdocTooltip=\"{{item.edited || item.time | amCalendar }}\">{{item.edited || item.time | amTimeAgo}}</small>\n @if (item.edited) {\n &nbsp;<a (click)=\"edits()\" class=\"modification\">{{'Edited'| translate}}</a>\n }\n @if (!me) {\n &nbsp;<a (click)=\"reply.emit()\" class=\"modification\">{{'Reply'| translate}}</a>\n }\n </div>\n </div>\n @if (voting) {\n <div class=\"comment-actions\">\n @if (item.votes > 0 || item.votes < 0) {\n <a [class.score-negative]=\"item.votes < 0\" class=\"comment-score\" dir=\"ltr\" (click)=\"votes()\" [bizdocTooltip]=\"'Votes'|translate\">{{item.votes}}</a>\n }\n <button mat-icon-button (click)=\"vote(1, $event)\" [class.voted-true]=\"item.voted===1\" ><mat-icon>thumb_up_alt</mat-icon></button>\n <button mat-icon-button (click)=\"vote(-1, $event)\" [class.voted-false]=\"item.voted===-1\" ><mat-icon>thumb_down_alt</mat-icon></button>\n </div>\n }\n</div>\n<ng-template #previewTemplate>\n <img [src]=\"'data:image/png;base64,'+item.image\" alt=\"\" />\n</ng-template>\n", dependencies: [{ kind: "directive", type: i9.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "component", type: i10.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i11.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i12.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i13.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i13.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i13.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i13.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i14.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i15.CalendarPipe, name: "amCalendar" }, { kind: "pipe", type: i16.TimeAgoPipe, name: "amTimeAgo" }, { kind: "pipe", type: i17.TranslatePipe, name: "translate" }, { kind: "pipe", type: i18.SanitizeHtmlPipe, name: "sanitizeHtml" }, { kind: "pipe", type: i19.TaggingPipe, name: "taggingHtml" }] }); }
159
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CommentComponent, deps: [{ token: i1.SessionService }, { token: i2.PromptService }, { token: i3.TranslateService }, { token: i4.ChatInfo }, { token: i5.AccountService }, { token: i6.Popup }, { token: i7.Overlay }, { token: i8.MailboxService }, { token: i0.ViewContainerRef }, { token: BIZDOC_CONFIG }], target: i0.ɵɵFactoryTarget.Component }); }
160
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: CommentComponent, selector: "bizdoc-comment", inputs: { model: "model", item: "item" }, outputs: { deleted: "deleted", reply: "reply" }, host: { classAttribute: "comment" }, viewQueries: [{ propertyName: "bodyElement", first: true, predicate: ["body"], descendants: true }, { propertyName: "previewTemplate", first: true, predicate: ["previewTemplate"], descendants: true }], ngImport: i0, template: "<div class=\"row\">\n <div class=\"comment-body\" #body>\n <div [innerHTML]=\"item.text|taggingHtml:item.resource\" class=\"comment-text\"></div>\n @if (item.image) {\n <img [src]=\"'data:image/png;base64,'+item.image\" alt=\"\" (click)=\"preview()\" />\n }\n </div>\n @if (me) {\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" class=\"tool\" (click)=\"$event.stopPropagation()\"><mat-icon>more_vert</mat-icon></button>\n }\n <mat-menu #menu>\n <ng-template matMenuContent>\n <button mat-menu-item (click)=\"edit()\">{{'Edit'|translate}}</button>\n <mat-divider></mat-divider>\n <button mat-menu-item (click)=\"delete()\">{{'Delete'|translate}}</button>\n </ng-template>\n </mat-menu>\n</div>\n<div class=\"row\">\n <div class=\"column\">\n <span [innerHTML]=\"name | sanitizeHtml\" (click)=\"chat($event)\"></span>\n <div>\n <small class=\"flex\" bizdocTooltip=\"{{item.edited || item.time | amCalendar }}\">{{item.edited || item.time | amTimeAgo}}</small>\n @if (item.edited) {\n &nbsp;<a (click)=\"edits()\" class=\"modification\">{{'Edited'| translate}}</a>\n }\n @if (!me) {\n &nbsp;<a (click)=\"reply.emit()\" class=\"modification\">{{'Reply'| translate}}</a>\n }\n </div>\n </div>\n @if (voting) {\n <div class=\"comment-actions\">\n @if (item.votes > 0 || item.votes < 0) {\n <a [class.score-negative]=\"item.votes < 0\" class=\"comment-score\" dir=\"ltr\" (click)=\"votes()\" [bizdocTooltip]=\"'Votes'|translate\">{{item.votes}}</a>\n }\n <button mat-icon-button (click)=\"vote(1, $event)\" [class.voted-true]=\"item.voted===1\" ><mat-icon>thumb_up_alt</mat-icon></button>\n <button mat-icon-button (click)=\"vote(-1, $event)\" [class.voted-false]=\"item.voted===-1\" ><mat-icon>thumb_down_alt</mat-icon></button>\n </div>\n }\n</div>\n<ng-template #previewTemplate>\n <img [src]=\"'data:image/png;base64,'+item.image\" alt=\"\" />\n</ng-template>\n", dependencies: [{ kind: "directive", type: i9.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "component", type: i10.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i11.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i12.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i13.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i13.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i13.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i13.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i14.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i15.CalendarPipe, name: "amCalendar" }, { kind: "pipe", type: i16.TimeAgoPipe, name: "amTimeAgo" }, { kind: "pipe", type: i17.TranslatePipe, name: "translate" }, { kind: "pipe", type: i18.SanitizeHtmlPipe, name: "sanitizeHtml" }, { kind: "pipe", type: i19.TaggingPipe, name: "taggingHtml" }] }); }
161
161
  }
162
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: CommentComponent, decorators: [{
162
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CommentComponent, decorators: [{
163
163
  type: Component,
164
164
  args: [{ selector: 'bizdoc-comment', host: {
165
165
  class: 'comment'
@@ -202,10 +202,10 @@ export class CommentsComponent {
202
202
  this.input.text && this.input.text.length &&
203
203
  window.localStorage.setItem(id, this.input.text);
204
204
  }
205
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: CommentsComponent, deps: [{ token: i1.AccountService }, { token: i2.SessionService }, { token: i3.PromptService }, { token: i4.TranslateService }, { token: i5.ChatInfo }, { token: i6.MailboxService }, { token: i7.HubService }, { token: BIZDOC_CONFIG }], target: i0.ɵɵFactoryTarget.Component }); }
206
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.1", type: CommentsComponent, selector: "bizdoc-comments", inputs: { model: "model" }, outputs: { change: "change" }, host: { classAttribute: "comments" }, viewQueries: [{ propertyName: "threadElement", first: true, predicate: ["thread"], descendants: true, read: ElementRef, static: true }, { propertyName: "input", first: true, predicate: EditInputComponent, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "@if (!model.comments.length) {\n <bizdoc-none icon=\"format_quote\"></bizdoc-none>\n}\n\n<div class=\"column\" #thread (scroll)=\"onScroll($event)\" class=\"comments-thread\">\n @for (c of model.comments; track trackBy($index, c)) {\n <ng-container role=\"listitem\">\n @if (!c.deleted || showDeleted) {\n <bizdoc-comment\n [model]=\"model\"\n [item]=\"c\"\n (reply)=\"reply(c)\"\n (deleted)=\"deleted(c)\">\n </bizdoc-comment>\n } @else {\n <a (click)=\"showDeleted = true\" class=\"comment-deleted\">{{'Deleted' | translate}}</a>\n }\n </ng-container>\n }\n</div>\n\n<div class=\"comments-typing\" [style.visibility]=\"typing ? 'visible': 'hidden'\">{{'Typing' | translate : typing}}</div>\n\n@if (replyName) {\n <div class=\"comments-reply\">\n <span [innerHTML]=\"replyName | sanitizeHtml\" (click)=\"chat($event)\"></span>\n &nbsp; <a class=\"modification\" (click)=\"clearReply()\">{{'Cancel'|translate}}</a>\n </div>\n}\n\n<bizdoc-edit-text (ok)=\"post($event)\" (change)=\"_textChange.next()\"\n [disabled]=\"sending\" (focus)=\"onFocus()\" (blur)=\"onBlur()\">\n</bizdoc-edit-text>\n\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;height:100%}.comments-thread{flex:1 1 auto;overflow:auto;padding:8px 12px 0}.comment-deleted{align-self:center;font-variant:all-small-caps}.comments-typing,.comments-reply{font-size:12px;padding:0 8px}.comments-reply .modification{font-size:medium}.modification{font-variant:all-small-caps}\n"], dependencies: [{ kind: "component", type: i8.EditInputComponent, selector: "bizdoc-edit-text", inputs: ["placeholder", "text", "image", "resource", "disabled", "autofocus", "cache"], outputs: ["change", "ok", "focus", "blur"] }, { kind: "component", type: i9.NoneComponent, selector: "bizdoc-none", inputs: ["title", "subtitle", "icon"] }, { kind: "component", type: i10.CommentComponent, selector: "bizdoc-comment", inputs: ["model", "item"], outputs: ["deleted", "reply"] }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }, { kind: "pipe", type: i12.SanitizeHtmlPipe, name: "sanitizeHtml" }] }); }
205
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CommentsComponent, deps: [{ token: i1.AccountService }, { token: i2.SessionService }, { token: i3.PromptService }, { token: i4.TranslateService }, { token: i5.ChatInfo }, { token: i6.MailboxService }, { token: i7.HubService }, { token: BIZDOC_CONFIG }], target: i0.ɵɵFactoryTarget.Component }); }
206
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: CommentsComponent, selector: "bizdoc-comments", inputs: { model: "model" }, outputs: { change: "change" }, host: { classAttribute: "comments" }, viewQueries: [{ propertyName: "threadElement", first: true, predicate: ["thread"], descendants: true, read: ElementRef, static: true }, { propertyName: "input", first: true, predicate: EditInputComponent, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "@if (!model.comments.length) {\n <bizdoc-none icon=\"format_quote\"></bizdoc-none>\n}\n\n<div class=\"column\" #thread (scroll)=\"onScroll($event)\" class=\"comments-thread\">\n @for (c of model.comments; track trackBy($index, c)) {\n <ng-container role=\"listitem\">\n @if (!c.deleted || showDeleted) {\n <bizdoc-comment\n [model]=\"model\"\n [item]=\"c\"\n (reply)=\"reply(c)\"\n (deleted)=\"deleted(c)\">\n </bizdoc-comment>\n } @else {\n <a (click)=\"showDeleted = true\" class=\"comment-deleted\">{{'Deleted' | translate}}</a>\n }\n </ng-container>\n }\n</div>\n\n<div class=\"comments-typing\" [style.visibility]=\"typing ? 'visible': 'hidden'\">{{'Typing' | translate : typing}}</div>\n\n@if (replyName) {\n <div class=\"comments-reply\">\n <span [innerHTML]=\"replyName | sanitizeHtml\" (click)=\"chat($event)\"></span>\n &nbsp; <a class=\"modification\" (click)=\"clearReply()\">{{'Cancel'|translate}}</a>\n </div>\n}\n\n<bizdoc-edit-text (ok)=\"post($event)\" (change)=\"_textChange.next()\"\n [disabled]=\"sending\" (focus)=\"onFocus()\" (blur)=\"onBlur()\">\n</bizdoc-edit-text>\n\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;height:100%}.comments-thread{flex:1 1 auto;overflow:auto;padding:8px 12px 0}.comment-deleted{align-self:center;font-variant:all-small-caps}.comments-typing,.comments-reply{font-size:12px;padding:0 8px}.comments-reply .modification{font-size:medium}.modification{font-variant:all-small-caps}\n"], dependencies: [{ kind: "component", type: i8.EditInputComponent, selector: "bizdoc-edit-text", inputs: ["placeholder", "text", "image", "resource", "disabled", "autofocus", "cache"], outputs: ["change", "ok", "focus", "blur"] }, { kind: "component", type: i9.NoneComponent, selector: "bizdoc-none", inputs: ["title", "subtitle", "icon"] }, { kind: "component", type: i10.CommentComponent, selector: "bizdoc-comment", inputs: ["model", "item"], outputs: ["deleted", "reply"] }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }, { kind: "pipe", type: i12.SanitizeHtmlPipe, name: "sanitizeHtml" }] }); }
207
207
  }
208
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: CommentsComponent, decorators: [{
208
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CommentsComponent, decorators: [{
209
209
  type: Component,
210
210
  args: [{ selector: 'bizdoc-comments', host: {
211
211
  class: 'comments'
@@ -27,10 +27,10 @@ export class CommentsPaneComponent {
27
27
  this._destroy.next();
28
28
  this._destroy.complete();
29
29
  }
30
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: CommentsPaneComponent, deps: [{ token: i1.TranslateService }, { token: i2.PaneRef }], target: i0.ɵɵFactoryTarget.Component }); }
31
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: CommentsPaneComponent, selector: "ng-component", host: { classAttribute: "pane" }, viewQueries: [{ propertyName: "_comments", first: true, predicate: CommentsComponent, descendants: true, static: true }], ngImport: i0, template: `<bizdoc-comments [model]=model></bizdoc-comments>`, isInline: true, styles: [":host{min-width:320px}\n"], dependencies: [{ kind: "component", type: i3.CommentsComponent, selector: "bizdoc-comments", inputs: ["model"], outputs: ["change"] }] }); }
30
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CommentsPaneComponent, deps: [{ token: i1.TranslateService }, { token: i2.PaneRef }], target: i0.ɵɵFactoryTarget.Component }); }
31
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: CommentsPaneComponent, selector: "ng-component", host: { classAttribute: "pane" }, viewQueries: [{ propertyName: "_comments", first: true, predicate: CommentsComponent, descendants: true, static: true }], ngImport: i0, template: `<bizdoc-comments [model]=model></bizdoc-comments>`, isInline: true, styles: [":host{min-width:320px}\n"], dependencies: [{ kind: "component", type: i3.CommentsComponent, selector: "bizdoc-comments", inputs: ["model"], outputs: ["change"] }] }); }
32
32
  }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: CommentsPaneComponent, decorators: [{
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CommentsPaneComponent, decorators: [{
34
34
  type: Component,
35
35
  args: [{ template: `<bizdoc-comments [model]=model></bizdoc-comments>`, host: {
36
36
  class: 'pane'
@@ -19,10 +19,10 @@ export class EditCommentComponent {
19
19
  this._sb.error();
20
20
  });
21
21
  }
22
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: EditCommentComponent, deps: [{ token: i1.PopupRef }, { token: POPUP_DATA }, { token: i2.PromptService }, { token: i3.MailboxService }], target: i0.ɵɵFactoryTarget.Component }); }
23
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: EditCommentComponent, selector: "bizdoc-edit-comment", ngImport: i0, template: "<bizdoc-edit-text (ok)=\"ok($event)\"\r\n [resource]=\"data.resource\" [text]=\"data.text\" [image]=\"data.image\"\r\n [disabled]=\"sending\" autofocus></bizdoc-edit-text>\r\n", dependencies: [{ kind: "component", type: i4.EditInputComponent, selector: "bizdoc-edit-text", inputs: ["placeholder", "text", "image", "resource", "disabled", "autofocus", "cache"], outputs: ["change", "ok", "focus", "blur"] }] }); }
22
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: EditCommentComponent, deps: [{ token: i1.PopupRef }, { token: POPUP_DATA }, { token: i2.PromptService }, { token: i3.MailboxService }], target: i0.ɵɵFactoryTarget.Component }); }
23
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: EditCommentComponent, selector: "bizdoc-edit-comment", ngImport: i0, template: "<bizdoc-edit-text (ok)=\"ok($event)\"\r\n [resource]=\"data.resource\" [text]=\"data.text\" [image]=\"data.image\"\r\n [disabled]=\"sending\" autofocus></bizdoc-edit-text>\r\n", dependencies: [{ kind: "component", type: i4.EditInputComponent, selector: "bizdoc-edit-text", inputs: ["placeholder", "text", "image", "resource", "disabled", "autofocus", "cache"], outputs: ["change", "ok", "focus", "blur"] }] }); }
24
24
  }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: EditCommentComponent, decorators: [{
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: EditCommentComponent, decorators: [{
26
26
  type: Component,
27
27
  args: [{ selector: 'bizdoc-edit-comment', template: "<bizdoc-edit-text (ok)=\"ok($event)\"\r\n [resource]=\"data.resource\" [text]=\"data.text\" [image]=\"data.image\"\r\n [disabled]=\"sending\" autofocus></bizdoc-edit-text>\r\n" }]
28
28
  }], ctorParameters: () => [{ type: i1.PopupRef }, { type: undefined, decorators: [{
@@ -17,10 +17,10 @@ export class CommentEditsComponent {
17
17
  ngOnInit() {
18
18
  this.versions = this._mailbox.edits(this._data.documentId, this._data.id);
19
19
  }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: CommentEditsComponent, deps: [{ token: POPUP_DATA }, { token: i1.MailboxService }], target: i0.ɵɵFactoryTarget.Component }); }
21
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.1", type: CommentEditsComponent, selector: "bizdoc-comment-edits", ngImport: i0, template: "<span class=\"mat-h2\">{{'History' | translate}}</span>\n\n@for (v of versions | async; track v) {\n <div class=\"comment\">\n <p [innerHTML]=\"v.text|taggingHtml:resource\"></p>\n @if (v.byId || byId) {\n <bizdoc-identity-name class=\"mat-body\" [identity]=\"v.userId\" [by]=\"v.byId\"></bizdoc-identity-name>\n }\n <small>{{v.time | amCalendar}}</small>\n </div>\n}\n", styles: [":host{padding:8px}\n"], dependencies: [{ kind: "component", type: i2.IdentityName, selector: "bizdoc-identity-name", inputs: ["identity", "by", "chating"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.CalendarPipe, name: "amCalendar" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "pipe", type: i6.TaggingPipe, name: "taggingHtml" }] }); }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CommentEditsComponent, deps: [{ token: POPUP_DATA }, { token: i1.MailboxService }], target: i0.ɵɵFactoryTarget.Component }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: CommentEditsComponent, selector: "bizdoc-comment-edits", ngImport: i0, template: "<span class=\"mat-h2\">{{'History' | translate}}</span>\n\n@for (v of versions | async; track v) {\n <div class=\"comment\">\n <p [innerHTML]=\"v.text|taggingHtml:resource\"></p>\n @if (v.byId || byId) {\n <bizdoc-identity-name class=\"mat-body\" [identity]=\"v.userId\" [by]=\"v.byId\"></bizdoc-identity-name>\n }\n <small>{{v.time | amCalendar}}</small>\n </div>\n}\n", styles: [":host{padding:8px}\n"], dependencies: [{ kind: "component", type: i2.IdentityName, selector: "bizdoc-identity-name", inputs: ["identity", "by", "chating"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.CalendarPipe, name: "amCalendar" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "pipe", type: i6.TaggingPipe, name: "taggingHtml" }] }); }
22
22
  }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: CommentEditsComponent, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CommentEditsComponent, decorators: [{
24
24
  type: Component,
25
25
  args: [{ selector: 'bizdoc-comment-edits', template: "<span class=\"mat-h2\">{{'History' | translate}}</span>\n\n@for (v of versions | async; track v) {\n <div class=\"comment\">\n <p [innerHTML]=\"v.text|taggingHtml:resource\"></p>\n @if (v.byId || byId) {\n <bizdoc-identity-name class=\"mat-body\" [identity]=\"v.userId\" [by]=\"v.byId\"></bizdoc-identity-name>\n }\n <small>{{v.time | amCalendar}}</small>\n </div>\n}\n", styles: [":host{padding:8px}\n"] }]
26
26
  }], ctorParameters: () => [{ type: undefined, decorators: [{
@@ -51,10 +51,10 @@ export class QuickCommentComponent {
51
51
  this._destroy.next();
52
52
  this._destroy.complete();
53
53
  }
54
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: QuickCommentComponent, deps: [{ token: DOCUMENT_MODEL }, { token: i1.AccountService }, { token: i2.MailboxService }, { token: i3.HubService }, { token: i4.PromptService }], target: i0.ɵɵFactoryTarget.Component }); }
55
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.1", type: QuickCommentComponent, selector: "bizdoc-quick-comment", ngImport: i0, template: "<div class=\"comments-typing\" [style.visibility]=\"typing ? 'visible': 'hidden'\">{{'Typing' | translate : typing}}</div>\n<bizdoc-edit-text (ok)=\"post($event)\" (change)=\"_textChange.next()\"\n [disabled]=\"sending\" [placeholder]=\"''\">\n</bizdoc-edit-text>\n@if (model.comments.length) {\n <div>{{(model.comments.length === 1 ? 'OneComment' : 'CommentsCount') | translate: model.comments.length}}</div>\n}\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}.comments-typing{font-size:12px;padding:0 8px}\n"], dependencies: [{ kind: "component", type: i5.EditInputComponent, selector: "bizdoc-edit-text", inputs: ["placeholder", "text", "image", "resource", "disabled", "autofocus", "cache"], outputs: ["change", "ok", "focus", "blur"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
54
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: QuickCommentComponent, deps: [{ token: DOCUMENT_MODEL }, { token: i1.AccountService }, { token: i2.MailboxService }, { token: i3.HubService }, { token: i4.PromptService }], target: i0.ɵɵFactoryTarget.Component }); }
55
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: QuickCommentComponent, selector: "bizdoc-quick-comment", ngImport: i0, template: "<div class=\"comments-typing\" [style.visibility]=\"typing ? 'visible': 'hidden'\">{{'Typing' | translate : typing}}</div>\n<bizdoc-edit-text (ok)=\"post($event)\" (change)=\"_textChange.next()\"\n [disabled]=\"sending\" [placeholder]=\"''\">\n</bizdoc-edit-text>\n@if (model.comments.length) {\n <div>{{(model.comments.length === 1 ? 'OneComment' : 'CommentsCount') | translate: model.comments.length}}</div>\n}\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}.comments-typing{font-size:12px;padding:0 8px}\n"], dependencies: [{ kind: "component", type: i5.EditInputComponent, selector: "bizdoc-edit-text", inputs: ["placeholder", "text", "image", "resource", "disabled", "autofocus", "cache"], outputs: ["change", "ok", "focus", "blur"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
56
56
  }
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: QuickCommentComponent, decorators: [{
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: QuickCommentComponent, decorators: [{
58
58
  type: Component,
59
59
  args: [{ selector: 'bizdoc-quick-comment', template: "<div class=\"comments-typing\" [style.visibility]=\"typing ? 'visible': 'hidden'\">{{'Typing' | translate : typing}}</div>\n<bizdoc-edit-text (ok)=\"post($event)\" (change)=\"_textChange.next()\"\n [disabled]=\"sending\" [placeholder]=\"''\">\n</bizdoc-edit-text>\n@if (model.comments.length) {\n <div>{{(model.comments.length === 1 ? 'OneComment' : 'CommentsCount') | translate: model.comments.length}}</div>\n}\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}.comments-typing{font-size:12px;padding:0 8px}\n"] }]
60
60
  }], ctorParameters: () => [{ type: undefined, decorators: [{
@@ -29,10 +29,10 @@ export class CommentLikesComponent {
29
29
  this._destroy.next();
30
30
  this._destroy.complete();
31
31
  }
32
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: CommentLikesComponent, deps: [{ token: POPUP_DATA }, { token: i1.MailboxService }, { token: i2.HubService }], target: i0.ɵɵFactoryTarget.Component }); }
33
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.1", type: CommentLikesComponent, selector: "bizdoc-comment-votes", ngImport: i0, template: "<span class=\"mat-h2\">{{'Votes' | translate}}</span>\n@for (v of votes | async; track v) {\n <div class=\"vote\">\n <bizdoc-identity-name class=\"mat-body\" [identity]=\"v.userId\" [by]=\"v.byId\"></bizdoc-identity-name>\n <button mat-icon-button><mat-icon>{{v.voted === 1 ? 'thumb_up_alt' : 'thumb_down_alt'}}</mat-icon></button>\n <br />\n <small bizdocTooltip=\"{{v.time | amCalendar }}\">{{v.time | amTimeAgo}}</small>\n </div>\n}\n", styles: [":host{padding:8px}\n"], dependencies: [{ kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.IdentityName, selector: "bizdoc-identity-name", inputs: ["identity", "by", "chating"] }, { kind: "directive", type: i6.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.CalendarPipe, name: "amCalendar" }, { kind: "pipe", type: i9.TimeAgoPipe, name: "amTimeAgo" }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }] }); }
32
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CommentLikesComponent, deps: [{ token: POPUP_DATA }, { token: i1.MailboxService }, { token: i2.HubService }], target: i0.ɵɵFactoryTarget.Component }); }
33
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: CommentLikesComponent, selector: "bizdoc-comment-votes", ngImport: i0, template: "<span class=\"mat-h2\">{{'Votes' | translate}}</span>\n@for (v of votes | async; track v) {\n <div class=\"vote\">\n <bizdoc-identity-name class=\"mat-body\" [identity]=\"v.userId\" [by]=\"v.byId\"></bizdoc-identity-name>\n <button mat-icon-button><mat-icon>{{v.voted === 1 ? 'thumb_up_alt' : 'thumb_down_alt'}}</mat-icon></button>\n <br />\n <small bizdocTooltip=\"{{v.time | amCalendar }}\">{{v.time | amTimeAgo}}</small>\n </div>\n}\n", styles: [":host{padding:8px}\n"], dependencies: [{ kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.IdentityName, selector: "bizdoc-identity-name", inputs: ["identity", "by", "chating"] }, { kind: "directive", type: i6.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.CalendarPipe, name: "amCalendar" }, { kind: "pipe", type: i9.TimeAgoPipe, name: "amTimeAgo" }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }] }); }
34
34
  }
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: CommentLikesComponent, decorators: [{
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CommentLikesComponent, decorators: [{
36
36
  type: Component,
37
37
  args: [{ selector: 'bizdoc-comment-votes', template: "<span class=\"mat-h2\">{{'Votes' | translate}}</span>\n@for (v of votes | async; track v) {\n <div class=\"vote\">\n <bizdoc-identity-name class=\"mat-body\" [identity]=\"v.userId\" [by]=\"v.byId\"></bizdoc-identity-name>\n <button mat-icon-button><mat-icon>{{v.voted === 1 ? 'thumb_up_alt' : 'thumb_down_alt'}}</mat-icon></button>\n <br />\n <small bizdocTooltip=\"{{v.time | amCalendar }}\">{{v.time | amTimeAgo}}</small>\n </div>\n}\n", styles: [":host{padding:8px}\n"] }]
38
38
  }], ctorParameters: () => [{ type: undefined, decorators: [{
@@ -25,10 +25,10 @@ export class RecipientResolveService {
25
25
  throw new Error();
26
26
  }));
27
27
  }
28
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: RecipientResolveService, deps: [{ token: i1.MailboxService }, { token: i2.PromptService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
29
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: RecipientResolveService }); }
28
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: RecipientResolveService, deps: [{ token: i1.MailboxService }, { token: i2.PromptService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
29
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: RecipientResolveService }); }
30
30
  }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: RecipientResolveService, decorators: [{
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: RecipientResolveService, decorators: [{
32
32
  type: Injectable
33
33
  }], ctorParameters: () => [{ type: i1.MailboxService }, { type: i2.PromptService }, { type: i3.Router }] });
34
34
  /** */
@@ -51,10 +51,10 @@ export class DocumentResolveService {
51
51
  throw new Error();
52
52
  }));
53
53
  }
54
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: DocumentResolveService, deps: [{ token: i1.MailboxService }, { token: i2.PromptService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
55
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: DocumentResolveService }); }
54
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: DocumentResolveService, deps: [{ token: i1.MailboxService }, { token: i2.PromptService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
55
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: DocumentResolveService }); }
56
56
  }
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: DocumentResolveService, decorators: [{
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: DocumentResolveService, decorators: [{
58
58
  type: Injectable
59
59
  }], ctorParameters: () => [{ type: i1.MailboxService }, { type: i2.PromptService }, { type: i3.Router }] });
60
60
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9zZS1yZXNvbHZlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvbXBvc2UvY29tcG9zZS1yZXNvbHZlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsVUFBVSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7QUFJbEQ7cUNBQ3FDO0FBRXJDLE1BQU0sT0FBTyx1QkFBdUI7SUFDbEMsWUFBb0IsUUFBd0IsRUFBVSxHQUFrQixFQUFVLE9BQWU7UUFBN0UsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFlO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBUTtJQUVqRyxDQUFDO0lBQ0QsT0FBTyxDQUFDLEtBQTZCO1FBQ25DLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUNoRCxJQUFJLEdBQUcsQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNuQyxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN0QyxJQUFJLElBQUk7Z0JBQ04sT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEIsQ0FBQztRQUNELE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQy9DLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDaEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtZQUNoQixNQUFNLElBQUksS0FBSyxFQUFFLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7OEdBaEJVLHVCQUF1QjtrSEFBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVOztBQW1CWCxNQUFNO0FBRU4sTUFBTSxPQUFPLHNCQUFzQjtJQUNqQyxZQUFvQixRQUF3QixFQUFVLEdBQWtCLEVBQVUsT0FBZTtRQUE3RSxhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQUFVLFFBQUcsR0FBSCxHQUFHLENBQWU7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFRO0lBRWpHLENBQUM7SUFDRCxPQUFPLENBQUMsS0FBNkI7UUFDbkMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQ2pELElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3JDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZDLElBQUksSUFBSTtnQkFDTixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQixDQUFDO1FBQ0QsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDL0MsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNqRCxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUNwQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQzs4R0FoQlUsc0JBQXNCO2tIQUF0QixzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IERvY3VtZW50TW9kZWwsIFJlY2lwaWVudE1vZGVsIH0gZnJvbSAnLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBNYWlsYm94U2VydmljZSB9IGZyb20gJy4uL2NvcmUvbWFpbGJveC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gJy4uL2NvcmUvcHJvbXB0LnNlcnZpY2UnO1xyXG4vKipcclxuICogZ2V0IG1vZGVsIGJlZm9yZSByb3V0ZSBuYXZpZ2F0ZSAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBSZWNpcGllbnRSZXNvbHZlU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfbWFpbGJveDogTWFpbGJveFNlcnZpY2UsIHByaXZhdGUgX3NiOiBQcm9tcHRTZXJ2aWNlLCBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlcikge1xyXG5cclxuICB9XHJcbiAgcmVzb2x2ZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IE9ic2VydmFibGU8dm9pZCB8IFJlY2lwaWVudE1vZGVsPGFueT4+IHtcclxuICAgIGNvbnN0IG5hdiA9IHRoaXMuX3JvdXRlci5nZXRDdXJyZW50TmF2aWdhdGlvbigpO1xyXG4gICAgaWYgKG5hdi5leHRyYXMgJiYgbmF2LmV4dHJhcy5zdGF0ZSkge1xyXG4gICAgICBjb25zdCBpdGVtID0gbmF2LmV4dHJhcy5zdGF0ZVsnaXRlbSddO1xyXG4gICAgICBpZiAoaXRlbSlcclxuICAgICAgICByZXR1cm4gb2YoaXRlbSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBpZCA9IHJvdXRlLnBhcmFtTWFwLmdldCgnaWQnKS5kZWNvZGVJZCgpO1xyXG4gICAgcmV0dXJuIHRoaXMuX21haWxib3guZ2V0KGlkKS5waXBlKGNhdGNoRXJyb3IoKCkgPT4ge1xyXG4gICAgICB0aGlzLl9zYi5lcnJvcigpXHJcbiAgICAgIHRocm93IG5ldyBFcnJvcigpO1xyXG4gICAgfSkpO1xyXG4gIH1cclxufVxyXG4vKiogKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRSZXNvbHZlU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfbWFpbGJveDogTWFpbGJveFNlcnZpY2UsIHByaXZhdGUgX3NiOiBQcm9tcHRTZXJ2aWNlLCBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlcikge1xyXG5cclxuICB9XHJcbiAgcmVzb2x2ZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IE9ic2VydmFibGU8dm9pZCB8IERvY3VtZW50TW9kZWw8YW55Pj4ge1xyXG4gICAgY29uc3QgZGF0YSA9IHRoaXMuX3JvdXRlci5nZXRDdXJyZW50TmF2aWdhdGlvbigpO1xyXG4gICAgaWYgKGRhdGEuZXh0cmFzICYmIGRhdGEuZXh0cmFzLnN0YXRlKSB7XHJcbiAgICAgIGNvbnN0IGl0ZW0gPSBkYXRhLmV4dHJhcy5zdGF0ZVsnaXRlbSddO1xyXG4gICAgICBpZiAoaXRlbSlcclxuICAgICAgICByZXR1cm4gb2YoaXRlbSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBpZCA9IHJvdXRlLnBhcmFtTWFwLmdldCgnaWQnKS5kZWNvZGVJZCgpO1xyXG4gICAgcmV0dXJuIHRoaXMuX21haWxib3guaW5mbyhpZCkucGlwZShjYXRjaEVycm9yKCgpID0+IHtcclxuICAgICAgdGhpcy5fc2IuZXJyb3IoKTtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCk7XHJcbiAgICB9KSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { Component, ViewChild, Inject } from '@angular/core';
1
+ import { Component, ViewChild } from '@angular/core';
2
2
  import { MatSidenav } from '@angular/material/sidenav';
3
3
  import { Subject } from 'rxjs';
4
4
  import { takeUntil } from 'rxjs/operators';
@@ -6,7 +6,6 @@ import { INBOX } from '../core/models';
6
6
  import { CommentsComponent } from './comments/comments.component';
7
7
  import { ComposeFormComponent } from './form.component';
8
8
  import { isMobile } from '../core/functions';
9
- import { BIZDOC_CONFIG } from '../core/configuration';
10
9
  import * as i0 from "@angular/core";
11
10
  import * as i1 from "../core/window-title.service";
12
11
  import * as i2 from "../core/session.service";
@@ -27,7 +26,7 @@ import * as i16 from "../core/pipes/translate.pipe";
27
26
  /** compose component responsible for editing a form */
28
27
  export class ComposeMobileComponent {
29
28
  /** compose ctor */
30
- constructor(_title, _session, _router, _route, config) {
29
+ constructor(_title, _session, _router, _route) {
31
30
  this._title = _title;
32
31
  this._session = _session;
33
32
  this._router = _router;
@@ -89,16 +88,13 @@ export class ComposeMobileComponent {
89
88
  this._destroy.next();
90
89
  this._destroy.complete();
91
90
  }
92
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: ComposeMobileComponent, deps: [{ token: i1.WindowTitleService }, { token: i2.SessionService }, { token: i3.Router }, { token: i3.ActivatedRoute }, { token: BIZDOC_CONFIG }], target: i0.ɵɵFactoryTarget.Component }); }
93
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.1", type: ComposeMobileComponent, selector: "ng-component", viewQueries: [{ propertyName: "form", first: true, predicate: ComposeFormComponent, descendants: true, static: true }, { propertyName: "comments", first: true, predicate: CommentsComponent, descendants: true }, { propertyName: "drawer", first: true, predicate: MatSidenav, descendants: true, static: true }], ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\n @if (form.page !== undefined) {\n <button mat-icon-button color=\"primary\" (click)=\"form.back()\" [bizdocTooltip]=\"'Back'|translate\" tabindex=\"1\">\n <mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon>\n </button>\n }\n @if (model.draft) {\n <button mat-icon-button color=\"primary\" data-help=\"submit\"\n (click)=\"submit()\" [disabled]=\"!valid||working\" [bizdocTooltip]=\"'Submit' | translate\">\n <mat-icon class=\"mat-icon-rtl-mirror\">send</mat-icon>\n </button>\n }\n @if (form.actions.length === 1) {\n <button mat-icon-button color=\"primary\" [attr.data-help]=\"'action-'+form.actions[0].name\" (click)=\"send(model.actions[0])\" [disabled]=\"!valid||working\" [bizdocTooltip]=\"form.actions[0].title\">\n <mat-icon class=\"mat-icon-rtl-mirror\">{{form.actions[0].icon || 'send'}}</mat-icon>\n </button>\n }\n @if (form.actions.length > 1) {\n <button mat-icon-button data-help=\"send\" color=\"primary\" [matMenuTriggerFor]=\"actionmenu\" [disabled]=\"!valid||working\" [bizdocTooltip]=\"'Send' | translate\">\n <mat-icon class=\"mat-icon-rtl-mirror\">send</mat-icon>\n </button>\n }\n <!-- action -->\n <mat-menu #actionmenu>\n @for (a of form.actions | sort : 'group'; track a; let i = $index) {\n @if (i>0 && form.actions[i-1].group !== a.group) {\n <mat-divider></mat-divider>\n }\n <button mat-menu-item (click)=\"send(a.name)\">{{a.title}}</button>\n }\n </mat-menu>\n @if (mode === 'compose') {\n <button mat-icon-button (click)=\"form.save().subscribe()\" data-help=\"save\" [disabled]=\"!dirty||working\" [bizdocTooltip]=\"(model.draft ? 'SaveDraft' : 'Save') | translate\">\n <mat-icon>save</mat-icon>\n </button>\n }\n <button mat-icon-button data-help=\"tag\" (click)=\"form.tag($event)\" [bizdocTooltip]=\"'Tags' | translate\" [disabled]=\"working\"><mat-icon class=\"filled\">{{model.tags && model.tags.length ?'bookmark':'bookmark_border'}}</mat-icon></button>\n <button mat-icon-button data-help=\"flag\" [bizdocTooltip]=\"'Flagged'| translate\" [disabled]=\"working\" (click)=\"form.flag()\"><mat-icon class=\"filled\">{{model.flag ? 'star' : 'star_border'}}</mat-icon></button>\n <button mat-icon-button (click)=\"form.attach()\" data-help=\"attach\" [bizdocTooltip]=\"'AttachFile' | translate\" [disabled]=\"working\"><mat-icon>attach_file</mat-icon></button>\n @if (mode !== 'compose' && !model.completed && model.pending) {\n <button mat-icon-button [disabled]=\"working\" data-help=\"edit\" (click)=\"edit()\" [bizdocTooltip]=\"'Edit' | translate\"><mat-icon>create</mat-icon></button>\n }\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"toggle('comments')\" data-help=\"comments\" [bizdocTooltip]=\"'Comments' | translate\" [matBadge]=\"newCommentsCount\" [matBadgeHidden]=\"!newCommentsCount\" matBadgeColor=\"accent\">\n <mat-icon class=\"filled\">format_quote</mat-icon>\n </button>\n @if (enableAnalysis) {\n <button mat-icon-button (click)=\"toggle('views')\" [bizdocTooltip]=\"'View' | translate\" [attr.aria-label]=\"'View' | translate\" class=\"tool\"><mat-icon>data_usage</mat-icon></button>\n }\n <button mat-icon-button [matMenuTriggerFor]=\"optionsMenu\" [bizdocTooltip]=\"'Options' | translate\" [attr.aria-label]=\"'Options' | translate\"><mat-icon>more_vert</mat-icon></button>\n <mat-menu #optionsMenu=\"matMenu\">\n <ng-template matMenuContent>\n <button mat-menu-item (click)=\"form.copy()\" [disabled]=\"working\">\n <!--<mat-icon>content_copy</mat-icon>-->\n <span>{{'Copy' | translate}}</span>\n </button>\n @if (model.draft && !model.issued) {\n <button mat-menu-item (click)=\"discard()\" [disabled]=\"working\">\n <!--<mat-icon>delete_outlined</mat-icon>-->\n <span>{{'Discard' | translate}}</span>\n </button>\n }\n @if (form.help) {\n <mat-divider></mat-divider>\n <button mat-menu-item (click)=\"form.guide(form.help)\">\n <!--<mat-icon>help_outline</mat-icon>-->\n <span>{{'Help' | translate}}</span>\n </button>\n }\n </ng-template>\n </mat-menu>\n</mat-toolbar>\n<mat-sidenav-container class=\"page-container\">\n <mat-sidenav-content>\n <bizdoc-form [model]=model #form (validChange)=\"valid=$event\"\n (workingChange)=\"working=$event\"\n (dirtyChange)=\"dirty=$event\" [mode]=\"mode\"></bizdoc-form>\n </mat-sidenav-content>\n <mat-sidenav mode=\"over\" position=\"end\" [opened]=\"false\" #drawer autoFocus=\"false\" class=\"side-nav\">\n @switch (viewMode) {\n @case ('views') {\n <bizdoc-document-views [model]=\"model\"></bizdoc-document-views>\n }\n @default {\n <bizdoc-comments [model]=\"model\"></bizdoc-comments>\n }\n }\n </mat-sidenav>\n</mat-sidenav-container>\n", styles: [".page-container ::ng-deep form{padding:6px}.side-nav{min-width:280px}\n"], dependencies: [{ kind: "directive", type: i4.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: i5.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i6.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i6.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i6.MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "component", type: i7.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: i11.DocumentViewsComponent, selector: "bizdoc-document-views", inputs: ["model"] }, { kind: "component", type: i12.CommentsComponent, selector: "bizdoc-comments", inputs: ["model"], outputs: ["change"] }, { kind: "component", type: i13.ComposeFormComponent, selector: "bizdoc-form", inputs: ["model", "working", "dirty", "valid", "mode", "contacts"], outputs: ["modelChange", "workingChange", "dirtyChange", "validChange", "saved"] }, { kind: "directive", type: i14.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i15.ArraySortPipe, name: "sort" }, { kind: "pipe", type: i16.TranslatePipe, name: "translate" }] }); }
91
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ComposeMobileComponent, deps: [{ token: i1.WindowTitleService }, { token: i2.SessionService }, { token: i3.Router }, { token: i3.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
92
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: ComposeMobileComponent, selector: "ng-component", viewQueries: [{ propertyName: "form", first: true, predicate: ComposeFormComponent, descendants: true, static: true }, { propertyName: "comments", first: true, predicate: CommentsComponent, descendants: true }, { propertyName: "drawer", first: true, predicate: MatSidenav, descendants: true, static: true }], ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\n @if (form.page !== undefined) {\n <button mat-icon-button color=\"primary\" (click)=\"form.back()\" [bizdocTooltip]=\"'Back'|translate\" tabindex=\"1\">\n <mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon>\n </button>\n }\n @if (model.draft) {\n <button mat-icon-button color=\"primary\" data-help=\"submit\"\n (click)=\"submit()\" [disabled]=\"!valid||working\" [bizdocTooltip]=\"'Submit' | translate\">\n <mat-icon class=\"mat-icon-rtl-mirror\">send</mat-icon>\n </button>\n }\n @if (form.actions.length === 1) {\n <button mat-icon-button color=\"primary\" [attr.data-help]=\"'action-'+form.actions[0].name\" (click)=\"send(model.actions[0])\" [disabled]=\"!valid||working\" [bizdocTooltip]=\"form.actions[0].title\">\n <mat-icon class=\"mat-icon-rtl-mirror\">{{form.actions[0].icon || 'send'}}</mat-icon>\n </button>\n }\n @if (form.actions.length > 1) {\n <button mat-icon-button data-help=\"send\" color=\"primary\" [matMenuTriggerFor]=\"actionmenu\" [disabled]=\"!valid||working\" [bizdocTooltip]=\"'Send' | translate\">\n <mat-icon class=\"mat-icon-rtl-mirror\">send</mat-icon>\n </button>\n }\n <!-- action -->\n <mat-menu #actionmenu>\n @for (a of form.actions | sort : 'group'; track a; let i = $index) {\n @if (i>0 && form.actions[i-1].group !== a.group) {\n <mat-divider></mat-divider>\n }\n <button mat-menu-item (click)=\"send(a.name)\">{{a.title}}</button>\n }\n </mat-menu>\n @if (mode === 'compose') {\n <button mat-icon-button (click)=\"form.save().subscribe()\" data-help=\"save\" [disabled]=\"!dirty||working\" [bizdocTooltip]=\"(model.draft ? 'SaveDraft' : 'Save') | translate\">\n <mat-icon>save</mat-icon>\n </button>\n }\n <button mat-icon-button data-help=\"tag\" (click)=\"form.tag($event)\" [bizdocTooltip]=\"'Tags' | translate\" [disabled]=\"working\"><mat-icon class=\"filled\">{{model.tags && model.tags.length ?'bookmark':'bookmark_border'}}</mat-icon></button>\n <button mat-icon-button data-help=\"flag\" [bizdocTooltip]=\"'Flagged'| translate\" [disabled]=\"working\" (click)=\"form.flag()\"><mat-icon class=\"filled\">{{model.flag ? 'star' : 'star_border'}}</mat-icon></button>\n <button mat-icon-button (click)=\"form.attach()\" data-help=\"attach\" [bizdocTooltip]=\"'AttachFile' | translate\" [disabled]=\"working\"><mat-icon>attach_file</mat-icon></button>\n @if (mode !== 'compose' && !model.completed && model.pending) {\n <button mat-icon-button [disabled]=\"working\" data-help=\"edit\" (click)=\"edit()\" [bizdocTooltip]=\"'Edit' | translate\"><mat-icon>create</mat-icon></button>\n }\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"toggle('comments')\" data-help=\"comments\" [bizdocTooltip]=\"'Comments' | translate\" [matBadge]=\"newCommentsCount\" [matBadgeHidden]=\"!newCommentsCount\" matBadgeColor=\"accent\">\n <mat-icon class=\"filled\">format_quote</mat-icon>\n </button>\n @if (enableAnalysis) {\n <button mat-icon-button (click)=\"toggle('views')\" [bizdocTooltip]=\"'View' | translate\" [attr.aria-label]=\"'View' | translate\" class=\"tool\"><mat-icon>data_usage</mat-icon></button>\n }\n <button mat-icon-button [matMenuTriggerFor]=\"optionsMenu\" [bizdocTooltip]=\"'Options' | translate\" [attr.aria-label]=\"'Options' | translate\"><mat-icon>more_vert</mat-icon></button>\n <mat-menu #optionsMenu=\"matMenu\">\n <ng-template matMenuContent>\n <button mat-menu-item (click)=\"form.copy()\" [disabled]=\"working\">\n <!--<mat-icon>content_copy</mat-icon>-->\n <span>{{'Copy' | translate}}</span>\n </button>\n @if (model.draft && !model.issued) {\n <button mat-menu-item (click)=\"discard()\" [disabled]=\"working\">\n <!--<mat-icon>delete_outlined</mat-icon>-->\n <span>{{'Discard' | translate}}</span>\n </button>\n }\n @if (form.help) {\n <mat-divider></mat-divider>\n <button mat-menu-item (click)=\"form.guide(form.help)\">\n <!--<mat-icon>help_outline</mat-icon>-->\n <span>{{'Help' | translate}}</span>\n </button>\n }\n </ng-template>\n </mat-menu>\n</mat-toolbar>\n<mat-sidenav-container class=\"page-container\">\n <mat-sidenav-content>\n <bizdoc-form [model]=model #form (validChange)=\"valid=$event\"\n (workingChange)=\"working=$event\"\n (dirtyChange)=\"dirty=$event\" [mode]=\"mode\"></bizdoc-form>\n </mat-sidenav-content>\n <mat-sidenav mode=\"over\" position=\"end\" [opened]=\"false\" #drawer autoFocus=\"false\" class=\"side-nav\">\n @switch (viewMode) {\n @case ('views') {\n <bizdoc-document-views [model]=\"model\"></bizdoc-document-views>\n }\n @default {\n <bizdoc-comments [model]=\"model\"></bizdoc-comments>\n }\n }\n </mat-sidenav>\n</mat-sidenav-container>\n", styles: [".page-container ::ng-deep form{padding:6px}.side-nav{min-width:280px}\n"], dependencies: [{ kind: "directive", type: i4.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: i5.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i6.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i6.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i6.MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "component", type: i7.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: i11.DocumentViewsComponent, selector: "bizdoc-document-views", inputs: ["model"] }, { kind: "component", type: i12.CommentsComponent, selector: "bizdoc-comments", inputs: ["model"], outputs: ["change"] }, { kind: "component", type: i13.ComposeFormComponent, selector: "bizdoc-form", inputs: ["model", "working", "dirty", "valid", "mode", "contacts"], outputs: ["modelChange", "workingChange", "dirtyChange", "validChange", "saved"] }, { kind: "directive", type: i14.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i15.ArraySortPipe, name: "sort" }, { kind: "pipe", type: i16.TranslatePipe, name: "translate" }] }); }
94
93
  }
95
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: ComposeMobileComponent, decorators: [{
94
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ComposeMobileComponent, decorators: [{
96
95
  type: Component,
97
96
  args: [{ template: "<mat-toolbar class=\"nav-toolbar\">\n @if (form.page !== undefined) {\n <button mat-icon-button color=\"primary\" (click)=\"form.back()\" [bizdocTooltip]=\"'Back'|translate\" tabindex=\"1\">\n <mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon>\n </button>\n }\n @if (model.draft) {\n <button mat-icon-button color=\"primary\" data-help=\"submit\"\n (click)=\"submit()\" [disabled]=\"!valid||working\" [bizdocTooltip]=\"'Submit' | translate\">\n <mat-icon class=\"mat-icon-rtl-mirror\">send</mat-icon>\n </button>\n }\n @if (form.actions.length === 1) {\n <button mat-icon-button color=\"primary\" [attr.data-help]=\"'action-'+form.actions[0].name\" (click)=\"send(model.actions[0])\" [disabled]=\"!valid||working\" [bizdocTooltip]=\"form.actions[0].title\">\n <mat-icon class=\"mat-icon-rtl-mirror\">{{form.actions[0].icon || 'send'}}</mat-icon>\n </button>\n }\n @if (form.actions.length > 1) {\n <button mat-icon-button data-help=\"send\" color=\"primary\" [matMenuTriggerFor]=\"actionmenu\" [disabled]=\"!valid||working\" [bizdocTooltip]=\"'Send' | translate\">\n <mat-icon class=\"mat-icon-rtl-mirror\">send</mat-icon>\n </button>\n }\n <!-- action -->\n <mat-menu #actionmenu>\n @for (a of form.actions | sort : 'group'; track a; let i = $index) {\n @if (i>0 && form.actions[i-1].group !== a.group) {\n <mat-divider></mat-divider>\n }\n <button mat-menu-item (click)=\"send(a.name)\">{{a.title}}</button>\n }\n </mat-menu>\n @if (mode === 'compose') {\n <button mat-icon-button (click)=\"form.save().subscribe()\" data-help=\"save\" [disabled]=\"!dirty||working\" [bizdocTooltip]=\"(model.draft ? 'SaveDraft' : 'Save') | translate\">\n <mat-icon>save</mat-icon>\n </button>\n }\n <button mat-icon-button data-help=\"tag\" (click)=\"form.tag($event)\" [bizdocTooltip]=\"'Tags' | translate\" [disabled]=\"working\"><mat-icon class=\"filled\">{{model.tags && model.tags.length ?'bookmark':'bookmark_border'}}</mat-icon></button>\n <button mat-icon-button data-help=\"flag\" [bizdocTooltip]=\"'Flagged'| translate\" [disabled]=\"working\" (click)=\"form.flag()\"><mat-icon class=\"filled\">{{model.flag ? 'star' : 'star_border'}}</mat-icon></button>\n <button mat-icon-button (click)=\"form.attach()\" data-help=\"attach\" [bizdocTooltip]=\"'AttachFile' | translate\" [disabled]=\"working\"><mat-icon>attach_file</mat-icon></button>\n @if (mode !== 'compose' && !model.completed && model.pending) {\n <button mat-icon-button [disabled]=\"working\" data-help=\"edit\" (click)=\"edit()\" [bizdocTooltip]=\"'Edit' | translate\"><mat-icon>create</mat-icon></button>\n }\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"toggle('comments')\" data-help=\"comments\" [bizdocTooltip]=\"'Comments' | translate\" [matBadge]=\"newCommentsCount\" [matBadgeHidden]=\"!newCommentsCount\" matBadgeColor=\"accent\">\n <mat-icon class=\"filled\">format_quote</mat-icon>\n </button>\n @if (enableAnalysis) {\n <button mat-icon-button (click)=\"toggle('views')\" [bizdocTooltip]=\"'View' | translate\" [attr.aria-label]=\"'View' | translate\" class=\"tool\"><mat-icon>data_usage</mat-icon></button>\n }\n <button mat-icon-button [matMenuTriggerFor]=\"optionsMenu\" [bizdocTooltip]=\"'Options' | translate\" [attr.aria-label]=\"'Options' | translate\"><mat-icon>more_vert</mat-icon></button>\n <mat-menu #optionsMenu=\"matMenu\">\n <ng-template matMenuContent>\n <button mat-menu-item (click)=\"form.copy()\" [disabled]=\"working\">\n <!--<mat-icon>content_copy</mat-icon>-->\n <span>{{'Copy' | translate}}</span>\n </button>\n @if (model.draft && !model.issued) {\n <button mat-menu-item (click)=\"discard()\" [disabled]=\"working\">\n <!--<mat-icon>delete_outlined</mat-icon>-->\n <span>{{'Discard' | translate}}</span>\n </button>\n }\n @if (form.help) {\n <mat-divider></mat-divider>\n <button mat-menu-item (click)=\"form.guide(form.help)\">\n <!--<mat-icon>help_outline</mat-icon>-->\n <span>{{'Help' | translate}}</span>\n </button>\n }\n </ng-template>\n </mat-menu>\n</mat-toolbar>\n<mat-sidenav-container class=\"page-container\">\n <mat-sidenav-content>\n <bizdoc-form [model]=model #form (validChange)=\"valid=$event\"\n (workingChange)=\"working=$event\"\n (dirtyChange)=\"dirty=$event\" [mode]=\"mode\"></bizdoc-form>\n </mat-sidenav-content>\n <mat-sidenav mode=\"over\" position=\"end\" [opened]=\"false\" #drawer autoFocus=\"false\" class=\"side-nav\">\n @switch (viewMode) {\n @case ('views') {\n <bizdoc-document-views [model]=\"model\"></bizdoc-document-views>\n }\n @default {\n <bizdoc-comments [model]=\"model\"></bizdoc-comments>\n }\n }\n </mat-sidenav>\n</mat-sidenav-container>\n", styles: [".page-container ::ng-deep form{padding:6px}.side-nav{min-width:280px}\n"] }]
98
- }], ctorParameters: () => [{ type: i1.WindowTitleService }, { type: i2.SessionService }, { type: i3.Router }, { type: i3.ActivatedRoute }, { type: undefined, decorators: [{
99
- type: Inject,
100
- args: [BIZDOC_CONFIG]
101
- }] }], propDecorators: { form: [{
97
+ }], ctorParameters: () => [{ type: i1.WindowTitleService }, { type: i2.SessionService }, { type: i3.Router }, { type: i3.ActivatedRoute }], propDecorators: { form: [{
102
98
  type: ViewChild,
103
99
  args: [ComposeFormComponent, { static: true }]
104
100
  }], comments: [{
@@ -108,4 +104,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
108
104
  type: ViewChild,
109
105
  args: [MatSidenav, { static: true }]
110
106
  }] } });
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9zZS5tb2JpbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb21wb3NlL2NvbXBvc2UubW9iaWxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY29tcG9zZS9jb21wb3NlLm1vYmlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFhLFNBQVMsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXZELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBa0IsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTdDLE9BQU8sRUFBZ0IsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU1wRSx1REFBdUQ7QUFDdkQsTUFBTSxPQUFPLHNCQUFzQjtJQWNqQyxtQkFBbUI7SUFDbkIsWUFDVSxNQUEwQixFQUMxQixRQUF3QixFQUN4QixPQUFlLEVBQ2YsTUFBc0IsRUFDUCxNQUFvQjtRQUpuQyxXQUFNLEdBQU4sTUFBTSxDQUFvQjtRQUMxQixhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQUN4QixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFS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Uzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFO2dCQUNTLE1BQU07c0JBQTlDLFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBWaWV3Q2hpbGQsIE9uSW5pdCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdFNpZGVuYXYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBSZWNpcGllbnRNb2RlbCwgSU5CT1ggfSBmcm9tICcuLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBXaW5kb3dUaXRsZVNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3dpbmRvdy10aXRsZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tbWVudHNDb21wb25lbnQgfSBmcm9tICcuL2NvbW1lbnRzL2NvbW1lbnRzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbXBvc2VGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IGlzTW9iaWxlIH0gZnJvbSAnLi4vY29yZS9mdW5jdGlvbnMnO1xyXG5pbXBvcnQgeyBWaWV3TW9kZSB9IGZyb20gJy4uL2NvcmUvYmFzZSc7XHJcbmltcG9ydCB7IEJpekRvY0NvbmZpZywgQklaRE9DX0NPTkZJRyB9IGZyb20gJy4uL2NvcmUvY29uZmlndXJhdGlvbic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZVVybDogJy4vY29tcG9zZS5tb2JpbGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvbXBvc2UubW9iaWxlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuLyoqIGNvbXBvc2UgY29tcG9uZW50IHJlc3BvbnNpYmxlIGZvciBlZGl0aW5nIGEgZm9ybSAqL1xyXG5leHBvcnQgY2xhc3MgQ29tcG9zZU1vYmlsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBAVmlld0NoaWxkKENvbXBvc2VGb3JtQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSBmb3JtOiBDb21wb3NlRm9ybUNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKENvbW1lbnRzQ29tcG9uZW50LCB7fSkgY29tbWVudHM6IENvbW1lbnRzQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoTWF0U2lkZW5hdiwgeyBzdGF0aWM6IHRydWUgfSkgZHJhd2VyOiBNYXRTaWRlbmF2O1xyXG4gIHdvcmtpbmc6IGJvb2xlYW47XHJcbiAgZGlydHk6IGJvb2xlYW47XHJcbiAgdmFsaWQ6IGJvb2xlYW47XHJcbiAgbW9kZTogVmlld01vZGU7XHJcbiAgbW9kZWw6IFJlY2lwaWVudE1vZGVsPGFueT47XHJcbiAgbmV3Q29tbWVudHNDb3VudDogbnVtYmVyO1xyXG4gIHZpZXdNb2RlOiAnY29tbWVudHMnIHwgJ3ZpZXdzJztcclxuICByZWFkb25seSBpc01vYmlsZSA9IGlzTW9iaWxlKCk7XHJcbiAgcmVhZG9ubHkgICBlbmFibGVBbmFseXNpczogYm9vbGVhbjtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICAvKiogY29tcG9zZSBjdG9yICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF90aXRsZTogV2luZG93VGl0bGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgX3JvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIEBJbmplY3QoQklaRE9DX0NPTkZJRykgY29uZmlnOiBCaXpEb2NDb25maWcgICkge1xyXG4gICAgdGhpcy5lbmFibGVBbmFseXNpcyA9IF9zZXNzaW9uLnByb2ZpbGUudmlld3MubGVuZ3RoID4gMDtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9yb3V0ZS5kYXRhLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMubW9kZWwgPSB0aGlzLl9yb3V0ZS5zbmFwc2hvdC5kYXRhWydpdGVtJ107XHJcbiAgICAgIHRoaXMubmV3Q29tbWVudHNDb3VudCA9IHRoaXMubW9kZWwudW5yZWFkQ29tbWVudHMgfHwgbnVsbDtcclxuICAgICAgY29uc3QgZm9ybSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5mb3Jtcy5maW5kKGYgPT4gZi5uYW1lID09PSB0aGlzLm1vZGVsLmZvcm1JZCk7XHJcbiAgICAgIHRoaXMuX3RpdGxlLnNldCh0aGlzLm1vZGVsLm51bWJlciA/IGAjJHt0aGlzLm1vZGVsLm51bWJlcn1gIDogZm9ybS50aXRsZSk7XHJcbiAgICAgIHRoaXMubmV3Q29tbWVudHNDb3VudCAmJlxyXG4gICAgICAgIHRoaXMuZHJhd2VyLm9wZW4oKTtcclxuICAgICAgY29uc3QgeyBwYWdlIH0gPSB0aGlzLl9yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcztcclxuICAgICAgcGFnZSAmJlxyXG4gICAgICAgIHRoaXMuZm9ybS5uYXZpZ2F0ZShwYWdlKTtcclxuICAgICAgdGhpcy5tb2RlID0gdGhpcy5tb2RlbC5kcmFmdCA/ICdjb21wb3NlJyA6ICdwcmV2aWV3JztcclxuICAgIH0pO1xyXG4gICAgdGhpcy5kcmF3ZXIub3BlbmVkQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUobyA9PiB7XHJcbiAgICAgIGlmIChvKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29tbWVudHMpIHtcclxuICAgICAgICAgICF0aGlzLm5ld0NvbW1lbnRzQ291bnQgJiYgdGhpcy5jb21tZW50cy5mb2N1cygpO1xyXG4gICAgICAgICAgdGhpcy5jb21tZW50cy5jaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSgoKSA9PlxyXG4gICAgICAgICAgICB0aGlzLm5ld0NvbW1lbnRzQ291bnQgPSB0aGlzLmNvbW1lbnRzLnVucmVhZENvbW1lbnRzKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICB0b2dnbGUobW9kZTogJ2NvbW1lbnRzJyB8ICd2aWV3cycpIHtcclxuICAgIGlmICh0aGlzLnZpZXdNb2RlID09PSBtb2RlKSB7XHJcbiAgICAgIHRoaXMuZHJhd2VyLmNsb3NlKCk7XHJcbiAgICAgIHRoaXMudmlld01vZGUgPSBudWxsO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMudmlld01vZGUgPSBtb2RlO1xyXG4gICAgICAhdGhpcy5kcmF3ZXIub3BlbmVkICYmIHRoaXMuZHJhd2VyLm9wZW4oKTtcclxuICAgIH1cclxuICB9XHJcbiAgc2VuZChhY3Rpb246IHN0cmluZykge1xyXG4gICAgdGhpcy5mb3JtLnNlbmQoYWN0aW9uKS5zdWJzY3JpYmUoeyBuZXh0OiB0aGlzLl9jbG9zZS5iaW5kKHRoaXMpIH0pO1xyXG4gIH1cclxuICBlZGl0KCkge1xyXG4gICAgdGhpcy5tb2RlID0gJ2NvbXBvc2UnO1xyXG4gIH1cclxuICBkaXNjYXJkKCkge1xyXG4gICAgdGhpcy5mb3JtLmRpc2NhcmQoKS5zdWJzY3JpYmUoeyBuZXh0OiB0aGlzLl9jbG9zZS5iaW5kKHRoaXMpIH0pXHJcbiAgfVxyXG4gIHN1Ym1pdCgpIHtcclxuICAgIHRoaXMuZm9ybS5zdWJtaXQoKS5zdWJzY3JpYmUoeyBuZXh0OiB0aGlzLl9jbG9zZS5iaW5kKHRoaXMpIH0pO1xyXG4gIH1cclxuICBwcml2YXRlIF9jbG9zZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJ21haWxib3gvZicsIElOQk9YXSwge1xyXG4gICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiAncHJlc2VydmUnXHJcbiAgICB9KTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIiwiPG1hdC10b29sYmFyIGNsYXNzPVwibmF2LXRvb2xiYXJcIj5cbiAgQGlmIChmb3JtLnBhZ2UgIT09IHVuZGVmaW5lZCkge1xuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJmb3JtLmJhY2soKVwiIFtiaXpkb2NUb29sdGlwXT1cIidCYWNrJ3x0cmFuc2xhdGVcIiB0YWJpbmRleD1cIjFcIj5cbiAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1hdC1pY29uLXJ0bC1taXJyb3JcIj5hcnJvd19iYWNrPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgfVxuICBAaWYgKG1vZGVsLmRyYWZ0KSB7XG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgZGF0YS1oZWxwPVwic3VibWl0XCJcbiAgICAgIChjbGljayk9XCJzdWJtaXQoKVwiIFtkaXNhYmxlZF09XCIhdmFsaWR8fHdvcmtpbmdcIiBbYml6ZG9jVG9vbHRpcF09XCInU3VibWl0JyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWF0LWljb24tcnRsLW1pcnJvclwiPnNlbmQ8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICB9XG4gIEBpZiAoZm9ybS5hY3Rpb25zLmxlbmd0aCA9PT0gMSkge1xuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIFthdHRyLmRhdGEtaGVscF09XCInYWN0aW9uLScrZm9ybS5hY3Rpb25zWzBdLm5hbWVcIiAoY2xpY2spPVwic2VuZChtb2RlbC5hY3Rpb25zWzBdKVwiIFtkaXNhYmxlZF09XCIhdmFsaWR8fHdvcmtpbmdcIiBbYml6ZG9jVG9vbHRpcF09XCJmb3JtLmFjdGlvbnNbMF0udGl0bGVcIj5cbiAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1hdC1pY29uLXJ0bC1taXJyb3JcIj57e2Zvcm0uYWN0aW9uc1swXS5pY29uIHx8ICdzZW5kJ319PC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgfVxuICBAaWYgKGZvcm0uYWN0aW9ucy5sZW5ndGggPiAxKSB7XG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gZGF0YS1oZWxwPVwic2VuZFwiIGNvbG9yPVwicHJpbWFyeVwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJhY3Rpb25tZW51XCIgW2Rpc2FibGVkXT1cIiF2YWxpZHx8d29ya2luZ1wiIFtiaXpkb2NUb29sdGlwXT1cIidTZW5kJyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWF0LWljb24tcnRsLW1pcnJvclwiPnNlbmQ8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICB9XG4gIDwhLS0gYWN0aW9uIC0tPlxuICA8bWF0LW1lbnUgI2FjdGlvbm1lbnU+XG4gICAgQGZvciAoYSBvZiBmb3JtLmFjdGlvbnMgfCBzb3J0IDogJ2dyb3VwJzsgdHJhY2sgYTsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgIEBpZiAoaT4wICYmIGZvcm0uYWN0aW9uc1tpLTFdLmdyb3VwICE9PSBhLmdyb3VwKSB7XG4gICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgfVxuICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJzZW5kKGEubmFtZSlcIj57e2EudGl0bGV9fTwvYnV0dG9uPlxuICAgIH1cbiAgPC9tYXQtbWVudT5cbiAgQGlmIChtb2RlID09PSAnY29tcG9zZScpIHtcbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiZm9ybS5zYXZlKCkuc3Vic2NyaWJlKClcIiBkYXRhLWhlbHA9XCJzYXZlXCIgW2Rpc2FibGVkXT1cIiFkaXJ0eXx8d29ya2luZ1wiIFtiaXpkb2NUb29sdGlwXT1cIihtb2RlbC5kcmFmdCA/ICdTYXZlRHJhZnQnIDogJ1NhdmUnKSB8IHRyYW5zbGF0ZVwiPlxuICAgICAgPG1hdC1pY29uPnNhdmU8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICB9XG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGRhdGEtaGVscD1cInRhZ1wiIChjbGljayk9XCJmb3JtLnRhZygkZXZlbnQpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1RhZ3MnIHwgdHJhbnNsYXRlXCIgW2Rpc2FibGVkXT1cIndvcmtpbmdcIj48bWF0LWljb24gY2xhc3M9XCJmaWxsZWRcIj57e21vZGVsLnRhZ3MgJiYgbW9kZWwudGFncy5sZW5ndGggPydib29rbWFyayc6J2Jvb2ttYXJrX2JvcmRlcid9fTwvbWF0LWljb24+PC9idXR0b24+XG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGRhdGEtaGVscD1cImZsYWdcIiBbYml6ZG9jVG9vbHRpcF09XCInRmxhZ2dlZCd8IHRyYW5zbGF0ZVwiIFtkaXNhYmxlZF09XCJ3b3JraW5nXCIgKGNsaWNrKT1cImZvcm0uZmxhZygpXCI+PG1hdC1pY29uIGNsYXNzPVwiZmlsbGVkXCI+e3ttb2RlbC5mbGFnID8gJ3N0YXInIDogJ3N0YXJfYm9yZGVyJ319PC9tYXQtaWNvbj48L2J1dHRvbj5cbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImZvcm0uYXR0YWNoKClcIiBkYXRhLWhlbHA9XCJhdHRhY2hcIiBbYml6ZG9jVG9vbHRpcF09XCInQXR0YWNoRmlsZScgfCB0cmFuc2xhdGVcIiBbZGlzYWJsZWRdPVwid29ya2luZ1wiPjxtYXQtaWNvbj5hdHRhY2hfZmlsZTwvbWF0LWljb24+PC9idXR0b24+XG4gIEBpZiAobW9kZSAhPT0gJ2NvbXBvc2UnICYmICFtb2RlbC5jb21wbGV0ZWQgJiYgbW9kZWwucGVuZGluZykge1xuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFtkaXNhYmxlZF09XCJ3b3JraW5nXCIgZGF0YS1oZWxwPVwiZWRpdFwiIChjbGljayk9XCJlZGl0KClcIiBbYml6ZG9jVG9vbHRpcF09XCInRWRpdCcgfCB0cmFuc2xhdGVcIj48bWF0LWljb24+Y3JlYXRlPC9tYXQtaWNvbj48L2J1dHRvbj5cbiAgfVxuICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJ0b2dnbGUoJ2NvbW1lbnRzJylcIiBkYXRhLWhlbHA9XCJjb21tZW50c1wiIFtiaXpkb2NUb29sdGlwXT1cIidDb21tZW50cycgfCB0cmFuc2xhdGVcIiBbbWF0QmFkZ2VdPVwibmV3Q29tbWVudHNDb3VudFwiIFttYXRCYWRnZUhpZGRlbl09XCIhbmV3Q29tbWVudHNDb3VudFwiIG1hdEJhZGdlQ29sb3I9XCJhY2NlbnRcIj5cbiAgICA8bWF0LWljb24gY2xhc3M9XCJmaWxsZWRcIj5mb3JtYXRfcXVvdGU8L21hdC1pY29uPlxuICA8L2J1dHRvbj5cbiAgQGlmIChlbmFibGVBbmFseXNpcykge1xuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJ0b2dnbGUoJ3ZpZXdzJylcIiBbYml6ZG9jVG9vbHRpcF09XCInVmlldycgfCB0cmFuc2xhdGVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidWaWV3JyB8IHRyYW5zbGF0ZVwiIGNsYXNzPVwidG9vbFwiPjxtYXQtaWNvbj5kYXRhX3VzYWdlPC9tYXQtaWNvbj48L2J1dHRvbj5cbiAgfVxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwib3B0aW9uc01lbnVcIiBbYml6ZG9jVG9vbHRpcF09XCInT3B0aW9ucycgfCB0cmFuc2xhdGVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidPcHRpb25zJyB8IHRyYW5zbGF0ZVwiPjxtYXQtaWNvbj5tb3JlX3ZlcnQ8L21hdC1pY29uPjwvYnV0dG9uPlxuICA8bWF0LW1lbnUgI29wdGlvbnNNZW51PVwibWF0TWVudVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBtYXRNZW51Q29udGVudD5cbiAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiZm9ybS5jb3B5KClcIiBbZGlzYWJsZWRdPVwid29ya2luZ1wiPlxuICAgICAgICA8IS0tPG1hdC1pY29uPmNvbnRlbnRfY29weTwvbWF0LWljb24+LS0+XG4gICAgICAgIDxzcGFuPnt7J0NvcHknIHwgdHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIEBpZiAobW9kZWwuZHJhZnQgJiYgIW1vZGVsLmlzc3VlZCkge1xuICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImRpc2NhcmQoKVwiIFtkaXNhYmxlZF09XCJ3b3JraW5nXCI+XG4gICAgICAgICAgPCEtLTxtYXQtaWNvbj5kZWxldGVfb3V0bGluZWQ8L21hdC1pY29uPi0tPlxuICAgICAgICAgIDxzcGFuPnt7J0Rpc2NhcmQnIHwgdHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgfVxuICAgICAgQGlmIChmb3JtLmhlbHApIHtcbiAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiZm9ybS5ndWlkZShmb3JtLmhlbHApXCI+XG4gICAgICAgICAgPCEtLTxtYXQtaWNvbj5oZWxwX291dGxpbmU8L21hdC1pY29uPi0tPlxuICAgICAgICAgIDxzcGFuPnt7J0hlbHAnIHwgdHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgfVxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvbWF0LW1lbnU+XG48L21hdC10b29sYmFyPlxuPG1hdC1zaWRlbmF2LWNvbnRhaW5lciBjbGFzcz1cInBhZ2UtY29udGFpbmVyXCI+XG4gIDxtYXQtc2lkZW5hdi1jb250ZW50PlxuICAgIDxiaXpkb2MtZm9ybSBbbW9kZWxdPW1vZGVsICNmb3JtICh2YWxpZENoYW5nZSk9XCJ2YWxpZD0kZXZlbnRcIlxuICAgICAgKHdvcmtpbmdDaGFuZ2UpPVwid29ya2luZz0kZXZlbnRcIlxuICAgIChkaXJ0eUNoYW5nZSk9XCJkaXJ0eT0kZXZlbnRcIiBbbW9kZV09XCJtb2RlXCI+PC9iaXpkb2MtZm9ybT5cbiAgPC9tYXQtc2lkZW5hdi1jb250ZW50PlxuICA8bWF0LXNpZGVuYXYgbW9kZT1cIm92ZXJcIiBwb3NpdGlvbj1cImVuZFwiIFtvcGVuZWRdPVwiZmFsc2VcIiAjZHJhd2VyIGF1dG9Gb2N1cz1cImZhbHNlXCIgY2xhc3M9XCJzaWRlLW5hdlwiPlxuICAgIEBzd2l0Y2ggKHZpZXdNb2RlKSB7XG4gICAgICBAY2FzZSAoJ3ZpZXdzJykge1xuICAgICAgICA8Yml6ZG9jLWRvY3VtZW50LXZpZXdzIFttb2RlbF09XCJtb2RlbFwiPjwvYml6ZG9jLWRvY3VtZW50LXZpZXdzPlxuICAgICAgfVxuICAgICAgQGRlZmF1bHQge1xuICAgICAgICA8Yml6ZG9jLWNvbW1lbnRzIFttb2RlbF09XCJtb2RlbFwiPjwvYml6ZG9jLWNvbW1lbnRzPlxuICAgICAgfVxuICAgIH1cbiAgPC9tYXQtc2lkZW5hdj5cbjwvbWF0LXNpZGVuYXYtY29udGFpbmVyPlxuIl19
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9zZS5tb2JpbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb21wb3NlL2NvbXBvc2UubW9iaWxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY29tcG9zZS9jb21wb3NlLm1vYmlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFhLFNBQVMsRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXZELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBa0IsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPN0MsdURBQXVEO0FBQ3ZELE1BQU0sT0FBTyxzQkFBc0I7SUFjakMsbUJBQW1CO0lBQ25CLFlBQ1UsTUFBMEIsRUFDMUIsUUFBd0IsRUFDeEIsT0FBZSxFQUNmLE1BQXNCO1FBSHRCLFdBQU0sR0FBTixNQUFNLENBQW9CO1FBQzFCLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ3hCLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQVJ2QixhQUFRLEdBQUcsUUFBUSxFQUFFLENBQUM7UUFFZCxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztR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ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBWaWV3Q2hpbGQsIE9uSW5pdCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdFNpZGVuYXYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBSZWNpcGllbnRNb2RlbCwgSU5CT1ggfSBmcm9tICcuLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBXaW5kb3dUaXRsZVNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3dpbmRvdy10aXRsZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tbWVudHNDb21wb25lbnQgfSBmcm9tICcuL2NvbW1lbnRzL2NvbW1lbnRzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbXBvc2VGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IGlzTW9iaWxlIH0gZnJvbSAnLi4vY29yZS9mdW5jdGlvbnMnO1xyXG5pbXBvcnQgeyBWaWV3TW9kZSB9IGZyb20gJy4uL2NvcmUvYmFzZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZVVybDogJy4vY29tcG9zZS5tb2JpbGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvbXBvc2UubW9iaWxlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuLyoqIGNvbXBvc2UgY29tcG9uZW50IHJlc3BvbnNpYmxlIGZvciBlZGl0aW5nIGEgZm9ybSAqL1xyXG5leHBvcnQgY2xhc3MgQ29tcG9zZU1vYmlsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBAVmlld0NoaWxkKENvbXBvc2VGb3JtQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSBmb3JtOiBDb21wb3NlRm9ybUNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKENvbW1lbnRzQ29tcG9uZW50LCB7fSkgY29tbWVudHM6IENvbW1lbnRzQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoTWF0U2lkZW5hdiwgeyBzdGF0aWM6IHRydWUgfSkgZHJhd2VyOiBNYXRTaWRlbmF2O1xyXG4gIHdvcmtpbmc6IGJvb2xlYW47XHJcbiAgZGlydHk6IGJvb2xlYW47XHJcbiAgdmFsaWQ6IGJvb2xlYW47XHJcbiAgbW9kZTogVmlld01vZGU7XHJcbiAgbW9kZWw6IFJlY2lwaWVudE1vZGVsPGFueT47XHJcbiAgbmV3Q29tbWVudHNDb3VudDogbnVtYmVyO1xyXG4gIHZpZXdNb2RlOiAnY29tbWVudHMnIHwgJ3ZpZXdzJztcclxuICByZWFkb25seSBpc01vYmlsZSA9IGlzTW9iaWxlKCk7XHJcbiAgcmVhZG9ubHkgICBlbmFibGVBbmFseXNpczogYm9vbGVhbjtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICAvKiogY29tcG9zZSBjdG9yICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF90aXRsZTogV2luZG93VGl0bGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgX3JvdXRlOiBBY3RpdmF0ZWRSb3V0ZSkge1xyXG4gICAgdGhpcy5lbmFibGVBbmFseXNpcyA9IF9zZXNzaW9uLnByb2ZpbGUudmlld3MubGVuZ3RoID4gMDtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9yb3V0ZS5kYXRhLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMubW9kZWwgPSB0aGlzLl9yb3V0ZS5zbmFwc2hvdC5kYXRhWydpdGVtJ107XHJcbiAgICAgIHRoaXMubmV3Q29tbWVudHNDb3VudCA9IHRoaXMubW9kZWwudW5yZWFkQ29tbWVudHMgfHwgbnVsbDtcclxuICAgICAgY29uc3QgZm9ybSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5mb3Jtcy5maW5kKGYgPT4gZi5uYW1lID09PSB0aGlzLm1vZGVsLmZvcm1JZCk7XHJcbiAgICAgIHRoaXMuX3RpdGxlLnNldCh0aGlzLm1vZGVsLm51bWJlciA/IGAjJHt0aGlzLm1vZGVsLm51bWJlcn1gIDogZm9ybS50aXRsZSk7XHJcbiAgICAgIHRoaXMubmV3Q29tbWVudHNDb3VudCAmJlxyXG4gICAgICAgIHRoaXMuZHJhd2VyLm9wZW4oKTtcclxuICAgICAgY29uc3QgeyBwYWdlIH0gPSB0aGlzLl9yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcztcclxuICAgICAgcGFnZSAmJlxyXG4gICAgICAgIHRoaXMuZm9ybS5uYXZpZ2F0ZShwYWdlKTtcclxuICAgICAgdGhpcy5tb2RlID0gdGhpcy5tb2RlbC5kcmFmdCA/ICdjb21wb3NlJyA6ICdwcmV2aWV3JztcclxuICAgIH0pO1xyXG4gICAgdGhpcy5kcmF3ZXIub3BlbmVkQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUobyA9PiB7XHJcbiAgICAgIGlmIChvKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29tbWVudHMpIHtcclxuICAgICAgICAgICF0aGlzLm5ld0NvbW1lbnRzQ291bnQgJiYgdGhpcy5jb21tZW50cy5mb2N1cygpO1xyXG4gICAgICAgICAgdGhpcy5jb21tZW50cy5jaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSgoKSA9PlxyXG4gICAgICAgICAgICB0aGlzLm5ld0NvbW1lbnRzQ291bnQgPSB0aGlzLmNvbW1lbnRzLnVucmVhZENvbW1lbnRzKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICB0b2dnbGUobW9kZTogJ2NvbW1lbnRzJyB8ICd2aWV3cycpIHtcclxuICAgIGlmICh0aGlzLnZpZXdNb2RlID09PSBtb2RlKSB7XHJcbiAgICAgIHRoaXMuZHJhd2VyLmNsb3NlKCk7XHJcbiAgICAgIHRoaXMudmlld01vZGUgPSBudWxsO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMudmlld01vZGUgPSBtb2RlO1xyXG4gICAgICAhdGhpcy5kcmF3ZXIub3BlbmVkICYmIHRoaXMuZHJhd2VyLm9wZW4oKTtcclxuICAgIH1cclxuICB9XHJcbiAgc2VuZChhY3Rpb246IHN0cmluZykge1xyXG4gICAgdGhpcy5mb3JtLnNlbmQoYWN0aW9uKS5zdWJzY3JpYmUoeyBuZXh0OiB0aGlzLl9jbG9zZS5iaW5kKHRoaXMpIH0pO1xyXG4gIH1cclxuICBlZGl0KCkge1xyXG4gICAgdGhpcy5tb2RlID0gJ2NvbXBvc2UnO1xyXG4gIH1cclxuICBkaXNjYXJkKCkge1xyXG4gICAgdGhpcy5mb3JtLmRpc2NhcmQoKS5zdWJzY3JpYmUoeyBuZXh0OiB0aGlzLl9jbG9zZS5iaW5kKHRoaXMpIH0pXHJcbiAgfVxyXG4gIHN1Ym1pdCgpIHtcclxuICAgIHRoaXMuZm9ybS5zdWJtaXQoKS5zdWJzY3JpYmUoeyBuZXh0OiB0aGlzLl9jbG9zZS5iaW5kKHRoaXMpIH0pO1xyXG4gIH1cclxuICBwcml2YXRlIF9jbG9zZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJ21haWxib3gvZicsIElOQk9YXSwge1xyXG4gICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiAncHJlc2VydmUnXHJcbiAgICB9KTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIiwiPG1hdC10b29sYmFyIGNsYXNzPVwibmF2LXRvb2xiYXJcIj5cbiAgQGlmIChmb3JtLnBhZ2UgIT09IHVuZGVmaW5lZCkge1xuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJmb3JtLmJhY2soKVwiIFtiaXpkb2NUb29sdGlwXT1cIidCYWNrJ3x0cmFuc2xhdGVcIiB0YWJpbmRleD1cIjFcIj5cbiAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1hdC1pY29uLXJ0bC1taXJyb3JcIj5hcnJvd19iYWNrPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgfVxuICBAaWYgKG1vZGVsLmRyYWZ0KSB7XG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgZGF0YS1oZWxwPVwic3VibWl0XCJcbiAgICAgIChjbGljayk9XCJzdWJtaXQoKVwiIFtkaXNhYmxlZF09XCIhdmFsaWR8fHdvcmtpbmdcIiBbYml6ZG9jVG9vbHRpcF09XCInU3VibWl0JyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWF0LWljb24tcnRsLW1pcnJvclwiPnNlbmQ8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICB9XG4gIEBpZiAoZm9ybS5hY3Rpb25zLmxlbmd0aCA9PT0gMSkge1xuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIFthdHRyLmRhdGEtaGVscF09XCInYWN0aW9uLScrZm9ybS5hY3Rpb25zWzBdLm5hbWVcIiAoY2xpY2spPVwic2VuZChtb2RlbC5hY3Rpb25zWzBdKVwiIFtkaXNhYmxlZF09XCIhdmFsaWR8fHdvcmtpbmdcIiBbYml6ZG9jVG9vbHRpcF09XCJmb3JtLmFjdGlvbnNbMF0udGl0bGVcIj5cbiAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1hdC1pY29uLXJ0bC1taXJyb3JcIj57e2Zvcm0uYWN0aW9uc1swXS5pY29uIHx8ICdzZW5kJ319PC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgfVxuICBAaWYgKGZvcm0uYWN0aW9ucy5sZW5ndGggPiAxKSB7XG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gZGF0YS1oZWxwPVwic2VuZFwiIGNvbG9yPVwicHJpbWFyeVwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJhY3Rpb25tZW51XCIgW2Rpc2FibGVkXT1cIiF2YWxpZHx8d29ya2luZ1wiIFtiaXpkb2NUb29sdGlwXT1cIidTZW5kJyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWF0LWljb24tcnRsLW1pcnJvclwiPnNlbmQ8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICB9XG4gIDwhLS0gYWN0aW9uIC0tPlxuICA8bWF0LW1lbnUgI2FjdGlvbm1lbnU+XG4gICAgQGZvciAoYSBvZiBmb3JtLmFjdGlvbnMgfCBzb3J0IDogJ2dyb3VwJzsgdHJhY2sgYTsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgIEBpZiAoaT4wICYmIGZvcm0uYWN0aW9uc1tpLTFdLmdyb3VwICE9PSBhLmdyb3VwKSB7XG4gICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgfVxuICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJzZW5kKGEubmFtZSlcIj57e2EudGl0bGV9fTwvYnV0dG9uPlxuICAgIH1cbiAgPC9tYXQtbWVudT5cbiAgQGlmIChtb2RlID09PSAnY29tcG9zZScpIHtcbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiZm9ybS5zYXZlKCkuc3Vic2NyaWJlKClcIiBkYXRhLWhlbHA9XCJzYXZlXCIgW2Rpc2FibGVkXT1cIiFkaXJ0eXx8d29ya2luZ1wiIFtiaXpkb2NUb29sdGlwXT1cIihtb2RlbC5kcmFmdCA/ICdTYXZlRHJhZnQnIDogJ1NhdmUnKSB8IHRyYW5zbGF0ZVwiPlxuICAgICAgPG1hdC1pY29uPnNhdmU8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICB9XG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGRhdGEtaGVscD1cInRhZ1wiIChjbGljayk9XCJmb3JtLnRhZygkZXZlbnQpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1RhZ3MnIHwgdHJhbnNsYXRlXCIgW2Rpc2FibGVkXT1cIndvcmtpbmdcIj48bWF0LWljb24gY2xhc3M9XCJmaWxsZWRcIj57e21vZGVsLnRhZ3MgJiYgbW9kZWwudGFncy5sZW5ndGggPydib29rbWFyayc6J2Jvb2ttYXJrX2JvcmRlcid9fTwvbWF0LWljb24+PC9idXR0b24+XG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGRhdGEtaGVscD1cImZsYWdcIiBbYml6ZG9jVG9vbHRpcF09XCInRmxhZ2dlZCd8IHRyYW5zbGF0ZVwiIFtkaXNhYmxlZF09XCJ3b3JraW5nXCIgKGNsaWNrKT1cImZvcm0uZmxhZygpXCI+PG1hdC1pY29uIGNsYXNzPVwiZmlsbGVkXCI+e3ttb2RlbC5mbGFnID8gJ3N0YXInIDogJ3N0YXJfYm9yZGVyJ319PC9tYXQtaWNvbj48L2J1dHRvbj5cbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImZvcm0uYXR0YWNoKClcIiBkYXRhLWhlbHA9XCJhdHRhY2hcIiBbYml6ZG9jVG9vbHRpcF09XCInQXR0YWNoRmlsZScgfCB0cmFuc2xhdGVcIiBbZGlzYWJsZWRdPVwid29ya2luZ1wiPjxtYXQtaWNvbj5hdHRhY2hfZmlsZTwvbWF0LWljb24+PC9idXR0b24+XG4gIEBpZiAobW9kZSAhPT0gJ2NvbXBvc2UnICYmICFtb2RlbC5jb21wbGV0ZWQgJiYgbW9kZWwucGVuZGluZykge1xuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFtkaXNhYmxlZF09XCJ3b3JraW5nXCIgZGF0YS1oZWxwPVwiZWRpdFwiIChjbGljayk9XCJlZGl0KClcIiBbYml6ZG9jVG9vbHRpcF09XCInRWRpdCcgfCB0cmFuc2xhdGVcIj48bWF0LWljb24+Y3JlYXRlPC9tYXQtaWNvbj48L2J1dHRvbj5cbiAgfVxuICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJ0b2dnbGUoJ2NvbW1lbnRzJylcIiBkYXRhLWhlbHA9XCJjb21tZW50c1wiIFtiaXpkb2NUb29sdGlwXT1cIidDb21tZW50cycgfCB0cmFuc2xhdGVcIiBbbWF0QmFkZ2VdPVwibmV3Q29tbWVudHNDb3VudFwiIFttYXRCYWRnZUhpZGRlbl09XCIhbmV3Q29tbWVudHNDb3VudFwiIG1hdEJhZGdlQ29sb3I9XCJhY2NlbnRcIj5cbiAgICA8bWF0LWljb24gY2xhc3M9XCJmaWxsZWRcIj5mb3JtYXRfcXVvdGU8L21hdC1pY29uPlxuICA8L2J1dHRvbj5cbiAgQGlmIChlbmFibGVBbmFseXNpcykge1xuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJ0b2dnbGUoJ3ZpZXdzJylcIiBbYml6ZG9jVG9vbHRpcF09XCInVmlldycgfCB0cmFuc2xhdGVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidWaWV3JyB8IHRyYW5zbGF0ZVwiIGNsYXNzPVwidG9vbFwiPjxtYXQtaWNvbj5kYXRhX3VzYWdlPC9tYXQtaWNvbj48L2J1dHRvbj5cbiAgfVxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwib3B0aW9uc01lbnVcIiBbYml6ZG9jVG9vbHRpcF09XCInT3B0aW9ucycgfCB0cmFuc2xhdGVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidPcHRpb25zJyB8IHRyYW5zbGF0ZVwiPjxtYXQtaWNvbj5tb3JlX3ZlcnQ8L21hdC1pY29uPjwvYnV0dG9uPlxuICA8bWF0LW1lbnUgI29wdGlvbnNNZW51PVwibWF0TWVudVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBtYXRNZW51Q29udGVudD5cbiAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiZm9ybS5jb3B5KClcIiBbZGlzYWJsZWRdPVwid29ya2luZ1wiPlxuICAgICAgICA8IS0tPG1hdC1pY29uPmNvbnRlbnRfY29weTwvbWF0LWljb24+LS0+XG4gICAgICAgIDxzcGFuPnt7J0NvcHknIHwgdHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIEBpZiAobW9kZWwuZHJhZnQgJiYgIW1vZGVsLmlzc3VlZCkge1xuICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImRpc2NhcmQoKVwiIFtkaXNhYmxlZF09XCJ3b3JraW5nXCI+XG4gICAgICAgICAgPCEtLTxtYXQtaWNvbj5kZWxldGVfb3V0bGluZWQ8L21hdC1pY29uPi0tPlxuICAgICAgICAgIDxzcGFuPnt7J0Rpc2NhcmQnIHwgdHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgfVxuICAgICAgQGlmIChmb3JtLmhlbHApIHtcbiAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiZm9ybS5ndWlkZShmb3JtLmhlbHApXCI+XG4gICAgICAgICAgPCEtLTxtYXQtaWNvbj5oZWxwX291dGxpbmU8L21hdC1pY29uPi0tPlxuICAgICAgICAgIDxzcGFuPnt7J0hlbHAnIHwgdHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgfVxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvbWF0LW1lbnU+XG48L21hdC10b29sYmFyPlxuPG1hdC1zaWRlbmF2LWNvbnRhaW5lciBjbGFzcz1cInBhZ2UtY29udGFpbmVyXCI+XG4gIDxtYXQtc2lkZW5hdi1jb250ZW50PlxuICAgIDxiaXpkb2MtZm9ybSBbbW9kZWxdPW1vZGVsICNmb3JtICh2YWxpZENoYW5nZSk9XCJ2YWxpZD0kZXZlbnRcIlxuICAgICAgKHdvcmtpbmdDaGFuZ2UpPVwid29ya2luZz0kZXZlbnRcIlxuICAgIChkaXJ0eUNoYW5nZSk9XCJkaXJ0eT0kZXZlbnRcIiBbbW9kZV09XCJtb2RlXCI+PC9iaXpkb2MtZm9ybT5cbiAgPC9tYXQtc2lkZW5hdi1jb250ZW50PlxuICA8bWF0LXNpZGVuYXYgbW9kZT1cIm92ZXJcIiBwb3NpdGlvbj1cImVuZFwiIFtvcGVuZWRdPVwiZmFsc2VcIiAjZHJhd2VyIGF1dG9Gb2N1cz1cImZhbHNlXCIgY2xhc3M9XCJzaWRlLW5hdlwiPlxuICAgIEBzd2l0Y2ggKHZpZXdNb2RlKSB7XG4gICAgICBAY2FzZSAoJ3ZpZXdzJykge1xuICAgICAgICA8Yml6ZG9jLWRvY3VtZW50LXZpZXdzIFttb2RlbF09XCJtb2RlbFwiPjwvYml6ZG9jLWRvY3VtZW50LXZpZXdzPlxuICAgICAgfVxuICAgICAgQGRlZmF1bHQge1xuICAgICAgICA8Yml6ZG9jLWNvbW1lbnRzIFttb2RlbF09XCJtb2RlbFwiPjwvYml6ZG9jLWNvbW1lbnRzPlxuICAgICAgfVxuICAgIH1cbiAgPC9tYXQtc2lkZW5hdj5cbjwvbWF0LXNpZGVuYXYtY29udGFpbmVyPlxuIl19