@bizdoc/core 1.14.9 → 1.14.12
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.
- package/assets/bizdoc-schema.json +7 -3
- package/assets/themes/xslt.min.css +1 -0
- package/bizdoc-core.d.ts +5 -0
- package/esm2020/bizdoc-core.mjs +5 -0
- package/esm2020/lib/admin/admin-dismiss.service.mjs +22 -0
- package/esm2020/lib/admin/admin-menu.component.mjs +27 -0
- package/esm2020/lib/admin/core/ace.input.mjs +147 -0
- package/esm2020/lib/admin/core/color-picker.input.mjs +208 -0
- package/esm2020/lib/admin/core/search.input.mjs +43 -0
- package/esm2020/lib/admin/diff/configuration-diff.component.mjs +558 -0
- package/esm2020/lib/admin/document-trace/document-trace.component.mjs +532 -0
- package/esm2020/lib/admin/document-trace/reassign.dialog.mjs +40 -0
- package/esm2020/lib/admin/document-trace/timeline.mjs +2 -0
- package/esm2020/lib/admin/document-trace/trace-element.component.mjs +123 -0
- package/esm2020/lib/admin/form/form.resolve.service.mjs +17 -0
- package/esm2020/lib/admin/form/form.service.mjs +43 -0
- package/esm2020/lib/admin/form/workflow/node-ref.mjs +8 -0
- package/esm2020/lib/admin/form/workflow/node.component.mjs +128 -0
- package/esm2020/lib/admin/form/workflow/role-node.component.mjs +90 -0
- package/esm2020/lib/admin/form/workflow/workflow.component.mjs +441 -0
- package/esm2020/lib/admin/indices/manage-cube-index.component.mjs +161 -0
- package/esm2020/lib/admin/patterns/patterns.component.mjs +179 -0
- package/esm2020/lib/admin/permissions/permissions.component.mjs +97 -0
- package/esm2020/lib/admin/positions/positions-popup.component.mjs +74 -0
- package/esm2020/lib/admin/positions/positions.component.mjs +460 -0
- package/esm2020/lib/admin/profiler/outofoffice.component.mjs +155 -0
- package/esm2020/lib/admin/profiler/profiler.component.mjs +281 -0
- package/esm2020/lib/admin/utility-ref.mjs +38 -0
- package/esm2020/lib/admin/utility-wrapper.component.mjs +51 -0
- package/esm2020/lib/admin/utility.pane.component.mjs +51 -0
- package/esm2020/lib/app.component.mjs +91 -0
- package/esm2020/lib/bizdoc.module.mjs +101 -0
- package/esm2020/lib/browse/browse-items.component.mjs +481 -0
- package/esm2020/lib/browse/browse.mobile.component.mjs +101 -0
- package/esm2020/lib/browse/browse.pane.component.mjs +148 -0
- package/esm2020/lib/browse/expanded-item/expanded-item.component.mjs +316 -0
- package/esm2020/lib/browse/filter/filter.component.mjs +164 -0
- package/esm2020/lib/browse/folders-menu.component.mjs +51 -0
- package/esm2020/lib/chat/chat-info.mjs +68 -0
- package/esm2020/lib/chat/chat.mobile.component.mjs +26 -0
- package/esm2020/lib/chat/chat.service.mjs +122 -0
- package/esm2020/lib/chat/contacts.component.mjs +103 -0
- package/esm2020/lib/chat/contacts.pane.component.mjs +29 -0
- package/esm2020/lib/chat/conversation.component.mjs +193 -0
- package/esm2020/lib/chat/conversation.pane.component.mjs +53 -0
- package/esm2020/lib/compose/action/action-picker.component.mjs +84 -0
- package/esm2020/lib/compose/action/action-ref.mjs +19 -0
- package/esm2020/lib/compose/action/action.base.mjs +49 -0
- package/esm2020/lib/compose/action/action.dialog.mjs +61 -0
- package/esm2020/lib/compose/action/action.pane.dialog.exp.mjs +72 -0
- package/esm2020/lib/compose/action/assign-action.component.mjs +70 -0
- package/esm2020/lib/compose/action/moveto-action.component.mjs +91 -0
- package/esm2020/lib/compose/action/return-action.component.mjs +52 -0
- package/esm2020/lib/compose/attachments/attachments.component.mjs +127 -0
- package/esm2020/lib/compose/attachments/preview/attachment-preview.component.mjs +155 -0
- package/esm2020/lib/compose/attachments/progress-button.directive.mjs +25 -0
- package/esm2020/lib/compose/can-deactivate-changes.service.mjs +27 -0
- package/esm2020/lib/compose/comments/Comments.pane.component.mjs +49 -0
- package/esm2020/lib/compose/comments/comment.component.mjs +186 -0
- package/esm2020/lib/compose/comments/comments.component.mjs +227 -0
- package/esm2020/lib/compose/comments/edit-comment.component.mjs +32 -0
- package/esm2020/lib/compose/comments/edits.component.mjs +30 -0
- package/esm2020/lib/compose/comments/quick-comment.component.exp.mjs +63 -0
- package/esm2020/lib/compose/comments/votes.component.mjs +42 -0
- package/esm2020/lib/compose/compose-resolve.service.mjs +55 -0
- package/esm2020/lib/compose/compose.mobile.component.mjs +112 -0
- package/esm2020/lib/compose/compose.pane.component.mjs +205 -0
- package/esm2020/lib/compose/copy/copy.dialog.mjs +46 -0
- package/esm2020/lib/compose/dismiss.service.mjs +25 -0
- package/esm2020/lib/compose/document-resolver.service.mjs +17 -0
- package/esm2020/lib/compose/document.component.mjs +45 -0
- package/esm2020/lib/compose/document.mobile.component.mjs +22 -0
- package/esm2020/lib/compose/document.pane.component.mjs +26 -0
- package/esm2020/lib/compose/events/events.component.mjs +30 -0
- package/esm2020/lib/compose/form-ref.mjs +46 -0
- package/esm2020/lib/compose/form-selector/form-selector.sheet.mjs +88 -0
- package/esm2020/lib/compose/form.component.mjs +458 -0
- package/esm2020/lib/compose/new-menu.component.mjs +104 -0
- package/esm2020/lib/compose/privilage.directive.mjs +64 -0
- package/esm2020/lib/compose/recipient-resolver.service.mjs +18 -0
- package/esm2020/lib/compose/save-changes.dialog.mjs +18 -0
- package/esm2020/lib/compose/state.component.mjs +37 -0
- package/esm2020/lib/compose/tag/tags.component.mjs +91 -0
- package/esm2020/lib/compose/trace/flow.component.mjs +699 -0
- package/esm2020/lib/compose/trace/people.component.mjs +35 -0
- package/esm2020/lib/compose/trace/trace.base.mjs +71 -0
- package/esm2020/lib/compose/trace/trace.component.mjs +359 -0
- package/esm2020/lib/compose/trace/trace.pane.component.mjs +52 -0
- package/esm2020/lib/compose/version-compare/version-compare.component.mjs +53 -0
- package/esm2020/lib/compose/version-compare/version-compare.directive.mjs +344 -0
- package/esm2020/lib/compose/version-compare/version.pane.component.mjs +56 -0
- package/esm2020/lib/core/NgComponentOutlet.mjs +38 -0
- package/esm2020/lib/core/account.service.mjs +37 -0
- package/esm2020/lib/core/animated-icon/animated-icon.directive.mjs +17 -0
- package/esm2020/lib/core/animations.mjs +156 -0
- package/esm2020/lib/core/authentication.mjs +3 -0
- package/esm2020/lib/core/avatar/avatar.component.mjs +103 -0
- package/esm2020/lib/core/base.mjs +2 -0
- package/esm2020/lib/core/colors.mjs +322 -0
- package/esm2020/lib/core/component-factory-resolver.mjs +64 -0
- package/esm2020/lib/core/configuration.mjs +17 -0
- package/esm2020/lib/core/controls/address.input.mjs +206 -0
- package/esm2020/lib/core/controls/auto-complete.input.mjs +256 -0
- package/esm2020/lib/core/controls/combination-picker-body.mjs +173 -0
- package/esm2020/lib/core/controls/combination-picker.mjs +277 -0
- package/esm2020/lib/core/controls/combination-pool.mjs +105 -0
- package/esm2020/lib/core/controls/file.input.mjs +420 -0
- package/esm2020/lib/core/controls/select.input.mjs +237 -0
- package/esm2020/lib/core/controls/time-picker.mjs +196 -0
- package/esm2020/lib/core/controls/timespan.input.mjs +207 -0
- package/esm2020/lib/core/datasource.service.mjs +75 -0
- package/esm2020/lib/core/decorators.mjs +46 -0
- package/esm2020/lib/core/firebase.service.mjs +50 -0
- package/esm2020/lib/core/functions.mjs +205 -0
- package/esm2020/lib/core/guide/guide.component.mjs +224 -0
- package/esm2020/lib/core/guide/guide.service.mjs +118 -0
- package/esm2020/lib/core/guide/help-tip.component.mjs +58 -0
- package/esm2020/lib/core/http.interceptor.mjs +79 -0
- package/esm2020/lib/core/hub.service.mjs +108 -0
- package/esm2020/lib/core/identity/identity.component.mjs +67 -0
- package/esm2020/lib/core/info/attachment-info.service.mjs +51 -0
- package/esm2020/lib/core/info/document-info.service.mjs +21 -0
- package/esm2020/lib/core/info/location-info.component.mjs +61 -0
- package/esm2020/lib/core/info/map-info.mjs +40 -0
- package/esm2020/lib/core/layout/autocomplete.field.mjs +60 -0
- package/esm2020/lib/core/layout/checkbox.field.mjs +41 -0
- package/esm2020/lib/core/layout/checkbox.mjs +35 -0
- package/esm2020/lib/core/layout/date-range.field.mjs +53 -0
- package/esm2020/lib/core/layout/date.field.mjs +52 -0
- package/esm2020/lib/core/layout/expression.field.mjs +51 -0
- package/esm2020/lib/core/layout/file.field.mjs +47 -0
- package/esm2020/lib/core/layout/html.field.mjs +48 -0
- package/esm2020/lib/core/layout/input.base.mjs +11 -0
- package/esm2020/lib/core/layout/input.field.mjs +64 -0
- package/esm2020/lib/core/layout/layout.component.mjs +196 -0
- package/esm2020/lib/core/layout/numeric.field.mjs +47 -0
- package/esm2020/lib/core/layout/select.field.mjs +82 -0
- package/esm2020/lib/core/layout/switch.field.mjs +41 -0
- package/esm2020/lib/core/layout/textarea.field.mjs +42 -0
- package/esm2020/lib/core/layout/timespan.field.mjs +50 -0
- package/esm2020/lib/core/lottie-animation.mjs +46 -0
- package/esm2020/lib/core/mailbox.service.mjs +410 -0
- package/esm2020/lib/core/models.mjs +40 -0
- package/esm2020/lib/core/none.component.mjs +40 -0
- package/esm2020/lib/core/pipes/action.pipe.mjs +25 -0
- package/esm2020/lib/core/pipes/calendar.pipe.mjs +72 -0
- package/esm2020/lib/core/pipes/date-format.pipe.mjs +19 -0
- package/esm2020/lib/core/pipes/daterange.pipe.mjs +62 -0
- package/esm2020/lib/core/pipes/difference.pipe.mjs +15 -0
- package/esm2020/lib/core/pipes/duration-format.pipe.mjs +48 -0
- package/esm2020/lib/core/pipes/duration.pipe.mjs +19 -0
- package/esm2020/lib/core/pipes/form.pipe.mjs +25 -0
- package/esm2020/lib/core/pipes/join.pipe.mjs +18 -0
- package/esm2020/lib/core/pipes/role.pipe.mjs +25 -0
- package/esm2020/lib/core/pipes/sanitize-html.pipe.mjs +18 -0
- package/esm2020/lib/core/pipes/sort.pipe.mjs +48 -0
- package/esm2020/lib/core/pipes/state.pipe.mjs +25 -0
- package/esm2020/lib/core/pipes/time-ago.pipe.mjs +66 -0
- package/esm2020/lib/core/pipes/translate.pipe.mjs +38 -0
- package/esm2020/lib/core/pipes/type-value.pipe.mjs +42 -0
- package/esm2020/lib/core/pipes/user-name.pipe.mjs +21 -0
- package/esm2020/lib/core/popup/popup-ref.mjs +20 -0
- package/esm2020/lib/core/popup/popup.component.mjs +37 -0
- package/esm2020/lib/core/popup/popup.service.mjs +148 -0
- package/esm2020/lib/core/popup/tooltip.directive.mjs +82 -0
- package/esm2020/lib/core/prompt/ask/ask.dialog.mjs +29 -0
- package/esm2020/lib/core/prompt/mask/mask.component.mjs +21 -0
- package/esm2020/lib/core/prompt.service.mjs +86 -0
- package/esm2020/lib/core/router.mjs +37 -0
- package/esm2020/lib/core/session.service.mjs +256 -0
- package/esm2020/lib/core/slots/pane-ref.mjs +148 -0
- package/esm2020/lib/core/slots/router.directive.mjs +68 -0
- package/esm2020/lib/core/slots/router.service.mjs +30 -0
- package/esm2020/lib/core/slots/slots.component.mjs +1141 -0
- package/esm2020/lib/core/tagging/documents.component.mjs +25 -0
- package/esm2020/lib/core/tagging/edit-input.component.mjs +233 -0
- package/esm2020/lib/core/tagging/emoji.component.mjs +35 -0
- package/esm2020/lib/core/tagging/tagging-item.directive.mjs +39 -0
- package/esm2020/lib/core/tagging/tagging.component-base.mjs +29 -0
- package/esm2020/lib/core/tagging/tagging.directive.mjs +138 -0
- package/esm2020/lib/core/tagging/tagging.pipe.mjs +72 -0
- package/esm2020/lib/core/tagging/users.component.mjs +32 -0
- package/esm2020/lib/core/translate.service.mjs +124 -0
- package/esm2020/lib/core/translations.mjs +1139 -0
- package/esm2020/lib/core/window-title.service.mjs +53 -0
- package/esm2020/lib/cube/accum/accum.component.mjs +259 -0
- package/esm2020/lib/cube/chart/chart.component.mjs +341 -0
- package/esm2020/lib/cube/cube-info.service.mjs +100 -0
- package/esm2020/lib/cube/cube-menu.component.mjs +27 -0
- package/esm2020/lib/cube/cube-view.component.mjs +186 -0
- package/esm2020/lib/cube/cube.service.mjs +418 -0
- package/esm2020/lib/cube/declarations.mjs +2 -0
- package/esm2020/lib/cube/explore/document-item.component.mjs +38 -0
- package/esm2020/lib/cube/explore/explore-item.component.mjs +27 -0
- package/esm2020/lib/cube/explore/explore-items.component.mjs +186 -0
- package/esm2020/lib/cube/explore/explore.pane.component.mjs +83 -0
- package/esm2020/lib/cube/explore/item-resolver.service.mjs +32 -0
- package/esm2020/lib/cube/explore/item.pane.component.mjs +23 -0
- package/esm2020/lib/cube/filter/filter-tags.component.exp.mjs +75 -0
- package/esm2020/lib/cube/filter/filter.component.mjs +137 -0
- package/esm2020/lib/cube/grid/grid.component.mjs +218 -0
- package/esm2020/lib/cube/grid/spreadsheet.component.mjs +367 -0
- package/esm2020/lib/cube/matrix/matrix.base.mjs +127 -0
- package/esm2020/lib/cube/matrix/matrix.mobile.component.mjs +63 -0
- package/esm2020/lib/cube/matrix/matrix.pane.component.mjs +76 -0
- package/esm2020/lib/cube/matrix/popup.component.mjs +67 -0
- package/esm2020/lib/cube/matrix/table.component.mjs +493 -0
- package/esm2020/lib/cube/parallel/item.mjs +41 -0
- package/esm2020/lib/cube/parallel/parallel.component.mjs +159 -0
- package/esm2020/lib/cube/pivot/pivot.component.mjs +507 -0
- package/esm2020/lib/cube/sum/sum.component.mjs +404 -0
- package/esm2020/lib/cube/view-base.mjs +79 -0
- package/esm2020/lib/cube/view.mobile.component.mjs +127 -0
- package/esm2020/lib/cube/view.pane.component.mjs +88 -0
- package/esm2020/lib/dashboard/actions/actions.widget.mjs +126 -0
- package/esm2020/lib/dashboard/cube/accum-cube.widget.mjs +145 -0
- package/esm2020/lib/dashboard/cube/compare.widget.mjs +215 -0
- package/esm2020/lib/dashboard/cube/cube-analysis.base.mjs +90 -0
- package/esm2020/lib/dashboard/cube/cube-analysis.widget.mjs +53 -0
- package/esm2020/lib/dashboard/cube/cube-chart.widget.mjs +144 -0
- package/esm2020/lib/dashboard/cube/documents.widget.mjs +64 -0
- package/esm2020/lib/dashboard/cube/filter/filter.component.mjs +61 -0
- package/esm2020/lib/dashboard/dashboard.component.mjs +55 -0
- package/esm2020/lib/dashboard/dashboard.pane.component.mjs +24 -0
- package/esm2020/lib/dashboard/recents/recents.widget.mjs +98 -0
- package/esm2020/lib/dashboard/score/activity.widget.mjs +173 -0
- package/esm2020/lib/dashboard/score/compare-groups.widget.mjs +206 -0
- package/esm2020/lib/dashboard/score/peers-performance.widget.mjs +253 -0
- package/esm2020/lib/dashboard/score/pending-results.widget.mjs +60 -0
- package/esm2020/lib/dashboard/score/personal-score.widget.mjs +223 -0
- package/esm2020/lib/dashboard/widget-item.component.mjs +90 -0
- package/esm2020/lib/dashboard/widget-ref.mjs +18 -0
- package/esm2020/lib/desktop.module.mjs +144 -0
- package/esm2020/lib/home/about/about.dialog.mjs +26 -0
- package/esm2020/lib/home/home-base.component.mjs +91 -0
- package/esm2020/lib/home/home.desktop.component.mjs +221 -0
- package/esm2020/lib/home/home.mobile.component.mjs +116 -0
- package/esm2020/lib/home/notifications/notifications.component.mjs +67 -0
- package/esm2020/lib/home/options/options.component.mjs +94 -0
- package/esm2020/lib/home/outofoffice/outofoffice.component.mjs +38 -0
- package/esm2020/lib/home/search.service.mjs +75 -0
- package/esm2020/lib/home/sign/sign.component.mjs +54 -0
- package/esm2020/lib/home/tools.component.mjs +82 -0
- package/esm2020/lib/impersonate/impersonate.component.mjs +65 -0
- package/esm2020/lib/mobile.module.mjs +59 -0
- package/esm2020/lib/modules/chart.module.mjs +39 -0
- package/esm2020/lib/modules/circular-gauge.module.mjs +17 -0
- package/esm2020/lib/modules/date.adapter.mjs +23 -0
- package/esm2020/lib/modules/datepicker.intl.mjs +39 -0
- package/esm2020/lib/modules/dayjs.module.mjs +41 -0
- package/esm2020/lib/modules/diagram.module.mjs +35 -0
- package/esm2020/lib/modules/gantt.module.mjs +18 -0
- package/esm2020/lib/modules/grid.module.mjs +23 -0
- package/esm2020/lib/modules/material.module.mjs +188 -0
- package/esm2020/lib/modules/paginator.intl.mjs +21 -0
- package/esm2020/lib/modules/pivot.module.mjs +24 -0
- package/esm2020/lib/modules/schedule.module.mjs +21 -0
- package/esm2020/lib/modules/spreadsheet.module.mjs +30 -0
- package/esm2020/lib/modules/stepper.intl.mjs +17 -0
- package/esm2020/lib/modules/texteditor.module.mjs +27 -0
- package/esm2020/lib/notifications/filter.component.mjs +25 -0
- package/esm2020/lib/notifications/notifications-table.component.mjs +106 -0
- package/esm2020/lib/notifications/notifications.component-base.mjs +47 -0
- package/esm2020/lib/notifications/notifications.mobile.component.mjs +20 -0
- package/esm2020/lib/notifications/notifications.pane.component.mjs +23 -0
- package/esm2020/lib/notifications/notifications.service.mjs +71 -0
- package/esm2020/lib/notifications/types/commented.notification.mjs +53 -0
- package/esm2020/lib/notifications/types/cube-anomaly.notification.mjs +58 -0
- package/esm2020/lib/notifications/types/escalated.notification.mjs +33 -0
- package/esm2020/lib/notifications/types/liked.notification.mjs +50 -0
- package/esm2020/lib/notifications/types/long-running-task.notification.mjs +31 -0
- package/esm2020/lib/notifications/types/notification-base.mjs +40 -0
- package/esm2020/lib/notifications/types/nudge.notification.mjs +31 -0
- package/esm2020/lib/notifications/types/state-changed.notification.mjs +30 -0
- package/esm2020/lib/notifications/types/tagged.notification.mjs +43 -0
- package/esm2020/lib/notifications/types/text.notification.mjs +20 -0
- package/esm2020/lib/notifications/types/upcoming-event.notification.mjs +36 -0
- package/esm2020/lib/options/options.component.mjs +248 -0
- package/esm2020/lib/options/options.service.mjs +38 -0
- package/esm2020/lib/reports/arguments-component.mjs +83 -0
- package/esm2020/lib/reports/cube/documents.component.mjs +40 -0
- package/esm2020/lib/reports/cube/grid-documents.component.mjs +72 -0
- package/esm2020/lib/reports/cube/table-documents.component.mjs +56 -0
- package/esm2020/lib/reports/cube/usage-args.component.mjs +61 -0
- package/esm2020/lib/reports/cube/usage-base.mjs +79 -0
- package/esm2020/lib/reports/cube/usage-chart.component.mjs +357 -0
- package/esm2020/lib/reports/cube/usage-pivot.component.mjs +256 -0
- package/esm2020/lib/reports/cube/usage.component.mjs +40 -0
- package/esm2020/lib/reports/report-ref.mjs +31 -0
- package/esm2020/lib/reports/report-viewer.component.mjs +151 -0
- package/esm2020/lib/reports/report.mobile.component.mjs +128 -0
- package/esm2020/lib/reports/report.pane.component.mjs +96 -0
- package/esm2020/lib/reports/reports-menu.component.mjs +26 -0
- package/esm2020/lib/reports/substitution/substitution.component.mjs +40 -0
- package/esm2020/lib/reports/table/table-view.component.mjs +41 -0
- package/esm2020/lib/reports/tasks/tasks.component.mjs +95 -0
- package/esm2020/lib/routes.desktop.mjs +197 -0
- package/esm2020/lib/routes.mobile.mjs +69 -0
- package/esm2020/lib/scheduler/schedule.component.mjs +166 -0
- package/esm2020/lib/scheduler/scheduler.mobile.component.mjs +37 -0
- package/esm2020/lib/scheduler/scheduler.pane.component.mjs +53 -0
- package/esm2020/lib/shared.module.mjs +518 -0
- package/esm2020/lib/system.module.mjs +113 -0
- package/esm2020/lib/views/cube/chart.component.mjs +75 -0
- package/esm2020/lib/views/cube/cube-base.mjs +96 -0
- package/esm2020/lib/views/cube/explore.component.mjs +83 -0
- package/esm2020/lib/views/cube/matrix.component.mjs +97 -0
- package/esm2020/lib/views/cube/parallel.component.mjs +54 -0
- package/esm2020/lib/views/cube/pivot.component.mjs +51 -0
- package/esm2020/lib/views/cube/sum.component.mjs +64 -0
- package/esm2020/lib/views/cube/view.component.mjs +102 -0
- package/esm2020/lib/views/document-view-ref.mjs +27 -0
- package/esm2020/lib/views/timeline/timeline.component.exp.mjs +313 -0
- package/esm2020/lib/views/view-item.component.mjs +67 -0
- package/esm2020/lib/views/views.component.mjs +33 -0
- package/esm2020/lib/views/views.mobile.component.mjs +20 -0
- package/esm2020/lib/views/views.pane.component.mjs +35 -0
- package/esm2020/public-api.mjs +144 -0
- package/fesm2015/bizdoc-core.mjs +30730 -0
- package/fesm2015/bizdoc-core.mjs.map +1 -0
- package/fesm2020/bizdoc-core.mjs +30508 -0
- package/fesm2020/bizdoc-core.mjs.map +1 -0
- package/lib/admin/admin-dismiss.service.d.ts +14 -0
- package/lib/admin/admin-menu.component.d.ts +12 -0
- package/lib/admin/core/ace.input.d.ts +52 -0
- package/lib/admin/core/color-picker.input.d.ts +64 -0
- package/lib/admin/core/search.input.d.ts +13 -0
- package/lib/admin/diff/configuration-diff.component.d.ts +116 -0
- package/lib/admin/document-trace/document-trace.component.d.ts +98 -0
- package/lib/admin/document-trace/reassign.dialog.d.ts +22 -0
- package/lib/admin/document-trace/timeline.d.ts +40 -0
- package/lib/admin/document-trace/trace-element.component.d.ts +51 -0
- package/lib/admin/form/form.resolve.service.d.ts +12 -0
- package/lib/admin/form/form.service.d.ts +30 -0
- package/lib/admin/form/workflow/node-ref.d.ts +7 -0
- package/lib/admin/form/workflow/node.component.d.ts +37 -0
- package/lib/admin/form/workflow/role-node.component.d.ts +22 -0
- package/lib/admin/form/workflow/workflow.component.d.ts +76 -0
- package/lib/admin/indices/manage-cube-index.component.d.ts +54 -0
- package/lib/admin/patterns/patterns.component.d.ts +79 -0
- package/lib/admin/permissions/permissions.component.d.ts +45 -0
- package/lib/admin/positions/positions-popup.component.d.ts +39 -0
- package/lib/admin/positions/positions.component.d.ts +117 -0
- package/lib/admin/profiler/outofoffice.component.d.ts +48 -0
- package/lib/admin/profiler/profiler.component.d.ts +116 -0
- package/lib/admin/utility-ref.d.ts +19 -0
- package/lib/admin/utility-wrapper.component.d.ts +28 -0
- package/lib/admin/utility.pane.component.d.ts +24 -0
- package/lib/app.component.d.ts +24 -0
- package/lib/bizdoc.module.d.ts +18 -0
- package/lib/browse/browse-items.component.d.ts +103 -0
- package/lib/browse/browse.mobile.component.d.ts +39 -0
- package/lib/browse/browse.pane.component.d.ts +50 -0
- package/lib/browse/expanded-item/expanded-item.component.d.ts +67 -0
- package/lib/browse/filter/filter.component.d.ts +71 -0
- package/lib/browse/folders-menu.component.d.ts +22 -0
- package/lib/chat/chat-info.d.ts +37 -0
- package/lib/chat/chat.mobile.component.d.ts +10 -0
- package/lib/chat/chat.service.d.ts +38 -0
- package/lib/chat/contacts.component.d.ts +38 -0
- package/lib/chat/contacts.pane.component.d.ts +12 -0
- package/lib/chat/conversation.component.d.ts +56 -0
- package/lib/chat/conversation.pane.component.d.ts +16 -0
- package/lib/compose/action/action-picker.component.d.ts +25 -0
- package/lib/compose/action/action-ref.d.ts +10 -0
- package/lib/compose/action/action.base.d.ts +15 -0
- package/lib/compose/action/action.dialog.d.ts +29 -0
- package/lib/compose/action/action.pane.dialog.exp.d.ts +31 -0
- package/lib/compose/action/assign-action.component.d.ts +30 -0
- package/lib/compose/action/moveto-action.component.d.ts +36 -0
- package/lib/compose/action/return-action.component.d.ts +19 -0
- package/lib/compose/attachments/attachments.component.d.ts +35 -0
- package/lib/compose/attachments/preview/attachment-preview.component.d.ts +49 -0
- package/lib/compose/attachments/progress-button.directive.d.ts +12 -0
- package/lib/compose/can-deactivate-changes.service.d.ts +12 -0
- package/lib/compose/comments/Comments.pane.component.d.ts +18 -0
- package/lib/compose/comments/comment.component.d.ts +51 -0
- package/lib/compose/comments/comments.component.d.ts +66 -0
- package/lib/compose/comments/edit-comment.component.d.ts +25 -0
- package/lib/compose/comments/edits.component.d.ts +26 -0
- package/lib/compose/comments/quick-comment.component.exp.d.ts +28 -0
- package/lib/compose/comments/votes.component.d.ts +22 -0
- package/lib/compose/compose-resolve.service.d.ts +27 -0
- package/lib/compose/compose.mobile.component.d.ts +42 -0
- package/lib/compose/compose.pane.component.d.ts +58 -0
- package/lib/compose/copy/copy.dialog.d.ts +23 -0
- package/lib/compose/dismiss.service.d.ts +12 -0
- package/lib/compose/document-resolver.service.d.ts +12 -0
- package/lib/compose/document.component.d.ts +18 -0
- package/lib/compose/document.mobile.component.d.ts +10 -0
- package/lib/compose/document.pane.component.d.ts +12 -0
- package/lib/compose/events/events.component.d.ts +13 -0
- package/lib/compose/form-ref.d.ts +30 -0
- package/lib/compose/form-selector/form-selector.sheet.d.ts +28 -0
- package/lib/compose/form.component.d.ts +101 -0
- package/lib/compose/new-menu.component.d.ts +36 -0
- package/lib/compose/privilage.directive.d.ts +26 -0
- package/lib/compose/recipient-resolver.service.d.ts +12 -0
- package/lib/compose/save-changes.dialog.d.ts +7 -0
- package/lib/compose/state.component.d.ts +12 -0
- package/lib/compose/tag/tags.component.d.ts +36 -0
- package/lib/compose/trace/flow.component.d.ts +59 -0
- package/lib/compose/trace/people.component.d.ts +18 -0
- package/lib/compose/trace/trace.base.d.ts +28 -0
- package/lib/compose/trace/trace.component.d.ts +55 -0
- package/lib/compose/trace/trace.pane.component.d.ts +20 -0
- package/lib/compose/version-compare/version-compare.component.d.ts +24 -0
- package/lib/compose/version-compare/version-compare.directive.d.ts +89 -0
- package/lib/compose/version-compare/version.pane.component.d.ts +21 -0
- package/lib/core/NgComponentOutlet.d.ts +15 -0
- package/lib/core/account.service.d.ts +18 -0
- package/lib/core/animated-icon/animated-icon.directive.d.ts +7 -0
- package/lib/core/animations.d.ts +26 -0
- package/lib/core/authentication.d.ts +6 -0
- package/lib/core/avatar/avatar.component.d.ts +34 -0
- package/lib/core/base.d.ts +31 -0
- package/lib/core/colors.d.ts +6 -0
- package/lib/core/component-factory-resolver.d.ts +12 -0
- package/lib/core/configuration.d.ts +113 -0
- package/lib/core/controls/address.input.d.ts +65 -0
- package/lib/core/controls/auto-complete.input.d.ts +86 -0
- package/lib/core/controls/combination-picker-body.d.ts +114 -0
- package/lib/core/controls/combination-picker.d.ts +82 -0
- package/lib/core/controls/combination-pool.d.ts +42 -0
- package/lib/core/controls/file.input.d.ts +99 -0
- package/lib/core/controls/select.input.d.ts +84 -0
- package/lib/core/controls/time-picker.d.ts +52 -0
- package/lib/core/controls/timespan.input.d.ts +55 -0
- package/lib/core/datasource.service.d.ts +46 -0
- package/lib/core/decorators.d.ts +17 -0
- package/lib/core/firebase.service.d.ts +17 -0
- package/lib/core/functions.d.ts +54 -0
- package/lib/core/guide/guide.component.d.ts +32 -0
- package/lib/core/guide/guide.service.d.ts +38 -0
- package/lib/core/guide/help-tip.component.d.ts +16 -0
- package/lib/core/http.interceptor.d.ts +21 -0
- package/lib/core/hub.service.d.ts +133 -0
- package/lib/core/identity/identity.component.d.ts +29 -0
- package/lib/core/info/attachment-info.service.d.ts +17 -0
- package/lib/core/info/document-info.service.d.ts +14 -0
- package/lib/core/info/location-info.component.d.ts +28 -0
- package/lib/core/info/map-info.d.ts +15 -0
- package/lib/core/layout/autocomplete.field.d.ts +21 -0
- package/lib/core/layout/checkbox.d.ts +10 -0
- package/lib/core/layout/checkbox.field.d.ts +11 -0
- package/lib/core/layout/date-range.field.d.ts +13 -0
- package/lib/core/layout/date.field.d.ts +11 -0
- package/lib/core/layout/expression.field.d.ts +12 -0
- package/lib/core/layout/file.field.d.ts +14 -0
- package/lib/core/layout/html.field.d.ts +12 -0
- package/lib/core/layout/input.base.d.ts +10 -0
- package/lib/core/layout/input.field.d.ts +14 -0
- package/lib/core/layout/layout.component.d.ts +33 -0
- package/lib/core/layout/numeric.field.d.ts +11 -0
- package/lib/core/layout/select.field.d.ts +22 -0
- package/lib/core/layout/switch.field.d.ts +11 -0
- package/lib/core/layout/textarea.field.d.ts +11 -0
- package/lib/core/layout/timespan.field.d.ts +11 -0
- package/lib/core/lottie-animation.d.ts +14 -0
- package/lib/core/mailbox.service.d.ts +142 -0
- package/lib/core/models.d.ts +652 -0
- package/lib/core/none.component.d.ts +9 -0
- package/lib/core/pipes/action.pipe.d.ts +10 -0
- package/lib/core/pipes/calendar.pipe.d.ts +27 -0
- package/lib/core/pipes/date-format.pipe.d.ts +8 -0
- package/lib/core/pipes/daterange.pipe.d.ts +15 -0
- package/lib/core/pipes/difference.pipe.d.ts +7 -0
- package/lib/core/pipes/duration-format.pipe.d.ts +11 -0
- package/lib/core/pipes/duration.pipe.d.ts +8 -0
- package/lib/core/pipes/form.pipe.d.ts +10 -0
- package/lib/core/pipes/join.pipe.d.ts +10 -0
- package/lib/core/pipes/role.pipe.d.ts +10 -0
- package/lib/core/pipes/sanitize-html.pipe.d.ts +10 -0
- package/lib/core/pipes/sort.pipe.d.ts +12 -0
- package/lib/core/pipes/state.pipe.d.ts +10 -0
- package/lib/core/pipes/time-ago.pipe.d.ts +16 -0
- package/lib/core/pipes/translate.pipe.d.ts +18 -0
- package/lib/core/pipes/type-value.pipe.d.ts +15 -0
- package/lib/core/pipes/user-name.pipe.d.ts +11 -0
- package/lib/core/popup/popup-ref.d.ts +14 -0
- package/lib/core/popup/popup.component.d.ts +22 -0
- package/lib/core/popup/popup.service.d.ts +24 -0
- package/lib/core/popup/tooltip.directive.d.ts +29 -0
- package/lib/core/prompt/ask/ask.dialog.d.ts +22 -0
- package/lib/core/prompt/mask/mask.component.d.ts +10 -0
- package/lib/core/prompt.service.d.ts +36 -0
- package/lib/core/router.d.ts +22 -0
- package/lib/core/session.service.d.ts +82 -0
- package/lib/core/slots/pane-ref.d.ts +135 -0
- package/lib/core/slots/router.directive.d.ts +25 -0
- package/lib/core/slots/router.service.d.ts +36 -0
- package/lib/core/slots/slots.component.d.ts +212 -0
- package/lib/core/tagging/documents.component.d.ts +11 -0
- package/lib/core/tagging/edit-input.component.d.ts +65 -0
- package/lib/core/tagging/emoji.component.d.ts +18 -0
- package/lib/core/tagging/tagging-item.directive.d.ts +15 -0
- package/lib/core/tagging/tagging.component-base.d.ts +19 -0
- package/lib/core/tagging/tagging.directive.d.ts +34 -0
- package/lib/core/tagging/tagging.pipe.d.ts +24 -0
- package/lib/core/tagging/users.component.d.ts +15 -0
- package/lib/core/translate.service.d.ts +31 -0
- package/lib/core/translations.d.ts +1132 -0
- package/lib/core/window-title.service.d.ts +21 -0
- package/lib/cube/accum/accum.component.d.ts +63 -0
- package/lib/cube/chart/chart.component.d.ts +74 -0
- package/lib/cube/cube-info.service.d.ts +77 -0
- package/lib/cube/cube-menu.component.d.ts +12 -0
- package/lib/cube/cube-view.component.d.ts +31 -0
- package/lib/cube/cube.service.d.ts +268 -0
- package/lib/cube/declarations.d.ts +23 -0
- package/lib/cube/explore/document-item.component.d.ts +16 -0
- package/lib/cube/explore/explore-item.component.d.ts +14 -0
- package/lib/cube/explore/explore-items.component.d.ts +57 -0
- package/lib/cube/explore/explore.pane.component.d.ts +30 -0
- package/lib/cube/explore/item-resolver.service.d.ts +20 -0
- package/lib/cube/explore/item.pane.component.d.ts +13 -0
- package/lib/cube/filter/filter-tags.component.exp.d.ts +31 -0
- package/lib/cube/filter/filter.component.d.ts +44 -0
- package/lib/cube/grid/grid.component.d.ts +59 -0
- package/lib/cube/grid/spreadsheet.component.d.ts +62 -0
- package/lib/cube/matrix/matrix.base.d.ts +72 -0
- package/lib/cube/matrix/matrix.mobile.component.d.ts +22 -0
- package/lib/cube/matrix/matrix.pane.component.d.ts +36 -0
- package/lib/cube/matrix/popup.component.d.ts +21 -0
- package/lib/cube/matrix/table.component.d.ts +100 -0
- package/lib/cube/parallel/item.d.ts +13 -0
- package/lib/cube/parallel/parallel.component.d.ts +52 -0
- package/lib/cube/pivot/pivot.component.d.ts +103 -0
- package/lib/cube/sum/sum.component.d.ts +81 -0
- package/lib/cube/view-base.d.ts +39 -0
- package/lib/cube/view.mobile.component.d.ts +46 -0
- package/lib/cube/view.pane.component.d.ts +27 -0
- package/lib/dashboard/actions/actions.widget.d.ts +39 -0
- package/lib/dashboard/cube/accum-cube.widget.d.ts +33 -0
- package/lib/dashboard/cube/compare.widget.d.ts +53 -0
- package/lib/dashboard/cube/cube-analysis.base.d.ts +59 -0
- package/lib/dashboard/cube/cube-analysis.widget.d.ts +17 -0
- package/lib/dashboard/cube/cube-chart.widget.d.ts +32 -0
- package/lib/dashboard/cube/documents.widget.d.ts +30 -0
- package/lib/dashboard/cube/filter/filter.component.d.ts +22 -0
- package/lib/dashboard/dashboard.component.d.ts +24 -0
- package/lib/dashboard/dashboard.pane.component.d.ts +8 -0
- package/lib/dashboard/recents/recents.widget.d.ts +40 -0
- package/lib/dashboard/score/activity.widget.d.ts +50 -0
- package/lib/dashboard/score/compare-groups.widget.d.ts +51 -0
- package/lib/dashboard/score/peers-performance.widget.d.ts +65 -0
- package/lib/dashboard/score/pending-results.widget.d.ts +27 -0
- package/lib/dashboard/score/personal-score.widget.d.ts +57 -0
- package/lib/dashboard/widget-item.component.d.ts +33 -0
- package/lib/dashboard/widget-ref.d.ts +11 -0
- package/lib/desktop.module.d.ts +45 -0
- package/lib/home/about/about.dialog.d.ts +14 -0
- package/lib/home/home-base.component.d.ts +34 -0
- package/lib/home/home.desktop.component.d.ts +60 -0
- package/lib/home/home.mobile.component.d.ts +38 -0
- package/lib/home/notifications/notifications.component.d.ts +28 -0
- package/lib/home/options/options.component.d.ts +46 -0
- package/lib/home/outofoffice/outofoffice.component.d.ts +19 -0
- package/lib/home/search.service.d.ts +23 -0
- package/lib/home/sign/sign.component.d.ts +17 -0
- package/lib/home/tools.component.d.ts +36 -0
- package/lib/impersonate/impersonate.component.d.ts +27 -0
- package/lib/mobile.module.d.ts +25 -0
- package/lib/modules/chart.module.d.ts +7 -0
- package/lib/modules/circular-gauge.module.d.ts +7 -0
- package/lib/modules/date.adapter.d.ts +10 -0
- package/lib/modules/datepicker.intl.d.ts +30 -0
- package/lib/modules/dayjs.module.d.ts +6 -0
- package/lib/modules/diagram.module.d.ts +8 -0
- package/lib/modules/gantt.module.d.ts +7 -0
- package/lib/modules/grid.module.d.ts +7 -0
- package/lib/modules/material.module.d.ts +45 -0
- package/lib/modules/paginator.intl.d.ts +14 -0
- package/lib/modules/pivot.module.d.ts +7 -0
- package/lib/modules/schedule.module.d.ts +7 -0
- package/lib/modules/spreadsheet.module.d.ts +8 -0
- package/lib/modules/stepper.intl.d.ts +10 -0
- package/lib/modules/texteditor.module.d.ts +8 -0
- package/lib/notifications/filter.component.d.ts +9 -0
- package/lib/notifications/notifications-table.component.d.ts +32 -0
- package/lib/notifications/notifications.component-base.d.ts +12 -0
- package/lib/notifications/notifications.mobile.component.d.ts +8 -0
- package/lib/notifications/notifications.pane.component.d.ts +8 -0
- package/lib/notifications/notifications.service.d.ts +24 -0
- package/lib/notifications/types/commented.notification.d.ts +26 -0
- package/lib/notifications/types/cube-anomaly.notification.d.ts +29 -0
- package/lib/notifications/types/escalated.notification.d.ts +25 -0
- package/lib/notifications/types/liked.notification.d.ts +25 -0
- package/lib/notifications/types/long-running-task.notification.d.ts +21 -0
- package/lib/notifications/types/notification-base.d.ts +20 -0
- package/lib/notifications/types/nudge.notification.d.ts +23 -0
- package/lib/notifications/types/state-changed.notification.d.ts +22 -0
- package/lib/notifications/types/tagged.notification.d.ts +26 -0
- package/lib/notifications/types/text.notification.d.ts +13 -0
- package/lib/notifications/types/upcoming-event.notification.d.ts +20 -0
- package/lib/options/options.component.d.ts +67 -0
- package/lib/options/options.service.d.ts +14 -0
- package/lib/reports/arguments-component.d.ts +27 -0
- package/lib/reports/cube/documents.component.d.ts +34 -0
- package/lib/reports/cube/grid-documents.component.d.ts +28 -0
- package/lib/reports/cube/table-documents.component.d.ts +28 -0
- package/lib/reports/cube/usage-args.component.d.ts +21 -0
- package/lib/reports/cube/usage-base.d.ts +72 -0
- package/lib/reports/cube/usage-chart.component.d.ts +62 -0
- package/lib/reports/cube/usage-pivot.component.d.ts +66 -0
- package/lib/reports/cube/usage.component.d.ts +16 -0
- package/lib/reports/report-ref.d.ts +27 -0
- package/lib/reports/report-viewer.component.d.ts +47 -0
- package/lib/reports/report.mobile.component.d.ts +48 -0
- package/lib/reports/report.pane.component.d.ts +37 -0
- package/lib/reports/reports-menu.component.d.ts +12 -0
- package/lib/reports/substitution/substitution.component.d.ts +23 -0
- package/lib/reports/table/table-view.component.d.ts +19 -0
- package/lib/reports/tasks/tasks.component.d.ts +68 -0
- package/lib/routes.desktop.d.ts +2 -0
- package/lib/routes.mobile.d.ts +2 -0
- package/lib/scheduler/schedule.component.d.ts +43 -0
- package/lib/scheduler/scheduler.mobile.component.d.ts +14 -0
- package/lib/scheduler/scheduler.pane.component.d.ts +20 -0
- package/lib/shared.module.d.ts +192 -0
- package/lib/system.module.d.ts +34 -0
- package/lib/views/cube/chart.component.d.ts +39 -0
- package/lib/views/cube/cube-base.d.ts +46 -0
- package/lib/views/cube/explore.component.d.ts +43 -0
- package/lib/views/cube/matrix.component.d.ts +51 -0
- package/lib/views/cube/parallel.component.d.ts +32 -0
- package/lib/views/cube/pivot.component.d.ts +34 -0
- package/lib/views/cube/sum.component.d.ts +33 -0
- package/lib/views/cube/view.component.d.ts +40 -0
- package/lib/views/document-view-ref.d.ts +18 -0
- package/lib/views/timeline/timeline.component.exp.d.ts +66 -0
- package/lib/views/view-item.component.d.ts +28 -0
- package/lib/views/views.component.d.ts +18 -0
- package/lib/views/views.mobile.component.d.ts +10 -0
- package/lib/views/views.pane.component.d.ts +13 -0
- package/package.json +78 -78
- package/public-api.d.ts +146 -0
- package/LICENSE.md +0 -1
- package/karma.conf.js +0 -44
- package/ng-package.json +0 -11
- package/src/icons/pdf.svg +0 -24
- package/src/icons/word.svg +0 -13
- package/src/lib/admin/_admin-theme.scss +0 -6
- package/src/lib/admin/admin-dismiss.service.ts +0 -24
- package/src/lib/admin/admin-menu.component.html +0 -18
- package/src/lib/admin/admin-menu.component.ts +0 -20
- package/src/lib/admin/core/ace.input.ts +0 -133
- package/src/lib/admin/core/color-picker.input.scss +0 -17
- package/src/lib/admin/core/color-picker.input.ts +0 -175
- package/src/lib/admin/core/search.input.ts +0 -32
- package/src/lib/admin/diff/_configuration-diff-theme.scss +0 -84
- package/src/lib/admin/diff/configuration-diff.component.html +0 -24
- package/src/lib/admin/diff/configuration-diff.component.scss +0 -16
- package/src/lib/admin/diff/configuration-diff.component.ts +0 -552
- package/src/lib/admin/document-trace/Timeline.ts +0 -45
- package/src/lib/admin/document-trace/_timeline-theme.scss +0 -70
- package/src/lib/admin/document-trace/document-trace.component.html +0 -96
- package/src/lib/admin/document-trace/document-trace.component.scss +0 -16
- package/src/lib/admin/document-trace/document-trace.component.ts +0 -526
- package/src/lib/admin/document-trace/reassign.dialog.html +0 -24
- package/src/lib/admin/document-trace/reassign.dialog.ts +0 -34
- package/src/lib/admin/document-trace/trace-element.component.html +0 -55
- package/src/lib/admin/document-trace/trace-element.component.scss +0 -23
- package/src/lib/admin/document-trace/trace-element.component.ts +0 -139
- package/src/lib/admin/form/form.resolve.service.ts +0 -13
- package/src/lib/admin/form/form.service.ts +0 -49
- package/src/lib/admin/form/workflow/node-ref.ts +0 -8
- package/src/lib/admin/form/workflow/node.component.html +0 -36
- package/src/lib/admin/form/workflow/node.component.scss +0 -4
- package/src/lib/admin/form/workflow/node.component.ts +0 -129
- package/src/lib/admin/form/workflow/role-node.component.html +0 -40
- package/src/lib/admin/form/workflow/role-node.component.ts +0 -66
- package/src/lib/admin/form/workflow/tools.component.exp.ts +0 -13
- package/src/lib/admin/form/workflow/tools.component.html +0 -1
- package/src/lib/admin/form/workflow/workflow.component.html +0 -66
- package/src/lib/admin/form/workflow/workflow.component.scss +0 -57
- package/src/lib/admin/form/workflow/workflow.component.ts +0 -438
- package/src/lib/admin/indices/manage-cube-index.component.html +0 -35
- package/src/lib/admin/indices/manage-cube-index.component.scss +0 -16
- package/src/lib/admin/indices/manage-cube-index.component.ts +0 -155
- package/src/lib/admin/patterns/patterns.component.html +0 -70
- package/src/lib/admin/patterns/patterns.component.ts +0 -166
- package/src/lib/admin/permissions/permissions.component.html +0 -21
- package/src/lib/admin/permissions/permissions.component.scss +0 -7
- package/src/lib/admin/permissions/permissions.component.ts +0 -89
- package/src/lib/admin/positions/positions-popup.component.html +0 -23
- package/src/lib/admin/positions/positions-popup.component.ts +0 -68
- package/src/lib/admin/positions/positions.component.html +0 -150
- package/src/lib/admin/positions/positions.component.scss +0 -20
- package/src/lib/admin/positions/positions.component.ts +0 -464
- package/src/lib/admin/profiler/assign.component.html +0 -14
- package/src/lib/admin/profiler/outofoffice.component.html +0 -64
- package/src/lib/admin/profiler/outofoffice.component.ts +0 -146
- package/src/lib/admin/profiler/profiler.component.html +0 -110
- package/src/lib/admin/profiler/profiler.component.scss +0 -23
- package/src/lib/admin/profiler/profiler.component.ts +0 -302
- package/src/lib/admin/utility-ref.ts +0 -44
- package/src/lib/admin/utility-wrapper.component.ts +0 -52
- package/src/lib/admin/utility.pane.component.ts +0 -49
- package/src/lib/app.component.ts +0 -90
- package/src/lib/bizdoc.module.ts +0 -82
- package/src/lib/browse/_browse-theme.scss +0 -86
- package/src/lib/browse/browse-items.component.html +0 -171
- package/src/lib/browse/browse-items.component.scss +0 -52
- package/src/lib/browse/browse-items.component.ts +0 -460
- package/src/lib/browse/browse.mobile.component.html +0 -33
- package/src/lib/browse/browse.mobile.component.ts +0 -90
- package/src/lib/browse/browse.pane.component.html +0 -43
- package/src/lib/browse/browse.pane.component.scss +0 -4
- package/src/lib/browse/browse.pane.component.ts +0 -141
- package/src/lib/browse/expanded-item/expanded-item.component.html +0 -38
- package/src/lib/browse/expanded-item/expanded-item.component.scss +0 -35
- package/src/lib/browse/expanded-item/expanded-item.component.ts +0 -339
- package/src/lib/browse/filter/filter.component.html +0 -50
- package/src/lib/browse/filter/filter.component.scss +0 -10
- package/src/lib/browse/filter/filter.component.ts +0 -156
- package/src/lib/browse/folders-menu.component.html +0 -20
- package/src/lib/browse/folders-menu.component.scss +0 -15
- package/src/lib/browse/folders-menu.component.ts +0 -42
- package/src/lib/chat/_chat-theme.scss +0 -95
- package/src/lib/chat/chat-info.ts +0 -74
- package/src/lib/chat/chat-pool.component.exp.ts +0 -117
- package/src/lib/chat/chat-pool.component.html +0 -13
- package/src/lib/chat/chat-pool.component.scss +0 -10
- package/src/lib/chat/chat.mobile.component.html +0 -6
- package/src/lib/chat/chat.mobile.component.scss +0 -8
- package/src/lib/chat/chat.mobile.component.ts +0 -18
- package/src/lib/chat/chat.service.ts +0 -128
- package/src/lib/chat/contacts.component.html +0 -37
- package/src/lib/chat/contacts.component.scss +0 -49
- package/src/lib/chat/contacts.component.ts +0 -88
- package/src/lib/chat/contacts.pane.component.ts +0 -25
- package/src/lib/chat/conversation.component.html +0 -28
- package/src/lib/chat/conversation.component.scss +0 -14
- package/src/lib/chat/conversation.component.ts +0 -186
- package/src/lib/chat/conversation.pane.component.ts +0 -55
- package/src/lib/compose/_compose-theme.scss +0 -63
- package/src/lib/compose/action/action-picker.component.html +0 -25
- package/src/lib/compose/action/action-picker.component.scss +0 -4
- package/src/lib/compose/action/action-picker.component.ts +0 -72
- package/src/lib/compose/action/action-ref.ts +0 -19
- package/src/lib/compose/action/action.base.ts +0 -58
- package/src/lib/compose/action/action.dialog.html +0 -17
- package/src/lib/compose/action/action.dialog.scss +0 -1
- package/src/lib/compose/action/action.dialog.ts +0 -57
- package/src/lib/compose/action/action.pane.dialog.exp.ts +0 -77
- package/src/lib/compose/action/action.pane.dialog.html +0 -12
- package/src/lib/compose/action/assign-action.component.html +0 -23
- package/src/lib/compose/action/assign-action.component.ts +0 -57
- package/src/lib/compose/action/moveto-action.component.html +0 -33
- package/src/lib/compose/action/moveto-action.component.ts +0 -77
- package/src/lib/compose/action/return-action.component.html +0 -13
- package/src/lib/compose/action/return-action.component.ts +0 -42
- package/src/lib/compose/attachments/attachments.component.html +0 -23
- package/src/lib/compose/attachments/attachments.component.scss +0 -21
- package/src/lib/compose/attachments/attachments.component.ts +0 -114
- package/src/lib/compose/attachments/preview/attachment-preview.component.html +0 -17
- package/src/lib/compose/attachments/preview/attachment-preview.component.scss +0 -36
- package/src/lib/compose/attachments/preview/attachment-preview.component.ts +0 -140
- package/src/lib/compose/attachments/progress-button.directive.ts +0 -18
- package/src/lib/compose/can-deactivate-changes.service.ts +0 -22
- package/src/lib/compose/comments/_comments-theme.scss +0 -82
- package/src/lib/compose/comments/comment.component.html +0 -36
- package/src/lib/compose/comments/comment.component.ts +0 -160
- package/src/lib/compose/comments/comments.component.html +0 -27
- package/src/lib/compose/comments/comments.component.scss +0 -33
- package/src/lib/compose/comments/comments.component.ts +0 -220
- package/src/lib/compose/comments/comments.pane.component.ts +0 -41
- package/src/lib/compose/comments/edit-comment.component.html +0 -3
- package/src/lib/compose/comments/edit-comment.component.ts +0 -35
- package/src/lib/compose/comments/edits.component.html +0 -7
- package/src/lib/compose/comments/edits.component.ts +0 -33
- package/src/lib/compose/comments/quick-comment.component.exp.ts +0 -60
- package/src/lib/compose/comments/quick-comment.component.html +0 -5
- package/src/lib/compose/comments/quick-comment.component.scss +0 -11
- package/src/lib/compose/comments/votes.component.html +0 -7
- package/src/lib/compose/comments/votes.component.ts +0 -38
- package/src/lib/compose/compose-resolve.service.ts +0 -42
- package/src/lib/compose/compose.mobile.component.html +0 -67
- package/src/lib/compose/compose.mobile.component.scss +0 -14
- package/src/lib/compose/compose.mobile.component.ts +0 -97
- package/src/lib/compose/compose.pane.component.html +0 -68
- package/src/lib/compose/compose.pane.component.scss +0 -6
- package/src/lib/compose/compose.pane.component.ts +0 -188
- package/src/lib/compose/copy/copy.dialog.html +0 -21
- package/src/lib/compose/copy/copy.dialog.ts +0 -40
- package/src/lib/compose/dismiss.service.ts +0 -26
- package/src/lib/compose/document-resolver.service.ts +0 -13
- package/src/lib/compose/document.component.html +0 -5
- package/src/lib/compose/document.component.ts +0 -41
- package/src/lib/compose/document.mobile.component.ts +0 -20
- package/src/lib/compose/document.pane.component.ts +0 -22
- package/src/lib/compose/events/events.component.html +0 -6
- package/src/lib/compose/events/events.component.ts +0 -21
- package/src/lib/compose/form-ref.ts +0 -53
- package/src/lib/compose/form-selector/form-selector.sheet.html +0 -10
- package/src/lib/compose/form-selector/form-selector.sheet.ts +0 -84
- package/src/lib/compose/form.component.html +0 -13
- package/src/lib/compose/form.component.ts +0 -456
- package/src/lib/compose/maps/maps.component.html +0 -3
- package/src/lib/compose/maps/maps.component.ts +0 -22
- package/src/lib/compose/new-menu.component.html +0 -13
- package/src/lib/compose/new-menu.component.scss +0 -11
- package/src/lib/compose/new-menu.component.ts +0 -106
- package/src/lib/compose/privilage.directive.ts +0 -43
- package/src/lib/compose/recipient-resolver.service.ts +0 -15
- package/src/lib/compose/save-changes.dialog.html +0 -13
- package/src/lib/compose/save-changes.dialog.ts +0 -10
- package/src/lib/compose/state.component.ts +0 -29
- package/src/lib/compose/tag/tags.component.html +0 -22
- package/src/lib/compose/tag/tags.component.scss +0 -1
- package/src/lib/compose/tag/tags.component.ts +0 -83
- package/src/lib/compose/trace/flow.component.html +0 -19
- package/src/lib/compose/trace/flow.component.scss +0 -7
- package/src/lib/compose/trace/flow.component.ts +0 -747
- package/src/lib/compose/trace/people.component.ts +0 -33
- package/src/lib/compose/trace/trace.base.ts +0 -72
- package/src/lib/compose/trace/trace.component.html +0 -57
- package/src/lib/compose/trace/trace.component.scss +0 -21
- package/src/lib/compose/trace/trace.component.ts +0 -388
- package/src/lib/compose/trace/trace.pane.component.html +0 -3
- package/src/lib/compose/trace/trace.pane.component.scss +0 -5
- package/src/lib/compose/trace/trace.pane.component.ts +0 -47
- package/src/lib/compose/version-compare/_compare-theme.scss +0 -147
- package/src/lib/compose/version-compare/version-compare.component.ts +0 -49
- package/src/lib/compose/version-compare/version-compare.directive.ts +0 -292
- package/src/lib/compose/version-compare/version.pane.component.html +0 -19
- package/src/lib/compose/version-compare/version.pane.component.scss +0 -8
- package/src/lib/compose/version-compare/version.pane.component.ts +0 -53
- package/src/lib/core/NgComponentOutlet.ts +0 -31
- package/src/lib/core/account.service.ts +0 -30
- package/src/lib/core/animated-icon/animated-icon.directive.html +0 -3
- package/src/lib/core/animated-icon/animated-icon.directive.scss +0 -12
- package/src/lib/core/animated-icon/animated-icon.directive.ts +0 -41
- package/src/lib/core/animations.ts +0 -207
- package/src/lib/core/authentication.ts +0 -7
- package/src/lib/core/avatar/_avatar-theme.scss +0 -60
- package/src/lib/core/avatar/avatar.component.html +0 -6
- package/src/lib/core/avatar/avatar.component.ts +0 -108
- package/src/lib/core/base.ts +0 -43
- package/src/lib/core/can-activate.service.exp.ts +0 -31
- package/src/lib/core/colors.ts +0 -322
- package/src/lib/core/component-factory-resolver.ts +0 -67
- package/src/lib/core/configuration.ts +0 -124
- package/src/lib/core/controls/_daterange-theme.scss +0 -16
- package/src/lib/core/controls/address.input.ts +0 -173
- package/src/lib/core/controls/auto-complete.input.ts +0 -218
- package/src/lib/core/controls/combination-picker-body.html +0 -34
- package/src/lib/core/controls/combination-picker-body.scss +0 -40
- package/src/lib/core/controls/combination-picker-body.ts +0 -194
- package/src/lib/core/controls/combination-picker.html +0 -6
- package/src/lib/core/controls/combination-picker.scss +0 -9
- package/src/lib/core/controls/combination-picker.ts +0 -243
- package/src/lib/core/controls/combination-pool.html +0 -10
- package/src/lib/core/controls/combination-pool.scss +0 -35
- package/src/lib/core/controls/combination-pool.ts +0 -92
- package/src/lib/core/controls/file.input.html +0 -50
- package/src/lib/core/controls/file.input.scss +0 -41
- package/src/lib/core/controls/file.input.ts +0 -400
- package/src/lib/core/controls/select.input.ts +0 -210
- package/src/lib/core/controls/time-picker.html +0 -4
- package/src/lib/core/controls/time-picker.ts +0 -199
- package/src/lib/core/controls/timespan.input.ts +0 -175
- package/src/lib/core/datasource.service.ts +0 -80
- package/src/lib/core/decorators.ts +0 -56
- package/src/lib/core/firebase.service.ts +0 -55
- package/src/lib/core/functions.ts +0 -246
- package/src/lib/core/guide/_guide-theme.scss +0 -197
- package/src/lib/core/guide/guide.component.html +0 -20
- package/src/lib/core/guide/guide.component.ts +0 -222
- package/src/lib/core/guide/guide.service.ts +0 -108
- package/src/lib/core/guide/help-tip.component.ts +0 -43
- package/src/lib/core/http.interceptor.ts +0 -80
- package/src/lib/core/hub.service.ts +0 -202
- package/src/lib/core/identity/identity.component.html +0 -2
- package/src/lib/core/identity/identity.component.ts +0 -57
- package/src/lib/core/info/attachment-info.service.ts +0 -46
- package/src/lib/core/info/document-info.service.ts +0 -15
- package/src/lib/core/info/location-info.component.scss +0 -13
- package/src/lib/core/info/location-info.component.ts +0 -64
- package/src/lib/core/info/map-info.ts +0 -33
- package/src/lib/core/layout/autocomplete.field.ts +0 -41
- package/src/lib/core/layout/checkbox.field.ts +0 -21
- package/src/lib/core/layout/checkbox.scss +0 -13
- package/src/lib/core/layout/checkbox.ts +0 -21
- package/src/lib/core/layout/date-range.field.ts +0 -32
- package/src/lib/core/layout/date.field.ts +0 -26
- package/src/lib/core/layout/expression.field.ts +0 -26
- package/src/lib/core/layout/file.field.ts +0 -27
- package/src/lib/core/layout/html.field.ts +0 -28
- package/src/lib/core/layout/input.base.ts +0 -12
- package/src/lib/core/layout/input.field.ts +0 -43
- package/src/lib/core/layout/layout.component.scss +0 -9
- package/src/lib/core/layout/layout.component.ts +0 -189
- package/src/lib/core/layout/numeric.field.ts +0 -24
- package/src/lib/core/layout/select.field.ts +0 -52
- package/src/lib/core/layout/switch.field.ts +0 -21
- package/src/lib/core/layout/textarea.field.ts +0 -21
- package/src/lib/core/layout/timespan.field.ts +0 -25
- package/src/lib/core/lottie-animation.ts +0 -37
- package/src/lib/core/mailbox.service.ts +0 -471
- package/src/lib/core/models.ts +0 -685
- package/src/lib/core/none.component.scss +0 -26
- package/src/lib/core/none.component.ts +0 -28
- package/src/lib/core/pipes/action.pipe.ts +0 -18
- package/src/lib/core/pipes/calendar.pipe.ts +0 -84
- package/src/lib/core/pipes/date-format.pipe.ts +0 -12
- package/src/lib/core/pipes/daterange.pipe.ts +0 -45
- package/src/lib/core/pipes/difference.pipe.ts +0 -9
- package/src/lib/core/pipes/duration-format.pipe.ts +0 -42
- package/src/lib/core/pipes/duration.pipe.ts +0 -13
- package/src/lib/core/pipes/form.pipe.ts +0 -19
- package/src/lib/core/pipes/join.pipe.ts +0 -10
- package/src/lib/core/pipes/role.pipe.ts +0 -19
- package/src/lib/core/pipes/sanitize-html.pipe.ts +0 -10
- package/src/lib/core/pipes/sort.pipe.ts +0 -34
- package/src/lib/core/pipes/state.pipe.ts +0 -19
- package/src/lib/core/pipes/time-ago.pipe.ts +0 -59
- package/src/lib/core/pipes/translate.pipe.ts +0 -22
- package/src/lib/core/pipes/type-value.pipe.ts +0 -37
- package/src/lib/core/pipes/user-name.pipe.ts +0 -14
- package/src/lib/core/popup/_popup-theme.scss +0 -363
- package/src/lib/core/popup/popup-ref.ts +0 -19
- package/src/lib/core/popup/popup.component.html +0 -6
- package/src/lib/core/popup/popup.component.ts +0 -40
- package/src/lib/core/popup/popup.service.ts +0 -156
- package/src/lib/core/popup/tooltip.directive.ts +0 -58
- package/src/lib/core/prompt/ask/ask.dialog.html +0 -6
- package/src/lib/core/prompt/ask/ask.dialog.ts +0 -35
- package/src/lib/core/prompt/mask/mask.component.html +0 -1
- package/src/lib/core/prompt/mask/mask.component.scss +0 -14
- package/src/lib/core/prompt/mask/mask.component.ts +0 -15
- package/src/lib/core/prompt.service.ts +0 -81
- package/src/lib/core/router.ts +0 -31
- package/src/lib/core/session.service.ts +0 -265
- package/src/lib/core/slots/_slots-theme.scss +0 -139
- package/src/lib/core/slots/extended-tab.component.exp.ts +0 -35
- package/src/lib/core/slots/extended-tab.component.html +0 -0
- package/src/lib/core/slots/intro.pane.component.exp.ts +0 -23
- package/src/lib/core/slots/intro.pane.component.html +0 -22
- package/src/lib/core/slots/intro.pane.component.scss +0 -8
- package/src/lib/core/slots/pane-ref.ts +0 -188
- package/src/lib/core/slots/router.directive.ts +0 -53
- package/src/lib/core/slots/router.service.ts +0 -53
- package/src/lib/core/slots/slot.component.exp.ts +0 -49
- package/src/lib/core/slots/slot.component.html +0 -15
- package/src/lib/core/slots/slot.component.scss +0 -18
- package/src/lib/core/slots/slots.component.html +0 -68
- package/src/lib/core/slots/slots.component.scss +0 -163
- package/src/lib/core/slots/slots.component.ts +0 -1260
- package/src/lib/core/tagging/documents.component.html +0 -11
- package/src/lib/core/tagging/documents.component.ts +0 -19
- package/src/lib/core/tagging/edit-input.component.html +0 -41
- package/src/lib/core/tagging/edit-input.component.scss +0 -21
- package/src/lib/core/tagging/edit-input.component.ts +0 -211
- package/src/lib/core/tagging/emoji.component.ts +0 -23
- package/src/lib/core/tagging/tagging-item.directive.ts +0 -34
- package/src/lib/core/tagging/tagging.component-base.ts +0 -29
- package/src/lib/core/tagging/tagging.component.scss +0 -22
- package/src/lib/core/tagging/tagging.directive.ts +0 -130
- package/src/lib/core/tagging/tagging.pipe.ts +0 -76
- package/src/lib/core/tagging/users.component.html +0 -13
- package/src/lib/core/tagging/users.component.ts +0 -28
- package/src/lib/core/translate.service.ts +0 -128
- package/src/lib/core/translations.ts +0 -1138
- package/src/lib/core/window-title.service.ts +0 -54
- package/src/lib/cube/accum/accum.component.html +0 -16
- package/src/lib/cube/accum/accum.component.ts +0 -264
- package/src/lib/cube/chart/chart.component.html +0 -32
- package/src/lib/cube/chart/chart.component.ts +0 -344
- package/src/lib/cube/cube-info.service.ts +0 -135
- package/src/lib/cube/cube-menu.component.html +0 -13
- package/src/lib/cube/cube-menu.component.ts +0 -18
- package/src/lib/cube/cube-view.component.html +0 -66
- package/src/lib/cube/cube-view.component.ts +0 -186
- package/src/lib/cube/cube.service.ts +0 -495
- package/src/lib/cube/declarations.ts +0 -24
- package/src/lib/cube/explore/document-item.component.ts +0 -28
- package/src/lib/cube/explore/explore-item.component.scss +0 -4
- package/src/lib/cube/explore/explore-item.component.ts +0 -23
- package/src/lib/cube/explore/explore-items.component.html +0 -25
- package/src/lib/cube/explore/explore-items.component.scss +0 -7
- package/src/lib/cube/explore/explore-items.component.ts +0 -185
- package/src/lib/cube/explore/explore.pane.component.html +0 -12
- package/src/lib/cube/explore/explore.pane.component.ts +0 -78
- package/src/lib/cube/explore/item-resolver.service.ts +0 -24
- package/src/lib/cube/explore/item.pane.component.html +0 -3
- package/src/lib/cube/explore/item.pane.component.ts +0 -23
- package/src/lib/cube/filter/filter-tags.component.exp.ts +0 -70
- package/src/lib/cube/filter/filter-tags.component.html +0 -11
- package/src/lib/cube/filter/filter-tags.component.scss +0 -0
- package/src/lib/cube/filter/filter-tags.component.spec.ts +0 -25
- package/src/lib/cube/filter/filter.component.html +0 -25
- package/src/lib/cube/filter/filter.component.scss +0 -8
- package/src/lib/cube/filter/filter.component.ts +0 -116
- package/src/lib/cube/grid/grid.component.html +0 -29
- package/src/lib/cube/grid/grid.component.scss +0 -10
- package/src/lib/cube/grid/grid.component.ts +0 -223
- package/src/lib/cube/grid/spreadsheet.component.ts +0 -382
- package/src/lib/cube/matrix/_matrix.theme.scss +0 -86
- package/src/lib/cube/matrix/matrix.base.ts +0 -149
- package/src/lib/cube/matrix/matrix.mobile.component.html +0 -28
- package/src/lib/cube/matrix/matrix.mobile.component.ts +0 -60
- package/src/lib/cube/matrix/matrix.pane.component.html +0 -34
- package/src/lib/cube/matrix/matrix.pane.component.scss +0 -10
- package/src/lib/cube/matrix/matrix.pane.component.ts +0 -83
- package/src/lib/cube/matrix/popup.component.html +0 -32
- package/src/lib/cube/matrix/popup.component.scss +0 -7
- package/src/lib/cube/matrix/popup.component.ts +0 -55
- package/src/lib/cube/matrix/table.component.html +0 -46
- package/src/lib/cube/matrix/table.component.scss +0 -25
- package/src/lib/cube/matrix/table.component.ts +0 -517
- package/src/lib/cube/parallel/item.ts +0 -47
- package/src/lib/cube/parallel/parallel.component.html +0 -22
- package/src/lib/cube/parallel/parallel.component.scss +0 -13
- package/src/lib/cube/parallel/parallel.component.ts +0 -166
- package/src/lib/cube/pivot/pivot.component.html +0 -14
- package/src/lib/cube/pivot/pivot.component.ts +0 -518
- package/src/lib/cube/sum/_sum.theme.scss +0 -63
- package/src/lib/cube/sum/sum.component.html +0 -60
- package/src/lib/cube/sum/sum.component.scss +0 -94
- package/src/lib/cube/sum/sum.component.ts +0 -437
- package/src/lib/cube/view-base.ts +0 -82
- package/src/lib/cube/view.mobile.component.html +0 -38
- package/src/lib/cube/view.mobile.component.scss +0 -9
- package/src/lib/cube/view.mobile.component.ts +0 -116
- package/src/lib/cube/view.pane.component.html +0 -24
- package/src/lib/cube/view.pane.component.scss +0 -12
- package/src/lib/cube/view.pane.component.ts +0 -80
- package/src/lib/dashboard/_table.widget.scss +0 -19
- package/src/lib/dashboard/actions/actions.widget.html +0 -6
- package/src/lib/dashboard/actions/actions.widget.ts +0 -118
- package/src/lib/dashboard/cube/accum-cube.widget.html +0 -15
- package/src/lib/dashboard/cube/accum-cube.widget.ts +0 -154
- package/src/lib/dashboard/cube/compare.widget.ts +0 -219
- package/src/lib/dashboard/cube/cube-analysis.base.ts +0 -113
- package/src/lib/dashboard/cube/cube-analysis.widget.ts +0 -44
- package/src/lib/dashboard/cube/cube-chart.widget.html +0 -7
- package/src/lib/dashboard/cube/cube-chart.widget.ts +0 -144
- package/src/lib/dashboard/cube/documents.widget.html +0 -19
- package/src/lib/dashboard/cube/documents.widget.ts +0 -57
- package/src/lib/dashboard/cube/filter/filter.component.html +0 -3
- package/src/lib/dashboard/cube/filter/filter.component.ts +0 -53
- package/src/lib/dashboard/cube/gauge.component.exp.ts +0 -18
- package/src/lib/dashboard/dashboard.component.html +0 -18
- package/src/lib/dashboard/dashboard.component.scss +0 -36
- package/src/lib/dashboard/dashboard.component.ts +0 -53
- package/src/lib/dashboard/dashboard.pane.component.ts +0 -19
- package/src/lib/dashboard/recents/recents.widget.html +0 -32
- package/src/lib/dashboard/recents/recents.widget.scss +0 -9
- package/src/lib/dashboard/recents/recents.widget.ts +0 -89
- package/src/lib/dashboard/score/activity.widget.html +0 -9
- package/src/lib/dashboard/score/activity.widget.ts +0 -175
- package/src/lib/dashboard/score/compare-groups.widget.html +0 -8
- package/src/lib/dashboard/score/compare-groups.widget.ts +0 -212
- package/src/lib/dashboard/score/peers-performance.widget.html +0 -23
- package/src/lib/dashboard/score/peers-performance.widget.ts +0 -254
- package/src/lib/dashboard/score/pending-results.widget.html +0 -31
- package/src/lib/dashboard/score/pending-results.widget.ts +0 -52
- package/src/lib/dashboard/score/personal-score.widget.html +0 -18
- package/src/lib/dashboard/score/personal-score.widget.ts +0 -229
- package/src/lib/dashboard/widget-item.component.ts +0 -92
- package/src/lib/dashboard/widget-ref.ts +0 -20
- package/src/lib/desktop.module.ts +0 -98
- package/src/lib/home/_home-theme.scss +0 -174
- package/src/lib/home/about/about.dialog.html +0 -19
- package/src/lib/home/about/about.dialog.ts +0 -18
- package/src/lib/home/home-base.component.ts +0 -100
- package/src/lib/home/home.desktop.component.html +0 -92
- package/src/lib/home/home.desktop.component.scss +0 -66
- package/src/lib/home/home.desktop.component.ts +0 -211
- package/src/lib/home/home.mobile.component.html +0 -81
- package/src/lib/home/home.mobile.component.scss +0 -49
- package/src/lib/home/home.mobile.component.ts +0 -105
- package/src/lib/home/notifications/notifications.component.html +0 -18
- package/src/lib/home/notifications/notifications.component.scss +0 -36
- package/src/lib/home/notifications/notifications.component.ts +0 -55
- package/src/lib/home/options/_options-theme.scss +0 -11
- package/src/lib/home/options/options.component.html +0 -41
- package/src/lib/home/options/options.component.scss +0 -16
- package/src/lib/home/options/options.component.ts +0 -95
- package/src/lib/home/outofoffice/outofoffice.component.html +0 -5
- package/src/lib/home/outofoffice/outofoffice.component.scss +0 -10
- package/src/lib/home/outofoffice/outofoffice.component.ts +0 -33
- package/src/lib/home/progress-bar.directive.exp.ts +0 -24
- package/src/lib/home/search.service.ts +0 -87
- package/src/lib/home/sign/sign.component.html +0 -15
- package/src/lib/home/sign/sign.component.ts +0 -42
- package/src/lib/home/submenu.directive.exp.ts +0 -43
- package/src/lib/home/tools.component.html +0 -27
- package/src/lib/home/tools.component.scss +0 -15
- package/src/lib/home/tools.component.ts +0 -72
- package/src/lib/home/welcome/welcome.dialog.exp.ts +0 -35
- package/src/lib/home/welcome/welcome.dialog.html +0 -14
- package/src/lib/impersonate/impersonate.component.html +0 -17
- package/src/lib/impersonate/impersonate.component.scss +0 -3
- package/src/lib/impersonate/impersonate.component.spec.ts +0 -24
- package/src/lib/impersonate/impersonate.component.ts +0 -60
- package/src/lib/mobile.module.ts +0 -39
- package/src/lib/modules/chart.module.ts +0 -53
- package/src/lib/modules/circular-gauge.module.ts +0 -10
- package/src/lib/modules/date.adapter.ts +0 -31
- package/src/lib/modules/datepicker.intl.ts +0 -35
- package/src/lib/modules/dayjs.module.ts +0 -32
- package/src/lib/modules/diagram.module.ts +0 -25
- package/src/lib/modules/gantt.module.ts +0 -12
- package/src/lib/modules/grid.module.ts +0 -16
- package/src/lib/modules/material.module.ts +0 -104
- package/src/lib/modules/paginator.intl.ts +0 -16
- package/src/lib/modules/pivot.module.ts +0 -23
- package/src/lib/modules/schedule.module.ts +0 -12
- package/src/lib/modules/spreadsheet.module.ts +0 -21
- package/src/lib/modules/stepper.intl.ts +0 -12
- package/src/lib/modules/texteditor.module.ts +0 -16
- package/src/lib/notifications/filter.component.html +0 -6
- package/src/lib/notifications/filter.component.ts +0 -16
- package/src/lib/notifications/notifications-table.component.html +0 -54
- package/src/lib/notifications/notifications-table.component.scss +0 -14
- package/src/lib/notifications/notifications-table.component.ts +0 -94
- package/src/lib/notifications/notifications.component-base.ts +0 -49
- package/src/lib/notifications/notifications.mobile.component.ts +0 -13
- package/src/lib/notifications/notifications.pane.component.ts +0 -16
- package/src/lib/notifications/notifications.service.ts +0 -66
- package/src/lib/notifications/types/commented.notification.html +0 -14
- package/src/lib/notifications/types/commented.notification.ts +0 -51
- package/src/lib/notifications/types/cube-anomaly.notification.ts +0 -51
- package/src/lib/notifications/types/escalated.notification.ts +0 -36
- package/src/lib/notifications/types/liked.notification.ts +0 -49
- package/src/lib/notifications/types/long-running-task.notification.ts +0 -23
- package/src/lib/notifications/types/notification-base.ts +0 -37
- package/src/lib/notifications/types/nudge.notification.ts +0 -32
- package/src/lib/notifications/types/state-changed.notification.ts +0 -27
- package/src/lib/notifications/types/tagged.notification.ts +0 -46
- package/src/lib/notifications/types/text.notification.ts +0 -13
- package/src/lib/notifications/types/upcoming-event.notification.ts +0 -25
- package/src/lib/options/options.component.html +0 -148
- package/src/lib/options/options.component.scss +0 -19
- package/src/lib/options/options.component.ts +0 -262
- package/src/lib/options/options.service.ts +0 -30
- package/src/lib/reports/arguments-component.ts +0 -73
- package/src/lib/reports/cube/documents.component.ts +0 -50
- package/src/lib/reports/cube/grid-documents.component.html +0 -25
- package/src/lib/reports/cube/grid-documents.component.ts +0 -67
- package/src/lib/reports/cube/table-documents.component.css +0 -18
- package/src/lib/reports/cube/table-documents.component.html +0 -30
- package/src/lib/reports/cube/table-documents.component.ts +0 -46
- package/src/lib/reports/cube/usage-args.component.html +0 -3
- package/src/lib/reports/cube/usage-args.component.ts +0 -55
- package/src/lib/reports/cube/usage-base.ts +0 -113
- package/src/lib/reports/cube/usage-browse.component.exp.ts +0 -93
- package/src/lib/reports/cube/usage-browse.component.html +0 -27
- package/src/lib/reports/cube/usage-browse.component.scss +0 -24
- package/src/lib/reports/cube/usage-chart.component.html +0 -11
- package/src/lib/reports/cube/usage-chart.component.ts +0 -386
- package/src/lib/reports/cube/usage-pivot.component.html +0 -19
- package/src/lib/reports/cube/usage-pivot.component.ts +0 -266
- package/src/lib/reports/cube/usage.component.ts +0 -34
- package/src/lib/reports/report-ref.ts +0 -41
- package/src/lib/reports/report-viewer.component.html +0 -2
- package/src/lib/reports/report-viewer.component.scss +0 -12
- package/src/lib/reports/report-viewer.component.ts +0 -159
- package/src/lib/reports/report.mobile.component.html +0 -17
- package/src/lib/reports/report.mobile.component.scss +0 -7
- package/src/lib/reports/report.mobile.component.ts +0 -117
- package/src/lib/reports/report.pane.component.html +0 -9
- package/src/lib/reports/report.pane.component.scss +0 -9
- package/src/lib/reports/report.pane.component.ts +0 -88
- package/src/lib/reports/reports-menu.component.html +0 -9
- package/src/lib/reports/reports-menu.component.ts +0 -20
- package/src/lib/reports/substitution/substitution.component.html +0 -26
- package/src/lib/reports/substitution/substitution.component.ts +0 -34
- package/src/lib/reports/table/table-view.component.html +0 -8
- package/src/lib/reports/table/table-view.component.scss +0 -0
- package/src/lib/reports/table/table-view.component.ts +0 -33
- package/src/lib/reports/tasks/tasks.component.html +0 -21
- package/src/lib/reports/tasks/tasks.component.ts +0 -115
- package/src/lib/reports/timeline/timeline.component.exp.ts +0 -225
- package/src/lib/reports/timeline/timeline.component.html +0 -9
- package/src/lib/routes.desktop.ts +0 -196
- package/src/lib/routes.mobile.ts +0 -70
- package/src/lib/scheduler/schedule.component.html +0 -36
- package/src/lib/scheduler/schedule.component.scss +0 -13
- package/src/lib/scheduler/schedule.component.ts +0 -158
- package/src/lib/scheduler/scheduler.mobile.component.ts +0 -30
- package/src/lib/scheduler/scheduler.pane.component.ts +0 -49
- package/src/lib/shared.module.ts +0 -374
- package/src/lib/system.module.ts +0 -77
- package/src/lib/views/_views.theme.scss +0 -18
- package/src/lib/views/cube/chart.component.html +0 -24
- package/src/lib/views/cube/chart.component.ts +0 -88
- package/src/lib/views/cube/cube-base.ts +0 -126
- package/src/lib/views/cube/explore.component.html +0 -33
- package/src/lib/views/cube/explore.component.ts +0 -82
- package/src/lib/views/cube/filter.component.exp.ts +0 -66
- package/src/lib/views/cube/filter.component.html +0 -25
- package/src/lib/views/cube/matrix.component.html +0 -42
- package/src/lib/views/cube/matrix.component.scss +0 -3
- package/src/lib/views/cube/matrix.component.ts +0 -106
- package/src/lib/views/cube/parallel.component.html +0 -10
- package/src/lib/views/cube/parallel.component.scss +0 -13
- package/src/lib/views/cube/parallel.component.ts +0 -63
- package/src/lib/views/cube/pivot.component.html +0 -8
- package/src/lib/views/cube/pivot.component.ts +0 -62
- package/src/lib/views/cube/sum.component.html +0 -30
- package/src/lib/views/cube/sum.component.scss +0 -3
- package/src/lib/views/cube/sum.component.ts +0 -71
- package/src/lib/views/cube/view.component.html +0 -34
- package/src/lib/views/cube/view.component.scss +0 -12
- package/src/lib/views/cube/view.component.ts +0 -103
- package/src/lib/views/document-view-ref.ts +0 -34
- package/src/lib/views/timeline/timeline.component.exp.ts +0 -333
- package/src/lib/views/timeline/timeline.component.html +0 -6
- package/src/lib/views/timeline/timeline.component.scss +0 -6
- package/src/lib/views/view-item.component.ts +0 -67
- package/src/lib/views/views.component.html +0 -4
- package/src/lib/views/views.component.scss +0 -33
- package/src/lib/views/views.component.ts +0 -29
- package/src/lib/views/views.mobile.component.ts +0 -19
- package/src/lib/views/views.pane.component.ts +0 -33
- package/src/polyfills.ts +0 -81
- package/src/public-api.ts +0 -149
- package/src/styles/_app.scss +0 -317
- package/src/styles/_emoji-mart.scss +0 -504
- package/src/styles/_syncfusion-base-definitions.scss +0 -63
- package/src/styles/_syncfusion-dark-definitions.scss +0 -21
- package/src/styles/_syncfusion-dark.scss +0 -2
- package/src/styles/_syncfusion-icons.scss +0 -57
- package/src/styles/_syncfusion-light-definitions.scss +0 -23
- package/src/styles/_syncfusion-light.scss +0 -2
- package/src/styles/_syncfusion.scss +0 -21
- package/src/styles/_xslt.scss +0 -377
- package/src/styles/brown.scss +0 -14
- package/src/styles/build-xslt.ps1 +0 -2
- package/src/styles/build.ps1 +0 -26
- package/src/styles/dark.scss +0 -13
- package/src/styles/deep-purple-light-blue.scss +0 -20
- package/src/styles/deep-purple-teal.scss +0 -20
- package/src/styles/default.scss +0 -21
- package/src/styles/diagram-icons.eot +0 -0
- package/src/styles/diagram-icons.ttf +0 -0
- package/src/styles/green.scss +0 -13
- package/src/styles/indigo.scss +0 -13
- package/src/styles/xslt.scss +0 -21
- package/src/styles/xslt.scss.map +0 -1
- package/src/test.ts +0 -26
- package/tsconfig.lib.json +0 -26
- package/tsconfig.lib.prod.json +0 -10
- package/tsconfig.spec.json +0 -18
@@ -0,0 +1,493 @@
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
2
|
+
import { formatCurrency, formatPercent, formatNumber, getCurrencySymbol } from '@angular/common';
|
3
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
4
|
+
import { Workbook } from '@syncfusion/ej2-excel-export';
|
5
|
+
import { forkJoin } from 'rxjs';
|
6
|
+
import { tap } from 'rxjs/operators';
|
7
|
+
import { isArray, isFunction } from '../../core/functions';
|
8
|
+
import { errResource } from '../cube.service';
|
9
|
+
import { matrixAnimation } from '../../core/animations';
|
10
|
+
import * as i0 from "@angular/core";
|
11
|
+
import * as i1 from "../../core/prompt.service";
|
12
|
+
import * as i2 from "../cube.service";
|
13
|
+
import * as i3 from "../../core/session.service";
|
14
|
+
import * as i4 from "../../core/translate.service";
|
15
|
+
import * as i5 from "../../core/datasource.service";
|
16
|
+
import * as i6 from "@angular/common";
|
17
|
+
const LOADING_DELAY = 200, SUM_PREFIX = '_sum';
|
18
|
+
/** cube matrix component*/
|
19
|
+
export class CubeMatrixComponent {
|
20
|
+
constructor(_sb, _service, _session, _translate, _ds) {
|
21
|
+
this._sb = _sb;
|
22
|
+
this._service = _service;
|
23
|
+
this._session = _session;
|
24
|
+
this._translate = _translate;
|
25
|
+
this._ds = _ds;
|
26
|
+
this.PRECISION = this._service.digitsInfo;
|
27
|
+
this.LANGUAGE = this._session.language;
|
28
|
+
this.indexAt = 'series';
|
29
|
+
this.placeAt = 'leading';
|
30
|
+
this._interactive = true;
|
31
|
+
this.onExplore = new EventEmitter();
|
32
|
+
this.loadingChange = new EventEmitter();
|
33
|
+
this.indices = [];
|
34
|
+
}
|
35
|
+
set sum(val) {
|
36
|
+
if (val)
|
37
|
+
this._sum = (isArray(val) ? val : [val]).
|
38
|
+
map(sum => {
|
39
|
+
let value;
|
40
|
+
if (sum.value)
|
41
|
+
value = sum.value.toString();
|
42
|
+
else if (sum.calculate)
|
43
|
+
switch (sum.calculate) {
|
44
|
+
case 'month':
|
45
|
+
value = 'M' + ('0' + (new Date().getMonth() + 1).toString()).slice(-2);
|
46
|
+
break;
|
47
|
+
case 'year':
|
48
|
+
value = new Date().getFullYear().toString();
|
49
|
+
break;
|
50
|
+
case 'quarter':
|
51
|
+
value = Math.ceil((new Date().getMonth() + 1) / 3).toString();
|
52
|
+
break;
|
53
|
+
case 'accumulate':
|
54
|
+
value = '~';
|
55
|
+
}
|
56
|
+
return {
|
57
|
+
...sum,
|
58
|
+
value
|
59
|
+
};
|
60
|
+
});
|
61
|
+
}
|
62
|
+
get interactive() {
|
63
|
+
return this._interactive;
|
64
|
+
}
|
65
|
+
set interactive(value) {
|
66
|
+
this._interactive = coerceBooleanProperty(value);
|
67
|
+
}
|
68
|
+
ngOnChanges(changes) {
|
69
|
+
if (changes['_cube']) {
|
70
|
+
this.cube = this._session.profile.cubes.find(c => c.name === this._cube);
|
71
|
+
this.CURRENCY = this.cube.currencyCode /*|| this._service.currencyCode*/;
|
72
|
+
this.SYMBOL = getCurrencySymbol(this.CURRENCY, 'narrow');
|
73
|
+
}
|
74
|
+
if (!this.cube) {
|
75
|
+
this.cube = this._session.profile.cubes[0];
|
76
|
+
this.CURRENCY = this.cube.currencyCode /*|| this._service.currencyCode*/;
|
77
|
+
this.SYMBOL = getCurrencySymbol(this.CURRENCY, 'narrow');
|
78
|
+
}
|
79
|
+
if (changes['_indices'] && this._indices)
|
80
|
+
this.indices = this.cube.indices.filter(i => isArray(this._indices) ? this._indices.indexOf(i.name) > -1 : this._indices === i.name);
|
81
|
+
if (changes['_xAxis'] || changes['_series']) {
|
82
|
+
this.xAxis = this.cube.axes.find(a => a.name === this._xAxis);
|
83
|
+
this.series = this.cube.axes.find(a => a.name === this._series);
|
84
|
+
this.data = null;
|
85
|
+
this._prepare = forkJoin(this._ds.all(this.series.dataType).pipe(tap(r => this.rows = r)), this._ds.all(this.xAxis.dataType).pipe(tap(c => this.columns = c))).toPromise().then(() => {
|
86
|
+
this._indices && this._addindices();
|
87
|
+
this._sum && this._addsumheaders();
|
88
|
+
});
|
89
|
+
this.refresh();
|
90
|
+
}
|
91
|
+
else if (changes['filters'])
|
92
|
+
this.refresh();
|
93
|
+
}
|
94
|
+
_addindices() {
|
95
|
+
const collection = this.indexAt === 'xAxis' ? this.columns : this.rows;
|
96
|
+
this.indices.forEach((x, i) => {
|
97
|
+
const header = {
|
98
|
+
key: x.name,
|
99
|
+
value: x.title,
|
100
|
+
index: x,
|
101
|
+
accumulate: x.accumulate
|
102
|
+
};
|
103
|
+
if (this.placeAt === 'trailing')
|
104
|
+
collection.push(header);
|
105
|
+
else
|
106
|
+
collection.splice(i, 0, header);
|
107
|
+
});
|
108
|
+
}
|
109
|
+
_addsumheaders() {
|
110
|
+
this._sum.forEach((s, i) => {
|
111
|
+
let { value, axis } = s;
|
112
|
+
const header = {
|
113
|
+
key: SUM_PREFIX + i,
|
114
|
+
value: s.title,
|
115
|
+
accumulate: !isFunction(s.calculate) && s.calculate !== 'accumulate',
|
116
|
+
explorable: !isFunction(s.calculate) && s.explorable !== false,
|
117
|
+
precision: s.precision,
|
118
|
+
sum: s
|
119
|
+
};
|
120
|
+
let j = 0;
|
121
|
+
if (axis === 'xAxis') {
|
122
|
+
while (j < this.columns.length) {
|
123
|
+
if (this.columns[j].key === value) {
|
124
|
+
this.columns.splice(j + 1, 0, header);
|
125
|
+
break;
|
126
|
+
}
|
127
|
+
j++;
|
128
|
+
}
|
129
|
+
if (j === this.columns.length)
|
130
|
+
this.columns.push(header);
|
131
|
+
}
|
132
|
+
else {
|
133
|
+
while (j < this.rows.length) {
|
134
|
+
if (this.rows[j].key === value) {
|
135
|
+
this.rows.splice(j + 1, 0, header);
|
136
|
+
break;
|
137
|
+
}
|
138
|
+
j++;
|
139
|
+
}
|
140
|
+
if (j === this.rows.length)
|
141
|
+
this.rows.push(header);
|
142
|
+
}
|
143
|
+
});
|
144
|
+
}
|
145
|
+
refresh() {
|
146
|
+
const progressTask = setTimeout(() => this.loadingChange.next(this.loading = true), LOADING_DELAY);
|
147
|
+
this._prepare.then(() => this._service.series(this.cube.name, this._xAxis, {
|
148
|
+
series: this._series,
|
149
|
+
indices: this._indices,
|
150
|
+
filters: this.filters,
|
151
|
+
inverseIndices: this.indexAt === 'xAxis',
|
152
|
+
scope: this.scope
|
153
|
+
}).subscribe(r => {
|
154
|
+
const data = this._serialize(r);
|
155
|
+
this._clone(data);
|
156
|
+
this._sum && this._calculatesum(data);
|
157
|
+
this._totals(data);
|
158
|
+
this._stringify(data);
|
159
|
+
this.data = data;
|
160
|
+
clearTimeout(progressTask);
|
161
|
+
this.loadingChange.next(this.loading = false);
|
162
|
+
}, (e) => {
|
163
|
+
this._sb.error(errResource(e));
|
164
|
+
clearTimeout(progressTask);
|
165
|
+
this.loadingChange.next(this.loading = false);
|
166
|
+
this.loadingChange.error(e);
|
167
|
+
}));
|
168
|
+
}
|
169
|
+
_serialize(series) {
|
170
|
+
const d = {};
|
171
|
+
series.forEach(s => {
|
172
|
+
if (s.index) {
|
173
|
+
if (this.indexAt === 'xAxis')
|
174
|
+
s.points.forEach(p => {
|
175
|
+
let row = d[p.x];
|
176
|
+
if (!row)
|
177
|
+
row = d[p.x] = {};
|
178
|
+
row[s.index] = p.y;
|
179
|
+
});
|
180
|
+
else {
|
181
|
+
const row = d[s.index] = {};
|
182
|
+
s.points.forEach(p => row[p.x] = p.y);
|
183
|
+
}
|
184
|
+
}
|
185
|
+
else {
|
186
|
+
const row = d[s.name] = {};
|
187
|
+
s.points.forEach(p => row[p.x] = p.y);
|
188
|
+
}
|
189
|
+
});
|
190
|
+
return d;
|
191
|
+
}
|
192
|
+
_clone(data) {
|
193
|
+
this._data = {};
|
194
|
+
this.rows.forEach(r => {
|
195
|
+
const key = r.key;
|
196
|
+
if (!data[key])
|
197
|
+
data[key] = {};
|
198
|
+
Object.assign(this._data[key] = {}, data[key]);
|
199
|
+
});
|
200
|
+
}
|
201
|
+
_totals(data) {
|
202
|
+
let grand = 0;
|
203
|
+
this.rows.forEach(r => {
|
204
|
+
const datarow = data[r.key];
|
205
|
+
if (datarow) {
|
206
|
+
let columnTotal = 0;
|
207
|
+
this.columns.forEach(c => {
|
208
|
+
if (c.accumulate === false || c.sum !== undefined)
|
209
|
+
return;
|
210
|
+
let val = datarow[c.key];
|
211
|
+
if (val !== undefined)
|
212
|
+
columnTotal += this.indices.length === 0 || this.indexAt !== 'xAxis' ||
|
213
|
+
c.index !== undefined ? val : -val;
|
214
|
+
});
|
215
|
+
datarow['_total'] = this._format(columnTotal, r);
|
216
|
+
if (!r.sum)
|
217
|
+
grand += this.indices.length === 0 ||
|
218
|
+
this.indexAt === 'xAxis' ||
|
219
|
+
r.index !== undefined ? columnTotal : -columnTotal;
|
220
|
+
}
|
221
|
+
else
|
222
|
+
data[r.key] = {
|
223
|
+
'_total': '0'
|
224
|
+
};
|
225
|
+
});
|
226
|
+
const totals = data['_total'] = this.totals = {};
|
227
|
+
totals['_grand'] = this._format(grand);
|
228
|
+
this.columns.forEach(c => {
|
229
|
+
let rowTotal = 0;
|
230
|
+
this.rows.forEach(row => {
|
231
|
+
if (row.accumulate === false || row.sum !== undefined)
|
232
|
+
return;
|
233
|
+
const val = data[row.key][c.key];
|
234
|
+
if (val !== undefined)
|
235
|
+
rowTotal += this.indices.length === 0 || this.indexAt === 'xAxis' ||
|
236
|
+
row.index !== undefined ? val : -val;
|
237
|
+
});
|
238
|
+
totals[c.key] = this._format(rowTotal, c);
|
239
|
+
});
|
240
|
+
}
|
241
|
+
_calculatesum(data) {
|
242
|
+
this._sum.forEach((s, i) => {
|
243
|
+
const { axis, value, calculate } = s;
|
244
|
+
const name = SUM_PREFIX + i;
|
245
|
+
if (axis === 'xAxis') {
|
246
|
+
this.rows.forEach(r => {
|
247
|
+
if (r.accumulate === false)
|
248
|
+
return;
|
249
|
+
const datarow = data[r.key];
|
250
|
+
if (!datarow)
|
251
|
+
return;
|
252
|
+
let sum = 0;
|
253
|
+
for (let column of this.columns) {
|
254
|
+
if (column.index)
|
255
|
+
continue;
|
256
|
+
let key = column.key;
|
257
|
+
if (column.sum)
|
258
|
+
continue;
|
259
|
+
if (isFunction(calculate)) {
|
260
|
+
let val = calculate(r.key, this._data);
|
261
|
+
if (val !== undefined && val !== null)
|
262
|
+
sum += val;
|
263
|
+
}
|
264
|
+
else {
|
265
|
+
let val = datarow[key];
|
266
|
+
if (val !== undefined)
|
267
|
+
sum += val;
|
268
|
+
if (key === value)
|
269
|
+
break;
|
270
|
+
}
|
271
|
+
}
|
272
|
+
datarow[name] = sum;
|
273
|
+
});
|
274
|
+
}
|
275
|
+
else {
|
276
|
+
let datarow = data[name] = {};
|
277
|
+
this.columns.forEach(column => {
|
278
|
+
let sum = 0;
|
279
|
+
for (let row of this.rows) {
|
280
|
+
if (row.index)
|
281
|
+
continue;
|
282
|
+
let key = row.key;
|
283
|
+
if (isFunction(calculate)) {
|
284
|
+
let val = calculate(row.key, this._data);
|
285
|
+
if (val !== undefined && val !== null)
|
286
|
+
sum += val;
|
287
|
+
}
|
288
|
+
else {
|
289
|
+
let datarow = data[key];
|
290
|
+
if (!datarow)
|
291
|
+
continue;
|
292
|
+
if (column.sum) {
|
293
|
+
let val = datarow[column.key];
|
294
|
+
if (val != undefined)
|
295
|
+
sum += val;
|
296
|
+
}
|
297
|
+
else {
|
298
|
+
let val = datarow[column.key];
|
299
|
+
if (val !== undefined)
|
300
|
+
sum += val;
|
301
|
+
}
|
302
|
+
if (key === value)
|
303
|
+
break;
|
304
|
+
}
|
305
|
+
}
|
306
|
+
datarow[column.key] = sum;
|
307
|
+
});
|
308
|
+
}
|
309
|
+
});
|
310
|
+
}
|
311
|
+
_stringify(data) {
|
312
|
+
this.columns.forEach(c => {
|
313
|
+
this.rows.forEach(r => {
|
314
|
+
const xAxis = r.key, series = c.key;
|
315
|
+
if (c.sum)
|
316
|
+
data[xAxis][series] = this._format(data[xAxis][series], c.sum);
|
317
|
+
else if (r.sum)
|
318
|
+
data[xAxis][series] = this._format(data[xAxis][series], r.sum);
|
319
|
+
else
|
320
|
+
data[xAxis][series] =
|
321
|
+
formatNumber(data[xAxis][series] || 0, this.LANGUAGE, this.PRECISION);
|
322
|
+
});
|
323
|
+
});
|
324
|
+
}
|
325
|
+
_format(val, options) {
|
326
|
+
if (val === 0)
|
327
|
+
return '0';
|
328
|
+
if (options) {
|
329
|
+
if (options.format === 'percent')
|
330
|
+
return formatPercent(val, this.LANGUAGE, options.precision || this.PRECISION);
|
331
|
+
else if (options.format === 'currency')
|
332
|
+
return formatCurrency(val, this.LANGUAGE, this.SYMBOL, this.CURRENCY, options.precision || this.PRECISION);
|
333
|
+
}
|
334
|
+
if (this.CURRENCY)
|
335
|
+
return formatCurrency(val, this.LANGUAGE, this.SYMBOL, this.CURRENCY, this.PRECISION);
|
336
|
+
else
|
337
|
+
return formatNumber(val, this.LANGUAGE, this.PRECISION);
|
338
|
+
}
|
339
|
+
explore(column, row) {
|
340
|
+
if (!this.interactive || column.explorable === false || row.explorable === false)
|
341
|
+
return;
|
342
|
+
let x, series, index;
|
343
|
+
const axes = { ...this.filters };
|
344
|
+
if (!column.sum)
|
345
|
+
x = column.key;
|
346
|
+
else {
|
347
|
+
let { value, calculate } = column.sum;
|
348
|
+
if (isFunction(calculate))
|
349
|
+
return;
|
350
|
+
x = [];
|
351
|
+
for (let column of this.columns) {
|
352
|
+
if (column.sum)
|
353
|
+
continue;
|
354
|
+
let key = column.key;
|
355
|
+
x.push(key);
|
356
|
+
if (key === value)
|
357
|
+
break;
|
358
|
+
}
|
359
|
+
}
|
360
|
+
axes[this.xAxis.name] = x;
|
361
|
+
if (row.index)
|
362
|
+
index = row.index.name;
|
363
|
+
else {
|
364
|
+
if (row.sum) {
|
365
|
+
let { value, calculate } = row.sum;
|
366
|
+
if (isFunction(calculate))
|
367
|
+
return;
|
368
|
+
series = [];
|
369
|
+
for (let row of this.rows) {
|
370
|
+
if (row.sum)
|
371
|
+
continue;
|
372
|
+
let key = row.key;
|
373
|
+
series.push(key);
|
374
|
+
if (key === value)
|
375
|
+
break;
|
376
|
+
}
|
377
|
+
}
|
378
|
+
else
|
379
|
+
series = row.key;
|
380
|
+
axes[this.series.name] = series;
|
381
|
+
index = null;
|
382
|
+
}
|
383
|
+
this.onExplore.emit({ axes, index });
|
384
|
+
}
|
385
|
+
export() {
|
386
|
+
const numberFormat = this._service.numberFormat, columns = this.columns.filter(c => !c.sum), cells = [], rows = [{ index: 1, cells }];
|
387
|
+
columns.forEach((c, j) => cells.push({
|
388
|
+
index: j + 2,
|
389
|
+
value: c.value, style: { bold: true }
|
390
|
+
}));
|
391
|
+
this.rows.filter(r => !r.sum).forEach((r, i) => {
|
392
|
+
const data = this._data[r.key], cells = [{ index: 1, value: r.value, style: { bold: true } }];
|
393
|
+
columns.forEach((c, j) => cells.push({
|
394
|
+
type: 'number',
|
395
|
+
index: j + 2,
|
396
|
+
value: data && data[c.key] !== undefined ? data[c.key] : 0,
|
397
|
+
style: {
|
398
|
+
numberFormat,
|
399
|
+
hAlign: 'right',
|
400
|
+
}
|
401
|
+
}));
|
402
|
+
rows.push({
|
403
|
+
index: i + 2,
|
404
|
+
cells
|
405
|
+
});
|
406
|
+
});
|
407
|
+
const book = new Workbook({
|
408
|
+
worksheets: [
|
409
|
+
{
|
410
|
+
enableRtl: this._session.inverse,
|
411
|
+
name: this._translate.get('SheetN', 1),
|
412
|
+
columns: columns.map((_, i) => ({ index: i + 1, width: 150 })),
|
413
|
+
rows,
|
414
|
+
},
|
415
|
+
],
|
416
|
+
}, 'xlsx');
|
417
|
+
this._service.nameOf(this.filters, this.cube.name).subscribe(n => book.save(`${n || this._translate.get('Matrix')}.xlsx`));
|
418
|
+
}
|
419
|
+
_move(x, y) {
|
420
|
+
let rowIndex = 0;
|
421
|
+
for (let b = 0; b < this.tableElement.nativeElement.tBodies.length; b++) {
|
422
|
+
let tBody = this.tableElement.nativeElement.tBodies.item(b);
|
423
|
+
for (let r = 0; r < tBody.rows.length; r++) {
|
424
|
+
let row = tBody.rows.item(r);
|
425
|
+
for (let c = 0; c < row.cells.length; c++) {
|
426
|
+
let cell = row.cells.item(c);
|
427
|
+
if (c === x)
|
428
|
+
cell.classList.add('cell-x');
|
429
|
+
else
|
430
|
+
cell.classList.remove('cell-x');
|
431
|
+
if (rowIndex === y)
|
432
|
+
cell.classList.add('cell-y');
|
433
|
+
else
|
434
|
+
cell.classList.remove('cell-y');
|
435
|
+
}
|
436
|
+
rowIndex++;
|
437
|
+
}
|
438
|
+
let tFoot = this.tableElement.nativeElement.tFoot, row = tFoot.rows[0];
|
439
|
+
for (let c = 0; c < row.cells.length; c++) {
|
440
|
+
let cell = row.cells.item(c);
|
441
|
+
if (c === x)
|
442
|
+
cell.classList.add('cell-x');
|
443
|
+
else
|
444
|
+
cell.classList.remove('cell-x');
|
445
|
+
}
|
446
|
+
}
|
447
|
+
}
|
448
|
+
}
|
449
|
+
CubeMatrixComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: CubeMatrixComponent, deps: [{ token: i1.PromptService }, { token: i2.CubeService }, { token: i3.SessionService }, { token: i4.TranslateService }, { token: i5.DatasourceService }], target: i0.ɵɵFactoryTarget.Component });
|
450
|
+
CubeMatrixComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: CubeMatrixComponent, selector: "bizdoc-cube-matrix", inputs: { seriesTotalLabel: "seriesTotalLabel", xAxisTotalLabel: "xAxisTotalLabel", _cube: ["cube", "_cube"], _xAxis: ["xAxis", "_xAxis"], _series: ["series", "_series"], _indices: ["indices", "_indices"], indexAt: "indexAt", placeAt: "placeAt", scope: "scope", sum: "sum", filters: "filters", loading: "loading", interactive: "interactive" }, outputs: { onExplore: "explore", loadingChange: "loadingChange" }, viewQueries: [{ propertyName: "tableElement", first: true, predicate: ["table"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<table #table class=\"mat-table cube-table\" (mouseleave)=\"_move(-1, -1)\" *ngIf=\"data\">\r\n <thead>\r\n <!-- headers -->\r\n <tr class=\"mat-header-row\">\r\n <th></th>\r\n <th *ngFor=\"let column of columns; let x = index\"\r\n (mouseenter)=\"_move(x + 1, -2)\" class=\"mat-header-cell\">\r\n {{ column.value }}\r\n </th>\r\n <th class=\"mat-header-cell\">{{xAxisTotalLabel}}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <!-- rows -->\r\n <tr *ngFor=\"let row of rows; let y = index\" class=\"mat-row\"\r\n [class.cube-index]=\"row.index\">\r\n <th class=\"mat-header-cell\" (mouseenter)=\"_move(-2, y )\">{{ row.value }}</th>\r\n <td *ngFor=\"let column of columns; let x = index\" class=\"mat-cell figure\"\r\n (mouseenter)=\"_move(x + 1, y )\">\r\n <span *ngIf=\"data[row.key][column.key] !== '0'; else zero\" \r\n [class.explorable]=\"interactive && column.explorable !== false && row.explorable !== false\"\r\n (click)=\"explore(column, row)\">\r\n {{ data[row.key][column.key] }}\r\n </span>\r\n </td>\r\n <th class=\"mat-cell figure\" (mouseenter)=\"_move(-1, y )\">\r\n {{ data[row.key]['_total'] }}\r\n </th>\r\n </tr>\r\n </tbody>\r\n <tfoot>\r\n <!-- footer -->\r\n <tr class=\"mat-footer-row\">\r\n <td class=\"mat-footer-cell\">{{seriesTotalLabel}}</td>\r\n <td *ngFor=\"let column of columns; let x = index\" class=\"mat-footer-cell figure\"\r\n (mouseenter)=\"_move(x + 1, -2)\"\r\n [class.negative-figure]=\"totals[column.key].startsWith('-')\">\r\n <ng-container *ngIf=\"totals[column.key] !== undefined\">\r\n {{ totals[column.key] }}\r\n </ng-container>\r\n </td>\r\n <th class=\"mat-footer-cell figure\">{{ totals['_grand'] }}</th>\r\n </tr>\r\n </tfoot>\r\n</table>\r\n<ng-template #zero>0</ng-template>\r\n", styles: [".explorable{cursor:pointer}.cube-table{width:100%;table-layout:fixed}.cube-table th{cursor:default}.cube-table th.figure{font-weight:500}.cube-table td,.cube-table th{padding-right:8px}.cube-table tfoot tr td{border-bottom:none}\n"], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], animations: [matrixAnimation] });
|
451
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: CubeMatrixComponent, decorators: [{
|
452
|
+
type: Component,
|
453
|
+
args: [{ selector: 'bizdoc-cube-matrix', animations: [matrixAnimation], template: "<table #table class=\"mat-table cube-table\" (mouseleave)=\"_move(-1, -1)\" *ngIf=\"data\">\r\n <thead>\r\n <!-- headers -->\r\n <tr class=\"mat-header-row\">\r\n <th></th>\r\n <th *ngFor=\"let column of columns; let x = index\"\r\n (mouseenter)=\"_move(x + 1, -2)\" class=\"mat-header-cell\">\r\n {{ column.value }}\r\n </th>\r\n <th class=\"mat-header-cell\">{{xAxisTotalLabel}}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <!-- rows -->\r\n <tr *ngFor=\"let row of rows; let y = index\" class=\"mat-row\"\r\n [class.cube-index]=\"row.index\">\r\n <th class=\"mat-header-cell\" (mouseenter)=\"_move(-2, y )\">{{ row.value }}</th>\r\n <td *ngFor=\"let column of columns; let x = index\" class=\"mat-cell figure\"\r\n (mouseenter)=\"_move(x + 1, y )\">\r\n <span *ngIf=\"data[row.key][column.key] !== '0'; else zero\" \r\n [class.explorable]=\"interactive && column.explorable !== false && row.explorable !== false\"\r\n (click)=\"explore(column, row)\">\r\n {{ data[row.key][column.key] }}\r\n </span>\r\n </td>\r\n <th class=\"mat-cell figure\" (mouseenter)=\"_move(-1, y )\">\r\n {{ data[row.key]['_total'] }}\r\n </th>\r\n </tr>\r\n </tbody>\r\n <tfoot>\r\n <!-- footer -->\r\n <tr class=\"mat-footer-row\">\r\n <td class=\"mat-footer-cell\">{{seriesTotalLabel}}</td>\r\n <td *ngFor=\"let column of columns; let x = index\" class=\"mat-footer-cell figure\"\r\n (mouseenter)=\"_move(x + 1, -2)\"\r\n [class.negative-figure]=\"totals[column.key].startsWith('-')\">\r\n <ng-container *ngIf=\"totals[column.key] !== undefined\">\r\n {{ totals[column.key] }}\r\n </ng-container>\r\n </td>\r\n <th class=\"mat-footer-cell figure\">{{ totals['_grand'] }}</th>\r\n </tr>\r\n </tfoot>\r\n</table>\r\n<ng-template #zero>0</ng-template>\r\n", styles: [".explorable{cursor:pointer}.cube-table{width:100%;table-layout:fixed}.cube-table th{cursor:default}.cube-table th.figure{font-weight:500}.cube-table td,.cube-table th{padding-right:8px}.cube-table tfoot tr td{border-bottom:none}\n"] }]
|
454
|
+
}], ctorParameters: function () { return [{ type: i1.PromptService }, { type: i2.CubeService }, { type: i3.SessionService }, { type: i4.TranslateService }, { type: i5.DatasourceService }]; }, propDecorators: { tableElement: [{
|
455
|
+
type: ViewChild,
|
456
|
+
args: ['table']
|
457
|
+
}], seriesTotalLabel: [{
|
458
|
+
type: Input
|
459
|
+
}], xAxisTotalLabel: [{
|
460
|
+
type: Input
|
461
|
+
}], _cube: [{
|
462
|
+
type: Input,
|
463
|
+
args: ['cube']
|
464
|
+
}], _xAxis: [{
|
465
|
+
type: Input,
|
466
|
+
args: ['xAxis']
|
467
|
+
}], _series: [{
|
468
|
+
type: Input,
|
469
|
+
args: ['series']
|
470
|
+
}], _indices: [{
|
471
|
+
type: Input,
|
472
|
+
args: ['indices']
|
473
|
+
}], indexAt: [{
|
474
|
+
type: Input
|
475
|
+
}], placeAt: [{
|
476
|
+
type: Input
|
477
|
+
}], scope: [{
|
478
|
+
type: Input
|
479
|
+
}], sum: [{
|
480
|
+
type: Input
|
481
|
+
}], filters: [{
|
482
|
+
type: Input
|
483
|
+
}], loading: [{
|
484
|
+
type: Input
|
485
|
+
}], interactive: [{
|
486
|
+
type: Input
|
487
|
+
}], onExplore: [{
|
488
|
+
type: Output,
|
489
|
+
args: ['explore']
|
490
|
+
}], loadingChange: [{
|
491
|
+
type: Output
|
492
|
+
}] } });
|
493
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jdWJlL21hdHJpeC90YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2N1YmUvbWF0cml4L3RhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQWlCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4SCxPQUFPLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsUUFBUSxFQUEwQixNQUFNLDhCQUE4QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFlLFdBQVcsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBS25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7QUFLeEQsTUFBTSxhQUFhLEdBQUcsR0FBRyxFQUFFLFVBQVUsR0FBRyxNQUFNLENBQUM7QUFFL0MsMkJBQTJCO0FBTzNCLE1BQU0sT0FBTyxtQkFBbUI7SUFtRTlCLFlBQ1UsR0FBa0IsRUFDbEIsUUFBcUIsRUFDckIsUUFBd0IsRUFDeEIsVUFBNEIsRUFDNUIsR0FBc0I7UUFKdEIsUUFBRyxHQUFILEdBQUcsQ0FBZTtRQUNs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Z0JBQ1QsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ1MsS0FBSztzQkFBbkIsS0FBSzt1QkFBQyxNQUFNO2dCQUNHLE1BQU07c0JBQXJCLEtBQUs7dUJBQUMsT0FBTztnQkFDRyxPQUFPO3NCQUF2QixLQUFLO3VCQUFDLFFBQVE7Z0JBRWYsUUFBUTtzQkFEUCxLQUFLO3VCQUFDLFNBQVM7Z0JBR2hCLE9BQU87c0JBRE4sS0FBSztnQkFHTixPQUFPO3NCQUROLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUVPLEdBQUc7c0JBQWYsS0FBSztnQkEwQkcsT0FBTztzQkFBZixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFLSyxXQUFXO3NCQURyQixLQUFLO2dCQUlzQixTQUFTO3NCQUFwQyxNQUFNO3VCQUFDLFNBQVM7Z0JBQ0UsYUFBYTtzQkFBL0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBmb3JtYXRDdXJyZW5jeSwgZm9ybWF0UGVyY2VudCwgZm9ybWF0TnVtYmVyLCBnZXRDdXJyZW5jeVN5bWJvbCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xyXG5pbXBvcnQgeyBXb3JrYm9vaywgV29ya3NoZWV0LCBSb3csIENvbHVtbiB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1leGNlbC1leHBvcnQnO1xyXG5pbXBvcnQgeyBmb3JrSm9pbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IGlzQXJyYXksIGlzRnVuY3Rpb24gfSBmcm9tICcuLi8uLi9jb3JlL2Z1bmN0aW9ucyc7XHJcbmltcG9ydCB7IEN1YmVTZXJ2aWNlLCBlcnJSZXNvdXJjZSwgU2VyaWVzIH0gZnJvbSAnLi4vY3ViZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3Nlc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IERhdGFzb3VyY2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9kYXRhc291cmNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQcm9tcHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9wcm9tcHQuc2VydmljZSc7XHJcbmltcG9ydCB7IEF4ZXNNYXAsIEF4aXNUeXBlLCBDdWJlLCBDdWJlQXhpcywgQ3ViZUluZGV4IH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBtYXRyaXhBbmltYXRpb24gfSBmcm9tICcuLi8uLi9jb3JlL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyBTY29wZVR5cGUgfSBmcm9tICcuLi8uLi9jb3JlL2NvbmZpZ3VyYXRpb24nO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS90cmFuc2xhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IEF4aXNDbGlja0V2ZW50IH0gZnJvbSAnLi4vZGVjbGFyYXRpb25zJztcclxuXHJcbmNvbnN0IExPQURJTkdfREVMQVkgPSAyMDAsIFNVTV9QUkVGSVggPSAnX3N1bSc7XHJcblxyXG4vKiogY3ViZSBtYXRyaXggY29tcG9uZW50Ki9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtY3ViZS1tYXRyaXgnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUuY29tcG9uZW50LnNjc3MnXSxcclxuICBhbmltYXRpb25zOiBbbWF0cml4QW5pbWF0aW9uXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3ViZU1hdHJpeENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgcmVhZG9ubHkgUFJFQ0lTSU9OID0gdGhpcy5fc2VydmljZS5kaWdpdHNJbmZvO1xyXG4gIHJlYWRvbmx5IExBTkdVQUdFID0gdGhpcy5fc2Vzc2lvbi5sYW5ndWFnZTtcclxuICBDVVJSRU5DWTogc3RyaW5nO1xyXG4gIFNZTUJPTDogc3RyaW5nO1xyXG4gIEBWaWV3Q2hpbGQoJ3RhYmxlJykgdGFibGVFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxUYWJsZUVsZW1lbnQ+O1xyXG4gIEBJbnB1dCgpIHNlcmllc1RvdGFsTGFiZWw6IHN0cmluZztcclxuICBASW5wdXQoKSB4QXhpc1RvdGFsTGFiZWw6IHN0cmluZztcclxuICBASW5wdXQoJ2N1YmUnKSBfY3ViZT86IHN0cmluZztcclxuICBASW5wdXQoJ3hBeGlzJykgX3hBeGlzITogc3RyaW5nO1xyXG4gIEBJbnB1dCgnc2VyaWVzJykgX3NlcmllcyE6IHN0cmluZztcclxuICBASW5wdXQoJ2luZGljZXMnKVxyXG4gIF9pbmRpY2VzPzogc3RyaW5nW10gfCBzdHJpbmc7XHJcbiAgQElucHV0KClcclxuICBpbmRleEF0OiAnc2VyaWVzJyB8ICd4QXhpcycgPSAnc2VyaWVzJztcclxuICBASW5wdXQoKVxyXG4gIHBsYWNlQXQ6ICdsZWFkaW5nJyB8ICd0cmFpbGluZycgPSAnbGVhZGluZyc7XHJcbiAgQElucHV0KCkgc2NvcGU6IFNjb3BlVHlwZTtcclxuICBwcml2YXRlIF9zdW06IFN1bVNldHRpbmdzW107XHJcbiAgQElucHV0KCkgc2V0IHN1bSh2YWw6IFN1bVNldHRpbmdzIHwgU3VtU2V0dGluZ3NbXSkge1xyXG4gICAgaWYgKHZhbCkgdGhpcy5fc3VtID0gKGlzQXJyYXkodmFsKSA/IHZhbCA6IFt2YWxdKS5cclxuICAgICAgbWFwKHN1bSA9PiB7XHJcbiAgICAgICAgbGV0IHZhbHVlO1xyXG4gICAgICAgIGlmIChzdW0udmFsdWUpXHJcbiAgICAgICAgICB2YWx1ZSA9IHN1bS52YWx1ZS50b1N0cmluZygpO1xyXG4gICAgICAgIGVsc2UgaWYgKHN1bS5jYWxjdWxhdGUpXHJcbiAgICAgICAgICBzd2l0Y2ggKHN1bS5jYWxjdWxhdGUpIHtcclxuICAgICAgICAgICAgY2FzZSAnbW9udGgnOlxyXG4gICAgICAgICAgICAgIHZhbHVlID0gJ00nICsgKCcwJyArIChuZXcgRGF0ZSgpLmdldE1vbnRoKCkgKyAxKS50b1N0cmluZygpKS5zbGljZSgtMik7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ3llYXInOlxyXG4gICAgICAgICAgICAgIHZhbHVlID0gbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ3F1YXJ0ZXInOlxyXG4gICAgICAgICAgICAgIHZhbHVlID0gTWF0aC5jZWlsKChuZXcgRGF0ZSgpLmdldE1vbnRoKCkgKyAxKSAvIDMpLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2FjY3VtdWxhdGUnOlxyXG4gICAgICAgICAgICAgIHZhbHVlID0gJ34nO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAuLi5zdW0sXHJcbiAgICAgICAgICB2YWx1ZVxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICBASW5wdXQoKSBmaWx0ZXJzOiBBeGVzTWFwO1xyXG4gIHByaXZhdGUgX2ludGVyYWN0aXZlOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBsb2FkaW5nOiBib29sZWFuO1xyXG4gIHB1YmxpYyBnZXQgaW50ZXJhY3RpdmUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5faW50ZXJhY3RpdmU7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBpbnRlcmFjdGl2ZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5faW50ZXJhY3RpdmUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xyXG4gIH1cclxuICBAT3V0cHV0KCdleHBsb3JlJykgcmVhZG9ubHkgb25FeHBsb3JlID0gbmV3IEV2ZW50RW1pdHRlcjxBeGlzQ2xpY2tFdmVudD4oKTtcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgbG9hZGluZ0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICByb3dzOiBIZWFkZXJJbmZvW107XHJcbiAgY29sdW1uczogSGVhZGVySW5mb1tdO1xyXG4gIGluZGljZXM6IEN1YmVJbmRleFtdID0gW107XHJcbiAgZGF0YTogeyBbc2VyaWVzOiBzdHJpbmddOiB7IFt4QXhpczogc3RyaW5nXTogc3RyaW5nOyB9OyB9O1xyXG4gIHRvdGFsczogeyBbeEF4aXM6IHN0cmluZ106IG51bWJlciB9O1xyXG4gIGN1YmU6IEN1YmU7XHJcbiAgeEF4aXM6IEN1YmVBeGlzO1xyXG4gIHNlcmllczogQ3ViZUF4aXM7XHJcbiAgcHJpdmF0ZSBfZGF0YTogRGF0YU1hcDtcclxuICBwcml2YXRlIF9wcmVwYXJlOiBQcm9taXNlPGFueT47XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9zYjogUHJvbXB0U2VydmljZSxcclxuICAgIHByaXZhdGUgX3NlcnZpY2U6IEN1YmVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9kczogRGF0YXNvdXJjZVNlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydfY3ViZSddKSB7XHJcbiAgICAgIHRoaXMuY3ViZSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlcy5maW5kKGMgPT4gYy5uYW1lID09PSB0aGlzLl9jdWJlKTtcclxuICAgICAgdGhpcy5DVVJSRU5DWSA9IHRoaXMuY3ViZS5jdXJyZW5jeUNvZGUgLyp8fCB0aGlzLl9zZXJ2aWNlLmN1cnJlbmN5Q29kZSovO1xyXG4gICAgICB0aGlzLlNZTUJPTCA9IGdldEN1cnJlbmN5U3ltYm9sKHRoaXMuQ1VSUkVOQ1ksICduYXJyb3cnKTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5jdWJlKSB7XHJcbiAgICAgIHRoaXMuY3ViZSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlc1swXTtcclxuICAgICAgdGhpcy5DVVJSRU5DWSA9IHRoaXMuY3ViZS5jdXJyZW5jeUNvZGUgLyp8fCB0aGlzLl9zZXJ2aWNlLmN1cnJlbmN5Q29kZSovO1xyXG4gICAgICB0aGlzLlNZTUJPTCA9IGdldEN1cnJlbmN5U3ltYm9sKHRoaXMuQ1VSUkVOQ1ksICduYXJyb3cnKTtcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzWydfaW5kaWNlcyddICYmIHRoaXMuX2luZGljZXMpXHJcbiAgICAgIHRoaXMuaW5kaWNlcyA9IHRoaXMuY3ViZS5pbmRpY2VzLmZpbHRlcihpID0+IGlzQXJyYXkodGhpcy5faW5kaWNlcykgPyB0aGlzLl9pbmRpY2VzLmluZGV4T2YoaS5uYW1lKSA+IC0xIDogdGhpcy5faW5kaWNlcyA9PT0gaS5uYW1lKTtcclxuICAgIGlmIChjaGFuZ2VzWydfeEF4aXMnXSB8fCBjaGFuZ2VzWydfc2VyaWVzJ10pIHtcclxuICAgICAgdGhpcy54QXhpcyA9IHRoaXMuY3ViZS5heGVzLmZpbmQoYSA9PiBhLm5hbWUgPT09IHRoaXMuX3hBeGlzKTtcclxuICAgICAgdGhpcy5zZXJpZXMgPSB0aGlzLmN1YmUuYXhlcy5maW5kKGEgPT4gYS5uYW1lID09PSB0aGlzLl9zZXJpZXMpO1xyXG4gICAgICB0aGlzLmRhdGEgPSBudWxsO1xyXG4gICAgICB0aGlzLl9wcmVwYXJlID0gZm9ya0pvaW4odGhpcy5fZHMuYWxsKHRoaXMuc2VyaWVzLmRhdGFUeXBlKS5waXBlKHRhcChyID0+XHJcbiAgICAgICAgdGhpcy5yb3dzID0gclxyXG4gICAgICApKSxcclxuICAgICAgICB0aGlzLl9kcy5hbGwodGhpcy54QXhpcy5kYXRhVHlwZSkucGlwZSh0YXAoYyA9PlxyXG4gICAgICAgICAgdGhpcy5jb2x1bW5zID0gY1xyXG4gICAgICAgICkpKS50b1Byb21pc2UoKS50aGVuKFxyXG4gICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9pbmRpY2VzICYmIHRoaXMuX2FkZGluZGljZXMoKTtcclxuICAgICAgICAgICAgdGhpcy5fc3VtICYmIHRoaXMuX2FkZHN1bWhlYWRlcnMoKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB0aGlzLnJlZnJlc2goKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGNoYW5nZXNbJ2ZpbHRlcnMnXSlcclxuICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2FkZGluZGljZXMoKSB7XHJcbiAgICBjb25zdCBjb2xsZWN0aW9uID0gdGhpcy5pbmRleEF0ID09PSAneEF4aXMnID8gdGhpcy5jb2x1bW5zIDogdGhpcy5yb3dzO1xyXG4gICAgdGhpcy5pbmRpY2VzLmZvckVhY2goKHgsIGkpID0+IHtcclxuICAgICAgY29uc3QgaGVhZGVyID0ge1xyXG4gICAgICAgIGtleTogeC5uYW1lLFxyXG4gICAgICAgIHZhbHVlOiB4LnRpdGxlLFxyXG4gICAgICAgIGluZGV4OiB4LFxyXG4gICAgICAgIGFjY3VtdWxhdGU6IHguYWNjdW11bGF0ZVxyXG4gICAgICB9IGFzIEhlYWRlckluZm87XHJcbiAgICAgIGlmICh0aGlzLnBsYWNlQXQgPT09ICd0cmFpbGluZycpXHJcbiAgICAgICAgY29sbGVjdGlvbi5wdXNoKGhlYWRlcik7XHJcbiAgICAgIGVsc2VcclxuICAgICAgICBjb2xsZWN0aW9uLnNwbGljZShpLCAwLCBoZWFkZXIpO1xyXG4gICAgfSlcclxuICB9XHJcbiAgcHJpdmF0ZSBfYWRkc3VtaGVhZGVycygpIHtcclxuICAgIHRoaXMuX3N1bS5mb3JFYWNoKChzLCBpKSA9PiB7XHJcbiAgICAgIGxldCB7IHZhbHVlLCBheGlzIH0gPSBzO1xyXG4gICAgICBjb25zdCBoZWFkZXIgPSB7XHJcbiAgICAgICAga2V5OiBTVU1fUFJFRklYICsgaSxcclxuICAgICAgICB2YWx1ZTogcy50aXRsZSxcclxuICAgICAgICBhY2N1bXVsYXRlOiAhaXNGdW5jdGlvbihzLmNhbGN1bGF0ZSkgJiYgcy5jYWxjdWxhdGUgIT09ICdhY2N1bXVsYXRlJyxcclxuICAgICAgICBleHBsb3JhYmxlOiAhaXNGdW5jdGlvbihzLmNhbGN1bGF0ZSkgJiYgcy5leHBsb3JhYmxlICE9PSBmYWxzZSxcclxuICAgICAgICBwcmVjaXNpb246IHMucHJlY2lzaW9uLFxyXG4gICAgICAgIHN1bTogc1xyXG4gICAgICB9IGFzIEhlYWRlckluZm87XHJcbiAgICAgIGxldCBqID0gMDtcclxuICAgICAgaWYgKGF4aXMgPT09ICd4QXhpcycpIHtcclxuICAgICAgICB3aGlsZSAoaiA8IHRoaXMuY29sdW1ucy5sZW5ndGgpIHtcclxuICAgICAgICAgIGlmICh0aGlzLmNvbHVtbnNbal0ua2V5ID09PSB2YWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbHVtbnMuc3BsaWNlKGogKyAxLCAwLCBoZWFkZXIpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGorKztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGogPT09IHRoaXMuY29sdW1ucy5sZW5ndGgpXHJcbiAgICAgICAgICB0aGlzLmNvbHVtbnMucHVzaChoZWFkZXIpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHdoaWxlIChqIDwgdGhpcy5yb3dzLmxlbmd0aCkge1xyXG4gICAgICAgICAgaWYgKHRoaXMucm93c1tqXS5rZXkgPT09IHZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMucm93cy5zcGxpY2UoaiArIDEsIDAsIGhlYWRlcik7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaisrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaiA9PT0gdGhpcy5yb3dzLmxlbmd0aClcclxuICAgICAgICAgIHRoaXMucm93cy5wdXNoKGhlYWRlcik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcmVmcmVzaCgpIHtcclxuICAgIGNvbnN0IHByb2dyZXNzVGFzayA9IHNldFRpbWVvdXQoKCkgPT5cclxuICAgICAgdGhpcy5sb2FkaW5nQ2hhbmdlLm5leHQodGhpcy5sb2FkaW5nID0gdHJ1ZSlcclxuICAgICAgLCBMT0FESU5HX0RFTEFZKTtcclxuICAgIHRoaXMuX3ByZXBhcmUudGhlbigoKSA9PlxyXG4gICAgICB0aGlzLl9zZXJ2aWNlLnNlcmllcyh0aGlzLmN1YmUubmFtZSwgdGhpcy5feEF4aXMsIHtcclxuICAgICAgICBzZXJpZXM6IHRoaXMuX3NlcmllcyxcclxuICAgICAgICBpbmRpY2VzOiB0aGlzLl9pbmRpY2VzLFxyXG4gICAgICAgIGZpbHRlcnM6IHRoaXMuZmlsdGVycyxcclxuICAgICAgICBpbnZlcnNlSW5kaWNlczogdGhpcy5pbmRleEF0ID09PSAneEF4aXMnLFxyXG4gICAgICAgIHNjb3BlOiB0aGlzLnNjb3BlXHJcbiAgICAgIH0pLnN1YnNjcmliZShyID0+IHtcclxuICAgICAgICBjb25zdCBkYXRhID0gdGhpcy5fc2VyaWFsaXplKHIpO1xyXG4gICAgICAgIHRoaXMuX2Nsb25lKGRhdGEpO1xyXG4gICAgICAgIHRoaXMuX3N1bSAmJiB0aGlzLl9jYWxjdWxhdGVzdW0oZGF0YSk7XHJcbiAgICAgICAgdGhpcy5fdG90YWxzKGRhdGEpO1xyXG4gICAgICAgIHRoaXMuX3N0cmluZ2lmeShkYXRhKTtcclxuICAgICAgICB0aGlzLmRhdGEgPSBkYXRhIGFzIGFueTtcclxuICAgICAgICBjbGVhclRpbWVvdXQocHJvZ3Jlc3NUYXNrKTtcclxuICAgICAgICB0aGlzLmxvYWRpbmdDaGFuZ2UubmV4dCh0aGlzLmxvYWRpbmcgPSBmYWxzZSk7XHJcbiAgICAgIH0sXHJcbiAgICAgICAgKGU6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9zYi5lcnJvcihlcnJSZXNvdXJjZShlKSk7XHJcbiAgICAgICAgICBjbGVhclRpbWVvdXQocHJvZ3Jlc3NUYXNrKTtcclxuICAgICAgICAgIHRoaXMubG9hZGluZ0NoYW5nZS5uZXh0KHRoaXMubG9hZGluZyA9IGZhbHNlKTtcclxuICAgICAgICAgIHRoaXMubG9hZGluZ0NoYW5nZS5lcnJvcihlKTtcclxuICAgICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfc2VyaWFsaXplKHNlcmllczogU2VyaWVzW10pIHtcclxuICAgIGNvbnN0IGQgPSB7fTtcclxuICAgIHNlcmllcy5mb3JFYWNoKHMgPT4ge1xyXG4gICAgICBpZiAocy5pbmRleCkge1xyXG4gICAgICAgIGlmICh0aGlzLmluZGV4QXQgPT09ICd4QXhpcycpXHJcbiAgICAgICAgICBzLnBvaW50cy5mb3JFYWNoKHAgPT4ge1xyXG4gICAgICAgICAgICBsZXQgcm93ID0gZFtwLnhdO1xyXG4gICAgICAgICAgICBpZiAoIXJvdylcclxuICAgICAgICAgICAgICByb3cgPSBkW3AueF0gPSB7fTtcclxuICAgICAgICAgICAgcm93W3MuaW5kZXhdID0gcC55O1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBjb25zdCByb3cgPSBkW3MuaW5kZXhdID0ge307XHJcbiAgICAgICAgICBzLnBvaW50cy5mb3JFYWNoKHAgPT4gcm93W3AueF0gPSBwLnkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgY29uc3Qgcm93ID0gZFtzLm5hbWVdID0ge307XHJcbiAgICAgICAgcy5wb2ludHMuZm9yRWFjaChwID0+IHJvd1twLnhdID0gcC55KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gZDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2Nsb25lKGRhdGEpIHtcclxuICAgIHRoaXMuX2RhdGEgPSB7fTtcclxuICAgIHRoaXMucm93cy5mb3JFYWNoKHIgPT4ge1xyXG4gICAgICBjb25zdCBrZXkgPSByLmtleTtcclxuICAgICAgaWYgKCFkYXRhW2tleV0pIGRhdGFba2V5XSA9IHt9O1xyXG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMuX2RhdGFba2V5XSA9IHt9LCBkYXRhW2tleV0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3RvdGFscyhkYXRhOiBEYXRhTWFwKSB7XHJcbiAgICBsZXQgZ3JhbmQgPSAwO1xyXG4gICAgdGhpcy5yb3dzLmZvckVhY2gociA9PiB7XHJcbiAgICAgIGNvbnN0IGRhdGFyb3cgPSBkYXRhW3Iua2V5XTtcclxuICAgICAgaWYgKGRhdGFyb3cpIHtcclxuICAgICAgICBsZXQgY29sdW1uVG90YWwgPSAwO1xyXG4gICAgICAgIHRoaXMuY29sdW1ucy5mb3JFYWNoKGMgPT4ge1xyXG4gICAgICAgICAgaWYgKGMuYWNjdW11bGF0ZSA9PT0gZmFsc2UgfHwgYy5zdW0gIT09IHVuZGVmaW5lZCkgcmV0dXJuO1xyXG4gICAgICAgICAgbGV0IHZhbCA9IGRhdGFyb3dbYy5rZXldO1xyXG4gICAgICAgICAgaWYgKHZhbCAhPT0gdW5kZWZpbmVkKVxyXG4gICAgICAgICAgICBjb2x1bW5Ub3RhbCArPSB0aGlzLmluZGljZXMubGVuZ3RoID09PSAwIHx8IHRoaXMuaW5kZXhBdCAhPT0gJ3hBeGlzJyB8fFxyXG4gICAgICAgICAgICAgIGMuaW5kZXggIT09IHVuZGVmaW5lZCA/IHZhbCA6IC12YWw7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgZGF0YXJvd1snX3RvdGFsJ10gPSB0aGlzLl9mb3JtYXQoY29sdW1uVG90YWwsIHIpO1xyXG4gICAgICAgIGlmICghci5zdW0pXHJcbiAgICAgICAgICBncmFuZCArPSB0aGlzLmluZGljZXMubGVuZ3RoID09PSAwIHx8XHJcbiAgICAgICAgICAgIHRoaXMuaW5kZXhBdCA9PT0gJ3hBeGlzJyB8fFxyXG4gICAgICAgICAgICByLmluZGV4ICE9PSB1bmRlZmluZWQgPyBjb2x1bW5Ub3RhbCA6IC1jb2x1bW5Ub3RhbDtcclxuICAgICAgfVxyXG4gICAgICBlbHNlXHJcbiAgICAgICAgZGF0YVtyLmtleV0gPSB7XHJcbiAgICAgICAgICAnX3RvdGFsJzogJzAnIGFzIGFueVxyXG4gICAgICAgIH07XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IHRvdGFscyA9IGRhdGFbJ190b3RhbCddID0gdGhpcy50b3RhbHMgPSB7fTtcclxuICAgIHRvdGFsc1snX2dyYW5kJ10gPSB0aGlzLl9mb3JtYXQoZ3JhbmQpO1xyXG4gICAgdGhpcy5jb2x1bW5zLmZvckVhY2goYyA9PiB7XHJcbiAgICAgIGxldCByb3dUb3RhbCA9IDA7XHJcbiAgICAgIHRoaXMucm93cy5mb3JFYWNoKHJvdyA9PiB7XHJcbiAgICAgICAgaWYgKHJvdy5hY2N1bXVsYXRlID09PSBmYWxzZSB8fCByb3cuc3VtICE9PSB1bmRlZmluZWQpIHJldHVybjtcclxuICAgICAgICBjb25zdCB2YWwgPSBkYXRhW3Jvdy5rZXldW2Mua2V5XTtcclxuICAgICAgICBpZiAodmFsICE9PSB1bmRlZmluZWQpXHJcbiAgICAgICAgICByb3dUb3RhbCArPSB0aGlzLmluZGljZXMubGVuZ3RoID09PSAwIHx8IHRoaXMuaW5kZXhBdCA9PT0gJ3hBeGlzJyB8fFxyXG4gICAgICAgICAgICByb3cuaW5kZXggIT09IHVuZGVmaW5lZCA/IHZhbCA6IC12YWw7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0b3RhbHNbYy5rZXldID0gdGhpcy5fZm9ybWF0KHJvd1RvdGFsLCBjKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBwcml2YXRlIF9jYWxjdWxhdGVzdW0oZGF0YTogRGF0YU1hcCkge1xyXG4gICAgdGhpcy5fc3VtLmZvckVhY2goKHMsIGkpID0+IHtcclxuICAgICAgY29uc3QgeyBheGlzLCB2YWx1ZSwgY2FsY3VsYXRlIH0gPSBzO1xyXG4gICAgICBjb25zdCBuYW1lID0gU1VNX1BSRUZJWCArIGk7XHJcbiAgICAgIGlmIChheGlzID09PSAneEF4aXMnKSB7XHJcbiAgICAgICAgdGhpcy5yb3dzLmZvckVhY2gociA9PiB7XHJcbiAgICAgICAgICBpZiAoci5hY2N1bXVsYXRlID09PSBmYWxzZSkgcmV0dXJuO1xyXG4gICAgICAgICAgY29uc3QgZGF0YXJvdyA9IGRhdGFbci5rZXldO1xyXG4gICAgICAgICAgaWYgKCFkYXRhcm93KVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICBsZXQgc3VtID0gMDtcclxuICAgICAgICAgIGZvciAobGV0IGNvbHVtbiBvZiB0aGlzLmNvbHVtbnMpIHtcclxuICAgICAgICAgICAgaWYgKGNvbHVtbi5pbmRleCkgY29udGludWU7XHJcbiAgICAgICAgICAgIGxldCBrZXkgPSBjb2x1bW4ua2V5O1xyXG4gICAgICAgICAgICBpZiAoY29sdW1uLnN1bSkgY29udGludWU7XHJcbiAgICAgICAgICAgIGlmIChpc0Z1bmN0aW9uKGNhbGN1bGF0ZSkpIHtcclxuICAgICAgICAgICAgICBsZXQgdmFsID0gKGNhbGN1bGF0ZSBhcyBDYWxjdWxhdGVGbikoci5rZXksIHRoaXMuX2RhdGEpO1xyXG4gICAgICAgICAgICAgIGlmICh2YWwgIT09IHVuZGVmaW5lZCAmJiB2YWwgIT09IG51bGwpXHJcbiAgICAgICAgICAgICAgICBzdW0gKz0gdmFsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgIGxldCB2YWwgPSBkYXRhcm93W2tleV07XHJcbiAgICAgICAgICAgICAgaWYgKHZhbCAhPT0gdW5kZWZpbmVkKVxyXG4gICAgICAgICAgICAgICAgc3VtICs9IHZhbDtcclxuICAgICAgICAgICAgICBpZiAoa2V5ID09PSB2YWx1ZSlcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkYXRhcm93W25hbWVdID0gc3VtO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGxldCBkYXRhcm93ID0gZGF0YVtuYW1lXSA9IHt9O1xyXG4gICAgICAgIHRoaXMuY29sdW1ucy5mb3JFYWNoKGNvbHVtbiA9PiB7XHJcbiAgICAgICAgICBsZXQgc3VtID0gMDtcclxuICAgICAgICAgIGZvciAobGV0IHJvdyBvZiB0aGlzLnJvd3MpIHtcclxuICAgICAgICAgICAgaWYgKHJvdy5pbmRleCkgY29udGludWU7XHJcbiAgICAgICAgICAgIGxldCBrZXkgPSByb3cua2V5O1xyXG4gICAgICAgICAgICBpZiAoaXNGdW5jdGlvbihjYWxjdWxhdGUpKSB7XHJcbiAgICAgICAgICAgICAgbGV0IHZhbCA9IChjYWxjdWxhdGUgYXMgQ2FsY3VsYXRlRm4pKHJvdy5rZXksIHRoaXMuX2RhdGEpO1xyXG4gICAgICAgICAgICAgIGlmICh2YWwgIT09IHVuZGVmaW5lZCAmJiB2YWwgIT09IG51bGwpXHJcbiAgICAgICAgICAgICAgICBzdW0gKz0gdmFsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgIGxldCBkYXRhcm93ID0gZGF0YVtrZXldO1xyXG4gICAgICAgICAgICAgIGlmICghZGF0YXJvdykgY29udGludWU7XHJcbiAgICAgICAgICAgICAgaWYgKGNvbHVtbi5zdW0pIHtcclxuICAgICAgICAgICAgICAgIGxldCB2YWwgPSBkYXRhcm93W2NvbHVtbi5rZXldO1xyXG4gICAgICAgICAgICAgICAgaWYgKHZhbCAhPSB1bmRlZmluZWQpIHN1bSArPSB2YWw7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgbGV0IHZhbCA9IGRhdGFyb3dbY29sdW1uLmtleV07XHJcbiAgICAgICAgICAgICAgICBpZiAodmFsICE9PSB1bmRlZmluZWQpXHJcbiAgICAgICAgICAgICAgICAgIHN1bSArPSB2YWw7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmIChrZXkgPT09IHZhbHVlKVxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRhdGFyb3dbY29sdW1uLmtleV0gPSBzdW07XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBwcml2YXRlIF9zdHJpbmdpZnkoZGF0YTogRGF0YU1hcCkge1xyXG4gICAgdGhpcy5jb2x1bW5zLmZvckVhY2goYyA9PiB7XHJcbiAgICAgIHRoaXMucm93cy5mb3JFYWNoKHIgPT4ge1xyXG4gICAgICAgIGNvbnN0IHhBeGlzID0gci5rZXksIHNlcmllcyA9IGMua2V5O1xyXG4gICAgICAgIGlmIChjLnN1bSkgZGF0YVt4QXhpc11bc2VyaWVzXSA9IHRoaXMuX2Zvcm1hdChkYXRhW3hBeGlzXVtzZXJpZXNdLCBjLnN1bSk7XHJcbiAgICAgICAgZWxzZSBpZiAoci5zdW0pIGRhdGFbeEF4aXNdW3Nlcmllc10gPSB0aGlzLl9mb3JtYXQoZGF0YVt4QXhpc11bc2VyaWVzXSwgci5zdW0pO1xyXG4gICAgICAgIGVsc2UgZGF0YVt4QXhpc11bc2VyaWVzXSA9XHJcbiAgICAgICAgICBmb3JtYXROdW1iZXIoZGF0YVt4QXhpc11bc2VyaWVzXSB8fCAwLCB0aGlzLkxBTkdVQUdFLCB0aGlzLlBSRUNJU0lPTikgYXMgYW55O1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBwcml2YXRlIF9mb3JtYXQodmFsLCBvcHRpb25zPzogeyBmb3JtYXQ/OiBzdHJpbmcsIHByZWNpc2lvbj86IHN0cmluZyB9KTogYW55IHtcclxuICAgIGlmICh2YWwgPT09IDApIHJldHVybiAnMCc7XHJcbiAgICBpZiAob3B0aW9ucykge1xyXG4gICAgICBpZiAob3B0aW9ucy5mb3JtYXQgPT09ICdwZXJjZW50JylcclxuICAgICAgICByZXR1cm4gZm9ybWF0UGVyY2VudCh2YWwsIHRoaXMuTEFOR1VBR0UsIG9wdGlvbnMucHJlY2lzaW9uIHx8IHRoaXMuUFJFQ0lTSU9OKTtcclxuICAgICAgZWxzZSBpZiAob3B0aW9ucy5mb3JtYXQgPT09ICdjdXJyZW5jeScpXHJcbiAgICAgICAgcmV0dXJuIGZvcm1hdEN1cnJlbmN5KHZhbCwgdGhpcy5MQU5HVUFHRSwgdGhpcy5TWU1CT0wsIHRoaXMuQ1VSUkVOQ1ksIG9wdGlvbnMucHJlY2lzaW9uIHx8IHRoaXMuUFJFQ0lTSU9OKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLkNVUlJFTkNZKVxyXG4gICAgICByZXR1cm4gZm9ybWF0Q3VycmVuY3kodmFsLCB0aGlzLkxBTkdVQUdFLCB0aGlzLlNZTUJPTCwgdGhpcy5DVVJSRU5DWSwgdGhpcy5QUkVDSVNJT04pO1xyXG4gICAgZWxzZVxyXG4gICAgICByZXR1cm4gZm9ybWF0TnVtYmVyKHZhbCwgdGhpcy5MQU5HVUFHRSwgdGhpcy5QUkVDSVNJT04pO1xyXG4gIH1cclxuICBleHBsb3JlKGNvbHVtbjogSGVhZGVySW5mbywgcm93OiBIZWFkZXJJbmZvKSB7XHJcbiAgICBpZiAoIXRoaXMuaW50ZXJhY3RpdmUgfHwgY29sdW1uLmV4cGxvcmFibGUgPT09IGZhbHNlIHx8IHJvdy5leHBsb3JhYmxlID09PSBmYWxzZSkgcmV0dXJuO1xyXG4gICAgbGV0IHg6IEF4aXNUeXBlLCBzZXJpZXM6IEF4aXNUeXBlLCBpbmRleDtcclxuICAgIGNvbnN0IGF4ZXMgPSB7IC4uLnRoaXMuZmlsdGVycyB9IGFzIEF4ZXNNYXA7XHJcbiAgICBpZiAoIWNvbHVtbi5zdW0pXHJcbiAgICAgIHggPSBjb2x1bW4ua2V5O1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIGxldCB7IHZhbHVlLCBjYWxjdWxhdGUgfSA9IGNvbHVtbi5zdW07XHJcbiAgICAgIGlmIChpc0Z1bmN0aW9uKGNhbGN1bGF0ZSkpIHJldHVybjtcclxuICAgICAgeCA9IFtdIGFzIHN0cmluZ1tdO1xyXG4gICAgICBmb3IgKGxldCBjb2x1bW4gb2YgdGhpcy5jb2x1bW5zKSB7XHJcbiAgICAgICAgaWYgKGNvbHVtbi5zdW0pXHJcbiAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICBsZXQga2V5ID0gY29sdW1uLmtleTtcclxuICAgICAgICB4LnB1c2goa2V5KTtcclxuICAgICAgICBpZiAoa2V5ID09PSB2YWx1ZSlcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBheGVzW3RoaXMueEF4aXMubmFtZV0gPSB4O1xyXG4gICAgaWYgKHJvdy5pbmRleClcclxuICAgICAgaW5kZXggPSByb3cuaW5kZXgubmFtZTtcclxuICAgIGVsc2Uge1xyXG4gICAgICBpZiAocm93LnN1bSkge1xyXG4gICAgICAgIGxldCB7IHZhbHVlLCBjYWxjdWxhdGUgfSA9IHJvdy5zdW07XHJcbiAgICAgICAgaWYgKGlzRnVuY3Rpb24oY2FsY3VsYXRlKSkgcmV0dXJuO1xyXG4gICAgICAgIHNlcmllcyA9IFtdIGFzIHN0cmluZ1tdO1xyXG4gICAgICAgIGZvciAobGV0IHJvdyBvZiB0aGlzLnJvd3MpIHtcclxuICAgICAgICAgIGlmIChyb3cuc3VtKVxyXG4gICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgIGxldCBrZXkgPSByb3cua2V5O1xyXG4gICAgICAgICAgc2VyaWVzLnB1c2goa2V5KTtcclxuICAgICAgICAgIGlmIChrZXkgPT09IHZhbHVlKVxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZWxzZVxyXG4gICAgICAgIHNlcmllcyA9IHJvdy5rZXk7XHJcbiAgICAgIGF4ZXNbdGhpcy5zZXJpZXMubmFtZV0gPSBzZXJpZXM7XHJcbiAgICAgIGluZGV4ID0gbnVsbDtcclxuICAgIH1cclxuICAgIHRoaXMub25FeHBsb3JlLmVtaXQoeyBheGVzLCBpbmRleCB9KTtcclxuICB9XHJcbiAgZXhwb3J0KCkge1xyXG4gICAgY29uc3QgbnVtYmVyRm9ybWF0ID0gdGhpcy5fc2VydmljZS5udW1iZXJGb3JtYXQsXHJcbiAgICAgIGNvbHVtbnMgPSB0aGlzLmNvbHVtbnMuZmlsdGVyKGMgPT4gIWMuc3VtKSxcclxuICAgICAgY2VsbHMgPSBbXSBhcyBDZWxsW10sXHJcbiAgICAgIHJvd3MgPSBbeyBpbmRleDogMSwgY2VsbHMgfV07XHJcbiAgICBjb2x1bW5zLmZvckVhY2goKGMsIGopID0+IGNlbGxzLnB1c2goe1xyXG4gICAgICBpbmRleDogaiArIDIsXHJcbiAgICAgIHZhbHVlOiBjLnZhbHVlLCBzdHlsZTogeyBib2xkOiB0cnVlIH1cclxuICAgIH0pKTtcclxuXHJcbiAgICB0aGlzLnJvd3MuZmlsdGVyKHIgPT4gIXIuc3VtKS5mb3JFYWNoKChyLCBpKSA9PiB7XHJcbiAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLl9kYXRhW3Iua2V5XSxcclxuICAgICAgICBjZWxscyA9IFt7IGluZGV4OiAxLCB2YWx1ZTogci52YWx1ZSwgc3R5bGU6IHsgYm9sZDogdHJ1ZSB9IH1dIGFzIENlbGxbXTtcclxuICAgICAgY29sdW1ucy5mb3JFYWNoKChjLCBqKSA9PiBjZWxscy5wdXNoKHtcclxuICAgICAgICB0eXBlOiAnbnVtYmVyJyxcclxuICAgICAgICBpbmRleDogaiArIDIsXHJcbiAgICAgICAgdmFsdWU6IGRhdGEgJiYgZGF0YVtjLmtleV0gIT09IHVuZGVmaW5lZCA/IGRhdGFbYy5rZXldIDogMCxcclxuICAgICAgICBzdHlsZToge1xyXG4gICAgICAgICAgbnVtYmVyRm9ybWF0LFxyXG4gICAgICAgICAgaEFsaWduOiAncmlnaHQnLFxyXG4gICAgICAgIH1cclxuICAgICAgfSBhcyBDZWxsKSk7XHJcbiAgICAgIHJvd3MucHVzaCh7XHJcbiAgICAgICAgaW5kZXg6IGkgKyAyLFxyXG4gICAgICAgIGNlbGxzXHJcbiAgICAgIH0gYXMgUm93KTtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgYm9vayA9IG5ldyBXb3JrYm9vayhcclxuICAgICAge1xyXG4gICAgICAgIHdvcmtzaGVldHM6IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgZW5hYmxlUnRsOiB0aGlzLl9zZXNzaW9uLmludmVyc2UsXHJcbiAgICAgICAgICAgIG5hbWU6IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1NoZWV0TicsIDEpLFxyXG4gICAgICAgICAgICBjb2x1bW5zOiBjb2x1bW5zLm1hcCgoXywgaSkgPT4gKHsgaW5kZXg6IGkgKyAxLCB3aWR0aDogMTUwIH0gYXMgQ29sdW1uKSksXHJcbiAgICAgICAgICAgIHJvd3MsXHJcbiAgICAgICAgICB9IGFzIFdvcmtzaGVldCxcclxuICAgICAgICBdLFxyXG4gICAgICB9LFxyXG4gICAgICAneGxzeCdcclxuICAgICk7XHJcbiAgICB0aGlzLl9zZXJ2aWNlLm5hbWVPZih0aGlzLmZpbHRlcnMsIHRoaXMuY3ViZS5uYW1lKS5zdWJzY3JpYmUobiA9PlxyXG4gICAgICBib29rLnNhdmUoYCR7biB8fCB0aGlzLl90cmFuc2xhdGUuZ2V0KCdNYXRyaXgnKX0ueGxzeGApKTtcclxuICB9XHJcbiAgX21vdmUoeCwgeSkge1xyXG4gICAgbGV0IHJvd0luZGV4ID0gMDtcclxuICAgIGZvciAobGV0IGIgPSAwOyBiIDwgdGhpcy50YWJsZUVsZW1lbnQubmF0aXZlRWxlbWVudC50Qm9kaWVzLmxlbmd0aDsgYisrKSB7XHJcbiAgICAgIGxldCB0Qm9keSA9IHRoaXMudGFibGVFbGVtZW50Lm5hdGl2ZUVsZW1lbnQudEJvZGllcy5pdGVtKGIpO1xyXG4gICAgICBmb3IgKGxldCByID0gMDsgciA8IHRCb2R5LnJvd3MubGVuZ3RoOyByKyspIHtcclxuICAgICAgICBsZXQgcm93ID0gdEJvZHkucm93cy5pdGVtKHIpO1xyXG4gICAgICAgIGZvciAobGV0IGMgPSAwOyBjIDwgcm93LmNlbGxzLmxlbmd0aDsgYysrKSB7XHJcbiAgICAgICAgICBsZXQgY2VsbCA9IHJvdy5jZWxscy5pdGVtKGMpO1xyXG4gICAgICAgICAgaWYgKGMgPT09IHgpXHJcbiAgICAgICAgICAgIGNlbGwuY2xhc3NMaXN0LmFkZCgnY2VsbC14Jyk7XHJcbiAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIGNlbGwuY2xhc3NMaXN0LnJlbW92ZSgnY2VsbC14Jyk7XHJcbiAgICAgICAgICBpZiAocm93SW5kZXggPT09IHkpXHJcbiAgICAgICAgICAgIGNlbGwuY2xhc3NMaXN0LmFkZCgnY2VsbC15Jyk7XHJcbiAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIGNlbGwuY2xhc3NMaXN0LnJlbW92ZSgnY2VsbC15Jyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJvd0luZGV4Kys7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IHRGb290ID0gdGhpcy50YWJsZUVsZW1lbnQubmF0aXZlRWxlbWVudC50Rm9vdCwgcm93ID0gdEZvb3Qucm93c1swXTtcclxuICAgICAgZm9yIChsZXQgYyA9IDA7IGMgPCByb3cuY2VsbHMubGVuZ3RoOyBjKyspIHtcclxuICAgICAgICBsZXQgY2VsbCA9IHJvdy5jZWxscy5pdGVtKGMpO1xyXG4gICAgICAgIGlmIChjID09PSB4KVxyXG4gICAgICAgICAgY2VsbC5jbGFzc0xpc3QuYWRkKCdjZWxsLXgnKTtcclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICBjZWxsLmNsYXNzTGlzdC5yZW1vdmUoJ2NlbGwteCcpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbnR5cGUgRGF0YU1hcCA9IHsgW3Nlcmllczogc3RyaW5nXTogeyBbeEF4aXM6IHN0cmluZ106IG51bWJlcjsgfTsgfTtcclxuXHJcbmV4cG9ydCB0eXBlIFN1bVNldHRpbmdzID0ge1xyXG4gIHZhbHVlPzogc3RyaW5nIHwgbnVtYmVyO1xyXG4gIGF4aXM6ICdzZXJpZXMnIHwgJ3hBeGlzJztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIGZvcm1hdD86ICdwZXJjZW50JyB8ICdjdXJyZW5jeScgfCAnbnVtYmVyJztcclxuICBwcmVjaXNpb24/OiBzdHJpbmc7XHJcbiAgYWNjdW11bGF0ZT86IGJvb2xlYW47XHJcbiAgZXhwbG9yYWJsZT86IGJvb2xlYW47XHJcbiAgY2FsY3VsYXRlPzogJ3F1YXJ0ZXInIHwgJ3llYXInIHwgJ21vbnRoJyB8ICdhY2N1bXVsYXRlJyB8IENhbGN1bGF0ZUZuO1xyXG59XHJcblxyXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQ2FsY3VsYXRlRm4ge1xyXG4gICh2YWx1ZTogc3RyaW5nLCBkYXRhOiB7IFtzZXJpZXM6IHN0cmluZ106IHsgW3hBeGlzOiBzdHJpbmddOiBudW1iZXI7IH07IH0pOiBudW1iZXI7XHJcbn1cclxuXHJcbnR5cGUgSGVhZGVySW5mbyA9IHtcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZTogYW55O1xyXG4gIHByZWNpc2lvbj86IHN0cmluZztcclxuICBleHBsb3JhYmxlPzogYm9vbGVhbjtcclxuICBhY2N1bXVsYXRlPzogYm9vbGVhbjtcclxuICBzdW0/OiBTdW1TZXR0aW5ncztcclxuICBpbmRleD86IEN1YmVJbmRleDtcclxufTtcclxuaW50ZXJmYWNlIENlbGwgeyB9XHJcbiIsIjx0YWJsZSAjdGFibGUgY2xhc3M9XCJtYXQtdGFibGUgY3ViZS10YWJsZVwiIChtb3VzZWxlYXZlKT1cIl9tb3ZlKC0xLCAtMSlcIiAqbmdJZj1cImRhdGFcIj5cclxuICA8dGhlYWQ+XHJcbiAgICA8IS0tIGhlYWRlcnMgLS0+XHJcbiAgICA8dHIgY2xhc3M9XCJtYXQtaGVhZGVyLXJvd1wiPlxyXG4gICAgICA8dGg+PC90aD5cclxuICAgICAgPHRoICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uczsgbGV0IHggPSBpbmRleFwiXHJcbiAgICAgICAgICAobW91c2VlbnRlcik9XCJfbW92ZSh4ICsgMSwgLTIpXCIgY2xhc3M9XCJtYXQtaGVhZGVyLWNlbGxcIj5cclxuICAgICAgICB7eyBjb2x1bW4udmFsdWUgfX1cclxuICAgICAgPC90aD5cclxuICAgICAgPHRoIGNsYXNzPVwibWF0LWhlYWRlci1jZWxsXCI+e3t4QXhpc1RvdGFsTGFiZWx9fTwvdGg+XHJcbiAgICA8L3RyPlxyXG4gIDwvdGhlYWQ+XHJcbiAgPHRib2R5PlxyXG4gICAgPCEtLSByb3dzIC0tPlxyXG4gICAgPHRyICpuZ0Zvcj1cImxldCByb3cgb2Ygcm93czsgbGV0IHkgPSBpbmRleFwiIGNsYXNzPVwibWF0LXJvd1wiXHJcbiAgICAgICAgW2NsYXNzLmN1YmUtaW5kZXhdPVwicm93LmluZGV4XCI+XHJcbiAgICAgIDx0aCBjbGFzcz1cIm1hdC1oZWFkZXItY2VsbFwiIChtb3VzZWVudGVyKT1cIl9tb3ZlKC0yLCB5IClcIj57eyByb3cudmFsdWUgfX08L3RoPlxyXG4gICAgICA8dGQgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zOyBsZXQgeCA9IGluZGV4XCIgY2xhc3M9XCJtYXQtY2VsbCBmaWd1cmVcIlxyXG4gICAgICAgICAgKG1vdXNlZW50ZXIpPVwiX21vdmUoeCArIDEsIHkgKVwiPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiZGF0YVtyb3cua2V5XVtjb2x1bW4ua2V5XSAhPT0gJzAnOyBlbHNlIHplcm9cIiBcclxuICAgICAgICAgIFtjbGFzcy5leHBsb3JhYmxlXT1cImludGVyYWN0aXZlICYmIGNvbHVtbi5leHBsb3JhYmxlICE9PSBmYWxzZSAmJiByb3cuZXhwbG9yYWJsZSAhPT0gZmFsc2VcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cImV4cGxvcmUoY29sdW1uLCByb3cpXCI+XHJcbiAgICAgICAgICB7eyBkYXRhW3Jvdy5rZXldW2NvbHVtbi5rZXldIH19XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L3RkPlxyXG4gICAgICA8dGggY2xhc3M9XCJtYXQtY2VsbCBmaWd1cmVcIiAobW91c2VlbnRlcik9XCJfbW92ZSgtMSwgeSApXCI+XHJcbiAgICAgICAge3sgZGF0YVtyb3cua2V5XVsnX3RvdGFsJ10gfX1cclxuICAgICAgPC90aD5cclxuICAgIDwvdHI+XHJcbiAgPC90Ym9keT5cclxuICA8dGZvb3Q+XHJcbiAgICA8IS0tIGZvb3RlciAtLT5cclxuICAgIDx0ciBjbGFzcz1cIm1hdC1mb290ZXItcm93XCI+XHJcbiAgICAgIDx0ZCBjbGFzcz1cIm1hdC1mb290ZXItY2VsbFwiPnt7c2VyaWVzVG90YWxMYWJlbH19PC90ZD5cclxuICAgICAgPHRkICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uczsgbGV0IHggPSBpbmRleFwiIGNsYXNzPVwibWF0LWZvb3Rlci1jZWxsIGZpZ3VyZVwiXHJcbiAgICAgICAgICAobW91c2VlbnRlcik9XCJfbW92ZSh4ICsgMSwgLTIpXCJcclxuICAgICAgICAgIFtjbGFzcy5uZWdhdGl2ZS1maWd1cmVdPVwidG90YWxzW2NvbHVtbi5rZXldLnN0YXJ0c1dpdGgoJy0nKVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0b3RhbHNbY29sdW1uLmtleV0gIT09IHVuZGVmaW5lZFwiPlxyXG4gICAgICAgICAge3sgdG90YWxzW2NvbHVtbi5rZXldIH19XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICAgIDx0aCBjbGFzcz1cIm1hdC1mb290ZXItY2VsbCBmaWd1cmVcIj57eyB0b3RhbHNbJ19ncmFuZCddIH19PC90aD5cclxuICAgIDwvdHI+XHJcbiAgPC90Zm9vdD5cclxuPC90YWJsZT5cclxuPG5nLXRlbXBsYXRlICN6ZXJvPjA8L25nLXRlbXBsYXRlPlxyXG4iXX0=
|
@@ -0,0 +1,41 @@
|
|
1
|
+
import { FONT_FAMILY } from '../../core/colors';
|
2
|
+
/** */
|
3
|
+
export class Item {
|
4
|
+
constructor(chartType, data, palette, fill) {
|
5
|
+
this.chartType = chartType;
|
6
|
+
this.data = data;
|
7
|
+
this.palette = palette;
|
8
|
+
this.fill = fill;
|
9
|
+
this.tooltipSettings = {
|
10
|
+
visible: true,
|
11
|
+
border: { width: 0 },
|
12
|
+
format: '${name} : ${y}',
|
13
|
+
trackLineSettings: {},
|
14
|
+
textStyle: {
|
15
|
+
fontFamily: FONT_FAMILY
|
16
|
+
}
|
17
|
+
};
|
18
|
+
switch (chartType) {
|
19
|
+
case 'Area':
|
20
|
+
this.border = {
|
21
|
+
color: fill,
|
22
|
+
width: 2
|
23
|
+
};
|
24
|
+
fill = palette[1];
|
25
|
+
palette = null;
|
26
|
+
break;
|
27
|
+
case 'Line':
|
28
|
+
this.markerSettings = {
|
29
|
+
visible: ['All'],
|
30
|
+
fill
|
31
|
+
};
|
32
|
+
break;
|
33
|
+
case 'Column':
|
34
|
+
break;
|
35
|
+
case 'Pie':
|
36
|
+
break;
|
37
|
+
default:
|
38
|
+
}
|
39
|
+
}
|
40
|
+
}
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY3ViZS9wYXJhbGxlbC9pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVoRCxNQUFNO0FBQ04sTUFBTSxPQUFPLElBQUk7SUFZZixZQUNTLFNBQXdCLEVBQ3hCLElBQVksRUFDWixPQUFpQixFQUNqQixJQUFZO1FBSFosY0FBUyxHQUFULFNBQVMsQ0FBZTtRQUN4QixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osWUFBTyxHQUFQLE9BQU8sQ0FBVTtRQUNqQixTQUFJLEdBQUosSUFBSSxDQUFRO1FBZFosb0JBQWUsR0FBa0M7WUFDeEQsT0FBTyxFQUFFLElBQUk7WUFDYixNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1lBQ3BCLE1BQU0sRUFBRSxnQkFBZ0I7WUFDeEIsaUJBQWlCLEVBQUUsRUFBRTtZQUNyQixTQUFTLEVBQUU7Z0JBQ1QsVUFBVSxFQUFFLFdBQVc7YUFDeEI7U0FDRixDQUFDO1FBUUEsUUFBUSxTQUFTLEVBQUU7WUFDakIsS0FBSyxNQUFNO2dCQUNULElBQUksQ0FBQyxNQUFNLEdBQUc7b0JBQ1osS0FBSyxFQUFFLElBQUk7b0JBQ1gsS0FBSyxFQUFFLENBQUM7aUJBQ1QsQ0FBQztnQkFDRixJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNsQixPQUFPLEdBQUcsSUFBSSxDQUFDO2dCQUNmLE1BQU07WUFDUixLQUFLLE1BQU07Z0JBQ1QsSUFBSSxDQUFDLGNBQWMsR0FBRztvQkFDcEIsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDO29CQUNoQixJQUFJO2lCQUNMLENBQUM7Z0JBQ0YsTUFBTTtZQUNSLEtBQUssUUFBUTtnQkFDWCxNQUFNO1lBQ1IsS0FBSyxLQUFLO2dCQUNSLE1BQU07WUFFUixRQUFRO1NBQ1Q7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTcGFya2xpbmVCb3JkZXJNb2RlbCwgU3BhcmtsaW5lTWFya2VyU2V0dGluZ3NNb2RlbCwgU3BhcmtsaW5lVG9vbHRpcFNldHRpbmdzTW9kZWwsIFNwYXJrbGluZVR5cGUgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItYW5ndWxhci1jaGFydHMnO1xyXG5pbXBvcnQgeyBTZXJpZXMgfSBmcm9tICcuLi8uLi9jdWJlL2N1YmUuc2VydmljZSc7XHJcbmltcG9ydCB7IEZPTlRfRkFNSUxZIH0gZnJvbSAnLi4vLi4vY29yZS9jb2xvcnMnO1xyXG5cclxuLyoqICovXHJcbmV4cG9ydCBjbGFzcyBJdGVtIHtcclxuICByZWFkb25seSBtYXJrZXJTZXR0aW5nczogU3BhcmtsaW5lTWFya2VyU2V0dGluZ3NNb2RlbDtcclxuICByZWFkb25seSB0b29sdGlwU2V0dGluZ3M6IFNwYXJrbGluZVRvb2x0aXBTZXR0aW5nc01vZGVsID0ge1xyXG4gICAgdmlzaWJsZTogdHJ1ZSxcclxuICAgIGJvcmRlcjogeyB3aWR0aDogMCB9LFxyXG4gICAgZm9ybWF0OiAnJHtuYW1lfSA6ICR7eX0nLFxyXG4gICAgdHJhY2tMaW5lU2V0dGluZ3M6IHt9LFxyXG4gICAgdGV4dFN0eWxlOiB7XHJcbiAgICAgIGZvbnRGYW1pbHk6IEZPTlRfRkFNSUxZXHJcbiAgICB9XHJcbiAgfTtcclxuICByZWFkb25seSBib3JkZXI6IFNwYXJrbGluZUJvcmRlck1vZGVsO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGNoYXJ0VHlwZTogU3BhcmtsaW5lVHlwZSxcclxuICAgIHB1YmxpYyBkYXRhOiBTZXJpZXMsXHJcbiAgICBwdWJsaWMgcGFsZXR0ZTogc3RyaW5nW10sXHJcbiAgICBwdWJsaWMgZmlsbDogc3RyaW5nXHJcbiAgKSB7XHJcbiAgICBzd2l0Y2ggKGNoYXJ0VHlwZSkge1xyXG4gICAgICBjYXNlICdBcmVhJzpcclxuICAgICAgICB0aGlzLmJvcmRlciA9IHtcclxuICAgICAgICAgIGNvbG9yOiBmaWxsLFxyXG4gICAgICAgICAgd2lkdGg6IDJcclxuICAgICAgICB9O1xyXG4gICAgICAgIGZpbGwgPSBwYWxldHRlWzFdO1xyXG4gICAgICAgIHBhbGV0dGUgPSBudWxsO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdMaW5lJzpcclxuICAgICAgICB0aGlzLm1hcmtlclNldHRpbmdzID0ge1xyXG4gICAgICAgICAgdmlzaWJsZTogWydBbGwnXSxcclxuICAgICAgICAgIGZpbGxcclxuICAgICAgICB9O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdDb2x1bW4nOlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdQaWUnOlxyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgZGVmYXVsdDpcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|