@bizdoc/core 1.15.1 → 1.15.4

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 (402) hide show
  1. package/assets/themes/brown.min.css +3 -3
  2. package/assets/themes/dark.min.css +3 -3
  3. package/assets/themes/deep-purple-light-blue.min.css +4 -4
  4. package/assets/themes/deep-purple-teal.min.css +4 -4
  5. package/assets/themes/default.min.css +4 -4
  6. package/assets/themes/green.min.css +3 -3
  7. package/assets/themes/indigo.min.css +3 -3
  8. package/esm2020/lib/admin/admin-dismiss.service.mjs +3 -3
  9. package/esm2020/lib/admin/admin-menu.component.mjs +3 -3
  10. package/esm2020/lib/admin/configuration-designer/designer-element.component.mjs +79 -0
  11. package/esm2020/lib/admin/configuration-designer/designer.base.mjs +74 -0
  12. package/esm2020/lib/admin/configuration-designer/designer.component.mjs +106 -0
  13. package/esm2020/lib/admin/configuration-designer/elements/action.component.mjs +29 -0
  14. package/esm2020/lib/admin/configuration-designer/elements/analysis-view.component.mjs +49 -0
  15. package/esm2020/lib/admin/configuration-designer/elements/analysis-widget.component.mjs +49 -0
  16. package/esm2020/lib/admin/configuration-designer/elements/anomaly-rule.component.mjs +29 -0
  17. package/esm2020/lib/admin/configuration-designer/elements/box-form.component.mjs +31 -0
  18. package/esm2020/lib/admin/configuration-designer/elements/cube-view.component.mjs +34 -0
  19. package/esm2020/lib/admin/configuration-designer/elements/cube.component.mjs +139 -0
  20. package/esm2020/lib/admin/configuration-designer/elements/documents-report.component.mjs +49 -0
  21. package/esm2020/lib/admin/configuration-designer/elements/documents-widget.component.mjs +39 -0
  22. package/esm2020/lib/admin/configuration-designer/elements/explore-view.component.mjs +34 -0
  23. package/esm2020/lib/admin/configuration-designer/elements/folder.component.mjs +30 -0
  24. package/esm2020/lib/admin/configuration-designer/elements/form.component.mjs +83 -0
  25. package/esm2020/lib/admin/configuration-designer/elements/guide.component.mjs +36 -0
  26. package/esm2020/lib/admin/configuration-designer/elements/matrix-view.component.mjs +37 -0
  27. package/esm2020/lib/admin/configuration-designer/elements/parallel-view.component.mjs +39 -0
  28. package/esm2020/lib/admin/configuration-designer/elements/performance-widget.component.mjs +45 -0
  29. package/esm2020/lib/admin/configuration-designer/elements/pivot-view.component.mjs +39 -0
  30. package/esm2020/lib/admin/configuration-designer/elements/report.component.mjs +32 -0
  31. package/esm2020/lib/admin/configuration-designer/elements/return-to-role-action.component.mjs +39 -0
  32. package/esm2020/lib/admin/configuration-designer/elements/role.component.mjs +31 -0
  33. package/esm2020/lib/admin/configuration-designer/elements/rule.component.mjs +29 -0
  34. package/esm2020/lib/admin/configuration-designer/elements/state.component.mjs +31 -0
  35. package/esm2020/lib/admin/configuration-designer/elements/sum-view.component.mjs +37 -0
  36. package/esm2020/lib/admin/configuration-designer/elements/tasks-report.component.mjs +37 -0
  37. package/esm2020/lib/admin/configuration-designer/elements/type.component.mjs +33 -0
  38. package/esm2020/lib/admin/configuration-designer/elements/usage-report.component.mjs +37 -0
  39. package/esm2020/lib/admin/configuration-designer/elements/utility.component.mjs +30 -0
  40. package/esm2020/lib/admin/configuration-designer/elements/view.component.mjs +28 -0
  41. package/esm2020/lib/admin/configuration-designer/elements/widget.component.mjs +30 -0
  42. package/esm2020/lib/admin/configuration-designer/privileges.component.mjs +42 -0
  43. package/esm2020/lib/admin/core/ace.input.mjs +3 -3
  44. package/esm2020/lib/admin/core/color-picker.input.mjs +3 -3
  45. package/esm2020/lib/admin/core/search.input.mjs +3 -3
  46. package/esm2020/lib/admin/diff/configuration-diff.component.mjs +3 -3
  47. package/esm2020/lib/admin/document-trace/document-trace.component.mjs +6 -6
  48. package/esm2020/lib/admin/document-trace/reassign.dialog.mjs +3 -3
  49. package/esm2020/lib/admin/document-trace/trace-element.component.mjs +3 -3
  50. package/esm2020/lib/admin/form/designer/designer.component.mjs +56 -0
  51. package/esm2020/lib/admin/form/form.resolve.service.mjs +9 -9
  52. package/esm2020/lib/admin/form/workflow/node.component.mjs +3 -3
  53. package/esm2020/lib/admin/form/workflow/role-node.component.mjs +3 -3
  54. package/esm2020/lib/admin/form/workflow/workflow.component.mjs +6 -6
  55. package/esm2020/lib/admin/indices/manage-cube-index.component.mjs +3 -3
  56. package/esm2020/lib/admin/patterns/patterns.component.mjs +9 -9
  57. package/esm2020/lib/admin/permissions/permissions.component.mjs +3 -3
  58. package/esm2020/lib/admin/positions/positions-popup.component.mjs +3 -3
  59. package/esm2020/lib/admin/positions/positions.component.mjs +3 -3
  60. package/esm2020/lib/admin/profiler/outofoffice.component.mjs +3 -3
  61. package/esm2020/lib/admin/profiler/profiler.component.mjs +3 -3
  62. package/esm2020/lib/admin/system.service.mjs +54 -0
  63. package/esm2020/lib/admin/utility-ref.mjs +2 -2
  64. package/esm2020/lib/admin/utility-wrapper.component.mjs +3 -3
  65. package/esm2020/lib/admin/utility.pane.component.mjs +3 -3
  66. package/esm2020/lib/app.component.mjs +6 -6
  67. package/esm2020/lib/bizdoc.module.mjs +4 -4
  68. package/esm2020/lib/browse/browse-items.component.mjs +3 -3
  69. package/esm2020/lib/browse/browse.mobile.component.mjs +3 -3
  70. package/esm2020/lib/browse/browse.pane.component.mjs +3 -3
  71. package/esm2020/lib/browse/expanded-item/expanded-item.component.mjs +3 -3
  72. package/esm2020/lib/browse/filter/filter.component.mjs +3 -3
  73. package/esm2020/lib/browse/folders-menu.component.mjs +3 -3
  74. package/esm2020/lib/chat/chat-info.mjs +3 -3
  75. package/esm2020/lib/chat/chat.mobile.component.mjs +3 -3
  76. package/esm2020/lib/chat/chat.service.mjs +3 -3
  77. package/esm2020/lib/chat/contacts.component.mjs +6 -6
  78. package/esm2020/lib/chat/contacts.pane.component.mjs +3 -3
  79. package/esm2020/lib/chat/conversation.component.mjs +3 -3
  80. package/esm2020/lib/chat/conversation.pane.component.mjs +3 -3
  81. package/esm2020/lib/compose/action/action-picker.component.mjs +3 -3
  82. package/esm2020/lib/compose/action/action.dialog.mjs +3 -3
  83. package/esm2020/lib/compose/action/action.pane.dialog.exp.mjs +3 -3
  84. package/esm2020/lib/compose/action/assign-action.component.mjs +5 -5
  85. package/esm2020/lib/compose/action/moveto-action.component.mjs +3 -3
  86. package/esm2020/lib/compose/action/return-action.component.mjs +3 -3
  87. package/esm2020/lib/compose/attachments/attachments.component.mjs +3 -3
  88. package/esm2020/lib/compose/attachments/preview/attachment-preview.component.mjs +3 -3
  89. package/esm2020/lib/compose/attachments/progress-button.directive.mjs +3 -3
  90. package/esm2020/lib/compose/can-deactivate-changes.service.mjs +3 -3
  91. package/esm2020/lib/compose/comments/comment.component.mjs +3 -3
  92. package/esm2020/lib/compose/comments/comments.component.mjs +3 -3
  93. package/esm2020/lib/compose/comments/comments.pane.component.mjs +3 -3
  94. package/esm2020/lib/compose/comments/edit-comment.component.mjs +3 -3
  95. package/esm2020/lib/compose/comments/edits.component.mjs +3 -3
  96. package/esm2020/lib/compose/comments/quick-comment.component.exp.mjs +3 -3
  97. package/esm2020/lib/compose/comments/votes.component.mjs +3 -3
  98. package/esm2020/lib/compose/compose-resolve.service.mjs +6 -6
  99. package/esm2020/lib/compose/compose.mobile.component.mjs +3 -3
  100. package/esm2020/lib/compose/compose.pane.component.mjs +3 -3
  101. package/esm2020/lib/compose/copy/copy.dialog.mjs +3 -3
  102. package/esm2020/lib/compose/dismiss.service.mjs +3 -3
  103. package/esm2020/lib/compose/document-resolver.service.mjs +3 -3
  104. package/esm2020/lib/compose/document.component.mjs +3 -3
  105. package/esm2020/lib/compose/document.mobile.component.mjs +3 -3
  106. package/esm2020/lib/compose/document.pane.component.mjs +3 -3
  107. package/esm2020/lib/compose/events/events.component.mjs +3 -3
  108. package/esm2020/lib/compose/form-selector/form-selector.sheet.mjs +3 -3
  109. package/esm2020/lib/compose/form.component.mjs +3 -3
  110. package/esm2020/lib/compose/new-menu.component.mjs +5 -5
  111. package/esm2020/lib/compose/privilage.directive.mjs +6 -6
  112. package/esm2020/lib/compose/recipient-resolver.service.mjs +3 -3
  113. package/esm2020/lib/compose/state.component.mjs +3 -3
  114. package/esm2020/lib/compose/tag/tags.component.mjs +3 -3
  115. package/esm2020/lib/compose/trace/flow.component.mjs +3 -3
  116. package/esm2020/lib/compose/trace/people.component.mjs +3 -3
  117. package/esm2020/lib/compose/trace/trace.base.mjs +3 -3
  118. package/esm2020/lib/compose/trace/trace.component.mjs +3 -3
  119. package/esm2020/lib/compose/trace/trace.pane.component.mjs +3 -3
  120. package/esm2020/lib/compose/version-compare/version-compare.component.mjs +3 -3
  121. package/esm2020/lib/compose/version-compare/version-compare.directive.mjs +9 -9
  122. package/esm2020/lib/compose/version-compare/version.pane.component.mjs +3 -3
  123. package/esm2020/lib/core/NgComponentOutlet.mjs +3 -3
  124. package/esm2020/lib/core/account.service.mjs +3 -3
  125. package/esm2020/lib/core/animated-icon/animated-icon.directive.mjs +3 -3
  126. package/esm2020/lib/core/avatar/avatar.component.mjs +3 -3
  127. package/esm2020/lib/core/component-factory-resolver.mjs +4 -4
  128. package/esm2020/lib/core/controls/address.input.mjs +3 -3
  129. package/esm2020/lib/core/controls/auto-complete.input.mjs +3 -3
  130. package/esm2020/lib/core/controls/combination-picker-body.mjs +3 -3
  131. package/esm2020/lib/core/controls/combination-picker.mjs +3 -3
  132. package/esm2020/lib/core/controls/combination-pool.mjs +3 -3
  133. package/esm2020/lib/core/controls/file.input.mjs +3 -3
  134. package/esm2020/lib/core/controls/select.input.mjs +3 -3
  135. package/esm2020/lib/core/controls/time-picker.mjs +3 -3
  136. package/esm2020/lib/core/controls/timespan.input.mjs +3 -3
  137. package/esm2020/lib/core/datasource.service.mjs +3 -3
  138. package/esm2020/lib/core/guide/guide.component.mjs +3 -3
  139. package/esm2020/lib/core/guide/guide.service.mjs +3 -3
  140. package/esm2020/lib/core/guide/help-tip.component.mjs +3 -3
  141. package/esm2020/lib/core/http.interceptor.mjs +3 -3
  142. package/esm2020/lib/core/hub.service.mjs +3 -3
  143. package/esm2020/lib/core/identity/identity.component.mjs +3 -3
  144. package/esm2020/lib/core/info/attachment-info.service.mjs +3 -3
  145. package/esm2020/lib/core/info/document-info.service.mjs +3 -3
  146. package/esm2020/lib/core/info/location-info.component.mjs +3 -3
  147. package/esm2020/lib/core/info/map-info.mjs +3 -3
  148. package/esm2020/lib/core/layout/autocomplete.field.mjs +3 -3
  149. package/esm2020/lib/core/layout/checkbox.field.mjs +3 -3
  150. package/esm2020/lib/core/layout/checkbox.mjs +3 -3
  151. package/esm2020/lib/core/layout/date-range.field.mjs +3 -3
  152. package/esm2020/lib/core/layout/date.field.mjs +3 -3
  153. package/esm2020/lib/core/layout/expression.field.mjs +3 -3
  154. package/esm2020/lib/core/layout/file.field.mjs +3 -3
  155. package/esm2020/lib/core/layout/html.field.mjs +3 -3
  156. package/esm2020/lib/core/layout/input.base.mjs +3 -3
  157. package/esm2020/lib/core/layout/input.field.mjs +3 -3
  158. package/esm2020/lib/core/layout/layout.component.mjs +3 -3
  159. package/esm2020/lib/core/layout/numeric.field.mjs +3 -3
  160. package/esm2020/lib/core/layout/select.field.mjs +3 -3
  161. package/esm2020/lib/core/layout/switch.field.mjs +3 -3
  162. package/esm2020/lib/core/layout/textarea.field.mjs +3 -3
  163. package/esm2020/lib/core/layout/timespan.field.mjs +3 -3
  164. package/esm2020/lib/core/lottie-animation.mjs +3 -3
  165. package/esm2020/lib/core/mailbox.service.mjs +6 -4
  166. package/esm2020/lib/core/none.component.mjs +3 -3
  167. package/esm2020/lib/core/pipes/action.pipe.mjs +3 -3
  168. package/esm2020/lib/core/pipes/calendar.pipe.mjs +3 -3
  169. package/esm2020/lib/core/pipes/date-format.pipe.mjs +3 -3
  170. package/esm2020/lib/core/pipes/daterange.pipe.mjs +6 -6
  171. package/esm2020/lib/core/pipes/difference.pipe.mjs +3 -3
  172. package/esm2020/lib/core/pipes/duration-format.pipe.mjs +3 -3
  173. package/esm2020/lib/core/pipes/duration.pipe.mjs +3 -3
  174. package/esm2020/lib/core/pipes/form.pipe.mjs +3 -3
  175. package/esm2020/lib/core/pipes/join.pipe.mjs +3 -3
  176. package/esm2020/lib/core/pipes/role.pipe.mjs +3 -3
  177. package/esm2020/lib/core/pipes/sanitize-html.pipe.mjs +3 -3
  178. package/esm2020/lib/core/pipes/sort.pipe.mjs +6 -6
  179. package/esm2020/lib/core/pipes/state.pipe.mjs +3 -3
  180. package/esm2020/lib/core/pipes/time-ago.pipe.mjs +3 -3
  181. package/esm2020/lib/core/pipes/translate.pipe.mjs +6 -6
  182. package/esm2020/lib/core/pipes/type-value.pipe.mjs +3 -3
  183. package/esm2020/lib/core/pipes/user-name.pipe.mjs +3 -3
  184. package/esm2020/lib/core/popup/popup.component.mjs +3 -3
  185. package/esm2020/lib/core/popup/popup.service.mjs +3 -3
  186. package/esm2020/lib/core/popup/tooltip.directive.mjs +6 -6
  187. package/esm2020/lib/core/prompt/ask/ask.dialog.mjs +3 -3
  188. package/esm2020/lib/core/prompt/mask/mask.component.mjs +3 -3
  189. package/esm2020/lib/core/prompt.service.mjs +3 -3
  190. package/esm2020/lib/core/router.mjs +6 -6
  191. package/esm2020/lib/core/save-changes.dialog.mjs +3 -3
  192. package/esm2020/lib/core/session.service.mjs +3 -3
  193. package/esm2020/lib/core/slots/router.directive.mjs +3 -3
  194. package/esm2020/lib/core/slots/router.service.mjs +3 -3
  195. package/esm2020/lib/core/slots/slots.component.mjs +3 -3
  196. package/esm2020/lib/core/tagging/documents.component.mjs +3 -3
  197. package/esm2020/lib/core/tagging/edit-input.component.mjs +3 -3
  198. package/esm2020/lib/core/tagging/emoji.component.mjs +3 -3
  199. package/esm2020/lib/core/tagging/tagging-item.directive.mjs +3 -3
  200. package/esm2020/lib/core/tagging/tagging.component-base.mjs +3 -3
  201. package/esm2020/lib/core/tagging/tagging.directive.mjs +3 -3
  202. package/esm2020/lib/core/tagging/tagging.pipe.mjs +3 -3
  203. package/esm2020/lib/core/tagging/users.component.mjs +3 -3
  204. package/esm2020/lib/core/translate.service.mjs +3 -3
  205. package/esm2020/lib/core/translations.mjs +46 -1
  206. package/esm2020/lib/core/window-title.service.mjs +3 -3
  207. package/esm2020/lib/cube/accum/accum.component.mjs +3 -3
  208. package/esm2020/lib/cube/chart/chart.component.mjs +3 -3
  209. package/esm2020/lib/cube/cube-info.service.mjs +3 -3
  210. package/esm2020/lib/cube/cube-menu.component.mjs +3 -3
  211. package/esm2020/lib/cube/cube-view.component.mjs +3 -3
  212. package/esm2020/lib/cube/cube.service.mjs +4 -4
  213. package/esm2020/lib/cube/explore/document-item.component.mjs +3 -3
  214. package/esm2020/lib/cube/explore/explore-item.component.mjs +3 -3
  215. package/esm2020/lib/cube/explore/explore-items.component.mjs +3 -3
  216. package/esm2020/lib/cube/explore/explore.pane.component.mjs +3 -3
  217. package/esm2020/lib/cube/explore/item-resolver.service.mjs +6 -6
  218. package/esm2020/lib/cube/explore/item.pane.component.mjs +3 -3
  219. package/esm2020/lib/cube/filter/filter-tags.component.exp.mjs +3 -3
  220. package/esm2020/lib/cube/filter/filter.component.mjs +3 -3
  221. package/esm2020/lib/cube/grid/grid.component.mjs +3 -3
  222. package/esm2020/lib/cube/grid/spreadsheet.component.mjs +5 -5
  223. package/esm2020/lib/cube/matrix/matrix.base.mjs +3 -3
  224. package/esm2020/lib/cube/matrix/matrix.mobile.component.mjs +3 -3
  225. package/esm2020/lib/cube/matrix/matrix.pane.component.mjs +3 -3
  226. package/esm2020/lib/cube/matrix/popup.component.mjs +3 -3
  227. package/esm2020/lib/cube/matrix/table.component.mjs +3 -3
  228. package/esm2020/lib/cube/parallel/parallel.component.mjs +3 -3
  229. package/esm2020/lib/cube/pivot/pivot.component.mjs +3 -3
  230. package/esm2020/lib/cube/sum/sum.component.mjs +4 -4
  231. package/esm2020/lib/cube/view-base.mjs +3 -3
  232. package/esm2020/lib/cube/view.mobile.component.mjs +3 -3
  233. package/esm2020/lib/cube/view.pane.component.mjs +3 -3
  234. package/esm2020/lib/dashboard/actions/actions.widget.mjs +3 -3
  235. package/esm2020/lib/dashboard/cube/accum-cube.widget.mjs +4 -4
  236. package/esm2020/lib/dashboard/cube/compare.widget.mjs +12 -12
  237. package/esm2020/lib/dashboard/cube/cube-analysis.base.mjs +4 -4
  238. package/esm2020/lib/dashboard/cube/cube-analysis.widget.mjs +4 -4
  239. package/esm2020/lib/dashboard/cube/cube-chart.widget.mjs +3 -3
  240. package/esm2020/lib/dashboard/cube/documents.widget.mjs +4 -4
  241. package/esm2020/lib/dashboard/cube/filter/filter.component.mjs +4 -4
  242. package/esm2020/lib/dashboard/dashboard.component.mjs +3 -3
  243. package/esm2020/lib/dashboard/dashboard.pane.component.mjs +3 -3
  244. package/esm2020/lib/dashboard/recents/recents.widget.mjs +3 -3
  245. package/esm2020/lib/dashboard/score/activity.widget.mjs +3 -3
  246. package/esm2020/lib/dashboard/score/compare-groups.widget.mjs +3 -3
  247. package/esm2020/lib/dashboard/score/peers-performance.widget.mjs +3 -3
  248. package/esm2020/lib/dashboard/score/pending-results.widget.mjs +3 -3
  249. package/esm2020/lib/dashboard/score/personal-score.widget.mjs +3 -3
  250. package/esm2020/lib/dashboard/widget-item.component.mjs +3 -3
  251. package/esm2020/lib/desktop.module.mjs +4 -4
  252. package/esm2020/lib/home/about/about.dialog.mjs +3 -3
  253. package/esm2020/lib/home/home-base.component.mjs +3 -3
  254. package/esm2020/lib/home/home.desktop.component.mjs +3 -3
  255. package/esm2020/lib/home/home.mobile.component.mjs +3 -3
  256. package/esm2020/lib/home/notifications/notifications.component.mjs +3 -3
  257. package/esm2020/lib/home/options/options.component.mjs +3 -3
  258. package/esm2020/lib/home/outofoffice/outofoffice.component.mjs +3 -3
  259. package/esm2020/lib/home/search.service.mjs +3 -3
  260. package/esm2020/lib/home/sign/sign.component.mjs +3 -3
  261. package/esm2020/lib/home/tools.component.mjs +3 -3
  262. package/esm2020/lib/impersonate/impersonate.component.mjs +3 -3
  263. package/esm2020/lib/mobile.module.mjs +4 -4
  264. package/esm2020/lib/modules/chart.module.mjs +4 -4
  265. package/esm2020/lib/modules/circular-gauge.module.mjs +4 -4
  266. package/esm2020/lib/modules/datepicker.intl.mjs +3 -3
  267. package/esm2020/lib/modules/dayjs.module.mjs +4 -4
  268. package/esm2020/lib/modules/diagram.module.mjs +4 -4
  269. package/esm2020/lib/modules/gantt.module.mjs +4 -4
  270. package/esm2020/lib/modules/grid.module.mjs +4 -4
  271. package/esm2020/lib/modules/material.module.mjs +4 -4
  272. package/esm2020/lib/modules/paginator.intl.mjs +3 -3
  273. package/esm2020/lib/modules/pivot.module.mjs +4 -4
  274. package/esm2020/lib/modules/schedule.module.mjs +4 -4
  275. package/esm2020/lib/modules/spreadsheet.module.mjs +4 -4
  276. package/esm2020/lib/modules/stepper.intl.mjs +3 -3
  277. package/esm2020/lib/modules/texteditor.module.mjs +4 -4
  278. package/esm2020/lib/notifications/filter.component.mjs +3 -3
  279. package/esm2020/lib/notifications/notifications-table.component.mjs +3 -3
  280. package/esm2020/lib/notifications/notifications.mobile.component.mjs +3 -3
  281. package/esm2020/lib/notifications/notifications.pane.component.mjs +3 -3
  282. package/esm2020/lib/notifications/notifications.service.mjs +3 -3
  283. package/esm2020/lib/notifications/types/commented.notification.mjs +3 -3
  284. package/esm2020/lib/notifications/types/cube-anomaly.notification.mjs +3 -3
  285. package/esm2020/lib/notifications/types/escalated.notification.mjs +3 -3
  286. package/esm2020/lib/notifications/types/liked.notification.mjs +3 -3
  287. package/esm2020/lib/notifications/types/long-running-task.notification.mjs +3 -3
  288. package/esm2020/lib/notifications/types/notification-base.mjs +3 -3
  289. package/esm2020/lib/notifications/types/nudge.notification.mjs +3 -3
  290. package/esm2020/lib/notifications/types/state-changed.notification.mjs +3 -3
  291. package/esm2020/lib/notifications/types/tagged.notification.mjs +3 -3
  292. package/esm2020/lib/notifications/types/text.notification.mjs +3 -3
  293. package/esm2020/lib/notifications/types/upcoming-event.notification.mjs +3 -3
  294. package/esm2020/lib/options/options.component.mjs +3 -3
  295. package/esm2020/lib/options/options.service.mjs +3 -3
  296. package/esm2020/lib/reports/arguments-component.mjs +3 -3
  297. package/esm2020/lib/reports/cube/documents.component.mjs +3 -3
  298. package/esm2020/lib/reports/cube/grid-documents.component.mjs +3 -3
  299. package/esm2020/lib/reports/cube/table-documents.component.mjs +3 -3
  300. package/esm2020/lib/reports/cube/usage-args.component.mjs +4 -4
  301. package/esm2020/lib/reports/cube/usage-base.mjs +5 -4
  302. package/esm2020/lib/reports/cube/usage-chart.component.mjs +4 -4
  303. package/esm2020/lib/reports/cube/usage-pivot.component.mjs +4 -4
  304. package/esm2020/lib/reports/cube/usage.component.mjs +6 -7
  305. package/esm2020/lib/reports/report-viewer.component.mjs +3 -3
  306. package/esm2020/lib/reports/report.mobile.component.mjs +3 -3
  307. package/esm2020/lib/reports/report.pane.component.mjs +3 -3
  308. package/esm2020/lib/reports/reports-menu.component.mjs +3 -3
  309. package/esm2020/lib/reports/substitution/substitution.component.mjs +3 -3
  310. package/esm2020/lib/reports/table/table-view.component.mjs +3 -3
  311. package/esm2020/lib/reports/tasks/tasks.component.mjs +4 -4
  312. package/esm2020/lib/scheduler/schedule.component.mjs +3 -3
  313. package/esm2020/lib/scheduler/scheduler.mobile.component.mjs +3 -3
  314. package/esm2020/lib/scheduler/scheduler.pane.component.mjs +3 -3
  315. package/esm2020/lib/shared.module.mjs +11 -11
  316. package/esm2020/lib/system.module.mjs +58 -12
  317. package/esm2020/lib/views/cube/chart.component.mjs +5 -5
  318. package/esm2020/lib/views/cube/cube-base.mjs +3 -3
  319. package/esm2020/lib/views/cube/explore.component.mjs +4 -4
  320. package/esm2020/lib/views/cube/matrix.component.mjs +4 -4
  321. package/esm2020/lib/views/cube/parallel.component.mjs +4 -4
  322. package/esm2020/lib/views/cube/pivot.component.mjs +4 -4
  323. package/esm2020/lib/views/cube/sum.component.mjs +5 -5
  324. package/esm2020/lib/views/cube/view.component.mjs +4 -4
  325. package/esm2020/lib/views/timeline/timeline.component.exp.mjs +3 -3
  326. package/esm2020/lib/views/view-item.component.mjs +3 -3
  327. package/esm2020/lib/views/views.component.mjs +3 -3
  328. package/esm2020/lib/views/views.mobile.component.mjs +3 -3
  329. package/esm2020/lib/views/views.pane.component.mjs +3 -3
  330. package/esm2020/public-api.mjs +2 -2
  331. package/fesm2015/bizdoc-core.mjs +2254 -1038
  332. package/fesm2015/bizdoc-core.mjs.map +1 -1
  333. package/fesm2020/bizdoc-core.mjs +2245 -1038
  334. package/fesm2020/bizdoc-core.mjs.map +1 -1
  335. package/lib/admin/configuration-designer/designer-element.component.d.ts +24 -0
  336. package/lib/admin/configuration-designer/designer.base.d.ts +79 -0
  337. package/lib/admin/configuration-designer/designer.component.d.ts +33 -0
  338. package/lib/admin/configuration-designer/elements/action.component.d.ts +17 -0
  339. package/lib/admin/configuration-designer/elements/analysis-view.component.d.ts +19 -0
  340. package/lib/admin/configuration-designer/elements/analysis-widget.component.d.ts +19 -0
  341. package/lib/admin/configuration-designer/elements/anomaly-rule.component.d.ts +17 -0
  342. package/lib/admin/configuration-designer/elements/box-form.component.d.ts +20 -0
  343. package/lib/admin/configuration-designer/elements/cube-view.component.d.ts +14 -0
  344. package/lib/admin/configuration-designer/elements/cube.component.d.ts +44 -0
  345. package/lib/admin/configuration-designer/elements/documents-report.component.d.ts +37 -0
  346. package/lib/admin/configuration-designer/elements/documents-widget.component.d.ts +18 -0
  347. package/lib/admin/configuration-designer/elements/explore-view.component.d.ts +15 -0
  348. package/lib/admin/configuration-designer/elements/folder.component.d.ts +17 -0
  349. package/lib/admin/configuration-designer/elements/form.component.d.ts +36 -0
  350. package/lib/admin/configuration-designer/elements/guide.component.d.ts +18 -0
  351. package/lib/admin/configuration-designer/elements/matrix-view.component.d.ts +17 -0
  352. package/lib/admin/configuration-designer/elements/parallel-view.component.d.ts +18 -0
  353. package/lib/admin/configuration-designer/elements/performance-widget.component.d.ts +32 -0
  354. package/lib/admin/configuration-designer/elements/pivot-view.component.d.ts +19 -0
  355. package/lib/admin/configuration-designer/elements/report.component.d.ts +20 -0
  356. package/lib/admin/configuration-designer/elements/return-to-role-action.component.d.ts +19 -0
  357. package/lib/admin/configuration-designer/elements/role.component.d.ts +20 -0
  358. package/lib/admin/configuration-designer/elements/rule.component.d.ts +17 -0
  359. package/lib/admin/configuration-designer/elements/state.component.d.ts +19 -0
  360. package/lib/admin/configuration-designer/elements/sum-view.component.d.ts +16 -0
  361. package/lib/admin/configuration-designer/elements/tasks-report.component.d.ts +16 -0
  362. package/lib/admin/configuration-designer/elements/type.component.d.ts +20 -0
  363. package/lib/admin/configuration-designer/elements/usage-report.component.d.ts +17 -0
  364. package/lib/admin/configuration-designer/elements/utility.component.d.ts +17 -0
  365. package/lib/admin/configuration-designer/elements/view.component.d.ts +15 -0
  366. package/lib/admin/configuration-designer/elements/widget.component.d.ts +17 -0
  367. package/lib/admin/configuration-designer/privileges.component.d.ts +25 -0
  368. package/lib/admin/document-trace/document-trace.component.d.ts +3 -3
  369. package/lib/admin/form/designer/designer.component.d.ts +46 -0
  370. package/lib/admin/form/form.resolve.service.d.ts +3 -3
  371. package/lib/admin/form/workflow/workflow.component.d.ts +2 -2
  372. package/lib/admin/patterns/patterns.component.d.ts +3 -3
  373. package/lib/admin/{form/form.service.d.ts → system.service.d.ts} +12 -7
  374. package/lib/compose/new-menu.component.d.ts +1 -1
  375. package/lib/core/component-factory-resolver.d.ts +1 -1
  376. package/lib/core/mailbox.service.d.ts +7 -0
  377. package/lib/core/translations.d.ts +49 -0
  378. package/lib/cube/sum/sum.component.d.ts +2 -1
  379. package/lib/dashboard/cube/accum-cube.widget.d.ts +2 -2
  380. package/lib/dashboard/cube/compare.widget.d.ts +3 -3
  381. package/lib/dashboard/cube/cube-analysis.base.d.ts +3 -3
  382. package/lib/dashboard/cube/cube-analysis.widget.d.ts +2 -2
  383. package/lib/dashboard/cube/documents.widget.d.ts +11 -1
  384. package/lib/dashboard/cube/filter/filter.component.d.ts +2 -2
  385. package/lib/reports/cube/usage-args.component.d.ts +2 -2
  386. package/lib/reports/cube/usage-base.d.ts +7 -6
  387. package/lib/reports/cube/usage-chart.component.d.ts +2 -2
  388. package/lib/reports/cube/usage-pivot.component.d.ts +2 -2
  389. package/lib/reports/cube/usage.component.d.ts +3 -4
  390. package/lib/reports/tasks/tasks.component.d.ts +4 -2
  391. package/lib/shared.module.d.ts +1 -1
  392. package/lib/system.module.d.ts +59 -27
  393. package/lib/views/cube/chart.component.d.ts +4 -4
  394. package/lib/views/cube/explore.component.d.ts +4 -4
  395. package/lib/views/cube/matrix.component.d.ts +8 -7
  396. package/lib/views/cube/parallel.component.d.ts +8 -3
  397. package/lib/views/cube/pivot.component.d.ts +4 -3
  398. package/lib/views/cube/sum.component.d.ts +5 -3
  399. package/lib/views/cube/view.component.d.ts +4 -4
  400. package/package.json +18 -18
  401. package/public-api.d.ts +1 -1
  402. package/esm2020/lib/admin/form/form.service.mjs +0 -43
@@ -0,0 +1,49 @@
1
+ import { __decorate } from "tslib";
2
+ import { Component } from "@angular/core";
3
+ import { Validators } from "@angular/forms";
4
+ import { BizDoc } from "../../../core/decorators";
5
+ import { DesignerCubeElementComponent } from "../designer.base";
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common";
8
+ import * as i2 from "@angular/forms";
9
+ import * as i3 from "@angular/material/core";
10
+ import * as i4 from "@angular/material/form-field";
11
+ import * as i5 from "@angular/material/select";
12
+ import * as i6 from "../../../cube/accum/accum.component";
13
+ import * as i7 from "../../../cube/chart/chart.component";
14
+ import * as i8 from "../../../core/pipes/translate.pipe";
15
+ let AnalysisWidgetDesignComponent = class AnalysisWidgetDesignComponent extends DesignerCubeElementComponent {
16
+ constructor() {
17
+ super(...arguments);
18
+ this.form = this._fb.group({
19
+ cube: null,
20
+ xAxis: this._fb.control(null, Validators.required),
21
+ series: null,
22
+ indices: null,
23
+ filters: this._fb.group({}),
24
+ chartType: null,
25
+ indicesChartType: null,
26
+ scope: null
27
+ });
28
+ }
29
+ get isAccum() {
30
+ switch (this.args.chartType) {
31
+ case 'Pie':
32
+ case 'Doughnut':
33
+ case 'HalfDoughnut':
34
+ case 'Funnel':
35
+ return true;
36
+ }
37
+ }
38
+ };
39
+ AnalysisWidgetDesignComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AnalysisWidgetDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
40
+ AnalysisWidgetDesignComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: AnalysisWidgetDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"editMode; else info\">\r\n <form *ngIf=\"cubes.length; else none\" 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>{{'XAxis'|translate}}</mat-label>\r\n <mat-select formControlName=\"xAxis\" required (selectionChange)=\"xAxisSelected($event)\" multiple>\r\n <mat-option *ngFor=\"let x of cube?.axes\" [value]=\"x.name\">{{x.title || x.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Series'|translate}}</mat-label>\r\n <mat-select formControlName=\"series\" (selectionChange)=\"seriesSelected($event)\" multiple [disabled]=\"isAccum\">\r\n <mat-option *ngFor=\"let x of secondaryAxes\" [value]=\"x.name\">{{x.title || x.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'ChartType'|translate}}</mat-label>\r\n <mat-select formControlName=\"chartType\">\r\n <mat-option>{{'Default'|translate}}</mat-option>\r\n <mat-option value=\"Pie\">{{'Pie'|translate}}</mat-option>\r\n <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\r\n <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\r\n <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar\">{{'StackingBar'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar100\">{{'StackingBar100'|translate}}</mat-option>\r\n <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\r\n <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\r\n <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\r\n <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\r\n <mat-option value=\"Doughnut\">{{'Doughnut'|translate}}</mat-option>\r\n <mat-option value=\"HalfDoughnut\">{{'HalfDoughnut'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea\">{{'StackingArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea100\">{{'StackingArea100'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn\">{{'StackingColumn'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn100\">{{'StackingColumn100'|translate}}</mat-option>\r\n <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\r\n <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\r\n <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\r\n <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\r\n <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingStepArea\">{{'StackingStepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine\">{{'StackingLine'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine100\">{{'StackingLine100'|translate}}</mat-option>\r\n <mat-option value=\"Funnel\">{{'Funnel'|translate}}</mat-option>\r\n <mat-option value=\"Pyramid\">{{'Pyramid'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <ng-container *ngIf=\"cube?.indices?.length\">\r\n <mat-form-field>\r\n <mat-label>{{'Indices'|translate}}</mat-label>\r\n <mat-select formControlName=\"indices\" multiple [disabled]=\"isAccum\">\r\n <mat-option *ngFor=\"let x of cube.indices\" [value]=\"x.name\">{{x.title || x.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'IndicesChartType'|translate}}</mat-label>\r\n <mat-select formControlName=\"indicesChartType\" [disabled]=\"isAccum\">\r\n <mat-option>{{'Default'|translate}}</mat-option>\r\n <mat-option value=\"Pie\">{{'Pie'|translate}}</mat-option>\r\n <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\r\n <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\r\n <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar\">{{'StackingBar'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar100\">{{'StackingBar100'|translate}}</mat-option>\r\n <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\r\n <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\r\n <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\r\n <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\r\n <mat-option value=\"Doughnut\">{{'Doughnut'|translate}}</mat-option>\r\n <mat-option value=\"HalfDoughnut\">{{'HalfDoughnut'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea\">{{'StackingArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea100\">{{'StackingArea100'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn\">{{'StackingColumn'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn100\">{{'StackingColumn100'|translate}}</mat-option>\r\n <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\r\n <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\r\n <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\r\n <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\r\n <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingStepArea\">{{'StackingStepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine\">{{'StackingLine'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine100\">{{'StackingLine100'|translate}}</mat-option>\r\n <mat-option value=\"Funnel\">{{'Funnel'|translate}}</mat-option>\r\n <mat-option value=\"Pyramid\">{{'Pyramid'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </ng-container>\r\n </form>\r\n <div *ngIf=\"args.xAxis\">\r\n <ng-container [ngSwitch]=\"isAccum\">\r\n <bizdoc-cube-accum *ngSwitchCase=\"true\"\r\n [chartType]=\"args.chartType\"\r\n [width]=\"200\"\r\n [scope]=\"args.scope\"\r\n [cube]=\"cube.name\"\r\n [filters]=\"args.filters\"\r\n [xAxis]=\"args.xAxis\"></bizdoc-cube-accum>\r\n <bizdoc-cube-chart *ngSwitchDefault\r\n [cube]=\"cube.name\"\r\n [xAxis]=\"args.xAxis\"\r\n [series]=\"args.series\"\r\n [indices]=\"args.indices\"\r\n [filters]=\"args.filters\"\r\n [chartType]=\"args.chartType\"\r\n [indicesChartType]=\"args.indicesChartType\"\r\n [width]=\"200\"\r\n [scope]=\"args.scope\"></bizdoc-cube-chart>\r\n </ng-container>\r\n </div>\r\n</ng-container>\r\n<!---->\r\n<ng-template #info></ng-template>\r\n<ng-template #none>{{''}}</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.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { 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.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: "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.CubeAccumulationChartComponent, selector: "bizdoc-cube-accum", inputs: ["palettes", "height", "width", "cube", "xAxis", "filters", "chartType", "scope", "loading"], outputs: ["loadingChange", "explore"] }, { kind: "component", type: i7.CubeChartComponent, selector: "bizdoc-cube-chart", inputs: ["width", "height", "cube", "xAxis", "series", "indices", "filters", "yAxis", "chartType", "indicesChartType", "scope", "loading", "palettes"], outputs: ["explore", "loadingChange"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] });
41
+ AnalysisWidgetDesignComponent = __decorate([
42
+ BizDoc({ selector: 'analysis-widget-designer' })
43
+ ], AnalysisWidgetDesignComponent);
44
+ export { AnalysisWidgetDesignComponent };
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AnalysisWidgetDesignComponent, decorators: [{
46
+ type: Component,
47
+ args: [{ template: "<ng-container *ngIf=\"editMode; else info\">\r\n <form *ngIf=\"cubes.length; else none\" 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>{{'XAxis'|translate}}</mat-label>\r\n <mat-select formControlName=\"xAxis\" required (selectionChange)=\"xAxisSelected($event)\" multiple>\r\n <mat-option *ngFor=\"let x of cube?.axes\" [value]=\"x.name\">{{x.title || x.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Series'|translate}}</mat-label>\r\n <mat-select formControlName=\"series\" (selectionChange)=\"seriesSelected($event)\" multiple [disabled]=\"isAccum\">\r\n <mat-option *ngFor=\"let x of secondaryAxes\" [value]=\"x.name\">{{x.title || x.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'ChartType'|translate}}</mat-label>\r\n <mat-select formControlName=\"chartType\">\r\n <mat-option>{{'Default'|translate}}</mat-option>\r\n <mat-option value=\"Pie\">{{'Pie'|translate}}</mat-option>\r\n <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\r\n <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\r\n <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar\">{{'StackingBar'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar100\">{{'StackingBar100'|translate}}</mat-option>\r\n <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\r\n <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\r\n <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\r\n <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\r\n <mat-option value=\"Doughnut\">{{'Doughnut'|translate}}</mat-option>\r\n <mat-option value=\"HalfDoughnut\">{{'HalfDoughnut'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea\">{{'StackingArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea100\">{{'StackingArea100'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn\">{{'StackingColumn'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn100\">{{'StackingColumn100'|translate}}</mat-option>\r\n <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\r\n <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\r\n <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\r\n <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\r\n <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingStepArea\">{{'StackingStepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine\">{{'StackingLine'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine100\">{{'StackingLine100'|translate}}</mat-option>\r\n <mat-option value=\"Funnel\">{{'Funnel'|translate}}</mat-option>\r\n <mat-option value=\"Pyramid\">{{'Pyramid'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <ng-container *ngIf=\"cube?.indices?.length\">\r\n <mat-form-field>\r\n <mat-label>{{'Indices'|translate}}</mat-label>\r\n <mat-select formControlName=\"indices\" multiple [disabled]=\"isAccum\">\r\n <mat-option *ngFor=\"let x of cube.indices\" [value]=\"x.name\">{{x.title || x.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'IndicesChartType'|translate}}</mat-label>\r\n <mat-select formControlName=\"indicesChartType\" [disabled]=\"isAccum\">\r\n <mat-option>{{'Default'|translate}}</mat-option>\r\n <mat-option value=\"Pie\">{{'Pie'|translate}}</mat-option>\r\n <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\r\n <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\r\n <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar\">{{'StackingBar'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar100\">{{'StackingBar100'|translate}}</mat-option>\r\n <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\r\n <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\r\n <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\r\n <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\r\n <mat-option value=\"Doughnut\">{{'Doughnut'|translate}}</mat-option>\r\n <mat-option value=\"HalfDoughnut\">{{'HalfDoughnut'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea\">{{'StackingArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea100\">{{'StackingArea100'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn\">{{'StackingColumn'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn100\">{{'StackingColumn100'|translate}}</mat-option>\r\n <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\r\n <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\r\n <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\r\n <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\r\n <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingStepArea\">{{'StackingStepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine\">{{'StackingLine'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine100\">{{'StackingLine100'|translate}}</mat-option>\r\n <mat-option value=\"Funnel\">{{'Funnel'|translate}}</mat-option>\r\n <mat-option value=\"Pyramid\">{{'Pyramid'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </ng-container>\r\n </form>\r\n <div *ngIf=\"args.xAxis\">\r\n <ng-container [ngSwitch]=\"isAccum\">\r\n <bizdoc-cube-accum *ngSwitchCase=\"true\"\r\n [chartType]=\"args.chartType\"\r\n [width]=\"200\"\r\n [scope]=\"args.scope\"\r\n [cube]=\"cube.name\"\r\n [filters]=\"args.filters\"\r\n [xAxis]=\"args.xAxis\"></bizdoc-cube-accum>\r\n <bizdoc-cube-chart *ngSwitchDefault\r\n [cube]=\"cube.name\"\r\n [xAxis]=\"args.xAxis\"\r\n [series]=\"args.series\"\r\n [indices]=\"args.indices\"\r\n [filters]=\"args.filters\"\r\n [chartType]=\"args.chartType\"\r\n [indicesChartType]=\"args.indicesChartType\"\r\n [width]=\"200\"\r\n [scope]=\"args.scope\"></bizdoc-cube-chart>\r\n </ng-container>\r\n </div>\r\n</ng-container>\r\n<!---->\r\n<ng-template #info></ng-template>\r\n<ng-template #none>{{''}}</ng-template>\r\n" }]
48
+ }] });
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHlzaXMtd2lkZ2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvYWRtaW4vY29uZmlndXJhdGlvbi1kZXNpZ25lci9lbGVtZW50cy9hbmFseXNpcy13aWRnZXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9jb25maWd1cmF0aW9uLWRlc2lnbmVyL2VsZW1lbnRzL2FuYWx5c2lzLXdpZGdldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWxELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7Ozs7O0lBSW5ELDZCQUE2QixTQUE3Qiw2QkFBOEIsU0FBUSw0QkFBZ0Q7OztRQUN4RixTQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDN0IsSUFBSSxFQUFFLElBQUk7WUFDVixLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDbEQsTUFBTSxFQUFFLElBQUk7WUFDWixPQUFPLEVBQUUsSUFBSTtZQUNiLE9BQU8sRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDM0IsU0FBUyxFQUFFLElBQUk7WUFDZixnQkFBZ0IsRUFBRSxJQUFJO1lBQ3RCLEtBQUssRUFBRSxJQUFJO1NBQ1osQ0FBQyxDQUFDO0tBVUo7SUFUQyxJQUFJLE9BQU87UUFDVCxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQzNCLEtBQUssS0FBSyxDQUFDO1lBQ1gsS0FBSyxVQUFVLENBQUM7WUFDaEIsS0FBSyxjQUFjLENBQUM7WUFDcEIsS0FBSyxRQUFRO2dCQUNYLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7SUFDSCxDQUFDO0NBQ0YsQ0FBQTswSEFwQlksNkJBQTZCOzhHQUE3Qiw2QkFBNkIsMkVDUjFDLHU3T0FzSEE7QUQ5R2EsNkJBQTZCO0lBRHpDLE1BQU0sQ0FBQyxFQUFFLFFBQVEsRUFBRSwwQkFBMEIsRUFBRSxDQUFDO0dBQ3BDLDZCQUE2QixDQW9CekM7U0FwQlksNkJBQTZCOzJGQUE3Qiw2QkFBNkI7a0JBRnpDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgQml6RG9jIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvZGVjb3JhdG9yc1wiO1xyXG5pbXBvcnQgeyBDaGFydFNldHRpbmdzTW9kZWwgfSBmcm9tIFwiLi4vLi4vLi4vZGFzaGJvYXJkL2N1YmUvY3ViZS1hbmFseXNpcy5iYXNlXCI7XHJcbmltcG9ydCB7IERlc2lnbmVyQ3ViZUVsZW1lbnRDb21wb25lbnQgfSBmcm9tIFwiLi4vZGVzaWduZXIuYmFzZVwiO1xyXG5cclxuQENvbXBvbmVudCh7IHRlbXBsYXRlVXJsOiAnYW5hbHlzaXMtd2lkZ2V0LmNvbXBvbmVudC5odG1sJyB9KVxyXG5AQml6RG9jKHsgc2VsZWN0b3I6ICdhbmFseXNpcy13aWRnZXQtZGVzaWduZXInIH0pXHJcbmV4cG9ydCBjbGFzcyBBbmFseXNpc1dpZGdldERlc2lnbkNvbXBvbmVudCBleHRlbmRzIERlc2lnbmVyQ3ViZUVsZW1lbnRDb21wb25lbnQ8Q2hhcnRTZXR0aW5nc01vZGVsPiBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcmVhZG9ubHkgZm9ybSA9IHRoaXMuX2ZiLmdyb3VwKHtcclxuICAgIGN1YmU6IG51bGwsXHJcbiAgICB4QXhpczogdGhpcy5fZmIuY29udHJvbChudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgIHNlcmllczogbnVsbCxcclxuICAgIGluZGljZXM6IG51bGwsXHJcbiAgICBmaWx0ZXJzOiB0aGlzLl9mYi5ncm91cCh7fSksXHJcbiAgICBjaGFydFR5cGU6IG51bGwsXHJcbiAgICBpbmRpY2VzQ2hhcnRUeXBlOiBudWxsLFxyXG4gICAgc2NvcGU6IG51bGxcclxuICB9KTtcclxuICBnZXQgaXNBY2N1bSgpIHtcclxuICAgIHN3aXRjaCAodGhpcy5hcmdzLmNoYXJ0VHlwZSkge1xyXG4gICAgICBjYXNlICdQaWUnOlxyXG4gICAgICBjYXNlICdEb3VnaG51dCc6XHJcbiAgICAgIGNhc2UgJ0hhbGZEb3VnaG51dCc6XHJcbiAgICAgIGNhc2UgJ0Z1bm5lbCc6XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJlZGl0TW9kZTsgZWxzZSBpbmZvXCI+XHJcbiAgPGZvcm0gKm5nSWY9XCJjdWJlcy5sZW5ndGg7IGVsc2Ugbm9uZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNsYXNzPVwiY29sdW1uXCI+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQgKm5nSWY9XCJjdWJlcy5sZW5ndGggPiAxXCI+XHJcbiAgICAgIDxtYXQtbGFiZWw+e3snQ3ViZSd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgICAgPG1hdC1zZWxlY3QgcmVxdWlyZWQgKHNlbGVjdGlvbkNoYW5nZSk9XCJjdWJlU2VsZWN0ZWQoJGV2ZW50KVwiPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBjIG9mIGN1YmVzXCIgW3ZhbHVlXT1cImNcIj57e2MudGl0bGV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgPG1hdC1sYWJlbD57eydYQXhpcyd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwieEF4aXNcIiByZXF1aXJlZCAoc2VsZWN0aW9uQ2hhbmdlKT1cInhBeGlzU2VsZWN0ZWQoJGV2ZW50KVwiIG11bHRpcGxlPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCB4IG9mIGN1YmU/LmF4ZXNcIiBbdmFsdWVdPVwieC5uYW1lXCI+e3t4LnRpdGxlIHx8IHgubmFtZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8bWF0LWxhYmVsPnt7J1Nlcmllcyd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwic2VyaWVzXCIgKHNlbGVjdGlvbkNoYW5nZSk9XCJzZXJpZXNTZWxlY3RlZCgkZXZlbnQpXCIgbXVsdGlwbGUgW2Rpc2FibGVkXT1cImlzQWNjdW1cIj5cclxuICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgeCBvZiBzZWNvbmRhcnlBeGVzXCIgW3ZhbHVlXT1cIngubmFtZVwiPnt7eC50aXRsZSB8fCB4Lm5hbWV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgPG1hdC1sYWJlbD57eydDaGFydFR5cGUnfHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XHJcbiAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cImNoYXJ0VHlwZVwiPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uPnt7J0RlZmF1bHQnfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiUGllXCI+e3snUGllJ3x0cmFuc2xhdGV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cIkNvbHVtblwiPnt7J0NvbHVtbid8dHJhbnNsYXRlfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJCYXJcIj57eydCYXInfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiQnViYmxlXCI+e3snQnViYmxlJ3x0cmFuc2xhdGV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cIlN0YWNraW5nQmFyXCI+e3snU3RhY2tpbmdCYXInfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiU3RhY2tpbmdCYXIxMDBcIj57eydTdGFja2luZ0JhcjEwMCd8dHJhbnNsYXRlfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJMaW5lXCI+e3snTGluZSd8dHJhbnNsYXRlfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJTcGxpbmVcIj57eydTcGxpbmUnfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiQXJlYVwiPnt7J0FyZWEnfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiU3BsaW5lQXJlYVwiPnt7J1NwbGluZUFyZWEnfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiRG91Z2hudXRcIj57eydEb3VnaG51dCd8dHJhbnNsYXRlfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJIYWxmRG91Z2hudXRcIj57eydIYWxmRG91Z2hudXQnfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiU3RhY2tpbmdBcmVhXCI+e3snU3RhY2tpbmdBcmVhJ3x0cmFuc2xhdGV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cIlN0YWNraW5nQXJlYTEwMFwiPnt7J1N0YWNraW5nQXJlYTEwMCd8dHJhbnNsYXRlfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJTdGFja2luZ0NvbHVtblwiPnt7J1N0YWNraW5nQ29sdW1uJ3x0cmFuc2xhdGV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cIlN0YWNraW5nQ29sdW1uMTAwXCI+e3snU3RhY2tpbmdDb2x1bW4xMDAnfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiU2NhdHRlclwiPnt7J1NjYXR0ZXInfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiUG9sYXJcIj57eydQb2xhcid8dHJhbnNsYXRlfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJSYWRhclwiPnt7J1JhZGFyJ3x0cmFuc2xhdGV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cIlN0ZXBMaW5lXCI+e3snU3RlcExpbmUnfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiU3RlcEFyZWFcIj57eydTdGVwQXJlYSd8dHJhbnNsYXRlfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJTdGFja2luZ1N0ZXBBcmVhXCI+e3snU3RhY2tpbmdTdGVwQXJlYSd8dHJhbnNsYXRlfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJTdGFja2luZ0xpbmVcIj57eydTdGFja2luZ0xpbmUnfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiU3RhY2tpbmdMaW5lMTAwXCI+e3snU3RhY2tpbmdMaW5lMTAwJ3x0cmFuc2xhdGV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cIkZ1bm5lbFwiPnt7J0Z1bm5lbCd8dHJhbnNsYXRlfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJQeXJhbWlkXCI+e3snUHlyYW1pZCd8dHJhbnNsYXRlfX08L21hdC1vcHRpb24+XHJcbiAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3ViZT8uaW5kaWNlcz8ubGVuZ3RoXCI+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8bWF0LWxhYmVsPnt7J0luZGljZXMnfHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwiaW5kaWNlc1wiIG11bHRpcGxlIFtkaXNhYmxlZF09XCJpc0FjY3VtXCI+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgeCBvZiBjdWJlLmluZGljZXNcIiBbdmFsdWVdPVwieC5uYW1lXCI+e3t4LnRpdGxlIHx8IHgubmFtZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDxtYXQtbGFiZWw+e3snSW5kaWNlc0NoYXJ0VHlwZSd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJpbmRpY2VzQ2hhcnRUeXBlXCIgW2Rpc2FibGVkXT1cImlzQWNjdW1cIj5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uPnt7J0RlZmF1bHQnfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJQaWVcIj57eydQaWUnfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJDb2x1bW5cIj57eydDb2x1bW4nfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJCYXJcIj57eydCYXInfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJCdWJibGVcIj57eydCdWJibGUnfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJTdGFja2luZ0JhclwiPnt7J1N0YWNraW5nQmFyJ3x0cmFuc2xhdGV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiU3RhY2tpbmdCYXIxMDBcIj57eydTdGFja2luZ0JhcjEwMCd8dHJhbnNsYXRlfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cIkxpbmVcIj57eydMaW5lJ3x0cmFuc2xhdGV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiU3BsaW5lXCI+e3snU3BsaW5lJ3x0cmFuc2xhdGV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiQXJlYVwiPnt7J0FyZWEnfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJTcGxpbmVBcmVhXCI+e3snU3BsaW5lQXJlYSd8dHJhbnNsYXRlfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cIkRvdWdobnV0XCI+e3snRG91Z2hudXQnfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJIYWxmRG91Z2hudXRcIj57eydIYWxmRG91Z2hudXQnfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJTdGFja2luZ0FyZWFcIj57eydTdGFja2luZ0FyZWEnfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJTdGFja2luZ0FyZWExMDBcIj57eydTdGFja2luZ0FyZWExMDAnfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJTdGFja2luZ0NvbHVtblwiPnt7J1N0YWNraW5nQ29sdW1uJ3x0cmFuc2xhdGV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiU3RhY2tpbmdDb2x1bW4xMDBcIj57eydTdGFja2luZ0NvbHVtbjEwMCd8dHJhbnNsYXRlfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cIlNjYXR0ZXJcIj57eydTY2F0dGVyJ3x0cmFuc2xhdGV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiUG9sYXJcIj57eydQb2xhcid8dHJhbnNsYXRlfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cIlJhZGFyXCI+e3snUmFkYXInfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJTdGVwTGluZVwiPnt7J1N0ZXBMaW5lJ3x0cmFuc2xhdGV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiU3RlcEFyZWFcIj57eydTdGVwQXJlYSd8dHJhbnNsYXRlfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cIlN0YWNraW5nU3RlcEFyZWFcIj57eydTdGFja2luZ1N0ZXBBcmVhJ3x0cmFuc2xhdGV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiU3RhY2tpbmdMaW5lXCI+e3snU3RhY2tpbmdMaW5lJ3x0cmFuc2xhdGV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiU3RhY2tpbmdMaW5lMTAwXCI+e3snU3RhY2tpbmdMaW5lMTAwJ3x0cmFuc2xhdGV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiRnVubmVsXCI+e3snRnVubmVsJ3x0cmFuc2xhdGV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiUHlyYW1pZFwiPnt7J1B5cmFtaWQnfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvZm9ybT5cclxuICA8ZGl2ICpuZ0lmPVwiYXJncy54QXhpc1wiPlxyXG4gICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiaXNBY2N1bVwiPlxyXG4gICAgICA8Yml6ZG9jLWN1YmUtYWNjdW0gKm5nU3dpdGNoQ2FzZT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2NoYXJ0VHlwZV09XCJhcmdzLmNoYXJ0VHlwZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbd2lkdGhdPVwiMjAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtzY29wZV09XCJhcmdzLnNjb3BlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtjdWJlXT1cImN1YmUubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbZmlsdGVyc109XCJhcmdzLmZpbHRlcnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3hBeGlzXT1cImFyZ3MueEF4aXNcIj48L2JpemRvYy1jdWJlLWFjY3VtPlxyXG4gICAgICA8Yml6ZG9jLWN1YmUtY2hhcnQgKm5nU3dpdGNoRGVmYXVsdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2N1YmVdPVwiY3ViZS5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFt4QXhpc109XCJhcmdzLnhBeGlzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtzZXJpZXNdPVwiYXJncy5zZXJpZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2luZGljZXNdPVwiYXJncy5pbmRpY2VzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWx0ZXJzXT1cImFyZ3MuZmlsdGVyc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbY2hhcnRUeXBlXT1cImFyZ3MuY2hhcnRUeXBlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtpbmRpY2VzQ2hhcnRUeXBlXT1cImFyZ3MuaW5kaWNlc0NoYXJ0VHlwZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbd2lkdGhdPVwiMjAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtzY29wZV09XCJhcmdzLnNjb3BlXCI+PC9iaXpkb2MtY3ViZS1jaGFydD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuPCEtLS0tPlxyXG48bmctdGVtcGxhdGUgI2luZm8+PC9uZy10ZW1wbGF0ZT5cclxuPG5nLXRlbXBsYXRlICNub25lPnt7Jyd9fTwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
@@ -0,0 +1,29 @@
1
+ import { __decorate } from "tslib";
2
+ import { Component } from "@angular/core";
3
+ import { BizDoc } from "../../../core/decorators";
4
+ import { DesignerElementComponent } from "../designer.base";
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/forms";
7
+ import * as i2 from "../../../core/session.service";
8
+ import * as i3 from "@angular/common";
9
+ let AnomalyRuleDesignComponent = class AnomalyRuleDesignComponent extends DesignerElementComponent {
10
+ constructor(_fb, _session) {
11
+ super();
12
+ this._fb = _fb;
13
+ this._session = _session;
14
+ this.form = this._fb.group({});
15
+ }
16
+ ngOnInit() {
17
+ }
18
+ };
19
+ AnomalyRuleDesignComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AnomalyRuleDesignComponent, deps: [{ token: i1.FormBuilder }, { token: i2.SessionService }], target: i0.ɵɵFactoryTarget.Component });
20
+ AnomalyRuleDesignComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: AnomalyRuleDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"editMode; else info\">\r\n <form autocomplete=\"off\" [formGroup]=\"form\">\r\n </form>\r\n</ng-container>\r\n<!---->\r\n<ng-template #info>\r\n <div>\r\n </div>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
21
+ AnomalyRuleDesignComponent = __decorate([
22
+ BizDoc({ selector: 'anomaly-rule-designer' })
23
+ ], AnomalyRuleDesignComponent);
24
+ export { AnomalyRuleDesignComponent };
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: AnomalyRuleDesignComponent, decorators: [{
26
+ type: Component,
27
+ args: [{ template: "<ng-container *ngIf=\"editMode; else info\">\r\n <form autocomplete=\"off\" [formGroup]=\"form\">\r\n </form>\r\n</ng-container>\r\n<!---->\r\n<ng-template #info>\r\n <div>\r\n </div>\r\n</ng-template>\r\n" }]
28
+ }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.SessionService }]; } });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5vbWFseS1ydWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvYWRtaW4vY29uZmlndXJhdGlvbi1kZXNpZ25lci9lbGVtZW50cy9hbm9tYWx5LXJ1bGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9jb25maWd1cmF0aW9uLWRlc2lnbmVyL2VsZW1lbnRzL2Fub21hbHktcnVsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUVsRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFbEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7O0lBSS9DLDBCQUEwQixTQUExQiwwQkFBMkIsU0FBUSx3QkFBK0I7SUFHN0UsWUFBb0IsR0FBZ0IsRUFBVSxRQUF3QjtRQUNwRSxLQUFLLEVBQUUsQ0FBQTtRQURXLFFBQUcsR0FBSCxHQUFHLENBQWE7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQUY3RCxTQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFDOUIsQ0FBQyxDQUFDO0lBR0gsQ0FBQztJQUNELFFBQVE7SUFDUixDQUFDO0NBQ0YsQ0FBQTt1SEFSWSwwQkFBMEI7MkdBQTFCLDBCQUEwQiwyRUNSdkMsbU5BU0E7QUREYSwwQkFBMEI7SUFEcEMsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLHVCQUF1QixFQUFFLENBQUM7R0FDbkMsMEJBQTBCLENBUXRDO1NBUlksMEJBQTBCOzJGQUExQiwwQkFBMEI7a0JBRnRDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IEJpekRvYyB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2RlY29yYXRvcnNcIjtcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRGVzaWduZXJFbGVtZW50Q29tcG9uZW50IH0gZnJvbSBcIi4uL2Rlc2lnbmVyLmJhc2VcIjtcclxuXHJcbkBDb21wb25lbnQoeyB0ZW1wbGF0ZVVybDogJ2Fub21hbHktcnVsZS5jb21wb25lbnQuaHRtbCcgfSlcclxuICBAQml6RG9jKHsgc2VsZWN0b3I6ICdhbm9tYWx5LXJ1bGUtZGVzaWduZXInIH0pXHJcbmV4cG9ydCBjbGFzcyBBbm9tYWx5UnVsZURlc2lnbkNvbXBvbmVudCBleHRlbmRzIERlc2lnbmVyRWxlbWVudENvbXBvbmVudDxNb2RlbD4gaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHJlYWRvbmx5IGZvcm0gPSB0aGlzLl9mYi5ncm91cCh7XHJcbiAgfSk7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZmI6IEZvcm1CdWlsZGVyLCBwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSkge1xyXG4gICAgc3VwZXIoKVxyXG4gIH1cclxuICBuZ09uSW5pdCgpIHtcclxuICB9XHJcbn1cclxuaW50ZXJmYWNlIE1vZGVsIHtcclxufVxyXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiZWRpdE1vZGU7IGVsc2UgaW5mb1wiPlxyXG4gIDxmb3JtIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxyXG4gIDwvZm9ybT5cclxuPC9uZy1jb250YWluZXI+XHJcbjwhLS0tLT5cclxuPG5nLXRlbXBsYXRlICNpbmZvPlxyXG4gIDxkaXY+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
@@ -0,0 +1,31 @@
1
+ import { __decorate } from "tslib";
2
+ import { Component } from "@angular/core";
3
+ import { BizDoc } from "../../../core/decorators";
4
+ import { DesignerElementComponent } from "../designer.base";
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/forms";
7
+ import * as i2 from "../../../core/session.service";
8
+ import * as i3 from "@angular/common";
9
+ let BoxFormDesignComponent = class BoxFormDesignComponent extends DesignerElementComponent {
10
+ constructor(_fb, _session) {
11
+ super();
12
+ this._fb = _fb;
13
+ this._session = _session;
14
+ this.form = this._fb.group({
15
+ disabled: false,
16
+ });
17
+ }
18
+ ngOnInit() {
19
+ }
20
+ };
21
+ BoxFormDesignComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BoxFormDesignComponent, deps: [{ token: i1.FormBuilder }, { token: i2.SessionService }], target: i0.ɵɵFactoryTarget.Component });
22
+ BoxFormDesignComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: BoxFormDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"editMode; else info\">\r\n <form autocomplete=\"off\" [formGroup]=\"form\">\r\n </form>\r\n</ng-container>\r\n<!---->\r\n<ng-template #info>\r\n <div>\r\n </div>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
23
+ BoxFormDesignComponent = __decorate([
24
+ BizDoc({ selector: 'box-form-designer' })
25
+ ], BoxFormDesignComponent);
26
+ export { BoxFormDesignComponent };
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BoxFormDesignComponent, decorators: [{
28
+ type: Component,
29
+ args: [{ template: "<ng-container *ngIf=\"editMode; else info\">\r\n <form autocomplete=\"off\" [formGroup]=\"form\">\r\n </form>\r\n</ng-container>\r\n<!---->\r\n<ng-template #info>\r\n <div>\r\n </div>\r\n</ng-template>\r\n" }]
30
+ }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.SessionService }]; } });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm94LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9jb25maWd1cmF0aW9uLWRlc2lnbmVyL2VsZW1lbnRzL2JveC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvYWRtaW4vY29uZmlndXJhdGlvbi1kZXNpZ25lci9lbGVtZW50cy9ib3gtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUVsRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFbEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7O0lBSS9DLHNCQUFzQixTQUF0QixzQkFBdUIsU0FBUSx3QkFBK0I7SUFJekUsWUFBb0IsR0FBZ0IsRUFBVSxRQUF3QjtRQUNwRSxLQUFLLEVBQUUsQ0FBQTtRQURXLFFBQUcsR0FBSCxHQUFHLENBQWE7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQUg3RCxTQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDN0IsUUFBUSxFQUFFLEtBQUs7U0FDaEIsQ0FBQyxDQUFDO0lBR0gsQ0FBQztJQUNELFFBQVE7SUFDUixDQUFDO0NBQ0YsQ0FBQTttSEFUWSxzQkFBc0I7dUdBQXRCLHNCQUFzQiwyRUNSbkMsbU5BU0E7QUREYSxzQkFBc0I7SUFEbEMsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixFQUFFLENBQUM7R0FDN0Isc0JBQXNCLENBU2xDO1NBVFksc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBRmxDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IEJpekRvYyB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2RlY29yYXRvcnNcIjtcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRGVzaWduZXJFbGVtZW50Q29tcG9uZW50IH0gZnJvbSBcIi4uL2Rlc2lnbmVyLmJhc2VcIjtcclxuXHJcbkBDb21wb25lbnQoeyB0ZW1wbGF0ZVVybDogJ2JveC1mb3JtLmNvbXBvbmVudC5odG1sJyB9KVxyXG5AQml6RG9jKHsgc2VsZWN0b3I6ICdib3gtZm9ybS1kZXNpZ25lcicgfSlcclxuZXhwb3J0IGNsYXNzIEJveEZvcm1EZXNpZ25Db21wb25lbnQgZXh0ZW5kcyBEZXNpZ25lckVsZW1lbnRDb21wb25lbnQ8TW9kZWw+IGltcGxlbWVudHMgT25Jbml0IHtcclxuICByZWFkb25seSBmb3JtID0gdGhpcy5fZmIuZ3JvdXAoe1xyXG4gICAgZGlzYWJsZWQ6IGZhbHNlLFxyXG4gIH0pO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2ZiOiBGb3JtQnVpbGRlciwgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UpIHtcclxuICAgIHN1cGVyKClcclxuICB9XHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgfVxyXG59XHJcbmludGVyZmFjZSBNb2RlbCB7XHJcbiAgY3ViZTogbnVsbCxcclxufVxyXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiZWRpdE1vZGU7IGVsc2UgaW5mb1wiPlxyXG4gIDxmb3JtIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxyXG4gIDwvZm9ybT5cclxuPC9uZy1jb250YWluZXI+XHJcbjwhLS0tLT5cclxuPG5nLXRlbXBsYXRlICNpbmZvPlxyXG4gIDxkaXY+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
@@ -0,0 +1,34 @@
1
+ import { __decorate } from "tslib";
2
+ import { Component } from "@angular/core";
3
+ import { Validators } from "@angular/forms";
4
+ import { BizDoc } from "../../../core/decorators";
5
+ import { DesignerCubeElementComponent } from "../designer.base";
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common";
8
+ import * as i2 from "@angular/forms";
9
+ import * as i3 from "@angular/material/core";
10
+ import * as i4 from "@angular/material/form-field";
11
+ import * as i5 from "@angular/material/select";
12
+ import * as i6 from "../../../core/pipes/translate.pipe";
13
+ let CubeViewDesignComponent = class CubeViewDesignComponent extends DesignerCubeElementComponent {
14
+ constructor() {
15
+ super(...arguments);
16
+ this.form = this._fb.group({
17
+ cube: null,
18
+ view: this._fb.control(null, Validators.required),
19
+ aggregate: null,
20
+ filters: null,
21
+ });
22
+ }
23
+ };
24
+ CubeViewDesignComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: CubeViewDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
25
+ CubeViewDesignComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: CubeViewDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<form *ngIf=\"editMode; else info\" autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field>\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>{{'Filters'|translate}}</mat-label>\r\n <mat-select formControlName=\"filters\" multiple (selectionChange)=\"xAxisSelected($event)\">\r\n <mat-option *ngFor=\"let x of cube.axes\" [value]=\"x.name\">{{x.title || x.name}}</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 [disabled]=\"!secondaryAxes || !secondaryAxes.length\">\r\n <mat-option *ngFor=\"let x of secondaryAxes\" [value]=\"x.name\">{{x.title || x.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n</form>\r\n<ng-template #info></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: "pipe", type: i6.TranslatePipe, name: "translate" }] });
26
+ CubeViewDesignComponent = __decorate([
27
+ BizDoc({ selector: 'cube-view-designer' })
28
+ ], CubeViewDesignComponent);
29
+ export { CubeViewDesignComponent };
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: CubeViewDesignComponent, decorators: [{
31
+ type: Component,
32
+ args: [{ template: "<form *ngIf=\"editMode; else info\" autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field>\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>{{'Filters'|translate}}</mat-label>\r\n <mat-select formControlName=\"filters\" multiple (selectionChange)=\"xAxisSelected($event)\">\r\n <mat-option *ngFor=\"let x of cube.axes\" [value]=\"x.name\">{{x.title || x.name}}</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 [disabled]=\"!secondaryAxes || !secondaryAxes.length\">\r\n <mat-option *ngFor=\"let x of secondaryAxes\" [value]=\"x.name\">{{x.title || x.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n</form>\r\n<ng-template #info></ng-template>\r\n" }]
33
+ }] });
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ViZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvYWRtaW4vY29uZmlndXJhdGlvbi1kZXNpZ25lci9lbGVtZW50cy9jdWJlLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9jb25maWd1cmF0aW9uLWRlc2lnbmVyL2VsZW1lbnRzL2N1YmUtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWxELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7OztJQUluRCx1QkFBdUIsU0FBdkIsdUJBQXdCLFNBQVEsNEJBQStDOzs7UUFDakYsU0FBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO1lBQzdCLElBQUksRUFBRSxJQUFJO1lBQ1YsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ2pELFNBQVMsRUFBRSxJQUFJO1lBQ2YsT0FBTyxFQUFFLElBQUk7U0FDZCxDQUFDLENBQUM7S0FDSjtDQUFBLENBQUE7b0hBUFksdUJBQXVCO3dHQUF2Qix1QkFBdUIsMkVDUnBDLHdrQ0FxQkE7QURiYSx1QkFBdUI7SUFEakMsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLG9CQUFvQixFQUFFLENBQUM7R0FDaEMsdUJBQXVCLENBT25DO1NBUFksdUJBQXVCOzJGQUF2Qix1QkFBdUI7a0JBRm5DLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgQml6RG9jIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvZGVjb3JhdG9yc1wiO1xyXG5pbXBvcnQgeyBWaWV3U2V0dGluZ3NNb2RlbCB9IGZyb20gXCIuLi8uLi8uLi92aWV3cy9jdWJlL3ZpZXcuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IERlc2lnbmVyQ3ViZUVsZW1lbnRDb21wb25lbnQgfSBmcm9tIFwiLi4vZGVzaWduZXIuYmFzZVwiO1xyXG5cclxuQENvbXBvbmVudCh7IHRlbXBsYXRlVXJsOiAnY3ViZS12aWV3LmNvbXBvbmVudC5odG1sJyB9KVxyXG4gIEBCaXpEb2MoeyBzZWxlY3RvcjogJ2N1YmUtdmlldy1kZXNpZ25lcicgfSlcclxuZXhwb3J0IGNsYXNzIEN1YmVWaWV3RGVzaWduQ29tcG9uZW50IGV4dGVuZHMgRGVzaWduZXJDdWJlRWxlbWVudENvbXBvbmVudDxWaWV3U2V0dGluZ3NNb2RlbD4gaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHJlYWRvbmx5IGZvcm0gPSB0aGlzLl9mYi5ncm91cCh7XHJcbiAgICBjdWJlOiBudWxsLFxyXG4gICAgdmlldzogdGhpcy5fZmIuY29udHJvbChudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgIGFnZ3JlZ2F0ZTogbnVsbCxcclxuICAgIGZpbHRlcnM6IG51bGwsXHJcbiAgfSk7XHJcbn1cclxuIiwiPGZvcm0gKm5nSWY9XCJlZGl0TW9kZTsgZWxzZSBpbmZvXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCIgY2xhc3M9XCJjb2x1bW5cIj5cclxuICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8bWF0LWxhYmVsPnt7J0N1YmUnfHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XHJcbiAgICA8bWF0LXNlbGVjdCByZXF1aXJlZCAoc2VsZWN0aW9uQ2hhbmdlKT1cImN1YmVTZWxlY3RlZCgkZXZlbnQpXCI+XHJcbiAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBjIG9mIGN1YmVzXCIgW3ZhbHVlXT1cImNcIj57e2MudGl0bGV9fTwvbWF0LW9wdGlvbj5cclxuICAgIDwvbWF0LXNlbGVjdD5cclxuICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDxtYXQtZm9ybS1maWVsZD5cclxuICAgIDxtYXQtbGFiZWw+e3snRmlsdGVycyd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cImZpbHRlcnNcIiBtdWx0aXBsZSAoc2VsZWN0aW9uQ2hhbmdlKT1cInhBeGlzU2VsZWN0ZWQoJGV2ZW50KVwiPlxyXG4gICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgeCBvZiBjdWJlLmF4ZXNcIiBbdmFsdWVdPVwieC5uYW1lXCI+e3t4LnRpdGxlIHx8IHgubmFtZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgPC9tYXQtc2VsZWN0PlxyXG4gIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgPG1hdC1sYWJlbD57eydBZ2dyZWdhdGUnfHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XHJcbiAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJhZ2dyZWdhdGVcIiBtdWx0aXBsZSAgW2Rpc2FibGVkXT1cIiFzZWNvbmRhcnlBeGVzIHx8ICFzZWNvbmRhcnlBeGVzLmxlbmd0aFwiPlxyXG4gICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgeCBvZiBzZWNvbmRhcnlBeGVzXCIgW3ZhbHVlXT1cIngubmFtZVwiPnt7eC50aXRsZSB8fCB4Lm5hbWV9fTwvbWF0LW9wdGlvbj5cclxuICAgIDwvbWF0LXNlbGVjdD5cclxuICA8L21hdC1mb3JtLWZpZWxkPlxyXG48L2Zvcm0+XHJcbjxuZy10ZW1wbGF0ZSAjaW5mbz48L25nLXRlbXBsYXRlPlxyXG4iXX0=
@@ -0,0 +1,139 @@
1
+ import { __decorate } from "tslib";
2
+ import { moveItemInArray } from "@angular/cdk/drag-drop";
3
+ import { Component, Inject } from "@angular/core";
4
+ import { Validators } from "@angular/forms";
5
+ import { BizDoc } from "../../../core/decorators";
6
+ import { isArray } from "../../../core/functions";
7
+ import { DesignerElementComponent, DesignerRef } from "../designer.base";
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@angular/forms";
10
+ import * as i2 from "@angular/common";
11
+ import * as i3 from "@angular/cdk/drag-drop";
12
+ import * as i4 from "@angular/material/core";
13
+ import * as i5 from "@angular/material/form-field";
14
+ import * as i6 from "@angular/material/select";
15
+ import * as i7 from "@angular/material/button";
16
+ import * as i8 from "@angular/material/input";
17
+ import * as i9 from "@angular/material/icon";
18
+ import * as i10 from "../../../core/popup/tooltip.directive";
19
+ import * as i11 from "../privileges.component";
20
+ import * as i12 from "../../../core/pipes/translate.pipe";
21
+ import * as i13 from "../designer.base";
22
+ let CubeDesignComponent = class CubeDesignComponent extends DesignerElementComponent {
23
+ constructor(_fb, ref) {
24
+ super();
25
+ this._fb = _fb;
26
+ this.views = this._fb.array([]);
27
+ this.axes = this._fb.array([]);
28
+ this.indices = this._fb.array([]);
29
+ this.secondaryAxes = [];
30
+ this.form = this._fb.group({
31
+ views: this.views,
32
+ indices: this.indices,
33
+ axes: this.axes
34
+ });
35
+ this.types = ref.model.types;
36
+ }
37
+ ngOnInit() {
38
+ this.model.axes.forEach(a => {
39
+ this.axes.push(this._formaxis(a), { emitEvent: true });
40
+ });
41
+ this.model.indices.forEach(i => this.indices.push(this._formindex(i), { emitEvent: true }));
42
+ this.model.views.forEach((v, i) => {
43
+ this.views.push(this._formview(v), { emitEvent: true });
44
+ this._secondaryAxes(i, v.xAxis);
45
+ });
46
+ }
47
+ dropView(event) {
48
+ moveItemInArray(this.model.views, event.previousIndex, event.currentIndex);
49
+ moveItemInArray(this.secondaryAxes, event.previousIndex, event.currentIndex);
50
+ }
51
+ dropAxis(event) {
52
+ moveItemInArray(this.model.axes, event.previousIndex, event.currentIndex);
53
+ }
54
+ removeAxis(index) {
55
+ this.axes.removeAt(index);
56
+ }
57
+ removeIndex(index) {
58
+ this.indices.removeAt(index);
59
+ }
60
+ removeView(index) {
61
+ this.secondaryAxes.splice(index, 1);
62
+ this.views.removeAt(index);
63
+ }
64
+ addAxis() {
65
+ this.axes.push(this._formaxis({}), { emitEvent: false });
66
+ }
67
+ addIndex() {
68
+ this.indices.push(this._formindex({}), { emitEvent: false });
69
+ }
70
+ addView() {
71
+ this.views.push(this._formview({}), { emitEvent: false });
72
+ }
73
+ nameOf(axis) { return this.model.axes.filter(a => isArray(axis) ? axis.indexOf(a.name) > -1 : a.name === axis).join(', '); }
74
+ xAxisSelected(index, evt) {
75
+ this._secondaryAxes(index, evt.value);
76
+ }
77
+ _secondaryAxes(index, axis) {
78
+ if (!axis)
79
+ return;
80
+ this.secondaryAxes[index] = this.model.axes.filter(a => isArray(axis) ? axis.indexOf(a.name) < 0 : axis !== a.name);
81
+ }
82
+ _formview(model) {
83
+ return this._fb.group({
84
+ name: this._fb.control(model.name),
85
+ title: model.title,
86
+ xAxis: this._fb.control(model.xAxis, Validators.required),
87
+ series: model.series,
88
+ indices: model.indices,
89
+ type: model.type,
90
+ chartType: model.chartType,
91
+ });
92
+ }
93
+ _formaxis(model) {
94
+ return this._fb.group({
95
+ name: model.name,
96
+ title: this._fb.control(model.title, Validators.required),
97
+ descendentOf: model.descendentOf,
98
+ dataType: this._fb.control(model.dataType, Validators.required)
99
+ });
100
+ }
101
+ _formindex(model) {
102
+ return this._fb.group({
103
+ name: model.name,
104
+ accumulate: model.accumulate,
105
+ title: this._fb.control(model.title, Validators.required),
106
+ });
107
+ }
108
+ datatype(name) { return this.types.find(t => t.name == name)?.title; }
109
+ isAccum(index) {
110
+ switch (this.model.views[index].chartType) {
111
+ case 'Pie':
112
+ case 'Doughnut':
113
+ case 'HalfDoughnut':
114
+ case 'Funnel':
115
+ return true;
116
+ }
117
+ }
118
+ isChart(index) {
119
+ switch (this.model.views[index].type) {
120
+ case 'Chart':
121
+ case 'Pivot':
122
+ return true;
123
+ }
124
+ }
125
+ };
126
+ CubeDesignComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: CubeDesignComponent, deps: [{ token: i1.FormBuilder }, { token: DesignerRef }], target: i0.ɵɵFactoryTarget.Component });
127
+ CubeDesignComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: CubeDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"editMode; else info\">\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <!-- Axes -->\r\n <h2 class=\"mat-subheader\">{{'Axes'|translate}}</h2>\r\n <div formArrayName=\"axes\" class=\"column\" cdkDropList (cdkDropListDropped)=\"dropAxis($event)\">\r\n <div class=\"row\" *ngFor=\"let a of axes.controls; index as index\" [formGroup]=\"a\" cdkDrag cdkDragRootElement=\".drag\">\r\n <mat-icon class=\"drag\">drag_indicator</mat-icon>\r\n <mat-form-field>\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>\r\n <mat-label>{{'DataType'|translate}}</mat-label>\r\n <mat-select formControlName=\"dataType\" required>\r\n <mat-option *ngFor=\"let t of types\" [value]=\"t.name\">{{t.title}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <button mat-icon-button (click)=\"removeAxis(index)\" [bizdocTooltip]=\"'Remove'|translate\"><mat-icon>delete</mat-icon></button>\r\n </div>\r\n </div>\r\n <button mat-icon-button (click)=\"addAxis()\" [bizdocTooltip]=\"'Add'|translate\"><mat-icon>add</mat-icon></button>\r\n <!-- Indices -->\r\n <h2 class=\"mat-subheader\">{{'Indices'|translate}}</h2>\r\n <div formArrayName=\"indices\" class=\"column\" cdkDropList (cdkDropListDropped)=\"dropAxis($event)\">\r\n <div class=\"row\" *ngFor=\"let a of indices.controls; index as index\" [formGroup]=\"a\" cdkDrag cdkDragRootElement=\".drag\">\r\n <mat-icon class=\"drag\">drag_indicator</mat-icon>\r\n <mat-form-field>\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n </mat-form-field>\r\n <button mat-icon-button (click)=\"removeIndex(index)\" [bizdocTooltip]=\"'Remove'|translate\"><mat-icon>delete</mat-icon></button>\r\n </div>\r\n </div>\r\n <button mat-icon-button (click)=\"addIndex()\" [bizdocTooltip]=\"'Add'|translate\"><mat-icon>add</mat-icon></button>\r\n <!-- Views -->\r\n <h2 class=\"mat-subheader\">{{'Views'|translate}}</h2>\r\n <div formArrayName=\"views\" class=\"column\" cdkDropList (cdkDropListDropped)=\"dropView($event)\">\r\n <div class=\"row\" *ngFor=\"let v of views.controls; index as index\" [formGroup]=\"v\" cdkDrag cdkDragRootElement=\".drag\">\r\n <mat-icon class=\"drag\">drag_indicator</mat-icon>\r\n <mat-form-field>\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>\r\n <mat-label>{{'Type'|translate}}</mat-label>\r\n <mat-select formControlName=\"type\">\r\n <mat-option value=\"Chart\">{{'Chart'|translate}}</mat-option>\r\n <mat-option value=\"Pivot\">{{'Pivot'|translate}}</mat-option>\r\n <mat-option value=\"Grid\">{{'Grid'|translate}}</mat-option>\r\n <mat-option value=\"Spreadsheet\">{{'Spreadsheet'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field *ngIf=\"isChart(index)\">\r\n <mat-label>{{'ChartType'|translate}}</mat-label>\r\n <mat-select formControlName=\"chartType\">\r\n <mat-option value=\"Pie\">{{'Pie'|translate}}</mat-option>\r\n <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\r\n <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\r\n <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar\">{{'StackingBar'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar100\">{{'StackingBar100'|translate}}</mat-option>\r\n <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\r\n <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\r\n <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\r\n <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\r\n <mat-option value=\"Doughnut\">{{'Doughnut'|translate}}</mat-option>\r\n <mat-option value=\"HalfDoughnut\">{{'HalfDoughnut'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea\">{{'StackingArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea100\">{{'StackingArea100'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn\">{{'StackingColumn'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn100\">{{'StackingColumn100'|translate}}</mat-option>\r\n <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\r\n <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\r\n <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\r\n <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\r\n <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingStepArea\">{{'StackingStepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine\">{{'StackingLine'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine100\">{{'StackingLine100'|translate}}</mat-option>\r\n <mat-option value=\"Funnel\">{{'Funnel'|translate}}</mat-option>\r\n <mat-option value=\"Pyramid\">{{'Pyramid'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field>\r\n <mat-label>{{'XAxis'|translate}}</mat-label>\r\n <mat-select formControlName=\"xAxis\" required (selectionChange)=\"xAxisSelected(index, $event)\" multiple>\r\n <mat-option *ngFor=\"let x of model.axes\" [value]=\"x.name\">{{x.title || x.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field>\r\n <mat-label>{{'Series'|translate}}</mat-label>\r\n <mat-select formControlName=\"series\" multiple [disabled]=\"isAccum(index)\">\r\n <mat-option *ngFor=\"let x of secondaryAxes[index]\" [value]=\"x.name\">{{x.title || x.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <button mat-icon-button (click)=\"removeView(index)\" [bizdocTooltip]=\"'Remove'|translate\"><mat-icon>delete</mat-icon></button>\r\n </div>\r\n <button mat-icon-button (click)=\"addView()\" [bizdocTooltip]=\"'Add'|translate\"><mat-icon>add</mat-icon></button>\r\n </div>\r\n </form>\r\n <bizdoc-privileges (change)=\"change.emit()\" [model]=\"model.privileges\"></bizdoc-privileges>\r\n</ng-container>\r\n<!-- Info -->\r\n<ng-template #info>\r\n <div class=\"row\">\r\n <div>\r\n <h2 class=\"mat-subheader\">{{'Axes'|translate}}</h2>\r\n <table class=\"mat-table\">\r\n <tr class=\"mat-row\" *ngFor=\"let a of model.axes\">\r\n <td class=\"mat-cell\">{{a.name}}</td>\r\n <td class=\"mat-cell\">{{a.title}}</td>\r\n <td class=\"mat-cell\">{{datatype(a.dataType)}}</td>\r\n </tr>\r\n </table>\r\n </div>\r\n <div>\r\n <h2 class=\"mat-subheader\">{{'Indices'|translate}}</h2>\r\n <table class=\"mat-table\">\r\n <tr class=\"mat-row\" *ngFor=\"let a of model.indices\">\r\n <td class=\"mat-cell\">{{a.name}}</td>\r\n <td class=\"mat-cell\">{{a.title}}</td>\r\n </tr>\r\n </table>\r\n </div>\r\n <div>\r\n <h2 class=\"mat-subheader\">{{'Views'|translate}}</h2>\r\n <table class=\"mat-table\">\r\n <tr class=\"mat-row\" *ngFor=\"let v of model.views\">\r\n <td class=\"mat-cell\">{{v.title}}</td>\r\n <td class=\"mat-cell\">{{(v.type||'Chart')|translate}}</td>\r\n </tr>\r\n </table>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.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: "component", type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "component", type: i6.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i7.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: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i10.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: i11.PrivilegesDesignComponent, selector: "bizdoc-privileges", inputs: ["model"], outputs: ["change"] }, { kind: "pipe", type: i12.TranslatePipe, name: "translate" }] });
128
+ CubeDesignComponent = __decorate([
129
+ BizDoc({ selector: 'cube-designer' })
130
+ ], CubeDesignComponent);
131
+ export { CubeDesignComponent };
132
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: CubeDesignComponent, decorators: [{
133
+ type: Component,
134
+ args: [{ template: "<ng-container *ngIf=\"editMode; else info\">\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <!-- Axes -->\r\n <h2 class=\"mat-subheader\">{{'Axes'|translate}}</h2>\r\n <div formArrayName=\"axes\" class=\"column\" cdkDropList (cdkDropListDropped)=\"dropAxis($event)\">\r\n <div class=\"row\" *ngFor=\"let a of axes.controls; index as index\" [formGroup]=\"a\" cdkDrag cdkDragRootElement=\".drag\">\r\n <mat-icon class=\"drag\">drag_indicator</mat-icon>\r\n <mat-form-field>\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>\r\n <mat-label>{{'DataType'|translate}}</mat-label>\r\n <mat-select formControlName=\"dataType\" required>\r\n <mat-option *ngFor=\"let t of types\" [value]=\"t.name\">{{t.title}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <button mat-icon-button (click)=\"removeAxis(index)\" [bizdocTooltip]=\"'Remove'|translate\"><mat-icon>delete</mat-icon></button>\r\n </div>\r\n </div>\r\n <button mat-icon-button (click)=\"addAxis()\" [bizdocTooltip]=\"'Add'|translate\"><mat-icon>add</mat-icon></button>\r\n <!-- Indices -->\r\n <h2 class=\"mat-subheader\">{{'Indices'|translate}}</h2>\r\n <div formArrayName=\"indices\" class=\"column\" cdkDropList (cdkDropListDropped)=\"dropAxis($event)\">\r\n <div class=\"row\" *ngFor=\"let a of indices.controls; index as index\" [formGroup]=\"a\" cdkDrag cdkDragRootElement=\".drag\">\r\n <mat-icon class=\"drag\">drag_indicator</mat-icon>\r\n <mat-form-field>\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n </mat-form-field>\r\n <button mat-icon-button (click)=\"removeIndex(index)\" [bizdocTooltip]=\"'Remove'|translate\"><mat-icon>delete</mat-icon></button>\r\n </div>\r\n </div>\r\n <button mat-icon-button (click)=\"addIndex()\" [bizdocTooltip]=\"'Add'|translate\"><mat-icon>add</mat-icon></button>\r\n <!-- Views -->\r\n <h2 class=\"mat-subheader\">{{'Views'|translate}}</h2>\r\n <div formArrayName=\"views\" class=\"column\" cdkDropList (cdkDropListDropped)=\"dropView($event)\">\r\n <div class=\"row\" *ngFor=\"let v of views.controls; index as index\" [formGroup]=\"v\" cdkDrag cdkDragRootElement=\".drag\">\r\n <mat-icon class=\"drag\">drag_indicator</mat-icon>\r\n <mat-form-field>\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>\r\n <mat-label>{{'Type'|translate}}</mat-label>\r\n <mat-select formControlName=\"type\">\r\n <mat-option value=\"Chart\">{{'Chart'|translate}}</mat-option>\r\n <mat-option value=\"Pivot\">{{'Pivot'|translate}}</mat-option>\r\n <mat-option value=\"Grid\">{{'Grid'|translate}}</mat-option>\r\n <mat-option value=\"Spreadsheet\">{{'Spreadsheet'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field *ngIf=\"isChart(index)\">\r\n <mat-label>{{'ChartType'|translate}}</mat-label>\r\n <mat-select formControlName=\"chartType\">\r\n <mat-option value=\"Pie\">{{'Pie'|translate}}</mat-option>\r\n <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\r\n <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\r\n <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar\">{{'StackingBar'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar100\">{{'StackingBar100'|translate}}</mat-option>\r\n <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\r\n <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\r\n <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\r\n <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\r\n <mat-option value=\"Doughnut\">{{'Doughnut'|translate}}</mat-option>\r\n <mat-option value=\"HalfDoughnut\">{{'HalfDoughnut'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea\">{{'StackingArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea100\">{{'StackingArea100'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn\">{{'StackingColumn'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn100\">{{'StackingColumn100'|translate}}</mat-option>\r\n <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\r\n <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\r\n <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\r\n <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\r\n <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingStepArea\">{{'StackingStepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine\">{{'StackingLine'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine100\">{{'StackingLine100'|translate}}</mat-option>\r\n <mat-option value=\"Funnel\">{{'Funnel'|translate}}</mat-option>\r\n <mat-option value=\"Pyramid\">{{'Pyramid'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field>\r\n <mat-label>{{'XAxis'|translate}}</mat-label>\r\n <mat-select formControlName=\"xAxis\" required (selectionChange)=\"xAxisSelected(index, $event)\" multiple>\r\n <mat-option *ngFor=\"let x of model.axes\" [value]=\"x.name\">{{x.title || x.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field>\r\n <mat-label>{{'Series'|translate}}</mat-label>\r\n <mat-select formControlName=\"series\" multiple [disabled]=\"isAccum(index)\">\r\n <mat-option *ngFor=\"let x of secondaryAxes[index]\" [value]=\"x.name\">{{x.title || x.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <button mat-icon-button (click)=\"removeView(index)\" [bizdocTooltip]=\"'Remove'|translate\"><mat-icon>delete</mat-icon></button>\r\n </div>\r\n <button mat-icon-button (click)=\"addView()\" [bizdocTooltip]=\"'Add'|translate\"><mat-icon>add</mat-icon></button>\r\n </div>\r\n </form>\r\n <bizdoc-privileges (change)=\"change.emit()\" [model]=\"model.privileges\"></bizdoc-privileges>\r\n</ng-container>\r\n<!-- Info -->\r\n<ng-template #info>\r\n <div class=\"row\">\r\n <div>\r\n <h2 class=\"mat-subheader\">{{'Axes'|translate}}</h2>\r\n <table class=\"mat-table\">\r\n <tr class=\"mat-row\" *ngFor=\"let a of model.axes\">\r\n <td class=\"mat-cell\">{{a.name}}</td>\r\n <td class=\"mat-cell\">{{a.title}}</td>\r\n <td class=\"mat-cell\">{{datatype(a.dataType)}}</td>\r\n </tr>\r\n </table>\r\n </div>\r\n <div>\r\n <h2 class=\"mat-subheader\">{{'Indices'|translate}}</h2>\r\n <table class=\"mat-table\">\r\n <tr class=\"mat-row\" *ngFor=\"let a of model.indices\">\r\n <td class=\"mat-cell\">{{a.name}}</td>\r\n <td class=\"mat-cell\">{{a.title}}</td>\r\n </tr>\r\n </table>\r\n </div>\r\n <div>\r\n <h2 class=\"mat-subheader\">{{'Views'|translate}}</h2>\r\n <table class=\"mat-table\">\r\n <tr class=\"mat-row\" *ngFor=\"let v of model.views\">\r\n <td class=\"mat-cell\">{{v.title}}</td>\r\n <td class=\"mat-cell\">{{(v.type||'Chart')|translate}}</td>\r\n </tr>\r\n </table>\r\n </div>\r\n </div>\r\n</ng-template>\r\n" }]
135
+ }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i13.DesignerRef, decorators: [{
136
+ type: Inject,
137
+ args: [DesignerRef]
138
+ }] }]; } });
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ViZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvZWxlbWVudHMvY3ViZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvZWxlbWVudHMvY3ViZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFlLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBZSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWxELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxXQUFXLEVBQWdCLE1BQU0sa0JBQWtCLENBQUM7Ozs7Ozs7Ozs7Ozs7OztJQUkxRSxtQkFBbUIsU0FBbkIsbUJBQW9CLFNBQVEsd0JBQStCO0lBV3RFLFlBQW9CLEdBQWdCLEVBQ2IsR0FBZ0I7UUFDckMsS0FBSyxFQUFFLENBQUM7UUFGVSxRQUFHLEdBQUgsR0FBRyxDQUFhO1FBVjNCLFVBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMzQixTQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUIsWUFBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLGtCQUFhLEdBQWlCLEVBQUUsQ0FBQztRQUN4QixTQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDN0IsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7U0FDaEIsQ0FBQyxDQUFDO1FBS0QsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztJQUMvQixDQUFDO0lBQ0QsUUFBUTtRQUNOLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDekQsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDN0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUMzRCxDQUFDO1FBQ0YsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2hDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUN4RCxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsUUFBUSxDQUFDLEtBQThCO1FBQ3JDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMzRSxlQUFlLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBQ0QsUUFBUSxDQUFDLEtBQThCO1FBQ3JDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBQ0QsVUFBVSxDQUFDLEtBQWE7UUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUNELFdBQVcsQ0FBQyxLQUFhO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFDRCxVQUFVLENBQUMsS0FBYTtRQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUNELE9BQU87UUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQVMsQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQVMsQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUNELE9BQU87UUFDTCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQVMsQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUNELE1BQU0sQ0FBQyxJQUF1QixJQUFJLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUEsQ0FBQyxDQUFDO0lBQzdJLGFBQWEsQ0FBQyxLQUFhLEVBQUUsR0FBb0I7UUFDL0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFDUyxjQUFjLENBQUMsS0FBYSxFQUFFLElBQXVCO1FBQzdELElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTztRQUNsQixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RILENBQUM7SUFDTyxTQUFTLENBQUMsS0FBZTtRQUMvQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO1lBQ3BCLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1lBQ2xDLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztZQUNsQixLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ3pELE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtZQUNwQixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87WUFDdEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1lBQ2hCLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztTQUMzQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ08sU0FBUyxDQUFDLEtBQWU7UUFDL0IsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztZQUNwQixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7WUFDaEIsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUN6RCxZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVk7WUFDaEMsUUFBUSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztTQUNoRSxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQVMsVUFBVSxDQUFDLEtBQWdCO1FBQ25DLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDcEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1lBQ2hCLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVTtZQUM1QixLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1NBQzFELENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxRQUFRLENBQUMsSUFBWSxJQUFJLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDOUUsT0FBTyxDQUFDLEtBQWE7UUFDbkIsUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLEVBQUU7WUFDekMsS0FBSyxLQUFLLENBQUM7WUFDWCxLQUFLLFVBQVUsQ0FBQztZQUNoQixLQUFLLGNBQWMsQ0FBQztZQUNwQixLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxJQUFJLENBQUM7U0FDZjtJQUNILENBQUM7SUFDRCxPQUFPLENBQUMsS0FBYTtRQUNuQixRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRTtZQUNwQyxLQUFLLE9BQU8sQ0FBQztZQUNiLEtBQUssT0FBTztnQkFDVixPQUFPLElBQUksQ0FBQztTQUNmO0lBQ0gsQ0FBQztDQUNGLENBQUE7Z0hBeEdZLG1CQUFtQiw2Q0FZcEIsV0FBVztvR0FaVixtQkFBbUIsMkVDWGhDLG85UEE0SUE7QURqSWEsbUJBQW1CO0lBRC9CLE1BQU0sQ0FBQyxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsQ0FBQztHQUN6QixtQkFBbUIsQ0F3Ry9CO1NBeEdZLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQUYvQixTQUFTOzs7MEJBY0wsTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIG1vdmVJdGVtSW5BcnJheSB9IGZyb20gXCJAYW5ndWxhci9jZGsvZHJhZy1kcm9wXCI7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3RDaGFuZ2UgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0XCI7XHJcbmltcG9ydCB7IEJpekRvYyB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2RlY29yYXRvcnNcIjtcclxuaW1wb3J0IHsgaXNBcnJheSB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgeyBDdWJlQXhpcywgQ3ViZUluZGV4LCBDdWJlVmlldyB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL21vZGVsc1wiO1xyXG5pbXBvcnQgeyBEZXNpZ25lckVsZW1lbnRDb21wb25lbnQsIERlc2lnbmVyUmVmLCBFbGVtZW50TW9kZWwgfSBmcm9tIFwiLi4vZGVzaWduZXIuYmFzZVwiO1xyXG5cclxuQENvbXBvbmVudCh7IHRlbXBsYXRlVXJsOiAnY3ViZS5jb21wb25lbnQuaHRtbCcgfSlcclxuQEJpekRvYyh7IHNlbGVjdG9yOiAnY3ViZS1kZXNpZ25lcicgfSlcclxuZXhwb3J0IGNsYXNzIEN1YmVEZXNpZ25Db21wb25lbnQgZXh0ZW5kcyBEZXNpZ25lckVsZW1lbnRDb21wb25lbnQ8TW9kZWw+IGltcGxlbWVudHMgT25Jbml0IHtcclxuICByZWFkb25seSB2aWV3cyA9IHRoaXMuX2ZiLmFycmF5KFtdKTtcclxuICByZWFkb25seSBheGVzID0gdGhpcy5fZmIuYXJyYXkoW10pO1xyXG4gIHJlYWRvbmx5IGluZGljZXMgPSB0aGlzLl9mYi5hcnJheShbXSk7XHJcbiAgc2Vjb25kYXJ5QXhlczogQ3ViZUF4aXNbXVtdID0gW107XHJcbiAgcmVhZG9ubHkgZm9ybSA9IHRoaXMuX2ZiLmdyb3VwKHtcclxuICAgIHZpZXdzOiB0aGlzLnZpZXdzLFxyXG4gICAgaW5kaWNlczogdGhpcy5pbmRpY2VzLFxyXG4gICAgYXhlczogdGhpcy5heGVzXHJcbiAgfSk7XHJcbiAgdHlwZXM6IEVsZW1lbnRNb2RlbDxhbnk+W107XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgQEluamVjdChEZXNpZ25lclJlZikgcmVmOiBEZXNpZ25lclJlZikge1xyXG4gICAgc3VwZXIoKTtcclxuICAgIHRoaXMudHlwZXMgPSByZWYubW9kZWwudHlwZXM7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5tb2RlbC5heGVzLmZvckVhY2goYSA9PiB7XHJcbiAgICAgIHRoaXMuYXhlcy5wdXNoKHRoaXMuX2Zvcm1heGlzKGEpLCB7IGVtaXRFdmVudDogdHJ1ZSB9KTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5tb2RlbC5pbmRpY2VzLmZvckVhY2goaSA9PiBcclxuICAgICAgdGhpcy5pbmRpY2VzLnB1c2godGhpcy5fZm9ybWluZGV4KGkpLCB7IGVtaXRFdmVudDogdHJ1ZSB9KVxyXG4gICAgKTtcclxuICAgIHRoaXMubW9kZWwudmlld3MuZm9yRWFjaCgodiwgaSkgPT4ge1xyXG4gICAgICB0aGlzLnZpZXdzLnB1c2godGhpcy5fZm9ybXZpZXcodiksIHsgZW1pdEV2ZW50OiB0cnVlIH0pO1xyXG4gICAgICB0aGlzLl9zZWNvbmRhcnlBeGVzKGksIHYueEF4aXMpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGRyb3BWaWV3KGV2ZW50OiBDZGtEcmFnRHJvcDxDdWJlVmlld1tdPikge1xyXG4gICAgbW92ZUl0ZW1JbkFycmF5KHRoaXMubW9kZWwudmlld3MsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XHJcbiAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5zZWNvbmRhcnlBeGVzLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xyXG4gIH1cclxuICBkcm9wQXhpcyhldmVudDogQ2RrRHJhZ0Ryb3A8Q3ViZUF4aXNbXT4pIHtcclxuICAgIG1vdmVJdGVtSW5BcnJheSh0aGlzLm1vZGVsLmF4ZXMsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XHJcbiAgfVxyXG4gIHJlbW92ZUF4aXMoaW5kZXg6IG51bWJlcikge1xyXG4gICAgdGhpcy5heGVzLnJlbW92ZUF0KGluZGV4KTtcclxuICB9XHJcbiAgcmVtb3ZlSW5kZXgoaW5kZXg6IG51bWJlcikge1xyXG4gICAgdGhpcy5pbmRpY2VzLnJlbW92ZUF0KGluZGV4KTtcclxuICB9XHJcbiAgcmVtb3ZlVmlldyhpbmRleDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnNlY29uZGFyeUF4ZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIHRoaXMudmlld3MucmVtb3ZlQXQoaW5kZXgpO1xyXG4gIH1cclxuICBhZGRBeGlzKCkge1xyXG4gICAgdGhpcy5heGVzLnB1c2godGhpcy5fZm9ybWF4aXMoe30gYXMgYW55KSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gIH1cclxuICBhZGRJbmRleCgpIHtcclxuICAgIHRoaXMuaW5kaWNlcy5wdXNoKHRoaXMuX2Zvcm1pbmRleCh7fSBhcyBhbnkpLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgfVxyXG4gIGFkZFZpZXcoKSB7XHJcbiAgICB0aGlzLnZpZXdzLnB1c2godGhpcy5fZm9ybXZpZXcoe30gYXMgYW55KSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gIH1cclxuICBuYW1lT2YoYXhpczogc3RyaW5nIHwgc3RyaW5nW10pIHsgcmV0dXJuIHRoaXMubW9kZWwuYXhlcy5maWx0ZXIoYSA9PiBpc0FycmF5KGF4aXMpID8gYXhpcy5pbmRleE9mKGEubmFtZSk+IC0xIDogYS5uYW1lID09PSBheGlzKS5qb2luKCcsICcpIH1cclxuICB4QXhpc1NlbGVjdGVkKGluZGV4OiBudW1iZXIsIGV2dDogTWF0U2VsZWN0Q2hhbmdlKSB7XHJcbiAgICB0aGlzLl9zZWNvbmRhcnlBeGVzKGluZGV4LCBldnQudmFsdWUpO1xyXG4gIH1cclxuICBwcm90ZWN0ZWQgX3NlY29uZGFyeUF4ZXMoaW5kZXg6IG51bWJlciwgYXhpczogc3RyaW5nW10gfCBzdHJpbmcpIHtcclxuICAgIGlmICghYXhpcykgcmV0dXJuO1xyXG4gICAgdGhpcy5zZWNvbmRhcnlBeGVzW2luZGV4XSA9IHRoaXMubW9kZWwuYXhlcy5maWx0ZXIoYSA9PiBpc0FycmF5KGF4aXMpID8gYXhpcy5pbmRleE9mKGEubmFtZSkgPCAwIDogYXhpcyAhPT0gYS5uYW1lKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZm9ybXZpZXcobW9kZWw6IEN1YmVWaWV3KTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLl9mYi5ncm91cCh7XHJcbiAgICAgIG5hbWU6IHRoaXMuX2ZiLmNvbnRyb2wobW9kZWwubmFtZSksXHJcbiAgICAgIHRpdGxlOiBtb2RlbC50aXRsZSxcclxuICAgICAgeEF4aXM6IHRoaXMuX2ZiLmNvbnRyb2wobW9kZWwueEF4aXMsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgICBzZXJpZXM6IG1vZGVsLnNlcmllcyxcclxuICAgICAgaW5kaWNlczogbW9kZWwuaW5kaWNlcyxcclxuICAgICAgdHlwZTogbW9kZWwudHlwZSxcclxuICAgICAgY2hhcnRUeXBlOiBtb2RlbC5jaGFydFR5cGUsXHJcbiAgICB9KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZm9ybWF4aXMobW9kZWw6IEN1YmVBeGlzKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLl9mYi5ncm91cCh7XHJcbiAgICAgIG5hbWU6IG1vZGVsLm5hbWUsXHJcbiAgICAgIHRpdGxlOiB0aGlzLl9mYi5jb250cm9sKG1vZGVsLnRpdGxlLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgICAgZGVzY2VuZGVudE9mOiBtb2RlbC5kZXNjZW5kZW50T2YsXHJcbiAgICAgIGRhdGFUeXBlOiB0aGlzLl9mYi5jb250cm9sKG1vZGVsLmRhdGFUeXBlLCBWYWxpZGF0b3JzLnJlcXVpcmVkKVxyXG4gICAgfSk7XHJcbiAgfSBwcml2YXRlIF9mb3JtaW5kZXgobW9kZWw6IEN1YmVJbmRleCk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmIuZ3JvdXAoe1xyXG4gICAgICBuYW1lOiBtb2RlbC5uYW1lLFxyXG4gICAgICBhY2N1bXVsYXRlOiBtb2RlbC5hY2N1bXVsYXRlLFxyXG4gICAgICB0aXRsZTogdGhpcy5fZmIuY29udHJvbChtb2RlbC50aXRsZSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcbiAgICB9KTtcclxuICB9XHJcbiAgZGF0YXR5cGUobmFtZTogc3RyaW5nKSB7IHJldHVybiB0aGlzLnR5cGVzLmZpbmQodCA9PiB0Lm5hbWUgPT0gbmFtZSk/LnRpdGxlOyB9XHJcbiAgaXNBY2N1bShpbmRleDogbnVtYmVyKSB7XHJcbiAgICBzd2l0Y2ggKHRoaXMubW9kZWwudmlld3NbaW5kZXhdLmNoYXJ0VHlwZSkge1xyXG4gICAgICBjYXNlICdQaWUnOlxyXG4gICAgICBjYXNlICdEb3VnaG51dCc6XHJcbiAgICAgIGNhc2UgJ0hhbGZEb3VnaG51dCc6XHJcbiAgICAgIGNhc2UgJ0Z1bm5lbCc6XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGlzQ2hhcnQoaW5kZXg6IG51bWJlcikge1xyXG4gICAgc3dpdGNoICh0aGlzLm1vZGVsLnZpZXdzW2luZGV4XS50eXBlKSB7XHJcbiAgICAgIGNhc2UgJ0NoYXJ0JzpcclxuICAgICAgY2FzZSAnUGl2b3QnOlxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5pbnRlcmZhY2UgTW9kZWwge1xyXG59XHJcbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJlZGl0TW9kZTsgZWxzZSBpbmZvXCI+XHJcbiAgPGZvcm0gYXV0b2NvbXBsZXRlPVwib2ZmXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCIgY2xhc3M9XCJjb2x1bW5cIj5cclxuICAgIDwhLS0gQXhlcyAtLT5cclxuICAgIDxoMiBjbGFzcz1cIm1hdC1zdWJoZWFkZXJcIj57eydBeGVzJ3x0cmFuc2xhdGV9fTwvaDI+XHJcbiAgICA8ZGl2IGZvcm1BcnJheU5hbWU9XCJheGVzXCIgY2xhc3M9XCJjb2x1bW5cIiBjZGtEcm9wTGlzdCAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3BBeGlzKCRldmVudClcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiICpuZ0Zvcj1cImxldCBhIG9mIGF4ZXMuY29udHJvbHM7IGluZGV4IGFzIGluZGV4XCIgW2Zvcm1Hcm91cF09XCJhXCIgY2RrRHJhZyBjZGtEcmFnUm9vdEVsZW1lbnQ9XCIuZHJhZ1wiPlxyXG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImRyYWdcIj5kcmFnX2luZGljYXRvcjwvbWF0LWljb24+XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD57eydUaXRsZSd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZVwiIHJlcXVpcmVkIC8+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAmbmJzcDtcclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICA8bWF0LWxhYmVsPnt7J0RhdGFUeXBlJ3x0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwiZGF0YVR5cGVcIiByZXF1aXJlZD5cclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHQgb2YgdHlwZXNcIiBbdmFsdWVdPVwidC5uYW1lXCI+e3t0LnRpdGxlfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwicmVtb3ZlQXhpcyhpbmRleClcIiBbYml6ZG9jVG9vbHRpcF09XCInUmVtb3ZlJ3x0cmFuc2xhdGVcIj48bWF0LWljb24+ZGVsZXRlPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJhZGRBeGlzKClcIiBbYml6ZG9jVG9vbHRpcF09XCInQWRkJ3x0cmFuc2xhdGVcIj48bWF0LWljb24+YWRkPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgIDwhLS0gSW5kaWNlcyAtLT5cclxuICAgIDxoMiBjbGFzcz1cIm1hdC1zdWJoZWFkZXJcIj57eydJbmRpY2VzJ3x0cmFuc2xhdGV9fTwvaDI+XHJcbiAgICA8ZGl2IGZvcm1BcnJheU5hbWU9XCJpbmRpY2VzXCIgY2xhc3M9XCJjb2x1bW5cIiBjZGtEcm9wTGlzdCAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3BBeGlzKCRldmVudClcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiICpuZ0Zvcj1cImxldCBhIG9mIGluZGljZXMuY29udHJvbHM7IGluZGV4IGFzIGluZGV4XCIgW2Zvcm1Hcm91cF09XCJhXCIgY2RrRHJhZyBjZGtEcmFnUm9vdEVsZW1lbnQ9XCIuZHJhZ1wiPlxyXG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImRyYWdcIj5kcmFnX2luZGljYXRvcjwvbWF0LWljb24+XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD57eydUaXRsZSd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZVwiIHJlcXVpcmVkIC8+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwicmVtb3ZlSW5kZXgoaW5kZXgpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1JlbW92ZSd8dHJhbnNsYXRlXCI+PG1hdC1pY29uPmRlbGV0ZTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiYWRkSW5kZXgoKVwiIFtiaXpkb2NUb29sdGlwXT1cIidBZGQnfHRyYW5zbGF0ZVwiPjxtYXQtaWNvbj5hZGQ8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgPCEtLSBWaWV3cyAtLT5cclxuICAgIDxoMiBjbGFzcz1cIm1hdC1zdWJoZWFkZXJcIj57eydWaWV3cyd8dHJhbnNsYXRlfX08L2gyPlxyXG4gICAgPGRpdiBmb3JtQXJyYXlOYW1lPVwidmlld3NcIiBjbGFzcz1cImNvbHVtblwiIGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcFZpZXcoJGV2ZW50KVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nRm9yPVwibGV0IHYgb2Ygdmlld3MuY29udHJvbHM7IGluZGV4IGFzIGluZGV4XCIgW2Zvcm1Hcm91cF09XCJ2XCIgY2RrRHJhZyBjZGtEcmFnUm9vdEVsZW1lbnQ9XCIuZHJhZ1wiPlxyXG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImRyYWdcIj5kcmFnX2luZGljYXRvcjwvbWF0LWljb24+XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD57eydUaXRsZSd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZVwiIHJlcXVpcmVkIC8+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAmbmJzcDtcclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICA8bWF0LWxhYmVsPnt7J1R5cGUnfHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJ0eXBlXCI+XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiQ2hhcnRcIj57eydDaGFydCd8dHJhbnNsYXRlfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiUGl2b3RcIj57eydQaXZvdCd8dHJhbnNsYXRlfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiR3JpZFwiPnt7J0dyaWQnfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cIlNwcmVhZHNoZWV0XCI+e3snU3ByZWFkc2hlZXQnfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgJm5ic3A7XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkICpuZ0lmPVwiaXNDaGFydChpbmRleClcIj5cclxuICAgICAgICAgIDxtYXQtbGFiZWw+e3snQ2hhcnRUeXBlJ3x0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwiY2hhcnRUeXBlXCI+XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiUGllXCI+e3snUGllJ3x0cmFuc2xhdGV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJDb2x1bW5cIj57eydDb2x1bW4nfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cIkJhclwiPnt7J0Jhcid8dHJhbnNsYXRlfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiQnViYmxlXCI+e3snQnViYmxlJ3x0cmFuc2xhdGV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJTdGFja2luZ0JhclwiPnt7J1N0YWNraW5nQmFyJ3x0cmFuc2xhdGV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJTdGFja2luZ0JhcjEwMFwiPnt7J1N0YWNraW5nQmFyMTAwJ3x0cmFuc2xhdGV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJMaW5lXCI+e3snTGluZSd8dHJhbnNsYXRlfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiU3BsaW5lXCI+e3snU3BsaW5lJ3x0cmFuc2xhdGV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJBcmVhXCI+e3snQXJlYSd8dHJhbnNsYXRlfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiU3BsaW5lQXJlYVwiPnt7J1NwbGluZUFyZWEnfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cIkRvdWdobnV0XCI+e3snRG91Z2hudXQnfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cIkhhbGZEb3VnaG51dFwiPnt7J0hhbGZEb3VnaG51dCd8dHJhbnNsYXRlfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiU3RhY2tpbmdBcmVhXCI+e3snU3RhY2tpbmdBcmVhJ3x0cmFuc2xhdGV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJTdGFja2luZ0FyZWExMDBcIj57eydTdGFja2luZ0FyZWExMDAnfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cIlN0YWNraW5nQ29sdW1uXCI+e3snU3RhY2tpbmdDb2x1bW4nfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cIlN0YWNraW5nQ29sdW1uMTAwXCI+e3snU3RhY2tpbmdDb2x1bW4xMDAnfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cIlNjYXR0ZXJcIj57eydTY2F0dGVyJ3x0cmFuc2xhdGV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJQb2xhclwiPnt7J1BvbGFyJ3x0cmFuc2xhdGV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJSYWRhclwiPnt7J1JhZGFyJ3x0cmFuc2xhdGV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJTdGVwTGluZVwiPnt7J1N0ZXBMaW5lJ3x0cmFuc2xhdGV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJTdGVwQXJlYVwiPnt7J1N0ZXBBcmVhJ3x0cmFuc2xhdGV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJTdGFja2luZ1N0ZXBBcmVhXCI+e3snU3RhY2tpbmdTdGVwQXJlYSd8dHJhbnNsYXRlfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiU3RhY2tpbmdMaW5lXCI+e3snU3RhY2tpbmdMaW5lJ3x0cmFuc2xhdGV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJTdGFja2luZ0xpbmUxMDBcIj57eydTdGFja2luZ0xpbmUxMDAnfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cIkZ1bm5lbFwiPnt7J0Z1bm5lbCd8dHJhbnNsYXRlfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiUHlyYW1pZFwiPnt7J1B5cmFtaWQnfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgJm5ic3A7XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD57eydYQXhpcyd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cInhBeGlzXCIgcmVxdWlyZWQgKHNlbGVjdGlvbkNoYW5nZSk9XCJ4QXhpc1NlbGVjdGVkKGluZGV4LCAkZXZlbnQpXCIgbXVsdGlwbGU+XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCB4IG9mIG1vZGVsLmF4ZXNcIiBbdmFsdWVdPVwieC5uYW1lXCI+e3t4LnRpdGxlIHx8IHgubmFtZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgJm5ic3A7XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD57eydTZXJpZXMnfHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJzZXJpZXNcIiBtdWx0aXBsZSBbZGlzYWJsZWRdPVwiaXNBY2N1bShpbmRleClcIj5cclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHggb2Ygc2Vjb25kYXJ5QXhlc1tpbmRleF1cIiBbdmFsdWVdPVwieC5uYW1lXCI+e3t4LnRpdGxlIHx8IHgubmFtZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInJlbW92ZVZpZXcoaW5kZXgpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1JlbW92ZSd8dHJhbnNsYXRlXCI+PG1hdC1pY29uPmRlbGV0ZTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiYWRkVmlldygpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ0FkZCd8dHJhbnNsYXRlXCI+PG1hdC1pY29uPmFkZDwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Zvcm0+XHJcbiAgPGJpemRvYy1wcml2aWxlZ2VzIChjaGFuZ2UpPVwiY2hhbmdlLmVtaXQoKVwiIFttb2RlbF09XCJtb2RlbC5wcml2aWxlZ2VzXCI+PC9iaXpkb2MtcHJpdmlsZWdlcz5cclxuPC9uZy1jb250YWluZXI+XHJcbjwhLS0gSW5mbyAtLT5cclxuPG5nLXRlbXBsYXRlICNpbmZvPlxyXG4gIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgIDxkaXY+XHJcbiAgICAgIDxoMiBjbGFzcz1cIm1hdC1zdWJoZWFkZXJcIj57eydBeGVzJ3x0cmFuc2xhdGV9fTwvaDI+XHJcbiAgICAgIDx0YWJsZSBjbGFzcz1cIm1hdC10YWJsZVwiPlxyXG4gICAgICAgIDx0ciBjbGFzcz1cIm1hdC1yb3dcIiAqbmdGb3I9XCJsZXQgYSBvZiBtb2RlbC5heGVzXCI+XHJcbiAgICAgICAgICA8dGQgY2xhc3M9XCJtYXQtY2VsbFwiPnt7YS5uYW1lfX08L3RkPlxyXG4gICAgICAgICAgPHRkIGNsYXNzPVwibWF0LWNlbGxcIj57e2EudGl0bGV9fTwvdGQ+XHJcbiAgICAgICAgICA8dGQgY2xhc3M9XCJtYXQtY2VsbFwiPnt7ZGF0YXR5cGUoYS5kYXRhVHlwZSl9fTwvdGQ+XHJcbiAgICAgICAgPC90cj5cclxuICAgICAgPC90YWJsZT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdj5cclxuICAgICAgPGgyIGNsYXNzPVwibWF0LXN1YmhlYWRlclwiPnt7J0luZGljZXMnfHRyYW5zbGF0ZX19PC9oMj5cclxuICAgICAgPHRhYmxlIGNsYXNzPVwibWF0LXRhYmxlXCI+XHJcbiAgICAgICAgPHRyIGNsYXNzPVwibWF0LXJvd1wiICpuZ0Zvcj1cImxldCBhIG9mIG1vZGVsLmluZGljZXNcIj5cclxuICAgICAgICAgIDx0ZCBjbGFzcz1cIm1hdC1jZWxsXCI+e3thLm5hbWV9fTwvdGQ+XHJcbiAgICAgICAgICA8dGQgY2xhc3M9XCJtYXQtY2VsbFwiPnt7YS50aXRsZX19PC90ZD5cclxuICAgICAgICA8L3RyPlxyXG4gICAgICA8L3RhYmxlPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2PlxyXG4gICAgICA8aDIgY2xhc3M9XCJtYXQtc3ViaGVhZGVyXCI+e3snVmlld3MnfHRyYW5zbGF0ZX19PC9oMj5cclxuICAgICAgPHRhYmxlIGNsYXNzPVwibWF0LXRhYmxlXCI+XHJcbiAgICAgICAgPHRyIGNsYXNzPVwibWF0LXJvd1wiICpuZ0Zvcj1cImxldCB2IG9mIG1vZGVsLnZpZXdzXCI+XHJcbiAgICAgICAgICA8dGQgY2xhc3M9XCJtYXQtY2VsbFwiPnt7di50aXRsZX19PC90ZD5cclxuICAgICAgICAgIDx0ZCBjbGFzcz1cIm1hdC1jZWxsXCI+e3sodi50eXBlfHwnQ2hhcnQnKXx0cmFuc2xhdGV9fTwvdGQ+XHJcbiAgICAgICAgPC90cj5cclxuICAgICAgPC90YWJsZT5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
@@ -0,0 +1,49 @@
1
+ import { __decorate } from "tslib";
2
+ import { Component } from "@angular/core";
3
+ import { Validators } from "@angular/forms";
4
+ import { BizDoc } from "../../../core/decorators";
5
+ import { DesignerElementComponent } from "../designer.base";
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/forms";
8
+ import * as i2 from "../../../core/session.service";
9
+ import * as i3 from "@angular/common";
10
+ import * as i4 from "@angular/material/core";
11
+ import * as i5 from "@angular/material/form-field";
12
+ import * as i6 from "@angular/material/select";
13
+ import * as i7 from "../../../core/pipes/translate.pipe";
14
+ let DocumentsReportDesignComponent = class DocumentsReportDesignComponent extends DesignerElementComponent {
15
+ constructor(_fb, _session) {
16
+ super();
17
+ this._fb = _fb;
18
+ this._session = _session;
19
+ this.form = this._fb.group({
20
+ cube: null,
21
+ xAxis: this._fb.control(null, Validators.required),
22
+ series: null,
23
+ indices: null,
24
+ filters: this._fb.group({}),
25
+ chartType: null,
26
+ scope: null
27
+ });
28
+ this.cubes = this._session.profile.cubes;
29
+ }
30
+ ngOnInit() {
31
+ this.selectedCube = !this.model.options.cube ? this._session.profile.cubes[0] :
32
+ this._session.profile.cubes.find(c => c.name === this.model.options.cube);
33
+ }
34
+ cubeSelected(evt) {
35
+ this.selectedCube = evt.value;
36
+ this.form.get('cube').setValue(evt.value.name);
37
+ }
38
+ };
39
+ DocumentsReportDesignComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: DocumentsReportDesignComponent, deps: [{ token: i1.FormBuilder }, { token: i2.SessionService }], target: i0.ɵɵFactoryTarget.Component });
40
+ DocumentsReportDesignComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: DocumentsReportDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"editMode; else info\">\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>{{'Default'|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>{{'XAxis'|translate}}</mat-label>\r\n <mat-select formControlName=\"xAxis\" required>\r\n <mat-option *ngFor=\"let x of cube?.axes\" [value]=\"x.name\">{{x.title}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </form>\r\n</ng-container>\r\n<!---->\r\n<ng-template #info></ng-template>\r\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "component", type: i6.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] });
41
+ DocumentsReportDesignComponent = __decorate([
42
+ BizDoc({ selector: 'documents-report-designer' })
43
+ ], DocumentsReportDesignComponent);
44
+ export { DocumentsReportDesignComponent };
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: DocumentsReportDesignComponent, decorators: [{
46
+ type: Component,
47
+ args: [{ template: "<ng-container *ngIf=\"editMode; else info\">\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>{{'Default'|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>{{'XAxis'|translate}}</mat-label>\r\n <mat-select formControlName=\"xAxis\" required>\r\n <mat-option *ngFor=\"let x of cube?.axes\" [value]=\"x.name\">{{x.title}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </form>\r\n</ng-container>\r\n<!---->\r\n<ng-template #info></ng-template>\r\n" }]
48
+ }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.SessionService }]; } });
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRzLXJlcG9ydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvZWxlbWVudHMvZG9jdW1lbnRzLXJlcG9ydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvZWxlbWVudHMvZG9jdW1lbnRzLXJlcG9ydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQWUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHekQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBR2xELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7Ozs7SUFJL0MsOEJBQThCLFNBQTlCLDhCQUErQixTQUFRLHdCQUErQjtJQVlqRixZQUFvQixHQUFnQixFQUFVLFFBQXdCO1FBQ3BFLEtBQUssRUFBRSxDQUFBO1FBRFcsUUFBRyxHQUFILEdBQUcsQ0FBYTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBWDdELFNBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztZQUM3QixJQUFJLEVBQUUsSUFBSTtZQUNWLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUNsRCxNQUFNLEVBQUUsSUFBSTtZQUNaLE9BQU8sRUFBRSxJQUFJO1lBQ2IsT0FBTyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMzQixTQUFTLEVBQUUsSUFBSTtZQUNmLEtBQUssRUFBRSxJQUFJO1NBQ1osQ0FBQyxDQUFDO1FBS0QsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDM0MsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM3RSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBQ0QsWUFBWSxDQUFDLEdBQW9CO1FBQy9CLElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztRQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUUsR0FBRyxDQUFDLEtBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzRCxDQUFDO0NBQ0YsQ0FBQTsySEF4QlksOEJBQThCOytHQUE5Qiw4QkFBOEIsMkVDWDNDLHMxQkFtQkE7QURSYSw4QkFBOEI7SUFEeEMsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLDJCQUEyQixFQUFFLENBQUM7R0FDdkMsOEJBQThCLENBd0IxQztTQXhCWSw4QkFBOEI7MkZBQTlCLDhCQUE4QjtrQkFGMUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgTWF0U2VsZWN0Q2hhbmdlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NlbGVjdFwiO1xyXG5pbXBvcnQgeyBTY29wZVR5cGUgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9jb25maWd1cmF0aW9uXCI7XHJcbmltcG9ydCB7IEJpekRvYyB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2RlY29yYXRvcnNcIjtcclxuaW1wb3J0IHsgQ2hhcnRUeXBlLCBDdWJlIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvbW9kZWxzXCI7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERlc2lnbmVyRWxlbWVudENvbXBvbmVudCB9IGZyb20gXCIuLi9kZXNpZ25lci5iYXNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHsgdGVtcGxhdGVVcmw6ICdkb2N1bWVudHMtcmVwb3J0LmNvbXBvbmVudC5odG1sJyB9KVxyXG4gIEBCaXpEb2MoeyBzZWxlY3RvcjogJ2RvY3VtZW50cy1yZXBvcnQtZGVzaWduZXInIH0pXHJcbmV4cG9ydCBjbGFzcyBEb2N1bWVudHNSZXBvcnREZXNpZ25Db21wb25lbnQgZXh0ZW5kcyBEZXNpZ25lckVsZW1lbnRDb21wb25lbnQ8TW9kZWw+IGltcGxlbWVudHMgT25Jbml0IHtcclxuICByZWFkb25seSBmb3JtID0gdGhpcy5fZmIuZ3JvdXAoe1xyXG4gICAgY3ViZTogbnVsbCxcclxuICAgIHhBeGlzOiB0aGlzLl9mYi5jb250cm9sKG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgc2VyaWVzOiBudWxsLFxyXG4gICAgaW5kaWNlczogbnVsbCxcclxuICAgIGZpbHRlcnM6IHRoaXMuX2ZiLmdyb3VwKHt9KSxcclxuICAgIGNoYXJ0VHlwZTogbnVsbCxcclxuICAgIHNjb3BlOiBudWxsXHJcbiAgfSk7XHJcbiAgc2VsZWN0ZWRDdWJlOiBDdWJlO1xyXG4gIHJlYWRvbmx5IGN1YmVzOiBDdWJlW107XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZmI6IEZvcm1CdWlsZGVyLCBwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSkge1xyXG4gICAgc3VwZXIoKVxyXG4gICAgdGhpcy5jdWJlcyA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlcztcclxuICB9XHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkQ3ViZSA9ICF0aGlzLm1vZGVsLm9wdGlvbnMuY3ViZSA/IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlc1swXSA6XHJcbiAgICAgIHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlcy5maW5kKGMgPT4gYy5uYW1lID09PSB0aGlzLm1vZGVsLm9wdGlvbnMuY3ViZSk7XHJcbiAgfVxyXG4gIGN1YmVTZWxlY3RlZChldnQ6IE1hdFNlbGVjdENoYW5nZSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZEN1YmUgPSBldnQudmFsdWU7XHJcbiAgICB0aGlzLmZvcm0uZ2V0KCdjdWJlJykuc2V0VmFsdWUoKGV2dC52YWx1ZSBhcyBDdWJlKS5uYW1lKTtcclxuICB9XHJcbn1cclxuaW50ZXJmYWNlIE1vZGVsIHtcclxuICBjdWJlOiBudWxsLFxyXG4gIHhBeGlzOiBudWxsLFxyXG4gIHNlcmllczogbnVsbCxcclxuICBpbmRpY2VzOiBudWxsLFxyXG4gIGZpbHRlcnM6IHt9LFxyXG4gIHNjb3BlOiBTY29wZVR5cGVcclxufVxyXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiZWRpdE1vZGU7IGVsc2UgaW5mb1wiPlxyXG4gIDxmb3JtIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNsYXNzPVwiY29sdW1uXCI+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQgKm5nSWY9XCJjdWJlcy5sZW5ndGg+MVwiPlxyXG4gICAgICA8bWF0LWxhYmVsPnt7J0N1YmUnfHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XHJcbiAgICAgIDxtYXQtc2VsZWN0IHJlcXVpcmVkIChzZWxlY3Rpb25DaGFuZ2UpPVwiY3ViZVNlbGVjdGVkKCRldmVudClcIj5cclxuICAgICAgICA8bWF0LW9wdGlvbj57eydEZWZhdWx0J3x0cmFuc2xhdGV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgYyBvZiBjdWJlc1wiIFt2YWx1ZV09XCJjXCI+e3tjLnRpdGxlfX08L21hdC1vcHRpb24+XHJcbiAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxtYXQtbGFiZWw+e3snWEF4aXMnfHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XHJcbiAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cInhBeGlzXCIgcmVxdWlyZWQ+XHJcbiAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHggb2YgY3ViZT8uYXhlc1wiIFt2YWx1ZV09XCJ4Lm5hbWVcIj57e3gudGl0bGV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8L2Zvcm0+XHJcbjwvbmctY29udGFpbmVyPlxyXG48IS0tLS0+XHJcbjxuZy10ZW1wbGF0ZSAjaW5mbz48L25nLXRlbXBsYXRlPlxyXG4iXX0=