@bizdoc/core 1.13.14 → 1.13.15
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 +3 -3
- package/assets/themes/dark.min.css +3 -3
- package/assets/themes/deep-purple-light-blue.min.css +28 -26
- package/assets/themes/deep-purple-teal.min.css +4 -4
- package/assets/themes/default.min.css +4 -4
- package/assets/themes/green.min.css +3 -3
- package/assets/themes/indigo.min.css +3 -3
- package/esm2020/lib/admin/admin-dismiss.service.mjs +3 -3
- package/esm2020/lib/admin/admin-menu.component.mjs +3 -3
- package/esm2020/lib/admin/core/ace.input.mjs +3 -3
- package/esm2020/lib/admin/core/color-picker.input.mjs +3 -3
- package/esm2020/lib/admin/core/search.input.mjs +3 -3
- package/esm2020/lib/admin/diff/configuration-diff.component.mjs +3 -3
- package/esm2020/lib/admin/document-trace/document-trace.component.mjs +3 -3
- package/esm2020/lib/admin/document-trace/reassign.dialog.mjs +3 -3
- package/esm2020/lib/admin/document-trace/trace-element.component.mjs +3 -3
- package/esm2020/lib/admin/form/form.resolve.service.mjs +3 -3
- package/esm2020/lib/admin/form/form.service.mjs +3 -3
- package/esm2020/lib/admin/form/workflow/node.component.mjs +3 -3
- package/esm2020/lib/admin/form/workflow/role-node.component.mjs +3 -3
- package/esm2020/lib/admin/form/workflow/workflow.component.mjs +3 -3
- package/esm2020/lib/admin/indices/manage-cube-index.component.mjs +3 -3
- package/esm2020/lib/admin/patterns/patterns.component.mjs +3 -3
- package/esm2020/lib/admin/permissions/permissions.component.mjs +3 -3
- package/esm2020/lib/admin/positions/positions-popup.component.mjs +3 -3
- package/esm2020/lib/admin/positions/positions.component.mjs +3 -3
- package/esm2020/lib/admin/profiler/profiler.component.mjs +3 -3
- package/esm2020/lib/admin/utility-wrapper.component.mjs +3 -3
- package/esm2020/lib/admin/utility.pane.component.mjs +3 -3
- package/esm2020/lib/app.component.mjs +6 -6
- package/esm2020/lib/bizdoc.module.mjs +4 -4
- package/esm2020/lib/browse/browse-items.component.mjs +3 -3
- package/esm2020/lib/browse/browse.mobile.component.mjs +3 -3
- package/esm2020/lib/browse/browse.pane.component.mjs +3 -3
- package/esm2020/lib/browse/expanded-item/expanded-item.component.mjs +3 -3
- package/esm2020/lib/browse/filter/filter.component.mjs +3 -3
- package/esm2020/lib/browse/folders-menu.component.mjs +3 -3
- package/esm2020/lib/chat/chat-info.mjs +3 -3
- package/esm2020/lib/chat/chat.mobile.component.mjs +3 -3
- package/esm2020/lib/chat/chat.service.mjs +3 -3
- package/esm2020/lib/chat/contacts.component.mjs +6 -6
- package/esm2020/lib/chat/contacts.pane.component.mjs +3 -3
- package/esm2020/lib/chat/conversation.component.mjs +3 -3
- package/esm2020/lib/chat/conversation.pane.component.mjs +3 -3
- package/esm2020/lib/compose/action/action-picker.component.mjs +3 -3
- package/esm2020/lib/compose/action/action.dialog.mjs +3 -3
- package/esm2020/lib/compose/action/action.pane.dialog.exp.mjs +3 -3
- package/esm2020/lib/compose/action/assign-action.component.mjs +3 -3
- package/esm2020/lib/compose/action/return-action.component.mjs +3 -3
- package/esm2020/lib/compose/attachments/attachments.component.mjs +3 -3
- package/esm2020/lib/compose/attachments/preview/attachment-preview.component.mjs +3 -3
- package/esm2020/lib/compose/attachments/progress-button.directive.mjs +3 -3
- package/esm2020/lib/compose/can-deactivate-changes.service.mjs +3 -3
- package/esm2020/lib/compose/comments/Comments.pane.component.mjs +3 -3
- package/esm2020/lib/compose/comments/comment.component.mjs +3 -3
- package/esm2020/lib/compose/comments/comments.component.mjs +3 -3
- package/esm2020/lib/compose/comments/edit-comment.component.mjs +3 -3
- package/esm2020/lib/compose/comments/edits.component.mjs +3 -3
- package/esm2020/lib/compose/comments/quick-comment.component.exp.mjs +3 -3
- package/esm2020/lib/compose/comments/votes.component.mjs +3 -3
- package/esm2020/lib/compose/compose-resolve.service.mjs +6 -6
- package/esm2020/lib/compose/compose.mobile.component.mjs +3 -3
- package/esm2020/lib/compose/compose.pane.component.mjs +3 -3
- package/esm2020/lib/compose/copy/copy.dialog.mjs +3 -3
- package/esm2020/lib/compose/dismiss.service.mjs +3 -3
- package/esm2020/lib/compose/document-resolver.service.mjs +3 -3
- package/esm2020/lib/compose/document.component.mjs +3 -3
- package/esm2020/lib/compose/document.mobile.component.mjs +3 -3
- package/esm2020/lib/compose/document.pane.component.mjs +3 -3
- package/esm2020/lib/compose/events/events.component.mjs +3 -3
- package/esm2020/lib/compose/form-selector/form-selector.sheet.mjs +3 -3
- package/esm2020/lib/compose/form.component.mjs +4 -4
- package/esm2020/lib/compose/new-menu.component.mjs +3 -3
- package/esm2020/lib/compose/privilage.directive.mjs +6 -6
- package/esm2020/lib/compose/recipient-resolver.service.mjs +3 -3
- package/esm2020/lib/compose/save-changes.dialog.mjs +3 -3
- package/esm2020/lib/compose/state.component.mjs +3 -3
- package/esm2020/lib/compose/tag/tags.component.mjs +3 -3
- package/esm2020/lib/compose/trace/flow.component.mjs +3 -3
- package/esm2020/lib/compose/trace/people.component.mjs +3 -3
- package/esm2020/lib/compose/trace/trace.base.mjs +3 -3
- package/esm2020/lib/compose/trace/trace.component.mjs +5 -5
- package/esm2020/lib/compose/trace/trace.pane.component.mjs +3 -3
- package/esm2020/lib/compose/version-compare/version-compare.component.mjs +3 -3
- package/esm2020/lib/compose/version-compare/version-compare.directive.mjs +9 -9
- package/esm2020/lib/compose/version-compare/version.pane.component.mjs +3 -3
- package/esm2020/lib/core/NgComponentOutlet.mjs +3 -3
- package/esm2020/lib/core/account.service.mjs +3 -3
- package/esm2020/lib/core/animated-icon/animated-icon.directive.mjs +3 -3
- package/esm2020/lib/core/avatar/avatar.component.mjs +3 -3
- package/esm2020/lib/core/component-factory-resolver.mjs +3 -3
- package/esm2020/lib/core/controls/address.input.mjs +3 -3
- package/esm2020/lib/core/controls/auto-complete.input.mjs +3 -3
- package/esm2020/lib/core/controls/combination-picker-body.mjs +3 -3
- package/esm2020/lib/core/controls/combination-picker.mjs +3 -3
- package/esm2020/lib/core/controls/combination-pool.mjs +3 -3
- package/esm2020/lib/core/controls/file.input.mjs +3 -3
- package/esm2020/lib/core/controls/select.input.mjs +3 -3
- package/esm2020/lib/core/controls/time-picker.mjs +3 -3
- package/esm2020/lib/core/controls/timespan.input.mjs +3 -3
- package/esm2020/lib/core/datasource.service.mjs +3 -3
- package/esm2020/lib/core/guide/guide.component.mjs +3 -3
- package/esm2020/lib/core/guide/guide.service.mjs +3 -3
- package/esm2020/lib/core/http.interceptor.mjs +3 -3
- package/esm2020/lib/core/hub.service.mjs +3 -3
- package/esm2020/lib/core/identity/identity.component.mjs +3 -3
- package/esm2020/lib/core/info/attachment-info.service.mjs +3 -3
- package/esm2020/lib/core/info/document-info.service.mjs +6 -6
- package/esm2020/lib/core/info/location-info.component.mjs +3 -3
- package/esm2020/lib/core/info/map-info.mjs +3 -3
- package/esm2020/lib/core/layout/autocomplete.field.mjs +3 -3
- package/esm2020/lib/core/layout/checkbox.field.mjs +3 -3
- package/esm2020/lib/core/layout/checkbox.mjs +3 -3
- package/esm2020/lib/core/layout/date-range.field.mjs +3 -3
- package/esm2020/lib/core/layout/date.field.mjs +3 -3
- package/esm2020/lib/core/layout/expression.field.mjs +3 -3
- package/esm2020/lib/core/layout/file.field.mjs +3 -3
- package/esm2020/lib/core/layout/html.field.mjs +3 -3
- package/esm2020/lib/core/layout/input.base.mjs +3 -3
- package/esm2020/lib/core/layout/input.field.mjs +3 -3
- package/esm2020/lib/core/layout/layout.component.mjs +3 -3
- package/esm2020/lib/core/layout/numeric.field.mjs +3 -3
- package/esm2020/lib/core/layout/select.field.mjs +3 -3
- package/esm2020/lib/core/layout/switch.field.mjs +3 -3
- package/esm2020/lib/core/layout/textarea.field.mjs +3 -3
- package/esm2020/lib/core/layout/timespan.field.mjs +3 -3
- package/esm2020/lib/core/lottie-animation.mjs +3 -3
- package/esm2020/lib/core/mailbox.service.mjs +3 -3
- package/esm2020/lib/core/none.component.mjs +3 -3
- package/esm2020/lib/core/pipes/action.pipe.mjs +3 -3
- package/esm2020/lib/core/pipes/calendar.pipe.mjs +3 -3
- package/esm2020/lib/core/pipes/date-format.pipe.mjs +3 -3
- package/esm2020/lib/core/pipes/daterange.pipe.mjs +6 -6
- package/esm2020/lib/core/pipes/difference.pipe.mjs +3 -3
- package/esm2020/lib/core/pipes/duration-format.pipe.mjs +3 -3
- package/esm2020/lib/core/pipes/duration.pipe.mjs +3 -3
- package/esm2020/lib/core/pipes/form.pipe.mjs +3 -3
- package/esm2020/lib/core/pipes/join.pipe.mjs +3 -3
- package/esm2020/lib/core/pipes/role.pipe.mjs +3 -3
- package/esm2020/lib/core/pipes/sanitize-html.pipe.mjs +3 -3
- package/esm2020/lib/core/pipes/sort.pipe.mjs +6 -6
- package/esm2020/lib/core/pipes/state.pipe.mjs +3 -3
- package/esm2020/lib/core/pipes/time-ago.pipe.mjs +3 -3
- package/esm2020/lib/core/pipes/translate.pipe.mjs +6 -6
- package/esm2020/lib/core/pipes/type-value.pipe.mjs +3 -3
- package/esm2020/lib/core/pipes/user-name.pipe.mjs +3 -3
- package/esm2020/lib/core/popup/popup.component.mjs +3 -3
- package/esm2020/lib/core/popup/popup.service.mjs +3 -3
- package/esm2020/lib/core/popup/tooltip.directive.mjs +6 -6
- package/esm2020/lib/core/prompt/ask/ask.dialog.mjs +3 -3
- package/esm2020/lib/core/prompt/mask/mask.component.mjs +3 -3
- package/esm2020/lib/core/prompt.service.mjs +3 -3
- package/esm2020/lib/core/router.mjs +6 -6
- package/esm2020/lib/core/session.service.mjs +3 -3
- package/esm2020/lib/core/slots/router.directive.mjs +3 -3
- package/esm2020/lib/core/slots/router.service.mjs +3 -3
- package/esm2020/lib/core/slots/slots.component.mjs +3 -3
- package/esm2020/lib/core/tagging/documents.component.mjs +3 -3
- package/esm2020/lib/core/tagging/edit-input.component.mjs +3 -3
- package/esm2020/lib/core/tagging/emoji.component.mjs +3 -3
- package/esm2020/lib/core/tagging/tagging-item.directive.mjs +3 -3
- package/esm2020/lib/core/tagging/tagging.component-base.mjs +3 -3
- package/esm2020/lib/core/tagging/tagging.directive.mjs +3 -3
- package/esm2020/lib/core/tagging/tagging.pipe.mjs +3 -3
- package/esm2020/lib/core/tagging/users.component.mjs +3 -3
- package/esm2020/lib/core/translate.service.mjs +3 -3
- package/esm2020/lib/core/window-title.service.mjs +3 -3
- package/esm2020/lib/cube/accum/accum.component.mjs +3 -3
- package/esm2020/lib/cube/chart/chart.component.mjs +3 -3
- package/esm2020/lib/cube/cube-info.service.mjs +3 -3
- package/esm2020/lib/cube/cube-menu.component.mjs +3 -3
- package/esm2020/lib/cube/cube-view.component.mjs +3 -3
- package/esm2020/lib/cube/cube.service.mjs +3 -3
- package/esm2020/lib/cube/explore/document-item.component.mjs +3 -3
- package/esm2020/lib/cube/explore/explore-item.component.mjs +3 -3
- package/esm2020/lib/cube/explore/explore-items.component.mjs +3 -3
- package/esm2020/lib/cube/explore/explore.pane.component.mjs +3 -3
- package/esm2020/lib/cube/explore/item-resolver.service.mjs +6 -6
- package/esm2020/lib/cube/explore/item.pane.component.mjs +3 -3
- package/esm2020/lib/cube/filter/filter-tags.component.exp.mjs +3 -3
- package/esm2020/lib/cube/filter/filter.component.mjs +3 -3
- package/esm2020/lib/cube/grid/grid.component.mjs +3 -3
- package/esm2020/lib/cube/grid/spreadsheet.component.mjs +3 -3
- package/esm2020/lib/cube/matrix/matrix.base.mjs +3 -3
- package/esm2020/lib/cube/matrix/matrix.mobile.component.mjs +3 -3
- package/esm2020/lib/cube/matrix/matrix.pane.component.mjs +3 -3
- package/esm2020/lib/cube/matrix/popup.component.mjs +3 -3
- package/esm2020/lib/cube/matrix/table.component.mjs +3 -3
- package/esm2020/lib/cube/parallel/parallel.component.mjs +3 -3
- package/esm2020/lib/cube/pivot/pivot.component.mjs +3 -3
- package/esm2020/lib/cube/sum/sum.component.mjs +3 -3
- package/esm2020/lib/cube/view-base.mjs +3 -3
- package/esm2020/lib/cube/view.mobile.component.mjs +3 -3
- package/esm2020/lib/cube/view.pane.component.mjs +3 -3
- package/esm2020/lib/dashboard/actions/actions.widget.mjs +3 -3
- package/esm2020/lib/dashboard/cube/accum-cube.widget.mjs +3 -3
- package/esm2020/lib/dashboard/cube/cube-analysis.base.mjs +3 -3
- package/esm2020/lib/dashboard/cube/cube-analysis.widget.mjs +3 -3
- package/esm2020/lib/dashboard/cube/cube-chart.widget.mjs +3 -3
- package/esm2020/lib/dashboard/cube/documents.widget.mjs +3 -3
- package/esm2020/lib/dashboard/cube/filter/filter.component.mjs +3 -3
- package/esm2020/lib/dashboard/dashboard.component.mjs +3 -3
- package/esm2020/lib/dashboard/dashboard.pane.component.mjs +3 -3
- package/esm2020/lib/dashboard/recents/recents.widget.mjs +3 -3
- package/esm2020/lib/dashboard/score/activity.widget.mjs +3 -3
- package/esm2020/lib/dashboard/score/compare-departments.widget.mjs +3 -3
- package/esm2020/lib/dashboard/score/peers-performance.widget.mjs +3 -3
- package/esm2020/lib/dashboard/score/pending-results.widget.mjs +3 -3
- package/esm2020/lib/dashboard/score/personal-score.widget.mjs +3 -3
- package/esm2020/lib/dashboard/widget-item.component.mjs +3 -3
- package/esm2020/lib/desktop.module.mjs +4 -4
- package/esm2020/lib/home/about/about.dialog.mjs +3 -3
- package/esm2020/lib/home/home-base.component.mjs +3 -3
- package/esm2020/lib/home/home.desktop.component.mjs +3 -3
- package/esm2020/lib/home/home.mobile.component.mjs +3 -3
- package/esm2020/lib/home/notifications/notifications.component.mjs +3 -3
- package/esm2020/lib/home/options/options.component.mjs +3 -3
- package/esm2020/lib/home/outofoffice/outofoffice.component.mjs +3 -3
- package/esm2020/lib/home/search.service.mjs +3 -3
- package/esm2020/lib/home/sign/sign.component.mjs +3 -3
- package/esm2020/lib/home/tools.component.mjs +3 -3
- package/esm2020/lib/impersonate/impersonate.component.mjs +3 -3
- package/esm2020/lib/mobile.module.mjs +4 -4
- package/esm2020/lib/modules/chart.module.mjs +4 -4
- package/esm2020/lib/modules/circular-gauge.module.mjs +4 -4
- package/esm2020/lib/modules/date.adapter.mjs +3 -3
- package/esm2020/lib/modules/datepicker.intl.mjs +3 -3
- package/esm2020/lib/modules/diagram.module.mjs +4 -4
- package/esm2020/lib/modules/gantt.module.mjs +4 -4
- package/esm2020/lib/modules/grid.module.mjs +4 -4
- package/esm2020/lib/modules/material.module.mjs +4 -4
- package/esm2020/lib/modules/paginator.intl.mjs +3 -3
- package/esm2020/lib/modules/pivot.module.mjs +4 -4
- package/esm2020/lib/modules/schedule.module.mjs +4 -4
- package/esm2020/lib/modules/spreadsheet.module.mjs +4 -4
- package/esm2020/lib/modules/stepper.intl.mjs +3 -3
- package/esm2020/lib/modules/texteditor.module.mjs +4 -4
- package/esm2020/lib/notifications/filter.component.mjs +3 -3
- package/esm2020/lib/notifications/notifications-table.component.mjs +3 -3
- package/esm2020/lib/notifications/notifications.mobile.component.mjs +3 -3
- package/esm2020/lib/notifications/notifications.pane.component.mjs +3 -3
- package/esm2020/lib/notifications/notifications.service.mjs +3 -3
- package/esm2020/lib/notifications/types/commented.notification.mjs +3 -3
- package/esm2020/lib/notifications/types/cube-anomaly.notification.mjs +3 -3
- package/esm2020/lib/notifications/types/escalated.notification.mjs +3 -3
- package/esm2020/lib/notifications/types/liked.notification.mjs +3 -3
- package/esm2020/lib/notifications/types/long-running-task.notification.mjs +3 -3
- package/esm2020/lib/notifications/types/notification-base.mjs +3 -3
- package/esm2020/lib/notifications/types/nudge.notification.mjs +3 -3
- package/esm2020/lib/notifications/types/state-changed.notification.mjs +3 -3
- package/esm2020/lib/notifications/types/tagged.notification.mjs +3 -3
- package/esm2020/lib/notifications/types/text.notification.mjs +3 -3
- package/esm2020/lib/notifications/types/upcoming-event.notification.mjs +3 -3
- package/esm2020/lib/options/options.component.mjs +3 -3
- package/esm2020/lib/options/options.service.mjs +3 -3
- package/esm2020/lib/reports/arguments-component.mjs +3 -3
- package/esm2020/lib/reports/cube/documents.component.mjs +3 -3
- package/esm2020/lib/reports/cube/grid-documents.component.mjs +3 -3
- package/esm2020/lib/reports/cube/table-documents.component.mjs +3 -3
- package/esm2020/lib/reports/cube/usage-args.component.mjs +3 -3
- package/esm2020/lib/reports/cube/usage-base.mjs +3 -3
- package/esm2020/lib/reports/cube/usage-chart.component.mjs +3 -3
- package/esm2020/lib/reports/cube/usage-pivot.component.mjs +3 -3
- package/esm2020/lib/reports/cube/usage.component.mjs +3 -3
- package/esm2020/lib/reports/report-viewer.component.mjs +3 -3
- package/esm2020/lib/reports/report.mobile.component.mjs +3 -3
- package/esm2020/lib/reports/report.pane.component.mjs +3 -3
- package/esm2020/lib/reports/reports-menu.component.mjs +3 -3
- package/esm2020/lib/reports/substitution/substitution.component.mjs +3 -3
- package/esm2020/lib/reports/table/table-view.component.mjs +3 -3
- package/esm2020/lib/reports/tasks/tasks.component.mjs +3 -3
- package/esm2020/lib/scheduler/schedule.component.mjs +3 -3
- package/esm2020/lib/scheduler/scheduler.mobile.component.mjs +3 -3
- package/esm2020/lib/scheduler/scheduler.pane.component.mjs +3 -3
- package/esm2020/lib/shared.module.mjs +4 -4
- package/esm2020/lib/system.module.mjs +4 -4
- package/esm2020/lib/views/cube/chart.component.mjs +3 -3
- package/esm2020/lib/views/cube/cube-base.mjs +3 -3
- package/esm2020/lib/views/cube/explore.component.mjs +3 -3
- package/esm2020/lib/views/cube/matrix.component.mjs +3 -3
- package/esm2020/lib/views/cube/parallel.component.mjs +3 -3
- package/esm2020/lib/views/cube/pivot.component.mjs +3 -3
- package/esm2020/lib/views/cube/sum.component.mjs +3 -3
- package/esm2020/lib/views/cube/view.component.mjs +3 -3
- package/esm2020/lib/views/timeline/timeline.component.exp.mjs +3 -3
- package/esm2020/lib/views/view-item.component.mjs +3 -3
- package/esm2020/lib/views/views.component.mjs +3 -3
- package/esm2020/lib/views/views.mobile.component.mjs +3 -3
- package/esm2020/lib/views/views.pane.component.mjs +3 -3
- package/fesm2015/bizdoc-core.mjs +900 -900
- package/fesm2015/bizdoc-core.mjs.map +1 -1
- package/fesm2020/bizdoc-core.mjs +900 -900
- package/fesm2020/bizdoc-core.mjs.map +1 -1
- package/lib/compose/form.component.d.ts +1 -1
- package/lib/core/info/document-info.service.d.ts +2 -1
- package/package.json +1 -1
@@ -32,7 +32,7 @@ export class TraceViewComponent extends TraceBase {
|
|
32
32
|
lastDay: `[${this._translate.get('Yesterday')}] HH:mm`,
|
33
33
|
lastWeek: 'dddd HH:mm',
|
34
34
|
sameDay: `[${this._translate.get('Today')}] HH:mm`,
|
35
|
-
sameElse: 'MMM
|
35
|
+
sameElse: 'MMM D HH:mm'
|
36
36
|
};
|
37
37
|
this._showMode = 'everything';
|
38
38
|
this._showMode = localStorage.getItem('traceMode') || 'everything';
|
@@ -332,9 +332,9 @@ export class TraceViewComponent extends TraceBase {
|
|
332
332
|
this.versionSelected.emit(log.time);
|
333
333
|
}
|
334
334
|
}
|
335
|
-
TraceViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.
|
336
|
-
TraceViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.
|
337
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.
|
335
|
+
TraceViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TraceViewComponent, deps: [{ token: i1.SessionService }, { token: i2.TranslateService }, { token: i3.AccountService }, { token: i4.ChatInfo }, { token: i5.HubService }], target: i0.ɵɵFactoryTarget.Component });
|
336
|
+
TraceViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: TraceViewComponent, selector: "bizdoc-trace", inputs: { model: "model" }, outputs: { versionSelected: "versionSelected" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"nav-toolbar row\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" [bizdocTooltip]=\"'ShowAll'|translate\"><mat-icon>filter_list</mat-icon></button>\r\n <mat-menu #menu> \r\n <button mat-menu-item (click)=\"showMode='route'\">\r\n <mat-icon>{{ showMode === 'route' ? 'check':'' }}</mat-icon>\r\n <span>{{'Route' | translate }}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"showMode='active'\">\r\n <mat-icon>{{ showMode === 'active' ? 'check':'' }}</mat-icon>\r\n <span>{{'ActiveRoute' | translate }}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"showMode='everything'\">\r\n <mat-icon>{{ showMode === 'everything' ? 'check':'' }}</mat-icon>\r\n <span>{{'Everything' | translate }}</span>\r\n </button>\r\n </mat-menu>\r\n</div>\r\n<table class=\"mat-table\" @list>\r\n <tbody role=\"rowgroup\">\r\n <tr class=\"mat-row\" *ngFor=\"let l of data\" @item>\r\n <td class=\"mat-cell\">\r\n <span [innerHTML]=\"l.name | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n <span *ngIf=l.role>{{'JoinComma'|translate}}{{l.role}}</span>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <ng-container [ngSwitch]=\"l.type\">\r\n <ng-container *ngSwitchCase=\"'ActionTaken'\">\r\n <span [innerHTML]=\"l.action | sanitizeHtml\" (click)=\"chat($event)\" class=\"to\"></span>\r\n </ng-container>\r\n <span *ngSwitchCase=\"'Submit'\">{{'Issued' | translate}}</span>\r\n <span *ngSwitchCase=\"'Pending'\">{{'IsPending' | translate}}</span>\r\n <span *ngSwitchCase=\"'CheckOut'\">{{'CheckedIn' | translate : l.fileName}}</span>\r\n <span *ngSwitchCase=\"'CheckIn'\">{{'CheckedOut' | translate : l.fileName}}</span>\r\n <span *ngSwitchCase=\"'Estimate'\">{{'Estimate' | translate}}</span>\r\n <span *ngSwitchCase=\"'ModelChange'\">{{'Changed' | translate}}</span>\r\n </ng-container>\r\n <span *ngIf=\"l.fyi\"> {{'FYI'|translate}}</span>\r\n </td>\r\n <td class=\"mat-cell\" [ngSwitch]=\"l.estimate\">\r\n <ng-container *ngSwitchCase=\"true\">\r\n <span *ngIf=\"l.durationMax && l.durationMax === l.durationMin\" [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTime'| translate : (l.durationMax | amDuration:'s')}}</span>\r\n <span *ngIf=\"l.durationMax && l.durationMax !== l.durationMin\"\r\n [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTimeRange'| translate : (l.durationMin | amDuration:'s') : (l.durationMax | amDuration:'s')}}</span>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <span>{{l.time | amCalendar : null : CALENDAR_SPEC }}</span>\r\n <span *ngIf=\"l.duration\" [bizdocTooltip]=\"l.duration|amDurationFormat\" class=\"duration\"> ({{l.duration | amDuration:'s'}})</span>\r\n </ng-container>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <span *ngIf=\"l.note\">{{l.note}}</span>\r\n <button mat-icon-button *ngIf=\"l.type==='ModelChange'\" (click)=\"compare(l)\" [bizdocTooltip]=\"'Compare'|translate\" bizdocTooltipPosition=\"start\"><mat-icon>more_horiz</mat-icon></button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n", styles: [":host{width:100%}table{width:100%;background:transparent}table td{padding:0 4px}.duration{white-space:nowrap}\n"], components: [{ type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i8.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i8.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }], directives: [{ type: i8.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i9.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i10.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i10.NgSwitchDefault, selector: "[ngSwitchDefault]" }], pipes: { "translate": i11.TranslatePipe, "sanitizeHtml": i12.SanitizeHtmlPipe, "amDurationFormat": i13.DurationFormatPipe, "amDuration": i14.DurationPipe, "amCalendar": i15.CalendarPipe }, animations: [listAnimation, itemAnimation] });
|
337
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TraceViewComponent, decorators: [{
|
338
338
|
type: Component,
|
339
339
|
args: [{ selector: 'bizdoc-trace', animations: [listAnimation, itemAnimation], template: "<div class=\"nav-toolbar row\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" [bizdocTooltip]=\"'ShowAll'|translate\"><mat-icon>filter_list</mat-icon></button>\r\n <mat-menu #menu> \r\n <button mat-menu-item (click)=\"showMode='route'\">\r\n <mat-icon>{{ showMode === 'route' ? 'check':'' }}</mat-icon>\r\n <span>{{'Route' | translate }}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"showMode='active'\">\r\n <mat-icon>{{ showMode === 'active' ? 'check':'' }}</mat-icon>\r\n <span>{{'ActiveRoute' | translate }}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"showMode='everything'\">\r\n <mat-icon>{{ showMode === 'everything' ? 'check':'' }}</mat-icon>\r\n <span>{{'Everything' | translate }}</span>\r\n </button>\r\n </mat-menu>\r\n</div>\r\n<table class=\"mat-table\" @list>\r\n <tbody role=\"rowgroup\">\r\n <tr class=\"mat-row\" *ngFor=\"let l of data\" @item>\r\n <td class=\"mat-cell\">\r\n <span [innerHTML]=\"l.name | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n <span *ngIf=l.role>{{'JoinComma'|translate}}{{l.role}}</span>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <ng-container [ngSwitch]=\"l.type\">\r\n <ng-container *ngSwitchCase=\"'ActionTaken'\">\r\n <span [innerHTML]=\"l.action | sanitizeHtml\" (click)=\"chat($event)\" class=\"to\"></span>\r\n </ng-container>\r\n <span *ngSwitchCase=\"'Submit'\">{{'Issued' | translate}}</span>\r\n <span *ngSwitchCase=\"'Pending'\">{{'IsPending' | translate}}</span>\r\n <span *ngSwitchCase=\"'CheckOut'\">{{'CheckedIn' | translate : l.fileName}}</span>\r\n <span *ngSwitchCase=\"'CheckIn'\">{{'CheckedOut' | translate : l.fileName}}</span>\r\n <span *ngSwitchCase=\"'Estimate'\">{{'Estimate' | translate}}</span>\r\n <span *ngSwitchCase=\"'ModelChange'\">{{'Changed' | translate}}</span>\r\n </ng-container>\r\n <span *ngIf=\"l.fyi\"> {{'FYI'|translate}}</span>\r\n </td>\r\n <td class=\"mat-cell\" [ngSwitch]=\"l.estimate\">\r\n <ng-container *ngSwitchCase=\"true\">\r\n <span *ngIf=\"l.durationMax && l.durationMax === l.durationMin\" [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTime'| translate : (l.durationMax | amDuration:'s')}}</span>\r\n <span *ngIf=\"l.durationMax && l.durationMax !== l.durationMin\"\r\n [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTimeRange'| translate : (l.durationMin | amDuration:'s') : (l.durationMax | amDuration:'s')}}</span>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <span>{{l.time | amCalendar : null : CALENDAR_SPEC }}</span>\r\n <span *ngIf=\"l.duration\" [bizdocTooltip]=\"l.duration|amDurationFormat\" class=\"duration\"> ({{l.duration | amDuration:'s'}})</span>\r\n </ng-container>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <span *ngIf=\"l.note\">{{l.note}}</span>\r\n <button mat-icon-button *ngIf=\"l.type==='ModelChange'\" (click)=\"compare(l)\" [bizdocTooltip]=\"'Compare'|translate\" bizdocTooltipPosition=\"start\"><mat-icon>more_horiz</mat-icon></button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n", styles: [":host{width:100%}table{width:100%;background:transparent}table td{padding:0 4px}.duration{white-space:nowrap}\n"] }]
|
340
340
|
}], ctorParameters: function () { return [{ type: i1.SessionService }, { type: i2.TranslateService }, { type: i3.AccountService }, { type: i4.ChatInfo }, { type: i5.HubService }]; }, propDecorators: { model: [{
|
@@ -342,4 +342,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImpor
|
|
342
342
|
}], versionSelected: [{
|
343
343
|
type: Output
|
344
344
|
}] } });
|
345
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb21wb3NlL3RyYWNlL3RyYWNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY29tcG9zZS90cmFjZS90cmFjZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFNMUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFckUsb0NBQW9DO0FBT3BDLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxTQUFTO0lBVy9DLFlBQW9CLFFBQXdCLEVBQ2xDLFVBQTRCLEVBQzVCLFNBQXlCLEVBQ3pCLEtBQWUsRUFDdkIsR0FBZTtRQUNmLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUxPLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ2xDLGVBQVUsR0FBVixVQUFVLENBQWtCO1FBQzVCLGNBQVMsR0FBVCxTQUFTLENBQWdCO1FBQ3pCLFVBQUssR0FBTCxLQUFLLENBQVU7UUFaTixvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDOUQsU0FBSSxHQUFZLEVBQUUsQ0FBQztRQUVWLGtCQUFhLEdBQWlCO1lBQ3JDLE9BQU8sRUFBRSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxTQUFTO1lBQ3RELFFBQVEsRUFBRSxZQUFZO1lBQ3RCLE9BQU8sRUFBRSxJQUFJ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K0dBMVVVLGtCQUFrQjttR0FBbEIsa0JBQWtCLDZLQ25CL0IsK3hHQXlEQSw2cUREeENjLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQzsyRkFFL0Isa0JBQWtCO2tCQU45QixTQUFTOytCQUNFLGNBQWMsY0FHWixDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUM7aU5BR2pDLEtBQUs7c0JBQWIsS0FBSztnQkFDYSxlQUFlO3NCQUFqQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XHJcbmltcG9ydCB7IENhbGVuZGFyU3BlYyB9IGZyb20gXCIuLi8uLi9jb3JlL3BpcGVzL2NhbGVuZGFyLnBpcGVcIjtcclxuaW1wb3J0IHsgVXNlckluZm8sIExvZ1R5cGUsIERvY3VtZW50TW9kZWwsIEFjdGlvbiwgTG9nLCBHZW5kZXIgfSBmcm9tIFwiLi4vLi4vY29yZS9tb2RlbHNcIjtcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEFjY291bnRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvYWNjb3VudC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFRyYWNlQmFzZSwgWW91IH0gZnJvbSBcIi4vdHJhY2UuYmFzZVwiO1xyXG5pbXBvcnQgeyBIdWJTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvaHViLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQ2hhdEluZm8gfSBmcm9tIFwiLi4vLi4vY2hhdC9jaGF0LWluZm9cIjtcclxuaW1wb3J0IHsgaXRlbUFuaW1hdGlvbiwgbGlzdEFuaW1hdGlvbiB9IGZyb20gXCIuLi8uLi9jb3JlL2FuaW1hdGlvbnNcIjtcclxuXHJcbi8qKiBjb21wb25lbnQgc2hvd2luZyB0cmFjZSB0YWJsZSAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy10cmFjZScsXHJcbiAgdGVtcGxhdGVVcmw6ICd0cmFjZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJ3RyYWNlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgYW5pbWF0aW9uczogW2xpc3RBbmltYXRpb24sIGl0ZW1BbmltYXRpb25dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFjZVZpZXdDb21wb25lbnQgZXh0ZW5kcyBUcmFjZUJhc2UgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gIEBJbnB1dCgpIG1vZGVsOiBEb2N1bWVudE1vZGVsPGFueT47XHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHZlcnNpb25TZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcclxuICBkYXRhOiBUcmFjZVtdID0gW107XHJcbiAgcHJpdmF0ZSBfZGF0YTogVHJhY2VbXTtcclxuICByZWFkb25seSBDQUxFTkRBUl9TUEVDOiBDYWxlbmRhclNwZWMgPSB7XHJcbiAgICBsYXN0RGF5OiBgWyR7dGhpcy5fdHJhbnNsYXRlLmdldCgnWWVzdGVyZGF5Jyl9XSBISDptbWAsXHJcbiAgICBsYXN0V2VlazogJ2RkZGQgSEg6bW0nLFxyXG4gICAgc2FtZURheTogYFske3RoaXMuX3RyYW5zbGF0ZS5nZXQoJ1RvZGF5Jyl9XSBISDptbWAsXHJcbiAgICBzYW1lRWxzZTogJ01NTSBEbyBISDptbSdcclxuICB9O1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfYWNjb3VudHM6IEFjY291bnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfY2hhdDogQ2hhdEluZm8sXHJcbiAgICBodWI6IEh1YlNlcnZpY2UpIHtcclxuICAgIHN1cGVyKGh1Yik7XHJcbiAgICB0aGlzLl9zaG93TW9kZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd0cmFjZU1vZGUnKSBhcyBTaG93TW9kZSB8fCAnZXZlcnl0aGluZyc7XHJcbiAgfVxyXG4gIG5nT25DaGFuZ2VzKF9jaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICB0aGlzLl9pbml0aWFsaXplKCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgYXN5bmMgX2luaXRpYWxpemUoKSB7XHJcbiAgICBjb25zdCB7IGlzc3VlZCwgbG9nLCByZWNpcGllbnRzLCBhdHRhY2htZW50cyB9ID0gdGhpcy5tb2RlbDtcclxuXHJcbiAgICBjb25zdCBtZSA9IHRoaXM7XHJcblxyXG5cclxuICAgIGZ1bmN0aW9uIHByb2ZpbGVPZihpZCkge1xyXG4gICAgICByZXR1cm4gbWUuX2FjY291bnRzLmdldChpZCkudG9Qcm9taXNlKCk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIHVzZXIgbmFtZSwgY2hhdCBhbmNob3IgdGFnIG9yIFlvdVxyXG4gICAgICogQHBhcmFtIHVzZXJcclxuICAgICAqL1xyXG4gICAgZnVuY3Rpb24gbmFtZU9mKHVzZXI6IFVzZXJJbmZvKTogc3RyaW5nIHtcclxuICAgICAgcmV0dXJuIG1lLl9jaGF0LmZvcm1hdCh1c2VyKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBmdW5jdGlvbiBhY3Rpb25CeShhY3Rpb246IEFjdGlvbiwgZ2VuZGVyOiBHZW5kZXIgfCAneW91JywgaWQ/OiBudW1iZXIpIHtcclxuICAgICAgbGV0IG5hbWU6IHN0cmluZztcclxuICAgICAgaWYgKGdlbmRlciA9PT0gWW91KSB7XHJcbiAgICAgICAgY29uc3QgeyBnZW5kZXIgfSA9IG1lLl9zZXNzaW9uO1xyXG4gICAgICAgIG5hbWUgPSAoZ2VuZGVyID09PSAnTWFsZScgPyAoYWN0aW9uLnlvdU1hbGUgfHwgYWN0aW9uLnlvdSkgOlxyXG4gICAgICAgICAgZ2VuZGVyID09PSAnRmVtYWxlJyA/IChhY3Rpb24ueW91RmVtYWxlIHx8IGFjdGlvbi55b3UpIDpcclxuICAgICAgICAgICAgYWN0aW9uLnlvdSkgfHxcclxuICAgICAgICAgIGFjdGlvbi5wYXN0IHx8XHJcbiAgICAgICAgICBhY3Rpb24udGl0bGU7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZVxyXG4gICAgICAgIG5hbWUgPSAoZ2VuZGVyID09PSAnTWFsZScgPyAoYWN0aW9uLnBhc3RNYWxlIHx8IGFjdGlvbi5wYXN0KSA6XHJcbiAgICAgICAgICBnZW5kZXIgPT09ICdGZW1hbGUnID8gKGFjdGlvbi5wYXN0RmVtYWxlIHx8IGFjdGlvbi5wYXN0KSA6XHJcbiAgICAgICAgICAgIGFjdGlvbi5wYXN0KVxyXG4gICAgICAgICAgfHwgYWN0aW9uLnRpdGxlO1xyXG5cclxuICAgICAgaWYgKGlkKSB7XHJcbiAgICAgICAgY29uc3QgdG8gPSBtZS5tb2RlbC5yZWNpcGllbnRzLmZpbHRlcihyID0+IHIub3JpZ2luSWQgPT09IGlkKTtcclxuICAgICAgICBpZiAodG8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICBjb25zdCB1c2VycyA9IFtdO1xyXG4gICAgICAgICAgZm9yIChsZXQgd2hvIG9mIHRvKSB7XHJcbiAgICAgICAgICAgIGxldCBwcm9maWxlID0gYXdhaXQgcHJvZmlsZU9mKHdoby5zdWJzdGl0dXRlSWQgfHwgd2hvLnVzZXJJZCk7XHJcbiAgICAgICAgICAgIHVzZXJzLnB1c2gobmFtZU9mKHByb2ZpbGUpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiBtZS5fdHJhbnNsYXRlLmdldCgnQWN0aW9uVG8nLCBuYW1lLCBtZS5fdHJhbnNsYXRlLmpvaW4odXNlcnMpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIG5hbWU7XHJcbiAgICB9XHJcbiAgICBjb25zdCB0cmFjZTogVHJhY2VbXSA9IFtdO1xyXG5cclxuICAgIGZvciAobGV0IGwgb2YgbG9nKSB7XHJcbiAgICAgIGxldCBhY3Rpb246IEFjdGlvbjtcclxuXHJcbiAgICAgIHN3aXRjaCAobC50eXBlKSB7XHJcbiAgICAgICAgY2FzZSAnQWN0aW9uVGFrZW4nOlxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBhY3Rpb24gPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuYWN0aW9ucy5maW5kKGEgPT4gYS5uYW1lID09PSBsLmFjdGlvbik7XHJcbiAgICAgICAgICAgIGlmIChhY3Rpb24ubG9nZ2FibGUgPT09IGZhbHNlKVxyXG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICBjYXNlICdDaGVja0luJzpcclxuICAgICAgICBjYXNlICdDaGVja091dCc6XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdNb2RlbENoYW5nZSc6XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdTdWJtaXQnOlxyXG4gICAgICAgICAgaWYgKGwuZXN0aW1hdGUpIGNvbnRpbnVlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBsZXQgc3RlcCA9IHsgZXN0aW1hdGU6IGwuZXN0aW1hdGUsIHRpbWU6IGwudGltZSwgdHlwZTogbC50eXBlLCBkdXJhdGlvbjogbC5kdXJhdGlvbiwgbm90ZTogbC5ub3RlLCBzdGF0ZTogbC5zdGF0ZSB9IGFzIFRyYWNlO1xyXG5cclxuICAgICAgdHJhY2UucHVzaChzdGVwKTtcclxuXHJcbiAgICAgIHN3aXRjaCAobC50eXBlKSB7XHJcbiAgICAgICAgY2FzZSAnQ2hlY2tJbic6XHJcbiAgICAgICAgY2FzZSAnQ2hlY2tPdXQnOlxyXG4gICAgICAgICAgbGV0IGF0dGFjaG1lbnQgPSBhdHRhY2htZW50cy5maW5kKGYgPT4gZi5pZCA9PT0gbC5maWxlSWQpO1xyXG4gICAgICAgICAgc3RlcC5maWxlTmFtZSA9IGF0dGFjaG1lbnQuZmlsZU5hbWU7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGwucmVjaXBpZW50SWQpIHtcclxuICAgICAgICBsZXQgcmVjaXBpZW50ID0gcmVjaXBpZW50cy5maW5kKHIgPT4gci5pZCA9PT0gbC5yZWNpcGllbnRJZCk7XHJcbiAgICAgICAgaWYgKHJlY2lwaWVudC5yb2xlKVxyXG4gICAgICAgICAgc3RlcC5yb2xlID0gdGhpcy5fcm9sZU5hbWUocmVjaXBpZW50LnJvbGUpO1xyXG4gICAgICAgIHN0ZXAuZnlpID0gcmVjaXBpZW50LmZ5aTtcclxuXHJcbiAgICAgICAgaWYgKHJlY2lwaWVudC5zdWJzdGl0dXRlSWQpIHtcclxuICAgICAgICAgIGxldCBzdWJzdGl0dXRpbmcgPSBhd2FpdCBwcm9maWxlT2YocmVjaXBpZW50LnN1YnN0aXR1dGVJZCk7XHJcbiAgICAgICAgICBpZiAocmVjaXBpZW50LmJ5SWQpIHtcclxuICAgICAgICAgICAgaWYgKHJlY2lwaWVudC5ieUlkID09PSB0aGlzLl9zZXNzaW9uLnVzZXJJZCkge1xyXG4gICAgICAgICAgICAgIGxldCB3aG8gPSBhd2FpdCBwcm9maWxlT2YocmVjaXBpZW50LnVzZXJJZCk7XHJcbiAgICAgICAgICAgICAgaWYgKHJlY2lwaWVudC5zdWJzdGl0dXRlSWQgPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKVxyXG4gICAgICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnQnlZb3UnLCBuYW1lT2Yod2hvKSk7XHJcbiAgICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLnBlcnNvbmFsaXplKCdTdWJzdGl0dXRpbmdCeVlvdScsIHdoby5nZW5kZXIsIG5hbWVPZih3aG8pLCBuYW1lT2Yoc3Vic3RpdHV0aW5nKSk7XHJcbiAgICAgICAgICAgICAgaWYgKGFjdGlvbilcclxuICAgICAgICAgICAgICAgIHN0ZXAuYWN0aW9uID0gYXdhaXQgYWN0aW9uQnkoYWN0aW9uLCBZb3UsIHJlY2lwaWVudC5pZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgbGV0IGJ5ID0gYXdhaXQgcHJvZmlsZU9mKHJlY2lwaWVudC5ieUlkKTtcclxuICAgICAgICAgICAgICBsZXQgd2hvID0gYXdhaXQgcHJvZmlsZU9mKHJlY2lwaWVudC51c2VySWQpO1xyXG4gICAgICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1N1YnN0aXR1dGluZ0J5JywgbmFtZU9mKHdobyksIG5hbWVPZihzdWJzdGl0dXRpbmcpLCBuYW1lT2YoYnkpKTtcclxuICAgICAgICAgICAgICBpZiAoYnkucm9sZSlcclxuICAgICAgICAgICAgICAgIHN0ZXAucm9sZSA9IGJ5LnJvbGU7XHJcbiAgICAgICAgICAgICAgaWYgKGFjdGlvbilcclxuICAgICAgICAgICAgICAgIHN0ZXAuYWN0aW9uID0gYXdhaXQgYWN0aW9uQnkoYWN0aW9uLCBieS5nZW5kZXIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgbGV0IHdobyA9IGF3YWl0IHByb2ZpbGVPZihyZWNpcGllbnQudXNlcklkKTtcclxuICAgICAgICAgICAgaWYgKHJlY2lwaWVudC5zdWJzdGl0dXRlSWQgPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKSB7XHJcbiAgICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLnBlcnNvbmFsaXplKCdTdWJzdGl0dXRpbmdGb3JZb3UnLCB3aG8uZ2VuZGVyLCBuYW1lT2Yod2hvKSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocmVjaXBpZW50LnVzZXJJZCA9PT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpIHtcclxuICAgICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUucGVyc29uYWxpemUoJ1lvdVN1YnN0aXR1dGUnLCB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuYnlHZW5kZXIsIG5hbWVPZih3aG8pKTtcclxuICAgICAgICAgICAgICBpZiAoYWN0aW9uKVxyXG4gICAgICAgICAgICAgICAgc3RlcC5hY3Rpb24gPSBhd2FpdCBhY3Rpb25CeShhY3Rpb24sIHdoby5nZW5kZXIsIHJlY2lwaWVudC5pZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLnBlcnNvbmFsaXplKCdTdWJzdGl0dXRpbmcnLCB3aG8uZ2VuZGVyLCBuYW1lT2Yod2hvKSwgbmFtZU9mKHN1YnN0aXR1dGluZykpO1xyXG4gICAgICAgICAgICAgIGlmICh3aG8ucm9sZSlcclxuICAgICAgICAgICAgICAgIHN0ZXAucm9sZSA9IHdoby5yb2xlO1xyXG4gICAgICAgICAgICAgIGlmIChhY3Rpb24pXHJcbiAgICAgICAgICAgICAgICBzdGVwLmFjdGlvbiA9IGF3YWl0IGFjdGlvbkJ5KGFjdGlvbiwgd2hvLmdlbmRlciwgcmVjaXBpZW50LmlkKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChyZWNpcGllbnQuYnlJZCkge1xyXG4gICAgICAgICAgbGV0IHdobyA9IGF3YWl0IHByb2ZpbGVPZihyZWNpcGllbnQudXNlcklkKSxcclxuICAgICAgICAgICAgYnkgPSBhd2FpdCBwcm9maWxlT2YocmVjaXBpZW50LmJ5SWQpO1xyXG4gICAgICAgICAgaWYgKHJlY2lwaWVudC5ieUlkID09PSB0aGlzLl9zZXNzaW9uLnVzZXJJZClcclxuICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnQnlZb3UnLCBuYW1lT2Yod2hvKSk7XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnQnknLCBuYW1lT2Yod2hvKSwgbmFtZU9mKGJ5KSk7XHJcbiAgICAgICAgICAgIGlmIChieS5yb2xlKVxyXG4gICAgICAgICAgICAgIHN0ZXAucm9sZSA9IGJ5LnJvbGU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoYWN0aW9uKVxyXG4gICAgICAgICAgICBzdGVwLmFjdGlvbiA9IGF3YWl0IGFjdGlvbkJ5KGFjdGlvbiwgYnkuZ2VuZGVyLCByZWNpcGllbnQuaWQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGlmIChyZWNpcGllbnQudXNlcklkID09PSB0aGlzLl9zZXNzaW9uLnVzZXJJZClcclxuICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnWW91Jyk7XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgbGV0IHdobyA9IGF3YWl0IHByb2ZpbGVPZihyZWNpcGllbnQudXNlcklkKTtcclxuICAgICAgICAgICAgc3RlcC5uYW1lID0gbmFtZU9mKHdobyk7XHJcbiAgICAgICAgICAgIGlmICh3aG8ucm9sZSlcclxuICAgICAgICAgICAgICBzdGVwLnJvbGUgPSB3aG8ucm9sZTtcclxuICAgICAgICAgICAgaWYgKGFjdGlvbilcclxuICAgICAgICAgICAgICBzdGVwLmFjdGlvbiA9IGF3YWl0IGFjdGlvbkJ5KGFjdGlvbiwgd2hvLmdlbmRlciwgcmVjaXBpZW50LmlkKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgaWYgKGwudXNlcklkID09PSB0aGlzLl9zZXNzaW9uLnVzZXJJZClcclxuICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3Nlc3Npb24uaXNJbXBlcnNvbmF0aW5nID8gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLm5hbWUgOiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdZb3UnKTtcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGxldCB3aG8gPSBhd2FpdCBwcm9maWxlT2YobC51c2VySWQpO1xyXG4gICAgICAgICAgc3RlcC5uYW1lID0gbmFtZU9mKHdobyk7XHJcbiAgICAgICAgICBpZiAod2hvLnJvbGUpXHJcbiAgICAgICAgICAgIHN0ZXAucm9sZSA9IHdoby5yb2xlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZm9yIChsZXQgcmVjaXBpZW50IG9mIHJlY2lwaWVudHMpIHtcclxuICAgICAgaWYgKCFyZWNpcGllbnQucGVuZGluZyAmJiAhcmVjaXBpZW50LmVzdGltYXRlICYmICFyZWNpcGllbnQuZnlpKSBjb250aW51ZTtcclxuXHJcbiAgICAgIGxldCBzdGVwID0ge1xyXG4gICAgICAgIHRpbWU6IHJlY2lwaWVudC5yZWNlaXZlZCxcclxuICAgICAgICBmeWk6IHJlY2lwaWVudC5meWksXHJcbiAgICAgICAgZXN0aW1hdGU6IHJlY2lwaWVudC5lc3RpbWF0ZSxcclxuICAgICAgICBwZW5kaW5nOiByZWNpcGllbnQucGVuZGluZyxcclxuICAgICAgICBhY3Rpb246IHJlY2lwaWVudC5hY3Rpb24sXHJcbiAgICAgICAgbm90ZTogcmVjaXBpZW50Lm5vdGUsXHJcbiAgICAgICAgdHlwZTogcmVjaXBpZW50LmVzdGltYXRlID8gJ0VzdGltYXRlJyA6ICdQZW5kaW5nJyxcclxuICAgICAgICBkdXJhdGlvbjogcmVjaXBpZW50LnBlbmRpbmcgPyBkYXlqcygpLmRpZmYocmVjaXBpZW50LnJlY2VpdmVkLCAncycpIDogbnVsbCxcclxuICAgICAgICByb2xlOiByZWNpcGllbnQucm9sZSA/IHRoaXMuX3JvbGVOYW1lKHJlY2lwaWVudC5yb2xlKSA6IG51bGxcclxuICAgICAgfSBhcyBUcmFjZTtcclxuXHJcbiAgICAgIGlmIChyZWNpcGllbnQubm9kZUlkKSB7XHJcbiAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXMubW9kZWwud29ya2Zsb3cubm9kZXMuZmluZChuID0+IG4uaWQgPT09IHJlY2lwaWVudC5ub2RlSWQpO1xyXG4gICAgICAgIGlmIChub2RlKSB7XHJcbiAgICAgICAgICBpZiAocmVjaXBpZW50LmVzdGltYXRlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHsgbWluLCBtYXggfSA9IHN1cGVyLl9lc3RpbWF0ZVRpbWUobm9kZSk7XHJcbiAgICAgICAgICAgIGlmIChtYXgpXHJcbiAgICAgICAgICAgICAgc3RlcC5kdXJhdGlvbk1pbiA9IG1pbixcclxuICAgICAgICAgICAgICAgIHN0ZXAuZHVyYXRpb25NYXggPSBtYXg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBzdGVwLmZ5aSA9IHJlY2lwaWVudC5meWk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAocmVjaXBpZW50LnN1YnN0aXR1dGVJZCkge1xyXG4gICAgICAgIGxldCB3aG8gPSBhd2FpdCBwcm9maWxlT2YocmVjaXBpZW50LnVzZXJJZCk7XHJcbiAgICAgICAgaWYgKHJlY2lwaWVudC5ieUlkKSB7XHJcbiAgICAgICAgICBpZiAocmVjaXBpZW50LmJ5SWQgPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKSB7XHJcbiAgICAgICAgICAgIGlmIChyZWNpcGllbnQuc3Vic3RpdHV0ZUlkID09PSB0aGlzLl9zZXNzaW9uLnVzZXJJZClcclxuICAgICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdCeVlvdScsIG5hbWVPZih3aG8pKTtcclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgbGV0IHN1YnN0aXR1dGluZyA9IGF3YWl0IHByb2ZpbGVPZihyZWNpcGllbnQuc3Vic3RpdHV0ZUlkKTtcclxuICAgICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUucGVyc29uYWxpemUoJ1N1YnN0aXR1dGluZ0J5WW91Jywgd2hvLmdlbmRlciwgbmFtZU9mKHdobyksIG5hbWVPZihzdWJzdGl0dXRpbmcpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGxldCBzdWJzdGl0dXRpbmcgPSBhd2FpdCBwcm9maWxlT2YocmVjaXBpZW50LnN1YnN0aXR1dGVJZCk7XHJcbiAgICAgICAgICAgIGxldCBieSA9IGF3YWl0IHByb2ZpbGVPZihyZWNpcGllbnQuYnlJZCk7XHJcbiAgICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1N1YnN0aXR1dGluZ0J5JywgbmFtZU9mKHdobyksIG5hbWVPZihzdWJzdGl0dXRpbmcpLCBuYW1lT2YoYnkpKTtcclxuICAgICAgICAgICAgaWYgKGJ5LnJvbGUpXHJcbiAgICAgICAgICAgICAgc3RlcC5yb2xlID0gYnkucm9sZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBpZiAocmVjaXBpZW50LnN1YnN0aXR1dGVJZCA9PT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpXHJcbiAgICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5wZXJzb25hbGl6ZSgnU3Vic3RpdHV0aW5nRm9yWW91Jywgd2hvLmdlbmRlciwgbmFtZU9mKHdobykpO1xyXG4gICAgICAgICAgZWxzZSBpZiAocmVjaXBpZW50LnVzZXJJZCA9PT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpXHJcbiAgICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5wZXJzb25hbGl6ZSgnWW91U3Vic3RpdHV0ZScsIHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5ieUdlbmRlciwgbmFtZU9mKHdobykpO1xyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGxldCBzdWJzdGl0dXRpbmcgPSBhd2FpdCBwcm9maWxlT2YocmVjaXBpZW50LnN1YnN0aXR1dGVJZCk7XHJcbiAgICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5wZXJzb25hbGl6ZSgnU3Vic3RpdHV0aW5nJywgd2hvLmdlbmRlciwgbmFtZU9mKHdobyksIG5hbWVPZihzdWJzdGl0dXRpbmcpKTtcclxuICAgICAgICAgICAgaWYgKHdoby5yb2xlKVxyXG4gICAgICAgICAgICAgIHN0ZXAucm9sZSA9IHdoby5yb2xlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChyZWNpcGllbnQuYnlJZCkge1xyXG4gICAgICAgIGxldCB3aG8gPSBhd2FpdCBwcm9maWxlT2YocmVjaXBpZW50LnVzZXJJZCk7XHJcbiAgICAgICAgaWYgKHJlY2lwaWVudC5ieUlkID09PSB0aGlzLl9zZXNzaW9uLnVzZXJJZClcclxuICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0J5WW91JywgbmFtZU9mKHdobykpO1xyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgbGV0IGJ5ID0gYXdhaXQgcHJvZmlsZU9mKHJlY2lwaWVudC5ieUlkKTtcclxuICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0J5JywgbmFtZU9mKHdobyksIG5hbWVPZihieSkpO1xyXG4gICAgICAgICAgaWYgKGJ5LnJvbGUpXHJcbiAgICAgICAgICAgIHN0ZXAucm9sZSA9IGJ5LnJvbGU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKHJlY2lwaWVudC5lc2NhbGF0ZWQpIHtcclxuICAgICAgICBsZXQgZXNjYWxhdGlvbnMgPSB0aGlzLm1vZGVsLmxvZy5maWx0ZXIobCA9PiBsLnRpbWUgPiBpc3N1ZWQgJiZcclxuICAgICAgICAgIGwudHlwZSA9PT0gJ0VzY2FsYXRpb24nICYmIGwucmVjaXBpZW50SWQgPT09IHJlY2lwaWVudC5pZCk7XHJcblxyXG4gICAgICAgIGxldCBlc2NhbGF0ZSA9IFtdO1xyXG4gICAgICAgIGZvciAobGV0IGVzY2FsYXRpb24gb2YgZXNjYWxhdGlvbnMpIHtcclxuICAgICAgICAgIGxldCB3aG8gPSBhd2FpdCBwcm9maWxlT2YoZXNjYWxhdGlvbi51c2VySWQpO1xyXG4gICAgICAgICAgZXNjYWxhdGUucHVzaCh3aG8pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgd2hvID0gYXdhaXQgcHJvZmlsZU9mKHJlY2lwaWVudC51c2VySWQpO1xyXG4gICAgICAgIGlmIChlc2NhbGF0aW9ucy5sZW5ndGggPT09IDEgJiYgZXNjYWxhdGVbMF0gPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKVxyXG4gICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnRXNjYWxhdGVkQnlZb3UnLCBuYW1lT2Yod2hvKSk7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnRXNjYWxhdGVkQnknLCBuYW1lT2Yod2hvKSwgdGhpcy5fdHJhbnNsYXRlLmpvaW4oZXNjYWxhdGUubWFwKGUgPT4gbmFtZU9mKGUpKSkpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGlmIChyZWNpcGllbnQudXNlcklkID09PSB0aGlzLl9zZXNzaW9uLnVzZXJJZClcclxuICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1lvdScpO1xyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgbGV0IHdobyA9IGF3YWl0IHByb2ZpbGVPZihyZWNpcGllbnQudXNlcklkKTtcclxuICAgICAgICAgIHN0ZXAubmFtZSA9IG5hbWVPZih3aG8pO1xyXG4gICAgICAgICAgaWYgKHdoby5yb2xlKVxyXG4gICAgICAgICAgICBzdGVwLnJvbGUgPSB3aG8ucm9sZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdHJhY2UucHVzaChzdGVwKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9kYXRhID0gdHJhY2Uuc29ydCgoYSwgYikgPT4gYS50aW1lID4gYi50aW1lID8gMSA6IGEudGltZSA9PT0gYi50aW1lID8gMCA6IC0xKTtcclxuXHJcbiAgICB0aGlzLl9maWx0ZXIoKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZmlsdGVyKCkge1xyXG4gICAgc3dpdGNoICh0aGlzLl9zaG93TW9kZSkge1xyXG4gICAgICBjYXNlICdhY3RpdmUnOlxyXG4gICAgICAgIHRoaXMuZGF0YSA9IHRoaXMuX2RhdGEuZmlsdGVyKGwgPT4gbC50aW1lID49IHRoaXMubW9kZWwuaXNzdWVkKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAncm91dGUnOlxyXG4gICAgICAgIHRoaXMuZGF0YSA9IHRoaXMuX2RhdGEuZmlsdGVyKGwgPT4gbC50eXBlID09PSAnQWN0aW9uVGFrZW4nXHJcbiAgICAgICAgICB8fCBsLnR5cGUgPT09ICdFc3RpbWF0ZScgfHwgbC50eXBlID09PSAnUGVuZGluZycpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHRoaXMuZGF0YSA9IHRoaXMuX2RhdGE7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHByaXZhdGUgX3Nob3dNb2RlOiBTaG93TW9kZSA9ICdldmVyeXRoaW5nJztcclxuXHJcbiAgcHVibGljIGdldCBzaG93TW9kZSgpIHtcclxuICAgIHJldHVybiB0aGlzLl9zaG93TW9kZTtcclxuICB9XHJcbiAgcHVibGljIHNldCBzaG93TW9kZSh2YWx1ZTogU2hvd01vZGUpIHtcclxuICAgIHRoaXMuX3Nob3dNb2RlID0gdmFsdWU7XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgndHJhY2VNb2RlJywgdmFsdWUpO1xyXG4gICAgdGhpcy5fZGF0YSAmJiB0aGlzLl9maWx0ZXIoKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfcm9sZU5hbWUobmFtZSk6IHN0cmluZyB7XHJcbiAgICBjb25zdCByb2xlID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLnJvbGVzLmZpbmQociA9PiByLm5hbWUgPT09IG5hbWUpO1xyXG4gICAgcmV0dXJuIHJvbGUgPyByb2xlLnRpdGxlIDogbmFtZTtcclxuICB9XHJcbiAgY2hhdChlOiBNb3VzZUV2ZW50KSB7XHJcbiAgICBjb25zdCB1c2VySWQgPSAoZS5zcmNFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5nZXRBdHRyaWJ1dGUoJ2RhdGEtaW5mbycpO1xyXG4gICAgdXNlcklkICYmXHJcbiAgICAgIHRoaXMuX2NoYXQub3Blbih1c2VySWQpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBtb2RlbCB2ZXJzaW9uIGNvbXBhcmUsIGZvcm0gY29tcG9uZW50IGluICdjb21wYXJlJyB2aWV3IG1vZGVcclxuICAgKiBAcGFyYW0gbG9nXHJcbiAgICovXHJcbiAgY29tcGFyZShsb2c6IFRyYWNlKSB7XHJcbiAgICB0aGlzLnZlcnNpb25TZWxlY3RlZC5lbWl0KGxvZy50aW1lKTtcclxuICB9XHJcbn1cclxuaW50ZXJmYWNlIFRyYWNlIHtcclxuICBmeWk/OiBib29sZWFuO1xyXG4gIHR5cGU6IExvZ1R5cGUgfCAnUGVuZGluZycgfCAnRXN0aW1hdGUnO1xyXG4gIG5hbWU/OiBzdHJpbmc7XHJcbiAgZXN0aW1hdGU/OiBib29sZWFuO1xyXG4gIHBlbmRpbmc/OiBib29sZWFuO1xyXG4gIGFjdGlvbj86IHN0cmluZztcclxuICByb2xlPzogc3RyaW5nO1xyXG4gIG5vdGU/OiBzdHJpbmc7XHJcbiAgZHVyYXRpb24/OiBudW1iZXI7XHJcbiAgZHVyYXRpb25NaW4/OiBudW1iZXI7XHJcbiAgZHVyYXRpb25NYXg/OiBudW1iZXI7XHJcbiAgZmlsZU5hbWU/OiBzdHJpbmc7XHJcbiAgdGltZT86IERhdGU7XHJcbn1cclxuXHJcbmRlY2xhcmUgdHlwZSBTaG93TW9kZSA9ICdldmVyeXRoaW5nJyB8ICdhY3RpdmUnIHwgJ3JvdXRlJztcclxuIiwiPGRpdiBjbGFzcz1cIm5hdi10b29sYmFyIHJvd1wiPlxyXG4gIDxzcGFuIGNsYXNzPVwiZGl2aWRlclwiPjwvc3Bhbj5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiIFtiaXpkb2NUb29sdGlwXT1cIidTaG93QWxsJ3x0cmFuc2xhdGVcIj48bWF0LWljb24+ZmlsdGVyX2xpc3Q8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gIDxtYXQtbWVudSAjbWVudT4gXHJcbiAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cInNob3dNb2RlPSdyb3V0ZSdcIj5cclxuICAgICAgPG1hdC1pY29uPnt7IHNob3dNb2RlID09PSAncm91dGUnID8gJ2NoZWNrJzonJyB9fTwvbWF0LWljb24+XHJcbiAgICAgIDxzcGFuPnt7J1JvdXRlJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJzaG93TW9kZT0nYWN0aXZlJ1wiPlxyXG4gICAgICA8bWF0LWljb24+e3sgc2hvd01vZGUgPT09ICdhY3RpdmUnID8gJ2NoZWNrJzonJyB9fTwvbWF0LWljb24+XHJcbiAgICAgIDxzcGFuPnt7J0FjdGl2ZVJvdXRlJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJzaG93TW9kZT0nZXZlcnl0aGluZydcIj5cclxuICAgICAgPG1hdC1pY29uPnt7IHNob3dNb2RlID09PSAnZXZlcnl0aGluZycgPyAnY2hlY2snOicnIH19PC9tYXQtaWNvbj5cclxuICAgICAgPHNwYW4+e3snRXZlcnl0aGluZycgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L21hdC1tZW51PlxyXG48L2Rpdj5cclxuPHRhYmxlIGNsYXNzPVwibWF0LXRhYmxlXCIgQGxpc3Q+XHJcbiAgPHRib2R5IHJvbGU9XCJyb3dncm91cFwiPlxyXG4gICAgPHRyIGNsYXNzPVwibWF0LXJvd1wiICpuZ0Zvcj1cImxldCBsIG9mIGRhdGFcIiBAaXRlbT5cclxuICAgICAgPHRkIGNsYXNzPVwibWF0LWNlbGxcIj5cclxuICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cImwubmFtZSB8IHNhbml0aXplSHRtbFwiIChjbGljayk9XCJjaGF0KCRldmVudClcIj48L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9bC5yb2xlPnt7J0pvaW5Db21tYSd8dHJhbnNsYXRlfX17e2wucm9sZX19PC9zcGFuPlxyXG4gICAgICA8L3RkPlxyXG4gICAgICA8dGQgY2xhc3M9XCJtYXQtY2VsbFwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImwudHlwZVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ0FjdGlvblRha2VuJ1wiPlxyXG4gICAgICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cImwuYWN0aW9uIHwgc2FuaXRpemVIdG1sXCIgKGNsaWNrKT1cImNoYXQoJGV2ZW50KVwiIGNsYXNzPVwidG9cIj48L3NwYW4+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInU3VibWl0J1wiPnt7J0lzc3VlZCcgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInUGVuZGluZydcIj57eydJc1BlbmRpbmcnIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ0NoZWNrT3V0J1wiPnt7J0NoZWNrZWRJbicgfCB0cmFuc2xhdGUgOiBsLmZpbGVOYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ0NoZWNrSW4nXCI+e3snQ2hlY2tlZE91dCcgfCB0cmFuc2xhdGUgOiBsLmZpbGVOYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ0VzdGltYXRlJ1wiPnt7J0VzdGltYXRlJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidNb2RlbENoYW5nZSdcIj57eydDaGFuZ2VkJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwibC5meWlcIj4mbmJzcDt7eydGWUknfHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICA8L3RkPlxyXG4gICAgICA8dGQgY2xhc3M9XCJtYXQtY2VsbFwiIFtuZ1N3aXRjaF09XCJsLmVzdGltYXRlXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJsLmR1cmF0aW9uTWF4ICYmIGwuZHVyYXRpb25NYXggPT09IGwuZHVyYXRpb25NaW5cIiBbYml6ZG9jVG9vbHRpcF09XCJsLmR1cmF0aW9uTWF4fGFtRHVyYXRpb25Gb3JtYXRcIj57eydFc3RpbWF0ZVRpbWUnfCB0cmFuc2xhdGUgOiAobC5kdXJhdGlvbk1heCB8IGFtRHVyYXRpb246J3MnKX19PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJsLmR1cmF0aW9uTWF4ICYmIGwuZHVyYXRpb25NYXggIT09IGwuZHVyYXRpb25NaW5cIlxyXG4gICAgICAgICAgICAgICAgW2JpemRvY1Rvb2x0aXBdPVwibC5kdXJhdGlvbk1heHxhbUR1cmF0aW9uRm9ybWF0XCI+e3snRXN0aW1hdGVUaW1lUmFuZ2UnfCB0cmFuc2xhdGUgOiAobC5kdXJhdGlvbk1pbiB8IGFtRHVyYXRpb246J3MnKSA6IChsLmR1cmF0aW9uTWF4IHwgYW1EdXJhdGlvbjoncycpfX08L3NwYW4+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgICAgICAgPHNwYW4+e3tsLnRpbWUgfCBhbUNhbGVuZGFyIDogbnVsbCA6IENBTEVOREFSX1NQRUMgfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiAqbmdJZj1cImwuZHVyYXRpb25cIiBbYml6ZG9jVG9vbHRpcF09XCJsLmR1cmF0aW9ufGFtRHVyYXRpb25Gb3JtYXRcIiBjbGFzcz1cImR1cmF0aW9uXCI+Jm5ic3A7KHt7bC5kdXJhdGlvbiB8IGFtRHVyYXRpb246J3MnfX0pPC9zcGFuPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L3RkPlxyXG4gICAgICA8dGQgY2xhc3M9XCJtYXQtY2VsbFwiPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwibC5ub3RlXCI+e3tsLm5vdGV9fTwvc3Bhbj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAqbmdJZj1cImwudHlwZT09PSdNb2RlbENoYW5nZSdcIiAoY2xpY2spPVwiY29tcGFyZShsKVwiIFtiaXpkb2NUb29sdGlwXT1cIidDb21wYXJlJ3x0cmFuc2xhdGVcIiBiaXpkb2NUb29sdGlwUG9zaXRpb249XCJzdGFydFwiPjxtYXQtaWNvbj5tb3JlX2hvcml6PC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgICAgPC90ZD5cclxuICAgIDwvdHI+XHJcbiAgPC90Ym9keT5cclxuPC90YWJsZT5cclxuIl19
|
345
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb21wb3NlL3RyYWNlL3RyYWNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY29tcG9zZS90cmFjZS90cmFjZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFNMUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFckUsb0NBQW9DO0FBT3BDLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxTQUFTO0lBVy9DLFlBQW9CLFFBQXdCLEVBQ2xDLFVBQTRCLEVBQzVCLFNBQXlCLEVBQ3pCLEtBQWUsRUFDdkIsR0FBZTtRQUNmLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUxPLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ2xDLGVBQVUsR0FBVixVQUFVLENBQWtCO1FBQzVCLGNBQVMsR0FBVCxTQUFTLENBQWdCO1FBQ3pCLFVBQUssR0FBTCxLQUFLLENBQVU7UUFaTixvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDOUQsU0FBSSxHQUFZLEVBQUUsQ0FBQztRQUVWLGtCQUFhLEdBQWlCO1lBQ3JDLE9BQU8sRUFBRSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxTQUFTO1lBQ3RELFFBQVEsRUFBRSxZQUFZO1lBQ3RCLE9BQU8sRUFBRSxJQUFJ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K0dBMVVVLGtCQUFrQjttR0FBbEIsa0JBQWtCLDZLQ25CL0IsK3hHQXlEQSw2cUREeENjLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQzsyRkFFL0Isa0JBQWtCO2tCQU45QixTQUFTOytCQUNFLGNBQWMsY0FHWixDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUM7aU5BR2pDLEtBQUs7c0JBQWIsS0FBSztnQkFDYSxlQUFlO3NCQUFqQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XHJcbmltcG9ydCB7IENhbGVuZGFyU3BlYyB9IGZyb20gXCIuLi8uLi9jb3JlL3BpcGVzL2NhbGVuZGFyLnBpcGVcIjtcclxuaW1wb3J0IHsgVXNlckluZm8sIExvZ1R5cGUsIERvY3VtZW50TW9kZWwsIEFjdGlvbiwgTG9nLCBHZW5kZXIgfSBmcm9tIFwiLi4vLi4vY29yZS9tb2RlbHNcIjtcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEFjY291bnRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvYWNjb3VudC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFRyYWNlQmFzZSwgWW91IH0gZnJvbSBcIi4vdHJhY2UuYmFzZVwiO1xyXG5pbXBvcnQgeyBIdWJTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvaHViLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQ2hhdEluZm8gfSBmcm9tIFwiLi4vLi4vY2hhdC9jaGF0LWluZm9cIjtcclxuaW1wb3J0IHsgaXRlbUFuaW1hdGlvbiwgbGlzdEFuaW1hdGlvbiB9IGZyb20gXCIuLi8uLi9jb3JlL2FuaW1hdGlvbnNcIjtcclxuXHJcbi8qKiBjb21wb25lbnQgc2hvd2luZyB0cmFjZSB0YWJsZSAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy10cmFjZScsXHJcbiAgdGVtcGxhdGVVcmw6ICd0cmFjZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJ3RyYWNlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgYW5pbWF0aW9uczogW2xpc3RBbmltYXRpb24sIGl0ZW1BbmltYXRpb25dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFjZVZpZXdDb21wb25lbnQgZXh0ZW5kcyBUcmFjZUJhc2UgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gIEBJbnB1dCgpIG1vZGVsOiBEb2N1bWVudE1vZGVsPGFueT47XHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHZlcnNpb25TZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcclxuICBkYXRhOiBUcmFjZVtdID0gW107XHJcbiAgcHJpdmF0ZSBfZGF0YTogVHJhY2VbXTtcclxuICByZWFkb25seSBDQUxFTkRBUl9TUEVDOiBDYWxlbmRhclNwZWMgPSB7XHJcbiAgICBsYXN0RGF5OiBgWyR7dGhpcy5fdHJhbnNsYXRlLmdldCgnWWVzdGVyZGF5Jyl9XSBISDptbWAsXHJcbiAgICBsYXN0V2VlazogJ2RkZGQgSEg6bW0nLFxyXG4gICAgc2FtZURheTogYFske3RoaXMuX3RyYW5zbGF0ZS5nZXQoJ1RvZGF5Jyl9XSBISDptbWAsXHJcbiAgICBzYW1lRWxzZTogJ01NTSBEIEhIOm1tJ1xyXG4gIH07XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9hY2NvdW50czogQWNjb3VudFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jaGF0OiBDaGF0SW5mbyxcclxuICAgIGh1YjogSHViU2VydmljZSkge1xyXG4gICAgc3VwZXIoaHViKTtcclxuICAgIHRoaXMuX3Nob3dNb2RlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3RyYWNlTW9kZScpIGFzIFNob3dNb2RlIHx8ICdldmVyeXRoaW5nJztcclxuICB9XHJcbiAgbmdPbkNoYW5nZXMoX2NoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIHRoaXMuX2luaXRpYWxpemUoKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBhc3luYyBfaW5pdGlhbGl6ZSgpIHtcclxuICAgIGNvbnN0IHsgaXNzdWVkLCBsb2csIHJlY2lwaWVudHMsIGF0dGFjaG1lbnRzIH0gPSB0aGlzLm1vZGVsO1xyXG5cclxuICAgIGNvbnN0IG1lID0gdGhpcztcclxuXHJcblxyXG4gICAgZnVuY3Rpb24gcHJvZmlsZU9mKGlkKSB7XHJcbiAgICAgIHJldHVybiBtZS5fYWNjb3VudHMuZ2V0KGlkKS50b1Byb21pc2UoKTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogdXNlciBuYW1lLCBjaGF0IGFuY2hvciB0YWcgb3IgWW91XHJcbiAgICAgKiBAcGFyYW0gdXNlclxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiBuYW1lT2YodXNlcjogVXNlckluZm8pOiBzdHJpbmcge1xyXG4gICAgICByZXR1cm4gbWUuX2NoYXQuZm9ybWF0KHVzZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGZ1bmN0aW9uIGFjdGlvbkJ5KGFjdGlvbjogQWN0aW9uLCBnZW5kZXI6IEdlbmRlciB8ICd5b3UnLCBpZD86IG51bWJlcikge1xyXG4gICAgICBsZXQgbmFtZTogc3RyaW5nO1xyXG4gICAgICBpZiAoZ2VuZGVyID09PSBZb3UpIHtcclxuICAgICAgICBjb25zdCB7IGdlbmRlciB9ID0gbWUuX3Nlc3Npb247XHJcbiAgICAgICAgbmFtZSA9IChnZW5kZXIgPT09ICdNYWxlJyA/IChhY3Rpb24ueW91TWFsZSB8fCBhY3Rpb24ueW91KSA6XHJcbiAgICAgICAgICBnZW5kZXIgPT09ICdGZW1hbGUnID8gKGFjdGlvbi55b3VGZW1hbGUgfHwgYWN0aW9uLnlvdSkgOlxyXG4gICAgICAgICAgICBhY3Rpb24ueW91KSB8fFxyXG4gICAgICAgICAgYWN0aW9uLnBhc3QgfHxcclxuICAgICAgICAgIGFjdGlvbi50aXRsZTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlXHJcbiAgICAgICAgbmFtZSA9IChnZW5kZXIgPT09ICdNYWxlJyA/IChhY3Rpb24ucGFzdE1hbGUgfHwgYWN0aW9uLnBhc3QpIDpcclxuICAgICAgICAgIGdlbmRlciA9PT0gJ0ZlbWFsZScgPyAoYWN0aW9uLnBhc3RGZW1hbGUgfHwgYWN0aW9uLnBhc3QpIDpcclxuICAgICAgICAgICAgYWN0aW9uLnBhc3QpXHJcbiAgICAgICAgICB8fCBhY3Rpb24udGl0bGU7XHJcblxyXG4gICAgICBpZiAoaWQpIHtcclxuICAgICAgICBjb25zdCB0byA9IG1lLm1vZGVsLnJlY2lwaWVudHMuZmlsdGVyKHIgPT4gci5vcmlnaW5JZCA9PT0gaWQpO1xyXG4gICAgICAgIGlmICh0by5sZW5ndGgpIHtcclxuICAgICAgICAgIGNvbnN0IHVzZXJzID0gW107XHJcbiAgICAgICAgICBmb3IgKGxldCB3aG8gb2YgdG8pIHtcclxuICAgICAgICAgICAgbGV0IHByb2ZpbGUgPSBhd2FpdCBwcm9maWxlT2Yod2hvLnN1YnN0aXR1dGVJZCB8fCB3aG8udXNlcklkKTtcclxuICAgICAgICAgICAgdXNlcnMucHVzaChuYW1lT2YocHJvZmlsZSkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIG1lLl90cmFuc2xhdGUuZ2V0KCdBY3Rpb25UbycsIG5hbWUsIG1lLl90cmFuc2xhdGUuam9pbih1c2VycykpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbmFtZTtcclxuICAgIH1cclxuICAgIGNvbnN0IHRyYWNlOiBUcmFjZVtdID0gW107XHJcblxyXG4gICAgZm9yIChsZXQgbCBvZiBsb2cpIHtcclxuICAgICAgbGV0IGFjdGlvbjogQWN0aW9uO1xyXG5cclxuICAgICAgc3dpdGNoIChsLnR5cGUpIHtcclxuICAgICAgICBjYXNlICdBY3Rpb25UYWtlbic6XHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGFjdGlvbiA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5hY3Rpb25zLmZpbmQoYSA9PiBhLm5hbWUgPT09IGwuYWN0aW9uKTtcclxuICAgICAgICAgICAgaWYgKGFjdGlvbi5sb2dnYWJsZSA9PT0gZmFsc2UpXHJcbiAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIGNhc2UgJ0NoZWNrSW4nOlxyXG4gICAgICAgIGNhc2UgJ0NoZWNrT3V0JzpcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ01vZGVsQ2hhbmdlJzpcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ1N1Ym1pdCc6XHJcbiAgICAgICAgICBpZiAobC5lc3RpbWF0ZSkgY29udGludWU7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgY29udGludWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGxldCBzdGVwID0geyBlc3RpbWF0ZTogbC5lc3RpbWF0ZSwgdGltZTogbC50aW1lLCB0eXBlOiBsLnR5cGUsIGR1cmF0aW9uOiBsLmR1cmF0aW9uLCBub3RlOiBsLm5vdGUsIHN0YXRlOiBsLnN0YXRlIH0gYXMgVHJhY2U7XHJcblxyXG4gICAgICB0cmFjZS5wdXNoKHN0ZXApO1xyXG5cclxuICAgICAgc3dpdGNoIChsLnR5cGUpIHtcclxuICAgICAgICBjYXNlICdDaGVja0luJzpcclxuICAgICAgICBjYXNlICdDaGVja091dCc6XHJcbiAgICAgICAgICBsZXQgYXR0YWNobWVudCA9IGF0dGFjaG1lbnRzLmZpbmQoZiA9PiBmLmlkID09PSBsLmZpbGVJZCk7XHJcbiAgICAgICAgICBzdGVwLmZpbGVOYW1lID0gYXR0YWNobWVudC5maWxlTmFtZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAobC5yZWNpcGllbnRJZCkge1xyXG4gICAgICAgIGxldCByZWNpcGllbnQgPSByZWNpcGllbnRzLmZpbmQociA9PiByLmlkID09PSBsLnJlY2lwaWVudElkKTtcclxuICAgICAgICBpZiAocmVjaXBpZW50LnJvbGUpXHJcbiAgICAgICAgICBzdGVwLnJvbGUgPSB0aGlzLl9yb2xlTmFtZShyZWNpcGllbnQucm9sZSk7XHJcbiAgICAgICAgc3RlcC5meWkgPSByZWNpcGllbnQuZnlpO1xyXG5cclxuICAgICAgICBpZiAocmVjaXBpZW50LnN1YnN0aXR1dGVJZCkge1xyXG4gICAgICAgICAgbGV0IHN1YnN0aXR1dGluZyA9IGF3YWl0IHByb2ZpbGVPZihyZWNpcGllbnQuc3Vic3RpdHV0ZUlkKTtcclxuICAgICAgICAgIGlmIChyZWNpcGllbnQuYnlJZCkge1xyXG4gICAgICAgICAgICBpZiAocmVjaXBpZW50LmJ5SWQgPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKSB7XHJcbiAgICAgICAgICAgICAgbGV0IHdobyA9IGF3YWl0IHByb2ZpbGVPZihyZWNpcGllbnQudXNlcklkKTtcclxuICAgICAgICAgICAgICBpZiAocmVjaXBpZW50LnN1YnN0aXR1dGVJZCA9PT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpXHJcbiAgICAgICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdCeVlvdScsIG5hbWVPZih3aG8pKTtcclxuICAgICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUucGVyc29uYWxpemUoJ1N1YnN0aXR1dGluZ0J5WW91Jywgd2hvLmdlbmRlciwgbmFtZU9mKHdobyksIG5hbWVPZihzdWJzdGl0dXRpbmcpKTtcclxuICAgICAgICAgICAgICBpZiAoYWN0aW9uKVxyXG4gICAgICAgICAgICAgICAgc3RlcC5hY3Rpb24gPSBhd2FpdCBhY3Rpb25CeShhY3Rpb24sIFlvdSwgcmVjaXBpZW50LmlkKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICBsZXQgYnkgPSBhd2FpdCBwcm9maWxlT2YocmVjaXBpZW50LmJ5SWQpO1xyXG4gICAgICAgICAgICAgIGxldCB3aG8gPSBhd2FpdCBwcm9maWxlT2YocmVjaXBpZW50LnVzZXJJZCk7XHJcbiAgICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnU3Vic3RpdHV0aW5nQnknLCBuYW1lT2Yod2hvKSwgbmFtZU9mKHN1YnN0aXR1dGluZyksIG5hbWVPZihieSkpO1xyXG4gICAgICAgICAgICAgIGlmIChieS5yb2xlKVxyXG4gICAgICAgICAgICAgICAgc3RlcC5yb2xlID0gYnkucm9sZTtcclxuICAgICAgICAgICAgICBpZiAoYWN0aW9uKVxyXG4gICAgICAgICAgICAgICAgc3RlcC5hY3Rpb24gPSBhd2FpdCBhY3Rpb25CeShhY3Rpb24sIGJ5LmdlbmRlcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBsZXQgd2hvID0gYXdhaXQgcHJvZmlsZU9mKHJlY2lwaWVudC51c2VySWQpO1xyXG4gICAgICAgICAgICBpZiAocmVjaXBpZW50LnN1YnN0aXR1dGVJZCA9PT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpIHtcclxuICAgICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUucGVyc29uYWxpemUoJ1N1YnN0aXR1dGluZ0ZvcllvdScsIHdoby5nZW5kZXIsIG5hbWVPZih3aG8pKTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChyZWNpcGllbnQudXNlcklkID09PSB0aGlzLl9zZXNzaW9uLnVzZXJJZCkge1xyXG4gICAgICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5wZXJzb25hbGl6ZSgnWW91U3Vic3RpdHV0ZScsIHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5ieUdlbmRlciwgbmFtZU9mKHdobykpO1xyXG4gICAgICAgICAgICAgIGlmIChhY3Rpb24pXHJcbiAgICAgICAgICAgICAgICBzdGVwLmFjdGlvbiA9IGF3YWl0IGFjdGlvbkJ5KGFjdGlvbiwgd2hvLmdlbmRlciwgcmVjaXBpZW50LmlkKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUucGVyc29uYWxpemUoJ1N1YnN0aXR1dGluZycsIHdoby5nZW5kZXIsIG5hbWVPZih3aG8pLCBuYW1lT2Yoc3Vic3RpdHV0aW5nKSk7XHJcbiAgICAgICAgICAgICAgaWYgKHdoby5yb2xlKVxyXG4gICAgICAgICAgICAgICAgc3RlcC5yb2xlID0gd2hvLnJvbGU7XHJcbiAgICAgICAgICAgICAgaWYgKGFjdGlvbilcclxuICAgICAgICAgICAgICAgIHN0ZXAuYWN0aW9uID0gYXdhaXQgYWN0aW9uQnkoYWN0aW9uLCB3aG8uZ2VuZGVyLCByZWNpcGllbnQuaWQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHJlY2lwaWVudC5ieUlkKSB7XHJcbiAgICAgICAgICBsZXQgd2hvID0gYXdhaXQgcHJvZmlsZU9mKHJlY2lwaWVudC51c2VySWQpLFxyXG4gICAgICAgICAgICBieSA9IGF3YWl0IHByb2ZpbGVPZihyZWNpcGllbnQuYnlJZCk7XHJcbiAgICAgICAgICBpZiAocmVjaXBpZW50LmJ5SWQgPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKVxyXG4gICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdCeVlvdScsIG5hbWVPZih3aG8pKTtcclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdCeScsIG5hbWVPZih3aG8pLCBuYW1lT2YoYnkpKTtcclxuICAgICAgICAgICAgaWYgKGJ5LnJvbGUpXHJcbiAgICAgICAgICAgICAgc3RlcC5yb2xlID0gYnkucm9sZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChhY3Rpb24pXHJcbiAgICAgICAgICAgIHN0ZXAuYWN0aW9uID0gYXdhaXQgYWN0aW9uQnkoYWN0aW9uLCBieS5nZW5kZXIsIHJlY2lwaWVudC5pZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgaWYgKHJlY2lwaWVudC51c2VySWQgPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKVxyXG4gICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdZb3UnKTtcclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBsZXQgd2hvID0gYXdhaXQgcHJvZmlsZU9mKHJlY2lwaWVudC51c2VySWQpO1xyXG4gICAgICAgICAgICBzdGVwLm5hbWUgPSBuYW1lT2Yod2hvKTtcclxuICAgICAgICAgICAgaWYgKHdoby5yb2xlKVxyXG4gICAgICAgICAgICAgIHN0ZXAucm9sZSA9IHdoby5yb2xlO1xyXG4gICAgICAgICAgICBpZiAoYWN0aW9uKVxyXG4gICAgICAgICAgICAgIHN0ZXAuYWN0aW9uID0gYXdhaXQgYWN0aW9uQnkoYWN0aW9uLCB3aG8uZ2VuZGVyLCByZWNpcGllbnQuaWQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBpZiAobC51c2VySWQgPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKVxyXG4gICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fc2Vzc2lvbi5pc0ltcGVyc29uYXRpbmcgPyB0aGlzLl9zZXNzaW9uLnByb2ZpbGUubmFtZSA6IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1lvdScpO1xyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgbGV0IHdobyA9IGF3YWl0IHByb2ZpbGVPZihsLnVzZXJJZCk7XHJcbiAgICAgICAgICBzdGVwLm5hbWUgPSBuYW1lT2Yod2hvKTtcclxuICAgICAgICAgIGlmICh3aG8ucm9sZSlcclxuICAgICAgICAgICAgc3RlcC5yb2xlID0gd2hvLnJvbGU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBmb3IgKGxldCByZWNpcGllbnQgb2YgcmVjaXBpZW50cykge1xyXG4gICAgICBpZiAoIXJlY2lwaWVudC5wZW5kaW5nICYmICFyZWNpcGllbnQuZXN0aW1hdGUgJiYgIXJlY2lwaWVudC5meWkpIGNvbnRpbnVlO1xyXG5cclxuICAgICAgbGV0IHN0ZXAgPSB7XHJcbiAgICAgICAgdGltZTogcmVjaXBpZW50LnJlY2VpdmVkLFxyXG4gICAgICAgIGZ5aTogcmVjaXBpZW50LmZ5aSxcclxuICAgICAgICBlc3RpbWF0ZTogcmVjaXBpZW50LmVzdGltYXRlLFxyXG4gICAgICAgIHBlbmRpbmc6IHJlY2lwaWVudC5wZW5kaW5nLFxyXG4gICAgICAgIGFjdGlvbjogcmVjaXBpZW50LmFjdGlvbixcclxuICAgICAgICBub3RlOiByZWNpcGllbnQubm90ZSxcclxuICAgICAgICB0eXBlOiByZWNpcGllbnQuZXN0aW1hdGUgPyAnRXN0aW1hdGUnIDogJ1BlbmRpbmcnLFxyXG4gICAgICAgIGR1cmF0aW9uOiByZWNpcGllbnQucGVuZGluZyA/IGRheWpzKCkuZGlmZihyZWNpcGllbnQucmVjZWl2ZWQsICdzJykgOiBudWxsLFxyXG4gICAgICAgIHJvbGU6IHJlY2lwaWVudC5yb2xlID8gdGhpcy5fcm9sZU5hbWUocmVjaXBpZW50LnJvbGUpIDogbnVsbFxyXG4gICAgICB9IGFzIFRyYWNlO1xyXG5cclxuICAgICAgaWYgKHJlY2lwaWVudC5ub2RlSWQpIHtcclxuICAgICAgICBjb25zdCBub2RlID0gdGhpcy5tb2RlbC53b3JrZmxvdy5ub2Rlcy5maW5kKG4gPT4gbi5pZCA9PT0gcmVjaXBpZW50Lm5vZGVJZCk7XHJcbiAgICAgICAgaWYgKG5vZGUpIHtcclxuICAgICAgICAgIGlmIChyZWNpcGllbnQuZXN0aW1hdGUpIHtcclxuICAgICAgICAgICAgY29uc3QgeyBtaW4sIG1heCB9ID0gc3VwZXIuX2VzdGltYXRlVGltZShub2RlKTtcclxuICAgICAgICAgICAgaWYgKG1heClcclxuICAgICAgICAgICAgICBzdGVwLmR1cmF0aW9uTWluID0gbWluLFxyXG4gICAgICAgICAgICAgICAgc3RlcC5kdXJhdGlvbk1heCA9IG1heDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHN0ZXAuZnlpID0gcmVjaXBpZW50LmZ5aTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChyZWNpcGllbnQuc3Vic3RpdHV0ZUlkKSB7XHJcbiAgICAgICAgbGV0IHdobyA9IGF3YWl0IHByb2ZpbGVPZihyZWNpcGllbnQudXNlcklkKTtcclxuICAgICAgICBpZiAocmVjaXBpZW50LmJ5SWQpIHtcclxuICAgICAgICAgIGlmIChyZWNpcGllbnQuYnlJZCA9PT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpIHtcclxuICAgICAgICAgICAgaWYgKHJlY2lwaWVudC5zdWJzdGl0dXRlSWQgPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKVxyXG4gICAgICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0J5WW91JywgbmFtZU9mKHdobykpO1xyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICBsZXQgc3Vic3RpdHV0aW5nID0gYXdhaXQgcHJvZmlsZU9mKHJlY2lwaWVudC5zdWJzdGl0dXRlSWQpO1xyXG4gICAgICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5wZXJzb25hbGl6ZSgnU3Vic3RpdHV0aW5nQnlZb3UnLCB3aG8uZ2VuZGVyLCBuYW1lT2Yod2hvKSwgbmFtZU9mKHN1YnN0aXR1dGluZykpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgbGV0IHN1YnN0aXR1dGluZyA9IGF3YWl0IHByb2ZpbGVPZihyZWNpcGllbnQuc3Vic3RpdHV0ZUlkKTtcclxuICAgICAgICAgICAgbGV0IGJ5ID0gYXdhaXQgcHJvZmlsZU9mKHJlY2lwaWVudC5ieUlkKTtcclxuICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnU3Vic3RpdHV0aW5nQnknLCBuYW1lT2Yod2hvKSwgbmFtZU9mKHN1YnN0aXR1dGluZyksIG5hbWVPZihieSkpO1xyXG4gICAgICAgICAgICBpZiAoYnkucm9sZSlcclxuICAgICAgICAgICAgICBzdGVwLnJvbGUgPSBieS5yb2xlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGlmIChyZWNpcGllbnQuc3Vic3RpdHV0ZUlkID09PSB0aGlzLl9zZXNzaW9uLnVzZXJJZClcclxuICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLnBlcnNvbmFsaXplKCdTdWJzdGl0dXRpbmdGb3JZb3UnLCB3aG8uZ2VuZGVyLCBuYW1lT2Yod2hvKSk7XHJcbiAgICAgICAgICBlbHNlIGlmIChyZWNpcGllbnQudXNlcklkID09PSB0aGlzLl9zZXNzaW9uLnVzZXJJZClcclxuICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLnBlcnNvbmFsaXplKCdZb3VTdWJzdGl0dXRlJywgdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmJ5R2VuZGVyLCBuYW1lT2Yod2hvKSk7XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgbGV0IHN1YnN0aXR1dGluZyA9IGF3YWl0IHByb2ZpbGVPZihyZWNpcGllbnQuc3Vic3RpdHV0ZUlkKTtcclxuICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLnBlcnNvbmFsaXplKCdTdWJzdGl0dXRpbmcnLCB3aG8uZ2VuZGVyLCBuYW1lT2Yod2hvKSwgbmFtZU9mKHN1YnN0aXR1dGluZykpO1xyXG4gICAgICAgICAgICBpZiAod2hvLnJvbGUpXHJcbiAgICAgICAgICAgICAgc3RlcC5yb2xlID0gd2hvLnJvbGU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKHJlY2lwaWVudC5ieUlkKSB7XHJcbiAgICAgICAgbGV0IHdobyA9IGF3YWl0IHByb2ZpbGVPZihyZWNpcGllbnQudXNlcklkKTtcclxuICAgICAgICBpZiAocmVjaXBpZW50LmJ5SWQgPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKVxyXG4gICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnQnlZb3UnLCBuYW1lT2Yod2hvKSk7XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBsZXQgYnkgPSBhd2FpdCBwcm9maWxlT2YocmVjaXBpZW50LmJ5SWQpO1xyXG4gICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnQnknLCBuYW1lT2Yod2hvKSwgbmFtZU9mKGJ5KSk7XHJcbiAgICAgICAgICBpZiAoYnkucm9sZSlcclxuICAgICAgICAgICAgc3RlcC5yb2xlID0gYnkucm9sZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAocmVjaXBpZW50LmVzY2FsYXRlZCkge1xyXG4gICAgICAgIGxldCBlc2NhbGF0aW9ucyA9IHRoaXMubW9kZWwubG9nLmZpbHRlcihsID0+IGwudGltZSA+IGlzc3VlZCAmJlxyXG4gICAgICAgICAgbC50eXBlID09PSAnRXNjYWxhdGlvbicgJiYgbC5yZWNpcGllbnRJZCA9PT0gcmVjaXBpZW50LmlkKTtcclxuXHJcbiAgICAgICAgbGV0IGVzY2FsYXRlID0gW107XHJcbiAgICAgICAgZm9yIChsZXQgZXNjYWxhdGlvbiBvZiBlc2NhbGF0aW9ucykge1xyXG4gICAgICAgICAgbGV0IHdobyA9IGF3YWl0IHByb2ZpbGVPZihlc2NhbGF0aW9uLnVzZXJJZCk7XHJcbiAgICAgICAgICBlc2NhbGF0ZS5wdXNoKHdobyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCB3aG8gPSBhd2FpdCBwcm9maWxlT2YocmVjaXBpZW50LnVzZXJJZCk7XHJcbiAgICAgICAgaWYgKGVzY2FsYXRpb25zLmxlbmd0aCA9PT0gMSAmJiBlc2NhbGF0ZVswXSA9PT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpXHJcbiAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdFc2NhbGF0ZWRCeVlvdScsIG5hbWVPZih3aG8pKTtcclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdFc2NhbGF0ZWRCeScsIG5hbWVPZih3aG8pLCB0aGlzLl90cmFuc2xhdGUuam9pbihlc2NhbGF0ZS5tYXAoZSA9PiBuYW1lT2YoZSkpKSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgaWYgKHJlY2lwaWVudC51c2VySWQgPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKVxyXG4gICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnWW91Jyk7XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBsZXQgd2hvID0gYXdhaXQgcHJvZmlsZU9mKHJlY2lwaWVudC51c2VySWQpO1xyXG4gICAgICAgICAgc3RlcC5uYW1lID0gbmFtZU9mKHdobyk7XHJcbiAgICAgICAgICBpZiAod2hvLnJvbGUpXHJcbiAgICAgICAgICAgIHN0ZXAucm9sZSA9IHdoby5yb2xlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0cmFjZS5wdXNoKHN0ZXApO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX2RhdGEgPSB0cmFjZS5zb3J0KChhLCBiKSA9PiBhLnRpbWUgPiBiLnRpbWUgPyAxIDogYS50aW1lID09PSBiLnRpbWUgPyAwIDogLTEpO1xyXG5cclxuICAgIHRoaXMuX2ZpbHRlcigpO1xyXG4gIH1cclxuICBwcml2YXRlIF9maWx0ZXIoKSB7XHJcbiAgICBzd2l0Y2ggKHRoaXMuX3Nob3dNb2RlKSB7XHJcbiAgICAgIGNhc2UgJ2FjdGl2ZSc6XHJcbiAgICAgICAgdGhpcy5kYXRhID0gdGhpcy5fZGF0YS5maWx0ZXIobCA9PiBsLnRpbWUgPj0gdGhpcy5tb2RlbC5pc3N1ZWQpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdyb3V0ZSc6XHJcbiAgICAgICAgdGhpcy5kYXRhID0gdGhpcy5fZGF0YS5maWx0ZXIobCA9PiBsLnR5cGUgPT09ICdBY3Rpb25UYWtlbidcclxuICAgICAgICAgIHx8IGwudHlwZSA9PT0gJ0VzdGltYXRlJyB8fCBsLnR5cGUgPT09ICdQZW5kaW5nJyk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgdGhpcy5kYXRhID0gdGhpcy5fZGF0YTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcbiAgcHJpdmF0ZSBfc2hvd01vZGU6IFNob3dNb2RlID0gJ2V2ZXJ5dGhpbmcnO1xyXG5cclxuICBwdWJsaWMgZ2V0IHNob3dNb2RlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3Nob3dNb2RlO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IHNob3dNb2RlKHZhbHVlOiBTaG93TW9kZSkge1xyXG4gICAgdGhpcy5fc2hvd01vZGUgPSB2YWx1ZTtcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCd0cmFjZU1vZGUnLCB2YWx1ZSk7XHJcbiAgICB0aGlzLl9kYXRhICYmIHRoaXMuX2ZpbHRlcigpO1xyXG4gIH1cclxuICBwcml2YXRlIF9yb2xlTmFtZShuYW1lKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHJvbGUgPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUucm9sZXMuZmluZChyID0+IHIubmFtZSA9PT0gbmFtZSk7XHJcbiAgICByZXR1cm4gcm9sZSA/IHJvbGUudGl0bGUgOiBuYW1lO1xyXG4gIH1cclxuICBjaGF0KGU6IE1vdXNlRXZlbnQpIHtcclxuICAgIGNvbnN0IHVzZXJJZCA9IChlLnNyY0VsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLmdldEF0dHJpYnV0ZSgnZGF0YS1pbmZvJyk7XHJcbiAgICB1c2VySWQgJiZcclxuICAgICAgdGhpcy5fY2hhdC5vcGVuKHVzZXJJZCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIG1vZGVsIHZlcnNpb24gY29tcGFyZSwgZm9ybSBjb21wb25lbnQgaW4gJ2NvbXBhcmUnIHZpZXcgbW9kZVxyXG4gICAqIEBwYXJhbSBsb2dcclxuICAgKi9cclxuICBjb21wYXJlKGxvZzogVHJhY2UpIHtcclxuICAgIHRoaXMudmVyc2lvblNlbGVjdGVkLmVtaXQobG9nLnRpbWUpO1xyXG4gIH1cclxufVxyXG5pbnRlcmZhY2UgVHJhY2Uge1xyXG4gIGZ5aT86IGJvb2xlYW47XHJcbiAgdHlwZTogTG9nVHlwZSB8ICdQZW5kaW5nJyB8ICdFc3RpbWF0ZSc7XHJcbiAgbmFtZT86IHN0cmluZztcclxuICBlc3RpbWF0ZT86IGJvb2xlYW47XHJcbiAgcGVuZGluZz86IGJvb2xlYW47XHJcbiAgYWN0aW9uPzogc3RyaW5nO1xyXG4gIHJvbGU/OiBzdHJpbmc7XHJcbiAgbm90ZT86IHN0cmluZztcclxuICBkdXJhdGlvbj86IG51bWJlcjtcclxuICBkdXJhdGlvbk1pbj86IG51bWJlcjtcclxuICBkdXJhdGlvbk1heD86IG51bWJlcjtcclxuICBmaWxlTmFtZT86IHN0cmluZztcclxuICB0aW1lPzogRGF0ZTtcclxufVxyXG5cclxuZGVjbGFyZSB0eXBlIFNob3dNb2RlID0gJ2V2ZXJ5dGhpbmcnIHwgJ2FjdGl2ZScgfCAncm91dGUnO1xyXG4iLCI8ZGl2IGNsYXNzPVwibmF2LXRvb2xiYXIgcm93XCI+XHJcbiAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1Nob3dBbGwnfHRyYW5zbGF0ZVwiPjxtYXQtaWNvbj5maWx0ZXJfbGlzdDwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgPG1hdC1tZW51ICNtZW51PiBcclxuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwic2hvd01vZGU9J3JvdXRlJ1wiPlxyXG4gICAgICA8bWF0LWljb24+e3sgc2hvd01vZGUgPT09ICdyb3V0ZScgPyAnY2hlY2snOicnIH19PC9tYXQtaWNvbj5cclxuICAgICAgPHNwYW4+e3snUm91dGUnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cInNob3dNb2RlPSdhY3RpdmUnXCI+XHJcbiAgICAgIDxtYXQtaWNvbj57eyBzaG93TW9kZSA9PT0gJ2FjdGl2ZScgPyAnY2hlY2snOicnIH19PC9tYXQtaWNvbj5cclxuICAgICAgPHNwYW4+e3snQWN0aXZlUm91dGUnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cInNob3dNb2RlPSdldmVyeXRoaW5nJ1wiPlxyXG4gICAgICA8bWF0LWljb24+e3sgc2hvd01vZGUgPT09ICdldmVyeXRoaW5nJyA/ICdjaGVjayc6JycgfX08L21hdC1pY29uPlxyXG4gICAgICA8c3Bhbj57eydFdmVyeXRoaW5nJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvbWF0LW1lbnU+XHJcbjwvZGl2PlxyXG48dGFibGUgY2xhc3M9XCJtYXQtdGFibGVcIiBAbGlzdD5cclxuICA8dGJvZHkgcm9sZT1cInJvd2dyb3VwXCI+XHJcbiAgICA8dHIgY2xhc3M9XCJtYXQtcm93XCIgKm5nRm9yPVwibGV0IGwgb2YgZGF0YVwiIEBpdGVtPlxyXG4gICAgICA8dGQgY2xhc3M9XCJtYXQtY2VsbFwiPlxyXG4gICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwibC5uYW1lIHwgc2FuaXRpemVIdG1sXCIgKGNsaWNrKT1cImNoYXQoJGV2ZW50KVwiPjwvc3Bhbj5cclxuICAgICAgICA8c3BhbiAqbmdJZj1sLnJvbGU+e3snSm9pbkNvbW1hJ3x0cmFuc2xhdGV9fXt7bC5yb2xlfX08L3NwYW4+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICAgIDx0ZCBjbGFzcz1cIm1hdC1jZWxsXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwibC50eXBlXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInQWN0aW9uVGFrZW4nXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwibC5hY3Rpb24gfCBzYW5pdGl6ZUh0bWxcIiAoY2xpY2spPVwiY2hhdCgkZXZlbnQpXCIgY2xhc3M9XCJ0b1wiPjwvc3Bhbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidTdWJtaXQnXCI+e3snSXNzdWVkJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidQZW5kaW5nJ1wiPnt7J0lzUGVuZGluZycgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInQ2hlY2tPdXQnXCI+e3snQ2hlY2tlZEluJyB8IHRyYW5zbGF0ZSA6IGwuZmlsZU5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInQ2hlY2tJbidcIj57eydDaGVja2VkT3V0JyB8IHRyYW5zbGF0ZSA6IGwuZmlsZU5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInRXN0aW1hdGUnXCI+e3snRXN0aW1hdGUnIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ01vZGVsQ2hhbmdlJ1wiPnt7J0NoYW5nZWQnIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJsLmZ5aVwiPiZuYnNwO3t7J0ZZSSd8dHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICAgIDx0ZCBjbGFzcz1cIm1hdC1jZWxsXCIgW25nU3dpdGNoXT1cImwuZXN0aW1hdGVcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJ0cnVlXCI+XHJcbiAgICAgICAgICA8c3BhbiAqbmdJZj1cImwuZHVyYXRpb25NYXggJiYgbC5kdXJhdGlvbk1heCA9PT0gbC5kdXJhdGlvbk1pblwiIFtiaXpkb2NUb29sdGlwXT1cImwuZHVyYXRpb25NYXh8YW1EdXJhdGlvbkZvcm1hdFwiPnt7J0VzdGltYXRlVGltZSd8IHRyYW5zbGF0ZSA6IChsLmR1cmF0aW9uTWF4IHwgYW1EdXJhdGlvbjoncycpfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiAqbmdJZj1cImwuZHVyYXRpb25NYXggJiYgbC5kdXJhdGlvbk1heCAhPT0gbC5kdXJhdGlvbk1pblwiXHJcbiAgICAgICAgICAgICAgICBbYml6ZG9jVG9vbHRpcF09XCJsLmR1cmF0aW9uTWF4fGFtRHVyYXRpb25Gb3JtYXRcIj57eydFc3RpbWF0ZVRpbWVSYW5nZSd8IHRyYW5zbGF0ZSA6IChsLmR1cmF0aW9uTWluIHwgYW1EdXJhdGlvbjoncycpIDogKGwuZHVyYXRpb25NYXggfCBhbUR1cmF0aW9uOidzJyl9fTwvc3Bhbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XHJcbiAgICAgICAgICA8c3Bhbj57e2wudGltZSB8IGFtQ2FsZW5kYXIgOiBudWxsIDogQ0FMRU5EQVJfU1BFQyB9fTwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwibC5kdXJhdGlvblwiIFtiaXpkb2NUb29sdGlwXT1cImwuZHVyYXRpb258YW1EdXJhdGlvbkZvcm1hdFwiIGNsYXNzPVwiZHVyYXRpb25cIj4mbmJzcDsoe3tsLmR1cmF0aW9uIHwgYW1EdXJhdGlvbjoncyd9fSk8L3NwYW4+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICAgIDx0ZCBjbGFzcz1cIm1hdC1jZWxsXCI+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJsLm5vdGVcIj57e2wubm90ZX19PC9zcGFuPlxyXG4gICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uICpuZ0lmPVwibC50eXBlPT09J01vZGVsQ2hhbmdlJ1wiIChjbGljayk9XCJjb21wYXJlKGwpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ0NvbXBhcmUnfHRyYW5zbGF0ZVwiIGJpemRvY1Rvb2x0aXBQb3NpdGlvbj1cInN0YXJ0XCI+PG1hdC1pY29uPm1vcmVfaG9yaXo8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgICA8L3RkPlxyXG4gICAgPC90cj5cclxuICA8L3Rib2R5PlxyXG48L3RhYmxlPlxyXG4iXX0=
|
@@ -35,9 +35,9 @@ export class TracePaneComponent {
|
|
35
35
|
});
|
36
36
|
}
|
37
37
|
}
|
38
|
-
TracePaneComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.
|
39
|
-
TracePaneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.
|
40
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.
|
38
|
+
TracePaneComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TracePaneComponent, deps: [{ token: i1.TranslateService }, { token: i2.PaneRef }, { token: i3.PanesRouter }], target: i0.ɵɵFactoryTarget.Component });
|
39
|
+
TracePaneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: TracePaneComponent, selector: "ng-component", host: { classAttribute: "pane" }, viewQueries: [{ propertyName: "trace", first: true, predicate: TraceViewComponent, descendants: true, static: true }, { propertyName: "flow", first: true, predicate: FlowViewComponent, descendants: true, static: true }], ngImport: i0, template: "<bizdoc-trace [model]=\"model\" (versionSelected)=\"version($event)\"></bizdoc-trace>\r\n\r\n<bizdoc-flow [model]=\"model\"></bizdoc-flow>\r\n", styles: [":host{padding:0 8px;display:block;min-width:400px}\n"], components: [{ type: i4.TraceViewComponent, selector: "bizdoc-trace", inputs: ["model"], outputs: ["versionSelected"] }, { type: i5.FlowViewComponent, selector: "bizdoc-flow", inputs: ["model", "connectorType"] }] });
|
40
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TracePaneComponent, decorators: [{
|
41
41
|
type: Component,
|
42
42
|
args: [{ host: {
|
43
43
|
class: 'pane'
|
@@ -37,9 +37,9 @@ export class VersionCompareComponent {
|
|
37
37
|
instance.onBind(newModel, this._baseVersion);
|
38
38
|
}
|
39
39
|
}
|
40
|
-
VersionCompareComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.
|
41
|
-
VersionCompareComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.
|
42
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.
|
40
|
+
VersionCompareComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: VersionCompareComponent, deps: [{ token: i1.SessionService }, { token: i2.BizDocComponentFactoryResolver }, { token: i0.ViewContainerRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
41
|
+
VersionCompareComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: VersionCompareComponent, selector: "bizdoc-version-compare", inputs: { model: "model", version: "version" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: VersionCompareComponent, decorators: [{
|
43
43
|
type: Component,
|
44
44
|
args: [{
|
45
45
|
selector: 'bizdoc-version-compare',
|
@@ -65,9 +65,9 @@ export class CompareGroupDirective extends CompareDirectiveBase {
|
|
65
65
|
});
|
66
66
|
}
|
67
67
|
}
|
68
|
-
CompareGroupDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.
|
69
|
-
CompareGroupDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.
|
70
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.
|
68
|
+
CompareGroupDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CompareGroupDirective, deps: [{ token: i1.VersionCompareComponent, optional: true }, { token: CompareContextDirective, host: true, optional: true }, { token: CompareGroupDirective, host: true, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive });
|
69
|
+
CompareGroupDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.2", type: CompareGroupDirective, selector: "[bizdocCompareGroup],[bizdocCompareArray]", inputs: { name: ["bizdocCompareGroup", "name"] }, usesInheritance: true, ngImport: i0 });
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CompareGroupDirective, decorators: [{
|
71
71
|
type: Directive,
|
72
72
|
args: [{ selector: '[bizdocCompareGroup],[bizdocCompareArray]' }]
|
73
73
|
}], ctorParameters: function () { return [{ type: i1.VersionCompareComponent, decorators: [{
|
@@ -218,9 +218,9 @@ export class CompareNameDirective extends CompareDirectiveBase {
|
|
218
218
|
return labelEl;
|
219
219
|
}
|
220
220
|
}
|
221
|
-
CompareNameDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.
|
222
|
-
CompareNameDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.
|
223
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.
|
221
|
+
CompareNameDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CompareNameDirective, deps: [{ token: i1.VersionCompareComponent, optional: true }, { token: CompareContextDirective, host: true, optional: true }, { token: CompareGroupDirective, host: true, optional: true }, { token: i2.TranslateService }, { token: i0.ChangeDetectorRef }, { token: i3.DomSanitizer }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
222
|
+
CompareNameDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.2", type: CompareNameDirective, selector: "[bizdocCompareName]", inputs: { name: ["bizdocCompareName", "name"] }, usesInheritance: true, ngImport: i0 });
|
223
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CompareNameDirective, decorators: [{
|
224
224
|
type: Directive,
|
225
225
|
args: [{ selector: '[bizdocCompareName]' }]
|
226
226
|
}], ctorParameters: function () { return [{ type: i1.VersionCompareComponent, decorators: [{
|
@@ -318,9 +318,9 @@ export class CompareContextDirective extends CompareDirectiveBase {
|
|
318
318
|
}
|
319
319
|
}
|
320
320
|
}
|
321
|
-
CompareContextDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.
|
322
|
-
CompareContextDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.
|
323
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.
|
321
|
+
CompareContextDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CompareContextDirective, deps: [{ token: i1.VersionCompareComponent, optional: true }, { token: CompareGroupDirective, host: true, optional: true }, { token: i0.ViewContainerRef }, { token: i0.TemplateRef, optional: true }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
322
|
+
CompareContextDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.2", type: CompareContextDirective, selector: "[bizdocCompareContext],[bizdocCompare]", inputs: { compareOf: ["bizdocCompareOf", "compareOf"], context: ["bizdocCompareContext", "context"], decorate: ["bizdocCompareDecorate", "decorate"] }, exportAs: ["bizdocCompare"], usesInheritance: true, ngImport: i0 });
|
323
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CompareContextDirective, decorators: [{
|
324
324
|
type: Directive,
|
325
325
|
args: [{ selector: '[bizdocCompareContext],[bizdocCompare]', exportAs: 'bizdocCompare' }]
|
326
326
|
}], ctorParameters: function () { return [{ type: i1.VersionCompareComponent, decorators: [{
|
@@ -45,9 +45,9 @@ export class VersionPaneComponent {
|
|
45
45
|
this._router.navigate(['../', 'version', new Date(time).valueOf().encodeId()], { policy: OpenPolicy.Tab });
|
46
46
|
}
|
47
47
|
}
|
48
|
-
VersionPaneComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.
|
49
|
-
VersionPaneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.
|
50
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.
|
48
|
+
VersionPaneComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: VersionPaneComponent, deps: [{ token: i1.PaneRef }, { token: i2.TranslateService }, { token: i3.PanesRouter }], target: i0.ɵɵFactoryTarget.Component });
|
49
|
+
VersionPaneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: VersionPaneComponent, selector: "bizdoc-version.pane", host: { classAttribute: "pane" }, ngImport: i0, template: "<div class=\"row\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button *ngIf=\"versions.length\" [matMenuTriggerFor]=\"menu\" [attr.aria-label]=\"'Version' | translate\">\r\n <mat-icon>filter_list</mat-icon>\r\n </button>\r\n <mat-menu #menu>\r\n <button mat-menu-item (click)=\"switch(l.time)\" *ngFor=\"let l of versions\">\r\n <bizdoc-identity-name [identity]=\"l.userId\" [by]=\"l.byId\" chating=\"none\"></bizdoc-identity-name>\r\n {{l.time | amCalendar : null : CALENDAR_SPEC}}\r\n </button>\r\n </mat-menu>\r\n</div>\r\n<div class=\"info mat-body-1\">\r\n <bizdoc-identity-name [identity]=\"log.userId\" [by]=\"log.byId\"></bizdoc-identity-name>\r\n | <span>{{log.time | amCalendar : null : CALENDAR_SPEC }}</span>\r\n</div>\r\n<div>\r\n <bizdoc-version-compare [model]=\"model\" [version]=\"log.time\"></bizdoc-version-compare>\r\n</div>\r\n", styles: [":host{padding:0 8px;display:block;min-width:350px}\n"], components: [{ type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i6.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i6.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i7.IdentityName, selector: "bizdoc-identity-name", inputs: ["identity", "by", "chating"] }, { type: i8.VersionCompareComponent, selector: "bizdoc-version-compare", inputs: ["model", "version"] }], directives: [{ type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": i10.TranslatePipe, "amCalendar": i11.CalendarPipe } });
|
50
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: VersionPaneComponent, decorators: [{
|
51
51
|
type: Component,
|
52
52
|
args: [{ selector: 'bizdoc-version.pane', host: {
|
53
53
|
class: 'pane'
|
@@ -18,9 +18,9 @@ export class NgxComponentOutlet {
|
|
18
18
|
}
|
19
19
|
}
|
20
20
|
}
|
21
|
-
NgxComponentOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.
|
22
|
-
NgxComponentOutlet.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.
|
23
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.
|
21
|
+
NgxComponentOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: NgxComponentOutlet, deps: [{ token: i0.ViewContainerRef }, { token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Directive });
|
22
|
+
NgxComponentOutlet.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.2", type: NgxComponentOutlet, selector: "ngx-component-outlet", inputs: { ngxComponentOutlet: ["type", "ngxComponentOutlet"], ngxComponentOutletInjector: ["injector", "ngxComponentOutletInjector"], ngxComponentOutletContent: "ngxComponentOutletContent" }, outputs: { createEvents: "create" }, ngImport: i0 });
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: NgxComponentOutlet, decorators: [{
|
24
24
|
type: Directive,
|
25
25
|
args: [{ selector: 'ngx-component-outlet' }]
|
26
26
|
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.ComponentFactoryResolver }]; }, propDecorators: { ngxComponentOutlet: [{
|
@@ -28,9 +28,9 @@ export class AccountService {
|
|
28
28
|
});
|
29
29
|
}
|
30
30
|
}
|
31
|
-
AccountService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.
|
32
|
-
AccountService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.
|
33
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.
|
31
|
+
AccountService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: AccountService, deps: [{ token: i1.HttpClient }, { token: i2.HubService }], target: i0.ɵɵFactoryTarget.Injectable });
|
32
|
+
AccountService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: AccountService, providedIn: "root" });
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: AccountService, decorators: [{
|
34
34
|
type: Injectable,
|
35
35
|
args: [{ providedIn: "root" }]
|
36
36
|
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.HubService }]; } });
|
@@ -8,9 +8,9 @@ export class MatIconAnimate {
|
|
8
8
|
});
|
9
9
|
}
|
10
10
|
}
|
11
|
-
MatIconAnimate.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.
|
12
|
-
MatIconAnimate.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.
|
11
|
+
MatIconAnimate.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: MatIconAnimate, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
12
|
+
MatIconAnimate.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.2", type: MatIconAnimate, selector: "[matAnimate]", ngImport: i0 });
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: MatIconAnimate, decorators: [{
|
14
14
|
type: Directive,
|
15
15
|
args: [{ selector: '[matAnimate]' }]
|
16
16
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
|
@@ -85,9 +85,9 @@ export class AvatarComponent {
|
|
85
85
|
}
|
86
86
|
}
|
87
87
|
AvatarComponent._userMap = {};
|
88
|
-
AvatarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.
|
89
|
-
AvatarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.
|
90
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.
|
88
|
+
AvatarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: AvatarComponent, deps: [{ token: i1.HubService }, { token: i0.ChangeDetectorRef }, { token: i2.ChatInfo }], target: i0.ɵɵFactoryTarget.Component });
|
89
|
+
AvatarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: AvatarComponent, selector: "bizdoc-avatar", inputs: { person: "person", interactive: "interactive", dense: "dense" }, host: { listeners: { "click": "chat()" } }, usesOnChanges: true, ngImport: i0, template: "<div class=\"avatar mat-elevation-z3\" [class.dense]=dense [class.interactive]=interactive\r\n [style.backgroundColor]='color' [style.borderColor]='borderColor' [style.backgroundImage]='image'>\r\n <div class=\"initials\">{{initials}}</div>\r\n <i class=\"material-icons filled mode\" [bizdocTooltip]=\"mode | translate\"\r\n [style.backgroundColor]='modeColor' *ngIf=modeIcon>{{modeIcon}}</i>\r\n</div>\r\n", directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }], pipes: { "translate": i5.TranslatePipe } });
|
90
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: AvatarComponent, decorators: [{
|
91
91
|
type: Component,
|
92
92
|
args: [{ selector: 'bizdoc-avatar', template: "<div class=\"avatar mat-elevation-z3\" [class.dense]=dense [class.interactive]=interactive\r\n [style.backgroundColor]='color' [style.borderColor]='borderColor' [style.backgroundImage]='image'>\r\n <div class=\"initials\">{{initials}}</div>\r\n <i class=\"material-icons filled mode\" [bizdocTooltip]=\"mode | translate\"\r\n [style.backgroundColor]='modeColor' *ngIf=modeIcon>{{modeIcon}}</i>\r\n</div>\r\n" }]
|
93
93
|
}], ctorParameters: function () { return [{ type: i1.HubService }, { type: i0.ChangeDetectorRef }, { type: i2.ChatInfo }]; }, propDecorators: { person: [{
|
@@ -56,9 +56,9 @@ export class BizDocComponentFactoryResolver {
|
|
56
56
|
return factory;
|
57
57
|
}
|
58
58
|
}
|
59
|
-
BizDocComponentFactoryResolver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.
|
60
|
-
BizDocComponentFactoryResolver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.
|
61
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.
|
59
|
+
BizDocComponentFactoryResolver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: BizDocComponentFactoryResolver, deps: [{ token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Injectable });
|
60
|
+
BizDocComponentFactoryResolver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: BizDocComponentFactoryResolver });
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: BizDocComponentFactoryResolver, decorators: [{
|
62
62
|
type: Injectable
|
63
63
|
}], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }]; } });
|
64
64
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWZhY3RvcnktcmVzb2x2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvcmUvY29tcG9uZW50LWZhY3RvcnktcmVzb2x2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBdUQsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxFQUFpQixRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBRXZELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxVQUFVO0lBQzNDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDdkQsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBUyxlQUFlLENBQUksYUFBd0IsRUFBRSxhQUFzQjtJQUMxRSw4Q0FBOEM7SUFDOUMsT0FBTyxPQUFPLENBQUMsd0JBQXdCLENBQUMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQWUsRUFBRSxFQUFFO0lBQ3ZHLG9EQUFvRDtJQUNwRCxVQUFVLFlBQVksYUFBYSxDQUNwQyxDQUFDO0FBQ0osQ0FBQztBQUVhLE1BQU0sT0FBTyw4QkFBOEI7SUFFdkQ7SUFDRSxrQ0FBa0M7SUFDMUIseUJBQW1EO1FBQW5ELDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBMEI7UUFDM0QsU0FBUztRQUNULGtDQUFrQztRQUNsQyxrREFBa0Q7UUFDbEQsa0NBQWtDO1FBQ2xDLE9BQU87UUFDSCwrRUFBK0U7SUFDbkYsQ0FBQztJQUNJLFNBQVMsQ0FBQyxpQkFBeUI7UUFDdEMsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLElBQUk7WUFDUCxNQUFNLENBQUMsa0RBQWtELGlCQUFpQixNQUFNLENBQUMsQ0FBQztRQUNwRixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDTSxPQUFPLENBQUMsaUJBQXlCO1FBQ3RDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUVyQyx3RUFBd0U7UUFDOUUsb0RBQW9EO1FBQ3BELHVDQUF1QztRQUN2Qyx3Q0FBd0M7UUFDeEMsWUFBWTtRQUNaLEtBQUs7UUFDTCxHQUFHO1FBRVAsb0VBQW9FO1FBRXBFLHlGQUF5RjtRQUN6RixtQ0FBbUM7UUFDbkMsMEVBQTBFO1FBRTFFLHNHQUFzRztRQUN0RyxpR0FBaUc7UUFDakcsS0FBSztRQUVMLHVEQUF1RDtRQUN2RCw4R0FBOEc7UUFDOUcsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdFLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7OzJIQTNDc0IsOEJBQThCOytIQUE5Qiw4QkFBOEI7MkZBQTlCLDhCQUE4QjtrQkFBeEQsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcGxpY2F0aW9uUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBUeXBlLCBOZ01vZHVsZSwgQ29tcG9uZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQ29tcG9uZW50VHlwZSwgUkVHSVNUUlkgfSBmcm9tICcuL2RlY29yYXRvcnMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyQ29tcG9uZW50cyhjb21wb25lbnRzKSB7XHJcbiAgY29tcG9uZW50cy5mb3JFYWNoKGMgPT4gUkVHSVNUUllbY1snX19iaXpkb2MnXV0gPSBjKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIGdldHMgYSBkZWNvcmF0b3Igb2YgdGhlIHJlcXVlc3RlZCB0eXBlIG9mZiBvZiB0aGUgZ2l2ZW4gZGVjb3JhdGVkIHR5cGVcclxuICogQHBhcmFtIGRlY29yYXRlZFR5cGUgdG8gZ2V0IGRlY29yYXRvciBhbm5vdGF0aW9ucyBvZmYgb2ZcclxuICogQHBhcmFtIGRlY29yYXRvclR5cGUgdG8gc2VhcmNoIGZvciBvdXQgb2YgYWxsIHRoZSBkZWNvcmF0b3JzIG9uIGRlY29yYXRlZFR5cGVcclxuICogQHJldHVybnMgZGVjb3JhdG9yIGZyb20gdGhlIGRlY29yYXRlZFR5cGUgb2YgdGhlIGRlY29yYXRvclR5cGVcclxuICovXHJcbmZ1bmN0aW9uIGRlY29yYXRvck9mVHlwZTxUPihkZWNvcmF0ZWRUeXBlOiBUeXBlPGFueT4sIGRlY29yYXRvclR5cGU6IFR5cGU8VD4pOiBUIHtcclxuICAvLyBnZXQgYWxsIGRlY29yYXRvcnMgb2ZmIG9mIHRoZSBwcm92aWRlZCB0eXBlXHJcbiAgcmV0dXJuIFJlZmxlY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGRlY29yYXRlZFR5cGUsICdfX2Fubm90YXRpb25zX18nKS52YWx1ZS5maW5kKChhbm5vdGF0aW9uOiBhbnkpID0+XHJcbiAgICAvLyBnZXQgdGhlIGRlY29yYXRvciB0aGF0IG1hdGNoZXMgdGhlIHJlcXVlc3RlZCB0eXBlXHJcbiAgICBhbm5vdGF0aW9uIGluc3RhbmNlb2YgZGVjb3JhdG9yVHlwZVxyXG4gICk7XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKCkgZXhwb3J0IGNsYXNzIEJpekRvY0NvbXBvbmVudEZhY3RvcnlSZXNvbHZlciB7XHJcbiAgICBwcml2YXRlIF9mYWN0b3JpZXM6IHVua25vd25bXTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIC8vcHJpdmF0ZSBfYXBwUmVmOiBBcHBsaWNhdGlvblJlZixcclxuICAgIHByaXZhdGUgX2NvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyKSB7XHJcbiAgICAvL19hcHBSZWZcclxuICAgIC8vICAuY29tcG9uZW50VHlwZXMuZm9yRWFjaCh0ID0+IHtcclxuICAgIC8vICAgIGNvbnN0IHR5cGUgPSB0WydfX2JpemRvYyddIGFzIENvbXBvbmVudFR5cGU7XHJcbiAgICAvLyAgICBSRUdJU1RSWVt0eXBlLnNlbGVjdG9yXSA9IHQ7XHJcbiAgICAvLyAgfSk7XHJcbiAgICAgICAgLy90aGlzLl9mYWN0b3JpZXMgPSBBcnJheS5mcm9tKF9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJbJ19mYWN0b3JpZXMnXS5rZXlzKCkpO1xyXG4gICAgfVxyXG4gIHB1YmxpYyBjb21wb25lbnQoY29tcG9uZW50U2VsZWN0b3I6IHN0cmluZykge1xyXG4gICAgICBjb25zdCBjb21wID0gUkVHSVNUUllbY29tcG9uZW50U2VsZWN0b3JdO1xyXG4gICAgICBpZiAoIWNvbXApXHJcbiAgICAgICAgdGhyb3cgKGBObyBjb21wb25lbnQgcmVnaXN0ZXJlZCBhcyBAQml6RG9jKHtzZWxlY3RvcjogJyR7Y29tcG9uZW50U2VsZWN0b3J9J30pLmApO1xyXG4gICAgICByZXR1cm4gY29tcDtcclxuICAgIH1cclxuICAgIHB1YmxpYyByZXNvbHZlKGNvbXBvbmVudFNlbGVjdG9yOiBzdHJpbmcpIHtcclxuICAgICAgY29uc3QgY29tcCA9IHRoaXMuY29tcG9uZW50KGNvbXBvbmVudFNlbGVjdG9yKTtcclxuXHJcbiAgICAgICAgICAgICAgICAvL2ZvciAobGV0IGMgb2YgKDxhbnk+dGhpcy5jb21waWxlcikuX2RlbGVnYXRlLl9jb21waWxlZFRlbXBsYXRlQ2FjaGUpIHtcclxuICAgICAgICAgIC8vICBsZXQgbTogQ29tcGlsZURpcmVjdGl2ZU1ldGFkYXRhID0gY1sxXS5jb21wTWV0YTtcclxuICAgICAgICAgIC8vICBpZiAobS5zZWxlY3RvciA9PT0gdGhpcy50ZW1wbGF0ZSkge1xyXG4gICAgICAgICAgLy8gICAgZmFjdG9yeSA9IDxhbnk+bS5jb21wb25lbnRGYWN0b3J5O1xyXG4gICAgICAgICAgLy8gICAgYnJlYWs7XHJcbiAgICAgICAgICAvLyAgfVxyXG4gICAgICAgICAgLy99XHJcblxyXG4gICAgICAvL2NvbnN0IG5nTW9kdWxlRGVjb3JhdG9yID0gZGVjb3JhdG9yT2ZUeXBlKEJpekRvY01vZHVsZSwgTmdNb2R1bGUpO1xyXG5cclxuICAgICAgLy9jb25zdCBjb21wb25lbnRUeXBlID0gbmdNb2R1bGVEZWNvcmF0b3IuZGVjbGFyYXRpb25zLmZpbmQoKGRlY2xhcmF0aW9uOiBUeXBlPGFueT4pID0+IHtcclxuICAgICAgLy8gIC8vIGdldCB0aGUgQENvbXBvbmVudCBkZWNvcmF0b3JcclxuICAgICAgLy8gIGNvbnN0IGRlY2xhcmF0aW9uQW5ub3RhdGlvbiA9IGRlY29yYXRvck9mVHlwZShkZWNsYXJhdGlvbiwgQ29tcG9uZW50KTtcclxuXHJcbiAgICAgIC8vICAvLyBmaW5kIGEgZGVjbGFyYXRpb24gd2l0aCB0aGUgQENvbXBvbmVudCBkZWNvcmF0b3IgKG5vdCBhIEBEaXJlY3RpdmUpIHdpdGggdGhlIHJlcXVlc3RlZCBzZWxlY3RvclxyXG4gICAgICAvLyAgcmV0dXJuIGRlY2xhcmF0aW9uQW5ub3RhdGlvbiAhPSBudWxsICYmIGRlY2xhcmF0aW9uQW5ub3RhdGlvbi5zZWxlY3RvciA9PT0gY29tcG9uZW50U2VsZWN0b3I7XHJcbiAgICAgIC8vfSk7XHJcblxyXG4gICAgICAvLy8vIGdldCB0aGUgY29tcG9uZW50IGZhY3RvcnkgdXNpbmcgdGhlIGNvbXBvbmVudCB0eXBlXHJcbiAgICAgIC8vY29uc3QgY29tcG9uZW50RmFjdG9yeSA9IHRoaXMuX2NvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShjb21wb25lbnRUeXBlIGFzIFR5cGU8YW55Pik7XHJcbiAgICAgIGNvbnN0IGZhY3RvcnkgPSB0aGlzLl9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoY29tcCk7XHJcbiAgICAgIHJldHVybiBmYWN0b3J5O1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
@@ -137,8 +137,8 @@ export class AddressInput {
|
|
137
137
|
}
|
138
138
|
}
|
139
139
|
AddressInput.nextId = 0;
|
140
|
-
AddressInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.
|
141
|
-
AddressInput.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.
|
140
|
+
AddressInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: AddressInput, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i2.FocusMonitor }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
141
|
+
AddressInput.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: AddressInput, selector: "bizdoc-address", inputs: { debounce: "debounce", placeholder: "placeholder", required: "required", disabled: "disabled", value: "value" }, outputs: { optionSelected: "optionSelected" }, host: { properties: { "class.floating": "shouldLabelFloat", "attr.aria-describedby": "this.describedBy", "id": "this.id" } }, providers: [{ provide: MatFormFieldControl, useExisting: AddressInput }], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true, static: true }], ngImport: i0, template: `<div class="address-container">
|
142
142
|
<input matInput [matAutocomplete]="address" [formControl]="control" [placeholder]="placeholder" #input
|
143
143
|
(focus)="onFocus()" (blur)="onBlur()"/>
|
144
144
|
<mat-autocomplete #address (optionSelected)="selected($event)" [displayWith]="displayFn">
|
@@ -146,7 +146,7 @@ AddressInput.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
|
|
146
146
|
<span matLine>{{a.description}}</span>
|
147
147
|
</mat-option>
|
148
148
|
</mat-autocomplete></div>`, isInline: true, styles: [".address-container{display:flex}\n"], components: [{ type: i3.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }], directives: [{ type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i3.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.MatLine, selector: "[mat-line], [matLine]" }] });
|
149
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.
|
149
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: AddressInput, decorators: [{
|
150
150
|
type: Component,
|
151
151
|
args: [{
|
152
152
|
selector: 'bizdoc-address',
|
@@ -181,8 +181,8 @@ export class TypeAutocomplete {
|
|
181
181
|
}
|
182
182
|
}
|
183
183
|
TypeAutocomplete.nextId = 0;
|
184
|
-
TypeAutocomplete.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.
|
185
|
-
TypeAutocomplete.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.
|
184
|
+
TypeAutocomplete.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TypeAutocomplete, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i2.FocusMonitor }, { token: i0.ElementRef }, { token: i3.SessionService }, { token: i4.DatasourceService }], target: i0.ɵɵFactoryTarget.Component });
|
185
|
+
TypeAutocomplete.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: TypeAutocomplete, selector: "bizdoc-autocomplete", inputs: { _type: ["type", "_type"], placeholder: "placeholder", text: "text", required: "required", disabled: "disabled", value: "value", minimumChars: "minimumChars", textFormControlName: "textFormControlName", textFormControl: "textFormControl" }, outputs: { textChange: "textChange", optionSelected: "optionSelected" }, host: { properties: { "class.floating": "this.shouldLabelFloat", "attr.aria-describedby": "this.describedBy", "id": "this.id" } }, providers: [{ provide: MatFormFieldControl, useExisting: TypeAutocomplete }], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true, static: true }, { propertyName: "trigger", first: true, predicate: ["input"], descendants: true, read: MatAutocompleteTrigger, static: true }], ngImport: i0, template: `<input matInput [matAutocomplete]="auto" [placeholder]="placeholder" [formControl]="_control" #input
|
186
186
|
(focus)="_onFocus()" (blur)="_onBlur()" [required]="required"/>
|
187
187
|
<mat-autocomplete #auto (optionSelected)="_optionSelected($event)" [displayWith]='displayFn'>
|
188
188
|
<mat-option *ngFor="let v of _items$ | async" [value]="v">
|
@@ -191,7 +191,7 @@ TypeAutocomplete.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versi
|
|
191
191
|
</mat-option>
|
192
192
|
</mat-autocomplete>
|
193
193
|
<button mat-icon-button matSuffix (click)="clear()" *ngIf="_control.value"><mat-icon>close</mat-icon></button>`, isInline: true, styles: ["[matsuffix].mat-icon-button{opacity:.54}\n"], components: [{ type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i11.MatSuffix, selector: "[matSuffix]" }], pipes: { "async": i10.AsyncPipe } });
|
194
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.
|
194
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TypeAutocomplete, decorators: [{
|
195
195
|
type: Component,
|
196
196
|
args: [{
|
197
197
|
selector: 'bizdoc-autocomplete',
|
@@ -151,9 +151,9 @@ export class CombinationPickerBody {
|
|
151
151
|
this.modeChange.complete();
|
152
152
|
}
|
153
153
|
}
|
154
|
-
CombinationPickerBody.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.
|
155
|
-
CombinationPickerBody.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.
|
156
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.
|
154
|
+
CombinationPickerBody.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CombinationPickerBody, deps: [{ token: MAT_DIALOG_DATA, optional: true }, { token: COMBINATION_PICKER_BODY, optional: true }, { token: i1.FormBuilder }, { token: i2.PromptService }, { token: i3.CubeInfo }, { token: i4.DatasourceService }, { token: i0.ChangeDetectorRef }, { token: i5.SessionService }, { token: i6.CubeService }], target: i0.ɵɵFactoryTarget.Component });
|
155
|
+
CombinationPickerBody.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: CombinationPickerBody, selector: "bizdoc-combination-picker-body", viewQueries: [{ propertyName: "axes", predicate: MatSelect, descendants: true }], ngImport: i0, template: "<div [ngSwitch]=\"mode\" class=\"account-picker-popup\" cdkTrapFocus>\r\n <!--[@transformPanel]=\"enter\"-->\r\n <ng-container *ngSwitchCase=\"'filter'\">\r\n <mat-progress-bar mode=\"indeterminate\" [style.visibility]=\"_working ? 'visible':'hidden'\"></mat-progress-bar>\r\n <!-- filter -->\r\n <form [formGroup]=\"_form\">\r\n <mat-form-field *ngFor=\"let a of _axes; let i = index\">\r\n <mat-label>{{a.title}}</mat-label>\r\n <mat-select [formControlName]=\"a.name\">\r\n <mat-option *ngIf=\"_keys[a.name].length>1\">{{'All'|translate}}</mat-option>\r\n <mat-option *ngFor=\"let key of _keys[a.name]\" [value]=\"key\">{{_values[a.dataType][key]}}</mat-option>\r\n </mat-select>\r\n <mat-hint>{{_form.controls[a.name].value}}</mat-hint>\r\n </mat-form-field>\r\n </form>\r\n <div class=\"actions\">\r\n <button mat-icon-button (click)=\"_filter()\" [disabled]=\"_working\" [bizdocTooltip]=\"'Search'|translate\" class=\"mat-icon-rtl-mirror\" [tabIndex]=\"_axes.length\">\r\n <mat-icon>search</mat-icon>\r\n </button>\r\n </div>\r\n </ng-container>\r\n <!-- results -->\r\n <ng-container *ngSwitchCase=\"'results'\">\r\n <div class=\"actions\">\r\n <button mat-icon-button (click)=\"_switchMode('filter')\" [bizdocTooltip]=\"'Filter'|translate\"><mat-icon>filter_list</mat-icon></button>\r\n </div>\r\n <mat-action-list>\r\n <mat-list-item *ngFor=\"let codes of _combinations\" (click)=\"_select(codes)\">\r\n <h3 matLine>{{_nameOf(codes)}}</h3>\r\n <p matLine *ngIf=\"_explorable\"><a (click)=\"_info(codes, $event)\">{{_codeOf(codes)}}</a></p>\r\n </mat-list-item>\r\n </mat-action-list>\r\n </ng-container>\r\n</div>\r\n", styles: [".account-picker-popup{display:flex;flex-direction:column;width:100%}.account-picker-popup form{padding:8px;flex-flow:column wrap;box-sizing:border-box;display:flex}.account-picker-popup form>*{flex:1 1 100%;box-sizing:border-box;max-width:50%;padding:0 5px 5px 0}.account-picker-popup .actions{display:flex;flex-direction:row;place-content:center flex-end;align-items:center;padding:8px}.account-picker-popup ::ng-deep .mat-list-base{overflow:auto}.account-picker-popup ::ng-deep .mat-list-base .mat-list-item .mat-line:nth-child(n+2){font-size:14px}@media screen and (min-width: 600px){.account-picker-popup form{flex-flow:row wrap}}\n"], components: [{ type: i7.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { type: i8.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i9.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i10.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i11.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i12.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i13.MatList, selector: "mat-list, mat-action-list", inputs: ["disableRipple", "disabled"], exportAs: ["matList"] }, { type: i13.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["disableRipple", "disabled"], exportAs: ["matListItem"] }], directives: [{ type: i14.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i14.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i14.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i8.MatLabel, selector: "mat-label" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i14.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { type: i15.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i10.MatLine, selector: "[mat-line], [matLine]" }], pipes: { "translate": i16.TranslatePipe } });
|
156
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CombinationPickerBody, decorators: [{
|
157
157
|
type: Component,
|
158
158
|
args: [{ selector: 'bizdoc-combination-picker-body', template: "<div [ngSwitch]=\"mode\" class=\"account-picker-popup\" cdkTrapFocus>\r\n <!--[@transformPanel]=\"enter\"-->\r\n <ng-container *ngSwitchCase=\"'filter'\">\r\n <mat-progress-bar mode=\"indeterminate\" [style.visibility]=\"_working ? 'visible':'hidden'\"></mat-progress-bar>\r\n <!-- filter -->\r\n <form [formGroup]=\"_form\">\r\n <mat-form-field *ngFor=\"let a of _axes; let i = index\">\r\n <mat-label>{{a.title}}</mat-label>\r\n <mat-select [formControlName]=\"a.name\">\r\n <mat-option *ngIf=\"_keys[a.name].length>1\">{{'All'|translate}}</mat-option>\r\n <mat-option *ngFor=\"let key of _keys[a.name]\" [value]=\"key\">{{_values[a.dataType][key]}}</mat-option>\r\n </mat-select>\r\n <mat-hint>{{_form.controls[a.name].value}}</mat-hint>\r\n </mat-form-field>\r\n </form>\r\n <div class=\"actions\">\r\n <button mat-icon-button (click)=\"_filter()\" [disabled]=\"_working\" [bizdocTooltip]=\"'Search'|translate\" class=\"mat-icon-rtl-mirror\" [tabIndex]=\"_axes.length\">\r\n <mat-icon>search</mat-icon>\r\n </button>\r\n </div>\r\n </ng-container>\r\n <!-- results -->\r\n <ng-container *ngSwitchCase=\"'results'\">\r\n <div class=\"actions\">\r\n <button mat-icon-button (click)=\"_switchMode('filter')\" [bizdocTooltip]=\"'Filter'|translate\"><mat-icon>filter_list</mat-icon></button>\r\n </div>\r\n <mat-action-list>\r\n <mat-list-item *ngFor=\"let codes of _combinations\" (click)=\"_select(codes)\">\r\n <h3 matLine>{{_nameOf(codes)}}</h3>\r\n <p matLine *ngIf=\"_explorable\"><a (click)=\"_info(codes, $event)\">{{_codeOf(codes)}}</a></p>\r\n </mat-list-item>\r\n </mat-action-list>\r\n </ng-container>\r\n</div>\r\n", styles: [".account-picker-popup{display:flex;flex-direction:column;width:100%}.account-picker-popup form{padding:8px;flex-flow:column wrap;box-sizing:border-box;display:flex}.account-picker-popup form>*{flex:1 1 100%;box-sizing:border-box;max-width:50%;padding:0 5px 5px 0}.account-picker-popup .actions{display:flex;flex-direction:row;place-content:center flex-end;align-items:center;padding:8px}.account-picker-popup ::ng-deep .mat-list-base{overflow:auto}.account-picker-popup ::ng-deep .mat-list-base .mat-list-item .mat-line:nth-child(n+2){font-size:14px}@media screen and (min-width: 600px){.account-picker-popup form{flex-flow:row wrap}}\n"] }]
|
159
159
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|