@bizdoc/core 2.3.32 → 2.3.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/bizdoc-schema.json +1 -0
- package/esm2022/lib/admin/admin-dismiss.service.mjs +3 -3
- package/esm2022/lib/admin/admin-menu.component.mjs +5 -5
- 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 +16 -8
- 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 +3 -3
- 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 +5 -5
- 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 +5 -7
- package/esm2022/lib/admin/document-trace/document-trace.component.mjs +5 -7
- 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 +5 -7
- 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 +5 -7
- 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 +5 -8
- package/esm2022/lib/app.component.mjs +6 -6
- package/esm2022/lib/bizdoc.module.mjs +4 -4
- package/esm2022/lib/browse/browse-items.component.mjs +3 -3
- package/esm2022/lib/browse/browse.mobile.component.mjs +3 -3
- package/esm2022/lib/browse/browse.pane.component.mjs +22 -13
- package/esm2022/lib/browse/expanded-item/expanded-item.component.mjs +3 -3
- package/esm2022/lib/browse/filter/filter.component.mjs +28 -38
- 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 +15 -14
- package/esm2022/lib/chat/contacts.pane.component.mjs +5 -8
- package/esm2022/lib/chat/conversation.component.mjs +5 -6
- package/esm2022/lib/chat/conversation.pane.component.mjs +5 -7
- 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 +5 -7
- 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 +5 -5
- package/esm2022/lib/compose/comments/comments.component.mjs +5 -6
- package/esm2022/lib/compose/comments/comments.pane.component.mjs +5 -7
- package/esm2022/lib/compose/comments/edit-comment.component.mjs +5 -5
- 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 +6 -6
- package/esm2022/lib/compose/compose.mobile.component.mjs +3 -3
- package/esm2022/lib/compose/compose.pane.component.mjs +5 -7
- package/esm2022/lib/compose/copy/copy.dialog.mjs +3 -3
- package/esm2022/lib/compose/dismiss.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 +5 -5
- 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 +5 -5
- package/esm2022/lib/compose/trace/flow.component.mjs +8 -4
- 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 +7 -11
- 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 +5 -7
- package/esm2022/lib/core/StickyToolbar.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/animations.mjs +6 -1
- 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/fields/address.designer.mjs +3 -3
- package/esm2022/lib/core/fields/address.field.mjs +3 -3
- package/esm2022/lib/core/fields/autocomplete.field.mjs +6 -6
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +8 -8
- 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 +5 -5
- 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 +6 -6
- 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 +3 -3
- 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 +37 -37
- package/esm2022/lib/core/tagging/documents.component.mjs +3 -3
- package/esm2022/lib/core/tagging/edit-input.component.mjs +5 -5
- 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/translations.mjs +34 -12
- 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 +5 -5
- package/esm2022/lib/cube/cube-view.component.mjs +3 -3
- 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 +3 -3
- package/esm2022/lib/cube/explore/explore.pane.component.mjs +5 -7
- package/esm2022/lib/cube/explore/item-resolver.service.mjs +6 -6
- package/esm2022/lib/cube/explore/item.pane.component.mjs +5 -7
- package/esm2022/lib/cube/filter/filter-tags.component.exp.mjs +3 -3
- package/esm2022/lib/cube/filter/filter.component.mjs +3 -3
- 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 +5 -7
- package/esm2022/lib/cube/matrix/popup.component.mjs +3 -3
- package/esm2022/lib/cube/matrix/table.component.mjs +122 -101
- package/esm2022/lib/cube/parallel/parallel.component.mjs +3 -3
- package/esm2022/lib/cube/pivot/pivot.component.mjs +3 -3
- package/esm2022/lib/cube/spreadsheet/spreadsheet.component.mjs +3 -3
- package/esm2022/lib/cube/spreadsheet/spreadsheet.container.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 +27 -15
- 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 +5 -5
- 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 +5 -8
- package/esm2022/lib/home/about/about.dialog.mjs +3 -3
- package/esm2022/lib/home/home-base.component.mjs +5 -5
- package/esm2022/lib/home/home.desktop.component.mjs +133 -42
- package/esm2022/lib/home/home.mobile.component.mjs +5 -5
- package/esm2022/lib/home/notifications/notifications.component.mjs +3 -3
- package/esm2022/lib/home/options/options.component.mjs +34 -37
- package/esm2022/lib/home/outofoffice/outofoffice.component.mjs +5 -5
- 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 +3 -3
- package/esm2022/lib/notifications/notifications.mobile.component.mjs +3 -3
- package/esm2022/lib/notifications/notifications.pane.component.mjs +5 -8
- 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 +87 -91
- package/esm2022/lib/options/options.service.mjs +10 -29
- 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/role-performance.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 +28 -13
- package/esm2022/lib/reports/reports-menu.component.mjs +5 -5
- 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/routes.desktop.mjs +2 -2
- package/esm2022/lib/scheduler/schedule.component.mjs +5 -5
- package/esm2022/lib/scheduler/scheduler.mobile.component.mjs +3 -3
- package/esm2022/lib/scheduler/scheduler.pane.component.mjs +5 -8
- package/esm2022/lib/search/cube.component.mjs +9 -7
- package/esm2022/lib/search/document.component.mjs +6 -6
- package/esm2022/lib/search/guide.component.mjs +10 -9
- package/esm2022/lib/search/path.component.mjs +6 -6
- package/esm2022/lib/search/search.service.mjs +3 -3
- package/esm2022/lib/shared.module.mjs +7 -7
- package/esm2022/lib/system.module.mjs +9 -5
- 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 +7 -5
- 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/esm2022/public-api.mjs +2 -1
- package/fesm2022/bizdoc-core.mjs +3092 -3043
- package/fesm2022/bizdoc-core.mjs.map +1 -1
- package/lib/admin/architecture/designer.component.d.ts +2 -1
- package/lib/browse/browse.pane.component.d.ts +3 -2
- package/lib/browse/filter/filter.component.d.ts +2 -5
- package/lib/chat/conversation.component.d.ts +0 -1
- package/lib/compose/comments/comments.component.d.ts +0 -1
- package/lib/compose/trace/trace.pane.component.d.ts +1 -1
- package/lib/core/animations.d.ts +2 -0
- package/lib/core/guide/guide.component.d.ts +1 -1
- package/lib/core/slots/slots.component.d.ts +7 -5
- package/lib/core/translations.d.ts +29 -7
- package/lib/cube/matrix/table.component.d.ts +13 -7
- package/lib/cube/view.pane.component.d.ts +8 -3
- package/lib/desktop.module.d.ts +37 -38
- package/lib/home/home-base.component.d.ts +1 -1
- package/lib/home/home.desktop.component.d.ts +31 -6
- package/lib/home/home.mobile.component.d.ts +1 -1
- package/lib/home/options/options.component.d.ts +10 -13
- package/lib/options/options.component.d.ts +21 -23
- package/lib/options/options.service.d.ts +2 -7
- package/lib/reports/report.pane.component.d.ts +8 -2
- package/lib/shared.module.d.ts +1 -1
- package/lib/views/cube/matrix.component.d.ts +2 -0
- package/package.json +6 -6
- package/public-api.d.ts +1 -0
- package/esm2022/lib/home/tools.component.mjs +0 -82
- package/lib/home/tools.component.d.ts +0 -35
@@ -83,10 +83,10 @@ export class BrowseMobileComponent {
|
|
83
83
|
this._destroy.next();
|
84
84
|
this._destroy.complete();
|
85
85
|
}
|
86
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.
|
87
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.
|
86
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: BrowseMobileComponent, deps: [{ token: i1.Router }, { token: i2.WindowTitleService }, { token: i3.SessionService }, { token: i1.ActivatedRoute }, { token: i4.Directionality }, { token: i5.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
|
87
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: BrowseMobileComponent, selector: "ng-component", viewQueries: [{ propertyName: "items", first: true, predicate: BrowseItemsComponent, descendants: true, static: true }, { propertyName: "drawer", first: true, predicate: MatSidenav, descendants: true, static: true }], ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\n <button mat-icon-button (click)=\"items.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\" [attr.aria-label]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\n @if (items.isAllDraft()) {\n <button mat-icon-button (click)=\"items.discardAll()\" [bizdocTooltip]=\"'DiscardSelected' | translate : items.selection.selected.length\" [attr.aria-label]=\"'DiscardSelected' | translate : items.selection.selected.length\"><mat-icon>delete_sweep</mat-icon></button>\n <button mat-button color=\"primary\" class=\"hide-xs\" (click)=\"items.submitAll()\">{{'SubmitSelected' | translate : items.selection.selected.length }}</button>\n <!-- <span class=\"mat-body show-xs\">{{items.selection.selected.length}}</span>-->\n <button mat-icon-button color=\"primary\" (click)=\"items.submitAll()\" [bizdocTooltip]=\"'Submit' | translate\" [attr.aria-label]=\"'Submit' | translate\" class=\"show-xs\"><mat-icon class=\"mat-icon-rtl-mirror\">send</mat-icon></button>\n }\n @if (items.sharedActions.length === 1) {\n <button mat-button color=\"primary\" (click)=\"sendAll(items.sharedActions[0].name)\" [bizdocTooltip]=\"items.sharedActions[0].title\">@if (items.sharedActions[0].icon) {\n <mat-icon>{{items.sharedActions[0].icon}}</mat-icon>\n }{{'SendSelected' | translate : items.selection.selected.length}}</button>\n }\n @else if (items.sharedActions.length > 1) {\n <button mat-button color=\"primary\" [matMenuTriggerFor]=\"action\" [bizdocTooltip]=\"'Send' | translate\" [attr.aria-label]=\"'Send' | translate\">\n {{'SendSelected'| translate : items.selection.selected.length }}\n </button>\n }\n <mat-menu #action>\n @for (a of items.sharedActions | sort : 'group'; track a; let i = $index) {\n @if (i > 0 && items.sharedActions[i-1].group !== a.group) {\n <mat-divider>\n </mat-divider>\n }\n <button mat-menu-item (click)=\"sendAll(a.name)\" [attr.aria-label]=\"a.title\">\n {{ a.title }}\n </button>\n }\n </mat-menu>\n <span class=\"divider\"></span>\n <button mat-icon-button class=\"hide-xs\" (click)=\"items.paginator.previousPage()\" [bizdocTooltip]=\"'PrevPage' | translate\" [attr.aria-label]=\"'PrevPage' | translate\" [disabled]=\"!items.paginator.hasPreviousPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\n <button mat-icon-button class=\"hide-xs\" (click)=\"items.paginator.nextPage()\" [bizdocTooltip]=\"'NextPage' | translate\" [attr.aria-label]=\"'NextPage' | translate\" [disabled]=\"!items.paginator.hasNextPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_right</mat-icon></button>\n <button mat-icon-button (click)=\"drawer.toggle()\" [bizdocTooltip]=\"'Filter' | translate\" [attr.aria-label]=\"'Filter' | translate\"><mat-icon>filter_list</mat-icon></button>\n</mat-toolbar>\n<mat-sidenav-container class=\"page-container\" autosize>\n <mat-sidenav #drawer mode=\"over\" position=\"end\" [opened]=\"false\">\n @switch (mode) {\n @default {\n <bizdoc-browse-filter class=\"nav-filter\" [values]=filters (valuesChange)=\"filterChange($event)\" [folderId]=\"folderId\"></bizdoc-browse-filter>\n }\n }\n </mat-sidenav>\n <mat-sidenav-content>\n <bizdoc-browse-items [filters]=\"filters\" [folderId]=\"folderId\" [filterType]=\"filterType\" (open)=\"open($event)\" (view)=view($event) #items></bizdoc-browse-items>\n </mat-sidenav-content>\n</mat-sidenav-container>\n", styles: [".nav-filter{padding:8px;display:flex}\n"], dependencies: [{ kind: "component", type: i6.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i7.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i7.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i7.MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "component", type: i8.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i9.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i9.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i11.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: i11.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i11.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: i12.BrowseFilterComponent, selector: "bizdoc-browse-filter", inputs: ["values", "folderId", "exclude"], outputs: ["valuesChange"] }, { kind: "component", type: i13.BrowseItemsComponent, selector: "bizdoc-browse-items", inputs: ["folderId", "filterType", "filters"], outputs: ["open", "view"] }, { kind: "directive", type: i14.MatIconAnimate, selector: "[matAnimate]" }, { kind: "directive", type: i15.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i16.ArraySortPipe, name: "sort" }, { kind: "pipe", type: i17.TranslatePipe, name: "translate" }] }); }
|
88
88
|
}
|
89
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.
|
89
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: BrowseMobileComponent, decorators: [{
|
90
90
|
type: Component,
|
91
91
|
args: [{ template: "<mat-toolbar class=\"nav-toolbar\">\n <button mat-icon-button (click)=\"items.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\" [attr.aria-label]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\n @if (items.isAllDraft()) {\n <button mat-icon-button (click)=\"items.discardAll()\" [bizdocTooltip]=\"'DiscardSelected' | translate : items.selection.selected.length\" [attr.aria-label]=\"'DiscardSelected' | translate : items.selection.selected.length\"><mat-icon>delete_sweep</mat-icon></button>\n <button mat-button color=\"primary\" class=\"hide-xs\" (click)=\"items.submitAll()\">{{'SubmitSelected' | translate : items.selection.selected.length }}</button>\n <!-- <span class=\"mat-body show-xs\">{{items.selection.selected.length}}</span>-->\n <button mat-icon-button color=\"primary\" (click)=\"items.submitAll()\" [bizdocTooltip]=\"'Submit' | translate\" [attr.aria-label]=\"'Submit' | translate\" class=\"show-xs\"><mat-icon class=\"mat-icon-rtl-mirror\">send</mat-icon></button>\n }\n @if (items.sharedActions.length === 1) {\n <button mat-button color=\"primary\" (click)=\"sendAll(items.sharedActions[0].name)\" [bizdocTooltip]=\"items.sharedActions[0].title\">@if (items.sharedActions[0].icon) {\n <mat-icon>{{items.sharedActions[0].icon}}</mat-icon>\n }{{'SendSelected' | translate : items.selection.selected.length}}</button>\n }\n @else if (items.sharedActions.length > 1) {\n <button mat-button color=\"primary\" [matMenuTriggerFor]=\"action\" [bizdocTooltip]=\"'Send' | translate\" [attr.aria-label]=\"'Send' | translate\">\n {{'SendSelected'| translate : items.selection.selected.length }}\n </button>\n }\n <mat-menu #action>\n @for (a of items.sharedActions | sort : 'group'; track a; let i = $index) {\n @if (i > 0 && items.sharedActions[i-1].group !== a.group) {\n <mat-divider>\n </mat-divider>\n }\n <button mat-menu-item (click)=\"sendAll(a.name)\" [attr.aria-label]=\"a.title\">\n {{ a.title }}\n </button>\n }\n </mat-menu>\n <span class=\"divider\"></span>\n <button mat-icon-button class=\"hide-xs\" (click)=\"items.paginator.previousPage()\" [bizdocTooltip]=\"'PrevPage' | translate\" [attr.aria-label]=\"'PrevPage' | translate\" [disabled]=\"!items.paginator.hasPreviousPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\n <button mat-icon-button class=\"hide-xs\" (click)=\"items.paginator.nextPage()\" [bizdocTooltip]=\"'NextPage' | translate\" [attr.aria-label]=\"'NextPage' | translate\" [disabled]=\"!items.paginator.hasNextPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_right</mat-icon></button>\n <button mat-icon-button (click)=\"drawer.toggle()\" [bizdocTooltip]=\"'Filter' | translate\" [attr.aria-label]=\"'Filter' | translate\"><mat-icon>filter_list</mat-icon></button>\n</mat-toolbar>\n<mat-sidenav-container class=\"page-container\" autosize>\n <mat-sidenav #drawer mode=\"over\" position=\"end\" [opened]=\"false\">\n @switch (mode) {\n @default {\n <bizdoc-browse-filter class=\"nav-filter\" [values]=filters (valuesChange)=\"filterChange($event)\" [folderId]=\"folderId\"></bizdoc-browse-filter>\n }\n }\n </mat-sidenav>\n <mat-sidenav-content>\n <bizdoc-browse-items [filters]=\"filters\" [folderId]=\"folderId\" [filterType]=\"filterType\" (open)=\"open($event)\" (view)=view($event) #items></bizdoc-browse-items>\n </mat-sidenav-content>\n</mat-sidenav-container>\n", styles: [".nav-filter{padding:8px;display:flex}\n"] }]
|
92
92
|
}], ctorParameters: () => [{ type: i1.Router }, { type: i2.WindowTitleService }, { type: i3.SessionService }, { type: i1.ActivatedRoute }, { type: i4.Directionality }, { type: i5.MatDialog }], propDecorators: { items: [{
|
@@ -64,7 +64,7 @@ export class BrowsePaneComponent {
|
|
64
64
|
get folder() { return this._session.profile.folders.find(f => f.name === this.folderId); }
|
65
65
|
openFilter(evt) {
|
66
66
|
//this.filterElement.nativeElement.scrollIntoView({ behavior: 'smooth' });
|
67
|
-
this._popup.open(BrowseFilterComponent,
|
67
|
+
this._popup.open(BrowseFilterComponent, this.filterEl.nativeElement, { position: 'end' }).
|
68
68
|
opened().subscribe(e => {
|
69
69
|
e.folderId = this.folderId;
|
70
70
|
e.values = this.filters;
|
@@ -73,13 +73,21 @@ export class BrowsePaneComponent {
|
|
73
73
|
});
|
74
74
|
}
|
75
75
|
/**
|
76
|
-
*
|
76
|
+
* Alt-s, Alt-q
|
77
77
|
* @param event
|
78
78
|
*/
|
79
79
|
handleKeydown(event) {
|
80
|
-
if (event.
|
81
|
-
|
82
|
-
|
80
|
+
if (event.altKey) {
|
81
|
+
if (event.key === 's' || event.key === 'S') {
|
82
|
+
this.search.nativeElement.focus();
|
83
|
+
event.preventDefault();
|
84
|
+
event.stopImmediatePropagation();
|
85
|
+
}
|
86
|
+
else if (event.key === 'q' || event.key === 'Q') {
|
87
|
+
this.openFilter();
|
88
|
+
event.preventDefault();
|
89
|
+
event.stopPropagation();
|
90
|
+
}
|
83
91
|
}
|
84
92
|
}
|
85
93
|
openSearch() {
|
@@ -125,22 +133,23 @@ export class BrowsePaneComponent {
|
|
125
133
|
this._destroy.next();
|
126
134
|
this._destroy.complete();
|
127
135
|
}
|
128
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.
|
129
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.
|
136
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: BrowsePaneComponent, deps: [{ token: i1.PaneRef }, { token: i2.SessionService }, { token: i3.Popup }, { token: i4.PanesRouter }, { token: i5.Directionality }, { token: i6.TranslateService }, { token: i7.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
|
137
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: BrowsePaneComponent, selector: "bizdoc-browse.pane", host: { listeners: { "document:keydown": "handleKeydown($event)" } }, viewQueries: [{ propertyName: "items", first: true, predicate: BrowseItemsComponent, descendants: true, static: true }, { propertyName: "filterEl", first: true, predicate: ["filterEl"], descendants: true, read: ElementRef }, { propertyName: "search", first: true, predicate: ["searchEl"], descendants: true, read: ElementRef }], ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\n @if (!items.selection.isEmpty()) {\n <!--<button mat-icon-button (click)=\"items.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\" [attr.aria-label]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>-->\n @if (items.isAllDraft()) {\n <button mat-icon-button (click)=\"items.discardAll()\" [bizdocTooltip]=\"'DiscardSelected' | translate : items.selection.selected.length\" [attr.aria-label]=\"'DiscardSelected' | translate : items.selection.selected.length\"><mat-icon>delete_sweep</mat-icon></button>\n <button mat-button color=\"primary\" (click)=\"items.submitAll()\">{{'SubmitSelected' | translate : items.selection.selected.length }}</button>\n }\n @if (items.sharedActions.length === 1) {\n <button mat-button color=\"primary\" (click)=\"sendAll(items.sharedActions[0].name)\" [bizdocTooltip]=\"items.sharedActions[0].title\">\n @if (items.sharedActions[0].icon) {\n <mat-icon>{{items.sharedActions[0].icon}}</mat-icon>\n }{{'SendSelected' | translate : items.selection.selected.length}}\n </button>\n }\n @else if (items.sharedActions.length > 1) {\n <button mat-button color=\"primary\" [matMenuTriggerFor]=\"action\" [bizdocTooltip]=\"'Send' | translate\" [attr.aria-label]=\"'Send' | translate\">\n {{'SendSelected'| translate : items.selection.selected.length }}\n </button>\n <mat-menu #action>\n @for (a of items.sharedActions | sort : 'group'; track a; let i = $index) {\n @if (i > 0 && items.sharedActions[i-1].group !== a.group) {\n <mat-divider>\n </mat-divider>\n }\n <button mat-menu-item (click)=\"sendAll(a.name)\" [attr.aria-label]=\"a.title\">\n {{ a.title }}\n </button>\n }\n </mat-menu>\n }\n <!--<button mat-icon-button (click)=\"items.paginator.previousPage()\" [bizdocTooltip]=\"'PrevPage' | translate\" [attr.aria-label]=\"'PrevPage' | translate\" [disabled]=\"!items.paginator.hasPreviousPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\n <button mat-icon-button (click)=\"items.paginator.nextPage()\" [bizdocTooltip]=\"'NextPage' | translate\" [attr.aria-label]=\"'NextPage' | translate\" [disabled]=\"!items.paginator.hasNextPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_right</mat-icon></button>-->\n } @else {\n <!--<button mat-icon-button (click)=\"openSearch()\"\n [bizdocTooltip]=\"'Search'|translate\" class=\"tool\">\n <mat-icon>search</mat-icon>\n </button>\n [@search]=\"searching\"\n (@search.done)=\"searching && focus()\"-->\n <input matInput\n [formControl]=\"contains\" autocomplete=\"off\" placeholder=\"{{'SearchFolders' | translate}}\"\n class=\"mat-body search-box\"\n #searchEl\n (keydown.escape)=\"clearSearch($event)\">\n @if (contains.value) {\n <mat-icon (click)=\"clearSearch()\">close</mat-icon>\n }\n <span class=\"divider\"></span>\n <!--<button mat-icon-button (click)=\"items.paginator.previousPage()\" [bizdocTooltip]=\"'PrevPage' | translate\" [attr.aria-label]=\"'PrevPage' | translate\" [disabled]=\"!items.paginator.hasPreviousPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\n <button mat-icon-button (click)=\"items.paginator.nextPage()\" [bizdocTooltip]=\"'NextPage' | translate\" [attr.aria-label]=\"'NextPage' | translate\" [disabled]=\"!items.paginator.hasNextPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_right</mat-icon></button>-->\n <button mat-icon-button (click)=\"openFilter($event)\" [bizdocTooltip]=\"'Filter' | translate\" [attr.aria-label]=\"'Filter' | translate\" #filterEl><mat-icon>filter_list</mat-icon></button>\n }\n</mat-toolbar>\n<bizdoc-browse-items [filters]=\"filters\" [folderId]=\"folderId\" [filterType]=\"filterType\"\n (open)=\"open($event)\" (view)=\"view($event) \" #items></bizdoc-browse-items>\n", styles: [":host{min-width:540px;display:contents!important}\n"], dependencies: [{ kind: "directive", type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i9.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i10.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i11.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i11.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i12.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i13.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i14.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: i14.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i14.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: i15.BrowseItemsComponent, selector: "bizdoc-browse-items", inputs: ["folderId", "filterType", "filters"], outputs: ["open", "view"] }, { kind: "directive", type: i16.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i17.ArraySortPipe, name: "sort" }, { kind: "pipe", type: i18.TranslatePipe, name: "translate" }], animations: [searchAnimation] }); }
|
130
138
|
}
|
131
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.
|
139
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: BrowsePaneComponent, decorators: [{
|
132
140
|
type: Component,
|
133
|
-
args: [{ selector: 'bizdoc-browse.pane', animations: [searchAnimation], host:
|
134
|
-
class: 'pane'
|
135
|
-
}, template: "<mat-toolbar class=\"nav-toolbar\">\n @if (!items.selection.isEmpty()) {\n <!--<button mat-icon-button (click)=\"items.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\" [attr.aria-label]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>-->\n @if (items.isAllDraft()) {\n <button mat-icon-button (click)=\"items.discardAll()\" [bizdocTooltip]=\"'DiscardSelected' | translate : items.selection.selected.length\" [attr.aria-label]=\"'DiscardSelected' | translate : items.selection.selected.length\"><mat-icon>delete_sweep</mat-icon></button>\n <button mat-button color=\"primary\" (click)=\"items.submitAll()\">{{'SubmitSelected' | translate : items.selection.selected.length }}</button>\n }\n @if (items.sharedActions.length === 1) {\n <button mat-button color=\"primary\" (click)=\"sendAll(items.sharedActions[0].name)\" [bizdocTooltip]=\"items.sharedActions[0].title\">\n @if (items.sharedActions[0].icon) {\n <mat-icon>{{items.sharedActions[0].icon}}</mat-icon>\n }{{'SendSelected' | translate : items.selection.selected.length}}\n </button>\n }\n @else if (items.sharedActions.length > 1) {\n <button mat-button color=\"primary\" [matMenuTriggerFor]=\"action\" [bizdocTooltip]=\"'Send' | translate\" [attr.aria-label]=\"'Send' | translate\">\n {{'SendSelected'| translate : items.selection.selected.length }}\n </button>\n <mat-menu #action>\n @for (a of items.sharedActions | sort : 'group'; track a; let i = $index) {\n @if (i>0 && items.sharedActions[i-1].group !== a.group) {\n <mat-divider>\n </mat-divider>\n }\n <button mat-menu-item (click)=\"sendAll(a.name)\" [attr.aria-label]=\"a.title\">\n {{ a.title }}\n </button>\n }\n </mat-menu>\n }\n <!--<button mat-icon-button (click)=\"items.paginator.previousPage()\" [bizdocTooltip]=\"'PrevPage' | translate\" [attr.aria-label]=\"'PrevPage' | translate\" [disabled]=\"!items.paginator.hasPreviousPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\n <button mat-icon-button (click)=\"items.paginator.nextPage()\" [bizdocTooltip]=\"'NextPage' | translate\" [attr.aria-label]=\"'NextPage' | translate\" [disabled]=\"!items.paginator.hasNextPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_right</mat-icon></button>-->\n } @else {\n <!--<button mat-icon-button (click)=\"openSearch()\"\n [bizdocTooltip]=\"'Search'|translate\" class=\"tool\">\n <mat-icon>search</mat-icon>\n </button>\n [@search]=\"searching\"\n (@search.done)=\"searching && focus()\"-->\n <input matInput\n [formControl]=\"contains\" autocomplete=\"off\" placeholder=\"{{'Search' | translate}}\"\n class=\"mat-body search-box\"\n #searchInput\n (keydown.escape)=\"clearSearch($event)\">\n @if (contains.value) {\n <mat-icon (click)=\"clearSearch()\">close</mat-icon>\n }\n <span class=\"divider\"></span>\n <!--<button mat-icon-button (click)=\"items.paginator.previousPage()\" [bizdocTooltip]=\"'PrevPage' | translate\" [attr.aria-label]=\"'PrevPage' | translate\" [disabled]=\"!items.paginator.hasPreviousPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\n <button mat-icon-button (click)=\"items.paginator.nextPage()\" [bizdocTooltip]=\"'NextPage' | translate\" [attr.aria-label]=\"'NextPage' | translate\" [disabled]=\"!items.paginator.hasNextPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_right</mat-icon></button>-->\n <button mat-icon-button (click)=\"openFilter($event)\" [bizdocTooltip]=\"'Filter' | translate\" [attr.aria-label]=\"'Filter' | translate\"><mat-icon>filter_list</mat-icon></button>\n }\n</mat-toolbar>\n<bizdoc-browse-items [filters]=\"filters\" [folderId]=\"folderId\" [filterType]=\"filterType\"\n (open)=\"open($event)\" (view)=\"view($event) \" #items></bizdoc-browse-items>\n", styles: [":host{min-width:540px;display:contents!important}\n"] }]
|
141
|
+
args: [{ selector: 'bizdoc-browse.pane', animations: [searchAnimation], template: "<mat-toolbar class=\"nav-toolbar\">\n @if (!items.selection.isEmpty()) {\n <!--<button mat-icon-button (click)=\"items.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\" [attr.aria-label]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>-->\n @if (items.isAllDraft()) {\n <button mat-icon-button (click)=\"items.discardAll()\" [bizdocTooltip]=\"'DiscardSelected' | translate : items.selection.selected.length\" [attr.aria-label]=\"'DiscardSelected' | translate : items.selection.selected.length\"><mat-icon>delete_sweep</mat-icon></button>\n <button mat-button color=\"primary\" (click)=\"items.submitAll()\">{{'SubmitSelected' | translate : items.selection.selected.length }}</button>\n }\n @if (items.sharedActions.length === 1) {\n <button mat-button color=\"primary\" (click)=\"sendAll(items.sharedActions[0].name)\" [bizdocTooltip]=\"items.sharedActions[0].title\">\n @if (items.sharedActions[0].icon) {\n <mat-icon>{{items.sharedActions[0].icon}}</mat-icon>\n }{{'SendSelected' | translate : items.selection.selected.length}}\n </button>\n }\n @else if (items.sharedActions.length > 1) {\n <button mat-button color=\"primary\" [matMenuTriggerFor]=\"action\" [bizdocTooltip]=\"'Send' | translate\" [attr.aria-label]=\"'Send' | translate\">\n {{'SendSelected'| translate : items.selection.selected.length }}\n </button>\n <mat-menu #action>\n @for (a of items.sharedActions | sort : 'group'; track a; let i = $index) {\n @if (i > 0 && items.sharedActions[i-1].group !== a.group) {\n <mat-divider>\n </mat-divider>\n }\n <button mat-menu-item (click)=\"sendAll(a.name)\" [attr.aria-label]=\"a.title\">\n {{ a.title }}\n </button>\n }\n </mat-menu>\n }\n <!--<button mat-icon-button (click)=\"items.paginator.previousPage()\" [bizdocTooltip]=\"'PrevPage' | translate\" [attr.aria-label]=\"'PrevPage' | translate\" [disabled]=\"!items.paginator.hasPreviousPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\n <button mat-icon-button (click)=\"items.paginator.nextPage()\" [bizdocTooltip]=\"'NextPage' | translate\" [attr.aria-label]=\"'NextPage' | translate\" [disabled]=\"!items.paginator.hasNextPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_right</mat-icon></button>-->\n } @else {\n <!--<button mat-icon-button (click)=\"openSearch()\"\n [bizdocTooltip]=\"'Search'|translate\" class=\"tool\">\n <mat-icon>search</mat-icon>\n </button>\n [@search]=\"searching\"\n (@search.done)=\"searching && focus()\"-->\n <input matInput\n [formControl]=\"contains\" autocomplete=\"off\" placeholder=\"{{'SearchFolders' | translate}}\"\n class=\"mat-body search-box\"\n #searchEl\n (keydown.escape)=\"clearSearch($event)\">\n @if (contains.value) {\n <mat-icon (click)=\"clearSearch()\">close</mat-icon>\n }\n <span class=\"divider\"></span>\n <!--<button mat-icon-button (click)=\"items.paginator.previousPage()\" [bizdocTooltip]=\"'PrevPage' | translate\" [attr.aria-label]=\"'PrevPage' | translate\" [disabled]=\"!items.paginator.hasPreviousPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\n <button mat-icon-button (click)=\"items.paginator.nextPage()\" [bizdocTooltip]=\"'NextPage' | translate\" [attr.aria-label]=\"'NextPage' | translate\" [disabled]=\"!items.paginator.hasNextPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_right</mat-icon></button>-->\n <button mat-icon-button (click)=\"openFilter($event)\" [bizdocTooltip]=\"'Filter' | translate\" [attr.aria-label]=\"'Filter' | translate\" #filterEl><mat-icon>filter_list</mat-icon></button>\n }\n</mat-toolbar>\n<bizdoc-browse-items [filters]=\"filters\" [folderId]=\"folderId\" [filterType]=\"filterType\"\n (open)=\"open($event)\" (view)=\"view($event) \" #items></bizdoc-browse-items>\n", styles: [":host{min-width:540px;display:contents!important}\n"] }]
|
136
142
|
}], ctorParameters: () => [{ type: i1.PaneRef }, { type: i2.SessionService }, { type: i3.Popup }, { type: i4.PanesRouter }, { type: i5.Directionality }, { type: i6.TranslateService }, { type: i7.MatDialog }], propDecorators: { items: [{
|
137
143
|
type: ViewChild,
|
138
144
|
args: [BrowseItemsComponent, { static: true }]
|
145
|
+
}], filterEl: [{
|
146
|
+
type: ViewChild,
|
147
|
+
args: ['filterEl', { read: ElementRef }]
|
139
148
|
}], search: [{
|
140
149
|
type: ViewChild,
|
141
|
-
args: ['
|
150
|
+
args: ['searchEl', { read: ElementRef }]
|
142
151
|
}], handleKeydown: [{
|
143
152
|
type: HostListener,
|
144
153
|
args: ['document:keydown', ['$event']]
|
145
154
|
}] } });
|
146
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvd3NlLnBhbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9icm93c2UvYnJvd3NlLnBhbmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9icm93c2UvYnJvd3NlLnBhbmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHN0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUlqRSxPQUFPLEVBQUUsWUFBWSxFQUFvQixNQUFNLGlDQUFpQyxDQUFDO0FBQ2pGLE9BQU8sRUFBb0IscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRixPQUFPLEVBQUUsZUFBZSxFQUFzQixlQUFlLEVBQUUsZUFBZSxFQUFXLE1BQU0sd0JBQXdCLENBQUM7QUFDeEgsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFaEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVlyRCxzQkFBc0I7QUFDdEIsTUFBTSxPQUFPLG1CQUFtQjtJQVU5QixrQkFBa0I7SUFDbEIsWUFDVSxLQUFtQyxFQUNuQyxRQUF3QixFQUN4QixNQUFhLEVBQ2IsT0FBb0IsRUFDcEIsZUFBK0IsRUFDL0IsVUFBNEIsRUFDNUIsT0FB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QUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDOzhHQTlHVSxtQkFBbUI7a0dBQW5CLG1CQUFtQiwrTEFDbkIsb0JBQW9CLGlJQUNHLFVBQVUsNkJDL0I5Qyx1MEhBdURBLGsxRkRoQ2MsQ0FBQyxlQUFlLENBQUM7OzJGQU1sQixtQkFBbUI7a0JBVi9CLFNBQVM7K0JBQ0Usb0JBQW9CLGNBR2xCLENBQUMsZUFBZSxDQUFDLFFBQ3ZCO3dCQUNKLEtBQUssRUFBRSxNQUFNO3FCQUNkOzJPQUlrRCxLQUFLO3NCQUF2RCxTQUFTO3VCQUFDLG9CQUFvQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDRCxNQUFNO3NCQUFyRCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBeUQ5QyxhQUFhO3NCQURaLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IERpcmVjdGlvbmFsaXR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEZvbGRlciwgUmVjaXBpZW50TW9kZWwgfSBmcm9tICcuLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IFBhbmVzUm91dGVyIH0gZnJvbSAnLi4vY29yZS9zbG90cy9yb3V0ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEZpbHRlclR5cGUgfSBmcm9tICcuLi9jb3JlL21haWxib3guc2VydmljZSc7XHJcbmltcG9ydCB7IEFjdGlvbkRpYWxvZywgQWN0aW9uRGlhbG9nRGF0YSB9IGZyb20gJy4uL2NvbXBvc2UvYWN0aW9uL2FjdGlvbi5kaWFsb2cnO1xyXG5pbXBvcnQgeyBCcm93c2VGaWx0ZXJBcmdzLCBCcm93c2VGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL2ZpbHRlci9maWx0ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTmF2aWdhdGlvbkZvY3VzLCBOYXZpZ2F0aW9uUGFuZUJhc2UsIE5hdmlnYXRpb25TdGFydCwgUGFyYW1OYXZpZ2F0aW9uLCBQYW5lUmVmIH0gZnJvbSAnLi4vY29yZS9zbG90cy9wYW5lLXJlZic7XHJcbmltcG9ydCB7IEJyb3dzZUl0ZW1zQ29tcG9uZW50IH0gZnJvbSAnLi9icm93c2UtaXRlbXMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUG9wdXAgfSBmcm9tICcuLi9jb3JlL3BvcHVwL3BvcHVwLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb21wb3NlUGFuZUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvc2UvY29tcG9zZS5wYW5lLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBzZWFyY2hBbmltYXRpb24gfSBmcm9tICcuLi9jb3JlL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS90cmFuc2xhdGUuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1icm93c2UucGFuZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Jyb3dzZS5wYW5lLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9icm93c2UucGFuZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGFuaW1hdGlvbnM6IFtzZWFyY2hBbmltYXRpb25dLFxyXG4gIGhvc3Q6IHtcclxuICAgIGNsYXNzOiAncGFuZSdcclxuICB9XHJcbn0pXHJcbi8qKiBicm93c2UgY29tcG9uZW50Ki9cclxuZXhwb3J0IGNsYXNzIEJyb3dzZVBhbmVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBWaWV3Q2hpbGQoQnJvd3NlSXRlbXNDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pIGl0ZW1zOiBCcm93c2VJdGVtc0NvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdzZWFyY2hJbnB1dCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBzZWFyY2g6IEVsZW1lbnRSZWY7XHJcbiAgZm9sZGVySWQ6IHN0cmluZztcclxuICBmaWx0ZXJUeXBlOiBGaWx0ZXJUeXBlO1xyXG4gIGZpbHRlcnM6IEJyb3dzZUZpbHRlckFyZ3M7XHJcbiAgc2VhcmNoaW5nID0gZmFsc2U7XHJcbiAgcGFnZVNpemU6IG51bWJlcjtcclxuICByZWFkb25seSBjb250YWlucyA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIC8qKiBicm93c2UgY3RvciAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfcGFuZTogUGFuZVJlZjxCcm93c2VQYW5lQ29tcG9uZW50PixcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcG9wdXA6IFBvcHVwLFxyXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBQYW5lc1JvdXRlcixcclxuICAgIHByaXZhdGUgX2RpcmVjdGlvbmFsaXR5OiBEaXJlY3Rpb25hbGl0eSxcclxuICAgIHByaXZhdGUgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX2RpYWxvZzogTWF0RGlhbG9nKSB7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fcGFuZS5wYXJhbXNDaGFuZ2UoKS5zdWJzY3JpYmUocCA9PiB7XHJcbiAgICAgIHRoaXMuZm9sZGVySWQgPSBwWydpZCddO1xyXG4gICAgICBpZiAodGhpcy5mb2xkZXJJZCkgdGhpcy5fcGFuZS50aXRsZSA9IHRoaXMuZm9sZGVyLnRpdGxlO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9wYW5lLnF1ZXJ5UGFyYW1zQ2hhbmdlKCkuc3Vic2NyaWJlKHAgPT4ge1xyXG4gICAgICB0aGlzLmZpbHRlclR5cGUgPSBwWyd0eXBlJ107XHJcbiAgICAgIGlmICh0aGlzLmZpbHRlclR5cGUgPT09ICdmbGFnZ2VkJylcclxuICAgICAgICB0aGlzLl9wYW5lLnRpdGxlID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnRmxhZ2dlZCcpO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgaWYgKHBbJ3RhZyddKVxyXG4gICAgICAgICAgdGhpcy5fcGFuZS50aXRsZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1RhZ3MnKTtcclxuICAgICAgdGhpcy5maWx0ZXJzID0gcDtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fcm91dGVyLmV2ZW50cy5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSxcclxuICAgICAgZmlsdGVyKGUgPT4gKGUgaW5zdGFuY2VvZiBQYXJhbU5hdmlnYXRpb24gfHwgZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCB8fCBlIGluc3RhbmNlb2YgTmF2aWdhdGlvbkZvY3VzKVxyXG4gICAgICAgICYmIGUucGFuZS5fcG9ydGFsLmNvbXBvbmVudCA9PT0gQ29tcG9zZVBhbmVDb21wb25lbnQpKS5cclxuICAgICAgc3Vic2NyaWJlKChlOiBOYXZpZ2F0aW9uUGFuZUJhc2U8Q29tcG9zZVBhbmVDb21wb25lbnQ+KSA9PlxyXG4gICAgICAgIHRoaXMuaXRlbXMuc2VsZWN0KGUucGFuZS5kYXRhLml0ZW0uaWQpXHJcbiAgICAgICk7XHJcbiAgICB0aGlzLmNvbnRhaW5zLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSwgZGVib3VuY2VUaW1lKDIwMCkpLnN1YnNjcmliZSh2ID0+IHRoaXMuZmlsdGVycyA9IHsgLi4udGhpcy5maWx0ZXJzLCBjb250YWluczogdiB9KTtcclxuICB9XHJcbiAgZ2V0IGZvbGRlcigpOiBGb2xkZXIgeyByZXR1cm4gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmZvbGRlcnMuZmluZChmID0+IGYubmFtZSA9PT0gdGhpcy5mb2xkZXJJZCk7IH1cclxuXHJcbiAgb3BlbkZpbHRlcihldnQ6IEV2ZW50KSB7XHJcbiAgICAvL3RoaXMuZmlsdGVyRWxlbWVudC5uYXRpdmVFbGVtZW50LnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xyXG4gICAgdGhpcy5fcG9wdXAub3BlbihCcm93c2VGaWx0ZXJDb21wb25lbnQsIGV2dC50YXJnZXQgYXMgSFRNTEVsZW1lbnQsIHsgcG9zaXRpb246ICdlbmQnIH0pLlxyXG4gICAgICBvcGVuZWQoKS5zdWJzY3JpYmUoZSA9PiB7XHJcbiAgICAgICAgZS5mb2xkZXJJZCA9IHRoaXMuZm9sZGVySWQ7XHJcbiAgICAgICAgZS52YWx1ZXMgPSB0aGlzLmZpbHRlcnM7XHJcbiAgICAgICAgZS5leGNsdWRlID0gWydjb250YWlucyddO1xyXG4gICAgICAgIGUudmFsdWVzQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUodiA9PiB0aGlzLmZpbHRlcnMgPSB2KTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gKiBDdHJsLWZcclxuICogQHBhcmFtIGV2ZW50XHJcbiAqL1xyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nLCBbJyRldmVudCddKVxyXG4gIGhhbmRsZUtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGlmIChldmVudC5jdHJsS2V5ICYmIChldmVudC5rZXkgPT09ICdmJyB8fCBldmVudC5rZXkgPT09ICdGJykpIHtcclxuICAgICAgdGhpcy5zZWFyY2gubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBvcGVuU2VhcmNoKCkge1xyXG4gICAgdGhpcy5zZWFyY2hpbmcgPSAhdGhpcy5zZWFyY2hpbmc7XHJcbiAgICB0aGlzLnNlYXJjaGluZyAmJlxyXG4gICAgICB0aGlzLnNlYXJjaC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgfVxyXG4gIGNsZWFyU2VhcmNoKGV2dD86IEV2ZW50KSB7XHJcbiAgICB0aGlzLmNvbnRhaW5zLnNldFZhbHVlKG51bGwpO1xyXG4gICAgaWYgKGV2dCkge1xyXG4gICAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgIHRoaXMuc2VhcmNoaW5nID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9wZW4oaXRlbTogUmVjaXBpZW50TW9kZWw8YW55Pikge1xyXG4gICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFsnbWFpbGJveC9pJywgaXRlbS5pZC5lbmNvZGVJZCgpXSxcclxuICAgICAge1xyXG4gICAgICAgIHN0YXRlOiB7XHJcbiAgICAgICAgICBpdGVtOiB7IC4uLml0ZW0gfVxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICB2aWV3KGl0ZW06IFJlY2lwaWVudE1vZGVsPGFueT4pIHtcclxuICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJ21haWxib3gvaScsIGl0ZW0uaWQuZW5jb2RlSWQoKSwgJ3ZpZXdzJ10sXHJcbiAgICAgIHtcclxuICAgICAgICBzdGF0ZToge1xyXG4gICAgICAgICAgaXRlbTogeyAuLi5pdGVtIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgfVxyXG4gIHNlbmRBbGwoYWN0aW9uOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHsgc2VsZWN0ZWQgfSA9IHRoaXMuaXRlbXMuc2VsZWN0aW9uO1xyXG4gICAgY29uc3QgZGF0YTogQWN0aW9uRGlhbG9nRGF0YSA9IHtcclxuICAgICAgYWN0aW9uLFxyXG4gICAgICBpdGVtczogc2VsZWN0ZWQgYXMgUmVjaXBpZW50TW9kZWxbXVxyXG4gICAgfTtcclxuICAgIHRoaXMuX2RpYWxvZy5vcGVuKEFjdGlvbkRpYWxvZywge1xyXG4gICAgICBkYXRhLFxyXG4gICAgICBkaXJlY3Rpb246IHRoaXMuX2RpcmVjdGlvbmFsaXR5LnZhbHVlLFxyXG4gICAgICByZXN0b3JlRm9jdXM6IGZhbHNlXHJcbiAgICB9KS5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShhcmdzID0+XHJcbiAgICAgIGFyZ3MgJiZcclxuICAgICAgdGhpcy5pdGVtcy5zZW5kQWxsKGFjdGlvbiwgYXJncykpO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Rlc3Ryb3kubmV4dCgpO1xyXG4gICAgdGhpcy5fZGVzdHJveS5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8bWF0LXRvb2xiYXIgY2xhc3M9XCJuYXYtdG9vbGJhclwiPlxuICBAaWYgKCFpdGVtcy5zZWxlY3Rpb24uaXNFbXB0eSgpKSB7XG4gIDwhLS08YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiaXRlbXMucmVmcmVzaCgpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1JlZnJlc2gnIHwgdHJhbnNsYXRlXCIgW2F0dHIuYXJpYS1sYWJlbF09XCInUmVmcmVzaCcgfCB0cmFuc2xhdGVcIj48bWF0LWljb24gbWF0QW5pbWF0ZT1cInJvdGF0ZVwiPmF1dG9yZW5ldzwvbWF0LWljb24+PC9idXR0b24+LS0+XG4gIEBpZiAoaXRlbXMuaXNBbGxEcmFmdCgpKSB7XG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJpdGVtcy5kaXNjYXJkQWxsKClcIiBbYml6ZG9jVG9vbHRpcF09XCInRGlzY2FyZFNlbGVjdGVkJyB8IHRyYW5zbGF0ZSA6IGl0ZW1zLnNlbGVjdGlvbi5zZWxlY3RlZC5sZW5ndGhcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidEaXNjYXJkU2VsZWN0ZWQnIHwgdHJhbnNsYXRlIDogaXRlbXMuc2VsZWN0aW9uLnNlbGVjdGVkLmxlbmd0aFwiPjxtYXQtaWNvbj5kZWxldGVfc3dlZXA8L21hdC1pY29uPjwvYnV0dG9uPlxuICA8YnV0dG9uIG1hdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cIml0ZW1zLnN1Ym1pdEFsbCgpXCI+e3snU3VibWl0U2VsZWN0ZWQnIHwgdHJhbnNsYXRlIDogaXRlbXMuc2VsZWN0aW9uLnNlbGVjdGVkLmxlbmd0aCB9fTwvYnV0dG9uPlxuICB9XG4gIEBpZiAoaXRlbXMuc2hhcmVkQWN0aW9ucy5sZW5ndGggPT09IDEpIHtcbiAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJzZW5kQWxsKGl0ZW1zLnNoYXJlZEFjdGlvbnNbMF0ubmFtZSlcIiBbYml6ZG9jVG9vbHRpcF09XCJpdGVtcy5zaGFyZWRBY3Rpb25zWzBdLnRpdGxlXCI+XG4gICAgQGlmIChpdGVtcy5zaGFyZWRBY3Rpb25zWzBdLmljb24pIHtcbiAgICA8bWF0LWljb24+e3tpdGVtcy5zaGFyZWRBY3Rpb25zWzBdLmljb259fTwvbWF0LWljb24+XG4gICAgfXt7J1NlbmRTZWxlY3RlZCcgfCB0cmFuc2xhdGUgOiBpdGVtcy5zZWxlY3Rpb24uc2VsZWN0ZWQubGVuZ3RofX1cbiAgPC9idXR0b24+XG4gIH1cbiAgQGVsc2UgaWYgKGl0ZW1zLnNoYXJlZEFjdGlvbnMubGVuZ3RoID4gMSkge1xuICA8YnV0dG9uIG1hdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW21hdE1lbnVUcmlnZ2VyRm9yXT1cImFjdGlvblwiIFtiaXpkb2NUb29sdGlwXT1cIidTZW5kJyB8IHRyYW5zbGF0ZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1NlbmQnIHwgdHJhbnNsYXRlXCI+XG4gICAge3snU2VuZFNlbGVjdGVkJ3wgdHJhbnNsYXRlIDogaXRlbXMuc2VsZWN0aW9uLnNlbGVjdGVkLmxlbmd0aCB9fVxuICA8L2J1dHRvbj5cbiAgPG1hdC1tZW51ICNhY3Rpb24+XG4gICAgQGZvciAoYSBvZiBpdGVtcy5zaGFyZWRBY3Rpb25zIHwgc29ydCA6ICdncm91cCc7IHRyYWNrIGE7IGxldCBpID0gJGluZGV4KSB7XG4gICAgQGlmIChpPjAgJiYgaXRlbXMuc2hhcmVkQWN0aW9uc1tpLTFdLmdyb3VwICE9PSBhLmdyb3VwKSB7XG4gICAgPG1hdC1kaXZpZGVyPlxuICAgIDwvbWF0LWRpdmlkZXI+XG4gICAgfVxuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwic2VuZEFsbChhLm5hbWUpXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJhLnRpdGxlXCI+XG4gICAgICB7eyBhLnRpdGxlIH19XG4gICAgPC9idXR0b24+XG4gICAgfVxuICA8L21hdC1tZW51PlxuICB9XG4gIDwhLS08YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiaXRlbXMucGFnaW5hdG9yLnByZXZpb3VzUGFnZSgpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1ByZXZQYWdlJyB8IHRyYW5zbGF0ZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1ByZXZQYWdlJyB8IHRyYW5zbGF0ZVwiIFtkaXNhYmxlZF09XCIhaXRlbXMucGFnaW5hdG9yLmhhc1ByZXZpb3VzUGFnZSgpXCI+PG1hdC1pY29uIGNsYXNzPVwibWF0LWljb24tcnRsLW1pcnJvclwiPmtleWJvYXJkX2Fycm93X2xlZnQ8L21hdC1pY29uPjwvYnV0dG9uPlxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiaXRlbXMucGFnaW5hdG9yLm5leHRQYWdlKClcIiBbYml6ZG9jVG9vbHRpcF09XCInTmV4dFBhZ2UnIHwgdHJhbnNsYXRlXCIgW2F0dHIuYXJpYS1sYWJlbF09XCInTmV4dFBhZ2UnIHwgdHJhbnNsYXRlXCIgW2Rpc2FibGVkXT1cIiFpdGVtcy5wYWdpbmF0b3IuaGFzTmV4dFBhZ2UoKVwiPjxtYXQtaWNvbiBjbGFzcz1cIm1hdC1pY29uLXJ0bC1taXJyb3JcIj5rZXlib2FyZF9hcnJvd19yaWdodDwvbWF0LWljb24+PC9idXR0b24+LS0+XG4gIH0gQGVsc2Uge1xuICA8IS0tPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIm9wZW5TZWFyY2goKVwiXG4gICAgW2JpemRvY1Rvb2x0aXBdPVwiJ1NlYXJjaCd8dHJhbnNsYXRlXCIgY2xhc3M9XCJ0b29sXCI+XG4gICAgPG1hdC1pY29uPnNlYXJjaDwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuICBbQHNlYXJjaF09XCJzZWFyY2hpbmdcIlxuICAoQHNlYXJjaC5kb25lKT1cInNlYXJjaGluZyAmJiBmb2N1cygpXCItLT5cbiAgPGlucHV0IG1hdElucHV0XG4gICAgICAgICBbZm9ybUNvbnRyb2xdPVwiY29udGFpbnNcIiBhdXRvY29tcGxldGU9XCJvZmZcIiBwbGFjZWhvbGRlcj1cInt7J1NlYXJjaCcgfCB0cmFuc2xhdGV9fVwiXG4gICAgICAgICBjbGFzcz1cIm1hdC1ib2R5IHNlYXJjaC1ib3hcIlxuICAgICAgICAgI3NlYXJjaElucHV0XG4gICAgICAgICAoa2V5ZG93bi5lc2NhcGUpPVwiY2xlYXJTZWFyY2goJGV2ZW50KVwiPlxuICBAaWYgKGNvbnRhaW5zLnZhbHVlKSB7XG4gIDxtYXQtaWNvbiAoY2xpY2spPVwiY2xlYXJTZWFyY2goKVwiPmNsb3NlPC9tYXQtaWNvbj5cbiAgfVxuICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XG4gIDwhLS08YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiaXRlbXMucGFnaW5hdG9yLnByZXZpb3VzUGFnZSgpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1ByZXZQYWdlJyB8IHRyYW5zbGF0ZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1ByZXZQYWdlJyB8IHRyYW5zbGF0ZVwiIFtkaXNhYmxlZF09XCIhaXRlbXMucGFnaW5hdG9yLmhhc1ByZXZpb3VzUGFnZSgpXCI+PG1hdC1pY29uIGNsYXNzPVwibWF0LWljb24tcnRsLW1pcnJvclwiPmtleWJvYXJkX2Fycm93X2xlZnQ8L21hdC1pY29uPjwvYnV0dG9uPlxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiaXRlbXMucGFnaW5hdG9yLm5leHRQYWdlKClcIiBbYml6ZG9jVG9vbHRpcF09XCInTmV4dFBhZ2UnIHwgdHJhbnNsYXRlXCIgW2F0dHIuYXJpYS1sYWJlbF09XCInTmV4dFBhZ2UnIHwgdHJhbnNsYXRlXCIgW2Rpc2FibGVkXT1cIiFpdGVtcy5wYWdpbmF0b3IuaGFzTmV4dFBhZ2UoKVwiPjxtYXQtaWNvbiBjbGFzcz1cIm1hdC1pY29uLXJ0bC1taXJyb3JcIj5rZXlib2FyZF9hcnJvd19yaWdodDwvbWF0LWljb24+PC9idXR0b24+LS0+XG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJvcGVuRmlsdGVyKCRldmVudClcIiBbYml6ZG9jVG9vbHRpcF09XCInRmlsdGVyJyB8IHRyYW5zbGF0ZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0ZpbHRlcicgfCB0cmFuc2xhdGVcIj48bWF0LWljb24+ZmlsdGVyX2xpc3Q8L21hdC1pY29uPjwvYnV0dG9uPlxuICB9XG48L21hdC10b29sYmFyPlxuPGJpemRvYy1icm93c2UtaXRlbXMgW2ZpbHRlcnNdPVwiZmlsdGVyc1wiIFtmb2xkZXJJZF09XCJmb2xkZXJJZFwiIFtmaWx0ZXJUeXBlXT1cImZpbHRlclR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgKG9wZW4pPVwib3BlbigkZXZlbnQpXCIgKHZpZXcpPVwidmlldygkZXZlbnQpIFwiICNpdGVtcz48L2JpemRvYy1icm93c2UtaXRlbXM+XG4iXX0=
|
155
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvd3NlLnBhbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9icm93c2UvYnJvd3NlLnBhbmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9icm93c2UvYnJvd3NlLnBhbmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHN0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUlqRSxPQUFPLEVBQUUsWUFBWSxFQUFvQixNQUFNLGlDQUFpQyxDQUFDO0FBQ2pGLE9BQU8sRUFBb0IscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRixPQUFPLEVBQUUsZUFBZSxFQUFzQixlQUFlLEVBQUUsZUFBZSxFQUFXLE1BQU0sd0JBQXdCLENBQUM7QUFDeEgsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFaEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVNyRCxzQkFBc0I7QUFDdEIsTUFBTSxPQUFPLG1CQUFtQjtJQVc5QixrQkFBa0I7SUFDbEIsWUFDVSxLQUFtQyxFQUNuQyxRQUF3QixFQUN4QixNQUFhLEVBQ2IsT0FBb0IsRUFDcEIsZUFBK0IsRUFDL0IsVUFBNEIsRUFDNUIsT0FB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QUNKLFNBQVMsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUs7WUFDckMsWUFBWSxFQUFFLEtBQUs7U0FDcEIsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUNoQyxJQUFJO1lBQ0osSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs4R0F2SFUsbUJBQW1CO2tHQUFuQixtQkFBbUIsdUtBQ25CLG9CQUFvQixnSUFDQSxVQUFVLDZGQUNWLFVBQVUsNkJDN0IzQyx1MUhBdURBLGsxRkRoQ2MsQ0FBQyxlQUFlLENBQUM7OzJGQUdsQixtQkFBbUI7a0JBUC9CLFNBQVM7K0JBQ0Usb0JBQW9CLGNBR2xCLENBQUMsZUFBZSxDQUFDOzJPQUlzQixLQUFLO3NCQUF2RCxTQUFTO3VCQUFDLG9CQUFvQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDSixRQUFRO3NCQUFwRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBQ0UsTUFBTTtzQkFBbEQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQXlEM0MsYUFBYTtzQkFEWixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBEaXJlY3Rpb25hbGl0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBGb2xkZXIsIFJlY2lwaWVudE1vZGVsIH0gZnJvbSAnLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBQYW5lc1JvdXRlciB9IGZyb20gJy4uL2NvcmUvc2xvdHMvcm91dGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGaWx0ZXJUeXBlIH0gZnJvbSAnLi4vY29yZS9tYWlsYm94LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBY3Rpb25EaWFsb2csIEFjdGlvbkRpYWxvZ0RhdGEgfSBmcm9tICcuLi9jb21wb3NlL2FjdGlvbi9hY3Rpb24uZGlhbG9nJztcclxuaW1wb3J0IHsgQnJvd3NlRmlsdGVyQXJncywgQnJvd3NlRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE5hdmlnYXRpb25Gb2N1cywgTmF2aWdhdGlvblBhbmVCYXNlLCBOYXZpZ2F0aW9uU3RhcnQsIFBhcmFtTmF2aWdhdGlvbiwgUGFuZVJlZiB9IGZyb20gJy4uL2NvcmUvc2xvdHMvcGFuZS1yZWYnO1xyXG5pbXBvcnQgeyBCcm93c2VJdGVtc0NvbXBvbmVudCB9IGZyb20gJy4vYnJvd3NlLWl0ZW1zLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFBvcHVwIH0gZnJvbSAnLi4vY29yZS9wb3B1cC9wb3B1cC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tcG9zZVBhbmVDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb3NlL2NvbXBvc2UucGFuZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgc2VhcmNoQW5pbWF0aW9uIH0gZnJvbSAnLi4vY29yZS9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uL2NvcmUvdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtYnJvd3NlLnBhbmUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9icm93c2UucGFuZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYnJvd3NlLnBhbmUuY29tcG9uZW50LnNjc3MnXSxcclxuICBhbmltYXRpb25zOiBbc2VhcmNoQW5pbWF0aW9uXVxyXG59KVxyXG4vKiogYnJvd3NlIGNvbXBvbmVudCovXHJcbmV4cG9ydCBjbGFzcyBCcm93c2VQYW5lQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKEJyb3dzZUl0ZW1zQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSBpdGVtczogQnJvd3NlSXRlbXNDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnZmlsdGVyRWwnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgZmlsdGVyRWw6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaEVsJywgeyByZWFkOiBFbGVtZW50UmVmIH0pIHNlYXJjaDogRWxlbWVudFJlZjtcclxuICBmb2xkZXJJZDogc3RyaW5nO1xyXG4gIGZpbHRlclR5cGU6IEZpbHRlclR5cGU7XHJcbiAgZmlsdGVyczogQnJvd3NlRmlsdGVyQXJncztcclxuICBzZWFyY2hpbmcgPSBmYWxzZTtcclxuICBwYWdlU2l6ZTogbnVtYmVyO1xyXG4gIHJlYWRvbmx5IGNvbnRhaW5zID0gbmV3IEZvcm1Db250cm9sKCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgLyoqIGJyb3dzZSBjdG9yICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9wYW5lOiBQYW5lUmVmPEJyb3dzZVBhbmVDb21wb25lbnQ+LFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9wb3B1cDogUG9wdXAsXHJcbiAgICBwcml2YXRlIF9yb3V0ZXI6IFBhbmVzUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBfZGlyZWN0aW9uYWxpdHk6IERpcmVjdGlvbmFsaXR5LFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZGlhbG9nOiBNYXREaWFsb2cpIHtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9wYW5lLnBhcmFtc0NoYW5nZSgpLnN1YnNjcmliZShwID0+IHtcclxuICAgICAgdGhpcy5mb2xkZXJJZCA9IHBbJ2lkJ107XHJcbiAgICAgIGlmICh0aGlzLmZvbGRlcklkKSB0aGlzLl9wYW5lLnRpdGxlID0gdGhpcy5mb2xkZXIudGl0bGU7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX3BhbmUucXVlcnlQYXJhbXNDaGFuZ2UoKS5zdWJzY3JpYmUocCA9PiB7XHJcbiAgICAgIHRoaXMuZmlsdGVyVHlwZSA9IHBbJ3R5cGUnXTtcclxuICAgICAgaWYgKHRoaXMuZmlsdGVyVHlwZSA9PT0gJ2ZsYWdnZWQnKVxyXG4gICAgICAgIHRoaXMuX3BhbmUudGl0bGUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdGbGFnZ2VkJyk7XHJcbiAgICAgIGVsc2VcclxuICAgICAgICBpZiAocFsndGFnJ10pXHJcbiAgICAgICAgICB0aGlzLl9wYW5lLnRpdGxlID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnVGFncycpO1xyXG4gICAgICB0aGlzLmZpbHRlcnMgPSBwO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9yb3V0ZXIuZXZlbnRzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpLFxyXG4gICAgICBmaWx0ZXIoZSA9PiAoZSBpbnN0YW5jZW9mIFBhcmFtTmF2aWdhdGlvbiB8fCBlIGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0IHx8IGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRm9jdXMpXHJcbiAgICAgICAgJiYgZS5wYW5lLl9wb3J0YWwuY29tcG9uZW50ID09PSBDb21wb3NlUGFuZUNvbXBvbmVudCkpLlxyXG4gICAgICBzdWJzY3JpYmUoKGU6IE5hdmlnYXRpb25QYW5lQmFzZTxDb21wb3NlUGFuZUNvbXBvbmVudD4pID0+XHJcbiAgICAgICAgdGhpcy5pdGVtcy5zZWxlY3QoZS5wYW5lLmRhdGEuaXRlbS5pZClcclxuICAgICAgKTtcclxuICAgIHRoaXMuY29udGFpbnMudmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpLCBkZWJvdW5jZVRpbWUoMjAwKSkuc3Vic2NyaWJlKHYgPT4gdGhpcy5maWx0ZXJzID0geyAuLi50aGlzLmZpbHRlcnMsIGNvbnRhaW5zOiB2IH0pO1xyXG4gIH1cclxuICBnZXQgZm9sZGVyKCk6IEZvbGRlciB7IHJldHVybiB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuZm9sZGVycy5maW5kKGYgPT4gZi5uYW1lID09PSB0aGlzLmZvbGRlcklkKTsgfVxyXG5cclxuICBvcGVuRmlsdGVyKGV2dD86IEV2ZW50KSB7XHJcbiAgICAvL3RoaXMuZmlsdGVyRWxlbWVudC5uYXRpdmVFbGVtZW50LnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xyXG4gICAgdGhpcy5fcG9wdXAub3BlbihCcm93c2VGaWx0ZXJDb21wb25lbnQsIHRoaXMuZmlsdGVyRWwubmF0aXZlRWxlbWVudCwgeyBwb3NpdGlvbjogJ2VuZCcgfSkuXHJcbiAgICAgIG9wZW5lZCgpLnN1YnNjcmliZShlID0+IHtcclxuICAgICAgICBlLmZvbGRlcklkID0gdGhpcy5mb2xkZXJJZDtcclxuICAgICAgICBlLnZhbHVlcyA9IHRoaXMuZmlsdGVycztcclxuICAgICAgICBlLmV4Y2x1ZGUgPSBbJ2NvbnRhaW5zJ107XHJcbiAgICAgICAgZS52YWx1ZXNDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSh2ID0+IHRoaXMuZmlsdGVycyA9IHYpO1xyXG4gICAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAqIEFsdC1zLCBBbHQtcVxyXG4gKiBAcGFyYW0gZXZlbnRcclxuICovXHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsnJGV2ZW50J10pXHJcbiAgaGFuZGxlS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgaWYgKGV2ZW50LmFsdEtleSkge1xyXG4gICAgICBpZiAoZXZlbnQua2V5ID09PSAncycgfHwgZXZlbnQua2V5ID09PSAnUycpIHtcclxuICAgICAgICB0aGlzLnNlYXJjaC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChldmVudC5rZXkgPT09ICdxJyB8fCBldmVudC5rZXkgPT09ICdRJykge1xyXG4gICAgICAgIHRoaXMub3BlbkZpbHRlcigpO1xyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgb3BlblNlYXJjaCgpIHtcclxuICAgIHRoaXMuc2VhcmNoaW5nID0gIXRoaXMuc2VhcmNoaW5nO1xyXG4gICAgdGhpcy5zZWFyY2hpbmcgJiZcclxuICAgICAgdGhpcy5zZWFyY2gubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gIH1cclxuICBjbGVhclNlYXJjaChldnQ/OiBFdmVudCkge1xyXG4gICAgdGhpcy5jb250YWlucy5zZXRWYWx1ZShudWxsKTtcclxuICAgIGlmIChldnQpIHtcclxuICAgICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICB0aGlzLnNlYXJjaGluZyA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuICBvcGVuKGl0ZW06IFJlY2lwaWVudE1vZGVsPGFueT4pIHtcclxuICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJ21haWxib3gvaScsIGl0ZW0uaWQuZW5jb2RlSWQoKV0sXHJcbiAgICAgIHtcclxuICAgICAgICBzdGF0ZToge1xyXG4gICAgICAgICAgaXRlbTogeyAuLi5pdGVtIH1cclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgdmlldyhpdGVtOiBSZWNpcGllbnRNb2RlbDxhbnk+KSB7XHJcbiAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoWydtYWlsYm94L2knLCBpdGVtLmlkLmVuY29kZUlkKCksICd2aWV3cyddLFxyXG4gICAgICB7XHJcbiAgICAgICAgc3RhdGU6IHtcclxuICAgICAgICAgIGl0ZW06IHsgLi4uaXRlbSB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gIH1cclxuICBzZW5kQWxsKGFjdGlvbjogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB7IHNlbGVjdGVkIH0gPSB0aGlzLml0ZW1zLnNlbGVjdGlvbjtcclxuICAgIGNvbnN0IGRhdGE6IEFjdGlvbkRpYWxvZ0RhdGEgPSB7XHJcbiAgICAgIGFjdGlvbixcclxuICAgICAgaXRlbXM6IHNlbGVjdGVkIGFzIFJlY2lwaWVudE1vZGVsW11cclxuICAgIH07XHJcbiAgICB0aGlzLl9kaWFsb2cub3BlbihBY3Rpb25EaWFsb2csIHtcclxuICAgICAgZGF0YSxcclxuICAgICAgZGlyZWN0aW9uOiB0aGlzLl9kaXJlY3Rpb25hbGl0eS52YWx1ZSxcclxuICAgICAgcmVzdG9yZUZvY3VzOiBmYWxzZVxyXG4gICAgfSkuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoYXJncyA9PlxyXG4gICAgICBhcmdzICYmXHJcbiAgICAgIHRoaXMuaXRlbXMuc2VuZEFsbChhY3Rpb24sIGFyZ3MpKTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIiwiPG1hdC10b29sYmFyIGNsYXNzPVwibmF2LXRvb2xiYXJcIj5cbiAgQGlmICghaXRlbXMuc2VsZWN0aW9uLmlzRW1wdHkoKSkge1xuICA8IS0tPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIml0ZW1zLnJlZnJlc2goKVwiIFtiaXpkb2NUb29sdGlwXT1cIidSZWZyZXNoJyB8IHRyYW5zbGF0ZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1JlZnJlc2gnIHwgdHJhbnNsYXRlXCI+PG1hdC1pY29uIG1hdEFuaW1hdGU9XCJyb3RhdGVcIj5hdXRvcmVuZXc8L21hdC1pY29uPjwvYnV0dG9uPi0tPlxuICBAaWYgKGl0ZW1zLmlzQWxsRHJhZnQoKSkge1xuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiaXRlbXMuZGlzY2FyZEFsbCgpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ0Rpc2NhcmRTZWxlY3RlZCcgfCB0cmFuc2xhdGUgOiBpdGVtcy5zZWxlY3Rpb24uc2VsZWN0ZWQubGVuZ3RoXCIgW2F0dHIuYXJpYS1sYWJlbF09XCInRGlzY2FyZFNlbGVjdGVkJyB8IHRyYW5zbGF0ZSA6IGl0ZW1zLnNlbGVjdGlvbi5zZWxlY3RlZC5sZW5ndGhcIj48bWF0LWljb24+ZGVsZXRlX3N3ZWVwPC9tYXQtaWNvbj48L2J1dHRvbj5cbiAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJpdGVtcy5zdWJtaXRBbGwoKVwiPnt7J1N1Ym1pdFNlbGVjdGVkJyB8IHRyYW5zbGF0ZSA6IGl0ZW1zLnNlbGVjdGlvbi5zZWxlY3RlZC5sZW5ndGggfX08L2J1dHRvbj5cbiAgfVxuICBAaWYgKGl0ZW1zLnNoYXJlZEFjdGlvbnMubGVuZ3RoID09PSAxKSB7XG4gIDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwic2VuZEFsbChpdGVtcy5zaGFyZWRBY3Rpb25zWzBdLm5hbWUpXCIgW2JpemRvY1Rvb2x0aXBdPVwiaXRlbXMuc2hhcmVkQWN0aW9uc1swXS50aXRsZVwiPlxuICAgIEBpZiAoaXRlbXMuc2hhcmVkQWN0aW9uc1swXS5pY29uKSB7XG4gICAgPG1hdC1pY29uPnt7aXRlbXMuc2hhcmVkQWN0aW9uc1swXS5pY29ufX08L21hdC1pY29uPlxuICAgIH17eydTZW5kU2VsZWN0ZWQnIHwgdHJhbnNsYXRlIDogaXRlbXMuc2VsZWN0aW9uLnNlbGVjdGVkLmxlbmd0aH19XG4gIDwvYnV0dG9uPlxuICB9XG4gIEBlbHNlIGlmIChpdGVtcy5zaGFyZWRBY3Rpb25zLmxlbmd0aCA+IDEpIHtcbiAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJhY3Rpb25cIiBbYml6ZG9jVG9vbHRpcF09XCInU2VuZCcgfCB0cmFuc2xhdGVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidTZW5kJyB8IHRyYW5zbGF0ZVwiPlxuICAgIHt7J1NlbmRTZWxlY3RlZCd8IHRyYW5zbGF0ZSA6IGl0ZW1zLnNlbGVjdGlvbi5zZWxlY3RlZC5sZW5ndGggfX1cbiAgPC9idXR0b24+XG4gIDxtYXQtbWVudSAjYWN0aW9uPlxuICAgIEBmb3IgKGEgb2YgaXRlbXMuc2hhcmVkQWN0aW9ucyB8IHNvcnQgOiAnZ3JvdXAnOyB0cmFjayBhOyBsZXQgaSA9ICRpbmRleCkge1xuICAgIEBpZiAoaSA+IDAgJiYgaXRlbXMuc2hhcmVkQWN0aW9uc1tpLTFdLmdyb3VwICE9PSBhLmdyb3VwKSB7XG4gICAgPG1hdC1kaXZpZGVyPlxuICAgIDwvbWF0LWRpdmlkZXI+XG4gICAgfVxuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwic2VuZEFsbChhLm5hbWUpXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJhLnRpdGxlXCI+XG4gICAgICB7eyBhLnRpdGxlIH19XG4gICAgPC9idXR0b24+XG4gICAgfVxuICA8L21hdC1tZW51PlxuICB9XG4gIDwhLS08YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiaXRlbXMucGFnaW5hdG9yLnByZXZpb3VzUGFnZSgpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1ByZXZQYWdlJyB8IHRyYW5zbGF0ZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1ByZXZQYWdlJyB8IHRyYW5zbGF0ZVwiIFtkaXNhYmxlZF09XCIhaXRlbXMucGFnaW5hdG9yLmhhc1ByZXZpb3VzUGFnZSgpXCI+PG1hdC1pY29uIGNsYXNzPVwibWF0LWljb24tcnRsLW1pcnJvclwiPmtleWJvYXJkX2Fycm93X2xlZnQ8L21hdC1pY29uPjwvYnV0dG9uPlxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiaXRlbXMucGFnaW5hdG9yLm5leHRQYWdlKClcIiBbYml6ZG9jVG9vbHRpcF09XCInTmV4dFBhZ2UnIHwgdHJhbnNsYXRlXCIgW2F0dHIuYXJpYS1sYWJlbF09XCInTmV4dFBhZ2UnIHwgdHJhbnNsYXRlXCIgW2Rpc2FibGVkXT1cIiFpdGVtcy5wYWdpbmF0b3IuaGFzTmV4dFBhZ2UoKVwiPjxtYXQtaWNvbiBjbGFzcz1cIm1hdC1pY29uLXJ0bC1taXJyb3JcIj5rZXlib2FyZF9hcnJvd19yaWdodDwvbWF0LWljb24+PC9idXR0b24+LS0+XG4gIH0gQGVsc2Uge1xuICA8IS0tPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIm9wZW5TZWFyY2goKVwiXG4gICAgW2JpemRvY1Rvb2x0aXBdPVwiJ1NlYXJjaCd8dHJhbnNsYXRlXCIgY2xhc3M9XCJ0b29sXCI+XG4gICAgPG1hdC1pY29uPnNlYXJjaDwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuICBbQHNlYXJjaF09XCJzZWFyY2hpbmdcIlxuICAoQHNlYXJjaC5kb25lKT1cInNlYXJjaGluZyAmJiBmb2N1cygpXCItLT5cbiAgPGlucHV0IG1hdElucHV0XG4gICAgICAgICBbZm9ybUNvbnRyb2xdPVwiY29udGFpbnNcIiBhdXRvY29tcGxldGU9XCJvZmZcIiBwbGFjZWhvbGRlcj1cInt7J1NlYXJjaEZvbGRlcnMnIHwgdHJhbnNsYXRlfX1cIlxuICAgICAgICAgY2xhc3M9XCJtYXQtYm9keSBzZWFyY2gtYm94XCJcbiAgICAgICAgICNzZWFyY2hFbFxuICAgICAgICAgKGtleWRvd24uZXNjYXBlKT1cImNsZWFyU2VhcmNoKCRldmVudClcIj5cbiAgQGlmIChjb250YWlucy52YWx1ZSkge1xuICA8bWF0LWljb24gKGNsaWNrKT1cImNsZWFyU2VhcmNoKClcIj5jbG9zZTwvbWF0LWljb24+XG4gIH1cbiAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxuICA8IS0tPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIml0ZW1zLnBhZ2luYXRvci5wcmV2aW91c1BhZ2UoKVwiIFtiaXpkb2NUb29sdGlwXT1cIidQcmV2UGFnZScgfCB0cmFuc2xhdGVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidQcmV2UGFnZScgfCB0cmFuc2xhdGVcIiBbZGlzYWJsZWRdPVwiIWl0ZW1zLnBhZ2luYXRvci5oYXNQcmV2aW91c1BhZ2UoKVwiPjxtYXQtaWNvbiBjbGFzcz1cIm1hdC1pY29uLXJ0bC1taXJyb3JcIj5rZXlib2FyZF9hcnJvd19sZWZ0PC9tYXQtaWNvbj48L2J1dHRvbj5cbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIml0ZW1zLnBhZ2luYXRvci5uZXh0UGFnZSgpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ05leHRQYWdlJyB8IHRyYW5zbGF0ZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ05leHRQYWdlJyB8IHRyYW5zbGF0ZVwiIFtkaXNhYmxlZF09XCIhaXRlbXMucGFnaW5hdG9yLmhhc05leHRQYWdlKClcIj48bWF0LWljb24gY2xhc3M9XCJtYXQtaWNvbi1ydGwtbWlycm9yXCI+a2V5Ym9hcmRfYXJyb3dfcmlnaHQ8L21hdC1pY29uPjwvYnV0dG9uPi0tPlxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwib3BlbkZpbHRlcigkZXZlbnQpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ0ZpbHRlcicgfCB0cmFuc2xhdGVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidGaWx0ZXInIHwgdHJhbnNsYXRlXCIgI2ZpbHRlckVsPjxtYXQtaWNvbj5maWx0ZXJfbGlzdDwvbWF0LWljb24+PC9idXR0b24+XG4gIH1cbjwvbWF0LXRvb2xiYXI+XG48Yml6ZG9jLWJyb3dzZS1pdGVtcyBbZmlsdGVyc109XCJmaWx0ZXJzXCIgW2ZvbGRlcklkXT1cImZvbGRlcklkXCIgW2ZpbHRlclR5cGVdPVwiZmlsdGVyVHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAob3Blbik9XCJvcGVuKCRldmVudClcIiAodmlldyk9XCJ2aWV3KCRldmVudCkgXCIgI2l0ZW1zPjwvYml6ZG9jLWJyb3dzZS1pdGVtcz5cbiJdfQ==
|
@@ -302,10 +302,10 @@ export class ExpandedItemComponent {
|
|
302
302
|
this._destroy.complete();
|
303
303
|
this._typingTask && clearTimeout(this._typingTask);
|
304
304
|
}
|
305
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.
|
306
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.
|
305
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ExpandedItemComponent, deps: [{ token: i1.PromptService }, { token: i2.ChatInfo }, { token: i3.AccountService }, { token: i4.MailboxService }, { token: i5.SessionService }, { token: i6.Directionality }, { token: i7.MatDialog }, { token: i8.TranslateService }, { token: i9.HubService }], target: i0.ɵɵFactoryTarget.Component }); }
|
306
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: ExpandedItemComponent, selector: "bizdoc-expanded-item", inputs: { model: "model" }, outputs: { sent: "sent" }, ngImport: i0, template: "@if (model.summary) {\n <div class=\"summary\" [innerHTML]=\"model.summary\">\n </div>\n}\n<div>\n <bizdoc-attachments [model]=\"model\"></bizdoc-attachments>\n <bizdoc-events [model]=\"model\"></bizdoc-events>\n</div>\n<div class=\"row\">\n <span class=\"note\" [innerHTML]=\"note | sanitizeHtml\" (click)=\"chat($event)\"></span>\n <span class=\"divider\"></span>\n @for (a of actions; track a) {\n @if (a.icon) {\n <button mat-icon-button (click)=\"send(a.name)\" [bizdocTooltip]=\"a.title\" class=\"tool\">\n <mat-icon>{{a.icon}}</mat-icon>\n </button>\n }\n }\n</div>\n<div class=\"row\">\n <div class=\"mat-small row\">\n <span>{{model.stateId | state : 'past' }}</span>\n \n <span class=\"time\" [bizdocTooltip]=\"model.received | amCalendar\">{{model.received | amTimeAgo}}</span>\n \n <span [innerHTML]=\"sender | sanitizeHtml\" (click)=\"chat($event)\" class=\"who\"></span> \n <span [innerHTML]=\"awaiting | sanitizeHtml\" (click)=\"chat($event)\" class=\"who\"></span>\n </div>\n <span class=\"divider\"></span>\n <div class=\"center center\">\n @if (typing) {\n <span class=\"mat-small\">{{'SomeoneTyping'|translate}}</span>\n }\n @if (model.comments.length) {\n <div class=\"mat-small\">\n @if (!newComments) {\n <span>{{model.comments.length > 1 ? ('CommentsCount' | translate : model.comments.length) : 'OneComment' | translate }}</span>\n } @else {\n <span [innerHTML]=\"'NewCommentsCount' | translate : model.comments.length : newComments | sanitizeHtml\"></span>\n }\n </div>\n }\n </div>\n @if (model.tags) {\n <mat-chip-set>\n @for (tag of model.tags; track tag) {\n <mat-chip [highlighted]=\"true\" [disableRipple]=\"true\">{{tag}}</mat-chip>\n }\n </mat-chip-set>\n }\n</div>\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;overflow:hidden;padding-right:24px;padding-left:24px;text-align:start}.row{align-items:center;min-height:27px;flex-direction:row;box-sizing:border-box;display:flex}.note{font-weight:200}.time{text-transform:uppercase}.summary{max-width:fit-content}\n"], dependencies: [{ kind: "component", type: i10.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled", "tabIndex"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "component", type: i10.MatChipSet, selector: "mat-chip-set", inputs: ["disabled", "role", "tabIndex"] }, { 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.AttachmentsComponent, selector: "bizdoc-attachments", inputs: ["model", "viewedIndicator", "includeDeleted"] }, { kind: "component", type: i14.DocumentEventsComponent, selector: "bizdoc-events", inputs: ["model"] }, { kind: "directive", type: i15.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i16.CalendarPipe, name: "amCalendar" }, { kind: "pipe", type: i17.TimeAgoPipe, name: "amTimeAgo" }, { kind: "pipe", type: i18.TranslatePipe, name: "translate" }, { kind: "pipe", type: i19.SanitizeHtmlPipe, name: "sanitizeHtml" }, { kind: "pipe", type: i20.StatePipe, name: "state" }] }); }
|
307
307
|
}
|
308
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.
|
308
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ExpandedItemComponent, decorators: [{
|
309
309
|
type: Component,
|
310
310
|
args: [{ selector: 'bizdoc-expanded-item', template: "@if (model.summary) {\n <div class=\"summary\" [innerHTML]=\"model.summary\">\n </div>\n}\n<div>\n <bizdoc-attachments [model]=\"model\"></bizdoc-attachments>\n <bizdoc-events [model]=\"model\"></bizdoc-events>\n</div>\n<div class=\"row\">\n <span class=\"note\" [innerHTML]=\"note | sanitizeHtml\" (click)=\"chat($event)\"></span>\n <span class=\"divider\"></span>\n @for (a of actions; track a) {\n @if (a.icon) {\n <button mat-icon-button (click)=\"send(a.name)\" [bizdocTooltip]=\"a.title\" class=\"tool\">\n <mat-icon>{{a.icon}}</mat-icon>\n </button>\n }\n }\n</div>\n<div class=\"row\">\n <div class=\"mat-small row\">\n <span>{{model.stateId | state : 'past' }}</span>\n \n <span class=\"time\" [bizdocTooltip]=\"model.received | amCalendar\">{{model.received | amTimeAgo}}</span>\n \n <span [innerHTML]=\"sender | sanitizeHtml\" (click)=\"chat($event)\" class=\"who\"></span> \n <span [innerHTML]=\"awaiting | sanitizeHtml\" (click)=\"chat($event)\" class=\"who\"></span>\n </div>\n <span class=\"divider\"></span>\n <div class=\"center center\">\n @if (typing) {\n <span class=\"mat-small\">{{'SomeoneTyping'|translate}}</span>\n }\n @if (model.comments.length) {\n <div class=\"mat-small\">\n @if (!newComments) {\n <span>{{model.comments.length > 1 ? ('CommentsCount' | translate : model.comments.length) : 'OneComment' | translate }}</span>\n } @else {\n <span [innerHTML]=\"'NewCommentsCount' | translate : model.comments.length : newComments | sanitizeHtml\"></span>\n }\n </div>\n }\n </div>\n @if (model.tags) {\n <mat-chip-set>\n @for (tag of model.tags; track tag) {\n <mat-chip [highlighted]=\"true\" [disableRipple]=\"true\">{{tag}}</mat-chip>\n }\n </mat-chip-set>\n }\n</div>\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;overflow:hidden;padding-right:24px;padding-left:24px;text-align:start}.row{align-items:center;min-height:27px;flex-direction:row;box-sizing:border-box;display:flex}.note{font-weight:200}.time{text-transform:uppercase}.summary{max-width:fit-content}\n"] }]
|
311
311
|
}], ctorParameters: () => [{ type: i1.PromptService }, { type: i2.ChatInfo }, { type: i3.AccountService }, { type: i4.MailboxService }, { type: i5.SessionService }, { type: i6.Directionality }, { type: i7.MatDialog }, { type: i8.TranslateService }, { type: i9.HubService }], propDecorators: { model: [{
|
@@ -49,36 +49,39 @@ export class BrowseFilterComponent {
|
|
49
49
|
this.tags = _session.profile.options.tags;
|
50
50
|
}
|
51
51
|
ngOnInit() {
|
52
|
-
if (this.
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
this.
|
52
|
+
if (this.folderId) {
|
53
|
+
const folder = this._session.profile.folders.find(f => f.name === this.folderId);
|
54
|
+
if (folder.filters)
|
55
|
+
this.filters = folder.filters;
|
56
|
+
}
|
57
|
+
else if (this._config.folders && this._config.folders.axes) {
|
58
|
+
const { axes, cube } = this._config.folders;
|
59
|
+
this.filters = { axes, cube };
|
60
|
+
}
|
61
|
+
this.senders$ = this.senderId.valueChanges.
|
62
|
+
pipe(debounceTime(250), filter(v => isString(v)), takeUntil(this._destroy), switchMap(v => this._mailbox.senders(v)));
|
63
|
+
this.form.valueChanges.pipe(takeUntil(this._destroy), debounceTime(FILTER_DEBOUNCE)).
|
64
|
+
subscribe(v => {
|
65
|
+
cleanup(v);
|
66
|
+
this.valuesChange.emit(v);
|
59
67
|
});
|
60
|
-
this._initialize();
|
61
|
-
this.setValue(this.values);
|
62
|
-
}
|
63
|
-
ngAfterViewInit() {
|
64
|
-
this.focus();
|
65
|
-
}
|
66
|
-
ngOnChanges(changes) {
|
67
|
-
this._initialize();
|
68
|
-
}
|
69
|
-
_initialize() {
|
70
68
|
if (this.folderId) {
|
71
69
|
const folder = this._session.profile.folders.find(f => f.name === this.folderId);
|
72
70
|
if (folder.filters)
|
73
71
|
this.filters = folder.filters;
|
74
|
-
return;
|
75
72
|
}
|
76
|
-
if (this._config.folders && this._config.folders.axes) {
|
73
|
+
else if (this._config.folders && this._config.folders.axes) {
|
77
74
|
const { axes, cube } = this._config.folders;
|
78
75
|
this.filters = { axes, cube };
|
79
76
|
}
|
80
|
-
|
81
|
-
|
77
|
+
this.form.patchValue(this.values, { emitEvent: false });
|
78
|
+
if (this.values.senderId)
|
79
|
+
this._accounts.get(this.values.senderId).
|
80
|
+
subscribe(u => this.senderId.setValue(u, { emitEvent: false }));
|
81
|
+
this.chips.value = this.values.tag;
|
82
|
+
}
|
83
|
+
ngAfterViewInit() {
|
84
|
+
this.focus();
|
82
85
|
}
|
83
86
|
display(keyValue) {
|
84
87
|
return keyValue ? keyValue.value : null;
|
@@ -86,19 +89,6 @@ export class BrowseFilterComponent {
|
|
86
89
|
change(axis, evt) {
|
87
90
|
this.form.controls[axis].setValue(evt.option.value.key);
|
88
91
|
}
|
89
|
-
setValue(value) {
|
90
|
-
this.form.patchValue(Object.assign({
|
91
|
-
contains: null,
|
92
|
-
form: null,
|
93
|
-
state: null,
|
94
|
-
senderId: null,
|
95
|
-
flag: null,
|
96
|
-
tag: null
|
97
|
-
}, value), { emitEvent: false });
|
98
|
-
if (value.senderId)
|
99
|
-
this._accounts.get(value.senderId).subscribe(u => this.senderId.setValue(u, { emitEvent: false }));
|
100
|
-
this.chips.value = value.tag;
|
101
|
-
}
|
102
92
|
clearSender() {
|
103
93
|
this.senderId.setValue(null);
|
104
94
|
this.form.patchValue({ senderId: null });
|
@@ -132,10 +122,10 @@ export class BrowseFilterComponent {
|
|
132
122
|
this._destroy.next();
|
133
123
|
this._destroy.complete();
|
134
124
|
}
|
135
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.
|
136
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.
|
125
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: BrowseFilterComponent, deps: [{ token: i1.FormBuilder }, { token: i2.SessionService }, { token: i0.ChangeDetectorRef }, { token: i3.MailboxService }, { token: i4.AccountService }, { token: BIZDOC_CONFIG }], target: i0.ɵɵFactoryTarget.Component }); }
|
126
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: BrowseFilterComponent, selector: "bizdoc-browse-filter", inputs: { values: "values", folderId: "folderId", exclude: "exclude" }, outputs: { valuesChange: "valuesChange" }, viewQueries: [{ propertyName: "chips", first: true, predicate: MatChipListbox, descendants: true, static: true }, { propertyName: "contains", first: true, predicate: ["contains"], descendants: true, read: ElementRef, static: true }, { propertyName: "sender", first: true, predicate: ["sender"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<form [formGroup]=\"form\" class=\"column gap\" autocomplete=\"off\">\n @if (!exclude || exclude.indexOf('contains') < 0) {\n <mat-form-field subscriptSizing=\"dynamic\">\n <input matInput formControlName=\"contains\" placeholder=\"{{'Contains' | translate}}\" #contains>\n @if (form.value.contains) {\n <button matSuffix mat-icon-button aria-label=\"\" (click)=\"form.controls.contains.setValue(null)\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n }\n <mat-form-field subscriptSizing=\"dynamic\">\n <input matInput [matAutocomplete]=\"senders\" [placeholder]=\"'Sender' | translate\" [formControl]=\"senderId\" #sender />\n <mat-autocomplete #senders [displayWith]=\"displayFn\" (optionSelected)=\"senderSelected($event)\">\n @for (u of senders$ | async; track u) {\n <mat-option [value]=\"u\">\n <span>{{u.name}}</span>\n </mat-option>\n }\n </mat-autocomplete>\n @if (senderId.value) {\n <button matSuffix mat-icon-button (click)=\"clearSender()\"><mat-icon>clear</mat-icon></button>\n }\n </mat-form-field>\n <mat-form-field subscriptSizing=\"dynamic\">\n <mat-select [placeholder]=\"'Status'|translate\" formControlName=\"state\">\n <mat-option>\n {{ 'All' | translate }}\n </mat-option>\n @for (s of states; track s) {\n <mat-option [value]=\"s.name\">\n {{s.title}}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field subscriptSizing=\"dynamic\">\n <mat-select [placeholder]=\"'Form' | translate\" formControlName=\"form\">\n <mat-option>\n {{ 'All' | translate }}\n </mat-option>\n @for (f of forms; track f) {\n <mat-option [value]=\"f.name\">{{f.title}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-chip-listbox id=\"tags\" (change)=\"toggleTag($event)\">\n @for (tag of tags; track tag) {\n <mat-chip-option color=\"accent\">\n {{tag}}\n </mat-chip-option>\n }\n </mat-chip-listbox>\n @if (filters) {\n <bizdoc-cube-filter class=\"cube-filter\"\n [cube]=\"filters.cube\"\n [include]=\"filters.axes\"\n [axes]=\"values\"\n (axesChange)=\"axesChange($event)\"></bizdoc-cube-filter>\n }\n</form>\n", styles: [".cube-filter ::ng-deep form{padding:0}\n"], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.MatChipListbox, selector: "mat-chip-listbox", inputs: ["multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: i5.MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["selectable", "selected"], outputs: ["selectionChange"] }, { kind: "component", type: i6.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i6.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i9.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i10.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i11.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i12.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i13.CubeFilterComponent, selector: "bizdoc-cube-filter", inputs: ["cube", "exclude", "include", "axes"], outputs: ["axesChange"] }, { kind: "pipe", type: i14.AsyncPipe, name: "async" }, { kind: "pipe", type: i15.TranslatePipe, name: "translate" }] }); }
|
137
127
|
}
|
138
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.
|
128
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: BrowseFilterComponent, decorators: [{
|
139
129
|
type: Component,
|
140
130
|
args: [{ selector: 'bizdoc-browse-filter', template: "<form [formGroup]=\"form\" class=\"column gap\" autocomplete=\"off\">\n @if (!exclude || exclude.indexOf('contains') < 0) {\n <mat-form-field subscriptSizing=\"dynamic\">\n <input matInput formControlName=\"contains\" placeholder=\"{{'Contains' | translate}}\" #contains>\n @if (form.value.contains) {\n <button matSuffix mat-icon-button aria-label=\"\" (click)=\"form.controls.contains.setValue(null)\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n }\n <mat-form-field subscriptSizing=\"dynamic\">\n <input matInput [matAutocomplete]=\"senders\" [placeholder]=\"'Sender' | translate\" [formControl]=\"senderId\" #sender />\n <mat-autocomplete #senders [displayWith]=\"displayFn\" (optionSelected)=\"senderSelected($event)\">\n @for (u of senders$ | async; track u) {\n <mat-option [value]=\"u\">\n <span>{{u.name}}</span>\n </mat-option>\n }\n </mat-autocomplete>\n @if (senderId.value) {\n <button matSuffix mat-icon-button (click)=\"clearSender()\"><mat-icon>clear</mat-icon></button>\n }\n </mat-form-field>\n <mat-form-field subscriptSizing=\"dynamic\">\n <mat-select [placeholder]=\"'Status'|translate\" formControlName=\"state\">\n <mat-option>\n {{ 'All' | translate }}\n </mat-option>\n @for (s of states; track s) {\n <mat-option [value]=\"s.name\">\n {{s.title}}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field subscriptSizing=\"dynamic\">\n <mat-select [placeholder]=\"'Form' | translate\" formControlName=\"form\">\n <mat-option>\n {{ 'All' | translate }}\n </mat-option>\n @for (f of forms; track f) {\n <mat-option [value]=\"f.name\">{{f.title}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-chip-listbox id=\"tags\" (change)=\"toggleTag($event)\">\n @for (tag of tags; track tag) {\n <mat-chip-option color=\"accent\">\n {{tag}}\n </mat-chip-option>\n }\n </mat-chip-listbox>\n @if (filters) {\n <bizdoc-cube-filter class=\"cube-filter\"\n [cube]=\"filters.cube\"\n [include]=\"filters.axes\"\n [axes]=\"values\"\n (axesChange)=\"axesChange($event)\"></bizdoc-cube-filter>\n }\n</form>\n", styles: [".cube-filter ::ng-deep form{padding:0}\n"] }]
|
141
131
|
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.SessionService }, { type: i0.ChangeDetectorRef }, { type: i3.MailboxService }, { type: i4.AccountService }, { type: undefined, decorators: [{
|
@@ -159,4 +149,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImpor
|
|
159
149
|
type: ViewChild,
|
160
150
|
args: ['sender', { static: true, read: ElementRef }]
|
161
151
|
}] } });
|
162
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvYnJvd3NlL2ZpbHRlci9maWx0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9icm93c2UvZmlsdGVyL2ZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQXFCLFNBQVMsRUFBNEIsS0FBSyxFQUFFLFVBQVUsRUFBb0MsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSXJMLE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTVFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFJekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFnQixhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsY0FBYyxFQUF3QixNQUFNLHlCQUF5QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztBQUUvRSxNQUFNLGVBQWUsR0FBRyxHQUFHLENBQUM7QUFPNUIsNkJBQTZCO0FBQzdCLE1BQU0sT0FBTyxxQkFBcUI7SUEyQmhDLHlCQUF5QjtJQUN6QixZQUFvQixHQUFnQixFQUMxQixRQUF3QixFQUN4QixHQUFzQixFQUN0QixRQUF3QixFQUN4QixTQUF5QixFQUNGLE9BQXFCO1FBTGxDLFFBQUcsR0FBSCxHQUFHLENBQWE7UUFDMUIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFDeEIsUUFBRyxHQUFILEdBQUcs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ZW50LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBPbkRlc3Ryb3ksIFZpZXdDaGlsZCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBJbnB1dCwgRWxlbWVudFJlZiwgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwsIHN3aXRjaE1hcCwgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBTdGF0ZSwgRm9ybSwgVXNlckluZm8sIEF4ZXNNYXAgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IGNsZWFudXAsIGlzU3RyaW5nIH0gZnJvbSAnLi4vLi4vY29yZS9mdW5jdGlvbnMnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWFpbGJveFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL21haWxib3guc2VydmljZSc7XHJcbmltcG9ydCB7IEFjY291bnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9hY2NvdW50LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBWElTX1ZBTFVFX1BBVFRFUk4gfSBmcm9tICcuLi8uLi9jdWJlL2N1YmUuc2VydmljZSc7XHJcbmltcG9ydCB7IEJpekRvY0NvbmZpZywgQklaRE9DX0NPTkZJRyB9IGZyb20gJy4uLy4uL2NvcmUvY29uZmlndXJhdGlvbic7XHJcbmltcG9ydCB7IE1hdENoaXBMaXN0Ym94LCBNYXRDaGlwTGlzdGJveENoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcclxuXHJcbmNvbnN0IEZJTFRFUl9ERUJPVU5DRSA9IDI1MDtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLWJyb3dzZS1maWx0ZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZpbHRlci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbi8qKiBicm93c2UtZmlsdGVyIGNvbXBvbmVudCovXHJcbmV4cG9ydCBjbGFzcyBCcm93c2VGaWx0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICByZWFkb25seSBwYXR0ZXJuID0gQVhJU19WQUxVRV9QQVRURVJOO1xyXG4gIEBJbnB1dCgpIHZhbHVlczogQnJvd3NlRmlsdGVyQXJncztcclxuICBASW5wdXQoKSBmb2xkZXJJZD86IHN0cmluZztcclxuICBASW5wdXQoKSBleGNsdWRlPzogc3RyaW5nW107XHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHZhbHVlc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8QnJvd3NlRmlsdGVyQXJncz4oKTtcclxuICByZWFkb25seSBzZW5kZXJJZCA9IHRoaXMuX2ZiLmNvbnRyb2wobnVsbCk7XHJcbiAgcmVhZG9ubHkgZm9ybSA9IHRoaXMuX2ZiLmdyb3VwPEJyb3dzZUZpbHRlckFyZ3M+KHtcclxuICAgIGNvbnRhaW5zOiBudWxsLFxyXG4gICAgZm9ybTogbnVsbCxcclxuICAgIHN0YXRlOiBudWxsLFxyXG4gICAgc2VuZGVySWQ6IG51bGwsXHJcbiAgICB0YWc6IG51bGxcclxuICB9KTtcclxuICBmb3JtczogRm9ybVtdO1xyXG4gIHN0YXRlczogU3RhdGVbXTtcclxuICBzZW5kZXJzJDogT2JzZXJ2YWJsZTxVc2VySW5mb1tdPjtcclxuICB0YWdzOiBzdHJpbmdbXTtcclxuICBmaWx0ZXJzOiB7XHJcbiAgICBjdWJlPzogc3RyaW5nO1xyXG4gICAgYXhlczogc3RyaW5nW107XHJcbiAgfTtcclxuICBAVmlld0NoaWxkKE1hdENoaXBMaXN0Ym94LCB7IHN0YXRpYzogdHJ1ZSB9KSBjaGlwczogTWF0Q2hpcExpc3Rib3g7XHJcbiAgQFZpZXdDaGlsZCgnY29udGFpbnMnLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogRWxlbWVudFJlZiB9KSBjb250YWluczogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcclxuICBAVmlld0NoaWxkKCdzZW5kZXInLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogRWxlbWVudFJlZiB9KSBzZW5kZXI6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XHJcbiAgcmVhZG9ubHkgc291cmNlczogeyBbZGF0YXR5cGU6IHN0cmluZ106IE9ic2VydmFibGU8eyBbbmFtZTogc3RyaW5nXTogYW55IH0+IH0gPSB7fTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICAvKiogYnJvd3NlLWZpbHRlciBjdG9yICovXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIF9tYWlsYm94OiBNYWlsYm94U2VydmljZSxcclxuICAgIHByaXZhdGUgX2FjY291bnRzOiBBY2NvdW50U2VydmljZSxcclxuICAgIEBJbmplY3QoQklaRE9DX0NPTkZJRykgcHJpdmF0ZSBfY29uZmlnOiBCaXpEb2NDb25maWcpIHtcclxuICAgIHRoaXMuc3RhdGVzID0gX3Nlc3Npb24ucHJvZmlsZS5zdGF0ZXM7XHJcbiAgICB0aGlzLmZvcm1zID0gX3Nlc3Npb24ucHJvZmlsZS5mb3JtcztcclxuICAgIHRoaXMudGFncyA9IF9zZXNzaW9uLnByb2ZpbGUub3B0aW9ucy50YWdzO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNlbmRlcklkKSB0aGlzLnNlbmRlcnMkID0gdGhpcy5zZW5kZXJJZC52YWx1ZUNoYW5nZXMuXHJcbiAgICAgIHBpcGUoZGVib3VuY2VUaW1lKDI1MCksXHJcbiAgICAgICAgZmlsdGVyKHYgPT4gaXNTdHJpbmcodikpLFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSwgc3dpdGNoTWFwKHYgPT4gdGhpcy5fbWFpbGJveC5zZW5kZXJzKHYpKSk7XHJcbiAgICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpLCBkZWJvdW5jZVRpbWUoRklMVEVSX0RFQk9VTkNFKSkuc3Vic2NyaWJlKHYgPT4ge1xyXG4gICAgICBjb25zdCB2YWx1ZTogQnJvd3NlRmlsdGVyQXJncyA9IHsgLi4udiB9O1xyXG4gICAgICBjbGVhbnVwKHZhbHVlKTtcclxuICAgICAgdGhpcy52YWx1ZXNDaGFuZ2UuZW1pdCh2YWx1ZSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX2luaXRpYWxpemUoKTtcclxuICAgIHRoaXMuc2V0VmFsdWUodGhpcy52YWx1ZXMpO1xyXG4gIH1cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvY3VzKCk7XHJcbiAgfVxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIHRoaXMuX2luaXRpYWxpemUoKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfaW5pdGlhbGl6ZSgpIHtcclxuICAgIGlmICh0aGlzLmZvbGRlcklkKSB7XHJcbiAgICAgIGNvbnN0IGZvbGRlciA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5mb2xkZXJzLmZpbmQoZiA9PiBmLm5hbWUgPT09IHRoaXMuZm9sZGVySWQpO1xyXG4gICAgICBpZiAoZm9sZGVyLmZpbHRlcnMpXHJcbiAgICAgICAgdGhpcy5maWx0ZXJzID0gZm9sZGVyLmZpbHRlcnM7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLl9jb25maWcuZm9sZGVycyAmJiB0aGlzLl9jb25maWcuZm9sZGVycy5heGVzKSB7XHJcbiAgICAgIGNvbnN0IHsgYXhlcywgY3ViZSB9ID0gdGhpcy5fY29uZmlnLmZvbGRlcnM7XHJcbiAgICAgIHRoaXMuZmlsdGVycyA9IHsgYXhlcywgY3ViZSB9O1xyXG4gICAgfVxyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLmZpbHRlcnMgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgZGlzcGxheShrZXlWYWx1ZSkge1xyXG4gICAgcmV0dXJuIGtleVZhbHVlID8ga2V5VmFsdWUudmFsdWUgOiBudWxsO1xyXG4gIH1cclxuICBjaGFuZ2UoYXhpczogc3RyaW5nLCBldnQ6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpIHtcclxuICAgIHRoaXMuZm9ybS5jb250cm9sc1theGlzXS5zZXRWYWx1ZShldnQub3B0aW9uLnZhbHVlLmtleSk7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXRWYWx1ZSh2YWx1ZTogQnJvd3NlRmlsdGVyQXJncykge1xyXG4gICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoT2JqZWN0LmFzc2lnbih7XHJcbiAgICAgIGNvbnRhaW5zOiBudWxsLFxyXG4gICAgICBmb3JtOiBudWxsLFxyXG4gICAgICBzdGF0ZTogbnVsbCxcclxuICAgICAgc2VuZGVySWQ6IG51bGwsXHJcbiAgICAgIGZsYWc6IG51bGwsXHJcbiAgICAgIHRhZzogbnVsbFxyXG4gICAgfSwgdmFsdWUpLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICBpZiAodmFsdWUuc2VuZGVySWQpXHJcbiAgICAgIHRoaXMuX2FjY291bnRzLmdldCh2YWx1ZS5zZW5kZXJJZCkuc3Vic2NyaWJlKHUgPT4gdGhpcy5zZW5kZXJJZC5zZXRWYWx1ZSh1LCB7IGVtaXRFdmVudDogZmFsc2UgfSkpO1xyXG4gICAgdGhpcy5jaGlwcy52YWx1ZSA9IHZhbHVlLnRhZztcclxuICB9XHJcbiAgY2xlYXJTZW5kZXIoKSB7XHJcbiAgICB0aGlzLnNlbmRlcklkLnNldFZhbHVlKG51bGwpO1xyXG4gICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoeyBzZW5kZXJJZDogbnVsbCB9KTtcclxuICB9XHJcbiAgYXhlc0NoYW5nZShheGVzOiBBeGVzTWFwKSB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IHsgLi4udGhpcy5mb3JtLnZhbHVlLCAuLi5heGVzIH07XHJcbiAgICBjbGVhbnVwKHZhbHVlKTtcclxuICAgIHRoaXMudmFsdWVzQ2hhbmdlLmVtaXQodmFsdWUpO1xyXG4gIH1cclxuICB0b2dnbGVUYWcoZXZ0OiBNYXRDaGlwTGlzdGJveENoYW5nZSkge1xyXG4gICAgdGhpcy5mb3JtLmNvbnRyb2xzLnRhZy5zZXRWYWx1ZSh0aGlzLmZvcm0uY29udHJvbHMudGFnLnZhbHVlICE9PSBldnQudmFsdWUgPyBldnQudmFsdWUgOiBudWxsKTtcclxuICB9XHJcbiAgZGlzcGxheUZuKGl0ZW06IFVzZXJJbmZvKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiBpdGVtID8gaXRlbS5uYW1lIDogdW5kZWZpbmVkO1xyXG4gIH1cclxuICBkcm9wKGV2dDogQ2RrRHJhZ0Ryb3A8c3RyaW5nLCBhbnk+KSB7XHJcbiAgICBldnQuaXRlbS5kYXRhO1xyXG4gIH1cclxuICBzZW5kZXJTZWxlY3RlZChlOiBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50KSB7XHJcbiAgICBjb25zdCBpbmZvID0gZS5vcHRpb24udmFsdWUgYXMgVXNlckluZm87XHJcbiAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7IHNlbmRlcklkOiBpbmZvID8gaW5mby5pZCA6IG51bGwgfSk7XHJcbiAgfVxyXG4gIGZvY3VzKCkge1xyXG4gICAgaWYgKHRoaXMuY29udGFpbnMpIHRoaXMuY29udGFpbnMubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgZWxzZSBpZiAodGhpcy5zZW5kZXIpIHRoaXMuc2VuZGVyLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveS5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQnJvd3NlRmlsdGVyQXJncyB7XHJcbiAgZm9ybT86IHN0cmluZztcclxuICBmbGFnPzogYm9vbGVhbjtcclxuICBzdGF0ZT86IHN0cmluZztcclxuICBjb250YWlucz86IHN0cmluZztcclxuICBzZW5kZXJJZD86IHN0cmluZztcclxuICB0YWc/OiBzdHJpbmc7XHJcbn1cclxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgY2xhc3M9XCJjb2x1bW4gZ2FwXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCI+XG4gIEBpZiAoIWV4Y2x1ZGUgfHwgZXhjbHVkZS5pbmRleE9mKCdjb250YWlucycpIDwgMCkge1xuICA8bWF0LWZvcm0tZmllbGQgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiPlxuICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJjb250YWluc1wiIHBsYWNlaG9sZGVyPVwie3snQ29udGFpbnMnIHwgdHJhbnNsYXRlfX1cIiAjY29udGFpbnM+XG4gICAgQGlmIChmb3JtLnZhbHVlLmNvbnRhaW5zKSB7XG4gICAgPGJ1dHRvbiBtYXRTdWZmaXggbWF0LWljb24tYnV0dG9uIGFyaWEtbGFiZWw9XCJcIiAoY2xpY2spPVwiZm9ybS5jb250cm9scy5jb250YWlucy5zZXRWYWx1ZShudWxsKVwiPlxuICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgICB9XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG4gIH1cbiAgPG1hdC1mb3JtLWZpZWxkIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIj5cbiAgICA8aW5wdXQgbWF0SW5wdXQgW21hdEF1dG9jb21wbGV0ZV09XCJzZW5kZXJzXCIgW3BsYWNlaG9sZGVyXT1cIidTZW5kZXInIHwgdHJhbnNsYXRlXCIgW2Zvcm1Db250cm9sXT1cInNlbmRlcklkXCIgI3NlbmRlciAvPlxuICAgIDxtYXQtYXV0b2NvbXBsZXRlICNzZW5kZXJzIFtkaXNwbGF5V2l0aF09XCJkaXNwbGF5Rm5cIiAob3B0aW9uU2VsZWN0ZWQpPVwic2VuZGVyU2VsZWN0ZWQoJGV2ZW50KVwiPlxuICAgICAgQGZvciAodSBvZiBzZW5kZXJzJCB8IGFzeW5jOyB0cmFjayB1KSB7XG4gICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwidVwiPlxuICAgICAgICA8c3Bhbj57e3UubmFtZX19PC9zcGFuPlxuICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgfVxuICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cbiAgICBAaWYgKHNlbmRlcklkLnZhbHVlKSB7XG4gICAgPGJ1dHRvbiBtYXRTdWZmaXggbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJjbGVhclNlbmRlcigpXCI+PG1hdC1pY29uPmNsZWFyPC9tYXQtaWNvbj48L2J1dHRvbj5cbiAgICB9XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDxtYXQtZm9ybS1maWVsZCBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCI+XG4gICAgPG1hdC1zZWxlY3QgW3BsYWNlaG9sZGVyXT1cIidTdGF0dXMnfHRyYW5zbGF0ZVwiIGZvcm1Db250cm9sTmFtZT1cInN0YXRlXCI+XG4gICAgICA8bWF0LW9wdGlvbj5cbiAgICAgICAge3sgJ0FsbCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgIEBmb3IgKHMgb2Ygc3RhdGVzOyB0cmFjayBzKSB7XG4gICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwicy5uYW1lXCI+XG4gICAgICAgIHt7cy50aXRsZX19XG4gICAgICA8L21hdC1vcHRpb24+XG4gICAgICB9XG4gICAgPC9tYXQtc2VsZWN0PlxuICA8L21hdC1mb3JtLWZpZWxkPlxuICA8bWF0LWZvcm0tZmllbGQgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiPlxuICAgIDxtYXQtc2VsZWN0IFtwbGFjZWhvbGRlcl09XCInRm9ybScgfCB0cmFuc2xhdGVcIiBmb3JtQ29udHJvbE5hbWU9XCJmb3JtXCI+XG4gICAgICA8bWF0LW9wdGlvbj5cbiAgICAgICAge3sgJ0FsbCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgIEBmb3IgKGYgb2YgZm9ybXM7IHRyYWNrIGYpIHtcbiAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJmLm5hbWVcIj57e2YudGl0bGV9fTwvbWF0LW9wdGlvbj5cbiAgICAgIH1cbiAgICA8L21hdC1zZWxlY3Q+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDxtYXQtY2hpcC1saXN0Ym94IGlkPVwidGFnc1wiIChjaGFuZ2UpPVwidG9nZ2xlVGFnKCRldmVudClcIj5cbiAgICBAZm9yICh0YWcgb2YgdGFnczsgdHJhY2sgdGFnKSB7XG4gICAgPG1hdC1jaGlwLW9wdGlvbiBjb2xvcj1cImFjY2VudFwiPlxuICAgICAge3t0YWd9fVxuICAgIDwvbWF0LWNoaXAtb3B0aW9uPlxuICAgIH1cbiAgPC9tYXQtY2hpcC1saXN0Ym94PlxuICBAaWYgKGZpbHRlcnMpIHtcbiAgPGJpemRvYy1jdWJlLWZpbHRlciBjbGFzcz1cImN1YmUtZmlsdGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICBbY3ViZV09XCJmaWx0ZXJzLmN1YmVcIlxuICAgICAgICAgICAgICAgICAgICAgIFtpbmNsdWRlXT1cImZpbHRlcnMuYXhlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgW2F4ZXNdPVwidmFsdWVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAoYXhlc0NoYW5nZSk9XCJheGVzQ2hhbmdlKCRldmVudClcIj48L2JpemRvYy1jdWJlLWZpbHRlcj5cbiAgfVxuPC9mb3JtPlxuIl19
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvYnJvd3NlL2ZpbHRlci9maWx0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9icm93c2UvZmlsdGVyL2ZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQXFCLFNBQVMsRUFBNEIsS0FBSyxFQUFFLFVBQVUsRUFBb0MsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSXJMLE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTVFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFJekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFnQixhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsY0FBYyxFQUF3QixNQUFNLHlCQUF5QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztBQUUvRSxNQUFNLGVBQWUsR0FBRyxHQUFHLENBQUM7QUFPNUIsNkJBQTZCO0FBQzdCLE1BQU0sT0FBTyxxQkFBcUI7SUEyQmhDLHlCQUF5QjtJQUN6QixZQUFvQixHQUFnQixFQUMxQixRQUF3QixFQUN4QixHQUFzQixFQUN0QixRQUF3QixFQUN4QixTQUF5QixFQUNGLE9BQXFCO1FBTGxDLFFBQUcsR0FBSCxHQUFHLENBQWE7UUFDMUIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFDeEIsUUFBRyxHQUFILEdBQUcs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LFVBQVUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgT25EZXN0cm95LCBWaWV3Q2hpbGQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgSW5wdXQsIEVsZW1lbnRSZWYsIEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENka0RyYWdEcm9wIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsLCBzd2l0Y2hNYXAsIGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU3RhdGUsIEZvcm0sIFVzZXJJbmZvLCBBeGVzTWFwIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBjbGVhbnVwLCBpc1N0cmluZyB9IGZyb20gJy4uLy4uL2NvcmUvZnVuY3Rpb25zJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3Nlc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IE1haWxib3hTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9tYWlsYm94LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBY2NvdW50U2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvYWNjb3VudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQVhJU19WQUxVRV9QQVRURVJOIH0gZnJvbSAnLi4vLi4vY3ViZS9jdWJlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCaXpEb2NDb25maWcsIEJJWkRPQ19DT05GSUcgfSBmcm9tICcuLi8uLi9jb3JlL2NvbmZpZ3VyYXRpb24nO1xyXG5pbXBvcnQgeyBNYXRDaGlwTGlzdGJveCwgTWF0Q2hpcExpc3Rib3hDaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XHJcblxyXG5jb25zdCBGSUxURVJfREVCT1VOQ0UgPSAyNTA7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1icm93c2UtZmlsdGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZmlsdGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9maWx0ZXIuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG4vKiogYnJvd3NlLWZpbHRlciBjb21wb25lbnQqL1xyXG5leHBvcnQgY2xhc3MgQnJvd3NlRmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gIHJlYWRvbmx5IHBhdHRlcm4gPSBBWElTX1ZBTFVFX1BBVFRFUk47XHJcbiAgQElucHV0KCkgdmFsdWVzOiBCcm93c2VGaWx0ZXJBcmdzO1xyXG4gIEBJbnB1dCgpIGZvbGRlcklkPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGV4Y2x1ZGU/OiBzdHJpbmdbXTtcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgdmFsdWVzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxCcm93c2VGaWx0ZXJBcmdzPigpO1xyXG4gIHJlYWRvbmx5IHNlbmRlcklkID0gdGhpcy5fZmIuY29udHJvbChudWxsKTtcclxuICByZWFkb25seSBmb3JtID0gdGhpcy5fZmIuZ3JvdXA8QnJvd3NlRmlsdGVyQXJncz4oe1xyXG4gICAgY29udGFpbnM6IG51bGwsXHJcbiAgICBmb3JtOiBudWxsLFxyXG4gICAgc3RhdGU6IG51bGwsXHJcbiAgICBzZW5kZXJJZDogbnVsbCxcclxuICAgIHRhZzogbnVsbFxyXG4gIH0pO1xyXG4gIGZvcm1zOiBGb3JtW107XHJcbiAgc3RhdGVzOiBTdGF0ZVtdO1xyXG4gIHNlbmRlcnMkOiBPYnNlcnZhYmxlPFVzZXJJbmZvW10+O1xyXG4gIHRhZ3M6IHN0cmluZ1tdO1xyXG4gIGZpbHRlcnM6IHtcclxuICAgIGN1YmU/OiBzdHJpbmc7XHJcbiAgICBheGVzOiBzdHJpbmdbXTtcclxuICB9O1xyXG4gIEBWaWV3Q2hpbGQoTWF0Q2hpcExpc3Rib3gsIHsgc3RhdGljOiB0cnVlIH0pIGNoaXBzOiBNYXRDaGlwTGlzdGJveDtcclxuICBAVmlld0NoaWxkKCdjb250YWlucycsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBFbGVtZW50UmVmIH0pIGNvbnRhaW5zOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xyXG4gIEBWaWV3Q2hpbGQoJ3NlbmRlcicsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBFbGVtZW50UmVmIH0pIHNlbmRlcjogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcclxuICByZWFkb25seSBzb3VyY2VzOiB7IFtkYXRhdHlwZTogc3RyaW5nXTogT2JzZXJ2YWJsZTx7IFtuYW1lOiBzdHJpbmddOiBhbnkgfT4gfSA9IHt9O1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIC8qKiBicm93c2UtZmlsdGVyIGN0b3IgKi9cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9mYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgX21haWxib3g6IE1haWxib3hTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfYWNjb3VudHM6IEFjY291bnRTZXJ2aWNlLFxyXG4gICAgQEluamVjdChCSVpET0NfQ09ORklHKSBwcml2YXRlIF9jb25maWc6IEJpekRvY0NvbmZpZykge1xyXG4gICAgdGhpcy5zdGF0ZXMgPSBfc2Vzc2lvbi5wcm9maWxlLnN0YXRlcztcclxuICAgIHRoaXMuZm9ybXMgPSBfc2Vzc2lvbi5wcm9maWxlLmZvcm1zO1xyXG4gICAgdGhpcy50YWdzID0gX3Nlc3Npb24ucHJvZmlsZS5vcHRpb25zLnRhZ3M7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZm9sZGVySWQpIHtcclxuICAgICAgY29uc3QgZm9sZGVyID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmZvbGRlcnMuZmluZChmID0+IGYubmFtZSA9PT0gdGhpcy5mb2xkZXJJZCk7XHJcbiAgICAgIGlmIChmb2xkZXIuZmlsdGVycylcclxuICAgICAgICB0aGlzLmZpbHRlcnMgPSBmb2xkZXIuZmlsdGVycztcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMuX2NvbmZpZy5mb2xkZXJzICYmIHRoaXMuX2NvbmZpZy5mb2xkZXJzLmF4ZXMpIHtcclxuICAgICAgY29uc3QgeyBheGVzLCBjdWJlIH0gPSB0aGlzLl9jb25maWcuZm9sZGVycztcclxuICAgICAgdGhpcy5maWx0ZXJzID0geyBheGVzLCBjdWJlIH07XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlbmRlcnMkID0gdGhpcy5zZW5kZXJJZC52YWx1ZUNoYW5nZXMuXHJcbiAgICAgIHBpcGUoZGVib3VuY2VUaW1lKDI1MCksXHJcbiAgICAgICAgZmlsdGVyKHYgPT4gaXNTdHJpbmcodikpLFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSwgc3dpdGNoTWFwKHYgPT4gdGhpcy5fbWFpbGJveC5zZW5kZXJzKHYpKSk7XHJcbiAgICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpLCBkZWJvdW5jZVRpbWUoRklMVEVSX0RFQk9VTkNFKSkuXHJcbiAgICAgIHN1YnNjcmliZSh2ID0+IHtcclxuICAgICAgY2xlYW51cCh2KTtcclxuICAgICAgdGhpcy52YWx1ZXNDaGFuZ2UuZW1pdCh2KTtcclxuICAgIH0pO1xyXG4gICAgaWYgKHRoaXMuZm9sZGVySWQpIHtcclxuICAgICAgY29uc3QgZm9sZGVyID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmZvbGRlcnMuZmluZChmID0+IGYubmFtZSA9PT0gdGhpcy5mb2xkZXJJZCk7XHJcbiAgICAgIGlmIChmb2xkZXIuZmlsdGVycylcclxuICAgICAgICB0aGlzLmZpbHRlcnMgPSBmb2xkZXIuZmlsdGVycztcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMuX2NvbmZpZy5mb2xkZXJzICYmIHRoaXMuX2NvbmZpZy5mb2xkZXJzLmF4ZXMpIHtcclxuICAgICAgY29uc3QgeyBheGVzLCBjdWJlIH0gPSB0aGlzLl9jb25maWcuZm9sZGVycztcclxuICAgICAgdGhpcy5maWx0ZXJzID0geyBheGVzLCBjdWJlIH07XHJcbiAgICB9XHJcbiAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh0aGlzLnZhbHVlcywgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgaWYgKHRoaXMudmFsdWVzLnNlbmRlcklkKVxyXG4gICAgICB0aGlzLl9hY2NvdW50cy5nZXQodGhpcy52YWx1ZXMuc2VuZGVySWQpLlxyXG4gICAgICAgIHN1YnNjcmliZSh1ID0+IHRoaXMuc2VuZGVySWQuc2V0VmFsdWUodSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pKTtcclxuICAgIHRoaXMuY2hpcHMudmFsdWUgPSB0aGlzLnZhbHVlcy50YWc7XHJcbiAgfVxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9jdXMoKTtcclxuICB9XHJcbiAgZGlzcGxheShrZXlWYWx1ZSkge1xyXG4gICAgcmV0dXJuIGtleVZhbHVlID8ga2V5VmFsdWUudmFsdWUgOiBudWxsO1xyXG4gIH1cclxuICBjaGFuZ2UoYXhpczogc3RyaW5nLCBldnQ6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpIHtcclxuICAgIHRoaXMuZm9ybS5jb250cm9sc1theGlzXS5zZXRWYWx1ZShldnQub3B0aW9uLnZhbHVlLmtleSk7XHJcbiAgfVxyXG4gIGNsZWFyU2VuZGVyKCkge1xyXG4gICAgdGhpcy5zZW5kZXJJZC5zZXRWYWx1ZShudWxsKTtcclxuICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHsgc2VuZGVySWQ6IG51bGwgfSk7XHJcbiAgfVxyXG4gIGF4ZXNDaGFuZ2UoYXhlczogQXhlc01hcCkge1xyXG4gICAgY29uc3QgdmFsdWUgPSB7IC4uLnRoaXMuZm9ybS52YWx1ZSwgLi4uYXhlcyB9O1xyXG4gICAgY2xlYW51cCh2YWx1ZSk7XHJcbiAgICB0aGlzLnZhbHVlc0NoYW5nZS5lbWl0KHZhbHVlKTtcclxuICB9XHJcbiAgdG9nZ2xlVGFnKGV2dDogTWF0Q2hpcExpc3Rib3hDaGFuZ2UpIHtcclxuICAgIHRoaXMuZm9ybS5jb250cm9scy50YWcuc2V0VmFsdWUodGhpcy5mb3JtLmNvbnRyb2xzLnRhZy52YWx1ZSAhPT0gZXZ0LnZhbHVlID8gZXZ0LnZhbHVlIDogbnVsbCk7XHJcbiAgfVxyXG4gIGRpc3BsYXlGbihpdGVtOiBVc2VySW5mbyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gaXRlbSA/IGl0ZW0ubmFtZSA6IHVuZGVmaW5lZDtcclxuICB9XHJcbiAgZHJvcChldnQ6IENka0RyYWdEcm9wPHN0cmluZywgYW55Pikge1xyXG4gICAgZXZ0Lml0ZW0uZGF0YTtcclxuICB9XHJcbiAgc2VuZGVyU2VsZWN0ZWQoZTogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCkge1xyXG4gICAgY29uc3QgaW5mbyA9IGUub3B0aW9uLnZhbHVlIGFzIFVzZXJJbmZvO1xyXG4gICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoeyBzZW5kZXJJZDogaW5mbyA/IGluZm8uaWQgOiBudWxsIH0pO1xyXG4gIH1cclxuICBmb2N1cygpIHtcclxuICAgIGlmICh0aGlzLmNvbnRhaW5zKSB0aGlzLmNvbnRhaW5zLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgIGVsc2UgaWYgKHRoaXMuc2VuZGVyKSB0aGlzLnNlbmRlci5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Rlc3Ryb3kubmV4dCgpO1xyXG4gICAgdGhpcy5fZGVzdHJveS5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEJyb3dzZUZpbHRlckFyZ3Mge1xyXG4gIGZvcm0/OiBzdHJpbmc7XHJcbiAgZmxhZz86IGJvb2xlYW47XHJcbiAgc3RhdGU/OiBzdHJpbmc7XHJcbiAgY29udGFpbnM/OiBzdHJpbmc7XHJcbiAgc2VuZGVySWQ/OiBzdHJpbmc7XHJcbiAgdGFnPzogc3RyaW5nO1xyXG59XHJcbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNsYXNzPVwiY29sdW1uIGdhcFwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiPlxuICBAaWYgKCFleGNsdWRlIHx8IGV4Y2x1ZGUuaW5kZXhPZignY29udGFpbnMnKSA8IDApIHtcbiAgPG1hdC1mb3JtLWZpZWxkIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIj5cbiAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiY29udGFpbnNcIiBwbGFjZWhvbGRlcj1cInt7J0NvbnRhaW5zJyB8IHRyYW5zbGF0ZX19XCIgI2NvbnRhaW5zPlxuICAgIEBpZiAoZm9ybS52YWx1ZS5jb250YWlucykge1xuICAgIDxidXR0b24gbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvbiBhcmlhLWxhYmVsPVwiXCIgKGNsaWNrKT1cImZvcm0uY29udHJvbHMuY29udGFpbnMuc2V0VmFsdWUobnVsbClcIj5cbiAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG4gICAgfVxuICA8L21hdC1mb3JtLWZpZWxkPlxuICB9XG4gIDxtYXQtZm9ybS1maWVsZCBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCI+XG4gICAgPGlucHV0IG1hdElucHV0IFttYXRBdXRvY29tcGxldGVdPVwic2VuZGVyc1wiIFtwbGFjZWhvbGRlcl09XCInU2VuZGVyJyB8IHRyYW5zbGF0ZVwiIFtmb3JtQ29udHJvbF09XCJzZW5kZXJJZFwiICNzZW5kZXIgLz5cbiAgICA8bWF0LWF1dG9jb21wbGV0ZSAjc2VuZGVycyBbZGlzcGxheVdpdGhdPVwiZGlzcGxheUZuXCIgKG9wdGlvblNlbGVjdGVkKT1cInNlbmRlclNlbGVjdGVkKCRldmVudClcIj5cbiAgICAgIEBmb3IgKHUgb2Ygc2VuZGVycyQgfCBhc3luYzsgdHJhY2sgdSkge1xuICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cInVcIj5cbiAgICAgICAgPHNwYW4+e3t1Lm5hbWV9fTwvc3Bhbj5cbiAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgIH1cbiAgICA8L21hdC1hdXRvY29tcGxldGU+XG4gICAgQGlmIChzZW5kZXJJZC52YWx1ZSkge1xuICAgIDxidXR0b24gbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiY2xlYXJTZW5kZXIoKVwiPjxtYXQtaWNvbj5jbGVhcjwvbWF0LWljb24+PC9idXR0b24+XG4gICAgfVxuICA8L21hdC1mb3JtLWZpZWxkPlxuICA8bWF0LWZvcm0tZmllbGQgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiPlxuICAgIDxtYXQtc2VsZWN0IFtwbGFjZWhvbGRlcl09XCInU3RhdHVzJ3x0cmFuc2xhdGVcIiBmb3JtQ29udHJvbE5hbWU9XCJzdGF0ZVwiPlxuICAgICAgPG1hdC1vcHRpb24+XG4gICAgICAgIHt7ICdBbGwnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L21hdC1vcHRpb24+XG4gICAgICBAZm9yIChzIG9mIHN0YXRlczsgdHJhY2sgcykge1xuICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cInMubmFtZVwiPlxuICAgICAgICB7e3MudGl0bGV9fVxuICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgfVxuICAgIDwvbWF0LXNlbGVjdD5cbiAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPG1hdC1mb3JtLWZpZWxkIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIj5cbiAgICA8bWF0LXNlbGVjdCBbcGxhY2Vob2xkZXJdPVwiJ0Zvcm0nIHwgdHJhbnNsYXRlXCIgZm9ybUNvbnRyb2xOYW1lPVwiZm9ybVwiPlxuICAgICAgPG1hdC1vcHRpb24+XG4gICAgICAgIHt7ICdBbGwnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L21hdC1vcHRpb24+XG4gICAgICBAZm9yIChmIG9mIGZvcm1zOyB0cmFjayBmKSB7XG4gICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiZi5uYW1lXCI+e3tmLnRpdGxlfX08L21hdC1vcHRpb24+XG4gICAgICB9XG4gICAgPC9tYXQtc2VsZWN0PlxuICA8L21hdC1mb3JtLWZpZWxkPlxuICA8bWF0LWNoaXAtbGlzdGJveCBpZD1cInRhZ3NcIiAoY2hhbmdlKT1cInRvZ2dsZVRhZygkZXZlbnQpXCI+XG4gICAgQGZvciAodGFnIG9mIHRhZ3M7IHRyYWNrIHRhZykge1xuICAgIDxtYXQtY2hpcC1vcHRpb24gY29sb3I9XCJhY2NlbnRcIj5cbiAgICAgIHt7dGFnfX1cbiAgICA8L21hdC1jaGlwLW9wdGlvbj5cbiAgICB9XG4gIDwvbWF0LWNoaXAtbGlzdGJveD5cbiAgQGlmIChmaWx0ZXJzKSB7XG4gIDxiaXpkb2MtY3ViZS1maWx0ZXIgY2xhc3M9XCJjdWJlLWZpbHRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgW2N1YmVdPVwiZmlsdGVycy5jdWJlXCJcbiAgICAgICAgICAgICAgICAgICAgICBbaW5jbHVkZV09XCJmaWx0ZXJzLmF4ZXNcIlxuICAgICAgICAgICAgICAgICAgICAgIFtheGVzXT1cInZhbHVlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgKGF4ZXNDaGFuZ2UpPVwiYXhlc0NoYW5nZSgkZXZlbnQpXCI+PC9iaXpkb2MtY3ViZS1maWx0ZXI+XG4gIH1cbjwvZm9ybT5cbiJdfQ==
|