@bizdoc/core 1.16.3 → 1.16.4

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 (1033) hide show
  1. package/bizdoc-core.d.ts.map +1 -0
  2. package/esm2020/lib/admin/admin-dismiss.service.mjs +6 -6
  3. package/esm2020/lib/admin/admin-menu.component.mjs +82 -9
  4. package/esm2020/lib/admin/configuration-designer/cube-axes-filter.component.mjs +248 -0
  5. package/esm2020/lib/admin/configuration-designer/designer-element.component.mjs +192 -29
  6. package/esm2020/lib/admin/configuration-designer/designer.base.mjs +37 -25
  7. package/esm2020/lib/admin/configuration-designer/designer.component.mjs +152 -10
  8. package/esm2020/lib/admin/configuration-designer/elements/action.component.mjs +107 -10
  9. package/esm2020/lib/admin/configuration-designer/elements/analysis-view.component.mjs +447 -7
  10. package/esm2020/lib/admin/configuration-designer/elements/analysis-widget.component.mjs +441 -7
  11. package/esm2020/lib/admin/configuration-designer/elements/anomaly-rule.component.mjs +25 -7
  12. package/esm2020/lib/admin/configuration-designer/elements/box-form.component.mjs +25 -7
  13. package/esm2020/lib/admin/configuration-designer/elements/configuration-datasource.component.mjs +79 -7
  14. package/esm2020/lib/admin/configuration-designer/elements/cube-index-utility.component.mjs +71 -7
  15. package/esm2020/lib/admin/configuration-designer/elements/cube-view.component.mjs +98 -7
  16. package/esm2020/lib/admin/configuration-designer/elements/cube.component.mjs +793 -10
  17. package/esm2020/lib/admin/configuration-designer/elements/documents-report.component.mjs +52 -7
  18. package/esm2020/lib/admin/configuration-designer/elements/documents-widget.component.mjs +55 -10
  19. package/esm2020/lib/admin/configuration-designer/elements/explore-view.component.mjs +73 -7
  20. package/esm2020/lib/admin/configuration-designer/elements/folder.component.mjs +275 -9
  21. package/esm2020/lib/admin/configuration-designer/elements/form.component.mjs +96 -10
  22. package/esm2020/lib/admin/configuration-designer/elements/guide.component.mjs +78 -7
  23. package/esm2020/lib/admin/configuration-designer/elements/matrix-view.component.mjs +293 -8
  24. package/esm2020/lib/admin/configuration-designer/elements/parallel-view.component.mjs +210 -8
  25. package/esm2020/lib/admin/configuration-designer/elements/performance-widget.component.mjs +74 -7
  26. package/esm2020/lib/admin/configuration-designer/elements/pivot-view.component.mjs +162 -8
  27. package/esm2020/lib/admin/configuration-designer/elements/report.component.mjs +58 -7
  28. package/esm2020/lib/admin/configuration-designer/elements/return-to-role-action.component.mjs +40 -7
  29. package/esm2020/lib/admin/configuration-designer/elements/role.component.mjs +70 -8
  30. package/esm2020/lib/admin/configuration-designer/elements/rule.component.mjs +20 -7
  31. package/esm2020/lib/admin/configuration-designer/elements/state.component.mjs +63 -11
  32. package/esm2020/lib/admin/configuration-designer/elements/sum-view.component.mjs +132 -8
  33. package/esm2020/lib/admin/configuration-designer/elements/tasks-report.component.mjs +101 -7
  34. package/esm2020/lib/admin/configuration-designer/elements/type.component.mjs +25 -7
  35. package/esm2020/lib/admin/configuration-designer/elements/usage-report.component.mjs +205 -8
  36. package/esm2020/lib/admin/configuration-designer/elements/utility.component.mjs +24 -7
  37. package/esm2020/lib/admin/configuration-designer/elements/view.component.mjs +22 -7
  38. package/esm2020/lib/admin/configuration-designer/elements/widget.component.mjs +54 -7
  39. package/esm2020/lib/admin/configuration-designer/icon-picker.component.mjs +79 -30
  40. package/esm2020/lib/admin/core/ace.input.mjs +35 -29
  41. package/esm2020/lib/admin/core/color-picker.input.mjs +89 -36
  42. package/esm2020/lib/admin/core/search.input.mjs +23 -13
  43. package/esm2020/lib/admin/diff/configuration-diff.component.mjs +90 -15
  44. package/esm2020/lib/admin/document-trace/document-trace.component.mjs +296 -30
  45. package/esm2020/lib/admin/document-trace/reassign.dialog.mjs +63 -10
  46. package/esm2020/lib/admin/document-trace/trace-element.component.mjs +238 -7
  47. package/esm2020/lib/admin/form/designer/designer.component.mjs +492 -10
  48. package/esm2020/lib/admin/form/form.resolve.service.mjs +6 -6
  49. package/esm2020/lib/admin/form/workflow/node.component.mjs +86 -15
  50. package/esm2020/lib/admin/form/workflow/role-node.component.mjs +152 -13
  51. package/esm2020/lib/admin/form/workflow/workflow.component.mjs +219 -18
  52. package/esm2020/lib/admin/indices/manage-cube-index.component.mjs +160 -13
  53. package/esm2020/lib/admin/patterns/patterns.component.mjs +280 -19
  54. package/esm2020/lib/admin/permissions/permissions.component.mjs +129 -13
  55. package/esm2020/lib/admin/positions/positions-popup.component.mjs +77 -13
  56. package/esm2020/lib/admin/positions/positions.component.mjs +605 -31
  57. package/esm2020/lib/admin/profiler/outofoffice.component.mjs +184 -16
  58. package/esm2020/lib/admin/profiler/profiler.component.mjs +268 -21
  59. package/esm2020/lib/admin/system.service.mjs +6 -6
  60. package/esm2020/lib/admin/utility-wrapper.component.mjs +9 -9
  61. package/esm2020/lib/admin/utility.pane.component.mjs +23 -15
  62. package/esm2020/lib/app.component.mjs +19 -19
  63. package/esm2020/lib/bizdoc.module.mjs +30 -29
  64. package/esm2020/lib/browse/browse-items.component.mjs +629 -40
  65. package/esm2020/lib/browse/browse.mobile.component.mjs +218 -13
  66. package/esm2020/lib/browse/browse.pane.component.mjs +214 -18
  67. package/esm2020/lib/browse/expanded-item/expanded-item.component.mjs +161 -11
  68. package/esm2020/lib/browse/filter/filter.component.mjs +184 -27
  69. package/esm2020/lib/browse/folders-menu.component.mjs +74 -11
  70. package/esm2020/lib/chat/chat-info.mjs +10 -10
  71. package/esm2020/lib/chat/chat.mobile.component.mjs +32 -11
  72. package/esm2020/lib/chat/chat.service.mjs +7 -7
  73. package/esm2020/lib/chat/contacts.component.mjs +134 -15
  74. package/esm2020/lib/chat/contacts.pane.component.mjs +16 -12
  75. package/esm2020/lib/chat/conversation.component.mjs +128 -21
  76. package/esm2020/lib/chat/conversation.pane.component.mjs +13 -9
  77. package/esm2020/lib/compose/action/action-picker.component.mjs +107 -14
  78. package/esm2020/lib/compose/action/action.dialog.mjs +78 -13
  79. package/esm2020/lib/compose/action/action.pane.dialog.exp.mjs +58 -12
  80. package/esm2020/lib/compose/action/assign-action.component.mjs +93 -10
  81. package/esm2020/lib/compose/action/moveto-action.component.mjs +110 -10
  82. package/esm2020/lib/compose/action/return-action.component.mjs +55 -7
  83. package/esm2020/lib/compose/attachments/attachments.component.mjs +140 -13
  84. package/esm2020/lib/compose/attachments/preview/attachment-preview.component.mjs +147 -58
  85. package/esm2020/lib/compose/attachments/progress-button.directive.mjs +9 -9
  86. package/esm2020/lib/compose/box/box.component.mjs +160 -7
  87. package/esm2020/lib/compose/can-deactivate-changes.service.mjs +6 -6
  88. package/esm2020/lib/compose/comments/comment.component.mjs +189 -26
  89. package/esm2020/lib/compose/comments/comments.component.mjs +111 -22
  90. package/esm2020/lib/compose/comments/comments.pane.component.mjs +21 -12
  91. package/esm2020/lib/compose/comments/edit-comment.component.mjs +16 -10
  92. package/esm2020/lib/compose/comments/edits.component.mjs +47 -10
  93. package/esm2020/lib/compose/comments/quick-comment.component.exp.mjs +37 -10
  94. package/esm2020/lib/compose/comments/votes.component.mjs +45 -10
  95. package/esm2020/lib/compose/compose-resolve.service.mjs +11 -11
  96. package/esm2020/lib/compose/compose.mobile.component.mjs +297 -19
  97. package/esm2020/lib/compose/compose.pane.component.mjs +336 -36
  98. package/esm2020/lib/compose/copy/copy.dialog.mjs +58 -7
  99. package/esm2020/lib/compose/dismiss.service.mjs +6 -6
  100. package/esm2020/lib/compose/document-resolver.service.mjs +6 -6
  101. package/esm2020/lib/compose/document.component.mjs +28 -12
  102. package/esm2020/lib/compose/document.mobile.component.mjs +13 -9
  103. package/esm2020/lib/compose/document.pane.component.mjs +13 -9
  104. package/esm2020/lib/compose/events/events.component.mjs +33 -9
  105. package/esm2020/lib/compose/form-selector/form-selector.sheet.mjs +40 -7
  106. package/esm2020/lib/compose/form.component.mjs +119 -40
  107. package/esm2020/lib/compose/new-menu.component.mjs +45 -9
  108. package/esm2020/lib/compose/privilage.directive.mjs +31 -31
  109. package/esm2020/lib/compose/recipient-resolver.service.mjs +6 -6
  110. package/esm2020/lib/compose/state.component.mjs +9 -9
  111. package/esm2020/lib/compose/tag/tags.component.mjs +73 -16
  112. package/esm2020/lib/compose/trace/flow.component.mjs +13 -13
  113. package/esm2020/lib/compose/trace/people.component.mjs +23 -13
  114. package/esm2020/lib/compose/trace/trace.base.mjs +6 -6
  115. package/esm2020/lib/compose/trace/trace.component.mjs +306 -11
  116. package/esm2020/lib/compose/trace/trace.pane.component.mjs +31 -15
  117. package/esm2020/lib/compose/version-compare/version-compare.component.mjs +14 -14
  118. package/esm2020/lib/compose/version-compare/version-compare.directive.mjs +64 -64
  119. package/esm2020/lib/compose/version-compare/version.pane.component.mjs +66 -9
  120. package/esm2020/lib/core/NgComponentOutlet.mjs +18 -18
  121. package/esm2020/lib/core/account.service.mjs +7 -7
  122. package/esm2020/lib/core/animated-icon/animated-icon.directive.mjs +7 -7
  123. package/esm2020/lib/core/avatar/avatar.component.mjs +43 -16
  124. package/esm2020/lib/core/component-factory-resolver.mjs +6 -6
  125. package/esm2020/lib/core/controls/address.input.mjs +74 -45
  126. package/esm2020/lib/core/controls/auto-complete.input.mjs +129 -65
  127. package/esm2020/lib/core/controls/combination-picker-body.mjs +156 -20
  128. package/esm2020/lib/core/controls/combination-picker.mjs +71 -52
  129. package/esm2020/lib/core/controls/combination-pool.mjs +76 -20
  130. package/esm2020/lib/core/controls/file.input.mjs +316 -51
  131. package/esm2020/lib/core/controls/select.input.mjs +115 -59
  132. package/esm2020/lib/core/controls/time-picker.mjs +49 -25
  133. package/esm2020/lib/core/controls/timespan.input.mjs +59 -37
  134. package/esm2020/lib/core/datasource.service.mjs +7 -7
  135. package/esm2020/lib/core/guide/guide.component.mjs +88 -19
  136. package/esm2020/lib/core/guide/guide.service.mjs +10 -10
  137. package/esm2020/lib/core/guide/help-tip.component.mjs +36 -14
  138. package/esm2020/lib/core/http.interceptor.mjs +12 -12
  139. package/esm2020/lib/core/hub.service.mjs +9 -9
  140. package/esm2020/lib/core/identity/identity.component.mjs +38 -16
  141. package/esm2020/lib/core/info/attachment-info.service.mjs +6 -6
  142. package/esm2020/lib/core/info/document-info.service.mjs +6 -6
  143. package/esm2020/lib/core/info/location-info.component.mjs +12 -12
  144. package/esm2020/lib/core/info/map-info.mjs +6 -6
  145. package/esm2020/lib/core/layout/autocomplete.field.mjs +66 -22
  146. package/esm2020/lib/core/layout/checkbox.field.mjs +56 -18
  147. package/esm2020/lib/core/layout/checkbox.mjs +33 -19
  148. package/esm2020/lib/core/layout/date-range.field.mjs +47 -22
  149. package/esm2020/lib/core/layout/date.field.mjs +67 -23
  150. package/esm2020/lib/core/layout/expression.field.mjs +66 -24
  151. package/esm2020/lib/core/layout/file.field.mjs +64 -20
  152. package/esm2020/lib/core/layout/html.field.mjs +60 -18
  153. package/esm2020/lib/core/layout/input.base.mjs +6 -6
  154. package/esm2020/lib/core/layout/input.field.mjs +64 -20
  155. package/esm2020/lib/core/layout/layout.component.mjs +34 -26
  156. package/esm2020/lib/core/layout/numeric.field.mjs +72 -21
  157. package/esm2020/lib/core/layout/select.field.mjs +100 -33
  158. package/esm2020/lib/core/layout/switch.field.mjs +56 -18
  159. package/esm2020/lib/core/layout/textarea.field.mjs +60 -18
  160. package/esm2020/lib/core/layout/timespan.field.mjs +67 -22
  161. package/esm2020/lib/core/lottie-animation.mjs +22 -20
  162. package/esm2020/lib/core/mailbox.service.mjs +7 -7
  163. package/esm2020/lib/core/models.mjs +1 -1
  164. package/esm2020/lib/core/none.component.mjs +39 -17
  165. package/esm2020/lib/core/pipes/action.pipe.mjs +7 -7
  166. package/esm2020/lib/core/pipes/calendar.pipe.mjs +10 -10
  167. package/esm2020/lib/core/pipes/date-format.pipe.mjs +7 -7
  168. package/esm2020/lib/core/pipes/daterange.pipe.mjs +13 -13
  169. package/esm2020/lib/core/pipes/difference.pipe.mjs +7 -7
  170. package/esm2020/lib/core/pipes/duration-format.pipe.mjs +7 -7
  171. package/esm2020/lib/core/pipes/duration.pipe.mjs +7 -7
  172. package/esm2020/lib/core/pipes/form.pipe.mjs +7 -7
  173. package/esm2020/lib/core/pipes/join.pipe.mjs +7 -7
  174. package/esm2020/lib/core/pipes/role.pipe.mjs +7 -7
  175. package/esm2020/lib/core/pipes/sort.pipe.mjs +17 -17
  176. package/esm2020/lib/core/pipes/state.pipe.mjs +7 -7
  177. package/esm2020/lib/core/pipes/time-ago.pipe.mjs +10 -10
  178. package/esm2020/lib/core/pipes/type-value.pipe.mjs +9 -9
  179. package/esm2020/lib/core/pipes/user-name.pipe.mjs +7 -7
  180. package/esm2020/lib/core/popup/popup.component.mjs +26 -13
  181. package/esm2020/lib/core/popup/popup.service.mjs +7 -7
  182. package/esm2020/lib/core/popup/tooltip.directive.mjs +34 -34
  183. package/esm2020/lib/core/prompt/ask/ask.dialog.mjs +34 -10
  184. package/esm2020/lib/core/prompt/mask/mask.component.mjs +18 -10
  185. package/esm2020/lib/core/prompt.service.mjs +7 -7
  186. package/esm2020/lib/core/router.mjs +11 -11
  187. package/esm2020/lib/core/save-changes.dialog.mjs +43 -7
  188. package/esm2020/lib/core/session.service.mjs +10 -10
  189. package/esm2020/lib/core/slots/router.directive.mjs +29 -27
  190. package/esm2020/lib/core/slots/router.service.mjs +7 -7
  191. package/esm2020/lib/core/slots/slots.component.mjs +296 -41
  192. package/esm2020/lib/core/tagging/documents.component.mjs +33 -7
  193. package/esm2020/lib/core/tagging/edit-input.component.mjs +141 -38
  194. package/esm2020/lib/core/tagging/emoji.component.mjs +15 -12
  195. package/esm2020/lib/core/tagging/tagging-item.directive.mjs +31 -23
  196. package/esm2020/lib/core/tagging/tagging.component-base.mjs +14 -9
  197. package/esm2020/lib/core/tagging/tagging.directive.mjs +23 -21
  198. package/esm2020/lib/core/tagging/tagging.pipe.mjs +7 -7
  199. package/esm2020/lib/core/tagging/users.component.mjs +37 -7
  200. package/esm2020/lib/core/translate.service.mjs +7 -7
  201. package/esm2020/lib/core/translations.mjs +4 -1
  202. package/esm2020/lib/core/window-title.service.mjs +10 -10
  203. package/esm2020/lib/cube/accum/accum.component.mjs +41 -39
  204. package/esm2020/lib/cube/chart/chart.component.mjs +47 -45
  205. package/esm2020/lib/cube/cube-info.service.mjs +6 -6
  206. package/esm2020/lib/cube/cube-menu.component.mjs +70 -11
  207. package/esm2020/lib/cube/cube-view.component.mjs +34 -32
  208. package/esm2020/lib/cube/cube.service.mjs +10 -10
  209. package/esm2020/lib/cube/explore/document-item.component.mjs +15 -11
  210. package/esm2020/lib/cube/explore/explore-item.component.mjs +11 -11
  211. package/esm2020/lib/cube/explore/explore-items.component.mjs +167 -37
  212. package/esm2020/lib/cube/explore/explore.pane.component.mjs +65 -12
  213. package/esm2020/lib/cube/explore/item-resolver.service.mjs +11 -11
  214. package/esm2020/lib/cube/explore/item.pane.component.mjs +13 -9
  215. package/esm2020/lib/cube/filter/filter-tags.component.exp.mjs +59 -15
  216. package/esm2020/lib/cube/filter/filter.component.mjs +153 -17
  217. package/esm2020/lib/cube/grid/grid.component.mjs +33 -31
  218. package/esm2020/lib/cube/grid/spreadsheet.component.mjs +39 -37
  219. package/esm2020/lib/cube/matrix/matrix.base.mjs +6 -6
  220. package/esm2020/lib/cube/matrix/matrix.mobile.component.mjs +112 -10
  221. package/esm2020/lib/cube/matrix/matrix.pane.component.mjs +123 -12
  222. package/esm2020/lib/cube/matrix/popup.component.mjs +120 -16
  223. package/esm2020/lib/cube/matrix/table.component.mjs +178 -45
  224. package/esm2020/lib/cube/parallel/parallel.component.mjs +57 -28
  225. package/esm2020/lib/cube/pivot/pivot.component.mjs +43 -40
  226. package/esm2020/lib/cube/sum/sum.component.mjs +238 -32
  227. package/esm2020/lib/cube/view-base.mjs +6 -6
  228. package/esm2020/lib/cube/view.mobile.component.mjs +177 -19
  229. package/esm2020/lib/cube/view.pane.component.mjs +109 -15
  230. package/esm2020/lib/dashboard/actions/actions.widget.mjs +28 -21
  231. package/esm2020/lib/dashboard/cube/accum-cube.widget.mjs +17 -15
  232. package/esm2020/lib/dashboard/cube/compare.widget.mjs +25 -18
  233. package/esm2020/lib/dashboard/cube/cube-analysis.base.mjs +6 -6
  234. package/esm2020/lib/dashboard/cube/cube-analysis.widget.mjs +10 -10
  235. package/esm2020/lib/dashboard/cube/cube-chart.widget.mjs +17 -15
  236. package/esm2020/lib/dashboard/cube/documents.widget.mjs +114 -19
  237. package/esm2020/lib/dashboard/cube/filter/filter.component.mjs +13 -7
  238. package/esm2020/lib/dashboard/dashboard.component.mjs +90 -12
  239. package/esm2020/lib/dashboard/dashboard.pane.component.mjs +9 -7
  240. package/esm2020/lib/dashboard/recents/recents.widget.mjs +164 -19
  241. package/esm2020/lib/dashboard/score/activity.widget.mjs +18 -13
  242. package/esm2020/lib/dashboard/score/compare-groups.widget.mjs +25 -18
  243. package/esm2020/lib/dashboard/score/peers-performance.widget.mjs +26 -19
  244. package/esm2020/lib/dashboard/score/pending-results.widget.mjs +143 -19
  245. package/esm2020/lib/dashboard/score/personal-score.widget.mjs +23 -18
  246. package/esm2020/lib/dashboard/widget-item.component.mjs +17 -15
  247. package/esm2020/lib/desktop.module.mjs +58 -57
  248. package/esm2020/lib/home/about/about.dialog.mjs +97 -7
  249. package/esm2020/lib/home/home-base.component.mjs +6 -6
  250. package/esm2020/lib/home/home.desktop.component.mjs +336 -16
  251. package/esm2020/lib/home/home.mobile.component.mjs +310 -16
  252. package/esm2020/lib/home/notifications/notifications.component.mjs +78 -7
  253. package/esm2020/lib/home/options/options.component.mjs +171 -7
  254. package/esm2020/lib/home/outofoffice/outofoffice.component.mjs +40 -10
  255. package/esm2020/lib/home/search.service.mjs +6 -6
  256. package/esm2020/lib/home/sign/sign.component.mjs +32 -7
  257. package/esm2020/lib/home/tools.component.mjs +87 -13
  258. package/esm2020/lib/impersonate/impersonate.component.mjs +61 -7
  259. package/esm2020/lib/mobile.module.mjs +34 -33
  260. package/esm2020/lib/modules/chart.module.mjs +22 -21
  261. package/esm2020/lib/modules/circular-gauge.module.mjs +13 -12
  262. package/esm2020/lib/modules/datepicker.intl.mjs +6 -6
  263. package/esm2020/lib/modules/dayjs.module.mjs +11 -11
  264. package/esm2020/lib/modules/diagram.module.mjs +24 -23
  265. package/esm2020/lib/modules/gantt.module.mjs +13 -12
  266. package/esm2020/lib/modules/grid.module.mjs +16 -15
  267. package/esm2020/lib/modules/material.module.mjs +87 -86
  268. package/esm2020/lib/modules/paginator.intl.mjs +6 -6
  269. package/esm2020/lib/modules/pivot.module.mjs +17 -16
  270. package/esm2020/lib/modules/schedule.module.mjs +15 -14
  271. package/esm2020/lib/modules/spreadsheet.module.mjs +21 -20
  272. package/esm2020/lib/modules/stepper.intl.mjs +6 -6
  273. package/esm2020/lib/modules/texteditor.module.mjs +19 -18
  274. package/esm2020/lib/notifications/filter.component.mjs +22 -7
  275. package/esm2020/lib/notifications/notifications-table.component.mjs +214 -10
  276. package/esm2020/lib/notifications/notifications.mobile.component.mjs +11 -9
  277. package/esm2020/lib/notifications/notifications.pane.component.mjs +14 -12
  278. package/esm2020/lib/notifications/notifications.service.mjs +6 -6
  279. package/esm2020/lib/notifications/types/commented.notification.mjs +42 -15
  280. package/esm2020/lib/notifications/types/cube-anomaly.notification.mjs +25 -15
  281. package/esm2020/lib/notifications/types/escalated.notification.mjs +24 -12
  282. package/esm2020/lib/notifications/types/liked.notification.mjs +42 -15
  283. package/esm2020/lib/notifications/types/long-running-task.notification.mjs +17 -13
  284. package/esm2020/lib/notifications/types/notification-base.mjs +11 -9
  285. package/esm2020/lib/notifications/types/nudge.notification.mjs +18 -12
  286. package/esm2020/lib/notifications/types/state-changed.notification.mjs +18 -10
  287. package/esm2020/lib/notifications/types/tagged.notification.mjs +26 -14
  288. package/esm2020/lib/notifications/types/text.notification.mjs +14 -10
  289. package/esm2020/lib/notifications/types/upcoming-event.notification.mjs +24 -15
  290. package/esm2020/lib/options/options.component.mjs +350 -25
  291. package/esm2020/lib/options/options.service.mjs +6 -6
  292. package/esm2020/lib/reports/arguments-component.mjs +20 -20
  293. package/esm2020/lib/reports/cube/documents.component.mjs +9 -9
  294. package/esm2020/lib/reports/cube/grid-documents.component.mjs +77 -10
  295. package/esm2020/lib/reports/cube/table-documents.component.mjs +175 -13
  296. package/esm2020/lib/reports/cube/usage-args.component.mjs +13 -7
  297. package/esm2020/lib/reports/cube/usage-base.mjs +6 -6
  298. package/esm2020/lib/reports/cube/usage-chart.component.mjs +15 -13
  299. package/esm2020/lib/reports/cube/usage-pivot.component.mjs +21 -14
  300. package/esm2020/lib/reports/cube/usage.component.mjs +9 -9
  301. package/esm2020/lib/reports/report-viewer.component.mjs +36 -20
  302. package/esm2020/lib/reports/report.mobile.component.mjs +105 -13
  303. package/esm2020/lib/reports/report.pane.component.mjs +92 -15
  304. package/esm2020/lib/reports/reports-menu.component.mjs +40 -11
  305. package/esm2020/lib/reports/substitution/substitution.component.mjs +157 -10
  306. package/esm2020/lib/reports/table/table-view.component.mjs +74 -16
  307. package/esm2020/lib/reports/tasks/tasks.component.mjs +38 -10
  308. package/esm2020/lib/scheduler/schedule.component.mjs +110 -14
  309. package/esm2020/lib/scheduler/scheduler.mobile.component.mjs +15 -9
  310. package/esm2020/lib/scheduler/scheduler.pane.component.mjs +19 -12
  311. package/esm2020/lib/shared.module.mjs +197 -196
  312. package/esm2020/lib/system.module.mjs +64 -62
  313. package/esm2020/lib/views/cube/chart.component.mjs +45 -7
  314. package/esm2020/lib/views/cube/cube-base.mjs +6 -6
  315. package/esm2020/lib/views/cube/explore.component.mjs +128 -7
  316. package/esm2020/lib/views/cube/matrix.component.mjs +164 -10
  317. package/esm2020/lib/views/cube/parallel.component.mjs +20 -7
  318. package/esm2020/lib/views/cube/pivot.component.mjs +20 -7
  319. package/esm2020/lib/views/cube/sum.component.mjs +116 -7
  320. package/esm2020/lib/views/cube/view.component.mjs +137 -10
  321. package/esm2020/lib/views/timeline/timeline.component.exp.mjs +14 -12
  322. package/esm2020/lib/views/view-item.component.mjs +20 -18
  323. package/esm2020/lib/views/views.component.mjs +31 -12
  324. package/esm2020/lib/views/views.mobile.component.mjs +11 -7
  325. package/esm2020/lib/views/views.pane.component.mjs +19 -10
  326. package/fesm2015/bizdoc-core.mjs +25737 -2457
  327. package/fesm2015/bizdoc-core.mjs.map +1 -1
  328. package/fesm2020/bizdoc-core.mjs +24051 -5129
  329. package/fesm2020/bizdoc-core.mjs.map +1 -1
  330. package/index.d.ts +1 -0
  331. package/lib/admin/admin-dismiss.service.d.ts +1 -0
  332. package/lib/admin/admin-dismiss.service.d.ts.map +1 -0
  333. package/lib/admin/admin-menu.component.d.ts +1 -0
  334. package/lib/admin/admin-menu.component.d.ts.map +1 -0
  335. package/lib/admin/configuration-designer/cube-axes-filter.component.d.ts +36 -0
  336. package/lib/admin/configuration-designer/cube-axes-filter.component.d.ts.map +1 -0
  337. package/lib/admin/configuration-designer/designer-element.component.d.ts +6 -2
  338. package/lib/admin/configuration-designer/designer-element.component.d.ts.map +1 -0
  339. package/lib/admin/configuration-designer/designer.base.d.ts +25 -3
  340. package/lib/admin/configuration-designer/designer.base.d.ts.map +1 -0
  341. package/lib/admin/configuration-designer/designer.component.d.ts +1 -0
  342. package/lib/admin/configuration-designer/designer.component.d.ts.map +1 -0
  343. package/lib/admin/configuration-designer/elements/action.component.d.ts +16 -1
  344. package/lib/admin/configuration-designer/elements/action.component.d.ts.map +1 -0
  345. package/lib/admin/configuration-designer/elements/analysis-view.component.d.ts +1 -0
  346. package/lib/admin/configuration-designer/elements/analysis-view.component.d.ts.map +1 -0
  347. package/lib/admin/configuration-designer/elements/analysis-widget.component.d.ts +1 -0
  348. package/lib/admin/configuration-designer/elements/analysis-widget.component.d.ts.map +1 -0
  349. package/lib/admin/configuration-designer/elements/anomaly-rule.component.d.ts +1 -0
  350. package/lib/admin/configuration-designer/elements/anomaly-rule.component.d.ts.map +1 -0
  351. package/lib/admin/configuration-designer/elements/box-form.component.d.ts +1 -0
  352. package/lib/admin/configuration-designer/elements/box-form.component.d.ts.map +1 -0
  353. package/lib/admin/configuration-designer/elements/configuration-datasource.component.d.ts +1 -0
  354. package/lib/admin/configuration-designer/elements/configuration-datasource.component.d.ts.map +1 -0
  355. package/lib/admin/configuration-designer/elements/cube-index-utility.component.d.ts +1 -0
  356. package/lib/admin/configuration-designer/elements/cube-index-utility.component.d.ts.map +1 -0
  357. package/lib/admin/configuration-designer/elements/cube-view.component.d.ts +1 -0
  358. package/lib/admin/configuration-designer/elements/cube-view.component.d.ts.map +1 -0
  359. package/lib/admin/configuration-designer/elements/cube.component.d.ts +1 -0
  360. package/lib/admin/configuration-designer/elements/cube.component.d.ts.map +1 -0
  361. package/lib/admin/configuration-designer/elements/documents-report.component.d.ts +1 -0
  362. package/lib/admin/configuration-designer/elements/documents-report.component.d.ts.map +1 -0
  363. package/lib/admin/configuration-designer/elements/documents-widget.component.d.ts +1 -0
  364. package/lib/admin/configuration-designer/elements/documents-widget.component.d.ts.map +1 -0
  365. package/lib/admin/configuration-designer/elements/explore-view.component.d.ts +1 -0
  366. package/lib/admin/configuration-designer/elements/explore-view.component.d.ts.map +1 -0
  367. package/lib/admin/configuration-designer/elements/folder.component.d.ts +13 -1
  368. package/lib/admin/configuration-designer/elements/folder.component.d.ts.map +1 -0
  369. package/lib/admin/configuration-designer/elements/form.component.d.ts +1 -0
  370. package/lib/admin/configuration-designer/elements/form.component.d.ts.map +1 -0
  371. package/lib/admin/configuration-designer/elements/guide.component.d.ts +1 -0
  372. package/lib/admin/configuration-designer/elements/guide.component.d.ts.map +1 -0
  373. package/lib/admin/configuration-designer/elements/matrix-view.component.d.ts +1 -0
  374. package/lib/admin/configuration-designer/elements/matrix-view.component.d.ts.map +1 -0
  375. package/lib/admin/configuration-designer/elements/parallel-view.component.d.ts +1 -0
  376. package/lib/admin/configuration-designer/elements/parallel-view.component.d.ts.map +1 -0
  377. package/lib/admin/configuration-designer/elements/performance-widget.component.d.ts +1 -0
  378. package/lib/admin/configuration-designer/elements/performance-widget.component.d.ts.map +1 -0
  379. package/lib/admin/configuration-designer/elements/pivot-view.component.d.ts +1 -0
  380. package/lib/admin/configuration-designer/elements/pivot-view.component.d.ts.map +1 -0
  381. package/lib/admin/configuration-designer/elements/report.component.d.ts +1 -0
  382. package/lib/admin/configuration-designer/elements/report.component.d.ts.map +1 -0
  383. package/lib/admin/configuration-designer/elements/return-to-role-action.component.d.ts +1 -0
  384. package/lib/admin/configuration-designer/elements/return-to-role-action.component.d.ts.map +1 -0
  385. package/lib/admin/configuration-designer/elements/role.component.d.ts +3 -0
  386. package/lib/admin/configuration-designer/elements/role.component.d.ts.map +1 -0
  387. package/lib/admin/configuration-designer/elements/rule.component.d.ts +1 -0
  388. package/lib/admin/configuration-designer/elements/rule.component.d.ts.map +1 -0
  389. package/lib/admin/configuration-designer/elements/state.component.d.ts +5 -0
  390. package/lib/admin/configuration-designer/elements/state.component.d.ts.map +1 -0
  391. package/lib/admin/configuration-designer/elements/sum-view.component.d.ts +1 -0
  392. package/lib/admin/configuration-designer/elements/sum-view.component.d.ts.map +1 -0
  393. package/lib/admin/configuration-designer/elements/tasks-report.component.d.ts +1 -0
  394. package/lib/admin/configuration-designer/elements/tasks-report.component.d.ts.map +1 -0
  395. package/lib/admin/configuration-designer/elements/type.component.d.ts +1 -0
  396. package/lib/admin/configuration-designer/elements/type.component.d.ts.map +1 -0
  397. package/lib/admin/configuration-designer/elements/usage-report.component.d.ts +1 -0
  398. package/lib/admin/configuration-designer/elements/usage-report.component.d.ts.map +1 -0
  399. package/lib/admin/configuration-designer/elements/utility.component.d.ts +1 -0
  400. package/lib/admin/configuration-designer/elements/utility.component.d.ts.map +1 -0
  401. package/lib/admin/configuration-designer/elements/view.component.d.ts +1 -0
  402. package/lib/admin/configuration-designer/elements/view.component.d.ts.map +1 -0
  403. package/lib/admin/configuration-designer/elements/widget.component.d.ts +1 -0
  404. package/lib/admin/configuration-designer/elements/widget.component.d.ts.map +1 -0
  405. package/lib/admin/configuration-designer/icon-picker.component.d.ts +1 -0
  406. package/lib/admin/configuration-designer/icon-picker.component.d.ts.map +1 -0
  407. package/lib/admin/core/ace.input.d.ts +1 -0
  408. package/lib/admin/core/ace.input.d.ts.map +1 -0
  409. package/lib/admin/core/color-picker.input.d.ts +1 -0
  410. package/lib/admin/core/color-picker.input.d.ts.map +1 -0
  411. package/lib/admin/core/search.input.d.ts +1 -0
  412. package/lib/admin/core/search.input.d.ts.map +1 -0
  413. package/lib/admin/diff/configuration-diff.component.d.ts +1 -0
  414. package/lib/admin/diff/configuration-diff.component.d.ts.map +1 -0
  415. package/lib/admin/document-trace/document-trace.component.d.ts +1 -0
  416. package/lib/admin/document-trace/document-trace.component.d.ts.map +1 -0
  417. package/lib/admin/document-trace/reassign.dialog.d.ts +1 -0
  418. package/lib/admin/document-trace/reassign.dialog.d.ts.map +1 -0
  419. package/lib/admin/document-trace/timeline.d.ts +1 -0
  420. package/lib/admin/document-trace/timeline.d.ts.map +1 -0
  421. package/lib/admin/document-trace/trace-element.component.d.ts +1 -0
  422. package/lib/admin/document-trace/trace-element.component.d.ts.map +1 -0
  423. package/lib/admin/form/designer/designer.component.d.ts +1 -0
  424. package/lib/admin/form/designer/designer.component.d.ts.map +1 -0
  425. package/lib/admin/form/form.resolve.service.d.ts +1 -0
  426. package/lib/admin/form/form.resolve.service.d.ts.map +1 -0
  427. package/lib/admin/form/workflow/node-ref.d.ts +1 -0
  428. package/lib/admin/form/workflow/node-ref.d.ts.map +1 -0
  429. package/lib/admin/form/workflow/node.component.d.ts +1 -0
  430. package/lib/admin/form/workflow/node.component.d.ts.map +1 -0
  431. package/lib/admin/form/workflow/role-node.component.d.ts +1 -0
  432. package/lib/admin/form/workflow/role-node.component.d.ts.map +1 -0
  433. package/lib/admin/form/workflow/workflow.component.d.ts +1 -0
  434. package/lib/admin/form/workflow/workflow.component.d.ts.map +1 -0
  435. package/lib/admin/indices/manage-cube-index.component.d.ts +1 -0
  436. package/lib/admin/indices/manage-cube-index.component.d.ts.map +1 -0
  437. package/lib/admin/patterns/patterns.component.d.ts +1 -0
  438. package/lib/admin/patterns/patterns.component.d.ts.map +1 -0
  439. package/lib/admin/permissions/permissions.component.d.ts +1 -0
  440. package/lib/admin/permissions/permissions.component.d.ts.map +1 -0
  441. package/lib/admin/positions/positions-popup.component.d.ts +1 -0
  442. package/lib/admin/positions/positions-popup.component.d.ts.map +1 -0
  443. package/lib/admin/positions/positions.component.d.ts +1 -0
  444. package/lib/admin/positions/positions.component.d.ts.map +1 -0
  445. package/lib/admin/profiler/outofoffice.component.d.ts +1 -0
  446. package/lib/admin/profiler/outofoffice.component.d.ts.map +1 -0
  447. package/lib/admin/profiler/profiler.component.d.ts +1 -0
  448. package/lib/admin/profiler/profiler.component.d.ts.map +1 -0
  449. package/lib/admin/system.service.d.ts +1 -0
  450. package/lib/admin/system.service.d.ts.map +1 -0
  451. package/lib/admin/utility-ref.d.ts +1 -0
  452. package/lib/admin/utility-ref.d.ts.map +1 -0
  453. package/lib/admin/utility-wrapper.component.d.ts +1 -0
  454. package/lib/admin/utility-wrapper.component.d.ts.map +1 -0
  455. package/lib/admin/utility.pane.component.d.ts +1 -0
  456. package/lib/admin/utility.pane.component.d.ts.map +1 -0
  457. package/lib/app.component.d.ts +1 -0
  458. package/lib/app.component.d.ts.map +1 -0
  459. package/lib/bizdoc.module.d.ts +1 -0
  460. package/lib/bizdoc.module.d.ts.map +1 -0
  461. package/lib/browse/browse-items.component.d.ts +1 -0
  462. package/lib/browse/browse-items.component.d.ts.map +1 -0
  463. package/lib/browse/browse.mobile.component.d.ts +1 -0
  464. package/lib/browse/browse.mobile.component.d.ts.map +1 -0
  465. package/lib/browse/browse.pane.component.d.ts +1 -0
  466. package/lib/browse/browse.pane.component.d.ts.map +1 -0
  467. package/lib/browse/expanded-item/expanded-item.component.d.ts +1 -0
  468. package/lib/browse/expanded-item/expanded-item.component.d.ts.map +1 -0
  469. package/lib/browse/filter/filter.component.d.ts +1 -0
  470. package/lib/browse/filter/filter.component.d.ts.map +1 -0
  471. package/lib/browse/folders-menu.component.d.ts +1 -0
  472. package/lib/browse/folders-menu.component.d.ts.map +1 -0
  473. package/lib/chat/chat-info.d.ts +1 -0
  474. package/lib/chat/chat-info.d.ts.map +1 -0
  475. package/lib/chat/chat.mobile.component.d.ts +1 -0
  476. package/lib/chat/chat.mobile.component.d.ts.map +1 -0
  477. package/lib/chat/chat.service.d.ts +1 -0
  478. package/lib/chat/chat.service.d.ts.map +1 -0
  479. package/lib/chat/contacts.component.d.ts +1 -0
  480. package/lib/chat/contacts.component.d.ts.map +1 -0
  481. package/lib/chat/contacts.pane.component.d.ts +1 -0
  482. package/lib/chat/contacts.pane.component.d.ts.map +1 -0
  483. package/lib/chat/conversation.component.d.ts +1 -0
  484. package/lib/chat/conversation.component.d.ts.map +1 -0
  485. package/lib/chat/conversation.pane.component.d.ts +1 -0
  486. package/lib/chat/conversation.pane.component.d.ts.map +1 -0
  487. package/lib/compose/action/action-picker.component.d.ts +1 -0
  488. package/lib/compose/action/action-picker.component.d.ts.map +1 -0
  489. package/lib/compose/action/action-ref.d.ts +1 -0
  490. package/lib/compose/action/action-ref.d.ts.map +1 -0
  491. package/lib/compose/action/action.base.d.ts +1 -0
  492. package/lib/compose/action/action.base.d.ts.map +1 -0
  493. package/lib/compose/action/action.dialog.d.ts +1 -0
  494. package/lib/compose/action/action.dialog.d.ts.map +1 -0
  495. package/lib/compose/action/action.pane.dialog.exp.d.ts +1 -0
  496. package/lib/compose/action/action.pane.dialog.exp.d.ts.map +1 -0
  497. package/lib/compose/action/assign-action.component.d.ts +1 -0
  498. package/lib/compose/action/assign-action.component.d.ts.map +1 -0
  499. package/lib/compose/action/moveto-action.component.d.ts +1 -0
  500. package/lib/compose/action/moveto-action.component.d.ts.map +1 -0
  501. package/lib/compose/action/return-action.component.d.ts +1 -0
  502. package/lib/compose/action/return-action.component.d.ts.map +1 -0
  503. package/lib/compose/attachments/attachments.component.d.ts +1 -0
  504. package/lib/compose/attachments/attachments.component.d.ts.map +1 -0
  505. package/lib/compose/attachments/preview/attachment-preview.component.d.ts +1 -0
  506. package/lib/compose/attachments/preview/attachment-preview.component.d.ts.map +1 -0
  507. package/lib/compose/attachments/progress-button.directive.d.ts +1 -0
  508. package/lib/compose/attachments/progress-button.directive.d.ts.map +1 -0
  509. package/lib/compose/box/box.component.d.ts +1 -0
  510. package/lib/compose/box/box.component.d.ts.map +1 -0
  511. package/lib/compose/can-deactivate-changes.service.d.ts +1 -0
  512. package/lib/compose/can-deactivate-changes.service.d.ts.map +1 -0
  513. package/lib/compose/comments/comment.component.d.ts +1 -0
  514. package/lib/compose/comments/comment.component.d.ts.map +1 -0
  515. package/lib/compose/comments/comments.component.d.ts +1 -0
  516. package/lib/compose/comments/comments.component.d.ts.map +1 -0
  517. package/lib/compose/comments/comments.pane.component.d.ts +1 -0
  518. package/lib/compose/comments/comments.pane.component.d.ts.map +1 -0
  519. package/lib/compose/comments/edit-comment.component.d.ts +1 -0
  520. package/lib/compose/comments/edit-comment.component.d.ts.map +1 -0
  521. package/lib/compose/comments/edits.component.d.ts +1 -0
  522. package/lib/compose/comments/edits.component.d.ts.map +1 -0
  523. package/lib/compose/comments/quick-comment.component.exp.d.ts +1 -0
  524. package/lib/compose/comments/quick-comment.component.exp.d.ts.map +1 -0
  525. package/lib/compose/comments/votes.component.d.ts +1 -0
  526. package/lib/compose/comments/votes.component.d.ts.map +1 -0
  527. package/lib/compose/compose-resolve.service.d.ts +1 -0
  528. package/lib/compose/compose-resolve.service.d.ts.map +1 -0
  529. package/lib/compose/compose.mobile.component.d.ts +1 -0
  530. package/lib/compose/compose.mobile.component.d.ts.map +1 -0
  531. package/lib/compose/compose.pane.component.d.ts +1 -0
  532. package/lib/compose/compose.pane.component.d.ts.map +1 -0
  533. package/lib/compose/copy/copy.dialog.d.ts +1 -0
  534. package/lib/compose/copy/copy.dialog.d.ts.map +1 -0
  535. package/lib/compose/dismiss.service.d.ts +1 -0
  536. package/lib/compose/dismiss.service.d.ts.map +1 -0
  537. package/lib/compose/document-resolver.service.d.ts +1 -0
  538. package/lib/compose/document-resolver.service.d.ts.map +1 -0
  539. package/lib/compose/document.component.d.ts +1 -0
  540. package/lib/compose/document.component.d.ts.map +1 -0
  541. package/lib/compose/document.mobile.component.d.ts +1 -0
  542. package/lib/compose/document.mobile.component.d.ts.map +1 -0
  543. package/lib/compose/document.pane.component.d.ts +1 -0
  544. package/lib/compose/document.pane.component.d.ts.map +1 -0
  545. package/lib/compose/events/events.component.d.ts +1 -0
  546. package/lib/compose/events/events.component.d.ts.map +1 -0
  547. package/lib/compose/form-ref.d.ts +1 -0
  548. package/lib/compose/form-ref.d.ts.map +1 -0
  549. package/lib/compose/form-selector/form-selector.sheet.d.ts +1 -0
  550. package/lib/compose/form-selector/form-selector.sheet.d.ts.map +1 -0
  551. package/lib/compose/form.component.d.ts +1 -0
  552. package/lib/compose/form.component.d.ts.map +1 -0
  553. package/lib/compose/new-menu.component.d.ts +1 -0
  554. package/lib/compose/new-menu.component.d.ts.map +1 -0
  555. package/lib/compose/privilage.directive.d.ts +1 -0
  556. package/lib/compose/privilage.directive.d.ts.map +1 -0
  557. package/lib/compose/recipient-resolver.service.d.ts +1 -0
  558. package/lib/compose/recipient-resolver.service.d.ts.map +1 -0
  559. package/lib/compose/state.component.d.ts +1 -0
  560. package/lib/compose/state.component.d.ts.map +1 -0
  561. package/lib/compose/tag/tags.component.d.ts +1 -0
  562. package/lib/compose/tag/tags.component.d.ts.map +1 -0
  563. package/lib/compose/trace/flow.component.d.ts +1 -0
  564. package/lib/compose/trace/flow.component.d.ts.map +1 -0
  565. package/lib/compose/trace/people.component.d.ts +1 -0
  566. package/lib/compose/trace/people.component.d.ts.map +1 -0
  567. package/lib/compose/trace/trace.base.d.ts +1 -0
  568. package/lib/compose/trace/trace.base.d.ts.map +1 -0
  569. package/lib/compose/trace/trace.component.d.ts +1 -0
  570. package/lib/compose/trace/trace.component.d.ts.map +1 -0
  571. package/lib/compose/trace/trace.pane.component.d.ts +1 -0
  572. package/lib/compose/trace/trace.pane.component.d.ts.map +1 -0
  573. package/lib/compose/version-compare/version-compare.component.d.ts +1 -0
  574. package/lib/compose/version-compare/version-compare.component.d.ts.map +1 -0
  575. package/lib/compose/version-compare/version-compare.directive.d.ts +1 -0
  576. package/lib/compose/version-compare/version-compare.directive.d.ts.map +1 -0
  577. package/lib/compose/version-compare/version.pane.component.d.ts +1 -0
  578. package/lib/compose/version-compare/version.pane.component.d.ts.map +1 -0
  579. package/lib/core/NgComponentOutlet.d.ts +1 -0
  580. package/lib/core/NgComponentOutlet.d.ts.map +1 -0
  581. package/lib/core/account.service.d.ts +1 -0
  582. package/lib/core/account.service.d.ts.map +1 -0
  583. package/lib/core/animated-icon/animated-icon.directive.d.ts +1 -0
  584. package/lib/core/animated-icon/animated-icon.directive.d.ts.map +1 -0
  585. package/lib/core/animations.d.ts +1 -0
  586. package/lib/core/animations.d.ts.map +1 -0
  587. package/lib/core/authentication.d.ts +1 -0
  588. package/lib/core/authentication.d.ts.map +1 -0
  589. package/lib/core/avatar/avatar.component.d.ts +1 -0
  590. package/lib/core/avatar/avatar.component.d.ts.map +1 -0
  591. package/lib/core/base.d.ts +1 -0
  592. package/lib/core/base.d.ts.map +1 -0
  593. package/lib/core/colors.d.ts +1 -0
  594. package/lib/core/colors.d.ts.map +1 -0
  595. package/lib/core/component-factory-resolver.d.ts +1 -0
  596. package/lib/core/component-factory-resolver.d.ts.map +1 -0
  597. package/lib/core/configuration.d.ts +1 -0
  598. package/lib/core/configuration.d.ts.map +1 -0
  599. package/lib/core/controls/address.input.d.ts +1 -0
  600. package/lib/core/controls/address.input.d.ts.map +1 -0
  601. package/lib/core/controls/auto-complete.input.d.ts +1 -0
  602. package/lib/core/controls/auto-complete.input.d.ts.map +1 -0
  603. package/lib/core/controls/combination-picker-body.d.ts +1 -0
  604. package/lib/core/controls/combination-picker-body.d.ts.map +1 -0
  605. package/lib/core/controls/combination-picker.d.ts +1 -0
  606. package/lib/core/controls/combination-picker.d.ts.map +1 -0
  607. package/lib/core/controls/combination-pool.d.ts +1 -0
  608. package/lib/core/controls/combination-pool.d.ts.map +1 -0
  609. package/lib/core/controls/file.input.d.ts +1 -0
  610. package/lib/core/controls/file.input.d.ts.map +1 -0
  611. package/lib/core/controls/select.input.d.ts +1 -0
  612. package/lib/core/controls/select.input.d.ts.map +1 -0
  613. package/lib/core/controls/time-picker.d.ts +1 -0
  614. package/lib/core/controls/time-picker.d.ts.map +1 -0
  615. package/lib/core/controls/timespan.input.d.ts +1 -0
  616. package/lib/core/controls/timespan.input.d.ts.map +1 -0
  617. package/lib/core/datasource.service.d.ts +1 -0
  618. package/lib/core/datasource.service.d.ts.map +1 -0
  619. package/lib/core/decorators.d.ts +1 -0
  620. package/lib/core/decorators.d.ts.map +1 -0
  621. package/lib/core/firebase.service.d.ts +1 -0
  622. package/lib/core/firebase.service.d.ts.map +1 -0
  623. package/lib/core/functions.d.ts +1 -0
  624. package/lib/core/functions.d.ts.map +1 -0
  625. package/lib/core/guide/guide.component.d.ts +1 -0
  626. package/lib/core/guide/guide.component.d.ts.map +1 -0
  627. package/lib/core/guide/guide.service.d.ts +1 -0
  628. package/lib/core/guide/guide.service.d.ts.map +1 -0
  629. package/lib/core/guide/help-tip.component.d.ts +1 -0
  630. package/lib/core/guide/help-tip.component.d.ts.map +1 -0
  631. package/lib/core/http.interceptor.d.ts +1 -0
  632. package/lib/core/http.interceptor.d.ts.map +1 -0
  633. package/lib/core/hub.service.d.ts +1 -0
  634. package/lib/core/hub.service.d.ts.map +1 -0
  635. package/lib/core/identity/identity.component.d.ts +1 -0
  636. package/lib/core/identity/identity.component.d.ts.map +1 -0
  637. package/lib/core/info/attachment-info.service.d.ts +1 -0
  638. package/lib/core/info/attachment-info.service.d.ts.map +1 -0
  639. package/lib/core/info/document-info.service.d.ts +1 -0
  640. package/lib/core/info/document-info.service.d.ts.map +1 -0
  641. package/lib/core/info/location-info.component.d.ts +1 -0
  642. package/lib/core/info/location-info.component.d.ts.map +1 -0
  643. package/lib/core/info/map-info.d.ts +1 -0
  644. package/lib/core/info/map-info.d.ts.map +1 -0
  645. package/lib/core/layout/autocomplete.field.d.ts +1 -0
  646. package/lib/core/layout/autocomplete.field.d.ts.map +1 -0
  647. package/lib/core/layout/checkbox.d.ts +1 -0
  648. package/lib/core/layout/checkbox.d.ts.map +1 -0
  649. package/lib/core/layout/checkbox.field.d.ts +1 -0
  650. package/lib/core/layout/checkbox.field.d.ts.map +1 -0
  651. package/lib/core/layout/date-range.field.d.ts +1 -0
  652. package/lib/core/layout/date-range.field.d.ts.map +1 -0
  653. package/lib/core/layout/date.field.d.ts +1 -0
  654. package/lib/core/layout/date.field.d.ts.map +1 -0
  655. package/lib/core/layout/expression.field.d.ts +1 -0
  656. package/lib/core/layout/expression.field.d.ts.map +1 -0
  657. package/lib/core/layout/file.field.d.ts +1 -0
  658. package/lib/core/layout/file.field.d.ts.map +1 -0
  659. package/lib/core/layout/html.field.d.ts +1 -0
  660. package/lib/core/layout/html.field.d.ts.map +1 -0
  661. package/lib/core/layout/input.base.d.ts +1 -0
  662. package/lib/core/layout/input.base.d.ts.map +1 -0
  663. package/lib/core/layout/input.field.d.ts +1 -0
  664. package/lib/core/layout/input.field.d.ts.map +1 -0
  665. package/lib/core/layout/layout.component.d.ts +1 -0
  666. package/lib/core/layout/layout.component.d.ts.map +1 -0
  667. package/lib/core/layout/numeric.field.d.ts +1 -0
  668. package/lib/core/layout/numeric.field.d.ts.map +1 -0
  669. package/lib/core/layout/select.field.d.ts +1 -0
  670. package/lib/core/layout/select.field.d.ts.map +1 -0
  671. package/lib/core/layout/switch.field.d.ts +1 -0
  672. package/lib/core/layout/switch.field.d.ts.map +1 -0
  673. package/lib/core/layout/textarea.field.d.ts +1 -0
  674. package/lib/core/layout/textarea.field.d.ts.map +1 -0
  675. package/lib/core/layout/timespan.field.d.ts +1 -0
  676. package/lib/core/layout/timespan.field.d.ts.map +1 -0
  677. package/lib/core/lottie-animation.d.ts +1 -0
  678. package/lib/core/lottie-animation.d.ts.map +1 -0
  679. package/lib/core/mailbox.service.d.ts +1 -0
  680. package/lib/core/mailbox.service.d.ts.map +1 -0
  681. package/lib/core/models.d.ts +6 -4
  682. package/lib/core/models.d.ts.map +1 -0
  683. package/lib/core/none.component.d.ts +1 -0
  684. package/lib/core/none.component.d.ts.map +1 -0
  685. package/lib/core/pipes/action.pipe.d.ts +1 -0
  686. package/lib/core/pipes/action.pipe.d.ts.map +1 -0
  687. package/lib/core/pipes/calendar.pipe.d.ts +1 -0
  688. package/lib/core/pipes/calendar.pipe.d.ts.map +1 -0
  689. package/lib/core/pipes/date-format.pipe.d.ts +1 -0
  690. package/lib/core/pipes/date-format.pipe.d.ts.map +1 -0
  691. package/lib/core/pipes/daterange.pipe.d.ts +1 -0
  692. package/lib/core/pipes/daterange.pipe.d.ts.map +1 -0
  693. package/lib/core/pipes/difference.pipe.d.ts +1 -0
  694. package/lib/core/pipes/difference.pipe.d.ts.map +1 -0
  695. package/lib/core/pipes/duration-format.pipe.d.ts +1 -0
  696. package/lib/core/pipes/duration-format.pipe.d.ts.map +1 -0
  697. package/lib/core/pipes/duration.pipe.d.ts +1 -0
  698. package/lib/core/pipes/duration.pipe.d.ts.map +1 -0
  699. package/lib/core/pipes/form.pipe.d.ts +1 -0
  700. package/lib/core/pipes/form.pipe.d.ts.map +1 -0
  701. package/lib/core/pipes/join.pipe.d.ts +1 -0
  702. package/lib/core/pipes/join.pipe.d.ts.map +1 -0
  703. package/lib/core/pipes/role.pipe.d.ts +1 -0
  704. package/lib/core/pipes/role.pipe.d.ts.map +1 -0
  705. package/lib/core/pipes/sanitize-html.pipe.d.ts.map +1 -0
  706. package/lib/core/pipes/sort.pipe.d.ts +1 -0
  707. package/lib/core/pipes/sort.pipe.d.ts.map +1 -0
  708. package/lib/core/pipes/state.pipe.d.ts +1 -0
  709. package/lib/core/pipes/state.pipe.d.ts.map +1 -0
  710. package/lib/core/pipes/time-ago.pipe.d.ts +1 -0
  711. package/lib/core/pipes/time-ago.pipe.d.ts.map +1 -0
  712. package/lib/core/pipes/translate.pipe.d.ts.map +1 -0
  713. package/lib/core/pipes/type-value.pipe.d.ts +1 -0
  714. package/lib/core/pipes/type-value.pipe.d.ts.map +1 -0
  715. package/lib/core/pipes/user-name.pipe.d.ts +1 -0
  716. package/lib/core/pipes/user-name.pipe.d.ts.map +1 -0
  717. package/lib/core/popup/popup-ref.d.ts +1 -0
  718. package/lib/core/popup/popup-ref.d.ts.map +1 -0
  719. package/lib/core/popup/popup.component.d.ts +1 -0
  720. package/lib/core/popup/popup.component.d.ts.map +1 -0
  721. package/lib/core/popup/popup.service.d.ts +1 -0
  722. package/lib/core/popup/popup.service.d.ts.map +1 -0
  723. package/lib/core/popup/tooltip.directive.d.ts +1 -0
  724. package/lib/core/popup/tooltip.directive.d.ts.map +1 -0
  725. package/lib/core/prompt/ask/ask.dialog.d.ts +1 -0
  726. package/lib/core/prompt/ask/ask.dialog.d.ts.map +1 -0
  727. package/lib/core/prompt/mask/mask.component.d.ts +1 -0
  728. package/lib/core/prompt/mask/mask.component.d.ts.map +1 -0
  729. package/lib/core/prompt.service.d.ts +1 -0
  730. package/lib/core/prompt.service.d.ts.map +1 -0
  731. package/lib/core/router.d.ts +1 -0
  732. package/lib/core/router.d.ts.map +1 -0
  733. package/lib/core/save-changes.dialog.d.ts +1 -0
  734. package/lib/core/save-changes.dialog.d.ts.map +1 -0
  735. package/lib/core/session.service.d.ts +1 -0
  736. package/lib/core/session.service.d.ts.map +1 -0
  737. package/lib/core/slots/pane-ref.d.ts +1 -0
  738. package/lib/core/slots/pane-ref.d.ts.map +1 -0
  739. package/lib/core/slots/router.directive.d.ts +1 -0
  740. package/lib/core/slots/router.directive.d.ts.map +1 -0
  741. package/lib/core/slots/router.service.d.ts +1 -0
  742. package/lib/core/slots/router.service.d.ts.map +1 -0
  743. package/lib/core/slots/slots.component.d.ts +1 -0
  744. package/lib/core/slots/slots.component.d.ts.map +1 -0
  745. package/lib/core/tagging/documents.component.d.ts +1 -0
  746. package/lib/core/tagging/documents.component.d.ts.map +1 -0
  747. package/lib/core/tagging/edit-input.component.d.ts +1 -0
  748. package/lib/core/tagging/edit-input.component.d.ts.map +1 -0
  749. package/lib/core/tagging/emoji.component.d.ts +1 -0
  750. package/lib/core/tagging/emoji.component.d.ts.map +1 -0
  751. package/lib/core/tagging/tagging-item.directive.d.ts +1 -0
  752. package/lib/core/tagging/tagging-item.directive.d.ts.map +1 -0
  753. package/lib/core/tagging/tagging.component-base.d.ts +1 -0
  754. package/lib/core/tagging/tagging.component-base.d.ts.map +1 -0
  755. package/lib/core/tagging/tagging.directive.d.ts +1 -0
  756. package/lib/core/tagging/tagging.directive.d.ts.map +1 -0
  757. package/lib/core/tagging/tagging.pipe.d.ts +1 -0
  758. package/lib/core/tagging/tagging.pipe.d.ts.map +1 -0
  759. package/lib/core/tagging/users.component.d.ts +1 -0
  760. package/lib/core/tagging/users.component.d.ts.map +1 -0
  761. package/lib/core/translate.service.d.ts +1 -0
  762. package/lib/core/translate.service.d.ts.map +1 -0
  763. package/lib/core/translations.d.ts +4 -0
  764. package/lib/core/translations.d.ts.map +1 -0
  765. package/lib/core/window-title.service.d.ts +1 -0
  766. package/lib/core/window-title.service.d.ts.map +1 -0
  767. package/lib/cube/accum/accum.component.d.ts +1 -0
  768. package/lib/cube/accum/accum.component.d.ts.map +1 -0
  769. package/lib/cube/chart/chart.component.d.ts +1 -0
  770. package/lib/cube/chart/chart.component.d.ts.map +1 -0
  771. package/lib/cube/cube-info.service.d.ts +1 -0
  772. package/lib/cube/cube-info.service.d.ts.map +1 -0
  773. package/lib/cube/cube-menu.component.d.ts +1 -0
  774. package/lib/cube/cube-menu.component.d.ts.map +1 -0
  775. package/lib/cube/cube-view.component.d.ts +1 -0
  776. package/lib/cube/cube-view.component.d.ts.map +1 -0
  777. package/lib/cube/cube.service.d.ts +1 -0
  778. package/lib/cube/cube.service.d.ts.map +1 -0
  779. package/lib/cube/declarations.d.ts +1 -0
  780. package/lib/cube/declarations.d.ts.map +1 -0
  781. package/lib/cube/explore/document-item.component.d.ts +1 -0
  782. package/lib/cube/explore/document-item.component.d.ts.map +1 -0
  783. package/lib/cube/explore/explore-item.component.d.ts +1 -0
  784. package/lib/cube/explore/explore-item.component.d.ts.map +1 -0
  785. package/lib/cube/explore/explore-items.component.d.ts +1 -0
  786. package/lib/cube/explore/explore-items.component.d.ts.map +1 -0
  787. package/lib/cube/explore/explore.pane.component.d.ts +1 -0
  788. package/lib/cube/explore/explore.pane.component.d.ts.map +1 -0
  789. package/lib/cube/explore/item-resolver.service.d.ts +1 -0
  790. package/lib/cube/explore/item-resolver.service.d.ts.map +1 -0
  791. package/lib/cube/explore/item.pane.component.d.ts +1 -0
  792. package/lib/cube/explore/item.pane.component.d.ts.map +1 -0
  793. package/lib/cube/filter/filter-tags.component.exp.d.ts +1 -0
  794. package/lib/cube/filter/filter-tags.component.exp.d.ts.map +1 -0
  795. package/lib/cube/filter/filter.component.d.ts +1 -0
  796. package/lib/cube/filter/filter.component.d.ts.map +1 -0
  797. package/lib/cube/grid/grid.component.d.ts +1 -0
  798. package/lib/cube/grid/grid.component.d.ts.map +1 -0
  799. package/lib/cube/grid/spreadsheet.component.d.ts +1 -0
  800. package/lib/cube/grid/spreadsheet.component.d.ts.map +1 -0
  801. package/lib/cube/matrix/matrix.base.d.ts +1 -0
  802. package/lib/cube/matrix/matrix.base.d.ts.map +1 -0
  803. package/lib/cube/matrix/matrix.mobile.component.d.ts +1 -0
  804. package/lib/cube/matrix/matrix.mobile.component.d.ts.map +1 -0
  805. package/lib/cube/matrix/matrix.pane.component.d.ts +1 -0
  806. package/lib/cube/matrix/matrix.pane.component.d.ts.map +1 -0
  807. package/lib/cube/matrix/popup.component.d.ts +1 -0
  808. package/lib/cube/matrix/popup.component.d.ts.map +1 -0
  809. package/lib/cube/matrix/table.component.d.ts +1 -0
  810. package/lib/cube/matrix/table.component.d.ts.map +1 -0
  811. package/lib/cube/parallel/item.d.ts +1 -0
  812. package/lib/cube/parallel/item.d.ts.map +1 -0
  813. package/lib/cube/parallel/parallel.component.d.ts +1 -0
  814. package/lib/cube/parallel/parallel.component.d.ts.map +1 -0
  815. package/lib/cube/pivot/pivot.component.d.ts +1 -0
  816. package/lib/cube/pivot/pivot.component.d.ts.map +1 -0
  817. package/lib/cube/sum/sum.component.d.ts +1 -0
  818. package/lib/cube/sum/sum.component.d.ts.map +1 -0
  819. package/lib/cube/view-base.d.ts +1 -0
  820. package/lib/cube/view-base.d.ts.map +1 -0
  821. package/lib/cube/view.mobile.component.d.ts +1 -0
  822. package/lib/cube/view.mobile.component.d.ts.map +1 -0
  823. package/lib/cube/view.pane.component.d.ts +1 -0
  824. package/lib/cube/view.pane.component.d.ts.map +1 -0
  825. package/lib/dashboard/actions/actions.widget.d.ts +1 -0
  826. package/lib/dashboard/actions/actions.widget.d.ts.map +1 -0
  827. package/lib/dashboard/cube/accum-cube.widget.d.ts +1 -0
  828. package/lib/dashboard/cube/accum-cube.widget.d.ts.map +1 -0
  829. package/lib/dashboard/cube/compare.widget.d.ts +1 -0
  830. package/lib/dashboard/cube/compare.widget.d.ts.map +1 -0
  831. package/lib/dashboard/cube/cube-analysis.base.d.ts +1 -0
  832. package/lib/dashboard/cube/cube-analysis.base.d.ts.map +1 -0
  833. package/lib/dashboard/cube/cube-analysis.widget.d.ts +1 -0
  834. package/lib/dashboard/cube/cube-analysis.widget.d.ts.map +1 -0
  835. package/lib/dashboard/cube/cube-chart.widget.d.ts +1 -0
  836. package/lib/dashboard/cube/cube-chart.widget.d.ts.map +1 -0
  837. package/lib/dashboard/cube/documents.widget.d.ts +1 -0
  838. package/lib/dashboard/cube/documents.widget.d.ts.map +1 -0
  839. package/lib/dashboard/cube/filter/filter.component.d.ts +1 -0
  840. package/lib/dashboard/cube/filter/filter.component.d.ts.map +1 -0
  841. package/lib/dashboard/dashboard.component.d.ts +1 -0
  842. package/lib/dashboard/dashboard.component.d.ts.map +1 -0
  843. package/lib/dashboard/dashboard.pane.component.d.ts +1 -0
  844. package/lib/dashboard/dashboard.pane.component.d.ts.map +1 -0
  845. package/lib/dashboard/recents/recents.widget.d.ts +1 -0
  846. package/lib/dashboard/recents/recents.widget.d.ts.map +1 -0
  847. package/lib/dashboard/score/activity.widget.d.ts +1 -0
  848. package/lib/dashboard/score/activity.widget.d.ts.map +1 -0
  849. package/lib/dashboard/score/compare-groups.widget.d.ts +1 -0
  850. package/lib/dashboard/score/compare-groups.widget.d.ts.map +1 -0
  851. package/lib/dashboard/score/peers-performance.widget.d.ts +1 -0
  852. package/lib/dashboard/score/peers-performance.widget.d.ts.map +1 -0
  853. package/lib/dashboard/score/pending-results.widget.d.ts +1 -0
  854. package/lib/dashboard/score/pending-results.widget.d.ts.map +1 -0
  855. package/lib/dashboard/score/personal-score.widget.d.ts +1 -0
  856. package/lib/dashboard/score/personal-score.widget.d.ts.map +1 -0
  857. package/lib/dashboard/widget-item.component.d.ts +1 -0
  858. package/lib/dashboard/widget-item.component.d.ts.map +1 -0
  859. package/lib/dashboard/widget-ref.d.ts +1 -0
  860. package/lib/dashboard/widget-ref.d.ts.map +1 -0
  861. package/lib/desktop.module.d.ts +1 -0
  862. package/lib/desktop.module.d.ts.map +1 -0
  863. package/lib/home/about/about.dialog.d.ts +1 -0
  864. package/lib/home/about/about.dialog.d.ts.map +1 -0
  865. package/lib/home/home-base.component.d.ts +1 -0
  866. package/lib/home/home-base.component.d.ts.map +1 -0
  867. package/lib/home/home.desktop.component.d.ts +1 -0
  868. package/lib/home/home.desktop.component.d.ts.map +1 -0
  869. package/lib/home/home.mobile.component.d.ts +1 -0
  870. package/lib/home/home.mobile.component.d.ts.map +1 -0
  871. package/lib/home/notifications/notifications.component.d.ts +1 -0
  872. package/lib/home/notifications/notifications.component.d.ts.map +1 -0
  873. package/lib/home/options/options.component.d.ts +1 -0
  874. package/lib/home/options/options.component.d.ts.map +1 -0
  875. package/lib/home/outofoffice/outofoffice.component.d.ts +1 -0
  876. package/lib/home/outofoffice/outofoffice.component.d.ts.map +1 -0
  877. package/lib/home/search.service.d.ts +1 -0
  878. package/lib/home/search.service.d.ts.map +1 -0
  879. package/lib/home/sign/sign.component.d.ts +1 -0
  880. package/lib/home/sign/sign.component.d.ts.map +1 -0
  881. package/lib/home/tools.component.d.ts +1 -0
  882. package/lib/home/tools.component.d.ts.map +1 -0
  883. package/lib/impersonate/impersonate.component.d.ts +1 -0
  884. package/lib/impersonate/impersonate.component.d.ts.map +1 -0
  885. package/lib/mobile.module.d.ts +1 -0
  886. package/lib/mobile.module.d.ts.map +1 -0
  887. package/lib/modules/chart.module.d.ts +1 -0
  888. package/lib/modules/chart.module.d.ts.map +1 -0
  889. package/lib/modules/circular-gauge.module.d.ts +1 -0
  890. package/lib/modules/circular-gauge.module.d.ts.map +1 -0
  891. package/lib/modules/date.adapter.d.ts +1 -0
  892. package/lib/modules/date.adapter.d.ts.map +1 -0
  893. package/lib/modules/datepicker.intl.d.ts +1 -0
  894. package/lib/modules/datepicker.intl.d.ts.map +1 -0
  895. package/lib/modules/dayjs.module.d.ts +1 -0
  896. package/lib/modules/dayjs.module.d.ts.map +1 -0
  897. package/lib/modules/diagram.module.d.ts +1 -0
  898. package/lib/modules/diagram.module.d.ts.map +1 -0
  899. package/lib/modules/gantt.module.d.ts +1 -0
  900. package/lib/modules/gantt.module.d.ts.map +1 -0
  901. package/lib/modules/grid.module.d.ts +1 -0
  902. package/lib/modules/grid.module.d.ts.map +1 -0
  903. package/lib/modules/material.module.d.ts +1 -0
  904. package/lib/modules/material.module.d.ts.map +1 -0
  905. package/lib/modules/paginator.intl.d.ts +1 -0
  906. package/lib/modules/paginator.intl.d.ts.map +1 -0
  907. package/lib/modules/pivot.module.d.ts +1 -0
  908. package/lib/modules/pivot.module.d.ts.map +1 -0
  909. package/lib/modules/schedule.module.d.ts +1 -0
  910. package/lib/modules/schedule.module.d.ts.map +1 -0
  911. package/lib/modules/spreadsheet.module.d.ts +1 -0
  912. package/lib/modules/spreadsheet.module.d.ts.map +1 -0
  913. package/lib/modules/stepper.intl.d.ts +1 -0
  914. package/lib/modules/stepper.intl.d.ts.map +1 -0
  915. package/lib/modules/texteditor.module.d.ts +1 -0
  916. package/lib/modules/texteditor.module.d.ts.map +1 -0
  917. package/lib/notifications/filter.component.d.ts +1 -0
  918. package/lib/notifications/filter.component.d.ts.map +1 -0
  919. package/lib/notifications/notifications-table.component.d.ts +1 -0
  920. package/lib/notifications/notifications-table.component.d.ts.map +1 -0
  921. package/lib/notifications/notifications.component-base.d.ts +1 -0
  922. package/lib/notifications/notifications.component-base.d.ts.map +1 -0
  923. package/lib/notifications/notifications.mobile.component.d.ts +1 -0
  924. package/lib/notifications/notifications.mobile.component.d.ts.map +1 -0
  925. package/lib/notifications/notifications.pane.component.d.ts +1 -0
  926. package/lib/notifications/notifications.pane.component.d.ts.map +1 -0
  927. package/lib/notifications/notifications.service.d.ts +1 -0
  928. package/lib/notifications/notifications.service.d.ts.map +1 -0
  929. package/lib/notifications/types/commented.notification.d.ts +1 -0
  930. package/lib/notifications/types/commented.notification.d.ts.map +1 -0
  931. package/lib/notifications/types/cube-anomaly.notification.d.ts +1 -0
  932. package/lib/notifications/types/cube-anomaly.notification.d.ts.map +1 -0
  933. package/lib/notifications/types/escalated.notification.d.ts +1 -0
  934. package/lib/notifications/types/escalated.notification.d.ts.map +1 -0
  935. package/lib/notifications/types/liked.notification.d.ts +1 -0
  936. package/lib/notifications/types/liked.notification.d.ts.map +1 -0
  937. package/lib/notifications/types/long-running-task.notification.d.ts +1 -0
  938. package/lib/notifications/types/long-running-task.notification.d.ts.map +1 -0
  939. package/lib/notifications/types/notification-base.d.ts +1 -0
  940. package/lib/notifications/types/notification-base.d.ts.map +1 -0
  941. package/lib/notifications/types/nudge.notification.d.ts +1 -0
  942. package/lib/notifications/types/nudge.notification.d.ts.map +1 -0
  943. package/lib/notifications/types/state-changed.notification.d.ts +1 -0
  944. package/lib/notifications/types/state-changed.notification.d.ts.map +1 -0
  945. package/lib/notifications/types/tagged.notification.d.ts +1 -0
  946. package/lib/notifications/types/tagged.notification.d.ts.map +1 -0
  947. package/lib/notifications/types/text.notification.d.ts +1 -0
  948. package/lib/notifications/types/text.notification.d.ts.map +1 -0
  949. package/lib/notifications/types/upcoming-event.notification.d.ts +1 -0
  950. package/lib/notifications/types/upcoming-event.notification.d.ts.map +1 -0
  951. package/lib/options/options.component.d.ts +1 -0
  952. package/lib/options/options.component.d.ts.map +1 -0
  953. package/lib/options/options.service.d.ts +1 -0
  954. package/lib/options/options.service.d.ts.map +1 -0
  955. package/lib/reports/arguments-component.d.ts +1 -0
  956. package/lib/reports/arguments-component.d.ts.map +1 -0
  957. package/lib/reports/cube/documents.component.d.ts +1 -0
  958. package/lib/reports/cube/documents.component.d.ts.map +1 -0
  959. package/lib/reports/cube/grid-documents.component.d.ts +1 -0
  960. package/lib/reports/cube/grid-documents.component.d.ts.map +1 -0
  961. package/lib/reports/cube/table-documents.component.d.ts +1 -0
  962. package/lib/reports/cube/table-documents.component.d.ts.map +1 -0
  963. package/lib/reports/cube/usage-args.component.d.ts +1 -0
  964. package/lib/reports/cube/usage-args.component.d.ts.map +1 -0
  965. package/lib/reports/cube/usage-base.d.ts +1 -0
  966. package/lib/reports/cube/usage-base.d.ts.map +1 -0
  967. package/lib/reports/cube/usage-chart.component.d.ts +1 -0
  968. package/lib/reports/cube/usage-chart.component.d.ts.map +1 -0
  969. package/lib/reports/cube/usage-pivot.component.d.ts +1 -0
  970. package/lib/reports/cube/usage-pivot.component.d.ts.map +1 -0
  971. package/lib/reports/cube/usage.component.d.ts +1 -0
  972. package/lib/reports/cube/usage.component.d.ts.map +1 -0
  973. package/lib/reports/report-ref.d.ts +1 -0
  974. package/lib/reports/report-ref.d.ts.map +1 -0
  975. package/lib/reports/report-viewer.component.d.ts +1 -0
  976. package/lib/reports/report-viewer.component.d.ts.map +1 -0
  977. package/lib/reports/report.mobile.component.d.ts +1 -0
  978. package/lib/reports/report.mobile.component.d.ts.map +1 -0
  979. package/lib/reports/report.pane.component.d.ts +1 -0
  980. package/lib/reports/report.pane.component.d.ts.map +1 -0
  981. package/lib/reports/reports-menu.component.d.ts +1 -0
  982. package/lib/reports/reports-menu.component.d.ts.map +1 -0
  983. package/lib/reports/substitution/substitution.component.d.ts +1 -0
  984. package/lib/reports/substitution/substitution.component.d.ts.map +1 -0
  985. package/lib/reports/table/table-view.component.d.ts +1 -0
  986. package/lib/reports/table/table-view.component.d.ts.map +1 -0
  987. package/lib/reports/tasks/tasks.component.d.ts +1 -0
  988. package/lib/reports/tasks/tasks.component.d.ts.map +1 -0
  989. package/lib/routes.desktop.d.ts +1 -0
  990. package/lib/routes.desktop.d.ts.map +1 -0
  991. package/lib/routes.mobile.d.ts +1 -0
  992. package/lib/routes.mobile.d.ts.map +1 -0
  993. package/lib/scheduler/schedule.component.d.ts +1 -0
  994. package/lib/scheduler/schedule.component.d.ts.map +1 -0
  995. package/lib/scheduler/scheduler.mobile.component.d.ts +1 -0
  996. package/lib/scheduler/scheduler.mobile.component.d.ts.map +1 -0
  997. package/lib/scheduler/scheduler.pane.component.d.ts +1 -0
  998. package/lib/scheduler/scheduler.pane.component.d.ts.map +1 -0
  999. package/lib/shared.module.d.ts +1 -0
  1000. package/lib/shared.module.d.ts.map +1 -0
  1001. package/lib/system.module.d.ts +51 -49
  1002. package/lib/system.module.d.ts.map +1 -0
  1003. package/lib/views/cube/chart.component.d.ts +1 -0
  1004. package/lib/views/cube/chart.component.d.ts.map +1 -0
  1005. package/lib/views/cube/cube-base.d.ts +1 -0
  1006. package/lib/views/cube/cube-base.d.ts.map +1 -0
  1007. package/lib/views/cube/explore.component.d.ts +1 -0
  1008. package/lib/views/cube/explore.component.d.ts.map +1 -0
  1009. package/lib/views/cube/matrix.component.d.ts +1 -0
  1010. package/lib/views/cube/matrix.component.d.ts.map +1 -0
  1011. package/lib/views/cube/parallel.component.d.ts +1 -0
  1012. package/lib/views/cube/parallel.component.d.ts.map +1 -0
  1013. package/lib/views/cube/pivot.component.d.ts +1 -0
  1014. package/lib/views/cube/pivot.component.d.ts.map +1 -0
  1015. package/lib/views/cube/sum.component.d.ts +4 -3
  1016. package/lib/views/cube/sum.component.d.ts.map +1 -0
  1017. package/lib/views/cube/view.component.d.ts +1 -0
  1018. package/lib/views/cube/view.component.d.ts.map +1 -0
  1019. package/lib/views/document-view-ref.d.ts +1 -0
  1020. package/lib/views/document-view-ref.d.ts.map +1 -0
  1021. package/lib/views/timeline/timeline.component.exp.d.ts +1 -0
  1022. package/lib/views/timeline/timeline.component.exp.d.ts.map +1 -0
  1023. package/lib/views/view-item.component.d.ts +1 -0
  1024. package/lib/views/view-item.component.d.ts.map +1 -0
  1025. package/lib/views/views.component.d.ts +1 -0
  1026. package/lib/views/views.component.d.ts.map +1 -0
  1027. package/lib/views/views.mobile.component.d.ts +1 -0
  1028. package/lib/views/views.mobile.component.d.ts.map +1 -0
  1029. package/lib/views/views.pane.component.d.ts +1 -0
  1030. package/lib/views/views.pane.component.d.ts.map +1 -0
  1031. package/package.json +1 -1
  1032. package/public-api.d.ts +1 -0
  1033. package/public-api.d.ts.map +1 -0
@@ -8,6 +8,33 @@ import * as i2 from "@angular/forms";
8
8
  import * as i3 from "@angular/material/form-field";
9
9
  import * as i4 from "@angular/cdk/text-field";
10
10
  import * as i5 from "@angular/material/input";
11
+ function TextareaField_mat_label_1_Template(rf, ctx) { if (rf & 1) {
12
+ i0.ɵɵelementStart(0, "mat-label");
13
+ i0.ɵɵtext(1);
14
+ i0.ɵɵelementEnd();
15
+ } if (rf & 2) {
16
+ const ctx_r0 = i0.ɵɵnextContext();
17
+ i0.ɵɵadvance(1);
18
+ i0.ɵɵtextInterpolate(ctx_r0.field.label || ctx_r0.field.name);
19
+ } }
20
+ function TextareaField_mat_hint_3_Template(rf, ctx) { if (rf & 1) {
21
+ i0.ɵɵelementStart(0, "mat-hint");
22
+ i0.ɵɵtext(1);
23
+ i0.ɵɵelementEnd();
24
+ } if (rf & 2) {
25
+ const ctx_r1 = i0.ɵɵnextContext();
26
+ i0.ɵɵadvance(1);
27
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.field.hint, "");
28
+ } }
29
+ function TextareaField_mat_hint_4_Template(rf, ctx) { if (rf & 1) {
30
+ i0.ɵɵelementStart(0, "mat-hint", 3);
31
+ i0.ɵɵtext(1);
32
+ i0.ɵɵelementEnd();
33
+ } if (rf & 2) {
34
+ const ctx_r2 = i0.ɵɵnextContext();
35
+ i0.ɵɵadvance(1);
36
+ i0.ɵɵtextInterpolate2("", (ctx_r2.control.value == null ? null : ctx_r2.control.value.length) || 0, " / ", ctx_r2.field.max, "");
37
+ } }
11
38
  /** layout component*/
12
39
  export class TextareaField extends FieldBase {
13
40
  constructor() {
@@ -16,27 +43,42 @@ export class TextareaField extends FieldBase {
16
43
  }
17
44
  focus() { this.input.focus(); }
18
45
  }
19
- TextareaField.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: TextareaField, deps: null, target: i0.ɵɵFactoryTarget.Component });
20
- TextareaField.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: TextareaField, selector: "ng-component", viewQueries: [{ propertyName: "input", first: true, predicate: MatInput, descendants: true }], usesInheritance: true, ngImport: i0, template: `<mat-form-field>
21
- <mat-label *ngIf="field.placeholder">{{field.label || field.name}}</mat-label>
22
- <textarea matInput [formControl]=control cdkTextareaAutosize [placeholder]="field.placeholder || field.label || field.name"
23
- [required]="field.required" [minlength]="field.min" [maxlength]="field.max" [pattern]="field.pattern"></textarea>
24
- <mat-hint *ngIf="field.hint"> {{ field.hint }}</mat-hint>
25
- <mat-hint *ngIf="field.max" align="end">{{control.value?.length || 0}} / {{field.max}}</mat-hint>
26
- </mat-form-field>`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "directive", type: i5.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"] }] });
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: TextareaField, decorators: [{
28
- type: Component,
29
- args: [{
30
- template: `<mat-form-field>
46
+ TextareaField.ɵfac = /*@__PURE__*/ function () { let ɵTextareaField_BaseFactory; return function TextareaField_Factory(t) { return (ɵTextareaField_BaseFactory || (ɵTextareaField_BaseFactory = i0.ɵɵgetInheritedFactory(TextareaField)))(t || TextareaField); }; }();
47
+ TextareaField.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TextareaField, selectors: [["ng-component"]], viewQuery: function TextareaField_Query(rf, ctx) { if (rf & 1) {
48
+ i0.ɵɵviewQuery(MatInput, 5);
49
+ } if (rf & 2) {
50
+ let _t;
51
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.input = _t.first);
52
+ } }, features: [i0.ɵɵInheritDefinitionFeature], decls: 5, vars: 9, consts: [[4, "ngIf"], ["matInput", "", "cdkTextareaAutosize", "", 3, "formControl", "placeholder", "required", "minlength", "maxlength", "pattern"], ["align", "end", 4, "ngIf"], ["align", "end"]], template: function TextareaField_Template(rf, ctx) { if (rf & 1) {
53
+ i0.ɵɵelementStart(0, "mat-form-field");
54
+ i0.ɵɵtemplate(1, TextareaField_mat_label_1_Template, 2, 1, "mat-label", 0);
55
+ i0.ɵɵelement(2, "textarea", 1);
56
+ i0.ɵɵtemplate(3, TextareaField_mat_hint_3_Template, 2, 1, "mat-hint", 0);
57
+ i0.ɵɵtemplate(4, TextareaField_mat_hint_4_Template, 2, 2, "mat-hint", 2);
58
+ i0.ɵɵelementEnd();
59
+ } if (rf & 2) {
60
+ i0.ɵɵadvance(1);
61
+ i0.ɵɵproperty("ngIf", ctx.field.placeholder);
62
+ i0.ɵɵadvance(1);
63
+ i0.ɵɵproperty("formControl", ctx.control)("placeholder", ctx.field.placeholder || ctx.field.label || ctx.field.name)("required", ctx.field.required)("minlength", ctx.field.min)("maxlength", ctx.field.max)("pattern", ctx.field.pattern);
64
+ i0.ɵɵadvance(1);
65
+ i0.ɵɵproperty("ngIf", ctx.field.hint);
66
+ i0.ɵɵadvance(1);
67
+ i0.ɵɵproperty("ngIf", ctx.field.max);
68
+ } }, dependencies: [i1.NgIf, i2.DefaultValueAccessor, i2.NgControlStatus, i2.RequiredValidator, i2.MinLengthValidator, i2.MaxLengthValidator, i2.PatternValidator, i2.FormControlDirective, i3.MatFormField, i3.MatHint, i3.MatLabel, i4.CdkTextareaAutosize, i5.MatInput], encapsulation: 2 });
69
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TextareaField, [{
70
+ type: Component,
71
+ args: [{
72
+ template: `<mat-form-field>
31
73
  <mat-label *ngIf="field.placeholder">{{field.label || field.name}}</mat-label>
32
74
  <textarea matInput [formControl]=control cdkTextareaAutosize [placeholder]="field.placeholder || field.label || field.name"
33
75
  [required]="field.required" [minlength]="field.min" [maxlength]="field.max" [pattern]="field.pattern"></textarea>
34
76
  <mat-hint *ngIf="field.hint"> {{ field.hint }}</mat-hint>
35
77
  <mat-hint *ngIf="field.max" align="end">{{control.value?.length || 0}} / {{field.max}}</mat-hint>
36
78
  </mat-form-field>`
37
- }]
38
- }], propDecorators: { input: [{
39
- type: ViewChild,
40
- args: [MatInput]
41
- }] } });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEuZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvcmUvbGF5b3V0L3RleHRhcmVhLmZpZWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7OztBQVl6QyxzQkFBc0I7QUFDdEIsTUFBTSxPQUFPLGFBQWMsU0FBUSxTQUFTO0lBVjVDOztRQWFhLFlBQU8sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO0tBQ3hDO0lBRkMsS0FBSyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDOzswR0FGcEIsYUFBYTs4RkFBYixhQUFhLDJGQUNiLFFBQVEsdUVBVlA7Ozs7OztrQkFNSTsyRkFHTCxhQUFhO2tCQVZ6QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRTs7Ozs7O2tCQU1JO2lCQUNqQjs4QkFHc0IsS0FBSztzQkFBekIsU0FBUzt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBGaWVsZEJhc2UgfSBmcm9tICcuL2lucHV0LmJhc2UnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgdGVtcGxhdGU6IGA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgPG1hdC1sYWJlbCAqbmdJZj1cImZpZWxkLnBsYWNlaG9sZGVyXCI+e3tmaWVsZC5sYWJlbCB8fCBmaWVsZC5uYW1lfX08L21hdC1sYWJlbD4gICAgICAgICAgXHJcbiAgPHRleHRhcmVhIG1hdElucHV0IFtmb3JtQ29udHJvbF09Y29udHJvbCBjZGtUZXh0YXJlYUF1dG9zaXplIFtwbGFjZWhvbGRlcl09XCJmaWVsZC5wbGFjZWhvbGRlciB8fCBmaWVsZC5sYWJlbCB8fCBmaWVsZC5uYW1lXCJcclxuICBbcmVxdWlyZWRdPVwiZmllbGQucmVxdWlyZWRcIiBbbWlubGVuZ3RoXT1cImZpZWxkLm1pblwiIFttYXhsZW5ndGhdPVwiZmllbGQubWF4XCIgW3BhdHRlcm5dPVwiZmllbGQucGF0dGVyblwiPjwvdGV4dGFyZWE+XHJcbiAgPG1hdC1oaW50ICpuZ0lmPVwiZmllbGQuaGludFwiPiB7eyBmaWVsZC5oaW50IH19PC9tYXQtaGludD5cclxuICA8bWF0LWhpbnQgKm5nSWY9XCJmaWVsZC5tYXhcIiBhbGlnbj1cImVuZFwiPnt7Y29udHJvbC52YWx1ZT8ubGVuZ3RoIHx8IDB9fSAvIHt7ZmllbGQubWF4fX08L21hdC1oaW50PlxyXG48L21hdC1mb3JtLWZpZWxkPmBcclxufSlcclxuLyoqIGxheW91dCBjb21wb25lbnQqL1xyXG5leHBvcnQgY2xhc3MgVGV4dGFyZWFGaWVsZCBleHRlbmRzIEZpZWxkQmFzZSB7XHJcbiAgQFZpZXdDaGlsZChNYXRJbnB1dCkgaW5wdXQ6IE1hdElucHV0O1xyXG4gIGZvY3VzKCkgeyB0aGlzLmlucHV0LmZvY3VzKCk7IH1cclxuICAgIHJlYWRvbmx5IGNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcclxufVxyXG4iXX0=
79
+ }]
80
+ }], null, { input: [{
81
+ type: ViewChild,
82
+ args: [MatInput]
83
+ }] }); })();
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEuZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvcmUvbGF5b3V0L3RleHRhcmVhLmZpZWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7SUFLdkMsaUNBQXFDO0lBQUEsWUFBNkI7SUFBQSxpQkFBWTs7O0lBQXpDLGVBQTZCO0lBQTdCLDZEQUE2Qjs7O0lBR2xFLGdDQUE2QjtJQUFDLFlBQWdCO0lBQUEsaUJBQVc7OztJQUEzQixlQUFnQjtJQUFoQixpREFBZ0I7OztJQUM5QyxtQ0FBd0M7SUFBQSxZQUE4QztJQUFBLGlCQUFXOzs7SUFBekQsZUFBOEM7SUFBOUMsZ0lBQThDOztBQUd4RixzQkFBc0I7QUFDdEIsTUFBTSxPQUFPLGFBQWMsU0FBUSxTQUFTO0lBVjVDOztRQWFhLFlBQU8sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO0tBQ3hDO0lBRkMsS0FBSyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDOzt5TkFGcEIsYUFBYSxTQUFiLGFBQWE7Z0VBQWIsYUFBYTt1QkFDYixRQUFROzs7OztRQVZOLHNDQUFnQjtRQUM3QiwwRUFBOEU7UUFDOUUsOEJBQ2lIO1FBQ2pILHdFQUF5RDtRQUN6RCx3RUFBaUc7UUFDbkcsaUJBQWlCOztRQUxILGVBQXVCO1FBQXZCLDRDQUF1QjtRQUNoQixlQUFxQjtRQUFyQix5Q0FBcUIsMkVBQUEsZ0NBQUEsNEJBQUEsNEJBQUEsOEJBQUE7UUFFN0IsZUFBZ0I7UUFBaEIscUNBQWdCO1FBQ2hCLGVBQWU7UUFBZixvQ0FBZTs7dUZBSWYsYUFBYTtjQVZ6QixTQUFTO2VBQUM7Z0JBQ1AsUUFBUSxFQUFFOzs7Ozs7a0JBTUk7YUFDakI7Z0JBR3NCLEtBQUs7a0JBQXpCLFNBQVM7bUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgRmllbGRCYXNlIH0gZnJvbSAnLi9pbnB1dC5iYXNlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHRlbXBsYXRlOiBgPG1hdC1mb3JtLWZpZWxkPlxyXG4gIDxtYXQtbGFiZWwgKm5nSWY9XCJmaWVsZC5wbGFjZWhvbGRlclwiPnt7ZmllbGQubGFiZWwgfHwgZmllbGQubmFtZX19PC9tYXQtbGFiZWw+ICAgICAgICAgIFxyXG4gIDx0ZXh0YXJlYSBtYXRJbnB1dCBbZm9ybUNvbnRyb2xdPWNvbnRyb2wgY2RrVGV4dGFyZWFBdXRvc2l6ZSBbcGxhY2Vob2xkZXJdPVwiZmllbGQucGxhY2Vob2xkZXIgfHwgZmllbGQubGFiZWwgfHwgZmllbGQubmFtZVwiXHJcbiAgW3JlcXVpcmVkXT1cImZpZWxkLnJlcXVpcmVkXCIgW21pbmxlbmd0aF09XCJmaWVsZC5taW5cIiBbbWF4bGVuZ3RoXT1cImZpZWxkLm1heFwiIFtwYXR0ZXJuXT1cImZpZWxkLnBhdHRlcm5cIj48L3RleHRhcmVhPlxyXG4gIDxtYXQtaGludCAqbmdJZj1cImZpZWxkLmhpbnRcIj4ge3sgZmllbGQuaGludCB9fTwvbWF0LWhpbnQ+XHJcbiAgPG1hdC1oaW50ICpuZ0lmPVwiZmllbGQubWF4XCIgYWxpZ249XCJlbmRcIj57e2NvbnRyb2wudmFsdWU/Lmxlbmd0aCB8fCAwfX0gLyB7e2ZpZWxkLm1heH19PC9tYXQtaGludD5cclxuPC9tYXQtZm9ybS1maWVsZD5gXHJcbn0pXHJcbi8qKiBsYXlvdXQgY29tcG9uZW50Ki9cclxuZXhwb3J0IGNsYXNzIFRleHRhcmVhRmllbGQgZXh0ZW5kcyBGaWVsZEJhc2Uge1xyXG4gIEBWaWV3Q2hpbGQoTWF0SW5wdXQpIGlucHV0OiBNYXRJbnB1dDtcclxuICBmb2N1cygpIHsgdGhpcy5pbnB1dC5mb2N1cygpOyB9XHJcbiAgICByZWFkb25seSBjb250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcbn1cclxuIl19
@@ -8,6 +8,35 @@ import * as i2 from "@angular/forms";
8
8
  import * as i3 from "@angular/material/form-field";
9
9
  import * as i4 from "@angular/material/icon";
10
10
  import * as i5 from "../controls/timespan.input";
11
+ function TimespanField_mat_label_1_Template(rf, ctx) { if (rf & 1) {
12
+ i0.ɵɵelementStart(0, "mat-label");
13
+ i0.ɵɵtext(1);
14
+ i0.ɵɵelementEnd();
15
+ } if (rf & 2) {
16
+ const ctx_r0 = i0.ɵɵnextContext();
17
+ i0.ɵɵadvance(1);
18
+ i0.ɵɵtextInterpolate(ctx_r0.field.label || ctx_r0.field.name);
19
+ } }
20
+ function TimespanField_mat_hint_5_Template(rf, ctx) { if (rf & 1) {
21
+ i0.ɵɵelementStart(0, "mat-hint");
22
+ i0.ɵɵtext(1);
23
+ i0.ɵɵelementEnd();
24
+ } if (rf & 2) {
25
+ const ctx_r1 = i0.ɵɵnextContext();
26
+ i0.ɵɵadvance(1);
27
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.field.hint, "");
28
+ } }
29
+ function TimespanField_mat_error_7_Template(rf, ctx) { if (rf & 1) {
30
+ i0.ɵɵelementStart(0, "mat-error");
31
+ i0.ɵɵtext(1);
32
+ i0.ɵɵelementEnd();
33
+ } if (rf & 2) {
34
+ const v_r3 = ctx.$implicit;
35
+ const ctx_r2 = i0.ɵɵnextContext();
36
+ i0.ɵɵstyleProp("display", ctx_r2.control.hasError(v_r3.type) ? "" : "none");
37
+ i0.ɵɵadvance(1);
38
+ i0.ɵɵtextInterpolate1(" ", v_r3.message, " ");
39
+ } }
11
40
  /** layout component*/
12
41
  export class TimespanField extends FieldBase {
13
42
  constructor() {
@@ -16,22 +45,38 @@ export class TimespanField extends FieldBase {
16
45
  }
17
46
  focus() { this.input.focus(); }
18
47
  }
19
- TimespanField.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: TimespanField, deps: null, target: i0.ɵɵFactoryTarget.Component });
20
- TimespanField.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: TimespanField, selector: "ng-component", viewQueries: [{ propertyName: "input", first: true, predicate: TimespanInput, descendants: true }], usesInheritance: true, ngImport: i0, template: `<mat-form-field>
21
- <mat-label *ngIf="field.placeholder">{{field.label || field.name}}</mat-label>
22
- <bizdoc-timespan-input
23
- [placeholder]="field.placeholder || field.label || field.name" [formControl]=control
24
- [required]="field.required"></bizdoc-timespan-input>
25
- <mat-icon matSuffix>timer</mat-icon>
26
- <mat-hint *ngIf="field.hint"> {{ field.hint }}</mat-hint>
27
- <ng-container>
28
- <mat-error *ngFor="let v of field.validations" [style.display]="control.hasError(v.type) ? '': 'none'"> {{ v.message }} </mat-error>
29
- </ng-container>
30
- </mat-form-field>`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix]" }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.TimespanInput, selector: "bizdoc-timespan-input", inputs: ["placeholder", "required", "disabled", "value"] }] });
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: TimespanField, decorators: [{
32
- type: Component,
33
- args: [{
34
- template: `<mat-form-field>
48
+ TimespanField.ɵfac = /*@__PURE__*/ function () { let ɵTimespanField_BaseFactory; return function TimespanField_Factory(t) { return (ɵTimespanField_BaseFactory || (ɵTimespanField_BaseFactory = i0.ɵɵgetInheritedFactory(TimespanField)))(t || TimespanField); }; }();
49
+ TimespanField.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TimespanField, selectors: [["ng-component"]], viewQuery: function TimespanField_Query(rf, ctx) { if (rf & 1) {
50
+ i0.ɵɵviewQuery(TimespanInput, 5);
51
+ } if (rf & 2) {
52
+ let _t;
53
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.input = _t.first);
54
+ } }, features: [i0.ɵɵInheritDefinitionFeature], decls: 8, vars: 6, consts: [[4, "ngIf"], [3, "placeholder", "formControl", "required"], ["matSuffix", ""], [3, "display", 4, "ngFor", "ngForOf"]], template: function TimespanField_Template(rf, ctx) { if (rf & 1) {
55
+ i0.ɵɵelementStart(0, "mat-form-field");
56
+ i0.ɵɵtemplate(1, TimespanField_mat_label_1_Template, 2, 1, "mat-label", 0);
57
+ i0.ɵɵelement(2, "bizdoc-timespan-input", 1);
58
+ i0.ɵɵelementStart(3, "mat-icon", 2);
59
+ i0.ɵɵtext(4, "timer");
60
+ i0.ɵɵelementEnd();
61
+ i0.ɵɵtemplate(5, TimespanField_mat_hint_5_Template, 2, 1, "mat-hint", 0);
62
+ i0.ɵɵelementContainerStart(6);
63
+ i0.ɵɵtemplate(7, TimespanField_mat_error_7_Template, 2, 3, "mat-error", 3);
64
+ i0.ɵɵelementContainerEnd();
65
+ i0.ɵɵelementEnd();
66
+ } if (rf & 2) {
67
+ i0.ɵɵadvance(1);
68
+ i0.ɵɵproperty("ngIf", ctx.field.placeholder);
69
+ i0.ɵɵadvance(1);
70
+ i0.ɵɵproperty("placeholder", ctx.field.placeholder || ctx.field.label || ctx.field.name)("formControl", ctx.control)("required", ctx.field.required);
71
+ i0.ɵɵadvance(3);
72
+ i0.ɵɵproperty("ngIf", ctx.field.hint);
73
+ i0.ɵɵadvance(2);
74
+ i0.ɵɵproperty("ngForOf", ctx.field.validations);
75
+ } }, dependencies: [i1.NgForOf, i1.NgIf, i2.NgControlStatus, i2.RequiredValidator, i2.FormControlDirective, i3.MatError, i3.MatFormField, i3.MatHint, i3.MatLabel, i3.MatSuffix, i4.MatIcon, i5.TimespanInput], encapsulation: 2 });
76
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TimespanField, [{
77
+ type: Component,
78
+ args: [{
79
+ template: `<mat-form-field>
35
80
  <mat-label *ngIf="field.placeholder">{{field.label || field.name}}</mat-label>
36
81
  <bizdoc-timespan-input
37
82
  [placeholder]="field.placeholder || field.label || field.name" [formControl]=control
@@ -42,9 +87,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImpor
42
87
  <mat-error *ngFor="let v of field.validations" [style.display]="control.hasError(v.type) ? '': 'none'"> {{ v.message }} </mat-error>
43
88
  </ng-container>
44
89
  </mat-form-field>`
45
- }]
46
- }], propDecorators: { input: [{
47
- type: ViewChild,
48
- args: [TimespanInput]
49
- }] } });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXNwYW4uZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvcmUvbGF5b3V0L3RpbWVzcGFuLmZpZWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7OztBQWdCekMsc0JBQXNCO0FBQ3RCLE1BQU0sT0FBTyxhQUFjLFNBQVEsU0FBUztJQWQ1Qzs7UUFnQmEsWUFBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7S0FFeEM7SUFEQyxLQUFLLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7OzBHQUhwQixhQUFhOzhGQUFiLGFBQWEsMkZBQ2IsYUFBYSx1RUFkWjs7Ozs7Ozs7OztrQkFVSTsyRkFHTCxhQUFhO2tCQWR6QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRTs7Ozs7Ozs7OztrQkFVSTtpQkFDakI7OEJBRzJCLEtBQUs7c0JBQTlCLFNBQVM7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBUaW1lc3BhbklucHV0IH0gZnJvbSAnLi4vY29udHJvbHMvdGltZXNwYW4uaW5wdXQnO1xyXG5pbXBvcnQgeyBGaWVsZEJhc2UgfSBmcm9tICcuL2lucHV0LmJhc2UnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgdGVtcGxhdGU6IGA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgPG1hdC1sYWJlbCAqbmdJZj1cImZpZWxkLnBsYWNlaG9sZGVyXCI+e3tmaWVsZC5sYWJlbCB8fCBmaWVsZC5uYW1lfX08L21hdC1sYWJlbD4gICAgICAgICAgXHJcbjxiaXpkb2MtdGltZXNwYW4taW5wdXRcclxuW3BsYWNlaG9sZGVyXT1cImZpZWxkLnBsYWNlaG9sZGVyIHx8IGZpZWxkLmxhYmVsIHx8IGZpZWxkLm5hbWVcIiBbZm9ybUNvbnRyb2xdPWNvbnRyb2xcclxuICBbcmVxdWlyZWRdPVwiZmllbGQucmVxdWlyZWRcIj48L2JpemRvYy10aW1lc3Bhbi1pbnB1dD5cclxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBtYXRTdWZmaXg+dGltZXI8L21hdC1pY29uPlxyXG4gIDxtYXQtaGludCAqbmdJZj1cImZpZWxkLmhpbnRcIj4ge3sgZmllbGQuaGludCB9fTwvbWF0LWhpbnQ+XHJcbiAgPG5nLWNvbnRhaW5lcj5cclxuICAgIDxtYXQtZXJyb3IgKm5nRm9yPVwibGV0IHYgb2YgZmllbGQudmFsaWRhdGlvbnNcIiBbc3R5bGUuZGlzcGxheV09XCJjb250cm9sLmhhc0Vycm9yKHYudHlwZSkgPyAnJzogJ25vbmUnXCI+IHt7IHYubWVzc2FnZSB9fSA8L21hdC1lcnJvcj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9tYXQtZm9ybS1maWVsZD5gXHJcbn0pXHJcbi8qKiBsYXlvdXQgY29tcG9uZW50Ki9cclxuZXhwb3J0IGNsYXNzIFRpbWVzcGFuRmllbGQgZXh0ZW5kcyBGaWVsZEJhc2Uge1xyXG4gIEBWaWV3Q2hpbGQoVGltZXNwYW5JbnB1dCkgaW5wdXQ6IFRpbWVzcGFuSW5wdXQ7XHJcbiAgICByZWFkb25seSBjb250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcbiAgZm9jdXMoKSB7IHRoaXMuaW5wdXQuZm9jdXMoKTsgfVxyXG59XHJcbiJdfQ==
90
+ }]
91
+ }], null, { input: [{
92
+ type: ViewChild,
93
+ args: [TimespanInput]
94
+ }] }); })();
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXNwYW4uZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvcmUvbGF5b3V0L3RpbWVzcGFuLmZpZWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7SUFLdkMsaUNBQXFDO0lBQUEsWUFBNkI7SUFBQSxpQkFBWTs7O0lBQXpDLGVBQTZCO0lBQTdCLDZEQUE2Qjs7O0lBS2xFLGdDQUE2QjtJQUFDLFlBQWdCO0lBQUEsaUJBQVc7OztJQUEzQixlQUFnQjtJQUFoQixpREFBZ0I7OztJQUU1QyxpQ0FBdUc7SUFBQyxZQUFnQjtJQUFBLGlCQUFZOzs7O0lBQXJGLDJFQUF1RDtJQUFFLGVBQWdCO0lBQWhCLDZDQUFnQjs7QUFJNUgsc0JBQXNCO0FBQ3RCLE1BQU0sT0FBTyxhQUFjLFNBQVEsU0FBUztJQWQ1Qzs7UUFnQmEsWUFBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7S0FFeEM7SUFEQyxLQUFLLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7O3lOQUhwQixhQUFhLFNBQWIsYUFBYTtnRUFBYixhQUFhO3VCQUNiLGFBQWE7Ozs7O1FBZFgsc0NBQWdCO1FBQzdCLDBFQUE4RTtRQUNoRiwyQ0FFc0Q7UUFDdEMsbUNBQW9CO1FBQUEscUJBQUs7UUFBQSxpQkFBVztRQUNsRCx3RUFBeUQ7UUFDekQsNkJBQWM7UUFDWiwwRUFBb0k7UUFDdEksMEJBQWU7UUFDakIsaUJBQWlCOztRQVRILGVBQXVCO1FBQXZCLDRDQUF1QjtRQUVyQyxlQUE4RDtRQUE5RCx3RkFBOEQsNEJBQUEsZ0NBQUE7UUFHakQsZUFBZ0I7UUFBaEIscUNBQWdCO1FBRUEsZUFBb0I7UUFBcEIsK0NBQW9COzt1RkFLcEMsYUFBYTtjQWR6QixTQUFTO2VBQUM7Z0JBQ1AsUUFBUSxFQUFFOzs7Ozs7Ozs7O2tCQVVJO2FBQ2pCO2dCQUcyQixLQUFLO2tCQUE5QixTQUFTO21CQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVGltZXNwYW5JbnB1dCB9IGZyb20gJy4uL2NvbnRyb2xzL3RpbWVzcGFuLmlucHV0JztcclxuaW1wb3J0IHsgRmllbGRCYXNlIH0gZnJvbSAnLi9pbnB1dC5iYXNlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHRlbXBsYXRlOiBgPG1hdC1mb3JtLWZpZWxkPlxyXG4gIDxtYXQtbGFiZWwgKm5nSWY9XCJmaWVsZC5wbGFjZWhvbGRlclwiPnt7ZmllbGQubGFiZWwgfHwgZmllbGQubmFtZX19PC9tYXQtbGFiZWw+ICAgICAgICAgIFxyXG48Yml6ZG9jLXRpbWVzcGFuLWlucHV0XHJcbltwbGFjZWhvbGRlcl09XCJmaWVsZC5wbGFjZWhvbGRlciB8fCBmaWVsZC5sYWJlbCB8fCBmaWVsZC5uYW1lXCIgW2Zvcm1Db250cm9sXT1jb250cm9sXHJcbiAgW3JlcXVpcmVkXT1cImZpZWxkLnJlcXVpcmVkXCI+PC9iaXpkb2MtdGltZXNwYW4taW5wdXQ+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWljb24gbWF0U3VmZml4PnRpbWVyPC9tYXQtaWNvbj5cclxuICA8bWF0LWhpbnQgKm5nSWY9XCJmaWVsZC5oaW50XCI+IHt7IGZpZWxkLmhpbnQgfX08L21hdC1oaW50PlxyXG4gIDxuZy1jb250YWluZXI+XHJcbiAgICA8bWF0LWVycm9yICpuZ0Zvcj1cImxldCB2IG9mIGZpZWxkLnZhbGlkYXRpb25zXCIgW3N0eWxlLmRpc3BsYXldPVwiY29udHJvbC5oYXNFcnJvcih2LnR5cGUpID8gJyc6ICdub25lJ1wiPiB7eyB2Lm1lc3NhZ2UgfX0gPC9tYXQtZXJyb3I+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvbWF0LWZvcm0tZmllbGQ+YFxyXG59KVxyXG4vKiogbGF5b3V0IGNvbXBvbmVudCovXHJcbmV4cG9ydCBjbGFzcyBUaW1lc3BhbkZpZWxkIGV4dGVuZHMgRmllbGRCYXNlIHtcclxuICBAVmlld0NoaWxkKFRpbWVzcGFuSW5wdXQpIGlucHV0OiBUaW1lc3BhbklucHV0O1xyXG4gICAgcmVhZG9ubHkgY29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gIGZvY3VzKCkgeyB0aGlzLmlucHV0LmZvY3VzKCk7IH1cclxufVxyXG4iXX0=
@@ -24,23 +24,25 @@ export class LottieAnimation {
24
24
  }
25
25
  play() { this._instance.play(); }
26
26
  }
27
- LottieAnimation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: LottieAnimation, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
28
- LottieAnimation.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: LottieAnimation, selector: "lottie", inputs: { name: "name", size: "size", autoplay: "autoplay" }, host: { properties: { "style.width": "size", "style.height": "size" }, styleAttribute: "display:block" }, ngImport: i0, template: '', isInline: true });
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: LottieAnimation, decorators: [{
30
- type: Component,
31
- args: [{
32
- selector: 'lottie', template: '',
33
- host: {
34
- style: 'display:block',
35
- '[style.width]': 'size',
36
- '[style.height]': 'size'
37
- }
38
- }]
39
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { name: [{
40
- type: Input
41
- }], size: [{
42
- type: Input
43
- }], autoplay: [{
44
- type: Input
45
- }] } });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG90dGllLWFuaW1hdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY29yZS9sb3R0aWUtYW5pbWF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXNCLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdyRSxPQUFPLE1BQU0sTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFVcEQsTUFBTSxPQUNFLGVBQWU7SUFLckIsWUFBb0IsUUFBb0I7UUFBcEIsYUFBUSxHQUFSLFFBQVEsQ0FBWTtRQUYvQixTQUFJLEdBQVcsT0FBTyxDQUFDO1FBQ3ZCLGFBQVEsR0FBWSxJQUFJLENBQUM7SUFDVSxDQUFDO0lBQzdDLFFBQVE7UUFDTixJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUM7WUFDcEMsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYTtZQUN0QyxRQUFRLEVBQUUsS0FBSztZQUNmLElBQUksRUFBRSxJQUFJO1lBQ1YsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLEtBQUssRUFBRSxNQUFNO1lBQ2IsZ0JBQWdCLEVBQUU7WUFDaEIsdUJBQXVCO2FBQ3hCO1lBQ0QsVUFBVSxFQUFFLGFBQWE7WUFDekIsSUFBSSxFQUFFLHFCQUFxQixJQUFJLENBQUMsSUFBSSxPQUFPO1NBQ3pCLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFJLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7OzRHQXJCM0IsZUFBZTtnR0FBZixlQUFlLHNOQVJTLEVBQUU7MkZBUTFCLGVBQWU7a0JBVHRCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsRUFBRTtvQkFDaEMsSUFBSSxFQUFFO3dCQUNKLEtBQUssRUFBRSxlQUFlO3dCQUN0QixlQUFlLEVBQUUsTUFBTTt3QkFDdkIsZ0JBQWdCLEVBQUUsTUFBTTtxQkFDekI7aUJBQ0Y7aUdBSVUsSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEVsZW1lbnRSZWYsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFuaW1hdGlvbkNvbmZpZywgQW5pbWF0aW9uSXRlbSB9IGZyb20gJ2xvdHRpZS13ZWInO1xyXG5cclxuaW1wb3J0IHBsYXllciBmcm9tICdsb3R0aWUtd2ViL2J1aWxkL3BsYXllci9sb3R0aWUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsb3R0aWUnLCB0ZW1wbGF0ZTogJycsXHJcbiAgaG9zdDoge1xyXG4gICAgc3R5bGU6ICdkaXNwbGF5OmJsb2NrJyxcclxuICAgICdbc3R5bGUud2lkdGhdJzogJ3NpemUnLFxyXG4gICAgJ1tzdHlsZS5oZWlnaHRdJzogJ3NpemUnXHJcbiAgfVxyXG59KVxyXG5leHBvcnRcclxuICBjbGFzcyBMb3R0aWVBbmltYXRpb24gaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHByaXZhdGUgX2luc3RhbmNlOiBBbmltYXRpb25JdGVtO1xyXG4gIEBJbnB1dCgpIG5hbWUhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2l6ZTogc3RyaW5nID0gJzEwMHB4JztcclxuICBASW5wdXQoKSBhdXRvcGxheTogYm9vbGVhbiA9IHRydWU7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZWxlbWVudDogRWxlbWVudFJlZikgeyB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9pbnN0YW5jZSA9IHBsYXllci5sb2FkQW5pbWF0aW9uKHtcclxuICAgICAgY29udGFpbmVyOiB0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgIHJlbmRlcmVyOiAnc3ZnJyxcclxuICAgICAgbG9vcDogdHJ1ZSxcclxuICAgICAgYXV0b3BsYXk6IHRoaXMuYXV0b3BsYXksXHJcbiAgICAgIHdpZHRoOiAnMjBweCcsXHJcbiAgICAgIHJlbmRlcmVyU2V0dGluZ3M6IHtcclxuICAgICAgICAvL2NsYXNzTmFtZTogJycgICAgICAgIFxyXG4gICAgICB9LFxyXG4gICAgICBiYWNrZ3JvdW5kOiBcInRyYW5zcGFyZW50XCIsXHJcbiAgICAgIHBhdGg6IGBhc3NldHMvYW5pbWF0aW9ucy8ke3RoaXMubmFtZX0uanNvbmBcclxuICAgIH0gYXMgQW5pbWF0aW9uQ29uZmlnKTtcclxuICAgIHRoaXMuX2luc3RhbmNlLnNob3coKTtcclxuICB9XHJcbiAgcGxheSgpIHsgdGhpcy5faW5zdGFuY2UucGxheSgpOyB9XHJcbn1cclxuIl19
27
+ LottieAnimation.ɵfac = function LottieAnimation_Factory(t) { return new (t || LottieAnimation)(i0.ɵɵdirectiveInject(i0.ElementRef)); };
28
+ LottieAnimation.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LottieAnimation, selectors: [["lottie"]], hostAttrs: [2, "display", "block"], hostVars: 4, hostBindings: function LottieAnimation_HostBindings(rf, ctx) { if (rf & 2) {
29
+ i0.ɵɵstyleProp("width", ctx.size)("height", ctx.size);
30
+ } }, inputs: { name: "name", size: "size", autoplay: "autoplay" }, decls: 0, vars: 0, template: function LottieAnimation_Template(rf, ctx) { }, encapsulation: 2 });
31
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LottieAnimation, [{
32
+ type: Component,
33
+ args: [{
34
+ selector: 'lottie', template: '',
35
+ host: {
36
+ style: 'display:block',
37
+ '[style.width]': 'size',
38
+ '[style.height]': 'size'
39
+ }
40
+ }]
41
+ }], function () { return [{ type: i0.ElementRef }]; }, { name: [{
42
+ type: Input
43
+ }], size: [{
44
+ type: Input
45
+ }], autoplay: [{
46
+ type: Input
47
+ }] }); })();
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG90dGllLWFuaW1hdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY29yZS9sb3R0aWUtYW5pbWF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXNCLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdyRSxPQUFPLE1BQU0sTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFVcEQsTUFBTSxPQUNFLGVBQWU7SUFLckIsWUFBb0IsUUFBb0I7UUFBcEIsYUFBUSxHQUFSLFFBQVEsQ0FBWTtRQUYvQixTQUFJLEdBQVcsT0FBTyxDQUFDO1FBQ3ZCLGFBQVEsR0FBWSxJQUFJLENBQUM7SUFDVSxDQUFDO0lBQzdDLFFBQVE7UUFDTixJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUM7WUFDcEMsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYTtZQUN0QyxRQUFRLEVBQUUsS0FBSztZQUNmLElBQUksRUFBRSxJQUFJO1lBQ1YsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLEtBQUssRUFBRSxNQUFNO1lBQ2IsZ0JBQWdCLEVBQUU7WUFDaEIsdUJBQXVCO2FBQ3hCO1lBQ0QsVUFBVSxFQUFFLGFBQWE7WUFDekIsSUFBSSxFQUFFLHFCQUFxQixJQUFJLENBQUMsSUFBSSxPQUFPO1NBQ3pCLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFJLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7OzhFQXJCM0IsZUFBZTtrRUFBZixlQUFlOzs7dUZBQWYsZUFBZTtjQVR0QixTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsRUFBRTtnQkFDaEMsSUFBSSxFQUFFO29CQUNKLEtBQUssRUFBRSxlQUFlO29CQUN0QixlQUFlLEVBQUUsTUFBTTtvQkFDdkIsZ0JBQWdCLEVBQUUsTUFBTTtpQkFDekI7YUFDRjs2REFJVSxJQUFJO2tCQUFaLEtBQUs7WUFDRyxJQUFJO2tCQUFaLEtBQUs7WUFDRyxRQUFRO2tCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEVsZW1lbnRSZWYsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFuaW1hdGlvbkNvbmZpZywgQW5pbWF0aW9uSXRlbSB9IGZyb20gJ2xvdHRpZS13ZWInO1xyXG5cclxuaW1wb3J0IHBsYXllciBmcm9tICdsb3R0aWUtd2ViL2J1aWxkL3BsYXllci9sb3R0aWUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsb3R0aWUnLCB0ZW1wbGF0ZTogJycsXHJcbiAgaG9zdDoge1xyXG4gICAgc3R5bGU6ICdkaXNwbGF5OmJsb2NrJyxcclxuICAgICdbc3R5bGUud2lkdGhdJzogJ3NpemUnLFxyXG4gICAgJ1tzdHlsZS5oZWlnaHRdJzogJ3NpemUnXHJcbiAgfVxyXG59KVxyXG5leHBvcnRcclxuICBjbGFzcyBMb3R0aWVBbmltYXRpb24gaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHByaXZhdGUgX2luc3RhbmNlOiBBbmltYXRpb25JdGVtO1xyXG4gIEBJbnB1dCgpIG5hbWUhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2l6ZTogc3RyaW5nID0gJzEwMHB4JztcclxuICBASW5wdXQoKSBhdXRvcGxheTogYm9vbGVhbiA9IHRydWU7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZWxlbWVudDogRWxlbWVudFJlZikgeyB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9pbnN0YW5jZSA9IHBsYXllci5sb2FkQW5pbWF0aW9uKHtcclxuICAgICAgY29udGFpbmVyOiB0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgIHJlbmRlcmVyOiAnc3ZnJyxcclxuICAgICAgbG9vcDogdHJ1ZSxcclxuICAgICAgYXV0b3BsYXk6IHRoaXMuYXV0b3BsYXksXHJcbiAgICAgIHdpZHRoOiAnMjBweCcsXHJcbiAgICAgIHJlbmRlcmVyU2V0dGluZ3M6IHtcclxuICAgICAgICAvL2NsYXNzTmFtZTogJycgICAgICAgIFxyXG4gICAgICB9LFxyXG4gICAgICBiYWNrZ3JvdW5kOiBcInRyYW5zcGFyZW50XCIsXHJcbiAgICAgIHBhdGg6IGBhc3NldHMvYW5pbWF0aW9ucy8ke3RoaXMubmFtZX0uanNvbmBcclxuICAgIH0gYXMgQW5pbWF0aW9uQ29uZmlnKTtcclxuICAgIHRoaXMuX2luc3RhbmNlLnNob3coKTtcclxuICB9XHJcbiAgcGxheSgpIHsgdGhpcy5faW5zdGFuY2UucGxheSgpOyB9XHJcbn1cclxuIl19
@@ -339,12 +339,12 @@ export class MailboxService {
339
339
  });
340
340
  }
341
341
  }
342
- MailboxService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: MailboxService, deps: [{ token: i1.SessionService }, { token: i2.AuthenticationImpl }, { token: i3.HubService }, { token: i4.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
343
- MailboxService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: MailboxService, providedIn: 'root' });
344
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: MailboxService, decorators: [{
345
- type: Injectable,
346
- args: [{ providedIn: 'root' }]
347
- }], ctorParameters: function () { return [{ type: i1.SessionService }, { type: i2.AuthenticationImpl }, { type: i3.HubService }, { type: i4.HttpClient }]; } });
342
+ MailboxService.ɵfac = function MailboxService_Factory(t) { return new (t || MailboxService)(i0.ɵɵinject(i1.SessionService), i0.ɵɵinject(i2.AuthenticationImpl), i0.ɵɵinject(i3.HubService), i0.ɵɵinject(i4.HttpClient)); };
343
+ MailboxService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: MailboxService, factory: MailboxService.ɵfac, providedIn: 'root' });
344
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MailboxService, [{
345
+ type: Injectable,
346
+ args: [{ providedIn: 'root' }]
347
+ }], function () { return [{ type: i1.SessionService }, { type: i2.AuthenticationImpl }, { type: i3.HubService }, { type: i4.HttpClient }]; }, null); })();
348
348
  function isHttpResponse(event) {
349
349
  return event.type === HttpEventType.Response;
350
350
  }
@@ -403,4 +403,4 @@ export function reportProgress(attachment) {
403
403
  }
404
404
  export class PositionError {
405
405
  }
406
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbGJveC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb3JlL21haWxib3guc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBRUwsYUFBYSxFQUNNLFdBQVcsRUFBRSxZQUFZLEVBQzdDLE1BQU0sc0JBQXNCLENBQUM7QUFHOUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQU8sTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7O0FBSy9DLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBcUIsT0FBTyxDQUFDLENBQUM7QUFTOUUsTUFBTSxPQUFPLGNBQWM7SUFNekIsWUFBb0IsUUFBd0IsRUFDbEMsS0FBeUIsRUFDakMsU0FBcUIsRUFDYixLQUFpQjtRQUhQLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ2xDLFVBQUssR0FBTCxLQUFLLENBQW9CO1FBRXpCLFVBQUssR0FBTCxLQUFLLENBQVk7UUFSVixhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQXVCLENBQUM7UUFDOUMsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7UUFDbEQsTUFBTTtRQUNVLFlBQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3ZDLFlBQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBdVZ2RDtXQUNHO1FBQ0ssWUFBTyxHQUFHLEdBQU0sRUFBRSxDQUFDLENBQUMsT0FBc0MsRUFBRSxFQUFFO1lBQ3BFLE9B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QUMsQ0FBQyxDQUFDLENBQUM7SUFDNUIsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBQ0QsTUFBTSxPQUFPLGFBQWE7Q0FNekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIEh0dHBDbGllbnQsIEh0dHBFdmVudCxcclxuICBIdHRwRXZlbnRUeXBlLFxyXG4gIEh0dHBQcm9ncmVzc0V2ZW50LCBIdHRwUmVxdWVzdCwgSHR0cFJlc3BvbnNlXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBDb21tZW50LCBVc2VySW5mbywgUmVjaXBpZW50TW9kZWwsIEF0dGFjaG1lbnQsIFNjaGVkdWxlZEV2ZW50LCBIZWFkZXJNb2RlbCwgRG9jdW1lbnRNb2RlbCwgVm90ZSwgQ29tbWVudFZlcnNpb24sIENoYWluIH0gZnJvbSAnLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4vc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YXAsIHN3aXRjaE1hcCwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBjbGVhbnVwLCBpc0FycmF5IH0gZnJvbSAnLi9mdW5jdGlvbnMnO1xyXG5pbXBvcnQgeyBIdWJTZXJ2aWNlIH0gZnJvbSAnLi9odWIuc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uSW1wbCB9IGZyb20gJy4vYXV0aGVudGljYXRpb24nO1xyXG5pbXBvcnQgeyBTYWZlVXJsIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcblxyXG5leHBvcnQgY29uc3QgRE9DVU1FTlRfTU9ERUwgPSBuZXcgSW5qZWN0aW9uVG9rZW48RG9jdW1lbnRNb2RlbDxhbnk+PignbW9kZWwnKTtcclxuXHJcbmV4cG9ydCB0eXBlIEZpbHRlclR5cGUgPSAncmVjZW50JyB8ICd1bnJlYWQnIHwgJ2ZsYWdnZWQnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2VFdmVudDxUPiB7XHJcbiAgbW9kZWw6IFJlY2lwaWVudE1vZGVsPFQ+O1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgTWFpbGJveFNlcnZpY2Uge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2NoYW5nZSQgPSBuZXcgU3ViamVjdDxSZWNpcGllbnRNb2RlbDxhbnk+PigpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2RlbGV0ZSQgPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XHJcbiAgLyoqICovXHJcbiAgcHVibGljIHJlYWRvbmx5IGNoYW5nZWQgPSB0aGlzLl9jaGFuZ2UkLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIHB1YmxpYyByZWFkb25seSBkZWxldGVkID0gdGhpcy5fZGVsZXRlJC5hc09ic2VydmFibGUoKTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX2F1dGg6IEF1dGhlbnRpY2F0aW9uSW1wbCxcclxuICAgIG1lc3NhZ2luZzogSHViU2VydmljZSxcclxuICAgIHByaXZhdGUgX2h0dHA6IEh0dHBDbGllbnQpIHtcclxuICAgIG1lc3NhZ2luZy5uZXckLlxyXG4gICAgICBzdWJzY3JpYmUobSA9PiB7XHJcbiAgICAgICAgaWYgKG0udXNlcklkICE9PSBfc2Vzc2lvbi5wcm9maWxlLnVzZXJJZCkgcmV0dXJuO1xyXG4gICAgICAgIF9zZXNzaW9uLnByb2ZpbGUuaW5ib3hDb3VudCsrO1xyXG4gICAgICAgIGNvbnN0IGZvbGRlciA9IF9zZXNzaW9uLnByb2ZpbGUuZm9sZGVycy5maW5kKGYgPT4gZi5uYW1lID09PSBtLm1vZGVsLmZvbGRlcklkKTtcclxuICAgICAgICBmb2xkZXIuY291bnQrKztcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIGZvcm1hdERvd25sb2FkVXJsKGRvY3VtZW50SWQ6IG51bWJlciwgZmlsZUlkOiBudW1iZXIsIGlubGluZT86IGJvb2xlYW4pOiBzdHJpbmcge1xyXG4gICAgY29uc3QgdG9rZW4gPSB0aGlzLl9hdXRoLmdldEFjY2Vzc1Rva2VuKCk7XHJcbiAgICByZXR1cm4gYC9hcGkvYXR0YWNobWVudHMvJHtkb2N1bWVudElkfS8ke2ZpbGVJZH0/YWNjZXNzX3Rva2VuPSR7dG9rZW59JmlubGluZT0ke2lubGluZSA/IHRydWUgOiBmYWxzZX1gO1xyXG4gIH1cclxuICBkb3dubG9hZChkb2N1bWVudElkOiBudW1iZXIsIGZpbGVJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIC8vbmV3IE9ic2VydmFibGU8YW55PihvYnNlcnZlID0+IHtcclxuICAgIC8vICBvYnNlcnZlLm5leHQoe30pO1xyXG4gICAgLy8gIHJldHVybiB7XHJcbiAgICAvLyAgICB1bnN1YnNjcmliZSgpIHsgfVxyXG4gICAgLy8gIH1cclxuICAgIC8vfSk7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQoYC9hcGkvYXR0YWNobWVudHMvJHtkb2N1bWVudElkfS8ke2ZpbGVJZH1gLCB7XHJcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJyxcclxuICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHRydWVcclxuICAgIH0pO1xyXG4gIH1cclxuICByZW1vdmVhdHRhY2htZW50KHJlY2lwaWVudElkOiBudW1iZXIsIGZpbGVJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmRlbGV0ZShgL2FwaS9hdHRhY2htZW50cy8ke3JlY2lwaWVudElkfS8ke2ZpbGVJZH1gKTtcclxuICB9XHJcbiAgcmVhZChpZDogbnVtYmVyLCByZWFkOiBib29sZWFuLCBmb2xkZXJJZD86IHN0cmluZywgcmVjZWl2ZWQ/OiBEYXRlKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnB1dChgL2FwaS9tYWlsYm94L3JlYWQvJHtpZH1gLCB1bmRlZmluZWQsIHsgcGFyYW1zOiB7IHJlYWQgfSBhcyBhbnkgfSkucGlwZSh0YXAoKCkgPT5cclxuICAgICAgZm9sZGVySWQgJiYgdGhpcy5fdXBkYXRldW5yZWFkY291bnRlcihyZWNlaXZlZCwgZm9sZGVySWQsIHJlYWQgPyAxIDogLTEpXHJcbiAgICApKTtcclxuICB9XHJcbiAgY29tbWVudHMoaWQ6IG51bWJlciwgYmVmb3JlOiBEYXRlKTogT2JzZXJ2YWJsZTxDb21tZW50W10+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDxDb21tZW50W10+KGAvYXBpL2NvbW1lbnRzLyR7aWR9YCwgeyBwYXJhbXM6IHsgYmVmb3JlOiBuZXcgRGF0ZShiZWZvcmUpLnRvSlNPTigpIH0gfSk7XHJcbiAgfVxyXG4gIHRhZ3MoaWQ6IG51bWJlciwgdGFnczogc3RyaW5nW10pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0KGAvYXBpL21haWxib3gvdGFnLyR7aWR9YCwgeyB0YWdzIH0pLnBpcGUodGFwKCgpID0+IHtcclxuICAgICAgdGhpcy5fY2hhbmdlJC5uZXh0KHsgaWQsIHRhZ3MgfSBhcyBhbnkpO1xyXG4gICAgfSkpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gZG9jdW1lbnRJZFxyXG4gICAqIEBwYXJhbSBzdGF0ZUlkXHJcbiAgICogQHBhcmFtIHVzZXJJZCBzdWJzdGl0dXRlXHJcbiAgICovXHJcbiAgY2hhbmdlU3RhdGUoZG9jdW1lbnRJZDogbnVtYmVyLCBzdGF0ZUlkOiBzdHJpbmcsIHVzZXJJZD86IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQoYC9hcGkvbWFpbGJveC9jaGFuZ2VzdGF0ZS8ke2RvY3VtZW50SWR9YCwgeyBzdGF0ZUlkLCB1c2VySWQgfSk7XHJcbiAgfVxyXG4gIG1vdmUoaWQ6IG51bWJlciwgZm9sZGVySWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQoYC9hcGkvbWFpbGJveC9tb3ZlLyR7aWR9P2ZvbGRlcklkPSR7Zm9sZGVySWR9YCwge30pLnBpcGUodGFwKCgpID0+IHtcclxuICAgICAgdGhpcy5fY2hhbmdlJC5uZXh0KHtcclxuICAgICAgICBpZCxcclxuICAgICAgICBmb2xkZXJJZFxyXG4gICAgICB9IGFzIGFueSk7XHJcbiAgICB9KSk7XHJcbiAgfVxyXG4gIGNoZWNrT3V0KHJlY2lwaWVudElkOiBudW1iZXIsIHZlcnNpb246IG51bWJlciwgYXR0YWNobWVudElkOiBudW1iZXIpIHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnB1dDxBdHRhY2htZW50PihgL2FwaS9hdHRhY2htZW50cy8ke3JlY2lwaWVudElkfS8ke2F0dGFjaG1lbnRJZH0vY2hlY2tvdXRgLCBudWxsLCB7IHBhcmFtczogeyB2ZXJzaW9uIH0gfSk7XHJcbiAgfVxyXG4gIGNoZWNrSW4ocmVjaXBpZW50SWQ6IG51bWJlciwgdmVyc2lvbjogbnVtYmVyLCBhdHRhY2htZW50SWQ6IG51bWJlciwgZmlsZTogRmlsZSk6IE9ic2VydmFibGU8QXR0YWNobWVudD4ge1xyXG4gICAgY29uc3QgZmQgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgIGZkLmFwcGVuZChmaWxlLm5hbWUsIGZpbGUpO1xyXG4gICAgY29uc3QgcmVxID0gbmV3IEh0dHBSZXF1ZXN0KCdQVVQnLFxyXG4gICAgICBgL2FwaS9hdHRhY2htZW50cy8ke3JlY2lwaWVudElkfS8ke2F0dGFjaG1lbnRJZH0vY2hlY2tpbj92ZXJzaW9uPSR7dmVyc2lvbn1gLCBmZCwge1xyXG4gICAgICByZXBvcnRQcm9ncmVzczogdHJ1ZSxcclxuICAgIH0pO1xyXG4gICAgLy9jb25zdCBpbml0aWFsU3RhdGU6IFVwbG9hZEV2ZW50ID0geyBzdGF0ZTogJ1BFTkRJTkcnLCBwcm9ncmVzczogMCB9XHJcbiAgICAvL2NvbnN0IGNhbGN1bGF0ZVN0YXRlID0gKFxyXG4gICAgLy8gIHVwbG9hZDogVXBsb2FkRXZlbnQsXHJcbiAgICAvLyAgZXZlbnQ6IEh0dHBFdmVudDx1bmtub3duPlxyXG4gICAgLy8pOiBVcGxvYWRFdmVudCA9PiB7XHJcbiAgICAvLyAgLy8gaW1wbGVtZW50YXRpb25cclxuICAgIC8vfVxyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPGFueT4ob2JzZXJ2ZSA9PiB7XHJcbiAgICAgIHRoaXMuX2h0dHAucmVxdWVzdChyZXEpLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgUHJvZ3Jlc3NFdmVudCkge1xyXG4gICAgICAgICAgLy8gIG9ic2VydmUubmV4dChuZXcgVXBsb2FkRXZlbnQoXHJcbiAgICAgICAgICAvLyAgICBmaWxlLm5hbWUsXHJcbiAgICAgICAgICAvLyAgICAoZXZlbnQgYXMgUHJvZ3Jlc3NFdmVudCkubG9hZGVkLFxyXG4gICAgICAgICAgLy8gICAgKGV2ZW50IGFzIFByb2dyZXNzRXZlbnQpLnRvdGFsXHJcbiAgICAgICAgICAvLyAgKSk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChldmVudCBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSkge1xyXG4gICAgICAgICAgY29uc3QgcmVzID0gZXZlbnQgYXMgSHR0cFJlc3BvbnNlPGFueT47XHJcbiAgICAgICAgICBpZiAocmVzLnN0YXR1cyA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1vZGVsID0gcmVzLmJvZHkgYXMgQXR0YWNobWVudDtcclxuICAgICAgICAgICAgb2JzZXJ2ZS5uZXh0KG1vZGVsKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgb2JzZXJ2ZS5lcnJvcih7IHN0YXR1czogcmVzLnN0YXR1cywgZXJyb3I6IHJlcy5ib2R5IH0pO1xyXG4gICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSwgZSA9PiB7XHJcbiAgICAgICAgb2JzZXJ2ZS5lcnJvcihlKTtcclxuICAgICAgICBvYnNlcnZlLmNvbXBsZXRlKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIHVuc3Vic2NyaWJlKCkge1xyXG4gICAgICAgICAgLy9yZXEuXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgdXBsb2FkKHJlY2lwaWVudElkOiBudW1iZXIsIGZvcm1JZDogc3RyaW5nLCB2ZXJzaW9uOiBudW1iZXIsIGZpbGU6IEZpbGUsIG9wdGlvbnM/OiB7IGlzUHJpdmF0ZT86IGJvb2xlYW4gfSk6IE9ic2VydmFibGU8QXR0YWNobWVudD47XHJcbiAgdXBsb2FkKHJlY2lwaWVudElkOiBudW1iZXIsIGZvcm1JZDogc3RyaW5nLCB2ZXJzaW9uOiBudW1iZXIsIGZpbGVzOiBGaWxlW10sIG9wdGlvbnM/OiB7IGlzUHJpdmF0ZT86IGJvb2xlYW4gfSk6IE9ic2VydmFibGU8QXR0YWNobWVudFtdPjtcclxuICB1cGxvYWQocmVjaXBpZW50SWQ6IG51bWJlciwgZm9ybUlkOiBzdHJpbmcsIHZlcnNpb246IG51bWJlciwgZmlsZXM6IEZpbGUgfCBGaWxlW10sIG9wdGlvbnM/OiB7IGlzUHJpdmF0ZT86IGJvb2xlYW4gfSk6IE9ic2VydmFibGU8QXR0YWNobWVudCB8IEF0dGFjaG1lbnRbXT4ge1xyXG4gICAgY29uc3QgZmQgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgIGlmIChpc0FycmF5KGZpbGVzKSkgZmlsZXMuZm9yRWFjaChmID0+XHJcbiAgICAgIGZkLmFwcGVuZChmLm5hbWUsIGYpKTtcclxuICAgIGVsc2UgZmQuYXBwZW5kKGZpbGVzLm5hbWUsIGZpbGVzKTtcclxuICAgIC8vY29uc3QgYnl0ZXNQZXJDaHVuayA9IDIwICogMTAyNCAqIDEwMjQ7XHJcbiAgICAvLyBhcXVpcmUgdGhlIGxvY2F0aW9uIHByaW9yIHRvIHNlbmRpbmcgdGhlIHJlcXVlc3RcclxuICAgIHJldHVybiB0aGlzLl9nZW9Mb2NhdGlvbihmb3JtSWQpLnBpcGUoc3dpdGNoTWFwKHBhcmFtcyA9PlxyXG4gICAgICBuZXcgT2JzZXJ2YWJsZTxhbnk+KG9ic2VydmUgPT4ge1xyXG4gICAgICAgIGxldCB1cmwgPSBgL2FwaS9hdHRhY2htZW50cy8ke3JlY2lwaWVudElkfT92ZXJzaW9uPSR7dmVyc2lvbn1gO1xyXG4gICAgICAgIE9iamVjdC5rZXlzKHBhcmFtcykuZm9yRWFjaChwID0+IHVybCArPSBgJiR7cH09JHtwYXJhbXNbcF19YCk7XHJcbiAgICAgICAgaWYgKG9wdGlvbnMpIHtcclxuICAgICAgICAgIGlmIChvcHRpb25zLmlzUHJpdmF0ZSkgdXJsICs9ICcmaXNwcml2YXRlPXRydWUnXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHJlcSA9IG5ldyBIdHRwUmVxdWVzdCgnUE9TVCcsIHVybCwgZmQsIHtcclxuICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiB0cnVlLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuX2h0dHAucmVxdWVzdChyZXEpLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBQcm9ncmVzc0V2ZW50KSB7XHJcbiAgICAgICAgICAgIC8vIFRoaXMgaXMgYW4gdXBsb2FkIHByb2dyZXNzIGV2ZW50LiBDb21wdXRlIGFuZCBzaG93IHRoZSAlIGRvbmU6XHJcbiAgICAgICAgICAgIC8vY29uc3QgcGVyY2VudERvbmUgPSBNYXRoLnJvdW5kKDEwMCAqIGV2ZW50LmxvYWRlZCAvIGV2ZW50LnRvdGFsKTtcclxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhgRmlsZSBpcyAke3BlcmNlbnREb25lfSUgdXBsb2FkZWQuYCk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50IGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlcyA9IGV2ZW50IGFzIEh0dHBSZXNwb25zZTxhbnk+O1xyXG4gICAgICAgICAgICBpZiAocmVzLnN0YXR1cyA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgbW9kZWwgPSByZXMuYm9keSBhcyBBdHRhY2htZW50W107XHJcbiAgICAgICAgICAgICAgb2JzZXJ2ZS5uZXh0KGlzQXJyYXkoZmlsZXMpID8gbW9kZWwgOiBtb2RlbFswXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgIG9ic2VydmUuZXJyb3IoeyBzdGF0dXM6IHJlcy5zdGF0dXMsIGVycm9yOiByZXMuYm9keSB9KTtcclxuICAgICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sIGUgPT4ge1xyXG4gICAgICAgICAgb2JzZXJ2ZS5lcnJvcihlKTtcclxuICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgdW5zdWJzY3JpYmUoKSB7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KSkpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiByZXRyaWV2ZSBzZW5kZXJzXHJcbiAgICogQHBhcmFtIG5hbWVcclxuICAgKi9cclxuICBzZW5kZXJzKG5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8VXNlckluZm9bXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PFVzZXJJbmZvW10+KCcvYXBpL21haWxib3gvc2VuZGVycy8nLCB7XHJcbiAgICAgIHBhcmFtczoge1xyXG4gICAgICAgIG5hbWVcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGZsYWcoaWQ6IG51bWJlciwgZmxhZzogYm9vbGVhbik6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQoYC9hcGkvbWFpbGJveC9mbGFnLyR7aWR9P2ZsYWc9JHtmbGFnfWAsIG51bGwpLnBpcGUodGFwKCgpID0+IHRoaXMuX2NoYW5nZSQubmV4dCh7IGlkLCBmbGFnIH0gYXMgYW55KSkpO1xyXG4gIH1cclxuICB2aWV3ZWRjb21tZW50cyhpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTx7IHRpbWU6IERhdGUgfT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0PHsgdGltZTogRGF0ZSB9PihgL2FwaS9jb21tZW50cy92aWV3ZWQvJHtpZH1gLCB7fSwgeyBoZWFkZXJzOiB7ICduby1wcm9ncmVzcyc6ICd0cnVlJyB9IH0pLnBpcGUodGFwKChlOiB7IHRpbWU6IERhdGUgfSkgPT4gdGhpcy5fY2hhbmdlJC5uZXh0KHsgaWQsIHZpZXdlZDogZS50aW1lIH0gYXMgYW55KSkpO1xyXG4gIH1cclxuICB0eXBpbmcoaWQ6IG51bWJlcik6IFByb21pc2U8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQoYC9hcGkvY29tbWVudHMvdHlwaW5nLyR7aWR9YCwge30sIHsgaGVhZGVyczogeyAnbm8tcHJvZ3Jlc3MnOiAndHJ1ZScgfSB9KS50b1Byb21pc2UoKTtcclxuICB9XHJcbiAgZWRpdGluZyhpZDogbnVtYmVyKTogUHJvbWlzZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnB1dChgL2FwaS9tYWlsYm94L2VkaXRpbmcvJHtpZH1gLCB7fSwgeyBoZWFkZXJzOiB7ICduby1wcm9ncmVzcyc6ICd0cnVlJyB9IH0pLnRvUHJvbWlzZSgpO1xyXG4gIH1cclxuICBjb3B5KGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFJlY2lwaWVudE1vZGVsPGFueT4+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnBvc3Q8UmVjaXBpZW50TW9kZWw8YW55Pj4oYC9hcGkvbWFpbGJveC9jb3B5LyR7aWR9YCwge30pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gaWQgZG9jdW1lbnQgaWRcclxuICAgKiBAcGFyYW0gb3B0aW9uc1xyXG4gICAqL1xyXG4gIGNvbW1lbnQoaWQ6IG51bWJlciwgb3B0aW9uczoge1xyXG4gICAgdGV4dD86IHN0cmluZyxcclxuICAgIHJlc291cmNlPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfSxcclxuICAgIGltYWdlPzogc3RyaW5nLFxyXG4gICAgcGFyZW50SWQ/OiBudW1iZXJcclxuICB9KTogT2JzZXJ2YWJsZTxDb21tZW50PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wb3N0PENvbW1lbnQ+KGAvYXBpL2NvbW1lbnRzLyR7aWR9YCwgb3B0aW9ucyk7XHJcbiAgfVxyXG4gIGNvbW1lbnR1cGRhdGUoaWQ6IG51bWJlciwgY29tbWVudElkOiBudW1iZXIsIG9wdGlvbnM6IHtcclxuICAgIHRleHQ/OiBzdHJpbmcsXHJcbiAgICBpbWFnZT86IHN0cmluZyxcclxuICAgIHJlc291cmNlPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfVxyXG4gIH0pOiBPYnNlcnZhYmxlPENvbW1lbnQ+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnB1dDxDb21tZW50PihgL2FwaS9jb21tZW50cy9lZGl0LyR7aWR9LyR7Y29tbWVudElkfWAsIG9wdGlvbnMpO1xyXG4gIH1cclxuICBpbmZvPFQgPSBhbnk+KGRvY3VtZW50SWQ6IG51bWJlcik6IE9ic2VydmFibGU8RG9jdW1lbnRNb2RlbDxUPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PERvY3VtZW50TW9kZWw8VD4+KGAvYXBpL21haWxib3gvaW5mby8ke2RvY3VtZW50SWR9YCk7XHJcbiAgfVxyXG4gIHRpbWVsaW5lKGRvY3VtZW50SWQ6IG51bWJlcik6IE9ic2VydmFibGU8Q2hhaW4+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDxDaGFpbj4oYC9hcGkvbWFpbGJveC90aW1lbGluZS8ke2RvY3VtZW50SWR9YCk7XHJcbiAgfVxyXG4gIHZvdGUoaWQ6IG51bWJlciwgY29tbWVudElkOiBudW1iZXIsIHZhbHVlOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucG9zdChgL2FwaS9jb21tZW50cy92b3RlLyR7aWR9LyR7Y29tbWVudElkfWAsIHt9LCB7IHBhcmFtczogeyB2YWx1ZTogdmFsdWUudG9TdHJpbmcoKSB9IH0pO1xyXG4gIH1cclxuICB2b3RlcyhpZDogbnVtYmVyLCBjb21tZW50SWQ6IG51bWJlcik6IE9ic2VydmFibGU8Vm90ZVtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8Vm90ZVtdPihgL2FwaS9jb21tZW50cy92b3Rlcy8ke2lkfS8ke2NvbW1lbnRJZH1gKTtcclxuICB9XHJcbiAgZWRpdHMoaWQ6IG51bWJlciwgY29tbWVudElkOiBudW1iZXIpOiBPYnNlcnZhYmxlPENvbW1lbnRWZXJzaW9uW10+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDxDb21tZW50VmVyc2lvbltdPihgL2FwaS9jb21tZW50cy9lZGl0cy8ke2lkfS8ke2NvbW1lbnRJZH1gKTtcclxuICB9XHJcbiAgZmluZEFsbChmaWx0ZXI6IHsgdHlwZT86IEZpbHRlclR5cGU7IGNvbnRhaW5zPzogc3RyaW5nOyBzdGF0ZT86IHN0cmluZzsgZm9ybT86IHN0cmluZzsgZm9sZGVySWQ/OiBzdHJpbmc7IHNlbmRlcklkPzogc3RyaW5nOyB9LFxyXG4gICAgb3B0aW9ucz86IHsgc2tpcD86IG51bWJlcjsgdGFrZT86IG51bWJlcjsgb3JkZXJCeT86ICd2YWx1ZScgfCAndmlld2VkJyB8ICdkYXRlJyB9KTogT2JzZXJ2YWJsZTxIZWFkZXJNb2RlbFtdPiB7XHJcbiAgICBjb25zdCBwYXJhbXM6IGFueSA9IHsgLi4uZmlsdGVyLCAuLi5vcHRpb25zIH07XHJcbiAgICBjbGVhbnVwKHBhcmFtcyk7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8SGVhZGVyTW9kZWxbXT4oJy9hcGkvbWFpbCcsIHsgcGFyYW1zIH0pO1xyXG4gIH1cclxuICBjcmVhdGU8VCA9IGFueT4oZm9ybTogc3RyaW5nKTogT2JzZXJ2YWJsZTxSZWNpcGllbnRNb2RlbDxUPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2dlb0xvY2F0aW9uKGZvcm0pLnBpcGUoc3dpdGNoTWFwKHAgPT5cclxuICAgICAgdGhpcy5faHR0cC5wb3N0PFJlY2lwaWVudE1vZGVsPGFueT4+KCcvYXBpL21haWwnLCBudWxsLCB7XHJcbiAgICAgICAgcGFyYW1zOiB7XHJcbiAgICAgICAgICBmb3JtLFxyXG4gICAgICAgICAgLi4ucFxyXG4gICAgICAgIH1cclxuICAgICAgfSkpLCB0aGlzLl9ub3RpZnk8VD4oKSk7XHJcbiAgfVxyXG4gIGdldDxUID0gYW55PihpZDogbnVtYmVyLCByZWFkPzogYm9vbGVhbik6IE9ic2VydmFibGU8UmVjaXBpZW50TW9kZWw8VD4+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDxSZWNpcGllbnRNb2RlbDxUPj4oYC9hcGkvbWFpbC8ke2lkfWApLnBpcGUoXHJcbiAgICAgIHRhcCgobTogUmVjaXBpZW50TW9kZWwpID0+XHJcbiAgICAgICAgcmVhZCA9PT0gZmFsc2UgJiYgbS5yZWFkID09PSB0cnVlICYmXHJcbiAgICAgICAgdGhpcy5fdXBkYXRldW5yZWFkY291bnRlcihtLnJlY2VpdmVkLCBtLmZvbGRlcklkLCAtMSlcclxuICAgICAgKSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3VwZGF0ZXVucmVhZGNvdW50ZXIoZGF0ZTogRGF0ZSwgZm9sZGVySWQ6IHN0cmluZywgdmFsOiBudW1iZXIpIHtcclxuICAgIGlmIChcclxuICAgICAgLy8gZGF0ZSBpcyBhYm92ZSB3YXRlcm1hcmtcclxuICAgICAgdGhpcy5fc2Vzc2lvbi5wcm9maWxlLm9wdGlvbnMuaW5ib3hWaWV3ICYmXHJcbiAgICAgIHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5vcHRpb25zLmluYm94VmlldyA8IGRhdGVcclxuICAgIClcclxuICAgICAgdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmluYm94Q291bnQgKz0gdmFsO1xyXG4gICAgLy8gZGVjcmVhc2VcclxuICAgIGNvbnN0IGZvbGRlciA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5mb2xkZXJzLlxyXG4gICAgICBmaW5kKGYgPT4gZi5uYW1lID09PSBmb2xkZXJJZCk7XHJcbiAgICBmb2xkZXIuY291bnQgPSBNYXRoLm1heCgwLCBmb2xkZXIuY291bnQgKyB2YWwpO1xyXG4gIH1cclxuXHJcbiAgc2F2ZTxUID0gYW55PihpZDogbnVtYmVyLCBmb3JtOiBzdHJpbmcsIHZlcnNpb246IG51bWJlciwgbW9kZWw6IHt9LCBmaWxlcz86IEZpbGVbXSB8IEZpbGVMaXN0KTogT2JzZXJ2YWJsZTxSZWNpcGllbnRNb2RlbDxUPj4ge1xyXG4gICAgLy9jb25zdCBmZCA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gICAgLy9jb25zdCBtb2RlbEJsb2IgPSBuZXcgQmxvYihbSlNPTi5zdHJpbmdpZnkobW9kZWwpXSwge1xyXG4gICAgLy8gIHR5cGU6ICdhcHBsaWNhdGlvbi9qc29uJyxcclxuICAgIC8vfSk7XHJcbiAgICAvL2ZkLmFwcGVuZCgnZm9ybS1kYXRhJywgbW9kZWxCbG9iKTtcclxuICAgIC8vaWYgKGZpbGVzKSB7XHJcbiAgICAvLyAgaWYgKGlzQXJyYXkoZmlsZXMpKSBmaWxlcy5mb3JFYWNoKGYgPT5cclxuICAgIC8vICAgIGZkLmFwcGVuZChmLm5hbWUsIGYpKTtcclxuICAgIC8vICBlbHNlIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyBpKyspIHtcclxuICAgIC8vICAgIGxldCBmaWxlID0gZmlsZXMuaXRlbShpKTtcclxuICAgIC8vICAgIGZkLmFwcGVuZChmaWxlLm5hbWUsIGZpbGUpO1xyXG4gICAgLy8gIH1cclxuICAgIC8vfVxyXG4gICAgLy8gIHJldHVybiB0aGlzLl93aXRoR2VvTG9jYXRpb24oZm9ybSkucGlwZShzd2l0Y2hNYXAocGFyYW1zID0+IHtcclxuICAgIC8vICAgIGxldCB1cmwgPSBgL2FwaS9tYWlsLyR7aWR9P3ZlcnNpb249JHt2ZXJzaW9ufWA7XHJcbiAgICAvLyAgICBPYmplY3Qua2V5cyhwYXJhbXMpLmZvckVhY2gocCA9PiB1cmwgKz0gYCYke3B9PSR7cGFyYW1zW3BdfWApO1xyXG4gICAgLy8gICAgY29uc3QgcmVxID0gbmV3IEh0dHBSZXF1ZXN0KCdQVVQnLCB1cmwsIGZkLCB7XHJcbiAgICAvLyAgICB9KTtcclxuICAgIC8vICAgIHJldHVybiB0aGlzLl9odHRwLnJlcXVlc3QocmVxKS5waXBlKG1hcChldmVudCA9PiB7XHJcbiAgICAvLyAgICAgIGNvbnN0IHJlcyA9IGV2ZW50IGFzIEh0dHBSZXNwb25zZTxhbnk+O1xyXG4gICAgLy8gICAgICBpZiAocmVzLnN0YXR1cyA9PT0gMjAwKSB7XHJcbiAgICAvLyAgICAgICAgY29uc3QgbW9kZWwgPSByZXMuYm9keSBhcyBSZWNpcGllbnRNb2RlbDxhbnk+O1xyXG4gICAgLy8gICAgICAgIHJldHVybiBtb2RlbDtcclxuICAgIC8vICAgICAgfVxyXG4gICAgLy8gICAgICBlbHNlXHJcbiAgICAvLyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoeyBzdGF0dXM6IHJlcy5zdGF0dXMsIGVycm9yOiByZXMuYm9keSB9KTtcclxuICAgIC8vICAgIH0pKVxyXG4gICAgLy8gIH0pLCB0aGlzLl9ub3RpZnk8VD4oKSk7XHJcbiAgICByZXR1cm4gdGhpcy5fZ2VvTG9jYXRpb24oZm9ybSkucGlwZShcclxuICAgICAgc3dpdGNoTWFwKHBhcmFtcyA9PnRoaXMuX2h0dHAucHV0PFJlY2lwaWVudE1vZGVsPFQ+PihgL2FwaS9tYWlsLyR7aWR9P3ZlcnNpb249JHt2ZXJzaW9ufWAsIG1vZGVsLCB7IHBhcmFtcyB9KSksXHJcbiAgICAgIHRoaXMuX25vdGlmeTxUPigpKTtcclxuICB9XHJcbiAgZGVsZXRlKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZGVsZXRlKGAvYXBpL21haWwvJHtpZH1gKS5waXBlKHRhcCgoKSA9PlxyXG4gICAgICB0aGlzLl9kZWxldGUkLm5leHQoaWQpKSk7XHJcbiAgfVxyXG4gIHJlbW92ZWNvbW1lbnQoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5kZWxldGUoYC9hcGkvY29tbWVudHMvJHtpZH1gKTtcclxuICB9XHJcbiAgc3VibWl0PFQgPSBhbnk+KGlkOiBudW1iZXIsIHZlcnNpb246IG51bWJlciwgZm9ybTogc3RyaW5nLCBtb2RlbD86IGFueSwgcmVhZD86IGJvb2xlYW4sIGZvbGRlcklkPzogc3RyaW5nLCByZWNlaXZlZD86IERhdGUpOiBPYnNlcnZhYmxlPFJlY2lwaWVudE1vZGVsPFQ+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZ2VvTG9jYXRpb24oZm9ybSkucGlwZShzd2l0Y2hNYXAocGFyYW1zID0+XHJcbiAgICAgIHRoaXMuX2h0dHAucHV0PFJlY2lwaWVudE1vZGVsPGFueT4+KGAvYXBpL21haWwvJHtpZH0/dmVyc2lvbj0ke3ZlcnNpb259JmdvPXRydWVgLCBtb2RlbCwgeyBwYXJhbXMgfSkpKS5waXBlKFxyXG4gICAgICAgIHRoaXMuX25vdGlmeTxUPigpKTtcclxuICB9XHJcbiAgc2VuZDxUID0gYW55PihpZDogbnVtYmVyLCB2ZXJzaW9uOiBudW1iZXIsIGZvcm06IHN0cmluZywgbW9kZWw6IGFueSwgYWN0aW9uOiBzdHJpbmcsIGFjdGlvbkFyZ3M6IHt9LCByZWFkPzogYm9vbGVhbiwgZm9sZGVySWQ/OiBzdHJpbmcsIHJlY2VpdmVkPzogRGF0ZSk6IE9ic2VydmFibGU8UmVjaXBpZW50TW9kZWw8VD4+IHtcclxuICAgIHJldHVybiB0aGlzLl9nZW9Mb2NhdGlvbihmb3JtKS5waXBlKHN3aXRjaE1hcChwYXJhbXMgPT5cclxuICAgICAgdGhpcy5faHR0cC5wdXQ8UmVjaXBpZW50TW9kZWw8VD4+KGAvYXBpL21haWwvJHtpZH0/dmVyc2lvbj0ke3ZlcnNpb259JmFjdGlvbj0ke2FjdGlvbn1gLCBtb2RlbCwgeyBwYXJhbXM6IHsgLi4ucGFyYW1zLCAuLi5hY3Rpb25BcmdzIH0gfSkpKS5waXBlKFxyXG4gICAgICAgIHRhcCgoKSA9PlxyXG4gICAgICAgICAgcmVhZCA9PT0gZmFsc2UgJiYgdGhpcy5fdXBkYXRldW5yZWFkY291bnRlcihyZWNlaXZlZCwgZm9sZGVySWQsIC0xKVxyXG4gICAgICAgICksXHJcbiAgICAgICAgdGhpcy5fbm90aWZ5PFQ+KCkpO1xyXG4gIH1cclxuICBldmVudHMoc3RhcnRpbmc6IERhdGUsIGVuZGluZz86IERhdGUsIGNvbnRhaW5zPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxTY2hlZHVsZWRFdmVudFtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8U2NoZWR1bGVkRXZlbnRbXT4oYC9hcGkvZXZlbnRzYCwge1xyXG4gICAgICBwYXJhbXM6IHtcclxuICAgICAgICBzdGFydGluZzogc3RhcnRpbmcudG9KU09OKCksXHJcbiAgICAgICAgZW5kaW5nOiBlbmRpbmcudG9KU09OKCksXHJcbiAgICAgICAgY29udGFpbnM6IGNvbnRhaW5zIHx8ICcnXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBjaGFuZ2VFdmVudChpZDogbnVtYmVyLCBvcHRpb25zOiB7IHN0YXJ0aW5nOiBEYXRlOyBlbmRpbmc/OiBEYXRlOyBjb21wbGV0ZT86IGJvb2xlYW4gfSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQoYC9hcGkvZXZlbnRzLyR7aWR9YCwgb3B0aW9ucyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGdldCBnZW8gbG9jYXRpb24gaWYgZm9ybSBzZXR0aW5ncyByZXF1aWVzXHJcbiAgICogQHBhcmFtIGZvcm1cclxuICAgKi9cclxuICBwcml2YXRlIF9nZW9Mb2NhdGlvbihmb3JtOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHsgbG5nPzogc3RyaW5nOyBsYXQ/OiBzdHJpbmcgfT4ge1xyXG4gICAgY29uc3QgY29uZmlndXJhdGlvbiA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5mb3Jtcy5maW5kKGYgPT4gZi5uYW1lID09PSBmb3JtKTtcclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxhbnk+KG9ic2VydmUgPT4ge1xyXG4gICAgICBzd2l0Y2ggKGNvbmZpZ3VyYXRpb24ucG9zaXRpb24pIHtcclxuICAgICAgICBjYXNlICdSZXF1aXJlJzpcclxuICAgICAgICBjYXNlICdBc2snOlxyXG4gICAgICAgICAgbmF2aWdhdG9yLmdlb2xvY2F0aW9uLmdldEN1cnJlbnRQb3NpdGlvbihyID0+IHtcclxuICAgICAgICAgICAgb2JzZXJ2ZS5uZXh0KHtcclxuICAgICAgICAgICAgICBsbmc6IHIuY29vcmRzLmxvbmdpdHVkZS50b1N0cmluZygpLFxyXG4gICAgICAgICAgICAgIGxhdDogci5jb29yZHMubGF0aXR1ZGUudG9TdHJpbmcoKVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgfSwgZSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChjb25maWd1cmF0aW9uLnBvc2l0aW9uID09PSAnQXNrJylcclxuICAgICAgICAgICAgICBvYnNlcnZlLm5leHQoe30pO1xyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgb2JzZXJ2ZS5lcnJvcignbm8gcG9zaXRpb24nKTtcclxuICAgICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgb2JzZXJ2ZS5uZXh0KHt9KTtcclxuICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqL1xyXG4gIHByaXZhdGUgX25vdGlmeSA9IDxUPigpID0+IChvYnNlcnZlOiBPYnNlcnZhYmxlPFJlY2lwaWVudE1vZGVsPFQ+PikgPT4ge1xyXG4gICAgcmV0dXJuIG9ic2VydmUucGlwZSh0YXAobSA9PiB7XHJcbiAgICAgIChtIGFzIEl0ZW1FeHRyYSkubG9hZGVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5fY2hhbmdlJC5uZXh0KG0pO1xyXG4gICAgfSkpO1xyXG4gIH07XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBJdGVtRXh0cmEge1xyXG4gIGxvYWRpbmc/OiBib29sZWFuO1xyXG4gIGxvYWRlZD86IGJvb2xlYW47XHJcbiAgd29ya2luZz86IGJvb2xlYW47XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBBdHRhY2htZW50RXh0cmEgZXh0ZW5kcyBBdHRhY2htZW50IHtcclxuICB1cmw6IFNhZmVVcmw7XHJcbiAgaWNvbj86IHN0cmluZztcclxuICBmaWxlRXh0OiBzdHJpbmc7XHJcbiAgaXNJbWFnZTogYm9vbGVhbjtcclxuICBwcm9ncmVzcz86IG51bWJlcjtcclxuICB2aWV3ZWQ/OiBEYXRlO1xyXG4gIGZhaWxlZD86IGJvb2xlYW47XHJcbn1cclxuZnVuY3Rpb24gaXNIdHRwUmVzcG9uc2U8VD4oZXZlbnQ6IEh0dHBFdmVudDxUPik6IGV2ZW50IGlzIEh0dHBSZXNwb25zZTxUPiB7XHJcbiAgcmV0dXJuIGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuUmVzcG9uc2VcclxufVxyXG5cclxuZnVuY3Rpb24gaXNIdHRwUHJvZ3Jlc3NFdmVudChcclxuICBldmVudDogSHR0cEV2ZW50PHVua25vd24+XHJcbik6IGV2ZW50IGlzIEh0dHBQcm9ncmVzc0V2ZW50IHtcclxuICByZXR1cm4gKFxyXG4gICAgZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5Eb3dubG9hZFByb2dyZXNzIHx8XHJcbiAgICBldmVudC50eXBlID09PSBIdHRwRXZlbnRUeXBlLlVwbG9hZFByb2dyZXNzXHJcbiAgKVxyXG59XHJcbi8vZnVuY3Rpb24gY2FsY3VsYXRlU3RhdGUodXBsb2FkOiBVcGxvYWRFdmVudCwgZXZlbnQ6IEh0dHBFdmVudDx1bmtub3duPikge1xyXG4vLyAgaWYgKGlzSHR0cFByb2dyZXNzRXZlbnQoZXZlbnQpKSB7XHJcbi8vICAgIHJldHVybiBuZXcgVXBsb2FkRXZlbnQoe1xyXG4vLyAgICAgIHByb2dyZXNzOiBldmVudC50b3RhbFxyXG4vLyAgICAgICAgPyBNYXRoLnJvdW5kKCgxMDAgKiBldmVudC5sb2FkZWQpIC8gZXZlbnQudG90YWwpXHJcbi8vICAgICAgICA6IHVwbG9hZC5wcm9ncmVzcyxcclxuLy8gICAgICBzdGF0ZTogJ3Byb2dyZXNzJyxcclxuLy8gICAgfSk7XHJcbi8vICB9XHJcbi8vICBpZiAoaXNIdHRwUmVzcG9uc2UoZXZlbnQpKSB7XHJcbi8vICAgIHJldHVybiBuZXcgVXBsb2FkRXZlbnQoe1xyXG4vLyAgICAgIHByb2dyZXNzOiAxMDAsXHJcbi8vICAgICAgc3RhdGU6ICdkb25lJyxcclxuLy8gICAgfSlcclxuLy8gIH1cclxuLy99XHJcbmV4cG9ydCBjbGFzcyBVcGxvYWRFdmVudCB7XHJcbiAgcmVhZG9ubHkgZmlsZU5hbWU6IHN0cmluZztcclxuICBwcm9ncmVzczogbnVtYmVyO1xyXG4gIC8vIGJ5dGVzXHJcbiAgdG90YWw6IG51bWJlcjtcclxuICBzdGF0ZTogJ3BlbmRpbmcnIHwgJ3Byb2dyZXNzJyB8ICdkb25lJztcclxuICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7IH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHJlcG9ydFByb2dyZXNzKGF0dGFjaG1lbnQ6IEF0dGFjaG1lbnRFeHRyYSkge1xyXG4gIHJldHVybiAoc291cmNlOiBPYnNlcnZhYmxlPEF0dGFjaG1lbnQ+KSA9PiBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlID0+IHtcclxuICAgIHNvdXJjZS5zdWJzY3JpYmUociA9PiB7XHJcbiAgICAgIC8vVE9ETyBwcm9ncmVzc1xyXG4gICAgICAvL2lmIChldmVudCBpbnN0YW5jZW9mIFByb2dyZXNzRXZlbnQpIHtcclxuICAgICAgLy8gIG9ic2VydmUubmV4dChuZXcgVXBsb2FkRXZlbnQoXHJcbiAgICAgIC8vICAgIGZpbGUubmFtZSxcclxuICAgICAgLy8gICAgKGV2ZW50IGFzIFByb2dyZXNzRXZlbnQpLmxvYWRlZCxcclxuICAgICAgLy8gICAgKGV2ZW50IGFzIFByb2dyZXNzRXZlbnQpLnRvdGFsXHJcbiAgICAgIC8vICApKTtcclxuICAgICAgLy99IGVsc2UgaWYgKGV2ZW50IGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlKSB7XHJcbiAgICAgIC8vICBjb25zdCByZXMgPSBldmVudCBhcyBIdHRwUmVzcG9uc2U8YW55PjtcclxuICAgICAgLy8gIGlmIChyZXMuc3RhdHVzID09PSAyMDApIHtcclxuICAgICAgLy8gICAgY29uc3QgbW9kZWwgPSByZXMuYm9keSBhcyBBdHRhY2htZW50O1xyXG4gICAgICAvLyAgICBvYnNlcnZlLm5leHQobW9kZWwpO1xyXG4gICAgICAvLyAgfVxyXG4gICAgICAvLyAgZWxzZVxyXG4gICAgICAvLyAgICBvYnNlcnZlLmVycm9yKHsgc3RhdHVzOiByZXMuc3RhdHVzLCBlcnJvcjogcmVzLmJvZHkgfSk7XHJcbiAgICAgIC8vICBvYnNlcnZlLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgICAvL2lmIChhIGluc3RhbmNlb2YgVXBsb2FkRXZlbnQpIHtcclxuICAgICAgICAgIC8vICBPYmplY3QuYXNzaWduKGl0ZW0sIHtcclxuICAgICAgICAgIC8vICAgIHByb2dyZXNzOiBhLmxvYWRlZCAvIGEudG90YWxcclxuICAgICAgICAgIC8vICB9KTtcclxuICAgICAgICAgIC8vICByZXR1cm47XHJcbiAgICAgICAgICAvL31cclxuICAgICAgb2JzZXJ2ZS5uZXh0KHIpO1xyXG4gICAgICBvYnNlcnZlLmNvbXBsZXRlKCk7XHJcblxyXG4gICAgfSwgZSA9PiBvYnNlcnZlLmVycm9yKGUpKTtcclxuICB9KTtcclxufVxyXG5leHBvcnQgY2xhc3MgUG9zaXRpb25FcnJvciB7XHJcbiAgcmVhZG9ubHkgY29kZTogbnVtYmVyO1xyXG4gIHJlYWRvbmx5IG1lc3NhZ2U6IHN0cmluZztcclxuICByZWFkb25seSBQRVJNSVNTSU9OX0RFTklFRDogbnVtYmVyO1xyXG4gIHJlYWRvbmx5IFBPU0lUSU9OX1VOQVZBSUxBQkxFOiBudW1iZXI7XHJcbiAgcmVhZG9ubHkgVElNRU9VVDogbnVtYmVyO1xyXG59XHJcbiJdfQ==
406
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbGJveC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb3JlL21haWxib3guc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBRUwsYUFBYSxFQUNNLFdBQVcsRUFBRSxZQUFZLEVBQzdDLE1BQU0sc0JBQXNCLENBQUM7QUFHOUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQU8sTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7O0FBSy9DLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBcUIsT0FBTyxDQUFDLENBQUM7QUFTOUUsTUFBTSxPQUFPLGNBQWM7SUFNekIsWUFBb0IsUUFBd0IsRUFDbEMsS0FBeUIsRUFDakMsU0FBcUIsRUFDYixLQUFpQjtRQUhQLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ2xDLFVBQUssR0FBTCxLQUFLLENBQW9CO1FBRXpCLFVBQUssR0FBTCxLQUFLLENBQVk7UUFSVixhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQXVCLENBQUM7UUFDOUMsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7UUFDbEQsTUFBTTtRQUNVLFlBQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3ZDLFlBQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBdVZ2RDtXQUNHO1FBQ0ssWUFBTyxHQUFHLEdBQU0sRUFBRSxDQUFDLENBQUMsT0FBc0MsRUFBRSxFQUFFO1lBQ3BFLE9B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SyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUIsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBQ0QsTUFBTSxPQUFPLGFBQWE7Q0FNekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIEh0dHBDbGllbnQsIEh0dHBFdmVudCxcclxuICBIdHRwRXZlbnRUeXBlLFxyXG4gIEh0dHBQcm9ncmVzc0V2ZW50LCBIdHRwUmVxdWVzdCwgSHR0cFJlc3BvbnNlXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBDb21tZW50LCBVc2VySW5mbywgUmVjaXBpZW50TW9kZWwsIEF0dGFjaG1lbnQsIFNjaGVkdWxlZEV2ZW50LCBIZWFkZXJNb2RlbCwgRG9jdW1lbnRNb2RlbCwgVm90ZSwgQ29tbWVudFZlcnNpb24sIENoYWluIH0gZnJvbSAnLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4vc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YXAsIHN3aXRjaE1hcCwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBjbGVhbnVwLCBpc0FycmF5IH0gZnJvbSAnLi9mdW5jdGlvbnMnO1xyXG5pbXBvcnQgeyBIdWJTZXJ2aWNlIH0gZnJvbSAnLi9odWIuc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uSW1wbCB9IGZyb20gJy4vYXV0aGVudGljYXRpb24nO1xyXG5pbXBvcnQgeyBTYWZlVXJsIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcblxyXG5leHBvcnQgY29uc3QgRE9DVU1FTlRfTU9ERUwgPSBuZXcgSW5qZWN0aW9uVG9rZW48RG9jdW1lbnRNb2RlbDxhbnk+PignbW9kZWwnKTtcclxuXHJcbmV4cG9ydCB0eXBlIEZpbHRlclR5cGUgPSAncmVjZW50JyB8ICd1bnJlYWQnIHwgJ2ZsYWdnZWQnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2VFdmVudDxUPiB7XHJcbiAgbW9kZWw6IFJlY2lwaWVudE1vZGVsPFQ+O1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgTWFpbGJveFNlcnZpY2Uge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2NoYW5nZSQgPSBuZXcgU3ViamVjdDxSZWNpcGllbnRNb2RlbDxhbnk+PigpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2RlbGV0ZSQgPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XHJcbiAgLyoqICovXHJcbiAgcHVibGljIHJlYWRvbmx5IGNoYW5nZWQgPSB0aGlzLl9jaGFuZ2UkLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIHB1YmxpYyByZWFkb25seSBkZWxldGVkID0gdGhpcy5fZGVsZXRlJC5hc09ic2VydmFibGUoKTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX2F1dGg6IEF1dGhlbnRpY2F0aW9uSW1wbCxcclxuICAgIG1lc3NhZ2luZzogSHViU2VydmljZSxcclxuICAgIHByaXZhdGUgX2h0dHA6IEh0dHBDbGllbnQpIHtcclxuICAgIG1lc3NhZ2luZy5uZXckLlxyXG4gICAgICBzdWJzY3JpYmUobSA9PiB7XHJcbiAgICAgICAgaWYgKG0udXNlcklkICE9PSBfc2Vzc2lvbi5wcm9maWxlLnVzZXJJZCkgcmV0dXJuO1xyXG4gICAgICAgIF9zZXNzaW9uLnByb2ZpbGUuaW5ib3hDb3VudCsrO1xyXG4gICAgICAgIGNvbnN0IGZvbGRlciA9IF9zZXNzaW9uLnByb2ZpbGUuZm9sZGVycy5maW5kKGYgPT4gZi5uYW1lID09PSBtLm1vZGVsLmZvbGRlcklkKTtcclxuICAgICAgICBmb2xkZXIuY291bnQrKztcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIGZvcm1hdERvd25sb2FkVXJsKGRvY3VtZW50SWQ6IG51bWJlciwgZmlsZUlkOiBudW1iZXIsIGlubGluZT86IGJvb2xlYW4pOiBzdHJpbmcge1xyXG4gICAgY29uc3QgdG9rZW4gPSB0aGlzLl9hdXRoLmdldEFjY2Vzc1Rva2VuKCk7XHJcbiAgICByZXR1cm4gYC9hcGkvYXR0YWNobWVudHMvJHtkb2N1bWVudElkfS8ke2ZpbGVJZH0/YWNjZXNzX3Rva2VuPSR7dG9rZW59JmlubGluZT0ke2lubGluZSA/IHRydWUgOiBmYWxzZX1gO1xyXG4gIH1cclxuICBkb3dubG9hZChkb2N1bWVudElkOiBudW1iZXIsIGZpbGVJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIC8vbmV3IE9ic2VydmFibGU8YW55PihvYnNlcnZlID0+IHtcclxuICAgIC8vICBvYnNlcnZlLm5leHQoe30pO1xyXG4gICAgLy8gIHJldHVybiB7XHJcbiAgICAvLyAgICB1bnN1YnNjcmliZSgpIHsgfVxyXG4gICAgLy8gIH1cclxuICAgIC8vfSk7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQoYC9hcGkvYXR0YWNobWVudHMvJHtkb2N1bWVudElkfS8ke2ZpbGVJZH1gLCB7XHJcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJyxcclxuICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHRydWVcclxuICAgIH0pO1xyXG4gIH1cclxuICByZW1vdmVhdHRhY2htZW50KHJlY2lwaWVudElkOiBudW1iZXIsIGZpbGVJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmRlbGV0ZShgL2FwaS9hdHRhY2htZW50cy8ke3JlY2lwaWVudElkfS8ke2ZpbGVJZH1gKTtcclxuICB9XHJcbiAgcmVhZChpZDogbnVtYmVyLCByZWFkOiBib29sZWFuLCBmb2xkZXJJZD86IHN0cmluZywgcmVjZWl2ZWQ/OiBEYXRlKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnB1dChgL2FwaS9tYWlsYm94L3JlYWQvJHtpZH1gLCB1bmRlZmluZWQsIHsgcGFyYW1zOiB7IHJlYWQgfSBhcyBhbnkgfSkucGlwZSh0YXAoKCkgPT5cclxuICAgICAgZm9sZGVySWQgJiYgdGhpcy5fdXBkYXRldW5yZWFkY291bnRlcihyZWNlaXZlZCwgZm9sZGVySWQsIHJlYWQgPyAxIDogLTEpXHJcbiAgICApKTtcclxuICB9XHJcbiAgY29tbWVudHMoaWQ6IG51bWJlciwgYmVmb3JlOiBEYXRlKTogT2JzZXJ2YWJsZTxDb21tZW50W10+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDxDb21tZW50W10+KGAvYXBpL2NvbW1lbnRzLyR7aWR9YCwgeyBwYXJhbXM6IHsgYmVmb3JlOiBuZXcgRGF0ZShiZWZvcmUpLnRvSlNPTigpIH0gfSk7XHJcbiAgfVxyXG4gIHRhZ3MoaWQ6IG51bWJlciwgdGFnczogc3RyaW5nW10pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0KGAvYXBpL21haWxib3gvdGFnLyR7aWR9YCwgeyB0YWdzIH0pLnBpcGUodGFwKCgpID0+IHtcclxuICAgICAgdGhpcy5fY2hhbmdlJC5uZXh0KHsgaWQsIHRhZ3MgfSBhcyBhbnkpO1xyXG4gICAgfSkpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gZG9jdW1lbnRJZFxyXG4gICAqIEBwYXJhbSBzdGF0ZUlkXHJcbiAgICogQHBhcmFtIHVzZXJJZCBzdWJzdGl0dXRlXHJcbiAgICovXHJcbiAgY2hhbmdlU3RhdGUoZG9jdW1lbnRJZDogbnVtYmVyLCBzdGF0ZUlkOiBzdHJpbmcsIHVzZXJJZD86IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQoYC9hcGkvbWFpbGJveC9jaGFuZ2VzdGF0ZS8ke2RvY3VtZW50SWR9YCwgeyBzdGF0ZUlkLCB1c2VySWQgfSk7XHJcbiAgfVxyXG4gIG1vdmUoaWQ6IG51bWJlciwgZm9sZGVySWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQoYC9hcGkvbWFpbGJveC9tb3ZlLyR7aWR9P2ZvbGRlcklkPSR7Zm9sZGVySWR9YCwge30pLnBpcGUodGFwKCgpID0+IHtcclxuICAgICAgdGhpcy5fY2hhbmdlJC5uZXh0KHtcclxuICAgICAgICBpZCxcclxuICAgICAgICBmb2xkZXJJZFxyXG4gICAgICB9IGFzIGFueSk7XHJcbiAgICB9KSk7XHJcbiAgfVxyXG4gIGNoZWNrT3V0KHJlY2lwaWVudElkOiBudW1iZXIsIHZlcnNpb246IG51bWJlciwgYXR0YWNobWVudElkOiBudW1iZXIpIHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnB1dDxBdHRhY2htZW50PihgL2FwaS9hdHRhY2htZW50cy8ke3JlY2lwaWVudElkfS8ke2F0dGFjaG1lbnRJZH0vY2hlY2tvdXRgLCBudWxsLCB7IHBhcmFtczogeyB2ZXJzaW9uIH0gfSk7XHJcbiAgfVxyXG4gIGNoZWNrSW4ocmVjaXBpZW50SWQ6IG51bWJlciwgdmVyc2lvbjogbnVtYmVyLCBhdHRhY2htZW50SWQ6IG51bWJlciwgZmlsZTogRmlsZSk6IE9ic2VydmFibGU8QXR0YWNobWVudD4ge1xyXG4gICAgY29uc3QgZmQgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgIGZkLmFwcGVuZChmaWxlLm5hbWUsIGZpbGUpO1xyXG4gICAgY29uc3QgcmVxID0gbmV3IEh0dHBSZXF1ZXN0KCdQVVQnLFxyXG4gICAgICBgL2FwaS9hdHRhY2htZW50cy8ke3JlY2lwaWVudElkfS8ke2F0dGFjaG1lbnRJZH0vY2hlY2tpbj92ZXJzaW9uPSR7dmVyc2lvbn1gLCBmZCwge1xyXG4gICAgICByZXBvcnRQcm9ncmVzczogdHJ1ZSxcclxuICAgIH0pO1xyXG4gICAgLy9jb25zdCBpbml0aWFsU3RhdGU6IFVwbG9hZEV2ZW50ID0geyBzdGF0ZTogJ1BFTkRJTkcnLCBwcm9ncmVzczogMCB9XHJcbiAgICAvL2NvbnN0IGNhbGN1bGF0ZVN0YXRlID0gKFxyXG4gICAgLy8gIHVwbG9hZDogVXBsb2FkRXZlbnQsXHJcbiAgICAvLyAgZXZlbnQ6IEh0dHBFdmVudDx1bmtub3duPlxyXG4gICAgLy8pOiBVcGxvYWRFdmVudCA9PiB7XHJcbiAgICAvLyAgLy8gaW1wbGVtZW50YXRpb25cclxuICAgIC8vfVxyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPGFueT4ob2JzZXJ2ZSA9PiB7XHJcbiAgICAgIHRoaXMuX2h0dHAucmVxdWVzdChyZXEpLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgUHJvZ3Jlc3NFdmVudCkge1xyXG4gICAgICAgICAgLy8gIG9ic2VydmUubmV4dChuZXcgVXBsb2FkRXZlbnQoXHJcbiAgICAgICAgICAvLyAgICBmaWxlLm5hbWUsXHJcbiAgICAgICAgICAvLyAgICAoZXZlbnQgYXMgUHJvZ3Jlc3NFdmVudCkubG9hZGVkLFxyXG4gICAgICAgICAgLy8gICAgKGV2ZW50IGFzIFByb2dyZXNzRXZlbnQpLnRvdGFsXHJcbiAgICAgICAgICAvLyAgKSk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChldmVudCBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSkge1xyXG4gICAgICAgICAgY29uc3QgcmVzID0gZXZlbnQgYXMgSHR0cFJlc3BvbnNlPGFueT47XHJcbiAgICAgICAgICBpZiAocmVzLnN0YXR1cyA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1vZGVsID0gcmVzLmJvZHkgYXMgQXR0YWNobWVudDtcclxuICAgICAgICAgICAgb2JzZXJ2ZS5uZXh0KG1vZGVsKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgb2JzZXJ2ZS5lcnJvcih7IHN0YXR1czogcmVzLnN0YXR1cywgZXJyb3I6IHJlcy5ib2R5IH0pO1xyXG4gICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSwgZSA9PiB7XHJcbiAgICAgICAgb2JzZXJ2ZS5lcnJvcihlKTtcclxuICAgICAgICBvYnNlcnZlLmNvbXBsZXRlKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIHVuc3Vic2NyaWJlKCkge1xyXG4gICAgICAgICAgLy9yZXEuXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgdXBsb2FkKHJlY2lwaWVudElkOiBudW1iZXIsIGZvcm1JZDogc3RyaW5nLCB2ZXJzaW9uOiBudW1iZXIsIGZpbGU6IEZpbGUsIG9wdGlvbnM/OiB7IGlzUHJpdmF0ZT86IGJvb2xlYW4gfSk6IE9ic2VydmFibGU8QXR0YWNobWVudD47XHJcbiAgdXBsb2FkKHJlY2lwaWVudElkOiBudW1iZXIsIGZvcm1JZDogc3RyaW5nLCB2ZXJzaW9uOiBudW1iZXIsIGZpbGVzOiBGaWxlW10sIG9wdGlvbnM/OiB7IGlzUHJpdmF0ZT86IGJvb2xlYW4gfSk6IE9ic2VydmFibGU8QXR0YWNobWVudFtdPjtcclxuICB1cGxvYWQocmVjaXBpZW50SWQ6IG51bWJlciwgZm9ybUlkOiBzdHJpbmcsIHZlcnNpb246IG51bWJlciwgZmlsZXM6IEZpbGUgfCBGaWxlW10sIG9wdGlvbnM/OiB7IGlzUHJpdmF0ZT86IGJvb2xlYW4gfSk6IE9ic2VydmFibGU8QXR0YWNobWVudCB8IEF0dGFjaG1lbnRbXT4ge1xyXG4gICAgY29uc3QgZmQgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgIGlmIChpc0FycmF5KGZpbGVzKSkgZmlsZXMuZm9yRWFjaChmID0+XHJcbiAgICAgIGZkLmFwcGVuZChmLm5hbWUsIGYpKTtcclxuICAgIGVsc2UgZmQuYXBwZW5kKGZpbGVzLm5hbWUsIGZpbGVzKTtcclxuICAgIC8vY29uc3QgYnl0ZXNQZXJDaHVuayA9IDIwICogMTAyNCAqIDEwMjQ7XHJcbiAgICAvLyBhcXVpcmUgdGhlIGxvY2F0aW9uIHByaW9yIHRvIHNlbmRpbmcgdGhlIHJlcXVlc3RcclxuICAgIHJldHVybiB0aGlzLl9nZW9Mb2NhdGlvbihmb3JtSWQpLnBpcGUoc3dpdGNoTWFwKHBhcmFtcyA9PlxyXG4gICAgICBuZXcgT2JzZXJ2YWJsZTxhbnk+KG9ic2VydmUgPT4ge1xyXG4gICAgICAgIGxldCB1cmwgPSBgL2FwaS9hdHRhY2htZW50cy8ke3JlY2lwaWVudElkfT92ZXJzaW9uPSR7dmVyc2lvbn1gO1xyXG4gICAgICAgIE9iamVjdC5rZXlzKHBhcmFtcykuZm9yRWFjaChwID0+IHVybCArPSBgJiR7cH09JHtwYXJhbXNbcF19YCk7XHJcbiAgICAgICAgaWYgKG9wdGlvbnMpIHtcclxuICAgICAgICAgIGlmIChvcHRpb25zLmlzUHJpdmF0ZSkgdXJsICs9ICcmaXNwcml2YXRlPXRydWUnXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHJlcSA9IG5ldyBIdHRwUmVxdWVzdCgnUE9TVCcsIHVybCwgZmQsIHtcclxuICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiB0cnVlLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuX2h0dHAucmVxdWVzdChyZXEpLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBQcm9ncmVzc0V2ZW50KSB7XHJcbiAgICAgICAgICAgIC8vIFRoaXMgaXMgYW4gdXBsb2FkIHByb2dyZXNzIGV2ZW50LiBDb21wdXRlIGFuZCBzaG93IHRoZSAlIGRvbmU6XHJcbiAgICAgICAgICAgIC8vY29uc3QgcGVyY2VudERvbmUgPSBNYXRoLnJvdW5kKDEwMCAqIGV2ZW50LmxvYWRlZCAvIGV2ZW50LnRvdGFsKTtcclxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhgRmlsZSBpcyAke3BlcmNlbnREb25lfSUgdXBsb2FkZWQuYCk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50IGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlcyA9IGV2ZW50IGFzIEh0dHBSZXNwb25zZTxhbnk+O1xyXG4gICAgICAgICAgICBpZiAocmVzLnN0YXR1cyA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgbW9kZWwgPSByZXMuYm9keSBhcyBBdHRhY2htZW50W107XHJcbiAgICAgICAgICAgICAgb2JzZXJ2ZS5uZXh0KGlzQXJyYXkoZmlsZXMpID8gbW9kZWwgOiBtb2RlbFswXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgIG9ic2VydmUuZXJyb3IoeyBzdGF0dXM6IHJlcy5zdGF0dXMsIGVycm9yOiByZXMuYm9keSB9KTtcclxuICAgICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sIGUgPT4ge1xyXG4gICAgICAgICAgb2JzZXJ2ZS5lcnJvcihlKTtcclxuICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgdW5zdWJzY3JpYmUoKSB7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KSkpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiByZXRyaWV2ZSBzZW5kZXJzXHJcbiAgICogQHBhcmFtIG5hbWVcclxuICAgKi9cclxuICBzZW5kZXJzKG5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8VXNlckluZm9bXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PFVzZXJJbmZvW10+KCcvYXBpL21haWxib3gvc2VuZGVycy8nLCB7XHJcbiAgICAgIHBhcmFtczoge1xyXG4gICAgICAgIG5hbWVcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGZsYWcoaWQ6IG51bWJlciwgZmxhZzogYm9vbGVhbik6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQoYC9hcGkvbWFpbGJveC9mbGFnLyR7aWR9P2ZsYWc9JHtmbGFnfWAsIG51bGwpLnBpcGUodGFwKCgpID0+IHRoaXMuX2NoYW5nZSQubmV4dCh7IGlkLCBmbGFnIH0gYXMgYW55KSkpO1xyXG4gIH1cclxuICB2aWV3ZWRjb21tZW50cyhpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTx7IHRpbWU6IERhdGUgfT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0PHsgdGltZTogRGF0ZSB9PihgL2FwaS9jb21tZW50cy92aWV3ZWQvJHtpZH1gLCB7fSwgeyBoZWFkZXJzOiB7ICduby1wcm9ncmVzcyc6ICd0cnVlJyB9IH0pLnBpcGUodGFwKChlOiB7IHRpbWU6IERhdGUgfSkgPT4gdGhpcy5fY2hhbmdlJC5uZXh0KHsgaWQsIHZpZXdlZDogZS50aW1lIH0gYXMgYW55KSkpO1xyXG4gIH1cclxuICB0eXBpbmcoaWQ6IG51bWJlcik6IFByb21pc2U8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQoYC9hcGkvY29tbWVudHMvdHlwaW5nLyR7aWR9YCwge30sIHsgaGVhZGVyczogeyAnbm8tcHJvZ3Jlc3MnOiAndHJ1ZScgfSB9KS50b1Byb21pc2UoKTtcclxuICB9XHJcbiAgZWRpdGluZyhpZDogbnVtYmVyKTogUHJvbWlzZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnB1dChgL2FwaS9tYWlsYm94L2VkaXRpbmcvJHtpZH1gLCB7fSwgeyBoZWFkZXJzOiB7ICduby1wcm9ncmVzcyc6ICd0cnVlJyB9IH0pLnRvUHJvbWlzZSgpO1xyXG4gIH1cclxuICBjb3B5KGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFJlY2lwaWVudE1vZGVsPGFueT4+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnBvc3Q8UmVjaXBpZW50TW9kZWw8YW55Pj4oYC9hcGkvbWFpbGJveC9jb3B5LyR7aWR9YCwge30pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gaWQgZG9jdW1lbnQgaWRcclxuICAgKiBAcGFyYW0gb3B0aW9uc1xyXG4gICAqL1xyXG4gIGNvbW1lbnQoaWQ6IG51bWJlciwgb3B0aW9uczoge1xyXG4gICAgdGV4dD86IHN0cmluZyxcclxuICAgIHJlc291cmNlPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfSxcclxuICAgIGltYWdlPzogc3RyaW5nLFxyXG4gICAgcGFyZW50SWQ/OiBudW1iZXJcclxuICB9KTogT2JzZXJ2YWJsZTxDb21tZW50PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wb3N0PENvbW1lbnQ+KGAvYXBpL2NvbW1lbnRzLyR7aWR9YCwgb3B0aW9ucyk7XHJcbiAgfVxyXG4gIGNvbW1lbnR1cGRhdGUoaWQ6IG51bWJlciwgY29tbWVudElkOiBudW1iZXIsIG9wdGlvbnM6IHtcclxuICAgIHRleHQ/OiBzdHJpbmcsXHJcbiAgICBpbWFnZT86IHN0cmluZyxcclxuICAgIHJlc291cmNlPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfVxyXG4gIH0pOiBPYnNlcnZhYmxlPENvbW1lbnQ+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnB1dDxDb21tZW50PihgL2FwaS9jb21tZW50cy9lZGl0LyR7aWR9LyR7Y29tbWVudElkfWAsIG9wdGlvbnMpO1xyXG4gIH1cclxuICBpbmZvPFQgPSBhbnk+KGRvY3VtZW50SWQ6IG51bWJlcik6IE9ic2VydmFibGU8RG9jdW1lbnRNb2RlbDxUPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PERvY3VtZW50TW9kZWw8VD4+KGAvYXBpL21haWxib3gvaW5mby8ke2RvY3VtZW50SWR9YCk7XHJcbiAgfVxyXG4gIHRpbWVsaW5lKGRvY3VtZW50SWQ6IG51bWJlcik6IE9ic2VydmFibGU8Q2hhaW4+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDxDaGFpbj4oYC9hcGkvbWFpbGJveC90aW1lbGluZS8ke2RvY3VtZW50SWR9YCk7XHJcbiAgfVxyXG4gIHZvdGUoaWQ6IG51bWJlciwgY29tbWVudElkOiBudW1iZXIsIHZhbHVlOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucG9zdChgL2FwaS9jb21tZW50cy92b3RlLyR7aWR9LyR7Y29tbWVudElkfWAsIHt9LCB7IHBhcmFtczogeyB2YWx1ZTogdmFsdWUudG9TdHJpbmcoKSB9IH0pO1xyXG4gIH1cclxuICB2b3RlcyhpZDogbnVtYmVyLCBjb21tZW50SWQ6IG51bWJlcik6IE9ic2VydmFibGU8Vm90ZVtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8Vm90ZVtdPihgL2FwaS9jb21tZW50cy92b3Rlcy8ke2lkfS8ke2NvbW1lbnRJZH1gKTtcclxuICB9XHJcbiAgZWRpdHMoaWQ6IG51bWJlciwgY29tbWVudElkOiBudW1iZXIpOiBPYnNlcnZhYmxlPENvbW1lbnRWZXJzaW9uW10+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDxDb21tZW50VmVyc2lvbltdPihgL2FwaS9jb21tZW50cy9lZGl0cy8ke2lkfS8ke2NvbW1lbnRJZH1gKTtcclxuICB9XHJcbiAgZmluZEFsbChmaWx0ZXI6IHsgdHlwZT86IEZpbHRlclR5cGU7IGNvbnRhaW5zPzogc3RyaW5nOyBzdGF0ZT86IHN0cmluZzsgZm9ybT86IHN0cmluZzsgZm9sZGVySWQ/OiBzdHJpbmc7IHNlbmRlcklkPzogc3RyaW5nOyB9LFxyXG4gICAgb3B0aW9ucz86IHsgc2tpcD86IG51bWJlcjsgdGFrZT86IG51bWJlcjsgb3JkZXJCeT86ICd2YWx1ZScgfCAndmlld2VkJyB8ICdkYXRlJyB9KTogT2JzZXJ2YWJsZTxIZWFkZXJNb2RlbFtdPiB7XHJcbiAgICBjb25zdCBwYXJhbXM6IGFueSA9IHsgLi4uZmlsdGVyLCAuLi5vcHRpb25zIH07XHJcbiAgICBjbGVhbnVwKHBhcmFtcyk7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8SGVhZGVyTW9kZWxbXT4oJy9hcGkvbWFpbCcsIHsgcGFyYW1zIH0pO1xyXG4gIH1cclxuICBjcmVhdGU8VCA9IGFueT4oZm9ybTogc3RyaW5nKTogT2JzZXJ2YWJsZTxSZWNpcGllbnRNb2RlbDxUPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2dlb0xvY2F0aW9uKGZvcm0pLnBpcGUoc3dpdGNoTWFwKHAgPT5cclxuICAgICAgdGhpcy5faHR0cC5wb3N0PFJlY2lwaWVudE1vZGVsPGFueT4+KCcvYXBpL21haWwnLCBudWxsLCB7XHJcbiAgICAgICAgcGFyYW1zOiB7XHJcbiAgICAgICAgICBmb3JtLFxyXG4gICAgICAgICAgLi4ucFxyXG4gICAgICAgIH1cclxuICAgICAgfSkpLCB0aGlzLl9ub3RpZnk8VD4oKSk7XHJcbiAgfVxyXG4gIGdldDxUID0gYW55PihpZDogbnVtYmVyLCByZWFkPzogYm9vbGVhbik6IE9ic2VydmFibGU8UmVjaXBpZW50TW9kZWw8VD4+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDxSZWNpcGllbnRNb2RlbDxUPj4oYC9hcGkvbWFpbC8ke2lkfWApLnBpcGUoXHJcbiAgICAgIHRhcCgobTogUmVjaXBpZW50TW9kZWwpID0+XHJcbiAgICAgICAgcmVhZCA9PT0gZmFsc2UgJiYgbS5yZWFkID09PSB0cnVlICYmXHJcbiAgICAgICAgdGhpcy5fdXBkYXRldW5yZWFkY291bnRlcihtLnJlY2VpdmVkLCBtLmZvbGRlcklkLCAtMSlcclxuICAgICAgKSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3VwZGF0ZXVucmVhZGNvdW50ZXIoZGF0ZTogRGF0ZSwgZm9sZGVySWQ6IHN0cmluZywgdmFsOiBudW1iZXIpIHtcclxuICAgIGlmIChcclxuICAgICAgLy8gZGF0ZSBpcyBhYm92ZSB3YXRlcm1hcmtcclxuICAgICAgdGhpcy5fc2Vzc2lvbi5wcm9maWxlLm9wdGlvbnMuaW5ib3hWaWV3ICYmXHJcbiAgICAgIHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5vcHRpb25zLmluYm94VmlldyA8IGRhdGVcclxuICAgIClcclxuICAgICAgdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmluYm94Q291bnQgKz0gdmFsO1xyXG4gICAgLy8gZGVjcmVhc2VcclxuICAgIGNvbnN0IGZvbGRlciA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5mb2xkZXJzLlxyXG4gICAgICBmaW5kKGYgPT4gZi5uYW1lID09PSBmb2xkZXJJZCk7XHJcbiAgICBmb2xkZXIuY291bnQgPSBNYXRoLm1heCgwLCBmb2xkZXIuY291bnQgKyB2YWwpO1xyXG4gIH1cclxuXHJcbiAgc2F2ZTxUID0gYW55PihpZDogbnVtYmVyLCBmb3JtOiBzdHJpbmcsIHZlcnNpb246IG51bWJlciwgbW9kZWw6IHt9LCBmaWxlcz86IEZpbGVbXSB8IEZpbGVMaXN0KTogT2JzZXJ2YWJsZTxSZWNpcGllbnRNb2RlbDxUPj4ge1xyXG4gICAgLy9jb25zdCBmZCA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gICAgLy9jb25zdCBtb2RlbEJsb2IgPSBuZXcgQmxvYihbSlNPTi5zdHJpbmdpZnkobW9kZWwpXSwge1xyXG4gICAgLy8gIHR5cGU6ICdhcHBsaWNhdGlvbi9qc29uJyxcclxuICAgIC8vfSk7XHJcbiAgICAvL2ZkLmFwcGVuZCgnZm9ybS1kYXRhJywgbW9kZWxCbG9iKTtcclxuICAgIC8vaWYgKGZpbGVzKSB7XHJcbiAgICAvLyAgaWYgKGlzQXJyYXkoZmlsZXMpKSBmaWxlcy5mb3JFYWNoKGYgPT5cclxuICAgIC8vICAgIGZkLmFwcGVuZChmLm5hbWUsIGYpKTtcclxuICAgIC8vICBlbHNlIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyBpKyspIHtcclxuICAgIC8vICAgIGxldCBmaWxlID0gZmlsZXMuaXRlbShpKTtcclxuICAgIC8vICAgIGZkLmFwcGVuZChmaWxlLm5hbWUsIGZpbGUpO1xyXG4gICAgLy8gIH1cclxuICAgIC8vfVxyXG4gICAgLy8gIHJldHVybiB0aGlzLl93aXRoR2VvTG9jYXRpb24oZm9ybSkucGlwZShzd2l0Y2hNYXAocGFyYW1zID0+IHtcclxuICAgIC8vICAgIGxldCB1cmwgPSBgL2FwaS9tYWlsLyR7aWR9P3ZlcnNpb249JHt2ZXJzaW9ufWA7XHJcbiAgICAvLyAgICBPYmplY3Qua2V5cyhwYXJhbXMpLmZvckVhY2gocCA9PiB1cmwgKz0gYCYke3B9PSR7cGFyYW1zW3BdfWApO1xyXG4gICAgLy8gICAgY29uc3QgcmVxID0gbmV3IEh0dHBSZXF1ZXN0KCdQVVQnLCB1cmwsIGZkLCB7XHJcbiAgICAvLyAgICB9KTtcclxuICAgIC8vICAgIHJldHVybiB0aGlzLl9odHRwLnJlcXVlc3QocmVxKS5waXBlKG1hcChldmVudCA9PiB7XHJcbiAgICAvLyAgICAgIGNvbnN0IHJlcyA9IGV2ZW50IGFzIEh0dHBSZXNwb25zZTxhbnk+O1xyXG4gICAgLy8gICAgICBpZiAocmVzLnN0YXR1cyA9PT0gMjAwKSB7XHJcbiAgICAvLyAgICAgICAgY29uc3QgbW9kZWwgPSByZXMuYm9keSBhcyBSZWNpcGllbnRNb2RlbDxhbnk+O1xyXG4gICAgLy8gICAgICAgIHJldHVybiBtb2RlbDtcclxuICAgIC8vICAgICAgfVxyXG4gICAgLy8gICAgICBlbHNlXHJcbiAgICAvLyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoeyBzdGF0dXM6IHJlcy5zdGF0dXMsIGVycm9yOiByZXMuYm9keSB9KTtcclxuICAgIC8vICAgIH0pKVxyXG4gICAgLy8gIH0pLCB0aGlzLl9ub3RpZnk8VD4oKSk7XHJcbiAgICByZXR1cm4gdGhpcy5fZ2VvTG9jYXRpb24oZm9ybSkucGlwZShcclxuICAgICAgc3dpdGNoTWFwKHBhcmFtcyA9PnRoaXMuX2h0dHAucHV0PFJlY2lwaWVudE1vZGVsPFQ+PihgL2FwaS9tYWlsLyR7aWR9P3ZlcnNpb249JHt2ZXJzaW9ufWAsIG1vZGVsLCB7IHBhcmFtcyB9KSksXHJcbiAgICAgIHRoaXMuX25vdGlmeTxUPigpKTtcclxuICB9XHJcbiAgZGVsZXRlKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZGVsZXRlKGAvYXBpL21haWwvJHtpZH1gKS5waXBlKHRhcCgoKSA9PlxyXG4gICAgICB0aGlzLl9kZWxldGUkLm5leHQoaWQpKSk7XHJcbiAgfVxyXG4gIHJlbW92ZWNvbW1lbnQoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5kZWxldGUoYC9hcGkvY29tbWVudHMvJHtpZH1gKTtcclxuICB9XHJcbiAgc3VibWl0PFQgPSBhbnk+KGlkOiBudW1iZXIsIHZlcnNpb246IG51bWJlciwgZm9ybTogc3RyaW5nLCBtb2RlbD86IGFueSwgcmVhZD86IGJvb2xlYW4sIGZvbGRlcklkPzogc3RyaW5nLCByZWNlaXZlZD86IERhdGUpOiBPYnNlcnZhYmxlPFJlY2lwaWVudE1vZGVsPFQ+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZ2VvTG9jYXRpb24oZm9ybSkucGlwZShzd2l0Y2hNYXAocGFyYW1zID0+XHJcbiAgICAgIHRoaXMuX2h0dHAucHV0PFJlY2lwaWVudE1vZGVsPGFueT4+KGAvYXBpL21haWwvJHtpZH0/dmVyc2lvbj0ke3ZlcnNpb259JmdvPXRydWVgLCBtb2RlbCwgeyBwYXJhbXMgfSkpKS5waXBlKFxyXG4gICAgICAgIHRoaXMuX25vdGlmeTxUPigpKTtcclxuICB9XHJcbiAgc2VuZDxUID0gYW55PihpZDogbnVtYmVyLCB2ZXJzaW9uOiBudW1iZXIsIGZvcm06IHN0cmluZywgbW9kZWw6IGFueSwgYWN0aW9uOiBzdHJpbmcsIGFjdGlvbkFyZ3M6IHt9LCByZWFkPzogYm9vbGVhbiwgZm9sZGVySWQ/OiBzdHJpbmcsIHJlY2VpdmVkPzogRGF0ZSk6IE9ic2VydmFibGU8UmVjaXBpZW50TW9kZWw8VD4+IHtcclxuICAgIHJldHVybiB0aGlzLl9nZW9Mb2NhdGlvbihmb3JtKS5waXBlKHN3aXRjaE1hcChwYXJhbXMgPT5cclxuICAgICAgdGhpcy5faHR0cC5wdXQ8UmVjaXBpZW50TW9kZWw8VD4+KGAvYXBpL21haWwvJHtpZH0/dmVyc2lvbj0ke3ZlcnNpb259JmFjdGlvbj0ke2FjdGlvbn1gLCBtb2RlbCwgeyBwYXJhbXM6IHsgLi4ucGFyYW1zLCAuLi5hY3Rpb25BcmdzIH0gfSkpKS5waXBlKFxyXG4gICAgICAgIHRhcCgoKSA9PlxyXG4gICAgICAgICAgcmVhZCA9PT0gZmFsc2UgJiYgdGhpcy5fdXBkYXRldW5yZWFkY291bnRlcihyZWNlaXZlZCwgZm9sZGVySWQsIC0xKVxyXG4gICAgICAgICksXHJcbiAgICAgICAgdGhpcy5fbm90aWZ5PFQ+KCkpO1xyXG4gIH1cclxuICBldmVudHMoc3RhcnRpbmc6IERhdGUsIGVuZGluZz86IERhdGUsIGNvbnRhaW5zPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxTY2hlZHVsZWRFdmVudFtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8U2NoZWR1bGVkRXZlbnRbXT4oYC9hcGkvZXZlbnRzYCwge1xyXG4gICAgICBwYXJhbXM6IHtcclxuICAgICAgICBzdGFydGluZzogc3RhcnRpbmcudG9KU09OKCksXHJcbiAgICAgICAgZW5kaW5nOiBlbmRpbmcudG9KU09OKCksXHJcbiAgICAgICAgY29udGFpbnM6IGNvbnRhaW5zIHx8ICcnXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBjaGFuZ2VFdmVudChpZDogbnVtYmVyLCBvcHRpb25zOiB7IHN0YXJ0aW5nOiBEYXRlOyBlbmRpbmc/OiBEYXRlOyBjb21wbGV0ZT86IGJvb2xlYW4gfSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQoYC9hcGkvZXZlbnRzLyR7aWR9YCwgb3B0aW9ucyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGdldCBnZW8gbG9jYXRpb24gaWYgZm9ybSBzZXR0aW5ncyByZXF1aWVzXHJcbiAgICogQHBhcmFtIGZvcm1cclxuICAgKi9cclxuICBwcml2YXRlIF9nZW9Mb2NhdGlvbihmb3JtOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHsgbG5nPzogc3RyaW5nOyBsYXQ/OiBzdHJpbmcgfT4ge1xyXG4gICAgY29uc3QgY29uZmlndXJhdGlvbiA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5mb3Jtcy5maW5kKGYgPT4gZi5uYW1lID09PSBmb3JtKTtcclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxhbnk+KG9ic2VydmUgPT4ge1xyXG4gICAgICBzd2l0Y2ggKGNvbmZpZ3VyYXRpb24ucG9zaXRpb24pIHtcclxuICAgICAgICBjYXNlICdSZXF1aXJlJzpcclxuICAgICAgICBjYXNlICdBc2snOlxyXG4gICAgICAgICAgbmF2aWdhdG9yLmdlb2xvY2F0aW9uLmdldEN1cnJlbnRQb3NpdGlvbihyID0+IHtcclxuICAgICAgICAgICAgb2JzZXJ2ZS5uZXh0KHtcclxuICAgICAgICAgICAgICBsbmc6IHIuY29vcmRzLmxvbmdpdHVkZS50b1N0cmluZygpLFxyXG4gICAgICAgICAgICAgIGxhdDogci5jb29yZHMubGF0aXR1ZGUudG9TdHJpbmcoKVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgfSwgZSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChjb25maWd1cmF0aW9uLnBvc2l0aW9uID09PSAnQXNrJylcclxuICAgICAgICAgICAgICBvYnNlcnZlLm5leHQoe30pO1xyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgb2JzZXJ2ZS5lcnJvcignbm8gcG9zaXRpb24nKTtcclxuICAgICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgb2JzZXJ2ZS5uZXh0KHt9KTtcclxuICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqL1xyXG4gIHByaXZhdGUgX25vdGlmeSA9IDxUPigpID0+IChvYnNlcnZlOiBPYnNlcnZhYmxlPFJlY2lwaWVudE1vZGVsPFQ+PikgPT4ge1xyXG4gICAgcmV0dXJuIG9ic2VydmUucGlwZSh0YXAobSA9PiB7XHJcbiAgICAgIChtIGFzIEl0ZW1FeHRyYSkubG9hZGVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5fY2hhbmdlJC5uZXh0KG0pO1xyXG4gICAgfSkpO1xyXG4gIH07XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBJdGVtRXh0cmEge1xyXG4gIGxvYWRpbmc/OiBib29sZWFuO1xyXG4gIGxvYWRlZD86IGJvb2xlYW47XHJcbiAgd29ya2luZz86IGJvb2xlYW47XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBBdHRhY2htZW50RXh0cmEgZXh0ZW5kcyBBdHRhY2htZW50IHtcclxuICB1cmw6IFNhZmVVcmw7XHJcbiAgaWNvbj86IHN0cmluZztcclxuICBmaWxlRXh0OiBzdHJpbmc7XHJcbiAgaXNJbWFnZTogYm9vbGVhbjtcclxuICBwcm9ncmVzcz86IG51bWJlcjtcclxuICB2aWV3ZWQ/OiBEYXRlO1xyXG4gIGZhaWxlZD86IGJvb2xlYW47XHJcbn1cclxuZnVuY3Rpb24gaXNIdHRwUmVzcG9uc2U8VD4oZXZlbnQ6IEh0dHBFdmVudDxUPik6IGV2ZW50IGlzIEh0dHBSZXNwb25zZTxUPiB7XHJcbiAgcmV0dXJuIGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuUmVzcG9uc2VcclxufVxyXG5cclxuZnVuY3Rpb24gaXNIdHRwUHJvZ3Jlc3NFdmVudChcclxuICBldmVudDogSHR0cEV2ZW50PHVua25vd24+XHJcbik6IGV2ZW50IGlzIEh0dHBQcm9ncmVzc0V2ZW50IHtcclxuICByZXR1cm4gKFxyXG4gICAgZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5Eb3dubG9hZFByb2dyZXNzIHx8XHJcbiAgICBldmVudC50eXBlID09PSBIdHRwRXZlbnRUeXBlLlVwbG9hZFByb2dyZXNzXHJcbiAgKVxyXG59XHJcbi8vZnVuY3Rpb24gY2FsY3VsYXRlU3RhdGUodXBsb2FkOiBVcGxvYWRFdmVudCwgZXZlbnQ6IEh0dHBFdmVudDx1bmtub3duPikge1xyXG4vLyAgaWYgKGlzSHR0cFByb2dyZXNzRXZlbnQoZXZlbnQpKSB7XHJcbi8vICAgIHJldHVybiBuZXcgVXBsb2FkRXZlbnQoe1xyXG4vLyAgICAgIHByb2dyZXNzOiBldmVudC50b3RhbFxyXG4vLyAgICAgICAgPyBNYXRoLnJvdW5kKCgxMDAgKiBldmVudC5sb2FkZWQpIC8gZXZlbnQudG90YWwpXHJcbi8vICAgICAgICA6IHVwbG9hZC5wcm9ncmVzcyxcclxuLy8gICAgICBzdGF0ZTogJ3Byb2dyZXNzJyxcclxuLy8gICAgfSk7XHJcbi8vICB9XHJcbi8vICBpZiAoaXNIdHRwUmVzcG9uc2UoZXZlbnQpKSB7XHJcbi8vICAgIHJldHVybiBuZXcgVXBsb2FkRXZlbnQoe1xyXG4vLyAgICAgIHByb2dyZXNzOiAxMDAsXHJcbi8vICAgICAgc3RhdGU6ICdkb25lJyxcclxuLy8gICAgfSlcclxuLy8gIH1cclxuLy99XHJcbmV4cG9ydCBjbGFzcyBVcGxvYWRFdmVudCB7XHJcbiAgcmVhZG9ubHkgZmlsZU5hbWU6IHN0cmluZztcclxuICBwcm9ncmVzczogbnVtYmVyO1xyXG4gIC8vIGJ5dGVzXHJcbiAgdG90YWw6IG51bWJlcjtcclxuICBzdGF0ZTogJ3BlbmRpbmcnIHwgJ3Byb2dyZXNzJyB8ICdkb25lJztcclxuICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7IH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHJlcG9ydFByb2dyZXNzKGF0dGFjaG1lbnQ6IEF0dGFjaG1lbnRFeHRyYSkge1xyXG4gIHJldHVybiAoc291cmNlOiBPYnNlcnZhYmxlPEF0dGFjaG1lbnQ+KSA9PiBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlID0+IHtcclxuICAgIHNvdXJjZS5zdWJzY3JpYmUociA9PiB7XHJcbiAgICAgIC8vVE9ETyBwcm9ncmVzc1xyXG4gICAgICAvL2lmIChldmVudCBpbnN0YW5jZW9mIFByb2dyZXNzRXZlbnQpIHtcclxuICAgICAgLy8gIG9ic2VydmUubmV4dChuZXcgVXBsb2FkRXZlbnQoXHJcbiAgICAgIC8vICAgIGZpbGUubmFtZSxcclxuICAgICAgLy8gICAgKGV2ZW50IGFzIFByb2dyZXNzRXZlbnQpLmxvYWRlZCxcclxuICAgICAgLy8gICAgKGV2ZW50IGFzIFByb2dyZXNzRXZlbnQpLnRvdGFsXHJcbiAgICAgIC8vICApKTtcclxuICAgICAgLy99IGVsc2UgaWYgKGV2ZW50IGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlKSB7XHJcbiAgICAgIC8vICBjb25zdCByZXMgPSBldmVudCBhcyBIdHRwUmVzcG9uc2U8YW55PjtcclxuICAgICAgLy8gIGlmIChyZXMuc3RhdHVzID09PSAyMDApIHtcclxuICAgICAgLy8gICAgY29uc3QgbW9kZWwgPSByZXMuYm9keSBhcyBBdHRhY2htZW50O1xyXG4gICAgICAvLyAgICBvYnNlcnZlLm5leHQobW9kZWwpO1xyXG4gICAgICAvLyAgfVxyXG4gICAgICAvLyAgZWxzZVxyXG4gICAgICAvLyAgICBvYnNlcnZlLmVycm9yKHsgc3RhdHVzOiByZXMuc3RhdHVzLCBlcnJvcjogcmVzLmJvZHkgfSk7XHJcbiAgICAgIC8vICBvYnNlcnZlLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgICAvL2lmIChhIGluc3RhbmNlb2YgVXBsb2FkRXZlbnQpIHtcclxuICAgICAgICAgIC8vICBPYmplY3QuYXNzaWduKGl0ZW0sIHtcclxuICAgICAgICAgIC8vICAgIHByb2dyZXNzOiBhLmxvYWRlZCAvIGEudG90YWxcclxuICAgICAgICAgIC8vICB9KTtcclxuICAgICAgICAgIC8vICByZXR1cm47XHJcbiAgICAgICAgICAvL31cclxuICAgICAgb2JzZXJ2ZS5uZXh0KHIpO1xyXG4gICAgICBvYnNlcnZlLmNvbXBsZXRlKCk7XHJcblxyXG4gICAgfSwgZSA9PiBvYnNlcnZlLmVycm9yKGUpKTtcclxuICB9KTtcclxufVxyXG5leHBvcnQgY2xhc3MgUG9zaXRpb25FcnJvciB7XHJcbiAgcmVhZG9ubHkgY29kZTogbnVtYmVyO1xyXG4gIHJlYWRvbmx5IG1lc3NhZ2U6IHN0cmluZztcclxuICByZWFkb25seSBQRVJNSVNTSU9OX0RFTklFRDogbnVtYmVyO1xyXG4gIHJlYWRvbmx5IFBPU0lUSU9OX1VOQVZBSUxBQkxFOiBudW1iZXI7XHJcbiAgcmVhZG9ubHkgVElNRU9VVDogbnVtYmVyO1xyXG59XHJcbiJdfQ==