@bizdoc/core 1.16.23 → 1.16.27

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 (384) hide show
  1. package/assets/bizdoc-schema.json +11 -0
  2. package/assets/system/active-directory.svg +1 -0
  3. package/assets/system/amazon.svg +1 -0
  4. package/assets/system/{Azure.svg → azure.svg} +0 -0
  5. package/assets/system/okta.svg +31 -0
  6. package/assets/system/{QAD.svg → qad.svg} +0 -0
  7. package/assets/system/sap.svg +1 -1
  8. package/assets/system/windows.svg +4 -0
  9. package/esm2020/lib/admin/admin-dismiss.service.mjs +3 -3
  10. package/esm2020/lib/admin/admin-menu.component.mjs +5 -5
  11. package/esm2020/lib/admin/configuration-designer/cube-axes-filter.component.mjs +6 -6
  12. package/esm2020/lib/admin/configuration-designer/declarations.mjs +8 -79
  13. package/esm2020/lib/admin/configuration-designer/designer-element.component.mjs +29 -25
  14. package/esm2020/lib/admin/configuration-designer/designer-privileges.component.mjs +3 -3
  15. package/esm2020/lib/admin/configuration-designer/designer.base.mjs +15 -13
  16. package/esm2020/lib/admin/configuration-designer/designer.component.mjs +54 -42
  17. package/esm2020/lib/admin/configuration-designer/elements/action.component.mjs +12 -13
  18. package/esm2020/lib/admin/configuration-designer/elements/analysis-view.component.mjs +5 -5
  19. package/esm2020/lib/admin/configuration-designer/elements/analysis-widget.component.mjs +7 -7
  20. package/esm2020/lib/admin/configuration-designer/elements/anomaly-rule.component.mjs +4 -4
  21. package/esm2020/lib/admin/configuration-designer/elements/box-form.component.mjs +28 -14
  22. package/esm2020/lib/admin/configuration-designer/elements/configuration-datasource.component.mjs +4 -4
  23. package/esm2020/lib/admin/configuration-designer/elements/cube-index-utility.component.mjs +5 -5
  24. package/esm2020/lib/admin/configuration-designer/elements/cube-view.component.mjs +4 -4
  25. package/esm2020/lib/admin/configuration-designer/elements/cube.component.mjs +20 -28
  26. package/esm2020/lib/admin/configuration-designer/elements/documents-report.component.mjs +4 -4
  27. package/esm2020/lib/admin/configuration-designer/elements/documents-widget.component.mjs +4 -4
  28. package/esm2020/lib/admin/configuration-designer/elements/explore-view.component.mjs +4 -4
  29. package/esm2020/lib/admin/configuration-designer/elements/folder.component.mjs +7 -9
  30. package/esm2020/lib/admin/configuration-designer/elements/form.component.mjs +10 -15
  31. package/esm2020/lib/admin/configuration-designer/elements/guide.component.mjs +10 -6
  32. package/esm2020/lib/admin/configuration-designer/elements/matrix-view.component.mjs +4 -4
  33. package/esm2020/lib/admin/configuration-designer/elements/parallel-view.component.mjs +5 -5
  34. package/esm2020/lib/admin/configuration-designer/elements/performance-widget.component.mjs +4 -4
  35. package/esm2020/lib/admin/configuration-designer/elements/pivot-view.component.mjs +5 -5
  36. package/esm2020/lib/admin/configuration-designer/elements/policy.component.mjs +7 -11
  37. package/esm2020/lib/admin/configuration-designer/elements/report.component.mjs +7 -9
  38. package/esm2020/lib/admin/configuration-designer/elements/return-to-role-action.component.mjs +4 -4
  39. package/esm2020/lib/admin/configuration-designer/elements/role.component.mjs +5 -5
  40. package/esm2020/lib/admin/configuration-designer/elements/rule.component.mjs +7 -11
  41. package/esm2020/lib/admin/configuration-designer/elements/state.component.mjs +11 -12
  42. package/esm2020/lib/admin/configuration-designer/elements/sum-view.component.mjs +4 -4
  43. package/esm2020/lib/admin/configuration-designer/elements/survey-form.component.mjs +44 -0
  44. package/esm2020/lib/admin/configuration-designer/elements/tasks-report.component.mjs +4 -4
  45. package/esm2020/lib/admin/configuration-designer/elements/type.component.mjs +55 -15
  46. package/esm2020/lib/admin/configuration-designer/elements/usage-report.component.mjs +5 -5
  47. package/esm2020/lib/admin/configuration-designer/elements/utility.component.mjs +7 -10
  48. package/esm2020/lib/admin/configuration-designer/elements/view.component.mjs +5 -5
  49. package/esm2020/lib/admin/configuration-designer/elements/widget.component.mjs +7 -8
  50. package/esm2020/lib/admin/configuration-designer/icon-picker.component.mjs +4 -4
  51. package/esm2020/lib/admin/core/ace.input.mjs +4 -4
  52. package/esm2020/lib/admin/core/color-picker.input.mjs +4 -4
  53. package/esm2020/lib/admin/core/search.input.mjs +3 -3
  54. package/esm2020/lib/admin/diff/configuration-diff.component.mjs +5 -5
  55. package/esm2020/lib/admin/document-trace/document-trace.component.mjs +4 -4
  56. package/esm2020/lib/admin/document-trace/reassign.dialog.mjs +3 -3
  57. package/esm2020/lib/admin/document-trace/trace-element.component.mjs +3 -3
  58. package/esm2020/lib/admin/form/designer/designer.component.mjs +22 -23
  59. package/esm2020/lib/admin/form/form.resolve.service.mjs +3 -3
  60. package/esm2020/lib/admin/form/survey/survey.component.mjs +180 -0
  61. package/esm2020/lib/admin/form/workflow/node.component.mjs +3 -3
  62. package/esm2020/lib/admin/form/workflow/role-node.component.mjs +4 -4
  63. package/esm2020/lib/admin/form/workflow/workflow.component.mjs +3 -3
  64. package/esm2020/lib/admin/indices/manage-cube-index.component.mjs +4 -4
  65. package/esm2020/lib/admin/patterns/patterns.component.mjs +4 -4
  66. package/esm2020/lib/admin/permissions/permissions.component.mjs +4 -4
  67. package/esm2020/lib/admin/positions/positions-popup.component.mjs +3 -3
  68. package/esm2020/lib/admin/positions/positions.component.mjs +4 -4
  69. package/esm2020/lib/admin/profiler/outofoffice.component.mjs +3 -3
  70. package/esm2020/lib/admin/profiler/profiler.component.mjs +5 -5
  71. package/esm2020/lib/admin/system.service.mjs +4 -4
  72. package/esm2020/lib/admin/utility-wrapper.component.mjs +3 -3
  73. package/esm2020/lib/admin/utility.pane.component.mjs +3 -3
  74. package/esm2020/lib/app.component.mjs +6 -6
  75. package/esm2020/lib/bizdoc.module.mjs +4 -4
  76. package/esm2020/lib/browse/browse-items.component.mjs +3 -3
  77. package/esm2020/lib/browse/browse.mobile.component.mjs +3 -3
  78. package/esm2020/lib/browse/browse.pane.component.mjs +3 -3
  79. package/esm2020/lib/browse/expanded-item/expanded-item.component.mjs +3 -3
  80. package/esm2020/lib/browse/filter/filter.component.mjs +3 -3
  81. package/esm2020/lib/browse/folders-menu.component.mjs +3 -3
  82. package/esm2020/lib/chat/chat-info.mjs +3 -3
  83. package/esm2020/lib/chat/chat.mobile.component.mjs +3 -3
  84. package/esm2020/lib/chat/chat.service.mjs +3 -3
  85. package/esm2020/lib/chat/contacts.component.mjs +6 -6
  86. package/esm2020/lib/chat/contacts.pane.component.mjs +3 -3
  87. package/esm2020/lib/chat/conversation.component.mjs +3 -3
  88. package/esm2020/lib/chat/conversation.pane.component.mjs +3 -3
  89. package/esm2020/lib/compose/action/action-picker.component.mjs +3 -3
  90. package/esm2020/lib/compose/action/action.dialog.mjs +5 -5
  91. package/esm2020/lib/compose/action/action.pane.dialog.exp.mjs +3 -3
  92. package/esm2020/lib/compose/action/assign-action.component.mjs +13 -5
  93. package/esm2020/lib/compose/action/moveto-action.component.mjs +4 -4
  94. package/esm2020/lib/compose/action/return-action.component.mjs +4 -4
  95. package/esm2020/lib/compose/attachments/attachments.component.mjs +3 -3
  96. package/esm2020/lib/compose/attachments/preview/attachment-preview.component.mjs +3 -3
  97. package/esm2020/lib/compose/attachments/progress-button.directive.mjs +3 -3
  98. package/esm2020/lib/compose/box/box.component.mjs +4 -4
  99. package/esm2020/lib/compose/can-deactivate-changes.service.mjs +3 -3
  100. package/esm2020/lib/compose/comments/comment.component.mjs +3 -3
  101. package/esm2020/lib/compose/comments/comments.component.mjs +3 -3
  102. package/esm2020/lib/compose/comments/comments.pane.component.mjs +3 -3
  103. package/esm2020/lib/compose/comments/edit-comment.component.mjs +3 -3
  104. package/esm2020/lib/compose/comments/edits.component.mjs +3 -3
  105. package/esm2020/lib/compose/comments/quick-comment.component.exp.mjs +3 -3
  106. package/esm2020/lib/compose/comments/votes.component.mjs +3 -3
  107. package/esm2020/lib/compose/compose-resolve.service.mjs +6 -6
  108. package/esm2020/lib/compose/compose.mobile.component.mjs +3 -3
  109. package/esm2020/lib/compose/compose.pane.component.mjs +3 -3
  110. package/esm2020/lib/compose/copy/copy.dialog.mjs +3 -3
  111. package/esm2020/lib/compose/dismiss.service.mjs +3 -3
  112. package/esm2020/lib/compose/document-resolver.service.mjs +3 -3
  113. package/esm2020/lib/compose/document.component.mjs +3 -3
  114. package/esm2020/lib/compose/document.mobile.component.mjs +3 -3
  115. package/esm2020/lib/compose/document.pane.component.mjs +3 -3
  116. package/esm2020/lib/compose/events/events.component.mjs +3 -3
  117. package/esm2020/lib/compose/form-selector/form-selector.sheet.mjs +3 -3
  118. package/esm2020/lib/compose/form.component.mjs +3 -3
  119. package/esm2020/lib/compose/new-menu.component.mjs +3 -3
  120. package/esm2020/lib/compose/privilage.directive.mjs +6 -6
  121. package/esm2020/lib/compose/recipient-resolver.service.mjs +3 -3
  122. package/esm2020/lib/compose/state.component.mjs +4 -4
  123. package/esm2020/lib/compose/survey/survey.component.mjs +73 -0
  124. package/esm2020/lib/compose/tag/tags.component.mjs +3 -3
  125. package/esm2020/lib/compose/trace/flow.component.mjs +3 -3
  126. package/esm2020/lib/compose/trace/people.component.mjs +3 -3
  127. package/esm2020/lib/compose/trace/trace.base.mjs +3 -3
  128. package/esm2020/lib/compose/trace/trace.component.mjs +3 -3
  129. package/esm2020/lib/compose/trace/trace.pane.component.mjs +3 -3
  130. package/esm2020/lib/compose/version-compare/version-compare.component.mjs +3 -3
  131. package/esm2020/lib/compose/version-compare/version-compare.directive.mjs +9 -9
  132. package/esm2020/lib/compose/version-compare/version.pane.component.mjs +3 -3
  133. package/esm2020/lib/core/NgComponentOutlet.mjs +3 -3
  134. package/esm2020/lib/core/account.service.mjs +3 -3
  135. package/esm2020/lib/core/animated-icon/animated-icon.directive.mjs +3 -3
  136. package/esm2020/lib/core/avatar/avatar.component.mjs +4 -4
  137. package/esm2020/lib/core/component-factory-resolver.mjs +3 -3
  138. package/esm2020/lib/core/controls/address.input.mjs +4 -4
  139. package/esm2020/lib/core/controls/auto-complete.input.mjs +4 -4
  140. package/esm2020/lib/core/controls/combination-picker-body.mjs +3 -3
  141. package/esm2020/lib/core/controls/combination-picker.mjs +4 -4
  142. package/esm2020/lib/core/controls/combination-pool.mjs +3 -3
  143. package/esm2020/lib/core/controls/file.input.mjs +4 -4
  144. package/esm2020/lib/core/controls/select.input.mjs +4 -4
  145. package/esm2020/lib/core/controls/time-picker.mjs +4 -4
  146. package/esm2020/lib/core/controls/timespan.input.mjs +4 -4
  147. package/esm2020/lib/core/datasource.service.mjs +3 -3
  148. package/esm2020/lib/core/guide/guide.component.mjs +3 -3
  149. package/esm2020/lib/core/guide/guide.service.mjs +5 -5
  150. package/esm2020/lib/core/guide/help-tip.component.mjs +3 -3
  151. package/esm2020/lib/core/http.interceptor.mjs +3 -3
  152. package/esm2020/lib/core/hub.service.mjs +3 -3
  153. package/esm2020/lib/core/identity/identity.component.mjs +3 -3
  154. package/esm2020/lib/core/info/attachment-info.service.mjs +3 -3
  155. package/esm2020/lib/core/info/document-info.service.mjs +3 -3
  156. package/esm2020/lib/core/info/location-info.component.mjs +3 -3
  157. package/esm2020/lib/core/info/map-info.mjs +3 -3
  158. package/esm2020/lib/core/layout/autocomplete.field.mjs +3 -3
  159. package/esm2020/lib/core/layout/checkbox.field.mjs +3 -3
  160. package/esm2020/lib/core/layout/checkbox.mjs +3 -3
  161. package/esm2020/lib/core/layout/date-range.field.mjs +3 -3
  162. package/esm2020/lib/core/layout/date.field.mjs +3 -3
  163. package/esm2020/lib/core/layout/expression.field.mjs +3 -3
  164. package/esm2020/lib/core/layout/file.field.mjs +3 -3
  165. package/esm2020/lib/core/layout/html.field.mjs +3 -3
  166. package/esm2020/lib/core/layout/input.base.mjs +6 -6
  167. package/esm2020/lib/core/layout/input.field.mjs +9 -9
  168. package/esm2020/lib/core/layout/layout.component.mjs +21 -21
  169. package/esm2020/lib/core/layout/numeric.field.mjs +3 -3
  170. package/esm2020/lib/core/layout/select.field.mjs +3 -3
  171. package/esm2020/lib/core/layout/switch.field.mjs +3 -3
  172. package/esm2020/lib/core/layout/textarea.field.mjs +3 -3
  173. package/esm2020/lib/core/layout/timespan.field.mjs +3 -3
  174. package/esm2020/lib/core/lottie-animation.mjs +3 -3
  175. package/esm2020/lib/core/mailbox.service.mjs +6 -6
  176. package/esm2020/lib/core/models.mjs +27 -27
  177. package/esm2020/lib/core/none.component.mjs +3 -3
  178. package/esm2020/lib/core/pipes/action.pipe.mjs +3 -3
  179. package/esm2020/lib/core/pipes/calendar.pipe.mjs +4 -4
  180. package/esm2020/lib/core/pipes/date-format.pipe.mjs +3 -3
  181. package/esm2020/lib/core/pipes/daterange.pipe.mjs +6 -6
  182. package/esm2020/lib/core/pipes/difference.pipe.mjs +3 -3
  183. package/esm2020/lib/core/pipes/duration-format.pipe.mjs +3 -3
  184. package/esm2020/lib/core/pipes/duration.pipe.mjs +3 -3
  185. package/esm2020/lib/core/pipes/form.pipe.mjs +3 -3
  186. package/esm2020/lib/core/pipes/join.pipe.mjs +3 -3
  187. package/esm2020/lib/core/pipes/role.pipe.mjs +3 -3
  188. package/esm2020/lib/core/pipes/sanitize-html.pipe.mjs +3 -3
  189. package/esm2020/lib/core/pipes/sort.pipe.mjs +6 -6
  190. package/esm2020/lib/core/pipes/state.pipe.mjs +3 -3
  191. package/esm2020/lib/core/pipes/time-ago.pipe.mjs +6 -6
  192. package/esm2020/lib/core/pipes/translate.pipe.mjs +6 -6
  193. package/esm2020/lib/core/pipes/type-value.pipe.mjs +3 -3
  194. package/esm2020/lib/core/pipes/user-name.pipe.mjs +3 -3
  195. package/esm2020/lib/core/popup/popup.component.mjs +3 -3
  196. package/esm2020/lib/core/popup/popup.service.mjs +3 -3
  197. package/esm2020/lib/core/popup/tooltip.directive.mjs +7 -7
  198. package/esm2020/lib/core/prompt/ask/ask.dialog.mjs +3 -3
  199. package/esm2020/lib/core/prompt/mask/mask.component.mjs +3 -3
  200. package/esm2020/lib/core/prompt.service.mjs +3 -3
  201. package/esm2020/lib/core/router.mjs +6 -6
  202. package/esm2020/lib/core/save-changes.dialog.mjs +3 -3
  203. package/esm2020/lib/core/session.service.mjs +3 -3
  204. package/esm2020/lib/core/slots/router.directive.mjs +3 -3
  205. package/esm2020/lib/core/slots/router.service.mjs +3 -3
  206. package/esm2020/lib/core/slots/slots.component.mjs +3 -3
  207. package/esm2020/lib/core/tagging/documents.component.mjs +3 -3
  208. package/esm2020/lib/core/tagging/edit-input.component.mjs +3 -3
  209. package/esm2020/lib/core/tagging/emoji.component.mjs +3 -3
  210. package/esm2020/lib/core/tagging/tagging-item.directive.mjs +3 -3
  211. package/esm2020/lib/core/tagging/tagging.component-base.mjs +3 -3
  212. package/esm2020/lib/core/tagging/tagging.directive.mjs +3 -3
  213. package/esm2020/lib/core/tagging/tagging.pipe.mjs +3 -3
  214. package/esm2020/lib/core/tagging/users.component.mjs +3 -3
  215. package/esm2020/lib/core/translate.service.mjs +4 -4
  216. package/esm2020/lib/core/translations.mjs +5 -36
  217. package/esm2020/lib/core/window-title.service.mjs +3 -3
  218. package/esm2020/lib/cube/accum/accum.component.mjs +3 -3
  219. package/esm2020/lib/cube/chart/chart.component.mjs +3 -3
  220. package/esm2020/lib/cube/cube-info.service.mjs +3 -3
  221. package/esm2020/lib/cube/cube-menu.component.mjs +5 -5
  222. package/esm2020/lib/cube/cube-view.component.mjs +3 -3
  223. package/esm2020/lib/cube/cube.service.mjs +3 -3
  224. package/esm2020/lib/cube/explore/document-item.component.mjs +4 -4
  225. package/esm2020/lib/cube/explore/explore-item.component.mjs +3 -3
  226. package/esm2020/lib/cube/explore/explore-items.component.mjs +6 -6
  227. package/esm2020/lib/cube/explore/explore.pane.component.mjs +3 -3
  228. package/esm2020/lib/cube/explore/item-resolver.service.mjs +6 -6
  229. package/esm2020/lib/cube/explore/item.pane.component.mjs +3 -3
  230. package/esm2020/lib/cube/filter/filter-tags.component.exp.mjs +3 -3
  231. package/esm2020/lib/cube/filter/filter.component.mjs +3 -3
  232. package/esm2020/lib/cube/grid/grid.component.mjs +4 -4
  233. package/esm2020/lib/cube/grid/spreadsheet.component.mjs +4 -4
  234. package/esm2020/lib/cube/matrix/matrix.base.mjs +3 -3
  235. package/esm2020/lib/cube/matrix/matrix.mobile.component.mjs +3 -3
  236. package/esm2020/lib/cube/matrix/matrix.pane.component.mjs +3 -3
  237. package/esm2020/lib/cube/matrix/popup.component.mjs +3 -3
  238. package/esm2020/lib/cube/matrix/table.component.mjs +3 -3
  239. package/esm2020/lib/cube/parallel/parallel.component.mjs +3 -3
  240. package/esm2020/lib/cube/pivot/pivot.component.mjs +3 -3
  241. package/esm2020/lib/cube/sum/sum.component.mjs +3 -3
  242. package/esm2020/lib/cube/view-base.mjs +3 -3
  243. package/esm2020/lib/cube/view.mobile.component.mjs +3 -3
  244. package/esm2020/lib/cube/view.pane.component.mjs +3 -3
  245. package/esm2020/lib/dashboard/actions/actions.widget.mjs +4 -4
  246. package/esm2020/lib/dashboard/cube/accum-cube.widget.mjs +3 -3
  247. package/esm2020/lib/dashboard/cube/compare.widget.mjs +4 -4
  248. package/esm2020/lib/dashboard/cube/cube-analysis.base.mjs +3 -3
  249. package/esm2020/lib/dashboard/cube/cube-analysis.widget.mjs +4 -4
  250. package/esm2020/lib/dashboard/cube/cube-chart.widget.mjs +3 -3
  251. package/esm2020/lib/dashboard/cube/documents.widget.mjs +4 -4
  252. package/esm2020/lib/dashboard/cube/filter/filter.component.mjs +4 -4
  253. package/esm2020/lib/dashboard/dashboard.component.mjs +3 -3
  254. package/esm2020/lib/dashboard/dashboard.pane.component.mjs +3 -3
  255. package/esm2020/lib/dashboard/recents/recents.widget.mjs +4 -4
  256. package/esm2020/lib/dashboard/score/activity.widget.mjs +4 -4
  257. package/esm2020/lib/dashboard/score/compare-groups.widget.mjs +4 -4
  258. package/esm2020/lib/dashboard/score/peers-performance.widget.mjs +4 -4
  259. package/esm2020/lib/dashboard/score/pending-results.widget.mjs +4 -4
  260. package/esm2020/lib/dashboard/score/personal-score.widget.mjs +4 -4
  261. package/esm2020/lib/dashboard/widget-item.component.mjs +3 -3
  262. package/esm2020/lib/desktop.module.mjs +16 -8
  263. package/esm2020/lib/home/about/about.dialog.mjs +3 -3
  264. package/esm2020/lib/home/home-base.component.mjs +5 -5
  265. package/esm2020/lib/home/home.desktop.component.mjs +3 -3
  266. package/esm2020/lib/home/home.mobile.component.mjs +3 -3
  267. package/esm2020/lib/home/notifications/notifications.component.mjs +3 -3
  268. package/esm2020/lib/home/options/options.component.mjs +3 -3
  269. package/esm2020/lib/home/outofoffice/outofoffice.component.mjs +3 -3
  270. package/esm2020/lib/home/sign/sign.component.mjs +3 -3
  271. package/esm2020/lib/home/tools.component.mjs +25 -31
  272. package/esm2020/lib/impersonate/impersonate.component.mjs +3 -3
  273. package/esm2020/lib/mobile.module.mjs +4 -4
  274. package/esm2020/lib/modules/chart.module.mjs +4 -4
  275. package/esm2020/lib/modules/circular-gauge.module.mjs +4 -4
  276. package/esm2020/lib/modules/datepicker.intl.mjs +3 -3
  277. package/esm2020/lib/modules/dayjs.module.mjs +4 -4
  278. package/esm2020/lib/modules/diagram.module.mjs +4 -4
  279. package/esm2020/lib/modules/gantt.module.mjs +4 -4
  280. package/esm2020/lib/modules/grid.module.mjs +4 -4
  281. package/esm2020/lib/modules/material.module.mjs +4 -4
  282. package/esm2020/lib/modules/paginator.intl.mjs +3 -3
  283. package/esm2020/lib/modules/pivot.module.mjs +4 -4
  284. package/esm2020/lib/modules/schedule.module.mjs +4 -4
  285. package/esm2020/lib/modules/spreadsheet.module.mjs +4 -4
  286. package/esm2020/lib/modules/stepper.intl.mjs +3 -3
  287. package/esm2020/lib/modules/texteditor.module.mjs +4 -4
  288. package/esm2020/lib/notifications/filter.component.mjs +3 -3
  289. package/esm2020/lib/notifications/notifications-table.component.mjs +3 -3
  290. package/esm2020/lib/notifications/notifications.mobile.component.mjs +3 -3
  291. package/esm2020/lib/notifications/notifications.pane.component.mjs +3 -3
  292. package/esm2020/lib/notifications/notifications.service.mjs +3 -3
  293. package/esm2020/lib/notifications/types/commented.notification.mjs +3 -3
  294. package/esm2020/lib/notifications/types/cube-anomaly.notification.mjs +3 -3
  295. package/esm2020/lib/notifications/types/escalated.notification.mjs +3 -3
  296. package/esm2020/lib/notifications/types/liked.notification.mjs +3 -3
  297. package/esm2020/lib/notifications/types/long-running-task.notification.mjs +3 -3
  298. package/esm2020/lib/notifications/types/notification-base.mjs +3 -3
  299. package/esm2020/lib/notifications/types/nudge.notification.mjs +3 -3
  300. package/esm2020/lib/notifications/types/state-changed.notification.mjs +3 -3
  301. package/esm2020/lib/notifications/types/tagged.notification.mjs +3 -3
  302. package/esm2020/lib/notifications/types/text.notification.mjs +3 -3
  303. package/esm2020/lib/notifications/types/upcoming-event.notification.mjs +3 -3
  304. package/esm2020/lib/options/options.component.mjs +3 -3
  305. package/esm2020/lib/options/options.service.mjs +3 -3
  306. package/esm2020/lib/reports/arguments-component.mjs +3 -3
  307. package/esm2020/lib/reports/cube/documents.component.mjs +4 -4
  308. package/esm2020/lib/reports/cube/grid-documents.component.mjs +3 -3
  309. package/esm2020/lib/reports/cube/table-documents.component.mjs +3 -3
  310. package/esm2020/lib/reports/cube/usage-args.component.mjs +4 -4
  311. package/esm2020/lib/reports/cube/usage-base.mjs +3 -3
  312. package/esm2020/lib/reports/cube/usage-chart.component.mjs +3 -3
  313. package/esm2020/lib/reports/cube/usage-pivot.component.mjs +3 -3
  314. package/esm2020/lib/reports/cube/usage.component.mjs +4 -4
  315. package/esm2020/lib/reports/report-viewer.component.mjs +3 -3
  316. package/esm2020/lib/reports/report.mobile.component.mjs +7 -7
  317. package/esm2020/lib/reports/report.pane.component.mjs +3 -3
  318. package/esm2020/lib/reports/reports-menu.component.mjs +3 -3
  319. package/esm2020/lib/reports/substitution/substitution.component.mjs +4 -4
  320. package/esm2020/lib/reports/table/table-view.component.mjs +3 -3
  321. package/esm2020/lib/reports/tasks/tasks.component.mjs +4 -4
  322. package/esm2020/lib/routes.desktop.mjs +2 -2
  323. package/esm2020/lib/scheduler/schedule.component.mjs +3 -3
  324. package/esm2020/lib/scheduler/scheduler.mobile.component.mjs +3 -3
  325. package/esm2020/lib/scheduler/scheduler.pane.component.mjs +3 -3
  326. package/esm2020/lib/search/cube.component.mjs +38 -0
  327. package/esm2020/lib/search/declarations.mjs +7 -0
  328. package/esm2020/lib/search/document.component.mjs +42 -0
  329. package/esm2020/lib/search/guide.component.mjs +27 -0
  330. package/esm2020/lib/search/path.component.mjs +45 -0
  331. package/esm2020/lib/search/search.service.mjs +143 -0
  332. package/esm2020/lib/shared.module.mjs +8 -7
  333. package/esm2020/lib/system.module.mjs +13 -7
  334. package/esm2020/lib/views/cube/chart.component.mjs +4 -4
  335. package/esm2020/lib/views/cube/cube-base.mjs +3 -3
  336. package/esm2020/lib/views/cube/explore.component.mjs +4 -4
  337. package/esm2020/lib/views/cube/matrix.component.mjs +4 -4
  338. package/esm2020/lib/views/cube/parallel.component.mjs +4 -4
  339. package/esm2020/lib/views/cube/pivot.component.mjs +4 -4
  340. package/esm2020/lib/views/cube/sum.component.mjs +4 -4
  341. package/esm2020/lib/views/cube/view.component.mjs +4 -4
  342. package/esm2020/lib/views/timeline/timeline.component.exp.mjs +4 -4
  343. package/esm2020/lib/views/view-item.component.mjs +3 -3
  344. package/esm2020/lib/views/views.component.mjs +3 -3
  345. package/esm2020/lib/views/views.mobile.component.mjs +3 -3
  346. package/esm2020/lib/views/views.pane.component.mjs +3 -3
  347. package/esm2020/public-api.mjs +3 -2
  348. package/fesm2015/bizdoc-core.mjs +2018 -1633
  349. package/fesm2015/bizdoc-core.mjs.map +1 -1
  350. package/fesm2020/bizdoc-core.mjs +2007 -1629
  351. package/fesm2020/bizdoc-core.mjs.map +1 -1
  352. package/lib/admin/configuration-designer/declarations.d.ts +3 -1
  353. package/lib/admin/configuration-designer/designer-element.component.d.ts +9 -5
  354. package/lib/admin/configuration-designer/designer.base.d.ts +1 -0
  355. package/lib/admin/configuration-designer/designer.component.d.ts +8 -4
  356. package/lib/admin/configuration-designer/elements/analysis-widget.component.d.ts +2 -2
  357. package/lib/admin/configuration-designer/elements/box-form.component.d.ts +10 -2
  358. package/lib/admin/configuration-designer/elements/cube.component.d.ts +6 -1
  359. package/lib/admin/configuration-designer/elements/folder.component.d.ts +0 -1
  360. package/lib/admin/configuration-designer/elements/form.component.d.ts +0 -2
  361. package/lib/admin/configuration-designer/elements/report.component.d.ts +0 -1
  362. package/lib/admin/configuration-designer/elements/survey-form.component.d.ts +18 -0
  363. package/lib/admin/configuration-designer/elements/type.component.d.ts +11 -0
  364. package/lib/admin/configuration-designer/elements/utility.component.d.ts +1 -3
  365. package/lib/admin/form/designer/designer.component.d.ts +5 -6
  366. package/lib/admin/form/survey/survey.component.d.ts +123 -0
  367. package/lib/compose/survey/survey.component.d.ts +17 -0
  368. package/lib/core/mailbox.service.d.ts +1 -1
  369. package/lib/core/models.d.ts +10 -2
  370. package/lib/core/translations.d.ts +3 -34
  371. package/lib/desktop.module.d.ts +11 -7
  372. package/lib/home/tools.component.d.ts +5 -7
  373. package/lib/search/cube.component.d.ts +24 -0
  374. package/lib/search/declarations.d.ts +9 -0
  375. package/lib/search/document.component.d.ts +16 -0
  376. package/lib/search/guide.component.d.ts +13 -0
  377. package/lib/search/path.component.d.ts +19 -0
  378. package/lib/search/search.service.d.ts +28 -0
  379. package/lib/shared.module.d.ts +184 -183
  380. package/lib/system.module.d.ts +32 -30
  381. package/package.json +17 -17
  382. package/public-api.d.ts +2 -1
  383. package/esm2020/lib/home/search.service.mjs +0 -75
  384. package/lib/home/search.service.d.ts +0 -24
@@ -1,12 +1,12 @@
1
- import { Component, ContentChild, Directive, EventEmitter, Inject, Input, Optional, Output } from "@angular/core";
2
- import { FormGroup, Validators } from "@angular/forms";
1
+ import { Component, ContentChild, Directive, EventEmitter, Inject, Input, Output } from "@angular/core";
2
+ import { Validators } from "@angular/forms";
3
3
  import { ComponentPortal } from "@angular/cdk/portal";
4
4
  import { Subject, takeUntil } from "rxjs";
5
5
  import { DesignerRef, programName, FAMILY_SVG } from "./declarations";
6
6
  import { LayoutComponent } from "../../core/layout/layout.component";
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "@angular/forms";
9
- import * as i2 from "../../core/slots/pane-ref";
9
+ import * as i2 from "@angular/platform-browser";
10
10
  import * as i3 from "../../core/component-factory-resolver";
11
11
  import * as i4 from "@angular/common";
12
12
  import * as i5 from "@angular/cdk/portal";
@@ -17,7 +17,7 @@ import * as i9 from "@angular/material/input";
17
17
  import * as i10 from "@angular/material/icon";
18
18
  import * as i11 from "../../core/popup/tooltip.directive";
19
19
  import * as i12 from "./designer-privileges.component";
20
- import * as i13 from "../../core/pipes/sanitize-html.pipe";
20
+ import * as i13 from "./icon-picker.component";
21
21
  import * as i14 from "../../core/pipes/translate.pipe";
22
22
  import * as i15 from "./declarations";
23
23
  export class EditContentDirective {
@@ -25,9 +25,9 @@ export class EditContentDirective {
25
25
  this.templateRef = templateRef;
26
26
  }
27
27
  }
28
- EditContentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: EditContentDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
29
- EditContentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.0", type: EditContentDirective, selector: "[bizdocEditContent]", ngImport: i0 });
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: EditContentDirective, decorators: [{
28
+ EditContentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: EditContentDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
29
+ EditContentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: EditContentDirective, selector: "[bizdocEditContent]", ngImport: i0 });
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: EditContentDirective, decorators: [{
31
31
  type: Directive,
32
32
  args: [{
33
33
  selector: '[bizdocEditContent]'
@@ -38,9 +38,9 @@ export class WidgetContentDirective {
38
38
  this.templateRef = templateRef;
39
39
  }
40
40
  }
41
- WidgetContentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: WidgetContentDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
42
- WidgetContentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.0", type: WidgetContentDirective, selector: "[bizdocContent]", ngImport: i0 });
43
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: WidgetContentDirective, decorators: [{
41
+ WidgetContentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: WidgetContentDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
42
+ WidgetContentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: WidgetContentDirective, selector: "[bizdocContent]", ngImport: i0 });
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: WidgetContentDirective, decorators: [{
44
44
  type: Directive,
45
45
  args: [{
46
46
  selector: '[bizdocContent]'
@@ -51,9 +51,9 @@ export class AddContentDirective {
51
51
  this.templateRef = templateRef;
52
52
  }
53
53
  }
54
- AddContentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: AddContentDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
55
- AddContentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.0", type: AddContentDirective, selector: "[bizdocAddContent]", ngImport: i0 });
56
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: AddContentDirective, decorators: [{
54
+ AddContentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: AddContentDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
55
+ AddContentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: AddContentDirective, selector: "[bizdocAddContent]", ngImport: i0 });
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: AddContentDirective, decorators: [{
57
57
  type: Directive,
58
58
  args: [{
59
59
  selector: '[bizdocAddContent]'
@@ -62,20 +62,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImpor
62
62
  /**
63
63
  */
64
64
  export class DesignerItemComponent {
65
- constructor(_element, _fb, _pane, _ref, _cfr) {
65
+ constructor(_element, _fb, _sanitizer, _ref, _cfr) {
66
66
  this._element = _element;
67
67
  this._fb = _fb;
68
- this._pane = _pane;
68
+ this._sanitizer = _sanitizer;
69
69
  this._ref = _ref;
70
70
  this._cfr = _cfr;
71
71
  this.svg = FAMILY_SVG;
72
- this.form = new FormGroup({});
73
72
  this.onContinue = new EventEmitter();
74
73
  this.onSave = new EventEmitter();
75
74
  this._destroy = new Subject();
76
75
  this.mode = _ref.mode;
77
76
  this.model = _ref.model;
78
77
  }
78
+ resource(image) {
79
+ return this._sanitizer.bypassSecurityTrustResourceUrl(`/assets/system/${image}`);
80
+ }
79
81
  optionsattached(componentRef) {
80
82
  const { instance } = componentRef;
81
83
  this._customDesignerInstance = instance;
@@ -103,6 +105,8 @@ export class DesignerItemComponent {
103
105
  if (this.mode == 'add') {
104
106
  this.form.markAsDirty();
105
107
  this.form.patchValue({});
108
+ if (this.model.copyOf)
109
+ this.mode = 'edit';
106
110
  }
107
111
  if (this.model.template) {
108
112
  const comp = this._cfr.component(this.model.template);
@@ -127,6 +131,7 @@ export class DesignerItemComponent {
127
131
  name.disable();
128
132
  this.form.addControl('name', name, { emitEvent: false });
129
133
  this.form.addControl('title', title, { emitEvent: false });
134
+ this.icon && this.form.addControl('icon', this._fb.control(null), { emitEvent: false });
130
135
  this.privileges && this.form.addControl('privileges', this._fb.group({
131
136
  rule: null,
132
137
  roles: []
@@ -159,7 +164,6 @@ export class DesignerItemComponent {
159
164
  Object.assign(this.model, this.form.getRawValue());
160
165
  this._customDesignerInstance?.onFinish && this._customDesignerInstance.onFinish();
161
166
  this.onSave.emit(this.model);
162
- this._pane.close();
163
167
  }
164
168
  /**
165
169
  * Ctrl-s save
@@ -176,18 +180,18 @@ export class DesignerItemComponent {
176
180
  this._destroy?.complete();
177
181
  }
178
182
  }
179
- DesignerItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: DesignerItemComponent, deps: [{ token: i0.ElementRef }, { token: i1.FormBuilder }, { token: i2.PaneRef, optional: true }, { token: DesignerRef }, { token: i3.BizDocComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Component });
180
- DesignerItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: { privileges: "privileges", form: "form" }, outputs: { onContinue: "continue", onSave: "save" }, queries: [{ propertyName: "editContent", first: true, predicate: EditContentDirective, descendants: true }, { propertyName: "widgetContent", first: true, predicate: WidgetContentDirective, descendants: true }], ngImport: i0, template: " <!--widget mode -->\r\n<ng-container *ngIf=\"mode === 'widget'; else edit\">\r\n <ng-container *ngIf=\"model.family\">\r\n <div *ngIf=\"svg[model.family]\" [innerHTML]=\"svg[model.family]|sanitizeHtml\" [bizdocTooltip]=\"model.family\"></div>\r\n <div *ngIf=\"!svg[model.family]\">{{model.family}}</div>\r\n </ng-container>\r\n <ng-container [ngTemplateOutlet]=\"widgetContent?.templateRef\"></ng-container>\r\n <!--options-->\r\n <ng-container (attached)=\"optionsattached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n</ng-container>\r\n<!--add mode-->\r\n<ng-template #edit>\r\n <!--edit mode-->\r\n <ng-container *ngIf=\"mode === 'edit'\">\r\n <mat-toolbar>\r\n <button mat-icon-button (click)=\"save()\" [disabled]=\"!form.valid || !form.dirty\"><mat-icon>save</mat-icon></button>\r\n </mat-toolbar>\r\n <p *ngIf=\"model.resource\" class=\"message\" (click)=\"unlock($event)\" [innerHTML]=\"'UnlockMultilang'|translate\"></p>\r\n </ng-container>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\" (keydown)=\"handleKeyboardEvent($event)\">\r\n <div class=\"row\" *ngIf=\"mode === 'edit' && !optionsstate\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required #title />\r\n <mat-error *ngIf=\"form.get('title').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n <mat-error *ngIf=\"form.get('name').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n </mat-form-field>\r\n </div>\r\n <!--arguments-->\r\n <ng-container *ngIf=\"arguments\" (attached)=\"argumentsattached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\r\n <!--options-->\r\n <ng-container *ngIf=\"options\" (attached)=\"optionsattached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n <ng-container *ngIf=\"mode === 'edit'\" [ngTemplateOutlet]=\"editContent?.templateRef\"></ng-container>\r\n <!--privileges-->\r\n <bizdoc-designer-privileges *ngIf=\"form.contains('privileges') && !optionsstate\" [form]=\"form.get('privileges')\"></bizdoc-designer-privileges>\r\n </form>\r\n <div class=\"row actions\" *ngIf=\"mode === 'add'\">\r\n <span class=\"divider\"></span>\r\n <button mat-stroked-button [disabled]=\"!form.valid\" (click)=\"continue()\" type=\"button\">{{'Continue'|translate}}&nbsp;<mat-icon>double_arrow</mat-icon></button>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{flex:1}::ng-deep form{padding:8px}::ng-deep .flex{flex:1}p.message{margin:5px}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i6.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: i7.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "component", type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i11.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: i12.DesignerPrivilegesComponent, selector: "bizdoc-designer-privileges", inputs: ["form"] }, { kind: "pipe", type: i13.SanitizeHtmlPipe, name: "sanitizeHtml" }, { kind: "pipe", type: i14.TranslatePipe, name: "translate" }] });
181
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: DesignerItemComponent, decorators: [{
183
+ DesignerItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DesignerItemComponent, deps: [{ token: i0.ElementRef }, { token: i1.FormBuilder }, { token: i2.DomSanitizer }, { token: DesignerRef }, { token: i3.BizDocComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Component });
184
+ DesignerItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: { privileges: "privileges", icon: "icon", form: "form" }, outputs: { onContinue: "continue", onSave: "save" }, queries: [{ propertyName: "editContent", first: true, predicate: EditContentDirective, descendants: true }, { propertyName: "widgetContent", first: true, predicate: WidgetContentDirective, descendants: true }], ngImport: i0, template: " <!--widget mode -->\r\n<ng-container *ngIf=\"mode === 'widget'; else editing\">\r\n <ng-container *ngIf=\"model.family\">\r\n <img *ngIf=\"svg[model.family]\" class=\"logo\" [src]=\"resource(svg[model.family])\" [bizdocTooltip]=\"model.family\" />\r\n <div *ngIf=\"!svg[model.family]\">{{model.family}}</div>\r\n </ng-container>\r\n <!--options-->\r\n <ng-container (attached)=\"optionsattached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n <ng-container [ngTemplateOutlet]=\"widgetContent?.templateRef\"></ng-container>\r\n</ng-container>\r\n<!--add or edit mode-->\r\n<ng-template #editing>\r\n <ng-container *ngIf=\"mode === 'edit'\">\r\n <mat-toolbar>\r\n <button mat-icon-button (click)=\"save()\" [disabled]=\"!form.valid || !form.dirty\"><mat-icon>save</mat-icon></button>\r\n </mat-toolbar>\r\n <p *ngIf=\"model.resource\" class=\"message\" (click)=\"unlock($event)\" [innerHTML]=\"'UnlockMultilang'|translate\"></p>\r\n </ng-container>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\" (keydown)=\"handleKeyboardEvent($event)\">\r\n <ng-container *ngIf=\"mode === 'edit' && !optionsstate\">\r\n <div class=\"row\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required #title />\r\n <mat-error *ngIf=\"form.get('title').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n <mat-error *ngIf=\"form.get('name').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n </mat-form-field>\r\n </div>\r\n <bizdoc-icon-picker *ngIf=\"icon\" formControlName=\"icon\" required></bizdoc-icon-picker>\r\n </ng-container>\r\n <!--arguments-->\r\n <ng-container *ngIf=\"arguments\" (attached)=\"argumentsattached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\r\n <!--options-->\r\n <ng-container *ngIf=\"options\" (attached)=\"optionsattached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n <ng-container *ngIf=\"mode === 'edit'\" [ngTemplateOutlet]=\"editContent?.templateRef\"></ng-container>\r\n <!--privileges-->\r\n <bizdoc-designer-privileges *ngIf=\"form.contains('privileges') && !optionsstate\" [form]=\"form.get('privileges')\"></bizdoc-designer-privileges>\r\n </form>\r\n <div class=\"row actions\" *ngIf=\"mode === 'add'\">\r\n <span class=\"divider\"></span>\r\n <button mat-stroked-button [disabled]=\"!form.valid\" (click)=\"continue()\" type=\"button\">{{'Continue'|translate}}&nbsp;<mat-icon>double_arrow</mat-icon></button>\r\n </div>\r\n</ng-template>\r\n", styles: ["img.logo{display:block;height:26px}:host{flex:1}::ng-deep form{padding:8px}::ng-deep .flex{flex:1}p.message{margin:5px}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i6.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: i7.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "component", type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i11.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: i12.DesignerPrivilegesComponent, selector: "bizdoc-designer-privileges", inputs: ["form"] }, { kind: "component", type: i13.IconPickerComponent, selector: "bizdoc-icon-picker", inputs: ["value", "required", "disabled"], outputs: ["valueChanges"] }, { kind: "pipe", type: i14.TranslatePipe, name: "translate" }] });
185
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DesignerItemComponent, decorators: [{
182
186
  type: Component,
183
- args: [{ selector: 'bizdoc-designer-element', template: " <!--widget mode -->\r\n<ng-container *ngIf=\"mode === 'widget'; else edit\">\r\n <ng-container *ngIf=\"model.family\">\r\n <div *ngIf=\"svg[model.family]\" [innerHTML]=\"svg[model.family]|sanitizeHtml\" [bizdocTooltip]=\"model.family\"></div>\r\n <div *ngIf=\"!svg[model.family]\">{{model.family}}</div>\r\n </ng-container>\r\n <ng-container [ngTemplateOutlet]=\"widgetContent?.templateRef\"></ng-container>\r\n <!--options-->\r\n <ng-container (attached)=\"optionsattached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n</ng-container>\r\n<!--add mode-->\r\n<ng-template #edit>\r\n <!--edit mode-->\r\n <ng-container *ngIf=\"mode === 'edit'\">\r\n <mat-toolbar>\r\n <button mat-icon-button (click)=\"save()\" [disabled]=\"!form.valid || !form.dirty\"><mat-icon>save</mat-icon></button>\r\n </mat-toolbar>\r\n <p *ngIf=\"model.resource\" class=\"message\" (click)=\"unlock($event)\" [innerHTML]=\"'UnlockMultilang'|translate\"></p>\r\n </ng-container>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\" (keydown)=\"handleKeyboardEvent($event)\">\r\n <div class=\"row\" *ngIf=\"mode === 'edit' && !optionsstate\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required #title />\r\n <mat-error *ngIf=\"form.get('title').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n <mat-error *ngIf=\"form.get('name').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n </mat-form-field>\r\n </div>\r\n <!--arguments-->\r\n <ng-container *ngIf=\"arguments\" (attached)=\"argumentsattached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\r\n <!--options-->\r\n <ng-container *ngIf=\"options\" (attached)=\"optionsattached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n <ng-container *ngIf=\"mode === 'edit'\" [ngTemplateOutlet]=\"editContent?.templateRef\"></ng-container>\r\n <!--privileges-->\r\n <bizdoc-designer-privileges *ngIf=\"form.contains('privileges') && !optionsstate\" [form]=\"form.get('privileges')\"></bizdoc-designer-privileges>\r\n </form>\r\n <div class=\"row actions\" *ngIf=\"mode === 'add'\">\r\n <span class=\"divider\"></span>\r\n <button mat-stroked-button [disabled]=\"!form.valid\" (click)=\"continue()\" type=\"button\">{{'Continue'|translate}}&nbsp;<mat-icon>double_arrow</mat-icon></button>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{flex:1}::ng-deep form{padding:8px}::ng-deep .flex{flex:1}p.message{margin:5px}\n"] }]
184
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.FormBuilder }, { type: i2.PaneRef, decorators: [{
185
- type: Optional
186
- }] }, { type: i15.DesignerRef, decorators: [{
187
+ args: [{ selector: 'bizdoc-designer-element', template: " <!--widget mode -->\r\n<ng-container *ngIf=\"mode === 'widget'; else editing\">\r\n <ng-container *ngIf=\"model.family\">\r\n <img *ngIf=\"svg[model.family]\" class=\"logo\" [src]=\"resource(svg[model.family])\" [bizdocTooltip]=\"model.family\" />\r\n <div *ngIf=\"!svg[model.family]\">{{model.family}}</div>\r\n </ng-container>\r\n <!--options-->\r\n <ng-container (attached)=\"optionsattached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n <ng-container [ngTemplateOutlet]=\"widgetContent?.templateRef\"></ng-container>\r\n</ng-container>\r\n<!--add or edit mode-->\r\n<ng-template #editing>\r\n <ng-container *ngIf=\"mode === 'edit'\">\r\n <mat-toolbar>\r\n <button mat-icon-button (click)=\"save()\" [disabled]=\"!form.valid || !form.dirty\"><mat-icon>save</mat-icon></button>\r\n </mat-toolbar>\r\n <p *ngIf=\"model.resource\" class=\"message\" (click)=\"unlock($event)\" [innerHTML]=\"'UnlockMultilang'|translate\"></p>\r\n </ng-container>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\" (keydown)=\"handleKeyboardEvent($event)\">\r\n <ng-container *ngIf=\"mode === 'edit' && !optionsstate\">\r\n <div class=\"row\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required #title />\r\n <mat-error *ngIf=\"form.get('title').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n <mat-error *ngIf=\"form.get('name').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n </mat-form-field>\r\n </div>\r\n <bizdoc-icon-picker *ngIf=\"icon\" formControlName=\"icon\" required></bizdoc-icon-picker>\r\n </ng-container>\r\n <!--arguments-->\r\n <ng-container *ngIf=\"arguments\" (attached)=\"argumentsattached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\r\n <!--options-->\r\n <ng-container *ngIf=\"options\" (attached)=\"optionsattached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n <ng-container *ngIf=\"mode === 'edit'\" [ngTemplateOutlet]=\"editContent?.templateRef\"></ng-container>\r\n <!--privileges-->\r\n <bizdoc-designer-privileges *ngIf=\"form.contains('privileges') && !optionsstate\" [form]=\"form.get('privileges')\"></bizdoc-designer-privileges>\r\n </form>\r\n <div class=\"row actions\" *ngIf=\"mode === 'add'\">\r\n <span class=\"divider\"></span>\r\n <button mat-stroked-button [disabled]=\"!form.valid\" (click)=\"continue()\" type=\"button\">{{'Continue'|translate}}&nbsp;<mat-icon>double_arrow</mat-icon></button>\r\n </div>\r\n</ng-template>\r\n", styles: ["img.logo{display:block;height:26px}:host{flex:1}::ng-deep form{padding:8px}::ng-deep .flex{flex:1}p.message{margin:5px}\n"] }]
188
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.FormBuilder }, { type: i2.DomSanitizer }, { type: i15.DesignerRef, decorators: [{
187
189
  type: Inject,
188
190
  args: [DesignerRef]
189
191
  }] }, { type: i3.BizDocComponentFactoryResolver }]; }, propDecorators: { privileges: [{
190
192
  type: Input
193
+ }], icon: [{
194
+ type: Input
191
195
  }], form: [{
192
196
  type: Input
193
197
  }], onContinue: [{
@@ -203,4 +207,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImpor
203
207
  type: ContentChild,
204
208
  args: [WidgetContentDirective]
205
209
  }] } });
206
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzaWduZXItZWxlbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvZGVzaWduZXItZWxlbWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvZGVzaWduZXItZWxlbWVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBZ0IsWUFBWSxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYSxRQUFRLEVBQUUsTUFBTSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQ25MLE9BQU8sRUFBNEIsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxlQUFlLEVBQVUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxQyxPQUFPLEVBQUUsV0FBVyxFQUFnQixXQUFXLEVBQWMsVUFBVSxFQUE0QixNQUFNLGdCQUFnQixDQUFDO0FBQzFILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPckUsTUFBTSxPQUFPLG9CQUFvQjtJQUMvQixZQUFtQixXQUFpQztRQUFqQyxnQkFBVyxHQUFYLFdBQVcsQ0FBc0I7SUFBSSxDQUFDOztpSEFEOUMsb0JBQW9CO3FHQUFwQixvQkFBb0I7MkZBQXBCLG9CQUFvQjtrQkFIaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUscUJBQXFCO2lCQUNoQzs7QUFPRCxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLFlBQW1CLFdB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IENvbXBvbmVudFJlZiwgQ29udGVudENoaWxkLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPcHRpb25hbCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCwgUG9ydGFsIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIjtcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgQml6RG9jQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyIH0gZnJvbSBcIi4uLy4uL2NvcmUvY29tcG9uZW50LWZhY3RvcnktcmVzb2x2ZXJcIjtcclxuaW1wb3J0IHsgRGVzaWduZXJSZWYsIEVsZW1lbnRNb2RlbCwgcHJvZ3JhbU5hbWUsIERlc2lnbk1vZGUsIEZBTUlMWV9TVkcsIERlc2lnbmVyRWxlbWVudENvbXBvbmVudCB9IGZyb20gXCIuL2RlY2xhcmF0aW9uc1wiO1xyXG5pbXBvcnQgeyBMYXlvdXRDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vY29yZS9sYXlvdXQvbGF5b3V0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBQYW5lUmVmIH0gZnJvbSBcIi4uLy4uL2NvcmUvc2xvdHMvcGFuZS1yZWZcIjtcclxuaW1wb3J0IHsgRVNDQVBFIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9rZXljb2Rlc1wiO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbYml6ZG9jRWRpdENvbnRlbnRdJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRWRpdENvbnRlbnREaXJlY3RpdmUge1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8dW5rbm93bj4pIHsgfVxyXG59XHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2JpemRvY0NvbnRlbnRdJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgV2lkZ2V0Q29udGVudERpcmVjdGl2ZSB7XHJcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx1bmtub3duPikgeyB9XHJcbn1cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbYml6ZG9jQWRkQ29udGVudF0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBZGRDb250ZW50RGlyZWN0aXZlIHtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPHVua25vd24+KSB7IH1cclxufVxyXG5cclxuLyoqXHJcbiovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLWRlc2lnbmVyLWVsZW1lbnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnZGVzaWduZXItZWxlbWVudC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJ2Rlc2lnbmVyLWVsZW1lbnQuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0XHJcbiAgY2xhc3MgRGVzaWduZXJJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICByZWFkb25seSBzdmcgPSBGQU1JTFlfU1ZHO1xyXG4gIEBJbnB1dCgpIHByaXZpbGVnZXM6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgZm9ybTogRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgQE91dHB1dCgnY29udGludWUnKSByZWFkb25seSBvbkNvbnRpbnVlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoJ3NhdmUnKSByZWFkb25seSBvblNhdmUgPSBuZXcgRXZlbnRFbWl0dGVyPEVsZW1lbnRNb2RlbD4oKTtcclxuICBAQ29udGVudENoaWxkKEVkaXRDb250ZW50RGlyZWN0aXZlKSBlZGl0Q29udGVudDogRWRpdENvbnRlbnREaXJlY3RpdmU7XHJcbiAgQENvbnRlbnRDaGlsZChXaWRnZXRDb250ZW50RGlyZWN0aXZlKSB3aWRnZXRDb250ZW50OiBXaWRnZXRDb250ZW50RGlyZWN0aXZlO1xyXG4gIG9wdGlvbnM6IFBvcnRhbDxhbnk+O1xyXG4gIGFyZ3VtZW50czogUG9ydGFsPGFueT47XHJcbiAgbW9kZTogRGVzaWduTW9kZTtcclxuICBtb2RlbDogRWxlbWVudE1vZGVsPGFueT47XHJcbiAgcHJpdmF0ZSBfY3VzdG9tRGVzaWduZXJJbnN0YW5jZTogRGVzaWduZXJFbGVtZW50Q29tcG9uZW50PGFueT47XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgb3B0aW9uc3N0YXRlOiBhbnk7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9lbGVtZW50OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PixcclxuICAgIHByaXZhdGUgX2ZiOiBGb3JtQnVpbGRlcixcclxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX3BhbmU6IFBhbmVSZWYsXHJcbiAgICBASW5qZWN0KERlc2lnbmVyUmVmKSBwcml2YXRlIF9yZWY6IERlc2lnbmVyUmVmPGFueT4sXHJcbiAgICBwcml2YXRlIF9jZnI6IEJpekRvY0NvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICApIHtcclxuICAgIHRoaXMubW9kZSA9IF9yZWYubW9kZTtcclxuICAgIHRoaXMubW9kZWwgPSBfcmVmLm1vZGVsIGFzIEVsZW1lbnRNb2RlbDtcclxuICB9XHJcbiAgb3B0aW9uc2F0dGFjaGVkKGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPERlc2lnbmVyRWxlbWVudENvbXBvbmVudDxhbnk+Pikge1xyXG4gICAgY29uc3QgeyBpbnN0YW5jZSB9ID0gY29tcG9uZW50UmVmO1xyXG4gICAgdGhpcy5fY3VzdG9tRGVzaWduZXJJbnN0YW5jZSA9IGluc3RhbmNlIGFzIERlc2lnbmVyRWxlbWVudENvbXBvbmVudDxhbnk+O1xyXG4gICAgaW5zdGFuY2UubW9kZWwgPSB0aGlzLm1vZGVsO1xyXG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ2FkZCcgJiYgIWluc3RhbmNlLm9uQ29udGludWUpIHtcclxuICAgICAgdGhpcy5vbkNvbnRpbnVlLmVtaXQoKTtcclxuICAgICAgdGhpcy5tb2RlID0gJ2VkaXQnO1xyXG4gICAgICB0aGlzLl9mb3JtKCk7XHJcbiAgICB9XHJcbiAgICBpbnN0YW5jZS5tb2RlID0gdGhpcy5tb2RlO1xyXG4gICAgaWYgKHRoaXMubW9kZSAhPT0gJ3dpZGdldCcpIHtcclxuICAgICAgdGhpcy5mb3JtLmFkZENvbnRyb2woJ29wdGlvbnMnLCBpbnN0YW5jZS5mb3JtLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICAgIGluc3RhbmNlLmZvcm0ucGF0Y2hWYWx1ZSh0aGlzLm1vZGVsLm9wdGlvbnMsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgYXJndW1lbnRzYXR0YWNoZWQoY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8TGF5b3V0Q29tcG9uZW50Pikge1xyXG4gICAgY29uc3QgeyBpbnN0YW5jZSB9ID0gY29tcG9uZW50UmVmO1xyXG4gICAgaW5zdGFuY2UuZmllbGRzID0gdGhpcy5tb2RlbC5hcmd1bWVudHM7XHJcbiAgICBpbnN0YW5jZS5tb2RlbCA9IHRoaXMubW9kZWwub3B0aW9ucztcclxuICAgIGluc3RhbmNlLmxheW91dCgpO1xyXG4gICAgdGhpcy5tb2RlICE9PSAnd2lkZ2V0JyAmJlxyXG4gICAgICB0aGlzLmZvcm0uYWRkQ29udHJvbCgnb3B0aW9ucycsIGluc3RhbmNlLmZvcm0sIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICB9XHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAodGhpcy5tb2RlID09ICdhZGQnKSB7XHJcbiAgICAgIHRoaXMuZm9ybS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7fSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5tb2RlbC50ZW1wbGF0ZSkge1xyXG4gICAgICBjb25zdCBjb21wID0gdGhpcy5fY2ZyLmNvbXBvbmVudCh0aGlzLm1vZGVsLnRlbXBsYXRlKTtcclxuICAgICAgdGhpcy5vcHRpb25zID0gbmV3IENvbXBvbmVudFBvcnRhbDxEZXNpZ25lckVsZW1lbnRDb21wb25lbnQ8YW55Pj4oY29tcCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLm1vZGUgIT09ICd3aWRnZXQnICYmIHRoaXMubW9kZWwuYXJndW1lbnRzPy5sZW5ndGgpXHJcbiAgICAgIHRoaXMuYXJndW1lbnRzID0gbmV3IENvbXBvbmVudFBvcnRhbChMYXlvdXRDb21wb25lbnQpO1xyXG4gICAgZWxzZSBpZiAodGhpcy5tb2RlID09PSAnYWRkJylcclxuICAgICAgdGhpcy5tb2RlID0gJ2VkaXQnO1xyXG5cclxuICAgIHRoaXMubW9kZSA9PT0gJ2VkaXQnICYmXHJcbiAgICAgIHRoaXMuX2Zvcm0oKTtcclxuICAgIHRoaXMubW9kZSAhPT0gJ3dpZGdldCcgJiZcclxuICAgICAgdGhpcy5fcmVmLl9zdGF0ZSQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSh2ID0+XHJcbiAgICAgICAgdGhpcy5vcHRpb25zc3RhdGUgPSB2KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZm9ybSgpIHtcclxuICAgIGNvbnN0IG5hbWUgPSB0aGlzLl9mYi5jb250cm9sKG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgICB0aXRsZSA9IHRoaXMuX2ZiLmNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICB0aGlzLm1vZGVsLnJlc291cmNlICYmIHRpdGxlLmRpc2FibGUoKTtcclxuICAgIGlmICh0aGlzLm1vZGVsLmRyYWZ0KSB0aXRsZS52YWx1ZUNoYW5nZXMuXHJcbiAgICAgIHBpcGUoLyp0YWtlVW50aWwodGhpcy5fZGVzdHJveSkqLykuc3Vic2NyaWJlKCh0OiBzdHJpbmcpID0+XHJcbiAgICAgICAgdCAmJiBuYW1lLnNldFZhbHVlKHByb2dyYW1OYW1lKHQpKVxyXG4gICAgICApO1xyXG4gICAgZWxzZVxyXG4gICAgICBuYW1lLmRpc2FibGUoKTtcclxuICAgIHRoaXMuZm9ybS5hZGRDb250cm9sKCduYW1lJywgbmFtZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgdGhpcy5mb3JtLmFkZENvbnRyb2woJ3RpdGxlJywgdGl0bGUsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgIHRoaXMucHJpdmlsZWdlcyAmJiB0aGlzLmZvcm0uYWRkQ29udHJvbCgncHJpdmlsZWdlcycsIHRoaXMuX2ZiLmdyb3VwKHtcclxuICAgICAgcnVsZTogbnVsbCxcclxuICAgICAgcm9sZXM6IFtdXHJcbiAgICB9KSk7XHJcbiAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh0aGlzLm1vZGVsLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgfVxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgICh0aGlzLm1vZGUgPT09ICdlZGl0JyB8fCAodGhpcy5tb2RlID09PSAnYWRkJyAmJiAhdGhpcy5vcHRpb25zKSkgJiZcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQnKT8uZm9jdXMoKSk7XHJcbiAgfVxyXG4gIHVubG9jayhldnQ6IEV2ZW50KSB7XHJcbiAgICBpZiAoKGV2dC5zcmNFbGVtZW50IGFzIEhUTUxFbGVtZW50KS50YWdOYW1lICE9PSAnQScpIHJldHVybjtcclxuICAgIHRoaXMubW9kZWwucmVzb3VyY2UgPSBudWxsO1xyXG4gICAgdGhpcy5mb3JtLmdldCgndGl0bGUnKS5lbmFibGUoKTtcclxuICAgIHRoaXMuX3JlZi5fdW5sb2NrJC5uZXh0KGZhbHNlKTtcclxuICB9XHJcbiAgY29udGludWUoKSB7XHJcbiAgICBpZiAodGhpcy5fY3VzdG9tRGVzaWduZXJJbnN0YW5jZT8ub25Db250aW51ZSkge1xyXG4gICAgICB0aGlzLl9jdXN0b21EZXNpZ25lckluc3RhbmNlLm9uQ29udGludWUoKTtcclxuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLm9wdGlvbnMsIHRoaXMuX2N1c3RvbURlc2lnbmVySW5zdGFuY2UuZm9ybS5nZXRSYXdWYWx1ZSgpKTtcclxuICAgIH1cclxuICAgIHRoaXMub25Db250aW51ZS5lbWl0KCk7XHJcbiAgICBpZiAodGhpcy5fY3VzdG9tRGVzaWduZXJJbnN0YW5jZSlcclxuICAgICAgdGhpcy5fY3VzdG9tRGVzaWduZXJJbnN0YW5jZS5tb2RlID0gJ2VkaXQnO1xyXG4gICAgdGhpcy5tb2RlID0gJ2VkaXQnO1xyXG4gICAgdGhpcy5fZm9ybSgpO1xyXG4gIH1cclxuICBzYXZlKCkge1xyXG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLm1vZGVsLCB0aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKSk7XHJcbiAgICB0aGlzLl9jdXN0b21EZXNpZ25lckluc3RhbmNlPy5vbkZpbmlzaCAmJiB0aGlzLl9jdXN0b21EZXNpZ25lckluc3RhbmNlLm9uRmluaXNoKCk7XHJcbiAgICB0aGlzLm9uU2F2ZS5lbWl0KHRoaXMubW9kZWwpO1xyXG4gICAgdGhpcy5fcGFuZS5jbG9zZSgpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBDdHJsLXMgc2F2ZVxyXG4gICAqIEBwYXJhbSBldmVudFxyXG4gICAqL1xyXG4gIGhhbmRsZUtleWJvYXJkRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGlmIChldmVudC5jdHJsS2V5ICYmIChldmVudC53aGljaCA9PT0gODMgfHwgZXZlbnQud2hpY2ggPT09IDExNSkpIHtcclxuICAgICAgdGhpcy5mb3JtLnZhbGlkICYmIHRoaXMuc2F2ZSgpO1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Rlc3Ryb3k/Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3k/LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiIsIiAgPCEtLXdpZGdldCBtb2RlIC0tPlxyXG48bmctY29udGFpbmVyICpuZ0lmPVwibW9kZSA9PT0gJ3dpZGdldCc7IGVsc2UgZWRpdFwiPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJtb2RlbC5mYW1pbHlcIj5cclxuICAgIDxkaXYgKm5nSWY9XCJzdmdbbW9kZWwuZmFtaWx5XVwiIFtpbm5lckhUTUxdPVwic3ZnW21vZGVsLmZhbWlseV18c2FuaXRpemVIdG1sXCIgW2JpemRvY1Rvb2x0aXBdPVwibW9kZWwuZmFtaWx5XCI+PC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiIXN2Z1ttb2RlbC5mYW1pbHldXCI+e3ttb2RlbC5mYW1pbHl9fTwvZGl2PlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwid2lkZ2V0Q29udGVudD8udGVtcGxhdGVSZWZcIj48L25nLWNvbnRhaW5lcj5cclxuICA8IS0tb3B0aW9ucy0tPlxyXG4gIDxuZy1jb250YWluZXIgKGF0dGFjaGVkKT1cIm9wdGlvbnNhdHRhY2hlZCgkZXZlbnQpXCIgW2Nka1BvcnRhbE91dGxldF09XCJvcHRpb25zXCI+PC9uZy1jb250YWluZXI+XHJcbjwvbmctY29udGFpbmVyPlxyXG48IS0tYWRkIG1vZGUtLT5cclxuPG5nLXRlbXBsYXRlICNlZGl0PlxyXG4gIDwhLS1lZGl0IG1vZGUtLT5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwibW9kZSA9PT0gJ2VkaXQnXCI+XHJcbiAgICA8bWF0LXRvb2xiYXI+XHJcbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJzYXZlKClcIiBbZGlzYWJsZWRdPVwiIWZvcm0udmFsaWQgfHwgIWZvcm0uZGlydHlcIj48bWF0LWljb24+c2F2ZTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICA8L21hdC10b29sYmFyPlxyXG4gICAgPHAgKm5nSWY9XCJtb2RlbC5yZXNvdXJjZVwiIGNsYXNzPVwibWVzc2FnZVwiIChjbGljayk9XCJ1bmxvY2soJGV2ZW50KVwiIFtpbm5lckhUTUxdPVwiJ1VubG9ja011bHRpbGFuZyd8dHJhbnNsYXRlXCI+PC9wPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxmb3JtIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNsYXNzPVwiY29sdW1uXCIgKGtleWRvd24pPVwiaGFuZGxlS2V5Ym9hcmRFdmVudCgkZXZlbnQpXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nSWY9XCJtb2RlID09PSAnZWRpdCcgJiYgIW9wdGlvbnNzdGF0ZVwiPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmbGV4XCI+XHJcbiAgICAgICAgPG1hdC1sYWJlbD57eydUaXRsZSd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIiByZXF1aXJlZCAjdGl0bGUgLz5cclxuICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybS5nZXQoJ3RpdGxlJykuaGFzRXJyb3IoJ3JlcXVpcmVkJylcIiBbaW5uZXJIVE1MXT1cIidSZXF1aXJlZEVycid8dHJhbnNsYXRlOignVGl0bGUnfHRyYW5zbGF0ZSlcIj48L21hdC1lcnJvcj5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgJm5ic3A7XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZsZXhcIj5cclxuICAgICAgICA8bWF0LWxhYmVsPnt7J05hbWUnfHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIiByZXF1aXJlZCAvPlxyXG4gICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtLmdldCgnbmFtZScpLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCIgW2lubmVySFRNTF09XCInUmVxdWlyZWRFcnInfHRyYW5zbGF0ZTooJ05hbWUnfHRyYW5zbGF0ZSlcIj48L21hdC1lcnJvcj5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLWFyZ3VtZW50cy0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFyZ3VtZW50c1wiIChhdHRhY2hlZCk9XCJhcmd1bWVudHNhdHRhY2hlZCgkZXZlbnQpXCIgW2Nka1BvcnRhbE91dGxldF09XCJhcmd1bWVudHNcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwhLS1vcHRpb25zLS0+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib3B0aW9uc1wiIChhdHRhY2hlZCk9XCJvcHRpb25zYXR0YWNoZWQoJGV2ZW50KVwiIFtjZGtQb3J0YWxPdXRsZXRdPVwib3B0aW9uc1wiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vZGUgPT09ICdlZGl0J1wiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImVkaXRDb250ZW50Py50ZW1wbGF0ZVJlZlwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPCEtLXByaXZpbGVnZXMtLT5cclxuICAgIDxiaXpkb2MtZGVzaWduZXItcHJpdmlsZWdlcyAqbmdJZj1cImZvcm0uY29udGFpbnMoJ3ByaXZpbGVnZXMnKSAmJiAhb3B0aW9uc3N0YXRlXCIgW2Zvcm1dPVwiZm9ybS5nZXQoJ3ByaXZpbGVnZXMnKVwiPjwvYml6ZG9jLWRlc2lnbmVyLXByaXZpbGVnZXM+XHJcbiAgPC9mb3JtPlxyXG4gIDxkaXYgY2xhc3M9XCJyb3cgYWN0aW9uc1wiICpuZ0lmPVwibW9kZSA9PT0gJ2FkZCdcIj5cclxuICAgIDxzcGFuIGNsYXNzPVwiZGl2aWRlclwiPjwvc3Bhbj5cclxuICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIFtkaXNhYmxlZF09XCIhZm9ybS52YWxpZFwiIChjbGljayk9XCJjb250aW51ZSgpXCIgdHlwZT1cImJ1dHRvblwiPnt7J0NvbnRpbnVlJ3x0cmFuc2xhdGV9fSZuYnNwOzxtYXQtaWNvbj5kb3VibGVfYXJyb3c8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
210
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzaWduZXItZWxlbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvZGVzaWduZXItZWxlbWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvZGVzaWduZXItZWxlbWVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBZ0IsWUFBWSxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFDekssT0FBTyxFQUF1QyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRixPQUFPLEVBQUUsZUFBZSxFQUFVLE1BQU0scUJBQXFCLENBQUM7QUFDOUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUMsT0FBTyxFQUFFLFdBQVcsRUFBZ0IsV0FBVyxFQUFjLFVBQVUsRUFBNEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxSCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUXJFLE1BQU0sT0FBTyxvQkFBb0I7SUFDL0IsWUFBbUIsV0FBaUM7UUFBakMsZ0JBQVcsR0FBWCxXQUFXLENBQXNCO0lBQUksQ0FBQzs7aUhBRDlDLG9CQUFvQjtxR0FBcEIsb0JBQW9COzJGQUFwQixvQkFBb0I7a0JBSGhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtpQkFDaEM7O0FBT0QsTUFBTSxPQUFPLHNCQUFzQjtJQUNqQyxZQUFtQixXQUFpQztRQUFqQyxnQkFBVyxHQUFY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QVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ3VCLFVBQVU7c0JBQXRDLE1BQU07dUJBQUMsVUFBVTtnQkFDTyxNQUFNO3NCQUE5QixNQUFNO3VCQUFDLE1BQU07Z0JBQ3NCLFdBQVc7c0JBQTlDLFlBQVk7dUJBQUMsb0JBQW9CO2dCQUNJLGFBQWE7c0JBQWxELFlBQVk7dUJBQUMsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBDb21wb25lbnRSZWYsIENvbnRlbnRDaGlsZCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCwgUG9ydGFsIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIjtcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgQml6RG9jQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyIH0gZnJvbSBcIi4uLy4uL2NvcmUvY29tcG9uZW50LWZhY3RvcnktcmVzb2x2ZXJcIjtcclxuaW1wb3J0IHsgRGVzaWduZXJSZWYsIEVsZW1lbnRNb2RlbCwgcHJvZ3JhbU5hbWUsIERlc2lnbk1vZGUsIEZBTUlMWV9TVkcsIERlc2lnbmVyRWxlbWVudENvbXBvbmVudCB9IGZyb20gXCIuL2RlY2xhcmF0aW9uc1wiO1xyXG5pbXBvcnQgeyBMYXlvdXRDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vY29yZS9sYXlvdXQvbGF5b3V0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBFU0NBUEUgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2tleWNvZGVzXCI7XHJcbmltcG9ydCB7IGVsZW1lbnQgfSBmcm9tIFwicHJvdHJhY3RvclwiO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3NlclwiO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbYml6ZG9jRWRpdENvbnRlbnRdJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRWRpdENvbnRlbnREaXJlY3RpdmUge1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8dW5rbm93bj4pIHsgfVxyXG59XHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2JpemRvY0NvbnRlbnRdJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgV2lkZ2V0Q29udGVudERpcmVjdGl2ZSB7XHJcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx1bmtub3duPikgeyB9XHJcbn1cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbYml6ZG9jQWRkQ29udGVudF0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBZGRDb250ZW50RGlyZWN0aXZlIHtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPHVua25vd24+KSB7IH1cclxufVxyXG5cclxuLyoqXHJcbiovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLWRlc2lnbmVyLWVsZW1lbnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnZGVzaWduZXItZWxlbWVudC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJ2Rlc2lnbmVyLWVsZW1lbnQuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0XHJcbiAgY2xhc3MgRGVzaWduZXJJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICByZWFkb25seSBzdmcgPSBGQU1JTFlfU1ZHO1xyXG4gIEBJbnB1dCgpIHByaXZpbGVnZXM6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgaWNvbjogYm9vbGVhbjtcclxuICBASW5wdXQoKSBmb3JtOiBGb3JtR3JvdXA7XHJcbiAgQE91dHB1dCgnY29udGludWUnKSByZWFkb25seSBvbkNvbnRpbnVlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoJ3NhdmUnKSByZWFkb25seSBvblNhdmUgPSBuZXcgRXZlbnRFbWl0dGVyPEVsZW1lbnRNb2RlbD4oKTtcclxuICBAQ29udGVudENoaWxkKEVkaXRDb250ZW50RGlyZWN0aXZlKSBlZGl0Q29udGVudDogRWRpdENvbnRlbnREaXJlY3RpdmU7XHJcbiAgQENvbnRlbnRDaGlsZChXaWRnZXRDb250ZW50RGlyZWN0aXZlKSB3aWRnZXRDb250ZW50OiBXaWRnZXRDb250ZW50RGlyZWN0aXZlO1xyXG4gIG9wdGlvbnM6IFBvcnRhbDxhbnk+O1xyXG4gIGFyZ3VtZW50czogUG9ydGFsPGFueT47XHJcbiAgbW9kZTogRGVzaWduTW9kZTtcclxuICBtb2RlbDogRWxlbWVudE1vZGVsPGFueT47XHJcbiAgcHJpdmF0ZSBfY3VzdG9tRGVzaWduZXJJbnN0YW5jZTogRGVzaWduZXJFbGVtZW50Q29tcG9uZW50PGFueT47XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgb3B0aW9uc3N0YXRlOiBhbnk7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9lbGVtZW50OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PixcclxuICAgIHByaXZhdGUgX2ZiOiBGb3JtQnVpbGRlcixcclxuICAgIHByaXZhdGUgX3Nhbml0aXplcjogRG9tU2FuaXRpemVyLFxyXG4gICAgQEluamVjdChEZXNpZ25lclJlZikgcHJpdmF0ZSBfcmVmOiBEZXNpZ25lclJlZjxhbnk+LFxyXG4gICAgcHJpdmF0ZSBfY2ZyOiBCaXpEb2NDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgKSB7XHJcbiAgICB0aGlzLm1vZGUgPSBfcmVmLm1vZGU7XHJcbiAgICB0aGlzLm1vZGVsID0gX3JlZi5tb2RlbCBhcyBFbGVtZW50TW9kZWw7XHJcbiAgfVxyXG4gIHJlc291cmNlKGltYWdlOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLl9zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKGAvYXNzZXRzL3N5c3RlbS8ke2ltYWdlfWApO1xyXG4gIH1cclxuICBvcHRpb25zYXR0YWNoZWQoY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8RGVzaWduZXJFbGVtZW50Q29tcG9uZW50PGFueT4+KSB7XHJcbiAgICBjb25zdCB7IGluc3RhbmNlIH0gPSBjb21wb25lbnRSZWY7XHJcbiAgICB0aGlzLl9jdXN0b21EZXNpZ25lckluc3RhbmNlID0gaW5zdGFuY2UgYXMgRGVzaWduZXJFbGVtZW50Q29tcG9uZW50PGFueT47XHJcbiAgICBpbnN0YW5jZS5tb2RlbCA9IHRoaXMubW9kZWw7XHJcbiAgICBpZiAodGhpcy5tb2RlID09PSAnYWRkJyAmJiAhaW5zdGFuY2Uub25Db250aW51ZSkge1xyXG4gICAgICB0aGlzLm9uQ29udGludWUuZW1pdCgpO1xyXG4gICAgICB0aGlzLm1vZGUgPSAnZWRpdCc7XHJcbiAgICAgIHRoaXMuX2Zvcm0oKTtcclxuICAgIH1cclxuICAgIGluc3RhbmNlLm1vZGUgPSB0aGlzLm1vZGU7XHJcbiAgICBpZiAodGhpcy5tb2RlICE9PSAnd2lkZ2V0Jykge1xyXG4gICAgICB0aGlzLmZvcm0uYWRkQ29udHJvbCgnb3B0aW9ucycsIGluc3RhbmNlLmZvcm0sIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICAgaW5zdGFuY2UuZm9ybS5wYXRjaFZhbHVlKHRoaXMubW9kZWwub3B0aW9ucywgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBhcmd1bWVudHNhdHRhY2hlZChjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxMYXlvdXRDb21wb25lbnQ+KSB7XHJcbiAgICBjb25zdCB7IGluc3RhbmNlIH0gPSBjb21wb25lbnRSZWY7XHJcbiAgICBpbnN0YW5jZS5maWVsZHMgPSB0aGlzLm1vZGVsLmFyZ3VtZW50cztcclxuICAgIGluc3RhbmNlLm1vZGVsID0gdGhpcy5tb2RlbC5vcHRpb25zO1xyXG4gICAgaW5zdGFuY2UubGF5b3V0KCk7XHJcbiAgICB0aGlzLm1vZGUgIT09ICd3aWRnZXQnICYmXHJcbiAgICAgIHRoaXMuZm9ybS5hZGRDb250cm9sKCdvcHRpb25zJywgaW5zdGFuY2UuZm9ybSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLm1vZGUgPT0gJ2FkZCcpIHtcclxuICAgICAgdGhpcy5mb3JtLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHt9KTtcclxuICAgICAgaWYgKHRoaXMubW9kZWwuY29weU9mKVxyXG4gICAgICAgIHRoaXMubW9kZSA9ICdlZGl0JztcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm1vZGVsLnRlbXBsYXRlKSB7XHJcbiAgICAgIGNvbnN0IGNvbXAgPSB0aGlzLl9jZnIuY29tcG9uZW50KHRoaXMubW9kZWwudGVtcGxhdGUpO1xyXG4gICAgICB0aGlzLm9wdGlvbnMgPSBuZXcgQ29tcG9uZW50UG9ydGFsPERlc2lnbmVyRWxlbWVudENvbXBvbmVudDxhbnk+Pihjb21wKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMubW9kZSAhPT0gJ3dpZGdldCcgJiYgdGhpcy5tb2RlbC5hcmd1bWVudHM/Lmxlbmd0aClcclxuICAgICAgdGhpcy5hcmd1bWVudHMgPSBuZXcgQ29tcG9uZW50UG9ydGFsKExheW91dENvbXBvbmVudCk7XHJcbiAgICBlbHNlIGlmICh0aGlzLm1vZGUgPT09ICdhZGQnKVxyXG4gICAgICB0aGlzLm1vZGUgPSAnZWRpdCc7XHJcblxyXG4gICAgdGhpcy5tb2RlID09PSAnZWRpdCcgJiZcclxuICAgICAgdGhpcy5fZm9ybSgpO1xyXG4gICAgdGhpcy5tb2RlICE9PSAnd2lkZ2V0JyAmJlxyXG4gICAgICB0aGlzLl9yZWYuX3N0YXRlJC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKHYgPT5cclxuICAgICAgICB0aGlzLm9wdGlvbnNzdGF0ZSA9IHYpO1xyXG4gIH1cclxuICBwcml2YXRlIF9mb3JtKCkge1xyXG4gICAgY29uc3QgbmFtZSA9IHRoaXMuX2ZiLmNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcbiAgICAgIHRpdGxlID0gdGhpcy5fZmIuY29udHJvbChudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgIHRoaXMubW9kZWwucmVzb3VyY2UgJiYgdGl0bGUuZGlzYWJsZSgpO1xyXG4gICAgaWYgKHRoaXMubW9kZWwuZHJhZnQpIHRpdGxlLnZhbHVlQ2hhbmdlcy5cclxuICAgICAgcGlwZSgvKnRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSovKS5zdWJzY3JpYmUoKHQ6IHN0cmluZykgPT5cclxuICAgICAgICB0ICYmIG5hbWUuc2V0VmFsdWUocHJvZ3JhbU5hbWUodCkpXHJcbiAgICAgICk7XHJcbiAgICBlbHNlXHJcbiAgICAgIG5hbWUuZGlzYWJsZSgpO1xyXG4gICAgdGhpcy5mb3JtLmFkZENvbnRyb2woJ25hbWUnLCBuYW1lLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICB0aGlzLmZvcm0uYWRkQ29udHJvbCgndGl0bGUnLCB0aXRsZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgdGhpcy5pY29uICYmIHRoaXMuZm9ybS5hZGRDb250cm9sKCdpY29uJywgdGhpcy5fZmIuY29udHJvbChudWxsKSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgdGhpcy5wcml2aWxlZ2VzICYmIHRoaXMuZm9ybS5hZGRDb250cm9sKCdwcml2aWxlZ2VzJywgdGhpcy5fZmIuZ3JvdXAoe1xyXG4gICAgICBydWxlOiBudWxsLFxyXG4gICAgICByb2xlczogW11cclxuICAgIH0pKTtcclxuICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHRoaXMubW9kZWwsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICB9XHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgKHRoaXMubW9kZSA9PT0gJ2VkaXQnIHx8ICh0aGlzLm1vZGUgPT09ICdhZGQnICYmICF0aGlzLm9wdGlvbnMpKSAmJlxyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpPy5mb2N1cygpKTtcclxuICB9XHJcbiAgdW5sb2NrKGV2dDogRXZlbnQpIHtcclxuICAgIGlmICgoZXZ0LnNyY0VsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLnRhZ05hbWUgIT09ICdBJykgcmV0dXJuO1xyXG4gICAgdGhpcy5tb2RlbC5yZXNvdXJjZSA9IG51bGw7XHJcbiAgICB0aGlzLmZvcm0uZ2V0KCd0aXRsZScpLmVuYWJsZSgpO1xyXG4gICAgdGhpcy5fcmVmLl91bmxvY2skLm5leHQoZmFsc2UpO1xyXG4gIH1cclxuICBjb250aW51ZSgpIHtcclxuICAgIGlmICh0aGlzLl9jdXN0b21EZXNpZ25lckluc3RhbmNlPy5vbkNvbnRpbnVlKSB7XHJcbiAgICAgIHRoaXMuX2N1c3RvbURlc2lnbmVySW5zdGFuY2Uub25Db250aW51ZSgpO1xyXG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMub3B0aW9ucywgdGhpcy5fY3VzdG9tRGVzaWduZXJJbnN0YW5jZS5mb3JtLmdldFJhd1ZhbHVlKCkpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5vbkNvbnRpbnVlLmVtaXQoKTtcclxuICAgIGlmICh0aGlzLl9jdXN0b21EZXNpZ25lckluc3RhbmNlKVxyXG4gICAgICB0aGlzLl9jdXN0b21EZXNpZ25lckluc3RhbmNlLm1vZGUgPSAnZWRpdCc7XHJcbiAgICB0aGlzLm1vZGUgPSAnZWRpdCc7XHJcbiAgICB0aGlzLl9mb3JtKCk7XHJcbiAgfVxyXG4gIHNhdmUoKSB7XHJcbiAgICBPYmplY3QuYXNzaWduKHRoaXMubW9kZWwsIHRoaXMuZm9ybS5nZXRSYXdWYWx1ZSgpKTtcclxuICAgIHRoaXMuX2N1c3RvbURlc2lnbmVySW5zdGFuY2U/Lm9uRmluaXNoICYmIHRoaXMuX2N1c3RvbURlc2lnbmVySW5zdGFuY2Uub25GaW5pc2goKTtcclxuICAgIHRoaXMub25TYXZlLmVtaXQodGhpcy5tb2RlbCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEN0cmwtcyBzYXZlXHJcbiAgICogQHBhcmFtIGV2ZW50XHJcbiAgICovXHJcbiAgaGFuZGxlS2V5Ym9hcmRFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgaWYgKGV2ZW50LmN0cmxLZXkgJiYgKGV2ZW50LndoaWNoID09PSA4MyB8fCBldmVudC53aGljaCA9PT0gMTE1KSkge1xyXG4gICAgICB0aGlzLmZvcm0udmFsaWQgJiYgdGhpcy5zYXZlKCk7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveT8ubmV4dCgpO1xyXG4gICAgdGhpcy5fZGVzdHJveT8uY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIiwiICA8IS0td2lkZ2V0IG1vZGUgLS0+XHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJtb2RlID09PSAnd2lkZ2V0JzsgZWxzZSBlZGl0aW5nXCI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vZGVsLmZhbWlseVwiPlxyXG4gICAgPGltZyAqbmdJZj1cInN2Z1ttb2RlbC5mYW1pbHldXCIgY2xhc3M9XCJsb2dvXCIgW3NyY109XCJyZXNvdXJjZShzdmdbbW9kZWwuZmFtaWx5XSlcIiBbYml6ZG9jVG9vbHRpcF09XCJtb2RlbC5mYW1pbHlcIiAvPlxyXG4gICAgPGRpdiAqbmdJZj1cIiFzdmdbbW9kZWwuZmFtaWx5XVwiPnt7bW9kZWwuZmFtaWx5fX08L2Rpdj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8IS0tb3B0aW9ucy0tPlxyXG4gIDxuZy1jb250YWluZXIgKGF0dGFjaGVkKT1cIm9wdGlvbnNhdHRhY2hlZCgkZXZlbnQpXCIgW2Nka1BvcnRhbE91dGxldF09XCJvcHRpb25zXCI+PC9uZy1jb250YWluZXI+XHJcbiAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ3aWRnZXRDb250ZW50Py50ZW1wbGF0ZVJlZlwiPjwvbmctY29udGFpbmVyPlxyXG48L25nLWNvbnRhaW5lcj5cclxuPCEtLWFkZCBvciBlZGl0IG1vZGUtLT5cclxuPG5nLXRlbXBsYXRlICNlZGl0aW5nPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJtb2RlID09PSAnZWRpdCdcIj5cclxuICAgIDxtYXQtdG9vbGJhcj5cclxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInNhdmUoKVwiIFtkaXNhYmxlZF09XCIhZm9ybS52YWxpZCB8fCAhZm9ybS5kaXJ0eVwiPjxtYXQtaWNvbj5zYXZlPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgIDwvbWF0LXRvb2xiYXI+XHJcbiAgICA8cCAqbmdJZj1cIm1vZGVsLnJlc291cmNlXCIgY2xhc3M9XCJtZXNzYWdlXCIgKGNsaWNrKT1cInVubG9jaygkZXZlbnQpXCIgW2lubmVySFRNTF09XCInVW5sb2NrTXVsdGlsYW5nJ3x0cmFuc2xhdGVcIj48L3A+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPGZvcm0gYXV0b2NvbXBsZXRlPVwib2ZmXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCIgY2xhc3M9XCJjb2x1bW5cIiAoa2V5ZG93bik9XCJoYW5kbGVLZXlib2FyZEV2ZW50KCRldmVudClcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtb2RlID09PSAnZWRpdCcgJiYgIW9wdGlvbnNzdGF0ZVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZmxleFwiPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD57eydUaXRsZSd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZVwiIHJlcXVpcmVkICN0aXRsZSAvPlxyXG4gICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm0uZ2V0KCd0aXRsZScpLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCIgW2lubmVySFRNTF09XCInUmVxdWlyZWRFcnInfHRyYW5zbGF0ZTooJ1RpdGxlJ3x0cmFuc2xhdGUpXCI+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAmbmJzcDtcclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmbGV4XCI+XHJcbiAgICAgICAgICA8bWF0LWxhYmVsPnt7J05hbWUnfHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiIHJlcXVpcmVkIC8+XHJcbiAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybS5nZXQoJ25hbWUnKS5oYXNFcnJvcigncmVxdWlyZWQnKVwiIFtpbm5lckhUTUxdPVwiJ1JlcXVpcmVkRXJyJ3x0cmFuc2xhdGU6KCdOYW1lJ3x0cmFuc2xhdGUpXCI+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxiaXpkb2MtaWNvbi1waWNrZXIgKm5nSWY9XCJpY29uXCIgZm9ybUNvbnRyb2xOYW1lPVwiaWNvblwiIHJlcXVpcmVkPjwvYml6ZG9jLWljb24tcGlja2VyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8IS0tYXJndW1lbnRzLS0+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXJndW1lbnRzXCIgKGF0dGFjaGVkKT1cImFyZ3VtZW50c2F0dGFjaGVkKCRldmVudClcIiBbY2RrUG9ydGFsT3V0bGV0XT1cImFyZ3VtZW50c1wiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPCEtLW9wdGlvbnMtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvcHRpb25zXCIgKGF0dGFjaGVkKT1cIm9wdGlvbnNhdHRhY2hlZCgkZXZlbnQpXCIgW2Nka1BvcnRhbE91dGxldF09XCJvcHRpb25zXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibW9kZSA9PT0gJ2VkaXQnXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZWRpdENvbnRlbnQ/LnRlbXBsYXRlUmVmXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8IS0tcHJpdmlsZWdlcy0tPlxyXG4gICAgPGJpemRvYy1kZXNpZ25lci1wcml2aWxlZ2VzICpuZ0lmPVwiZm9ybS5jb250YWlucygncHJpdmlsZWdlcycpICYmICFvcHRpb25zc3RhdGVcIiBbZm9ybV09XCJmb3JtLmdldCgncHJpdmlsZWdlcycpXCI+PC9iaXpkb2MtZGVzaWduZXItcHJpdmlsZWdlcz5cclxuICA8L2Zvcm0+XHJcbiAgPGRpdiBjbGFzcz1cInJvdyBhY3Rpb25zXCIgKm5nSWY9XCJtb2RlID09PSAnYWRkJ1wiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gW2Rpc2FibGVkXT1cIiFmb3JtLnZhbGlkXCIgKGNsaWNrKT1cImNvbnRpbnVlKClcIiB0eXBlPVwiYnV0dG9uXCI+e3snQ29udGludWUnfHRyYW5zbGF0ZX19Jm5ic3A7PG1hdC1pY29uPmRvdWJsZV9hcnJvdzwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
@@ -77,9 +77,9 @@ export class DesignerPrivilegesComponent {
77
77
  inp.value = '';
78
78
  }
79
79
  }
80
- DesignerPrivilegesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: DesignerPrivilegesComponent, deps: [{ token: i1.FormBuilder }, { token: i2.SystemService }, { token: DesignerRef }], target: i0.ɵɵFactoryTarget.Component });
81
- DesignerPrivilegesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: DesignerPrivilegesComponent, selector: "bizdoc-designer-privileges", inputs: { form: "form" }, ngImport: i0, template: "<h2 class=\"mat-title\">{{'Privileges'|translate}}</h2>\r\n<div [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field class=\"flex\">\r\n <mat-chip-list #chips [attr.aria-label]=\"''\">\r\n <mat-chip *ngFor=\"let r of form.get('roles').value\"\r\n [removable]=\"true\"\r\n (removed)=\"remove(r)\">\r\n {{titleOf(r)}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip>\r\n <input [placeholder]=\"'Roles'|translate\"\r\n [formControl]=search\r\n #inputrole\r\n [matAutocomplete]=\"nametype\"\r\n [matChipInputFor]=\"chips\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\r\n </mat-chip-list>\r\n <mat-autocomplete #nametype=\"matAutocomplete\" (optionSelected)=\"add(inputrole, $event)\">\r\n <ng-container *ngFor=\"let r of roles\">\r\n <mat-option *ngIf=\"!form.get('roles').value || form.get('roles').value.indexOf(r.name)<0\" [value]=\"r.name\">\r\n {{r.title || r.name}}\r\n </mat-option>\r\n </ng-container>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <bizdoc-ace-input [placeholder]=\"'Condition'|translate\" formControlName=\"rule\"></bizdoc-ace-input>\r\n <mat-hint> {{ 'ProgrammableExpression'|translate }}</mat-hint>\r\n </mat-form-field>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.MatChipList, selector: "mat-chip-list", inputs: ["role", "aria-describedby", "errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { kind: "directive", type: i4.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "role", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { kind: "directive", type: i4.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i4.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i9.AceInput, selector: "bizdoc-ace-input", inputs: ["params", "placeholder", "required", "disabled", "value"] }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }] });
82
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: DesignerPrivilegesComponent, decorators: [{
80
+ DesignerPrivilegesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DesignerPrivilegesComponent, deps: [{ token: i1.FormBuilder }, { token: i2.SystemService }, { token: DesignerRef }], target: i0.ɵɵFactoryTarget.Component });
81
+ DesignerPrivilegesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: DesignerPrivilegesComponent, selector: "bizdoc-designer-privileges", inputs: { form: "form" }, ngImport: i0, template: "<h2 class=\"mat-title\">{{'Privileges'|translate}}</h2>\r\n<div [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field class=\"flex\">\r\n <mat-chip-list #chips [attr.aria-label]=\"''\">\r\n <mat-chip *ngFor=\"let r of form.get('roles').value\"\r\n [removable]=\"true\"\r\n (removed)=\"remove(r)\">\r\n {{titleOf(r)}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip>\r\n <input [placeholder]=\"'Roles'|translate\"\r\n [formControl]=search\r\n #inputrole\r\n [matAutocomplete]=\"nametype\"\r\n [matChipInputFor]=\"chips\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\r\n </mat-chip-list>\r\n <mat-autocomplete #nametype=\"matAutocomplete\" (optionSelected)=\"add(inputrole, $event)\">\r\n <ng-container *ngFor=\"let r of roles\">\r\n <mat-option *ngIf=\"!form.get('roles').value || form.get('roles').value.indexOf(r.name)<0\" [value]=\"r.name\">\r\n {{r.title || r.name}}\r\n </mat-option>\r\n </ng-container>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <bizdoc-ace-input [placeholder]=\"'Condition'|translate\" formControlName=\"rule\"></bizdoc-ace-input>\r\n <mat-hint> {{ 'ProgrammableExpression'|translate }}</mat-hint>\r\n </mat-form-field>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.MatChipList, selector: "mat-chip-list", inputs: ["role", "aria-describedby", "errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { kind: "directive", type: i4.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "role", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { kind: "directive", type: i4.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i4.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i9.AceInput, selector: "bizdoc-ace-input", inputs: ["params", "placeholder", "required", "disabled", "value"] }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }] });
82
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DesignerPrivilegesComponent, decorators: [{
83
83
  type: Component,
84
84
  args: [{ selector: 'bizdoc-designer-privileges', template: "<h2 class=\"mat-title\">{{'Privileges'|translate}}</h2>\r\n<div [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field class=\"flex\">\r\n <mat-chip-list #chips [attr.aria-label]=\"''\">\r\n <mat-chip *ngFor=\"let r of form.get('roles').value\"\r\n [removable]=\"true\"\r\n (removed)=\"remove(r)\">\r\n {{titleOf(r)}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip>\r\n <input [placeholder]=\"'Roles'|translate\"\r\n [formControl]=search\r\n #inputrole\r\n [matAutocomplete]=\"nametype\"\r\n [matChipInputFor]=\"chips\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\r\n </mat-chip-list>\r\n <mat-autocomplete #nametype=\"matAutocomplete\" (optionSelected)=\"add(inputrole, $event)\">\r\n <ng-container *ngFor=\"let r of roles\">\r\n <mat-option *ngIf=\"!form.get('roles').value || form.get('roles').value.indexOf(r.name)<0\" [value]=\"r.name\">\r\n {{r.title || r.name}}\r\n </mat-option>\r\n </ng-container>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <bizdoc-ace-input [placeholder]=\"'Condition'|translate\" formControlName=\"rule\"></bizdoc-ace-input>\r\n <mat-hint> {{ 'ProgrammableExpression'|translate }}</mat-hint>\r\n </mat-form-field>\r\n</div>\r\n" }]
85
85
  }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.SystemService }, { type: i11.DesignerRef, decorators: [{
@@ -52,9 +52,9 @@ export class DesignerElementComponentBase {
52
52
  setTimeout(() => this._element.nativeElement.querySelector('input')?.focus());
53
53
  }
54
54
  }
55
- DesignerElementComponentBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: DesignerElementComponentBase, deps: [{ token: i1.FormBuilder }, { token: i0.ElementRef }, { token: DesignerRef }], target: i0.ɵɵFactoryTarget.Directive });
56
- DesignerElementComponentBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.0", type: DesignerElementComponentBase, ngImport: i0 });
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: DesignerElementComponentBase, decorators: [{
55
+ DesignerElementComponentBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DesignerElementComponentBase, deps: [{ token: i1.FormBuilder }, { token: i0.ElementRef }, { token: DesignerRef }], target: i0.ɵɵFactoryTarget.Directive });
56
+ DesignerElementComponentBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: DesignerElementComponentBase, ngImport: i0 });
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DesignerElementComponentBase, decorators: [{
58
58
  type: Directive
59
59
  }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i0.ElementRef }, { type: i2.DesignerRef, decorators: [{
60
60
  type: Inject,
@@ -71,9 +71,9 @@ export class DesignerTypeElementComponent extends DesignerElementComponentBase {
71
71
  ngOnInit() {
72
72
  }
73
73
  }
74
- DesignerTypeElementComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: DesignerTypeElementComponent, deps: [{ token: i1.FormBuilder }, { token: i0.ElementRef }, { token: DesignerRef }], target: i0.ɵɵFactoryTarget.Directive });
75
- DesignerTypeElementComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.0", type: DesignerTypeElementComponent, viewQueries: [{ propertyName: "designer", first: true, predicate: DesignerItemComponent, descendants: true }], usesInheritance: true, ngImport: i0 });
76
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: DesignerTypeElementComponent, decorators: [{
74
+ DesignerTypeElementComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DesignerTypeElementComponent, deps: [{ token: i1.FormBuilder }, { token: i0.ElementRef }, { token: DesignerRef }], target: i0.ɵɵFactoryTarget.Directive });
75
+ DesignerTypeElementComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: DesignerTypeElementComponent, viewQueries: [{ propertyName: "designer", first: true, predicate: DesignerItemComponent, descendants: true }], usesInheritance: true, ngImport: i0 });
76
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DesignerTypeElementComponent, decorators: [{
77
77
  type: Directive
78
78
  }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i0.ElementRef }, { type: i2.DesignerRef, decorators: [{
79
79
  type: Inject,
@@ -94,6 +94,7 @@ function applyMixins(derivedCtor, constructors) {
94
94
  export class DesignerCubeElementComponent extends DesignerElementComponentBase {
95
95
  constructor(fb, element, ref) {
96
96
  super(fb, element, ref);
97
+ this.sortComparator = (a, b) => 0;
97
98
  this.cubes = ref.designer.cubes;
98
99
  }
99
100
  cubeSelected(evt) {
@@ -102,14 +103,15 @@ export class DesignerCubeElementComponent extends DesignerElementComponentBase {
102
103
  }
103
104
  ngOnInit() {
104
105
  const cubeId = this.options['cube'];
105
- this.cube = !cubeId ? this.cubes[0] : this.cubes.find(c => c.name === cubeId);
106
- // if (this.mode !== 'widget') {
107
- // }
106
+ if (cubeId)
107
+ this.cube = this.cubes.find(c => c.name === cubeId);
108
+ else if (this.cubes.length === 1)
109
+ this.cube = this.cubes[0];
108
110
  }
109
111
  }
110
- DesignerCubeElementComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: DesignerCubeElementComponent, deps: [{ token: i1.FormBuilder }, { token: i0.ElementRef }, { token: DesignerRef }], target: i0.ɵɵFactoryTarget.Directive });
111
- DesignerCubeElementComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.0", type: DesignerCubeElementComponent, usesInheritance: true, ngImport: i0 });
112
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: DesignerCubeElementComponent, decorators: [{
112
+ DesignerCubeElementComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DesignerCubeElementComponent, deps: [{ token: i1.FormBuilder }, { token: i0.ElementRef }, { token: DesignerRef }], target: i0.ɵɵFactoryTarget.Directive });
113
+ DesignerCubeElementComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: DesignerCubeElementComponent, usesInheritance: true, ngImport: i0 });
114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DesignerCubeElementComponent, decorators: [{
113
115
  type: Directive
114
116
  }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i0.ElementRef }, { type: i2.DesignerRef, decorators: [{
115
117
  type: Inject,
@@ -124,4 +126,4 @@ export function isAccum(chartType) {
124
126
  return true;
125
127
  }
126
128
  }
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzaWduZXIuYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvYWRtaW4vY29uZmlndXJhdGlvbi1kZXNpZ25lci9kZXNpZ25lci5iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsTUFBTSxFQUF1QixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJOUYsT0FBTyxFQUFzRCxXQUFXLEVBQWUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7OztBQUVyRSxNQUFNO0FBRU4sTUFBTSxPQUFnQiw0QkFBNEI7SUFVaEQsWUFBc0IsR0FBZ0IsRUFDNUIsUUFBeUIsRUFDRixJQUFvQjtRQUYvQixRQUFHLEdBQUgsR0FBRyxDQUFhO1FBQzVCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ0YsU0FBSSxHQUFKLElBQUksQ0FBZ0I7SUFDckQsQ0FBQztJQUxELElBQUksT0FBTyxLQUFRLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUEsQ0FBQyxDQUFDO0lBTTlDLE9BQU8sQ0FBQyxHQUFHLEtBQWU7UUFDeEIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUNELE1BQU0sQ0FBQyxHQUFHLEtBQWU7UUFDdkIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUNELFNBQVMsQ0FBQyxHQUFXO1FBQ25CLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUN2QixHQUFHLEVBQUUsY0FBYyxFQUFFLENBQUM7UUFDdEIsR0FBRyxFQUFFLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxJQUFJLENBQUMsS0FBNkIsRUFBRSxVQUFxQjtRQUN2RCxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNuRCxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN6QyxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUNELEdBQUcsQ0FBQyxVQUFxQixFQUFFLEtBQWdCLEVBQUUsS0FBYSxFQUFFLFFBQTBCO1FBQ3BGLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7UUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRztZQUNiLEtBQUs7WUFDTCxTQUFTLEVBQUUsS0FBSztTQUNqQixDQUFDO1FBQ0YsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBQ0QsSUFBSSxDQUFDLEtBQWdCLEVBQUUsS0FBYSxFQUFFLFFBQTBCO1FBQzlELElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxPQUFPLEdBQUc7WUFDYixLQUFLO1lBQ0wsU0FBUyxFQUFFLEtBQUs7U0FDakIsQ0FBQztRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUNPLE1BQU07UUFDWixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDaEYsQ0FBQzs7eUhBcERtQiw0QkFBNEIsdUVBWXRDLFdBQVc7NkdBWkQsNEJBQTRCOzJGQUE1Qiw0QkFBNEI7a0JBRGpELFNBQVM7OzBCQWFMLE1BQU07MkJBQUMsV0FBVzs7QUEyQ3ZCLE1BQU0sT0FBZ0IsNEJBQXNDLFNBQVEsNEJBQTRCO0lBSTlGLFlBQXNCLEdBQWdCLEVBQ3BDLE9BQXdCLEVBQ08sSUFBb0I7UUFDbkQsS0FBSyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFITCxRQUFHLEdBQUgsR0FBRyxDQUFhO1FBRUwsU0FBSSxHQUFKLElBQUksQ0FBZ0I7UUFFbkQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQXFCLENBQUM7SUFDMUMsQ0FBQztJQVRELFFBQVE7SUFDUixDQUFDOzt5SEFGbUIsNEJBQTRCLHVFQU10QyxXQUFXOzZHQU5ELDRCQUE0QixvRUFHckMscUJBQXFCOzJGQUhaLDRCQUE0QjtrQkFEakQsU0FBUzs7MEJBT0wsTUFBTTsyQkFBQyxXQUFXOzRDQUhhLFFBQVE7c0JBQXpDLFNBQVM7dUJBQUMscUJBQXFCOztBQVNsQyxTQUFTLFdBQVcsQ0FBQyxXQUFnQixFQUFFLFlBQW1CO0lBQ3hELFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtRQUNoQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQzlELE1BQU0sQ0FBQyxjQUFjLENBQ25CLFdBQVcsQ0FBQyxTQUFTLEVBQ3JCLElBQUksRUFDSixNQUFNLENBQUMsd0JBQXdCLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUM7Z0JBQ3pELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQ3BCLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUNELE1BQU07QUFFTixNQUFNLE9BQWdCLDRCQUFzQyxTQUFRLDRCQUErQjtJQU9qRyxZQUFZLEVBQWUsRUFDekIsT0FBd0IsRUFDSCxHQUFnQjtRQUNyQyxLQUFLLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBdUIsQ0FBQztJQUNwRCxDQUFDO0lBVEQsWUFBWSxDQUFDLEdBQW9CO1FBQy9CLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUUsR0FBRyxDQUFDLEtBQXNCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQU9ELFFBQVE7UUFDTixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFpQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFpQixDQUFDO1FBQ2hILGlDQUFpQztRQUNqQyxLQUFLO0lBQ0wsQ0FBQzs7eUhBbEJtQiw0QkFBNEIsdUVBU3RDLFdBQVc7NkdBVEQsNEJBQTRCOzJGQUE1Qiw0QkFBNEI7a0JBRGpELFNBQVM7OzBCQVVMLE1BQU07MkJBQUMsV0FBVzs7QUFXdkIsTUFBTSxVQUFVLE9BQU8sQ0FBQyxTQUFTO0lBQy9CLFFBQVEsU0FBUyxFQUFFO1FBQ2pCLEtBQUssS0FBSyxDQUFDO1FBQ1gsS0FBSyxVQUFVLENBQUM7UUFDaEIsS0FBSyxjQUFjLENBQUM7UUFDcEIsS0FBSyxRQUFRO1lBQ1gsT0FBTyxJQUFJLENBQUM7S0FDZjtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEluamVjdCwgT25Jbml0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUFycmF5LCBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IENka0RyYWdEcm9wIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9kcmFnLWRyb3BcIjtcclxuaW1wb3J0IHsgTWF0U2VsZWN0Q2hhbmdlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NlbGVjdFwiO1xyXG5pbXBvcnQgeyBEZXNpZ25lckVsZW1lbnRDb21wb25lbnQsIERlc2lnbk1vZGUsIEVsZW1lbnRNb2RlbCwgRGVzaWduZXJSZWYsIHByb2dyYW1OYW1lIH0gZnJvbSBcIi4vZGVjbGFyYXRpb25zXCI7XHJcbmltcG9ydCB7IERlc2lnbmVySXRlbUNvbXBvbmVudCB9IGZyb20gXCIuL2Rlc2lnbmVyLWVsZW1lbnQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gXCJyeGpzXCI7XHJcbi8qKiAqL1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIERlc2lnbmVyRWxlbWVudENvbXBvbmVudEJhc2U8VCA9IGFueT4gaW1wbGVtZW50cyBEZXNpZ25lckVsZW1lbnRDb21wb25lbnQ8VD4ge1xyXG4gIG1vZGU6IERlc2lnbk1vZGU7XHJcbiAgbW9kZWw6IEVsZW1lbnRNb2RlbDxUPjtcclxuICB2aWV3OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIGNvbnRleHQ6IHtcclxuICAgIHRpdGxlOiBzdHJpbmc7XHJcbiAgICAkaW1wbGljaXQ6IEZvcm1Hcm91cDtcclxuICB9O1xyXG4gIGdldCBvcHRpb25zKCk6IFQgeyByZXR1cm4gdGhpcy5tb2RlbC5vcHRpb25zIH1cclxuICBhYnN0cmFjdCBmb3JtOiBGb3JtR3JvdXA7XHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIF9mYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIF9lbGVtZW50OiBFbGVtZW50UmVmPGFueT4sXHJcbiAgICBASW5qZWN0KERlc2lnbmVyUmVmKSBwcm90ZWN0ZWQgX3JlZjogRGVzaWduZXJSZWY8VD4pIHtcclxuICB9XHJcbiAgZGlzYWJsZSguLi5uYW1lczogc3RyaW5nW10pIHtcclxuICAgIG5hbWVzLmZvckVhY2gobiA9PiB0aGlzLmZvcm0uZ2V0KG4pLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pKTtcclxuICB9XHJcbiAgZW5hYmxlKC4uLm5hbWVzOiBzdHJpbmdbXSkge1xyXG4gICAgbmFtZXMuZm9yRWFjaChuID0+IHRoaXMuZm9ybS5nZXQobikuZW5hYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KSk7XHJcbiAgfVxyXG4gIGNsb3NlVmlldyhldnQ/OiBFdmVudCkge1xyXG4gICAgdGhpcy52aWV3ID0gbnVsbDtcclxuICAgIHRoaXMuX3JlZi5zdGF0ZSA9IG51bGw7XHJcbiAgICBldnQ/LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBldnQ/LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuICBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxGb3JtR3JvdXA+LCBjb2xsZWN0aW9uOiBGb3JtQXJyYXkpIHtcclxuICAgIGNvbnN0IGVsZW1lbnQgPSBjb2xsZWN0aW9uLmF0KGV2ZW50LnByZXZpb3VzSW5kZXgpO1xyXG4gICAgY29sbGVjdGlvbi5yZW1vdmVBdChldmVudC5wcmV2aW91c0luZGV4KTtcclxuICAgIGNvbGxlY3Rpb24uaW5zZXJ0KGV2ZW50LmN1cnJlbnRJbmRleCwgZWxlbWVudCk7XHJcbiAgfVxyXG4gIGFkZChjb2xsZWN0aW9uOiBGb3JtQXJyYXksIGdyb3VwOiBGb3JtR3JvdXAsIHRpdGxlOiBzdHJpbmcsIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XHJcbiAgICBjb2xsZWN0aW9uLnB1c2goZ3JvdXApO1xyXG4gICAgdGhpcy52aWV3ID0gdGVtcGxhdGU7XHJcbiAgICB0aGlzLmNvbnRleHQgPSB7XHJcbiAgICAgIHRpdGxlLFxyXG4gICAgICAkaW1wbGljaXQ6IGdyb3VwXHJcbiAgICB9O1xyXG4gICAgdGhpcy5fcmVmLnN0YXRlID0gMTtcclxuICAgIHRoaXMuX2ZvY3VzKCk7XHJcbiAgfVxyXG4gIGVkaXQoZ3JvdXA6IEZvcm1Hcm91cCwgdGl0bGU6IHN0cmluZywgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcclxuICAgIHRoaXMudmlldyA9IHRlbXBsYXRlO1xyXG4gICAgdGhpcy5jb250ZXh0ID0ge1xyXG4gICAgICB0aXRsZSxcclxuICAgICAgJGltcGxpY2l0OiBncm91cCxcclxuICAgIH07XHJcbiAgICB0aGlzLl9yZWYuX3N0YXRlJC5uZXh0KDEpO1xyXG4gICAgdGhpcy5fZm9jdXMoKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZm9jdXMoKSB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpPy5mb2N1cygpKTtcclxuICB9XHJcbn1cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEZXNpZ25lclR5cGVFbGVtZW50Q29tcG9uZW50PFQgPSBhbnk+IGV4dGVuZHMgRGVzaWduZXJFbGVtZW50Q29tcG9uZW50QmFzZSB7XHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgfVxyXG4gIEBWaWV3Q2hpbGQoRGVzaWduZXJJdGVtQ29tcG9uZW50KSBkZXNpZ25lcjogRGVzaWduZXJJdGVtQ29tcG9uZW50O1xyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgZWxlbWVudDogRWxlbWVudFJlZjxhbnk+LFxyXG4gICAgQEluamVjdChEZXNpZ25lclJlZikgcHJvdGVjdGVkIF9yZWY6IERlc2lnbmVyUmVmPFQ+KSB7XHJcbiAgICBzdXBlcihfZmIsIGVsZW1lbnQsIF9yZWYpXHJcbiAgICB0aGlzLm1vZGUgPSBfcmVmLm1vZGU7XHJcbiAgICB0aGlzLm1vZGVsID0gX3JlZi5tb2RlbCBhcyBFbGVtZW50TW9kZWw7XHJcbiAgfVxyXG59XHJcbmZ1bmN0aW9uIGFwcGx5TWl4aW5zKGRlcml2ZWRDdG9yOiBhbnksIGNvbnN0cnVjdG9yczogYW55W10pIHtcclxuICBjb25zdHJ1Y3RvcnMuZm9yRWFjaCgoYmFzZUN0b3IpID0+IHtcclxuICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGJhc2VDdG9yLnByb3RvdHlwZSkuZm9yRWFjaCgobmFtZSkgPT4ge1xyXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoXHJcbiAgICAgICAgZGVyaXZlZEN0b3IucHJvdG90eXBlLFxyXG4gICAgICAgIG5hbWUsXHJcbiAgICAgICAgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihiYXNlQ3Rvci5wcm90b3R5cGUsIG5hbWUpIHx8XHJcbiAgICAgICAgT2JqZWN0LmNyZWF0ZShudWxsKVxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcbiAgfSk7XHJcbn1cclxuLyoqICovXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGVzaWduZXJDdWJlRWxlbWVudENvbXBvbmVudDxUID0gYW55PiBleHRlbmRzIERlc2lnbmVyRWxlbWVudENvbXBvbmVudEJhc2U8VD4gaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHJlYWRvbmx5IGN1YmVzOiBFbGVtZW50TW9kZWxbXTtcclxuICBjdWJlOiBFbGVtZW50TW9kZWw7XHJcbiAgY3ViZVNlbGVjdGVkKGV2dDogTWF0U2VsZWN0Q2hhbmdlKSB7XHJcbiAgICB0aGlzLmN1YmUgPSBldnQudmFsdWU7XHJcbiAgICB0aGlzLmZvcm0uZ2V0KCdjdWJlJykuc2V0VmFsdWUoKGV2dC52YWx1ZSBhcyBFbGVtZW50TW9kZWwpLm5hbWUpO1xyXG4gIH1cclxuICBjb25zdHJ1Y3RvcihmYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBlbGVtZW50OiBFbGVtZW50UmVmPGFueT4sXHJcbiAgICBASW5qZWN0KERlc2lnbmVyUmVmKSByZWY6IERlc2lnbmVyUmVmKSB7XHJcbiAgICBzdXBlcihmYiwgZWxlbWVudCwgcmVmKTtcclxuICAgIHRoaXMuY3ViZXMgPSByZWYuZGVzaWduZXIuY3ViZXMgYXMgRWxlbWVudE1vZGVsW107XHJcbiAgfVxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgY29uc3QgY3ViZUlkID0gdGhpcy5vcHRpb25zWydjdWJlJ107XHJcbiAgICB0aGlzLmN1YmUgPSAhY3ViZUlkID8gdGhpcy5jdWJlc1swXSBhcyBFbGVtZW50TW9kZWwgOiB0aGlzLmN1YmVzLmZpbmQoYyA9PiBjLm5hbWUgPT09IGN1YmVJZCkgYXMgRWxlbWVudE1vZGVsO1xyXG4gIC8vICBpZiAodGhpcy5tb2RlICE9PSAnd2lkZ2V0Jykge1xyXG4gIC8vICB9XHJcbiAgfVxyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBpc0FjY3VtKGNoYXJ0VHlwZSkge1xyXG4gIHN3aXRjaCAoY2hhcnRUeXBlKSB7XHJcbiAgICBjYXNlICdQaWUnOlxyXG4gICAgY2FzZSAnRG91Z2hudXQnOlxyXG4gICAgY2FzZSAnSGFsZkRvdWdobnV0JzpcclxuICAgIGNhc2UgJ0Z1bm5lbCc6XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxufVxyXG4iXX0=
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzaWduZXIuYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvYWRtaW4vY29uZmlndXJhdGlvbi1kZXNpZ25lci9kZXNpZ25lci5iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsTUFBTSxFQUF1QixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJOUYsT0FBTyxFQUFzRCxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7OztBQUNyRSxNQUFNO0FBRU4sTUFBTSxPQUFnQiw0QkFBNEI7SUFVaEQsWUFBc0IsR0FBZ0IsRUFDNUIsUUFBeUIsRUFDRixJQUFvQjtRQUYvQixRQUFHLEdBQUgsR0FBRyxDQUFhO1FBQzVCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ0YsU0FBSSxHQUFKLElBQUksQ0FBZ0I7SUFDckQsQ0FBQztJQUxELElBQUksT0FBTyxLQUFRLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUEsQ0FBQyxDQUFDO0lBTTlDLE9BQU8sQ0FBQyxHQUFHLEtBQWU7UUFDeEIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUNELE1BQU0sQ0FBQyxHQUFHLEtBQWU7UUFDdkIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUNELFNBQVMsQ0FBQyxHQUFXO1FBQ25CLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUN2QixHQUFHLEVBQUUsY0FBYyxFQUFFLENBQUM7UUFDdEIsR0FBRyxFQUFFLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxJQUFJLENBQUMsS0FBNkIsRUFBRSxVQUFxQjtRQUN2RCxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNuRCxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN6QyxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUNELEdBQUcsQ0FBQyxVQUFxQixFQUFFLEtBQWdCLEVBQUUsS0FBYSxFQUFFLFFBQTBCO1FBQ3BGLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7UUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRztZQUNiLEtBQUs7WUFDTCxTQUFTLEVBQUUsS0FBSztTQUNqQixDQUFDO1FBQ0YsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBQ0QsSUFBSSxDQUFDLEtBQWdCLEVBQUUsS0FBYSxFQUFFLFFBQTBCO1FBQzlELElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxPQUFPLEdBQUc7WUFDYixLQUFLO1lBQ0wsU0FBUyxFQUFFLEtBQUs7U0FDakIsQ0FBQztRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUNPLE1BQU07UUFDWixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDaEYsQ0FBQzs7eUhBcERtQiw0QkFBNEIsdUVBWXRDLFdBQVc7NkdBWkQsNEJBQTRCOzJGQUE1Qiw0QkFBNEI7a0JBRGpELFNBQVM7OzBCQWFMLE1BQU07MkJBQUMsV0FBVzs7QUEyQ3ZCLE1BQU0sT0FBZ0IsNEJBQXNDLFNBQVEsNEJBQTRCO0lBSTlGLFlBQXNCLEdBQWdCLEVBQ3BDLE9BQXdCLEVBQ08sSUFBb0I7UUFDbkQsS0FBSyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFITCxRQUFHLEdBQUgsR0FBRyxDQUFhO1FBRUwsU0FBSSxHQUFKLElBQUksQ0FBZ0I7UUFFbkQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQXFCLENBQUM7SUFDMUMsQ0FBQztJQVRELFFBQVE7SUFDUixDQUFDOzt5SEFGbUIsNEJBQTRCLHVFQU10QyxXQUFXOzZHQU5ELDRCQUE0QixvRUFHckMscUJBQXFCOzJGQUhaLDRCQUE0QjtrQkFEakQsU0FBUzs7MEJBT0wsTUFBTTsyQkFBQyxXQUFXOzRDQUhhLFFBQVE7c0JBQXpDLFNBQVM7dUJBQUMscUJBQXFCOztBQVNsQyxTQUFTLFdBQVcsQ0FBQyxXQUFnQixFQUFFLFlBQW1CO0lBQ3hELFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtRQUNoQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQzlELE1BQU0sQ0FBQyxjQUFjLENBQ25CLFdBQVcsQ0FBQyxTQUFTLEVBQ3JCLElBQUksRUFDSixNQUFNLENBQUMsd0JBQXdCLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUM7Z0JBQ3pELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQ3BCLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUNELE1BQU07QUFFTixNQUFNLE9BQWdCLDRCQUFzQyxTQUFRLDRCQUErQjtJQVFqRyxZQUFZLEVBQWUsRUFDekIsT0FBd0IsRUFDSCxHQUFnQjtRQUNyQyxLQUFLLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztRQVIxQixtQkFBYyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBUzNCLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUF1QixDQUFDO0lBQ3BELENBQUM7SUFURCxZQUFZLENBQUMsR0FBb0I7UUFDL0IsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBRSxHQUFHLENBQUMsS0FBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBT0QsUUFBUTtRQUNOLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEMsSUFBSSxNQUFNO1lBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFpQixDQUFDO2FBRTlFLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQWlCLENBQUM7SUFDM0UsQ0FBQzs7eUhBbkJtQiw0QkFBNEIsdUVBVXRDLFdBQVc7NkdBVkQsNEJBQTRCOzJGQUE1Qiw0QkFBNEI7a0JBRGpELFNBQVM7OzBCQVdMLE1BQU07MkJBQUMsV0FBVzs7QUFXdkIsTUFBTSxVQUFVLE9BQU8sQ0FBQyxTQUFTO0lBQy9CLFFBQVEsU0FBUyxFQUFFO1FBQ2pCLEtBQUssS0FBSyxDQUFDO1FBQ1gsS0FBSyxVQUFVLENBQUM7UUFDaEIsS0FBSyxjQUFjLENBQUM7UUFDcEIsS0FBSyxRQUFRO1lBQ1gsT0FBTyxJQUFJLENBQUM7S0FDZjtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEluamVjdCwgT25Jbml0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUFycmF5LCBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IENka0RyYWdEcm9wIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9kcmFnLWRyb3BcIjtcclxuaW1wb3J0IHsgTWF0U2VsZWN0Q2hhbmdlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NlbGVjdFwiO1xyXG5pbXBvcnQgeyBEZXNpZ25lckVsZW1lbnRDb21wb25lbnQsIERlc2lnbk1vZGUsIEVsZW1lbnRNb2RlbCwgRGVzaWduZXJSZWYgfSBmcm9tIFwiLi9kZWNsYXJhdGlvbnNcIjtcclxuaW1wb3J0IHsgRGVzaWduZXJJdGVtQ29tcG9uZW50IH0gZnJvbSBcIi4vZGVzaWduZXItZWxlbWVudC5jb21wb25lbnRcIjtcclxuLyoqICovXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGVzaWduZXJFbGVtZW50Q29tcG9uZW50QmFzZTxUID0gYW55PiBpbXBsZW1lbnRzIERlc2lnbmVyRWxlbWVudENvbXBvbmVudDxUPiB7XHJcbiAgbW9kZTogRGVzaWduTW9kZTtcclxuICBtb2RlbDogRWxlbWVudE1vZGVsPFQ+O1xyXG4gIHZpZXc6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgY29udGV4dDoge1xyXG4gICAgdGl0bGU6IHN0cmluZztcclxuICAgICRpbXBsaWNpdDogRm9ybUdyb3VwO1xyXG4gIH07XHJcbiAgZ2V0IG9wdGlvbnMoKTogVCB7IHJldHVybiB0aGlzLm1vZGVsLm9wdGlvbnMgfVxyXG4gIGFic3RyYWN0IGZvcm06IEZvcm1Hcm91cDtcclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX2ZiOiBGb3JtQnVpbGRlcixcclxuICAgIHByaXZhdGUgX2VsZW1lbnQ6IEVsZW1lbnRSZWY8YW55PixcclxuICAgIEBJbmplY3QoRGVzaWduZXJSZWYpIHByb3RlY3RlZCBfcmVmOiBEZXNpZ25lclJlZjxUPikge1xyXG4gIH1cclxuICBkaXNhYmxlKC4uLm5hbWVzOiBzdHJpbmdbXSkge1xyXG4gICAgbmFtZXMuZm9yRWFjaChuID0+IHRoaXMuZm9ybS5nZXQobikuZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSkpO1xyXG4gIH1cclxuICBlbmFibGUoLi4ubmFtZXM6IHN0cmluZ1tdKSB7XHJcbiAgICBuYW1lcy5mb3JFYWNoKG4gPT4gdGhpcy5mb3JtLmdldChuKS5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pKTtcclxuICB9XHJcbiAgY2xvc2VWaWV3KGV2dD86IEV2ZW50KSB7XHJcbiAgICB0aGlzLnZpZXcgPSBudWxsO1xyXG4gICAgdGhpcy5fcmVmLnN0YXRlID0gbnVsbDtcclxuICAgIGV2dD8ucHJldmVudERlZmF1bHQoKTtcclxuICAgIGV2dD8uc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG4gIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPEZvcm1Hcm91cD4sIGNvbGxlY3Rpb246IEZvcm1BcnJheSkge1xyXG4gICAgY29uc3QgZWxlbWVudCA9IGNvbGxlY3Rpb24uYXQoZXZlbnQucHJldmlvdXNJbmRleCk7XHJcbiAgICBjb2xsZWN0aW9uLnJlbW92ZUF0KGV2ZW50LnByZXZpb3VzSW5kZXgpO1xyXG4gICAgY29sbGVjdGlvbi5pbnNlcnQoZXZlbnQuY3VycmVudEluZGV4LCBlbGVtZW50KTtcclxuICB9XHJcbiAgYWRkKGNvbGxlY3Rpb246IEZvcm1BcnJheSwgZ3JvdXA6IEZvcm1Hcm91cCwgdGl0bGU6IHN0cmluZywgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcclxuICAgIGNvbGxlY3Rpb24ucHVzaChncm91cCk7XHJcbiAgICB0aGlzLnZpZXcgPSB0ZW1wbGF0ZTtcclxuICAgIHRoaXMuY29udGV4dCA9IHtcclxuICAgICAgdGl0bGUsXHJcbiAgICAgICRpbXBsaWNpdDogZ3JvdXBcclxuICAgIH07XHJcbiAgICB0aGlzLl9yZWYuc3RhdGUgPSAxO1xyXG4gICAgdGhpcy5fZm9jdXMoKTtcclxuICB9XHJcbiAgZWRpdChncm91cDogRm9ybUdyb3VwLCB0aXRsZTogc3RyaW5nLCB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pikge1xyXG4gICAgdGhpcy52aWV3ID0gdGVtcGxhdGU7XHJcbiAgICB0aGlzLmNvbnRleHQgPSB7XHJcbiAgICAgIHRpdGxlLFxyXG4gICAgICAkaW1wbGljaXQ6IGdyb3VwLFxyXG4gICAgfTtcclxuICAgIHRoaXMuX3JlZi5fc3RhdGUkLm5leHQoMSk7XHJcbiAgICB0aGlzLl9mb2N1cygpO1xyXG4gIH1cclxuICBwcml2YXRlIF9mb2N1cygpIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Jyk/LmZvY3VzKCkpO1xyXG4gIH1cclxufVxyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIERlc2lnbmVyVHlwZUVsZW1lbnRDb21wb25lbnQ8VCA9IGFueT4gZXh0ZW5kcyBEZXNpZ25lckVsZW1lbnRDb21wb25lbnRCYXNlIHtcclxuICBuZ09uSW5pdCgpIHtcclxuICB9XHJcbiAgQFZpZXdDaGlsZChEZXNpZ25lckl0ZW1Db21wb25lbnQpIGRlc2lnbmVyOiBEZXNpZ25lckl0ZW1Db21wb25lbnQ7XHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIF9mYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBlbGVtZW50OiBFbGVtZW50UmVmPGFueT4sXHJcbiAgICBASW5qZWN0KERlc2lnbmVyUmVmKSBwcm90ZWN0ZWQgX3JlZjogRGVzaWduZXJSZWY8VD4pIHtcclxuICAgIHN1cGVyKF9mYiwgZWxlbWVudCwgX3JlZilcclxuICAgIHRoaXMubW9kZSA9IF9yZWYubW9kZTtcclxuICAgIHRoaXMubW9kZWwgPSBfcmVmLm1vZGVsIGFzIEVsZW1lbnRNb2RlbDtcclxuICB9XHJcbn1cclxuZnVuY3Rpb24gYXBwbHlNaXhpbnMoZGVyaXZlZEN0b3I6IGFueSwgY29uc3RydWN0b3JzOiBhbnlbXSkge1xyXG4gIGNvbnN0cnVjdG9ycy5mb3JFYWNoKChiYXNlQ3RvcikgPT4ge1xyXG4gICAgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoYmFzZUN0b3IucHJvdG90eXBlKS5mb3JFYWNoKChuYW1lKSA9PiB7XHJcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShcclxuICAgICAgICBkZXJpdmVkQ3Rvci5wcm90b3R5cGUsXHJcbiAgICAgICAgbmFtZSxcclxuICAgICAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGJhc2VDdG9yLnByb3RvdHlwZSwgbmFtZSkgfHxcclxuICAgICAgICBPYmplY3QuY3JlYXRlKG51bGwpXHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuICB9KTtcclxufVxyXG4vKiogKi9cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEZXNpZ25lckN1YmVFbGVtZW50Q29tcG9uZW50PFQgPSBhbnk+IGV4dGVuZHMgRGVzaWduZXJFbGVtZW50Q29tcG9uZW50QmFzZTxUPiBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcmVhZG9ubHkgY3ViZXM6IEVsZW1lbnRNb2RlbFtdO1xyXG4gIGN1YmU6IEVsZW1lbnRNb2RlbDtcclxuICBzb3J0Q29tcGFyYXRvciA9IChhLCBiKSA9PiAwO1xyXG4gIGN1YmVTZWxlY3RlZChldnQ6IE1hdFNlbGVjdENoYW5nZSkge1xyXG4gICAgdGhpcy5jdWJlID0gZXZ0LnZhbHVlO1xyXG4gICAgdGhpcy5mb3JtLmdldCgnY3ViZScpLnNldFZhbHVlKChldnQudmFsdWUgYXMgRWxlbWVudE1vZGVsKS5uYW1lKTtcclxuICB9XHJcbiAgY29uc3RydWN0b3IoZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgZWxlbWVudDogRWxlbWVudFJlZjxhbnk+LFxyXG4gICAgQEluamVjdChEZXNpZ25lclJlZikgcmVmOiBEZXNpZ25lclJlZikge1xyXG4gICAgc3VwZXIoZmIsIGVsZW1lbnQsIHJlZik7XHJcbiAgICB0aGlzLmN1YmVzID0gcmVmLmRlc2lnbmVyLmN1YmVzIGFzIEVsZW1lbnRNb2RlbFtdO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGNvbnN0IGN1YmVJZCA9IHRoaXMub3B0aW9uc1snY3ViZSddO1xyXG4gICAgaWYgKGN1YmVJZCkgdGhpcy5jdWJlID0gdGhpcy5jdWJlcy5maW5kKGMgPT4gYy5uYW1lID09PSBjdWJlSWQpIGFzIEVsZW1lbnRNb2RlbDtcclxuICAgIGVsc2VcclxuICAgICAgaWYgKHRoaXMuY3ViZXMubGVuZ3RoID09PSAxKSB0aGlzLmN1YmUgPSB0aGlzLmN1YmVzWzBdIGFzIEVsZW1lbnRNb2RlbDtcclxuICB9XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGlzQWNjdW0oY2hhcnRUeXBlKSB7XHJcbiAgc3dpdGNoIChjaGFydFR5cGUpIHtcclxuICAgIGNhc2UgJ1BpZSc6XHJcbiAgICBjYXNlICdEb3VnaG51dCc6XHJcbiAgICBjYXNlICdIYWxmRG91Z2hudXQnOlxyXG4gICAgY2FzZSAnRnVubmVsJzpcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG59XHJcbiJdfQ==