@bizdoc/core 1.10.7 → 1.11.0-next.1

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 (331) hide show
  1. package/assets/bizdoc-schema.json +7 -4
  2. package/esm2020/lib/admin/admin-dismiss.service.mjs +3 -3
  3. package/esm2020/lib/admin/admin-menu.component.mjs +3 -3
  4. package/esm2020/lib/admin/core/ace.input.mjs +3 -3
  5. package/esm2020/lib/admin/core/color-picker.input.mjs +3 -3
  6. package/esm2020/lib/admin/core/search.input.mjs +3 -3
  7. package/esm2020/lib/admin/diff/configuration-diff.component.mjs +3 -3
  8. package/esm2020/lib/admin/document-trace/document-trace.component.mjs +3 -3
  9. package/esm2020/lib/admin/document-trace/reassign.dialog.mjs +3 -3
  10. package/esm2020/lib/admin/document-trace/trace-element.component.mjs +3 -3
  11. package/esm2020/lib/admin/form/form.resolve.service.mjs +3 -3
  12. package/esm2020/lib/admin/form/form.service.mjs +3 -3
  13. package/esm2020/lib/admin/form/workflow/node.component.mjs +3 -3
  14. package/esm2020/lib/admin/form/workflow/role-node.component.mjs +3 -3
  15. package/esm2020/lib/admin/form/workflow/workflow.component.mjs +3 -3
  16. package/esm2020/lib/admin/indices/manage-cube-index.component.mjs +3 -3
  17. package/esm2020/lib/admin/patterns/patterns.component.mjs +3 -3
  18. package/esm2020/lib/admin/permissions/permissions.component.mjs +3 -3
  19. package/esm2020/lib/admin/positions/positions-popup.component.mjs +3 -3
  20. package/esm2020/lib/admin/positions/positions.component.mjs +7 -7
  21. package/esm2020/lib/admin/profiler/profiler.component.mjs +3 -3
  22. package/esm2020/lib/admin/utility-wrapper.component.mjs +3 -3
  23. package/esm2020/lib/admin/utility.pane.component.mjs +3 -3
  24. package/esm2020/lib/app.component.mjs +6 -6
  25. package/esm2020/lib/bizdoc.module.mjs +4 -4
  26. package/esm2020/lib/browse/browse-items.component.mjs +6 -6
  27. package/esm2020/lib/browse/browse.mobile.component.mjs +4 -4
  28. package/esm2020/lib/browse/browse.pane.component.mjs +4 -4
  29. package/esm2020/lib/browse/expanded-item/expanded-item.component.mjs +3 -3
  30. package/esm2020/lib/browse/filter/filter.component.mjs +3 -3
  31. package/esm2020/lib/browse/folders-menu.component.mjs +3 -3
  32. package/esm2020/lib/chat/chat-info.mjs +3 -3
  33. package/esm2020/lib/chat/chat.mobile.component.mjs +3 -3
  34. package/esm2020/lib/chat/chat.service.mjs +3 -3
  35. package/esm2020/lib/chat/contacts.component.mjs +6 -6
  36. package/esm2020/lib/chat/contacts.pane.component.mjs +3 -3
  37. package/esm2020/lib/chat/conversation.component.mjs +3 -3
  38. package/esm2020/lib/chat/conversation.pane.component.mjs +3 -3
  39. package/esm2020/lib/compose/action/action-picker.component.mjs +3 -3
  40. package/esm2020/lib/compose/action/action.dialog.mjs +3 -3
  41. package/esm2020/lib/compose/action/action.pane.dialog.mjs +3 -3
  42. package/esm2020/lib/compose/action/assign-action.component.mjs +3 -3
  43. package/esm2020/lib/compose/action/return-action.component.mjs +3 -3
  44. package/esm2020/lib/compose/attachments/attachments.component.mjs +29 -21
  45. package/esm2020/lib/compose/attachments/preview/attachment-preview.component.mjs +10 -16
  46. package/esm2020/lib/compose/attachments/progress-button.directive.mjs +3 -3
  47. package/esm2020/lib/compose/can-deactivate-changes.service.mjs +3 -3
  48. package/esm2020/lib/compose/comments/Comments.pane.component.mjs +3 -3
  49. package/esm2020/lib/compose/comments/comment.component.mjs +3 -3
  50. package/esm2020/lib/compose/comments/comments.component.mjs +3 -3
  51. package/esm2020/lib/compose/comments/edit-comment.component.mjs +3 -3
  52. package/esm2020/lib/compose/comments/edits.component.mjs +3 -3
  53. package/esm2020/lib/compose/comments/quick-comment.component.exp.mjs +3 -3
  54. package/esm2020/lib/compose/comments/votes.component.mjs +3 -3
  55. package/esm2020/lib/compose/compose-resolve.service.mjs +6 -6
  56. package/esm2020/lib/compose/compose.mobile.component.mjs +5 -5
  57. package/esm2020/lib/compose/compose.pane.component.mjs +6 -6
  58. package/esm2020/lib/compose/copy/copy.dialog.mjs +3 -3
  59. package/esm2020/lib/compose/dismiss.service.mjs +3 -3
  60. package/esm2020/lib/compose/document-resolver.service.mjs +3 -3
  61. package/esm2020/lib/compose/document.component.mjs +3 -3
  62. package/esm2020/lib/compose/document.mobile.component.mjs +3 -3
  63. package/esm2020/lib/compose/document.pane.component.mjs +3 -3
  64. package/esm2020/lib/compose/events/events.component.mjs +3 -3
  65. package/esm2020/lib/compose/form-selector/form-selector.sheet.mjs +5 -5
  66. package/esm2020/lib/compose/form.component.mjs +37 -11
  67. package/esm2020/lib/compose/new-menu.component.mjs +5 -5
  68. package/esm2020/lib/compose/privilage.directive.mjs +6 -6
  69. package/esm2020/lib/compose/recipient-resolver.service.mjs +3 -3
  70. package/esm2020/lib/compose/save-changes.dialog.mjs +3 -3
  71. package/esm2020/lib/compose/state.component.mjs +3 -3
  72. package/esm2020/lib/compose/tag/tags.component.mjs +3 -3
  73. package/esm2020/lib/compose/trace/flow.component.mjs +10 -7
  74. package/esm2020/lib/compose/trace/people.component.mjs +3 -3
  75. package/esm2020/lib/compose/trace/trace.base.mjs +3 -3
  76. package/esm2020/lib/compose/trace/trace.component.mjs +44 -18
  77. package/esm2020/lib/compose/trace/trace.pane.component.mjs +4 -4
  78. package/esm2020/lib/compose/version-compare/version-compare.component.mjs +3 -3
  79. package/esm2020/lib/compose/version-compare/version-compare.directive.mjs +9 -9
  80. package/esm2020/lib/compose/version-compare/version.pane.component.mjs +3 -3
  81. package/esm2020/lib/core/NgComponentOutlet.mjs +3 -3
  82. package/esm2020/lib/core/account.service.mjs +3 -3
  83. package/esm2020/lib/core/animated-icon/animated-icon.directive.mjs +3 -3
  84. package/esm2020/lib/core/avatar/avatar.component.mjs +3 -3
  85. package/esm2020/lib/core/base.mjs +1 -1
  86. package/esm2020/lib/core/component-factory-resolver.mjs +3 -3
  87. package/esm2020/lib/core/configuration.mjs +2 -1
  88. package/esm2020/lib/core/controls/address.input.mjs +3 -3
  89. package/esm2020/lib/core/controls/auto-complete.input.mjs +3 -3
  90. package/esm2020/lib/core/controls/combination-picker-body.mjs +3 -3
  91. package/esm2020/lib/core/controls/combination-picker.mjs +3 -3
  92. package/esm2020/lib/core/controls/combination-pool.mjs +3 -3
  93. package/esm2020/lib/core/controls/file.input.mjs +360 -0
  94. package/esm2020/lib/core/controls/select.input.mjs +15 -13
  95. package/esm2020/lib/core/controls/time-picker.mjs +3 -3
  96. package/esm2020/lib/core/controls/timespan.input.mjs +3 -3
  97. package/esm2020/lib/core/datasource.service.mjs +23 -11
  98. package/esm2020/lib/core/functions.mjs +5 -1
  99. package/esm2020/lib/core/guide/guide.component.mjs +3 -3
  100. package/esm2020/lib/core/guide/guide.service.mjs +3 -3
  101. package/esm2020/lib/core/http.interceptor.mjs +3 -3
  102. package/esm2020/lib/core/hub.service.mjs +4 -4
  103. package/esm2020/lib/core/identity/identity.component.mjs +3 -3
  104. package/esm2020/lib/core/info/attachment-info.service.mjs +10 -12
  105. package/esm2020/lib/core/info/document-info.service.mjs +3 -3
  106. package/esm2020/lib/core/info/location-info.component.mjs +3 -3
  107. package/esm2020/lib/core/info/map-info.mjs +3 -3
  108. package/esm2020/lib/core/layout/autocomplete.field.mjs +4 -4
  109. package/esm2020/lib/core/layout/checkbox.field.mjs +3 -3
  110. package/esm2020/lib/core/layout/checkbox.mjs +3 -3
  111. package/esm2020/lib/core/layout/date-range.field.mjs +3 -3
  112. package/esm2020/lib/core/layout/date.field.mjs +3 -3
  113. package/esm2020/lib/core/layout/expression.field.mjs +3 -3
  114. package/esm2020/lib/core/layout/html.field.mjs +3 -3
  115. package/esm2020/lib/core/layout/input.base.mjs +3 -3
  116. package/esm2020/lib/core/layout/input.field.mjs +3 -3
  117. package/esm2020/lib/core/layout/layout.component.mjs +3 -3
  118. package/esm2020/lib/core/layout/numeric.field.mjs +3 -3
  119. package/esm2020/lib/core/layout/select.field.mjs +5 -5
  120. package/esm2020/lib/core/layout/switch.field.mjs +3 -3
  121. package/esm2020/lib/core/layout/textarea.field.mjs +3 -3
  122. package/esm2020/lib/core/layout/timespan.field.mjs +3 -3
  123. package/esm2020/lib/core/lottie-animation.mjs +3 -3
  124. package/esm2020/lib/core/mailbox.service.mjs +111 -35
  125. package/esm2020/lib/core/models.mjs +8 -1
  126. package/esm2020/lib/core/none.component.mjs +3 -3
  127. package/esm2020/lib/core/pipes/action.pipe.mjs +3 -3
  128. package/esm2020/lib/core/pipes/calendar.pipe.mjs +3 -3
  129. package/esm2020/lib/core/pipes/date-format.pipe.mjs +3 -3
  130. package/esm2020/lib/core/pipes/daterange.pipe.mjs +6 -6
  131. package/esm2020/lib/core/pipes/difference.pipe.mjs +3 -3
  132. package/esm2020/lib/core/pipes/duration-format.pipe.mjs +3 -3
  133. package/esm2020/lib/core/pipes/duration.pipe.mjs +3 -3
  134. package/esm2020/lib/core/pipes/form.pipe.mjs +3 -3
  135. package/esm2020/lib/core/pipes/join.pipe.mjs +3 -3
  136. package/esm2020/lib/core/pipes/role.pipe.mjs +3 -3
  137. package/esm2020/lib/core/pipes/sanitize-html.pipe.mjs +3 -3
  138. package/esm2020/lib/core/pipes/sort.pipe.mjs +6 -6
  139. package/esm2020/lib/core/pipes/state.pipe.mjs +3 -3
  140. package/esm2020/lib/core/pipes/time-ago.pipe.mjs +3 -3
  141. package/esm2020/lib/core/pipes/translate.pipe.mjs +6 -6
  142. package/esm2020/lib/core/pipes/type-value.pipe.mjs +3 -3
  143. package/esm2020/lib/core/pipes/user-name.pipe.mjs +3 -3
  144. package/esm2020/lib/core/popup/popup.component.mjs +3 -3
  145. package/esm2020/lib/core/popup/popup.service.mjs +3 -3
  146. package/esm2020/lib/core/popup/tooltip.directive.mjs +6 -6
  147. package/esm2020/lib/core/prompt/ask/ask.dialog.mjs +3 -3
  148. package/esm2020/lib/core/prompt/mask/mask.component.mjs +3 -3
  149. package/esm2020/lib/core/prompt.service.mjs +3 -3
  150. package/esm2020/lib/core/router.mjs +6 -6
  151. package/esm2020/lib/core/session.service.mjs +3 -3
  152. package/esm2020/lib/core/slots/pane-ref.mjs +3 -1
  153. package/esm2020/lib/core/slots/router.directive.mjs +3 -3
  154. package/esm2020/lib/core/slots/router.service.mjs +3 -3
  155. package/esm2020/lib/core/slots/slots.component.mjs +11 -7
  156. package/esm2020/lib/core/tagging/documents.component.mjs +3 -3
  157. package/esm2020/lib/core/tagging/edit-input.component.mjs +3 -3
  158. package/esm2020/lib/core/tagging/emoji.component.mjs +3 -3
  159. package/esm2020/lib/core/tagging/tagging-item.directive.mjs +3 -3
  160. package/esm2020/lib/core/tagging/tagging.component-base.mjs +3 -3
  161. package/esm2020/lib/core/tagging/tagging.directive.mjs +3 -3
  162. package/esm2020/lib/core/tagging/tagging.pipe.mjs +3 -3
  163. package/esm2020/lib/core/tagging/users.component.mjs +3 -3
  164. package/esm2020/lib/core/translate.service.mjs +3 -3
  165. package/esm2020/lib/core/translations.mjs +10 -2
  166. package/esm2020/lib/core/window-title.service.mjs +3 -3
  167. package/esm2020/lib/cube/accum/accum.component.mjs +16 -8
  168. package/esm2020/lib/cube/chart/chart.component.mjs +16 -8
  169. package/esm2020/lib/cube/cube-info.service.mjs +4 -4
  170. package/esm2020/lib/cube/cube-menu.component.mjs +3 -3
  171. package/esm2020/lib/cube/cube-view.component.mjs +3 -3
  172. package/esm2020/lib/cube/cube.service.mjs +4 -4
  173. package/esm2020/lib/cube/explore/document-item.component.mjs +3 -3
  174. package/esm2020/lib/cube/explore/explore-item.component.mjs +3 -3
  175. package/esm2020/lib/cube/explore/explore-items.component.mjs +18 -10
  176. package/esm2020/lib/cube/explore/explore.pane.component.mjs +14 -9
  177. package/esm2020/lib/cube/explore/item-resolver.service.mjs +6 -6
  178. package/esm2020/lib/cube/explore/item.pane.component.mjs +3 -3
  179. package/esm2020/lib/cube/filter/filter-tags.component.exp.mjs +3 -3
  180. package/esm2020/lib/cube/filter/filter.component.mjs +3 -3
  181. package/esm2020/lib/cube/grid/grid.component.mjs +3 -3
  182. package/esm2020/lib/cube/grid/spreadsheet.component.mjs +5 -5
  183. package/esm2020/lib/cube/matrix/matrix.base.mjs +3 -3
  184. package/esm2020/lib/cube/matrix/matrix.mobile.component.mjs +3 -3
  185. package/esm2020/lib/cube/matrix/matrix.pane.component.mjs +3 -3
  186. package/esm2020/lib/cube/matrix/popup.component.mjs +4 -4
  187. package/esm2020/lib/cube/matrix/table.component.mjs +5 -5
  188. package/esm2020/lib/cube/parallel/parallel.component.mjs +16 -8
  189. package/esm2020/lib/cube/pivot/pivot.component.mjs +21 -12
  190. package/esm2020/lib/cube/sum/sum.component.mjs +4 -4
  191. package/esm2020/lib/cube/view-base.mjs +3 -3
  192. package/esm2020/lib/cube/view.mobile.component.mjs +13 -7
  193. package/esm2020/lib/cube/view.pane.component.mjs +5 -6
  194. package/esm2020/lib/dashboard/actions/actions.widget.mjs +3 -3
  195. package/esm2020/lib/dashboard/cube/accum-cube.widget.mjs +3 -3
  196. package/esm2020/lib/dashboard/cube/cube-analysis.base.mjs +4 -4
  197. package/esm2020/lib/dashboard/cube/cube-analysis.widget.mjs +3 -3
  198. package/esm2020/lib/dashboard/cube/cube-chart.widget.mjs +3 -3
  199. package/esm2020/lib/dashboard/cube/documents.widget.mjs +3 -3
  200. package/esm2020/lib/dashboard/cube/filter/filter.component.mjs +3 -3
  201. package/esm2020/lib/dashboard/dashboard.component.mjs +3 -3
  202. package/esm2020/lib/dashboard/dashboard.pane.component.mjs +3 -3
  203. package/esm2020/lib/dashboard/recents/recents.widget.mjs +5 -5
  204. package/esm2020/lib/dashboard/score/activity.widget.mjs +3 -3
  205. package/esm2020/lib/dashboard/score/compare-departments.widget.mjs +3 -3
  206. package/esm2020/lib/dashboard/score/peers-performance.widget.mjs +3 -3
  207. package/esm2020/lib/dashboard/score/pending-results.widget.mjs +3 -3
  208. package/esm2020/lib/dashboard/score/personal-score.widget.mjs +3 -3
  209. package/esm2020/lib/dashboard/widget-item.component.mjs +3 -3
  210. package/esm2020/lib/desktop.module.mjs +4 -4
  211. package/esm2020/lib/home/about/about.dialog.mjs +3 -3
  212. package/esm2020/lib/home/home-base.component.mjs +5 -5
  213. package/esm2020/lib/home/home.desktop.component.mjs +3 -3
  214. package/esm2020/lib/home/home.mobile.component.mjs +3 -3
  215. package/esm2020/lib/home/notifications/notifications.component.mjs +3 -3
  216. package/esm2020/lib/home/options/options.component.mjs +3 -3
  217. package/esm2020/lib/home/outofoffice/outofoffice.component.mjs +3 -3
  218. package/esm2020/lib/home/search.service.mjs +3 -3
  219. package/esm2020/lib/home/sign/sign.component.mjs +3 -3
  220. package/esm2020/lib/home/tools.component.mjs +3 -3
  221. package/esm2020/lib/impersonate/impersonate.component.mjs +3 -3
  222. package/esm2020/lib/mobile.module.mjs +4 -4
  223. package/esm2020/lib/modules/chart.module.mjs +4 -4
  224. package/esm2020/lib/modules/circular-gauge.module.mjs +4 -4
  225. package/esm2020/lib/modules/date.adapter.mjs +3 -3
  226. package/esm2020/lib/modules/datepicker.intl.mjs +3 -3
  227. package/esm2020/lib/modules/diagram.module.mjs +4 -4
  228. package/esm2020/lib/modules/gantt.module.mjs +4 -4
  229. package/esm2020/lib/modules/grid.module.mjs +4 -4
  230. package/esm2020/lib/modules/material.module.mjs +4 -4
  231. package/esm2020/lib/modules/paginator.intl.mjs +3 -3
  232. package/esm2020/lib/modules/pivot.module.mjs +4 -4
  233. package/esm2020/lib/modules/schedule.module.mjs +4 -4
  234. package/esm2020/lib/modules/spreadsheet.module.mjs +4 -4
  235. package/esm2020/lib/modules/stepper.intl.mjs +3 -3
  236. package/esm2020/lib/modules/texteditor.module.mjs +4 -4
  237. package/esm2020/lib/notifications/filter.component.mjs +3 -3
  238. package/esm2020/lib/notifications/notifications-table.component.mjs +3 -3
  239. package/esm2020/lib/notifications/notifications.mobile.component.mjs +3 -3
  240. package/esm2020/lib/notifications/notifications.pane.component.mjs +3 -3
  241. package/esm2020/lib/notifications/notifications.service.mjs +3 -3
  242. package/esm2020/lib/notifications/types/commented.notification.mjs +3 -3
  243. package/esm2020/lib/notifications/types/cube-anomaly.notification.mjs +3 -3
  244. package/esm2020/lib/notifications/types/escalated.notification.mjs +3 -3
  245. package/esm2020/lib/notifications/types/liked.notification.mjs +3 -3
  246. package/esm2020/lib/notifications/types/long-running-task.notification.mjs +3 -3
  247. package/esm2020/lib/notifications/types/notification-base.mjs +3 -3
  248. package/esm2020/lib/notifications/types/nudge.notification.mjs +3 -3
  249. package/esm2020/lib/notifications/types/state-changed.notification.mjs +3 -3
  250. package/esm2020/lib/notifications/types/tagged.notification.mjs +3 -3
  251. package/esm2020/lib/notifications/types/text.notification.mjs +3 -3
  252. package/esm2020/lib/notifications/types/upcoming-event.notification.mjs +3 -3
  253. package/esm2020/lib/options/options.component.mjs +3 -3
  254. package/esm2020/lib/options/options.service.mjs +3 -3
  255. package/esm2020/lib/reports/arguments-component.mjs +3 -3
  256. package/esm2020/lib/reports/cube/grid-documents.component.mjs +3 -3
  257. package/esm2020/lib/reports/cube/table-documents.component.mjs +3 -3
  258. package/esm2020/lib/reports/cube/usage-args.component.mjs +3 -3
  259. package/esm2020/lib/reports/cube/usage-base.mjs +3 -3
  260. package/esm2020/lib/reports/cube/usage-chart.component.mjs +10 -10
  261. package/esm2020/lib/reports/cube/usage-pivot.component.mjs +3 -3
  262. package/esm2020/lib/reports/report-viewer.component.mjs +6 -6
  263. package/esm2020/lib/reports/report.mobile.component.mjs +3 -3
  264. package/esm2020/lib/reports/report.pane.component.mjs +3 -3
  265. package/esm2020/lib/reports/reports-menu.component.mjs +3 -3
  266. package/esm2020/lib/reports/substitution/substitution.component.mjs +3 -3
  267. package/esm2020/lib/reports/table/table-view.component.mjs +3 -3
  268. package/esm2020/lib/reports/tasks/tasks.component.mjs +3 -3
  269. package/esm2020/lib/routes.desktop.mjs +1 -1
  270. package/esm2020/lib/scheduler/schedule.component.mjs +4 -4
  271. package/esm2020/lib/scheduler/scheduler.mobile.component.mjs +3 -3
  272. package/esm2020/lib/scheduler/scheduler.pane.component.mjs +3 -3
  273. package/esm2020/lib/shared.module.mjs +10 -8
  274. package/esm2020/lib/system.module.mjs +4 -4
  275. package/esm2020/lib/views/cube/chart.component.mjs +4 -4
  276. package/esm2020/lib/views/cube/cube-base.mjs +4 -4
  277. package/esm2020/lib/views/cube/explore.component.mjs +4 -4
  278. package/esm2020/lib/views/cube/matrix.component.mjs +5 -5
  279. package/esm2020/lib/views/cube/parallel.component.mjs +5 -6
  280. package/esm2020/lib/views/cube/pivot.component.mjs +5 -5
  281. package/esm2020/lib/views/cube/sum.component.mjs +5 -5
  282. package/esm2020/lib/views/cube/view.component.mjs +3 -3
  283. package/esm2020/lib/views/timeline/timeline.component.exp.mjs +3 -3
  284. package/esm2020/lib/views/view-item.component.mjs +3 -3
  285. package/esm2020/lib/views/views.component.mjs +3 -3
  286. package/esm2020/lib/views/views.mobile.component.mjs +3 -3
  287. package/esm2020/lib/views/views.pane.component.mjs +3 -3
  288. package/esm2020/public-api.mjs +4 -3
  289. package/fesm2015/bizdoc-core.mjs +3720 -3171
  290. package/fesm2015/bizdoc-core.mjs.map +1 -1
  291. package/fesm2020/bizdoc-core.mjs +3730 -3179
  292. package/fesm2020/bizdoc-core.mjs.map +1 -1
  293. package/lib/browse/browse.mobile.component.d.ts +1 -0
  294. package/lib/browse/browse.pane.component.d.ts +1 -0
  295. package/lib/compose/attachments/preview/attachment-preview.component.d.ts +3 -4
  296. package/lib/compose/form.component.d.ts +1 -0
  297. package/lib/compose/trace/trace.component.d.ts +6 -0
  298. package/lib/core/base.d.ts +3 -1
  299. package/lib/core/configuration.d.ts +3 -1
  300. package/lib/core/controls/file.input.d.ts +87 -0
  301. package/lib/core/controls/select.input.d.ts +7 -5
  302. package/lib/core/datasource.service.d.ts +7 -4
  303. package/lib/core/functions.d.ts +1 -0
  304. package/lib/core/hub.service.d.ts +1 -2
  305. package/lib/core/info/attachment-info.service.d.ts +1 -2
  306. package/lib/core/mailbox.service.d.ts +25 -6
  307. package/lib/core/models.d.ts +10 -6
  308. package/lib/core/slots/pane-ref.d.ts +2 -0
  309. package/lib/core/translations.d.ts +8 -0
  310. package/lib/cube/accum/accum.component.d.ts +6 -3
  311. package/lib/cube/chart/chart.component.d.ts +6 -3
  312. package/lib/cube/cube-info.service.d.ts +2 -1
  313. package/lib/cube/cube.service.d.ts +1 -2
  314. package/lib/cube/explore/explore-items.component.d.ts +6 -3
  315. package/lib/cube/explore/explore.pane.component.d.ts +5 -4
  316. package/lib/cube/matrix/table.component.d.ts +2 -1
  317. package/lib/cube/parallel/parallel.component.d.ts +6 -3
  318. package/lib/cube/pivot/pivot.component.d.ts +4 -1
  319. package/lib/cube/sum/sum.component.d.ts +2 -1
  320. package/lib/cube/view.mobile.component.d.ts +3 -2
  321. package/lib/dashboard/cube/cube-analysis.base.d.ts +2 -1
  322. package/lib/shared.module.d.ts +176 -175
  323. package/lib/views/cube/chart.component.d.ts +2 -1
  324. package/lib/views/cube/cube-base.d.ts +2 -1
  325. package/lib/views/cube/explore.component.d.ts +2 -1
  326. package/lib/views/cube/matrix.component.d.ts +3 -2
  327. package/lib/views/cube/parallel.component.d.ts +1 -2
  328. package/lib/views/cube/pivot.component.d.ts +2 -1
  329. package/lib/views/cube/sum.component.d.ts +2 -1
  330. package/package.json +13 -13
  331. package/public-api.d.ts +4 -3
@@ -12,9 +12,9 @@ export class ExploreItemPaneComponent {
12
12
  this._pane.paramsChange.subscribe(p => this.template = p['template']);
13
13
  }
14
14
  }
15
- ExploreItemPaneComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: ExploreItemPaneComponent, deps: [{ token: i1.PaneRef }], target: i0.ɵɵFactoryTarget.Component });
16
- ExploreItemPaneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.0", type: ExploreItemPaneComponent, selector: "ng-component", host: { classAttribute: "pane" }, ngImport: i0, template: "<bizdoc-cube-item [template]=\"template\" [model]=\"model\"></bizdoc-cube-item>\r\n\r\n<!--<lottie name=\"4958-404-not-found\" *ngIf=\"problem\"></lottie>-->\r\n", components: [{ type: i2.ExploreItemImplComponent, selector: "bizdoc-cube-item", inputs: ["template", "model"] }] });
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: ExploreItemPaneComponent, decorators: [{
15
+ ExploreItemPaneComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ExploreItemPaneComponent, deps: [{ token: i1.PaneRef }], target: i0.ɵɵFactoryTarget.Component });
16
+ ExploreItemPaneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: ExploreItemPaneComponent, selector: "ng-component", host: { classAttribute: "pane" }, ngImport: i0, template: "<bizdoc-cube-item [template]=\"template\" [model]=\"model\"></bizdoc-cube-item>\r\n\r\n<!--<lottie name=\"4958-404-not-found\" *ngIf=\"problem\"></lottie>-->\r\n", components: [{ type: i2.ExploreItemImplComponent, selector: "bizdoc-cube-item", inputs: ["template", "model"] }] });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ExploreItemPaneComponent, decorators: [{
18
18
  type: Component,
19
19
  args: [{ host: {
20
20
  class: 'pane'
@@ -49,9 +49,9 @@ export class FilterTagsComponent {
49
49
  this.filtersChange.emit(this.axes);
50
50
  }
51
51
  }
52
- FilterTagsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: FilterTagsComponent, deps: [{ token: i1.SessionService }, { token: i2.DatasourceService }], target: i0.ɵɵFactoryTarget.Component });
53
- FilterTagsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.0", type: FilterTagsComponent, selector: "bizdoc-filter-tags", inputs: { axes: "axes", cube: "cube" }, outputs: { filtersChange: "filtersChange" }, usesOnChanges: true, ngImport: i0, template: "<mat-chip-list aria-label=\"\">\r\n <mat-chip *ngFor=\"let t of tags\" class=\"small-chip\"\r\n [removable]=\"true\"\r\n (removed)=\"remove(t)\">\r\n {{t.value}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip>\r\n</mat-chip-list>\r\n", styles: [""], components: [{ type: i3.MatChipList, selector: "mat-chip-list", inputs: ["errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { type: i3.MatChipRemove, selector: "[matChipRemove]" }] });
54
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: FilterTagsComponent, decorators: [{
52
+ FilterTagsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FilterTagsComponent, deps: [{ token: i1.SessionService }, { token: i2.DatasourceService }], target: i0.ɵɵFactoryTarget.Component });
53
+ FilterTagsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: FilterTagsComponent, selector: "bizdoc-filter-tags", inputs: { axes: "axes", cube: "cube" }, outputs: { filtersChange: "filtersChange" }, usesOnChanges: true, ngImport: i0, template: "<mat-chip-list aria-label=\"\">\r\n <mat-chip *ngFor=\"let t of tags\" class=\"small-chip\"\r\n [removable]=\"true\"\r\n (removed)=\"remove(t)\">\r\n {{t.value}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip>\r\n</mat-chip-list>\r\n", styles: [""], components: [{ type: i3.MatChipList, selector: "mat-chip-list", inputs: ["errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { type: i3.MatChipRemove, selector: "[matChipRemove]" }] });
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FilterTagsComponent, decorators: [{
55
55
  type: Component,
56
56
  args: [{ selector: 'bizdoc-filter-tags', template: "<mat-chip-list aria-label=\"\">\r\n <mat-chip *ngFor=\"let t of tags\" class=\"small-chip\"\r\n [removable]=\"true\"\r\n (removed)=\"remove(t)\">\r\n {{t.value}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip>\r\n</mat-chip-list>\r\n", styles: [""] }]
57
57
  }], ctorParameters: function () { return [{ type: i1.SessionService }, { type: i2.DatasourceService }]; }, propDecorators: { axes: [{
@@ -99,9 +99,9 @@ export class CubeFilterComponent {
99
99
  this._destroy.complete();
100
100
  }
101
101
  }
102
- CubeFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: CubeFilterComponent, deps: [{ token: i1.DatasourceService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i2.FormBuilder }, { token: i3.SessionService }], target: i0.ɵɵFactoryTarget.Component });
103
- CubeFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.0", type: CubeFilterComponent, selector: "bizdoc-cube-filter", inputs: { cube: "cube", exclude: "exclude", include: "include", axes: "axes" }, outputs: { axesChange: "axesChange" }, usesOnChanges: true, ngImport: i0, template: "<form [formGroup]=\"form\" fxLayout=\"column\">\r\n <mat-form-field *ngFor=\"let a of visibleAxes\" [ngSwitch]=\"a.selectionMode\" [attr.data-help]=\"'axis-'+a.name\">\r\n <ng-container *ngSwitchCase=\"'Pattern'\">\r\n <input matInput autocomplete=\"off\"\r\n [pattern]=\"pattern\" [autofocus]\r\n [formControlName]=\"a.name\" [placeholder]=\"a.title\" />\r\n <mat-error *ngIf=\"form.controls[a.name].invalid\">{{'SimplePatternErr' |translate}}</mat-error>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'Search'\">\r\n <input matInput autocomplete=\"off\" type=\"search\"\r\n [matAutocomplete]=\"segment\" #inp\r\n [placeholder]=\"a.title\" />\r\n <mat-autocomplete #segment [displayWith]=\"display\"\r\n (optionSelected)=\"change(a.name, $event)\">\r\n <mat-option *ngFor=\"let r of sources[a.dataType] | async | filter : 'value' : inp.value | slice:0:50\" [value]=\"r\">{{r.value}}</mat-option>\r\n </mat-autocomplete>\r\n <button mat-icon-button *ngIf=\"inp.value\" matSuffix aria-label=\"\" (click)=\"inp.value = ''; form.controls[a.name].setValue(null)\"><mat-icon>close</mat-icon></button>\r\n <mat-error *ngIf=\"form.controls[a.name].invalid\">{{'SimplePatternErr' |translate}}</mat-error>\r\n </ng-container>\r\n <mat-select [formControlName]=\"a.name\" [placeholder]=\"a.title\" [multiple]=\"a.selectionMode === 'Multiple'\" *ngSwitchDefault>\r\n <mat-option *ngIf=\"a.selectionMode !== 'Multiple'\">{{'All' | translate}}</mat-option>\r\n <mat-option *ngFor=\"let r of sources[a.dataType] | async\" [value]=\"r.key\">{{r.value}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n</form>\r\n", styles: ["form{padding:8px}\n"], components: [{ type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { 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.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }], directives: [{ type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i10.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i11.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i11.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i12.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.MatError, selector: "mat-error", inputs: ["id"] }, { type: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i4.MatSuffix, selector: "[matSuffix]" }, { type: i11.NgSwitchDefault, selector: "[ngSwitchDefault]" }], pipes: { "translate": i13.TranslatePipe, "slice": i11.SlicePipe, "filter": i14.FilterPipe, "async": i11.AsyncPipe } });
104
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: CubeFilterComponent, decorators: [{
102
+ CubeFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: CubeFilterComponent, deps: [{ token: i1.DatasourceService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i2.FormBuilder }, { token: i3.SessionService }], target: i0.ɵɵFactoryTarget.Component });
103
+ CubeFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: CubeFilterComponent, selector: "bizdoc-cube-filter", inputs: { cube: "cube", exclude: "exclude", include: "include", axes: "axes" }, outputs: { axesChange: "axesChange" }, usesOnChanges: true, ngImport: i0, template: "<form [formGroup]=\"form\" fxLayout=\"column\">\r\n <mat-form-field *ngFor=\"let a of visibleAxes\" [ngSwitch]=\"a.selectionMode\" [attr.data-help]=\"'axis-'+a.name\">\r\n <ng-container *ngSwitchCase=\"'Pattern'\">\r\n <input matInput autocomplete=\"off\"\r\n [pattern]=\"pattern\" [autofocus]\r\n [formControlName]=\"a.name\" [placeholder]=\"a.title\" />\r\n <mat-error *ngIf=\"form.controls[a.name].invalid\">{{'SimplePatternErr' |translate}}</mat-error>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'Search'\">\r\n <input matInput autocomplete=\"off\" type=\"search\"\r\n [matAutocomplete]=\"segment\" #inp\r\n [placeholder]=\"a.title\" />\r\n <mat-autocomplete #segment [displayWith]=\"display\"\r\n (optionSelected)=\"change(a.name, $event)\">\r\n <mat-option *ngFor=\"let r of sources[a.dataType] | async | filter : 'value' : inp.value | slice:0:50\" [value]=\"r\">{{r.value}}</mat-option>\r\n </mat-autocomplete>\r\n <button mat-icon-button *ngIf=\"inp.value\" matSuffix aria-label=\"\" (click)=\"inp.value = ''; form.controls[a.name].setValue(null)\"><mat-icon>close</mat-icon></button>\r\n <mat-error *ngIf=\"form.controls[a.name].invalid\">{{'SimplePatternErr' |translate}}</mat-error>\r\n </ng-container>\r\n <mat-select [formControlName]=\"a.name\" [placeholder]=\"a.title\" [multiple]=\"a.selectionMode === 'Multiple'\" *ngSwitchDefault>\r\n <mat-option *ngIf=\"a.selectionMode !== 'Multiple'\">{{'All' | translate}}</mat-option>\r\n <mat-option *ngFor=\"let r of sources[a.dataType] | async\" [value]=\"r.key\">{{r.value}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n</form>\r\n", styles: ["form{padding:8px}\n"], components: [{ type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { 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.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }], directives: [{ type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i10.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i11.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i11.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i12.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.MatError, selector: "mat-error", inputs: ["id"] }, { type: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i4.MatSuffix, selector: "[matSuffix]" }, { type: i11.NgSwitchDefault, selector: "[ngSwitchDefault]" }], pipes: { "translate": i13.TranslatePipe, "slice": i11.SlicePipe, "filter": i14.FilterPipe, "async": i11.AsyncPipe } });
104
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: CubeFilterComponent, decorators: [{
105
105
  type: Component,
106
106
  args: [{ selector: 'bizdoc-cube-filter', template: "<form [formGroup]=\"form\" fxLayout=\"column\">\r\n <mat-form-field *ngFor=\"let a of visibleAxes\" [ngSwitch]=\"a.selectionMode\" [attr.data-help]=\"'axis-'+a.name\">\r\n <ng-container *ngSwitchCase=\"'Pattern'\">\r\n <input matInput autocomplete=\"off\"\r\n [pattern]=\"pattern\" [autofocus]\r\n [formControlName]=\"a.name\" [placeholder]=\"a.title\" />\r\n <mat-error *ngIf=\"form.controls[a.name].invalid\">{{'SimplePatternErr' |translate}}</mat-error>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'Search'\">\r\n <input matInput autocomplete=\"off\" type=\"search\"\r\n [matAutocomplete]=\"segment\" #inp\r\n [placeholder]=\"a.title\" />\r\n <mat-autocomplete #segment [displayWith]=\"display\"\r\n (optionSelected)=\"change(a.name, $event)\">\r\n <mat-option *ngFor=\"let r of sources[a.dataType] | async | filter : 'value' : inp.value | slice:0:50\" [value]=\"r\">{{r.value}}</mat-option>\r\n </mat-autocomplete>\r\n <button mat-icon-button *ngIf=\"inp.value\" matSuffix aria-label=\"\" (click)=\"inp.value = ''; form.controls[a.name].setValue(null)\"><mat-icon>close</mat-icon></button>\r\n <mat-error *ngIf=\"form.controls[a.name].invalid\">{{'SimplePatternErr' |translate}}</mat-error>\r\n </ng-container>\r\n <mat-select [formControlName]=\"a.name\" [placeholder]=\"a.title\" [multiple]=\"a.selectionMode === 'Multiple'\" *ngSwitchDefault>\r\n <mat-option *ngIf=\"a.selectionMode !== 'Multiple'\">{{'All' | translate}}</mat-option>\r\n <mat-option *ngFor=\"let r of sources[a.dataType] | async\" [value]=\"r.key\">{{r.value}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n</form>\r\n", styles: ["form{padding:8px}\n"] }]
107
107
  }], ctorParameters: function () { return [{ type: i1.DatasourceService }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i2.FormBuilder }, { type: i3.SessionService }]; }, propDecorators: { cube: [{
@@ -184,9 +184,9 @@ export class CubeGridComponent {
184
184
  }
185
185
  }
186
186
  CubeGridComponent.nextId = 0;
187
- CubeGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: CubeGridComponent, deps: [{ token: i1.SessionService }, { token: i2.PromptService }, { token: i3.DatasourceService }, { token: i4.CubeService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
188
- CubeGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.0", type: CubeGridComponent, selector: "bizdoc-cube-grid", inputs: { width: "width", height: "height", cube: "cube", xAxis: "xAxis", series: "series", indices: "indices", filters: "filters", loading: "loading" }, outputs: { explore: "explore", loadingChange: "loadingChange" }, host: { properties: { "id": "this.id" }, classAttribute: "cube-view" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true, styles: [".nowrap{white-space:nowrap;word-wrap:normal}::ng-deep .e-rowcell:not(.e-headertext){cursor:pointer}::ng-deep .e-grid td.e-cellselectionbackground{background-color:none}\n"] });
189
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: CubeGridComponent, decorators: [{
187
+ CubeGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: CubeGridComponent, deps: [{ token: i1.SessionService }, { token: i2.PromptService }, { token: i3.DatasourceService }, { token: i4.CubeService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
188
+ CubeGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: CubeGridComponent, selector: "bizdoc-cube-grid", inputs: { width: "width", height: "height", cube: "cube", xAxis: "xAxis", series: "series", indices: "indices", filters: "filters", loading: "loading" }, outputs: { explore: "explore", loadingChange: "loadingChange" }, host: { properties: { "id": "this.id" }, classAttribute: "cube-view" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true, styles: [".nowrap{white-space:nowrap;word-wrap:normal}::ng-deep .e-rowcell:not(.e-headertext){cursor:pointer}::ng-deep .e-grid td.e-cellselectionbackground{background-color:none}\n"] });
189
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: CubeGridComponent, decorators: [{
190
190
  type: Component,
191
191
  args: [{ selector: 'bizdoc-cube-grid', template: '', host: {
192
192
  class: 'cube-view'
@@ -312,7 +312,7 @@ export class CubeSpreadsheetComponent {
312
312
  return {
313
313
  type: isnumber ? 'number' : 'text',
314
314
  index: j + 1, value: c.value,
315
- cellStyle: {
315
+ style: {
316
316
  numberFormat,
317
317
  hAlign: isnumber ? 'right' : 'center',
318
318
  bold: header
@@ -330,9 +330,9 @@ export class CubeSpreadsheetComponent {
330
330
  }
331
331
  }
332
332
  CubeSpreadsheetComponent.nextId = 0;
333
- CubeSpreadsheetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: CubeSpreadsheetComponent, deps: [{ token: i1.SessionService }, { token: i2.PromptService }, { token: i3.CubeService }, { token: i4.TranslateService }, { token: i5.DatasourceService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
334
- CubeSpreadsheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.0", type: CubeSpreadsheetComponent, selector: "bizdoc-cube-spreadsheet", inputs: { width: "width", height: "height", cube: "cube", xAxis: "xAxis", yAxis: "yAxis", series: "series", indices: "indices", filters: "filters", loading: "loading" }, outputs: { explore: "explore", loadingChange: "loadingChange" }, host: { properties: { "id": "this.id" }, classAttribute: "cube-view" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
335
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: CubeSpreadsheetComponent, decorators: [{
333
+ CubeSpreadsheetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: CubeSpreadsheetComponent, deps: [{ token: i1.SessionService }, { token: i2.PromptService }, { token: i3.CubeService }, { token: i4.TranslateService }, { token: i5.DatasourceService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
334
+ CubeSpreadsheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: CubeSpreadsheetComponent, selector: "bizdoc-cube-spreadsheet", inputs: { width: "width", height: "height", cube: "cube", xAxis: "xAxis", yAxis: "yAxis", series: "series", indices: "indices", filters: "filters", loading: "loading" }, outputs: { explore: "explore", loadingChange: "loadingChange" }, host: { properties: { "id": "this.id" }, classAttribute: "cube-view" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
335
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: CubeSpreadsheetComponent, decorators: [{
336
336
  type: Component,
337
337
  args: [{
338
338
  selector: 'bizdoc-cube-spreadsheet',
@@ -366,4 +366,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImpor
366
366
  }], id: [{
367
367
  type: HostBinding
368
368
  }] } });
369
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ByZWFkc2hlZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jdWJlL2dyaWQvc3ByZWFkc2hlZXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxXQUFXLEVBQXlCLEtBQUssRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFFN0ksT0FBTyxFQUFvQyxXQUFXLEVBQTBELFFBQVEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXRLLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQVl4RCxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7O0FBU3pELE1BQU0sT0FBTyx3QkFBd0I7SUEyQ25DLDRFQUE0RTtJQUM1RSxZQUNVLFFBQXdCLEVBQ3hCLEdBQWtCLEVBQ2xCLFFBQXFCLEVBQ3JCLFVBQTRCLEVBQzVCLEdBQXNCLEVBQ3RCLFdBQXVCO1FBTHZCLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ3hCLFFBQUcsR0FBSCxHQUFHLENBQWU7UUFDbEIsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUNyQixlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQUM1QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQXpCZCxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQWtCLENBQUM7UUFFN0Msa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQ2hELE9BQUUsR0FBRyxvQkFBb0Isd0JBQXdCLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztRQUU1RSxlQUFVLEdBQWUsRUFBRSxDQUFDO1FBRW5CLGdCQUFXLEdBQUcsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFvQixDQUFDO1FBQ3ZELHFCQUFnQixHQUFHLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBMkIsQ0FBQztRQU14RSxXQUFNLEdBQStCLEVBQUUsQ0FBQztRQUN4QyxjQUFTLEdBQStCLEVBQUUsQ0FBQztJQVVkLENBQUM7SUF6Q3RDLElBQ0ksS0FBSyxDQUFDLEdBQXNCO1FBQzlCLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUdELElBQ0ksTUFBTSxDQUFDLEdBQXNCO1FBQy9CLElBQUksR0FBRztZQUFFLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUNELElBQ0ksT0FBTyxDQUFDLEdBQXNCO1FBQ2hDLElBQUksR0FBRztZQUFFLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQTZCRCxRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0SCxJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFLENBQUE7UUFDNUYsK0JBQStCO1FBQy9CLHNDQUFzQztRQUN0QyxnREFBZ0Q7UUFDaEQsc0JBQXNCO1FBQ3RCLHdEQUF3RDtRQUN4RCx1REFBdUQ7UUFDdkQsNEJBQTRCO1FBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUUsSUFBSSxJQUFJLENBQUMsUUFBUTtnQkFBRSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3ZHLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2hDLE9BQU87b0JBQ0wsS0FBSyxFQUFFLEdBQUc7aUJBQ0ksQ0FBQztZQUNuQixDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUNoQixLQUFLLEVBQUUsRUFBRTthQUNWLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDZixJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBQzVELEtBQUssRUFBRSxFQUFFO2FBQ0ssQ0FDZixDQUFDLENBQUM7U0FDSjthQUNJO1lBQ0gsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFDbkQsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLEVBQ25ELEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDO1lBQ3RELE1BQU0sUUFBUSxHQUFtQixFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDO29CQUNkLEtBQUssRUFBRSxHQUFHO2lCQUNYLENBQUMsQ0FBQztZQUNILHlCQUF5QjtZQUN6QixJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxFQUFFO2dCQUNwRCxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1AsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7Z0JBQ25CLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztvQkFDL0IsS0FBSyxFQUFFLEVBQUU7aUJBQ0ssQ0FDZixDQUFDLENBQUM7WUFDTCxDQUFDLENBQWlCLENBQUM7WUFDckIsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN2QixzQkFBc0I7WUFDdEIsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLEVBQUU7Z0JBQ2hELElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDN0IsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUV2QixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDdkM7UUFDRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUNELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxXQUFXO1lBQ3ZELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUVmLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUM7WUFDdkMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFDRCxNQUFNO1FBQ0osSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUNwQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFDZixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDbEcsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNmLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDYixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqQyxDQUFDLEVBQUUsQ0FBQyxDQUFvQixFQUFFLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN6RCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqQyxDQUFDLENBQUMsQ0FBQzs7WUFDRixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNoRyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO29CQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQ2IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2pDLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxFQUFFLENBQUMsQ0FBb0IsRUFBRSxFQUFFO2dCQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDekQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDakMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ08sVUFBVSxDQUFDLElBQTBCO1FBQzNDLE1BQU0sS0FBSyxHQUFHLEVBQUUsRUFBRSxLQUFLLEdBQUcsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQW9CLENBQUM7UUFDeEYsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1lBQ2pDLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUs7U0FDVCxDQUFDLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBZSxDQUFDLENBQUMsQ0FBQztRQUNqRyxLQUFLLENBQUMsSUFBSSxDQUFDO1lBQ1QsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7WUFDbkUsS0FBSztTQUNPLENBQUMsQ0FBQztRQUNoQixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUM7Z0JBQ2pCLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRTthQUNOLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDZixNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO2dCQUNsQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNDLENBQUMsQ0FBQyxDQUFDO1lBQ2pCLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO2dCQUNyRCxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVc7Z0JBQ3ZCLE1BQU0sRUFBRSxJQUFJLENBQUMsYUFBYTtnQkFDMUIsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBUTthQUNiLENBQUMsQ0FBQyxDQUFDO1lBQ2pCLEtBQUssQ0FBQyxJQUFJLENBQUM7Z0JBQ1QsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXO2dCQUN2QixNQUFNLEVBQUUsSUFBSSxDQUFDLGFBQWE7Z0JBQzFCLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFRO2FBQ2hCLENBQUMsQ0FBQztZQUNoQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQWMsQ0FBQyxDQUFDO1FBQ3JFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLFdBQVcsQ0FBQyxDQUFXO1FBQzdCLE1BQU0sS0FBSyxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFvQixDQUFDO1FBQzVFLE1BQU0sS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFlLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRTFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFNBQVM7WUFDN0IsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ1YsTUFBTSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBZSxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQzFHLElBQUksS0FBSyxFQUFFO2dCQUNULEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztvQkFDckMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQVE7b0JBQy9CLE1BQU0sRUFBRSxJQUFJLENBQUMsYUFBYTtvQkFDMUIsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXO2lCQUN4QixDQUFDLENBQ0QsQ0FBQztnQkFDRixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFjLENBQUMsQ0FBQzthQUN6RDtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDdEIsTUFBTSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBZSxDQUFDLEVBQ3BELEtBQUssR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUNsRCxJQUFJLEtBQUssRUFBRTtnQkFDVCxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMxQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7b0JBQ3JDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFRO29CQUMvQixNQUFNLEVBQUUsSUFBSSxDQUFDLGFBQWE7b0JBQzFCLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVztpQkFDeEIsQ0FBQyxDQUNELENBQUM7YUFDSDs7Z0JBRUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQVEsRUFBRSxDQUFDLENBQzFELENBQUM7WUFDSixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFjLENBQUMsQ0FBQztRQUMxRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxLQUFLO1FBQ1gsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQy9DLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxXQUFXLENBQUM7WUFDakMsV0FBVyxFQUFFLElBQUk7WUFDakIsWUFBWSxFQUFFLEtBQUs7WUFDbkIsV0FBVyxFQUFFLEtBQUs7WUFDbEIsV0FBVyxFQUFFLEtBQUs7WUFDbEIsVUFBVSxFQUFFLEtBQUs7WUFDakIsYUFBYSxFQUFFLEtBQUs7WUFDcEIsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtZQUN2QyxlQUFlLEVBQUUsS0FBSztZQUN0QixpQkFBaUIsRUFBRSxLQUFLO1lBQ3hCLGNBQWMsRUFBRSxLQUFLO1lBQ3JCLGFBQWEsRUFBRSxLQUFLO1lBQ3BCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDOUIsTUFBTSxFQUFFLENBQUM7b0JBQ1AsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO29CQUNyQixtREFBbUQ7b0JBQ25ELGdCQUFnQjtvQkFDaEIsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVO2lCQUN0QixDQUFDO1lBQ0YsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtTQUNwQixFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUNELE1BQU0sQ0FBQyxHQUFvQjtRQUN6QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDckMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFO1lBQ1YsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ2hCLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEtBQUssQ0FBQztTQUNwQjtRQUNELElBQUksRUFBRSxHQUFHLENBQUMsRUFBRTtZQUNWLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQztZQUNoQixDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxLQUFLLENBQUM7U0FDcEI7UUFDRCxNQUFNLElBQUksR0FBTyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDakIsSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFBRSxPQUFPO1lBQ3BCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ3hGLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNWLEdBQUc7Z0JBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ3JCLE1BQU0sR0FBRyxHQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQzdELElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQzt3QkFDZixJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQzt5QkFDaEIsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFO3dCQUMvQixJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRzs0QkFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztxQkFDOUQ7eUJBQ0ksSUFBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBYyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO3dCQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUM3RixDQUFDLENBQUMsQ0FBQztnQkFDSCxDQUFDLEVBQUUsQ0FBQzthQUNMLFFBQ00sQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNoQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1NBQ3BDO2FBQ0k7WUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLEdBQUcsRUFBRTtvQkFDUixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7O29CQUN0QixPQUFPO2FBQ2I7aUJBQ0ksSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNoQixJQUFJLENBQUMsR0FBRyxFQUFFO29CQUNSLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQzs7b0JBQ3RCLE9BQU87YUFDYjtpQkFDSSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssR0FBRztnQkFBRSxPQUFPO2lCQUM5RSxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDO2dCQUFFLE9BQU87aUJBQ3RGO2dCQUNILElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO2FBQzFCO1lBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQzdCO0lBQ0gsQ0FBQztJQUNPLE1BQU0sQ0FBQyxDQUFTLEVBQUUsRUFBVSxFQUFFLElBQVE7UUFDNUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2IsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7Z0JBQ2QsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQztpQkFDZixJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztpQkFDOUIsSUFBSyxJQUFJLENBQUMsS0FBSyxDQUFjLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxLQUFLLENBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEMsQ0FBQyxFQUFFLENBQUM7U0FDTDtJQUNILENBQUM7SUFFTyxNQUFNLENBQUMsQ0FBUyxFQUFFLEVBQVUsRUFBRSxJQUFRO1FBQzVDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNkLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNiLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUNkLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUM7aUJBQ2YsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7aUJBQzlCLElBQUssSUFBSSxDQUFDLEtBQUssQ0FBYyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO2dCQUNoRCxJQUFJLENBQUMsS0FBSyxDQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3RDLENBQUMsRUFBRSxDQUFDO1NBQ0w7SUFDSCxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQWE7UUFDekIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUN6QyxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQ3pDLElBQUksR0FBRyxJQUFJLFFBQVEsQ0FDakI7WUFDRSxVQUFVLEVBQUU7Z0JBQ1Y7b0JBQ0UsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTztvQkFDaEMsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7b0JBQ3RDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFhLENBQUEsQ0FBQztvQkFDOUUsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUN2Qjt3QkFDRSxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUM7d0JBQ1osS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFOzRCQUMxQixNQUFNLE1BQU0sR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQ2hELFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQzs0QkFDdkQsT0FBTztnQ0FDTCxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU07Z0NBQ2xDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSztnQ0FDNUIsU0FBUyxFQUFFO29DQUNULFlBQVk7b0NBQ1osTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRO29DQUNyQyxJQUFJLEVBQUUsTUFBTTtpQ0FDYjs2QkFDTSxDQUFDO3dCQUNaLENBQUMsQ0FDQTtxQkFDTSxDQUFBLENBQUM7aUJBQ0E7YUFDZjtTQUNGLEVBQ0QsTUFBTSxDQUNQLENBQUM7UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxPQUFPLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBQ0QsV0FBVztRQUNULElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqRCxDQUFDOztBQXBXYywrQkFBTSxHQUFHLENBQUUsQ0FBQTtxSEFEZix3QkFBd0I7eUdBQXhCLHdCQUF3Qix1WUFMekIsRUFBRTsyRkFLRCx3QkFBd0I7a0JBUHBDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsUUFBUSxFQUFFLEVBQUU7b0JBQ1osSUFBSSxFQUFFO3dCQUNKLEtBQUssRUFBRSxXQUFXO3FCQUNuQjtpQkFDRjttUEFJQyxLQUFLO3NCQURKLEtBQUs7Z0JBR04sTUFBTTtzQkFETCxLQUFLO2dCQUdOLElBQUk7c0JBREgsS0FBSztnQkFJRixLQUFLO3NCQURSLEtBQUs7Z0JBS04sS0FBSztzQkFESixLQUFLO2dCQUdGLE1BQU07c0JBRFQsS0FBSztnQkFLRixPQUFPO3NCQURWLEtBQUs7Z0JBS04sT0FBTztzQkFETixLQUFLO2dCQUVhLE9BQU87c0JBQXpCLE1BQU07Z0JBQ0UsT0FBTztzQkFBZixLQUFLO2dCQUNhLGFBQWE7c0JBQS9CLE1BQU07Z0JBQ1EsRUFBRTtzQkFBaEIsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgQ29tcG9uZW50LCBPdXRwdXQsIE9uSW5pdCwgSG9zdEJpbmRpbmcsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgSW5wdXQsIFNpbXBsZUNoYW5nZXMsIE9uQ2hhbmdlcyB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEh0dHBSZXNwb25zZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBDZWxsTW9kZWwsIENvbHVtbk1vZGVsLCBSb3dNb2RlbCwgU3ByZWFkc2hlZXQsIENlbGxTdHlsZU1vZGVsLCBTZWxlY3RFdmVudEFyZ3MsIEF1dG9GaWxsU2V0dGluZ3NNb2RlbCwgaXNOdW1iZXIgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItc3ByZWFkc2hlZXRcIjtcclxuaW1wb3J0IHsgSW50ZXJuYXRpb25hbGl6YXRpb24sIE51bWJlckZvcm1hdE9wdGlvbnMgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWJhc2VcIjtcclxuaW1wb3J0IHsgV29ya2Jvb2sgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItZXhjZWwtZXhwb3J0JztcclxuaW1wb3J0IHsgV29ya3NoZWV0IH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWV4Y2VsLWV4cG9ydC9zcmMvd29ya3NoZWV0JztcclxuaW1wb3J0IHsgUm93IH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWV4Y2VsLWV4cG9ydC9zcmMvcm93JztcclxuaW1wb3J0IHsgQ2VsbCB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1leGNlbC1leHBvcnQvc3JjL2NlbGwnO1xyXG5pbXBvcnQgeyBDb2x1bW4gfSBmcm9tICdAc3luY2Z1c2lvbi9lajItZXhjZWwtZXhwb3J0L3NyYy9jb2x1bW4nO1xyXG5pbXBvcnQgeyBBeGlzQ2xpY2tFdmVudCwgQ3ViZVZpZXdlckNvbXBvbmVudCB9IGZyb20gXCIuLi9kZWNsYXJhdGlvbnNcIjtcclxuaW1wb3J0IHsgQXhlc01hcCwgQ3ViZSwgQ3ViZUF4aXMsIEN1YmVJbmRleCwgWUF4aXMgfSBmcm9tIFwiLi4vLi4vY29yZS9tb2RlbHNcIjtcclxuaW1wb3J0IHsgQ3ViZVNlcnZpY2UsIFNlcmllcyB9IGZyb20gXCIuLi9jdWJlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL3Byb21wdC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS90cmFuc2xhdGUuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBEYXRhc291cmNlU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL2RhdGFzb3VyY2Uuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL3Nlc3Npb24uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBpc0FycmF5LCBpc1N0cmluZyB9IGZyb20gXCIuLi8uLi9jb3JlL2Z1bmN0aW9uc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtY3ViZS1zcHJlYWRzaGVldCcsXHJcbiAgdGVtcGxhdGU6ICcnLFxyXG4gIGhvc3Q6IHtcclxuICAgIGNsYXNzOiAnY3ViZS12aWV3J1xyXG4gIH1cclxufSlcclxuZXhwb3J0IGNsYXNzIEN1YmVTcHJlYWRzaGVldENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ3ViZVZpZXdlckNvbXBvbmVudCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgc3RhdGljIG5leHRJZCA9IDA7XHJcbiAgQElucHV0KClcclxuICB3aWR0aDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpXHJcbiAgaGVpZ2h0OiBzdHJpbmc7XHJcbiAgQElucHV0KClcclxuICBjdWJlOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfY3ViZTogQ3ViZTtcclxuICBASW5wdXQoKVxyXG4gIHNldCB4QXhpcyh2YWw6IHN0cmluZ1tdIHwgc3RyaW5nKSB7XHJcbiAgICB0aGlzLl94QXhpcyA9IGlzQXJyYXkodmFsKSA/IHZhbCA6IFt2YWxdO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIHlBeGlzPzogWUF4aXM7XHJcbiAgQElucHV0KClcclxuICBzZXQgc2VyaWVzKHZhbDogc3RyaW5nW10gfCBzdHJpbmcpIHtcclxuICAgIGlmICh2YWwpIHRoaXMuX3NlcmllcyA9IGlzQXJyYXkodmFsKSA/IHZhbCA6IFt2YWxdO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIHNldCBpbmRpY2VzKHZhbDogc3RyaW5nW10gfCBzdHJpbmcpIHtcclxuICAgIGlmICh2YWwpIHRoaXMuX2luZGljZXMgPSBpc0FycmF5KHZhbCkgPyB2YWwgOiBbdmFsXTtcclxuICB9XHJcbiAgQElucHV0KClcclxuICBmaWx0ZXJzPzogQXhlc01hcDtcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgZXhwbG9yZSA9IG5ldyBFdmVudEVtaXR0ZXI8QXhpc0NsaWNrRXZlbnQ+KCk7XHJcbiAgQElucHV0KCkgbG9hZGluZzogYm9vbGVhbjtcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgbG9hZGluZ0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICBASG9zdEJpbmRpbmcoKSBpZCA9IGBjdWJlLXNwcmVhZHNoZWV0LSR7Q3ViZVNwcmVhZHNoZWV0Q29tcG9uZW50Lm5leHRJZCsrfWA7XHJcbiAgc3ByZWFkc2hlZXQ6IFNwcmVhZHNoZWV0O1xyXG4gIGRhdGFTb3VyY2U6IFJvd01vZGVsW10gPSBbXTtcclxuICBjb2x1bW5zOiBDb2x1bW5Nb2RlbFtdO1xyXG4gIHJlYWRvbmx5IG51bWJlclN0eWxlID0geyB0ZXh0QWxpZ246ICdyaWdodCcgfSBhcyBDZWxsU3R5bGVNb2RlbDtcclxuICByZWFkb25seSBhdXRvRmlsbFNldHRpbmdzID0geyBzaG93RmlsbE9wdGlvbnM6IGZhbHNlIH0gYXMgQXV0b0ZpbGxTZXR0aW5nc01vZGVsO1xyXG4gIHByaXZhdGUgX3hBeGlzOiBzdHJpbmdbXTtcclxuICBwcml2YXRlIF9zZXJpZXM/OiBzdHJpbmdbXTtcclxuICBwcml2YXRlIF9pbmRpY2VzPzogc3RyaW5nW107XHJcbiAgcHJpdmF0ZSBfYXhlczogQ3ViZUF4aXNbXTtcclxuICBwcml2YXRlIF9jaW5kaWNlczogQ3ViZUluZGV4W107XHJcbiAgcHJpdmF0ZSBfeXJvd3M6IHsga2V5OiBhbnk7IHZhbHVlOiBhbnkgfVtdID0gW107XHJcbiAgcHJpdmF0ZSBfeGNvbHVtbnM6IHsga2V5OiBhbnk7IHZhbHVlOiBhbnkgfVtdID0gW107XHJcbiAgcHJpdmF0ZSBfcHJlcGFyZTogUHJvbWlzZTxhbnlbXT47XHJcbiAgcHJpdmF0ZSBfbnVtYmVyRm9ybWF0OiBzdHJpbmc7XHJcbiAgLy9wcml2YXRlIHJlYWRvbmx5IF9pbnRsOiBJbnRlcm5hdGlvbmFsaXphdGlvbiA9IG5ldyBJbnRlcm5hdGlvbmFsaXphdGlvbigpO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zYjogUHJvbXB0U2VydmljZSxcclxuICAgIHByaXZhdGUgX3NlcnZpY2U6IEN1YmVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZHM6IERhdGFzb3VyY2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZikgeyB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jdWJlID0gdGhpcy5jdWJlID8gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzLmZpbmQoYyA9PiBjLm5hbWUgPT09IHRoaXMuY3ViZSkgOiB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuY3ViZXNbMF07XHJcbiAgICB0aGlzLl9udW1iZXJGb3JtYXQgPSBgJHt0aGlzLl9jdWJlLmN1cnJlbmN5Q29kZSA/ICdjJyA6ICduJ30ke3RoaXMuX3NlcnZpY2UuZnJhY3Rpb25EaWdpdHN9YFxyXG4gICAgLy90aGlzLl9pbnRsLmdldE51bWJlclBhdHRlcm4oe1xyXG4gICAgLy8gIGN1cnJlbmN5OiB0aGlzLl9jdWJlLmN1cnJlbmN5Q29kZSxcclxuICAgIC8vICBmb3JtYXQ6IHRoaXMuX2N1YmUuY3VycmVuY3lDb2RlID8gJ2MnIDogJ24nLFxyXG4gICAgLy8gIHVzZUdyb3VwaW5nOiB0cnVlLFxyXG4gICAgLy8gIG1heGltdW1GcmFjdGlvbkRpZ2l0czogdGhpcy5fc2VydmljZS5mcmFjdGlvbkRpZ2l0cyxcclxuICAgIC8vICBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IHRoaXMuX3NlcnZpY2UuZnJhY3Rpb25EaWdpdHNcclxuICAgIC8vfSBhcyBOdW1iZXJGb3JtYXRPcHRpb25zKTtcclxuICAgIGlmICghdGhpcy5fc2VyaWVzKSB7XHJcbiAgICAgIHRoaXMuX2F4ZXMgPSB0aGlzLl94QXhpcy5tYXAoYyA9PiB0aGlzLl9jdWJlLmF4ZXMuZmluZChhID0+IGEubmFtZSA9PSBjKSk7XHJcbiAgICAgIGlmICh0aGlzLl9pbmRpY2VzKSB0aGlzLl9jaW5kaWNlcyA9IHRoaXMuX2N1YmUuaW5kaWNlcy5maWx0ZXIoaSA9PiB0aGlzLl9pbmRpY2VzLmluZGV4T2YoaS5uYW1lKSA+IC0xKTtcclxuICAgICAgdGhpcy5jb2x1bW5zID0gdGhpcy5fYXhlcy5tYXAoXyA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIHdpZHRoOiAxMjBcclxuICAgICAgICB9IGFzIENvbHVtbk1vZGVsO1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5jb2x1bW5zLnB1c2goe1xyXG4gICAgICAgIHdpZHRoOiA5MFxyXG4gICAgICB9IC8qIHZhbHVlICovKTtcclxuICAgICAgdGhpcy5faW5kaWNlcyAmJiB0aGlzLl9pbmRpY2VzLmZvckVhY2goXyA9PiB0aGlzLmNvbHVtbnMucHVzaCh7XHJcbiAgICAgICAgd2lkdGg6IDkwXHJcbiAgICAgIH0gYXMgQ29sdW1uTW9kZWxcclxuICAgICAgKSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgY29uc3QgeU5hbWUgPSB0aGlzLl9zZXJpZXNbMF0sIHhOYW1lID0gdGhpcy5feEF4aXNbMF0sXHJcbiAgICAgICAgeEF4aXMgPSB0aGlzLl9jdWJlLmF4ZXMuZmluZChhID0+IGEubmFtZSA9PT0geE5hbWUpLFxyXG4gICAgICAgIHlBeGlzID0gdGhpcy5fY3ViZS5heGVzLmZpbmQoYSA9PiBhLm5hbWUgPT09IHlOYW1lKTtcclxuICAgICAgY29uc3QgcHJvbWlzZXM6IFByb21pc2U8YW55PltdID0gW107XHJcbiAgICAgIHRoaXMuY29sdW1ucyA9IFt7XHJcbiAgICAgICAgd2lkdGg6IDEyMFxyXG4gICAgICB9XTtcclxuICAgICAgLy8gYWNxdWlyZSBjb2x1bW5zIHNvdXJjZVxyXG4gICAgICBsZXQgb2JzZXJ2ZSA9IHRoaXMuX2RzLmFsbCh4QXhpcy5kYXRhVHlwZSkudG9Qcm9taXNlKCkuXHJcbiAgICAgICAgdGhlbihjID0+IHtcclxuICAgICAgICAgIHRoaXMuX3hjb2x1bW5zID0gYztcclxuICAgICAgICAgIGMuZm9yRWFjaChfID0+IHRoaXMuY29sdW1ucy5wdXNoKHtcclxuICAgICAgICAgICAgd2lkdGg6IDkwXHJcbiAgICAgICAgICB9IGFzIENvbHVtbk1vZGVsXHJcbiAgICAgICAgICApKTtcclxuICAgICAgICB9KSBhcyBQcm9taXNlPGFueT47XHJcbiAgICAgIHByb21pc2VzLnB1c2gob2JzZXJ2ZSk7XHJcbiAgICAgIC8vIGFjcXVpcmUgcm93cyBzb3VyY2VcclxuICAgICAgb2JzZXJ2ZSA9IHRoaXMuX2RzLmFsbCh5QXhpcy5kYXRhVHlwZSkudG9Qcm9taXNlKCkuXHJcbiAgICAgICAgdGhlbihyID0+IHRoaXMuX3lyb3dzID0gcik7XHJcbiAgICAgIHByb21pc2VzLnB1c2gob2JzZXJ2ZSk7XHJcblxyXG4gICAgICB0aGlzLl9wcmVwYXJlID0gUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5leGVjdXRlKCk7XHJcbiAgfVxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydmaWx0ZXJzJ10gJiYgIWNoYW5nZXNbJ2ZpbHRlcnMnXS5maXJzdENoYW5nZSlcclxuICAgICAgdGhpcy5leGVjdXRlKCk7XHJcbiAgICBlbHNlXHJcbiAgICAgIGlmIChjaGFuZ2VzWydoZWlnaHQnXSB8fCBjaGFuZ2VzWyd3aWR0aCddKVxyXG4gICAgICAgIHRoaXMucmVzaXplKCk7XHJcbiAgfVxyXG4gIHJlc2l6ZSgpIHtcclxuICAgIGlmICh0aGlzLnNwcmVhZHNoZWV0KSB7XHJcbiAgICAgIHRoaXMuc3ByZWFkc2hlZXQuaGVpZ2h0ID0gdGhpcy5oZWlnaHQ7XHJcbiAgICAgIHRoaXMuc3ByZWFkc2hlZXQud2lkdGggPSB0aGlzLndpZHRoO1xyXG4gICAgICB0aGlzLnNwcmVhZHNoZWV0LnJlZnJlc2goKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGV4ZWN1dGUoKSB7XHJcbiAgICB0aGlzLmxvYWRpbmdDaGFuZ2UuZW1pdCh0cnVlKTtcclxuICAgIGlmICghdGhpcy5fc2VyaWVzKVxyXG4gICAgICB0aGlzLl9zZXJ2aWNlLnRhYmxlKHRoaXMuX2N1YmUubmFtZSwgdGhpcy5feEF4aXMsIHsgZmlsdGVyczogdGhpcy5maWx0ZXJzLCBpbmRpY2VzOiB0aGlzLl9pbmRpY2VzIH0pLlxyXG4gICAgICAgIHN1YnNjcmliZShkYXRhID0+IHtcclxuICAgICAgICAgIHRoaXMuX2RhdGF0YWJsZShkYXRhKTtcclxuICAgICAgICAgIHRoaXMuX2RyYXcoKTtcclxuICAgICAgICAgIHRoaXMubG9hZGluZ0NoYW5nZS5lbWl0KGZhbHNlKTtcclxuICAgICAgICB9LCAoZTogSHR0cFJlc3BvbnNlPGFueT4pID0+IHtcclxuICAgICAgICAgIHRoaXMuX3NiLmVycm9yKGUuc3RhdHVzID09PSA0MDEgPyAnVW5hdXRob3JpemVkJyA6IG51bGwpO1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nQ2hhbmdlLmVtaXQoZmFsc2UpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgZWxzZSB0aGlzLl9zZXJ2aWNlLnNlcmllcyh0aGlzLmN1YmUsIHRoaXMuX3hBeGlzLCB7IHNlcmllczogdGhpcy5fc2VyaWVzLCBmaWx0ZXJzOiB0aGlzLmZpbHRlcnMgfSkuXHJcbiAgICAgIHN1YnNjcmliZShkYXRhID0+IHtcclxuICAgICAgICB0aGlzLl9wcmVwYXJlLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5fZGF0YXNlcmllcyhkYXRhKTtcclxuICAgICAgICAgIHRoaXMuX2RyYXcoKTtcclxuICAgICAgICAgIHRoaXMubG9hZGluZ0NoYW5nZS5lbWl0KGZhbHNlKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSwgKGU6IEh0dHBSZXNwb25zZTxhbnk+KSA9PiB7XHJcbiAgICAgICAgdGhpcy5fc2IuZXJyb3IoZS5zdGF0dXMgPT09IDQwMSA/ICdVbmF1dGhvcml6ZWQnIDogbnVsbCk7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nQ2hhbmdlLmVtaXQoZmFsc2UpO1xyXG4gICAgICB9KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZGF0YXRhYmxlKGRhdGE6IHsgdmFsdWU6IG51bWJlcjsgfVtdKSB7XHJcbiAgICBjb25zdCBjZWxscyA9IFtdLCBzdHlsZSA9IHsgZm9udFdlaWdodDogJ2JvbGQnLCB0ZXh0QWxpZ246ICdjZW50ZXInIH0gYXMgQ2VsbFN0eWxlTW9kZWw7XHJcbiAgICB0aGlzLl9heGVzLmZvckVhY2goYyA9PiBjZWxscy5wdXNoKHtcclxuICAgICAgdmFsdWU6IGMudGl0bGUsIHN0eWxlXHJcbiAgICB9IGFzIENlbGxNb2RlbCkpO1xyXG4gICAgdGhpcy5faW5kaWNlcyAmJiB0aGlzLl9jaW5kaWNlcy5mb3JFYWNoKGkgPT4gY2VsbHMucHVzaCh7IHZhbHVlOiBpLnRpdGxlLCBzdHlsZSB9IGFzIENlbGxNb2RlbCkpO1xyXG4gICAgY2VsbHMucHVzaCh7XHJcbiAgICAgIHZhbHVlOiB0aGlzLnlBeGlzID8gdGhpcy55QXhpcy50aXRsZSA6IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1ZhbHVlJyksXHJcbiAgICAgIHN0eWxlXHJcbiAgICB9IGFzIENlbGxNb2RlbCk7XHJcbiAgICB0aGlzLmRhdGFTb3VyY2UgPSBbe1xyXG4gICAgICBjZWxscywgaGVpZ2h0OiAyNVxyXG4gICAgfSBhcyBSb3dNb2RlbF07XHJcbiAgICBkYXRhLmZvckVhY2goZCA9PiB7XHJcbiAgICAgIGNvbnN0IGNlbGxzID0gW107XHJcbiAgICAgIHRoaXMuX3hBeGlzLmZvckVhY2goYyA9PiBjZWxscy5wdXNoKHtcclxuICAgICAgICB2YWx1ZTogZFtjXSxcclxuICAgICAgfSBhcyBDZWxsTW9kZWwpKTtcclxuICAgICAgdGhpcy5faW5kaWNlcyAmJiB0aGlzLl9pbmRpY2VzLmZvckVhY2goaSA9PiBjZWxscy5wdXNoKHtcclxuICAgICAgICBzdHlsZTogdGhpcy5udW1iZXJTdHlsZSxcclxuICAgICAgICBmb3JtYXQ6IHRoaXMuX251bWJlckZvcm1hdCxcclxuICAgICAgICB2YWx1ZTogKGRbaV0gfHwgMCkgYXMgYW55LFxyXG4gICAgICB9IGFzIENlbGxNb2RlbCkpO1xyXG4gICAgICBjZWxscy5wdXNoKHtcclxuICAgICAgICBzdHlsZTogdGhpcy5udW1iZXJTdHlsZSxcclxuICAgICAgICBmb3JtYXQ6IHRoaXMuX251bWJlckZvcm1hdCxcclxuICAgICAgICB2YWx1ZTogKGQudmFsdWUgfHwgMCkgYXMgYW55LFxyXG4gICAgICB9IGFzIENlbGxNb2RlbCk7XHJcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5wdXNoKHsgY2VsbHMsIHNvdXJjZTogZCwgaGVpZ2h0OiAyNSB9IGFzIFJvd01vZGVsKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZGF0YXNlcmllcyhkOiBTZXJpZXNbXSkge1xyXG4gICAgY29uc3Qgc3R5bGUgPSB7IGZvbnRXZWlnaHQ6ICdib2xkJywgdGV4dEFsaWduOiAnY2VudGVyJyB9IGFzIENlbGxTdHlsZU1vZGVsO1xyXG4gICAgY29uc3QgY2VsbHMgPSBbeyB2YWx1ZTogJycgfSBhcyBDZWxsTW9kZWxdO1xyXG4gICAgdGhpcy5feGNvbHVtbnMuZm9yRWFjaChjID0+IGNlbGxzLnB1c2goeyB2YWx1ZTogYy52YWx1ZSwgc3R5bGUgfSkpO1xyXG4gICAgdGhpcy5kYXRhU291cmNlID0gW3sgY2VsbHMsIGhlaWdodDogMjUgfV07XHJcblxyXG4gICAgdGhpcy5faW5kaWNlcyAmJiB0aGlzLl9jaW5kaWNlcy5cclxuICAgICAgZm9yRWFjaChpID0+IHtcclxuICAgICAgICBjb25zdCBjZWxscyA9IFt7IHZhbHVlOiBpLnRpdGxlLCBzdHlsZSB9IGFzIENlbGxNb2RlbF0sIHNlcmllID0gZC5maW5kKHMgPT4gcy5pbmRleCA9PT0gaS5uYW1lKSwgbWFwID0ge307XHJcbiAgICAgICAgaWYgKHNlcmllKSB7XHJcbiAgICAgICAgICBzZXJpZS5wb2ludHMuZm9yRWFjaChwID0+IG1hcFtwLnhdID0gcC55KTtcclxuICAgICAgICAgIHRoaXMuX3hjb2x1bW5zLmZvckVhY2goYyA9PiBjZWxscy5wdXNoKHtcclxuICAgICAgICAgICAgdmFsdWU6IChtYXBbYy5rZXldIHx8IDApIGFzIGFueSxcclxuICAgICAgICAgICAgZm9ybWF0OiB0aGlzLl9udW1iZXJGb3JtYXQsXHJcbiAgICAgICAgICAgIHN0eWxlOiB0aGlzLm51bWJlclN0eWxlXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHRoaXMuZGF0YVNvdXJjZS5wdXNoKHsgY2VsbHMsIGhlaWdodDogMjUgfSBhcyBSb3dNb2RlbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIHRoaXMuX3lyb3dzLmZvckVhY2gociA9PiB7XHJcbiAgICAgIGNvbnN0IGNlbGxzID0gW3sgdmFsdWU6IHIudmFsdWUsIHN0eWxlIH0gYXMgQ2VsbE1vZGVsXSxcclxuICAgICAgICBzZXJpZSA9IGQuZmluZChzID0+IHMubmFtZSA9PT0gci5rZXkpLCBtYXAgPSB7fTtcclxuICAgICAgaWYgKHNlcmllKSB7XHJcbiAgICAgICAgc2VyaWUucG9pbnRzLmZvckVhY2gocCA9PiBtYXBbcC54XSA9IHAueSk7XHJcbiAgICAgICAgdGhpcy5feGNvbHVtbnMuZm9yRWFjaChjID0+IGNlbGxzLnB1c2goe1xyXG4gICAgICAgICAgdmFsdWU6IChtYXBbYy5rZXldIHx8IDApIGFzIGFueSxcclxuICAgICAgICAgIGZvcm1hdDogdGhpcy5fbnVtYmVyRm9ybWF0LFxyXG4gICAgICAgICAgc3R5bGU6IHRoaXMubnVtYmVyU3R5bGVcclxuICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZVxyXG4gICAgICAgIHRoaXMuX3hjb2x1bW5zLmZvckVhY2goXyA9PiBjZWxscy5wdXNoKHsgdmFsdWU6IDAgYXMgYW55IH0pXHJcbiAgICAgICAgKTtcclxuICAgICAgdGhpcy5kYXRhU291cmNlLnB1c2goeyBjZWxscywgaGVpZ2h0OiAyNSB9IGFzIFJvd01vZGVsKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZHJhdygpIHtcclxuICAgIHRoaXMuc3ByZWFkc2hlZXQgJiYgdGhpcy5zcHJlYWRzaGVldC5kZXN0cm95KCk7XHJcbiAgICB0aGlzLnNwcmVhZHNoZWV0ID0gbmV3IFNwcmVhZHNoZWV0KHtcclxuICAgICAgaXNQcm90ZWN0ZWQ6IHRydWUsXHJcbiAgICAgIGFsbG93RWRpdGluZzogZmFsc2UsXHJcbiAgICAgIGFsbG93RGVsZXRlOiBmYWxzZSxcclxuICAgICAgYWxsb3dJbnNlcnQ6IGZhbHNlLFxyXG4gICAgICBzaG93UmliYm9uOiBmYWxzZSxcclxuICAgICAgYWxsb3dBdXRvRmlsbDogZmFsc2UsXHJcbiAgICAgIGF1dG9GaWxsU2V0dGluZ3M6IHRoaXMuYXV0b0ZpbGxTZXR0aW5ncyxcclxuICAgICAgZW5hYmxlQ2xpcGJvYXJkOiBmYWxzZSxcclxuICAgICAgZW5hYmxlQ29udGV4dE1lbnU6IGZhbHNlLFxyXG4gICAgICBzaG93Rm9ybXVsYUJhcjogZmFsc2UsXHJcbiAgICAgIHNob3dTaGVldFRhYnM6IGZhbHNlLFxyXG4gICAgICBzZWxlY3Q6IHRoaXMuc2VsZWN0LmJpbmQodGhpcyksXHJcbiAgICAgIHNoZWV0czogW3tcclxuICAgICAgICBjb2x1bW5zOiB0aGlzLmNvbHVtbnMsXHJcbiAgICAgICAgLy9mcm96ZW5Db2x1bW5zOiB0aGlzLnNlcmllcyAhPT0gdW5kZWZpbmVkID8gMSA6IDAsXHJcbiAgICAgICAgLy9mcm96ZW5Sb3dzOiAxLFxyXG4gICAgICAgIHJvd3M6IHRoaXMuZGF0YVNvdXJjZSxcclxuICAgICAgfV0sXHJcbiAgICAgIHdpZHRoOiB0aGlzLndpZHRoLFxyXG4gICAgICBoZWlnaHQ6IHRoaXMuaGVpZ2h0LFxyXG4gICAgfSwgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICB9XHJcbiAgc2VsZWN0KGV2dDogU2VsZWN0RXZlbnRBcmdzKSB7XHJcbiAgICBjb25zdCBhZGRyZXNzID0gdGhpcy5zcHJlYWRzaGVldC5nZXRBZGRyZXNzSW5mbyhldnQucmFuZ2UpO1xyXG4gICAgbGV0IFt5LCB4LCB5MSwgeDFdID0gYWRkcmVzcy5pbmRpY2VzO1xyXG4gICAgaWYgKHkxIDwgeSkge1xyXG4gICAgICBjb25zdCByYW5nZSA9IHk7XHJcbiAgICAgIHkgPSB5MSwgeTEgPSByYW5nZTtcclxuICAgIH1cclxuICAgIGlmICh4MSA8IHgpIHtcclxuICAgICAgY29uc3QgcmFuZ2UgPSB4O1xyXG4gICAgICB4ID0geDEsIHgxID0gcmFuZ2U7XHJcbiAgICB9XHJcbiAgICBjb25zdCBheGVzOiB7fSA9IHt9O1xyXG4gICAgaWYgKCF0aGlzLl9zZXJpZXMpIHtcclxuICAgICAgaWYgKHkgPT09IDApIHJldHVybjtcclxuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLl9pbmRpY2VzICYmIHkgPCB0aGlzLl9pbmRpY2VzLmxlbmd0aCA/IHRoaXMuX2NpbmRpY2VzW3ldLm5hbWUgOiBudWxsO1xyXG4gICAgICBsZXQgaSA9IHk7XHJcbiAgICAgIGRvIHtcclxuICAgICAgICB0aGlzLl9heGVzLmZvckVhY2goYSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBrZXkgPSAodGhpcy5kYXRhU291cmNlW2ldIGFzIGFueSkuc291cmNlWydfJyArIGEubmFtZV07XHJcbiAgICAgICAgICBpZiAoIWF4ZXNbYS5uYW1lXSlcclxuICAgICAgICAgICAgYXhlc1thLm5hbWVdID0ga2V5O1xyXG4gICAgICAgICAgZWxzZSBpZiAoaXNTdHJpbmcoYXhlc1thLm5hbWVdKSkge1xyXG4gICAgICAgICAgICBpZiAoYXhlc1thLm5hbWVdICE9PSBrZXkpIGF4ZXNbYS5uYW1lXSA9IFtheGVzW2EubmFtZV0sIGtleV07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIGlmICgoYXhlc1thLm5hbWVdIGFzIHN0cmluZ1tdKS5pbmRleE9mKGtleSkgPCAwKSAoYXhlc1thLm5hbWVdIGFzIHN0cmluZ1tdKS5wdXNoKGtleSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaSsrO1xyXG4gICAgICB9XHJcbiAgICAgIHdoaWxlIChpIDw9IHkxKTtcclxuICAgICAgdGhpcy5leHBsb3JlLmVtaXQoeyBheGVzLCBpbmRleCB9KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBpZiAoeSA9PT0gMCkge1xyXG4gICAgICAgIGlmICh5IDwgeTEpXHJcbiAgICAgICAgICB0aGlzLl9maWxseCh4LCB4MSwgYXhlcyk7XHJcbiAgICAgICAgZWxzZSByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAoeCA9PT0gMCkge1xyXG4gICAgICAgIGlmICh4IDwgeDEpXHJcbiAgICAgICAgICB0aGlzLl9maWxseSh5LCB5MSwgYXhlcyk7XHJcbiAgICAgICAgZWxzZSByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAoeSA9PT0geTEgJiYgeCA9PT0geDEgJiYgdGhpcy5kYXRhU291cmNlW3ldLmNlbGxzW3hdLnZhbHVlID09PSAnMCcpIHJldHVybjtcclxuICAgICAgZWxzZSBpZiAoeSA+IHRoaXMuZGF0YVNvdXJjZS5sZW5ndGggLSAxIHx8IHggPiB0aGlzLmRhdGFTb3VyY2VbeV0uY2VsbHMubGVuZ3RoIC0gMSkgcmV0dXJuO1xyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLl9maWxseCh4LCB4MSwgYXhlcyk7XHJcbiAgICAgICAgdGhpcy5fZmlsbHkoeSwgeTEsIGF4ZXMpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZXhwbG9yZS5lbWl0KHsgYXhlcyB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgcHJpdmF0ZSBfZmlsbHkoeTogbnVtYmVyLCB5MTogbnVtYmVyLCBheGVzOiB7fSkge1xyXG4gICAgY29uc3QgeU5hbWUgPSB0aGlzLl9zZXJpZXNbMF07XHJcbiAgICBsZXQgaSA9IHkgLSAxO1xyXG4gICAgd2hpbGUgKGkgPCB5MSkge1xyXG4gICAgICBsZXQgeyBrZXkgfSA9IHRoaXMuX3lyb3dzW2ldO1xyXG4gICAgICBpZiAoIWF4ZXNbeU5hbWVdKVxyXG4gICAgICAgIGF4ZXNbeU5hbWVdID0ga2V5O1xyXG4gICAgICBlbHNlIGlmIChpc1N0cmluZyhheGVzW3lOYW1lXSkpXHJcbiAgICAgICAgYXhlc1t5TmFtZV0gPSBbYXhlc1t5TmFtZV0sIGtleV07XHJcbiAgICAgIGVsc2UgaWYgKChheGVzW3lOYW1lXSBhcyBzdHJpbmdbXSkuaW5kZXhPZihrZXkpIDwgMClcclxuICAgICAgICAoYXhlc1t5TmFtZV0gYXMgc3RyaW5nW10pLnB1c2goa2V5KTtcclxuICAgICAgaSsrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZmlsbHgoeDogbnVtYmVyLCB4MTogbnVtYmVyLCBheGVzOiB7fSkge1xyXG4gICAgY29uc3QgeE5hbWUgPSB0aGlzLl94QXhpc1swXTtcclxuICAgIGxldCBpID0geCAtIDE7XHJcbiAgICB3aGlsZSAoaSA8IHgxKSB7XHJcbiAgICAgIGxldCB7IGtleSB9ID0gdGhpcy5feGNvbHVtbnNbaV07XHJcbiAgICAgIGlmICghYXhlc1t4TmFtZV0pXHJcbiAgICAgICAgYXhlc1t4TmFtZV0gPSBrZXk7XHJcbiAgICAgIGVsc2UgaWYgKGlzU3RyaW5nKGF4ZXNbeE5hbWVdKSlcclxuICAgICAgICBheGVzW3hOYW1lXSA9IFtheGVzW3hOYW1lXSwga2V5XTtcclxuICAgICAgZWxzZSBpZiAoKGF4ZXNbeE5hbWVdIGFzIHN0cmluZ1tdKS5pbmRleE9mKGtleSkgPCAwKVxyXG4gICAgICAgIChheGVzW3hOYW1lXSBhcyBzdHJpbmdbXSkucHVzaChrZXkpO1xyXG4gICAgICBpKys7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBleHBvcnRUb0V4Y2VsKHRpdGxlOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHsgcm93cyB9ID0gdGhpcy5zcHJlYWRzaGVldC5zaGVldHNbMF0sXHJcbiAgICAgIG51bWJlckZvcm1hdCA9IHRoaXMuX3NlcnZpY2UubnVtYmVyRm9ybWF0LFxyXG4gICAgICBib29rID0gbmV3IFdvcmtib29rKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHdvcmtzaGVldHM6IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIGVuYWJsZVJ0bDogdGhpcy5fc2Vzc2lvbi5pbnZlcnNlLFxyXG4gICAgICAgICAgICAgIG5hbWU6IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1NoZWV0TicsIDEpLFxyXG4gICAgICAgICAgICAgIGNvbHVtbnM6IHJvd3NbMF0uY2VsbHMubWFwKChfLCBpKSA9PiAoeyBpbmRleDogaSArIDEsIHdpZHRoOiAxNTAgfSBhcyBDb2x1bW4pKSxcclxuICAgICAgICAgICAgICByb3dzOiByb3dzLm1hcCgociwgaSkgPT4gKFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICBpbmRleDogaSArIDEsXHJcbiAgICAgICAgICAgICAgICAgIGNlbGxzOiByLmNlbGxzLm1hcCgoYywgaikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGhlYWRlciA9IGkgPT09IDAgfHwgKHRoaXMuc2VyaWVzICYmIGogPT09IDApLFxyXG4gICAgICAgICAgICAgICAgICAgICAgaXNudW1iZXIgPSB0aGlzLnNlcmllcyA/ICFoZWFkZXIgOiBpc051bWJlcihjLnZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZTogaXNudW1iZXIgPyAnbnVtYmVyJyA6ICd0ZXh0JyxcclxuICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBqICsgMSwgdmFsdWU6IGMudmFsdWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICBjZWxsU3R5bGU6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyRm9ybWF0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBoQWxpZ246IGlzbnVtYmVyID8gJ3JpZ2h0JyA6ICdjZW50ZXInLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBib2xkOiBoZWFkZXJcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9IGFzIENlbGw7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgfSBhcyBSb3cpKSxcclxuICAgICAgICAgICAgfSBhcyBXb3Jrc2hlZXQsXHJcbiAgICAgICAgICBdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgJ3hsc3gnXHJcbiAgICAgICk7XHJcbiAgICBib29rLnNhdmUoYCR7dGl0bGV9Lnhsc3hgKTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnNwcmVhZHNoZWV0ICYmIHRoaXMuc3ByZWFkc2hlZXQuZGVzdHJveSgpO1xyXG4gIH1cclxufVxyXG4iXX0=
369
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ByZWFkc2hlZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jdWJlL2dyaWQvc3ByZWFkc2hlZXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxXQUFXLEVBQXlCLEtBQUssRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFFN0ksT0FBTyxFQUFvQyxXQUFXLEVBQTBELFFBQVEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3RLLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQVd4RCxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7O0FBU3pELE1BQU0sT0FBTyx3QkFBd0I7SUEyQ25DLDRFQUE0RTtJQUM1RSxZQUNVLFFBQXdCLEVBQ3hCLEdBQWtCLEVBQ2xCLFFBQXFCLEVBQ3JCLFVBQTRCLEVBQzVCLEdBQXNCLEVBQ3RCLFdBQXVCO1FBTHZCLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ3hCLFFBQUcsR0FBSCxHQUFHLENBQWU7UUFDbEIsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUNyQixlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQUM1QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQXpCZCxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQWtCLENBQUM7UUFFN0Msa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQ2hELE9BQUUsR0FBRyxvQkFBb0Isd0JBQXdCLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztRQUU1RSxlQUFVLEdBQWUsRUFBRSxDQUFDO1FBRW5CLGdCQUFXLEdBQUcsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFvQixDQUFDO1FBQ3ZELHFC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QUk7c0JBREgsS0FBSztnQkFJRixLQUFLO3NCQURSLEtBQUs7Z0JBS04sS0FBSztzQkFESixLQUFLO2dCQUdGLE1BQU07c0JBRFQsS0FBSztnQkFLRixPQUFPO3NCQURWLEtBQUs7Z0JBS04sT0FBTztzQkFETixLQUFLO2dCQUVhLE9BQU87c0JBQXpCLE1BQU07Z0JBQ0UsT0FBTztzQkFBZixLQUFLO2dCQUNhLGFBQWE7c0JBQS9CLE1BQU07Z0JBQ1EsRUFBRTtzQkFBaEIsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgQ29tcG9uZW50LCBPdXRwdXQsIE9uSW5pdCwgSG9zdEJpbmRpbmcsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgSW5wdXQsIFNpbXBsZUNoYW5nZXMsIE9uQ2hhbmdlcyB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEh0dHBSZXNwb25zZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBDZWxsTW9kZWwsIENvbHVtbk1vZGVsLCBSb3dNb2RlbCwgU3ByZWFkc2hlZXQsIENlbGxTdHlsZU1vZGVsLCBTZWxlY3RFdmVudEFyZ3MsIEF1dG9GaWxsU2V0dGluZ3NNb2RlbCwgaXNOdW1iZXIgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItc3ByZWFkc2hlZXRcIjtcclxuaW1wb3J0IHsgV29ya2Jvb2sgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItZXhjZWwtZXhwb3J0JztcclxuaW1wb3J0IHsgV29ya3NoZWV0IH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWV4Y2VsLWV4cG9ydC9zcmMvd29ya3NoZWV0JztcclxuaW1wb3J0IHsgUm93IH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWV4Y2VsLWV4cG9ydC9zcmMvcm93JztcclxuaW1wb3J0IHsgQ29sdW1uIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWV4Y2VsLWV4cG9ydC9zcmMvY29sdW1uJztcclxuaW1wb3J0IHsgQXhpc0NsaWNrRXZlbnQsIEN1YmVWaWV3ZXJDb21wb25lbnQgfSBmcm9tIFwiLi4vZGVjbGFyYXRpb25zXCI7XHJcbmltcG9ydCB7IEF4ZXNNYXAsIEN1YmUsIEN1YmVBeGlzLCBDdWJlSW5kZXgsIFlBeGlzIH0gZnJvbSBcIi4uLy4uL2NvcmUvbW9kZWxzXCI7XHJcbmltcG9ydCB7IEN1YmVTZXJ2aWNlLCBTZXJpZXMgfSBmcm9tIFwiLi4vY3ViZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFByb21wdFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9wcm9tcHQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvdHJhbnNsYXRlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRGF0YXNvdXJjZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9kYXRhc291cmNlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgaXNBcnJheSwgaXNTdHJpbmcgfSBmcm9tIFwiLi4vLi4vY29yZS9mdW5jdGlvbnNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLWN1YmUtc3ByZWFkc2hlZXQnLFxyXG4gIHRlbXBsYXRlOiAnJyxcclxuICBob3N0OiB7XHJcbiAgICBjbGFzczogJ2N1YmUtdmlldydcclxuICB9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdWJlU3ByZWFkc2hlZXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEN1YmVWaWV3ZXJDb21wb25lbnQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuICBwcml2YXRlIHN0YXRpYyBuZXh0SWQgPSAwO1xyXG4gIEBJbnB1dCgpXHJcbiAgd2lkdGg6IHN0cmluZztcclxuICBASW5wdXQoKVxyXG4gIGhlaWdodDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpXHJcbiAgY3ViZTogc3RyaW5nO1xyXG4gIHByaXZhdGUgX2N1YmU6IEN1YmU7XHJcbiAgQElucHV0KClcclxuICBzZXQgeEF4aXModmFsOiBzdHJpbmdbXSB8IHN0cmluZykge1xyXG4gICAgdGhpcy5feEF4aXMgPSBpc0FycmF5KHZhbCkgPyB2YWwgOiBbdmFsXTtcclxuICB9XHJcbiAgQElucHV0KClcclxuICB5QXhpcz86IFlBeGlzO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHNlcmllcyh2YWw6IHN0cmluZ1tdIHwgc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsKSB0aGlzLl9zZXJpZXMgPSBpc0FycmF5KHZhbCkgPyB2YWwgOiBbdmFsXTtcclxuICB9XHJcbiAgQElucHV0KClcclxuICBzZXQgaW5kaWNlcyh2YWw6IHN0cmluZ1tdIHwgc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsKSB0aGlzLl9pbmRpY2VzID0gaXNBcnJheSh2YWwpID8gdmFsIDogW3ZhbF07XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgZmlsdGVycz86IEF4ZXNNYXA7XHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGV4cGxvcmUgPSBuZXcgRXZlbnRFbWl0dGVyPEF4aXNDbGlja0V2ZW50PigpO1xyXG4gIEBJbnB1dCgpIGxvYWRpbmc6IGJvb2xlYW47XHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGxvYWRpbmdDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgQEhvc3RCaW5kaW5nKCkgaWQgPSBgY3ViZS1zcHJlYWRzaGVldC0ke0N1YmVTcHJlYWRzaGVldENvbXBvbmVudC5uZXh0SWQrK31gO1xyXG4gIHNwcmVhZHNoZWV0OiBTcHJlYWRzaGVldDtcclxuICBkYXRhU291cmNlOiBSb3dNb2RlbFtdID0gW107XHJcbiAgY29sdW1uczogQ29sdW1uTW9kZWxbXTtcclxuICByZWFkb25seSBudW1iZXJTdHlsZSA9IHsgdGV4dEFsaWduOiAncmlnaHQnIH0gYXMgQ2VsbFN0eWxlTW9kZWw7XHJcbiAgcmVhZG9ubHkgYXV0b0ZpbGxTZXR0aW5ncyA9IHsgc2hvd0ZpbGxPcHRpb25zOiBmYWxzZSB9IGFzIEF1dG9GaWxsU2V0dGluZ3NNb2RlbDtcclxuICBwcml2YXRlIF94QXhpczogc3RyaW5nW107XHJcbiAgcHJpdmF0ZSBfc2VyaWVzPzogc3RyaW5nW107XHJcbiAgcHJpdmF0ZSBfaW5kaWNlcz86IHN0cmluZ1tdO1xyXG4gIHByaXZhdGUgX2F4ZXM6IEN1YmVBeGlzW107XHJcbiAgcHJpdmF0ZSBfY2luZGljZXM6IEN1YmVJbmRleFtdO1xyXG4gIHByaXZhdGUgX3lyb3dzOiB7IGtleTogYW55OyB2YWx1ZTogYW55IH1bXSA9IFtdO1xyXG4gIHByaXZhdGUgX3hjb2x1bW5zOiB7IGtleTogYW55OyB2YWx1ZTogYW55IH1bXSA9IFtdO1xyXG4gIHByaXZhdGUgX3ByZXBhcmU6IFByb21pc2U8YW55W10+O1xyXG4gIHByaXZhdGUgX251bWJlckZvcm1hdDogc3RyaW5nO1xyXG4gIC8vcHJpdmF0ZSByZWFkb25seSBfaW50bDogSW50ZXJuYXRpb25hbGl6YXRpb24gPSBuZXcgSW50ZXJuYXRpb25hbGl6YXRpb24oKTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2I6IFByb21wdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zZXJ2aWNlOiBDdWJlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX2RzOiBEYXRhc291cmNlU2VydmljZSxcclxuICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHsgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fY3ViZSA9IHRoaXMuY3ViZSA/IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlcy5maW5kKGMgPT4gYy5uYW1lID09PSB0aGlzLmN1YmUpIDogdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzWzBdO1xyXG4gICAgdGhpcy5fbnVtYmVyRm9ybWF0ID0gYCR7dGhpcy5fY3ViZS5jdXJyZW5jeUNvZGUgPyAnYycgOiAnbid9JHt0aGlzLl9zZXJ2aWNlLmZyYWN0aW9uRGlnaXRzfWBcclxuICAgIC8vdGhpcy5faW50bC5nZXROdW1iZXJQYXR0ZXJuKHtcclxuICAgIC8vICBjdXJyZW5jeTogdGhpcy5fY3ViZS5jdXJyZW5jeUNvZGUsXHJcbiAgICAvLyAgZm9ybWF0OiB0aGlzLl9jdWJlLmN1cnJlbmN5Q29kZSA/ICdjJyA6ICduJyxcclxuICAgIC8vICB1c2VHcm91cGluZzogdHJ1ZSxcclxuICAgIC8vICBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IHRoaXMuX3NlcnZpY2UuZnJhY3Rpb25EaWdpdHMsXHJcbiAgICAvLyAgbWluaW11bUZyYWN0aW9uRGlnaXRzOiB0aGlzLl9zZXJ2aWNlLmZyYWN0aW9uRGlnaXRzXHJcbiAgICAvL30gYXMgTnVtYmVyRm9ybWF0T3B0aW9ucyk7XHJcbiAgICBpZiAoIXRoaXMuX3Nlcmllcykge1xyXG4gICAgICB0aGlzLl9heGVzID0gdGhpcy5feEF4aXMubWFwKGMgPT4gdGhpcy5fY3ViZS5heGVzLmZpbmQoYSA9PiBhLm5hbWUgPT0gYykpO1xyXG4gICAgICBpZiAodGhpcy5faW5kaWNlcykgdGhpcy5fY2luZGljZXMgPSB0aGlzLl9jdWJlLmluZGljZXMuZmlsdGVyKGkgPT4gdGhpcy5faW5kaWNlcy5pbmRleE9mKGkubmFtZSkgPiAtMSk7XHJcbiAgICAgIHRoaXMuY29sdW1ucyA9IHRoaXMuX2F4ZXMubWFwKF8gPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICB3aWR0aDogMTIwXHJcbiAgICAgICAgfSBhcyBDb2x1bW5Nb2RlbDtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuY29sdW1ucy5wdXNoKHtcclxuICAgICAgICB3aWR0aDogOTBcclxuICAgICAgfSAvKiB2YWx1ZSAqLyk7XHJcbiAgICAgIHRoaXMuX2luZGljZXMgJiYgdGhpcy5faW5kaWNlcy5mb3JFYWNoKF8gPT4gdGhpcy5jb2x1bW5zLnB1c2goe1xyXG4gICAgICAgIHdpZHRoOiA5MFxyXG4gICAgICB9IGFzIENvbHVtbk1vZGVsXHJcbiAgICAgICkpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGNvbnN0IHlOYW1lID0gdGhpcy5fc2VyaWVzWzBdLCB4TmFtZSA9IHRoaXMuX3hBeGlzWzBdLFxyXG4gICAgICAgIHhBeGlzID0gdGhpcy5fY3ViZS5heGVzLmZpbmQoYSA9PiBhLm5hbWUgPT09IHhOYW1lKSxcclxuICAgICAgICB5QXhpcyA9IHRoaXMuX2N1YmUuYXhlcy5maW5kKGEgPT4gYS5uYW1lID09PSB5TmFtZSk7XHJcbiAgICAgIGNvbnN0IHByb21pc2VzOiBQcm9taXNlPGFueT5bXSA9IFtdO1xyXG4gICAgICB0aGlzLmNvbHVtbnMgPSBbe1xyXG4gICAgICAgIHdpZHRoOiAxMjBcclxuICAgICAgfV07XHJcbiAgICAgIC8vIGFjcXVpcmUgY29sdW1ucyBzb3VyY2VcclxuICAgICAgbGV0IG9ic2VydmUgPSB0aGlzLl9kcy5hbGwoeEF4aXMuZGF0YVR5cGUpLnRvUHJvbWlzZSgpLlxyXG4gICAgICAgIHRoZW4oYyA9PiB7XHJcbiAgICAgICAgICB0aGlzLl94Y29sdW1ucyA9IGM7XHJcbiAgICAgICAgICBjLmZvckVhY2goXyA9PiB0aGlzLmNvbHVtbnMucHVzaCh7XHJcbiAgICAgICAgICAgIHdpZHRoOiA5MFxyXG4gICAgICAgICAgfSBhcyBDb2x1bW5Nb2RlbFxyXG4gICAgICAgICAgKSk7XHJcbiAgICAgICAgfSkgYXMgUHJvbWlzZTxhbnk+O1xyXG4gICAgICBwcm9taXNlcy5wdXNoKG9ic2VydmUpO1xyXG4gICAgICAvLyBhY3F1aXJlIHJvd3Mgc291cmNlXHJcbiAgICAgIG9ic2VydmUgPSB0aGlzLl9kcy5hbGwoeUF4aXMuZGF0YVR5cGUpLnRvUHJvbWlzZSgpLlxyXG4gICAgICAgIHRoZW4ociA9PiB0aGlzLl95cm93cyA9IHIpO1xyXG4gICAgICBwcm9taXNlcy5wdXNoKG9ic2VydmUpO1xyXG5cclxuICAgICAgdGhpcy5fcHJlcGFyZSA9IFByb21pc2UuYWxsKHByb21pc2VzKTtcclxuICAgIH1cclxuICAgIHRoaXMuZXhlY3V0ZSgpO1xyXG4gIH1cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1snZmlsdGVycyddICYmICFjaGFuZ2VzWydmaWx0ZXJzJ10uZmlyc3RDaGFuZ2UpXHJcbiAgICAgIHRoaXMuZXhlY3V0ZSgpO1xyXG4gICAgZWxzZVxyXG4gICAgICBpZiAoY2hhbmdlc1snaGVpZ2h0J10gfHwgY2hhbmdlc1snd2lkdGgnXSlcclxuICAgICAgICB0aGlzLnJlc2l6ZSgpO1xyXG4gIH1cclxuICByZXNpemUoKSB7XHJcbiAgICBpZiAodGhpcy5zcHJlYWRzaGVldCkge1xyXG4gICAgICB0aGlzLnNwcmVhZHNoZWV0LmhlaWdodCA9IHRoaXMuaGVpZ2h0O1xyXG4gICAgICB0aGlzLnNwcmVhZHNoZWV0LndpZHRoID0gdGhpcy53aWR0aDtcclxuICAgICAgdGhpcy5zcHJlYWRzaGVldC5yZWZyZXNoKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBleGVjdXRlKCkge1xyXG4gICAgdGhpcy5sb2FkaW5nQ2hhbmdlLmVtaXQodHJ1ZSk7XHJcbiAgICBpZiAoIXRoaXMuX3NlcmllcylcclxuICAgICAgdGhpcy5fc2VydmljZS50YWJsZSh0aGlzLl9jdWJlLm5hbWUsIHRoaXMuX3hBeGlzLCB7IGZpbHRlcnM6IHRoaXMuZmlsdGVycywgaW5kaWNlczogdGhpcy5faW5kaWNlcyB9KS5cclxuICAgICAgICBzdWJzY3JpYmUoZGF0YSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9kYXRhdGFibGUoZGF0YSk7XHJcbiAgICAgICAgICB0aGlzLl9kcmF3KCk7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmdDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICAgICAgfSwgKGU6IEh0dHBSZXNwb25zZTxhbnk+KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9zYi5lcnJvcihlLnN0YXR1cyA9PT0gNDAxID8gJ1VuYXV0aG9yaXplZCcgOiBudWxsKTtcclxuICAgICAgICAgIHRoaXMubG9hZGluZ0NoYW5nZS5lbWl0KGZhbHNlKTtcclxuICAgICAgICB9KTtcclxuICAgIGVsc2UgdGhpcy5fc2VydmljZS5zZXJpZXModGhpcy5jdWJlLCB0aGlzLl94QXhpcywgeyBzZXJpZXM6IHRoaXMuX3NlcmllcywgZmlsdGVyczogdGhpcy5maWx0ZXJzIH0pLlxyXG4gICAgICBzdWJzY3JpYmUoZGF0YSA9PiB7XHJcbiAgICAgICAgdGhpcy5fcHJlcGFyZS50aGVuKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuX2RhdGFzZXJpZXMoZGF0YSk7XHJcbiAgICAgICAgICB0aGlzLl9kcmF3KCk7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmdDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0sIChlOiBIdHRwUmVzcG9uc2U8YW55PikgPT4ge1xyXG4gICAgICAgIHRoaXMuX3NiLmVycm9yKGUuc3RhdHVzID09PSA0MDEgPyAnVW5hdXRob3JpemVkJyA6IG51bGwpO1xyXG4gICAgICAgIHRoaXMubG9hZGluZ0NoYW5nZS5lbWl0KGZhbHNlKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2RhdGF0YWJsZShkYXRhOiB7IHZhbHVlOiBudW1iZXI7IH1bXSkge1xyXG4gICAgY29uc3QgY2VsbHMgPSBbXSwgc3R5bGUgPSB7IGZvbnRXZWlnaHQ6ICdib2xkJywgdGV4dEFsaWduOiAnY2VudGVyJyB9IGFzIENlbGxTdHlsZU1vZGVsO1xyXG4gICAgdGhpcy5fYXhlcy5mb3JFYWNoKGMgPT4gY2VsbHMucHVzaCh7XHJcbiAgICAgIHZhbHVlOiBjLnRpdGxlLCBzdHlsZVxyXG4gICAgfSBhcyBDZWxsTW9kZWwpKTtcclxuICAgIHRoaXMuX2luZGljZXMgJiYgdGhpcy5fY2luZGljZXMuZm9yRWFjaChpID0+IGNlbGxzLnB1c2goeyB2YWx1ZTogaS50aXRsZSwgc3R5bGUgfSBhcyBDZWxsTW9kZWwpKTtcclxuICAgIGNlbGxzLnB1c2goe1xyXG4gICAgICB2YWx1ZTogdGhpcy55QXhpcyA/IHRoaXMueUF4aXMudGl0bGUgOiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdWYWx1ZScpLFxyXG4gICAgICBzdHlsZVxyXG4gICAgfSBhcyBDZWxsTW9kZWwpO1xyXG4gICAgdGhpcy5kYXRhU291cmNlID0gW3tcclxuICAgICAgY2VsbHMsIGhlaWdodDogMjVcclxuICAgIH0gYXMgUm93TW9kZWxdO1xyXG4gICAgZGF0YS5mb3JFYWNoKGQgPT4ge1xyXG4gICAgICBjb25zdCBjZWxscyA9IFtdO1xyXG4gICAgICB0aGlzLl94QXhpcy5mb3JFYWNoKGMgPT4gY2VsbHMucHVzaCh7XHJcbiAgICAgICAgdmFsdWU6IGRbY10sXHJcbiAgICAgIH0gYXMgQ2VsbE1vZGVsKSk7XHJcbiAgICAgIHRoaXMuX2luZGljZXMgJiYgdGhpcy5faW5kaWNlcy5mb3JFYWNoKGkgPT4gY2VsbHMucHVzaCh7XHJcbiAgICAgICAgc3R5bGU6IHRoaXMubnVtYmVyU3R5bGUsXHJcbiAgICAgICAgZm9ybWF0OiB0aGlzLl9udW1iZXJGb3JtYXQsXHJcbiAgICAgICAgdmFsdWU6IChkW2ldIHx8IDApIGFzIGFueSxcclxuICAgICAgfSBhcyBDZWxsTW9kZWwpKTtcclxuICAgICAgY2VsbHMucHVzaCh7XHJcbiAgICAgICAgc3R5bGU6IHRoaXMubnVtYmVyU3R5bGUsXHJcbiAgICAgICAgZm9ybWF0OiB0aGlzLl9udW1iZXJGb3JtYXQsXHJcbiAgICAgICAgdmFsdWU6IChkLnZhbHVlIHx8IDApIGFzIGFueSxcclxuICAgICAgfSBhcyBDZWxsTW9kZWwpO1xyXG4gICAgICB0aGlzLmRhdGFTb3VyY2UucHVzaCh7IGNlbGxzLCBzb3VyY2U6IGQsIGhlaWdodDogMjUgfSBhcyBSb3dNb2RlbCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2RhdGFzZXJpZXMoZDogU2VyaWVzW10pIHtcclxuICAgIGNvbnN0IHN0eWxlID0geyBmb250V2VpZ2h0OiAnYm9sZCcsIHRleHRBbGlnbjogJ2NlbnRlcicgfSBhcyBDZWxsU3R5bGVNb2RlbDtcclxuICAgIGNvbnN0IGNlbGxzID0gW3sgdmFsdWU6ICcnIH0gYXMgQ2VsbE1vZGVsXTtcclxuICAgIHRoaXMuX3hjb2x1bW5zLmZvckVhY2goYyA9PiBjZWxscy5wdXNoKHsgdmFsdWU6IGMudmFsdWUsIHN0eWxlIH0pKTtcclxuICAgIHRoaXMuZGF0YVNvdXJjZSA9IFt7IGNlbGxzLCBoZWlnaHQ6IDI1IH1dO1xyXG5cclxuICAgIHRoaXMuX2luZGljZXMgJiYgdGhpcy5fY2luZGljZXMuXHJcbiAgICAgIGZvckVhY2goaSA9PiB7XHJcbiAgICAgICAgY29uc3QgY2VsbHMgPSBbeyB2YWx1ZTogaS50aXRsZSwgc3R5bGUgfSBhcyBDZWxsTW9kZWxdLCBzZXJpZSA9IGQuZmluZChzID0+IHMuaW5kZXggPT09IGkubmFtZSksIG1hcCA9IHt9O1xyXG4gICAgICAgIGlmIChzZXJpZSkge1xyXG4gICAgICAgICAgc2VyaWUucG9pbnRzLmZvckVhY2gocCA9PiBtYXBbcC54XSA9IHAueSk7XHJcbiAgICAgICAgICB0aGlzLl94Y29sdW1ucy5mb3JFYWNoKGMgPT4gY2VsbHMucHVzaCh7XHJcbiAgICAgICAgICAgIHZhbHVlOiAobWFwW2Mua2V5XSB8fCAwKSBhcyBhbnksXHJcbiAgICAgICAgICAgIGZvcm1hdDogdGhpcy5fbnVtYmVyRm9ybWF0LFxyXG4gICAgICAgICAgICBzdHlsZTogdGhpcy5udW1iZXJTdHlsZVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICB0aGlzLmRhdGFTb3VyY2UucHVzaCh7IGNlbGxzLCBoZWlnaHQ6IDI1IH0gYXMgUm93TW9kZWwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB0aGlzLl95cm93cy5mb3JFYWNoKHIgPT4ge1xyXG4gICAgICBjb25zdCBjZWxscyA9IFt7IHZhbHVlOiByLnZhbHVlLCBzdHlsZSB9IGFzIENlbGxNb2RlbF0sXHJcbiAgICAgICAgc2VyaWUgPSBkLmZpbmQocyA9PiBzLm5hbWUgPT09IHIua2V5KSwgbWFwID0ge307XHJcbiAgICAgIGlmIChzZXJpZSkge1xyXG4gICAgICAgIHNlcmllLnBvaW50cy5mb3JFYWNoKHAgPT4gbWFwW3AueF0gPSBwLnkpO1xyXG4gICAgICAgIHRoaXMuX3hjb2x1bW5zLmZvckVhY2goYyA9PiBjZWxscy5wdXNoKHtcclxuICAgICAgICAgIHZhbHVlOiAobWFwW2Mua2V5XSB8fCAwKSBhcyBhbnksXHJcbiAgICAgICAgICBmb3JtYXQ6IHRoaXMuX251bWJlckZvcm1hdCxcclxuICAgICAgICAgIHN0eWxlOiB0aGlzLm51bWJlclN0eWxlXHJcbiAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2VcclxuICAgICAgICB0aGlzLl94Y29sdW1ucy5mb3JFYWNoKF8gPT4gY2VsbHMucHVzaCh7IHZhbHVlOiAwIGFzIGFueSB9KVxyXG4gICAgICAgICk7XHJcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5wdXNoKHsgY2VsbHMsIGhlaWdodDogMjUgfSBhcyBSb3dNb2RlbCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2RyYXcoKSB7XHJcbiAgICB0aGlzLnNwcmVhZHNoZWV0ICYmIHRoaXMuc3ByZWFkc2hlZXQuZGVzdHJveSgpO1xyXG4gICAgdGhpcy5zcHJlYWRzaGVldCA9IG5ldyBTcHJlYWRzaGVldCh7XHJcbiAgICAgIGlzUHJvdGVjdGVkOiB0cnVlLFxyXG4gICAgICBhbGxvd0VkaXRpbmc6IGZhbHNlLFxyXG4gICAgICBhbGxvd0RlbGV0ZTogZmFsc2UsXHJcbiAgICAgIGFsbG93SW5zZXJ0OiBmYWxzZSxcclxuICAgICAgc2hvd1JpYmJvbjogZmFsc2UsXHJcbiAgICAgIGFsbG93QXV0b0ZpbGw6IGZhbHNlLFxyXG4gICAgICBhdXRvRmlsbFNldHRpbmdzOiB0aGlzLmF1dG9GaWxsU2V0dGluZ3MsXHJcbiAgICAgIGVuYWJsZUNsaXBib2FyZDogZmFsc2UsXHJcbiAgICAgIGVuYWJsZUNvbnRleHRNZW51OiBmYWxzZSxcclxuICAgICAgc2hvd0Zvcm11bGFCYXI6IGZhbHNlLFxyXG4gICAgICBzaG93U2hlZXRUYWJzOiBmYWxzZSxcclxuICAgICAgc2VsZWN0OiB0aGlzLnNlbGVjdC5iaW5kKHRoaXMpLFxyXG4gICAgICBzaGVldHM6IFt7XHJcbiAgICAgICAgY29sdW1uczogdGhpcy5jb2x1bW5zLFxyXG4gICAgICAgIC8vZnJvemVuQ29sdW1uczogdGhpcy5zZXJpZXMgIT09IHVuZGVmaW5lZCA/IDEgOiAwLFxyXG4gICAgICAgIC8vZnJvemVuUm93czogMSxcclxuICAgICAgICByb3dzOiB0aGlzLmRhdGFTb3VyY2UsXHJcbiAgICAgIH1dLFxyXG4gICAgICB3aWR0aDogdGhpcy53aWR0aCxcclxuICAgICAgaGVpZ2h0OiB0aGlzLmhlaWdodCxcclxuICAgIH0sIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XHJcbiAgfVxyXG4gIHNlbGVjdChldnQ6IFNlbGVjdEV2ZW50QXJncykge1xyXG4gICAgY29uc3QgYWRkcmVzcyA9IHRoaXMuc3ByZWFkc2hlZXQuZ2V0QWRkcmVzc0luZm8oZXZ0LnJhbmdlKTtcclxuICAgIGxldCBbeSwgeCwgeTEsIHgxXSA9IGFkZHJlc3MuaW5kaWNlcztcclxuICAgIGlmICh5MSA8IHkpIHtcclxuICAgICAgY29uc3QgcmFuZ2UgPSB5O1xyXG4gICAgICB5ID0geTEsIHkxID0gcmFuZ2U7XHJcbiAgICB9XHJcbiAgICBpZiAoeDEgPCB4KSB7XHJcbiAgICAgIGNvbnN0IHJhbmdlID0geDtcclxuICAgICAgeCA9IHgxLCB4MSA9IHJhbmdlO1xyXG4gICAgfVxyXG4gICAgY29uc3QgYXhlczoge30gPSB7fTtcclxuICAgIGlmICghdGhpcy5fc2VyaWVzKSB7XHJcbiAgICAgIGlmICh5ID09PSAwKSByZXR1cm47XHJcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5faW5kaWNlcyAmJiB5IDwgdGhpcy5faW5kaWNlcy5sZW5ndGggPyB0aGlzLl9jaW5kaWNlc1t5XS5uYW1lIDogbnVsbDtcclxuICAgICAgbGV0IGkgPSB5O1xyXG4gICAgICBkbyB7XHJcbiAgICAgICAgdGhpcy5fYXhlcy5mb3JFYWNoKGEgPT4ge1xyXG4gICAgICAgICAgY29uc3Qga2V5ID0gKHRoaXMuZGF0YVNvdXJjZVtpXSBhcyBhbnkpLnNvdXJjZVsnXycgKyBhLm5hbWVdO1xyXG4gICAgICAgICAgaWYgKCFheGVzW2EubmFtZV0pXHJcbiAgICAgICAgICAgIGF4ZXNbYS5uYW1lXSA9IGtleTtcclxuICAgICAgICAgIGVsc2UgaWYgKGlzU3RyaW5nKGF4ZXNbYS5uYW1lXSkpIHtcclxuICAgICAgICAgICAgaWYgKGF4ZXNbYS5uYW1lXSAhPT0ga2V5KSBheGVzW2EubmFtZV0gPSBbYXhlc1thLm5hbWVdLCBrZXldO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSBpZiAoKGF4ZXNbYS5uYW1lXSBhcyBzdHJpbmdbXSkuaW5kZXhPZihrZXkpIDwgMCkgKGF4ZXNbYS5uYW1lXSBhcyBzdHJpbmdbXSkucHVzaChrZXkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGkrKztcclxuICAgICAgfVxyXG4gICAgICB3aGlsZSAoaSA8PSB5MSk7XHJcbiAgICAgIHRoaXMuZXhwbG9yZS5lbWl0KHsgYXhlcywgaW5kZXggfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgaWYgKHkgPT09IDApIHtcclxuICAgICAgICBpZiAoeSA8IHkxKVxyXG4gICAgICAgICAgdGhpcy5fZmlsbHgoeCwgeDEsIGF4ZXMpO1xyXG4gICAgICAgIGVsc2UgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKHggPT09IDApIHtcclxuICAgICAgICBpZiAoeCA8IHgxKVxyXG4gICAgICAgICAgdGhpcy5fZmlsbHkoeSwgeTEsIGF4ZXMpO1xyXG4gICAgICAgIGVsc2UgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKHkgPT09IHkxICYmIHggPT09IHgxICYmIHRoaXMuZGF0YVNvdXJjZVt5XS5jZWxsc1t4XS52YWx1ZSA9PT0gJzAnKSByZXR1cm47XHJcbiAgICAgIGVsc2UgaWYgKHkgPiB0aGlzLmRhdGFTb3VyY2UubGVuZ3RoIC0gMSB8fCB4ID4gdGhpcy5kYXRhU291cmNlW3ldLmNlbGxzLmxlbmd0aCAtIDEpIHJldHVybjtcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5fZmlsbHgoeCwgeDEsIGF4ZXMpO1xyXG4gICAgICAgIHRoaXMuX2ZpbGx5KHksIHkxLCBheGVzKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmV4cGxvcmUuZW1pdCh7IGF4ZXMgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHByaXZhdGUgX2ZpbGx5KHk6IG51bWJlciwgeTE6IG51bWJlciwgYXhlczoge30pIHtcclxuICAgIGNvbnN0IHlOYW1lID0gdGhpcy5fc2VyaWVzWzBdO1xyXG4gICAgbGV0IGkgPSB5IC0gMTtcclxuICAgIHdoaWxlIChpIDwgeTEpIHtcclxuICAgICAgbGV0IHsga2V5IH0gPSB0aGlzLl95cm93c1tpXTtcclxuICAgICAgaWYgKCFheGVzW3lOYW1lXSlcclxuICAgICAgICBheGVzW3lOYW1lXSA9IGtleTtcclxuICAgICAgZWxzZSBpZiAoaXNTdHJpbmcoYXhlc1t5TmFtZV0pKVxyXG4gICAgICAgIGF4ZXNbeU5hbWVdID0gW2F4ZXNbeU5hbWVdLCBrZXldO1xyXG4gICAgICBlbHNlIGlmICgoYXhlc1t5TmFtZV0gYXMgc3RyaW5nW10pLmluZGV4T2Yoa2V5KSA8IDApXHJcbiAgICAgICAgKGF4ZXNbeU5hbWVdIGFzIHN0cmluZ1tdKS5wdXNoKGtleSk7XHJcbiAgICAgIGkrKztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2ZpbGx4KHg6IG51bWJlciwgeDE6IG51bWJlciwgYXhlczoge30pIHtcclxuICAgIGNvbnN0IHhOYW1lID0gdGhpcy5feEF4aXNbMF07XHJcbiAgICBsZXQgaSA9IHggLSAxO1xyXG4gICAgd2hpbGUgKGkgPCB4MSkge1xyXG4gICAgICBsZXQgeyBrZXkgfSA9IHRoaXMuX3hjb2x1bW5zW2ldO1xyXG4gICAgICBpZiAoIWF4ZXNbeE5hbWVdKVxyXG4gICAgICAgIGF4ZXNbeE5hbWVdID0ga2V5O1xyXG4gICAgICBlbHNlIGlmIChpc1N0cmluZyhheGVzW3hOYW1lXSkpXHJcbiAgICAgICAgYXhlc1t4TmFtZV0gPSBbYXhlc1t4TmFtZV0sIGtleV07XHJcbiAgICAgIGVsc2UgaWYgKChheGVzW3hOYW1lXSBhcyBzdHJpbmdbXSkuaW5kZXhPZihrZXkpIDwgMClcclxuICAgICAgICAoYXhlc1t4TmFtZV0gYXMgc3RyaW5nW10pLnB1c2goa2V5KTtcclxuICAgICAgaSsrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZXhwb3J0VG9FeGNlbCh0aXRsZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB7IHJvd3MgfSA9IHRoaXMuc3ByZWFkc2hlZXQuc2hlZXRzWzBdLFxyXG4gICAgICBudW1iZXJGb3JtYXQgPSB0aGlzLl9zZXJ2aWNlLm51bWJlckZvcm1hdCxcclxuICAgICAgYm9vayA9IG5ldyBXb3JrYm9vayhcclxuICAgICAgICB7XHJcbiAgICAgICAgICB3b3Jrc2hlZXRzOiBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBlbmFibGVSdGw6IHRoaXMuX3Nlc3Npb24uaW52ZXJzZSxcclxuICAgICAgICAgICAgICBuYW1lOiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdTaGVldE4nLCAxKSxcclxuICAgICAgICAgICAgICBjb2x1bW5zOiByb3dzWzBdLmNlbGxzLm1hcCgoXywgaSkgPT4gKHsgaW5kZXg6IGkgKyAxLCB3aWR0aDogMTUwIH0gYXMgQ29sdW1uKSksXHJcbiAgICAgICAgICAgICAgcm93czogcm93cy5tYXAoKHIsIGkpID0+IChcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgaW5kZXg6IGkgKyAxLFxyXG4gICAgICAgICAgICAgICAgICBjZWxsczogci5jZWxscy5tYXAoKGMsIGopID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBoZWFkZXIgPSBpID09PSAwIHx8ICh0aGlzLnNlcmllcyAmJiBqID09PSAwKSxcclxuICAgICAgICAgICAgICAgICAgICAgIGlzbnVtYmVyID0gdGhpcy5zZXJpZXMgPyAhaGVhZGVyIDogaXNOdW1iZXIoYy52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IGlzbnVtYmVyID8gJ251bWJlcicgOiAndGV4dCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICBpbmRleDogaiArIDEsIHZhbHVlOiBjLnZhbHVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyRm9ybWF0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBoQWxpZ246IGlzbnVtYmVyID8gJ3JpZ2h0JyA6ICdjZW50ZXInLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBib2xkOiBoZWFkZXJcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9IGFzIENlbGw7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgfSBhcyBSb3cpKSxcclxuICAgICAgICAgICAgfSBhcyBXb3Jrc2hlZXQsXHJcbiAgICAgICAgICBdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgJ3hsc3gnXHJcbiAgICAgICk7XHJcbiAgICBib29rLnNhdmUoYCR7dGl0bGV9Lnhsc3hgKTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnNwcmVhZHNoZWV0ICYmIHRoaXMuc3ByZWFkc2hlZXQuZGVzdHJveSgpO1xyXG4gIH1cclxufVxyXG5pbnRlcmZhY2UgQ2VsbCB7IH1cclxuIl19
@@ -119,9 +119,9 @@ export class CubeMatrixBase {
119
119
  this.axes = { ...this.axes };
120
120
  }
121
121
  }
122
- CubeMatrixBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: CubeMatrixBase, deps: [{ token: i1.CubeService }, { token: i2.DatasourceService }, { token: i3.SessionService }], target: i0.ɵɵFactoryTarget.Directive });
123
- CubeMatrixBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.0", type: CubeMatrixBase, viewQueries: [{ propertyName: "table", first: true, predicate: CubeMatrixComponent, descendants: true, static: true }], ngImport: i0 });
124
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: CubeMatrixBase, decorators: [{
122
+ CubeMatrixBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: CubeMatrixBase, deps: [{ token: i1.CubeService }, { token: i2.DatasourceService }, { token: i3.SessionService }], target: i0.ɵɵFactoryTarget.Directive });
123
+ CubeMatrixBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: CubeMatrixBase, viewQueries: [{ propertyName: "table", first: true, predicate: CubeMatrixComponent, descendants: true, static: true }], ngImport: i0 });
124
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: CubeMatrixBase, decorators: [{
125
125
  type: Directive
126
126
  }], ctorParameters: function () { return [{ type: i1.CubeService }, { type: i2.DatasourceService }, { type: i3.SessionService }]; }, propDecorators: { table: [{
127
127
  type: ViewChild,
@@ -52,9 +52,9 @@ export class CubeMatrixMobileComponent extends CubeMatrixBase {
52
52
  });
53
53
  }
54
54
  }
55
- CubeMatrixMobileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: CubeMatrixMobileComponent, deps: [{ token: i1.WindowTitleService }, { token: i2.ActivatedRoute }, { token: i2.Router }, { token: i3.CubeService }, { token: i4.DatasourceService }, { token: i5.SessionService }], target: i0.ɵɵFactoryTarget.Component });
56
- CubeMatrixMobileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.0", type: CubeMatrixMobileComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button (click)=\"table.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\" *ngIf=\"patterns && patterns.length\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\r\n <mat-menu #options xPosition=\"before\">\r\n <!-- patterns -->\r\n <button mat-menu-item *ngFor=\"let p of patterns\" (click)=\"aggregate(p)\">{{p.title}}</button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"reset()\" [disabled]=\"!pattern\" [bizdocTooltip]=\"'Clear' | translate\">\r\n <mat-icon>clear_all</mat-icon>\r\n </button>\r\n <!-- filters -->\r\n <ng-container *ngFor=\"let f of filters\">\r\n <button mat-button [matMenuTriggerFor]=\"fmenu\">{{values[f.name]| typeValue : f.dataType | async}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #fmenu xPosition=\"before\">\r\n <button mat-menu-item *ngFor=\"let kv of sources[f.name] | async\"\r\n (click)=\"filter(f.name, kv.key, kv.value)\">\r\n {{kv.value}}\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n</mat-toolbar>\r\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<bizdoc-cube-matrix [cube]=\"cube\" [xAxis]=\"xAxis\" [series]=\"series\" [indices]=\"indices\" [sum]=sum\r\n [filters]=\"axes\" [availableLabel]=\"availableLabel\"\r\n [(loading)]=\"loading\" (explore)='explore($event)'></bizdoc-cube-matrix>\r\n", styles: [":host{min-width:450px}:host ::ng-deep .cube-table thead{position:sticky;top:0}\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.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i9.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i10.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { type: i11.CubeMatrixComponent, selector: "bizdoc-cube-matrix", inputs: ["availableLabel", "cube", "xAxis", "series", "indices", "scope", "sum", "filters", "loading", "interactive"], outputs: ["explore", "loadingChange"] }], 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"] }, { type: i9.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i14.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": i15.TranslatePipe, "async": i14.AsyncPipe, "typeValue": i16.TypeValuePipe } });
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: CubeMatrixMobileComponent, decorators: [{
55
+ CubeMatrixMobileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: CubeMatrixMobileComponent, deps: [{ token: i1.WindowTitleService }, { token: i2.ActivatedRoute }, { token: i2.Router }, { token: i3.CubeService }, { token: i4.DatasourceService }, { token: i5.SessionService }], target: i0.ɵɵFactoryTarget.Component });
56
+ CubeMatrixMobileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: CubeMatrixMobileComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button (click)=\"table.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\" *ngIf=\"patterns && patterns.length\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\r\n <mat-menu #options xPosition=\"before\">\r\n <!-- patterns -->\r\n <button mat-menu-item *ngFor=\"let p of patterns\" (click)=\"aggregate(p)\">{{p.title}}</button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"reset()\" [disabled]=\"!pattern\" [bizdocTooltip]=\"'Clear' | translate\">\r\n <mat-icon>clear_all</mat-icon>\r\n </button>\r\n <!-- filters -->\r\n <ng-container *ngFor=\"let f of filters\">\r\n <button mat-button [matMenuTriggerFor]=\"fmenu\">{{values[f.name]| typeValue : f.dataType | async}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #fmenu xPosition=\"before\">\r\n <button mat-menu-item *ngFor=\"let kv of sources[f.name] | async\"\r\n (click)=\"filter(f.name, kv.key, kv.value)\">\r\n {{kv.value}}\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n</mat-toolbar>\r\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<bizdoc-cube-matrix [cube]=\"cube\" [xAxis]=\"xAxis\" [series]=\"series\" [indices]=\"indices\" [sum]=sum\r\n [filters]=\"axes\" [availableLabel]=\"availableLabel\"\r\n [(loading)]=\"loading\" (explore)='explore($event)'></bizdoc-cube-matrix>\r\n", styles: [":host{min-width:450px}:host ::ng-deep .cube-table thead{position:sticky;top:0}\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.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i9.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i10.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { type: i11.CubeMatrixComponent, selector: "bizdoc-cube-matrix", inputs: ["availableLabel", "cube", "xAxis", "series", "indices", "scope", "sum", "filters", "loading", "interactive"], outputs: ["explore", "loadingChange"] }], 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"] }, { type: i9.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i14.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": i15.TranslatePipe, "async": i14.AsyncPipe, "typeValue": i16.TypeValuePipe } });
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: CubeMatrixMobileComponent, decorators: [{
58
58
  type: Component,
59
59
  args: [{ template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button (click)=\"table.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\" *ngIf=\"patterns && patterns.length\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\r\n <mat-menu #options xPosition=\"before\">\r\n <!-- patterns -->\r\n <button mat-menu-item *ngFor=\"let p of patterns\" (click)=\"aggregate(p)\">{{p.title}}</button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"reset()\" [disabled]=\"!pattern\" [bizdocTooltip]=\"'Clear' | translate\">\r\n <mat-icon>clear_all</mat-icon>\r\n </button>\r\n <!-- filters -->\r\n <ng-container *ngFor=\"let f of filters\">\r\n <button mat-button [matMenuTriggerFor]=\"fmenu\">{{values[f.name]| typeValue : f.dataType | async}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #fmenu xPosition=\"before\">\r\n <button mat-menu-item *ngFor=\"let kv of sources[f.name] | async\"\r\n (click)=\"filter(f.name, kv.key, kv.value)\">\r\n {{kv.value}}\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n</mat-toolbar>\r\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<bizdoc-cube-matrix [cube]=\"cube\" [xAxis]=\"xAxis\" [series]=\"series\" [indices]=\"indices\" [sum]=sum\r\n [filters]=\"axes\" [availableLabel]=\"availableLabel\"\r\n [(loading)]=\"loading\" (explore)='explore($event)'></bizdoc-cube-matrix>\r\n", styles: [":host{min-width:450px}:host ::ng-deep .cube-table thead{position:sticky;top:0}\n"] }]
60
60
  }], ctorParameters: function () { return [{ type: i1.WindowTitleService }, { type: i2.ActivatedRoute }, { type: i2.Router }, { type: i3.CubeService }, { type: i4.DatasourceService }, { type: i5.SessionService }]; } });
@@ -59,9 +59,9 @@ export class CubeMatrixPaneComponent extends CubeMatrixBase {
59
59
  });
60
60
  }
61
61
  }
62
- CubeMatrixPaneComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: CubeMatrixPaneComponent, deps: [{ token: i1.PaneRef }, { token: i2.PanesRouter }, { token: i3.TranslateService }, { token: i4.CubeService }, { token: i5.DatasourceService }, { token: i6.SessionService }], target: i0.ɵɵFactoryTarget.Component });
63
- CubeMatrixPaneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.0", type: CubeMatrixPaneComponent, selector: "ng-component", host: { classAttribute: "pane" }, usesInheritance: true, ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button (click)=\"table.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\" *ngIf=\"patterns && patterns.length\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\r\n <mat-menu #options xPosition=\"before\">\r\n <!-- patterns -->\r\n <button mat-menu-item *ngFor=\"let p of patterns\" (click)=\"aggregate(p)\">{{p.title}}</button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"reset()\" [disabled]=\"!pattern\" [bizdocTooltip]=\"'Clear' | translate\">\r\n <mat-icon>clear_all</mat-icon>\r\n </button>\r\n <!-- filters -->\r\n <ng-container *ngFor=\"let f of filters\">\r\n <button mat-button [matMenuTriggerFor]=\"fmenu\">{{values[f.name]| typeValue : f.dataType | async}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #fmenu xPosition=\"before\">\r\n <button mat-menu-item *ngFor=\"let kv of sources[f.name] | async\"\r\n (click)=\"filter(f.name, kv.key, kv.value)\">\r\n {{kv.value}}\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n</mat-toolbar>\r\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<bizdoc-cube-matrix [cube]=\"cube\" [xAxis]=\"xAxis\" [series]=\"series\" [indices]=\"indices\" [sum]=sum\r\n [filters]=\"axes\" [availableLabel]=\"availableLabel\"\r\n [(loading)]=\"loading\" (explore)='explore($event)'></bizdoc-cube-matrix>\r\n", styles: [":host{min-width:450px}:host ::ng-deep .cube-table thead{position:sticky;top:0}\n"], components: [{ type: i7.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i8.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: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i10.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i10.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i11.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { type: i12.CubeMatrixComponent, selector: "bizdoc-cube-matrix", inputs: ["availableLabel", "cube", "xAxis", "series", "indices", "scope", "sum", "filters", "loading", "interactive"], outputs: ["explore", "loadingChange"] }], directives: [{ type: i13.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i14.MatIconAnimate, selector: "[matAnimate]" }, { type: i15.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i15.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": i16.TranslatePipe, "async": i15.AsyncPipe, "typeValue": i17.TypeValuePipe } });
64
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: CubeMatrixPaneComponent, decorators: [{
62
+ CubeMatrixPaneComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: CubeMatrixPaneComponent, deps: [{ token: i1.PaneRef }, { token: i2.PanesRouter }, { token: i3.TranslateService }, { token: i4.CubeService }, { token: i5.DatasourceService }, { token: i6.SessionService }], target: i0.ɵɵFactoryTarget.Component });
63
+ CubeMatrixPaneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: CubeMatrixPaneComponent, selector: "ng-component", host: { classAttribute: "pane" }, usesInheritance: true, ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button (click)=\"table.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\" *ngIf=\"patterns && patterns.length\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\r\n <mat-menu #options xPosition=\"before\">\r\n <!-- patterns -->\r\n <button mat-menu-item *ngFor=\"let p of patterns\" (click)=\"aggregate(p)\">{{p.title}}</button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"reset()\" [disabled]=\"!pattern\" [bizdocTooltip]=\"'Clear' | translate\">\r\n <mat-icon>clear_all</mat-icon>\r\n </button>\r\n <!-- filters -->\r\n <ng-container *ngFor=\"let f of filters\">\r\n <button mat-button [matMenuTriggerFor]=\"fmenu\">{{values[f.name]| typeValue : f.dataType | async}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #fmenu xPosition=\"before\">\r\n <button mat-menu-item *ngFor=\"let kv of sources[f.name] | async\"\r\n (click)=\"filter(f.name, kv.key, kv.value)\">\r\n {{kv.value}}\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n</mat-toolbar>\r\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<bizdoc-cube-matrix [cube]=\"cube\" [xAxis]=\"xAxis\" [series]=\"series\" [indices]=\"indices\" [sum]=sum\r\n [filters]=\"axes\" [availableLabel]=\"availableLabel\"\r\n [(loading)]=\"loading\" (explore)='explore($event)'></bizdoc-cube-matrix>\r\n", styles: [":host{min-width:450px}:host ::ng-deep .cube-table thead{position:sticky;top:0}\n"], components: [{ type: i7.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i8.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: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i10.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i10.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i11.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { type: i12.CubeMatrixComponent, selector: "bizdoc-cube-matrix", inputs: ["availableLabel", "cube", "xAxis", "series", "indices", "scope", "sum", "filters", "loading", "interactive"], outputs: ["explore", "loadingChange"] }], directives: [{ type: i13.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i14.MatIconAnimate, selector: "[matAnimate]" }, { type: i15.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i15.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": i16.TranslatePipe, "async": i15.AsyncPipe, "typeValue": i17.TypeValuePipe } });
64
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: CubeMatrixPaneComponent, decorators: [{
65
65
  type: Component,
66
66
  args: [{ host: {
67
67
  class: 'pane'
@@ -49,11 +49,11 @@ export class CubeMatrixPopupComponent extends CubeMatrixBase {
49
49
  });
50
50
  }
51
51
  }
52
- CubeMatrixPopupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: CubeMatrixPopupComponent, deps: [{ token: PopupRef }, { token: POPUP_DATA }, { token: i1.CubeService }, { token: i2.DatasourceService }, { token: i3.SessionService }, { token: i4.PromptService }], target: i0.ɵɵFactoryTarget.Component });
53
- CubeMatrixPopupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.0", type: CubeMatrixPopupComponent, selector: "ng-component", viewQueries: [{ propertyName: "table", first: true, predicate: CubeMatrixComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<div class=\"container\">\r\n <div class=\"row\" *ngIf=\"!preloading\">\r\n <span class=\"divider\"></span>\r\n <!-- title -->\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\" *ngIf=\"patterns && patterns.length\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\r\n <mat-menu #options xPosition=\"before\">\r\n <!-- patterns -->\r\n <button mat-menu-item *ngFor=\"let p of patterns\" (click)=\"aggregate(p)\">{{p.title}}</button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"reset()\" [disabled]=\"!pattern\" [bizdocTooltip]=\"'Clear' | translate\">\r\n <mat-icon>clear_all</mat-icon>\r\n </button>\r\n <!-- filters -->\r\n <ng-container *ngFor=\"let f of filters\">\r\n <button mat-button [matMenuTriggerFor]=\"fmenu\">{{values[f.name]| typeValue : f.dataType | async}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #fmenu xPosition=\"before\">\r\n <button mat-menu-item *ngFor=\"let kv of sources[f.name] | async\"\r\n (click)=\"filter(f.name, kv.key, kv.value)\">\r\n {{kv.value}}\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n </div>\r\n <bizdoc-cube-matrix [cube]=\"cube\" [xAxis]=\"xAxis\" [series]=\"series\" [indices]=\"indices\"\r\n [sum]=sum [interactive]=\"false\"\r\n [availableLabel]=\"availableLabel\"\r\n [filters]=\"axes\" [(loading)]=\"loading\"></bizdoc-cube-matrix>\r\n</div>\r\n", styles: [".container{padding:8px}\n"], components: [{ type: i5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { type: i6.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: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i8.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i8.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i9.CubeMatrixComponent, selector: "bizdoc-cube-matrix", inputs: ["availableLabel", "cube", "xAxis", "series", "indices", "scope", "sum", "filters", "loading", "interactive"], outputs: ["explore", "loadingChange"] }], directives: [{ type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }], pipes: { "translate": i12.TranslatePipe, "async": i10.AsyncPipe, "typeValue": i13.TypeValuePipe } });
54
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: CubeMatrixPopupComponent, decorators: [{
52
+ CubeMatrixPopupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: CubeMatrixPopupComponent, deps: [{ token: PopupRef }, { token: POPUP_DATA }, { token: i1.CubeService }, { token: i2.DatasourceService }, { token: i3.SessionService }, { token: i4.PromptService }], target: i0.ɵɵFactoryTarget.Component });
53
+ CubeMatrixPopupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: CubeMatrixPopupComponent, selector: "ng-component", viewQueries: [{ propertyName: "table", first: true, predicate: CubeMatrixComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<div class=\"container\">\r\n <div class=\"row\" *ngIf=\"!preloading\">\r\n <span class=\"divider\"></span>\r\n <!-- title -->\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\" *ngIf=\"patterns && patterns.length\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\r\n <mat-menu #options xPosition=\"before\">\r\n <!-- patterns -->\r\n <button mat-menu-item *ngFor=\"let p of patterns\" (click)=\"aggregate(p)\">{{p.title}}</button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"reset()\" [disabled]=\"!pattern\" [bizdocTooltip]=\"'Clear' | translate\">\r\n <mat-icon>clear_all</mat-icon>\r\n </button>\r\n <!-- filters -->\r\n <ng-container *ngFor=\"let f of filters\">\r\n <button mat-button [matMenuTriggerFor]=\"fmenu\">{{values[f.name]| typeValue : f.dataType | async}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #fmenu xPosition=\"before\">\r\n <button mat-menu-item *ngFor=\"let kv of sources[f.name] | async\"\r\n (click)=\"filter(f.name, kv.key, kv.value)\">\r\n {{kv.value}}\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n </div>\r\n <bizdoc-cube-matrix [cube]=\"cube\" [xAxis]=\"xAxis\" [series]=\"series\" [indices]=\"indices\"\r\n [sum]=sum [interactive]=\"false\"\r\n [availableLabel]=\"availableLabel\"\r\n [filters]=\"axes\" [(loading)]=\"loading\"></bizdoc-cube-matrix>\r\n</div>\r\n", styles: [".container{padding:8px}::ng-deep .cube-table{width:100%;display:inline-table}\n"], components: [{ type: i5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { type: i6.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: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i8.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i8.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i9.CubeMatrixComponent, selector: "bizdoc-cube-matrix", inputs: ["availableLabel", "cube", "xAxis", "series", "indices", "scope", "sum", "filters", "loading", "interactive"], outputs: ["explore", "loadingChange"] }], directives: [{ type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }], pipes: { "translate": i12.TranslatePipe, "async": i10.AsyncPipe, "typeValue": i13.TypeValuePipe } });
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: CubeMatrixPopupComponent, decorators: [{
55
55
  type: Component,
56
- args: [{ template: "<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<div class=\"container\">\r\n <div class=\"row\" *ngIf=\"!preloading\">\r\n <span class=\"divider\"></span>\r\n <!-- title -->\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\" *ngIf=\"patterns && patterns.length\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\r\n <mat-menu #options xPosition=\"before\">\r\n <!-- patterns -->\r\n <button mat-menu-item *ngFor=\"let p of patterns\" (click)=\"aggregate(p)\">{{p.title}}</button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"reset()\" [disabled]=\"!pattern\" [bizdocTooltip]=\"'Clear' | translate\">\r\n <mat-icon>clear_all</mat-icon>\r\n </button>\r\n <!-- filters -->\r\n <ng-container *ngFor=\"let f of filters\">\r\n <button mat-button [matMenuTriggerFor]=\"fmenu\">{{values[f.name]| typeValue : f.dataType | async}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #fmenu xPosition=\"before\">\r\n <button mat-menu-item *ngFor=\"let kv of sources[f.name] | async\"\r\n (click)=\"filter(f.name, kv.key, kv.value)\">\r\n {{kv.value}}\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n </div>\r\n <bizdoc-cube-matrix [cube]=\"cube\" [xAxis]=\"xAxis\" [series]=\"series\" [indices]=\"indices\"\r\n [sum]=sum [interactive]=\"false\"\r\n [availableLabel]=\"availableLabel\"\r\n [filters]=\"axes\" [(loading)]=\"loading\"></bizdoc-cube-matrix>\r\n</div>\r\n", styles: [".container{padding:8px}\n"] }]
56
+ args: [{ template: "<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<div class=\"container\">\r\n <div class=\"row\" *ngIf=\"!preloading\">\r\n <span class=\"divider\"></span>\r\n <!-- title -->\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\" *ngIf=\"patterns && patterns.length\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\r\n <mat-menu #options xPosition=\"before\">\r\n <!-- patterns -->\r\n <button mat-menu-item *ngFor=\"let p of patterns\" (click)=\"aggregate(p)\">{{p.title}}</button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"reset()\" [disabled]=\"!pattern\" [bizdocTooltip]=\"'Clear' | translate\">\r\n <mat-icon>clear_all</mat-icon>\r\n </button>\r\n <!-- filters -->\r\n <ng-container *ngFor=\"let f of filters\">\r\n <button mat-button [matMenuTriggerFor]=\"fmenu\">{{values[f.name]| typeValue : f.dataType | async}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #fmenu xPosition=\"before\">\r\n <button mat-menu-item *ngFor=\"let kv of sources[f.name] | async\"\r\n (click)=\"filter(f.name, kv.key, kv.value)\">\r\n {{kv.value}}\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n </div>\r\n <bizdoc-cube-matrix [cube]=\"cube\" [xAxis]=\"xAxis\" [series]=\"series\" [indices]=\"indices\"\r\n [sum]=sum [interactive]=\"false\"\r\n [availableLabel]=\"availableLabel\"\r\n [filters]=\"axes\" [(loading)]=\"loading\"></bizdoc-cube-matrix>\r\n</div>\r\n", styles: [".container{padding:8px}::ng-deep .cube-table{width:100%;display:inline-table}\n"] }]
57
57
  }], ctorParameters: function () { return [{ type: i14.PopupRef, decorators: [{
58
58
  type: Inject,
59
59
  args: [PopupRef]