@bizdoc/core 2.1.7 → 2.1.10

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 (392) hide show
  1. package/assets/themes/brown.min.css +1 -1
  2. package/assets/themes/dark.min.css +1 -1
  3. package/assets/themes/deep-purple-light-blue.min.css +1 -1
  4. package/assets/themes/deep-purple-teal.min.css +1 -1
  5. package/assets/themes/default.min.css +1 -1
  6. package/assets/themes/green.min.css +1 -1
  7. package/assets/themes/indigo.min.css +1 -1
  8. package/esm2022/lib/admin/admin-dismiss.service.mjs +3 -3
  9. package/esm2022/lib/admin/admin-menu.component.mjs +3 -3
  10. package/esm2022/lib/admin/architecture/cube-axes-filter.component.mjs +5 -5
  11. package/esm2022/lib/admin/architecture/declarations.mjs +1 -1
  12. package/esm2022/lib/admin/architecture/designer-element.component.mjs +17 -17
  13. package/esm2022/lib/admin/architecture/designer-privileges.component.mjs +5 -5
  14. package/esm2022/lib/admin/architecture/designer.base.mjs +9 -9
  15. package/esm2022/lib/admin/architecture/designer.component.mjs +7 -5
  16. package/esm2022/lib/admin/architecture/elements/action.component.mjs +5 -5
  17. package/esm2022/lib/admin/architecture/elements/analysis-view.component.mjs +3 -3
  18. package/esm2022/lib/admin/architecture/elements/analysis-widget.component.mjs +3 -3
  19. package/esm2022/lib/admin/architecture/elements/anomaly-rule.component.mjs +3 -3
  20. package/esm2022/lib/admin/architecture/elements/attribute.component.mjs +3 -3
  21. package/esm2022/lib/admin/architecture/elements/box-form.component.mjs +3 -3
  22. package/esm2022/lib/admin/architecture/elements/configuration-datasource.component.mjs +5 -5
  23. package/esm2022/lib/admin/architecture/elements/control.component.mjs +3 -3
  24. package/esm2022/lib/admin/architecture/elements/cube-index-utility.component.mjs +3 -3
  25. package/esm2022/lib/admin/architecture/elements/cube-view.component.mjs +3 -3
  26. package/esm2022/lib/admin/architecture/elements/cube.component.mjs +5 -6
  27. package/esm2022/lib/admin/architecture/elements/document-state-widget.component.mjs +3 -3
  28. package/esm2022/lib/admin/architecture/elements/documents-report.component.mjs +3 -3
  29. package/esm2022/lib/admin/architecture/elements/documents-widget.component.mjs +3 -3
  30. package/esm2022/lib/admin/architecture/elements/explore-view.component.mjs +3 -3
  31. package/esm2022/lib/admin/architecture/elements/folder.component.mjs +5 -5
  32. package/esm2022/lib/admin/architecture/elements/form-invite.dialog.mjs +3 -3
  33. package/esm2022/lib/admin/architecture/elements/form.component.mjs +5 -5
  34. package/esm2022/lib/admin/architecture/elements/guide.component.mjs +5 -5
  35. package/esm2022/lib/admin/architecture/elements/job.component.mjs +59 -0
  36. package/esm2022/lib/admin/architecture/elements/matrix-view.component.mjs +5 -5
  37. package/esm2022/lib/admin/architecture/elements/node.component.mjs +3 -3
  38. package/esm2022/lib/admin/architecture/elements/parallel-view.component.mjs +3 -3
  39. package/esm2022/lib/admin/architecture/elements/performance-report.component.mjs +3 -3
  40. package/esm2022/lib/admin/architecture/elements/performance-widget.component.mjs +3 -3
  41. package/esm2022/lib/admin/architecture/elements/pivot-view.component.mjs +3 -3
  42. package/esm2022/lib/admin/architecture/elements/policy.component.mjs +3 -3
  43. package/esm2022/lib/admin/architecture/elements/report.component.mjs +3 -3
  44. package/esm2022/lib/admin/architecture/elements/return-to-role-action.component.mjs +3 -3
  45. package/esm2022/lib/admin/architecture/elements/role.component.mjs +3 -3
  46. package/esm2022/lib/admin/architecture/elements/rule.component.mjs +3 -3
  47. package/esm2022/lib/admin/architecture/elements/state.component.mjs +3 -3
  48. package/esm2022/lib/admin/architecture/elements/sum-view.component.mjs +3 -3
  49. package/esm2022/lib/admin/architecture/elements/tasks-report.component.mjs +3 -3
  50. package/esm2022/lib/admin/architecture/elements/type.component.mjs +5 -5
  51. package/esm2022/lib/admin/architecture/elements/usage-report.component.mjs +3 -3
  52. package/esm2022/lib/admin/architecture/elements/utility.component.mjs +3 -3
  53. package/esm2022/lib/admin/architecture/elements/view.component.mjs +3 -3
  54. package/esm2022/lib/admin/architecture/elements/widget.component.mjs +3 -3
  55. package/esm2022/lib/admin/architecture/icon-picker.component.mjs +3 -3
  56. package/esm2022/lib/admin/core/ace.input.mjs +3 -3
  57. package/esm2022/lib/admin/core/color-picker.input.mjs +3 -3
  58. package/esm2022/lib/admin/core/localized-string.component.mjs +3 -3
  59. package/esm2022/lib/admin/core/search.input.mjs +3 -3
  60. package/esm2022/lib/admin/diff/configuration-diff.component.mjs +3 -3
  61. package/esm2022/lib/admin/document-trace/document-trace.component.mjs +3 -3
  62. package/esm2022/lib/admin/document-trace/reassign.dialog.mjs +3 -3
  63. package/esm2022/lib/admin/document-trace/trace-element.component.mjs +5 -5
  64. package/esm2022/lib/admin/form/designer/box-designer.component.mjs +8 -8
  65. package/esm2022/lib/admin/form/designer/properties.component.mjs +3 -3
  66. package/esm2022/lib/admin/form/designer/section.component.mjs +3 -3
  67. package/esm2022/lib/admin/form/designer/settings.component.mjs +3 -3
  68. package/esm2022/lib/admin/form/form.resolve.service.mjs +3 -3
  69. package/esm2022/lib/admin/form/workflow/node.component.mjs +3 -3
  70. package/esm2022/lib/admin/form/workflow/role-node.component.mjs +3 -3
  71. package/esm2022/lib/admin/form/workflow/workflow.component.mjs +3 -3
  72. package/esm2022/lib/admin/indices/manage-cube-index.component.mjs +3 -3
  73. package/esm2022/lib/admin/patterns/patterns.component.mjs +3 -3
  74. package/esm2022/lib/admin/permissions/permissions.component.mjs +3 -3
  75. package/esm2022/lib/admin/positions/positions-popup.component.mjs +3 -3
  76. package/esm2022/lib/admin/positions/positions.component.mjs +3 -3
  77. package/esm2022/lib/admin/profiler/outofoffice.component.mjs +5 -5
  78. package/esm2022/lib/admin/profiler/profiler.component.mjs +5 -5
  79. package/esm2022/lib/admin/system.service.mjs +10 -4
  80. package/esm2022/lib/admin/utility-wrapper.component.mjs +3 -3
  81. package/esm2022/lib/admin/utility.pane.component.mjs +3 -3
  82. package/esm2022/lib/app.component.mjs +6 -6
  83. package/esm2022/lib/bizdoc.module.mjs +4 -4
  84. package/esm2022/lib/browse/browse-items.component.mjs +3 -3
  85. package/esm2022/lib/browse/browse.mobile.component.mjs +3 -3
  86. package/esm2022/lib/browse/browse.pane.component.mjs +3 -3
  87. package/esm2022/lib/browse/expanded-item/expanded-item.component.mjs +3 -3
  88. package/esm2022/lib/browse/filter/filter.component.mjs +3 -3
  89. package/esm2022/lib/browse/folders-menu.component.mjs +3 -3
  90. package/esm2022/lib/chat/chat-info.mjs +3 -3
  91. package/esm2022/lib/chat/chat.mobile.component.mjs +3 -3
  92. package/esm2022/lib/chat/chat.service.mjs +3 -3
  93. package/esm2022/lib/chat/contacts.component.mjs +6 -6
  94. package/esm2022/lib/chat/contacts.pane.component.mjs +3 -3
  95. package/esm2022/lib/chat/conversation.component.mjs +3 -3
  96. package/esm2022/lib/chat/conversation.pane.component.mjs +3 -3
  97. package/esm2022/lib/compose/action/action-picker.component.mjs +3 -3
  98. package/esm2022/lib/compose/action/action.dialog.mjs +3 -3
  99. package/esm2022/lib/compose/action/action.pane.dialog.exp.mjs +3 -3
  100. package/esm2022/lib/compose/action/assign-action.component.mjs +3 -3
  101. package/esm2022/lib/compose/action/moveto-action.component.mjs +3 -3
  102. package/esm2022/lib/compose/action/return-action.component.mjs +3 -3
  103. package/esm2022/lib/compose/attachments/attachments.component.mjs +3 -3
  104. package/esm2022/lib/compose/attachments/preview/attachment-preview.component.mjs +5 -5
  105. package/esm2022/lib/compose/attachments/progress-button.directive.mjs +3 -3
  106. package/esm2022/lib/compose/box/box.component.mjs +5 -5
  107. package/esm2022/lib/compose/box/control.component.mjs +3 -3
  108. package/esm2022/lib/compose/box/row.component.mjs +3 -3
  109. package/esm2022/lib/compose/can-deactivate-changes.service.mjs +3 -3
  110. package/esm2022/lib/compose/comments/comment.component.mjs +3 -3
  111. package/esm2022/lib/compose/comments/comments.component.mjs +3 -3
  112. package/esm2022/lib/compose/comments/comments.pane.component.mjs +3 -3
  113. package/esm2022/lib/compose/comments/edit-comment.component.mjs +3 -3
  114. package/esm2022/lib/compose/comments/edits.component.mjs +5 -5
  115. package/esm2022/lib/compose/comments/quick-comment.component.exp.mjs +3 -3
  116. package/esm2022/lib/compose/comments/votes.component.mjs +5 -5
  117. package/esm2022/lib/compose/compose-resolve.service.mjs +6 -6
  118. package/esm2022/lib/compose/compose.mobile.component.mjs +3 -3
  119. package/esm2022/lib/compose/compose.pane.component.mjs +3 -3
  120. package/esm2022/lib/compose/copy/copy.dialog.mjs +3 -3
  121. package/esm2022/lib/compose/dismiss.service.mjs +3 -3
  122. package/esm2022/lib/compose/document-resolver.service.mjs +3 -3
  123. package/esm2022/lib/compose/document.component.mjs +3 -3
  124. package/esm2022/lib/compose/document.mobile.component.mjs +3 -3
  125. package/esm2022/lib/compose/document.pane.component.mjs +3 -3
  126. package/esm2022/lib/compose/events/events.component.mjs +3 -3
  127. package/esm2022/lib/compose/form-selector/form-selector.sheet.mjs +3 -3
  128. package/esm2022/lib/compose/form.component.mjs +5 -5
  129. package/esm2022/lib/compose/new-menu.component.mjs +3 -3
  130. package/esm2022/lib/compose/privilage.directive.mjs +6 -6
  131. package/esm2022/lib/compose/recipient-resolver.service.mjs +3 -3
  132. package/esm2022/lib/compose/state.component.mjs +3 -3
  133. package/esm2022/lib/compose/tag/tags.component.mjs +3 -3
  134. package/esm2022/lib/compose/trace/flow.component.mjs +3 -3
  135. package/esm2022/lib/compose/trace/people.component.mjs +3 -3
  136. package/esm2022/lib/compose/trace/trace.base.mjs +3 -3
  137. package/esm2022/lib/compose/trace/trace.component.mjs +5 -5
  138. package/esm2022/lib/compose/trace/trace.pane.component.mjs +3 -3
  139. package/esm2022/lib/compose/version-compare/version-compare.component.mjs +3 -3
  140. package/esm2022/lib/compose/version-compare/version-compare.directive.mjs +9 -9
  141. package/esm2022/lib/compose/version-compare/version.pane.component.mjs +5 -5
  142. package/esm2022/lib/core/account.service.mjs +3 -3
  143. package/esm2022/lib/core/animated-icon/animated-icon.directive.mjs +3 -3
  144. package/esm2022/lib/core/animations.mjs +2 -2
  145. package/esm2022/lib/core/avatar/avatar.component.mjs +3 -3
  146. package/esm2022/lib/core/checkbox.mjs +6 -6
  147. package/esm2022/lib/core/component-factory-resolver.mjs +3 -3
  148. package/esm2022/lib/core/datasource.service.mjs +3 -3
  149. package/esm2022/lib/core/fields/address.designer.mjs +3 -3
  150. package/esm2022/lib/core/fields/address.field.mjs +3 -3
  151. package/esm2022/lib/core/fields/autocomplete.field.mjs +6 -6
  152. package/esm2022/lib/core/fields/checkbox.designer.mjs +3 -3
  153. package/esm2022/lib/core/fields/checkbox.field.mjs +3 -3
  154. package/esm2022/lib/core/fields/checklist.designer.mjs +3 -3
  155. package/esm2022/lib/core/fields/checklist.field.mjs +3 -3
  156. package/esm2022/lib/core/fields/date-range.designer.mjs +3 -3
  157. package/esm2022/lib/core/fields/date-range.field.mjs +3 -3
  158. package/esm2022/lib/core/fields/date.designer.mjs +3 -3
  159. package/esm2022/lib/core/fields/date.field.mjs +3 -3
  160. package/esm2022/lib/core/fields/expression.field.mjs +6 -6
  161. package/esm2022/lib/core/fields/file.designer.mjs +3 -3
  162. package/esm2022/lib/core/fields/file.field.mjs +3 -3
  163. package/esm2022/lib/core/fields/html.designer.mjs +3 -3
  164. package/esm2022/lib/core/fields/html.field.mjs +3 -3
  165. package/esm2022/lib/core/fields/input.designer.mjs +3 -3
  166. package/esm2022/lib/core/fields/input.field.mjs +3 -3
  167. package/esm2022/lib/core/fields/localized-string.field.mjs +6 -6
  168. package/esm2022/lib/core/fields/numeric.designer.mjs +3 -3
  169. package/esm2022/lib/core/fields/numeric.field.mjs +3 -3
  170. package/esm2022/lib/core/fields/options.base.mjs +6 -6
  171. package/esm2022/lib/core/fields/options.component.mjs +5 -5
  172. package/esm2022/lib/core/fields/radio-button.designer.mjs +3 -3
  173. package/esm2022/lib/core/fields/radio-button.field.mjs +3 -3
  174. package/esm2022/lib/core/fields/select.designer.mjs +3 -3
  175. package/esm2022/lib/core/fields/select.field.mjs +3 -3
  176. package/esm2022/lib/core/fields/signature.designer.mjs +3 -3
  177. package/esm2022/lib/core/fields/signature.field.mjs +3 -3
  178. package/esm2022/lib/core/fields/switch.field.mjs +3 -3
  179. package/esm2022/lib/core/fields/textarea.designer.mjs +3 -3
  180. package/esm2022/lib/core/fields/textarea.field.mjs +3 -3
  181. package/esm2022/lib/core/fields/time.designer.mjs +3 -3
  182. package/esm2022/lib/core/fields/time.field.mjs +3 -3
  183. package/esm2022/lib/core/fields/timespan.field.mjs +6 -6
  184. package/esm2022/lib/core/fields/yesno.designer.mjs +3 -3
  185. package/esm2022/lib/core/fields/yesno.field.mjs +3 -3
  186. package/esm2022/lib/core/guide/guide.component.mjs +5 -5
  187. package/esm2022/lib/core/guide/guide.service.mjs +3 -3
  188. package/esm2022/lib/core/guide/help-tip.component.mjs +6 -6
  189. package/esm2022/lib/core/http.interceptor.mjs +3 -3
  190. package/esm2022/lib/core/hub.service.mjs +3 -3
  191. package/esm2022/lib/core/identity/identity.component.mjs +3 -3
  192. package/esm2022/lib/core/info/attachment-info.service.mjs +3 -3
  193. package/esm2022/lib/core/info/document-info.service.mjs +3 -3
  194. package/esm2022/lib/core/info/location-info.component.mjs +3 -3
  195. package/esm2022/lib/core/info/map-info.mjs +3 -3
  196. package/esm2022/lib/core/inputs/address.input.mjs +3 -3
  197. package/esm2022/lib/core/inputs/auto-complete.input.mjs +6 -6
  198. package/esm2022/lib/core/inputs/combination-picker-body.mjs +3 -3
  199. package/esm2022/lib/core/inputs/combination-picker.mjs +3 -3
  200. package/esm2022/lib/core/inputs/combination-pool.mjs +3 -3
  201. package/esm2022/lib/core/inputs/file.input.mjs +3 -3
  202. package/esm2022/lib/core/inputs/select.input.mjs +6 -6
  203. package/esm2022/lib/core/inputs/signature.input.mjs +3 -3
  204. package/esm2022/lib/core/inputs/time-picker.mjs +3 -3
  205. package/esm2022/lib/core/inputs/timespan.input.mjs +3 -3
  206. package/esm2022/lib/core/layout.component.mjs +3 -3
  207. package/esm2022/lib/core/lottie-animation.mjs +3 -3
  208. package/esm2022/lib/core/mailbox.service.mjs +3 -3
  209. package/esm2022/lib/core/none.component.mjs +8 -8
  210. package/esm2022/lib/core/pipes/action.pipe.mjs +3 -3
  211. package/esm2022/lib/core/pipes/calendar.pipe.mjs +3 -3
  212. package/esm2022/lib/core/pipes/date-format.pipe.mjs +3 -3
  213. package/esm2022/lib/core/pipes/daterange.pipe.mjs +6 -6
  214. package/esm2022/lib/core/pipes/difference.pipe.mjs +3 -3
  215. package/esm2022/lib/core/pipes/duration-format.pipe.mjs +3 -3
  216. package/esm2022/lib/core/pipes/duration.pipe.mjs +3 -3
  217. package/esm2022/lib/core/pipes/form.pipe.mjs +3 -3
  218. package/esm2022/lib/core/pipes/join.pipe.mjs +3 -3
  219. package/esm2022/lib/core/pipes/localized-string.pipe.mjs +3 -3
  220. package/esm2022/lib/core/pipes/role.pipe.mjs +3 -3
  221. package/esm2022/lib/core/pipes/sanitize-html.pipe.mjs +3 -3
  222. package/esm2022/lib/core/pipes/sort.pipe.mjs +6 -6
  223. package/esm2022/lib/core/pipes/state.pipe.mjs +3 -3
  224. package/esm2022/lib/core/pipes/time-ago.pipe.mjs +6 -6
  225. package/esm2022/lib/core/pipes/translate.pipe.mjs +9 -9
  226. package/esm2022/lib/core/pipes/type-value.pipe.mjs +3 -3
  227. package/esm2022/lib/core/pipes/user-name.pipe.mjs +3 -3
  228. package/esm2022/lib/core/popup/popup.component.mjs +3 -3
  229. package/esm2022/lib/core/popup/popup.service.mjs +3 -3
  230. package/esm2022/lib/core/popup/tooltip.directive.mjs +6 -6
  231. package/esm2022/lib/core/prompt/ask/ask.dialog.mjs +5 -5
  232. package/esm2022/lib/core/prompt/mask/mask.component.mjs +3 -3
  233. package/esm2022/lib/core/prompt.service.mjs +3 -3
  234. package/esm2022/lib/core/router.mjs +6 -6
  235. package/esm2022/lib/core/save-changes.dialog.mjs +5 -5
  236. package/esm2022/lib/core/session.service.mjs +3 -3
  237. package/esm2022/lib/core/slots/router.directive.mjs +3 -3
  238. package/esm2022/lib/core/slots/router.service.mjs +3 -3
  239. package/esm2022/lib/core/slots/slots.component.mjs +3 -3
  240. package/esm2022/lib/core/tagging/documents.component.mjs +3 -3
  241. package/esm2022/lib/core/tagging/edit-input.component.mjs +3 -3
  242. package/esm2022/lib/core/tagging/emoji.component.mjs +3 -3
  243. package/esm2022/lib/core/tagging/tagging-item.directive.mjs +3 -3
  244. package/esm2022/lib/core/tagging/tagging.component-base.mjs +3 -3
  245. package/esm2022/lib/core/tagging/tagging.directive.mjs +3 -3
  246. package/esm2022/lib/core/tagging/tagging.pipe.mjs +3 -3
  247. package/esm2022/lib/core/tagging/users.component.mjs +3 -3
  248. package/esm2022/lib/core/translate.service.mjs +3 -3
  249. package/esm2022/lib/core/window-title.service.mjs +3 -3
  250. package/esm2022/lib/cube/accum/accum.component.mjs +3 -3
  251. package/esm2022/lib/cube/chart/chart.component.mjs +5 -5
  252. package/esm2022/lib/cube/cube-info.service.mjs +3 -3
  253. package/esm2022/lib/cube/cube-menu.component.mjs +3 -3
  254. package/esm2022/lib/cube/cube-view.component.mjs +3 -3
  255. package/esm2022/lib/cube/cube.service.mjs +4 -6
  256. package/esm2022/lib/cube/explore/document-item.component.mjs +3 -3
  257. package/esm2022/lib/cube/explore/explore-item.component.mjs +3 -3
  258. package/esm2022/lib/cube/explore/explore-items.component.mjs +3 -3
  259. package/esm2022/lib/cube/explore/explore.pane.component.mjs +3 -3
  260. package/esm2022/lib/cube/explore/item-resolver.service.mjs +7 -8
  261. package/esm2022/lib/cube/explore/item.pane.component.mjs +3 -3
  262. package/esm2022/lib/cube/filter/filter-tags.component.exp.mjs +3 -3
  263. package/esm2022/lib/cube/filter/filter.component.mjs +4 -4
  264. package/esm2022/lib/cube/grid/grid.component.mjs +4 -5
  265. package/esm2022/lib/cube/grid/spreadsheet.component.mjs +5 -5
  266. package/esm2022/lib/cube/matrix/matrix.base.mjs +4 -4
  267. package/esm2022/lib/cube/matrix/matrix.mobile.component.mjs +3 -3
  268. package/esm2022/lib/cube/matrix/matrix.pane.component.mjs +3 -3
  269. package/esm2022/lib/cube/matrix/popup.component.mjs +3 -3
  270. package/esm2022/lib/cube/matrix/table.component.mjs +6 -7
  271. package/esm2022/lib/cube/parallel/parallel.component.mjs +3 -3
  272. package/esm2022/lib/cube/pivot/pivot.component.mjs +4 -4
  273. package/esm2022/lib/cube/sum/sum.component.mjs +4 -7
  274. package/esm2022/lib/cube/view-base.mjs +3 -3
  275. package/esm2022/lib/cube/view.mobile.component.mjs +13 -11
  276. package/esm2022/lib/cube/view.pane.component.mjs +3 -3
  277. package/esm2022/lib/dashboard/actions/actions.widget.mjs +3 -3
  278. package/esm2022/lib/dashboard/cube/accum-cube.widget.mjs +3 -3
  279. package/esm2022/lib/dashboard/cube/compare.widget.mjs +3 -3
  280. package/esm2022/lib/dashboard/cube/cube-analysis.base.mjs +3 -3
  281. package/esm2022/lib/dashboard/cube/cube-analysis.widget.mjs +3 -3
  282. package/esm2022/lib/dashboard/cube/cube-chart.widget.mjs +3 -3
  283. package/esm2022/lib/dashboard/cube/document-state.widget.mjs +3 -3
  284. package/esm2022/lib/dashboard/cube/documents.widget.mjs +3 -3
  285. package/esm2022/lib/dashboard/cube/filter/filter.component.mjs +3 -3
  286. package/esm2022/lib/dashboard/dashboard.component.mjs +3 -3
  287. package/esm2022/lib/dashboard/dashboard.pane.component.mjs +3 -3
  288. package/esm2022/lib/dashboard/recents/recents.widget.mjs +3 -3
  289. package/esm2022/lib/dashboard/score/activity.widget.mjs +5 -5
  290. package/esm2022/lib/dashboard/score/compare-groups.widget.mjs +3 -3
  291. package/esm2022/lib/dashboard/score/peers-performance.widget.mjs +3 -3
  292. package/esm2022/lib/dashboard/score/pending-results.widget.mjs +3 -3
  293. package/esm2022/lib/dashboard/score/personal-score.widget.mjs +3 -3
  294. package/esm2022/lib/dashboard/widget-item.component.mjs +3 -3
  295. package/esm2022/lib/designer.module.mjs +4 -4
  296. package/esm2022/lib/desktop.module.mjs +4 -4
  297. package/esm2022/lib/home/about/about.dialog.mjs +3 -3
  298. package/esm2022/lib/home/home-base.component.mjs +3 -3
  299. package/esm2022/lib/home/home.desktop.component.mjs +3 -3
  300. package/esm2022/lib/home/home.mobile.component.mjs +3 -3
  301. package/esm2022/lib/home/notifications/notifications.component.mjs +3 -3
  302. package/esm2022/lib/home/options/options.component.mjs +5 -5
  303. package/esm2022/lib/home/outofoffice/outofoffice.component.mjs +3 -3
  304. package/esm2022/lib/home/sign/sign.component.mjs +3 -3
  305. package/esm2022/lib/home/tools.component.mjs +3 -3
  306. package/esm2022/lib/impersonate/impersonate.component.mjs +5 -5
  307. package/esm2022/lib/mobile.module.mjs +4 -4
  308. package/esm2022/lib/modules/chart.module.mjs +4 -4
  309. package/esm2022/lib/modules/circular-gauge.module.mjs +4 -4
  310. package/esm2022/lib/modules/datepicker.intl.mjs +3 -3
  311. package/esm2022/lib/modules/dayjs.module.mjs +4 -4
  312. package/esm2022/lib/modules/diagram.module.mjs +4 -4
  313. package/esm2022/lib/modules/gantt.module.mjs +4 -4
  314. package/esm2022/lib/modules/grid.module.mjs +4 -4
  315. package/esm2022/lib/modules/linear-gauge.module.mjs +4 -4
  316. package/esm2022/lib/modules/material.module.mjs +4 -4
  317. package/esm2022/lib/modules/paginator.intl.mjs +3 -3
  318. package/esm2022/lib/modules/pivot.module.mjs +4 -4
  319. package/esm2022/lib/modules/schedule.module.mjs +4 -4
  320. package/esm2022/lib/modules/spreadsheet.module.mjs +4 -4
  321. package/esm2022/lib/modules/stepper.intl.mjs +3 -3
  322. package/esm2022/lib/modules/texteditor.module.mjs +4 -4
  323. package/esm2022/lib/notifications/filter.component.mjs +3 -3
  324. package/esm2022/lib/notifications/notifications-table.component.mjs +3 -3
  325. package/esm2022/lib/notifications/notifications.mobile.component.mjs +3 -3
  326. package/esm2022/lib/notifications/notifications.pane.component.mjs +3 -3
  327. package/esm2022/lib/notifications/notifications.service.mjs +3 -3
  328. package/esm2022/lib/notifications/types/commented.notification.mjs +3 -3
  329. package/esm2022/lib/notifications/types/cube-anomaly.notification.mjs +3 -3
  330. package/esm2022/lib/notifications/types/escalated.notification.mjs +3 -3
  331. package/esm2022/lib/notifications/types/invite.notification.mjs +3 -3
  332. package/esm2022/lib/notifications/types/liked.notification.mjs +3 -3
  333. package/esm2022/lib/notifications/types/long-running-task.notification.mjs +3 -3
  334. package/esm2022/lib/notifications/types/notification-base.mjs +3 -3
  335. package/esm2022/lib/notifications/types/nudge.notification.mjs +3 -3
  336. package/esm2022/lib/notifications/types/state-changed.notification.mjs +3 -3
  337. package/esm2022/lib/notifications/types/tagged.notification.mjs +3 -3
  338. package/esm2022/lib/notifications/types/text.notification.mjs +3 -3
  339. package/esm2022/lib/notifications/types/upcoming-event.notification.mjs +3 -3
  340. package/esm2022/lib/options/options.component.mjs +3 -3
  341. package/esm2022/lib/options/options.service.mjs +3 -3
  342. package/esm2022/lib/reports/arguments-component.mjs +3 -3
  343. package/esm2022/lib/reports/cube/documents.component.mjs +3 -3
  344. package/esm2022/lib/reports/cube/grid-documents.component.mjs +3 -3
  345. package/esm2022/lib/reports/cube/role-performance.component.mjs +3 -3
  346. package/esm2022/lib/reports/cube/table-documents.component.mjs +3 -3
  347. package/esm2022/lib/reports/cube/usage-args.component.mjs +3 -3
  348. package/esm2022/lib/reports/cube/usage-base.mjs +3 -3
  349. package/esm2022/lib/reports/cube/usage-chart.component.mjs +3 -3
  350. package/esm2022/lib/reports/cube/usage-pivot.component.mjs +3 -3
  351. package/esm2022/lib/reports/cube/usage.component.mjs +3 -3
  352. package/esm2022/lib/reports/report-viewer.component.mjs +3 -3
  353. package/esm2022/lib/reports/report.mobile.component.mjs +3 -3
  354. package/esm2022/lib/reports/report.pane.component.mjs +3 -3
  355. package/esm2022/lib/reports/reports-menu.component.mjs +3 -3
  356. package/esm2022/lib/reports/substitution/substitution.component.mjs +3 -3
  357. package/esm2022/lib/reports/table/table-view.component.mjs +3 -3
  358. package/esm2022/lib/reports/tasks/tasks.component.mjs +3 -3
  359. package/esm2022/lib/scheduler/schedule.component.mjs +5 -5
  360. package/esm2022/lib/scheduler/scheduler.mobile.component.mjs +3 -3
  361. package/esm2022/lib/scheduler/scheduler.pane.component.mjs +3 -3
  362. package/esm2022/lib/search/cube.component.mjs +3 -3
  363. package/esm2022/lib/search/document.component.mjs +3 -3
  364. package/esm2022/lib/search/guide.component.mjs +3 -3
  365. package/esm2022/lib/search/path.component.mjs +3 -3
  366. package/esm2022/lib/search/search.service.mjs +3 -3
  367. package/esm2022/lib/shared.module.mjs +4 -4
  368. package/esm2022/lib/system.module.mjs +10 -7
  369. package/esm2022/lib/views/cube/chart.component.mjs +3 -3
  370. package/esm2022/lib/views/cube/cube-base.mjs +3 -3
  371. package/esm2022/lib/views/cube/explore.component.mjs +3 -3
  372. package/esm2022/lib/views/cube/matrix.component.mjs +3 -3
  373. package/esm2022/lib/views/cube/parallel.component.mjs +4 -4
  374. package/esm2022/lib/views/cube/pivot.component.mjs +3 -3
  375. package/esm2022/lib/views/cube/sum.component.mjs +3 -3
  376. package/esm2022/lib/views/cube/view.component.mjs +3 -3
  377. package/esm2022/lib/views/timeline/timeline.component.exp.mjs +3 -3
  378. package/esm2022/lib/views/view-item.component.mjs +3 -3
  379. package/esm2022/lib/views/views.component.mjs +3 -3
  380. package/esm2022/lib/views/views.mobile.component.mjs +3 -3
  381. package/esm2022/lib/views/views.pane.component.mjs +5 -6
  382. package/fesm2022/bizdoc-core.mjs +1317 -1272
  383. package/fesm2022/bizdoc-core.mjs.map +1 -1
  384. package/lib/admin/architecture/declarations.d.ts +1 -0
  385. package/lib/admin/architecture/elements/cube.component.d.ts +1 -2
  386. package/lib/admin/architecture/elements/job.component.d.ts +19 -0
  387. package/lib/admin/system.service.d.ts +5 -0
  388. package/lib/cube/filter/filter.component.d.ts +1 -1
  389. package/lib/cube/pivot/pivot.component.d.ts +1 -2
  390. package/lib/system.module.d.ts +56 -55
  391. package/lib/views/cube/parallel.component.d.ts +1 -1
  392. package/package.json +17 -17
@@ -65,10 +65,10 @@ export class CubeExplorePaneComponent {
65
65
  }
66
66
  });
67
67
  }
68
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: CubeExplorePaneComponent, deps: [{ token: i1.PaneRef }, { token: i2.PromptService }, { token: i3.SessionService }, { token: i4.CubeService }, { token: i5.TranslateService }, { token: i6.PanesRouter }], target: i0.ɵɵFactoryTarget.Component }); }
69
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: CubeExplorePaneComponent, selector: "ng-component", host: { listeners: { "window:resize": "resize()" }, classAttribute: "pane" }, ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button (click)=\"items.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"items.exportExcel()\" [bizdocTooltip]=\"'DownloadExcel' | translate\"><mat-icon>save_alt</mat-icon></button>\r\n <button mat-icon-button (click)=\"items.paginator.previousPage()\" [bizdocTooltip]=\"'PrevPage' | translate\" [attr.aria-label]=\"'PrevPage' | translate\" [disabled]=\"!items.paginator.hasPreviousPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\r\n <button mat-icon-button (click)=\"items.paginator.nextPage()\" [bizdocTooltip]=\"'NextPage' | translate\" [attr.aria-label]=\"'NextPage' | translate\" [disabled]=\"!items.paginator.hasNextPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_right</mat-icon></button>\r\n</mat-toolbar>\r\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<bizdoc-cube-tags [interactive]=false [cube]=\"cube\" [axes]=\"axes\"></bizdoc-cube-tags>\r\n<bizdoc-cube-explore #items [cube]=\"cube\" [index]=\"index\" [axes]=axes\r\n (explore)=\"item($event)\" (loadingChange)=\"loading = $event\"\r\n [scope]=\"scope\" [pageSize]=\"pageSize\"></bizdoc-cube-explore>\r\n", styles: [":host{min-width:360px}\n"], dependencies: [{ kind: "component", type: i7.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i8.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i9.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i11.FilterTagsComponent, selector: "bizdoc-cube-tags", inputs: ["axes", "cube", "interactive"], outputs: ["axesChange"] }, { kind: "component", type: i12.ExploreItemsComponent, selector: "bizdoc-cube-explore", inputs: ["pageSize", "cube", "index", "scope", "axes", "loading"], outputs: ["explore", "load", "loadingChange"] }, { kind: "directive", type: i13.MatIconAnimate, selector: "[matAnimate]" }, { kind: "directive", type: i14.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i15.TranslatePipe, name: "translate" }] }); }
68
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CubeExplorePaneComponent, deps: [{ token: i1.PaneRef }, { token: i2.PromptService }, { token: i3.SessionService }, { token: i4.CubeService }, { token: i5.TranslateService }, { token: i6.PanesRouter }], target: i0.ɵɵFactoryTarget.Component }); }
69
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: CubeExplorePaneComponent, selector: "ng-component", host: { listeners: { "window:resize": "resize()" }, classAttribute: "pane" }, ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button (click)=\"items.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"items.exportExcel()\" [bizdocTooltip]=\"'DownloadExcel' | translate\"><mat-icon>save_alt</mat-icon></button>\r\n <button mat-icon-button (click)=\"items.paginator.previousPage()\" [bizdocTooltip]=\"'PrevPage' | translate\" [attr.aria-label]=\"'PrevPage' | translate\" [disabled]=\"!items.paginator.hasPreviousPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\r\n <button mat-icon-button (click)=\"items.paginator.nextPage()\" [bizdocTooltip]=\"'NextPage' | translate\" [attr.aria-label]=\"'NextPage' | translate\" [disabled]=\"!items.paginator.hasNextPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_right</mat-icon></button>\r\n</mat-toolbar>\r\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<bizdoc-cube-tags [interactive]=false [cube]=\"cube\" [axes]=\"axes\"></bizdoc-cube-tags>\r\n<bizdoc-cube-explore #items [cube]=\"cube\" [index]=\"index\" [axes]=axes\r\n (explore)=\"item($event)\" (loadingChange)=\"loading = $event\"\r\n [scope]=\"scope\" [pageSize]=\"pageSize\"></bizdoc-cube-explore>\r\n", styles: [":host{min-width:360px}\n"], dependencies: [{ kind: "component", type: i7.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i8.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i9.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i11.FilterTagsComponent, selector: "bizdoc-cube-tags", inputs: ["axes", "cube", "interactive"], outputs: ["axesChange"] }, { kind: "component", type: i12.ExploreItemsComponent, selector: "bizdoc-cube-explore", inputs: ["pageSize", "cube", "index", "scope", "axes", "loading"], outputs: ["explore", "load", "loadingChange"] }, { kind: "directive", type: i13.MatIconAnimate, selector: "[matAnimate]" }, { kind: "directive", type: i14.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i15.TranslatePipe, name: "translate" }] }); }
70
70
  }
71
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: CubeExplorePaneComponent, decorators: [{
71
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CubeExplorePaneComponent, decorators: [{
72
72
  type: Component,
73
73
  args: [{ host: {
74
74
  class: 'pane'
@@ -1,4 +1,3 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
1
  import { Injectable } from '@angular/core';
3
2
  import * as i0 from "@angular/core";
4
3
  import * as i1 from "../cube.service";
@@ -9,10 +8,10 @@ export class CubeItemResolver {
9
8
  onResolve(params, queryParams) {
10
9
  return this._service.item(params['cube'], queryParams, params['key']);
11
10
  }
12
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: CubeItemResolver, deps: [{ token: i1.CubeService }], target: i0.ɵɵFactoryTarget.Injectable }); }
13
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: CubeItemResolver }); }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CubeItemResolver, deps: [{ token: i1.CubeService }], target: i0.ɵɵFactoryTarget.Injectable }); }
12
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CubeItemResolver }); }
14
13
  }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: CubeItemResolver, decorators: [{
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CubeItemResolver, decorators: [{
16
15
  type: Injectable
17
16
  }], ctorParameters: function () { return [{ type: i1.CubeService }]; } });
18
17
  export class CubeItemResolveService {
@@ -22,10 +21,10 @@ export class CubeItemResolveService {
22
21
  resolve(route) {
23
22
  return this._service.item(route.params['cube'], route.queryParams, route.params['key']);
24
23
  }
25
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: CubeItemResolveService, deps: [{ token: i1.CubeService }], target: i0.ɵɵFactoryTarget.Injectable }); }
26
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: CubeItemResolveService }); }
24
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CubeItemResolveService, deps: [{ token: i1.CubeService }], target: i0.ɵɵFactoryTarget.Injectable }); }
25
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CubeItemResolveService }); }
27
26
  }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: CubeItemResolveService, decorators: [{
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CubeItemResolveService, decorators: [{
29
28
  type: Injectable
30
29
  }], ctorParameters: function () { return [{ type: i1.CubeService }]; } });
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS1yZXNvbHZlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jdWJlL2V4cGxvcmUvaXRlbS1yZXNvbHZlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPM0MsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixZQUNVLFFBQXFCO1FBQXJCLGFBQVEsR0FBUixRQUFRLENBQWE7SUFDM0IsQ0FBQztJQUNMLFNBQVMsQ0FBQyxNQUFnQixFQUFFLFdBQXFCO1FBQy9DLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFdBQVcsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDOzhHQU5VLGdCQUFnQjtrSEFBaEIsZ0JBQWdCOzsyRkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVOztBQVdYLE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsWUFBb0IsUUFBcUI7UUFBckIsYUFBUSxHQUFSLFFBQVEsQ0FBYTtJQUV6QyxDQUFDO0lBQUMsT0FBTyxDQUFDLEtBQTZCO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUMxRixDQUFDOzhHQUxVLHNCQUFzQjtrSEFBdEIsc0JBQXNCOzsyRkFBdEIsc0JBQXNCO2tCQURsQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEN1YmVTZXJ2aWNlIH0gZnJvbSAnLi4vY3ViZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUGFuZVJlc29sdmUsIFBhcmFtTWFwIH0gZnJvbSAnLi4vLi4vY29yZS9jb25maWd1cmF0aW9uJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEN1YmVJdGVtUmVzb2x2ZXIgaW1wbGVtZW50cyBQYW5lUmVzb2x2ZTxhbnk+IHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3NlcnZpY2U6IEN1YmVTZXJ2aWNlXHJcbiAgKSB7IH1cclxuICBvblJlc29sdmUocGFyYW1zOiBQYXJhbU1hcCwgcXVlcnlQYXJhbXM6IFBhcmFtTWFwKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9zZXJ2aWNlLml0ZW0ocGFyYW1zWydjdWJlJ10sIHF1ZXJ5UGFyYW1zLCBwYXJhbXNbJ2tleSddKTtcclxuICB9XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEN1YmVJdGVtUmVzb2x2ZVNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3NlcnZpY2U6IEN1YmVTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgfSByZXNvbHZlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogT2JzZXJ2YWJsZTx2b2lkIHwgYW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2VydmljZS5pdGVtKHJvdXRlLnBhcmFtc1snY3ViZSddLCByb3V0ZS5xdWVyeVBhcmFtcywgcm91dGUucGFyYW1zWydrZXknXSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS1yZXNvbHZlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jdWJlL2V4cGxvcmUvaXRlbS1yZXNvbHZlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU8zQyxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLFlBQ1UsUUFBcUI7UUFBckIsYUFBUSxHQUFSLFFBQVEsQ0FBYTtJQUMzQixDQUFDO0lBQ0wsU0FBUyxDQUFDLE1BQWdCLEVBQUUsV0FBcUI7UUFDL0MsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7OEdBTlUsZ0JBQWdCO2tIQUFoQixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVU7O0FBV1gsTUFBTSxPQUFPLHNCQUFzQjtJQUNqQyxZQUFvQixRQUFxQjtRQUFyQixhQUFRLEdBQVIsUUFBUSxDQUFhO0lBRXpDLENBQUM7SUFBQyxPQUFPLENBQUMsS0FBNkI7UUFDckMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzFGLENBQUM7OEdBTFUsc0JBQXNCO2tIQUF0QixzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEN1YmVTZXJ2aWNlIH0gZnJvbSAnLi4vY3ViZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUGFuZVJlc29sdmUsIFBhcmFtTWFwIH0gZnJvbSAnLi4vLi4vY29yZS9jb25maWd1cmF0aW9uJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEN1YmVJdGVtUmVzb2x2ZXIgaW1wbGVtZW50cyBQYW5lUmVzb2x2ZTxhbnk+IHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3NlcnZpY2U6IEN1YmVTZXJ2aWNlXHJcbiAgKSB7IH1cclxuICBvblJlc29sdmUocGFyYW1zOiBQYXJhbU1hcCwgcXVlcnlQYXJhbXM6IFBhcmFtTWFwKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9zZXJ2aWNlLml0ZW0ocGFyYW1zWydjdWJlJ10sIHF1ZXJ5UGFyYW1zLCBwYXJhbXNbJ2tleSddKTtcclxuICB9XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEN1YmVJdGVtUmVzb2x2ZVNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3NlcnZpY2U6IEN1YmVTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgfSByZXNvbHZlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogT2JzZXJ2YWJsZTx2b2lkIHwgYW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2VydmljZS5pdGVtKHJvdXRlLnBhcmFtc1snY3ViZSddLCByb3V0ZS5xdWVyeVBhcmFtcywgcm91dGUucGFyYW1zWydrZXknXSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -11,10 +11,10 @@ export class ExploreItemPaneComponent {
11
11
  this._pane.dataChange().subscribe(d => this.model = d.item);
12
12
  this._pane.paramsChange().subscribe(p => this.template = p['template']);
13
13
  }
14
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ExploreItemPaneComponent, deps: [{ token: i1.PaneRef }], target: i0.ɵɵFactoryTarget.Component }); }
15
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", 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", dependencies: [{ kind: "component", type: i2.ExploreItemImplComponent, selector: "bizdoc-cube-item", inputs: ["template", "model"] }] }); }
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ExploreItemPaneComponent, deps: [{ token: i1.PaneRef }], target: i0.ɵɵFactoryTarget.Component }); }
15
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", 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", dependencies: [{ kind: "component", type: i2.ExploreItemImplComponent, selector: "bizdoc-cube-item", inputs: ["template", "model"] }] }); }
16
16
  }
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ExploreItemPaneComponent, decorators: [{
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ExploreItemPaneComponent, decorators: [{
18
18
  type: Component,
19
19
  args: [{ host: {
20
20
  class: 'pane'
@@ -58,10 +58,10 @@ export class FilterTagsComponent {
58
58
  delete this.axes[tag.axis];
59
59
  this.axesChange.emit(this.axes);
60
60
  }
61
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: FilterTagsComponent, deps: [{ token: i1.SessionService }, { token: i2.DatasourceService }], target: i0.ɵɵFactoryTarget.Component }); }
62
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: FilterTagsComponent, selector: "bizdoc-cube-tags", inputs: { axes: "axes", cube: "cube", interactive: "interactive" }, outputs: { axesChange: "axesChange" }, usesOnChanges: true, ngImport: i0, template: "<mat-chip-set [attr.aria-label]=\"'Filters'|l18n\">\r\n <mat-chip *ngFor=\"let t of tags\"\r\n [removable]=\"true\"\r\n (removed)=\"remove(t)\">\r\n {{t.value}}\r\n <mat-icon matChipRemove *ngIf=\"interactive\">cancel</mat-icon>\r\n </mat-chip>\r\n</mat-chip-set>\r\n", styles: [":host{padding:0 8px}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disabled", "disableRipple", "tabIndex", "role", "id", "aria-label", "aria-description", "value", "removable", "highlighted"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "directive", type: i4.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i4.MatChipSet, selector: "mat-chip-set", inputs: ["disabled", "role"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i6.L18nPipe, name: "l18n" }] }); }
61
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: FilterTagsComponent, deps: [{ token: i1.SessionService }, { token: i2.DatasourceService }], target: i0.ɵɵFactoryTarget.Component }); }
62
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: FilterTagsComponent, selector: "bizdoc-cube-tags", inputs: { axes: "axes", cube: "cube", interactive: "interactive" }, outputs: { axesChange: "axesChange" }, usesOnChanges: true, ngImport: i0, template: "<mat-chip-set [attr.aria-label]=\"'Filters'|l18n\">\r\n <mat-chip *ngFor=\"let t of tags\"\r\n [removable]=\"true\"\r\n (removed)=\"remove(t)\">\r\n {{t.value}}\r\n <mat-icon matChipRemove *ngIf=\"interactive\">cancel</mat-icon>\r\n </mat-chip>\r\n</mat-chip-set>\r\n", styles: [":host{padding:0 8px}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disabled", "disableRipple", "tabIndex", "role", "id", "aria-label", "aria-description", "value", "removable", "highlighted"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "directive", type: i4.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i4.MatChipSet, selector: "mat-chip-set", inputs: ["disabled", "role"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i6.L18nPipe, name: "l18n" }] }); }
63
63
  }
64
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: FilterTagsComponent, decorators: [{
64
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: FilterTagsComponent, decorators: [{
65
65
  type: Component,
66
66
  args: [{ selector: 'bizdoc-cube-tags', template: "<mat-chip-set [attr.aria-label]=\"'Filters'|l18n\">\r\n <mat-chip *ngFor=\"let t of tags\"\r\n [removable]=\"true\"\r\n (removed)=\"remove(t)\">\r\n {{t.value}}\r\n <mat-icon matChipRemove *ngIf=\"interactive\">cancel</mat-icon>\r\n </mat-chip>\r\n</mat-chip-set>\r\n", styles: [":host{padding:0 8px}\n"] }]
67
67
  }], ctorParameters: function () { return [{ type: i1.SessionService }, { type: i2.DatasourceService }]; }, propDecorators: { axes: [{
@@ -116,10 +116,10 @@ export class CubeFilterComponent {
116
116
  this._destroy.next();
117
117
  this._destroy.complete();
118
118
  }
119
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: CubeFilterComponent, deps: [{ token: i1.CubeService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i2.FormBuilder }, { token: i3.SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
120
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", 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\" class=\"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||a.name\" />\r\n <mat-error *ngIf=\"form.controls[a.name].invalid\">{{'AxisPatternErr' |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||a.name\" />\r\n <mat-autocomplete #segment [displayWith]=\"display\"\r\n (optionSelected)=\"change(a.name, $event)\">\r\n <mat-option *ngFor=\"let r of sources[a.name] | 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\">{{'AxisPatternErr' |translate}}</mat-error>\r\n </ng-container>\r\n <mat-select [formControlName]=\"a.name\" [placeholder]=\"a.title||a.name\" [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.name] | 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"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i4.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", 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]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple", "hideSingleSelectionIndicator"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i8.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i9.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i10.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i11.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.SlicePipe, name: "slice" }, { kind: "pipe", type: i12.TranslatePipe, name: "translate" }, { kind: "pipe", type: i13.FilterPipe, name: "filter" }] }); }
119
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CubeFilterComponent, deps: [{ token: i1.CubeService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i2.FormBuilder }, { token: i3.SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
120
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", 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\" class=\"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||a.name\" />\r\n <mat-error *ngIf=\"form.controls[a.name].invalid\">{{'AxisPatternErr' |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||a.name\" />\r\n <mat-autocomplete #segment [displayWith]=\"display\"\r\n (optionSelected)=\"change(a.name, $event)\">\r\n <mat-option *ngFor=\"let r of sources[a.name] | 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\">{{'AxisPatternErr' |translate}}</mat-error>\r\n </ng-container>\r\n <mat-select [formControlName]=\"a.name\" [placeholder]=\"a.title||a.name\" [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.name] | 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"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i4.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", 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]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple", "hideSingleSelectionIndicator"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i8.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i9.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i10.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i11.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.SlicePipe, name: "slice" }, { kind: "pipe", type: i12.TranslatePipe, name: "translate" }, { kind: "pipe", type: i13.FilterPipe, name: "filter" }] }); }
121
121
  }
122
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: CubeFilterComponent, decorators: [{
122
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CubeFilterComponent, decorators: [{
123
123
  type: Component,
124
124
  args: [{ selector: 'bizdoc-cube-filter', template: "<form [formGroup]=\"form\" class=\"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||a.name\" />\r\n <mat-error *ngIf=\"form.controls[a.name].invalid\">{{'AxisPatternErr' |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||a.name\" />\r\n <mat-autocomplete #segment [displayWith]=\"display\"\r\n (optionSelected)=\"change(a.name, $event)\">\r\n <mat-option *ngFor=\"let r of sources[a.name] | 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\">{{'AxisPatternErr' |translate}}</mat-error>\r\n </ng-container>\r\n <mat-select [formControlName]=\"a.name\" [placeholder]=\"a.title||a.name\" [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.name] | 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"] }]
125
125
  }], ctorParameters: function () { return [{ type: i1.CubeService }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i2.FormBuilder }, { type: i3.SessionService }]; }, propDecorators: { cube: [{
@@ -133,4 +133,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
133
133
  }], axesChange: [{
134
134
  type: Output
135
135
  }] } });
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY3ViZS9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY3ViZS9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBYSxZQUFZLEVBQTBFLE1BQU0sZUFBZSxDQUFDO0FBRWxLLE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFlLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQVNsRSxzQkFBc0I7QUFDdEIsTUFBTSxPQUFPLG1CQUFtQjtJQWM5QixRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUYsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMxQixJQUFJLENBQUMsQ0FBQyxhQUFhLEtBQUssTUFBTTtnQkFBRSxPQUFPO1lB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QkFBVyxHQUFlLEVBQUUsQ0FBQztRQUNwQixZQUFPLEdBQTJELEVBQUUsQ0FBQztRQUU3RCxnQkFBVyxHQUFHLEVBQWtDLENBQUM7UUFDakQsZUFBVSxHQUFHLEVBQWtDLENBQUM7UUFDaEQsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUF3RWhELENBQUM7SUFDRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUNELE9BQU8sQ0FBQyxRQUFRO1FBQ2QsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUMxQyxDQUFDO0lBQ0QsTUFBTSxDQUFDLElBQVksRUFBRSxHQUFpQztRQUNwRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs4R0FsR1UsbUJBQW1CO2tHQUFuQixtQkFBbUIsc01DaEJoQyx1dURBeUJBOzsyRkRUYSxtQkFBbUI7a0JBTi9CLFNBQVM7K0JBQ0Usb0JBQW9CO2tOQU9yQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ2EsVUFBVTtzQkFBNUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBPbkRlc3Ryb3ksIEV2ZW50RW1pdHRlciwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgRWxlbWVudFJlZiwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1CdWlsZGVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsLCBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgaXNBcnJheSwgbWFwVG9BcnJheSB9IGZyb20gJy4uLy4uL2NvcmUvZnVuY3Rpb25zJztcclxuaW1wb3J0IHsgQXhlc01hcCwgQ3ViZSwgQ3ViZUF4aXMgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IEFYSVNfVkFMVUVfUEFUVEVSTiwgQ3ViZVNlcnZpY2UgfSBmcm9tICcuLi9jdWJlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3Nlc3Npb24uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1jdWJlLWZpbHRlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbHRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZmlsdGVyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuLyoqIGZpbHRlciBjb21wb25lbnQqL1xyXG5leHBvcnQgY2xhc3MgQ3ViZUZpbHRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gIHJlYWRvbmx5IHBhdHRlcm4gPSBBWElTX1ZBTFVFX1BBVFRFUk47XHJcbiAgQElucHV0KCkgY3ViZT86IHN0cmluZztcclxuICBASW5wdXQoKSBleGNsdWRlPzogc3RyaW5nW107XHJcbiAgQElucHV0KCkgaW5jbHVkZT86IHN0cmluZ1tdO1xyXG4gIEBJbnB1dCgpIGF4ZXM6IEF4ZXNNYXAgPSB7fTtcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgYXhlc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8QXhlc01hcD4oKTtcclxuICBmb3JtOiBGb3JtR3JvdXA7XHJcbiAgdmlzaWJsZUF4ZXM6IEN1YmVBeGlzW10gPSBbXTtcclxuICByZWFkb25seSBzb3VyY2VzOiB7IFtheGlzOiBzdHJpbmddOiBPYnNlcnZhYmxlPHsgW2tleTogc3RyaW5nXTogYW55IH0+IH0gPSB7fTtcclxuICBwcml2YXRlIF9jdWJlOiBDdWJlO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2RlY2VuZGVudHMgPSB7fSBhcyB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmdbXSB9O1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2FuY2VzdG9ycyA9IHt9IGFzIHsgW25hbWU6IHN0cmluZ106IHN0cmluZ1tdIH07XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jdWJlID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzLmZpbmQoYyA9PiB0aGlzLmN1YmUgPT0gbnVsbCB8fCBjLm5hbWUgPT09IHRoaXMuY3ViZSk7XHJcbiAgICBjb25zdCBjb25maWcgPSB7fTtcclxuICAgIHRoaXMuX2N1YmUuYXhlcy5mb3JFYWNoKGEgPT4ge1xyXG4gICAgICBpZiAoYS5zZWxlY3Rpb25Nb2RlID09PSAnTm9uZScpIHJldHVybjtcclxuICAgICAgbGV0IHsgZGVzY2VuZGVudE9mIH0gPSBhO1xyXG4gICAgICBpZiAoZGVzY2VuZGVudE9mKSB7XHJcbiAgICAgICAgbGV0IGFuY2VzdG9ycyA9IHRoaXMuX2FuY2VzdG9yc1thLm5hbWVdID0gW107XHJcbiAgICAgICAgd2hpbGUgKGRlc2NlbmRlbnRPZikge1xyXG4gICAgICAgICAgbGV0IGF4aXMgPSB0aGlzLl9jdWJlLmF4ZXMuZmluZChhID0+IGEubmFtZSA9PT0gZGVzY2VuZGVudE9mKTtcclxuICAgICAgICAgIGFuY2VzdG9ycy5wdXNoKGF4aXMubmFtZSk7XHJcbiAgICAgICAgICBpZiAoYS5zZWxlY3Rpb25Nb2RlICE9PSAnUGF0dGVybicpIHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLl9kZWNlbmRlbnRzW2Rlc2NlbmRlbnRPZl0pIHRoaXMuX2RlY2VuZGVudHNbZGVzY2VuZGVudE9mXSA9IFthLm5hbWVdO1xyXG4gICAgICAgICAgICBlbHNlIHRoaXMuX2RlY2VuZGVudHNbZGVzY2VuZGVudE9mXS5wdXNoKGEubmFtZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkZXNjZW5kZW50T2YgPSBheGlzLmRlc2NlbmRlbnRPZjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgY3RybCA9IGNvbmZpZ1thLm5hbWVdID0gdGhpcy5fZmIuY29udHJvbCh0aGlzLmF4ZXNbYS5uYW1lXSk7XHJcbiAgICAgIGN0cmwudmFsdWVDaGFuZ2VzLnBpcGUoZmlsdGVyKCgpID0+IGN0cmwudmFsaWQpLCBkZWJvdW5jZVRpbWUoMjAwKSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSh2ID0+IHtcclxuICAgICAgICAgIGlmICh2ID09PSBudWxsIHx8IHYgPT09IHVuZGVmaW5lZCB8fCAoaXNBcnJheSh2KSAmJiAhdi5sZW5ndGgpKVxyXG4gICAgICAgICAgICBkZWxldGUgdGhpcy5heGVzW2EubmFtZV07XHJcbiAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHRoaXMuYXhlc1thLm5hbWVdID0gdjtcclxuICAgICAgICAgIGlmICh0aGlzLl9kZWNlbmRlbnRzW2EubmFtZV0pXHJcbiAgICAgICAgICAgIGZvciAobGV0IGF4aXMgb2YgdGhpcy5fZGVjZW5kZW50c1thLm5hbWVdKSB7XHJcbiAgICAgICAgICAgICAgbGV0IGRlcHMgPSB7fTtcclxuICAgICAgICAgICAgICBmb3IgKGxldCBuYW1lIG9mIHRoaXMuX2FuY2VzdG9yc1theGlzXSlcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmF4ZXNbbmFtZV0pIGRlcHNbbmFtZV0gPSB0aGlzLmF4ZXNbbmFtZV07XHJcbiAgICAgICAgICAgICAgdGhpcy5zb3VyY2VzW2F4aXNdID0gdGhpcy5fc2VydmljZS52YWx1ZXModGhpcy5fY3ViZS5uYW1lLCBheGlzLCBkZXBzKS5cclxuICAgICAgICAgICAgICAgIHBpcGUobWFwKG1hcFRvQXJyYXkpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5heGVzQ2hhbmdlLmVtaXQodGhpcy5heGVzKTtcclxuICAgICAgICB9KTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5mb3JtID0gdGhpcy5fZmIuZ3JvdXAoY29uZmlnKTtcclxuICAgIHRoaXMuZm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgIHRoaXMuX2luaXRpYWxpemUoKTtcclxuICB9XHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgY2hhbmdlc1snZXhjbHVkZSddICYmICFjaGFuZ2VzWydleGNsdWRlJ10uZmlyc3RDaGFuZ2UgJiYgdGhpcy5faW5pdGlhbGl6ZSgpO1xyXG4gIH1cclxuICBwcml2YXRlIF9pbml0aWFsaXplKCkge1xyXG4gICAgY29uc3QgdmlzaWJsZUF4ZXMgPSBbXSwgdmFsdWVzID0ge307XHJcbiAgICB0aGlzLl9jdWJlLmF4ZXMuZm9yRWFjaChhID0+IHtcclxuICAgICAgaWYgKGEuc2VsZWN0aW9uTW9kZSA9PT0gJ05vbmUnKSByZXR1cm47XHJcbiAgICAgIGlmICgodGhpcy5pbmNsdWRlICYmIHRoaXMuaW5jbHVkZS5pbmRleE9mKGEubmFtZSkgPiAtMSkgfHxcclxuICAgICAgICAodGhpcy5leGNsdWRlICYmIHRoaXMuZXhjbHVkZS5pbmRleE9mKGEubmFtZSkgPCAwKSB8fCAoIXRoaXMuaW5jbHVkZSAmJiAhdGhpcy5leGNsdWRlKSkge1xyXG4gICAgICAgIGlmICghdGhpcy5zb3VyY2VzW2EubmFtZV0gJiYgYS5zZWxlY3Rpb25Nb2RlICE9PSAnUGF0dGVybicpIHtcclxuICAgICAgICAgIHRoaXMuc291cmNlc1thLm5hbWVdID0gdGhpcy5fc2VydmljZS52YWx1ZXModGhpcy5fY3ViZS5uYW1lLCBhLm5hbWUpLnBpcGUobWFwKG1hcFRvQXJyYXkpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmlzaWJsZUF4ZXMucHVzaChhKTtcclxuICAgICAgfVxyXG4gICAgICB2YWx1ZXNbYS5uYW1lXSA9IHRoaXMuYXhlc1thLm5hbWVdIHx8IG51bGw7XHJcbiAgICB9KTtcclxuICAgIHRoaXMudmlzaWJsZUF4ZXMgPSB2aXNpYmxlQXhlcztcclxuICAgIHRoaXMuZm9ybSAmJiB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh2YWx1ZXMsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICB9XHJcblxyXG4gIGZvY3VzKCkge1xyXG4gICAgY29uc3QgaW5wID0gKHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkucXVlcnlTZWxlY3RvckFsbCgnLm1hdC1zZWxlY3QsIHRleHRhcmVhLCBpbnB1dCcpWzBdO1xyXG4gICAgaW5wICYmIChpbnAgYXMgSFRNTElucHV0RWxlbWVudCkuZm9jdXMoKTtcclxuICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcbiAgLyoqIGZpbHRlciBjdG9yICovXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBfc2VydmljZTogQ3ViZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PixcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2ZiOiBGb3JtQnVpbGRlcixcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlKSB7XHJcbiAgfVxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9jdXMoKTtcclxuICB9XHJcbiAgZGlzcGxheShrZXlWYWx1ZSkge1xyXG4gICAgcmV0dXJuIGtleVZhbHVlID8ga2V5VmFsdWUudmFsdWUgOiBudWxsO1xyXG4gIH1cclxuICBjaGFuZ2UoYXhpczogc3RyaW5nLCBldnQ6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpIHtcclxuICAgIHRoaXMuZm9ybS5jb250cm9sc1theGlzXS5zZXRWYWx1ZShldnQub3B0aW9uLnZhbHVlLmtleSk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveS5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNsYXNzPVwiY29sdW1uXCI+XHJcbiAgPG1hdC1mb3JtLWZpZWxkICpuZ0Zvcj1cImxldCBhIG9mIHZpc2libGVBeGVzXCIgW25nU3dpdGNoXT1cImEuc2VsZWN0aW9uTW9kZVwiIFthdHRyLmRhdGEtaGVscF09XCInYXhpcy0nK2EubmFtZVwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ1BhdHRlcm4nXCI+XHJcbiAgICAgIDxpbnB1dCBtYXRJbnB1dCBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgICAgICAgICAgW3BhdHRlcm5dPVwicGF0dGVyblwiIFthdXRvZm9jdXNdXHJcbiAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImEubmFtZVwiIFtwbGFjZWhvbGRlcl09XCJhLnRpdGxlfHxhLm5hbWVcIiAvPlxyXG4gICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybS5jb250cm9sc1thLm5hbWVdLmludmFsaWRcIj57eydBeGlzUGF0dGVybkVycicgfHRyYW5zbGF0ZX19PC9tYXQtZXJyb3I+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidTZWFyY2gnXCI+XHJcbiAgICAgIDxpbnB1dCBtYXRJbnB1dCBhdXRvY29tcGxldGU9XCJvZmZcIiB0eXBlPVwic2VhcmNoXCJcclxuICAgICAgICAgICAgIFttYXRBdXRvY29tcGxldGVdPVwic2VnbWVudFwiICNpbnBcclxuICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJhLnRpdGxlfHxhLm5hbWVcIiAvPlxyXG4gICAgICA8bWF0LWF1dG9jb21wbGV0ZSAjc2VnbWVudCBbZGlzcGxheVdpdGhdPVwiZGlzcGxheVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChvcHRpb25TZWxlY3RlZCk9XCJjaGFuZ2UoYS5uYW1lLCAkZXZlbnQpXCI+XHJcbiAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHIgb2Ygc291cmNlc1thLm5hbWVdIHwgYXN5bmMgfCBmaWx0ZXIgOiAndmFsdWUnIDogaW5wLnZhbHVlIHwgc2xpY2U6MDo1MFwiIFt2YWx1ZV09XCJyXCI+e3tyLnZhbHVlfX08L21hdC1vcHRpb24+XHJcbiAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cclxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKm5nSWY9XCJpbnAudmFsdWVcIiBtYXRTdWZmaXggYXJpYS1sYWJlbD1cIlwiIChjbGljayk9XCJpbnAudmFsdWUgPSAnJzsgZm9ybS5jb250cm9sc1thLm5hbWVdLnNldFZhbHVlKG51bGwpXCI+PG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm0uY29udHJvbHNbYS5uYW1lXS5pbnZhbGlkXCI+e3snQXhpc1BhdHRlcm5FcnInIHx0cmFuc2xhdGV9fTwvbWF0LWVycm9yPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bWF0LXNlbGVjdCBbZm9ybUNvbnRyb2xOYW1lXT1cImEubmFtZVwiIFtwbGFjZWhvbGRlcl09XCJhLnRpdGxlfHxhLm5hbWVcIiBbbXVsdGlwbGVdPVwiYS5zZWxlY3Rpb25Nb2RlID09PSAnTXVsdGlwbGUnXCIgKm5nU3dpdGNoRGVmYXVsdD5cclxuICAgICAgPG1hdC1vcHRpb24gKm5nSWY9XCJhLnNlbGVjdGlvbk1vZGUgIT09ICdNdWx0aXBsZSdcIj57eydBbGwnIHwgdHJhbnNsYXRlfX08L21hdC1vcHRpb24+XHJcbiAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCByIG9mIHNvdXJjZXNbYS5uYW1lXSB8IGFzeW5jXCIgW3ZhbHVlXT1cInIua2V5XCI+e3tyLnZhbHVlfX08L21hdC1vcHRpb24+XHJcbiAgICA8L21hdC1zZWxlY3Q+XHJcbiAgPC9tYXQtZm9ybS1maWVsZD5cclxuPC9mb3JtPlxyXG4iXX0=
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY3ViZS9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY3ViZS9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBYSxZQUFZLEVBQTBFLE1BQU0sZUFBZSxDQUFDO0FBR2xLLE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFlLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQVFsRSxzQkFBc0I7QUFDdEIsTUFBTSxPQUFPLG1CQUFtQjtJQWM5QixRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUYsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMxQixJQUFJLENBQUMsQ0FBQyxhQUFhLEtBQUssTUFBTTtnQkFBRSxPQUFPO1lBQ3ZDLElBQUksRUFBRSxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDekIsSUFBSSxZQUFZLEVBQUU7Z0JBQ2hCLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDN0MsT0FBTyxZQUFZLEVBQUU7b0JBQ25CLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLENBQUM7b0JBQzlELFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUMxQixJQUFJLENBQUMsQ0FBQyxhQUFhLEtBQUssU0FBUyxFQUFFO3dCQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUM7NEJBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQzs7NEJBQzFFLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDbEQ7b0JBQ0QsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7aUJBQ2xDO2FBQ0Y7WUFDRCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDbEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQ2hFLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3RDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssU0FBUyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztvQkFDNUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQzs7b0JBRXpCLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDeEIsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7b0JBQzFCLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUU7d0JBQ3pDLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQzt3QkFDZCxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDOzRCQUNwQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2dDQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUNwRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7NEJBQ3BFLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztxQkFDekI7Z0JBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2xDLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUNELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM5RSxDQUFDO0lBQ08sV0FBVztRQUNqQixNQUFNLFdBQVcsR0FBRyxFQUFFLEVBQUUsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDMUIsSUFBSSxDQUFDLENBQUMsYUFBYSxLQUFLLE1BQU07Z0JBQUUsT0FBTztZQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JELENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ3hGLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsYUFBYSxLQUFLLFNBQVMsRUFBRTtvQkFDMUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztpQkFDNUY7Z0JBQ0QsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNyQjtZQUNELE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDO1FBQzdDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsS0FBSztRQUNILE1BQU0sR0FBRyxHQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBNkIsQ0FBQyxnQkFBZ0IsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdHLEdBQUcsSUFBSyxHQUF3QixDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUNELGtCQUFrQjtJQUNsQixZQUE2QixRQUFxQixFQUMvQixRQUFvQyxFQUNwQyxHQUFzQixFQUN0QixHQUFnQixFQUNoQixRQUF3QjtRQUpkLGFBQVEsR0FBUixRQUFRLENBQWE7UUFDL0IsYUFBUSxHQUFSLFFBQVEsQ0FBNEI7UUFDcEMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsUUFBRyxHQUFILEdBQUcsQ0FBYTtRQUNoQixhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQW5GbEMsWUFBTyxHQUFHLGtCQUFrQixDQUFDO1FBSTdCLFNBQUksR0FBWSxFQUFFLENBQUM7UUFDVCxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUU1RCxnQkFBVyxHQUFlLEVBQUUsQ0FBQztRQUNwQixZQUFPLEdBQTJELEVBQUUsQ0FBQztRQUU3RCxnQkFBVyxHQUFHLEVBQWtDLENBQUM7UUFDakQsZUFBVSxHQUFHLEVBQWtDLENBQUM7UUFDaEQsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUF3RWhELENBQUM7SUFDRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUNELE9BQU8sQ0FBQyxRQUFRO1FBQ2QsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUMxQyxDQUFDO0lBQ0QsTUFBTSxDQUFDLElBQVksRUFBRSxHQUFpQztRQUNwRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs4R0FsR1UsbUJBQW1CO2tHQUFuQixtQkFBbUIsc01DaEJoQyx1dURBeUJBOzsyRkRUYSxtQkFBbUI7a0JBTi9CLFNBQVM7K0JBQ0Usb0JBQW9CO2tOQU9yQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ2EsVUFBVTtzQkFBNUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBPbkRlc3Ryb3ksIEV2ZW50RW1pdHRlciwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgRWxlbWVudFJlZiwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1CdWlsZGVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHRha2VVbnRpbCwgZmlsdGVyLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IGlzQXJyYXksIG1hcFRvQXJyYXkgfSBmcm9tICcuLi8uLi9jb3JlL2Z1bmN0aW9ucyc7XHJcbmltcG9ydCB7IEF4ZXNNYXAsIEN1YmUsIEN1YmVBeGlzIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBBWElTX1ZBTFVFX1BBVFRFUk4sIEN1YmVTZXJ2aWNlIH0gZnJvbSAnLi4vY3ViZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3Nlc3Npb24uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1jdWJlLWZpbHRlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbHRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZmlsdGVyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuLyoqIGZpbHRlciBjb21wb25lbnQqL1xyXG5leHBvcnQgY2xhc3MgQ3ViZUZpbHRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gIHJlYWRvbmx5IHBhdHRlcm4gPSBBWElTX1ZBTFVFX1BBVFRFUk47XHJcbiAgQElucHV0KCkgY3ViZT86IHN0cmluZztcclxuICBASW5wdXQoKSBleGNsdWRlPzogc3RyaW5nW107XHJcbiAgQElucHV0KCkgaW5jbHVkZT86IHN0cmluZ1tdO1xyXG4gIEBJbnB1dCgpIGF4ZXM6IEF4ZXNNYXAgPSB7fTtcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgYXhlc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8QXhlc01hcD4oKTtcclxuICBmb3JtOiBGb3JtR3JvdXA7XHJcbiAgdmlzaWJsZUF4ZXM6IEN1YmVBeGlzW10gPSBbXTtcclxuICByZWFkb25seSBzb3VyY2VzOiB7IFtheGlzOiBzdHJpbmddOiBPYnNlcnZhYmxlPHsgW2tleTogc3RyaW5nXTogYW55IH0+IH0gPSB7fTtcclxuICBwcml2YXRlIF9jdWJlOiBDdWJlO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2RlY2VuZGVudHMgPSB7fSBhcyB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmdbXSB9O1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2FuY2VzdG9ycyA9IHt9IGFzIHsgW25hbWU6IHN0cmluZ106IHN0cmluZ1tdIH07XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jdWJlID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzLmZpbmQoYyA9PiB0aGlzLmN1YmUgPT0gbnVsbCB8fCBjLm5hbWUgPT09IHRoaXMuY3ViZSk7XHJcbiAgICBjb25zdCBjb25maWcgPSB7fTtcclxuICAgIHRoaXMuX2N1YmUuYXhlcy5mb3JFYWNoKGEgPT4ge1xyXG4gICAgICBpZiAoYS5zZWxlY3Rpb25Nb2RlID09PSAnTm9uZScpIHJldHVybjtcclxuICAgICAgbGV0IHsgZGVzY2VuZGVudE9mIH0gPSBhO1xyXG4gICAgICBpZiAoZGVzY2VuZGVudE9mKSB7XHJcbiAgICAgICAgbGV0IGFuY2VzdG9ycyA9IHRoaXMuX2FuY2VzdG9yc1thLm5hbWVdID0gW107XHJcbiAgICAgICAgd2hpbGUgKGRlc2NlbmRlbnRPZikge1xyXG4gICAgICAgICAgbGV0IGF4aXMgPSB0aGlzLl9jdWJlLmF4ZXMuZmluZChhID0+IGEubmFtZSA9PT0gZGVzY2VuZGVudE9mKTtcclxuICAgICAgICAgIGFuY2VzdG9ycy5wdXNoKGF4aXMubmFtZSk7XHJcbiAgICAgICAgICBpZiAoYS5zZWxlY3Rpb25Nb2RlICE9PSAnUGF0dGVybicpIHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLl9kZWNlbmRlbnRzW2Rlc2NlbmRlbnRPZl0pIHRoaXMuX2RlY2VuZGVudHNbZGVzY2VuZGVudE9mXSA9IFthLm5hbWVdO1xyXG4gICAgICAgICAgICBlbHNlIHRoaXMuX2RlY2VuZGVudHNbZGVzY2VuZGVudE9mXS5wdXNoKGEubmFtZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkZXNjZW5kZW50T2YgPSBheGlzLmRlc2NlbmRlbnRPZjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgY3RybCA9IGNvbmZpZ1thLm5hbWVdID0gdGhpcy5fZmIuY29udHJvbCh0aGlzLmF4ZXNbYS5uYW1lXSk7XHJcbiAgICAgIGN0cmwudmFsdWVDaGFuZ2VzLnBpcGUoZmlsdGVyKCgpID0+IGN0cmwudmFsaWQpLCBkZWJvdW5jZVRpbWUoMjAwKSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSh2ID0+IHtcclxuICAgICAgICAgIGlmICh2ID09PSBudWxsIHx8IHYgPT09IHVuZGVmaW5lZCB8fCAoaXNBcnJheSh2KSAmJiAhdi5sZW5ndGgpKVxyXG4gICAgICAgICAgICBkZWxldGUgdGhpcy5heGVzW2EubmFtZV07XHJcbiAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHRoaXMuYXhlc1thLm5hbWVdID0gdjtcclxuICAgICAgICAgIGlmICh0aGlzLl9kZWNlbmRlbnRzW2EubmFtZV0pXHJcbiAgICAgICAgICAgIGZvciAobGV0IGF4aXMgb2YgdGhpcy5fZGVjZW5kZW50c1thLm5hbWVdKSB7XHJcbiAgICAgICAgICAgICAgbGV0IGRlcHMgPSB7fTtcclxuICAgICAgICAgICAgICBmb3IgKGxldCBuYW1lIG9mIHRoaXMuX2FuY2VzdG9yc1theGlzXSlcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmF4ZXNbbmFtZV0pIGRlcHNbbmFtZV0gPSB0aGlzLmF4ZXNbbmFtZV07XHJcbiAgICAgICAgICAgICAgdGhpcy5zb3VyY2VzW2F4aXNdID0gdGhpcy5fc2VydmljZS52YWx1ZXModGhpcy5fY3ViZS5uYW1lLCBheGlzLCBkZXBzKS5cclxuICAgICAgICAgICAgICAgIHBpcGUobWFwKG1hcFRvQXJyYXkpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5heGVzQ2hhbmdlLmVtaXQodGhpcy5heGVzKTtcclxuICAgICAgICB9KTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5mb3JtID0gdGhpcy5fZmIuZ3JvdXAoY29uZmlnKTtcclxuICAgIHRoaXMuZm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgIHRoaXMuX2luaXRpYWxpemUoKTtcclxuICB9XHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgY2hhbmdlc1snZXhjbHVkZSddICYmICFjaGFuZ2VzWydleGNsdWRlJ10uZmlyc3RDaGFuZ2UgJiYgdGhpcy5faW5pdGlhbGl6ZSgpO1xyXG4gIH1cclxuICBwcml2YXRlIF9pbml0aWFsaXplKCkge1xyXG4gICAgY29uc3QgdmlzaWJsZUF4ZXMgPSBbXSwgdmFsdWVzID0ge307XHJcbiAgICB0aGlzLl9jdWJlLmF4ZXMuZm9yRWFjaChhID0+IHtcclxuICAgICAgaWYgKGEuc2VsZWN0aW9uTW9kZSA9PT0gJ05vbmUnKSByZXR1cm47XHJcbiAgICAgIGlmICgodGhpcy5pbmNsdWRlICYmIHRoaXMuaW5jbHVkZS5pbmRleE9mKGEubmFtZSkgPiAtMSkgfHxcclxuICAgICAgICAodGhpcy5leGNsdWRlICYmIHRoaXMuZXhjbHVkZS5pbmRleE9mKGEubmFtZSkgPCAwKSB8fCAoIXRoaXMuaW5jbHVkZSAmJiAhdGhpcy5leGNsdWRlKSkge1xyXG4gICAgICAgIGlmICghdGhpcy5zb3VyY2VzW2EubmFtZV0gJiYgYS5zZWxlY3Rpb25Nb2RlICE9PSAnUGF0dGVybicpIHtcclxuICAgICAgICAgIHRoaXMuc291cmNlc1thLm5hbWVdID0gdGhpcy5fc2VydmljZS52YWx1ZXModGhpcy5fY3ViZS5uYW1lLCBhLm5hbWUpLnBpcGUobWFwKG1hcFRvQXJyYXkpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmlzaWJsZUF4ZXMucHVzaChhKTtcclxuICAgICAgfVxyXG4gICAgICB2YWx1ZXNbYS5uYW1lXSA9IHRoaXMuYXhlc1thLm5hbWVdIHx8IG51bGw7XHJcbiAgICB9KTtcclxuICAgIHRoaXMudmlzaWJsZUF4ZXMgPSB2aXNpYmxlQXhlcztcclxuICAgIHRoaXMuZm9ybSAmJiB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh2YWx1ZXMsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICB9XHJcblxyXG4gIGZvY3VzKCkge1xyXG4gICAgY29uc3QgaW5wID0gKHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkucXVlcnlTZWxlY3RvckFsbCgnLm1hdC1zZWxlY3QsIHRleHRhcmVhLCBpbnB1dCcpWzBdO1xyXG4gICAgaW5wICYmIChpbnAgYXMgSFRNTElucHV0RWxlbWVudCkuZm9jdXMoKTtcclxuICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcbiAgLyoqIGZpbHRlciBjdG9yICovXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBfc2VydmljZTogQ3ViZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PixcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2ZiOiBGb3JtQnVpbGRlcixcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlKSB7XHJcbiAgfVxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9jdXMoKTtcclxuICB9XHJcbiAgZGlzcGxheShrZXlWYWx1ZSkge1xyXG4gICAgcmV0dXJuIGtleVZhbHVlID8ga2V5VmFsdWUudmFsdWUgOiBudWxsO1xyXG4gIH1cclxuICBjaGFuZ2UoYXhpczogc3RyaW5nLCBldnQ6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpIHtcclxuICAgIHRoaXMuZm9ybS5jb250cm9sc1theGlzXS5zZXRWYWx1ZShldnQub3B0aW9uLnZhbHVlLmtleSk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveS5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNsYXNzPVwiY29sdW1uXCI+XHJcbiAgPG1hdC1mb3JtLWZpZWxkICpuZ0Zvcj1cImxldCBhIG9mIHZpc2libGVBeGVzXCIgW25nU3dpdGNoXT1cImEuc2VsZWN0aW9uTW9kZVwiIFthdHRyLmRhdGEtaGVscF09XCInYXhpcy0nK2EubmFtZVwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ1BhdHRlcm4nXCI+XHJcbiAgICAgIDxpbnB1dCBtYXRJbnB1dCBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgICAgICAgICAgW3BhdHRlcm5dPVwicGF0dGVyblwiIFthdXRvZm9jdXNdXHJcbiAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImEubmFtZVwiIFtwbGFjZWhvbGRlcl09XCJhLnRpdGxlfHxhLm5hbWVcIiAvPlxyXG4gICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybS5jb250cm9sc1thLm5hbWVdLmludmFsaWRcIj57eydBeGlzUGF0dGVybkVycicgfHRyYW5zbGF0ZX19PC9tYXQtZXJyb3I+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidTZWFyY2gnXCI+XHJcbiAgICAgIDxpbnB1dCBtYXRJbnB1dCBhdXRvY29tcGxldGU9XCJvZmZcIiB0eXBlPVwic2VhcmNoXCJcclxuICAgICAgICAgICAgIFttYXRBdXRvY29tcGxldGVdPVwic2VnbWVudFwiICNpbnBcclxuICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJhLnRpdGxlfHxhLm5hbWVcIiAvPlxyXG4gICAgICA8bWF0LWF1dG9jb21wbGV0ZSAjc2VnbWVudCBbZGlzcGxheVdpdGhdPVwiZGlzcGxheVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChvcHRpb25TZWxlY3RlZCk9XCJjaGFuZ2UoYS5uYW1lLCAkZXZlbnQpXCI+XHJcbiAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHIgb2Ygc291cmNlc1thLm5hbWVdIHwgYXN5bmMgfCBmaWx0ZXIgOiAndmFsdWUnIDogaW5wLnZhbHVlIHwgc2xpY2U6MDo1MFwiIFt2YWx1ZV09XCJyXCI+e3tyLnZhbHVlfX08L21hdC1vcHRpb24+XHJcbiAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cclxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKm5nSWY9XCJpbnAudmFsdWVcIiBtYXRTdWZmaXggYXJpYS1sYWJlbD1cIlwiIChjbGljayk9XCJpbnAudmFsdWUgPSAnJzsgZm9ybS5jb250cm9sc1thLm5hbWVdLnNldFZhbHVlKG51bGwpXCI+PG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm0uY29udHJvbHNbYS5uYW1lXS5pbnZhbGlkXCI+e3snQXhpc1BhdHRlcm5FcnInIHx0cmFuc2xhdGV9fTwvbWF0LWVycm9yPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bWF0LXNlbGVjdCBbZm9ybUNvbnRyb2xOYW1lXT1cImEubmFtZVwiIFtwbGFjZWhvbGRlcl09XCJhLnRpdGxlfHxhLm5hbWVcIiBbbXVsdGlwbGVdPVwiYS5zZWxlY3Rpb25Nb2RlID09PSAnTXVsdGlwbGUnXCIgKm5nU3dpdGNoRGVmYXVsdD5cclxuICAgICAgPG1hdC1vcHRpb24gKm5nSWY9XCJhLnNlbGVjdGlvbk1vZGUgIT09ICdNdWx0aXBsZSdcIj57eydBbGwnIHwgdHJhbnNsYXRlfX08L21hdC1vcHRpb24+XHJcbiAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCByIG9mIHNvdXJjZXNbYS5uYW1lXSB8IGFzeW5jXCIgW3ZhbHVlXT1cInIua2V5XCI+e3tyLnZhbHVlfX08L21hdC1vcHRpb24+XHJcbiAgICA8L21hdC1zZWxlY3Q+XHJcbiAgPC9tYXQtZm9ybS1maWVsZD5cclxuPC9mb3JtPlxyXG4iXX0=
@@ -1,4 +1,3 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
1
  import { EventEmitter, Component, Output, HostBinding, Input } from "@angular/core";
3
2
  import { firstValueFrom, forkJoin } from "rxjs";
4
3
  import { tap } from "rxjs/operators";
@@ -184,10 +183,10 @@ export class CubeGridComponent {
184
183
  ngOnDestroy() {
185
184
  this.grid && this.grid.destroy();
186
185
  }
187
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", 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
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", 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"] }); }
186
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CubeGridComponent, deps: [{ token: i1.SessionService }, { token: i2.PromptService }, { token: i3.DatasourceService }, { token: i4.CubeService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
187
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", 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
188
  }
190
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: CubeGridComponent, decorators: [{
189
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CubeGridComponent, decorators: [{
191
190
  type: Component,
192
191
  args: [{ selector: 'bizdoc-cube-grid', template: '', host: {
193
192
  class: 'cube-view'
@@ -215,4 +214,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
215
214
  }], id: [{
216
215
  type: HostBinding
217
216
  }] } });
218
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2N1YmUvZ3JpZC9ncmlkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLFdBQVcsRUFBeUIsS0FBSyxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUU3SSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUM1RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFzQixJQUFJLEVBQTZHLE1BQU0sK0JBQStCLENBQUM7QUFHcEwsT0FBTyxFQUFlLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBSTNELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7O0FBVy9DLE1BQU0sT0FBTyxpQkFBaUI7SUFPNUIsSUFDSSxLQUFLLENBQUMsR0FBc0I7UUFDOUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBQ0QsSUFDSSxNQUFNLENBQUMsR0FBc0I7UUFDL0IsSUFBSSxHQUFHO1lBQUUsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBQ0QsSUFDSSxPQUFPLENBQUMsR0FBc0I7UUFDaEMsSUFBSSxHQUFHO1lBQUUsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxD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c0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xyXG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIsIENvbXBvbmVudCwgT3V0cHV0LCBPbkluaXQsIEhvc3RCaW5kaW5nLCBFbGVtZW50UmVmLCBPbkRlc3Ryb3ksIElucHV0LCBTaW1wbGVDaGFuZ2VzLCBPbkNoYW5nZXMgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSwgZm9ya0pvaW4sIE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyB0YXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgR3JvdXBTZXR0aW5nc01vZGVsLCBHcmlkLCBBZ2dyZWdhdGVDb2x1bW5Nb2RlbCwgU2VsZWN0aW9uU2V0dGluZ3NNb2RlbCwgQ2VsbFNlbGVjdGluZ0V2ZW50QXJncywgUXVlcnlDZWxsSW5mb0V2ZW50QXJncywgQ29sdW1uTW9kZWwgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItYW5ndWxhci1ncmlkcyc7XHJcbmltcG9ydCB7IEF4aXNDbGlja0V2ZW50LCBDdWJlVmlld2VyQ29tcG9uZW50IH0gZnJvbSBcIi4uL2RlY2xhcmF0aW9uc1wiO1xyXG5pbXBvcnQgeyBBeGVzTWFwLCBDdWJlIH0gZnJvbSBcIi4uLy4uL2NvcmUvbW9kZWxzXCI7XHJcbmltcG9ydCB7IEN1YmVTZXJ2aWNlLCBlcnJSZXNvdXJjZSB9IGZyb20gXCIuLi9jdWJlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL3Byb21wdC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERhdGFzb3VyY2VTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvZGF0YXNvdXJjZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IGlzQXJyYXkgfSBmcm9tIFwiLi4vLi4vY29yZS9mdW5jdGlvbnNcIjtcclxuaW1wb3J0IHsgUGFyYW1zIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtY3ViZS1ncmlkJyxcclxuICB0ZW1wbGF0ZTogJycsXHJcbiAgc3R5bGVVcmxzOiBbJ2dyaWQuY29tcG9uZW50LnNjc3MnXSxcclxuICBob3N0OiB7XHJcbiAgICBjbGFzczogJ2N1YmUtdmlldydcclxuICB9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdWJlR3JpZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBDdWJlVmlld2VyQ29tcG9uZW50LCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpXHJcbiAgd2lkdGg6IHN0cmluZztcclxuICBASW5wdXQoKVxyXG4gIGhlaWdodDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpXHJcbiAgY3ViZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHhBeGlzKHZhbDogc3RyaW5nW10gfCBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3hBeGlzID0gaXNBcnJheSh2YWwpID8gdmFsIDogW3ZhbF07XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHNlcmllcyh2YWw6IHN0cmluZ1tdIHwgc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsKSB0aGlzLl9zZXJpZXMgPSBpc0FycmF5KHZhbCkgPyB2YWwgOiBbdmFsXTtcclxuICB9XHJcbiAgQElucHV0KClcclxuICBzZXQgaW5kaWNlcyh2YWw6IHN0cmluZ1tdIHwgc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsKSB0aGlzLl9pbmRpY2VzID0gaXNBcnJheSh2YWwpID8gdmFsIDogW3ZhbF07XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgZmlsdGVycz86IEF4ZXNNYXA7XHJcbiAgY3VycmVuY3lDb2RlOiBzdHJpbmc7XHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGV4cGxvcmUgPSBuZXcgRXZlbnRFbWl0dGVyPEF4aXNDbGlja0V2ZW50PigpO1xyXG4gIEBJbnB1dCgpIGxvYWRpbmc6IGJvb2xlYW47XHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGxvYWRpbmdDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgbmV4dElkID0gMDtcclxuICBASG9zdEJpbmRpbmcoKSBpZCA9IGBjdWJlLWdyaWQtJHtDdWJlR3JpZENvbXBvbmVudC5uZXh0SWQrK31gO1xyXG4gIGdyaWQ6IEdyaWQ7XHJcbiAgZGF0YVNvdXJjZTogYW55W10gPSBbXTtcclxuICByZWFkb25seSBncm91cFNldHRpbmdzOiBHcm91cFNldHRpbmdzTW9kZWwgPSB7XHJcbiAgfTtcclxuICByZWFkb25seSBzZWxlY3Rpb25TZXR0aW5nczogU2VsZWN0aW9uU2V0dGluZ3NNb2RlbCA9IHsgY2VsbFNlbGVjdGlvbk1vZGU6ICdCb3gnLCB0eXBlOiAnU2luZ2xlJywgbW9kZTogJ0NlbGwnIH07XHJcbiAgYWdncmVnYXRlczogeyBjb2x1bW5zOiBBZ2dyZWdhdGVDb2x1bW5Nb2RlbFtdIH1bXTtcclxuICBjb2x1bW5zOiBDb2x1bW5Nb2RlbFtdO1xyXG4gIHByaXZhdGUgX3hBeGlzOiBzdHJpbmdbXTtcclxuICBwcml2YXRlIF9zZXJpZXM/OiBzdHJpbmdbXTtcclxuICBwcml2YXRlIF9pbmRpY2VzPzogc3RyaW5nW107XHJcbiAgcHJpdmF0ZSBfcm93czogeyBrZXk6IGFueTsgdmFsdWU6IGFueSB9W10gPSBbXTtcclxuICBwcml2YXRlIF9jb2x1bW5zOiB7IGtleTogYW55OyB2YWx1ZTogYW55IH1bXSA9IFtdO1xyXG4gIHByaXZhdGUgX2N1YmU6IEN1YmU7XHJcbiAgcHJpdmF0ZSBfcHJlcGFyZTogUHJvbWlzZTxhbnk+O1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zYjogUHJvbXB0U2VydmljZSxcclxuICAgIHByaXZhdGUgX2RzOiBEYXRhc291cmNlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3NlcnZpY2U6IEN1YmVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZikgeyB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jdWJlID0gdGhpcy5jdWJlID8gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzLmZpbmQoYyA9PiBjLm5hbWUgPT09IHRoaXMuY3ViZSkgOiB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuY3ViZXNbMF07XHJcbiAgICB0aGlzLmN1cnJlbmN5Q29kZSA9IHRoaXMuX2N1YmUuY3VycmVuY3lDb2RlO1xyXG4gICAgY29uc3QgeCA9IHRoaXMuX2N1YmUuYXhlcy5maW5kKGEgPT4gYS5uYW1lID09PSB0aGlzLl94QXhpc1swXSksXHJcbiAgICAgIHkgPSB0aGlzLl9jdWJlLmF4ZXMuZmluZChhID0+IGEubmFtZSA9PT0gdGhpcy5fc2VyaWVzWzBdKTtcclxuICAgIGNvbnN0IHByb21pc2VzOiBPYnNlcnZhYmxlPGFueT5bXSA9IFtdO1xyXG4gICAgLy8gYXF1aXJlIGNvbHVtbnMgc291cmNlXHJcbiAgICBsZXQgb2JzZXJ2ZSA9IHRoaXMuX2RzLmFsbCh4LmRhdGFUeXBlKS5cclxuICAgICAgcGlwZSh0YXAoYyA9PiB7XHJcbiAgICAgICAgdGhpcy5fY29sdW1ucyA9IGM7XHJcbiAgICAgICAgY29uc3QgZm9ybWF0ID0gYCR7dGhpcy5jdXJyZW5jeUNvZGUgPyAnYycgOiAnbid9JHt0aGlzLl9zZXJ2aWNlLmZyYWN0aW9uRGlnaXRzfWA7XHJcbiAgICAgICAgdGhpcy5jb2x1bW5zID0gW3tcclxuICAgICAgICAgIGhlYWRlclRleHQ6ICcnLCBmaWVsZDogJ3RpdGxlJyxcclxuICAgICAgICB9IGFzIENvbHVtbk1vZGVsXTtcclxuICAgICAgICB0aGlzLl9jb2x1bW5zLmZvckVhY2goYyA9PiB0aGlzLmNvbHVtbnMucHVzaCh7XHJcbiAgICAgICAgICBmaWVsZDogYF8ke2Mua2V5fWAsXHJcbiAgICAgICAgICBoZWFkZXJUZXh0OiBjLnZhbHVlLFxyXG4gICAgICAgICAgd2lkdGg6IDEyMCxcclxuICAgICAgICAgIGZvcm1hdCxcclxuICAgICAgICAgIHRleHRBbGlnbjogJ1JpZ2h0J1xyXG4gICAgICAgIH0gYXMgQ29sdW1uTW9kZWxcclxuICAgICAgICApKTtcclxuICAgICAgICB0aGlzLmFnZ3JlZ2F0ZXMgPSBbe1xyXG4gICAgICAgICAgY29sdW1uczogdGhpcy5fY29sdW1ucy5tYXAoYyA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgY29sdW1uTmFtZTogYF8ke2Mua2V5fWAsXHJcbiAgICAgICAgICAgICAgZmllbGQ6IGBfJHtjLmtleX1gLFxyXG4gICAgICAgICAgICAgIHR5cGU6ICdDdXN0b20nLFxyXG4gICAgICAgICAgICAgIC8vICBmb290ZXJUZW1wbGF0ZTogYFxcJHtpZihDdXN0b20uaW5kZXhPZignLScpPi0xKX1cclxuICAgICAgICAgICAgICAvLzxzcGFuIGNsYXNzPVwibWF0LXdhcm5cIj5cXCR7Q3VzdG9tfTwvc3Bhbj4gXFwke2Vsc2V9XHJcbiAgICAgICAgICAgICAgLy9cXCR7Q3VzdG9tfSBcXCR7L2lmfWAsXHJcbiAgICAgICAgICAgICAgZm9ybWF0LFxyXG4gICAgICAgICAgICAgIGN1c3RvbUFnZ3JlZ2F0ZTogdGhpcy5jdXN0b21BZ2dyZWdhdGUuYmluZCh0aGlzKVxyXG4gICAgICAgICAgICB9IGFzIEFnZ3JlZ2F0ZUNvbHVtbk1vZGVsO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9XTtcclxuICAgICAgfSkpO1xyXG4gICAgcHJvbWlzZXMucHVzaChvYnNlcnZlKTtcclxuICAgIC8vIGFxdWlyZSByb3dzIHNvdXJjZVxyXG4gICAgb2JzZXJ2ZSA9IHRoaXMuX2RzLmFsbCh5LmRhdGFUeXBlKS5cclxuICAgICAgcGlwZSh0YXAociA9PiB0aGlzLl9yb3dzID0gcikpO1xyXG4gICAgcHJvbWlzZXMucHVzaChvYnNlcnZlKTtcclxuICAgIC8vIHByZXBhcmVcclxuICAgIHRoaXMuX3ByZXBhcmUgPSBmaXJzdFZhbHVlRnJvbShmb3JrSm9pbihwcm9taXNlcykpO1xyXG4gICAgdGhpcy5leGVjdXRlKCk7XHJcbiAgfVxyXG4gIC8qKiAqL1xyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydmaWx0ZXJzJ10gJiYgIWNoYW5nZXNbJ2ZpbHRlcnMnXS5maXJzdENoYW5nZSlcclxuICAgICAgdGhpcy5leGVjdXRlKCk7XHJcbiAgICBlbHNlXHJcbiAgICAgIGlmIChjaGFuZ2VzWydoZWlnaHQnXSlcclxuICAgICAgICB0aGlzLnJlc2l6ZSgpO1xyXG4gIH1cclxuICBleGVjdXRlKCkge1xyXG4gICAgdGhpcy5sb2FkaW5nQ2hhbmdlLmVtaXQodHJ1ZSk7XHJcbiAgICB0aGlzLl9zZXJ2aWNlLnNlcmllcyh0aGlzLl9jdWJlLm5hbWUsIHRoaXMuX3hBeGlzLCB7IHNlcmllczogdGhpcy5fc2VyaWVzLCBmaWx0ZXJzOiB0aGlzLmZpbHRlcnMsIGluZGljZXM6IHRoaXMuX2luZGljZXMgfSkuXHJcbiAgICAgIHN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogc2VyaWVzID0+IHtcclxuICAgICAgICAgIHRoaXMuX3ByZXBhcmUudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJvd3MgPSBbXTtcclxuICAgICAgICAgICAgc2VyaWVzLmZpbHRlcihzID0+IHMuaW5kZXgpLmZvckVhY2gocyA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3Qgcm93ID0geyB0aXRsZTogcy50aXRsZSwgdHlwZTogJ0luZGV4Jywga2V5OiBzLmluZGV4IH0gYXMgTW9kZWw7XHJcbiAgICAgICAgICAgICAgdGhpcy5fbm9ybWFsaXplKHJvdywgcy5wb2ludHMpO1xyXG4gICAgICAgICAgICAgIHJvd3MucHVzaChyb3cpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy5fcm93cy5mb3JFYWNoKHIgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHJvdyA9IHsgdGl0bGU6IHIudmFsdWUsIGtleTogci5rZXkgfSBhcyBNb2RlbCwgc2VyaWUgPSBzZXJpZXMuZmluZChzID0+IHMubmFtZSA9PT0gci5rZXkpO1xyXG4gICAgICAgICAgICAgIHNlcmllICYmXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9ub3JtYWxpemUocm93LCBzZXJpZS5wb2ludHMpO1xyXG4gICAgICAgICAgICAgIHJvd3MucHVzaChyb3cpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy5kYXRhU291cmNlID0gcm93cztcclxuICAgICAgICAgICAgdGhpcy5fZHJhdygpO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmdDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9LCBlcnJvcjogKGU6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9zYi5lcnJvcihlcnJSZXNvdXJjZShlKSk7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmdDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfbm9ybWFsaXplKHJvdzogTW9kZWwsIHBvaW50czogYW55W10pIHtcclxuICAgIHBvaW50cy5mb3JFYWNoKHAgPT4gcm93W2BfJHtwLnh9YF0gPSBwLnkpO1xyXG4gICAgdGhpcy5fY29sdW1ucy5mb3JFYWNoKGMgPT4ge1xyXG4gICAgICBpZiAocm93W2BfJHtjLmtleX1gXSA9PT0gdW5kZWZpbmVkKSByb3dbYF8ke2Mua2V5fWBdID0gMDtcclxuICAgIH0pO1xyXG4gIH1cclxuICBwcml2YXRlIF9kcmF3KCkge1xyXG4gICAgdGhpcy5ncmlkICYmIHRoaXMuZ3JpZC5kZXN0cm95KCk7XHJcbiAgICB0aGlzLmdyaWQgPSBuZXcgR3JpZCh7XHJcbiAgICAgIGRhdGFTb3VyY2U6IHRoaXMuZGF0YVNvdXJjZSxcclxuICAgICAgY29sdW1uczogdGhpcy5jb2x1bW5zLFxyXG4gICAgICBlbmFibGVIb3ZlcjogZmFsc2UsXHJcbiAgICAgIGFsbG93RXhjZWxFeHBvcnQ6IHRydWUsXHJcbiAgICAgIHNlbGVjdGlvblNldHRpbmdzOiB0aGlzLnNlbGVjdGlvblNldHRpbmdzLFxyXG4gICAgICBhbGxvd1NvcnRpbmc6IGZhbHNlLFxyXG4gICAgICBmcm96ZW5Db2x1bW5zOiAxLFxyXG4gICAgICB3aWR0aDogdGhpcy53aWR0aCxcclxuICAgICAgLy9oZWlnaHQ6IHRoaXMuaGVpZ2h0LFxyXG4gICAgICBjZWxsU2VsZWN0aW5nOiB0aGlzLmNlbGxTZWxlY3RpbmcuYmluZCh0aGlzKSxcclxuICAgICAgYWxsb3dQYWdpbmc6IGZhbHNlLFxyXG4gICAgICBxdWVyeUNlbGxJbmZvOiB0aGlzLnF1ZXJ5Q2VsbEluZm8sXHJcbiAgICAgIGZyb3plblJvd3M6IHRoaXMuaW5kaWNlcyA/IHRoaXMuaW5kaWNlcy5sZW5ndGggOiAwLFxyXG4gICAgICBhZ2dyZWdhdGVzOiB0aGlzLmFnZ3JlZ2F0ZXMsXHJcbiAgICAgIGN1cnJlbmN5Q29kZTogdGhpcy5jdXJyZW5jeUNvZGVcclxuICAgIH0sIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XHJcbiAgfVxyXG4gIHF1ZXJ5Q2VsbEluZm8oZXZ0OiBRdWVyeUNlbGxJbmZvRXZlbnRBcmdzKSB7XHJcbiAgICBpZiAoZXZ0LmNvbHVtbi5maWVsZCA9PT0gJ3RpdGxlJylcclxuICAgICAgZXZ0LmNlbGwuY2xhc3NMaXN0LmFkZCgnZS1oZWFkZXJ0ZXh0Jyk7XHJcbiAgICBlbHNlIHtcclxuICAgICAgY29uc3QgdmFsID0gZXZ0LmRhdGFbZXZ0LmNvbHVtbi5maWVsZF07XHJcbiAgICAgIGlmICh2YWwgPCAwKVxyXG4gICAgICAgIGV2dC5jZWxsLmNsYXNzTGlzdC5hZGQoJ25lZ2F0aXZlLWZpZ3VyZScpO1xyXG4gICAgICBldnQuY2VsbC5jbGFzc0xpc3QuYWRkKCdub3dyYXAnKTtcclxuICAgIH1cclxuICB9XHJcbiAgY2VsbFNlbGVjdGluZyhldnQ6IENlbGxTZWxlY3RpbmdFdmVudEFyZ3MpIHtcclxuICAgIGNvbnN0IHsgZGF0YSwgY2VsbEluZGV4OiB7IGNlbGxJbmRleCB9IH0gPSBldnQsIHsga2V5OiByb3csIHR5cGUgfSA9IGRhdGEgYXMgTW9kZWw7XHJcbiAgICBldnQuY2FuY2VsID0gdHJ1ZTtcclxuICAgIGlmIChjZWxsSW5kZXggPT09IDApXHJcbiAgICAgIHJldHVybjtcclxuICAgIGNvbnN0IGNvbHVtbiA9IHRoaXMuX2NvbHVtbnNbY2VsbEluZGV4IC0gMV0ua2V5O1xyXG4gICAgaWYgKGRhdGFbYF8ke2NvbHVtbn1gXSA9PT0gMCkgcmV0dXJuO1xyXG4gICAgY29uc3QgYXhlczogUGFyYW1zID0ge307XHJcbiAgICBheGVzW3RoaXMuX3hBeGlzWzBdXSA9IGNvbHVtbjtcclxuICAgIGlmICh0eXBlICE9PSAnSW5kZXgnKSBheGVzW3RoaXMuX3Nlcmllc1swXV0gPSByb3c7XHJcbiAgICB0aGlzLmV4cGxvcmUuZW1pdCh7IGF4ZXMsIGluZGV4OiB0eXBlID09PSAnSW5kZXgnID8gcm93IDogbnVsbCBhcyBhbnl9KTtcclxuICB9XHJcbiAgcHVibGljIGN1c3RvbUFnZ3JlZ2F0ZShfLCBjb2x1bW46IEFnZ3JlZ2F0ZUNvbHVtbk1vZGVsKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhU291cmNlLnN1bShyID0+XHJcbiAgICAgIChyW2NvbHVtbi5maWVsZF0gfHwgMCkgKiAoci50eXBlID09PSAnSW5kZXgnID8gMSA6IC0xKSk7XHJcbiAgfVxyXG4gIHJlc2l6ZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmdyaWQpIHtcclxuICAgICAgdGhpcy5ncmlkLndpZHRoID0gdGhpcy53aWR0aDtcclxuICAgIH1cclxuICB9XHJcbiAgZXhwb3J0VG9FeGNlbCh0aXRsZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmdyaWQuZXhjZWxFeHBvcnQoe1xyXG4gICAgICBmaWxlTmFtZTogYCR7dGl0bGV9Lnhsc3hgXHJcbiAgICB9KTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmdyaWQgJiYgdGhpcy5ncmlkLmRlc3Ryb3koKTtcclxuICB9XHJcbn1cclxuXHJcbmludGVyZmFjZSBNb2RlbCB7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICB0eXBlOiAnSW5kZXgnIHwgbnVsbDtcclxuICBrZXk6IHN0cmluZyB8IG51bWJlcjtcclxufVxyXG4iXX0=
217
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2N1YmUvZ3JpZC9ncmlkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsV0FBVyxFQUF5QixLQUFLLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBRTdJLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQzVELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQXNCLElBQUksRUFBNkcsTUFBTSwrQkFBK0IsQ0FBQztBQUdwTCxPQUFPLEVBQWUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFJM0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7QUFXL0MsTUFBTSxPQUFPLGlCQUFpQjtJQU81QixJQUNJLEtBQUssQ0FBQyxHQUFzQjtRQUM5QixJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFDRCxJQUNJLE1BQU0sQ0FBQyxHQUFzQjtRQUMvQixJQUFJLEdBQUc7WUFBRSxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFDRCxJQUNJLE9BQU8sQ0FBQyxHQUFzQjtRQUNoQyxJQUFJLEdBQUc7WUFBRSxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFD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bXBvcnQgeyBFdmVudEVtaXR0ZXIsIENvbXBvbmVudCwgT3V0cHV0LCBPbkluaXQsIEhvc3RCaW5kaW5nLCBFbGVtZW50UmVmLCBPbkRlc3Ryb3ksIElucHV0LCBTaW1wbGVDaGFuZ2VzLCBPbkNoYW5nZXMgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSwgZm9ya0pvaW4sIE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyB0YXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgR3JvdXBTZXR0aW5nc01vZGVsLCBHcmlkLCBBZ2dyZWdhdGVDb2x1bW5Nb2RlbCwgU2VsZWN0aW9uU2V0dGluZ3NNb2RlbCwgQ2VsbFNlbGVjdGluZ0V2ZW50QXJncywgUXVlcnlDZWxsSW5mb0V2ZW50QXJncywgQ29sdW1uTW9kZWwgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItYW5ndWxhci1ncmlkcyc7XHJcbmltcG9ydCB7IEF4aXNDbGlja0V2ZW50LCBDdWJlVmlld2VyQ29tcG9uZW50IH0gZnJvbSBcIi4uL2RlY2xhcmF0aW9uc1wiO1xyXG5pbXBvcnQgeyBBeGVzTWFwLCBDdWJlIH0gZnJvbSBcIi4uLy4uL2NvcmUvbW9kZWxzXCI7XHJcbmltcG9ydCB7IEN1YmVTZXJ2aWNlLCBlcnJSZXNvdXJjZSB9IGZyb20gXCIuLi9jdWJlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL3Byb21wdC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERhdGFzb3VyY2VTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvZGF0YXNvdXJjZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IGlzQXJyYXkgfSBmcm9tIFwiLi4vLi4vY29yZS9mdW5jdGlvbnNcIjtcclxuaW1wb3J0IHsgUGFyYW1zIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtY3ViZS1ncmlkJyxcclxuICB0ZW1wbGF0ZTogJycsXHJcbiAgc3R5bGVVcmxzOiBbJ2dyaWQuY29tcG9uZW50LnNjc3MnXSxcclxuICBob3N0OiB7XHJcbiAgICBjbGFzczogJ2N1YmUtdmlldydcclxuICB9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdWJlR3JpZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBDdWJlVmlld2VyQ29tcG9uZW50LCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpXHJcbiAgd2lkdGg6IHN0cmluZztcclxuICBASW5wdXQoKVxyXG4gIGhlaWdodDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpXHJcbiAgY3ViZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHhBeGlzKHZhbDogc3RyaW5nW10gfCBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3hBeGlzID0gaXNBcnJheSh2YWwpID8gdmFsIDogW3ZhbF07XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHNlcmllcyh2YWw6IHN0cmluZ1tdIHwgc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsKSB0aGlzLl9zZXJpZXMgPSBpc0FycmF5KHZhbCkgPyB2YWwgOiBbdmFsXTtcclxuICB9XHJcbiAgQElucHV0KClcclxuICBzZXQgaW5kaWNlcyh2YWw6IHN0cmluZ1tdIHwgc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsKSB0aGlzLl9pbmRpY2VzID0gaXNBcnJheSh2YWwpID8gdmFsIDogW3ZhbF07XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgZmlsdGVycz86IEF4ZXNNYXA7XHJcbiAgY3VycmVuY3lDb2RlOiBzdHJpbmc7XHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGV4cGxvcmUgPSBuZXcgRXZlbnRFbWl0dGVyPEF4aXNDbGlja0V2ZW50PigpO1xyXG4gIEBJbnB1dCgpIGxvYWRpbmc6IGJvb2xlYW47XHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGxvYWRpbmdDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgbmV4dElkID0gMDtcclxuICBASG9zdEJpbmRpbmcoKSBpZCA9IGBjdWJlLWdyaWQtJHtDdWJlR3JpZENvbXBvbmVudC5uZXh0SWQrK31gO1xyXG4gIGdyaWQ6IEdyaWQ7XHJcbiAgZGF0YVNvdXJjZTogYW55W10gPSBbXTtcclxuICByZWFkb25seSBncm91cFNldHRpbmdzOiBHcm91cFNldHRpbmdzTW9kZWwgPSB7XHJcbiAgfTtcclxuICByZWFkb25seSBzZWxlY3Rpb25TZXR0aW5nczogU2VsZWN0aW9uU2V0dGluZ3NNb2RlbCA9IHsgY2VsbFNlbGVjdGlvbk1vZGU6ICdCb3gnLCB0eXBlOiAnU2luZ2xlJywgbW9kZTogJ0NlbGwnIH07XHJcbiAgYWdncmVnYXRlczogeyBjb2x1bW5zOiBBZ2dyZWdhdGVDb2x1bW5Nb2RlbFtdIH1bXTtcclxuICBjb2x1bW5zOiBDb2x1bW5Nb2RlbFtdO1xyXG4gIHByaXZhdGUgX3hBeGlzOiBzdHJpbmdbXTtcclxuICBwcml2YXRlIF9zZXJpZXM/OiBzdHJpbmdbXTtcclxuICBwcml2YXRlIF9pbmRpY2VzPzogc3RyaW5nW107XHJcbiAgcHJpdmF0ZSBfcm93czogeyBrZXk6IGFueTsgdmFsdWU6IGFueSB9W10gPSBbXTtcclxuICBwcml2YXRlIF9jb2x1bW5zOiB7IGtleTogYW55OyB2YWx1ZTogYW55IH1bXSA9IFtdO1xyXG4gIHByaXZhdGUgX2N1YmU6IEN1YmU7XHJcbiAgcHJpdmF0ZSBfcHJlcGFyZTogUHJvbWlzZTxhbnk+O1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zYjogUHJvbXB0U2VydmljZSxcclxuICAgIHByaXZhdGUgX2RzOiBEYXRhc291cmNlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3NlcnZpY2U6IEN1YmVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZikgeyB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jdWJlID0gdGhpcy5jdWJlID8gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzLmZpbmQoYyA9PiBjLm5hbWUgPT09IHRoaXMuY3ViZSkgOiB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuY3ViZXNbMF07XHJcbiAgICB0aGlzLmN1cnJlbmN5Q29kZSA9IHRoaXMuX2N1YmUuY3VycmVuY3lDb2RlO1xyXG4gICAgY29uc3QgeCA9IHRoaXMuX2N1YmUuYXhlcy5maW5kKGEgPT4gYS5uYW1lID09PSB0aGlzLl94QXhpc1swXSksXHJcbiAgICAgIHkgPSB0aGlzLl9jdWJlLmF4ZXMuZmluZChhID0+IGEubmFtZSA9PT0gdGhpcy5fc2VyaWVzWzBdKTtcclxuICAgIGNvbnN0IHByb21pc2VzOiBPYnNlcnZhYmxlPGFueT5bXSA9IFtdO1xyXG4gICAgLy8gYXF1aXJlIGNvbHVtbnMgc291cmNlXHJcbiAgICBsZXQgb2JzZXJ2ZSA9IHRoaXMuX2RzLmFsbCh4LmRhdGFUeXBlKS5cclxuICAgICAgcGlwZSh0YXAoYyA9PiB7XHJcbiAgICAgICAgdGhpcy5fY29sdW1ucyA9IGM7XHJcbiAgICAgICAgY29uc3QgZm9ybWF0ID0gYCR7dGhpcy5jdXJyZW5jeUNvZGUgPyAnYycgOiAnbid9JHt0aGlzLl9zZXJ2aWNlLmZyYWN0aW9uRGlnaXRzfWA7XHJcbiAgICAgICAgdGhpcy5jb2x1bW5zID0gW3tcclxuICAgICAgICAgIGhlYWRlclRleHQ6ICcnLCBmaWVsZDogJ3RpdGxlJyxcclxuICAgICAgICB9IGFzIENvbHVtbk1vZGVsXTtcclxuICAgICAgICB0aGlzLl9jb2x1bW5zLmZvckVhY2goYyA9PiB0aGlzLmNvbHVtbnMucHVzaCh7XHJcbiAgICAgICAgICBmaWVsZDogYF8ke2Mua2V5fWAsXHJcbiAgICAgICAgICBoZWFkZXJUZXh0OiBjLnZhbHVlLFxyXG4gICAgICAgICAgd2lkdGg6IDEyMCxcclxuICAgICAgICAgIGZvcm1hdCxcclxuICAgICAgICAgIHRleHRBbGlnbjogJ1JpZ2h0J1xyXG4gICAgICAgIH0gYXMgQ29sdW1uTW9kZWxcclxuICAgICAgICApKTtcclxuICAgICAgICB0aGlzLmFnZ3JlZ2F0ZXMgPSBbe1xyXG4gICAgICAgICAgY29sdW1uczogdGhpcy5fY29sdW1ucy5tYXAoYyA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgY29sdW1uTmFtZTogYF8ke2Mua2V5fWAsXHJcbiAgICAgICAgICAgICAgZmllbGQ6IGBfJHtjLmtleX1gLFxyXG4gICAgICAgICAgICAgIHR5cGU6ICdDdXN0b20nLFxyXG4gICAgICAgICAgICAgIC8vICBmb290ZXJUZW1wbGF0ZTogYFxcJHtpZihDdXN0b20uaW5kZXhPZignLScpPi0xKX1cclxuICAgICAgICAgICAgICAvLzxzcGFuIGNsYXNzPVwibWF0LXdhcm5cIj5cXCR7Q3VzdG9tfTwvc3Bhbj4gXFwke2Vsc2V9XHJcbiAgICAgICAgICAgICAgLy9cXCR7Q3VzdG9tfSBcXCR7L2lmfWAsXHJcbiAgICAgICAgICAgICAgZm9ybWF0LFxyXG4gICAgICAgICAgICAgIGN1c3RvbUFnZ3JlZ2F0ZTogdGhpcy5jdXN0b21BZ2dyZWdhdGUuYmluZCh0aGlzKVxyXG4gICAgICAgICAgICB9IGFzIEFnZ3JlZ2F0ZUNvbHVtbk1vZGVsO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9XTtcclxuICAgICAgfSkpO1xyXG4gICAgcHJvbWlzZXMucHVzaChvYnNlcnZlKTtcclxuICAgIC8vIGFxdWlyZSByb3dzIHNvdXJjZVxyXG4gICAgb2JzZXJ2ZSA9IHRoaXMuX2RzLmFsbCh5LmRhdGFUeXBlKS5cclxuICAgICAgcGlwZSh0YXAociA9PiB0aGlzLl9yb3dzID0gcikpO1xyXG4gICAgcHJvbWlzZXMucHVzaChvYnNlcnZlKTtcclxuICAgIC8vIHByZXBhcmVcclxuICAgIHRoaXMuX3ByZXBhcmUgPSBmaXJzdFZhbHVlRnJvbShmb3JrSm9pbihwcm9taXNlcykpO1xyXG4gICAgdGhpcy5leGVjdXRlKCk7XHJcbiAgfVxyXG4gIC8qKiAqL1xyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydmaWx0ZXJzJ10gJiYgIWNoYW5nZXNbJ2ZpbHRlcnMnXS5maXJzdENoYW5nZSlcclxuICAgICAgdGhpcy5leGVjdXRlKCk7XHJcbiAgICBlbHNlXHJcbiAgICAgIGlmIChjaGFuZ2VzWydoZWlnaHQnXSlcclxuICAgICAgICB0aGlzLnJlc2l6ZSgpO1xyXG4gIH1cclxuICBleGVjdXRlKCkge1xyXG4gICAgdGhpcy5sb2FkaW5nQ2hhbmdlLmVtaXQodHJ1ZSk7XHJcbiAgICB0aGlzLl9zZXJ2aWNlLnNlcmllcyh0aGlzLl9jdWJlLm5hbWUsIHRoaXMuX3hBeGlzLCB7IHNlcmllczogdGhpcy5fc2VyaWVzLCBmaWx0ZXJzOiB0aGlzLmZpbHRlcnMsIGluZGljZXM6IHRoaXMuX2luZGljZXMgfSkuXHJcbiAgICAgIHN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogc2VyaWVzID0+IHtcclxuICAgICAgICAgIHRoaXMuX3ByZXBhcmUudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJvd3MgPSBbXTtcclxuICAgICAgICAgICAgc2VyaWVzLmZpbHRlcihzID0+IHMuaW5kZXgpLmZvckVhY2gocyA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3Qgcm93ID0geyB0aXRsZTogcy50aXRsZSwgdHlwZTogJ0luZGV4Jywga2V5OiBzLmluZGV4IH0gYXMgTW9kZWw7XHJcbiAgICAgICAgICAgICAgdGhpcy5fbm9ybWFsaXplKHJvdywgcy5wb2ludHMpO1xyXG4gICAgICAgICAgICAgIHJvd3MucHVzaChyb3cpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy5fcm93cy5mb3JFYWNoKHIgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHJvdyA9IHsgdGl0bGU6IHIudmFsdWUsIGtleTogci5rZXkgfSBhcyBNb2RlbCwgc2VyaWUgPSBzZXJpZXMuZmluZChzID0+IHMubmFtZSA9PT0gci5rZXkpO1xyXG4gICAgICAgICAgICAgIHNlcmllICYmXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9ub3JtYWxpemUocm93LCBzZXJpZS5wb2ludHMpO1xyXG4gICAgICAgICAgICAgIHJvd3MucHVzaChyb3cpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy5kYXRhU291cmNlID0gcm93cztcclxuICAgICAgICAgICAgdGhpcy5fZHJhdygpO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmdDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9LCBlcnJvcjogKGU6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9zYi5lcnJvcihlcnJSZXNvdXJjZShlKSk7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmdDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfbm9ybWFsaXplKHJvdzogTW9kZWwsIHBvaW50czogYW55W10pIHtcclxuICAgIHBvaW50cy5mb3JFYWNoKHAgPT4gcm93W2BfJHtwLnh9YF0gPSBwLnkpO1xyXG4gICAgdGhpcy5fY29sdW1ucy5mb3JFYWNoKGMgPT4ge1xyXG4gICAgICBpZiAocm93W2BfJHtjLmtleX1gXSA9PT0gdW5kZWZpbmVkKSByb3dbYF8ke2Mua2V5fWBdID0gMDtcclxuICAgIH0pO1xyXG4gIH1cclxuICBwcml2YXRlIF9kcmF3KCkge1xyXG4gICAgdGhpcy5ncmlkICYmIHRoaXMuZ3JpZC5kZXN0cm95KCk7XHJcbiAgICB0aGlzLmdyaWQgPSBuZXcgR3JpZCh7XHJcbiAgICAgIGRhdGFTb3VyY2U6IHRoaXMuZGF0YVNvdXJjZSxcclxuICAgICAgY29sdW1uczogdGhpcy5jb2x1bW5zLFxyXG4gICAgICBlbmFibGVIb3ZlcjogZmFsc2UsXHJcbiAgICAgIGFsbG93RXhjZWxFeHBvcnQ6IHRydWUsXHJcbiAgICAgIHNlbGVjdGlvblNldHRpbmdzOiB0aGlzLnNlbGVjdGlvblNldHRpbmdzLFxyXG4gICAgICBhbGxvd1NvcnRpbmc6IGZhbHNlLFxyXG4gICAgICBmcm96ZW5Db2x1bW5zOiAxLFxyXG4gICAgICB3aWR0aDogdGhpcy53aWR0aCxcclxuICAgICAgLy9oZWlnaHQ6IHRoaXMuaGVpZ2h0LFxyXG4gICAgICBjZWxsU2VsZWN0aW5nOiB0aGlzLmNlbGxTZWxlY3RpbmcuYmluZCh0aGlzKSxcclxuICAgICAgYWxsb3dQYWdpbmc6IGZhbHNlLFxyXG4gICAgICBxdWVyeUNlbGxJbmZvOiB0aGlzLnF1ZXJ5Q2VsbEluZm8sXHJcbiAgICAgIGZyb3plblJvd3M6IHRoaXMuaW5kaWNlcyA/IHRoaXMuaW5kaWNlcy5sZW5ndGggOiAwLFxyXG4gICAgICBhZ2dyZWdhdGVzOiB0aGlzLmFnZ3JlZ2F0ZXMsXHJcbiAgICAgIGN1cnJlbmN5Q29kZTogdGhpcy5jdXJyZW5jeUNvZGVcclxuICAgIH0sIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XHJcbiAgfVxyXG4gIHF1ZXJ5Q2VsbEluZm8oZXZ0OiBRdWVyeUNlbGxJbmZvRXZlbnRBcmdzKSB7XHJcbiAgICBpZiAoZXZ0LmNvbHVtbi5maWVsZCA9PT0gJ3RpdGxlJylcclxuICAgICAgZXZ0LmNlbGwuY2xhc3NMaXN0LmFkZCgnZS1oZWFkZXJ0ZXh0Jyk7XHJcbiAgICBlbHNlIHtcclxuICAgICAgY29uc3QgdmFsID0gZXZ0LmRhdGFbZXZ0LmNvbHVtbi5maWVsZF07XHJcbiAgICAgIGlmICh2YWwgPCAwKVxyXG4gICAgICAgIGV2dC5jZWxsLmNsYXNzTGlzdC5hZGQoJ25lZ2F0aXZlLWZpZ3VyZScpO1xyXG4gICAgICBldnQuY2VsbC5jbGFzc0xpc3QuYWRkKCdub3dyYXAnKTtcclxuICAgIH1cclxuICB9XHJcbiAgY2VsbFNlbGVjdGluZyhldnQ6IENlbGxTZWxlY3RpbmdFdmVudEFyZ3MpIHtcclxuICAgIGNvbnN0IHsgZGF0YSwgY2VsbEluZGV4OiB7IGNlbGxJbmRleCB9IH0gPSBldnQsIHsga2V5OiByb3csIHR5cGUgfSA9IGRhdGEgYXMgTW9kZWw7XHJcbiAgICBldnQuY2FuY2VsID0gdHJ1ZTtcclxuICAgIGlmIChjZWxsSW5kZXggPT09IDApXHJcbiAgICAgIHJldHVybjtcclxuICAgIGNvbnN0IGNvbHVtbiA9IHRoaXMuX2NvbHVtbnNbY2VsbEluZGV4IC0gMV0ua2V5O1xyXG4gICAgaWYgKGRhdGFbYF8ke2NvbHVtbn1gXSA9PT0gMCkgcmV0dXJuO1xyXG4gICAgY29uc3QgYXhlczogUGFyYW1zID0ge307XHJcbiAgICBheGVzW3RoaXMuX3hBeGlzWzBdXSA9IGNvbHVtbjtcclxuICAgIGlmICh0eXBlICE9PSAnSW5kZXgnKSBheGVzW3RoaXMuX3Nlcmllc1swXV0gPSByb3c7XHJcbiAgICB0aGlzLmV4cGxvcmUuZW1pdCh7IGF4ZXMsIGluZGV4OiB0eXBlID09PSAnSW5kZXgnID8gcm93IDogbnVsbCBhcyBhbnl9KTtcclxuICB9XHJcbiAgcHVibGljIGN1c3RvbUFnZ3JlZ2F0ZShfLCBjb2x1bW46IEFnZ3JlZ2F0ZUNvbHVtbk1vZGVsKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhU291cmNlLnN1bShyID0+XHJcbiAgICAgIChyW2NvbHVtbi5maWVsZF0gfHwgMCkgKiAoci50eXBlID09PSAnSW5kZXgnID8gMSA6IC0xKSk7XHJcbiAgfVxyXG4gIHJlc2l6ZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmdyaWQpIHtcclxuICAgICAgdGhpcy5ncmlkLndpZHRoID0gdGhpcy53aWR0aDtcclxuICAgIH1cclxuICB9XHJcbiAgZXhwb3J0VG9FeGNlbCh0aXRsZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmdyaWQuZXhjZWxFeHBvcnQoe1xyXG4gICAgICBmaWxlTmFtZTogYCR7dGl0bGV9Lnhsc3hgXHJcbiAgICB9KTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmdyaWQgJiYgdGhpcy5ncmlkLmRlc3Ryb3koKTtcclxuICB9XHJcbn1cclxuXHJcbmludGVyZmFjZSBNb2RlbCB7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICB0eXBlOiAnSW5kZXgnIHwgbnVsbDtcclxuICBrZXk6IHN0cmluZyB8IG51bWJlcjtcclxufVxyXG4iXX0=