@eo-sdk/client 8.14.0 → 8.16.0-rc.1

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.
Files changed (77) hide show
  1. package/app/eo-client/about-state/about-state.component.d.ts +1 -0
  2. package/app/eo-framework/actions/actions/open-context-action/open-context-action.d.ts +2 -0
  3. package/app/eo-framework/actions/actions/share-object-action/share-object/share-object.component.d.ts +1 -0
  4. package/app/eo-framework/form-elements/datetime/datepicker/datepicker.component.d.ts +2 -1
  5. package/app/eo-framework/form-elements/datetime/datetime.component.d.ts +5 -1
  6. package/app/eo-framework/object-form/object-form/form-element/form-element.component.d.ts +2 -1
  7. package/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.d.ts +4 -1
  8. package/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.d.ts +3 -1
  9. package/app/eo-framework/object-form/object-form/object-form-group/object-form-group.component.d.ts +2 -0
  10. package/app/eo-framework/object-form/object-form/object-form.component.d.ts +2 -1
  11. package/app/eo-framework/object-form/object-form-edit/object-form-edit.component.d.ts +1 -0
  12. package/app/eo-framework/ui/eo-dialog/eo-dialog.component.d.ts +22 -11
  13. package/app/eo-framework/util/directive/trap-focus.directive.d.ts +14 -0
  14. package/app/eo-framework-core/agent/agent.service.d.ts +3 -2
  15. package/assets/_default/config/main.json +2 -1
  16. package/assets/_default/i18n/de.json +7 -3
  17. package/assets/_default/i18n/en.json +7 -3
  18. package/assets/_default/svg/ic_preview_close.svg +1 -0
  19. package/assets/_default/svg/ic_preview_show.svg +1 -0
  20. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js +4275 -4240
  21. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js.map +1 -1
  22. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js +2 -2
  23. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js.map +1 -1
  24. package/bundles/eo-sdk-client.umd.js +3413 -3273
  25. package/bundles/eo-sdk-client.umd.js.map +1 -1
  26. package/bundles/eo-sdk-client.umd.min.js +1 -1
  27. package/bundles/eo-sdk-client.umd.min.js.map +1 -1
  28. package/eo-sdk-client.d.ts +67 -63
  29. package/eo-sdk-client.metadata.json +1 -1
  30. package/esm2015/app/eo-client/about-state/about-state.component.js +6 -5
  31. package/esm2015/app/eo-client/result-state/result-state.component.js +3 -3
  32. package/esm2015/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission/add-resubmission.component.js +1 -1
  33. package/esm2015/app/eo-framework/actions/actions/delete-content-action/delete-content-action.js +2 -3
  34. package/esm2015/app/eo-framework/actions/actions/open-context-action/open-context-action.js +11 -4
  35. package/esm2015/app/eo-framework/actions/actions/share-object-action/share-object/share-object.component.js +10 -4
  36. package/esm2015/app/eo-framework/app-shell/app-bar/app-bar.component.js +3 -2
  37. package/esm2015/app/eo-framework/app-shell/app-bar/app-search/app-search.component.js +4 -4
  38. package/esm2015/app/eo-framework/app-shell/app-bar/side-bar/side-bar.component.js +2 -2
  39. package/esm2015/app/eo-framework/app-shell/app-shell.module.js +5 -3
  40. package/esm2015/app/eo-framework/form-elements/datetime/datepicker/datepicker.component.js +8 -4
  41. package/esm2015/app/eo-framework/form-elements/datetime/datetime.component.js +13 -8
  42. package/esm2015/app/eo-framework/grid/filters/datetime-filter.component.js +2 -2
  43. package/esm2015/app/eo-framework/object-details/favorite-icon/favorite-icon.component.js +2 -2
  44. package/esm2015/app/eo-framework/object-form/object-form/form-element/form-element.component.js +3 -2
  45. package/esm2015/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.js +11 -4
  46. package/esm2015/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.js +11 -4
  47. package/esm2015/app/eo-framework/object-form/object-form/object-form-group/object-form-group.component.js +3 -2
  48. package/esm2015/app/eo-framework/object-form/object-form/object-form.component.js +6 -5
  49. package/esm2015/app/eo-framework/object-form/object-form-edit/object-form-edit.component.js +5 -2
  50. package/esm2015/app/eo-framework/object-form/object-form.module.js +4 -2
  51. package/esm2015/app/eo-framework/prepare-details/prepare-details.component.js +2 -2
  52. package/esm2015/app/eo-framework/ui/eo-dialog/eo-dialog.component.js +78 -43
  53. package/esm2015/app/eo-framework/ui/ui.module.js +4 -2
  54. package/esm2015/app/eo-framework/util/directive/trap-focus.directive.js +50 -0
  55. package/esm2015/app/eo-framework-core/agent/agent.service.js +7 -5
  56. package/esm2015/eo-sdk-client.js +68 -64
  57. package/esm2015/projects/eo-sdk/core/lib/config/core-config.js +3 -1
  58. package/esm2015/projects/eo-sdk/core/lib/config/core-init.service.js +4 -2
  59. package/esm2015/projects/eo-sdk/core/lib/service/auth/auth.service.js +4 -3
  60. package/esm2015/projects/eo-sdk/core/lib/service/backend/backend.service.js +11 -7
  61. package/esm2015/projects/eo-sdk/core/lib/service/dms/dms.service.js +7 -5
  62. package/esm2015/projects/eo-sdk/core/lib/service/upload/upload.service.js +8 -4
  63. package/esm2015/projects/eo-sdk/core/lib/util/utils.js +25 -1
  64. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js +3769 -3735
  65. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js.map +1 -1
  66. package/fesm2015/eo-sdk-client.js +3042 -2910
  67. package/fesm2015/eo-sdk-client.js.map +1 -1
  68. package/package.json +3 -3
  69. package/projects/eo-sdk/core/eo-sdk-client-projects-eo-sdk-core.metadata.json +1 -1
  70. package/projects/eo-sdk/core/lib/config/core-config.d.ts +1 -0
  71. package/projects/eo-sdk/core/lib/service/backend/backend.service.d.ts +3 -1
  72. package/projects/eo-sdk/core/lib/service/dms/dms.service.d.ts +4 -3
  73. package/projects/eo-sdk/core/lib/service/upload/upload.service.d.ts +3 -1
  74. package/projects/eo-sdk/core/lib/util/utils.d.ts +3 -0
  75. package/projects/eo-sdk/core/package.json +1 -1
  76. package/styles.css +1 -0
  77. package/styles.scss +1 -0
@@ -1,27 +1,31 @@
1
- import { Component, EventEmitter, HostListener, Input, Output, Renderer2, ViewChild, ViewEncapsulation } from '@angular/core';
1
+ import { Overlay } from '@angular/cdk/overlay';
2
+ import { CdkPortalOutlet, TemplatePortal } from '@angular/cdk/portal';
3
+ import { Component, EventEmitter, HostListener, Input, Output, Renderer2, ViewChild, ViewEncapsulation, ViewContainerRef } from '@angular/core';
2
4
  import { EnaioEvent, EventService, Utils } from '@eo-sdk/core';
3
- import { Dialog } from 'primeng/primeng';
4
5
  import { filter, takeUntil } from 'rxjs/operators';
5
- import { PendingChangesService } from '../../../eo-framework-core/pending-changes/pending-changes.service';
6
- import { UnsubscribeOnDestroy } from '../../util/unsubscribe/unsubscribe.component';
6
+ import { PendingChangesService } from '../../../eo-framework-core';
7
+ import { UnsubscribeOnDestroy } from '../../util';
7
8
  export class EoDialogComponent extends UnsubscribeOnDestroy {
8
- constructor(eventService, pendingChanges, renderer) {
9
+ constructor(eventService, pendingChanges, renderer, overlay, viewContainerRef) {
9
10
  super();
10
11
  this.eventService = eventService;
11
12
  this.pendingChanges = pendingChanges;
12
13
  this.renderer = renderer;
14
+ this.overlay = overlay;
15
+ this.viewContainerRef = viewContainerRef;
13
16
  this._visible = false;
14
17
  this.id = Utils.uuid();
15
18
  this.parentId = '';
16
19
  this.styleClass = '';
17
20
  // array of pendingTask IDs to be checked before the dialog closes
18
21
  this.dirtyCheck = [];
19
- this.appendTo = 'body';
20
22
  this.minWidth = 200;
21
23
  this.minHeight = 'auto';
22
- this.resizable = false;
23
- this.fullscreen = false;
24
24
  this.focusOnShow = true;
25
+ this.align = 'center';
26
+ this.isFormTable = false;
27
+ this.showPreview = false;
28
+ this.onTogglePreview = new EventEmitter();
25
29
  this.visibleChange = new EventEmitter();
26
30
  this.hide = new EventEmitter();
27
31
  this.show = new EventEmitter();
@@ -31,7 +35,6 @@ export class EoDialogComponent extends UnsubscribeOnDestroy {
31
35
  .pipe(takeUntil(this.componentDestroyed$), filter(evt => (this.active || evt.data.id === this.parentId) &&
32
36
  evt.data.id !== this.id))
33
37
  .subscribe((event) => {
34
- this.toggleActive(!event.data.active, !event.data.active);
35
38
  this.parentId = event.data.active ? event.data.id : '';
36
39
  });
37
40
  }
@@ -56,40 +59,57 @@ export class EoDialogComponent extends UnsubscribeOnDestroy {
56
59
  this.closeDialog();
57
60
  }
58
61
  }
62
+ open() {
63
+ // We create the overlay
64
+ this.overlayRef = this.overlay.create({
65
+ hasBackdrop: true,
66
+ scrollStrategy: this.overlay.scrollStrategies.reposition(),
67
+ positionStrategy: this.getPositionStrategy(),
68
+ minHeight: this.minHeight,
69
+ minWidth: this.minWidth
70
+ });
71
+ //Then we create a portal to render a component
72
+ const portal = new TemplatePortal(this.dialogContent, this.viewContainerRef);
73
+ // We add a custom CSS class to our overlay
74
+ // this.overlayRef.addPanelClass("example-overlay");
75
+ this.overlayRef.attach(portal);
76
+ this.overlayRef.backdropClick().subscribe((_) => {
77
+ this.visible = false;
78
+ });
79
+ }
80
+ getPositionStrategy() {
81
+ let positionStrategy;
82
+ if (this.align === 'center') {
83
+ positionStrategy = this.overlay
84
+ .position()
85
+ .global()
86
+ .centerHorizontally()
87
+ .centerVertically();
88
+ }
89
+ else if (this.align === 'start') {
90
+ positionStrategy = this.overlay
91
+ .position()
92
+ .global()
93
+ .left()
94
+ .top();
95
+ }
96
+ return positionStrategy;
97
+ }
59
98
  toggleActive(active, trigger = true) {
60
99
  this.active = !!active;
100
+ if (active && this.ready && !this.overlayRef) {
101
+ this.open();
102
+ }
103
+ if (this.overlayRef && !active) {
104
+ this.overlayRef.dispose();
105
+ this.overlayRef = undefined;
106
+ }
61
107
  if (trigger) {
62
108
  this.eventService.trigger(EnaioEvent.EO_DIALOG_STACK_CHANGED, {
63
109
  id: this.id,
64
110
  active: this.active
65
111
  });
66
112
  }
67
- if (this.dialog) {
68
- this.renderer[this.active || !this.appendTo ? 'addClass' : 'removeClass'](this.dialog.containerViewChild.nativeElement, 'active');
69
- this.renderer[this.fullscreen ? 'addClass' : 'removeClass'](this.dialog.containerViewChild.nativeElement, 'fullscreen');
70
- if (this.active) {
71
- if (this.minHeight !== 'auto') {
72
- setTimeout(() => {
73
- this.minHeight = 'auto';
74
- if (!!this.dialog) {
75
- this.renderer.setStyle(this.dialog.contentViewChild.nativeElement.parentElement, 'minHeight', 'auto');
76
- this.renderer.setStyle(this.dialog.contentViewChild.nativeElement.parentElement, 'maxWidth', '50%');
77
- }
78
- }, 200);
79
- }
80
- this.dialog.moveOnTop();
81
- let focusableElement = this.dialog.contentViewChild.nativeElement.querySelector('[tabindex]');
82
- if (focusableElement) {
83
- focusableElement.focus();
84
- }
85
- }
86
- else {
87
- this._lastFocused.focus();
88
- }
89
- }
90
- else if (this.active && this.visible) {
91
- setTimeout(() => this.toggleActive(true, false), 0);
92
- }
93
113
  }
94
114
  closeDialog() {
95
115
  if (this.dirtyCheck) {
@@ -101,42 +121,57 @@ export class EoDialogComponent extends UnsubscribeOnDestroy {
101
121
  this.visible = false;
102
122
  }
103
123
  }
124
+ togglePreview() {
125
+ this.showPreview = !this.showPreview;
126
+ this.onTogglePreview.emit();
127
+ }
104
128
  ngOnDestroy() {
105
129
  if (this.active) {
106
130
  this.toggleActive(false);
107
131
  }
108
132
  }
133
+ ngAfterViewInit() {
134
+ // this.open();
135
+ this.ready = true;
136
+ if (this._visible) {
137
+ this.open();
138
+ }
139
+ }
109
140
  }
110
141
  EoDialogComponent.decorators = [
111
142
  { type: Component, args: [{
112
143
  selector: 'eo-dialog',
113
- template: "<p-dialog *ngIf=\"visible\" modal=\"modal\" [responsive]=\"true\" [closeOnEscape]=\"false\" [dismissableMask]=\"true\" [closable]=\"false\" [resizable]=\"resizable\"\r\n [showHeader]=\"false\" [header]=\"title\" [(visible)]=\"visible\" [appendTo]=\"appendTo\" [ngClass]=\"styleClass || ''\" [autoAlign]=\"true\"\r\n [focusOnShow]=\"focusOnShow\" [minWidth]=\"minWidth\" [minHeight]=\"minHeight\" eoRtlAware=\"dir\" styleClass=\"active\" [contentStyle]=\"{'max-height':'100%'}\">\r\n\r\n <div class=\"eo-dialog\" [ngClass]=\"styleClass || ''\" eoRtlAware=\"dir\">\r\n <header class=\"eo-dialog-header\" [ngClass]=\"styleClass ? styleClass + '--header ' : ''\">\r\n <h5 class=\"headline\">{{title}}</h5>\r\n <h6 *ngIf=\"subtitle\" class=\"subtitle\">{{subtitle}}</h6>\r\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"closeDialog()\" class=\"button white eo-dialog-close\"></eo-icon>\r\n </header>\r\n <div class=\"eo-dialog-content\" [ngClass]=\"styleClass ? styleClass + '--content ' : ''\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n\r\n</p-dialog>\r\n",
144
+ template: "<ng-template #dialogContent>\r\n <div class=\"eo-dialog\" [ngClass]=\"styleClass || ''\" eoRtlAware=\"dir\">\r\n <header class=\"eo-dialog-header\" [ngClass]=\"styleClass ? styleClass + '--header ' : ''\">\r\n <h5 class=\"headline\">{{title}}</h5>\r\n <h6 *ngIf=\"subtitle\" class=\"subtitle\">{{subtitle}}</h6>\r\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"closeDialog()\" class=\"button white eo-dialog-close\"></eo-icon>\r\n <ng-container *ngIf=\"isFormTable\">\r\n <eo-icon *ngIf=\"showPreview\" [iconSrc]=\"'assets/_default/svg/ic_preview_close.svg'\"\r\n [iconTitle]=\"'eo.form.table.dialog.preview.hide' | translate\" (click)=\"togglePreview()\" class=\"button white eo-dialog-preview-toggle\"></eo-icon>\r\n <eo-icon *ngIf=\"!showPreview\" [iconSrc]=\"'assets/_default/svg/ic_preview_show.svg'\"\r\n [iconTitle]=\"'eo.form.table.dialog.preview.show' | translate\" (click)=\"togglePreview()\" class=\"button white eo-dialog-preview-toggle\"></eo-icon>\r\n </ng-container>\r\n </header>\r\n <div class=\"eo-dialog-content\" [ngClass]=\"styleClass ? styleClass + '--content ' : ''\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</ng-template>\r\n",
114
145
  encapsulation: ViewEncapsulation.None,
115
- styles: ["body>.ui-dialog.fullscreen{height:95%;width:95%}body>.ui-dialog.fullscreen .ui-dialog-content{height:100%}body>.ui-dialog:not(.ui-helper-hidden),p-dialog .ui-dialog:not(.ui-helper-hidden){-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;transition:all var(--app-default-transition-duration) ease-in-out}body>.ui-dialog:not(.ui-helper-hidden):not(.active),p-dialog .ui-dialog:not(.ui-helper-hidden):not(.active){transform:perspective(600px) rotateY(10deg) translate3d(-100px,-100px,-100px)}body>.ui-dialog:not(.ui-helper-hidden):not(.active) .eo-dialog-header,p-dialog .ui-dialog:not(.ui-helper-hidden):not(.active) .eo-dialog-header{background-color:var(--color-primary)}body>.ui-dialog.ui-widget .ui-dialog-content,p-dialog .ui-dialog.ui-widget .ui-dialog-content{overflow:inherit;padding:0}.eo-dialog{-webkit-animation:none;animation:none;display:flex;flex:1;flex-direction:column;max-height:100%;max-width:100%;min-height:0;min-width:0}.eo-dialog-close{position:absolute;right:5px;top:5px;z-index:2}.eo-dialog-header{background-color:var(--color-accent);color:var(--color-white);flex:0 0 auto;font-size:var(--font-headline);font-weight:var(--font-weight-light);padding:var(--app-pane-padding) calc(var(--app-pane-padding)*2.5) calc(var(--app-pane-padding)*2) var(--app-pane-padding)}.eo-dialog-header .headline{font-size:24px;font-weight:400;margin:0 25px 0 0}.eo-dialog-header .subtitle{font-size:15px;font-weight:400;margin:0}.eo-dialog-content{display:flex;flex:1;flex-direction:column;height:100%;max-height:520px;min-height:0;min-width:0;overflow:auto;position:relative}.eo-dialog-content>eo-tree{margin:var(--app-pane-padding)}.eo-dialog-content .empty{align-items:center;color:var(--text-color-caption);display:flex;flex:1;flex-direction:column;justify-content:center;min-height:0;min-width:0;padding:var(--app-pane-padding)}.eo-dialog-content .action-buttons{justify-content:flex-end;padding-top:32px}.eo-dialog-content button:not(:last-child){margin-right:5px}.object-form-table-dialog{background-color:var(--panel-background-grey);height:100%;width:100%}.object-form-table-dialog .body{height:100%;width:100%}.object-form-table-dialog .edit-body{display:flex;height:100%}.object-form-table-dialog .table-body{background-color:var(--panel-background-grey);display:flex;height:100%;width:100%}.object-form-table-dialog eo-split{padding:var(--app-pane-padding)}.object-form-table-dialog eo-split-area{box-shadow:0 2px 5px 0 rgba(0,0,0,.2)}.object-form-table-dialog eo-row-edit{background-color:var(--color-white);display:flex;flex:1;flex-direction:column;min-height:0;min-width:0}.object-form-table-dialog eo-row-edit .row-edit{display:flex;flex-direction:column;height:100%}.object-form-table-dialog eo-row-edit .row-edit .edit-header{display:flex;justify-content:space-between}.object-form-table-dialog eo-row-edit .row-edit .edit-header .new-indicator{color:var(--text-color-caption);font-size:var(--font-title);margin:8px 16px 0;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.object-form-table-dialog eo-row-edit .row-edit .edit-header .cancel-icon{color:var(--text-color-caption);margin:8px 8px 0}.object-form-table-dialog eo-row-edit .row-edit .edit-header .cancel-icon:hover{background:rgba(var(--color-black-rgb),.1)}.object-form-table-dialog eo-row-edit .row-edit .form{height:100%;overflow:auto}.object-form-table-dialog eo-row-edit .row-edit .actions{align-items:center;border-top:1px solid var(--panel-header-border-bottom-color);display:flex;flex:0;flex-direction:row;justify-content:flex-end;min-height:0;min-height:5em;min-width:0;padding-right:var(--app-pane-padding)}.object-form-table-dialog eo-row-edit .row-edit .actions button{height:3em;margin:0 calc(var(--app-pane-padding)/8);padding:0 calc(var(--app-pane-padding)/2)}.object-form-table-dialog eo-row-edit .row-edit .actions eo-checkbox{margin:0 calc(var(--app-pane-padding)/2)}.object-form-table-dialog eo-row-edit .row-edit .actions .add-label{color:var(--text-color-caption);font-size:var(--font-body);margin-right:var(--app-pane-padding)}.object-form-table-dialog .object-form-table{background-color:#fff;display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr;height:100%;width:100%}.object-form-table-dialog .object-form-table .grid-body{height:100%;position:relative;width:100%}.object-form-table-dialog .object-form-table .grid-body .ag-theme-balham .ag-header{background-color:unset!important}.object-form-table-dialog .object-form-table .grid-body ag-grid-angular{background-color:transparent;height:100%;width:100%}.object-form-table-dialog .object-form-table .grid-body ag-grid-angular .copy-cell,.object-form-table-dialog .object-form-table .grid-body ag-grid-angular .new-row{-webkit-animation-duration:4s;-webkit-animation-name:new-row;animation-duration:4s;animation-name:new-row}@-webkit-keyframes new-row{0%{background-color:var(--color-accent)}to{background-color:none}}@keyframes new-row{0%{background-color:var(--color-accent)}to{background-color:none}}.object-form-table-dialog .object-form-table .grid-body ag-grid-angular .ag-cell{align-items:center;display:flex;font-size:var(--font-caption);line-height:var(--oft-row-height);padding:0 calc(var(--app-pane-padding)/4)}.object-form-table-dialog .object-form-table .grid-body ag-grid-angular .ag-cell.ag-cell-focus{background-color:var(--list-item-hover-background);border-color:transparent!important;outline:0!important}.object-form-table-dialog .object-form-table .grid-body ag-grid-angular .ag-cell svg{pointer-events:none}.object-form-table-dialog .object-form-table .grid-body ag-grid-angular .ag-cell.col-boolean,.object-form-table-dialog .object-form-table .grid-body ag-grid-angular .ag-cell.res-ico{justify-content:center}.object-form-table-dialog .object-form-table .grid-body ag-grid-angular .ag-cell.col-number{justify-content:flex-end}.object-form-table-dialog .object-form-table .grid-body ag-grid-angular .ag-cell .action-icon{cursor:pointer;display:flex}.object-form-table-dialog .object-form-table .grid-body ag-grid-angular .ag-cell .action-icon svg{fill:var(--text-color-caption)}.object-form-table-dialog .label{align-items:center;border-bottom:0;display:flex;flex-flow:row nowrap;padding:calc(var(--app-pane-padding)/4) calc(var(--app-pane-padding)/4) calc(var(--app-pane-padding)/2) calc(var(--app-pane-padding)/4)}.object-form-table-dialog .label span{display:block;flex:1 1 auto}.object-form-table-dialog .label eo-icon.stf{color:var(--text-color-caption);cursor:pointer;height:20px;margin:calc(var(--app-pane-padding)/4);width:20px}.object-form-table-dialog .label eo-icon.stf.add-row{background-color:var(--color-accent);border-radius:2px;color:#fff;height:24px;width:24px}.object-form-table-dialog .label button.add{border-radius:2px;padding:calc(var(--app-pane-padding)/2)}.object-form-table-dialog .label button.export{border:1px solid #000;border-radius:2px;color:#000;font-size:var(--font-hint);margin:0 calc(var(--app-pane-padding)/4);padding:calc(var(--app-pane-padding)/8) calc(var(--app-pane-padding)/4)}.object-form-table-dialog .eo-dialog-content{height:100%;max-height:none;overflow:hidden}.object-form-table-dialog .table-area{overflow:unset!important}"]
146
+ styles: [".eo-dialog{-webkit-animation:none;animation:none;background-color:var(--panel-background);display:flex;flex:1;flex-direction:column;max-height:100%;max-width:100%;min-height:0;min-width:0}.eo-dialog-close{position:absolute;right:5px;top:5px;z-index:2}.eo-dialog-preview-toggle{position:absolute;right:5px;top:50px;z-index:2}.eo-dialog-header{background-color:var(--color-accent);color:var(--color-white);flex:0 0 auto;font-size:var(--font-headline);font-weight:var(--font-weight-light);padding:var(--app-pane-padding) calc(var(--app-pane-padding)*2.5) calc(var(--app-pane-padding)*2) var(--app-pane-padding)}.eo-dialog-header .headline{font-size:24px;font-weight:400;margin:0 25px 0 0}.eo-dialog-header .subtitle{font-size:15px;font-weight:400;margin:0}.eo-dialog-content{display:flex;flex:1;flex-direction:column;height:100%;max-height:520px;min-height:0;min-width:0;overflow:auto;position:relative}.eo-dialog-content>eo-tree{margin:var(--app-pane-padding)}.eo-dialog-content .empty{align-items:center;color:var(--text-color-caption);display:flex;flex:1;flex-direction:column;justify-content:center;min-height:0;min-width:0;padding:var(--app-pane-padding)}.eo-dialog-content .action-buttons{justify-content:flex-end;padding-top:32px}.eo-dialog-content button:not(:last-child){margin-right:5px}.object-form-table-dialog{background-color:var(--panel-background-grey);height:95vh;width:100%}.object-form-table-dialog .body{height:80vh;width:100%}.object-form-table-dialog .edit-body{display:flex;height:100%}.object-form-table-dialog .table-body{background-color:var(--panel-background-grey);display:flex;height:100%;width:100%}.object-form-table-dialog eo-split{padding:var(--app-pane-padding);width:auto!important}.object-form-table-dialog eo-split-area{box-shadow:0 2px 5px 0 rgba(0,0,0,.2)}.object-form-table-dialog eo-row-edit{background-color:var(--color-white);display:flex;flex:1;flex-direction:column;min-height:0;min-width:0}.object-form-table-dialog eo-row-edit .row-edit{display:flex;flex-direction:column;height:100%}.object-form-table-dialog eo-row-edit .row-edit .edit-header{display:flex;justify-content:space-between}.object-form-table-dialog eo-row-edit .row-edit .edit-header .new-indicator{color:var(--text-color-caption);font-size:var(--font-title);margin:8px 16px 0;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.object-form-table-dialog eo-row-edit .row-edit .edit-header .cancel-icon{color:var(--text-color-caption);margin:8px 8px 0}.object-form-table-dialog eo-row-edit .row-edit .edit-header .cancel-icon:hover{background:rgba(var(--color-black-rgb),.1)}.object-form-table-dialog eo-row-edit .row-edit .form{height:100%;overflow:auto}.object-form-table-dialog eo-row-edit .row-edit .actions{align-items:center;border-top:1px solid var(--panel-header-border-bottom-color);display:flex;flex:0;flex-direction:row;justify-content:flex-end;min-height:0;min-height:5em;min-width:0;padding-right:var(--app-pane-padding)}.object-form-table-dialog eo-row-edit .row-edit .actions button{height:3em;margin:0 calc(var(--app-pane-padding)/8);padding:0 calc(var(--app-pane-padding)/2)}.object-form-table-dialog eo-row-edit .row-edit .actions eo-checkbox{margin:0 calc(var(--app-pane-padding)/2)}.object-form-table-dialog eo-row-edit .row-edit .actions .add-label{color:var(--text-color-caption);font-size:var(--font-body);margin-right:var(--app-pane-padding)}.object-form-table-dialog .object-form-table{background-color:#fff;display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr;height:100%;width:100%}.object-form-table-dialog .object-form-table .grid-body{height:100%;position:relative;width:100%}.object-form-table-dialog .object-form-table .grid-body .ag-theme-balham .ag-header{background-color:unset!important}.object-form-table-dialog .object-form-table .grid-body ag-grid-angular{background-color:transparent;height:100%;width:100%}.object-form-table-dialog .object-form-table .grid-body ag-grid-angular .copy-cell,.object-form-table-dialog .object-form-table .grid-body ag-grid-angular .new-row{-webkit-animation-duration:4s;-webkit-animation-name:new-row;animation-duration:4s;animation-name:new-row}@-webkit-keyframes new-row{0%{background-color:var(--color-accent)}to{background-color:none}}@keyframes new-row{0%{background-color:var(--color-accent)}to{background-color:none}}.object-form-table-dialog .object-form-table .grid-body ag-grid-angular .ag-cell{align-items:center;display:flex;font-size:var(--font-caption);line-height:var(--oft-row-height);padding:0 calc(var(--app-pane-padding)/4)}.object-form-table-dialog .object-form-table .grid-body ag-grid-angular .ag-cell.ag-cell-focus{background-color:var(--list-item-hover-background);border-color:transparent!important;outline:0!important}.object-form-table-dialog .object-form-table .grid-body ag-grid-angular .ag-cell svg{pointer-events:none}.object-form-table-dialog .object-form-table .grid-body ag-grid-angular .ag-cell.col-boolean,.object-form-table-dialog .object-form-table .grid-body ag-grid-angular .ag-cell.res-ico{justify-content:center}.object-form-table-dialog .object-form-table .grid-body ag-grid-angular .ag-cell.col-number{justify-content:flex-end}.object-form-table-dialog .object-form-table .grid-body ag-grid-angular .ag-cell .action-icon{cursor:pointer;display:flex}.object-form-table-dialog .object-form-table .grid-body ag-grid-angular .ag-cell .action-icon svg{fill:var(--text-color-caption)}.object-form-table-dialog .label{align-items:center;border-bottom:0;display:flex;flex-flow:row nowrap;padding:calc(var(--app-pane-padding)/4) calc(var(--app-pane-padding)/4) calc(var(--app-pane-padding)/2) calc(var(--app-pane-padding)/4)}.object-form-table-dialog .label span{display:block;flex:1 1 auto}.object-form-table-dialog .label eo-icon.stf{color:var(--text-color-caption);cursor:pointer;height:20px;margin:calc(var(--app-pane-padding)/4);width:20px}.object-form-table-dialog .label eo-icon.stf.add-row{background-color:var(--color-accent);border-radius:2px;color:#fff;height:24px;width:24px}.object-form-table-dialog .label button.add{border-radius:2px;padding:calc(var(--app-pane-padding)/2)}.object-form-table-dialog .label button.export{border:1px solid #000;border-radius:2px;color:#000;font-size:var(--font-hint);margin:0 calc(var(--app-pane-padding)/4);padding:calc(var(--app-pane-padding)/8) calc(var(--app-pane-padding)/4)}.object-form-table-dialog .eo-dialog-content{height:100%;max-height:none;overflow:hidden}.object-form-table-dialog .table-area{overflow:unset!important}.cdk-overlay-pane{position:absolute!important}"]
116
147
  },] }
117
148
  ];
118
149
  EoDialogComponent.ctorParameters = () => [
119
150
  { type: EventService },
120
151
  { type: PendingChangesService },
121
- { type: Renderer2 }
152
+ { type: Renderer2 },
153
+ { type: Overlay },
154
+ { type: ViewContainerRef }
122
155
  ];
123
156
  EoDialogComponent.propDecorators = {
157
+ portalOutlet: [{ type: ViewChild, args: [CdkPortalOutlet,] }],
158
+ dialogContent: [{ type: ViewChild, args: ['dialogContent',] }],
124
159
  title: [{ type: Input }],
125
160
  subtitle: [{ type: Input }],
126
161
  styleClass: [{ type: Input }],
127
162
  dirtyCheck: [{ type: Input }],
128
- appendTo: [{ type: Input }],
129
163
  minWidth: [{ type: Input }],
130
164
  minHeight: [{ type: Input }],
131
- resizable: [{ type: Input }],
132
- fullscreen: [{ type: Input }],
133
165
  focusOnShow: [{ type: Input }],
166
+ align: [{ type: Input }],
167
+ isFormTable: [{ type: Input }],
168
+ showPreview: [{ type: Input }],
169
+ onTogglePreview: [{ type: Output }],
134
170
  visibleChange: [{ type: Output }],
135
171
  hide: [{ type: Output }],
136
172
  show: [{ type: Output }],
137
- dialog: [{ type: ViewChild, args: [Dialog,] }],
138
173
  visible: [{ type: Input }],
139
174
  onKeydownHandler: [{ type: HostListener, args: ['document:keydown.escape', ['$event'],] }],
140
175
  onMousedown: [{ type: HostListener, args: ['document:mousedown', ['$event.target'],] }]
141
176
  };
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW8tZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL3VpL2VvLWRpYWxvZy9lby1kaWFsb2cuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxTQUFTLEVBQ1QsaUJBQWlCLEVBRWxCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUM3RCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxvRUFBb0UsQ0FBQztBQUN6RyxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQVFsRixNQUFNLE9BQU8saUJBQWtCLFNBQVEsb0JBQW9CO0lBdUR6RCxZQUNVLFlBQTBCLEVBQzFCLGNBQXFDLEVBQ3JDLFFBQW1CO1FBRTNCLEtBQUssRUFBRSxDQUFDO1FBSkEsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsbUJBQWMsR0FBZCxjQUFjLENBQXVCO1FBQ3JDLGFBQVEsR0FBUixRQUFRLENBQVc7UUF4RHJCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFHakIsT0FBRSxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsQixhQUFRLEdBQUcsRUFBRSxDQUFDO1FBR2IsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUV6QixrRUFBa0U7UUFDekQsZUFBVSxHQUFzQixFQUFFLENBQUM7UUFFbkMsYUFBUSxHQUFHLE1BQU0sQ0FBQztRQUNsQixhQUFRLEdBQUcsR0FBRyxDQUFDO1FBQ2YsY0FBUyxHQUFHLE1BQU0sQ0FBQztRQUNuQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFFbEIsa0JBQWEsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN0RCxTQUFJLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDN0MsU0FBSSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBc0NyRCxJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUM7UUFDM0MsSUFBSSxDQUFDLFlBQVk7YUFDZCxFQUFFLENBQUMsVUFBVSxDQUFDLHVCQUF1QixDQUFDO2FBQ3RDLElBQUksQ0FDSCxTQUFTLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQ25DLE1BQU0sQ0FDSixHQUFHLENBQUMsRUFBRSxDQUNKLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQzlDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQzFCLENBQ0Y7YUFDQSxTQUFTLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUN4QixJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzFELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDekQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBakRELElBQ0ksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBSSxPQUFPLENBQUMsR0FBRztRQUNiLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFHRCxnQkFBZ0IsQ0FBQyxLQUFvQjtRQUNuQyxzQ0FBc0M7UUFDdEMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2YsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3BCO0lBQ0gsQ0FBQztJQUdELFdBQVcsQ0FBQyxhQUEwQjtRQUNwQywrQ0FBK0M7UUFDL0MsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLGFBQWEsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEVBQUU7WUFDckUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3BCO0lBQ0gsQ0FBQztJQXlCRCxZQUFZLENBQUMsTUFBZSxFQUFFLE9BQU8sR0FBRyxJQUFJO1FBQzFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUN2QixJQUFJLE9BQU8sRUFBRTtZQUNYLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyx1QkFBdUIsRUFBRTtnQkFDNUQsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO2dCQUNYLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTthQUNwQixDQUFDLENBQUM7U0FDSjtRQUNELElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNmLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQ3ZFLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsYUFBYSxFQUM1QyxRQUFRLENBQ1QsQ0FBQztZQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FDekQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLEVBQzVDLFlBQVksQ0FDYixDQUFDO1lBQ0YsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUNmLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxNQUFNLEVBQUU7b0JBQzdCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7d0JBQ2QsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUM7d0JBQ3hCLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7NEJBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUNwQixJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQ3hELFdBQVcsRUFDWCxNQUFNLENBQ1AsQ0FBQzs0QkFDRixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FDcEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsYUFBYSxFQUN4RCxVQUFVLEVBQ1YsS0FBSyxDQUNOLENBQUM7eUJBQ0g7b0JBQ0gsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2lCQUNUO2dCQUNELElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ3hCLElBQUksZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUM3RSxZQUFZLENBQ2IsQ0FBQztnQkFDRixJQUFJLGdCQUFnQixFQUFFO29CQUNwQixnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztpQkFDMUI7YUFDRjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQzNCO1NBQ0Y7YUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUN0QyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDckQ7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQzlELElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2FBQ3RCO1NBQ0Y7YUFBTTtZQUNMLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzFCO0lBQ0gsQ0FBQzs7O1lBcEpGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsV0FBVztnQkFDckIsZ29DQUF5QztnQkFFekMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7O2FBQ3RDOzs7WUFYbUIsWUFBWTtZQUd4QixxQkFBcUI7WUFSM0IsU0FBUzs7O29CQXdCUixLQUFLO3VCQUNMLEtBQUs7eUJBQ0wsS0FBSzt5QkFHTCxLQUFLO3VCQUVMLEtBQUs7dUJBQ0wsS0FBSzt3QkFDTCxLQUFLO3dCQUNMLEtBQUs7eUJBQ0wsS0FBSzswQkFDTCxLQUFLOzRCQUVMLE1BQU07bUJBQ04sTUFBTTttQkFDTixNQUFNO3FCQUVOLFNBQVMsU0FBQyxNQUFNO3NCQUVoQixLQUFLOytCQVlMLFlBQVksU0FBQyx5QkFBeUIsRUFBRSxDQUFDLFFBQVEsQ0FBQzswQkFRbEQsWUFBWSxTQUFDLG9CQUFvQixFQUFFLENBQUMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT3V0cHV0LFxyXG4gIFJlbmRlcmVyMixcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgRWxlbWVudFJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0VuYWlvRXZlbnQsIEV2ZW50U2VydmljZSwgVXRpbHN9IGZyb20gJ0Blby1zZGsvY29yZSc7XHJcbmltcG9ydCB7RGlhbG9nfSBmcm9tICdwcmltZW5nL3ByaW1lbmcnO1xyXG5pbXBvcnQge2ZpbHRlciwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7UGVuZGluZ0NoYW5nZXNTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9wZW5kaW5nLWNoYW5nZXMvcGVuZGluZy1jaGFuZ2VzLnNlcnZpY2UnO1xyXG5pbXBvcnQge1Vuc3Vic2NyaWJlT25EZXN0cm95fSBmcm9tICcuLi8uLi91dGlsL3Vuc3Vic2NyaWJlL3Vuc3Vic2NyaWJlLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VvLWRpYWxvZycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2VvLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZW8tZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRW9EaWFsb2dDb21wb25lbnQgZXh0ZW5kcyBVbnN1YnNjcmliZU9uRGVzdHJveVxyXG4gIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBwcml2YXRlIF92aXNpYmxlID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfbGFzdEZvY3VzZWQ7XHJcbiAgcHJpdmF0ZSBhY3RpdmU6IGJvb2xlYW47XHJcbiAgcHJpdmF0ZSBpZCA9IFV0aWxzLnV1aWQoKTtcclxuICBwcml2YXRlIHBhcmVudElkID0gJyc7XHJcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZztcclxuICBASW5wdXQoKSBzdWJ0aXRsZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHN0eWxlQ2xhc3MgPSAnJztcclxuXHJcbiAgLy8gYXJyYXkgb2YgcGVuZGluZ1Rhc2sgSURzIHRvIGJlIGNoZWNrZWQgYmVmb3JlIHRoZSBkaWFsb2cgY2xvc2VzXHJcbiAgQElucHV0KCkgZGlydHlDaGVjazogc3RyaW5nIHwgc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgQElucHV0KCkgYXBwZW5kVG8gPSAnYm9keSc7XHJcbiAgQElucHV0KCkgbWluV2lkdGggPSAyMDA7XHJcbiAgQElucHV0KCkgbWluSGVpZ2h0ID0gJ2F1dG8nO1xyXG4gIEBJbnB1dCgpIHJlc2l6YWJsZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGZ1bGxzY3JlZW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBmb2N1c09uU2hvdyA9IHRydWU7XHJcblxyXG4gIEBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgaGlkZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHNob3c6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAVmlld0NoaWxkKERpYWxvZykgZGlhbG9nOiBEaWFsb2c7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHZpc2libGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcclxuICB9XHJcblxyXG4gIHNldCB2aXNpYmxlKHZhbCkge1xyXG4gICAgdGhpcy5fdmlzaWJsZSA9ICEhdmFsO1xyXG4gICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQodGhpcy5fdmlzaWJsZSk7XHJcbiAgICB0aGlzLl92aXNpYmxlID8gdGhpcy5zaG93LmVtaXQodmFsKSA6IHRoaXMuaGlkZS5lbWl0KHZhbCk7XHJcbiAgICB0aGlzLnRvZ2dsZUFjdGl2ZSh0aGlzLl92aXNpYmxlKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24uZXNjYXBlJywgWyckZXZlbnQnXSlcclxuICBvbktleWRvd25IYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICAvLyBjbG9zZSBhY3RpdmUgZGlhbG9nIG9uIEVzY2FwZSBldmVudFxyXG4gICAgaWYgKHRoaXMuYWN0aXZlKSB7XHJcbiAgICAgIHRoaXMuY2xvc2VEaWFsb2coKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50Om1vdXNlZG93bicsIFsnJGV2ZW50LnRhcmdldCddKVxyXG4gIG9uTW91c2Vkb3duKHRhcmdldEVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XHJcbiAgICAvLyBjbG9zZSBhY3RpdmUgZGlhbG9nIG9uIGJhY2tncm91bmQvbWFzayBjbGlja1xyXG4gICAgaWYgKHRoaXMuYWN0aXZlICYmIHRhcmdldEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCd1aS1kaWFsb2ctbWFzaycpKSB7XHJcbiAgICAgIHRoaXMuY2xvc2VEaWFsb2coKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBldmVudFNlcnZpY2U6IEV2ZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgcGVuZGluZ0NoYW5nZXM6IFBlbmRpbmdDaGFuZ2VzU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMlxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICAgIHRoaXMuX2xhc3RGb2N1c2VkID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcclxuICAgIHRoaXMuZXZlbnRTZXJ2aWNlXHJcbiAgICAgIC5vbihFbmFpb0V2ZW50LkVPX0RJQUxPR19TVEFDS19DSEFOR0VEKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQkKSxcclxuICAgICAgICBmaWx0ZXIoXHJcbiAgICAgICAgICBldnQgPT5cclxuICAgICAgICAgICAgKHRoaXMuYWN0aXZlIHx8IGV2dC5kYXRhLmlkID09PSB0aGlzLnBhcmVudElkKSAmJlxyXG4gICAgICAgICAgICBldnQuZGF0YS5pZCAhPT0gdGhpcy5pZFxyXG4gICAgICAgIClcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKChldmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy50b2dnbGVBY3RpdmUoIWV2ZW50LmRhdGEuYWN0aXZlLCAhZXZlbnQuZGF0YS5hY3RpdmUpO1xyXG4gICAgICAgIHRoaXMucGFyZW50SWQgPSBldmVudC5kYXRhLmFjdGl2ZSA/IGV2ZW50LmRhdGEuaWQgOiAnJztcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVBY3RpdmUoYWN0aXZlOiBib29sZWFuLCB0cmlnZ2VyID0gdHJ1ZSkge1xyXG4gICAgdGhpcy5hY3RpdmUgPSAhIWFjdGl2ZTtcclxuICAgIGlmICh0cmlnZ2VyKSB7XHJcbiAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnRyaWdnZXIoRW5haW9FdmVudC5FT19ESUFMT0dfU1RBQ0tfQ0hBTkdFRCwge1xyXG4gICAgICAgIGlkOiB0aGlzLmlkLFxyXG4gICAgICAgIGFjdGl2ZTogdGhpcy5hY3RpdmVcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5kaWFsb2cpIHtcclxuICAgICAgdGhpcy5yZW5kZXJlclt0aGlzLmFjdGl2ZSB8fCAhdGhpcy5hcHBlbmRUbyA/ICdhZGRDbGFzcycgOiAncmVtb3ZlQ2xhc3MnXShcclxuICAgICAgICB0aGlzLmRpYWxvZy5jb250YWluZXJWaWV3Q2hpbGQubmF0aXZlRWxlbWVudCxcclxuICAgICAgICAnYWN0aXZlJ1xyXG4gICAgICApO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyW3RoaXMuZnVsbHNjcmVlbiA/ICdhZGRDbGFzcycgOiAncmVtb3ZlQ2xhc3MnXShcclxuICAgICAgICB0aGlzLmRpYWxvZy5jb250YWluZXJWaWV3Q2hpbGQubmF0aXZlRWxlbWVudCxcclxuICAgICAgICAnZnVsbHNjcmVlbidcclxuICAgICAgKTtcclxuICAgICAgaWYgKHRoaXMuYWN0aXZlKSB7XHJcbiAgICAgICAgaWYgKHRoaXMubWluSGVpZ2h0ICE9PSAnYXV0bycpIHtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm1pbkhlaWdodCA9ICdhdXRvJztcclxuICAgICAgICAgICAgaWYgKCEhdGhpcy5kaWFsb2cpIHtcclxuICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxyXG4gICAgICAgICAgICAgICAgdGhpcy5kaWFsb2cuY29udGVudFZpZXdDaGlsZC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQsXHJcbiAgICAgICAgICAgICAgICAnbWluSGVpZ2h0JyxcclxuICAgICAgICAgICAgICAgICdhdXRvJ1xyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcclxuICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nLmNvbnRlbnRWaWV3Q2hpbGQubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50LFxyXG4gICAgICAgICAgICAgICAgJ21heFdpZHRoJyxcclxuICAgICAgICAgICAgICAgICc1MCUnXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSwgMjAwKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5kaWFsb2cubW92ZU9uVG9wKCk7XHJcbiAgICAgICAgbGV0IGZvY3VzYWJsZUVsZW1lbnQgPSB0aGlzLmRpYWxvZy5jb250ZW50Vmlld0NoaWxkLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcclxuICAgICAgICAgICdbdGFiaW5kZXhdJ1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKGZvY3VzYWJsZUVsZW1lbnQpIHtcclxuICAgICAgICAgIGZvY3VzYWJsZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5fbGFzdEZvY3VzZWQuZm9jdXMoKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmICh0aGlzLmFjdGl2ZSAmJiB0aGlzLnZpc2libGUpIHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnRvZ2dsZUFjdGl2ZSh0cnVlLCBmYWxzZSksIDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xvc2VEaWFsb2coKSB7XHJcbiAgICBpZiAodGhpcy5kaXJ0eUNoZWNrKSB7XHJcbiAgICAgIGlmICghdGhpcy5wZW5kaW5nQ2hhbmdlcy5jaGVja0ZvclBlbmRpbmdUYXNrcyh0aGlzLmRpcnR5Q2hlY2spKSB7XHJcbiAgICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICBpZiAodGhpcy5hY3RpdmUpIHtcclxuICAgICAgdGhpcy50b2dnbGVBY3RpdmUoZmFsc2UpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
177
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW8tZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL3VpL2VvLWRpYWxvZy9lby1kaWFsb2cuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxPQUFPLEVBQWEsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUMsZUFBZSxFQUFFLGNBQWMsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BFLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxTQUFTLEVBQ1QsaUJBQWlCLEVBR2pCLGdCQUFnQixFQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDN0QsT0FBTyxFQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNqRSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFRaEQsTUFBTSxPQUFPLGlCQUFrQixTQUFRLG9CQUFvQjtJQTZEekQsWUFDVSxZQUEwQixFQUMxQixjQUFxQyxFQUNyQyxRQUFtQixFQUNuQixPQUFnQixFQUNoQixnQkFBa0M7UUFFMUMsS0FBSyxFQUFFLENBQUM7UUFOQSxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixtQkFBYyxHQUFkLGNBQWMsQ0FBdUI7UUFDckMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUF6RHBDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFHakIsT0FB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Ozs7WUE5S0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxXQUFXO2dCQUNyQiwwd0NBQXlDO2dCQUV6QyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTs7YUFDdEM7OztZQVZtQixZQUFZO1lBRXhCLHFCQUFxQjtZQVQzQixTQUFTO1lBVEgsT0FBTztZQWNiLGdCQUFnQjs7OzJCQWdCZixTQUFTLFNBQUMsZUFBZTs0QkFDekIsU0FBUyxTQUFDLGVBQWU7b0JBVXpCLEtBQUs7dUJBQ0wsS0FBSzt5QkFDTCxLQUFLO3lCQUdMLEtBQUs7dUJBRUwsS0FBSzt3QkFDTCxLQUFLOzBCQUNMLEtBQUs7b0JBQ0wsS0FBSzswQkFDTCxLQUFLOzBCQUNMLEtBQUs7OEJBRUwsTUFBTTs0QkFDTixNQUFNO21CQUNOLE1BQU07bUJBQ04sTUFBTTtzQkFFTixLQUFLOytCQVlMLFlBQVksU0FBQyx5QkFBeUIsRUFBRSxDQUFDLFFBQVEsQ0FBQzswQkFRbEQsWUFBWSxTQUFDLG9CQUFvQixFQUFFLENBQUMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtPdmVybGF5LCBPdmVybGF5UmVmfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XHJcbmltcG9ydCB7Q2RrUG9ydGFsT3V0bGV0LCBUZW1wbGF0ZVBvcnRhbH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE91dHB1dCxcclxuICBSZW5kZXJlcjIsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgVmlld0NvbnRhaW5lclJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0VuYWlvRXZlbnQsIEV2ZW50U2VydmljZSwgVXRpbHN9IGZyb20gJ0Blby1zZGsvY29yZSc7XHJcbmltcG9ydCB7ZmlsdGVyLCB0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHtQZW5kaW5nQ2hhbmdlc1NlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlJztcclxuaW1wb3J0IHtVbnN1YnNjcmliZU9uRGVzdHJveX0gZnJvbSAnLi4vLi4vdXRpbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VvLWRpYWxvZycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2VvLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZW8tZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRW9EaWFsb2dDb21wb25lbnQgZXh0ZW5kcyBVbnN1YnNjcmliZU9uRGVzdHJveVxyXG4gIGltcGxlbWVudHMgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcclxuXHJcbiAgQFZpZXdDaGlsZChDZGtQb3J0YWxPdXRsZXQpIHBvcnRhbE91dGxldDogQ2RrUG9ydGFsT3V0bGV0O1xyXG4gIEBWaWV3Q2hpbGQoJ2RpYWxvZ0NvbnRlbnQnKSBkaWFsb2dDb250ZW50OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICBwcml2YXRlIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWY7XHJcbiAgcHJpdmF0ZSByZWFkeTogYm9vbGVhbjtcclxuXHJcbiAgcHJpdmF0ZSBfdmlzaWJsZSA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX2xhc3RGb2N1c2VkO1xyXG4gIHByaXZhdGUgYWN0aXZlOiBib29sZWFuO1xyXG4gIHByaXZhdGUgaWQgPSBVdGlscy51dWlkKCk7XHJcbiAgcHJpdmF0ZSBwYXJlbnRJZCA9ICcnO1xyXG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc3VidGl0bGU6IHN0cmluZztcclxuICBASW5wdXQoKSBzdHlsZUNsYXNzID0gJyc7XHJcblxyXG4gIC8vIGFycmF5IG9mIHBlbmRpbmdUYXNrIElEcyB0byBiZSBjaGVja2VkIGJlZm9yZSB0aGUgZGlhbG9nIGNsb3Nlc1xyXG4gIEBJbnB1dCgpIGRpcnR5Q2hlY2s6IHN0cmluZyB8IHN0cmluZ1tdID0gW107XHJcblxyXG4gIEBJbnB1dCgpIG1pbldpZHRoOiBudW1iZXIgfCBzdHJpbmcgPSAyMDA7XHJcbiAgQElucHV0KCkgbWluSGVpZ2h0ID0gJ2F1dG8nO1xyXG4gIEBJbnB1dCgpIGZvY3VzT25TaG93ID0gdHJ1ZTtcclxuICBASW5wdXQoKSBhbGlnbjogJ2NlbnRlcicgfCAnc3RhcnQnID0gJ2NlbnRlcic7XHJcbiAgQElucHV0KCkgaXNGb3JtVGFibGUgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzaG93UHJldmlldyA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KCkgb25Ub2dnbGVQcmV2aWV3OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgdmlzaWJsZUNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGhpZGU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBzaG93OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl92aXNpYmxlO1xyXG4gIH1cclxuXHJcbiAgc2V0IHZpc2libGUodmFsKSB7XHJcbiAgICB0aGlzLl92aXNpYmxlID0gISF2YWw7XHJcbiAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdCh0aGlzLl92aXNpYmxlKTtcclxuICAgIHRoaXMuX3Zpc2libGUgPyB0aGlzLnNob3cuZW1pdCh2YWwpIDogdGhpcy5oaWRlLmVtaXQodmFsKTtcclxuICAgIHRoaXMudG9nZ2xlQWN0aXZlKHRoaXMuX3Zpc2libGUpO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bi5lc2NhcGUnLCBbJyRldmVudCddKVxyXG4gIG9uS2V5ZG93bkhhbmRsZXIoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIC8vIGNsb3NlIGFjdGl2ZSBkaWFsb2cgb24gRXNjYXBlIGV2ZW50XHJcbiAgICBpZiAodGhpcy5hY3RpdmUpIHtcclxuICAgICAgdGhpcy5jbG9zZURpYWxvZygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6bW91c2Vkb3duJywgWyckZXZlbnQudGFyZ2V0J10pXHJcbiAgb25Nb3VzZWRvd24odGFyZ2V0RWxlbWVudDogSFRNTEVsZW1lbnQpIHtcclxuICAgIC8vIGNsb3NlIGFjdGl2ZSBkaWFsb2cgb24gYmFja2dyb3VuZC9tYXNrIGNsaWNrXHJcbiAgICBpZiAodGhpcy5hY3RpdmUgJiYgdGFyZ2V0RWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ3VpLWRpYWxvZy1tYXNrJykpIHtcclxuICAgICAgdGhpcy5jbG9zZURpYWxvZygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGV2ZW50U2VydmljZTogRXZlbnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBwZW5kaW5nQ2hhbmdlczogUGVuZGluZ0NoYW5nZXNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxyXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgdGhpcy5fbGFzdEZvY3VzZWQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50O1xyXG4gICAgdGhpcy5ldmVudFNlcnZpY2VcclxuICAgICAgLm9uKEVuYWlvRXZlbnQuRU9fRElBTE9HX1NUQUNLX0NIQU5HRUQpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCQpLFxyXG4gICAgICAgIGZpbHRlcihcclxuICAgICAgICAgIGV2dCA9PlxyXG4gICAgICAgICAgICAodGhpcy5hY3RpdmUgfHwgZXZ0LmRhdGEuaWQgPT09IHRoaXMucGFyZW50SWQpICYmXHJcbiAgICAgICAgICAgIGV2dC5kYXRhLmlkICE9PSB0aGlzLmlkXHJcbiAgICAgICAgKVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnBhcmVudElkID0gZXZlbnQuZGF0YS5hY3RpdmUgPyBldmVudC5kYXRhLmlkIDogJyc7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvcGVuKCkge1xyXG4gICAgLy8gV2UgY3JlYXRlIHRoZSBvdmVybGF5XHJcbiAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcclxuICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXHJcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCksXHJcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMuZ2V0UG9zaXRpb25TdHJhdGVneSgpLFxyXG4gICAgICBtaW5IZWlnaHQ6IHRoaXMubWluSGVpZ2h0LFxyXG4gICAgICBtaW5XaWR0aDogdGhpcy5taW5XaWR0aFxyXG4gICAgfSk7XHJcbiAgICAvL1RoZW4gd2UgY3JlYXRlIGEgcG9ydGFsIHRvIHJlbmRlciBhIGNvbXBvbmVudFxyXG4gICAgY29uc3QgcG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMuZGlhbG9nQ29udGVudCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcclxuICAgIC8vIFdlIGFkZCBhIGN1c3RvbSBDU1MgY2xhc3MgdG8gb3VyIG92ZXJsYXlcclxuICAgIC8vIHRoaXMub3ZlcmxheVJlZi5hZGRQYW5lbENsYXNzKFwiZXhhbXBsZS1vdmVybGF5XCIpO1xyXG4gICAgdGhpcy5vdmVybGF5UmVmLmF0dGFjaChwb3J0YWwpO1xyXG4gICAgdGhpcy5vdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKF8pID0+IHtcclxuICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFBvc2l0aW9uU3RyYXRlZ3koKSB7XHJcbiAgICBsZXQgcG9zaXRpb25TdHJhdGVneTtcclxuICAgIGlmICh0aGlzLmFsaWduID09PSAnY2VudGVyJykge1xyXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5XHJcbiAgICAgICAgLnBvc2l0aW9uKClcclxuICAgICAgICAuZ2xvYmFsKClcclxuICAgICAgICAuY2VudGVySG9yaXpvbnRhbGx5KClcclxuICAgICAgICAuY2VudGVyVmVydGljYWxseSgpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmFsaWduID09PSAnc3RhcnQnKSB7XHJcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXlcclxuICAgICAgICAucG9zaXRpb24oKVxyXG4gICAgICAgIC5nbG9iYWwoKVxyXG4gICAgICAgIC5sZWZ0KClcclxuICAgICAgICAudG9wKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcG9zaXRpb25TdHJhdGVneTtcclxuICB9XHJcblxyXG4gIHRvZ2dsZUFjdGl2ZShhY3RpdmU6IGJvb2xlYW4sIHRyaWdnZXIgPSB0cnVlKSB7XHJcbiAgICB0aGlzLmFjdGl2ZSA9ICEhYWN0aXZlO1xyXG5cclxuICAgIGlmIChhY3RpdmUgJiYgdGhpcy5yZWFkeSAmJiAhdGhpcy5vdmVybGF5UmVmKSB7XHJcbiAgICAgIHRoaXMub3BlbigpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMub3ZlcmxheVJlZiAmJiAhYWN0aXZlKSB7XHJcbiAgICAgIHRoaXMub3ZlcmxheVJlZi5kaXNwb3NlKCk7XHJcbiAgICAgIHRoaXMub3ZlcmxheVJlZiA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodHJpZ2dlcikge1xyXG4gICAgICB0aGlzLmV2ZW50U2VydmljZS50cmlnZ2VyKEVuYWlvRXZlbnQuRU9fRElBTE9HX1NUQUNLX0NIQU5HRUQsIHtcclxuICAgICAgICBpZDogdGhpcy5pZCxcclxuICAgICAgICBhY3RpdmU6IHRoaXMuYWN0aXZlXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xvc2VEaWFsb2coKSB7XHJcbiAgICBpZiAodGhpcy5kaXJ0eUNoZWNrKSB7XHJcbiAgICAgIGlmICghdGhpcy5wZW5kaW5nQ2hhbmdlcy5jaGVja0ZvclBlbmRpbmdUYXNrcyh0aGlzLmRpcnR5Q2hlY2spKSB7XHJcbiAgICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdG9nZ2xlUHJldmlldygpIHtcclxuICAgIHRoaXMuc2hvd1ByZXZpZXcgPSAhdGhpcy5zaG93UHJldmlldztcclxuICAgIHRoaXMub25Ub2dnbGVQcmV2aWV3LmVtaXQoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgaWYgKHRoaXMuYWN0aXZlKSB7XHJcbiAgICAgIHRoaXMudG9nZ2xlQWN0aXZlKGZhbHNlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIC8vIHRoaXMub3BlbigpO1xyXG5cclxuICAgIHRoaXMucmVhZHkgPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMuX3Zpc2libGUpIHsgdGhpcy5vcGVuKCk7IH1cclxuICB9XHJcbn1cclxuIl19
@@ -16,6 +16,7 @@ import { DialogModule, OverlayPanelModule } from 'primeng/primeng';
16
16
  import { ErrorMessageComponent } from './error-message/error-message.component';
17
17
  import { EoDialogComponent } from './eo-dialog/eo-dialog.component';
18
18
  import { RouterModule } from '@angular/router';
19
+ import { OverlayModule } from '@angular/cdk/overlay';
19
20
  import { AccordionModule } from '../accordion/accordion.module';
20
21
  import { IndexdataSummaryEntryComponent } from './indexdata-summary/indexdata-summary-entry/indexdata-summary-entry.component';
21
22
  import { RouterLinkDirective } from './router-link/router-link.directive';
@@ -37,7 +38,8 @@ UiModule.decorators = [
37
38
  OverlayPanelModule,
38
39
  RouterModule,
39
40
  DialogModule,
40
- AccordionModule
41
+ AccordionModule,
42
+ OverlayModule
41
43
  ],
42
44
  exports: [
43
45
  CommonModule,
@@ -75,4 +77,4 @@ UiModule.decorators = [
75
77
  ]
76
78
  },] }
77
79
  ];
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvdWkvdWkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUN2RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQztBQUNwRixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRSxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxpREFBaUQsQ0FBQztBQUMxRixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEVBQUMsWUFBWSxFQUFFLGtCQUFrQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDakUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUMsOEJBQThCLEVBQUMsTUFBTSwrRUFBK0UsQ0FBQztBQUM3SCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUU5Rjs7O0dBR0c7QUFpREgsTUFBTSxPQUFPLFFBQVE7OztZQS9DcEIsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUNaLGdCQUFnQjtvQkFDaEIsY0FBYztvQkFDZCxXQUFXO29CQUNYLHVCQUF1QjtvQkFDdkIsa0JBQWtCO29CQUNsQixZQUFZO29CQUNaLFlBQVk7b0JBQ1osZUFBZTtpQkFDaEI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osZ0JBQWdCO29CQUNoQixjQUFjO29CQUNkLFdBQVc7b0JBQ1gsa0JBQWtCO29CQUNsQixlQUFlO29CQUNmLHFCQUFxQjtvQkFDckIsbUJBQW1CO29CQUNuQixpQkFBaUI7b0JBQ2pCLHVCQUF1QjtvQkFDdkIsa0JBQWtCO29CQUNsQix5QkFBeUI7b0JBQ3pCLG1CQUFtQjtvQkFDbkIsZ0JBQWdCO29CQUNoQixxQkFBcUI7b0JBQ3JCLGlCQUFpQjtvQkFDakIseUJBQXlCO2lCQUMxQjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1osZUFBZTtvQkFDZixxQkFBcUI7b0JBQ3JCLG1CQUFtQjtvQkFDbkIsaUJBQWlCO29CQUNqQix1QkFBdUI7b0JBQ3ZCLGtCQUFrQjtvQkFDbEIseUJBQXlCO29CQUN6QixtQkFBbUI7b0JBQ25CLGdCQUFnQjtvQkFDaEIscUJBQXFCO29CQUNyQixpQkFBaUI7b0JBQ2pCLDhCQUE4QjtvQkFDOUIseUJBQXlCO2lCQUMxQjthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge0h0dHBDbGllbnRNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHtFb1NoYXJlZE1vZHVsZX0gZnJvbSAnQGVvLXNkay9jb3JlJztcclxuaW1wb3J0IHtFb0ljb25Db21wb25lbnR9IGZyb20gJy4vZW8taWNvbi9lby1pY29uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7T3V0c2lkZUNsaWNrRGlyZWN0aXZlfSBmcm9tICcuL291dHNpZGUtY2xpY2svb3V0c2lkZS1jbGljay5kaXJlY3RpdmUnO1xyXG5pbXBvcnQge1J0bEF3YXJlRGlyZWN0aXZlfSBmcm9tICcuL3J0bC1hd2FyZS9ydGwtYXdhcmUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHtQaXBlc01vZHVsZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvcGlwZXMvcGlwZXMubW9kdWxlJztcclxuaW1wb3J0IHtMb2FkaW5nU3Bpbm5lckNvbXBvbmVudH0gZnJvbSAnLi9sb2FkaW5nLXNwaW5uZXIvbG9hZGluZy1zcGlubmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7QnJvd3NlckFuaW1hdGlvbnNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7Q2xpcGJvYXJkQ29tcG9uZW50fSBmcm9tICcuL2NsaXBib2FyZC9jbGlwYm9hcmQuY29tcG9uZW50JztcclxuaW1wb3J0IHtJbmRleGRhdGFTdW1tYXJ5Q29tcG9uZW50fSBmcm9tICcuL2luZGV4ZGF0YS1zdW1tYXJ5L2luZGV4ZGF0YS1zdW1tYXJ5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7VXNlckF2YXRhckNvbXBvbmVudH0gZnJvbSAnLi91c2VyLWF2YXRhci91c2VyLWF2YXRhci5jb21wb25lbnQnO1xyXG5pbXBvcnQge092ZXJsYXlDb21wb25lbnR9IGZyb20gJy4vb3ZlcmxheS9vdmVybGF5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7RGlhbG9nTW9kdWxlLCBPdmVybGF5UGFuZWxNb2R1bGV9IGZyb20gJ3ByaW1lbmcvcHJpbWVuZyc7XHJcbmltcG9ydCB7RXJyb3JNZXNzYWdlQ29tcG9uZW50fSBmcm9tICcuL2Vycm9yLW1lc3NhZ2UvZXJyb3ItbWVzc2FnZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge0VvRGlhbG9nQ29tcG9uZW50fSBmcm9tICcuL2VvLWRpYWxvZy9lby1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHtSb3V0ZXJNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7QWNjb3JkaW9uTW9kdWxlfSBmcm9tICcuLi9hY2NvcmRpb24vYWNjb3JkaW9uLm1vZHVsZSc7XHJcbmltcG9ydCB7SW5kZXhkYXRhU3VtbWFyeUVudHJ5Q29tcG9uZW50fSBmcm9tICcuL2luZGV4ZGF0YS1zdW1tYXJ5L2luZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5L2luZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7Um91dGVyTGlua0RpcmVjdGl2ZX0gZnJvbSAnLi9yb3V0ZXItbGluay9yb3V0ZXItbGluay5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBRdWVyeVNjb3BlU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9xdWVyeS1zY29wZS1zZWxlY3QvcXVlcnktc2NvcGUtc2VsZWN0LmNvbXBvbmVudCc7XHJcblxyXG4vKipcclxuICogU2hhcmVkIG1vZHVsZSBmb3IgYWxsIHVpIGNvbXBvbmVudHMgdGhhdCBhcmUgdXNlZCBhY3Jvc3MgdGhlIHdob2xlIGFwcFxyXG4gKiBhbmQgaW4gb3RoZXIgY29tcG9uZW50cy5cclxuICovXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEh0dHBDbGllbnRNb2R1bGUsXHJcbiAgICBFb1NoYXJlZE1vZHVsZSxcclxuICAgIFBpcGVzTW9kdWxlLFxyXG4gICAgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUsXHJcbiAgICBPdmVybGF5UGFuZWxNb2R1bGUsXHJcbiAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICBEaWFsb2dNb2R1bGUsXHJcbiAgICBBY2NvcmRpb25Nb2R1bGVcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEh0dHBDbGllbnRNb2R1bGUsXHJcbiAgICBFb1NoYXJlZE1vZHVsZSxcclxuICAgIFBpcGVzTW9kdWxlLFxyXG4gICAgT3ZlcmxheVBhbmVsTW9kdWxlLFxyXG4gICAgRW9JY29uQ29tcG9uZW50LFxyXG4gICAgT3V0c2lkZUNsaWNrRGlyZWN0aXZlLFxyXG4gICAgUm91dGVyTGlua0RpcmVjdGl2ZSxcclxuICAgIFJ0bEF3YXJlRGlyZWN0aXZlLFxyXG4gICAgTG9hZGluZ1NwaW5uZXJDb21wb25lbnQsXHJcbiAgICBDbGlwYm9hcmRDb21wb25lbnQsXHJcbiAgICBJbmRleGRhdGFTdW1tYXJ5Q29tcG9uZW50LFxyXG4gICAgVXNlckF2YXRhckNvbXBvbmVudCxcclxuICAgIE92ZXJsYXlDb21wb25lbnQsXHJcbiAgICBFcnJvck1lc3NhZ2VDb21wb25lbnQsXHJcbiAgICBFb0RpYWxvZ0NvbXBvbmVudCxcclxuICAgIFF1ZXJ5U2NvcGVTZWxlY3RDb21wb25lbnRcclxuICBdLFxyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgRW9JY29uQ29tcG9uZW50LFxyXG4gICAgT3V0c2lkZUNsaWNrRGlyZWN0aXZlLFxyXG4gICAgUm91dGVyTGlua0RpcmVjdGl2ZSxcclxuICAgIFJ0bEF3YXJlRGlyZWN0aXZlLFxyXG4gICAgTG9hZGluZ1NwaW5uZXJDb21wb25lbnQsXHJcbiAgICBDbGlwYm9hcmRDb21wb25lbnQsXHJcbiAgICBJbmRleGRhdGFTdW1tYXJ5Q29tcG9uZW50LFxyXG4gICAgVXNlckF2YXRhckNvbXBvbmVudCxcclxuICAgIE92ZXJsYXlDb21wb25lbnQsXHJcbiAgICBFcnJvck1lc3NhZ2VDb21wb25lbnQsXHJcbiAgICBFb0RpYWxvZ0NvbXBvbmVudCxcclxuICAgIEluZGV4ZGF0YVN1bW1hcnlFbnRyeUNvbXBvbmVudCxcclxuICAgIFF1ZXJ5U2NvcGVTZWxlY3RDb21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVaU1vZHVsZSB7XHJcbn1cclxuIl19
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvdWkvdWkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUN2RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQztBQUNwRixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRSxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxpREFBaUQsQ0FBQztBQUMxRixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEVBQUMsWUFBWSxFQUFFLGtCQUFrQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDakUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDOUQsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sK0VBQStFLENBQUM7QUFDN0gsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDeEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFFOUY7OztHQUdHO0FBa0RILE1BQU0sT0FBTyxRQUFROzs7WUFoRHBCLFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixnQkFBZ0I7b0JBQ2hCLGNBQWM7b0JBQ2QsV0FBVztvQkFDWCx1QkFBdUI7b0JBQ3ZCLGtCQUFrQjtvQkFDbEIsWUFBWTtvQkFDWixZQUFZO29CQUNaLGVBQWU7b0JBQ2YsYUFBYTtpQkFDZDtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixnQkFBZ0I7b0JBQ2hCLGNBQWM7b0JBQ2QsV0FBVztvQkFDWCxrQkFBa0I7b0JBQ2xCLGVBQWU7b0JBQ2YscUJBQXFCO29CQUNyQixtQkFBbUI7b0JBQ25CLGlCQUFpQjtvQkFDakIsdUJBQXVCO29CQUN2QixrQkFBa0I7b0JBQ2xCLHlCQUF5QjtvQkFDekIsbUJBQW1CO29CQUNuQixnQkFBZ0I7b0JBQ2hCLHFCQUFxQjtvQkFDckIsaUJBQWlCO29CQUNqQix5QkFBeUI7aUJBQzFCO2dCQUNELFlBQVksRUFBRTtvQkFDWixlQUFlO29CQUNmLHFCQUFxQjtvQkFDckIsbUJBQW1CO29CQUNuQixpQkFBaUI7b0JBQ2pCLHVCQUF1QjtvQkFDdkIsa0JBQWtCO29CQUNsQix5QkFBeUI7b0JBQ3pCLG1CQUFtQjtvQkFDbkIsZ0JBQWdCO29CQUNoQixxQkFBcUI7b0JBQ3JCLGlCQUFpQjtvQkFDakIsOEJBQThCO29CQUM5Qix5QkFBeUI7aUJBQzFCO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7SHR0cENsaWVudE1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQge0VvU2hhcmVkTW9kdWxlfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xyXG5pbXBvcnQge0VvSWNvbkNvbXBvbmVudH0gZnJvbSAnLi9lby1pY29uL2VvLWljb24uY29tcG9uZW50JztcclxuaW1wb3J0IHtPdXRzaWRlQ2xpY2tEaXJlY3RpdmV9IGZyb20gJy4vb3V0c2lkZS1jbGljay9vdXRzaWRlLWNsaWNrLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7UnRsQXdhcmVEaXJlY3RpdmV9IGZyb20gJy4vcnRsLWF3YXJlL3J0bC1hd2FyZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQge1BpcGVzTW9kdWxlfSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmstY29yZS9waXBlcy9waXBlcy5tb2R1bGUnO1xyXG5pbXBvcnQge0xvYWRpbmdTcGlubmVyQ29tcG9uZW50fSBmcm9tICcuL2xvYWRpbmctc3Bpbm5lci9sb2FkaW5nLXNwaW5uZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHtCcm93c2VyQW5pbWF0aW9uc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci9hbmltYXRpb25zJztcclxuaW1wb3J0IHtDbGlwYm9hcmRDb21wb25lbnR9IGZyb20gJy4vY2xpcGJvYXJkL2NsaXBib2FyZC5jb21wb25lbnQnO1xyXG5pbXBvcnQge0luZGV4ZGF0YVN1bW1hcnlDb21wb25lbnR9IGZyb20gJy4vaW5kZXhkYXRhLXN1bW1hcnkvaW5kZXhkYXRhLXN1bW1hcnkuY29tcG9uZW50JztcclxuaW1wb3J0IHtVc2VyQXZhdGFyQ29tcG9uZW50fSBmcm9tICcuL3VzZXItYXZhdGFyL3VzZXItYXZhdGFyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7T3ZlcmxheUNvbXBvbmVudH0gZnJvbSAnLi9vdmVybGF5L292ZXJsYXkuY29tcG9uZW50JztcclxuaW1wb3J0IHtEaWFsb2dNb2R1bGUsIE92ZXJsYXlQYW5lbE1vZHVsZX0gZnJvbSAncHJpbWVuZy9wcmltZW5nJztcclxuaW1wb3J0IHtFcnJvck1lc3NhZ2VDb21wb25lbnR9IGZyb20gJy4vZXJyb3ItbWVzc2FnZS9lcnJvci1tZXNzYWdlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7RW9EaWFsb2dDb21wb25lbnR9IGZyb20gJy4vZW8tZGlhbG9nL2VvLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQge1JvdXRlck1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHtPdmVybGF5TW9kdWxlfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XHJcbmltcG9ydCB7QWNjb3JkaW9uTW9kdWxlfSBmcm9tICcuLi9hY2NvcmRpb24vYWNjb3JkaW9uLm1vZHVsZSc7XHJcbmltcG9ydCB7SW5kZXhkYXRhU3VtbWFyeUVudHJ5Q29tcG9uZW50fSBmcm9tICcuL2luZGV4ZGF0YS1zdW1tYXJ5L2luZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5L2luZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7Um91dGVyTGlua0RpcmVjdGl2ZX0gZnJvbSAnLi9yb3V0ZXItbGluay9yb3V0ZXItbGluay5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBRdWVyeVNjb3BlU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9xdWVyeS1zY29wZS1zZWxlY3QvcXVlcnktc2NvcGUtc2VsZWN0LmNvbXBvbmVudCc7XHJcblxyXG4vKipcclxuICogU2hhcmVkIG1vZHVsZSBmb3IgYWxsIHVpIGNvbXBvbmVudHMgdGhhdCBhcmUgdXNlZCBhY3Jvc3MgdGhlIHdob2xlIGFwcFxyXG4gKiBhbmQgaW4gb3RoZXIgY29tcG9uZW50cy5cclxuICovXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEh0dHBDbGllbnRNb2R1bGUsXHJcbiAgICBFb1NoYXJlZE1vZHVsZSxcclxuICAgIFBpcGVzTW9kdWxlLFxyXG4gICAgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUsXHJcbiAgICBPdmVybGF5UGFuZWxNb2R1bGUsXHJcbiAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICBEaWFsb2dNb2R1bGUsXHJcbiAgICBBY2NvcmRpb25Nb2R1bGUsXHJcbiAgICBPdmVybGF5TW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBIdHRwQ2xpZW50TW9kdWxlLFxyXG4gICAgRW9TaGFyZWRNb2R1bGUsXHJcbiAgICBQaXBlc01vZHVsZSxcclxuICAgIE92ZXJsYXlQYW5lbE1vZHVsZSxcclxuICAgIEVvSWNvbkNvbXBvbmVudCxcclxuICAgIE91dHNpZGVDbGlja0RpcmVjdGl2ZSxcclxuICAgIFJvdXRlckxpbmtEaXJlY3RpdmUsXHJcbiAgICBSdGxBd2FyZURpcmVjdGl2ZSxcclxuICAgIExvYWRpbmdTcGlubmVyQ29tcG9uZW50LFxyXG4gICAgQ2xpcGJvYXJkQ29tcG9uZW50LFxyXG4gICAgSW5kZXhkYXRhU3VtbWFyeUNvbXBvbmVudCxcclxuICAgIFVzZXJBdmF0YXJDb21wb25lbnQsXHJcbiAgICBPdmVybGF5Q29tcG9uZW50LFxyXG4gICAgRXJyb3JNZXNzYWdlQ29tcG9uZW50LFxyXG4gICAgRW9EaWFsb2dDb21wb25lbnQsXHJcbiAgICBRdWVyeVNjb3BlU2VsZWN0Q29tcG9uZW50XHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIEVvSWNvbkNvbXBvbmVudCxcclxuICAgIE91dHNpZGVDbGlja0RpcmVjdGl2ZSxcclxuICAgIFJvdXRlckxpbmtEaXJlY3RpdmUsXHJcbiAgICBSdGxBd2FyZURpcmVjdGl2ZSxcclxuICAgIExvYWRpbmdTcGlubmVyQ29tcG9uZW50LFxyXG4gICAgQ2xpcGJvYXJkQ29tcG9uZW50LFxyXG4gICAgSW5kZXhkYXRhU3VtbWFyeUNvbXBvbmVudCxcclxuICAgIFVzZXJBdmF0YXJDb21wb25lbnQsXHJcbiAgICBPdmVybGF5Q29tcG9uZW50LFxyXG4gICAgRXJyb3JNZXNzYWdlQ29tcG9uZW50LFxyXG4gICAgRW9EaWFsb2dDb21wb25lbnQsXHJcbiAgICBJbmRleGRhdGFTdW1tYXJ5RW50cnlDb21wb25lbnQsXHJcbiAgICBRdWVyeVNjb3BlU2VsZWN0Q29tcG9uZW50XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWlNb2R1bGUge1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,50 @@
1
+ import { Directive, ElementRef } from '@angular/core';
2
+ /**
3
+ * This directive traps the focus inside the element it is applied to.
4
+ * When applied, a users can't "tab out" of the element.
5
+ * You need at least two focusable children in the element for it to work properly.
6
+ * See the querySelector in the trapFocus method to know which elements count as focusable.
7
+ * Additionally you can add the attribute "focusable" to an element if you are unsure.
8
+ */
9
+ export class TrapFocusDirective {
10
+ constructor(el) {
11
+ this.el = el;
12
+ }
13
+ ngAfterViewInit() {
14
+ this.trapFocus(this.el.nativeElement);
15
+ }
16
+ trapFocus(element) {
17
+ let focusableElements = element.querySelectorAll('a[href], button, textarea, input[type="text"],' +
18
+ 'input[type="radio"], input[type="checkbox"], select, [focusable]');
19
+ focusableElements = Array.from(focusableElements)
20
+ .filter((el) => !el.disabled && !el.classList.contains('disabled'));
21
+ const firstFocusableElement = focusableElements[0];
22
+ const lastFocusableElement = focusableElements[focusableElements.length - 1];
23
+ element.addEventListener('keydown', ((event) => {
24
+ const isTabPressed = event.keyCode === 9; // tab key code
25
+ if (!isTabPressed)
26
+ return;
27
+ if (event.shiftKey) /* shift + tab */ {
28
+ if (document.activeElement === firstFocusableElement) {
29
+ lastFocusableElement.focus();
30
+ event.preventDefault();
31
+ }
32
+ }
33
+ else /* tab */ {
34
+ if (document.activeElement === lastFocusableElement) {
35
+ firstFocusableElement.focus();
36
+ event.preventDefault();
37
+ }
38
+ }
39
+ }));
40
+ }
41
+ }
42
+ TrapFocusDirective.decorators = [
43
+ { type: Directive, args: [{
44
+ selector: '[eoTrapFocus]'
45
+ },] }
46
+ ];
47
+ TrapFocusDirective.ctorParameters = () => [
48
+ { type: ElementRef }
49
+ ];
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhcC1mb2N1cy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay91dGlsL2RpcmVjdGl2ZS90cmFwLWZvY3VzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0RDs7Ozs7O0dBTUc7QUFLSCxNQUFNLE9BQU8sa0JBQWtCO0lBRTdCLFlBQW9CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO0lBQUcsQ0FBQztJQUV0QyxlQUFlO1FBQ2IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxTQUFTLENBQUMsT0FBWTtRQUNwQixJQUFJLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FDOUMsZ0RBQWdEO1lBQ2hELGtFQUFrRSxDQUNuRSxDQUFDO1FBQ0YsaUJBQWlCLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQzthQUM5QyxNQUFNLENBQUUsQ0FBQyxFQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLFFBQVEsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDNUUsTUFBTSxxQkFBcUIsR0FBUSxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4RCxNQUFNLG9CQUFvQixHQUFRLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUVsRixPQUFPLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUNsRCxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLGVBQWU7WUFDekQsSUFBSSxDQUFDLFlBQVk7Z0JBQUUsT0FBTztZQUUxQixJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUUsaUJBQWlCLENBQUM7Z0JBQ3BDLElBQUksUUFBUSxDQUFDLGFBQWEsS0FBSyxxQkFBcUIsRUFBRTtvQkFDcEQsb0JBQW9CLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQzdCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztpQkFDeEI7YUFDRjtpQkFBTSxTQUFTLENBQUM7Z0JBQ2YsSUFBSSxRQUFRLENBQUMsYUFBYSxLQUFLLG9CQUFvQixFQUFFO29CQUNuRCxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDOUIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2lCQUN4QjthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7OztZQXJDRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGVBQWU7YUFDMUI7OztZQVptQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vKipcclxuICogVGhpcyBkaXJlY3RpdmUgdHJhcHMgdGhlIGZvY3VzIGluc2lkZSB0aGUgZWxlbWVudCBpdCBpcyBhcHBsaWVkIHRvLlxyXG4gKiBXaGVuIGFwcGxpZWQsIGEgdXNlcnMgY2FuJ3QgXCJ0YWIgb3V0XCIgb2YgdGhlIGVsZW1lbnQuXHJcbiAqIFlvdSBuZWVkIGF0IGxlYXN0IHR3byBmb2N1c2FibGUgY2hpbGRyZW4gaW4gdGhlIGVsZW1lbnQgZm9yIGl0IHRvIHdvcmsgcHJvcGVybHkuXHJcbiAqIFNlZSB0aGUgcXVlcnlTZWxlY3RvciBpbiB0aGUgdHJhcEZvY3VzIG1ldGhvZCB0byBrbm93IHdoaWNoIGVsZW1lbnRzIGNvdW50IGFzIGZvY3VzYWJsZS5cclxuICogQWRkaXRpb25hbGx5IHlvdSBjYW4gYWRkIHRoZSBhdHRyaWJ1dGUgXCJmb2N1c2FibGVcIiB0byBhbiBlbGVtZW50IGlmIHlvdSBhcmUgdW5zdXJlLlxyXG4gKi9cclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2VvVHJhcEZvY3VzXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYXBGb2N1c0RpcmVjdGl2ZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHt9XHJcbiAgXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy50cmFwRm9jdXModGhpcy5lbC5uYXRpdmVFbGVtZW50KTtcclxuICB9XHJcblxyXG4gIHRyYXBGb2N1cyhlbGVtZW50OiBhbnkpIHtcclxuICAgIGxldCBmb2N1c2FibGVFbGVtZW50cyA9IGVsZW1lbnQucXVlcnlTZWxlY3RvckFsbChcclxuICAgICAgJ2FbaHJlZl0sIGJ1dHRvbiwgdGV4dGFyZWEsIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLCcgK1xyXG4gICAgICAnaW5wdXRbdHlwZT1cInJhZGlvXCJdLCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sIHNlbGVjdCwgW2ZvY3VzYWJsZV0nXHJcbiAgICApO1xyXG4gICAgZm9jdXNhYmxlRWxlbWVudHMgPSBBcnJheS5mcm9tKGZvY3VzYWJsZUVsZW1lbnRzKVxyXG4gICAgICAuZmlsdGVyKCAoZWw6IGFueSkgPT4gIWVsLmRpc2FibGVkICYmICFlbC5jbGFzc0xpc3QuY29udGFpbnMoJ2Rpc2FibGVkJykpO1xyXG4gICAgY29uc3QgZmlyc3RGb2N1c2FibGVFbGVtZW50OiBhbnkgPSBmb2N1c2FibGVFbGVtZW50c1swXTtcclxuICAgIGNvbnN0IGxhc3RGb2N1c2FibGVFbGVtZW50OiBhbnkgPSBmb2N1c2FibGVFbGVtZW50c1tmb2N1c2FibGVFbGVtZW50cy5sZW5ndGggLSAxXTtcclxuXHJcbiAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCAoKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgaXNUYWJQcmVzc2VkID0gZXZlbnQua2V5Q29kZSA9PT0gOTsgLy8gdGFiIGtleSBjb2RlXHJcbiAgICAgIGlmICghaXNUYWJQcmVzc2VkKSByZXR1cm47XHJcblxyXG4gICAgICBpZiAoZXZlbnQuc2hpZnRLZXkpIC8qIHNoaWZ0ICsgdGFiICovIHtcclxuICAgICAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZmlyc3RGb2N1c2FibGVFbGVtZW50KSB7XHJcbiAgICAgICAgICBsYXN0Rm9jdXNhYmxlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSAvKiB0YWIgKi8ge1xyXG4gICAgICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBsYXN0Rm9jdXNhYmxlRWxlbWVudCkge1xyXG4gICAgICAgICAgZmlyc3RGb2N1c2FibGVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSkpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
@@ -1,6 +1,6 @@
1
1
  import { HttpClient } from '@angular/common/http';
2
- import { Injectable } from '@angular/core';
3
- import { AppCacheService, BackendService, Logger, NotificationsService, SystemService, TranslateService, UserService, Utils } from '@eo-sdk/core';
2
+ import { Inject, Injectable } from '@angular/core';
3
+ import { AppCacheService, BackendService, CoreConfig, CORE_CONFIG, Logger, NotificationsService, SystemService, TranslateService, UserService, Utils } from '@eo-sdk/core';
4
4
  import { BehaviorSubject, forkJoin, of, ReplaySubject } from 'rxjs';
5
5
  import { catchError, map, tap } from 'rxjs/operators';
6
6
  export var agentConfigKeys;
@@ -9,7 +9,8 @@ export var agentConfigKeys;
9
9
  agentConfigKeys["LOCKSETTINGS"] = "locksettings";
10
10
  })(agentConfigKeys || (agentConfigKeys = {}));
11
11
  export class AgentService {
12
- constructor(logger, http, systemService, backendService, userService, translate, notifications, appCacheService) {
12
+ constructor(coreConfig, logger, http, systemService, backendService, userService, translate, notifications, appCacheService) {
13
+ this.coreConfig = coreConfig;
13
14
  this.logger = logger;
14
15
  this.http = http;
15
16
  this.systemService = systemService;
@@ -36,7 +37,7 @@ export class AgentService {
36
37
  .pipe(tap(([storage, config]) => this.isConnected = (config && config.hasOwnProperty(agentConfigKeys.AUTOCONNECT) ? config.autoconnect : storage !== null ? storage : null))).subscribe();
37
38
  }
38
39
  getAgentConfig() {
39
- return this.http.get('assets/_default/config/extend.json').pipe(catchError(() => of(null)), tap((config) => this.agentConfig.next(Object.assign({}, config === null || config === void 0 ? void 0 : config.agent))), map((config) => config === null || config === void 0 ? void 0 : config.agent));
40
+ return this.http.get('assets/_default/config/extend.json', { withCredentials: this.coreConfig.withCredentials }).pipe(catchError(() => of(null)), tap((config) => this.agentConfig.next(Object.assign({}, config === null || config === void 0 ? void 0 : config.agent))), map((config) => config === null || config === void 0 ? void 0 : config.agent));
40
41
  }
41
42
  set isConnected(isConnected) {
42
43
  this._isConnected = isConnected;
@@ -168,6 +169,7 @@ AgentService.decorators = [
168
169
  { type: Injectable }
169
170
  ];
170
171
  AgentService.ctorParameters = () => [
172
+ { type: CoreConfig, decorators: [{ type: Inject, args: [CORE_CONFIG,] }] },
171
173
  { type: Logger },
172
174
  { type: HttpClient },
173
175
  { type: SystemService },
@@ -177,4 +179,4 @@ AgentService.ctorParameters = () => [
177
179
  { type: NotificationsService },
178
180
  { type: AppCacheService }
179
181
  ];
180
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrLWNvcmUvYWdlbnQvYWdlbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsZUFBZSxFQUFFLGNBQWMsRUFBYSxNQUFNLEVBQUUsb0JBQW9CLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDM0osT0FBTyxFQUFDLGVBQWUsRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFFLGFBQWEsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM5RSxPQUFPLEVBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUtwRCxNQUFNLENBQU4sSUFBWSxlQUdYO0FBSEQsV0FBWSxlQUFlO0lBQ3pCLDhDQUEyQixDQUFBO0lBQzNCLGdEQUE2QixDQUFBO0FBQy9CLENBQUMsRUFIVyxlQUFlLEtBQWYsZUFBZSxRQUcxQjtBQVdELE1BQU0sT0FBTyxZQUFZO0lBZ0J2QixZQUNVLE1BQWMsRUFDZCxJQUFnQixFQUNoQixhQUE0QixFQUM1QixjQUE4QixFQUM5QixXQUF3QixFQUN4QixTQUEyQixFQUMzQixhQUFtQyxFQUNuQyxlQUFnQztRQVBoQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0Isa0JBQWEs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QUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxDQUFDLElBQUk7WUFDNUMsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUU7U0FDckIsQ0FBQztRQUNGLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxHQUFHLEdBQUcsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDMUcsQ0FBQztJQUVPLE9BQU87UUFDYixPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO0lBQ2hDLENBQUM7OztZQW5MRixVQUFVOzs7WUFwQnlDLE1BQU07WUFGbEQsVUFBVTtZQUVnRSxhQUFhO1lBQXRFLGNBQWM7WUFBNEUsV0FBVztZQUE3QixnQkFBZ0I7WUFBckQsb0JBQW9CO1lBQXhFLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0h0dHBDbGllbnR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtBcHBDYWNoZVNlcnZpY2UsIEJhY2tlbmRTZXJ2aWNlLCBEbXNPYmplY3QsIExvZ2dlciwgTm90aWZpY2F0aW9uc1NlcnZpY2UsIFN5c3RlbVNlcnZpY2UsIFRyYW5zbGF0ZVNlcnZpY2UsIFVzZXJTZXJ2aWNlLCBVdGlsc30gZnJvbSAnQGVvLXNkay9jb3JlJztcclxuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGZvcmtKb2luLCBPYnNlcnZhYmxlLCBvZiwgUmVwbGF5U3ViamVjdH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7Y2F0Y2hFcnJvciwgbWFwLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHtUcmVlTm9kZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrL3RyZWUvdHJlZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge0xvY2tTZXR0aW5nc30gZnJvbSAnLi8uLi8uLi9lby1jbGllbnQvc2V0dGluZ3MvYWdlbnQtbG9jay1zZXR0aW5ncy5lbnVtJztcclxuaW1wb3J0IHtDdXN0b21FbWFpbH0gZnJvbSAnLi9hZ2VudC5pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGVudW0gYWdlbnRDb25maWdLZXlzIHtcclxuICBBVVRPQ09OTkVDVCA9ICdhdXRvY29ubmVjdCcsXHJcbiAgTE9DS1NFVFRJTkdTID0gJ2xvY2tzZXR0aW5ncydcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEV4dGVuZGVkQ29uZmlnIHtcclxuICBhZ2VudDoge1xyXG4gICAgW2FnZW50Q29uZmlnS2V5cy5BVVRPQ09OTkVDVF0/OiBib29sZWFuO1xyXG4gICAgW2FnZW50Q29uZmlnS2V5cy5MT0NLU0VUVElOR1NdPzogTG9ja1NldHRpbmdzXHJcbiAgfVxyXG59XHJcbmV4cG9ydCB0eXBlIEFnZW50Q29ubmVjdGlvbkNvbmZpZyA9IEV4dGVuZGVkQ29uZmlnWydhZ2VudCddXHJcblxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQWdlbnRTZXJ2aWNlIHtcclxuXHJcbiAgcHJpdmF0ZSBFTkFJT19QUk9UT0NPTCA9ICd5dXV2aXM6Ly8nO1xyXG5cclxuICBhZ2VudEF2YWlsYWJpbGl0eSA9IHtcclxuICAgIENPTk5FQ1RFRDogJ2VvLmFnZW50LmF2YWlsYWJpbGl0eS5jb25uZWN0ZWQnLFxyXG4gICAgQVZBSUxBQkxFOiAnZW8uYWdlbnQuYXZhaWxhYmlsaXR5LmF2YWlsYWJsZScsXHJcbiAgICBVTkFWQUlMQUJMRTogJ2VvLmFnZW50LmF2YWlsYWJpbGl0eS51bmF2YWlsYWJsZSdcclxuICB9O1xyXG5cclxuICBwcml2YXRlIF9pc0Nvbm5lY3RlZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgaXNDb25uZWN0ZWRTb3VyY2UgPSBuZXcgUmVwbGF5U3ViamVjdDxib29sZWFuPigxKTtcclxuICBwdWJsaWMgaXNDb25uZWN0ZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5pc0Nvbm5lY3RlZFNvdXJjZS5hc09ic2VydmFibGUoKTtcclxuICBwcml2YXRlIGFnZW50Q29uZmlnID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBZ2VudENvbm5lY3Rpb25Db25maWc+KG51bGwpO1xyXG4gIHB1YmxpYyBhZ2VudENvbmZpZyQ6IE9ic2VydmFibGU8QWdlbnRDb25uZWN0aW9uQ29uZmlnPiA9IHRoaXMuYWdlbnRDb25maWcuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBsb2dnZXI6IExvZ2dlcixcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgc3lzdGVtU2VydmljZTogU3lzdGVtU2VydmljZSxcclxuICAgIHByaXZhdGUgYmFja2VuZFNlcnZpY2U6IEJhY2tlbmRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgbm90aWZpY2F0aW9uczogTm90aWZpY2F0aW9uc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFwcENhY2hlU2VydmljZTogQXBwQ2FjaGVTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLmdldEFnZW50Q29ubmVjdGlvblN0YXR1cygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRBZ2VudENvbm5lY3Rpb25TdGF0dXMoKSB7XHJcbiAgICBmb3JrSm9pbihbdGhpcy5hcHBDYWNoZVNlcnZpY2UuZ2V0SXRlbSgnZW8uYWdlbnQuY29ubmVjdGVkJyksIHRoaXMuZ2V0QWdlbnRDb25maWcoKV0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHRhcCgoW3N0b3JhZ2UsIGNvbmZpZ10pID0+IHRoaXMuaXNDb25uZWN0ZWQgPSAoY29uZmlnICYmIGNvbmZpZy5oYXNPd25Qcm9wZXJ0eShhZ2VudENvbmZpZ0tleXMuQVVUT0NPTk5FQ1QpID8gY29uZmlnLmF1dG9jb25uZWN0IDogc3RvcmFnZSAhPT0gbnVsbCA/IHN0b3JhZ2UgOiBudWxsKSlcclxuICAgICAgKS5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIGdldEFnZW50Q29uZmlnKCk6IE9ic2VydmFibGU8QWdlbnRDb25uZWN0aW9uQ29uZmlnPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBZ2VudENvbm5lY3Rpb25Db25maWc+KCdhc3NldHMvX2RlZmF1bHQvY29uZmlnL2V4dGVuZC5qc29uJykucGlwZShcclxuICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZihudWxsKSksXHJcbiAgICAgIHRhcCgoY29uZmlnOiBFeHRlbmRlZENvbmZpZykgPT4gdGhpcy5hZ2VudENvbmZpZy5uZXh0KHsuLi5jb25maWc/LmFnZW50fSkpLFxyXG4gICAgICBtYXAoKGNvbmZpZzogRXh0ZW5kZWRDb25maWcpID0+IGNvbmZpZz8uYWdlbnQpKVxyXG4gIH1cclxuXHJcbiAgc2V0IGlzQ29ubmVjdGVkKGlzQ29ubmVjdGVkOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9pc0Nvbm5lY3RlZCA9IGlzQ29ubmVjdGVkO1xyXG4gICAgdGhpcy5pc0Nvbm5lY3RlZFNvdXJjZS5uZXh0KGlzQ29ubmVjdGVkKTtcclxuICAgIHRoaXMuYXBwQ2FjaGVTZXJ2aWNlLnNldEl0ZW0oJ2VvLmFnZW50LmNvbm5lY3RlZCcsIGlzQ29ubmVjdGVkKTtcclxuICB9XHJcblxyXG4gIGdldCBpc0Nvbm5lY3RlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9pc0Nvbm5lY3RlZDtcclxuICB9XHJcblxyXG4gIHNldEFnZW50U3RhdHVzKGNvbm5lY3RhZ2VudCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgaWYgKHR5cGVvZiBjb25uZWN0YWdlbnQgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgIHRoaXMuaXNDb25uZWN0ZWQgPSBjb25uZWN0YWdlbnQ7XHJcbiAgICAgIHJldHVybiBvZih0cnVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBvZihmYWxzZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGRzIGEgbG9jYXRpb24gZW50cnkgdG8gdGhlIGFnZW50IHNlcnZpY2VzIGxvY2F0aW9uIGhpc3RvcnkuXHJcbiAgICogQHBhcmFtIGNvbnRleHRGb2xkZXIgVGhlIGxvY2F0aW9ucyBjb250ZXh0IGZvbGRlclxyXG4gICAqIEBwYXJhbSB0cmVlTm9kZSBOb2RlIGZyb20gdGhlIGNvbnRleHQgZm9sZGVycyBzdHJ1Y3R1cmUgdHJlZVxyXG4gICAqL1xyXG4gIHVwZGF0ZVVzZXJMb2NhdGlvbihjb250ZXh0Rm9sZGVyOiBEbXNPYmplY3QsIHRyZWVOb2RlPzogVHJlZU5vZGUpIHtcclxuXHJcbiAgICBpZiAodHJlZU5vZGUgJiYgdHJlZU5vZGUuZGF0YSAmJiB0cmVlTm9kZS5kYXRhLnR5cGUpIHtcclxuXHJcbiAgICAgIC8vIGlmIGEgZ2l2ZW4gdHJlZU5vZGUgY29udGFpbnMgYSB0YXJnZXQgdHlwZSwgd2UnbGwgb25seSBhZGQgYSB1c2VyIGxvY2F0aW9uXHJcbiAgICAgIC8vIHdoZW4gdGhlIHR5cGUgaXMgYWJsZSB0byBhY2NlcHQgY29udGVudCAob3RoZXJ3aXNlIHVzZWxlc3MgZm9yIG9mZmljZSBBZGRJbnMpXHJcbiAgICAgIGNvbnN0IHRhcmdldFR5cGUgPSB0aGlzLnN5c3RlbVNlcnZpY2UuZ2V0T2JqZWN0VHlwZSh0cmVlTm9kZS5kYXRhLnR5cGUpO1xyXG4gICAgICBpZiAodGFyZ2V0VHlwZS5tYXhGaWxlcyA9PT0gMCkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGxldCB0aXRsZSA9IGNvbnRleHRGb2xkZXIudGl0bGU7XHJcbiAgICBpZiAodHJlZU5vZGUpIHtcclxuICAgICAgdGl0bGUgKz0gJyA+ICcgKyB0cmVlTm9kZS5wYXRoLmpvaW4oJyA+ICcpO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBpZCA9IGNvbnRleHRGb2xkZXIuaWQ7XHJcbiAgICBpZiAodHJlZU5vZGUpIHtcclxuICAgICAgaWQgKz0gJ18nICsgdHJlZU5vZGUuZGF0YS5rZXk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5iYWNrZW5kU2VydmljZS5wb3N0KCcvbG9jYXRpb25zJywge1xyXG4gICAgICBpZDogaWQsXHJcbiAgICAgIHRpdGxlOiB0aXRsZSxcclxuICAgICAgdHlwZTogY29udGV4dEZvbGRlci50eXBlLm5hbWUsXHJcbiAgICAgIGNoaWxkVHlwZTogKHRyZWVOb2RlICYmIHRyZWVOb2RlLmRhdGEpID8gdHJlZU5vZGUuZGF0YS50eXBlIDogdW5kZWZpbmVkLFxyXG4gICAgICBkYXRhOiAodHJlZU5vZGUgJiYgdHJlZU5vZGUuZGF0YSkgPyB0cmVlTm9kZS5kYXRhLmRhdGEgOiB1bmRlZmluZWRcclxuICAgIH0sIHRoaXMuYmFja2VuZFNlcnZpY2UuZ2V0QWdlbnRCYXNlKCkpLnN1YnNjcmliZShyID0+IHtcclxuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYGFkZGVkIGxvY2F0aW9uICcke3RpdGxlfScgdG8gYWdlbnQgc2VydmljZWApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPcGVuIGEgZG9jdW1lbnQgdmlhIGFnZW50LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGRvY3VtZW50IEEgZG9jdW1lbnQgdG8gb3Blbi5cclxuICAgKiBAcGFyYW0gbG9jayBCb29sZWFuLCBpZiB0aGUgZG1zIGl0ZW0gc2hvdWxkIGJlIGxvY2tlZC5cclxuICAgKi9cclxuICBvcGVuRG9jdW1lbnQoZG9jdW1lbnQsIGxvY2spIHtcclxuICAgIGNvbnN0IGlkID0gZG9jdW1lbnQuaWQ7XHJcbiAgICBpZiAobG9jaykge1xyXG4gICAgICB0aGlzLmJhY2tlbmRTZXJ2aWNlLnB1dCgnL2Rtcy9sb2NrLycgKyBpZCkuc3Vic2NyaWJlKCk7XHJcbiAgICAgIGRvY3VtZW50LmxvY2sgPSB7XHJcbiAgICAgICAgYnk6IHtcclxuICAgICAgICAgIG1lOiB0cnVlLFxyXG4gICAgICAgICAgbmFtZTogdGhpcy51c2VyU2VydmljZS5nZXRDdXJyZW50VXNlcigpLm5hbWUsXHJcbiAgICAgICAgICBvdGhlcjogZmFsc2VcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKClcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIHRoaXMuc2VuZE1lc3NhZ2UoJ29wZW5Eb2N1bWVudCcsIGlkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERvd25sb2FkIGNvbnRlbnQgdmlhIGFnZW50LlxyXG4gICAqIE9uIGNvbXBsZXRpb24sIHRoZSBhZ2VudCB3aWxsIHZpc3VhbGl6ZSB0aGUgZG93bmxvYWRlZCBpdGVtcy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBkb2N1bWVudHMgQSBkb2N1bWVudCB0byBvcGVuLlxyXG4gICAqL1xyXG4gIGRvd25sb2FkQ29udGVudChkb2N1bWVudHMpIHtcclxuICAgIGxldCBkb2NzID0gZG9jdW1lbnRzLm1hcChkb2MgPT4ge1xyXG4gICAgICByZXR1cm4ge2lkOiBkb2MuaWQsIHRpdGxlOiBkb2MudGl0bGUsIHR5cGU6IGRvYy50eXBlLm5hbWUgfHwgJycsIHZlcnNpb246IGRvYy52ZXJzaW9ufTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZW5kTWVzc2FnZSgnZG93bmxvYWRDb250ZW50JywgZG9jcyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb3B5IGl0ZW1zIHRvIGNsaXBib2FyZC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBkb2N1bWVudHMgTGlzdCBvZiBkb2N1bWVudHMgd2l0aCBpZCwgdGl0bGUsIHR5cGUgYW5kIHJlbmRpdGlvbi5cclxuICAgKi9cclxuICBjb3B5VG9DbGlwYm9hcmQoZG9jdW1lbnRzKSB7XHJcbiAgICBpZiAoIWRvY3VtZW50cyB8fCBkb2N1bWVudHMubGVuZ3RoIDwgMSkge1xyXG4gICAgICB0aGlzLmxvZ2dlci5lcnJvcignQWdlbnQgY29weVRvQ2xpcGJvYXJkIGVycm9yOiBkb2N1bWVudHMgZG9lcyBub3QgY29udGFpbiBlbGVtZW50cycpO1xyXG4gICAgICByZXR1cm4gVXRpbHMudGhyb3cobnVsbCwgJ2RvY3VtZW50cyBkb2VzIG5vdCBjb250YWluIGVsZW1lbnRzJykuY2FsbCh0aGlzLCB7fSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbmRNZXNzYWdlKCdjb3B5VG9DbGlwYm9hcmQnLCBkb2N1bWVudHMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VuZCBpdGVtcyBhcyBlbWFpbC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBDdXN0b21FbWFpbCBjb250YWluIGF0dGFjaGVtbnRzIGFuZCBtZXNzYWdlLiBNZXNzYWdlIG15IGNvbnRhaW5zIGRldGFpbHMgYWJvdXQgdGhlIG1haWwuXHJcbiAgICovXHJcbiAgc2VuZEFzTWFpbCh7YXR0YWNobWVudHMsIG1lc3NhZ2V9OiBDdXN0b21FbWFpbCkge1xyXG4gICAgaWYgKCFhdHRhY2htZW50cz8ubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMubG9nZ2VyLmVycm9yKCdBZ2VudCBzZW5kQXNNYWlsIGVycm9yOiBkb2N1bWVudHMgYXJyYXkgZG9lcyBub3QgY29udGFpbiBlbGVtZW50cy4gQXR0YWNobWVudHMgY291bGQgbm90IGJlIGZvdW5kLicpO1xyXG4gICAgICB0aGlzLm5vdGlmaWNhdGlvbnMuZXJyb3IodGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uZG9jdW1lbnQub3Blbi5lcnJvci50aXRsZScpLCB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5kb2N1bWVudC5vcGVuLmVycm9yLm1lc3NhZ2UnKSk7XHJcbiAgICAgIHJldHVybiBVdGlscy50aHJvdyhudWxsLCAnZG9jdW1lbnRzIGFycmF5IGRvZXMgbm90IGNvbnRhaW4gZWxlbWVudHMnKS5jYWxsKHRoaXMsIHt9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VuZE1lc3NhZ2UoJ3NlbmRBc01haWwnLCB7YXR0YWNobWVudHMsIG1lc3NhZ2V9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNlbmRFeHRlcm5hbEFjdGlvbihleGVjdXRhYmxlLCBhcmdzKSB7XHJcbiAgICB0aGlzLnNlbmRNZXNzYWdlKCdleHRlcm5hbCcsIHtleGVjdXRhYmxlLCBhcmdzfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNlbmRNZXNzYWdlKGFjdGlvbiwgZGF0YSkge1xyXG4gICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgZGF0YTogZGF0YSxcclxuICAgICAgdXNlcjogdGhpcy51c2VyU2VydmljZS5nZXRDdXJyZW50VXNlcigpLm5hbWUsXHJcbiAgICAgIGhvc3Q6IHRoaXMuZ2V0SG9zdCgpXHJcbiAgICB9O1xyXG4gICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB0aGlzLkVOQUlPX1BST1RPQ09MICsgYWN0aW9uICsgJy8nICsgZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHBheWxvYWQpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0SG9zdCgpIHtcclxuICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24ub3JpZ2luO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
182
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrLWNvcmUvYWdlbnQvYWdlbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFDLGVBQWUsRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBYSxNQUFNLEVBQUUsb0JBQW9CLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDcEwsT0FBTyxFQUFDLGVBQWUsRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFFLGFBQWEsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM5RSxPQUFPLEVBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUtwRCxNQUFNLENBQU4sSUFBWSxlQUdYO0FBSEQsV0FBWSxlQUFlO0lBQ3pCLDhDQUEyQixDQUFBO0lBQzNCLGdEQUE2QixDQUFBO0FBQy9CLENBQUMsRUFIVyxlQUFlLEtBQWYsZUFBZSxRQUcxQjtBQVdELE1BQU0sT0FBTyxZQUFZO0lBZ0J2QixZQUM4QixVQUFzQixFQUMxQyxNQUFjLEVBQ2QsSUFBZ0IsRUFDaEIsYUFBNEIsRUFDNUIsY0FBOEIsRUFDOUIsV0FBd0IsRUFDeEIsU0FBMkIsRUFDM0IsYUFBbUMsRUFDbkMsZUFBZ0M7UUFSWixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQzFDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLG1CQUFjLEdBQWQsY0FBYyxDQUFn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SUFBSSxFQUFDLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRU8sV0FBVyxDQUFDLE1BQU0sRUFBRSxJQUFJO1FBQzlCLE1BQU0sT0FBTyxHQUFHO1lBQ2QsSUFBSSxFQUFFLElBQUk7WUFDVixJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxJQUFJO1lBQzVDLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFO1NBQ3JCLENBQUM7UUFDRixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sR0FBRyxHQUFHLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQzFHLENBQUM7SUFFTyxPQUFPO1FBQ2IsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztJQUNoQyxDQUFDOzs7WUFwTEYsVUFBVTs7O1lBcEI4QixVQUFVLHVCQXNDOUMsTUFBTSxTQUFDLFdBQVc7WUF0Q3NELE1BQU07WUFGM0UsVUFBVTtZQUV5RixhQUFhO1lBQS9GLGNBQWM7WUFBcUcsV0FBVztZQUE3QixnQkFBZ0I7WUFBckQsb0JBQW9CO1lBQWpHLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0h0dHBDbGllbnR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0FwcENhY2hlU2VydmljZSwgQmFja2VuZFNlcnZpY2UsIENvcmVDb25maWcsIENPUkVfQ09ORklHLCBEbXNPYmplY3QsIExvZ2dlciwgTm90aWZpY2F0aW9uc1NlcnZpY2UsIFN5c3RlbVNlcnZpY2UsIFRyYW5zbGF0ZVNlcnZpY2UsIFVzZXJTZXJ2aWNlLCBVdGlsc30gZnJvbSAnQGVvLXNkay9jb3JlJztcclxuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGZvcmtKb2luLCBPYnNlcnZhYmxlLCBvZiwgUmVwbGF5U3ViamVjdH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7Y2F0Y2hFcnJvciwgbWFwLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHtUcmVlTm9kZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrL3RyZWUvdHJlZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge0xvY2tTZXR0aW5nc30gZnJvbSAnLi8uLi8uLi9lby1jbGllbnQvc2V0dGluZ3MvYWdlbnQtbG9jay1zZXR0aW5ncy5lbnVtJztcclxuaW1wb3J0IHtDdXN0b21FbWFpbH0gZnJvbSAnLi9hZ2VudC5pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGVudW0gYWdlbnRDb25maWdLZXlzIHtcclxuICBBVVRPQ09OTkVDVCA9ICdhdXRvY29ubmVjdCcsXHJcbiAgTE9DS1NFVFRJTkdTID0gJ2xvY2tzZXR0aW5ncydcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEV4dGVuZGVkQ29uZmlnIHtcclxuICBhZ2VudDoge1xyXG4gICAgW2FnZW50Q29uZmlnS2V5cy5BVVRPQ09OTkVDVF0/OiBib29sZWFuO1xyXG4gICAgW2FnZW50Q29uZmlnS2V5cy5MT0NLU0VUVElOR1NdPzogTG9ja1NldHRpbmdzXHJcbiAgfVxyXG59XHJcbmV4cG9ydCB0eXBlIEFnZW50Q29ubmVjdGlvbkNvbmZpZyA9IEV4dGVuZGVkQ29uZmlnWydhZ2VudCddXHJcblxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQWdlbnRTZXJ2aWNlIHtcclxuXHJcbiAgcHJpdmF0ZSBFTkFJT19QUk9UT0NPTCA9ICd5dXV2aXM6Ly8nO1xyXG5cclxuICBhZ2VudEF2YWlsYWJpbGl0eSA9IHtcclxuICAgIENPTk5FQ1RFRDogJ2VvLmFnZW50LmF2YWlsYWJpbGl0eS5jb25uZWN0ZWQnLFxyXG4gICAgQVZBSUxBQkxFOiAnZW8uYWdlbnQuYXZhaWxhYmlsaXR5LmF2YWlsYWJsZScsXHJcbiAgICBVTkFWQUlMQUJMRTogJ2VvLmFnZW50LmF2YWlsYWJpbGl0eS51bmF2YWlsYWJsZSdcclxuICB9O1xyXG5cclxuICBwcml2YXRlIF9pc0Nvbm5lY3RlZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgaXNDb25uZWN0ZWRTb3VyY2UgPSBuZXcgUmVwbGF5U3ViamVjdDxib29sZWFuPigxKTtcclxuICBwdWJsaWMgaXNDb25uZWN0ZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5pc0Nvbm5lY3RlZFNvdXJjZS5hc09ic2VydmFibGUoKTtcclxuICBwcml2YXRlIGFnZW50Q29uZmlnID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBZ2VudENvbm5lY3Rpb25Db25maWc+KG51bGwpO1xyXG4gIHB1YmxpYyBhZ2VudENvbmZpZyQ6IE9ic2VydmFibGU8QWdlbnRDb25uZWN0aW9uQ29uZmlnPiA9IHRoaXMuYWdlbnRDb25maWcuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdChDT1JFX0NPTkZJRykgcHVibGljIGNvcmVDb25maWc6IENvcmVDb25maWcsXHJcbiAgICBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyLFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBzeXN0ZW1TZXJ2aWNlOiBTeXN0ZW1TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBiYWNrZW5kU2VydmljZTogQmFja2VuZFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcclxuICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBub3RpZmljYXRpb25zOiBOb3RpZmljYXRpb25zU2VydmljZSxcclxuICAgIHByaXZhdGUgYXBwQ2FjaGVTZXJ2aWNlOiBBcHBDYWNoZVNlcnZpY2UpIHtcclxuICAgIHRoaXMuZ2V0QWdlbnRDb25uZWN0aW9uU3RhdHVzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEFnZW50Q29ubmVjdGlvblN0YXR1cygpIHtcclxuICAgIGZvcmtKb2luKFt0aGlzLmFwcENhY2hlU2VydmljZS5nZXRJdGVtKCdlby5hZ2VudC5jb25uZWN0ZWQnKSwgdGhpcy5nZXRBZ2VudENvbmZpZygpXSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFwKChbc3RvcmFnZSwgY29uZmlnXSkgPT4gdGhpcy5pc0Nvbm5lY3RlZCA9IChjb25maWcgJiYgY29uZmlnLmhhc093blByb3BlcnR5KGFnZW50Q29uZmlnS2V5cy5BVVRPQ09OTkVDVCkgPyBjb25maWcuYXV0b2Nvbm5lY3QgOiBzdG9yYWdlICE9PSBudWxsID8gc3RvcmFnZSA6IG51bGwpKVxyXG4gICAgICApLnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWdlbnRDb25maWcoKTogT2JzZXJ2YWJsZTxBZ2VudENvbm5lY3Rpb25Db25maWc+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFnZW50Q29ubmVjdGlvbkNvbmZpZz4oJ2Fzc2V0cy9fZGVmYXVsdC9jb25maWcvZXh0ZW5kLmpzb24nLCB7d2l0aENyZWRlbnRpYWxzOiB0aGlzLmNvcmVDb25maWcud2l0aENyZWRlbnRpYWxzfSkucGlwZShcclxuICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZihudWxsKSksXHJcbiAgICAgIHRhcCgoY29uZmlnOiBFeHRlbmRlZENvbmZpZykgPT4gdGhpcy5hZ2VudENvbmZpZy5uZXh0KHsuLi5jb25maWc/LmFnZW50fSkpLFxyXG4gICAgICBtYXAoKGNvbmZpZzogRXh0ZW5kZWRDb25maWcpID0+IGNvbmZpZz8uYWdlbnQpKVxyXG4gIH1cclxuXHJcbiAgc2V0IGlzQ29ubmVjdGVkKGlzQ29ubmVjdGVkOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9pc0Nvbm5lY3RlZCA9IGlzQ29ubmVjdGVkO1xyXG4gICAgdGhpcy5pc0Nvbm5lY3RlZFNvdXJjZS5uZXh0KGlzQ29ubmVjdGVkKTtcclxuICAgIHRoaXMuYXBwQ2FjaGVTZXJ2aWNlLnNldEl0ZW0oJ2VvLmFnZW50LmNvbm5lY3RlZCcsIGlzQ29ubmVjdGVkKTtcclxuICB9XHJcblxyXG4gIGdldCBpc0Nvbm5lY3RlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9pc0Nvbm5lY3RlZDtcclxuICB9XHJcblxyXG4gIHNldEFnZW50U3RhdHVzKGNvbm5lY3RhZ2VudCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgaWYgKHR5cGVvZiBjb25uZWN0YWdlbnQgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgIHRoaXMuaXNDb25uZWN0ZWQgPSBjb25uZWN0YWdlbnQ7XHJcbiAgICAgIHJldHVybiBvZih0cnVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBvZihmYWxzZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGRzIGEgbG9jYXRpb24gZW50cnkgdG8gdGhlIGFnZW50IHNlcnZpY2VzIGxvY2F0aW9uIGhpc3RvcnkuXHJcbiAgICogQHBhcmFtIGNvbnRleHRGb2xkZXIgVGhlIGxvY2F0aW9ucyBjb250ZXh0IGZvbGRlclxyXG4gICAqIEBwYXJhbSB0cmVlTm9kZSBOb2RlIGZyb20gdGhlIGNvbnRleHQgZm9sZGVycyBzdHJ1Y3R1cmUgdHJlZVxyXG4gICAqL1xyXG4gIHVwZGF0ZVVzZXJMb2NhdGlvbihjb250ZXh0Rm9sZGVyOiBEbXNPYmplY3QsIHRyZWVOb2RlPzogVHJlZU5vZGUpIHtcclxuXHJcbiAgICBpZiAodHJlZU5vZGUgJiYgdHJlZU5vZGUuZGF0YSAmJiB0cmVlTm9kZS5kYXRhLnR5cGUpIHtcclxuXHJcbiAgICAgIC8vIGlmIGEgZ2l2ZW4gdHJlZU5vZGUgY29udGFpbnMgYSB0YXJnZXQgdHlwZSwgd2UnbGwgb25seSBhZGQgYSB1c2VyIGxvY2F0aW9uXHJcbiAgICAgIC8vIHdoZW4gdGhlIHR5cGUgaXMgYWJsZSB0byBhY2NlcHQgY29udGVudCAob3RoZXJ3aXNlIHVzZWxlc3MgZm9yIG9mZmljZSBBZGRJbnMpXHJcbiAgICAgIGNvbnN0IHRhcmdldFR5cGUgPSB0aGlzLnN5c3RlbVNlcnZpY2UuZ2V0T2JqZWN0VHlwZSh0cmVlTm9kZS5kYXRhLnR5cGUpO1xyXG4gICAgICBpZiAodGFyZ2V0VHlwZS5tYXhGaWxlcyA9PT0gMCkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGxldCB0aXRsZSA9IGNvbnRleHRGb2xkZXIudGl0bGU7XHJcbiAgICBpZiAodHJlZU5vZGUpIHtcclxuICAgICAgdGl0bGUgKz0gJyA+ICcgKyB0cmVlTm9kZS5wYXRoLmpvaW4oJyA+ICcpO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBpZCA9IGNvbnRleHRGb2xkZXIuaWQ7XHJcbiAgICBpZiAodHJlZU5vZGUpIHtcclxuICAgICAgaWQgKz0gJ18nICsgdHJlZU5vZGUuZGF0YS5rZXk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5iYWNrZW5kU2VydmljZS5wb3N0KCcvbG9jYXRpb25zJywge1xyXG4gICAgICBpZDogaWQsXHJcbiAgICAgIHRpdGxlOiB0aXRsZSxcclxuICAgICAgdHlwZTogY29udGV4dEZvbGRlci50eXBlLm5hbWUsXHJcbiAgICAgIGNoaWxkVHlwZTogKHRyZWVOb2RlICYmIHRyZWVOb2RlLmRhdGEpID8gdHJlZU5vZGUuZGF0YS50eXBlIDogdW5kZWZpbmVkLFxyXG4gICAgICBkYXRhOiAodHJlZU5vZGUgJiYgdHJlZU5vZGUuZGF0YSkgPyB0cmVlTm9kZS5kYXRhLmRhdGEgOiB1bmRlZmluZWRcclxuICAgIH0sIHRoaXMuYmFja2VuZFNlcnZpY2UuZ2V0QWdlbnRCYXNlKCkpLnN1YnNjcmliZShyID0+IHtcclxuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYGFkZGVkIGxvY2F0aW9uICcke3RpdGxlfScgdG8gYWdlbnQgc2VydmljZWApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPcGVuIGEgZG9jdW1lbnQgdmlhIGFnZW50LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGRvY3VtZW50IEEgZG9jdW1lbnQgdG8gb3Blbi5cclxuICAgKiBAcGFyYW0gbG9jayBCb29sZWFuLCBpZiB0aGUgZG1zIGl0ZW0gc2hvdWxkIGJlIGxvY2tlZC5cclxuICAgKi9cclxuICBvcGVuRG9jdW1lbnQoZG9jdW1lbnQsIGxvY2spIHtcclxuICAgIGNvbnN0IGlkID0gZG9jdW1lbnQuaWQ7XHJcbiAgICBpZiAobG9jaykge1xyXG4gICAgICB0aGlzLmJhY2tlbmRTZXJ2aWNlLnB1dCgnL2Rtcy9sb2NrLycgKyBpZCkuc3Vic2NyaWJlKCk7XHJcbiAgICAgIGRvY3VtZW50LmxvY2sgPSB7XHJcbiAgICAgICAgYnk6IHtcclxuICAgICAgICAgIG1lOiB0cnVlLFxyXG4gICAgICAgICAgbmFtZTogdGhpcy51c2VyU2VydmljZS5nZXRDdXJyZW50VXNlcigpLm5hbWUsXHJcbiAgICAgICAgICBvdGhlcjogZmFsc2VcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKClcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIHRoaXMuc2VuZE1lc3NhZ2UoJ29wZW5Eb2N1bWVudCcsIGlkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERvd25sb2FkIGNvbnRlbnQgdmlhIGFnZW50LlxyXG4gICAqIE9uIGNvbXBsZXRpb24sIHRoZSBhZ2VudCB3aWxsIHZpc3VhbGl6ZSB0aGUgZG93bmxvYWRlZCBpdGVtcy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBkb2N1bWVudHMgQSBkb2N1bWVudCB0byBvcGVuLlxyXG4gICAqL1xyXG4gIGRvd25sb2FkQ29udGVudChkb2N1bWVudHMpIHtcclxuICAgIGxldCBkb2NzID0gZG9jdW1lbnRzLm1hcChkb2MgPT4ge1xyXG4gICAgICByZXR1cm4ge2lkOiBkb2MuaWQsIHRpdGxlOiBkb2MudGl0bGUsIHR5cGU6IGRvYy50eXBlLm5hbWUgfHwgJycsIHZlcnNpb246IGRvYy52ZXJzaW9ufTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZW5kTWVzc2FnZSgnZG93bmxvYWRDb250ZW50JywgZG9jcyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb3B5IGl0ZW1zIHRvIGNsaXBib2FyZC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBkb2N1bWVudHMgTGlzdCBvZiBkb2N1bWVudHMgd2l0aCBpZCwgdGl0bGUsIHR5cGUgYW5kIHJlbmRpdGlvbi5cclxuICAgKi9cclxuICBjb3B5VG9DbGlwYm9hcmQoZG9jdW1lbnRzKSB7XHJcbiAgICBpZiAoIWRvY3VtZW50cyB8fCBkb2N1bWVudHMubGVuZ3RoIDwgMSkge1xyXG4gICAgICB0aGlzLmxvZ2dlci5lcnJvcignQWdlbnQgY29weVRvQ2xpcGJvYXJkIGVycm9yOiBkb2N1bWVudHMgZG9lcyBub3QgY29udGFpbiBlbGVtZW50cycpO1xyXG4gICAgICByZXR1cm4gVXRpbHMudGhyb3cobnVsbCwgJ2RvY3VtZW50cyBkb2VzIG5vdCBjb250YWluIGVsZW1lbnRzJykuY2FsbCh0aGlzLCB7fSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbmRNZXNzYWdlKCdjb3B5VG9DbGlwYm9hcmQnLCBkb2N1bWVudHMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VuZCBpdGVtcyBhcyBlbWFpbC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBDdXN0b21FbWFpbCBjb250YWluIGF0dGFjaGVtbnRzIGFuZCBtZXNzYWdlLiBNZXNzYWdlIG15IGNvbnRhaW5zIGRldGFpbHMgYWJvdXQgdGhlIG1haWwuXHJcbiAgICovXHJcbiAgc2VuZEFzTWFpbCh7YXR0YWNobWVudHMsIG1lc3NhZ2V9OiBDdXN0b21FbWFpbCkge1xyXG4gICAgaWYgKCFhdHRhY2htZW50cz8ubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMubG9nZ2VyLmVycm9yKCdBZ2VudCBzZW5kQXNNYWlsIGVycm9yOiBkb2N1bWVudHMgYXJyYXkgZG9lcyBub3QgY29udGFpbiBlbGVtZW50cy4gQXR0YWNobWVudHMgY291bGQgbm90IGJlIGZvdW5kLicpO1xyXG4gICAgICB0aGlzLm5vdGlmaWNhdGlvbnMuZXJyb3IodGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uZG9jdW1lbnQub3Blbi5lcnJvci50aXRsZScpLCB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5kb2N1bWVudC5vcGVuLmVycm9yLm1lc3NhZ2UnKSk7XHJcbiAgICAgIHJldHVybiBVdGlscy50aHJvdyhudWxsLCAnZG9jdW1lbnRzIGFycmF5IGRvZXMgbm90IGNvbnRhaW4gZWxlbWVudHMnKS5jYWxsKHRoaXMsIHt9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VuZE1lc3NhZ2UoJ3NlbmRBc01haWwnLCB7YXR0YWNobWVudHMsIG1lc3NhZ2V9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNlbmRFeHRlcm5hbEFjdGlvbihleGVjdXRhYmxlLCBhcmdzKSB7XHJcbiAgICB0aGlzLnNlbmRNZXNzYWdlKCdleHRlcm5hbCcsIHtleGVjdXRhYmxlLCBhcmdzfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNlbmRNZXNzYWdlKGFjdGlvbiwgZGF0YSkge1xyXG4gICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgZGF0YTogZGF0YSxcclxuICAgICAgdXNlcjogdGhpcy51c2VyU2VydmljZS5nZXRDdXJyZW50VXNlcigpLm5hbWUsXHJcbiAgICAgIGhvc3Q6IHRoaXMuZ2V0SG9zdCgpXHJcbiAgICB9O1xyXG4gICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB0aGlzLkVOQUlPX1BST1RPQ09MICsgYWN0aW9uICsgJy8nICsgZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHBheWxvYWQpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0SG9zdCgpIHtcclxuICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24ub3JpZ2luO1xyXG4gIH1cclxuXHJcbn1cclxuIl19