@bizdoc/core 2.7.4 → 2.7.7
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/themes/brown.min.css +1 -1
- package/assets/themes/dark.min.css +1 -1
- package/assets/themes/deep-purple-light-blue.min.css +1 -1
- package/assets/themes/deep-purple-teal.min.css +1 -1
- package/assets/themes/default.min.css +22 -16
- package/assets/themes/green.min.css +1 -1
- package/assets/themes/indigo-amber.min.css +22 -16
- package/assets/themes/indigo.min.css +1 -1
- package/esm2022/lib/admin/admin-dismiss.service.mjs +3 -3
- package/esm2022/lib/admin/admin-menu.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/cube-axes-filter.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/designer-element.component.mjs +15 -15
- package/esm2022/lib/admin/architecture/designer-privileges.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/designer.base.mjs +9 -9
- package/esm2022/lib/admin/architecture/designer.component.mjs +4 -4
- package/esm2022/lib/admin/architecture/elements/action.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/analysis-view.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/analysis-widget.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/anomaly-rule.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/attribute.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/box-form.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/configuration-datasource.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/control.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/cube-index-utility.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/cube-view.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/cube.component.mjs +10 -7
- package/esm2022/lib/admin/architecture/elements/document-state-widget.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/documents-report.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/documents-widget.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/explore-view.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/folder.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/form-invite.dialog.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/form.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/guide.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/job.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/matrix-view.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/node.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/parallel-view.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/performance-report.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/performance-widget.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/pivot-view.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/policy.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/report.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/return-to-role-action.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/role.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/rule.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/source.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/state.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/sum-view.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/tasks-report.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/type.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/usage-report.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/utility.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/view.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/widget.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/icon-picker.component.mjs +3 -3
- package/esm2022/lib/admin/core/ace.input.mjs +3 -3
- package/esm2022/lib/admin/core/color-picker.input.mjs +3 -3
- package/esm2022/lib/admin/core/localized-string.component.mjs +3 -3
- package/esm2022/lib/admin/core/search.input.mjs +3 -3
- package/esm2022/lib/admin/diff/configuration-diff.component.mjs +3 -3
- package/esm2022/lib/admin/document-trace/document-trace.component.mjs +3 -3
- package/esm2022/lib/admin/document-trace/reassign.dialog.mjs +3 -3
- package/esm2022/lib/admin/document-trace/trace-element.component.mjs +3 -3
- package/esm2022/lib/admin/form/designer/box-designer.component.mjs +3 -3
- package/esm2022/lib/admin/form/designer/design-control.component.mjs +3 -3
- package/esm2022/lib/admin/form/designer/properties.component.mjs +3 -3
- package/esm2022/lib/admin/form/designer/section.component.mjs +3 -3
- package/esm2022/lib/admin/form/designer/settings.component.mjs +3 -3
- package/esm2022/lib/admin/form/form.resolve.service.mjs +3 -3
- package/esm2022/lib/admin/form/workflow/node.component.mjs +3 -3
- package/esm2022/lib/admin/form/workflow/role-node.component.mjs +3 -3
- package/esm2022/lib/admin/form/workflow/workflow.component.mjs +3 -3
- package/esm2022/lib/admin/indices/manage-cube-index.component.mjs +3 -3
- package/esm2022/lib/admin/patterns/patterns.component.mjs +3 -3
- package/esm2022/lib/admin/permissions/permissions.component.mjs +3 -3
- package/esm2022/lib/admin/positions/positions-popup.component.mjs +3 -3
- package/esm2022/lib/admin/positions/positions.component.mjs +3 -3
- package/esm2022/lib/admin/profiler/outofoffice.component.mjs +3 -3
- package/esm2022/lib/admin/profiler/profiler.component.mjs +3 -3
- package/esm2022/lib/admin/system.service.mjs +3 -3
- package/esm2022/lib/admin/utility-wrapper.component.mjs +3 -3
- package/esm2022/lib/admin/utility.pane.component.mjs +3 -3
- package/esm2022/lib/app.component.mjs +6 -6
- package/esm2022/lib/bizdoc.module.mjs +4 -4
- package/esm2022/lib/browse/browse-items.component.mjs +4 -4
- package/esm2022/lib/browse/browse.mobile.component.mjs +3 -3
- package/esm2022/lib/browse/browse.pane.component.mjs +3 -3
- package/esm2022/lib/browse/expanded-item/expanded-item.component.mjs +3 -3
- package/esm2022/lib/browse/filter/filter.component.mjs +3 -3
- package/esm2022/lib/browse/folders-menu.component.mjs +3 -3
- package/esm2022/lib/chat/chat-info.mjs +5 -5
- package/esm2022/lib/chat/chat.mobile.component.mjs +3 -3
- package/esm2022/lib/chat/chat.service.mjs +3 -3
- package/esm2022/lib/chat/contacts.component.mjs +6 -6
- package/esm2022/lib/chat/contacts.pane.component.mjs +3 -3
- package/esm2022/lib/chat/conversation.component.mjs +3 -3
- package/esm2022/lib/chat/conversation.pane.component.mjs +3 -3
- package/esm2022/lib/compose/action/action-picker.component.mjs +3 -3
- package/esm2022/lib/compose/action/action.dialog.mjs +3 -3
- package/esm2022/lib/compose/action/action.pane.dialog.exp.mjs +3 -3
- package/esm2022/lib/compose/action/assign-action.component.mjs +3 -3
- package/esm2022/lib/compose/action/moveto-action.component.mjs +3 -3
- package/esm2022/lib/compose/action/return-action.component.mjs +3 -3
- package/esm2022/lib/compose/attachments/attachments.component.mjs +3 -3
- package/esm2022/lib/compose/attachments/preview/attachment-preview.component.mjs +3 -3
- package/esm2022/lib/compose/attachments/progress-button.directive.mjs +3 -3
- package/esm2022/lib/compose/box/box.component.mjs +3 -3
- package/esm2022/lib/compose/box/control.component.mjs +3 -3
- package/esm2022/lib/compose/box/row.component.mjs +3 -3
- package/esm2022/lib/compose/can-deactivate-changes.service.mjs +3 -3
- package/esm2022/lib/compose/comments/comment.component.mjs +3 -3
- package/esm2022/lib/compose/comments/comments.component.mjs +3 -3
- package/esm2022/lib/compose/comments/comments.pane.component.mjs +3 -3
- package/esm2022/lib/compose/comments/edit-comment.component.mjs +3 -3
- package/esm2022/lib/compose/comments/edits.component.mjs +3 -3
- package/esm2022/lib/compose/comments/quick-comment.component.exp.mjs +3 -3
- package/esm2022/lib/compose/comments/votes.component.mjs +3 -3
- package/esm2022/lib/compose/compose-resolve.service.mjs +3 -3
- package/esm2022/lib/compose/compose.mobile.component.mjs +3 -3
- package/esm2022/lib/compose/compose.pane.component.mjs +3 -3
- package/esm2022/lib/compose/copy/copy.dialog.mjs +3 -3
- package/esm2022/lib/compose/dismiss.service.mjs +3 -3
- package/esm2022/lib/compose/document-resolve.service.mjs +3 -3
- package/esm2022/lib/compose/document-resolver.service.mjs +3 -3
- package/esm2022/lib/compose/document.component.mjs +3 -3
- package/esm2022/lib/compose/document.mobile.component.mjs +3 -3
- package/esm2022/lib/compose/document.pane.component.mjs +3 -3
- package/esm2022/lib/compose/events/events.component.mjs +3 -3
- package/esm2022/lib/compose/form-selector/form-selector.sheet.mjs +3 -3
- package/esm2022/lib/compose/form.component.mjs +3 -3
- package/esm2022/lib/compose/new-menu.component.mjs +3 -3
- package/esm2022/lib/compose/overlay.component.exp.mjs +3 -3
- package/esm2022/lib/compose/privilage.directive.mjs +6 -6
- package/esm2022/lib/compose/recipient-resolver.service.mjs +3 -3
- package/esm2022/lib/compose/state.component.mjs +3 -3
- package/esm2022/lib/compose/tag/tags.component.mjs +3 -3
- package/esm2022/lib/compose/trace/flow.component.mjs +3 -3
- package/esm2022/lib/compose/trace/people.component.mjs +3 -3
- package/esm2022/lib/compose/trace/trace.base.mjs +3 -3
- package/esm2022/lib/compose/trace/trace.component.mjs +3 -3
- package/esm2022/lib/compose/trace/trace.pane.component.mjs +3 -3
- package/esm2022/lib/compose/version-compare/version-compare.component.mjs +3 -3
- package/esm2022/lib/compose/version-compare/version-compare.directive.mjs +9 -9
- package/esm2022/lib/compose/version-compare/version.pane.component.mjs +3 -3
- package/esm2022/lib/core/account.service.mjs +3 -3
- package/esm2022/lib/core/animated-icon/animated-icon.directive.mjs +3 -3
- package/esm2022/lib/core/avatar/avatar.component.mjs +3 -3
- package/esm2022/lib/core/checkbox.mjs +3 -3
- package/esm2022/lib/core/component-factory-resolver.mjs +3 -3
- package/esm2022/lib/core/datasource.service.mjs +3 -3
- package/esm2022/lib/core/document-factory.service.mjs +3 -3
- package/esm2022/lib/core/fields/address.designer.mjs +3 -3
- package/esm2022/lib/core/fields/address.field.mjs +3 -3
- package/esm2022/lib/core/fields/autocomplete.field.mjs +7 -7
- package/esm2022/lib/core/fields/axes-picker.designer.mjs +3 -3
- package/esm2022/lib/core/fields/axes-picker.field.mjs +3 -3
- package/esm2022/lib/core/fields/checkbox.designer.mjs +3 -3
- package/esm2022/lib/core/fields/checkbox.field.mjs +3 -3
- package/esm2022/lib/core/fields/checklist.designer.mjs +4 -4
- package/esm2022/lib/core/fields/checklist.field.mjs +3 -3
- package/esm2022/lib/core/fields/date-range.designer.mjs +3 -3
- package/esm2022/lib/core/fields/date-range.field.mjs +3 -3
- package/esm2022/lib/core/fields/date.designer.mjs +3 -3
- package/esm2022/lib/core/fields/date.field.mjs +3 -3
- package/esm2022/lib/core/fields/expression.field.mjs +6 -6
- package/esm2022/lib/core/fields/file.designer.mjs +4 -4
- package/esm2022/lib/core/fields/file.field.mjs +3 -3
- package/esm2022/lib/core/fields/html.designer.mjs +3 -3
- package/esm2022/lib/core/fields/html.field.mjs +3 -3
- package/esm2022/lib/core/fields/input.designer.mjs +3 -3
- package/esm2022/lib/core/fields/input.field.mjs +3 -3
- package/esm2022/lib/core/fields/localized-string.field.mjs +6 -6
- package/esm2022/lib/core/fields/numeric.designer.mjs +3 -3
- package/esm2022/lib/core/fields/numeric.field.mjs +3 -3
- package/esm2022/lib/core/fields/options.base.mjs +6 -6
- package/esm2022/lib/core/fields/options.component.mjs +3 -3
- package/esm2022/lib/core/fields/radio-button.designer.mjs +3 -3
- package/esm2022/lib/core/fields/radio-button.field.mjs +3 -3
- package/esm2022/lib/core/fields/select.designer.mjs +4 -4
- package/esm2022/lib/core/fields/select.field.mjs +3 -3
- package/esm2022/lib/core/fields/signature.designer.mjs +3 -3
- package/esm2022/lib/core/fields/signature.field.mjs +3 -3
- package/esm2022/lib/core/fields/switch.field.mjs +3 -3
- package/esm2022/lib/core/fields/tags.designer.mjs +3 -3
- package/esm2022/lib/core/fields/tags.field.mjs +3 -3
- package/esm2022/lib/core/fields/textarea.designer.mjs +3 -3
- package/esm2022/lib/core/fields/textarea.field.mjs +3 -3
- package/esm2022/lib/core/fields/time.designer.mjs +3 -3
- package/esm2022/lib/core/fields/time.field.mjs +3 -3
- package/esm2022/lib/core/fields/timespan.field.mjs +6 -6
- package/esm2022/lib/core/fields/yesno.designer.mjs +3 -3
- package/esm2022/lib/core/fields/yesno.field.mjs +3 -3
- package/esm2022/lib/core/guide/guide.component.mjs +3 -3
- package/esm2022/lib/core/guide/guide.service.mjs +3 -3
- package/esm2022/lib/core/guide/help-tip.component.mjs +3 -3
- package/esm2022/lib/core/http.interceptor.mjs +3 -3
- package/esm2022/lib/core/hub.service.mjs +3 -3
- package/esm2022/lib/core/identity/identity.component.mjs +3 -3
- package/esm2022/lib/core/info/attachment-info.service.mjs +3 -3
- package/esm2022/lib/core/info/document-info.service.mjs +3 -3
- package/esm2022/lib/core/info/location-info.component.mjs +3 -3
- package/esm2022/lib/core/info/map-info.mjs +3 -3
- package/esm2022/lib/core/inputs/address.input.mjs +3 -3
- package/esm2022/lib/core/inputs/auto-complete.input.mjs +3 -3
- package/esm2022/lib/core/inputs/combination-picker-body.mjs +3 -3
- package/esm2022/lib/core/inputs/combination-picker.mjs +3 -3
- package/esm2022/lib/core/inputs/combination-pool.mjs +3 -3
- package/esm2022/lib/core/inputs/file.input.mjs +3 -3
- package/esm2022/lib/core/inputs/select.input.mjs +3 -3
- package/esm2022/lib/core/inputs/signature.input.mjs +3 -3
- package/esm2022/lib/core/inputs/time-picker.mjs +3 -3
- package/esm2022/lib/core/inputs/timespan.input.mjs +3 -3
- package/esm2022/lib/core/layout.component.mjs +3 -3
- package/esm2022/lib/core/lottie-animation.mjs +3 -3
- package/esm2022/lib/core/mailbox.service.mjs +3 -3
- package/esm2022/lib/core/none.component.mjs +3 -3
- package/esm2022/lib/core/pipes/action.pipe.mjs +3 -3
- package/esm2022/lib/core/pipes/calendar.pipe.mjs +3 -3
- package/esm2022/lib/core/pipes/date-format.pipe.mjs +3 -3
- package/esm2022/lib/core/pipes/daterange.pipe.mjs +6 -6
- package/esm2022/lib/core/pipes/difference.pipe.mjs +3 -3
- package/esm2022/lib/core/pipes/duration-format.pipe.mjs +3 -3
- package/esm2022/lib/core/pipes/duration.pipe.mjs +3 -3
- package/esm2022/lib/core/pipes/form.pipe.mjs +3 -3
- package/esm2022/lib/core/pipes/join.pipe.mjs +3 -3
- package/esm2022/lib/core/pipes/localized-string.pipe.mjs +3 -3
- package/esm2022/lib/core/pipes/role.pipe.mjs +3 -3
- package/esm2022/lib/core/pipes/sanitize-html.pipe.mjs +3 -3
- package/esm2022/lib/core/pipes/sort.pipe.mjs +9 -9
- package/esm2022/lib/core/pipes/state.pipe.mjs +3 -3
- package/esm2022/lib/core/pipes/time-ago.pipe.mjs +3 -3
- package/esm2022/lib/core/pipes/to-now.pipe.mjs +3 -3
- package/esm2022/lib/core/pipes/translate.pipe.mjs +9 -9
- package/esm2022/lib/core/pipes/type-value.pipe.mjs +3 -3
- package/esm2022/lib/core/pipes/user-name.pipe.mjs +3 -3
- package/esm2022/lib/core/popup/popup.component.mjs +5 -4
- package/esm2022/lib/core/popup/popup.service.mjs +3 -3
- package/esm2022/lib/core/popup/tooltip.directive.mjs +6 -6
- package/esm2022/lib/core/prompt/ask/ask.dialog.mjs +3 -3
- package/esm2022/lib/core/prompt/mask/mask.component.mjs +3 -3
- package/esm2022/lib/core/prompt.service.mjs +3 -3
- package/esm2022/lib/core/router.mjs +6 -6
- package/esm2022/lib/core/save-changes.dialog.mjs +3 -3
- package/esm2022/lib/core/session.service.mjs +3 -3
- package/esm2022/lib/core/slots/router.directive.mjs +3 -3
- package/esm2022/lib/core/slots/router.service.mjs +3 -3
- package/esm2022/lib/core/slots/slots.component.mjs +3 -3
- package/esm2022/lib/core/sticky-toolbar.exp.mjs +3 -3
- package/esm2022/lib/core/tagging/documents.component.mjs +3 -3
- package/esm2022/lib/core/tagging/edit-input.component.mjs +3 -3
- package/esm2022/lib/core/tagging/emoji.component.mjs +3 -3
- package/esm2022/lib/core/tagging/tagging-item.directive.mjs +3 -3
- package/esm2022/lib/core/tagging/tagging.component-base.mjs +3 -3
- package/esm2022/lib/core/tagging/tagging.directive.mjs +3 -3
- package/esm2022/lib/core/tagging/tagging.pipe.mjs +3 -3
- package/esm2022/lib/core/tagging/users.component.mjs +3 -3
- package/esm2022/lib/core/translate.service.mjs +3 -3
- package/esm2022/lib/core/virtual-tabs.component.exp.mjs +6 -6
- package/esm2022/lib/core/window-title.service.mjs +3 -3
- package/esm2022/lib/cube/accum/accum.component.mjs +3 -3
- package/esm2022/lib/cube/chart/chart.component.mjs +3 -3
- package/esm2022/lib/cube/cube-info.service.mjs +3 -3
- package/esm2022/lib/cube/cube-menu.component.mjs +3 -3
- package/esm2022/lib/cube/cube-view.component.mjs +5 -5
- package/esm2022/lib/cube/cube.service.mjs +3 -3
- package/esm2022/lib/cube/explore/document-item.component.mjs +3 -3
- package/esm2022/lib/cube/explore/explore-item.component.mjs +3 -3
- package/esm2022/lib/cube/explore/explore-items.component.mjs +6 -6
- package/esm2022/lib/cube/explore/explore.pane.component.mjs +3 -3
- package/esm2022/lib/cube/explore/item-resolver.service.mjs +6 -6
- package/esm2022/lib/cube/explore/item.pane.component.mjs +3 -3
- package/esm2022/lib/cube/filter/filter-tags.component.exp.mjs +4 -4
- package/esm2022/lib/cube/filter/filter.component.mjs +4 -4
- package/esm2022/lib/cube/grid/grid.component.mjs +3 -3
- package/esm2022/lib/cube/matrix/matrix.base.mjs +3 -3
- package/esm2022/lib/cube/matrix/matrix.mobile.component.mjs +3 -3
- package/esm2022/lib/cube/matrix/matrix.pane.component.mjs +3 -3
- package/esm2022/lib/cube/matrix/popup.component.mjs +3 -3
- package/esm2022/lib/cube/matrix/table.component.mjs +5 -5
- package/esm2022/lib/cube/parallel/parallel.component.mjs +3 -3
- package/esm2022/lib/cube/pivot/pivot.component.mjs +51 -17
- package/esm2022/lib/cube/spreadsheet/spreadsheet.component.mjs +3 -3
- package/esm2022/lib/cube/spreadsheet/spreadsheet.container.exp.mjs +3 -3
- package/esm2022/lib/cube/sum/sum.component.mjs +3 -3
- package/esm2022/lib/cube/view-base.mjs +3 -3
- package/esm2022/lib/cube/view.mobile.component.mjs +3 -3
- package/esm2022/lib/cube/view.pane.component.mjs +4 -4
- package/esm2022/lib/dashboard/actions/actions.widget.mjs +3 -3
- package/esm2022/lib/dashboard/cube/accum-cube.widget.mjs +3 -3
- package/esm2022/lib/dashboard/cube/compare.widget.mjs +3 -3
- package/esm2022/lib/dashboard/cube/cube-analysis.base.mjs +3 -3
- package/esm2022/lib/dashboard/cube/cube-analysis.widget.mjs +3 -3
- package/esm2022/lib/dashboard/cube/cube-chart.widget.mjs +3 -3
- package/esm2022/lib/dashboard/cube/document-state.widget.mjs +3 -3
- package/esm2022/lib/dashboard/cube/documents.widget.mjs +3 -3
- package/esm2022/lib/dashboard/cube/filter/filter.component.mjs +3 -3
- package/esm2022/lib/dashboard/dashboard.component.mjs +3 -3
- package/esm2022/lib/dashboard/dashboard.pane.component.mjs +3 -3
- package/esm2022/lib/dashboard/recents/recents.widget.mjs +3 -3
- package/esm2022/lib/dashboard/score/activity.widget.mjs +3 -3
- package/esm2022/lib/dashboard/score/compare-groups.widget.mjs +3 -3
- package/esm2022/lib/dashboard/score/peers-performance.widget.mjs +3 -3
- package/esm2022/lib/dashboard/score/pending-results.widget.mjs +3 -3
- package/esm2022/lib/dashboard/score/personal-score.widget.mjs +3 -3
- package/esm2022/lib/dashboard/widget-item.component.mjs +3 -3
- package/esm2022/lib/designer.module.mjs +4 -4
- package/esm2022/lib/desktop.module.mjs +4 -4
- package/esm2022/lib/home/about/about.dialog.mjs +3 -3
- package/esm2022/lib/home/home-base.component.mjs +3 -3
- package/esm2022/lib/home/home.desktop.component.mjs +5 -5
- package/esm2022/lib/home/home.mobile.component.mjs +3 -3
- package/esm2022/lib/home/notifications/notifications.component.mjs +3 -3
- package/esm2022/lib/home/options/options.component.mjs +3 -3
- package/esm2022/lib/home/outofoffice/outofoffice.component.mjs +3 -3
- package/esm2022/lib/home/sign/sign.component.mjs +3 -3
- package/esm2022/lib/impersonate/impersonate.component.mjs +3 -3
- package/esm2022/lib/mobile.module.mjs +4 -4
- package/esm2022/lib/modules/chart.module.mjs +4 -4
- package/esm2022/lib/modules/circular-gauge.module.mjs +4 -4
- package/esm2022/lib/modules/datepicker.intl.mjs +3 -3
- package/esm2022/lib/modules/dayjs.module.mjs +4 -4
- package/esm2022/lib/modules/diagram.module.mjs +4 -4
- package/esm2022/lib/modules/gantt.module.mjs +4 -4
- package/esm2022/lib/modules/grid.module.mjs +4 -4
- package/esm2022/lib/modules/linear-gauge.module.mjs +4 -4
- package/esm2022/lib/modules/material.module.mjs +4 -4
- package/esm2022/lib/modules/paginator.intl.mjs +3 -3
- package/esm2022/lib/modules/pivot.module.mjs +4 -4
- package/esm2022/lib/modules/schedule.module.mjs +4 -4
- package/esm2022/lib/modules/spreadsheet.module.mjs +4 -4
- package/esm2022/lib/modules/stepper.intl.mjs +3 -3
- package/esm2022/lib/modules/texteditor.module.mjs +4 -4
- package/esm2022/lib/notifications/filter.component.mjs +3 -3
- package/esm2022/lib/notifications/notifications-table.component.mjs +4 -4
- package/esm2022/lib/notifications/notifications.mobile.component.mjs +3 -3
- package/esm2022/lib/notifications/notifications.pane.component.mjs +3 -3
- package/esm2022/lib/notifications/notifications.service.mjs +3 -3
- package/esm2022/lib/notifications/types/commented.notification.mjs +3 -3
- package/esm2022/lib/notifications/types/cube-anomaly.notification.mjs +3 -3
- package/esm2022/lib/notifications/types/escalated.notification.mjs +3 -3
- package/esm2022/lib/notifications/types/invite.notification.mjs +3 -3
- package/esm2022/lib/notifications/types/liked.notification.mjs +3 -3
- package/esm2022/lib/notifications/types/long-running-task.notification.mjs +3 -3
- package/esm2022/lib/notifications/types/notification-base.mjs +3 -3
- package/esm2022/lib/notifications/types/nudge.notification.mjs +3 -3
- package/esm2022/lib/notifications/types/state-changed.notification.mjs +3 -3
- package/esm2022/lib/notifications/types/tagged.notification.mjs +3 -3
- package/esm2022/lib/notifications/types/text.notification.mjs +3 -3
- package/esm2022/lib/notifications/types/upcoming-event.notification.mjs +3 -3
- package/esm2022/lib/options/options.component.mjs +4 -4
- package/esm2022/lib/options/options.service.mjs +3 -3
- package/esm2022/lib/reports/arguments-component.mjs +3 -3
- package/esm2022/lib/reports/cube/documents.component.mjs +3 -3
- package/esm2022/lib/reports/cube/grid-documents.component.mjs +3 -3
- package/esm2022/lib/reports/cube/performance-hilo.component.mjs +3 -3
- package/esm2022/lib/reports/cube/performance-wind.component.mjs +3 -3
- package/esm2022/lib/reports/cube/table-documents.component.mjs +3 -3
- package/esm2022/lib/reports/cube/usage-args.component.mjs +3 -3
- package/esm2022/lib/reports/cube/usage-base.mjs +3 -3
- package/esm2022/lib/reports/cube/usage-chart.component.mjs +3 -3
- package/esm2022/lib/reports/cube/usage-pivot.component.mjs +3 -3
- package/esm2022/lib/reports/cube/usage.component.mjs +3 -3
- package/esm2022/lib/reports/report-viewer.component.mjs +3 -3
- package/esm2022/lib/reports/report.mobile.component.mjs +3 -3
- package/esm2022/lib/reports/report.pane.component.mjs +3 -3
- package/esm2022/lib/reports/reports-menu.component.mjs +3 -3
- package/esm2022/lib/reports/substitution/substitution.component.mjs +3 -3
- package/esm2022/lib/reports/table/table-view.component.mjs +3 -3
- package/esm2022/lib/reports/tasks/tasks.component.mjs +3 -3
- package/esm2022/lib/scheduler/schedule.component.mjs +3 -3
- package/esm2022/lib/scheduler/scheduler.mobile.component.mjs +3 -3
- package/esm2022/lib/scheduler/scheduler.pane.component.mjs +3 -3
- package/esm2022/lib/search/cube.component.mjs +3 -3
- package/esm2022/lib/search/document.component.mjs +3 -3
- package/esm2022/lib/search/guide.component.mjs +3 -3
- package/esm2022/lib/search/path.component.mjs +3 -3
- package/esm2022/lib/search/search.service.mjs +3 -3
- package/esm2022/lib/shared.module.mjs +4 -4
- package/esm2022/lib/system.module.mjs +4 -4
- package/esm2022/lib/views/cube/chart.component.mjs +3 -3
- package/esm2022/lib/views/cube/cube-base.mjs +3 -3
- package/esm2022/lib/views/cube/explore.component.mjs +3 -3
- package/esm2022/lib/views/cube/matrix.component.mjs +3 -3
- package/esm2022/lib/views/cube/parallel.component.mjs +3 -3
- package/esm2022/lib/views/cube/pivot.component.mjs +3 -3
- package/esm2022/lib/views/cube/sum.component.mjs +3 -3
- package/esm2022/lib/views/cube/view.component.mjs +3 -3
- package/esm2022/lib/views/timeline/timeline.component.mjs +3 -3
- package/esm2022/lib/views/view-item.component.mjs +3 -3
- package/esm2022/lib/views/views.component.mjs +3 -3
- package/esm2022/lib/views/views.mobile.component.mjs +3 -3
- package/esm2022/lib/views/views.pane.component.mjs +3 -3
- package/fesm2022/bizdoc-core.mjs +1315 -1277
- package/fesm2022/bizdoc-core.mjs.map +1 -1
- package/lib/core/popup/popup.component.d.ts +1 -0
- package/lib/cube/explore/explore-items.component.d.ts +1 -1
- package/lib/cube/pivot/pivot.component.d.ts +3 -2
- package/package.json +19 -19
- package/assets/themes/spreadsheet.min.css +0 -15
- package/assets/themes/syncfusion.min.css +0 -90
@@ -131,10 +131,10 @@ export class CubeParallelComponent {
|
|
131
131
|
this._destroy.complete();
|
132
132
|
this._loading.complete();
|
133
133
|
}
|
134
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
135
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.
|
134
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: CubeParallelComponent, deps: [{ token: i1.PromptService }, { token: i2.CubeService }, { token: i3.SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
|
135
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: CubeParallelComponent, selector: "bizdoc-cube-parallel", inputs: { filters: "filters", xAxis: "xAxis", series: "series", indices: "indices", cube: "cube", size: "size", chartType: "chartType", scope: "scope", palettes: "palettes" }, outputs: { onExplore: "explore" }, usesOnChanges: true, ngImport: i0, template: "@if (items.length) {\n <div class=\"row\">\n @for (s of items; track s) {\n <div class=\"element\">\n <ejs-sparkline [width]='width' height='100px'\n [type]='s.chartType'\n [id]=\"s.data.name\"\n [dataSource]=\"s.data.points\"\n xName=\"name\"\n yName=\"y\" [palette]=\"s.palette\"\n [format]=\"format\"\n valueType=\"Category\"\n [enableRtl]=\"enableRtl\"\n [border]=\"s.border\"\n [fill]=\"s.fill\"\n [theme]=\"theme\"\n [axisSettings]=\"axisSettings\"\n [markerSettings]=\"s.markerSettings\"\n (pointRegionMouseClick)=\"sprklineClick(s, $event)\"\n [tooltipSettings]=\"s.tooltipSettings\">\n </ejs-sparkline>\n <h4 class=\"mat-h4\">{{s.data.title}}</h4>\n </div>\n }\n </div>\n}\n", styles: [":host{padding:8px}.element{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;-webkit-align-items:center;align-items:center;flex:1 1 auto}\n"], dependencies: [{ kind: "component", type: i4.SparklineComponent, selector: "ejs-sparkline", inputs: ["axisSettings", "border", "containerArea", "dataLabelSettings", "dataSource", "enablePersistence", "enableRtl", "endPointColor", "fill", "format", "height", "highPointColor", "lineWidth", "locale", "lowPointColor", "markerSettings", "negativePointColor", "opacity", "padding", "palette", "query", "rangeBandSettings", "rangePadding", "startPointColor", "theme", "tiePointColor", "tooltipSettings", "type", "useGroupingSeparator", "valueType", "width", "xName", "yName"], outputs: ["axisRendering", "dataLabelRendering", "load", "loaded", "markerRendering", "pointRegionMouseClick", "pointRegionMouseMove", "pointRendering", "resize", "seriesRendering", "sparklineMouseClick", "sparklineMouseMove", "tooltipInitialize"] }] }); }
|
136
136
|
}
|
137
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
137
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: CubeParallelComponent, decorators: [{
|
138
138
|
type: Component,
|
139
139
|
args: [{ selector: 'bizdoc-cube-parallel', template: "@if (items.length) {\n <div class=\"row\">\n @for (s of items; track s) {\n <div class=\"element\">\n <ejs-sparkline [width]='width' height='100px'\n [type]='s.chartType'\n [id]=\"s.data.name\"\n [dataSource]=\"s.data.points\"\n xName=\"name\"\n yName=\"y\" [palette]=\"s.palette\"\n [format]=\"format\"\n valueType=\"Category\"\n [enableRtl]=\"enableRtl\"\n [border]=\"s.border\"\n [fill]=\"s.fill\"\n [theme]=\"theme\"\n [axisSettings]=\"axisSettings\"\n [markerSettings]=\"s.markerSettings\"\n (pointRegionMouseClick)=\"sprklineClick(s, $event)\"\n [tooltipSettings]=\"s.tooltipSettings\">\n </ejs-sparkline>\n <h4 class=\"mat-h4\">{{s.data.title}}</h4>\n </div>\n }\n </div>\n}\n", styles: [":host{padding:8px}.element{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;-webkit-align-items:center;align-items:center;flex:1 1 auto}\n"] }]
|
140
140
|
}], ctorParameters: () => [{ type: i1.PromptService }, { type: i2.CubeService }, { type: i3.SessionService }], propDecorators: { filters: [{
|
@@ -64,12 +64,25 @@ export class CubePivotComponent {
|
|
64
64
|
applyGrandTotals: true,
|
65
65
|
style: { color: getWarn() }
|
66
66
|
}];
|
67
|
+
this.hyperlinkSettings = {
|
68
|
+
//showColumnHeaderHyperlink: true,
|
69
|
+
//showRowHeaderHyperlink: true,
|
70
|
+
showValueCellHyperlink: true,
|
71
|
+
showSummaryCellHyperlink: true,
|
72
|
+
conditionalSettings: [
|
73
|
+
{
|
74
|
+
measure: 'value',
|
75
|
+
conditions: 'NotEquals',
|
76
|
+
value1: 0,
|
77
|
+
}
|
78
|
+
],
|
79
|
+
};
|
67
80
|
this.gridSettings = {
|
68
81
|
rowHeight: 36,
|
69
82
|
allowSelection: false
|
70
83
|
};
|
71
84
|
this._intl = new Internationalization();
|
72
|
-
|
85
|
+
//private readonly emptyCellsTextContent = this._intl.formatNumber(0, {});
|
73
86
|
this._destroy = new Subject();
|
74
87
|
this._session.themeChange.pipe(takeUntil(this._destroy)).subscribe(t => {
|
75
88
|
if (this.pivot.chart) {
|
@@ -173,6 +186,11 @@ export class CubePivotComponent {
|
|
173
186
|
measure: i,
|
174
187
|
style: { color: getWarn() }
|
175
188
|
});
|
189
|
+
this.hyperlinkSettings.conditionalSettings.push({
|
190
|
+
measure: i,
|
191
|
+
conditions: 'NotEquals',
|
192
|
+
value1: 0
|
193
|
+
});
|
176
194
|
this.values.
|
177
195
|
push({
|
178
196
|
name: i,
|
@@ -223,6 +241,7 @@ export class CubePivotComponent {
|
|
223
241
|
// query
|
224
242
|
this._service.table(this._cube.name, columns, { filters: this.filters, indices: this.indices }).subscribe({
|
225
243
|
next: r => {
|
244
|
+
this._data = r;
|
226
245
|
this._presets(xAxis2, series2, r);
|
227
246
|
this._draw();
|
228
247
|
this.loadingChange.emit(false);
|
@@ -239,7 +258,6 @@ export class CubePivotComponent {
|
|
239
258
|
* @param data
|
240
259
|
*/
|
241
260
|
_presets(xAxis, series, data) {
|
242
|
-
this._data = data;
|
243
261
|
this.dataSource = {
|
244
262
|
columns: xAxis.map(x => {
|
245
263
|
return {
|
@@ -255,18 +273,16 @@ export class CubePivotComponent {
|
|
255
273
|
}),
|
256
274
|
valueSortSettings: { headerDelimiter: PIVOT_HEADER_DELIMITER, },
|
257
275
|
values: this.values,
|
258
|
-
sortSettings: xAxis.map(x => {
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
}),
|
263
|
-
//conditionalFormatSettings: this.conditionalFormatSettings,
|
276
|
+
sortSettings: xAxis.map(x => ({
|
277
|
+
name: '_' + x,
|
278
|
+
})),
|
279
|
+
conditionalFormatSettings: this.conditionalFormatSettings,
|
264
280
|
alwaysShowValueHeader: false,
|
265
281
|
allowMemberFilter: false,
|
266
282
|
allowValueFilter: false,
|
267
283
|
allowLabelFilter: false,
|
268
284
|
dataSource: data,
|
269
|
-
emptyCellsTextContent: this.emptyCellsTextContent,
|
285
|
+
//emptyCellsTextContent: this.emptyCellsTextContent,
|
270
286
|
enableSorting: false,
|
271
287
|
formatSettings: this.formatSettings
|
272
288
|
};
|
@@ -284,6 +300,21 @@ export class CubePivotComponent {
|
|
284
300
|
axes = this._parseAxes(valueSort.levelName, '');
|
285
301
|
else if (isGrandSum)
|
286
302
|
return;
|
303
|
+
// TODO: if (actualText !== 'value') index = actualText as string;
|
304
|
+
this.explore.emit({ axes, index });
|
305
|
+
}
|
306
|
+
hyperlinkCellClick(evt) {
|
307
|
+
const { columnHeaders, rowHeaders, actualText, actualValue, axis, valueSort, isGrandSum } = evt.data, { levelName } = valueSort || {};
|
308
|
+
if (actualValue === 0)
|
309
|
+
return;
|
310
|
+
let axes, index;
|
311
|
+
if (columnHeaders || rowHeaders)
|
312
|
+
axes = this._parseAxes(columnHeaders, rowHeaders);
|
313
|
+
else if (axis === 'row')
|
314
|
+
axes = this._parseAxes('', levelName);
|
315
|
+
else if (axis === 'column')
|
316
|
+
axes = this._parseAxes(levelName, '');
|
317
|
+
//else if (isGrandSum) return;
|
287
318
|
if (actualText !== 'value')
|
288
319
|
index = actualText;
|
289
320
|
this.explore.emit({ axes, index });
|
@@ -305,8 +336,7 @@ export class CubePivotComponent {
|
|
305
336
|
axes = this._parseAxes(valueSort.levelName, '');
|
306
337
|
else if (isGrandSum)
|
307
338
|
return;
|
308
|
-
if (actualText !== 'value')
|
309
|
-
index = actualText;
|
339
|
+
// TODO: if (actualText !== 'value') index = actualText;
|
310
340
|
this.explore.emit({ axes, index });
|
311
341
|
}
|
312
342
|
/**
|
@@ -446,10 +476,14 @@ export class CubePivotComponent {
|
|
446
476
|
showTooltip: false,
|
447
477
|
allowConditionalFormatting: true,
|
448
478
|
allowExcelExport: true,
|
479
|
+
exportAllPages: true,
|
480
|
+
enableVirtualization: true,
|
449
481
|
gridSettings: this.gridSettings,
|
450
|
-
cellClick: this.cellClick.bind(this),
|
482
|
+
//cellClick: this.cellClick.bind(this),
|
451
483
|
currencyCode: this.currencyCode,
|
452
|
-
|
484
|
+
hyperlinkSettings: this.hyperlinkSettings,
|
485
|
+
hyperlinkCellClick: this.hyperlinkCellClick.bind(this),
|
486
|
+
//multiLevelLabelClick: this.multiLevelLabelClick.bind(this),
|
453
487
|
dataBound: this.dataBound.bind(this)
|
454
488
|
}, this._elementRef.nativeElement);
|
455
489
|
}
|
@@ -478,10 +512,10 @@ export class CubePivotComponent {
|
|
478
512
|
this._destroy.next();
|
479
513
|
this._destroy.complete();
|
480
514
|
}
|
481
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
482
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.
|
515
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: CubePivotComponent, deps: [{ token: i1.CubeService }, { token: i2.SessionService }, { token: i3.TranslateService }, { token: i4.PromptService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
516
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: CubePivotComponent, selector: "bizdoc-cube-pivot", inputs: { width: "width", height: "height", cube: "cube", xAxis: "xAxis", yAxis: "yAxis", series: "series", indices: "indices", filters: "filters", chartType: "chartType", indicesChartType: "indicesChartType", palettes: "palettes", loading: "loading" }, outputs: { explore: "explore", loadingChange: "loadingChange" }, host: { properties: { "style.direction": "dir", "id": "this.id" }, classAttribute: "cube-view" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true, styles: [":host ::ng-deep .e-cellvalue{cursor:pointer}\n"] }); }
|
483
517
|
}
|
484
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
518
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: CubePivotComponent, decorators: [{
|
485
519
|
type: Component,
|
486
520
|
args: [{ selector: 'bizdoc-cube-pivot', template: '', host: {
|
487
521
|
class: 'cube-view',
|
@@ -518,4 +552,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImpor
|
|
518
552
|
}], id: [{
|
519
553
|
type: HostBinding
|
520
554
|
}] } });
|
521
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGl2b3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jdWJlL3Bpdm90L3Bpdm90LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBYSxNQUFNLEVBQXlCLFdBQVcsRUFBRSxLQUFLLEVBQXlCLE1BQU0sZUFBZSxDQUFDO0FBRzdJLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBcUQsU0FBUyxFQUEwRyxNQUFNLDJCQUEyQixDQUFDO0FBS2pOLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzVELE9BQU8sRUFBRSxRQUFRLEVBQTBCLE1BQU0sOEJBQThCLENBQUM7QUFDaEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBR2hELE9BQU8sRUFBZSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7OztBQUt6RixNQUFNLHNCQUFzQixHQUFHLEdBQUcsQ0FBQztBQVduQyxxQkFBcUI7QUFDckIsTUFBTSxPQUFPLGtCQUFrQjtJQVM3QixJQUFXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUNELElBQ1csS0FBSyxDQUFDLEtBQXdCO1FBQ3ZDLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FB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Q0FBQztRQUN2QyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7OEdBbGZVLGtCQUFrQjtrR0FBbEIsa0JBQWtCLCtlQVJuQixFQUFFOzsyRkFRRCxrQkFBa0I7a0JBVjlCLFNBQVM7K0JBQ0UsbUJBQW1CLFlBQ25CLEVBQUUsUUFFTjt3QkFDSixLQUFLLEVBQUUsV0FBVzt3QkFDbEIsbUJBQW1CLEVBQUUsS0FBSztxQkFDM0I7aU1BS0QsS0FBSztzQkFESixLQUFLO2dCQUdOLE1BQU07c0JBREwsS0FBSztnQkFHTixJQUFJO3NCQURILEtBQUs7Z0JBUUssS0FBSztzQkFEZixLQUFLO2dCQUtOLEtBQUs7c0JBREosS0FBSztnQkFPSyxNQUFNO3NCQURoQixLQUFLO2dCQVNLLE9BQU87c0JBRGpCLEtBQUs7Z0JBS04sT0FBTztzQkFETixLQUFLO2dCQUdOLFNBQVM7c0JBRFIsS0FBSztnQkFHTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFRSyxRQUFRO3NCQURsQixLQUFLO2dCQUlhLE9BQU87c0JBQXpCLE1BQU07Z0JBQ0UsT0FBTztzQkFBZixLQUFLO2dCQUNhLGFBQWE7c0JBQS9CLE1BQU07Z0JBR0UsRUFBRTtzQkFEVixXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE9uQ2hhbmdlcywgT3V0cHV0LCBPbkRlc3Ryb3ksIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBEaXJlY3Rpb24gfSBmcm9tICdAYW5ndWxhci9jZGsvYmlkaSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBNdWx0aUxldmVsTGFiZWxDbGlja0V2ZW50QXJncywgRGlzcGxheU9wdGlvbk1vZGVsLCBQaXZvdFZpZXcsIENoYXJ0U2VyaWVzVHlwZSwgQ2VsbENsaWNrRXZlbnRBcmdzLCBJQ29uZGl0aW9uYWxGb3JtYXRTZXR0aW5ncywgSUZpZWxkT3B0aW9ucywgSUZvcm1hdFNldHRpbmdzLCBJU29ydCB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1waXZvdHZpZXcnO1xyXG5pbXBvcnQgeyBDaGFydFNldHRpbmdzTW9kZWwgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItcGl2b3R2aWV3L3NyYy9waXZvdHZpZXcvbW9kZWwvY2hhcnRzZXR0aW5ncy1tb2RlbCc7XHJcbmltcG9ydCB7IEdyaWRTZXR0aW5nc01vZGVsIH0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1waXZvdHZpZXcvc3JjL3Bpdm90dmlldy9tb2RlbC9ncmlkc2V0dGluZ3MtbW9kZWxcIjtcclxuaW1wb3J0IHsgRGF0YVNvdXJjZVNldHRpbmdzTW9kZWwgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLXBpdm90dmlldy9zcmMvbW9kZWwvZGF0YXNvdXJjZXNldHRpbmdzLW1vZGVsXCI7XHJcbmltcG9ydCB7IENoYXJ0LCBJUG9pbnRFdmVudEFyZ3MgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItY2hhcnRzJztcclxuaW1wb3J0IHsgSW50ZXJuYXRpb25hbGl6YXRpb24gfSBmcm9tICdAc3luY2Z1c2lvbi9lajItYmFzZSc7XHJcbmltcG9ydCB7IFdvcmtib29rLCBXb3Jrc2hlZXQsIFJvdywgQ29sdW1uIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWV4Y2VsLWV4cG9ydCc7XHJcbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItcG9wdXBzJztcclxuaW1wb3J0IHsgZ2V0V2FybiwgaXNBcnJheSB9IGZyb20gJy4uLy4uL2NvcmUvZnVuY3Rpb25zJztcclxuaW1wb3J0IHsgRk9OVF9GQU1JTFkgfSBmcm9tICcuLi8uLi9jb3JlL2NvbG9ycyc7XHJcbmltcG9ydCB7IEF4ZXNNYXAsIENoYXJ0VHlwZSwgQ3ViZSwgWUF4aXMgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IEF4aXNDbGlja0V2ZW50LCBDdWJlVmlld2VyQ29tcG9uZW50IH0gZnJvbSBcIi4uL2RlY2xhcmF0aW9uc1wiO1xyXG5pbXBvcnQgeyBDdWJlU2VydmljZSwgREVGQVVMVF9DVVJSRU5DWSwgQ0xEUl9GSUxFUywgZXJyUmVzb3VyY2UgfSBmcm9tICcuLi9jdWJlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQcm9tcHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9wcm9tcHQuc2VydmljZSc7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS90cmFuc2xhdGUuc2VydmljZSc7XHJcblxyXG5jb25zdCBQSVZPVF9IRUFERVJfREVMSU1JVEVSID0gJ3wnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtY3ViZS1waXZvdCcsXHJcbiAgdGVtcGxhdGU6ICcnLFxyXG4gIHN0eWxlczogWyc6aG9zdCA6Om5nLWRlZXAgLmUtY2VsbHZhbHVlIHsgY3Vyc29yOiBwb2ludGVyIH0nXSxcclxuICBob3N0OiB7XHJcbiAgICBjbGFzczogJ2N1YmUtdmlldycsXHJcbiAgICAnW3N0eWxlLmRpcmVjdGlvbl0nOiAnZGlyJ1xyXG4gIH1cclxufSlcclxuLyoqIHBpdm90IGNvbXBvbmVudCovXHJcbmV4cG9ydCBjbGFzcyBDdWJlUGl2b3RDb21wb25lbnQgaW1wbGVtZW50cyBDdWJlVmlld2VyQ29tcG9uZW50LCBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuICBASW5wdXQoKVxyXG4gIHdpZHRoOiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgQElucHV0KClcclxuICBoZWlnaHQ6IHN0cmluZztcclxuICBASW5wdXQoKVxyXG4gIGN1YmU6IHN0cmluZztcclxuICBwcml2YXRlIF94QXhpczogc3RyaW5nW107XHJcbiAgdG9vbHRpcDogVG9vbHRpcDtcclxuICBwdWJsaWMgZ2V0IHhBeGlzKCk6IHN0cmluZ1tdIHwgc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl94QXhpcztcclxuICB9XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHhBeGlzKHZhbHVlOiBzdHJpbmdbXSB8IHN0cmluZykge1xyXG4gICAgdGhpcy5feEF4aXMgPSBpc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXTtcclxuICB9XHJcbiAgQElucHV0KClcclxuICB5QXhpcz86IFlBeGlzO1xyXG4gIHByaXZhdGUgX3Nlcmllcz86IHN0cmluZ1tdO1xyXG4gIHB1YmxpYyBnZXQgc2VyaWVzKCk6IHN0cmluZ1tdIHwgc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9zZXJpZXM7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBzZXJpZXModmFsdWU6IHN0cmluZ1tdIHwgc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsdWUpIHRoaXMuX3NlcmllcyA9IGlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdO1xyXG4gIH1cclxuICBwcml2YXRlIF9pbmRpY2VzPzogc3RyaW5nW107XHJcbiAgcHVibGljIGdldCBpbmRpY2VzKCk6IHN0cmluZ1tdIHwgc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9pbmRpY2VzO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgaW5kaWNlcyh2YWx1ZTogc3RyaW5nW10gfCBzdHJpbmcpIHtcclxuICAgIGlmICh2YWx1ZSkgdGhpcy5faW5kaWNlcyA9IGlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIGZpbHRlcnM/OiBBeGVzTWFwO1xyXG4gIEBJbnB1dCgpXHJcbiAgY2hhcnRUeXBlPzogQ2hhcnRUeXBlO1xyXG4gIEBJbnB1dCgpXHJcbiAgaW5kaWNlc0NoYXJ0VHlwZT86IENoYXJ0VHlwZTtcclxuICBjdXJyZW5jeUNvZGU6IHN0cmluZztcclxuICBwcml2YXRlIF9wYWxldHRlcyA9IHRoaXMuX3Nlc3Npb24uYWNjZW50UGFsZXR0ZTtcclxuICBwdWJsaWMgZ2V0IHBhbGV0dGVzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3BhbGV0dGVzO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgcGFsZXR0ZXModmFsdWUpIHtcclxuICAgIHRoaXMuX3BhbGV0dGVzID0gdmFsdWU7XHJcbiAgfVxyXG4gIEBPdXRwdXQoKSByZWFkb25seSBleHBsb3JlID0gbmV3IEV2ZW50RW1pdHRlcjxBeGlzQ2xpY2tFdmVudD4oKTtcclxuICBASW5wdXQoKSBsb2FkaW5nOiBib29sZWFuO1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSBsb2FkaW5nQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIHN0YXRpYyBuZXh0SWQgPSAwO1xyXG4gIEBIb3N0QmluZGluZygpXHJcbiAgcmVhZG9ubHkgaWQgPSBgY3ViZS1waXZvdHZpZXctJHtDdWJlUGl2b3RDb21wb25lbnQubmV4dElkKyt9YDtcclxuICBwaXZvdDogUGl2b3RWaWV3O1xyXG4gIGRpc3BsYXlPcHRpb246IERpc3BsYXlPcHRpb25Nb2RlbDtcclxuICBjaGFydFNldHRpbmdzOiBDaGFydFNldHRpbmdzTW9kZWw7XHJcbiAgZGF0YVNvdXJjZTogRGF0YVNvdXJjZVNldHRpbmdzTW9kZWw7XHJcblxyXG4gIHJlYWRvbmx5IGZvcm1hdFNldHRpbmdzOiBJRm9ybWF0U2V0dGluZ3NbXSA9IFt7XHJcbiAgICBuYW1lOiAndmFsdWUnLFxyXG4gIH1dO1xyXG4gIHZhbHVlczogSUZpZWxkT3B0aW9uc1tdO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgY29uZGl0aW9uYWxGb3JtYXRTZXR0aW5nczogSUNvbmRpdGlvbmFsRm9ybWF0U2V0dGluZ3NbXSA9IFt7XHJcbiAgICBjb25kaXRpb25zOiAnTGVzc1RoYW4nLFxyXG4gICAgdmFsdWUxOiAwLFxyXG4gICAgbWVhc3VyZTogJ3ZhbHVlJyxcclxuICAgIGFwcGx5R3JhbmRUb3RhbHM6IHRydWUsXHJcbiAgICBzdHlsZTogeyBjb2xvcjogZ2V0V2FybigpIH1cclxuICB9XTtcclxuICByZWFkb25seSBncmlkU2V0dGluZ3M6IEdyaWRTZXR0aW5nc01vZGVsID0ge1xyXG4gICAgcm93SGVpZ2h0OiAzNixcclxuICAgIGFsbG93U2VsZWN0aW9uOiBmYWxzZVxyXG4gIH07XHJcbiAgZGlyOiBEaXJlY3Rpb247XHJcbiAgcHJpdmF0ZSBfY3ViZTogQ3ViZTtcclxuICBwcml2YXRlIF9kYXRhOiB7IHZhbHVlOiBudW1iZXIgfVtdO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2ludGw6IEludGVybmF0aW9uYWxpemF0aW9uID0gbmV3IEludGVybmF0aW9uYWxpemF0aW9uKCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBlbXB0eUNlbGxzVGV4dENvbnRlbnQgPSB0aGlzLl9pbnRsLmZvcm1hdE51bWJlcigwLCB7fSk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIC8qKiBwaXZvdCBjdG9yICovXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfc2VydmljZTogQ3ViZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3NiOiBQcm9tcHRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xyXG4gICAgdGhpcy5fc2Vzc2lvbi50aGVtZUNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKHQgPT4ge1xyXG4gICAgICBpZiAodGhpcy5waXZvdC5jaGFydCkge1xyXG4gICAgICAgIHRoaXMuY2hhcnRTZXR0aW5ncy50aGVtZSA9IHQuZGFyayA/ICdNYXRlcmlhbDNEYXJrJyA6ICdNYXRlcmlhbDMnO1xyXG4gICAgICAgIHRoaXMuY2hhcnRTZXR0aW5ncy5wYWxldHRlcyA9IHRoaXMuX3Nlc3Npb24uYWNjZW50UGFsZXR0ZTtcclxuICAgICAgfSBlbHNlXHJcbiAgICAgICAgdGhpcy5jb25kaXRpb25hbEZvcm1hdFNldHRpbmdzLmZvckVhY2goZiA9PiBmLnN0eWxlLmNvbG9yID0gZ2V0V2FybigpKTtcclxuICAgICAgdGhpcy5fZHJhdygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5fY3ViZSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlcy5maW5kKGMgPT4gYy5uYW1lID09PSB0aGlzLmN1YmUpIHx8IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlc1swXTtcclxuICAgIHRoaXMuY3VycmVuY3lDb2RlID0gdGhpcy5fY3ViZS5jdXJyZW5jeUNvZGU7XHJcbiAgICB0aGlzLmRpciA9IHRoaXMuY2hhcnRUeXBlID8gJ2x0cicgOiB0aGlzLl9zZXNzaW9uLmRpcmVjdGlvbjtcclxuICAgIHRoaXMuZm9ybWF0U2V0dGluZ3NbMF0uY3VycmVuY3kgPSB0aGlzLmN1cnJlbmN5Q29kZTtcclxuICAgIGlmICh0aGlzLl9jdWJlLnlBeGlzKSB7XHJcbiAgICAgIHN3aXRjaCAodGhpcy5fY3ViZS55QXhpcy50eXBlKSB7XHJcbiAgICAgICAgY2FzZSAnTnVtYmVyJzpcclxuICAgICAgICBjYXNlICdDb3VudCc6XHJcbiAgICAgICAgICB0aGlzLmZvcm1hdFNldHRpbmdzWzBdLmZvcm1hdCA9ICduJyArIHRoaXMuX3NlcnZpY2UuZnJhY3Rpb25EaWdpdHM7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgdGhpcy5mb3JtYXRTZXR0aW5nc1swXS5mb3JtYXQgPSAodGhpcy5jdXJyZW5jeUNvZGUgPyAnYycgOiAnbicpICsgdGhpcy5fc2VydmljZS5mcmFjdGlvbkRpZ2l0cztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMuZm9ybWF0U2V0dGluZ3NbMF0uZm9ybWF0ID0gKHRoaXMuY3VycmVuY3lDb2RlID8gJ2MnIDogJ24nKSArIHRoaXMuX3NlcnZpY2UuZnJhY3Rpb25EaWdpdHM7XHJcbiAgICBpZiAodGhpcy5jaGFydFR5cGUpIHtcclxuICAgICAgdGhpcy5kaXNwbGF5T3B0aW9uID0ge1xyXG4gICAgICAgIHZpZXc6ICdDaGFydCcsXHJcbiAgICAgICAgcHJpbWFyeTogJ0NoYXJ0J1xyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLmNoYXJ0U2V0dGluZ3MgPSB7XHJcbiAgICAgICAgcG9pbnRDbGljazogdGhpcy5wb2ludENsaWNrLmJpbmQodGhpcyksXHJcbiAgICAgICAgY2hhcnRTZXJpZXM6IHsgdHlwZTogdGhpcy5jaGFydFR5cGUgYXMgQ2hhcnRTZXJpZXNUeXBlIH0sXHJcbiAgICAgICAgLy9pc1RyYW5zcG9zZWQ6IHRydWUsICAgICAgICBcclxuICAgICAgICBlbmFibGVFeHBvcnQ6IHRydWUsXHJcbiAgICAgICAgY2hhcnRBcmVhOiB7XHJcbiAgICAgICAgICBib3JkZXI6IHsgd2lkdGg6IDAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcGFsZXR0ZXM6IHRoaXMucGFsZXR0ZXMsXHJcbiAgICAgICAgdGhlbWU6IHRoaXMuX3Nlc3Npb24udGhlbWUuZGFyayA/ICdNYXRlcmlhbDNEYXJrJyA6ICdNYXRlcmlhbDMnLFxyXG4gICAgICAgIGJhY2tncm91bmQ6ICd0cmFuc3BhcmVudCcsXHJcbiAgICAgICAgcHJpbWFyeVhBeGlzOiB7XHJcbiAgICAgICAgICB0aXRsZVN0eWxlOiB7XHJcbiAgICAgICAgICAgIGZvbnRGYW1pbHk6IEZPTlRfRkFNSUxZXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgbGFiZWxTdHlsZToge1xyXG4gICAgICAgICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgem9vbVNldHRpbmdzOiB7XHJcbiAgICAgICAgICBlbmFibGVNb3VzZVdoZWVsWm9vbWluZzogdHJ1ZSxcclxuICAgICAgICAgIGVuYWJsZVBpbmNoWm9vbWluZzogdHJ1ZSxcclxuICAgICAgICAgIHRvb2xiYXJJdGVtczogW10sXHJcbiAgICAgICAgICBlbmFibGVTZWxlY3Rpb25ab29taW5nOiBmYWxzZSxcclxuICAgICAgICAgIGVuYWJsZVNjcm9sbGJhcjogdHJ1ZVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgYm9yZGVyOiB7IHdpZHRoOiAwIH0sXHJcbiAgICAgICAgbGVnZW5kU2V0dGluZ3M6IHtcclxuICAgICAgICAgIGlzSW52ZXJzZWQ6IHRoaXMuX3Nlc3Npb24uaW52ZXJzZSxcclxuICAgICAgICAgIHRleHRTdHlsZToge1xyXG4gICAgICAgICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdG9vbHRpcDoge1xyXG4gICAgICAgICAgZW5hYmxlQW5pbWF0aW9uOiBmYWxzZSxcclxuICAgICAgICAgIGJvcmRlcjogeyB3aWR0aDogMCB9LFxyXG4gICAgICAgICAgdGV4dFN0eWxlOiB7XHJcbiAgICAgICAgICAgIGZvbnRGYW1pbHk6IEZPTlRfRkFNSUxZXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICB0aXRsZVN0eWxlOiB7XHJcbiAgICAgICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgc3ViVGl0bGVTdHlsZToge1xyXG4gICAgICAgICAgZm9udEZhbWlseTogRk9OVF9GQU1JTFlcclxuICAgICAgICB9LFxyXG4gICAgICAgIHByaW1hcnlZQXhpczoge1xyXG4gICAgICAgICAgdGl0bGVTdHlsZToge1xyXG4gICAgICAgICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGxhYmVsU3R5bGU6IHtcclxuICAgICAgICAgICAgZm9udEZhbWlseTogRk9OVF9GQU1JTFlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICB0aGlzLnZhbHVlcyA9IFt7XHJcbiAgICAgIG5hbWU6ICd2YWx1ZScsXHJcbiAgICAgIGNhcHRpb246ICh0aGlzLnlBeGlzID8gdGhpcy55QXhpcy50aXRsZSA6IG51bGwpIHx8IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1ZhbHVlJylcclxuICAgIH1dO1xyXG4gICAgdGhpcy5faW5kaWNlcyAmJlxyXG4gICAgICB0aGlzLl9pbmRpY2VzLmZvckVhY2goaSA9PiB7XHJcbiAgICAgICAgdGhpcy5jb25kaXRpb25hbEZvcm1hdFNldHRpbmdzLnB1c2goe1xyXG4gICAgICAgICAgY29uZGl0aW9uczogJ0xlc3NUaGFuJyxcclxuICAgICAgICAgIHZhbHVlMTogMCxcclxuICAgICAgICAgIGFwcGx5R3JhbmRUb3RhbHM6IHRydWUsXHJcbiAgICAgICAgICBtZWFzdXJlOiBpLFxyXG4gICAgICAgICAgc3R5bGU6IHsgY29sb3I6IGdldFdhcm4oKSB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy52YWx1ZXMuXHJcbiAgICAgICAgICBwdXNoKHtcclxuICAgICAgICAgICAgbmFtZTogaSxcclxuICAgICAgICAgICAgY2FwdGlvbjogdGhpcy5fZ2V0SW5kZXhUaXRsZShpKVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5mb3JtYXRTZXR0aW5ncy5cclxuICAgICAgICAgIHB1c2goe1xyXG4gICAgICAgICAgICBuYW1lOiBpLFxyXG4gICAgICAgICAgICBmb3JtYXQ6IHRoaXMuZm9ybWF0U2V0dGluZ3NbMF0uZm9ybWF0LFxyXG4gICAgICAgICAgICBjdXJyZW5jeTogdGhpcy5jdXJyZW5jeUNvZGUsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLmV4ZWN1dGUoKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZ2V0SW5kZXhUaXRsZShuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2N1YmUuaW5kaWNlcy5maW5kKGkgPT4gaS5uYW1lID09PSBuYW1lKS50aXRsZTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZ2V0QXhpc1RpdGxlKG5hbWU6IHN0cmluZykge1xyXG4gICAgY29uc3QgYXhpcyA9IHRoaXMuX2N1YmUuYXhlcy5maW5kKGEgPT4gYS5uYW1lID09PSBuYW1lKTtcclxuICAgIHJldHVybiBheGlzLnRpdGxlO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKi9cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1snZmlsdGVycyddICYmICFjaGFuZ2VzWydmaWx0ZXJzJ10uZmlyc3RDaGFuZ2UpXHJcbiAgICAgIHRoaXMuZXhlY3V0ZSgpO1xyXG4gICAgZWxzZVxyXG4gICAgICBpZiAoY2hhbmdlc1snaGVpZ2h0J10gfHwgY2hhbmdlc1snd2lkdGgnXSlcclxuICAgICAgICB0aGlzLnJlc2l6ZSgpO1xyXG4gIH1cclxuICBleGVjdXRlKCkge1xyXG4gICAgdGhpcy5sb2FkaW5nQ2hhbmdlLmVtaXQodHJ1ZSk7XHJcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXModGhpcy5maWx0ZXJzKTtcclxuICAgIC8vIHJlbW92ZSBmaWx0ZXJpbmcgZnJvbSBwaXZvdCBheGVzXHJcbiAgICBsZXQgeEF4aXMyID0gdGhpcy5feEF4aXMuc2xpY2UoKSwgc2VyaWVzMiA9IHRoaXMuX3Nlcmllcy5zbGljZSgpO1xyXG4gICAgaWYgKGtleXMubGVuZ3RoKSB7XHJcbiAgICAgIGlmICh4QXhpczIubGVuZ3RoID4gMSlcclxuICAgICAgICB4QXhpczIgPSB4QXhpczIuZmlsdGVyKHggPT4ga2V5cy5pbmRleE9mKHgpIDwgMCk7XHJcbiAgICAgIGlmIChzZXJpZXMyLmxlbmd0aCA+IDEpXHJcbiAgICAgICAgc2VyaWVzMiA9IHNlcmllczIuZmlsdGVyKHggPT4ga2V5cy5pbmRleE9mKHgpIDwgMCk7XHJcbiAgICB9XHJcbiAgICBpZiAoIXNlcmllczIubGVuZ3RoKSBzZXJpZXMyID0gdGhpcy5fc2VyaWVzLnNsaWNlKC0xKTtcclxuICAgIGlmICgheEF4aXMyLmxlbmd0aCkgeEF4aXMyID0gdGhpcy5feEF4aXMuc2xpY2UoLTEpO1xyXG4gICAgLy8gY29sdW1uc1xyXG4gICAgY29uc3QgY29sdW1ucyA9IHhBeGlzMi5jb25jYXQoc2VyaWVzMik7XHJcbiAgICAvLyBxdWVyeVxyXG4gICAgdGhpcy5fc2VydmljZS50YWJsZSh0aGlzLl9jdWJlLm5hbWUsIGNvbHVtbnMsIHsgZmlsdGVyczogdGhpcy5maWx0ZXJzLCBpbmRpY2VzOiB0aGlzLmluZGljZXMgfSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogciA9PiB7XHJcbiAgICAgICAgdGhpcy5fcHJlc2V0cyh4QXhpczIsIHNlcmllczIsIHIpO1xyXG4gICAgICAgIHRoaXMuX2RyYXcoKTtcclxuICAgICAgICB0aGlzLmxvYWRpbmdDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICAgIH0sIGVycm9yOiAoZTogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcclxuICAgICAgICB0aGlzLl9zYi5lcnJvcihlcnJSZXNvdXJjZShlKSk7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nQ2hhbmdlLmVtaXQoZmFsc2UpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB4QXhpc1xyXG4gICAqIEBwYXJhbSBzZXJpZXNcclxuICAgKiBAcGFyYW0gZGF0YVxyXG4gICAqL1xyXG4gIHByaXZhdGUgX3ByZXNldHMoeEF4aXM6IHN0cmluZ1tdLCBzZXJpZXM6IHN0cmluZ1tdLCBkYXRhOiB7IHZhbHVlOiBudW1iZXIgfVtdKSB7XHJcbiAgICB0aGlzLl9kYXRhID0gZGF0YTtcclxuICAgIHRoaXMuZGF0YVNvdXJjZSA9IHtcclxuICAgICAgY29sdW1uczogeEF4aXMubWFwKHggPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBuYW1lOiB4LFxyXG4gICAgICAgICAgY2FwdGlvbjogdGhpcy5fZ2V0QXhpc1RpdGxlKHgpXHJcbiAgICAgICAgfSBhcyBJRmllbGRPcHRpb25zO1xyXG4gICAgICB9KSxcclxuICAgICAgcm93czogc2VyaWVzLm1hcChzID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgbmFtZTogcyxcclxuICAgICAgICAgIGNhcHRpb246IHRoaXMuX2dldEF4aXNUaXRsZShzKVxyXG4gICAgICAgIH0gYXMgSUZpZWxkT3B0aW9ucztcclxuICAgICAgfSksXHJcbiAgICAgIHZhbHVlU29ydFNldHRpbmdzOiB7IGhlYWRlckRlbGltaXRlcjogUElWT1RfSEVBREVSX0RFTElNSVRFUiwgfSxcclxuICAgICAgdmFsdWVzOiB0aGlzLnZhbHVlcyxcclxuICAgICAgc29ydFNldHRpbmdzOiB4QXhpcy5tYXAoeCA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIG5hbWU6ICdfJyArIHgsXHJcbiAgICAgICAgfSBhcyBJU29ydDtcclxuICAgICAgfSksXHJcbiAgICAgIC8vY29uZGl0aW9uYWxGb3JtYXRTZXR0aW5nczogdGhpcy5jb25kaXRpb25hbEZvcm1hdFNldHRpbmdzLFxyXG4gICAgICBhbHdheXNTaG93VmFsdWVIZWFkZXI6IGZhbHNlLFxyXG4gICAgICBhbGxvd01lbWJlckZpbHRlcjogZmFsc2UsXHJcbiAgICAgIGFsbG93VmFsdWVGaWx0ZXI6IGZhbHNlLFxyXG4gICAgICBhbGxvd0xhYmVsRmlsdGVyOiBmYWxzZSxcclxuICAgICAgZGF0YVNvdXJjZTogZGF0YSxcclxuICAgICAgZW1wdHlDZWxsc1RleHRDb250ZW50OiB0aGlzLmVtcHR5Q2VsbHNUZXh0Q29udGVudCxcclxuICAgICAgZW5hYmxlU29ydGluZzogZmFsc2UsXHJcbiAgICAgIGZvcm1hdFNldHRpbmdzOiB0aGlzLmZvcm1hdFNldHRpbmdzXHJcbiAgICB9IGFzIERhdGFTb3VyY2VTZXR0aW5nc01vZGVsO1xyXG4gIH1cclxuICBtdWx0aUxldmVsTGFiZWxDbGljayhldnQ6IE11bHRpTGV2ZWxMYWJlbENsaWNrRXZlbnRBcmdzKSB7XHJcbiAgICBjb25zdCB7IGNvbHVtbkhlYWRlcnMsIHJvd0hlYWRlcnMsIGFjdHVhbFZhbHVlLCBheGlzLCB2YWx1ZVNvcnQsIGFjdHVhbFRleHQsIGlzR3JhbmRTdW0gfSA9IGV2dC5jZWxsO1xyXG4gICAgaWYgKGFjdHVhbFZhbHVlID09PSAwKSByZXR1cm47XHJcbiAgICBsZXQgYXhlcywgaW5kZXg7XHJcbiAgICBpZiAoY29sdW1uSGVhZGVycyB8fCByb3dIZWFkZXJzKVxyXG4gICAgICBheGVzID0gdGhpcy5fcGFyc2VBeGVzKGNvbHVtbkhlYWRlcnMgYXMgc3RyaW5nLCByb3dIZWFkZXJzIGFzIHN0cmluZyk7XHJcbiAgICBlbHNlIGlmIChheGlzID09PSAncm93JylcclxuICAgICAgYXhlcyA9IHRoaXMuX3BhcnNlQXhlcygnJywgKHZhbHVlU29ydCBhcyBhbnkpLmxldmVsTmFtZSk7XHJcbiAgICBlbHNlIGlmIChheGlzID09PSAnY29sdW1uJylcclxuICAgICAgYXhlcyA9IHRoaXMuX3BhcnNlQXhlcygodmFsdWVTb3J0IGFzIGFueSkubGV2ZWxOYW1lLCAnJyk7XHJcbiAgICBlbHNlIGlmIChpc0dyYW5kU3VtKSByZXR1cm47XHJcbiAgICBpZiAoYWN0dWFsVGV4dCAhPT0gJ3ZhbHVlJykgaW5kZXggPSBhY3R1YWxUZXh0O1xyXG4gICAgdGhpcy5leHBsb3JlLmVtaXQoeyBheGVzLCBpbmRleCB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBldnRcclxuICAgKi9cclxuICBjZWxsQ2xpY2soZXZ0OiBDZWxsQ2xpY2tFdmVudEFyZ3MpIHtcclxuICAgIGNvbnN0IHsgY29sdW1uSGVhZGVycywgcm93SGVhZGVycywgYWN0dWFsVGV4dCwgYWN0dWFsVmFsdWUsIGF4aXMsIHZhbHVlU29ydCwgaXNHcmFuZFN1bSB9ID0gZXZ0LmRhdGEgYXMgYW55O1xyXG4gICAgaWYgKGFjdHVhbFZhbHVlID09PSAwKSByZXR1cm47XHJcbiAgICBsZXQgYXhlcywgaW5kZXg7XHJcbiAgICBpZiAoY29sdW1uSGVhZGVycyB8fCByb3dIZWFkZXJzKVxyXG4gICAgICBheGVzID0gdGhpcy5fcGFyc2VBeGVzKGNvbHVtbkhlYWRlcnMsIHJvd0hlYWRlcnMpO1xyXG4gICAgZWxzZSBpZiAoYXhpcyA9PT0gJ3JvdycpXHJcbiAgICAgIGF4ZXMgPSB0aGlzLl9wYXJzZUF4ZXMoJycsIHZhbHVlU29ydC5sZXZlbE5hbWUpO1xyXG4gICAgZWxzZSBpZiAoYXhpcyA9PT0gJ2NvbHVtbicpXHJcbiAgICAgIGF4ZXMgPSB0aGlzLl9wYXJzZUF4ZXModmFsdWVTb3J0LmxldmVsTmFtZSwgJycpO1xyXG4gICAgZWxzZSBpZiAoaXNHcmFuZFN1bSkgcmV0dXJuO1xyXG4gICAgaWYgKGFjdHVhbFRleHQgIT09ICd2YWx1ZScpIGluZGV4ID0gYWN0dWFsVGV4dDtcclxuICAgIHRoaXMuZXhwbG9yZS5lbWl0KHsgYXhlcywgaW5kZXggfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGF4ZXMgZnJvbSBoZWFkZXJzXHJcbiAgICogQHBhcmFtIGNvbHVtbkhlYWRlcnNcclxuICAgKiBAcGFyYW0gcm93SGVhZGVyc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgX3BhcnNlQXhlcyhjb2x1bW5IZWFkZXJzOiBzdHJpbmcsIHJvd0hlYWRlcnM6IHN0cmluZyk6IEF4ZXNNYXAge1xyXG4gICAgY29uc3QgYXhlczogQXhlc01hcCA9IHt9O1xyXG4gICAgaWYgKGNvbHVtbkhlYWRlcnMgIT09ICcnKVxyXG4gICAgICBjb2x1bW5IZWFkZXJzLnNwbGl0KFBJVk9UX0hFQURFUl9ERUxJTUlURVIpLmZvckVhY2goKGMsIGkpID0+IHtcclxuICAgICAgICBjb25zdCBjb2x1bW4gPSB0aGlzLmRhdGFTb3VyY2UuY29sdW1uc1tpXS5uYW1lLFxyXG4gICAgICAgICAgLy8gZmluZCBhbnkgcm93IHdpdGggaGVhZGVyXHJcbiAgICAgICAgICBlbGVtZW50ID0gdGhpcy5fZGF0YS5maW5kKGUgPT4gZVtjb2x1bW5dLnRvU3RyaW5nKCkgPT09IGMpO1xyXG4gICAgICAgIC8vIHRyYW5zbGF0ZSBiYWNrIHRvIGtleVxyXG4gICAgICAgIGF4ZXNbY29sdW1uXSA9IGVsZW1lbnRbYF8ke2NvbHVtbn1gXTtcclxuICAgICAgfSk7XHJcbiAgICBpZiAocm93SGVhZGVycyAhPT0gJycpXHJcbiAgICAgIHJvd0hlYWRlcnMuc3BsaXQoUElWT1RfSEVBREVSX0RFTElNSVRFUikuZm9yRWFjaCgociwgaSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGNvbHVtbiA9IHRoaXMuZGF0YVNvdXJjZS5yb3dzW2ldLm5hbWUsXHJcbiAgICAgICAgICBlbGVtZW50ID0gdGhpcy5fZGF0YS5maW5kKGUgPT4gZVtjb2x1bW5dID09PSByKTtcclxuICAgICAgICBheGVzW2NvbHVtbl0gPSBlbGVtZW50W2BfJHtjb2x1bW59YF07XHJcbiAgICAgIH0pO1xyXG4gICAgcmV0dXJuIGF4ZXM7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGNoYXJ0XHJcbiAgICogQHBhcmFtIGVcclxuICAgKi9cclxuICBwb2ludENsaWNrKGU6IElQb2ludEV2ZW50QXJncykge1xyXG4gICAgY29uc3QgeyBwb2ludDogeyB4IH0sIHNlcmllczogeyBuYW1lIH0gfSA9IGU7XHJcbiAgICBjb25zdCBheGVzOiB7IFtheGlzOiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xyXG4gICAgLy8gc2V0IGF4ZXMgZnJvbSB4IGxhYmVsKHMpXHJcbiAgICAoeCBhcyBzdHJpbmcpLnNwbGl0KCcgLSAnKS5mb3JFYWNoKCh4LCBpKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNvbHVtbiA9IHRoaXMuZGF0YVNvdXJjZS5yb3dzW2ldLm5hbWUsXHJcbiAgICAgICAgZWxlbWVudCA9IHRoaXMuX2RhdGEuZmluZChlID0+IGVbY29sdW1uXSA9PT0geCk7XHJcbiAgICAgIGF4ZXNbY29sdW1uXSA9IGVsZW1lbnQgPyBlbGVtZW50W2BfJHtjb2x1bW59YF0gOiB4O1xyXG4gICAgfSk7XHJcbiAgICAvLyBzZXQgYXhlcyBmcm9tIHNlcmllcyBsYWJlbFxyXG4gICAgaWYgKG5hbWUgIT09ICcnKSB7XHJcbiAgICAgIGNvbnN0IGNvbHVtbiA9IHRoaXMuZGF0YVNvdXJjZS5jb2x1bW5zWzBdLm5hbWUsXHJcbiAgICAgICAgLy8gZmluZCBhbnkgcm93IHdpdGggaGVhZGVyXHJcbiAgICAgICAgZWxlbWVudCA9IHRoaXMuX2RhdGEuZmluZChlID0+IGVbY29sdW1uXSA9PT0gbmFtZSk7XHJcbiAgICAgIC8vIHRyYW5zbGF0ZSBiYWNrIHRvIGtleVxyXG4gICAgICBheGVzW2NvbHVtbl0gPSBlbGVtZW50ID8gZWxlbWVudFtgXyR7Y29sdW1ufWBdIDogbmFtZTtcclxuICAgIH1cclxuICAgIHRoaXMuZXhwbG9yZS5lbWl0KHsgYXhlcyB9KTtcclxuICB9XHJcbiAgYXN5bmMgZXhwb3J0VG9FeGNlbCh0aXRsZTogc3RyaW5nKSB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW5jeUNvZGUgJiYgdGhpcy5jdXJyZW5jeUNvZGUgIT09IERFRkFVTFRfQ1VSUkVOQ1kpXHJcbiAgICAgIGF3YWl0IHRoaXMuX3RyYW5zbGF0ZS5jbGRyKHRoaXMuX3Nlc3Npb24ubGFuZ3VhZ2UsIENMRFJfRklMRVMpO1xyXG4gICAgaWYgKHRoaXMuY2hhcnRUeXBlKVxyXG4gICAgICB0aGlzLl9leHBvcnRFeGNlbCh0aXRsZSk7XHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMucGl2b3QuZXhjZWxFeHBvcnQoeyBmaWxlTmFtZTogYCR7dGl0bGV9Lnhsc3hgLCBoaWVyYXJjaHlFeHBvcnRNb2RlOiAnQWxsJywgfSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2V4cG9ydEV4Y2VsKHRpdGxlOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IG51bWJlckZvcm1hdCA9IHRoaXMuX3NlcnZpY2UubnVtYmVyRm9ybWF0LCBjb2x1bW5zID0gdGhpcy5fY3ViZS5heGVzLmZpbHRlcihhID0+IHRoaXMuX3hBeGlzLmluZGV4T2YoYS5uYW1lKSA+IC0xIHx8XHJcbiAgICAgIHRoaXMuX3Nlcmllcy5pbmRleE9mKGEubmFtZSkgPiAtMSksIHJvd3MgPSBbe1xyXG4gICAgICAgIGluZGV4OiAxLFxyXG4gICAgICAgIGNlbGxzOiBjb2x1bW5zLm1hcCgoYywgaSkgPT4gKHtcclxuICAgICAgICAgIGluZGV4OiBpICsgMSwgdmFsdWU6IGMudGl0bGUsXHJcbiAgICAgICAgICBzdHlsZToge1xyXG4gICAgICAgICAgICBib2xkOiB0cnVlXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBhcyBDZWxsKSlcclxuICAgICAgfV0gYXMgUm93W107XHJcbiAgICByb3dzWzBdLmNlbGxzLnB1c2goe1xyXG4gICAgICBpbmRleDogY29sdW1ucy5sZW5ndGggKyAxLFxyXG4gICAgICB2YWx1ZTogdGhpcy55QXhpcyA/IHRoaXMueUF4aXMudGl0bGUgOlxyXG4gICAgICAgIHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1ZhbHVlJyksXHJcbiAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgYm9sZDogdHJ1ZVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX2luZGljZXMgJiYgdGhpcy5faW5kaWNlcy5mb3JFYWNoKCh4LCBpKSA9PiByb3dzWzBdLmNlbGxzLnB1c2goe1xyXG4gICAgICBpbmRleDogY29sdW1ucy5sZW5ndGggKyBpICsgMixcclxuICAgICAgdmFsdWU6IHRoaXMuX2dldEluZGV4VGl0bGUoeCksXHJcbiAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgYm9sZDogdHJ1ZVxyXG4gICAgICB9XHJcbiAgICB9KSk7XHJcbiAgICB0aGlzLl9kYXRhLmZvckVhY2goKHIsIGkpID0+IHtcclxuICAgICAgY29uc3QgY2VsbHMgPSBjb2x1bW5zLm1hcCgoYywgaikgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBpbmRleDogaiArIDEsIHZhbHVlOiByW2MubmFtZV0sXHJcbiAgICAgICAgICBzdHlsZToge31cclxuICAgICAgICB9IGFzIENlbGw7XHJcbiAgICAgIH1cclxuICAgICAgKTtcclxuICAgICAgY2VsbHMucHVzaCh7XHJcbiAgICAgICAgdHlwZTogJ251bWJlcicsXHJcbiAgICAgICAgaW5kZXg6IGNvbHVtbnMubGVuZ3RoICsgMSxcclxuICAgICAgICBzdHlsZToge1xyXG4gICAgICAgICAgbnVtYmVyRm9ybWF0LFxyXG4gICAgICAgICAgaEFsaWduOiAncmlnaHQnXHJcbiAgICAgICAgfSxcclxuICAgICAgICB2YWx1ZTogclsndmFsdWUnXVxyXG4gICAgICB9IGFzIENlbGwpO1xyXG4gICAgICB0aGlzLl9pbmRpY2VzICYmIHRoaXMuX2luZGljZXMuZm9yRWFjaCgoeCwgaSkgPT4gY2VsbHMucHVzaCh7XHJcbiAgICAgICAgdHlwZTogJ251bWJlcicsXHJcbiAgICAgICAgaW5kZXg6IGNvbHVtbnMubGVuZ3RoICsgaSArIDIsXHJcbiAgICAgICAgc3R5bGU6IHtcclxuICAgICAgICAgIG51bWJlckZvcm1hdCxcclxuICAgICAgICAgIGhBbGlnbjogJ3JpZ2h0J1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdmFsdWU6IHJbeF1cclxuICAgICAgfSBhcyBDZWxsKVxyXG4gICAgICApO1xyXG4gICAgICByb3dzLnB1c2goXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgaW5kZXg6IGkgKyAyLFxyXG4gICAgICAgICAgY2VsbHNcclxuICAgICAgICB9IGFzIFJvdyk7XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGJvb2sgPSBuZXcgV29ya2Jvb2soXHJcbiAgICAgIHtcclxuICAgICAgICB3b3Jrc2hlZXRzOiBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGVuYWJsZVJ0bDogdGhpcy5fc2Vzc2lvbi5pbnZlcnNlLFxyXG4gICAgICAgICAgICBuYW1lOiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdTaGVldE4nLCAxKSxcclxuICAgICAgICAgICAgY29sdW1uczogWy4uLmNvbHVtbnMubWFwKChfLCBpKSA9PiAoeyBpbmRleDogaSArIDEsIHdpZHRoOiAyNTAgfSBhcyBDb2x1bW4pKSxcclxuICAgICAgICAgICAgeyBpbmRleDogY29sdW1ucy5sZW5ndGggKyAxIH0sXHJcbiAgICAgICAgICAgIC4uLih0aGlzLl9pbmRpY2VzID8gdGhpcy5faW5kaWNlcy5tYXAoKF8sIGkpID0+ICh7XHJcbiAgICAgICAgICAgICAgaW5kZXg6IGNvbHVtbnMubGVuZ3RoICsgaSArIDJcclxuICAgICAgICAgICAgfSkpIDogW10pXHJcbiAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgIHJvd3NcclxuICAgICAgICAgIH0gYXMgV29ya3NoZWV0XHJcbiAgICAgICAgXSxcclxuICAgICAgfSxcclxuICAgICAgJ3hsc3gnXHJcbiAgICApO1xyXG4gICAgYm9vay5zYXZlKGAke3RpdGxlfS54bHN4YCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9kcmF3KCkge1xyXG4gICAgdGhpcy5waXZvdCAmJiB0aGlzLnBpdm90LmRlc3Ryb3koKTtcclxuICAgIHRoaXMucGl2b3QgPSBuZXcgUGl2b3RWaWV3KHtcclxuICAgICAgc3Bpbm5lclRlbXBsYXRlOiAnJyxcclxuICAgICAgY2hhcnRTZXR0aW5nczogdGhpcy5jaGFydFNldHRpbmdzLFxyXG4gICAgICBkaXNwbGF5T3B0aW9uOiB0aGlzLmRpc3BsYXlPcHRpb24sXHJcbiAgICAgIGRhdGFTb3VyY2VTZXR0aW5nczogdGhpcy5kYXRhU291cmNlLFxyXG4gICAgICB3aWR0aDogJ2F1dG8nLFxyXG4gICAgICBoZWlnaHQ6ICcxMDAlJyxcclxuICAgICAgZW5hYmxlVmFsdWVTb3J0aW5nOiBmYWxzZSxcclxuICAgICAgc2hvd1Rvb2x0aXA6IGZhbHNlLFxyXG4gICAgICBhbGxvd0NvbmRpdGlvbmFsRm9ybWF0dGluZzogdHJ1ZSxcclxuICAgICAgYWxsb3dFeGNlbEV4cG9ydDogdHJ1ZSxcclxuICAgICAgZ3JpZFNldHRpbmdzOiB0aGlzLmdyaWRTZXR0aW5ncyxcclxuICAgICAgY2VsbENsaWNrOiB0aGlzLmNlbGxDbGljay5iaW5kKHRoaXMpLFxyXG4gICAgICBjdXJyZW5jeUNvZGU6IHRoaXMuY3VycmVuY3lDb2RlLFxyXG4gICAgICBtdWx0aUxldmVsTGFiZWxDbGljazogdGhpcy5tdWx0aUxldmVsTGFiZWxDbGljay5iaW5kKHRoaXMpLFxyXG4gICAgICBkYXRhQm91bmQ6IHRoaXMuZGF0YUJvdW5kLmJpbmQodGhpcylcclxuICAgIH0sIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XHJcbiAgfVxyXG4gIGRhdGFCb3VuZChfOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMudG9vbHRpcCA9IG5ldyBUb29sdGlwKHtcclxuICAgICAgdGFyZ2V0OiAnLmUtaWNvbnMnLFxyXG4gICAgICBjc3NDbGFzczogJ2UtY3VzdG9tLXRvb2x0aXAnLFxyXG4gICAgICBwb3NpdGlvbjogJ0JvdHRvbUNlbnRlcicsXHJcbiAgICAgIG9mZnNldFk6IDE1LFxyXG4gICAgICBlbmFibGVSdGw6IHRoaXMucGl2b3QuZW5hYmxlUnRsLFxyXG4gICAgICBsb2NhbGU6IHRoaXMucGl2b3QubG9jYWxlLFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnRvb2x0aXAuYXBwZW5kVG8odGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICB9XHJcbiAgcmVzaXplKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucGl2b3QpIHtcclxuICAgICAgaWYgKHRoaXMuY2hhcnRTZXR0aW5ncylcclxuICAgICAgICB0aGlzLnBpdm90LmNoYXJ0ICYmICh0aGlzLnBpdm90LmNoYXJ0IGFzIENoYXJ0KS5jaGFydFJlc2l6ZSgpO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5waXZvdC5vbldpbmRvd1Jlc2l6ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMudG9vbHRpcCAmJiB0aGlzLnRvb2x0aXAuZGVzdHJveSgpO1xyXG4gICAgdGhpcy5waXZvdCAmJiB0aGlzLnBpdm90LmRlc3Ryb3koKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kubmV4dCgpO1xyXG4gICAgdGhpcy5fZGVzdHJveS5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG5pbnRlcmZhY2UgQ2VsbCB7IH1cclxuIl19
|
555
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGl2b3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jdWJlL3Bpdm90L3Bpdm90LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBYSxNQUFNLEVBQXlCLFdBQVcsRUFBRSxLQUFLLEVBQXlCLE1BQU0sZUFBZSxDQUFDO0FBRzdJLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBc0csU0FBUyxFQUEwRyxNQUFNLDJCQUEyQixDQUFDO0FBS2xRLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzVELE9BQU8sRUFBRSxRQUFRLEVBQTBCLE1BQU0sOEJBQThCLENBQUM7QUFDaEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBR2hELE9BQU8sRUFBZSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7OztBQUt6RixNQUFNLHNCQUFzQixHQUFHLEdBQUcsQ0FBQztBQVduQyxxQkFBcUI7QUFDckIsTUFBTSxPQUFPLGtCQUFrQjtJQVM3QixJQUFXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUNELElBQ1csS0FBSyxDQUFDLEtBQXdCO1FBQ3ZDLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FB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QUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7OEdBdGhCVSxrQkFBa0I7a0dBQWxCLGtCQUFrQiwrZUFSbkIsRUFBRTs7MkZBUUQsa0JBQWtCO2tCQVY5QixTQUFTOytCQUNFLG1CQUFtQixZQUNuQixFQUFFLFFBRU47d0JBQ0osS0FBSyxFQUFFLFdBQVc7d0JBQ2xCLG1CQUFtQixFQUFFLEtBQUs7cUJBQzNCO2lNQUtELEtBQUs7c0JBREosS0FBSztnQkFHTixNQUFNO3NCQURMLEtBQUs7Z0JBR04sSUFBSTtzQkFESCxLQUFLO2dCQVFLLEtBQUs7c0JBRGYsS0FBSztnQkFLTixLQUFLO3NCQURKLEtBQUs7Z0JBT0ssTUFBTTtzQkFEaEIsS0FBSztnQkFTSyxPQUFPO3NCQURqQixLQUFLO2dCQUtOLE9BQU87c0JBRE4sS0FBSztnQkFHTixTQUFTO3NCQURSLEtBQUs7Z0JBR04sZ0JBQWdCO3NCQURmLEtBQUs7Z0JBUUssUUFBUTtzQkFEbEIsS0FBSztnQkFJYSxPQUFPO3NCQUF6QixNQUFNO2dCQUNFLE9BQU87c0JBQWYsS0FBSztnQkFDYSxhQUFhO3NCQUEvQixNQUFNO2dCQUdFLEVBQUU7c0JBRFYsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPbkNoYW5nZXMsIE91dHB1dCwgT25EZXN0cm95LCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgRGlyZWN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSHlwZXJDZWxsQ2xpY2tFdmVudEFyZ3MsIEh5cGVybGlua1NldHRpbmdzTW9kZWwsIE11bHRpTGV2ZWxMYWJlbENsaWNrRXZlbnRBcmdzLCBEaXNwbGF5T3B0aW9uTW9kZWwsIFBpdm90VmlldywgQ2hhcnRTZXJpZXNUeXBlLCBDZWxsQ2xpY2tFdmVudEFyZ3MsIElDb25kaXRpb25hbEZvcm1hdFNldHRpbmdzLCBJRmllbGRPcHRpb25zLCBJRm9ybWF0U2V0dGluZ3MsIElTb3J0IH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLXBpdm90dmlldyc7XHJcbmltcG9ydCB7IENoYXJ0U2V0dGluZ3NNb2RlbCB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1waXZvdHZpZXcvc3JjL3Bpdm90dmlldy9tb2RlbC9jaGFydHNldHRpbmdzLW1vZGVsJztcclxuaW1wb3J0IHsgR3JpZFNldHRpbmdzTW9kZWwgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLXBpdm90dmlldy9zcmMvcGl2b3R2aWV3L21vZGVsL2dyaWRzZXR0aW5ncy1tb2RlbFwiO1xyXG5pbXBvcnQgeyBEYXRhU291cmNlU2V0dGluZ3NNb2RlbCB9IGZyb20gXCJAc3luY2Z1c2lvbi9lajItcGl2b3R2aWV3L3NyYy9tb2RlbC9kYXRhc291cmNlc2V0dGluZ3MtbW9kZWxcIjtcclxuaW1wb3J0IHsgQ2hhcnQsIElQb2ludEV2ZW50QXJncyB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1jaGFydHMnO1xyXG5pbXBvcnQgeyBJbnRlcm5hdGlvbmFsaXphdGlvbiB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1iYXNlJztcclxuaW1wb3J0IHsgV29ya2Jvb2ssIFdvcmtzaGVldCwgUm93LCBDb2x1bW4gfSBmcm9tICdAc3luY2Z1c2lvbi9lajItZXhjZWwtZXhwb3J0JztcclxuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1wb3B1cHMnO1xyXG5pbXBvcnQgeyBnZXRXYXJuLCBpc0FycmF5IH0gZnJvbSAnLi4vLi4vY29yZS9mdW5jdGlvbnMnO1xyXG5pbXBvcnQgeyBGT05UX0ZBTUlMWSB9IGZyb20gJy4uLy4uL2NvcmUvY29sb3JzJztcclxuaW1wb3J0IHsgQXhlc01hcCwgQ2hhcnRUeXBlLCBDdWJlLCBZQXhpcyB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgQXhpc0NsaWNrRXZlbnQsIEN1YmVWaWV3ZXJDb21wb25lbnQgfSBmcm9tIFwiLi4vZGVjbGFyYXRpb25zXCI7XHJcbmltcG9ydCB7IEN1YmVTZXJ2aWNlLCBERUZBVUxUX0NVUlJFTkNZLCBDTERSX0ZJTEVTLCBlcnJSZXNvdXJjZSB9IGZyb20gJy4uL2N1YmUuc2VydmljZSc7XHJcbmltcG9ydCB7IFByb21wdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3Byb21wdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3Nlc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuXHJcbmNvbnN0IFBJVk9UX0hFQURFUl9ERUxJTUlURVIgPSAnfCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1jdWJlLXBpdm90JyxcclxuICB0ZW1wbGF0ZTogJycsXHJcbiAgc3R5bGVzOiBbJzpob3N0IDo6bmctZGVlcCAuZS1jZWxsdmFsdWUgeyBjdXJzb3I6IHBvaW50ZXIgfSddLFxyXG4gIGhvc3Q6IHtcclxuICAgIGNsYXNzOiAnY3ViZS12aWV3JyxcclxuICAgICdbc3R5bGUuZGlyZWN0aW9uXSc6ICdkaXInXHJcbiAgfVxyXG59KVxyXG4vKiogcGl2b3QgY29tcG9uZW50Ki9cclxuZXhwb3J0IGNsYXNzIEN1YmVQaXZvdENvbXBvbmVudCBpbXBsZW1lbnRzIEN1YmVWaWV3ZXJDb21wb25lbnQsIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpXHJcbiAgd2lkdGg6IHN0cmluZyB8IG51bWJlcjtcclxuICBASW5wdXQoKVxyXG4gIGhlaWdodDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpXHJcbiAgY3ViZTogc3RyaW5nO1xyXG4gIHByaXZhdGUgX3hBeGlzOiBzdHJpbmdbXTtcclxuICB0b29sdGlwOiBUb29sdGlwO1xyXG4gIHB1YmxpYyBnZXQgeEF4aXMoKTogc3RyaW5nW10gfCBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3hBeGlzO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgeEF4aXModmFsdWU6IHN0cmluZ1tdIHwgc3RyaW5nKSB7XHJcbiAgICB0aGlzLl94QXhpcyA9IGlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIHlBeGlzPzogWUF4aXM7XHJcbiAgcHJpdmF0ZSBfc2VyaWVzPzogc3RyaW5nW107XHJcbiAgcHVibGljIGdldCBzZXJpZXMoKTogc3RyaW5nW10gfCBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlcmllcztcclxuICB9XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHNlcmllcyh2YWx1ZTogc3RyaW5nW10gfCBzdHJpbmcpIHtcclxuICAgIGlmICh2YWx1ZSkgdGhpcy5fc2VyaWVzID0gaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV07XHJcbiAgfVxyXG4gIHByaXZhdGUgX2luZGljZXM/OiBzdHJpbmdbXTtcclxuICBwdWJsaWMgZ2V0IGluZGljZXMoKTogc3RyaW5nW10gfCBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2luZGljZXM7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBpbmRpY2VzKHZhbHVlOiBzdHJpbmdbXSB8IHN0cmluZykge1xyXG4gICAgaWYgKHZhbHVlKSB0aGlzLl9pbmRpY2VzID0gaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV07XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgZmlsdGVycz86IEF4ZXNNYXA7XHJcbiAgQElucHV0KClcclxuICBjaGFydFR5cGU/OiBDaGFydFR5cGU7XHJcbiAgQElucHV0KClcclxuICBpbmRpY2VzQ2hhcnRUeXBlPzogQ2hhcnRUeXBlO1xyXG4gIGN1cnJlbmN5Q29kZTogc3RyaW5nO1xyXG4gIHByaXZhdGUgX3BhbGV0dGVzID0gdGhpcy5fc2Vzc2lvbi5hY2NlbnRQYWxldHRlO1xyXG4gIHB1YmxpYyBnZXQgcGFsZXR0ZXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcGFsZXR0ZXM7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBwYWxldHRlcyh2YWx1ZSkge1xyXG4gICAgdGhpcy5fcGFsZXR0ZXMgPSB2YWx1ZTtcclxuICB9XHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGV4cGxvcmUgPSBuZXcgRXZlbnRFbWl0dGVyPEF4aXNDbGlja0V2ZW50PigpO1xyXG4gIEBJbnB1dCgpIGxvYWRpbmc6IGJvb2xlYW47XHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGxvYWRpbmdDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgc3RhdGljIG5leHRJZCA9IDA7XHJcbiAgQEhvc3RCaW5kaW5nKClcclxuICByZWFkb25seSBpZCA9IGBjdWJlLXBpdm90dmlldy0ke0N1YmVQaXZvdENvbXBvbmVudC5uZXh0SWQrK31gO1xyXG4gIHBpdm90OiBQaXZvdFZpZXc7XHJcbiAgZGlzcGxheU9wdGlvbjogRGlzcGxheU9wdGlvbk1vZGVsO1xyXG4gIGNoYXJ0U2V0dGluZ3M6IENoYXJ0U2V0dGluZ3NNb2RlbDtcclxuICBkYXRhU291cmNlOiBEYXRhU291cmNlU2V0dGluZ3NNb2RlbDtcclxuXHJcbiAgcmVhZG9ubHkgZm9ybWF0U2V0dGluZ3M6IElGb3JtYXRTZXR0aW5nc1tdID0gW3tcclxuICAgIG5hbWU6ICd2YWx1ZScsXHJcbiAgfV07XHJcbiAgdmFsdWVzOiBJRmllbGRPcHRpb25zW107XHJcbiAgcHJpdmF0ZSByZWFkb25seSBjb25kaXRpb25hbEZvcm1hdFNldHRpbmdzOiBJQ29uZGl0aW9uYWxGb3JtYXRTZXR0aW5nc1tdID0gW3tcclxuICAgIGNvbmRpdGlvbnM6ICdMZXNzVGhhbicsXHJcbiAgICB2YWx1ZTE6IDAsXHJcbiAgICBtZWFzdXJlOiAndmFsdWUnLFxyXG4gICAgYXBwbHlHcmFuZFRvdGFsczogdHJ1ZSxcclxuICAgIHN0eWxlOiB7IGNvbG9yOiBnZXRXYXJuKCkgfVxyXG4gIH1dO1xyXG4gIHJlYWRvbmx5IGh5cGVybGlua1NldHRpbmdzOiBIeXBlcmxpbmtTZXR0aW5nc01vZGVsID0ge1xyXG4gICAgLy9zaG93Q29sdW1uSGVhZGVySHlwZXJsaW5rOiB0cnVlLFxyXG4gICAgLy9zaG93Um93SGVhZGVySHlwZXJsaW5rOiB0cnVlLFxyXG4gICAgc2hvd1ZhbHVlQ2VsbEh5cGVybGluazogdHJ1ZSxcclxuICAgIHNob3dTdW1tYXJ5Q2VsbEh5cGVybGluazogdHJ1ZSxcclxuICAgIGNvbmRpdGlvbmFsU2V0dGluZ3M6IFtcclxuICAgICAge1xyXG4gICAgICAgIG1lYXN1cmU6ICd2YWx1ZScsXHJcbiAgICAgICAgY29uZGl0aW9uczogJ05vdEVxdWFscycsXHJcbiAgICAgICAgdmFsdWUxOiAwLFxyXG4gICAgICB9XHJcbiAgICBdLFxyXG4gIH07XHJcbiAgcmVhZG9ubHkgZ3JpZFNldHRpbmdzOiBHcmlkU2V0dGluZ3NNb2RlbCA9IHtcclxuICAgIHJvd0hlaWdodDogMzYsXHJcbiAgICBhbGxvd1NlbGVjdGlvbjogZmFsc2VcclxuICB9O1xyXG4gIGRpcjogRGlyZWN0aW9uO1xyXG4gIHByaXZhdGUgX2N1YmU6IEN1YmU7XHJcbiAgcHJpdmF0ZSBfZGF0YTogeyB2YWx1ZTogbnVtYmVyIH1bXTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9pbnRsOiBJbnRlcm5hdGlvbmFsaXphdGlvbiA9IG5ldyBJbnRlcm5hdGlvbmFsaXphdGlvbigpO1xyXG4gIC8vcHJpdmF0ZSByZWFkb25seSBlbXB0eUNlbGxzVGV4dENvbnRlbnQgPSB0aGlzLl9pbnRsLmZvcm1hdE51bWJlcigwLCB7fSk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIC8qKiBwaXZvdCBjdG9yICovXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfc2VydmljZTogQ3ViZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3NiOiBQcm9tcHRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xyXG4gICAgdGhpcy5fc2Vzc2lvbi50aGVtZUNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKHQgPT4ge1xyXG4gICAgICBpZiAodGhpcy5waXZvdC5jaGFydCkge1xyXG4gICAgICAgIHRoaXMuY2hhcnRTZXR0aW5ncy50aGVtZSA9IHQuZGFyayA/ICdNYXRlcmlhbDNEYXJrJyA6ICdNYXRlcmlhbDMnO1xyXG4gICAgICAgIHRoaXMuY2hhcnRTZXR0aW5ncy5wYWxldHRlcyA9IHRoaXMuX3Nlc3Npb24uYWNjZW50UGFsZXR0ZTtcclxuICAgICAgfSBlbHNlXHJcbiAgICAgICAgdGhpcy5jb25kaXRpb25hbEZvcm1hdFNldHRpbmdzLmZvckVhY2goZiA9PiBmLnN0eWxlLmNvbG9yID0gZ2V0V2FybigpKTtcclxuICAgICAgdGhpcy5fZHJhdygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5fY3ViZSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlcy5maW5kKGMgPT4gYy5uYW1lID09PSB0aGlzLmN1YmUpIHx8IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlc1swXTtcclxuICAgIHRoaXMuY3VycmVuY3lDb2RlID0gdGhpcy5fY3ViZS5jdXJyZW5jeUNvZGU7XHJcbiAgICB0aGlzLmRpciA9IHRoaXMuY2hhcnRUeXBlID8gJ2x0cicgOiB0aGlzLl9zZXNzaW9uLmRpcmVjdGlvbjtcclxuICAgIHRoaXMuZm9ybWF0U2V0dGluZ3NbMF0uY3VycmVuY3kgPSB0aGlzLmN1cnJlbmN5Q29kZTtcclxuICAgIGlmICh0aGlzLl9jdWJlLnlBeGlzKSB7XHJcbiAgICAgIHN3aXRjaCAodGhpcy5fY3ViZS55QXhpcy50eXBlKSB7XHJcbiAgICAgICAgY2FzZSAnTnVtYmVyJzpcclxuICAgICAgICBjYXNlICdDb3VudCc6XHJcbiAgICAgICAgICB0aGlzLmZvcm1hdFNldHRpbmdzWzBdLmZvcm1hdCA9ICduJyArIHRoaXMuX3NlcnZpY2UuZnJhY3Rpb25EaWdpdHM7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgdGhpcy5mb3JtYXRTZXR0aW5nc1swXS5mb3JtYXQgPSAodGhpcy5jdXJyZW5jeUNvZGUgPyAnYycgOiAnbicpICsgdGhpcy5fc2VydmljZS5mcmFjdGlvbkRpZ2l0cztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMuZm9ybWF0U2V0dGluZ3NbMF0uZm9ybWF0ID0gKHRoaXMuY3VycmVuY3lDb2RlID8gJ2MnIDogJ24nKSArIHRoaXMuX3NlcnZpY2UuZnJhY3Rpb25EaWdpdHM7XHJcbiAgICBpZiAodGhpcy5jaGFydFR5cGUpIHtcclxuICAgICAgdGhpcy5kaXNwbGF5T3B0aW9uID0ge1xyXG4gICAgICAgIHZpZXc6ICdDaGFydCcsXHJcbiAgICAgICAgcHJpbWFyeTogJ0NoYXJ0J1xyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLmNoYXJ0U2V0dGluZ3MgPSB7XHJcbiAgICAgICAgcG9pbnRDbGljazogdGhpcy5wb2ludENsaWNrLmJpbmQodGhpcyksXHJcbiAgICAgICAgY2hhcnRTZXJpZXM6IHsgdHlwZTogdGhpcy5jaGFydFR5cGUgYXMgQ2hhcnRTZXJpZXNUeXBlIH0sXHJcbiAgICAgICAgLy9pc1RyYW5zcG9zZWQ6IHRydWUsICAgICAgICBcclxuICAgICAgICBlbmFibGVFeHBvcnQ6IHRydWUsXHJcbiAgICAgICAgY2hhcnRBcmVhOiB7XHJcbiAgICAgICAgICBib3JkZXI6IHsgd2lkdGg6IDAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcGFsZXR0ZXM6IHRoaXMucGFsZXR0ZXMsXHJcbiAgICAgICAgdGhlbWU6IHRoaXMuX3Nlc3Npb24udGhlbWUuZGFyayA/ICdNYXRlcmlhbDNEYXJrJyA6ICdNYXRlcmlhbDMnLFxyXG4gICAgICAgIGJhY2tncm91bmQ6ICd0cmFuc3BhcmVudCcsXHJcbiAgICAgICAgcHJpbWFyeVhBeGlzOiB7XHJcbiAgICAgICAgICB0aXRsZVN0eWxlOiB7XHJcbiAgICAgICAgICAgIGZvbnRGYW1pbHk6IEZPTlRfRkFNSUxZXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgbGFiZWxTdHlsZToge1xyXG4gICAgICAgICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgem9vbVNldHRpbmdzOiB7XHJcbiAgICAgICAgICBlbmFibGVNb3VzZVdoZWVsWm9vbWluZzogdHJ1ZSxcclxuICAgICAgICAgIGVuYWJsZVBpbmNoWm9vbWluZzogdHJ1ZSxcclxuICAgICAgICAgIHRvb2xiYXJJdGVtczogW10sXHJcbiAgICAgICAgICBlbmFibGVTZWxlY3Rpb25ab29taW5nOiBmYWxzZSxcclxuICAgICAgICAgIGVuYWJsZVNjcm9sbGJhcjogdHJ1ZVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgYm9yZGVyOiB7IHdpZHRoOiAwIH0sXHJcbiAgICAgICAgbGVnZW5kU2V0dGluZ3M6IHtcclxuICAgICAgICAgIGlzSW52ZXJzZWQ6IHRoaXMuX3Nlc3Npb24uaW52ZXJzZSxcclxuICAgICAgICAgIHRleHRTdHlsZToge1xyXG4gICAgICAgICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdG9vbHRpcDoge1xyXG4gICAgICAgICAgZW5hYmxlQW5pbWF0aW9uOiBmYWxzZSxcclxuICAgICAgICAgIGJvcmRlcjogeyB3aWR0aDogMCB9LFxyXG4gICAgICAgICAgdGV4dFN0eWxlOiB7XHJcbiAgICAgICAgICAgIGZvbnRGYW1pbHk6IEZPTlRfRkFNSUxZXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICB0aXRsZVN0eWxlOiB7XHJcbiAgICAgICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgc3ViVGl0bGVTdHlsZToge1xyXG4gICAgICAgICAgZm9udEZhbWlseTogRk9OVF9GQU1JTFlcclxuICAgICAgICB9LFxyXG4gICAgICAgIHByaW1hcnlZQXhpczoge1xyXG4gICAgICAgICAgdGl0bGVTdHlsZToge1xyXG4gICAgICAgICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGxhYmVsU3R5bGU6IHtcclxuICAgICAgICAgICAgZm9udEZhbWlseTogRk9OVF9GQU1JTFlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICB0aGlzLnZhbHVlcyA9IFt7XHJcbiAgICAgIG5hbWU6ICd2YWx1ZScsXHJcbiAgICAgIGNhcHRpb246ICh0aGlzLnlBeGlzID8gdGhpcy55QXhpcy50aXRsZSA6IG51bGwpIHx8IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1ZhbHVlJylcclxuICAgIH1dO1xyXG4gICAgdGhpcy5faW5kaWNlcyAmJlxyXG4gICAgICB0aGlzLl9pbmRpY2VzLmZvckVhY2goaSA9PiB7XHJcbiAgICAgICAgdGhpcy5jb25kaXRpb25hbEZvcm1hdFNldHRpbmdzLnB1c2goe1xyXG4gICAgICAgICAgY29uZGl0aW9uczogJ0xlc3NUaGFuJyxcclxuICAgICAgICAgIHZhbHVlMTogMCxcclxuICAgICAgICAgIGFwcGx5R3JhbmRUb3RhbHM6IHRydWUsXHJcbiAgICAgICAgICBtZWFzdXJlOiBpLFxyXG4gICAgICAgICAgc3R5bGU6IHsgY29sb3I6IGdldFdhcm4oKSB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5oeXBlcmxpbmtTZXR0aW5ncy5jb25kaXRpb25hbFNldHRpbmdzLnB1c2goe1xyXG4gICAgICAgICAgbWVhc3VyZTogaSxcclxuICAgICAgICAgIGNvbmRpdGlvbnM6ICdOb3RFcXVhbHMnLFxyXG4gICAgICAgICAgdmFsdWUxOiAwXHJcbiAgICAgICAgfSlcclxuICAgICAgICB0aGlzLnZhbHVlcy5cclxuICAgICAgICAgIHB1c2goe1xyXG4gICAgICAgICAgICBuYW1lOiBpLFxyXG4gICAgICAgICAgICBjYXB0aW9uOiB0aGlzLl9nZXRJbmRleFRpdGxlKGkpXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmZvcm1hdFNldHRpbmdzLlxyXG4gICAgICAgICAgcHVzaCh7XHJcbiAgICAgICAgICAgIG5hbWU6IGksXHJcbiAgICAgICAgICAgIGZvcm1hdDogdGhpcy5mb3JtYXRTZXR0aW5nc1swXS5mb3JtYXQsXHJcbiAgICAgICAgICAgIGN1cnJlbmN5OiB0aGlzLmN1cnJlbmN5Q29kZSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIHRoaXMuZXhlY3V0ZSgpO1xyXG4gIH1cclxuICBwcml2YXRlIF9nZXRJbmRleFRpdGxlKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fY3ViZS5pbmRpY2VzLmZpbmQoaSA9PiBpLm5hbWUgPT09IG5hbWUpLnRpdGxlO1xyXG4gIH1cclxuICBwcml2YXRlIF9nZXRBeGlzVGl0bGUobmFtZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBheGlzID0gdGhpcy5fY3ViZS5heGVzLmZpbmQoYSA9PiBhLm5hbWUgPT09IG5hbWUpO1xyXG4gICAgcmV0dXJuIGF4aXMudGl0bGU7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqL1xyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydmaWx0ZXJzJ10gJiYgIWNoYW5nZXNbJ2ZpbHRlcnMnXS5maXJzdENoYW5nZSlcclxuICAgICAgdGhpcy5leGVjdXRlKCk7XHJcbiAgICBlbHNlXHJcbiAgICAgIGlmIChjaGFuZ2VzWydoZWlnaHQnXSB8fCBjaGFuZ2VzWyd3aWR0aCddKVxyXG4gICAgICAgIHRoaXMucmVzaXplKCk7XHJcbiAgfVxyXG4gIGV4ZWN1dGUoKSB7XHJcbiAgICB0aGlzLmxvYWRpbmdDaGFuZ2UuZW1pdCh0cnVlKTtcclxuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh0aGlzLmZpbHRlcnMpO1xyXG4gICAgLy8gcmVtb3ZlIGZpbHRlcmluZyBmcm9tIHBpdm90IGF4ZXNcclxuICAgIGxldCB4QXhpczIgPSB0aGlzLl94QXhpcy5zbGljZSgpLCBzZXJpZXMyID0gdGhpcy5fc2VyaWVzLnNsaWNlKCk7XHJcbiAgICBpZiAoa2V5cy5sZW5ndGgpIHtcclxuICAgICAgaWYgKHhBeGlzMi5sZW5ndGggPiAxKVxyXG4gICAgICAgIHhBeGlzMiA9IHhBeGlzMi5maWx0ZXIoeCA9PiBrZXlzLmluZGV4T2YoeCkgPCAwKTtcclxuICAgICAgaWYgKHNlcmllczIubGVuZ3RoID4gMSlcclxuICAgICAgICBzZXJpZXMyID0gc2VyaWVzMi5maWx0ZXIoeCA9PiBrZXlzLmluZGV4T2YoeCkgPCAwKTtcclxuICAgIH1cclxuICAgIGlmICghc2VyaWVzMi5sZW5ndGgpIHNlcmllczIgPSB0aGlzLl9zZXJpZXMuc2xpY2UoLTEpO1xyXG4gICAgaWYgKCF4QXhpczIubGVuZ3RoKSB4QXhpczIgPSB0aGlzLl94QXhpcy5zbGljZSgtMSk7XHJcbiAgICAvLyBjb2x1bW5zXHJcbiAgICBjb25zdCBjb2x1bW5zID0geEF4aXMyLmNvbmNhdChzZXJpZXMyKTtcclxuICAgIC8vIHF1ZXJ5XHJcbiAgICB0aGlzLl9zZXJ2aWNlLnRhYmxlKHRoaXMuX2N1YmUubmFtZSwgY29sdW1ucywgeyBmaWx0ZXJzOiB0aGlzLmZpbHRlcnMsIGluZGljZXM6IHRoaXMuaW5kaWNlcyB9KS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiByID0+IHtcclxuICAgICAgICB0aGlzLl9kYXRhID0gcjtcclxuICAgICAgICB0aGlzLl9wcmVzZXRzKHhBeGlzMiwgc2VyaWVzMiwgcik7XHJcbiAgICAgICAgdGhpcy5fZHJhdygpO1xyXG4gICAgICAgIHRoaXMubG9hZGluZ0NoYW5nZS5lbWl0KGZhbHNlKTtcclxuICAgICAgfSwgZXJyb3I6IChlOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIHRoaXMuX3NiLmVycm9yKGVyclJlc291cmNlKGUpKTtcclxuICAgICAgICB0aGlzLmxvYWRpbmdDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHhBeGlzXHJcbiAgICogQHBhcmFtIHNlcmllc1xyXG4gICAqIEBwYXJhbSBkYXRhXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfcHJlc2V0cyh4QXhpczogc3RyaW5nW10sIHNlcmllczogc3RyaW5nW10sIGRhdGE6IHsgdmFsdWU6IG51bWJlciB9W10pIHtcclxuICAgIHRoaXMuZGF0YVNvdXJjZSA9IHtcclxuICAgICAgY29sdW1uczogeEF4aXMubWFwKHggPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBuYW1lOiB4LFxyXG4gICAgICAgICAgY2FwdGlvbjogdGhpcy5fZ2V0QXhpc1RpdGxlKHgpXHJcbiAgICAgICAgfSBhcyBJRmllbGRPcHRpb25zO1xyXG4gICAgICB9KSxcclxuICAgICAgcm93czogc2VyaWVzLm1hcChzID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgbmFtZTogcyxcclxuICAgICAgICAgIGNhcHRpb246IHRoaXMuX2dldEF4aXNUaXRsZShzKVxyXG4gICAgICAgIH0gYXMgSUZpZWxkT3B0aW9ucztcclxuICAgICAgfSksXHJcbiAgICAgIHZhbHVlU29ydFNldHRpbmdzOiB7IGhlYWRlckRlbGltaXRlcjogUElWT1RfSEVBREVSX0RFTElNSVRFUiwgfSxcclxuICAgICAgdmFsdWVzOiB0aGlzLnZhbHVlcyxcclxuICAgICAgc29ydFNldHRpbmdzOiB4QXhpcy5tYXAoeCA9PiAoXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbmFtZTogJ18nICsgeCxcclxuICAgICAgICB9IGFzIElTb3J0KVxyXG4gICAgICApLFxyXG4gICAgICBjb25kaXRpb25hbEZvcm1hdFNldHRpbmdzOiB0aGlzLmNvbmRpdGlvbmFsRm9ybWF0U2V0dGluZ3MsXHJcbiAgICAgIGFsd2F5c1Nob3dWYWx1ZUhlYWRlcjogZmFsc2UsXHJcbiAgICAgIGFsbG93TWVtYmVyRmlsdGVyOiBmYWxzZSxcclxuICAgICAgYWxsb3dWYWx1ZUZpbHRlcjogZmFsc2UsXHJcbiAgICAgIGFsbG93TGFiZWxGaWx0ZXI6IGZhbHNlLFxyXG4gICAgICBkYXRhU291cmNlOiBkYXRhLFxyXG4gICAgICAvL2VtcHR5Q2VsbHNUZXh0Q29udGVudDogdGhpcy5lbXB0eUNlbGxzVGV4dENvbnRlbnQsXHJcbiAgICAgIGVuYWJsZVNvcnRpbmc6IGZhbHNlLFxyXG4gICAgICBmb3JtYXRTZXR0aW5nczogdGhpcy5mb3JtYXRTZXR0aW5nc1xyXG4gICAgfSBhcyBEYXRhU291cmNlU2V0dGluZ3NNb2RlbDtcclxuICB9XHJcbiAgbXVsdGlMZXZlbExhYmVsQ2xpY2soZXZ0OiBNdWx0aUxldmVsTGFiZWxDbGlja0V2ZW50QXJncykge1xyXG4gICAgY29uc3QgeyBjb2x1bW5IZWFkZXJzLCByb3dIZWFkZXJzLCBhY3R1YWxWYWx1ZSwgYXhpcywgdmFsdWVTb3J0LCBhY3R1YWxUZXh0LCBpc0dyYW5kU3VtIH0gPSBldnQuY2VsbDtcclxuICAgIGlmIChhY3R1YWxWYWx1ZSA9PT0gMCkgcmV0dXJuO1xyXG4gICAgbGV0IGF4ZXM6IEF4ZXNNYXAsIGluZGV4OiBzdHJpbmc7XHJcbiAgICBpZiAoY29sdW1uSGVhZGVycyB8fCByb3dIZWFkZXJzKVxyXG4gICAgICBheGVzID0gdGhpcy5fcGFyc2VBeGVzKGNvbHVtbkhlYWRlcnMgYXMgc3RyaW5nLCByb3dIZWFkZXJzIGFzIHN0cmluZyk7XHJcbiAgICBlbHNlIGlmIChheGlzID09PSAncm93JylcclxuICAgICAgYXhlcyA9IHRoaXMuX3BhcnNlQXhlcygnJywgKHZhbHVlU29ydCBhcyBhbnkpLmxldmVsTmFtZSk7XHJcbiAgICBlbHNlIGlmIChheGlzID09PSAnY29sdW1uJylcclxuICAgICAgYXhlcyA9IHRoaXMuX3BhcnNlQXhlcygodmFsdWVTb3J0IGFzIGFueSkubGV2ZWxOYW1lLCAnJyk7XHJcbiAgICBlbHNlIGlmIChpc0dyYW5kU3VtKSByZXR1cm47XHJcbiAgICAvLyBUT0RPOiAgICBpZiAoYWN0dWFsVGV4dCAhPT0gJ3ZhbHVlJykgaW5kZXggPSBhY3R1YWxUZXh0IGFzIHN0cmluZztcclxuICAgIHRoaXMuZXhwbG9yZS5lbWl0KHsgYXhlcywgaW5kZXggfSk7XHJcbiAgfVxyXG4gIGh5cGVybGlua0NlbGxDbGljayhldnQ6IEh5cGVyQ2VsbENsaWNrRXZlbnRBcmdzKSB7XHJcbiAgICBjb25zdCB7IGNvbHVtbkhlYWRlcnMsIHJvd0hlYWRlcnMsIGFjdHVhbFRleHQsIGFjdHVhbFZhbHVlLCBheGlzLCB2YWx1ZVNvcnQsIGlzR3JhbmRTdW0gfSA9IGV2dC5kYXRhIGFzIGFueSxcclxuICAgICAgeyBsZXZlbE5hbWUgfSA9IHZhbHVlU29ydCB8fCB7fTtcclxuICAgIGlmIChhY3R1YWxWYWx1ZSA9PT0gMCkgcmV0dXJuO1xyXG4gICAgbGV0IGF4ZXM6IEF4ZXNNYXAsIGluZGV4OiBzdHJpbmc7XHJcbiAgICBpZiAoY29sdW1uSGVhZGVycyB8fCByb3dIZWFkZXJzKVxyXG4gICAgICBheGVzID0gdGhpcy5fcGFyc2VBeGVzKGNvbHVtbkhlYWRlcnMsIHJvd0hlYWRlcnMpO1xyXG4gICAgZWxzZSBpZiAoYXhpcyA9PT0gJ3JvdycpXHJcbiAgICAgIGF4ZXMgPSB0aGlzLl9wYXJzZUF4ZXMoJycsIGxldmVsTmFtZSk7XHJcbiAgICBlbHNlIGlmIChheGlzID09PSAnY29sdW1uJylcclxuICAgICAgYXhlcyA9IHRoaXMuX3BhcnNlQXhlcyhsZXZlbE5hbWUsICcnKTtcclxuICAgIC8vZWxzZSBpZiAoaXNHcmFuZFN1bSkgcmV0dXJuO1xyXG4gICAgaWYgKGFjdHVhbFRleHQgIT09ICd2YWx1ZScpIGluZGV4ID0gYWN0dWFsVGV4dDtcclxuICAgIHRoaXMuZXhwbG9yZS5lbWl0KHsgYXhlcywgaW5kZXggfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBldnRcclxuICAgKi9cclxuICBjZWxsQ2xpY2soZXZ0OiBDZWxsQ2xpY2tFdmVudEFyZ3MpIHtcclxuICAgIGNvbnN0IHsgY29sdW1uSGVhZGVycywgcm93SGVhZGVycywgYWN0dWFsVGV4dCwgYWN0dWFsVmFsdWUsIGF4aXMsIHZhbHVlU29ydCwgaXNHcmFuZFN1bSB9ID0gZXZ0LmRhdGEgYXMgYW55O1xyXG4gICAgaWYgKGFjdHVhbFZhbHVlID09PSAwKSByZXR1cm47XHJcbiAgICBsZXQgYXhlczogQXhlc01hcCwgaW5kZXg6IHN0cmluZztcclxuICAgIGlmIChjb2x1bW5IZWFkZXJzIHx8IHJvd0hlYWRlcnMpXHJcbiAgICAgIGF4ZXMgPSB0aGlzLl9wYXJzZUF4ZXMoY29sdW1uSGVhZGVycywgcm93SGVhZGVycyk7XHJcbiAgICBlbHNlIGlmIChheGlzID09PSAncm93JylcclxuICAgICAgYXhlcyA9IHRoaXMuX3BhcnNlQXhlcygnJywgdmFsdWVTb3J0LmxldmVsTmFtZSk7XHJcbiAgICBlbHNlIGlmIChheGlzID09PSAnY29sdW1uJylcclxuICAgICAgYXhlcyA9IHRoaXMuX3BhcnNlQXhlcyh2YWx1ZVNvcnQubGV2ZWxOYW1lLCAnJyk7XHJcbiAgICBlbHNlIGlmIChpc0dyYW5kU3VtKSByZXR1cm47XHJcbiAgICAvLyBUT0RPOiAgaWYgKGFjdHVhbFRleHQgIT09ICd2YWx1ZScpIGluZGV4ID0gYWN0dWFsVGV4dDtcclxuICAgIHRoaXMuZXhwbG9yZS5lbWl0KHsgYXhlcywgaW5kZXggfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGF4ZXMgZnJvbSBoZWFkZXJzXHJcbiAgICogQHBhcmFtIGNvbHVtbkhlYWRlcnNcclxuICAgKiBAcGFyYW0gcm93SGVhZGVyc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgX3BhcnNlQXhlcyhjb2x1bW5IZWFkZXJzOiBzdHJpbmcsIHJvd0hlYWRlcnM6IHN0cmluZyk6IEF4ZXNNYXAge1xyXG4gICAgY29uc3QgYXhlczogQXhlc01hcCA9IHt9O1xyXG4gICAgaWYgKGNvbHVtbkhlYWRlcnMgIT09ICcnKVxyXG4gICAgICBjb2x1bW5IZWFkZXJzLnNwbGl0KFBJVk9UX0hFQURFUl9ERUxJTUlURVIpLmZvckVhY2goKGMsIGkpID0+IHtcclxuICAgICAgICBjb25zdCBjb2x1bW4gPSB0aGlzLmRhdGFTb3VyY2UuY29sdW1uc1tpXS5uYW1lLFxyXG4gICAgICAgICAgLy8gZmluZCBhbnkgcm93IHdpdGggaGVhZGVyXHJcbiAgICAgICAgICBlbGVtZW50ID0gdGhpcy5fZGF0YS5maW5kKGUgPT4gZVtjb2x1bW5dLnRvU3RyaW5nKCkgPT09IGMpO1xyXG4gICAgICAgIC8vIHRyYW5zbGF0ZSBiYWNrIHRvIGtleVxyXG4gICAgICAgIGF4ZXNbY29sdW1uXSA9IGVsZW1lbnRbYF8ke2NvbHVtbn1gXTtcclxuICAgICAgfSk7XHJcbiAgICBpZiAocm93SGVhZGVycyAhPT0gJycpXHJcbiAgICAgIHJvd0hlYWRlcnMuc3BsaXQoUElWT1RfSEVBREVSX0RFTElNSVRFUikuZm9yRWFjaCgociwgaSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGNvbHVtbiA9IHRoaXMuZGF0YVNvdXJjZS5yb3dzW2ldLm5hbWUsXHJcbiAgICAgICAgICBlbGVtZW50ID0gdGhpcy5fZGF0YS5maW5kKGUgPT4gZVtjb2x1bW5dID09PSByKTtcclxuICAgICAgICBheGVzW2NvbHVtbl0gPSBlbGVtZW50W2BfJHtjb2x1bW59YF07XHJcbiAgICAgIH0pO1xyXG4gICAgcmV0dXJuIGF4ZXM7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGNoYXJ0XHJcbiAgICogQHBhcmFtIGVcclxuICAgKi9cclxuICBwb2ludENsaWNrKGU6IElQb2ludEV2ZW50QXJncykge1xyXG4gICAgY29uc3QgeyBwb2ludDogeyB4IH0sIHNlcmllczogeyBuYW1lIH0gfSA9IGU7XHJcbiAgICBjb25zdCBheGVzOiB7IFtheGlzOiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xyXG4gICAgLy8gc2V0IGF4ZXMgZnJvbSB4IGxhYmVsKHMpXHJcbiAgICAoeCBhcyBzdHJpbmcpLnNwbGl0KCcgLSAnKS5mb3JFYWNoKCh4LCBpKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNvbHVtbiA9IHRoaXMuZGF0YVNvdXJjZS5yb3dzW2ldLm5hbWUsXHJcbiAgICAgICAgZWxlbWVudCA9IHRoaXMuX2RhdGEuZmluZChlID0+IGVbY29sdW1uXSA9PT0geCk7XHJcbiAgICAgIGF4ZXNbY29sdW1uXSA9IGVsZW1lbnQgPyBlbGVtZW50W2BfJHtjb2x1bW59YF0gOiB4O1xyXG4gICAgfSk7XHJcbiAgICAvLyBzZXQgYXhlcyBmcm9tIHNlcmllcyBsYWJlbFxyXG4gICAgaWYgKG5hbWUgIT09ICcnKSB7XHJcbiAgICAgIGNvbnN0IGNvbHVtbiA9IHRoaXMuZGF0YVNvdXJjZS5jb2x1bW5zWzBdLm5hbWUsXHJcbiAgICAgICAgLy8gZmluZCBhbnkgcm93IHdpdGggaGVhZGVyXHJcbiAgICAgICAgZWxlbWVudCA9IHRoaXMuX2RhdGEuZmluZChlID0+IGVbY29sdW1uXSA9PT0gbmFtZSk7XHJcbiAgICAgIC8vIHRyYW5zbGF0ZSBiYWNrIHRvIGtleVxyXG4gICAgICBheGVzW2NvbHVtbl0gPSBlbGVtZW50ID8gZWxlbWVudFtgXyR7Y29sdW1ufWBdIDogbmFtZTtcclxuICAgIH1cclxuICAgIHRoaXMuZXhwbG9yZS5lbWl0KHsgYXhlcyB9KTtcclxuICB9XHJcbiAgYXN5bmMgZXhwb3J0VG9FeGNlbCh0aXRsZTogc3RyaW5nKSB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW5jeUNvZGUgJiYgdGhpcy5jdXJyZW5jeUNvZGUgIT09IERFRkFVTFRfQ1VSUkVOQ1kpXHJcbiAgICAgIGF3YWl0IHRoaXMuX3RyYW5zbGF0ZS5jbGRyKHRoaXMuX3Nlc3Npb24ubGFuZ3VhZ2UsIENMRFJfRklMRVMpO1xyXG4gICAgaWYgKHRoaXMuY2hhcnRUeXBlKVxyXG4gICAgICB0aGlzLl9leHBvcnRFeGNlbCh0aXRsZSk7XHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMucGl2b3QuZXhjZWxFeHBvcnQoeyBmaWxlTmFtZTogYCR7dGl0bGV9Lnhsc3hgLCBoaWVyYXJjaHlFeHBvcnRNb2RlOiAnQWxsJywgfSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2V4cG9ydEV4Y2VsKHRpdGxlOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IG51bWJlckZvcm1hdCA9IHRoaXMuX3NlcnZpY2UubnVtYmVyRm9ybWF0LCBjb2x1bW5zID0gdGhpcy5fY3ViZS5heGVzLmZpbHRlcihhID0+IHRoaXMuX3hBeGlzLmluZGV4T2YoYS5uYW1lKSA+IC0xIHx8XHJcbiAgICAgIHRoaXMuX3Nlcmllcy5pbmRleE9mKGEubmFtZSkgPiAtMSksIHJvd3MgPSBbe1xyXG4gICAgICAgIGluZGV4OiAxLFxyXG4gICAgICAgIGNlbGxzOiBjb2x1bW5zLm1hcCgoYywgaSkgPT4gKHtcclxuICAgICAgICAgIGluZGV4OiBpICsgMSwgdmFsdWU6IGMudGl0bGUsXHJcbiAgICAgICAgICBzdHlsZToge1xyXG4gICAgICAgICAgICBib2xkOiB0cnVlXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBhcyBDZWxsKSlcclxuICAgICAgfV0gYXMgUm93W107XHJcbiAgICByb3dzWzBdLmNlbGxzLnB1c2goe1xyXG4gICAgICBpbmRleDogY29sdW1ucy5sZW5ndGggKyAxLFxyXG4gICAgICB2YWx1ZTogdGhpcy55QXhpcyA/IHRoaXMueUF4aXMudGl0bGUgOlxyXG4gICAgICAgIHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1ZhbHVlJyksXHJcbiAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgYm9sZDogdHJ1ZVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX2luZGljZXMgJiYgdGhpcy5faW5kaWNlcy5mb3JFYWNoKCh4LCBpKSA9PiByb3dzWzBdLmNlbGxzLnB1c2goe1xyXG4gICAgICBpbmRleDogY29sdW1ucy5sZW5ndGggKyBpICsgMixcclxuICAgICAgdmFsdWU6IHRoaXMuX2dldEluZGV4VGl0bGUoeCksXHJcbiAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgYm9sZDogdHJ1ZVxyXG4gICAgICB9XHJcbiAgICB9KSk7XHJcbiAgICB0aGlzLl9kYXRhLmZvckVhY2goKHIsIGkpID0+IHtcclxuICAgICAgY29uc3QgY2VsbHMgPSBjb2x1bW5zLm1hcCgoYywgaikgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBpbmRleDogaiArIDEsIHZhbHVlOiByW2MubmFtZV0sXHJcbiAgICAgICAgICBzdHlsZToge31cclxuICAgICAgICB9IGFzIENlbGw7XHJcbiAgICAgIH1cclxuICAgICAgKTtcclxuICAgICAgY2VsbHMucHVzaCh7XHJcbiAgICAgICAgdHlwZTogJ251bWJlcicsXHJcbiAgICAgICAgaW5kZXg6IGNvbHVtbnMubGVuZ3RoICsgMSxcclxuICAgICAgICBzdHlsZToge1xyXG4gICAgICAgICAgbnVtYmVyRm9ybWF0LFxyXG4gICAgICAgICAgaEFsaWduOiAncmlnaHQnXHJcbiAgICAgICAgfSxcclxuICAgICAgICB2YWx1ZTogclsndmFsdWUnXVxyXG4gICAgICB9IGFzIENlbGwpO1xyXG4gICAgICB0aGlzLl9pbmRpY2VzICYmIHRoaXMuX2luZGljZXMuZm9yRWFjaCgoeCwgaSkgPT4gY2VsbHMucHVzaCh7XHJcbiAgICAgICAgdHlwZTogJ251bWJlcicsXHJcbiAgICAgICAgaW5kZXg6IGNvbHVtbnMubGVuZ3RoICsgaSArIDIsXHJcbiAgICAgICAgc3R5bGU6IHtcclxuICAgICAgICAgIG51bWJlckZvcm1hdCxcclxuICAgICAgICAgIGhBbGlnbjogJ3JpZ2h0J1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdmFsdWU6IHJbeF1cclxuICAgICAgfSBhcyBDZWxsKVxyXG4gICAgICApO1xyXG4gICAgICByb3dzLnB1c2goXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgaW5kZXg6IGkgKyAyLFxyXG4gICAgICAgICAgY2VsbHNcclxuICAgICAgICB9IGFzIFJvdyk7XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGJvb2sgPSBuZXcgV29ya2Jvb2soXHJcbiAgICAgIHtcclxuICAgICAgICB3b3Jrc2hlZXRzOiBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGVuYWJsZVJ0bDogdGhpcy5fc2Vzc2lvbi5pbnZlcnNlLFxyXG4gICAgICAgICAgICBuYW1lOiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdTaGVldE4nLCAxKSxcclxuICAgICAgICAgICAgY29sdW1uczogWy4uLmNvbHVtbnMubWFwKChfLCBpKSA9PiAoeyBpbmRleDogaSArIDEsIHdpZHRoOiAyNTAgfSBhcyBDb2x1bW4pKSxcclxuICAgICAgICAgICAgeyBpbmRleDogY29sdW1ucy5sZW5ndGggKyAxIH0sXHJcbiAgICAgICAgICAgIC4uLih0aGlzLl9pbmRpY2VzID8gdGhpcy5faW5kaWNlcy5tYXAoKF8sIGkpID0+ICh7XHJcbiAgICAgICAgICAgICAgaW5kZXg6IGNvbHVtbnMubGVuZ3RoICsgaSArIDJcclxuICAgICAgICAgICAgfSkpIDogW10pXHJcbiAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgIHJvd3NcclxuICAgICAgICAgIH0gYXMgV29ya3NoZWV0XHJcbiAgICAgICAgXSxcclxuICAgICAgfSxcclxuICAgICAgJ3hsc3gnXHJcbiAgICApO1xyXG4gICAgYm9vay5zYXZlKGAke3RpdGxlfS54bHN4YCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9kcmF3KCkge1xyXG4gICAgdGhpcy5waXZvdCAmJiB0aGlzLnBpdm90LmRlc3Ryb3koKTtcclxuICAgIHRoaXMucGl2b3QgPSBuZXcgUGl2b3RWaWV3KHtcclxuICAgICAgc3Bpbm5lclRlbXBsYXRlOiAnJyxcclxuICAgICAgY2hhcnRTZXR0aW5nczogdGhpcy5jaGFydFNldHRpbmdzLFxyXG4gICAgICBkaXNwbGF5T3B0aW9uOiB0aGlzLmRpc3BsYXlPcHRpb24sXHJcbiAgICAgIGRhdGFTb3VyY2VTZXR0aW5nczogdGhpcy5kYXRhU291cmNlLFxyXG4gICAgICB3aWR0aDogJ2F1dG8nLFxyXG4gICAgICBoZWlnaHQ6ICcxMDAlJyxcclxuICAgICAgZW5hYmxlVmFsdWVTb3J0aW5nOiBmYWxzZSxcclxuICAgICAgc2hvd1Rvb2x0aXA6IGZhbHNlLFxyXG4gICAgICBhbGxvd0NvbmRpdGlvbmFsRm9ybWF0dGluZzogdHJ1ZSxcclxuICAgICAgYWxsb3dFeGNlbEV4cG9ydDogdHJ1ZSxcclxuICAgICAgZXhwb3J0QWxsUGFnZXM6IHRydWUsXHJcbiAgICAgIGVuYWJsZVZpcnR1YWxpemF0aW9uOiB0cnVlLFxyXG4gICAgICBncmlkU2V0dGluZ3M6IHRoaXMuZ3JpZFNldHRpbmdzLFxyXG4gICAgICAvL2NlbGxDbGljazogdGhpcy5jZWxsQ2xpY2suYmluZCh0aGlzKSxcclxuICAgICAgY3VycmVuY3lDb2RlOiB0aGlzLmN1cnJlbmN5Q29kZSxcclxuICAgICAgaHlwZXJsaW5rU2V0dGluZ3M6IHRoaXMuaHlwZXJsaW5rU2V0dGluZ3MsXHJcbiAgICAgIGh5cGVybGlua0NlbGxDbGljazogdGhpcy5oeXBlcmxpbmtDZWxsQ2xpY2suYmluZCh0aGlzKSxcclxuICAgICAgLy9tdWx0aUxldmVsTGFiZWxDbGljazogdGhpcy5tdWx0aUxldmVsTGFiZWxDbGljay5iaW5kKHRoaXMpLFxyXG4gICAgICBkYXRhQm91bmQ6IHRoaXMuZGF0YUJvdW5kLmJpbmQodGhpcylcclxuICAgIH0sIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XHJcbiAgfVxyXG4gIGRhdGFCb3VuZChfOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMudG9vbHRpcCA9IG5ldyBUb29sdGlwKHtcclxuICAgICAgdGFyZ2V0OiAnLmUtaWNvbnMnLFxyXG4gICAgICBjc3NDbGFzczogJ2UtY3VzdG9tLXRvb2x0aXAnLFxyXG4gICAgICBwb3NpdGlvbjogJ0JvdHRvbUNlbnRlcicsXHJcbiAgICAgIG9mZnNldFk6IDE1LFxyXG4gICAgICBlbmFibGVSdGw6IHRoaXMucGl2b3QuZW5hYmxlUnRsLFxyXG4gICAgICBsb2NhbGU6IHRoaXMucGl2b3QubG9jYWxlLFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnRvb2x0aXAuYXBwZW5kVG8odGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICB9XHJcbiAgcmVzaXplKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucGl2b3QpIHtcclxuICAgICAgaWYgKHRoaXMuY2hhcnRTZXR0aW5ncylcclxuICAgICAgICB0aGlzLnBpdm90LmNoYXJ0ICYmICh0aGlzLnBpdm90LmNoYXJ0IGFzIENoYXJ0KS5jaGFydFJlc2l6ZSgpO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5waXZvdC5vbldpbmRvd1Jlc2l6ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMudG9vbHRpcCAmJiB0aGlzLnRvb2x0aXAuZGVzdHJveSgpO1xyXG4gICAgdGhpcy5waXZvdCAmJiB0aGlzLnBpdm90LmRlc3Ryb3koKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kubmV4dCgpO1xyXG4gICAgdGhpcy5fZGVzdHJveS5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG5pbnRlcmZhY2UgQ2VsbCB7IH1cclxuIl19
|
@@ -347,10 +347,10 @@ export class CubeSpreadsheetComponent {
|
|
347
347
|
ngOnDestroy() {
|
348
348
|
this.spreadsheet && this.spreadsheet.destroy();
|
349
349
|
}
|
350
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
351
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.
|
350
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: CubeSpreadsheetComponent, deps: [{ token: i1.SessionService }, { token: i2.PromptService }, { token: i3.CubeService }, { token: i4.TranslateService }, { token: i5.DatasourceService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
351
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: CubeSpreadsheetComponent, selector: "bizdoc-cube-spreadsheet", inputs: { width: "width", height: "height", cube: "cube", xAxis: "xAxis", yAxis: "yAxis", series: "series", indices: "indices", filters: "filters", loading: "loading" }, outputs: { explore: "explore", loadingChange: "loadingChange" }, host: { properties: { "id": "this.id" }, classAttribute: "cube-view" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true }); }
|
352
352
|
}
|
353
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
353
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: CubeSpreadsheetComponent, decorators: [{
|
354
354
|
type: Component,
|
355
355
|
args: [{
|
356
356
|
selector: 'bizdoc-cube-spreadsheet',
|
@@ -3,10 +3,10 @@ import { SyncfusionSpreadsheetModule } from "../../modules/spreadsheet.module";
|
|
3
3
|
import * as i0 from "@angular/core";
|
4
4
|
import * as i1 from "@syncfusion/ej2-angular-spreadsheet";
|
5
5
|
export class SpContainer {
|
6
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
7
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.
|
6
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: SpContainer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
7
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: SpContainer, isStandalone: true, selector: "bizdoc-sp-container", ngImport: i0, template: `<ejs-spreadsheet/>`, isInline: true, dependencies: [{ kind: "ngmodule", type: SyncfusionSpreadsheetModule }, { kind: "component", type: i1.SpreadsheetComponent, selector: "ejs-spreadsheet", inputs: ["activeSheetIndex", "allowAutoFill", "allowCellFormatting", "allowChart", "allowConditionalFormat", "allowDataValidation", "allowDelete", "allowEditing", "allowFiltering", "allowFindAndReplace", "allowFreezePane", "allowHyperlink", "allowImage", "allowInsert", "allowMerge", "allowNumberFormatting", "allowOpen", "allowPrint", "allowResizing", "allowSave", "allowScrolling", "allowSorting", "allowUndoRedo", "allowWrap", "autoFillSettings", "cellStyle", "cssClass", "currencyCode", "definedNames", "enableClipboard", "enableContextMenu", "enableKeyboardNavigation", "enableKeyboardShortcut", "enableNotes", "enablePersistence", "enableRtl", "height", "isProtected", "listSeparator", "locale", "openUrl", "password", "saveUrl", "scrollSettings", "selectionSettings", "sheets", "showAggregate", "showFormulaBar", "showRibbon", "showSheetTabs", "width"], outputs: ["actionBegin", "actionComplete", "afterHyperlinkClick", "afterHyperlinkCreate", "beforeCellFormat", "beforeCellRender", "beforeCellSave", "beforeCellUpdate", "beforeConditionalFormat", "beforeDataBound", "beforeHyperlinkClick", "beforeHyperlinkCreate", "beforeOpen", "beforeSave", "beforeSelect", "beforeSort", "cellEdit", "cellEdited", "cellEditing", "cellSave", "contextMenuBeforeClose", "contextMenuBeforeOpen", "contextMenuItemSelect", "created", "dataBound", "dataSourceChanged", "dialogBeforeOpen", "fileMenuBeforeClose", "fileMenuBeforeOpen", "fileMenuItemSelect", "openComplete", "openFailure", "queryCellInfo", "saveComplete", "select", "sortComplete"] }] }); }
|
8
8
|
}
|
9
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: SpContainer, decorators: [{
|
10
10
|
type: Component,
|
11
11
|
args: [{
|
12
12
|
standalone: true,
|
@@ -367,14 +367,14 @@ export class CubeSumComponent {
|
|
367
367
|
axes[this.parentAxis] = level.scope;
|
368
368
|
this.onExplore.emit({ axes, index });
|
369
369
|
}
|
370
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
371
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.
|
370
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: CubeSumComponent, deps: [{ token: i1.DatasourceService }, { token: i2.CubeService }, { token: i3.PromptService }, { token: i4.SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
|
371
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: CubeSumComponent, selector: "bizdoc-cube-sum", inputs: { xAxis: "xAxis", periodPolicy: "periodPolicy", parentAxis: "parentAxis", filters: "filters", cube: "cube", indices: "indices", scope: "scope" }, outputs: { onExplore: "explore" }, usesOnChanges: true, ngImport: i0, template: "<!-- levels -->\n<div class=\"row\">\n @if (prev) {\n <div class=\"level prev-level\">\n <div class=\"level-header row\">\n @if (back) {\n <mat-icon class=\"cliclable mat-icon-rtl-mirror\" [inline]=true (click)=\"goprev()\">keyboard_arrow_left</mat-icon>\n }\n <div div class=\"mat-h1 title\">\n {{'PrevLevel'| translate}}\n </div>\n <span class=\"divider\"></span>\n @if (forward) {\n <mat-icon class=\"cliclable mat-icon-rtl-mirror\" [inline]=true (click)=\"gonext()\">keyboard_arrow_right</mat-icon>\n }\n </div>\n <ng-container *ngTemplateOutlet=\"level; context: {use: prev}\"></ng-container>\n </div>\n }\n @if (current) {\n <div class=\"level current-level\">\n <div class=\"level-header row\">\n <div div class=\"mat-h1 title\">\n {{'CurrentLevel'| translate : primaryAxis.title}}\n </div>\n <span class=\"divider\"></span>\n @if (help) {\n <mat-icon [bizdocTooltip]=\"help\" [inline]=\"true\">help_outline</mat-icon>\n }\n </div>\n <ng-container *ngTemplateOutlet=\"level; context: {use: current}\"></ng-container>\n </div>\n }\n @if (next) {\n <div class=\"level next-level\">\n <div class=\"level-header\">\n <div div class=\"mat-h1 title\">\n {{'NextLevel'| translate}}\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"level; context: {use: next}\"></ng-container>\n </div>\n }\n</div>\n<!-- level -->\n<ng-template #level let-use=\"use\" let-help=\"help\">\n <div>\n <h2 class=\"mat-h1\" [class.cliclable]=\"use.value !== 0\" (click)=\"explore(use)\">{{use.title}}</h2>\n <div class=\"row\">\n <h3 class=\"mat-h1\" [class.cliclable]=\"use.value !== 0\" (click)=\"explore(use)\">{{use.value | currency : currencyCode : 'symbol' : digitsInfo}}</h3>\n <span class=\"divider\"></span>\n @if (use.chain && use.value !== use.chain.value) {\n <div>\n @if (use.value !== 0 && use.chain.value !== 0) {\n <span>{{Math.round(use.value / use.chain.value * 100) }}%</span>\n }\n <mat-icon>{{use.value > use.chain.value ? 'trending_up':'trending_down' }}</mat-icon>\n </div>\n }\n </div>\n </div>\n <!-- -->\n <div class=\"row\">\n @for (i of use.indices; track i) {\n <div class=\"index\">\n <h4 class=\"mat-h3 title\">{{i.title}}</h4>\n <h5 class=\"mat-h3\" [class.cliclable]=\"i.value !== 0\" (click)=\"explore(use, i.name)\">{{i.value | currency : currencyCode : 'symbol' : digitsInfo}}</h5>\n </div>\n }\n </div>\n @if (use.indices.length) {\n <div class=\"bar\" [class.available]=\"use.percent < 100\">\n <div class=\"value\" [style.flexBasis]=\"Math.round(use.percent < 100 ?\r\n 100 - use.percent :\r\n 100 / use.percent * 100) + '%'\"\r\n [@bar]=\"use.animation\"></div>\n @if (use.percent > 0) {\n <div class=\"overflow\"></div>\n }\n </div>\n }\n</ng-template>\n", styles: [":host{padding:0 8px}.level{border-width:thin;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;padding:8px;margin:3px;-ms-flex:1 1 0;-webkit-flex:1 1 0;flex:1 1 0;border-style:solid}.level .cliclable{cursor:pointer}.level.next-level{border-style:dashed}.level .level-header{align-items:center}.level .level-header .title{margin:0;line-height:22px;font-size:inherit;font-variant-caps:all-petite-caps}.level h3{margin:0;font-size:x-large}.level h2{font-weight:400;font-size:larger;margin:0}.level .percent{display:flex;align-items:center}.level .index{padding:0 4px}.level .index h5,.level .index h4{margin:0}.level .bar{display:flex}.level .bar .value,.level .bar .overflow{height:12px}.level .bar .value{flex:0 0 0%}.level .bar .overflow{flex:1 1 0%;box-sizing:border-box}.level .bar.available .overflow{border-width:1px;border-style:dashed}\n"], dependencies: [{ kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i7.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i5.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }], animations: [trigger('bar', [
|
372
372
|
transition('*<=>*', [style({
|
373
373
|
flexBasis: '{{startWidth}}%'
|
374
374
|
}), animate('500ms ease')], { params: { startWidth: 100 } }),
|
375
375
|
])] }); }
|
376
376
|
}
|
377
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
377
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: CubeSumComponent, decorators: [{
|
378
378
|
type: Component,
|
379
379
|
args: [{ selector: 'bizdoc-cube-sum', animations: [trigger('bar', [
|
380
380
|
transition('*<=>*', [style({
|
@@ -65,10 +65,10 @@ export class ViewBase {
|
|
65
65
|
evt && evt.preventDefault();
|
66
66
|
}
|
67
67
|
}
|
68
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
69
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.
|
68
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ViewBase, deps: [{ token: i1.SessionService }, { token: i2.RouterImpl }, { token: i3.CubeService }, { token: i4.GuideService }], target: i0.ɵɵFactoryTarget.Directive }); }
|
69
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.1", type: ViewBase, ngImport: i0 }); }
|
70
70
|
}
|
71
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
71
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ViewBase, decorators: [{
|
72
72
|
type: Directive
|
73
73
|
}], ctorParameters: () => [{ type: i1.SessionService }, { type: i2.RouterImpl }, { type: i3.CubeService }, { type: i4.GuideService }] });
|
74
74
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jdWJlL3ZpZXctYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFTMUMsTUFBTSxPQUFnQixRQUFRO0lBSzVCLElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBQ0QsSUFBVyxJQUFJLENBQUMsS0FBVztRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsSUFBVyxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFDRCxJQUFXLElBQUksQ0FBQyxLQUFlO1FBQzdCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkYsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUN0RSxDQUFDLENBQUMsYUFBYSxLQUFLLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFHRCxJQUFXLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUNELElBQVcsSUFBSSxDQUFDLEtBQWM7UUFDNUIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUtELElBQVcsWUFBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUNELElBQVcsWUFBWSxDQUFDLEtBQWM7UUFDcEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFlBQXNCLFFBQXdCLEVBQ2xDLE9BQW1CLEVBQ25CLFFBQXFCLEVBQ3ZCLE1BQW9CO1FBSFIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFDbEMsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUNuQixhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQ3ZCLFdBQU0sR0FBTixNQUFNLENBQWM7UUF2QnRCLFVBQUssR0FBWSxFQUFFLENBQUM7SUF3QjVCLENBQUM7SUFDRCxhQUFhLENBQUMsT0FBZ0I7UUFDNUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsTUFBTSxJQUFJLEdBQUc7WUFDWCxHQUFHLE9BQU8sQ0FBQyxJQUFJO1NBQ2hCLENBQUM7UUFDRixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLENBQUM7SUFDRCxRQUFRLENBQUMsV0FBVztRQUNsQixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUU7WUFDeEIsV0FBVztTQUNaLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxLQUFLLENBQUMsR0FBVztRQUNmLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25DLEdBQUcsSUFBSSxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7OEdBdEVtQixRQUFRO2tHQUFSLFFBQVE7OzJGQUFSLFFBQVE7a0JBRDdCLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXhlc01hcCwgQ3ViZSwgQ3ViZVZpZXcgfSBmcm9tICcuLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IEN1YmVTZXJ2aWNlLCBQYXR0ZXJuIH0gZnJvbSAnLi9jdWJlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgR3VpZGVTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9ndWlkZS9ndWlkZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ3ViZVZpZXdDb21wb25lbnQgfSBmcm9tICcuL2N1YmUtdmlldy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSb3V0ZXJJbXBsIH0gZnJvbSAnLi4vY29yZS9yb3V0ZXInO1xyXG5cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBWaWV3QmFzZSB7XHJcbiAgYWJzdHJhY3Qgdmlld1BhbmU6IEN1YmVWaWV3Q29tcG9uZW50O1xyXG4gIHBhdHRlcm5zOiBQYXR0ZXJuW107XHJcbiAgcGF0dGVybjogUGF0dGVybjtcclxuICBwcml2YXRlIF9jdWJlOiBDdWJlO1xyXG4gIHB1YmxpYyBnZXQgY3ViZSgpOiBDdWJlIHtcclxuICAgIHJldHVybiB0aGlzLl9jdWJlO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IGN1YmUodmFsdWU6IEN1YmUpIHtcclxuICAgIHRoaXMuX2N1YmUgPSB2YWx1ZTtcclxuICAgIHRoaXMuX3NlcnZpY2UucGF0dGVybnModmFsdWUubmFtZSkuc3Vic2NyaWJlKHAgPT4gdGhpcy5wYXR0ZXJucyA9IHApO1xyXG4gIH1cclxuICBwcml2YXRlIF92aWV3OiBDdWJlVmlldztcclxuICBwdWJsaWMgZ2V0IHZpZXcoKTogQ3ViZVZpZXcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ZpZXc7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgdmlldyh2YWx1ZTogQ3ViZVZpZXcpIHtcclxuICAgIHRoaXMuX3ZpZXcgPSB2YWx1ZTtcclxuICAgIHRoaXMuZXhjbHVkZSA9IHZhbHVlLnNlcmllcyA/IFsuLi52YWx1ZS54QXhpcywgLi4udmFsdWUuc2VyaWVzXSA6IFsuLi52YWx1ZS54QXhpc107XHJcbiAgICB0aGlzLmFueUF4ZXMgPSB0aGlzLmN1YmUuYXhlcy5zb21lKGEgPT4gdGhpcy5leGNsdWRlLmluZGV4T2YoYS5uYW1lKSA8IDAgJiZcclxuICAgICAgYS5zZWxlY3Rpb25Nb2RlICE9PSAnTm9uZScpO1xyXG4gIH1cclxuICBleGNsdWRlOiBzdHJpbmdbXTtcclxuICBwcml2YXRlIF9heGVzOiBBeGVzTWFwID0ge307XHJcbiAgcHVibGljIGdldCBheGVzKCk6IEF4ZXNNYXAge1xyXG4gICAgcmV0dXJuIHRoaXMuX2F4ZXM7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgYXhlcyh2YWx1ZTogQXhlc01hcCkge1xyXG4gICAgdGhpcy5fYXhlcyA9IHZhbHVlO1xyXG4gICAgdGhpcy5hbnlGaWx0ZXJzID0gT2JqZWN0LmtleXModmFsdWUpLmxlbmd0aCA+IDA7XHJcbiAgfVxyXG4gIGFueUF4ZXM6IGJvb2xlYW47XHJcbiAgYW55RmlsdGVyczogYm9vbGVhbjtcclxuICBsb2FkaW5nOiBib29sZWFuO1xyXG4gIHByaXZhdGUgX29yaWdpbmFsQXhlczogQXhlc01hcDtcclxuICBwdWJsaWMgZ2V0IG9yaWdpbmFsQXhlcygpOiBBeGVzTWFwIHtcclxuICAgIHJldHVybiB0aGlzLl9vcmlnaW5hbEF4ZXM7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgb3JpZ2luYWxBeGVzKHZhbHVlOiBBeGVzTWFwKSB7XHJcbiAgICB0aGlzLl9vcmlnaW5hbEF4ZXMgPSB2YWx1ZTtcclxuICAgIHRoaXMuYXhlcyA9IHsgLi4udmFsdWUgfTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgX3JvdXRlcjogUm91dGVySW1wbCxcclxuICAgIHByb3RlY3RlZCBfc2VydmljZTogQ3ViZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9ndWlkZTogR3VpZGVTZXJ2aWNlKSB7XHJcbiAgfVxyXG4gIHBhdHRlcm5DaGFuZ2UocGF0dGVybjogUGF0dGVybikge1xyXG4gICAgdGhpcy5wYXR0ZXJuID0gcGF0dGVybjtcclxuICAgIGNvbnN0IGF4ZXMgPSB7XHJcbiAgICAgIC4uLnBhdHRlcm4uYXhlc1xyXG4gICAgfTtcclxuICAgIHRoaXMuX3NlcnZpY2UuYmFzZSh0aGlzLmN1YmUubmFtZSwgYXhlcywgdGhpcy5vcmlnaW5hbEF4ZXMpO1xyXG4gICAgdGhpcy5uYXZpZ2F0ZShheGVzKTtcclxuICB9XHJcbiAgY2xlYXJGaWx0ZXIoKSB7XHJcbiAgICB0aGlzLm5hdmlnYXRlKHt9KTtcclxuICAgIHRoaXMucGF0dGVybiA9IG51bGw7XHJcbiAgfVxyXG4gIG5hdmlnYXRlKHF1ZXJ5UGFyYW1zKSB7XHJcbiAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoW10sIHtcclxuICAgICAgcXVlcnlQYXJhbXNcclxuICAgIH0pO1xyXG4gIH1cclxuICBndWlkZShldnQ/OiBFdmVudCkge1xyXG4gICAgaWYgKHRoaXMudmlldy5ndWlkZSkge1xyXG4gICAgICB0aGlzLl9ndWlkZS5zdGFydCh0aGlzLnZpZXcuZ3VpZGUpO1xyXG4gICAgICBldnQgJiYgZXZ0LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
@@ -102,10 +102,10 @@ export class CubeMobileViewComponent extends ViewBase {
|
|
102
102
|
this._destroy.next();
|
103
103
|
this._destroy.complete();
|
104
104
|
}
|
105
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
106
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.
|
105
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: CubeMobileViewComponent, deps: [{ token: i1.SessionService }, { token: i2.RouterImpl }, { token: i3.CubeService }, { token: i4.GuideService }, { token: i5.PromptService }, { token: i6.WindowTitleService }, { token: i7.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
106
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: CubeMobileViewComponent, selector: "ng-component", viewQueries: [{ propertyName: "viewPane", first: true, predicate: CubeViewComponent, descendants: true, static: true }, { propertyName: "drawer", first: true, predicate: MatSidenav, descendants: true, static: true }, { propertyName: "explorePane", first: true, predicate: ExploreItemsComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\n @if (view.guide) {\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\n }\n <button mat-icon-button (click)=\"viewPane.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\n <span class=\"divider\"></span>\n <button mat-icon-button [matMenuTriggerFor]=\"pmenu\" [bizdocTooltip]=\"'Patterns' | translate\" [disabled]=\"!patterns?.length\" data-help=\"pattern\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\n <mat-menu #pmenu>\n @for (p of patterns; track p) {\n <button mat-menu-item (click)=\"patternChange(p)\">\n <span>{{p.title}}</span>\n </button>\n }\n </mat-menu>\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" [bizdocTooltip]=\"'Download' | translate\" data-help=\"download\"><mat-icon>save_alt</mat-icon></button>\n <mat-menu #menu>\n <button mat-menu-item (click)=\"viewPane.exportToExcel()\">{{'DownloadExcel' | translate}}</button>\n @if (mode === 'explore') {\n <mat-divider></mat-divider>\n <button mat-menu-item (click)=\"explorePane.exportExcel()\">{{'DownloadExplore' | translate}}</button>\n }\n </mat-menu>\n <button mat-icon-button (click)=\"clearFilter()\" [bizdocTooltip]=\"'Clear' | translate\" [disabled]=\"!anyFilters\"><mat-icon>clear_all</mat-icon></button>\n <button mat-icon-button (click)=\"toggleFilter()\" [bizdocTooltip]=\"'Filter' | translate\" [disabled]=\"!anyAxes\" data-help=\"filter\"><mat-icon>filter_list</mat-icon></button>\n</mat-toolbar>\n<mat-sidenav-container class=\"page-container\" autosize>\n <mat-sidenav mode=\"over\" position=\"end\" [opened]=\"false\">\n @switch (mode) {\n @case ('explore') {\n <bizdoc-cube-explore [cube]=\"cube.name\" [index]=\"exploreIndex\" [axes]=exploreAxes\n (explore)=\"exploreItem($event)\" #explorePane [pageSize]=1000 (loadingChange)=\"loading = $event\"></bizdoc-cube-explore>\n }\n @case ('item') {\n <bizdoc-cube-item [template]=\"template\" [model]=\"item\"></bizdoc-cube-item>\n }\n @default {\n <bizdoc-cube-filter [cube]=\"cube.name\" [axes]=\"axes\" [exclude]=\"exclude\" (axesChange)=\"filterChange($event)\"></bizdoc-cube-filter>\n }\n }\n </mat-sidenav>\n <mat-sidenav-content>\n <bizdoc-cube-view [filters]=\"axes\" #viewPane\n (explore)=\"explore($event)\"\n [cube]=\"cube\"\n [view]=\"view\"\n [(loading)]=\"loading\"></bizdoc-cube-view>\n </mat-sidenav-content>\n</mat-sidenav-container>\n", styles: [":host ::ng-deep .mat-sidenav-container .mat-sidenav-content{overflow:hidden;max-width:95%}:host ::ng-deep .e-pivot-context-menu{display:none}\n"], dependencies: [{ kind: "component", type: i8.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i9.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i9.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i9.MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "component", type: i10.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i11.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i12.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i13.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i13.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i13.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: i14.ExploreItemImplComponent, selector: "bizdoc-cube-item", inputs: ["template", "model"] }, { kind: "component", type: i15.CubeFilterComponent, selector: "bizdoc-cube-filter", inputs: ["cube", "exclude", "include", "axes"], outputs: ["axesChange"] }, { kind: "component", type: i16.CubeViewComponent, selector: "bizdoc-cube-view", inputs: ["filters", "cube", "view", "loading"], outputs: ["explore", "loadingChange"] }, { kind: "component", type: i17.ExploreItemsComponent, selector: "bizdoc-cube-explore", inputs: ["pageSize", "cube", "index", "scope", "axes", "loading"], outputs: ["explore", "load", "loadingChange"] }, { kind: "directive", type: i18.MatIconAnimate, selector: "[matAnimate]" }, { kind: "directive", type: i19.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i20.TranslatePipe, name: "translate" }] }); }
|
107
107
|
}
|
108
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
108
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: CubeMobileViewComponent, decorators: [{
|
109
109
|
type: Component,
|
110
110
|
args: [{ template: "<mat-toolbar class=\"nav-toolbar\">\n @if (view.guide) {\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\n }\n <button mat-icon-button (click)=\"viewPane.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\n <span class=\"divider\"></span>\n <button mat-icon-button [matMenuTriggerFor]=\"pmenu\" [bizdocTooltip]=\"'Patterns' | translate\" [disabled]=\"!patterns?.length\" data-help=\"pattern\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\n <mat-menu #pmenu>\n @for (p of patterns; track p) {\n <button mat-menu-item (click)=\"patternChange(p)\">\n <span>{{p.title}}</span>\n </button>\n }\n </mat-menu>\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" [bizdocTooltip]=\"'Download' | translate\" data-help=\"download\"><mat-icon>save_alt</mat-icon></button>\n <mat-menu #menu>\n <button mat-menu-item (click)=\"viewPane.exportToExcel()\">{{'DownloadExcel' | translate}}</button>\n @if (mode === 'explore') {\n <mat-divider></mat-divider>\n <button mat-menu-item (click)=\"explorePane.exportExcel()\">{{'DownloadExplore' | translate}}</button>\n }\n </mat-menu>\n <button mat-icon-button (click)=\"clearFilter()\" [bizdocTooltip]=\"'Clear' | translate\" [disabled]=\"!anyFilters\"><mat-icon>clear_all</mat-icon></button>\n <button mat-icon-button (click)=\"toggleFilter()\" [bizdocTooltip]=\"'Filter' | translate\" [disabled]=\"!anyAxes\" data-help=\"filter\"><mat-icon>filter_list</mat-icon></button>\n</mat-toolbar>\n<mat-sidenav-container class=\"page-container\" autosize>\n <mat-sidenav mode=\"over\" position=\"end\" [opened]=\"false\">\n @switch (mode) {\n @case ('explore') {\n <bizdoc-cube-explore [cube]=\"cube.name\" [index]=\"exploreIndex\" [axes]=exploreAxes\n (explore)=\"exploreItem($event)\" #explorePane [pageSize]=1000 (loadingChange)=\"loading = $event\"></bizdoc-cube-explore>\n }\n @case ('item') {\n <bizdoc-cube-item [template]=\"template\" [model]=\"item\"></bizdoc-cube-item>\n }\n @default {\n <bizdoc-cube-filter [cube]=\"cube.name\" [axes]=\"axes\" [exclude]=\"exclude\" (axesChange)=\"filterChange($event)\"></bizdoc-cube-filter>\n }\n }\n </mat-sidenav>\n <mat-sidenav-content>\n <bizdoc-cube-view [filters]=\"axes\" #viewPane\n (explore)=\"explore($event)\"\n [cube]=\"cube\"\n [view]=\"view\"\n [(loading)]=\"loading\"></bizdoc-cube-view>\n </mat-sidenav-content>\n</mat-sidenav-container>\n", styles: [":host ::ng-deep .mat-sidenav-container .mat-sidenav-content{overflow:hidden;max-width:95%}:host ::ng-deep .e-pivot-context-menu{display:none}\n"] }]
|
111
111
|
}], ctorParameters: () => [{ type: i1.SessionService }, { type: i2.RouterImpl }, { type: i3.CubeService }, { type: i4.GuideService }, { type: i5.PromptService }, { type: i6.WindowTitleService }, { type: i7.ActivatedRoute }], propDecorators: { viewPane: [{
|