@bizdoc/core 3.2.10 → 3.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/themes/brown.min.css +1 -1
- package/assets/themes/dark.min.css +52 -6
- package/assets/themes/deep-purple-light-blue.min.css +1 -1
- package/assets/themes/deep-purple-teal.min.css +1 -1
- package/assets/themes/default.min.css +52 -8
- package/assets/themes/green.min.css +1 -1
- package/assets/themes/indigo-amber.min.css +1 -1
- package/assets/themes/indigo.min.css +1 -1
- package/fesm2022/bizdoc-core.mjs +2129 -1873
- package/fesm2022/bizdoc-core.mjs.map +1 -1
- package/lib/admin/admin-menu.component.d.ts +1 -3
- package/lib/admin/architecture/designer.base.d.ts +3 -3
- package/lib/admin/architecture/elements/form.component.d.ts +1 -1
- package/lib/compose/form-ref.d.ts +1 -0
- package/lib/compose/trace/trace.base.d.ts +1 -1
- package/lib/core/base.d.ts +5 -0
- package/lib/core/fields/options.base.d.ts +2 -2
- package/lib/core/inputs/combination-picker-body.d.ts +0 -2
- package/lib/core/inputs/combination-picker.d.ts +1 -1
- package/lib/core/session.service.d.ts +2 -2
- package/lib/core/tagging/tagging.component-base.d.ts +1 -1
- package/lib/core/translate.service.d.ts +2 -2
- package/lib/cube/cube.service.d.ts +1 -1
- package/lib/cube/matrix/matrix.base.d.ts +1 -1
- package/lib/cube/view-base.d.ts +1 -1
- package/lib/dashboard/cube/cube-analysis.base.d.ts +1 -1
- package/lib/home/home-base.component.d.ts +1 -1
- package/lib/home/home.desktop.component.d.ts +5 -3
- package/lib/notifications/types/notification-base.d.ts +1 -1
- package/lib/reports/cube/usage-base.d.ts +1 -1
- package/lib/views/cube/cube-base.d.ts +1 -1
- package/package.json +31 -33
- package/esm2022/bizdoc-core.mjs +0 -5
- package/esm2022/lib/admin/admin-dismiss.service.mjs +0 -28
- package/esm2022/lib/admin/admin-menu.component.mjs +0 -24
- package/esm2022/lib/admin/architecture/cube-axes-filter.component.mjs +0 -93
- package/esm2022/lib/admin/architecture/declarations.mjs +0 -79
- package/esm2022/lib/admin/architecture/designer-element.component.mjs +0 -270
- package/esm2022/lib/admin/architecture/designer-privileges.component.mjs +0 -96
- package/esm2022/lib/admin/architecture/designer.base.mjs +0 -136
- package/esm2022/lib/admin/architecture/designer.component.mjs +0 -396
- package/esm2022/lib/admin/architecture/elements/action.component.mjs +0 -43
- package/esm2022/lib/admin/architecture/elements/analysis-view.component.mjs +0 -50
- package/esm2022/lib/admin/architecture/elements/analysis-widget.component.mjs +0 -49
- package/esm2022/lib/admin/architecture/elements/anomaly-rule.component.mjs +0 -29
- package/esm2022/lib/admin/architecture/elements/attribute.component.mjs +0 -35
- package/esm2022/lib/admin/architecture/elements/box-form.component.mjs +0 -49
- package/esm2022/lib/admin/architecture/elements/configuration-datasource.component.mjs +0 -66
- package/esm2022/lib/admin/architecture/elements/control.component.mjs +0 -21
- package/esm2022/lib/admin/architecture/elements/cube-index-utility.component.mjs +0 -32
- package/esm2022/lib/admin/architecture/elements/cube-view.component.mjs +0 -34
- package/esm2022/lib/admin/architecture/elements/cube.component.mjs +0 -254
- package/esm2022/lib/admin/architecture/elements/document-state-widget.component.mjs +0 -40
- package/esm2022/lib/admin/architecture/elements/documents-report.component.mjs +0 -34
- package/esm2022/lib/admin/architecture/elements/documents-widget.component.mjs +0 -40
- package/esm2022/lib/admin/architecture/elements/explore-view.component.mjs +0 -35
- package/esm2022/lib/admin/architecture/elements/folder.component.mjs +0 -56
- package/esm2022/lib/admin/architecture/elements/form-invite.dialog.mjs +0 -126
- package/esm2022/lib/admin/architecture/elements/form.component.mjs +0 -156
- package/esm2022/lib/admin/architecture/elements/guide.component.mjs +0 -53
- package/esm2022/lib/admin/architecture/elements/job.component.mjs +0 -57
- package/esm2022/lib/admin/architecture/elements/matrix-view.component.mjs +0 -98
- package/esm2022/lib/admin/architecture/elements/node.component.mjs +0 -18
- package/esm2022/lib/admin/architecture/elements/parallel-view.component.mjs +0 -38
- package/esm2022/lib/admin/architecture/elements/performance-report.component.mjs +0 -32
- package/esm2022/lib/admin/architecture/elements/performance-widget.component.mjs +0 -34
- package/esm2022/lib/admin/architecture/elements/pivot-view.component.mjs +0 -40
- package/esm2022/lib/admin/architecture/elements/policy.component.mjs +0 -18
- package/esm2022/lib/admin/architecture/elements/report.component.mjs +0 -29
- package/esm2022/lib/admin/architecture/elements/return-to-role-action.component.mjs +0 -33
- package/esm2022/lib/admin/architecture/elements/role.component.mjs +0 -43
- package/esm2022/lib/admin/architecture/elements/rule.component.mjs +0 -18
- package/esm2022/lib/admin/architecture/elements/source.component.mjs +0 -25
- package/esm2022/lib/admin/architecture/elements/state.component.mjs +0 -44
- package/esm2022/lib/admin/architecture/elements/sum-view.component.mjs +0 -38
- package/esm2022/lib/admin/architecture/elements/tasks-report.component.mjs +0 -39
- package/esm2022/lib/admin/architecture/elements/type.component.mjs +0 -83
- package/esm2022/lib/admin/architecture/elements/usage-report.component.mjs +0 -64
- package/esm2022/lib/admin/architecture/elements/utility.component.mjs +0 -18
- package/esm2022/lib/admin/architecture/elements/view.component.mjs +0 -18
- package/esm2022/lib/admin/architecture/elements/widget.component.mjs +0 -29
- package/esm2022/lib/admin/architecture/icon-picker.component.mjs +0 -173
- package/esm2022/lib/admin/core/ace.input.mjs +0 -144
- package/esm2022/lib/admin/core/color-picker.input.mjs +0 -183
- package/esm2022/lib/admin/core/localized-string.component.mjs +0 -129
- package/esm2022/lib/admin/core/search.input.mjs +0 -52
- package/esm2022/lib/admin/diff/configuration-diff.component.mjs +0 -573
- package/esm2022/lib/admin/document-trace/document-trace.component.mjs +0 -537
- package/esm2022/lib/admin/document-trace/reassign.dialog.mjs +0 -39
- package/esm2022/lib/admin/document-trace/timeline.mjs +0 -2
- package/esm2022/lib/admin/document-trace/trace-element.component.mjs +0 -125
- package/esm2022/lib/admin/form/designer/box-designer.component.mjs +0 -270
- package/esm2022/lib/admin/form/designer/declarations.mjs +0 -2
- package/esm2022/lib/admin/form/designer/design-control.component.mjs +0 -41
- package/esm2022/lib/admin/form/designer/properties.component.mjs +0 -71
- package/esm2022/lib/admin/form/designer/section.component.mjs +0 -53
- package/esm2022/lib/admin/form/designer/settings.component.mjs +0 -51
- package/esm2022/lib/admin/form/form.resolve.service.mjs +0 -18
- package/esm2022/lib/admin/form/workflow/node-ref.mjs +0 -8
- package/esm2022/lib/admin/form/workflow/node.component.mjs +0 -156
- package/esm2022/lib/admin/form/workflow/role-node.component.mjs +0 -88
- package/esm2022/lib/admin/form/workflow/workflow.component.mjs +0 -586
- package/esm2022/lib/admin/indices/manage-cube-index.component.mjs +0 -160
- package/esm2022/lib/admin/patterns/patterns.component.mjs +0 -180
- package/esm2022/lib/admin/permissions/permissions.component.mjs +0 -98
- package/esm2022/lib/admin/positions/positions-popup.component.mjs +0 -75
- package/esm2022/lib/admin/positions/positions.component.mjs +0 -463
- package/esm2022/lib/admin/profiler/outofoffice.component.mjs +0 -156
- package/esm2022/lib/admin/profiler/profiler.component.mjs +0 -284
- package/esm2022/lib/admin/system.service.mjs +0 -127
- package/esm2022/lib/admin/utility-ref.mjs +0 -39
- package/esm2022/lib/admin/utility-wrapper.component.mjs +0 -53
- package/esm2022/lib/admin/utility.pane.component.mjs +0 -48
- package/esm2022/lib/app.component.mjs +0 -73
- package/esm2022/lib/bizdoc.module.mjs +0 -110
- package/esm2022/lib/browse/browse-items.component.mjs +0 -496
- package/esm2022/lib/browse/browse.mobile.component.mjs +0 -102
- package/esm2022/lib/browse/browse.pane.component.mjs +0 -169
- package/esm2022/lib/browse/expanded-item/expanded-item.component.mjs +0 -316
- package/esm2022/lib/browse/filter/filter.component.mjs +0 -140
- package/esm2022/lib/browse/folders-menu.component.mjs +0 -49
- package/esm2022/lib/chat/chat-info.mjs +0 -77
- package/esm2022/lib/chat/chat.mobile.component.mjs +0 -24
- package/esm2022/lib/chat/chat.service.mjs +0 -122
- package/esm2022/lib/chat/contacts.component.mjs +0 -107
- package/esm2022/lib/chat/contacts.pane.component.mjs +0 -26
- package/esm2022/lib/chat/conversation.component.mjs +0 -196
- package/esm2022/lib/chat/conversation.pane.component.mjs +0 -46
- package/esm2022/lib/compose/action/action-picker.component.mjs +0 -82
- package/esm2022/lib/compose/action/action-ref.mjs +0 -19
- package/esm2022/lib/compose/action/action.base.mjs +0 -50
- package/esm2022/lib/compose/action/action.dialog.mjs +0 -62
- package/esm2022/lib/compose/action/action.pane.dialog.exp.mjs +0 -68
- package/esm2022/lib/compose/action/assign-action.component.mjs +0 -77
- package/esm2022/lib/compose/action/moveto-action.component.mjs +0 -90
- package/esm2022/lib/compose/action/return-action.component.mjs +0 -51
- package/esm2022/lib/compose/attachments/attachments.component.mjs +0 -130
- package/esm2022/lib/compose/attachments/preview/attachment-preview.component.mjs +0 -157
- package/esm2022/lib/compose/attachments/progress-button.directive.mjs +0 -25
- package/esm2022/lib/compose/box/box.component.mjs +0 -44
- package/esm2022/lib/compose/box/control.component.mjs +0 -50
- package/esm2022/lib/compose/box/row.component.mjs +0 -41
- package/esm2022/lib/compose/can-deactivate-changes.service.mjs +0 -27
- package/esm2022/lib/compose/comments/comment.component.mjs +0 -188
- package/esm2022/lib/compose/comments/comments.component.mjs +0 -226
- package/esm2022/lib/compose/comments/comments.pane.component.mjs +0 -40
- package/esm2022/lib/compose/comments/edit-comment.component.mjs +0 -32
- package/esm2022/lib/compose/comments/edits.component.mjs +0 -30
- package/esm2022/lib/compose/comments/quick-comment.component.exp.mjs +0 -64
- package/esm2022/lib/compose/comments/votes.component.mjs +0 -42
- package/esm2022/lib/compose/compose-resolve.service.mjs +0 -34
- package/esm2022/lib/compose/compose.mobile.component.mjs +0 -114
- package/esm2022/lib/compose/compose.pane.component.mjs +0 -202
- package/esm2022/lib/compose/copy/copy.dialog.mjs +0 -45
- package/esm2022/lib/compose/dismiss.service.mjs +0 -25
- package/esm2022/lib/compose/document-resolve.service.mjs +0 -33
- package/esm2022/lib/compose/document-resolver.service.mjs +0 -17
- package/esm2022/lib/compose/document.component.mjs +0 -48
- package/esm2022/lib/compose/document.mobile.component.mjs +0 -23
- package/esm2022/lib/compose/document.pane.component.mjs +0 -27
- package/esm2022/lib/compose/events/events.component.mjs +0 -29
- package/esm2022/lib/compose/form-ref.mjs +0 -43
- package/esm2022/lib/compose/form-selector/form-selector.sheet.mjs +0 -57
- package/esm2022/lib/compose/form.component.mjs +0 -512
- package/esm2022/lib/compose/new-menu.component.mjs +0 -94
- package/esm2022/lib/compose/overlay.component.exp.mjs +0 -71
- package/esm2022/lib/compose/privilage.directive.mjs +0 -64
- package/esm2022/lib/compose/recipient-resolver.service.mjs +0 -18
- package/esm2022/lib/compose/state.component.mjs +0 -37
- package/esm2022/lib/compose/tag/tags.component.mjs +0 -89
- package/esm2022/lib/compose/trace/flow.component.mjs +0 -687
- package/esm2022/lib/compose/trace/people.component.mjs +0 -39
- package/esm2022/lib/compose/trace/trace.base.mjs +0 -79
- package/esm2022/lib/compose/trace/trace.component.mjs +0 -353
- package/esm2022/lib/compose/trace/trace.pane.component.mjs +0 -48
- package/esm2022/lib/compose/version-compare/version-compare.component.mjs +0 -58
- package/esm2022/lib/compose/version-compare/version-compare.directive.mjs +0 -343
- package/esm2022/lib/compose/version-compare/version.pane.component.mjs +0 -53
- package/esm2022/lib/core/account.service.mjs +0 -38
- package/esm2022/lib/core/animated-icon/animated-icon.directive.mjs +0 -17
- package/esm2022/lib/core/animations.mjs +0 -168
- package/esm2022/lib/core/authentication.mjs +0 -4
- package/esm2022/lib/core/avatar/avatar.component.mjs +0 -111
- package/esm2022/lib/core/base.mjs +0 -2
- package/esm2022/lib/core/checkbox.mjs +0 -38
- package/esm2022/lib/core/colors.mjs +0 -322
- package/esm2022/lib/core/component-factory-resolver.mjs +0 -48
- package/esm2022/lib/core/configuration.mjs +0 -17
- package/esm2022/lib/core/datasource.service.mjs +0 -75
- package/esm2022/lib/core/decorators.mjs +0 -46
- package/esm2022/lib/core/document-factory.service.mjs +0 -156
- package/esm2022/lib/core/fields/address.designer.mjs +0 -39
- package/esm2022/lib/core/fields/address.field.mjs +0 -65
- package/esm2022/lib/core/fields/autocomplete.field.mjs +0 -136
- package/esm2022/lib/core/fields/axes-picker.designer.mjs +0 -59
- package/esm2022/lib/core/fields/axes-picker.field.mjs +0 -46
- package/esm2022/lib/core/fields/checkbox.designer.mjs +0 -38
- package/esm2022/lib/core/fields/checkbox.field.mjs +0 -35
- package/esm2022/lib/core/fields/checklist.designer.mjs +0 -98
- package/esm2022/lib/core/fields/checklist.field.mjs +0 -36
- package/esm2022/lib/core/fields/date-range.designer.mjs +0 -43
- package/esm2022/lib/core/fields/date-range.field.mjs +0 -46
- package/esm2022/lib/core/fields/date.designer.mjs +0 -40
- package/esm2022/lib/core/fields/date.field.mjs +0 -40
- package/esm2022/lib/core/fields/expression.field.mjs +0 -87
- package/esm2022/lib/core/fields/file.designer.mjs +0 -39
- package/esm2022/lib/core/fields/file.field.mjs +0 -35
- package/esm2022/lib/core/fields/html.designer.mjs +0 -61
- package/esm2022/lib/core/fields/html.field.mjs +0 -44
- package/esm2022/lib/core/fields/input.designer.mjs +0 -38
- package/esm2022/lib/core/fields/input.field.mjs +0 -54
- package/esm2022/lib/core/fields/localized-string.field.mjs +0 -49
- package/esm2022/lib/core/fields/numeric.designer.mjs +0 -72
- package/esm2022/lib/core/fields/numeric.field.mjs +0 -37
- package/esm2022/lib/core/fields/options.base.mjs +0 -41
- package/esm2022/lib/core/fields/options.component.mjs +0 -58
- package/esm2022/lib/core/fields/radio-button.designer.mjs +0 -39
- package/esm2022/lib/core/fields/radio-button.field.mjs +0 -33
- package/esm2022/lib/core/fields/select.designer.mjs +0 -104
- package/esm2022/lib/core/fields/select.field.mjs +0 -36
- package/esm2022/lib/core/fields/signature.designer.mjs +0 -37
- package/esm2022/lib/core/fields/signature.field.mjs +0 -52
- package/esm2022/lib/core/fields/switch.field.mjs +0 -35
- package/esm2022/lib/core/fields/tags.designer.mjs +0 -28
- package/esm2022/lib/core/fields/tags.field.mjs +0 -51
- package/esm2022/lib/core/fields/textarea.designer.mjs +0 -33
- package/esm2022/lib/core/fields/textarea.field.mjs +0 -37
- package/esm2022/lib/core/fields/time.designer.mjs +0 -41
- package/esm2022/lib/core/fields/time.field.mjs +0 -39
- package/esm2022/lib/core/fields/timespan.field.mjs +0 -82
- package/esm2022/lib/core/fields/yesno.designer.mjs +0 -52
- package/esm2022/lib/core/fields/yesno.field.mjs +0 -34
- package/esm2022/lib/core/firebase.service.mjs +0 -51
- package/esm2022/lib/core/functions.mjs +0 -225
- package/esm2022/lib/core/guide/guide.component.mjs +0 -220
- package/esm2022/lib/core/guide/guide.service.mjs +0 -124
- package/esm2022/lib/core/guide/help-tip.component.mjs +0 -52
- package/esm2022/lib/core/http.interceptor.mjs +0 -63
- package/esm2022/lib/core/hub.service.mjs +0 -117
- package/esm2022/lib/core/identity/identity.component.mjs +0 -66
- package/esm2022/lib/core/info/attachment-info.service.mjs +0 -53
- package/esm2022/lib/core/info/document-info.service.mjs +0 -21
- package/esm2022/lib/core/info/location-info.component.mjs +0 -60
- package/esm2022/lib/core/info/map-info.mjs +0 -42
- package/esm2022/lib/core/inputs/address.input.mjs +0 -203
- package/esm2022/lib/core/inputs/auto-complete.input.mjs +0 -273
- package/esm2022/lib/core/inputs/combination-picker-body.mjs +0 -171
- package/esm2022/lib/core/inputs/combination-picker.mjs +0 -285
- package/esm2022/lib/core/inputs/combination-pool.mjs +0 -105
- package/esm2022/lib/core/inputs/file.input.mjs +0 -432
- package/esm2022/lib/core/inputs/select.input.mjs +0 -254
- package/esm2022/lib/core/inputs/signature.input.mjs +0 -150
- package/esm2022/lib/core/inputs/time-picker.mjs +0 -195
- package/esm2022/lib/core/inputs/timespan.input.mjs +0 -180
- package/esm2022/lib/core/layout.component.mjs +0 -93
- package/esm2022/lib/core/lottie-animation.exp.mjs +0 -49
- package/esm2022/lib/core/mailbox.service.mjs +0 -445
- package/esm2022/lib/core/models.mjs +0 -25
- package/esm2022/lib/core/none.component.mjs +0 -37
- package/esm2022/lib/core/pipes/action.pipe.mjs +0 -25
- package/esm2022/lib/core/pipes/calendar.pipe.mjs +0 -72
- package/esm2022/lib/core/pipes/date-format.pipe.mjs +0 -19
- package/esm2022/lib/core/pipes/daterange.pipe.mjs +0 -62
- package/esm2022/lib/core/pipes/difference.pipe.mjs +0 -15
- package/esm2022/lib/core/pipes/duration-format.pipe.mjs +0 -48
- package/esm2022/lib/core/pipes/duration.pipe.mjs +0 -19
- package/esm2022/lib/core/pipes/filter.pipe.mjs +0 -25
- package/esm2022/lib/core/pipes/form.pipe.mjs +0 -25
- package/esm2022/lib/core/pipes/join.pipe.mjs +0 -18
- package/esm2022/lib/core/pipes/localized-string.pipe.mjs +0 -26
- package/esm2022/lib/core/pipes/role.pipe.mjs +0 -25
- package/esm2022/lib/core/pipes/sanitize-html.pipe.mjs +0 -18
- package/esm2022/lib/core/pipes/sort.pipe.mjs +0 -42
- package/esm2022/lib/core/pipes/state.pipe.mjs +0 -25
- package/esm2022/lib/core/pipes/time-ago.pipe.mjs +0 -51
- package/esm2022/lib/core/pipes/to-now.pipe.mjs +0 -66
- package/esm2022/lib/core/pipes/translate.pipe.mjs +0 -58
- package/esm2022/lib/core/pipes/type-value.pipe.mjs +0 -42
- package/esm2022/lib/core/pipes/user-name.pipe.mjs +0 -21
- package/esm2022/lib/core/popup/popup-ref.mjs +0 -20
- package/esm2022/lib/core/popup/popup.component.mjs +0 -36
- package/esm2022/lib/core/popup/popup.service.mjs +0 -158
- package/esm2022/lib/core/popup/tooltip.directive.mjs +0 -81
- package/esm2022/lib/core/prompt/ask/ask.dialog.mjs +0 -29
- package/esm2022/lib/core/prompt/mask/mask.component.mjs +0 -21
- package/esm2022/lib/core/prompt.service.mjs +0 -88
- package/esm2022/lib/core/router.mjs +0 -37
- package/esm2022/lib/core/save-changes.dialog.mjs +0 -18
- package/esm2022/lib/core/session.service.mjs +0 -291
- package/esm2022/lib/core/slots/pane-ref.mjs +0 -152
- package/esm2022/lib/core/slots/router.directive.mjs +0 -68
- package/esm2022/lib/core/slots/router.service.mjs +0 -40
- package/esm2022/lib/core/slots/slots.component.mjs +0 -1193
- package/esm2022/lib/core/sticky-toolbar.exp.mjs +0 -33
- package/esm2022/lib/core/tagging/documents.component.mjs +0 -25
- package/esm2022/lib/core/tagging/edit-input.component.mjs +0 -238
- package/esm2022/lib/core/tagging/emoji.component.mjs +0 -35
- package/esm2022/lib/core/tagging/tagging-item.directive.mjs +0 -39
- package/esm2022/lib/core/tagging/tagging.component-base.mjs +0 -29
- package/esm2022/lib/core/tagging/tagging.directive.mjs +0 -136
- package/esm2022/lib/core/tagging/tagging.pipe.mjs +0 -72
- package/esm2022/lib/core/tagging/users.component.mjs +0 -32
- package/esm2022/lib/core/translate.service.mjs +0 -125
- package/esm2022/lib/core/translations.mjs +0 -1068
- package/esm2022/lib/core/virtual-tabs.component.exp.mjs +0 -84
- package/esm2022/lib/core/window-title.service.mjs +0 -65
- package/esm2022/lib/cube/accum/accum.component.mjs +0 -262
- package/esm2022/lib/cube/chart/chart.component.mjs +0 -345
- package/esm2022/lib/cube/cube-info.service.mjs +0 -103
- package/esm2022/lib/cube/cube-menu.component.mjs +0 -25
- package/esm2022/lib/cube/cube-view.component.mjs +0 -186
- package/esm2022/lib/cube/cube.service.mjs +0 -446
- package/esm2022/lib/cube/declarations.mjs +0 -2
- package/esm2022/lib/cube/explore/document-item.component.mjs +0 -38
- package/esm2022/lib/cube/explore/explore-item.component.mjs +0 -27
- package/esm2022/lib/cube/explore/explore-items.component.mjs +0 -193
- package/esm2022/lib/cube/explore/explore.pane.component.mjs +0 -78
- package/esm2022/lib/cube/explore/item-resolver.service.mjs +0 -30
- package/esm2022/lib/cube/explore/item.pane.component.mjs +0 -21
- package/esm2022/lib/cube/filter/filter-tags.component.exp.mjs +0 -75
- package/esm2022/lib/cube/filter/filter.component.mjs +0 -137
- package/esm2022/lib/cube/grid/grid.component.mjs +0 -210
- package/esm2022/lib/cube/matrix/matrix.base.mjs +0 -124
- package/esm2022/lib/cube/matrix/matrix.mobile.component.mjs +0 -67
- package/esm2022/lib/cube/matrix/matrix.pane.component.mjs +0 -78
- package/esm2022/lib/cube/matrix/popup.component.mjs +0 -70
- package/esm2022/lib/cube/matrix/table.component.mjs +0 -512
- package/esm2022/lib/cube/parallel/item.mjs +0 -40
- package/esm2022/lib/cube/parallel/parallel.component.mjs +0 -162
- package/esm2022/lib/cube/pivot/pivot.component.mjs +0 -564
- package/esm2022/lib/cube/spreadsheet/spreadsheet.component.mjs +0 -382
- package/esm2022/lib/cube/spreadsheet/spreadsheet.container.exp.mjs +0 -19
- package/esm2022/lib/cube/sum/sum.component.mjs +0 -403
- package/esm2022/lib/cube/view-base.mjs +0 -74
- package/esm2022/lib/cube/view.mobile.component.mjs +0 -121
- package/esm2022/lib/cube/view.pane.component.mjs +0 -99
- package/esm2022/lib/dashboard/actions/actions.widget.mjs +0 -127
- package/esm2022/lib/dashboard/cube/accum-cube.widget.mjs +0 -151
- package/esm2022/lib/dashboard/cube/compare.widget.mjs +0 -216
- package/esm2022/lib/dashboard/cube/cube-analysis.base.mjs +0 -117
- package/esm2022/lib/dashboard/cube/cube-analysis.widget.mjs +0 -50
- package/esm2022/lib/dashboard/cube/cube-chart.widget.mjs +0 -146
- package/esm2022/lib/dashboard/cube/document-state.widget.mjs +0 -85
- package/esm2022/lib/dashboard/cube/documents.widget.mjs +0 -66
- package/esm2022/lib/dashboard/cube/filter/filter.component.mjs +0 -61
- package/esm2022/lib/dashboard/dashboard.component.mjs +0 -67
- package/esm2022/lib/dashboard/dashboard.pane.component.mjs +0 -18
- package/esm2022/lib/dashboard/recents/recents.widget.mjs +0 -98
- package/esm2022/lib/dashboard/score/activity.widget.mjs +0 -177
- package/esm2022/lib/dashboard/score/compare-groups.widget.mjs +0 -215
- package/esm2022/lib/dashboard/score/peers-performance.widget.mjs +0 -251
- package/esm2022/lib/dashboard/score/pending-results.widget.mjs +0 -59
- package/esm2022/lib/dashboard/score/personal-score.widget.mjs +0 -222
- package/esm2022/lib/dashboard/widget-item.component.mjs +0 -91
- package/esm2022/lib/dashboard/widget-ref.mjs +0 -18
- package/esm2022/lib/designer.module.mjs +0 -106
- package/esm2022/lib/desktop.module.mjs +0 -140
- package/esm2022/lib/home/about/about.dialog.mjs +0 -25
- package/esm2022/lib/home/home-base.component.mjs +0 -92
- package/esm2022/lib/home/home.desktop.component.mjs +0 -286
- package/esm2022/lib/home/home.mobile.component.mjs +0 -131
- package/esm2022/lib/home/notifications/notifications.component.mjs +0 -64
- package/esm2022/lib/home/outofoffice/outofoffice.component.mjs +0 -37
- package/esm2022/lib/home/sign/sign.component.mjs +0 -56
- package/esm2022/lib/impersonate/impersonate.component.mjs +0 -77
- package/esm2022/lib/mobile.module.mjs +0 -63
- package/esm2022/lib/modules/chart.module.mjs +0 -44
- package/esm2022/lib/modules/circular-gauge.module.mjs +0 -20
- package/esm2022/lib/modules/date.adapter.mjs +0 -23
- package/esm2022/lib/modules/datepicker.intl.mjs +0 -41
- package/esm2022/lib/modules/dayjs.module.mjs +0 -43
- package/esm2022/lib/modules/diagram.module.mjs +0 -43
- package/esm2022/lib/modules/gantt.module.mjs +0 -22
- package/esm2022/lib/modules/grid.module.mjs +0 -26
- package/esm2022/lib/modules/linear-gauge.module.mjs +0 -17
- package/esm2022/lib/modules/material.module.mjs +0 -182
- package/esm2022/lib/modules/paginator.intl.mjs +0 -21
- package/esm2022/lib/modules/pivot.module.mjs +0 -24
- package/esm2022/lib/modules/schedule.module.mjs +0 -24
- package/esm2022/lib/modules/spreadsheet.module.mjs +0 -28
- package/esm2022/lib/modules/stepper.intl.mjs +0 -17
- package/esm2022/lib/modules/texteditor.module.mjs +0 -26
- package/esm2022/lib/notifications/filter.component.mjs +0 -24
- package/esm2022/lib/notifications/notifications-table.component.mjs +0 -105
- package/esm2022/lib/notifications/notifications.component-base.mjs +0 -50
- package/esm2022/lib/notifications/notifications.mobile.component.mjs +0 -20
- package/esm2022/lib/notifications/notifications.pane.component.mjs +0 -21
- package/esm2022/lib/notifications/notifications.service.mjs +0 -78
- package/esm2022/lib/notifications/types/commented.notification.mjs +0 -60
- package/esm2022/lib/notifications/types/cube-anomaly.notification.mjs +0 -58
- package/esm2022/lib/notifications/types/escalated.notification.mjs +0 -33
- package/esm2022/lib/notifications/types/invite.notification.mjs +0 -45
- package/esm2022/lib/notifications/types/liked.notification.mjs +0 -58
- package/esm2022/lib/notifications/types/long-running-task.notification.mjs +0 -31
- package/esm2022/lib/notifications/types/notification-base.mjs +0 -40
- package/esm2022/lib/notifications/types/nudge.notification.mjs +0 -31
- package/esm2022/lib/notifications/types/state-changed.notification.mjs +0 -30
- package/esm2022/lib/notifications/types/tagged.notification.mjs +0 -43
- package/esm2022/lib/notifications/types/text.notification.mjs +0 -23
- package/esm2022/lib/notifications/types/upcoming-event.notification.mjs +0 -36
- package/esm2022/lib/options/options.component.mjs +0 -308
- package/esm2022/lib/options/options.desktop.component.mjs +0 -26
- package/esm2022/lib/options/options.mobile.component.mjs +0 -23
- package/esm2022/lib/reports/arguments-component.mjs +0 -81
- package/esm2022/lib/reports/cube/documents.component.mjs +0 -38
- package/esm2022/lib/reports/cube/grid-documents.component.mjs +0 -72
- package/esm2022/lib/reports/cube/performance-hilo.component.mjs +0 -260
- package/esm2022/lib/reports/cube/performance-wind.component.mjs +0 -269
- package/esm2022/lib/reports/cube/table-documents.component.mjs +0 -57
- package/esm2022/lib/reports/cube/usage-args.component.mjs +0 -62
- package/esm2022/lib/reports/cube/usage-base.mjs +0 -79
- package/esm2022/lib/reports/cube/usage-chart.component.mjs +0 -354
- package/esm2022/lib/reports/cube/usage-pivot.component.mjs +0 -257
- package/esm2022/lib/reports/cube/usage.component.mjs +0 -40
- package/esm2022/lib/reports/report-ref.mjs +0 -38
- package/esm2022/lib/reports/report-viewer.component.mjs +0 -156
- package/esm2022/lib/reports/report.mobile.component.mjs +0 -127
- package/esm2022/lib/reports/report.pane.component.mjs +0 -109
- package/esm2022/lib/reports/reports-menu.component.mjs +0 -24
- package/esm2022/lib/reports/substitution/substitution.component.mjs +0 -39
- package/esm2022/lib/reports/table/table-view.component.mjs +0 -40
- package/esm2022/lib/reports/tasks/tasks.component.mjs +0 -95
- package/esm2022/lib/routes.desktop.mjs +0 -209
- package/esm2022/lib/routes.mobile.mjs +0 -84
- package/esm2022/lib/scheduler/schedule.component.mjs +0 -164
- package/esm2022/lib/scheduler/scheduler.mobile.component.mjs +0 -37
- package/esm2022/lib/scheduler/scheduler.pane.component.mjs +0 -50
- package/esm2022/lib/search/cube.component.mjs +0 -47
- package/esm2022/lib/search/declarations.mjs +0 -7
- package/esm2022/lib/search/document.component.mjs +0 -41
- package/esm2022/lib/search/guide.component.mjs +0 -28
- package/esm2022/lib/search/path.component.mjs +0 -44
- package/esm2022/lib/search/search.service.mjs +0 -155
- package/esm2022/lib/shared.module.mjs +0 -622
- package/esm2022/lib/system.module.mjs +0 -562
- package/esm2022/lib/views/cube/chart.component.mjs +0 -74
- package/esm2022/lib/views/cube/cube-base.mjs +0 -101
- package/esm2022/lib/views/cube/explore.component.mjs +0 -85
- package/esm2022/lib/views/cube/matrix.component.mjs +0 -101
- package/esm2022/lib/views/cube/parallel.component.mjs +0 -53
- package/esm2022/lib/views/cube/pivot.component.mjs +0 -50
- package/esm2022/lib/views/cube/sum.component.mjs +0 -66
- package/esm2022/lib/views/cube/view.component.mjs +0 -101
- package/esm2022/lib/views/document-view-ref.mjs +0 -27
- package/esm2022/lib/views/timeline/timeline.component.mjs +0 -329
- package/esm2022/lib/views/view-item.component.mjs +0 -68
- package/esm2022/lib/views/views.component.mjs +0 -32
- package/esm2022/lib/views/views.mobile.component.mjs +0 -21
- package/esm2022/lib/views/views.pane.component.mjs +0 -29
- package/esm2022/public-api.mjs +0 -182
@@ -1,188 +0,0 @@
|
|
1
|
-
import { Component, Input, Output, EventEmitter, ViewChild, Inject } from '@angular/core';
|
2
|
-
import { TemplatePortal } from '@angular/cdk/portal';
|
3
|
-
import { forkJoin, merge, of } from 'rxjs';
|
4
|
-
import { filter } from 'rxjs/operators';
|
5
|
-
import { BIZDOC_CONFIG } from '../../core/configuration';
|
6
|
-
import { EditCommentComponent } from './edit-comment.component';
|
7
|
-
import { CommentEditsComponent } from './edits.component';
|
8
|
-
import { CommentLikesComponent } from './votes.component';
|
9
|
-
import * as i0 from "@angular/core";
|
10
|
-
import * as i1 from "../../core/session.service";
|
11
|
-
import * as i2 from "../../core/prompt.service";
|
12
|
-
import * as i3 from "../../core/translate.service";
|
13
|
-
import * as i4 from "../../chat/chat-info";
|
14
|
-
import * as i5 from "../../core/account.service";
|
15
|
-
import * as i6 from "../../core/popup/popup.service";
|
16
|
-
import * as i7 from "@angular/cdk/overlay";
|
17
|
-
import * as i8 from "../../core/mailbox.service";
|
18
|
-
import * as i9 from "@angular/cdk/bidi";
|
19
|
-
import * as i10 from "@angular/material/divider";
|
20
|
-
import * as i11 from "@angular/material/button";
|
21
|
-
import * as i12 from "@angular/material/icon";
|
22
|
-
import * as i13 from "@angular/material/menu";
|
23
|
-
import * as i14 from "../../core/popup/tooltip.directive";
|
24
|
-
import * as i15 from "../../core/pipes/calendar.pipe";
|
25
|
-
import * as i16 from "../../core/pipes/time-ago.pipe";
|
26
|
-
import * as i17 from "../../core/pipes/translate.pipe";
|
27
|
-
import * as i18 from "../../core/pipes/sanitize-html.pipe";
|
28
|
-
import * as i19 from "../../core/tagging/tagging.pipe";
|
29
|
-
/** comment component*/
|
30
|
-
export class CommentComponent {
|
31
|
-
constructor(_session, _ps, _translate, _chat, _accounts, _popup, _overlay, _mailbox, _vc, _config) {
|
32
|
-
this._session = _session;
|
33
|
-
this._ps = _ps;
|
34
|
-
this._translate = _translate;
|
35
|
-
this._chat = _chat;
|
36
|
-
this._accounts = _accounts;
|
37
|
-
this._popup = _popup;
|
38
|
-
this._overlay = _overlay;
|
39
|
-
this._mailbox = _mailbox;
|
40
|
-
this._vc = _vc;
|
41
|
-
this._config = _config;
|
42
|
-
this.deleted = new EventEmitter();
|
43
|
-
this.reply = new EventEmitter();
|
44
|
-
this.name = '';
|
45
|
-
this.voting = !_config.comments || _config.comments.voting !== false;
|
46
|
-
}
|
47
|
-
ngOnInit() {
|
48
|
-
const me = this._session.userId, you = of('you');
|
49
|
-
this.me = (this.item.byId || this.item.userId) === me;
|
50
|
-
const whos = [this.item.userId === me ? you : this._accounts.get(this.item.userId)];
|
51
|
-
if (this.item.byId)
|
52
|
-
whos.push(this.item.byId === me ? you : this._accounts.get(this.item.byId));
|
53
|
-
if (this.item.parentId) {
|
54
|
-
const parent = this.model.comments.find(c => c.id == this.item.parentId), who = parent.byId || parent.userId;
|
55
|
-
whos.push(who == me ? you : this._accounts.get(who));
|
56
|
-
}
|
57
|
-
forkJoin(whos).subscribe(this._name.bind(this));
|
58
|
-
}
|
59
|
-
_name(users) {
|
60
|
-
if (users[0] === 'you')
|
61
|
-
this.name = this._translate.get('You');
|
62
|
-
else
|
63
|
-
this.name = this._formatUserElement(users[0]);
|
64
|
-
if (this.item.byId) {
|
65
|
-
if (users[1] === 'you')
|
66
|
-
this.name = this._translate.get('ByYou', this.name);
|
67
|
-
else
|
68
|
-
this.name = this._translate.get('By', this.name, this._formatUserElement(users[1]));
|
69
|
-
}
|
70
|
-
if (this.item.parentId) {
|
71
|
-
const who = users[2] || users[1];
|
72
|
-
if (who === 'you')
|
73
|
-
this.name = this._translate.get('ReplyingToYou', this.name);
|
74
|
-
else if (users[0] === 'you')
|
75
|
-
this.name = this._translate.get('YouRepliedTo', this._formatUserElement(who));
|
76
|
-
else
|
77
|
-
this.name = this._translate.get('ReplyingTo', this.name, this._formatUserElement(who));
|
78
|
-
}
|
79
|
-
}
|
80
|
-
_formatUserElement(person) {
|
81
|
-
if (this._config.chat !== false)
|
82
|
-
return this._chat.format(person);
|
83
|
-
else
|
84
|
-
return person.nick || person.name;
|
85
|
-
}
|
86
|
-
/**
|
87
|
-
* Chat
|
88
|
-
* @param e
|
89
|
-
*/
|
90
|
-
chat(e) {
|
91
|
-
const userId = e.target.getAttribute('data-info');
|
92
|
-
userId &&
|
93
|
-
this._chat.open(userId);
|
94
|
-
}
|
95
|
-
vote(value, event) {
|
96
|
-
value = this.item.voted !== value ? value : 0;
|
97
|
-
this._mailbox.vote(this.model.documentId, this.item.id, value).subscribe(() => {
|
98
|
-
if (this.item.votes === undefined)
|
99
|
-
this.item.votes = value;
|
100
|
-
else if (value === 0)
|
101
|
-
this.item.votes -= this.item.voted;
|
102
|
-
else
|
103
|
-
this.item.votes += value - (this.item.voted || 0);
|
104
|
-
if (this.item.votes === 0)
|
105
|
-
delete this.item.votes;
|
106
|
-
if (value !== 0)
|
107
|
-
this.item.voted = value;
|
108
|
-
else
|
109
|
-
delete this.item.voted;
|
110
|
-
});
|
111
|
-
event.stopPropagation();
|
112
|
-
}
|
113
|
-
edit() {
|
114
|
-
const { id, text, resource, image } = this.item;
|
115
|
-
this._open(EditCommentComponent, {
|
116
|
-
id, text, resource, image,
|
117
|
-
documentId: this.model.documentId
|
118
|
-
}).closed().subscribe(c => {
|
119
|
-
c &&
|
120
|
-
Object.assign(this.item, { image: null, text: null }, c);
|
121
|
-
});
|
122
|
-
}
|
123
|
-
_open(component, data) {
|
124
|
-
return this._popup.open(component, this.bodyElement, { position: 'start', data });
|
125
|
-
}
|
126
|
-
delete() {
|
127
|
-
this._ps.ask('DeleteCommentAsk', undefined, {
|
128
|
-
ok: 'Delete',
|
129
|
-
color: 'warn'
|
130
|
-
}).subscribe(ok => {
|
131
|
-
ok && this._mailbox.removecomment(this.item.id).subscribe({
|
132
|
-
next: () => {
|
133
|
-
this.item.deleted = true;
|
134
|
-
this.deleted.emit();
|
135
|
-
}, error: () => this._ps.error()
|
136
|
-
});
|
137
|
-
});
|
138
|
-
}
|
139
|
-
edits() {
|
140
|
-
this._open(CommentEditsComponent, {
|
141
|
-
id: this.item.id,
|
142
|
-
byId: this.item.byId,
|
143
|
-
resource: this.item.resource,
|
144
|
-
documentId: this.model.documentId
|
145
|
-
});
|
146
|
-
}
|
147
|
-
preview() {
|
148
|
-
const oRef = this._overlay.create({
|
149
|
-
hasBackdrop: true,
|
150
|
-
disposeOnNavigation: true,
|
151
|
-
positionStrategy: this._overlay.position().global().centerHorizontally().centerVertically(),
|
152
|
-
});
|
153
|
-
oRef.attach(new TemplatePortal(this.previewTemplate, this._vc));
|
154
|
-
merge(oRef.keydownEvents().pipe(filter(k => k.key === 'Escape')), oRef.backdropClick()).subscribe(() => oRef.detach());
|
155
|
-
}
|
156
|
-
votes() {
|
157
|
-
this._open(CommentLikesComponent, {
|
158
|
-
id: this.item.id,
|
159
|
-
documentId: this.model.documentId
|
160
|
-
});
|
161
|
-
}
|
162
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: CommentComponent, deps: [{ token: i1.SessionService }, { token: i2.PromptService }, { token: i3.TranslateService }, { token: i4.ChatInfo }, { token: i5.AccountService }, { token: i6.Popup }, { token: i7.Overlay }, { token: i8.MailboxService }, { token: i0.ViewContainerRef }, { token: BIZDOC_CONFIG }], target: i0.ɵɵFactoryTarget.Component }); }
|
163
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: CommentComponent, selector: "bizdoc-comment", inputs: { model: "model", item: "item" }, outputs: { deleted: "deleted", reply: "reply" }, host: { classAttribute: "comment" }, viewQueries: [{ propertyName: "bodyElement", first: true, predicate: ["body"], descendants: true }, { propertyName: "previewTemplate", first: true, predicate: ["previewTemplate"], descendants: true }], ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"comment-body\" #body>\r\n <div [innerHTML]=\"item.text|taggingHtml:item.resource\" class=\"comment-text\"></div>\r\n @if (item.image) {\r\n <img [src]=\"'data:image/png;base64,'+item.image\" alt=\"\" (click)=\"preview()\" />\r\n }\r\n </div>\r\n @if (me) {\r\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" class=\"tool\" (click)=\"$event.stopPropagation()\"><mat-icon>more_vert</mat-icon></button>\r\n }\r\n <mat-menu #menu>\r\n <ng-template matMenuContent>\r\n <button mat-menu-item (click)=\"edit()\">{{'Edit'|translate}}</button>\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"delete()\">{{'Delete'|translate}}</button>\r\n </ng-template>\r\n </mat-menu>\r\n</div>\r\n<div class=\"row\">\r\n <div class=\"column\">\r\n <span [innerHTML]=\"name | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n <div>\r\n <small class=\"flex\" bizdocTooltip=\"{{item.edited || item.time | amCalendar }}\">{{item.edited || item.time | amTimeAgo}}</small>\r\n @if (item.edited) {\r\n <a (click)=\"edits()\" class=\"modification\">{{'Edited'| translate}}</a>\r\n }\r\n @if (!me) {\r\n <a (click)=\"reply.emit()\" class=\"modification\">{{'Reply'| translate}}</a>\r\n }\r\n </div>\r\n </div>\r\n @if (voting) {\r\n <div class=\"comment-actions\">\r\n @if (item.votes > 0 || item.votes < 0) {\r\n <a [class.score-negative]=\"item.votes < 0\" class=\"comment-score\" dir=\"ltr\" (click)=\"votes()\" [bizdocTooltip]=\"'Votes'|translate\">{{item.votes}}</a>\r\n }\r\n <button mat-icon-button (click)=\"vote(1, $event)\" [class.voted-true]=\"item.voted===1\" [disableRipple]=\"true\"><mat-icon>thumb_up_alt</mat-icon></button>\r\n <button mat-icon-button (click)=\"vote(-1, $event)\" [class.voted-false]=\"item.voted===-1\" [disableRipple]=\"true\"><mat-icon>thumb_down_alt</mat-icon></button>\r\n </div>\r\n }\r\n</div>\r\n<ng-template #previewTemplate>\r\n <img [src]=\"'data:image/png;base64,'+item.image\" alt=\"\" />\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i9.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "component", type: i10.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i11.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i12.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i13.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i13.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i13.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i13.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i14.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i15.CalendarPipe, name: "amCalendar" }, { kind: "pipe", type: i16.TimeAgoPipe, name: "amTimeAgo" }, { kind: "pipe", type: i17.TranslatePipe, name: "translate" }, { kind: "pipe", type: i18.SanitizeHtmlPipe, name: "sanitizeHtml" }, { kind: "pipe", type: i19.TaggingPipe, name: "taggingHtml" }] }); }
|
164
|
-
}
|
165
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: CommentComponent, decorators: [{
|
166
|
-
type: Component,
|
167
|
-
args: [{ selector: 'bizdoc-comment', host: {
|
168
|
-
class: 'comment'
|
169
|
-
}, template: "<div class=\"row\">\r\n <div class=\"comment-body\" #body>\r\n <div [innerHTML]=\"item.text|taggingHtml:item.resource\" class=\"comment-text\"></div>\r\n @if (item.image) {\r\n <img [src]=\"'data:image/png;base64,'+item.image\" alt=\"\" (click)=\"preview()\" />\r\n }\r\n </div>\r\n @if (me) {\r\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" class=\"tool\" (click)=\"$event.stopPropagation()\"><mat-icon>more_vert</mat-icon></button>\r\n }\r\n <mat-menu #menu>\r\n <ng-template matMenuContent>\r\n <button mat-menu-item (click)=\"edit()\">{{'Edit'|translate}}</button>\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"delete()\">{{'Delete'|translate}}</button>\r\n </ng-template>\r\n </mat-menu>\r\n</div>\r\n<div class=\"row\">\r\n <div class=\"column\">\r\n <span [innerHTML]=\"name | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n <div>\r\n <small class=\"flex\" bizdocTooltip=\"{{item.edited || item.time | amCalendar }}\">{{item.edited || item.time | amTimeAgo}}</small>\r\n @if (item.edited) {\r\n <a (click)=\"edits()\" class=\"modification\">{{'Edited'| translate}}</a>\r\n }\r\n @if (!me) {\r\n <a (click)=\"reply.emit()\" class=\"modification\">{{'Reply'| translate}}</a>\r\n }\r\n </div>\r\n </div>\r\n @if (voting) {\r\n <div class=\"comment-actions\">\r\n @if (item.votes > 0 || item.votes < 0) {\r\n <a [class.score-negative]=\"item.votes < 0\" class=\"comment-score\" dir=\"ltr\" (click)=\"votes()\" [bizdocTooltip]=\"'Votes'|translate\">{{item.votes}}</a>\r\n }\r\n <button mat-icon-button (click)=\"vote(1, $event)\" [class.voted-true]=\"item.voted===1\" [disableRipple]=\"true\"><mat-icon>thumb_up_alt</mat-icon></button>\r\n <button mat-icon-button (click)=\"vote(-1, $event)\" [class.voted-false]=\"item.voted===-1\" [disableRipple]=\"true\"><mat-icon>thumb_down_alt</mat-icon></button>\r\n </div>\r\n }\r\n</div>\r\n<ng-template #previewTemplate>\r\n <img [src]=\"'data:image/png;base64,'+item.image\" alt=\"\" />\r\n</ng-template>\r\n" }]
|
170
|
-
}], ctorParameters: () => [{ type: i1.SessionService }, { type: i2.PromptService }, { type: i3.TranslateService }, { type: i4.ChatInfo }, { type: i5.AccountService }, { type: i6.Popup }, { type: i7.Overlay }, { type: i8.MailboxService }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{
|
171
|
-
type: Inject,
|
172
|
-
args: [BIZDOC_CONFIG]
|
173
|
-
}] }], propDecorators: { model: [{
|
174
|
-
type: Input
|
175
|
-
}], item: [{
|
176
|
-
type: Input
|
177
|
-
}], deleted: [{
|
178
|
-
type: Output
|
179
|
-
}], reply: [{
|
180
|
-
type: Output
|
181
|
-
}], bodyElement: [{
|
182
|
-
type: ViewChild,
|
183
|
-
args: ['body']
|
184
|
-
}], previewTemplate: [{
|
185
|
-
type: ViewChild,
|
186
|
-
args: ['previewTemplate']
|
187
|
-
}] } });
|
188
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvY29tcG9zZS9jb21tZW50cy9jb21tZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9jb21wb3NlL2NvbW1lbnRzL2NvbW1lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQWMsTUFBTSxFQUF5QyxNQUFNLGVBQWUsQ0FBQztBQUU3SSxPQUFPLEVBQUUsY0FBYyxFQUFpQixNQUFNLHFCQUFxQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFnQixhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQU92RSxPQUFPLEVBQWUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM3RSxPQUFPLEVBQUUscUJBQXFCLEVBQXNCLE1BQU0sbUJBQW1CLENBQUM7QUFDOUUsT0FBTyxFQUFtQixxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFXM0UsdUJBQXVCO0FBQ3ZCLE1BQU0sT0FBTyxnQkFBZ0I7SUFVM0IsWUFDVSxRQUF3QixFQUN4QixHQUFrQixFQUNsQixVQUE0QixFQUM1QixLQUFlLEVBQ2YsU0FBeUIsRUFDekIsTUFBYSxFQUNiLFFBQWlCLEVBQ2pCLFFBQXdCLEVBQ3hCLEdBQXFCLEVBQ0UsT0FBcUI7UUFUNUMsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFDeEIsUUFBRyxHQUFILEdBQUcsQ0FBZTtRQUNsQixlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQUM1QixVQUFLLEdBQUwsS0FBSyxDQUFVO1FBQ2YsY0FBUyxHQUFULFNBQVMsQ0FBZ0I7UUFDekIsV0FBTSxHQUFOLE1BQU0sQ0FBTztRQUNiLGFBQVEsR0FBUixRQUFRLENBQVM7UUFDakIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFDeEIsUUFBRyxHQUFILEdBQUcsQ0FBa0I7UUFDRSxZQUFPLEdBQVAsT0FBTyxDQUFjO1FBaEJuQyxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM3QixVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUc5QyxTQUFJLEdBQVcsRUFBRSxDQUFDO1FBYWhCLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQztJQUN2RSxDQUFDO0lBQ0QsUUFBUTtRQUNOLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3RELE1BQU0sSUFBSSxHQUFzQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDdkcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUk7WUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzlFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN2QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFFLEVBQ3ZFLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUM7WUFDckMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdkQsQ0FBQztRQUNELFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBQ08sS0FBSyxDQUFDLEtBQTJCO1FBQ3ZDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUs7WUFDcEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQzs7WUFFdkMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBYSxDQUFDLENBQUM7UUFDNUQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ25CLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUs7Z0JBQ3BCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzs7Z0JBRXBELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQWEsQ0FBQyxDQUFDLENBQUM7UUFDcEcsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN2QixNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pDLElBQUksR0FBRyxLQUFLLEtBQUs7Z0JBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUN6RCxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLO2dCQUN6QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBZSxDQUFDLENBQUMsQ0FBQzs7Z0JBRTFGLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQWUsQ0FBQyxDQUFDLENBQUM7UUFDdkcsQ0FBQztJQUNILENBQUM7SUFDTyxrQkFBa0IsQ0FBQyxNQUFnQjtRQUN6QyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLEtBQUs7WUFDN0IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQzs7WUFFakMsT0FBTyxNQUFNLENBQUMsSUFBSSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDdEMsQ0FBQztJQUNEOzs7T0FHRztJQUNILElBQUksQ0FBQyxDQUFhO1FBQ2hCLE1BQU0sTUFBTSxHQUFJLENBQUMsQ0FBQyxNQUFzQixDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuRSxNQUFNO1lBQ0osSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUNELElBQUksQ0FBQyxLQUFhLEVBQUUsS0FBaUI7UUFDbkMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM1RSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLFNBQVM7Z0JBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztpQkFDckIsSUFBSSxLQUFLLEtBQUssQ0FBQztnQkFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFNLENBQUM7O2dCQUVwQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNwRCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLENBQUM7Z0JBQUUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUNsRCxJQUFJLEtBQUssS0FBSyxDQUFDO2dCQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQzs7Z0JBQ3BDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7UUFDSCxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQUk7UUFDRixNQUFNLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNoRCxJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFvQixFQUFFO1lBQy9CLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUs7WUFDekIsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVTtTQUNuQixDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3ZDLENBQUM7Z0JBQ0MsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDNUQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ08sS0FBSyxDQUFJLFNBQTJCLEVBQUUsSUFBUztRQUNyRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFDRCxNQUFNO1FBQ0osSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEVBQUUsU0FBUyxFQUFFO1lBQzFDLEVBQUUsRUFBRSxRQUFRO1lBQ1osS0FBSyxFQUFFLE1BQU07U0FDZCxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ2hCLEVBQUUsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFDeEQsSUFBSSxFQUFFLEdBQUcsRUFBRTtvQkFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7b0JBQ3pCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3RCLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUU7YUFDakMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBQ0QsS0FBSztRQUNILElBQUksQ0FBQyxLQUFLLENBQUMscUJBQXFCLEVBQUU7WUFDaEMsRUFBRSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNoQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJO1lBQ3BCLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVE7WUFDNUIsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVTtTQUNaLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBQ0QsT0FBTztRQUNMLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQ2hDLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLG1CQUFtQixFQUFFLElBQUk7WUFDekIsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLGdCQUFnQixFQUFFO1NBQzVGLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNoRSxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLFFBQVEsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3pILENBQUM7SUFDRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsRUFBRTtZQUNoQyxFQUFFLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2hCLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVU7U0FDZixDQUFDLENBQUM7SUFDeEIsQ0FBQzs4R0F2SVUsZ0JBQWdCLDZRQW9CakIsYUFBYTtrR0FwQlosZ0JBQWdCLGdZQzFCN0IsNmpFQTRDQTs7MkZEbEJhLGdCQUFnQjtrQkFSNUIsU0FBUzsrQkFDRSxnQkFBZ0IsUUFFcEI7d0JBQ0osS0FBSyxFQUFFLFNBQVM7cUJBQ2pCOzswQkF1QkUsTUFBTTsyQkFBQyxhQUFhO3lDQW5CZCxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUVhLE9BQU87c0JBQXpCLE1BQU07Z0JBQ1ksS0FBSztzQkFBdkIsTUFBTTtnQkFDWSxXQUFXO3NCQUE3QixTQUFTO3VCQUFDLE1BQU07Z0JBQ2EsZUFBZTtzQkFBNUMsU0FBUzt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBJbmplY3QsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT3ZlcmxheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwsIENvbXBvbmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcclxuaW1wb3J0IHsgZm9ya0pvaW4sIG1lcmdlLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEJpekRvY0NvbmZpZywgQklaRE9DX0NPTkZJRyB9IGZyb20gJy4uLy4uL2NvcmUvY29uZmlndXJhdGlvbic7XHJcbmltcG9ydCB7IENvbW1lbnQsIERvY3VtZW50TW9kZWwsIFVzZXJJbmZvIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBQcm9tcHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9wcm9tcHQuc2VydmljZSc7XHJcbmltcG9ydCB7IE1haWxib3hTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9tYWlsYm94LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQb3B1cCB9IGZyb20gXCIuLi8uLi9jb3JlL3BvcHVwL3BvcHVwLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQ29tbWVudERhdGEsIEVkaXRDb21tZW50Q29tcG9uZW50IH0gZnJvbSAnLi9lZGl0LWNvbW1lbnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tbWVudEVkaXRzQ29tcG9uZW50LCBDb21tZW50VmVyc2lvbkRhdGEgfSBmcm9tICcuL2VkaXRzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbW1lbnRWb3RlRGF0YSwgQ29tbWVudExpa2VzQ29tcG9uZW50IH0gZnJvbSAnLi92b3Rlcy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBY2NvdW50U2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvYWNjb3VudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2hhdEluZm8gfSBmcm9tICcuLi8uLi9jaGF0L2NoYXQtaW5mbyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1jb21tZW50JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29tbWVudC5jb21wb25lbnQuaHRtbCcsXHJcbiAgaG9zdDoge1xyXG4gICAgY2xhc3M6ICdjb21tZW50J1xyXG4gIH1cclxufSlcclxuLyoqIGNvbW1lbnQgY29tcG9uZW50Ki9cclxuZXhwb3J0IGNsYXNzIENvbW1lbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIG1vZGVsITogRG9jdW1lbnRNb2RlbDxhbnk+O1xyXG4gIEBJbnB1dCgpIGl0ZW0hOiBDb21tZW50O1xyXG4gIHZvdGluZzogYm9vbGVhbjtcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgZGVsZXRlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgcmVwbHkgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQFZpZXdDaGlsZCgnYm9keScpIGJvZHlFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+O1xyXG4gIEBWaWV3Q2hpbGQoJ3ByZXZpZXdUZW1wbGF0ZScpIHByZXZpZXdUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICBuYW1lOiBzdHJpbmcgPSAnJztcclxuICBtZTogYm9vbGVhbjtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcHM6IFByb21wdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jaGF0OiBDaGF0SW5mbyxcclxuICAgIHByaXZhdGUgX2FjY291bnRzOiBBY2NvdW50U2VydmljZSxcclxuICAgIHByaXZhdGUgX3BvcHVwOiBQb3B1cCxcclxuICAgIHByaXZhdGUgX292ZXJsYXk6IE92ZXJsYXksXHJcbiAgICBwcml2YXRlIF9tYWlsYm94OiBNYWlsYm94U2VydmljZSxcclxuICAgIHByaXZhdGUgX3ZjOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgQEluamVjdChCSVpET0NfQ09ORklHKSBwcml2YXRlIF9jb25maWc6IEJpekRvY0NvbmZpZykge1xyXG4gICAgdGhpcy52b3RpbmcgPSAhX2NvbmZpZy5jb21tZW50cyB8fCBfY29uZmlnLmNvbW1lbnRzLnZvdGluZyAhPT0gZmFsc2U7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgY29uc3QgbWUgPSB0aGlzLl9zZXNzaW9uLnVzZXJJZCwgeW91ID0gb2YoJ3lvdScpO1xyXG4gICAgdGhpcy5tZSA9ICh0aGlzLml0ZW0uYnlJZCB8fCB0aGlzLml0ZW0udXNlcklkKSA9PT0gbWU7XHJcbiAgICBjb25zdCB3aG9zOiBbT2JzZXJ2YWJsZTxhbnk+XSA9IFt0aGlzLml0ZW0udXNlcklkID09PSBtZSA/IHlvdSA6IHRoaXMuX2FjY291bnRzLmdldCh0aGlzLml0ZW0udXNlcklkKV07XHJcbiAgICBpZiAodGhpcy5pdGVtLmJ5SWQpXHJcbiAgICAgIHdob3MucHVzaCh0aGlzLml0ZW0uYnlJZCA9PT0gbWUgPyB5b3UgOiB0aGlzLl9hY2NvdW50cy5nZXQodGhpcy5pdGVtLmJ5SWQpKTtcclxuICAgIGlmICh0aGlzLml0ZW0ucGFyZW50SWQpIHtcclxuICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy5tb2RlbC5jb21tZW50cy5maW5kKGMgPT4gYy5pZCA9PSB0aGlzLml0ZW0ucGFyZW50SWQpISxcclxuICAgICAgICB3aG8gPSBwYXJlbnQuYnlJZCB8fCBwYXJlbnQudXNlcklkO1xyXG4gICAgICB3aG9zLnB1c2god2hvID09IG1lID8geW91IDogdGhpcy5fYWNjb3VudHMuZ2V0KHdobykpO1xyXG4gICAgfVxyXG4gICAgZm9ya0pvaW4od2hvcykuc3Vic2NyaWJlKHRoaXMuX25hbWUuYmluZCh0aGlzKSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX25hbWUodXNlcnM6IChVc2VySW5mbyB8ICd5b3UnKVtdKSB7XHJcbiAgICBpZiAodXNlcnNbMF0gPT09ICd5b3UnKVxyXG4gICAgICB0aGlzLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdZb3UnKTtcclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5uYW1lID0gdGhpcy5fZm9ybWF0VXNlckVsZW1lbnQodXNlcnNbMF0gYXMgVXNlckluZm8pO1xyXG4gICAgaWYgKHRoaXMuaXRlbS5ieUlkKSB7XHJcbiAgICAgIGlmICh1c2Vyc1sxXSA9PT0gJ3lvdScpXHJcbiAgICAgICAgdGhpcy5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnQnlZb3UnLCB0aGlzLm5hbWUpO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnQnknLCB0aGlzLm5hbWUsIHRoaXMuX2Zvcm1hdFVzZXJFbGVtZW50KHVzZXJzWzFdIGFzIFVzZXJJbmZvKSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5pdGVtLnBhcmVudElkKSB7XHJcbiAgICAgIGNvbnN0IHdobyA9IHVzZXJzWzJdIHx8IHVzZXJzWzFdO1xyXG4gICAgICBpZiAod2hvID09PSAneW91JylcclxuICAgICAgICB0aGlzLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdSZXBseWluZ1RvWW91JywgdGhpcy5uYW1lKTtcclxuICAgICAgZWxzZSBpZiAodXNlcnNbMF0gPT09ICd5b3UnKVxyXG4gICAgICAgIHRoaXMubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1lvdVJlcGxpZWRUbycsIHRoaXMuX2Zvcm1hdFVzZXJFbGVtZW50KHdobyBhcyBVc2VySW5mbykpO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnUmVwbHlpbmdUbycsIHRoaXMubmFtZSwgdGhpcy5fZm9ybWF0VXNlckVsZW1lbnQod2hvIGFzIFVzZXJJbmZvKSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHByaXZhdGUgX2Zvcm1hdFVzZXJFbGVtZW50KHBlcnNvbjogVXNlckluZm8pIHtcclxuICAgIGlmICh0aGlzLl9jb25maWcuY2hhdCAhPT0gZmFsc2UpXHJcbiAgICAgIHJldHVybiB0aGlzLl9jaGF0LmZvcm1hdChwZXJzb24pO1xyXG4gICAgZWxzZVxyXG4gICAgICByZXR1cm4gcGVyc29uLm5pY2sgfHwgcGVyc29uLm5hbWU7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIENoYXRcclxuICAgKiBAcGFyYW0gZVxyXG4gICAqL1xyXG4gIGNoYXQoZTogTW91c2VFdmVudCkge1xyXG4gICAgY29uc3QgdXNlcklkID0gKGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5nZXRBdHRyaWJ1dGUoJ2RhdGEtaW5mbycpO1xyXG4gICAgdXNlcklkICYmXHJcbiAgICAgIHRoaXMuX2NoYXQub3Blbih1c2VySWQpO1xyXG4gIH1cclxuICB2b3RlKHZhbHVlOiBudW1iZXIsIGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICB2YWx1ZSA9IHRoaXMuaXRlbS52b3RlZCAhPT0gdmFsdWUgPyB2YWx1ZSA6IDA7XHJcbiAgICB0aGlzLl9tYWlsYm94LnZvdGUodGhpcy5tb2RlbC5kb2N1bWVudElkLCB0aGlzLml0ZW0uaWQsIHZhbHVlKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5pdGVtLnZvdGVzID09PSB1bmRlZmluZWQpXHJcbiAgICAgICAgdGhpcy5pdGVtLnZvdGVzID0gdmFsdWU7XHJcbiAgICAgIGVsc2UgaWYgKHZhbHVlID09PSAwKVxyXG4gICAgICAgIHRoaXMuaXRlbS52b3RlcyAtPSB0aGlzLml0ZW0udm90ZWQhO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5pdGVtLnZvdGVzICs9IHZhbHVlIC0gKHRoaXMuaXRlbS52b3RlZCB8fCAwKTtcclxuICAgICAgaWYgKHRoaXMuaXRlbS52b3RlcyA9PT0gMCkgZGVsZXRlIHRoaXMuaXRlbS52b3RlcztcclxuICAgICAgaWYgKHZhbHVlICE9PSAwKSB0aGlzLml0ZW0udm90ZWQgPSB2YWx1ZTtcclxuICAgICAgZWxzZSBkZWxldGUgdGhpcy5pdGVtLnZvdGVkO1xyXG4gICAgfSk7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcbiAgZWRpdCgpIHtcclxuICAgIGNvbnN0IHsgaWQsIHRleHQsIHJlc291cmNlLCBpbWFnZSB9ID0gdGhpcy5pdGVtO1xyXG4gICAgdGhpcy5fb3BlbihFZGl0Q29tbWVudENvbXBvbmVudCwge1xyXG4gICAgICBpZCwgdGV4dCwgcmVzb3VyY2UsIGltYWdlLFxyXG4gICAgICBkb2N1bWVudElkOiB0aGlzLm1vZGVsLmRvY3VtZW50SWRcclxuICAgIH0gYXMgQ29tbWVudERhdGEpLmNsb3NlZCgpLnN1YnNjcmliZShjID0+IHtcclxuICAgICAgYyAmJlxyXG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5pdGVtLCB7IGltYWdlOiBudWxsLCB0ZXh0OiBudWxsIH0sIGMpXHJcbiAgICB9KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfb3BlbjxDPihjb21wb25lbnQ6IENvbXBvbmVudFR5cGU8Qz4sIGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3BvcHVwLm9wZW4oY29tcG9uZW50LCB0aGlzLmJvZHlFbGVtZW50LCB7IHBvc2l0aW9uOiAnc3RhcnQnLCBkYXRhIH0pO1xyXG4gIH1cclxuICBkZWxldGUoKSB7XHJcbiAgICB0aGlzLl9wcy5hc2soJ0RlbGV0ZUNvbW1lbnRBc2snLCB1bmRlZmluZWQsIHtcclxuICAgICAgb2s6ICdEZWxldGUnLFxyXG4gICAgICBjb2xvcjogJ3dhcm4nXHJcbiAgICB9KS5zdWJzY3JpYmUob2sgPT4ge1xyXG4gICAgICBvayAmJiB0aGlzLl9tYWlsYm94LnJlbW92ZWNvbW1lbnQodGhpcy5pdGVtLmlkKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuaXRlbS5kZWxldGVkID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuZGVsZXRlZC5lbWl0KCk7XHJcbiAgICAgICAgfSwgZXJyb3I6ICgpID0+IHRoaXMuX3BzLmVycm9yKClcclxuICAgICAgfSk7XHJcbiAgICB9KVxyXG4gIH1cclxuICBlZGl0cygpIHtcclxuICAgIHRoaXMuX29wZW4oQ29tbWVudEVkaXRzQ29tcG9uZW50LCB7XHJcbiAgICAgIGlkOiB0aGlzLml0ZW0uaWQsXHJcbiAgICAgIGJ5SWQ6IHRoaXMuaXRlbS5ieUlkLFxyXG4gICAgICByZXNvdXJjZTogdGhpcy5pdGVtLnJlc291cmNlLFxyXG4gICAgICBkb2N1bWVudElkOiB0aGlzLm1vZGVsLmRvY3VtZW50SWRcclxuICAgIH0gYXMgQ29tbWVudFZlcnNpb25EYXRhKTtcclxuICB9XHJcbiAgcHJldmlldygpIHtcclxuICAgIGNvbnN0IG9SZWYgPSB0aGlzLl9vdmVybGF5LmNyZWF0ZSh7XHJcbiAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxyXG4gICAgICBkaXNwb3NlT25OYXZpZ2F0aW9uOiB0cnVlLFxyXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLl9vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCkuY2VudGVySG9yaXpvbnRhbGx5KCkuY2VudGVyVmVydGljYWxseSgpLFxyXG4gICAgfSk7XHJcbiAgICBvUmVmLmF0dGFjaChuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5wcmV2aWV3VGVtcGxhdGUsIHRoaXMuX3ZjKSk7XHJcbiAgICBtZXJnZShvUmVmLmtleWRvd25FdmVudHMoKS5waXBlKGZpbHRlcihrID0+IGsua2V5ID09PSAnRXNjYXBlJykpLCBvUmVmLmJhY2tkcm9wQ2xpY2soKSkuc3Vic2NyaWJlKCgpID0+IG9SZWYuZGV0YWNoKCkpO1xyXG4gIH1cclxuICB2b3RlcygpIHtcclxuICAgIHRoaXMuX29wZW4oQ29tbWVudExpa2VzQ29tcG9uZW50LCB7XHJcbiAgICAgIGlkOiB0aGlzLml0ZW0uaWQsXHJcbiAgICAgIGRvY3VtZW50SWQ6IHRoaXMubW9kZWwuZG9jdW1lbnRJZFxyXG4gICAgfSBhcyBDb21tZW50Vm90ZURhdGEpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgPGRpdiBjbGFzcz1cImNvbW1lbnQtYm9keVwiICNib2R5PlxyXG4gICAgPGRpdiBbaW5uZXJIVE1MXT1cIml0ZW0udGV4dHx0YWdnaW5nSHRtbDppdGVtLnJlc291cmNlXCIgY2xhc3M9XCJjb21tZW50LXRleHRcIj48L2Rpdj5cclxuICAgIEBpZiAoaXRlbS5pbWFnZSkge1xyXG4gICAgPGltZyBbc3JjXT1cIidkYXRhOmltYWdlL3BuZztiYXNlNjQsJytpdGVtLmltYWdlXCIgYWx0PVwiXCIgKGNsaWNrKT1cInByZXZpZXcoKVwiIC8+XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcbiAgQGlmIChtZSkge1xyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCIgY2xhc3M9XCJ0b29sXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPjxtYXQtaWNvbj5tb3JlX3ZlcnQ8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gIH1cclxuICA8bWF0LW1lbnUgI21lbnU+XHJcbiAgICA8bmctdGVtcGxhdGUgbWF0TWVudUNvbnRlbnQ+XHJcbiAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiZWRpdCgpXCI+e3snRWRpdCd8dHJhbnNsYXRlfX08L2J1dHRvbj5cclxuICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XHJcbiAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiZGVsZXRlKClcIj57eydEZWxldGUnfHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIDwvbWF0LW1lbnU+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgPGRpdiBjbGFzcz1cImNvbHVtblwiPlxyXG4gICAgPHNwYW4gW2lubmVySFRNTF09XCJuYW1lIHwgc2FuaXRpemVIdG1sXCIgKGNsaWNrKT1cImNoYXQoJGV2ZW50KVwiPjwvc3Bhbj5cclxuICAgIDxkaXY+XHJcbiAgICAgIDxzbWFsbCBjbGFzcz1cImZsZXhcIiBiaXpkb2NUb29sdGlwPVwie3tpdGVtLmVkaXRlZCB8fCBpdGVtLnRpbWUgfCBhbUNhbGVuZGFyIH19XCI+e3tpdGVtLmVkaXRlZCB8fCBpdGVtLnRpbWUgfCBhbVRpbWVBZ299fTwvc21hbGw+XHJcbiAgICAgIEBpZiAoaXRlbS5lZGl0ZWQpIHtcclxuICAgICAgJm5ic3A7PGEgKGNsaWNrKT1cImVkaXRzKClcIiBjbGFzcz1cIm1vZGlmaWNhdGlvblwiPnt7J0VkaXRlZCd8IHRyYW5zbGF0ZX19PC9hPlxyXG4gICAgICB9XHJcbiAgICAgIEBpZiAoIW1lKSB7XHJcbiAgICAgICZuYnNwOzxhIChjbGljayk9XCJyZXBseS5lbWl0KClcIiBjbGFzcz1cIm1vZGlmaWNhdGlvblwiPnt7J1JlcGx5J3wgdHJhbnNsYXRlfX08L2E+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIEBpZiAodm90aW5nKSB7XHJcbiAgPGRpdiBjbGFzcz1cImNvbW1lbnQtYWN0aW9uc1wiPlxyXG4gICAgQGlmIChpdGVtLnZvdGVzID4gMCB8fCBpdGVtLnZvdGVzIDwgMCkge1xyXG4gICAgPGEgW2NsYXNzLnNjb3JlLW5lZ2F0aXZlXT1cIml0ZW0udm90ZXMgPCAwXCIgY2xhc3M9XCJjb21tZW50LXNjb3JlXCIgZGlyPVwibHRyXCIgKGNsaWNrKT1cInZvdGVzKClcIiBbYml6ZG9jVG9vbHRpcF09XCInVm90ZXMnfHRyYW5zbGF0ZVwiPnt7aXRlbS52b3Rlc319PC9hPlxyXG4gICAgfVxyXG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInZvdGUoMSwgJGV2ZW50KVwiIFtjbGFzcy52b3RlZC10cnVlXT1cIml0ZW0udm90ZWQ9PT0xXCIgW2Rpc2FibGVSaXBwbGVdPVwidHJ1ZVwiPjxtYXQtaWNvbj50aHVtYl91cF9hbHQ8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInZvdGUoLTEsICRldmVudClcIiBbY2xhc3Mudm90ZWQtZmFsc2VdPVwiaXRlbS52b3RlZD09PS0xXCIgW2Rpc2FibGVSaXBwbGVdPVwidHJ1ZVwiPjxtYXQtaWNvbj50aHVtYl9kb3duX2FsdDwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbiAgfVxyXG48L2Rpdj5cclxuPG5nLXRlbXBsYXRlICNwcmV2aWV3VGVtcGxhdGU+XHJcbiAgPGltZyBbc3JjXT1cIidkYXRhOmltYWdlL3BuZztiYXNlNjQsJytpdGVtLmltYWdlXCIgYWx0PVwiXCIgLz5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
@@ -1,226 +0,0 @@
|
|
1
|
-
import { Component, Input, Output, EventEmitter, ViewChild, ElementRef, Inject } from '@angular/core';
|
2
|
-
import { Subject } from 'rxjs';
|
3
|
-
import { takeUntil, debounceTime, filter } from 'rxjs/operators';
|
4
|
-
import { BIZDOC_CONFIG } from '../../core/configuration';
|
5
|
-
import { EditInputComponent } from '../../core/tagging/edit-input.component';
|
6
|
-
import * as i0 from "@angular/core";
|
7
|
-
import * as i1 from "../../core/account.service";
|
8
|
-
import * as i2 from "../../core/session.service";
|
9
|
-
import * as i3 from "../../core/prompt.service";
|
10
|
-
import * as i4 from "../../core/translate.service";
|
11
|
-
import * as i5 from "../../chat/chat-info";
|
12
|
-
import * as i6 from "../../core/mailbox.service";
|
13
|
-
import * as i7 from "../../core/hub.service";
|
14
|
-
import * as i8 from "../../core/tagging/edit-input.component";
|
15
|
-
import * as i9 from "../../core/none.component";
|
16
|
-
import * as i10 from "./comment.component";
|
17
|
-
import * as i11 from "../../core/pipes/translate.pipe";
|
18
|
-
import * as i12 from "../../core/pipes/sanitize-html.pipe";
|
19
|
-
export const TYPING_NOTIFY = 500, TYPING_MESSAGE_TIME = 1500;
|
20
|
-
/** comments component*/
|
21
|
-
export class CommentsComponent {
|
22
|
-
/** comments ctor */
|
23
|
-
constructor(_accounts, _session, _sb, _translate, _chat, _mailbox, _messaging, _config) {
|
24
|
-
this._accounts = _accounts;
|
25
|
-
this._session = _session;
|
26
|
-
this._sb = _sb;
|
27
|
-
this._translate = _translate;
|
28
|
-
this._chat = _chat;
|
29
|
-
this._mailbox = _mailbox;
|
30
|
-
this._messaging = _messaging;
|
31
|
-
this._config = _config;
|
32
|
-
this.change = new EventEmitter();
|
33
|
-
this.sending = false;
|
34
|
-
this.showDeleted = false;
|
35
|
-
this._inFocus = false;
|
36
|
-
this._top = false;
|
37
|
-
this._textChange = new Subject();
|
38
|
-
this._destroy = new Subject();
|
39
|
-
this._preserveDraft = _config.comments && _config.comments.preserveDraft;
|
40
|
-
}
|
41
|
-
ngOnInit() {
|
42
|
-
this._messaging.comment$.pipe(takeUntil(this._destroy), filter(e => (e.id === this.model.documentId))).subscribe(e => {
|
43
|
-
if (!this.model.comments.find(c => c.id === e.model.id)) {
|
44
|
-
this.model.comments.push(e.model);
|
45
|
-
if (this._inFocus)
|
46
|
-
this._viewed();
|
47
|
-
this.change.emit();
|
48
|
-
}
|
49
|
-
});
|
50
|
-
this._messaging.commentTyping$.pipe(takeUntil(this._destroy), filter(e => e.id === this.model.documentId)).
|
51
|
-
subscribe(e => {
|
52
|
-
this._accounts.get(e.userId).subscribe(u => {
|
53
|
-
this.typing = u.name;
|
54
|
-
clearTimeout(this._typingTask);
|
55
|
-
this._typingTask = setTimeout(() => this.typing = null, TYPING_MESSAGE_TIME);
|
56
|
-
});
|
57
|
-
});
|
58
|
-
this._messaging.vote$.pipe(takeUntil(this._destroy), filter(e => e.id === this.model.documentId)).subscribe(e => {
|
59
|
-
const comment = this.model.comments.find(c => c.id === e.commentId);
|
60
|
-
comment && (comment.votes = e.votes);
|
61
|
-
});
|
62
|
-
this._messaging.commentUpdate$.pipe(takeUntil(this._destroy), filter(e => e.id === this.model.documentId)).subscribe(e => {
|
63
|
-
const comment = this.model.comments.find(c => c.id === e.model.id);
|
64
|
-
Object.assign(comment, e.model);
|
65
|
-
});
|
66
|
-
this._messaging.commentDelete$.pipe(takeUntil(this._destroy), filter(e => e.id === this.model.documentId)).subscribe(e => {
|
67
|
-
const comment = this.model.comments.find(c => c.id === e.id);
|
68
|
-
comment.deleted = true;
|
69
|
-
this.change.emit();
|
70
|
-
});
|
71
|
-
this._textChange.pipe(debounceTime(TYPING_NOTIFY), takeUntil(this._destroy)).subscribe(() => this._mailbox.typing(this.model.documentId).subscribe());
|
72
|
-
}
|
73
|
-
_formatUserElement(person) {
|
74
|
-
if (this._config.chat !== false)
|
75
|
-
return this._chat.format(person);
|
76
|
-
else
|
77
|
-
return person.nick || person.name;
|
78
|
-
}
|
79
|
-
/**
|
80
|
-
* Chat
|
81
|
-
* @param e
|
82
|
-
*/
|
83
|
-
chat(e) {
|
84
|
-
const userId = e.target.getAttribute('data-info');
|
85
|
-
userId &&
|
86
|
-
this._chat.open(userId);
|
87
|
-
}
|
88
|
-
ngOnChanges(changes) {
|
89
|
-
const change = changes['model'];
|
90
|
-
if (this._preserveDraft) {
|
91
|
-
!change.firstChange && this._persist(change.previousValue.documentId.toString());
|
92
|
-
const text = localStorage.getItem(this.model.documentId.toString());
|
93
|
-
if (text)
|
94
|
-
this.input.text = text;
|
95
|
-
}
|
96
|
-
this._scrollToBottom();
|
97
|
-
}
|
98
|
-
get unreadComments() {
|
99
|
-
if (!this.model.viewed)
|
100
|
-
return this.model.comments.length;
|
101
|
-
const me = this._session.userId;
|
102
|
-
let n = 0;
|
103
|
-
for (let i = this.model.comments.length; i > 0; i--) {
|
104
|
-
let comment = this.model.comments[i - 1];
|
105
|
-
if ((comment.byId || comment.userId) === me)
|
106
|
-
break;
|
107
|
-
if (!comment.deleted && comment.time > this.model.viewed)
|
108
|
-
n++;
|
109
|
-
}
|
110
|
-
return n;
|
111
|
-
}
|
112
|
-
deleted(item) {
|
113
|
-
}
|
114
|
-
reply(item) {
|
115
|
-
this._replyTo = item;
|
116
|
-
this._accounts.get(item.byId || item.userId).
|
117
|
-
subscribe(u => this.replyName = this._translate.get('ReplyTo', this._formatUserElement(u)));
|
118
|
-
this.input.focus();
|
119
|
-
}
|
120
|
-
clearReply() {
|
121
|
-
this._replyTo = undefined;
|
122
|
-
this.replyName = undefined;
|
123
|
-
}
|
124
|
-
ngAfterViewInit() {
|
125
|
-
const { comments } = this.model;
|
126
|
-
if (!comments.length)
|
127
|
-
this.focus();
|
128
|
-
else {
|
129
|
-
const comment = comments[comments.length - 1];
|
130
|
-
if ((comment.byId || comment.userId) === this._session.userId)
|
131
|
-
this.focus();
|
132
|
-
}
|
133
|
-
this._scrollToBottom();
|
134
|
-
}
|
135
|
-
focus() {
|
136
|
-
this.input.focus();
|
137
|
-
}
|
138
|
-
onScroll(evt) {
|
139
|
-
if (evt.target.scrollTop === 0 && this.model.comments.length && !this._top) {
|
140
|
-
const time = this.model.comments.sort((c0, c1) => c0.time > c1.time ? 1 : -1)[0].time;
|
141
|
-
this._mailbox.comments(this.model.documentId, time).subscribe(cs => {
|
142
|
-
if (cs.length === 0)
|
143
|
-
this._top = true;
|
144
|
-
else {
|
145
|
-
this.model.comments = cs.reverse().concat(this.model.comments);
|
146
|
-
setTimeout(() => this._scrollToBottom());
|
147
|
-
}
|
148
|
-
});
|
149
|
-
}
|
150
|
-
}
|
151
|
-
_scrollToBottom() {
|
152
|
-
try {
|
153
|
-
this.threadElement.nativeElement.scrollTop = this.threadElement.nativeElement.scrollHeight;
|
154
|
-
}
|
155
|
-
catch (e) {
|
156
|
-
console.error(e);
|
157
|
-
}
|
158
|
-
}
|
159
|
-
onFocus() {
|
160
|
-
this._inFocus = true;
|
161
|
-
this._viewed();
|
162
|
-
}
|
163
|
-
onBlur() {
|
164
|
-
this._inFocus = false;
|
165
|
-
}
|
166
|
-
_viewed() {
|
167
|
-
const { viewed, comments, documentId } = this.model;
|
168
|
-
comments.length && (!viewed || comments.findIndex(c => c.time > viewed) > -1) &&
|
169
|
-
this._mailbox.viewedcomments(documentId).subscribe(e => {
|
170
|
-
this.model.viewed = e.time;
|
171
|
-
this.change.emit();
|
172
|
-
});
|
173
|
-
}
|
174
|
-
post(evt) {
|
175
|
-
this.sending = true;
|
176
|
-
const options = { ...evt };
|
177
|
-
if (this._replyTo)
|
178
|
-
options.parentId = this._replyTo.id;
|
179
|
-
this._mailbox.comment(this.model.documentId, options).subscribe({
|
180
|
-
next: c => {
|
181
|
-
this.model.comments.push(c);
|
182
|
-
this.input.clear();
|
183
|
-
this.model.viewed = c.time;
|
184
|
-
this.change.emit();
|
185
|
-
setTimeout(() => this._scrollToBottom());
|
186
|
-
this.sending = false;
|
187
|
-
}, error: () => {
|
188
|
-
this._sb.error();
|
189
|
-
this.sending = false;
|
190
|
-
}
|
191
|
-
});
|
192
|
-
}
|
193
|
-
ngOnDestroy() {
|
194
|
-
if (this._typingTask)
|
195
|
-
clearTimeout(this._typingTask);
|
196
|
-
this._destroy.next();
|
197
|
-
this._destroy.complete();
|
198
|
-
this._preserveDraft && this._persist(this.model.documentId.toString());
|
199
|
-
}
|
200
|
-
_persist(id) {
|
201
|
-
this.input.text && this.input.text.length &&
|
202
|
-
window.localStorage.setItem(id, this.input.text);
|
203
|
-
}
|
204
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: CommentsComponent, deps: [{ token: i1.AccountService }, { token: i2.SessionService }, { token: i3.PromptService }, { token: i4.TranslateService }, { token: i5.ChatInfo }, { token: i6.MailboxService }, { token: i7.HubService }, { token: BIZDOC_CONFIG }], target: i0.ɵɵFactoryTarget.Component }); }
|
205
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: CommentsComponent, selector: "bizdoc-comments", inputs: { model: "model" }, outputs: { change: "change" }, host: { classAttribute: "comments" }, viewQueries: [{ propertyName: "threadElement", first: true, predicate: ["thread"], descendants: true, read: ElementRef, static: true }, { propertyName: "input", first: true, predicate: EditInputComponent, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "@if (!model.comments.length) {\r\n <bizdoc-none icon=\"format_quote\"></bizdoc-none>\r\n}\r\n\r\n<div class=\"column comments-thread\" #thread (scroll)=\"onScroll($event)\">\r\n @for (c of model.comments; track c.id) {\r\n <ng-container role=\"listitem\">\r\n @if (!c.deleted || showDeleted) {\r\n <bizdoc-comment\r\n [model]=\"model\"\r\n [item]=\"c\"\r\n (reply)=\"reply(c)\"\r\n (deleted)=\"deleted(c)\">\r\n </bizdoc-comment>\r\n } @else {\r\n <a (click)=\"showDeleted = true\" class=\"comment-deleted\">{{'Deleted' | translate}}</a>\r\n }\r\n </ng-container>\r\n }\r\n</div>\r\n\r\n<div class=\"comments-typing\" [style.visibility]=\"typing ? 'visible': 'hidden'\">{{'Typing' | translate : typing}}</div>\r\n\r\n@if (replyName) {\r\n <div class=\"comments-reply\">\r\n <span [innerHTML]=\"replyName | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n <a class=\"modification\" (click)=\"clearReply()\">{{'Cancel'|translate}}</a>\r\n </div>\r\n}\r\n\r\n<bizdoc-edit-text (ok)=\"post($event)\" (change)=\"_textChange.next()\"\r\n placeholder=\"CommentHere\"\r\n [disabled]=\"sending\" (focus)=\"onFocus()\" (blur)=\"onBlur()\">\r\n</bizdoc-edit-text>\r\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;height:100%}.comments-thread{flex:1 1 auto;overflow:auto;padding:8px 12px 0}.comment-deleted{align-self:center;font-variant:small-caps}.comments-typing,.comments-reply{font-size:12px;padding:0 8px}.comments-reply .modification{font-size:medium}.modification{font-variant:small-caps}\n"], dependencies: [{ kind: "component", type: i8.EditInputComponent, selector: "bizdoc-edit-text", inputs: ["placeholder", "text", "image", "resource", "disabled", "autofocus", "cache"], outputs: ["change", "ok", "focus", "blur"] }, { kind: "component", type: i9.NoneComponent, selector: "bizdoc-none", inputs: ["title", "subtitle", "icon"] }, { kind: "component", type: i10.CommentComponent, selector: "bizdoc-comment", inputs: ["model", "item"], outputs: ["deleted", "reply"] }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }, { kind: "pipe", type: i12.SanitizeHtmlPipe, name: "sanitizeHtml" }] }); }
|
206
|
-
}
|
207
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: CommentsComponent, decorators: [{
|
208
|
-
type: Component,
|
209
|
-
args: [{ selector: 'bizdoc-comments', host: {
|
210
|
-
class: 'comments'
|
211
|
-
}, template: "@if (!model.comments.length) {\r\n <bizdoc-none icon=\"format_quote\"></bizdoc-none>\r\n}\r\n\r\n<div class=\"column comments-thread\" #thread (scroll)=\"onScroll($event)\">\r\n @for (c of model.comments; track c.id) {\r\n <ng-container role=\"listitem\">\r\n @if (!c.deleted || showDeleted) {\r\n <bizdoc-comment\r\n [model]=\"model\"\r\n [item]=\"c\"\r\n (reply)=\"reply(c)\"\r\n (deleted)=\"deleted(c)\">\r\n </bizdoc-comment>\r\n } @else {\r\n <a (click)=\"showDeleted = true\" class=\"comment-deleted\">{{'Deleted' | translate}}</a>\r\n }\r\n </ng-container>\r\n }\r\n</div>\r\n\r\n<div class=\"comments-typing\" [style.visibility]=\"typing ? 'visible': 'hidden'\">{{'Typing' | translate : typing}}</div>\r\n\r\n@if (replyName) {\r\n <div class=\"comments-reply\">\r\n <span [innerHTML]=\"replyName | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n <a class=\"modification\" (click)=\"clearReply()\">{{'Cancel'|translate}}</a>\r\n </div>\r\n}\r\n\r\n<bizdoc-edit-text (ok)=\"post($event)\" (change)=\"_textChange.next()\"\r\n placeholder=\"CommentHere\"\r\n [disabled]=\"sending\" (focus)=\"onFocus()\" (blur)=\"onBlur()\">\r\n</bizdoc-edit-text>\r\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;height:100%}.comments-thread{flex:1 1 auto;overflow:auto;padding:8px 12px 0}.comment-deleted{align-self:center;font-variant:small-caps}.comments-typing,.comments-reply{font-size:12px;padding:0 8px}.comments-reply .modification{font-size:medium}.modification{font-variant:small-caps}\n"] }]
|
212
|
-
}], ctorParameters: () => [{ type: i1.AccountService }, { type: i2.SessionService }, { type: i3.PromptService }, { type: i4.TranslateService }, { type: i5.ChatInfo }, { type: i6.MailboxService }, { type: i7.HubService }, { type: undefined, decorators: [{
|
213
|
-
type: Inject,
|
214
|
-
args: [BIZDOC_CONFIG]
|
215
|
-
}] }], propDecorators: { model: [{
|
216
|
-
type: Input
|
217
|
-
}], change: [{
|
218
|
-
type: Output
|
219
|
-
}], threadElement: [{
|
220
|
-
type: ViewChild,
|
221
|
-
args: ['thread', { read: ElementRef, static: true }]
|
222
|
-
}], input: [{
|
223
|
-
type: ViewChild,
|
224
|
-
args: [EditInputComponent, { static: true }]
|
225
|
-
}] } });
|
226
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2NvbXBvc2UvY29tbWVudHMvY29tbWVudHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2NvbXBvc2UvY29tbWVudHMvY29tbWVudHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxZQUFZLEVBQWEsU0FBUyxFQUFFLFVBQVUsRUFBaUIsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNsSyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFBZ0IsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFTdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFpQixNQUFNLHlDQUF5QyxDQUFDOzs7Ozs7Ozs7Ozs7OztBQUU1RixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsR0FBRyxFQUFFLG1CQUFtQixHQUFHLElBQUksQ0FBQztBQVU3RCx3QkFBd0I7QUFDeEIsTUFBTSxPQUFPLGlCQUFpQjtJQWdCNUIsb0JBQW9CO0lBQ3BCLFlBQW9CLFNBQXlCLEVBQ25DLFFBQXdCLEVBQ3hCLEdBQWtCLEVBQ2xCLFVBQTRCLEVBQzVCLEtBQWUsRUFDZixRQUF3QixFQUN4QixVQUFzQixFQUNDLE9BQXFCO1FBUGxDLGNBQVMsR0FBVCxTQUFTLENBQWdCO1FBQ25DLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ3hCLFFBQUcsR0FBSCxHQUFHLENBQWU7UUFDbEIsZUFBVSxHQUFWLFVBQVUsQ0FBa0I7UUFDNUIsVUFBSyxH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YSxNQUFNO3NCQUF4QixNQUFNO2dCQUVrRCxhQUFhO3NCQUFyRSxTQUFTO3VCQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDTixLQUFLO3NCQUFyRCxTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgT25EZXN0cm95LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25DaGFuZ2VzLCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIEFmdGVyVmlld0luaXQsIEluamVjdCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCwgZGVib3VuY2VUaW1lLCBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEJpekRvY0NvbmZpZywgQklaRE9DX0NPTkZJRyB9IGZyb20gJy4uLy4uL2NvcmUvY29uZmlndXJhdGlvbic7XHJcbmltcG9ydCB7IERvY3VtZW50TW9kZWwsIENvbW1lbnQsIFVzZXJJbmZvIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBNYWlsYm94U2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvbWFpbGJveC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSHViU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvaHViLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBY2NvdW50U2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvYWNjb3VudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvcHJvbXB0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDaGF0SW5mbyB9IGZyb20gJy4uLy4uL2NoYXQvY2hhdC1pbmZvJztcclxuaW1wb3J0IHsgRWRpdElucHV0Q29tcG9uZW50LCBFZGl0VGV4dEV2ZW50IH0gZnJvbSAnLi4vLi4vY29yZS90YWdnaW5nL2VkaXQtaW5wdXQuY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCBjb25zdCBUWVBJTkdfTk9USUZZID0gNTAwLCBUWVBJTkdfTUVTU0FHRV9USU1FID0gMTUwMDtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLWNvbW1lbnRzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29tbWVudHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvbW1lbnRzLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgaG9zdDoge1xyXG4gICAgY2xhc3M6ICdjb21tZW50cydcclxuICB9XHJcbn0pXHJcbi8qKiBjb21tZW50cyBjb21wb25lbnQqL1xyXG5leHBvcnQgY2xhc3MgQ29tbWVudHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcclxuICBASW5wdXQoKSBtb2RlbCE6IERvY3VtZW50TW9kZWw8YW55PjtcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgY2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIHNlbmRpbmcgPSBmYWxzZTtcclxuICBAVmlld0NoaWxkKCd0aHJlYWQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogdHJ1ZSB9KSB0aHJlYWRFbGVtZW50OiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoRWRpdElucHV0Q29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSBpbnB1dDogRWRpdElucHV0Q29tcG9uZW50O1xyXG4gIHR5cGluZz86IHN0cmluZyB8IG51bGw7XHJcbiAgc2hvd0RlbGV0ZWQgPSBmYWxzZTtcclxuICByZXBseU5hbWU/OiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfcmVwbHlUbz86IENvbW1lbnQ7XHJcbiAgcHJpdmF0ZSBfaW5Gb2N1cyA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX3RvcCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX3R5cGluZ1Rhc2s6IE5vZGVKUy5UaW1lb3V0O1xyXG4gIHJlYWRvbmx5IF90ZXh0Q2hhbmdlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwcml2YXRlIF9wcmVzZXJ2ZURyYWZ0PzogYm9vbGVhbjtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICAvKiogY29tbWVudHMgY3RvciAqL1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2FjY291bnRzOiBBY2NvdW50U2VydmljZSxcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2I6IFByb21wdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jaGF0OiBDaGF0SW5mbyxcclxuICAgIHByaXZhdGUgX21haWxib3g6IE1haWxib3hTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfbWVzc2FnaW5nOiBIdWJTZXJ2aWNlLFxyXG4gICAgQEluamVjdChCSVpET0NfQ09ORklHKSBwcml2YXRlIF9jb25maWc6IEJpekRvY0NvbmZpZykge1xyXG4gICAgdGhpcy5fcHJlc2VydmVEcmFmdCA9IF9jb25maWcuY29tbWVudHMgJiYgX2NvbmZpZy5jb21tZW50cy5wcmVzZXJ2ZURyYWZ0O1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX21lc3NhZ2luZy5jb21tZW50JC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSwgZmlsdGVyKGUgPT4gKGUuaWQgPT09IHRoaXMubW9kZWwuZG9jdW1lbnRJZCkpKS5zdWJzY3JpYmUoZSA9PiB7XHJcbiAgICAgIGlmICghdGhpcy5tb2RlbC5jb21tZW50cy5maW5kKGMgPT4gYy5pZCA9PT0gZS5tb2RlbC5pZCkpIHtcclxuICAgICAgICB0aGlzLm1vZGVsLmNvbW1lbnRzLnB1c2goZS5tb2RlbCk7XHJcbiAgICAgICAgaWYgKHRoaXMuX2luRm9jdXMpXHJcbiAgICAgICAgICB0aGlzLl92aWV3ZWQoKTtcclxuICAgICAgICB0aGlzLmNoYW5nZS5lbWl0KCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5fbWVzc2FnaW5nLmNvbW1lbnRUeXBpbmckLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpLCBmaWx0ZXIoZSA9PiBlLmlkID09PSB0aGlzLm1vZGVsLmRvY3VtZW50SWQpKS5cclxuICAgICAgc3Vic2NyaWJlKGUgPT4ge1xyXG4gICAgICAgIHRoaXMuX2FjY291bnRzLmdldChlLnVzZXJJZCkuc3Vic2NyaWJlKHUgPT4ge1xyXG4gICAgICAgICAgdGhpcy50eXBpbmcgPSB1Lm5hbWU7XHJcbiAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5fdHlwaW5nVGFzayk7XHJcbiAgICAgICAgICB0aGlzLl90eXBpbmdUYXNrID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLnR5cGluZyA9IG51bGwsIFRZUElOR19NRVNTQUdFX1RJTUUpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy5fbWVzc2FnaW5nLnZvdGUkLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpLCBmaWx0ZXIoZSA9PiBlLmlkID09PSB0aGlzLm1vZGVsLmRvY3VtZW50SWQpKS5zdWJzY3JpYmUoZSA9PiB7XHJcbiAgICAgIGNvbnN0IGNvbW1lbnQgPSB0aGlzLm1vZGVsLmNvbW1lbnRzLmZpbmQoYyA9PiBjLmlkID09PSBlLmNvbW1lbnRJZCk7XHJcbiAgICAgIGNvbW1lbnQgJiYgKGNvbW1lbnQudm90ZXMgPSBlLnZvdGVzKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fbWVzc2FnaW5nLmNvbW1lbnRVcGRhdGUkLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpLCBmaWx0ZXIoZSA9PiBlLmlkID09PSB0aGlzLm1vZGVsLmRvY3VtZW50SWQpKS5zdWJzY3JpYmUoZSA9PiB7XHJcbiAgICAgIGNvbnN0IGNvbW1lbnQgPSB0aGlzLm1vZGVsLmNvbW1lbnRzLmZpbmQoYyA9PiBjLmlkID09PSBlLm1vZGVsLmlkKSE7XHJcbiAgICAgIE9iamVjdC5hc3NpZ24oY29tbWVudCwgZS5tb2RlbCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX21lc3NhZ2luZy5jb21tZW50RGVsZXRlJC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSwgZmlsdGVyKGUgPT4gZS5pZCA9PT0gdGhpcy5tb2RlbC5kb2N1bWVudElkKSkuc3Vic2NyaWJlKGUgPT4ge1xyXG4gICAgICBjb25zdCBjb21tZW50ID0gdGhpcy5tb2RlbC5jb21tZW50cy5maW5kKGMgPT4gYy5pZCA9PT0gZS5pZCkhO1xyXG4gICAgICBjb21tZW50LmRlbGV0ZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLmNoYW5nZS5lbWl0KCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX3RleHRDaGFuZ2UucGlwZShkZWJvdW5jZVRpbWUoVFlQSU5HX05PVElGWSksIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKCgpID0+XHJcbiAgICAgIHRoaXMuX21haWxib3gudHlwaW5nKHRoaXMubW9kZWwuZG9jdW1lbnRJZCkuc3Vic2NyaWJlKCkpO1xyXG4gIH1cclxuICBwcml2YXRlIF9mb3JtYXRVc2VyRWxlbWVudChwZXJzb246IFVzZXJJbmZvKSB7XHJcbiAgICBpZiAodGhpcy5fY29uZmlnLmNoYXQgIT09IGZhbHNlKVxyXG4gICAgICByZXR1cm4gdGhpcy5fY2hhdC5mb3JtYXQocGVyc29uKTtcclxuICAgIGVsc2VcclxuICAgICAgcmV0dXJuIHBlcnNvbi5uaWNrIHx8IHBlcnNvbi5uYW1lO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBDaGF0XHJcbiAgICogQHBhcmFtIGVcclxuICAgKi9cclxuICBjaGF0KGU6IE1vdXNlRXZlbnQpIHtcclxuICAgIGNvbnN0IHVzZXJJZCA9IChlLnRhcmdldCBhcyBIVE1MRWxlbWVudCkuZ2V0QXR0cmlidXRlKCdkYXRhLWluZm8nKTtcclxuICAgIHVzZXJJZCAmJlxyXG4gICAgICB0aGlzLl9jaGF0Lm9wZW4odXNlcklkKTtcclxuICB9XHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgY29uc3QgY2hhbmdlID0gY2hhbmdlc1snbW9kZWwnXTtcclxuICAgIGlmICh0aGlzLl9wcmVzZXJ2ZURyYWZ0KSB7XHJcbiAgICAgICFjaGFuZ2UuZmlyc3RDaGFuZ2UgJiYgdGhpcy5fcGVyc2lzdCgoY2hhbmdlLnByZXZpb3VzVmFsdWUgYXMgRG9jdW1lbnRNb2RlbCkuZG9jdW1lbnRJZC50b1N0cmluZygpKTtcclxuXHJcbiAgICAgIGNvbnN0IHRleHQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLm1vZGVsLmRvY3VtZW50SWQudG9TdHJpbmcoKSk7XHJcbiAgICAgIGlmICh0ZXh0KSB0aGlzLmlucHV0LnRleHQgPSB0ZXh0O1xyXG4gICAgfVxyXG4gICAgdGhpcy5fc2Nyb2xsVG9Cb3R0b20oKTtcclxuICB9XHJcbiAgZ2V0IHVucmVhZENvbW1lbnRzKCk6IG51bWJlciB7XHJcbiAgICBpZiAoIXRoaXMubW9kZWwudmlld2VkKSByZXR1cm4gdGhpcy5tb2RlbC5jb21tZW50cy5sZW5ndGg7XHJcbiAgICBjb25zdCBtZSA9IHRoaXMuX3Nlc3Npb24udXNlcklkO1xyXG4gICAgbGV0IG4gPSAwO1xyXG4gICAgZm9yIChsZXQgaSA9IHRoaXMubW9kZWwuY29tbWVudHMubGVuZ3RoOyBpID4gMDsgaS0tKSB7XHJcbiAgICAgIGxldCBjb21tZW50ID0gdGhpcy5tb2RlbC5jb21tZW50c1tpIC0gMV07XHJcbiAgICAgIGlmICgoY29tbWVudC5ieUlkIHx8IGNvbW1lbnQudXNlcklkKSA9PT0gbWUpIGJyZWFrO1xyXG4gICAgICBpZiAoIWNvbW1lbnQuZGVsZXRlZCAmJiBjb21tZW50LnRpbWUgPiB0aGlzLm1vZGVsLnZpZXdlZClcclxuICAgICAgICBuKys7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG47XHJcbiAgfVxyXG4gIGRlbGV0ZWQoaXRlbTogQ29tbWVudCkge1xyXG4gIH1cclxuICByZXBseShpdGVtOiBDb21tZW50KSB7XHJcbiAgICB0aGlzLl9yZXBseVRvID0gaXRlbTtcclxuICAgIHRoaXMuX2FjY291bnRzLmdldChpdGVtLmJ5SWQgfHwgaXRlbS51c2VySWQpLlxyXG4gICAgICBzdWJzY3JpYmUodSA9PlxyXG4gICAgICAgIHRoaXMucmVwbHlOYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnUmVwbHlUbycsIHRoaXMuX2Zvcm1hdFVzZXJFbGVtZW50KHUpKSk7XHJcbiAgICB0aGlzLmlucHV0LmZvY3VzKCk7XHJcbiAgfVxyXG4gIGNsZWFyUmVwbHkoKSB7XHJcbiAgICB0aGlzLl9yZXBseVRvID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5yZXBseU5hbWUgPSB1bmRlZmluZWQ7XHJcbiAgfVxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIGNvbnN0IHsgY29tbWVudHMgfSA9IHRoaXMubW9kZWw7XHJcbiAgICBpZiAoIWNvbW1lbnRzLmxlbmd0aClcclxuICAgICAgdGhpcy5mb2N1cygpO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIGNvbnN0IGNvbW1lbnQgPSBjb21tZW50c1tjb21tZW50cy5sZW5ndGggLSAxXTtcclxuICAgICAgaWYgKChjb21tZW50LmJ5SWQgfHwgY29tbWVudC51c2VySWQpID09PSB0aGlzLl9zZXNzaW9uLnVzZXJJZClcclxuICAgICAgICB0aGlzLmZvY3VzKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9zY3JvbGxUb0JvdHRvbSgpO1xyXG4gIH1cclxuICBwdWJsaWMgZm9jdXMoKSB7XHJcbiAgICB0aGlzLmlucHV0LmZvY3VzKCk7XHJcbiAgfVxyXG4gIG9uU2Nyb2xsKGV2dDogRXZlbnQpIHtcclxuICAgIGlmICgoZXZ0LnRhcmdldCBhcyBIVE1MRGl2RWxlbWVudCkuc2Nyb2xsVG9wID09PSAwICYmIHRoaXMubW9kZWwuY29tbWVudHMubGVuZ3RoICYmICF0aGlzLl90b3ApIHtcclxuICAgICAgY29uc3QgdGltZSA9IHRoaXMubW9kZWwuY29tbWVudHMuc29ydCgoYzAsIGMxKSA9PiBjMC50aW1lID4gYzEudGltZSA/IDEgOiAtMSlbMF0udGltZTtcclxuICAgICAgdGhpcy5fbWFpbGJveC5jb21tZW50cyh0aGlzLm1vZGVsLmRvY3VtZW50SWQsIHRpbWUpLnN1YnNjcmliZShjcyA9PiB7XHJcbiAgICAgICAgaWYgKGNzLmxlbmd0aCA9PT0gMClcclxuICAgICAgICAgIHRoaXMuX3RvcCA9IHRydWU7XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLm1vZGVsLmNvbW1lbnRzID0gY3MucmV2ZXJzZSgpLmNvbmNhdCh0aGlzLm1vZGVsLmNvbW1lbnRzKVxyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLl9zY3JvbGxUb0JvdHRvbSgpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBwcml2YXRlIF9zY3JvbGxUb0JvdHRvbSgpOiB2b2lkIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIHRoaXMudGhyZWFkRWxlbWVudC5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcCA9IHRoaXMudGhyZWFkRWxlbWVudC5uYXRpdmVFbGVtZW50LnNjcm9sbEhlaWdodDtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgY29uc29sZS5lcnJvcihlKVxyXG4gICAgfVxyXG4gIH1cclxuICBvbkZvY3VzKCkge1xyXG4gICAgdGhpcy5faW5Gb2N1cyA9IHRydWU7XHJcbiAgICB0aGlzLl92aWV3ZWQoKTtcclxuICB9XHJcbiAgb25CbHVyKCkge1xyXG4gICAgdGhpcy5faW5Gb2N1cyA9IGZhbHNlO1xyXG4gIH1cclxuICBwcml2YXRlIF92aWV3ZWQoKSB7XHJcbiAgICBjb25zdCB7IHZpZXdlZCwgY29tbWVudHMsIGRvY3VtZW50SWQgfSA9IHRoaXMubW9kZWw7XHJcbiAgICBjb21tZW50cy5sZW5ndGggJiYgKCF2aWV3ZWQgfHwgY29tbWVudHMuZmluZEluZGV4KGMgPT4gYy50aW1lID4gdmlld2VkKSA+IC0xKSAmJlxyXG4gICAgICB0aGlzLl9tYWlsYm94LnZpZXdlZGNvbW1lbnRzKGRvY3VtZW50SWQpLnN1YnNjcmliZShlID0+IHtcclxuICAgICAgICB0aGlzLm1vZGVsLnZpZXdlZCA9IGUudGltZTtcclxuICAgICAgICB0aGlzLmNoYW5nZS5lbWl0KCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICBwb3N0KGV2dDogRWRpdFRleHRFdmVudCkge1xyXG4gICAgdGhpcy5zZW5kaW5nID0gdHJ1ZTtcclxuICAgIGNvbnN0IG9wdGlvbnMgPSB7IC4uLmV2dCB9IGFzIHtcclxuICAgICAgdGV4dD86IHN0cmluZyxcclxuICAgICAgcmVzb3VyY2U/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9LFxyXG4gICAgICBpbWFnZT86IHN0cmluZyxcclxuICAgICAgcGFyZW50SWQ/OiBudW1iZXJcclxuICAgIH07XHJcbiAgICBpZiAodGhpcy5fcmVwbHlUbylcclxuICAgICAgb3B0aW9ucy5wYXJlbnRJZCA9IHRoaXMuX3JlcGx5VG8uaWQ7XHJcbiAgICB0aGlzLl9tYWlsYm94LmNvbW1lbnQodGhpcy5tb2RlbC5kb2N1bWVudElkLCBvcHRpb25zKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiBjID0+IHtcclxuICAgICAgICB0aGlzLm1vZGVsLmNvbW1lbnRzLnB1c2goYyk7XHJcbiAgICAgICAgdGhpcy5pbnB1dC5jbGVhcigpO1xyXG4gICAgICAgIHRoaXMubW9kZWwudmlld2VkID0gYy50aW1lO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlLmVtaXQoKTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuX3Njcm9sbFRvQm90dG9tKCkpO1xyXG4gICAgICAgIHRoaXMuc2VuZGluZyA9IGZhbHNlO1xyXG4gICAgICB9LCBlcnJvcjogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX3NiLmVycm9yKCk7XHJcbiAgICAgICAgdGhpcy5zZW5kaW5nID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl90eXBpbmdUYXNrKSBjbGVhclRpbWVvdXQodGhpcy5fdHlwaW5nVGFzayk7XHJcbiAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcclxuXHJcbiAgICB0aGlzLl9wcmVzZXJ2ZURyYWZ0ICYmIHRoaXMuX3BlcnNpc3QodGhpcy5tb2RlbC5kb2N1bWVudElkLnRvU3RyaW5nKCkpO1xyXG4gIH1cclxuICBwcml2YXRlIF9wZXJzaXN0KGlkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuaW5wdXQudGV4dCAmJiB0aGlzLmlucHV0LnRleHQubGVuZ3RoICYmXHJcbiAgICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShpZCwgdGhpcy5pbnB1dC50ZXh0KTtcclxuICB9XHJcbn1cclxuIiwiQGlmICghbW9kZWwuY29tbWVudHMubGVuZ3RoKSB7XHJcbiAgPGJpemRvYy1ub25lIGljb249XCJmb3JtYXRfcXVvdGVcIj48L2JpemRvYy1ub25lPlxyXG59XHJcblxyXG48ZGl2IGNsYXNzPVwiY29sdW1uIGNvbW1lbnRzLXRocmVhZFwiICN0aHJlYWQgKHNjcm9sbCk9XCJvblNjcm9sbCgkZXZlbnQpXCI+XHJcbiAgQGZvciAoYyBvZiBtb2RlbC5jb21tZW50czsgdHJhY2sgYy5pZCkge1xyXG4gICAgPG5nLWNvbnRhaW5lciByb2xlPVwibGlzdGl0ZW1cIj5cclxuICAgICAgQGlmICghYy5kZWxldGVkIHx8IHNob3dEZWxldGVkKSB7XHJcbiAgICAgICAgPGJpemRvYy1jb21tZW50XHJcbiAgICAgICAgICBbbW9kZWxdPVwibW9kZWxcIlxyXG4gICAgICAgICAgW2l0ZW1dPVwiY1wiXHJcbiAgICAgICAgICAocmVwbHkpPVwicmVwbHkoYylcIlxyXG4gICAgICAgICAgKGRlbGV0ZWQpPVwiZGVsZXRlZChjKVwiPlxyXG4gICAgICAgIDwvYml6ZG9jLWNvbW1lbnQ+XHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgIDxhIChjbGljayk9XCJzaG93RGVsZXRlZCA9IHRydWVcIiBjbGFzcz1cImNvbW1lbnQtZGVsZXRlZFwiPnt7J0RlbGV0ZWQnIHwgdHJhbnNsYXRlfX08L2E+XHJcbiAgICAgIH1cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIH1cclxuPC9kaXY+XHJcblxyXG48ZGl2IGNsYXNzPVwiY29tbWVudHMtdHlwaW5nXCIgW3N0eWxlLnZpc2liaWxpdHldPVwidHlwaW5nID8gJ3Zpc2libGUnOiAnaGlkZGVuJ1wiPnt7J1R5cGluZycgfCB0cmFuc2xhdGUgOiB0eXBpbmd9fTwvZGl2PlxyXG5cclxuQGlmIChyZXBseU5hbWUpIHtcclxuICA8ZGl2IGNsYXNzPVwiY29tbWVudHMtcmVwbHlcIj5cclxuICAgIDxzcGFuIFtpbm5lckhUTUxdPVwicmVwbHlOYW1lIHwgc2FuaXRpemVIdG1sXCIgKGNsaWNrKT1cImNoYXQoJGV2ZW50KVwiPjwvc3Bhbj5cclxuICAgICZuYnNwOyA8YSBjbGFzcz1cIm1vZGlmaWNhdGlvblwiIChjbGljayk9XCJjbGVhclJlcGx5KClcIj57eydDYW5jZWwnfHRyYW5zbGF0ZX19PC9hPlxyXG4gIDwvZGl2PlxyXG59XHJcblxyXG48Yml6ZG9jLWVkaXQtdGV4dCAob2spPVwicG9zdCgkZXZlbnQpXCIgKGNoYW5nZSk9XCJfdGV4dENoYW5nZS5uZXh0KClcIlxyXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkNvbW1lbnRIZXJlXCJcclxuICBbZGlzYWJsZWRdPVwic2VuZGluZ1wiIChmb2N1cyk9XCJvbkZvY3VzKClcIiAoYmx1cik9XCJvbkJsdXIoKVwiPlxyXG48L2JpemRvYy1lZGl0LXRleHQ+XHJcbiJdfQ==
|
@@ -1,40 +0,0 @@
|
|
1
|
-
import { Component, ViewChild } from '@angular/core';
|
2
|
-
import { Subject } from 'rxjs';
|
3
|
-
import { takeUntil } from 'rxjs/operators';
|
4
|
-
import { CommentsComponent } from './comments.component';
|
5
|
-
import * as i0 from "@angular/core";
|
6
|
-
import * as i1 from "../../core/translate.service";
|
7
|
-
import * as i2 from "../../core/slots/pane-ref";
|
8
|
-
import * as i3 from "./comments.component";
|
9
|
-
export class CommentsPaneComponent {
|
10
|
-
get comments() {
|
11
|
-
return this._comments;
|
12
|
-
}
|
13
|
-
constructor(translate, _pane) {
|
14
|
-
this._pane = _pane;
|
15
|
-
this._destroy = new Subject();
|
16
|
-
_pane.title = translate.get('Comments');
|
17
|
-
_pane.dataChange().subscribe(d => {
|
18
|
-
this.model = d['item'];
|
19
|
-
this._pane.group = `#${this.model.number}`;
|
20
|
-
});
|
21
|
-
}
|
22
|
-
ngOnInit() {
|
23
|
-
this._comments.change.pipe(takeUntil(this._destroy)).
|
24
|
-
subscribe(() => this._pane.badge = this._comments.unreadComments);
|
25
|
-
}
|
26
|
-
ngOnDestroy() {
|
27
|
-
this._destroy.next();
|
28
|
-
this._destroy.complete();
|
29
|
-
}
|
30
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: CommentsPaneComponent, deps: [{ token: i1.TranslateService }, { token: i2.PaneRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
31
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: CommentsPaneComponent, selector: "ng-component", viewQueries: [{ propertyName: "_comments", first: true, predicate: CommentsComponent, descendants: true, static: true }], ngImport: i0, template: `<bizdoc-comments [model]=model></bizdoc-comments>`, isInline: true, styles: [":host{min-width:320px;width:100%}\n"], dependencies: [{ kind: "component", type: i3.CommentsComponent, selector: "bizdoc-comments", inputs: ["model"], outputs: ["change"] }] }); }
|
32
|
-
}
|
33
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: CommentsPaneComponent, decorators: [{
|
34
|
-
type: Component,
|
35
|
-
args: [{ template: `<bizdoc-comments [model]=model></bizdoc-comments>`, styles: [":host{min-width:320px;width:100%}\n"] }]
|
36
|
-
}], ctorParameters: () => [{ type: i1.TranslateService }, { type: i2.PaneRef }], propDecorators: { _comments: [{
|
37
|
-
type: ViewChild,
|
38
|
-
args: [CommentsComponent, { static: true }]
|
39
|
-
}] } });
|
40
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudHMucGFuZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvY29tcG9zZS9jb21tZW50cy9jb21tZW50cy5wYW5lLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJM0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7O0FBU3RELE1BQU0sT0FDRCxxQkFBcUI7SUFJM0IsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsWUFBWSxTQUEyQixFQUFVLEtBQXFDO1FBQXJDLFVBQUssR0FBTCxLQUFLLENBQWdDO1FBRHJFLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRTlDLEtBQUssQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4QyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM3QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxRQUFRO1FBQ0osSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbEQsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs4R0F0QksscUJBQXFCO2tHQUFyQixxQkFBcUIsK0ZBRWhCLGlCQUFpQiw4REFUbEIsbURBQW1EOzsyRkFPdkQscUJBQXFCO2tCQVI1QixTQUFTOytCQUNFLG1EQUFtRDsyR0FVckQsU0FBUztzQkFEaEIsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IERvY3VtZW50TW9kZWwgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IFBhbmVSZWYgfSBmcm9tICcuLi8uLi9jb3JlL3Nsb3RzL3BhbmUtcmVmJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb21tZW50c0NvbXBvbmVudCB9IGZyb20gJy4vY29tbWVudHMuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlOiBgPGJpemRvYy1jb21tZW50cyBbbW9kZWxdPW1vZGVsPjwvYml6ZG9jLWNvbW1lbnRzPmAsXHJcbiAgc3R5bGVzOiBbXHJcbiAgICBgOmhvc3R7XHJcbiAgbWluLXdpZHRoOiAzMjBweDtcclxuICB3aWR0aDogMTAwJTtcclxufWAgIF1cclxufSkgZXhwb3J0XHJcbiAgY2xhc3MgQ29tbWVudHNQYW5lQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIG1vZGVsOiBEb2N1bWVudE1vZGVsPGFueT47XHJcbiAgQFZpZXdDaGlsZChDb21tZW50c0NvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcclxuICBwcml2YXRlIF9jb21tZW50czogQ29tbWVudHNDb21wb25lbnQ7XHJcbiAgcHVibGljIGdldCBjb21tZW50cygpOiBDb21tZW50c0NvbXBvbmVudCB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29tbWVudHM7XHJcbiAgfVxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIGNvbnN0cnVjdG9yKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgcHJpdmF0ZSBfcGFuZTogUGFuZVJlZjxDb21tZW50c1BhbmVDb21wb25lbnQ+KSB7XHJcbiAgICBfcGFuZS50aXRsZSA9IHRyYW5zbGF0ZS5nZXQoJ0NvbW1lbnRzJyk7XHJcbiAgICBfcGFuZS5kYXRhQ2hhbmdlKCkuc3Vic2NyaWJlKGQgPT4ge1xyXG4gICAgICB0aGlzLm1vZGVsID0gZFsnaXRlbSddO1xyXG4gICAgICB0aGlzLl9wYW5lLmdyb3VwID0gYCMke3RoaXMubW9kZWwubnVtYmVyfWA7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7IFxyXG4gICAgICB0aGlzLl9jb21tZW50cy5jaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLlxyXG4gICAgICAgIHN1YnNjcmliZSgoKSA9PiB0aGlzLl9wYW5lLmJhZGdlID0gdGhpcy5fY29tbWVudHMudW5yZWFkQ29tbWVudHMpO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Rlc3Ryb3kubmV4dCgpO1xyXG4gICAgdGhpcy5fZGVzdHJveS5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
@@ -1,32 +0,0 @@
|
|
1
|
-
import { Component, Inject } from '@angular/core';
|
2
|
-
import { POPUP_DATA } from '../../core/popup/popup.component';
|
3
|
-
import * as i0 from "@angular/core";
|
4
|
-
import * as i1 from "../../core/popup/popup-ref";
|
5
|
-
import * as i2 from "../../core/prompt.service";
|
6
|
-
import * as i3 from "../../core/mailbox.service";
|
7
|
-
import * as i4 from "../../core/tagging/edit-input.component";
|
8
|
-
export class EditCommentComponent {
|
9
|
-
constructor(_popupRef, data, _sb, _mailbox) {
|
10
|
-
this._popupRef = _popupRef;
|
11
|
-
this.data = data;
|
12
|
-
this._sb = _sb;
|
13
|
-
this._mailbox = _mailbox;
|
14
|
-
}
|
15
|
-
ok(evt) {
|
16
|
-
this.sending = true;
|
17
|
-
this._mailbox.commentupdate(this.data.documentId, this.data.id, evt).subscribe(c => this._popupRef.close(c), () => {
|
18
|
-
this.sending = false;
|
19
|
-
this._sb.error();
|
20
|
-
});
|
21
|
-
}
|
22
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: EditCommentComponent, deps: [{ token: i1.PopupRef }, { token: POPUP_DATA }, { token: i2.PromptService }, { token: i3.MailboxService }], target: i0.ɵɵFactoryTarget.Component }); }
|
23
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: EditCommentComponent, selector: "bizdoc-edit-comment", ngImport: i0, template: "<bizdoc-edit-text (ok)=\"ok($event)\"\r\n [resource]=\"data.resource\"\r\n [text]=\"data.text\"\r\n placeholder=\"CommentHere\"\r\n [image]=\"data.image\"\r\n [disabled]=\"sending\" autofocus></bizdoc-edit-text>\r\n", dependencies: [{ kind: "component", type: i4.EditInputComponent, selector: "bizdoc-edit-text", inputs: ["placeholder", "text", "image", "resource", "disabled", "autofocus", "cache"], outputs: ["change", "ok", "focus", "blur"] }] }); }
|
24
|
-
}
|
25
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: EditCommentComponent, decorators: [{
|
26
|
-
type: Component,
|
27
|
-
args: [{ selector: 'bizdoc-edit-comment', template: "<bizdoc-edit-text (ok)=\"ok($event)\"\r\n [resource]=\"data.resource\"\r\n [text]=\"data.text\"\r\n placeholder=\"CommentHere\"\r\n [image]=\"data.image\"\r\n [disabled]=\"sending\" autofocus></bizdoc-edit-text>\r\n" }]
|
28
|
-
}], ctorParameters: () => [{ type: i1.PopupRef }, { type: undefined, decorators: [{
|
29
|
-
type: Inject,
|
30
|
-
args: [POPUP_DATA]
|
31
|
-
}] }, { type: i2.PromptService }, { type: i3.MailboxService }] });
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1jb21tZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9jb21wb3NlL2NvbW1lbnRzL2VkaXQtY29tbWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvY29tcG9zZS9jb21tZW50cy9lZGl0LWNvbW1lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7QUFROUQsTUFBTSxPQUFPLG9CQUFvQjtJQUUvQixZQUNVLFNBQXlDLEVBQ3RCLElBQWlCLEVBQ3BDLEdBQWtCLEVBQ2xCLFFBQXdCO1FBSHhCLGNBQVMsR0FBVCxTQUFTLENBQWdDO1FBQ3RCLFNBQUksR0FBSixJQUFJLENBQWE7UUFDcEMsUUFBRyxHQUFILEdBQUcsQ0FBZTtRQUNsQixhQUFRLEdBQVIsUUFBUSxDQUFnQjtJQUNsQyxDQUFDO0lBQ0QsRUFBRSxDQUFDLEdBQWtCO1FBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUNqRixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUU7WUFDNUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDckIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBZlUsb0JBQW9CLDBDQUlyQixVQUFVO2tHQUpULG9CQUFvQiwyRENYakMsOFNBTUE7OzJGREthLG9CQUFvQjtrQkFKaEMsU0FBUzsrQkFDRSxxQkFBcUI7OzBCQU81QixNQUFNOzJCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQcm9tcHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9wcm9tcHQuc2VydmljZSc7XHJcbmltcG9ydCB7IE1haWxib3hTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9tYWlsYm94LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQT1BVUF9EQVRBIH0gZnJvbSAnLi4vLi4vY29yZS9wb3B1cC9wb3B1cC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQb3B1cFJlZiB9IGZyb20gXCIuLi8uLi9jb3JlL3BvcHVwL3BvcHVwLXJlZlwiO1xyXG5pbXBvcnQgeyBFZGl0VGV4dEV2ZW50IH0gZnJvbSAnLi4vLi4vY29yZS90YWdnaW5nL2VkaXQtaW5wdXQuY29tcG9uZW50JztcclxuIFxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1lZGl0LWNvbW1lbnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9lZGl0LWNvbW1lbnQuY29tcG9uZW50Lmh0bWwnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRWRpdENvbW1lbnRDb21wb25lbnQge1xyXG4gIHNlbmRpbmc6IGJvb2xlYW47XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9wb3B1cFJlZjogUG9wdXBSZWY8RWRpdENvbW1lbnRDb21wb25lbnQ+LFxyXG4gICAgQEluamVjdChQT1BVUF9EQVRBKSBwdWJsaWMgZGF0YTogQ29tbWVudERhdGEsXHJcbiAgICBwcml2YXRlIF9zYjogUHJvbXB0U2VydmljZSxcclxuICAgIHByaXZhdGUgX21haWxib3g6IE1haWxib3hTZXJ2aWNlKSB7XHJcbiAgfVxyXG4gIG9rKGV2dDogRWRpdFRleHRFdmVudCkge1xyXG4gICAgdGhpcy5zZW5kaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuX21haWxib3guY29tbWVudHVwZGF0ZSh0aGlzLmRhdGEuZG9jdW1lbnRJZCwgdGhpcy5kYXRhLmlkLCBldnQpLnN1YnNjcmliZShjID0+XHJcbiAgICAgIHRoaXMuX3BvcHVwUmVmLmNsb3NlKGMpLCAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZW5kaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fc2IuZXJyb3IoKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29tbWVudERhdGEge1xyXG4gIGRvY3VtZW50SWQ6IGFueTtcclxuICBpZDogbnVtYmVyO1xyXG4gIGltYWdlPzogc3RyaW5nO1xyXG4gIHRleHQ/OiBzdHJpbmc7XHJcbiAgcmVzb3VyY2U/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xyXG59XHJcbiIsIjxiaXpkb2MtZWRpdC10ZXh0IChvayk9XCJvaygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgW3Jlc291cmNlXT1cImRhdGEucmVzb3VyY2VcIlxyXG4gICAgICAgICAgICAgICAgICBbdGV4dF09XCJkYXRhLnRleHRcIlxyXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkNvbW1lbnRIZXJlXCJcclxuICAgICAgICAgICAgICAgICAgW2ltYWdlXT1cImRhdGEuaW1hZ2VcIlxyXG4gICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwic2VuZGluZ1wiIGF1dG9mb2N1cz48L2JpemRvYy1lZGl0LXRleHQ+XHJcbiJdfQ==
|