@bizdoc/core 1.10.0 → 1.10.5

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 (449) hide show
  1. package/esm2020/lib/admin/admin-dismiss.service.mjs +3 -3
  2. package/esm2020/lib/admin/admin-menu.component.mjs +3 -3
  3. package/esm2020/lib/admin/core/ace.input.mjs +3 -3
  4. package/esm2020/lib/admin/core/color-picker.input.mjs +3 -3
  5. package/esm2020/lib/admin/core/search.input.mjs +3 -3
  6. package/esm2020/lib/admin/diff/configuration-diff.component.mjs +5 -5
  7. package/esm2020/lib/admin/document-trace/document-trace.component.mjs +3 -3
  8. package/esm2020/lib/admin/document-trace/reassign.dialog.mjs +3 -3
  9. package/esm2020/lib/admin/document-trace/trace-element.component.mjs +3 -3
  10. package/esm2020/lib/admin/form/form.resolve.service.mjs +3 -3
  11. package/esm2020/lib/admin/form/form.service.mjs +3 -3
  12. package/esm2020/lib/admin/form/workflow/node.component.mjs +3 -3
  13. package/esm2020/lib/admin/form/workflow/role-node.component.mjs +3 -3
  14. package/esm2020/lib/admin/form/workflow/workflow.component.mjs +9 -9
  15. package/esm2020/lib/admin/indices/manage-cube-index.component.mjs +3 -3
  16. package/esm2020/lib/admin/patterns/patterns.component.mjs +3 -3
  17. package/esm2020/lib/admin/permissions/permissions.component.mjs +3 -3
  18. package/esm2020/lib/admin/positions/positions-popup.component.mjs +3 -3
  19. package/esm2020/lib/admin/positions/positions.component.mjs +132 -63
  20. package/esm2020/lib/admin/profiler/profiler.component.mjs +3 -3
  21. package/esm2020/lib/admin/utility-wrapper.component.mjs +3 -3
  22. package/esm2020/lib/admin/utility.pane.component.mjs +3 -3
  23. package/esm2020/lib/app.component.mjs +6 -6
  24. package/esm2020/lib/bizdoc.module.mjs +4 -4
  25. package/esm2020/lib/browse/browse-items.component.mjs +6 -5
  26. package/esm2020/lib/browse/browse.mobile.component.mjs +3 -3
  27. package/esm2020/lib/browse/browse.pane.component.mjs +3 -3
  28. package/esm2020/lib/browse/expanded-item/expanded-item.component.mjs +3 -3
  29. package/esm2020/lib/browse/filter/filter.component.mjs +3 -3
  30. package/esm2020/lib/browse/folders-menu.component.mjs +3 -3
  31. package/esm2020/lib/chat/chat-info.mjs +3 -3
  32. package/esm2020/lib/chat/chat.mobile.component.mjs +3 -3
  33. package/esm2020/lib/chat/chat.service.mjs +3 -3
  34. package/esm2020/lib/chat/contacts.component.mjs +6 -6
  35. package/esm2020/lib/chat/contacts.pane.component.mjs +3 -3
  36. package/esm2020/lib/chat/conversation.component.mjs +3 -3
  37. package/esm2020/lib/chat/conversation.pane.component.mjs +3 -3
  38. package/esm2020/lib/compose/action/action-picker.component.mjs +3 -3
  39. package/esm2020/lib/compose/action/action.dialog.mjs +3 -3
  40. package/esm2020/lib/compose/action/action.pane.dialog.mjs +3 -3
  41. package/esm2020/lib/compose/action/assign-action.component.mjs +3 -3
  42. package/esm2020/lib/compose/action/return-action.component.mjs +3 -3
  43. package/esm2020/lib/compose/attachments/attachments.component.mjs +3 -3
  44. package/esm2020/lib/compose/attachments/preview/attachment-preview.component.mjs +3 -3
  45. package/esm2020/lib/compose/attachments/progress-button.directive.mjs +3 -3
  46. package/esm2020/lib/compose/can-deactivate-changes.service.mjs +3 -3
  47. package/esm2020/lib/compose/comments/Comments.pane.component.mjs +3 -3
  48. package/esm2020/lib/compose/comments/comment.component.mjs +3 -3
  49. package/esm2020/lib/compose/comments/comments.component.mjs +3 -3
  50. package/esm2020/lib/compose/comments/edit-comment.component.mjs +3 -3
  51. package/esm2020/lib/compose/comments/edits.component.mjs +3 -3
  52. package/esm2020/lib/compose/comments/quick-comment.component.exp.mjs +3 -3
  53. package/esm2020/lib/compose/comments/votes.component.mjs +3 -3
  54. package/esm2020/lib/compose/compose-resolve.service.mjs +6 -6
  55. package/esm2020/lib/compose/compose.mobile.component.mjs +13 -8
  56. package/esm2020/lib/compose/compose.pane.component.mjs +19 -19
  57. package/esm2020/lib/compose/copy/copy.dialog.mjs +3 -3
  58. package/esm2020/lib/compose/dismiss.service.mjs +3 -3
  59. package/esm2020/lib/compose/document-resolver.service.mjs +3 -3
  60. package/esm2020/lib/compose/document.component.mjs +3 -3
  61. package/esm2020/lib/compose/document.mobile.component.mjs +3 -3
  62. package/esm2020/lib/compose/document.pane.component.mjs +3 -3
  63. package/esm2020/lib/compose/events/events.component.mjs +3 -3
  64. package/esm2020/lib/compose/form-selector/form-selector.sheet.mjs +3 -3
  65. package/esm2020/lib/compose/form.component.mjs +3 -3
  66. package/esm2020/lib/compose/new-menu.component.mjs +3 -3
  67. package/esm2020/lib/compose/privilage.directive.mjs +6 -6
  68. package/esm2020/lib/compose/recipient-resolver.service.mjs +3 -3
  69. package/esm2020/lib/compose/save-changes.dialog.mjs +3 -3
  70. package/esm2020/lib/compose/state.component.mjs +3 -3
  71. package/esm2020/lib/compose/tag/tags.component.mjs +3 -3
  72. package/esm2020/lib/compose/trace/flow.component.mjs +15 -15
  73. package/esm2020/lib/compose/trace/people.component.mjs +3 -3
  74. package/esm2020/lib/compose/trace/trace.base.mjs +3 -3
  75. package/esm2020/lib/compose/trace/trace.component.mjs +8 -10
  76. package/esm2020/lib/compose/trace/trace.pane.component.mjs +3 -3
  77. package/esm2020/lib/compose/version-compare/version-compare.component.mjs +3 -3
  78. package/esm2020/lib/compose/version-compare/version-compare.directive.mjs +9 -9
  79. package/esm2020/lib/compose/version-compare/version.pane.component.mjs +3 -3
  80. package/esm2020/lib/core/NgComponentOutlet.mjs +3 -3
  81. package/esm2020/lib/core/account.service.mjs +3 -3
  82. package/esm2020/lib/core/animated-icon/animated-icon.directive.mjs +3 -3
  83. package/esm2020/lib/core/avatar/avatar.component.mjs +3 -3
  84. package/esm2020/lib/core/component-factory-resolver.mjs +3 -3
  85. package/esm2020/lib/core/configuration.mjs +1 -1
  86. package/esm2020/lib/core/controls/address.input.mjs +3 -3
  87. package/esm2020/lib/core/controls/auto-complete.input.mjs +3 -3
  88. package/esm2020/lib/core/controls/combination-picker-body.mjs +3 -3
  89. package/esm2020/lib/core/controls/combination-picker.mjs +3 -3
  90. package/esm2020/lib/core/controls/combination-pool.mjs +3 -3
  91. package/esm2020/lib/core/controls/select.input.mjs +3 -3
  92. package/esm2020/lib/core/controls/time-picker.mjs +3 -3
  93. package/esm2020/lib/core/controls/timespan.input.mjs +3 -3
  94. package/esm2020/lib/core/datasource.service.mjs +3 -3
  95. package/esm2020/lib/core/guide/guide.component.mjs +3 -3
  96. package/esm2020/lib/core/guide/guide.service.mjs +3 -3
  97. package/esm2020/lib/core/http.interceptor.mjs +3 -3
  98. package/esm2020/lib/core/hub.service.mjs +3 -3
  99. package/esm2020/lib/core/identity/identity.component.mjs +3 -3
  100. package/esm2020/lib/core/info/attachment-info.service.mjs +3 -3
  101. package/esm2020/lib/core/info/document-info.service.mjs +3 -3
  102. package/esm2020/lib/core/info/location-info.component.mjs +3 -3
  103. package/esm2020/lib/core/info/map-info.mjs +3 -3
  104. package/esm2020/lib/core/layout/autocomplete.field.mjs +3 -3
  105. package/esm2020/lib/core/layout/checkbox.field.mjs +3 -3
  106. package/esm2020/lib/core/layout/checkbox.mjs +3 -3
  107. package/esm2020/lib/core/layout/date-range.field.mjs +3 -3
  108. package/esm2020/lib/core/layout/date.field.mjs +3 -3
  109. package/esm2020/lib/core/layout/expression.field.mjs +3 -3
  110. package/esm2020/lib/core/layout/html.field.mjs +3 -3
  111. package/esm2020/lib/core/layout/input.base.mjs +3 -3
  112. package/esm2020/lib/core/layout/input.field.mjs +3 -3
  113. package/esm2020/lib/core/layout/layout.component.mjs +3 -3
  114. package/esm2020/lib/core/layout/numeric.field.mjs +3 -3
  115. package/esm2020/lib/core/layout/select.field.mjs +3 -3
  116. package/esm2020/lib/core/layout/switch.field.mjs +3 -3
  117. package/esm2020/lib/core/layout/textarea.field.mjs +3 -3
  118. package/esm2020/lib/core/layout/timespan.field.mjs +3 -3
  119. package/esm2020/lib/core/lottie-animation.mjs +3 -3
  120. package/esm2020/lib/core/mailbox.service.mjs +3 -3
  121. package/esm2020/lib/core/none.component.mjs +3 -3
  122. package/esm2020/lib/core/pipes/action.pipe.mjs +3 -3
  123. package/esm2020/lib/core/pipes/calendar.pipe.mjs +3 -3
  124. package/esm2020/lib/core/pipes/date-format.pipe.mjs +3 -3
  125. package/esm2020/lib/core/pipes/daterange.pipe.mjs +6 -6
  126. package/esm2020/lib/core/pipes/difference.pipe.mjs +3 -3
  127. package/esm2020/lib/core/pipes/duration-format.pipe.mjs +3 -3
  128. package/esm2020/lib/core/pipes/duration.pipe.mjs +3 -3
  129. package/esm2020/lib/core/pipes/form.pipe.mjs +3 -3
  130. package/esm2020/lib/core/pipes/join.pipe.mjs +3 -3
  131. package/esm2020/lib/core/pipes/role.pipe.mjs +3 -3
  132. package/esm2020/lib/core/pipes/sanitize-html.pipe.mjs +3 -3
  133. package/esm2020/lib/core/pipes/sort.pipe.mjs +6 -6
  134. package/esm2020/lib/core/pipes/state.pipe.mjs +3 -3
  135. package/esm2020/lib/core/pipes/time-ago.pipe.mjs +3 -3
  136. package/esm2020/lib/core/pipes/translate.pipe.mjs +6 -6
  137. package/esm2020/lib/core/pipes/type-value.pipe.mjs +3 -3
  138. package/esm2020/lib/core/pipes/user-name.pipe.mjs +3 -3
  139. package/esm2020/lib/core/popup/popup.component.mjs +3 -3
  140. package/esm2020/lib/core/popup/popup.service.mjs +3 -3
  141. package/esm2020/lib/core/popup/tooltip.directive.mjs +6 -6
  142. package/esm2020/lib/core/prompt/ask/ask.dialog.mjs +3 -3
  143. package/esm2020/lib/core/prompt/mask/mask.component.mjs +3 -3
  144. package/esm2020/lib/core/prompt.service.mjs +3 -3
  145. package/esm2020/lib/core/router.mjs +6 -6
  146. package/esm2020/lib/core/session.service.mjs +16 -8
  147. package/esm2020/lib/core/slots/router.directive.mjs +3 -3
  148. package/esm2020/lib/core/slots/router.service.mjs +3 -3
  149. package/esm2020/lib/core/slots/slots.component.mjs +4 -4
  150. package/esm2020/lib/core/tagging/documents.component.mjs +3 -3
  151. package/esm2020/lib/core/tagging/edit-input.component.mjs +3 -3
  152. package/esm2020/lib/core/tagging/emoji.component.mjs +3 -3
  153. package/esm2020/lib/core/tagging/tagging-item.directive.mjs +3 -3
  154. package/esm2020/lib/core/tagging/tagging.component-base.mjs +3 -3
  155. package/esm2020/lib/core/tagging/tagging.directive.mjs +3 -3
  156. package/esm2020/lib/core/tagging/tagging.pipe.mjs +3 -3
  157. package/esm2020/lib/core/tagging/users.component.mjs +3 -3
  158. package/esm2020/lib/core/translate.service.mjs +7 -4
  159. package/esm2020/lib/core/translations.mjs +3 -3
  160. package/esm2020/lib/core/window-title.service.mjs +3 -3
  161. package/esm2020/lib/cube/accum/accum.component.mjs +65 -17
  162. package/esm2020/lib/cube/chart/chart.component.mjs +61 -15
  163. package/esm2020/lib/cube/cube-info.service.mjs +3 -3
  164. package/esm2020/lib/cube/cube-menu.component.mjs +3 -3
  165. package/esm2020/lib/cube/cube-view.component.mjs +4 -5
  166. package/esm2020/lib/cube/cube.service.mjs +46 -15
  167. package/esm2020/lib/cube/declarations.mjs +1 -1
  168. package/esm2020/lib/cube/explore/document-item.component.mjs +3 -3
  169. package/esm2020/lib/cube/explore/explore-item.component.mjs +3 -3
  170. package/esm2020/lib/cube/explore/explore-items.component.mjs +39 -12
  171. package/esm2020/lib/cube/explore/explore.pane.component.mjs +3 -3
  172. package/esm2020/lib/cube/explore/item-resolver.service.mjs +6 -6
  173. package/esm2020/lib/cube/explore/item.pane.component.mjs +3 -3
  174. package/esm2020/lib/cube/filter/filter-tags.component.exp.mjs +3 -3
  175. package/esm2020/lib/cube/filter/filter.component.mjs +3 -3
  176. package/esm2020/lib/cube/grid/grid.component.mjs +5 -6
  177. package/esm2020/lib/cube/grid/spreadsheet.component.mjs +45 -29
  178. package/esm2020/lib/cube/matrix/matrix.base.mjs +3 -3
  179. package/esm2020/lib/cube/matrix/matrix.component.mjs +3 -3
  180. package/esm2020/lib/cube/matrix/matrix.mobile.component.mjs +3 -3
  181. package/esm2020/lib/cube/matrix/matrix.pane.component.mjs +3 -3
  182. package/esm2020/lib/cube/matrix/table.component.mjs +7 -7
  183. package/esm2020/lib/cube/parallel/parallel.component.mjs +3 -3
  184. package/esm2020/lib/cube/pivot/pivot.component.mjs +79 -17
  185. package/esm2020/lib/cube/sum/sum.component.mjs +3 -3
  186. package/esm2020/lib/cube/view-base.mjs +7 -6
  187. package/esm2020/lib/cube/view.mobile.component.mjs +3 -3
  188. package/esm2020/lib/cube/view.pane.component.mjs +3 -3
  189. package/esm2020/lib/dashboard/actions/actions.widget.mjs +3 -3
  190. package/esm2020/lib/dashboard/cube/accum-cube.widget.mjs +3 -3
  191. package/esm2020/lib/dashboard/cube/cube-analysis.base.mjs +3 -3
  192. package/esm2020/lib/dashboard/cube/cube-analysis.widget.mjs +3 -3
  193. package/esm2020/lib/dashboard/cube/cube-chart.widget.mjs +3 -3
  194. package/esm2020/lib/dashboard/cube/documents.widget.mjs +3 -3
  195. package/esm2020/lib/dashboard/cube/filter/filter.component.mjs +3 -3
  196. package/esm2020/lib/dashboard/dashboard.component.mjs +3 -3
  197. package/esm2020/lib/dashboard/dashboard.pane.component.mjs +3 -3
  198. package/esm2020/lib/dashboard/recents/recents.widget.mjs +23 -17
  199. package/esm2020/lib/dashboard/score/activity.widget.mjs +3 -3
  200. package/esm2020/lib/dashboard/score/compare-departments.widget.mjs +15 -9
  201. package/esm2020/lib/dashboard/score/peers-performance.widget.mjs +3 -3
  202. package/esm2020/lib/dashboard/score/pending-results.widget.mjs +3 -3
  203. package/esm2020/lib/dashboard/score/personal-score.widget.mjs +3 -3
  204. package/esm2020/lib/dashboard/widget-item.component.mjs +3 -3
  205. package/esm2020/lib/desktop.module.mjs +4 -4
  206. package/esm2020/lib/home/about/about.dialog.mjs +3 -3
  207. package/esm2020/lib/home/home-base.component.mjs +5 -4
  208. package/esm2020/lib/home/home.desktop.component.mjs +5 -5
  209. package/esm2020/lib/home/home.mobile.component.mjs +5 -5
  210. package/esm2020/lib/home/notifications/notifications.component.mjs +3 -3
  211. package/esm2020/lib/home/options/options.component.mjs +3 -3
  212. package/esm2020/lib/home/outofoffice/outofoffice.component.mjs +3 -3
  213. package/esm2020/lib/home/search.service.mjs +3 -3
  214. package/esm2020/lib/home/sign/sign.component.mjs +3 -3
  215. package/esm2020/lib/home/tools.component.mjs +3 -3
  216. package/esm2020/lib/impersonate/impersonate.component.mjs +3 -3
  217. package/esm2020/lib/mobile.module.mjs +4 -4
  218. package/esm2020/lib/modules/chart.module.mjs +4 -4
  219. package/esm2020/lib/modules/circular-gauge.module.mjs +4 -4
  220. package/esm2020/lib/modules/date.adapter.mjs +3 -3
  221. package/esm2020/lib/modules/datepicker.intl.mjs +3 -3
  222. package/esm2020/lib/modules/diagram.module.mjs +4 -4
  223. package/esm2020/lib/modules/gantt.module.mjs +4 -4
  224. package/esm2020/lib/modules/grid.module.mjs +4 -4
  225. package/esm2020/lib/modules/material.module.mjs +4 -4
  226. package/esm2020/lib/modules/paginator.intl.mjs +3 -3
  227. package/esm2020/lib/modules/pivot.module.mjs +4 -4
  228. package/esm2020/lib/modules/schedule.module.mjs +4 -4
  229. package/esm2020/lib/modules/spreadsheet.module.mjs +4 -4
  230. package/esm2020/lib/modules/stepper.intl.mjs +3 -3
  231. package/esm2020/lib/modules/texteditor.module.mjs +4 -4
  232. package/esm2020/lib/notifications/filter.component.mjs +3 -3
  233. package/esm2020/lib/notifications/notifications-table.component.mjs +3 -3
  234. package/esm2020/lib/notifications/notifications.mobile.component.mjs +3 -3
  235. package/esm2020/lib/notifications/notifications.pane.component.mjs +3 -3
  236. package/esm2020/lib/notifications/notifications.service.mjs +3 -3
  237. package/esm2020/lib/notifications/types/commented.notification.mjs +3 -3
  238. package/esm2020/lib/notifications/types/cube-anomaly.notification.mjs +3 -3
  239. package/esm2020/lib/notifications/types/escalated.notification.mjs +3 -3
  240. package/esm2020/lib/notifications/types/liked.notification.mjs +3 -3
  241. package/esm2020/lib/notifications/types/long-running-task.notification.mjs +3 -3
  242. package/esm2020/lib/notifications/types/notification-base.mjs +3 -3
  243. package/esm2020/lib/notifications/types/nudge.notification.mjs +3 -3
  244. package/esm2020/lib/notifications/types/state-changed.notification.mjs +3 -3
  245. package/esm2020/lib/notifications/types/tagged.notification.mjs +3 -3
  246. package/esm2020/lib/notifications/types/text.notification.mjs +3 -3
  247. package/esm2020/lib/notifications/types/upcoming-event.notification.mjs +3 -3
  248. package/esm2020/lib/options/options.component.mjs +3 -3
  249. package/esm2020/lib/options/options.service.mjs +3 -3
  250. package/esm2020/lib/reports/arguments-component.mjs +3 -3
  251. package/esm2020/lib/reports/cube/grid-documents.component.mjs +3 -3
  252. package/esm2020/lib/reports/cube/table-documents.component.mjs +3 -3
  253. package/esm2020/lib/reports/cube/usage-args.component.mjs +4 -4
  254. package/esm2020/lib/reports/cube/usage-base.mjs +4 -4
  255. package/esm2020/lib/reports/cube/usage-chart.component.mjs +79 -13
  256. package/esm2020/lib/reports/cube/usage-pivot.component.mjs +4 -4
  257. package/esm2020/lib/reports/report-viewer.component.mjs +41 -15
  258. package/esm2020/lib/reports/report.mobile.component.mjs +3 -3
  259. package/esm2020/lib/reports/report.pane.component.mjs +3 -3
  260. package/esm2020/lib/reports/reports-menu.component.mjs +3 -3
  261. package/esm2020/lib/reports/substitution/substitution.component.mjs +3 -3
  262. package/esm2020/lib/reports/table/table-view.component.mjs +3 -3
  263. package/esm2020/lib/reports/tasks/tasks.component.mjs +3 -3
  264. package/esm2020/lib/scheduler/schedule.component.mjs +3 -3
  265. package/esm2020/lib/scheduler/scheduler.mobile.component.mjs +3 -3
  266. package/esm2020/lib/scheduler/scheduler.pane.component.mjs +3 -3
  267. package/esm2020/lib/shared.module.mjs +4 -4
  268. package/esm2020/lib/system.module.mjs +4 -4
  269. package/esm2020/lib/views/cube/chart.component.mjs +3 -3
  270. package/esm2020/lib/views/cube/cube-base.mjs +3 -3
  271. package/esm2020/lib/views/cube/explore.component.mjs +3 -3
  272. package/esm2020/lib/views/cube/matrix.component.mjs +3 -3
  273. package/esm2020/lib/views/cube/parallel.component.mjs +3 -3
  274. package/esm2020/lib/views/cube/pivot.component.mjs +3 -3
  275. package/esm2020/lib/views/cube/sum.component.mjs +3 -3
  276. package/esm2020/lib/views/cube/view.component.mjs +3 -3
  277. package/esm2020/lib/views/timeline/timeline.component.exp.mjs +3 -3
  278. package/esm2020/lib/views/view-item.component.mjs +3 -3
  279. package/esm2020/lib/views/views.component.mjs +3 -3
  280. package/esm2020/lib/views/views.mobile.component.mjs +3 -3
  281. package/esm2020/lib/views/views.pane.component.mjs +3 -3
  282. package/fesm2015/bizdoc-core.mjs +4853 -4478
  283. package/fesm2015/bizdoc-core.mjs.map +1 -1
  284. package/fesm2020/bizdoc-core.mjs +4839 -4468
  285. package/fesm2020/bizdoc-core.mjs.map +1 -1
  286. package/lib/admin/positions/positions.component.d.ts +0 -1
  287. package/lib/browse/browse-items.component.d.ts +1 -0
  288. package/lib/compose/compose.mobile.component.d.ts +3 -1
  289. package/lib/compose/compose.pane.component.d.ts +3 -1
  290. package/lib/core/configuration.d.ts +3 -0
  291. package/lib/core/session.service.d.ts +2 -0
  292. package/lib/cube/accum/accum.component.d.ts +4 -3
  293. package/lib/cube/chart/chart.component.d.ts +2 -1
  294. package/lib/cube/cube.service.d.ts +1 -0
  295. package/lib/cube/declarations.d.ts +0 -1
  296. package/lib/cube/explore/explore-items.component.d.ts +1 -1
  297. package/lib/cube/grid/grid.component.d.ts +1 -1
  298. package/lib/cube/grid/spreadsheet.component.d.ts +1 -3
  299. package/lib/cube/pivot/pivot.component.d.ts +1 -1
  300. package/lib/dashboard/recents/recents.widget.d.ts +4 -1
  301. package/lib/home/home-base.component.d.ts +1 -0
  302. package/lib/reports/cube/usage-args.component.d.ts +2 -2
  303. package/lib/reports/cube/usage-base.d.ts +8 -12
  304. package/lib/reports/cube/usage-chart.component.d.ts +1 -1
  305. package/lib/reports/report-viewer.component.d.ts +3 -1
  306. package/package.json +12 -12
  307. package/assets/dayjs/locale/af.js +0 -1
  308. package/assets/dayjs/locale/am.js +0 -1
  309. package/assets/dayjs/locale/ar-dz.js +0 -1
  310. package/assets/dayjs/locale/ar-iq.js +0 -1
  311. package/assets/dayjs/locale/ar-kw.js +0 -1
  312. package/assets/dayjs/locale/ar-ly.js +0 -1
  313. package/assets/dayjs/locale/ar-ma.js +0 -1
  314. package/assets/dayjs/locale/ar-sa.js +0 -1
  315. package/assets/dayjs/locale/ar-tn.js +0 -1
  316. package/assets/dayjs/locale/ar.js +0 -1
  317. package/assets/dayjs/locale/az.js +0 -1
  318. package/assets/dayjs/locale/be.js +0 -1
  319. package/assets/dayjs/locale/bg.js +0 -1
  320. package/assets/dayjs/locale/bi.js +0 -1
  321. package/assets/dayjs/locale/bm.js +0 -1
  322. package/assets/dayjs/locale/bn.js +0 -1
  323. package/assets/dayjs/locale/bo.js +0 -1
  324. package/assets/dayjs/locale/br.js +0 -1
  325. package/assets/dayjs/locale/bs.js +0 -1
  326. package/assets/dayjs/locale/ca.js +0 -1
  327. package/assets/dayjs/locale/cs.js +0 -1
  328. package/assets/dayjs/locale/cv.js +0 -1
  329. package/assets/dayjs/locale/cy.js +0 -1
  330. package/assets/dayjs/locale/da.js +0 -1
  331. package/assets/dayjs/locale/de-at.js +0 -1
  332. package/assets/dayjs/locale/de-ch.js +0 -1
  333. package/assets/dayjs/locale/de.js +0 -1
  334. package/assets/dayjs/locale/dv.js +0 -1
  335. package/assets/dayjs/locale/el.js +0 -1
  336. package/assets/dayjs/locale/en-au.js +0 -1
  337. package/assets/dayjs/locale/en-ca.js +0 -1
  338. package/assets/dayjs/locale/en-gb.js +0 -1
  339. package/assets/dayjs/locale/en-ie.js +0 -1
  340. package/assets/dayjs/locale/en-il.js +0 -1
  341. package/assets/dayjs/locale/en-in.js +0 -1
  342. package/assets/dayjs/locale/en-nz.js +0 -1
  343. package/assets/dayjs/locale/en-sg.js +0 -1
  344. package/assets/dayjs/locale/en-tt.js +0 -1
  345. package/assets/dayjs/locale/en.js +0 -1
  346. package/assets/dayjs/locale/eo.js +0 -1
  347. package/assets/dayjs/locale/es-do.js +0 -1
  348. package/assets/dayjs/locale/es-mx.js +0 -1
  349. package/assets/dayjs/locale/es-pr.js +0 -1
  350. package/assets/dayjs/locale/es-us.js +0 -1
  351. package/assets/dayjs/locale/es.js +0 -1
  352. package/assets/dayjs/locale/et.js +0 -1
  353. package/assets/dayjs/locale/eu.js +0 -1
  354. package/assets/dayjs/locale/fa.js +0 -1
  355. package/assets/dayjs/locale/fi.js +0 -1
  356. package/assets/dayjs/locale/fo.js +0 -1
  357. package/assets/dayjs/locale/fr-ca.js +0 -1
  358. package/assets/dayjs/locale/fr-ch.js +0 -1
  359. package/assets/dayjs/locale/fr.js +0 -1
  360. package/assets/dayjs/locale/fy.js +0 -1
  361. package/assets/dayjs/locale/ga.js +0 -1
  362. package/assets/dayjs/locale/gd.js +0 -1
  363. package/assets/dayjs/locale/gl.js +0 -1
  364. package/assets/dayjs/locale/gom-latn.js +0 -1
  365. package/assets/dayjs/locale/gu.js +0 -1
  366. package/assets/dayjs/locale/he.js +0 -1
  367. package/assets/dayjs/locale/hi.js +0 -1
  368. package/assets/dayjs/locale/hr.js +0 -1
  369. package/assets/dayjs/locale/ht.js +0 -1
  370. package/assets/dayjs/locale/hu.js +0 -1
  371. package/assets/dayjs/locale/hy-am.js +0 -1
  372. package/assets/dayjs/locale/id.js +0 -1
  373. package/assets/dayjs/locale/index.d.ts +0 -11
  374. package/assets/dayjs/locale/is.js +0 -1
  375. package/assets/dayjs/locale/it-ch.js +0 -1
  376. package/assets/dayjs/locale/it.js +0 -1
  377. package/assets/dayjs/locale/ja.js +0 -1
  378. package/assets/dayjs/locale/jv.js +0 -1
  379. package/assets/dayjs/locale/ka.js +0 -1
  380. package/assets/dayjs/locale/kk.js +0 -1
  381. package/assets/dayjs/locale/km.js +0 -1
  382. package/assets/dayjs/locale/kn.js +0 -1
  383. package/assets/dayjs/locale/ko.js +0 -1
  384. package/assets/dayjs/locale/ku.js +0 -1
  385. package/assets/dayjs/locale/ky.js +0 -1
  386. package/assets/dayjs/locale/lb.js +0 -1
  387. package/assets/dayjs/locale/lo.js +0 -1
  388. package/assets/dayjs/locale/lt.js +0 -1
  389. package/assets/dayjs/locale/lv.js +0 -1
  390. package/assets/dayjs/locale/me.js +0 -1
  391. package/assets/dayjs/locale/mi.js +0 -1
  392. package/assets/dayjs/locale/mk.js +0 -1
  393. package/assets/dayjs/locale/ml.js +0 -1
  394. package/assets/dayjs/locale/mn.js +0 -1
  395. package/assets/dayjs/locale/mr.js +0 -1
  396. package/assets/dayjs/locale/ms-my.js +0 -1
  397. package/assets/dayjs/locale/ms.js +0 -1
  398. package/assets/dayjs/locale/mt.js +0 -1
  399. package/assets/dayjs/locale/my.js +0 -1
  400. package/assets/dayjs/locale/nb.js +0 -1
  401. package/assets/dayjs/locale/ne.js +0 -1
  402. package/assets/dayjs/locale/nl-be.js +0 -1
  403. package/assets/dayjs/locale/nl.js +0 -1
  404. package/assets/dayjs/locale/nn.js +0 -1
  405. package/assets/dayjs/locale/oc-lnc.js +0 -1
  406. package/assets/dayjs/locale/pa-in.js +0 -1
  407. package/assets/dayjs/locale/pl.js +0 -1
  408. package/assets/dayjs/locale/pt-br.js +0 -1
  409. package/assets/dayjs/locale/pt.js +0 -1
  410. package/assets/dayjs/locale/ro.js +0 -1
  411. package/assets/dayjs/locale/ru.js +0 -1
  412. package/assets/dayjs/locale/rw.js +0 -1
  413. package/assets/dayjs/locale/sd.js +0 -1
  414. package/assets/dayjs/locale/se.js +0 -1
  415. package/assets/dayjs/locale/si.js +0 -1
  416. package/assets/dayjs/locale/sk.js +0 -1
  417. package/assets/dayjs/locale/sl.js +0 -1
  418. package/assets/dayjs/locale/sq.js +0 -1
  419. package/assets/dayjs/locale/sr-cyrl.js +0 -1
  420. package/assets/dayjs/locale/sr.js +0 -1
  421. package/assets/dayjs/locale/ss.js +0 -1
  422. package/assets/dayjs/locale/sv-fi.js +0 -1
  423. package/assets/dayjs/locale/sv.js +0 -1
  424. package/assets/dayjs/locale/sw.js +0 -1
  425. package/assets/dayjs/locale/ta.js +0 -1
  426. package/assets/dayjs/locale/te.js +0 -1
  427. package/assets/dayjs/locale/tet.js +0 -1
  428. package/assets/dayjs/locale/tg.js +0 -1
  429. package/assets/dayjs/locale/th.js +0 -1
  430. package/assets/dayjs/locale/tk.js +0 -1
  431. package/assets/dayjs/locale/tl-ph.js +0 -1
  432. package/assets/dayjs/locale/tlh.js +0 -1
  433. package/assets/dayjs/locale/tr.js +0 -1
  434. package/assets/dayjs/locale/types.d.ts +0 -33
  435. package/assets/dayjs/locale/tzl.js +0 -1
  436. package/assets/dayjs/locale/tzm-latn.js +0 -1
  437. package/assets/dayjs/locale/tzm.js +0 -1
  438. package/assets/dayjs/locale/ug-cn.js +0 -1
  439. package/assets/dayjs/locale/uk.js +0 -1
  440. package/assets/dayjs/locale/ur.js +0 -1
  441. package/assets/dayjs/locale/uz-latn.js +0 -1
  442. package/assets/dayjs/locale/uz.js +0 -1
  443. package/assets/dayjs/locale/vi.js +0 -1
  444. package/assets/dayjs/locale/x-pseudo.js +0 -1
  445. package/assets/dayjs/locale/yo.js +0 -1
  446. package/assets/dayjs/locale/zh-cn.js +0 -1
  447. package/assets/dayjs/locale/zh-hk.js +0 -1
  448. package/assets/dayjs/locale/zh-tw.js +0 -1
  449. package/assets/dayjs/locale/zh.js +0 -1
@@ -6,7 +6,8 @@ import { PivotView } from "@syncfusion/ej2-angular-pivotview";
6
6
  import { BizDoc } from "../../core/decorators";
7
7
  import { UsageReportBase } from "./usage-base";
8
8
  import { FONT_FAMILY } from "../../core/colors";
9
- import * as XLSX from 'xlsx';
9
+ import { Workbook } from '@syncfusion/ej2-excel-export';
10
+ import { getCurrencySymbol, getLocaleNumberFormat, NumberFormatStyle } from "@angular/common";
10
11
  import * as i0 from "@angular/core";
11
12
  import * as i1 from "../report-ref";
12
13
  import * as i2 from "../../core/datasource.service";
@@ -173,14 +174,79 @@ let UsageChartComponent = class UsageChartComponent extends UsageReportBase {
173
174
  this.pivot.chart.chartResize();
174
175
  }
175
176
  }
176
- onExport(name) {
177
- //this.pivot.excelExport({ fileName: `${name}.xlsx`, hierarchyExportMode: 'All' });
178
- const ws = XLSX.utils.json_to_sheet(this._data);
179
- const wb = XLSX.utils.book_new();
180
- const sname = this._translate.get('SheetN', 1);
181
- wb.Sheets[sname] = ws;
182
- wb.SheetNames.push(sname);
183
- XLSX.writeFile(wb, `${name}.xlsx`);
177
+ onExport(title) {
178
+ const numberFormat = this._cube.currencyCode ?
179
+ getCurrencySymbol(this._cube.currencyCode, 'narrow') +
180
+ getLocaleNumberFormat(this._session.language, NumberFormatStyle.Currency)
181
+ : getLocaleNumberFormat(this._session.language, NumberFormatStyle.Decimal), columns = this._cube.axes.filter(a => this._options.series.indexOf(a.name) > -1), rows = [{
182
+ index: 1,
183
+ cells: columns.map((c, i) => ({
184
+ index: i + 1, value: c.title,
185
+ cellStyle: {
186
+ bold: true
187
+ }
188
+ }))
189
+ }];
190
+ rows[0].cells.push({
191
+ index: columns.length + 1,
192
+ value: this._cube.yAxis ? this._cube.yAxis.title :
193
+ this._translate.get('Value'),
194
+ cellStyle: {
195
+ bold: true
196
+ }
197
+ });
198
+ this._indices && this._indices.forEach((x, i) => rows[0].cells.push({
199
+ index: columns.length + i + 2,
200
+ value: x.title,
201
+ cellStyle: {
202
+ bold: true
203
+ }
204
+ }));
205
+ this._data.forEach((r, i) => {
206
+ const cells = columns.map((c, j) => {
207
+ return {
208
+ index: j + 1, value: r[c.name],
209
+ cellStyle: {}
210
+ };
211
+ });
212
+ cells.push({
213
+ type: 'number',
214
+ index: columns.length + 1,
215
+ cellStyle: {
216
+ numberFormat,
217
+ hAlign: 'right'
218
+ },
219
+ value: r['value']
220
+ });
221
+ this._indices && this._indices.forEach((x, i) => cells.push({
222
+ type: 'number',
223
+ index: columns.length + i + 2,
224
+ cellStyle: {
225
+ numberFormat,
226
+ hAlign: 'right'
227
+ },
228
+ value: r[x.name]
229
+ }));
230
+ rows.push({
231
+ index: i + 2,
232
+ cells
233
+ });
234
+ });
235
+ const book = new Workbook({
236
+ worksheets: [
237
+ {
238
+ enableRtl: this._session.inverse,
239
+ name: this._translate.get('SheetN', 1),
240
+ columns: [...columns.map((_, i) => ({ index: i + 1, width: 250 })),
241
+ { index: columns.length + 1 },
242
+ ...(this._indices ? this._indices.map((_, i) => ({
243
+ index: columns.length + i + 2
244
+ })) : [])],
245
+ rows
246
+ }
247
+ ],
248
+ }, 'xlsx');
249
+ book.save(`${title}.xlsx`);
184
250
  }
185
251
  /**
186
252
  * adds data source description to item keys, and normalizes indices.
@@ -273,15 +339,15 @@ let UsageChartComponent = class UsageChartComponent extends UsageReportBase {
273
339
  super.ngOnDestroy();
274
340
  }
275
341
  };
276
- UsageChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: UsageChartComponent, deps: [{ token: i1.ReportRef }, { token: i2.DatasourceService }, { token: i3.CubeService }, { token: i4.SessionService }, { token: i5.RouterImpl }, { token: i6.PromptService }, { token: i0.ElementRef }, { token: i7.Directionality }, { token: i8.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
277
- UsageChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: UsageChartComponent, selector: "ng-component", host: { properties: { "id": "id", "dir": "dir" } }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
342
+ UsageChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: UsageChartComponent, deps: [{ token: i1.ReportRef }, { token: i2.DatasourceService }, { token: i3.CubeService }, { token: i4.SessionService }, { token: i5.RouterImpl }, { token: i6.PromptService }, { token: i0.ElementRef }, { token: i7.Directionality }, { token: i8.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
343
+ UsageChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.0", type: UsageChartComponent, selector: "ng-component", host: { properties: { "id": "id", "dir": "dir" } }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
278
344
  UsageChartComponent = __decorate([
279
345
  BizDoc({
280
346
  selector: 'bizdoc-chart-usage'
281
347
  })
282
348
  ], UsageChartComponent);
283
349
  export { UsageChartComponent };
284
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: UsageChartComponent, decorators: [{
350
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: UsageChartComponent, decorators: [{
285
351
  type: Component,
286
352
  args: [{
287
353
  template: '',
@@ -291,4 +357,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
291
357
  }
292
358
  }]
293
359
  }], ctorParameters: function () { return [{ type: i1.ReportRef }, { type: i2.DatasourceService }, { type: i3.CubeService }, { type: i4.SessionService }, { type: i5.RouterImpl }, { type: i6.PromptService }, { type: i0.ElementRef }, { type: i7.Directionality }, { type: i8.TranslateService }]; } });
294
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNhZ2UtY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9yZXBvcnRzL2N1YmUvdXNhZ2UtY2hhcnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUF5QixNQUFNLGVBQWUsQ0FBQztBQUVqRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1QyxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQXVDLFNBQVMsRUFBZSxNQUFNLG1DQUFtQyxDQUFDO0FBSWhILE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQU0vQyxPQUFPLEVBQXNCLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUduRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFaEQsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7QUFFN0I7O0tBRUs7SUFZRyxtQkFBbUIsU0FBbkIsbUJBQW9CLFNBQVEsZUFBd0I7SUFRMUQsT0FBTztJQUNQLFlBQVksU0FBNkIsRUFBRSxJQUF1QixFQUFFLE9BQW9CLEVBQUUsT0FBdUIsRUFDL0csTUFBa0IsRUFDbEIsRUFBaUIsRUFDVCxXQUF1QixFQUMvQixHQUFtQixFQUFFLFNBQTJCO1FBQ2hELEtBQUssQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUM3QyxFQUFFLEVBQUUsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBSGQsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFYeEIsUUFBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDO1FBRzlCLGtC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LENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNsRCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckQsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7O09BR0c7SUFDSyxVQUFVLENBQUMsS0FBYTtRQUM5QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUM7UUFDekQsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDO0lBQ3BCLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25DLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN0QixDQUFDO0NBQ0YsQ0FBQTtnSEF6UU8sbUJBQW1CO29HQUFuQixtQkFBbUIsK0hBVmYsRUFBRTtBQVVOLG1CQUFtQjtJQUoxQixNQUFNLENBQUM7UUFDTixRQUFRLEVBQUUsb0JBQW9CO0tBQy9CLENBQUM7R0FFTSxtQkFBbUIsQ0F5UTFCO1NBelFPLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQVgxQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxFQUFFO29CQUNaLElBQUksRUFBRTt3QkFDSixNQUFNLEVBQUUsSUFBSTt3QkFDWixPQUFPLEVBQUUsS0FBSztxQkFDZjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25EZXN0cm95IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRGlyZWN0aW9uYWxpdHkgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2JpZGlcIjtcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZm9ya0pvaW4gfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyB0YXAsIHRha2VVbnRpbCwgbWFwIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7IENoYXJ0U2VyaWVzVHlwZSwgRGlzcGxheU9wdGlvbk1vZGVsLCBQaXZvdFZpZXcsIEV4Y2VsRXhwb3J0IH0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLXBpdm90dmlld1wiO1xyXG5pbXBvcnQgeyBEYXRhU291cmNlU2V0dGluZ3NNb2RlbCwgU29ydE1vZGVsLCBGaWVsZE9wdGlvbnNNb2RlbCwgRm9ybWF0U2V0dGluZ3NNb2RlbCB9IGZyb20gXCJAc3luY2Z1c2lvbi9lajItcGl2b3R2aWV3L3NyYy9waXZvdHZpZXcvbW9kZWwvZGF0YXNvdXJjZXNldHRpbmdzLW1vZGVsXCI7XHJcbmltcG9ydCB7IENoYXJ0U2V0dGluZ3NNb2RlbCB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1waXZvdHZpZXcvc3JjL3Bpdm90dmlldy9tb2RlbC9jaGFydHNldHRpbmdzLW1vZGVsJztcclxuaW1wb3J0IHsgQ2hhcnQsIElQb2ludEV2ZW50QXJncyB9IGZyb20gXCJAc3luY2Z1c2lvbi9lajItYW5ndWxhci1jaGFydHNcIjtcclxuaW1wb3J0IHsgQml6RG9jIH0gZnJvbSBcIi4uLy4uL2NvcmUvZGVjb3JhdG9yc1wiO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvdHJhbnNsYXRlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRGF0YXNvdXJjZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9kYXRhc291cmNlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQ3ViZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY3ViZS9jdWJlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL3Byb21wdC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEl0ZW0sIFVzYWdlT3B0aW9ucywgVXNhZ2VSZXBvcnRCYXNlIH0gZnJvbSBcIi4vdXNhZ2UtYmFzZVwiO1xyXG5pbXBvcnQgeyBSZXBvcnRSZWYgfSBmcm9tIFwiLi4vcmVwb3J0LXJlZlwiO1xyXG5pbXBvcnQgeyBNYXRlcmlhbE1vZGUgfSBmcm9tIFwiLi4vLi4vY29yZS9mdW5jdGlvbnNcIjtcclxuaW1wb3J0IHsgRk9OVF9GQU1JTFkgfSBmcm9tIFwiLi4vLi4vY29yZS9jb2xvcnNcIjtcclxuaW1wb3J0IHsgUm91dGVySW1wbCB9IGZyb20gXCIuLi8uLi9jb3JlL3JvdXRlclwiO1xyXG5pbXBvcnQgKiBhcyBYTFNYIGZyb20gJ3hsc3gnO1xyXG5cclxuLyoqXHJcbiAqIGN1YmUgdXNhZ2VcclxuICogKi9cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGU6ICcnLFxyXG4gIGhvc3Q6IHtcclxuICAgICdbaWRdJzogJ2lkJyxcclxuICAgICdbZGlyXSc6ICdkaXInXHJcbiAgfVxyXG59KVxyXG5AQml6RG9jKHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1jaGFydC11c2FnZSdcclxufSlcclxuZXhwb3J0XHJcbiAgY2xhc3MgVXNhZ2VDaGFydENvbXBvbmVudCBleHRlbmRzIFVzYWdlUmVwb3J0QmFzZTxPcHRpb25zPiBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgcmVhZG9ubHkgZGlyID0gdGhpcy5fc2Vzc2lvbi5kaXJlY3Rpb247XHJcbiAgcGl2b3Q6IFBpdm90VmlldztcclxuICBkYXRhU291cmNlU2V0dGluZ3M6IERhdGFTb3VyY2VTZXR0aW5nc01vZGVsO1xyXG4gIHJlYWRvbmx5IGRpc3BsYXlPcHRpb246IERpc3BsYXlPcHRpb25Nb2RlbCA9IHtcclxuICAgIHZpZXc6ICdDaGFydCdcclxuICB9O1xyXG4gIGNoYXJ0U2V0dGluZ3M6IENoYXJ0U2V0dGluZ3NNb2RlbDtcclxuICAvLyBjdG9yXHJcbiAgY29uc3RydWN0b3IocmVwb3J0UmVmOiBSZXBvcnRSZWY8T3B0aW9ucz4sIHR5cGU6IERhdGFzb3VyY2VTZXJ2aWNlLCBzZXJ2aWNlOiBDdWJlU2VydmljZSwgc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICByb3V0ZXI6IFJvdXRlckltcGwsXHJcbiAgICBzYjogUHJvbXB0U2VydmljZSxcclxuICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBkaXI6IERpcmVjdGlvbmFsaXR5LCB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHtcclxuICAgIHN1cGVyKHJlcG9ydFJlZiwgdHlwZSwgc2VydmljZSwgc2Vzc2lvbiwgcm91dGVyLFxyXG4gICAgICBzYiwgZGlyLCB0cmFuc2xhdGUpO1xyXG4gICAgdGhpcy5fc2Vzc2lvbi50aGVtZUNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKHQgPT4ge1xyXG4gICAgICB0aGlzLmNoYXJ0U2V0dGluZ3MudGhlbWUgPSB0LmRhcmsgPyAnTWF0ZXJpYWxEYXJrJyA6ICdNYXRlcmlhbCc7XHJcbiAgICAgIHRoaXMuY2hhcnRTZXR0aW5ncy5wYWxldHRlcyA9IHRoaXMuX3BhbGV0dGVzKCk7XHJcbiAgICAgIHRoaXMuX2RyYXcoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fZGVmYXVsdHMoKTtcclxuICB9XHJcbiAgLyoqIHNldCBkZWZhdWx0cyAqL1xyXG4gIHByaXZhdGUgX2RlZmF1bHRzKCkge1xyXG4gICAgY29uc3QgeyBjaGFydFR5cGUgfSA9IHRoaXMuX3JlcG9ydFJlZi5vcHRpb25zO1xyXG4gICAgY29uc3QgbGluZSA9IGNoYXJ0VHlwZSA9PT0gJ0xpbmUnIHx8IGNoYXJ0VHlwZSA9PT0gJ1NwbGluZSc7XHJcbiAgICB0aGlzLmNoYXJ0U2V0dGluZ3MgPSB7XHJcbiAgICAgIHBvaW50Q2xpY2s6IHRoaXMucG9pbnRDbGljay5iaW5kKHRoaXMpLFxyXG4gICAgICB6b29tU2V0dGluZ3M6IHtcclxuICAgICAgICB0b29sYmFySXRlbXM6IFtdLFxyXG4gICAgICAgIG1vZGU6ICdYWScsXHJcbiAgICAgICAgZW5hYmxlTW91c2VXaGVlbFpvb21pbmc6IHRydWUsXHJcbiAgICAgICAgZW5hYmxlUGluY2hab29taW5nOiB0cnVlLFxyXG4gICAgICAgIGVuYWJsZVNlbGVjdGlvblpvb21pbmc6IGZhbHNlXHJcbiAgICAgIH0sXHJcbiAgICAgIGNyb3NzaGFpcjoge1xyXG4gICAgICAgIGVuYWJsZTogbGluZSxcclxuICAgICAgICBsaW5lOiB7XHJcbiAgICAgICAgICB3aWR0aDogMVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgY2hhcnRTZXJpZXM6IHtcclxuICAgICAgICBwYWxldHRlczogdGhpcy5fcGFsZXR0ZXMoKSxcclxuICAgICAgICB0eXBlOiBjaGFydFR5cGUgfHwgJ0NvbHVtbicsXHJcbiAgICAgICAgLy93aWR0aDogMixcclxuICAgICAgICBib3JkZXI6IHsgd2lkdGg6IDAgfSxcclxuICAgICAgICBtYXJrZXI6IHsgaGVpZ2h0OiAxMCwgd2lkdGg6IDEwLCBzaGFwZTogJ1BlbnRhZ29uJywgdmlzaWJsZTogbGluZSB9LFxyXG4gICAgICB9LFxyXG4gICAgICBlbmFibGVFeHBvcnQ6IHRydWUsXHJcbiAgICAgIGNoYXJ0QXJlYToge1xyXG4gICAgICAgIGJvcmRlcjogeyB3aWR0aDogMCB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHRoZW1lOiB0aGlzLl9zZXNzaW9uLnRoZW1lLmRhcmsgPyAnTWF0ZXJpYWxEYXJrJyA6ICdNYXRlcmlhbCcsXHJcbiAgICAgIGJhY2tncm91bmQ6ICd0cmFuc3BhcmVudCcsXHJcbiAgICAgIHByaW1hcnlYQXhpczoge1xyXG4gICAgICAgIHRpdGxlU3R5bGU6IHtcclxuICAgICAgICAgIGZvbnRGYW1pbHk6IEZPTlRfRkFNSUxZXHJcbiAgICAgICAgfSxcclxuICAgICAgICBsYWJlbFN0eWxlOiB7XHJcbiAgICAgICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgYm9yZGVyOiB7IHdpZHRoOiAwIH0sXHJcbiAgICAgIGxlZ2VuZFNldHRpbmdzOiB7XHJcbiAgICAgICAgdGV4dFN0eWxlOiB7XHJcbiAgICAgICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgaXNJbnZlcnNlZDogdGhpcy5fc2Vzc2lvbi5pbnZlcnNlXHJcbiAgICAgIH0sXHJcbiAgICAgIHRvb2x0aXA6IHtcclxuICAgICAgICB0ZXh0U3R5bGU6IHtcclxuICAgICAgICAgIGZvbnRGYW1pbHk6IEZPTlRfRkFNSUxZXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB0aXRsZVN0eWxlOiB7XHJcbiAgICAgICAgZm9udEZhbWlseTogRk9OVF9GQU1JTFlcclxuICAgICAgfSxcclxuICAgICAgc3ViVGl0bGVTdHlsZToge1xyXG4gICAgICAgIGZvbnRGYW1pbHk6IEZPTlRfRkFNSUxZXHJcbiAgICAgIH0sXHJcbiAgICAgIHByaW1hcnlZQXhpczoge1xyXG4gICAgICAgIHRpdGxlU3R5bGU6IHtcclxuICAgICAgICAgIGZvbnRGYW1pbHk6IEZPTlRfRkFNSUxZXHJcbiAgICAgICAgfSxcclxuICAgICAgICBsYWJlbFN0eWxlOiB7XHJcbiAgICAgICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY3Jvc3NoYWlyVG9vbHRpcDogeyBlbmFibGU6IGxpbmUgfVxyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgY29uc3QgZm9ybWF0U2V0dGluZ3M6IEZvcm1hdFNldHRpbmdzTW9kZWxbXSA9IFt7XHJcbiAgICAgIG5hbWU6ICd2YWx1ZScsIGZvcm1hdDogdGhpcy5jdXJyZW5jeUNvZGUgPyAnQycgOiAnTicsXHJcbiAgICAgIG1heGltdW1GcmFjdGlvbkRpZ2l0czogdGhpcy5fZnJhY3Rpb25EaWdpdHMsXHJcbiAgICAgIC8vbWluaW11bUZyYWN0aW9uRGlnaXRzOiB0aGlzLl9mcmFjdGlvbkRpZ2l0cyxcclxuICAgICAgY3VycmVuY3k6IHRoaXMuY3VycmVuY3lDb2RlXHJcbiAgICB9XTtcclxuICAgIGNvbnN0IHJvd3MgPSB0aGlzLl9zZXJpZXMubWFwKGEgPT4ge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIG5hbWU6IGEubmFtZSxcclxuICAgICAgICBjYXB0aW9uOiBhLnRpdGxlXHJcbiAgICAgIH0gYXMgRmllbGRPcHRpb25zTW9kZWw7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZGF0YVNvdXJjZVNldHRpbmdzID0ge1xyXG4gICAgICBjb2x1bW5zOiBbe1xyXG4gICAgICAgIG5hbWU6ICd0eXBlJ1xyXG4gICAgICB9XSxcclxuICAgICAgcm93cyxcclxuICAgICAgdmFsdWVzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbmFtZTogJ3ZhbHVlJyxcclxuICAgICAgICAgIGNhcHRpb246IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1ZhbHVlJylcclxuICAgICAgICB9XHJcbiAgICAgIF0sXHJcbiAgICAgIGVuYWJsZVNvcnRpbmc6IGZhbHNlLFxyXG4gICAgICBzb3J0U2V0dGluZ3M6IHRoaXMuX3Nlcmllcy5tYXAocyA9PiB7IHJldHVybiB7IG5hbWU6IGBfJHtzLm5hbWV9YCB9IGFzIFNvcnRNb2RlbCB9KSxcclxuICAgICAgZXhwYW5kQWxsOiB0aGlzLl9jb2xsYXBzZSB8fCBmYWxzZSxcclxuICAgICAgZm9ybWF0U2V0dGluZ3MsXHJcbiAgICAgIGRhdGFTb3VyY2U6IFtdXHJcbiAgICB9O1xyXG4gIH1cclxuICBwcml2YXRlIF9wYWxldHRlcygpOiBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gW3RoaXMuX3Nlc3Npb24uZ2V0QWNjZW50KCldLlxyXG4gICAgICBjb25jYXQodGhpcy5faW5kaWNlcy5tYXAoKF8sIGkpID0+XHJcbiAgICAgICAgdGhpcy5fc2Vzc2lvbi5nZXRQcmltZXJ5KDMwMCArIDMwMCAqIGkgYXMgTWF0ZXJpYWxNb2RlKSkpO1xyXG4gIH1cclxuXHJcbiAgZGF0YUJvdW5kKGFyZ3M6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5waXZvdC5jaGFydC5wb2ludENsaWNrID0gdGhpcy5wb2ludENsaWNrLmJpbmQodGhpcyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSByZXN1bHRcclxuICAgKi9cclxuICBvbkRhdGEocmVzdWx0OiBJdGVtW10pIHtcclxuICAgIHRoaXMuX2RlY29yYXRlKHJlc3VsdCkuc3Vic2NyaWJlKHIgPT4ge1xyXG4gICAgICB0aGlzLl9kYXRhID0gdGhpcy5kYXRhU291cmNlU2V0dGluZ3MuZGF0YVNvdXJjZSA9IHIgYXMgYW55O1xyXG4gICAgICB0aGlzLl9kcmF3KCk7XHJcbiAgICB9LCAoKSA9PiB0aGlzLl9zYi5lcnJvcigpKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZHJhdygpIHtcclxuICAgIHRoaXMucGl2b3QgJiYgdGhpcy5waXZvdC5kZXN0cm95KCk7XHJcbiAgICB0aGlzLnBpdm90ID0gbmV3IFBpdm90Vmlldyh7XHJcbiAgICAgIHdpZHRoOiB0aGlzLndpZHRoLFxyXG4gICAgICBoZWlnaHQ6ICcxMDAlJyxcclxuICAgICAgZW5hYmxlUnRsOiB0aGlzLmVuYWJsZVJ0bCxcclxuICAgICAgZGF0YUJvdW5kOiB0aGlzLmRhdGFCb3VuZC5iaW5kKHRoaXMpLFxyXG4gICAgICBjaGFydFNldHRpbmdzOiB0aGlzLmNoYXJ0U2V0dGluZ3MsXHJcbiAgICAgIGRpc3BsYXlPcHRpb246IHRoaXMuZGlzcGxheU9wdGlvbixcclxuICAgICAgZGF0YVNvdXJjZVNldHRpbmdzOiB0aGlzLmRhdGFTb3VyY2VTZXR0aW5ncyxcclxuICAgICAgc3Bpbm5lclRlbXBsYXRlOiAnJyxcclxuICAgICAgYWxsb3dDb25kaXRpb25hbEZvcm1hdHRpbmc6IHRydWUsXHJcbiAgICAgIGFsbG93RXhjZWxFeHBvcnQ6IHRydWUsXHJcbiAgICAgIGN1cnJlbmN5Q29kZTogdGhpcy5jdXJyZW5jeUNvZGUsXHJcbiAgICB9LCB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xyXG4gIH1cclxuICBvblJlc2l6ZSgpIHtcclxuICAgIGlmICh0aGlzLnBpdm90ICYmIHRoaXMucGl2b3QuY2hhcnQpIHtcclxuICAgICAgLy90aGlzLnBpdm90LmNoYXJ0LmhlaWdodCA9IHRoaXMuaGVpZ2h0O1xyXG4gICAgICB0aGlzLnBpdm90LmNoYXJ0LndpZHRoID0gdGhpcy53aWR0aDtcclxuICAgICAgKHRoaXMucGl2b3QuY2hhcnQgYXMgQ2hhcnQpLmNoYXJ0UmVzaXplKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9uRXhwb3J0KG5hbWU6IHN0cmluZykge1xyXG4gICAgLy90aGlzLnBpdm90LmV4Y2VsRXhwb3J0KHsgZmlsZU5hbWU6IGAke25hbWV9Lnhsc3hgLCBoaWVyYXJjaHlFeHBvcnRNb2RlOiAnQWxsJyB9KTtcclxuICAgIGNvbnN0IHdzID0gWExTWC51dGlscy5qc29uX3RvX3NoZWV0KHRoaXMuX2RhdGEpO1xyXG4gICAgY29uc3Qgd2IgPSBYTFNYLnV0aWxzLmJvb2tfbmV3KCk7XHJcbiAgICBjb25zdCBzbmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1NoZWV0TicsIDEpO1xyXG4gICAgd2IuU2hlZXRzW3NuYW1lXSA9IHdzO1xyXG4gICAgd2IuU2hlZXROYW1lcy5wdXNoKHNuYW1lKTtcclxuICAgIFhMU1gud3JpdGVGaWxlKHdiLCBgJHtuYW1lfS54bHN4YCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGFkZHMgZGF0YSBzb3VyY2UgZGVzY3JpcHRpb24gdG8gaXRlbSBrZXlzLCBhbmQgbm9ybWFsaXplcyBpbmRpY2VzLlxyXG4gICAqIEBwYXJhbSByZXN1bHRcclxuICAgKi9cclxuICBwcml2YXRlIF9kZWNvcmF0ZShyZXN1bHQ6IEl0ZW1bXSk6IE9ic2VydmFibGU8e31bXT4ge1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKG9ic2VydmUgPT4ge1xyXG4gICAgICBjb25zdCBvYnNlcnZhYmxlczogT2JzZXJ2YWJsZTxhbnk+W10gPSBbXTtcclxuICAgICAgcmVzdWx0LmZvckVhY2gocm93ID0+IHtcclxuICAgICAgICB0aGlzLl9zZXJpZXMuZm9yRWFjaChhID0+IHtcclxuICAgICAgICAgIGNvbnN0IHZhbCA9IHJvd1thLm5hbWVdIGFzIHN0cmluZztcclxuICAgICAgICAgIGNvbnN0IG9ic2VydmFibGUgPSB0aGlzLl90eXBlLmdldChhLmRhdGFUeXBlLCB2YWwpLlxyXG4gICAgICAgICAgICBwaXBlKHRhcCgodjogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAgICAgcm93W2BfJHthLm5hbWV9YF0gPSB2YWw7XHJcbiAgICAgICAgICAgICAgcm93W2EubmFtZV0gPSB2IHx8IHZhbDtcclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgb2JzZXJ2YWJsZXMucHVzaChvYnNlcnZhYmxlKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICAgIGlmIChvYnNlcnZhYmxlcy5sZW5ndGgpXHJcbiAgICAgICAgZm9ya0pvaW4ob2JzZXJ2YWJsZXMpLnBpcGUobWFwKCgpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGRhdGE6IHt9W10gPSBbXTtcclxuICAgICAgICAgIHJlc3VsdC5mb3JFYWNoKGJhc2VSb3cgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGJhc2VSb3cudXNhZ2U7XHJcbiAgICAgICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSAwKSB7XHJcbiAgICAgICAgICAgICAgY29uc3Qgcm93ID0ge1xyXG4gICAgICAgICAgICAgICAgdHlwZTogdGhpcy5feVRpdGxlLFxyXG4gICAgICAgICAgICAgICAgdmFsdWVcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIHRoaXMuX3Nlcmllcy5mb3JFYWNoKGEgPT4ge1xyXG4gICAgICAgICAgICAgICAgcm93W2BfJHthLm5hbWV9YF0gPSBiYXNlUm93W2BfJHthLm5hbWV9YF07XHJcbiAgICAgICAgICAgICAgICByb3dbYS5uYW1lXSA9IGJhc2VSb3dbYS5uYW1lXTtcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICBkYXRhLnB1c2gocm93KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLl9pbmRpY2VzLmZvckVhY2goaSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBiYXNlUm93W2kubmFtZV07XHJcbiAgICAgICAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IDApIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJvdyA9IHsgdHlwZTogaS50aXRsZSwgdmFsdWUgfTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3Nlcmllcy5mb3JFYWNoKGEgPT4ge1xyXG4gICAgICAgICAgICAgICAgICByb3dbYF8ke2EubmFtZX1gXSA9IGJhc2VSb3dbYF8ke2EubmFtZX1gXTtcclxuICAgICAgICAgICAgICAgICAgcm93W2EubmFtZV0gPSBiYXNlUm93W2EubmFtZV07XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGRhdGEucHVzaChyb3cpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHJldHVybiBkYXRhO1xyXG4gICAgICAgIH0pKS5cclxuICAgICAgICAgIHN1YnNjcmliZShyID0+XHJcbiAgICAgICAgICAgIG9ic2VydmUubmV4dChyKSwgZSA9PiBvYnNlcnZlLmVycm9yKGUpKTtcclxuICAgICAgZWxzZVxyXG4gICAgICAgIG9ic2VydmUubmV4dChbXSk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGVcclxuICAgKi9cclxuICBwb2ludENsaWNrKGU6IElQb2ludEV2ZW50QXJncykge1xyXG4gICAgY29uc3QgeyBwb2ludDogeyB4LCB5VmFsdWUgfSwgc2VyaWVzOiB7IG5hbWU6IHRpdGxlIH0gfSA9IGU7XHJcbiAgICBpZiAoeVZhbHVlID09PSAwKSB7XHJcbiAgICAgIGUuY2FuY2VsID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgYXhlczogeyBbYXhpczogc3RyaW5nXTogYW55OyB9ID0gdGhpcy5fYXhlcyh4IGFzIHN0cmluZyk7XHJcbiAgICBzdXBlci5icm93c2UoYXhlcywgdGl0bGUgPT09IHRoaXMuX3lUaXRsZSA/IG51bGwgOiB0aGlzLl9pbmRleE5hbWUodGl0bGUpKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogcmV2ZXJzZSBlbmdpbmVlcmluZyBheGVzIGZyb20gc2VyaWVzIGxhYmVsXHJcbiAgICogQHBhcmFtIGxhYmVsXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfYXhlcyhsYWJlbDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBheGVzOiB7IFtheGlzOiBzdHJpbmddOiAoc3RyaW5nIHwgbnVtYmVyKTsgfSA9IHt9O1xyXG4gICAgbGFiZWwuc3BsaXQoJyAtICcpLmZvckVhY2goKHgsIGkpID0+IHtcclxuICAgICAgY29uc3QgY29sdW1uID0gdGhpcy5kYXRhU291cmNlU2V0dGluZ3Mucm93c1tpXS5uYW1lLFxyXG4gICAgICAgIGVsZW1lbnQgPSB0aGlzLl9kYXRhLmZpbmQoZSA9PiBlW2NvbHVtbl0gPT09IHgpO1xyXG4gICAgICBheGVzW2NvbHVtbl0gPSBlbGVtZW50ID8gZWxlbWVudFtgXyR7Y29sdW1ufWBdIDogeDtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGF4ZXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiByZXZlcnNlIGVuZ2luZWVyaW5nIGluZGV4IG5hbWUgZnJvbSB0aXRsZVxyXG4gICAqIEBwYXJhbSB0aXRsZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2luZGV4TmFtZSh0aXRsZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5faW5kaWNlcy5maW5kKGkgPT4gaS50aXRsZSA9PT0gdGl0bGUpO1xyXG4gICAgcmV0dXJuIGluZGV4Lm5hbWU7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5waXZvdCAmJiB0aGlzLnBpdm90LmRlc3Ryb3koKTtcclxuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XHJcbiAgfVxyXG59XHJcbmludGVyZmFjZSBPcHRpb25zIGV4dGVuZHMgVXNhZ2VPcHRpb25zIHtcclxuICBjaGFydFR5cGU/OiBDaGFydFNlcmllc1R5cGU7XHJcbn1cclxuIl19
360
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNhZ2UtY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9yZXBvcnRzL2N1YmUvdXNhZ2UtY2hhcnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUF5QixNQUFNLGVBQWUsQ0FBQztBQUVqRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1QyxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQXVDLFNBQVMsRUFBZSxNQUFNLG1DQUFtQyxDQUFDO0FBSWhILE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQU0vQyxPQUFPLEVBQXNCLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUduRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFaEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBS3hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7O0FBRTlGOztLQUVLO0lBWUcsbUJBQW1CLFNBQW5CLG1CQUFvQixTQUFRLGVBQXdCO0lBUTFELE9BQU87SUFDUCxZQUFZLFNBQTZCLEVBQUUsSUFBdUIsRUFBRSxPQUFvQixFQUFFLE9BQXVCLEVBQy9HLE1BQWtCLEVBQ2xCLEVBQWlCLEVBQ1QsV0FBdUIsRUFDL0IsR0FBbUIsRUFBRSxTQUEyQjtRQUNoRCxLQUFLLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFDN0MsRUFBRSxFQUFFLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUhk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LENBQUM7SUFDZCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssVUFBVSxDQUFDLEtBQWE7UUFDOUIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDO1FBQ3pELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQztJQUNwQixDQUFDO0lBQ0QsV0FBVztRQUNULElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNuQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdEIsQ0FBQztDQUNGLENBQUE7Z0hBdlZPLG1CQUFtQjtvR0FBbkIsbUJBQW1CLCtIQVZmLEVBQUU7QUFVTixtQkFBbUI7SUFKMUIsTUFBTSxDQUFDO1FBQ04sUUFBUSxFQUFFLG9CQUFvQjtLQUMvQixDQUFDO0dBRU0sbUJBQW1CLENBdVYxQjtTQXZWTyxtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFYMUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsRUFBRTtvQkFDWixJQUFJLEVBQUU7d0JBQ0osTUFBTSxFQUFFLElBQUk7d0JBQ1osT0FBTyxFQUFFLEtBQUs7cUJBQ2Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IERpcmVjdGlvbmFsaXR5IH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9iaWRpXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIGZvcmtKb2luIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgdGFwLCB0YWtlVW50aWwsIG1hcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBDaGFydFNlcmllc1R5cGUsIERpc3BsYXlPcHRpb25Nb2RlbCwgUGl2b3RWaWV3LCBFeGNlbEV4cG9ydCB9IGZyb20gXCJAc3luY2Z1c2lvbi9lajItYW5ndWxhci1waXZvdHZpZXdcIjtcclxuaW1wb3J0IHsgRGF0YVNvdXJjZVNldHRpbmdzTW9kZWwsIFNvcnRNb2RlbCwgRmllbGRPcHRpb25zTW9kZWwsIEZvcm1hdFNldHRpbmdzTW9kZWwgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLXBpdm90dmlldy9zcmMvcGl2b3R2aWV3L21vZGVsL2RhdGFzb3VyY2VzZXR0aW5ncy1tb2RlbFwiO1xyXG5pbXBvcnQgeyBDaGFydFNldHRpbmdzTW9kZWwgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItcGl2b3R2aWV3L3NyYy9waXZvdHZpZXcvbW9kZWwvY2hhcnRzZXR0aW5ncy1tb2RlbCc7XHJcbmltcG9ydCB7IENoYXJ0LCBJUG9pbnRFdmVudEFyZ3MgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItY2hhcnRzXCI7XHJcbmltcG9ydCB7IEJpekRvYyB9IGZyb20gXCIuLi8uLi9jb3JlL2RlY29yYXRvcnNcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERhdGFzb3VyY2VTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvZGF0YXNvdXJjZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEN1YmVTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2N1YmUvY3ViZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFByb21wdFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9wcm9tcHQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBJdGVtLCBVc2FnZU9wdGlvbnMsIFVzYWdlUmVwb3J0QmFzZSB9IGZyb20gXCIuL3VzYWdlLWJhc2VcIjtcclxuaW1wb3J0IHsgUmVwb3J0UmVmIH0gZnJvbSBcIi4uL3JlcG9ydC1yZWZcIjtcclxuaW1wb3J0IHsgTWF0ZXJpYWxNb2RlIH0gZnJvbSBcIi4uLy4uL2NvcmUvZnVuY3Rpb25zXCI7XHJcbmltcG9ydCB7IEZPTlRfRkFNSUxZIH0gZnJvbSBcIi4uLy4uL2NvcmUvY29sb3JzXCI7XHJcbmltcG9ydCB7IFJvdXRlckltcGwgfSBmcm9tIFwiLi4vLi4vY29yZS9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgV29ya2Jvb2sgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItZXhjZWwtZXhwb3J0JztcclxuaW1wb3J0IHsgV29ya3NoZWV0IH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWV4Y2VsLWV4cG9ydC9zcmMvd29ya3NoZWV0JztcclxuaW1wb3J0IHsgUm93IH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWV4Y2VsLWV4cG9ydC9zcmMvcm93JztcclxuaW1wb3J0IHsgQ2VsbCB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1leGNlbC1leHBvcnQvc3JjL2NlbGwnO1xyXG5pbXBvcnQgeyBDb2x1bW4gfSBmcm9tICdAc3luY2Z1c2lvbi9lajItZXhjZWwtZXhwb3J0L3NyYy9jb2x1bW4nO1xyXG5pbXBvcnQgeyBnZXRDdXJyZW5jeVN5bWJvbCwgZ2V0TG9jYWxlTnVtYmVyRm9ybWF0LCBOdW1iZXJGb3JtYXRTdHlsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuXHJcbi8qKlxyXG4gKiBjdWJlIHVzYWdlXHJcbiAqICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlOiAnJyxcclxuICBob3N0OiB7XHJcbiAgICAnW2lkXSc6ICdpZCcsXHJcbiAgICAnW2Rpcl0nOiAnZGlyJ1xyXG4gIH1cclxufSlcclxuQEJpekRvYyh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtY2hhcnQtdXNhZ2UnXHJcbn0pXHJcbmV4cG9ydFxyXG4gIGNsYXNzIFVzYWdlQ2hhcnRDb21wb25lbnQgZXh0ZW5kcyBVc2FnZVJlcG9ydEJhc2U8T3B0aW9ucz4gaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIHJlYWRvbmx5IGRpciA9IHRoaXMuX3Nlc3Npb24uZGlyZWN0aW9uO1xyXG4gIHBpdm90OiBQaXZvdFZpZXc7XHJcbiAgZGF0YVNvdXJjZVNldHRpbmdzOiBEYXRhU291cmNlU2V0dGluZ3NNb2RlbDtcclxuICByZWFkb25seSBkaXNwbGF5T3B0aW9uOiBEaXNwbGF5T3B0aW9uTW9kZWwgPSB7XHJcbiAgICB2aWV3OiAnQ2hhcnQnXHJcbiAgfTtcclxuICBjaGFydFNldHRpbmdzOiBDaGFydFNldHRpbmdzTW9kZWw7XHJcbiAgLy8gY3RvclxyXG4gIGNvbnN0cnVjdG9yKHJlcG9ydFJlZjogUmVwb3J0UmVmPE9wdGlvbnM+LCB0eXBlOiBEYXRhc291cmNlU2VydmljZSwgc2VydmljZTogQ3ViZVNlcnZpY2UsIHNlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcm91dGVyOiBSb3V0ZXJJbXBsLFxyXG4gICAgc2I6IFByb21wdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgZGlyOiBEaXJlY3Rpb25hbGl0eSwgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7XHJcbiAgICBzdXBlcihyZXBvcnRSZWYsIHR5cGUsIHNlcnZpY2UsIHNlc3Npb24sIHJvdXRlcixcclxuICAgICAgc2IsIGRpciwgdHJhbnNsYXRlKTtcclxuICAgIHRoaXMuX3Nlc3Npb24udGhlbWVDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSh0ID0+IHtcclxuICAgICAgdGhpcy5jaGFydFNldHRpbmdzLnRoZW1lID0gdC5kYXJrID8gJ01hdGVyaWFsRGFyaycgOiAnTWF0ZXJpYWwnO1xyXG4gICAgICB0aGlzLmNoYXJ0U2V0dGluZ3MucGFsZXR0ZXMgPSB0aGlzLl9wYWxldHRlcygpO1xyXG4gICAgICB0aGlzLl9kcmF3KCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX2RlZmF1bHRzKCk7XHJcbiAgfVxyXG4gIC8qKiBzZXQgZGVmYXVsdHMgKi9cclxuICBwcml2YXRlIF9kZWZhdWx0cygpIHtcclxuICAgIGNvbnN0IHsgY2hhcnRUeXBlIH0gPSB0aGlzLl9yZXBvcnRSZWYub3B0aW9ucztcclxuICAgIGNvbnN0IGxpbmUgPSBjaGFydFR5cGUgPT09ICdMaW5lJyB8fCBjaGFydFR5cGUgPT09ICdTcGxpbmUnO1xyXG4gICAgdGhpcy5jaGFydFNldHRpbmdzID0ge1xyXG4gICAgICBwb2ludENsaWNrOiB0aGlzLnBvaW50Q2xpY2suYmluZCh0aGlzKSxcclxuICAgICAgem9vbVNldHRpbmdzOiB7XHJcbiAgICAgICAgdG9vbGJhckl0ZW1zOiBbXSxcclxuICAgICAgICBtb2RlOiAnWFknLFxyXG4gICAgICAgIGVuYWJsZU1vdXNlV2hlZWxab29taW5nOiB0cnVlLFxyXG4gICAgICAgIGVuYWJsZVBpbmNoWm9vbWluZzogdHJ1ZSxcclxuICAgICAgICBlbmFibGVTZWxlY3Rpb25ab29taW5nOiBmYWxzZVxyXG4gICAgICB9LFxyXG4gICAgICBjcm9zc2hhaXI6IHtcclxuICAgICAgICBlbmFibGU6IGxpbmUsXHJcbiAgICAgICAgbGluZToge1xyXG4gICAgICAgICAgd2lkdGg6IDFcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGNoYXJ0U2VyaWVzOiB7XHJcbiAgICAgICAgcGFsZXR0ZXM6IHRoaXMuX3BhbGV0dGVzKCksXHJcbiAgICAgICAgdHlwZTogY2hhcnRUeXBlIHx8ICdDb2x1bW4nLFxyXG4gICAgICAgIC8vd2lkdGg6IDIsXHJcbiAgICAgICAgYm9yZGVyOiB7IHdpZHRoOiAwIH0sXHJcbiAgICAgICAgbWFya2VyOiB7IGhlaWdodDogMTAsIHdpZHRoOiAxMCwgc2hhcGU6ICdQZW50YWdvbicsIHZpc2libGU6IGxpbmUgfSxcclxuICAgICAgfSxcclxuICAgICAgZW5hYmxlRXhwb3J0OiB0cnVlLFxyXG4gICAgICBjaGFydEFyZWE6IHtcclxuICAgICAgICBib3JkZXI6IHsgd2lkdGg6IDAgfVxyXG4gICAgICB9LFxyXG4gICAgICB0aGVtZTogdGhpcy5fc2Vzc2lvbi50aGVtZS5kYXJrID8gJ01hdGVyaWFsRGFyaycgOiAnTWF0ZXJpYWwnLFxyXG4gICAgICBiYWNrZ3JvdW5kOiAndHJhbnNwYXJlbnQnLFxyXG4gICAgICBwcmltYXJ5WEF4aXM6IHtcclxuICAgICAgICB0aXRsZVN0eWxlOiB7XHJcbiAgICAgICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbGFiZWxTdHlsZToge1xyXG4gICAgICAgICAgZm9udEZhbWlseTogRk9OVF9GQU1JTFlcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGJvcmRlcjogeyB3aWR0aDogMCB9LFxyXG4gICAgICBsZWdlbmRTZXR0aW5nczoge1xyXG4gICAgICAgIHRleHRTdHlsZToge1xyXG4gICAgICAgICAgZm9udEZhbWlseTogRk9OVF9GQU1JTFlcclxuICAgICAgICB9LFxyXG4gICAgICAgIGlzSW52ZXJzZWQ6IHRoaXMuX3Nlc3Npb24uaW52ZXJzZVxyXG4gICAgICB9LFxyXG4gICAgICB0b29sdGlwOiB7XHJcbiAgICAgICAgdGV4dFN0eWxlOiB7XHJcbiAgICAgICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgdGl0bGVTdHlsZToge1xyXG4gICAgICAgIGZvbnRGYW1pbHk6IEZPTlRfRkFNSUxZXHJcbiAgICAgIH0sXHJcbiAgICAgIHN1YlRpdGxlU3R5bGU6IHtcclxuICAgICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgICB9LFxyXG4gICAgICBwcmltYXJ5WUF4aXM6IHtcclxuICAgICAgICB0aXRsZVN0eWxlOiB7XHJcbiAgICAgICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbGFiZWxTdHlsZToge1xyXG4gICAgICAgICAgZm9udEZhbWlseTogRk9OVF9GQU1JTFlcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNyb3NzaGFpclRvb2x0aXA6IHsgZW5hYmxlOiBsaW5lIH1cclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIGNvbnN0IGZvcm1hdFNldHRpbmdzOiBGb3JtYXRTZXR0aW5nc01vZGVsW10gPSBbe1xyXG4gICAgICBuYW1lOiAndmFsdWUnLCBmb3JtYXQ6IHRoaXMuY3VycmVuY3lDb2RlID8gJ0MnIDogJ04nLFxyXG4gICAgICBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IHRoaXMuX2ZyYWN0aW9uRGlnaXRzLFxyXG4gICAgICAvL21pbmltdW1GcmFjdGlvbkRpZ2l0czogdGhpcy5fZnJhY3Rpb25EaWdpdHMsXHJcbiAgICAgIGN1cnJlbmN5OiB0aGlzLmN1cnJlbmN5Q29kZVxyXG4gICAgfV07XHJcbiAgICBjb25zdCByb3dzID0gdGhpcy5fc2VyaWVzLm1hcChhID0+IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBuYW1lOiBhLm5hbWUsXHJcbiAgICAgICAgY2FwdGlvbjogYS50aXRsZVxyXG4gICAgICB9IGFzIEZpZWxkT3B0aW9uc01vZGVsO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRhdGFTb3VyY2VTZXR0aW5ncyA9IHtcclxuICAgICAgY29sdW1uczogW3tcclxuICAgICAgICBuYW1lOiAndHlwZSdcclxuICAgICAgfV0sXHJcbiAgICAgIHJvd3MsXHJcbiAgICAgIHZhbHVlczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIG5hbWU6ICd2YWx1ZScsXHJcbiAgICAgICAgICBjYXB0aW9uOiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdWYWx1ZScpXHJcbiAgICAgICAgfVxyXG4gICAgICBdLFxyXG4gICAgICBlbmFibGVTb3J0aW5nOiBmYWxzZSxcclxuICAgICAgc29ydFNldHRpbmdzOiB0aGlzLl9zZXJpZXMubWFwKHMgPT4geyByZXR1cm4geyBuYW1lOiBgXyR7cy5uYW1lfWAgfSBhcyBTb3J0TW9kZWwgfSksXHJcbiAgICAgIGV4cGFuZEFsbDogdGhpcy5fY29sbGFwc2UgfHwgZmFsc2UsXHJcbiAgICAgIGZvcm1hdFNldHRpbmdzLFxyXG4gICAgICBkYXRhU291cmNlOiBbXVxyXG4gICAgfTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfcGFsZXR0ZXMoKTogc3RyaW5nW10ge1xyXG4gICAgcmV0dXJuIFt0aGlzLl9zZXNzaW9uLmdldEFjY2VudCgpXS5cclxuICAgICAgY29uY2F0KHRoaXMuX2luZGljZXMubWFwKChfLCBpKSA9PlxyXG4gICAgICAgIHRoaXMuX3Nlc3Npb24uZ2V0UHJpbWVyeSgzMDAgKyAzMDAgKiBpIGFzIE1hdGVyaWFsTW9kZSkpKTtcclxuICB9XHJcblxyXG4gIGRhdGFCb3VuZChhcmdzOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMucGl2b3QuY2hhcnQucG9pbnRDbGljayA9IHRoaXMucG9pbnRDbGljay5iaW5kKHRoaXMpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gcmVzdWx0XHJcbiAgICovXHJcbiAgb25EYXRhKHJlc3VsdDogSXRlbVtdKSB7XHJcbiAgICB0aGlzLl9kZWNvcmF0ZShyZXN1bHQpLnN1YnNjcmliZShyID0+IHtcclxuICAgICAgdGhpcy5fZGF0YSA9IHRoaXMuZGF0YVNvdXJjZVNldHRpbmdzLmRhdGFTb3VyY2UgPSByIGFzIGFueTtcclxuICAgICAgdGhpcy5fZHJhdygpO1xyXG4gICAgfSwgKCkgPT4gdGhpcy5fc2IuZXJyb3IoKSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2RyYXcoKSB7XHJcbiAgICB0aGlzLnBpdm90ICYmIHRoaXMucGl2b3QuZGVzdHJveSgpO1xyXG4gICAgdGhpcy5waXZvdCA9IG5ldyBQaXZvdFZpZXcoe1xyXG4gICAgICB3aWR0aDogdGhpcy53aWR0aCxcclxuICAgICAgaGVpZ2h0OiAnMTAwJScsXHJcbiAgICAgIGVuYWJsZVJ0bDogdGhpcy5lbmFibGVSdGwsXHJcbiAgICAgIGRhdGFCb3VuZDogdGhpcy5kYXRhQm91bmQuYmluZCh0aGlzKSxcclxuICAgICAgY2hhcnRTZXR0aW5nczogdGhpcy5jaGFydFNldHRpbmdzLFxyXG4gICAgICBkaXNwbGF5T3B0aW9uOiB0aGlzLmRpc3BsYXlPcHRpb24sXHJcbiAgICAgIGRhdGFTb3VyY2VTZXR0aW5nczogdGhpcy5kYXRhU291cmNlU2V0dGluZ3MsXHJcbiAgICAgIHNwaW5uZXJUZW1wbGF0ZTogJycsXHJcbiAgICAgIGFsbG93Q29uZGl0aW9uYWxGb3JtYXR0aW5nOiB0cnVlLFxyXG4gICAgICBhbGxvd0V4Y2VsRXhwb3J0OiB0cnVlLFxyXG4gICAgICBjdXJyZW5jeUNvZGU6IHRoaXMuY3VycmVuY3lDb2RlLFxyXG4gICAgfSwgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICB9XHJcbiAgb25SZXNpemUoKSB7XHJcbiAgICBpZiAodGhpcy5waXZvdCAmJiB0aGlzLnBpdm90LmNoYXJ0KSB7XHJcbiAgICAgIC8vdGhpcy5waXZvdC5jaGFydC5oZWlnaHQgPSB0aGlzLmhlaWdodDtcclxuICAgICAgdGhpcy5waXZvdC5jaGFydC53aWR0aCA9IHRoaXMud2lkdGg7XHJcbiAgICAgICh0aGlzLnBpdm90LmNoYXJ0IGFzIENoYXJ0KS5jaGFydFJlc2l6ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBvbkV4cG9ydCh0aXRsZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBudW1iZXJGb3JtYXQgPSB0aGlzLl9jdWJlLmN1cnJlbmN5Q29kZSA/XHJcbiAgICAgIGdldEN1cnJlbmN5U3ltYm9sKHRoaXMuX2N1YmUuY3VycmVuY3lDb2RlLCAnbmFycm93JykgK1xyXG4gICAgICBnZXRMb2NhbGVOdW1iZXJGb3JtYXQodGhpcy5fc2Vzc2lvbi5sYW5ndWFnZSwgTnVtYmVyRm9ybWF0U3R5bGUuQ3VycmVuY3kpXHJcbiAgICAgIDogZ2V0TG9jYWxlTnVtYmVyRm9ybWF0KHRoaXMuX3Nlc3Npb24ubGFuZ3VhZ2UsIE51bWJlckZvcm1hdFN0eWxlLkRlY2ltYWwpLFxyXG4gICAgICBjb2x1bW5zID0gdGhpcy5fY3ViZS5heGVzLmZpbHRlcihhID0+IHRoaXMuX29wdGlvbnMuc2VyaWVzLmluZGV4T2YoYS5uYW1lKSA+IC0xKSxcclxuICAgICAgcm93cyA9IFt7XHJcbiAgICAgICAgaW5kZXg6IDEsXHJcbiAgICAgICAgY2VsbHM6IGNvbHVtbnMubWFwKChjLCBpKSA9PiAoe1xyXG4gICAgICAgICAgaW5kZXg6IGkgKyAxLCB2YWx1ZTogYy50aXRsZSxcclxuICAgICAgICAgIGNlbGxTdHlsZToge1xyXG4gICAgICAgICAgICBib2xkOiB0cnVlXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBhcyBDZWxsKSlcclxuICAgICAgfV0gYXMgUm93W107XHJcbiAgICByb3dzWzBdLmNlbGxzLnB1c2goe1xyXG4gICAgICBpbmRleDogY29sdW1ucy5sZW5ndGggKyAxLFxyXG4gICAgICB2YWx1ZTogdGhpcy5fY3ViZS55QXhpcyA/IHRoaXMuX2N1YmUueUF4aXMudGl0bGUgOlxyXG4gICAgICAgIHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1ZhbHVlJyksXHJcbiAgICAgIGNlbGxTdHlsZToge1xyXG4gICAgICAgIGJvbGQ6IHRydWVcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9pbmRpY2VzICYmIHRoaXMuX2luZGljZXMuZm9yRWFjaCgoeCwgaSkgPT5cclxuICAgICAgcm93c1swXS5jZWxscy5wdXNoKHtcclxuICAgICAgICBpbmRleDogY29sdW1ucy5sZW5ndGggKyBpICsgMixcclxuICAgICAgICB2YWx1ZTogeC50aXRsZSxcclxuICAgICAgICBjZWxsU3R5bGU6IHtcclxuICAgICAgICAgIGJvbGQ6IHRydWVcclxuICAgICAgICB9XHJcbiAgICAgIH0pKTtcclxuICAgIHRoaXMuX2RhdGEuZm9yRWFjaCgociwgaSkgPT4ge1xyXG4gICAgICBjb25zdCBjZWxscyA9IGNvbHVtbnMubWFwKChjLCBqKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGluZGV4OiBqICsgMSwgdmFsdWU6IHJbYy5uYW1lXSxcclxuICAgICAgICAgIGNlbGxTdHlsZToge1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gYXMgQ2VsbDtcclxuICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgICBjZWxscy5wdXNoKHtcclxuICAgICAgICB0eXBlOiAnbnVtYmVyJyxcclxuICAgICAgICBpbmRleDogY29sdW1ucy5sZW5ndGggKyAxLFxyXG4gICAgICAgIGNlbGxTdHlsZToge1xyXG4gICAgICAgICAgbnVtYmVyRm9ybWF0LFxyXG4gICAgICAgICAgaEFsaWduOiAncmlnaHQnXHJcbiAgICAgICAgfSxcclxuICAgICAgICB2YWx1ZTogclsndmFsdWUnXVxyXG4gICAgICB9IGFzIENlbGwpO1xyXG4gICAgICB0aGlzLl9pbmRpY2VzICYmIHRoaXMuX2luZGljZXMuZm9yRWFjaCgoeCwgaSkgPT5cclxuICAgICAgICBjZWxscy5wdXNoKHtcclxuICAgICAgICAgIHR5cGU6ICdudW1iZXInLFxyXG4gICAgICAgICAgaW5kZXg6IGNvbHVtbnMubGVuZ3RoICsgaSArIDIsXHJcbiAgICAgICAgICBjZWxsU3R5bGU6IHtcclxuICAgICAgICAgICAgbnVtYmVyRm9ybWF0LFxyXG4gICAgICAgICAgICBoQWxpZ246ICdyaWdodCdcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB2YWx1ZTogclt4Lm5hbWVdXHJcbiAgICAgICAgfSBhcyBDZWxsKVxyXG4gICAgICApO1xyXG4gICAgICByb3dzLnB1c2goXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgaW5kZXg6IGkgKyAyLFxyXG4gICAgICAgICAgY2VsbHNcclxuICAgICAgICB9IGFzIFJvdylcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IGJvb2sgPSBuZXcgV29ya2Jvb2soXHJcbiAgICAgIHtcclxuICAgICAgICB3b3Jrc2hlZXRzOiBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGVuYWJsZVJ0bDogdGhpcy5fc2Vzc2lvbi5pbnZlcnNlLFxyXG4gICAgICAgICAgICBuYW1lOiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdTaGVldE4nLCAxKSxcclxuICAgICAgICAgICAgY29sdW1uczogWy4uLmNvbHVtbnMubWFwKChfLCBpKSA9PiAoeyBpbmRleDogaSArIDEsIHdpZHRoOiAyNTAgfSBhcyBDb2x1bW4pKVxyXG4gICAgICAgICAgICAgICwgeyBpbmRleDogY29sdW1ucy5sZW5ndGggKyAxIH0sXHJcbiAgICAgICAgICAgIC4uLih0aGlzLl9pbmRpY2VzID8gdGhpcy5faW5kaWNlcy5tYXAoKF8sIGkpID0+ICh7XHJcbiAgICAgICAgICAgICAgaW5kZXg6IGNvbHVtbnMubGVuZ3RoICsgaSArIDJcclxuICAgICAgICAgICAgfSkpIDogW10pXHJcbiAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgIHJvd3NcclxuICAgICAgICAgIH0gYXMgV29ya3NoZWV0XHJcbiAgICAgICAgXSxcclxuICAgICAgfSxcclxuICAgICAgJ3hsc3gnXHJcbiAgICApO1xyXG4gICAgYm9vay5zYXZlKGAke3RpdGxlfS54bHN4YCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGFkZHMgZGF0YSBzb3VyY2UgZGVzY3JpcHRpb24gdG8gaXRlbSBrZXlzLCBhbmQgbm9ybWFsaXplcyBpbmRpY2VzLlxyXG4gICAqIEBwYXJhbSByZXN1bHRcclxuICAgKi9cclxuICBwcml2YXRlIF9kZWNvcmF0ZShyZXN1bHQ6IEl0ZW1bXSk6IE9ic2VydmFibGU8e31bXT4ge1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKG9ic2VydmUgPT4ge1xyXG4gICAgICBjb25zdCBvYnNlcnZhYmxlczogT2JzZXJ2YWJsZTxhbnk+W10gPSBbXTtcclxuICAgICAgcmVzdWx0LmZvckVhY2gocm93ID0+IHtcclxuICAgICAgICB0aGlzLl9zZXJpZXMuZm9yRWFjaChhID0+IHtcclxuICAgICAgICAgIGNvbnN0IHZhbCA9IHJvd1thLm5hbWVdIGFzIHN0cmluZztcclxuICAgICAgICAgIGNvbnN0IG9ic2VydmFibGUgPSB0aGlzLl90eXBlLmdldChhLmRhdGFUeXBlLCB2YWwpLlxyXG4gICAgICAgICAgICBwaXBlKHRhcCgodjogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAgICAgcm93W2BfJHthLm5hbWV9YF0gPSB2YWw7XHJcbiAgICAgICAgICAgICAgcm93W2EubmFtZV0gPSB2IHx8IHZhbDtcclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgb2JzZXJ2YWJsZXMucHVzaChvYnNlcnZhYmxlKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICAgIGlmIChvYnNlcnZhYmxlcy5sZW5ndGgpXHJcbiAgICAgICAgZm9ya0pvaW4ob2JzZXJ2YWJsZXMpLnBpcGUobWFwKCgpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGRhdGE6IHt9W10gPSBbXTtcclxuICAgICAgICAgIHJlc3VsdC5mb3JFYWNoKGJhc2VSb3cgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGJhc2VSb3cudXNhZ2U7XHJcbiAgICAgICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSAwKSB7XHJcbiAgICAgICAgICAgICAgY29uc3Qgcm93ID0ge1xyXG4gICAgICAgICAgICAgICAgdHlwZTogdGhpcy5feVRpdGxlLFxyXG4gICAgICAgICAgICAgICAgdmFsdWVcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIHRoaXMuX3Nlcmllcy5mb3JFYWNoKGEgPT4ge1xyXG4gICAgICAgICAgICAgICAgcm93W2BfJHthLm5hbWV9YF0gPSBiYXNlUm93W2BfJHthLm5hbWV9YF07XHJcbiAgICAgICAgICAgICAgICByb3dbYS5uYW1lXSA9IGJhc2VSb3dbYS5uYW1lXTtcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICBkYXRhLnB1c2gocm93KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLl9pbmRpY2VzLmZvckVhY2goaSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBiYXNlUm93W2kubmFtZV07XHJcbiAgICAgICAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IDApIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJvdyA9IHsgdHlwZTogaS50aXRsZSwgdmFsdWUgfTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3Nlcmllcy5mb3JFYWNoKGEgPT4ge1xyXG4gICAgICAgICAgICAgICAgICByb3dbYF8ke2EubmFtZX1gXSA9IGJhc2VSb3dbYF8ke2EubmFtZX1gXTtcclxuICAgICAgICAgICAgICAgICAgcm93W2EubmFtZV0gPSBiYXNlUm93W2EubmFtZV07XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGRhdGEucHVzaChyb3cpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHJldHVybiBkYXRhO1xyXG4gICAgICAgIH0pKS5cclxuICAgICAgICAgIHN1YnNjcmliZShyID0+XHJcbiAgICAgICAgICAgIG9ic2VydmUubmV4dChyKSwgZSA9PiBvYnNlcnZlLmVycm9yKGUpKTtcclxuICAgICAgZWxzZVxyXG4gICAgICAgIG9ic2VydmUubmV4dChbXSk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGVcclxuICAgKi9cclxuICBwb2ludENsaWNrKGU6IElQb2ludEV2ZW50QXJncykge1xyXG4gICAgY29uc3QgeyBwb2ludDogeyB4LCB5VmFsdWUgfSwgc2VyaWVzOiB7IG5hbWU6IHRpdGxlIH0gfSA9IGU7XHJcbiAgICBpZiAoeVZhbHVlID09PSAwKSB7XHJcbiAgICAgIGUuY2FuY2VsID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgYXhlczogeyBbYXhpczogc3RyaW5nXTogYW55OyB9ID0gdGhpcy5fYXhlcyh4IGFzIHN0cmluZyk7XHJcbiAgICBzdXBlci5icm93c2UoYXhlcywgdGl0bGUgPT09IHRoaXMuX3lUaXRsZSA/IG51bGwgOiB0aGlzLl9pbmRleE5hbWUodGl0bGUpKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogcmV2ZXJzZSBlbmdpbmVlcmluZyBheGVzIGZyb20gc2VyaWVzIGxhYmVsXHJcbiAgICogQHBhcmFtIGxhYmVsXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfYXhlcyhsYWJlbDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBheGVzOiB7IFtheGlzOiBzdHJpbmddOiAoc3RyaW5nIHwgbnVtYmVyKTsgfSA9IHt9O1xyXG4gICAgbGFiZWwuc3BsaXQoJyAtICcpLmZvckVhY2goKHgsIGkpID0+IHtcclxuICAgICAgY29uc3QgY29sdW1uID0gdGhpcy5kYXRhU291cmNlU2V0dGluZ3Mucm93c1tpXS5uYW1lLFxyXG4gICAgICAgIGVsZW1lbnQgPSB0aGlzLl9kYXRhLmZpbmQoZSA9PiBlW2NvbHVtbl0gPT09IHgpO1xyXG4gICAgICBheGVzW2NvbHVtbl0gPSBlbGVtZW50ID8gZWxlbWVudFtgXyR7Y29sdW1ufWBdIDogeDtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGF4ZXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiByZXZlcnNlIGVuZ2luZWVyaW5nIGluZGV4IG5hbWUgZnJvbSB0aXRsZVxyXG4gICAqIEBwYXJhbSB0aXRsZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2luZGV4TmFtZSh0aXRsZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5faW5kaWNlcy5maW5kKGkgPT4gaS50aXRsZSA9PT0gdGl0bGUpO1xyXG4gICAgcmV0dXJuIGluZGV4Lm5hbWU7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5waXZvdCAmJiB0aGlzLnBpdm90LmRlc3Ryb3koKTtcclxuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XHJcbiAgfVxyXG59XHJcbmludGVyZmFjZSBPcHRpb25zIGV4dGVuZHMgVXNhZ2VPcHRpb25zIHtcclxuICBjaGFydFR5cGU/OiBDaGFydFNlcmllc1R5cGU7XHJcbn1cclxuIl19
@@ -221,15 +221,15 @@ let UsagePivotComponent = class UsagePivotComponent extends UsageReportBase {
221
221
  return axes;
222
222
  }
223
223
  };
224
- UsagePivotComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: UsagePivotComponent, deps: [{ token: i1.ReportRef }, { token: i2.DatasourceService }, { token: i0.ElementRef }, { token: i3.CubeService }, { token: i4.SessionService }, { token: i5.RouterImpl }, { token: i6.PromptService }, { token: i7.Directionality }, { token: i8.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
225
- UsagePivotComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: UsagePivotComponent, selector: "ng-component", host: { properties: { "id": "id" } }, viewQueries: [{ propertyName: "pivot", first: true, predicate: PivotViewComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true });
224
+ UsagePivotComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: UsagePivotComponent, deps: [{ token: i1.ReportRef }, { token: i2.DatasourceService }, { token: i0.ElementRef }, { token: i3.CubeService }, { token: i4.SessionService }, { token: i5.RouterImpl }, { token: i6.PromptService }, { token: i7.Directionality }, { token: i8.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
225
+ UsagePivotComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.0", type: UsagePivotComponent, selector: "ng-component", host: { properties: { "id": "id" } }, viewQueries: [{ propertyName: "pivot", first: true, predicate: PivotViewComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true });
226
226
  UsagePivotComponent = __decorate([
227
227
  BizDoc({
228
228
  selector: 'bizdoc-cube-usage'
229
229
  })
230
230
  ], UsagePivotComponent);
231
231
  export { UsagePivotComponent };
232
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: UsagePivotComponent, decorators: [{
232
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: UsagePivotComponent, decorators: [{
233
233
  type: Component,
234
234
  args: [{
235
235
  template: '',
@@ -240,4 +240,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
240
240
  type: ViewChild,
241
241
  args: [PivotViewComponent]
242
242
  }] } });
243
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNhZ2UtcGl2b3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9yZXBvcnRzL2N1YmUvdXNhZ2UtcGl2b3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRSxPQUFPLEVBQWMsUUFBUSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUF1RyxNQUFNLG1DQUFtQyxDQUFDO0FBS2hMLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzVELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBT3hELE9BQU8sRUFBc0IsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7Ozs7O0FBR25FLFNBQVMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7QUFFOUIsTUFBTSxzQkFBc0IsR0FBRyxHQUFHLENBQUM7QUFDbkM7O0tBRUs7SUFVRyxtQkFBbUIsU0FBbkIsbUJBQW9CLFNBQVEsZUFBd0I7SUF3QjFELE9BQU87SUFDUCxZQUFZLFNBQTZCLEVBQ3ZDLElBQXVCLEVBQ2YsV0FBdUIsRUFDL0IsT0FBb0IsRUFBRSxPQUF1QixFQUM3QyxNQUFrQixFQUNsQixFQUFpQixFQUNqQixHQUFtQixFQUNuQixTQUEyQjtRQUMzQixLQUFLLENBQUMsU0FBUyxFQUFFLElBQUks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Q0FBQyxDQUFDLENBQUM7WUFDckQsQ0FBQyxDQUFDLENBQUM7UUFDTCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRixDQUFBO2dIQWxOTyxtQkFBbUI7b0dBQW5CLG1CQUFtQixpSUFDZCxrQkFBa0IsdUVBVG5CLEVBQUU7QUFRTixtQkFBbUI7SUFKMUIsTUFBTSxDQUFDO1FBQ04sUUFBUSxFQUFFLG1CQUFtQjtLQUM5QixDQUFDO0dBRU0sbUJBQW1CLENBa04xQjtTQWxOTyxtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFUMUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsRUFBRTtvQkFDWiw0Q0FBNEM7b0JBQzVDLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7aUJBQ3ZCO2lVQU1nQyxLQUFLO3NCQUFuQyxTQUFTO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgVmlld0NoaWxkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRGlyZWN0aW9uYWxpdHkgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2JpZGlcIjtcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZm9ya0pvaW4sIG9mIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgdGFwLCB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgUGl2b3RWaWV3Q29tcG9uZW50IH0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLXBpdm90dmlld1wiO1xyXG5pbXBvcnQgeyBFeGNlbEV4cG9ydCwgUGl2b3RWaWV3LCBHcm91cGluZ0JhclNldHRpbmdzTW9kZWwsIEh5cGVyQ2VsbENsaWNrRXZlbnRBcmdzLCBDb25kaXRpb25hbFNldHRpbmdzTW9kZWwsIEh5cGVybGlua1NldHRpbmdzTW9kZWwgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItcGl2b3R2aWV3XCI7XHJcbmltcG9ydCB7IEV4Y2VsUXVlcnlDZWxsSW5mb0V2ZW50QXJncyB9IGZyb20gXCJAc3luY2Z1c2lvbi9lajItZ3JpZHNcIjtcclxuaW1wb3J0IHsgQ29uZGl0aW9uYWxGb3JtYXRTZXR0aW5nc01vZGVsIH0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1waXZvdHZpZXcvc3JjL3Bpdm90dmlldy9tb2RlbC9kYXRhc291cmNlc2V0dGluZ3MtbW9kZWxcIjtcclxuaW1wb3J0IHsgRGF0YVNvdXJjZVNldHRpbmdzTW9kZWwsIEZpZWxkT3B0aW9uc01vZGVsLCBGb3JtYXRTZXR0aW5nc01vZGVsIH0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1waXZvdHZpZXcvc3JjL3Bpdm90dmlldy9tb2RlbC9kYXRhc291cmNlc2V0dGluZ3MtbW9kZWxcIjtcclxuaW1wb3J0IHsgR3JpZFNldHRpbmdzTW9kZWwgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLXBpdm90dmlldy9zcmMvcGl2b3R2aWV3L21vZGVsL2dyaWRzZXR0aW5ncy1tb2RlbFwiO1xyXG5pbXBvcnQgeyBJbnRlcm5hdGlvbmFsaXphdGlvbiB9IGZyb20gXCJAc3luY2Z1c2lvbi9lajItYmFzZVwiO1xyXG5pbXBvcnQgeyBCaXpEb2MgfSBmcm9tIFwiLi4vLi4vY29yZS9kZWNvcmF0b3JzXCI7XHJcbmltcG9ydCB7IEN1YmVBeGlzIH0gZnJvbSBcIi4uLy4uL2NvcmUvbW9kZWxzXCI7XHJcbmltcG9ydCB7IGdldFdhcm4sIGlzQXJyYXkgfSBmcm9tIFwiLi4vLi4vY29yZS9mdW5jdGlvbnNcIjtcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERhdGFzb3VyY2VTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvZGF0YXNvdXJjZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEN1YmVTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2N1YmUvY3ViZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFByb21wdFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9wcm9tcHQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBSb3V0ZXJJbXBsIH0gZnJvbSBcIi4uLy4uL2NvcmUvcm91dGVyXCI7XHJcbmltcG9ydCB7IEl0ZW0sIFVzYWdlT3B0aW9ucywgVXNhZ2VSZXBvcnRCYXNlIH0gZnJvbSBcIi4vdXNhZ2UtYmFzZVwiO1xyXG5pbXBvcnQgeyBSZXBvcnRSZWYgfSBmcm9tIFwiLi4vcmVwb3J0LXJlZlwiO1xyXG5cclxuUGl2b3RWaWV3LkluamVjdChFeGNlbEV4cG9ydCk7XHJcblxyXG5jb25zdCBQSVZPVF9IRUFERVJfREVMSU1JVEVSID0gJ3wnO1xyXG4vKipcclxuICogY3ViZSB1c2FnZVxyXG4gKiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZTogJycsXHJcbiAgLy90ZW1wbGF0ZVVybDogJ3VzYWdlLXBpdm90LmNvbXBvbmVudC5odG1sJyxcclxuICBob3N0OiB7ICdbaWRdJzogJ2lkJyB9XHJcbn0pXHJcbkBCaXpEb2Moe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLWN1YmUtdXNhZ2UnXHJcbn0pXHJcbmV4cG9ydFxyXG4gIGNsYXNzIFVzYWdlUGl2b3RDb21wb25lbnQgZXh0ZW5kcyBVc2FnZVJlcG9ydEJhc2U8T3B0aW9ucz4ge1xyXG4gIEBWaWV3Q2hpbGQoUGl2b3RWaWV3Q29tcG9uZW50KSBwaXZvdDogUGl2b3RWaWV3O1xyXG4gIHByaXZhdGUgX2VtcHR5Q2VsbHNUZXh0Q29udGVudDogc3RyaW5nO1xyXG4gIHByaXZhdGUgX3hBeGlzOiBDdWJlQXhpc1tdO1xyXG4gIGRhdGFTb3VyY2VTZXR0aW5nczogRGF0YVNvdXJjZVNldHRpbmdzTW9kZWw7XHJcbiAgaHlwZXJsaW5rU2V0dGluZ3M6IEh5cGVybGlua1NldHRpbmdzTW9kZWw7XHJcbiAgcmVhZG9ubHkgZ3JpZFNldHRpbmdzOiBHcmlkU2V0dGluZ3NNb2RlbCA9IHtcclxuICAgIHJvd0hlaWdodDogMzZcclxuICB9O1xyXG4gIHJlYWRvbmx5IGNvbmRpdGlvbmFsRm9ybWF0U2V0dGluZ3M6IENvbmRpdGlvbmFsRm9ybWF0U2V0dGluZ3NNb2RlbFtdID0gW3tcclxuICAgIGNvbmRpdGlvbnM6ICdMZXNzVGhhbicsXHJcbiAgICB2YWx1ZTE6IDAsXHJcbiAgICBtZWFzdXJlOiAndmFsdWUnLFxyXG4gICAgYXBwbHlHcmFuZFRvdGFsczogdHJ1ZSxcclxuICAgIHN0eWxlOiB7XHJcbiAgICAgIGNvbG9yOiBnZXRXYXJuKClcclxuICAgIH1cclxuICB9XTtcclxuICByZWFkb25seSBncm91cGluZ0JhclNldHRpbmdzOiBHcm91cGluZ0JhclNldHRpbmdzTW9kZWwgPSB7XHJcbiAgICBzaG93UmVtb3ZlSWNvbjogZmFsc2UsXHJcbiAgICBzaG93RmlsdGVySWNvbjogZmFsc2UsXHJcbiAgICBzaG93VmFsdWVUeXBlSWNvbjogZmFsc2VcclxuICB9O1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2ludGw6IEludGVybmF0aW9uYWxpemF0aW9uID0gbmV3IEludGVybmF0aW9uYWxpemF0aW9uKCk7XHJcbiAgLy8gY3RvclxyXG4gIGNvbnN0cnVjdG9yKHJlcG9ydFJlZjogUmVwb3J0UmVmPE9wdGlvbnM+LFxyXG4gICAgdHlwZTogRGF0YXNvdXJjZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgc2VydmljZTogQ3ViZVNlcnZpY2UsIHNlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcm91dGVyOiBSb3V0ZXJJbXBsLFxyXG4gICAgc2I6IFByb21wdFNlcnZpY2UsXHJcbiAgICBkaXI6IERpcmVjdGlvbmFsaXR5LFxyXG4gICAgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7XHJcbiAgICBzdXBlcihyZXBvcnRSZWYsIHR5cGUsIHNlcnZpY2UsIHNlc3Npb24sIHJvdXRlciwgc2IsIGRpciwgdHJhbnNsYXRlKTtcclxuICAgIHRoaXMuX3Nlc3Npb24udGhlbWVDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuY29uZGl0aW9uYWxGb3JtYXRTZXR0aW5nc1swXS5zdHlsZS5jb2xvciA9IGdldFdhcm4oKTtcclxuICAgICAgdGhpcy5waXZvdC5yZWZyZXNoKCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX2RlZmF1bHRzKCk7XHJcbiAgfVxyXG4gIC8qKiBzZXQgZGVmYXVsdHMgKi9cclxuICBwcml2YXRlIF9kZWZhdWx0cygpIHtcclxuICAgIGNvbnN0IHsgeEF4aXMgfSA9IHRoaXMuX29wdGlvbnM7XHJcbiAgICB0aGlzLl94QXhpcyA9IHhBeGlzID8gdGhpcy5fY3ViZS5heGVzLmZpbHRlcihhID0+IGlzQXJyYXkoeEF4aXMpID8geEF4aXMuaW5kZXhPZihhLm5hbWUpID4gLTEgOiBhLm5hbWUgPT09IHhBeGlzKSA6IHRoaXMuX2N1YmUuYXhlcy5maWx0ZXIoYSA9PiAhYS5oaWRkZW4pLnNsaWNlKDAsIDIpO1xyXG4gICAgdGhpcy5fZW1wdHlDZWxsc1RleHRDb250ZW50ID0gdGhpcy5faW50bC5mb3JtYXROdW1iZXIoMCwge1xyXG4gICAgICBmb3JtYXQ6IHRoaXMuY3VycmVuY3lDb2RlID8gJ0MnIDogJ04nLFxyXG4gICAgICBjdXJyZW5jeTogdGhpcy5jdXJyZW5jeUNvZGUsXHJcbiAgICAgIG1heGltdW1GcmFjdGlvbkRpZ2l0czogdGhpcy5fZnJhY3Rpb25EaWdpdHNcclxuICAgIH0pO1xyXG4gICAgY29uc3QgZm9ybWF0U2V0dGluZ3M6IEZvcm1hdFNldHRpbmdzTW9kZWxbXSA9IFt7XHJcbiAgICAgIG5hbWU6ICd1c2FnZScsXHJcbiAgICAgIGZvcm1hdDogdGhpcy5jdXJyZW5jeUNvZGUgPyAnQycgOiAnTicsXHJcbiAgICAgIG1heGltdW1GcmFjdGlvbkRpZ2l0czogdGhpcy5fZnJhY3Rpb25EaWdpdHNcclxuICAgIH1dO1xyXG4gICAgY29uc3QgdmFsdWVzOiBGaWVsZE9wdGlvbnNNb2RlbFtdID0gW1xyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogJ3VzYWdlJyxcclxuICAgICAgICBjYXB0aW9uOiB0aGlzLl95VGl0bGUsXHJcbiAgICAgICAgc2hvd05vRGF0YUl0ZW1zOiB0cnVlXHJcbiAgICAgIH1cclxuICAgIF07XHJcbiAgICBjb25zdCBjb25kaXRpb25hbFNldHRpbmdzOiBDb25kaXRpb25hbFNldHRpbmdzTW9kZWxbXSA9IFt7XHJcbiAgICAgIGNvbmRpdGlvbnM6ICdOb3RFcXVhbHMnLFxyXG4gICAgICB2YWx1ZTE6IDAsXHJcbiAgICAgIG1lYXN1cmU6ICd1c2FnZSdcclxuICAgIH1dO1xyXG4gICAgdGhpcy5faW5kaWNlcyAmJlxyXG4gICAgICB0aGlzLl9pbmRpY2VzLmZvckVhY2goaSA9PiB7XHJcbiAgICAgICAgdmFsdWVzLnB1c2goe1xyXG4gICAgICAgICAgbmFtZTogaS5uYW1lLFxyXG4gICAgICAgICAgY2FwdGlvbjogaS50aXRsZSxcclxuICAgICAgICAgIHNob3dOb0RhdGFJdGVtczogdHJ1ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGNvbmRpdGlvbmFsU2V0dGluZ3MucHVzaCh7XHJcbiAgICAgICAgICBjb25kaXRpb25zOiAnTm90RXF1YWxzJyxcclxuICAgICAgICAgIHZhbHVlMTogMCxcclxuICAgICAgICAgIG1lYXN1cmU6IGkubmFtZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGZvcm1hdFNldHRpbmdzLnB1c2goe1xyXG4gICAgICAgICAgbmFtZTogaS5uYW1lLFxyXG4gICAgICAgICAgZm9ybWF0OiB0aGlzLmN1cnJlbmN5Q29kZSA/ICdDJyA6ICdOJyxcclxuICAgICAgICAgIG1heGltdW1GcmFjdGlvbkRpZ2l0czogdGhpcy5fZnJhY3Rpb25EaWdpdHNcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLmh5cGVybGlua1NldHRpbmdzID0ge1xyXG4gICAgICBjb25kaXRpb25hbFNldHRpbmdzOiBjb25kaXRpb25hbFNldHRpbmdzXHJcbiAgICB9XHJcbiAgICBjb25zdCBjb2x1bW5zID0gdGhpcy5feEF4aXMubWFwKGEgPT4ge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIG5hbWU6IGEubmFtZSxcclxuICAgICAgICBjYXB0aW9uOiBhLnRpdGxlLFxyXG4gICAgICAgIHNob3dOb0RhdGFJdGVtczogdHJ1ZVxyXG4gICAgICB9IGFzIEZpZWxkT3B0aW9uc01vZGVsO1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCByb3dzID0gdGhpcy5fc2VyaWVzLm1hcChhID0+IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBuYW1lOiBhLm5hbWUsXHJcbiAgICAgICAgY2FwdGlvbjogYS50aXRsZSxcclxuICAgICAgICBzaG93Tm9EYXRhSXRlbXM6IHRydWVcclxuICAgICAgfSBhcyBGaWVsZE9wdGlvbnNNb2RlbDtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5kYXRhU291cmNlU2V0dGluZ3MgPSB7XHJcbiAgICAgIGNvbHVtbnMsXHJcbiAgICAgIHJvd3MsXHJcbiAgICAgIHZhbHVlcyxcclxuICAgICAgY29uZGl0aW9uYWxGb3JtYXRTZXR0aW5nczogdGhpcy5jb25kaXRpb25hbEZvcm1hdFNldHRpbmdzLFxyXG4gICAgICBlbXB0eUNlbGxzVGV4dENvbnRlbnQ6IHRoaXMuX2VtcHR5Q2VsbHNUZXh0Q29udGVudCxcclxuICAgICAgZXhwYW5kQWxsOiB0aGlzLl9jb2xsYXBzZSB8fCBmYWxzZSxcclxuICAgICAgc2hvd0NvbHVtbkdyYW5kVG90YWxzOiB0cnVlLFxyXG4gICAgICBhbHdheXNTaG93VmFsdWVIZWFkZXI6IGZhbHNlLFxyXG4gICAgICBmb3JtYXRTZXR0aW5ncyxcclxuICAgICAgZGF0YVNvdXJjZTogW10sXHJcbiAgICAgIHZhbHVlU29ydFNldHRpbmdzOiB7IGhlYWRlckRlbGltaXRlcjogUElWT1RfSEVBREVSX0RFTElNSVRFUiB9LFxyXG4gICAgICBlbmFibGVTb3J0aW5nOiBmYWxzZVxyXG4gICAgfTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHJlc3VsdFxyXG4gICAqL1xyXG4gIG9uRGF0YShyZXN1bHQ6IEl0ZW1bXSkge1xyXG4gICAgdGhpcy5fZGVjb3JhdGUocmVzdWx0KS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLl9kYXRhID0gdGhpcy5kYXRhU291cmNlU2V0dGluZ3MuZGF0YVNvdXJjZSA9IHJlc3VsdCBhcyBhbnk7XHJcbiAgICAgIHRoaXMuX2RyYXcoKTtcclxuICAgIH0sICgpID0+IHRoaXMuX3NiLmVycm9yKCkpO1xyXG4gIH1cclxuICBlbmdpbmVQb3B1bGF0ZWQoKSB7XHJcbiAgICB0aGlzLnBpdm90LmdyaWQuZXhjZWxRdWVyeUNlbGxJbmZvID0gdGhpcy5leGNlbFF1ZXJ5Q2VsbEluZm8uYmluZCh0aGlzKTtcclxuICB9XHJcbiAgZXhjZWxRdWVyeUNlbGxJbmZvKGV2dDogRXhjZWxRdWVyeUNlbGxJbmZvRXZlbnRBcmdzKSB7XHJcbiAgICBpZiAoZXZ0LnZhbHVlID09PSB0aGlzLl9lbXB0eUNlbGxzVGV4dENvbnRlbnQpIGV2dC52YWx1ZSA9IDA7XHJcbiAgfVxyXG4gIG9uUmVzaXplKCkge1xyXG4gIH1cclxuICBvbkV4cG9ydChuYW1lOiBzdHJpbmcpIHtcclxuICAgIHRoaXMucGl2b3QuZXhjZWxFeHBvcnQoe1xyXG4gICAgICBmaWxlTmFtZTogYCR7bmFtZX0ueGxzeGBcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogYWRkcyBkYXRhIHNvdXJjZSBkZXNjcmlwdGlvbiB0byBpdGVtIGtleXMuXHJcbiAgICogQHBhcmFtIHJlc3VsdFxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2RlY29yYXRlKHJlc3VsdDogSXRlbVtdKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IG9ic2VydmFibGVzOiBPYnNlcnZhYmxlPGFueT5bXSA9IFtdO1xyXG4gICAgcmVzdWx0LmZvckVhY2gocm93ID0+IHtcclxuICAgICAgdGhpcy5feEF4aXMuY29uY2F0KHRoaXMuX3NlcmllcykuZm9yRWFjaChhID0+IHtcclxuICAgICAgICBjb25zdCBheGlzID0gcm93W2EubmFtZV0gYXMgc3RyaW5nO1xyXG4gICAgICAgIHJvd1tgXyR7YS5uYW1lfWBdID0gYXhpcztcclxuICAgICAgICBjb25zdCBvYnNlcnZhYmxlID0gdGhpcy5fdHlwZS5nZXQoYS5kYXRhVHlwZSwgYXhpcykucGlwZSh0YXAodiA9PiByb3dbYS5uYW1lXSA9IHYgfHwgYXhpcykpO1xyXG4gICAgICAgIG9ic2VydmFibGVzLnB1c2gob2JzZXJ2YWJsZSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gb2JzZXJ2YWJsZXMubGVuZ3RoID8gZm9ya0pvaW4ob2JzZXJ2YWJsZXMpIDogb2YoW10pO1xyXG4gIH1cclxuICBwcml2YXRlIF9kcmF3KCkge1xyXG4gICAgdGhpcy5waXZvdCAmJiB0aGlzLnBpdm90LmRlc3Ryb3koKTtcclxuICAgIHRoaXMucGl2b3QgPSBuZXcgUGl2b3RWaWV3KHtcclxuICAgICAgc3Bpbm5lclRlbXBsYXRlOiAnJyxcclxuICAgICAgZGF0YVNvdXJjZVNldHRpbmdzOiB0aGlzLmRhdGFTb3VyY2VTZXR0aW5ncyxcclxuICAgICAgd2lkdGg6IHRoaXMud2lkdGgsXHJcbiAgICAgIGhlaWdodDogdGhpcy5oZWlnaHQsXHJcbiAgICAgIGVuYWJsZVZhbHVlU29ydGluZzogdHJ1ZSxcclxuICAgICAgZW5hYmxlUnRsOiB0aGlzLmVuYWJsZVJ0bCxcclxuICAgICAgc2hvd1Rvb2x0aXA6IGZhbHNlLFxyXG4gICAgICBhbGxvd0NvbmRpdGlvbmFsRm9ybWF0dGluZzogdHJ1ZSxcclxuICAgICAgYWxsb3dOdW1iZXJGb3JtYXR0aW5nOiB0cnVlLFxyXG4gICAgICBncm91cGluZ0JhclNldHRpbmdzOiB0aGlzLmdyb3VwaW5nQmFyU2V0dGluZ3MsXHJcbiAgICAgIGFsbG93Q2FsY3VsYXRlZEZpZWxkOiB0cnVlLFxyXG4gICAgICBzaG93R3JvdXBpbmdCYXI6IHRydWUsXHJcbiAgICAgIGFsbG93RXhjZWxFeHBvcnQ6IHRydWUsXHJcbiAgICAgIGh5cGVybGlua1NldHRpbmdzOiB0aGlzLmh5cGVybGlua1NldHRpbmdzLFxyXG4gICAgICBncmlkU2V0dGluZ3M6IHRoaXMuZ3JpZFNldHRpbmdzLFxyXG4gICAgICBjZWxsQ2xpY2s6IHRoaXMuY2VsbENsaWNrLmJpbmQodGhpcyksXHJcbiAgICAgIGN1cnJlbmN5Q29kZTogdGhpcy5jdXJyZW5jeUNvZGUsXHJcbiAgICB9LCB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gZXZ0XHJcbiAgICovXHJcbiAgY2VsbENsaWNrKGV2dDogSHlwZXJDZWxsQ2xpY2tFdmVudEFyZ3MpIHtcclxuICAgIGNvbnN0IHsgY29sdW1uSGVhZGVycywgcm93SGVhZGVycywgYWN0dWFsVGV4dCB9ID0gZXZ0LmRhdGEgYXMgYW55O1xyXG4gICAgY29uc3QgYXhlcyA9IHRoaXMuX3Bpdm90QXhlcyhjb2x1bW5IZWFkZXJzLCByb3dIZWFkZXJzKTtcclxuICAgIHN1cGVyLmJyb3dzZShheGVzLCBhY3R1YWxUZXh0ID09PSAndXNhZ2UnID8gbnVsbCA6IGFjdHVhbFRleHQpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiByZXZlcnNlIGVuZ2luZWVyaW5nIGF4ZXMgZnJvbSBoZWFkZXJzXHJcbiAgICogQHBhcmFtIGNvbHVtbkhlYWRlcnNcclxuICAgKiBAcGFyYW0gcm93SGVhZGVyc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgX3Bpdm90QXhlcyhjb2x1bW5IZWFkZXJzOiBzdHJpbmcsIHJvd0hlYWRlcnM6IHN0cmluZyk6IHsgW2F4aXM6IHN0cmluZ106IHN0cmluZzsgfSB7XHJcbiAgICBjb25zdCBheGVzOiB7IFtheGlzOiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xyXG4gICAgaWYgKGNvbHVtbkhlYWRlcnMgIT09ICcnKVxyXG4gICAgICBjb2x1bW5IZWFkZXJzLnNwbGl0KFBJVk9UX0hFQURFUl9ERUxJTUlURVIpLmZvckVhY2goKGMsIGkpID0+IHtcclxuICAgICAgICBjb25zdCBjb2x1bW4gPSB0aGlzLmRhdGFTb3VyY2VTZXR0aW5ncy5jb2x1bW5zW2ldLm5hbWUsXHJcbiAgICAgICAgICAvLyBmaW5kIGFueSByb3cgd2l0aCBoZWFkZXJcclxuICAgICAgICAgIGVsZW1lbnQgPSB0aGlzLl9kYXRhLmZpbmQoZSA9PiBlW2NvbHVtbl0udG9TdHJpbmcoKSA9PT0gYyk7XHJcbiAgICAgICAgLy8gdHJhbnNsYXRlIGJhY2sgdG8ga2V5XHJcbiAgICAgICAgYXhlc1tjb2x1bW5dID0gZWxlbWVudCA/IGVsZW1lbnRbYF8ke2NvbHVtbn1gXSA6IGM7XHJcbiAgICAgIH0pO1xyXG4gICAgaWYgKHJvd0hlYWRlcnMgIT09ICcnKVxyXG4gICAgICByb3dIZWFkZXJzLnNwbGl0KFBJVk9UX0hFQURFUl9ERUxJTUlURVIpLmZvckVhY2goKHIsIGkpID0+IHtcclxuICAgICAgICBjb25zdCBjb2x1bW4gPSB0aGlzLmRhdGFTb3VyY2VTZXR0aW5ncy5yb3dzW2ldLm5hbWUsXHJcbiAgICAgICAgICBlbGVtZW50ID0gdGhpcy5fZGF0YS5maW5kKGUgPT4gZVtjb2x1bW5dID09PSByKTtcclxuICAgICAgICBheGVzW2NvbHVtbl0gPSBlbGVtZW50ID8gZWxlbWVudFtgXyR7Y29sdW1ufWBdIDogcjtcclxuICAgICAgfSk7XHJcbiAgICByZXR1cm4gYXhlcztcclxuICB9XHJcbn1cclxuaW50ZXJmYWNlIE9wdGlvbnMgZXh0ZW5kcyBVc2FnZU9wdGlvbnMge1xyXG4gIHhBeGlzPzogc3RyaW5nW10gfCBzdHJpbmc7XHJcbn1cclxuIl19
243
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNhZ2UtcGl2b3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9yZXBvcnRzL2N1YmUvdXNhZ2UtcGl2b3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRSxPQUFPLEVBQWMsUUFBUSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUF1RyxNQUFNLG1DQUFtQyxDQUFDO0FBS2hMLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzVELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBT3hELE9BQU8sRUFBc0IsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7Ozs7O0FBR25FLFNBQVMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7QUFFOUIsTUFBTSxzQkFBc0IsR0FBRyxHQUFHLENBQUM7QUFDbkM7O0tBRUs7SUFVRyxtQkFBbUIsU0FBbkIsbUJBQW9CLFNBQVEsZUFBd0I7SUF3QjFELE9BQU87SUFDUCxZQUFZLFNBQTZCLEVBQ3ZDLElBQXVCLEVBQ2YsV0FBdUIsRUFDL0IsT0FBb0IsRUFBRSxPQUF1QixFQUM3QyxNQUFrQixFQUNsQixFQUFpQixFQUNqQixHQUFtQixFQUNuQixTQUEyQjtRQUMzQixLQUFLLENBQUMsU0FBUyxFQUFFLElBQUks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Q0FBQyxDQUFDLENBQUM7WUFDckQsQ0FBQyxDQUFDLENBQUM7UUFDTCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRixDQUFBO2dIQWxOTyxtQkFBbUI7b0dBQW5CLG1CQUFtQixpSUFDZCxrQkFBa0IsdUVBVG5CLEVBQUU7QUFRTixtQkFBbUI7SUFKMUIsTUFBTSxDQUFDO1FBQ04sUUFBUSxFQUFFLG1CQUFtQjtLQUM5QixDQUFDO0dBRU0sbUJBQW1CLENBa04xQjtTQWxOTyxtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFUMUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsRUFBRTtvQkFDWiw0Q0FBNEM7b0JBQzVDLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7aUJBQ3ZCO2lVQU1nQyxLQUFLO3NCQUFuQyxTQUFTO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgVmlld0NoaWxkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRGlyZWN0aW9uYWxpdHkgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2JpZGlcIjtcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZm9ya0pvaW4sIG9mIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgdGFwLCB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgUGl2b3RWaWV3Q29tcG9uZW50IH0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLXBpdm90dmlld1wiO1xyXG5pbXBvcnQgeyBFeGNlbEV4cG9ydCwgUGl2b3RWaWV3LCBHcm91cGluZ0JhclNldHRpbmdzTW9kZWwsIEh5cGVyQ2VsbENsaWNrRXZlbnRBcmdzLCBDb25kaXRpb25hbFNldHRpbmdzTW9kZWwsIEh5cGVybGlua1NldHRpbmdzTW9kZWwgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItcGl2b3R2aWV3XCI7XHJcbmltcG9ydCB7IEV4Y2VsUXVlcnlDZWxsSW5mb0V2ZW50QXJncyB9IGZyb20gXCJAc3luY2Z1c2lvbi9lajItZ3JpZHNcIjtcclxuaW1wb3J0IHsgQ29uZGl0aW9uYWxGb3JtYXRTZXR0aW5nc01vZGVsIH0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1waXZvdHZpZXcvc3JjL3Bpdm90dmlldy9tb2RlbC9kYXRhc291cmNlc2V0dGluZ3MtbW9kZWxcIjtcclxuaW1wb3J0IHsgRGF0YVNvdXJjZVNldHRpbmdzTW9kZWwsIEZpZWxkT3B0aW9uc01vZGVsLCBGb3JtYXRTZXR0aW5nc01vZGVsIH0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1waXZvdHZpZXcvc3JjL3Bpdm90dmlldy9tb2RlbC9kYXRhc291cmNlc2V0dGluZ3MtbW9kZWxcIjtcclxuaW1wb3J0IHsgR3JpZFNldHRpbmdzTW9kZWwgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLXBpdm90dmlldy9zcmMvcGl2b3R2aWV3L21vZGVsL2dyaWRzZXR0aW5ncy1tb2RlbFwiO1xyXG5pbXBvcnQgeyBJbnRlcm5hdGlvbmFsaXphdGlvbiB9IGZyb20gXCJAc3luY2Z1c2lvbi9lajItYmFzZVwiO1xyXG5pbXBvcnQgeyBCaXpEb2MgfSBmcm9tIFwiLi4vLi4vY29yZS9kZWNvcmF0b3JzXCI7XHJcbmltcG9ydCB7IEN1YmVBeGlzIH0gZnJvbSBcIi4uLy4uL2NvcmUvbW9kZWxzXCI7XHJcbmltcG9ydCB7IGdldFdhcm4sIGlzQXJyYXkgfSBmcm9tIFwiLi4vLi4vY29yZS9mdW5jdGlvbnNcIjtcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERhdGFzb3VyY2VTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvZGF0YXNvdXJjZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEN1YmVTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2N1YmUvY3ViZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFByb21wdFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9wcm9tcHQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBSb3V0ZXJJbXBsIH0gZnJvbSBcIi4uLy4uL2NvcmUvcm91dGVyXCI7XHJcbmltcG9ydCB7IEl0ZW0sIFVzYWdlT3B0aW9ucywgVXNhZ2VSZXBvcnRCYXNlIH0gZnJvbSBcIi4vdXNhZ2UtYmFzZVwiO1xyXG5pbXBvcnQgeyBSZXBvcnRSZWYgfSBmcm9tIFwiLi4vcmVwb3J0LXJlZlwiO1xyXG5cclxuUGl2b3RWaWV3LkluamVjdChFeGNlbEV4cG9ydCk7XHJcblxyXG5jb25zdCBQSVZPVF9IRUFERVJfREVMSU1JVEVSID0gJ3wnO1xyXG4vKipcclxuICogY3ViZSB1c2FnZVxyXG4gKiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZTogJycsXHJcbiAgLy90ZW1wbGF0ZVVybDogJ3VzYWdlLXBpdm90LmNvbXBvbmVudC5odG1sJyxcclxuICBob3N0OiB7ICdbaWRdJzogJ2lkJyB9XHJcbn0pXHJcbkBCaXpEb2Moe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLWN1YmUtdXNhZ2UnXHJcbn0pXHJcbmV4cG9ydFxyXG4gIGNsYXNzIFVzYWdlUGl2b3RDb21wb25lbnQgZXh0ZW5kcyBVc2FnZVJlcG9ydEJhc2U8T3B0aW9ucz4ge1xyXG4gIEBWaWV3Q2hpbGQoUGl2b3RWaWV3Q29tcG9uZW50KSBwaXZvdDogUGl2b3RWaWV3O1xyXG4gIHByaXZhdGUgX2VtcHR5Q2VsbHNUZXh0Q29udGVudDogc3RyaW5nO1xyXG4gIHByaXZhdGUgX3hBeGlzOiBDdWJlQXhpc1tdO1xyXG4gIGRhdGFTb3VyY2VTZXR0aW5nczogRGF0YVNvdXJjZVNldHRpbmdzTW9kZWw7XHJcbiAgaHlwZXJsaW5rU2V0dGluZ3M6IEh5cGVybGlua1NldHRpbmdzTW9kZWw7XHJcbiAgcmVhZG9ubHkgZ3JpZFNldHRpbmdzOiBHcmlkU2V0dGluZ3NNb2RlbCA9IHtcclxuICAgIHJvd0hlaWdodDogMzZcclxuICB9O1xyXG4gIHJlYWRvbmx5IGNvbmRpdGlvbmFsRm9ybWF0U2V0dGluZ3M6IENvbmRpdGlvbmFsRm9ybWF0U2V0dGluZ3NNb2RlbFtdID0gW3tcclxuICAgIGNvbmRpdGlvbnM6ICdMZXNzVGhhbicsXHJcbiAgICB2YWx1ZTE6IDAsXHJcbiAgICBtZWFzdXJlOiAndmFsdWUnLFxyXG4gICAgYXBwbHlHcmFuZFRvdGFsczogdHJ1ZSxcclxuICAgIHN0eWxlOiB7XHJcbiAgICAgIGNvbG9yOiBnZXRXYXJuKClcclxuICAgIH1cclxuICB9XTtcclxuICByZWFkb25seSBncm91cGluZ0JhclNldHRpbmdzOiBHcm91cGluZ0JhclNldHRpbmdzTW9kZWwgPSB7XHJcbiAgICBzaG93UmVtb3ZlSWNvbjogZmFsc2UsXHJcbiAgICBzaG93RmlsdGVySWNvbjogZmFsc2UsXHJcbiAgICBzaG93VmFsdWVUeXBlSWNvbjogZmFsc2VcclxuICB9O1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2ludGw6IEludGVybmF0aW9uYWxpemF0aW9uID0gbmV3IEludGVybmF0aW9uYWxpemF0aW9uKCk7XHJcbiAgLy8gY3RvclxyXG4gIGNvbnN0cnVjdG9yKHJlcG9ydFJlZjogUmVwb3J0UmVmPE9wdGlvbnM+LFxyXG4gICAgdHlwZTogRGF0YXNvdXJjZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgc2VydmljZTogQ3ViZVNlcnZpY2UsIHNlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcm91dGVyOiBSb3V0ZXJJbXBsLFxyXG4gICAgc2I6IFByb21wdFNlcnZpY2UsXHJcbiAgICBkaXI6IERpcmVjdGlvbmFsaXR5LFxyXG4gICAgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7XHJcbiAgICBzdXBlcihyZXBvcnRSZWYsIHR5cGUsIHNlcnZpY2UsIHNlc3Npb24sIHJvdXRlciwgc2IsIGRpciwgdHJhbnNsYXRlKTtcclxuICAgIHRoaXMuX3Nlc3Npb24udGhlbWVDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuY29uZGl0aW9uYWxGb3JtYXRTZXR0aW5nc1swXS5zdHlsZS5jb2xvciA9IGdldFdhcm4oKTtcclxuICAgICAgdGhpcy5waXZvdC5yZWZyZXNoKCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX2RlZmF1bHRzKCk7XHJcbiAgfVxyXG4gIC8qKiBzZXQgZGVmYXVsdHMgKi9cclxuICBwcml2YXRlIF9kZWZhdWx0cygpIHtcclxuICAgIGNvbnN0IHsgeEF4aXMgfSA9IHRoaXMuX29wdGlvbnM7XHJcbiAgICB0aGlzLl94QXhpcyA9IHhBeGlzID8gdGhpcy5fY3ViZS5heGVzLmZpbHRlcihhID0+IGlzQXJyYXkoeEF4aXMpID8geEF4aXMuaW5kZXhPZihhLm5hbWUpID4gLTEgOiBhLm5hbWUgPT09IHhBeGlzKSA6IHRoaXMuX2N1YmUuYXhlcy5maWx0ZXIoYSA9PiAhYS5oaWRkZW4pLnNsaWNlKDAsIDIpO1xyXG4gICAgdGhpcy5fZW1wdHlDZWxsc1RleHRDb250ZW50ID0gdGhpcy5faW50bC5mb3JtYXROdW1iZXIoMCwge1xyXG4gICAgICBmb3JtYXQ6IHRoaXMuY3VycmVuY3lDb2RlID8gJ0MnIDogJ04nLFxyXG4gICAgICBjdXJyZW5jeTogdGhpcy5jdXJyZW5jeUNvZGUsXHJcbiAgICAgIG1heGltdW1GcmFjdGlvbkRpZ2l0czogdGhpcy5fZnJhY3Rpb25EaWdpdHNcclxuICAgIH0pO1xyXG4gICAgY29uc3QgZm9ybWF0U2V0dGluZ3M6IEZvcm1hdFNldHRpbmdzTW9kZWxbXSA9IFt7XHJcbiAgICAgIG5hbWU6ICd1c2FnZScsXHJcbiAgICAgIGZvcm1hdDogdGhpcy5jdXJyZW5jeUNvZGUgPyAnQycgOiAnTicsXHJcbiAgICAgIG1heGltdW1GcmFjdGlvbkRpZ2l0czogdGhpcy5fZnJhY3Rpb25EaWdpdHNcclxuICAgIH1dO1xyXG4gICAgY29uc3QgdmFsdWVzOiBGaWVsZE9wdGlvbnNNb2RlbFtdID0gW1xyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogJ3VzYWdlJyxcclxuICAgICAgICBjYXB0aW9uOiB0aGlzLl95VGl0bGUsXHJcbiAgICAgICAgc2hvd05vRGF0YUl0ZW1zOiB0cnVlXHJcbiAgICAgIH1cclxuICAgIF07XHJcbiAgICBjb25zdCBjb25kaXRpb25hbFNldHRpbmdzOiBDb25kaXRpb25hbFNldHRpbmdzTW9kZWxbXSA9IFt7XHJcbiAgICAgIGNvbmRpdGlvbnM6ICdOb3RFcXVhbHMnLFxyXG4gICAgICB2YWx1ZTE6IDAsXHJcbiAgICAgIG1lYXN1cmU6ICd1c2FnZSdcclxuICAgIH1dO1xyXG4gICAgdGhpcy5faW5kaWNlcyAmJlxyXG4gICAgICB0aGlzLl9pbmRpY2VzLmZvckVhY2goaSA9PiB7XHJcbiAgICAgICAgdmFsdWVzLnB1c2goe1xyXG4gICAgICAgICAgbmFtZTogaS5uYW1lLFxyXG4gICAgICAgICAgY2FwdGlvbjogaS50aXRsZSxcclxuICAgICAgICAgIHNob3dOb0RhdGFJdGVtczogdHJ1ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGNvbmRpdGlvbmFsU2V0dGluZ3MucHVzaCh7XHJcbiAgICAgICAgICBjb25kaXRpb25zOiAnTm90RXF1YWxzJyxcclxuICAgICAgICAgIHZhbHVlMTogMCxcclxuICAgICAgICAgIG1lYXN1cmU6IGkubmFtZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGZvcm1hdFNldHRpbmdzLnB1c2goe1xyXG4gICAgICAgICAgbmFtZTogaS5uYW1lLFxyXG4gICAgICAgICAgZm9ybWF0OiB0aGlzLmN1cnJlbmN5Q29kZSA/ICdDJyA6ICdOJyxcclxuICAgICAgICAgIG1heGltdW1GcmFjdGlvbkRpZ2l0czogdGhpcy5fZnJhY3Rpb25EaWdpdHNcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLmh5cGVybGlua1NldHRpbmdzID0ge1xyXG4gICAgICBjb25kaXRpb25hbFNldHRpbmdzOiBjb25kaXRpb25hbFNldHRpbmdzXHJcbiAgICB9XHJcbiAgICBjb25zdCBjb2x1bW5zID0gdGhpcy5feEF4aXMubWFwKGEgPT4ge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIG5hbWU6IGEubmFtZSxcclxuICAgICAgICBjYXB0aW9uOiBhLnRpdGxlLFxyXG4gICAgICAgIHNob3dOb0RhdGFJdGVtczogdHJ1ZVxyXG4gICAgICB9IGFzIEZpZWxkT3B0aW9uc01vZGVsO1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCByb3dzID0gdGhpcy5fc2VyaWVzLm1hcChhID0+IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBuYW1lOiBhLm5hbWUsXHJcbiAgICAgICAgY2FwdGlvbjogYS50aXRsZSxcclxuICAgICAgICBzaG93Tm9EYXRhSXRlbXM6IHRydWVcclxuICAgICAgfSBhcyBGaWVsZE9wdGlvbnNNb2RlbDtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5kYXRhU291cmNlU2V0dGluZ3MgPSB7XHJcbiAgICAgIGNvbHVtbnMsXHJcbiAgICAgIHJvd3MsXHJcbiAgICAgIHZhbHVlcyxcclxuICAgICAgY29uZGl0aW9uYWxGb3JtYXRTZXR0aW5nczogdGhpcy5jb25kaXRpb25hbEZvcm1hdFNldHRpbmdzLFxyXG4gICAgICBlbXB0eUNlbGxzVGV4dENvbnRlbnQ6IHRoaXMuX2VtcHR5Q2VsbHNUZXh0Q29udGVudCxcclxuICAgICAgZXhwYW5kQWxsOiB0aGlzLl9jb2xsYXBzZSB8fCBmYWxzZSxcclxuICAgICAgc2hvd0NvbHVtbkdyYW5kVG90YWxzOiB0cnVlLFxyXG4gICAgICBhbHdheXNTaG93VmFsdWVIZWFkZXI6IGZhbHNlLFxyXG4gICAgICBmb3JtYXRTZXR0aW5ncyxcclxuICAgICAgZGF0YVNvdXJjZTogW10sXHJcbiAgICAgIHZhbHVlU29ydFNldHRpbmdzOiB7IGhlYWRlckRlbGltaXRlcjogUElWT1RfSEVBREVSX0RFTElNSVRFUiB9LFxyXG4gICAgICBlbmFibGVTb3J0aW5nOiBmYWxzZVxyXG4gICAgfTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHJlc3VsdFxyXG4gICAqL1xyXG4gIG9uRGF0YShyZXN1bHQ6IEl0ZW1bXSkge1xyXG4gICAgdGhpcy5fZGVjb3JhdGUocmVzdWx0KS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLl9kYXRhID0gdGhpcy5kYXRhU291cmNlU2V0dGluZ3MuZGF0YVNvdXJjZSA9IHJlc3VsdCBhcyBhbnk7XHJcbiAgICAgIHRoaXMuX2RyYXcoKTtcclxuICAgIH0sICgpID0+IHRoaXMuX3NiLmVycm9yKCkpO1xyXG4gIH1cclxuICBlbmdpbmVQb3B1bGF0ZWQoKSB7XHJcbiAgICB0aGlzLnBpdm90LmdyaWQuZXhjZWxRdWVyeUNlbGxJbmZvID0gdGhpcy5leGNlbFF1ZXJ5Q2VsbEluZm8uYmluZCh0aGlzKTtcclxuICB9XHJcbiAgZXhjZWxRdWVyeUNlbGxJbmZvKGV2dDogRXhjZWxRdWVyeUNlbGxJbmZvRXZlbnRBcmdzKSB7XHJcbiAgICBpZiAoZXZ0LnZhbHVlID09PSB0aGlzLl9lbXB0eUNlbGxzVGV4dENvbnRlbnQpIGV2dC52YWx1ZSA9IDA7XHJcbiAgfVxyXG4gIG9uUmVzaXplKCkge1xyXG4gIH1cclxuICBvbkV4cG9ydChuYW1lOiBzdHJpbmcpIHtcclxuICAgIHRoaXMucGl2b3QuZXhjZWxFeHBvcnQoe1xyXG4gICAgICBmaWxlTmFtZTogYCR7bmFtZX0ueGxzeGBcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogYWRkcyBkYXRhIHNvdXJjZSBkZXNjcmlwdGlvbiB0byBpdGVtIGtleXMuXHJcbiAgICogQHBhcmFtIHJlc3VsdFxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2RlY29yYXRlKHJlc3VsdDogSXRlbVtdKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IG9ic2VydmFibGVzOiBPYnNlcnZhYmxlPGFueT5bXSA9IFtdO1xyXG4gICAgcmVzdWx0LmZvckVhY2gocm93ID0+IHtcclxuICAgICAgdGhpcy5feEF4aXMuY29uY2F0KHRoaXMuX3NlcmllcykuZm9yRWFjaChhID0+IHtcclxuICAgICAgICBjb25zdCBheGlzID0gcm93W2EubmFtZV0gYXMgc3RyaW5nO1xyXG4gICAgICAgIHJvd1tgXyR7YS5uYW1lfWBdID0gYXhpcztcclxuICAgICAgICBjb25zdCBvYnNlcnZhYmxlID0gdGhpcy5fdHlwZS5nZXQoYS5kYXRhVHlwZSwgYXhpcykucGlwZSh0YXAodiA9PiByb3dbYS5uYW1lXSA9IHYgfHwgYXhpcykpO1xyXG4gICAgICAgIG9ic2VydmFibGVzLnB1c2gob2JzZXJ2YWJsZSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gb2JzZXJ2YWJsZXMubGVuZ3RoID8gZm9ya0pvaW4ob2JzZXJ2YWJsZXMpIDogb2YoW10pO1xyXG4gIH1cclxuICBwcml2YXRlIF9kcmF3KCkge1xyXG4gICAgdGhpcy5waXZvdCAmJiB0aGlzLnBpdm90LmRlc3Ryb3koKTtcclxuICAgIHRoaXMucGl2b3QgPSBuZXcgUGl2b3RWaWV3KHtcclxuICAgICAgc3Bpbm5lclRlbXBsYXRlOiAnJyxcclxuICAgICAgZGF0YVNvdXJjZVNldHRpbmdzOiB0aGlzLmRhdGFTb3VyY2VTZXR0aW5ncyxcclxuICAgICAgd2lkdGg6IHRoaXMud2lkdGgsXHJcbiAgICAgIGhlaWdodDogdGhpcy5oZWlnaHQsXHJcbiAgICAgIGVuYWJsZVZhbHVlU29ydGluZzogdHJ1ZSxcclxuICAgICAgZW5hYmxlUnRsOiB0aGlzLmVuYWJsZVJ0bCxcclxuICAgICAgc2hvd1Rvb2x0aXA6IGZhbHNlLFxyXG4gICAgICBhbGxvd0NvbmRpdGlvbmFsRm9ybWF0dGluZzogdHJ1ZSxcclxuICAgICAgYWxsb3dOdW1iZXJGb3JtYXR0aW5nOiB0cnVlLFxyXG4gICAgICBncm91cGluZ0JhclNldHRpbmdzOiB0aGlzLmdyb3VwaW5nQmFyU2V0dGluZ3MsXHJcbiAgICAgIGFsbG93Q2FsY3VsYXRlZEZpZWxkOiB0cnVlLFxyXG4gICAgICBzaG93R3JvdXBpbmdCYXI6IHRydWUsXHJcbiAgICAgIGFsbG93RXhjZWxFeHBvcnQ6IHRydWUsXHJcbiAgICAgIGh5cGVybGlua1NldHRpbmdzOiB0aGlzLmh5cGVybGlua1NldHRpbmdzLFxyXG4gICAgICBncmlkU2V0dGluZ3M6IHRoaXMuZ3JpZFNldHRpbmdzLFxyXG4gICAgICBjZWxsQ2xpY2s6IHRoaXMuY2VsbENsaWNrLmJpbmQodGhpcyksXHJcbiAgICAgIGN1cnJlbmN5Q29kZTogdGhpcy5jdXJyZW5jeUNvZGUsXHJcbiAgICB9LCB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gZXZ0XHJcbiAgICovXHJcbiAgY2VsbENsaWNrKGV2dDogSHlwZXJDZWxsQ2xpY2tFdmVudEFyZ3MpIHtcclxuICAgIGNvbnN0IHsgY29sdW1uSGVhZGVycywgcm93SGVhZGVycywgYWN0dWFsVGV4dCB9ID0gZXZ0LmRhdGEgYXMgYW55O1xyXG4gICAgY29uc3QgYXhlcyA9IHRoaXMuX3Bpdm90QXhlcyhjb2x1bW5IZWFkZXJzLCByb3dIZWFkZXJzKTtcclxuICAgIHN1cGVyLmJyb3dzZShheGVzLCBhY3R1YWxUZXh0ID09PSAndXNhZ2UnID8gbnVsbCA6IGFjdHVhbFRleHQpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiByZXZlcnNlIGVuZ2luZWVyaW5nIGF4ZXMgZnJvbSBoZWFkZXJzXHJcbiAgICogQHBhcmFtIGNvbHVtbkhlYWRlcnNcclxuICAgKiBAcGFyYW0gcm93SGVhZGVyc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgX3Bpdm90QXhlcyhjb2x1bW5IZWFkZXJzOiBzdHJpbmcsIHJvd0hlYWRlcnM6IHN0cmluZyk6IHsgW2F4aXM6IHN0cmluZ106IHN0cmluZzsgfSB7XHJcbiAgICBjb25zdCBheGVzOiB7IFtheGlzOiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xyXG4gICAgaWYgKGNvbHVtbkhlYWRlcnMgIT09ICcnKVxyXG4gICAgICBjb2x1bW5IZWFkZXJzLnNwbGl0KFBJVk9UX0hFQURFUl9ERUxJTUlURVIpLmZvckVhY2goKGMsIGkpID0+IHtcclxuICAgICAgICBjb25zdCBjb2x1bW4gPSB0aGlzLmRhdGFTb3VyY2VTZXR0aW5ncy5jb2x1bW5zW2ldLm5hbWUsXHJcbiAgICAgICAgICAvLyBmaW5kIGFueSByb3cgd2l0aCBoZWFkZXJcclxuICAgICAgICAgIGVsZW1lbnQgPSB0aGlzLl9kYXRhLmZpbmQoZSA9PiBlW2NvbHVtbl0udG9TdHJpbmcoKSA9PT0gYyk7XHJcbiAgICAgICAgLy8gdHJhbnNsYXRlIGJhY2sgdG8ga2V5XHJcbiAgICAgICAgYXhlc1tjb2x1bW5dID0gZWxlbWVudCA/IGVsZW1lbnRbYF8ke2NvbHVtbn1gXSA6IGM7XHJcbiAgICAgIH0pO1xyXG4gICAgaWYgKHJvd0hlYWRlcnMgIT09ICcnKVxyXG4gICAgICByb3dIZWFkZXJzLnNwbGl0KFBJVk9UX0hFQURFUl9ERUxJTUlURVIpLmZvckVhY2goKHIsIGkpID0+IHtcclxuICAgICAgICBjb25zdCBjb2x1bW4gPSB0aGlzLmRhdGFTb3VyY2VTZXR0aW5ncy5yb3dzW2ldLm5hbWUsXHJcbiAgICAgICAgICBlbGVtZW50ID0gdGhpcy5fZGF0YS5maW5kKGUgPT4gZVtjb2x1bW5dID09PSByKTtcclxuICAgICAgICBheGVzW2NvbHVtbl0gPSBlbGVtZW50ID8gZWxlbWVudFtgXyR7Y29sdW1ufWBdIDogcjtcclxuICAgICAgfSk7XHJcbiAgICByZXR1cm4gYXhlcztcclxuICB9XHJcbn1cclxuaW50ZXJmYWNlIE9wdGlvbnMgZXh0ZW5kcyBVc2FnZU9wdGlvbnMge1xyXG4gIHhBeGlzPzogc3RyaW5nW10gfCBzdHJpbmc7IFxyXG59XHJcbiJdfQ==
@@ -1,7 +1,7 @@
1
1
  import { Component, ViewChild, ViewContainerRef, Injector, HostListener, Input } from '@angular/core';
2
2
  import { BehaviorSubject, Subject } from 'rxjs';
3
3
  import { debounceTime, takeUntil, filter, tap } from 'rxjs/operators';
4
- import * as XLSX from 'xlsx';
4
+ import { Workbook } from '@syncfusion/ej2-excel-export';
5
5
  import { ReportRef } from './report-ref';
6
6
  import { TableViewComponent } from './table/table-view.component';
7
7
  import * as i0 from "@angular/core";
@@ -9,17 +9,19 @@ import * as i1 from "@angular/common/http";
9
9
  import * as i2 from "../core/prompt.service";
10
10
  import * as i3 from "../core/hub.service";
11
11
  import * as i4 from "../core/translate.service";
12
- import * as i5 from "../core/component-factory-resolver";
13
- import * as i6 from "@angular/material/progress-bar";
12
+ import * as i5 from "../core/session.service";
13
+ import * as i6 from "../core/component-factory-resolver";
14
+ import * as i7 from "@angular/material/progress-bar";
14
15
  /** reportviewer component*/
15
16
  export class ReportViewerComponent {
16
17
  /** reportviewer ctor */
17
- constructor(_http, _sb, _injector, _hub, _translate, _factoryResolver) {
18
+ constructor(_http, _sb, _injector, _hub, _translate, _session, _factoryResolver) {
18
19
  this._http = _http;
19
20
  this._sb = _sb;
20
21
  this._injector = _injector;
21
22
  this._hub = _hub;
22
23
  this._translate = _translate;
24
+ this._session = _session;
23
25
  this._factoryResolver = _factoryResolver;
24
26
  this.progress = 0;
25
27
  this._processing = false;
@@ -92,12 +94,36 @@ export class ReportViewerComponent {
92
94
  this._reportRef._exporting.next(args);
93
95
  if (args.cancel)
94
96
  return;
95
- const ws = XLSX.utils.json_to_sheet(args.data);
96
- const wb = XLSX.utils.book_new();
97
- const name = this._translate.get('SheetN', 1);
98
- wb.Sheets[name] = ws;
99
- wb.SheetNames.push(name);
100
- XLSX.writeFile(wb, `${this.report.title}.xlsx`);
97
+ const rows = [{
98
+ index: 1,
99
+ cells: this.report.columns.map((c, j) => ({
100
+ index: j + 1, value: c.label,
101
+ cellStyle: {
102
+ bold: true,
103
+ hAlign: c.type === 'Number' || c.type === 'Currency' ? 'right' : 'general'
104
+ }
105
+ }))
106
+ }];
107
+ args.data.forEach((r, i) => rows.push({
108
+ index: i + 2,
109
+ cells: this.report.columns.map((c, j) => ({
110
+ index: j + 1, value: r[c.name],
111
+ cellStyle: {
112
+ hAlign: c.type === 'Number' || c.type === 'Currency' ? 'right' : 'general'
113
+ }
114
+ }))
115
+ }));
116
+ const book = new Workbook({
117
+ worksheets: [
118
+ {
119
+ enableRtl: this._session.inverse,
120
+ name: this._translate.get('SheetN', 1),
121
+ columns: this.report.columns.map((_, i) => ({ index: i + 1, width: 250 })),
122
+ rows
123
+ }
124
+ ],
125
+ }, 'xlsx');
126
+ book.save(`${this.report.title}.xlsx`);
101
127
  }
102
128
  ngOnDestroy() {
103
129
  this._reportRef._destroy();
@@ -106,12 +132,12 @@ export class ReportViewerComponent {
106
132
  this._destroy.complete();
107
133
  }
108
134
  }
109
- ReportViewerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ReportViewerComponent, deps: [{ token: i1.HttpClient }, { token: i2.PromptService }, { token: i0.Injector }, { token: i3.HubService }, { token: i4.TranslateService }, { token: i5.BizDocComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Component });
110
- ReportViewerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ReportViewerComponent, selector: "bizdoc-report-viewer", inputs: { report: "report", args: "args" }, host: { listeners: { "window:resize": "resize()" } }, viewQueries: [{ propertyName: "viewContainer", first: true, predicate: ["vc"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "table", first: true, predicate: TableViewComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<mat-progress-bar mode=\"buffer\" [value]=progress [bufferValue]=0 [style.visibility]=\"progress > 0 && progress < 100 ? 'visible':'hidden'\"></mat-progress-bar>\r\n<ng-container #vc></ng-container>\r\n", styles: [":host{display:flex;flex-direction:column}:host :last-child{flex:1 auto}\n"], components: [{ type: i6.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }] });
111
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ReportViewerComponent, decorators: [{
135
+ ReportViewerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: ReportViewerComponent, deps: [{ token: i1.HttpClient }, { token: i2.PromptService }, { token: i0.Injector }, { token: i3.HubService }, { token: i4.TranslateService }, { token: i5.SessionService }, { token: i6.BizDocComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Component });
136
+ ReportViewerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.0", type: ReportViewerComponent, selector: "bizdoc-report-viewer", inputs: { report: "report", args: "args" }, host: { listeners: { "window:resize": "resize()" } }, viewQueries: [{ propertyName: "viewContainer", first: true, predicate: ["vc"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "table", first: true, predicate: TableViewComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<mat-progress-bar mode=\"buffer\" [value]=progress [bufferValue]=0 [style.visibility]=\"progress > 0 && progress < 100 ? 'visible':'hidden'\"></mat-progress-bar>\r\n<ng-container #vc></ng-container>\r\n", styles: [":host{display:flex;flex-direction:column}:host :last-child{flex:1 auto}\n"], components: [{ type: i7.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }] });
137
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: ReportViewerComponent, decorators: [{
112
138
  type: Component,
113
139
  args: [{ selector: 'bizdoc-report-viewer', template: "<mat-progress-bar mode=\"buffer\" [value]=progress [bufferValue]=0 [style.visibility]=\"progress > 0 && progress < 100 ? 'visible':'hidden'\"></mat-progress-bar>\r\n<ng-container #vc></ng-container>\r\n", styles: [":host{display:flex;flex-direction:column}:host :last-child{flex:1 auto}\n"] }]
114
- }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.PromptService }, { type: i0.Injector }, { type: i3.HubService }, { type: i4.TranslateService }, { type: i5.BizDocComponentFactoryResolver }]; }, propDecorators: { report: [{
140
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.PromptService }, { type: i0.Injector }, { type: i3.HubService }, { type: i4.TranslateService }, { type: i5.SessionService }, { type: i6.BizDocComponentFactoryResolver }]; }, propDecorators: { report: [{
115
141
  type: Input
116
142
  }], args: [{
117
143
  type: Input
@@ -125,4 +151,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
125
151
  type: HostListener,
126
152
  args: ['window:resize']
127
153
  }] } });
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXZpZXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL3JlcG9ydHMvcmVwb3J0LXZpZXdlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL3JlcG9ydHMvcmVwb3J0LXZpZXdlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBYSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFFM0ksT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBSTdCLE9BQU8sRUFBRSxTQUFTLEVBQW1CLE1BQU0sY0FBYyxDQUFDO0FBSzFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7OztBQU9sRSw0QkFBNEI7QUFDNUIsTUFBTSxPQUFPLHFCQUFxQjtJQWVoQyx3QkFBd0I7SUFDeEIsWUFDVSxLQUFpQixFQUNqQixHQUFrQixFQUNsQixTQUFtQixFQUNuQixJQUFnQixFQUNoQixVQUE0QixFQUM1QixnQkFBZ0Q7UUFMaEQsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUNqQixRQUFHLEdBQUgsR0FBRyxDQUFlO1FBQ2xCLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbkIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQUM1QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWdDO1FBbkIxRCxhQUFR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LENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7a0hBMUdVLHFCQUFxQjtzR0FBckIscUJBQXFCLDhPQU9PLGdCQUFnQixtRUFDNUMsa0JBQWtCLHFFQzdCL0IsNE1BRUE7MkZEbUJhLHFCQUFxQjtrQkFOakMsU0FBUzsrQkFDRSxzQkFBc0I7eVBBTXZCLE1BQU07c0JBQWQsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBS3FELGFBQWE7c0JBQXZFLFNBQVM7dUJBQUMsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQzFCLEtBQUs7c0JBQW5DLFNBQVM7dUJBQUMsa0JBQWtCO2dCQStDN0IsTUFBTTtzQkFETCxZQUFZO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdDaGlsZCwgT25EZXN0cm95LCBWaWV3Q29udGFpbmVyUmVmLCBJbmplY3RvciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHRha2VVbnRpbCwgZmlsdGVyLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCAqIGFzIFhMU1ggZnJvbSAneGxzeCc7XHJcbmltcG9ydCB7IFJlcG9ydENvbXBvbmVudCB9IGZyb20gJy4uL2NvcmUvYmFzZSc7XHJcbmltcG9ydCB7IFJlcG9ydCB9IGZyb20gJy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgUGFyYW1NYXAgfSBmcm9tICcuLi9jb3JlL2NvbmZpZ3VyYXRpb24nO1xyXG5pbXBvcnQgeyBSZXBvcnRSZWYsIEV4cG9ydEV2ZW50QXJncyB9IGZyb20gJy4vcmVwb3J0LXJlZic7XHJcbmltcG9ydCB7IEh1YlNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL2h1Yi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gJy4uL2NvcmUvcHJvbXB0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS90cmFuc2xhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IEJpekRvY0NvbXBvbmVudEZhY3RvcnlSZXNvbHZlciB9IGZyb20gJy4uL2NvcmUvY29tcG9uZW50LWZhY3RvcnktcmVzb2x2ZXInO1xyXG5pbXBvcnQgeyBUYWJsZVZpZXdDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlL3RhYmxlLXZpZXcuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLXJlcG9ydC12aWV3ZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXBvcnQtdmlld2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9yZXBvcnQtdmlld2VyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuLyoqIHJlcG9ydHZpZXdlciBjb21wb25lbnQqL1xyXG5leHBvcnQgY2xhc3MgUmVwb3J0Vmlld2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpIHJlcG9ydCE6IFJlcG9ydDtcclxuICBASW5wdXQoKSBhcmdzOiBQYXJhbU1hcDtcclxuICBwcm9ncmVzcyA9IDA7XHJcbiAgcHVibGljIGdldCByZXBvcnRSZWYoKTogUmVwb3J0UmVmIHtcclxuICAgIHJldHVybiB0aGlzLl9yZXBvcnRSZWY7XHJcbiAgfVxyXG4gIEBWaWV3Q2hpbGQoJ3ZjJywgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZjtcclxuICBAVmlld0NoaWxkKFRhYmxlVmlld0NvbXBvbmVudCkgdGFibGU6IFRhYmxlVmlld0NvbXBvbmVudDtcclxuICBwcml2YXRlIF9kYXRhOiBhbnlbXTtcclxuICBwcml2YXRlIF9pbnN0YW5jZTogUmVwb3J0Q29tcG9uZW50PGFueSwgYW55PjtcclxuICBwcml2YXRlIF9yZXBvcnRSZWY6IFJlcG9ydFJlZjtcclxuICBwcml2YXRlIF9wcm9jZXNzaW5nID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfcmVzaXppbmcgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHt9KTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICAvKiogcmVwb3J0dmlld2VyIGN0b3IgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2h0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIF9zYjogUHJvbXB0U2VydmljZSxcclxuICAgIHByaXZhdGUgX2luamVjdG9yOiBJbmplY3RvcixcclxuICAgIHByaXZhdGUgX2h1YjogSHViU2VydmljZSxcclxuICAgIHByaXZhdGUgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX2ZhY3RvcnlSZXNvbHZlcjogQml6RG9jQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyKSB7XHJcbiAgfVxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydyZXBvcnQnXSkge1xyXG4gICAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgICAgdGhpcy5fcmVwb3J0UmVmICYmIHRoaXMuX3JlcG9ydFJlZi5fZGVzdHJveSgpO1xyXG4gICAgICB0aGlzLl9yZXBvcnRSZWYgPSBuZXcgUmVwb3J0UmVmKHRoaXMucmVwb3J0LCB0aGlzLl9odWIsIHRoaXMuX2RpbSgpKTtcclxuICAgICAgaWYgKHRoaXMucmVwb3J0LnRlbXBsYXRlKVxyXG4gICAgICAgIHRoaXMuX2NyZWF0ZVZpZXcoKTtcclxuICAgICAgZWxzZVxyXG4gICAgICAgIHRoaXMuX2luc3RhbmNlID0gdGhpcy50YWJsZTtcclxuICAgICAgLy8gbGlzdGVuIHRvIHByb2dyZXNzXHJcbiAgICAgIHRoaXMuX2h1Yi5yZXBvcnRQcm9ncmVzcyQuXHJcbiAgICAgICAgcGlwZShmaWx0ZXIoZSA9PlxyXG4gICAgICAgICAgZS5uYW1lID09PSB0aGlzLnJlcG9ydC5uYW1lKSxcclxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSxcclxuICAgICAgICAgIGRlYm91bmNlVGltZSg1MCkpLlxyXG4gICAgICAgIHN1YnNjcmliZShpID0+IHtcclxuICAgICAgICAgIGlmICh0aGlzLl9wcm9jZXNzaW5nKSB0aGlzLnByb2dyZXNzID0gaS5wcm9ncmVzcztcclxuICAgICAgICB9KTtcclxuICAgICAgdGhpcy5fcmVzaXppbmcucGlwZShkZWJvdW5jZVRpbWUoMTUwKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuX3JlcG9ydFJlZi5fcmVzaXplLm5leHQodGhpcy5fZGltKCkpKTtcclxuICAgIH1cclxuICB9XHJcbiAgLyoqICovXHJcbiAgcHJpdmF0ZSBfY3JlYXRlVmlldygpIHtcclxuICAgIGNvbnN0IGNvbXBvbmVudEZhY3RvcnkgPSB0aGlzLl9mYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZSh0aGlzLnJlcG9ydC50ZW1wbGF0ZSk7XHJcbiAgICB0aGlzLnZpZXdDb250YWluZXIuY2xlYXIoKTtcclxuICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKFt7IHByb3ZpZGU6IFJlcG9ydFJlZiwgdXNlVmFsdWU6IHRoaXMuX3JlcG9ydFJlZiB9XSwgdGhpcy5faW5qZWN0b3IpO1xyXG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnRGYWN0b3J5LCAwLCBpbmplY3Rvcik7XHJcblxyXG4gICAgdGhpcy5faW5zdGFuY2UgPSBjb21wb25lbnRSZWYuaW5zdGFuY2UgYXMgUmVwb3J0Q29tcG9uZW50PGFueSwgYW55PjtcclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpXHJcbiAgcmVzaXplKCkge1xyXG4gICAgdGhpcy5fcmVzaXppbmcubmV4dCh7fSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2RpbSgpOiB7IGhlaWdodDogbnVtYmVyOyB3aWR0aDogbnVtYmVyIH0ge1xyXG4gICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSh0aGlzLnZpZXdDb250YWluZXIuZWxlbWVudC5uYXRpdmVFbGVtZW50IGFzIEhUTUxEaXZFbGVtZW50KS5wYXJlbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgcmV0dXJuIHsgd2lkdGg6IHdpZHRoIC0gMiwgaGVpZ2h0IH07XHJcbiAgfVxyXG4gIC8qKiAqL1xyXG4gIGV4ZWN1dGUoKSB7XHJcbiAgICB0aGlzLl9wcm9jZXNzaW5nID0gdHJ1ZTtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnBvc3Q8YW55W10+KGAvYXBpL3JlcG9ydC8ke3RoaXMucmVwb3J0Lm5hbWV9YCwgdGhpcy5hcmdzKS5cclxuICAgICAgcGlwZSh0YXAociA9PiB7XHJcbiAgICAgICAgdGhpcy5faW5zdGFuY2Uub25CaW5kKHIsIHRoaXMuYXJncyk7XHJcbiAgICAgICAgdGhpcy5fZGF0YSA9IHI7XHJcbiAgICAgICAgdGhpcy5fcHJvY2Vzc2luZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMucHJvZ3Jlc3MgPSAwO1xyXG4gICAgICB9LCAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fc2IuZXJyb3IoKTtcclxuICAgICAgICB0aGlzLnByb2dyZXNzID0gMDtcclxuICAgICAgICB0aGlzLl9wcm9jZXNzaW5nID0gZmFsc2U7XHJcbiAgICAgIH0pKS50b1Byb21pc2UoKVxyXG4gIH1cclxuXHJcbiAgZXhwbG9yZShpdGVtOiBhbnkpIHtcclxuICAgIGNvbnN0IGFyZ3MgPSB7fTtcclxuICAgIGNvbnN0IGtleXMgPSB0aGlzLnJlcG9ydC5maWVsZHMuZmlsdGVyKGYgPT4gZi5rZXkpO1xyXG4gICAgaWYgKGtleXMubGVuZ3RoID09PSAwKVxyXG4gICAgICB0aHJvdyBgcmVwb3J0ICR7dGhpcy5yZXBvcnQubmFtZX0gaXRlbSBtb2RlbCBtaXNzaW5nIGtleSBhdHRyaWJ1dGVgO1xyXG4gICAga2V5cy5mb3JFYWNoKGYgPT4gYXJnc1tmLm5hbWVdID0gaXRlbVtmLm5hbWVdKTtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnB1dDxhbnlbXT4oYC9hcGkvcmVwb3J0LyR7dGhpcy5yZXBvcnQubmFtZX1gLCBhcmdzKS50b1Byb21pc2UoKTtcclxuICB9XHJcblxyXG4gIC8qKiAqL1xyXG4gIGV4cG9ydEV4Y2VsKCkge1xyXG4gICAgY29uc3QgYXJncyA9IHsgZGF0YTogdGhpcy5fZGF0YS5tYXAociA9PiB7IHJldHVybiB7IC4uLnIgfSB9KSB9IGFzIEV4cG9ydEV2ZW50QXJncztcclxuICAgIHRoaXMuX3JlcG9ydFJlZi5fZXhwb3J0aW5nLm5leHQoYXJncyk7XHJcbiAgICBpZiAoYXJncy5jYW5jZWwpIHJldHVybjtcclxuXHJcbiAgICBjb25zdCB3cyA9IFhMU1gudXRpbHMuanNvbl90b19zaGVldChhcmdzLmRhdGEpO1xyXG4gICAgY29uc3Qgd2IgPSBYTFNYLnV0aWxzLmJvb2tfbmV3KCk7XHJcbiAgICBjb25zdCBuYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnU2hlZXROJywgMSk7XHJcbiAgICB3Yi5TaGVldHNbbmFtZV0gPSB3cztcclxuICAgIHdiLlNoZWV0TmFtZXMucHVzaChuYW1lKTtcclxuICAgIFhMU1gud3JpdGVGaWxlKHdiLCBgJHt0aGlzLnJlcG9ydC50aXRsZX0ueGxzeGApO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9yZXBvcnRSZWYuX2Rlc3Ryb3koKTtcclxuICAgIHRoaXMuX3Jlc2l6aW5nLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIiwiPG1hdC1wcm9ncmVzcy1iYXIgbW9kZT1cImJ1ZmZlclwiIFt2YWx1ZV09cHJvZ3Jlc3MgW2J1ZmZlclZhbHVlXT0wIFtzdHlsZS52aXNpYmlsaXR5XT1cInByb2dyZXNzID4gMCAmJiBwcm9ncmVzcyA8IDEwMCA/ICd2aXNpYmxlJzonaGlkZGVuJ1wiPjwvbWF0LXByb2dyZXNzLWJhcj5cclxuPG5nLWNvbnRhaW5lciAjdmM+PC9uZy1jb250YWluZXI+XHJcbiJdfQ==
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXZpZXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL3JlcG9ydHMvcmVwb3J0LXZpZXdlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL3JlcG9ydHMvcmVwb3J0LXZpZXdlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBYSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFFM0ksT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQVF4RCxPQUFPLEVBQUUsU0FBUyxFQUFtQixNQUFNLGNBQWMsQ0FBQztBQUsxRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7Ozs7O0FBUWxFLDRCQUE0QjtBQUM1QixNQUFNLE9BQU8scUJBQXFCO0lBZWhDLHdCQUF3QjtJQUN4QixZQUNVLEtBQWlCLEVBQ2pCLEdBQWtCLEVBQ2xCLFNBQW1CLEVBQ25CLElBQWdCLEVBQ2hCLFVBQTRCLEVBQzVCLFFBQXdCLEVBQ3hCLGdCQUFnRDtRQU5oRCxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ2pCLFFBQUcsR0FBSCxHQUFHLENBQWU7UUFDbEIsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGVBQVUsR0FBVixVQUFVLENBQWtCO1FBQzVCLGFBQVEsR0FBUixRQUFRLENB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Q0FBQztRQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDOztrSEF0SVUscUJBQXFCO3NHQUFyQixxQkFBcUIsOE9BT08sZ0JBQWdCLG1FQUM1QyxrQkFBa0IscUVDbEMvQiw0TUFFQTsyRkR3QmEscUJBQXFCO2tCQU5qQyxTQUFTOytCQUNFLHNCQUFzQjtzUkFNdkIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFLcUQsYUFBYTtzQkFBdkUsU0FBUzt1QkFBQyxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtnQkFDMUIsS0FBSztzQkFBbkMsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBZ0Q3QixNQUFNO3NCQURMLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkLCBPbkRlc3Ryb3ksIFZpZXdDb250YWluZXJSZWYsIEluamVjdG9yLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsLCBmaWx0ZXIsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgV29ya2Jvb2sgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItZXhjZWwtZXhwb3J0JztcclxuaW1wb3J0IHsgV29ya3NoZWV0IH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWV4Y2VsLWV4cG9ydC9zcmMvd29ya3NoZWV0JztcclxuaW1wb3J0IHsgUm93IH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWV4Y2VsLWV4cG9ydC9zcmMvcm93JztcclxuaW1wb3J0IHsgQ2VsbCB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1leGNlbC1leHBvcnQvc3JjL2NlbGwnO1xyXG5pbXBvcnQgeyBDb2x1bW4gfSBmcm9tICdAc3luY2Z1c2lvbi9lajItZXhjZWwtZXhwb3J0L3NyYy9jb2x1bW4nO1xyXG5pbXBvcnQgeyBSZXBvcnRDb21wb25lbnQgfSBmcm9tICcuLi9jb3JlL2Jhc2UnO1xyXG5pbXBvcnQgeyBSZXBvcnQgfSBmcm9tICcuLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IFBhcmFtTWFwIH0gZnJvbSAnLi4vY29yZS9jb25maWd1cmF0aW9uJztcclxuaW1wb3J0IHsgUmVwb3J0UmVmLCBFeHBvcnRFdmVudEFyZ3MgfSBmcm9tICcuL3JlcG9ydC1yZWYnO1xyXG5pbXBvcnQgeyBIdWJTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9odWIuc2VydmljZSc7XHJcbmltcG9ydCB7IFByb21wdFNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3Byb21wdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uL2NvcmUvdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCaXpEb2NDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIgfSBmcm9tICcuLi9jb3JlL2NvbXBvbmVudC1mYWN0b3J5LXJlc29sdmVyJztcclxuaW1wb3J0IHsgVGFibGVWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS90YWJsZS12aWV3LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9zZXNzaW9uLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtcmVwb3J0LXZpZXdlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3JlcG9ydC12aWV3ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3JlcG9ydC12aWV3ZXIuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG4vKiogcmVwb3J0dmlld2VyIGNvbXBvbmVudCovXHJcbmV4cG9ydCBjbGFzcyBSZXBvcnRWaWV3ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgQElucHV0KCkgcmVwb3J0ITogUmVwb3J0O1xyXG4gIEBJbnB1dCgpIGFyZ3M6IFBhcmFtTWFwO1xyXG4gIHByb2dyZXNzID0gMDtcclxuICBwdWJsaWMgZ2V0IHJlcG9ydFJlZigpOiBSZXBvcnRSZWYge1xyXG4gICAgcmV0dXJuIHRoaXMuX3JlcG9ydFJlZjtcclxuICB9XHJcbiAgQFZpZXdDaGlsZCgndmMnLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KSB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmO1xyXG4gIEBWaWV3Q2hpbGQoVGFibGVWaWV3Q29tcG9uZW50KSB0YWJsZTogVGFibGVWaWV3Q29tcG9uZW50O1xyXG4gIHByaXZhdGUgX2RhdGE6IGFueVtdO1xyXG4gIHByaXZhdGUgX2luc3RhbmNlOiBSZXBvcnRDb21wb25lbnQ8YW55LCBhbnk+O1xyXG4gIHByaXZhdGUgX3JlcG9ydFJlZjogUmVwb3J0UmVmO1xyXG4gIHByaXZhdGUgX3Byb2Nlc3NpbmcgPSBmYWxzZTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9yZXNpemluZyA9IG5ldyBCZWhhdmlvclN1YmplY3Qoe30pO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIC8qKiByZXBvcnR2aWV3ZXIgY3RvciAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgX3NiOiBQcm9tcHRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJpdmF0ZSBfaHViOiBIdWJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9mYWN0b3J5UmVzb2x2ZXI6IEJpekRvY0NvbXBvbmVudEZhY3RvcnlSZXNvbHZlcikge1xyXG4gIH1cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1sncmVwb3J0J10pIHtcclxuICAgICAgdGhpcy5fZGVzdHJveS5uZXh0KCk7XHJcbiAgICAgIHRoaXMuX3JlcG9ydFJlZiAmJiB0aGlzLl9yZXBvcnRSZWYuX2Rlc3Ryb3koKTtcclxuICAgICAgdGhpcy5fcmVwb3J0UmVmID0gbmV3IFJlcG9ydFJlZih0aGlzLnJlcG9ydCwgdGhpcy5faHViLCB0aGlzLl9kaW0oKSk7XHJcbiAgICAgIGlmICh0aGlzLnJlcG9ydC50ZW1wbGF0ZSlcclxuICAgICAgICB0aGlzLl9jcmVhdGVWaWV3KCk7XHJcbiAgICAgIGVsc2VcclxuICAgICAgICB0aGlzLl9pbnN0YW5jZSA9IHRoaXMudGFibGU7XHJcbiAgICAgIC8vIGxpc3RlbiB0byBwcm9ncmVzc1xyXG4gICAgICB0aGlzLl9odWIucmVwb3J0UHJvZ3Jlc3MkLlxyXG4gICAgICAgIHBpcGUoZmlsdGVyKGUgPT5cclxuICAgICAgICAgIGUubmFtZSA9PT0gdGhpcy5yZXBvcnQubmFtZSksXHJcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSksXHJcbiAgICAgICAgICBkZWJvdW5jZVRpbWUoNTApKS5cclxuICAgICAgICBzdWJzY3JpYmUoaSA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy5fcHJvY2Vzc2luZykgdGhpcy5wcm9ncmVzcyA9IGkucHJvZ3Jlc3M7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIHRoaXMuX3Jlc2l6aW5nLnBpcGUoZGVib3VuY2VUaW1lKDE1MCkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9yZXBvcnRSZWYuX3Jlc2l6ZS5uZXh0KHRoaXMuX2RpbSgpKSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qKiAqL1xyXG4gIHByaXZhdGUgX2NyZWF0ZVZpZXcoKSB7XHJcbiAgICBjb25zdCBjb21wb25lbnRGYWN0b3J5ID0gdGhpcy5fZmFjdG9yeVJlc29sdmVyLnJlc29sdmUodGhpcy5yZXBvcnQudGVtcGxhdGUpO1xyXG4gICAgdGhpcy52aWV3Q29udGFpbmVyLmNsZWFyKCk7XHJcbiAgICBjb25zdCBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZShbeyBwcm92aWRlOiBSZXBvcnRSZWYsIHVzZVZhbHVlOiB0aGlzLl9yZXBvcnRSZWYgfV0sIHRoaXMuX2luamVjdG9yKTtcclxuICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50RmFjdG9yeSwgMCwgaW5qZWN0b3IpO1xyXG5cclxuICAgIHRoaXMuX2luc3RhbmNlID0gY29tcG9uZW50UmVmLmluc3RhbmNlIGFzIFJlcG9ydENvbXBvbmVudDxhbnksIGFueT47XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxyXG4gIHJlc2l6ZSgpIHtcclxuICAgIHRoaXMuX3Jlc2l6aW5nLm5leHQoe30pO1xyXG4gIH1cclxuICBwcml2YXRlIF9kaW0oKTogeyBoZWlnaHQ6IG51bWJlcjsgd2lkdGg6IG51bWJlciB9IHtcclxuICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCB9ID0gKHRoaXMudmlld0NvbnRhaW5lci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTERpdkVsZW1lbnQpLnBhcmVudEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICByZXR1cm4geyB3aWR0aDogd2lkdGggLSAyLCBoZWlnaHQgfTtcclxuICB9XHJcbiAgLyoqICovXHJcbiAgZXhlY3V0ZSgpIHtcclxuICAgIHRoaXMuX3Byb2Nlc3NpbmcgPSB0cnVlO1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucG9zdDxhbnlbXT4oYC9hcGkvcmVwb3J0LyR7dGhpcy5yZXBvcnQubmFtZX1gLCB0aGlzLmFyZ3MpLlxyXG4gICAgICBwaXBlKHRhcChyID0+IHtcclxuICAgICAgICB0aGlzLl9pbnN0YW5jZS5vbkJpbmQociwgdGhpcy5hcmdzKTtcclxuICAgICAgICB0aGlzLl9kYXRhID0gcjtcclxuICAgICAgICB0aGlzLl9wcm9jZXNzaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5wcm9ncmVzcyA9IDA7XHJcbiAgICAgIH0sICgpID0+IHtcclxuICAgICAgICB0aGlzLl9zYi5lcnJvcigpO1xyXG4gICAgICAgIHRoaXMucHJvZ3Jlc3MgPSAwO1xyXG4gICAgICAgIHRoaXMuX3Byb2Nlc3NpbmcgPSBmYWxzZTtcclxuICAgICAgfSkpLnRvUHJvbWlzZSgpXHJcbiAgfVxyXG5cclxuICBleHBsb3JlKGl0ZW06IGFueSkge1xyXG4gICAgY29uc3QgYXJncyA9IHt9O1xyXG4gICAgY29uc3Qga2V5cyA9IHRoaXMucmVwb3J0LmZpZWxkcy5maWx0ZXIoZiA9PiBmLmtleSk7XHJcbiAgICBpZiAoa2V5cy5sZW5ndGggPT09IDApXHJcbiAgICAgIHRocm93IGByZXBvcnQgJHt0aGlzLnJlcG9ydC5uYW1lfSBpdGVtIG1vZGVsIG1pc3Npbmcga2V5IGF0dHJpYnV0ZWA7XHJcbiAgICBrZXlzLmZvckVhY2goZiA9PiBhcmdzW2YubmFtZV0gPSBpdGVtW2YubmFtZV0pO1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0PGFueVtdPihgL2FwaS9yZXBvcnQvJHt0aGlzLnJlcG9ydC5uYW1lfWAsIGFyZ3MpLnRvUHJvbWlzZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqICovXHJcbiAgZXhwb3J0RXhjZWwoKSB7XHJcbiAgICBjb25zdCBhcmdzID0geyBkYXRhOiB0aGlzLl9kYXRhLm1hcChyID0+IHsgcmV0dXJuIHsgLi4uciB9IH0pIH0gYXMgRXhwb3J0RXZlbnRBcmdzO1xyXG4gICAgdGhpcy5fcmVwb3J0UmVmLl9leHBvcnRpbmcubmV4dChhcmdzKTtcclxuICAgIGlmIChhcmdzLmNhbmNlbCkgcmV0dXJuO1xyXG4gICAgY29uc3Qgcm93cyA9IFt7XHJcbiAgICAgIGluZGV4OiAxLFxyXG4gICAgICBjZWxsczogdGhpcy5yZXBvcnQuY29sdW1ucy5tYXAoKGMsIGopID0+ICh7XHJcbiAgICAgICAgaW5kZXg6IGogKyAxLCB2YWx1ZTogYy5sYWJlbCxcclxuICAgICAgICBjZWxsU3R5bGU6IHtcclxuICAgICAgICAgIGJvbGQ6IHRydWUsXHJcbiAgICAgICAgICBoQWxpZ246IGMudHlwZSA9PT0gJ051bWJlcicgfHwgYy50eXBlID09PSAnQ3VycmVuY3knID8gJ3JpZ2h0JyA6ICdnZW5lcmFsJ1xyXG4gICAgICAgIH1cclxuICAgICAgfSBhcyBDZWxsKSlcclxuICAgIH1dIGFzIFJvd1tdO1xyXG4gICAgYXJncy5kYXRhLmZvckVhY2goKHIsIGkpID0+IHJvd3MucHVzaChcclxuICAgICAge1xyXG4gICAgICAgIGluZGV4OiBpICsgMixcclxuICAgICAgICBjZWxsczogdGhpcy5yZXBvcnQuY29sdW1ucy5tYXAoKGMsIGopID0+ICh7XHJcbiAgICAgICAgICBpbmRleDogaiArIDEsIHZhbHVlOiByW2MubmFtZV0sXHJcbiAgICAgICAgICBjZWxsU3R5bGU6IHtcclxuICAgICAgICAgICAgaEFsaWduOiBjLnR5cGUgPT09ICdOdW1iZXInIHx8IGMudHlwZSA9PT0gJ0N1cnJlbmN5JyA/ICdyaWdodCcgOiAnZ2VuZXJhbCdcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGFzIENlbGwpKVxyXG4gICAgICB9IGFzIFJvdykpO1xyXG4gICAgY29uc3QgYm9vayA9IG5ldyBXb3JrYm9vayhcclxuICAgICAge1xyXG4gICAgICAgIHdvcmtzaGVldHM6IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgIGVuYWJsZVJ0bDogdGhpcy5fc2Vzc2lvbi5pbnZlcnNlLFxyXG4gICAgICAgICAgICBuYW1lOiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdTaGVldE4nLCAxKSxcclxuICAgICAgICAgICAgY29sdW1uczogdGhpcy5yZXBvcnQuY29sdW1ucy5tYXAoKF8sIGkpID0+ICh7IGluZGV4OiBpICsgMSwgd2lkdGg6IDI1MCB9IGFzIENvbHVtbikpLFxyXG4gICAgICAgICAgICByb3dzXHJcbiAgICAgICAgICB9IGFzIFdvcmtzaGVldFxyXG4gICAgICAgIF0sXHJcbiAgICAgIH0sXHJcbiAgICAgICd4bHN4J1xyXG4gICAgKTtcclxuICAgIGJvb2suc2F2ZShgJHt0aGlzLnJlcG9ydC50aXRsZX0ueGxzeGApO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9yZXBvcnRSZWYuX2Rlc3Ryb3koKTtcclxuICAgIHRoaXMuX3Jlc2l6aW5nLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIiwiPG1hdC1wcm9ncmVzcy1iYXIgbW9kZT1cImJ1ZmZlclwiIFt2YWx1ZV09cHJvZ3Jlc3MgW2J1ZmZlclZhbHVlXT0wIFtzdHlsZS52aXNpYmlsaXR5XT1cInByb2dyZXNzID4gMCAmJiBwcm9ncmVzcyA8IDEwMCA/ICd2aXNpYmxlJzonaGlkZGVuJ1wiPjwvbWF0LXByb2dyZXNzLWJhcj5cclxuPG5nLWNvbnRhaW5lciAjdmM+PC9uZy1jb250YWluZXI+XHJcbiJdfQ==
@@ -105,9 +105,9 @@ export class ReportComponent {
105
105
  this._destroy.complete();
106
106
  }
107
107
  }
108
- ReportComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ReportComponent, deps: [{ token: i1.WindowTitleService }, { token: i2.ActivatedRoute }, { token: i3.SessionService }, { token: i0.ChangeDetectorRef }, { token: i4.PromptService }, { token: i5.GuideService }], target: i0.ɵɵFactoryTarget.Component });
109
- ReportComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ReportComponent, selector: "bizdoc-report", viewQueries: [{ propertyName: "filter", first: true, predicate: MatSidenav, descendants: true, static: true }, { propertyName: "viewer", first: true, predicate: ReportViewerComponent, descendants: true, static: true }], ngImport: i0, template: "<mat-toolbar>\r\n <button mat-icon-button (click)=\"viewer.execute()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"viewer.exportExcel()\" bizdocTooltip=\"{{'Download' | translate}}\"><mat-icon>save_alt</mat-icon></button>\r\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\" *ngIf=\"report.guide\"><mat-icon>help_outline</mat-icon></button>\r\n <button mat-icon-button (click)=\"filterToggle()\" bizdocTooltip=\"{{'Filter' | translate}}\"><mat-icon>filter_list</mat-icon></button>\r\n</mat-toolbar>\r\n<mat-sidenav-container class=\"page-container\">\r\n <mat-sidenav-content>\r\n <bizdoc-report-viewer [report]=\"report\" [args]=\"args\"></bizdoc-report-viewer>\r\n </mat-sidenav-content>\r\n <mat-sidenav mode=\"over\" opened=\"false\" #filter position=\"end\">\r\n <bizdoc-report-arguments *ngIf=\"viewer.reportRef\" [args]=\"args\" (argsChange)=\"argsChange($event)\" [reportRef]=\"viewer.reportRef\"\r\n [template]=\"report.argumentsTemplate\" [arguments]=\"report.arguments\"></bizdoc-report-arguments>\r\n </mat-sidenav>\r\n</mat-sidenav-container>\r\n", styles: [".contents{display:flex;flex-direction:column}\n"], components: [{ type: i6.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i9.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { type: i9.MatSidenavContent, selector: "mat-sidenav-content" }, { type: i10.ReportViewerComponent, selector: "bizdoc-report-viewer", inputs: ["report", "args"] }, { type: i9.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { type: i11.ReportArgumentsComponent, selector: "bizdoc-report-arguments", inputs: ["reportRef", "template", "arguments", "args"], outputs: ["argsChange"] }], directives: [{ type: i12.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i13.MatIconAnimate, selector: "[matAnimate]" }, { type: i14.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i15.TranslatePipe } });
110
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ReportComponent, decorators: [{
108
+ ReportComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: ReportComponent, deps: [{ token: i1.WindowTitleService }, { token: i2.ActivatedRoute }, { token: i3.SessionService }, { token: i0.ChangeDetectorRef }, { token: i4.PromptService }, { token: i5.GuideService }], target: i0.ɵɵFactoryTarget.Component });
109
+ ReportComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.0", type: ReportComponent, selector: "bizdoc-report", viewQueries: [{ propertyName: "filter", first: true, predicate: MatSidenav, descendants: true, static: true }, { propertyName: "viewer", first: true, predicate: ReportViewerComponent, descendants: true, static: true }], ngImport: i0, template: "<mat-toolbar>\r\n <button mat-icon-button (click)=\"viewer.execute()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"viewer.exportExcel()\" bizdocTooltip=\"{{'Download' | translate}}\"><mat-icon>save_alt</mat-icon></button>\r\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\" *ngIf=\"report.guide\"><mat-icon>help_outline</mat-icon></button>\r\n <button mat-icon-button (click)=\"filterToggle()\" bizdocTooltip=\"{{'Filter' | translate}}\"><mat-icon>filter_list</mat-icon></button>\r\n</mat-toolbar>\r\n<mat-sidenav-container class=\"page-container\">\r\n <mat-sidenav-content>\r\n <bizdoc-report-viewer [report]=\"report\" [args]=\"args\"></bizdoc-report-viewer>\r\n </mat-sidenav-content>\r\n <mat-sidenav mode=\"over\" opened=\"false\" #filter position=\"end\">\r\n <bizdoc-report-arguments *ngIf=\"viewer.reportRef\" [args]=\"args\" (argsChange)=\"argsChange($event)\" [reportRef]=\"viewer.reportRef\"\r\n [template]=\"report.argumentsTemplate\" [arguments]=\"report.arguments\"></bizdoc-report-arguments>\r\n </mat-sidenav>\r\n</mat-sidenav-container>\r\n", styles: [".contents{display:flex;flex-direction:column}\n"], components: [{ type: i6.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i9.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { type: i9.MatSidenavContent, selector: "mat-sidenav-content" }, { type: i10.ReportViewerComponent, selector: "bizdoc-report-viewer", inputs: ["report", "args"] }, { type: i9.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { type: i11.ReportArgumentsComponent, selector: "bizdoc-report-arguments", inputs: ["reportRef", "template", "arguments", "args"], outputs: ["argsChange"] }], directives: [{ type: i12.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i13.MatIconAnimate, selector: "[matAnimate]" }, { type: i14.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i15.TranslatePipe } });
110
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: ReportComponent, decorators: [{
111
111
  type: Component,
112
112
  args: [{ selector: 'bizdoc-report', template: "<mat-toolbar>\r\n <button mat-icon-button (click)=\"viewer.execute()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"viewer.exportExcel()\" bizdocTooltip=\"{{'Download' | translate}}\"><mat-icon>save_alt</mat-icon></button>\r\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\" *ngIf=\"report.guide\"><mat-icon>help_outline</mat-icon></button>\r\n <button mat-icon-button (click)=\"filterToggle()\" bizdocTooltip=\"{{'Filter' | translate}}\"><mat-icon>filter_list</mat-icon></button>\r\n</mat-toolbar>\r\n<mat-sidenav-container class=\"page-container\">\r\n <mat-sidenav-content>\r\n <bizdoc-report-viewer [report]=\"report\" [args]=\"args\"></bizdoc-report-viewer>\r\n </mat-sidenav-content>\r\n <mat-sidenav mode=\"over\" opened=\"false\" #filter position=\"end\">\r\n <bizdoc-report-arguments *ngIf=\"viewer.reportRef\" [args]=\"args\" (argsChange)=\"argsChange($event)\" [reportRef]=\"viewer.reportRef\"\r\n [template]=\"report.argumentsTemplate\" [arguments]=\"report.arguments\"></bizdoc-report-arguments>\r\n </mat-sidenav>\r\n</mat-sidenav-container>\r\n", styles: [".contents{display:flex;flex-direction:column}\n"] }]
113
113
  }], ctorParameters: function () { return [{ type: i1.WindowTitleService }, { type: i2.ActivatedRoute }, { type: i3.SessionService }, { type: i0.ChangeDetectorRef }, { type: i4.PromptService }, { type: i5.GuideService }]; }, propDecorators: { filter: [{