@bizdoc/core 2.3.39 → 2.3.41

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 (402) hide show
  1. package/esm2022/lib/admin/admin-dismiss.service.mjs +3 -3
  2. package/esm2022/lib/admin/admin-menu.component.mjs +3 -3
  3. package/esm2022/lib/admin/architecture/cube-axes-filter.component.mjs +3 -3
  4. package/esm2022/lib/admin/architecture/designer-element.component.mjs +19 -17
  5. package/esm2022/lib/admin/architecture/designer-privileges.component.mjs +3 -3
  6. package/esm2022/lib/admin/architecture/designer.base.mjs +9 -9
  7. package/esm2022/lib/admin/architecture/designer.component.mjs +5 -5
  8. package/esm2022/lib/admin/architecture/elements/action.component.mjs +3 -3
  9. package/esm2022/lib/admin/architecture/elements/analysis-view.component.mjs +3 -3
  10. package/esm2022/lib/admin/architecture/elements/analysis-widget.component.mjs +3 -3
  11. package/esm2022/lib/admin/architecture/elements/anomaly-rule.component.mjs +3 -3
  12. package/esm2022/lib/admin/architecture/elements/attribute.component.mjs +3 -3
  13. package/esm2022/lib/admin/architecture/elements/box-form.component.mjs +3 -3
  14. package/esm2022/lib/admin/architecture/elements/configuration-datasource.component.mjs +3 -3
  15. package/esm2022/lib/admin/architecture/elements/control.component.mjs +3 -3
  16. package/esm2022/lib/admin/architecture/elements/cube-index-utility.component.mjs +3 -3
  17. package/esm2022/lib/admin/architecture/elements/cube-view.component.mjs +3 -3
  18. package/esm2022/lib/admin/architecture/elements/cube.component.mjs +3 -3
  19. package/esm2022/lib/admin/architecture/elements/document-state-widget.component.mjs +3 -3
  20. package/esm2022/lib/admin/architecture/elements/documents-report.component.mjs +3 -3
  21. package/esm2022/lib/admin/architecture/elements/documents-widget.component.mjs +3 -3
  22. package/esm2022/lib/admin/architecture/elements/explore-view.component.mjs +3 -3
  23. package/esm2022/lib/admin/architecture/elements/folder.component.mjs +3 -3
  24. package/esm2022/lib/admin/architecture/elements/form-invite.dialog.mjs +3 -3
  25. package/esm2022/lib/admin/architecture/elements/form.component.mjs +3 -3
  26. package/esm2022/lib/admin/architecture/elements/guide.component.mjs +3 -3
  27. package/esm2022/lib/admin/architecture/elements/job.component.mjs +3 -3
  28. package/esm2022/lib/admin/architecture/elements/matrix-view.component.mjs +3 -3
  29. package/esm2022/lib/admin/architecture/elements/node.component.mjs +3 -3
  30. package/esm2022/lib/admin/architecture/elements/parallel-view.component.mjs +3 -3
  31. package/esm2022/lib/admin/architecture/elements/performance-report.component.mjs +3 -3
  32. package/esm2022/lib/admin/architecture/elements/performance-widget.component.mjs +3 -3
  33. package/esm2022/lib/admin/architecture/elements/pivot-view.component.mjs +3 -3
  34. package/esm2022/lib/admin/architecture/elements/policy.component.mjs +3 -3
  35. package/esm2022/lib/admin/architecture/elements/report.component.mjs +3 -3
  36. package/esm2022/lib/admin/architecture/elements/return-to-role-action.component.mjs +3 -3
  37. package/esm2022/lib/admin/architecture/elements/role.component.mjs +3 -3
  38. package/esm2022/lib/admin/architecture/elements/rule.component.mjs +3 -3
  39. package/esm2022/lib/admin/architecture/elements/source.component.mjs +3 -3
  40. package/esm2022/lib/admin/architecture/elements/state.component.mjs +3 -3
  41. package/esm2022/lib/admin/architecture/elements/sum-view.component.mjs +3 -3
  42. package/esm2022/lib/admin/architecture/elements/tasks-report.component.mjs +3 -3
  43. package/esm2022/lib/admin/architecture/elements/type.component.mjs +3 -3
  44. package/esm2022/lib/admin/architecture/elements/usage-report.component.mjs +3 -3
  45. package/esm2022/lib/admin/architecture/elements/utility.component.mjs +3 -3
  46. package/esm2022/lib/admin/architecture/elements/view.component.mjs +3 -3
  47. package/esm2022/lib/admin/architecture/elements/widget.component.mjs +3 -3
  48. package/esm2022/lib/admin/architecture/icon-picker.component.mjs +3 -3
  49. package/esm2022/lib/admin/core/ace.input.mjs +3 -3
  50. package/esm2022/lib/admin/core/color-picker.input.mjs +3 -3
  51. package/esm2022/lib/admin/core/localized-string.component.mjs +3 -3
  52. package/esm2022/lib/admin/core/search.input.mjs +3 -3
  53. package/esm2022/lib/admin/diff/configuration-diff.component.mjs +3 -3
  54. package/esm2022/lib/admin/document-trace/document-trace.component.mjs +3 -3
  55. package/esm2022/lib/admin/document-trace/reassign.dialog.mjs +3 -3
  56. package/esm2022/lib/admin/document-trace/trace-element.component.mjs +3 -3
  57. package/esm2022/lib/admin/form/designer/box-designer.component.mjs +3 -3
  58. package/esm2022/lib/admin/form/designer/design-control.component.mjs +3 -3
  59. package/esm2022/lib/admin/form/designer/properties.component.mjs +3 -3
  60. package/esm2022/lib/admin/form/designer/section.component.mjs +3 -3
  61. package/esm2022/lib/admin/form/designer/settings.component.mjs +3 -3
  62. package/esm2022/lib/admin/form/form.resolve.service.mjs +3 -3
  63. package/esm2022/lib/admin/form/workflow/node.component.mjs +3 -3
  64. package/esm2022/lib/admin/form/workflow/role-node.component.mjs +3 -3
  65. package/esm2022/lib/admin/form/workflow/workflow.component.mjs +3 -3
  66. package/esm2022/lib/admin/indices/manage-cube-index.component.mjs +3 -3
  67. package/esm2022/lib/admin/patterns/patterns.component.mjs +3 -3
  68. package/esm2022/lib/admin/permissions/permissions.component.mjs +3 -3
  69. package/esm2022/lib/admin/positions/positions-popup.component.mjs +3 -3
  70. package/esm2022/lib/admin/positions/positions.component.mjs +3 -3
  71. package/esm2022/lib/admin/profiler/outofoffice.component.mjs +3 -3
  72. package/esm2022/lib/admin/profiler/profiler.component.mjs +3 -3
  73. package/esm2022/lib/admin/system.service.mjs +3 -3
  74. package/esm2022/lib/admin/utility-wrapper.component.mjs +3 -3
  75. package/esm2022/lib/admin/utility.pane.component.mjs +3 -3
  76. package/esm2022/lib/app.component.mjs +6 -6
  77. package/esm2022/lib/bizdoc.module.mjs +4 -4
  78. package/esm2022/lib/browse/browse-items.component.mjs +3 -3
  79. package/esm2022/lib/browse/browse.mobile.component.mjs +3 -3
  80. package/esm2022/lib/browse/browse.pane.component.mjs +3 -3
  81. package/esm2022/lib/browse/expanded-item/expanded-item.component.mjs +3 -3
  82. package/esm2022/lib/browse/filter/filter.component.mjs +3 -3
  83. package/esm2022/lib/browse/folders-menu.component.mjs +3 -3
  84. package/esm2022/lib/chat/chat-info.mjs +3 -3
  85. package/esm2022/lib/chat/chat.mobile.component.mjs +3 -3
  86. package/esm2022/lib/chat/chat.service.mjs +3 -3
  87. package/esm2022/lib/chat/contacts.component.mjs +6 -6
  88. package/esm2022/lib/chat/contacts.pane.component.mjs +3 -3
  89. package/esm2022/lib/chat/conversation.component.mjs +3 -3
  90. package/esm2022/lib/chat/conversation.pane.component.mjs +3 -3
  91. package/esm2022/lib/compose/action/action-picker.component.mjs +3 -3
  92. package/esm2022/lib/compose/action/action.dialog.mjs +3 -3
  93. package/esm2022/lib/compose/action/action.pane.dialog.exp.mjs +3 -3
  94. package/esm2022/lib/compose/action/assign-action.component.mjs +3 -3
  95. package/esm2022/lib/compose/action/moveto-action.component.mjs +3 -3
  96. package/esm2022/lib/compose/action/return-action.component.mjs +3 -3
  97. package/esm2022/lib/compose/attachments/attachments.component.mjs +3 -3
  98. package/esm2022/lib/compose/attachments/preview/attachment-preview.component.mjs +3 -3
  99. package/esm2022/lib/compose/attachments/progress-button.directive.mjs +3 -3
  100. package/esm2022/lib/compose/box/box.component.mjs +3 -3
  101. package/esm2022/lib/compose/box/control.component.mjs +3 -3
  102. package/esm2022/lib/compose/box/row.component.mjs +3 -3
  103. package/esm2022/lib/compose/can-deactivate-changes.service.mjs +3 -3
  104. package/esm2022/lib/compose/comments/comment.component.mjs +3 -3
  105. package/esm2022/lib/compose/comments/comments.component.mjs +3 -3
  106. package/esm2022/lib/compose/comments/comments.pane.component.mjs +3 -3
  107. package/esm2022/lib/compose/comments/edit-comment.component.mjs +3 -3
  108. package/esm2022/lib/compose/comments/edits.component.mjs +3 -3
  109. package/esm2022/lib/compose/comments/quick-comment.component.exp.mjs +3 -3
  110. package/esm2022/lib/compose/comments/votes.component.mjs +3 -3
  111. package/esm2022/lib/compose/compose-resolve.service.mjs +6 -6
  112. package/esm2022/lib/compose/compose.mobile.component.mjs +3 -3
  113. package/esm2022/lib/compose/compose.pane.component.mjs +3 -3
  114. package/esm2022/lib/compose/copy/copy.dialog.mjs +3 -3
  115. package/esm2022/lib/compose/dismiss.service.mjs +3 -3
  116. package/esm2022/lib/compose/document-resolver.service.mjs +3 -3
  117. package/esm2022/lib/compose/document.component.mjs +3 -3
  118. package/esm2022/lib/compose/document.mobile.component.mjs +3 -3
  119. package/esm2022/lib/compose/document.pane.component.mjs +3 -3
  120. package/esm2022/lib/compose/events/events.component.mjs +3 -3
  121. package/esm2022/lib/compose/form-selector/form-selector.sheet.mjs +3 -3
  122. package/esm2022/lib/compose/form.component.mjs +3 -3
  123. package/esm2022/lib/compose/new-menu.component.mjs +3 -3
  124. package/esm2022/lib/compose/privilage.directive.mjs +6 -6
  125. package/esm2022/lib/compose/recipient-resolver.service.mjs +3 -3
  126. package/esm2022/lib/compose/state.component.mjs +3 -3
  127. package/esm2022/lib/compose/tag/tags.component.mjs +3 -3
  128. package/esm2022/lib/compose/trace/flow.component.mjs +3 -3
  129. package/esm2022/lib/compose/trace/people.component.mjs +3 -3
  130. package/esm2022/lib/compose/trace/trace.base.mjs +3 -3
  131. package/esm2022/lib/compose/trace/trace.component.mjs +3 -3
  132. package/esm2022/lib/compose/trace/trace.pane.component.mjs +3 -3
  133. package/esm2022/lib/compose/version-compare/version-compare.component.mjs +3 -3
  134. package/esm2022/lib/compose/version-compare/version-compare.directive.mjs +9 -9
  135. package/esm2022/lib/compose/version-compare/version.pane.component.mjs +3 -3
  136. package/esm2022/lib/core/account.service.mjs +3 -3
  137. package/esm2022/lib/core/animated-icon/animated-icon.directive.mjs +3 -3
  138. package/esm2022/lib/core/avatar/avatar.component.mjs +3 -3
  139. package/esm2022/lib/core/base.mjs +1 -1
  140. package/esm2022/lib/core/checkbox.mjs +3 -3
  141. package/esm2022/lib/core/component-factory-resolver.mjs +3 -3
  142. package/esm2022/lib/core/datasource.service.mjs +3 -3
  143. package/esm2022/lib/core/fields/address.designer.mjs +3 -3
  144. package/esm2022/lib/core/fields/address.field.mjs +3 -3
  145. package/esm2022/lib/core/fields/autocomplete.field.mjs +6 -6
  146. package/esm2022/lib/core/fields/checkbox.designer.mjs +3 -3
  147. package/esm2022/lib/core/fields/checkbox.field.mjs +3 -3
  148. package/esm2022/lib/core/fields/checklist.designer.mjs +3 -3
  149. package/esm2022/lib/core/fields/checklist.field.mjs +3 -3
  150. package/esm2022/lib/core/fields/date-range.designer.mjs +3 -3
  151. package/esm2022/lib/core/fields/date-range.field.mjs +3 -3
  152. package/esm2022/lib/core/fields/date.designer.mjs +3 -3
  153. package/esm2022/lib/core/fields/date.field.mjs +3 -3
  154. package/esm2022/lib/core/fields/expression.field.mjs +6 -6
  155. package/esm2022/lib/core/fields/file.designer.mjs +3 -3
  156. package/esm2022/lib/core/fields/file.field.mjs +3 -3
  157. package/esm2022/lib/core/fields/html.designer.mjs +3 -3
  158. package/esm2022/lib/core/fields/html.field.mjs +3 -3
  159. package/esm2022/lib/core/fields/input.designer.mjs +3 -3
  160. package/esm2022/lib/core/fields/input.field.mjs +3 -3
  161. package/esm2022/lib/core/fields/localized-string.field.mjs +6 -6
  162. package/esm2022/lib/core/fields/numeric.designer.mjs +3 -3
  163. package/esm2022/lib/core/fields/numeric.field.mjs +3 -3
  164. package/esm2022/lib/core/fields/options.base.mjs +6 -6
  165. package/esm2022/lib/core/fields/options.component.mjs +3 -3
  166. package/esm2022/lib/core/fields/radio-button.designer.mjs +3 -3
  167. package/esm2022/lib/core/fields/radio-button.field.mjs +3 -3
  168. package/esm2022/lib/core/fields/select.designer.mjs +3 -3
  169. package/esm2022/lib/core/fields/select.field.mjs +3 -3
  170. package/esm2022/lib/core/fields/signature.designer.mjs +3 -3
  171. package/esm2022/lib/core/fields/signature.field.mjs +3 -3
  172. package/esm2022/lib/core/fields/switch.field.mjs +3 -3
  173. package/esm2022/lib/core/fields/tags.designer.mjs +3 -3
  174. package/esm2022/lib/core/fields/tags.field.mjs +3 -3
  175. package/esm2022/lib/core/fields/textarea.designer.mjs +3 -3
  176. package/esm2022/lib/core/fields/textarea.field.mjs +3 -3
  177. package/esm2022/lib/core/fields/time.designer.mjs +3 -3
  178. package/esm2022/lib/core/fields/time.field.mjs +3 -3
  179. package/esm2022/lib/core/fields/timespan.field.mjs +11 -8
  180. package/esm2022/lib/core/fields/yesno.designer.mjs +3 -3
  181. package/esm2022/lib/core/fields/yesno.field.mjs +3 -3
  182. package/esm2022/lib/core/guide/guide.component.mjs +3 -3
  183. package/esm2022/lib/core/guide/guide.service.mjs +3 -3
  184. package/esm2022/lib/core/guide/help-tip.component.mjs +3 -3
  185. package/esm2022/lib/core/http.interceptor.mjs +3 -3
  186. package/esm2022/lib/core/hub.service.mjs +3 -3
  187. package/esm2022/lib/core/identity/identity.component.mjs +3 -3
  188. package/esm2022/lib/core/info/attachment-info.service.mjs +3 -3
  189. package/esm2022/lib/core/info/document-info.service.mjs +3 -3
  190. package/esm2022/lib/core/info/location-info.component.mjs +3 -3
  191. package/esm2022/lib/core/info/map-info.mjs +3 -3
  192. package/esm2022/lib/core/inputs/address.input.mjs +3 -3
  193. package/esm2022/lib/core/inputs/auto-complete.input.mjs +3 -3
  194. package/esm2022/lib/core/inputs/combination-picker-body.mjs +3 -3
  195. package/esm2022/lib/core/inputs/combination-picker.mjs +3 -3
  196. package/esm2022/lib/core/inputs/combination-pool.mjs +3 -3
  197. package/esm2022/lib/core/inputs/file.input.mjs +3 -3
  198. package/esm2022/lib/core/inputs/select.input.mjs +3 -3
  199. package/esm2022/lib/core/inputs/signature.input.mjs +3 -3
  200. package/esm2022/lib/core/inputs/time-picker.mjs +3 -3
  201. package/esm2022/lib/core/inputs/timespan.input.mjs +3 -3
  202. package/esm2022/lib/core/layout.component.mjs +3 -3
  203. package/esm2022/lib/core/lottie-animation.mjs +3 -3
  204. package/esm2022/lib/core/mailbox.service.mjs +3 -3
  205. package/esm2022/lib/core/none.component.mjs +3 -3
  206. package/esm2022/lib/core/pipes/action.pipe.mjs +3 -3
  207. package/esm2022/lib/core/pipes/calendar.pipe.mjs +3 -3
  208. package/esm2022/lib/core/pipes/date-format.pipe.mjs +3 -3
  209. package/esm2022/lib/core/pipes/daterange.pipe.mjs +6 -6
  210. package/esm2022/lib/core/pipes/difference.pipe.mjs +3 -3
  211. package/esm2022/lib/core/pipes/duration-format.pipe.mjs +3 -3
  212. package/esm2022/lib/core/pipes/duration.pipe.mjs +3 -3
  213. package/esm2022/lib/core/pipes/form.pipe.mjs +3 -3
  214. package/esm2022/lib/core/pipes/join.pipe.mjs +3 -3
  215. package/esm2022/lib/core/pipes/localized-string.pipe.mjs +3 -3
  216. package/esm2022/lib/core/pipes/role.pipe.mjs +3 -3
  217. package/esm2022/lib/core/pipes/sanitize-html.pipe.mjs +3 -3
  218. package/esm2022/lib/core/pipes/sort.pipe.mjs +9 -9
  219. package/esm2022/lib/core/pipes/state.pipe.mjs +3 -3
  220. package/esm2022/lib/core/pipes/time-ago.pipe.mjs +6 -6
  221. package/esm2022/lib/core/pipes/translate.pipe.mjs +9 -9
  222. package/esm2022/lib/core/pipes/type-value.pipe.mjs +3 -3
  223. package/esm2022/lib/core/pipes/user-name.pipe.mjs +3 -3
  224. package/esm2022/lib/core/popup/popup.component.mjs +3 -3
  225. package/esm2022/lib/core/popup/popup.service.mjs +3 -3
  226. package/esm2022/lib/core/popup/tooltip.directive.mjs +6 -6
  227. package/esm2022/lib/core/prompt/ask/ask.dialog.mjs +3 -3
  228. package/esm2022/lib/core/prompt/mask/mask.component.mjs +3 -3
  229. package/esm2022/lib/core/prompt.service.mjs +3 -3
  230. package/esm2022/lib/core/router.mjs +6 -6
  231. package/esm2022/lib/core/save-changes.dialog.mjs +3 -3
  232. package/esm2022/lib/core/session.service.mjs +3 -3
  233. package/esm2022/lib/core/slots/router.directive.mjs +3 -3
  234. package/esm2022/lib/core/slots/router.service.mjs +3 -3
  235. package/esm2022/lib/core/slots/slots.component.mjs +3 -3
  236. package/esm2022/lib/core/sticky-toolbar.exp.mjs +3 -3
  237. package/esm2022/lib/core/tagging/documents.component.mjs +3 -3
  238. package/esm2022/lib/core/tagging/edit-input.component.mjs +3 -3
  239. package/esm2022/lib/core/tagging/emoji.component.mjs +3 -3
  240. package/esm2022/lib/core/tagging/tagging-item.directive.mjs +3 -3
  241. package/esm2022/lib/core/tagging/tagging.component-base.mjs +3 -3
  242. package/esm2022/lib/core/tagging/tagging.directive.mjs +3 -3
  243. package/esm2022/lib/core/tagging/tagging.pipe.mjs +3 -3
  244. package/esm2022/lib/core/tagging/users.component.mjs +3 -3
  245. package/esm2022/lib/core/translate.service.mjs +3 -3
  246. package/esm2022/lib/core/virtual-tabs.component.exp.mjs +6 -6
  247. package/esm2022/lib/core/window-title.service.mjs +3 -3
  248. package/esm2022/lib/cube/accum/accum.component.mjs +7 -7
  249. package/esm2022/lib/cube/chart/chart.component.mjs +5 -5
  250. package/esm2022/lib/cube/cube-info.service.mjs +3 -3
  251. package/esm2022/lib/cube/cube-menu.component.mjs +3 -3
  252. package/esm2022/lib/cube/cube-view.component.mjs +43 -36
  253. package/esm2022/lib/cube/cube.service.mjs +3 -3
  254. package/esm2022/lib/cube/explore/document-item.component.mjs +3 -3
  255. package/esm2022/lib/cube/explore/explore-item.component.mjs +3 -3
  256. package/esm2022/lib/cube/explore/explore-items.component.mjs +3 -3
  257. package/esm2022/lib/cube/explore/explore.pane.component.mjs +3 -3
  258. package/esm2022/lib/cube/explore/item-resolver.service.mjs +6 -6
  259. package/esm2022/lib/cube/explore/item.pane.component.mjs +3 -3
  260. package/esm2022/lib/cube/filter/filter-tags.component.exp.mjs +3 -3
  261. package/esm2022/lib/cube/filter/filter.component.mjs +3 -3
  262. package/esm2022/lib/cube/grid/grid.component.mjs +5 -8
  263. package/esm2022/lib/cube/matrix/matrix.base.mjs +3 -3
  264. package/esm2022/lib/cube/matrix/matrix.mobile.component.mjs +3 -3
  265. package/esm2022/lib/cube/matrix/matrix.pane.component.mjs +3 -3
  266. package/esm2022/lib/cube/matrix/popup.component.mjs +3 -3
  267. package/esm2022/lib/cube/matrix/table.component.mjs +3 -3
  268. package/esm2022/lib/cube/parallel/parallel.component.mjs +3 -3
  269. package/esm2022/lib/cube/pivot/pivot.component.mjs +5 -7
  270. package/esm2022/lib/cube/spreadsheet/spreadsheet.component.mjs +6 -10
  271. package/esm2022/lib/cube/spreadsheet/{spreadsheet.container.mjs → spreadsheet.container.exp.mjs} +4 -4
  272. package/esm2022/lib/cube/sum/sum.component.mjs +3 -3
  273. package/esm2022/lib/cube/view-base.mjs +3 -3
  274. package/esm2022/lib/cube/view.mobile.component.mjs +3 -3
  275. package/esm2022/lib/cube/view.pane.component.mjs +3 -3
  276. package/esm2022/lib/dashboard/actions/actions.widget.mjs +3 -3
  277. package/esm2022/lib/dashboard/cube/accum-cube.widget.mjs +3 -3
  278. package/esm2022/lib/dashboard/cube/compare.widget.mjs +3 -3
  279. package/esm2022/lib/dashboard/cube/cube-analysis.base.mjs +3 -3
  280. package/esm2022/lib/dashboard/cube/cube-analysis.widget.mjs +3 -3
  281. package/esm2022/lib/dashboard/cube/cube-chart.widget.mjs +3 -3
  282. package/esm2022/lib/dashboard/cube/document-state.widget.mjs +3 -3
  283. package/esm2022/lib/dashboard/cube/documents.widget.mjs +3 -3
  284. package/esm2022/lib/dashboard/cube/filter/filter.component.mjs +3 -3
  285. package/esm2022/lib/dashboard/dashboard.component.mjs +3 -3
  286. package/esm2022/lib/dashboard/dashboard.pane.component.mjs +3 -3
  287. package/esm2022/lib/dashboard/recents/recents.widget.mjs +3 -3
  288. package/esm2022/lib/dashboard/score/activity.widget.mjs +3 -3
  289. package/esm2022/lib/dashboard/score/compare-groups.widget.mjs +3 -3
  290. package/esm2022/lib/dashboard/score/peers-performance.widget.mjs +3 -3
  291. package/esm2022/lib/dashboard/score/pending-results.widget.mjs +3 -3
  292. package/esm2022/lib/dashboard/score/personal-score.widget.mjs +3 -3
  293. package/esm2022/lib/dashboard/widget-item.component.mjs +3 -3
  294. package/esm2022/lib/designer.module.mjs +4 -4
  295. package/esm2022/lib/desktop.module.mjs +4 -4
  296. package/esm2022/lib/home/about/about.dialog.mjs +3 -3
  297. package/esm2022/lib/home/home-base.component.mjs +3 -3
  298. package/esm2022/lib/home/home.desktop.component.mjs +3 -3
  299. package/esm2022/lib/home/home.mobile.component.mjs +3 -3
  300. package/esm2022/lib/home/notifications/notifications.component.mjs +3 -3
  301. package/esm2022/lib/home/options/options.component.mjs +3 -3
  302. package/esm2022/lib/home/outofoffice/outofoffice.component.mjs +3 -3
  303. package/esm2022/lib/home/sign/sign.component.mjs +3 -3
  304. package/esm2022/lib/impersonate/impersonate.component.mjs +3 -3
  305. package/esm2022/lib/mobile.module.mjs +4 -4
  306. package/esm2022/lib/modules/chart.module.mjs +7 -7
  307. package/esm2022/lib/modules/circular-gauge.module.mjs +4 -4
  308. package/esm2022/lib/modules/datepicker.intl.mjs +3 -3
  309. package/esm2022/lib/modules/dayjs.module.mjs +4 -4
  310. package/esm2022/lib/modules/diagram.module.mjs +4 -4
  311. package/esm2022/lib/modules/gantt.module.mjs +4 -4
  312. package/esm2022/lib/modules/grid.module.mjs +4 -4
  313. package/esm2022/lib/modules/linear-gauge.module.mjs +4 -4
  314. package/esm2022/lib/modules/material.module.mjs +4 -4
  315. package/esm2022/lib/modules/paginator.intl.mjs +3 -3
  316. package/esm2022/lib/modules/pivot.module.mjs +4 -4
  317. package/esm2022/lib/modules/schedule.module.mjs +4 -4
  318. package/esm2022/lib/modules/spreadsheet.module.mjs +4 -4
  319. package/esm2022/lib/modules/stepper.intl.mjs +3 -3
  320. package/esm2022/lib/modules/texteditor.module.mjs +4 -4
  321. package/esm2022/lib/notifications/filter.component.mjs +3 -3
  322. package/esm2022/lib/notifications/notifications-table.component.mjs +3 -3
  323. package/esm2022/lib/notifications/notifications.mobile.component.mjs +3 -3
  324. package/esm2022/lib/notifications/notifications.pane.component.mjs +5 -4
  325. package/esm2022/lib/notifications/notifications.service.mjs +3 -3
  326. package/esm2022/lib/notifications/types/commented.notification.mjs +3 -3
  327. package/esm2022/lib/notifications/types/cube-anomaly.notification.mjs +3 -3
  328. package/esm2022/lib/notifications/types/escalated.notification.mjs +3 -3
  329. package/esm2022/lib/notifications/types/invite.notification.mjs +3 -3
  330. package/esm2022/lib/notifications/types/liked.notification.mjs +3 -3
  331. package/esm2022/lib/notifications/types/long-running-task.notification.mjs +3 -3
  332. package/esm2022/lib/notifications/types/notification-base.mjs +3 -3
  333. package/esm2022/lib/notifications/types/nudge.notification.mjs +3 -3
  334. package/esm2022/lib/notifications/types/state-changed.notification.mjs +3 -3
  335. package/esm2022/lib/notifications/types/tagged.notification.mjs +3 -3
  336. package/esm2022/lib/notifications/types/text.notification.mjs +3 -3
  337. package/esm2022/lib/notifications/types/upcoming-event.notification.mjs +3 -3
  338. package/esm2022/lib/options/options.component.mjs +3 -3
  339. package/esm2022/lib/options/options.service.mjs +3 -3
  340. package/esm2022/lib/reports/arguments-component.mjs +3 -3
  341. package/esm2022/lib/reports/cube/documents.component.mjs +3 -3
  342. package/esm2022/lib/reports/cube/grid-documents.component.mjs +15 -15
  343. package/esm2022/lib/reports/cube/performance-hilo.component.mjs +184 -0
  344. package/esm2022/lib/reports/cube/performance-wind.component.mjs +273 -0
  345. package/esm2022/lib/reports/cube/table-documents.component.mjs +3 -3
  346. package/esm2022/lib/reports/cube/usage-args.component.mjs +3 -3
  347. package/esm2022/lib/reports/cube/usage-base.mjs +17 -18
  348. package/esm2022/lib/reports/cube/usage-chart.component.mjs +6 -6
  349. package/esm2022/lib/reports/cube/usage-pivot.component.mjs +8 -8
  350. package/esm2022/lib/reports/cube/usage.component.mjs +3 -3
  351. package/esm2022/lib/reports/report-ref.mjs +2 -7
  352. package/esm2022/lib/reports/report-viewer.component.mjs +8 -11
  353. package/esm2022/lib/reports/report.mobile.component.mjs +3 -3
  354. package/esm2022/lib/reports/report.pane.component.mjs +3 -3
  355. package/esm2022/lib/reports/reports-menu.component.mjs +3 -3
  356. package/esm2022/lib/reports/substitution/substitution.component.mjs +3 -3
  357. package/esm2022/lib/reports/table/table-view.component.mjs +3 -3
  358. package/esm2022/lib/reports/tasks/tasks.component.mjs +3 -3
  359. package/esm2022/lib/scheduler/schedule.component.mjs +3 -3
  360. package/esm2022/lib/scheduler/scheduler.mobile.component.mjs +3 -3
  361. package/esm2022/lib/scheduler/scheduler.pane.component.mjs +3 -3
  362. package/esm2022/lib/search/cube.component.mjs +7 -5
  363. package/esm2022/lib/search/document.component.mjs +3 -3
  364. package/esm2022/lib/search/guide.component.mjs +3 -3
  365. package/esm2022/lib/search/path.component.mjs +3 -3
  366. package/esm2022/lib/search/search.service.mjs +3 -3
  367. package/esm2022/lib/shared.module.mjs +11 -11
  368. package/esm2022/lib/system.module.mjs +4 -4
  369. package/esm2022/lib/views/cube/chart.component.mjs +3 -3
  370. package/esm2022/lib/views/cube/cube-base.mjs +3 -3
  371. package/esm2022/lib/views/cube/explore.component.mjs +3 -3
  372. package/esm2022/lib/views/cube/matrix.component.mjs +3 -3
  373. package/esm2022/lib/views/cube/parallel.component.mjs +3 -3
  374. package/esm2022/lib/views/cube/pivot.component.mjs +3 -3
  375. package/esm2022/lib/views/cube/sum.component.mjs +3 -3
  376. package/esm2022/lib/views/cube/view.component.mjs +3 -3
  377. package/esm2022/lib/views/timeline/timeline.component.mjs +3 -3
  378. package/esm2022/lib/views/view-item.component.mjs +3 -3
  379. package/esm2022/lib/views/views.component.mjs +3 -3
  380. package/esm2022/lib/views/views.mobile.component.mjs +3 -3
  381. package/esm2022/lib/views/views.pane.component.mjs +3 -3
  382. package/esm2022/public-api.mjs +2 -2
  383. package/fesm2022/bizdoc-core.mjs +1517 -1425
  384. package/fesm2022/bizdoc-core.mjs.map +1 -1
  385. package/lib/core/base.d.ts +1 -0
  386. package/lib/core/fields/timespan.field.d.ts +1 -1
  387. package/lib/cube/cube-view.component.d.ts +7 -3
  388. package/lib/notifications/notifications.pane.component.d.ts +1 -1
  389. package/lib/reports/cube/grid-documents.component.d.ts +4 -1
  390. package/lib/reports/cube/{role-performance1.component.d.ts → performance-hilo.component.d.ts} +12 -4
  391. package/lib/reports/cube/performance-wind.component.d.ts +86 -0
  392. package/lib/reports/cube/usage-base.d.ts +4 -3
  393. package/lib/reports/cube/usage-chart.component.d.ts +1 -1
  394. package/lib/reports/cube/usage-pivot.component.d.ts +2 -2
  395. package/lib/reports/report-ref.d.ts +1 -4
  396. package/lib/shared.module.d.ts +4 -4
  397. package/package.json +1 -1
  398. package/public-api.d.ts +1 -1
  399. package/esm2022/lib/reports/cube/role-performance.component.mjs +0 -180
  400. package/esm2022/lib/reports/cube/role-performance1.component.mjs +0 -178
  401. package/lib/reports/cube/role-performance.component.d.ts +0 -50
  402. /package/lib/cube/spreadsheet/{spreadsheet.container.d.ts → spreadsheet.container.exp.d.ts} +0 -0
@@ -0,0 +1,273 @@
1
+ import { __decorate } from "tslib";
2
+ import { Component, ViewChild } from '@angular/core';
3
+ import { ChartComponent } from '@syncfusion/ej2-angular-charts';
4
+ import { Workbook } from '@syncfusion/ej2-excel-export';
5
+ import { Subject, startWith, takeUntil } from 'rxjs';
6
+ /// <reference path="./node_modules/dayjs/plugin/duration.d.ts" />
7
+ import dayjs from 'dayjs';
8
+ import { BizDoc } from '../../core/decorators';
9
+ import { FONT_FAMILY } from '../../core/colors';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "../../core/router";
12
+ import * as i2 from "../../core/account.service";
13
+ import * as i3 from "../../core/session.service";
14
+ import * as i4 from "../../core/translate.service";
15
+ import * as i5 from "../report-ref";
16
+ import * as i6 from "@syncfusion/ej2-angular-circulargauge";
17
+ import * as i7 from "@syncfusion/ej2-angular-charts";
18
+ import * as i8 from "@syncfusion/ej2-angular-lineargauge";
19
+ import * as i9 from "../../core/pipes/translate.pipe";
20
+ let PerformanceWindComponent = class PerformanceWindComponent {
21
+ constructor(_router, _accounts, _session, _translate, _reportRef) {
22
+ this._router = _router;
23
+ this._accounts = _accounts;
24
+ this._session = _session;
25
+ this._translate = _translate;
26
+ this._reportRef = _reportRef;
27
+ this.margin = { left: 20, right: 20 };
28
+ this.legendSettings = {
29
+ position: 'Left',
30
+ visible: false,
31
+ //isInversed: this._session.inverse,
32
+ enablePages: true,
33
+ enableHighlight: true,
34
+ };
35
+ this.tooltip = {
36
+ enable: true,
37
+ textStyle: {
38
+ fontFamily: FONT_FAMILY
39
+ }
40
+ };
41
+ this.titleStyle = {
42
+ fontFamily: FONT_FAMILY
43
+ };
44
+ this.primaryXAxis = { valueType: 'Double' };
45
+ this.primaryYAxis = {};
46
+ this.linearTooltip = {
47
+ enable: true,
48
+ textStyle: {
49
+ fontFamily: FONT_FAMILY
50
+ }
51
+ };
52
+ this.linearTitleStyle = {
53
+ fontFamily: FONT_FAMILY,
54
+ fontWeight: '300',
55
+ size: '12px',
56
+ };
57
+ this.line = {
58
+ width: 5
59
+ };
60
+ this.majorTicks = {
61
+ //interval: 20,
62
+ height: 6, width: 1
63
+ };
64
+ this.minorTicks = {
65
+ //interval: 10,
66
+ height: 3
67
+ };
68
+ this.labelStyle = {
69
+ font: { size: '0' },
70
+ format: 'p1',
71
+ };
72
+ this.standardMarker = {
73
+ visible: true,
74
+ shape: 'Triangle',
75
+ width: 5,
76
+ height: 5
77
+ };
78
+ this.marker = {
79
+ visible: true,
80
+ width: 5,
81
+ height: 5,
82
+ shape: 'Pentagon',
83
+ };
84
+ this.inverse = this._session.inverse;
85
+ this.actions = {};
86
+ this._destroy = new Subject();
87
+ _session.profile.actions.forEach(a => this.actions[a.name] = a);
88
+ _session.themeChange.pipe(takeUntil(this._destroy), startWith(_session.theme)).subscribe(t => {
89
+ this.theme = t.dark ? 'Material3Dark' : 'Material3';
90
+ this.accentColor = this._session.getAccent(900);
91
+ this.primeryColor = this._session.getPrimery();
92
+ this.chart?.refreshAxis();
93
+ });
94
+ }
95
+ onBind(data) {
96
+ this.records = null;
97
+ if (!data.length)
98
+ return;
99
+ this.durationMax = 0, this.durationMin = 0;
100
+ let accumStd = 0, stdCount = 0, accumDuration = 0, maxStd = 0, map = {};
101
+ this.standards = [];
102
+ data.forEach(e => {
103
+ let accumStd1 = 0, stdCount1 = 0, accumDuration1 = 0;
104
+ e.items.forEach(e => {
105
+ if (e.standardTime) {
106
+ if (e.standardTime > maxStd)
107
+ maxStd = e.standardTime;
108
+ stdCount1++;
109
+ accumStd1 += e.standardTime;
110
+ this.standards.push(e);
111
+ }
112
+ if (e.duration > this.durationMax)
113
+ this.durationMax = e.duration;
114
+ if (e.duration < this.durationMin || this.durationMin === 0)
115
+ this.durationMin = e.duration;
116
+ accumDuration1 += e.duration;
117
+ });
118
+ const durationAvg = accumDuration1 / data.length, standardAvg = stdCount1 ? accumStd1 / stdCount1 : 0;
119
+ map[e.userId] = {
120
+ items: e.items,
121
+ standardAvg,
122
+ durationAvg,
123
+ };
124
+ accumDuration += durationAvg;
125
+ if (stdCount1) {
126
+ stdCount++;
127
+ accumStd += standardAvg;
128
+ }
129
+ });
130
+ this.standards = this.standards.
131
+ sort((e1, e2) => e1.standardTime < e2.standardTime ? -1 : 1);
132
+ this.standardAvg = stdCount ? accumStd / stdCount : 0,
133
+ this.durationAvg = accumDuration / data.length;
134
+ this._accounts.getAll(data.map(e => e.userId)).
135
+ subscribe(users => {
136
+ this.deviationMax = 0, this.deviationMin = 0;
137
+ this.records = [];
138
+ users.forEach(u => {
139
+ const info = map[u.id], value = Math.round(info.durationAvg /
140
+ (info.standardAvg || this.durationAvg)), deviation = value > 1 ? (value - 1) * 100 : -value * 100;
141
+ info.deviation = deviation;
142
+ if (deviation > this.deviationMax)
143
+ this.deviationMax = deviation;
144
+ if (deviation < this.deviationMin || this.deviationMin === 0)
145
+ this.deviationMin = deviation;
146
+ this.records.push({
147
+ name: u.name,
148
+ ...info,
149
+ deviation
150
+ });
151
+ });
152
+ const colors = this._session.accentPalette;
153
+ this.palettes = [this.primeryColor,
154
+ ...colors
155
+ ];
156
+ while (this.records.length > this.palettes.length)
157
+ this.palettes.push(...colors);
158
+ this.title = this._translate.get('AverageValue', dayjs.duration(this.durationAvg, 'seconds').format('DD:HH:mm')),
159
+ this.subTitle = this.standardAvg ?
160
+ this._translate.get('StandardValue', dayjs.duration(this.standardAvg, 'seconds').format('DD:HH:mm')) : null;
161
+ });
162
+ }
163
+ linearTooltipRender(evt) {
164
+ const index = evt.axis.pointers.indexOf(evt.pointer);
165
+ evt.content = this._translate.get(index === 0 ? 'AverageValue' : 'StandardValue', dayjs.duration(evt.pointer.value, 's').format('DD:HH:mm'));
166
+ }
167
+ highlight(index) {
168
+ this.chart.highlightModule.clusterSelection(this.chart, { series: index + 1, point: 0 });
169
+ }
170
+ onExport() {
171
+ const book = new Workbook({
172
+ worksheets: [
173
+ {
174
+ enableRtl: this._session.inverse,
175
+ name: this._translate.get('SheetN', 1),
176
+ columns: [
177
+ { index: 1, width: 250 },
178
+ { index: 2, width: 150 },
179
+ { index: 3, width: 150 },
180
+ ],
181
+ rows: [{
182
+ index: 1,
183
+ cells: [{
184
+ index: 1,
185
+ type: 'text',
186
+ value: this._translate.get('Name'),
187
+ bold: true
188
+ }, {
189
+ index: 2,
190
+ type: 'text',
191
+ value: this._translate.get('Duration'),
192
+ bold: true
193
+ }, {
194
+ index: 3,
195
+ type: 'text',
196
+ value: this._translate.get('Deviation'),
197
+ bold: true
198
+ },
199
+ ]
200
+ }, ...this.records.map((r, i) => ({
201
+ index: 2 + i,
202
+ cells: [
203
+ {
204
+ type: 'text',
205
+ index: 1,
206
+ value: r.name,
207
+ style: {
208
+ hAlign: 'left'
209
+ }
210
+ },
211
+ {
212
+ type: 'text',
213
+ index: 2,
214
+ value: dayjs.duration(r.durationAvg, 's').format('DD:HH:mm'),
215
+ style: {
216
+ hAlign: 'right',
217
+ }
218
+ },
219
+ {
220
+ type: 'number',
221
+ index: 3,
222
+ value: r.deviation,
223
+ style: {
224
+ hAlign: 'right',
225
+ }
226
+ }
227
+ ]
228
+ }))],
229
+ },
230
+ ],
231
+ }, 'xlsx');
232
+ book.save(`${this._reportRef.name}.xlsx`);
233
+ }
234
+ tooltipRender(evt) {
235
+ evt.text = dayjs.duration(evt.data.pointY, 's').format('DD:HH:mm');
236
+ }
237
+ labelRender(evt) {
238
+ switch (evt.axis.name) {
239
+ case 'primaryYAxis':
240
+ evt.text = dayjs.duration(evt.value, 's').humanize();
241
+ break;
242
+ case 'primaryXAxis':
243
+ evt.text = dayjs(evt.value * 1000).format('MMM YYYY');
244
+ break;
245
+ }
246
+ }
247
+ explore(evt) {
248
+ const { pointIndex, seriesIndex } = evt;
249
+ if (seriesIndex === 0)
250
+ return;
251
+ const { documentId } = this.chart.series[seriesIndex].dataSource[pointIndex];
252
+ this._router.navigate(['mailbox', 'd', documentId.encodeId()]);
253
+ }
254
+ ngOnDestroy() {
255
+ this._destroy.next();
256
+ }
257
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: PerformanceWindComponent, deps: [{ token: i1.RouterImpl }, { token: i2.AccountService }, { token: i3.SessionService }, { token: i4.TranslateService }, { token: i5.ReportRef }], target: i0.ɵɵFactoryTarget.Component }); }
258
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: PerformanceWindComponent, selector: "ng-component", viewQueries: [{ propertyName: "chart", first: true, predicate: ChartComponent, descendants: true }], ngImport: i0, template: " @if(records) {\r\n<div class=\"row\">\r\n <div class=\"legend\">\r\n @for (r of records; track r; let i = $index) {\r\n <div (mouseover)=\"highlight(i)\">\r\n <ejs-lineargauge style=\"display: block\" background=\"transparent\" orientation=\"Horizontal\" [theme]=\"theme\"\r\n [tooltip]=\"linearTooltip\" width=\"190px\" height=\"45px\" [title]=\"r.name\"\r\n [titleStyle]=\"linearTitleStyle\" (tooltipRender)=\"linearTooltipRender($event)\">\r\n <e-axes>\r\n <e-axis [minimum]='durationMin - 1' [maximum]='durationMax + 1' [minorTicks]=\"minorTicks\" [majorTicks]=\"majorTicks\"\r\n [labelStyle]=\"labelStyle\" [line]=\"line\" format='p1'>\r\n <e-pointers>\r\n <e-pointer [value]=\"r.durationAvg\"\r\n [height]=7\r\n [width]=7\r\n type='Marker'\r\n [color]='accentColor'\r\n position='Outside' [animationDuration]=\"1500\"></e-pointer>\r\n @if(r.standardAvg)\r\n {\r\n <e-pointer markerType='Rectangle'\r\n [value]=\"r.standardAvg\"\r\n position='Cross'\r\n [width]=\"2\"\r\n [height]=\"6\"\r\n [color]=\"primeryColor\"></e-pointer>\r\n }\r\n </e-pointers>\r\n </e-axis>\r\n </e-axes>\r\n </ejs-lineargauge>\r\n </div>\r\n }\r\n </div>\r\n <ejs-chart style=\"flex: 1; display: block\" [theme]=\"theme\"\r\n [margin]=\"margin\"\r\n selectionMode='Series'\r\n [title]=\"title\"\r\n [titleStyle]=\"titleStyle\"\r\n [subTitle]=\"subTitle\"\r\n [subTitleStyle]=\"titleStyle\"\r\n [tooltip]=\"tooltip\"\r\n [enableAnimation]=\"true\"\r\n (tooltipRender)=\"tooltipRender($event)\"\r\n [legendSettings]=\"legendSettings\"\r\n (axisLabelRender)=\"labelRender($event)\"\r\n [palettes]=\"palettes\"\r\n [enableRtl]=\"inverse\"\r\n height='100%'\r\n highlightMode='Series'\r\n (pointClick)=\"explore($event)\">\r\n <e-series-collection>\r\n <e-series [name]=\"'Standard'|translate\"\r\n xName='date'\r\n yName='standardTime'\r\n type='Polar'\r\n drawType='Line'\r\n [marker]=standardMarker\r\n [dataSource]=standards>\r\n </e-series>\r\n @for(r of records; track r)\r\n {\r\n <e-series [dataSource]='r.items'\r\n [name]='r.name'\r\n type='Polar'\r\n drawType='Line'\r\n [marker]=marker\r\n xName='date'\r\n yName='duration'></e-series>\r\n }\r\n </e-series-collection>\r\n </ejs-chart>\r\n</div>\r\n}\r\n", styles: [":host{flex:1;display:flex}.legend{overflow-y:auto;display:flex;flex-wrap:wrap;max-width:400px}\n"], dependencies: [{ kind: "directive", type: i6.PointerDirective, selector: "e-pointers>e-pointer", inputs: ["animation", "border", "cap", "color", "description", "imageUrl", "linearGradient", "markerHeight", "markerShape", "markerWidth", "needleEndWidth", "needleStartWidth", "needleTail", "offset", "pointerWidth", "position", "radialGradient", "radius", "roundedCornerRadius", "text", "textStyle", "type", "value"] }, { kind: "directive", type: i6.PointersDirective, selector: "ej-circulargauge>e-axes>e-axis>e-pointers" }, { kind: "directive", type: i6.AxisDirective, selector: "e-axes>e-axis", inputs: ["annotations", "background", "direction", "endAngle", "hideIntersectingLabel", "labelStyle", "lineStyle", "majorTicks", "maximum", "minimum", "minorTicks", "pointers", "radius", "rangeGap", "ranges", "roundingPlaces", "showLastLabel", "startAndEndRangeGap", "startAngle"] }, { kind: "directive", type: i6.AxesDirective, selector: "ej-circulargauge>e-axes" }, { kind: "component", type: i7.ChartComponent, selector: "ejs-chart", inputs: ["allowExport", "allowMultiSelection", "annotations", "axes", "background", "backgroundImage", "border", "chartArea", "columns", "crosshair", "currencyCode", "dataSource", "description", "enableAnimation", "enableAutoIntervalOnBothAxis", "enableCanvas", "enableExport", "enablePersistence", "enableRtl", "enableSideBySidePlacement", "height", "highlightColor", "highlightMode", "highlightPattern", "indicators", "isMultiSelect", "isTransposed", "legendSettings", "locale", "margin", "palettes", "primaryXAxis", "primaryYAxis", "rangeColorSettings", "rows", "selectedDataIndexes", "selectionMode", "selectionPattern", "series", "subTitle", "subTitleStyle", "tabIndex", "theme", "title", "titleStyle", "tooltip", "useGroupingSeparator", "width", "zoomSettings"], outputs: ["afterExport", "animationComplete", "annotationRender", "axisLabelClick", "axisLabelRender", "axisMultiLabelRender", "axisRangeCalculated", "beforeExport", "beforePrint", "beforeResize", "chartDoubleClick", "chartMouseClick", "chartMouseDown", "chartMouseLeave", "chartMouseMove", "chartMouseUp", "drag", "dragComplete", "dragEnd", "dragStart", "legendClick", "legendRender", "load", "loaded", "multiLevelLabelClick", "onZooming", "pointClick", "pointDoubleClick", "pointMove", "pointRender", "resized", "scrollChanged", "scrollEnd", "scrollStart", "selectionComplete", "seriesRender", "sharedTooltipRender", "textRender", "tooltipRender", "zoomComplete", "dataSourceChange"] }, { kind: "directive", type: i7.SeriesDirective, selector: "e-series-collection>e-series", inputs: ["animation", "bearFillColor", "binInterval", "border", "boxPlotMode", "bullFillColor", "cardinalSplineTension", "close", "colorName", "columnFacet", "columnSpacing", "columnWidth", "columnWidthInPixel", "connector", "cornerRadius", "dashArray", "dataSource", "dragSettings", "drawType", "emptyPointSettings", "enableComplexProperty", "enableSolidCandles", "enableTooltip", "errorBar", "fill", "groupName", "high", "intermediateSumIndexes", "isClosed", "legendImageUrl", "legendShape", "low", "marker", "maxRadius", "minRadius", "name", "negativeFillColor", "nonHighlightStyle", "opacity", "open", "paretoOptions", "pointColorMapping", "query", "segmentAxis", "segments", "selectionStyle", "showMean", "showNormalDistribution", "size", "splineType", "stackingGroup", "step", "sumIndexes", "summaryFillColor", "tooltipFormat", "tooltipMappingName", "trendlines", "type", "unSelectedStyle", "visible", "volume", "width", "xAxisName", "xName", "yAxisName", "yName", "zOrder"] }, { kind: "directive", type: i7.SeriesCollectionDirective, selector: "ej-chart>e-series-collection" }, { kind: "directive", type: i7.AxisDirective, selector: "e-axes>e-axis", inputs: ["border", "coefficient", "columnIndex", "crossesAt", "crossesInAxis", "crosshairTooltip", "description", "desiredIntervals", "edgeLabelPlacement", "enableAutoIntervalOnZooming", "enableScrollbarOnZooming", "enableTrim", "interval", "intervalType", "isIndexed", "isInversed", "labelFormat", "labelIntersectAction", "labelPadding", "labelPlacement", "labelPosition", "labelRotation", "labelStyle", "lineBreakAlignment", "lineStyle", "logBase", "majorGridLines", "majorTickLines", "maximum", "maximumLabelWidth", "maximumLabels", "minimum", "minorGridLines", "minorTickLines", "minorTicksPerInterval", "multiLevelLabels", "name", "opposedPosition", "placeNextToAxisLine", "plotOffset", "plotOffsetBottom", "plotOffsetLeft", "plotOffsetRight", "plotOffsetTop", "rangePadding", "rowIndex", "scrollbarSettings", "skeleton", "skeletonType", "span", "startAngle", "startFromZero", "stripLines", "tabIndex", "tickPosition", "title", "titlePadding", "titleRotation", "titleStyle", "valueType", "visible", "zoomFactor", "zoomPosition"] }, { kind: "directive", type: i7.AxesDirective, selector: "ejs-chart>e-axes" }, { kind: "component", type: i8.LinearGaugeComponent, selector: "ejs-lineargauge", inputs: ["allowImageExport", "allowMargin", "allowPdfExport", "allowPrint", "animationDuration", "annotations", "axes", "background", "border", "container", "description", "edgeLabelPlacement", "enablePersistence", "enableRtl", "format", "height", "locale", "margin", "orientation", "rangePalettes", "tabIndex", "theme", "title", "titleStyle", "tooltip", "useGroupingSeparator", "width"], outputs: ["animationComplete", "annotationRender", "axisLabelRender", "beforePrint", "dragEnd", "dragMove", "dragStart", "gaugeMouseDown", "gaugeMouseLeave", "gaugeMouseMove", "gaugeMouseUp", "load", "loaded", "resized", "tooltipRender", "valueChange"] }, { kind: "directive", type: i8.PointerDirective, selector: "e-pointers>e-pointer", inputs: ["animationDuration", "border", "color", "description", "enableDrag", "height", "imageUrl", "linearGradient", "markerType", "offset", "opacity", "placement", "position", "radialGradient", "roundedCornerRadius", "text", "textStyle", "type", "value", "width"] }, { kind: "directive", type: i8.PointersDirective, selector: "ej-linear-gauge>e-axes>e-axis>e-pointers" }, { kind: "directive", type: i8.AxisDirective, selector: "e-axes>e-axis", inputs: ["isInversed", "labelStyle", "line", "majorTicks", "maximum", "minimum", "minorTicks", "opposedPosition", "pointers", "ranges", "showLastLabel"] }, { kind: "directive", type: i8.AxesDirective, selector: "ej-lineargauge>e-axes" }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }] }); }
259
+ };
260
+ PerformanceWindComponent = __decorate([
261
+ BizDoc({
262
+ selector: 'bizdoc-performance-wind'
263
+ })
264
+ ], PerformanceWindComponent);
265
+ export { PerformanceWindComponent };
266
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: PerformanceWindComponent, decorators: [{
267
+ type: Component,
268
+ args: [{ template: " @if(records) {\r\n<div class=\"row\">\r\n <div class=\"legend\">\r\n @for (r of records; track r; let i = $index) {\r\n <div (mouseover)=\"highlight(i)\">\r\n <ejs-lineargauge style=\"display: block\" background=\"transparent\" orientation=\"Horizontal\" [theme]=\"theme\"\r\n [tooltip]=\"linearTooltip\" width=\"190px\" height=\"45px\" [title]=\"r.name\"\r\n [titleStyle]=\"linearTitleStyle\" (tooltipRender)=\"linearTooltipRender($event)\">\r\n <e-axes>\r\n <e-axis [minimum]='durationMin - 1' [maximum]='durationMax + 1' [minorTicks]=\"minorTicks\" [majorTicks]=\"majorTicks\"\r\n [labelStyle]=\"labelStyle\" [line]=\"line\" format='p1'>\r\n <e-pointers>\r\n <e-pointer [value]=\"r.durationAvg\"\r\n [height]=7\r\n [width]=7\r\n type='Marker'\r\n [color]='accentColor'\r\n position='Outside' [animationDuration]=\"1500\"></e-pointer>\r\n @if(r.standardAvg)\r\n {\r\n <e-pointer markerType='Rectangle'\r\n [value]=\"r.standardAvg\"\r\n position='Cross'\r\n [width]=\"2\"\r\n [height]=\"6\"\r\n [color]=\"primeryColor\"></e-pointer>\r\n }\r\n </e-pointers>\r\n </e-axis>\r\n </e-axes>\r\n </ejs-lineargauge>\r\n </div>\r\n }\r\n </div>\r\n <ejs-chart style=\"flex: 1; display: block\" [theme]=\"theme\"\r\n [margin]=\"margin\"\r\n selectionMode='Series'\r\n [title]=\"title\"\r\n [titleStyle]=\"titleStyle\"\r\n [subTitle]=\"subTitle\"\r\n [subTitleStyle]=\"titleStyle\"\r\n [tooltip]=\"tooltip\"\r\n [enableAnimation]=\"true\"\r\n (tooltipRender)=\"tooltipRender($event)\"\r\n [legendSettings]=\"legendSettings\"\r\n (axisLabelRender)=\"labelRender($event)\"\r\n [palettes]=\"palettes\"\r\n [enableRtl]=\"inverse\"\r\n height='100%'\r\n highlightMode='Series'\r\n (pointClick)=\"explore($event)\">\r\n <e-series-collection>\r\n <e-series [name]=\"'Standard'|translate\"\r\n xName='date'\r\n yName='standardTime'\r\n type='Polar'\r\n drawType='Line'\r\n [marker]=standardMarker\r\n [dataSource]=standards>\r\n </e-series>\r\n @for(r of records; track r)\r\n {\r\n <e-series [dataSource]='r.items'\r\n [name]='r.name'\r\n type='Polar'\r\n drawType='Line'\r\n [marker]=marker\r\n xName='date'\r\n yName='duration'></e-series>\r\n }\r\n </e-series-collection>\r\n </ejs-chart>\r\n</div>\r\n}\r\n", styles: [":host{flex:1;display:flex}.legend{overflow-y:auto;display:flex;flex-wrap:wrap;max-width:400px}\n"] }]
269
+ }], ctorParameters: () => [{ type: i1.RouterImpl }, { type: i2.AccountService }, { type: i3.SessionService }, { type: i4.TranslateService }, { type: i5.ReportRef }], propDecorators: { chart: [{
270
+ type: ViewChild,
271
+ args: [ChartComponent]
272
+ }] } });
273
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyZm9ybWFuY2Utd2luZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL3JlcG9ydHMvY3ViZS9wZXJmb3JtYW5jZS13aW5kLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvcmVwb3J0cy9jdWJlL3BlcmZvcm1hbmNlLXdpbmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWEsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2hFLE9BQU8sRUFBRSxjQUFjLEVBQXVCLE1BQU0sZ0NBQWdDLENBQUM7QUFDckYsT0FBTyxFQUFFLFFBQVEsRUFBMEIsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckQsa0VBQWtFO0FBQ2xFLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFRL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7Ozs7Ozs7OztBQVN6QyxJQUFNLHdCQUF3QixHQUE5QixNQUFNLHdCQUF3QjtJQTRFbkMsWUFDVSxPQUFtQixFQUNuQixTQUF5QixFQUN6QixRQUF3QixFQUN4QixVQUE0QixFQUM1QixVQUErQztRQUovQyxZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQ25CLGNBQVMsR0FBVCxTQUFTLENBQWdCO1FBQ3pCLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ3hCLGVBQVUsR0FBVixVQUFVLENBQWtCO1FBQzVCLGVBQVUsR0FBVixVQUFVLENBQXFDO1FBbkVoRCxXQUFNLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEtBQUss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LFFBQVEsRUFBRSxDQUFDO2dCQUNyRCxNQUFNO1lBQ1IsS0FBSyxjQUFjO2dCQUNqQixHQUFHLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDdEQsTUFBTTtRQUNWLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxDQUFDLEdBQW9CO1FBQzFCLE1BQU0sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEdBQUcsR0FBRyxDQUFDO1FBQ3hDLElBQUksV0FBVyxLQUFLLENBQUM7WUFBRSxPQUFPO1FBRTlCLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFjLENBQUM7UUFFMUYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7OEdBeFFVLHdCQUF3QjtrR0FBeEIsd0JBQXdCLDJGQUN4QixjQUFjLGdEQzFCM0IsMCtGQTBFQTs7QURqRGEsd0JBQXdCO0lBSHBDLE1BQU0sQ0FBQztRQUNOLFFBQVEsRUFBRSx5QkFBeUI7S0FDcEMsQ0FBQztHQUNXLHdCQUF3QixDQXlRcEM7OzJGQXpRWSx3QkFBd0I7a0JBUHBDLFNBQVM7O2dNQVFtQixLQUFLO3NCQUEvQixTQUFTO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IElQb2ludEV2ZW50QXJncywgSVRvb2x0aXBSZW5kZXJFdmVudEFyZ3MsIENoYXJ0LCBJQXhpc0xhYmVsUmVuZGVyRXZlbnRBcmdzLCBMZWdlbmRTZXR0aW5nc01vZGVsLCBUb29sdGlwU2V0dGluZ3NNb2RlbCwgdGl0bGVTZXR0aW5nc01vZGVsLCBNYXJnaW5Nb2RlbCwgU2VyaWVzTWFya2VyTW9kZWwgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItY2hhcnRzJztcclxuaW1wb3J0IHsgVG9vbHRpcFNldHRpbmdzTW9kZWwgYXMgVE1vZGVsLCBJVG9vbHRpcFJlbmRlckV2ZW50QXJncyBhcyBJVFJlbmRlckV2ZW50QXJncywgQXhpc01vZGVsLCBUaWNrTW9kZWwsIExhYmVsTW9kZWwsIExpbmVNb2RlbCwgRm9udE1vZGVsLCBMaW5lYXJHYXVnZSB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWxpbmVhcmdhdWdlJztcclxuaW1wb3J0IHsgQ2hhcnRDb21wb25lbnQsIE1hcmtlclNldHRpbmdzTW9kZWwgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItYW5ndWxhci1jaGFydHMnO1xyXG5pbXBvcnQgeyBXb3JrYm9vaywgV29ya3NoZWV0LCBSb3csIENvbHVtbiB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1leGNlbC1leHBvcnQnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBzdGFydFdpdGgsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi9ub2RlX21vZHVsZXMvZGF5anMvcGx1Z2luL2R1cmF0aW9uLmQudHNcIiAvPlxyXG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xyXG5pbXBvcnQgeyBCaXpEb2MgfSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvcnMnO1xyXG5pbXBvcnQgeyBSZXBvcnRSZWYgfSBmcm9tICcuLi9yZXBvcnQtcmVmJztcclxuaW1wb3J0IHsgUmVwb3J0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS9iYXNlJztcclxuaW1wb3J0IHsgQWNjb3VudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2FjY291bnQuc2VydmljZSc7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSb3V0ZXJJbXBsIH0gZnJvbSAnLi4vLi4vY29yZS9yb3V0ZXInO1xyXG5pbXBvcnQgeyBBY3Rpb24sIEF4ZXNNYXAgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRk9OVF9GQU1JTFkgfSBmcm9tICcuLi8uLi9jb3JlL2NvbG9ycyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZVVybDogJ3BlcmZvcm1hbmNlLXdpbmQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAncGVyZm9ybWFuY2Utd2luZC5jb21wb25lbnQuc2NzcycsXHJcbn0pXHJcbkBCaXpEb2Moe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLXBlcmZvcm1hbmNlLXdpbmQnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQZXJmb3JtYW5jZVdpbmRDb21wb25lbnQgaW1wbGVtZW50cyBSZXBvcnRDb21wb25lbnQ8RGF0YU1vZGVsPiwgT25EZXN0cm95IHtcclxuICBAVmlld0NoaWxkKENoYXJ0Q29tcG9uZW50KSBjaGFydDogQ2hhcnQ7XHJcbiAgZHVyYXRpb25Bdmc6IG51bWJlcjtcclxuICBkdXJhdGlvbk1pbjogbnVtYmVyO1xyXG4gIGR1cmF0aW9uTWF4OiBudW1iZXI7XHJcbiAgZGV2aWF0aW9uTWF4OiBudW1iZXI7XHJcbiAgZGV2aWF0aW9uTWluOiBudW1iZXI7XHJcbiAgc3RhbmRhcmRBdmc6IG51bWJlcjtcclxuICByZWNvcmRzOiBSZWNvcmRNb2RlbFtdO1xyXG4gIHN0YW5kYXJkczogSXRlbU1vZGVsW107XHJcbiAgc3ViVGl0bGU6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIGFjY2VudENvbG9yOiBzdHJpbmc7XHJcbiAgcHJpbWVyeUNvbG9yOiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgbWFyZ2luID0geyBsZWZ0OiAyMCwgcmlnaHQ6IDIwIH0gYXMgTWFyZ2luTW9kZWw7XHJcbiAgcmVhZG9ubHkgbGVnZW5kU2V0dGluZ3MgPSB7XHJcbiAgICBwb3NpdGlvbjogJ0xlZnQnLFxyXG4gICAgdmlzaWJsZTogZmFsc2UsXHJcbiAgICAgLy9pc0ludmVyc2VkOiB0aGlzLl9zZXNzaW9uLmludmVyc2UsXHJcbiAgICBlbmFibGVQYWdlczogdHJ1ZSxcclxuICAgIGVuYWJsZUhpZ2hsaWdodDogdHJ1ZSxcclxuICB9IGFzIExlZ2VuZFNldHRpbmdzTW9kZWw7XHJcbiAgcmVhZG9ubHkgdG9vbHRpcCA9IHtcclxuICAgIGVuYWJsZTogdHJ1ZSxcclxuICAgIHRleHRTdHlsZToge1xyXG4gICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgfVxyXG4gIH0gYXMgVG9vbHRpcFNldHRpbmdzTW9kZWw7XHJcbiAgdGhlbWU6ICdNYXRlcmlhbDMnIHwgJ01hdGVyaWFsM0RhcmsnO1xyXG4gIHJlYWRvbmx5IHRpdGxlU3R5bGUgPSB7XHJcbiAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gIH0gYXMgdGl0bGVTZXR0aW5nc01vZGVsO1xyXG4gIHJlYWRvbmx5IHByaW1hcnlYQXhpcyA9IHsgdmFsdWVUeXBlOiAnRG91YmxlJyB9IGFzIEF4aXNNb2RlbDtcclxuICByZWFkb25seSBwcmltYXJ5WUF4aXMgPSB7fSBhcyBBeGlzTW9kZWw7XHJcbiAgcmVhZG9ubHkgbGluZWFyVG9vbHRpcCA9IHtcclxuICAgIGVuYWJsZTogdHJ1ZSxcclxuICAgIHRleHRTdHlsZToge1xyXG4gICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgfVxyXG4gIH0gYXMgVE1vZGVsO1xyXG4gIHJlYWRvbmx5IGxpbmVhclRpdGxlU3R5bGUgPSB7XHJcbiAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWSxcclxuICAgIGZvbnRXZWlnaHQ6ICczMDAnLFxyXG4gICAgc2l6ZTogJzEycHgnLFxyXG4gIH0gYXMgRm9udE1vZGVsO1xyXG4gIHJlYWRvbmx5IGxpbmUgPSB7XHJcbiAgICB3aWR0aDogNVxyXG4gIH0gYXMgTGluZU1vZGVsO1xyXG4gIHJlYWRvbmx5IG1ham9yVGlja3MgPSB7XHJcbiAgICAvL2ludGVydmFsOiAyMCxcclxuICAgIGhlaWdodDogNiwgd2lkdGg6IDFcclxuICB9IGFzIFRpY2tNb2RlbDtcclxuICByZWFkb25seSBtaW5vclRpY2tzID0ge1xyXG4gICAgLy9pbnRlcnZhbDogMTAsXHJcbiAgICBoZWlnaHQ6IDNcclxuICB9IGFzIFRpY2tNb2RlbDtcclxuICByZWFkb25seSBsYWJlbFN0eWxlID0ge1xyXG4gICAgZm9udDogeyBzaXplOiAnMCcgfSxcclxuICAgIGZvcm1hdDogJ3AxJyxcclxuICB9IGFzIExhYmVsTW9kZWw7XHJcbiAgcmVhZG9ubHkgc3RhbmRhcmRNYXJrZXIgPSB7XHJcbiAgICB2aXNpYmxlOiB0cnVlLFxyXG4gICAgc2hhcGU6ICdUcmlhbmdsZScsXHJcbiAgICB3aWR0aDogNSxcclxuICAgIGhlaWdodDogNVxyXG4gIH0gYXMgTWFya2VyU2V0dGluZ3NNb2RlbDtcclxuICByZWFkb25seSBtYXJrZXIgPSB7XHJcbiAgICB2aXNpYmxlOiB0cnVlLFxyXG4gICAgd2lkdGg6IDUsXHJcbiAgICBoZWlnaHQ6IDUsXHJcbiAgICBzaGFwZTogJ1BlbnRhZ29uJyxcclxuICB9IGFzIE1hcmtlclNldHRpbmdzTW9kZWw7XHJcbiAgcmVhZG9ubHkgaW52ZXJzZSA9IHRoaXMuX3Nlc3Npb24uaW52ZXJzZTtcclxuICBwcml2YXRlIGFjdGlvbnM6IHsgW25hbWU6IHN0cmluZ106IEFjdGlvbiB9ID0ge307XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcGFsZXR0ZXM6IHN0cmluZ1tdO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXJJbXBsLFxyXG4gICAgcHJpdmF0ZSBfYWNjb3VudHM6IEFjY291bnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9yZXBvcnRSZWY6IFJlcG9ydFJlZjxQZXJmb3JtYW5jZVNldHRpbmdzTW9kZWw+XHJcbiAgKSB7XHJcbiAgICBfc2Vzc2lvbi5wcm9maWxlLmFjdGlvbnMuZm9yRWFjaChhID0+XHJcbiAgICAgIHRoaXMuYWN0aW9uc1thLm5hbWVdID0gYVxyXG4gICAgKTtcclxuICAgIF9zZXNzaW9uLnRoZW1lQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpLCBzdGFydFdpdGgoX3Nlc3Npb24udGhlbWUpKS5zdWJzY3JpYmUodCA9PiB7XHJcbiAgICAgIHRoaXMudGhlbWUgPSB0LmRhcmsgPyAnTWF0ZXJpYWwzRGFyaycgOiAnTWF0ZXJpYWwzJztcclxuICAgICAgdGhpcy5hY2NlbnRDb2xvciA9IHRoaXMuX3Nlc3Npb24uZ2V0QWNjZW50KDkwMCk7XHJcbiAgICAgIHRoaXMucHJpbWVyeUNvbG9yID0gdGhpcy5fc2Vzc2lvbi5nZXRQcmltZXJ5KCk7XHJcbiAgICAgIHRoaXMuY2hhcnQ/LnJlZnJlc2hBeGlzKCk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgb25CaW5kKGRhdGE6IERhdGFNb2RlbFtdKSB7XHJcbiAgICB0aGlzLnJlY29yZHMgPSBudWxsO1xyXG4gICAgaWYgKCFkYXRhLmxlbmd0aCkgcmV0dXJuO1xyXG4gICAgdGhpcy5kdXJhdGlvbk1heCA9IDAsIHRoaXMuZHVyYXRpb25NaW4gPSAwO1xyXG4gICAgbGV0IGFjY3VtU3RkID0gMCwgc3RkQ291bnQgPSAwLCBhY2N1bUR1cmF0aW9uID0gMCwgbWF4U3RkID0gMCxcclxuICAgICAgbWFwOiB7XHJcbiAgICAgICAgW3VzZXJJZDogc3RyaW5nXTogUmVjb3JkTW9kZWxcclxuICAgICAgfSA9IHt9O1xyXG4gICAgdGhpcy5zdGFuZGFyZHMgPSBbXTtcclxuICAgIGRhdGEuZm9yRWFjaChlID0+IHtcclxuICAgICAgbGV0IGFjY3VtU3RkMSA9IDAsIHN0ZENvdW50MSA9IDAsIGFjY3VtRHVyYXRpb24xID0gMDtcclxuICAgICAgZS5pdGVtcy5mb3JFYWNoKGUgPT4ge1xyXG4gICAgICAgIGlmIChlLnN0YW5kYXJkVGltZSkge1xyXG4gICAgICAgICAgaWYgKGUuc3RhbmRhcmRUaW1lID4gbWF4U3RkKVxyXG4gICAgICAgICAgICBtYXhTdGQgPSBlLnN0YW5kYXJkVGltZTtcclxuICAgICAgICAgIHN0ZENvdW50MSsrO1xyXG4gICAgICAgICAgYWNjdW1TdGQxICs9IGUuc3RhbmRhcmRUaW1lO1xyXG4gICAgICAgICAgdGhpcy5zdGFuZGFyZHMucHVzaChlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGUuZHVyYXRpb24gPiB0aGlzLmR1cmF0aW9uTWF4KVxyXG4gICAgICAgICAgdGhpcy5kdXJhdGlvbk1heCA9IGUuZHVyYXRpb247XHJcbiAgICAgICAgaWYgKGUuZHVyYXRpb24gPCB0aGlzLmR1cmF0aW9uTWluIHx8IHRoaXMuZHVyYXRpb25NaW4gPT09IDApXHJcbiAgICAgICAgICB0aGlzLmR1cmF0aW9uTWluID0gZS5kdXJhdGlvbjtcclxuICAgICAgICBhY2N1bUR1cmF0aW9uMSArPSBlLmR1cmF0aW9uO1xyXG4gICAgICB9KTtcclxuICAgICAgY29uc3QgZHVyYXRpb25BdmcgPSBhY2N1bUR1cmF0aW9uMSAvIGRhdGEubGVuZ3RoLCBzdGFuZGFyZEF2ZyA9IHN0ZENvdW50MSA/IGFjY3VtU3RkMSAvIHN0ZENvdW50MSA6IDA7XHJcbiAgICAgIG1hcFtlLnVzZXJJZF0gPSB7XHJcbiAgICAgICAgaXRlbXM6IGUuaXRlbXMsXHJcbiAgICAgICAgc3RhbmRhcmRBdmcsXHJcbiAgICAgICAgZHVyYXRpb25BdmcsXHJcbiAgICAgIH07XHJcbiAgICAgIGFjY3VtRHVyYXRpb24gKz0gZHVyYXRpb25Bdmc7XHJcbiAgICAgIGlmIChzdGRDb3VudDEpIHtcclxuICAgICAgICBzdGRDb3VudCsrO1xyXG4gICAgICAgIGFjY3VtU3RkICs9IHN0YW5kYXJkQXZnO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc3RhbmRhcmRzID0gdGhpcy5zdGFuZGFyZHMuXHJcbiAgICAgIHNvcnQoKGUxLCBlMikgPT4gZTEuc3RhbmRhcmRUaW1lIDwgZTIuc3RhbmRhcmRUaW1lID8gLTEgOiAxKTtcclxuICAgIHRoaXMuc3RhbmRhcmRBdmcgPSBzdGRDb3VudCA/IGFjY3VtU3RkIC8gc3RkQ291bnQgOiAwLFxyXG4gICAgICB0aGlzLmR1cmF0aW9uQXZnID0gYWNjdW1EdXJhdGlvbiAvIGRhdGEubGVuZ3RoO1xyXG4gICAgdGhpcy5fYWNjb3VudHMuZ2V0QWxsKGRhdGEubWFwKGUgPT4gZS51c2VySWQpKS5cclxuICAgICAgc3Vic2NyaWJlKHVzZXJzID0+IHtcclxuICAgICAgICB0aGlzLmRldmlhdGlvbk1heCA9IDAsIHRoaXMuZGV2aWF0aW9uTWluID0gMDtcclxuICAgICAgICB0aGlzLnJlY29yZHMgPSBbXTtcclxuICAgICAgICB1c2Vycy5mb3JFYWNoKHUgPT4ge1xyXG4gICAgICAgICAgY29uc3QgaW5mbyA9IG1hcFt1LmlkXSxcclxuICAgICAgICAgICAgdmFsdWUgPSBNYXRoLnJvdW5kKGluZm8uZHVyYXRpb25BdmcgL1xyXG4gICAgICAgICAgICAgIChpbmZvLnN0YW5kYXJkQXZnIHx8IHRoaXMuZHVyYXRpb25BdmcpKSxcclxuICAgICAgICAgICAgZGV2aWF0aW9uID0gdmFsdWUgPiAxID8gKHZhbHVlIC0gMSkgKiAxMDAgOiAtIHZhbHVlICogMTAwO1xyXG4gICAgICAgICAgaW5mby5kZXZpYXRpb24gPSBkZXZpYXRpb247XHJcbiAgICAgICAgICBpZiAoZGV2aWF0aW9uID4gdGhpcy5kZXZpYXRpb25NYXgpXHJcbiAgICAgICAgICAgIHRoaXMuZGV2aWF0aW9uTWF4ID0gZGV2aWF0aW9uO1xyXG4gICAgICAgICAgaWYgKGRldmlhdGlvbiA8IHRoaXMuZGV2aWF0aW9uTWluIHx8IHRoaXMuZGV2aWF0aW9uTWluID09PSAwKVxyXG4gICAgICAgICAgICB0aGlzLmRldmlhdGlvbk1pbiA9IGRldmlhdGlvbjtcclxuICAgICAgICAgIHRoaXMucmVjb3Jkcy5wdXNoKHtcclxuICAgICAgICAgICAgbmFtZTogdS5uYW1lLFxyXG4gICAgICAgICAgICAuLi5pbmZvLFxyXG4gICAgICAgICAgICBkZXZpYXRpb25cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGNvbnN0IGNvbG9ycyA9IHRoaXMuX3Nlc3Npb24uYWNjZW50UGFsZXR0ZTtcclxuICAgICAgICB0aGlzLnBhbGV0dGVzID0gW3RoaXMucHJpbWVyeUNvbG9yLFxyXG4gICAgICAgIC4uLmNvbG9yc1xyXG4gICAgICAgIF07XHJcbiAgICAgICAgd2hpbGUgKHRoaXMucmVjb3Jkcy5sZW5ndGggPiB0aGlzLnBhbGV0dGVzLmxlbmd0aClcclxuICAgICAgICAgIHRoaXMucGFsZXR0ZXMucHVzaCguLi5jb2xvcnMpO1xyXG4gICAgICAgIHRoaXMudGl0bGUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdBdmVyYWdlVmFsdWUnLCBkYXlqcy5kdXJhdGlvbih0aGlzLmR1cmF0aW9uQXZnLCAnc2Vjb25kcycpLmZvcm1hdCgnREQ6SEg6bW0nKSksXHJcbiAgICAgICAgICB0aGlzLnN1YlRpdGxlID0gdGhpcy5zdGFuZGFyZEF2ZyA/XHJcbiAgICAgICAgICAgIHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1N0YW5kYXJkVmFsdWUnLCBkYXlqcy5kdXJhdGlvbih0aGlzLnN0YW5kYXJkQXZnLCAnc2Vjb25kcycpLmZvcm1hdCgnREQ6SEg6bW0nKSkgOiBudWxsO1xyXG4gICAgICB9KTtcclxuICB9XHJcbiAgbGluZWFyVG9vbHRpcFJlbmRlcihldnQ6IElUUmVuZGVyRXZlbnRBcmdzKSB7XHJcbiAgICBjb25zdCBpbmRleCA9IGV2dC5heGlzLnBvaW50ZXJzLmluZGV4T2YoZXZ0LnBvaW50ZXIpO1xyXG4gICAgZXZ0LmNvbnRlbnQgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KGluZGV4ID09PSAwID8gJ0F2ZXJhZ2VWYWx1ZScgOiAnU3RhbmRhcmRWYWx1ZScsIGRheWpzLmR1cmF0aW9uKGV2dC5wb2ludGVyLnZhbHVlLCAncycpLmZvcm1hdCgnREQ6SEg6bW0nKSk7XHJcbiAgfVxyXG4gIGhpZ2hsaWdodChpbmRleDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmNoYXJ0LmhpZ2hsaWdodE1vZHVsZS5jbHVzdGVyU2VsZWN0aW9uKHRoaXMuY2hhcnQsIHsgc2VyaWVzOiBpbmRleCArIDEsIHBvaW50OiAwIH0pO1xyXG4gIH1cclxuICBvbkV4cG9ydCgpIHtcclxuICAgIGNvbnN0IGJvb2sgPSBuZXcgV29ya2Jvb2soXHJcbiAgICAgIHtcclxuICAgICAgICB3b3Jrc2hlZXRzOiBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGVuYWJsZVJ0bDogdGhpcy5fc2Vzc2lvbi5pbnZlcnNlLFxyXG4gICAgICAgICAgICBuYW1lOiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdTaGVldE4nLCAxKSxcclxuICAgICAgICAgICAgY29sdW1uczogW1xyXG4gICAgICAgICAgICAgIHsgaW5kZXg6IDEsIHdpZHRoOiAyNTAgfSBhcyBDb2x1bW4sXHJcbiAgICAgICAgICAgICAgeyBpbmRleDogMiwgd2lkdGg6IDE1MCB9IGFzIENvbHVtbixcclxuICAgICAgICAgICAgICB7IGluZGV4OiAzLCB3aWR0aDogMTUwIH0gYXMgQ29sdW1uLFxyXG4gICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICByb3dzOiBbe1xyXG4gICAgICAgICAgICAgIGluZGV4OiAxLFxyXG4gICAgICAgICAgICAgIGNlbGxzOiBbe1xyXG4gICAgICAgICAgICAgICAgaW5kZXg6IDEsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy5fdHJhbnNsYXRlLmdldCgnTmFtZScpLFxyXG4gICAgICAgICAgICAgICAgYm9sZDogdHJ1ZVxyXG4gICAgICAgICAgICAgIH0sIHtcclxuICAgICAgICAgICAgICAgIGluZGV4OiAyLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxyXG4gICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0R1cmF0aW9uJyksXHJcbiAgICAgICAgICAgICAgICBib2xkOiB0cnVlXHJcbiAgICAgICAgICAgICAgfSwge1xyXG4gICAgICAgICAgICAgICAgaW5kZXg6IDMsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy5fdHJhbnNsYXRlLmdldCgnRGV2aWF0aW9uJyksXHJcbiAgICAgICAgICAgICAgICBib2xkOiB0cnVlXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICAgIH0gYXMgUm93LCAuLi50aGlzLnJlY29yZHMubWFwKChyLCBpKSA9PiAoXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgaW5kZXg6IDIgKyBpLFxyXG4gICAgICAgICAgICAgICAgY2VsbHM6IFtcclxuICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcclxuICAgICAgICAgICAgICAgICAgICBpbmRleDogMSxcclxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogci5uYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBoQWxpZ246ICdsZWZ0J1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcclxuICAgICAgICAgICAgICAgICAgICBpbmRleDogMixcclxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZGF5anMuZHVyYXRpb24oci5kdXJhdGlvbkF2ZywgJ3MnKS5mb3JtYXQoJ0REOkhIOm1tJyksXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHtcclxuICAgICAgICAgICAgICAgICAgICAgIGhBbGlnbjogJ3JpZ2h0JyxcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnbnVtYmVyJyxcclxuICAgICAgICAgICAgICAgICAgICBpbmRleDogMyxcclxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogci5kZXZpYXRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHtcclxuICAgICAgICAgICAgICAgICAgICAgIGhBbGlnbjogJ3JpZ2h0JyxcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH1dXHJcbiAgICAgICAgICAgICAgfSBhcyBSb3dcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApXSxcclxuICAgICAgICAgIH0gYXMgV29ya3NoZWV0LFxyXG4gICAgICAgIF0sXHJcbiAgICAgIH0sXHJcbiAgICAgICd4bHN4J1xyXG4gICAgKTtcclxuICAgIGJvb2suc2F2ZShgJHt0aGlzLl9yZXBvcnRSZWYubmFtZX0ueGxzeGApO1xyXG4gIH1cclxuICB0b29sdGlwUmVuZGVyKGV2dDogSVRvb2x0aXBSZW5kZXJFdmVudEFyZ3MpIHtcclxuICAgIGV2dC50ZXh0ID0gZGF5anMuZHVyYXRpb24oZXZ0LmRhdGEucG9pbnRZIGFzIGFueSwgJ3MnKS5mb3JtYXQoJ0REOkhIOm1tJyk7XHJcbiAgfVxyXG4gIGxhYmVsUmVuZGVyKGV2dDogSUF4aXNMYWJlbFJlbmRlckV2ZW50QXJncykge1xyXG4gICAgc3dpdGNoIChldnQuYXhpcy5uYW1lKSB7XHJcbiAgICAgIGNhc2UgJ3ByaW1hcnlZQXhpcyc6XHJcbiAgICAgICAgZXZ0LnRleHQgPSBkYXlqcy5kdXJhdGlvbihldnQudmFsdWUsICdzJykuaHVtYW5pemUoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAncHJpbWFyeVhBeGlzJzpcclxuICAgICAgICBldnQudGV4dCA9IGRheWpzKGV2dC52YWx1ZSAqIDEwMDApLmZvcm1hdCgnTU1NIFlZWVknKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcbiAgZXhwbG9yZShldnQ6IElQb2ludEV2ZW50QXJncykge1xyXG4gICAgY29uc3QgeyBwb2ludEluZGV4LCBzZXJpZXNJbmRleCB9ID0gZXZ0O1xyXG4gICAgaWYgKHNlcmllc0luZGV4ID09PSAwKSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgeyBkb2N1bWVudElkIH0gPSB0aGlzLmNoYXJ0LnNlcmllc1tzZXJpZXNJbmRleF0uZGF0YVNvdXJjZVtwb2ludEluZGV4XSBhcyBJdGVtTW9kZWw7XHJcblxyXG4gICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFsnbWFpbGJveCcsICdkJywgZG9jdW1lbnRJZC5lbmNvZGVJZCgpXSk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveS5uZXh0KCk7XHJcbiAgfVxyXG59XHJcblxyXG5pbnRlcmZhY2UgRGF0YU1vZGVsIHtcclxuICB1c2VySWQ6IHN0cmluZztcclxuICBpdGVtczogSXRlbU1vZGVsW107XHJcbn1cclxuaW50ZXJmYWNlIEl0ZW1Nb2RlbCB7XHJcbiAgZG9jdW1lbnRJZDogbnVtYmVyO1xyXG4gIGRhdGU6IG51bWJlcjtcclxuICBzdGFuZGFyZFRpbWU/OiBudW1iZXI7XHJcbiAgZHVyYXRpb246IG51bWJlcjtcclxuICBpc0ZZSTogYm9vbGVhbjtcclxuICBhY3Rpb25JZDogc3RyaW5nO1xyXG59XHJcbmludGVyZmFjZSBSZWNvcmRNb2RlbCB7XHJcbiAgbmFtZT86IHN0cmluZztcclxuICBkdXJhdGlvbkF2ZzogbnVtYmVyO1xyXG4gIHN0YW5kYXJkQXZnPzogbnVtYmVyO1xyXG4gIGRldmlhdGlvbj86IG51bWJlcjtcclxuICBpdGVtczogSXRlbU1vZGVsW107XHJcbn1cclxuXHJcblxyXG5pbnRlcmZhY2UgUGVyZm9ybWFuY2VTZXR0aW5nc01vZGVsIHtcclxuICBjdWJlPzogc3RyaW5nO1xyXG4gIGZpbHRlcnM/OiBBeGVzTWFwO1xyXG59XHJcbiIsIiBAaWYocmVjb3Jkcykge1xyXG48ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgPGRpdiBjbGFzcz1cImxlZ2VuZFwiPlxyXG4gICAgQGZvciAociBvZiByZWNvcmRzOyB0cmFjayByOyBsZXQgaSA9ICRpbmRleCkge1xyXG4gICAgPGRpdiAobW91c2VvdmVyKT1cImhpZ2hsaWdodChpKVwiPlxyXG4gICAgICA8ZWpzLWxpbmVhcmdhdWdlIHN0eWxlPVwiZGlzcGxheTogYmxvY2tcIiBiYWNrZ3JvdW5kPVwidHJhbnNwYXJlbnRcIiBvcmllbnRhdGlvbj1cIkhvcml6b250YWxcIiBbdGhlbWVdPVwidGhlbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFt0b29sdGlwXT1cImxpbmVhclRvb2x0aXBcIiB3aWR0aD1cIjE5MHB4XCIgaGVpZ2h0PVwiNDVweFwiIFt0aXRsZV09XCJyLm5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZVN0eWxlXT1cImxpbmVhclRpdGxlU3R5bGVcIiAodG9vbHRpcFJlbmRlcik9XCJsaW5lYXJUb29sdGlwUmVuZGVyKCRldmVudClcIj5cclxuICAgICAgICA8ZS1heGVzPlxyXG4gICAgICAgICAgPGUtYXhpcyBbbWluaW11bV09J2R1cmF0aW9uTWluIC0gMScgW21heGltdW1dPSdkdXJhdGlvbk1heCArIDEnIFttaW5vclRpY2tzXT1cIm1pbm9yVGlja3NcIiBbbWFqb3JUaWNrc109XCJtYWpvclRpY2tzXCJcclxuICAgICAgICAgICAgICAgICAgW2xhYmVsU3R5bGVdPVwibGFiZWxTdHlsZVwiIFtsaW5lXT1cImxpbmVcIiBmb3JtYXQ9J3AxJz5cclxuICAgICAgICAgICAgPGUtcG9pbnRlcnM+XHJcbiAgICAgICAgICAgICAgPGUtcG9pbnRlciBbdmFsdWVdPVwici5kdXJhdGlvbkF2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbaGVpZ2h0XT03XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbd2lkdGhdPTdcclxuICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9J01hcmtlcidcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xvcl09J2FjY2VudENvbG9yJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb249J091dHNpZGUnIFthbmltYXRpb25EdXJhdGlvbl09XCIxNTAwXCI+PC9lLXBvaW50ZXI+XHJcbiAgICAgICAgICAgICAgQGlmKHIuc3RhbmRhcmRBdmcpXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIDxlLXBvaW50ZXIgbWFya2VyVHlwZT0nUmVjdGFuZ2xlJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInIuc3RhbmRhcmRBdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb249J0Nyb3NzJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3dpZHRoXT1cIjJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2hlaWdodF09XCI2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCJwcmltZXJ5Q29sb3JcIj48L2UtcG9pbnRlcj5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvZS1wb2ludGVycz5cclxuICAgICAgICAgIDwvZS1heGlzPlxyXG4gICAgICAgIDwvZS1heGVzPlxyXG4gICAgICA8L2Vqcy1saW5lYXJnYXVnZT5cclxuICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG4gIDxlanMtY2hhcnQgc3R5bGU9XCJmbGV4OiAxOyBkaXNwbGF5OiBibG9ja1wiIFt0aGVtZV09XCJ0aGVtZVwiXHJcbiAgICAgICAgICAgICBbbWFyZ2luXT1cIm1hcmdpblwiXHJcbiAgICAgICAgICAgICBzZWxlY3Rpb25Nb2RlPSdTZXJpZXMnXHJcbiAgICAgICAgICAgICBbdGl0bGVdPVwidGl0bGVcIlxyXG4gICAgICAgICAgICAgW3RpdGxlU3R5bGVdPVwidGl0bGVTdHlsZVwiXHJcbiAgICAgICAgICAgICBbc3ViVGl0bGVdPVwic3ViVGl0bGVcIlxyXG4gICAgICAgICAgICAgW3N1YlRpdGxlU3R5bGVdPVwidGl0bGVTdHlsZVwiXHJcbiAgICAgICAgICAgICBbdG9vbHRpcF09XCJ0b29sdGlwXCJcclxuICAgICAgICAgICAgIFtlbmFibGVBbmltYXRpb25dPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAodG9vbHRpcFJlbmRlcik9XCJ0b29sdGlwUmVuZGVyKCRldmVudClcIlxyXG4gICAgICAgICAgICAgW2xlZ2VuZFNldHRpbmdzXT1cImxlZ2VuZFNldHRpbmdzXCJcclxuICAgICAgICAgICAgIChheGlzTGFiZWxSZW5kZXIpPVwibGFiZWxSZW5kZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICBbcGFsZXR0ZXNdPVwicGFsZXR0ZXNcIlxyXG4gICAgICAgICAgICAgW2VuYWJsZVJ0bF09XCJpbnZlcnNlXCJcclxuICAgICAgICAgICAgIGhlaWdodD0nMTAwJSdcclxuICAgICAgICAgICAgIGhpZ2hsaWdodE1vZGU9J1NlcmllcydcclxuICAgICAgICAgICAgIChwb2ludENsaWNrKT1cImV4cGxvcmUoJGV2ZW50KVwiPlxyXG4gICAgPGUtc2VyaWVzLWNvbGxlY3Rpb24+XHJcbiAgICAgIDxlLXNlcmllcyBbbmFtZV09XCInU3RhbmRhcmQnfHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICB4TmFtZT0nZGF0ZSdcclxuICAgICAgICAgICAgICAgIHlOYW1lPSdzdGFuZGFyZFRpbWUnXHJcbiAgICAgICAgICAgICAgICB0eXBlPSdQb2xhcidcclxuICAgICAgICAgICAgICAgIGRyYXdUeXBlPSdMaW5lJ1xyXG4gICAgICAgICAgICAgICAgW21hcmtlcl09c3RhbmRhcmRNYXJrZXJcclxuICAgICAgICAgICAgICAgIFtkYXRhU291cmNlXT1zdGFuZGFyZHM+XHJcbiAgICAgIDwvZS1zZXJpZXM+XHJcbiAgICAgIEBmb3IociBvZiByZWNvcmRzOyB0cmFjayByKVxyXG4gICAgICB7XHJcbiAgICAgIDxlLXNlcmllcyBbZGF0YVNvdXJjZV09J3IuaXRlbXMnXHJcbiAgICAgICAgICAgICAgICBbbmFtZV09J3IubmFtZSdcclxuICAgICAgICAgICAgICAgIHR5cGU9J1BvbGFyJ1xyXG4gICAgICAgICAgICAgICAgZHJhd1R5cGU9J0xpbmUnXHJcbiAgICAgICAgICAgICAgICBbbWFya2VyXT1tYXJrZXJcclxuICAgICAgICAgICAgICAgIHhOYW1lPSdkYXRlJ1xyXG4gICAgICAgICAgICAgICAgeU5hbWU9J2R1cmF0aW9uJz48L2Utc2VyaWVzPlxyXG4gICAgICB9XHJcbiAgICA8L2Utc2VyaWVzLWNvbGxlY3Rpb24+XHJcbiAgPC9lanMtY2hhcnQ+XHJcbjwvZGl2PlxyXG59XHJcbiJdfQ==
@@ -40,10 +40,10 @@ export class CubeDocumentsTableComponent {
40
40
  open(id) {
41
41
  this._info.open(id);
42
42
  }
43
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: CubeDocumentsTableComponent, deps: [{ token: i1.ReportRef }, { token: i2.DocumentInfo }, { token: i3.SessionService }, { token: i4.CubeService }], target: i0.ɵɵFactoryTarget.Component }); }
44
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: CubeDocumentsTableComponent, selector: "ng-component", viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true }, { propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true }], ngImport: i0, template: "<table mat-table matSort [dataSource]=\"dataSource\" [@list]=\"PAGE_SIZE\">\n <ng-container matColumnDef=\"number\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>{{'Number' | translate}}</th>\n <td mat-cell *matCellDef=\"let element\"> <a (click)=\"open(element.id)\">{{element.number}}</a> </td>\n </ng-container>\n <ng-container matColumnDef=\"subject\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>{{'Subject' | translate}}</th>\n <td mat-cell *matCellDef=\"let element\"> {{element.subject}} </td>\n </ng-container>\n <ng-container matColumnDef=\"userId\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'Name' | translate}}</th>\n <td mat-cell *matCellDef=\"let element\">\n <bizdoc-identity-name [identity]=\"element.userId\" [by]=\"element.byId\"></bizdoc-identity-name>\n </td>\n </ng-container>\n <ng-container matColumnDef=\"stateId\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>{{'Status' | translate}}</th>\n <td mat-cell *matCellDef=\"let element\"> <span class=\"document-state\" [style.color]=\"element.stateId|state : 'color'\" [style.borderColor]=\"element.stateId|state : 'color'\">{{element.stateId | state}}</span> </td>\n </ng-container>\n <ng-container matColumnDef=\"value\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>{{'Value' | translate}}</th>\n <td mat-cell *matCellDef=\"let element\" class=\"figure\">\n {{element.value | currency : (element.currencyCode || DEFAULT_CURRENCY) : 'symbol' : CURRENCY_FORMAT }}\n @if (element.partial) {\n <mat-icon [bizdocTooltip]=\"element.total | currency : element.currencyCode : 'symbol' : CURRENCY_FORMAT\">error_outline</mat-icon>\n }\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayColumns\"></tr>\n <tr mat-row [@item] *matRowDef=\"let element; columns: displayColumns;\"></tr>\n</table>\n<mat-paginator [pageSize]=\"PAGE_SIZE\" hidePageSize showFirstLastButtons [style.display]=\"paging ? '' : 'none'\"></mat-paginator>\n", styles: ["table{width:100%}td.figure{text-align:right}.document-state{border-radius:2px 3px;padding:4px;border-width:1px;border-style:solid}\n"], dependencies: [{ kind: "component", type: i5.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i5.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i5.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i5.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i5.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i5.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i5.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i5.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i5.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i5.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i6.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i6.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i7.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i9.IdentityName, selector: "bizdoc-identity-name", inputs: ["identity", "by", "chating"] }, { kind: "directive", type: i10.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i11.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i12.TranslatePipe, name: "translate" }, { kind: "pipe", type: i13.StatePipe, name: "state" }], animations: [listAnimation, itemAnimation] }); }
43
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: CubeDocumentsTableComponent, deps: [{ token: i1.ReportRef }, { token: i2.DocumentInfo }, { token: i3.SessionService }, { token: i4.CubeService }], target: i0.ɵɵFactoryTarget.Component }); }
44
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: CubeDocumentsTableComponent, selector: "ng-component", viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true }, { propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true }], ngImport: i0, template: "<table mat-table matSort [dataSource]=\"dataSource\" [@list]=\"PAGE_SIZE\">\n <ng-container matColumnDef=\"number\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>{{'Number' | translate}}</th>\n <td mat-cell *matCellDef=\"let element\"> <a (click)=\"open(element.id)\">{{element.number}}</a> </td>\n </ng-container>\n <ng-container matColumnDef=\"subject\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>{{'Subject' | translate}}</th>\n <td mat-cell *matCellDef=\"let element\"> {{element.subject}} </td>\n </ng-container>\n <ng-container matColumnDef=\"userId\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'Name' | translate}}</th>\n <td mat-cell *matCellDef=\"let element\">\n <bizdoc-identity-name [identity]=\"element.userId\" [by]=\"element.byId\"></bizdoc-identity-name>\n </td>\n </ng-container>\n <ng-container matColumnDef=\"stateId\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>{{'Status' | translate}}</th>\n <td mat-cell *matCellDef=\"let element\"> <span class=\"document-state\" [style.color]=\"element.stateId|state : 'color'\" [style.borderColor]=\"element.stateId|state : 'color'\">{{element.stateId | state}}</span> </td>\n </ng-container>\n <ng-container matColumnDef=\"value\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>{{'Value' | translate}}</th>\n <td mat-cell *matCellDef=\"let element\" class=\"figure\">\n {{element.value | currency : (element.currencyCode || DEFAULT_CURRENCY) : 'symbol' : CURRENCY_FORMAT }}\n @if (element.partial) {\n <mat-icon [bizdocTooltip]=\"element.total | currency : element.currencyCode : 'symbol' : CURRENCY_FORMAT\">error_outline</mat-icon>\n }\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayColumns\"></tr>\n <tr mat-row [@item] *matRowDef=\"let element; columns: displayColumns;\"></tr>\n</table>\n<mat-paginator [pageSize]=\"PAGE_SIZE\" hidePageSize showFirstLastButtons [style.display]=\"paging ? '' : 'none'\"></mat-paginator>\n", styles: ["table{width:100%}td.figure{text-align:right}.document-state{border-radius:2px 3px;padding:4px;border-width:1px;border-style:solid}\n"], dependencies: [{ kind: "component", type: i5.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i5.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i5.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i5.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i5.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i5.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i5.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i5.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i5.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i5.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i6.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i6.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i7.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i9.IdentityName, selector: "bizdoc-identity-name", inputs: ["identity", "by", "chating"] }, { kind: "directive", type: i10.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i11.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i12.TranslatePipe, name: "translate" }, { kind: "pipe", type: i13.StatePipe, name: "state" }], animations: [listAnimation, itemAnimation] }); }
45
45
  }
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: CubeDocumentsTableComponent, decorators: [{
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: CubeDocumentsTableComponent, decorators: [{
47
47
  type: Component,
48
48
  args: [{ animations: [listAnimation, itemAnimation], template: "<table mat-table matSort [dataSource]=\"dataSource\" [@list]=\"PAGE_SIZE\">\n <ng-container matColumnDef=\"number\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>{{'Number' | translate}}</th>\n <td mat-cell *matCellDef=\"let element\"> <a (click)=\"open(element.id)\">{{element.number}}</a> </td>\n </ng-container>\n <ng-container matColumnDef=\"subject\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>{{'Subject' | translate}}</th>\n <td mat-cell *matCellDef=\"let element\"> {{element.subject}} </td>\n </ng-container>\n <ng-container matColumnDef=\"userId\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'Name' | translate}}</th>\n <td mat-cell *matCellDef=\"let element\">\n <bizdoc-identity-name [identity]=\"element.userId\" [by]=\"element.byId\"></bizdoc-identity-name>\n </td>\n </ng-container>\n <ng-container matColumnDef=\"stateId\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>{{'Status' | translate}}</th>\n <td mat-cell *matCellDef=\"let element\"> <span class=\"document-state\" [style.color]=\"element.stateId|state : 'color'\" [style.borderColor]=\"element.stateId|state : 'color'\">{{element.stateId | state}}</span> </td>\n </ng-container>\n <ng-container matColumnDef=\"value\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>{{'Value' | translate}}</th>\n <td mat-cell *matCellDef=\"let element\" class=\"figure\">\n {{element.value | currency : (element.currencyCode || DEFAULT_CURRENCY) : 'symbol' : CURRENCY_FORMAT }}\n @if (element.partial) {\n <mat-icon [bizdocTooltip]=\"element.total | currency : element.currencyCode : 'symbol' : CURRENCY_FORMAT\">error_outline</mat-icon>\n }\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayColumns\"></tr>\n <tr mat-row [@item] *matRowDef=\"let element; columns: displayColumns;\"></tr>\n</table>\n<mat-paginator [pageSize]=\"PAGE_SIZE\" hidePageSize showFirstLastButtons [style.display]=\"paging ? '' : 'none'\"></mat-paginator>\n", styles: ["table{width:100%}td.figure{text-align:right}.document-state{border-radius:2px 3px;padding:4px;border-width:1px;border-style:solid}\n"] }]
49
49
  }], ctorParameters: () => [{ type: i1.ReportRef }, { type: i2.DocumentInfo }, { type: i3.SessionService }, { type: i4.CubeService }], propDecorators: { sort: [{
@@ -45,8 +45,8 @@ let UsageReportArgs = class UsageReportArgs {
45
45
  this.form.reset({}, { emitEvent: false });
46
46
  this.form.patchValue(axes);
47
47
  }
48
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: UsageReportArgs, deps: [{ token: i1.ReportRef }, { token: i2.FormBuilder }, { token: i3.SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
49
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: UsageReportArgs, selector: "ng-component", ngImport: i0, template: "<bizdoc-cube-filter [cube]=\"cube\"\r\n [axes]=\"values\"\r\n (axesChange)=\"valuesChange($event)\"></bizdoc-cube-filter>\r\n", dependencies: [{ kind: "component", type: i4.CubeFilterComponent, selector: "bizdoc-cube-filter", inputs: ["cube", "exclude", "include", "axes"], outputs: ["axesChange"] }] }); }
48
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: UsageReportArgs, deps: [{ token: i1.ReportRef }, { token: i2.FormBuilder }, { token: i3.SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
49
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.2", type: UsageReportArgs, selector: "ng-component", ngImport: i0, template: "<bizdoc-cube-filter [cube]=\"cube\"\r\n [axes]=\"values\"\r\n (axesChange)=\"valuesChange($event)\"></bizdoc-cube-filter>\r\n", dependencies: [{ kind: "component", type: i4.CubeFilterComponent, selector: "bizdoc-cube-filter", inputs: ["cube", "exclude", "include", "axes"], outputs: ["axesChange"] }] }); }
50
50
  };
51
51
  UsageReportArgs = __decorate([
52
52
  BizDoc({
@@ -54,7 +54,7 @@ UsageReportArgs = __decorate([
54
54
  })
55
55
  ], UsageReportArgs);
56
56
  export { UsageReportArgs };
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: UsageReportArgs, decorators: [{
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: UsageReportArgs, decorators: [{
58
58
  type: Component,
59
59
  args: [{ template: "<bizdoc-cube-filter [cube]=\"cube\"\r\n [axes]=\"values\"\r\n (axesChange)=\"valuesChange($event)\"></bizdoc-cube-filter>\r\n" }]
60
60
  }], ctorParameters: () => [{ type: i1.ReportRef }, { type: i2.FormBuilder }, { type: i3.SessionService }] });
@@ -2,22 +2,22 @@ import { Directive } from "@angular/core";
2
2
  import { Subject } from "rxjs";
3
3
  import { isArray } from "../../core/functions";
4
4
  import * as i0 from "@angular/core";
5
- import * as i1 from "../report-ref";
6
- import * as i2 from "../../core/datasource.service";
7
- import * as i3 from "../../cube/cube.service";
8
- import * as i4 from "../../core/session.service";
9
- import * as i5 from "../../core/router";
5
+ import * as i1 from "../../core/router";
6
+ import * as i2 from "../report-ref";
7
+ import * as i3 from "../../core/datasource.service";
8
+ import * as i4 from "../../cube/cube.service";
9
+ import * as i5 from "../../core/session.service";
10
10
  import * as i6 from "../../core/prompt.service";
11
11
  import * as i7 from "@angular/cdk/bidi";
12
12
  import * as i8 from "../../core/translate.service";
13
13
  export class UsageReportBase {
14
14
  static { this.nextId = 0; }
15
- constructor(_reportRef, _type, _service, _session, _router, _sb, _dir, _translate) {
15
+ constructor(_router, _reportRef, _type, _service, _session, _sb, _dir, _translate) {
16
+ this._router = _router;
16
17
  this._reportRef = _reportRef;
17
18
  this._type = _type;
18
19
  this._service = _service;
19
20
  this._session = _session;
20
- this._router = _router;
21
21
  this._sb = _sb;
22
22
  this._dir = _dir;
23
23
  this._translate = _translate;
@@ -47,12 +47,11 @@ export class UsageReportBase {
47
47
  this.width = `${d.width}px`;
48
48
  this.onResize(d);
49
49
  });
50
- this._reportRef.exporting().subscribe(e => {
51
- const { title } = this._session.profile.reports.find(r => r.name === this._reportRef.name);
52
- e.cancel = true;
53
- this._service.nameOf(this._args, this._cube.name).
54
- subscribe(o => this.onExport(o ? `${title} ${o}` : title));
55
- });
50
+ }
51
+ onExport() {
52
+ const { title } = this._session.profile.reports.find(r => r.name === this._reportRef.name);
53
+ this._service.nameOf(this._args, this._cube.name).
54
+ subscribe(o => this.onExportUsage(o ? `${title} ${o}` : title));
56
55
  }
57
56
  onBind(result, args) {
58
57
  this._args = args;
@@ -70,11 +69,11 @@ export class UsageReportBase {
70
69
  this._destroy.next();
71
70
  this._destroy.complete();
72
71
  }
73
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: UsageReportBase, deps: [{ token: i1.ReportRef }, { token: i2.DatasourceService }, { token: i3.CubeService }, { token: i4.SessionService }, { token: i5.RouterImpl }, { token: i6.PromptService }, { token: i7.Directionality }, { token: i8.TranslateService }], target: i0.ɵɵFactoryTarget.Directive }); }
74
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.1", type: UsageReportBase, ngImport: i0 }); }
72
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: UsageReportBase, deps: [{ token: i1.RouterImpl }, { token: i2.ReportRef }, { token: i3.DatasourceService }, { token: i4.CubeService }, { token: i5.SessionService }, { token: i6.PromptService }, { token: i7.Directionality }, { token: i8.TranslateService }], target: i0.ɵɵFactoryTarget.Directive }); }
73
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.2", type: UsageReportBase, ngImport: i0 }); }
75
74
  }
76
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: UsageReportBase, decorators: [{
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: UsageReportBase, decorators: [{
77
76
  type: Directive
78
- }], ctorParameters: () => [{ type: i1.ReportRef }, { type: i2.DatasourceService }, { type: i3.CubeService }, { type: i4.SessionService }, { type: i5.RouterImpl }, { type: i6.PromptService }, { type: i7.Directionality }, { type: i8.TranslateService }] });
77
+ }], ctorParameters: () => [{ type: i1.RouterImpl }, { type: i2.ReportRef }, { type: i3.DatasourceService }, { type: i4.CubeService }, { type: i5.SessionService }, { type: i6.PromptService }, { type: i7.Directionality }, { type: i8.TranslateService }] });
79
78
  ;
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNhZ2UtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvcmVwb3J0cy9jdWJlL3VzYWdlLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFhLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVyRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSS9CLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7OztBQVcvQyxNQUFNLE9BQWdCLGVBQWU7YUFDNUIsV0FBTSxHQUFHLENBQUMsQUFBSixDQUFLO0lBZ0JsQixZQUFzQixVQUF5QyxFQUNuRCxLQUF3QixFQUN4QixRQUFxQixFQUNyQixRQUF3QixFQUMxQixPQUFtQixFQUNqQixHQUFrQixFQUNsQixJQUFvQixFQUNwQixVQUE0QjtRQVBsQixlQUFVLEdBQVYsVUFBVSxDQUErQjtRQUNuRCxVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUN4QixhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQ3JCLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQzFCLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDakIsUUFBRyxHQUFILEdBQUcsQ0FBZTtRQUNsQixTQUFJLEdBQUosSUFBSSxDQUFnQjtRQUNwQixlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQXRCL0IsT0FBRSxHQUFHLGNBQWMsZUFBZSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFDOUMsY0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBVXhCLG9CQUFlLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUM7UUFHL0MsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFVaEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDO1FBQ25DLGVBQWU7UUFDZixNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3hFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPO1lBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDdEcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQztZQUN0SCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxJQUFJLENBQUMsQ0FBQyxhQUFhLEtBQUssTUFBTSxDQUFDLENBQUM7UUFDM0UsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQztRQUM1QyxJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsS0FBSyxJQUFJLENBQUM7UUFDcEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUNELFFBQVE7UUFDTix3QkFBd0I7UUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUU7WUFDdEIsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ1osSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUM7WUFDbEMsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQztZQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO1FBQ0wsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDeEMsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0YsQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztnQkFDL0MsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ1osSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2xELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUlELE1BQU0sQ0FBQyxNQUFjLEVBQUUsSUFBVztRQUNoQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFDUyxNQUFNLENBQUMsS0FBb0MsRUFBRSxLQUFjO1FBQ25FLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUN6QyxNQUFNLElBQUksR0FBRyxFQUFFLEdBQUcsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDO1FBQ3JELElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxFQUN4RDtZQUNFLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7U0FDeEIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs4R0EzRW1CLGVBQWU7a0dBQWYsZUFBZTs7MkZBQWYsZUFBZTtrQkFEcEMsU0FBUzs7QUErRlQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9uRGVzdHJveSwgRGlyZWN0aXZlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRGlyZWN0aW9uYWxpdHkgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2JpZGlcIjtcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IENoYXJ0U2VyaWVzVHlwZSB9IGZyb20gXCJAc3luY2Z1c2lvbi9lajItYW5ndWxhci1waXZvdHZpZXdcIjtcclxuaW1wb3J0IHsgQ3ViZUF4aXMsIEN1YmUsIEN1YmVJbmRleCwgQXhpc1ZhbHVlLCBEaW1lbnRpb25zLCBBeGVzTWFwIH0gZnJvbSBcIi4uLy4uL2NvcmUvbW9kZWxzXCI7XHJcbmltcG9ydCB7IFJlcG9ydENvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9jb3JlL2Jhc2VcIjtcclxuaW1wb3J0IHsgaXNBcnJheSB9IGZyb20gXCIuLi8uLi9jb3JlL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL3Nlc3Npb24uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvdHJhbnNsYXRlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRGF0YXNvdXJjZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9kYXRhc291cmNlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQ3ViZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY3ViZS9jdWJlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL3Byb21wdC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFJlcG9ydFJlZiB9IGZyb20gXCIuLi9yZXBvcnQtcmVmXCI7XHJcbmltcG9ydCB7IFJvdXRlckltcGwgfSBmcm9tIFwiLi4vLi4vY29yZS9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgU2NvcGVUeXBlIH0gZnJvbSBcIi4uLy4uL2NvcmUvY29uZmlndXJhdGlvblwiO1xyXG5cclxuQERpcmVjdGl2ZSgpIC8qIHJlcXVpcmVkIGJ5IGFuZ3VsYXIgb24gYmFzZSBjbGFzcyAqL1xyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVXNhZ2VSZXBvcnRCYXNlIGltcGxlbWVudHMgUmVwb3J0Q29tcG9uZW50PEl0ZW0sIEFyZ3M+LCBPbkRlc3Ryb3kge1xyXG4gIHN0YXRpYyBuZXh0SWQgPSAwO1xyXG4gIHJlYWRvbmx5IGlkID0gYGN1YmUtdXNhZ2UtJHtVc2FnZVJlcG9ydEJhc2UubmV4dElkKyt9YDtcclxuICByZWFkb25seSBlbmFibGVSdGwgPSB0aGlzLl9zZXNzaW9uLmludmVyc2U7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9zZXJpZXM6IEN1YmVBeGlzW107XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9jdWJlOiBDdWJlO1xyXG4gIHByb3RlY3RlZCByZWFkb25seSBfaW5kaWNlczogQ3ViZUluZGV4W107XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF95VGl0bGU6IHN0cmluZztcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2V4cGFuZEFsbDogYm9vbGVhbjtcclxuICByZWFkb25seSBjdXJyZW5jeUNvZGU6IHN0cmluZztcclxuICBoZWlnaHQ6IHN0cmluZztcclxuICB3aWR0aDogc3RyaW5nO1xyXG4gIHByb3RlY3RlZCByZWFkb25seSBfb3B0aW9uczogVXNhZ2VTZXR0aW5nc01vZGVsO1xyXG4gIHByb3RlY3RlZCByZWFkb25seSBfZnJhY3Rpb25EaWdpdHMgPSB0aGlzLl9zZXJ2aWNlLmZyYWN0aW9uRGlnaXRzO1xyXG4gIHByb3RlY3RlZCBfZGF0YToge31bXTtcclxuICBwcml2YXRlIF9hcmdzOiBBcmdzO1xyXG4gIHByb3RlY3RlZCByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIF9yZXBvcnRSZWY6IFJlcG9ydFJlZjxVc2FnZVNldHRpbmdzTW9kZWw+LFxyXG4gICAgcHJvdGVjdGVkIF90eXBlOiBEYXRhc291cmNlU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBfc2VydmljZTogQ3ViZVNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXJJbXBsLFxyXG4gICAgcHJvdGVjdGVkIF9zYjogUHJvbXB0U2VydmljZSxcclxuICAgIHByb3RlY3RlZCBfZGlyOiBEaXJlY3Rpb25hbGl0eSxcclxuICAgIHByb3RlY3RlZCBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLl9vcHRpb25zID0gX3JlcG9ydFJlZi5vcHRpb25zO1xyXG4gICAgLy8gc2V0IGRlZmF1bHRzXHJcbiAgICBjb25zdCB7IHNlcmllcywgY29sbGFwc2UsIGluZGljZXMsIGN1YmU6IG5hbWUsIHlUaXRsZSB9ID0gdGhpcy5fb3B0aW9ucztcclxuICAgIHRoaXMuX2N1YmUgPSBuYW1lID8gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzLmZpbmQoYyA9PiBjLm5hbWUgPT09IG5hbWUpIDogdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzWzBdO1xyXG4gICAgaWYgKHRoaXMuX2N1YmUuaW5kaWNlcylcclxuICAgICAgdGhpcy5faW5kaWNlcyA9IGluZGljZXMgP1xyXG4gICAgICAgIHRoaXMuX2N1YmUuaW5kaWNlcy5maWx0ZXIoaSA9PiBpc0FycmF5KGluZGljZXMpID8gaW5kaWNlcy5pbmRleE9mKGkubmFtZSkgPiAtMSA6IGluZGljZXMgPT09IGkubmFtZSkgOlxyXG4gICAgICAgIHRoaXMuX2N1YmUuaW5kaWNlcztcclxuICAgIHRoaXMuX3NlcmllcyA9IHNlcmllcyA/IHRoaXMuX2N1YmUuYXhlcy5maWx0ZXIoYSA9PiBpc0FycmF5KHNlcmllcykgPyBzZXJpZXMuaW5kZXhPZihhLm5hbWUpID4gLTEgOiBhLm5hbWUgPT09IHNlcmllcykgOlxyXG4gICAgICB0aGlzLl9jdWJlLmF4ZXMuZmlsdGVyKGEgPT4gYS5jb21iaW5hdGlvbiAmJiBhLnNlbGVjdGlvbk1vZGUgIT09ICdOb25lJyk7XHJcbiAgICB0aGlzLmN1cnJlbmN5Q29kZSA9IHRoaXMuX2N1YmUuY3VycmVuY3lDb2RlO1xyXG4gICAgdGhpcy5fZXhwYW5kQWxsID0gY29sbGFwc2UgIT09IHRydWU7XHJcbiAgICB0aGlzLl95VGl0bGUgPSB5VGl0bGUgfHwgdGhpcy5fdHJhbnNsYXRlLmdldCgnVXNhZ2UnKTtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAvLyByZXNpemUgb24gZmlsdGVyIG9wZW5cclxuICAgIHRoaXMuX3JlcG9ydFJlZi5yZXNpemUoKS5cclxuICAgICAgc3Vic2NyaWJlKGQgPT4ge1xyXG4gICAgICAgIHRoaXMuaGVpZ2h0ID0gYCR7ZC5oZWlnaHQgLSA1fXB4YDtcclxuICAgICAgICB0aGlzLndpZHRoID0gYCR7ZC53aWR0aH1weGA7XHJcbiAgICAgICAgdGhpcy5vblJlc2l6ZShkKTtcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLl9yZXBvcnRSZWYuZXhwb3J0aW5nKCkuc3Vic2NyaWJlKGUgPT4ge1xyXG4gICAgICBjb25zdCB7IHRpdGxlIH0gPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUucmVwb3J0cy5maW5kKHIgPT4gci5uYW1lID09PSB0aGlzLl9yZXBvcnRSZWYubmFtZSk7XHJcbiAgICAgIGUuY2FuY2VsID0gdHJ1ZTtcclxuICAgICAgdGhpcy5fc2VydmljZS5uYW1lT2YodGhpcy5fYXJncywgdGhpcy5fY3ViZS5uYW1lKS5cclxuICAgICAgICBzdWJzY3JpYmUobyA9PlxyXG4gICAgICAgICAgdGhpcy5vbkV4cG9ydChvID8gYCR7dGl0bGV9ICR7b31gIDogdGl0bGUpKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBhYnN0cmFjdCBvbkV4cG9ydChuYW1lOiBzdHJpbmcpO1xyXG4gIGFic3RyYWN0IG9uUmVzaXplKGRpbT86IERpbWVudGlvbnMpO1xyXG4gIGFic3RyYWN0IG9uRGF0YShkYXRhOiBJdGVtW10pO1xyXG4gIG9uQmluZChyZXN1bHQ6IEl0ZW1bXSwgYXJncz86IEFyZ3MpIHtcclxuICAgIHRoaXMuX2FyZ3MgPSBhcmdzO1xyXG4gICAgdGhpcy5vbkRhdGEocmVzdWx0KTtcclxuICB9XHJcbiAgcHJvdGVjdGVkIGJyb3dzZShwYXhlczogeyBbYXhpczogc3RyaW5nXTogQXhpc1ZhbHVlIH0sIGluZGV4Pzogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB7IHNjb3BlLCBmaWx0ZXJzIH0gPSB0aGlzLl9vcHRpb25zO1xyXG4gICAgY29uc3QgYXhlcyA9IHsgLi4uZmlsdGVycywgLi4udGhpcy5fYXJncywgLi4ucGF4ZXMgfTtcclxuICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJ2N1YmUnLCB0aGlzLl9jdWJlLm5hbWUsICdleHBsb3JlJ10sXHJcbiAgICAgIHtcclxuICAgICAgICBxdWVyeVBhcmFtczogYXhlcyxcclxuICAgICAgICBzdGF0ZTogeyBzY29wZSwgaW5kZXggfVxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuZXhwb3J0IHR5cGUgSXRlbSA9IHtcclxuICBbbmFtZTogc3RyaW5nXTogKHN0cmluZyB8IG51bWJlcilcclxufSAmIHtcclxuICB1c2FnZT86IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBVc2FnZVNldHRpbmdzTW9kZWwge1xyXG4gIHhBeGlzPzogc3RyaW5nW10gfCBzdHJpbmc7XHJcbiAgY3ViZT86IHN0cmluZztcclxuICBleGNsdWRlOiBzdHJpbmdbXTtcclxuICB5VGl0bGU/OiBzdHJpbmc7XHJcbiAgaW5kaWNlcz86IHN0cmluZ1tdIHwgc3RyaW5nO1xyXG4gIHNlcmllcz86IHN0cmluZ1tdIHwgc3RyaW5nO1xyXG4gIGZpbHRlcnM/OiBBeGVzTWFwO1xyXG4gIHNjb3BlPzogU2NvcGVUeXBlO1xyXG4gIGNoYXJ0VHlwZT86IENoYXJ0U2VyaWVzVHlwZTtcclxuICBjb2xsYXBzZT86IGJvb2xlYW47XHJcbn07XHJcblxyXG5leHBvcnQgZGVjbGFyZSB0eXBlIFVzYWdlVHlwZSA9ICdDaGFydCcgfCAnUGl2b3QnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBcmdzIHsgW2F4aXM6IHN0cmluZ106IHN0cmluZyB9XHJcbiJdfQ==
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNhZ2UtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvcmVwb3J0cy9jdWJlL3VzYWdlLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFhLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVyRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSS9CLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7OztBQVcvQyxNQUFNLE9BQWdCLGVBQWU7YUFDNUIsV0FBTSxHQUFHLENBQUMsQUFBSixDQUFLO0lBZ0JsQixZQUNVLE9BQW1CLEVBQ2pCLFVBQXlDLEVBQ3pDLEtBQXdCLEVBQ3hCLFFBQXFCLEVBQ3JCLFFBQXdCLEVBQ3hCLEdBQWtCLEVBQ2xCLElBQW9CLEVBQ3BCLFVBQTRCO1FBUDlCLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDakIsZUFBVSxHQUFWLFVBQVUsQ0FBK0I7UUFDekMsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFDeEIsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQUN4QixRQUFHLEdBQUgsR0FBRyxDQUFlO1FBQ2xCLFNBQUksR0FBSixJQUFJLENBQWdCO1FBQ3BCLGVBQVUsR0FBVixVQUFVLENBQWtCO1FBdkIvQixPQUFFLEdBQUcsY0FBYyxlQUFlLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztRQUM5QyxjQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7UUFVeEIsb0JBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQztRQUcvQyxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQVdoRCxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUM7UUFDbkMsZUFBZTtRQUNmLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDeEUsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU87WUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUN0RyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ3RILElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFDLGFBQWEsS0FBSyxNQUFNLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDO1FBQzVDLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxLQUFLLElBQUksQ0FBQztRQUNwQyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBQ0QsUUFBUTtRQUNOLHdCQUF3QjtRQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRTtZQUN0QixTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDWixJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQztZQUNsQyxJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDO1lBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsUUFBUTtRQUNOLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNGLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDL0MsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ1osSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFJRCxNQUFNLENBQUMsTUFBYyxFQUFFLElBQVc7UUFDaEMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBQ1MsTUFBTSxDQUFDLEtBQW9DLEVBQUUsS0FBYztRQUNuRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDekMsTUFBTSxJQUFJLEdBQUcsRUFBRSxHQUFHLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQztRQUNyRCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsRUFDeEQ7WUFDRSxXQUFXLEVBQUUsSUFBSTtZQUNqQixLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO1NBQ3hCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7OEdBM0VtQixlQUFlO2tHQUFmLGVBQWU7OzJGQUFmLGVBQWU7a0JBRHBDLFNBQVM7O0FBK0ZULENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPbkRlc3Ryb3ksIERpcmVjdGl2ZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IERpcmVjdGlvbmFsaXR5IH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9iaWRpXCI7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBDaGFydFNlcmllc1R5cGUgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItcGl2b3R2aWV3XCI7XHJcbmltcG9ydCB7IEN1YmVBeGlzLCBDdWJlLCBDdWJlSW5kZXgsIEF4aXNWYWx1ZSwgRGltZW50aW9ucywgQXhlc01hcCB9IGZyb20gXCIuLi8uLi9jb3JlL21vZGVsc1wiO1xyXG5pbXBvcnQgeyBSZXBvcnRDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vY29yZS9iYXNlXCI7XHJcbmltcG9ydCB7IGlzQXJyYXkgfSBmcm9tIFwiLi4vLi4vY29yZS9mdW5jdGlvbnNcIjtcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERhdGFzb3VyY2VTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvZGF0YXNvdXJjZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEN1YmVTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2N1YmUvY3ViZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFByb21wdFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9wcm9tcHQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBSZXBvcnRSZWYgfSBmcm9tIFwiLi4vcmVwb3J0LXJlZlwiO1xyXG5pbXBvcnQgeyBSb3V0ZXJJbXBsIH0gZnJvbSBcIi4uLy4uL2NvcmUvcm91dGVyXCI7XHJcbmltcG9ydCB7IFNjb3BlVHlwZSB9IGZyb20gXCIuLi8uLi9jb3JlL2NvbmZpZ3VyYXRpb25cIjtcclxuXHJcbkBEaXJlY3RpdmUoKSAvKiByZXF1aXJlZCBieSBhbmd1bGFyIG9uIGJhc2UgY2xhc3MgKi9cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFVzYWdlUmVwb3J0QmFzZSBpbXBsZW1lbnRzIFJlcG9ydENvbXBvbmVudDxJdGVtLCBBcmdzPiwgT25EZXN0cm95IHtcclxuICBzdGF0aWMgbmV4dElkID0gMDtcclxuICByZWFkb25seSBpZCA9IGBjdWJlLXVzYWdlLSR7VXNhZ2VSZXBvcnRCYXNlLm5leHRJZCsrfWA7XHJcbiAgcmVhZG9ubHkgZW5hYmxlUnRsID0gdGhpcy5fc2Vzc2lvbi5pbnZlcnNlO1xyXG4gIHByb3RlY3RlZCByZWFkb25seSBfc2VyaWVzOiBDdWJlQXhpc1tdO1xyXG4gIHByb3RlY3RlZCByZWFkb25seSBfY3ViZTogQ3ViZTtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2luZGljZXM6IEN1YmVJbmRleFtdO1xyXG4gIHByb3RlY3RlZCByZWFkb25seSBfeVRpdGxlOiBzdHJpbmc7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9leHBhbmRBbGw6IGJvb2xlYW47XHJcbiAgcmVhZG9ubHkgY3VycmVuY3lDb2RlOiBzdHJpbmc7XHJcbiAgaGVpZ2h0OiBzdHJpbmc7XHJcbiAgd2lkdGg6IHN0cmluZztcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX29wdGlvbnM6IFVzYWdlU2V0dGluZ3NNb2RlbDtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2ZyYWN0aW9uRGlnaXRzID0gdGhpcy5fc2VydmljZS5mcmFjdGlvbkRpZ2l0cztcclxuICBwcm90ZWN0ZWQgX2RhdGE6IHt9W107XHJcbiAgcHJpdmF0ZSBfYXJnczogQXJncztcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2Rlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXJJbXBsLFxyXG4gICAgcHJvdGVjdGVkIF9yZXBvcnRSZWY6IFJlcG9ydFJlZjxVc2FnZVNldHRpbmdzTW9kZWw+LFxyXG4gICAgcHJvdGVjdGVkIF90eXBlOiBEYXRhc291cmNlU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBfc2VydmljZTogQ3ViZVNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIF9zYjogUHJvbXB0U2VydmljZSxcclxuICAgIHByb3RlY3RlZCBfZGlyOiBEaXJlY3Rpb25hbGl0eSxcclxuICAgIHByb3RlY3RlZCBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLl9vcHRpb25zID0gX3JlcG9ydFJlZi5vcHRpb25zO1xyXG4gICAgLy8gc2V0IGRlZmF1bHRzXHJcbiAgICBjb25zdCB7IHNlcmllcywgY29sbGFwc2UsIGluZGljZXMsIGN1YmU6IG5hbWUsIHlUaXRsZSB9ID0gdGhpcy5fb3B0aW9ucztcclxuICAgIHRoaXMuX2N1YmUgPSBuYW1lID8gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzLmZpbmQoYyA9PiBjLm5hbWUgPT09IG5hbWUpIDogdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzWzBdO1xyXG4gICAgaWYgKHRoaXMuX2N1YmUuaW5kaWNlcylcclxuICAgICAgdGhpcy5faW5kaWNlcyA9IGluZGljZXMgP1xyXG4gICAgICAgIHRoaXMuX2N1YmUuaW5kaWNlcy5maWx0ZXIoaSA9PiBpc0FycmF5KGluZGljZXMpID8gaW5kaWNlcy5pbmRleE9mKGkubmFtZSkgPiAtMSA6IGluZGljZXMgPT09IGkubmFtZSkgOlxyXG4gICAgICAgIHRoaXMuX2N1YmUuaW5kaWNlcztcclxuICAgIHRoaXMuX3NlcmllcyA9IHNlcmllcyA/IHRoaXMuX2N1YmUuYXhlcy5maWx0ZXIoYSA9PiBpc0FycmF5KHNlcmllcykgPyBzZXJpZXMuaW5kZXhPZihhLm5hbWUpID4gLTEgOiBhLm5hbWUgPT09IHNlcmllcykgOlxyXG4gICAgICB0aGlzLl9jdWJlLmF4ZXMuZmlsdGVyKGEgPT4gYS5jb21iaW5hdGlvbiAmJiBhLnNlbGVjdGlvbk1vZGUgIT09ICdOb25lJyk7XHJcbiAgICB0aGlzLmN1cnJlbmN5Q29kZSA9IHRoaXMuX2N1YmUuY3VycmVuY3lDb2RlO1xyXG4gICAgdGhpcy5fZXhwYW5kQWxsID0gY29sbGFwc2UgIT09IHRydWU7XHJcbiAgICB0aGlzLl95VGl0bGUgPSB5VGl0bGUgfHwgdGhpcy5fdHJhbnNsYXRlLmdldCgnVXNhZ2UnKTtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAvLyByZXNpemUgb24gZmlsdGVyIG9wZW5cclxuICAgIHRoaXMuX3JlcG9ydFJlZi5yZXNpemUoKS5cclxuICAgICAgc3Vic2NyaWJlKGQgPT4ge1xyXG4gICAgICAgIHRoaXMuaGVpZ2h0ID0gYCR7ZC5oZWlnaHQgLSA1fXB4YDtcclxuICAgICAgICB0aGlzLndpZHRoID0gYCR7ZC53aWR0aH1weGA7XHJcbiAgICAgICAgdGhpcy5vblJlc2l6ZShkKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIG9uRXhwb3J0KCkge1xyXG4gICAgY29uc3QgeyB0aXRsZSB9ID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLnJlcG9ydHMuZmluZChyID0+IHIubmFtZSA9PT0gdGhpcy5fcmVwb3J0UmVmLm5hbWUpO1xyXG4gICAgdGhpcy5fc2VydmljZS5uYW1lT2YodGhpcy5fYXJncywgdGhpcy5fY3ViZS5uYW1lKS5cclxuICAgICAgc3Vic2NyaWJlKG8gPT5cclxuICAgICAgICB0aGlzLm9uRXhwb3J0VXNhZ2UobyA/IGAke3RpdGxlfSAke299YCA6IHRpdGxlKSk7XHJcbiAgfVxyXG4gIGFic3RyYWN0IG9uRXhwb3J0VXNhZ2UobmFtZTogc3RyaW5nKTtcclxuICBhYnN0cmFjdCBvblJlc2l6ZShkaW0/OiBEaW1lbnRpb25zKTtcclxuICBhYnN0cmFjdCBvbkRhdGEoZGF0YTogSXRlbVtdKTtcclxuICBvbkJpbmQocmVzdWx0OiBJdGVtW10sIGFyZ3M/OiBBcmdzKSB7XHJcbiAgICB0aGlzLl9hcmdzID0gYXJncztcclxuICAgIHRoaXMub25EYXRhKHJlc3VsdCk7XHJcbiAgfVxyXG4gIHByb3RlY3RlZCBicm93c2UocGF4ZXM6IHsgW2F4aXM6IHN0cmluZ106IEF4aXNWYWx1ZSB9LCBpbmRleD86IHN0cmluZykge1xyXG4gICAgY29uc3QgeyBzY29wZSwgZmlsdGVycyB9ID0gdGhpcy5fb3B0aW9ucztcclxuICAgIGNvbnN0IGF4ZXMgPSB7IC4uLmZpbHRlcnMsIC4uLnRoaXMuX2FyZ3MsIC4uLnBheGVzIH07XHJcbiAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoWydjdWJlJywgdGhpcy5fY3ViZS5uYW1lLCAnZXhwbG9yZSddLFxyXG4gICAgICB7XHJcbiAgICAgICAgcXVlcnlQYXJhbXM6IGF4ZXMsXHJcbiAgICAgICAgc3RhdGU6IHsgc2NvcGUsIGluZGV4IH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveS5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbmV4cG9ydCB0eXBlIEl0ZW0gPSB7XHJcbiAgW25hbWU6IHN0cmluZ106IChzdHJpbmcgfCBudW1iZXIpXHJcbn0gJiB7XHJcbiAgdXNhZ2U/OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVXNhZ2VTZXR0aW5nc01vZGVsIHtcclxuICB4QXhpcz86IHN0cmluZ1tdIHwgc3RyaW5nO1xyXG4gIGN1YmU/OiBzdHJpbmc7XHJcbiAgZXhjbHVkZTogc3RyaW5nW107XHJcbiAgeVRpdGxlPzogc3RyaW5nO1xyXG4gIGluZGljZXM/OiBzdHJpbmdbXSB8IHN0cmluZztcclxuICBzZXJpZXM/OiBzdHJpbmdbXSB8IHN0cmluZztcclxuICBmaWx0ZXJzPzogQXhlc01hcDtcclxuICBzY29wZT86IFNjb3BlVHlwZTtcclxuICBjaGFydFR5cGU/OiBDaGFydFNlcmllc1R5cGU7XHJcbiAgY29sbGFwc2U/OiBib29sZWFuO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBVc2FnZVR5cGUgPSAnQ2hhcnQnIHwgJ1Bpdm90JztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXJncyB7IFtheGlzOiBzdHJpbmddOiBzdHJpbmcgfVxyXG4iXX0=