@bizdoc/core 3.0.5 → 3.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (651) hide show
  1. package/assets/system/Workday.svg +37 -37
  2. package/assets/themes/brown.min.css +1 -1
  3. package/assets/themes/dark.min.css +1 -1
  4. package/assets/themes/deep-purple-light-blue.min.css +1 -1
  5. package/assets/themes/deep-purple-teal.min.css +1 -1
  6. package/assets/themes/default.min.css +44 -1
  7. package/assets/themes/green.min.css +1 -1
  8. package/assets/themes/indigo-amber.min.css +1 -1
  9. package/assets/themes/indigo.min.css +1 -1
  10. package/esm2022/bizdoc-core.mjs +1 -1
  11. package/esm2022/lib/admin/admin-dismiss.service.mjs +4 -4
  12. package/esm2022/lib/admin/admin-menu.component.mjs +5 -5
  13. package/esm2022/lib/admin/architecture/cube-axes-filter.component.mjs +10 -10
  14. package/esm2022/lib/admin/architecture/declarations.mjs +3 -2
  15. package/esm2022/lib/admin/architecture/designer-element.component.mjs +25 -22
  16. package/esm2022/lib/admin/architecture/designer-privileges.component.mjs +6 -6
  17. package/esm2022/lib/admin/architecture/designer.base.mjs +11 -14
  18. package/esm2022/lib/admin/architecture/designer.component.mjs +9 -8
  19. package/esm2022/lib/admin/architecture/elements/action.component.mjs +4 -5
  20. package/esm2022/lib/admin/architecture/elements/analysis-view.component.mjs +5 -5
  21. package/esm2022/lib/admin/architecture/elements/analysis-widget.component.mjs +5 -5
  22. package/esm2022/lib/admin/architecture/elements/anomaly-rule.component.mjs +5 -5
  23. package/esm2022/lib/admin/architecture/elements/attribute.component.mjs +5 -6
  24. package/esm2022/lib/admin/architecture/elements/box-form.component.mjs +5 -5
  25. package/esm2022/lib/admin/architecture/elements/configuration-datasource.component.mjs +5 -5
  26. package/esm2022/lib/admin/architecture/elements/control.component.mjs +4 -7
  27. package/esm2022/lib/admin/architecture/elements/cube-index-utility.component.mjs +5 -5
  28. package/esm2022/lib/admin/architecture/elements/cube-view.component.mjs +5 -5
  29. package/esm2022/lib/admin/architecture/elements/cube.component.mjs +14 -15
  30. package/esm2022/lib/admin/architecture/elements/document-state-widget.component.mjs +6 -8
  31. package/esm2022/lib/admin/architecture/elements/documents-report.component.mjs +5 -5
  32. package/esm2022/lib/admin/architecture/elements/documents-widget.component.mjs +5 -5
  33. package/esm2022/lib/admin/architecture/elements/explore-view.component.mjs +5 -5
  34. package/esm2022/lib/admin/architecture/elements/folder.component.mjs +5 -6
  35. package/esm2022/lib/admin/architecture/elements/form-invite.dialog.mjs +9 -11
  36. package/esm2022/lib/admin/architecture/elements/form.component.mjs +13 -14
  37. package/esm2022/lib/admin/architecture/elements/guide.component.mjs +5 -6
  38. package/esm2022/lib/admin/architecture/elements/job.component.mjs +5 -6
  39. package/esm2022/lib/admin/architecture/elements/matrix-view.component.mjs +6 -6
  40. package/esm2022/lib/admin/architecture/elements/node.component.mjs +4 -4
  41. package/esm2022/lib/admin/architecture/elements/parallel-view.component.mjs +5 -5
  42. package/esm2022/lib/admin/architecture/elements/performance-report.component.mjs +5 -5
  43. package/esm2022/lib/admin/architecture/elements/performance-widget.component.mjs +5 -5
  44. package/esm2022/lib/admin/architecture/elements/pivot-view.component.mjs +5 -5
  45. package/esm2022/lib/admin/architecture/elements/policy.component.mjs +4 -4
  46. package/esm2022/lib/admin/architecture/elements/report.component.mjs +5 -6
  47. package/esm2022/lib/admin/architecture/elements/return-to-role-action.component.mjs +5 -5
  48. package/esm2022/lib/admin/architecture/elements/role.component.mjs +5 -6
  49. package/esm2022/lib/admin/architecture/elements/rule.component.mjs +4 -4
  50. package/esm2022/lib/admin/architecture/elements/source.component.mjs +4 -4
  51. package/esm2022/lib/admin/architecture/elements/state.component.mjs +4 -5
  52. package/esm2022/lib/admin/architecture/elements/sum-view.component.mjs +5 -5
  53. package/esm2022/lib/admin/architecture/elements/tasks-report.component.mjs +5 -5
  54. package/esm2022/lib/admin/architecture/elements/type.component.mjs +7 -8
  55. package/esm2022/lib/admin/architecture/elements/usage-report.component.mjs +6 -6
  56. package/esm2022/lib/admin/architecture/elements/utility.component.mjs +4 -4
  57. package/esm2022/lib/admin/architecture/elements/view.component.mjs +4 -4
  58. package/esm2022/lib/admin/architecture/elements/widget.component.mjs +5 -6
  59. package/esm2022/lib/admin/architecture/icon-picker.component.mjs +12 -7
  60. package/esm2022/lib/admin/core/ace.input.mjs +14 -13
  61. package/esm2022/lib/admin/core/color-picker.input.mjs +5 -5
  62. package/esm2022/lib/admin/core/localized-string.component.mjs +8 -7
  63. package/esm2022/lib/admin/core/search.input.mjs +5 -5
  64. package/esm2022/lib/admin/diff/configuration-diff.component.mjs +8 -7
  65. package/esm2022/lib/admin/document-trace/document-trace.component.mjs +19 -13
  66. package/esm2022/lib/admin/document-trace/reassign.dialog.mjs +5 -5
  67. package/esm2022/lib/admin/document-trace/timeline.mjs +1 -1
  68. package/esm2022/lib/admin/document-trace/trace-element.component.mjs +6 -6
  69. package/esm2022/lib/admin/form/designer/box-designer.component.mjs +6 -6
  70. package/esm2022/lib/admin/form/designer/declarations.mjs +1 -1
  71. package/esm2022/lib/admin/form/designer/design-control.component.mjs +4 -4
  72. package/esm2022/lib/admin/form/designer/properties.component.mjs +5 -5
  73. package/esm2022/lib/admin/form/designer/section.component.mjs +5 -5
  74. package/esm2022/lib/admin/form/designer/settings.component.mjs +4 -4
  75. package/esm2022/lib/admin/form/form.resolve.service.mjs +4 -4
  76. package/esm2022/lib/admin/form/workflow/node-ref.mjs +1 -1
  77. package/esm2022/lib/admin/form/workflow/node.component.mjs +35 -35
  78. package/esm2022/lib/admin/form/workflow/role-node.component.mjs +5 -5
  79. package/esm2022/lib/admin/form/workflow/workflow.component.mjs +10 -12
  80. package/esm2022/lib/admin/indices/manage-cube-index.component.mjs +9 -9
  81. package/esm2022/lib/admin/patterns/patterns.component.mjs +5 -5
  82. package/esm2022/lib/admin/permissions/permissions.component.mjs +5 -5
  83. package/esm2022/lib/admin/positions/positions-popup.component.mjs +8 -7
  84. package/esm2022/lib/admin/positions/positions.component.mjs +9 -9
  85. package/esm2022/lib/admin/profiler/outofoffice.component.mjs +6 -6
  86. package/esm2022/lib/admin/profiler/profiler.component.mjs +7 -7
  87. package/esm2022/lib/admin/system.service.mjs +15 -11
  88. package/esm2022/lib/admin/utility-ref.mjs +7 -5
  89. package/esm2022/lib/admin/utility-wrapper.component.mjs +4 -4
  90. package/esm2022/lib/admin/utility.pane.component.mjs +4 -4
  91. package/esm2022/lib/app.component.mjs +7 -7
  92. package/esm2022/lib/bizdoc.module.mjs +5 -5
  93. package/esm2022/lib/browse/browse-items.component.mjs +34 -33
  94. package/esm2022/lib/browse/browse.mobile.component.mjs +11 -8
  95. package/esm2022/lib/browse/browse.pane.component.mjs +9 -9
  96. package/esm2022/lib/browse/expanded-item/expanded-item.component.mjs +12 -12
  97. package/esm2022/lib/browse/filter/filter.component.mjs +27 -39
  98. package/esm2022/lib/browse/folders-menu.component.mjs +5 -5
  99. package/esm2022/lib/chat/chat-info.mjs +9 -8
  100. package/esm2022/lib/chat/chat.mobile.component.mjs +5 -5
  101. package/esm2022/lib/chat/chat.service.mjs +6 -6
  102. package/esm2022/lib/chat/contacts.component.mjs +10 -9
  103. package/esm2022/lib/chat/contacts.pane.component.mjs +4 -4
  104. package/esm2022/lib/chat/conversation.component.mjs +8 -8
  105. package/esm2022/lib/chat/conversation.pane.component.mjs +4 -4
  106. package/esm2022/lib/compose/action/action-picker.component.mjs +7 -10
  107. package/esm2022/lib/compose/action/action-ref.mjs +1 -1
  108. package/esm2022/lib/compose/action/action.base.mjs +1 -1
  109. package/esm2022/lib/compose/action/action.dialog.mjs +5 -5
  110. package/esm2022/lib/compose/action/action.pane.dialog.exp.mjs +7 -7
  111. package/esm2022/lib/compose/action/assign-action.component.mjs +5 -5
  112. package/esm2022/lib/compose/action/moveto-action.component.mjs +6 -6
  113. package/esm2022/lib/compose/action/return-action.component.mjs +5 -5
  114. package/esm2022/lib/compose/attachments/attachments.component.mjs +5 -5
  115. package/esm2022/lib/compose/attachments/preview/attachment-preview.component.mjs +5 -5
  116. package/esm2022/lib/compose/attachments/progress-button.directive.mjs +4 -4
  117. package/esm2022/lib/compose/box/box.component.mjs +5 -5
  118. package/esm2022/lib/compose/box/control.component.mjs +4 -4
  119. package/esm2022/lib/compose/box/row.component.mjs +4 -4
  120. package/esm2022/lib/compose/can-deactivate-changes.service.mjs +4 -4
  121. package/esm2022/lib/compose/comments/comment.component.mjs +18 -15
  122. package/esm2022/lib/compose/comments/comments.component.mjs +7 -7
  123. package/esm2022/lib/compose/comments/comments.pane.component.mjs +5 -5
  124. package/esm2022/lib/compose/comments/edit-comment.component.mjs +4 -4
  125. package/esm2022/lib/compose/comments/edits.component.mjs +5 -5
  126. package/esm2022/lib/compose/comments/quick-comment.component.exp.mjs +6 -6
  127. package/esm2022/lib/compose/comments/votes.component.mjs +5 -5
  128. package/esm2022/lib/compose/compose-resolve.service.mjs +4 -4
  129. package/esm2022/lib/compose/compose.mobile.component.mjs +8 -8
  130. package/esm2022/lib/compose/compose.pane.component.mjs +11 -11
  131. package/esm2022/lib/compose/copy/copy.dialog.mjs +5 -5
  132. package/esm2022/lib/compose/dismiss.service.mjs +4 -4
  133. package/esm2022/lib/compose/document-resolve.service.mjs +7 -7
  134. package/esm2022/lib/compose/document-resolver.service.mjs +4 -4
  135. package/esm2022/lib/compose/document.component.mjs +4 -4
  136. package/esm2022/lib/compose/document.mobile.component.mjs +4 -4
  137. package/esm2022/lib/compose/document.pane.component.mjs +4 -4
  138. package/esm2022/lib/compose/events/events.component.mjs +5 -5
  139. package/esm2022/lib/compose/form-ref.mjs +1 -1
  140. package/esm2022/lib/compose/form-selector/form-selector.sheet.mjs +5 -5
  141. package/esm2022/lib/compose/form.component.mjs +59 -23
  142. package/esm2022/lib/compose/new-menu.component.mjs +8 -7
  143. package/esm2022/lib/compose/overlay.component.exp.mjs +4 -4
  144. package/esm2022/lib/compose/privilage.directive.mjs +7 -7
  145. package/esm2022/lib/compose/recipient-resolver.service.mjs +4 -4
  146. package/esm2022/lib/compose/state.component.mjs +4 -4
  147. package/esm2022/lib/compose/tag/tags.component.mjs +5 -5
  148. package/esm2022/lib/compose/trace/flow.component.mjs +16 -17
  149. package/esm2022/lib/compose/trace/people.component.mjs +14 -9
  150. package/esm2022/lib/compose/trace/trace.base.mjs +6 -7
  151. package/esm2022/lib/compose/trace/trace.component.mjs +5 -5
  152. package/esm2022/lib/compose/trace/trace.pane.component.mjs +4 -4
  153. package/esm2022/lib/compose/version-compare/version-compare.component.mjs +5 -4
  154. package/esm2022/lib/compose/version-compare/version-compare.directive.mjs +14 -14
  155. package/esm2022/lib/compose/version-compare/version.pane.component.mjs +5 -5
  156. package/esm2022/lib/core/account.service.mjs +4 -4
  157. package/esm2022/lib/core/animated-icon/animated-icon.directive.mjs +4 -4
  158. package/esm2022/lib/core/animations.mjs +1 -1
  159. package/esm2022/lib/core/authentication.mjs +1 -1
  160. package/esm2022/lib/core/avatar/avatar.component.mjs +52 -43
  161. package/esm2022/lib/core/base.mjs +1 -1
  162. package/esm2022/lib/core/checkbox.mjs +19 -19
  163. package/esm2022/lib/core/colors.mjs +1 -1
  164. package/esm2022/lib/core/component-factory-resolver.mjs +5 -5
  165. package/esm2022/lib/core/configuration.mjs +1 -1
  166. package/esm2022/lib/core/datasource.service.mjs +4 -4
  167. package/esm2022/lib/core/decorators.mjs +1 -1
  168. package/esm2022/lib/core/document-factory.service.mjs +4 -11
  169. package/esm2022/lib/core/fields/address.designer.mjs +4 -4
  170. package/esm2022/lib/core/fields/address.field.mjs +31 -31
  171. package/esm2022/lib/core/fields/autocomplete.field.mjs +65 -65
  172. package/esm2022/lib/core/fields/axes-picker.designer.mjs +25 -25
  173. package/esm2022/lib/core/fields/axes-picker.field.mjs +5 -5
  174. package/esm2022/lib/core/fields/checkbox.designer.mjs +4 -4
  175. package/esm2022/lib/core/fields/checkbox.field.mjs +5 -5
  176. package/esm2022/lib/core/fields/checklist.designer.mjs +59 -59
  177. package/esm2022/lib/core/fields/checklist.field.mjs +5 -5
  178. package/esm2022/lib/core/fields/date-range.designer.mjs +4 -4
  179. package/esm2022/lib/core/fields/date-range.field.mjs +5 -5
  180. package/esm2022/lib/core/fields/date.designer.mjs +4 -4
  181. package/esm2022/lib/core/fields/date.field.mjs +5 -5
  182. package/esm2022/lib/core/fields/expression.field.mjs +30 -30
  183. package/esm2022/lib/core/fields/file.designer.mjs +4 -4
  184. package/esm2022/lib/core/fields/file.field.mjs +5 -5
  185. package/esm2022/lib/core/fields/html.designer.mjs +4 -4
  186. package/esm2022/lib/core/fields/html.field.mjs +5 -5
  187. package/esm2022/lib/core/fields/input.designer.mjs +4 -4
  188. package/esm2022/lib/core/fields/input.field.mjs +5 -5
  189. package/esm2022/lib/core/fields/localized-string.field.mjs +7 -7
  190. package/esm2022/lib/core/fields/numeric.designer.mjs +4 -4
  191. package/esm2022/lib/core/fields/numeric.field.mjs +5 -5
  192. package/esm2022/lib/core/fields/options.base.mjs +8 -8
  193. package/esm2022/lib/core/fields/options.component.mjs +5 -5
  194. package/esm2022/lib/core/fields/radio-button.designer.mjs +5 -5
  195. package/esm2022/lib/core/fields/radio-button.field.mjs +5 -5
  196. package/esm2022/lib/core/fields/select.designer.mjs +63 -63
  197. package/esm2022/lib/core/fields/select.field.mjs +5 -5
  198. package/esm2022/lib/core/fields/signature.designer.mjs +4 -4
  199. package/esm2022/lib/core/fields/signature.field.mjs +5 -5
  200. package/esm2022/lib/core/fields/switch.field.mjs +5 -5
  201. package/esm2022/lib/core/fields/tags.designer.mjs +4 -4
  202. package/esm2022/lib/core/fields/tags.field.mjs +5 -5
  203. package/esm2022/lib/core/fields/textarea.designer.mjs +4 -4
  204. package/esm2022/lib/core/fields/textarea.field.mjs +5 -5
  205. package/esm2022/lib/core/fields/time.designer.mjs +4 -4
  206. package/esm2022/lib/core/fields/time.field.mjs +5 -5
  207. package/esm2022/lib/core/fields/timespan.field.mjs +30 -30
  208. package/esm2022/lib/core/fields/yesno.designer.mjs +23 -23
  209. package/esm2022/lib/core/fields/yesno.field.mjs +5 -5
  210. package/esm2022/lib/core/firebase.service.mjs +1 -1
  211. package/esm2022/lib/core/functions.mjs +4 -1
  212. package/esm2022/lib/core/guide/guide.component.mjs +5 -5
  213. package/esm2022/lib/core/guide/guide.service.mjs +11 -7
  214. package/esm2022/lib/core/guide/help-tip.component.mjs +22 -22
  215. package/esm2022/lib/core/http.interceptor.mjs +6 -6
  216. package/esm2022/lib/core/hub.service.mjs +4 -4
  217. package/esm2022/lib/core/identity/identity.component.mjs +5 -5
  218. package/esm2022/lib/core/info/attachment-info.service.mjs +4 -4
  219. package/esm2022/lib/core/info/document-info.service.mjs +4 -4
  220. package/esm2022/lib/core/info/location-info.component.mjs +4 -4
  221. package/esm2022/lib/core/info/map-info.mjs +4 -4
  222. package/esm2022/lib/core/inputs/address.input.mjs +21 -21
  223. package/esm2022/lib/core/inputs/auto-complete.input.mjs +38 -37
  224. package/esm2022/lib/core/inputs/combination-picker-body.mjs +10 -12
  225. package/esm2022/lib/core/inputs/combination-picker.mjs +4 -5
  226. package/esm2022/lib/core/inputs/combination-pool.mjs +7 -6
  227. package/esm2022/lib/core/inputs/file.input.mjs +30 -24
  228. package/esm2022/lib/core/inputs/select.input.mjs +37 -37
  229. package/esm2022/lib/core/inputs/signature.input.mjs +4 -4
  230. package/esm2022/lib/core/inputs/time-picker.mjs +8 -8
  231. package/esm2022/lib/core/inputs/timespan.input.mjs +7 -7
  232. package/esm2022/lib/core/layout.component.mjs +11 -5
  233. package/esm2022/lib/core/lottie-animation.exp.mjs +49 -0
  234. package/esm2022/lib/core/mailbox.service.mjs +20 -14
  235. package/esm2022/lib/core/models.mjs +2 -1
  236. package/esm2022/lib/core/none.component.mjs +15 -15
  237. package/esm2022/lib/core/pipes/action.pipe.mjs +4 -4
  238. package/esm2022/lib/core/pipes/calendar.pipe.mjs +4 -4
  239. package/esm2022/lib/core/pipes/date-format.pipe.mjs +4 -4
  240. package/esm2022/lib/core/pipes/daterange.pipe.mjs +7 -7
  241. package/esm2022/lib/core/pipes/difference.pipe.mjs +4 -4
  242. package/esm2022/lib/core/pipes/duration-format.pipe.mjs +4 -4
  243. package/esm2022/lib/core/pipes/duration.pipe.mjs +4 -4
  244. package/esm2022/lib/core/pipes/filter.pipe.mjs +25 -0
  245. package/esm2022/lib/core/pipes/form.pipe.mjs +4 -4
  246. package/esm2022/lib/core/pipes/join.pipe.mjs +4 -4
  247. package/esm2022/lib/core/pipes/localized-string.pipe.mjs +4 -4
  248. package/esm2022/lib/core/pipes/role.pipe.mjs +4 -4
  249. package/esm2022/lib/core/pipes/sanitize-html.pipe.mjs +4 -4
  250. package/esm2022/lib/core/pipes/sort.pipe.mjs +8 -30
  251. package/esm2022/lib/core/pipes/state.pipe.mjs +4 -4
  252. package/esm2022/lib/core/pipes/time-ago.pipe.mjs +4 -4
  253. package/esm2022/lib/core/pipes/to-now.pipe.mjs +4 -4
  254. package/esm2022/lib/core/pipes/translate.pipe.mjs +10 -10
  255. package/esm2022/lib/core/pipes/type-value.pipe.mjs +4 -4
  256. package/esm2022/lib/core/pipes/user-name.pipe.mjs +4 -4
  257. package/esm2022/lib/core/popup/popup-ref.mjs +1 -1
  258. package/esm2022/lib/core/popup/popup.component.mjs +4 -4
  259. package/esm2022/lib/core/popup/popup.service.mjs +7 -5
  260. package/esm2022/lib/core/popup/tooltip.directive.mjs +10 -11
  261. package/esm2022/lib/core/prompt/ask/ask.dialog.mjs +4 -4
  262. package/esm2022/lib/core/prompt/mask/mask.component.mjs +4 -4
  263. package/esm2022/lib/core/prompt.service.mjs +6 -6
  264. package/esm2022/lib/core/router.mjs +9 -9
  265. package/esm2022/lib/core/save-changes.dialog.mjs +4 -4
  266. package/esm2022/lib/core/session.service.mjs +18 -9
  267. package/esm2022/lib/core/slots/pane-ref.mjs +2 -2
  268. package/esm2022/lib/core/slots/router.directive.mjs +4 -4
  269. package/esm2022/lib/core/slots/router.service.mjs +6 -5
  270. package/esm2022/lib/core/slots/slots.component.mjs +26 -23
  271. package/esm2022/lib/core/sticky-toolbar.exp.mjs +9 -6
  272. package/esm2022/lib/core/tagging/documents.component.mjs +5 -5
  273. package/esm2022/lib/core/tagging/edit-input.component.mjs +17 -14
  274. package/esm2022/lib/core/tagging/emoji.component.mjs +4 -4
  275. package/esm2022/lib/core/tagging/tagging-item.directive.mjs +4 -4
  276. package/esm2022/lib/core/tagging/tagging.component-base.mjs +4 -4
  277. package/esm2022/lib/core/tagging/tagging.directive.mjs +5 -5
  278. package/esm2022/lib/core/tagging/tagging.pipe.mjs +4 -4
  279. package/esm2022/lib/core/tagging/users.component.mjs +5 -5
  280. package/esm2022/lib/core/translate.service.mjs +5 -4
  281. package/esm2022/lib/core/translations.mjs +8 -6
  282. package/esm2022/lib/core/virtual-tabs.component.exp.mjs +7 -7
  283. package/esm2022/lib/core/window-title.service.mjs +14 -6
  284. package/esm2022/lib/cube/accum/accum.component.mjs +4 -4
  285. package/esm2022/lib/cube/chart/chart.component.mjs +8 -7
  286. package/esm2022/lib/cube/cube-info.service.mjs +13 -10
  287. package/esm2022/lib/cube/cube-menu.component.mjs +5 -5
  288. package/esm2022/lib/cube/cube-view.component.mjs +5 -5
  289. package/esm2022/lib/cube/cube.service.mjs +21 -19
  290. package/esm2022/lib/cube/declarations.mjs +1 -1
  291. package/esm2022/lib/cube/explore/document-item.component.mjs +4 -4
  292. package/esm2022/lib/cube/explore/explore-item.component.mjs +4 -4
  293. package/esm2022/lib/cube/explore/explore-items.component.mjs +8 -8
  294. package/esm2022/lib/cube/explore/explore.pane.component.mjs +5 -5
  295. package/esm2022/lib/cube/explore/item-resolver.service.mjs +7 -7
  296. package/esm2022/lib/cube/explore/item.pane.component.mjs +5 -5
  297. package/esm2022/lib/cube/filter/filter-tags.component.exp.mjs +5 -5
  298. package/esm2022/lib/cube/filter/filter.component.mjs +14 -13
  299. package/esm2022/lib/cube/grid/grid.component.mjs +9 -8
  300. package/esm2022/lib/cube/matrix/matrix.base.mjs +20 -18
  301. package/esm2022/lib/cube/matrix/matrix.mobile.component.mjs +5 -5
  302. package/esm2022/lib/cube/matrix/matrix.pane.component.mjs +6 -6
  303. package/esm2022/lib/cube/matrix/popup.component.mjs +5 -5
  304. package/esm2022/lib/cube/matrix/table.component.mjs +10 -9
  305. package/esm2022/lib/cube/parallel/item.mjs +1 -2
  306. package/esm2022/lib/cube/parallel/parallel.component.mjs +5 -5
  307. package/esm2022/lib/cube/pivot/pivot.component.mjs +16 -7
  308. package/esm2022/lib/cube/spreadsheet/spreadsheet.component.mjs +6 -6
  309. package/esm2022/lib/cube/spreadsheet/spreadsheet.container.exp.mjs +4 -4
  310. package/esm2022/lib/cube/sum/sum.component.mjs +20 -19
  311. package/esm2022/lib/cube/view-base.mjs +5 -5
  312. package/esm2022/lib/cube/view.mobile.component.mjs +6 -6
  313. package/esm2022/lib/cube/view.pane.component.mjs +5 -5
  314. package/esm2022/lib/dashboard/actions/actions.widget.mjs +7 -6
  315. package/esm2022/lib/dashboard/cube/accum-cube.widget.mjs +4 -8
  316. package/esm2022/lib/dashboard/cube/compare.widget.mjs +5 -7
  317. package/esm2022/lib/dashboard/cube/cube-analysis.base.mjs +8 -6
  318. package/esm2022/lib/dashboard/cube/cube-analysis.widget.mjs +4 -4
  319. package/esm2022/lib/dashboard/cube/cube-chart.widget.mjs +5 -4
  320. package/esm2022/lib/dashboard/cube/document-state.widget.mjs +6 -5
  321. package/esm2022/lib/dashboard/cube/documents.widget.mjs +4 -4
  322. package/esm2022/lib/dashboard/cube/filter/filter.component.mjs +4 -4
  323. package/esm2022/lib/dashboard/dashboard.component.mjs +5 -5
  324. package/esm2022/lib/dashboard/dashboard.pane.component.mjs +4 -4
  325. package/esm2022/lib/dashboard/recents/recents.widget.mjs +13 -16
  326. package/esm2022/lib/dashboard/score/activity.widget.mjs +7 -6
  327. package/esm2022/lib/dashboard/score/compare-groups.widget.mjs +12 -5
  328. package/esm2022/lib/dashboard/score/peers-performance.widget.mjs +9 -8
  329. package/esm2022/lib/dashboard/score/pending-results.widget.mjs +5 -5
  330. package/esm2022/lib/dashboard/score/personal-score.widget.mjs +19 -18
  331. package/esm2022/lib/dashboard/widget-item.component.mjs +4 -4
  332. package/esm2022/lib/dashboard/widget-ref.mjs +1 -1
  333. package/esm2022/lib/designer.module.mjs +5 -5
  334. package/esm2022/lib/desktop.module.mjs +8 -12
  335. package/esm2022/lib/home/about/about.dialog.mjs +6 -6
  336. package/esm2022/lib/home/home-base.component.mjs +18 -10
  337. package/esm2022/lib/home/home.desktop.component.mjs +12 -22
  338. package/esm2022/lib/home/home.mobile.component.mjs +29 -32
  339. package/esm2022/lib/home/notifications/notifications.component.mjs +22 -24
  340. package/esm2022/lib/home/outofoffice/outofoffice.component.mjs +10 -10
  341. package/esm2022/lib/home/sign/sign.component.mjs +17 -21
  342. package/esm2022/lib/impersonate/impersonate.component.mjs +36 -34
  343. package/esm2022/lib/mobile.module.mjs +8 -11
  344. package/esm2022/lib/modules/chart.module.mjs +13 -11
  345. package/esm2022/lib/modules/circular-gauge.module.mjs +9 -7
  346. package/esm2022/lib/modules/date.adapter.mjs +1 -1
  347. package/esm2022/lib/modules/datepicker.intl.mjs +4 -4
  348. package/esm2022/lib/modules/dayjs.module.mjs +5 -5
  349. package/esm2022/lib/modules/diagram.module.mjs +9 -7
  350. package/esm2022/lib/modules/gantt.module.mjs +11 -9
  351. package/esm2022/lib/modules/grid.module.mjs +9 -7
  352. package/esm2022/lib/modules/linear-gauge.module.mjs +5 -5
  353. package/esm2022/lib/modules/material.module.mjs +5 -5
  354. package/esm2022/lib/modules/paginator.intl.mjs +4 -4
  355. package/esm2022/lib/modules/pivot.module.mjs +9 -7
  356. package/esm2022/lib/modules/schedule.module.mjs +9 -7
  357. package/esm2022/lib/modules/spreadsheet.module.mjs +5 -5
  358. package/esm2022/lib/modules/stepper.intl.mjs +4 -4
  359. package/esm2022/lib/modules/texteditor.module.mjs +7 -6
  360. package/esm2022/lib/notifications/filter.component.mjs +4 -4
  361. package/esm2022/lib/notifications/notifications-table.component.mjs +7 -8
  362. package/esm2022/lib/notifications/notifications.component-base.mjs +1 -1
  363. package/esm2022/lib/notifications/notifications.mobile.component.mjs +4 -4
  364. package/esm2022/lib/notifications/notifications.pane.component.mjs +4 -4
  365. package/esm2022/lib/notifications/notifications.service.mjs +13 -6
  366. package/esm2022/lib/notifications/types/commented.notification.mjs +17 -17
  367. package/esm2022/lib/notifications/types/cube-anomaly.notification.mjs +4 -4
  368. package/esm2022/lib/notifications/types/escalated.notification.mjs +4 -4
  369. package/esm2022/lib/notifications/types/invite.notification.mjs +4 -4
  370. package/esm2022/lib/notifications/types/liked.notification.mjs +17 -17
  371. package/esm2022/lib/notifications/types/long-running-task.notification.mjs +4 -4
  372. package/esm2022/lib/notifications/types/notification-base.mjs +4 -4
  373. package/esm2022/lib/notifications/types/nudge.notification.mjs +4 -4
  374. package/esm2022/lib/notifications/types/state-changed.notification.mjs +4 -4
  375. package/esm2022/lib/notifications/types/tagged.notification.mjs +7 -7
  376. package/esm2022/lib/notifications/types/text.notification.mjs +4 -4
  377. package/esm2022/lib/notifications/types/upcoming-event.notification.mjs +4 -4
  378. package/esm2022/lib/options/options.component.mjs +91 -49
  379. package/esm2022/lib/options/options.desktop.component.mjs +26 -0
  380. package/esm2022/lib/options/options.mobile.component.mjs +23 -0
  381. package/esm2022/lib/reports/arguments-component.mjs +4 -4
  382. package/esm2022/lib/reports/cube/documents.component.mjs +4 -4
  383. package/esm2022/lib/reports/cube/grid-documents.component.mjs +4 -4
  384. package/esm2022/lib/reports/cube/performance-hilo.component.mjs +5 -5
  385. package/esm2022/lib/reports/cube/performance-wind.component.mjs +4 -4
  386. package/esm2022/lib/reports/cube/table-documents.component.mjs +7 -6
  387. package/esm2022/lib/reports/cube/usage-args.component.mjs +6 -5
  388. package/esm2022/lib/reports/cube/usage-base.mjs +8 -8
  389. package/esm2022/lib/reports/cube/usage-chart.component.mjs +5 -5
  390. package/esm2022/lib/reports/cube/usage-pivot.component.mjs +5 -5
  391. package/esm2022/lib/reports/cube/usage.component.mjs +4 -4
  392. package/esm2022/lib/reports/report-ref.mjs +1 -1
  393. package/esm2022/lib/reports/report-viewer.component.mjs +5 -5
  394. package/esm2022/lib/reports/report.mobile.component.mjs +5 -5
  395. package/esm2022/lib/reports/report.pane.component.mjs +5 -5
  396. package/esm2022/lib/reports/reports-menu.component.mjs +5 -5
  397. package/esm2022/lib/reports/substitution/substitution.component.mjs +5 -5
  398. package/esm2022/lib/reports/table/table-view.component.mjs +5 -5
  399. package/esm2022/lib/reports/tasks/tasks.component.mjs +4 -4
  400. package/esm2022/lib/routes.desktop.mjs +24 -5
  401. package/esm2022/lib/routes.mobile.mjs +12 -2
  402. package/esm2022/lib/scheduler/schedule.component.mjs +5 -5
  403. package/esm2022/lib/scheduler/scheduler.mobile.component.mjs +4 -4
  404. package/esm2022/lib/scheduler/scheduler.pane.component.mjs +4 -4
  405. package/esm2022/lib/search/cube.component.mjs +8 -9
  406. package/esm2022/lib/search/declarations.mjs +1 -1
  407. package/esm2022/lib/search/document.component.mjs +4 -4
  408. package/esm2022/lib/search/guide.component.mjs +4 -4
  409. package/esm2022/lib/search/path.component.mjs +15 -15
  410. package/esm2022/lib/search/search.service.mjs +5 -5
  411. package/esm2022/lib/shared.module.mjs +17 -17
  412. package/esm2022/lib/system.module.mjs +5 -5
  413. package/esm2022/lib/views/cube/chart.component.mjs +5 -5
  414. package/esm2022/lib/views/cube/cube-base.mjs +4 -4
  415. package/esm2022/lib/views/cube/explore.component.mjs +6 -6
  416. package/esm2022/lib/views/cube/matrix.component.mjs +7 -7
  417. package/esm2022/lib/views/cube/parallel.component.mjs +5 -5
  418. package/esm2022/lib/views/cube/pivot.component.mjs +5 -5
  419. package/esm2022/lib/views/cube/sum.component.mjs +5 -5
  420. package/esm2022/lib/views/cube/view.component.mjs +7 -7
  421. package/esm2022/lib/views/document-view-ref.mjs +1 -1
  422. package/esm2022/lib/views/timeline/timeline.component.mjs +7 -8
  423. package/esm2022/lib/views/view-item.component.mjs +4 -4
  424. package/esm2022/lib/views/views.component.mjs +5 -5
  425. package/esm2022/lib/views/views.mobile.component.mjs +6 -6
  426. package/esm2022/lib/views/views.pane.component.mjs +8 -8
  427. package/esm2022/public-api.mjs +4 -3
  428. package/fesm2022/bizdoc-core.mjs +3819 -3701
  429. package/fesm2022/bizdoc-core.mjs.map +1 -1
  430. package/lib/admin/architecture/cube-axes-filter.component.d.ts +4 -1
  431. package/lib/admin/architecture/declarations.d.ts +14 -9
  432. package/lib/admin/architecture/designer-element.component.d.ts +1 -0
  433. package/lib/admin/architecture/designer-privileges.component.d.ts +4 -2
  434. package/lib/admin/architecture/designer.base.d.ts +1 -4
  435. package/lib/admin/architecture/designer.component.d.ts +3 -3
  436. package/lib/admin/architecture/elements/action.component.d.ts +13 -13
  437. package/lib/admin/architecture/elements/analysis-view.component.d.ts +8 -8
  438. package/lib/admin/architecture/elements/analysis-widget.component.d.ts +7 -7
  439. package/lib/admin/architecture/elements/anomaly-rule.component.d.ts +3 -3
  440. package/lib/admin/architecture/elements/attribute.component.d.ts +1 -1
  441. package/lib/admin/architecture/elements/box-form.component.d.ts +5 -5
  442. package/lib/admin/architecture/elements/configuration-datasource.component.d.ts +1 -1
  443. package/lib/admin/architecture/elements/control.component.d.ts +1 -2
  444. package/lib/admin/architecture/elements/cube-index-utility.component.d.ts +3 -4
  445. package/lib/admin/architecture/elements/cube-view.component.d.ts +4 -4
  446. package/lib/admin/architecture/elements/cube.component.d.ts +9 -10
  447. package/lib/admin/architecture/elements/document-state-widget.component.d.ts +3 -6
  448. package/lib/admin/architecture/elements/documents-report.component.d.ts +4 -5
  449. package/lib/admin/architecture/elements/documents-widget.component.d.ts +5 -5
  450. package/lib/admin/architecture/elements/explore-view.component.d.ts +4 -4
  451. package/lib/admin/architecture/elements/folder.component.d.ts +2 -2
  452. package/lib/admin/architecture/elements/form-invite.dialog.d.ts +7 -7
  453. package/lib/admin/architecture/elements/form.component.d.ts +10 -9
  454. package/lib/admin/architecture/elements/guide.component.d.ts +1 -1
  455. package/lib/admin/architecture/elements/matrix-view.component.d.ts +16 -16
  456. package/lib/admin/architecture/elements/parallel-view.component.d.ts +9 -10
  457. package/lib/admin/architecture/elements/performance-report.component.d.ts +2 -3
  458. package/lib/admin/architecture/elements/performance-widget.component.d.ts +4 -5
  459. package/lib/admin/architecture/elements/pivot-view.component.d.ts +9 -10
  460. package/lib/admin/architecture/elements/report.component.d.ts +1 -1
  461. package/lib/admin/architecture/elements/return-to-role-action.component.d.ts +1 -1
  462. package/lib/admin/architecture/elements/role.component.d.ts +4 -4
  463. package/lib/admin/architecture/elements/source.component.d.ts +2 -3
  464. package/lib/admin/architecture/elements/state.component.d.ts +4 -4
  465. package/lib/admin/architecture/elements/sum-view.component.d.ts +7 -8
  466. package/lib/admin/architecture/elements/tasks-report.component.d.ts +4 -4
  467. package/lib/admin/architecture/elements/type.component.d.ts +8 -4
  468. package/lib/admin/architecture/elements/usage-report.component.d.ts +7 -7
  469. package/lib/admin/architecture/elements/widget.component.d.ts +1 -1
  470. package/lib/admin/architecture/icon-picker.component.d.ts +5 -3
  471. package/lib/admin/core/ace.input.d.ts +2 -5
  472. package/lib/admin/core/localized-string.component.d.ts +3 -2
  473. package/lib/admin/document-trace/document-trace.component.d.ts +6 -5
  474. package/lib/admin/document-trace/reassign.dialog.d.ts +2 -2
  475. package/lib/admin/document-trace/timeline.d.ts +2 -2
  476. package/lib/admin/form/designer/box-designer.component.d.ts +11 -11
  477. package/lib/admin/form/designer/section.component.d.ts +5 -5
  478. package/lib/admin/form/workflow/node-ref.d.ts +1 -1
  479. package/lib/admin/form/workflow/node.component.d.ts +3 -2
  480. package/lib/admin/form/workflow/role-node.component.d.ts +11 -11
  481. package/lib/admin/form/workflow/workflow.component.d.ts +5 -4
  482. package/lib/admin/indices/manage-cube-index.component.d.ts +3 -3
  483. package/lib/admin/patterns/patterns.component.d.ts +2 -2
  484. package/lib/admin/positions/positions-popup.component.d.ts +1 -1
  485. package/lib/admin/positions/positions.component.d.ts +6 -6
  486. package/lib/admin/profiler/outofoffice.component.d.ts +15 -15
  487. package/lib/admin/profiler/profiler.component.d.ts +3 -3
  488. package/lib/admin/system.service.d.ts +11 -12
  489. package/lib/admin/utility-ref.d.ts +2 -2
  490. package/lib/browse/browse-items.component.d.ts +6 -7
  491. package/lib/browse/browse.mobile.component.d.ts +2 -2
  492. package/lib/browse/browse.pane.component.d.ts +2 -2
  493. package/lib/browse/filter/filter.component.d.ts +10 -11
  494. package/lib/chat/chat-info.d.ts +1 -1
  495. package/lib/chat/chat.service.d.ts +1 -1
  496. package/lib/chat/conversation.component.d.ts +2 -2
  497. package/lib/compose/action/action.base.d.ts +2 -1
  498. package/lib/compose/action/assign-action.component.d.ts +5 -5
  499. package/lib/compose/action/moveto-action.component.d.ts +3 -3
  500. package/lib/compose/action/return-action.component.d.ts +4 -4
  501. package/lib/compose/box/box.component.d.ts +1 -1
  502. package/lib/compose/comments/comments.component.d.ts +4 -4
  503. package/lib/compose/compose.mobile.component.d.ts +5 -5
  504. package/lib/compose/compose.pane.component.d.ts +3 -3
  505. package/lib/compose/copy/copy.dialog.d.ts +1 -1
  506. package/lib/compose/form-ref.d.ts +5 -5
  507. package/lib/compose/form.component.d.ts +36 -2
  508. package/lib/compose/new-menu.component.d.ts +2 -1
  509. package/lib/compose/privilage.directive.d.ts +1 -1
  510. package/lib/compose/tag/tags.component.d.ts +1 -1
  511. package/lib/compose/trace/flow.component.d.ts +1 -0
  512. package/lib/compose/trace/people.component.d.ts +5 -2
  513. package/lib/compose/trace/trace.base.d.ts +1 -1
  514. package/lib/compose/version-compare/version-compare.directive.d.ts +1 -1
  515. package/lib/core/account.service.d.ts +1 -1
  516. package/lib/core/authentication.d.ts +1 -1
  517. package/lib/core/avatar/avatar.component.d.ts +14 -11
  518. package/lib/core/base.d.ts +9 -9
  519. package/lib/core/datasource.service.d.ts +1 -1
  520. package/lib/core/document-factory.service.d.ts +0 -1
  521. package/lib/core/fields/address.designer.d.ts +3 -3
  522. package/lib/core/fields/address.field.d.ts +1 -1
  523. package/lib/core/fields/autocomplete.field.d.ts +5 -5
  524. package/lib/core/fields/axes-picker.designer.d.ts +3 -3
  525. package/lib/core/fields/axes-picker.field.d.ts +1 -1
  526. package/lib/core/fields/checkbox.designer.d.ts +2 -2
  527. package/lib/core/fields/checkbox.field.d.ts +1 -1
  528. package/lib/core/fields/checklist.designer.d.ts +4 -4
  529. package/lib/core/fields/checklist.field.d.ts +1 -2
  530. package/lib/core/fields/date-range.designer.d.ts +6 -6
  531. package/lib/core/fields/date-range.field.d.ts +2 -2
  532. package/lib/core/fields/date.designer.d.ts +5 -5
  533. package/lib/core/fields/file.designer.d.ts +3 -3
  534. package/lib/core/fields/html.designer.d.ts +4 -4
  535. package/lib/core/fields/input.designer.d.ts +8 -9
  536. package/lib/core/fields/numeric.designer.d.ts +7 -7
  537. package/lib/core/fields/options.base.d.ts +1 -1
  538. package/lib/core/fields/radio-button.designer.d.ts +3 -3
  539. package/lib/core/fields/radio-button.field.d.ts +2 -3
  540. package/lib/core/fields/select.designer.d.ts +5 -5
  541. package/lib/core/fields/select.field.d.ts +1 -2
  542. package/lib/core/fields/signature.designer.d.ts +2 -2
  543. package/lib/core/fields/switch.field.d.ts +1 -1
  544. package/lib/core/fields/textarea.designer.d.ts +6 -6
  545. package/lib/core/fields/time.designer.d.ts +5 -5
  546. package/lib/core/fields/yesno.designer.d.ts +3 -3
  547. package/lib/core/fields/yesno.field.d.ts +1 -1
  548. package/lib/core/firebase.service.d.ts +1 -1
  549. package/lib/core/functions.d.ts +7 -4
  550. package/lib/core/guide/help-tip.component.d.ts +1 -1
  551. package/lib/core/http.interceptor.d.ts +1 -1
  552. package/lib/core/hub.service.d.ts +2 -2
  553. package/lib/core/inputs/address.input.d.ts +5 -4
  554. package/lib/core/inputs/auto-complete.input.d.ts +4 -4
  555. package/lib/core/inputs/combination-picker-body.d.ts +2 -2
  556. package/lib/core/inputs/file.input.d.ts +4 -4
  557. package/lib/core/inputs/time-picker.d.ts +2 -2
  558. package/lib/core/inputs/timespan.input.d.ts +7 -7
  559. package/lib/core/{lottie-animation.d.ts → lottie-animation.exp.d.ts} +0 -1
  560. package/lib/core/mailbox.service.d.ts +2 -3
  561. package/lib/core/models.d.ts +6 -5
  562. package/lib/core/pipes/filter.pipe.d.ts +7 -0
  563. package/lib/core/pipes/localized-string.pipe.d.ts +1 -1
  564. package/lib/core/pipes/sort.pipe.d.ts +1 -6
  565. package/lib/core/pipes/time-ago.pipe.d.ts +1 -1
  566. package/lib/core/pipes/user-name.pipe.d.ts +1 -1
  567. package/lib/core/popup/popup-ref.d.ts +4 -4
  568. package/lib/core/popup/tooltip.directive.d.ts +2 -3
  569. package/lib/core/router.d.ts +3 -3
  570. package/lib/core/session.service.d.ts +10 -7
  571. package/lib/core/slots/pane-ref.d.ts +18 -18
  572. package/lib/core/slots/router.directive.d.ts +2 -2
  573. package/lib/core/slots/router.service.d.ts +3 -3
  574. package/lib/core/slots/slots.component.d.ts +3 -3
  575. package/lib/core/sticky-toolbar.exp.d.ts +1 -0
  576. package/lib/core/tagging/edit-input.component.d.ts +5 -5
  577. package/lib/core/tagging/emoji.component.d.ts +1 -1
  578. package/lib/core/tagging/tagging.component-base.d.ts +1 -1
  579. package/lib/core/tagging/tagging.directive.d.ts +1 -1
  580. package/lib/core/tagging/tagging.pipe.d.ts +1 -1
  581. package/lib/core/translate.service.d.ts +2 -2
  582. package/lib/core/translations.d.ts +2 -1049
  583. package/lib/core/virtual-tabs.component.exp.d.ts +2 -2
  584. package/lib/core/window-title.service.d.ts +2 -1
  585. package/lib/cube/accum/accum.component.d.ts +1 -1
  586. package/lib/cube/chart/chart.component.d.ts +5 -5
  587. package/lib/cube/cube-info.service.d.ts +1 -1
  588. package/lib/cube/cube.service.d.ts +2 -2
  589. package/lib/cube/declarations.d.ts +3 -3
  590. package/lib/cube/explore/explore-items.component.d.ts +2 -2
  591. package/lib/cube/filter/filter.component.d.ts +1 -1
  592. package/lib/cube/grid/grid.component.d.ts +4 -4
  593. package/lib/cube/matrix/matrix.base.d.ts +9 -8
  594. package/lib/cube/matrix/matrix.pane.component.d.ts +2 -1
  595. package/lib/cube/matrix/table.component.d.ts +3 -3
  596. package/lib/cube/pivot/pivot.component.d.ts +6 -7
  597. package/lib/cube/spreadsheet/spreadsheet.component.d.ts +3 -3
  598. package/lib/cube/sum/sum.component.d.ts +5 -5
  599. package/lib/cube/view-base.d.ts +3 -2
  600. package/lib/cube/view.mobile.component.d.ts +1 -1
  601. package/lib/dashboard/cube/accum-cube.widget.d.ts +0 -1
  602. package/lib/dashboard/cube/cube-analysis.base.d.ts +9 -6
  603. package/lib/dashboard/cube/filter/filter.component.d.ts +3 -2
  604. package/lib/dashboard/recents/recents.widget.d.ts +5 -6
  605. package/lib/dashboard/score/activity.widget.d.ts +1 -0
  606. package/lib/dashboard/score/peers-performance.widget.d.ts +1 -0
  607. package/lib/dashboard/score/personal-score.widget.d.ts +2 -4
  608. package/lib/desktop.module.d.ts +5 -6
  609. package/lib/home/about/about.dialog.d.ts +2 -2
  610. package/lib/home/home-base.component.d.ts +2 -0
  611. package/lib/home/home.desktop.component.d.ts +6 -9
  612. package/lib/home/home.mobile.component.d.ts +4 -6
  613. package/lib/home/notifications/notifications.component.d.ts +3 -5
  614. package/lib/home/outofoffice/outofoffice.component.d.ts +3 -3
  615. package/lib/home/sign/sign.component.d.ts +4 -2
  616. package/lib/impersonate/impersonate.component.d.ts +11 -12
  617. package/lib/mobile.module.d.ts +3 -3
  618. package/lib/modules/chart.module.d.ts +1 -0
  619. package/lib/modules/circular-gauge.module.d.ts +1 -0
  620. package/lib/modules/diagram.module.d.ts +1 -0
  621. package/lib/modules/gantt.module.d.ts +1 -0
  622. package/lib/modules/grid.module.d.ts +1 -0
  623. package/lib/modules/pivot.module.d.ts +1 -0
  624. package/lib/modules/schedule.module.d.ts +1 -0
  625. package/lib/notifications/filter.component.d.ts +2 -2
  626. package/lib/options/options.component.d.ts +54 -31
  627. package/lib/options/options.desktop.component.d.ts +10 -0
  628. package/lib/options/options.mobile.component.d.ts +9 -0
  629. package/lib/reports/arguments-component.d.ts +2 -2
  630. package/lib/reports/cube/performance-hilo.component.d.ts +1 -1
  631. package/lib/reports/cube/performance-wind.component.d.ts +2 -2
  632. package/lib/reports/cube/usage-args.component.d.ts +3 -1
  633. package/lib/reports/cube/usage-base.d.ts +9 -7
  634. package/lib/reports/cube/usage-pivot.component.d.ts +1 -1
  635. package/lib/reports/report.mobile.component.d.ts +3 -1
  636. package/lib/search/cube.component.d.ts +1 -1
  637. package/lib/search/declarations.d.ts +2 -2
  638. package/lib/shared.module.d.ts +154 -153
  639. package/lib/views/cube/chart.component.d.ts +2 -2
  640. package/lib/views/cube/cube-base.d.ts +6 -6
  641. package/lib/views/cube/sum.component.d.ts +2 -2
  642. package/lib/views/timeline/timeline.component.d.ts +3 -2
  643. package/lib/views/views.component.d.ts +1 -1
  644. package/package.json +7 -7
  645. package/public-api.d.ts +3 -2
  646. package/assets/themes/readme.md +0 -0
  647. package/esm2022/lib/core/lottie-animation.mjs +0 -48
  648. package/esm2022/lib/home/options/options.component.mjs +0 -97
  649. package/esm2022/lib/options/options.service.mjs +0 -42
  650. package/lib/home/options/options.component.d.ts +0 -45
  651. package/lib/options/options.service.d.ts +0 -14
@@ -30,11 +30,11 @@ export class FormInviteDialog {
30
30
  this._ref = _ref;
31
31
  this._pane = _pane;
32
32
  this.separatorKeysCodes = [ENTER, COMMA, SEMICOLON];
33
- this.groups = this._fb.control(null, Validators.required);
33
+ this.groups = this._fb.control([], Validators.required);
34
34
  this.devices = ['Sms', 'Email', 'IM'];
35
35
  this.form = this._fb.group({
36
36
  groups: this.groups,
37
- devices: this._fb.control(null, Validators.required),
37
+ devices: this._fb.control([], Validators.required),
38
38
  due: this._fb.control(null, Validators.min(new Date().getTime())),
39
39
  oneTime: false,
40
40
  message: this._fb.control(null)
@@ -55,9 +55,7 @@ export class FormInviteDialog {
55
55
  });
56
56
  this.roles = this._roles.slice();
57
57
  });
58
- this.search.valueChanges.pipe(debounceTime(150)).subscribe((v) => {
59
- this._searchchange.next(v);
60
- });
58
+ this.search.valueChanges.pipe(debounceTime(150)).subscribe(v => this._searchchange.next(v));
61
59
  this._searchchange.subscribe(v => {
62
60
  const groups = this.groups.value || [];
63
61
  if (v) {
@@ -100,7 +98,7 @@ export class FormInviteDialog {
100
98
  send() {
101
99
  const { groups, devices, message, due } = this.form.value;
102
100
  this.working = true;
103
- this._service.invite(this._ref.model.name, { groups, message, devices, due }).
101
+ this._service.invite(this._ref.model.name, { groups: groups, message, devices: devices, due }).
104
102
  subscribe({
105
103
  next: e => {
106
104
  this._ps.toast(e.ok ? 'InvitationsSent' : 'NoInvitationsSent', e.ok);
@@ -115,14 +113,14 @@ export class FormInviteDialog {
115
113
  const role = this._roles[name];
116
114
  return role?.title || name;
117
115
  }
118
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: FormInviteDialog, deps: [{ token: i1.FormBuilder }, { token: i2.SystemService }, { token: i3.PromptService }, { token: DesignerRef }, { token: i4.PaneRef }], target: i0.ɵɵFactoryTarget.Component }); }
119
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: FormInviteDialog, selector: "ng-component", ngImport: i0, template: "<form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\n <mat-form-field>\n <mat-chip-grid #chips [attr.aria-label]=\"''\" multiple required>\n @for (r of groups.value; track r) {\n <mat-chip-row\n (removed)=\"removeRole(r)\">\n {{titleOf(r)}}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip-row>\n }\n </mat-chip-grid>\n <input [placeholder]=\"'Roles'|translate\" required\n [formControl]=search\n #inputrole\n [matAutocomplete]=\"rolename\"\n [matChipInputFor]=\"chips\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\n <mat-autocomplete #rolename=\"matAutocomplete\" (optionSelected)=\"addRole(inputrole, $event)\">\n @for (r of roles; track r) {\n <mat-option [value]=\"r.name\">\n {{r.title || r.name}}\n </mat-option>\n }\n </mat-autocomplete>\n @if (form.controls.groups.hasError('required')) {\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Roles'|translate)\"></mat-error>\n }\n </mat-form-field>\n <bizdoc-localized-string formControlName=\"message\" [placeholder]=\"'Message'|translate\" class=\"flex column\" maxlength=\"400\"></bizdoc-localized-string>\n <mat-form-field>\n <mat-label>{{'InviteDue' | l18n}}</mat-label>\n <input matInput formControlName=\"due\"\n [matDatepicker]=\"duePicker\" />\n <mat-datepicker-toggle [for]=\"duePicker\" matSuffix></mat-datepicker-toggle>\n <mat-datepicker #duePicker></mat-datepicker>\n @if (form.controls.due.hasError('min')) {\n <mat-error [innerHTML]=\"'DateInPastErr'|translate\"></mat-error>\n }\n </mat-form-field>\n <mat-checkbox formControlName=\"oneTime\">{{'InviteOneTime'|l18n}}</mat-checkbox>\n <mat-selection-list formControlName=\"devices\" multiple>\n @for (d of devices; track d) {\n <mat-list-option [value]=\"d\">{{d|translate}}</mat-list-option>\n }\n </mat-selection-list>\n <button mat-raised-button color=\"primary\" (click)=\"send()\" [disabled]=\"!form.valid || working\">{{'Send'|l18n}}</button>\n </form>\n", styles: ["form{padding:8px}\n"], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i5.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i5.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i5.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "component", type: i6.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i6.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i6.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i7.MatSelectionList, selector: "mat-selection-list", inputs: ["color", "compareWith", "multiple", "hideSingleSelectionIndicator", "disabled"], outputs: ["selectionChange"], exportAs: ["matSelectionList"] }, { kind: "component", type: i7.MatListOption, selector: "mat-list-option", inputs: ["togglePosition", "checkboxPosition", "color", "value", "selected"], outputs: ["selectedChange"], exportAs: ["matListOption"] }, { kind: "component", type: i8.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i9.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i8.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i10.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i10.MatLabel, selector: "mat-label" }, { kind: "directive", type: i10.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i10.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i11.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i12.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i13.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: i14.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i15.LocalizedStringComponent, selector: "bizdoc-localized-string", inputs: ["class", "floatLabel", "value", "placeholder", "required", "disabled", "maxlength"] }, { kind: "pipe", type: i16.L18nPipe, name: "l18n" }, { kind: "pipe", type: i16.TranslatePipe, name: "translate" }] }); }
116
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FormInviteDialog, deps: [{ token: i1.FormBuilder }, { token: i2.SystemService }, { token: i3.PromptService }, { token: DesignerRef }, { token: i4.PaneRef }], target: i0.ɵɵFactoryTarget.Component }); }
117
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.4", type: FormInviteDialog, selector: "ng-component", ngImport: i0, template: "<form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field>\r\n <mat-chip-grid #chips [attr.aria-label]=\"''\" multiple required>\r\n @for (r of groups.value; track r) {\r\n <mat-chip-row\r\n (removed)=\"removeRole(r)\">\r\n {{titleOf(r)}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n }\r\n </mat-chip-grid>\r\n <input [placeholder]=\"'Roles'|translate\" required\r\n [formControl]=search\r\n #inputrole\r\n [matAutocomplete]=\"rolename\"\r\n [matChipInputFor]=\"chips\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\r\n <mat-autocomplete #rolename=\"matAutocomplete\" (optionSelected)=\"addRole(inputrole, $event)\">\r\n @for (r of roles; track r) {\r\n <mat-option [value]=\"r.name\">\r\n {{r.title || r.name}}\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n @if (form.controls.groups.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Roles'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n <bizdoc-localized-string formControlName=\"message\" [placeholder]=\"'Message'|translate\" class=\"flex column\" maxlength=\"400\"></bizdoc-localized-string>\r\n <mat-form-field>\r\n <mat-label>{{'InviteDue' | l18n}}</mat-label>\r\n <input matInput formControlName=\"due\"\r\n [matDatepicker]=\"duePicker\" />\r\n <mat-datepicker-toggle [for]=\"duePicker\" matSuffix></mat-datepicker-toggle>\r\n <mat-datepicker #duePicker></mat-datepicker>\r\n @if (form.controls.due.hasError('min')) {\r\n <mat-error [innerHTML]=\"'DateInPastErr'|translate\"></mat-error>\r\n }\r\n </mat-form-field>\r\n <mat-checkbox formControlName=\"oneTime\">{{'InviteOneTime'|l18n}}</mat-checkbox>\r\n <mat-selection-list formControlName=\"devices\" multiple>\r\n @for (d of devices; track d) {\r\n <mat-list-option [value]=\"d\">{{d|translate}}</mat-list-option>\r\n }\r\n </mat-selection-list>\r\n <button mat-raised-button color=\"primary\" (click)=\"send()\" [disabled]=\"!form.valid || working\">{{'Send'|l18n}}</button>\r\n </form>\r\n", styles: ["form{padding:8px}\n"], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i5.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i5.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i5.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "component", type: i6.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i6.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i6.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i7.MatSelectionList, selector: "mat-selection-list", inputs: ["color", "compareWith", "multiple", "hideSingleSelectionIndicator", "disabled"], outputs: ["selectionChange"], exportAs: ["matSelectionList"] }, { kind: "component", type: i7.MatListOption, selector: "mat-list-option", inputs: ["togglePosition", "checkboxPosition", "color", "value", "selected"], outputs: ["selectedChange"], exportAs: ["matListOption"] }, { kind: "component", type: i8.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i9.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i8.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i10.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i10.MatLabel, selector: "mat-label" }, { kind: "directive", type: i10.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i10.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i11.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i12.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i13.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: i14.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i15.LocalizedStringComponent, selector: "bizdoc-localized-string", inputs: ["class", "floatLabel", "value", "placeholder", "required", "disabled", "maxlength"] }, { kind: "pipe", type: i16.L18nPipe, name: "l18n" }, { kind: "pipe", type: i16.TranslatePipe, name: "translate" }] }); }
120
118
  }
121
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: FormInviteDialog, decorators: [{
119
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FormInviteDialog, decorators: [{
122
120
  type: Component,
123
- args: [{ template: "<form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\n <mat-form-field>\n <mat-chip-grid #chips [attr.aria-label]=\"''\" multiple required>\n @for (r of groups.value; track r) {\n <mat-chip-row\n (removed)=\"removeRole(r)\">\n {{titleOf(r)}}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip-row>\n }\n </mat-chip-grid>\n <input [placeholder]=\"'Roles'|translate\" required\n [formControl]=search\n #inputrole\n [matAutocomplete]=\"rolename\"\n [matChipInputFor]=\"chips\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\n <mat-autocomplete #rolename=\"matAutocomplete\" (optionSelected)=\"addRole(inputrole, $event)\">\n @for (r of roles; track r) {\n <mat-option [value]=\"r.name\">\n {{r.title || r.name}}\n </mat-option>\n }\n </mat-autocomplete>\n @if (form.controls.groups.hasError('required')) {\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Roles'|translate)\"></mat-error>\n }\n </mat-form-field>\n <bizdoc-localized-string formControlName=\"message\" [placeholder]=\"'Message'|translate\" class=\"flex column\" maxlength=\"400\"></bizdoc-localized-string>\n <mat-form-field>\n <mat-label>{{'InviteDue' | l18n}}</mat-label>\n <input matInput formControlName=\"due\"\n [matDatepicker]=\"duePicker\" />\n <mat-datepicker-toggle [for]=\"duePicker\" matSuffix></mat-datepicker-toggle>\n <mat-datepicker #duePicker></mat-datepicker>\n @if (form.controls.due.hasError('min')) {\n <mat-error [innerHTML]=\"'DateInPastErr'|translate\"></mat-error>\n }\n </mat-form-field>\n <mat-checkbox formControlName=\"oneTime\">{{'InviteOneTime'|l18n}}</mat-checkbox>\n <mat-selection-list formControlName=\"devices\" multiple>\n @for (d of devices; track d) {\n <mat-list-option [value]=\"d\">{{d|translate}}</mat-list-option>\n }\n </mat-selection-list>\n <button mat-raised-button color=\"primary\" (click)=\"send()\" [disabled]=\"!form.valid || working\">{{'Send'|l18n}}</button>\n </form>\n", styles: ["form{padding:8px}\n"] }]
121
+ args: [{ template: "<form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field>\r\n <mat-chip-grid #chips [attr.aria-label]=\"''\" multiple required>\r\n @for (r of groups.value; track r) {\r\n <mat-chip-row\r\n (removed)=\"removeRole(r)\">\r\n {{titleOf(r)}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n }\r\n </mat-chip-grid>\r\n <input [placeholder]=\"'Roles'|translate\" required\r\n [formControl]=search\r\n #inputrole\r\n [matAutocomplete]=\"rolename\"\r\n [matChipInputFor]=\"chips\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\r\n <mat-autocomplete #rolename=\"matAutocomplete\" (optionSelected)=\"addRole(inputrole, $event)\">\r\n @for (r of roles; track r) {\r\n <mat-option [value]=\"r.name\">\r\n {{r.title || r.name}}\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n @if (form.controls.groups.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Roles'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n <bizdoc-localized-string formControlName=\"message\" [placeholder]=\"'Message'|translate\" class=\"flex column\" maxlength=\"400\"></bizdoc-localized-string>\r\n <mat-form-field>\r\n <mat-label>{{'InviteDue' | l18n}}</mat-label>\r\n <input matInput formControlName=\"due\"\r\n [matDatepicker]=\"duePicker\" />\r\n <mat-datepicker-toggle [for]=\"duePicker\" matSuffix></mat-datepicker-toggle>\r\n <mat-datepicker #duePicker></mat-datepicker>\r\n @if (form.controls.due.hasError('min')) {\r\n <mat-error [innerHTML]=\"'DateInPastErr'|translate\"></mat-error>\r\n }\r\n </mat-form-field>\r\n <mat-checkbox formControlName=\"oneTime\">{{'InviteOneTime'|l18n}}</mat-checkbox>\r\n <mat-selection-list formControlName=\"devices\" multiple>\r\n @for (d of devices; track d) {\r\n <mat-list-option [value]=\"d\">{{d|translate}}</mat-list-option>\r\n }\r\n </mat-selection-list>\r\n <button mat-raised-button color=\"primary\" (click)=\"send()\" [disabled]=\"!form.valid || working\">{{'Send'|l18n}}</button>\r\n </form>\r\n", styles: ["form{padding:8px}\n"] }]
124
122
  }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.SystemService }, { type: i3.PromptService }, { type: i17.DesignerRef, decorators: [{
125
123
  type: Inject,
126
124
  args: [DesignerRef]
127
125
  }] }, { type: i4.PaneRef }] });
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1pbnZpdGUuZGlhbG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9hcmNoaXRlY3R1cmUvZWxlbWVudHMvZm9ybS1pbnZpdGUuZGlhbG9nLnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9hcmNoaXRlY3R1cmUvZWxlbWVudHMvZm9ybS1pbnZpdGUuZGlhbG9nLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSTlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFNOUQsTUFBTSxPQUNFLGdCQUFnQjtJQWlCdEIsWUFDVSxHQUFnQixFQUNoQixRQUF1QixFQUN2QixHQUFrQixFQUNHLElBQWlCLEVBQ3RDLEtBQWM7UUFKZCxRQUFHLEdBQUgsR0FBRyxDQUFhO1FBQ2hCLGFBQVEsR0FBUixRQUFRLENBQWU7UUFDdkIsUUFBRyxHQUFILEdBQUcsQ0FBZTtRQUNHLFNBQUksR0FBSixJQUFJLENBQWE7UUFDdEMsVUFBSyxHQUFMLEtBQUssQ0FBUztRQXJCZix1QkFBa0IsR0FBYSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDekQsV0FBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckQsWUFBTyxHQUFHLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQW1CLENBQUM7UUFDbkQsU0FBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO1lBQzdCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixPQUFPLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQWlCLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ3BFLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDakUsT0FBTyxFQUFFLEtBQUs7WUFDZCxPQUFPLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQVMsSUFBSSxDQUFDO1NBQ3hDLENBQUMsQ0FBQztRQUNLLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQUlyQyxXQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFTekMsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNsQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztnQkFDdEUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDUixJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUk7Z0JBQ1osS0FBSyxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO2FBQy9CLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDUCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDdEIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMxQixDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFTLEVBQUUsRUFBRTtZQUN2RSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQy9CLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUN2QyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNOLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDcEcsQ0FBQzs7Z0JBRUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3JFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNEOzs7T0FHRztJQUNILFVBQVUsQ0FBQyxFQUFVO1FBQ25CLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ2hDLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFaEMsSUFBSSxLQUFLLElBQUksQ0FBQztZQUNaLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFDRDs7OztPQUlHO0lBQ0gsT0FBTyxDQUFDLEdBQXFCLEVBQUUsS0FBbUM7UUFDaEUsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDaEMsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFlLENBQUM7UUFDeEMsSUFBSSxDQUFDLEtBQUs7WUFDUixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDeEIsQ0FBQztZQUNKLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixDQUFDO1FBQ0QsR0FBRyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBQ0QsSUFBSTtRQUNGLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUMxRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQztZQUMzRSxTQUFTLENBQUM7WUFDUixJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDckUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNyQixDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRTtnQkFDYixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNqQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUN2QixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNELE9BQU8sQ0FBQyxJQUFZO1FBQ2xCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsT0FBTyxJQUFJLEVBQUUsS0FBSyxJQUFJLElBQUksQ0FBQztJQUM3QixDQUFDOzhHQWxHSyxnQkFBZ0IsdUdBcUJaLFdBQVc7a0dBckJmLGdCQUFnQixvRENoQnhCLGlwRUErQ0E7OzJGRC9CUSxnQkFBZ0I7a0JBTHZCLFNBQVM7OzswQkEwQkwsTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ09NTUEsIEVOVEVSLCBTRU1JQ09MT04gfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2tleWNvZGVzXCI7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50IH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZVwiO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7IFByb21wdFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9wcm9tcHQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBQYW5lUmVmIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvc2xvdHMvcGFuZS1yZWZcIjtcclxuaW1wb3J0IHsgSW52aXRlRGV2aWNlLCBSb2xlLCBTeXN0ZW1TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3N5c3RlbS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERlc2lnbmVyUmVmLCBsb2NhbGl6ZVN0cmluZyB9IGZyb20gXCIuLi9kZWNsYXJhdGlvbnNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlVXJsOiAnZm9ybS1pbnZpdGUuZGlhbG9nLmh0bWwnLFxyXG4gIHN0eWxlczogW2Bmb3JtIHtwYWRkaW5nOiA4cHh9YF1cclxufSlcclxuZXhwb3J0XHJcbiAgY2xhc3MgRm9ybUludml0ZURpYWxvZyBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcmVhZG9ubHkgc2VwYXJhdG9yS2V5c0NvZGVzOiBudW1iZXJbXSA9IFtFTlRFUiwgQ09NTUEsIFNFTUlDT0xPTl07XHJcbiAgcmVhZG9ubHkgZ3JvdXBzID0gdGhpcy5fZmIuY29udHJvbChudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICByZWFkb25seSBkZXZpY2VzID0gWydTbXMnLCAnRW1haWwnLCAnSU0nXSBhcyBJbnZpdGVEZXZpY2VbXTtcclxuICByZWFkb25seSBmb3JtID0gdGhpcy5fZmIuZ3JvdXAoe1xyXG4gICAgZ3JvdXBzOiB0aGlzLmdyb3VwcyxcclxuICAgIGRldmljZXM6IHRoaXMuX2ZiLmNvbnRyb2w8SW52aXRlRGV2aWNlW10+KG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgZHVlOiB0aGlzLl9mYi5jb250cm9sKG51bGwsIFZhbGlkYXRvcnMubWluKG5ldyBEYXRlKCkuZ2V0VGltZSgpKSksXHJcbiAgICBvbmVUaW1lOiBmYWxzZSxcclxuICAgIG1lc3NhZ2U6IHRoaXMuX2ZiLmNvbnRyb2w8c3RyaW5nPihudWxsKVxyXG4gIH0pO1xyXG4gIHByaXZhdGUgX3NlYXJjaGNoYW5nZSA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcclxuICAvKiogYWxsIEJpekRvYyByb2xlcyBhbmQgdXNlciBncm91cHMgKi9cclxuICBwcml2YXRlIF9yb2xlczogUm9sZVtdO1xyXG4gIHJvbGVzOiBSb2xlW107XHJcbiAgcmVhZG9ubHkgc2VhcmNoID0gdGhpcy5fZmIuY29udHJvbChudWxsKTtcclxuICB3b3JraW5nOiBib29sZWFuO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSBfc2VydmljZTogU3lzdGVtU2VydmljZSxcclxuICAgIHByaXZhdGUgX3BzOiBQcm9tcHRTZXJ2aWNlLFxyXG4gICAgQEluamVjdChEZXNpZ25lclJlZikgcHJpdmF0ZSBfcmVmOiBEZXNpZ25lclJlZixcclxuICAgIHByaXZhdGUgX3BhbmU6IFBhbmVSZWZcclxuICApIHtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zZXJ2aWNlLnJvbGVzKCkuc3Vic2NyaWJlKHIgPT4ge1xyXG4gICAgICB0aGlzLl9yb2xlcyA9IHIuY29uY2F0KHRoaXMuX3JlZi5kZXNpZ25lci5yb2xlcy5maWx0ZXIociA9PiAhci5kaXNhYmxlZCkuXHJcbiAgICAgICAgbWFwKHIgPT4gKHtcclxuICAgICAgICAgIG5hbWU6IHIubmFtZSxcclxuICAgICAgICAgIHRpdGxlOiBsb2NhbGl6ZVN0cmluZyhyLnRpdGxlKVxyXG4gICAgICAgIH0pKSk7XHJcbiAgICAgIHRoaXMuX3JvbGVzLmZvckVhY2gociA9PiB7XHJcbiAgICAgICAgclsnX2luZGV4J10gPSAoci50aXRsZSB8fCByLm5hbWUpLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgdGhpcy5fcm9sZXNbci5uYW1lXSA9IHI7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnJvbGVzID0gdGhpcy5fcm9sZXMuc2xpY2UoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZWFyY2gudmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDE1MCkpLnN1YnNjcmliZSgodjogc3RyaW5nKSA9PiB7XHJcbiAgICAgIHRoaXMuX3NlYXJjaGNoYW5nZS5uZXh0KHYpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9zZWFyY2hjaGFuZ2Uuc3Vic2NyaWJlKHYgPT4ge1xyXG4gICAgICBjb25zdCBncm91cHMgPSB0aGlzLmdyb3Vwcy52YWx1ZSB8fCBbXTtcclxuICAgICAgaWYgKHYpIHtcclxuICAgICAgICBjb25zdCB2YWwgPSB2LnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgdGhpcy5yb2xlcyA9IHRoaXMuX3JvbGVzLmZpbHRlcihyID0+IHJbJ19pbmRleCddLmluZGV4T2YodmFsKSA+IC0xICYmIGdyb3Vwcy5pbmRleE9mKHIubmFtZSkgPCAwKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5yb2xlcyA9IHRoaXMuX3JvbGVzLmZpbHRlcihyID0+IGdyb3Vwcy5pbmRleE9mKHIubmFtZSkgPCAwKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gaWRcclxuICAgKi9cclxuICByZW1vdmVSb2xlKGlkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IHJvbGVzID0gdGhpcy5ncm91cHMudmFsdWU7XHJcbiAgICBjb25zdCBpbmRleCA9IHJvbGVzLmluZGV4T2YoaWQpO1xyXG5cclxuICAgIGlmIChpbmRleCA+PSAwKVxyXG4gICAgICByb2xlcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgdGhpcy5ncm91cHMuc2V0VmFsdWUocm9sZXMpO1xyXG4gICAgdGhpcy5fc2VhcmNoY2hhbmdlLm5leHQobnVsbCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBpbnBcclxuICAgKiBAcGFyYW0gZXZlbnRcclxuICAgKi9cclxuICBhZGRSb2xlKGlucDogSFRNTElucHV0RWxlbWVudCwgZXZlbnQ6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IHJvbGVzID0gdGhpcy5ncm91cHMudmFsdWU7XHJcbiAgICBjb25zdCBpZCA9IGV2ZW50Lm9wdGlvbi52YWx1ZSBhcyBzdHJpbmc7XHJcbiAgICBpZiAoIXJvbGVzKVxyXG4gICAgICB0aGlzLmdyb3Vwcy5zZXRWYWx1ZShbaWRdKTtcclxuICAgIGVsc2Uge1xyXG4gICAgICByb2xlcy5wdXNoKGlkKTtcclxuICAgICAgdGhpcy5ncm91cHMuc2V0VmFsdWUocm9sZXMpO1xyXG4gICAgfVxyXG4gICAgaW5wLnZhbHVlID0gJyc7XHJcbiAgICB0aGlzLnNlYXJjaC5zZXRWYWx1ZShudWxsKTtcclxuICB9XHJcbiAgc2VuZCgpIHtcclxuICAgIGNvbnN0IHsgZ3JvdXBzLCBkZXZpY2VzLCBtZXNzYWdlLCBkdWUgfSA9IHRoaXMuZm9ybS52YWx1ZTtcclxuICAgIHRoaXMud29ya2luZyA9IHRydWU7XHJcbiAgICB0aGlzLl9zZXJ2aWNlLmludml0ZSh0aGlzLl9yZWYubW9kZWwubmFtZSwgeyBncm91cHMsIG1lc3NhZ2UsIGRldmljZXMsIGR1ZSB9KS5cclxuICAgICAgc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiBlID0+IHtcclxuICAgICAgICAgIHRoaXMuX3BzLnRvYXN0KGUub2sgPyAnSW52aXRhdGlvbnNTZW50JyA6ICdOb0ludml0YXRpb25zU2VudCcsIGUub2spO1xyXG4gICAgICAgICAgdGhpcy5fcGFuZS5jbG9zZSgpO1xyXG4gICAgICAgIH0sIGVycm9yOiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9wcy5lcnJvcigpO1xyXG4gICAgICAgICAgdGhpcy53b3JraW5nID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgdGl0bGVPZihuYW1lOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHJvbGUgPSB0aGlzLl9yb2xlc1tuYW1lXTtcclxuICAgIHJldHVybiByb2xlPy50aXRsZSB8fCBuYW1lO1xyXG4gIH1cclxufVxyXG4iLCI8Zm9ybSBhdXRvY29tcGxldGU9XCJvZmZcIiBbZm9ybUdyb3VwXT1cImZvcm1cIiBjbGFzcz1cImNvbHVtblwiPlxuICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgPG1hdC1jaGlwLWdyaWQgI2NoaXBzIFthdHRyLmFyaWEtbGFiZWxdPVwiJydcIiBtdWx0aXBsZSByZXF1aXJlZD5cbiAgICAgIEBmb3IgKHIgb2YgZ3JvdXBzLnZhbHVlOyB0cmFjayByKSB7XG4gICAgICAgIDxtYXQtY2hpcC1yb3dcbiAgICAgICAgICAocmVtb3ZlZCk9XCJyZW1vdmVSb2xlKHIpXCI+XG4gICAgICAgICAge3t0aXRsZU9mKHIpfX1cbiAgICAgICAgICA8bWF0LWljb24gbWF0Q2hpcFJlbW92ZT5jYW5jZWw8L21hdC1pY29uPlxuICAgICAgICA8L21hdC1jaGlwLXJvdz5cbiAgICAgIH1cbiAgICA8L21hdC1jaGlwLWdyaWQ+XG4gICAgPGlucHV0IFtwbGFjZWhvbGRlcl09XCInUm9sZXMnfHRyYW5zbGF0ZVwiIHJlcXVpcmVkXG4gICAgICBbZm9ybUNvbnRyb2xdPXNlYXJjaFxuICAgICAgI2lucHV0cm9sZVxuICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJyb2xlbmFtZVwiXG4gICAgICBbbWF0Q2hpcElucHV0Rm9yXT1cImNoaXBzXCJcbiAgICAgIFttYXRDaGlwSW5wdXRTZXBhcmF0b3JLZXlDb2Rlc109XCJzZXBhcmF0b3JLZXlzQ29kZXNcIj5cbiAgICAgIDxtYXQtYXV0b2NvbXBsZXRlICNyb2xlbmFtZT1cIm1hdEF1dG9jb21wbGV0ZVwiIChvcHRpb25TZWxlY3RlZCk9XCJhZGRSb2xlKGlucHV0cm9sZSwgJGV2ZW50KVwiPlxuICAgICAgICBAZm9yIChyIG9mIHJvbGVzOyB0cmFjayByKSB7XG4gICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cInIubmFtZVwiPlxuICAgICAgICAgICAge3tyLnRpdGxlIHx8IHIubmFtZX19XG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICB9XG4gICAgICA8L21hdC1hdXRvY29tcGxldGU+XG4gICAgICBAaWYgKGZvcm0uY29udHJvbHMuZ3JvdXBzLmhhc0Vycm9yKCdyZXF1aXJlZCcpKSB7XG4gICAgICAgIDxtYXQtZXJyb3IgW2lubmVySFRNTF09XCInUmVxdWlyZWRFcnInfHRyYW5zbGF0ZTooJ1JvbGVzJ3x0cmFuc2xhdGUpXCI+PC9tYXQtZXJyb3I+XG4gICAgICB9XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8Yml6ZG9jLWxvY2FsaXplZC1zdHJpbmcgZm9ybUNvbnRyb2xOYW1lPVwibWVzc2FnZVwiIFtwbGFjZWhvbGRlcl09XCInTWVzc2FnZSd8dHJhbnNsYXRlXCIgY2xhc3M9XCJmbGV4IGNvbHVtblwiIG1heGxlbmd0aD1cIjQwMFwiPjwvYml6ZG9jLWxvY2FsaXplZC1zdHJpbmc+XG4gICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgPG1hdC1sYWJlbD57eydJbnZpdGVEdWUnIHwgbDE4bn19PC9tYXQtbGFiZWw+XG4gICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZHVlXCJcbiAgICAgICAgW21hdERhdGVwaWNrZXJdPVwiZHVlUGlja2VyXCIgLz5cbiAgICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBbZm9yXT1cImR1ZVBpY2tlclwiIG1hdFN1ZmZpeD48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cbiAgICAgICAgPG1hdC1kYXRlcGlja2VyICNkdWVQaWNrZXI+PC9tYXQtZGF0ZXBpY2tlcj5cbiAgICAgICAgQGlmIChmb3JtLmNvbnRyb2xzLmR1ZS5oYXNFcnJvcignbWluJykpIHtcbiAgICAgICAgICA8bWF0LWVycm9yIFtpbm5lckhUTUxdPVwiJ0RhdGVJblBhc3RFcnInfHRyYW5zbGF0ZVwiPjwvbWF0LWVycm9yPlxuICAgICAgICB9XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgPG1hdC1jaGVja2JveCBmb3JtQ29udHJvbE5hbWU9XCJvbmVUaW1lXCI+e3snSW52aXRlT25lVGltZSd8bDE4bn19PC9tYXQtY2hlY2tib3g+XG4gICAgICA8bWF0LXNlbGVjdGlvbi1saXN0IGZvcm1Db250cm9sTmFtZT1cImRldmljZXNcIiBtdWx0aXBsZT5cbiAgICAgICAgQGZvciAoZCBvZiBkZXZpY2VzOyB0cmFjayBkKSB7XG4gICAgICAgICAgPG1hdC1saXN0LW9wdGlvbiBbdmFsdWVdPVwiZFwiPnt7ZHx0cmFuc2xhdGV9fTwvbWF0LWxpc3Qtb3B0aW9uPlxuICAgICAgICB9XG4gICAgICA8L21hdC1zZWxlY3Rpb24tbGlzdD5cbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cInNlbmQoKVwiIFtkaXNhYmxlZF09XCIhZm9ybS52YWxpZCB8fCB3b3JraW5nXCI+e3snU2VuZCd8bDE4bn19PC9idXR0b24+XG4gICAgPC9mb3JtPlxuIl19
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1pbnZpdGUuZGlhbG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2FkbWluL2FyY2hpdGVjdHVyZS9lbGVtZW50cy9mb3JtLWludml0ZS5kaWFsb2cudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvYWRtaW4vYXJjaGl0ZWN0dXJlL2VsZW1lbnRzL2Zvcm0taW52aXRlLmRpYWxvZy5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBZSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUk5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTTlELE1BQU0sT0FDSSxnQkFBZ0I7SUFrQnRCLFlBQ1ksR0FBZ0IsRUFDaEIsUUFBdUIsRUFDdkIsR0FBa0IsRUFDRyxJQUFpQixFQUN0QyxLQUFjO1FBSmQsUUFBRyxHQUFILEdBQUcsQ0FBYTtRQUNoQixhQUFRLEdBQVIsUUFBUSxDQUFlO1FBQ3ZCLFFBQUcsR0FBSCxHQUFHLENBQWU7UUFDRyxTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ3RDLFVBQUssR0FBTCxLQUFLLENBQVM7UUF0QmpCLHVCQUFrQixHQUFhLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN6RCxXQUFNLEdBQUcsSUFBSSxDQUFDLEdB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Uzs7OzBCQTJCRCxNQUFNOzJCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDT01NQSwgRU5URVIsIFNFTUlDT0xPTiB9IGZyb20gXCJAYW5ndWxhci9jZGsva2V5Y29kZXNcIjtcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlXCI7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL3Byb21wdC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFBhbmVSZWYgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9zbG90cy9wYW5lLXJlZlwiO1xyXG5pbXBvcnQgeyBJbnZpdGVEZXZpY2UsIFJvbGUsIFN5c3RlbVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc3lzdGVtLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRGVzaWduZXJSZWYsIGxvY2FsaXplU3RyaW5nIH0gZnJvbSBcIi4uL2RlY2xhcmF0aW9uc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICB0ZW1wbGF0ZVVybDogJ2Zvcm0taW52aXRlLmRpYWxvZy5odG1sJyxcclxuICAgIHN0eWxlczogW2Bmb3JtIHtwYWRkaW5nOiA4cHh9YF1cclxufSlcclxuZXhwb3J0XHJcbiAgICBjbGFzcyBGb3JtSW52aXRlRGlhbG9nIGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIHJlYWRvbmx5IHNlcGFyYXRvcktleXNDb2RlczogbnVtYmVyW10gPSBbRU5URVIsIENPTU1BLCBTRU1JQ09MT05dO1xyXG4gICAgcmVhZG9ubHkgZ3JvdXBzID0gdGhpcy5fZmIuY29udHJvbDxzdHJpbmdbXT4oW10sIFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgcmVhZG9ubHkgZGV2aWNlcyA9IFsnU21zJywgJ0VtYWlsJywgJ0lNJ10gYXMgSW52aXRlRGV2aWNlW107XHJcbiAgICByZWFkb25seSBmb3JtID0gdGhpcy5fZmIuZ3JvdXAoe1xyXG4gICAgICAgIGdyb3VwczogdGhpcy5ncm91cHMsXHJcbiAgICAgICAgZGV2aWNlczogdGhpcy5fZmIuY29udHJvbDxJbnZpdGVEZXZpY2VbXT4oW10sIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgICAgIGR1ZTogdGhpcy5fZmIuY29udHJvbDxEYXRlIHwgbnVsbD4obnVsbCwgVmFsaWRhdG9ycy5taW4obmV3IERhdGUoKS5nZXRUaW1lKCkpKSxcclxuICAgICAgICBvbmVUaW1lOiBmYWxzZSxcclxuICAgICAgICBtZXNzYWdlOiB0aGlzLl9mYi5jb250cm9sPHN0cmluZyB8IG51bGw+KG51bGwpXHJcbiAgICB9KTtcclxuICAgIHByaXZhdGUgX3NlYXJjaGNoYW5nZSA9IG5ldyBTdWJqZWN0PHN0cmluZyB8IG51bGw+KCk7XHJcbiAgICAvKiogYWxsIEJpekRvYyByb2xlcyBhbmQgdXNlciBncm91cHMgKi9cclxuICAgIHByaXZhdGUgX3JvbGVzOiBSb2xlW10gfCB7IFtrZXk6IHN0cmluZ106IFJvbGUgfVxyXG4gICAgICAgIDtcclxuICAgIHJvbGVzOiBSb2xlW107XHJcbiAgICByZWFkb25seSBzZWFyY2ggPSB0aGlzLl9mYi5jb250cm9sKG51bGwpO1xyXG4gICAgd29ya2luZzogYm9vbGVhbjtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgX2ZiOiBGb3JtQnVpbGRlcixcclxuICAgICAgICBwcml2YXRlIF9zZXJ2aWNlOiBTeXN0ZW1TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX3BzOiBQcm9tcHRTZXJ2aWNlLFxyXG4gICAgICAgIEBJbmplY3QoRGVzaWduZXJSZWYpIHByaXZhdGUgX3JlZjogRGVzaWduZXJSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSBfcGFuZTogUGFuZVJlZlxyXG4gICAgKSB7XHJcbiAgICB9XHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9zZXJ2aWNlLnJvbGVzKCkuc3Vic2NyaWJlKHIgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9yb2xlcyA9IHIuY29uY2F0KHRoaXMuX3JlZi5kZXNpZ25lci5yb2xlcy5maWx0ZXIociA9PiAhci5kaXNhYmxlZCkuXHJcbiAgICAgICAgICAgICAgICBtYXAociA9PiAoe1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IHIubmFtZSxcclxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogbG9jYWxpemVTdHJpbmcoci50aXRsZSlcclxuICAgICAgICAgICAgICAgIH0pIGFzIFJvbGUpKTtcclxuICAgICAgICAgICAgdGhpcy5fcm9sZXMuZm9yRWFjaChyID0+IHtcclxuICAgICAgICAgICAgICAgIChyIGFzIGFueSlbJ19pbmRleCddID0gKHIudGl0bGUgfHwgci5uYW1lKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgICAgICAgICAgKHRoaXMuX3JvbGVzIGFzIGFueSlbci5uYW1lXSA9IHI7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLnJvbGVzID0gdGhpcy5fcm9sZXMuc2xpY2UoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnNlYXJjaC52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoMTUwKSkuc3Vic2NyaWJlKHYgPT5cclxuICAgICAgICAgICAgdGhpcy5fc2VhcmNoY2hhbmdlLm5leHQodilcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuX3NlYXJjaGNoYW5nZS5zdWJzY3JpYmUodiA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwcyA9IHRoaXMuZ3JvdXBzLnZhbHVlIHx8IFtdIGFzIHN0cmluZ1tdO1xyXG4gICAgICAgICAgICBpZiAodikge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdmFsID0gdi50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yb2xlcyA9ICh0aGlzLl9yb2xlcyBhcyBSb2xlW10pLmZpbHRlcihyID0+IChyIGFzIGFueSlbJ19pbmRleCddLmluZGV4T2YodmFsKSA+IC0xICYmIGdyb3Vwcy5pbmRleE9mKHIubmFtZSkgPCAwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICB0aGlzLnJvbGVzID0gKHRoaXMuX3JvbGVzIGFzIFJvbGVbXSkuZmlsdGVyKHIgPT4gZ3JvdXBzLmluZGV4T2Yoci5uYW1lKSA8IDApO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSBpZFxyXG4gICAgICovXHJcbiAgICByZW1vdmVSb2xlKGlkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCByb2xlcyA9IHRoaXMuZ3JvdXBzLnZhbHVlISBhcyBzdHJpbmdbXTtcclxuICAgICAgICBjb25zdCBpbmRleCA9IHJvbGVzLmluZGV4T2YoaWQpO1xyXG5cclxuICAgICAgICBpZiAoaW5kZXggPj0gMClcclxuICAgICAgICAgICAgcm9sZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB0aGlzLmdyb3Vwcy5zZXRWYWx1ZShyb2xlcyk7XHJcbiAgICAgICAgdGhpcy5fc2VhcmNoY2hhbmdlLm5leHQobnVsbCk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIGlucFxyXG4gICAgICogQHBhcmFtIGV2ZW50XHJcbiAgICAgKi9cclxuICAgIGFkZFJvbGUoaW5wOiBIVE1MSW5wdXRFbGVtZW50LCBldmVudDogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHJvbGVzID0gdGhpcy5ncm91cHMudmFsdWU7XHJcbiAgICAgICAgY29uc3QgaWQgPSBldmVudC5vcHRpb24udmFsdWUgYXMgc3RyaW5nO1xyXG4gICAgICAgIGlmICghcm9sZXMpXHJcbiAgICAgICAgICAgIHRoaXMuZ3JvdXBzLnNldFZhbHVlKFtpZF0pO1xyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICByb2xlcy5wdXNoKGlkKTtcclxuICAgICAgICAgICAgdGhpcy5ncm91cHMuc2V0VmFsdWUocm9sZXMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpbnAudmFsdWUgPSAnJztcclxuICAgICAgICB0aGlzLnNlYXJjaC5zZXRWYWx1ZShudWxsKTtcclxuICAgIH1cclxuICAgIHNlbmQoKSB7XHJcbiAgICAgICAgY29uc3QgeyBncm91cHMsIGRldmljZXMsIG1lc3NhZ2UsIGR1ZSB9ID0gdGhpcy5mb3JtLnZhbHVlO1xyXG4gICAgICAgIHRoaXMud29ya2luZyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5fc2VydmljZS5pbnZpdGUodGhpcy5fcmVmLm1vZGVsLm5hbWUsIHsgZ3JvdXBzOiBncm91cHMgYXMgc3RyaW5nW10sIG1lc3NhZ2UsIGRldmljZXM6IGRldmljZXMgYXMgSW52aXRlRGV2aWNlW10sIGR1ZSB9KS5cclxuICAgICAgICAgICAgc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgICAgIG5leHQ6IGUgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3BzLnRvYXN0KGUub2sgPyAnSW52aXRhdGlvbnNTZW50JyA6ICdOb0ludml0YXRpb25zU2VudCcsIGUub2spO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3BhbmUuY2xvc2UoKTtcclxuICAgICAgICAgICAgICAgIH0sIGVycm9yOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcHMuZXJyb3IoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLndvcmtpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICB0aXRsZU9mKG5hbWU6IHN0cmluZykge1xyXG4gICAgICAgIGNvbnN0IHJvbGUgPSAodGhpcy5fcm9sZXMgYXMgYW55KVtuYW1lXTtcclxuICAgICAgICByZXR1cm4gcm9sZT8udGl0bGUgfHwgbmFtZTtcclxuICAgIH1cclxufVxyXG4iLCI8Zm9ybSBhdXRvY29tcGxldGU9XCJvZmZcIiBbZm9ybUdyb3VwXT1cImZvcm1cIiBjbGFzcz1cImNvbHVtblwiPlxyXG4gIDxtYXQtZm9ybS1maWVsZD5cclxuICAgIDxtYXQtY2hpcC1ncmlkICNjaGlwcyBbYXR0ci5hcmlhLWxhYmVsXT1cIicnXCIgbXVsdGlwbGUgcmVxdWlyZWQ+XHJcbiAgICAgIEBmb3IgKHIgb2YgZ3JvdXBzLnZhbHVlOyB0cmFjayByKSB7XHJcbiAgICAgICAgPG1hdC1jaGlwLXJvd1xyXG4gICAgICAgICAgKHJlbW92ZWQpPVwicmVtb3ZlUm9sZShyKVwiPlxyXG4gICAgICAgICAge3t0aXRsZU9mKHIpfX1cclxuICAgICAgICAgIDxtYXQtaWNvbiBtYXRDaGlwUmVtb3ZlPmNhbmNlbDwvbWF0LWljb24+XHJcbiAgICAgICAgPC9tYXQtY2hpcC1yb3c+XHJcbiAgICAgIH1cclxuICAgIDwvbWF0LWNoaXAtZ3JpZD5cclxuICAgIDxpbnB1dCBbcGxhY2Vob2xkZXJdPVwiJ1JvbGVzJ3x0cmFuc2xhdGVcIiByZXF1aXJlZFxyXG4gICAgICBbZm9ybUNvbnRyb2xdPXNlYXJjaFxyXG4gICAgICAjaW5wdXRyb2xlXHJcbiAgICAgIFttYXRBdXRvY29tcGxldGVdPVwicm9sZW5hbWVcIlxyXG4gICAgICBbbWF0Q2hpcElucHV0Rm9yXT1cImNoaXBzXCJcclxuICAgICAgW21hdENoaXBJbnB1dFNlcGFyYXRvcktleUNvZGVzXT1cInNlcGFyYXRvcktleXNDb2Rlc1wiPlxyXG4gICAgICA8bWF0LWF1dG9jb21wbGV0ZSAjcm9sZW5hbWU9XCJtYXRBdXRvY29tcGxldGVcIiAob3B0aW9uU2VsZWN0ZWQpPVwiYWRkUm9sZShpbnB1dHJvbGUsICRldmVudClcIj5cclxuICAgICAgICBAZm9yIChyIG9mIHJvbGVzOyB0cmFjayByKSB7XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwici5uYW1lXCI+XHJcbiAgICAgICAgICAgIHt7ci50aXRsZSB8fCByLm5hbWV9fVxyXG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIH1cclxuICAgICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxyXG4gICAgICBAaWYgKGZvcm0uY29udHJvbHMuZ3JvdXBzLmhhc0Vycm9yKCdyZXF1aXJlZCcpKSB7XHJcbiAgICAgICAgPG1hdC1lcnJvciBbaW5uZXJIVE1MXT1cIidSZXF1aXJlZEVycid8dHJhbnNsYXRlOignUm9sZXMnfHRyYW5zbGF0ZSlcIj48L21hdC1lcnJvcj5cclxuICAgICAgfVxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDxiaXpkb2MtbG9jYWxpemVkLXN0cmluZyBmb3JtQ29udHJvbE5hbWU9XCJtZXNzYWdlXCIgW3BsYWNlaG9sZGVyXT1cIidNZXNzYWdlJ3x0cmFuc2xhdGVcIiBjbGFzcz1cImZsZXggY29sdW1uXCIgbWF4bGVuZ3RoPVwiNDAwXCI+PC9iaXpkb2MtbG9jYWxpemVkLXN0cmluZz5cclxuICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgPG1hdC1sYWJlbD57eydJbnZpdGVEdWUnIHwgbDE4bn19PC9tYXQtbGFiZWw+XHJcbiAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJkdWVcIlxyXG4gICAgICAgIFttYXREYXRlcGlja2VyXT1cImR1ZVBpY2tlclwiIC8+XHJcbiAgICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBbZm9yXT1cImR1ZVBpY2tlclwiIG1hdFN1ZmZpeD48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cclxuICAgICAgICA8bWF0LWRhdGVwaWNrZXIgI2R1ZVBpY2tlcj48L21hdC1kYXRlcGlja2VyPlxyXG4gICAgICAgIEBpZiAoZm9ybS5jb250cm9scy5kdWUuaGFzRXJyb3IoJ21pbicpKSB7XHJcbiAgICAgICAgICA8bWF0LWVycm9yIFtpbm5lckhUTUxdPVwiJ0RhdGVJblBhc3RFcnInfHRyYW5zbGF0ZVwiPjwvbWF0LWVycm9yPlxyXG4gICAgICAgIH1cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgPG1hdC1jaGVja2JveCBmb3JtQ29udHJvbE5hbWU9XCJvbmVUaW1lXCI+e3snSW52aXRlT25lVGltZSd8bDE4bn19PC9tYXQtY2hlY2tib3g+XHJcbiAgICAgIDxtYXQtc2VsZWN0aW9uLWxpc3QgZm9ybUNvbnRyb2xOYW1lPVwiZGV2aWNlc1wiIG11bHRpcGxlPlxyXG4gICAgICAgIEBmb3IgKGQgb2YgZGV2aWNlczsgdHJhY2sgZCkge1xyXG4gICAgICAgICAgPG1hdC1saXN0LW9wdGlvbiBbdmFsdWVdPVwiZFwiPnt7ZHx0cmFuc2xhdGV9fTwvbWF0LWxpc3Qtb3B0aW9uPlxyXG4gICAgICAgIH1cclxuICAgICAgPC9tYXQtc2VsZWN0aW9uLWxpc3Q+XHJcbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cInNlbmQoKVwiIFtkaXNhYmxlZF09XCIhZm9ybS52YWxpZCB8fCB3b3JraW5nXCI+e3snU2VuZCd8bDE4bn19PC9idXR0b24+XHJcbiAgICA8L2Zvcm0+XHJcbiJdfQ==
@@ -2,7 +2,7 @@ import { Component, Inject, Injector } from "@angular/core";
2
2
  import { Validators } from "@angular/forms";
3
3
  import { debounceTime, Subject, takeUntil } from "rxjs";
4
4
  import { DesignerTypeElementComponent } from "../designer.base";
5
- import { DesignerRef, localizeString, programName } from "../declarations";
5
+ import { DesignerRef, localizeString } from "../declarations";
6
6
  import { FormInviteDialog } from "./form-invite.dialog";
7
7
  import { OpenPolicy } from "../../../core/configuration";
8
8
  import { Internationalization } from "@syncfusion/ej2-base";
@@ -38,14 +38,14 @@ export class FormDesignComponent extends DesignerTypeElementComponent {
38
38
  this._translate = _translate;
39
39
  this.rules = this._fb.array([]);
40
40
  this.format = this._fb.group({
41
- prefix: null,
42
- suffix: null,
43
- digits: null
41
+ prefix: this._fb.control(null),
42
+ suffix: this._fb.control(null),
43
+ digits: this._fb.control(null)
44
44
  });
45
45
  this.form = this._fb.group({
46
46
  rules: this.rules,
47
47
  guide: null,
48
- format: null,
48
+ format: this._fb.control(null),
49
49
  group: null,
50
50
  description: null,
51
51
  cubes: null
@@ -100,7 +100,7 @@ export class FormDesignComponent extends DesignerTypeElementComponent {
100
100
  });
101
101
  }
102
102
  this.format.valueChanges.pipe(debounceTime(150)).subscribe(f => {
103
- let format = f.prefix || localizeString(this.model.title);
103
+ let format = f.prefix || this.model.name.charAt(0);
104
104
  if (f.digits)
105
105
  format += `{0:D${f.digits}}`;
106
106
  if (f.suffix)
@@ -113,14 +113,13 @@ export class FormDesignComponent extends DesignerTypeElementComponent {
113
113
  this.guides = this._ref.designer.guides;
114
114
  this.cubes = this._ref.designer.cubes;
115
115
  }
116
- super.ngOnInit();
117
116
  }
118
117
  tooltipInitialize(evt) {
119
118
  evt.text = [this._intl.formatDate(this._intl.parseDate(evt.text[0], { format: 'EEE MMM dd yyyy' }))];
120
119
  }
121
120
  newRule(rule) {
122
121
  const name = this._fb.control(rule?.name, Validators.required), title = this._fb.control(rule?.title);
123
- !rule && title.valueChanges.subscribe(v => name.setValue(programName(v)));
122
+ !rule && title.valueChanges.subscribe(v => v && name.setValue(v));
124
123
  return this._fb.group({
125
124
  name,
126
125
  title,
@@ -129,7 +128,7 @@ export class FormDesignComponent extends DesignerTypeElementComponent {
129
128
  });
130
129
  }
131
130
  invite() {
132
- this._router.navigate(FormInviteDialog, {
131
+ return this._router.navigate(FormInviteDialog, {
133
132
  policy: OpenPolicy.Dialog,
134
133
  icon: this.model.icon,
135
134
  title: localizeString(this.model.title),
@@ -144,14 +143,14 @@ export class FormDesignComponent extends DesignerTypeElementComponent {
144
143
  this._destroy.next();
145
144
  this._destroy.complete();
146
145
  }
147
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: FormDesignComponent, deps: [{ token: i1.FormBuilder }, { token: i2.PanesRouter }, { token: i3.SystemService }, { token: i4.SessionService }, { token: i0.Injector }, { token: i5.TranslateService }, { token: i0.ElementRef }, { token: DesignerRef }], target: i0.ɵɵFactoryTarget.Component }); }
148
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: FormDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\" [icon]=\"true\" [context]=\"context\">\n <ng-template bizdocContent>\n @if (usage) {\n <ejs-sparkline width='250px' height='200px'\n type=\"Line\"\n [id]=\"model.name\"\n [fill]=\"primary\"\n [dataSource]=\"usage\"\n xName=\"date\"\n yName=\"count\"\n lineWidth=\"2\"\n valueType=\"DateTime\"\n [locale]=\"locale\"\n [markerSettings]=\"markerSettings\"\n [tooltipSettings]=\"tooltipSettings\"\n (tooltipInitialize)=\"tooltipInitialize($event)\"\n [enableRtl]=\"enableRtl\">\n </ejs-sparkline>\n }\n <div class=\"row\">\n <button mat-icon-button (click)=\"diagram()\" [bizdocTooltip]=\"'Workflow'|translate\" [disabled]=\"model.draft\"><mat-icon>schema</mat-icon></button>\n <span class=\"divider\"></span>\n <button mat-icon-button [matMenuTriggerFor]=\"options\" [disabled]=\"model.draft\"><mat-icon>more_vert</mat-icon></button>\n <mat-menu #options>\n <button mat-menu-item (click)=\"invite()\">{{'Invite'|l18n}}</button>\n </mat-menu>\n </div>\n </ng-template>\n <!--edit-->\n <ng-template bizdocEditContent>\n <ng-container [formGroup]=\"form\">\n <div class=\"row flex\" [formGroup]=\"format\">\n <mat-form-field>\n <mat-label>{{'Prefix'|translate}}</mat-label>\n <input matInput formControlName=\"prefix\" />\n </mat-form-field>\n &nbsp;\n <mat-form-field class=\"flex\">\n <mat-label>{{'Digits'|translate}}</mat-label>\n <input matInput formControlName=\"digits\" maxlength=\"2\" />\n </mat-form-field>\n &nbsp;\n <mat-form-field>\n <mat-label>{{'Suffix'|translate}}</mat-label>\n <input matInput formControlName=\"suffix\" />\n </mat-form-field>\n </div>\n <bizdoc-localized-string formControlName=\"group\" [placeholder]=\"'Group'|translate\"></bizdoc-localized-string>\n <bizdoc-localized-string formControlName=\"description\" [placeholder]=\"'Description'|translate\"></bizdoc-localized-string>\n @if (guides.length) {\n <mat-form-field>\n <mat-label>{{'Guide'|translate}}</mat-label>\n <mat-select formControlName=\"guide\">\n <mat-option>{{'None'|translate}}</mat-option>\n @for (g of guides; track g) {\n <mat-option [value]=\"g.name\">{{g.title |localizedString}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n @if (cubes.length) {\n <mat-form-field>\n <mat-label>{{'Cube'|translate}}</mat-label>\n <mat-select formControlName=\"cubes\" multiple>\n @for (c of cubes; track c) {\n <mat-option [value]=\"c.name\">{{c.title |localizedString}}</mat-option>\n }\n </mat-select>\n <mat-hint>{{'FormCubeHelp'|translate}}</mat-hint>\n </mat-form-field>\n }\n <!--Rules-->\n <h2 class=\"mat-h2 row\">\n {{'Rules'|translate}}\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"add(rules, newRule(), 'Rule', 'rule')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\n </h2>\n <table formArrayName=\"rules\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, rules)\">\n @for (r of rules.controls; track r; let index = $index) {\n <tr class=\"mat-mdc-row\" [formGroup]=\"r\" cdkDrag>\n <td class=\"mat-mdc-cell\">\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\n </td>\n <td class=\"mat-mdc-cell flex\" width=\"99%\">\n {{r.controls.title.value}}\n </td>\n <td class=\"mat-mdc-cell\" style=\"white-space: pre;\">\n <button mat-icon-button (click)=\"edit(r, 'Rule', 'rule')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\n <button mat-icon-button (click)=\"rules.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\n </td>\n </tr>\n }\n </table>\n </ng-container>\n </ng-template>\n <ng-template bizdocCustomContent=\"rule\" let-form=\"form\">\n <ng-container [formGroup]=\"form\">\n <div class=\"row\">\n <mat-form-field class=\"flex\">\n <mat-label>{{'Title'|translate}}</mat-label>\n <input matInput formControlName=\"title\" required />\n @if (form.controls.title.hasError('required')) {\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\n }\n </mat-form-field>\n &nbsp;\n <mat-form-field class=\"flex\">\n <mat-label>{{'Name'|translate}}</mat-label>\n <input matInput formControlName=\"name\" required />\n @if (form.controls.name.hasError('required')) {\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\n }\n </mat-form-field>\n </div>\n <bizdoc-designer-privileges [form]=\"form\"></bizdoc-designer-privileges>\n </ng-container>\n </ng-template>\n</bizdoc-designer-element>\n", dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { 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: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i6.SparklineComponent, selector: "ejs-sparkline", inputs: ["axisSettings", "border", "containerArea", "dataLabelSettings", "dataSource", "enablePersistence", "enableRtl", "endPointColor", "fill", "format", "height", "highPointColor", "lineWidth", "locale", "lowPointColor", "markerSettings", "negativePointColor", "opacity", "padding", "palette", "query", "rangeBandSettings", "rangePadding", "startPointColor", "theme", "tiePointColor", "tooltipSettings", "type", "useGroupingSeparator", "valueType", "width", "xName", "yName"], outputs: ["axisRendering", "dataLabelRendering", "load", "loaded", "markerRendering", "pointRegionMouseClick", "pointRegionMouseMove", "pointRendering", "resize", "seriesRendering", "sparklineMouseClick", "sparklineMouseMove", "tooltipInitialize"] }, { kind: "directive", type: i7.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i7.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i7.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i8.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatLabel, selector: "mat-label" }, { kind: "directive", type: i9.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i9.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i10.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i11.MatIconButton, selector: "button[mat-icon-button]", 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.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i14.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i14.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i15.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: i16.LocalizedStringComponent, selector: "bizdoc-localized-string", inputs: ["class", "floatLabel", "value", "placeholder", "required", "disabled", "maxlength"] }, { kind: "component", type: i17.DesignerPrivilegesComponent, selector: "bizdoc-designer-privileges", inputs: ["form"] }, { kind: "directive", type: i18.CustomContentDirective, selector: "[bizdocCustomContent]", inputs: ["bizdocCustomContent"] }, { kind: "directive", type: i18.EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "directive", type: i18.WidgetContentDirective, selector: "[bizdocContent]" }, { kind: "component", type: i18.DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "context"], outputs: ["save", "continue"] }, { kind: "pipe", type: i19.LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: i20.L18nPipe, name: "l18n" }, { kind: "pipe", type: i20.TranslatePipe, name: "translate" }] }); }
146
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FormDesignComponent, deps: [{ token: i1.FormBuilder }, { token: i2.PanesRouter }, { token: i3.SystemService }, { token: i4.SessionService }, { token: i0.Injector }, { token: i5.TranslateService }, { token: i0.ElementRef }, { token: DesignerRef }], target: i0.ɵɵFactoryTarget.Component }); }
147
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.4", type: FormDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\" [icon]=\"true\" [context]=\"context\">\r\n <ng-template bizdocContent>\r\n @if (usage) {\r\n <ejs-sparkline width='250px' height='200px'\r\n type=\"Line\"\r\n [id]=\"model.name\"\r\n [fill]=\"primary\"\r\n [dataSource]=\"usage\"\r\n xName=\"date\"\r\n yName=\"count\"\r\n lineWidth=\"2\"\r\n valueType=\"DateTime\"\r\n [locale]=\"locale\"\r\n [markerSettings]=\"markerSettings\"\r\n [tooltipSettings]=\"tooltipSettings\"\r\n (tooltipInitialize)=\"tooltipInitialize($event)\"\r\n [enableRtl]=\"enableRtl\">\r\n </ejs-sparkline>\r\n }\r\n <div class=\"row\">\r\n <button mat-icon-button (click)=\"diagram()\" [bizdocTooltip]=\"'Workflow'|translate\" [disabled]=\"model.draft\"><mat-icon>schema</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\" [disabled]=\"model.draft\"><mat-icon>more_vert</mat-icon></button>\r\n <mat-menu #options>\r\n <button mat-menu-item (click)=\"invite()\">{{'Invite'|l18n}}</button>\r\n </mat-menu>\r\n </div>\r\n </ng-template>\r\n <!--edit-->\r\n <ng-template bizdocEditContent>\r\n <ng-container [formGroup]=\"form\">\r\n <div class=\"row flex\" [formGroup]=\"format\">\r\n <mat-form-field>\r\n <mat-label>{{'Prefix'|translate}}</mat-label>\r\n <input matInput formControlName=\"prefix\" />\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Digits'|translate}}</mat-label>\r\n <input matInput formControlName=\"digits\" maxlength=\"2\" />\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field>\r\n <mat-label>{{'Suffix'|translate}}</mat-label>\r\n <input matInput formControlName=\"suffix\" />\r\n </mat-form-field>\r\n </div>\r\n <bizdoc-localized-string formControlName=\"group\" [placeholder]=\"'Group'|translate\"></bizdoc-localized-string>\r\n <bizdoc-localized-string formControlName=\"description\" [placeholder]=\"'Description'|translate\"></bizdoc-localized-string>\r\n @if (guides.length) {\r\n <mat-form-field>\r\n <mat-label>{{'Guide'|translate}}</mat-label>\r\n <mat-select formControlName=\"guide\">\r\n <mat-option>{{'None'|translate}}</mat-option>\r\n @for (g of guides; track g) {\r\n <mat-option [value]=\"g.name\">{{g.title |localizedString}}</mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n }\r\n @if (cubes.length) {\r\n <mat-form-field>\r\n <mat-label>{{'Cube'|translate}}</mat-label>\r\n <mat-select formControlName=\"cubes\" multiple>\r\n @for (c of cubes; track c) {\r\n <mat-option [value]=\"c.name\">{{c.title |localizedString}}</mat-option>\r\n }\r\n </mat-select>\r\n <mat-hint>{{'FormCubeHelp'|translate}}</mat-hint>\r\n </mat-form-field>\r\n }\r\n <!--Rules-->\r\n <h2 class=\"mat-h2 row\">\r\n {{'Rules'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add(rules, newRule(), 'Rule', 'rule')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\r\n </h2>\r\n <table formArrayName=\"rules\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, rules)\">\r\n @for (r of rules.controls; track r; let index = $index) {\r\n <tr class=\"mat-mdc-row\" [formGroup]=\"r\" cdkDrag>\r\n <td class=\"mat-mdc-cell\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td class=\"mat-mdc-cell flex\" width=\"99%\">\r\n {{r.controls.title.value}}\r\n </td>\r\n <td class=\"mat-mdc-cell\" style=\"white-space: pre;\">\r\n <button mat-icon-button (click)=\"edit(r, 'Rule', 'rule')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\r\n <button mat-icon-button (click)=\"rules.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </tr>\r\n }\r\n </table>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template bizdocCustomContent=\"rule\" let-form=\"form\">\r\n <ng-container [formGroup]=\"form\">\r\n <div class=\"row\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n @if (form.controls.title.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n @if (form.controls.name.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n </div>\r\n <bizdoc-designer-privileges [form]=\"form\"></bizdoc-designer-privileges>\r\n </ng-container>\r\n </ng-template>\r\n</bizdoc-designer-element>\r\n", dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { 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: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i6.SparklineComponent, selector: "ejs-sparkline", inputs: ["axisSettings", "border", "containerArea", "dataLabelSettings", "dataSource", "enablePersistence", "enableRtl", "endPointColor", "fill", "format", "height", "highPointColor", "lineWidth", "locale", "lowPointColor", "markerSettings", "negativePointColor", "opacity", "padding", "palette", "query", "rangeBandSettings", "rangePadding", "startPointColor", "theme", "tiePointColor", "tooltipSettings", "type", "useGroupingSeparator", "valueType", "width", "xName", "yName"], outputs: ["axisRendering", "dataLabelRendering", "load", "loaded", "markerRendering", "pointRegionMouseClick", "pointRegionMouseMove", "pointRendering", "resize", "seriesRendering", "sparklineMouseClick", "sparklineMouseMove", "tooltipInitialize"] }, { kind: "directive", type: i7.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i7.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i7.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i8.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatLabel, selector: "mat-label" }, { kind: "directive", type: i9.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i9.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i10.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i11.MatIconButton, selector: "button[mat-icon-button]", 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.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i14.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i14.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i15.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: i16.LocalizedStringComponent, selector: "bizdoc-localized-string", inputs: ["class", "floatLabel", "value", "placeholder", "required", "disabled", "maxlength"] }, { kind: "component", type: i17.DesignerPrivilegesComponent, selector: "bizdoc-designer-privileges", inputs: ["form"] }, { kind: "directive", type: i18.CustomContentDirective, selector: "[bizdocCustomContent]", inputs: ["bizdocCustomContent"] }, { kind: "directive", type: i18.EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "directive", type: i18.WidgetContentDirective, selector: "[bizdocContent]" }, { kind: "component", type: i18.DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "context"], outputs: ["save", "continue"] }, { kind: "pipe", type: i19.LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: i20.L18nPipe, name: "l18n" }, { kind: "pipe", type: i20.TranslatePipe, name: "translate" }] }); }
149
148
  }
150
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: FormDesignComponent, decorators: [{
149
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FormDesignComponent, decorators: [{
151
150
  type: Component,
152
- args: [{ template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\" [icon]=\"true\" [context]=\"context\">\n <ng-template bizdocContent>\n @if (usage) {\n <ejs-sparkline width='250px' height='200px'\n type=\"Line\"\n [id]=\"model.name\"\n [fill]=\"primary\"\n [dataSource]=\"usage\"\n xName=\"date\"\n yName=\"count\"\n lineWidth=\"2\"\n valueType=\"DateTime\"\n [locale]=\"locale\"\n [markerSettings]=\"markerSettings\"\n [tooltipSettings]=\"tooltipSettings\"\n (tooltipInitialize)=\"tooltipInitialize($event)\"\n [enableRtl]=\"enableRtl\">\n </ejs-sparkline>\n }\n <div class=\"row\">\n <button mat-icon-button (click)=\"diagram()\" [bizdocTooltip]=\"'Workflow'|translate\" [disabled]=\"model.draft\"><mat-icon>schema</mat-icon></button>\n <span class=\"divider\"></span>\n <button mat-icon-button [matMenuTriggerFor]=\"options\" [disabled]=\"model.draft\"><mat-icon>more_vert</mat-icon></button>\n <mat-menu #options>\n <button mat-menu-item (click)=\"invite()\">{{'Invite'|l18n}}</button>\n </mat-menu>\n </div>\n </ng-template>\n <!--edit-->\n <ng-template bizdocEditContent>\n <ng-container [formGroup]=\"form\">\n <div class=\"row flex\" [formGroup]=\"format\">\n <mat-form-field>\n <mat-label>{{'Prefix'|translate}}</mat-label>\n <input matInput formControlName=\"prefix\" />\n </mat-form-field>\n &nbsp;\n <mat-form-field class=\"flex\">\n <mat-label>{{'Digits'|translate}}</mat-label>\n <input matInput formControlName=\"digits\" maxlength=\"2\" />\n </mat-form-field>\n &nbsp;\n <mat-form-field>\n <mat-label>{{'Suffix'|translate}}</mat-label>\n <input matInput formControlName=\"suffix\" />\n </mat-form-field>\n </div>\n <bizdoc-localized-string formControlName=\"group\" [placeholder]=\"'Group'|translate\"></bizdoc-localized-string>\n <bizdoc-localized-string formControlName=\"description\" [placeholder]=\"'Description'|translate\"></bizdoc-localized-string>\n @if (guides.length) {\n <mat-form-field>\n <mat-label>{{'Guide'|translate}}</mat-label>\n <mat-select formControlName=\"guide\">\n <mat-option>{{'None'|translate}}</mat-option>\n @for (g of guides; track g) {\n <mat-option [value]=\"g.name\">{{g.title |localizedString}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n @if (cubes.length) {\n <mat-form-field>\n <mat-label>{{'Cube'|translate}}</mat-label>\n <mat-select formControlName=\"cubes\" multiple>\n @for (c of cubes; track c) {\n <mat-option [value]=\"c.name\">{{c.title |localizedString}}</mat-option>\n }\n </mat-select>\n <mat-hint>{{'FormCubeHelp'|translate}}</mat-hint>\n </mat-form-field>\n }\n <!--Rules-->\n <h2 class=\"mat-h2 row\">\n {{'Rules'|translate}}\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"add(rules, newRule(), 'Rule', 'rule')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\n </h2>\n <table formArrayName=\"rules\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, rules)\">\n @for (r of rules.controls; track r; let index = $index) {\n <tr class=\"mat-mdc-row\" [formGroup]=\"r\" cdkDrag>\n <td class=\"mat-mdc-cell\">\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\n </td>\n <td class=\"mat-mdc-cell flex\" width=\"99%\">\n {{r.controls.title.value}}\n </td>\n <td class=\"mat-mdc-cell\" style=\"white-space: pre;\">\n <button mat-icon-button (click)=\"edit(r, 'Rule', 'rule')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\n <button mat-icon-button (click)=\"rules.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\n </td>\n </tr>\n }\n </table>\n </ng-container>\n </ng-template>\n <ng-template bizdocCustomContent=\"rule\" let-form=\"form\">\n <ng-container [formGroup]=\"form\">\n <div class=\"row\">\n <mat-form-field class=\"flex\">\n <mat-label>{{'Title'|translate}}</mat-label>\n <input matInput formControlName=\"title\" required />\n @if (form.controls.title.hasError('required')) {\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\n }\n </mat-form-field>\n &nbsp;\n <mat-form-field class=\"flex\">\n <mat-label>{{'Name'|translate}}</mat-label>\n <input matInput formControlName=\"name\" required />\n @if (form.controls.name.hasError('required')) {\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\n }\n </mat-form-field>\n </div>\n <bizdoc-designer-privileges [form]=\"form\"></bizdoc-designer-privileges>\n </ng-container>\n </ng-template>\n</bizdoc-designer-element>\n" }]
151
+ args: [{ template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\" [icon]=\"true\" [context]=\"context\">\r\n <ng-template bizdocContent>\r\n @if (usage) {\r\n <ejs-sparkline width='250px' height='200px'\r\n type=\"Line\"\r\n [id]=\"model.name\"\r\n [fill]=\"primary\"\r\n [dataSource]=\"usage\"\r\n xName=\"date\"\r\n yName=\"count\"\r\n lineWidth=\"2\"\r\n valueType=\"DateTime\"\r\n [locale]=\"locale\"\r\n [markerSettings]=\"markerSettings\"\r\n [tooltipSettings]=\"tooltipSettings\"\r\n (tooltipInitialize)=\"tooltipInitialize($event)\"\r\n [enableRtl]=\"enableRtl\">\r\n </ejs-sparkline>\r\n }\r\n <div class=\"row\">\r\n <button mat-icon-button (click)=\"diagram()\" [bizdocTooltip]=\"'Workflow'|translate\" [disabled]=\"model.draft\"><mat-icon>schema</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\" [disabled]=\"model.draft\"><mat-icon>more_vert</mat-icon></button>\r\n <mat-menu #options>\r\n <button mat-menu-item (click)=\"invite()\">{{'Invite'|l18n}}</button>\r\n </mat-menu>\r\n </div>\r\n </ng-template>\r\n <!--edit-->\r\n <ng-template bizdocEditContent>\r\n <ng-container [formGroup]=\"form\">\r\n <div class=\"row flex\" [formGroup]=\"format\">\r\n <mat-form-field>\r\n <mat-label>{{'Prefix'|translate}}</mat-label>\r\n <input matInput formControlName=\"prefix\" />\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Digits'|translate}}</mat-label>\r\n <input matInput formControlName=\"digits\" maxlength=\"2\" />\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field>\r\n <mat-label>{{'Suffix'|translate}}</mat-label>\r\n <input matInput formControlName=\"suffix\" />\r\n </mat-form-field>\r\n </div>\r\n <bizdoc-localized-string formControlName=\"group\" [placeholder]=\"'Group'|translate\"></bizdoc-localized-string>\r\n <bizdoc-localized-string formControlName=\"description\" [placeholder]=\"'Description'|translate\"></bizdoc-localized-string>\r\n @if (guides.length) {\r\n <mat-form-field>\r\n <mat-label>{{'Guide'|translate}}</mat-label>\r\n <mat-select formControlName=\"guide\">\r\n <mat-option>{{'None'|translate}}</mat-option>\r\n @for (g of guides; track g) {\r\n <mat-option [value]=\"g.name\">{{g.title |localizedString}}</mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n }\r\n @if (cubes.length) {\r\n <mat-form-field>\r\n <mat-label>{{'Cube'|translate}}</mat-label>\r\n <mat-select formControlName=\"cubes\" multiple>\r\n @for (c of cubes; track c) {\r\n <mat-option [value]=\"c.name\">{{c.title |localizedString}}</mat-option>\r\n }\r\n </mat-select>\r\n <mat-hint>{{'FormCubeHelp'|translate}}</mat-hint>\r\n </mat-form-field>\r\n }\r\n <!--Rules-->\r\n <h2 class=\"mat-h2 row\">\r\n {{'Rules'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add(rules, newRule(), 'Rule', 'rule')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\r\n </h2>\r\n <table formArrayName=\"rules\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, rules)\">\r\n @for (r of rules.controls; track r; let index = $index) {\r\n <tr class=\"mat-mdc-row\" [formGroup]=\"r\" cdkDrag>\r\n <td class=\"mat-mdc-cell\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td class=\"mat-mdc-cell flex\" width=\"99%\">\r\n {{r.controls.title.value}}\r\n </td>\r\n <td class=\"mat-mdc-cell\" style=\"white-space: pre;\">\r\n <button mat-icon-button (click)=\"edit(r, 'Rule', 'rule')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\r\n <button mat-icon-button (click)=\"rules.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </tr>\r\n }\r\n </table>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template bizdocCustomContent=\"rule\" let-form=\"form\">\r\n <ng-container [formGroup]=\"form\">\r\n <div class=\"row\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n @if (form.controls.title.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n @if (form.controls.name.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n </div>\r\n <bizdoc-designer-privileges [form]=\"form\"></bizdoc-designer-privileges>\r\n </ng-container>\r\n </ng-template>\r\n</bizdoc-designer-element>\r\n" }]
153
152
  }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.PanesRouter }, { type: i3.SystemService }, { type: i4.SessionService }, { type: i0.Injector }, { type: i5.TranslateService }, { type: i0.ElementRef }, { type: i21.DesignerRef, decorators: [{
154
153
  type: Inject,
155
154
  args: [DesignerRef]
156
155
  }] }] });
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2FyY2hpdGVjdHVyZS9lbGVtZW50cy9mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvYWRtaW4vYXJjaGl0ZWN0dXJlL2VsZW1lbnRzL2Zvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxNQUFNLEVBQUUsUUFBUSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBMEIsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSXhELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxXQUFXLEVBQWdDLGNBQWMsRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRzVELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSw0QkFBNEI7SUEwQ25FLFlBQVksRUFBZSxFQUNqQixPQUFvQixFQUNwQixRQUF1QixFQUN2QixRQUF3QixFQUN4QixTQUFtQixFQUNuQixVQUE0QixFQUNwQyxPQUF3QixFQUNILEdBQWdCO1FBQ3JDLEtBQUssQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBUGhCLFlB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VztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDOzhHQTFIVSxtQkFBbUIscU5BaURwQixXQUFXO2tHQWpEVixtQkFBbUIsMkVDZmhDLHV6S0FzSEE7OzJGRHZHYSxtQkFBbUI7a0JBRC9CLFNBQVM7OzswQkFrREwsTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbmplY3QsIEluamVjdG9yLCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IEF4aXNTZXR0aW5nc01vZGVsLCBJVG9vbHRpcFJlbmRlcmluZ0V2ZW50QXJncywgTGluZVNldHRpbmdzTW9kZWwsIFNwYXJrbGluZU1hcmtlclNldHRpbmdzTW9kZWwsIFNwYXJrbGluZVRvb2x0aXBTZXR0aW5nc01vZGVsIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWNoYXJ0cyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUGFuZXNSb3V0ZXIgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9zbG90cy9yb3V0ZXIuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBTeXN0ZW1TZXJ2aWNlLCBSYW5nZUluZm8gfSBmcm9tIFwiLi4vLi4vc3lzdGVtLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRGVzaWduZXJUeXBlRWxlbWVudENvbXBvbmVudCB9IGZyb20gXCIuLi9kZXNpZ25lci5iYXNlXCI7XHJcbmltcG9ydCB7IERlc2lnbmVyUmVmLCBFbGVtZW50SW5mbywgUGVybWlzc2lvbk1vZGVsLCBsb2NhbGl6ZVN0cmluZywgcHJvZ3JhbU5hbWUgfSBmcm9tIFwiLi4vZGVjbGFyYXRpb25zXCI7XHJcbmltcG9ydCB7IEZvcm1JbnZpdGVEaWFsb2cgfSBmcm9tIFwiLi9mb3JtLWludml0ZS5kaWFsb2dcIjtcclxuaW1wb3J0IHsgT3BlblBvbGljeSB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2NvbmZpZ3VyYXRpb25cIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEludGVybmF0aW9uYWxpemF0aW9uIH0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1iYXNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHsgdGVtcGxhdGVVcmw6ICdmb3JtLmNvbXBvbmVudC5odG1sJyB9KVxyXG5leHBvcnQgY2xhc3MgRm9ybURlc2lnbkNvbXBvbmVudCBleHRlbmRzIERlc2lnbmVyVHlwZUVsZW1lbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHJlYWRvbmx5IHJ1bGVzID0gdGhpcy5fZmIuYXJyYXk8Rm9ybUdyb3VwPihbXSk7XHJcbiAgcmVhZG9ubHkgZm9ybWF0ID0gdGhpcy5fZmIuZ3JvdXAoe1xyXG4gICAgcHJlZml4OiBudWxsLFxyXG4gICAgc3VmZml4OiBudWxsLFxyXG4gICAgZGlnaXRzOiBudWxsXHJcbiAgfSk7XHJcbiAgcmVhZG9ubHkgZm9ybSA9IHRoaXMuX2ZiLmdyb3VwKHtcclxuICAgIHJ1bGVzOiB0aGlzLnJ1bGVzLFxyXG4gICAgZ3VpZGU6IG51bGwsXHJcbiAgICBmb3JtYXQ6IG51bGwsXHJcbiAgICBncm91cDogbnVsbCxcclxuICAgIGRlc2NyaXB0aW9uOiBudWxsLFxyXG4gICAgY3ViZXM6IG51bGxcclxuICB9KTtcclxuICB0aGVtZTogJ01hdGVyaWFsMycgfCAnTWF0ZXJpYWwzRGFyaycgPSB0aGlzLl9zZXNzaW9uLnRoZW1lLmRhcmsgPyAnTWF0ZXJpYWwzRGFyaycgOiAnTWF0ZXJpYWwzJztcclxuICByZWFkb25seSBheGlzU2V0dGluZ3MgPSB7XHJcbiAgICBsaW5lU2V0dGluZ3M6IHtcclxuICAgICAgb3BhY2l0eTogLjUsXHJcbiAgICAgIHdpZHRoOiAuNVxyXG4gICAgfSBhcyBMaW5lU2V0dGluZ3NNb2RlbCxcclxuICB9IGFzIEF4aXNTZXR0aW5nc01vZGVsO1xyXG4gIHJlYWRvbmx5IG1hcmtlclNldHRpbmdzID0ge1xyXG4gICAgdmlzaWJsZTogWydOb25lJ10sXHJcbiAgICBzaXplOiAxLjUsXHJcbiAgICBmaWxsOiB0aGlzLl9zZXNzaW9uLmdldEFjY2VudCgpLFxyXG4gIH0gYXMgU3BhcmtsaW5lTWFya2VyU2V0dGluZ3NNb2RlbDtcclxuICByZWFkb25seSB0b29sdGlwU2V0dGluZ3MgPSB7XHJcbiAgICB2aXNpYmxlOiB0cnVlLFxyXG4gICAgZm9ybWF0OiAnJHtkYXRlfScsXHJcbiAgICB0cmFja0xpbmVTZXR0aW5nczoge1xyXG4gICAgICB2aXNpYmxlOiB0cnVlXHJcbiAgICB9XHJcbiAgfSBhcyBTcGFya2xpbmVUb29sdGlwU2V0dGluZ3NNb2RlbDtcclxuICB1c2FnZTogUmFuZ2VJbmZvW107XHJcbiAgcHJpbWFyeSA9IHRoaXMuX3Nlc3Npb24uZ2V0UHJpbWVyeSgpO1xyXG4gIHJlYWRvbmx5IGVuYWJsZVJ0bCA9IHRoaXMuX3Nlc3Npb24uaW52ZXJzZTtcclxuICBsb2NhbGU6IHN0cmluZztcclxuICBndWlkZXM6IEVsZW1lbnRJbmZvW107XHJcbiAgY3ViZXM6IEVsZW1lbnRJbmZvW107XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfaW50bDogSW50ZXJuYXRpb25hbGl6YXRpb24gPSBuZXcgSW50ZXJuYXRpb25hbGl6YXRpb24oKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBjb25zdHJ1Y3RvcihmYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIF9yb3V0ZXI6IFBhbmVzUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBfc2VydmljZTogU3lzdGVtU2VydmljZSxcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgZWxlbWVudDogRWxlbWVudFJlZjxhbnk+LFxyXG4gICAgQEluamVjdChEZXNpZ25lclJlZikgcmVmOiBEZXNpZ25lclJlZikge1xyXG4gICAgc3VwZXIoZmIsIGVsZW1lbnQsIHJlZik7XHJcbiAgICB0aGlzLmxvY2FsZSA9IF9zZXNzaW9uLmxhbmd1YWdlO1xyXG4gICAgdGhpcy5fc2Vzc2lvbi50aGVtZUNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuXHJcbiAgICAgIHN1YnNjcmliZSh0ID0+IHtcclxuICAgICAgICB0aGlzLnRoZW1lID0gdC5kYXJrID8gJ01hdGVyaWFsM0RhcmsnIDogJ01hdGVyaWFsMyc7XHJcbiAgICAgICAgdGhpcy5wcmltYXJ5ID0gdGhpcy5fc2Vzc2lvbi5nZXRQcmltZXJ5KCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLm1vZGUgPT09ICd3aWRnZXQnKVxyXG4gICAgICB0aGlzLl9zZXJ2aWNlLnJhbmdlKHRoaXMubW9kZWwubmFtZSkuc3Vic2NyaWJlKHIgPT5cclxuICAgICAgICAvL25ldyBTcGFya2xpbmUoe1xyXG4gICAgICAgIC8vICBkYXRhTGFiZWxSZW5kZXJpbmc6IHRoaXMuZGF0YUxhYmVsUmVuZGVyaW5nLmJpbmQodGhpcylcclxuICAgICAgICAvL30sIHRoaXMudXNhZ2UubmF0aXZlRWxlbWVudClcclxuICAgICAgICB0aGlzLnVzYWdlID0gcik7XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5tb2RlbC5ydWxlcz8uXHJcbiAgICAgICAgZm9yRWFjaChyID0+IHRoaXMucnVsZXMucHVzaCh0aGlzLm5ld1J1bGUociksIHsgZW1pdEV2ZW50OiBmYWxzZSB9KSk7XHJcbiAgICAgIGNvbnN0IHsgZm9ybWF0IH0gPSB0aGlzLm1vZGVsO1xyXG4gICAgICBpZiAoZm9ybWF0KSB7XHJcbiAgICAgICAgY29uc3QgaW5kZXgxID0gZm9ybWF0LmluZGV4T2YoJ3snKSxcclxuICAgICAgICAgIGluZGV4MiA9IGZvcm1hdC5sYXN0SW5kZXhPZignfScpLFxyXG4gICAgICAgICAgaW5kZXgzID0gZm9ybWF0LmluZGV4T2YoJzonLCBpbmRleDEpO1xyXG4gICAgICAgIHRoaXMuZm9ybWF0LnBhdGNoVmFsdWUoe1xyXG4gICAgICAgICAgcHJlZml4OiBpbmRleDEgPiAwID8gZm9ybWF0LnN1YnN0cmluZygwLCBpbmRleDEpIDogbnVsbCxcclxuICAgICAgICAgIGRpZ2l0czogaW5kZXgyID4gaW5kZXgxICsgMiAmJiBpbmRleDMgPyBwYXJzZUludChmb3JtYXQuc3Vic3RyaW5nKGluZGV4MyArIDIsIGluZGV4MikpIDogbnVsbCxcclxuICAgICAgICAgIHN1ZmZpeDogaW5kZXgyIDwgZm9ybWF0Lmxlbmd0aCA/IGZvcm1hdC5zdWJzdHJpbmcoaW5kZXgyICsgMSkgOiBudWxsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5mb3JtYXQudmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDE1MCkpLnN1YnNjcmliZShmID0+IHtcclxuICAgICAgICBsZXQgZm9ybWF0ID0gZi5wcmVmaXggYXMgc3RyaW5nIHx8IGxvY2FsaXplU3RyaW5nKHRoaXMubW9kZWwudGl0bGUpO1xyXG4gICAgICAgIGlmIChmLmRpZ2l0cykgZm9ybWF0ICs9IGB7MDpEJHtmLmRpZ2l0c319YDtcclxuICAgICAgICBpZiAoZi5zdWZmaXgpIGZvcm1hdCArPSBmLnN1ZmZpeDtcclxuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMuZm9ybWF0LnNldFZhbHVlKGZvcm1hdCk7XHJcbiAgICAgICAgdGhpcy5mb3JtLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLm1vZGVsLnJlc291cmNlVHlwZSAmJiB0aGlzLmRpc2FibGUoJ2dyb3VwJywgJ2Rlc2NyaXB0aW9uJyk7XHJcbiAgICAgIHRoaXMuX3JlZi51bmxvY2soKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5lbmFibGUoJ2dyb3VwJywgJ2Rlc2NyaXB0aW9uJykpO1xyXG4gICAgICB0aGlzLmd1aWRlcyA9IHRoaXMuX3JlZi5kZXNpZ25lci5ndWlkZXM7XHJcbiAgICAgIHRoaXMuY3ViZXMgPSB0aGlzLl9yZWYuZGVzaWduZXIuY3ViZXM7XHJcbiAgICB9XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gIH1cclxuICB0b29sdGlwSW5pdGlhbGl6ZShldnQ6IElUb29sdGlwUmVuZGVyaW5nRXZlbnRBcmdzKSB7XHJcbiAgICBldnQudGV4dCA9IFt0aGlzLl9pbnRsLmZvcm1hdERhdGUodGhpcy5faW50bC5wYXJzZURhdGUoZXZ0LnRleHRbMF0sIHsgZm9ybWF0OiAnRUVFIE1NTSBkZCB5eXl5JyB9KSldO1xyXG4gIH1cclxuICBuZXdSdWxlKHJ1bGU/OiBQZXJtaXNzaW9uTW9kZWwpOiBhbnkge1xyXG4gICAgY29uc3QgbmFtZSA9IHRoaXMuX2ZiLmNvbnRyb2wocnVsZT8ubmFtZSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcbiAgICAgIHRpdGxlID0gdGhpcy5fZmIuY29udHJvbChydWxlPy50aXRsZSk7XHJcbiAgICAhcnVsZSAmJiB0aXRsZS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHYgPT4gbmFtZS5zZXRWYWx1ZShwcm9ncmFtTmFtZSh2KSkpO1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZiLmdyb3VwKHtcclxuICAgICAgbmFtZSxcclxuICAgICAgdGl0bGUsXHJcbiAgICAgIHJvbGVzOiBydWxlPy5yb2xlcyxcclxuICAgICAgcnVsZTogcnVsZT8ucnVsZSxcclxuICAgIH0pO1xyXG4gIH1cclxuICBpbnZpdGUoKSB7XHJcbiAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoRm9ybUludml0ZURpYWxvZywge1xyXG4gICAgICBwb2xpY3k6IE9wZW5Qb2xpY3kuRGlhbG9nLFxyXG4gICAgICBpY29uOiB0aGlzLm1vZGVsLmljb24sXHJcbiAgICAgIHRpdGxlOiBsb2NhbGl6ZVN0cmluZyh0aGlzLm1vZGVsLnRpdGxlKSxcclxuICAgICAgZ3JvdXA6IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0ludml0ZScpLFxyXG4gICAgICBpbmplY3RvcjogSW5qZWN0b3IuY3JlYXRlKHsgcHJvdmlkZXJzOiBbXSwgcGFyZW50OiB0aGlzLl9pbmplY3RvciB9KVxyXG4gICAgfSlcclxuICB9XHJcbiAgZGlhZ3JhbSgpIHtcclxuICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJ2FkbWluL2Zvcm1zJywgdGhpcy5tb2RlbC5uYW1lXSk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveS5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxiaXpkb2MtZGVzaWduZXItZWxlbWVudCBbZm9ybV09XCJmb3JtXCIgW3ByaXZpbGVnZXNdPVwidHJ1ZVwiIFtpY29uXT1cInRydWVcIiBbY29udGV4dF09XCJjb250ZXh0XCI+XG4gIDxuZy10ZW1wbGF0ZSBiaXpkb2NDb250ZW50PlxuICAgIEBpZiAodXNhZ2UpIHtcbiAgICA8ZWpzLXNwYXJrbGluZSB3aWR0aD0nMjUwcHgnIGhlaWdodD0nMjAwcHgnXG4gICAgICAgICAgICAgICAgICAgdHlwZT1cIkxpbmVcIlxuICAgICAgICAgICAgICAgICAgIFtpZF09XCJtb2RlbC5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICBbZmlsbF09XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICBbZGF0YVNvdXJjZV09XCJ1c2FnZVwiXG4gICAgICAgICAgICAgICAgICAgeE5hbWU9XCJkYXRlXCJcbiAgICAgICAgICAgICAgICAgICB5TmFtZT1cImNvdW50XCJcbiAgICAgICAgICAgICAgICAgICBsaW5lV2lkdGg9XCIyXCJcbiAgICAgICAgICAgICAgICAgICB2YWx1ZVR5cGU9XCJEYXRlVGltZVwiXG4gICAgICAgICAgICAgICAgICAgW2xvY2FsZV09XCJsb2NhbGVcIlxuICAgICAgICAgICAgICAgICAgIFttYXJrZXJTZXR0aW5nc109XCJtYXJrZXJTZXR0aW5nc1wiXG4gICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBTZXR0aW5nc109XCJ0b29sdGlwU2V0dGluZ3NcIlxuICAgICAgICAgICAgICAgICAgICh0b29sdGlwSW5pdGlhbGl6ZSk9XCJ0b29sdGlwSW5pdGlhbGl6ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICBbZW5hYmxlUnRsXT1cImVuYWJsZVJ0bFwiPlxuICAgIDwvZWpzLXNwYXJrbGluZT5cbiAgICB9XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImRpYWdyYW0oKVwiIFtiaXpkb2NUb29sdGlwXT1cIidXb3JrZmxvdyd8dHJhbnNsYXRlXCIgW2Rpc2FibGVkXT1cIm1vZGVsLmRyYWZ0XCI+PG1hdC1pY29uPnNjaGVtYTwvbWF0LWljb24+PC9idXR0b24+XG4gICAgICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwib3B0aW9uc1wiIFtkaXNhYmxlZF09XCJtb2RlbC5kcmFmdFwiPjxtYXQtaWNvbj5tb3JlX3ZlcnQ8L21hdC1pY29uPjwvYnV0dG9uPlxuICAgICAgPG1hdC1tZW51ICNvcHRpb25zPlxuICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImludml0ZSgpXCI+e3snSW52aXRlJ3xsMThufX08L2J1dHRvbj5cbiAgICAgIDwvbWF0LW1lbnU+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDwhLS1lZGl0LS0+XG4gIDxuZy10ZW1wbGF0ZSBiaXpkb2NFZGl0Q29udGVudD5cbiAgICA8bmctY29udGFpbmVyIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuICAgICAgPGRpdiBjbGFzcz1cInJvdyBmbGV4XCIgW2Zvcm1Hcm91cF09XCJmb3JtYXRcIj5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgIDxtYXQtbGFiZWw+e3snUHJlZml4J3x0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJwcmVmaXhcIiAvPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAmbmJzcDtcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZmxleFwiPlxuICAgICAgICAgIDxtYXQtbGFiZWw+e3snRGlnaXRzJ3x0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJkaWdpdHNcIiBtYXhsZW5ndGg9XCIyXCIgLz5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgJm5ic3A7XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICA8bWF0LWxhYmVsPnt7J1N1ZmZpeCd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwic3VmZml4XCIgLz5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGJpemRvYy1sb2NhbGl6ZWQtc3RyaW5nIGZvcm1Db250cm9sTmFtZT1cImdyb3VwXCIgW3BsYWNlaG9sZGVyXT1cIidHcm91cCd8dHJhbnNsYXRlXCI+PC9iaXpkb2MtbG9jYWxpemVkLXN0cmluZz5cbiAgICAgIDxiaXpkb2MtbG9jYWxpemVkLXN0cmluZyBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGlvblwiIFtwbGFjZWhvbGRlcl09XCInRGVzY3JpcHRpb24nfHRyYW5zbGF0ZVwiPjwvYml6ZG9jLWxvY2FsaXplZC1zdHJpbmc+XG4gICAgICBAaWYgKGd1aWRlcy5sZW5ndGgpIHtcbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPG1hdC1sYWJlbD57eydHdWlkZSd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cbiAgICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwiZ3VpZGVcIj5cbiAgICAgICAgICA8bWF0LW9wdGlvbj57eydOb25lJ3x0cmFuc2xhdGV9fTwvbWF0LW9wdGlvbj5cbiAgICAgICAgICBAZm9yIChnIG9mIGd1aWRlczsgdHJhY2sgZykge1xuICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJnLm5hbWVcIj57e2cudGl0bGUgfGxvY2FsaXplZFN0cmluZ319PC9tYXQtb3B0aW9uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIH1cbiAgICAgIEBpZiAoY3ViZXMubGVuZ3RoKSB7XG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxtYXQtbGFiZWw+e3snQ3ViZSd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cbiAgICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwiY3ViZXNcIiBtdWx0aXBsZT5cbiAgICAgICAgICBAZm9yIChjIG9mIGN1YmVzOyB0cmFjayBjKSB7XG4gICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cImMubmFtZVwiPnt7Yy50aXRsZSB8bG9jYWxpemVkU3RyaW5nfX08L21hdC1vcHRpb24+XG4gICAgICAgICAgfVxuICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgIDxtYXQtaGludD57eydGb3JtQ3ViZUhlbHAnfHRyYW5zbGF0ZX19PC9tYXQtaGludD5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICB9XG4gICAgICA8IS0tUnVsZXMtLT5cbiAgICAgIDxoMiBjbGFzcz1cIm1hdC1oMiByb3dcIj5cbiAgICAgICAge3snUnVsZXMnfHRyYW5zbGF0ZX19XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZGl2aWRlclwiPjwvc3Bhbj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImFkZChydWxlcywgbmV3UnVsZSgpLCAnUnVsZScsICdydWxlJylcIiBbYml6ZG9jVG9vbHRpcF09XCInQWRkJ3x0cmFuc2xhdGVcIiB0eXBlPVwiYnV0dG9uXCI+PG1hdC1pY29uPmFkZF9jaXJjbGVfb3V0bGluZTwvbWF0LWljb24+PC9idXR0b24+XG4gICAgICA8L2gyPlxuICAgICAgPHRhYmxlIGZvcm1BcnJheU5hbWU9XCJydWxlc1wiIGNsYXNzPVwibWF0LW1kYy10YWJsZVwiIGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQsIHJ1bGVzKVwiPlxuICAgICAgICBAZm9yIChyIG9mIHJ1bGVzLmNvbnRyb2xzOyB0cmFjayByOyBsZXQgaW5kZXggPSAkaW5kZXgpIHtcbiAgICAgICAgPHRyIGNsYXNzPVwibWF0LW1kYy1yb3dcIiBbZm9ybUdyb3VwXT1cInJcIiBjZGtEcmFnPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cIm1hdC1tZGMtY2VsbFwiPlxuICAgICAgICAgICAgPG1hdC1pY29uIGNka0RyYWdIYW5kbGU+ZHJhZ19pbmRpY2F0b3I8L21hdC1pY29uPlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPHRkIGNsYXNzPVwibWF0LW1kYy1jZWxsIGZsZXhcIiB3aWR0aD1cIjk5JVwiPlxuICAgICAgICAgICAge3tyLmNvbnRyb2xzLnRpdGxlLnZhbHVlfX1cbiAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cIm1hdC1tZGMtY2VsbFwiIHN0eWxlPVwid2hpdGUtc3BhY2U6IHByZTtcIj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJlZGl0KHIsICdSdWxlJywgJ3J1bGUnKVwiIFtiaXpkb2NUb29sdGlwXT1cIidFZGl0J3x0cmFuc2xhdGVcIiB0eXBlPVwiYnV0dG9uXCI+PG1hdC1pY29uPmVkaXQ8L21hdC1pY29uPjwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInJ1bGVzLnJlbW92ZUF0KGluZGV4KVwiIFtiaXpkb2NUb29sdGlwXT1cIidSZW1vdmUnfHRyYW5zbGF0ZVwiIHR5cGU9XCJidXR0b25cIj48bWF0LWljb24+ZGVsZXRlPC9tYXQtaWNvbj48L2J1dHRvbj5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICB9XG4gICAgICA8L3RhYmxlPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgYml6ZG9jQ3VzdG9tQ29udGVudD1cInJ1bGVcIiBsZXQtZm9ybT1cImZvcm1cIj5cbiAgICA8bmctY29udGFpbmVyIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmbGV4XCI+XG4gICAgICAgICAgPG1hdC1sYWJlbD57eydUaXRsZSd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIiByZXF1aXJlZCAvPlxuICAgICAgICAgIEBpZiAoZm9ybS5jb250cm9scy50aXRsZS5oYXNFcnJvcigncmVxdWlyZWQnKSkge1xuICAgICAgICAgIDxtYXQtZXJyb3IgW2lubmVySFRNTF09XCInUmVxdWlyZWRFcnInfHRyYW5zbGF0ZTooJ1RpdGxlJ3x0cmFuc2xhdGUpXCI+PC9tYXQtZXJyb3I+XG4gICAgICAgICAgfVxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAmbmJzcDtcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZmxleFwiPlxuICAgICAgICAgIDxtYXQtbGFiZWw+e3snTmFtZSd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiIHJlcXVpcmVkIC8+XG4gICAgICAgICAgQGlmIChmb3JtLmNvbnRyb2xzLm5hbWUuaGFzRXJyb3IoJ3JlcXVpcmVkJykpIHtcbiAgICAgICAgICA8bWF0LWVycm9yIFtpbm5lckhUTUxdPVwiJ1JlcXVpcmVkRXJyJ3x0cmFuc2xhdGU6KCdOYW1lJ3x0cmFuc2xhdGUpXCI+PC9tYXQtZXJyb3I+XG4gICAgICAgICAgfVxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgPC9kaXY+XG4gICAgICA8Yml6ZG9jLWRlc2lnbmVyLXByaXZpbGVnZXMgW2Zvcm1dPVwiZm9ybVwiPjwvYml6ZG9jLWRlc2lnbmVyLXByaXZpbGVnZXM+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG48L2JpemRvYy1kZXNpZ25lci1lbGVtZW50PlxuIl19
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvYWRtaW4vYXJjaGl0ZWN0dXJlL2VsZW1lbnRzL2Zvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2FkbWluL2FyY2hpdGVjdHVyZS9lbGVtZW50cy9mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsTUFBTSxFQUFFLFFBQVEsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUl4RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsV0FBVyxFQUFnQyxjQUFjLEVBQWUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRzVELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSw0QkFBNEI7SUEwQ25FLFlBQVksRUFBZSxFQUNqQixPQUFvQixFQUNwQixRQUF1QixFQUN2QixRQUF3QixFQUN4QixTQUFtQixFQUNuQixVQUE0QixFQUNwQyxPQUF3QixFQUNILEdBQWdCO1FBQ3JDLEtBQUssQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBUGhCLFlBQU8sR0FBUCxPQUFP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T0FBTztRQUNMLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBQ0QsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDOzhHQXpIVSxtQkFBbUIscU5BaURwQixXQUFXO2tHQWpEVixtQkFBbUIsMkVDZmhDLG1pTEFzSEE7OzJGRHZHYSxtQkFBbUI7a0JBRC9CLFNBQVM7OzswQkFrREwsTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbmplY3QsIEluamVjdG9yLCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IEF4aXNTZXR0aW5nc01vZGVsLCBJVG9vbHRpcFJlbmRlcmluZ0V2ZW50QXJncywgTGluZVNldHRpbmdzTW9kZWwsIFNwYXJrbGluZU1hcmtlclNldHRpbmdzTW9kZWwsIFNwYXJrbGluZVRvb2x0aXBTZXR0aW5nc01vZGVsIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWNoYXJ0cyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUGFuZXNSb3V0ZXIgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9zbG90cy9yb3V0ZXIuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBTeXN0ZW1TZXJ2aWNlLCBSYW5nZUluZm8gfSBmcm9tIFwiLi4vLi4vc3lzdGVtLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRGVzaWduZXJUeXBlRWxlbWVudENvbXBvbmVudCB9IGZyb20gXCIuLi9kZXNpZ25lci5iYXNlXCI7XHJcbmltcG9ydCB7IERlc2lnbmVyUmVmLCBFbGVtZW50SW5mbywgUGVybWlzc2lvbk1vZGVsLCBsb2NhbGl6ZVN0cmluZywgcHJvZ3JhbU5hbWUgfSBmcm9tIFwiLi4vZGVjbGFyYXRpb25zXCI7XHJcbmltcG9ydCB7IEZvcm1JbnZpdGVEaWFsb2cgfSBmcm9tIFwiLi9mb3JtLWludml0ZS5kaWFsb2dcIjtcclxuaW1wb3J0IHsgT3BlblBvbGljeSB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2NvbmZpZ3VyYXRpb25cIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEludGVybmF0aW9uYWxpemF0aW9uIH0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1iYXNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHsgdGVtcGxhdGVVcmw6ICdmb3JtLmNvbXBvbmVudC5odG1sJyB9KVxyXG5leHBvcnQgY2xhc3MgRm9ybURlc2lnbkNvbXBvbmVudCBleHRlbmRzIERlc2lnbmVyVHlwZUVsZW1lbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHJlYWRvbmx5IHJ1bGVzID0gdGhpcy5fZmIuYXJyYXk8Rm9ybUdyb3VwPihbXSk7XHJcbiAgcmVhZG9ubHkgZm9ybWF0ID0gdGhpcy5fZmIuZ3JvdXAoe1xyXG4gICAgcHJlZml4OiB0aGlzLl9mYi5jb250cm9sPHN0cmluZyB8IG51bGw+KG51bGwpLFxyXG4gICAgc3VmZml4OiB0aGlzLl9mYi5jb250cm9sPHN0cmluZyB8IG51bGw+KG51bGwpLFxyXG4gICAgZGlnaXRzOiB0aGlzLl9mYi5jb250cm9sPG51bWJlciB8IG51bGw+KG51bGwpXHJcbiAgfSk7XHJcbiAgcmVhZG9ubHkgZm9ybSA9IHRoaXMuX2ZiLmdyb3VwKHtcclxuICAgIHJ1bGVzOiB0aGlzLnJ1bGVzLFxyXG4gICAgZ3VpZGU6IG51bGwsXHJcbiAgICBmb3JtYXQ6IHRoaXMuX2ZiLmNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCksXHJcbiAgICBncm91cDogbnVsbCxcclxuICAgIGRlc2NyaXB0aW9uOiBudWxsLFxyXG4gICAgY3ViZXM6IG51bGxcclxuICB9KTtcclxuICB0aGVtZTogJ01hdGVyaWFsMycgfCAnTWF0ZXJpYWwzRGFyaycgPSB0aGlzLl9zZXNzaW9uLnRoZW1lLmRhcmsgPyAnTWF0ZXJpYWwzRGFyaycgOiAnTWF0ZXJpYWwzJztcclxuICByZWFkb25seSBheGlzU2V0dGluZ3MgPSB7XHJcbiAgICBsaW5lU2V0dGluZ3M6IHtcclxuICAgICAgb3BhY2l0eTogLjUsXHJcbiAgICAgIHdpZHRoOiAuNVxyXG4gICAgfSBhcyBMaW5lU2V0dGluZ3NNb2RlbCxcclxuICB9IGFzIEF4aXNTZXR0aW5nc01vZGVsO1xyXG4gIHJlYWRvbmx5IG1hcmtlclNldHRpbmdzID0ge1xyXG4gICAgdmlzaWJsZTogWydOb25lJ10sXHJcbiAgICBzaXplOiAxLjUsXHJcbiAgICBmaWxsOiB0aGlzLl9zZXNzaW9uLmdldEFjY2VudCgpLFxyXG4gIH0gYXMgU3BhcmtsaW5lTWFya2VyU2V0dGluZ3NNb2RlbDtcclxuICByZWFkb25seSB0b29sdGlwU2V0dGluZ3MgPSB7XHJcbiAgICB2aXNpYmxlOiB0cnVlLFxyXG4gICAgZm9ybWF0OiAnJHtkYXRlfScsXHJcbiAgICB0cmFja0xpbmVTZXR0aW5nczoge1xyXG4gICAgICB2aXNpYmxlOiB0cnVlXHJcbiAgICB9XHJcbiAgfSBhcyBTcGFya2xpbmVUb29sdGlwU2V0dGluZ3NNb2RlbDtcclxuICB1c2FnZTogUmFuZ2VJbmZvW107XHJcbiAgcHJpbWFyeSA9IHRoaXMuX3Nlc3Npb24uZ2V0UHJpbWVyeSgpO1xyXG4gIHJlYWRvbmx5IGVuYWJsZVJ0bCA9IHRoaXMuX3Nlc3Npb24uaW52ZXJzZTtcclxuICBsb2NhbGU6IHN0cmluZztcclxuICBndWlkZXM6IEVsZW1lbnRJbmZvW107XHJcbiAgY3ViZXM6IEVsZW1lbnRJbmZvW107XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfaW50bDogSW50ZXJuYXRpb25hbGl6YXRpb24gPSBuZXcgSW50ZXJuYXRpb25hbGl6YXRpb24oKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBjb25zdHJ1Y3RvcihmYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIF9yb3V0ZXI6IFBhbmVzUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBfc2VydmljZTogU3lzdGVtU2VydmljZSxcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgZWxlbWVudDogRWxlbWVudFJlZjxhbnk+LFxyXG4gICAgQEluamVjdChEZXNpZ25lclJlZikgcmVmOiBEZXNpZ25lclJlZikge1xyXG4gICAgc3VwZXIoZmIsIGVsZW1lbnQsIHJlZik7XHJcbiAgICB0aGlzLmxvY2FsZSA9IF9zZXNzaW9uLmxhbmd1YWdlO1xyXG4gICAgdGhpcy5fc2Vzc2lvbi50aGVtZUNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuXHJcbiAgICAgIHN1YnNjcmliZSh0ID0+IHtcclxuICAgICAgICB0aGlzLnRoZW1lID0gdC5kYXJrID8gJ01hdGVyaWFsM0RhcmsnIDogJ01hdGVyaWFsMyc7XHJcbiAgICAgICAgdGhpcy5wcmltYXJ5ID0gdGhpcy5fc2Vzc2lvbi5nZXRQcmltZXJ5KCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLm1vZGUgPT09ICd3aWRnZXQnKVxyXG4gICAgICB0aGlzLl9zZXJ2aWNlLnJhbmdlKHRoaXMubW9kZWwubmFtZSkuc3Vic2NyaWJlKHIgPT5cclxuICAgICAgICAvL25ldyBTcGFya2xpbmUoe1xyXG4gICAgICAgIC8vICBkYXRhTGFiZWxSZW5kZXJpbmc6IHRoaXMuZGF0YUxhYmVsUmVuZGVyaW5nLmJpbmQodGhpcylcclxuICAgICAgICAvL30sIHRoaXMudXNhZ2UubmF0aXZlRWxlbWVudClcclxuICAgICAgICB0aGlzLnVzYWdlID0gcik7XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5tb2RlbC5ydWxlcz8uXHJcbiAgICAgICAgZm9yRWFjaChyID0+IHRoaXMucnVsZXMucHVzaCh0aGlzLm5ld1J1bGUociksIHsgZW1pdEV2ZW50OiBmYWxzZSB9KSk7XHJcbiAgICAgIGNvbnN0IHsgZm9ybWF0IH0gPSB0aGlzLm1vZGVsO1xyXG4gICAgICBpZiAoZm9ybWF0KSB7XHJcbiAgICAgICAgY29uc3QgaW5kZXgxID0gZm9ybWF0LmluZGV4T2YoJ3snKSxcclxuICAgICAgICAgIGluZGV4MiA9IGZvcm1hdC5sYXN0SW5kZXhPZignfScpLFxyXG4gICAgICAgICAgaW5kZXgzID0gZm9ybWF0LmluZGV4T2YoJzonLCBpbmRleDEpO1xyXG4gICAgICAgIHRoaXMuZm9ybWF0LnBhdGNoVmFsdWUoe1xyXG4gICAgICAgICAgcHJlZml4OiBpbmRleDEgPiAwID8gZm9ybWF0LnN1YnN0cmluZygwLCBpbmRleDEpIDogbnVsbCxcclxuICAgICAgICAgIGRpZ2l0czogaW5kZXgyID4gaW5kZXgxICsgMiAmJiBpbmRleDMgPyBwYXJzZUludChmb3JtYXQuc3Vic3RyaW5nKGluZGV4MyArIDIsIGluZGV4MikpIDogbnVsbCxcclxuICAgICAgICAgIHN1ZmZpeDogaW5kZXgyIDwgZm9ybWF0Lmxlbmd0aCA/IGZvcm1hdC5zdWJzdHJpbmcoaW5kZXgyICsgMSkgOiBudWxsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5mb3JtYXQudmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDE1MCkpLnN1YnNjcmliZShmID0+IHtcclxuICAgICAgICBsZXQgZm9ybWF0ID0gZi5wcmVmaXggfHwgdGhpcy5tb2RlbC5uYW1lLmNoYXJBdCgwKTtcclxuICAgICAgICBpZiAoZi5kaWdpdHMpIGZvcm1hdCArPSBgezA6RCR7Zi5kaWdpdHN9fWA7XHJcbiAgICAgICAgaWYgKGYuc3VmZml4KSBmb3JtYXQgKz0gZi5zdWZmaXg7XHJcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLmZvcm1hdC5zZXRWYWx1ZShmb3JtYXQpO1xyXG4gICAgICAgIHRoaXMuZm9ybS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5tb2RlbC5yZXNvdXJjZVR5cGUgJiYgdGhpcy5kaXNhYmxlKCdncm91cCcsICdkZXNjcmlwdGlvbicpO1xyXG4gICAgICB0aGlzLl9yZWYudW5sb2NrKCkuc3Vic2NyaWJlKCgpID0+IHRoaXMuZW5hYmxlKCdncm91cCcsICdkZXNjcmlwdGlvbicpKTtcclxuICAgICAgdGhpcy5ndWlkZXMgPSB0aGlzLl9yZWYuZGVzaWduZXIuZ3VpZGVzO1xyXG4gICAgICB0aGlzLmN1YmVzID0gdGhpcy5fcmVmLmRlc2lnbmVyLmN1YmVzO1xyXG4gICAgfVxyXG4gIH1cclxuICB0b29sdGlwSW5pdGlhbGl6ZShldnQ6IElUb29sdGlwUmVuZGVyaW5nRXZlbnRBcmdzKSB7XHJcbiAgICBldnQudGV4dCA9IFt0aGlzLl9pbnRsLmZvcm1hdERhdGUodGhpcy5faW50bC5wYXJzZURhdGUoZXZ0LnRleHQhWzBdLCB7IGZvcm1hdDogJ0VFRSBNTU0gZGQgeXl5eScgfSkpXTtcclxuICB9XHJcbiAgbmV3UnVsZShydWxlPzogUGVybWlzc2lvbk1vZGVsKTogYW55IHtcclxuICAgIGNvbnN0IG5hbWUgPSB0aGlzLl9mYi5jb250cm9sKHJ1bGU/Lm5hbWUsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgICB0aXRsZSA9IHRoaXMuX2ZiLmNvbnRyb2wocnVsZT8udGl0bGUpO1xyXG4gICAgIXJ1bGUgJiYgdGl0bGUudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2ID0+IHYgJiYgbmFtZS5zZXRWYWx1ZSh2KSk7XHJcbiAgICByZXR1cm4gdGhpcy5fZmIuZ3JvdXAoe1xyXG4gICAgICBuYW1lLFxyXG4gICAgICB0aXRsZSxcclxuICAgICAgcm9sZXM6IHJ1bGU/LnJvbGVzLFxyXG4gICAgICBydWxlOiBydWxlPy5ydWxlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGludml0ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoRm9ybUludml0ZURpYWxvZywge1xyXG4gICAgICBwb2xpY3k6IE9wZW5Qb2xpY3kuRGlhbG9nLFxyXG4gICAgICBpY29uOiB0aGlzLm1vZGVsLmljb24sXHJcbiAgICAgIHRpdGxlOiBsb2NhbGl6ZVN0cmluZyh0aGlzLm1vZGVsLnRpdGxlKSxcclxuICAgICAgZ3JvdXA6IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0ludml0ZScpLFxyXG4gICAgICBpbmplY3RvcjogSW5qZWN0b3IuY3JlYXRlKHsgcHJvdmlkZXJzOiBbXSwgcGFyZW50OiB0aGlzLl9pbmplY3RvciB9KVxyXG4gICAgfSlcclxuICB9XHJcbiAgZGlhZ3JhbSgpIHtcclxuICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJ2FkbWluL2Zvcm1zJywgdGhpcy5tb2RlbC5uYW1lXSk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveS5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxiaXpkb2MtZGVzaWduZXItZWxlbWVudCBbZm9ybV09XCJmb3JtXCIgW3ByaXZpbGVnZXNdPVwidHJ1ZVwiIFtpY29uXT1cInRydWVcIiBbY29udGV4dF09XCJjb250ZXh0XCI+XHJcbiAgPG5nLXRlbXBsYXRlIGJpemRvY0NvbnRlbnQ+XHJcbiAgICBAaWYgKHVzYWdlKSB7XHJcbiAgICA8ZWpzLXNwYXJrbGluZSB3aWR0aD0nMjUwcHgnIGhlaWdodD0nMjAwcHgnXHJcbiAgICAgICAgICAgICAgICAgICB0eXBlPVwiTGluZVwiXHJcbiAgICAgICAgICAgICAgICAgICBbaWRdPVwibW9kZWwubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICBbZmlsbF09XCJwcmltYXJ5XCJcclxuICAgICAgICAgICAgICAgICAgIFtkYXRhU291cmNlXT1cInVzYWdlXCJcclxuICAgICAgICAgICAgICAgICAgIHhOYW1lPVwiZGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICB5TmFtZT1cImNvdW50XCJcclxuICAgICAgICAgICAgICAgICAgIGxpbmVXaWR0aD1cIjJcIlxyXG4gICAgICAgICAgICAgICAgICAgdmFsdWVUeXBlPVwiRGF0ZVRpbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgW2xvY2FsZV09XCJsb2NhbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgW21hcmtlclNldHRpbmdzXT1cIm1hcmtlclNldHRpbmdzXCJcclxuICAgICAgICAgICAgICAgICAgIFt0b29sdGlwU2V0dGluZ3NdPVwidG9vbHRpcFNldHRpbmdzXCJcclxuICAgICAgICAgICAgICAgICAgICh0b29sdGlwSW5pdGlhbGl6ZSk9XCJ0b29sdGlwSW5pdGlhbGl6ZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgIFtlbmFibGVSdGxdPVwiZW5hYmxlUnRsXCI+XHJcbiAgICA8L2Vqcy1zcGFya2xpbmU+XHJcbiAgICB9XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJkaWFncmFtKClcIiBbYml6ZG9jVG9vbHRpcF09XCInV29ya2Zsb3cnfHRyYW5zbGF0ZVwiIFtkaXNhYmxlZF09XCJtb2RlbC5kcmFmdFwiPjxtYXQtaWNvbj5zY2hlbWE8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJvcHRpb25zXCIgW2Rpc2FibGVkXT1cIm1vZGVsLmRyYWZ0XCI+PG1hdC1pY29uPm1vcmVfdmVydDwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgIDxtYXQtbWVudSAjb3B0aW9ucz5cclxuICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImludml0ZSgpXCI+e3snSW52aXRlJ3xsMThufX08L2J1dHRvbj5cclxuICAgICAgPC9tYXQtbWVudT5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbiAgPCEtLWVkaXQtLT5cclxuICA8bmctdGVtcGxhdGUgYml6ZG9jRWRpdENvbnRlbnQ+XHJcbiAgICA8bmctY29udGFpbmVyIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93IGZsZXhcIiBbZm9ybUdyb3VwXT1cImZvcm1hdFwiPlxyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgIDxtYXQtbGFiZWw+e3snUHJlZml4J3x0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cInByZWZpeFwiIC8+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAmbmJzcDtcclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmbGV4XCI+XHJcbiAgICAgICAgICA8bWF0LWxhYmVsPnt7J0RpZ2l0cyd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJkaWdpdHNcIiBtYXhsZW5ndGg9XCIyXCIgLz5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICZuYnNwO1xyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgIDxtYXQtbGFiZWw+e3snU3VmZml4J3x0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cInN1ZmZpeFwiIC8+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxiaXpkb2MtbG9jYWxpemVkLXN0cmluZyBmb3JtQ29udHJvbE5hbWU9XCJncm91cFwiIFtwbGFjZWhvbGRlcl09XCInR3JvdXAnfHRyYW5zbGF0ZVwiPjwvYml6ZG9jLWxvY2FsaXplZC1zdHJpbmc+XHJcbiAgICAgIDxiaXpkb2MtbG9jYWxpemVkLXN0cmluZyBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGlvblwiIFtwbGFjZWhvbGRlcl09XCInRGVzY3JpcHRpb24nfHRyYW5zbGF0ZVwiPjwvYml6ZG9jLWxvY2FsaXplZC1zdHJpbmc+XHJcbiAgICAgIEBpZiAoZ3VpZGVzLmxlbmd0aCkge1xyXG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPG1hdC1sYWJlbD57eydHdWlkZSd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJndWlkZVwiPlxyXG4gICAgICAgICAgPG1hdC1vcHRpb24+e3snTm9uZSd8dHJhbnNsYXRlfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICBAZm9yIChnIG9mIGd1aWRlczsgdHJhY2sgZykge1xyXG4gICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cImcubmFtZVwiPnt7Zy50aXRsZSB8bG9jYWxpemVkU3RyaW5nfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICB9XHJcbiAgICAgIEBpZiAoY3ViZXMubGVuZ3RoKSB7XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8bWF0LWxhYmVsPnt7J0N1YmUnfHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwiY3ViZXNcIiBtdWx0aXBsZT5cclxuICAgICAgICAgIEBmb3IgKGMgb2YgY3ViZXM7IHRyYWNrIGMpIHtcclxuICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJjLm5hbWVcIj57e2MudGl0bGUgfGxvY2FsaXplZFN0cmluZ319PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICA8bWF0LWhpbnQ+e3snRm9ybUN1YmVIZWxwJ3x0cmFuc2xhdGV9fTwvbWF0LWhpbnQ+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIH1cclxuICAgICAgPCEtLVJ1bGVzLS0+XHJcbiAgICAgIDxoMiBjbGFzcz1cIm1hdC1oMiByb3dcIj5cclxuICAgICAgICB7eydSdWxlcyd8dHJhbnNsYXRlfX1cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImFkZChydWxlcywgbmV3UnVsZSgpLCAnUnVsZScsICdydWxlJylcIiBbYml6ZG9jVG9vbHRpcF09XCInQWRkJ3x0cmFuc2xhdGVcIiB0eXBlPVwiYnV0dG9uXCI+PG1hdC1pY29uPmFkZF9jaXJjbGVfb3V0bGluZTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgIDwvaDI+XHJcbiAgICAgIDx0YWJsZSBmb3JtQXJyYXlOYW1lPVwicnVsZXNcIiBjbGFzcz1cIm1hdC1tZGMtdGFibGVcIiBjZGtEcm9wTGlzdCAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50LCBydWxlcylcIj5cclxuICAgICAgICBAZm9yIChyIG9mIHJ1bGVzLmNvbnRyb2xzOyB0cmFjayByOyBsZXQgaW5kZXggPSAkaW5kZXgpIHtcclxuICAgICAgICA8dHIgY2xhc3M9XCJtYXQtbWRjLXJvd1wiIFtmb3JtR3JvdXBdPVwiclwiIGNka0RyYWc+XHJcbiAgICAgICAgICA8dGQgY2xhc3M9XCJtYXQtbWRjLWNlbGxcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uIGNka0RyYWdIYW5kbGU+ZHJhZ19pbmRpY2F0b3I8L21hdC1pY29uPlxyXG4gICAgICAgICAgPC90ZD5cclxuICAgICAgICAgIDx0ZCBjbGFzcz1cIm1hdC1tZGMtY2VsbCBmbGV4XCIgd2lkdGg9XCI5OSVcIj5cclxuICAgICAgICAgICAge3tyLmNvbnRyb2xzLnRpdGxlLnZhbHVlfX1cclxuICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICA8dGQgY2xhc3M9XCJtYXQtbWRjLWNlbGxcIiBzdHlsZT1cIndoaXRlLXNwYWNlOiBwcmU7XCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJlZGl0KHIsICdSdWxlJywgJ3J1bGUnKVwiIFtiaXpkb2NUb29sdGlwXT1cIidFZGl0J3x0cmFuc2xhdGVcIiB0eXBlPVwiYnV0dG9uXCI+PG1hdC1pY29uPmVkaXQ8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwicnVsZXMucmVtb3ZlQXQoaW5kZXgpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1JlbW92ZSd8dHJhbnNsYXRlXCIgdHlwZT1cImJ1dHRvblwiPjxtYXQtaWNvbj5kZWxldGU8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgICAgICAgPC90ZD5cclxuICAgICAgICA8L3RyPlxyXG4gICAgICAgIH1cclxuICAgICAgPC90YWJsZT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbiAgPG5nLXRlbXBsYXRlIGJpemRvY0N1c3RvbUNvbnRlbnQ9XCJydWxlXCIgbGV0LWZvcm09XCJmb3JtXCI+XHJcbiAgICA8bmctY29udGFpbmVyIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZmxleFwiPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD57eydUaXRsZSd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZVwiIHJlcXVpcmVkIC8+XHJcbiAgICAgICAgICBAaWYgKGZvcm0uY29udHJvbHMudGl0bGUuaGFzRXJyb3IoJ3JlcXVpcmVkJykpIHtcclxuICAgICAgICAgIDxtYXQtZXJyb3IgW2lubmVySFRNTF09XCInUmVxdWlyZWRFcnInfHRyYW5zbGF0ZTooJ1RpdGxlJ3x0cmFuc2xhdGUpXCI+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAmbmJzcDtcclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmbGV4XCI+XHJcbiAgICAgICAgICA8bWF0LWxhYmVsPnt7J05hbWUnfHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiIHJlcXVpcmVkIC8+XHJcbiAgICAgICAgICBAaWYgKGZvcm0uY29udHJvbHMubmFtZS5oYXNFcnJvcigncmVxdWlyZWQnKSkge1xyXG4gICAgICAgICAgPG1hdC1lcnJvciBbaW5uZXJIVE1MXT1cIidSZXF1aXJlZEVycid8dHJhbnNsYXRlOignTmFtZSd8dHJhbnNsYXRlKVwiPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8Yml6ZG9jLWRlc2lnbmVyLXByaXZpbGVnZXMgW2Zvcm1dPVwiZm9ybVwiPjwvYml6ZG9jLWRlc2lnbmVyLXByaXZpbGVnZXM+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L2JpemRvYy1kZXNpZ25lci1lbGVtZW50PlxyXG4iXX0=