@bizdoc/core 1.16.25 → 1.16.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (381) hide show
  1. package/assets/bizdoc-schema.json +11 -0
  2. package/assets/system/active-directory.svg +1 -0
  3. package/assets/system/amazon.svg +1 -0
  4. package/assets/system/{Azure.svg → azure.svg} +0 -0
  5. package/assets/system/okta.svg +31 -0
  6. package/assets/system/{QAD.svg → qad.svg} +0 -0
  7. package/assets/system/sap.svg +1 -1
  8. package/assets/system/windows.svg +4 -0
  9. package/esm2020/lib/admin/admin-dismiss.service.mjs +3 -3
  10. package/esm2020/lib/admin/admin-menu.component.mjs +5 -5
  11. package/esm2020/lib/admin/configuration-designer/cube-axes-filter.component.mjs +5 -5
  12. package/esm2020/lib/admin/configuration-designer/declarations.mjs +8 -79
  13. package/esm2020/lib/admin/configuration-designer/designer-element.component.mjs +33 -29
  14. package/esm2020/lib/admin/configuration-designer/designer-privileges.component.mjs +3 -3
  15. package/esm2020/lib/admin/configuration-designer/designer.base.mjs +15 -13
  16. package/esm2020/lib/admin/configuration-designer/designer.component.mjs +20 -16
  17. package/esm2020/lib/admin/configuration-designer/elements/action.component.mjs +3 -3
  18. package/esm2020/lib/admin/configuration-designer/elements/analysis-view.component.mjs +5 -5
  19. package/esm2020/lib/admin/configuration-designer/elements/analysis-widget.component.mjs +7 -7
  20. package/esm2020/lib/admin/configuration-designer/elements/anomaly-rule.component.mjs +4 -4
  21. package/esm2020/lib/admin/configuration-designer/elements/box-form.component.mjs +28 -14
  22. package/esm2020/lib/admin/configuration-designer/elements/configuration-datasource.component.mjs +4 -4
  23. package/esm2020/lib/admin/configuration-designer/elements/cube-index-utility.component.mjs +5 -5
  24. package/esm2020/lib/admin/configuration-designer/elements/cube-view.component.mjs +4 -4
  25. package/esm2020/lib/admin/configuration-designer/elements/cube.component.mjs +14 -21
  26. package/esm2020/lib/admin/configuration-designer/elements/documents-report.component.mjs +4 -4
  27. package/esm2020/lib/admin/configuration-designer/elements/documents-widget.component.mjs +4 -4
  28. package/esm2020/lib/admin/configuration-designer/elements/explore-view.component.mjs +4 -4
  29. package/esm2020/lib/admin/configuration-designer/elements/folder.component.mjs +3 -3
  30. package/esm2020/lib/admin/configuration-designer/elements/form.component.mjs +5 -8
  31. package/esm2020/lib/admin/configuration-designer/elements/guide.component.mjs +5 -5
  32. package/esm2020/lib/admin/configuration-designer/elements/matrix-view.component.mjs +4 -4
  33. package/esm2020/lib/admin/configuration-designer/elements/parallel-view.component.mjs +5 -5
  34. package/esm2020/lib/admin/configuration-designer/elements/performance-widget.component.mjs +4 -4
  35. package/esm2020/lib/admin/configuration-designer/elements/pivot-view.component.mjs +5 -5
  36. package/esm2020/lib/admin/configuration-designer/elements/policy.component.mjs +3 -3
  37. package/esm2020/lib/admin/configuration-designer/elements/report.component.mjs +3 -3
  38. package/esm2020/lib/admin/configuration-designer/elements/return-to-role-action.component.mjs +4 -4
  39. package/esm2020/lib/admin/configuration-designer/elements/role.component.mjs +3 -3
  40. package/esm2020/lib/admin/configuration-designer/elements/rule.component.mjs +3 -3
  41. package/esm2020/lib/admin/configuration-designer/elements/state.component.mjs +4 -4
  42. package/esm2020/lib/admin/configuration-designer/elements/sum-view.component.mjs +4 -4
  43. package/esm2020/lib/admin/configuration-designer/elements/survey-form.component.mjs +44 -0
  44. package/esm2020/lib/admin/configuration-designer/elements/tasks-report.component.mjs +4 -4
  45. package/esm2020/lib/admin/configuration-designer/elements/type.component.mjs +56 -13
  46. package/esm2020/lib/admin/configuration-designer/elements/usage-report.component.mjs +5 -5
  47. package/esm2020/lib/admin/configuration-designer/elements/utility.component.mjs +3 -3
  48. package/esm2020/lib/admin/configuration-designer/elements/view.component.mjs +3 -3
  49. package/esm2020/lib/admin/configuration-designer/elements/widget.component.mjs +3 -3
  50. package/esm2020/lib/admin/configuration-designer/icon-picker.component.mjs +4 -4
  51. package/esm2020/lib/admin/core/ace.input.mjs +4 -4
  52. package/esm2020/lib/admin/core/color-picker.input.mjs +4 -4
  53. package/esm2020/lib/admin/core/search.input.mjs +3 -3
  54. package/esm2020/lib/admin/diff/configuration-diff.component.mjs +4 -4
  55. package/esm2020/lib/admin/document-trace/document-trace.component.mjs +4 -4
  56. package/esm2020/lib/admin/document-trace/reassign.dialog.mjs +3 -3
  57. package/esm2020/lib/admin/document-trace/trace-element.component.mjs +3 -3
  58. package/esm2020/lib/admin/form/designer/designer.component.mjs +22 -23
  59. package/esm2020/lib/admin/form/form.resolve.service.mjs +3 -3
  60. package/esm2020/lib/admin/form/survey/survey.component.mjs +180 -0
  61. package/esm2020/lib/admin/form/workflow/node.component.mjs +3 -3
  62. package/esm2020/lib/admin/form/workflow/role-node.component.mjs +4 -4
  63. package/esm2020/lib/admin/form/workflow/workflow.component.mjs +3 -3
  64. package/esm2020/lib/admin/indices/manage-cube-index.component.mjs +4 -4
  65. package/esm2020/lib/admin/patterns/patterns.component.mjs +4 -4
  66. package/esm2020/lib/admin/permissions/permissions.component.mjs +4 -4
  67. package/esm2020/lib/admin/positions/positions-popup.component.mjs +3 -3
  68. package/esm2020/lib/admin/positions/positions.component.mjs +4 -4
  69. package/esm2020/lib/admin/profiler/outofoffice.component.mjs +3 -3
  70. package/esm2020/lib/admin/profiler/profiler.component.mjs +5 -5
  71. package/esm2020/lib/admin/system.service.mjs +4 -4
  72. package/esm2020/lib/admin/utility-wrapper.component.mjs +3 -3
  73. package/esm2020/lib/admin/utility.pane.component.mjs +3 -3
  74. package/esm2020/lib/app.component.mjs +6 -6
  75. package/esm2020/lib/bizdoc.module.mjs +4 -4
  76. package/esm2020/lib/browse/browse-items.component.mjs +3 -3
  77. package/esm2020/lib/browse/browse.mobile.component.mjs +3 -3
  78. package/esm2020/lib/browse/browse.pane.component.mjs +3 -3
  79. package/esm2020/lib/browse/expanded-item/expanded-item.component.mjs +3 -3
  80. package/esm2020/lib/browse/filter/filter.component.mjs +3 -3
  81. package/esm2020/lib/browse/folders-menu.component.mjs +3 -3
  82. package/esm2020/lib/chat/chat-info.mjs +3 -3
  83. package/esm2020/lib/chat/chat.mobile.component.mjs +3 -3
  84. package/esm2020/lib/chat/chat.service.mjs +3 -3
  85. package/esm2020/lib/chat/contacts.component.mjs +6 -6
  86. package/esm2020/lib/chat/contacts.pane.component.mjs +3 -3
  87. package/esm2020/lib/chat/conversation.component.mjs +3 -3
  88. package/esm2020/lib/chat/conversation.pane.component.mjs +3 -3
  89. package/esm2020/lib/compose/action/action-picker.component.mjs +3 -3
  90. package/esm2020/lib/compose/action/action.dialog.mjs +5 -5
  91. package/esm2020/lib/compose/action/action.pane.dialog.exp.mjs +3 -3
  92. package/esm2020/lib/compose/action/assign-action.component.mjs +13 -5
  93. package/esm2020/lib/compose/action/moveto-action.component.mjs +4 -4
  94. package/esm2020/lib/compose/action/return-action.component.mjs +4 -4
  95. package/esm2020/lib/compose/attachments/attachments.component.mjs +3 -3
  96. package/esm2020/lib/compose/attachments/preview/attachment-preview.component.mjs +3 -3
  97. package/esm2020/lib/compose/attachments/progress-button.directive.mjs +3 -3
  98. package/esm2020/lib/compose/box/box.component.mjs +4 -4
  99. package/esm2020/lib/compose/can-deactivate-changes.service.mjs +3 -3
  100. package/esm2020/lib/compose/comments/comment.component.mjs +3 -3
  101. package/esm2020/lib/compose/comments/comments.component.mjs +3 -3
  102. package/esm2020/lib/compose/comments/comments.pane.component.mjs +3 -3
  103. package/esm2020/lib/compose/comments/edit-comment.component.mjs +3 -3
  104. package/esm2020/lib/compose/comments/edits.component.mjs +3 -3
  105. package/esm2020/lib/compose/comments/quick-comment.component.exp.mjs +3 -3
  106. package/esm2020/lib/compose/comments/votes.component.mjs +3 -3
  107. package/esm2020/lib/compose/compose-resolve.service.mjs +6 -6
  108. package/esm2020/lib/compose/compose.mobile.component.mjs +3 -3
  109. package/esm2020/lib/compose/compose.pane.component.mjs +3 -3
  110. package/esm2020/lib/compose/copy/copy.dialog.mjs +3 -3
  111. package/esm2020/lib/compose/dismiss.service.mjs +3 -3
  112. package/esm2020/lib/compose/document-resolver.service.mjs +3 -3
  113. package/esm2020/lib/compose/document.component.mjs +3 -3
  114. package/esm2020/lib/compose/document.mobile.component.mjs +3 -3
  115. package/esm2020/lib/compose/document.pane.component.mjs +3 -3
  116. package/esm2020/lib/compose/events/events.component.mjs +3 -3
  117. package/esm2020/lib/compose/form-selector/form-selector.sheet.mjs +3 -3
  118. package/esm2020/lib/compose/form.component.mjs +3 -3
  119. package/esm2020/lib/compose/new-menu.component.mjs +3 -3
  120. package/esm2020/lib/compose/privilage.directive.mjs +6 -6
  121. package/esm2020/lib/compose/recipient-resolver.service.mjs +3 -3
  122. package/esm2020/lib/compose/state.component.mjs +4 -4
  123. package/esm2020/lib/compose/survey/survey.component.mjs +73 -0
  124. package/esm2020/lib/compose/tag/tags.component.mjs +3 -3
  125. package/esm2020/lib/compose/trace/flow.component.mjs +3 -3
  126. package/esm2020/lib/compose/trace/people.component.mjs +3 -3
  127. package/esm2020/lib/compose/trace/trace.base.mjs +3 -3
  128. package/esm2020/lib/compose/trace/trace.component.mjs +3 -3
  129. package/esm2020/lib/compose/trace/trace.pane.component.mjs +3 -3
  130. package/esm2020/lib/compose/version-compare/version-compare.component.mjs +3 -3
  131. package/esm2020/lib/compose/version-compare/version-compare.directive.mjs +9 -9
  132. package/esm2020/lib/compose/version-compare/version.pane.component.mjs +3 -3
  133. package/esm2020/lib/core/NgComponentOutlet.mjs +3 -3
  134. package/esm2020/lib/core/account.service.mjs +3 -3
  135. package/esm2020/lib/core/animated-icon/animated-icon.directive.mjs +3 -3
  136. package/esm2020/lib/core/avatar/avatar.component.mjs +4 -4
  137. package/esm2020/lib/core/component-factory-resolver.mjs +3 -3
  138. package/esm2020/lib/core/controls/address.input.mjs +4 -4
  139. package/esm2020/lib/core/controls/auto-complete.input.mjs +4 -4
  140. package/esm2020/lib/core/controls/combination-picker-body.mjs +3 -3
  141. package/esm2020/lib/core/controls/combination-picker.mjs +4 -4
  142. package/esm2020/lib/core/controls/combination-pool.mjs +3 -3
  143. package/esm2020/lib/core/controls/file.input.mjs +4 -4
  144. package/esm2020/lib/core/controls/select.input.mjs +4 -4
  145. package/esm2020/lib/core/controls/time-picker.mjs +4 -4
  146. package/esm2020/lib/core/controls/timespan.input.mjs +4 -4
  147. package/esm2020/lib/core/datasource.service.mjs +3 -3
  148. package/esm2020/lib/core/guide/guide.component.mjs +3 -3
  149. package/esm2020/lib/core/guide/guide.service.mjs +5 -5
  150. package/esm2020/lib/core/guide/help-tip.component.mjs +3 -3
  151. package/esm2020/lib/core/http.interceptor.mjs +3 -3
  152. package/esm2020/lib/core/hub.service.mjs +3 -3
  153. package/esm2020/lib/core/identity/identity.component.mjs +3 -3
  154. package/esm2020/lib/core/info/attachment-info.service.mjs +3 -3
  155. package/esm2020/lib/core/info/document-info.service.mjs +3 -3
  156. package/esm2020/lib/core/info/location-info.component.mjs +3 -3
  157. package/esm2020/lib/core/info/map-info.mjs +3 -3
  158. package/esm2020/lib/core/layout/autocomplete.field.mjs +3 -3
  159. package/esm2020/lib/core/layout/checkbox.field.mjs +3 -3
  160. package/esm2020/lib/core/layout/checkbox.mjs +3 -3
  161. package/esm2020/lib/core/layout/date-range.field.mjs +3 -3
  162. package/esm2020/lib/core/layout/date.field.mjs +3 -3
  163. package/esm2020/lib/core/layout/expression.field.mjs +3 -3
  164. package/esm2020/lib/core/layout/file.field.mjs +3 -3
  165. package/esm2020/lib/core/layout/html.field.mjs +3 -3
  166. package/esm2020/lib/core/layout/input.base.mjs +6 -6
  167. package/esm2020/lib/core/layout/input.field.mjs +9 -9
  168. package/esm2020/lib/core/layout/layout.component.mjs +21 -21
  169. package/esm2020/lib/core/layout/numeric.field.mjs +3 -3
  170. package/esm2020/lib/core/layout/select.field.mjs +3 -3
  171. package/esm2020/lib/core/layout/switch.field.mjs +3 -3
  172. package/esm2020/lib/core/layout/textarea.field.mjs +3 -3
  173. package/esm2020/lib/core/layout/timespan.field.mjs +3 -3
  174. package/esm2020/lib/core/lottie-animation.mjs +3 -3
  175. package/esm2020/lib/core/mailbox.service.mjs +6 -6
  176. package/esm2020/lib/core/models.mjs +27 -27
  177. package/esm2020/lib/core/none.component.mjs +3 -3
  178. package/esm2020/lib/core/pipes/action.pipe.mjs +3 -3
  179. package/esm2020/lib/core/pipes/calendar.pipe.mjs +4 -4
  180. package/esm2020/lib/core/pipes/date-format.pipe.mjs +3 -3
  181. package/esm2020/lib/core/pipes/daterange.pipe.mjs +6 -6
  182. package/esm2020/lib/core/pipes/difference.pipe.mjs +3 -3
  183. package/esm2020/lib/core/pipes/duration-format.pipe.mjs +3 -3
  184. package/esm2020/lib/core/pipes/duration.pipe.mjs +3 -3
  185. package/esm2020/lib/core/pipes/form.pipe.mjs +3 -3
  186. package/esm2020/lib/core/pipes/join.pipe.mjs +3 -3
  187. package/esm2020/lib/core/pipes/role.pipe.mjs +3 -3
  188. package/esm2020/lib/core/pipes/sanitize-html.pipe.mjs +3 -3
  189. package/esm2020/lib/core/pipes/sort.pipe.mjs +6 -6
  190. package/esm2020/lib/core/pipes/state.pipe.mjs +3 -3
  191. package/esm2020/lib/core/pipes/time-ago.pipe.mjs +6 -6
  192. package/esm2020/lib/core/pipes/translate.pipe.mjs +6 -6
  193. package/esm2020/lib/core/pipes/type-value.pipe.mjs +3 -3
  194. package/esm2020/lib/core/pipes/user-name.pipe.mjs +3 -3
  195. package/esm2020/lib/core/popup/popup.component.mjs +3 -3
  196. package/esm2020/lib/core/popup/popup.service.mjs +3 -3
  197. package/esm2020/lib/core/popup/tooltip.directive.mjs +7 -7
  198. package/esm2020/lib/core/prompt/ask/ask.dialog.mjs +3 -3
  199. package/esm2020/lib/core/prompt/mask/mask.component.mjs +3 -3
  200. package/esm2020/lib/core/prompt.service.mjs +3 -3
  201. package/esm2020/lib/core/router.mjs +6 -6
  202. package/esm2020/lib/core/save-changes.dialog.mjs +3 -3
  203. package/esm2020/lib/core/session.service.mjs +3 -3
  204. package/esm2020/lib/core/slots/router.directive.mjs +3 -3
  205. package/esm2020/lib/core/slots/router.service.mjs +3 -3
  206. package/esm2020/lib/core/slots/slots.component.mjs +3 -3
  207. package/esm2020/lib/core/tagging/documents.component.mjs +3 -3
  208. package/esm2020/lib/core/tagging/edit-input.component.mjs +3 -3
  209. package/esm2020/lib/core/tagging/emoji.component.mjs +3 -3
  210. package/esm2020/lib/core/tagging/tagging-item.directive.mjs +3 -3
  211. package/esm2020/lib/core/tagging/tagging.component-base.mjs +3 -3
  212. package/esm2020/lib/core/tagging/tagging.directive.mjs +3 -3
  213. package/esm2020/lib/core/tagging/tagging.pipe.mjs +3 -3
  214. package/esm2020/lib/core/tagging/users.component.mjs +3 -3
  215. package/esm2020/lib/core/translate.service.mjs +4 -4
  216. package/esm2020/lib/core/translations.mjs +5 -36
  217. package/esm2020/lib/core/window-title.service.mjs +3 -3
  218. package/esm2020/lib/cube/accum/accum.component.mjs +3 -3
  219. package/esm2020/lib/cube/chart/chart.component.mjs +3 -3
  220. package/esm2020/lib/cube/cube-info.service.mjs +3 -3
  221. package/esm2020/lib/cube/cube-menu.component.mjs +3 -3
  222. package/esm2020/lib/cube/cube-view.component.mjs +3 -3
  223. package/esm2020/lib/cube/cube.service.mjs +3 -3
  224. package/esm2020/lib/cube/explore/document-item.component.mjs +4 -4
  225. package/esm2020/lib/cube/explore/explore-item.component.mjs +3 -3
  226. package/esm2020/lib/cube/explore/explore-items.component.mjs +6 -6
  227. package/esm2020/lib/cube/explore/explore.pane.component.mjs +3 -3
  228. package/esm2020/lib/cube/explore/item-resolver.service.mjs +6 -6
  229. package/esm2020/lib/cube/explore/item.pane.component.mjs +3 -3
  230. package/esm2020/lib/cube/filter/filter-tags.component.exp.mjs +3 -3
  231. package/esm2020/lib/cube/filter/filter.component.mjs +3 -3
  232. package/esm2020/lib/cube/grid/grid.component.mjs +4 -4
  233. package/esm2020/lib/cube/grid/spreadsheet.component.mjs +4 -4
  234. package/esm2020/lib/cube/matrix/matrix.base.mjs +3 -3
  235. package/esm2020/lib/cube/matrix/matrix.mobile.component.mjs +3 -3
  236. package/esm2020/lib/cube/matrix/matrix.pane.component.mjs +3 -3
  237. package/esm2020/lib/cube/matrix/popup.component.mjs +3 -3
  238. package/esm2020/lib/cube/matrix/table.component.mjs +3 -3
  239. package/esm2020/lib/cube/parallel/parallel.component.mjs +3 -3
  240. package/esm2020/lib/cube/pivot/pivot.component.mjs +3 -3
  241. package/esm2020/lib/cube/sum/sum.component.mjs +3 -3
  242. package/esm2020/lib/cube/view-base.mjs +3 -3
  243. package/esm2020/lib/cube/view.mobile.component.mjs +3 -3
  244. package/esm2020/lib/cube/view.pane.component.mjs +3 -3
  245. package/esm2020/lib/dashboard/actions/actions.widget.mjs +4 -4
  246. package/esm2020/lib/dashboard/cube/accum-cube.widget.mjs +3 -3
  247. package/esm2020/lib/dashboard/cube/compare.widget.mjs +4 -4
  248. package/esm2020/lib/dashboard/cube/cube-analysis.base.mjs +3 -3
  249. package/esm2020/lib/dashboard/cube/cube-analysis.widget.mjs +4 -4
  250. package/esm2020/lib/dashboard/cube/cube-chart.widget.mjs +3 -3
  251. package/esm2020/lib/dashboard/cube/documents.widget.mjs +4 -4
  252. package/esm2020/lib/dashboard/cube/filter/filter.component.mjs +4 -4
  253. package/esm2020/lib/dashboard/dashboard.component.mjs +3 -3
  254. package/esm2020/lib/dashboard/dashboard.pane.component.mjs +3 -3
  255. package/esm2020/lib/dashboard/recents/recents.widget.mjs +4 -4
  256. package/esm2020/lib/dashboard/score/activity.widget.mjs +4 -4
  257. package/esm2020/lib/dashboard/score/compare-groups.widget.mjs +4 -4
  258. package/esm2020/lib/dashboard/score/peers-performance.widget.mjs +4 -4
  259. package/esm2020/lib/dashboard/score/pending-results.widget.mjs +4 -4
  260. package/esm2020/lib/dashboard/score/personal-score.widget.mjs +4 -4
  261. package/esm2020/lib/dashboard/widget-item.component.mjs +3 -3
  262. package/esm2020/lib/desktop.module.mjs +16 -8
  263. package/esm2020/lib/home/about/about.dialog.mjs +3 -3
  264. package/esm2020/lib/home/home-base.component.mjs +3 -3
  265. package/esm2020/lib/home/home.desktop.component.mjs +3 -3
  266. package/esm2020/lib/home/home.mobile.component.mjs +3 -3
  267. package/esm2020/lib/home/notifications/notifications.component.mjs +3 -3
  268. package/esm2020/lib/home/options/options.component.mjs +3 -3
  269. package/esm2020/lib/home/outofoffice/outofoffice.component.mjs +3 -3
  270. package/esm2020/lib/home/sign/sign.component.mjs +3 -3
  271. package/esm2020/lib/home/tools.component.mjs +25 -31
  272. package/esm2020/lib/impersonate/impersonate.component.mjs +3 -3
  273. package/esm2020/lib/mobile.module.mjs +4 -4
  274. package/esm2020/lib/modules/chart.module.mjs +4 -4
  275. package/esm2020/lib/modules/circular-gauge.module.mjs +4 -4
  276. package/esm2020/lib/modules/datepicker.intl.mjs +3 -3
  277. package/esm2020/lib/modules/dayjs.module.mjs +4 -4
  278. package/esm2020/lib/modules/diagram.module.mjs +4 -4
  279. package/esm2020/lib/modules/gantt.module.mjs +4 -4
  280. package/esm2020/lib/modules/grid.module.mjs +4 -4
  281. package/esm2020/lib/modules/material.module.mjs +4 -4
  282. package/esm2020/lib/modules/paginator.intl.mjs +3 -3
  283. package/esm2020/lib/modules/pivot.module.mjs +4 -4
  284. package/esm2020/lib/modules/schedule.module.mjs +4 -4
  285. package/esm2020/lib/modules/spreadsheet.module.mjs +4 -4
  286. package/esm2020/lib/modules/stepper.intl.mjs +3 -3
  287. package/esm2020/lib/modules/texteditor.module.mjs +4 -4
  288. package/esm2020/lib/notifications/filter.component.mjs +3 -3
  289. package/esm2020/lib/notifications/notifications-table.component.mjs +3 -3
  290. package/esm2020/lib/notifications/notifications.mobile.component.mjs +3 -3
  291. package/esm2020/lib/notifications/notifications.pane.component.mjs +3 -3
  292. package/esm2020/lib/notifications/notifications.service.mjs +3 -3
  293. package/esm2020/lib/notifications/types/commented.notification.mjs +3 -3
  294. package/esm2020/lib/notifications/types/cube-anomaly.notification.mjs +3 -3
  295. package/esm2020/lib/notifications/types/escalated.notification.mjs +3 -3
  296. package/esm2020/lib/notifications/types/liked.notification.mjs +3 -3
  297. package/esm2020/lib/notifications/types/long-running-task.notification.mjs +3 -3
  298. package/esm2020/lib/notifications/types/notification-base.mjs +3 -3
  299. package/esm2020/lib/notifications/types/nudge.notification.mjs +3 -3
  300. package/esm2020/lib/notifications/types/state-changed.notification.mjs +3 -3
  301. package/esm2020/lib/notifications/types/tagged.notification.mjs +3 -3
  302. package/esm2020/lib/notifications/types/text.notification.mjs +3 -3
  303. package/esm2020/lib/notifications/types/upcoming-event.notification.mjs +3 -3
  304. package/esm2020/lib/options/options.component.mjs +3 -3
  305. package/esm2020/lib/options/options.service.mjs +3 -3
  306. package/esm2020/lib/reports/arguments-component.mjs +3 -3
  307. package/esm2020/lib/reports/cube/documents.component.mjs +4 -4
  308. package/esm2020/lib/reports/cube/grid-documents.component.mjs +3 -3
  309. package/esm2020/lib/reports/cube/table-documents.component.mjs +3 -3
  310. package/esm2020/lib/reports/cube/usage-args.component.mjs +4 -4
  311. package/esm2020/lib/reports/cube/usage-base.mjs +3 -3
  312. package/esm2020/lib/reports/cube/usage-chart.component.mjs +3 -3
  313. package/esm2020/lib/reports/cube/usage-pivot.component.mjs +3 -3
  314. package/esm2020/lib/reports/cube/usage.component.mjs +4 -4
  315. package/esm2020/lib/reports/report-viewer.component.mjs +3 -3
  316. package/esm2020/lib/reports/report.mobile.component.mjs +7 -7
  317. package/esm2020/lib/reports/report.pane.component.mjs +3 -3
  318. package/esm2020/lib/reports/reports-menu.component.mjs +3 -3
  319. package/esm2020/lib/reports/substitution/substitution.component.mjs +4 -4
  320. package/esm2020/lib/reports/table/table-view.component.mjs +3 -3
  321. package/esm2020/lib/reports/tasks/tasks.component.mjs +4 -4
  322. package/esm2020/lib/routes.desktop.mjs +2 -2
  323. package/esm2020/lib/scheduler/schedule.component.mjs +3 -3
  324. package/esm2020/lib/scheduler/scheduler.mobile.component.mjs +3 -3
  325. package/esm2020/lib/scheduler/scheduler.pane.component.mjs +3 -3
  326. package/esm2020/lib/search/cube.component.mjs +38 -0
  327. package/esm2020/lib/search/declarations.mjs +7 -0
  328. package/esm2020/lib/search/document.component.mjs +42 -0
  329. package/esm2020/lib/search/guide.component.mjs +27 -0
  330. package/esm2020/lib/search/path.component.mjs +45 -0
  331. package/esm2020/lib/search/search.service.mjs +143 -0
  332. package/esm2020/lib/shared.module.mjs +8 -7
  333. package/esm2020/lib/system.module.mjs +13 -7
  334. package/esm2020/lib/views/cube/chart.component.mjs +4 -4
  335. package/esm2020/lib/views/cube/cube-base.mjs +3 -3
  336. package/esm2020/lib/views/cube/explore.component.mjs +4 -4
  337. package/esm2020/lib/views/cube/matrix.component.mjs +4 -4
  338. package/esm2020/lib/views/cube/parallel.component.mjs +4 -4
  339. package/esm2020/lib/views/cube/pivot.component.mjs +4 -4
  340. package/esm2020/lib/views/cube/sum.component.mjs +4 -4
  341. package/esm2020/lib/views/cube/view.component.mjs +4 -4
  342. package/esm2020/lib/views/timeline/timeline.component.exp.mjs +4 -4
  343. package/esm2020/lib/views/view-item.component.mjs +3 -3
  344. package/esm2020/lib/views/views.component.mjs +3 -3
  345. package/esm2020/lib/views/views.mobile.component.mjs +3 -3
  346. package/esm2020/lib/views/views.pane.component.mjs +3 -3
  347. package/esm2020/public-api.mjs +3 -2
  348. package/fesm2015/bizdoc-core.mjs +1818 -1439
  349. package/fesm2015/bizdoc-core.mjs.map +1 -1
  350. package/fesm2020/bizdoc-core.mjs +1809 -1437
  351. package/fesm2020/bizdoc-core.mjs.map +1 -1
  352. package/lib/admin/configuration-designer/declarations.d.ts +3 -0
  353. package/lib/admin/configuration-designer/designer-element.component.d.ts +6 -1
  354. package/lib/admin/configuration-designer/designer.base.d.ts +1 -0
  355. package/lib/admin/configuration-designer/designer.component.d.ts +4 -2
  356. package/lib/admin/configuration-designer/elements/analysis-widget.component.d.ts +2 -2
  357. package/lib/admin/configuration-designer/elements/box-form.component.d.ts +10 -2
  358. package/lib/admin/configuration-designer/elements/cube.component.d.ts +6 -1
  359. package/lib/admin/configuration-designer/elements/form.component.d.ts +0 -1
  360. package/lib/admin/configuration-designer/elements/survey-form.component.d.ts +18 -0
  361. package/lib/admin/configuration-designer/elements/type.component.d.ts +11 -0
  362. package/lib/admin/form/designer/designer.component.d.ts +5 -6
  363. package/lib/admin/form/survey/survey.component.d.ts +123 -0
  364. package/lib/compose/survey/survey.component.d.ts +17 -0
  365. package/lib/core/mailbox.service.d.ts +1 -1
  366. package/lib/core/models.d.ts +10 -2
  367. package/lib/core/translations.d.ts +3 -34
  368. package/lib/desktop.module.d.ts +11 -7
  369. package/lib/home/tools.component.d.ts +5 -7
  370. package/lib/search/cube.component.d.ts +24 -0
  371. package/lib/search/declarations.d.ts +9 -0
  372. package/lib/search/document.component.d.ts +16 -0
  373. package/lib/search/guide.component.d.ts +13 -0
  374. package/lib/search/path.component.d.ts +19 -0
  375. package/lib/search/search.service.d.ts +28 -0
  376. package/lib/shared.module.d.ts +184 -183
  377. package/lib/system.module.d.ts +32 -30
  378. package/package.json +17 -17
  379. package/public-api.d.ts +2 -1
  380. package/esm2020/lib/home/search.service.mjs +0 -75
  381. package/lib/home/search.service.d.ts +0 -24
@@ -20,14 +20,14 @@ let DocumentsReportDesignComponent = class DocumentsReportDesignComponent extend
20
20
  });
21
21
  }
22
22
  };
23
- DocumentsReportDesignComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: DocumentsReportDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
24
- DocumentsReportDesignComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: DocumentsReportDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"mode === 'widget'; else edit\">\r\n</ng-container>\r\n<!---->\r\n<ng-template #edit>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field *ngIf=\"cubes.length>1\">\r\n <mat-label>{{'Cube'|translate}}</mat-label>\r\n <mat-select formControlName=\"cube\">\r\n <mat-option *ngFor=\"let c of cubes\" [value]=\"c\">{{c.title}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <bizdoc-designer-cube-filter *ngIf=\"cube\" [cube]=\"cube\" [form]=\"form.get('filters')\"></bizdoc-designer-cube-filter>\r\n </form>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i6.DesignerCubeFilterComponent, selector: "bizdoc-designer-cube-filter", inputs: ["cube", "form"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] });
23
+ DocumentsReportDesignComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DocumentsReportDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
24
+ DocumentsReportDesignComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: DocumentsReportDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"mode === 'widget'; else edit\">\r\n</ng-container>\r\n<!---->\r\n<ng-template #edit>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field *ngIf=\"cubes.length>1\">\r\n <mat-label>{{'Cube'|translate}}</mat-label>\r\n <mat-select formControlName=\"cube\">\r\n <mat-option *ngFor=\"let c of cubes\" [value]=\"c\">{{c.title}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <bizdoc-designer-cube-filter *ngIf=\"cube\" [cube]=\"cube\" [form]=\"form.get('filters')\"></bizdoc-designer-cube-filter>\r\n </form>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i6.DesignerCubeFilterComponent, selector: "bizdoc-designer-cube-filter", inputs: ["cube", "form"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] });
25
25
  DocumentsReportDesignComponent = __decorate([
26
26
  BizDoc({ selector: 'documents-report-designer' })
27
27
  ], DocumentsReportDesignComponent);
28
28
  export { DocumentsReportDesignComponent };
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: DocumentsReportDesignComponent, decorators: [{
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DocumentsReportDesignComponent, decorators: [{
30
30
  type: Component,
31
31
  args: [{ template: "<ng-container *ngIf=\"mode === 'widget'; else edit\">\r\n</ng-container>\r\n<!---->\r\n<ng-template #edit>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field *ngIf=\"cubes.length>1\">\r\n <mat-label>{{'Cube'|translate}}</mat-label>\r\n <mat-select formControlName=\"cube\">\r\n <mat-option *ngFor=\"let c of cubes\" [value]=\"c\">{{c.title}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <bizdoc-designer-cube-filter *ngIf=\"cube\" [cube]=\"cube\" [form]=\"form.get('filters')\"></bizdoc-designer-cube-filter>\r\n </form>\r\n</ng-template>\r\n" }]
32
32
  }] });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRzLXJlcG9ydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvZWxlbWVudHMvZG9jdW1lbnRzLXJlcG9ydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvZWxlbWVudHMvZG9jdW1lbnRzLXJlcG9ydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFbEQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7Ozs7OztJQUluRCw4QkFBOEIsU0FBOUIsOEJBQStCLFNBQVEsNEJBQW9EOzs7UUFDN0YsU0FBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO1lBQzdCLElBQUksRUFBRSxJQUFJO1lBQ1YsT0FBTyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMzQixLQUFLLEVBQUUsSUFBSTtTQUNaLENBQUMsQ0FBQztLQUNKO0NBQUEsQ0FBQTsySEFOWSw4QkFBOEI7K0dBQTlCLDhCQUE4QiwyRUNQM0Msb25CQWNBO0FEUGEsOEJBQThCO0lBRHhDLE1BQU0sQ0FBQyxFQUFFLFFBQVEsRUFBRSwyQkFBMkIsRUFBRSxDQUFDO0dBQ3ZDLDhCQUE4QixDQU0xQztTQU5ZLDhCQUE4QjsyRkFBOUIsOEJBQThCO2tCQUYxQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBCaXpEb2MgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9kZWNvcmF0b3JzXCI7XHJcbmltcG9ydCB7IERvY3VtZW50c1NldHRpbmdzTW9kZWwgfSBmcm9tIFwiLi4vLi4vLi4vcmVwb3J0cy9jdWJlL2RvY3VtZW50cy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgRGVzaWduZXJDdWJlRWxlbWVudENvbXBvbmVudCB9IGZyb20gXCIuLi9kZXNpZ25lci5iYXNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHsgdGVtcGxhdGVVcmw6ICdkb2N1bWVudHMtcmVwb3J0LmNvbXBvbmVudC5odG1sJyB9KVxyXG4gIEBCaXpEb2MoeyBzZWxlY3RvcjogJ2RvY3VtZW50cy1yZXBvcnQtZGVzaWduZXInIH0pXHJcbmV4cG9ydCBjbGFzcyBEb2N1bWVudHNSZXBvcnREZXNpZ25Db21wb25lbnQgZXh0ZW5kcyBEZXNpZ25lckN1YmVFbGVtZW50Q29tcG9uZW50PERvY3VtZW50c1NldHRpbmdzTW9kZWw+IGltcGxlbWVudHMgT25Jbml0IHtcclxuICByZWFkb25seSBmb3JtID0gdGhpcy5fZmIuZ3JvdXAoe1xyXG4gICAgY3ViZTogbnVsbCxcclxuICAgIGZpbHRlcnM6IHRoaXMuX2ZiLmdyb3VwKHt9KSxcclxuICAgIHNjb3BlOiBudWxsXHJcbiAgfSk7XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vZGUgPT09ICd3aWRnZXQnOyBlbHNlIGVkaXRcIj5cclxuPC9uZy1jb250YWluZXI+XHJcbjwhLS0tLT5cclxuPG5nLXRlbXBsYXRlICNlZGl0PlxyXG4gIDxmb3JtIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNsYXNzPVwiY29sdW1uXCI+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQgKm5nSWY9XCJjdWJlcy5sZW5ndGg+MVwiPlxyXG4gICAgICA8bWF0LWxhYmVsPnt7J0N1YmUnfHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XHJcbiAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cImN1YmVcIj5cclxuICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgYyBvZiBjdWJlc1wiIFt2YWx1ZV09XCJjXCI+e3tjLnRpdGxlfX08L21hdC1vcHRpb24+XHJcbiAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8Yml6ZG9jLWRlc2lnbmVyLWN1YmUtZmlsdGVyICpuZ0lmPVwiY3ViZVwiIFtjdWJlXT1cImN1YmVcIiBbZm9ybV09XCJmb3JtLmdldCgnZmlsdGVycycpXCI+PC9iaXpkb2MtZGVzaWduZXItY3ViZS1maWx0ZXI+XHJcbiAgPC9mb3JtPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRzLXJlcG9ydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvZWxlbWVudHMvZG9jdW1lbnRzLXJlcG9ydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvZWxlbWVudHMvZG9jdW1lbnRzLXJlcG9ydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFbEQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7Ozs7OztBQUl6RCxJQUFNLDhCQUE4QixHQUFwQyxNQUFNLDhCQUErQixTQUFRLDRCQUFvRDtJQUFqRzs7UUFDSSxTQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDN0IsSUFBSSxFQUFFLElBQUk7WUFDVixPQUFPLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzNCLEtBQUssRUFBRSxJQUFJO1NBQ1osQ0FBQyxDQUFDO0tBQ0o7OzJIQU5ZLDhCQUE4QjsrR0FBOUIsOEJBQThCLDJFQ1AzQyxvbkJBY0E7QURQYSw4QkFBOEI7SUFEeEMsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLDJCQUEyQixFQUFFLENBQUM7R0FDdkMsOEJBQThCLENBTTFDO1NBTlksOEJBQThCOzJGQUE5Qiw4QkFBOEI7a0JBRjFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEJpekRvYyB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2RlY29yYXRvcnNcIjtcclxuaW1wb3J0IHsgRG9jdW1lbnRzU2V0dGluZ3NNb2RlbCB9IGZyb20gXCIuLi8uLi8uLi9yZXBvcnRzL2N1YmUvZG9jdW1lbnRzLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBEZXNpZ25lckN1YmVFbGVtZW50Q29tcG9uZW50IH0gZnJvbSBcIi4uL2Rlc2lnbmVyLmJhc2VcIjtcclxuXHJcbkBDb21wb25lbnQoeyB0ZW1wbGF0ZVVybDogJ2RvY3VtZW50cy1yZXBvcnQuY29tcG9uZW50Lmh0bWwnIH0pXHJcbiAgQEJpekRvYyh7IHNlbGVjdG9yOiAnZG9jdW1lbnRzLXJlcG9ydC1kZXNpZ25lcicgfSlcclxuZXhwb3J0IGNsYXNzIERvY3VtZW50c1JlcG9ydERlc2lnbkNvbXBvbmVudCBleHRlbmRzIERlc2lnbmVyQ3ViZUVsZW1lbnRDb21wb25lbnQ8RG9jdW1lbnRzU2V0dGluZ3NNb2RlbD4gaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHJlYWRvbmx5IGZvcm0gPSB0aGlzLl9mYi5ncm91cCh7XHJcbiAgICBjdWJlOiBudWxsLFxyXG4gICAgZmlsdGVyczogdGhpcy5fZmIuZ3JvdXAoe30pLFxyXG4gICAgc2NvcGU6IG51bGxcclxuICB9KTtcclxufVxyXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwibW9kZSA9PT0gJ3dpZGdldCc7IGVsc2UgZWRpdFwiPlxyXG48L25nLWNvbnRhaW5lcj5cclxuPCEtLS0tPlxyXG48bmctdGVtcGxhdGUgI2VkaXQ+XHJcbiAgPGZvcm0gYXV0b2NvbXBsZXRlPVwib2ZmXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCIgY2xhc3M9XCJjb2x1bW5cIj5cclxuICAgIDxtYXQtZm9ybS1maWVsZCAqbmdJZj1cImN1YmVzLmxlbmd0aD4xXCI+XHJcbiAgICAgIDxtYXQtbGFiZWw+e3snQ3ViZSd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwiY3ViZVwiPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBjIG9mIGN1YmVzXCIgW3ZhbHVlXT1cImNcIj57e2MudGl0bGV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDxiaXpkb2MtZGVzaWduZXItY3ViZS1maWx0ZXIgKm5nSWY9XCJjdWJlXCIgW2N1YmVdPVwiY3ViZVwiIFtmb3JtXT1cImZvcm0uZ2V0KCdmaWx0ZXJzJylcIj48L2JpemRvYy1kZXNpZ25lci1jdWJlLWZpbHRlcj5cclxuICA8L2Zvcm0+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
@@ -27,14 +27,14 @@ let DocumentsWidgetDesignComponent = class DocumentsWidgetDesignComponent extend
27
27
  super.ngOnInit();
28
28
  }
29
29
  };
30
- DocumentsWidgetDesignComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: DocumentsWidgetDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
31
- DocumentsWidgetDesignComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: DocumentsWidgetDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"mode === 'widget'; else edit\">\r\n</ng-container>\r\n<!---->\r\n<ng-template #edit>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field *ngIf=\"cubes.length>1\">\r\n <mat-label>{{'Cube'|translate}}</mat-label>\r\n <mat-select formControlName=\"cube\">\r\n <mat-option *ngFor=\"let c of cubes\" [value]=\"c\">{{c.title}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <bizdoc-designer-cube-filter *ngIf=\"cube\" [cube]=\"cube\" [form]=\"form.get('filters')\"></bizdoc-designer-cube-filter>\r\n </form>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i6.DesignerCubeFilterComponent, selector: "bizdoc-designer-cube-filter", inputs: ["cube", "form"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] });
30
+ DocumentsWidgetDesignComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DocumentsWidgetDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
31
+ DocumentsWidgetDesignComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: DocumentsWidgetDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"mode === 'widget'; else edit\">\r\n</ng-container>\r\n<!---->\r\n<ng-template #edit>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field *ngIf=\"cubes.length>1\">\r\n <mat-label>{{'Cube'|translate}}</mat-label>\r\n <mat-select formControlName=\"cube\">\r\n <mat-option *ngFor=\"let c of cubes\" [value]=\"c\">{{c.title}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <bizdoc-designer-cube-filter *ngIf=\"cube\" [cube]=\"cube\" [form]=\"form.get('filters')\"></bizdoc-designer-cube-filter>\r\n </form>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i6.DesignerCubeFilterComponent, selector: "bizdoc-designer-cube-filter", inputs: ["cube", "form"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] });
32
32
  DocumentsWidgetDesignComponent = __decorate([
33
33
  BizDoc({ selector: 'documents-widget-designer' })
34
34
  ], DocumentsWidgetDesignComponent);
35
35
  export { DocumentsWidgetDesignComponent };
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: DocumentsWidgetDesignComponent, decorators: [{
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DocumentsWidgetDesignComponent, decorators: [{
37
37
  type: Component,
38
38
  args: [{ template: "<ng-container *ngIf=\"mode === 'widget'; else edit\">\r\n</ng-container>\r\n<!---->\r\n<ng-template #edit>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field *ngIf=\"cubes.length>1\">\r\n <mat-label>{{'Cube'|translate}}</mat-label>\r\n <mat-select formControlName=\"cube\">\r\n <mat-option *ngFor=\"let c of cubes\" [value]=\"c\">{{c.title}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <bizdoc-designer-cube-filter *ngIf=\"cube\" [cube]=\"cube\" [form]=\"form.get('filters')\"></bizdoc-designer-cube-filter>\r\n </form>\r\n</ng-template>\r\n" }]
39
39
  }] });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRzLXdpZGdldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvZWxlbWVudHMvZG9jdW1lbnRzLXdpZGdldC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvZWxlbWVudHMvZG9jdW1lbnRzLXdpZGdldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFbEQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7Ozs7OztJQUtuRCw4QkFBOEIsU0FBOUIsOEJBQStCLFNBQVEsNEJBQXdEOzs7UUFDakcsU0FBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO1lBQzdCLElBQUksRUFBRSxJQUFJO1lBQ1YsT0FBTyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMzQixNQUFNLEVBQUUsSUFBSTtZQUNaLEtBQUssRUFBRSxJQUFJO1lBQ1gsSUFBSSxFQUFFLElBQUk7WUFDVixPQUFPLEVBQUUsSUFBSTtTQUNkLENBQUMsQ0FBQztLQU1KO0lBSkMsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1FBQ3hDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNuQixDQUFDO0NBQ0YsQ0FBQTsySEFkWSw4QkFBOEI7K0dBQTlCLDhCQUE4QiwyRUNSM0Msb25CQWNBO0FETmEsOEJBQThCO0lBRDFDLE1BQU0sQ0FBQyxFQUFFLFFBQVEsRUFBRSwyQkFBMkIsRUFBRSxDQUFDO0dBQ3JDLDhCQUE4QixDQWMxQztTQWRZLDhCQUE4QjsyRkFBOUIsOEJBQThCO2tCQUYxQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBCaXpEb2MgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9kZWNvcmF0b3JzXCI7XHJcbmltcG9ydCB7IEN1YmVEb2N1bWVudHNTZXR0aW5nc01vZGVsIH0gZnJvbSBcIi4uLy4uLy4uL2Rhc2hib2FyZC9jdWJlL2RvY3VtZW50cy53aWRnZXRcIjtcclxuaW1wb3J0IHsgRGVzaWduZXJDdWJlRWxlbWVudENvbXBvbmVudCB9IGZyb20gXCIuLi9kZXNpZ25lci5iYXNlXCI7XHJcbmltcG9ydCB7IEVsZW1lbnRJbmZvIH0gZnJvbSBcIi4uL2RlY2xhcmF0aW9uc1wiO1xyXG5cclxuQENvbXBvbmVudCh7IHRlbXBsYXRlVXJsOiAnZG9jdW1lbnRzLXdpZGdldC5jb21wb25lbnQuaHRtbCcgfSlcclxuQEJpekRvYyh7IHNlbGVjdG9yOiAnZG9jdW1lbnRzLXdpZGdldC1kZXNpZ25lcicgfSlcclxuZXhwb3J0IGNsYXNzIERvY3VtZW50c1dpZGdldERlc2lnbkNvbXBvbmVudCBleHRlbmRzIERlc2lnbmVyQ3ViZUVsZW1lbnRDb21wb25lbnQ8Q3ViZURvY3VtZW50c1NldHRpbmdzTW9kZWw+IGltcGxlbWVudHMgT25Jbml0IHtcclxuICByZWFkb25seSBmb3JtID0gdGhpcy5fZmIuZ3JvdXAoe1xyXG4gICAgY3ViZTogbnVsbCxcclxuICAgIGZpbHRlcnM6IHRoaXMuX2ZiLmdyb3VwKHt9KSxcclxuICAgIHN0YXRlczogbnVsbCxcclxuICAgIHNjb3BlOiBudWxsLFxyXG4gICAgdGFrZTogbnVsbCxcclxuICAgIHBlbmRpbmc6IG51bGxcclxuICB9KTtcclxuICBzdGF0ZXM6IEVsZW1lbnRJbmZvW107XHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnN0YXRlcyA9IHRoaXMuX3JlZi5kZXNpZ25lci5zdGF0ZXM7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gIH1cclxufVxyXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwibW9kZSA9PT0gJ3dpZGdldCc7IGVsc2UgZWRpdFwiPlxyXG48L25nLWNvbnRhaW5lcj5cclxuPCEtLS0tPlxyXG48bmctdGVtcGxhdGUgI2VkaXQ+XHJcbiAgPGZvcm0gYXV0b2NvbXBsZXRlPVwib2ZmXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCIgY2xhc3M9XCJjb2x1bW5cIj5cclxuICAgIDxtYXQtZm9ybS1maWVsZCAqbmdJZj1cImN1YmVzLmxlbmd0aD4xXCI+XHJcbiAgICAgIDxtYXQtbGFiZWw+e3snQ3ViZSd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwiY3ViZVwiPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBjIG9mIGN1YmVzXCIgW3ZhbHVlXT1cImNcIj57e2MudGl0bGV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDxiaXpkb2MtZGVzaWduZXItY3ViZS1maWx0ZXIgKm5nSWY9XCJjdWJlXCIgW2N1YmVdPVwiY3ViZVwiIFtmb3JtXT1cImZvcm0uZ2V0KCdmaWx0ZXJzJylcIj48L2JpemRvYy1kZXNpZ25lci1jdWJlLWZpbHRlcj5cclxuICA8L2Zvcm0+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRzLXdpZGdldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvZWxlbWVudHMvZG9jdW1lbnRzLXdpZGdldC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvZWxlbWVudHMvZG9jdW1lbnRzLXdpZGdldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFbEQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7Ozs7OztBQUt6RCxJQUFNLDhCQUE4QixHQUFwQyxNQUFNLDhCQUErQixTQUFRLDRCQUF3RDtJQUFyRzs7UUFDSSxTQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDN0IsSUFBSSxFQUFFLElBQUk7WUFDVixPQUFPLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzNCLE1BQU0sRUFBRSxJQUFJO1lBQ1osS0FBSyxFQUFFLElBQUk7WUFDWCxJQUFJLEVBQUUsSUFBSTtZQUNWLE9BQU8sRUFBRSxJQUFJO1NBQ2QsQ0FBQyxDQUFDO0tBTUo7SUFKQyxRQUFRO1FBQ04sSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFDeEMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ25CLENBQUM7OzJIQWJVLDhCQUE4QjsrR0FBOUIsOEJBQThCLDJFQ1IzQyxvbkJBY0E7QUROYSw4QkFBOEI7SUFEMUMsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLDJCQUEyQixFQUFFLENBQUM7R0FDckMsOEJBQThCLENBYzFDO1NBZFksOEJBQThCOzJGQUE5Qiw4QkFBOEI7a0JBRjFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEJpekRvYyB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2RlY29yYXRvcnNcIjtcclxuaW1wb3J0IHsgQ3ViZURvY3VtZW50c1NldHRpbmdzTW9kZWwgfSBmcm9tIFwiLi4vLi4vLi4vZGFzaGJvYXJkL2N1YmUvZG9jdW1lbnRzLndpZGdldFwiO1xyXG5pbXBvcnQgeyBEZXNpZ25lckN1YmVFbGVtZW50Q29tcG9uZW50IH0gZnJvbSBcIi4uL2Rlc2lnbmVyLmJhc2VcIjtcclxuaW1wb3J0IHsgRWxlbWVudEluZm8gfSBmcm9tIFwiLi4vZGVjbGFyYXRpb25zXCI7XHJcblxyXG5AQ29tcG9uZW50KHsgdGVtcGxhdGVVcmw6ICdkb2N1bWVudHMtd2lkZ2V0LmNvbXBvbmVudC5odG1sJyB9KVxyXG5AQml6RG9jKHsgc2VsZWN0b3I6ICdkb2N1bWVudHMtd2lkZ2V0LWRlc2lnbmVyJyB9KVxyXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRzV2lkZ2V0RGVzaWduQ29tcG9uZW50IGV4dGVuZHMgRGVzaWduZXJDdWJlRWxlbWVudENvbXBvbmVudDxDdWJlRG9jdW1lbnRzU2V0dGluZ3NNb2RlbD4gaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHJlYWRvbmx5IGZvcm0gPSB0aGlzLl9mYi5ncm91cCh7XHJcbiAgICBjdWJlOiBudWxsLFxyXG4gICAgZmlsdGVyczogdGhpcy5fZmIuZ3JvdXAoe30pLFxyXG4gICAgc3RhdGVzOiBudWxsLFxyXG4gICAgc2NvcGU6IG51bGwsXHJcbiAgICB0YWtlOiBudWxsLFxyXG4gICAgcGVuZGluZzogbnVsbFxyXG4gIH0pO1xyXG4gIHN0YXRlczogRWxlbWVudEluZm9bXTtcclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc3RhdGVzID0gdGhpcy5fcmVmLmRlc2lnbmVyLnN0YXRlcztcclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgfVxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJtb2RlID09PSAnd2lkZ2V0JzsgZWxzZSBlZGl0XCI+XHJcbjwvbmctY29udGFpbmVyPlxyXG48IS0tLS0+XHJcbjxuZy10ZW1wbGF0ZSAjZWRpdD5cclxuICA8Zm9ybSBhdXRvY29tcGxldGU9XCJvZmZcIiBbZm9ybUdyb3VwXT1cImZvcm1cIiBjbGFzcz1cImNvbHVtblwiPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkICpuZ0lmPVwiY3ViZXMubGVuZ3RoPjFcIj5cclxuICAgICAgPG1hdC1sYWJlbD57eydDdWJlJ3x0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxyXG4gICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJjdWJlXCI+XHJcbiAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGMgb2YgY3ViZXNcIiBbdmFsdWVdPVwiY1wiPnt7Yy50aXRsZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPGJpemRvYy1kZXNpZ25lci1jdWJlLWZpbHRlciAqbmdJZj1cImN1YmVcIiBbY3ViZV09XCJjdWJlXCIgW2Zvcm1dPVwiZm9ybS5nZXQoJ2ZpbHRlcnMnKVwiPjwvYml6ZG9jLWRlc2lnbmVyLWN1YmUtZmlsdGVyPlxyXG4gIDwvZm9ybT5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
@@ -22,14 +22,14 @@ let ExploreViewDesignComponent = class ExploreViewDesignComponent extends Design
22
22
  });
23
23
  }
24
24
  };
25
- ExploreViewDesignComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ExploreViewDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
26
- ExploreViewDesignComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: ExploreViewDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"mode === 'widget'; else edit\">\r\n <dl>\r\n </dl>\r\n</div>\r\n<ng-template #edit>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field *ngIf=\"cubes.length>1\">\r\n <mat-label>{{'Cube'|translate}}</mat-label>\r\n <mat-select required (selectionChange)=\"cubeSelected($event)\">\r\n <mat-option *ngFor=\"let c of cubes\" [value]=\"c\">{{c.title}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Aggregate'|translate}}</mat-label>\r\n <mat-select formControlName=\"aggregate\" multiple>\r\n <mat-option *ngFor=\"let a of cube?.axes\" [value]=\"a.name\">{{a.title }}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <bizdoc-designer-cube-filter *ngIf=\"cube\" [cube]=\"cube\" [form]=\"form.get('filters')\"></bizdoc-designer-cube-filter>\r\n </form>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i6.DesignerCubeFilterComponent, selector: "bizdoc-designer-cube-filter", inputs: ["cube", "form"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] });
25
+ ExploreViewDesignComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: ExploreViewDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
26
+ ExploreViewDesignComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: ExploreViewDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"mode === 'widget'; else edit\">\r\n <dl>\r\n </dl>\r\n</div>\r\n<ng-template #edit>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field *ngIf=\"cubes.length>1\">\r\n <mat-label>{{'Cube'|translate}}</mat-label>\r\n <mat-select required (selectionChange)=\"cubeSelected($event)\">\r\n <mat-option *ngFor=\"let c of cubes\" [value]=\"c\">{{c.title}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Aggregate'|translate}}</mat-label>\r\n <mat-select formControlName=\"aggregate\" multiple>\r\n <mat-option *ngFor=\"let a of cube?.axes\" [value]=\"a.name\">{{a.title }}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <bizdoc-designer-cube-filter *ngIf=\"cube\" [cube]=\"cube\" [form]=\"form.get('filters')\"></bizdoc-designer-cube-filter>\r\n </form>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i6.DesignerCubeFilterComponent, selector: "bizdoc-designer-cube-filter", inputs: ["cube", "form"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] });
27
27
  ExploreViewDesignComponent = __decorate([
28
28
  BizDoc({ selector: 'explore-view-designer' })
29
29
  ], ExploreViewDesignComponent);
30
30
  export { ExploreViewDesignComponent };
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ExploreViewDesignComponent, decorators: [{
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: ExploreViewDesignComponent, decorators: [{
32
32
  type: Component,
33
33
  args: [{ template: "<div *ngIf=\"mode === 'widget'; else edit\">\r\n <dl>\r\n </dl>\r\n</div>\r\n<ng-template #edit>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field *ngIf=\"cubes.length>1\">\r\n <mat-label>{{'Cube'|translate}}</mat-label>\r\n <mat-select required (selectionChange)=\"cubeSelected($event)\">\r\n <mat-option *ngFor=\"let c of cubes\" [value]=\"c\">{{c.title}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Aggregate'|translate}}</mat-label>\r\n <mat-select formControlName=\"aggregate\" multiple>\r\n <mat-option *ngFor=\"let a of cube?.axes\" [value]=\"a.name\">{{a.title }}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <bizdoc-designer-cube-filter *ngIf=\"cube\" [cube]=\"cube\" [form]=\"form.get('filters')\"></bizdoc-designer-cube-filter>\r\n </form>\r\n</ng-template>\r\n" }]
34
34
  }] });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbG9yZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvYWRtaW4vY29uZmlndXJhdGlvbi1kZXNpZ25lci9lbGVtZW50cy9leHBsb3JlLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9jb25maWd1cmF0aW9uLWRlc2lnbmVyL2VsZW1lbnRzL2V4cGxvcmUtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFbEQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7Ozs7OztJQUluRCwwQkFBMEIsU0FBMUIsMEJBQTJCLFNBQVEsNEJBQWtEOzs7UUFDdkYsU0FBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO1lBQzdCLElBQUksRUFBRSxJQUFJO1lBQ1YsT0FBTyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMzQixTQUFTLEVBQUUsSUFBSTtZQUNmLFFBQVEsRUFBRSxDQUFDO1lBQ1gsS0FBSyxFQUFFLElBQUk7U0FDWixDQUFDLENBQUM7S0FDSjtDQUFBLENBQUE7dUhBUlksMEJBQTBCOzJHQUExQiwwQkFBMEIsMkVDUHZDLHk2QkFxQkE7QURkYSwwQkFBMEI7SUFEdEMsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLHVCQUF1QixFQUFFLENBQUM7R0FDakMsMEJBQTBCLENBUXRDO1NBUlksMEJBQTBCOzJGQUExQiwwQkFBMEI7a0JBRnRDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEJpekRvYyB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2RlY29yYXRvcnNcIjtcclxuaW1wb3J0IHsgRXhwbG9yZVNldHRpbmdzTW9kZWwgfSBmcm9tIFwiLi4vLi4vLi4vdmlld3MvY3ViZS9leHBsb3JlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBEZXNpZ25lckN1YmVFbGVtZW50Q29tcG9uZW50IH0gZnJvbSBcIi4uL2Rlc2lnbmVyLmJhc2VcIjtcclxuXHJcbkBDb21wb25lbnQoeyB0ZW1wbGF0ZVVybDogJ2V4cGxvcmUtdmlldy5jb21wb25lbnQuaHRtbCcgfSlcclxuQEJpekRvYyh7IHNlbGVjdG9yOiAnZXhwbG9yZS12aWV3LWRlc2lnbmVyJyB9KVxyXG5leHBvcnQgY2xhc3MgRXhwbG9yZVZpZXdEZXNpZ25Db21wb25lbnQgZXh0ZW5kcyBEZXNpZ25lckN1YmVFbGVtZW50Q29tcG9uZW50PEV4cGxvcmVTZXR0aW5nc01vZGVsPiBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcmVhZG9ubHkgZm9ybSA9IHRoaXMuX2ZiLmdyb3VwKHtcclxuICAgIGN1YmU6IG51bGwsXHJcbiAgICBmaWx0ZXJzOiB0aGlzLl9mYi5ncm91cCh7fSksXHJcbiAgICBhZ2dyZWdhdGU6IG51bGwsXHJcbiAgICBwYWdlU2l6ZTogNSxcclxuICAgIHNjb3BlOiBudWxsXHJcbiAgfSk7XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cIm1vZGUgPT09ICd3aWRnZXQnOyBlbHNlIGVkaXRcIj5cclxuICA8ZGw+XHJcbiAgPC9kbD5cclxuPC9kaXY+XHJcbjxuZy10ZW1wbGF0ZSAjZWRpdD5cclxuICA8Zm9ybSBhdXRvY29tcGxldGU9XCJvZmZcIiBbZm9ybUdyb3VwXT1cImZvcm1cIiBjbGFzcz1cImNvbHVtblwiPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkICpuZ0lmPVwiY3ViZXMubGVuZ3RoPjFcIj5cclxuICAgICAgPG1hdC1sYWJlbD57eydDdWJlJ3x0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxyXG4gICAgICA8bWF0LXNlbGVjdCByZXF1aXJlZCAoc2VsZWN0aW9uQ2hhbmdlKT1cImN1YmVTZWxlY3RlZCgkZXZlbnQpXCI+XHJcbiAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGMgb2YgY3ViZXNcIiBbdmFsdWVdPVwiY1wiPnt7Yy50aXRsZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8bWF0LWxhYmVsPnt7J0FnZ3JlZ2F0ZSd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwiYWdncmVnYXRlXCIgbXVsdGlwbGU+XHJcbiAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGEgb2YgY3ViZT8uYXhlc1wiIFt2YWx1ZV09XCJhLm5hbWVcIj57e2EudGl0bGUgfX08L21hdC1vcHRpb24+XHJcbiAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8Yml6ZG9jLWRlc2lnbmVyLWN1YmUtZmlsdGVyICpuZ0lmPVwiY3ViZVwiIFtjdWJlXT1cImN1YmVcIiBbZm9ybV09XCJmb3JtLmdldCgnZmlsdGVycycpXCI+PC9iaXpkb2MtZGVzaWduZXItY3ViZS1maWx0ZXI+XHJcbiAgPC9mb3JtPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbG9yZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvYWRtaW4vY29uZmlndXJhdGlvbi1kZXNpZ25lci9lbGVtZW50cy9leHBsb3JlLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9jb25maWd1cmF0aW9uLWRlc2lnbmVyL2VsZW1lbnRzL2V4cGxvcmUtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFbEQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7Ozs7OztBQUl6RCxJQUFNLDBCQUEwQixHQUFoQyxNQUFNLDBCQUEyQixTQUFRLDRCQUFrRDtJQUEzRjs7UUFDSSxTQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDN0IsSUFBSSxFQUFFLElBQUk7WUFDVixPQUFPLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzNCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsUUFBUSxFQUFFLENBQUM7WUFDWCxLQUFLLEVBQUUsSUFBSTtTQUNaLENBQUMsQ0FBQztLQUNKOzt1SEFSWSwwQkFBMEI7MkdBQTFCLDBCQUEwQiwyRUNQdkMseTZCQXFCQTtBRGRhLDBCQUEwQjtJQUR0QyxNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsdUJBQXVCLEVBQUUsQ0FBQztHQUNqQywwQkFBMEIsQ0FRdEM7U0FSWSwwQkFBMEI7MkZBQTFCLDBCQUEwQjtrQkFGdEMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQml6RG9jIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvZGVjb3JhdG9yc1wiO1xyXG5pbXBvcnQgeyBFeHBsb3JlU2V0dGluZ3NNb2RlbCB9IGZyb20gXCIuLi8uLi8uLi92aWV3cy9jdWJlL2V4cGxvcmUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IERlc2lnbmVyQ3ViZUVsZW1lbnRDb21wb25lbnQgfSBmcm9tIFwiLi4vZGVzaWduZXIuYmFzZVwiO1xyXG5cclxuQENvbXBvbmVudCh7IHRlbXBsYXRlVXJsOiAnZXhwbG9yZS12aWV3LmNvbXBvbmVudC5odG1sJyB9KVxyXG5AQml6RG9jKHsgc2VsZWN0b3I6ICdleHBsb3JlLXZpZXctZGVzaWduZXInIH0pXHJcbmV4cG9ydCBjbGFzcyBFeHBsb3JlVmlld0Rlc2lnbkNvbXBvbmVudCBleHRlbmRzIERlc2lnbmVyQ3ViZUVsZW1lbnRDb21wb25lbnQ8RXhwbG9yZVNldHRpbmdzTW9kZWw+IGltcGxlbWVudHMgT25Jbml0IHtcclxuICByZWFkb25seSBmb3JtID0gdGhpcy5fZmIuZ3JvdXAoe1xyXG4gICAgY3ViZTogbnVsbCxcclxuICAgIGZpbHRlcnM6IHRoaXMuX2ZiLmdyb3VwKHt9KSxcclxuICAgIGFnZ3JlZ2F0ZTogbnVsbCxcclxuICAgIHBhZ2VTaXplOiA1LFxyXG4gICAgc2NvcGU6IG51bGxcclxuICB9KTtcclxufVxyXG4iLCI8ZGl2ICpuZ0lmPVwibW9kZSA9PT0gJ3dpZGdldCc7IGVsc2UgZWRpdFwiPlxyXG4gIDxkbD5cclxuICA8L2RsPlxyXG48L2Rpdj5cclxuPG5nLXRlbXBsYXRlICNlZGl0PlxyXG4gIDxmb3JtIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNsYXNzPVwiY29sdW1uXCI+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQgKm5nSWY9XCJjdWJlcy5sZW5ndGg+MVwiPlxyXG4gICAgICA8bWF0LWxhYmVsPnt7J0N1YmUnfHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XHJcbiAgICAgIDxtYXQtc2VsZWN0IHJlcXVpcmVkIChzZWxlY3Rpb25DaGFuZ2UpPVwiY3ViZVNlbGVjdGVkKCRldmVudClcIj5cclxuICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgYyBvZiBjdWJlc1wiIFt2YWx1ZV09XCJjXCI+e3tjLnRpdGxlfX08L21hdC1vcHRpb24+XHJcbiAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxtYXQtbGFiZWw+e3snQWdncmVnYXRlJ3x0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxyXG4gICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJhZ2dyZWdhdGVcIiBtdWx0aXBsZT5cclxuICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgYSBvZiBjdWJlPy5heGVzXCIgW3ZhbHVlXT1cImEubmFtZVwiPnt7YS50aXRsZSB9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDxiaXpkb2MtZGVzaWduZXItY3ViZS1maWx0ZXIgKm5nSWY9XCJjdWJlXCIgW2N1YmVdPVwiY3ViZVwiIFtmb3JtXT1cImZvcm0uZ2V0KCdmaWx0ZXJzJylcIj48L2JpemRvYy1kZXNpZ25lci1jdWJlLWZpbHRlcj5cclxuICA8L2Zvcm0+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
@@ -48,9 +48,9 @@ export class FolderDesignComponent extends DesignerTypeElementComponent {
48
48
  this.form.get('filters.cube').setValue(this.cube.name);
49
49
  }
50
50
  }
51
- FolderDesignComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: FolderDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
52
- FolderDesignComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: FolderDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\" [icon]=\"true\">\r\n <ng-template bizdocEditContent>\r\n <ng-container *ngIf=\"view; else main\">\r\n <h2 class=\"mat-title\">{{context.title|translate}}</h2>\r\n <div (document:keydown.escape)=\"closeView($event)\" #element class=\"column\">\r\n <ng-container *ngTemplateOutlet=\"view; context: context\"></ng-container>\r\n </div>\r\n <div class=\"row actions\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"closeView()\" type=\"button\" [bizdocTooltip]=\"'Back'|translate\"><mat-icon>keyboard_return</mat-icon></button>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n</bizdoc-designer-element>\r\n<!---->\r\n<ng-template #main>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <ng-container formGroupName=\"filters\" *ngIf=\"cubes.length\" class=\"column\">\r\n <h2 class=\"mat-title\">{{'Filters'|translate}}</h2>\r\n <mat-form-field *ngIf=\"cubes.length>1\">\r\n <mat-label>{{'Cube'|translate}}</mat-label>\r\n <mat-select (selectionChange)=\"cubeSelected($event)\">\r\n <mat-option>{{'None'|translate}}</mat-option>\r\n <mat-option *ngFor=\"let c of cubes\" [value]=\"c\">{{c.title}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Axes'|translate}}</mat-label>\r\n <mat-select formControlName=\"axes\" multiple>\r\n <mat-option *ngFor=\"let a of cube?.axes\" [value]=\"a.name\">{{a.title}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </ng-container>\r\n <h2 class=\"mat-title row\">\r\n {{'Columns'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add(columns, newColumn(), 'Column', columnform)\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\r\n </h2>\r\n <table formArrayName=\"columns\" class=\"mat-table\" cdkDropList (cdkDropListDropped)=\"drop($event, columns)\">\r\n <tr class=\"mat-row\" *ngFor=\"let c of columns.controls; index as index\" [formGroup]=\"c\" cdkDrag>\r\n <td class=\"mat-cell\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td class=\"mat-cell flex\" width=\"99%\">\r\n {{c.get('title').value}}\r\n </td>\r\n <td class=\"mat-cell\" style=\"white-space: pre;\">\r\n <button mat-icon-button (click)=\"edit(c, 'Column', columnform)\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\r\n <button mat-icon-button (click)=\"columns.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </tr>\r\n </table>\r\n </form>\r\n</ng-template>\r\n<ng-template #columnform let-form>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required [matAutocomplete]=\"names\" />\r\n <mat-autocomplete #names=\"matAutocomplete\" (optionSelected)=\"form.get('title').setValue($event.option.getLabel())\">\r\n <mat-option value=\"number\">{{'Number'|translate}}</mat-option>\r\n <mat-option value=\"subject\">{{'Subject'|translate}}</mat-option>\r\n <mat-option value=\"value\">{{'Value'|translate}}</mat-option>\r\n <mat-option value=\"owner\">{{'Owner'|translate}}</mat-option>\r\n <mat-option value=\"sender\">{{'Sender'|translate}}</mat-option>\r\n <mat-option value=\"received\">{{'Received'|translate}}</mat-option>\r\n <mat-option value=\"receivedAgo\">{{'ReceivedAgo'|translate}}</mat-option>\r\n <mat-option value=\"replied\">{{'Replied'|translate}}</mat-option>\r\n <mat-option value=\"state\">{{'State'|translate}}</mat-option>\r\n <mat-option value=\"issued\">{{'Issued'|translate}}</mat-option>\r\n <mat-option value=\"issuedAgo\">{{'IssuedAgo'|translate}}</mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field>\r\n <mat-label>{{'DataType'|translate}}</mat-label>\r\n <mat-select formControlName=\"type\">\r\n <mat-option value=\"String\">{{'Text'}}</mat-option>\r\n <mat-option value=\"Decimal\">{{'Numeric'}}</mat-option>\r\n <mat-option value=\"Date\">{{'Date'}}</mat-option>\r\n <mat-option value=\"Boolean\">{{'Boolean'}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </form>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i3.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: i3.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: i3.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i4.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i4.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i11.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "directive", type: i12.EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "component", type: i12.DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form"], outputs: ["continue", "save"] }, { kind: "pipe", type: i13.TranslatePipe, name: "translate" }] });
53
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: FolderDesignComponent, decorators: [{
51
+ FolderDesignComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: FolderDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
52
+ FolderDesignComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: FolderDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\" [icon]=\"true\">\r\n <ng-template bizdocEditContent>\r\n <ng-container *ngIf=\"view; else main\">\r\n <h2 class=\"mat-title\">{{context.title|translate}}</h2>\r\n <div (document:keydown.escape)=\"closeView($event)\" #element class=\"column\">\r\n <ng-container *ngTemplateOutlet=\"view; context: context\"></ng-container>\r\n </div>\r\n <div class=\"row actions\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"closeView()\" type=\"button\" [bizdocTooltip]=\"'Back'|translate\"><mat-icon>keyboard_return</mat-icon></button>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n</bizdoc-designer-element>\r\n<!---->\r\n<ng-template #main>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <ng-container formGroupName=\"filters\" *ngIf=\"cubes.length\" class=\"column\">\r\n <h2 class=\"mat-title\">{{'Filters'|translate}}</h2>\r\n <mat-form-field *ngIf=\"cubes.length>1\">\r\n <mat-label>{{'Cube'|translate}}</mat-label>\r\n <mat-select (selectionChange)=\"cubeSelected($event)\">\r\n <mat-option>{{'None'|translate}}</mat-option>\r\n <mat-option *ngFor=\"let c of cubes\" [value]=\"c\">{{c.title}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Axes'|translate}}</mat-label>\r\n <mat-select formControlName=\"axes\" multiple>\r\n <mat-option *ngFor=\"let a of cube?.axes\" [value]=\"a.name\">{{a.title}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </ng-container>\r\n <h2 class=\"mat-title row\">\r\n {{'Columns'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add(columns, newColumn(), 'Column', columnform)\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\r\n </h2>\r\n <table formArrayName=\"columns\" class=\"mat-table\" cdkDropList (cdkDropListDropped)=\"drop($event, columns)\">\r\n <tr class=\"mat-row\" *ngFor=\"let c of columns.controls; index as index\" [formGroup]=\"c\" cdkDrag>\r\n <td class=\"mat-cell\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td class=\"mat-cell flex\" width=\"99%\">\r\n {{c.get('title').value}}\r\n </td>\r\n <td class=\"mat-cell\" style=\"white-space: pre;\">\r\n <button mat-icon-button (click)=\"edit(c, 'Column', columnform)\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\r\n <button mat-icon-button (click)=\"columns.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </tr>\r\n </table>\r\n </form>\r\n</ng-template>\r\n<ng-template #columnform let-form>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required [matAutocomplete]=\"names\" />\r\n <mat-autocomplete #names=\"matAutocomplete\" (optionSelected)=\"form.get('title').setValue($event.option.getLabel())\">\r\n <mat-option value=\"number\">{{'Number'|translate}}</mat-option>\r\n <mat-option value=\"subject\">{{'Subject'|translate}}</mat-option>\r\n <mat-option value=\"value\">{{'Value'|translate}}</mat-option>\r\n <mat-option value=\"owner\">{{'Owner'|translate}}</mat-option>\r\n <mat-option value=\"sender\">{{'Sender'|translate}}</mat-option>\r\n <mat-option value=\"received\">{{'Received'|translate}}</mat-option>\r\n <mat-option value=\"receivedAgo\">{{'ReceivedAgo'|translate}}</mat-option>\r\n <mat-option value=\"replied\">{{'Replied'|translate}}</mat-option>\r\n <mat-option value=\"state\">{{'State'|translate}}</mat-option>\r\n <mat-option value=\"issued\">{{'Issued'|translate}}</mat-option>\r\n <mat-option value=\"issuedAgo\">{{'IssuedAgo'|translate}}</mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field>\r\n <mat-label>{{'DataType'|translate}}</mat-label>\r\n <mat-select formControlName=\"type\">\r\n <mat-option value=\"String\">{{'Text'}}</mat-option>\r\n <mat-option value=\"Decimal\">{{'Numeric'}}</mat-option>\r\n <mat-option value=\"Date\">{{'Date'}}</mat-option>\r\n <mat-option value=\"Boolean\">{{'Boolean'}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </form>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i3.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: i3.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: i3.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i4.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i4.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i11.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "directive", type: i12.EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "component", type: i12.DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form"], outputs: ["continue", "save"] }, { kind: "pipe", type: i13.TranslatePipe, name: "translate" }] });
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: FolderDesignComponent, decorators: [{
54
54
  type: Component,
55
55
  args: [{ template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\" [icon]=\"true\">\r\n <ng-template bizdocEditContent>\r\n <ng-container *ngIf=\"view; else main\">\r\n <h2 class=\"mat-title\">{{context.title|translate}}</h2>\r\n <div (document:keydown.escape)=\"closeView($event)\" #element class=\"column\">\r\n <ng-container *ngTemplateOutlet=\"view; context: context\"></ng-container>\r\n </div>\r\n <div class=\"row actions\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"closeView()\" type=\"button\" [bizdocTooltip]=\"'Back'|translate\"><mat-icon>keyboard_return</mat-icon></button>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n</bizdoc-designer-element>\r\n<!---->\r\n<ng-template #main>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <ng-container formGroupName=\"filters\" *ngIf=\"cubes.length\" class=\"column\">\r\n <h2 class=\"mat-title\">{{'Filters'|translate}}</h2>\r\n <mat-form-field *ngIf=\"cubes.length>1\">\r\n <mat-label>{{'Cube'|translate}}</mat-label>\r\n <mat-select (selectionChange)=\"cubeSelected($event)\">\r\n <mat-option>{{'None'|translate}}</mat-option>\r\n <mat-option *ngFor=\"let c of cubes\" [value]=\"c\">{{c.title}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Axes'|translate}}</mat-label>\r\n <mat-select formControlName=\"axes\" multiple>\r\n <mat-option *ngFor=\"let a of cube?.axes\" [value]=\"a.name\">{{a.title}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </ng-container>\r\n <h2 class=\"mat-title row\">\r\n {{'Columns'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add(columns, newColumn(), 'Column', columnform)\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\r\n </h2>\r\n <table formArrayName=\"columns\" class=\"mat-table\" cdkDropList (cdkDropListDropped)=\"drop($event, columns)\">\r\n <tr class=\"mat-row\" *ngFor=\"let c of columns.controls; index as index\" [formGroup]=\"c\" cdkDrag>\r\n <td class=\"mat-cell\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td class=\"mat-cell flex\" width=\"99%\">\r\n {{c.get('title').value}}\r\n </td>\r\n <td class=\"mat-cell\" style=\"white-space: pre;\">\r\n <button mat-icon-button (click)=\"edit(c, 'Column', columnform)\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\r\n <button mat-icon-button (click)=\"columns.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </tr>\r\n </table>\r\n </form>\r\n</ng-template>\r\n<ng-template #columnform let-form>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required [matAutocomplete]=\"names\" />\r\n <mat-autocomplete #names=\"matAutocomplete\" (optionSelected)=\"form.get('title').setValue($event.option.getLabel())\">\r\n <mat-option value=\"number\">{{'Number'|translate}}</mat-option>\r\n <mat-option value=\"subject\">{{'Subject'|translate}}</mat-option>\r\n <mat-option value=\"value\">{{'Value'|translate}}</mat-option>\r\n <mat-option value=\"owner\">{{'Owner'|translate}}</mat-option>\r\n <mat-option value=\"sender\">{{'Sender'|translate}}</mat-option>\r\n <mat-option value=\"received\">{{'Received'|translate}}</mat-option>\r\n <mat-option value=\"receivedAgo\">{{'ReceivedAgo'|translate}}</mat-option>\r\n <mat-option value=\"replied\">{{'Replied'|translate}}</mat-option>\r\n <mat-option value=\"state\">{{'State'|translate}}</mat-option>\r\n <mat-option value=\"issued\">{{'Issued'|translate}}</mat-option>\r\n <mat-option value=\"issuedAgo\">{{'IssuedAgo'|translate}}</mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field>\r\n <mat-label>{{'DataType'|translate}}</mat-label>\r\n <mat-select formControlName=\"type\">\r\n <mat-option value=\"String\">{{'Text'}}</mat-option>\r\n <mat-option value=\"Decimal\">{{'Numeric'}}</mat-option>\r\n <mat-option value=\"Date\">{{'Date'}}</mat-option>\r\n <mat-option value=\"Boolean\">{{'Boolean'}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </form>\r\n</ng-template>\r\n" }]
56
56
  }] });
@@ -137,21 +137,18 @@ export class FormDesignComponent extends DesignerTypeElementComponent {
137
137
  diagram() {
138
138
  this._router.navigate(['admin/forms', this.model.name]);
139
139
  }
140
- design() {
141
- this._router.navigate(['admin/utilities/form-designer'], { queryParams: { formId: this.model.name } });
142
- }
143
140
  ngOnDestroy() {
144
141
  this._destroy.next();
145
142
  this._destroy.complete();
146
143
  }
147
144
  }
148
- FormDesignComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: FormDesignComponent, deps: [{ token: i1.FormBuilder }, { token: i2.PanesRouter }, { token: i3.SystemService }, { token: i4.SessionService }, { token: i0.ElementRef }, { token: DesignerRef }], target: i0.ɵɵFactoryTarget.Component });
149
- FormDesignComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: FormDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\" [icon]=\"true\">\r\n <ng-template bizdocContent>\r\n <ejs-sparkline *ngIf=\"usage\" width='250px' height='200px'\r\n type=\"Line\"\r\n [id]=\"model.name\"\r\n [fill]=\"primary\"\r\n [dataSource]=\"usage\"\r\n xName=\"date\"\r\n yName=\"count\"\r\n lineWidth=\"2\"\r\n valueType=\"DateTime\"\r\n [markerSettings]=\"markerSettings\"\r\n [tooltipSettings]=\"tooltipSettings\"\r\n [enableRtl]=\"enableRtl\">\r\n </ejs-sparkline>\r\n <div class=\"row\">\r\n <button mat-icon-button (click)=\"diagram()\" [bizdocTooltip]=\"'Workflow'|translate\" [disabled]=\"model.draft\"><mat-icon>schema</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"design()\" [bizdocTooltip]=\"'Designer'|translate\" [disabled]=\"model.draft\" *ngIf=\"model.type==='BizDoc.Configuration.Forms.Box'\"><mat-icon>design_services</mat-icon></button>\r\n </div>\r\n </ng-template>\r\n <!--edit-->\r\n <ng-template bizdocEditContent>\r\n <ng-container *ngIf=\"view; else main\">\r\n <h2 class=\"mat-title\">{{context.title|translate}}</h2>\r\n <div (document:keydown.escape)=\"closeView($event)\" #element class=\"column\">\r\n <ng-container *ngTemplateOutlet=\"view; context: context\"></ng-container>\r\n </div>\r\n <div class=\"row actions\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"closeView()\" type=\"button\" [bizdocTooltip]=\"'Back'|translate\"><mat-icon>keyboard_return</mat-icon></button>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n</bizdoc-designer-element>\r\n<!---->\r\n<ng-template #main>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field *ngIf=\"guides.length\">\r\n <mat-label>{{'Guide'|translate}}</mat-label>\r\n <mat-select formControlName=\"guide\">\r\n <mat-option>{{'None'|translate}}</mat-option>\r\n <mat-option *ngFor=\"let g of guides\" [value]=\"g.name\">{{g.title }}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field *ngIf=\"cubes.length\">\r\n <mat-label>{{'Cube'|translate}}</mat-label>\r\n <mat-select formControlName=\"cubes\" multiple>\r\n <mat-option *ngFor=\"let c of cubes\" [value]=\"c.name\">{{c.title }}</mat-option>\r\n </mat-select>\r\n <mat-hint>{{'FormCubeHelp'|translate}}</mat-hint>\r\n </mat-form-field>\r\n <!--Rules-->\r\n <h2 class=\"mat-title row\">\r\n {{'Rules'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add(rules, newRule(), 'Rule', ruleform)\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\r\n </h2>\r\n <table formArrayName=\"rules\" class=\"mat-table\" cdkDropList (cdkDropListDropped)=\"drop($event, rules)\">\r\n <tr class=\"mat-row\" *ngFor=\"let r of rules.controls; index as index\" [formGroup]=\"r\" cdkDrag>\r\n <td class=\"mat-cell\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td class=\"mat-cell flex\" width=\"99%\">\r\n {{r.get('title').value}}\r\n </td>\r\n <td class=\"mat-cell\" style=\"white-space: pre;\">\r\n <button mat-icon-button (click)=\"edit(r, 'Rule', ruleform)\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\r\n <button mat-icon-button (click)=\"rules.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </tr>\r\n </table>\r\n </form>\r\n</ng-template>\r\n<ng-template #ruleform let-form>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <div class=\"row\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n <mat-error *ngIf=\"form.get('title').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n <mat-error *ngIf=\"form.get('name').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n </mat-form-field>\r\n </div>\r\n <mat-form-field class=\"flex\">\r\n <mat-chip-list #chips [attr.aria-label]=\"''\">\r\n <mat-chip *ngFor=\"let r of form.get('roles').value\"\r\n [removable]=\"true\"\r\n (removed)=\"removeRole(form, r)\">\r\n {{titleOf(r)}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip>\r\n <input [placeholder]=\"'Roles'|translate\"\r\n [formControl]=search\r\n #inputrole\r\n [matAutocomplete]=\"nametype\"\r\n [matChipInputFor]=\"chips\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\r\n </mat-chip-list>\r\n <mat-autocomplete #nametype=\"matAutocomplete\" (optionSelected)=\"addRole(form, inputrole, $event)\">\r\n <mat-option *ngFor=\"let r of roles\" [value]=\"r.name\">\r\n {{r.title || r.name}}\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <bizdoc-ace-input [placeholder]=\"'Condition'|translate\" formControlName=\"rule\"></bizdoc-ace-input>\r\n <mat-hint> {{ 'ProgrammableExpression'|translate }}</mat-hint>\r\n </mat-form-field>\r\n </form>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i6.SparklineComponent, selector: "ejs-sparkline", inputs: ["axisSettings", "border", "containerArea", "dataLabelSettings", "dataSource", "enablePersistence", "enableRtl", "endPointColor", "fill", "format", "height", "highPointColor", "lineWidth", "locale", "lowPointColor", "markerSettings", "negativePointColor", "opacity", "padding", "palette", "query", "rangeBandSettings", "rangePadding", "startPointColor", "theme", "tiePointColor", "tooltipSettings", "type", "useGroupingSeparator", "valueType", "width", "xName", "yName"], outputs: ["axisRendering", "dataLabelRendering", "load", "loaded", "markerRendering", "pointRegionMouseClick", "pointRegionMouseMove", "pointRendering", "resize", "seriesRendering", "sparklineMouseClick", "sparklineMouseMove", "tooltipInitialize"] }, { kind: "component", type: i7.MatChipList, selector: "mat-chip-list", inputs: ["role", "aria-describedby", "errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { kind: "directive", type: i7.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "role", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { kind: "directive", type: i7.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i7.MatChipRemove, selector: "[matChipRemove]" }, { kind: "directive", type: i8.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: i8.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: i8.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i9.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i9.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i10.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i11.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i11.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i11.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i11.MatLabel, selector: "mat-label" }, { kind: "component", type: i12.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i13.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i14.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: i15.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i16.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: i17.AceInput, selector: "bizdoc-ace-input", inputs: ["params", "placeholder", "required", "disabled", "value"] }, { kind: "directive", type: i18.EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "directive", type: i18.WidgetContentDirective, selector: "[bizdocContent]" }, { kind: "component", type: i18.DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form"], outputs: ["continue", "save"] }, { kind: "pipe", type: i19.TranslatePipe, name: "translate" }] });
150
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: FormDesignComponent, decorators: [{
145
+ FormDesignComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: FormDesignComponent, deps: [{ token: i1.FormBuilder }, { token: i2.PanesRouter }, { token: i3.SystemService }, { token: i4.SessionService }, { token: i0.ElementRef }, { token: DesignerRef }], target: i0.ɵɵFactoryTarget.Component });
146
+ FormDesignComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: FormDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\" [icon]=\"true\">\r\n <ng-template bizdocContent>\r\n <ejs-sparkline *ngIf=\"usage\" width='250px' height='200px'\r\n type=\"Line\"\r\n [id]=\"model.name\"\r\n [fill]=\"primary\"\r\n [dataSource]=\"usage\"\r\n xName=\"date\"\r\n yName=\"count\"\r\n lineWidth=\"2\"\r\n valueType=\"DateTime\"\r\n [markerSettings]=\"markerSettings\"\r\n [tooltipSettings]=\"tooltipSettings\"\r\n [enableRtl]=\"enableRtl\">\r\n </ejs-sparkline>\r\n <div class=\"row\">\r\n <button mat-icon-button (click)=\"diagram()\" [bizdocTooltip]=\"'Workflow'|translate\" [disabled]=\"model.draft\"><mat-icon>schema</mat-icon></button>\r\n </div>\r\n </ng-template>\r\n <!--edit-->\r\n <ng-template bizdocEditContent>\r\n <ng-container *ngIf=\"view; else main\">\r\n <h2 class=\"mat-title\">{{context.title|translate}}</h2>\r\n <div (document:keydown.escape)=\"closeView($event)\" #element class=\"column\">\r\n <ng-container *ngTemplateOutlet=\"view; context: context\"></ng-container>\r\n </div>\r\n <div class=\"row actions\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"closeView()\" type=\"button\" [bizdocTooltip]=\"'Back'|translate\"><mat-icon>keyboard_return</mat-icon></button>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n</bizdoc-designer-element>\r\n<!---->\r\n<ng-template #main>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field *ngIf=\"guides.length\">\r\n <mat-label>{{'Guide'|translate}}</mat-label>\r\n <mat-select formControlName=\"guide\">\r\n <mat-option>{{'None'|translate}}</mat-option>\r\n <mat-option *ngFor=\"let g of guides\" [value]=\"g.name\">{{g.title }}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field *ngIf=\"cubes.length\">\r\n <mat-label>{{'Cube'|translate}}</mat-label>\r\n <mat-select formControlName=\"cubes\" multiple>\r\n <mat-option *ngFor=\"let c of cubes\" [value]=\"c.name\">{{c.title }}</mat-option>\r\n </mat-select>\r\n <mat-hint>{{'FormCubeHelp'|translate}}</mat-hint>\r\n </mat-form-field>\r\n <!--Rules-->\r\n <h2 class=\"mat-title row\">\r\n {{'Rules'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add(rules, newRule(), 'Rule', ruleform)\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\r\n </h2>\r\n <table formArrayName=\"rules\" class=\"mat-table\" cdkDropList (cdkDropListDropped)=\"drop($event, rules)\">\r\n <tr class=\"mat-row\" *ngFor=\"let r of rules.controls; index as index\" [formGroup]=\"r\" cdkDrag>\r\n <td class=\"mat-cell\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td class=\"mat-cell flex\" width=\"99%\">\r\n {{r.get('title').value}}\r\n </td>\r\n <td class=\"mat-cell\" style=\"white-space: pre;\">\r\n <button mat-icon-button (click)=\"edit(r, 'Rule', ruleform)\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\r\n <button mat-icon-button (click)=\"rules.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </tr>\r\n </table>\r\n </form>\r\n</ng-template>\r\n<ng-template #ruleform let-form>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <div class=\"row\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n <mat-error *ngIf=\"form.get('title').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n <mat-error *ngIf=\"form.get('name').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n </mat-form-field>\r\n </div>\r\n <mat-form-field class=\"flex\">\r\n <mat-chip-list #chips [attr.aria-label]=\"''\">\r\n <mat-chip *ngFor=\"let r of form.get('roles').value\"\r\n [removable]=\"true\"\r\n (removed)=\"removeRole(form, r)\">\r\n {{titleOf(r)}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip>\r\n <input [placeholder]=\"'Roles'|translate\"\r\n [formControl]=search\r\n #inputrole\r\n [matAutocomplete]=\"nametype\"\r\n [matChipInputFor]=\"chips\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\r\n </mat-chip-list>\r\n <mat-autocomplete #nametype=\"matAutocomplete\" (optionSelected)=\"addRole(form, inputrole, $event)\">\r\n <mat-option *ngFor=\"let r of roles\" [value]=\"r.name\">\r\n {{r.title || r.name}}\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <bizdoc-ace-input [placeholder]=\"'Condition'|translate\" formControlName=\"rule\"></bizdoc-ace-input>\r\n <mat-hint> {{ 'ProgrammableExpression'|translate }}</mat-hint>\r\n </mat-form-field>\r\n </form>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i6.SparklineComponent, selector: "ejs-sparkline", inputs: ["axisSettings", "border", "containerArea", "dataLabelSettings", "dataSource", "enablePersistence", "enableRtl", "endPointColor", "fill", "format", "height", "highPointColor", "lineWidth", "locale", "lowPointColor", "markerSettings", "negativePointColor", "opacity", "padding", "palette", "query", "rangeBandSettings", "rangePadding", "startPointColor", "theme", "tiePointColor", "tooltipSettings", "type", "useGroupingSeparator", "valueType", "width", "xName", "yName"], outputs: ["axisRendering", "dataLabelRendering", "load", "loaded", "markerRendering", "pointRegionMouseClick", "pointRegionMouseMove", "pointRendering", "resize", "seriesRendering", "sparklineMouseClick", "sparklineMouseMove", "tooltipInitialize"] }, { kind: "component", type: i7.MatChipList, selector: "mat-chip-list", inputs: ["role", "aria-describedby", "errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { kind: "directive", type: i7.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "role", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { kind: "directive", type: i7.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i7.MatChipRemove, selector: "[matChipRemove]" }, { kind: "directive", type: i8.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: i8.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: i8.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i9.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i9.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i10.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i11.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i11.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i11.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i11.MatLabel, selector: "mat-label" }, { kind: "component", type: i12.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i13.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i14.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: i15.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i16.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: i17.AceInput, selector: "bizdoc-ace-input", inputs: ["params", "placeholder", "required", "disabled", "value"] }, { kind: "directive", type: i18.EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "directive", type: i18.WidgetContentDirective, selector: "[bizdocContent]" }, { kind: "component", type: i18.DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form"], outputs: ["continue", "save"] }, { kind: "pipe", type: i19.TranslatePipe, name: "translate" }] });
147
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: FormDesignComponent, decorators: [{
151
148
  type: Component,
152
- args: [{ template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\" [icon]=\"true\">\r\n <ng-template bizdocContent>\r\n <ejs-sparkline *ngIf=\"usage\" width='250px' height='200px'\r\n type=\"Line\"\r\n [id]=\"model.name\"\r\n [fill]=\"primary\"\r\n [dataSource]=\"usage\"\r\n xName=\"date\"\r\n yName=\"count\"\r\n lineWidth=\"2\"\r\n valueType=\"DateTime\"\r\n [markerSettings]=\"markerSettings\"\r\n [tooltipSettings]=\"tooltipSettings\"\r\n [enableRtl]=\"enableRtl\">\r\n </ejs-sparkline>\r\n <div class=\"row\">\r\n <button mat-icon-button (click)=\"diagram()\" [bizdocTooltip]=\"'Workflow'|translate\" [disabled]=\"model.draft\"><mat-icon>schema</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"design()\" [bizdocTooltip]=\"'Designer'|translate\" [disabled]=\"model.draft\" *ngIf=\"model.type==='BizDoc.Configuration.Forms.Box'\"><mat-icon>design_services</mat-icon></button>\r\n </div>\r\n </ng-template>\r\n <!--edit-->\r\n <ng-template bizdocEditContent>\r\n <ng-container *ngIf=\"view; else main\">\r\n <h2 class=\"mat-title\">{{context.title|translate}}</h2>\r\n <div (document:keydown.escape)=\"closeView($event)\" #element class=\"column\">\r\n <ng-container *ngTemplateOutlet=\"view; context: context\"></ng-container>\r\n </div>\r\n <div class=\"row actions\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"closeView()\" type=\"button\" [bizdocTooltip]=\"'Back'|translate\"><mat-icon>keyboard_return</mat-icon></button>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n</bizdoc-designer-element>\r\n<!---->\r\n<ng-template #main>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field *ngIf=\"guides.length\">\r\n <mat-label>{{'Guide'|translate}}</mat-label>\r\n <mat-select formControlName=\"guide\">\r\n <mat-option>{{'None'|translate}}</mat-option>\r\n <mat-option *ngFor=\"let g of guides\" [value]=\"g.name\">{{g.title }}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field *ngIf=\"cubes.length\">\r\n <mat-label>{{'Cube'|translate}}</mat-label>\r\n <mat-select formControlName=\"cubes\" multiple>\r\n <mat-option *ngFor=\"let c of cubes\" [value]=\"c.name\">{{c.title }}</mat-option>\r\n </mat-select>\r\n <mat-hint>{{'FormCubeHelp'|translate}}</mat-hint>\r\n </mat-form-field>\r\n <!--Rules-->\r\n <h2 class=\"mat-title row\">\r\n {{'Rules'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add(rules, newRule(), 'Rule', ruleform)\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\r\n </h2>\r\n <table formArrayName=\"rules\" class=\"mat-table\" cdkDropList (cdkDropListDropped)=\"drop($event, rules)\">\r\n <tr class=\"mat-row\" *ngFor=\"let r of rules.controls; index as index\" [formGroup]=\"r\" cdkDrag>\r\n <td class=\"mat-cell\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td class=\"mat-cell flex\" width=\"99%\">\r\n {{r.get('title').value}}\r\n </td>\r\n <td class=\"mat-cell\" style=\"white-space: pre;\">\r\n <button mat-icon-button (click)=\"edit(r, 'Rule', ruleform)\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\r\n <button mat-icon-button (click)=\"rules.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </tr>\r\n </table>\r\n </form>\r\n</ng-template>\r\n<ng-template #ruleform let-form>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <div class=\"row\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n <mat-error *ngIf=\"form.get('title').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n <mat-error *ngIf=\"form.get('name').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n </mat-form-field>\r\n </div>\r\n <mat-form-field class=\"flex\">\r\n <mat-chip-list #chips [attr.aria-label]=\"''\">\r\n <mat-chip *ngFor=\"let r of form.get('roles').value\"\r\n [removable]=\"true\"\r\n (removed)=\"removeRole(form, r)\">\r\n {{titleOf(r)}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip>\r\n <input [placeholder]=\"'Roles'|translate\"\r\n [formControl]=search\r\n #inputrole\r\n [matAutocomplete]=\"nametype\"\r\n [matChipInputFor]=\"chips\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\r\n </mat-chip-list>\r\n <mat-autocomplete #nametype=\"matAutocomplete\" (optionSelected)=\"addRole(form, inputrole, $event)\">\r\n <mat-option *ngFor=\"let r of roles\" [value]=\"r.name\">\r\n {{r.title || r.name}}\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <bizdoc-ace-input [placeholder]=\"'Condition'|translate\" formControlName=\"rule\"></bizdoc-ace-input>\r\n <mat-hint> {{ 'ProgrammableExpression'|translate }}</mat-hint>\r\n </mat-form-field>\r\n </form>\r\n</ng-template>\r\n" }]
149
+ args: [{ template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\" [icon]=\"true\">\r\n <ng-template bizdocContent>\r\n <ejs-sparkline *ngIf=\"usage\" width='250px' height='200px'\r\n type=\"Line\"\r\n [id]=\"model.name\"\r\n [fill]=\"primary\"\r\n [dataSource]=\"usage\"\r\n xName=\"date\"\r\n yName=\"count\"\r\n lineWidth=\"2\"\r\n valueType=\"DateTime\"\r\n [markerSettings]=\"markerSettings\"\r\n [tooltipSettings]=\"tooltipSettings\"\r\n [enableRtl]=\"enableRtl\">\r\n </ejs-sparkline>\r\n <div class=\"row\">\r\n <button mat-icon-button (click)=\"diagram()\" [bizdocTooltip]=\"'Workflow'|translate\" [disabled]=\"model.draft\"><mat-icon>schema</mat-icon></button>\r\n </div>\r\n </ng-template>\r\n <!--edit-->\r\n <ng-template bizdocEditContent>\r\n <ng-container *ngIf=\"view; else main\">\r\n <h2 class=\"mat-title\">{{context.title|translate}}</h2>\r\n <div (document:keydown.escape)=\"closeView($event)\" #element class=\"column\">\r\n <ng-container *ngTemplateOutlet=\"view; context: context\"></ng-container>\r\n </div>\r\n <div class=\"row actions\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"closeView()\" type=\"button\" [bizdocTooltip]=\"'Back'|translate\"><mat-icon>keyboard_return</mat-icon></button>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n</bizdoc-designer-element>\r\n<!---->\r\n<ng-template #main>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field *ngIf=\"guides.length\">\r\n <mat-label>{{'Guide'|translate}}</mat-label>\r\n <mat-select formControlName=\"guide\">\r\n <mat-option>{{'None'|translate}}</mat-option>\r\n <mat-option *ngFor=\"let g of guides\" [value]=\"g.name\">{{g.title }}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field *ngIf=\"cubes.length\">\r\n <mat-label>{{'Cube'|translate}}</mat-label>\r\n <mat-select formControlName=\"cubes\" multiple>\r\n <mat-option *ngFor=\"let c of cubes\" [value]=\"c.name\">{{c.title }}</mat-option>\r\n </mat-select>\r\n <mat-hint>{{'FormCubeHelp'|translate}}</mat-hint>\r\n </mat-form-field>\r\n <!--Rules-->\r\n <h2 class=\"mat-title row\">\r\n {{'Rules'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add(rules, newRule(), 'Rule', ruleform)\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\r\n </h2>\r\n <table formArrayName=\"rules\" class=\"mat-table\" cdkDropList (cdkDropListDropped)=\"drop($event, rules)\">\r\n <tr class=\"mat-row\" *ngFor=\"let r of rules.controls; index as index\" [formGroup]=\"r\" cdkDrag>\r\n <td class=\"mat-cell\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td class=\"mat-cell flex\" width=\"99%\">\r\n {{r.get('title').value}}\r\n </td>\r\n <td class=\"mat-cell\" style=\"white-space: pre;\">\r\n <button mat-icon-button (click)=\"edit(r, 'Rule', ruleform)\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\r\n <button mat-icon-button (click)=\"rules.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </tr>\r\n </table>\r\n </form>\r\n</ng-template>\r\n<ng-template #ruleform let-form>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <div class=\"row\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n <mat-error *ngIf=\"form.get('title').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n <mat-error *ngIf=\"form.get('name').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n </mat-form-field>\r\n </div>\r\n <mat-form-field class=\"flex\">\r\n <mat-chip-list #chips [attr.aria-label]=\"''\">\r\n <mat-chip *ngFor=\"let r of form.get('roles').value\"\r\n [removable]=\"true\"\r\n (removed)=\"removeRole(form, r)\">\r\n {{titleOf(r)}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip>\r\n <input [placeholder]=\"'Roles'|translate\"\r\n [formControl]=search\r\n #inputrole\r\n [matAutocomplete]=\"nametype\"\r\n [matChipInputFor]=\"chips\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\r\n </mat-chip-list>\r\n <mat-autocomplete #nametype=\"matAutocomplete\" (optionSelected)=\"addRole(form, inputrole, $event)\">\r\n <mat-option *ngFor=\"let r of roles\" [value]=\"r.name\">\r\n {{r.title || r.name}}\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <bizdoc-ace-input [placeholder]=\"'Condition'|translate\" formControlName=\"rule\"></bizdoc-ace-input>\r\n <mat-hint> {{ 'ProgrammableExpression'|translate }}</mat-hint>\r\n </mat-form-field>\r\n </form>\r\n</ng-template>\r\n" }]
153
150
  }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.PanesRouter }, { type: i3.SystemService }, { type: i4.SessionService }, { type: i0.ElementRef }, { type: i20.DesignerRef, decorators: [{
154
151
  type: Inject,
155
152
  args: [DesignerRef]
156
153
  }] }]; } });
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvZWxlbWVudHMvZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvZWxlbWVudHMvZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUl4RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsV0FBVyxFQUFnQyxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUt6RixNQUFNLE9BQU8sbUJBQW9CLFNBQVEsNEJBQTRCO0lBaUNuRSxZQUFZLEVBQWUsRUFDakIsT0FBb0IsRUFDcEIsUUFBdUIsRUFDdkIsUUFBd0IsRUFDaEMsT0FBd0IsRUFDSCxHQUFnQjtRQUNyQyxLQUFLLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUxoQixZQUFPLEdBQVAsT0FBTyxDQUFhO1FBQ3BCLGFBQVEsR0FBUixRQUFRLENBQWU7UUFDdkIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFuQ3pCLFVBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMzQixTQUFJLEdBQUcsSUFBSSxDQUFD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cm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IEF4aXNTZXR0aW5nc01vZGVsLCBMaW5lU2V0dGluZ3NNb2RlbCwgU3BhcmtsaW5lTWFya2VyU2V0dGluZ3NNb2RlbCwgU3BhcmtsaW5lVG9vbHRpcFNldHRpbmdzTW9kZWwgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItYW5ndWxhci1jaGFydHMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFBhbmVzUm91dGVyIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvc2xvdHMvcm91dGVyLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgU3lzdGVtU2VydmljZSwgUmFuZ2VJbmZvIH0gZnJvbSBcIi4uLy4uL3N5c3RlbS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERlc2lnbmVyVHlwZUVsZW1lbnRDb21wb25lbnQgfSBmcm9tIFwiLi4vZGVzaWduZXIuYmFzZVwiO1xyXG5pbXBvcnQgeyBEZXNpZ25lclJlZiwgRWxlbWVudEluZm8sIFBlcm1pc3Npb25Nb2RlbCwgcHJvZ3JhbU5hbWUgfSBmcm9tIFwiLi4vZGVjbGFyYXRpb25zXCI7XHJcbmltcG9ydCB7IFJvbGUgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9tb2RlbHNcIjtcclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGVcIjtcclxuXHJcbkBDb21wb25lbnQoeyB0ZW1wbGF0ZVVybDogJ2Zvcm0uY29tcG9uZW50Lmh0bWwnIH0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtRGVzaWduQ29tcG9uZW50IGV4dGVuZHMgRGVzaWduZXJUeXBlRWxlbWVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcmVhZG9ubHkgcnVsZXMgPSB0aGlzLl9mYi5hcnJheShbXSk7XHJcbiAgcmVhZG9ubHkgZm9ybSA9IHRoaXMuX2ZiLmdyb3VwKHtcclxuICAgIHJ1bGVzOiB0aGlzLnJ1bGVzLFxyXG4gICAgZ3VpZGU6IG51bGwsXHJcbiAgICBjdWJlczogbnVsbFxyXG4gIH0pO1xyXG4gIHByaXZhdGUgX3JvbGVzOiBSb2xlW107XHJcbiAgcm9sZXM6IFJvbGVbXSA9IFtdO1xyXG4gIHRoZW1lOiAnTWF0ZXJpYWwnIHwgJ01hdGVyaWFsRGFyaycgPSB0aGlzLl9zZXNzaW9uLnRoZW1lLmRhcmsgPyAnTWF0ZXJpYWxEYXJrJyA6ICdNYXRlcmlhbCc7XHJcbiAgcmVhZG9ubHkgYXhpc1NldHRpbmdzID0ge1xyXG4gICAgbGluZVNldHRpbmdzOiB7XHJcbiAgICB9IGFzIExpbmVTZXR0aW5nc01vZGVsLFxyXG4gIH0gYXMgQXhpc1NldHRpbmdzTW9kZWw7XHJcbiAgcmVhZG9ubHkgbWFya2VyU2V0dGluZ3MgPSB7XHJcbiAgICB2aXNpYmxlOiBbJ0FsbCddLFxyXG4gICAgc2l6ZTogMS41LFxyXG4gICAgZmlsbDogdGhpcy5fc2Vzc2lvbi5nZXRBY2NlbnQoKSxcclxuICB9IGFzIFNwYXJrbGluZU1hcmtlclNldHRpbmdzTW9kZWw7XHJcbiAgcmVhZG9ubHkgdG9vbHRpcFNldHRpbmdzID0ge1xyXG4gICAgdmlzaWJsZTogdHJ1ZSxcclxuICAgIGZvcm1hdDogJyR7ZGF0ZX0nLFxyXG4gICAgdHJhY2tMaW5lU2V0dGluZ3M6IHtcclxuICAgICAgdmlzaWJsZTogdHJ1ZVxyXG4gICAgfVxyXG4gIH0gYXMgU3BhcmtsaW5lVG9vbHRpcFNldHRpbmdzTW9kZWw7XHJcbiAgdXNhZ2U6IFJhbmdlSW5mb1tdO1xyXG4gIHJlYWRvbmx5IHNlYXJjaCA9IHRoaXMuX2ZiLmNvbnRyb2wobnVsbCk7XHJcbiAgcHJpbWFyeSA9IHRoaXMuX3Nlc3Npb24uZ2V0UHJpbWVyeSgpO1xyXG4gIHJlYWRvbmx5IGVuYWJsZVJ0bCA9IHRoaXMuX3Nlc3Npb24uaW52ZXJzZTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICByZWFkb25seSBndWlkZXM6IEVsZW1lbnRJbmZvW107XHJcbiAgcmVhZG9ubHkgY3ViZXM6IEVsZW1lbnRJbmZvW107XHJcbiAgY29uc3RydWN0b3IoZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBQYW5lc1JvdXRlcixcclxuICAgIHByaXZhdGUgX3NlcnZpY2U6IFN5c3RlbVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIGVsZW1lbnQ6IEVsZW1lbnRSZWY8YW55PixcclxuICAgIEBJbmplY3QoRGVzaWduZXJSZWYpIHJlZjogRGVzaWduZXJSZWYpIHtcclxuICAgIHN1cGVyKGZiLCBlbGVtZW50LCByZWYpO1xyXG4gICAgdGhpcy5fc2Vzc2lvbi50aGVtZUNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuXHJcbiAgICAgIHN1YnNjcmliZSh0ID0+IHtcclxuICAgICAgICB0aGlzLnRoZW1lID0gdC5kYXJrID8gJ01hdGVyaWFsRGFyaycgOiAnTWF0ZXJpYWwnO1xyXG4gICAgICAgIHRoaXMucHJpbWFyeSA9IHRoaXMuX3Nlc3Npb24uZ2V0UHJpbWVyeSgpO1xyXG4gICAgICB9KTtcclxuICAgIHRoaXMuZ3VpZGVzID0gcmVmLmRlc2lnbmVyLmd1aWRlcztcclxuICAgIHRoaXMuY3ViZXMgPSByZWYuZGVzaWduZXIuY3ViZXM7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ3dpZGdldCcpXHJcbiAgICAgIHRoaXMuX3NlcnZpY2UucmFuZ2UodGhpcy5tb2RlbC5uYW1lKS5zdWJzY3JpYmUociA9PlxyXG4gICAgICAgIHRoaXMudXNhZ2UgPSByKTtcclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLl9zZXJ2aWNlLnJvbGVzKCkuc3Vic2NyaWJlKHIgPT4ge1xyXG4gICAgICAgIHRoaXMuX3JvbGVzID0gci5jb25jYXQoKHRoaXMuX3JlZi5kZXNpZ25lci5yb2xlcykuZmlsdGVyKHIgPT4gIXIuZGlzYWJsZWQpIGFzIGFueSk7XHJcbiAgICAgICAgci5mb3JFYWNoKHIgPT4ge1xyXG4gICAgICAgICAgdGhpcy5fcm9sZXNbci5uYW1lXSA9IHI7XHJcbiAgICAgICAgICByWydfaW5kZXgnXSA9IChyLnRpdGxlIHx8IHIubmFtZSkudG9Mb3dlckNhc2UoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLl9yZWYuZGVzaWduZXIucm9sZXMuZm9yRWFjaChyID0+IHtcclxuICAgICAgICAgIHRoaXMuX3JvbGVzW3IubmFtZV0gPSByIGFzIGFueTtcclxuICAgICAgICAgIHJbJ19pbmRleCddID0gKHIudGl0bGUgfHwgci5uYW1lKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMucm9sZXMgPSB0aGlzLl9yb2xlcy5zbGljZSgpO1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5tb2RlbC5ydWxlcz8uXHJcbiAgICAgICAgZm9yRWFjaChyID0+IHRoaXMucnVsZXMucHVzaCh0aGlzLm5ld1J1bGUociksIHsgZW1pdEV2ZW50OiBmYWxzZSB9KSk7XHJcbiAgICAgIHRoaXMuc2VhcmNoLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSgxNTApKS5zdWJzY3JpYmUodiA9PiB7XHJcbiAgICAgICAgaWYgKHYpIHtcclxuICAgICAgICAgIGNvbnN0IHZhbCA9ICh2IGFzIHN0cmluZykudG9Mb3dlckNhc2UoKTtcclxuICAgICAgICAgIHRoaXMucm9sZXMgPSB0aGlzLl9yb2xlcy5maWx0ZXIociA9PiByWydfaW5kZXgnXS5pbmRleE9mKHZhbCkgPiAtMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIHRoaXMucm9sZXMgPSB0aGlzLl9yb2xlcy5zbGljZSgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgfVxyXG4gIHRpdGxlT2YobmFtZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCByb2xlID0gdGhpcy5fcm9sZXNbbmFtZV07XHJcbiAgICByZXR1cm4gcm9sZT8udGl0bGUgfHwgbmFtZTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGlkXHJcbiAgICovXHJcbiAgcmVtb3ZlUm9sZShncm91cDogRm9ybUdyb3VwLCBpZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCByb2xlcyA9IGdyb3VwLnZhbHVlLnJvbGVzO1xyXG4gICAgY29uc3QgaW5kZXggPSByb2xlcy5pbmRleE9mKGlkKTtcclxuXHJcbiAgICBpZiAoaW5kZXggPj0gMClcclxuICAgICAgcm9sZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIGdyb3VwLnBhdGNoVmFsdWUoe30pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gaW5wXHJcbiAgICogQHBhcmFtIGV2ZW50XHJcbiAgICovXHJcbiAgYWRkUm9sZShncm91cDogRm9ybUdyb3VwLCBpbnA6IEhUTUxJbnB1dEVsZW1lbnQsIGV2ZW50OiBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCByb2xlcyA9IGdyb3VwLnZhbHVlLnJvbGVzO1xyXG4gICAgY29uc3QgaWQgPSBldmVudC5vcHRpb24udmFsdWUgYXMgc3RyaW5nO1xyXG4gICAgaWYgKCFyb2xlcylcclxuICAgICAgZ3JvdXAuY29udHJvbHNbJ3JvbGVzJ10uc2V0VmFsdWUoW2lkXSk7XHJcbiAgICBlbHNlXHJcbiAgICAgIHJvbGVzLnB1c2goaWQpO1xyXG4gICAgaW5wLnZhbHVlID0gJyc7XHJcbiAgICBncm91cC5wYXRjaFZhbHVlKHt9KTtcclxuICB9XHJcbiAgbmV3UnVsZShydWxlPzogUGVybWlzc2lvbk1vZGVsKTogYW55IHtcclxuICAgIGNvbnN0IG5hbWUgPSB0aGlzLl9mYi5jb250cm9sKHJ1bGU/Lm5hbWUsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgICB0aXRsZSA9IHRoaXMuX2ZiLmNvbnRyb2wocnVsZT8udGl0bGUpO1xyXG4gICAgIXJ1bGUgJiYgdGl0bGUudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2ID0+IG5hbWUuc2V0VmFsdWUocHJvZ3JhbU5hbWUodikpKTtcclxuICAgIHJldHVybiB0aGlzLl9mYi5ncm91cCh7XHJcbiAgICAgIG5hbWUsXHJcbiAgICAgIHRpdGxlLFxyXG4gICAgICByb2xlczogcnVsZT8ucm9sZXMsXHJcbiAgICAgIHJ1bGU6IHJ1bGU/LnJ1bGUsXHJcbiAgICB9KTtcclxuICB9XHJcbiAgZGlhZ3JhbSgpIHtcclxuICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJ2FkbWluL2Zvcm1zJywgdGhpcy5tb2RlbC5uYW1lXSk7XHJcbiAgfVxyXG4gIGRlc2lnbigpIHtcclxuICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJ2FkbWluL3V0aWxpdGllcy9mb3JtLWRlc2lnbmVyJ10sIHsgcXVlcnlQYXJhbXM6IHsgZm9ybUlkOiB0aGlzLm1vZGVsLm5hbWUgfSB9KTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIiwiPGJpemRvYy1kZXNpZ25lci1lbGVtZW50IFtmb3JtXT1cImZvcm1cIiBbcHJpdmlsZWdlc109XCJ0cnVlXCIgW2ljb25dPVwidHJ1ZVwiPlxyXG4gIDxuZy10ZW1wbGF0ZSBiaXpkb2NDb250ZW50PlxyXG4gICAgPGVqcy1zcGFya2xpbmUgKm5nSWY9XCJ1c2FnZVwiIHdpZHRoPScyNTBweCcgaGVpZ2h0PScyMDBweCdcclxuICAgICAgICAgICAgICAgICAgIHR5cGU9XCJMaW5lXCJcclxuICAgICAgICAgICAgICAgICAgIFtpZF09XCJtb2RlbC5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgIFtmaWxsXT1cInByaW1hcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgW2RhdGFTb3VyY2VdPVwidXNhZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgeE5hbWU9XCJkYXRlXCJcclxuICAgICAgICAgICAgICAgICAgIHlOYW1lPVwiY291bnRcIlxyXG4gICAgICAgICAgICAgICAgICAgbGluZVdpZHRoPVwiMlwiXHJcbiAgICAgICAgICAgICAgICAgICB2YWx1ZVR5cGU9XCJEYXRlVGltZVwiXHJcbiAgICAgICAgICAgICAgICAgICBbbWFya2VyU2V0dGluZ3NdPVwibWFya2VyU2V0dGluZ3NcIlxyXG4gICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBTZXR0aW5nc109XCJ0b29sdGlwU2V0dGluZ3NcIlxyXG4gICAgICAgICAgICAgICAgICAgW2VuYWJsZVJ0bF09XCJlbmFibGVSdGxcIj5cclxuICAgIDwvZWpzLXNwYXJrbGluZT5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImRpYWdyYW0oKVwiIFtiaXpkb2NUb29sdGlwXT1cIidXb3JrZmxvdyd8dHJhbnNsYXRlXCIgW2Rpc2FibGVkXT1cIm1vZGVsLmRyYWZ0XCI+PG1hdC1pY29uPnNjaGVtYTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiZGl2aWRlclwiPjwvc3Bhbj5cclxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImRlc2lnbigpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ0Rlc2lnbmVyJ3x0cmFuc2xhdGVcIiBbZGlzYWJsZWRdPVwibW9kZWwuZHJhZnRcIiAqbmdJZj1cIm1vZGVsLnR5cGU9PT0nQml6RG9jLkNvbmZpZ3VyYXRpb24uRm9ybXMuQm94J1wiPjxtYXQtaWNvbj5kZXNpZ25fc2VydmljZXM8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuICA8IS0tZWRpdC0tPlxyXG4gIDxuZy10ZW1wbGF0ZSBiaXpkb2NFZGl0Q29udGVudD5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ2aWV3OyBlbHNlIG1haW5cIj5cclxuICAgICAgPGgyIGNsYXNzPVwibWF0LXRpdGxlXCI+e3tjb250ZXh0LnRpdGxlfHRyYW5zbGF0ZX19PC9oMj5cclxuICAgICAgPGRpdiAoZG9jdW1lbnQ6a2V5ZG93bi5lc2NhcGUpPVwiY2xvc2VWaWV3KCRldmVudClcIiAjZWxlbWVudCBjbGFzcz1cImNvbHVtblwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ2aWV3OyBjb250ZXh0OiBjb250ZXh0XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93IGFjdGlvbnNcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImNsb3NlVmlldygpXCIgdHlwZT1cImJ1dHRvblwiIFtiaXpkb2NUb29sdGlwXT1cIidCYWNrJ3x0cmFuc2xhdGVcIj48bWF0LWljb24+a2V5Ym9hcmRfcmV0dXJuPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L2JpemRvYy1kZXNpZ25lci1lbGVtZW50PlxyXG48IS0tLS0+XHJcbjxuZy10ZW1wbGF0ZSAjbWFpbj5cclxuICA8Zm9ybSBhdXRvY29tcGxldGU9XCJvZmZcIiBbZm9ybUdyb3VwXT1cImZvcm1cIiBjbGFzcz1cImNvbHVtblwiPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkICpuZ0lmPVwiZ3VpZGVzLmxlbmd0aFwiPlxyXG4gICAgICA8bWF0LWxhYmVsPnt7J0d1aWRlJ3x0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxyXG4gICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJndWlkZVwiPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uPnt7J05vbmUnfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBnIG9mIGd1aWRlc1wiIFt2YWx1ZV09XCJnLm5hbWVcIj57e2cudGl0bGUgfX08L21hdC1vcHRpb24+XHJcbiAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQgKm5nSWY9XCJjdWJlcy5sZW5ndGhcIj5cclxuICAgICAgPG1hdC1sYWJlbD57eydDdWJlJ3x0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxyXG4gICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJjdWJlc1wiIG11bHRpcGxlPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBjIG9mIGN1YmVzXCIgW3ZhbHVlXT1cImMubmFtZVwiPnt7Yy50aXRsZSB9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICA8bWF0LWhpbnQ+e3snRm9ybUN1YmVIZWxwJ3x0cmFuc2xhdGV9fTwvbWF0LWhpbnQ+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPCEtLVJ1bGVzLS0+XHJcbiAgICA8aDIgY2xhc3M9XCJtYXQtdGl0bGUgcm93XCI+XHJcbiAgICAgIHt7J1J1bGVzJ3x0cmFuc2xhdGV9fVxyXG4gICAgICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJhZGQocnVsZXMsIG5ld1J1bGUoKSwgJ1J1bGUnLCBydWxlZm9ybSlcIiBbYml6ZG9jVG9vbHRpcF09XCInQWRkJ3x0cmFuc2xhdGVcIiB0eXBlPVwiYnV0dG9uXCI+PG1hdC1pY29uPmFkZF9jaXJjbGVfb3V0bGluZTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICA8L2gyPlxyXG4gICAgPHRhYmxlIGZvcm1BcnJheU5hbWU9XCJydWxlc1wiIGNsYXNzPVwibWF0LXRhYmxlXCIgY2RrRHJvcExpc3QgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudCwgcnVsZXMpXCI+XHJcbiAgICAgIDx0ciBjbGFzcz1cIm1hdC1yb3dcIiAqbmdGb3I9XCJsZXQgciBvZiBydWxlcy5jb250cm9sczsgaW5kZXggYXMgaW5kZXhcIiBbZm9ybUdyb3VwXT1cInJcIiBjZGtEcmFnPlxyXG4gICAgICAgIDx0ZCBjbGFzcz1cIm1hdC1jZWxsXCI+XHJcbiAgICAgICAgICA8bWF0LWljb24gY2RrRHJhZ0hhbmRsZT5kcmFnX2luZGljYXRvcjwvbWF0LWljb24+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgICA8dGQgY2xhc3M9XCJtYXQtY2VsbCBmbGV4XCIgd2lkdGg9XCI5OSVcIj5cclxuICAgICAgICAgIHt7ci5nZXQoJ3RpdGxlJykudmFsdWV9fVxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgICAgPHRkIGNsYXNzPVwibWF0LWNlbGxcIiBzdHlsZT1cIndoaXRlLXNwYWNlOiBwcmU7XCI+XHJcbiAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiZWRpdChyLCAnUnVsZScsIHJ1bGVmb3JtKVwiIFtiaXpkb2NUb29sdGlwXT1cIidFZGl0J3x0cmFuc2xhdGVcIiB0eXBlPVwiYnV0dG9uXCI+PG1hdC1pY29uPmVkaXQ8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInJ1bGVzLnJlbW92ZUF0KGluZGV4KVwiIFtiaXpkb2NUb29sdGlwXT1cIidSZW1vdmUnfHRyYW5zbGF0ZVwiIHR5cGU9XCJidXR0b25cIj48bWF0LWljb24+ZGVsZXRlPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgICAgICA8L3RkPlxyXG4gICAgICA8L3RyPlxyXG4gICAgPC90YWJsZT5cclxuICA8L2Zvcm0+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjcnVsZWZvcm0gbGV0LWZvcm0+XHJcbiAgPGZvcm0gYXV0b2NvbXBsZXRlPVwib2ZmXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCIgY2xhc3M9XCJjb2x1bW5cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZmxleFwiPlxyXG4gICAgICAgIDxtYXQtbGFiZWw+e3snVGl0bGUnfHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cInRpdGxlXCIgcmVxdWlyZWQgLz5cclxuICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybS5nZXQoJ3RpdGxlJykuaGFzRXJyb3IoJ3JlcXVpcmVkJylcIiBbaW5uZXJIVE1MXT1cIidSZXF1aXJlZEVycid8dHJhbnNsYXRlOignVGl0bGUnfHRyYW5zbGF0ZSlcIj48L21hdC1lcnJvcj5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgJm5ic3A7XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZsZXhcIj5cclxuICAgICAgICA8bWF0LWxhYmVsPnt7J05hbWUnfHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIiByZXF1aXJlZCAvPlxyXG4gICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtLmdldCgnbmFtZScpLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCIgW2lubmVySFRNTF09XCInUmVxdWlyZWRFcnInfHRyYW5zbGF0ZTooJ05hbWUnfHRyYW5zbGF0ZSlcIj48L21hdC1lcnJvcj5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwvZGl2PlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZmxleFwiPlxyXG4gICAgICA8bWF0LWNoaXAtbGlzdCAjY2hpcHMgW2F0dHIuYXJpYS1sYWJlbF09XCInJ1wiPlxyXG4gICAgICAgIDxtYXQtY2hpcCAqbmdGb3I9XCJsZXQgciBvZiBmb3JtLmdldCgncm9sZXMnKS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtyZW1vdmFibGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIChyZW1vdmVkKT1cInJlbW92ZVJvbGUoZm9ybSwgcilcIj5cclxuICAgICAgICAgIHt7dGl0bGVPZihyKX19XHJcbiAgICAgICAgICA8bWF0LWljb24gbWF0Q2hpcFJlbW92ZT5jYW5jZWw8L21hdC1pY29uPlxyXG4gICAgICAgIDwvbWF0LWNoaXA+XHJcbiAgICAgICAgPGlucHV0IFtwbGFjZWhvbGRlcl09XCInUm9sZXMnfHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09c2VhcmNoXHJcbiAgICAgICAgICAgICAgICNpbnB1dHJvbGVcclxuICAgICAgICAgICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJuYW1ldHlwZVwiXHJcbiAgICAgICAgICAgICAgIFttYXRDaGlwSW5wdXRGb3JdPVwiY2hpcHNcIlxyXG4gICAgICAgICAgICAgICBbbWF0Q2hpcElucHV0U2VwYXJhdG9yS2V5Q29kZXNdPVwic2VwYXJhdG9yS2V5c0NvZGVzXCI+XHJcbiAgICAgIDwvbWF0LWNoaXAtbGlzdD5cclxuICAgICAgPG1hdC1hdXRvY29tcGxldGUgI25hbWV0eXBlPVwibWF0QXV0b2NvbXBsZXRlXCIgKG9wdGlvblNlbGVjdGVkKT1cImFkZFJvbGUoZm9ybSwgaW5wdXRyb2xlLCAkZXZlbnQpXCI+XHJcbiAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHIgb2Ygcm9sZXNcIiBbdmFsdWVdPVwici5uYW1lXCI+XHJcbiAgICAgICAgICB7e3IudGl0bGUgfHwgci5uYW1lfX1cclxuICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxiaXpkb2MtYWNlLWlucHV0IFtwbGFjZWhvbGRlcl09XCInQ29uZGl0aW9uJ3x0cmFuc2xhdGVcIiBmb3JtQ29udHJvbE5hbWU9XCJydWxlXCI+PC9iaXpkb2MtYWNlLWlucHV0PlxyXG4gICAgICA8bWF0LWhpbnQ+IHt7ICdQcm9ncmFtbWFibGVFeHByZXNzaW9uJ3x0cmFuc2xhdGUgfX08L21hdC1oaW50PlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8L2Zvcm0+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvZWxlbWVudHMvZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvZWxlbWVudHMvZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUl4RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsV0FBVyxFQUFnQyxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUt6RixNQUFNLE9BQU8sbUJBQW9CLFNBQVEsNEJBQTRCO0lBaUNuRSxZQUFZLEVBQWUsRUFDakIsT0FBb0IsRUFDcEIsUUFBdUIsRUFDdkIsUUFBd0IsRUFDaEMsT0FBd0IsRUFDSCxHQUFnQjtRQUNyQyxLQUFLLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUxoQixZQUFPLEdBQVAsT0FBTyxDQUFhO1FBQ3BCLGFBQVEsR0FBUixRQUFRLENBQWU7UUFDdkIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFuQ3pCLFVBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMzQixTQUFJLEdBQUcsSUFBSSxDQUFD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UUFBUSxDQUFDLEVBQzVELEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDeEMsQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUUsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztZQUNwQixJQUFJO1lBQ0osS0FBSztZQUNMLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSztZQUNsQixJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELE9BQU87UUFDTCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7Z0hBOUhVLG1CQUFtQiw2SkFzQ3BCLFdBQVc7b0dBdENWLG1CQUFtQiwyRUNiaEMsaW1MQWtIQTsyRkRyR2EsbUJBQW1CO2tCQUQvQixTQUFTOzs7MEJBdUNMLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IEF4aXNTZXR0aW5nc01vZGVsLCBMaW5lU2V0dGluZ3NNb2RlbCwgU3BhcmtsaW5lTWFya2VyU2V0dGluZ3NNb2RlbCwgU3BhcmtsaW5lVG9vbHRpcFNldHRpbmdzTW9kZWwgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItYW5ndWxhci1jaGFydHMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFBhbmVzUm91dGVyIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvc2xvdHMvcm91dGVyLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgU3lzdGVtU2VydmljZSwgUmFuZ2VJbmZvIH0gZnJvbSBcIi4uLy4uL3N5c3RlbS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERlc2lnbmVyVHlwZUVsZW1lbnRDb21wb25lbnQgfSBmcm9tIFwiLi4vZGVzaWduZXIuYmFzZVwiO1xyXG5pbXBvcnQgeyBEZXNpZ25lclJlZiwgRWxlbWVudEluZm8sIFBlcm1pc3Npb25Nb2RlbCwgcHJvZ3JhbU5hbWUgfSBmcm9tIFwiLi4vZGVjbGFyYXRpb25zXCI7XHJcbmltcG9ydCB7IFJvbGUgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9tb2RlbHNcIjtcclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGVcIjtcclxuXHJcbkBDb21wb25lbnQoeyB0ZW1wbGF0ZVVybDogJ2Zvcm0uY29tcG9uZW50Lmh0bWwnIH0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtRGVzaWduQ29tcG9uZW50IGV4dGVuZHMgRGVzaWduZXJUeXBlRWxlbWVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcmVhZG9ubHkgcnVsZXMgPSB0aGlzLl9mYi5hcnJheShbXSk7XHJcbiAgcmVhZG9ubHkgZm9ybSA9IHRoaXMuX2ZiLmdyb3VwKHtcclxuICAgIHJ1bGVzOiB0aGlzLnJ1bGVzLFxyXG4gICAgZ3VpZGU6IG51bGwsXHJcbiAgICBjdWJlczogbnVsbFxyXG4gIH0pO1xyXG4gIHByaXZhdGUgX3JvbGVzOiBSb2xlW107XHJcbiAgcm9sZXM6IFJvbGVbXSA9IFtdO1xyXG4gIHRoZW1lOiAnTWF0ZXJpYWwnIHwgJ01hdGVyaWFsRGFyaycgPSB0aGlzLl9zZXNzaW9uLnRoZW1lLmRhcmsgPyAnTWF0ZXJpYWxEYXJrJyA6ICdNYXRlcmlhbCc7XHJcbiAgcmVhZG9ubHkgYXhpc1NldHRpbmdzID0ge1xyXG4gICAgbGluZVNldHRpbmdzOiB7XHJcbiAgICB9IGFzIExpbmVTZXR0aW5nc01vZGVsLFxyXG4gIH0gYXMgQXhpc1NldHRpbmdzTW9kZWw7XHJcbiAgcmVhZG9ubHkgbWFya2VyU2V0dGluZ3MgPSB7XHJcbiAgICB2aXNpYmxlOiBbJ0FsbCddLFxyXG4gICAgc2l6ZTogMS41LFxyXG4gICAgZmlsbDogdGhpcy5fc2Vzc2lvbi5nZXRBY2NlbnQoKSxcclxuICB9IGFzIFNwYXJrbGluZU1hcmtlclNldHRpbmdzTW9kZWw7XHJcbiAgcmVhZG9ubHkgdG9vbHRpcFNldHRpbmdzID0ge1xyXG4gICAgdmlzaWJsZTogdHJ1ZSxcclxuICAgIGZvcm1hdDogJyR7ZGF0ZX0nLFxyXG4gICAgdHJhY2tMaW5lU2V0dGluZ3M6IHtcclxuICAgICAgdmlzaWJsZTogdHJ1ZVxyXG4gICAgfVxyXG4gIH0gYXMgU3BhcmtsaW5lVG9vbHRpcFNldHRpbmdzTW9kZWw7XHJcbiAgdXNhZ2U6IFJhbmdlSW5mb1tdO1xyXG4gIHJlYWRvbmx5IHNlYXJjaCA9IHRoaXMuX2ZiLmNvbnRyb2wobnVsbCk7XHJcbiAgcHJpbWFyeSA9IHRoaXMuX3Nlc3Npb24uZ2V0UHJpbWVyeSgpO1xyXG4gIHJlYWRvbmx5IGVuYWJsZVJ0bCA9IHRoaXMuX3Nlc3Npb24uaW52ZXJzZTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICByZWFkb25seSBndWlkZXM6IEVsZW1lbnRJbmZvW107XHJcbiAgcmVhZG9ubHkgY3ViZXM6IEVsZW1lbnRJbmZvW107XHJcbiAgY29uc3RydWN0b3IoZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBQYW5lc1JvdXRlcixcclxuICAgIHByaXZhdGUgX3NlcnZpY2U6IFN5c3RlbVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIGVsZW1lbnQ6IEVsZW1lbnRSZWY8YW55PixcclxuICAgIEBJbmplY3QoRGVzaWduZXJSZWYpIHJlZjogRGVzaWduZXJSZWYpIHtcclxuICAgIHN1cGVyKGZiLCBlbGVtZW50LCByZWYpO1xyXG4gICAgdGhpcy5fc2Vzc2lvbi50aGVtZUNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuXHJcbiAgICAgIHN1YnNjcmliZSh0ID0+IHtcclxuICAgICAgICB0aGlzLnRoZW1lID0gdC5kYXJrID8gJ01hdGVyaWFsRGFyaycgOiAnTWF0ZXJpYWwnO1xyXG4gICAgICAgIHRoaXMucHJpbWFyeSA9IHRoaXMuX3Nlc3Npb24uZ2V0UHJpbWVyeSgpO1xyXG4gICAgICB9KTtcclxuICAgIHRoaXMuZ3VpZGVzID0gcmVmLmRlc2lnbmVyLmd1aWRlcztcclxuICAgIHRoaXMuY3ViZXMgPSByZWYuZGVzaWduZXIuY3ViZXM7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ3dpZGdldCcpXHJcbiAgICAgIHRoaXMuX3NlcnZpY2UucmFuZ2UodGhpcy5tb2RlbC5uYW1lKS5zdWJzY3JpYmUociA9PlxyXG4gICAgICAgIHRoaXMudXNhZ2UgPSByKTtcclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLl9zZXJ2aWNlLnJvbGVzKCkuc3Vic2NyaWJlKHIgPT4ge1xyXG4gICAgICAgIHRoaXMuX3JvbGVzID0gci5jb25jYXQoKHRoaXMuX3JlZi5kZXNpZ25lci5yb2xlcykuZmlsdGVyKHIgPT4gIXIuZGlzYWJsZWQpIGFzIGFueSk7XHJcbiAgICAgICAgci5mb3JFYWNoKHIgPT4ge1xyXG4gICAgICAgICAgdGhpcy5fcm9sZXNbci5uYW1lXSA9IHI7XHJcbiAgICAgICAgICByWydfaW5kZXgnXSA9IChyLnRpdGxlIHx8IHIubmFtZSkudG9Mb3dlckNhc2UoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLl9yZWYuZGVzaWduZXIucm9sZXMuZm9yRWFjaChyID0+IHtcclxuICAgICAgICAgIHRoaXMuX3JvbGVzW3IubmFtZV0gPSByIGFzIGFueTtcclxuICAgICAgICAgIHJbJ19pbmRleCddID0gKHIudGl0bGUgfHwgci5uYW1lKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMucm9sZXMgPSB0aGlzLl9yb2xlcy5zbGljZSgpO1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5tb2RlbC5ydWxlcz8uXHJcbiAgICAgICAgZm9yRWFjaChyID0+IHRoaXMucnVsZXMucHVzaCh0aGlzLm5ld1J1bGUociksIHsgZW1pdEV2ZW50OiBmYWxzZSB9KSk7XHJcbiAgICAgIHRoaXMuc2VhcmNoLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSgxNTApKS5zdWJzY3JpYmUodiA9PiB7XHJcbiAgICAgICAgaWYgKHYpIHtcclxuICAgICAgICAgIGNvbnN0IHZhbCA9ICh2IGFzIHN0cmluZykudG9Mb3dlckNhc2UoKTtcclxuICAgICAgICAgIHRoaXMucm9sZXMgPSB0aGlzLl9yb2xlcy5maWx0ZXIociA9PiByWydfaW5kZXgnXS5pbmRleE9mKHZhbCkgPiAtMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIHRoaXMucm9sZXMgPSB0aGlzLl9yb2xlcy5zbGljZSgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgfVxyXG4gIHRpdGxlT2YobmFtZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCByb2xlID0gdGhpcy5fcm9sZXNbbmFtZV07XHJcbiAgICByZXR1cm4gcm9sZT8udGl0bGUgfHwgbmFtZTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGlkXHJcbiAgICovXHJcbiAgcmVtb3ZlUm9sZShncm91cDogRm9ybUdyb3VwLCBpZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCByb2xlcyA9IGdyb3VwLnZhbHVlLnJvbGVzO1xyXG4gICAgY29uc3QgaW5kZXggPSByb2xlcy5pbmRleE9mKGlkKTtcclxuXHJcbiAgICBpZiAoaW5kZXggPj0gMClcclxuICAgICAgcm9sZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIGdyb3VwLnBhdGNoVmFsdWUoe30pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gaW5wXHJcbiAgICogQHBhcmFtIGV2ZW50XHJcbiAgICovXHJcbiAgYWRkUm9sZShncm91cDogRm9ybUdyb3VwLCBpbnA6IEhUTUxJbnB1dEVsZW1lbnQsIGV2ZW50OiBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCByb2xlcyA9IGdyb3VwLnZhbHVlLnJvbGVzO1xyXG4gICAgY29uc3QgaWQgPSBldmVudC5vcHRpb24udmFsdWUgYXMgc3RyaW5nO1xyXG4gICAgaWYgKCFyb2xlcylcclxuICAgICAgZ3JvdXAuY29udHJvbHNbJ3JvbGVzJ10uc2V0VmFsdWUoW2lkXSk7XHJcbiAgICBlbHNlXHJcbiAgICAgIHJvbGVzLnB1c2goaWQpO1xyXG4gICAgaW5wLnZhbHVlID0gJyc7XHJcbiAgICBncm91cC5wYXRjaFZhbHVlKHt9KTtcclxuICB9XHJcbiAgbmV3UnVsZShydWxlPzogUGVybWlzc2lvbk1vZGVsKTogYW55IHtcclxuICAgIGNvbnN0IG5hbWUgPSB0aGlzLl9mYi5jb250cm9sKHJ1bGU/Lm5hbWUsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgICB0aXRsZSA9IHRoaXMuX2ZiLmNvbnRyb2wocnVsZT8udGl0bGUpO1xyXG4gICAgIXJ1bGUgJiYgdGl0bGUudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2ID0+IG5hbWUuc2V0VmFsdWUocHJvZ3JhbU5hbWUodikpKTtcclxuICAgIHJldHVybiB0aGlzLl9mYi5ncm91cCh7XHJcbiAgICAgIG5hbWUsXHJcbiAgICAgIHRpdGxlLFxyXG4gICAgICByb2xlczogcnVsZT8ucm9sZXMsXHJcbiAgICAgIHJ1bGU6IHJ1bGU/LnJ1bGUsXHJcbiAgICB9KTtcclxuICB9XHJcbiAgZGlhZ3JhbSgpIHtcclxuICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJ2FkbWluL2Zvcm1zJywgdGhpcy5tb2RlbC5uYW1lXSk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveS5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxiaXpkb2MtZGVzaWduZXItZWxlbWVudCBbZm9ybV09XCJmb3JtXCIgW3ByaXZpbGVnZXNdPVwidHJ1ZVwiIFtpY29uXT1cInRydWVcIj5cclxuICA8bmctdGVtcGxhdGUgYml6ZG9jQ29udGVudD5cclxuICAgIDxlanMtc3BhcmtsaW5lICpuZ0lmPVwidXNhZ2VcIiB3aWR0aD0nMjUwcHgnIGhlaWdodD0nMjAwcHgnXHJcbiAgICAgICAgICAgICAgICAgICB0eXBlPVwiTGluZVwiXHJcbiAgICAgICAgICAgICAgICAgICBbaWRdPVwibW9kZWwubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICBbZmlsbF09XCJwcmltYXJ5XCJcclxuICAgICAgICAgICAgICAgICAgIFtkYXRhU291cmNlXT1cInVzYWdlXCJcclxuICAgICAgICAgICAgICAgICAgIHhOYW1lPVwiZGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICB5TmFtZT1cImNvdW50XCJcclxuICAgICAgICAgICAgICAgICAgIGxpbmVXaWR0aD1cIjJcIlxyXG4gICAgICAgICAgICAgICAgICAgdmFsdWVUeXBlPVwiRGF0ZVRpbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgW21hcmtlclNldHRpbmdzXT1cIm1hcmtlclNldHRpbmdzXCJcclxuICAgICAgICAgICAgICAgICAgIFt0b29sdGlwU2V0dGluZ3NdPVwidG9vbHRpcFNldHRpbmdzXCJcclxuICAgICAgICAgICAgICAgICAgIFtlbmFibGVSdGxdPVwiZW5hYmxlUnRsXCI+XHJcbiAgICA8L2Vqcy1zcGFya2xpbmU+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJkaWFncmFtKClcIiBbYml6ZG9jVG9vbHRpcF09XCInV29ya2Zsb3cnfHRyYW5zbGF0ZVwiIFtkaXNhYmxlZF09XCJtb2RlbC5kcmFmdFwiPjxtYXQtaWNvbj5zY2hlbWE8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuICA8IS0tZWRpdC0tPlxyXG4gIDxuZy10ZW1wbGF0ZSBiaXpkb2NFZGl0Q29udGVudD5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ2aWV3OyBlbHNlIG1haW5cIj5cclxuICAgICAgPGgyIGNsYXNzPVwibWF0LXRpdGxlXCI+e3tjb250ZXh0LnRpdGxlfHRyYW5zbGF0ZX19PC9oMj5cclxuICAgICAgPGRpdiAoZG9jdW1lbnQ6a2V5ZG93bi5lc2NhcGUpPVwiY2xvc2VWaWV3KCRldmVudClcIiAjZWxlbWVudCBjbGFzcz1cImNvbHVtblwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ2aWV3OyBjb250ZXh0OiBjb250ZXh0XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93IGFjdGlvbnNcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImNsb3NlVmlldygpXCIgdHlwZT1cImJ1dHRvblwiIFtiaXpkb2NUb29sdGlwXT1cIidCYWNrJ3x0cmFuc2xhdGVcIj48bWF0LWljb24+a2V5Ym9hcmRfcmV0dXJuPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L2JpemRvYy1kZXNpZ25lci1lbGVtZW50PlxyXG48IS0tLS0+XHJcbjxuZy10ZW1wbGF0ZSAjbWFpbj5cclxuICA8Zm9ybSBhdXRvY29tcGxldGU9XCJvZmZcIiBbZm9ybUdyb3VwXT1cImZvcm1cIiBjbGFzcz1cImNvbHVtblwiPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkICpuZ0lmPVwiZ3VpZGVzLmxlbmd0aFwiPlxyXG4gICAgICA8bWF0LWxhYmVsPnt7J0d1aWRlJ3x0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxyXG4gICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJndWlkZVwiPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uPnt7J05vbmUnfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBnIG9mIGd1aWRlc1wiIFt2YWx1ZV09XCJnLm5hbWVcIj57e2cudGl0bGUgfX08L21hdC1vcHRpb24+XHJcbiAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQgKm5nSWY9XCJjdWJlcy5sZW5ndGhcIj5cclxuICAgICAgPG1hdC1sYWJlbD57eydDdWJlJ3x0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxyXG4gICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJjdWJlc1wiIG11bHRpcGxlPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBjIG9mIGN1YmVzXCIgW3ZhbHVlXT1cImMubmFtZVwiPnt7Yy50aXRsZSB9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICA8bWF0LWhpbnQ+e3snRm9ybUN1YmVIZWxwJ3x0cmFuc2xhdGV9fTwvbWF0LWhpbnQ+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPCEtLVJ1bGVzLS0+XHJcbiAgICA8aDIgY2xhc3M9XCJtYXQtdGl0bGUgcm93XCI+XHJcbiAgICAgIHt7J1J1bGVzJ3x0cmFuc2xhdGV9fVxyXG4gICAgICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJhZGQocnVsZXMsIG5ld1J1bGUoKSwgJ1J1bGUnLCBydWxlZm9ybSlcIiBbYml6ZG9jVG9vbHRpcF09XCInQWRkJ3x0cmFuc2xhdGVcIiB0eXBlPVwiYnV0dG9uXCI+PG1hdC1pY29uPmFkZF9jaXJjbGVfb3V0bGluZTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICA8L2gyPlxyXG4gICAgPHRhYmxlIGZvcm1BcnJheU5hbWU9XCJydWxlc1wiIGNsYXNzPVwibWF0LXRhYmxlXCIgY2RrRHJvcExpc3QgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudCwgcnVsZXMpXCI+XHJcbiAgICAgIDx0ciBjbGFzcz1cIm1hdC1yb3dcIiAqbmdGb3I9XCJsZXQgciBvZiBydWxlcy5jb250cm9sczsgaW5kZXggYXMgaW5kZXhcIiBbZm9ybUdyb3VwXT1cInJcIiBjZGtEcmFnPlxyXG4gICAgICAgIDx0ZCBjbGFzcz1cIm1hdC1jZWxsXCI+XHJcbiAgICAgICAgICA8bWF0LWljb24gY2RrRHJhZ0hhbmRsZT5kcmFnX2luZGljYXRvcjwvbWF0LWljb24+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgICA8dGQgY2xhc3M9XCJtYXQtY2VsbCBmbGV4XCIgd2lkdGg9XCI5OSVcIj5cclxuICAgICAgICAgIHt7ci5nZXQoJ3RpdGxlJykudmFsdWV9fVxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgICAgPHRkIGNsYXNzPVwibWF0LWNlbGxcIiBzdHlsZT1cIndoaXRlLXNwYWNlOiBwcmU7XCI+XHJcbiAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiZWRpdChyLCAnUnVsZScsIHJ1bGVmb3JtKVwiIFtiaXpkb2NUb29sdGlwXT1cIidFZGl0J3x0cmFuc2xhdGVcIiB0eXBlPVwiYnV0dG9uXCI+PG1hdC1pY29uPmVkaXQ8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInJ1bGVzLnJlbW92ZUF0KGluZGV4KVwiIFtiaXpkb2NUb29sdGlwXT1cIidSZW1vdmUnfHRyYW5zbGF0ZVwiIHR5cGU9XCJidXR0b25cIj48bWF0LWljb24+ZGVsZXRlPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgICAgICA8L3RkPlxyXG4gICAgICA8L3RyPlxyXG4gICAgPC90YWJsZT5cclxuICA8L2Zvcm0+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjcnVsZWZvcm0gbGV0LWZvcm0+XHJcbiAgPGZvcm0gYXV0b2NvbXBsZXRlPVwib2ZmXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCIgY2xhc3M9XCJjb2x1bW5cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZmxleFwiPlxyXG4gICAgICAgIDxtYXQtbGFiZWw+e3snVGl0bGUnfHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cInRpdGxlXCIgcmVxdWlyZWQgLz5cclxuICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybS5nZXQoJ3RpdGxlJykuaGFzRXJyb3IoJ3JlcXVpcmVkJylcIiBbaW5uZXJIVE1MXT1cIidSZXF1aXJlZEVycid8dHJhbnNsYXRlOignVGl0bGUnfHRyYW5zbGF0ZSlcIj48L21hdC1lcnJvcj5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgJm5ic3A7XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZsZXhcIj5cclxuICAgICAgICA8bWF0LWxhYmVsPnt7J05hbWUnfHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIiByZXF1aXJlZCAvPlxyXG4gICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtLmdldCgnbmFtZScpLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCIgW2lubmVySFRNTF09XCInUmVxdWlyZWRFcnInfHRyYW5zbGF0ZTooJ05hbWUnfHRyYW5zbGF0ZSlcIj48L21hdC1lcnJvcj5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwvZGl2PlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZmxleFwiPlxyXG4gICAgICA8bWF0LWNoaXAtbGlzdCAjY2hpcHMgW2F0dHIuYXJpYS1sYWJlbF09XCInJ1wiPlxyXG4gICAgICAgIDxtYXQtY2hpcCAqbmdGb3I9XCJsZXQgciBvZiBmb3JtLmdldCgncm9sZXMnKS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtyZW1vdmFibGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIChyZW1vdmVkKT1cInJlbW92ZVJvbGUoZm9ybSwgcilcIj5cclxuICAgICAgICAgIHt7dGl0bGVPZihyKX19XHJcbiAgICAgICAgICA8bWF0LWljb24gbWF0Q2hpcFJlbW92ZT5jYW5jZWw8L21hdC1pY29uPlxyXG4gICAgICAgIDwvbWF0LWNoaXA+XHJcbiAgICAgICAgPGlucHV0IFtwbGFjZWhvbGRlcl09XCInUm9sZXMnfHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09c2VhcmNoXHJcbiAgICAgICAgICAgICAgICNpbnB1dHJvbGVcclxuICAgICAgICAgICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJuYW1ldHlwZVwiXHJcbiAgICAgICAgICAgICAgIFttYXRDaGlwSW5wdXRGb3JdPVwiY2hpcHNcIlxyXG4gICAgICAgICAgICAgICBbbWF0Q2hpcElucHV0U2VwYXJhdG9yS2V5Q29kZXNdPVwic2VwYXJhdG9yS2V5c0NvZGVzXCI+XHJcbiAgICAgIDwvbWF0LWNoaXAtbGlzdD5cclxuICAgICAgPG1hdC1hdXRvY29tcGxldGUgI25hbWV0eXBlPVwibWF0QXV0b2NvbXBsZXRlXCIgKG9wdGlvblNlbGVjdGVkKT1cImFkZFJvbGUoZm9ybSwgaW5wdXRyb2xlLCAkZXZlbnQpXCI+XHJcbiAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHIgb2Ygcm9sZXNcIiBbdmFsdWVdPVwici5uYW1lXCI+XHJcbiAgICAgICAgICB7e3IudGl0bGUgfHwgci5uYW1lfX1cclxuICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxiaXpkb2MtYWNlLWlucHV0IFtwbGFjZWhvbGRlcl09XCInQ29uZGl0aW9uJ3x0cmFuc2xhdGVcIiBmb3JtQ29udHJvbE5hbWU9XCJydWxlXCI+PC9iaXpkb2MtYWNlLWlucHV0PlxyXG4gICAgICA8bWF0LWhpbnQ+IHt7ICdQcm9ncmFtbWFibGVFeHByZXNzaW9uJ3x0cmFuc2xhdGUgfX08L21hdC1oaW50PlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8L2Zvcm0+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==