@bizdoc/core 3.2.9 → 3.3.2

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 (455) hide show
  1. package/assets/themes/brown.min.css +1 -1
  2. package/assets/themes/dark.min.css +3 -3
  3. package/assets/themes/deep-purple-light-blue.min.css +1 -1
  4. package/assets/themes/deep-purple-teal.min.css +1 -1
  5. package/assets/themes/default.min.css +8 -8
  6. package/assets/themes/green.min.css +1 -1
  7. package/assets/themes/indigo-amber.min.css +1 -1
  8. package/assets/themes/indigo.min.css +1 -1
  9. package/fesm2022/bizdoc-core.mjs +2152 -1924
  10. package/fesm2022/bizdoc-core.mjs.map +1 -1
  11. package/lib/admin/admin-menu.component.d.ts +1 -3
  12. package/lib/admin/architecture/designer.base.d.ts +3 -3
  13. package/lib/admin/architecture/elements/form.component.d.ts +1 -1
  14. package/lib/bizdoc.module.d.ts +6 -7
  15. package/lib/compose/trace/trace.base.d.ts +1 -1
  16. package/lib/core/base.d.ts +5 -0
  17. package/lib/core/configuration.d.ts +3 -0
  18. package/lib/core/fields/options.base.d.ts +2 -2
  19. package/lib/core/functions.d.ts +1 -1
  20. package/lib/core/inputs/combination-picker-body.d.ts +0 -2
  21. package/lib/core/inputs/combination-picker.d.ts +1 -1
  22. package/lib/core/session.service.d.ts +2 -2
  23. package/lib/core/slots/slots.component.d.ts +1 -0
  24. package/lib/core/tagging/edit-input.component.d.ts +7 -3
  25. package/lib/core/tagging/tagging.component-base.d.ts +2 -2
  26. package/lib/core/translate.service.d.ts +2 -2
  27. package/lib/core/window-title.service.d.ts +1 -0
  28. package/lib/cube/matrix/matrix.base.d.ts +1 -1
  29. package/lib/cube/view-base.d.ts +1 -1
  30. package/lib/dashboard/cube/cube-analysis.base.d.ts +1 -1
  31. package/lib/home/home-base.component.d.ts +1 -1
  32. package/lib/home/home.desktop.component.d.ts +5 -3
  33. package/lib/notifications/types/notification-base.d.ts +1 -1
  34. package/lib/reports/cube/usage-base.d.ts +1 -1
  35. package/lib/routes.mobile.d.ts +1 -1
  36. package/lib/views/cube/cube-base.d.ts +1 -1
  37. package/package.json +31 -33
  38. package/esm2022/bizdoc-core.mjs +0 -5
  39. package/esm2022/lib/admin/admin-dismiss.service.mjs +0 -28
  40. package/esm2022/lib/admin/admin-menu.component.mjs +0 -24
  41. package/esm2022/lib/admin/architecture/cube-axes-filter.component.mjs +0 -93
  42. package/esm2022/lib/admin/architecture/declarations.mjs +0 -79
  43. package/esm2022/lib/admin/architecture/designer-element.component.mjs +0 -270
  44. package/esm2022/lib/admin/architecture/designer-privileges.component.mjs +0 -96
  45. package/esm2022/lib/admin/architecture/designer.base.mjs +0 -136
  46. package/esm2022/lib/admin/architecture/designer.component.mjs +0 -396
  47. package/esm2022/lib/admin/architecture/elements/action.component.mjs +0 -43
  48. package/esm2022/lib/admin/architecture/elements/analysis-view.component.mjs +0 -50
  49. package/esm2022/lib/admin/architecture/elements/analysis-widget.component.mjs +0 -49
  50. package/esm2022/lib/admin/architecture/elements/anomaly-rule.component.mjs +0 -29
  51. package/esm2022/lib/admin/architecture/elements/attribute.component.mjs +0 -35
  52. package/esm2022/lib/admin/architecture/elements/box-form.component.mjs +0 -49
  53. package/esm2022/lib/admin/architecture/elements/configuration-datasource.component.mjs +0 -66
  54. package/esm2022/lib/admin/architecture/elements/control.component.mjs +0 -21
  55. package/esm2022/lib/admin/architecture/elements/cube-index-utility.component.mjs +0 -32
  56. package/esm2022/lib/admin/architecture/elements/cube-view.component.mjs +0 -34
  57. package/esm2022/lib/admin/architecture/elements/cube.component.mjs +0 -254
  58. package/esm2022/lib/admin/architecture/elements/document-state-widget.component.mjs +0 -40
  59. package/esm2022/lib/admin/architecture/elements/documents-report.component.mjs +0 -34
  60. package/esm2022/lib/admin/architecture/elements/documents-widget.component.mjs +0 -40
  61. package/esm2022/lib/admin/architecture/elements/explore-view.component.mjs +0 -35
  62. package/esm2022/lib/admin/architecture/elements/folder.component.mjs +0 -56
  63. package/esm2022/lib/admin/architecture/elements/form-invite.dialog.mjs +0 -126
  64. package/esm2022/lib/admin/architecture/elements/form.component.mjs +0 -156
  65. package/esm2022/lib/admin/architecture/elements/guide.component.mjs +0 -53
  66. package/esm2022/lib/admin/architecture/elements/job.component.mjs +0 -57
  67. package/esm2022/lib/admin/architecture/elements/matrix-view.component.mjs +0 -98
  68. package/esm2022/lib/admin/architecture/elements/node.component.mjs +0 -18
  69. package/esm2022/lib/admin/architecture/elements/parallel-view.component.mjs +0 -38
  70. package/esm2022/lib/admin/architecture/elements/performance-report.component.mjs +0 -32
  71. package/esm2022/lib/admin/architecture/elements/performance-widget.component.mjs +0 -34
  72. package/esm2022/lib/admin/architecture/elements/pivot-view.component.mjs +0 -40
  73. package/esm2022/lib/admin/architecture/elements/policy.component.mjs +0 -18
  74. package/esm2022/lib/admin/architecture/elements/report.component.mjs +0 -29
  75. package/esm2022/lib/admin/architecture/elements/return-to-role-action.component.mjs +0 -33
  76. package/esm2022/lib/admin/architecture/elements/role.component.mjs +0 -43
  77. package/esm2022/lib/admin/architecture/elements/rule.component.mjs +0 -18
  78. package/esm2022/lib/admin/architecture/elements/source.component.mjs +0 -25
  79. package/esm2022/lib/admin/architecture/elements/state.component.mjs +0 -44
  80. package/esm2022/lib/admin/architecture/elements/sum-view.component.mjs +0 -38
  81. package/esm2022/lib/admin/architecture/elements/tasks-report.component.mjs +0 -39
  82. package/esm2022/lib/admin/architecture/elements/type.component.mjs +0 -83
  83. package/esm2022/lib/admin/architecture/elements/usage-report.component.mjs +0 -64
  84. package/esm2022/lib/admin/architecture/elements/utility.component.mjs +0 -18
  85. package/esm2022/lib/admin/architecture/elements/view.component.mjs +0 -18
  86. package/esm2022/lib/admin/architecture/elements/widget.component.mjs +0 -29
  87. package/esm2022/lib/admin/architecture/icon-picker.component.mjs +0 -173
  88. package/esm2022/lib/admin/core/ace.input.mjs +0 -144
  89. package/esm2022/lib/admin/core/color-picker.input.mjs +0 -183
  90. package/esm2022/lib/admin/core/localized-string.component.mjs +0 -129
  91. package/esm2022/lib/admin/core/search.input.mjs +0 -52
  92. package/esm2022/lib/admin/diff/configuration-diff.component.mjs +0 -573
  93. package/esm2022/lib/admin/document-trace/document-trace.component.mjs +0 -537
  94. package/esm2022/lib/admin/document-trace/reassign.dialog.mjs +0 -39
  95. package/esm2022/lib/admin/document-trace/timeline.mjs +0 -2
  96. package/esm2022/lib/admin/document-trace/trace-element.component.mjs +0 -125
  97. package/esm2022/lib/admin/form/designer/box-designer.component.mjs +0 -270
  98. package/esm2022/lib/admin/form/designer/declarations.mjs +0 -2
  99. package/esm2022/lib/admin/form/designer/design-control.component.mjs +0 -41
  100. package/esm2022/lib/admin/form/designer/properties.component.mjs +0 -71
  101. package/esm2022/lib/admin/form/designer/section.component.mjs +0 -53
  102. package/esm2022/lib/admin/form/designer/settings.component.mjs +0 -51
  103. package/esm2022/lib/admin/form/form.resolve.service.mjs +0 -18
  104. package/esm2022/lib/admin/form/workflow/node-ref.mjs +0 -8
  105. package/esm2022/lib/admin/form/workflow/node.component.mjs +0 -156
  106. package/esm2022/lib/admin/form/workflow/role-node.component.mjs +0 -88
  107. package/esm2022/lib/admin/form/workflow/workflow.component.mjs +0 -586
  108. package/esm2022/lib/admin/indices/manage-cube-index.component.mjs +0 -160
  109. package/esm2022/lib/admin/patterns/patterns.component.mjs +0 -180
  110. package/esm2022/lib/admin/permissions/permissions.component.mjs +0 -98
  111. package/esm2022/lib/admin/positions/positions-popup.component.mjs +0 -75
  112. package/esm2022/lib/admin/positions/positions.component.mjs +0 -463
  113. package/esm2022/lib/admin/profiler/outofoffice.component.mjs +0 -156
  114. package/esm2022/lib/admin/profiler/profiler.component.mjs +0 -284
  115. package/esm2022/lib/admin/system.service.mjs +0 -127
  116. package/esm2022/lib/admin/utility-ref.mjs +0 -39
  117. package/esm2022/lib/admin/utility-wrapper.component.mjs +0 -53
  118. package/esm2022/lib/admin/utility.pane.component.mjs +0 -48
  119. package/esm2022/lib/app.component.mjs +0 -73
  120. package/esm2022/lib/bizdoc.module.mjs +0 -100
  121. package/esm2022/lib/browse/browse-items.component.mjs +0 -496
  122. package/esm2022/lib/browse/browse.mobile.component.mjs +0 -102
  123. package/esm2022/lib/browse/browse.pane.component.mjs +0 -169
  124. package/esm2022/lib/browse/expanded-item/expanded-item.component.mjs +0 -316
  125. package/esm2022/lib/browse/filter/filter.component.mjs +0 -140
  126. package/esm2022/lib/browse/folders-menu.component.mjs +0 -49
  127. package/esm2022/lib/chat/chat-info.mjs +0 -77
  128. package/esm2022/lib/chat/chat.mobile.component.mjs +0 -24
  129. package/esm2022/lib/chat/chat.service.mjs +0 -122
  130. package/esm2022/lib/chat/contacts.component.mjs +0 -107
  131. package/esm2022/lib/chat/contacts.pane.component.mjs +0 -26
  132. package/esm2022/lib/chat/conversation.component.mjs +0 -196
  133. package/esm2022/lib/chat/conversation.pane.component.mjs +0 -46
  134. package/esm2022/lib/compose/action/action-picker.component.mjs +0 -82
  135. package/esm2022/lib/compose/action/action-ref.mjs +0 -19
  136. package/esm2022/lib/compose/action/action.base.mjs +0 -50
  137. package/esm2022/lib/compose/action/action.dialog.mjs +0 -62
  138. package/esm2022/lib/compose/action/action.pane.dialog.exp.mjs +0 -68
  139. package/esm2022/lib/compose/action/assign-action.component.mjs +0 -77
  140. package/esm2022/lib/compose/action/moveto-action.component.mjs +0 -90
  141. package/esm2022/lib/compose/action/return-action.component.mjs +0 -51
  142. package/esm2022/lib/compose/attachments/attachments.component.mjs +0 -130
  143. package/esm2022/lib/compose/attachments/preview/attachment-preview.component.mjs +0 -157
  144. package/esm2022/lib/compose/attachments/progress-button.directive.mjs +0 -25
  145. package/esm2022/lib/compose/box/box.component.mjs +0 -44
  146. package/esm2022/lib/compose/box/control.component.mjs +0 -50
  147. package/esm2022/lib/compose/box/row.component.mjs +0 -41
  148. package/esm2022/lib/compose/can-deactivate-changes.service.mjs +0 -27
  149. package/esm2022/lib/compose/comments/comment.component.mjs +0 -188
  150. package/esm2022/lib/compose/comments/comments.component.mjs +0 -226
  151. package/esm2022/lib/compose/comments/comments.pane.component.mjs +0 -40
  152. package/esm2022/lib/compose/comments/edit-comment.component.mjs +0 -32
  153. package/esm2022/lib/compose/comments/edits.component.mjs +0 -30
  154. package/esm2022/lib/compose/comments/quick-comment.component.exp.mjs +0 -64
  155. package/esm2022/lib/compose/comments/votes.component.mjs +0 -42
  156. package/esm2022/lib/compose/compose-resolve.service.mjs +0 -34
  157. package/esm2022/lib/compose/compose.mobile.component.mjs +0 -114
  158. package/esm2022/lib/compose/compose.pane.component.mjs +0 -202
  159. package/esm2022/lib/compose/copy/copy.dialog.mjs +0 -45
  160. package/esm2022/lib/compose/dismiss.service.mjs +0 -25
  161. package/esm2022/lib/compose/document-resolve.service.mjs +0 -33
  162. package/esm2022/lib/compose/document-resolver.service.mjs +0 -17
  163. package/esm2022/lib/compose/document.component.mjs +0 -48
  164. package/esm2022/lib/compose/document.mobile.component.mjs +0 -23
  165. package/esm2022/lib/compose/document.pane.component.mjs +0 -27
  166. package/esm2022/lib/compose/events/events.component.mjs +0 -29
  167. package/esm2022/lib/compose/form-ref.mjs +0 -43
  168. package/esm2022/lib/compose/form-selector/form-selector.sheet.mjs +0 -57
  169. package/esm2022/lib/compose/form.component.mjs +0 -512
  170. package/esm2022/lib/compose/new-menu.component.mjs +0 -94
  171. package/esm2022/lib/compose/overlay.component.exp.mjs +0 -71
  172. package/esm2022/lib/compose/privilage.directive.mjs +0 -64
  173. package/esm2022/lib/compose/recipient-resolver.service.mjs +0 -18
  174. package/esm2022/lib/compose/state.component.mjs +0 -37
  175. package/esm2022/lib/compose/tag/tags.component.mjs +0 -89
  176. package/esm2022/lib/compose/trace/flow.component.mjs +0 -687
  177. package/esm2022/lib/compose/trace/people.component.mjs +0 -39
  178. package/esm2022/lib/compose/trace/trace.base.mjs +0 -79
  179. package/esm2022/lib/compose/trace/trace.component.mjs +0 -353
  180. package/esm2022/lib/compose/trace/trace.pane.component.mjs +0 -48
  181. package/esm2022/lib/compose/version-compare/version-compare.component.mjs +0 -58
  182. package/esm2022/lib/compose/version-compare/version-compare.directive.mjs +0 -345
  183. package/esm2022/lib/compose/version-compare/version.pane.component.mjs +0 -53
  184. package/esm2022/lib/core/account.service.mjs +0 -38
  185. package/esm2022/lib/core/animated-icon/animated-icon.directive.mjs +0 -17
  186. package/esm2022/lib/core/animations.mjs +0 -168
  187. package/esm2022/lib/core/authentication.mjs +0 -4
  188. package/esm2022/lib/core/avatar/avatar.component.mjs +0 -111
  189. package/esm2022/lib/core/base.mjs +0 -2
  190. package/esm2022/lib/core/checkbox.mjs +0 -38
  191. package/esm2022/lib/core/colors.mjs +0 -322
  192. package/esm2022/lib/core/component-factory-resolver.mjs +0 -48
  193. package/esm2022/lib/core/configuration.mjs +0 -17
  194. package/esm2022/lib/core/datasource.service.mjs +0 -75
  195. package/esm2022/lib/core/decorators.mjs +0 -46
  196. package/esm2022/lib/core/document-factory.service.mjs +0 -156
  197. package/esm2022/lib/core/fields/address.designer.mjs +0 -39
  198. package/esm2022/lib/core/fields/address.field.mjs +0 -65
  199. package/esm2022/lib/core/fields/autocomplete.field.mjs +0 -136
  200. package/esm2022/lib/core/fields/axes-picker.designer.mjs +0 -59
  201. package/esm2022/lib/core/fields/axes-picker.field.mjs +0 -46
  202. package/esm2022/lib/core/fields/checkbox.designer.mjs +0 -38
  203. package/esm2022/lib/core/fields/checkbox.field.mjs +0 -35
  204. package/esm2022/lib/core/fields/checklist.designer.mjs +0 -98
  205. package/esm2022/lib/core/fields/checklist.field.mjs +0 -36
  206. package/esm2022/lib/core/fields/date-range.designer.mjs +0 -43
  207. package/esm2022/lib/core/fields/date-range.field.mjs +0 -46
  208. package/esm2022/lib/core/fields/date.designer.mjs +0 -40
  209. package/esm2022/lib/core/fields/date.field.mjs +0 -40
  210. package/esm2022/lib/core/fields/expression.field.mjs +0 -87
  211. package/esm2022/lib/core/fields/file.designer.mjs +0 -39
  212. package/esm2022/lib/core/fields/file.field.mjs +0 -35
  213. package/esm2022/lib/core/fields/html.designer.mjs +0 -61
  214. package/esm2022/lib/core/fields/html.field.mjs +0 -44
  215. package/esm2022/lib/core/fields/input.designer.mjs +0 -38
  216. package/esm2022/lib/core/fields/input.field.mjs +0 -54
  217. package/esm2022/lib/core/fields/localized-string.field.mjs +0 -49
  218. package/esm2022/lib/core/fields/numeric.designer.mjs +0 -72
  219. package/esm2022/lib/core/fields/numeric.field.mjs +0 -37
  220. package/esm2022/lib/core/fields/options.base.mjs +0 -41
  221. package/esm2022/lib/core/fields/options.component.mjs +0 -58
  222. package/esm2022/lib/core/fields/radio-button.designer.mjs +0 -39
  223. package/esm2022/lib/core/fields/radio-button.field.mjs +0 -33
  224. package/esm2022/lib/core/fields/select.designer.mjs +0 -104
  225. package/esm2022/lib/core/fields/select.field.mjs +0 -36
  226. package/esm2022/lib/core/fields/signature.designer.mjs +0 -37
  227. package/esm2022/lib/core/fields/signature.field.mjs +0 -52
  228. package/esm2022/lib/core/fields/switch.field.mjs +0 -35
  229. package/esm2022/lib/core/fields/tags.designer.mjs +0 -28
  230. package/esm2022/lib/core/fields/tags.field.mjs +0 -51
  231. package/esm2022/lib/core/fields/textarea.designer.mjs +0 -33
  232. package/esm2022/lib/core/fields/textarea.field.mjs +0 -37
  233. package/esm2022/lib/core/fields/time.designer.mjs +0 -41
  234. package/esm2022/lib/core/fields/time.field.mjs +0 -39
  235. package/esm2022/lib/core/fields/timespan.field.mjs +0 -82
  236. package/esm2022/lib/core/fields/yesno.designer.mjs +0 -52
  237. package/esm2022/lib/core/fields/yesno.field.mjs +0 -34
  238. package/esm2022/lib/core/firebase.service.mjs +0 -51
  239. package/esm2022/lib/core/functions.mjs +0 -225
  240. package/esm2022/lib/core/guide/guide.component.mjs +0 -220
  241. package/esm2022/lib/core/guide/guide.service.mjs +0 -124
  242. package/esm2022/lib/core/guide/help-tip.component.mjs +0 -52
  243. package/esm2022/lib/core/http.interceptor.mjs +0 -63
  244. package/esm2022/lib/core/hub.service.mjs +0 -117
  245. package/esm2022/lib/core/identity/identity.component.mjs +0 -66
  246. package/esm2022/lib/core/info/attachment-info.service.mjs +0 -53
  247. package/esm2022/lib/core/info/document-info.service.mjs +0 -21
  248. package/esm2022/lib/core/info/location-info.component.mjs +0 -60
  249. package/esm2022/lib/core/info/map-info.mjs +0 -42
  250. package/esm2022/lib/core/inputs/address.input.mjs +0 -203
  251. package/esm2022/lib/core/inputs/auto-complete.input.mjs +0 -273
  252. package/esm2022/lib/core/inputs/combination-picker-body.mjs +0 -171
  253. package/esm2022/lib/core/inputs/combination-picker.mjs +0 -285
  254. package/esm2022/lib/core/inputs/combination-pool.mjs +0 -105
  255. package/esm2022/lib/core/inputs/file.input.mjs +0 -432
  256. package/esm2022/lib/core/inputs/select.input.mjs +0 -254
  257. package/esm2022/lib/core/inputs/signature.input.mjs +0 -150
  258. package/esm2022/lib/core/inputs/time-picker.mjs +0 -195
  259. package/esm2022/lib/core/inputs/timespan.input.mjs +0 -180
  260. package/esm2022/lib/core/layout.component.mjs +0 -93
  261. package/esm2022/lib/core/lottie-animation.exp.mjs +0 -49
  262. package/esm2022/lib/core/mailbox.service.mjs +0 -445
  263. package/esm2022/lib/core/models.mjs +0 -25
  264. package/esm2022/lib/core/none.component.mjs +0 -37
  265. package/esm2022/lib/core/pipes/action.pipe.mjs +0 -25
  266. package/esm2022/lib/core/pipes/calendar.pipe.mjs +0 -72
  267. package/esm2022/lib/core/pipes/date-format.pipe.mjs +0 -19
  268. package/esm2022/lib/core/pipes/daterange.pipe.mjs +0 -62
  269. package/esm2022/lib/core/pipes/difference.pipe.mjs +0 -15
  270. package/esm2022/lib/core/pipes/duration-format.pipe.mjs +0 -48
  271. package/esm2022/lib/core/pipes/duration.pipe.mjs +0 -19
  272. package/esm2022/lib/core/pipes/filter.pipe.mjs +0 -25
  273. package/esm2022/lib/core/pipes/form.pipe.mjs +0 -25
  274. package/esm2022/lib/core/pipes/join.pipe.mjs +0 -18
  275. package/esm2022/lib/core/pipes/localized-string.pipe.mjs +0 -26
  276. package/esm2022/lib/core/pipes/role.pipe.mjs +0 -25
  277. package/esm2022/lib/core/pipes/sanitize-html.pipe.mjs +0 -18
  278. package/esm2022/lib/core/pipes/sort.pipe.mjs +0 -42
  279. package/esm2022/lib/core/pipes/state.pipe.mjs +0 -25
  280. package/esm2022/lib/core/pipes/time-ago.pipe.mjs +0 -51
  281. package/esm2022/lib/core/pipes/to-now.pipe.mjs +0 -66
  282. package/esm2022/lib/core/pipes/translate.pipe.mjs +0 -58
  283. package/esm2022/lib/core/pipes/type-value.pipe.mjs +0 -42
  284. package/esm2022/lib/core/pipes/user-name.pipe.mjs +0 -21
  285. package/esm2022/lib/core/popup/popup-ref.mjs +0 -20
  286. package/esm2022/lib/core/popup/popup.component.mjs +0 -36
  287. package/esm2022/lib/core/popup/popup.service.mjs +0 -158
  288. package/esm2022/lib/core/popup/tooltip.directive.mjs +0 -81
  289. package/esm2022/lib/core/prompt/ask/ask.dialog.mjs +0 -29
  290. package/esm2022/lib/core/prompt/mask/mask.component.mjs +0 -21
  291. package/esm2022/lib/core/prompt.service.mjs +0 -88
  292. package/esm2022/lib/core/router.mjs +0 -37
  293. package/esm2022/lib/core/save-changes.dialog.mjs +0 -18
  294. package/esm2022/lib/core/session.service.mjs +0 -291
  295. package/esm2022/lib/core/slots/pane-ref.mjs +0 -152
  296. package/esm2022/lib/core/slots/router.directive.mjs +0 -68
  297. package/esm2022/lib/core/slots/router.service.mjs +0 -40
  298. package/esm2022/lib/core/slots/slots.component.mjs +0 -1191
  299. package/esm2022/lib/core/sticky-toolbar.exp.mjs +0 -33
  300. package/esm2022/lib/core/tagging/documents.component.mjs +0 -25
  301. package/esm2022/lib/core/tagging/edit-input.component.mjs +0 -231
  302. package/esm2022/lib/core/tagging/emoji.component.mjs +0 -35
  303. package/esm2022/lib/core/tagging/tagging-item.directive.mjs +0 -39
  304. package/esm2022/lib/core/tagging/tagging.component-base.mjs +0 -29
  305. package/esm2022/lib/core/tagging/tagging.directive.mjs +0 -137
  306. package/esm2022/lib/core/tagging/tagging.pipe.mjs +0 -72
  307. package/esm2022/lib/core/tagging/users.component.mjs +0 -32
  308. package/esm2022/lib/core/translate.service.mjs +0 -125
  309. package/esm2022/lib/core/translations.mjs +0 -1068
  310. package/esm2022/lib/core/virtual-tabs.component.exp.mjs +0 -84
  311. package/esm2022/lib/core/window-title.service.mjs +0 -61
  312. package/esm2022/lib/cube/accum/accum.component.mjs +0 -262
  313. package/esm2022/lib/cube/chart/chart.component.mjs +0 -345
  314. package/esm2022/lib/cube/cube-info.service.mjs +0 -103
  315. package/esm2022/lib/cube/cube-menu.component.mjs +0 -25
  316. package/esm2022/lib/cube/cube-view.component.mjs +0 -186
  317. package/esm2022/lib/cube/cube.service.mjs +0 -446
  318. package/esm2022/lib/cube/declarations.mjs +0 -2
  319. package/esm2022/lib/cube/explore/document-item.component.mjs +0 -38
  320. package/esm2022/lib/cube/explore/explore-item.component.mjs +0 -27
  321. package/esm2022/lib/cube/explore/explore-items.component.mjs +0 -193
  322. package/esm2022/lib/cube/explore/explore.pane.component.mjs +0 -78
  323. package/esm2022/lib/cube/explore/item-resolver.service.mjs +0 -30
  324. package/esm2022/lib/cube/explore/item.pane.component.mjs +0 -21
  325. package/esm2022/lib/cube/filter/filter-tags.component.exp.mjs +0 -75
  326. package/esm2022/lib/cube/filter/filter.component.mjs +0 -137
  327. package/esm2022/lib/cube/grid/grid.component.mjs +0 -210
  328. package/esm2022/lib/cube/matrix/matrix.base.mjs +0 -124
  329. package/esm2022/lib/cube/matrix/matrix.mobile.component.mjs +0 -67
  330. package/esm2022/lib/cube/matrix/matrix.pane.component.mjs +0 -78
  331. package/esm2022/lib/cube/matrix/popup.component.mjs +0 -70
  332. package/esm2022/lib/cube/matrix/table.component.mjs +0 -512
  333. package/esm2022/lib/cube/parallel/item.mjs +0 -40
  334. package/esm2022/lib/cube/parallel/parallel.component.mjs +0 -162
  335. package/esm2022/lib/cube/pivot/pivot.component.mjs +0 -564
  336. package/esm2022/lib/cube/spreadsheet/spreadsheet.component.mjs +0 -382
  337. package/esm2022/lib/cube/spreadsheet/spreadsheet.container.exp.mjs +0 -19
  338. package/esm2022/lib/cube/sum/sum.component.mjs +0 -403
  339. package/esm2022/lib/cube/view-base.mjs +0 -74
  340. package/esm2022/lib/cube/view.mobile.component.mjs +0 -121
  341. package/esm2022/lib/cube/view.pane.component.mjs +0 -99
  342. package/esm2022/lib/dashboard/actions/actions.widget.mjs +0 -127
  343. package/esm2022/lib/dashboard/cube/accum-cube.widget.mjs +0 -151
  344. package/esm2022/lib/dashboard/cube/compare.widget.mjs +0 -216
  345. package/esm2022/lib/dashboard/cube/cube-analysis.base.mjs +0 -117
  346. package/esm2022/lib/dashboard/cube/cube-analysis.widget.mjs +0 -50
  347. package/esm2022/lib/dashboard/cube/cube-chart.widget.mjs +0 -146
  348. package/esm2022/lib/dashboard/cube/document-state.widget.mjs +0 -85
  349. package/esm2022/lib/dashboard/cube/documents.widget.mjs +0 -66
  350. package/esm2022/lib/dashboard/cube/filter/filter.component.mjs +0 -61
  351. package/esm2022/lib/dashboard/dashboard.component.mjs +0 -67
  352. package/esm2022/lib/dashboard/dashboard.pane.component.mjs +0 -18
  353. package/esm2022/lib/dashboard/recents/recents.widget.mjs +0 -98
  354. package/esm2022/lib/dashboard/score/activity.widget.mjs +0 -177
  355. package/esm2022/lib/dashboard/score/compare-groups.widget.mjs +0 -215
  356. package/esm2022/lib/dashboard/score/peers-performance.widget.mjs +0 -251
  357. package/esm2022/lib/dashboard/score/pending-results.widget.mjs +0 -59
  358. package/esm2022/lib/dashboard/score/personal-score.widget.mjs +0 -222
  359. package/esm2022/lib/dashboard/widget-item.component.mjs +0 -91
  360. package/esm2022/lib/dashboard/widget-ref.mjs +0 -18
  361. package/esm2022/lib/designer.module.mjs +0 -106
  362. package/esm2022/lib/desktop.module.mjs +0 -140
  363. package/esm2022/lib/home/about/about.dialog.mjs +0 -25
  364. package/esm2022/lib/home/home-base.component.mjs +0 -92
  365. package/esm2022/lib/home/home.desktop.component.mjs +0 -286
  366. package/esm2022/lib/home/home.mobile.component.mjs +0 -131
  367. package/esm2022/lib/home/notifications/notifications.component.mjs +0 -64
  368. package/esm2022/lib/home/outofoffice/outofoffice.component.mjs +0 -37
  369. package/esm2022/lib/home/sign/sign.component.mjs +0 -56
  370. package/esm2022/lib/impersonate/impersonate.component.mjs +0 -77
  371. package/esm2022/lib/mobile.module.mjs +0 -61
  372. package/esm2022/lib/modules/chart.module.mjs +0 -44
  373. package/esm2022/lib/modules/circular-gauge.module.mjs +0 -20
  374. package/esm2022/lib/modules/date.adapter.mjs +0 -23
  375. package/esm2022/lib/modules/datepicker.intl.mjs +0 -41
  376. package/esm2022/lib/modules/dayjs.module.mjs +0 -43
  377. package/esm2022/lib/modules/diagram.module.mjs +0 -39
  378. package/esm2022/lib/modules/gantt.module.mjs +0 -22
  379. package/esm2022/lib/modules/grid.module.mjs +0 -26
  380. package/esm2022/lib/modules/linear-gauge.module.mjs +0 -17
  381. package/esm2022/lib/modules/material.module.mjs +0 -182
  382. package/esm2022/lib/modules/paginator.intl.mjs +0 -21
  383. package/esm2022/lib/modules/pivot.module.mjs +0 -24
  384. package/esm2022/lib/modules/schedule.module.mjs +0 -24
  385. package/esm2022/lib/modules/spreadsheet.module.mjs +0 -28
  386. package/esm2022/lib/modules/stepper.intl.mjs +0 -17
  387. package/esm2022/lib/modules/texteditor.module.mjs +0 -26
  388. package/esm2022/lib/notifications/filter.component.mjs +0 -24
  389. package/esm2022/lib/notifications/notifications-table.component.mjs +0 -105
  390. package/esm2022/lib/notifications/notifications.component-base.mjs +0 -50
  391. package/esm2022/lib/notifications/notifications.mobile.component.mjs +0 -20
  392. package/esm2022/lib/notifications/notifications.pane.component.mjs +0 -21
  393. package/esm2022/lib/notifications/notifications.service.mjs +0 -78
  394. package/esm2022/lib/notifications/types/commented.notification.mjs +0 -60
  395. package/esm2022/lib/notifications/types/cube-anomaly.notification.mjs +0 -58
  396. package/esm2022/lib/notifications/types/escalated.notification.mjs +0 -33
  397. package/esm2022/lib/notifications/types/invite.notification.mjs +0 -45
  398. package/esm2022/lib/notifications/types/liked.notification.mjs +0 -58
  399. package/esm2022/lib/notifications/types/long-running-task.notification.mjs +0 -31
  400. package/esm2022/lib/notifications/types/notification-base.mjs +0 -40
  401. package/esm2022/lib/notifications/types/nudge.notification.mjs +0 -31
  402. package/esm2022/lib/notifications/types/state-changed.notification.mjs +0 -30
  403. package/esm2022/lib/notifications/types/tagged.notification.mjs +0 -43
  404. package/esm2022/lib/notifications/types/text.notification.mjs +0 -23
  405. package/esm2022/lib/notifications/types/upcoming-event.notification.mjs +0 -36
  406. package/esm2022/lib/options/options.component.mjs +0 -308
  407. package/esm2022/lib/options/options.desktop.component.mjs +0 -26
  408. package/esm2022/lib/options/options.mobile.component.mjs +0 -23
  409. package/esm2022/lib/reports/arguments-component.mjs +0 -81
  410. package/esm2022/lib/reports/cube/documents.component.mjs +0 -38
  411. package/esm2022/lib/reports/cube/grid-documents.component.mjs +0 -72
  412. package/esm2022/lib/reports/cube/performance-hilo.component.mjs +0 -260
  413. package/esm2022/lib/reports/cube/performance-wind.component.mjs +0 -269
  414. package/esm2022/lib/reports/cube/table-documents.component.mjs +0 -57
  415. package/esm2022/lib/reports/cube/usage-args.component.mjs +0 -62
  416. package/esm2022/lib/reports/cube/usage-base.mjs +0 -79
  417. package/esm2022/lib/reports/cube/usage-chart.component.mjs +0 -354
  418. package/esm2022/lib/reports/cube/usage-pivot.component.mjs +0 -257
  419. package/esm2022/lib/reports/cube/usage.component.mjs +0 -40
  420. package/esm2022/lib/reports/report-ref.mjs +0 -38
  421. package/esm2022/lib/reports/report-viewer.component.mjs +0 -156
  422. package/esm2022/lib/reports/report.mobile.component.mjs +0 -127
  423. package/esm2022/lib/reports/report.pane.component.mjs +0 -109
  424. package/esm2022/lib/reports/reports-menu.component.mjs +0 -24
  425. package/esm2022/lib/reports/substitution/substitution.component.mjs +0 -39
  426. package/esm2022/lib/reports/table/table-view.component.mjs +0 -40
  427. package/esm2022/lib/reports/tasks/tasks.component.mjs +0 -95
  428. package/esm2022/lib/routes.desktop.mjs +0 -209
  429. package/esm2022/lib/routes.mobile.mjs +0 -85
  430. package/esm2022/lib/scheduler/schedule.component.mjs +0 -164
  431. package/esm2022/lib/scheduler/scheduler.mobile.component.mjs +0 -37
  432. package/esm2022/lib/scheduler/scheduler.pane.component.mjs +0 -50
  433. package/esm2022/lib/search/cube.component.mjs +0 -47
  434. package/esm2022/lib/search/declarations.mjs +0 -7
  435. package/esm2022/lib/search/document.component.mjs +0 -41
  436. package/esm2022/lib/search/guide.component.mjs +0 -28
  437. package/esm2022/lib/search/path.component.mjs +0 -44
  438. package/esm2022/lib/search/search.service.mjs +0 -155
  439. package/esm2022/lib/shared.module.mjs +0 -622
  440. package/esm2022/lib/system.module.mjs +0 -562
  441. package/esm2022/lib/views/cube/chart.component.mjs +0 -74
  442. package/esm2022/lib/views/cube/cube-base.mjs +0 -101
  443. package/esm2022/lib/views/cube/explore.component.mjs +0 -85
  444. package/esm2022/lib/views/cube/matrix.component.mjs +0 -101
  445. package/esm2022/lib/views/cube/parallel.component.mjs +0 -53
  446. package/esm2022/lib/views/cube/pivot.component.mjs +0 -50
  447. package/esm2022/lib/views/cube/sum.component.mjs +0 -66
  448. package/esm2022/lib/views/cube/view.component.mjs +0 -101
  449. package/esm2022/lib/views/document-view-ref.mjs +0 -27
  450. package/esm2022/lib/views/timeline/timeline.component.mjs +0 -329
  451. package/esm2022/lib/views/view-item.component.mjs +0 -68
  452. package/esm2022/lib/views/views.component.mjs +0 -32
  453. package/esm2022/lib/views/views.mobile.component.mjs +0 -21
  454. package/esm2022/lib/views/views.pane.component.mjs +0 -29
  455. package/esm2022/public-api.mjs +0 -182
@@ -1,251 +0,0 @@
1
- var PeersPerformanceWidget_1;
2
- import { __decorate } from "tslib";
3
- import { Component, HostBinding } from "@angular/core";
4
- import { CircularGauge } from "@syncfusion/ej2-circulargauge";
5
- import dayjs from 'dayjs';
6
- import { Subject, forkJoin } from "rxjs";
7
- import { takeUntil, map } from "rxjs/operators";
8
- import { BizDoc } from "../../core/decorators";
9
- import { FONT_FAMILY } from "../../core/colors";
10
- import * as i0 from "@angular/core";
11
- import * as i1_1 from "../../core/session.service";
12
- import * as i2_1 from "../widget-ref";
13
- import * as i3 from "../../core/account.service";
14
- import * as i4 from "@angular/cdk/bidi";
15
- import * as i5 from "../../core/pipes/duration-format.pipe";
16
- import * as i6 from "../../core/translate.service";
17
- const MAX_PEERS = 10;
18
- let PeersPerformanceWidget = class PeersPerformanceWidget {
19
- static { PeersPerformanceWidget_1 = this; }
20
- static { this.nextId = 0; }
21
- constructor(_session, ref, _elementRef, _service, _dir, _duration, _translate) {
22
- this._session = _session;
23
- this._elementRef = _elementRef;
24
- this._service = _service;
25
- this._dir = _dir;
26
- this._duration = _duration;
27
- this._translate = _translate;
28
- this.id = `peers-performance-${PeersPerformanceWidget_1.nextId++}`;
29
- this.theme = this._session.theme.dark ? 'Material3Dark' : 'Material3';
30
- this.max = 0;
31
- this.enableRtl = this._session.inverse;
32
- this.direction = this.enableRtl ? 'AntiClockWise' : 'ClockWise';
33
- this.lineStyle = { width: 0 };
34
- this.labelStyle = { font: { size: '0px' } };
35
- this.majorTicks = { width: 0 };
36
- this.minorTicks = { width: 0 };
37
- this.legendSettings = {
38
- visible: true, position: 'Top', shape: 'Diamond', alignment: 'Center',
39
- padding: 0,
40
- margin: { top: 0, bottom: 20 },
41
- location: { y: 0 },
42
- textStyle: {
43
- fontFamily: FONT_FAMILY
44
- }
45
- };
46
- this.tooltip = {
47
- enable: true, type: ['Range', 'Pointer'], textStyle: {
48
- fontFamily: FONT_FAMILY
49
- },
50
- annotationSettings: {},
51
- showAtMousePosition: false
52
- };
53
- this.margin = { left: 0, top: 0, right: 0, bottom: 0 };
54
- this._standardHigh = 0;
55
- this._standardLow = 0;
56
- this._destroy = new Subject();
57
- _session.themeChange.pipe(takeUntil(this._destroy)).
58
- subscribe(t => {
59
- this.theme = t.dark ? 'Material3Dark' : 'Material3';
60
- this.gauge.theme = this.theme;
61
- this._prepare();
62
- this._refresh();
63
- this._animate();
64
- });
65
- ref.resize().subscribe(d => {
66
- this.height = `${d.height}px`;
67
- this.width = `${d.width}px`;
68
- if (this.gauge) {
69
- this.gauge.height = this.height;
70
- this.gauge.width = this.width;
71
- this._animate();
72
- }
73
- });
74
- }
75
- onBind(data) {
76
- this._decorare(data).subscribe(() => {
77
- this._prepare();
78
- if (!this.gauge)
79
- this._draw();
80
- else
81
- this._refresh();
82
- this._animate();
83
- });
84
- }
85
- /**
86
- *
87
- * @param data
88
- */
89
- _decorare(data) {
90
- const observers = [];
91
- data.forEach(i => {
92
- if (i.duration > this.max)
93
- this.max = i.duration;
94
- if (i.userId === this._session.profile.userId) {
95
- this._score = i.duration;
96
- i.name = this._translate.get('You');
97
- }
98
- else {
99
- const promise = this._service.get(i.userId).pipe(map(u => i.name = u.nick || u.name));
100
- observers.push(promise);
101
- }
102
- if (i.standard) {
103
- if (i.standard > this._standardHigh)
104
- this._standardHigh = i.standard;
105
- if (this._standardLow === 0 || i.standard < this._standardLow)
106
- this._standardLow = i.standard;
107
- if (i.standard > this.max)
108
- this.max = i.standard;
109
- }
110
- });
111
- this._data = data.sort((i1, i2) => i1.duration < i2.duration ? 1 : -1).slice(0, MAX_PEERS);
112
- return forkJoin(observers);
113
- }
114
- _prepare() {
115
- const step = Math.floor(70 / this._data.length), width = Math.min(15, Math.floor(80 / this._data.length / 2)), zero = 4 / 9;
116
- let radius = 95;
117
- const annotations = [];
118
- const pointers = [];
119
- let c = 0;
120
- const palettes = this._session.accentPalette;
121
- this._data.forEach((d, _i) => {
122
- pointers.push({
123
- value: 0,
124
- type: 'RangeBar',
125
- color: palettes[c],
126
- radius: `${radius + 5}%`,
127
- animation: {
128
- duration: 1500 * d.duration / this.max,
129
- enable: true
130
- },
131
- pointerWidth: width
132
- });
133
- if (c === 9)
134
- c = 0;
135
- else
136
- c++;
137
- const duration = dayjs.duration(d.duration, 's');
138
- const ratio = d.duration / this.max;
139
- const days = duration.hours() > 0 ? `${Math.floor(duration.asDays())}:${duration.hours()}` : `${Math.floor(duration.asDays())}`;
140
- annotations.push({
141
- description: `${days}`,
142
- content: `<span class="label">${days}</span>`,
143
- radius: `${radius + 1}%`,
144
- angle: !this.enableRtl ? (ratio < zero ?
145
- 205 + Math.round(140 * ratio / zero) :
146
- 165 - Math.round(140 * (1 - ratio) / zero)) : (ratio < zero ?
147
- 205 + Math.round(140 * ratio / zero) :
148
- 165 - Math.round(140 * (1 - ratio) / zero)),
149
- textStyle: {
150
- opacity: 0.8,
151
- fontFamily: FONT_FAMILY,
152
- size: '10px'
153
- },
154
- zIndex: '1'
155
- });
156
- annotations.push({
157
- description: `${d.name}`,
158
- content: `<span class="label">${d.name}</span>`,
159
- radius: `${radius}%`,
160
- angle: !this.enableRtl ? 195 + (radius - 95) / 3.14 : 195 + (radius - 95) / 3.14,
161
- textStyle: {
162
- opacity: 0.8,
163
- fontFamily: FONT_FAMILY,
164
- size: '10px'
165
- },
166
- zIndex: '1'
167
- });
168
- radius -= step;
169
- });
170
- const ranges = [];
171
- if (this._standardHigh) {
172
- ranges.push({
173
- start: this._standardLow < this._standardHigh ? this._standardLow : 0,
174
- legendText: this._translate.get('Standard'),
175
- end: this._standardHigh,
176
- startWidth: 6,
177
- endWidth: 6,
178
- color: this._session.getPrimery(400),
179
- radius: `103%`
180
- });
181
- }
182
- this.ranges = ranges,
183
- this.annotations = annotations,
184
- this.pointers = pointers;
185
- }
186
- _draw() {
187
- this.gauge && this.gauge.destroy();
188
- this.gauge = new CircularGauge({
189
- centerY: '45%',
190
- centerX: '50%',
191
- description: '',
192
- width: this.width,
193
- height: this.height,
194
- background: 'transparent',
195
- theme: this.theme,
196
- tooltip: this.tooltip,
197
- margin: this.margin,
198
- enableRtl: this.enableRtl,
199
- legendSettings: this.legendSettings,
200
- tooltipRender: this.tooltipRender.bind(this),
201
- axes: [{
202
- radius: '90%', maximum: this.max, startAngle: 200, endAngle: 160, majorTicks: this.majorTicks,
203
- labelStyle: this.labelStyle, lineStyle: this.lineStyle, minorTicks: this.minorTicks,
204
- annotations: this.annotations, ranges: this.ranges, pointers: this.pointers, direction: this.direction
205
- }]
206
- }, this._elementRef.nativeElement);
207
- }
208
- _refresh() {
209
- const axis = this.gauge.axes[0];
210
- axis.annotations = this.annotations;
211
- axis.pointers = this.pointers;
212
- axis.ranges = this.ranges;
213
- this.gauge.refresh();
214
- }
215
- _animate() {
216
- setTimeout(() => this._data.forEach((p, i) => this.gauge.setPointerValue(0, i, p.duration)), 500);
217
- }
218
- tooltipRender(e) {
219
- if (e.range)
220
- e.content = e.range.start ? `${e.range.legendText} ${this._duration.transform(e.range.start)} - ${this._duration.transform(e.range.end)}`
221
- : `${e.range.legendText} ${this._duration.transform(e.range.end)}`;
222
- else
223
- e.content = `${this._duration.transform(e.pointer.value)}`;
224
- }
225
- ngOnDestroy() {
226
- this._destroy.next();
227
- this._destroy.complete();
228
- }
229
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: PeersPerformanceWidget, deps: [{ token: i1_1.SessionService }, { token: i2_1.WidgetRef }, { token: i0.ElementRef }, { token: i3.AccountService }, { token: i4.Directionality }, { token: i5.DurationFormatPipe }, { token: i6.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
230
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: PeersPerformanceWidget, selector: "ng-component", host: { attributes: { "dir": "ltr" }, properties: { "id": "this.id" }, styleAttribute: "display: block" }, ngImport: i0, template: '', isInline: true }); }
231
- };
232
- PeersPerformanceWidget = PeersPerformanceWidget_1 = __decorate([
233
- BizDoc({
234
- selector: 'bizdoc-peers-performance'
235
- })
236
- ], PeersPerformanceWidget);
237
- export { PeersPerformanceWidget };
238
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: PeersPerformanceWidget, decorators: [{
239
- type: Component,
240
- args: [{
241
- template: '',
242
- //templateUrl: 'peers-performance.widget.html',
243
- host: {
244
- style: 'display: block',
245
- dir: 'ltr'
246
- }
247
- }]
248
- }], ctorParameters: () => [{ type: i1_1.SessionService }, { type: i2_1.WidgetRef }, { type: i0.ElementRef }, { type: i3.AccountService }, { type: i4.Directionality }, { type: i5.DurationFormatPipe }, { type: i6.TranslateService }], propDecorators: { id: [{
249
- type: HostBinding
250
- }] } });
251
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVlcnMtcGVyZm9ybWFuY2Uud2lkZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2Rhc2hib2FyZC9zY29yZS9wZWVycy1wZXJmb3JtYW5jZS53aWRnZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUF5QixXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUUsT0FBTyxFQUFFLGFBQWEsRUFBZ0wsTUFBTSwrQkFBK0IsQ0FBQztBQUM1TyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLE9BQU8sRUFBYyxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFNL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7Ozs7OztBQUVoRCxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUM7QUFZZCxJQUFNLHNCQUFzQixHQUE1QixNQUFNLHNCQUFzQjs7YUFDMUIsV0FBTSxHQUFHLENBQUMsQUFBSixDQUFLO0lBdUNsQixZQUFvQixRQUF3QixFQUMxQyxHQUFjLEVBQ04sV0FBdUIsRUFDdkIsUUFBd0IsRUFDeEIsSUFBb0IsRUFDcEIsU0FBNkIsRUFDN0IsVUFBNEI7UUFObEIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFFbEMsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFDeEIsU0FBSSxHQUFKLElBQUksQ0FBZ0I7UUFDcEIsY0FBUyxHQUFULFNBQVMsQ0FBb0I7UUFDN0IsZUFBVSxHQUFWLFVBQVUsQ0FBa0I7UUEzQzdCLE9BQUUsR0FBRyxxQkFBcUIsd0JBQXNCLENBQUMsTUFB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Q0FBQzs7WUFFckUsQ0FBQyxDQUFDLE9BQU8sR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztJQUNoRSxDQUFDO0lBQ0QsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDOzhHQXhOVSxzQkFBc0I7a0dBQXRCLHNCQUFzQiwrSkFWdkIsRUFBRTs7QUFVRCxzQkFBc0I7SUFIbEMsTUFBTSxDQUFDO1FBQ04sUUFBUSxFQUFFLDBCQUEwQjtLQUNyQyxDQUFDO0dBQ1csc0JBQXNCLENBeU5sQzs7MkZBek5ZLHNCQUFzQjtrQkFYbEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsRUFBRTtvQkFDWiwrQ0FBK0M7b0JBQy9DLElBQUksRUFBRTt3QkFDSixLQUFLLEVBQUUsZ0JBQWdCO3dCQUN2QixHQUFHLEVBQUUsS0FBSztxQkFDWDtpQkFDRjtrUUFPVSxFQUFFO3NCQURWLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBEaXJlY3Rpb25hbGl0eSB9IGZyb20gXCJAYW5ndWxhci9jZGsvYmlkaVwiO1xyXG5pbXBvcnQgeyBDaXJjdWxhckdhdWdlLCBSYW5nZU1vZGVsLCBBbm5vdGF0aW9uTW9kZWwsIFBvaW50ZXJNb2RlbCwgVGlja01vZGVsLCBMYWJlbE1vZGVsLCBMaW5lTW9kZWwsIEdhdWdlRGlyZWN0aW9uLCBJVG9vbHRpcFJlbmRlckV2ZW50QXJncywgVG9vbHRpcFNldHRpbmdzTW9kZWwsIE1hcmdpbk1vZGVsLCBMZWdlbmRTZXR0aW5nc01vZGVsIH0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1jaXJjdWxhcmdhdWdlXCI7XHJcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIE9ic2VydmFibGUsIGZvcmtKb2luIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgdGFrZVVudGlsLCBtYXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgRHVyYXRpb25Gb3JtYXRQaXBlIH0gZnJvbSBcIi4uLy4uL2NvcmUvcGlwZXMvZHVyYXRpb24tZm9ybWF0LnBpcGVcIjtcclxuaW1wb3J0IHsgQml6RG9jIH0gZnJvbSBcIi4uLy4uL2NvcmUvZGVjb3JhdG9yc1wiO1xyXG5pbXBvcnQgeyBXaWRnZXRDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vY29yZS9iYXNlXCI7XHJcbmltcG9ydCB7IEFjY291bnRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvYWNjb3VudC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS90cmFuc2xhdGUuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBXaWRnZXRSZWYgfSBmcm9tIFwiLi4vd2lkZ2V0LXJlZlwiO1xyXG5pbXBvcnQgeyBGT05UX0ZBTUlMWSB9IGZyb20gXCIuLi8uLi9jb3JlL2NvbG9yc1wiO1xyXG5cclxuY29uc3QgTUFYX1BFRVJTID0gMTA7XHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlOiAnJyxcclxuICAvL3RlbXBsYXRlVXJsOiAncGVlcnMtcGVyZm9ybWFuY2Uud2lkZ2V0Lmh0bWwnLFxyXG4gIGhvc3Q6IHtcclxuICAgIHN0eWxlOiAnZGlzcGxheTogYmxvY2snLFxyXG4gICAgZGlyOiAnbHRyJ1xyXG4gIH1cclxufSlcclxuQEJpekRvYyh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtcGVlcnMtcGVyZm9ybWFuY2UnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQZWVyc1BlcmZvcm1hbmNlV2lkZ2V0IGltcGxlbWVudHMgV2lkZ2V0Q29tcG9uZW50PFBlZXJNb2RlbFtdPiwgT25EZXN0cm95IHtcclxuICBzdGF0aWMgbmV4dElkID0gMDtcclxuICBASG9zdEJpbmRpbmcoKVxyXG4gIHJlYWRvbmx5IGlkID0gYHBlZXJzLXBlcmZvcm1hbmNlLSR7UGVlcnNQZXJmb3JtYW5jZVdpZGdldC5uZXh0SWQrK31gO1xyXG4gIGdhdWdlOiBDaXJjdWxhckdhdWdlO1xyXG4gIHRoZW1lOiAnTWF0ZXJpYWwzJyB8ICdNYXRlcmlhbDNEYXJrJyA9IHRoaXMuX3Nlc3Npb24udGhlbWUuZGFyayA/ICdNYXRlcmlhbDNEYXJrJyA6ICdNYXRlcmlhbDMnO1xyXG4gIGFubm90YXRpb25zOiBBbm5vdGF0aW9uTW9kZWxbXTtcclxuICByYW5nZXM6IFJhbmdlTW9kZWxbXTtcclxuICBwb2ludGVyczogUG9pbnRlck1vZGVsW107XHJcbiAgbWF4ID0gMDtcclxuICByZWFkb25seSBlbmFibGVSdGwgPSB0aGlzLl9zZXNzaW9uLmludmVyc2U7XHJcbiAgcmVhZG9ubHkgZGlyZWN0aW9uOiBHYXVnZURpcmVjdGlvbiA9IHRoaXMuZW5hYmxlUnRsID8gJ0FudGlDbG9ja1dpc2UnIDogJ0Nsb2NrV2lzZSc7XHJcbiAgcmVhZG9ubHkgbGluZVN0eWxlOiBMaW5lTW9kZWwgPSB7IHdpZHRoOiAwIH07XHJcbiAgcmVhZG9ubHkgbGFiZWxTdHlsZTogTGFiZWxNb2RlbCA9IHsgZm9udDogeyBzaXplOiAnMHB4JyB9IH07XHJcbiAgcmVhZG9ubHkgbWFqb3JUaWNrczogVGlja01vZGVsID0geyB3aWR0aDogMCB9O1xyXG4gIHJlYWRvbmx5IG1pbm9yVGlja3M6IFRpY2tNb2RlbCA9IHsgd2lkdGg6IDAgfTtcclxuICByZWFkb25seSBsZWdlbmRTZXR0aW5nczogTGVnZW5kU2V0dGluZ3NNb2RlbCA9IHtcclxuICAgIHZpc2libGU6IHRydWUsIHBvc2l0aW9uOiAnVG9wJywgc2hhcGU6ICdEaWFtb25kJywgYWxpZ25tZW50OiAnQ2VudGVyJyxcclxuICAgIHBhZGRpbmc6IDAsXHJcbiAgICBtYXJnaW46IHsgdG9wOiAwLCBib3R0b206IDIwIH0sXHJcbiAgICBsb2NhdGlvbjogeyB5OiAwIH0sXHJcbiAgICB0ZXh0U3R5bGU6IHtcclxuICAgICAgZm9udEZhbWlseTogRk9OVF9GQU1JTFlcclxuICAgIH1cclxuICB9O1xyXG4gIHJlYWRvbmx5IHRvb2x0aXA6IFRvb2x0aXBTZXR0aW5nc01vZGVsID0ge1xyXG4gICAgZW5hYmxlOiB0cnVlLCB0eXBlOiBbJ1JhbmdlJywgJ1BvaW50ZXInXSwgdGV4dFN0eWxlOiB7XHJcbiAgICAgIGZvbnRGYW1pbHk6IEZPTlRfRkFNSUxZXHJcbiAgICB9LFxyXG4gICAgYW5ub3RhdGlvblNldHRpbmdzOiB7fSxcclxuICAgIHNob3dBdE1vdXNlUG9zaXRpb246IGZhbHNlXHJcbiAgfTtcclxuICByZWFkb25seSBtYXJnaW46IE1hcmdpbk1vZGVsID0geyBsZWZ0OiAwLCB0b3A6IDAsIHJpZ2h0OiAwLCBib3R0b206IDAgfTtcclxuICBoZWlnaHQ6IHN0cmluZztcclxuICB3aWR0aDogc3RyaW5nO1xyXG4gIHByaXZhdGUgX3Njb3JlOiBudW1iZXI7XHJcbiAgcHJpdmF0ZSBfc3RhbmRhcmRIaWdoID0gMDtcclxuICBwcml2YXRlIF9zdGFuZGFyZExvdyA9IDA7XHJcbiAgcHJpdmF0ZSBfZGF0YTogUGVlck1vZGVsW107XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICByZWY6IFdpZGdldFJlZixcclxuICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIF9zZXJ2aWNlOiBBY2NvdW50U2VydmljZSxcclxuICAgIHByaXZhdGUgX2RpcjogRGlyZWN0aW9uYWxpdHksXHJcbiAgICBwcml2YXRlIF9kdXJhdGlvbjogRHVyYXRpb25Gb3JtYXRQaXBlLFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7XHJcbiAgICBfc2Vzc2lvbi50aGVtZUNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuXHJcbiAgICAgIHN1YnNjcmliZSh0ID0+IHtcclxuICAgICAgICB0aGlzLnRoZW1lID0gdC5kYXJrID8gJ01hdGVyaWFsM0RhcmsnIDogJ01hdGVyaWFsMyc7XHJcbiAgICAgICAgdGhpcy5nYXVnZS50aGVtZSA9IHRoaXMudGhlbWU7XHJcbiAgICAgICAgdGhpcy5fcHJlcGFyZSgpO1xyXG4gICAgICAgIHRoaXMuX3JlZnJlc2goKTtcclxuICAgICAgICB0aGlzLl9hbmltYXRlKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgcmVmLnJlc2l6ZSgpLnN1YnNjcmliZShkID0+IHtcclxuICAgICAgdGhpcy5oZWlnaHQgPSBgJHtkLmhlaWdodH1weGA7XHJcbiAgICAgIHRoaXMud2lkdGggPSBgJHtkLndpZHRofXB4YDtcclxuICAgICAgaWYgKHRoaXMuZ2F1Z2UpIHtcclxuICAgICAgICB0aGlzLmdhdWdlLmhlaWdodCA9IHRoaXMuaGVpZ2h0O1xyXG4gICAgICAgIHRoaXMuZ2F1Z2Uud2lkdGggPSB0aGlzLndpZHRoO1xyXG4gICAgICAgIHRoaXMuX2FuaW1hdGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG9uQmluZChkYXRhOiBQZWVyTW9kZWxbXSkge1xyXG4gICAgdGhpcy5fZGVjb3JhcmUoZGF0YSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5fcHJlcGFyZSgpO1xyXG4gICAgICBpZiAoIXRoaXMuZ2F1Z2UpIHRoaXMuX2RyYXcoKTtcclxuICAgICAgZWxzZSB0aGlzLl9yZWZyZXNoKCk7XHJcbiAgICAgIHRoaXMuX2FuaW1hdGUoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gZGF0YVxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2RlY29yYXJlKGRhdGE6IFBlZXJNb2RlbFtdKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IG9ic2VydmVyczogT2JzZXJ2YWJsZTxhbnk+W10gPSBbXTtcclxuICAgIGRhdGEuZm9yRWFjaChpID0+IHtcclxuICAgICAgaWYgKGkuZHVyYXRpb24gPiB0aGlzLm1heCkgdGhpcy5tYXggPSBpLmR1cmF0aW9uO1xyXG4gICAgICBpZiAoaS51c2VySWQgPT09IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS51c2VySWQpIHtcclxuICAgICAgICB0aGlzLl9zY29yZSA9IGkuZHVyYXRpb247XHJcbiAgICAgICAgaS5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnWW91Jyk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgY29uc3QgcHJvbWlzZSA9IHRoaXMuX3NlcnZpY2UuZ2V0KGkudXNlcklkKS5waXBlKG1hcCh1ID0+XHJcbiAgICAgICAgICBpLm5hbWUgPSB1Lm5pY2sgfHwgdS5uYW1lKSk7XHJcbiAgICAgICAgb2JzZXJ2ZXJzLnB1c2gocHJvbWlzZSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGkuc3RhbmRhcmQpIHtcclxuICAgICAgICBpZiAoaS5zdGFuZGFyZCA+IHRoaXMuX3N0YW5kYXJkSGlnaCkgdGhpcy5fc3RhbmRhcmRIaWdoID0gaS5zdGFuZGFyZDtcclxuICAgICAgICBpZiAodGhpcy5fc3RhbmRhcmRMb3cgPT09IDAgfHwgaS5zdGFuZGFyZCA8IHRoaXMuX3N0YW5kYXJkTG93KSB0aGlzLl9zdGFuZGFyZExvdyA9IGkuc3RhbmRhcmQ7XHJcbiAgICAgICAgaWYgKGkuc3RhbmRhcmQgPiB0aGlzLm1heCkgdGhpcy5tYXggPSBpLnN0YW5kYXJkO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX2RhdGEgPSBkYXRhLnNvcnQoKGkxLCBpMikgPT4gaTEuZHVyYXRpb24gPCBpMi5kdXJhdGlvbiA/IDEgOiAtMSkuc2xpY2UoMCwgTUFYX1BFRVJTKTtcclxuICAgIHJldHVybiBmb3JrSm9pbihvYnNlcnZlcnMpO1xyXG4gIH1cclxuICBwcml2YXRlIF9wcmVwYXJlKCkge1xyXG4gICAgY29uc3Qgc3RlcCA9IE1hdGguZmxvb3IoNzAgLyB0aGlzLl9kYXRhLmxlbmd0aCksIHdpZHRoID0gTWF0aC5taW4oMTUsIE1hdGguZmxvb3IoODAgLyB0aGlzLl9kYXRhLmxlbmd0aCAvIDIpKSwgemVybyA9IDQgLyA5O1xyXG4gICAgbGV0IHJhZGl1cyA9IDk1O1xyXG4gICAgY29uc3QgYW5ub3RhdGlvbnM6IEFubm90YXRpb25Nb2RlbFtdID0gW107XHJcbiAgICBjb25zdCBwb2ludGVyczogUG9pbnRlck1vZGVsW10gPSBbXTtcclxuICAgIGxldCBjID0gMDtcclxuICAgIGNvbnN0IHBhbGV0dGVzID0gdGhpcy5fc2Vzc2lvbi5hY2NlbnRQYWxldHRlO1xyXG4gICAgdGhpcy5fZGF0YS5mb3JFYWNoKChkLCBfaSkgPT4ge1xyXG4gICAgICBwb2ludGVycy5wdXNoKHtcclxuICAgICAgICB2YWx1ZTogMCxcclxuICAgICAgICB0eXBlOiAnUmFuZ2VCYXInLFxyXG4gICAgICAgIGNvbG9yOiBwYWxldHRlc1tjXSxcclxuICAgICAgICByYWRpdXM6IGAke3JhZGl1cyArIDV9JWAsXHJcbiAgICAgICAgYW5pbWF0aW9uOiB7XHJcbiAgICAgICAgICBkdXJhdGlvbjogMTUwMCAqIGQuZHVyYXRpb24gLyB0aGlzLm1heCxcclxuICAgICAgICAgIGVuYWJsZTogdHJ1ZVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcG9pbnRlcldpZHRoOiB3aWR0aFxyXG4gICAgICB9KTtcclxuICAgICAgaWYgKGMgPT09IDkpXHJcbiAgICAgICAgYyA9IDA7XHJcbiAgICAgIGVsc2VcclxuICAgICAgICBjKys7XHJcbiAgICAgIGNvbnN0IGR1cmF0aW9uID0gZGF5anMuZHVyYXRpb24oZC5kdXJhdGlvbiwgJ3MnKTtcclxuICAgICAgY29uc3QgcmF0aW8gPSBkLmR1cmF0aW9uIC8gdGhpcy5tYXg7XHJcbiAgICAgIGNvbnN0IGRheXMgPSBkdXJhdGlvbi5ob3VycygpID4gMCA/IGAke01hdGguZmxvb3IoZHVyYXRpb24uYXNEYXlzKCkpfToke2R1cmF0aW9uLmhvdXJzKCl9YCA6IGAke01hdGguZmxvb3IoZHVyYXRpb24uYXNEYXlzKCkpfWA7XHJcbiAgICAgIGFubm90YXRpb25zLnB1c2goe1xyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBgJHtkYXlzfWAsXHJcbiAgICAgICAgY29udGVudDogYDxzcGFuIGNsYXNzPVwibGFiZWxcIj4ke2RheXN9PC9zcGFuPmAsXHJcbiAgICAgICAgcmFkaXVzOiBgJHtyYWRpdXMgKyAxfSVgLFxyXG4gICAgICAgIGFuZ2xlOiAhdGhpcy5lbmFibGVSdGwgPyAocmF0aW8gPCB6ZXJvID9cclxuICAgICAgICAgIDIwNSArIE1hdGgucm91bmQoMTQwICogcmF0aW8gLyB6ZXJvKSA6XHJcbiAgICAgICAgICAxNjUgLSBNYXRoLnJvdW5kKDE0MCAqICgxIC0gcmF0aW8pIC8gemVybykpIDogKHJhdGlvIDwgemVybyA/XHJcbiAgICAgICAgICAgIDIwNSArIE1hdGgucm91bmQoMTQwICogcmF0aW8gLyB6ZXJvKSA6XHJcbiAgICAgICAgICAgIDE2NSAtIE1hdGgucm91bmQoMTQwICogKDEgLSByYXRpbykgLyB6ZXJvKSksXHJcbiAgICAgICAgdGV4dFN0eWxlOiB7XHJcbiAgICAgICAgICBvcGFjaXR5OiAwLjgsXHJcbiAgICAgICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWSxcclxuICAgICAgICAgIHNpemU6ICcxMHB4J1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgekluZGV4OiAnMSdcclxuICAgICAgfSk7XHJcbiAgICAgIGFubm90YXRpb25zLnB1c2goe1xyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBgJHtkLm5hbWV9YCxcclxuICAgICAgICBjb250ZW50OiBgPHNwYW4gY2xhc3M9XCJsYWJlbFwiPiR7ZC5uYW1lfTwvc3Bhbj5gLFxyXG4gICAgICAgIHJhZGl1czogYCR7cmFkaXVzfSVgLFxyXG4gICAgICAgIGFuZ2xlOiAhdGhpcy5lbmFibGVSdGwgPyAxOTUgKyAocmFkaXVzIC0gOTUpIC8gMy4xNCA6IDE5NSArIChyYWRpdXMgLSA5NSkgLyAzLjE0LFxyXG4gICAgICAgIHRleHRTdHlsZToge1xyXG4gICAgICAgICAgb3BhY2l0eTogMC44LFxyXG4gICAgICAgICAgZm9udEZhbWlseTogRk9OVF9GQU1JTFksXHJcbiAgICAgICAgICBzaXplOiAnMTBweCdcclxuICAgICAgICB9LFxyXG4gICAgICAgIHpJbmRleDogJzEnXHJcbiAgICAgIH0pO1xyXG4gICAgICByYWRpdXMgLT0gc3RlcDtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgcmFuZ2VzOiBSYW5nZU1vZGVsW10gPSBbXTtcclxuICAgIGlmICh0aGlzLl9zdGFuZGFyZEhpZ2gpIHtcclxuICAgICAgcmFuZ2VzLnB1c2goe1xyXG4gICAgICAgIHN0YXJ0OiB0aGlzLl9zdGFuZGFyZExvdyA8IHRoaXMuX3N0YW5kYXJkSGlnaCA/IHRoaXMuX3N0YW5kYXJkTG93IDogMCxcclxuICAgICAgICBsZWdlbmRUZXh0OiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdTdGFuZGFyZCcpLFxyXG4gICAgICAgIGVuZDogdGhpcy5fc3RhbmRhcmRIaWdoLFxyXG4gICAgICAgIHN0YXJ0V2lkdGg6IDYsXHJcbiAgICAgICAgZW5kV2lkdGg6IDYsXHJcbiAgICAgICAgY29sb3I6IHRoaXMuX3Nlc3Npb24uZ2V0UHJpbWVyeSg0MDApLFxyXG4gICAgICAgIHJhZGl1czogYDEwMyVgXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5yYW5nZXMgPSByYW5nZXMsXHJcbiAgICAgIHRoaXMuYW5ub3RhdGlvbnMgPSBhbm5vdGF0aW9ucyxcclxuICAgICAgdGhpcy5wb2ludGVycyA9IHBvaW50ZXJzO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZHJhdygpIHtcclxuICAgIHRoaXMuZ2F1Z2UgJiYgdGhpcy5nYXVnZS5kZXN0cm95KCk7XHJcbiAgICB0aGlzLmdhdWdlID0gbmV3IENpcmN1bGFyR2F1Z2Uoe1xyXG4gICAgICBjZW50ZXJZOiAnNDUlJyxcclxuICAgICAgY2VudGVyWDogJzUwJScsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiAnJyxcclxuICAgICAgd2lkdGg6IHRoaXMud2lkdGgsXHJcbiAgICAgIGhlaWdodDogdGhpcy5oZWlnaHQsXHJcbiAgICAgIGJhY2tncm91bmQ6ICd0cmFuc3BhcmVudCcsXHJcbiAgICAgIHRoZW1lOiB0aGlzLnRoZW1lLFxyXG4gICAgICB0b29sdGlwOiB0aGlzLnRvb2x0aXAsXHJcbiAgICAgIG1hcmdpbjogdGhpcy5tYXJnaW4sXHJcbiAgICAgIGVuYWJsZVJ0bDogdGhpcy5lbmFibGVSdGwsXHJcbiAgICAgIGxlZ2VuZFNldHRpbmdzOiB0aGlzLmxlZ2VuZFNldHRpbmdzLFxyXG4gICAgICB0b29sdGlwUmVuZGVyOiB0aGlzLnRvb2x0aXBSZW5kZXIuYmluZCh0aGlzKSxcclxuICAgICAgYXhlczogW3tcclxuICAgICAgICByYWRpdXM6ICc5MCUnLCBtYXhpbXVtOiB0aGlzLm1heCwgc3RhcnRBbmdsZTogMjAwLCBlbmRBbmdsZTogMTYwLCBtYWpvclRpY2tzOiB0aGlzLm1ham9yVGlja3MsXHJcbiAgICAgICAgbGFiZWxTdHlsZTogdGhpcy5sYWJlbFN0eWxlLCBsaW5lU3R5bGU6IHRoaXMubGluZVN0eWxlLCBtaW5vclRpY2tzOiB0aGlzLm1pbm9yVGlja3MsXHJcbiAgICAgICAgYW5ub3RhdGlvbnM6IHRoaXMuYW5ub3RhdGlvbnMsIHJhbmdlczogdGhpcy5yYW5nZXMsIHBvaW50ZXJzOiB0aGlzLnBvaW50ZXJzLCBkaXJlY3Rpb246IHRoaXMuZGlyZWN0aW9uXHJcbiAgICAgIH1dXHJcbiAgICB9LCB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xyXG4gIH1cclxuICBwcml2YXRlIF9yZWZyZXNoKCkge1xyXG4gICAgY29uc3QgYXhpcyA9IHRoaXMuZ2F1Z2UuYXhlc1swXTtcclxuICAgIGF4aXMuYW5ub3RhdGlvbnMgPSB0aGlzLmFubm90YXRpb25zO1xyXG4gICAgYXhpcy5wb2ludGVycyA9IHRoaXMucG9pbnRlcnM7XHJcbiAgICBheGlzLnJhbmdlcyA9IHRoaXMucmFuZ2VzO1xyXG4gICAgdGhpcy5nYXVnZS5yZWZyZXNoKCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2FuaW1hdGUoKSB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuX2RhdGEuZm9yRWFjaCgocCwgaSkgPT5cclxuICAgICAgdGhpcy5nYXVnZS5zZXRQb2ludGVyVmFsdWUoMCwgaSwgcC5kdXJhdGlvbikpLCA1MDApO1xyXG4gIH1cclxuXHJcbiAgdG9vbHRpcFJlbmRlcihlOiBJVG9vbHRpcFJlbmRlckV2ZW50QXJncykge1xyXG4gICAgaWYgKGUucmFuZ2UpXHJcbiAgICAgIGUuY29udGVudCA9IGUucmFuZ2Uuc3RhcnQgPyBgJHtlLnJhbmdlLmxlZ2VuZFRleHR9ICR7dGhpcy5fZHVyYXRpb24udHJhbnNmb3JtKGUucmFuZ2Uuc3RhcnQpfSAtICR7dGhpcy5fZHVyYXRpb24udHJhbnNmb3JtKGUucmFuZ2UuZW5kKX1gXHJcbiAgICAgICAgOiBgJHtlLnJhbmdlLmxlZ2VuZFRleHR9ICR7dGhpcy5fZHVyYXRpb24udHJhbnNmb3JtKGUucmFuZ2UuZW5kKX1gO1xyXG4gICAgZWxzZVxyXG4gICAgICBlLmNvbnRlbnQgPSBgJHt0aGlzLl9kdXJhdGlvbi50cmFuc2Zvcm0oZS5wb2ludGVyIS52YWx1ZSl9YDtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuaW50ZXJmYWNlIFBlZXJNb2RlbCB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIC8qKiBzZWNvbmRzICovXHJcbiAgZHVyYXRpb246IG51bWJlcjtcclxuICBzdGFuZGFyZD86IG51bWJlcjtcclxufVxyXG5cclxuIl19
@@ -1,59 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { Component, ViewChild, HostBinding } from "@angular/core";
3
- import { MatSort } from "@angular/material/sort";
4
- import { MatTableDataSource } from "@angular/material/table";
5
- import { Subject } from "rxjs";
6
- import { BizDoc } from "../../core/decorators";
7
- import { listAnimation, itemAnimation } from "../../core/animations";
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "../widget-ref";
10
- import * as i2 from "@angular/cdk/bidi";
11
- import * as i3 from "@angular/material/table";
12
- import * as i4 from "@angular/material/sort";
13
- import * as i5 from "../../core/identity/identity.component";
14
- import * as i6 from "../../core/popup/tooltip.directive";
15
- import * as i7 from "../../core/pipes/duration.pipe";
16
- import * as i8 from "../../core/pipes/duration-format.pipe";
17
- import * as i9 from "../../core/pipes/translate.pipe";
18
- let PendingResultsWidget = class PendingResultsWidget {
19
- constructor(ref) {
20
- this.columns = ['name', 'duration', 'standard', 'count'];
21
- this._destroy = new Subject();
22
- ref.resize().subscribe(d => this.height = `${d.height}px`);
23
- }
24
- onBind(data) {
25
- this.dataSource = new MatTableDataSource(data);
26
- this.sort.active = 'duration';
27
- this.sort.direction = 'desc';
28
- this.dataSource.sort = this.sort;
29
- }
30
- ngOnDestroy() {
31
- this._destroy.next();
32
- this._destroy.complete();
33
- }
34
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: PendingResultsWidget, deps: [{ token: i1.WidgetRef }], target: i0.ɵɵFactoryTarget.Component }); }
35
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: PendingResultsWidget, selector: "bizdoc-pending-results", host: { properties: { "style.height": "this.height" } }, viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true }], ngImport: i0, template: "<table mat-table [dataSource]=\"dataSource\" matSort class=\"mat-elevation-z0\" @list>\r\n <ng-container matColumnDef=\"name\">\r\n <th mat-header-cell *matHeaderCellDef> {{'Name' | translate}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> <bizdoc-identity-name [identity]='element.userId' chating=\"room\"></bizdoc-identity-name></td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"duration\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header> {{'Duration' | translate}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> <span [bizdocTooltip]='element.duration|amDurationFormat'>{{ element.duration | amDuration : 's' }}</span> </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"standard\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header> {{'Standard' | translate}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> @if (element.standard) {\r\n <span [bizdocTooltip]=\"element.standard|amDurationFormat\">{{ element.standard | amDuration: 's' }}</span>\r\n } </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"count\">\r\n <th mat-header-cell *matHeaderCellDef> </th>\r\n <td mat-cell *matCellDef=\"let element\" dir=\"ltr\">\r\n <span class=\"range\">{{ element.processed }} / {{element.pending + element.processed}}</span>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"columns; sticky: true\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: columns;\" @item></tr>\r\n</table>\r\n<style scoped>\r\n .range {\r\n white-space: nowrap;\r\n}\r\n</style>\r\n", styles: ["table{width:100%}td.text{text-overflow:ellipsis;max-width:100px;white-space:nowrap;overflow:hidden}:host{overflow:hidden;display:block}padd :host:hover{overflow-y:auto!important}\n", "\n .range {\n white-space: nowrap;\n}\n"], dependencies: [{ kind: "directive", type: i2.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "component", type: i3.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i3.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i3.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i3.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i3.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i3.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i3.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i3.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i3.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i3.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i4.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i4.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { 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.DurationPipe, name: "amDuration" }, { kind: "pipe", type: i8.DurationFormatPipe, name: "amDurationFormat" }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }], animations: [
36
- listAnimation,
37
- itemAnimation
38
- ] }); }
39
- };
40
- PendingResultsWidget = __decorate([
41
- BizDoc({
42
- selector: 'bizdoc-pending-results'
43
- })
44
- ], PendingResultsWidget);
45
- export { PendingResultsWidget };
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: PendingResultsWidget, decorators: [{
47
- type: Component,
48
- args: [{ selector: 'bizdoc-pending-results', animations: [
49
- listAnimation,
50
- itemAnimation
51
- ], template: "<table mat-table [dataSource]=\"dataSource\" matSort class=\"mat-elevation-z0\" @list>\r\n <ng-container matColumnDef=\"name\">\r\n <th mat-header-cell *matHeaderCellDef> {{'Name' | translate}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> <bizdoc-identity-name [identity]='element.userId' chating=\"room\"></bizdoc-identity-name></td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"duration\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header> {{'Duration' | translate}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> <span [bizdocTooltip]='element.duration|amDurationFormat'>{{ element.duration | amDuration : 's' }}</span> </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"standard\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header> {{'Standard' | translate}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> @if (element.standard) {\r\n <span [bizdocTooltip]=\"element.standard|amDurationFormat\">{{ element.standard | amDuration: 's' }}</span>\r\n } </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"count\">\r\n <th mat-header-cell *matHeaderCellDef> </th>\r\n <td mat-cell *matCellDef=\"let element\" dir=\"ltr\">\r\n <span class=\"range\">{{ element.processed }} / {{element.pending + element.processed}}</span>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"columns; sticky: true\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: columns;\" @item></tr>\r\n</table>\r\n<style scoped>\r\n .range {\r\n white-space: nowrap;\r\n}\r\n</style>\r\n", styles: ["table{width:100%}td.text{text-overflow:ellipsis;max-width:100px;white-space:nowrap;overflow:hidden}:host{overflow:hidden;display:block}padd :host:hover{overflow-y:auto!important}\n", "\n .range {\n white-space: nowrap;\n}\n"] }]
52
- }], ctorParameters: () => [{ type: i1.WidgetRef }], propDecorators: { sort: [{
53
- type: ViewChild,
54
- args: [MatSort]
55
- }], height: [{
56
- type: HostBinding,
57
- args: ['style.height']
58
- }] } });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVuZGluZy1yZXN1bHRzLndpZGdldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9kYXNoYm9hcmQvc2NvcmUvcGVuZGluZy1yZXN1bHRzLndpZGdldC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9kYXNoYm9hcmQvc2NvcmUvcGVuZGluZy1yZXN1bHRzLndpZGdldC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBYSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRS9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7Ozs7O0FBZTlELElBQU0sb0JBQW9CLEdBQTFCLE1BQU0sb0JBQW9CO0lBTy9CLFlBQ0UsR0FBYztRQUpQLFlBQU8sR0FBRyxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRTVDLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRzlDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUNELE1BQU0sQ0FBQyxJQUFpQjtRQUN0QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsVUFBVSxDQUFDO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQztRQUM3QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25DLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7OEdBcEJVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLDZKQUNwQixPQUFPLGdEQ3RCcEIsd2tEQWlDQSw0ekVEcEJjO1lBQ1YsYUFBYTtZQUNiLGFBQWE7U0FDZDs7QUFLVSxvQkFBb0I7SUFIaEMsTUFBTSxDQUFDO1FBQ04sUUFBUSxFQUFFLHdCQUF3QjtLQUNuQyxDQUFDO0dBQ1csb0JBQW9CLENBcUJoQzs7MkZBckJZLG9CQUFvQjtrQkFaaEMsU0FBUzsrQkFDRSx3QkFBd0IsY0FHdEI7d0JBQ1YsYUFBYTt3QkFDYixhQUFhO3FCQUNkOzhFQU1tQixJQUFJO3NCQUF2QixTQUFTO3VCQUFDLE9BQU87Z0JBRWxCLE1BQU07c0JBREwsV0FBVzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQsIE9uRGVzdHJveSwgSG9zdEJpbmRpbmcgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBNYXRTb3J0IH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NvcnRcIjtcclxuaW1wb3J0IHsgTWF0VGFibGVEYXRhU291cmNlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3RhYmxlXCI7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBCaXpEb2MgfSBmcm9tIFwiLi4vLi4vY29yZS9kZWNvcmF0b3JzXCI7XHJcbmltcG9ydCB7IFdpZGdldENvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9jb3JlL2Jhc2VcIjtcclxuaW1wb3J0IHsgbGlzdEFuaW1hdGlvbiwgaXRlbUFuaW1hdGlvbiB9IGZyb20gXCIuLi8uLi9jb3JlL2FuaW1hdGlvbnNcIjtcclxuaW1wb3J0IHsgV2lkZ2V0UmVmIH0gZnJvbSBcIi4uL3dpZGdldC1yZWZcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLXBlbmRpbmctcmVzdWx0cycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3BlbmRpbmctcmVzdWx0cy53aWRnZXQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4uL190YWJsZS53aWRnZXQuc2NzcyddLFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuICAgIGxpc3RBbmltYXRpb24sXHJcbiAgICBpdGVtQW5pbWF0aW9uXHJcbiAgXVxyXG59KVxyXG5AQml6RG9jKHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1wZW5kaW5nLXJlc3VsdHMnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQZW5kaW5nUmVzdWx0c1dpZGdldCBpbXBsZW1lbnRzIFdpZGdldENvbXBvbmVudDxEYXRhTW9kZWxbXT4sIE9uRGVzdHJveSB7XHJcbiAgQFZpZXdDaGlsZChNYXRTb3J0KSBzb3J0OiBNYXRTb3J0O1xyXG4gIEBIb3N0QmluZGluZygnc3R5bGUuaGVpZ2h0JylcclxuICBoZWlnaHQ6IHN0cmluZztcclxuICByZWFkb25seSBjb2x1bW5zID0gWyduYW1lJywgJ2R1cmF0aW9uJywgJ3N0YW5kYXJkJywgJ2NvdW50J107XHJcbiAgZGF0YVNvdXJjZTogTWF0VGFibGVEYXRhU291cmNlPERhdGFNb2RlbD47XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICByZWY6IFdpZGdldFJlZikge1xyXG4gICAgcmVmLnJlc2l6ZSgpLnN1YnNjcmliZShkID0+IHRoaXMuaGVpZ2h0ID0gYCR7ZC5oZWlnaHR9cHhgKTtcclxuICB9XHJcbiAgb25CaW5kKGRhdGE6IERhdGFNb2RlbFtdKSB7XHJcbiAgICB0aGlzLmRhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlKGRhdGEpO1xyXG4gICAgdGhpcy5zb3J0LmFjdGl2ZSA9ICdkdXJhdGlvbic7XHJcbiAgICB0aGlzLnNvcnQuZGlyZWN0aW9uID0gJ2Rlc2MnO1xyXG4gICAgdGhpcy5kYXRhU291cmNlLnNvcnQgPSB0aGlzLnNvcnQ7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveS5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcblxyXG5pbnRlcmZhY2UgRGF0YU1vZGVsIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdXNlcklkOiBzdHJpbmc7XHJcbiAgcGVuZGluZzogbnVtYmVyO1xyXG4gIHByb2Nlc3NlZDogbnVtYmVyO1xyXG4gIGR1cmF0aW9uPzogbnVtYmVyO1xyXG4gIHN0YW5kYXJkPzogbnVtYmVyO1xyXG59XHJcbiIsIjx0YWJsZSBtYXQtdGFibGUgW2RhdGFTb3VyY2VdPVwiZGF0YVNvdXJjZVwiIG1hdFNvcnQgY2xhc3M9XCJtYXQtZWxldmF0aW9uLXowXCIgQGxpc3Q+XHJcbiAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJuYW1lXCI+XHJcbiAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiB7eydOYW1lJyB8IHRyYW5zbGF0ZX19IDwvdGg+XHJcbiAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPiA8Yml6ZG9jLWlkZW50aXR5LW5hbWUgW2lkZW50aXR5XT0nZWxlbWVudC51c2VySWQnIGNoYXRpbmc9XCJyb29tXCI+PC9iaXpkb2MtaWRlbnRpdHktbmFtZT48L3RkPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG5cclxuICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImR1cmF0aW9uXCI+XHJcbiAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlcj4ge3snRHVyYXRpb24nIHwgdHJhbnNsYXRlfX0gPC90aD5cclxuICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+IDxzcGFuIFtiaXpkb2NUb29sdGlwXT0nZWxlbWVudC5kdXJhdGlvbnxhbUR1cmF0aW9uRm9ybWF0Jz57eyBlbGVtZW50LmR1cmF0aW9uIHwgYW1EdXJhdGlvbiA6ICdzJyB9fTwvc3Bhbj4gPC90ZD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJzdGFuZGFyZFwiPlxyXG4gICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtc29ydC1oZWFkZXI+IHt7J1N0YW5kYXJkJyB8IHRyYW5zbGF0ZX19IDwvdGg+XHJcbiAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPiBAaWYgKGVsZW1lbnQuc3RhbmRhcmQpIHtcclxuICAgICAgPHNwYW4gW2JpemRvY1Rvb2x0aXBdPVwiZWxlbWVudC5zdGFuZGFyZHxhbUR1cmF0aW9uRm9ybWF0XCI+e3sgZWxlbWVudC5zdGFuZGFyZCB8IGFtRHVyYXRpb246ICdzJyB9fTwvc3Bhbj5cclxuICAgIH0gPC90ZD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJjb3VudFwiPlxyXG4gICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gPC90aD5cclxuICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCIgZGlyPVwibHRyXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwicmFuZ2VcIj57eyBlbGVtZW50LnByb2Nlc3NlZCB9fSAvIHt7ZWxlbWVudC5wZW5kaW5nICsgZWxlbWVudC5wcm9jZXNzZWR9fTwvc3Bhbj5cclxuICAgIDwvdGQ+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiY29sdW1uczsgc3RpY2t5OiB0cnVlXCI+PC90cj5cclxuICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogY29sdW1ucztcIiBAaXRlbT48L3RyPlxyXG48L3RhYmxlPlxyXG48c3R5bGUgc2NvcGVkPlxyXG4gIC5yYW5nZSB7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxufVxyXG48L3N0eWxlPlxyXG4iXX0=