@bizdoc/core 1.16.24 → 1.16.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (392) hide show
  1. package/assets/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/assets/themes/brown.min.css +8 -8
  10. package/assets/themes/dark.min.css +8 -8
  11. package/assets/themes/deep-purple-light-blue.min.css +8 -8
  12. package/assets/themes/deep-purple-teal.min.css +8 -8
  13. package/assets/themes/default.min.css +8 -8
  14. package/assets/themes/green.min.css +8 -8
  15. package/assets/themes/indigo.min.css +8 -8
  16. package/esm2020/lib/admin/admin-dismiss.service.mjs +3 -3
  17. package/esm2020/lib/admin/admin-menu.component.mjs +5 -5
  18. package/esm2020/lib/admin/configuration-designer/cube-axes-filter.component.mjs +6 -6
  19. package/esm2020/lib/admin/configuration-designer/declarations.mjs +8 -79
  20. package/esm2020/lib/admin/configuration-designer/designer-element.component.mjs +35 -29
  21. package/esm2020/lib/admin/configuration-designer/designer-privileges.component.mjs +3 -3
  22. package/esm2020/lib/admin/configuration-designer/designer.base.mjs +15 -13
  23. package/esm2020/lib/admin/configuration-designer/designer.component.mjs +40 -33
  24. package/esm2020/lib/admin/configuration-designer/elements/action.component.mjs +3 -3
  25. package/esm2020/lib/admin/configuration-designer/elements/analysis-view.component.mjs +5 -5
  26. package/esm2020/lib/admin/configuration-designer/elements/analysis-widget.component.mjs +7 -7
  27. package/esm2020/lib/admin/configuration-designer/elements/anomaly-rule.component.mjs +4 -4
  28. package/esm2020/lib/admin/configuration-designer/elements/box-form.component.mjs +28 -14
  29. package/esm2020/lib/admin/configuration-designer/elements/configuration-datasource.component.mjs +4 -4
  30. package/esm2020/lib/admin/configuration-designer/elements/cube-index-utility.component.mjs +5 -5
  31. package/esm2020/lib/admin/configuration-designer/elements/cube-view.component.mjs +4 -4
  32. package/esm2020/lib/admin/configuration-designer/elements/cube.component.mjs +14 -21
  33. package/esm2020/lib/admin/configuration-designer/elements/documents-report.component.mjs +4 -4
  34. package/esm2020/lib/admin/configuration-designer/elements/documents-widget.component.mjs +4 -4
  35. package/esm2020/lib/admin/configuration-designer/elements/explore-view.component.mjs +4 -4
  36. package/esm2020/lib/admin/configuration-designer/elements/folder.component.mjs +3 -3
  37. package/esm2020/lib/admin/configuration-designer/elements/form.component.mjs +5 -8
  38. package/esm2020/lib/admin/configuration-designer/elements/guide.component.mjs +5 -5
  39. package/esm2020/lib/admin/configuration-designer/elements/matrix-view.component.mjs +4 -4
  40. package/esm2020/lib/admin/configuration-designer/elements/parallel-view.component.mjs +5 -5
  41. package/esm2020/lib/admin/configuration-designer/elements/performance-widget.component.mjs +4 -4
  42. package/esm2020/lib/admin/configuration-designer/elements/pivot-view.component.mjs +5 -5
  43. package/esm2020/lib/admin/configuration-designer/elements/policy.component.mjs +5 -5
  44. package/esm2020/lib/admin/configuration-designer/elements/report.component.mjs +3 -3
  45. package/esm2020/lib/admin/configuration-designer/elements/return-to-role-action.component.mjs +4 -4
  46. package/esm2020/lib/admin/configuration-designer/elements/role.component.mjs +3 -3
  47. package/esm2020/lib/admin/configuration-designer/elements/rule.component.mjs +5 -5
  48. package/esm2020/lib/admin/configuration-designer/elements/state.component.mjs +4 -4
  49. package/esm2020/lib/admin/configuration-designer/elements/sum-view.component.mjs +4 -4
  50. package/esm2020/lib/admin/configuration-designer/elements/tasks-report.component.mjs +4 -4
  51. package/esm2020/lib/admin/configuration-designer/elements/type.component.mjs +56 -13
  52. package/esm2020/lib/admin/configuration-designer/elements/usage-report.component.mjs +5 -5
  53. package/esm2020/lib/admin/configuration-designer/elements/utility.component.mjs +3 -3
  54. package/esm2020/lib/admin/configuration-designer/elements/view.component.mjs +5 -5
  55. package/esm2020/lib/admin/configuration-designer/elements/widget.component.mjs +3 -3
  56. package/esm2020/lib/admin/configuration-designer/icon-picker.component.mjs +4 -4
  57. package/esm2020/lib/admin/core/ace.input.mjs +4 -4
  58. package/esm2020/lib/admin/core/color-picker.input.mjs +4 -4
  59. package/esm2020/lib/admin/core/search.input.mjs +3 -3
  60. package/esm2020/lib/admin/diff/configuration-diff.component.mjs +5 -5
  61. package/esm2020/lib/admin/document-trace/document-trace.component.mjs +4 -4
  62. package/esm2020/lib/admin/document-trace/reassign.dialog.mjs +3 -3
  63. package/esm2020/lib/admin/document-trace/trace-element.component.mjs +3 -3
  64. package/esm2020/lib/admin/form/designer/designer.component.mjs +22 -23
  65. package/esm2020/lib/admin/form/form.resolve.service.mjs +3 -3
  66. package/esm2020/lib/admin/form/workflow/node.component.mjs +3 -3
  67. package/esm2020/lib/admin/form/workflow/role-node.component.mjs +4 -4
  68. package/esm2020/lib/admin/form/workflow/workflow.component.mjs +3 -3
  69. package/esm2020/lib/admin/indices/manage-cube-index.component.mjs +4 -4
  70. package/esm2020/lib/admin/localized-string.component.mjs +52 -0
  71. package/esm2020/lib/admin/patterns/patterns.component.mjs +4 -4
  72. package/esm2020/lib/admin/permissions/permissions.component.mjs +4 -4
  73. package/esm2020/lib/admin/positions/positions-popup.component.mjs +3 -3
  74. package/esm2020/lib/admin/positions/positions.component.mjs +4 -4
  75. package/esm2020/lib/admin/profiler/outofoffice.component.mjs +3 -3
  76. package/esm2020/lib/admin/profiler/profiler.component.mjs +5 -5
  77. package/esm2020/lib/admin/system.service.mjs +4 -4
  78. package/esm2020/lib/admin/utility-wrapper.component.mjs +3 -3
  79. package/esm2020/lib/admin/utility.pane.component.mjs +3 -3
  80. package/esm2020/lib/app.component.mjs +6 -6
  81. package/esm2020/lib/bizdoc.module.mjs +4 -4
  82. package/esm2020/lib/browse/browse-items.component.mjs +3 -3
  83. package/esm2020/lib/browse/browse.mobile.component.mjs +3 -3
  84. package/esm2020/lib/browse/browse.pane.component.mjs +3 -3
  85. package/esm2020/lib/browse/expanded-item/expanded-item.component.mjs +3 -3
  86. package/esm2020/lib/browse/filter/filter.component.mjs +3 -3
  87. package/esm2020/lib/browse/folders-menu.component.mjs +3 -3
  88. package/esm2020/lib/chat/chat-info.mjs +3 -3
  89. package/esm2020/lib/chat/chat.mobile.component.mjs +3 -3
  90. package/esm2020/lib/chat/chat.service.mjs +3 -3
  91. package/esm2020/lib/chat/contacts.component.mjs +6 -6
  92. package/esm2020/lib/chat/contacts.pane.component.mjs +3 -3
  93. package/esm2020/lib/chat/conversation.component.mjs +3 -3
  94. package/esm2020/lib/chat/conversation.pane.component.mjs +3 -3
  95. package/esm2020/lib/compose/action/action-picker.component.mjs +3 -3
  96. package/esm2020/lib/compose/action/action.dialog.mjs +5 -5
  97. package/esm2020/lib/compose/action/action.pane.dialog.exp.mjs +3 -3
  98. package/esm2020/lib/compose/action/assign-action.component.mjs +13 -5
  99. package/esm2020/lib/compose/action/moveto-action.component.mjs +4 -4
  100. package/esm2020/lib/compose/action/return-action.component.mjs +4 -4
  101. package/esm2020/lib/compose/attachments/attachments.component.mjs +3 -3
  102. package/esm2020/lib/compose/attachments/preview/attachment-preview.component.mjs +3 -3
  103. package/esm2020/lib/compose/attachments/progress-button.directive.mjs +3 -3
  104. package/esm2020/lib/compose/box/box.component.mjs +4 -4
  105. package/esm2020/lib/compose/can-deactivate-changes.service.mjs +3 -3
  106. package/esm2020/lib/compose/comments/comment.component.mjs +3 -3
  107. package/esm2020/lib/compose/comments/comments.component.mjs +3 -3
  108. package/esm2020/lib/compose/comments/comments.pane.component.mjs +3 -3
  109. package/esm2020/lib/compose/comments/edit-comment.component.mjs +3 -3
  110. package/esm2020/lib/compose/comments/edits.component.mjs +3 -3
  111. package/esm2020/lib/compose/comments/quick-comment.component.exp.mjs +3 -3
  112. package/esm2020/lib/compose/comments/votes.component.mjs +3 -3
  113. package/esm2020/lib/compose/compose-resolve.service.mjs +6 -6
  114. package/esm2020/lib/compose/compose.mobile.component.mjs +3 -3
  115. package/esm2020/lib/compose/compose.pane.component.mjs +3 -3
  116. package/esm2020/lib/compose/copy/copy.dialog.mjs +3 -3
  117. package/esm2020/lib/compose/dismiss.service.mjs +3 -3
  118. package/esm2020/lib/compose/document-resolver.service.mjs +3 -3
  119. package/esm2020/lib/compose/document.component.mjs +3 -3
  120. package/esm2020/lib/compose/document.mobile.component.mjs +3 -3
  121. package/esm2020/lib/compose/document.pane.component.mjs +3 -3
  122. package/esm2020/lib/compose/events/events.component.mjs +3 -3
  123. package/esm2020/lib/compose/form-selector/form-selector.sheet.mjs +3 -3
  124. package/esm2020/lib/compose/form.component.mjs +3 -3
  125. package/esm2020/lib/compose/new-menu.component.mjs +3 -3
  126. package/esm2020/lib/compose/privilage.directive.mjs +6 -6
  127. package/esm2020/lib/compose/recipient-resolver.service.mjs +3 -3
  128. package/esm2020/lib/compose/state.component.mjs +4 -4
  129. package/esm2020/lib/compose/tag/tags.component.mjs +3 -3
  130. package/esm2020/lib/compose/trace/flow.component.mjs +3 -3
  131. package/esm2020/lib/compose/trace/people.component.mjs +3 -3
  132. package/esm2020/lib/compose/trace/trace.base.mjs +3 -3
  133. package/esm2020/lib/compose/trace/trace.component.mjs +3 -3
  134. package/esm2020/lib/compose/trace/trace.pane.component.mjs +3 -3
  135. package/esm2020/lib/compose/version-compare/version-compare.component.mjs +3 -3
  136. package/esm2020/lib/compose/version-compare/version-compare.directive.mjs +9 -9
  137. package/esm2020/lib/compose/version-compare/version.pane.component.mjs +3 -3
  138. package/esm2020/lib/core/NgComponentOutlet.mjs +3 -3
  139. package/esm2020/lib/core/account.service.mjs +3 -3
  140. package/esm2020/lib/core/animated-icon/animated-icon.directive.mjs +3 -3
  141. package/esm2020/lib/core/avatar/avatar.component.mjs +4 -4
  142. package/esm2020/lib/core/component-factory-resolver.mjs +3 -3
  143. package/esm2020/lib/core/controls/address.input.mjs +4 -4
  144. package/esm2020/lib/core/controls/auto-complete.input.mjs +4 -4
  145. package/esm2020/lib/core/controls/combination-picker-body.mjs +3 -3
  146. package/esm2020/lib/core/controls/combination-picker.mjs +4 -4
  147. package/esm2020/lib/core/controls/combination-pool.mjs +3 -3
  148. package/esm2020/lib/core/controls/file.input.mjs +4 -4
  149. package/esm2020/lib/core/controls/select.input.mjs +4 -4
  150. package/esm2020/lib/core/controls/signature.input.mjs +149 -0
  151. package/esm2020/lib/core/controls/time-picker.mjs +4 -4
  152. package/esm2020/lib/core/controls/timespan.input.mjs +4 -4
  153. package/esm2020/lib/core/datasource.service.mjs +3 -3
  154. package/esm2020/lib/core/guide/guide.component.mjs +3 -3
  155. package/esm2020/lib/core/guide/guide.service.mjs +5 -5
  156. package/esm2020/lib/core/guide/help-tip.component.mjs +3 -3
  157. package/esm2020/lib/core/http.interceptor.mjs +3 -3
  158. package/esm2020/lib/core/hub.service.mjs +3 -3
  159. package/esm2020/lib/core/identity/identity.component.mjs +3 -3
  160. package/esm2020/lib/core/info/attachment-info.service.mjs +3 -3
  161. package/esm2020/lib/core/info/document-info.service.mjs +3 -3
  162. package/esm2020/lib/core/info/location-info.component.mjs +3 -3
  163. package/esm2020/lib/core/info/map-info.mjs +3 -3
  164. package/esm2020/lib/core/layout/autocomplete.field.mjs +3 -3
  165. package/esm2020/lib/core/layout/checkbox.field.mjs +3 -3
  166. package/esm2020/lib/core/layout/checkbox.mjs +3 -3
  167. package/esm2020/lib/core/layout/date-range.field.mjs +3 -3
  168. package/esm2020/lib/core/layout/date.field.mjs +3 -3
  169. package/esm2020/lib/core/layout/expression.field.mjs +3 -3
  170. package/esm2020/lib/core/layout/file.field.mjs +3 -3
  171. package/esm2020/lib/core/layout/html.field.mjs +3 -3
  172. package/esm2020/lib/core/layout/input.base.mjs +6 -6
  173. package/esm2020/lib/core/layout/input.field.mjs +9 -9
  174. package/esm2020/lib/core/layout/layout.component.mjs +21 -21
  175. package/esm2020/lib/core/layout/numeric.field.mjs +3 -3
  176. package/esm2020/lib/core/layout/select.field.mjs +3 -3
  177. package/esm2020/lib/core/layout/switch.field.mjs +3 -3
  178. package/esm2020/lib/core/layout/textarea.field.mjs +3 -3
  179. package/esm2020/lib/core/layout/timespan.field.mjs +3 -3
  180. package/esm2020/lib/core/lottie-animation.mjs +3 -3
  181. package/esm2020/lib/core/mailbox.service.mjs +16 -7
  182. package/esm2020/lib/core/models.mjs +27 -27
  183. package/esm2020/lib/core/none.component.mjs +3 -3
  184. package/esm2020/lib/core/pipes/action.pipe.mjs +3 -3
  185. package/esm2020/lib/core/pipes/calendar.pipe.mjs +4 -4
  186. package/esm2020/lib/core/pipes/date-format.pipe.mjs +3 -3
  187. package/esm2020/lib/core/pipes/daterange.pipe.mjs +6 -6
  188. package/esm2020/lib/core/pipes/difference.pipe.mjs +3 -3
  189. package/esm2020/lib/core/pipes/duration-format.pipe.mjs +3 -3
  190. package/esm2020/lib/core/pipes/duration.pipe.mjs +3 -3
  191. package/esm2020/lib/core/pipes/form.pipe.mjs +3 -3
  192. package/esm2020/lib/core/pipes/join.pipe.mjs +3 -3
  193. package/esm2020/lib/core/pipes/localized-string.pipe.mjs +24 -0
  194. package/esm2020/lib/core/pipes/role.pipe.mjs +3 -3
  195. package/esm2020/lib/core/pipes/sanitize-html.pipe.mjs +3 -3
  196. package/esm2020/lib/core/pipes/sort.pipe.mjs +6 -6
  197. package/esm2020/lib/core/pipes/state.pipe.mjs +3 -3
  198. package/esm2020/lib/core/pipes/time-ago.pipe.mjs +6 -6
  199. package/esm2020/lib/core/pipes/translate.pipe.mjs +6 -6
  200. package/esm2020/lib/core/pipes/type-value.pipe.mjs +3 -3
  201. package/esm2020/lib/core/pipes/user-name.pipe.mjs +3 -3
  202. package/esm2020/lib/core/popup/popup.component.mjs +3 -3
  203. package/esm2020/lib/core/popup/popup.service.mjs +3 -3
  204. package/esm2020/lib/core/popup/tooltip.directive.mjs +7 -7
  205. package/esm2020/lib/core/prompt/ask/ask.dialog.mjs +3 -3
  206. package/esm2020/lib/core/prompt/mask/mask.component.mjs +3 -3
  207. package/esm2020/lib/core/prompt.service.mjs +3 -3
  208. package/esm2020/lib/core/router.mjs +6 -6
  209. package/esm2020/lib/core/save-changes.dialog.mjs +3 -3
  210. package/esm2020/lib/core/session.service.mjs +3 -3
  211. package/esm2020/lib/core/slots/pane-ref.mjs +3 -2
  212. package/esm2020/lib/core/slots/router.directive.mjs +3 -3
  213. package/esm2020/lib/core/slots/router.service.mjs +3 -3
  214. package/esm2020/lib/core/slots/slots.component.mjs +3 -3
  215. package/esm2020/lib/core/tagging/documents.component.mjs +3 -3
  216. package/esm2020/lib/core/tagging/edit-input.component.mjs +3 -3
  217. package/esm2020/lib/core/tagging/emoji.component.mjs +3 -3
  218. package/esm2020/lib/core/tagging/tagging-item.directive.mjs +3 -3
  219. package/esm2020/lib/core/tagging/tagging.component-base.mjs +3 -3
  220. package/esm2020/lib/core/tagging/tagging.directive.mjs +3 -3
  221. package/esm2020/lib/core/tagging/tagging.pipe.mjs +3 -3
  222. package/esm2020/lib/core/tagging/users.component.mjs +3 -3
  223. package/esm2020/lib/core/translate.service.mjs +4 -4
  224. package/esm2020/lib/core/translations.mjs +49 -39
  225. package/esm2020/lib/core/window-title.service.mjs +3 -3
  226. package/esm2020/lib/cube/accum/accum.component.mjs +3 -3
  227. package/esm2020/lib/cube/chart/chart.component.mjs +3 -3
  228. package/esm2020/lib/cube/cube-info.service.mjs +3 -3
  229. package/esm2020/lib/cube/cube-menu.component.mjs +5 -5
  230. package/esm2020/lib/cube/cube-view.component.mjs +3 -3
  231. package/esm2020/lib/cube/cube.service.mjs +3 -3
  232. package/esm2020/lib/cube/explore/document-item.component.mjs +4 -4
  233. package/esm2020/lib/cube/explore/explore-item.component.mjs +3 -3
  234. package/esm2020/lib/cube/explore/explore-items.component.mjs +6 -6
  235. package/esm2020/lib/cube/explore/explore.pane.component.mjs +3 -3
  236. package/esm2020/lib/cube/explore/item-resolver.service.mjs +6 -6
  237. package/esm2020/lib/cube/explore/item.pane.component.mjs +3 -3
  238. package/esm2020/lib/cube/filter/filter-tags.component.exp.mjs +3 -3
  239. package/esm2020/lib/cube/filter/filter.component.mjs +3 -3
  240. package/esm2020/lib/cube/grid/grid.component.mjs +4 -4
  241. package/esm2020/lib/cube/grid/spreadsheet.component.mjs +4 -4
  242. package/esm2020/lib/cube/matrix/matrix.base.mjs +3 -3
  243. package/esm2020/lib/cube/matrix/matrix.mobile.component.mjs +3 -3
  244. package/esm2020/lib/cube/matrix/matrix.pane.component.mjs +3 -3
  245. package/esm2020/lib/cube/matrix/popup.component.mjs +3 -3
  246. package/esm2020/lib/cube/matrix/table.component.mjs +3 -3
  247. package/esm2020/lib/cube/parallel/parallel.component.mjs +3 -3
  248. package/esm2020/lib/cube/pivot/pivot.component.mjs +3 -3
  249. package/esm2020/lib/cube/sum/sum.component.mjs +3 -3
  250. package/esm2020/lib/cube/view-base.mjs +3 -3
  251. package/esm2020/lib/cube/view.mobile.component.mjs +3 -3
  252. package/esm2020/lib/cube/view.pane.component.mjs +3 -3
  253. package/esm2020/lib/dashboard/actions/actions.widget.mjs +4 -4
  254. package/esm2020/lib/dashboard/cube/accum-cube.widget.mjs +3 -3
  255. package/esm2020/lib/dashboard/cube/compare.widget.mjs +4 -4
  256. package/esm2020/lib/dashboard/cube/cube-analysis.base.mjs +3 -3
  257. package/esm2020/lib/dashboard/cube/cube-analysis.widget.mjs +4 -4
  258. package/esm2020/lib/dashboard/cube/cube-chart.widget.mjs +3 -3
  259. package/esm2020/lib/dashboard/cube/documents.widget.mjs +4 -4
  260. package/esm2020/lib/dashboard/cube/filter/filter.component.mjs +4 -4
  261. package/esm2020/lib/dashboard/dashboard.component.mjs +3 -3
  262. package/esm2020/lib/dashboard/dashboard.pane.component.mjs +3 -3
  263. package/esm2020/lib/dashboard/recents/recents.widget.mjs +4 -4
  264. package/esm2020/lib/dashboard/score/activity.widget.mjs +4 -4
  265. package/esm2020/lib/dashboard/score/compare-groups.widget.mjs +4 -4
  266. package/esm2020/lib/dashboard/score/peers-performance.widget.mjs +4 -4
  267. package/esm2020/lib/dashboard/score/pending-results.widget.mjs +4 -4
  268. package/esm2020/lib/dashboard/score/personal-score.widget.mjs +4 -4
  269. package/esm2020/lib/dashboard/widget-item.component.mjs +3 -3
  270. package/esm2020/lib/desktop.module.mjs +16 -8
  271. package/esm2020/lib/home/about/about.dialog.mjs +3 -3
  272. package/esm2020/lib/home/home-base.component.mjs +5 -5
  273. package/esm2020/lib/home/home.desktop.component.mjs +3 -3
  274. package/esm2020/lib/home/home.mobile.component.mjs +3 -3
  275. package/esm2020/lib/home/notifications/notifications.component.mjs +3 -3
  276. package/esm2020/lib/home/options/options.component.mjs +3 -3
  277. package/esm2020/lib/home/outofoffice/outofoffice.component.mjs +3 -3
  278. package/esm2020/lib/home/sign/sign.component.mjs +3 -3
  279. package/esm2020/lib/home/tools.component.mjs +25 -31
  280. package/esm2020/lib/impersonate/impersonate.component.mjs +3 -3
  281. package/esm2020/lib/mobile.module.mjs +4 -4
  282. package/esm2020/lib/modules/chart.module.mjs +4 -4
  283. package/esm2020/lib/modules/circular-gauge.module.mjs +4 -4
  284. package/esm2020/lib/modules/datepicker.intl.mjs +3 -3
  285. package/esm2020/lib/modules/dayjs.module.mjs +4 -4
  286. package/esm2020/lib/modules/diagram.module.mjs +4 -4
  287. package/esm2020/lib/modules/gantt.module.mjs +4 -4
  288. package/esm2020/lib/modules/grid.module.mjs +4 -4
  289. package/esm2020/lib/modules/material.module.mjs +4 -4
  290. package/esm2020/lib/modules/paginator.intl.mjs +3 -3
  291. package/esm2020/lib/modules/pivot.module.mjs +4 -4
  292. package/esm2020/lib/modules/schedule.module.mjs +4 -4
  293. package/esm2020/lib/modules/spreadsheet.module.mjs +4 -4
  294. package/esm2020/lib/modules/stepper.intl.mjs +3 -3
  295. package/esm2020/lib/modules/texteditor.module.mjs +4 -4
  296. package/esm2020/lib/notifications/filter.component.mjs +3 -3
  297. package/esm2020/lib/notifications/notifications-table.component.mjs +3 -3
  298. package/esm2020/lib/notifications/notifications.mobile.component.mjs +3 -3
  299. package/esm2020/lib/notifications/notifications.pane.component.mjs +3 -3
  300. package/esm2020/lib/notifications/notifications.service.mjs +3 -3
  301. package/esm2020/lib/notifications/types/commented.notification.mjs +3 -3
  302. package/esm2020/lib/notifications/types/cube-anomaly.notification.mjs +3 -3
  303. package/esm2020/lib/notifications/types/escalated.notification.mjs +3 -3
  304. package/esm2020/lib/notifications/types/liked.notification.mjs +3 -3
  305. package/esm2020/lib/notifications/types/long-running-task.notification.mjs +3 -3
  306. package/esm2020/lib/notifications/types/notification-base.mjs +3 -3
  307. package/esm2020/lib/notifications/types/nudge.notification.mjs +3 -3
  308. package/esm2020/lib/notifications/types/state-changed.notification.mjs +3 -3
  309. package/esm2020/lib/notifications/types/tagged.notification.mjs +3 -3
  310. package/esm2020/lib/notifications/types/text.notification.mjs +3 -3
  311. package/esm2020/lib/notifications/types/upcoming-event.notification.mjs +3 -3
  312. package/esm2020/lib/options/options.component.mjs +3 -3
  313. package/esm2020/lib/options/options.service.mjs +3 -3
  314. package/esm2020/lib/reports/arguments-component.mjs +3 -3
  315. package/esm2020/lib/reports/cube/documents.component.mjs +4 -4
  316. package/esm2020/lib/reports/cube/grid-documents.component.mjs +3 -3
  317. package/esm2020/lib/reports/cube/table-documents.component.mjs +3 -3
  318. package/esm2020/lib/reports/cube/usage-args.component.mjs +4 -4
  319. package/esm2020/lib/reports/cube/usage-base.mjs +3 -3
  320. package/esm2020/lib/reports/cube/usage-chart.component.mjs +3 -3
  321. package/esm2020/lib/reports/cube/usage-pivot.component.mjs +3 -3
  322. package/esm2020/lib/reports/cube/usage.component.mjs +4 -4
  323. package/esm2020/lib/reports/report-ref.mjs +1 -1
  324. package/esm2020/lib/reports/report-viewer.component.mjs +8 -5
  325. package/esm2020/lib/reports/report.mobile.component.mjs +7 -7
  326. package/esm2020/lib/reports/report.pane.component.mjs +3 -3
  327. package/esm2020/lib/reports/reports-menu.component.mjs +3 -3
  328. package/esm2020/lib/reports/substitution/substitution.component.mjs +4 -4
  329. package/esm2020/lib/reports/table/table-view.component.mjs +3 -3
  330. package/esm2020/lib/reports/tasks/tasks.component.mjs +4 -4
  331. package/esm2020/lib/routes.desktop.mjs +2 -2
  332. package/esm2020/lib/scheduler/schedule.component.mjs +3 -3
  333. package/esm2020/lib/scheduler/scheduler.mobile.component.mjs +3 -3
  334. package/esm2020/lib/scheduler/scheduler.pane.component.mjs +3 -3
  335. package/esm2020/lib/search/cube.component.mjs +38 -0
  336. package/esm2020/lib/search/declarations.mjs +7 -0
  337. package/esm2020/lib/search/document.component.mjs +42 -0
  338. package/esm2020/lib/search/guide.component.mjs +27 -0
  339. package/esm2020/lib/search/path.component.mjs +45 -0
  340. package/esm2020/lib/search/search.service.mjs +143 -0
  341. package/esm2020/lib/shared.module.mjs +13 -9
  342. package/esm2020/lib/system.module.mjs +10 -7
  343. package/esm2020/lib/views/cube/chart.component.mjs +4 -4
  344. package/esm2020/lib/views/cube/cube-base.mjs +3 -3
  345. package/esm2020/lib/views/cube/explore.component.mjs +4 -4
  346. package/esm2020/lib/views/cube/matrix.component.mjs +4 -4
  347. package/esm2020/lib/views/cube/parallel.component.mjs +4 -4
  348. package/esm2020/lib/views/cube/pivot.component.mjs +4 -4
  349. package/esm2020/lib/views/cube/sum.component.mjs +4 -4
  350. package/esm2020/lib/views/cube/view.component.mjs +4 -4
  351. package/esm2020/lib/views/timeline/timeline.component.exp.mjs +4 -4
  352. package/esm2020/lib/views/view-item.component.mjs +3 -3
  353. package/esm2020/lib/views/views.component.mjs +3 -3
  354. package/esm2020/lib/views/views.mobile.component.mjs +3 -3
  355. package/esm2020/lib/views/views.pane.component.mjs +3 -3
  356. package/esm2020/public-api.mjs +5 -3
  357. package/fesm2015/bizdoc-core.mjs +1861 -1455
  358. package/fesm2015/bizdoc-core.mjs.map +1 -1
  359. package/fesm2020/bizdoc-core.mjs +1855 -1453
  360. package/fesm2020/bizdoc-core.mjs.map +1 -1
  361. package/lib/admin/configuration-designer/declarations.d.ts +3 -1
  362. package/lib/admin/configuration-designer/designer-element.component.d.ts +6 -1
  363. package/lib/admin/configuration-designer/designer.base.d.ts +1 -0
  364. package/lib/admin/configuration-designer/designer.component.d.ts +8 -4
  365. package/lib/admin/configuration-designer/elements/analysis-widget.component.d.ts +2 -2
  366. package/lib/admin/configuration-designer/elements/box-form.component.d.ts +10 -2
  367. package/lib/admin/configuration-designer/elements/cube.component.d.ts +6 -1
  368. package/lib/admin/configuration-designer/elements/form.component.d.ts +0 -1
  369. package/lib/admin/configuration-designer/elements/type.component.d.ts +11 -0
  370. package/lib/admin/form/designer/designer.component.d.ts +5 -6
  371. package/lib/admin/localized-string.component.d.ts +20 -0
  372. package/lib/core/controls/signature.input.d.ts +53 -0
  373. package/lib/core/mailbox.service.d.ts +3 -2
  374. package/lib/core/models.d.ts +17 -2
  375. package/lib/core/pipes/localized-string.pipe.d.ts +11 -0
  376. package/lib/core/slots/pane-ref.d.ts +10 -9
  377. package/lib/core/translations.d.ts +44 -34
  378. package/lib/desktop.module.d.ts +11 -7
  379. package/lib/home/tools.component.d.ts +5 -7
  380. package/lib/reports/report-ref.d.ts +2 -0
  381. package/lib/search/cube.component.d.ts +24 -0
  382. package/lib/search/declarations.d.ts +9 -0
  383. package/lib/search/document.component.d.ts +16 -0
  384. package/lib/search/guide.component.d.ts +13 -0
  385. package/lib/search/path.component.d.ts +19 -0
  386. package/lib/search/search.service.d.ts +28 -0
  387. package/lib/shared.module.d.ts +185 -183
  388. package/lib/system.module.d.ts +11 -10
  389. package/package.json +19 -17
  390. package/public-api.d.ts +4 -2
  391. package/esm2020/lib/home/search.service.mjs +0 -75
  392. package/lib/home/search.service.d.ts +0 -24
@@ -69,15 +69,15 @@ let RoleNodeComponent = class RoleNodeComponent {
69
69
  this._destroy.complete();
70
70
  }
71
71
  };
72
- RoleNodeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: RoleNodeComponent, deps: [{ token: NodeRef }, { token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
73
- RoleNodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: RoleNodeComponent, selector: "ng-component", viewQueries: [{ propertyName: "input", first: true, predicate: TypeSelect, descendants: true }], ngImport: i0, template: "<form [formGroup]=\"form\" autocomplete=\"off\" fxLayout=\"column\">\r\n <mat-form-field>\r\n <bizdoc-select formControlName=\"roleName\" cdkFocusInitial [placeholder]=\"'Role'|translate\" required [type]=\"roles\"></bizdoc-select>\r\n <mat-error *ngIf=\"form.controls.roleName.hasError('required')\">{{'Required'|translate:('Roles'|translate)}}</mat-error>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-select formControlName=\"condition\" [placeholder]=\"'Requirments'|translate\">\r\n <mat-option value=\"Anyone\">{{'Anyone'|translate}}</mat-option>\r\n <mat-option value=\"Everyone\">{{'Everyone'|translate}}</mat-option>\r\n <mat-option value=\"Count\">{{'Minimum'|translate}}</mat-option>\r\n <mat-option value=\"Percent\">{{'Percent'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field [style.display]=\"form.value.condition === 'Count' || form.value.condition === 'Percent' ? '' : 'none'\">\r\n <input matInput formControlName=\"minimum\" [placeholder]=\"'RequirmentsValue'|translate\" type=\"number\" required />\r\n <span matSuffix *ngIf=\"form.value.condition === 'Percent'\">%</span>\r\n </mat-form-field>\r\n <mat-checkbox formControlName=\"optional\" required>{{'OptionalRole'|translate}}</mat-checkbox>\r\n <mat-form-field>\r\n <bizdoc-ace-input formControlName=\"message\" [placeholder]=\"'Message'|translate\"></bizdoc-ace-input>\r\n <mat-hint>{{'ProgrammableExpression'|translate}}</mat-hint>\r\n </mat-form-field>\r\n <mat-checkbox formControlName=\"fyi\" required>{{'FYI'|translate}}</mat-checkbox><mat-form-field>\r\n <bizdoc-timespan-input formControlName=\"standardTime\" [placeholder]=\"'StandardTime'|translate\"></bizdoc-timespan-input>\r\n <mat-icon matSuffix>timer</mat-icon>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <bizdoc-select formControlName=\"escalateRole\" [placeholder]=\"'EscalateRole'|translate\" [type]=\"roles\"></bizdoc-select>\r\n </mat-form-field>\r\n <mat-form-field *ngIf=\"form.controls.escalateRole.value\">\r\n <bizdoc-timespan-input formControlName=\"escalateTime\" [placeholder]=\"'EscalateIn'|translate\"\r\n required></bizdoc-timespan-input>\r\n <mat-icon matSuffix>timer</mat-icon>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <bizdoc-ace-input [placeholder]=\"'Condition'|translate\" formControlName=\"if\"></bizdoc-ace-input>\r\n <mat-hint> {{ 'ProgrammableExpression'|translate }}</mat-hint>\r\n </mat-form-field>\r\n <mat-checkbox formControlName=\"skipInRoute\" required>{{'SkipInRoute'|translate}}</mat-checkbox>\r\n</form>\r\n", styles: [":host{width:100%}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { 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: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i5.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix]" }, { kind: "component", type: i6.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i7.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i7.MatCheckboxRequiredValidator, selector: "mat-checkbox[required][formControlName], mat-checkbox[required][formControl], mat-checkbox[required][ngModel]" }, { kind: "directive", type: i8.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: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.TimespanInput, selector: "bizdoc-timespan-input", inputs: ["placeholder", "required", "disabled", "value"] }, { kind: "component", type: i11.AceInput, selector: "bizdoc-ace-input", inputs: ["params", "placeholder", "required", "disabled", "value"] }, { kind: "component", type: i12.TypeSelect, selector: "bizdoc-select", inputs: ["type", "scope", "multiple", "placeholder", "required", "disabled", "text", "value"], outputs: ["selectionChange", "textChange"] }, { kind: "pipe", type: i13.TranslatePipe, name: "translate" }] });
72
+ RoleNodeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: RoleNodeComponent, deps: [{ token: NodeRef }, { token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
73
+ RoleNodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: RoleNodeComponent, selector: "ng-component", viewQueries: [{ propertyName: "input", first: true, predicate: TypeSelect, descendants: true }], ngImport: i0, template: "<form [formGroup]=\"form\" autocomplete=\"off\" fxLayout=\"column\">\r\n <mat-form-field>\r\n <bizdoc-select formControlName=\"roleName\" cdkFocusInitial [placeholder]=\"'Role'|translate\" required [type]=\"roles\"></bizdoc-select>\r\n <mat-error *ngIf=\"form.controls.roleName.hasError('required')\">{{'Required'|translate:('Roles'|translate)}}</mat-error>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-select formControlName=\"condition\" [placeholder]=\"'Requirments'|translate\">\r\n <mat-option value=\"Anyone\">{{'Anyone'|translate}}</mat-option>\r\n <mat-option value=\"Everyone\">{{'Everyone'|translate}}</mat-option>\r\n <mat-option value=\"Count\">{{'Minimum'|translate}}</mat-option>\r\n <mat-option value=\"Percent\">{{'Percent'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field [style.display]=\"form.value.condition === 'Count' || form.value.condition === 'Percent' ? '' : 'none'\">\r\n <input matInput formControlName=\"minimum\" [placeholder]=\"'RequirmentsValue'|translate\" type=\"number\" required />\r\n <span matSuffix *ngIf=\"form.value.condition === 'Percent'\">%</span>\r\n </mat-form-field>\r\n <mat-checkbox formControlName=\"optional\" required>{{'OptionalRole'|translate}}</mat-checkbox>\r\n <mat-form-field>\r\n <bizdoc-ace-input formControlName=\"message\" [placeholder]=\"'Message'|translate\"></bizdoc-ace-input>\r\n <mat-hint>{{'ProgrammableExpression'|translate}}</mat-hint>\r\n </mat-form-field>\r\n <mat-checkbox formControlName=\"fyi\" required>{{'FYI'|translate}}</mat-checkbox><mat-form-field>\r\n <bizdoc-timespan-input formControlName=\"standardTime\" [placeholder]=\"'StandardTime'|translate\"></bizdoc-timespan-input>\r\n <mat-icon matSuffix>timer</mat-icon>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <bizdoc-select formControlName=\"escalateRole\" [placeholder]=\"'EscalateRole'|translate\" [type]=\"roles\"></bizdoc-select>\r\n </mat-form-field>\r\n <mat-form-field *ngIf=\"form.controls.escalateRole.value\">\r\n <bizdoc-timespan-input formControlName=\"escalateTime\" [placeholder]=\"'EscalateIn'|translate\"\r\n required></bizdoc-timespan-input>\r\n <mat-icon matSuffix>timer</mat-icon>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <bizdoc-ace-input [placeholder]=\"'Condition'|translate\" formControlName=\"if\"></bizdoc-ace-input>\r\n <mat-hint> {{ 'ProgrammableExpression'|translate }}</mat-hint>\r\n </mat-form-field>\r\n <mat-checkbox formControlName=\"skipInRoute\" required>{{'SkipInRoute'|translate}}</mat-checkbox>\r\n</form>\r\n", styles: [":host{width:100%}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { 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: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i5.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix]" }, { kind: "component", type: i6.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i7.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i7.MatCheckboxRequiredValidator, selector: "mat-checkbox[required][formControlName], mat-checkbox[required][formControl], mat-checkbox[required][ngModel]" }, { kind: "directive", type: i8.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: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.TimespanInput, selector: "bizdoc-timespan-input", inputs: ["placeholder", "required", "disabled", "value"] }, { kind: "component", type: i11.AceInput, selector: "bizdoc-ace-input", inputs: ["params", "placeholder", "required", "disabled", "value"] }, { kind: "component", type: i12.TypeSelect, selector: "bizdoc-select", inputs: ["type", "scope", "multiple", "placeholder", "required", "disabled", "text", "value"], outputs: ["selectionChange", "textChange"] }, { kind: "pipe", type: i13.TranslatePipe, name: "translate" }] });
74
74
  RoleNodeComponent = __decorate([
75
75
  BizDoc({
76
76
  selector: 'bizdoc-role-node'
77
77
  })
78
78
  ], RoleNodeComponent);
79
79
  export { RoleNodeComponent };
80
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: RoleNodeComponent, decorators: [{
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: RoleNodeComponent, decorators: [{
81
81
  type: Component,
82
82
  args: [{ template: "<form [formGroup]=\"form\" autocomplete=\"off\" fxLayout=\"column\">\r\n <mat-form-field>\r\n <bizdoc-select formControlName=\"roleName\" cdkFocusInitial [placeholder]=\"'Role'|translate\" required [type]=\"roles\"></bizdoc-select>\r\n <mat-error *ngIf=\"form.controls.roleName.hasError('required')\">{{'Required'|translate:('Roles'|translate)}}</mat-error>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-select formControlName=\"condition\" [placeholder]=\"'Requirments'|translate\">\r\n <mat-option value=\"Anyone\">{{'Anyone'|translate}}</mat-option>\r\n <mat-option value=\"Everyone\">{{'Everyone'|translate}}</mat-option>\r\n <mat-option value=\"Count\">{{'Minimum'|translate}}</mat-option>\r\n <mat-option value=\"Percent\">{{'Percent'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field [style.display]=\"form.value.condition === 'Count' || form.value.condition === 'Percent' ? '' : 'none'\">\r\n <input matInput formControlName=\"minimum\" [placeholder]=\"'RequirmentsValue'|translate\" type=\"number\" required />\r\n <span matSuffix *ngIf=\"form.value.condition === 'Percent'\">%</span>\r\n </mat-form-field>\r\n <mat-checkbox formControlName=\"optional\" required>{{'OptionalRole'|translate}}</mat-checkbox>\r\n <mat-form-field>\r\n <bizdoc-ace-input formControlName=\"message\" [placeholder]=\"'Message'|translate\"></bizdoc-ace-input>\r\n <mat-hint>{{'ProgrammableExpression'|translate}}</mat-hint>\r\n </mat-form-field>\r\n <mat-checkbox formControlName=\"fyi\" required>{{'FYI'|translate}}</mat-checkbox><mat-form-field>\r\n <bizdoc-timespan-input formControlName=\"standardTime\" [placeholder]=\"'StandardTime'|translate\"></bizdoc-timespan-input>\r\n <mat-icon matSuffix>timer</mat-icon>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <bizdoc-select formControlName=\"escalateRole\" [placeholder]=\"'EscalateRole'|translate\" [type]=\"roles\"></bizdoc-select>\r\n </mat-form-field>\r\n <mat-form-field *ngIf=\"form.controls.escalateRole.value\">\r\n <bizdoc-timespan-input formControlName=\"escalateTime\" [placeholder]=\"'EscalateIn'|translate\"\r\n required></bizdoc-timespan-input>\r\n <mat-icon matSuffix>timer</mat-icon>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <bizdoc-ace-input [placeholder]=\"'Condition'|translate\" formControlName=\"if\"></bizdoc-ace-input>\r\n <mat-hint> {{ 'ProgrammableExpression'|translate }}</mat-hint>\r\n </mat-form-field>\r\n <mat-checkbox formControlName=\"skipInRoute\" required>{{'SkipInRoute'|translate}}</mat-checkbox>\r\n</form>\r\n", styles: [":host{width:100%}\n"] }]
83
83
  }], ctorParameters: function () { return [{ type: i14.NodeRef, decorators: [{
@@ -87,4 +87,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImpor
87
87
  type: ViewChild,
88
88
  args: [TypeSelect]
89
89
  }] } });
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS1ub2RlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvYWRtaW4vZm9ybS93b3JrZmxvdy9yb2xlLW5vZGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9mb3JtL3dvcmtmbG93L3JvbGUtbm9kZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsTUFBTSxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0YsT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztJQVNwRCxpQkFBaUIsU0FBakIsaUJBQWlCO0lBaUI1QixXQUFXO0lBQ1gsWUFDMkIsUUFBaUIsRUFDbEMsR0FBZ0I7UUFEQyxhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQ2xDLFFBQUcsR0FBSCxHQUFHLENBQWE7UUFqQmpCLFNBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztZQUM3QixRQUFRLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDckQsU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztZQUNyQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQy9CLFFBQVEsRUFBRSxLQUFLO1lBQ2YsT0FBTyxFQUFFLElBQUk7WUFDYixHQUFHLEVBQUUsS0FBSztZQUNWLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLFlBQVksRUFBRSxJQUFJO1lBQ2xCLFlBQVksRUFBRSxJQUFJO1lBQ2xCLFlBQVksRUFBRSxJQUFJO1lBQ2xCLEVBQUUsRUFBRSxJQUFJO1NBQ1QsQ0FBQyxDQUFDO1FBQ00sYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFLdEMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxVQUFVLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7SUFDMUIsQ0FBQztJQUNELGVBQWU7UUFDYixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFDSCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3hGLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzNDLFFBQVEsQ0FBQyxFQUFFO2dCQUNULEtBQUssT0FBTztvQkFDVixJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztvQkFDN0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDakIsTUFBTTtnQkFDUixLQUFLLFNBQVM7b0JBQ1osSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztvQkFDbEYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDbkIsTUFBTTtnQkFDUjtvQkFDRSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7b0JBQ3ZCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDdkI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7Q0FDRixDQUFBOzhHQWpEWSxpQkFBaUIsa0JBbUJsQixPQUFPO2tHQW5CTixpQkFBaUIsMkZBQ2pCLFVBQVUsZ0RDakJ2QixxbEZBd0NBO0FEeEJhLGlCQUFpQjtJQUg3QixNQUFNLENBQUM7UUFDTixRQUFRLEVBQUUsa0JBQWtCO0tBQzdCLENBQUM7R0FDVyxpQkFBaUIsQ0FpRDdCO1NBakRZLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQVA3QixTQUFTOzs7MEJBMEJMLE1BQU07MkJBQUMsT0FBTztzRUFsQk0sS0FBSztzQkFBM0IsU0FBUzt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBJbmplY3QsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFyZ3VtZW50c0NvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvcmUvYmFzZSc7XHJcbmltcG9ydCB7IEJpekRvYyB9IGZyb20gJy4uLy4uLy4uL2NvcmUvZGVjb3JhdG9ycyc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBOb2RlUmVmIH0gZnJvbSAnLi9ub2RlLXJlZic7XHJcbmltcG9ydCB7IFR5cGVTZWxlY3QgfSBmcm9tICcuLi8uLi8uLi9jb3JlL2NvbnRyb2xzL3NlbGVjdC5pbnB1dCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZVVybDogJy4vcm9sZS1ub2RlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZXM6IFsnOmhvc3R7d2lkdGg6IDEwMCU7fSddXHJcbn0pXHJcbkBCaXpEb2Moe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLXJvbGUtbm9kZSdcclxufSkgXHJcbmV4cG9ydCBjbGFzcyBSb2xlTm9kZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFyZ3VtZW50c0NvbXBvbmVudCwgT25EZXN0cm95LEFmdGVyVmlld0luaXQsIE9uSW5pdCB7XHJcbiAgQFZpZXdDaGlsZChUeXBlU2VsZWN0KSBpbnB1dDogVHlwZVNlbGVjdDtcclxuICBwdWJsaWMgcmVhZG9ubHkgcm9sZXMgOnN0cmluZztcclxuICByZWFkb25seSBmb3JtID0gdGhpcy5fZmIuZ3JvdXAoe1xyXG4gICAgcm9sZU5hbWU6IHRoaXMuX2ZiLmNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcbiAgICBjb25kaXRpb246IHRoaXMuX2ZiLmNvbnRyb2woJ0FueW9uZScpLFxyXG4gICAgbWluaW11bTogdGhpcy5fZmIuY29udHJvbChudWxsKSxcclxuICAgIG9wdGlvbmFsOiBmYWxzZSxcclxuICAgIG1lc3NhZ2U6IG51bGwsXHJcbiAgICBmeWk6IGZhbHNlLFxyXG4gICAgc2tpcEluUm91dGU6IGZhbHNlLFxyXG4gICAgc3RhbmRhcmRUaW1lOiBudWxsLFxyXG4gICAgZXNjYWxhdGVSb2xlOiBudWxsLFxyXG4gICAgZXNjYWxhdGVUaW1lOiBudWxsLFxyXG4gICAgaWY6IG51bGxcclxuICB9KTtcclxuICByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgLyoqIGN0b3IgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoTm9kZVJlZikgcHJpdmF0ZSBfbm9kZVJlZjogTm9kZVJlZixcclxuICAgIHByaXZhdGUgX2ZiOiBGb3JtQnVpbGRlcikge1xyXG4gICAgY29uc3QgYXJnID0gdGhpcy5fbm9kZVJlZi5hcmd1bWVudHMuZmluZChhID0+IGEubmFtZSA9PSAncm9sZU5hbWUnKTtcclxuICAgIHRoaXMucm9sZXMgPSBhcmcuc291cmNlO1xyXG4gIH1cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlucHV0LmZvY3VzKCk7XHJcbiAgICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm0uY29udHJvbHNbJ2NvbmRpdGlvbiddLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKHYgPT4ge1xyXG4gICAgICBjb25zdCBjdHJsID0gdGhpcy5mb3JtLmNvbnRyb2xzWydtaW5pbXVtJ107XHJcbiAgICAgIHN3aXRjaCAodikge1xyXG4gICAgICAgIGNhc2UgJ0NvdW50JzpcclxuICAgICAgICAgIGN0cmwuc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5taW4oMSksIFZhbGlkYXRvcnMucmVxdWlyZWRdKTtcclxuICAgICAgICAgIGN0cmwuc2V0VmFsdWUoMSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdQZXJjZW50JzpcclxuICAgICAgICAgIGN0cmwuc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5taW4oMSksIFZhbGlkYXRvcnMubWF4KDEwMCksIFZhbGlkYXRvcnMucmVxdWlyZWRdKTtcclxuICAgICAgICAgIGN0cmwuc2V0VmFsdWUoMTAwKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICBjdHJsLmNsZWFyVmFsaWRhdG9ycygpO1xyXG4gICAgICAgICAgY3RybC5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveS5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIGZ4TGF5b3V0PVwiY29sdW1uXCI+XHJcbiAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgPGJpemRvYy1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwicm9sZU5hbWVcIiBjZGtGb2N1c0luaXRpYWwgW3BsYWNlaG9sZGVyXT1cIidSb2xlJ3x0cmFuc2xhdGVcIiByZXF1aXJlZCBbdHlwZV09XCJyb2xlc1wiPjwvYml6ZG9jLXNlbGVjdD5cclxuICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtLmNvbnRyb2xzLnJvbGVOYW1lLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+e3snUmVxdWlyZWQnfHRyYW5zbGF0ZTooJ1JvbGVzJ3x0cmFuc2xhdGUpfX08L21hdC1lcnJvcj5cclxuICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDxtYXQtZm9ybS1maWVsZD5cclxuICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cImNvbmRpdGlvblwiIFtwbGFjZWhvbGRlcl09XCInUmVxdWlybWVudHMnfHRyYW5zbGF0ZVwiPlxyXG4gICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cIkFueW9uZVwiPnt7J0FueW9uZSd8dHJhbnNsYXRlfX08L21hdC1vcHRpb24+XHJcbiAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiRXZlcnlvbmVcIj57eydFdmVyeW9uZSd8dHJhbnNsYXRlfX08L21hdC1vcHRpb24+XHJcbiAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiQ291bnRcIj57eydNaW5pbXVtJ3x0cmFuc2xhdGV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJQZXJjZW50XCI+e3snUGVyY2VudCd8dHJhbnNsYXRlfX08L21hdC1vcHRpb24+XHJcbiAgICA8L21hdC1zZWxlY3Q+XHJcbiAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8bWF0LWZvcm0tZmllbGQgW3N0eWxlLmRpc3BsYXldPVwiZm9ybS52YWx1ZS5jb25kaXRpb24gPT09ICdDb3VudCcgfHwgZm9ybS52YWx1ZS5jb25kaXRpb24gPT09ICdQZXJjZW50JyA/ICcnIDogJ25vbmUnXCI+XHJcbiAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwibWluaW11bVwiIFtwbGFjZWhvbGRlcl09XCInUmVxdWlybWVudHNWYWx1ZSd8dHJhbnNsYXRlXCIgdHlwZT1cIm51bWJlclwiIHJlcXVpcmVkIC8+XHJcbiAgICA8c3BhbiBtYXRTdWZmaXggKm5nSWY9XCJmb3JtLnZhbHVlLmNvbmRpdGlvbiA9PT0gJ1BlcmNlbnQnXCI+JTwvc3Bhbj5cclxuICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDxtYXQtY2hlY2tib3ggZm9ybUNvbnRyb2xOYW1lPVwib3B0aW9uYWxcIiByZXF1aXJlZD57eydPcHRpb25hbFJvbGUnfHRyYW5zbGF0ZX19PC9tYXQtY2hlY2tib3g+XHJcbiAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgPGJpemRvYy1hY2UtaW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwibWVzc2FnZVwiIFtwbGFjZWhvbGRlcl09XCInTWVzc2FnZSd8dHJhbnNsYXRlXCI+PC9iaXpkb2MtYWNlLWlucHV0PlxyXG4gICAgPG1hdC1oaW50Pnt7J1Byb2dyYW1tYWJsZUV4cHJlc3Npb24nfHRyYW5zbGF0ZX19PC9tYXQtaGludD5cclxuICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDxtYXQtY2hlY2tib3ggZm9ybUNvbnRyb2xOYW1lPVwiZnlpXCIgcmVxdWlyZWQ+e3snRllJJ3x0cmFuc2xhdGV9fTwvbWF0LWNoZWNrYm94PjxtYXQtZm9ybS1maWVsZD5cclxuICAgIDxiaXpkb2MtdGltZXNwYW4taW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwic3RhbmRhcmRUaW1lXCIgW3BsYWNlaG9sZGVyXT1cIidTdGFuZGFyZFRpbWUnfHRyYW5zbGF0ZVwiPjwvYml6ZG9jLXRpbWVzcGFuLWlucHV0PlxyXG4gICAgPG1hdC1pY29uIG1hdFN1ZmZpeD50aW1lcjwvbWF0LWljb24+XHJcbiAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8Yml6ZG9jLXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJlc2NhbGF0ZVJvbGVcIiBbcGxhY2Vob2xkZXJdPVwiJ0VzY2FsYXRlUm9sZSd8dHJhbnNsYXRlXCIgW3R5cGVdPVwicm9sZXNcIj48L2JpemRvYy1zZWxlY3Q+XHJcbiAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8bWF0LWZvcm0tZmllbGQgKm5nSWY9XCJmb3JtLmNvbnRyb2xzLmVzY2FsYXRlUm9sZS52YWx1ZVwiPlxyXG4gICAgPGJpemRvYy10aW1lc3Bhbi1pbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJlc2NhbGF0ZVRpbWVcIiBbcGxhY2Vob2xkZXJdPVwiJ0VzY2FsYXRlSW4nfHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPjwvYml6ZG9jLXRpbWVzcGFuLWlucHV0PlxyXG4gICAgPG1hdC1pY29uIG1hdFN1ZmZpeD50aW1lcjwvbWF0LWljb24+XHJcbiAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8Yml6ZG9jLWFjZS1pbnB1dCBbcGxhY2Vob2xkZXJdPVwiJ0NvbmRpdGlvbid8dHJhbnNsYXRlXCIgZm9ybUNvbnRyb2xOYW1lPVwiaWZcIj48L2JpemRvYy1hY2UtaW5wdXQ+XHJcbiAgICA8bWF0LWhpbnQ+IHt7ICdQcm9ncmFtbWFibGVFeHByZXNzaW9uJ3x0cmFuc2xhdGUgfX08L21hdC1oaW50PlxyXG4gIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPG1hdC1jaGVja2JveCBmb3JtQ29udHJvbE5hbWU9XCJza2lwSW5Sb3V0ZVwiIHJlcXVpcmVkPnt7J1NraXBJblJvdXRlJ3x0cmFuc2xhdGV9fTwvbWF0LWNoZWNrYm94PlxyXG48L2Zvcm0+XHJcbiJdfQ==
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS1ub2RlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvYWRtaW4vZm9ybS93b3JrZmxvdy9yb2xlLW5vZGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9mb3JtL3dvcmtmbG93L3JvbGUtbm9kZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsTUFBTSxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0YsT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQVMxRCxJQUFNLGlCQUFpQixHQUF2QixNQUFNLGlCQUFpQjtJQWlCNUIsV0FBVztJQUNYLFlBQzJCLFFBQWlCLEVBQ2xDLEdBQWdCO1FBREMsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNsQyxRQUFHLEdBQUgsR0FBRyxDQUFhO1FBakJqQixTQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDN0IsUUFBUSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ3JELFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7WUFDckMsT0FBTyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztZQUMvQixRQUFRLEVBQUUsS0FBSztZQUNmLE9BQU8sRUFBRSxJQUFJO1lBQ2IsR0FBRyxFQUFFLEtBQUs7WUFDVixXQUFXLEVBQUUsS0FBSztZQUNsQixZQUFZLEVBQUUsSUFBSTtZQUNsQixZQUFZLEVBQUUsSUFBSTtZQUNsQixZQUFZLEVBQUUsSUFBSTtZQUNsQixFQUFFLEVBQUUsSUFBSTtTQUNULENBQUMsQ0FBQztRQUNNLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBS3RDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksVUFBVSxDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO0lBQzFCLENBQUM7SUFDRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBQ0gsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN4RixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMzQyxRQUFRLENBQUMsRUFBRTtnQkFDVCxLQUFLLE9BQU87b0JBQ1YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7b0JBQzdELElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ2pCLE1BQU07Z0JBQ1IsS0FBSyxTQUFTO29CQUNaLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7b0JBQ2xGLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ25CLE1BQU07Z0JBQ1I7b0JBQ0UsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO29CQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3ZCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDOzs4R0FoRFUsaUJBQWlCLGtCQW1CbEIsT0FBTztrR0FuQk4saUJBQWlCLDJGQUNqQixVQUFVLGdEQ2pCdkIscWxGQXdDQTtBRHhCYSxpQkFBaUI7SUFIN0IsTUFBTSxDQUFDO1FBQ04sUUFBUSxFQUFFLGtCQUFrQjtLQUM3QixDQUFDO0dBQ1csaUJBQWlCLENBaUQ3QjtTQWpEWSxpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFQN0IsU0FBUzs7OzBCQTBCTCxNQUFNOzJCQUFDLE9BQU87c0VBbEJNLEtBQUs7c0JBQTNCLFNBQVM7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgSW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBcmd1bWVudHNDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb3JlL2Jhc2UnO1xyXG5pbXBvcnQgeyBCaXpEb2MgfSBmcm9tICcuLi8uLi8uLi9jb3JlL2RlY29yYXRvcnMnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgTm9kZVJlZiB9IGZyb20gJy4vbm9kZS1yZWYnO1xyXG5pbXBvcnQgeyBUeXBlU2VsZWN0IH0gZnJvbSAnLi4vLi4vLi4vY29yZS9jb250cm9scy9zZWxlY3QuaW5wdXQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGVVcmw6ICcuL3JvbGUtbm9kZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVzOiBbJzpob3N0e3dpZHRoOiAxMDAlO30nXVxyXG59KVxyXG5AQml6RG9jKHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1yb2xlLW5vZGUnXHJcbn0pIFxyXG5leHBvcnQgY2xhc3MgUm9sZU5vZGVDb21wb25lbnQgaW1wbGVtZW50cyBBcmd1bWVudHNDb21wb25lbnQsIE9uRGVzdHJveSxBZnRlclZpZXdJbml0LCBPbkluaXQge1xyXG4gIEBWaWV3Q2hpbGQoVHlwZVNlbGVjdCkgaW5wdXQ6IFR5cGVTZWxlY3Q7XHJcbiAgcHVibGljIHJlYWRvbmx5IHJvbGVzIDpzdHJpbmc7XHJcbiAgcmVhZG9ubHkgZm9ybSA9IHRoaXMuX2ZiLmdyb3VwKHtcclxuICAgIHJvbGVOYW1lOiB0aGlzLl9mYi5jb250cm9sKG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgY29uZGl0aW9uOiB0aGlzLl9mYi5jb250cm9sKCdBbnlvbmUnKSxcclxuICAgIG1pbmltdW06IHRoaXMuX2ZiLmNvbnRyb2wobnVsbCksXHJcbiAgICBvcHRpb25hbDogZmFsc2UsXHJcbiAgICBtZXNzYWdlOiBudWxsLFxyXG4gICAgZnlpOiBmYWxzZSxcclxuICAgIHNraXBJblJvdXRlOiBmYWxzZSxcclxuICAgIHN0YW5kYXJkVGltZTogbnVsbCxcclxuICAgIGVzY2FsYXRlUm9sZTogbnVsbCxcclxuICAgIGVzY2FsYXRlVGltZTogbnVsbCxcclxuICAgIGlmOiBudWxsXHJcbiAgfSk7XHJcbiAgcmVhZG9ubHkgX2Rlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIC8qKiBjdG9yICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KE5vZGVSZWYpIHByaXZhdGUgX25vZGVSZWY6IE5vZGVSZWYsXHJcbiAgICBwcml2YXRlIF9mYjogRm9ybUJ1aWxkZXIpIHtcclxuICAgIGNvbnN0IGFyZyA9IHRoaXMuX25vZGVSZWYuYXJndW1lbnRzLmZpbmQoYSA9PiBhLm5hbWUgPT0gJ3JvbGVOYW1lJyk7XHJcbiAgICB0aGlzLnJvbGVzID0gYXJnLnNvdXJjZTtcclxuICB9XHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbnB1dC5mb2N1cygpO1xyXG4gICAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtLmNvbnRyb2xzWydjb25kaXRpb24nXS52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSh2ID0+IHtcclxuICAgICAgY29uc3QgY3RybCA9IHRoaXMuZm9ybS5jb250cm9sc1snbWluaW11bSddO1xyXG4gICAgICBzd2l0Y2ggKHYpIHtcclxuICAgICAgICBjYXNlICdDb3VudCc6XHJcbiAgICAgICAgICBjdHJsLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMubWluKDEpLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XHJcbiAgICAgICAgICBjdHJsLnNldFZhbHVlKDEpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnUGVyY2VudCc6XHJcbiAgICAgICAgICBjdHJsLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMubWluKDEpLCBWYWxpZGF0b3JzLm1heCgxMDApLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XHJcbiAgICAgICAgICBjdHJsLnNldFZhbHVlKDEwMCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgY3RybC5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgICAgICAgIGN0cmwuc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Rlc3Ryb3kubmV4dCgpO1xyXG4gICAgdGhpcy5fZGVzdHJveS5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiBhdXRvY29tcGxldGU9XCJvZmZcIiBmeExheW91dD1cImNvbHVtblwiPlxyXG4gIDxtYXQtZm9ybS1maWVsZD5cclxuICAgIDxiaXpkb2Mtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cInJvbGVOYW1lXCIgY2RrRm9jdXNJbml0aWFsIFtwbGFjZWhvbGRlcl09XCInUm9sZSd8dHJhbnNsYXRlXCIgcmVxdWlyZWQgW3R5cGVdPVwicm9sZXNcIj48L2JpemRvYy1zZWxlY3Q+XHJcbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybS5jb250cm9scy5yb2xlTmFtZS5oYXNFcnJvcigncmVxdWlyZWQnKVwiPnt7J1JlcXVpcmVkJ3x0cmFuc2xhdGU6KCdSb2xlcyd8dHJhbnNsYXRlKX19PC9tYXQtZXJyb3I+XHJcbiAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJjb25kaXRpb25cIiBbcGxhY2Vob2xkZXJdPVwiJ1JlcXVpcm1lbnRzJ3x0cmFuc2xhdGVcIj5cclxuICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJBbnlvbmVcIj57eydBbnlvbmUnfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cIkV2ZXJ5b25lXCI+e3snRXZlcnlvbmUnfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cIkNvdW50XCI+e3snTWluaW11bSd8dHJhbnNsYXRlfX08L21hdC1vcHRpb24+XHJcbiAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiUGVyY2VudFwiPnt7J1BlcmNlbnQnfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgPC9tYXQtc2VsZWN0PlxyXG4gIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPG1hdC1mb3JtLWZpZWxkIFtzdHlsZS5kaXNwbGF5XT1cImZvcm0udmFsdWUuY29uZGl0aW9uID09PSAnQ291bnQnIHx8IGZvcm0udmFsdWUuY29uZGl0aW9uID09PSAnUGVyY2VudCcgPyAnJyA6ICdub25lJ1wiPlxyXG4gICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cIm1pbmltdW1cIiBbcGxhY2Vob2xkZXJdPVwiJ1JlcXVpcm1lbnRzVmFsdWUnfHRyYW5zbGF0ZVwiIHR5cGU9XCJudW1iZXJcIiByZXF1aXJlZCAvPlxyXG4gICAgPHNwYW4gbWF0U3VmZml4ICpuZ0lmPVwiZm9ybS52YWx1ZS5jb25kaXRpb24gPT09ICdQZXJjZW50J1wiPiU8L3NwYW4+XHJcbiAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8bWF0LWNoZWNrYm94IGZvcm1Db250cm9sTmFtZT1cIm9wdGlvbmFsXCIgcmVxdWlyZWQ+e3snT3B0aW9uYWxSb2xlJ3x0cmFuc2xhdGV9fTwvbWF0LWNoZWNrYm94PlxyXG4gIDxtYXQtZm9ybS1maWVsZD5cclxuICAgIDxiaXpkb2MtYWNlLWlucHV0IGZvcm1Db250cm9sTmFtZT1cIm1lc3NhZ2VcIiBbcGxhY2Vob2xkZXJdPVwiJ01lc3NhZ2UnfHRyYW5zbGF0ZVwiPjwvYml6ZG9jLWFjZS1pbnB1dD5cclxuICAgIDxtYXQtaGludD57eydQcm9ncmFtbWFibGVFeHByZXNzaW9uJ3x0cmFuc2xhdGV9fTwvbWF0LWhpbnQ+XHJcbiAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8bWF0LWNoZWNrYm94IGZvcm1Db250cm9sTmFtZT1cImZ5aVwiIHJlcXVpcmVkPnt7J0ZZSSd8dHJhbnNsYXRlfX08L21hdC1jaGVja2JveD48bWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8Yml6ZG9jLXRpbWVzcGFuLWlucHV0IGZvcm1Db250cm9sTmFtZT1cInN0YW5kYXJkVGltZVwiIFtwbGFjZWhvbGRlcl09XCInU3RhbmRhcmRUaW1lJ3x0cmFuc2xhdGVcIj48L2JpemRvYy10aW1lc3Bhbi1pbnB1dD5cclxuICAgIDxtYXQtaWNvbiBtYXRTdWZmaXg+dGltZXI8L21hdC1pY29uPlxyXG4gIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgPGJpemRvYy1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwiZXNjYWxhdGVSb2xlXCIgW3BsYWNlaG9sZGVyXT1cIidFc2NhbGF0ZVJvbGUnfHRyYW5zbGF0ZVwiIFt0eXBlXT1cInJvbGVzXCI+PC9iaXpkb2Mtc2VsZWN0PlxyXG4gIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPG1hdC1mb3JtLWZpZWxkICpuZ0lmPVwiZm9ybS5jb250cm9scy5lc2NhbGF0ZVJvbGUudmFsdWVcIj5cclxuICAgIDxiaXpkb2MtdGltZXNwYW4taW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZXNjYWxhdGVUaW1lXCIgW3BsYWNlaG9sZGVyXT1cIidFc2NhbGF0ZUluJ3x0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZD48L2JpemRvYy10aW1lc3Bhbi1pbnB1dD5cclxuICAgIDxtYXQtaWNvbiBtYXRTdWZmaXg+dGltZXI8L21hdC1pY29uPlxyXG4gIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgPGJpemRvYy1hY2UtaW5wdXQgW3BsYWNlaG9sZGVyXT1cIidDb25kaXRpb24nfHRyYW5zbGF0ZVwiIGZvcm1Db250cm9sTmFtZT1cImlmXCI+PC9iaXpkb2MtYWNlLWlucHV0PlxyXG4gICAgPG1hdC1oaW50PiB7eyAnUHJvZ3JhbW1hYmxlRXhwcmVzc2lvbid8dHJhbnNsYXRlIH19PC9tYXQtaGludD5cclxuICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDxtYXQtY2hlY2tib3ggZm9ybUNvbnRyb2xOYW1lPVwic2tpcEluUm91dGVcIiByZXF1aXJlZD57eydTa2lwSW5Sb3V0ZSd8dHJhbnNsYXRlfX08L21hdC1jaGVja2JveD5cclxuPC9mb3JtPlxyXG4iXX0=
@@ -569,9 +569,9 @@ export class WorkflowComponent {
569
569
  this._nodedestroy.complete();
570
570
  }
571
571
  }
572
- WorkflowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: WorkflowComponent, deps: [{ token: i1.PromptService }, { token: i2.SystemService }, { token: i3.PaneRef }, { token: i4.PanesRouter }, { token: i5.SessionService }, { token: i6.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
573
- WorkflowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: WorkflowComponent, selector: "bizdoc-workflow", host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" }, classAttribute: "pane" }, viewQueries: [{ propertyName: "symbolPaletteEl", first: true, predicate: ["symbolPaletteEl"], descendants: true, static: true }, { propertyName: "diagramEl", first: true, predicate: ["diagramEl"], descendants: true, static: true }], ngImport: i0, template: "<mat-toolbar>\r\n <button mat-icon-button (click)=\"tools = !tools\" [bizdocTooltip]=\"'Collapse' | translate\"><mat-icon>view_sidebar</mat-icon></button>\r\n <button mat-button (click)=\"save()\" color=\"primary\" [disabled]=\"!dirty || saving\">{{'SaveChanges' | translate}}</button>\r\n <button mat-icon-button (click)=\"diagram.fitToPage()\" [bizdocTooltip]=\"'FitToPage' | translate\"><mat-icon>fullscreen_exit</mat-icon></button>\r\n <button mat-icon-button (click)=\"pan()\" [bizdocTooltip]=\"'Pan' | translate\"><span class=\"e-icons sf-icon-pan\"></span></button>\r\n <button mat-icon-button (click)=\"cursor()\" [bizdocTooltip]=\"'Cursor' | translate\"><span class=\"e-icons sf-icon-cursor\"></span></button>\r\n <span class=\"tools-divider\"></span>\r\n <button mat-icon-button (click)=\"diagram.undo()\" [bizdocTooltip]=\"'Undo' | translate\" [disabled]=\"!diagram.historyManager?.canUndo\"><mat-icon>undo</mat-icon></button>\r\n <button mat-icon-button (click)=\"diagram.redo()\" [bizdocTooltip]=\"'Redo' | translate\" [disabled]=\"!diagram.historyManager?.canRedo\"><mat-icon>redo</mat-icon></button>\r\n <span class=\"tools-divider\"></span>\r\n <button mat-icon-button (click)=\"diagram.copy()\" [bizdocTooltip]=\"'Copy' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>copy</mat-icon></button>\r\n <button mat-icon-button (click)=\"diagram.paste()\" [bizdocTooltip]=\"'Paste' | translate\"><mat-icon>paste</mat-icon></button>\r\n <button mat-icon-button (click)=\"diagram.remove()\" [bizdocTooltip]=\"'Remove' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>delete</mat-icon></button>\r\n <span class=\"tools-divider\"></span>\r\n <button mat-button [matMenuTriggerFor]=\"lineMenu\" [disabled]=\"diagram.selectedItems?.connectors.length === 0\" [bizdocTooltip]=\"'ConnectorMode'|translate\">\r\n <span class=\"e-menu-icon\" [ngClass]=\"{'sf-icon-straight-line': connectorType === 'Straight',\r\n 'sf-icon-orthogonal-line': connectorType === 'Orthogonal',\r\n 'sf-icon-beizer-line': connectorType === 'Bezier'}\"></span>\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n </button>\r\n <mat-menu #lineMenu overlayPanelClass=\"icon-menu-panel\">\r\n <button mat-menu-item (click)=\"connectorTypeChange('Straight')\">\r\n <span class=\"e-menu-icon sf-icon-straight-line\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"connectorTypeChange('Orthogonal')\">\r\n <span class=\"e-menu-icon sf-icon-orthogonal-line\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"connectorTypeChange('Bezier')\">\r\n <span class=\"e-menu-icon sf-icon-beizer-line\"></span>\r\n </button>\r\n <!--<ng-container *ngIf=\"connectors.length\">\r\n < bizdoc-color-picker (valueChanges)='strokeChange($event)' [label]=\"'Stroke'|translate\"></ bizdoc-color-picker>\r\n <ng-container *ngIf=\"nodes[0].annotations.length\">\r\n < bizdoc-color-picker (valueChanges)='colorChange($event)' [label]=\"'Color'|translate\"></ bizdoc-color-picker>\r\n </ng-container>\r\n < bizdoc-color-picker (valueChanges)='bgChange($event)' [label]=\"'Background'|translate\"></ bizdoc-color-picker>\r\n < bizdoc-color-picker (valueChanges)='strokeChange($event)' [label]=\"'Stroke'|translate\"></ bizdoc-color-picker>\r\n </ng-container>-->\r\n </mat-menu>\r\n &nbsp;\r\n <button mat-button [matMenuTriggerFor]=\"alignMenu\" [disabled]=\"diagram.selectedItems?.nodes.length === 0 && diagram.selectedItems?.connectors.length === 0\" [bizdocTooltip]=\"'Align'|translate\">\r\n <span class=\"e-icons\" [ngClass]=\"{'sf-icon-top': alignment === 'Top',\r\n 'sf-icon-left': alignment === 'Left',\r\n 'sf-icon-center': alignment === 'Center',\r\n 'sf-icon-bottom': alignment === 'Bottom',\r\n 'sf-icon-right': alignment === 'Right'}\"></span>\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n </button>\r\n <mat-menu #alignMenu overlayPanelClass=\"icon-menu-panel\">\r\n <button mat-menu-item (click)=\"align('Top')\">\r\n <span class=\"e-icons sf-icon-top\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Left')\">\r\n <span class=\"e-icons sf-icon-left\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Center')\">\r\n <span class=\"e-icons sf-icon-center\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Right')\">\r\n <span class=\"e-icons sf-icon-right\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Bottom')\">\r\n <span class=\"e-icons sf-icon-bottom\"></span>\r\n </button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"boldChange()\" [bizdocTooltip]=\"'Bold' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>format_bold</mat-icon></button>\r\n <button mat-icon-button (click)=\"italicChange()\" [bizdocTooltip]=\"'Italic' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>format_italic</mat-icon></button>\r\n <button mat-icon-button [matMenuTriggerFor]=\"sizeMenu\"\r\n [disabled]=\"diagram.selectedItems?.nodes.length === 0 && diagram.selectedItems?.connectors.length === 0\"\r\n [bizdocTooltip]=\"'FontSize'|translate\">\r\n <mat-icon>format_size</mat-icon>\r\n </button>\r\n <mat-menu #sizeMenu overlayPanelClass=\"icon-menu-panel\">\r\n <button mat-menu-item *ngFor=\"let size of fontSizes\" (click)=\"fontSizeChange(size)\">\r\n {{size}}\r\n </button>\r\n </mat-menu>\r\n <span class=\"divider\"></span>\r\n</mat-toolbar>\r\n<div class=\"row container\">\r\n <div id=\"symbolpalette\" [style.display]=\"tools?'':'none'\">\r\n <div dir=\"ltr\" #symbolPaletteEl>\r\n </div>\r\n </div>\r\n <div #diagramEl id=\"diagram\" fxFlex dir=\"ltr\">\r\n </div>\r\n</div>\r\n", styles: [":host{display:flex;flex-direction:column;flex-grow:1;height:100%}.container{flex-grow:1;overflow-y:auto}#diagram{flex-grow:1}#symbolpalette{width:210px}::ng-deep .e-rtl{direction:ltr}::ng-deep .mat-toolbar .mat-button-toggle{background:transparent!important}.e-menu-icon{font-family:diagram-icons!important;speak:none;font-size:18px;font-style:normal;font-weight:400;font-feature-settings:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::ng-deep .mat-menu-panel{min-width:0!important}.tools-divider:after{content:\"|\";opacity:.6;margin:0 2px}\n"], dependencies: [{ kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i8.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i9.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i10.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "component", type: i11.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i12.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: "component", type: i13.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i14.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i14.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i14.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i15.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i16.TranslatePipe, name: "translate" }] });
574
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: WorkflowComponent, decorators: [{
572
+ WorkflowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: WorkflowComponent, deps: [{ token: i1.PromptService }, { token: i2.SystemService }, { token: i3.PaneRef }, { token: i4.PanesRouter }, { token: i5.SessionService }, { token: i6.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
573
+ WorkflowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: WorkflowComponent, selector: "bizdoc-workflow", host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" }, classAttribute: "pane" }, viewQueries: [{ propertyName: "symbolPaletteEl", first: true, predicate: ["symbolPaletteEl"], descendants: true, static: true }, { propertyName: "diagramEl", first: true, predicate: ["diagramEl"], descendants: true, static: true }], ngImport: i0, template: "<mat-toolbar>\r\n <button mat-icon-button (click)=\"tools = !tools\" [bizdocTooltip]=\"'Collapse' | translate\"><mat-icon>view_sidebar</mat-icon></button>\r\n <button mat-button (click)=\"save()\" color=\"primary\" [disabled]=\"!dirty || saving\">{{'SaveChanges' | translate}}</button>\r\n <button mat-icon-button (click)=\"diagram.fitToPage()\" [bizdocTooltip]=\"'FitToPage' | translate\"><mat-icon>fullscreen_exit</mat-icon></button>\r\n <button mat-icon-button (click)=\"pan()\" [bizdocTooltip]=\"'Pan' | translate\"><span class=\"e-icons sf-icon-pan\"></span></button>\r\n <button mat-icon-button (click)=\"cursor()\" [bizdocTooltip]=\"'Cursor' | translate\"><span class=\"e-icons sf-icon-cursor\"></span></button>\r\n <span class=\"tools-divider\"></span>\r\n <button mat-icon-button (click)=\"diagram.undo()\" [bizdocTooltip]=\"'Undo' | translate\" [disabled]=\"!diagram.historyManager?.canUndo\"><mat-icon>undo</mat-icon></button>\r\n <button mat-icon-button (click)=\"diagram.redo()\" [bizdocTooltip]=\"'Redo' | translate\" [disabled]=\"!diagram.historyManager?.canRedo\"><mat-icon>redo</mat-icon></button>\r\n <span class=\"tools-divider\"></span>\r\n <button mat-icon-button (click)=\"diagram.copy()\" [bizdocTooltip]=\"'Copy' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>copy</mat-icon></button>\r\n <button mat-icon-button (click)=\"diagram.paste()\" [bizdocTooltip]=\"'Paste' | translate\"><mat-icon>paste</mat-icon></button>\r\n <button mat-icon-button (click)=\"diagram.remove()\" [bizdocTooltip]=\"'Remove' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>delete</mat-icon></button>\r\n <span class=\"tools-divider\"></span>\r\n <button mat-button [matMenuTriggerFor]=\"lineMenu\" [disabled]=\"diagram.selectedItems?.connectors.length === 0\" [bizdocTooltip]=\"'ConnectorMode'|translate\">\r\n <span class=\"e-menu-icon\" [ngClass]=\"{'sf-icon-straight-line': connectorType === 'Straight',\r\n 'sf-icon-orthogonal-line': connectorType === 'Orthogonal',\r\n 'sf-icon-beizer-line': connectorType === 'Bezier'}\"></span>\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n </button>\r\n <mat-menu #lineMenu overlayPanelClass=\"icon-menu-panel\">\r\n <button mat-menu-item (click)=\"connectorTypeChange('Straight')\">\r\n <span class=\"e-menu-icon sf-icon-straight-line\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"connectorTypeChange('Orthogonal')\">\r\n <span class=\"e-menu-icon sf-icon-orthogonal-line\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"connectorTypeChange('Bezier')\">\r\n <span class=\"e-menu-icon sf-icon-beizer-line\"></span>\r\n </button>\r\n <!--<ng-container *ngIf=\"connectors.length\">\r\n < bizdoc-color-picker (valueChanges)='strokeChange($event)' [label]=\"'Stroke'|translate\"></ bizdoc-color-picker>\r\n <ng-container *ngIf=\"nodes[0].annotations.length\">\r\n < bizdoc-color-picker (valueChanges)='colorChange($event)' [label]=\"'Color'|translate\"></ bizdoc-color-picker>\r\n </ng-container>\r\n < bizdoc-color-picker (valueChanges)='bgChange($event)' [label]=\"'Background'|translate\"></ bizdoc-color-picker>\r\n < bizdoc-color-picker (valueChanges)='strokeChange($event)' [label]=\"'Stroke'|translate\"></ bizdoc-color-picker>\r\n </ng-container>-->\r\n </mat-menu>\r\n &nbsp;\r\n <button mat-button [matMenuTriggerFor]=\"alignMenu\" [disabled]=\"diagram.selectedItems?.nodes.length === 0 && diagram.selectedItems?.connectors.length === 0\" [bizdocTooltip]=\"'Align'|translate\">\r\n <span class=\"e-icons\" [ngClass]=\"{'sf-icon-top': alignment === 'Top',\r\n 'sf-icon-left': alignment === 'Left',\r\n 'sf-icon-center': alignment === 'Center',\r\n 'sf-icon-bottom': alignment === 'Bottom',\r\n 'sf-icon-right': alignment === 'Right'}\"></span>\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n </button>\r\n <mat-menu #alignMenu overlayPanelClass=\"icon-menu-panel\">\r\n <button mat-menu-item (click)=\"align('Top')\">\r\n <span class=\"e-icons sf-icon-top\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Left')\">\r\n <span class=\"e-icons sf-icon-left\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Center')\">\r\n <span class=\"e-icons sf-icon-center\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Right')\">\r\n <span class=\"e-icons sf-icon-right\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Bottom')\">\r\n <span class=\"e-icons sf-icon-bottom\"></span>\r\n </button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"boldChange()\" [bizdocTooltip]=\"'Bold' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>format_bold</mat-icon></button>\r\n <button mat-icon-button (click)=\"italicChange()\" [bizdocTooltip]=\"'Italic' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>format_italic</mat-icon></button>\r\n <button mat-icon-button [matMenuTriggerFor]=\"sizeMenu\"\r\n [disabled]=\"diagram.selectedItems?.nodes.length === 0 && diagram.selectedItems?.connectors.length === 0\"\r\n [bizdocTooltip]=\"'FontSize'|translate\">\r\n <mat-icon>format_size</mat-icon>\r\n </button>\r\n <mat-menu #sizeMenu overlayPanelClass=\"icon-menu-panel\">\r\n <button mat-menu-item *ngFor=\"let size of fontSizes\" (click)=\"fontSizeChange(size)\">\r\n {{size}}\r\n </button>\r\n </mat-menu>\r\n <span class=\"divider\"></span>\r\n</mat-toolbar>\r\n<div class=\"row container\">\r\n <div id=\"symbolpalette\" [style.display]=\"tools?'':'none'\">\r\n <div dir=\"ltr\" #symbolPaletteEl>\r\n </div>\r\n </div>\r\n <div #diagramEl id=\"diagram\" fxFlex dir=\"ltr\">\r\n </div>\r\n</div>\r\n", styles: [":host{display:flex;flex-direction:column;flex-grow:1;height:100%}.container{flex-grow:1;overflow-y:auto}#diagram{flex-grow:1}#symbolpalette{width:210px}::ng-deep .e-rtl{direction:ltr}::ng-deep .mat-toolbar .mat-button-toggle{background:transparent!important}.e-menu-icon{font-family:diagram-icons!important;speak:none;font-size:18px;font-style:normal;font-weight:400;font-feature-settings:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::ng-deep .mat-menu-panel{min-width:0!important}.tools-divider:after{content:\"|\";opacity:.6;margin:0 2px}\n"], dependencies: [{ kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i8.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i9.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i10.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "component", type: i11.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i12.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: "component", type: i13.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i14.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i14.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i14.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i15.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i16.TranslatePipe, name: "translate" }] });
574
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: WorkflowComponent, decorators: [{
575
575
  type: Component,
576
576
  args: [{ selector: 'bizdoc-workflow', host: {
577
577
  class: 'pane'
@@ -142,13 +142,13 @@ let ManageCubeIndexUtility = class ManageCubeIndexUtility {
142
142
  this._destroy.next();
143
143
  }
144
144
  };
145
- ManageCubeIndexUtility.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ManageCubeIndexUtility, deps: [{ token: i1.Directionality }, { token: UtilityRef }, { token: i2.SessionService }, { token: i0.ViewContainerRef }, { token: i3.PromptService }, { token: i4.Overlay }], target: i0.ɵɵFactoryTarget.Component });
146
- ManageCubeIndexUtility.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: ManageCubeIndexUtility, selector: "ng-component", viewQueries: [{ propertyName: "editTmpl", first: true, predicate: ["editTmpl"], descendants: true, static: true }], ngImport: i0, template: "<mat-toolbar>\r\n <button mat-button (click)=\"save()\" [disabled]=\"!dirty\">{{'SaveChanges'|translate}}</button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add()\"><mat-icon>add</mat-icon></button>\r\n</mat-toolbar>\r\n<mat-progress-bar [mode]=\"loading\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<table mat-table [dataSource]=\"dataSource\">\r\n <ng-container *ngFor=\"let a of axes; let i = index\" [matColumnDef]=\"a.name\">\r\n <th mat-header-cell *matHeaderCellDef>{{a.title}}</th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.axes[names.indexOf(a.name)]| typeValue: a.dataType | async}} </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"value\">\r\n <th mat-header-cell *matHeaderCellDef>{{'Value'|translate}}</th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.value | currency : CURRENCY_CODE }} </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"options\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <button mat-icon-button><mat-icon>more_horiz</mat-icon></button>\r\n <button mat-icon-button (click)=\"remove(element, $event)\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </ng-container>\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let element; columns: displayedColumns;\" (click)=\"edit(element)\"></tr>\r\n</table>\r\n<ng-template #editTmpl>\r\n <form [formGroup]=\"form\">\r\n <mat-form-field *ngFor=\"let a of axes\">\r\n <bizdoc-select [placeholder]=\"a.title\" [type]=\"a.dataType\" [formControlName]=\"a.name\" required></bizdoc-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <input matInput type=\"number\" formControlName=\"value\" autocomplete=\"off\" required [placeholder]=\"'Value'|translate\" />\r\n </mat-form-field>\r\n </form>\r\n</ng-template>\r\n", styles: ["form{padding:8px 4px 8px 8px;flex-flow:row wrap;box-sizing:border-box;display:flex}form>*{flex:1 1 auto;box-sizing:border-box;width:50%;padding:0 5px 0 0}table{width:100%}\n"], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.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: i6.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i7.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i7.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i7.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i7.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i7.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i7.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i7.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i7.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i7.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i7.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i8.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i9.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i10.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i11.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: i12.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: i13.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i14.TypeSelect, selector: "bizdoc-select", inputs: ["type", "scope", "multiple", "placeholder", "required", "disabled", "text", "value"], outputs: ["selectionChange", "textChange"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i15.TypeValuePipe, name: "typeValue" }, { kind: "pipe", type: i16.TranslatePipe, name: "translate" }] });
145
+ ManageCubeIndexUtility.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: ManageCubeIndexUtility, deps: [{ token: i1.Directionality }, { token: UtilityRef }, { token: i2.SessionService }, { token: i0.ViewContainerRef }, { token: i3.PromptService }, { token: i4.Overlay }], target: i0.ɵɵFactoryTarget.Component });
146
+ ManageCubeIndexUtility.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: ManageCubeIndexUtility, selector: "ng-component", viewQueries: [{ propertyName: "editTmpl", first: true, predicate: ["editTmpl"], descendants: true, static: true }], ngImport: i0, template: "<mat-toolbar>\r\n <button mat-button (click)=\"save()\" [disabled]=\"!dirty\">{{'SaveChanges'|translate}}</button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add()\"><mat-icon>add</mat-icon></button>\r\n</mat-toolbar>\r\n<mat-progress-bar [mode]=\"loading\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<table mat-table [dataSource]=\"dataSource\">\r\n <ng-container *ngFor=\"let a of axes; let i = index\" [matColumnDef]=\"a.name\">\r\n <th mat-header-cell *matHeaderCellDef>{{a.title}}</th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.axes[names.indexOf(a.name)]| typeValue: a.dataType | async}} </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"value\">\r\n <th mat-header-cell *matHeaderCellDef>{{'Value'|translate}}</th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.value | currency : CURRENCY_CODE }} </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"options\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <button mat-icon-button><mat-icon>more_horiz</mat-icon></button>\r\n <button mat-icon-button (click)=\"remove(element, $event)\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </ng-container>\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let element; columns: displayedColumns;\" (click)=\"edit(element)\"></tr>\r\n</table>\r\n<ng-template #editTmpl>\r\n <form [formGroup]=\"form\">\r\n <mat-form-field *ngFor=\"let a of axes\">\r\n <bizdoc-select [placeholder]=\"a.title\" [type]=\"a.dataType\" [formControlName]=\"a.name\" required></bizdoc-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <input matInput type=\"number\" formControlName=\"value\" autocomplete=\"off\" required [placeholder]=\"'Value'|translate\" />\r\n </mat-form-field>\r\n </form>\r\n</ng-template>\r\n", styles: ["form{padding:8px 4px 8px 8px;flex-flow:row wrap;box-sizing:border-box;display:flex}form>*{flex:1 1 auto;box-sizing:border-box;width:50%;padding:0 5px 0 0}table{width:100%}\n"], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.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: i6.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i7.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i7.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i7.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i7.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i7.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i7.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i7.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i7.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i7.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i7.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i8.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i9.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i10.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i11.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: i12.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: i13.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i14.TypeSelect, selector: "bizdoc-select", inputs: ["type", "scope", "multiple", "placeholder", "required", "disabled", "text", "value"], outputs: ["selectionChange", "textChange"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i15.TypeValuePipe, name: "typeValue" }, { kind: "pipe", type: i16.TranslatePipe, name: "translate" }] });
147
147
  ManageCubeIndexUtility = __decorate([
148
148
  BizDoc({ selector: 'manage-cube-index' })
149
149
  ], ManageCubeIndexUtility);
150
150
  export { ManageCubeIndexUtility };
151
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ManageCubeIndexUtility, decorators: [{
151
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: ManageCubeIndexUtility, decorators: [{
152
152
  type: Component,
153
153
  args: [{ template: "<mat-toolbar>\r\n <button mat-button (click)=\"save()\" [disabled]=\"!dirty\">{{'SaveChanges'|translate}}</button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add()\"><mat-icon>add</mat-icon></button>\r\n</mat-toolbar>\r\n<mat-progress-bar [mode]=\"loading\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<table mat-table [dataSource]=\"dataSource\">\r\n <ng-container *ngFor=\"let a of axes; let i = index\" [matColumnDef]=\"a.name\">\r\n <th mat-header-cell *matHeaderCellDef>{{a.title}}</th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.axes[names.indexOf(a.name)]| typeValue: a.dataType | async}} </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"value\">\r\n <th mat-header-cell *matHeaderCellDef>{{'Value'|translate}}</th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.value | currency : CURRENCY_CODE }} </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"options\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <button mat-icon-button><mat-icon>more_horiz</mat-icon></button>\r\n <button mat-icon-button (click)=\"remove(element, $event)\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </ng-container>\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let element; columns: displayedColumns;\" (click)=\"edit(element)\"></tr>\r\n</table>\r\n<ng-template #editTmpl>\r\n <form [formGroup]=\"form\">\r\n <mat-form-field *ngFor=\"let a of axes\">\r\n <bizdoc-select [placeholder]=\"a.title\" [type]=\"a.dataType\" [formControlName]=\"a.name\" required></bizdoc-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <input matInput type=\"number\" formControlName=\"value\" autocomplete=\"off\" required [placeholder]=\"'Value'|translate\" />\r\n </mat-form-field>\r\n </form>\r\n</ng-template>\r\n", styles: ["form{padding:8px 4px 8px 8px;flex-flow:row wrap;box-sizing:border-box;display:flex}form>*{flex:1 1 auto;box-sizing:border-box;width:50%;padding:0 5px 0 0}table{width:100%}\n"] }]
154
154
  }], ctorParameters: function () { return [{ type: i1.Directionality }, { type: i17.UtilityRef, decorators: [{
@@ -158,4 +158,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImpor
158
158
  type: ViewChild,
159
159
  args: ['editTmpl', { static: true }]
160
160
  }] } });
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlLWN1YmUtaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9pbmRpY2VzL21hbmFnZS1jdWJlLWluZGV4LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvYWRtaW4vaW5kaWNlcy9tYW5hZ2UtY3ViZS1pbmRleC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQTRDLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUdyRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzVDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQVV2QyxzQkFBc0IsU0FBdEIsc0JBQXNCO0lBZ0I1QixZQUFvQixJQUFvQixFQUNWLElBQXlELEVBQ3JGLE9BQXVCLEVBQVUsR0FBcUIsRUFDOUMsR0FBa0IsRUFDbEIsUUFBaUI7UUFKUCxTQUFJLEdBQUosSUFBSSxDQUFnQjtRQUNWLFNBQUksR0FBSixJQUFJLENBQXFE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QUFVO3VHQWpCZCxzQkFBc0Isd0tDdkI5QixrN0RBbUNBO0FEWlEsc0JBQXNCO0lBRjdCLE1BQU0sQ0FBQyxFQUFFLFFBQVEsRUFBRSxtQkFBbUIsRUFBRSxDQUFDO0dBRWxDLHNCQUFzQixDQXdIN0I7U0F4SE8sc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBTjdCLFNBQVM7OzswQkF1QkwsTUFBTTsyQkFBQyxVQUFVOzBKQVBxQixRQUFRO3NCQUFoRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkLCBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZiwgT25EZXN0cm95LCBJbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2UgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGVcIjtcclxuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3JtQ29udHJvbCwgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5UmVmIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9vdmVybGF5XCI7XHJcbmltcG9ydCB7IG1lcmdlLCBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BvcnRhbFwiO1xyXG5pbXBvcnQgeyBEaXJlY3Rpb25hbGl0eSB9IGZyb20gXCJAYW5ndWxhci9jZGsvYmlkaVwiO1xyXG5pbXBvcnQgeyBVdGlsaXR5Q29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2NvcmUvYmFzZVwiO1xyXG5pbXBvcnQgeyBCaXpEb2MgfSBmcm9tIFwiLi4vLi4vY29yZS9kZWNvcmF0b3JzXCI7XHJcbmltcG9ydCB7IFV0aWxpdHlSZWYgfSBmcm9tIFwiLi4vdXRpbGl0eS1yZWZcIjtcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQ3ViZUF4aXMgfSBmcm9tIFwiLi4vLi4vY29yZS9tb2RlbHNcIjtcclxuaW1wb3J0IHsgRVNDQVBFIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9rZXljb2Rlc1wiO1xyXG5pbXBvcnQgeyBQcm9tcHRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvcHJvbXB0LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUHJvZ3Jlc3NCYXJNb2RlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhclwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc3R5bGVVcmxzOiBbJy4vbWFuYWdlLWN1YmUtaW5kZXguY29tcG9uZW50LnNjc3MnXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vbWFuYWdlLWN1YmUtaW5kZXguY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbkBCaXpEb2MoeyBzZWxlY3RvcjogJ21hbmFnZS1jdWJlLWluZGV4JyB9KVxyXG5leHBvcnRcclxuICBjbGFzcyBNYW5hZ2VDdWJlSW5kZXhVdGlsaXR5IGltcGxlbWVudHMgVXRpbGl0eUNvbXBvbmVudDxhbnksIGFueT4sIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICByZWFkb25seSBDVVJSRU5DWV9DT0RFOiBzdHJpbmc7XHJcbiAgZGlydHkgPSBmYWxzZTtcclxuICBheGVzOiBDdWJlQXhpc1tdO1xyXG4gIGRhdGFTb3VyY2U6IE1hdFRhYmxlRGF0YVNvdXJjZTxJbmRleD47XHJcbiAgcmVhZG9ubHkgbmFtZXM6IHN0cmluZ1tdO1xyXG4gIHJlYWRvbmx5IGRpc3BsYXllZENvbHVtbnMgPSBbJ3ZhbHVlJywgJ29wdGlvbnMnXTtcclxuICByZWFkb25seSBmb3JtOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHtcclxuICAgIHZhbHVlOiBuZXcgRm9ybUNvbnRyb2woMCwgVmFsaWRhdG9ycy5yZXF1aXJlZClcclxuICB9KTtcclxuICBAVmlld0NoaWxkKCdlZGl0VG1wbCcsIHsgc3RhdGljOiB0cnVlIH0pIGVkaXRUbXBsOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIGxvYWRpbmc6IFByb2dyZXNzQmFyTW9kZTtcclxuICBwcml2YXRlIF9kYXRhOiBJbmRleFtdO1xyXG4gIHByaXZhdGUgX3JvdzogSW5kZXg7XHJcbiAgcHJpdmF0ZSBfb1JlZjogT3ZlcmxheVJlZjtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9kaXI6IERpcmVjdGlvbmFsaXR5LFxyXG4gICAgQEluamVjdChVdGlsaXR5UmVmKSBwcml2YXRlIF9yZWY6IFV0aWxpdHlSZWY8Ym9vbGVhbiwgSW5kZXhbXSwgSW5kZXhbXSwgYW55LCBPcHRpb25zPixcclxuICAgIHNlc3Npb246IFNlc3Npb25TZXJ2aWNlLCBwcml2YXRlIF92YzogVmlld0NvbnRhaW5lclJlZixcclxuICAgIHByaXZhdGUgX3NiOiBQcm9tcHRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfb3ZlcmxheTogT3ZlcmxheSkge1xyXG4gICAgY29uc3QgeyBjdWJlOiBuYW1lLCBheGVzOiBuYW1lcyB9ID0gX3JlZi5vcHRpb25zO1xyXG4gICAgY29uc3QgY3ViZSA9IG5hbWUgPyBzZXNzaW9uLnByb2ZpbGUuY3ViZXMuZmluZChjID0+IGMubmFtZSA9PT0gbmFtZSkgOiBzZXNzaW9uLnByb2ZpbGUuY3ViZXNbMF07XHJcbiAgICB0aGlzLkNVUlJFTkNZX0NPREUgPSBjdWJlLmN1cnJlbmN5Q29kZTtcclxuICAgIHRoaXMuYXhlcyA9IGN1YmUuYXhlcy5maWx0ZXIoYSA9PiBuYW1lcyA/IG5hbWVzLmluZGV4T2YoYS5uYW1lKSA+IC0xIDogYS5zZWxlY3Rpb25Nb2RlICE9PSAnTm9uZScpO1xyXG4gICAgdGhpcy5uYW1lcyA9IGN1YmUuYXhlcy5tYXAoYSA9PiBhLm5hbWUpO1xyXG4gICAgdGhpcy5heGVzLmZvckVhY2goKGEsIGkpID0+IHtcclxuICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnNwbGljZShpLCAwLCBhLm5hbWUpO1xyXG4gICAgICBjb25zdCBjdHJsID0gbmV3IEZvcm1Db250cm9sKG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgICB0aGlzLmZvcm0uYWRkQ29udHJvbChhLm5hbWUsIGN0cmwpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUodiA9PiB7XHJcbiAgICAgIGlmICghdGhpcy5mb3JtLnZhbGlkKSByZXR1cm47XHJcbiAgICAgIGNvbnN0IGF4ZXMgPSBbXTtcclxuICAgICAgdGhpcy5heGVzLmZvckVhY2goYSA9PiBheGVzW3RoaXMubmFtZXMuaW5kZXhPZihhLm5hbWUpXSA9IHRoaXMuZm9ybS52YWx1ZVthLm5hbWVdIHx8IG51bGwpO1xyXG4gICAgICBpZiAodGhpcy5fcm93KSB7XHJcbiAgICAgICAgaWYgKGF4ZXMuam9pbigpID09PSB0aGlzLl9yb3cuYXhlcy5qb2luKCkpXHJcbiAgICAgICAgICB0aGlzLl9yb3cudmFsdWUgPSB2LnZhbHVlO1xyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgY29uc3Qgcm93ID0gdGhpcy5fZmluZChheGVzKTtcclxuICAgICAgICAgIGlmIChyb3cpIHtcclxuICAgICAgICAgICAgdGhpcy5fcm93ID0gcm93O1xyXG4gICAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbJ3ZhbHVlJ10uc2V0VmFsdWUodGhpcy5fcm93LnZhbHVlLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHRoaXMuX3Jvdy5heGVzID0gYXhlcztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAodi52YWx1ZSkge1xyXG4gICAgICAgIHRoaXMuX3JvdyA9IHsgdmFsdWU6IHYudmFsdWUsIGF4ZXMgfTtcclxuICAgICAgICB0aGlzLl9kYXRhLnB1c2godGhpcy5fcm93KTtcclxuICAgICAgICB0aGlzLmRhdGFTb3VyY2UuZmlsdGVyID0gJyc7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5kaXJ0eSA9IHRydWU7XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IG9SZWYgPSB0aGlzLl9vUmVmID0gdGhpcy5fb3ZlcmxheS5jcmVhdGUoe1xyXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLl9vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCkuY2VudGVySG9yaXpvbnRhbGx5KCkuY2VudGVyVmVydGljYWxseSgpLFxyXG4gICAgICBiYWNrZHJvcENsYXNzOiAnY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AnLFxyXG4gICAgICBkaXJlY3Rpb246IHRoaXMuX2Rpci52YWx1ZSxcclxuICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXHJcbiAgICAgIHBhbmVsQ2xhc3M6ICdob21lLXBhbmVsJ1xyXG4gICAgfSk7XHJcbiAgICBtZXJnZShvUmVmLmJhY2tkcm9wQ2xpY2soKSwgb1JlZi5rZXlkb3duRXZlbnRzKCkucGlwZShmaWx0ZXIoayA9PiBrLmtleUNvZGUgPT09IEVTQ0FQRSkpKS5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKCgpID0+IG9SZWYuZGV0YWNoKCkpO1xyXG4gIH1cclxuICBwcml2YXRlIF9maW5kKGF4ZXM6IHN0cmluZ1tdKTogSW5kZXgge1xyXG4gICAgY29uc3QgbiA9IHRoaXMubmFtZXMubGVuZ3RoO1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGEuZmluZChpbmRleCA9PiB7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbjsgaSsrKVxyXG4gICAgICAgIGlmIChheGVzW2ldICYmIGF4ZXNbaV0gIT09IGluZGV4LmF4ZXNbaV0pIHJldHVybiBmYWxzZTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgYWRkKCkge1xyXG4gICAgdGhpcy5fcm93ID0gbnVsbDtcclxuICAgIGNvbnN0IHZhbHVlcyA9IHsgdmFsdWU6IDAgfTtcclxuICAgIHRoaXMuYXhlcy5mb3JFYWNoKGEgPT4gdmFsdWVzW2EubmFtZV0gPSBudWxsKTtcclxuICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHZhbHVlcywgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgY29uc3QgcG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMuZWRpdFRtcGwsIHRoaXMuX3ZjKTtcclxuICAgIHRoaXMuX29SZWYuYXR0YWNoKHBvcnRhbCk7XHJcbiAgfVxyXG4gIGVkaXQoaXRlbTogSW5kZXgpIHtcclxuICAgIHRoaXMuX3JvdyA9IGl0ZW07XHJcbiAgICBjb25zdCB2YWx1ZXMgPSB7IHZhbHVlOiBpdGVtLnZhbHVlIH07XHJcbiAgICB0aGlzLmF4ZXMuZm9yRWFjaChhID0+IHZhbHVlc1thLm5hbWVdID0gaXRlbS5heGVzW3RoaXMubmFtZXMuaW5kZXhPZihhLm5hbWUpXSk7XHJcbiAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh2YWx1ZXMsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgIGNvbnN0IHBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLmVkaXRUbXBsLCB0aGlzLl92Yyk7XHJcbiAgICB0aGlzLl9vUmVmLmF0dGFjaChwb3J0YWwpO1xyXG4gIH1cclxuICByZW1vdmUoaW5kZXg6IEluZGV4LCBldnQ6IEV2ZW50KSB7XHJcbiAgICB0aGlzLl9kYXRhLnJlbW92ZShpbmRleCk7XHJcbiAgICB0aGlzLmRhdGFTb3VyY2UuZmlsdGVyID0gJyc7XHJcbiAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2ZpbHRlcihheGVzOiBzdHJpbmdbXSkge1xyXG4gICAgY29uc3QgbiA9IGF4ZXMubGVuZ3RoO1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGEuZmlsdGVyKGluZGV4ID0+IHtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuOyBpKyspXHJcbiAgICAgICAgaWYgKHRoaXMuYXhlc1tpXSAmJiBheGVzW2ldICE9PSBpbmRleC5heGVzW2ldKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gJ3F1ZXJ5JztcclxuICAgIHRoaXMuX3JlZi5wb3B1bGF0ZSgpLnN1YnNjcmliZShtID0+IHtcclxuICAgICAgdGhpcy5fZGF0YSA9IG07XHJcbiAgICAgIHRoaXMuZGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2UobSk7XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IG51bGw7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgc2F2ZSgpIHtcclxuICAgIHRoaXMubG9hZGluZyA9ICdpbmRldGVybWluYXRlJztcclxuICAgIHRoaXMuX3JlZi5leGVjdXRlKHRoaXMuX2RhdGEpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuX3NiLnRvYXN0KCdDaGFuZ2VzU2F2ZWQnKTtcclxuICAgICAgdGhpcy5kaXJ0eSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmxvYWRpbmcgPSBudWxsO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveS5uZXh0KCk7XHJcbiAgfVxyXG59XHJcbmludGVyZmFjZSBJbmRleCB7XHJcbiAgaWQ/OiBudW1iZXI7XHJcbiAgYXhlczogc3RyaW5nW107XHJcbiAgdmFsdWU6IG51bWJlcjtcclxufVxyXG5cclxuaW50ZXJmYWNlIE9wdGlvbnMge1xyXG4gIGN1YmU/OiBzdHJpbmc7XHJcbiAgaW5kZXg/OiBzdHJpbmc7XHJcbiAgYXhlcz86IHN0cmluZ1tdO1xyXG59XHJcbiIsIjxtYXQtdG9vbGJhcj5cclxuICA8YnV0dG9uIG1hdC1idXR0b24gKGNsaWNrKT1cInNhdmUoKVwiIFtkaXNhYmxlZF09XCIhZGlydHlcIj57eydTYXZlQ2hhbmdlcyd8dHJhbnNsYXRlfX08L2J1dHRvbj5cclxuICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImFkZCgpXCI+PG1hdC1pY29uPmFkZDwvbWF0LWljb24+PC9idXR0b24+XHJcbjwvbWF0LXRvb2xiYXI+XHJcbjxtYXQtcHJvZ3Jlc3MtYmFyIFttb2RlXT1cImxvYWRpbmdcIiBbc3R5bGUudmlzaWJpbGl0eV09XCJsb2FkaW5nID8gJ3Zpc2libGUnOidoaWRkZW4nXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxyXG48dGFibGUgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cImRhdGFTb3VyY2VcIj5cclxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhIG9mIGF4ZXM7IGxldCBpID0gaW5kZXhcIiBbbWF0Q29sdW1uRGVmXT1cImEubmFtZVwiPlxyXG4gICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj57e2EudGl0bGV9fTwvdGg+XHJcbiAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPiB7e2VsZW1lbnQuYXhlc1tuYW1lcy5pbmRleE9mKGEubmFtZSldfCB0eXBlVmFsdWU6IGEuZGF0YVR5cGUgfCBhc3luY319IDwvdGQ+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJ2YWx1ZVwiPlxyXG4gICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj57eydWYWx1ZSd8dHJhbnNsYXRlfX08L3RoPlxyXG4gICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3tlbGVtZW50LnZhbHVlIHwgY3VycmVuY3kgOiBDVVJSRU5DWV9DT0RFIH19IDwvdGQ+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJvcHRpb25zXCI+XHJcbiAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPjwvdGg+XHJcbiAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxyXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbj48bWF0LWljb24+bW9yZV9ob3JpejwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJyZW1vdmUoZWxlbWVudCwgJGV2ZW50KVwiPjxtYXQtaWNvbj5kZWxldGU8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgPC90ZD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImRpc3BsYXllZENvbHVtbnNcIj48L3RyPlxyXG4gIDx0ciBtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgZWxlbWVudDsgY29sdW1uczogZGlzcGxheWVkQ29sdW1ucztcIiAoY2xpY2spPVwiZWRpdChlbGVtZW50KVwiPjwvdHI+XHJcbjwvdGFibGU+XHJcbjxuZy10ZW1wbGF0ZSAjZWRpdFRtcGw+XHJcbiAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCI+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQgKm5nRm9yPVwibGV0IGEgb2YgYXhlc1wiPlxyXG4gICAgICA8Yml6ZG9jLXNlbGVjdCBbcGxhY2Vob2xkZXJdPVwiYS50aXRsZVwiIFt0eXBlXT1cImEuZGF0YVR5cGVcIiBbZm9ybUNvbnRyb2xOYW1lXT1cImEubmFtZVwiIHJlcXVpcmVkPjwvYml6ZG9jLXNlbGVjdD5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwibnVtYmVyXCIgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIiBhdXRvY29tcGxldGU9XCJvZmZcIiByZXF1aXJlZCBbcGxhY2Vob2xkZXJdPVwiJ1ZhbHVlJ3x0cmFuc2xhdGVcIiAvPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8L2Zvcm0+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlLWN1YmUtaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9pbmRpY2VzL21hbmFnZS1jdWJlLWluZGV4LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvYWRtaW4vaW5kaWNlcy9tYW5hZ2UtY3ViZS1pbmRleC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQTRDLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUdyRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzVDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVU3QyxJQUFNLHNCQUFzQixHQUE1QixNQUFNLHNCQUFzQjtJQWdCNUIsWUFBb0IsSUFBb0IsRUFDVixJQUF5RCxFQUNyRixPQUF1QixFQUFVLEdBQXFCLEVBQzlDLEdBQWtCLEVBQ2xCLFFBQWlCO1FBSlAsU0FBSSxHQUFKLElBQUksQ0FBZ0I7UUFDVixTQUFJLEdBQUos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VUFBVTt1R0FqQmQsc0JBQXNCLHdLQ3ZCOUIsazdEQW1DQTtBRFpRLHNCQUFzQjtJQUY3QixNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQztHQUVsQyxzQkFBc0IsQ0F3SDdCO1NBeEhPLHNCQUFzQjsyRkFBdEIsc0JBQXNCO2tCQU43QixTQUFTOzs7MEJBdUJMLE1BQU07MkJBQUMsVUFBVTswSkFQcUIsUUFBUTtzQkFBaEQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWYsIE9uRGVzdHJveSwgSW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTWF0VGFibGVEYXRhU291cmNlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3RhYmxlXCI7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheVJlZiB9IGZyb20gXCJAYW5ndWxhci9jZGsvb3ZlcmxheVwiO1xyXG5pbXBvcnQgeyBtZXJnZSwgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIjtcclxuaW1wb3J0IHsgRGlyZWN0aW9uYWxpdHkgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2JpZGlcIjtcclxuaW1wb3J0IHsgVXRpbGl0eUNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9jb3JlL2Jhc2VcIjtcclxuaW1wb3J0IHsgQml6RG9jIH0gZnJvbSBcIi4uLy4uL2NvcmUvZGVjb3JhdG9yc1wiO1xyXG5pbXBvcnQgeyBVdGlsaXR5UmVmIH0gZnJvbSBcIi4uL3V0aWxpdHktcmVmXCI7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEN1YmVBeGlzIH0gZnJvbSBcIi4uLy4uL2NvcmUvbW9kZWxzXCI7XHJcbmltcG9ydCB7IEVTQ0FQRSB9IGZyb20gXCJAYW5ndWxhci9jZGsva2V5Y29kZXNcIjtcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL3Byb21wdC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFByb2dyZXNzQmFyTW9kZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1iYXJcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHN0eWxlVXJsczogWycuL21hbmFnZS1jdWJlLWluZGV4LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL21hbmFnZS1jdWJlLWluZGV4LmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5AQml6RG9jKHsgc2VsZWN0b3I6ICdtYW5hZ2UtY3ViZS1pbmRleCcgfSlcclxuZXhwb3J0XHJcbiAgY2xhc3MgTWFuYWdlQ3ViZUluZGV4VXRpbGl0eSBpbXBsZW1lbnRzIFV0aWxpdHlDb21wb25lbnQ8YW55LCBhbnk+LCBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcmVhZG9ubHkgQ1VSUkVOQ1lfQ09ERTogc3RyaW5nO1xyXG4gIGRpcnR5ID0gZmFsc2U7XHJcbiAgYXhlczogQ3ViZUF4aXNbXTtcclxuICBkYXRhU291cmNlOiBNYXRUYWJsZURhdGFTb3VyY2U8SW5kZXg+O1xyXG4gIHJlYWRvbmx5IG5hbWVzOiBzdHJpbmdbXTtcclxuICByZWFkb25seSBkaXNwbGF5ZWRDb2x1bW5zID0gWyd2YWx1ZScsICdvcHRpb25zJ107XHJcbiAgcmVhZG9ubHkgZm9ybTogRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7XHJcbiAgICB2YWx1ZTogbmV3IEZvcm1Db250cm9sKDAsIFZhbGlkYXRvcnMucmVxdWlyZWQpXHJcbiAgfSk7XHJcbiAgQFZpZXdDaGlsZCgnZWRpdFRtcGwnLCB7IHN0YXRpYzogdHJ1ZSB9KSBlZGl0VG1wbDogVGVtcGxhdGVSZWY8YW55PjtcclxuICBsb2FkaW5nOiBQcm9ncmVzc0Jhck1vZGU7XHJcbiAgcHJpdmF0ZSBfZGF0YTogSW5kZXhbXTtcclxuICBwcml2YXRlIF9yb3c6IEluZGV4O1xyXG4gIHByaXZhdGUgX29SZWY6IE92ZXJsYXlSZWY7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZGlyOiBEaXJlY3Rpb25hbGl0eSxcclxuICAgIEBJbmplY3QoVXRpbGl0eVJlZikgcHJpdmF0ZSBfcmVmOiBVdGlsaXR5UmVmPGJvb2xlYW4sIEluZGV4W10sIEluZGV4W10sIGFueSwgT3B0aW9ucz4sXHJcbiAgICBzZXNzaW9uOiBTZXNzaW9uU2VydmljZSwgcHJpdmF0ZSBfdmM6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBwcml2YXRlIF9zYjogUHJvbXB0U2VydmljZSxcclxuICAgIHByaXZhdGUgX292ZXJsYXk6IE92ZXJsYXkpIHtcclxuICAgIGNvbnN0IHsgY3ViZTogbmFtZSwgYXhlczogbmFtZXMgfSA9IF9yZWYub3B0aW9ucztcclxuICAgIGNvbnN0IGN1YmUgPSBuYW1lID8gc2Vzc2lvbi5wcm9maWxlLmN1YmVzLmZpbmQoYyA9PiBjLm5hbWUgPT09IG5hbWUpIDogc2Vzc2lvbi5wcm9maWxlLmN1YmVzWzBdO1xyXG4gICAgdGhpcy5DVVJSRU5DWV9DT0RFID0gY3ViZS5jdXJyZW5jeUNvZGU7XHJcbiAgICB0aGlzLmF4ZXMgPSBjdWJlLmF4ZXMuZmlsdGVyKGEgPT4gbmFtZXMgPyBuYW1lcy5pbmRleE9mKGEubmFtZSkgPiAtMSA6IGEuc2VsZWN0aW9uTW9kZSAhPT0gJ05vbmUnKTtcclxuICAgIHRoaXMubmFtZXMgPSBjdWJlLmF4ZXMubWFwKGEgPT4gYS5uYW1lKTtcclxuICAgIHRoaXMuYXhlcy5mb3JFYWNoKChhLCBpKSA9PiB7XHJcbiAgICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucy5zcGxpY2UoaSwgMCwgYS5uYW1lKTtcclxuICAgICAgY29uc3QgY3RybCA9IG5ldyBGb3JtQ29udHJvbChudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgICAgdGhpcy5mb3JtLmFkZENvbnRyb2woYS5uYW1lLCBjdHJsKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5mb3JtLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKHYgPT4ge1xyXG4gICAgICBpZiAoIXRoaXMuZm9ybS52YWxpZCkgcmV0dXJuO1xyXG4gICAgICBjb25zdCBheGVzID0gW107XHJcbiAgICAgIHRoaXMuYXhlcy5mb3JFYWNoKGEgPT4gYXhlc1t0aGlzLm5hbWVzLmluZGV4T2YoYS5uYW1lKV0gPSB0aGlzLmZvcm0udmFsdWVbYS5uYW1lXSB8fCBudWxsKTtcclxuICAgICAgaWYgKHRoaXMuX3Jvdykge1xyXG4gICAgICAgIGlmIChheGVzLmpvaW4oKSA9PT0gdGhpcy5fcm93LmF4ZXMuam9pbigpKVxyXG4gICAgICAgICAgdGhpcy5fcm93LnZhbHVlID0gdi52YWx1ZTtcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGNvbnN0IHJvdyA9IHRoaXMuX2ZpbmQoYXhlcyk7XHJcbiAgICAgICAgICBpZiAocm93KSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3JvdyA9IHJvdztcclxuICAgICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzWyd2YWx1ZSddLnNldFZhbHVlKHRoaXMuX3Jvdy52YWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB0aGlzLl9yb3cuYXhlcyA9IGF4ZXM7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKHYudmFsdWUpIHtcclxuICAgICAgICB0aGlzLl9yb3cgPSB7IHZhbHVlOiB2LnZhbHVlLCBheGVzIH07XHJcbiAgICAgICAgdGhpcy5fZGF0YS5wdXNoKHRoaXMuX3Jvdyk7XHJcbiAgICAgICAgdGhpcy5kYXRhU291cmNlLmZpbHRlciA9ICcnO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZGlydHkgPSB0cnVlO1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBvUmVmID0gdGhpcy5fb1JlZiA9IHRoaXMuX292ZXJsYXkuY3JlYXRlKHtcclxuICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5fb3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpLmNlbnRlckhvcml6b250YWxseSgpLmNlbnRlclZlcnRpY2FsbHkoKSxcclxuICAgICAgYmFja2Ryb3BDbGFzczogJ2Nkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wJyxcclxuICAgICAgZGlyZWN0aW9uOiB0aGlzLl9kaXIudmFsdWUsXHJcbiAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxyXG4gICAgICBwYW5lbENsYXNzOiAnaG9tZS1wYW5lbCdcclxuICAgIH0pO1xyXG4gICAgbWVyZ2Uob1JlZi5iYWNrZHJvcENsaWNrKCksIG9SZWYua2V5ZG93bkV2ZW50cygpLnBpcGUoZmlsdGVyKGsgPT4gay5rZXlDb2RlID09PSBFU0NBUEUpKSkucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSgoKSA9PiBvUmVmLmRldGFjaCgpKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZmluZChheGVzOiBzdHJpbmdbXSk6IEluZGV4IHtcclxuICAgIGNvbnN0IG4gPSB0aGlzLm5hbWVzLmxlbmd0aDtcclxuICAgIHJldHVybiB0aGlzLl9kYXRhLmZpbmQoaW5kZXggPT4ge1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG47IGkrKylcclxuICAgICAgICBpZiAoYXhlc1tpXSAmJiBheGVzW2ldICE9PSBpbmRleC5heGVzW2ldKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGFkZCgpIHtcclxuICAgIHRoaXMuX3JvdyA9IG51bGw7XHJcbiAgICBjb25zdCB2YWx1ZXMgPSB7IHZhbHVlOiAwIH07XHJcbiAgICB0aGlzLmF4ZXMuZm9yRWFjaChhID0+IHZhbHVlc1thLm5hbWVdID0gbnVsbCk7XHJcbiAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh2YWx1ZXMsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgIGNvbnN0IHBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLmVkaXRUbXBsLCB0aGlzLl92Yyk7XHJcbiAgICB0aGlzLl9vUmVmLmF0dGFjaChwb3J0YWwpO1xyXG4gIH1cclxuICBlZGl0KGl0ZW06IEluZGV4KSB7XHJcbiAgICB0aGlzLl9yb3cgPSBpdGVtO1xyXG4gICAgY29uc3QgdmFsdWVzID0geyB2YWx1ZTogaXRlbS52YWx1ZSB9O1xyXG4gICAgdGhpcy5heGVzLmZvckVhY2goYSA9PiB2YWx1ZXNbYS5uYW1lXSA9IGl0ZW0uYXhlc1t0aGlzLm5hbWVzLmluZGV4T2YoYS5uYW1lKV0pO1xyXG4gICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUodmFsdWVzLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICBjb25zdCBwb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5lZGl0VG1wbCwgdGhpcy5fdmMpO1xyXG4gICAgdGhpcy5fb1JlZi5hdHRhY2gocG9ydGFsKTtcclxuICB9XHJcbiAgcmVtb3ZlKGluZGV4OiBJbmRleCwgZXZ0OiBFdmVudCkge1xyXG4gICAgdGhpcy5fZGF0YS5yZW1vdmUoaW5kZXgpO1xyXG4gICAgdGhpcy5kYXRhU291cmNlLmZpbHRlciA9ICcnO1xyXG4gICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuICBwcml2YXRlIF9maWx0ZXIoYXhlczogc3RyaW5nW10pIHtcclxuICAgIGNvbnN0IG4gPSBheGVzLmxlbmd0aDtcclxuICAgIHJldHVybiB0aGlzLl9kYXRhLmZpbHRlcihpbmRleCA9PiB7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbjsgaSsrKVxyXG4gICAgICAgIGlmICh0aGlzLmF4ZXNbaV0gJiYgYXhlc1tpXSAhPT0gaW5kZXguYXhlc1tpXSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMubG9hZGluZyA9ICdxdWVyeSc7XHJcbiAgICB0aGlzLl9yZWYucG9wdWxhdGUoKS5zdWJzY3JpYmUobSA9PiB7XHJcbiAgICAgIHRoaXMuX2RhdGEgPSBtO1xyXG4gICAgICB0aGlzLmRhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlKG0pO1xyXG4gICAgICB0aGlzLmxvYWRpbmcgPSBudWxsO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHNhdmUoKSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSAnaW5kZXRlcm1pbmF0ZSc7XHJcbiAgICB0aGlzLl9yZWYuZXhlY3V0ZSh0aGlzLl9kYXRhKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLl9zYi50b2FzdCgnQ2hhbmdlc1NhdmVkJyk7XHJcbiAgICAgIHRoaXMuZGlydHkgPSBmYWxzZTtcclxuICAgICAgdGhpcy5sb2FkaW5nID0gbnVsbDtcclxuICAgIH0pO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Rlc3Ryb3kubmV4dCgpO1xyXG4gIH1cclxufVxyXG5pbnRlcmZhY2UgSW5kZXgge1xyXG4gIGlkPzogbnVtYmVyO1xyXG4gIGF4ZXM6IHN0cmluZ1tdO1xyXG4gIHZhbHVlOiBudW1iZXI7XHJcbn1cclxuXHJcbmludGVyZmFjZSBPcHRpb25zIHtcclxuICBjdWJlPzogc3RyaW5nO1xyXG4gIGluZGV4Pzogc3RyaW5nO1xyXG4gIGF4ZXM/OiBzdHJpbmdbXTtcclxufVxyXG4iLCI8bWF0LXRvb2xiYXI+XHJcbiAgPGJ1dHRvbiBtYXQtYnV0dG9uIChjbGljayk9XCJzYXZlKClcIiBbZGlzYWJsZWRdPVwiIWRpcnR5XCI+e3snU2F2ZUNoYW5nZXMnfHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJhZGQoKVwiPjxtYXQtaWNvbj5hZGQ8L21hdC1pY29uPjwvYnV0dG9uPlxyXG48L21hdC10b29sYmFyPlxyXG48bWF0LXByb2dyZXNzLWJhciBbbW9kZV09XCJsb2FkaW5nXCIgW3N0eWxlLnZpc2liaWxpdHldPVwibG9hZGluZyA/ICd2aXNpYmxlJzonaGlkZGVuJ1wiPjwvbWF0LXByb2dyZXNzLWJhcj5cclxuPHRhYmxlIG1hdC10YWJsZSBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlXCI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYSBvZiBheGVzOyBsZXQgaSA9IGluZGV4XCIgW21hdENvbHVtbkRlZl09XCJhLm5hbWVcIj5cclxuICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+e3thLnRpdGxlfX08L3RoPlxyXG4gICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3tlbGVtZW50LmF4ZXNbbmFtZXMuaW5kZXhPZihhLm5hbWUpXXwgdHlwZVZhbHVlOiBhLmRhdGFUeXBlIHwgYXN5bmN9fSA8L3RkPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwidmFsdWVcIj5cclxuICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+e3snVmFsdWUnfHRyYW5zbGF0ZX19PC90aD5cclxuICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+IHt7ZWxlbWVudC52YWx1ZSB8IGN1cnJlbmN5IDogQ1VSUkVOQ1lfQ09ERSB9fSA8L3RkPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwib3B0aW9uc1wiPlxyXG4gICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj48L3RoPlxyXG4gICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cclxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24+PG1hdC1pY29uPm1vcmVfaG9yaXo8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwicmVtb3ZlKGVsZW1lbnQsICRldmVudClcIj48bWF0LWljb24+ZGVsZXRlPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgIDwvdGQ+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cclxuICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IGVsZW1lbnQ7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnM7XCIgKGNsaWNrKT1cImVkaXQoZWxlbWVudClcIj48L3RyPlxyXG48L3RhYmxlPlxyXG48bmctdGVtcGxhdGUgI2VkaXRUbXBsPlxyXG4gIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkICpuZ0Zvcj1cImxldCBhIG9mIGF4ZXNcIj5cclxuICAgICAgPGJpemRvYy1zZWxlY3QgW3BsYWNlaG9sZGVyXT1cImEudGl0bGVcIiBbdHlwZV09XCJhLmRhdGFUeXBlXCIgW2Zvcm1Db250cm9sTmFtZV09XCJhLm5hbWVcIiByZXF1aXJlZD48L2JpemRvYy1zZWxlY3Q+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cIm51bWJlclwiIGZvcm1Db250cm9sTmFtZT1cInZhbHVlXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgcmVxdWlyZWQgW3BsYWNlaG9sZGVyXT1cIidWYWx1ZSd8dHJhbnNsYXRlXCIgLz5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPC9mb3JtPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
@@ -0,0 +1,52 @@
1
+ import { Component, Input, Host } from "@angular/core";
2
+ import { Validators } from "@angular/forms";
3
+ import { isString } from "../core/functions";
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/forms";
6
+ import * as i2 from "../core/session.service";
7
+ import * as i3 from "@angular/common";
8
+ import * as i4 from "@angular/material/form-field";
9
+ import * as i5 from "@angular/material/input";
10
+ import * as i6 from "../core/pipes/translate.pipe";
11
+ /** */
12
+ export class LocalizedStringComponent {
13
+ constructor(_form, _session, _fb) {
14
+ this._form = _form;
15
+ this._session = _session;
16
+ this._fb = _fb;
17
+ this.languages = _session.languages;
18
+ }
19
+ ngOnInit() {
20
+ const up = this._form.get(this.formControlName), value = up.value;
21
+ if (isString(value) || !value) {
22
+ this.control = control(value);
23
+ }
24
+ else {
25
+ const group = this._fb.group({});
26
+ for (let lang of this._session.languages)
27
+ group.addControl(lang, control(value[lang]));
28
+ this.control = group;
29
+ this.localized = true;
30
+ }
31
+ this.control.valueChanges.subscribe(v => up.setValue(v));
32
+ function control(value) {
33
+ const control = this._fb.control(value, this.required ? Validators.required : null);
34
+ return control;
35
+ }
36
+ }
37
+ }
38
+ LocalizedStringComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: LocalizedStringComponent, deps: [{ token: i1.FormGroup, host: true }, { token: i2.SessionService }, { token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
39
+ LocalizedStringComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: LocalizedStringComponent, selector: "bizdoc-localized-string", inputs: { formControlName: "formControlName", label: "label", required: "required" }, ngImport: i0, template: "<div *ngIf=\"localized; else string\" [formGroup]=\"control\" class=\"column\">\r\n <mat-form-field *ngFor=\"let lang of languages; index as index\">\r\n <mat-label>{{label|translate}} / {{lang|translate}}</mat-label>\r\n <input matInput [formControlName]=\"lang\" />\r\n </mat-form-field>\r\n</div>\r\n<ng-template #string>\r\n <mat-form-field>\r\n <mat-label>{{label|translate}}</mat-label>\r\n <input matInput [formControl]=\"control\" />\r\n <mat-error *ngIf=\"control.hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:label\"></mat-error>\r\n </mat-form-field>\r\n</ng-template>\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: "directive", type: i4.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] });
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: LocalizedStringComponent, decorators: [{
41
+ type: Component,
42
+ args: [{ selector: 'bizdoc-localized-string', template: "<div *ngIf=\"localized; else string\" [formGroup]=\"control\" class=\"column\">\r\n <mat-form-field *ngFor=\"let lang of languages; index as index\">\r\n <mat-label>{{label|translate}} / {{lang|translate}}</mat-label>\r\n <input matInput [formControlName]=\"lang\" />\r\n </mat-form-field>\r\n</div>\r\n<ng-template #string>\r\n <mat-form-field>\r\n <mat-label>{{label|translate}}</mat-label>\r\n <input matInput [formControl]=\"control\" />\r\n <mat-error *ngIf=\"control.hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:label\"></mat-error>\r\n </mat-form-field>\r\n</ng-template>\r\n" }]
43
+ }], ctorParameters: function () { return [{ type: i1.FormGroup, decorators: [{
44
+ type: Host
45
+ }] }, { type: i2.SessionService }, { type: i1.FormBuilder }]; }, propDecorators: { formControlName: [{
46
+ type: Input
47
+ }], label: [{
48
+ type: Input
49
+ }], required: [{
50
+ type: Input
51
+ }] } });
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemVkLXN0cmluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2xvY2FsaXplZC1zdHJpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9sb2NhbGl6ZWQtc3RyaW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRCxPQUFPLEVBQTBCLFVBQVUsRUFBZSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7Ozs7QUFJN0MsTUFBTTtBQUtOLE1BQU0sT0FBTyx3QkFBd0I7SUFPbkMsWUFDa0IsS0FBZ0IsRUFDeEIsUUFBd0IsRUFDeEIsR0FBZ0I7UUFGUixVQUFLLEdBQUwsS0FBSyxDQUFXO1FBQ3hCLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ3hCLFFBQUcsR0FBSCxHQUFHLENBQWE7UUFDeEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDO0lBQ3RDLENBQUM7SUFDRCxRQUFRO1FBQ04sTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUM3QyxLQUFLLEdBQW9CLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFDcEMsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDN0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsS0FBZSxDQUFDLENBQUM7U0FDekM7YUFBTTtZQUNMLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2pDLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTO2dCQUN0QyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMvQyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztTQUN2QjtRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6RCxTQUFTLE9BQU8sQ0FBQyxLQUFhO1lBQzVCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNwRixPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO0lBQ0gsQ0FBQzs7cUhBOUJVLHdCQUF3Qjt5R0FBeEIsd0JBQXdCLHFKQ1hyQywybUJBYUE7MkZERmEsd0JBQXdCO2tCQUpwQyxTQUFTOytCQUNFLHlCQUF5Qjs7MEJBV2hDLElBQUk7bUdBUEUsZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgSG9zdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMsIEZvcm1Db250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IGlzU3RyaW5nIH0gZnJvbSBcIi4uL2NvcmUvZnVuY3Rpb25zXCI7XHJcbmltcG9ydCB7IExvY2FsaXplZFN0cmluZyB9IGZyb20gXCIuLi9jb3JlL21vZGVsc1wiO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gXCIuLi9jb3JlL3Nlc3Npb24uc2VydmljZVwiO1xyXG5cclxuLyoqICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLWxvY2FsaXplZC1zdHJpbmcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnbG9jYWxpemVkLXN0cmluZy5jb21wb25lbnQuaHRtbCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb2NhbGl6ZWRTdHJpbmdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIGZvcm1Db250cm9sTmFtZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcmVxdWlyZWQ6IGJvb2xlYW47XHJcbiAgY29udHJvbDogRm9ybUNvbnRyb2wgfCBGb3JtR3JvdXA7XHJcbiAgbG9jYWxpemVkOiBib29sZWFuO1xyXG4gIHJlYWRvbmx5IGxhbmd1YWdlczogc3RyaW5nW107XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASG9zdCgpIHByaXZhdGUgX2Zvcm06IEZvcm1Hcm91cCxcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZmI6IEZvcm1CdWlsZGVyKSB7XHJcbiAgICB0aGlzLmxhbmd1YWdlcyA9IF9zZXNzaW9uLmxhbmd1YWdlcztcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCB1cCA9IHRoaXMuX2Zvcm0uZ2V0KHRoaXMuZm9ybUNvbnRyb2xOYW1lKSxcclxuICAgICAgdmFsdWU6IExvY2FsaXplZFN0cmluZyA9IHVwLnZhbHVlO1xyXG4gICAgaWYgKGlzU3RyaW5nKHZhbHVlKSB8fCAhdmFsdWUpIHtcclxuICAgICAgdGhpcy5jb250cm9sID0gY29udHJvbCh2YWx1ZSBhcyBzdHJpbmcpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgZ3JvdXAgPSB0aGlzLl9mYi5ncm91cCh7fSk7XHJcbiAgICAgIGZvciAobGV0IGxhbmcgb2YgdGhpcy5fc2Vzc2lvbi5sYW5ndWFnZXMpXHJcbiAgICAgICAgZ3JvdXAuYWRkQ29udHJvbChsYW5nLCBjb250cm9sKHZhbHVlW2xhbmddKSk7XHJcbiAgICAgIHRoaXMuY29udHJvbCA9IGdyb3VwO1xyXG4gICAgICB0aGlzLmxvY2FsaXplZCA9IHRydWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2ID0+IHVwLnNldFZhbHVlKHYpKTtcclxuICAgIGZ1bmN0aW9uIGNvbnRyb2wodmFsdWU6IHN0cmluZyk6IGFueSB7XHJcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLl9mYi5jb250cm9sKHZhbHVlLCB0aGlzLnJlcXVpcmVkID8gVmFsaWRhdG9ycy5yZXF1aXJlZCA6IG51bGwpO1xyXG4gICAgICByZXR1cm4gY29udHJvbDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cImxvY2FsaXplZDsgZWxzZSBzdHJpbmdcIiBbZm9ybUdyb3VwXT1cImNvbnRyb2xcIiBjbGFzcz1cImNvbHVtblwiPlxyXG4gIDxtYXQtZm9ybS1maWVsZCAqbmdGb3I9XCJsZXQgbGFuZyBvZiBsYW5ndWFnZXM7IGluZGV4IGFzIGluZGV4XCI+XHJcbiAgICA8bWF0LWxhYmVsPnt7bGFiZWx8dHJhbnNsYXRlfX0gLyB7e2xhbmd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgIDxpbnB1dCBtYXRJbnB1dCBbZm9ybUNvbnRyb2xOYW1lXT1cImxhbmdcIiAvPlxyXG4gIDwvbWF0LWZvcm0tZmllbGQ+XHJcbjwvZGl2PlxyXG48bmctdGVtcGxhdGUgI3N0cmluZz5cclxuICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8bWF0LWxhYmVsPnt7bGFiZWx8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgIDxpbnB1dCBtYXRJbnB1dCBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiIC8+XHJcbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiY29udHJvbC5oYXNFcnJvcigncmVxdWlyZWQnKVwiIFtpbm5lckhUTUxdPVwiJ1JlcXVpcmVkRXJyJ3x0cmFuc2xhdGU6bGFiZWxcIj48L21hdC1lcnJvcj5cclxuICA8L21hdC1mb3JtLWZpZWxkPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=