@bizdoc/core 2.1.13 → 2.2.0

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 (379) hide show
  1. package/esm2022/lib/admin/admin-dismiss.service.mjs +5 -5
  2. package/esm2022/lib/admin/admin-menu.component.mjs +5 -5
  3. package/esm2022/lib/admin/architecture/cube-axes-filter.component.mjs +5 -5
  4. package/esm2022/lib/admin/architecture/designer-element.component.mjs +23 -23
  5. package/esm2022/lib/admin/architecture/designer-privileges.component.mjs +6 -6
  6. package/esm2022/lib/admin/architecture/designer.base.mjs +16 -16
  7. package/esm2022/lib/admin/architecture/designer.component.mjs +7 -6
  8. package/esm2022/lib/admin/architecture/elements/action.component.mjs +4 -4
  9. package/esm2022/lib/admin/architecture/elements/analysis-view.component.mjs +6 -5
  10. package/esm2022/lib/admin/architecture/elements/analysis-widget.component.mjs +6 -5
  11. package/esm2022/lib/admin/architecture/elements/anomaly-rule.component.mjs +6 -5
  12. package/esm2022/lib/admin/architecture/elements/attribute.component.mjs +4 -4
  13. package/esm2022/lib/admin/architecture/elements/box-form.component.mjs +8 -7
  14. package/esm2022/lib/admin/architecture/elements/configuration-datasource.component.mjs +6 -5
  15. package/esm2022/lib/admin/architecture/elements/control.component.mjs +4 -4
  16. package/esm2022/lib/admin/architecture/elements/cube-index-utility.component.mjs +6 -5
  17. package/esm2022/lib/admin/architecture/elements/cube-view.component.mjs +6 -5
  18. package/esm2022/lib/admin/architecture/elements/cube.component.mjs +6 -6
  19. package/esm2022/lib/admin/architecture/elements/document-state-widget.component.mjs +8 -7
  20. package/esm2022/lib/admin/architecture/elements/documents-report.component.mjs +6 -5
  21. package/esm2022/lib/admin/architecture/elements/documents-widget.component.mjs +6 -5
  22. package/esm2022/lib/admin/architecture/elements/explore-view.component.mjs +6 -5
  23. package/esm2022/lib/admin/architecture/elements/folder.component.mjs +4 -4
  24. package/esm2022/lib/admin/architecture/elements/form-invite.dialog.mjs +6 -6
  25. package/esm2022/lib/admin/architecture/elements/form.component.mjs +6 -6
  26. package/esm2022/lib/admin/architecture/elements/guide.component.mjs +4 -4
  27. package/esm2022/lib/admin/architecture/elements/job.component.mjs +6 -6
  28. package/esm2022/lib/admin/architecture/elements/matrix-view.component.mjs +6 -5
  29. package/esm2022/lib/admin/architecture/elements/node.component.mjs +4 -4
  30. package/esm2022/lib/admin/architecture/elements/parallel-view.component.mjs +6 -5
  31. package/esm2022/lib/admin/architecture/elements/performance-report.component.mjs +6 -5
  32. package/esm2022/lib/admin/architecture/elements/performance-widget.component.mjs +6 -5
  33. package/esm2022/lib/admin/architecture/elements/pivot-view.component.mjs +6 -5
  34. package/esm2022/lib/admin/architecture/elements/policy.component.mjs +4 -4
  35. package/esm2022/lib/admin/architecture/elements/report.component.mjs +4 -4
  36. package/esm2022/lib/admin/architecture/elements/return-to-role-action.component.mjs +6 -5
  37. package/esm2022/lib/admin/architecture/elements/role.component.mjs +4 -4
  38. package/esm2022/lib/admin/architecture/elements/rule.component.mjs +4 -4
  39. package/esm2022/lib/admin/architecture/elements/state.component.mjs +4 -4
  40. package/esm2022/lib/admin/architecture/elements/sum-view.component.mjs +6 -5
  41. package/esm2022/lib/admin/architecture/elements/tasks-report.component.mjs +6 -5
  42. package/esm2022/lib/admin/architecture/elements/type.component.mjs +6 -6
  43. package/esm2022/lib/admin/architecture/elements/usage-report.component.mjs +6 -5
  44. package/esm2022/lib/admin/architecture/elements/utility.component.mjs +4 -4
  45. package/esm2022/lib/admin/architecture/elements/view.component.mjs +4 -4
  46. package/esm2022/lib/admin/architecture/elements/widget.component.mjs +4 -4
  47. package/esm2022/lib/admin/architecture/icon-picker.component.mjs +6 -6
  48. package/esm2022/lib/admin/core/ace.input.mjs +6 -6
  49. package/esm2022/lib/admin/core/color-picker.input.mjs +6 -6
  50. package/esm2022/lib/admin/core/localized-string.component.mjs +6 -6
  51. package/esm2022/lib/admin/core/search.input.mjs +26 -10
  52. package/esm2022/lib/admin/diff/configuration-diff.component.mjs +8 -7
  53. package/esm2022/lib/admin/document-trace/document-trace.component.mjs +8 -7
  54. package/esm2022/lib/admin/document-trace/reassign.dialog.mjs +6 -6
  55. package/esm2022/lib/admin/document-trace/trace-element.component.mjs +5 -5
  56. package/esm2022/lib/admin/form/designer/box-designer.component.mjs +12 -11
  57. package/esm2022/lib/admin/form/designer/properties.component.mjs +5 -5
  58. package/esm2022/lib/admin/form/designer/section.component.mjs +5 -5
  59. package/esm2022/lib/admin/form/designer/settings.component.mjs +6 -6
  60. package/esm2022/lib/admin/form/form.resolve.service.mjs +5 -5
  61. package/esm2022/lib/admin/form/workflow/node.component.mjs +5 -5
  62. package/esm2022/lib/admin/form/workflow/role-node.component.mjs +8 -7
  63. package/esm2022/lib/admin/form/workflow/workflow.component.mjs +5 -5
  64. package/esm2022/lib/admin/indices/manage-cube-index.component.mjs +8 -7
  65. package/esm2022/lib/admin/patterns/patterns.component.mjs +8 -7
  66. package/esm2022/lib/admin/permissions/permissions.component.mjs +8 -7
  67. package/esm2022/lib/admin/positions/positions-popup.component.mjs +6 -6
  68. package/esm2022/lib/admin/positions/positions.component.mjs +8 -7
  69. package/esm2022/lib/admin/profiler/outofoffice.component.mjs +7 -7
  70. package/esm2022/lib/admin/profiler/profiler.component.mjs +8 -7
  71. package/esm2022/lib/admin/system.service.mjs +5 -5
  72. package/esm2022/lib/admin/utility-wrapper.component.mjs +5 -5
  73. package/esm2022/lib/admin/utility.pane.component.mjs +5 -5
  74. package/esm2022/lib/app.component.mjs +8 -8
  75. package/esm2022/lib/bizdoc.module.mjs +5 -5
  76. package/esm2022/lib/browse/browse-items.component.mjs +6 -6
  77. package/esm2022/lib/browse/browse.mobile.component.mjs +5 -5
  78. package/esm2022/lib/browse/browse.pane.component.mjs +5 -5
  79. package/esm2022/lib/browse/expanded-item/expanded-item.component.mjs +5 -5
  80. package/esm2022/lib/browse/filter/filter.component.mjs +6 -6
  81. package/esm2022/lib/browse/folders-menu.component.mjs +5 -5
  82. package/esm2022/lib/chat/chat-info.mjs +6 -6
  83. package/esm2022/lib/chat/chat.mobile.component.mjs +4 -4
  84. package/esm2022/lib/chat/chat.service.mjs +5 -5
  85. package/esm2022/lib/chat/contacts.component.mjs +8 -8
  86. package/esm2022/lib/chat/contacts.pane.component.mjs +5 -5
  87. package/esm2022/lib/chat/conversation.component.mjs +6 -6
  88. package/esm2022/lib/chat/conversation.pane.component.mjs +5 -5
  89. package/esm2022/lib/compose/action/action-picker.component.mjs +6 -6
  90. package/esm2022/lib/compose/action/action.dialog.mjs +6 -6
  91. package/esm2022/lib/compose/action/action.pane.dialog.exp.mjs +5 -5
  92. package/esm2022/lib/compose/action/assign-action.component.mjs +7 -6
  93. package/esm2022/lib/compose/action/moveto-action.component.mjs +7 -6
  94. package/esm2022/lib/compose/action/return-action.component.mjs +7 -6
  95. package/esm2022/lib/compose/attachments/attachments.component.mjs +5 -5
  96. package/esm2022/lib/compose/attachments/preview/attachment-preview.component.mjs +6 -6
  97. package/esm2022/lib/compose/attachments/progress-button.directive.mjs +5 -5
  98. package/esm2022/lib/compose/box/box.component.mjs +7 -6
  99. package/esm2022/lib/compose/box/control.component.mjs +6 -6
  100. package/esm2022/lib/compose/box/row.component.mjs +5 -5
  101. package/esm2022/lib/compose/can-deactivate-changes.service.mjs +5 -5
  102. package/esm2022/lib/compose/comments/comment.component.mjs +6 -6
  103. package/esm2022/lib/compose/comments/comments.component.mjs +6 -6
  104. package/esm2022/lib/compose/comments/comments.pane.component.mjs +5 -5
  105. package/esm2022/lib/compose/comments/edit-comment.component.mjs +6 -6
  106. package/esm2022/lib/compose/comments/edits.component.mjs +6 -6
  107. package/esm2022/lib/compose/comments/quick-comment.component.exp.mjs +6 -6
  108. package/esm2022/lib/compose/comments/votes.component.mjs +6 -6
  109. package/esm2022/lib/compose/compose-resolve.service.mjs +9 -9
  110. package/esm2022/lib/compose/compose.mobile.component.mjs +6 -6
  111. package/esm2022/lib/compose/compose.pane.component.mjs +6 -6
  112. package/esm2022/lib/compose/copy/copy.dialog.mjs +5 -5
  113. package/esm2022/lib/compose/dismiss.service.mjs +5 -5
  114. package/esm2022/lib/compose/document-resolver.service.mjs +5 -5
  115. package/esm2022/lib/compose/document.component.mjs +5 -5
  116. package/esm2022/lib/compose/document.mobile.component.mjs +5 -5
  117. package/esm2022/lib/compose/document.pane.component.mjs +5 -5
  118. package/esm2022/lib/compose/events/events.component.mjs +5 -5
  119. package/esm2022/lib/compose/form-selector/form-selector.sheet.mjs +5 -5
  120. package/esm2022/lib/compose/form.component.mjs +5 -5
  121. package/esm2022/lib/compose/new-menu.component.mjs +5 -5
  122. package/esm2022/lib/compose/privilage.directive.mjs +11 -11
  123. package/esm2022/lib/compose/recipient-resolver.service.mjs +5 -5
  124. package/esm2022/lib/compose/state.component.mjs +5 -5
  125. package/esm2022/lib/compose/tag/tags.component.mjs +6 -6
  126. package/esm2022/lib/compose/trace/flow.component.mjs +5 -5
  127. package/esm2022/lib/compose/trace/people.component.mjs +5 -5
  128. package/esm2022/lib/compose/trace/trace.base.mjs +5 -5
  129. package/esm2022/lib/compose/trace/trace.component.mjs +5 -5
  130. package/esm2022/lib/compose/trace/trace.pane.component.mjs +5 -5
  131. package/esm2022/lib/compose/version-compare/version-compare.component.mjs +5 -5
  132. package/esm2022/lib/compose/version-compare/version-compare.directive.mjs +16 -16
  133. package/esm2022/lib/compose/version-compare/version.pane.component.mjs +5 -5
  134. package/esm2022/lib/core/account.service.mjs +5 -5
  135. package/esm2022/lib/core/animated-icon/animated-icon.directive.mjs +5 -5
  136. package/esm2022/lib/core/avatar/avatar.component.mjs +5 -5
  137. package/esm2022/lib/core/checkbox.mjs +4 -4
  138. package/esm2022/lib/core/component-factory-resolver.mjs +5 -5
  139. package/esm2022/lib/core/datasource.service.mjs +5 -5
  140. package/esm2022/lib/core/fields/address.designer.mjs +7 -6
  141. package/esm2022/lib/core/fields/address.field.mjs +6 -5
  142. package/esm2022/lib/core/fields/autocomplete.field.mjs +14 -12
  143. package/esm2022/lib/core/fields/checkbox.designer.mjs +7 -6
  144. package/esm2022/lib/core/fields/checkbox.field.mjs +7 -6
  145. package/esm2022/lib/core/fields/checklist.designer.mjs +8 -7
  146. package/esm2022/lib/core/fields/checklist.field.mjs +6 -5
  147. package/esm2022/lib/core/fields/date-range.designer.mjs +7 -6
  148. package/esm2022/lib/core/fields/date-range.field.mjs +7 -6
  149. package/esm2022/lib/core/fields/date.designer.mjs +7 -6
  150. package/esm2022/lib/core/fields/date.field.mjs +6 -5
  151. package/esm2022/lib/core/fields/expression.field.mjs +11 -9
  152. package/esm2022/lib/core/fields/file.designer.mjs +8 -7
  153. package/esm2022/lib/core/fields/file.field.mjs +6 -5
  154. package/esm2022/lib/core/fields/html.designer.mjs +7 -6
  155. package/esm2022/lib/core/fields/html.field.mjs +6 -5
  156. package/esm2022/lib/core/fields/input.designer.mjs +7 -6
  157. package/esm2022/lib/core/fields/input.field.mjs +6 -5
  158. package/esm2022/lib/core/fields/localized-string.field.mjs +11 -9
  159. package/esm2022/lib/core/fields/numeric.designer.mjs +7 -6
  160. package/esm2022/lib/core/fields/numeric.field.mjs +6 -5
  161. package/esm2022/lib/core/fields/options.base.mjs +9 -9
  162. package/esm2022/lib/core/fields/options.component.mjs +5 -5
  163. package/esm2022/lib/core/fields/radio-button.designer.mjs +7 -6
  164. package/esm2022/lib/core/fields/radio-button.field.mjs +7 -6
  165. package/esm2022/lib/core/fields/select.designer.mjs +8 -7
  166. package/esm2022/lib/core/fields/select.field.mjs +6 -5
  167. package/esm2022/lib/core/fields/signature.designer.mjs +7 -6
  168. package/esm2022/lib/core/fields/signature.field.mjs +7 -6
  169. package/esm2022/lib/core/fields/switch.field.mjs +10 -18
  170. package/esm2022/lib/core/fields/textarea.designer.mjs +7 -6
  171. package/esm2022/lib/core/fields/textarea.field.mjs +6 -5
  172. package/esm2022/lib/core/fields/time.designer.mjs +7 -6
  173. package/esm2022/lib/core/fields/time.field.mjs +6 -5
  174. package/esm2022/lib/core/fields/timespan.field.mjs +11 -9
  175. package/esm2022/lib/core/fields/yesno.designer.mjs +8 -7
  176. package/esm2022/lib/core/fields/yesno.field.mjs +8 -7
  177. package/esm2022/lib/core/guide/guide.component.mjs +6 -6
  178. package/esm2022/lib/core/guide/guide.service.mjs +6 -6
  179. package/esm2022/lib/core/guide/help-tip.component.mjs +6 -6
  180. package/esm2022/lib/core/http.interceptor.mjs +6 -6
  181. package/esm2022/lib/core/hub.service.mjs +5 -5
  182. package/esm2022/lib/core/identity/identity.component.mjs +6 -6
  183. package/esm2022/lib/core/info/attachment-info.service.mjs +5 -5
  184. package/esm2022/lib/core/info/document-info.service.mjs +5 -5
  185. package/esm2022/lib/core/info/location-info.component.mjs +6 -6
  186. package/esm2022/lib/core/info/map-info.mjs +5 -5
  187. package/esm2022/lib/core/inputs/address.input.mjs +7 -7
  188. package/esm2022/lib/core/inputs/auto-complete.input.mjs +7 -7
  189. package/esm2022/lib/core/inputs/combination-picker-body.mjs +6 -6
  190. package/esm2022/lib/core/inputs/combination-picker.mjs +6 -6
  191. package/esm2022/lib/core/inputs/combination-pool.mjs +5 -5
  192. package/esm2022/lib/core/inputs/file.input.mjs +6 -6
  193. package/esm2022/lib/core/inputs/select.input.mjs +7 -7
  194. package/esm2022/lib/core/inputs/signature.input.mjs +6 -6
  195. package/esm2022/lib/core/inputs/time-picker.mjs +6 -6
  196. package/esm2022/lib/core/inputs/timespan.input.mjs +6 -6
  197. package/esm2022/lib/core/layout.component.mjs +5 -5
  198. package/esm2022/lib/core/lottie-animation.mjs +5 -5
  199. package/esm2022/lib/core/mailbox.service.mjs +5 -5
  200. package/esm2022/lib/core/none.component.mjs +4 -4
  201. package/esm2022/lib/core/pipes/action.pipe.mjs +5 -5
  202. package/esm2022/lib/core/pipes/calendar.pipe.mjs +5 -5
  203. package/esm2022/lib/core/pipes/date-format.pipe.mjs +5 -5
  204. package/esm2022/lib/core/pipes/daterange.pipe.mjs +8 -8
  205. package/esm2022/lib/core/pipes/difference.pipe.mjs +4 -4
  206. package/esm2022/lib/core/pipes/duration-format.pipe.mjs +5 -5
  207. package/esm2022/lib/core/pipes/duration.pipe.mjs +5 -5
  208. package/esm2022/lib/core/pipes/form.pipe.mjs +5 -5
  209. package/esm2022/lib/core/pipes/join.pipe.mjs +5 -5
  210. package/esm2022/lib/core/pipes/localized-string.pipe.mjs +5 -5
  211. package/esm2022/lib/core/pipes/role.pipe.mjs +5 -5
  212. package/esm2022/lib/core/pipes/sanitize-html.pipe.mjs +5 -5
  213. package/esm2022/lib/core/pipes/sort.pipe.mjs +7 -7
  214. package/esm2022/lib/core/pipes/state.pipe.mjs +5 -5
  215. package/esm2022/lib/core/pipes/time-ago.pipe.mjs +9 -9
  216. package/esm2022/lib/core/pipes/translate.pipe.mjs +13 -13
  217. package/esm2022/lib/core/pipes/type-value.pipe.mjs +5 -5
  218. package/esm2022/lib/core/pipes/user-name.pipe.mjs +5 -5
  219. package/esm2022/lib/core/popup/popup.component.mjs +6 -6
  220. package/esm2022/lib/core/popup/popup.service.mjs +5 -5
  221. package/esm2022/lib/core/popup/tooltip.directive.mjs +10 -10
  222. package/esm2022/lib/core/prompt/ask/ask.dialog.mjs +6 -6
  223. package/esm2022/lib/core/prompt/mask/mask.component.mjs +6 -6
  224. package/esm2022/lib/core/prompt.service.mjs +5 -5
  225. package/esm2022/lib/core/router.mjs +9 -9
  226. package/esm2022/lib/core/save-changes.dialog.mjs +4 -4
  227. package/esm2022/lib/core/session.service.mjs +6 -6
  228. package/esm2022/lib/core/slots/router.directive.mjs +5 -5
  229. package/esm2022/lib/core/slots/router.service.mjs +5 -5
  230. package/esm2022/lib/core/slots/slots.component.mjs +6 -6
  231. package/esm2022/lib/core/tagging/documents.component.mjs +5 -5
  232. package/esm2022/lib/core/tagging/edit-input.component.mjs +5 -5
  233. package/esm2022/lib/core/tagging/emoji.component.mjs +5 -5
  234. package/esm2022/lib/core/tagging/tagging-item.directive.mjs +4 -4
  235. package/esm2022/lib/core/tagging/tagging.component-base.mjs +4 -4
  236. package/esm2022/lib/core/tagging/tagging.directive.mjs +6 -6
  237. package/esm2022/lib/core/tagging/tagging.pipe.mjs +5 -5
  238. package/esm2022/lib/core/tagging/users.component.mjs +5 -5
  239. package/esm2022/lib/core/translate.service.mjs +5 -5
  240. package/esm2022/lib/core/window-title.service.mjs +6 -6
  241. package/esm2022/lib/cube/accum/accum.component.mjs +5 -5
  242. package/esm2022/lib/cube/chart/chart.component.mjs +5 -5
  243. package/esm2022/lib/cube/cube-info.service.mjs +5 -5
  244. package/esm2022/lib/cube/cube-menu.component.mjs +5 -5
  245. package/esm2022/lib/cube/cube-view.component.mjs +5 -5
  246. package/esm2022/lib/cube/cube.service.mjs +6 -6
  247. package/esm2022/lib/cube/explore/document-item.component.mjs +8 -7
  248. package/esm2022/lib/cube/explore/explore-item.component.mjs +5 -5
  249. package/esm2022/lib/cube/explore/explore-items.component.mjs +5 -5
  250. package/esm2022/lib/cube/explore/explore.pane.component.mjs +5 -5
  251. package/esm2022/lib/cube/explore/item-resolver.service.mjs +9 -9
  252. package/esm2022/lib/cube/explore/item.pane.component.mjs +5 -5
  253. package/esm2022/lib/cube/filter/filter-tags.component.exp.mjs +5 -5
  254. package/esm2022/lib/cube/filter/filter.component.mjs +5 -5
  255. package/esm2022/lib/cube/grid/grid.component.mjs +5 -5
  256. package/esm2022/lib/cube/grid/spreadsheet.component.mjs +5 -5
  257. package/esm2022/lib/cube/matrix/matrix.base.mjs +5 -5
  258. package/esm2022/lib/cube/matrix/matrix.mobile.component.mjs +5 -5
  259. package/esm2022/lib/cube/matrix/matrix.pane.component.mjs +5 -5
  260. package/esm2022/lib/cube/matrix/popup.component.mjs +6 -6
  261. package/esm2022/lib/cube/matrix/table.component.mjs +5 -5
  262. package/esm2022/lib/cube/parallel/parallel.component.mjs +5 -5
  263. package/esm2022/lib/cube/pivot/pivot.component.mjs +5 -5
  264. package/esm2022/lib/cube/sum/sum.component.mjs +5 -5
  265. package/esm2022/lib/cube/view-base.mjs +5 -5
  266. package/esm2022/lib/cube/view.mobile.component.mjs +5 -5
  267. package/esm2022/lib/cube/view.pane.component.mjs +5 -5
  268. package/esm2022/lib/dashboard/actions/actions.widget.mjs +8 -7
  269. package/esm2022/lib/dashboard/cube/accum-cube.widget.mjs +5 -5
  270. package/esm2022/lib/dashboard/cube/compare.widget.mjs +7 -6
  271. package/esm2022/lib/dashboard/cube/cube-analysis.base.mjs +5 -5
  272. package/esm2022/lib/dashboard/cube/cube-analysis.widget.mjs +7 -6
  273. package/esm2022/lib/dashboard/cube/cube-chart.widget.mjs +5 -5
  274. package/esm2022/lib/dashboard/cube/document-state.widget.mjs +7 -6
  275. package/esm2022/lib/dashboard/cube/documents.widget.mjs +7 -6
  276. package/esm2022/lib/dashboard/cube/filter/filter.component.mjs +7 -6
  277. package/esm2022/lib/dashboard/dashboard.component.mjs +6 -6
  278. package/esm2022/lib/dashboard/dashboard.pane.component.mjs +5 -5
  279. package/esm2022/lib/dashboard/recents/recents.widget.mjs +8 -7
  280. package/esm2022/lib/dashboard/score/activity.widget.mjs +7 -6
  281. package/esm2022/lib/dashboard/score/compare-groups.widget.mjs +7 -6
  282. package/esm2022/lib/dashboard/score/peers-performance.widget.mjs +7 -6
  283. package/esm2022/lib/dashboard/score/pending-results.widget.mjs +7 -6
  284. package/esm2022/lib/dashboard/score/personal-score.widget.mjs +7 -6
  285. package/esm2022/lib/dashboard/widget-item.component.mjs +5 -5
  286. package/esm2022/lib/designer.module.mjs +5 -5
  287. package/esm2022/lib/desktop.module.mjs +5 -5
  288. package/esm2022/lib/home/about/about.dialog.mjs +5 -5
  289. package/esm2022/lib/home/home-base.component.mjs +5 -5
  290. package/esm2022/lib/home/home.desktop.component.mjs +7 -7
  291. package/esm2022/lib/home/home.mobile.component.mjs +6 -6
  292. package/esm2022/lib/home/notifications/notifications.component.mjs +5 -5
  293. package/esm2022/lib/home/options/options.component.mjs +6 -6
  294. package/esm2022/lib/home/outofoffice/outofoffice.component.mjs +6 -6
  295. package/esm2022/lib/home/sign/sign.component.mjs +6 -6
  296. package/esm2022/lib/home/tools.component.mjs +6 -6
  297. package/esm2022/lib/impersonate/impersonate.component.mjs +5 -5
  298. package/esm2022/lib/mobile.module.mjs +5 -5
  299. package/esm2022/lib/modules/chart.module.mjs +5 -5
  300. package/esm2022/lib/modules/circular-gauge.module.mjs +5 -5
  301. package/esm2022/lib/modules/date.adapter.mjs +3 -3
  302. package/esm2022/lib/modules/datepicker.intl.mjs +5 -5
  303. package/esm2022/lib/modules/dayjs.module.mjs +5 -5
  304. package/esm2022/lib/modules/diagram.module.mjs +5 -5
  305. package/esm2022/lib/modules/gantt.module.mjs +5 -5
  306. package/esm2022/lib/modules/grid.module.mjs +5 -5
  307. package/esm2022/lib/modules/linear-gauge.module.mjs +5 -5
  308. package/esm2022/lib/modules/material.module.mjs +5 -5
  309. package/esm2022/lib/modules/paginator.intl.mjs +5 -5
  310. package/esm2022/lib/modules/pivot.module.mjs +5 -5
  311. package/esm2022/lib/modules/schedule.module.mjs +5 -5
  312. package/esm2022/lib/modules/spreadsheet.module.mjs +5 -5
  313. package/esm2022/lib/modules/stepper.intl.mjs +5 -5
  314. package/esm2022/lib/modules/texteditor.module.mjs +5 -5
  315. package/esm2022/lib/notifications/filter.component.mjs +5 -5
  316. package/esm2022/lib/notifications/notifications-table.component.mjs +5 -5
  317. package/esm2022/lib/notifications/notifications.mobile.component.mjs +5 -5
  318. package/esm2022/lib/notifications/notifications.pane.component.mjs +5 -5
  319. package/esm2022/lib/notifications/notifications.service.mjs +5 -5
  320. package/esm2022/lib/notifications/types/commented.notification.mjs +6 -6
  321. package/esm2022/lib/notifications/types/cube-anomaly.notification.mjs +6 -6
  322. package/esm2022/lib/notifications/types/escalated.notification.mjs +6 -6
  323. package/esm2022/lib/notifications/types/invite.notification.mjs +6 -6
  324. package/esm2022/lib/notifications/types/liked.notification.mjs +6 -6
  325. package/esm2022/lib/notifications/types/long-running-task.notification.mjs +6 -6
  326. package/esm2022/lib/notifications/types/notification-base.mjs +5 -5
  327. package/esm2022/lib/notifications/types/nudge.notification.mjs +6 -6
  328. package/esm2022/lib/notifications/types/state-changed.notification.mjs +6 -6
  329. package/esm2022/lib/notifications/types/tagged.notification.mjs +6 -6
  330. package/esm2022/lib/notifications/types/text.notification.mjs +6 -6
  331. package/esm2022/lib/notifications/types/upcoming-event.notification.mjs +6 -6
  332. package/esm2022/lib/options/options.component.mjs +6 -6
  333. package/esm2022/lib/options/options.service.mjs +5 -5
  334. package/esm2022/lib/reports/arguments-component.mjs +5 -5
  335. package/esm2022/lib/reports/cube/documents.component.mjs +7 -6
  336. package/esm2022/lib/reports/cube/grid-documents.component.mjs +5 -5
  337. package/esm2022/lib/reports/cube/role-performance.component.mjs +7 -6
  338. package/esm2022/lib/reports/cube/table-documents.component.mjs +5 -5
  339. package/esm2022/lib/reports/cube/usage-args.component.mjs +7 -6
  340. package/esm2022/lib/reports/cube/usage-base.mjs +5 -5
  341. package/esm2022/lib/reports/cube/usage-chart.component.mjs +5 -5
  342. package/esm2022/lib/reports/cube/usage-pivot.component.mjs +5 -5
  343. package/esm2022/lib/reports/cube/usage.component.mjs +7 -6
  344. package/esm2022/lib/reports/report-viewer.component.mjs +5 -5
  345. package/esm2022/lib/reports/report.mobile.component.mjs +5 -5
  346. package/esm2022/lib/reports/report.pane.component.mjs +5 -5
  347. package/esm2022/lib/reports/reports-menu.component.mjs +5 -5
  348. package/esm2022/lib/reports/substitution/substitution.component.mjs +6 -5
  349. package/esm2022/lib/reports/table/table-view.component.mjs +4 -4
  350. package/esm2022/lib/reports/tasks/tasks.component.mjs +7 -6
  351. package/esm2022/lib/scheduler/schedule.component.mjs +5 -5
  352. package/esm2022/lib/scheduler/scheduler.mobile.component.mjs +5 -5
  353. package/esm2022/lib/scheduler/scheduler.pane.component.mjs +5 -5
  354. package/esm2022/lib/search/cube.component.mjs +7 -6
  355. package/esm2022/lib/search/document.component.mjs +7 -6
  356. package/esm2022/lib/search/guide.component.mjs +5 -5
  357. package/esm2022/lib/search/path.component.mjs +7 -6
  358. package/esm2022/lib/search/search.service.mjs +5 -5
  359. package/esm2022/lib/shared.module.mjs +5 -5
  360. package/esm2022/lib/system.module.mjs +5 -5
  361. package/esm2022/lib/views/cube/chart.component.mjs +7 -6
  362. package/esm2022/lib/views/cube/cube-base.mjs +5 -5
  363. package/esm2022/lib/views/cube/explore.component.mjs +7 -6
  364. package/esm2022/lib/views/cube/matrix.component.mjs +7 -6
  365. package/esm2022/lib/views/cube/parallel.component.mjs +7 -6
  366. package/esm2022/lib/views/cube/pivot.component.mjs +7 -6
  367. package/esm2022/lib/views/cube/sum.component.mjs +7 -6
  368. package/esm2022/lib/views/cube/view.component.mjs +7 -6
  369. package/esm2022/lib/views/timeline/timeline.component.exp.mjs +9 -7
  370. package/esm2022/lib/views/view-item.component.mjs +5 -5
  371. package/esm2022/lib/views/views.component.mjs +5 -5
  372. package/esm2022/lib/views/views.mobile.component.mjs +5 -5
  373. package/esm2022/lib/views/views.pane.component.mjs +5 -5
  374. package/fesm2022/bizdoc-core.mjs +1673 -1666
  375. package/fesm2022/bizdoc-core.mjs.map +1 -1
  376. package/lib/core/fields/switch.field.d.ts +1 -0
  377. package/lib/core/fields/yesno.field.d.ts +1 -1
  378. package/lib/modules/date.adapter.d.ts +1 -2
  379. package/package.json +13 -13
@@ -114,11 +114,11 @@ export class TraceElementComponent {
114
114
  userId &&
115
115
  this._chat.open(userId);
116
116
  }
117
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TraceElementComponent, deps: [{ token: i1.PaneRef }, { token: i2.ChatInfo }, { token: i3.PromptService }, { token: i4.PanesRouter }, { token: i5.TranslateService }, { token: i6.AccountService }, { token: i7.MatDialog }, { token: i8.SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
118
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TraceElementComponent, selector: "bizdoc-document-trace-element", ngImport: i0, template: "<h4 class=\"mat-body-2 center\">\r\n <span *ngIf=\"estimate\">{{'Estimate' | translate}}</span>\r\n <span *ngIf=\"none\">{{'NoEstimate' | translate}}</span>\r\n <span *ngIf=\"skip\">{{'Skipped' | translate}}</span>\r\n</h4>\r\n\r\n<h4 *ngIf=\"recurring\" class=\"message mat-body-1\"><mat-icon>info</mat-icon> {{'TimelineMore' | translate}}</h4>\r\n\r\n<table class=\"mat-mdc-table\">\r\n <tbody role=\"rowgroup\">\r\n <tr *ngFor=\"let r of recipients\" class=\"mat-mdc-row\">\r\n <td class=\"mat-mdc-cell\" (click)=\"chat($event)\" [innerHTML]=\"recipientInfo(r) | async | sanitizeHtml\">\r\n </td>\r\n <td class=\"mat-mdc-cell\">\r\n <span *ngIf=\"r.action\">\r\n {{r.action | action : 'past'}}\r\n </span>\r\n <span *ngIf=\"r.pending\">\r\n <span *ngIf=\"!r.estimate; else estimate\">\r\n {{'IsPending' | translate}}\r\n </span>\r\n </span>\r\n </td>\r\n <td class=\"mat-mdc-cell\">\r\n <span *ngIf=\"!r.estimate; estimate\">{{r.received || r.replied | amDateFormat: 'lll'}}</span>\r\n </td>\r\n <td class=\"mat-mdc-cell\">\r\n <button mat-icon-button *ngIf=\"!r.estimate\" [matMenuTriggerFor]=\"options\" [disabled]=\"!r.pending\"><mat-icon>more_vert</mat-icon></button>\r\n <mat-menu #options>\r\n <button mat-menu-item (click)=\"assign(r)\" *ngIf=\"r.pending\">{{'Reassign'|translate}}</button>\r\n </mat-menu>\r\n </td>\r\n </tr>\r\n <tr *ngFor=\"let l of log\" class=\"mat-mdc-row\">\r\n <td class=\"mat-mdc-cell\" (click)=\"chat($event)\" [innerHTML]=\"logInfo(l) | async | sanitizeHtml\">\r\n </td>\r\n <td [ngSwitch]=\"l.type\" class=\"mat-mdc-cell\">\r\n <span *ngSwitchCase=\"'StateChange'\">\r\n {{l.state | state : (l.estimate ? 'future' : 'past')}}\r\n </span>\r\n <span *ngSwitchCase=\"'ModelChange'\">\r\n {{'Changed' | translate}}\r\n </span>\r\n </td>\r\n <td class=\"mat-mdc-cell\">\r\n <span *ngIf=\"!l.estimate\">{{l.time | amDateFormat: 'lll'}}</span>\r\n </td>\r\n <td class=\"mat-mdc-cell\">\r\n <button mat-icon-button (click)=\"compare(l)\" *ngIf=\"l.type==='ModelChange'\" [bizdocTooltip]=\"'Compare'|translate\"><mat-icon>visibility</mat-icon></button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n", styles: [":host{padding:8px;min-width:300px;display:block}.message{text-align:center}.message>*{vertical-align:text-bottom}table{background:none;width:100%}table tr td{padding-left:2px;padding-right:2px}\n"], dependencies: [{ kind: "directive", type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i9.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i9.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i10.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i11.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i12.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i12.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i12.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i13.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: i14.DateFormatPipe, name: "amDateFormat" }, { kind: "pipe", type: i15.StatePipe, name: "state" }, { kind: "pipe", type: i16.ActionPipe, name: "action" }, { kind: "pipe", type: i17.SanitizeHtmlPipe, name: "sanitizeHtml" }, { kind: "pipe", type: i18.TranslatePipe, name: "translate" }] }); }
117
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: TraceElementComponent, deps: [{ token: i1.PaneRef }, { token: i2.ChatInfo }, { token: i3.PromptService }, { token: i4.PanesRouter }, { token: i5.TranslateService }, { token: i6.AccountService }, { token: i7.MatDialog }, { token: i8.SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
118
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.1", type: TraceElementComponent, selector: "bizdoc-document-trace-element", ngImport: i0, template: "<h4 class=\"mat-body-2 center\">\r\n <span *ngIf=\"estimate\">{{'Estimate' | translate}}</span>\r\n <span *ngIf=\"none\">{{'NoEstimate' | translate}}</span>\r\n <span *ngIf=\"skip\">{{'Skipped' | translate}}</span>\r\n</h4>\r\n\r\n<h4 *ngIf=\"recurring\" class=\"message mat-body-1\"><mat-icon>info</mat-icon> {{'TimelineMore' | translate}}</h4>\r\n\r\n<table class=\"mat-mdc-table\">\r\n <tbody role=\"rowgroup\">\r\n <tr *ngFor=\"let r of recipients\" class=\"mat-mdc-row\">\r\n <td class=\"mat-mdc-cell\" (click)=\"chat($event)\" [innerHTML]=\"recipientInfo(r) | async | sanitizeHtml\">\r\n </td>\r\n <td class=\"mat-mdc-cell\">\r\n <span *ngIf=\"r.action\">\r\n {{r.action | action : 'past'}}\r\n </span>\r\n <span *ngIf=\"r.pending\">\r\n <span *ngIf=\"!r.estimate; else estimate\">\r\n {{'IsPending' | translate}}\r\n </span>\r\n </span>\r\n </td>\r\n <td class=\"mat-mdc-cell\">\r\n <span *ngIf=\"!r.estimate; estimate\">{{r.received || r.replied | amDateFormat: 'lll'}}</span>\r\n </td>\r\n <td class=\"mat-mdc-cell\">\r\n <button mat-icon-button *ngIf=\"!r.estimate\" [matMenuTriggerFor]=\"options\" [disabled]=\"!r.pending\"><mat-icon>more_vert</mat-icon></button>\r\n <mat-menu #options>\r\n <button mat-menu-item (click)=\"assign(r)\" *ngIf=\"r.pending\">{{'Reassign'|translate}}</button>\r\n </mat-menu>\r\n </td>\r\n </tr>\r\n <tr *ngFor=\"let l of log\" class=\"mat-mdc-row\">\r\n <td class=\"mat-mdc-cell\" (click)=\"chat($event)\" [innerHTML]=\"logInfo(l) | async | sanitizeHtml\">\r\n </td>\r\n <td [ngSwitch]=\"l.type\" class=\"mat-mdc-cell\">\r\n <span *ngSwitchCase=\"'StateChange'\">\r\n {{l.state | state : (l.estimate ? 'future' : 'past')}}\r\n </span>\r\n <span *ngSwitchCase=\"'ModelChange'\">\r\n {{'Changed' | translate}}\r\n </span>\r\n </td>\r\n <td class=\"mat-mdc-cell\">\r\n <span *ngIf=\"!l.estimate\">{{l.time | amDateFormat: 'lll'}}</span>\r\n </td>\r\n <td class=\"mat-mdc-cell\">\r\n <button mat-icon-button (click)=\"compare(l)\" *ngIf=\"l.type==='ModelChange'\" [bizdocTooltip]=\"'Compare'|translate\"><mat-icon>visibility</mat-icon></button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n", styles: [":host{padding:8px;min-width:300px;display:block}.message{text-align:center}.message>*{vertical-align:text-bottom}table{background:none;width:100%}table tr td{padding-left:2px;padding-right:2px}\n"], dependencies: [{ kind: "directive", type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i9.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i9.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i10.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i11.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i12.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: i12.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i12.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: i13.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: i14.DateFormatPipe, name: "amDateFormat" }, { kind: "pipe", type: i15.StatePipe, name: "state" }, { kind: "pipe", type: i16.ActionPipe, name: "action" }, { kind: "pipe", type: i17.SanitizeHtmlPipe, name: "sanitizeHtml" }, { kind: "pipe", type: i18.TranslatePipe, name: "translate" }] }); }
119
119
  }
120
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TraceElementComponent, decorators: [{
120
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: TraceElementComponent, decorators: [{
121
121
  type: Component,
122
122
  args: [{ selector: 'bizdoc-document-trace-element', template: "<h4 class=\"mat-body-2 center\">\r\n <span *ngIf=\"estimate\">{{'Estimate' | translate}}</span>\r\n <span *ngIf=\"none\">{{'NoEstimate' | translate}}</span>\r\n <span *ngIf=\"skip\">{{'Skipped' | translate}}</span>\r\n</h4>\r\n\r\n<h4 *ngIf=\"recurring\" class=\"message mat-body-1\"><mat-icon>info</mat-icon> {{'TimelineMore' | translate}}</h4>\r\n\r\n<table class=\"mat-mdc-table\">\r\n <tbody role=\"rowgroup\">\r\n <tr *ngFor=\"let r of recipients\" class=\"mat-mdc-row\">\r\n <td class=\"mat-mdc-cell\" (click)=\"chat($event)\" [innerHTML]=\"recipientInfo(r) | async | sanitizeHtml\">\r\n </td>\r\n <td class=\"mat-mdc-cell\">\r\n <span *ngIf=\"r.action\">\r\n {{r.action | action : 'past'}}\r\n </span>\r\n <span *ngIf=\"r.pending\">\r\n <span *ngIf=\"!r.estimate; else estimate\">\r\n {{'IsPending' | translate}}\r\n </span>\r\n </span>\r\n </td>\r\n <td class=\"mat-mdc-cell\">\r\n <span *ngIf=\"!r.estimate; estimate\">{{r.received || r.replied | amDateFormat: 'lll'}}</span>\r\n </td>\r\n <td class=\"mat-mdc-cell\">\r\n <button mat-icon-button *ngIf=\"!r.estimate\" [matMenuTriggerFor]=\"options\" [disabled]=\"!r.pending\"><mat-icon>more_vert</mat-icon></button>\r\n <mat-menu #options>\r\n <button mat-menu-item (click)=\"assign(r)\" *ngIf=\"r.pending\">{{'Reassign'|translate}}</button>\r\n </mat-menu>\r\n </td>\r\n </tr>\r\n <tr *ngFor=\"let l of log\" class=\"mat-mdc-row\">\r\n <td class=\"mat-mdc-cell\" (click)=\"chat($event)\" [innerHTML]=\"logInfo(l) | async | sanitizeHtml\">\r\n </td>\r\n <td [ngSwitch]=\"l.type\" class=\"mat-mdc-cell\">\r\n <span *ngSwitchCase=\"'StateChange'\">\r\n {{l.state | state : (l.estimate ? 'future' : 'past')}}\r\n </span>\r\n <span *ngSwitchCase=\"'ModelChange'\">\r\n {{'Changed' | translate}}\r\n </span>\r\n </td>\r\n <td class=\"mat-mdc-cell\">\r\n <span *ngIf=\"!l.estimate\">{{l.time | amDateFormat: 'lll'}}</span>\r\n </td>\r\n <td class=\"mat-mdc-cell\">\r\n <button mat-icon-button (click)=\"compare(l)\" *ngIf=\"l.type==='ModelChange'\" [bizdocTooltip]=\"'Compare'|translate\"><mat-icon>visibility</mat-icon></button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n", styles: [":host{padding:8px;min-width:300px;display:block}.message{text-align:center}.message>*{vertical-align:text-bottom}table{background:none;width:100%}table tr td{padding-left:2px;padding-right:2px}\n"] }]
123
- }], ctorParameters: function () { return [{ type: i1.PaneRef }, { type: i2.ChatInfo }, { type: i3.PromptService }, { type: i4.PanesRouter }, { type: i5.TranslateService }, { type: i6.AccountService }, { type: i7.MatDialog }, { type: i8.SessionService }]; } });
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2UtZWxlbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2RvY3VtZW50LXRyYWNlL3RyYWNlLWVsZW1lbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9kb2N1bWVudC10cmFjZS90cmFjZS1lbGVtZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWhFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVFyQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFdEQsT0FBTyxFQUFFLGNBQWMsRUFBaUIsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJbEUsTUFBTSxrQkFBa0IsR0FBYyxDQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFjakYsTUFBTSxPQUFPLHFCQUFxQjtJQWFoQyxZQUNVLEtBQWMsRUFDZCxLQUFlLEVBQ2YsR0FBa0IsRUFDbEIsT0FBb0IsRUFDcEIsVUFBNEIsRUFDNUIsU0FBeUIsRUFDekIsT0FBa0IsRUFDbEIsUUFBd0I7UUFQeEIsVUFBSyxHQUFMLEtBQUssQ0FBUztRQUNkLFVBQUssR0FBTCxLQUFLLENBQVU7UUFDZixRQUFHLEdBQUgsR0FBRyxDQUFlO1FBQ2xCLFlBQU8sR0FBUCxPQUFPLENBQWE7UUFDcEIsZUFBVSxHQUFWLFVBQVUsQ0FBa0I7UUFDNUIsY0FBUyxHQUFULFNBQVMsQ0FBZ0I7UUFDekIsWUFBTyxHQUFQLE9BQU8sQ0FBVztR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LEVBQUUsQ0FDUCxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUNELE9BQU8sQ0FBQyxJQUFTO1FBQ2YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFO1lBQzFILE1BQU0sRUFBRSxVQUFVLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxNQUFNO1NBQzNDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFDRCxJQUFJLENBQUMsQ0FBYTtRQUNoQixNQUFNLE1BQU0sR0FBSSxDQUFDLENBQUMsTUFBc0IsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkUsTUFBTTtZQUNKLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVCLENBQUM7K0dBM0dVLHFCQUFxQjttR0FBckIscUJBQXFCLHFFQ2hDbEMseTFFQXFEQTs7NEZEckJhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSwrQkFBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XHJcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tLCBmb3JrSm9pbiwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBOb2RlTW9kZWwgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItZGlhZ3JhbXNcIjtcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7IExvZywgTG9nVHlwZSwgUmVjaXBpZW50IH0gZnJvbSBcIi4uLy4uL2NvcmUvbW9kZWxzXCI7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWNjb3VudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2FjY291bnQuc2VydmljZSc7XHJcbmltcG9ydCB7IENoYXRJbmZvIH0gZnJvbSAnLi4vLi4vY2hhdC9jaGF0LWluZm8nO1xyXG5pbXBvcnQgeyBUaW1lbGluZSwgRGlhZ3JhbUluZm8gfSBmcm9tIFwiLi90aW1lbGluZVwiO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL3Nlc3Npb24uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBQYW5lc1JvdXRlciB9IGZyb20gXCIuLi8uLi9jb3JlL3Nsb3RzL3JvdXRlci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IE9wZW5Qb2xpY3kgfSBmcm9tIFwiLi4vLi4vY29yZS9jb25maWd1cmF0aW9uXCI7XHJcbmltcG9ydCB7IFBhbmVSZWYgfSBmcm9tIFwiLi4vLi4vY29yZS9zbG90cy9wYW5lLXJlZlwiO1xyXG5pbXBvcnQgeyBSZWFzc2lnbkRpYWxvZywgUmVhc3NpZ25Nb2RlbCB9IGZyb20gXCIuL3JlYXNzaWduLmRpYWxvZ1wiO1xyXG5pbXBvcnQgeyBQcm9tcHRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvcHJvbXB0LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVXRpbGl0eVJlZiB9IGZyb20gXCIuLi91dGlsaXR5LXJlZlwiO1xyXG5cclxuY29uc3QgVklTSUFCTEVfTE9HX1RZUEVTOiBMb2dUeXBlW10gPSBbJ1N0YXRlQ2hhbmdlJywgJ01vZGVsQ2hhbmdlJywgJ0Rvd25sb2FkJ107XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEVsZW1lbnREYXRhIHtcclxuICBtb2RlbDogRGlhZ3JhbUluZm87XHJcbiAgdGltZWxpbmU6IFRpbWVsaW5lO1xyXG4gIG5vZGU6IE5vZGVNb2RlbDtcclxuICB1dGlsaXR5UmVmOiBVdGlsaXR5UmVmO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1kb2N1bWVudC10cmFjZS1lbGVtZW50JyxcclxuICB0ZW1wbGF0ZVVybDogJ3RyYWNlLWVsZW1lbnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWyd0cmFjZS1lbGVtZW50LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYWNlRWxlbWVudENvbXBvbmVudCB7XHJcbiAgbW9kZWw6IERpYWdyYW1JbmZvO1xyXG4gIHRpbWVsaW5lOiBUaW1lbGluZTtcclxuICBub2RlOiBOb2RlTW9kZWw7XHJcblxyXG4gIHJlY2lwaWVudHM6IFJlY2lwaWVudFtdO1xyXG4gIGxvZzogTG9nW107XHJcbiAgZXN0aW1hdGU6IGJvb2xlYW47XHJcbiAgcmVjdXJyaW5nOiBib29sZWFuO1xyXG4gIG5vbmU6IGJvb2xlYW47XHJcbiAgc2tpcDogYm9vbGVhbjtcclxuICBwcml2YXRlIF91dGlsaXR5UmVmOiBVdGlsaXR5UmVmO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3BhbmU6IFBhbmVSZWYsXHJcbiAgICBwcml2YXRlIF9jaGF0OiBDaGF0SW5mbyxcclxuICAgIHByaXZhdGUgX3NiOiBQcm9tcHRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBQYW5lc1JvdXRlcixcclxuICAgIHByaXZhdGUgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX2FjY291bnRzOiBBY2NvdW50U2VydmljZSxcclxuICAgIHByaXZhdGUgX2RpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2VcclxuICApIHtcclxuICAgIF9wYW5lLmRhdGFDaGFuZ2UoKS5zdWJzY3JpYmUodGhpcy5jaGFuZ2UuYmluZCh0aGlzKSk7XHJcbiAgfVxyXG4gIGNoYW5nZShzdGF0ZTogRWxlbWVudERhdGEpIHtcclxuICAgIHRoaXMubW9kZWwgPSBzdGF0ZS5tb2RlbDtcclxuICAgIHRoaXMudGltZWxpbmUgPSBzdGF0ZS50aW1lbGluZTtcclxuICAgIHRoaXMubm9kZSA9IHN0YXRlLm5vZGU7XHJcbiAgICB0aGlzLl91dGlsaXR5UmVmID0gc3RhdGUudXRpbGl0eVJlZjtcclxuICAgIGNvbnN0IHsgaWQsIGFkZEluZm8gfSA9IHRoaXMubm9kZTtcclxuICAgIGNvbnN0IHJlY2lwaWVudHMgPSB0aGlzLnRpbWVsaW5lLnJlY2lwaWVudHMuZmlsdGVyKHIgPT4gci5ub2RlSWQgPT09IGlkKSxcclxuICAgICAgbG9nID0gdGhpcy50aW1lbGluZS5sb2cuZmlsdGVyKGwgPT4gbC5ub2RlSWQgPT09IGlkKTtcclxuICAgIHRoaXMucmVjaXBpZW50cyA9IHJlY2lwaWVudHMsXHJcbiAgICAgIHRoaXMucmVjdXJyaW5nID0gcmVjaXBpZW50cy5sZW5ndGggPCB0aGlzLm1vZGVsLnJlY2lwaWVudHMuZmlsdGVyKHIgPT4gci5ub2RlSWQgPT09IGlkKS5sZW5ndGggfHxcclxuICAgICAgbG9nLmxlbmd0aCA8IHRoaXMubW9kZWwubG9nLmZpbHRlcihsID0+IGwubm9kZUlkID09PSBpZCkubGVuZ3RoLFxyXG4gICAgICB0aGlzLmxvZyA9IGxvZy5maWx0ZXIobCA9PiBWSVNJQUJMRV9MT0dfVFlQRVMuaW5kZXhPZihsLnR5cGUpID4gLTEpLFxyXG4gICAgICB0aGlzLmVzdGltYXRlID0gbG9nLmZpbmQobCA9PiBsLmVzdGltYXRlKSAhPT0gdW5kZWZpbmVkLFxyXG4gICAgICB0aGlzLnNraXAgPSBsb2cuZmluZChsID0+IGwudHlwZSA9PT0gJ05vZGVKdW1wJykgIT09IHVuZGVmaW5lZCxcclxuICAgICAgdGhpcy5ub25lID0gbG9nLmxlbmd0aCA9PT0gMDtcclxuICAgIGNvbnN0IG5vZGVUeXBlID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLm5vZGVzLmZpbmQobiA9PiBuLm5hbWUgPT09IChhZGRJbmZvIGFzIGFueSkubm9kZVR5cGUpO1xyXG4gICAgdGhpcy5fcGFuZS50aXRsZSA9IG5vZGVUeXBlLnRpdGxlO1xyXG4gIH1cclxuICBmaWxlTmFtZShmaWxlSWQ6IG51bWJlcikge1xyXG4gICAgY29uc3QgZmlsZSA9IHRoaXMubW9kZWwuYXR0YWNobWVudHMuZmluZChmID0+IGYuaWQgPT09IGZpbGVJZCk7XHJcbiAgICByZXR1cm4gZmlsZS5maWxlTmFtZTtcclxuICB9XHJcbiAgLyoqICovXHJcbiAgYXNzaWduKHJlY2lwaWVudDogUmVjaXBpZW50KSB7XHJcbiAgICB0aGlzLl9kaWFsb2cub3BlbihSZWFzc2lnbkRpYWxvZywgeyBkYXRhOiB7IGV4Y2x1ZGU6IFtyZWNpcGllbnQudXNlcklkXSB9IH0pLmFmdGVyQ2xvc2VkKCkuXHJcbiAgICAgIHN1YnNjcmliZSgobTogUmVhc3NpZ25Nb2RlbCkgPT4ge1xyXG4gICAgICAgIG0gJiYgdGhpcy5fdXRpbGl0eVJlZi5leGVjdXRlKHsgaWQ6IHJlY2lwaWVudC5pZCwgLi4ubSB9KS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgbmV4dDogciA9PiB7XHJcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5tb2RlbCwgcik7XHJcbiAgICAgICAgICB9LCBlcnJvcjogKCkgPT5cclxuICAgICAgICAgICAgdGhpcy5fc2IuZXJyb3IoKVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGFzeW5jIHJlY2lwaWVudEluZm8ocmVjaXBpZW50OiBSZWNpcGllbnQpIHtcclxuICAgIGNvbnN0IGluZm8gPSBbXTtcclxuICAgIGNvbnN0IHdobyA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuX2FjY291bnRzLmdldChyZWNpcGllbnQudXNlcklkKSk7XHJcbiAgICBpZiAocmVjaXBpZW50LmVzY2FsYXRlZCkge1xyXG4gICAgICBjb25zdCBlc2NhbGF0aW9uID0gdGhpcy50aW1lbGluZS5sb2cuZmluZChsID0+IGwudHlwZSA9PT0gJ0VzY2FsYXRpb24nICYmIGwucmVjaXBpZW50SWQgPT09IHJlY2lwaWVudC5vcmlnaW5JZCk7XHJcbiAgICAgIGNvbnN0IHRvID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5fYWNjb3VudHMuZ2V0KGVzY2FsYXRpb24udXNlcklkKSk7XHJcbiAgICAgIGluZm8ucHVzaCh0aGlzLl90cmFuc2xhdGUuZ2V0KCdFc2NhbGF0ZWRCeScsIHRoaXMuX2NoYXQuZm9ybWF0KHRvKSwgdGhpcy5fY2hhdC5mb3JtYXQod2hvKSkpO1xyXG4gICAgfVxyXG4gICAgaWYgKHJlY2lwaWVudC5zdWJzdGl0dXRlSWQpIHtcclxuICAgICAgY29uc3Qgc3Vic3RpdHV0ZSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuX2FjY291bnRzLmdldChyZWNpcGllbnQuc3Vic3RpdHV0ZUlkKSk7XHJcbiAgICAgIGlmIChyZWNpcGllbnQuYnlJZCkge1xyXG4gICAgICAgIGNvbnN0IGJ5ID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5fYWNjb3VudHMuZ2V0KHJlY2lwaWVudC5ieUlkKSk7XHJcbiAgICAgICAgaW5mby5wdXNoKHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1N1YnN0aXR1dGluZ0J5JywgdGhpcy5fY2hhdC5mb3JtYXQod2hvKSwgdGhpcy5fY2hhdC5mb3JtYXQoc3Vic3RpdHV0ZSksIHRoaXMuX2NoYXQuZm9ybWF0KGJ5KSkpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaW5mby5wdXNoKHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1N1YnN0aXR1dGluZycsIHRoaXMuX2NoYXQuZm9ybWF0KHdobyksIHRoaXMuX2NoYXQuZm9ybWF0KHN1YnN0aXR1dGUpKSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChyZWNpcGllbnQuYnlJZCkge1xyXG4gICAgICBjb25zdCBieSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuX2FjY291bnRzLmdldChyZWNpcGllbnQuYnlJZCkpO1xyXG4gICAgICBpbmZvLnB1c2godGhpcy5fdHJhbnNsYXRlLmdldCgnQnknLCB0aGlzLl9jaGF0LmZvcm1hdCh3aG8pLCB0aGlzLl9jaGF0LmZvcm1hdChieSkpKTtcclxuICAgIH1cclxuICAgIGVsc2UgaW5mby5wdXNoKHRoaXMuX2NoYXQuZm9ybWF0KHdobykpO1xyXG4gICAgcmV0dXJuIGluZm8uam9pbih0aGlzLl90cmFuc2xhdGUuY29tbWEpO1xyXG4gIH1cclxuICBsb2dJbmZvKGxvZzogTG9nKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcclxuICAgIGNvbnN0IG9ic2VydmFibGVzOiBPYnNlcnZhYmxlPGFueT5bXSA9IFtdO1xyXG5cclxuICAgIGlmIChsb2cudXNlcklkKSB7XHJcbiAgICAgIGNvbnN0IG9ic2VydmUgPSB0aGlzLl9hY2NvdW50cy5nZXQobG9nLnVzZXJJZCk7XHJcbiAgICAgIG9ic2VydmFibGVzLnB1c2gob2JzZXJ2ZSk7XHJcbiAgICB9XHJcbiAgICBpZiAobG9nLmJ5SWQpIHtcclxuICAgICAgY29uc3Qgb2JzZXJ2ZSA9IHRoaXMuX2FjY291bnRzLmdldChsb2cuYnlJZCk7XHJcbiAgICAgIG9ic2VydmFibGVzLnB1c2gob2JzZXJ2ZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gb2JzZXJ2YWJsZXMubGVuZ3RoID8gZm9ya0pvaW4ob2JzZXJ2YWJsZXMpLnBpcGUobWFwKHVzID0+IHVzLm1hcCh1ID0+IHRoaXMuX2NoYXQuZm9ybWF0KHUpKSksXHJcbiAgICAgIG1hcCh1cyA9PlxyXG4gICAgICAgIGxvZy5ieUlkID8gdGhpcy5fdHJhbnNsYXRlLmdldCgnQnknLCB1c1swXSwgdXNbMV0pIDogdXNbMF0pKSA6IG9mKCcnKTtcclxuICB9XHJcbiAgY29tcGFyZShpdGVtOiBMb2cpIHtcclxuICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJ21haWxib3gvZCcsIHRoaXMubW9kZWwuZG9jdW1lbnRJZC5lbmNvZGVJZCgpLCAndmVyc2lvbicsIG5ldyBEYXRlKGl0ZW0udGltZSkudmFsdWVPZigpLmVuY29kZUlkKCldLCB7XHJcbiAgICAgIHBvbGljeTogT3BlblBvbGljeS5UYWIgfCBPcGVuUG9saWN5LlRvZ2dsZSxcclxuICAgIH0pXHJcbiAgfVxyXG4gIGNoYXQoZTogTW91c2VFdmVudCkge1xyXG4gICAgY29uc3QgdXNlcklkID0gKGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5nZXRBdHRyaWJ1dGUoJ2RhdGEtaW5mbycpO1xyXG4gICAgdXNlcklkICYmXHJcbiAgICAgIHRoaXMuX2NoYXQub3Blbih1c2VySWQpO1xyXG4gIH1cclxufVxyXG4iLCI8aDQgY2xhc3M9XCJtYXQtYm9keS0yIGNlbnRlclwiPlxyXG4gIDxzcGFuICpuZ0lmPVwiZXN0aW1hdGVcIj57eydFc3RpbWF0ZScgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICA8c3BhbiAqbmdJZj1cIm5vbmVcIj57eydOb0VzdGltYXRlJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gIDxzcGFuICpuZ0lmPVwic2tpcFwiPnt7J1NraXBwZWQnIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbjwvaDQ+XHJcblxyXG48aDQgKm5nSWY9XCJyZWN1cnJpbmdcIiBjbGFzcz1cIm1lc3NhZ2UgbWF0LWJvZHktMVwiPjxtYXQtaWNvbj5pbmZvPC9tYXQtaWNvbj4ge3snVGltZWxpbmVNb3JlJyB8IHRyYW5zbGF0ZX19PC9oND5cclxuXHJcbjx0YWJsZSBjbGFzcz1cIm1hdC1tZGMtdGFibGVcIj5cclxuICA8dGJvZHkgcm9sZT1cInJvd2dyb3VwXCI+XHJcbiAgICA8dHIgKm5nRm9yPVwibGV0IHIgb2YgcmVjaXBpZW50c1wiIGNsYXNzPVwibWF0LW1kYy1yb3dcIj5cclxuICAgICAgPHRkIGNsYXNzPVwibWF0LW1kYy1jZWxsXCIgKGNsaWNrKT1cImNoYXQoJGV2ZW50KVwiIFtpbm5lckhUTUxdPVwicmVjaXBpZW50SW5mbyhyKSB8IGFzeW5jIHwgc2FuaXRpemVIdG1sXCI+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICAgIDx0ZCBjbGFzcz1cIm1hdC1tZGMtY2VsbFwiPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwici5hY3Rpb25cIj5cclxuICAgICAgICAgIHt7ci5hY3Rpb24gfCBhY3Rpb24gOiAncGFzdCd9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cInIucGVuZGluZ1wiPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCIhci5lc3RpbWF0ZTsgZWxzZSBlc3RpbWF0ZVwiPlxyXG4gICAgICAgICAgICB7eydJc1BlbmRpbmcnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICAgIDx0ZCBjbGFzcz1cIm1hdC1tZGMtY2VsbFwiPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiIXIuZXN0aW1hdGU7IGVzdGltYXRlXCI+e3tyLnJlY2VpdmVkIHx8IHIucmVwbGllZCB8IGFtRGF0ZUZvcm1hdDogJ2xsbCd9fTwvc3Bhbj5cclxuICAgICAgPC90ZD5cclxuICAgICAgPHRkIGNsYXNzPVwibWF0LW1kYy1jZWxsXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKm5nSWY9XCIhci5lc3RpbWF0ZVwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJvcHRpb25zXCIgW2Rpc2FibGVkXT1cIiFyLnBlbmRpbmdcIj48bWF0LWljb24+bW9yZV92ZXJ0PC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgICAgICA8bWF0LW1lbnUgI29wdGlvbnM+XHJcbiAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImFzc2lnbihyKVwiICpuZ0lmPVwici5wZW5kaW5nXCI+e3snUmVhc3NpZ24nfHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgICAgICAgPC9tYXQtbWVudT5cclxuICAgICAgPC90ZD5cclxuICAgIDwvdHI+XHJcbiAgICA8dHIgKm5nRm9yPVwibGV0IGwgb2YgbG9nXCIgY2xhc3M9XCJtYXQtbWRjLXJvd1wiPlxyXG4gICAgICA8dGQgY2xhc3M9XCJtYXQtbWRjLWNlbGxcIiAoY2xpY2spPVwiY2hhdCgkZXZlbnQpXCIgW2lubmVySFRNTF09XCJsb2dJbmZvKGwpIHwgYXN5bmMgfCBzYW5pdGl6ZUh0bWxcIj5cclxuICAgICAgPC90ZD5cclxuICAgICAgPHRkIFtuZ1N3aXRjaF09XCJsLnR5cGVcIiBjbGFzcz1cIm1hdC1tZGMtY2VsbFwiPlxyXG4gICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInU3RhdGVDaGFuZ2UnXCI+XHJcbiAgICAgICAgICB7e2wuc3RhdGUgfCBzdGF0ZSA6IChsLmVzdGltYXRlID8gJ2Z1dHVyZScgOiAncGFzdCcpfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidNb2RlbENoYW5nZSdcIj5cclxuICAgICAgICAgIHt7J0NoYW5nZWQnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICAgIDx0ZCBjbGFzcz1cIm1hdC1tZGMtY2VsbFwiPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiIWwuZXN0aW1hdGVcIj57e2wudGltZSB8IGFtRGF0ZUZvcm1hdDogJ2xsbCd9fTwvc3Bhbj5cclxuICAgICAgPC90ZD5cclxuICAgICAgPHRkIGNsYXNzPVwibWF0LW1kYy1jZWxsXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImNvbXBhcmUobClcIiAqbmdJZj1cImwudHlwZT09PSdNb2RlbENoYW5nZSdcIiBbYml6ZG9jVG9vbHRpcF09XCInQ29tcGFyZSd8dHJhbnNsYXRlXCI+PG1hdC1pY29uPnZpc2liaWxpdHk8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgICA8L3RkPlxyXG4gICAgPC90cj5cclxuICA8L3Rib2R5PlxyXG48L3RhYmxlPlxyXG4iXX0=
123
+ }], ctorParameters: () => [{ type: i1.PaneRef }, { type: i2.ChatInfo }, { type: i3.PromptService }, { type: i4.PanesRouter }, { type: i5.TranslateService }, { type: i6.AccountService }, { type: i7.MatDialog }, { type: i8.SessionService }] });
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2UtZWxlbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2RvY3VtZW50LXRyYWNlL3RyYWNlLWVsZW1lbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9kb2N1bWVudC10cmFjZS90cmFjZS1lbGVtZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWhFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVFyQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFdEQsT0FBTyxFQUFFLGNBQWMsRUFBaUIsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJbEUsTUFBTSxrQkFBa0IsR0FBYyxDQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFjakYsTUFBTSxPQUFPLHFCQUFxQjtJQWFoQyxZQUNVLEtBQWMsRUFDZCxLQUFlLEVBQ2YsR0FBa0IsRUFDbEIsT0FBb0IsRUFDcEIsVUFBNEIsRUFDNUIsU0FBeUIsRUFDekIsT0FBa0IsRUFDbEIsUUFBd0I7UUFQeEIsVUFBSyxHQUFMLEtBQUssQ0FBUztRQUNkLFVBQUssR0FBTCxLQUFLLENBQVU7UUFDZixRQUFHLEdBQUgsR0FBRyxDQUFlO1FBQ2xCLFlBQU8sR0FBUCxPQUFPLENBQWE7UUFDcEIsZUFBVSxHQUFWLFVBQVUsQ0FBa0I7UUFDNUIsY0FBUyxHQUFULFNBQVMsQ0FBZ0I7UUFDekIsWUFBTyxHQUFQLE9BQU8sQ0FBVztR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LEVBQUUsQ0FDUCxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUNELE9BQU8sQ0FBQyxJQUFTO1FBQ2YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFO1lBQzFILE1BQU0sRUFBRSxVQUFVLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxNQUFNO1NBQzNDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFDRCxJQUFJLENBQUMsQ0FBYTtRQUNoQixNQUFNLE1BQU0sR0FBSSxDQUFDLENBQUMsTUFBc0IsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkUsTUFBTTtZQUNKLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVCLENBQUM7OEdBM0dVLHFCQUFxQjtrR0FBckIscUJBQXFCLHFFQ2hDbEMseTFFQXFEQTs7MkZEckJhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSwrQkFBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XHJcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tLCBmb3JrSm9pbiwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBOb2RlTW9kZWwgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItZGlhZ3JhbXNcIjtcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7IExvZywgTG9nVHlwZSwgUmVjaXBpZW50IH0gZnJvbSBcIi4uLy4uL2NvcmUvbW9kZWxzXCI7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWNjb3VudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2FjY291bnQuc2VydmljZSc7XHJcbmltcG9ydCB7IENoYXRJbmZvIH0gZnJvbSAnLi4vLi4vY2hhdC9jaGF0LWluZm8nO1xyXG5pbXBvcnQgeyBUaW1lbGluZSwgRGlhZ3JhbUluZm8gfSBmcm9tIFwiLi90aW1lbGluZVwiO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL3Nlc3Npb24uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBQYW5lc1JvdXRlciB9IGZyb20gXCIuLi8uLi9jb3JlL3Nsb3RzL3JvdXRlci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IE9wZW5Qb2xpY3kgfSBmcm9tIFwiLi4vLi4vY29yZS9jb25maWd1cmF0aW9uXCI7XHJcbmltcG9ydCB7IFBhbmVSZWYgfSBmcm9tIFwiLi4vLi4vY29yZS9zbG90cy9wYW5lLXJlZlwiO1xyXG5pbXBvcnQgeyBSZWFzc2lnbkRpYWxvZywgUmVhc3NpZ25Nb2RlbCB9IGZyb20gXCIuL3JlYXNzaWduLmRpYWxvZ1wiO1xyXG5pbXBvcnQgeyBQcm9tcHRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvcHJvbXB0LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVXRpbGl0eVJlZiB9IGZyb20gXCIuLi91dGlsaXR5LXJlZlwiO1xyXG5cclxuY29uc3QgVklTSUFCTEVfTE9HX1RZUEVTOiBMb2dUeXBlW10gPSBbJ1N0YXRlQ2hhbmdlJywgJ01vZGVsQ2hhbmdlJywgJ0Rvd25sb2FkJ107XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEVsZW1lbnREYXRhIHtcclxuICBtb2RlbDogRGlhZ3JhbUluZm87XHJcbiAgdGltZWxpbmU6IFRpbWVsaW5lO1xyXG4gIG5vZGU6IE5vZGVNb2RlbDtcclxuICB1dGlsaXR5UmVmOiBVdGlsaXR5UmVmO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1kb2N1bWVudC10cmFjZS1lbGVtZW50JyxcclxuICB0ZW1wbGF0ZVVybDogJ3RyYWNlLWVsZW1lbnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWyd0cmFjZS1lbGVtZW50LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYWNlRWxlbWVudENvbXBvbmVudCB7XHJcbiAgbW9kZWw6IERpYWdyYW1JbmZvO1xyXG4gIHRpbWVsaW5lOiBUaW1lbGluZTtcclxuICBub2RlOiBOb2RlTW9kZWw7XHJcblxyXG4gIHJlY2lwaWVudHM6IFJlY2lwaWVudFtdO1xyXG4gIGxvZzogTG9nW107XHJcbiAgZXN0aW1hdGU6IGJvb2xlYW47XHJcbiAgcmVjdXJyaW5nOiBib29sZWFuO1xyXG4gIG5vbmU6IGJvb2xlYW47XHJcbiAgc2tpcDogYm9vbGVhbjtcclxuICBwcml2YXRlIF91dGlsaXR5UmVmOiBVdGlsaXR5UmVmO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3BhbmU6IFBhbmVSZWYsXHJcbiAgICBwcml2YXRlIF9jaGF0OiBDaGF0SW5mbyxcclxuICAgIHByaXZhdGUgX3NiOiBQcm9tcHRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBQYW5lc1JvdXRlcixcclxuICAgIHByaXZhdGUgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX2FjY291bnRzOiBBY2NvdW50U2VydmljZSxcclxuICAgIHByaXZhdGUgX2RpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2VcclxuICApIHtcclxuICAgIF9wYW5lLmRhdGFDaGFuZ2UoKS5zdWJzY3JpYmUodGhpcy5jaGFuZ2UuYmluZCh0aGlzKSk7XHJcbiAgfVxyXG4gIGNoYW5nZShzdGF0ZTogRWxlbWVudERhdGEpIHtcclxuICAgIHRoaXMubW9kZWwgPSBzdGF0ZS5tb2RlbDtcclxuICAgIHRoaXMudGltZWxpbmUgPSBzdGF0ZS50aW1lbGluZTtcclxuICAgIHRoaXMubm9kZSA9IHN0YXRlLm5vZGU7XHJcbiAgICB0aGlzLl91dGlsaXR5UmVmID0gc3RhdGUudXRpbGl0eVJlZjtcclxuICAgIGNvbnN0IHsgaWQsIGFkZEluZm8gfSA9IHRoaXMubm9kZTtcclxuICAgIGNvbnN0IHJlY2lwaWVudHMgPSB0aGlzLnRpbWVsaW5lLnJlY2lwaWVudHMuZmlsdGVyKHIgPT4gci5ub2RlSWQgPT09IGlkKSxcclxuICAgICAgbG9nID0gdGhpcy50aW1lbGluZS5sb2cuZmlsdGVyKGwgPT4gbC5ub2RlSWQgPT09IGlkKTtcclxuICAgIHRoaXMucmVjaXBpZW50cyA9IHJlY2lwaWVudHMsXHJcbiAgICAgIHRoaXMucmVjdXJyaW5nID0gcmVjaXBpZW50cy5sZW5ndGggPCB0aGlzLm1vZGVsLnJlY2lwaWVudHMuZmlsdGVyKHIgPT4gci5ub2RlSWQgPT09IGlkKS5sZW5ndGggfHxcclxuICAgICAgbG9nLmxlbmd0aCA8IHRoaXMubW9kZWwubG9nLmZpbHRlcihsID0+IGwubm9kZUlkID09PSBpZCkubGVuZ3RoLFxyXG4gICAgICB0aGlzLmxvZyA9IGxvZy5maWx0ZXIobCA9PiBWSVNJQUJMRV9MT0dfVFlQRVMuaW5kZXhPZihsLnR5cGUpID4gLTEpLFxyXG4gICAgICB0aGlzLmVzdGltYXRlID0gbG9nLmZpbmQobCA9PiBsLmVzdGltYXRlKSAhPT0gdW5kZWZpbmVkLFxyXG4gICAgICB0aGlzLnNraXAgPSBsb2cuZmluZChsID0+IGwudHlwZSA9PT0gJ05vZGVKdW1wJykgIT09IHVuZGVmaW5lZCxcclxuICAgICAgdGhpcy5ub25lID0gbG9nLmxlbmd0aCA9PT0gMDtcclxuICAgIGNvbnN0IG5vZGVUeXBlID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLm5vZGVzLmZpbmQobiA9PiBuLm5hbWUgPT09IChhZGRJbmZvIGFzIGFueSkubm9kZVR5cGUpO1xyXG4gICAgdGhpcy5fcGFuZS50aXRsZSA9IG5vZGVUeXBlLnRpdGxlO1xyXG4gIH1cclxuICBmaWxlTmFtZShmaWxlSWQ6IG51bWJlcikge1xyXG4gICAgY29uc3QgZmlsZSA9IHRoaXMubW9kZWwuYXR0YWNobWVudHMuZmluZChmID0+IGYuaWQgPT09IGZpbGVJZCk7XHJcbiAgICByZXR1cm4gZmlsZS5maWxlTmFtZTtcclxuICB9XHJcbiAgLyoqICovXHJcbiAgYXNzaWduKHJlY2lwaWVudDogUmVjaXBpZW50KSB7XHJcbiAgICB0aGlzLl9kaWFsb2cub3BlbihSZWFzc2lnbkRpYWxvZywgeyBkYXRhOiB7IGV4Y2x1ZGU6IFtyZWNpcGllbnQudXNlcklkXSB9IH0pLmFmdGVyQ2xvc2VkKCkuXHJcbiAgICAgIHN1YnNjcmliZSgobTogUmVhc3NpZ25Nb2RlbCkgPT4ge1xyXG4gICAgICAgIG0gJiYgdGhpcy5fdXRpbGl0eVJlZi5leGVjdXRlKHsgaWQ6IHJlY2lwaWVudC5pZCwgLi4ubSB9KS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgbmV4dDogciA9PiB7XHJcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5tb2RlbCwgcik7XHJcbiAgICAgICAgICB9LCBlcnJvcjogKCkgPT5cclxuICAgICAgICAgICAgdGhpcy5fc2IuZXJyb3IoKVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGFzeW5jIHJlY2lwaWVudEluZm8ocmVjaXBpZW50OiBSZWNpcGllbnQpIHtcclxuICAgIGNvbnN0IGluZm8gPSBbXTtcclxuICAgIGNvbnN0IHdobyA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuX2FjY291bnRzLmdldChyZWNpcGllbnQudXNlcklkKSk7XHJcbiAgICBpZiAocmVjaXBpZW50LmVzY2FsYXRlZCkge1xyXG4gICAgICBjb25zdCBlc2NhbGF0aW9uID0gdGhpcy50aW1lbGluZS5sb2cuZmluZChsID0+IGwudHlwZSA9PT0gJ0VzY2FsYXRpb24nICYmIGwucmVjaXBpZW50SWQgPT09IHJlY2lwaWVudC5vcmlnaW5JZCk7XHJcbiAgICAgIGNvbnN0IHRvID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5fYWNjb3VudHMuZ2V0KGVzY2FsYXRpb24udXNlcklkKSk7XHJcbiAgICAgIGluZm8ucHVzaCh0aGlzLl90cmFuc2xhdGUuZ2V0KCdFc2NhbGF0ZWRCeScsIHRoaXMuX2NoYXQuZm9ybWF0KHRvKSwgdGhpcy5fY2hhdC5mb3JtYXQod2hvKSkpO1xyXG4gICAgfVxyXG4gICAgaWYgKHJlY2lwaWVudC5zdWJzdGl0dXRlSWQpIHtcclxuICAgICAgY29uc3Qgc3Vic3RpdHV0ZSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuX2FjY291bnRzLmdldChyZWNpcGllbnQuc3Vic3RpdHV0ZUlkKSk7XHJcbiAgICAgIGlmIChyZWNpcGllbnQuYnlJZCkge1xyXG4gICAgICAgIGNvbnN0IGJ5ID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5fYWNjb3VudHMuZ2V0KHJlY2lwaWVudC5ieUlkKSk7XHJcbiAgICAgICAgaW5mby5wdXNoKHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1N1YnN0aXR1dGluZ0J5JywgdGhpcy5fY2hhdC5mb3JtYXQod2hvKSwgdGhpcy5fY2hhdC5mb3JtYXQoc3Vic3RpdHV0ZSksIHRoaXMuX2NoYXQuZm9ybWF0KGJ5KSkpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaW5mby5wdXNoKHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1N1YnN0aXR1dGluZycsIHRoaXMuX2NoYXQuZm9ybWF0KHdobyksIHRoaXMuX2NoYXQuZm9ybWF0KHN1YnN0aXR1dGUpKSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChyZWNpcGllbnQuYnlJZCkge1xyXG4gICAgICBjb25zdCBieSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuX2FjY291bnRzLmdldChyZWNpcGllbnQuYnlJZCkpO1xyXG4gICAgICBpbmZvLnB1c2godGhpcy5fdHJhbnNsYXRlLmdldCgnQnknLCB0aGlzLl9jaGF0LmZvcm1hdCh3aG8pLCB0aGlzLl9jaGF0LmZvcm1hdChieSkpKTtcclxuICAgIH1cclxuICAgIGVsc2UgaW5mby5wdXNoKHRoaXMuX2NoYXQuZm9ybWF0KHdobykpO1xyXG4gICAgcmV0dXJuIGluZm8uam9pbih0aGlzLl90cmFuc2xhdGUuY29tbWEpO1xyXG4gIH1cclxuICBsb2dJbmZvKGxvZzogTG9nKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcclxuICAgIGNvbnN0IG9ic2VydmFibGVzOiBPYnNlcnZhYmxlPGFueT5bXSA9IFtdO1xyXG5cclxuICAgIGlmIChsb2cudXNlcklkKSB7XHJcbiAgICAgIGNvbnN0IG9ic2VydmUgPSB0aGlzLl9hY2NvdW50cy5nZXQobG9nLnVzZXJJZCk7XHJcbiAgICAgIG9ic2VydmFibGVzLnB1c2gob2JzZXJ2ZSk7XHJcbiAgICB9XHJcbiAgICBpZiAobG9nLmJ5SWQpIHtcclxuICAgICAgY29uc3Qgb2JzZXJ2ZSA9IHRoaXMuX2FjY291bnRzLmdldChsb2cuYnlJZCk7XHJcbiAgICAgIG9ic2VydmFibGVzLnB1c2gob2JzZXJ2ZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gb2JzZXJ2YWJsZXMubGVuZ3RoID8gZm9ya0pvaW4ob2JzZXJ2YWJsZXMpLnBpcGUobWFwKHVzID0+IHVzLm1hcCh1ID0+IHRoaXMuX2NoYXQuZm9ybWF0KHUpKSksXHJcbiAgICAgIG1hcCh1cyA9PlxyXG4gICAgICAgIGxvZy5ieUlkID8gdGhpcy5fdHJhbnNsYXRlLmdldCgnQnknLCB1c1swXSwgdXNbMV0pIDogdXNbMF0pKSA6IG9mKCcnKTtcclxuICB9XHJcbiAgY29tcGFyZShpdGVtOiBMb2cpIHtcclxuICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJ21haWxib3gvZCcsIHRoaXMubW9kZWwuZG9jdW1lbnRJZC5lbmNvZGVJZCgpLCAndmVyc2lvbicsIG5ldyBEYXRlKGl0ZW0udGltZSkudmFsdWVPZigpLmVuY29kZUlkKCldLCB7XHJcbiAgICAgIHBvbGljeTogT3BlblBvbGljeS5UYWIgfCBPcGVuUG9saWN5LlRvZ2dsZSxcclxuICAgIH0pXHJcbiAgfVxyXG4gIGNoYXQoZTogTW91c2VFdmVudCkge1xyXG4gICAgY29uc3QgdXNlcklkID0gKGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5nZXRBdHRyaWJ1dGUoJ2RhdGEtaW5mbycpO1xyXG4gICAgdXNlcklkICYmXHJcbiAgICAgIHRoaXMuX2NoYXQub3Blbih1c2VySWQpO1xyXG4gIH1cclxufVxyXG4iLCI8aDQgY2xhc3M9XCJtYXQtYm9keS0yIGNlbnRlclwiPlxyXG4gIDxzcGFuICpuZ0lmPVwiZXN0aW1hdGVcIj57eydFc3RpbWF0ZScgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICA8c3BhbiAqbmdJZj1cIm5vbmVcIj57eydOb0VzdGltYXRlJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gIDxzcGFuICpuZ0lmPVwic2tpcFwiPnt7J1NraXBwZWQnIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbjwvaDQ+XHJcblxyXG48aDQgKm5nSWY9XCJyZWN1cnJpbmdcIiBjbGFzcz1cIm1lc3NhZ2UgbWF0LWJvZHktMVwiPjxtYXQtaWNvbj5pbmZvPC9tYXQtaWNvbj4ge3snVGltZWxpbmVNb3JlJyB8IHRyYW5zbGF0ZX19PC9oND5cclxuXHJcbjx0YWJsZSBjbGFzcz1cIm1hdC1tZGMtdGFibGVcIj5cclxuICA8dGJvZHkgcm9sZT1cInJvd2dyb3VwXCI+XHJcbiAgICA8dHIgKm5nRm9yPVwibGV0IHIgb2YgcmVjaXBpZW50c1wiIGNsYXNzPVwibWF0LW1kYy1yb3dcIj5cclxuICAgICAgPHRkIGNsYXNzPVwibWF0LW1kYy1jZWxsXCIgKGNsaWNrKT1cImNoYXQoJGV2ZW50KVwiIFtpbm5lckhUTUxdPVwicmVjaXBpZW50SW5mbyhyKSB8IGFzeW5jIHwgc2FuaXRpemVIdG1sXCI+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICAgIDx0ZCBjbGFzcz1cIm1hdC1tZGMtY2VsbFwiPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwici5hY3Rpb25cIj5cclxuICAgICAgICAgIHt7ci5hY3Rpb24gfCBhY3Rpb24gOiAncGFzdCd9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cInIucGVuZGluZ1wiPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCIhci5lc3RpbWF0ZTsgZWxzZSBlc3RpbWF0ZVwiPlxyXG4gICAgICAgICAgICB7eydJc1BlbmRpbmcnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICAgIDx0ZCBjbGFzcz1cIm1hdC1tZGMtY2VsbFwiPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiIXIuZXN0aW1hdGU7IGVzdGltYXRlXCI+e3tyLnJlY2VpdmVkIHx8IHIucmVwbGllZCB8IGFtRGF0ZUZvcm1hdDogJ2xsbCd9fTwvc3Bhbj5cclxuICAgICAgPC90ZD5cclxuICAgICAgPHRkIGNsYXNzPVwibWF0LW1kYy1jZWxsXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKm5nSWY9XCIhci5lc3RpbWF0ZVwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJvcHRpb25zXCIgW2Rpc2FibGVkXT1cIiFyLnBlbmRpbmdcIj48bWF0LWljb24+bW9yZV92ZXJ0PC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgICAgICA8bWF0LW1lbnUgI29wdGlvbnM+XHJcbiAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImFzc2lnbihyKVwiICpuZ0lmPVwici5wZW5kaW5nXCI+e3snUmVhc3NpZ24nfHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgICAgICAgPC9tYXQtbWVudT5cclxuICAgICAgPC90ZD5cclxuICAgIDwvdHI+XHJcbiAgICA8dHIgKm5nRm9yPVwibGV0IGwgb2YgbG9nXCIgY2xhc3M9XCJtYXQtbWRjLXJvd1wiPlxyXG4gICAgICA8dGQgY2xhc3M9XCJtYXQtbWRjLWNlbGxcIiAoY2xpY2spPVwiY2hhdCgkZXZlbnQpXCIgW2lubmVySFRNTF09XCJsb2dJbmZvKGwpIHwgYXN5bmMgfCBzYW5pdGl6ZUh0bWxcIj5cclxuICAgICAgPC90ZD5cclxuICAgICAgPHRkIFtuZ1N3aXRjaF09XCJsLnR5cGVcIiBjbGFzcz1cIm1hdC1tZGMtY2VsbFwiPlxyXG4gICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInU3RhdGVDaGFuZ2UnXCI+XHJcbiAgICAgICAgICB7e2wuc3RhdGUgfCBzdGF0ZSA6IChsLmVzdGltYXRlID8gJ2Z1dHVyZScgOiAncGFzdCcpfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidNb2RlbENoYW5nZSdcIj5cclxuICAgICAgICAgIHt7J0NoYW5nZWQnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICAgIDx0ZCBjbGFzcz1cIm1hdC1tZGMtY2VsbFwiPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiIWwuZXN0aW1hdGVcIj57e2wudGltZSB8IGFtRGF0ZUZvcm1hdDogJ2xsbCd9fTwvc3Bhbj5cclxuICAgICAgPC90ZD5cclxuICAgICAgPHRkIGNsYXNzPVwibWF0LW1kYy1jZWxsXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImNvbXBhcmUobClcIiAqbmdJZj1cImwudHlwZT09PSdNb2RlbENoYW5nZSdcIiBbYml6ZG9jVG9vbHRpcF09XCInQ29tcGFyZSd8dHJhbnNsYXRlXCI+PG1hdC1pY29uPnZpc2liaWxpdHk8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgICA8L3RkPlxyXG4gICAgPC90cj5cclxuICA8L3Rib2R5PlxyXG48L3RhYmxlPlxyXG4iXX0=
@@ -45,23 +45,23 @@ export class DesignControlComponent {
45
45
  instance.mode = 'compose';
46
46
  instance.control.disable();
47
47
  }
48
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DesignControlComponent, deps: [{ token: i0.ViewContainerRef }, { token: BIZDOC_CONFIG }, { token: i1.SessionService }, { token: i2.BizDocComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Component }); }
49
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DesignControlComponent, selector: "bizdoc-box-control-design", inputs: { metadata: "metadata" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true }); }
48
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: DesignControlComponent, deps: [{ token: i0.ViewContainerRef }, { token: BIZDOC_CONFIG }, { token: i1.SessionService }, { token: i2.BizDocComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Component }); }
49
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.1", type: DesignControlComponent, selector: "bizdoc-box-control-design", inputs: { metadata: "metadata" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true }); }
50
50
  }
51
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DesignControlComponent, decorators: [{
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: DesignControlComponent, decorators: [{
52
52
  type: Component,
53
53
  args: [{
54
54
  template: '',
55
55
  selector: 'bizdoc-box-control-design'
56
56
  }]
57
- }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: undefined, decorators: [{
57
+ }], ctorParameters: () => [{ type: i0.ViewContainerRef }, { type: undefined, decorators: [{
58
58
  type: Inject,
59
59
  args: [BIZDOC_CONFIG]
60
- }] }, { type: i1.SessionService }, { type: i2.BizDocComponentFactoryResolver }]; }, propDecorators: { metadata: [{
60
+ }] }, { type: i1.SessionService }, { type: i2.BizDocComponentFactoryResolver }], propDecorators: { metadata: [{
61
61
  type: Input
62
62
  }] } });
63
63
  /** */
64
- export let FormDesignerComponent = class FormDesignerComponent {
64
+ let FormDesignerComponent = class FormDesignerComponent {
65
65
  constructor(_fb, _pane, _cd, _ps, _system, _translate, _router, _session, _el, _ref) {
66
66
  this._fb = _fb;
67
67
  this._pane = _pane;
@@ -289,17 +289,18 @@ export let FormDesignerComponent = class FormDesignerComponent {
289
289
  }
290
290
  });
291
291
  }
292
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormDesignerComponent, deps: [{ token: i3.FormBuilder }, { token: i4.PaneRef }, { token: i0.ChangeDetectorRef }, { token: i5.PromptService }, { token: i6.SystemService }, { token: i7.TranslateService }, { token: i8.PanesRouter }, { token: i1.SessionService }, { token: i0.ElementRef }, { token: i9.UtilityRef }], target: i0.ɵɵFactoryTarget.Component }); }
293
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormDesignerComponent, selector: "ng-component", host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" } }, ngImport: i0, template: "<mat-toolbar>\r\n <button mat-icon-button (click)=\"save()\" [disabled]=\"!form.dirty || loading || saving\" [bizdocTooltip]=\"'Save'|translate\"><mat-icon>save</mat-icon></button>\r\n <button mat-icon-button (click)=\"undo()\" [bizdocTooltip]=\"'Undo' | translate\" [disabled]=\"historyIndex === -1\"><mat-icon class=\"mat-icon-rtl-mirror\">undo</mat-icon></button>\r\n <button mat-icon-button (click)=\"redo()\" [bizdocTooltip]=\"'Redo' | translate\" [disabled]=\"historyIndex === history.length - 1\"><mat-icon class=\"mat-icon-rtl-mirror\">redo</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <!--<button mat-icon-button (click)=\"opensettings()\" [bizdocTooltip]=\"'Settings'|translate\" type=\"button\"><mat-icon>settings</mat-icon></button>-->\r\n</mat-toolbar>\r\n<form autocomplete=\"off\" [formGroup]=\"form\" *ngIf=\"model\">\r\n <div cdkDropList (cdkDropListDropped)=\"drop($event, sections)\">\r\n <section class=\"column\" *ngFor=\"let s of sections.controls; let si = index\" cdkDrag [attr.data-index]=\"si\">\r\n <div class=\"row\">\r\n <mat-icon class=\"section-drag\" cdkDragHandle>drag_indicator</mat-icon>\r\n <div class=\"column\" [formGroup]=\"s\">\r\n <h2 class=\"mat-mdc-title\">{{s.get('title').value|localizedString}}</h2>\r\n <p class=\"mat-body-1\" *ngIf=\"s.get('note').value\">{{s.get('note').value|localizedString}}</p>\r\n <div cdkDropList (cdkDropListDropped)=\"drop($event, s.get('rows'))\">\r\n <div *ngFor=\"let r of s.get('rows').controls; let ri = index\" class=\"row designer-row\" cdkDrag [attr.data-index]=\"ri\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n <div cdkDropList cdkDropListOrientation=\"horizontal\" (cdkDropListDropped)=\"drop($event, r.get('fields'))\" class=\"row\">\r\n <div *ngFor=\"let f of r.get('fields').controls; let fi = index\" cdkDrag class=\"designer-field row\" [attr.data-index]=\"fi\">\r\n <!--<mat-icon cdkDragHandle>{{iconOf(f.value.type)}}</mat-icon>-->\r\n <bizdoc-box-control-design [metadata]=\"f.value\"></bizdoc-box-control-design>\r\n <div class=\"tools\">\r\n <button mat-stroked-button (click)=\"removeField(r, f)\" [bizdocTooltip]=\"'Discard'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n <button mat-stroked-button (click)=\"editField(f)\" [bizdocTooltip]=\"'Settings'|translate\" type=\"button\"><mat-icon>settings</mat-icon></button>\r\n </div>\r\n <!--<div *cdkDragPlaceholder class=\"drag-placeholder\"></div>-->\r\n </div>\r\n </div>\r\n <div class=\"column\">\r\n <button mat-stroked-button [matMenuTriggerFor]=\"fieldMenu\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add</mat-icon></button>\r\n <mat-menu #fieldMenu>\r\n <button mat-menu-item *ngFor=\"let c of controls\" (click)=\"addField(s, r, c, $event)\">\r\n <mat-icon>{{c.icon}}</mat-icon>\r\n <span>{{c.title}}</span>\r\n </button>\r\n </mat-menu>\r\n <span class=\"divider\"></span>\r\n <div class=\"tools\">\r\n <button mat-stroked-button (click)=\"removeRow(s, r)\" [bizdocTooltip]=\"'Discard'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"tools row\">\r\n <button mat-stroked-button (click)=\"addRow(s, $event)\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-stroked-button (click)=\"removeSection(s)\" [bizdocTooltip]=\"'Discard'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n <button mat-stroked-button (click)=\"editSection(s)\" [bizdocTooltip]=\"'Settings'|translate\" type=\"button\"><mat-icon>settings</mat-icon></button>\r\n </div>\r\n </section>\r\n <button mat-stroked-button (click)=\"addSection($event)\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add</mat-icon></button>\r\n </div>\r\n</form>\r\n", styles: ["form{margin:8px}:host ::ng-deep .cdk-drag-handle{cursor:move}section,.designer-row{border:2px solid transparent;border-radius:3px;padding:8px}.designer-field button{opacity:.1}.designer-field:hover button{opacity:1}section:hover,.designer-row:hover{border:2px dotted}section .designer-row{margin:5px 0}section .designer-row .designer-field{flex:1}.drag-placeholder{border:2px dashed}\n"], dependencies: [{ kind: "directive", type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i11.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i11.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i11.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i12.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i13.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i13.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i14.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i15.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i15.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i15.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i16.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: DesignControlComponent, selector: "bizdoc-box-control-design", inputs: ["metadata"] }, { kind: "pipe", type: i17.LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: i18.TranslatePipe, name: "translate" }] }); }
292
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: FormDesignerComponent, deps: [{ token: i3.FormBuilder }, { token: i4.PaneRef }, { token: i0.ChangeDetectorRef }, { token: i5.PromptService }, { token: i6.SystemService }, { token: i7.TranslateService }, { token: i8.PanesRouter }, { token: i1.SessionService }, { token: i0.ElementRef }, { token: i9.UtilityRef }], target: i0.ɵɵFactoryTarget.Component }); }
293
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.1", type: FormDesignerComponent, selector: "ng-component", host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" } }, ngImport: i0, template: "<mat-toolbar>\r\n <button mat-icon-button (click)=\"save()\" [disabled]=\"!form.dirty || loading || saving\" [bizdocTooltip]=\"'Save'|translate\"><mat-icon>save</mat-icon></button>\r\n <button mat-icon-button (click)=\"undo()\" [bizdocTooltip]=\"'Undo' | translate\" [disabled]=\"historyIndex === -1\"><mat-icon class=\"mat-icon-rtl-mirror\">undo</mat-icon></button>\r\n <button mat-icon-button (click)=\"redo()\" [bizdocTooltip]=\"'Redo' | translate\" [disabled]=\"historyIndex === history.length - 1\"><mat-icon class=\"mat-icon-rtl-mirror\">redo</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <!--<button mat-icon-button (click)=\"opensettings()\" [bizdocTooltip]=\"'Settings'|translate\" type=\"button\"><mat-icon>settings</mat-icon></button>-->\r\n</mat-toolbar>\r\n<form autocomplete=\"off\" [formGroup]=\"form\" *ngIf=\"model\">\r\n <div cdkDropList (cdkDropListDropped)=\"drop($event, sections)\">\r\n <section class=\"column\" *ngFor=\"let s of sections.controls; let si = index\" cdkDrag [attr.data-index]=\"si\">\r\n <div class=\"row\">\r\n <mat-icon class=\"section-drag\" cdkDragHandle>drag_indicator</mat-icon>\r\n <div class=\"column\" [formGroup]=\"s\">\r\n <h2 class=\"mat-mdc-title\">{{s.get('title').value|localizedString}}</h2>\r\n <p class=\"mat-body-1\" *ngIf=\"s.get('note').value\">{{s.get('note').value|localizedString}}</p>\r\n <div cdkDropList (cdkDropListDropped)=\"drop($event, s.get('rows'))\">\r\n <div *ngFor=\"let r of s.get('rows').controls; let ri = index\" class=\"row designer-row\" cdkDrag [attr.data-index]=\"ri\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n <div cdkDropList cdkDropListOrientation=\"horizontal\" (cdkDropListDropped)=\"drop($event, r.get('fields'))\" class=\"row\">\r\n <div *ngFor=\"let f of r.get('fields').controls; let fi = index\" cdkDrag class=\"designer-field row\" [attr.data-index]=\"fi\">\r\n <!--<mat-icon cdkDragHandle>{{iconOf(f.value.type)}}</mat-icon>-->\r\n <bizdoc-box-control-design [metadata]=\"f.value\"></bizdoc-box-control-design>\r\n <div class=\"tools\">\r\n <button mat-stroked-button (click)=\"removeField(r, f)\" [bizdocTooltip]=\"'Discard'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n <button mat-stroked-button (click)=\"editField(f)\" [bizdocTooltip]=\"'Settings'|translate\" type=\"button\"><mat-icon>settings</mat-icon></button>\r\n </div>\r\n <!--<div *cdkDragPlaceholder class=\"drag-placeholder\"></div>-->\r\n </div>\r\n </div>\r\n <div class=\"column\">\r\n <button mat-stroked-button [matMenuTriggerFor]=\"fieldMenu\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add</mat-icon></button>\r\n <mat-menu #fieldMenu>\r\n <button mat-menu-item *ngFor=\"let c of controls\" (click)=\"addField(s, r, c, $event)\">\r\n <mat-icon>{{c.icon}}</mat-icon>\r\n <span>{{c.title}}</span>\r\n </button>\r\n </mat-menu>\r\n <span class=\"divider\"></span>\r\n <div class=\"tools\">\r\n <button mat-stroked-button (click)=\"removeRow(s, r)\" [bizdocTooltip]=\"'Discard'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"tools row\">\r\n <button mat-stroked-button (click)=\"addRow(s, $event)\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-stroked-button (click)=\"removeSection(s)\" [bizdocTooltip]=\"'Discard'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n <button mat-stroked-button (click)=\"editSection(s)\" [bizdocTooltip]=\"'Settings'|translate\" type=\"button\"><mat-icon>settings</mat-icon></button>\r\n </div>\r\n </section>\r\n <button mat-stroked-button (click)=\"addSection($event)\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add</mat-icon></button>\r\n </div>\r\n</form>\r\n", styles: ["form{margin:8px}:host ::ng-deep .cdk-drag-handle{cursor:move}section,.designer-row{border:2px solid transparent;border-radius:3px;padding:8px}.designer-field button{opacity:.1}.designer-field:hover button{opacity:1}section:hover,.designer-row:hover{border:2px dotted}section .designer-row{margin:5px 0}section .designer-row .designer-field{flex:1}.drag-placeholder{border:2px dashed}\n"], dependencies: [{ kind: "directive", type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i11.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i11.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i11.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i12.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i13.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i13.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i14.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i15.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: i15.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i15.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: i16.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: DesignControlComponent, selector: "bizdoc-box-control-design", inputs: ["metadata"] }, { kind: "pipe", type: i17.LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: i18.TranslatePipe, name: "translate" }] }); }
294
294
  };
295
295
  FormDesignerComponent = __decorate([
296
296
  BizDoc({ selector: 'bizdoc-form-designer' })
297
297
  ], FormDesignerComponent);
298
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormDesignerComponent, decorators: [{
298
+ export { FormDesignerComponent };
299
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: FormDesignerComponent, decorators: [{
299
300
  type: Component,
300
301
  args: [{ template: "<mat-toolbar>\r\n <button mat-icon-button (click)=\"save()\" [disabled]=\"!form.dirty || loading || saving\" [bizdocTooltip]=\"'Save'|translate\"><mat-icon>save</mat-icon></button>\r\n <button mat-icon-button (click)=\"undo()\" [bizdocTooltip]=\"'Undo' | translate\" [disabled]=\"historyIndex === -1\"><mat-icon class=\"mat-icon-rtl-mirror\">undo</mat-icon></button>\r\n <button mat-icon-button (click)=\"redo()\" [bizdocTooltip]=\"'Redo' | translate\" [disabled]=\"historyIndex === history.length - 1\"><mat-icon class=\"mat-icon-rtl-mirror\">redo</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <!--<button mat-icon-button (click)=\"opensettings()\" [bizdocTooltip]=\"'Settings'|translate\" type=\"button\"><mat-icon>settings</mat-icon></button>-->\r\n</mat-toolbar>\r\n<form autocomplete=\"off\" [formGroup]=\"form\" *ngIf=\"model\">\r\n <div cdkDropList (cdkDropListDropped)=\"drop($event, sections)\">\r\n <section class=\"column\" *ngFor=\"let s of sections.controls; let si = index\" cdkDrag [attr.data-index]=\"si\">\r\n <div class=\"row\">\r\n <mat-icon class=\"section-drag\" cdkDragHandle>drag_indicator</mat-icon>\r\n <div class=\"column\" [formGroup]=\"s\">\r\n <h2 class=\"mat-mdc-title\">{{s.get('title').value|localizedString}}</h2>\r\n <p class=\"mat-body-1\" *ngIf=\"s.get('note').value\">{{s.get('note').value|localizedString}}</p>\r\n <div cdkDropList (cdkDropListDropped)=\"drop($event, s.get('rows'))\">\r\n <div *ngFor=\"let r of s.get('rows').controls; let ri = index\" class=\"row designer-row\" cdkDrag [attr.data-index]=\"ri\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n <div cdkDropList cdkDropListOrientation=\"horizontal\" (cdkDropListDropped)=\"drop($event, r.get('fields'))\" class=\"row\">\r\n <div *ngFor=\"let f of r.get('fields').controls; let fi = index\" cdkDrag class=\"designer-field row\" [attr.data-index]=\"fi\">\r\n <!--<mat-icon cdkDragHandle>{{iconOf(f.value.type)}}</mat-icon>-->\r\n <bizdoc-box-control-design [metadata]=\"f.value\"></bizdoc-box-control-design>\r\n <div class=\"tools\">\r\n <button mat-stroked-button (click)=\"removeField(r, f)\" [bizdocTooltip]=\"'Discard'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n <button mat-stroked-button (click)=\"editField(f)\" [bizdocTooltip]=\"'Settings'|translate\" type=\"button\"><mat-icon>settings</mat-icon></button>\r\n </div>\r\n <!--<div *cdkDragPlaceholder class=\"drag-placeholder\"></div>-->\r\n </div>\r\n </div>\r\n <div class=\"column\">\r\n <button mat-stroked-button [matMenuTriggerFor]=\"fieldMenu\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add</mat-icon></button>\r\n <mat-menu #fieldMenu>\r\n <button mat-menu-item *ngFor=\"let c of controls\" (click)=\"addField(s, r, c, $event)\">\r\n <mat-icon>{{c.icon}}</mat-icon>\r\n <span>{{c.title}}</span>\r\n </button>\r\n </mat-menu>\r\n <span class=\"divider\"></span>\r\n <div class=\"tools\">\r\n <button mat-stroked-button (click)=\"removeRow(s, r)\" [bizdocTooltip]=\"'Discard'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"tools row\">\r\n <button mat-stroked-button (click)=\"addRow(s, $event)\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-stroked-button (click)=\"removeSection(s)\" [bizdocTooltip]=\"'Discard'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n <button mat-stroked-button (click)=\"editSection(s)\" [bizdocTooltip]=\"'Settings'|translate\" type=\"button\"><mat-icon>settings</mat-icon></button>\r\n </div>\r\n </section>\r\n <button mat-stroked-button (click)=\"addSection($event)\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add</mat-icon></button>\r\n </div>\r\n</form>\r\n", styles: ["form{margin:8px}:host ::ng-deep .cdk-drag-handle{cursor:move}section,.designer-row{border:2px solid transparent;border-radius:3px;padding:8px}.designer-field button{opacity:.1}.designer-field:hover button{opacity:1}section:hover,.designer-row:hover{border:2px dotted}section .designer-row{margin:5px 0}section .designer-row .designer-field{flex:1}.drag-placeholder{border:2px dashed}\n"] }]
301
- }], ctorParameters: function () { return [{ type: i3.FormBuilder }, { type: i4.PaneRef }, { type: i0.ChangeDetectorRef }, { type: i5.PromptService }, { type: i6.SystemService }, { type: i7.TranslateService }, { type: i8.PanesRouter }, { type: i1.SessionService }, { type: i0.ElementRef }, { type: i9.UtilityRef }]; }, propDecorators: { handleKeyboardEvent: [{
302
+ }], ctorParameters: () => [{ type: i3.FormBuilder }, { type: i4.PaneRef }, { type: i0.ChangeDetectorRef }, { type: i5.PromptService }, { type: i6.SystemService }, { type: i7.TranslateService }, { type: i8.PanesRouter }, { type: i1.SessionService }, { type: i0.ElementRef }, { type: i9.UtilityRef }], propDecorators: { handleKeyboardEvent: [{
302
303
  type: HostListener,
303
304
  args: ['document:keydown', ['$event']]
304
305
  }] } });
305
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm94LWRlc2lnbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvYWRtaW4vZm9ybS9kZXNpZ25lci9ib3gtZGVzaWduZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9mb3JtL2Rlc2lnbmVyL2JveC1kZXNpZ25lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFxQixTQUFTLEVBQWMsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXNELE1BQU0sZUFBZSxDQUFDO0FBSTFKLE9BQU8sRUFBZ0IsYUFBYSxFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFXbEQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTTVELE1BQU0sT0FBTyxzQkFBc0I7SUFHakMsWUFDVSxJQUFzQixFQUNDLE9BQXFCLEVBQzVDLFFBQXdCLEVBQ3hCLEdBQW1DO1FBSG5DLFNBQUksR0FBSixJQUFJLENBQWtCO1FBQ0MsWUFBTyxHQUFQLE9BQU8sQ0FBYztRQUM1QyxhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQUN4QixRQUFHLEdBQUgsR0FBRyxDQUFnQztJQUFLLENBQUM7SUFDbkQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFD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cnQgeyBDZGtEcmFnRHJvcCB9IGZyb20gXCJAYW5ndWxhci9jZGsvZHJhZy1kcm9wXCI7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtQXJyYXksIEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgQ29udHJvbENvbXBvbmVudCB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2Jhc2VcIjtcclxuaW1wb3J0IHsgQml6RG9jQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvY29tcG9uZW50LWZhY3RvcnktcmVzb2x2ZXJcIjtcclxuaW1wb3J0IHsgQml6RG9jQ29uZmlnLCBCSVpET0NfQ09ORklHLCBPcGVuUG9saWN5IH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvY29uZmlndXJhdGlvblwiO1xyXG5pbXBvcnQgeyBCaXpEb2MgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9kZWNvcmF0b3JzXCI7XHJcbmltcG9ydCB7IGNsZWFudXAgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9mdW5jdGlvbnNcIjtcclxuaW1wb3J0IHsgQ3ViZSwgVHlwZSB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL21vZGVsc1wiO1xyXG5pbXBvcnQgeyBQcm9tcHRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvcHJvbXB0LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUGFuZVJlZiB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL3Nsb3RzL3BhbmUtcmVmXCI7XHJcbmltcG9ydCB7IFBhbmVzUm91dGVyIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvc2xvdHMvcm91dGVyLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IHByb2dyYW1OYW1lIH0gZnJvbSBcIi4uLy4uL2FyY2hpdGVjdHVyZS9kZWNsYXJhdGlvbnNcIjtcclxuaW1wb3J0IHsgQ29udHJvbEluZm8sIFN5c3RlbVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc3lzdGVtLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVXRpbGl0eVJlZiB9IGZyb20gXCIuLi8uLi91dGlsaXR5LXJlZlwiO1xyXG5pbXBvcnQgeyBCb3hGb3JtTWV0YWRhdGEsIEZpZWxkTW9kZWwsIEJveFJvd01vZGVsLCBTZWN0aW9uTW9kZWwgfSBmcm9tIFwiLi9kZWNsYXJhdGlvbnNcIjtcclxuaW1wb3J0IHsgQ29udHJvbFByb3BlcnRpZXNDb21wb25lbnQgfSBmcm9tIFwiLi9wcm9wZXJ0aWVzLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBTZWN0aW9uUHJvcGVydGllc0NvbXBvbmVudCB9IGZyb20gXCIuL3NlY3Rpb24uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEJveFNldHRpbmdzQ29tcG9uZW50IH0gZnJvbSBcIi4vc2V0dGluZ3MuY29tcG9uZW50XCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZTogJycsXHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtYm94LWNvbnRyb2wtZGVzaWduJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRGVzaWduQ29udHJvbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSBtZXRhZGF0YTogRmllbGRNb2RlbDtcclxuICBwcml2YXRlIF9pbnN0YW5jZTogQ29udHJvbENvbXBvbmVudDxhbnk+O1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfdmNyOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgQEluamVjdChCSVpET0NfQ09ORklHKSBwcml2YXRlIF9jb25maWc6IEJpekRvY0NvbmZpZyxcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfY2Y6IEJpekRvY0NvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwpIHsgfVxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgICFjaGFuZ2VzWydtZXRhZGF0YSddLmZpcnN0Q2hhbmdlICYmIE9iamVjdC5hc3NpZ24odGhpcy5faW5zdGFuY2UsIHRoaXMubWV0YWRhdGEpO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IHsgY29udHJvbHMgfSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZSxcclxuICAgICAgeyBjb250cm9sVHlwZSB9ID0gdGhpcy5tZXRhZGF0YSxcclxuICAgICAgY29udHJvbCA9IGNvbnRyb2xzW2NvbnRyb2xUeXBlXSB8fCAoY29udHJvbHNbY29udHJvbFR5cGVdID0gY29udHJvbHMuZmluZChjID0+IGMubmFtZSA9PT0gY29udHJvbFR5cGUpKSxcclxuICAgICAgc2VsZWN0b3IgPSBjb250cm9sLnRlbXBsYXRlO1xyXG4gICAgY29uc3QgY29tcCA9IHRoaXMuX2NmLmNvbXBvbmVudChzZWxlY3Rvcik7XHJcbiAgICBjb25zdCBjb21wUmVmID0gdGhpcy5fdmNyLmNyZWF0ZUNvbXBvbmVudDxDb250cm9sQ29tcG9uZW50Pihjb21wKTtcclxuICAgIGNvbnN0IGluc3RhbmNlID0gdGhpcy5faW5zdGFuY2UgPSBjb21wUmVmLmluc3RhbmNlO1xyXG4gICAgT2JqZWN0LmFzc2lnbihpbnN0YW5jZSwgdGhpcy5tZXRhZGF0YSk7XHJcbiAgICBpbnN0YW5jZS5hcHBlYXJhbmNlID0gdGhpcy5fY29uZmlnLmFwcGVhcmFuY2UgfHwgJ291dGxpbmUnO1xyXG4gICAgaW5zdGFuY2UubW9kZSA9ICdjb21wb3NlJztcclxuICAgIGluc3RhbmNlLmNvbnRyb2wuZGlzYWJsZSgpO1xyXG4gIH1cclxufVxyXG4vKiogKi9cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGVVcmw6ICdib3gtZGVzaWduZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWydib3gtZGVzaWduZXIuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuQEJpekRvYyh7IHNlbGVjdG9yOiAnYml6ZG9jLWZvcm0tZGVzaWduZXInIH0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtRGVzaWduZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGxvYWRpbmcgPSB0cnVlO1xyXG4gIHRvb2xzID0gdHJ1ZTtcclxuICBzYXZpbmcgPSBmYWxzZTtcclxuICBtb2RlbDogQm94Rm9ybU1ldGFkYXRhO1xyXG4gIHJlYWRvbmx5IGhpc3Rvcnk6IHN0cmluZ1tdID0gW107XHJcbiAgaGlzdG9yeUluZGV4ID0gLTE7XHJcbiAgcmVhZG9ubHkgZGF0YXR5cGVzOiBUeXBlW107XHJcbiAgcmVhZG9ubHkgY3ViZXM6IEN1YmVbXTtcclxuICByZWFkb25seSBzZWN0aW9ucyA9IHRoaXMuX2ZiLmFycmF5KFtdKTtcclxuICByZWFkb25seSBmb3JtID0gdGhpcy5fZmIuZ3JvdXAoe1xyXG4gICAgc3ViamVjdDogbnVsbCxcclxuICAgIHZhbHVlOiBudWxsLFxyXG4gICAgc3VtbWFyeTogbnVsbCxcclxuICAgIHNlY3Rpb25zOiB0aGlzLnNlY3Rpb25zXHJcbiAgfSk7XHJcbiAgY29udHJvbHM6IENvbnRyb2xJbmZvW107XHJcbiAgcHJpdmF0ZSBfZm9ybUlkOiBzdHJpbmc7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9mYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIF9wYW5lOiBQYW5lUmVmPGFueT4sXHJcbiAgICBwcml2YXRlIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIF9wczogUHJvbXB0U2VydmljZSxcclxuICAgIHByaXZhdGUgX3N5c3RlbTogU3lzdGVtU2VydmljZSxcclxuICAgIHByaXZhdGUgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3JvdXRlcjogUGFuZXNSb3V0ZXIsXHJcbiAgICBwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX2VsOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSBfcmVmOiBVdGlsaXR5UmVmPGJvb2xlYW4sIHsgbWV0YWRhdGE6IEJveEZvcm1NZXRhZGF0YSwgZm9ybUlkOiBzdHJpbmcgfSwgQm94Rm9ybU1ldGFkYXRhLCBzdHJpbmc+KSB7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fcGFuZS5xdWVyeVBhcmFtc0NoYW5nZSgpLnN1YnNjcmliZShwID0+IHtcclxuICAgICAgY29uc3QgeyBmb3JtSWQgfSA9IHA7XHJcbiAgICAgIGZvcm1JZCAmJiB0aGlzLl9vcGVuKGZvcm1JZCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX3N5c3RlbS5jb250cm9scygpLnN1YnNjcmliZShjID0+IHtcclxuICAgICAgdGhpcy5jb250cm9scyA9IGMuZmlsdGVyKGMgPT4gIWMuc3lzdGVtKTtcclxuICAgICAgYy5mb3JFYWNoKGMgPT4gdGhpcy5jb250cm9sc1tjLm5hbWVdID0gYyk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfb3Blbihmb3JtSWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5fcmVmLnBvcHVsYXRlKGZvcm1JZCkuc3Vic2NyaWJlKHIgPT4ge1xyXG4gICAgICB0aGlzLl9mb3JtSWQgPSBmb3JtSWQ7XHJcbiAgICAgIHRoaXMuX2Fzc2lnbihyKTtcclxuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfYXNzaWduKG1vZGVsOiBCb3hGb3JtTWV0YWRhdGEpIHtcclxuICAgIHRoaXMubW9kZWwgPSBtb2RlbCB8fCB7IHNlY3Rpb25zOiBbXSB9O1xyXG4gICAgdGhpcy5zZWN0aW9ucy5jbGVhcih7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh0aGlzLm1vZGVsLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICB0aGlzLm1vZGVsLnNlY3Rpb25zLmZvckVhY2gocyA9PiB0aGlzLnNlY3Rpb25zLnB1c2godGhpcy5fc2VjdGlvbmZvcm0ocykgYXMgYW55LCB7IGVtaXRFdmVudDogZmFsc2UgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zZWN0aW9uZm9ybShtb2RlbDogU2VjdGlvbk1vZGVsKSB7XHJcbiAgICBjb25zdCBmb3JtID0gdGhpcy5fZmIuZ3JvdXAoe1xyXG4gICAgICBuYW1lOiBtb2RlbC5uYW1lLFxyXG4gICAgICB0aXRsZTogbW9kZWwudGl0bGUsXHJcbiAgICAgIG5vdGU6IG1vZGVsLm5vdGUsXHJcbiAgICAgIG11bHRpTGluZTogbW9kZWwubXVsdGlMaW5lLFxyXG4gICAgICByb3dzOiB0aGlzLl9mYi5hcnJheShtb2RlbC5yb3dzPy5tYXAociA9PiB0aGlzLl9yb3dmb3JtKHIpKSB8fCBbXSlcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGZvcm07XHJcbiAgfVxyXG4gIHByaXZhdGUgX3Jvd2Zvcm0ocm93OiBCb3hSb3dNb2RlbCk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmIuZ3JvdXAoe1xyXG4gICAgICBmaWVsZHM6IHRoaXMuX2ZiLmFycmF5KHJvdy5maWVsZHM/Lm1hcChmID0+IHRoaXMuX2ZpZWxkZm9ybShmKSkpXHJcbiAgICB9KVxyXG4gIH1cclxuICBwcml2YXRlIF9maWVsZGZvcm0oZmllbGQ6IEZpZWxkTW9kZWwpOiBhbnkge1xyXG4gICAgY29uc3QgZm9ybSA9IHRoaXMuX2ZiLmNvbnRyb2woZmllbGQpO1xyXG4gICAgcmV0dXJuIGZvcm07XHJcbiAgfVxyXG4gIGFkZFNlY3Rpb24oZXZ0PzogRXZlbnQpIHtcclxuICAgIGxldCBuID0gMCwgbmFtZSwgdGl0bGU7XHJcbiAgICBkbyB7XHJcbiAgICAgIG4rKztcclxuICAgICAgbmFtZSA9ICdzZWN0aW9uJyArICdfJyArIG47XHJcbiAgICAgIHRpdGxlID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnU2VjdGlvbk4nLCBuKTtcclxuICAgIH0gd2hpbGUgKHRoaXMuc2VjdGlvbnMuY29udHJvbHMuZmluZChzID0+IHMuZ2V0KCduYW1lJykudmFsdWUgPT09IG5hbWUgfHwgcy5nZXQoJ3RpdGxlJykudmFsdWUgPT09IHRpdGxlKSk7XHJcbiAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoU2VjdGlvblByb3BlcnRpZXNDb21wb25lbnQsIHtcclxuICAgICAgcG9saWN5OiBPcGVuUG9saWN5LkRpYWxvZyB8IE9wZW5Qb2xpY3kuRGlzbWlzc2FibGUsXHJcbiAgICAgIHN0YXRlOiB7XHJcbiAgICAgICAgbmFtZSxcclxuICAgICAgICB0aXRsZSxcclxuICAgICAgICBkcmFmdDogdHJ1ZSxcclxuICAgICAgICByb3dzOiBbeyBmaWVsZHM6IFtdIH1dXHJcbiAgICAgIH0gYXMgU2VjdGlvbk1vZGVsXHJcbiAgICB9KS50aGVuKGUgPT4gZS5jbG9zZWQoKS5zdWJzY3JpYmUodiA9PiB7XHJcbiAgICAgIGlmICh2KSB7XHJcbiAgICAgICAgdGhpcy5fbm90aWZ5Q2hhbmdlKCk7XHJcbiAgICAgICAgdGhpcy5zZWN0aW9ucy5wdXNoKHRoaXMuX3NlY3Rpb25mb3JtKHYpIGFzIGFueSk7XHJcbiAgICAgIH1cclxuICAgIH0pKTtcclxuICB9XHJcbiAgYWRkUm93KHNlY3Rpb246IEZvcm1Hcm91cCwgZXZ0PzogRXZlbnQpIHtcclxuICAgIHRoaXMuX25vdGlmeUNoYW5nZSgpO1xyXG4gICAgKHNlY3Rpb24uZ2V0KCdyb3dzJykgYXMgRm9ybUFycmF5KS5wdXNoKHRoaXMuX3Jvd2Zvcm0oe1xyXG4gICAgICBmaWVsZHM6IFtdIGFzIGFueVxyXG4gICAgfSkpO1xyXG4gICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgdGhpcy5fZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKGBzZWN0aW9uW2RhdGEtaW5kZXg9JyR7dGhpcy5zZWN0aW9ucy5jb250cm9scy5pbmRleE9mKHNlY3Rpb24gYXMgYW55KX0nXSAuZGVzaWduZXItcm93Omxhc3QtY2hpbGQgYnV0dG9uYCk/LmZvY3VzKClcclxuICB9XHJcbiAgaWNvbk9mKHR5cGU6IHN0cmluZykgeyByZXR1cm4gdGhpcy5jb250cm9sc1t0eXBlXS5pY29uIH1cclxuICBhZGRGaWVsZChzZWN0aW9uOiBGb3JtR3JvdXAsIHJvdzogRm9ybUdyb3VwLCBjb250cm9sOiBDb250cm9sSW5mbywgZXZ0PzogRXZlbnQpIHtcclxuICAgIGxldCBuID0gMCwgbmFtZSwgbGFiZWw7XHJcbiAgICBkbyB7XHJcbiAgICAgIG4rKztcclxuICAgICAgbmFtZSA9IGNvbnRyb2wubmFtZS5yZXBsYWNlKCctJywgJ18nKSArICdfJyArIG47XHJcbiAgICAgIGxhYmVsID0gY29udHJvbC50aXRsZSArICcgJyArIG47XHJcbiAgICB9IHdoaWxlICgoc2VjdGlvbi5nZXQoJ3Jvd3MnKSBhcyBGb3JtQXJyYXkpLmNvbnRyb2xzLlxyXG4gICAgICBmaW5kKHIgPT4gKHIuZ2V0KCdmaWVsZHMnKSBhcyBGb3JtQXJyYXkpLmNvbnRyb2xzLmZpbmQoZiA9PiBmLnZhbHVlLm5hbWUgPT09IG5hbWUgfHwgZi52YWx1ZS5sYWJlbCA9PT0gbGFiZWwpICE9IG51bGwpKTtcclxuICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShDb250cm9sUHJvcGVydGllc0NvbXBvbmVudCwge1xyXG4gICAgICBwb2xpY3k6IE9wZW5Qb2xpY3kuRGlhbG9nIHwgT3BlblBvbGljeS5EaXNtaXNzYWJsZSxcclxuICAgICAgaWNvbjogY29udHJvbC5pY29uLFxyXG4gICAgICBzdGF0ZToge1xyXG4gICAgICAgIG5hbWUsIGxhYmVsLCBkcmFmdDogdHJ1ZSxcclxuICAgICAgICBjb250cm9sVHlwZTogY29udHJvbC5uYW1lXHJcbiAgICAgIH0gYXMgRmllbGRNb2RlbFxyXG4gICAgfSkudGhlbihlID0+IGUuY2xvc2VkKCkuc3Vic2NyaWJlKHYgPT4ge1xyXG4gICAgICBpZiAodikge1xyXG4gICAgICAgIHRoaXMuX25vdGlmeUNoYW5nZSgpO1xyXG4gICAgICAgIChyb3cuZ2V0KCdmaWVsZHMnKSBhcyBGb3JtQXJyYXkpLnB1c2godGhpcy5fZmllbGRmb3JtKHYpKTtcclxuICAgICAgfVxyXG4gICAgfSkpO1xyXG4gIH1cclxuICBlZGl0RmllbGQoZmllbGQ6IEZvcm1Hcm91cCkge1xyXG4gICAgY29uc3QgbW9kZWwgPSBmaWVsZC5nZXRSYXdWYWx1ZSgpIGFzIEZpZWxkTW9kZWwsXHJcbiAgICAgIGNvbnRyb2wgPSB0aGlzLmNvbnRyb2xzW21vZGVsLmNvbnRyb2xUeXBlXTtcclxuICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShDb250cm9sUHJvcGVydGllc0NvbXBvbmVudCwge1xyXG4gICAgICBwb2xpY3k6IE9wZW5Qb2xpY3kuVGFiIHwgT3BlblBvbGljeS5EZWZlcixcclxuICAgICAgaWNvbjogY29udHJvbC5pY29uLFxyXG4gICAgICBzdGF0ZTogbW9kZWxcclxuICAgIH0pLnRoZW4oZSA9PiBlLmNsb3NlZCgpLnN1YnNjcmliZSh2ID0+IHtcclxuICAgICAgaWYgKHYpIHtcclxuICAgICAgICB0aGlzLl9ub3RpZnlDaGFuZ2UoKTtcclxuICAgICAgICBmaWVsZC5zZXRWYWx1ZSh2KTtcclxuICAgICAgfVxyXG4gICAgfSkpO1xyXG4gIH1cclxuICBlZGl0U2VjdGlvbihmaWVsZDogRm9ybUdyb3VwKSB7XHJcbiAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoU2VjdGlvblByb3BlcnRpZXNDb21wb25lbnQsIHtcclxuICAgICAgcG9saWN5OiBPcGVuUG9saWN5LlRhYiB8IE9wZW5Qb2xpY3kuRGVmZXIsXHJcbiAgICAgIHN0YXRlOiBmaWVsZC5nZXRSYXdWYWx1ZSgpXHJcbiAgICB9KS50aGVuKGUgPT4gZS5jbG9zZWQoKS5zdWJzY3JpYmUodiA9PiB7XHJcbiAgICAgIGlmICh2KSB7XHJcbiAgICAgICAgdGhpcy5fbm90aWZ5Q2hhbmdlKCk7XHJcbiAgICAgICAgZmllbGQuc2V0VmFsdWUodik7XHJcbiAgICAgIH1cclxuICAgIH0pKTtcclxuICB9XHJcbiAgb3BlbnNldHRpbmdzKCkge1xyXG4gICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKEJveFNldHRpbmdzQ29tcG9uZW50LCB7XHJcbiAgICAgIHBvbGljeTogT3BlblBvbGljeS5UYWIgfCBPcGVuUG9saWN5LkRlZmVyLFxyXG4gICAgICBzdGF0ZTogdGhpcy5mb3JtLmdldFJhd1ZhbHVlKClcclxuICAgIH0pLnRoZW4oZSA9PiBlLmNsb3NlZCgpLnN1YnNjcmliZSh2ID0+IHtcclxuICAgICAgdGhpcy5fbm90aWZ5Q2hhbmdlKCk7XHJcbiAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHYpXHJcbiAgICB9KSk7XHJcbiAgfVxyXG4gIHJlbW92ZUZpZWxkKHJvdzogRm9ybUdyb3VwLCBmaWVsZDogRm9ybUdyb3VwKSB7XHJcbiAgICB0aGlzLl9ub3RpZnlDaGFuZ2UoKTtcclxuICAgIChyb3cuZ2V0KCdmaWVsZHMnKSBhcyBGb3JtQXJyYXkpLmNvbnRyb2xzLnJlbW92ZShmaWVsZCk7XHJcbiAgfVxyXG4gIHJlbW92ZVNlY3Rpb24oc2VjdGlvbjogRm9ybUdyb3VwKSB7XHJcbiAgICB0aGlzLl9ub3RpZnlDaGFuZ2UoKTtcclxuICAgIHRoaXMuc2VjdGlvbnMuY29udHJvbHMucmVtb3ZlKHNlY3Rpb24gYXMgYW55KTtcclxuICB9XHJcbiAgcmVtb3ZlUm93KHNlY3Rpb246IEZvcm1Hcm91cCwgcm93OiBGb3JtR3JvdXApIHtcclxuICAgIHRoaXMuX25vdGlmeUNoYW5nZSgpO1xyXG4gICAgKHNlY3Rpb24uZ2V0KCdyb3dzJykgYXMgRm9ybUFycmF5KS5jb250cm9scy5yZW1vdmUocm93KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfbm90aWZ5Q2hhbmdlKCkge1xyXG4gICAgdGhpcy5oaXN0b3J5LnB1c2goSlNPTi5zdHJpbmdpZnkodGhpcy5mb3JtLnZhbHVlKSk7XHJcbiAgICB0aGlzLmhpc3RvcnlJbmRleCA9IHRoaXMuaGlzdG9yeS5sZW5ndGggLSAxO1xyXG4gICAgdGhpcy5mb3JtLm1hcmtBc0RpcnR5KCk7XHJcbiAgfVxyXG4gIHVuZG8oKSB7XHJcbiAgICB0aGlzLl9yZXN0b3JlKCk7XHJcbiAgICB0aGlzLmhpc3RvcnlJbmRleC0tO1xyXG4gIH1cclxuICByZWRvKCkge1xyXG4gICAgdGhpcy5fcmVzdG9yZSgpO1xyXG4gICAgdGhpcy5oaXN0b3J5SW5kZXgrKztcclxuICB9XHJcbiAgcHJpdmF0ZSBfcmVzdG9yZSgpIHtcclxuICAgIHRoaXMuX2Fzc2lnbihKU09OLnBhcnNlKHRoaXMuaGlzdG9yeVt0aGlzLmhpc3RvcnlJbmRleF0pKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ3RybC1zIHNhdmU7IEN0cmwteiB1bmRvXHJcbiAgICogQHBhcmFtIGV2ZW50XHJcbiAgICovXHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsnJGV2ZW50J10pXHJcbiAgaGFuZGxlS2V5Ym9hcmRFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgaWYgKGV2ZW50LmN0cmxLZXkpIHtcclxuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ1MnIHx8IGV2ZW50LmtleSA9PT0gJ3MnKSB7XHJcbiAgICAgICAgdGhpcy5mb3JtLmRpcnR5ICYmIHRoaXMuc2F2ZSgpO1xyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8Rm9ybUdyb3VwPiwgY29sbGVjdGlvbjogRm9ybUFycmF5KSB7XHJcbiAgICB0aGlzLl9ub3RpZnlDaGFuZ2UoKTtcclxuICAgIGlmIChldmVudC5wcmV2aW91c0NvbnRhaW5lciA9PT0gZXZlbnQuY29udGFpbmVyKSB7XHJcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSBjb2xsZWN0aW9uLmF0KGV2ZW50LnByZXZpb3VzSW5kZXgpO1xyXG4gICAgICBjb2xsZWN0aW9uLnJlbW92ZUF0KGV2ZW50LnByZXZpb3VzSW5kZXgpO1xyXG4gICAgICBjb2xsZWN0aW9uLmluc2VydChldmVudC5jdXJyZW50SW5kZXgsIGVsZW1lbnQpO1xyXG4gICAgICAvL21vdmVJdGVtSW5BcnJheShldmVudC5jb250YWluZXIuZGF0YSwgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vICB0cmFuc2ZlckFycmF5SXRlbShcclxuICAgICAgLy8gICAgZXZlbnQucHJldmlvdXNDb250YWluZXIuZGF0YSxcclxuICAgICAgLy8gICAgZXZlbnQuY29udGFpbmVyLmRhdGEsXHJcbiAgICAgIC8vICAgIGV2ZW50LnByZXZpb3VzSW5kZXgsXHJcbiAgICAgIC8vICAgIGV2ZW50LmN1cnJlbnRJbmRleCxcclxuICAgICAgLy8gICk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNhdmUoKSB7XHJcbiAgICB0aGlzLnNhdmluZyA9IHRydWU7XHJcbiAgICB0aGlzLm1vZGVsID0gdGhpcy5mb3JtLnZhbHVlIGFzIGFueTtcclxuICAgIHRoaXMuX3JlZi5leGVjdXRlKHsgbWV0YWRhdGE6IGNsZWFudXAodGhpcy5tb2RlbCksIGZvcm1JZDogdGhpcy5fZm9ybUlkIH0pLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6ICgpID0+IHtcclxuICAgICAgICB0aGlzLl9wcy50b2FzdCgnQ2hhbmdlc1NhdmVkJyk7XHJcbiAgICAgICAgdGhpcy5mb3JtLm1hcmtBc1ByaXN0aW5lKCk7XHJcbiAgICAgICAgY29uc3QgZm9ybSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5mb3Jtcy5maW5kKGYgPT4gZi5uYW1lID09IHRoaXMuX2Zvcm1JZCk7XHJcbiAgICAgICAgaWYgKGZvcm0pIGZvcm0ub3B0aW9ucyA9IHRoaXMubW9kZWw7XHJcbiAgICAgICAgdGhpcy5zYXZpbmcgPSBmYWxzZTtcclxuICAgICAgfSwgZXJyb3I6ICgpID0+IHtcclxuICAgICAgICB0aGlzLl9wcy5lcnJvcigpO1xyXG4gICAgICAgIHRoaXMuc2F2aW5nID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG5cclxuIiwiPG1hdC10b29sYmFyPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJzYXZlKClcIiBbZGlzYWJsZWRdPVwiIWZvcm0uZGlydHkgfHwgbG9hZGluZyB8fCBzYXZpbmdcIiBbYml6ZG9jVG9vbHRpcF09XCInU2F2ZSd8dHJhbnNsYXRlXCI+PG1hdC1pY29uPnNhdmU8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJ1bmRvKClcIiBbYml6ZG9jVG9vbHRpcF09XCInVW5kbycgfCB0cmFuc2xhdGVcIiBbZGlzYWJsZWRdPVwiaGlzdG9yeUluZGV4ID09PSAtMVwiPjxtYXQtaWNvbiBjbGFzcz1cIm1hdC1pY29uLXJ0bC1taXJyb3JcIj51bmRvPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwicmVkbygpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1JlZG8nIHwgdHJhbnNsYXRlXCIgW2Rpc2FibGVkXT1cImhpc3RvcnlJbmRleCA9PT0gaGlzdG9yeS5sZW5ndGggLSAxXCI+PG1hdC1pY29uIGNsYXNzPVwibWF0LWljb24tcnRsLW1pcnJvclwiPnJlZG88L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gIDxzcGFuIGNsYXNzPVwiZGl2aWRlclwiPjwvc3Bhbj5cclxuICA8IS0tPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIm9wZW5zZXR0aW5ncygpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1NldHRpbmdzJ3x0cmFuc2xhdGVcIiB0eXBlPVwiYnV0dG9uXCI+PG1hdC1pY29uPnNldHRpbmdzPC9tYXQtaWNvbj48L2J1dHRvbj4tLT5cclxuPC9tYXQtdG9vbGJhcj5cclxuPGZvcm0gYXV0b2NvbXBsZXRlPVwib2ZmXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCIgKm5nSWY9XCJtb2RlbFwiPlxyXG4gIDxkaXYgY2RrRHJvcExpc3QgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudCwgc2VjdGlvbnMpXCI+XHJcbiAgICA8c2VjdGlvbiBjbGFzcz1cImNvbHVtblwiICpuZ0Zvcj1cImxldCBzIG9mIHNlY3Rpb25zLmNvbnRyb2xzOyBsZXQgc2kgPSBpbmRleFwiIGNka0RyYWcgW2F0dHIuZGF0YS1pbmRleF09XCJzaVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwic2VjdGlvbi1kcmFnXCIgY2RrRHJhZ0hhbmRsZT5kcmFnX2luZGljYXRvcjwvbWF0LWljb24+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtblwiIFtmb3JtR3JvdXBdPVwic1wiPlxyXG4gICAgICAgICAgPGgyIGNsYXNzPVwibWF0LW1kYy10aXRsZVwiPnt7cy5nZXQoJ3RpdGxlJykudmFsdWV8bG9jYWxpemVkU3RyaW5nfX08L2gyPlxyXG4gICAgICAgICAgPHAgY2xhc3M9XCJtYXQtYm9keS0xXCIgKm5nSWY9XCJzLmdldCgnbm90ZScpLnZhbHVlXCI+e3tzLmdldCgnbm90ZScpLnZhbHVlfGxvY2FsaXplZFN0cmluZ319PC9wPlxyXG4gICAgICAgICAgPGRpdiBjZGtEcm9wTGlzdCAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50LCBzLmdldCgncm93cycpKVwiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCByIG9mIHMuZ2V0KCdyb3dzJykuY29udHJvbHM7IGxldCByaSA9IGluZGV4XCIgY2xhc3M9XCJyb3cgZGVzaWduZXItcm93XCIgY2RrRHJhZyBbYXR0ci5kYXRhLWluZGV4XT1cInJpXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1pY29uIGNka0RyYWdIYW5kbGU+ZHJhZ19pbmRpY2F0b3I8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2RrRHJvcExpc3QgY2RrRHJvcExpc3RPcmllbnRhdGlvbj1cImhvcml6b250YWxcIiAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50LCByLmdldCgnZmllbGRzJykpXCIgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGYgb2Ygci5nZXQoJ2ZpZWxkcycpLmNvbnRyb2xzOyBsZXQgZmkgPSBpbmRleFwiIGNka0RyYWcgY2xhc3M9XCJkZXNpZ25lci1maWVsZCByb3dcIiBbYXR0ci5kYXRhLWluZGV4XT1cImZpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwhLS08bWF0LWljb24gY2RrRHJhZ0hhbmRsZT57e2ljb25PZihmLnZhbHVlLnR5cGUpfX08L21hdC1pY29uPi0tPlxyXG4gICAgICAgICAgICAgICAgICA8Yml6ZG9jLWJveC1jb250cm9sLWRlc2lnbiBbbWV0YWRhdGFdPVwiZi52YWx1ZVwiPjwvYml6ZG9jLWJveC1jb250cm9sLWRlc2lnbj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRvb2xzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gKGNsaWNrKT1cInJlbW92ZUZpZWxkKHIsIGYpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ0Rpc2NhcmQnfHRyYW5zbGF0ZVwiIHR5cGU9XCJidXR0b25cIj48bWF0LWljb24+ZGVsZXRlPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiAoY2xpY2spPVwiZWRpdEZpZWxkKGYpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1NldHRpbmdzJ3x0cmFuc2xhdGVcIiB0eXBlPVwiYnV0dG9uXCI+PG1hdC1pY29uPnNldHRpbmdzPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwhLS08ZGl2ICpjZGtEcmFnUGxhY2Vob2xkZXIgY2xhc3M9XCJkcmFnLXBsYWNlaG9sZGVyXCI+PC9kaXY+LS0+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwiZmllbGRNZW51XCIgW2JpemRvY1Rvb2x0aXBdPVwiJ0FkZCd8dHJhbnNsYXRlXCIgdHlwZT1cImJ1dHRvblwiPjxtYXQtaWNvbj5hZGQ8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1tZW51ICNmaWVsZE1lbnU+XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAqbmdGb3I9XCJsZXQgYyBvZiBjb250cm9sc1wiIChjbGljayk9XCJhZGRGaWVsZChzLCByLCBjLCAkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPnt7Yy5pY29ufX08L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7Yy50aXRsZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LW1lbnU+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9vbHNcIj5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gKGNsaWNrKT1cInJlbW92ZVJvdyhzLCByKVwiIFtiaXpkb2NUb29sdGlwXT1cIidEaXNjYXJkJ3x0cmFuc2xhdGVcIiB0eXBlPVwiYnV0dG9uXCI+PG1hdC1pY29uPmRlbGV0ZTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0b29scyByb3dcIj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiAoY2xpY2spPVwiYWRkUm93KHMsICRldmVudClcIiBbYml6ZG9jVG9vbHRpcF09XCInQWRkJ3x0cmFuc2xhdGVcIiB0eXBlPVwiYnV0dG9uXCI+PG1hdC1pY29uPmFkZDwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gICAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIChjbGljayk9XCJyZW1vdmVTZWN0aW9uKHMpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ0Rpc2NhcmQnfHRyYW5zbGF0ZVwiIHR5cGU9XCJidXR0b25cIj48bWF0LWljb24+ZGVsZXRlPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiAoY2xpY2spPVwiZWRpdFNlY3Rpb24ocylcIiBbYml6ZG9jVG9vbHRpcF09XCInU2V0dGluZ3MnfHRyYW5zbGF0ZVwiIHR5cGU9XCJidXR0b25cIj48bWF0LWljb24+c2V0dGluZ3M8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvc2VjdGlvbj5cclxuICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIChjbGljayk9XCJhZGRTZWN0aW9uKCRldmVudClcIiBbYml6ZG9jVG9vbHRpcF09XCInQWRkJ3x0cmFuc2xhdGVcIiB0eXBlPVwiYnV0dG9uXCI+PG1hdC1pY29uPmFkZDwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZm9ybT5cclxuIl19
306
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm94LWRlc2lnbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvYWRtaW4vZm9ybS9kZXNpZ25lci9ib3gtZGVzaWduZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9mb3JtL2Rlc2lnbmVyL2JveC1kZXNpZ25lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFxQixTQUFTLEVBQWMsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXNELE1BQU0sZUFBZSxDQUFDO0FBSTFKLE9BQU8sRUFBZ0IsYUFBYSxFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFXbEQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTTVELE1BQU0sT0FBTyxzQkFBc0I7SUFHakMsWUFDVSxJQUFzQixFQUNDLE9BQXFCLEVBQzVDLFFBQXdCLEVBQ3hCLEdBQW1DO1FBSG5DLFNBQUksR0FBSixJQUFJLENBQWtCO1FBQ0MsWUFBTyxHQUFQLE9BQU8sQ0FBYztRQUM1QyxhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQUN4QixRQUFHLEdBQUgsR0FBRyxDQUFnQztJQUFLLENBQUM7SUFDbkQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFD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b3J0IHsgQ2RrRHJhZ0Ryb3AgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2RyYWctZHJvcFwiO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIEluamVjdCwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUFycmF5LCBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IENvbnRyb2xDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9iYXNlXCI7XHJcbmltcG9ydCB7IEJpekRvY0NvbXBvbmVudEZhY3RvcnlSZXNvbHZlciB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2NvbXBvbmVudC1mYWN0b3J5LXJlc29sdmVyXCI7XHJcbmltcG9ydCB7IEJpekRvY0NvbmZpZywgQklaRE9DX0NPTkZJRywgT3BlblBvbGljeSB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2NvbmZpZ3VyYXRpb25cIjtcclxuaW1wb3J0IHsgQml6RG9jIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvZGVjb3JhdG9yc1wiO1xyXG5pbXBvcnQgeyBjbGVhbnVwIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvZnVuY3Rpb25zXCI7XHJcbmltcG9ydCB7IEN1YmUsIFR5cGUgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9tb2RlbHNcIjtcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL3Byb21wdC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFBhbmVSZWYgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9zbG90cy9wYW5lLXJlZlwiO1xyXG5pbXBvcnQgeyBQYW5lc1JvdXRlciB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL3Nsb3RzL3JvdXRlci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS90cmFuc2xhdGUuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBwcm9ncmFtTmFtZSB9IGZyb20gXCIuLi8uLi9hcmNoaXRlY3R1cmUvZGVjbGFyYXRpb25zXCI7XHJcbmltcG9ydCB7IENvbnRyb2xJbmZvLCBTeXN0ZW1TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3N5c3RlbS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFV0aWxpdHlSZWYgfSBmcm9tIFwiLi4vLi4vdXRpbGl0eS1yZWZcIjtcclxuaW1wb3J0IHsgQm94Rm9ybU1ldGFkYXRhLCBGaWVsZE1vZGVsLCBCb3hSb3dNb2RlbCwgU2VjdGlvbk1vZGVsIH0gZnJvbSBcIi4vZGVjbGFyYXRpb25zXCI7XHJcbmltcG9ydCB7IENvbnRyb2xQcm9wZXJ0aWVzQ29tcG9uZW50IH0gZnJvbSBcIi4vcHJvcGVydGllcy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgU2VjdGlvblByb3BlcnRpZXNDb21wb25lbnQgfSBmcm9tIFwiLi9zZWN0aW9uLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBCb3hTZXR0aW5nc0NvbXBvbmVudCB9IGZyb20gXCIuL3NldHRpbmdzLmNvbXBvbmVudFwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGU6ICcnLFxyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLWJveC1jb250cm9sLWRlc2lnbidcclxufSlcclxuZXhwb3J0IGNsYXNzIERlc2lnbkNvbnRyb2xDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgbWV0YWRhdGE6IEZpZWxkTW9kZWw7XHJcbiAgcHJpdmF0ZSBfaW5zdGFuY2U6IENvbnRyb2xDb21wb25lbnQ8YW55PjtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3ZjcjogVmlld0NvbnRhaW5lclJlZixcclxuICAgIEBJbmplY3QoQklaRE9DX0NPTkZJRykgcHJpdmF0ZSBfY29uZmlnOiBCaXpEb2NDb25maWcsXHJcbiAgICBwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX2NmOiBCaXpEb2NDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsKSB7IH1cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAhY2hhbmdlc1snbWV0YWRhdGEnXS5maXJzdENoYW5nZSAmJiBPYmplY3QuYXNzaWduKHRoaXMuX2luc3RhbmNlLCB0aGlzLm1ldGFkYXRhKTtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCB7IGNvbnRyb2xzIH0gPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUsXHJcbiAgICAgIHsgY29udHJvbFR5cGUgfSA9IHRoaXMubWV0YWRhdGEsXHJcbiAgICAgIGNvbnRyb2wgPSBjb250cm9sc1tjb250cm9sVHlwZV0gfHwgKGNvbnRyb2xzW2NvbnRyb2xUeXBlXSA9IGNvbnRyb2xzLmZpbmQoYyA9PiBjLm5hbWUgPT09IGNvbnRyb2xUeXBlKSksXHJcbiAgICAgIHNlbGVjdG9yID0gY29udHJvbC50ZW1wbGF0ZTtcclxuICAgIGNvbnN0IGNvbXAgPSB0aGlzLl9jZi5jb21wb25lbnQoc2VsZWN0b3IpO1xyXG4gICAgY29uc3QgY29tcFJlZiA9IHRoaXMuX3Zjci5jcmVhdGVDb21wb25lbnQ8Q29udHJvbENvbXBvbmVudD4oY29tcCk7XHJcbiAgICBjb25zdCBpbnN0YW5jZSA9IHRoaXMuX2luc3RhbmNlID0gY29tcFJlZi5pbnN0YW5jZTtcclxuICAgIE9iamVjdC5hc3NpZ24oaW5zdGFuY2UsIHRoaXMubWV0YWRhdGEpO1xyXG4gICAgaW5zdGFuY2UuYXBwZWFyYW5jZSA9IHRoaXMuX2NvbmZpZy5hcHBlYXJhbmNlIHx8ICdvdXRsaW5lJztcclxuICAgIGluc3RhbmNlLm1vZGUgPSAnY29tcG9zZSc7XHJcbiAgICBpbnN0YW5jZS5jb250cm9sLmRpc2FibGUoKTtcclxuICB9XHJcbn1cclxuLyoqICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlVXJsOiAnYm94LWRlc2lnbmVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnYm94LWRlc2lnbmVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbkBCaXpEb2MoeyBzZWxlY3RvcjogJ2JpemRvYy1mb3JtLWRlc2lnbmVyJyB9KVxyXG5leHBvcnQgY2xhc3MgRm9ybURlc2lnbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBsb2FkaW5nID0gdHJ1ZTtcclxuICB0b29scyA9IHRydWU7XHJcbiAgc2F2aW5nID0gZmFsc2U7XHJcbiAgbW9kZWw6IEJveEZvcm1NZXRhZGF0YTtcclxuICByZWFkb25seSBoaXN0b3J5OiBzdHJpbmdbXSA9IFtdO1xyXG4gIGhpc3RvcnlJbmRleCA9IC0xO1xyXG4gIHJlYWRvbmx5IGRhdGF0eXBlczogVHlwZVtdO1xyXG4gIHJlYWRvbmx5IGN1YmVzOiBDdWJlW107XHJcbiAgcmVhZG9ubHkgc2VjdGlvbnMgPSB0aGlzLl9mYi5hcnJheShbXSk7XHJcbiAgcmVhZG9ubHkgZm9ybSA9IHRoaXMuX2ZiLmdyb3VwKHtcclxuICAgIHN1YmplY3Q6IG51bGwsXHJcbiAgICB2YWx1ZTogbnVsbCxcclxuICAgIHN1bW1hcnk6IG51bGwsXHJcbiAgICBzZWN0aW9uczogdGhpcy5zZWN0aW9uc1xyXG4gIH0pO1xyXG4gIGNvbnRyb2xzOiBDb250cm9sSW5mb1tdO1xyXG4gIHByaXZhdGUgX2Zvcm1JZDogc3RyaW5nO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSBfcGFuZTogUGFuZVJlZjxhbnk+LFxyXG4gICAgcHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBfcHM6IFByb21wdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zeXN0ZW06IFN5c3RlbVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9yb3V0ZXI6IFBhbmVzUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9lbDogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgX3JlZjogVXRpbGl0eVJlZjxib29sZWFuLCB7IG1ldGFkYXRhOiBCb3hGb3JtTWV0YWRhdGEsIGZvcm1JZDogc3RyaW5nIH0sIEJveEZvcm1NZXRhZGF0YSwgc3RyaW5nPikge1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3BhbmUucXVlcnlQYXJhbXNDaGFuZ2UoKS5zdWJzY3JpYmUocCA9PiB7XHJcbiAgICAgIGNvbnN0IHsgZm9ybUlkIH0gPSBwO1xyXG4gICAgICBmb3JtSWQgJiYgdGhpcy5fb3Blbihmb3JtSWQpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9zeXN0ZW0uY29udHJvbHMoKS5zdWJzY3JpYmUoYyA9PiB7XHJcbiAgICAgIHRoaXMuY29udHJvbHMgPSBjLmZpbHRlcihjID0+ICFjLnN5c3RlbSk7XHJcbiAgICAgIGMuZm9yRWFjaChjID0+IHRoaXMuY29udHJvbHNbYy5uYW1lXSA9IGMpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX29wZW4oZm9ybUlkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3JlZi5wb3B1bGF0ZShmb3JtSWQpLnN1YnNjcmliZShyID0+IHtcclxuICAgICAgdGhpcy5fZm9ybUlkID0gZm9ybUlkO1xyXG4gICAgICB0aGlzLl9hc3NpZ24ocik7XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2Fzc2lnbihtb2RlbDogQm94Rm9ybU1ldGFkYXRhKSB7XHJcbiAgICB0aGlzLm1vZGVsID0gbW9kZWwgfHwgeyBzZWN0aW9uczogW10gfTtcclxuICAgIHRoaXMuc2VjdGlvbnMuY2xlYXIoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUodGhpcy5tb2RlbCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgdGhpcy5tb2RlbC5zZWN0aW9ucy5mb3JFYWNoKHMgPT4gdGhpcy5zZWN0aW9ucy5wdXNoKHRoaXMuX3NlY3Rpb25mb3JtKHMpIGFzIGFueSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc2VjdGlvbmZvcm0obW9kZWw6IFNlY3Rpb25Nb2RlbCkge1xyXG4gICAgY29uc3QgZm9ybSA9IHRoaXMuX2ZiLmdyb3VwKHtcclxuICAgICAgbmFtZTogbW9kZWwubmFtZSxcclxuICAgICAgdGl0bGU6IG1vZGVsLnRpdGxlLFxyXG4gICAgICBub3RlOiBtb2RlbC5ub3RlLFxyXG4gICAgICBtdWx0aUxpbmU6IG1vZGVsLm11bHRpTGluZSxcclxuICAgICAgcm93czogdGhpcy5fZmIuYXJyYXkobW9kZWwucm93cz8ubWFwKHIgPT4gdGhpcy5fcm93Zm9ybShyKSkgfHwgW10pXHJcbiAgICB9KTtcclxuICAgIHJldHVybiBmb3JtO1xyXG4gIH1cclxuICBwcml2YXRlIF9yb3dmb3JtKHJvdzogQm94Um93TW9kZWwpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZiLmdyb3VwKHtcclxuICAgICAgZmllbGRzOiB0aGlzLl9mYi5hcnJheShyb3cuZmllbGRzPy5tYXAoZiA9PiB0aGlzLl9maWVsZGZvcm0oZikpKVxyXG4gICAgfSlcclxuICB9XHJcbiAgcHJpdmF0ZSBfZmllbGRmb3JtKGZpZWxkOiBGaWVsZE1vZGVsKTogYW55IHtcclxuICAgIGNvbnN0IGZvcm0gPSB0aGlzLl9mYi5jb250cm9sKGZpZWxkKTtcclxuICAgIHJldHVybiBmb3JtO1xyXG4gIH1cclxuICBhZGRTZWN0aW9uKGV2dD86IEV2ZW50KSB7XHJcbiAgICBsZXQgbiA9IDAsIG5hbWUsIHRpdGxlO1xyXG4gICAgZG8ge1xyXG4gICAgICBuKys7XHJcbiAgICAgIG5hbWUgPSAnc2VjdGlvbicgKyAnXycgKyBuO1xyXG4gICAgICB0aXRsZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1NlY3Rpb25OJywgbik7XHJcbiAgICB9IHdoaWxlICh0aGlzLnNlY3Rpb25zLmNvbnRyb2xzLmZpbmQocyA9PiBzLmdldCgnbmFtZScpLnZhbHVlID09PSBuYW1lIHx8IHMuZ2V0KCd0aXRsZScpLnZhbHVlID09PSB0aXRsZSkpO1xyXG4gICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFNlY3Rpb25Qcm9wZXJ0aWVzQ29tcG9uZW50LCB7XHJcbiAgICAgIHBvbGljeTogT3BlblBvbGljeS5EaWFsb2cgfCBPcGVuUG9saWN5LkRpc21pc3NhYmxlLFxyXG4gICAgICBzdGF0ZToge1xyXG4gICAgICAgIG5hbWUsXHJcbiAgICAgICAgdGl0bGUsXHJcbiAgICAgICAgZHJhZnQ6IHRydWUsXHJcbiAgICAgICAgcm93czogW3sgZmllbGRzOiBbXSB9XVxyXG4gICAgICB9IGFzIFNlY3Rpb25Nb2RlbFxyXG4gICAgfSkudGhlbihlID0+IGUuY2xvc2VkKCkuc3Vic2NyaWJlKHYgPT4ge1xyXG4gICAgICBpZiAodikge1xyXG4gICAgICAgIHRoaXMuX25vdGlmeUNoYW5nZSgpO1xyXG4gICAgICAgIHRoaXMuc2VjdGlvbnMucHVzaCh0aGlzLl9zZWN0aW9uZm9ybSh2KSBhcyBhbnkpO1xyXG4gICAgICB9XHJcbiAgICB9KSk7XHJcbiAgfVxyXG4gIGFkZFJvdyhzZWN0aW9uOiBGb3JtR3JvdXAsIGV2dD86IEV2ZW50KSB7XHJcbiAgICB0aGlzLl9ub3RpZnlDaGFuZ2UoKTtcclxuICAgIChzZWN0aW9uLmdldCgncm93cycpIGFzIEZvcm1BcnJheSkucHVzaCh0aGlzLl9yb3dmb3JtKHtcclxuICAgICAgZmllbGRzOiBbXSBhcyBhbnlcclxuICAgIH0pKTtcclxuICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcclxuICAgIHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3Rvcihgc2VjdGlvbltkYXRhLWluZGV4PScke3RoaXMuc2VjdGlvbnMuY29udHJvbHMuaW5kZXhPZihzZWN0aW9uIGFzIGFueSl9J10gLmRlc2lnbmVyLXJvdzpsYXN0LWNoaWxkIGJ1dHRvbmApPy5mb2N1cygpXHJcbiAgfVxyXG4gIGljb25PZih0eXBlOiBzdHJpbmcpIHsgcmV0dXJuIHRoaXMuY29udHJvbHNbdHlwZV0uaWNvbiB9XHJcbiAgYWRkRmllbGQoc2VjdGlvbjogRm9ybUdyb3VwLCByb3c6IEZvcm1Hcm91cCwgY29udHJvbDogQ29udHJvbEluZm8sIGV2dD86IEV2ZW50KSB7XHJcbiAgICBsZXQgbiA9IDAsIG5hbWUsIGxhYmVsO1xyXG4gICAgZG8ge1xyXG4gICAgICBuKys7XHJcbiAgICAgIG5hbWUgPSBjb250cm9sLm5hbWUucmVwbGFjZSgnLScsICdfJykgKyAnXycgKyBuO1xyXG4gICAgICBsYWJlbCA9IGNvbnRyb2wudGl0bGUgKyAnICcgKyBuO1xyXG4gICAgfSB3aGlsZSAoKHNlY3Rpb24uZ2V0KCdyb3dzJykgYXMgRm9ybUFycmF5KS5jb250cm9scy5cclxuICAgICAgZmluZChyID0+IChyLmdldCgnZmllbGRzJykgYXMgRm9ybUFycmF5KS5jb250cm9scy5maW5kKGYgPT4gZi52YWx1ZS5uYW1lID09PSBuYW1lIHx8IGYudmFsdWUubGFiZWwgPT09IGxhYmVsKSAhPSBudWxsKSk7XHJcbiAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoQ29udHJvbFByb3BlcnRpZXNDb21wb25lbnQsIHtcclxuICAgICAgcG9saWN5OiBPcGVuUG9saWN5LkRpYWxvZyB8IE9wZW5Qb2xpY3kuRGlzbWlzc2FibGUsXHJcbiAgICAgIGljb246IGNvbnRyb2wuaWNvbixcclxuICAgICAgc3RhdGU6IHtcclxuICAgICAgICBuYW1lLCBsYWJlbCwgZHJhZnQ6IHRydWUsXHJcbiAgICAgICAgY29udHJvbFR5cGU6IGNvbnRyb2wubmFtZVxyXG4gICAgICB9IGFzIEZpZWxkTW9kZWxcclxuICAgIH0pLnRoZW4oZSA9PiBlLmNsb3NlZCgpLnN1YnNjcmliZSh2ID0+IHtcclxuICAgICAgaWYgKHYpIHtcclxuICAgICAgICB0aGlzLl9ub3RpZnlDaGFuZ2UoKTtcclxuICAgICAgICAocm93LmdldCgnZmllbGRzJykgYXMgRm9ybUFycmF5KS5wdXNoKHRoaXMuX2ZpZWxkZm9ybSh2KSk7XHJcbiAgICAgIH1cclxuICAgIH0pKTtcclxuICB9XHJcbiAgZWRpdEZpZWxkKGZpZWxkOiBGb3JtR3JvdXApIHtcclxuICAgIGNvbnN0IG1vZGVsID0gZmllbGQuZ2V0UmF3VmFsdWUoKSBhcyBGaWVsZE1vZGVsLFxyXG4gICAgICBjb250cm9sID0gdGhpcy5jb250cm9sc1ttb2RlbC5jb250cm9sVHlwZV07XHJcbiAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoQ29udHJvbFByb3BlcnRpZXNDb21wb25lbnQsIHtcclxuICAgICAgcG9saWN5OiBPcGVuUG9saWN5LlRhYiB8IE9wZW5Qb2xpY3kuRGVmZXIsXHJcbiAgICAgIGljb246IGNvbnRyb2wuaWNvbixcclxuICAgICAgc3RhdGU6IG1vZGVsXHJcbiAgICB9KS50aGVuKGUgPT4gZS5jbG9zZWQoKS5zdWJzY3JpYmUodiA9PiB7XHJcbiAgICAgIGlmICh2KSB7XHJcbiAgICAgICAgdGhpcy5fbm90aWZ5Q2hhbmdlKCk7XHJcbiAgICAgICAgZmllbGQuc2V0VmFsdWUodik7XHJcbiAgICAgIH1cclxuICAgIH0pKTtcclxuICB9XHJcbiAgZWRpdFNlY3Rpb24oZmllbGQ6IEZvcm1Hcm91cCkge1xyXG4gICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFNlY3Rpb25Qcm9wZXJ0aWVzQ29tcG9uZW50LCB7XHJcbiAgICAgIHBvbGljeTogT3BlblBvbGljeS5UYWIgfCBPcGVuUG9saWN5LkRlZmVyLFxyXG4gICAgICBzdGF0ZTogZmllbGQuZ2V0UmF3VmFsdWUoKVxyXG4gICAgfSkudGhlbihlID0+IGUuY2xvc2VkKCkuc3Vic2NyaWJlKHYgPT4ge1xyXG4gICAgICBpZiAodikge1xyXG4gICAgICAgIHRoaXMuX25vdGlmeUNoYW5nZSgpO1xyXG4gICAgICAgIGZpZWxkLnNldFZhbHVlKHYpO1xyXG4gICAgICB9XHJcbiAgICB9KSk7XHJcbiAgfVxyXG4gIG9wZW5zZXR0aW5ncygpIHtcclxuICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShCb3hTZXR0aW5nc0NvbXBvbmVudCwge1xyXG4gICAgICBwb2xpY3k6IE9wZW5Qb2xpY3kuVGFiIHwgT3BlblBvbGljeS5EZWZlcixcclxuICAgICAgc3RhdGU6IHRoaXMuZm9ybS5nZXRSYXdWYWx1ZSgpXHJcbiAgICB9KS50aGVuKGUgPT4gZS5jbG9zZWQoKS5zdWJzY3JpYmUodiA9PiB7XHJcbiAgICAgIHRoaXMuX25vdGlmeUNoYW5nZSgpO1xyXG4gICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh2KVxyXG4gICAgfSkpO1xyXG4gIH1cclxuICByZW1vdmVGaWVsZChyb3c6IEZvcm1Hcm91cCwgZmllbGQ6IEZvcm1Hcm91cCkge1xyXG4gICAgdGhpcy5fbm90aWZ5Q2hhbmdlKCk7XHJcbiAgICAocm93LmdldCgnZmllbGRzJykgYXMgRm9ybUFycmF5KS5jb250cm9scy5yZW1vdmUoZmllbGQpO1xyXG4gIH1cclxuICByZW1vdmVTZWN0aW9uKHNlY3Rpb246IEZvcm1Hcm91cCkge1xyXG4gICAgdGhpcy5fbm90aWZ5Q2hhbmdlKCk7XHJcbiAgICB0aGlzLnNlY3Rpb25zLmNvbnRyb2xzLnJlbW92ZShzZWN0aW9uIGFzIGFueSk7XHJcbiAgfVxyXG4gIHJlbW92ZVJvdyhzZWN0aW9uOiBGb3JtR3JvdXAsIHJvdzogRm9ybUdyb3VwKSB7XHJcbiAgICB0aGlzLl9ub3RpZnlDaGFuZ2UoKTtcclxuICAgIChzZWN0aW9uLmdldCgncm93cycpIGFzIEZvcm1BcnJheSkuY29udHJvbHMucmVtb3ZlKHJvdyk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX25vdGlmeUNoYW5nZSgpIHtcclxuICAgIHRoaXMuaGlzdG9yeS5wdXNoKEpTT04uc3RyaW5naWZ5KHRoaXMuZm9ybS52YWx1ZSkpO1xyXG4gICAgdGhpcy5oaXN0b3J5SW5kZXggPSB0aGlzLmhpc3RvcnkubGVuZ3RoIC0gMTtcclxuICAgIHRoaXMuZm9ybS5tYXJrQXNEaXJ0eSgpO1xyXG4gIH1cclxuICB1bmRvKCkge1xyXG4gICAgdGhpcy5fcmVzdG9yZSgpO1xyXG4gICAgdGhpcy5oaXN0b3J5SW5kZXgtLTtcclxuICB9XHJcbiAgcmVkbygpIHtcclxuICAgIHRoaXMuX3Jlc3RvcmUoKTtcclxuICAgIHRoaXMuaGlzdG9yeUluZGV4Kys7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3Jlc3RvcmUoKSB7XHJcbiAgICB0aGlzLl9hc3NpZ24oSlNPTi5wYXJzZSh0aGlzLmhpc3RvcnlbdGhpcy5oaXN0b3J5SW5kZXhdKSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEN0cmwtcyBzYXZlOyBDdHJsLXogdW5kb1xyXG4gICAqIEBwYXJhbSBldmVudFxyXG4gICAqL1xyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nLCBbJyRldmVudCddKVxyXG4gIGhhbmRsZUtleWJvYXJkRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGlmIChldmVudC5jdHJsS2V5KSB7XHJcbiAgICAgIGlmIChldmVudC5rZXkgPT09ICdTJyB8fCBldmVudC5rZXkgPT09ICdzJykge1xyXG4gICAgICAgIHRoaXMuZm9ybS5kaXJ0eSAmJiB0aGlzLnNhdmUoKTtcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPEZvcm1Hcm91cD4sIGNvbGxlY3Rpb246IEZvcm1BcnJheSkge1xyXG4gICAgdGhpcy5fbm90aWZ5Q2hhbmdlKCk7XHJcbiAgICBpZiAoZXZlbnQucHJldmlvdXNDb250YWluZXIgPT09IGV2ZW50LmNvbnRhaW5lcikge1xyXG4gICAgICBjb25zdCBlbGVtZW50ID0gY29sbGVjdGlvbi5hdChldmVudC5wcmV2aW91c0luZGV4KTtcclxuICAgICAgY29sbGVjdGlvbi5yZW1vdmVBdChldmVudC5wcmV2aW91c0luZGV4KTtcclxuICAgICAgY29sbGVjdGlvbi5pbnNlcnQoZXZlbnQuY3VycmVudEluZGV4LCBlbGVtZW50KTtcclxuICAgICAgLy9tb3ZlSXRlbUluQXJyYXkoZXZlbnQuY29udGFpbmVyLmRhdGEsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyAgdHJhbnNmZXJBcnJheUl0ZW0oXHJcbiAgICAgIC8vICAgIGV2ZW50LnByZXZpb3VzQ29udGFpbmVyLmRhdGEsXHJcbiAgICAgIC8vICAgIGV2ZW50LmNvbnRhaW5lci5kYXRhLFxyXG4gICAgICAvLyAgICBldmVudC5wcmV2aW91c0luZGV4LFxyXG4gICAgICAvLyAgICBldmVudC5jdXJyZW50SW5kZXgsXHJcbiAgICAgIC8vICApO1xyXG4gICAgfVxyXG4gIH1cclxuICBzYXZlKCkge1xyXG4gICAgdGhpcy5zYXZpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5tb2RlbCA9IHRoaXMuZm9ybS52YWx1ZSBhcyBhbnk7XHJcbiAgICB0aGlzLl9yZWYuZXhlY3V0ZSh7IG1ldGFkYXRhOiBjbGVhbnVwKHRoaXMubW9kZWwpLCBmb3JtSWQ6IHRoaXMuX2Zvcm1JZCB9KS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fcHMudG9hc3QoJ0NoYW5nZXNTYXZlZCcpO1xyXG4gICAgICAgIHRoaXMuZm9ybS5tYXJrQXNQcmlzdGluZSgpO1xyXG4gICAgICAgIGNvbnN0IGZvcm0gPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuZm9ybXMuZmluZChmID0+IGYubmFtZSA9PSB0aGlzLl9mb3JtSWQpO1xyXG4gICAgICAgIGlmIChmb3JtKSBmb3JtLm9wdGlvbnMgPSB0aGlzLm1vZGVsO1xyXG4gICAgICAgIHRoaXMuc2F2aW5nID0gZmFsc2U7XHJcbiAgICAgIH0sIGVycm9yOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fcHMuZXJyb3IoKTtcclxuICAgICAgICB0aGlzLnNhdmluZyA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuXHJcbiIsIjxtYXQtdG9vbGJhcj5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwic2F2ZSgpXCIgW2Rpc2FibGVkXT1cIiFmb3JtLmRpcnR5IHx8IGxvYWRpbmcgfHwgc2F2aW5nXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1NhdmUnfHRyYW5zbGF0ZVwiPjxtYXQtaWNvbj5zYXZlPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwidW5kbygpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1VuZG8nIHwgdHJhbnNsYXRlXCIgW2Rpc2FibGVkXT1cImhpc3RvcnlJbmRleCA9PT0gLTFcIj48bWF0LWljb24gY2xhc3M9XCJtYXQtaWNvbi1ydGwtbWlycm9yXCI+dW5kbzwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInJlZG8oKVwiIFtiaXpkb2NUb29sdGlwXT1cIidSZWRvJyB8IHRyYW5zbGF0ZVwiIFtkaXNhYmxlZF09XCJoaXN0b3J5SW5kZXggPT09IGhpc3RvcnkubGVuZ3RoIC0gMVwiPjxtYXQtaWNvbiBjbGFzcz1cIm1hdC1pY29uLXJ0bC1taXJyb3JcIj5yZWRvPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgPCEtLTxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJvcGVuc2V0dGluZ3MoKVwiIFtiaXpkb2NUb29sdGlwXT1cIidTZXR0aW5ncyd8dHJhbnNsYXRlXCIgdHlwZT1cImJ1dHRvblwiPjxtYXQtaWNvbj5zZXR0aW5nczwvbWF0LWljb24+PC9idXR0b24+LS0+XHJcbjwvbWF0LXRvb2xiYXI+XHJcbjxmb3JtIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiICpuZ0lmPVwibW9kZWxcIj5cclxuICA8ZGl2IGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQsIHNlY3Rpb25zKVwiPlxyXG4gICAgPHNlY3Rpb24gY2xhc3M9XCJjb2x1bW5cIiAqbmdGb3I9XCJsZXQgcyBvZiBzZWN0aW9ucy5jb250cm9sczsgbGV0IHNpID0gaW5kZXhcIiBjZGtEcmFnIFthdHRyLmRhdGEtaW5kZXhdPVwic2lcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cInNlY3Rpb24tZHJhZ1wiIGNka0RyYWdIYW5kbGU+ZHJhZ19pbmRpY2F0b3I8L21hdC1pY29uPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW5cIiBbZm9ybUdyb3VwXT1cInNcIj5cclxuICAgICAgICAgIDxoMiBjbGFzcz1cIm1hdC1tZGMtdGl0bGVcIj57e3MuZ2V0KCd0aXRsZScpLnZhbHVlfGxvY2FsaXplZFN0cmluZ319PC9oMj5cclxuICAgICAgICAgIDxwIGNsYXNzPVwibWF0LWJvZHktMVwiICpuZ0lmPVwicy5nZXQoJ25vdGUnKS52YWx1ZVwiPnt7cy5nZXQoJ25vdGUnKS52YWx1ZXxsb2NhbGl6ZWRTdHJpbmd9fTwvcD5cclxuICAgICAgICAgIDxkaXYgY2RrRHJvcExpc3QgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudCwgcy5nZXQoJ3Jvd3MnKSlcIj5cclxuICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgciBvZiBzLmdldCgncm93cycpLmNvbnRyb2xzOyBsZXQgcmkgPSBpbmRleFwiIGNsYXNzPVwicm93IGRlc2lnbmVyLXJvd1wiIGNka0RyYWcgW2F0dHIuZGF0YS1pbmRleF09XCJyaVwiPlxyXG4gICAgICAgICAgICAgIDxtYXQtaWNvbiBjZGtEcmFnSGFuZGxlPmRyYWdfaW5kaWNhdG9yPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICA8ZGl2IGNka0Ryb3BMaXN0IGNka0Ryb3BMaXN0T3JpZW50YXRpb249XCJob3Jpem9udGFsXCIgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudCwgci5nZXQoJ2ZpZWxkcycpKVwiIGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBmIG9mIHIuZ2V0KCdmaWVsZHMnKS5jb250cm9sczsgbGV0IGZpID0gaW5kZXhcIiBjZGtEcmFnIGNsYXNzPVwiZGVzaWduZXItZmllbGQgcm93XCIgW2F0dHIuZGF0YS1pbmRleF09XCJmaVwiPlxyXG4gICAgICAgICAgICAgICAgICA8IS0tPG1hdC1pY29uIGNka0RyYWdIYW5kbGU+e3tpY29uT2YoZi52YWx1ZS50eXBlKX19PC9tYXQtaWNvbj4tLT5cclxuICAgICAgICAgICAgICAgICAgPGJpemRvYy1ib3gtY29udHJvbC1kZXNpZ24gW21ldGFkYXRhXT1cImYudmFsdWVcIj48L2JpemRvYy1ib3gtY29udHJvbC1kZXNpZ24+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b29sc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIChjbGljayk9XCJyZW1vdmVGaWVsZChyLCBmKVwiIFtiaXpkb2NUb29sdGlwXT1cIidEaXNjYXJkJ3x0cmFuc2xhdGVcIiB0eXBlPVwiYnV0dG9uXCI+PG1hdC1pY29uPmRlbGV0ZTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gKGNsaWNrKT1cImVkaXRGaWVsZChmKVwiIFtiaXpkb2NUb29sdGlwXT1cIidTZXR0aW5ncyd8dHJhbnNsYXRlXCIgdHlwZT1cImJ1dHRvblwiPjxtYXQtaWNvbj5zZXR0aW5nczwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8IS0tPGRpdiAqY2RrRHJhZ1BsYWNlaG9sZGVyIGNsYXNzPVwiZHJhZy1wbGFjZWhvbGRlclwiPjwvZGl2Pi0tPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cImZpZWxkTWVudVwiIFtiaXpkb2NUb29sdGlwXT1cIidBZGQnfHRyYW5zbGF0ZVwiIHR5cGU9XCJidXR0b25cIj48bWF0LWljb24+YWRkPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxtYXQtbWVudSAjZmllbGRNZW51PlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKm5nRm9yPVwibGV0IGMgb2YgY29udHJvbHNcIiAoY2xpY2spPVwiYWRkRmllbGQocywgciwgYywgJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj57e2MuaWNvbn19PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e2MudGl0bGV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1tZW51PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRvb2xzXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIChjbGljayk9XCJyZW1vdmVSb3cocywgcilcIiBbYml6ZG9jVG9vbHRpcF09XCInRGlzY2FyZCd8dHJhbnNsYXRlXCIgdHlwZT1cImJ1dHRvblwiPjxtYXQtaWNvbj5kZWxldGU8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidG9vbHMgcm93XCI+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gKGNsaWNrKT1cImFkZFJvdyhzLCAkZXZlbnQpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ0FkZCd8dHJhbnNsYXRlXCIgdHlwZT1cImJ1dHRvblwiPjxtYXQtaWNvbj5hZGQ8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZGl2aWRlclwiPjwvc3Bhbj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiAoY2xpY2spPVwicmVtb3ZlU2VjdGlvbihzKVwiIFtiaXpkb2NUb29sdGlwXT1cIidEaXNjYXJkJ3x0cmFuc2xhdGVcIiB0eXBlPVwiYnV0dG9uXCI+PG1hdC1pY29uPmRlbGV0ZTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gKGNsaWNrKT1cImVkaXRTZWN0aW9uKHMpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1NldHRpbmdzJ3x0cmFuc2xhdGVcIiB0eXBlPVwiYnV0dG9uXCI+PG1hdC1pY29uPnNldHRpbmdzPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L3NlY3Rpb24+XHJcbiAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiAoY2xpY2spPVwiYWRkU2VjdGlvbigkZXZlbnQpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ0FkZCd8dHJhbnNsYXRlXCIgdHlwZT1cImJ1dHRvblwiPjxtYXQtaWNvbj5hZGQ8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2Zvcm0+XHJcbiJdfQ==
@@ -53,13 +53,13 @@ export class ControlPropertiesComponent {
53
53
  });
54
54
  }
55
55
  save() { this._paneRef.close(this.form.value); }
56
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ControlPropertiesComponent, deps: [{ token: i1.FormBuilder }, { token: i2.SystemService }, { token: i3.BizDocComponentFactoryResolver }, { token: i4.PaneRef }], target: i0.ɵɵFactoryTarget.Component }); }
57
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ControlPropertiesComponent, selector: "ng-component", host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" } }, viewQueries: [{ propertyName: "design", first: true, predicate: ["design"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<mat-toolbar>\r\n <button mat-icon-button (click)=\"save()\" [disabled]=\"!form?.dirty || !form?.valid\" [bizdocTooltip]=\"'Save'|translate\"><mat-icon>save</mat-icon></button>\r\n</mat-toolbar>\r\n<form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput required formControlName=\"name\" />\r\n <mat-error *ngIf=\"form.get('name').hasError('pattern')\" [innerHTML]=\"'ProgramPatternErr'|translate\"></mat-error>\r\n <mat-error *ngIf=\"form.get('name').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:'Field'\"></mat-error>\r\n </mat-form-field>\r\n\r\n <ng-container #design>\r\n </ng-container>\r\n <mat-checkbox formControlName=\"required\">{{'Mandatory'|translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"autofill\">{{'Autofill'|translate}}</mat-checkbox>\r\n</form>\r\n", styles: [":host{flex:1;display:flex;flex-flow:column}form{padding:8px}:host ::ng-deep .cdk-drag-handle{cursor:move}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i9.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i10.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i11.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i12.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i13.TranslatePipe, name: "translate" }] }); }
56
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: ControlPropertiesComponent, deps: [{ token: i1.FormBuilder }, { token: i2.SystemService }, { token: i3.BizDocComponentFactoryResolver }, { token: i4.PaneRef }], target: i0.ɵɵFactoryTarget.Component }); }
57
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.1", type: ControlPropertiesComponent, selector: "ng-component", host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" } }, viewQueries: [{ propertyName: "design", first: true, predicate: ["design"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<mat-toolbar>\r\n <button mat-icon-button (click)=\"save()\" [disabled]=\"!form?.dirty || !form?.valid\" [bizdocTooltip]=\"'Save'|translate\"><mat-icon>save</mat-icon></button>\r\n</mat-toolbar>\r\n<form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput required formControlName=\"name\" />\r\n <mat-error *ngIf=\"form.get('name').hasError('pattern')\" [innerHTML]=\"'ProgramPatternErr'|translate\"></mat-error>\r\n <mat-error *ngIf=\"form.get('name').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:'Field'\"></mat-error>\r\n </mat-form-field>\r\n\r\n <ng-container #design>\r\n </ng-container>\r\n <mat-checkbox formControlName=\"required\">{{'Mandatory'|translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"autofill\">{{'Autofill'|translate}}</mat-checkbox>\r\n</form>\r\n", styles: [":host{flex:1;display:flex;flex-flow:column}form{padding:8px}:host ::ng-deep .cdk-drag-handle{cursor:move}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i9.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i10.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i11.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i12.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i13.TranslatePipe, name: "translate" }] }); }
58
58
  }
59
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ControlPropertiesComponent, decorators: [{
59
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: ControlPropertiesComponent, decorators: [{
60
60
  type: Component,
61
61
  args: [{ template: "<mat-toolbar>\r\n <button mat-icon-button (click)=\"save()\" [disabled]=\"!form?.dirty || !form?.valid\" [bizdocTooltip]=\"'Save'|translate\"><mat-icon>save</mat-icon></button>\r\n</mat-toolbar>\r\n<form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput required formControlName=\"name\" />\r\n <mat-error *ngIf=\"form.get('name').hasError('pattern')\" [innerHTML]=\"'ProgramPatternErr'|translate\"></mat-error>\r\n <mat-error *ngIf=\"form.get('name').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:'Field'\"></mat-error>\r\n </mat-form-field>\r\n\r\n <ng-container #design>\r\n </ng-container>\r\n <mat-checkbox formControlName=\"required\">{{'Mandatory'|translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"autofill\">{{'Autofill'|translate}}</mat-checkbox>\r\n</form>\r\n", styles: [":host{flex:1;display:flex;flex-flow:column}form{padding:8px}:host ::ng-deep .cdk-drag-handle{cursor:move}\n"] }]
62
- }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.SystemService }, { type: i3.BizDocComponentFactoryResolver }, { type: i4.PaneRef }]; }, propDecorators: { design: [{
62
+ }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.SystemService }, { type: i3.BizDocComponentFactoryResolver }, { type: i4.PaneRef }], propDecorators: { design: [{
63
63
  type: ViewChild,
64
64
  args: ['design', {
65
65
  static: true,
@@ -69,4 +69,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
69
69
  type: HostListener,
70
70
  args: ['document:keydown', ['$event']]
71
71
  }] } });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydGllcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2Zvcm0vZGVzaWduZXIvcHJvcGVydGllcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2Zvcm0vZGVzaWduZXIvcHJvcGVydGllcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBVSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0YsT0FBTyxFQUEwQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUtwRSxPQUFPLEVBQWMsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQU0xRCxNQUFNLE9BQU8sMEJBQTBCO0lBT3JDLFlBQ1UsR0FBZ0IsRUFDaEIsT0FBc0IsRUFDdEIsR0FBbUMsRUFDbkMsUUFBeUQ7UUFIekQsUUFBRyxHQUFILEdBQUcsQ0FBYTtRQUNoQixZQUFPLEdBQVAsT0FBTyxDQUFlO1FBQ3RCLFFBQUcsR0FBSCxHQUFHLENBQWdDO1FBQ25DLGFBQVEsR0FBUixRQUFRLENBQWlEO1FBQ2pFLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztJQUM3QixDQUFDO0lBQ0Q7OztPQUdHO0lBRUgsbUJBQW1CLENBQUMsS0FBb0I7UUFDdEMsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsRUFBRTtZQUM3RCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDL0IsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztTQUN6QjtJQUNILENBQUM7SUFDRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDcEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDcEUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQWtCLElBQUksQ0FBQyxDQUFDO1lBQ25FLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7WUFDbEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BDLFFBQVEsQ0FBQyxNQUFNLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDL0MsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDNUQsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDekQsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDekQsdURBQXVEO1lBQ3ZELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSztnQkFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2hELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELElBQUksS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBLENBQUMsQ0FBQzsrR0EzQ3BDLDBCQUEwQjttR0FBMUIsMEJBQTBCLDZNQUk3QixnQkFBZ0IsMkNDaEIxQixxNkJBZ0JBOzs0RkRKYSwwQkFBMEI7a0JBSnRDLFNBQVM7O2lNQVNMLE1BQU07c0JBSFIsU0FBUzt1QkFBQyxRQUFRLEVBQUU7d0JBQ25CLE1BQU0sRUFBRSxJQUFJO3dCQUNaLElBQUksRUFBRSxnQkFBZ0I7cUJBQ3ZCO2dCQWNELG1CQUFtQjtzQkFEbEIsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBPbkluaXQsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgQ29udHJvbERlc2lnbmVyIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvYmFzZVwiO1xyXG5pbXBvcnQgeyBCaXpEb2NDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9jb21wb25lbnQtZmFjdG9yeS1yZXNvbHZlclwiO1xyXG5pbXBvcnQgeyBQYW5lUmVmIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvc2xvdHMvcGFuZS1yZWZcIjtcclxuaW1wb3J0IHsgU3lzdGVtU2VydmljZSB9IGZyb20gXCIuLi8uLi9zeXN0ZW0uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBGaWVsZE1vZGVsLCBOQU1FX1BBVFRFUk4gfSBmcm9tIFwiLi9kZWNsYXJhdGlvbnNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlVXJsOiAncHJvcGVydGllcy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJ3Byb3BlcnRpZXMuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29udHJvbFByb3BlcnRpZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGZpZWxkOiBGaWVsZE1vZGVsO1xyXG4gIEBWaWV3Q2hpbGQoJ2Rlc2lnbicsIHtcclxuICAgIHN0YXRpYzogdHJ1ZSxcclxuICAgIHJlYWQ6IFZpZXdDb250YWluZXJSZWZcclxuICB9KSBkZXNpZ246IFZpZXdDb250YWluZXJSZWY7XHJcbiAgZm9ybTogRm9ybUdyb3VwPGFueT47XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9mYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIF9zeXN0ZW06IFN5c3RlbVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jZjogQml6RG9jQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgcHJpdmF0ZSBfcGFuZVJlZjogUGFuZVJlZjxDb250cm9sUHJvcGVydGllc0NvbXBvbmVudCwgRmllbGRNb2RlbD4pIHtcclxuICAgIHRoaXMuZmllbGQgPSBfcGFuZVJlZi5kYXRhO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBDdHJsLXMgc2F2ZVxyXG4gICAqIEBwYXJhbSBldmVudFxyXG4gICAqL1xyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nLCBbJyRldmVudCddKVxyXG4gIGhhbmRsZUtleWJvYXJkRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGlmIChldmVudC5jdHJsS2V5ICYmIChldmVudC5rZXkgPT09ICdzJyB8fCBldmVudC5rZXkgPT09ICdTJykpIHtcclxuICAgICAgdGhpcy5mb3JtLmRpcnR5ICYmIHRoaXMuc2F2ZSgpO1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIH1cclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zeXN0ZW0uY29udHJvbHMoKS5zdWJzY3JpYmUoYyA9PiB7XHJcbiAgICAgIGNvbnN0IGNvbXAgPSB0aGlzLl9jZi5jb21wb25lbnQoY1t0aGlzLmZpZWxkLmNvbnRyb2xUeXBlXS50ZW1wbGF0ZSk7XHJcbiAgICAgIGNvbnN0IGNvbXBSZWYgPSB0aGlzLmRlc2lnbi5jcmVhdGVDb21wb25lbnQ8Q29udHJvbERlc2lnbmVyPihjb21wKTtcclxuICAgICAgY29uc3QgaW5zdGFuY2UgPSBjb21wUmVmLmluc3RhbmNlO1xyXG4gICAgICBPYmplY3QuYXNzaWduKGluc3RhbmNlLCB0aGlzLmZpZWxkKTtcclxuICAgICAgaW5zdGFuY2Uub25CaW5kICYmIGluc3RhbmNlLm9uQmluZCh0aGlzLmZpZWxkKTtcclxuICAgICAgdGhpcy5mb3JtID0gaW5zdGFuY2UuZm9ybTtcclxuICAgICAgdGhpcy5mb3JtLmFkZENvbnRyb2woJ25hbWUnLCB0aGlzLl9mYi5jb250cm9sKG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4oTkFNRV9QQVRURVJOKV0pKTtcclxuICAgICAgdGhpcy5mb3JtLmFkZENvbnRyb2woJ2NvbnRyb2xUeXBlJywgdGhpcy5fZmIuY29udHJvbChudWxsKSk7XHJcbiAgICAgIHRoaXMuZm9ybS5hZGRDb250cm9sKCdhdXRvZmlsbCcsIHRoaXMuX2ZiLmNvbnRyb2wobnVsbCkpO1xyXG4gICAgICB0aGlzLmZvcm0uYWRkQ29udHJvbCgncmVxdWlyZWQnLCB0aGlzLl9mYi5jb250cm9sKG51bGwpKTtcclxuICAgICAgLy90aGlzLmZvcm0uYWRkQ29udHJvbCgnaGVscCcsIHRoaXMuX2ZiLmNvbnRyb2wobnVsbCkpO1xyXG4gICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh0aGlzLmZpZWxkKTtcclxuICAgICAgaWYgKHRoaXMuZmllbGQuZHJhZnQpIHRoaXMuZm9ybS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHNhdmUoKSB7IHRoaXMuX3BhbmVSZWYuY2xvc2UodGhpcy5mb3JtLnZhbHVlKSB9XHJcbn1cclxuIiwiPG1hdC10b29sYmFyPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJzYXZlKClcIiBbZGlzYWJsZWRdPVwiIWZvcm0/LmRpcnR5IHx8ICFmb3JtPy52YWxpZFwiIFtiaXpkb2NUb29sdGlwXT1cIidTYXZlJ3x0cmFuc2xhdGVcIj48bWF0LWljb24+c2F2ZTwvbWF0LWljb24+PC9idXR0b24+XHJcbjwvbWF0LXRvb2xiYXI+XHJcbjxmb3JtIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNsYXNzPVwiY29sdW1uXCI+XHJcbiAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZmxleFwiPlxyXG4gICAgPG1hdC1sYWJlbD57eydOYW1lJ3x0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxyXG4gICAgPGlucHV0IG1hdElucHV0IHJlcXVpcmVkIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIiAvPlxyXG4gICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm0uZ2V0KCduYW1lJykuaGFzRXJyb3IoJ3BhdHRlcm4nKVwiIFtpbm5lckhUTUxdPVwiJ1Byb2dyYW1QYXR0ZXJuRXJyJ3x0cmFuc2xhdGVcIj48L21hdC1lcnJvcj5cclxuICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtLmdldCgnbmFtZScpLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCIgW2lubmVySFRNTF09XCInUmVxdWlyZWRFcnInfHRyYW5zbGF0ZTonRmllbGQnXCI+PC9tYXQtZXJyb3I+XHJcbiAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciAjZGVzaWduPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxtYXQtY2hlY2tib3ggZm9ybUNvbnRyb2xOYW1lPVwicmVxdWlyZWRcIj57eydNYW5kYXRvcnknfHRyYW5zbGF0ZX19PC9tYXQtY2hlY2tib3g+XHJcbiAgPG1hdC1jaGVja2JveCBmb3JtQ29udHJvbE5hbWU9XCJhdXRvZmlsbFwiPnt7J0F1dG9maWxsJ3x0cmFuc2xhdGV9fTwvbWF0LWNoZWNrYm94PlxyXG48L2Zvcm0+XHJcbiJdfQ==
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydGllcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2Zvcm0vZGVzaWduZXIvcHJvcGVydGllcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2Zvcm0vZGVzaWduZXIvcHJvcGVydGllcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBVSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0YsT0FBTyxFQUEwQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUtwRSxPQUFPLEVBQWMsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQU0xRCxNQUFNLE9BQU8sMEJBQTBCO0lBT3JDLFlBQ1UsR0FBZ0IsRUFDaEIsT0FBc0IsRUFDdEIsR0FBbUMsRUFDbkMsUUFBeUQ7UUFIekQsUUFBRyxHQUFILEdBQUcsQ0FBYTtRQUNoQixZQUFPLEdBQVAsT0FBTyxDQUFlO1FBQ3RCLFFBQUcsR0FBSCxHQUFHLENBQWdDO1FBQ25DLGFBQVEsR0FBUixRQUFRLENBQWlEO1FBQ2pFLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztJQUM3QixDQUFDO0lBQ0Q7OztPQUdHO0lBRUgsbUJBQW1CLENBQUMsS0FBb0I7UUFDdEMsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsRUFBRTtZQUM3RCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDL0IsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztTQUN6QjtJQUNILENBQUM7SUFDRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDcEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDcEUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQWtCLElBQUksQ0FBQyxDQUFDO1lBQ25FLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7WUFDbEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BDLFFBQVEsQ0FBQyxNQUFNLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDL0MsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDNUQsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDekQsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDekQsdURBQXVEO1lBQ3ZELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSztnQkFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2hELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELElBQUksS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBLENBQUMsQ0FBQzs4R0EzQ3BDLDBCQUEwQjtrR0FBMUIsMEJBQTBCLDZNQUk3QixnQkFBZ0IsMkNDaEIxQixxNkJBZ0JBOzsyRkRKYSwwQkFBMEI7a0JBSnRDLFNBQVM7OytLQVNMLE1BQU07c0JBSFIsU0FBUzt1QkFBQyxRQUFRLEVBQUU7d0JBQ25CLE1BQU0sRUFBRSxJQUFJO3dCQUNaLElBQUksRUFBRSxnQkFBZ0I7cUJBQ3ZCO2dCQWNELG1CQUFtQjtzQkFEbEIsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBPbkluaXQsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgQ29udHJvbERlc2lnbmVyIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvYmFzZVwiO1xyXG5pbXBvcnQgeyBCaXpEb2NDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9jb21wb25lbnQtZmFjdG9yeS1yZXNvbHZlclwiO1xyXG5pbXBvcnQgeyBQYW5lUmVmIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvc2xvdHMvcGFuZS1yZWZcIjtcclxuaW1wb3J0IHsgU3lzdGVtU2VydmljZSB9IGZyb20gXCIuLi8uLi9zeXN0ZW0uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBGaWVsZE1vZGVsLCBOQU1FX1BBVFRFUk4gfSBmcm9tIFwiLi9kZWNsYXJhdGlvbnNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlVXJsOiAncHJvcGVydGllcy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJ3Byb3BlcnRpZXMuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29udHJvbFByb3BlcnRpZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGZpZWxkOiBGaWVsZE1vZGVsO1xyXG4gIEBWaWV3Q2hpbGQoJ2Rlc2lnbicsIHtcclxuICAgIHN0YXRpYzogdHJ1ZSxcclxuICAgIHJlYWQ6IFZpZXdDb250YWluZXJSZWZcclxuICB9KSBkZXNpZ246IFZpZXdDb250YWluZXJSZWY7XHJcbiAgZm9ybTogRm9ybUdyb3VwPGFueT47XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9mYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIF9zeXN0ZW06IFN5c3RlbVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jZjogQml6RG9jQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgcHJpdmF0ZSBfcGFuZVJlZjogUGFuZVJlZjxDb250cm9sUHJvcGVydGllc0NvbXBvbmVudCwgRmllbGRNb2RlbD4pIHtcclxuICAgIHRoaXMuZmllbGQgPSBfcGFuZVJlZi5kYXRhO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBDdHJsLXMgc2F2ZVxyXG4gICAqIEBwYXJhbSBldmVudFxyXG4gICAqL1xyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nLCBbJyRldmVudCddKVxyXG4gIGhhbmRsZUtleWJvYXJkRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGlmIChldmVudC5jdHJsS2V5ICYmIChldmVudC5rZXkgPT09ICdzJyB8fCBldmVudC5rZXkgPT09ICdTJykpIHtcclxuICAgICAgdGhpcy5mb3JtLmRpcnR5ICYmIHRoaXMuc2F2ZSgpO1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIH1cclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zeXN0ZW0uY29udHJvbHMoKS5zdWJzY3JpYmUoYyA9PiB7XHJcbiAgICAgIGNvbnN0IGNvbXAgPSB0aGlzLl9jZi5jb21wb25lbnQoY1t0aGlzLmZpZWxkLmNvbnRyb2xUeXBlXS50ZW1wbGF0ZSk7XHJcbiAgICAgIGNvbnN0IGNvbXBSZWYgPSB0aGlzLmRlc2lnbi5jcmVhdGVDb21wb25lbnQ8Q29udHJvbERlc2lnbmVyPihjb21wKTtcclxuICAgICAgY29uc3QgaW5zdGFuY2UgPSBjb21wUmVmLmluc3RhbmNlO1xyXG4gICAgICBPYmplY3QuYXNzaWduKGluc3RhbmNlLCB0aGlzLmZpZWxkKTtcclxuICAgICAgaW5zdGFuY2Uub25CaW5kICYmIGluc3RhbmNlLm9uQmluZCh0aGlzLmZpZWxkKTtcclxuICAgICAgdGhpcy5mb3JtID0gaW5zdGFuY2UuZm9ybTtcclxuICAgICAgdGhpcy5mb3JtLmFkZENvbnRyb2woJ25hbWUnLCB0aGlzLl9mYi5jb250cm9sKG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4oTkFNRV9QQVRURVJOKV0pKTtcclxuICAgICAgdGhpcy5mb3JtLmFkZENvbnRyb2woJ2NvbnRyb2xUeXBlJywgdGhpcy5fZmIuY29udHJvbChudWxsKSk7XHJcbiAgICAgIHRoaXMuZm9ybS5hZGRDb250cm9sKCdhdXRvZmlsbCcsIHRoaXMuX2ZiLmNvbnRyb2wobnVsbCkpO1xyXG4gICAgICB0aGlzLmZvcm0uYWRkQ29udHJvbCgncmVxdWlyZWQnLCB0aGlzLl9mYi5jb250cm9sKG51bGwpKTtcclxuICAgICAgLy90aGlzLmZvcm0uYWRkQ29udHJvbCgnaGVscCcsIHRoaXMuX2ZiLmNvbnRyb2wobnVsbCkpO1xyXG4gICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh0aGlzLmZpZWxkKTtcclxuICAgICAgaWYgKHRoaXMuZmllbGQuZHJhZnQpIHRoaXMuZm9ybS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHNhdmUoKSB7IHRoaXMuX3BhbmVSZWYuY2xvc2UodGhpcy5mb3JtLnZhbHVlKSB9XHJcbn1cclxuIiwiPG1hdC10b29sYmFyPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJzYXZlKClcIiBbZGlzYWJsZWRdPVwiIWZvcm0/LmRpcnR5IHx8ICFmb3JtPy52YWxpZFwiIFtiaXpkb2NUb29sdGlwXT1cIidTYXZlJ3x0cmFuc2xhdGVcIj48bWF0LWljb24+c2F2ZTwvbWF0LWljb24+PC9idXR0b24+XHJcbjwvbWF0LXRvb2xiYXI+XHJcbjxmb3JtIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNsYXNzPVwiY29sdW1uXCI+XHJcbiAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZmxleFwiPlxyXG4gICAgPG1hdC1sYWJlbD57eydOYW1lJ3x0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxyXG4gICAgPGlucHV0IG1hdElucHV0IHJlcXVpcmVkIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIiAvPlxyXG4gICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm0uZ2V0KCduYW1lJykuaGFzRXJyb3IoJ3BhdHRlcm4nKVwiIFtpbm5lckhUTUxdPVwiJ1Byb2dyYW1QYXR0ZXJuRXJyJ3x0cmFuc2xhdGVcIj48L21hdC1lcnJvcj5cclxuICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtLmdldCgnbmFtZScpLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCIgW2lubmVySFRNTF09XCInUmVxdWlyZWRFcnInfHRyYW5zbGF0ZTonRmllbGQnXCI+PC9tYXQtZXJyb3I+XHJcbiAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciAjZGVzaWduPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxtYXQtY2hlY2tib3ggZm9ybUNvbnRyb2xOYW1lPVwicmVxdWlyZWRcIj57eydNYW5kYXRvcnknfHRyYW5zbGF0ZX19PC9tYXQtY2hlY2tib3g+XHJcbiAgPG1hdC1jaGVja2JveCBmb3JtQ29udHJvbE5hbWU9XCJhdXRvZmlsbFwiPnt7J0F1dG9maWxsJ3x0cmFuc2xhdGV9fTwvbWF0LWNoZWNrYm94PlxyXG48L2Zvcm0+XHJcbiJdfQ==
@@ -41,14 +41,14 @@ export class SectionPropertiesComponent {
41
41
  this._paneRef.data.draft && this.form.markAsDirty();
42
42
  }
43
43
  save() { this._paneRef.close(this.form.value); }
44
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SectionPropertiesComponent, deps: [{ token: i1.FormBuilder }, { token: i2.PaneRef }], target: i0.ɵɵFactoryTarget.Component }); }
45
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SectionPropertiesComponent, selector: "ng-component", host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" } }, ngImport: i0, template: "<mat-toolbar>\r\n <button mat-icon-button (click)=\"save()\" [disabled]=\"!form?.dirty || !form?.valid\" [bizdocTooltip]=\"'Save'|translate\"><mat-icon>save</mat-icon></button>\r\n</mat-toolbar>\r\n<form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <bizdoc-localized-string [placeholder]=\"'Title'|translate\" formControlName=\"title\"></bizdoc-localized-string>\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput required formControlName=\"name\" />\r\n <mat-error *ngIf=\"form.get('name').hasError('pattern')\" [innerHTML]=\"'ProgramPatternErr'|translate\"></mat-error>\r\n <mat-error *ngIf=\"form.get('name').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:'Field'\"></mat-error>\r\n </mat-form-field>\r\n <bizdoc-localized-string [placeholder]=\"'Note'|translate\" formControlName=\"note\"></bizdoc-localized-string>\r\n\r\n</form>\r\n", styles: ["form{padding:8px}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i7.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: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: i10.LocalizedStringComponent, selector: "bizdoc-localized-string", inputs: ["class", "floatLabel", "value", "placeholder", "required", "disabled", "maxlength"] }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }] }); }
44
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: SectionPropertiesComponent, deps: [{ token: i1.FormBuilder }, { token: i2.PaneRef }], target: i0.ɵɵFactoryTarget.Component }); }
45
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.1", type: SectionPropertiesComponent, selector: "ng-component", host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" } }, ngImport: i0, template: "<mat-toolbar>\r\n <button mat-icon-button (click)=\"save()\" [disabled]=\"!form?.dirty || !form?.valid\" [bizdocTooltip]=\"'Save'|translate\"><mat-icon>save</mat-icon></button>\r\n</mat-toolbar>\r\n<form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <bizdoc-localized-string [placeholder]=\"'Title'|translate\" formControlName=\"title\"></bizdoc-localized-string>\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput required formControlName=\"name\" />\r\n <mat-error *ngIf=\"form.get('name').hasError('pattern')\" [innerHTML]=\"'ProgramPatternErr'|translate\"></mat-error>\r\n <mat-error *ngIf=\"form.get('name').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:'Field'\"></mat-error>\r\n </mat-form-field>\r\n <bizdoc-localized-string [placeholder]=\"'Note'|translate\" formControlName=\"note\"></bizdoc-localized-string>\r\n\r\n</form>\r\n", styles: ["form{padding:8px}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i7.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: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: i10.LocalizedStringComponent, selector: "bizdoc-localized-string", inputs: ["class", "floatLabel", "value", "placeholder", "required", "disabled", "maxlength"] }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }] }); }
46
46
  }
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SectionPropertiesComponent, decorators: [{
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: SectionPropertiesComponent, decorators: [{
48
48
  type: Component,
49
49
  args: [{ template: "<mat-toolbar>\r\n <button mat-icon-button (click)=\"save()\" [disabled]=\"!form?.dirty || !form?.valid\" [bizdocTooltip]=\"'Save'|translate\"><mat-icon>save</mat-icon></button>\r\n</mat-toolbar>\r\n<form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <bizdoc-localized-string [placeholder]=\"'Title'|translate\" formControlName=\"title\"></bizdoc-localized-string>\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput required formControlName=\"name\" />\r\n <mat-error *ngIf=\"form.get('name').hasError('pattern')\" [innerHTML]=\"'ProgramPatternErr'|translate\"></mat-error>\r\n <mat-error *ngIf=\"form.get('name').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:'Field'\"></mat-error>\r\n </mat-form-field>\r\n <bizdoc-localized-string [placeholder]=\"'Note'|translate\" formControlName=\"note\"></bizdoc-localized-string>\r\n\r\n</form>\r\n", styles: ["form{padding:8px}\n"] }]
50
- }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.PaneRef }]; }, propDecorators: { handleKeyboardEvent: [{
50
+ }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.PaneRef }], propDecorators: { handleKeyboardEvent: [{
51
51
  type: HostListener,
52
52
  args: ['document:keydown', ['$event']]
53
53
  }] } });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2Zvcm0vZGVzaWduZXIvc2VjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2Zvcm0vZGVzaWduZXIvc2VjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQWUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekQsT0FBTyxFQUFFLFlBQVksRUFBZ0IsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7OztBQU01RCxNQUFNLE9BQU8sMEJBQTBCO0lBU3JDLFlBQ1UsR0FBZ0IsRUFDaEIsUUFBb0M7UUFEcEMsUUFBRyxHQUFILEdBQUcsQ0FBYTtRQUNoQixhQUFRLEdBQVIsUUFBUSxDQUE0QjtRQVRyQyxTQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDN0IsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBQ3JGLEtBQUssRUFBRSxJQUFJO1lBQ1gsSUFBSSxFQUFFLElBQUk7WUFDVixTQUFTLEVBQUUsSUFBSTtZQUNmLElBQUksRUFBRSxJQUFJO1NBQ1gsQ0FBQyxDQUFDO0lBSUgsQ0FBQztJQUNEOzs7T0FHRztJQUVILG1CQUFtQixDQUFDLEtBQW9CO1FBQ3RDLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLEVBQUU7WUFDN0QsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQy9CLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDekI7SUFDSCxDQUFDO0lBQ0QsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdEQsQ0FBQztJQUNELElBQUksS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBLENBQUMsQ0FBQzsrR0E3QnBDLDBCQUEwQjttR0FBMUIsMEJBQTBCLGdJQ1R2QywrNkJBY0E7OzRGRExhLDBCQUEwQjtrQkFKdEMsU0FBUzs7d0hBc0JSLG1CQUFtQjtzQkFEbEIsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBQYW5lUmVmIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvc2xvdHMvcGFuZS1yZWZcIjtcclxuaW1wb3J0IHsgTkFNRV9QQVRURVJOLCBTZWN0aW9uTW9kZWwgfSBmcm9tIFwiLi9kZWNsYXJhdGlvbnNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlVXJsOiAnc2VjdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVzOiBbYGZvcm0ge3BhZGRpbmc6IDhweH1gXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VjdGlvblByb3BlcnRpZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIG1vZGVsOiBTZWN0aW9uTW9kZWw7XHJcbiAgcmVhZG9ubHkgZm9ybSA9IHRoaXMuX2ZiLmdyb3VwKHtcclxuICAgIG5hbWU6IHRoaXMuX2ZiLmNvbnRyb2wobnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMucGF0dGVybihOQU1FX1BBVFRFUk4pXSksXHJcbiAgICB0aXRsZTogbnVsbCxcclxuICAgIG5vdGU6IG51bGwsXHJcbiAgICBtdWx0aUxpbmU6IG51bGwsXHJcbiAgICByb3dzOiBudWxsLFxyXG4gIH0pO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSBfcGFuZVJlZjogUGFuZVJlZjxhbnksIFNlY3Rpb25Nb2RlbD4pIHtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ3RybC1zIHNhdmVcclxuICAgKiBAcGFyYW0gZXZlbnRcclxuICAgKi9cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJywgWyckZXZlbnQnXSlcclxuICBoYW5kbGVLZXlib2FyZEV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAoZXZlbnQuY3RybEtleSAmJiAoZXZlbnQua2V5ID09PSAncycgfHwgZXZlbnQua2V5ID09PSAnUycpKSB7XHJcbiAgICAgIHRoaXMuZm9ybS5kaXJ0eSAmJiB0aGlzLnNhdmUoKTtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUodGhpcy5fcGFuZVJlZi5kYXRhKTtcclxuICAgIHRoaXMuX3BhbmVSZWYuZGF0YS5kcmFmdCAmJiB0aGlzLmZvcm0ubWFya0FzRGlydHkoKTtcclxuICB9XHJcbiAgc2F2ZSgpIHsgdGhpcy5fcGFuZVJlZi5jbG9zZSh0aGlzLmZvcm0udmFsdWUpIH1cclxufVxyXG4iLCI8bWF0LXRvb2xiYXI+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInNhdmUoKVwiIFtkaXNhYmxlZF09XCIhZm9ybT8uZGlydHkgfHwgIWZvcm0/LnZhbGlkXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1NhdmUnfHRyYW5zbGF0ZVwiPjxtYXQtaWNvbj5zYXZlPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuPC9tYXQtdG9vbGJhcj5cclxuPGZvcm0gYXV0b2NvbXBsZXRlPVwib2ZmXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCIgY2xhc3M9XCJjb2x1bW5cIj5cclxuICA8Yml6ZG9jLWxvY2FsaXplZC1zdHJpbmcgW3BsYWNlaG9sZGVyXT1cIidUaXRsZSd8dHJhbnNsYXRlXCIgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIj48L2JpemRvYy1sb2NhbGl6ZWQtc3RyaW5nPlxyXG4gIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZsZXhcIj5cclxuICAgIDxtYXQtbGFiZWw+e3snTmFtZSd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgIDxpbnB1dCBtYXRJbnB1dCByZXF1aXJlZCBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCIgLz5cclxuICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtLmdldCgnbmFtZScpLmhhc0Vycm9yKCdwYXR0ZXJuJylcIiBbaW5uZXJIVE1MXT1cIidQcm9ncmFtUGF0dGVybkVycid8dHJhbnNsYXRlXCI+PC9tYXQtZXJyb3I+XHJcbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybS5nZXQoJ25hbWUnKS5oYXNFcnJvcigncmVxdWlyZWQnKVwiIFtpbm5lckhUTUxdPVwiJ1JlcXVpcmVkRXJyJ3x0cmFuc2xhdGU6J0ZpZWxkJ1wiPjwvbWF0LWVycm9yPlxyXG4gIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPGJpemRvYy1sb2NhbGl6ZWQtc3RyaW5nIFtwbGFjZWhvbGRlcl09XCInTm90ZSd8dHJhbnNsYXRlXCIgZm9ybUNvbnRyb2xOYW1lPVwibm90ZVwiPjwvYml6ZG9jLWxvY2FsaXplZC1zdHJpbmc+XHJcblxyXG48L2Zvcm0+XHJcbiJdfQ==
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2Zvcm0vZGVzaWduZXIvc2VjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2Zvcm0vZGVzaWduZXIvc2VjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQWUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekQsT0FBTyxFQUFFLFlBQVksRUFBZ0IsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7OztBQU01RCxNQUFNLE9BQU8sMEJBQTBCO0lBU3JDLFlBQ1UsR0FBZ0IsRUFDaEIsUUFBb0M7UUFEcEMsUUFBRyxHQUFILEdBQUcsQ0FBYTtRQUNoQixhQUFRLEdBQVIsUUFBUSxDQUE0QjtRQVRyQyxTQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDN0IsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBQ3JGLEtBQUssRUFBRSxJQUFJO1lBQ1gsSUFBSSxFQUFFLElBQUk7WUFDVixTQUFTLEVBQUUsSUFBSTtZQUNmLElBQUksRUFBRSxJQUFJO1NBQ1gsQ0FBQyxDQUFDO0lBSUgsQ0FBQztJQUNEOzs7T0FHRztJQUVILG1CQUFtQixDQUFDLEtBQW9CO1FBQ3RDLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLEVBQUU7WUFDN0QsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQy9CLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDekI7SUFDSCxDQUFDO0lBQ0QsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdEQsQ0FBQztJQUNELElBQUksS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBLENBQUMsQ0FBQzs4R0E3QnBDLDBCQUEwQjtrR0FBMUIsMEJBQTBCLGdJQ1R2QywrNkJBY0E7OzJGRExhLDBCQUEwQjtrQkFKdEMsU0FBUzs7c0dBc0JSLG1CQUFtQjtzQkFEbEIsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBQYW5lUmVmIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvc2xvdHMvcGFuZS1yZWZcIjtcclxuaW1wb3J0IHsgTkFNRV9QQVRURVJOLCBTZWN0aW9uTW9kZWwgfSBmcm9tIFwiLi9kZWNsYXJhdGlvbnNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlVXJsOiAnc2VjdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVzOiBbYGZvcm0ge3BhZGRpbmc6IDhweH1gXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VjdGlvblByb3BlcnRpZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIG1vZGVsOiBTZWN0aW9uTW9kZWw7XHJcbiAgcmVhZG9ubHkgZm9ybSA9IHRoaXMuX2ZiLmdyb3VwKHtcclxuICAgIG5hbWU6IHRoaXMuX2ZiLmNvbnRyb2wobnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMucGF0dGVybihOQU1FX1BBVFRFUk4pXSksXHJcbiAgICB0aXRsZTogbnVsbCxcclxuICAgIG5vdGU6IG51bGwsXHJcbiAgICBtdWx0aUxpbmU6IG51bGwsXHJcbiAgICByb3dzOiBudWxsLFxyXG4gIH0pO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSBfcGFuZVJlZjogUGFuZVJlZjxhbnksIFNlY3Rpb25Nb2RlbD4pIHtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ3RybC1zIHNhdmVcclxuICAgKiBAcGFyYW0gZXZlbnRcclxuICAgKi9cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJywgWyckZXZlbnQnXSlcclxuICBoYW5kbGVLZXlib2FyZEV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAoZXZlbnQuY3RybEtleSAmJiAoZXZlbnQua2V5ID09PSAncycgfHwgZXZlbnQua2V5ID09PSAnUycpKSB7XHJcbiAgICAgIHRoaXMuZm9ybS5kaXJ0eSAmJiB0aGlzLnNhdmUoKTtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUodGhpcy5fcGFuZVJlZi5kYXRhKTtcclxuICAgIHRoaXMuX3BhbmVSZWYuZGF0YS5kcmFmdCAmJiB0aGlzLmZvcm0ubWFya0FzRGlydHkoKTtcclxuICB9XHJcbiAgc2F2ZSgpIHsgdGhpcy5fcGFuZVJlZi5jbG9zZSh0aGlzLmZvcm0udmFsdWUpIH1cclxufVxyXG4iLCI8bWF0LXRvb2xiYXI+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInNhdmUoKVwiIFtkaXNhYmxlZF09XCIhZm9ybT8uZGlydHkgfHwgIWZvcm0/LnZhbGlkXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1NhdmUnfHRyYW5zbGF0ZVwiPjxtYXQtaWNvbj5zYXZlPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuPC9tYXQtdG9vbGJhcj5cclxuPGZvcm0gYXV0b2NvbXBsZXRlPVwib2ZmXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCIgY2xhc3M9XCJjb2x1bW5cIj5cclxuICA8Yml6ZG9jLWxvY2FsaXplZC1zdHJpbmcgW3BsYWNlaG9sZGVyXT1cIidUaXRsZSd8dHJhbnNsYXRlXCIgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIj48L2JpemRvYy1sb2NhbGl6ZWQtc3RyaW5nPlxyXG4gIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZsZXhcIj5cclxuICAgIDxtYXQtbGFiZWw+e3snTmFtZSd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgIDxpbnB1dCBtYXRJbnB1dCByZXF1aXJlZCBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCIgLz5cclxuICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtLmdldCgnbmFtZScpLmhhc0Vycm9yKCdwYXR0ZXJuJylcIiBbaW5uZXJIVE1MXT1cIidQcm9ncmFtUGF0dGVybkVycid8dHJhbnNsYXRlXCI+PC9tYXQtZXJyb3I+XHJcbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybS5nZXQoJ25hbWUnKS5oYXNFcnJvcigncmVxdWlyZWQnKVwiIFtpbm5lckhUTUxdPVwiJ1JlcXVpcmVkRXJyJ3x0cmFuc2xhdGU6J0ZpZWxkJ1wiPjwvbWF0LWVycm9yPlxyXG4gIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPGJpemRvYy1sb2NhbGl6ZWQtc3RyaW5nIFtwbGFjZWhvbGRlcl09XCInTm90ZSd8dHJhbnNsYXRlXCIgZm9ybUNvbnRyb2xOYW1lPVwibm90ZVwiPjwvYml6ZG9jLWxvY2FsaXplZC1zdHJpbmc+XHJcblxyXG48L2Zvcm0+XHJcbiJdfQ==