@bizdoc/core 2.3.21 → 2.3.22

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 (406) hide show
  1. package/assets/system/icons.json +1 -1
  2. package/assets/themes/brown.min.css +1 -90
  3. package/assets/themes/dark.min.css +1 -90
  4. package/assets/themes/deep-purple-light-blue.min.css +1 -90
  5. package/assets/themes/deep-purple-teal.min.css +1 -90
  6. package/assets/themes/green.min.css +1 -90
  7. package/assets/themes/indigo.min.css +1 -90
  8. package/assets/themes/spreadsheet.min.css +15 -0
  9. package/esm2022/lib/admin/admin-dismiss.service.mjs +3 -3
  10. package/esm2022/lib/admin/admin-menu.component.mjs +3 -3
  11. package/esm2022/lib/admin/architecture/cube-axes-filter.component.mjs +3 -3
  12. package/esm2022/lib/admin/architecture/designer-element.component.mjs +57 -59
  13. package/esm2022/lib/admin/architecture/designer-privileges.component.mjs +3 -3
  14. package/esm2022/lib/admin/architecture/designer.base.mjs +19 -35
  15. package/esm2022/lib/admin/architecture/designer.component.mjs +18 -8
  16. package/esm2022/lib/admin/architecture/elements/action.component.mjs +5 -5
  17. package/esm2022/lib/admin/architecture/elements/analysis-view.component.mjs +5 -5
  18. package/esm2022/lib/admin/architecture/elements/analysis-widget.component.mjs +3 -3
  19. package/esm2022/lib/admin/architecture/elements/anomaly-rule.component.mjs +3 -3
  20. package/esm2022/lib/admin/architecture/elements/attribute.component.mjs +5 -5
  21. package/esm2022/lib/admin/architecture/elements/box-form.component.mjs +3 -3
  22. package/esm2022/lib/admin/architecture/elements/configuration-datasource.component.mjs +3 -3
  23. package/esm2022/lib/admin/architecture/elements/control.component.mjs +5 -9
  24. package/esm2022/lib/admin/architecture/elements/cube-index-utility.component.mjs +3 -3
  25. package/esm2022/lib/admin/architecture/elements/cube-view.component.mjs +5 -5
  26. package/esm2022/lib/admin/architecture/elements/cube.component.mjs +5 -5
  27. package/esm2022/lib/admin/architecture/elements/document-state-widget.component.mjs +3 -3
  28. package/esm2022/lib/admin/architecture/elements/documents-report.component.mjs +3 -3
  29. package/esm2022/lib/admin/architecture/elements/documents-widget.component.mjs +3 -3
  30. package/esm2022/lib/admin/architecture/elements/explore-view.component.mjs +3 -3
  31. package/esm2022/lib/admin/architecture/elements/folder.component.mjs +5 -5
  32. package/esm2022/lib/admin/architecture/elements/form-invite.dialog.mjs +3 -3
  33. package/esm2022/lib/admin/architecture/elements/form.component.mjs +5 -5
  34. package/esm2022/lib/admin/architecture/elements/guide.component.mjs +5 -5
  35. package/esm2022/lib/admin/architecture/elements/job.component.mjs +5 -5
  36. package/esm2022/lib/admin/architecture/elements/matrix-view.component.mjs +22 -5
  37. package/esm2022/lib/admin/architecture/elements/node.component.mjs +5 -5
  38. package/esm2022/lib/admin/architecture/elements/parallel-view.component.mjs +5 -5
  39. package/esm2022/lib/admin/architecture/elements/performance-report.component.mjs +3 -3
  40. package/esm2022/lib/admin/architecture/elements/performance-widget.component.mjs +3 -3
  41. package/esm2022/lib/admin/architecture/elements/pivot-view.component.mjs +8 -7
  42. package/esm2022/lib/admin/architecture/elements/policy.component.mjs +5 -5
  43. package/esm2022/lib/admin/architecture/elements/report.component.mjs +5 -5
  44. package/esm2022/lib/admin/architecture/elements/return-to-role-action.component.mjs +3 -3
  45. package/esm2022/lib/admin/architecture/elements/role.component.mjs +5 -5
  46. package/esm2022/lib/admin/architecture/elements/rule.component.mjs +5 -5
  47. package/esm2022/lib/admin/architecture/elements/source.component.mjs +5 -5
  48. package/esm2022/lib/admin/architecture/elements/state.component.mjs +5 -5
  49. package/esm2022/lib/admin/architecture/elements/sum-view.component.mjs +3 -3
  50. package/esm2022/lib/admin/architecture/elements/tasks-report.component.mjs +3 -3
  51. package/esm2022/lib/admin/architecture/elements/type.component.mjs +5 -5
  52. package/esm2022/lib/admin/architecture/elements/usage-report.component.mjs +3 -3
  53. package/esm2022/lib/admin/architecture/elements/utility.component.mjs +5 -5
  54. package/esm2022/lib/admin/architecture/elements/view.component.mjs +5 -5
  55. package/esm2022/lib/admin/architecture/elements/widget.component.mjs +5 -5
  56. package/esm2022/lib/admin/architecture/icon-picker.component.mjs +3 -3
  57. package/esm2022/lib/admin/core/ace.input.mjs +3 -3
  58. package/esm2022/lib/admin/core/color-picker.input.mjs +3 -3
  59. package/esm2022/lib/admin/core/localized-string.component.mjs +3 -3
  60. package/esm2022/lib/admin/core/search.input.mjs +3 -3
  61. package/esm2022/lib/admin/diff/configuration-diff.component.mjs +3 -3
  62. package/esm2022/lib/admin/document-trace/document-trace.component.mjs +3 -3
  63. package/esm2022/lib/admin/document-trace/reassign.dialog.mjs +3 -3
  64. package/esm2022/lib/admin/document-trace/trace-element.component.mjs +3 -3
  65. package/esm2022/lib/admin/form/designer/box-designer.component.mjs +3 -3
  66. package/esm2022/lib/admin/form/designer/design-control.component.mjs +3 -3
  67. package/esm2022/lib/admin/form/designer/properties.component.mjs +3 -3
  68. package/esm2022/lib/admin/form/designer/section.component.mjs +3 -3
  69. package/esm2022/lib/admin/form/designer/settings.component.mjs +3 -3
  70. package/esm2022/lib/admin/form/form.resolve.service.mjs +3 -3
  71. package/esm2022/lib/admin/form/workflow/node.component.mjs +3 -3
  72. package/esm2022/lib/admin/form/workflow/role-node.component.mjs +3 -3
  73. package/esm2022/lib/admin/form/workflow/workflow.component.mjs +3 -3
  74. package/esm2022/lib/admin/indices/manage-cube-index.component.mjs +3 -3
  75. package/esm2022/lib/admin/patterns/patterns.component.mjs +3 -3
  76. package/esm2022/lib/admin/permissions/permissions.component.mjs +3 -3
  77. package/esm2022/lib/admin/positions/positions-popup.component.mjs +3 -3
  78. package/esm2022/lib/admin/positions/positions.component.mjs +3 -3
  79. package/esm2022/lib/admin/profiler/outofoffice.component.mjs +3 -3
  80. package/esm2022/lib/admin/profiler/profiler.component.mjs +3 -3
  81. package/esm2022/lib/admin/system.service.mjs +3 -3
  82. package/esm2022/lib/admin/utility-wrapper.component.mjs +3 -3
  83. package/esm2022/lib/admin/utility.pane.component.mjs +3 -3
  84. package/esm2022/lib/app.component.mjs +6 -6
  85. package/esm2022/lib/bizdoc.module.mjs +4 -4
  86. package/esm2022/lib/browse/browse-items.component.mjs +9 -7
  87. package/esm2022/lib/browse/browse.mobile.component.mjs +5 -5
  88. package/esm2022/lib/browse/browse.pane.component.mjs +3 -3
  89. package/esm2022/lib/browse/expanded-item/expanded-item.component.mjs +3 -3
  90. package/esm2022/lib/browse/filter/filter.component.mjs +3 -3
  91. package/esm2022/lib/browse/folders-menu.component.mjs +3 -3
  92. package/esm2022/lib/chat/chat-info.mjs +3 -3
  93. package/esm2022/lib/chat/chat.mobile.component.mjs +3 -3
  94. package/esm2022/lib/chat/chat.service.mjs +3 -3
  95. package/esm2022/lib/chat/contacts.component.mjs +6 -6
  96. package/esm2022/lib/chat/contacts.pane.component.mjs +3 -3
  97. package/esm2022/lib/chat/conversation.component.mjs +3 -3
  98. package/esm2022/lib/chat/conversation.pane.component.mjs +3 -3
  99. package/esm2022/lib/compose/action/action-picker.component.mjs +3 -3
  100. package/esm2022/lib/compose/action/action.dialog.mjs +3 -3
  101. package/esm2022/lib/compose/action/action.pane.dialog.exp.mjs +3 -3
  102. package/esm2022/lib/compose/action/assign-action.component.mjs +3 -3
  103. package/esm2022/lib/compose/action/moveto-action.component.mjs +3 -3
  104. package/esm2022/lib/compose/action/return-action.component.mjs +3 -3
  105. package/esm2022/lib/compose/attachments/attachments.component.mjs +3 -3
  106. package/esm2022/lib/compose/attachments/preview/attachment-preview.component.mjs +3 -3
  107. package/esm2022/lib/compose/attachments/progress-button.directive.mjs +3 -3
  108. package/esm2022/lib/compose/box/box.component.mjs +3 -3
  109. package/esm2022/lib/compose/box/control.component.mjs +3 -3
  110. package/esm2022/lib/compose/box/row.component.mjs +3 -3
  111. package/esm2022/lib/compose/can-deactivate-changes.service.mjs +3 -3
  112. package/esm2022/lib/compose/comments/comment.component.mjs +3 -3
  113. package/esm2022/lib/compose/comments/comments.component.mjs +3 -3
  114. package/esm2022/lib/compose/comments/comments.pane.component.mjs +3 -3
  115. package/esm2022/lib/compose/comments/edit-comment.component.mjs +3 -3
  116. package/esm2022/lib/compose/comments/edits.component.mjs +3 -3
  117. package/esm2022/lib/compose/comments/quick-comment.component.exp.mjs +3 -3
  118. package/esm2022/lib/compose/comments/votes.component.mjs +3 -3
  119. package/esm2022/lib/compose/compose-resolve.service.mjs +6 -6
  120. package/esm2022/lib/compose/compose.mobile.component.mjs +7 -11
  121. package/esm2022/lib/compose/compose.pane.component.mjs +5 -15
  122. package/esm2022/lib/compose/copy/copy.dialog.mjs +3 -3
  123. package/esm2022/lib/compose/dismiss.service.mjs +3 -3
  124. package/esm2022/lib/compose/document-resolver.service.mjs +3 -3
  125. package/esm2022/lib/compose/document.component.mjs +3 -3
  126. package/esm2022/lib/compose/document.mobile.component.mjs +3 -3
  127. package/esm2022/lib/compose/document.pane.component.mjs +3 -3
  128. package/esm2022/lib/compose/events/events.component.mjs +3 -3
  129. package/esm2022/lib/compose/form-selector/form-selector.sheet.mjs +3 -3
  130. package/esm2022/lib/compose/form.component.mjs +3 -3
  131. package/esm2022/lib/compose/new-menu.component.mjs +3 -3
  132. package/esm2022/lib/compose/privilage.directive.mjs +6 -6
  133. package/esm2022/lib/compose/recipient-resolver.service.mjs +3 -3
  134. package/esm2022/lib/compose/state.component.mjs +3 -3
  135. package/esm2022/lib/compose/tag/tags.component.mjs +3 -3
  136. package/esm2022/lib/compose/trace/flow.component.mjs +3 -3
  137. package/esm2022/lib/compose/trace/people.component.mjs +3 -3
  138. package/esm2022/lib/compose/trace/trace.base.mjs +3 -3
  139. package/esm2022/lib/compose/trace/trace.component.mjs +3 -3
  140. package/esm2022/lib/compose/trace/trace.pane.component.mjs +3 -3
  141. package/esm2022/lib/compose/version-compare/version-compare.component.mjs +3 -3
  142. package/esm2022/lib/compose/version-compare/version-compare.directive.mjs +9 -9
  143. package/esm2022/lib/compose/version-compare/version.pane.component.mjs +3 -3
  144. package/esm2022/lib/core/StickyToolbar.mjs +30 -0
  145. package/esm2022/lib/core/account.service.mjs +3 -3
  146. package/esm2022/lib/core/animated-icon/animated-icon.directive.mjs +3 -3
  147. package/esm2022/lib/core/animations.mjs +2 -2
  148. package/esm2022/lib/core/avatar/avatar.component.mjs +3 -3
  149. package/esm2022/lib/core/checkbox.mjs +3 -3
  150. package/esm2022/lib/core/component-factory-resolver.mjs +3 -3
  151. package/esm2022/lib/core/datasource.service.mjs +3 -3
  152. package/esm2022/lib/core/fields/address.designer.mjs +3 -3
  153. package/esm2022/lib/core/fields/address.field.mjs +3 -3
  154. package/esm2022/lib/core/fields/autocomplete.field.mjs +6 -6
  155. package/esm2022/lib/core/fields/checkbox.designer.mjs +3 -3
  156. package/esm2022/lib/core/fields/checkbox.field.mjs +3 -3
  157. package/esm2022/lib/core/fields/checklist.designer.mjs +3 -3
  158. package/esm2022/lib/core/fields/checklist.field.mjs +3 -3
  159. package/esm2022/lib/core/fields/date-range.designer.mjs +3 -3
  160. package/esm2022/lib/core/fields/date-range.field.mjs +3 -3
  161. package/esm2022/lib/core/fields/date.designer.mjs +3 -3
  162. package/esm2022/lib/core/fields/date.field.mjs +3 -3
  163. package/esm2022/lib/core/fields/expression.field.mjs +6 -6
  164. package/esm2022/lib/core/fields/file.designer.mjs +3 -3
  165. package/esm2022/lib/core/fields/file.field.mjs +3 -3
  166. package/esm2022/lib/core/fields/html.designer.mjs +3 -3
  167. package/esm2022/lib/core/fields/html.field.mjs +3 -3
  168. package/esm2022/lib/core/fields/input.designer.mjs +3 -3
  169. package/esm2022/lib/core/fields/input.field.mjs +3 -3
  170. package/esm2022/lib/core/fields/localized-string.field.mjs +6 -6
  171. package/esm2022/lib/core/fields/numeric.designer.mjs +3 -3
  172. package/esm2022/lib/core/fields/numeric.field.mjs +3 -3
  173. package/esm2022/lib/core/fields/options.base.mjs +6 -6
  174. package/esm2022/lib/core/fields/options.component.mjs +3 -3
  175. package/esm2022/lib/core/fields/radio-button.designer.mjs +3 -3
  176. package/esm2022/lib/core/fields/radio-button.field.mjs +3 -3
  177. package/esm2022/lib/core/fields/select.designer.mjs +3 -3
  178. package/esm2022/lib/core/fields/select.field.mjs +3 -3
  179. package/esm2022/lib/core/fields/signature.designer.mjs +3 -3
  180. package/esm2022/lib/core/fields/signature.field.mjs +3 -3
  181. package/esm2022/lib/core/fields/switch.field.mjs +3 -3
  182. package/esm2022/lib/core/fields/tags.designer.mjs +3 -3
  183. package/esm2022/lib/core/fields/tags.field.mjs +3 -3
  184. package/esm2022/lib/core/fields/textarea.designer.mjs +3 -3
  185. package/esm2022/lib/core/fields/textarea.field.mjs +3 -3
  186. package/esm2022/lib/core/fields/time.designer.mjs +3 -3
  187. package/esm2022/lib/core/fields/time.field.mjs +3 -3
  188. package/esm2022/lib/core/fields/timespan.field.mjs +6 -6
  189. package/esm2022/lib/core/fields/yesno.designer.mjs +3 -3
  190. package/esm2022/lib/core/fields/yesno.field.mjs +3 -3
  191. package/esm2022/lib/core/guide/guide.component.mjs +3 -3
  192. package/esm2022/lib/core/guide/guide.service.mjs +3 -3
  193. package/esm2022/lib/core/guide/help-tip.component.mjs +3 -3
  194. package/esm2022/lib/core/http.interceptor.mjs +3 -3
  195. package/esm2022/lib/core/hub.service.mjs +3 -3
  196. package/esm2022/lib/core/identity/identity.component.mjs +3 -3
  197. package/esm2022/lib/core/info/attachment-info.service.mjs +3 -3
  198. package/esm2022/lib/core/info/document-info.service.mjs +3 -3
  199. package/esm2022/lib/core/info/location-info.component.mjs +3 -3
  200. package/esm2022/lib/core/info/map-info.mjs +3 -3
  201. package/esm2022/lib/core/inputs/address.input.mjs +3 -3
  202. package/esm2022/lib/core/inputs/auto-complete.input.mjs +3 -3
  203. package/esm2022/lib/core/inputs/combination-picker-body.mjs +3 -3
  204. package/esm2022/lib/core/inputs/combination-picker.mjs +5 -5
  205. package/esm2022/lib/core/inputs/combination-pool.mjs +3 -3
  206. package/esm2022/lib/core/inputs/file.input.mjs +3 -3
  207. package/esm2022/lib/core/inputs/select.input.mjs +3 -3
  208. package/esm2022/lib/core/inputs/signature.input.mjs +3 -3
  209. package/esm2022/lib/core/inputs/time-picker.mjs +3 -3
  210. package/esm2022/lib/core/inputs/timespan.input.mjs +3 -3
  211. package/esm2022/lib/core/layout.component.mjs +3 -3
  212. package/esm2022/lib/core/lottie-animation.mjs +3 -3
  213. package/esm2022/lib/core/mailbox.service.mjs +3 -3
  214. package/esm2022/lib/core/none.component.mjs +3 -3
  215. package/esm2022/lib/core/pipes/action.pipe.mjs +3 -3
  216. package/esm2022/lib/core/pipes/calendar.pipe.mjs +3 -3
  217. package/esm2022/lib/core/pipes/date-format.pipe.mjs +3 -3
  218. package/esm2022/lib/core/pipes/daterange.pipe.mjs +6 -6
  219. package/esm2022/lib/core/pipes/difference.pipe.mjs +3 -3
  220. package/esm2022/lib/core/pipes/duration-format.pipe.mjs +3 -3
  221. package/esm2022/lib/core/pipes/duration.pipe.mjs +3 -3
  222. package/esm2022/lib/core/pipes/form.pipe.mjs +3 -3
  223. package/esm2022/lib/core/pipes/join.pipe.mjs +3 -3
  224. package/esm2022/lib/core/pipes/localized-string.pipe.mjs +3 -3
  225. package/esm2022/lib/core/pipes/role.pipe.mjs +3 -3
  226. package/esm2022/lib/core/pipes/sanitize-html.pipe.mjs +3 -3
  227. package/esm2022/lib/core/pipes/sort.pipe.mjs +6 -6
  228. package/esm2022/lib/core/pipes/state.pipe.mjs +3 -3
  229. package/esm2022/lib/core/pipes/time-ago.pipe.mjs +6 -6
  230. package/esm2022/lib/core/pipes/translate.pipe.mjs +9 -9
  231. package/esm2022/lib/core/pipes/type-value.pipe.mjs +3 -3
  232. package/esm2022/lib/core/pipes/user-name.pipe.mjs +3 -3
  233. package/esm2022/lib/core/popup/popup.component.mjs +3 -3
  234. package/esm2022/lib/core/popup/popup.service.mjs +3 -3
  235. package/esm2022/lib/core/popup/tooltip.directive.mjs +6 -6
  236. package/esm2022/lib/core/prompt/ask/ask.dialog.mjs +3 -3
  237. package/esm2022/lib/core/prompt/mask/mask.component.mjs +3 -3
  238. package/esm2022/lib/core/prompt.service.mjs +3 -3
  239. package/esm2022/lib/core/router.mjs +6 -6
  240. package/esm2022/lib/core/save-changes.dialog.mjs +3 -3
  241. package/esm2022/lib/core/session.service.mjs +3 -3
  242. package/esm2022/lib/core/slots/router.directive.mjs +3 -3
  243. package/esm2022/lib/core/slots/router.service.mjs +3 -3
  244. package/esm2022/lib/core/slots/slots.component.mjs +5 -5
  245. package/esm2022/lib/core/tagging/documents.component.mjs +3 -3
  246. package/esm2022/lib/core/tagging/edit-input.component.mjs +3 -3
  247. package/esm2022/lib/core/tagging/emoji.component.mjs +3 -3
  248. package/esm2022/lib/core/tagging/tagging-item.directive.mjs +3 -3
  249. package/esm2022/lib/core/tagging/tagging.component-base.mjs +3 -3
  250. package/esm2022/lib/core/tagging/tagging.directive.mjs +3 -3
  251. package/esm2022/lib/core/tagging/tagging.pipe.mjs +3 -3
  252. package/esm2022/lib/core/tagging/users.component.mjs +3 -3
  253. package/esm2022/lib/core/translate.service.mjs +3 -3
  254. package/esm2022/lib/core/translations.mjs +2 -2
  255. package/esm2022/lib/core/window-title.service.mjs +3 -3
  256. package/esm2022/lib/cube/accum/accum.component.mjs +3 -3
  257. package/esm2022/lib/cube/chart/chart.component.mjs +3 -3
  258. package/esm2022/lib/cube/cube-info.service.mjs +3 -3
  259. package/esm2022/lib/cube/cube-menu.component.mjs +3 -3
  260. package/esm2022/lib/cube/cube-view.component.mjs +5 -5
  261. package/esm2022/lib/cube/cube.service.mjs +3 -3
  262. package/esm2022/lib/cube/explore/document-item.component.mjs +3 -3
  263. package/esm2022/lib/cube/explore/explore-item.component.mjs +3 -3
  264. package/esm2022/lib/cube/explore/explore-items.component.mjs +3 -3
  265. package/esm2022/lib/cube/explore/explore.pane.component.mjs +3 -3
  266. package/esm2022/lib/cube/explore/item-resolver.service.mjs +6 -6
  267. package/esm2022/lib/cube/explore/item.pane.component.mjs +3 -3
  268. package/esm2022/lib/cube/filter/filter-tags.component.exp.mjs +3 -3
  269. package/esm2022/lib/cube/filter/filter.component.mjs +3 -3
  270. package/esm2022/lib/cube/grid/grid.component.mjs +3 -3
  271. package/esm2022/lib/cube/matrix/matrix.base.mjs +3 -3
  272. package/esm2022/lib/cube/matrix/matrix.mobile.component.mjs +3 -3
  273. package/esm2022/lib/cube/matrix/matrix.pane.component.mjs +3 -3
  274. package/esm2022/lib/cube/matrix/popup.component.mjs +3 -3
  275. package/esm2022/lib/cube/matrix/table.component.mjs +8 -5
  276. package/esm2022/lib/cube/parallel/parallel.component.mjs +3 -3
  277. package/esm2022/lib/cube/pivot/pivot.component.mjs +3 -3
  278. package/esm2022/lib/cube/spreadsheet/spreadsheet.component.mjs +391 -0
  279. package/esm2022/lib/cube/spreadsheet/spreadsheet.container.mjs +19 -0
  280. package/esm2022/lib/cube/sum/sum.component.mjs +3 -3
  281. package/esm2022/lib/cube/view-base.mjs +3 -3
  282. package/esm2022/lib/cube/view.mobile.component.mjs +3 -3
  283. package/esm2022/lib/cube/view.pane.component.mjs +3 -3
  284. package/esm2022/lib/dashboard/actions/actions.widget.mjs +3 -3
  285. package/esm2022/lib/dashboard/cube/accum-cube.widget.mjs +3 -3
  286. package/esm2022/lib/dashboard/cube/compare.widget.mjs +3 -3
  287. package/esm2022/lib/dashboard/cube/cube-analysis.base.mjs +3 -3
  288. package/esm2022/lib/dashboard/cube/cube-analysis.widget.mjs +3 -3
  289. package/esm2022/lib/dashboard/cube/cube-chart.widget.mjs +3 -3
  290. package/esm2022/lib/dashboard/cube/document-state.widget.mjs +3 -3
  291. package/esm2022/lib/dashboard/cube/documents.widget.mjs +3 -3
  292. package/esm2022/lib/dashboard/cube/filter/filter.component.mjs +3 -3
  293. package/esm2022/lib/dashboard/dashboard.component.mjs +3 -3
  294. package/esm2022/lib/dashboard/dashboard.pane.component.mjs +3 -3
  295. package/esm2022/lib/dashboard/recents/recents.widget.mjs +3 -3
  296. package/esm2022/lib/dashboard/score/activity.widget.mjs +3 -3
  297. package/esm2022/lib/dashboard/score/compare-groups.widget.mjs +3 -3
  298. package/esm2022/lib/dashboard/score/peers-performance.widget.mjs +3 -3
  299. package/esm2022/lib/dashboard/score/pending-results.widget.mjs +3 -3
  300. package/esm2022/lib/dashboard/score/personal-score.widget.mjs +3 -3
  301. package/esm2022/lib/dashboard/widget-item.component.mjs +3 -3
  302. package/esm2022/lib/designer.module.mjs +4 -4
  303. package/esm2022/lib/desktop.module.mjs +4 -4
  304. package/esm2022/lib/home/about/about.dialog.mjs +3 -3
  305. package/esm2022/lib/home/home-base.component.mjs +3 -3
  306. package/esm2022/lib/home/home.desktop.component.mjs +3 -3
  307. package/esm2022/lib/home/home.mobile.component.mjs +6 -6
  308. package/esm2022/lib/home/notifications/notifications.component.mjs +3 -3
  309. package/esm2022/lib/home/options/options.component.mjs +3 -3
  310. package/esm2022/lib/home/outofoffice/outofoffice.component.mjs +3 -3
  311. package/esm2022/lib/home/sign/sign.component.mjs +3 -3
  312. package/esm2022/lib/home/tools.component.mjs +3 -3
  313. package/esm2022/lib/impersonate/impersonate.component.mjs +3 -3
  314. package/esm2022/lib/mobile.module.mjs +4 -4
  315. package/esm2022/lib/modules/chart.module.mjs +4 -4
  316. package/esm2022/lib/modules/circular-gauge.module.mjs +4 -4
  317. package/esm2022/lib/modules/datepicker.intl.mjs +3 -3
  318. package/esm2022/lib/modules/dayjs.module.mjs +4 -4
  319. package/esm2022/lib/modules/diagram.module.mjs +4 -4
  320. package/esm2022/lib/modules/gantt.module.mjs +4 -4
  321. package/esm2022/lib/modules/grid.module.mjs +4 -4
  322. package/esm2022/lib/modules/linear-gauge.module.mjs +4 -4
  323. package/esm2022/lib/modules/material.module.mjs +4 -4
  324. package/esm2022/lib/modules/paginator.intl.mjs +3 -3
  325. package/esm2022/lib/modules/pivot.module.mjs +4 -4
  326. package/esm2022/lib/modules/schedule.module.mjs +4 -4
  327. package/esm2022/lib/modules/spreadsheet.module.mjs +4 -4
  328. package/esm2022/lib/modules/stepper.intl.mjs +3 -3
  329. package/esm2022/lib/modules/texteditor.module.mjs +4 -4
  330. package/esm2022/lib/notifications/filter.component.mjs +3 -3
  331. package/esm2022/lib/notifications/notifications-table.component.mjs +3 -3
  332. package/esm2022/lib/notifications/notifications.mobile.component.mjs +3 -3
  333. package/esm2022/lib/notifications/notifications.pane.component.mjs +3 -3
  334. package/esm2022/lib/notifications/notifications.service.mjs +3 -3
  335. package/esm2022/lib/notifications/types/commented.notification.mjs +3 -3
  336. package/esm2022/lib/notifications/types/cube-anomaly.notification.mjs +3 -3
  337. package/esm2022/lib/notifications/types/escalated.notification.mjs +3 -3
  338. package/esm2022/lib/notifications/types/invite.notification.mjs +3 -3
  339. package/esm2022/lib/notifications/types/liked.notification.mjs +3 -3
  340. package/esm2022/lib/notifications/types/long-running-task.notification.mjs +3 -3
  341. package/esm2022/lib/notifications/types/notification-base.mjs +3 -3
  342. package/esm2022/lib/notifications/types/nudge.notification.mjs +3 -3
  343. package/esm2022/lib/notifications/types/state-changed.notification.mjs +3 -3
  344. package/esm2022/lib/notifications/types/tagged.notification.mjs +3 -3
  345. package/esm2022/lib/notifications/types/text.notification.mjs +3 -3
  346. package/esm2022/lib/notifications/types/upcoming-event.notification.mjs +3 -3
  347. package/esm2022/lib/options/options.component.mjs +3 -3
  348. package/esm2022/lib/options/options.service.mjs +3 -3
  349. package/esm2022/lib/reports/arguments-component.mjs +3 -3
  350. package/esm2022/lib/reports/cube/documents.component.mjs +3 -3
  351. package/esm2022/lib/reports/cube/grid-documents.component.mjs +3 -3
  352. package/esm2022/lib/reports/cube/role-performance.component.mjs +3 -3
  353. package/esm2022/lib/reports/cube/table-documents.component.mjs +3 -3
  354. package/esm2022/lib/reports/cube/usage-args.component.mjs +3 -3
  355. package/esm2022/lib/reports/cube/usage-base.mjs +3 -3
  356. package/esm2022/lib/reports/cube/usage-chart.component.mjs +3 -3
  357. package/esm2022/lib/reports/cube/usage-pivot.component.mjs +3 -3
  358. package/esm2022/lib/reports/cube/usage.component.mjs +3 -3
  359. package/esm2022/lib/reports/report-viewer.component.mjs +3 -3
  360. package/esm2022/lib/reports/report.mobile.component.mjs +3 -3
  361. package/esm2022/lib/reports/report.pane.component.mjs +3 -3
  362. package/esm2022/lib/reports/reports-menu.component.mjs +3 -3
  363. package/esm2022/lib/reports/substitution/substitution.component.mjs +3 -3
  364. package/esm2022/lib/reports/table/table-view.component.mjs +3 -3
  365. package/esm2022/lib/reports/tasks/tasks.component.mjs +3 -3
  366. package/esm2022/lib/routes.mobile.mjs +4 -7
  367. package/esm2022/lib/scheduler/schedule.component.mjs +3 -3
  368. package/esm2022/lib/scheduler/scheduler.mobile.component.mjs +3 -3
  369. package/esm2022/lib/scheduler/scheduler.pane.component.mjs +5 -5
  370. package/esm2022/lib/search/cube.component.mjs +3 -3
  371. package/esm2022/lib/search/document.component.mjs +3 -3
  372. package/esm2022/lib/search/guide.component.mjs +3 -3
  373. package/esm2022/lib/search/path.component.mjs +3 -3
  374. package/esm2022/lib/search/search.service.mjs +3 -3
  375. package/esm2022/lib/shared.module.mjs +24 -15
  376. package/esm2022/lib/system.module.mjs +16 -16
  377. package/esm2022/lib/views/cube/chart.component.mjs +3 -3
  378. package/esm2022/lib/views/cube/cube-base.mjs +3 -3
  379. package/esm2022/lib/views/cube/explore.component.mjs +3 -3
  380. package/esm2022/lib/views/cube/matrix.component.mjs +3 -3
  381. package/esm2022/lib/views/cube/parallel.component.mjs +3 -3
  382. package/esm2022/lib/views/cube/pivot.component.mjs +3 -3
  383. package/esm2022/lib/views/cube/sum.component.mjs +3 -3
  384. package/esm2022/lib/views/cube/view.component.mjs +3 -3
  385. package/esm2022/lib/views/timeline/timeline.component.exp.mjs +3 -3
  386. package/esm2022/lib/views/view-item.component.mjs +3 -3
  387. package/esm2022/lib/views/views.component.mjs +3 -3
  388. package/esm2022/lib/views/views.mobile.component.mjs +3 -3
  389. package/esm2022/lib/views/views.pane.component.mjs +3 -3
  390. package/esm2022/public-api.mjs +4 -2
  391. package/fesm2022/bizdoc-core.mjs +1437 -1376
  392. package/fesm2022/bizdoc-core.mjs.map +1 -1
  393. package/lib/admin/architecture/designer-element.component.d.ts +26 -22
  394. package/lib/admin/architecture/designer.base.d.ts +7 -12
  395. package/lib/admin/architecture/elements/control.component.d.ts +0 -1
  396. package/lib/admin/architecture/elements/matrix-view.component.d.ts +13 -3
  397. package/lib/compose/compose.mobile.component.d.ts +1 -2
  398. package/lib/compose/compose.pane.component.d.ts +0 -3
  399. package/lib/core/StickyToolbar.d.ts +13 -0
  400. package/lib/cube/{grid → spreadsheet}/spreadsheet.component.d.ts +9 -2
  401. package/lib/cube/spreadsheet/spreadsheet.container.d.ts +5 -0
  402. package/lib/shared.module.d.ts +140 -138
  403. package/lib/system.module.d.ts +1 -1
  404. package/package.json +17 -17
  405. package/public-api.d.ts +3 -1
  406. package/esm2022/lib/cube/grid/spreadsheet.component.mjs +0 -376
@@ -0,0 +1,391 @@
1
+ import { EventEmitter, Component, Output, HostBinding, Input, ViewChild } from "@angular/core";
2
+ import { firstValueFrom } from "rxjs";
3
+ import { Spreadsheet, isNumber } from "@syncfusion/ej2-spreadsheet";
4
+ import { Workbook } from '@syncfusion/ej2-excel-export';
5
+ import { errResource } from "../cube.service";
6
+ import { isArray, isString } from "../../core/functions";
7
+ import { SpreadsheetComponent } from "@syncfusion/ej2-angular-spreadsheet";
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "../../core/session.service";
10
+ import * as i2 from "../../core/prompt.service";
11
+ import * as i3 from "../cube.service";
12
+ import * as i4 from "../../core/translate.service";
13
+ import * as i5 from "../../core/datasource.service";
14
+ /** */
15
+ export class CubeSpreadsheetComponent {
16
+ static { this.nextId = 0; }
17
+ set xAxis(val) {
18
+ this._xAxis = isArray(val) ? val : [val];
19
+ }
20
+ get xAxis() { return this._xAxis; }
21
+ ;
22
+ set series(val) {
23
+ if (val)
24
+ this._series = isArray(val) ? val : [val];
25
+ }
26
+ get series() { return this._series; }
27
+ ;
28
+ set indices(val) {
29
+ if (val)
30
+ this._indices = isArray(val) ? val : [val];
31
+ }
32
+ constructor(_session, _sb, _service, _translate, _ds, _elementRef) {
33
+ this._session = _session;
34
+ this._sb = _sb;
35
+ this._service = _service;
36
+ this._translate = _translate;
37
+ this._ds = _ds;
38
+ this._elementRef = _elementRef;
39
+ this.ready = false;
40
+ this.explore = new EventEmitter();
41
+ this.loadingChange = new EventEmitter();
42
+ this.id = `cube-spreadsheet-${CubeSpreadsheetComponent.nextId++}`;
43
+ this.rows = [];
44
+ this.scrollSettings = { isFinite: true };
45
+ this.numberStyle = { textAlign: 'right' };
46
+ this.autoFillSettings = { showFillOptions: false };
47
+ this._yrows = [];
48
+ this._xcolumns = [];
49
+ }
50
+ ngOnInit() {
51
+ this._cube = this.cube ? this._session.profile.cubes.find(c => c.name === this.cube) : this._session.profile.cubes[0];
52
+ this._numberFormat = `${this._cube.currencyCode ? 'c' : 'n'}${this._service.fractionDigits}`;
53
+ if (this._series) {
54
+ const yName = this._series[0], xName = this._xAxis[0], xAxis = this._cube.axes.find(a => a.name === xName), yAxis = this._cube.axes.find(a => a.name === yName);
55
+ const promises = [];
56
+ this.columns = [{
57
+ width: 120
58
+ }];
59
+ // acquire columns source
60
+ let promise = firstValueFrom(this._ds.all(xAxis.dataType)).
61
+ then(c => {
62
+ this._xcolumns = c;
63
+ c.forEach(_ => this.columns.push({
64
+ width: 90
65
+ }));
66
+ });
67
+ promises.push(promise);
68
+ // acquire rows source
69
+ promise = firstValueFrom(this._ds.all(yAxis.dataType)).
70
+ then(r => this._yrows = r);
71
+ promises.push(promise);
72
+ this._prepare = Promise.all(promises);
73
+ }
74
+ else {
75
+ this._axes = this._xAxis.map(c => this._cube.axes.find(a => a.name == c));
76
+ this.columns = this._axes.map(_ => {
77
+ return {
78
+ width: 120
79
+ };
80
+ });
81
+ this.columns.push({
82
+ width: 90
83
+ } /* value */);
84
+ this._indices && this._indices.forEach(_ => this.columns.push({
85
+ width: 90
86
+ }));
87
+ }
88
+ if (this._indices)
89
+ this._cindices = this._cube.indices.filter(i => this._indices.indexOf(i.name) > -1);
90
+ this.execute();
91
+ }
92
+ ngOnChanges(changes) {
93
+ if (changes['filters'] && !changes['filters'].firstChange)
94
+ this.execute();
95
+ else if (changes['height'] || changes['width'])
96
+ this.resize();
97
+ }
98
+ resize() {
99
+ if (this.spreadsheet) {
100
+ this.spreadsheet.height = this.height;
101
+ this.spreadsheet.width = this.width;
102
+ this.spreadsheet.refresh();
103
+ }
104
+ }
105
+ execute() {
106
+ this.loadingChange.emit(true);
107
+ if (this._series)
108
+ this._service.series(this.cube, this._xAxis, { series: this._series, filters: this.filters, indices: this._indices }).
109
+ subscribe({
110
+ next: data => {
111
+ this._prepare.then(() => {
112
+ this._dataseries(data);
113
+ this.frozenColumns = 1;
114
+ this.ready = true;
115
+ this._draw();
116
+ this.loadingChange.emit(false);
117
+ });
118
+ }, error: e => {
119
+ this._sb.error(errResource(e));
120
+ this.loadingChange.emit(false);
121
+ }
122
+ });
123
+ else
124
+ this._service.table(this._cube.name, this._xAxis, { filters: this.filters, indices: this._indices }).
125
+ subscribe({
126
+ next: data => {
127
+ this._datatable(data);
128
+ this.frozenColumns = 0;
129
+ this.ready = true;
130
+ this._draw();
131
+ this.loadingChange.emit(false);
132
+ }, error: e => {
133
+ this._sb.error(errResource(e));
134
+ this.loadingChange.emit(false);
135
+ }
136
+ });
137
+ }
138
+ _datatable(data) {
139
+ const cells = [], style = { fontWeight: 'bold', textAlign: 'center' };
140
+ this._axes.forEach(c => cells.push({
141
+ value: c.title, style
142
+ }));
143
+ this._cindices?.forEach(i => cells.push({ value: i.title, style }));
144
+ cells.push({
145
+ value: this.yAxis ? this.yAxis.title : this._translate.get('Value'),
146
+ style
147
+ });
148
+ this.rows = [{
149
+ cells, height: 25
150
+ }];
151
+ data.forEach(d => {
152
+ const cells = [];
153
+ this._xAxis.forEach(c => cells.push({
154
+ value: d[c],
155
+ }));
156
+ this._indices?.forEach(i => cells.push({
157
+ style: this.numberStyle,
158
+ format: this._numberFormat,
159
+ value: (d[i] || 0),
160
+ }));
161
+ cells.push({
162
+ style: this.numberStyle,
163
+ format: this._numberFormat,
164
+ value: (d.value || 0),
165
+ });
166
+ this.rows.push({ cells, source: d, height: 25 });
167
+ });
168
+ }
169
+ _dataseries(d) {
170
+ const style = { fontWeight: 'bold', textAlign: 'center' };
171
+ const cells = [{ value: '' }];
172
+ this._xcolumns.forEach(c => cells.push({ value: c.value, style }));
173
+ this.rows = [{ cells, height: 25 }];
174
+ this._cindices?.forEach(i => {
175
+ const cells = [{ value: i.title, style }], series = d.find(s => s.index === i.name), map = {};
176
+ if (series) {
177
+ series.points.forEach(p => map[p.x] = p.y);
178
+ this._xcolumns.forEach(c => cells.push({
179
+ value: (map[c.key] || 0),
180
+ format: this._numberFormat,
181
+ style: this.numberStyle
182
+ }));
183
+ this.rows.push({ cells, height: 25 });
184
+ }
185
+ });
186
+ this._yrows.forEach(r => {
187
+ const cells = [{ value: r.value, style }], serie = d.find(s => s.name === r.key), map = {};
188
+ if (serie) {
189
+ serie.points.forEach(p => map[p.x] = p.y);
190
+ this._xcolumns.forEach(c => cells.push({
191
+ value: (map[c.key] || 0),
192
+ format: this._numberFormat,
193
+ style: this.numberStyle
194
+ }));
195
+ }
196
+ else
197
+ this._xcolumns.forEach(_ => cells.push({ value: 0 }));
198
+ this.rows.push({ cells, height: 25 });
199
+ });
200
+ }
201
+ _draw() {
202
+ this.spreadsheet && this.spreadsheet.destroy();
203
+ this.spreadsheet = new Spreadsheet({
204
+ scrollSettings: this.scrollSettings,
205
+ isProtected: true,
206
+ allowEditing: false,
207
+ allowDelete: false,
208
+ allowInsert: false,
209
+ showRibbon: false,
210
+ allowAutoFill: false,
211
+ autoFillSettings: this.autoFillSettings,
212
+ enableClipboard: true,
213
+ enableContextMenu: false,
214
+ showFormulaBar: false,
215
+ showSheetTabs: false,
216
+ enableKeyboardNavigation: true,
217
+ select: this.select.bind(this),
218
+ sheets: [{
219
+ columns: this.columns,
220
+ frozenColumns: this.frozenColumns,
221
+ frozenRows: 1,
222
+ rows: this.rows,
223
+ }],
224
+ width: this.width,
225
+ height: this.height,
226
+ }, this._elementRef.nativeElement);
227
+ }
228
+ /**
229
+ *
230
+ * @param evt
231
+ * @returns
232
+ */
233
+ select(evt) {
234
+ const address = this.spreadsheet.getAddressInfo(evt.range);
235
+ let [y, x, y1, x1] = address.indices;
236
+ if (y1 < y) {
237
+ const range = y;
238
+ y = y1, y1 = range;
239
+ }
240
+ if (x1 < x) {
241
+ const range = x;
242
+ x = x1, x1 = range;
243
+ }
244
+ const axes = {};
245
+ let index;
246
+ if (y > this.rows.length - 1 || x > this.rows[y].cells.length - 1)
247
+ return;
248
+ if (y === y1 && x === x1 && this.rows[y].cells[x].value === 0)
249
+ return;
250
+ if (this._series) {
251
+ if (y < 1) {
252
+ if (this._indices)
253
+ return;
254
+ this._fillx(x, x1, axes);
255
+ }
256
+ else if (this._indices && y <= this._indices.length) {
257
+ index = this._indices[y - 1];
258
+ this._fillx(x, x1, axes);
259
+ }
260
+ else {
261
+ if (this._indices)
262
+ this._filly(y - this._indices.length, y1 - this._indices.length, axes);
263
+ else
264
+ this._filly(y, y1, axes);
265
+ if (x > 0)
266
+ this._fillx(x, x1, axes);
267
+ }
268
+ }
269
+ else {
270
+ if (y === 0)
271
+ return;
272
+ index = this._indices && x >= this._axes.length && x < this._axes.length + this._cindices.length ? this._cindices[x - this._axes.length].name : null;
273
+ let i = y;
274
+ do {
275
+ this._axes.forEach(a => {
276
+ const key = this.rows[i].source['_' + a.name];
277
+ if (!axes[a.name])
278
+ axes[a.name] = key;
279
+ else if (isString(axes[a.name])) {
280
+ if (axes[a.name] !== key)
281
+ axes[a.name] = [axes[a.name], key];
282
+ }
283
+ else if (axes[a.name].indexOf(key) < 0)
284
+ axes[a.name].push(key);
285
+ });
286
+ i++;
287
+ } while (i <= y1);
288
+ }
289
+ this.explore.emit({ axes, index });
290
+ }
291
+ _filly(y, y1, axes) {
292
+ const yName = this._series[0];
293
+ let i = y - 1;
294
+ while (i < y1) {
295
+ let { key } = this._yrows[i];
296
+ if (!axes[yName])
297
+ axes[yName] = key;
298
+ else if (isString(axes[yName]))
299
+ axes[yName] = [axes[yName], key];
300
+ else if (axes[yName].indexOf(key) < 0)
301
+ axes[yName].push(key);
302
+ i++;
303
+ }
304
+ }
305
+ _fillx(x, x1, axes) {
306
+ const xName = this._xAxis[0];
307
+ let i = x - 1;
308
+ while (i < x1) {
309
+ let { key } = this._xcolumns[i];
310
+ if (!axes[xName])
311
+ axes[xName] = key;
312
+ else if (isString(axes[xName]))
313
+ axes[xName] = [axes[xName], key];
314
+ else if (axes[xName].indexOf(key) < 0)
315
+ axes[xName].push(key);
316
+ i++;
317
+ }
318
+ }
319
+ exportToExcel(title) {
320
+ const { rows } = this.spreadsheet.sheets[0], numberFormat = this._service.numberFormat, book = new Workbook({
321
+ worksheets: [
322
+ {
323
+ enableRtl: this._session.inverse,
324
+ name: this._translate.get('SheetN', 1),
325
+ columns: rows[0].cells.map((_, i) => ({ index: i + 1, width: 150 })),
326
+ rows: rows.map((r, i) => ({
327
+ index: i + 1,
328
+ cells: r.cells.map((c, j) => {
329
+ const header = i === 0 || (this._series !== undefined && j === 0), isnumber = !header && isNumber(c.value);
330
+ return {
331
+ type: isnumber ? 'number' : 'text',
332
+ index: j + 1,
333
+ value: c.value,
334
+ style: {
335
+ numberFormat,
336
+ hAlign: isnumber ? 'right' : 'center',
337
+ bold: header
338
+ }
339
+ };
340
+ })
341
+ })),
342
+ },
343
+ ],
344
+ }, 'xlsx');
345
+ book.save(`${title}.xlsx`);
346
+ }
347
+ ngOnDestroy() {
348
+ this.spreadsheet && this.spreadsheet.destroy();
349
+ }
350
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CubeSpreadsheetComponent, deps: [{ token: i1.SessionService }, { token: i2.PromptService }, { token: i3.CubeService }, { token: i4.TranslateService }, { token: i5.DatasourceService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
351
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: CubeSpreadsheetComponent, selector: "bizdoc-cube-spreadsheet", inputs: { width: "width", height: "height", cube: "cube", xAxis: "xAxis", yAxis: "yAxis", series: "series", indices: "indices", filters: "filters", loading: "loading" }, outputs: { explore: "explore", loadingChange: "loadingChange" }, host: { properties: { "id": "this.id" }, classAttribute: "cube-view" }, viewQueries: [{ propertyName: "spreadsheet", first: true, predicate: SpreadsheetComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: '', isInline: true }); }
352
+ }
353
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CubeSpreadsheetComponent, decorators: [{
354
+ type: Component,
355
+ args: [{
356
+ selector: 'bizdoc-cube-spreadsheet',
357
+ template: '',
358
+ // templateUrl: 'spreadsheet.component.html',
359
+ host: {
360
+ class: 'cube-view'
361
+ },
362
+ }]
363
+ }], ctorParameters: () => [{ type: i1.SessionService }, { type: i2.PromptService }, { type: i3.CubeService }, { type: i4.TranslateService }, { type: i5.DatasourceService }, { type: i0.ElementRef }], propDecorators: { width: [{
364
+ type: Input
365
+ }], height: [{
366
+ type: Input
367
+ }], cube: [{
368
+ type: Input
369
+ }], xAxis: [{
370
+ type: Input
371
+ }], yAxis: [{
372
+ type: Input
373
+ }], series: [{
374
+ type: Input
375
+ }], indices: [{
376
+ type: Input
377
+ }], filters: [{
378
+ type: Input
379
+ }], explore: [{
380
+ type: Output
381
+ }], loading: [{
382
+ type: Input
383
+ }], loadingChange: [{
384
+ type: Output
385
+ }], id: [{
386
+ type: HostBinding
387
+ }], spreadsheet: [{
388
+ type: ViewChild,
389
+ args: [SpreadsheetComponent]
390
+ }] } });
391
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ByZWFkc2hlZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jdWJlL3NwcmVhZHNoZWV0L3NwcmVhZHNoZWV0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsV0FBVyxFQUF5QixLQUFLLEVBQTRCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4SixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBb0MsV0FBVyxFQUFzRSxRQUFRLEVBQW1DLE1BQU0sNkJBQTZCLENBQUM7QUFDM00sT0FBTyxFQUFFLFFBQVEsRUFBMEIsTUFBTSw4QkFBOEIsQ0FBQztBQUdoRixPQUFPLEVBQWUsV0FBVyxFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFLbkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7OztBQUUzRSxNQUFNO0FBU04sTUFBTSxPQUFPLHdCQUF3QjthQUNwQixXQUFNLEdBQUcsQ0FBQyxBQUFKLENBQUs7SUFTMUIsSUFDSSxLQUFLLENBQUMsR0FBc0I7UUFDOUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBQ0QsSUFBSSxLQUFLLEtBQUssT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFBLENBQUMsQ0FBQztJQUFBLENBQUM7SUFHbkMsSUFDSSxNQUFNLENBQUMsR0FBc0I7UUFDL0IsSUFBSSxHQUFHO1lBQUUsSUFBSSxDQUFDLE9BQU8sR0FBRyxP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Q0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sV0FBVyxDQUFDLENBQVc7UUFDN0IsTUFBTSxLQUFLLEdBQUcsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQW9CLENBQUM7UUFDNUUsTUFBTSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQWUsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDMUIsTUFBTSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBZSxDQUFDLEVBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQzNHLElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQ1gsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDM0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO29CQUNyQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBUTtvQkFDL0IsTUFBTSxFQUFFLElBQUksQ0FBQyxhQUFhO29CQUMxQixLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVc7aUJBQ3hCLENBQUMsQ0FDRCxDQUFDO2dCQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQWMsQ0FBQyxDQUFDO1lBQ3BELENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3RCLE1BQU0sS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQWUsQ0FBQyxFQUNwRCxLQUFLLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDbEQsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDVixLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMxQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7b0JBQ3JDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFRO29CQUMvQixNQUFNLEVBQUUsSUFBSSxDQUFDLGFBQWE7b0JBQzFCLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVztpQkFDeEIsQ0FBQyxDQUNELENBQUM7WUFDSixDQUFDOztnQkFFQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBUSxFQUFFLENBQUMsQ0FDMUQsQ0FBQztZQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQWMsQ0FBQyxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLEtBQUs7UUFDWCxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDL0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLFdBQVcsQ0FBQztZQUNqQyxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDbkMsV0FBVyxFQUFFLElBQUk7WUFDakIsWUFBWSxFQUFFLEtBQUs7WUFDbkIsV0FBVyxFQUFFLEtBQUs7WUFDbEIsV0FBVyxFQUFFLEtBQUs7WUFDbEIsVUFBVSxFQUFFLEtBQUs7WUFDakIsYUFBYSxFQUFFLEtBQUs7WUFDcEIsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtZQUN2QyxlQUFlLEVBQUUsSUFBSTtZQUNyQixpQkFBaUIsRUFBRSxLQUFLO1lBQ3hCLGNBQWMsRUFBRSxLQUFLO1lBQ3JCLGFBQWEsRUFBRSxLQUFLO1lBQ3BCLHdCQUF3QixFQUFFLElBQUk7WUFDOUIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUM5QixNQUFNLEVBQUUsQ0FBQztvQkFDUCxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87b0JBQ3JCLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtvQkFDakMsVUFBVSxFQUFFLENBQUM7b0JBQ2IsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2lCQUNoQixDQUFDO1lBQ0YsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtTQUNwQixFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUNEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsR0FBb0I7UUFDekIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO1FBQ3JDLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ1gsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ2hCLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEtBQUssQ0FBQztRQUNyQixDQUFDO1FBQ0QsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDWCxNQUFNLEtBQUssR0FBRyxDQUFDLENBQUM7WUFDaEIsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLENBQUM7UUFDRCxNQUFNLElBQUksR0FBTyxFQUFFLENBQUM7UUFDcEIsSUFBSSxLQUFhLENBQUM7UUFDbEIsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUFFLE9BQU87UUFDMUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBWSxLQUFLLENBQUM7WUFBRSxPQUFPO1FBQzdFLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNWLElBQUksSUFBSSxDQUFDLFFBQVE7b0JBQUUsT0FBTztnQkFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzNCLENBQUM7aUJBQ0ksSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNwRCxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUMzQixDQUFDO2lCQUNJLENBQUM7Z0JBQ0osSUFBSSxJQUFJLENBQUMsUUFBUTtvQkFDZixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7O29CQUV2RSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxHQUFHLENBQUM7b0JBQ1AsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzdCLENBQUM7UUFDSCxDQUFDO2FBQ0ksQ0FBQztZQUNKLElBQUksQ0FBQyxLQUFLLENBQUM7Z0JBQUUsT0FBTztZQUNwQixLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ3JKLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNWLEdBQUcsQ0FBQztnQkFDRixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDckIsTUFBTSxHQUFHLEdBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDdkQsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO3dCQUNmLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDO3lCQUNoQixJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQzt3QkFDaEMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUc7NEJBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBQy9ELENBQUM7eUJBQ0ksSUFBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBYyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO3dCQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUM3RixDQUFDLENBQUMsQ0FBQztnQkFDSCxDQUFDLEVBQUUsQ0FBQztZQUNOLENBQUMsUUFDTSxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ2xCLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFDTyxNQUFNLENBQUMsQ0FBUyxFQUFFLEVBQVUsRUFBRSxJQUFRO1FBQzVDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNkLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDO1lBQ2QsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7Z0JBQ2QsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQztpQkFDZixJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztpQkFDOUIsSUFBSyxJQUFJLENBQUMsS0FBSyxDQUFjLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxLQUFLLENBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEMsQ0FBQyxFQUFFLENBQUM7UUFDTixDQUFDO0lBQ0gsQ0FBQztJQUVPLE1BQU0sQ0FBQyxDQUFTLEVBQUUsRUFBVSxFQUFFLElBQVE7UUFDNUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUM7WUFDZCxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFDZCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxDQUFDO2lCQUNmLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2lCQUM5QixJQUFLLElBQUksQ0FBQyxLQUFLLENBQWMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQztnQkFDaEQsSUFBSSxDQUFDLEtBQUssQ0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0QyxDQUFDLEVBQUUsQ0FBQztRQUNOLENBQUM7SUFDSCxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQWE7UUFDekIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUN6QyxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQ3pDLElBQUksR0FBRyxJQUFJLFFBQVEsQ0FDakI7WUFDRSxVQUFVLEVBQUU7Z0JBQ1Y7b0JBQ0UsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTztvQkFDaEMsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7b0JBQ3RDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFhLENBQUEsQ0FBQztvQkFDOUUsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUN2Qjt3QkFDRSxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUM7d0JBQ1osS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFOzRCQUMxQixNQUFNLE1BQU0sR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxTQUFTLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUMvRCxRQUFRLEdBQUcsQ0FBQyxNQUFNLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQzs0QkFDMUMsT0FBTztnQ0FDTCxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU07Z0NBQ2xDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQztnQ0FDWixLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUs7Z0NBQ2QsS0FBSyxFQUFFO29DQUNMLFlBQVk7b0NBQ1osTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRO29DQUNyQyxJQUFJLEVBQUUsTUFBTTtpQ0FDYjs2QkFDRixDQUFDO3dCQUNKLENBQUMsQ0FDQTtxQkFDTSxDQUFBLENBQUM7aUJBQ0E7YUFDZjtTQUNGLEVBQ0QsTUFBTSxDQUNQLENBQUM7UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxPQUFPLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBQ0QsV0FBVztRQUNULElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqRCxDQUFDOzhHQXRYVSx3QkFBd0I7a0dBQXhCLHdCQUF3QiwrWkFnQ3hCLG9CQUFvQixxRUF0Q3JCLEVBQUU7OzJGQU1ELHdCQUF3QjtrQkFScEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxRQUFRLEVBQUUsRUFBRTtvQkFDWiw4Q0FBOEM7b0JBQzlDLElBQUksRUFBRTt3QkFDSixLQUFLLEVBQUUsV0FBVztxQkFDbkI7aUJBQ0Y7aU9BSUMsS0FBSztzQkFESixLQUFLO2dCQUdOLE1BQU07c0JBREwsS0FBSztnQkFHTixJQUFJO3NCQURILEtBQUs7Z0JBS0YsS0FBSztzQkFEUixLQUFLO2dCQU1OLEtBQUs7c0JBREosS0FBSztnQkFHRixNQUFNO3NCQURULEtBQUs7Z0JBTUYsT0FBTztzQkFEVixLQUFLO2dCQUtOLE9BQU87c0JBRE4sS0FBSztnQkFFYSxPQUFPO3NCQUF6QixNQUFNO2dCQUNFLE9BQU87c0JBQWYsS0FBSztnQkFDYSxhQUFhO3NCQUEvQixNQUFNO2dCQUNRLEVBQUU7c0JBQWhCLFdBQVc7Z0JBQ3FCLFdBQVc7c0JBQTNDLFNBQVM7dUJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBDb21wb25lbnQsIE91dHB1dCwgT25Jbml0LCBIb3N0QmluZGluZywgRWxlbWVudFJlZiwgT25EZXN0cm95LCBJbnB1dCwgU2ltcGxlQ2hhbmdlcywgT25DaGFuZ2VzLCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IENlbGxNb2RlbCwgQ29sdW1uTW9kZWwsIFJvd01vZGVsLCBTcHJlYWRzaGVldCwgUmFuZ2VNb2RlbCwgQ2VsbFN0eWxlTW9kZWwsIFNlbGVjdEV2ZW50QXJncywgQXV0b0ZpbGxTZXR0aW5nc01vZGVsLCBpc051bWJlciwgU2Nyb2xsU2V0dGluZ3NNb2RlbCwgU2hlZXRNb2RlbCB9IGZyb20gXCJAc3luY2Z1c2lvbi9lajItc3ByZWFkc2hlZXRcIjtcclxuaW1wb3J0IHsgV29ya2Jvb2ssIFdvcmtzaGVldCwgUm93LCBDb2x1bW4gfSBmcm9tICdAc3luY2Z1c2lvbi9lajItZXhjZWwtZXhwb3J0JztcclxuaW1wb3J0IHsgQXhpc0NsaWNrRXZlbnQsIEN1YmVWaWV3ZXJDb21wb25lbnQgfSBmcm9tIFwiLi4vZGVjbGFyYXRpb25zXCI7XHJcbmltcG9ydCB7IEF4ZXNNYXAsIEN1YmUsIEN1YmVBeGlzLCBDdWJlSW5kZXgsIFlBeGlzIH0gZnJvbSBcIi4uLy4uL2NvcmUvbW9kZWxzXCI7XHJcbmltcG9ydCB7IEN1YmVTZXJ2aWNlLCBlcnJSZXNvdXJjZSwgU2VyaWVzIH0gZnJvbSBcIi4uL2N1YmUuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBQcm9tcHRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvcHJvbXB0LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERhdGFzb3VyY2VTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvZGF0YXNvdXJjZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IGlzQXJyYXksIGlzU3RyaW5nIH0gZnJvbSBcIi4uLy4uL2NvcmUvZnVuY3Rpb25zXCI7XHJcbmltcG9ydCB7IFNwcmVhZHNoZWV0Q29tcG9uZW50IH0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLXNwcmVhZHNoZWV0XCI7XHJcblxyXG4vKiogKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtY3ViZS1zcHJlYWRzaGVldCcsXHJcbiAgdGVtcGxhdGU6ICcnLFxyXG4gIC8vICB0ZW1wbGF0ZVVybDogJ3NwcmVhZHNoZWV0LmNvbXBvbmVudC5odG1sJyxcclxuICBob3N0OiB7XHJcbiAgICBjbGFzczogJ2N1YmUtdmlldydcclxuICB9LFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3ViZVNwcmVhZHNoZWV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDdWJlVmlld2VyQ29tcG9uZW50LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgbmV4dElkID0gMDtcclxuICBASW5wdXQoKVxyXG4gIHdpZHRoOiBzdHJpbmc7XHJcbiAgQElucHV0KClcclxuICBoZWlnaHQ6IHN0cmluZztcclxuICBASW5wdXQoKVxyXG4gIGN1YmU6IHN0cmluZztcclxuICByZWFkeSA9IGZhbHNlO1xyXG4gIHNoZWV0czogU2hlZXRNb2RlbFtdO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHhBeGlzKHZhbDogc3RyaW5nW10gfCBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3hBeGlzID0gaXNBcnJheSh2YWwpID8gdmFsIDogW3ZhbF07XHJcbiAgfVxyXG4gIGdldCB4QXhpcygpIHsgcmV0dXJuIHRoaXMuX3hBeGlzIH07XHJcbiAgQElucHV0KClcclxuICB5QXhpcz86IFlBeGlzO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHNlcmllcyh2YWw6IHN0cmluZ1tdIHwgc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsKSB0aGlzLl9zZXJpZXMgPSBpc0FycmF5KHZhbCkgPyB2YWwgOiBbdmFsXTtcclxuICB9XHJcbiAgZ2V0IHNlcmllcygpIHsgcmV0dXJuIHRoaXMuX3NlcmllcyB9O1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGluZGljZXModmFsOiBzdHJpbmdbXSB8IHN0cmluZykge1xyXG4gICAgaWYgKHZhbCkgdGhpcy5faW5kaWNlcyA9IGlzQXJyYXkodmFsKSA/IHZhbCA6IFt2YWxdO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIGZpbHRlcnM/OiBBeGVzTWFwO1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSBleHBsb3JlID0gbmV3IEV2ZW50RW1pdHRlcjxBeGlzQ2xpY2tFdmVudD4oKTtcclxuICBASW5wdXQoKSBsb2FkaW5nOiBib29sZWFuO1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSBsb2FkaW5nQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIEBIb3N0QmluZGluZygpIGlkID0gYGN1YmUtc3ByZWFkc2hlZXQtJHtDdWJlU3ByZWFkc2hlZXRDb21wb25lbnQubmV4dElkKyt9YDtcclxuICBAVmlld0NoaWxkKFNwcmVhZHNoZWV0Q29tcG9uZW50KSBzcHJlYWRzaGVldDogU3ByZWFkc2hlZXQ7XHJcbiAgcm93czogUm93TW9kZWxbXSA9IFtdO1xyXG4gIGNvbHVtbnM6IENvbHVtbk1vZGVsW107XHJcbiAgcmFuZ2U6IFJhbmdlTW9kZWw7XHJcbiAgZnJvemVuQ29sdW1uczogbnVtYmVyO1xyXG4gIHJlYWRvbmx5IHNjcm9sbFNldHRpbmdzID0geyBpc0Zpbml0ZTogdHJ1ZSB9IGFzIFNjcm9sbFNldHRpbmdzTW9kZWw7XHJcbiAgcmVhZG9ubHkgbnVtYmVyU3R5bGUgPSB7IHRleHRBbGlnbjogJ3JpZ2h0JyB9IGFzIENlbGxTdHlsZU1vZGVsO1xyXG4gIHJlYWRvbmx5IGF1dG9GaWxsU2V0dGluZ3MgPSB7IHNob3dGaWxsT3B0aW9uczogZmFsc2UgfSBhcyBBdXRvRmlsbFNldHRpbmdzTW9kZWw7XHJcbiAgcHJpdmF0ZSBfY3ViZTogQ3ViZTtcclxuICBwcml2YXRlIF94QXhpczogc3RyaW5nW107XHJcbiAgcHJpdmF0ZSBfc2VyaWVzPzogc3RyaW5nW107XHJcbiAgcHJpdmF0ZSBfaW5kaWNlcz86IHN0cmluZ1tdO1xyXG4gIHByaXZhdGUgX2F4ZXM6IEN1YmVBeGlzW107XHJcbiAgcHJpdmF0ZSBfY2luZGljZXM6IEN1YmVJbmRleFtdO1xyXG4gIHByaXZhdGUgX3lyb3dzOiB7IGtleTogYW55OyB2YWx1ZTogYW55IH1bXSA9IFtdO1xyXG4gIHByaXZhdGUgX3hjb2x1bW5zOiB7IGtleTogYW55OyB2YWx1ZTogYW55IH1bXSA9IFtdO1xyXG4gIHByaXZhdGUgX3ByZXBhcmU6IFByb21pc2U8YW55W10+O1xyXG4gIHByaXZhdGUgX251bWJlckZvcm1hdDogc3RyaW5nO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zYjogUHJvbXB0U2VydmljZSxcclxuICAgIHByaXZhdGUgX3NlcnZpY2U6IEN1YmVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZHM6IERhdGFzb3VyY2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZikgeyB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jdWJlID0gdGhpcy5jdWJlID8gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzLmZpbmQoYyA9PiBjLm5hbWUgPT09IHRoaXMuY3ViZSkgOiB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuY3ViZXNbMF07XHJcbiAgICB0aGlzLl9udW1iZXJGb3JtYXQgPSBgJHt0aGlzLl9jdWJlLmN1cnJlbmN5Q29kZSA/ICdjJyA6ICduJ30ke3RoaXMuX3NlcnZpY2UuZnJhY3Rpb25EaWdpdHN9YFxyXG4gICAgaWYgKHRoaXMuX3Nlcmllcykge1xyXG4gICAgICBjb25zdCB5TmFtZSA9IHRoaXMuX3Nlcmllc1swXSwgeE5hbWUgPSB0aGlzLl94QXhpc1swXSxcclxuICAgICAgICB4QXhpcyA9IHRoaXMuX2N1YmUuYXhlcy5maW5kKGEgPT4gYS5uYW1lID09PSB4TmFtZSksXHJcbiAgICAgICAgeUF4aXMgPSB0aGlzLl9jdWJlLmF4ZXMuZmluZChhID0+IGEubmFtZSA9PT0geU5hbWUpO1xyXG4gICAgICBjb25zdCBwcm9taXNlczogUHJvbWlzZTxhbnk+W10gPSBbXTtcclxuICAgICAgdGhpcy5jb2x1bW5zID0gW3tcclxuICAgICAgICB3aWR0aDogMTIwXHJcbiAgICAgIH1dO1xyXG4gICAgICAvLyBhY3F1aXJlIGNvbHVtbnMgc291cmNlXHJcbiAgICAgIGxldCBwcm9taXNlID0gZmlyc3RWYWx1ZUZyb20odGhpcy5fZHMuYWxsKHhBeGlzLmRhdGFUeXBlKSkuXHJcbiAgICAgICAgdGhlbihjID0+IHtcclxuICAgICAgICAgIHRoaXMuX3hjb2x1bW5zID0gYztcclxuICAgICAgICAgIGMuZm9yRWFjaChfID0+IHRoaXMuY29sdW1ucy5wdXNoKHtcclxuICAgICAgICAgICAgd2lkdGg6IDkwXHJcbiAgICAgICAgICB9IGFzIENvbHVtbk1vZGVsXHJcbiAgICAgICAgICApKTtcclxuICAgICAgICB9KSBhcyBQcm9taXNlPGFueT47XHJcbiAgICAgIHByb21pc2VzLnB1c2gocHJvbWlzZSk7XHJcbiAgICAgIC8vIGFjcXVpcmUgcm93cyBzb3VyY2VcclxuICAgICAgcHJvbWlzZSA9IGZpcnN0VmFsdWVGcm9tKHRoaXMuX2RzLmFsbCh5QXhpcy5kYXRhVHlwZSkpLlxyXG4gICAgICAgIHRoZW4ociA9PiB0aGlzLl95cm93cyA9IHIpO1xyXG4gICAgICBwcm9taXNlcy5wdXNoKHByb21pc2UpO1xyXG5cclxuICAgICAgdGhpcy5fcHJlcGFyZSA9IFByb21pc2UuYWxsKHByb21pc2VzKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLl9heGVzID0gdGhpcy5feEF4aXMubWFwKGMgPT4gdGhpcy5fY3ViZS5heGVzLmZpbmQoYSA9PiBhLm5hbWUgPT0gYykpO1xyXG4gICAgICB0aGlzLmNvbHVtbnMgPSB0aGlzLl9heGVzLm1hcChfID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgd2lkdGg6IDEyMFxyXG4gICAgICAgIH0gYXMgQ29sdW1uTW9kZWw7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLmNvbHVtbnMucHVzaCh7XHJcbiAgICAgICAgd2lkdGg6IDkwXHJcbiAgICAgIH0gLyogdmFsdWUgKi8pO1xyXG4gICAgICB0aGlzLl9pbmRpY2VzICYmIHRoaXMuX2luZGljZXMuZm9yRWFjaChfID0+IHRoaXMuY29sdW1ucy5wdXNoKHtcclxuICAgICAgICB3aWR0aDogOTBcclxuICAgICAgfSBhcyBDb2x1bW5Nb2RlbFxyXG4gICAgICApKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLl9pbmRpY2VzKSB0aGlzLl9jaW5kaWNlcyA9IHRoaXMuX2N1YmUuaW5kaWNlcy5maWx0ZXIoaSA9PiB0aGlzLl9pbmRpY2VzLmluZGV4T2YoaS5uYW1lKSA+IC0xKTtcclxuICAgIHRoaXMuZXhlY3V0ZSgpO1xyXG4gIH1cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1snZmlsdGVycyddICYmICFjaGFuZ2VzWydmaWx0ZXJzJ10uZmlyc3RDaGFuZ2UpXHJcbiAgICAgIHRoaXMuZXhlY3V0ZSgpO1xyXG4gICAgZWxzZVxyXG4gICAgICBpZiAoY2hhbmdlc1snaGVpZ2h0J10gfHwgY2hhbmdlc1snd2lkdGgnXSlcclxuICAgICAgICB0aGlzLnJlc2l6ZSgpO1xyXG4gIH1cclxuICByZXNpemUoKSB7XHJcbiAgICBpZiAodGhpcy5zcHJlYWRzaGVldCkge1xyXG4gICAgICB0aGlzLnNwcmVhZHNoZWV0LmhlaWdodCA9IHRoaXMuaGVpZ2h0O1xyXG4gICAgICB0aGlzLnNwcmVhZHNoZWV0LndpZHRoID0gdGhpcy53aWR0aDtcclxuICAgICAgdGhpcy5zcHJlYWRzaGVldC5yZWZyZXNoKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBleGVjdXRlKCkge1xyXG4gICAgdGhpcy5sb2FkaW5nQ2hhbmdlLmVtaXQodHJ1ZSk7XHJcbiAgICBpZiAodGhpcy5fc2VyaWVzKVxyXG4gICAgICB0aGlzLl9zZXJ2aWNlLnNlcmllcyh0aGlzLmN1YmUsIHRoaXMuX3hBeGlzLCB7IHNlcmllczogdGhpcy5fc2VyaWVzLCBmaWx0ZXJzOiB0aGlzLmZpbHRlcnMsIGluZGljZXM6IHRoaXMuX2luZGljZXMgfSkuXHJcbiAgICAgICAgc3Vic2NyaWJlKHtcclxuICAgICAgICAgIG5leHQ6IGRhdGEgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9wcmVwYXJlLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuX2RhdGFzZXJpZXMoZGF0YSk7XHJcbiAgICAgICAgICAgICAgdGhpcy5mcm96ZW5Db2x1bW5zID0gMTtcclxuICAgICAgICAgICAgICB0aGlzLnJlYWR5ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB0aGlzLl9kcmF3KCk7XHJcbiAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nQ2hhbmdlLmVtaXQoZmFsc2UpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0sIGVycm9yOiBlID0+IHtcclxuICAgICAgICAgICAgdGhpcy5fc2IuZXJyb3IoZXJyUmVzb3VyY2UoZSkpO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmdDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMuX3NlcnZpY2UudGFibGUodGhpcy5fY3ViZS5uYW1lLCB0aGlzLl94QXhpcywgeyBmaWx0ZXJzOiB0aGlzLmZpbHRlcnMsIGluZGljZXM6IHRoaXMuX2luZGljZXMgfSkuXHJcbiAgICAgICAgc3Vic2NyaWJlKHtcclxuICAgICAgICAgIG5leHQ6IGRhdGEgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9kYXRhdGFibGUoZGF0YSk7XHJcbiAgICAgICAgICAgIHRoaXMuZnJvemVuQ29sdW1ucyA9IDA7XHJcbiAgICAgICAgICAgIHRoaXMucmVhZHkgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLl9kcmF3KCk7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZ0NoYW5nZS5lbWl0KGZhbHNlKTtcclxuICAgICAgICAgIH0sIGVycm9yOiBlID0+IHtcclxuICAgICAgICAgICAgdGhpcy5fc2IuZXJyb3IoZXJyUmVzb3VyY2UoZSkpO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmdDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9kYXRhdGFibGUoZGF0YTogeyB2YWx1ZTogbnVtYmVyOyB9W10pIHtcclxuICAgIGNvbnN0IGNlbGxzID0gW10sIHN0eWxlID0geyBmb250V2VpZ2h0OiAnYm9sZCcsIHRleHRBbGlnbjogJ2NlbnRlcicgfSBhcyBDZWxsU3R5bGVNb2RlbDtcclxuICAgIHRoaXMuX2F4ZXMuZm9yRWFjaChjID0+IGNlbGxzLnB1c2goe1xyXG4gICAgICB2YWx1ZTogYy50aXRsZSwgc3R5bGVcclxuICAgIH0gYXMgQ2VsbE1vZGVsKSk7XHJcbiAgICB0aGlzLl9jaW5kaWNlcz8uZm9yRWFjaChpID0+IGNlbGxzLnB1c2goeyB2YWx1ZTogaS50aXRsZSwgc3R5bGUgfSBhcyBDZWxsTW9kZWwpKTtcclxuICAgIGNlbGxzLnB1c2goe1xyXG4gICAgICB2YWx1ZTogdGhpcy55QXhpcyA/IHRoaXMueUF4aXMudGl0bGUgOiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdWYWx1ZScpLFxyXG4gICAgICBzdHlsZVxyXG4gICAgfSBhcyBDZWxsTW9kZWwpO1xyXG4gICAgdGhpcy5yb3dzID0gW3tcclxuICAgICAgY2VsbHMsIGhlaWdodDogMjVcclxuICAgIH0gYXMgUm93TW9kZWxdO1xyXG4gICAgZGF0YS5mb3JFYWNoKGQgPT4ge1xyXG4gICAgICBjb25zdCBjZWxscyA9IFtdO1xyXG4gICAgICB0aGlzLl94QXhpcy5mb3JFYWNoKGMgPT4gY2VsbHMucHVzaCh7XHJcbiAgICAgICAgdmFsdWU6IGRbY10sXHJcbiAgICAgIH0gYXMgQ2VsbE1vZGVsKSk7XHJcbiAgICAgIHRoaXMuX2luZGljZXM/LmZvckVhY2goaSA9PiBjZWxscy5wdXNoKHtcclxuICAgICAgICBzdHlsZTogdGhpcy5udW1iZXJTdHlsZSxcclxuICAgICAgICBmb3JtYXQ6IHRoaXMuX251bWJlckZvcm1hdCxcclxuICAgICAgICB2YWx1ZTogKGRbaV0gfHwgMCkgYXMgYW55LFxyXG4gICAgICB9IGFzIENlbGxNb2RlbCkpO1xyXG4gICAgICBjZWxscy5wdXNoKHtcclxuICAgICAgICBzdHlsZTogdGhpcy5udW1iZXJTdHlsZSxcclxuICAgICAgICBmb3JtYXQ6IHRoaXMuX251bWJlckZvcm1hdCxcclxuICAgICAgICB2YWx1ZTogKGQudmFsdWUgfHwgMCkgYXMgYW55LFxyXG4gICAgICB9IGFzIENlbGxNb2RlbCk7XHJcbiAgICAgIHRoaXMucm93cy5wdXNoKHsgY2VsbHMsIHNvdXJjZTogZCwgaGVpZ2h0OiAyNSB9IGFzIFJvd01vZGVsKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZGF0YXNlcmllcyhkOiBTZXJpZXNbXSkge1xyXG4gICAgY29uc3Qgc3R5bGUgPSB7IGZvbnRXZWlnaHQ6ICdib2xkJywgdGV4dEFsaWduOiAnY2VudGVyJyB9IGFzIENlbGxTdHlsZU1vZGVsO1xyXG4gICAgY29uc3QgY2VsbHMgPSBbeyB2YWx1ZTogJycgfSBhcyBDZWxsTW9kZWxdO1xyXG4gICAgdGhpcy5feGNvbHVtbnMuZm9yRWFjaChjID0+IGNlbGxzLnB1c2goeyB2YWx1ZTogYy52YWx1ZSwgc3R5bGUgfSkpO1xyXG4gICAgdGhpcy5yb3dzID0gW3sgY2VsbHMsIGhlaWdodDogMjUgfV07XHJcbiAgICB0aGlzLl9jaW5kaWNlcz8uZm9yRWFjaChpID0+IHtcclxuICAgICAgY29uc3QgY2VsbHMgPSBbeyB2YWx1ZTogaS50aXRsZSwgc3R5bGUgfSBhcyBDZWxsTW9kZWxdLCBzZXJpZXMgPSBkLmZpbmQocyA9PiBzLmluZGV4ID09PSBpLm5hbWUpLCBtYXAgPSB7fTtcclxuICAgICAgaWYgKHNlcmllcykge1xyXG4gICAgICAgIHNlcmllcy5wb2ludHMuZm9yRWFjaChwID0+IG1hcFtwLnhdID0gcC55KTtcclxuICAgICAgICB0aGlzLl94Y29sdW1ucy5mb3JFYWNoKGMgPT4gY2VsbHMucHVzaCh7XHJcbiAgICAgICAgICB2YWx1ZTogKG1hcFtjLmtleV0gfHwgMCkgYXMgYW55LFxyXG4gICAgICAgICAgZm9ybWF0OiB0aGlzLl9udW1iZXJGb3JtYXQsXHJcbiAgICAgICAgICBzdHlsZTogdGhpcy5udW1iZXJTdHlsZVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLnJvd3MucHVzaCh7IGNlbGxzLCBoZWlnaHQ6IDI1IH0gYXMgUm93TW9kZWwpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX3lyb3dzLmZvckVhY2gociA9PiB7XHJcbiAgICAgIGNvbnN0IGNlbGxzID0gW3sgdmFsdWU6IHIudmFsdWUsIHN0eWxlIH0gYXMgQ2VsbE1vZGVsXSxcclxuICAgICAgICBzZXJpZSA9IGQuZmluZChzID0+IHMubmFtZSA9PT0gci5rZXkpLCBtYXAgPSB7fTtcclxuICAgICAgaWYgKHNlcmllKSB7XHJcbiAgICAgICAgc2VyaWUucG9pbnRzLmZvckVhY2gocCA9PiBtYXBbcC54XSA9IHAueSk7XHJcbiAgICAgICAgdGhpcy5feGNvbHVtbnMuZm9yRWFjaChjID0+IGNlbGxzLnB1c2goe1xyXG4gICAgICAgICAgdmFsdWU6IChtYXBbYy5rZXldIHx8IDApIGFzIGFueSxcclxuICAgICAgICAgIGZvcm1hdDogdGhpcy5fbnVtYmVyRm9ybWF0LFxyXG4gICAgICAgICAgc3R5bGU6IHRoaXMubnVtYmVyU3R5bGVcclxuICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZVxyXG4gICAgICAgIHRoaXMuX3hjb2x1bW5zLmZvckVhY2goXyA9PiBjZWxscy5wdXNoKHsgdmFsdWU6IDAgYXMgYW55IH0pXHJcbiAgICAgICAgKTtcclxuICAgICAgdGhpcy5yb3dzLnB1c2goeyBjZWxscywgaGVpZ2h0OiAyNSB9IGFzIFJvd01vZGVsKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZHJhdygpIHtcclxuICAgIHRoaXMuc3ByZWFkc2hlZXQgJiYgdGhpcy5zcHJlYWRzaGVldC5kZXN0cm95KCk7XHJcbiAgICB0aGlzLnNwcmVhZHNoZWV0ID0gbmV3IFNwcmVhZHNoZWV0KHtcclxuICAgICAgc2Nyb2xsU2V0dGluZ3M6IHRoaXMuc2Nyb2xsU2V0dGluZ3MsXHJcbiAgICAgIGlzUHJvdGVjdGVkOiB0cnVlLFxyXG4gICAgICBhbGxvd0VkaXRpbmc6IGZhbHNlLFxyXG4gICAgICBhbGxvd0RlbGV0ZTogZmFsc2UsXHJcbiAgICAgIGFsbG93SW5zZXJ0OiBmYWxzZSxcclxuICAgICAgc2hvd1JpYmJvbjogZmFsc2UsXHJcbiAgICAgIGFsbG93QXV0b0ZpbGw6IGZhbHNlLFxyXG4gICAgICBhdXRvRmlsbFNldHRpbmdzOiB0aGlzLmF1dG9GaWxsU2V0dGluZ3MsXHJcbiAgICAgIGVuYWJsZUNsaXBib2FyZDogdHJ1ZSxcclxuICAgICAgZW5hYmxlQ29udGV4dE1lbnU6IGZhbHNlLFxyXG4gICAgICBzaG93Rm9ybXVsYUJhcjogZmFsc2UsXHJcbiAgICAgIHNob3dTaGVldFRhYnM6IGZhbHNlLFxyXG4gICAgICBlbmFibGVLZXlib2FyZE5hdmlnYXRpb246IHRydWUsXHJcbiAgICAgIHNlbGVjdDogdGhpcy5zZWxlY3QuYmluZCh0aGlzKSxcclxuICAgICAgc2hlZXRzOiBbe1xyXG4gICAgICAgIGNvbHVtbnM6IHRoaXMuY29sdW1ucyxcclxuICAgICAgICBmcm96ZW5Db2x1bW5zOiB0aGlzLmZyb3plbkNvbHVtbnMsXHJcbiAgICAgICAgZnJvemVuUm93czogMSxcclxuICAgICAgICByb3dzOiB0aGlzLnJvd3MsXHJcbiAgICAgIH1dLFxyXG4gICAgICB3aWR0aDogdGhpcy53aWR0aCxcclxuICAgICAgaGVpZ2h0OiB0aGlzLmhlaWdodCxcclxuICAgIH0sIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBldnRcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIHNlbGVjdChldnQ6IFNlbGVjdEV2ZW50QXJncykge1xyXG4gICAgY29uc3QgYWRkcmVzcyA9IHRoaXMuc3ByZWFkc2hlZXQuZ2V0QWRkcmVzc0luZm8oZXZ0LnJhbmdlKTtcclxuICAgIGxldCBbeSwgeCwgeTEsIHgxXSA9IGFkZHJlc3MuaW5kaWNlcztcclxuICAgIGlmICh5MSA8IHkpIHtcclxuICAgICAgY29uc3QgcmFuZ2UgPSB5O1xyXG4gICAgICB5ID0geTEsIHkxID0gcmFuZ2U7XHJcbiAgICB9XHJcbiAgICBpZiAoeDEgPCB4KSB7XHJcbiAgICAgIGNvbnN0IHJhbmdlID0geDtcclxuICAgICAgeCA9IHgxLCB4MSA9IHJhbmdlO1xyXG4gICAgfVxyXG4gICAgY29uc3QgYXhlczoge30gPSB7fTtcclxuICAgIGxldCBpbmRleDogc3RyaW5nO1xyXG4gICAgaWYgKHkgPiB0aGlzLnJvd3MubGVuZ3RoIC0gMSB8fCB4ID4gdGhpcy5yb3dzW3ldLmNlbGxzLmxlbmd0aCAtIDEpIHJldHVybjtcclxuICAgIGlmICh5ID09PSB5MSAmJiB4ID09PSB4MSAmJiB0aGlzLnJvd3NbeV0uY2VsbHNbeF0udmFsdWUgYXMgYW55ID09PSAwKSByZXR1cm47XHJcbiAgICBpZiAodGhpcy5fc2VyaWVzKSB7XHJcbiAgICAgIGlmICh5IDwgMSkge1xyXG4gICAgICAgIGlmICh0aGlzLl9pbmRpY2VzKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5fZmlsbHgoeCwgeDEsIGF4ZXMpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKHRoaXMuX2luZGljZXMgJiYgeSA8PSB0aGlzLl9pbmRpY2VzLmxlbmd0aCkge1xyXG4gICAgICAgIGluZGV4ID0gdGhpcy5faW5kaWNlc1t5IC0gMV07XHJcbiAgICAgICAgdGhpcy5fZmlsbHgoeCwgeDEsIGF4ZXMpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGlmICh0aGlzLl9pbmRpY2VzKVxyXG4gICAgICAgICAgdGhpcy5fZmlsbHkoeSAtIHRoaXMuX2luZGljZXMubGVuZ3RoLCB5MSAtIHRoaXMuX2luZGljZXMubGVuZ3RoLCBheGVzKTtcclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICB0aGlzLl9maWxseSh5LCB5MSwgYXhlcyk7XHJcbiAgICAgICAgaWYgKHggPiAwKVxyXG4gICAgICAgICAgdGhpcy5fZmlsbHgoeCwgeDEsIGF4ZXMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgaWYgKHkgPT09IDApIHJldHVybjtcclxuICAgICAgaW5kZXggPSB0aGlzLl9pbmRpY2VzICYmIHggPj0gdGhpcy5fYXhlcy5sZW5ndGggJiYgeCA8IHRoaXMuX2F4ZXMubGVuZ3RoICsgdGhpcy5fY2luZGljZXMubGVuZ3RoID8gdGhpcy5fY2luZGljZXNbeCAtIHRoaXMuX2F4ZXMubGVuZ3RoXS5uYW1lIDogbnVsbDtcclxuICAgICAgbGV0IGkgPSB5O1xyXG4gICAgICBkbyB7XHJcbiAgICAgICAgdGhpcy5fYXhlcy5mb3JFYWNoKGEgPT4ge1xyXG4gICAgICAgICAgY29uc3Qga2V5ID0gKHRoaXMucm93c1tpXSBhcyBhbnkpLnNvdXJjZVsnXycgKyBhLm5hbWVdO1xyXG4gICAgICAgICAgaWYgKCFheGVzW2EubmFtZV0pXHJcbiAgICAgICAgICAgIGF4ZXNbYS5uYW1lXSA9IGtleTtcclxuICAgICAgICAgIGVsc2UgaWYgKGlzU3RyaW5nKGF4ZXNbYS5uYW1lXSkpIHtcclxuICAgICAgICAgICAgaWYgKGF4ZXNbYS5uYW1lXSAhPT0ga2V5KSBheGVzW2EubmFtZV0gPSBbYXhlc1thLm5hbWVdLCBrZXldO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSBpZiAoKGF4ZXNbYS5uYW1lXSBhcyBzdHJpbmdbXSkuaW5kZXhPZihrZXkpIDwgMCkgKGF4ZXNbYS5uYW1lXSBhcyBzdHJpbmdbXSkucHVzaChrZXkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGkrKztcclxuICAgICAgfVxyXG4gICAgICB3aGlsZSAoaSA8PSB5MSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmV4cGxvcmUuZW1pdCh7IGF4ZXMsIGluZGV4IH0pO1xyXG4gIH1cclxuICBwcml2YXRlIF9maWxseSh5OiBudW1iZXIsIHkxOiBudW1iZXIsIGF4ZXM6IHt9KSB7XHJcbiAgICBjb25zdCB5TmFtZSA9IHRoaXMuX3Nlcmllc1swXTtcclxuICAgIGxldCBpID0geSAtIDE7XHJcbiAgICB3aGlsZSAoaSA8IHkxKSB7XHJcbiAgICAgIGxldCB7IGtleSB9ID0gdGhpcy5feXJvd3NbaV07XHJcbiAgICAgIGlmICghYXhlc1t5TmFtZV0pXHJcbiAgICAgICAgYXhlc1t5TmFtZV0gPSBrZXk7XHJcbiAgICAgIGVsc2UgaWYgKGlzU3RyaW5nKGF4ZXNbeU5hbWVdKSlcclxuICAgICAgICBheGVzW3lOYW1lXSA9IFtheGVzW3lOYW1lXSwga2V5XTtcclxuICAgICAgZWxzZSBpZiAoKGF4ZXNbeU5hbWVdIGFzIHN0cmluZ1tdKS5pbmRleE9mKGtleSkgPCAwKVxyXG4gICAgICAgIChheGVzW3lOYW1lXSBhcyBzdHJpbmdbXSkucHVzaChrZXkpO1xyXG4gICAgICBpKys7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9maWxseCh4OiBudW1iZXIsIHgxOiBudW1iZXIsIGF4ZXM6IHt9KSB7XHJcbiAgICBjb25zdCB4TmFtZSA9IHRoaXMuX3hBeGlzWzBdO1xyXG4gICAgbGV0IGkgPSB4IC0gMTtcclxuICAgIHdoaWxlIChpIDwgeDEpIHtcclxuICAgICAgbGV0IHsga2V5IH0gPSB0aGlzLl94Y29sdW1uc1tpXTtcclxuICAgICAgaWYgKCFheGVzW3hOYW1lXSlcclxuICAgICAgICBheGVzW3hOYW1lXSA9IGtleTtcclxuICAgICAgZWxzZSBpZiAoaXNTdHJpbmcoYXhlc1t4TmFtZV0pKVxyXG4gICAgICAgIGF4ZXNbeE5hbWVdID0gW2F4ZXNbeE5hbWVdLCBrZXldO1xyXG4gICAgICBlbHNlIGlmICgoYXhlc1t4TmFtZV0gYXMgc3RyaW5nW10pLmluZGV4T2Yoa2V5KSA8IDApXHJcbiAgICAgICAgKGF4ZXNbeE5hbWVdIGFzIHN0cmluZ1tdKS5wdXNoKGtleSk7XHJcbiAgICAgIGkrKztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGV4cG9ydFRvRXhjZWwodGl0bGU6IHN0cmluZykge1xyXG4gICAgY29uc3QgeyByb3dzIH0gPSB0aGlzLnNwcmVhZHNoZWV0LnNoZWV0c1swXSxcclxuICAgICAgbnVtYmVyRm9ybWF0ID0gdGhpcy5fc2VydmljZS5udW1iZXJGb3JtYXQsXHJcbiAgICAgIGJvb2sgPSBuZXcgV29ya2Jvb2soXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgd29ya3NoZWV0czogW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgZW5hYmxlUnRsOiB0aGlzLl9zZXNzaW9uLmludmVyc2UsXHJcbiAgICAgICAgICAgICAgbmFtZTogdGhpcy5fdHJhbnNsYXRlLmdldCgnU2hlZXROJywgMSksXHJcbiAgICAgICAgICAgICAgY29sdW1uczogcm93c1swXS5jZWxscy5tYXAoKF8sIGkpID0+ICh7IGluZGV4OiBpICsgMSwgd2lkdGg6IDE1MCB9IGFzIENvbHVtbikpLFxyXG4gICAgICAgICAgICAgIHJvd3M6IHJvd3MubWFwKChyLCBpKSA9PiAoXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgIGluZGV4OiBpICsgMSxcclxuICAgICAgICAgICAgICAgICAgY2VsbHM6IHIuY2VsbHMubWFwKChjLCBqKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaGVhZGVyID0gaSA9PT0gMCB8fCAodGhpcy5fc2VyaWVzICE9PSB1bmRlZmluZWQgJiYgaiA9PT0gMCksXHJcbiAgICAgICAgICAgICAgICAgICAgICBpc251bWJlciA9ICFoZWFkZXIgJiYgaXNOdW1iZXIoYy52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IGlzbnVtYmVyID8gJ251bWJlcicgOiAndGV4dCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICBpbmRleDogaiArIDEsXHJcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogYy52YWx1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlckZvcm1hdCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaEFsaWduOiBpc251bWJlciA/ICdyaWdodCcgOiAnY2VudGVyJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgYm9sZDogaGVhZGVyXHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICB9IGFzIFJvdykpLFxyXG4gICAgICAgICAgICB9IGFzIFdvcmtzaGVldCxcclxuICAgICAgICAgIF0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICAneGxzeCdcclxuICAgICAgKTtcclxuICAgIGJvb2suc2F2ZShgJHt0aXRsZX0ueGxzeGApO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3ByZWFkc2hlZXQgJiYgdGhpcy5zcHJlYWRzaGVldC5kZXN0cm95KCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,19 @@
1
+ import { Component } from "@angular/core";
2
+ import { SyncfusionSpreadsheetModule } from "../../modules/spreadsheet.module";
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@syncfusion/ej2-angular-spreadsheet";
5
+ export class SpContainer {
6
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpContainer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SpContainer, isStandalone: true, selector: "bizdoc-sp-container", ngImport: i0, template: `<ejs-spreadsheet/>`, isInline: true, dependencies: [{ kind: "ngmodule", type: SyncfusionSpreadsheetModule }, { kind: "component", type: i1.SpreadsheetComponent, selector: "ejs-spreadsheet", inputs: ["activeSheetIndex", "allowAutoFill", "allowCellFormatting", "allowChart", "allowConditionalFormat", "allowDataValidation", "allowDelete", "allowEditing", "allowFiltering", "allowFindAndReplace", "allowFreezePane", "allowHyperlink", "allowImage", "allowInsert", "allowMerge", "allowNumberFormatting", "allowOpen", "allowResizing", "allowSave", "allowScrolling", "allowSorting", "allowUndoRedo", "allowWrap", "autoFillSettings", "cellStyle", "cssClass", "currencyCode", "definedNames", "enableClipboard", "enableContextMenu", "enableKeyboardNavigation", "enableKeyboardShortcut", "enablePersistence", "enableRtl", "height", "isProtected", "locale", "openUrl", "password", "saveUrl", "scrollSettings", "selectionSettings", "sheets", "showAggregate", "showFormulaBar", "showRibbon", "showSheetTabs", "width"], outputs: ["actionBegin", "actionComplete", "afterHyperlinkClick", "afterHyperlinkCreate", "beforeCellFormat", "beforeCellRender", "beforeCellSave", "beforeCellUpdate", "beforeConditionalFormat", "beforeDataBound", "beforeHyperlinkClick", "beforeHyperlinkCreate", "beforeOpen", "beforeSave", "beforeSelect", "beforeSort", "cellEdit", "cellEditing", "cellSave", "contextMenuBeforeClose", "contextMenuBeforeOpen", "contextMenuItemSelect", "created", "dataBound", "dataSourceChanged", "dialogBeforeOpen", "fileMenuBeforeClose", "fileMenuBeforeOpen", "fileMenuItemSelect", "openComplete", "openFailure", "queryCellInfo", "saveComplete", "select", "sortComplete"] }] }); }
8
+ }
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpContainer, decorators: [{
10
+ type: Component,
11
+ args: [{
12
+ standalone: true,
13
+ selector: 'bizdoc-sp-container',
14
+ template: `<ejs-spreadsheet/>`,
15
+ imports: [SyncfusionSpreadsheetModule],
16
+ //styles: '/assets/themes/spreadsheet.min.css'
17
+ }]
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ByZWFkc2hlZXQuY29udGFpbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jdWJlL3NwcmVhZHNoZWV0L3NwcmVhZHNoZWV0LmNvbnRhaW5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7QUFVL0UsTUFBTSxPQUFPLFdBQVc7OEdBQVgsV0FBVztrR0FBWCxXQUFXLCtFQUpWLG9CQUFvQiwyREFDcEIsMkJBQTJCOzsyRkFHNUIsV0FBVztrQkFQdkIsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsT0FBTyxFQUFFLENBQUMsMkJBQTJCLENBQUM7b0JBQ3RDLDhDQUE4QztpQkFDakQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBTeW5jZnVzaW9uU3ByZWFkc2hlZXRNb2R1bGUgfSBmcm9tIFwiLi4vLi4vbW9kdWxlcy9zcHJlYWRzaGVldC5tb2R1bGVcIjtcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBzZWxlY3RvcjogJ2JpemRvYy1zcC1jb250YWluZXInLFxyXG4gICAgdGVtcGxhdGU6IGA8ZWpzLXNwcmVhZHNoZWV0Lz5gLFxyXG4gICAgaW1wb3J0czogW1N5bmNmdXNpb25TcHJlYWRzaGVldE1vZHVsZV0sXHJcbiAgICAvL3N0eWxlczogJy9hc3NldHMvdGhlbWVzL3NwcmVhZHNoZWV0Lm1pbi5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTcENvbnRhaW5lciB7XHJcbn1cclxuIl19
@@ -367,14 +367,14 @@ export class CubeSumComponent {
367
367
  axes[this.parentAxis] = level.scope;
368
368
  this.onExplore.emit({ axes, index });
369
369
  }
370
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: CubeSumComponent, deps: [{ token: i1.DatasourceService }, { token: i2.CubeService }, { token: i3.PromptService }, { token: i4.SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
371
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.1", type: CubeSumComponent, selector: "bizdoc-cube-sum", inputs: { xAxis: "xAxis", periodPolicy: "periodPolicy", parentAxis: "parentAxis", filters: "filters", cube: "cube", indices: "indices", scope: "scope" }, outputs: { onExplore: "explore" }, usesOnChanges: true, ngImport: i0, template: "<!-- levels -->\n<div class=\"row\">\n @if (prev) {\n <div class=\"level prev-level\">\n <div class=\"level-header row\">\n @if (back) {\n <mat-icon class=\"cliclable mat-icon-rtl-mirror\" [inline]=true (click)=\"goprev()\">keyboard_arrow_left</mat-icon>\n }\n <div div class=\"mat-h1 title\">\n {{'PrevLevel'| translate}}\n </div>\n <span class=\"divider\"></span>\n @if (forward) {\n <mat-icon class=\"cliclable mat-icon-rtl-mirror\" [inline]=true (click)=\"gonext()\">keyboard_arrow_right</mat-icon>\n }\n </div>\n <ng-container *ngTemplateOutlet=\"level; context: {use: prev}\"></ng-container>\n </div>\n }\n @if (current) {\n <div class=\"level current-level\">\n <div class=\"level-header row\">\n <div div class=\"mat-h1 title\">\n {{'CurrentLevel'| translate : primaryAxis.title}}\n </div>\n <span class=\"divider\"></span>\n @if (help) {\n <mat-icon [bizdocTooltip]=\"help\" [inline]=\"true\">help_outline</mat-icon>\n }\n </div>\n <ng-container *ngTemplateOutlet=\"level; context: {use: current}\"></ng-container>\n </div>\n }\n @if (next) {\n <div class=\"level next-level\">\n <div class=\"level-header\">\n <div div class=\"mat-h1 title\">\n {{'NextLevel'| translate}}\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"level; context: {use: next}\"></ng-container>\n </div>\n }\n</div>\n<!-- level -->\n<ng-template #level let-use=\"use\" let-help=\"help\">\n <div>\n <h2 class=\"mat-h1\" [class.cliclable]=\"use.value !== 0\" (click)=\"explore(use)\">{{use.title}}</h2>\n <div class=\"row\">\n <h3 class=\"mat-h1\" [class.cliclable]=\"use.value !== 0\" (click)=\"explore(use)\">{{use.value | currency : currencyCode : 'symbol' : digitsInfo}}</h3>\n <span class=\"divider\"></span>\n @if (use.chain && use.value !== use.chain.value) {\n <div>\n @if (use.value !== 0 && use.chain.value !== 0) {\n <span>{{Math.round(use.value / use.chain.value * 100) }}%</span>\n }\n <mat-icon>{{use.value > use.chain.value ? 'trending_up':'trending_down' }}</mat-icon>\n </div>\n }\n </div>\n </div>\n <!-- -->\n <div class=\"row\">\n @for (i of use.indices; track i) {\n <div class=\"index\">\n <h4 class=\"mat-h3 title\">{{i.title}}</h4>\n <h5 class=\"mat-h3\" [class.cliclable]=\"i.value !== 0\" (click)=\"explore(use, i.name)\">{{i.value | currency : currencyCode : 'symbol' : digitsInfo}}</h5>\n </div>\n }\n </div>\n @if (use.indices.length) {\n <div class=\"bar\" [class.available]=\"use.percent < 100\">\n <div class=\"value\" [style.flexBasis]=\"Math.round(use.percent < 100 ?\r\n 100 - use.percent :\r\n 100 / use.percent * 100) + '%'\"\r\n [@bar]=\"use.animation\"></div>\n @if (use.percent > 0) {\n <div class=\"overflow\"></div>\n }\n </div>\n }\n</ng-template>\n", styles: [":host{padding:0 8px}.level{border-width:thin;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;padding:8px;margin:3px;-ms-flex:1 1 0;-webkit-flex:1 1 0;flex:1 1 0;border-style:solid}.level .cliclable{cursor:pointer}.level.next-level{border-style:dashed}.level .level-header{align-items:center}.level .level-header .title{margin:0;line-height:22px;font-size:inherit;font-variant-caps:all-petite-caps}.level h3{margin:0;font-size:x-large}.level h2{font-weight:400;font-size:larger;margin:0}.level .percent{display:flex;align-items:center}.level .index{padding:0 4px}.level .index h5,.level .index h4{margin:0}.level .bar{display:flex}.level .bar .value,.level .bar .overflow{height:12px}.level .bar .value{flex:0 0 0%}.level .bar .overflow{flex:1 1 0%;box-sizing:border-box}.level .bar.available .overflow{border-width:1px;border-style:dashed}\n"], dependencies: [{ kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i7.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i5.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }], animations: [trigger('bar', [
370
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CubeSumComponent, deps: [{ token: i1.DatasourceService }, { token: i2.CubeService }, { token: i3.PromptService }, { token: i4.SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
371
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: CubeSumComponent, selector: "bizdoc-cube-sum", inputs: { xAxis: "xAxis", periodPolicy: "periodPolicy", parentAxis: "parentAxis", filters: "filters", cube: "cube", indices: "indices", scope: "scope" }, outputs: { onExplore: "explore" }, usesOnChanges: true, ngImport: i0, template: "<!-- levels -->\n<div class=\"row\">\n @if (prev) {\n <div class=\"level prev-level\">\n <div class=\"level-header row\">\n @if (back) {\n <mat-icon class=\"cliclable mat-icon-rtl-mirror\" [inline]=true (click)=\"goprev()\">keyboard_arrow_left</mat-icon>\n }\n <div div class=\"mat-h1 title\">\n {{'PrevLevel'| translate}}\n </div>\n <span class=\"divider\"></span>\n @if (forward) {\n <mat-icon class=\"cliclable mat-icon-rtl-mirror\" [inline]=true (click)=\"gonext()\">keyboard_arrow_right</mat-icon>\n }\n </div>\n <ng-container *ngTemplateOutlet=\"level; context: {use: prev}\"></ng-container>\n </div>\n }\n @if (current) {\n <div class=\"level current-level\">\n <div class=\"level-header row\">\n <div div class=\"mat-h1 title\">\n {{'CurrentLevel'| translate : primaryAxis.title}}\n </div>\n <span class=\"divider\"></span>\n @if (help) {\n <mat-icon [bizdocTooltip]=\"help\" [inline]=\"true\">help_outline</mat-icon>\n }\n </div>\n <ng-container *ngTemplateOutlet=\"level; context: {use: current}\"></ng-container>\n </div>\n }\n @if (next) {\n <div class=\"level next-level\">\n <div class=\"level-header\">\n <div div class=\"mat-h1 title\">\n {{'NextLevel'| translate}}\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"level; context: {use: next}\"></ng-container>\n </div>\n }\n</div>\n<!-- level -->\n<ng-template #level let-use=\"use\" let-help=\"help\">\n <div>\n <h2 class=\"mat-h1\" [class.cliclable]=\"use.value !== 0\" (click)=\"explore(use)\">{{use.title}}</h2>\n <div class=\"row\">\n <h3 class=\"mat-h1\" [class.cliclable]=\"use.value !== 0\" (click)=\"explore(use)\">{{use.value | currency : currencyCode : 'symbol' : digitsInfo}}</h3>\n <span class=\"divider\"></span>\n @if (use.chain && use.value !== use.chain.value) {\n <div>\n @if (use.value !== 0 && use.chain.value !== 0) {\n <span>{{Math.round(use.value / use.chain.value * 100) }}%</span>\n }\n <mat-icon>{{use.value > use.chain.value ? 'trending_up':'trending_down' }}</mat-icon>\n </div>\n }\n </div>\n </div>\n <!-- -->\n <div class=\"row\">\n @for (i of use.indices; track i) {\n <div class=\"index\">\n <h4 class=\"mat-h3 title\">{{i.title}}</h4>\n <h5 class=\"mat-h3\" [class.cliclable]=\"i.value !== 0\" (click)=\"explore(use, i.name)\">{{i.value | currency : currencyCode : 'symbol' : digitsInfo}}</h5>\n </div>\n }\n </div>\n @if (use.indices.length) {\n <div class=\"bar\" [class.available]=\"use.percent < 100\">\n <div class=\"value\" [style.flexBasis]=\"Math.round(use.percent < 100 ?\r\n 100 - use.percent :\r\n 100 / use.percent * 100) + '%'\"\r\n [@bar]=\"use.animation\"></div>\n @if (use.percent > 0) {\n <div class=\"overflow\"></div>\n }\n </div>\n }\n</ng-template>\n", styles: [":host{padding:0 8px}.level{border-width:thin;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;padding:8px;margin:3px;-ms-flex:1 1 0;-webkit-flex:1 1 0;flex:1 1 0;border-style:solid}.level .cliclable{cursor:pointer}.level.next-level{border-style:dashed}.level .level-header{align-items:center}.level .level-header .title{margin:0;line-height:22px;font-size:inherit;font-variant-caps:all-petite-caps}.level h3{margin:0;font-size:x-large}.level h2{font-weight:400;font-size:larger;margin:0}.level .percent{display:flex;align-items:center}.level .index{padding:0 4px}.level .index h5,.level .index h4{margin:0}.level .bar{display:flex}.level .bar .value,.level .bar .overflow{height:12px}.level .bar .value{flex:0 0 0%}.level .bar .overflow{flex:1 1 0%;box-sizing:border-box}.level .bar.available .overflow{border-width:1px;border-style:dashed}\n"], dependencies: [{ kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i7.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i5.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }], animations: [trigger('bar', [
372
372
  transition('*<=>*', [style({
373
373
  flexBasis: '{{startWidth}}%'
374
374
  }), animate('500ms ease')], { params: { startWidth: 100 } }),
375
375
  ])] }); }
376
376
  }
377
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: CubeSumComponent, decorators: [{
377
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CubeSumComponent, decorators: [{
378
378
  type: Component,
379
379
  args: [{ selector: 'bizdoc-cube-sum', animations: [trigger('bar', [
380
380
  transition('*<=>*', [style({
@@ -65,10 +65,10 @@ export class ViewBase {
65
65
  evt && evt.preventDefault();
66
66
  }
67
67
  }
68
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: ViewBase, deps: [{ token: i1.SessionService }, { token: i2.RouterImpl }, { token: i3.CubeService }, { token: i4.GuideService }], target: i0.ɵɵFactoryTarget.Directive }); }
69
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.1", type: ViewBase, ngImport: i0 }); }
68
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ViewBase, deps: [{ token: i1.SessionService }, { token: i2.RouterImpl }, { token: i3.CubeService }, { token: i4.GuideService }], target: i0.ɵɵFactoryTarget.Directive }); }
69
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.2", type: ViewBase, ngImport: i0 }); }
70
70
  }
71
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: ViewBase, decorators: [{
71
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ViewBase, decorators: [{
72
72
  type: Directive
73
73
  }], ctorParameters: () => [{ type: i1.SessionService }, { type: i2.RouterImpl }, { type: i3.CubeService }, { type: i4.GuideService }] });
74
74
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jdWJlL3ZpZXctYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFTMUMsTUFBTSxPQUFnQixRQUFRO0lBSzVCLElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBQ0QsSUFBVyxJQUFJLENBQUMsS0FBVztRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsSUFBVyxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFDRCxJQUFXLElBQUksQ0FBQyxLQUFlO1FBQzdCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkYsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUN0RSxDQUFDLENBQUMsYUFBYSxLQUFLLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFHRCxJQUFXLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUNELElBQVcsSUFBSSxDQUFDLEtBQWM7UUFDNUIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUtELElBQVcsWUFBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUNELElBQVcsWUFBWSxDQUFDLEtBQWM7UUFDcEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFlBQXNCLFFBQXdCLEVBQ2xDLE9BQW1CLEVBQ25CLFFBQXFCLEVBQ3ZCLE1BQW9CO1FBSFIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFDbEMsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUNuQixhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQ3ZCLFdBQU0sR0FBTixNQUFNLENBQWM7UUF2QnRCLFVBQUssR0FBWSxFQUFFLENBQUM7SUF3QjVCLENBQUM7SUFDRCxhQUFhLENBQUMsT0FBZ0I7UUFDNUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsTUFBTSxJQUFJLEdBQUc7WUFDWCxHQUFHLE9BQU8sQ0FBQyxJQUFJO1NBQ2hCLENBQUM7UUFDRixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLENBQUM7SUFDRCxRQUFRLENBQUMsV0FBVztRQUNsQixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUU7WUFDeEIsV0FBVztTQUNaLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxLQUFLLENBQUMsR0FBVztRQUNmLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25DLEdBQUcsSUFBSSxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7OEdBdEVtQixRQUFRO2tHQUFSLFFBQVE7OzJGQUFSLFFBQVE7a0JBRDdCLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXhlc01hcCwgQ3ViZSwgQ3ViZVZpZXcgfSBmcm9tICcuLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IEN1YmVTZXJ2aWNlLCBQYXR0ZXJuIH0gZnJvbSAnLi9jdWJlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgR3VpZGVTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9ndWlkZS9ndWlkZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ3ViZVZpZXdDb21wb25lbnQgfSBmcm9tICcuL2N1YmUtdmlldy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSb3V0ZXJJbXBsIH0gZnJvbSAnLi4vY29yZS9yb3V0ZXInO1xyXG5cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBWaWV3QmFzZSB7XHJcbiAgYWJzdHJhY3Qgdmlld1BhbmU6IEN1YmVWaWV3Q29tcG9uZW50O1xyXG4gIHBhdHRlcm5zOiBQYXR0ZXJuW107XHJcbiAgcGF0dGVybjogUGF0dGVybjtcclxuICBwcml2YXRlIF9jdWJlOiBDdWJlO1xyXG4gIHB1YmxpYyBnZXQgY3ViZSgpOiBDdWJlIHtcclxuICAgIHJldHVybiB0aGlzLl9jdWJlO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IGN1YmUodmFsdWU6IEN1YmUpIHtcclxuICAgIHRoaXMuX2N1YmUgPSB2YWx1ZTtcclxuICAgIHRoaXMuX3NlcnZpY2UucGF0dGVybnModmFsdWUubmFtZSkuc3Vic2NyaWJlKHAgPT4gdGhpcy5wYXR0ZXJucyA9IHApO1xyXG4gIH1cclxuICBwcml2YXRlIF92aWV3OiBDdWJlVmlldztcclxuICBwdWJsaWMgZ2V0IHZpZXcoKTogQ3ViZVZpZXcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ZpZXc7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgdmlldyh2YWx1ZTogQ3ViZVZpZXcpIHtcclxuICAgIHRoaXMuX3ZpZXcgPSB2YWx1ZTtcclxuICAgIHRoaXMuZXhjbHVkZSA9IHZhbHVlLnNlcmllcyA/IFsuLi52YWx1ZS54QXhpcywgLi4udmFsdWUuc2VyaWVzXSA6IFsuLi52YWx1ZS54QXhpc107XHJcbiAgICB0aGlzLmFueUF4ZXMgPSB0aGlzLmN1YmUuYXhlcy5zb21lKGEgPT4gdGhpcy5leGNsdWRlLmluZGV4T2YoYS5uYW1lKSA8IDAgJiZcclxuICAgICAgYS5zZWxlY3Rpb25Nb2RlICE9PSAnTm9uZScpO1xyXG4gIH1cclxuICBleGNsdWRlOiBzdHJpbmdbXTtcclxuICBwcml2YXRlIF9heGVzOiBBeGVzTWFwID0ge307XHJcbiAgcHVibGljIGdldCBheGVzKCk6IEF4ZXNNYXAge1xyXG4gICAgcmV0dXJuIHRoaXMuX2F4ZXM7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgYXhlcyh2YWx1ZTogQXhlc01hcCkge1xyXG4gICAgdGhpcy5fYXhlcyA9IHZhbHVlO1xyXG4gICAgdGhpcy5hbnlGaWx0ZXJzID0gT2JqZWN0LmtleXModmFsdWUpLmxlbmd0aCA+IDA7XHJcbiAgfVxyXG4gIGFueUF4ZXM6IGJvb2xlYW47XHJcbiAgYW55RmlsdGVyczogYm9vbGVhbjtcclxuICBsb2FkaW5nOiBib29sZWFuO1xyXG4gIHByaXZhdGUgX29yaWdpbmFsQXhlczogQXhlc01hcDtcclxuICBwdWJsaWMgZ2V0IG9yaWdpbmFsQXhlcygpOiBBeGVzTWFwIHtcclxuICAgIHJldHVybiB0aGlzLl9vcmlnaW5hbEF4ZXM7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgb3JpZ2luYWxBeGVzKHZhbHVlOiBBeGVzTWFwKSB7XHJcbiAgICB0aGlzLl9vcmlnaW5hbEF4ZXMgPSB2YWx1ZTtcclxuICAgIHRoaXMuYXhlcyA9IHsgLi4udmFsdWUgfTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgX3JvdXRlcjogUm91dGVySW1wbCxcclxuICAgIHByb3RlY3RlZCBfc2VydmljZTogQ3ViZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9ndWlkZTogR3VpZGVTZXJ2aWNlKSB7XHJcbiAgfVxyXG4gIHBhdHRlcm5DaGFuZ2UocGF0dGVybjogUGF0dGVybikge1xyXG4gICAgdGhpcy5wYXR0ZXJuID0gcGF0dGVybjtcclxuICAgIGNvbnN0IGF4ZXMgPSB7XHJcbiAgICAgIC4uLnBhdHRlcm4uYXhlc1xyXG4gICAgfTtcclxuICAgIHRoaXMuX3NlcnZpY2UuYmFzZSh0aGlzLmN1YmUubmFtZSwgYXhlcywgdGhpcy5vcmlnaW5hbEF4ZXMpO1xyXG4gICAgdGhpcy5uYXZpZ2F0ZShheGVzKTtcclxuICB9XHJcbiAgY2xlYXJGaWx0ZXIoKSB7XHJcbiAgICB0aGlzLm5hdmlnYXRlKHt9KTtcclxuICAgIHRoaXMucGF0dGVybiA9IG51bGw7XHJcbiAgfVxyXG4gIG5hdmlnYXRlKHF1ZXJ5UGFyYW1zKSB7XHJcbiAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoW10sIHtcclxuICAgICAgcXVlcnlQYXJhbXNcclxuICAgIH0pO1xyXG4gIH1cclxuICBndWlkZShldnQ/OiBFdmVudCkge1xyXG4gICAgaWYgKHRoaXMudmlldy5ndWlkZSkge1xyXG4gICAgICB0aGlzLl9ndWlkZS5zdGFydCh0aGlzLnZpZXcuZ3VpZGUpO1xyXG4gICAgICBldnQgJiYgZXZ0LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -102,10 +102,10 @@ export class CubeMobileViewComponent extends ViewBase {
102
102
  this._destroy.next();
103
103
  this._destroy.complete();
104
104
  }
105
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: CubeMobileViewComponent, deps: [{ token: i1.SessionService }, { token: i2.RouterImpl }, { token: i3.CubeService }, { token: i4.GuideService }, { token: i5.PromptService }, { token: i6.WindowTitleService }, { token: i7.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
106
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.1", type: CubeMobileViewComponent, selector: "ng-component", viewQueries: [{ propertyName: "viewPane", first: true, predicate: CubeViewComponent, descendants: true, static: true }, { propertyName: "drawer", first: true, predicate: MatSidenav, descendants: true, static: true }, { propertyName: "explorePane", first: true, predicate: ExploreItemsComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\n @if (view.guide) {\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\n }\n <button mat-icon-button (click)=\"viewPane.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\n <span class=\"divider\"></span>\n <button mat-icon-button [matMenuTriggerFor]=\"pmenu\" [bizdocTooltip]=\"'Patterns' | translate\" [disabled]=\"!patterns?.length\" data-help=\"pattern\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\n <mat-menu #pmenu>\n @for (p of patterns; track p) {\n <button mat-menu-item (click)=\"patternChange(p)\">\n <span>{{p.title}}</span>\n </button>\n }\n </mat-menu>\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" [bizdocTooltip]=\"'Download' | translate\" data-help=\"download\"><mat-icon>save_alt</mat-icon></button>\n <mat-menu #menu>\n <button mat-menu-item (click)=\"viewPane.exportToExcel()\">{{'DownloadExcel' | translate}}</button>\n @if (mode === 'explore') {\n <mat-divider></mat-divider>\n <button mat-menu-item (click)=\"explorePane.exportExcel()\">{{'DownloadExplore' | translate}}</button>\n }\n </mat-menu>\n <button mat-icon-button (click)=\"clearFilter()\" [bizdocTooltip]=\"'Clear' | translate\" [disabled]=\"!anyFilters\"><mat-icon>clear_all</mat-icon></button>\n <button mat-icon-button (click)=\"toggleFilter()\" [bizdocTooltip]=\"'Filter' | translate\" [disabled]=\"!anyAxes\" data-help=\"filter\"><mat-icon>filter_list</mat-icon></button>\n</mat-toolbar>\n<mat-sidenav-container class=\"page-container\" autosize>\n <mat-sidenav mode=\"over\" position=\"end\" [opened]=\"false\">\n @switch (mode) {\n @case ('explore') {\n <bizdoc-cube-explore [cube]=\"cube.name\" [index]=\"exploreIndex\" [axes]=exploreAxes\n (explore)=\"exploreItem($event)\" #explorePane [pageSize]=1000 (loadingChange)=\"loading = $event\"></bizdoc-cube-explore>\n }\n @case ('item') {\n <bizdoc-cube-item [template]=\"template\" [model]=\"item\"></bizdoc-cube-item>\n }\n @default {\n <bizdoc-cube-filter [cube]=\"cube.name\" [axes]=\"axes\" [exclude]=\"exclude\" (axesChange)=\"filterChange($event)\"></bizdoc-cube-filter>\n }\n }\n </mat-sidenav>\n <mat-sidenav-content>\n <bizdoc-cube-view [filters]=\"axes\" #viewPane\n (explore)=\"explore($event)\"\n [cube]=\"cube\"\n [view]=\"view\"\n [(loading)]=\"loading\"></bizdoc-cube-view>\n </mat-sidenav-content>\n</mat-sidenav-container>\n", styles: [":host ::ng-deep .mat-sidenav-container .mat-sidenav-content{overflow:hidden;max-width:95%}:host ::ng-deep .e-pivot-context-menu{display:none}\n"], dependencies: [{ kind: "component", type: i8.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i9.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i9.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i9.MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "component", type: i10.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i11.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i12.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i13.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i13.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i13.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: i14.ExploreItemImplComponent, selector: "bizdoc-cube-item", inputs: ["template", "model"] }, { kind: "component", type: i15.CubeFilterComponent, selector: "bizdoc-cube-filter", inputs: ["cube", "exclude", "include", "axes"], outputs: ["axesChange"] }, { kind: "component", type: i16.CubeViewComponent, selector: "bizdoc-cube-view", inputs: ["filters", "cube", "view", "loading"], outputs: ["explore", "loadingChange"] }, { kind: "component", type: i17.ExploreItemsComponent, selector: "bizdoc-cube-explore", inputs: ["pageSize", "cube", "index", "scope", "axes", "loading"], outputs: ["explore", "load", "loadingChange"] }, { kind: "directive", type: i18.MatIconAnimate, selector: "[matAnimate]" }, { kind: "directive", type: i19.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i20.TranslatePipe, name: "translate" }] }); }
105
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CubeMobileViewComponent, deps: [{ token: i1.SessionService }, { token: i2.RouterImpl }, { token: i3.CubeService }, { token: i4.GuideService }, { token: i5.PromptService }, { token: i6.WindowTitleService }, { token: i7.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
106
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: CubeMobileViewComponent, selector: "ng-component", viewQueries: [{ propertyName: "viewPane", first: true, predicate: CubeViewComponent, descendants: true, static: true }, { propertyName: "drawer", first: true, predicate: MatSidenav, descendants: true, static: true }, { propertyName: "explorePane", first: true, predicate: ExploreItemsComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\n @if (view.guide) {\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\n }\n <button mat-icon-button (click)=\"viewPane.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\n <span class=\"divider\"></span>\n <button mat-icon-button [matMenuTriggerFor]=\"pmenu\" [bizdocTooltip]=\"'Patterns' | translate\" [disabled]=\"!patterns?.length\" data-help=\"pattern\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\n <mat-menu #pmenu>\n @for (p of patterns; track p) {\n <button mat-menu-item (click)=\"patternChange(p)\">\n <span>{{p.title}}</span>\n </button>\n }\n </mat-menu>\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" [bizdocTooltip]=\"'Download' | translate\" data-help=\"download\"><mat-icon>save_alt</mat-icon></button>\n <mat-menu #menu>\n <button mat-menu-item (click)=\"viewPane.exportToExcel()\">{{'DownloadExcel' | translate}}</button>\n @if (mode === 'explore') {\n <mat-divider></mat-divider>\n <button mat-menu-item (click)=\"explorePane.exportExcel()\">{{'DownloadExplore' | translate}}</button>\n }\n </mat-menu>\n <button mat-icon-button (click)=\"clearFilter()\" [bizdocTooltip]=\"'Clear' | translate\" [disabled]=\"!anyFilters\"><mat-icon>clear_all</mat-icon></button>\n <button mat-icon-button (click)=\"toggleFilter()\" [bizdocTooltip]=\"'Filter' | translate\" [disabled]=\"!anyAxes\" data-help=\"filter\"><mat-icon>filter_list</mat-icon></button>\n</mat-toolbar>\n<mat-sidenav-container class=\"page-container\" autosize>\n <mat-sidenav mode=\"over\" position=\"end\" [opened]=\"false\">\n @switch (mode) {\n @case ('explore') {\n <bizdoc-cube-explore [cube]=\"cube.name\" [index]=\"exploreIndex\" [axes]=exploreAxes\n (explore)=\"exploreItem($event)\" #explorePane [pageSize]=1000 (loadingChange)=\"loading = $event\"></bizdoc-cube-explore>\n }\n @case ('item') {\n <bizdoc-cube-item [template]=\"template\" [model]=\"item\"></bizdoc-cube-item>\n }\n @default {\n <bizdoc-cube-filter [cube]=\"cube.name\" [axes]=\"axes\" [exclude]=\"exclude\" (axesChange)=\"filterChange($event)\"></bizdoc-cube-filter>\n }\n }\n </mat-sidenav>\n <mat-sidenav-content>\n <bizdoc-cube-view [filters]=\"axes\" #viewPane\n (explore)=\"explore($event)\"\n [cube]=\"cube\"\n [view]=\"view\"\n [(loading)]=\"loading\"></bizdoc-cube-view>\n </mat-sidenav-content>\n</mat-sidenav-container>\n", styles: [":host ::ng-deep .mat-sidenav-container .mat-sidenav-content{overflow:hidden;max-width:95%}:host ::ng-deep .e-pivot-context-menu{display:none}\n"], dependencies: [{ kind: "component", type: i8.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i9.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i9.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i9.MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "component", type: i10.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i11.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i12.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i13.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i13.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i13.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: i14.ExploreItemImplComponent, selector: "bizdoc-cube-item", inputs: ["template", "model"] }, { kind: "component", type: i15.CubeFilterComponent, selector: "bizdoc-cube-filter", inputs: ["cube", "exclude", "include", "axes"], outputs: ["axesChange"] }, { kind: "component", type: i16.CubeViewComponent, selector: "bizdoc-cube-view", inputs: ["filters", "cube", "view", "loading"], outputs: ["explore", "loadingChange"] }, { kind: "component", type: i17.ExploreItemsComponent, selector: "bizdoc-cube-explore", inputs: ["pageSize", "cube", "index", "scope", "axes", "loading"], outputs: ["explore", "load", "loadingChange"] }, { kind: "directive", type: i18.MatIconAnimate, selector: "[matAnimate]" }, { kind: "directive", type: i19.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i20.TranslatePipe, name: "translate" }] }); }
107
107
  }
108
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: CubeMobileViewComponent, decorators: [{
108
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CubeMobileViewComponent, decorators: [{
109
109
  type: Component,
110
110
  args: [{ template: "<mat-toolbar class=\"nav-toolbar\">\n @if (view.guide) {\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\n }\n <button mat-icon-button (click)=\"viewPane.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\n <span class=\"divider\"></span>\n <button mat-icon-button [matMenuTriggerFor]=\"pmenu\" [bizdocTooltip]=\"'Patterns' | translate\" [disabled]=\"!patterns?.length\" data-help=\"pattern\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\n <mat-menu #pmenu>\n @for (p of patterns; track p) {\n <button mat-menu-item (click)=\"patternChange(p)\">\n <span>{{p.title}}</span>\n </button>\n }\n </mat-menu>\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" [bizdocTooltip]=\"'Download' | translate\" data-help=\"download\"><mat-icon>save_alt</mat-icon></button>\n <mat-menu #menu>\n <button mat-menu-item (click)=\"viewPane.exportToExcel()\">{{'DownloadExcel' | translate}}</button>\n @if (mode === 'explore') {\n <mat-divider></mat-divider>\n <button mat-menu-item (click)=\"explorePane.exportExcel()\">{{'DownloadExplore' | translate}}</button>\n }\n </mat-menu>\n <button mat-icon-button (click)=\"clearFilter()\" [bizdocTooltip]=\"'Clear' | translate\" [disabled]=\"!anyFilters\"><mat-icon>clear_all</mat-icon></button>\n <button mat-icon-button (click)=\"toggleFilter()\" [bizdocTooltip]=\"'Filter' | translate\" [disabled]=\"!anyAxes\" data-help=\"filter\"><mat-icon>filter_list</mat-icon></button>\n</mat-toolbar>\n<mat-sidenav-container class=\"page-container\" autosize>\n <mat-sidenav mode=\"over\" position=\"end\" [opened]=\"false\">\n @switch (mode) {\n @case ('explore') {\n <bizdoc-cube-explore [cube]=\"cube.name\" [index]=\"exploreIndex\" [axes]=exploreAxes\n (explore)=\"exploreItem($event)\" #explorePane [pageSize]=1000 (loadingChange)=\"loading = $event\"></bizdoc-cube-explore>\n }\n @case ('item') {\n <bizdoc-cube-item [template]=\"template\" [model]=\"item\"></bizdoc-cube-item>\n }\n @default {\n <bizdoc-cube-filter [cube]=\"cube.name\" [axes]=\"axes\" [exclude]=\"exclude\" (axesChange)=\"filterChange($event)\"></bizdoc-cube-filter>\n }\n }\n </mat-sidenav>\n <mat-sidenav-content>\n <bizdoc-cube-view [filters]=\"axes\" #viewPane\n (explore)=\"explore($event)\"\n [cube]=\"cube\"\n [view]=\"view\"\n [(loading)]=\"loading\"></bizdoc-cube-view>\n </mat-sidenav-content>\n</mat-sidenav-container>\n", styles: [":host ::ng-deep .mat-sidenav-container .mat-sidenav-content{overflow:hidden;max-width:95%}:host ::ng-deep .e-pivot-context-menu{display:none}\n"] }]
111
111
  }], ctorParameters: () => [{ type: i1.SessionService }, { type: i2.RouterImpl }, { type: i3.CubeService }, { type: i4.GuideService }, { type: i5.PromptService }, { type: i6.WindowTitleService }, { type: i7.ActivatedRoute }], propDecorators: { viewPane: [{