@eo-sdk/client 10.7.0-rc.2 → 10.7.0-rc.4

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 (92) hide show
  1. package/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.d.ts +3 -2
  2. package/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.d.ts.map +1 -1
  3. package/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.d.ts +59 -1
  4. package/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.d.ts.map +1 -1
  5. package/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-setup/count-objects-setup.component.d.ts +1 -0
  6. package/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-setup/count-objects-setup.component.d.ts.map +1 -1
  7. package/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-widget.component.d.ts +6 -1
  8. package/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-widget.component.d.ts.map +1 -1
  9. package/app/eo-client/dashboard/widgets/count-objects-widget/count-objects.model.d.ts +4 -0
  10. package/app/eo-client/dashboard/widgets/count-objects-widget/count-objects.model.d.ts.map +1 -1
  11. package/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-widget.component.d.ts.map +1 -1
  12. package/app/eo-client/login/login.component.d.ts +1 -0
  13. package/app/eo-client/login/login.component.d.ts.map +1 -1
  14. package/app/eo-client/process-state/process-state.component.d.ts +1 -0
  15. package/app/eo-client/process-state/process-state.component.d.ts.map +1 -1
  16. package/app/eo-framework/app-shell/app-bar/app-bar.component.d.ts +1 -2
  17. package/app/eo-framework/app-shell/app-bar/app-bar.component.d.ts.map +1 -1
  18. package/app/eo-framework/app-shell/app-bar/user-avatar-overlay/user-avatar-overlay.component.d.ts +18 -0
  19. package/app/eo-framework/app-shell/app-bar/user-avatar-overlay/user-avatar-overlay.component.d.ts.map +1 -0
  20. package/app/eo-framework/app-shell/app-shell.module.d.ts +17 -16
  21. package/app/eo-framework/app-shell/app-shell.module.d.ts.map +1 -1
  22. package/app/eo-framework/form-elements/datetime-range/datetime-range.component.d.ts +2 -1
  23. package/app/eo-framework/form-elements/datetime-range/datetime-range.component.d.ts.map +1 -1
  24. package/app/eo-framework/form-elements/string/string.component.d.ts.map +1 -1
  25. package/app/eo-framework/media/media.component.d.ts.map +1 -1
  26. package/app/eo-framework/object-details/object-details.component.d.ts.map +1 -1
  27. package/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.d.ts +1 -1
  28. package/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.d.ts.map +1 -1
  29. package/app/eo-framework/object-form/object-form-helper.service.d.ts.map +1 -1
  30. package/app/eo-framework/process/details/process-details.component.d.ts.map +1 -1
  31. package/app/eo-framework/quick-search/quick-search/quick-search.component.d.ts.map +1 -1
  32. package/app/eo-framework/result-list/result-list.component.d.ts +1 -0
  33. package/app/eo-framework/result-list/result-list.component.d.ts.map +1 -1
  34. package/app/eo-framework/ui/overlay/overlay.component.d.ts +11 -7
  35. package/app/eo-framework/ui/overlay/overlay.component.d.ts.map +1 -1
  36. package/app/eo-framework/upload-overlay/upload-overlay.component.d.ts.map +1 -1
  37. package/assets/_default/i18n/de.json +12 -3
  38. package/assets/_default/i18n/en.json +12 -3
  39. package/esm2020/app/eo-client/about-state/about-state.component.mjs +3 -3
  40. package/esm2020/app/eo-client/dashboard/dashboard.component.mjs +4 -4
  41. package/esm2020/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.mjs +71 -45
  42. package/esm2020/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.mjs +43 -10
  43. package/esm2020/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-setup/count-objects-setup.component.mjs +17 -4
  44. package/esm2020/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-widget.component.mjs +38 -6
  45. package/esm2020/app/eo-client/dashboard/widgets/count-objects-widget/count-objects.model.mjs +1 -1
  46. package/esm2020/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-setup/hitlist-setup.component.mjs +3 -3
  47. package/esm2020/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-widget.component.mjs +36 -25
  48. package/esm2020/app/eo-client/favorite-state/favorite-state.component.mjs +1 -1
  49. package/esm2020/app/eo-client/inbox-state/inbox-state/inbox-state.component.mjs +2 -2
  50. package/esm2020/app/eo-client/login/login.component.mjs +13 -6
  51. package/esm2020/app/eo-client/notifications-state/notifications-state.component.mjs +1 -1
  52. package/esm2020/app/eo-client/prepare-state/prepare-state/prepare-state.component.mjs +1 -1
  53. package/esm2020/app/eo-client/process-state/process-state.component.mjs +22 -15
  54. package/esm2020/app/eo-client/recyclebin-state/recyclebin-state.component.mjs +1 -1
  55. package/esm2020/app/eo-client/stored-queries-state/stored-queries-state.component.mjs +1 -1
  56. package/esm2020/app/eo-client/version-state/version-state.component.mjs +1 -1
  57. package/esm2020/app/eo-framework/actions/actions/signature-action/sequence-list/sequence-list.component.mjs +4 -4
  58. package/esm2020/app/eo-framework/app-shell/app-bar/app-bar.component.mjs +10 -19
  59. package/esm2020/app/eo-framework/app-shell/app-bar/app-search/app-search.component.mjs +4 -4
  60. package/esm2020/app/eo-framework/app-shell/app-bar/user-avatar-overlay/user-avatar-overlay.component.mjs +42 -0
  61. package/esm2020/app/eo-framework/app-shell/app-shell.module.mjs +5 -2
  62. package/esm2020/app/eo-framework/form-elements/datetime-range/datetime-range.component.mjs +23 -8
  63. package/esm2020/app/eo-framework/form-elements/string/string.component.mjs +7 -3
  64. package/esm2020/app/eo-framework/grid/extensions/custom-sort/custom-sort.component.mjs +2 -2
  65. package/esm2020/app/eo-framework/grid/extensions/filter/custom/custom-filter.component.mjs +2 -2
  66. package/esm2020/app/eo-framework/media/media.component.mjs +8 -2
  67. package/esm2020/app/eo-framework/object-details/object-details.component.mjs +10 -4
  68. package/esm2020/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.mjs +2 -2
  69. package/esm2020/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.mjs +5 -4
  70. package/esm2020/app/eo-framework/object-form/object-form-helper.service.mjs +11 -2
  71. package/esm2020/app/eo-framework/prepare-details/prepare-details.component.mjs +1 -1
  72. package/esm2020/app/eo-framework/process/details/process-details.component.mjs +1 -2
  73. package/esm2020/app/eo-framework/quick-search/quick-search/quick-search.component.mjs +3 -1
  74. package/esm2020/app/eo-framework/result-list/result-list.component.mjs +31 -2
  75. package/esm2020/app/eo-framework/ui/overlay/overlay.component.mjs +38 -18
  76. package/esm2020/app/eo-framework/ui/signature-tab/signature-tab.component.mjs +3 -3
  77. package/esm2020/app/eo-framework/upload-overlay/upload-overlay.component.mjs +4 -2
  78. package/esm2020/projects/eo-sdk/core/lib/service/auth/auth.service.mjs +3 -4
  79. package/esm2020/projects/eo-sdk/core/lib/service/auth/gateway-info.interface.mjs +1 -1
  80. package/esm2020/projects/eo-sdk/core/lib/service/bpm/bpm.service.mjs +6 -6
  81. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs +6 -8
  82. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs.map +1 -1
  83. package/fesm2015/eo-sdk-client.mjs +565 -328
  84. package/fesm2015/eo-sdk-client.mjs.map +1 -1
  85. package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs +6 -8
  86. package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs.map +1 -1
  87. package/fesm2020/eo-sdk-client.mjs +561 -322
  88. package/fesm2020/eo-sdk-client.mjs.map +1 -1
  89. package/package.json +3 -3
  90. package/projects/eo-sdk/core/lib/service/auth/auth.service.d.ts.map +1 -1
  91. package/projects/eo-sdk/core/lib/service/auth/gateway-info.interface.d.ts +0 -4
  92. package/projects/eo-sdk/core/lib/service/auth/gateway-info.interface.d.ts.map +1 -1
@@ -51,13 +51,27 @@ let HitlistWidgetComponent = class HitlistWidgetComponent {
51
51
  this.refreshingRequest = true;
52
52
  const queryName = this._query.name;
53
53
  delete this._query.name;
54
- this._query.fields = ['type', 'id', this._widgetConfig?.formValue?.firstLabel, this._widgetConfig?.formValue?.secondLabel, this._widgetConfig?.formValue?.thirdLabel];
54
+ this._query.fields = ['type', 'id'];
55
+ if (this._widgetConfig?.formValue?.firstLabel) {
56
+ this._query.fields.push(this._widgetConfig?.formValue?.firstLabel);
57
+ }
58
+ if (this._widgetConfig?.formValue?.secondLabel) {
59
+ this._query.fields.push(this._widgetConfig?.formValue?.secondLabel);
60
+ }
61
+ if (this._widgetConfig?.formValue?.thirdLabel) {
62
+ this._query.fields.push(this._widgetConfig?.formValue?.thirdLabel);
63
+ }
64
+ if (this._query.fields.length === 2) {
65
+ this.hitlistResult = null;
66
+ this.refreshingRequest = false;
67
+ return;
68
+ }
55
69
  if (this._widgetConfig?.formValue.sortField) {
56
70
  if (this._widgetConfig?.formValue.sortRevert) {
57
- this._query.addSortOption(this._widgetConfig?.formValue.sortField, 'desc');
71
+ this._query.addSortOption(this._widgetConfig?.formValue.sortField, 'asc');
58
72
  }
59
73
  else {
60
- this._query.addSortOption(this._widgetConfig?.formValue.sortField, 'asc');
74
+ this._query.addSortOption(this._widgetConfig?.formValue.sortField, 'desc');
61
75
  }
62
76
  }
63
77
  this._query = this.searchService.buildQuery(this._query);
@@ -68,32 +82,29 @@ let HitlistWidgetComponent = class HitlistWidgetComponent {
68
82
  return result.hits.hits.map(hit => {
69
83
  for (let i = 0; i < propType.length; i++) {
70
84
  let formField = i === 0 ? this._widgetConfig?.formValue?.firstLabel : i === 1 ? this._widgetConfig?.formValue?.secondLabel : this._widgetConfig?.formValue?.thirdLabel;
71
- switch (propType[i]) {
72
- case 'DATETIME':
73
- let datePipe = new LocaleDatePipe(this.translate);
74
- let format = hit._source[formField].includes('T') ? '' : 'eoShortDate';
75
- hit._source[formField] = datePipe.transform(hit._source[formField], format);
76
- break;
77
- case 'NUMBER':
78
- let numberPipe = new LocaleNumberPipe(this.translate);
79
- if (hit._source[formField].toString().includes('.')) {
80
- hit._source[formField] = numberPipe.numberToString(hit._source[formField]);
81
- }
82
- break;
83
- case 'BOOLEAN':
84
- if (hit._source[formField] !== undefined) {
85
+ if (hit._source[formField] !== undefined) {
86
+ switch (propType[i]) {
87
+ case 'DATETIME':
88
+ let datePipe = new LocaleDatePipe(this.translate);
89
+ let format = hit._source[formField].includes('T') ? '' : 'eoShortDate';
90
+ hit._source[formField] = datePipe.transform(hit._source[formField], format);
91
+ break;
92
+ case 'NUMBER':
93
+ let numberPipe = new LocaleNumberPipe(this.translate);
94
+ if (hit._source[formField].toString().includes('.')) {
95
+ hit._source[formField] = numberPipe.numberToString(hit._source[formField]);
96
+ }
97
+ break;
98
+ case 'BOOLEAN':
85
99
  hit._source[formField] = hit._source[formField] ? '\u2611' : '\u2610';
86
- }
87
- else {
88
- hit._source[formField] = '';
89
- }
90
- break;
100
+ break;
101
+ }
91
102
  }
92
103
  }
93
104
  return {
94
105
  'firstLabel': hit._source[this._widgetConfig?.formValue?.firstLabel],
95
- 'secondLabel': hit._source[this._widgetConfig?.formValue?.secondLabel],
96
- 'thirdLabel': hit._source[this._widgetConfig?.formValue?.thirdLabel],
106
+ 'secondLabel': hit?._source[this._widgetConfig?.formValue?.secondLabel],
107
+ 'thirdLabel': hit?._source[this._widgetConfig?.formValue?.thirdLabel],
97
108
  'type': this.systemService.getObjectType(hit._source.type),
98
109
  'id': hit._source.id
99
110
  };
@@ -150,4 +161,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
150
161
  }], widgetConfig: [{
151
162
  type: Input
152
163
  }] } });
153
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0bGlzdC13aWRnZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvZGFzaGJvYXJkL3dpZGdldHMvaGl0bGlzdC13aWRnZXQvaGl0bGlzdC13aWRnZXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvZGFzaGJvYXJkL3dpZGdldHMvaGl0bGlzdC13aWRnZXQvaGl0bGlzdC13aWRnZXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE9BQU8sRUFBaUcsS0FBSyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBRW5JLE9BQU8sRUFBQyxLQUFLLEVBQUUsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRWhDLE9BQU8sRUFBQyxZQUFZLEVBQUUsY0FBYyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDbkUsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25DLE9BQU8sRUFBQyxjQUFjLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7OztBQVF4RSxJQUFNLHNCQUFzQixHQUE1QixNQUFNLHNCQUFzQjtJQVNqQyxZQUNVLE1BQWMsRUFDZCxhQUE0QixFQUM1QixnQkFBa0MsRUFDbEMsYUFBNEIsRUFDNUIsb0JBQTBDLEVBQzFDLFNBQTJCO1FBTDNCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsY0FBUyxHQUFULFNBQVMs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Q0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6RSxDQUFDOzttSEExSVUsc0JBQXNCO3VHQUF0QixzQkFBc0IseUhDakJuQywyMkRBcUNBO0FEcEJhLHNCQUFzQjtJQU5sQyxZQUFZLEVBQUU7R0FNRixzQkFBc0IsQ0EySWxDO1NBM0lZLHNCQUFzQjsyRkFBdEIsc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLG1CQUFtQjtzUEFXcEIsUUFBUTtzQkFBaEIsS0FBSztnQkFXTyxZQUFZO3NCQUF4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SVdpZGdldENvbXBvbmVudH0gZnJvbSAnQHl1dXZpcy93aWRnZXQtZ3JpZCc7XG5pbXBvcnQge0lIaXRsaXN0fSBmcm9tICcuL0lIaXRsaXN0JztcbmltcG9ydCB7U2VhcmNoUXVlcnksIFNlYXJjaFNlcnZpY2UsIFN0b3JlZFF1ZXJpZXNTZXJ2aWNlLCBTdG9yZWRRdWVyeSwgU3lzdGVtU2VydmljZSwgVHJhbnNsYXRlU2VydmljZSwgVXRpbHN9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge0FwcFNlYXJjaFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3NlYXJjaC9hcHAtc2VhcmNoLnNlcnZpY2UnO1xuaW1wb3J0IHtFTVBUWSwgbWFwfSBmcm9tICdyeGpzJztcbmltcG9ydCB7TmF2aWdhdGlvbkV4dHJhcywgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHt0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7TG9jYWxlRGF0ZVBpcGUsIExvY2FsZU51bWJlclBpcGV9IGZyb20gJy4uLy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlJztcblxuQFVudGlsRGVzdHJveSgpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1oaXRsaXN0LXdpZGdldCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9oaXRsaXN0LXdpZGdldC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2hpdGxpc3Qtd2lkZ2V0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgSGl0bGlzdFdpZGdldENvbXBvbmVudCBpbXBsZW1lbnRzIElXaWRnZXRDb21wb25lbnQge1xuXG4gIGhpdGxpc3RSZXN1bHQ6IFtdO1xuICBwcml2YXRlIF9xdWVyeTogU2VhcmNoUXVlcnk7XG4gIHJlZnJlc2hpbmdSZXF1ZXN0OiBib29sZWFuO1xuICBwcml2YXRlIF93aWRnZXRDb25maWc6IElIaXRsaXN0O1xuICBzdG9yZWRRdWVyeTogU3RvcmVkUXVlcnk7XG4gIEBJbnB1dCgpIGVkaXRNb2RlID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHNlYXJjaFNlcnZpY2U6IFNlYXJjaFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhcHBTZWFyY2hTZXJ2aWNlOiBBcHBTZWFyY2hTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3lzdGVtU2VydmljZTogU3lzdGVtU2VydmljZSxcbiAgICBwcml2YXRlIHN0b3JlZFF1ZXJpZXNTZXJ2aWNlOiBTdG9yZWRRdWVyaWVzU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZVxuICApIHsgfVxuXG4gIEBJbnB1dCgpIHNldCB3aWRnZXRDb25maWcoYzogSUhpdGxpc3QpIHtcbiAgICB0aGlzLl93aWRnZXRDb25maWcgPSBjO1xuICAgIGlmICh0aGlzLl93aWRnZXRDb25maWc/LnN0b3JlZFF1ZXJ5KSB7XG4gICAgICB0aGlzLmdldFN0b3JlZFF1ZXJ5KHRoaXMuX3dpZGdldENvbmZpZy5zdG9yZWRRdWVyeSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5fcXVlcnkgPSB0aGlzLnNlYXJjaFNlcnZpY2UuYnVpbGRRdWVyeSh0aGlzLnN0b3JlZFF1ZXJ5KTtcbiAgICAgICAgdGhpcy5fd2lkZ2V0Q29uZmlnLmZvcm1WYWx1ZS5zdG9yZWRRdWVyeSA9IHRoaXMuc3RvcmVkUXVlcnkubmFtZTtcbiAgICAgICAgdGhpcy5leGVjdXRlUXVlcnkoKTtcbiAgICAgIH0sIChlcnJvcikgPT4ge1xuICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSA0MDQpIHtcbiAgICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBnZXQgd2lkZ2V0Q29uZmlnKCkge1xuICAgIHJldHVybiB0aGlzLl93aWRnZXRDb25maWc7XG4gIH1cblxuICBnZXRTdG9yZWRRdWVyeShpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmVkUXVlcmllc1NlcnZpY2UuZ2V0U3RvcmVkUXVlcnkoaWQpLnBpcGUoXG4gICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKSxcbiAgICAgIHRhcChzdG9yZWRRdWVyeSA9PiB7XG4gICAgICAgIHRoaXMuc3RvcmVkUXVlcnkgPSBzdG9yZWRRdWVyeTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZXhlY3V0ZVF1ZXJ5KCkge1xuICAgIHRoaXMucmVmcmVzaGluZ1JlcXVlc3QgPSB0cnVlO1xuICAgIGNvbnN0IHF1ZXJ5TmFtZSA9IHRoaXMuX3F1ZXJ5Lm5hbWU7XG4gICAgZGVsZXRlIHRoaXMuX3F1ZXJ5Lm5hbWU7XG4gICAgdGhpcy5fcXVlcnkuZmllbGRzID0gWyd0eXBlJywgJ2lkJywgdGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LmZpcnN0TGFiZWwsIHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5zZWNvbmRMYWJlbCwgdGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LnRoaXJkTGFiZWxdO1xuICAgIGlmICh0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZS5zb3J0RmllbGQpIHtcbiAgICAgIGlmICh0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZS5zb3J0UmV2ZXJ0KSB7XG4gICAgICAgIHRoaXMuX3F1ZXJ5LmFkZFNvcnRPcHRpb24odGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWUuc29ydEZpZWxkLCAnZGVzYycpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fcXVlcnkuYWRkU29ydE9wdGlvbih0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZS5zb3J0RmllbGQsICdhc2MnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5fcXVlcnkgPSB0aGlzLnNlYXJjaFNlcnZpY2UuYnVpbGRRdWVyeSh0aGlzLl9xdWVyeSk7XG4gICAgbGV0IHByb3BUeXBlID0gW3RoaXMuX3dpZGdldENvbmZpZy5maXJzdExhYmVscHJvcGVydHlUeXBlLCB0aGlzLl93aWRnZXRDb25maWcuc2Vjb25kTGFiZWxwcm9wZXJ0eVR5cGUsIHRoaXMuX3dpZGdldENvbmZpZy50aGlyZExhYmVscHJvcGVydHlUeXBlXTtcbiAgICB0aGlzLnNlYXJjaFNlcnZpY2VcbiAgICAgIC5leGVjdXRlUXVlcnkodGhpcy5fcXVlcnkuZ2V0UXVlcnlKc29uKCksIGZhbHNlLCB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZS5zaXplKVxuICAgICAgLnBpcGUobWFwKHJlc3VsdCA9PiB7XG4gICAgICAgIHJldHVybiByZXN1bHQuaGl0cy5oaXRzLm1hcChoaXQgPT4ge1xuICAgICAgICAgIGZvciAobGV0IGk9MDsgaSA8IHByb3BUeXBlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgZm9ybUZpZWxkID0gaSA9PT0gMCA/IHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5maXJzdExhYmVsIDogaSA9PT0gMSA/IHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5zZWNvbmRMYWJlbCA6IHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy50aGlyZExhYmVsO1xuICAgICAgICAgICAgc3dpdGNoKHByb3BUeXBlW2ldKSB7XG4gICAgICAgICAgICAgIGNhc2UgJ0RBVEVUSU1FJzpcbiAgICAgICAgICAgICAgICBsZXQgZGF0ZVBpcGUgPSBuZXcgTG9jYWxlRGF0ZVBpcGUodGhpcy50cmFuc2xhdGUpO1xuICAgICAgICAgICAgICAgIGxldCBmb3JtYXQgPSBoaXQuX3NvdXJjZVtmb3JtRmllbGRdLmluY2x1ZGVzKCdUJykgPyAnJyA6ICdlb1Nob3J0RGF0ZSc7XG4gICAgICAgICAgICAgICAgaGl0Ll9zb3VyY2VbZm9ybUZpZWxkXSA9IGRhdGVQaXBlLnRyYW5zZm9ybShoaXQuX3NvdXJjZVtmb3JtRmllbGRdLCBmb3JtYXQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlICdOVU1CRVInOlxuICAgICAgICAgICAgICAgIGxldCBudW1iZXJQaXBlID0gbmV3IExvY2FsZU51bWJlclBpcGUodGhpcy50cmFuc2xhdGUpO1xuICAgICAgICAgICAgICAgIGlmIChoaXQuX3NvdXJjZVtmb3JtRmllbGRdLnRvU3RyaW5nKCkuaW5jbHVkZXMoJy4nKSkge1xuICAgICAgICAgICAgICAgICAgaGl0Ll9zb3VyY2VbZm9ybUZpZWxkXSA9IG51bWJlclBpcGUubnVtYmVyVG9TdHJpbmcoaGl0Ll9zb3VyY2VbZm9ybUZpZWxkXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlICdCT09MRUFOJzpcbiAgICAgICAgICAgICAgICBpZiAoaGl0Ll9zb3VyY2VbZm9ybUZpZWxkXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICBoaXQuX3NvdXJjZVtmb3JtRmllbGRdID0gaGl0Ll9zb3VyY2VbZm9ybUZpZWxkXSA/ICdcXHUyNjExJyA6ICdcXHUyNjEwJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgaGl0Ll9zb3VyY2VbZm9ybUZpZWxkXSA9ICcnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICdmaXJzdExhYmVsJzogaGl0Ll9zb3VyY2VbdGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LmZpcnN0TGFiZWxdLFxuICAgICAgICAgICAgJ3NlY29uZExhYmVsJzogaGl0Ll9zb3VyY2VbdGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LnNlY29uZExhYmVsXSxcbiAgICAgICAgICAgICd0aGlyZExhYmVsJzogaGl0Ll9zb3VyY2VbdGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LnRoaXJkTGFiZWxdLFxuICAgICAgICAgICAgJ3R5cGUnOiB0aGlzLnN5c3RlbVNlcnZpY2UuZ2V0T2JqZWN0VHlwZShoaXQuX3NvdXJjZS50eXBlKSxcbiAgICAgICAgICAgICdpZCc6IGhpdC5fc291cmNlLmlkXG4gICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgICB9KSlcbiAgICAgIC5zdWJzY3JpYmUoKGhpdHMpID0+IHtcbiAgICAgICAgdGhpcy5yZWZyZXNoaW5nUmVxdWVzdCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmhpdGxpc3RSZXN1bHQgPSBoaXRzO1xuICAgICAgICB0aGlzLl9xdWVyeS5uYW1lID0gcXVlcnlOYW1lO1xuICAgICAgICB0aGlzLl9xdWVyeS5yZW1vdmVTb3J0T3B0aW9uKHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlLnNvcnRGaWVsZCk7XG4gICAgICB9LFxuICAgICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgICB0aGlzLmhpdGxpc3RSZXN1bHQgPSBudWxsO1xuICAgICAgICAgIHRoaXMucmVmcmVzaGluZ1JlcXVlc3QgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gIH1cblxuICBzZXRRdWVyeVRvQXBwU2VhcmNoKCkge1xuICAgIHRoaXMuYXBwU2VhcmNoU2VydmljZS5zZXRRdWVyeSh0aGlzLnN0b3JlZFF1ZXJ5KTtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbe291dGxldHM6IHttb2RhbDogJ3NlYXJjaCd9fV0pO1xuICB9XG5cbiAgcmVmcmVzaCgpIHtcbiAgICB0aGlzLmdldFN0b3JlZFF1ZXJ5KHRoaXMuX3dpZGdldENvbmZpZy5zdG9yZWRRdWVyeSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuX3F1ZXJ5ID0gdGhpcy5zZWFyY2hTZXJ2aWNlLmJ1aWxkUXVlcnkodGhpcy5zdG9yZWRRdWVyeSk7XG4gICAgICB0aGlzLl93aWRnZXRDb25maWcuZm9ybVZhbHVlLnN0b3JlZFF1ZXJ5ID0gdGhpcy5zdG9yZWRRdWVyeS5uYW1lO1xuICAgICAgdGhpcy5leGVjdXRlUXVlcnkoKTtcbiAgICB9LFxuICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgIHRoaXMuaGl0bGlzdFJlc3VsdCA9IG51bGw7XG4gICAgICAgIHRoaXMucmVmcmVzaGluZ1JlcXVlc3QgPSBmYWxzZTtcbiAgICAgIH0pO1xuICB9XG5cbiAgb25JdGVtQ2xpY2soaXRlbSwgZXZlbnQpIHtcbiAgICBjb25zdCB1cmwgPSB3aW5kb3cubG9jYXRpb24uaHJlZi5zcGxpdCgnL2Rhc2hib2FyZCcpWzBdICsgJy9vYmplY3QvJyArIGl0ZW0uaWQgKyAnP3R5cGU9JyArIGl0ZW0udHlwZS5uYW1lICsgJ1xcbic7XG4gICAgd2luZG93Lm9wZW4odXJsLCBldmVudD8uY3RybEtleSB8fCB0aGlzLmVkaXRNb2RlID8gJ19ibGFuaycgOiAnX3NlbGYnKTtcbiAgfVxuXG4gIG9uRW1pdFF1ZXJ5Q2xpY2soZXZlbnQpIHtcbiAgICBkZWxldGUgdGhpcy5fcXVlcnkuZmllbGRzO1xuICAgIGNvbnN0IHVyaVBhcmFtID0gZW5jb2RlVVJJQ29tcG9uZW50KFV0aWxzLmZvcm1EYXRhU3RyaW5naWZ5KHRoaXMuX3F1ZXJ5LmdldFF1ZXJ5SnNvbigpKSk7XG4gICAgY29uc3QgdXJpUGFyYW1RdWVyeTogTmF2aWdhdGlvbkV4dHJhcyA9IHtxdWVyeVBhcmFtczogeydxdWVyeSc6IHVyaVBhcmFtfX07XG4gICAgY29uc3QgcXVlcnlQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHVyaVBhcmFtUXVlcnkucXVlcnlQYXJhbXMpLnRvU3RyaW5nKCk7XG4gICAgY29uc3QgdXJsID0gd2luZG93LmxvY2F0aW9uLmhyZWYuc3BsaXQoJy9kYXNoYm9hcmQnKVswXSArICcvcmVzdWx0PycgKyBxdWVyeVBhcmFtcztcbiAgICB3aW5kb3cub3Blbih1cmwsIGV2ZW50Py5jdHJsS2V5IHx8IHRoaXMuZWRpdE1vZGUgPyAnX2JsYW5rJyA6ICdfc2VsZicpO1xuICB9XG59XG4iLCI8aGVhZGVyPlxuICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItdGl0bGVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCIgKm5nSWY9XCJ3aWRnZXRDb25maWc/LmZvcm1WYWx1ZS5zdG9yZWRRdWVyeVwiPlxuICAgICAgICAgICAge3t3aWRnZXRDb25maWc/LmZvcm1WYWx1ZS5zdG9yZWRRdWVyeX19PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpY29ucy10aXRsZVwiICpuZ0lmPVwidGhpcy53aWRnZXRDb25maWc/LnN0b3JlZFF1ZXJ5XCI+XG4gICAgICAgICAgICA8ZW8taWNvbiBjbGFzcz1cImJ1dHRvbiBwcmltYXJ5XCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfc2F2ZWRfc2VhcmNoLnN2ZydcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXRRdWVyeVRvQXBwU2VhcmNoKClcIlxuICAgICAgICAgICAgICAgIFtpY29uVGl0bGVdPVwiKCdlby53aWRnZXQuaGl0bGlzdC50b29sdGlwLnNhdmVkU2VhcmNoSWNvbid8IHRyYW5zbGF0ZSlcIj48L2VvLWljb24+XG4gICAgICAgICAgICA8ZW8taWNvbiBjbGFzcz1cImJ1dHRvbiBwcmltYXJ5XCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfb3Blbl90YWIuc3ZnJ1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRW1pdFF1ZXJ5Q2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW2ljb25UaXRsZV09XCIoJ2VvLndpZGdldC5oaXRsaXN0LnRvb2x0aXAub3BlbmlucmVzdWx0bGlzdCd8IHRyYW5zbGF0ZSlcIj48L2VvLWljb24+XG4gICAgICAgICAgICA8ZW8taWNvbiBjbGFzcz1cImJ1dHRvbiBwcmltYXJ5XCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfcmVmcmVzaC5zdmcnXCIgKGNsaWNrKT1cInJlZnJlc2goKVwiXG4gICAgICAgICAgICAgICAgW2ljb25UaXRsZV09XCIoJ2VvLndpZGdldC5oaXRsaXN0LnRvb2x0aXAucmVmcmVzaCd8IHRyYW5zbGF0ZSlcIj48L2VvLWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9oZWFkZXI+XG5cbjxtYWluIGNsYXNzPVwibG9hZGVyLW92ZXJsYXlfX21hc2tcIiAqbmdJZj1cInJlZnJlc2hpbmdSZXF1ZXN0XCI+XG4gICAgPGVvLWxvYWRpbmctc3Bpbm5lciBbc2l6ZV09XCInbGFyZ2UnXCI+PC9lby1sb2FkaW5nLXNwaW5uZXI+XG48L21haW4+XG5cbjxtYWluIGNsYXNzPVwiaGl0bGlzdFwiICpuZ0lmPVwiIXJlZnJlc2hpbmdSZXF1ZXN0XCI+XG4gICAgPGRpdiAqbmdJZj1cImhpdGxpc3RSZXN1bHQ7IGVsc2UgdHBsRW1wdHlcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW1cIiAqbmdGb3I9XCJsZXQgaSBvZiBoaXRsaXN0UmVzdWx0XCIgKGNsaWNrKT1cIm9uSXRlbUNsaWNrKGksICRldmVudClcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJlVGl0bGVcIj57e2kuZmlyc3RMYWJlbH19PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+e3tpLnNlY29uZExhYmVsfX08L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb25cIj57e2kudGhpcmRMYWJlbH19PC9kaXY+XG4gICAgICAgICAgPGVvLWljb24gW29iamVjdFR5cGVdPVwiaS50eXBlXCI+PC9lby1pY29uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8bmctdGVtcGxhdGUgI3RwbEVtcHR5PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZW1wdHlcIj5cbiAgICAgICAgICAgIDxlby1lcnJvci1tZXNzYWdlXG4gICAgICAgICAgICAgICAgW2VtcHR5U3RhdGVdPVwie2ljb246ICdpY19zYXZlZF9zZWFyY2guc3ZnJywgdGV4dDogJ2VvLndvcmtzcGFjZS53aWRnZXQuY29uZmlndXJhdGlvbi5ub3RPayd9XCI+PC9lby1lcnJvci1tZXNzYWdlPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9tYWluPlxuIl19
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0bGlzdC13aWRnZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvZGFzaGJvYXJkL3dpZGdldHMvaGl0bGlzdC13aWRnZXQvaGl0bGlzdC13aWRnZXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvZGFzaGJvYXJkL3dpZGdldHMvaGl0bGlzdC13aWRnZXQvaGl0bGlzdC13aWRnZXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE9BQU8sRUFBaUcsS0FBSyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBRW5JLE9BQU8sRUFBQyxLQUFLLEVBQUUsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRWhDLE9BQU8sRUFBQyxZQUFZLEVBQUUsY0FBYyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDbkUsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25DLE9BQU8sRUFBQyxjQUFjLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7OztBQVF4RSxJQUFNLHNCQUFzQixHQUE1QixNQUFNLHNCQUFzQjtJQVNqQyxZQUNVLE1BQWMsRUFDZCxhQUE0QixFQUM1QixnQkFBa0MsRUFDbEMsYUFBNEIsRUFDNUIsb0JBQTBDLEVBQzFDLFNBQTJCO1FBTDNCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsY0FBUyxHQUFULFNBQVMs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QyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN6RixNQUFNLGFBQWEsR0FBcUIsRUFBQyxXQUFXLEVBQUUsRUFBQyxPQUFPLEVBQUUsUUFBUSxFQUFDLEVBQUMsQ0FBQztRQUMzRSxNQUFNLFdBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDOUUsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsR0FBRyxXQUFXLENBQUM7UUFDbkYsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pFLENBQUM7O21IQXRKVSxzQkFBc0I7dUdBQXRCLHNCQUFzQix5SENqQm5DLDIyREFxQ0E7QURwQmEsc0JBQXNCO0lBTmxDLFlBQVksRUFBRTtHQU1GLHNCQUFzQixDQXVKbEM7U0F2Slksc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0UsbUJBQW1CO3NQQVdwQixRQUFRO3NCQUFoQixLQUFLO2dCQVdPLFlBQVk7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtJV2lkZ2V0Q29tcG9uZW50fSBmcm9tICdAeXV1dmlzL3dpZGdldC1ncmlkJztcbmltcG9ydCB7SUhpdGxpc3R9IGZyb20gJy4vSUhpdGxpc3QnO1xuaW1wb3J0IHtTZWFyY2hRdWVyeSwgU2VhcmNoU2VydmljZSwgU3RvcmVkUXVlcmllc1NlcnZpY2UsIFN0b3JlZFF1ZXJ5LCBTeXN0ZW1TZXJ2aWNlLCBUcmFuc2xhdGVTZXJ2aWNlLCBVdGlsc30gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7QXBwU2VhcmNoU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvc2VhcmNoL2FwcC1zZWFyY2guc2VydmljZSc7XG5pbXBvcnQge0VNUFRZLCBtYXB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtOYXZpZ2F0aW9uRXh0cmFzLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1VudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWR9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQge3RhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtMb2NhbGVEYXRlUGlwZSwgTG9jYWxlTnVtYmVyUGlwZX0gZnJvbSAnLi4vLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUnO1xuXG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLWhpdGxpc3Qtd2lkZ2V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2hpdGxpc3Qtd2lkZ2V0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaGl0bGlzdC13aWRnZXQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBIaXRsaXN0V2lkZ2V0Q29tcG9uZW50IGltcGxlbWVudHMgSVdpZGdldENvbXBvbmVudCB7XG5cbiAgaGl0bGlzdFJlc3VsdDogW107XG4gIHByaXZhdGUgX3F1ZXJ5OiBTZWFyY2hRdWVyeTtcbiAgcmVmcmVzaGluZ1JlcXVlc3Q6IGJvb2xlYW47XG4gIHByaXZhdGUgX3dpZGdldENvbmZpZzogSUhpdGxpc3Q7XG4gIHN0b3JlZFF1ZXJ5OiBTdG9yZWRRdWVyeTtcbiAgQElucHV0KCkgZWRpdE1vZGUgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgc2VhcmNoU2VydmljZTogU2VhcmNoU2VydmljZSxcbiAgICBwcml2YXRlIGFwcFNlYXJjaFNlcnZpY2U6IEFwcFNlYXJjaFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzeXN0ZW1TZXJ2aWNlOiBTeXN0ZW1TZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RvcmVkUXVlcmllc1NlcnZpY2U6IFN0b3JlZFF1ZXJpZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkgeyB9XG5cbiAgQElucHV0KCkgc2V0IHdpZGdldENvbmZpZyhjOiBJSGl0bGlzdCkge1xuICAgIHRoaXMuX3dpZGdldENvbmZpZyA9IGM7XG4gICAgaWYgKHRoaXMuX3dpZGdldENvbmZpZz8uc3RvcmVkUXVlcnkpIHtcbiAgICAgIHRoaXMuZ2V0U3RvcmVkUXVlcnkodGhpcy5fd2lkZ2V0Q29uZmlnLnN0b3JlZFF1ZXJ5KS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLl9xdWVyeSA9IHRoaXMuc2VhcmNoU2VydmljZS5idWlsZFF1ZXJ5KHRoaXMuc3RvcmVkUXVlcnkpO1xuICAgICAgICB0aGlzLl93aWRnZXRDb25maWcuZm9ybVZhbHVlLnN0b3JlZFF1ZXJ5ID0gdGhpcy5zdG9yZWRRdWVyeS5uYW1lO1xuICAgICAgICB0aGlzLmV4ZWN1dGVRdWVyeSgpO1xuICAgICAgfSwgKGVycm9yKSA9PiB7XG4gICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDQwNCkge1xuICAgICAgICAgIHJldHVybiBFTVBUWTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGdldCB3aWRnZXRDb25maWcoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3dpZGdldENvbmZpZztcbiAgfVxuXG4gIGdldFN0b3JlZFF1ZXJ5KGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZWRRdWVyaWVzU2VydmljZS5nZXRTdG9yZWRRdWVyeShpZCkucGlwZShcbiAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpLFxuICAgICAgdGFwKHN0b3JlZFF1ZXJ5ID0+IHtcbiAgICAgICAgdGhpcy5zdG9yZWRRdWVyeSA9IHN0b3JlZFF1ZXJ5O1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBleGVjdXRlUXVlcnkoKSB7XG4gICAgdGhpcy5yZWZyZXNoaW5nUmVxdWVzdCA9IHRydWU7XG4gICAgY29uc3QgcXVlcnlOYW1lID0gdGhpcy5fcXVlcnkubmFtZTtcbiAgICBkZWxldGUgdGhpcy5fcXVlcnkubmFtZTtcbiAgICB0aGlzLl9xdWVyeS5maWVsZHMgPSBbJ3R5cGUnLCAnaWQnXTtcbiAgICBpZiAodGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LmZpcnN0TGFiZWwpIHtcbiAgICAgIHRoaXMuX3F1ZXJ5LmZpZWxkcy5wdXNoKHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5maXJzdExhYmVsKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5zZWNvbmRMYWJlbCkge1xuICAgICAgdGhpcy5fcXVlcnkuZmllbGRzLnB1c2godGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LnNlY29uZExhYmVsKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy50aGlyZExhYmVsKSB7XG4gICAgICB0aGlzLl9xdWVyeS5maWVsZHMucHVzaCh0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8udGhpcmRMYWJlbCk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9xdWVyeS5maWVsZHMubGVuZ3RoID09PSAyKSB7XG4gICAgICB0aGlzLmhpdGxpc3RSZXN1bHQgPSBudWxsO1xuICAgICAgdGhpcy5yZWZyZXNoaW5nUmVxdWVzdCA9IGZhbHNlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWUuc29ydEZpZWxkKSB7XG4gICAgICBpZiAodGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWUuc29ydFJldmVydCkge1xuICAgICAgICB0aGlzLl9xdWVyeS5hZGRTb3J0T3B0aW9uKHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlLnNvcnRGaWVsZCwgJ2FzYycpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fcXVlcnkuYWRkU29ydE9wdGlvbih0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZS5zb3J0RmllbGQsICdkZXNjJyk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuX3F1ZXJ5ID0gdGhpcy5zZWFyY2hTZXJ2aWNlLmJ1aWxkUXVlcnkodGhpcy5fcXVlcnkpO1xuICAgIGxldCBwcm9wVHlwZSA9IFt0aGlzLl93aWRnZXRDb25maWcuZmlyc3RMYWJlbHByb3BlcnR5VHlwZSwgdGhpcy5fd2lkZ2V0Q29uZmlnLnNlY29uZExhYmVscHJvcGVydHlUeXBlLCB0aGlzLl93aWRnZXRDb25maWcudGhpcmRMYWJlbHByb3BlcnR5VHlwZV07XG4gICAgdGhpcy5zZWFyY2hTZXJ2aWNlXG4gICAgICAuZXhlY3V0ZVF1ZXJ5KHRoaXMuX3F1ZXJ5LmdldFF1ZXJ5SnNvbigpLCBmYWxzZSwgdGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWUuc2l6ZSlcbiAgICAgIC5waXBlKG1hcChyZXN1bHQgPT4ge1xuICAgICAgICByZXR1cm4gcmVzdWx0LmhpdHMuaGl0cy5tYXAoaGl0ID0+IHtcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHByb3BUeXBlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgZm9ybUZpZWxkID0gaSA9PT0gMCA/IHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5maXJzdExhYmVsIDogaSA9PT0gMSA/IHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5zZWNvbmRMYWJlbCA6IHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy50aGlyZExhYmVsO1xuICAgICAgICAgICAgaWYgKGhpdC5fc291cmNlW2Zvcm1GaWVsZF0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICBzd2l0Y2ggKHByb3BUeXBlW2ldKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnREFURVRJTUUnOlxuICAgICAgICAgICAgICAgICAgbGV0IGRhdGVQaXBlID0gbmV3IExvY2FsZURhdGVQaXBlKHRoaXMudHJhbnNsYXRlKTtcbiAgICAgICAgICAgICAgICAgIGxldCBmb3JtYXQgPSBoaXQuX3NvdXJjZVtmb3JtRmllbGRdLmluY2x1ZGVzKCdUJykgPyAnJyA6ICdlb1Nob3J0RGF0ZSc7XG4gICAgICAgICAgICAgICAgICBoaXQuX3NvdXJjZVtmb3JtRmllbGRdID0gZGF0ZVBpcGUudHJhbnNmb3JtKGhpdC5fc291cmNlW2Zvcm1GaWVsZF0sIGZvcm1hdCk7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdOVU1CRVInOlxuICAgICAgICAgICAgICAgICAgbGV0IG51bWJlclBpcGUgPSBuZXcgTG9jYWxlTnVtYmVyUGlwZSh0aGlzLnRyYW5zbGF0ZSk7XG4gICAgICAgICAgICAgICAgICBpZiAoaGl0Ll9zb3VyY2VbZm9ybUZpZWxkXS50b1N0cmluZygpLmluY2x1ZGVzKCcuJykpIHtcbiAgICAgICAgICAgICAgICAgICAgaGl0Ll9zb3VyY2VbZm9ybUZpZWxkXSA9IG51bWJlclBpcGUubnVtYmVyVG9TdHJpbmcoaGl0Ll9zb3VyY2VbZm9ybUZpZWxkXSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdCT09MRUFOJzpcbiAgICAgICAgICAgICAgICAgIGhpdC5fc291cmNlW2Zvcm1GaWVsZF0gPSBoaXQuX3NvdXJjZVtmb3JtRmllbGRdID8gJ1xcdTI2MTEnIDogJ1xcdTI2MTAnO1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICdmaXJzdExhYmVsJzogaGl0Ll9zb3VyY2VbdGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LmZpcnN0TGFiZWxdLFxuICAgICAgICAgICAgJ3NlY29uZExhYmVsJzogaGl0Py5fc291cmNlW3RoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5zZWNvbmRMYWJlbF0sXG4gICAgICAgICAgICAndGhpcmRMYWJlbCc6IGhpdD8uX3NvdXJjZVt0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8udGhpcmRMYWJlbF0sXG4gICAgICAgICAgICAndHlwZSc6IHRoaXMuc3lzdGVtU2VydmljZS5nZXRPYmplY3RUeXBlKGhpdC5fc291cmNlLnR5cGUpLFxuICAgICAgICAgICAgJ2lkJzogaGl0Ll9zb3VyY2UuaWRcbiAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICAgIH0pKVxuICAgICAgLnN1YnNjcmliZSgoaGl0cykgPT4ge1xuICAgICAgICB0aGlzLnJlZnJlc2hpbmdSZXF1ZXN0ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaGl0bGlzdFJlc3VsdCA9IGhpdHM7XG4gICAgICAgIHRoaXMuX3F1ZXJ5Lm5hbWUgPSBxdWVyeU5hbWU7XG4gICAgICAgIHRoaXMuX3F1ZXJ5LnJlbW92ZVNvcnRPcHRpb24odGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWUuc29ydEZpZWxkKTtcbiAgICAgIH0sXG4gICAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICAgIHRoaXMuaGl0bGlzdFJlc3VsdCA9IG51bGw7XG4gICAgICAgICAgdGhpcy5yZWZyZXNoaW5nUmVxdWVzdCA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgfVxuXG4gIHNldFF1ZXJ5VG9BcHBTZWFyY2goKSB7XG4gICAgdGhpcy5hcHBTZWFyY2hTZXJ2aWNlLnNldFF1ZXJ5KHRoaXMuc3RvcmVkUXVlcnkpO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt7b3V0bGV0czoge21vZGFsOiAnc2VhcmNoJ319XSk7XG4gIH1cblxuICByZWZyZXNoKCkge1xuICAgIHRoaXMuZ2V0U3RvcmVkUXVlcnkodGhpcy5fd2lkZ2V0Q29uZmlnLnN0b3JlZFF1ZXJ5KS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5fcXVlcnkgPSB0aGlzLnNlYXJjaFNlcnZpY2UuYnVpbGRRdWVyeSh0aGlzLnN0b3JlZFF1ZXJ5KTtcbiAgICAgIHRoaXMuX3dpZGdldENvbmZpZy5mb3JtVmFsdWUuc3RvcmVkUXVlcnkgPSB0aGlzLnN0b3JlZFF1ZXJ5Lm5hbWU7XG4gICAgICB0aGlzLmV4ZWN1dGVRdWVyeSgpO1xuICAgIH0sXG4gICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgdGhpcy5oaXRsaXN0UmVzdWx0ID0gbnVsbDtcbiAgICAgICAgdGhpcy5yZWZyZXNoaW5nUmVxdWVzdCA9IGZhbHNlO1xuICAgICAgfSk7XG4gIH1cblxuICBvbkl0ZW1DbGljayhpdGVtLCBldmVudCkge1xuICAgIGNvbnN0IHVybCA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmLnNwbGl0KCcvZGFzaGJvYXJkJylbMF0gKyAnL29iamVjdC8nICsgaXRlbS5pZCArICc/dHlwZT0nICsgaXRlbS50eXBlLm5hbWUgKyAnXFxuJztcbiAgICB3aW5kb3cub3Blbih1cmwsIGV2ZW50Py5jdHJsS2V5IHx8IHRoaXMuZWRpdE1vZGUgPyAnX2JsYW5rJyA6ICdfc2VsZicpO1xuICB9XG5cbiAgb25FbWl0UXVlcnlDbGljayhldmVudCkge1xuICAgIGRlbGV0ZSB0aGlzLl9xdWVyeS5maWVsZHM7XG4gICAgY29uc3QgdXJpUGFyYW0gPSBlbmNvZGVVUklDb21wb25lbnQoVXRpbHMuZm9ybURhdGFTdHJpbmdpZnkodGhpcy5fcXVlcnkuZ2V0UXVlcnlKc29uKCkpKTtcbiAgICBjb25zdCB1cmlQYXJhbVF1ZXJ5OiBOYXZpZ2F0aW9uRXh0cmFzID0ge3F1ZXJ5UGFyYW1zOiB7J3F1ZXJ5JzogdXJpUGFyYW19fTtcbiAgICBjb25zdCBxdWVyeVBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXModXJpUGFyYW1RdWVyeS5xdWVyeVBhcmFtcykudG9TdHJpbmcoKTtcbiAgICBjb25zdCB1cmwgPSB3aW5kb3cubG9jYXRpb24uaHJlZi5zcGxpdCgnL2Rhc2hib2FyZCcpWzBdICsgJy9yZXN1bHQ/JyArIHF1ZXJ5UGFyYW1zO1xuICAgIHdpbmRvdy5vcGVuKHVybCwgZXZlbnQ/LmN0cmxLZXkgfHwgdGhpcy5lZGl0TW9kZSA/ICdfYmxhbmsnIDogJ19zZWxmJyk7XG4gIH1cbn1cbiIsIjxoZWFkZXI+XG4gICAgPGRpdiBjbGFzcz1cImhlYWRlci10aXRsZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIiAqbmdJZj1cIndpZGdldENvbmZpZz8uZm9ybVZhbHVlLnN0b3JlZFF1ZXJ5XCI+XG4gICAgICAgICAgICB7e3dpZGdldENvbmZpZz8uZm9ybVZhbHVlLnN0b3JlZFF1ZXJ5fX08L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImljb25zLXRpdGxlXCIgKm5nSWY9XCJ0aGlzLndpZGdldENvbmZpZz8uc3RvcmVkUXVlcnlcIj5cbiAgICAgICAgICAgIDxlby1pY29uIGNsYXNzPVwiYnV0dG9uIHByaW1hcnlcIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19zYXZlZF9zZWFyY2guc3ZnJ1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldFF1ZXJ5VG9BcHBTZWFyY2goKVwiXG4gICAgICAgICAgICAgICAgW2ljb25UaXRsZV09XCIoJ2VvLndpZGdldC5oaXRsaXN0LnRvb2x0aXAuc2F2ZWRTZWFyY2hJY29uJ3wgdHJhbnNsYXRlKVwiPjwvZW8taWNvbj5cbiAgICAgICAgICAgIDxlby1pY29uIGNsYXNzPVwiYnV0dG9uIHByaW1hcnlcIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19vcGVuX3RhYi5zdmcnXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25FbWl0UXVlcnlDbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbaWNvblRpdGxlXT1cIignZW8ud2lkZ2V0LmhpdGxpc3QudG9vbHRpcC5vcGVuaW5yZXN1bHRsaXN0J3wgdHJhbnNsYXRlKVwiPjwvZW8taWNvbj5cbiAgICAgICAgICAgIDxlby1pY29uIGNsYXNzPVwiYnV0dG9uIHByaW1hcnlcIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19yZWZyZXNoLnN2ZydcIiAoY2xpY2spPVwicmVmcmVzaCgpXCJcbiAgICAgICAgICAgICAgICBbaWNvblRpdGxlXT1cIignZW8ud2lkZ2V0LmhpdGxpc3QudG9vbHRpcC5yZWZyZXNoJ3wgdHJhbnNsYXRlKVwiPjwvZW8taWNvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2hlYWRlcj5cblxuPG1haW4gY2xhc3M9XCJsb2FkZXItb3ZlcmxheV9fbWFza1wiICpuZ0lmPVwicmVmcmVzaGluZ1JlcXVlc3RcIj5cbiAgICA8ZW8tbG9hZGluZy1zcGlubmVyIFtzaXplXT1cIidsYXJnZSdcIj48L2VvLWxvYWRpbmctc3Bpbm5lcj5cbjwvbWFpbj5cblxuPG1haW4gY2xhc3M9XCJoaXRsaXN0XCIgKm5nSWY9XCIhcmVmcmVzaGluZ1JlcXVlc3RcIj5cbiAgICA8ZGl2ICpuZ0lmPVwiaGl0bGlzdFJlc3VsdDsgZWxzZSB0cGxFbXB0eVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbVwiICpuZ0Zvcj1cImxldCBpIG9mIGhpdGxpc3RSZXN1bHRcIiAoY2xpY2spPVwib25JdGVtQ2xpY2soaSwgJGV2ZW50KVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmVUaXRsZVwiPnt7aS5maXJzdExhYmVsfX08L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj57e2kuc2Vjb25kTGFiZWx9fTwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiPnt7aS50aGlyZExhYmVsfX08L2Rpdj5cbiAgICAgICAgICA8ZW8taWNvbiBbb2JqZWN0VHlwZV09XCJpLnR5cGVcIj48L2VvLWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxuZy10ZW1wbGF0ZSAjdHBsRW1wdHk+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJlbXB0eVwiPlxuICAgICAgICAgICAgPGVvLWVycm9yLW1lc3NhZ2VcbiAgICAgICAgICAgICAgICBbZW1wdHlTdGF0ZV09XCJ7aWNvbjogJ2ljX3NhdmVkX3NlYXJjaC5zdmcnLCB0ZXh0OiAnZW8ud29ya3NwYWNlLndpZGdldC5jb25maWd1cmF0aW9uLm5vdE9rJ31cIj48L2VvLWVycm9yLW1lc3NhZ2U+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG48L21haW4+XG4iXX0=
@@ -135,7 +135,7 @@ let FavoriteStateComponent = class FavoriteStateComponent {
135
135
  }
136
136
  };
137
137
  FavoriteStateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: FavoriteStateComponent, deps: [{ token: i1.SelectionService }, { token: i2.TranslateService }, { token: i2.SystemService }, { token: i3.EmptyStateService }, { token: i4.PendingChangesService }, { token: i5.PageTitleService }, { token: i2.UserService }], target: i0.ɵɵFactoryTarget.Component });
138
- FavoriteStateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: FavoriteStateComponent, selector: "eo-favorite-state", viewQueries: [{ propertyName: "eoGrid", first: true, predicate: ["eoGrid"], descendants: true }], ngImport: i0, template: "<yvc-split-view [layoutSettingsID]=\"'favorite.state'\">\n\n <ng-template yvcSplitArea [size]=\"30\">\n <eo-list-container #eoList [applySelection]=\"{}\" [parseDmsParams]=\"parseDmsParams\">\n <div class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_favorite.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\" translate>eo.favorites.list.title</div>\n </div>\n <div class=\"eo-header-actions\">\n <eo-icon class=\"button refresh-button\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\n\n <eo-overlay #oFilter class=\"overlay-filter\" [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\"\n [iconTitle]=\"'eo.list.filter' | translate\">\n <eo-custom-filter #cFilter (change)=\"cFilter.updateGrid(eoList.eoGridSubject, $event)\"\n (active)=\"oFilter.onActiveChanged($event)\">\n <eo-text-filter [title]=\"'eo.favorites.filter.title' | translate\" [id]=\"'favorites.text'\"\n [matchFields]=\"['title']\" [filterParams]=\"textFilterParams\">\n </eo-text-filter>\n <eo-set-filter [operator]=\"'OR'\" [id]=\"'favorites.set'\"\n [title]=\"'eo.favorites.filter.section.objecttype' | translate\"\n [options]=\"typeFilterFields\"></eo-set-filter>\n </eo-custom-filter>\n </eo-overlay>\n\n <eo-overlay #oSort class=\"overlay-sort\" [iconSrc]=\"'assets/_default/svg/ic_sort.svg'\"\n [iconTitle]=\"'eo.list.sort' | translate\">\n <eo-custom-sort #cSort [id]=\"'favorites.sort'\" (change)=\"cSort.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oSort.onActiveChanged($event)\" [sortFields]=\"sortFields\"></eo-custom-sort>\n </eo-overlay>\n\n <eo-icon class=\"button\" (click)=\"hasContent ? eoList.showActions() : false\"\n [ngClass]=\"{'disabled': !hasContent, 'actions-button': hasContent}\"\n [iconTitle]=\"'eo.object.actions.title' | translate\" [iconSrc]=\"'assets/_default/svg/ic_more.svg'\"></eo-icon>\n </div>\n </div>\n <div class=\"eo-body\">\n <eo-grid #eoGrid *ngIf=\"gridOptions?.rowData\" [gridOptions]=\"gridOptions\" [fullWidth]=\"true\" [showHeader]=\"true\"\n [showFooter]=\"true\" (eoGridCountChanged)=\"eoList.onCountChanged($event)\"\n (eoGridContextMenuClick)=\"eoList.onContextMenu($event, 'DMS_OBJECT')\"\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\n (eoGridDoubleClick)=\"eoList.onDoubleClick($event)\" (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\n\n <div class=\"header\">\n </div>\n\n <div class=\"footer\">\n <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\n </div>\n\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_favorite.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.favorites.list.empty'}\"></eo-error-message>\n <eo-reset-filter [isFilterActive]=\"oFilter.active\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"></eo-reset-filter>\n </div>\n\n </eo-grid>\n </div>\n </eo-list-container>\n </ng-template>\n\n <ng-template yvcSplitArea [size]=\"70\">\n <eo-object-details [applySelection]=\"{}\" [parseDmsParams]=\"parseDmsParams\" [emptyState]=\"emptyState\"\n [cacheLayout]=\"'favorite.state.object-details'\" (hasContent)=\"hasContent = $event\"\n [plugins]=\"'object-details-tab.favorite' | plugins\">\n <div class=\"error\" *ngIf=\"gridData?.length && !hasContent\">\n <button class=\"button\" (click)=\"remove()\" translate>eo.favorite.details.item.gone.remove</button>\n </div>\n </eo-object-details>\n </ng-template>\n</yvc-split-view>", styles: [":host{position:absolute;left:var(--app-pane-padding);right:var(--app-pane-padding);top:var(--app-pane-padding);bottom:var(--app-pane-padding);overflow:hidden}:host yvc-split-view{height:100%}:host .error .button{margin:1em;background-color:#d3d3d3}:host ::ng-deep .ag-cell .list-item{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;align-items:center;height:80px}:host ::ng-deep .ag-cell .list-item[unselectable]{-webkit-user-select:none;-moz-user-select:none;user-select:none}:host ::ng-deep .ag-cell .list-item .content{flex:1;padding:var(--app-pane-padding);display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host ::ng-deep .ag-cell .list-item .content .title{font-weight:var(--font-weight-medium);font-size:var(--font-body)}:host ::ng-deep .ag-cell .list-item .content .description{font-size:var(--font-caption)}:host ::ng-deep .ag-cell .list-item .content .date{color:rgba(var(--color-black-rgb),.4)}\n"], dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i8.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i9.OverlayComponent, selector: "eo-overlay", inputs: ["iconSrc", "badge", "iconClass", "styleClass", "active", "iconTitle"] }, { kind: "component", type: i10.ErrorMessageComponent, selector: "eo-error-message", inputs: ["emptyState"] }, { kind: "component", type: i11.ObjectDetailsComponent, selector: "eo-object-details", inputs: ["plugins", "reference", "searchTerm", "enableCompare", "recyclebinTabs", "enableDiff", "enableSync", "cacheLayout", "emptyState", "params", "params2", "item", "item2", "applySelection", "parseDmsParams"], outputs: ["hasContent"] }, { kind: "component", type: i12.GridComponent, selector: "eo-grid", inputs: ["selectFirst", "selectionLimit", "sizeToFit", "fullWidth", "showHeader", "showFooter", "loaderContent", "options", "gridOptions"], outputs: ["eoGridCountChanged", "eoGridSelectionChanged", "eoGridFocusChanged", "eoGridCellClick", "eoGridDoubleClick", "eoGridContextMenuClick", "eoGridColumnResized"] }, { kind: "component", type: i13.TotalCountComponent, selector: "eo-total-count", inputs: ["eoGrid", "outsideGrid", "gridCount"] }, { kind: "component", type: i14.CustomSortComponent, selector: "eo-custom-sort", inputs: ["eoGrid", "overlay", "id", "sortFields"], outputs: ["change", "active"] }, { kind: "component", type: i15.CustomFilterComponent, selector: "eo-custom-filter", inputs: ["overlay", "eoGrid", "activeFilter", "isFilterActive"], outputs: ["change", "active", "onResetFilters"] }, { kind: "component", type: i16.TextFilterComponent, selector: "eo-text-filter", inputs: ["title", "placeholder", "enableSave", "filterParams", "matchFields"] }, { kind: "component", type: i17.SetFilterComponent, selector: "eo-set-filter", inputs: ["title", "searchLimit", "operator", "options", "filterParams"] }, { kind: "component", type: i18.ResetFilterComponent, selector: "eo-reset-filter", inputs: ["isFilterActive"] }, { kind: "component", type: i19.ListContainerComponent, selector: "eo-list-container", inputs: ["applySelection", "applyVersion", "loading", "tabs", "parseDmsParams"] }, { kind: "component", type: i20.SplitViewComponent, selector: "yvc-split-view", inputs: ["direction", "gutterSize", "restrictMove", "disabled", "gutterDblClickDuration", "layoutSettingsID"], outputs: ["layoutSettingsChange", "dragStart", "dragEnd", "gutterClick", "gutterDblClick"] }, { kind: "directive", type: i20.SplitAreaDirective, selector: "[yvcSplitArea]", inputs: ["size", "order", "minSize", "maxSize", "panelClass", "visible"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }, { kind: "pipe", type: i21.PluginPipe, name: "plugins" }] });
138
+ FavoriteStateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: FavoriteStateComponent, selector: "eo-favorite-state", viewQueries: [{ propertyName: "eoGrid", first: true, predicate: ["eoGrid"], descendants: true }], ngImport: i0, template: "<yvc-split-view [layoutSettingsID]=\"'favorite.state'\">\n\n <ng-template yvcSplitArea [size]=\"30\">\n <eo-list-container #eoList [applySelection]=\"{}\" [parseDmsParams]=\"parseDmsParams\">\n <div class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_favorite.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\" translate>eo.favorites.list.title</div>\n </div>\n <div class=\"eo-header-actions\">\n <eo-icon class=\"button refresh-button\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\n\n <eo-overlay #oFilter class=\"overlay-filter\" [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\"\n [iconTitle]=\"'eo.list.filter' | translate\">\n <eo-custom-filter #cFilter (change)=\"cFilter.updateGrid(eoList.eoGridSubject, $event)\"\n (active)=\"oFilter.onActiveChanged($event)\">\n <eo-text-filter [title]=\"'eo.favorites.filter.title' | translate\" [id]=\"'favorites.text'\"\n [matchFields]=\"['title']\" [filterParams]=\"textFilterParams\">\n </eo-text-filter>\n <eo-set-filter [operator]=\"'OR'\" [id]=\"'favorites.set'\"\n [title]=\"'eo.favorites.filter.section.objecttype' | translate\"\n [options]=\"typeFilterFields\"></eo-set-filter>\n </eo-custom-filter>\n </eo-overlay>\n\n <eo-overlay #oSort class=\"overlay-sort\" [iconSrc]=\"'assets/_default/svg/ic_sort.svg'\"\n [iconTitle]=\"'eo.list.sort' | translate\">\n <eo-custom-sort #cSort [id]=\"'favorites.sort'\" (change)=\"cSort.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oSort.onActiveChanged($event)\" [sortFields]=\"sortFields\"></eo-custom-sort>\n </eo-overlay>\n\n <eo-icon class=\"button\" (click)=\"hasContent ? eoList.showActions() : false\"\n [ngClass]=\"{'disabled': !hasContent, 'actions-button': hasContent}\"\n [iconTitle]=\"'eo.object.actions.title' | translate\" [iconSrc]=\"'assets/_default/svg/ic_more.svg'\"></eo-icon>\n </div>\n </div>\n <div class=\"eo-body\">\n <eo-grid #eoGrid *ngIf=\"gridOptions?.rowData\" [gridOptions]=\"gridOptions\" [fullWidth]=\"true\" [showHeader]=\"true\"\n [showFooter]=\"true\" (eoGridCountChanged)=\"eoList.onCountChanged($event)\"\n (eoGridContextMenuClick)=\"eoList.onContextMenu($event, 'DMS_OBJECT')\"\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\n (eoGridDoubleClick)=\"eoList.onDoubleClick($event)\" (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\n\n <div class=\"header\">\n </div>\n\n <div class=\"footer\">\n <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\n </div>\n\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_favorite.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.favorites.list.empty'}\"></eo-error-message>\n <eo-reset-filter [isFilterActive]=\"oFilter.active\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"></eo-reset-filter>\n </div>\n\n </eo-grid>\n </div>\n </eo-list-container>\n </ng-template>\n\n <ng-template yvcSplitArea [size]=\"70\">\n <eo-object-details [applySelection]=\"{}\" [parseDmsParams]=\"parseDmsParams\" [emptyState]=\"emptyState\"\n [cacheLayout]=\"'favorite.state.object-details'\" (hasContent)=\"hasContent = $event\"\n [plugins]=\"'object-details-tab.favorite' | plugins\">\n <div class=\"error\" *ngIf=\"gridData?.length && !hasContent\">\n <button class=\"button\" (click)=\"remove()\" translate>eo.favorite.details.item.gone.remove</button>\n </div>\n </eo-object-details>\n </ng-template>\n</yvc-split-view>", styles: [":host{position:absolute;left:var(--app-pane-padding);right:var(--app-pane-padding);top:var(--app-pane-padding);bottom:var(--app-pane-padding);overflow:hidden}:host yvc-split-view{height:100%}:host .error .button{margin:1em;background-color:#d3d3d3}:host ::ng-deep .ag-cell .list-item{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;align-items:center;height:80px}:host ::ng-deep .ag-cell .list-item[unselectable]{-webkit-user-select:none;-moz-user-select:none;user-select:none}:host ::ng-deep .ag-cell .list-item .content{flex:1;padding:var(--app-pane-padding);display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host ::ng-deep .ag-cell .list-item .content .title{font-weight:var(--font-weight-medium);font-size:var(--font-body)}:host ::ng-deep .ag-cell .list-item .content .description{font-size:var(--font-caption)}:host ::ng-deep .ag-cell .list-item .content .date{color:rgba(var(--color-black-rgb),.4)}\n"], dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i8.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i9.OverlayComponent, selector: "eo-overlay", inputs: ["iconSrc", "badge", "iconClass", "active", "iconTitle", "userAvatar"] }, { kind: "component", type: i10.ErrorMessageComponent, selector: "eo-error-message", inputs: ["emptyState"] }, { kind: "component", type: i11.ObjectDetailsComponent, selector: "eo-object-details", inputs: ["plugins", "reference", "searchTerm", "enableCompare", "recyclebinTabs", "enableDiff", "enableSync", "cacheLayout", "emptyState", "params", "params2", "item", "item2", "applySelection", "parseDmsParams"], outputs: ["hasContent"] }, { kind: "component", type: i12.GridComponent, selector: "eo-grid", inputs: ["selectFirst", "selectionLimit", "sizeToFit", "fullWidth", "showHeader", "showFooter", "loaderContent", "options", "gridOptions"], outputs: ["eoGridCountChanged", "eoGridSelectionChanged", "eoGridFocusChanged", "eoGridCellClick", "eoGridDoubleClick", "eoGridContextMenuClick", "eoGridColumnResized"] }, { kind: "component", type: i13.TotalCountComponent, selector: "eo-total-count", inputs: ["eoGrid", "outsideGrid", "gridCount"] }, { kind: "component", type: i14.CustomSortComponent, selector: "eo-custom-sort", inputs: ["eoGrid", "overlay", "id", "sortFields"], outputs: ["change", "active"] }, { kind: "component", type: i15.CustomFilterComponent, selector: "eo-custom-filter", inputs: ["overlay", "eoGrid", "activeFilter", "isFilterActive"], outputs: ["change", "active", "onResetFilters"] }, { kind: "component", type: i16.TextFilterComponent, selector: "eo-text-filter", inputs: ["title", "placeholder", "enableSave", "filterParams", "matchFields"] }, { kind: "component", type: i17.SetFilterComponent, selector: "eo-set-filter", inputs: ["title", "searchLimit", "operator", "options", "filterParams"] }, { kind: "component", type: i18.ResetFilterComponent, selector: "eo-reset-filter", inputs: ["isFilterActive"] }, { kind: "component", type: i19.ListContainerComponent, selector: "eo-list-container", inputs: ["applySelection", "applyVersion", "loading", "tabs", "parseDmsParams"] }, { kind: "component", type: i20.SplitViewComponent, selector: "yvc-split-view", inputs: ["direction", "gutterSize", "restrictMove", "disabled", "gutterDblClickDuration", "layoutSettingsID"], outputs: ["layoutSettingsChange", "dragStart", "dragEnd", "gutterClick", "gutterDblClick"] }, { kind: "directive", type: i20.SplitAreaDirective, selector: "[yvcSplitArea]", inputs: ["size", "order", "minSize", "maxSize", "panelClass", "visible"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }, { kind: "pipe", type: i21.PluginPipe, name: "plugins" }] });
139
139
  FavoriteStateComponent = __decorate([
140
140
  UntilDestroy()
141
141
  ], FavoriteStateComponent);
@@ -203,14 +203,14 @@ let InboxStateComponent = class InboxStateComponent {
203
203
  }
204
204
  };
205
205
  InboxStateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: InboxStateComponent, deps: [{ token: i1.TranslateService }, { token: i2.SelectionService }, { token: i3.PageTitleService }, { token: i1.InboxService }, { token: i4.PendingChangesService }, { token: i5.EmptyStateService }, { token: i1.EventService }, { token: i6.ActivatedRoute }, { token: i1.LocalStorageService }], target: i0.ɵɵFactoryTarget.Component });
206
- InboxStateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: InboxStateComponent, selector: "eo-inbox-state", viewQueries: [{ propertyName: "eoGrid", first: true, predicate: ["eoGrid"], descendants: true }], ngImport: i0, template: "<yvc-split-view [layoutSettingsID]=\"'inbox.state'\">\n <!-- list -->\n <ng-template yvcSplitArea [size]=\"30\">\n <eo-list-container #eoList [applySelection]=\"{out: inboxSelectionId}\">\n <div class=\"eo-header\">\n\n <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_inbox.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\" translate>eo.inbox.list.title</div>\n </div>\n <div class=\"eo-header-actions\">\n <eo-icon class=\"button refresh-button\" [ngClass]=\"{inboxChanged: inboxChanged}\"\n (click)=\"cFilter.resetFilter(); refreshGrid()\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\n\n <eo-overlay #oFilter class=\"overlay-filter\" [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\" [iconTitle]=\"'eo.list.filter' | translate\">\n <eo-custom-filter #cFilter (change)=\"cFilter.updateGrid(eoList.eoGridSubject, $event)\"\n (active)=\"oFilter.onActiveChanged($event)\">\n <eo-text-filter [title]=\"'eo.inbox.filter.title' | translate\" [filterParams]=\"defaultFilterParams\"\n [id]=\"'inbox.text'\" [matchFields]=\"['title','description','id']\" [enableSave]=\"true\"></eo-text-filter>\n <eo-set-filter class=\"type-filters\" [operator]=\"'OR'\" [id]=\"'inbox.type'\" [filterParams]=\"defaultFilterParams\" [options]=\"typeFilterFields\"></eo-set-filter>\n <eo-set-filter class=\"inbox-filters\" [operator]=\"'AND'\" [id]=\"'inbox.set'\" [filterParams]=\"defaultFilterParams\" [options]=\"inboxFilterFields\"></eo-set-filter>\n </eo-custom-filter>\n </eo-overlay>\n\n <eo-overlay #oSort class=\"overlay-sort\" [iconSrc]=\"'assets/_default/svg/ic_sort.svg'\"\n [iconTitle]=\"'eo.list.sort' | translate\">\n <eo-custom-sort #cSort [id]=\"'inbox.sort'\" (change)=\"cSort.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oSort.onActiveChanged($event)\" [sortFields]=\"sortFields\"></eo-custom-sort>\n </eo-overlay>\n\n </div>\n </div>\n <div class=\"eo-body\">\n <eo-grid #eoGrid *ngIf=\"gridOptions?.rowData\" [gridOptions]=\"gridOptions\" [fullWidth]=\"true\" [showHeader]=\"true\"\n [showFooter]=\"true\" [selectFirst]=\"selectFirst\" [options]=\"{filterActive: oFilter.active}\"\n (eoGridCountChanged)=\"eoList.onCountChanged($event);onCountChanged($event)\"\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\n (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\n <div class=\"header\">\n </div>\n\n <div class=\"footer\">\n <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\n </div>\n\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_inbox.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.inbox.list.empty'}\"></eo-error-message>\n <eo-reset-filter [isFilterActive]=\"oFilter.active\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"></eo-reset-filter>\n </div>\n\n </eo-grid>\n </div>\n </eo-list-container>\n </ng-template>\n <!-- inbox details -->\n <ng-template yvcSplitArea [size]=\"30\">\n <eo-inbox-details [applySelection]=\"{in: inboxSelectionId, out: inboxDmsObjectSelectionId}\"\n [emptyState]=\"emptyState\" [plugins]=\"'inbox-details-tab.inbox' | plugins\">\n </eo-inbox-details>\n </ng-template>\n <!-- object details -->\n <ng-template yvcSplitArea [size]=\"40\">\n <eo-object-details [applySelection]=\"{in: inboxDmsObjectSelectionId}\" [cacheLayout]=\"'inbox.state.object-details'\"\n [plugins]=\"'object-details-tab.inbox' | plugins\">\n </eo-object-details>\n </ng-template>\n</yvc-split-view>", styles: [":host{position:absolute;left:var(--app-pane-padding);right:var(--app-pane-padding);top:var(--app-pane-padding);bottom:var(--app-pane-padding);overflow:hidden}:host yvc-split-view{height:100%}:host .inboxChanged{background:var(--color-success);color:#fff}:host .inboxChanged:hover{background:var(--color-success);color:#fff}:host ::ng-deep .ag-cell .list-item{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;align-items:center;height:80px}:host ::ng-deep .ag-cell .list-item[unselectable]{-webkit-user-select:none;-moz-user-select:none;user-select:none}:host ::ng-deep .ag-cell .list-item .content{flex:1;padding:var(--app-pane-padding);display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host ::ng-deep .ag-cell .list-item .content .notes>span{border-radius:2px;-webkit-border-radius:2px;background-color:var(--color-primary-4);color:#fff;font-size:var(--font-hint);padding:1px calc(var(--app-pane-padding) / 4) 0 calc(var(--app-pane-padding) / 4)}:host ::ng-deep .ag-cell .list-item .content .notes.pastDue span.period{background-color:var(--color-error)}:host ::ng-deep .ag-cell .list-item .content .title{font-weight:var(--font-weight-normal);font-size:var(--font-body)}:host ::ng-deep .ag-cell .list-item .content .title-bold{font-weight:var(--font-weight-bold);font-size:var(--font-body)}:host ::ng-deep .ag-cell .list-item .content .description{font-size:var(--font-caption);color:var(--text-color-caption)}:host ::ng-deep .ag-cell .list-item.read .title{font-weight:var(--font-weight-normal)}:host ::ng-deep .ag-cell .list-item .meta{padding:0 calc(var(--app-pane-padding) / 2);display:flex;flex-flow:column;align-items:flex-end}:host ::ng-deep .ag-cell .list-item .meta .date{color:rgba(var(--color-black-rgb),.4)}:host ::ng-deep .type-filters .option{margin:1.5em 0}:host ::ng-deep .inbox-filters{position:relative;bottom:15px;left:25px}\n"], dependencies: [{ kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i8.GridComponent, selector: "eo-grid", inputs: ["selectFirst", "selectionLimit", "sizeToFit", "fullWidth", "showHeader", "showFooter", "loaderContent", "options", "gridOptions"], outputs: ["eoGridCountChanged", "eoGridSelectionChanged", "eoGridFocusChanged", "eoGridCellClick", "eoGridDoubleClick", "eoGridContextMenuClick", "eoGridColumnResized"] }, { kind: "component", type: i9.TotalCountComponent, selector: "eo-total-count", inputs: ["eoGrid", "outsideGrid", "gridCount"] }, { kind: "component", type: i10.CustomSortComponent, selector: "eo-custom-sort", inputs: ["eoGrid", "overlay", "id", "sortFields"], outputs: ["change", "active"] }, { kind: "component", type: i11.CustomFilterComponent, selector: "eo-custom-filter", inputs: ["overlay", "eoGrid", "activeFilter", "isFilterActive"], outputs: ["change", "active", "onResetFilters"] }, { kind: "component", type: i12.TextFilterComponent, selector: "eo-text-filter", inputs: ["title", "placeholder", "enableSave", "filterParams", "matchFields"] }, { kind: "component", type: i13.SetFilterComponent, selector: "eo-set-filter", inputs: ["title", "searchLimit", "operator", "options", "filterParams"] }, { kind: "component", type: i14.ResetFilterComponent, selector: "eo-reset-filter", inputs: ["isFilterActive"] }, { kind: "directive", type: i15.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i16.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i17.OverlayComponent, selector: "eo-overlay", inputs: ["iconSrc", "badge", "iconClass", "styleClass", "active", "iconTitle"] }, { kind: "component", type: i18.ErrorMessageComponent, selector: "eo-error-message", inputs: ["emptyState"] }, { kind: "component", type: i19.ObjectDetailsComponent, selector: "eo-object-details", inputs: ["plugins", "reference", "searchTerm", "enableCompare", "recyclebinTabs", "enableDiff", "enableSync", "cacheLayout", "emptyState", "params", "params2", "item", "item2", "applySelection", "parseDmsParams"], outputs: ["hasContent"] }, { kind: "component", type: i20.InboxDetailsComponent, selector: "eo-inbox-details", inputs: ["plugins", "emptyState", "applySelection", "item"] }, { kind: "component", type: i21.ListContainerComponent, selector: "eo-list-container", inputs: ["applySelection", "applyVersion", "loading", "tabs", "parseDmsParams"] }, { kind: "component", type: i22.SplitViewComponent, selector: "yvc-split-view", inputs: ["direction", "gutterSize", "restrictMove", "disabled", "gutterDblClickDuration", "layoutSettingsID"], outputs: ["layoutSettingsChange", "dragStart", "dragEnd", "gutterClick", "gutterDblClick"] }, { kind: "directive", type: i22.SplitAreaDirective, selector: "[yvcSplitArea]", inputs: ["size", "order", "minSize", "maxSize", "panelClass", "visible"] }, { kind: "pipe", type: i15.TranslatePipe, name: "translate" }, { kind: "pipe", type: i23.PluginPipe, name: "plugins" }] });
206
+ InboxStateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: InboxStateComponent, selector: "eo-inbox-state", viewQueries: [{ propertyName: "eoGrid", first: true, predicate: ["eoGrid"], descendants: true }], ngImport: i0, template: "<yvc-split-view [layoutSettingsID]=\"'inbox.state'\">\n <!-- list -->\n <ng-template yvcSplitArea [size]=\"30\">\n <eo-list-container #eoList [applySelection]=\"{out: inboxSelectionId}\">\n <div class=\"eo-header\">\n\n <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_inbox.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\" translate>eo.inbox.list.title</div>\n </div>\n <div class=\"eo-header-actions\">\n <eo-icon class=\"button refresh-button\" [ngClass]=\"{inboxChanged: inboxChanged}\"\n (click)=\"cFilter.resetFilter(); refreshGrid()\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\n\n <eo-overlay #oFilter class=\"overlay-filter\" [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\" [iconTitle]=\"'eo.list.filter' | translate\">\n <eo-custom-filter #cFilter (change)=\"cFilter.updateGrid(eoList.eoGridSubject, $event)\"\n (active)=\"oFilter.onActiveChanged($event)\">\n <eo-text-filter [title]=\"'eo.inbox.filter.title' | translate\" [filterParams]=\"defaultFilterParams\"\n [id]=\"'inbox.text'\" [matchFields]=\"['title','description','id']\" [enableSave]=\"true\"></eo-text-filter>\n <eo-set-filter class=\"type-filters\" [operator]=\"'OR'\" [id]=\"'inbox.type'\" [filterParams]=\"defaultFilterParams\" [options]=\"typeFilterFields\"></eo-set-filter>\n <eo-set-filter class=\"inbox-filters\" [operator]=\"'AND'\" [id]=\"'inbox.set'\" [filterParams]=\"defaultFilterParams\" [options]=\"inboxFilterFields\"></eo-set-filter>\n </eo-custom-filter>\n </eo-overlay>\n\n <eo-overlay #oSort class=\"overlay-sort\" [iconSrc]=\"'assets/_default/svg/ic_sort.svg'\"\n [iconTitle]=\"'eo.list.sort' | translate\">\n <eo-custom-sort #cSort [id]=\"'inbox.sort'\" (change)=\"cSort.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oSort.onActiveChanged($event)\" [sortFields]=\"sortFields\"></eo-custom-sort>\n </eo-overlay>\n\n </div>\n </div>\n <div class=\"eo-body\">\n <eo-grid #eoGrid *ngIf=\"gridOptions?.rowData\" [gridOptions]=\"gridOptions\" [fullWidth]=\"true\" [showHeader]=\"true\"\n [showFooter]=\"true\" [selectFirst]=\"selectFirst\" [options]=\"{filterActive: oFilter.active}\"\n (eoGridCountChanged)=\"eoList.onCountChanged($event);onCountChanged($event)\"\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\n (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\n <div class=\"header\">\n </div>\n\n <div class=\"footer\">\n <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\n </div>\n\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_inbox.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.inbox.list.empty'}\"></eo-error-message>\n <eo-reset-filter [isFilterActive]=\"oFilter.active\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"></eo-reset-filter>\n </div>\n\n </eo-grid>\n </div>\n </eo-list-container>\n </ng-template>\n <!-- inbox details -->\n <ng-template yvcSplitArea [size]=\"30\">\n <eo-inbox-details [applySelection]=\"{in: inboxSelectionId, out: inboxDmsObjectSelectionId}\"\n [emptyState]=\"emptyState\" [plugins]=\"'inbox-details-tab.inbox' | plugins\">\n </eo-inbox-details>\n </ng-template>\n <!-- object details -->\n <ng-template yvcSplitArea [size]=\"40\">\n <eo-object-details [applySelection]=\"{in: inboxDmsObjectSelectionId}\" [cacheLayout]=\"'inbox.state.object-details'\"\n [plugins]=\"'object-details-tab.inbox' | plugins\">\n </eo-object-details>\n </ng-template>\n</yvc-split-view>", styles: [":host{position:absolute;left:var(--app-pane-padding);right:var(--app-pane-padding);top:var(--app-pane-padding);bottom:var(--app-pane-padding);overflow:hidden}:host yvc-split-view{height:100%}:host .inboxChanged{background:var(--color-success);color:#fff}:host .inboxChanged:hover{background:var(--color-success);color:#fff}:host ::ng-deep .ag-cell .list-item{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;align-items:center;height:80px}:host ::ng-deep .ag-cell .list-item[unselectable]{-webkit-user-select:none;-moz-user-select:none;user-select:none}:host ::ng-deep .ag-cell .list-item .content{flex:1;padding:var(--app-pane-padding);display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host ::ng-deep .ag-cell .list-item .content .notes>span{border-radius:2px;-webkit-border-radius:2px;background-color:var(--color-primary-4);color:#fff;font-size:var(--font-hint);padding:1px calc(var(--app-pane-padding) / 4) 0 calc(var(--app-pane-padding) / 4)}:host ::ng-deep .ag-cell .list-item .content .notes.pastDue span.period{background-color:var(--color-error)}:host ::ng-deep .ag-cell .list-item .content .title{font-weight:var(--font-weight-normal);font-size:var(--font-body)}:host ::ng-deep .ag-cell .list-item .content .title-bold{font-weight:var(--font-weight-bold);font-size:var(--font-body)}:host ::ng-deep .ag-cell .list-item .content .description{font-size:var(--font-caption);color:var(--text-color-caption)}:host ::ng-deep .ag-cell .list-item.read .title{font-weight:var(--font-weight-normal)}:host ::ng-deep .ag-cell .list-item .meta{padding:0 calc(var(--app-pane-padding) / 2);display:flex;flex-flow:column;align-items:flex-end}:host ::ng-deep .ag-cell .list-item .meta .date{color:rgba(var(--color-black-rgb),.4)}\n"], dependencies: [{ kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i8.GridComponent, selector: "eo-grid", inputs: ["selectFirst", "selectionLimit", "sizeToFit", "fullWidth", "showHeader", "showFooter", "loaderContent", "options", "gridOptions"], outputs: ["eoGridCountChanged", "eoGridSelectionChanged", "eoGridFocusChanged", "eoGridCellClick", "eoGridDoubleClick", "eoGridContextMenuClick", "eoGridColumnResized"] }, { kind: "component", type: i9.TotalCountComponent, selector: "eo-total-count", inputs: ["eoGrid", "outsideGrid", "gridCount"] }, { kind: "component", type: i10.CustomSortComponent, selector: "eo-custom-sort", inputs: ["eoGrid", "overlay", "id", "sortFields"], outputs: ["change", "active"] }, { kind: "component", type: i11.CustomFilterComponent, selector: "eo-custom-filter", inputs: ["overlay", "eoGrid", "activeFilter", "isFilterActive"], outputs: ["change", "active", "onResetFilters"] }, { kind: "component", type: i12.TextFilterComponent, selector: "eo-text-filter", inputs: ["title", "placeholder", "enableSave", "filterParams", "matchFields"] }, { kind: "component", type: i13.SetFilterComponent, selector: "eo-set-filter", inputs: ["title", "searchLimit", "operator", "options", "filterParams"] }, { kind: "component", type: i14.ResetFilterComponent, selector: "eo-reset-filter", inputs: ["isFilterActive"] }, { kind: "directive", type: i15.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i16.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i17.OverlayComponent, selector: "eo-overlay", inputs: ["iconSrc", "badge", "iconClass", "active", "iconTitle", "userAvatar"] }, { kind: "component", type: i18.ErrorMessageComponent, selector: "eo-error-message", inputs: ["emptyState"] }, { kind: "component", type: i19.ObjectDetailsComponent, selector: "eo-object-details", inputs: ["plugins", "reference", "searchTerm", "enableCompare", "recyclebinTabs", "enableDiff", "enableSync", "cacheLayout", "emptyState", "params", "params2", "item", "item2", "applySelection", "parseDmsParams"], outputs: ["hasContent"] }, { kind: "component", type: i20.InboxDetailsComponent, selector: "eo-inbox-details", inputs: ["plugins", "emptyState", "applySelection", "item"] }, { kind: "component", type: i21.ListContainerComponent, selector: "eo-list-container", inputs: ["applySelection", "applyVersion", "loading", "tabs", "parseDmsParams"] }, { kind: "component", type: i22.SplitViewComponent, selector: "yvc-split-view", inputs: ["direction", "gutterSize", "restrictMove", "disabled", "gutterDblClickDuration", "layoutSettingsID"], outputs: ["layoutSettingsChange", "dragStart", "dragEnd", "gutterClick", "gutterDblClick"] }, { kind: "directive", type: i22.SplitAreaDirective, selector: "[yvcSplitArea]", inputs: ["size", "order", "minSize", "maxSize", "panelClass", "visible"] }, { kind: "pipe", type: i15.TranslatePipe, name: "translate" }, { kind: "pipe", type: i23.PluginPipe, name: "plugins" }] });
207
207
  InboxStateComponent = __decorate([
208
208
  UntilDestroy()
209
209
  ], InboxStateComponent);
210
210
  export { InboxStateComponent };
211
211
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: InboxStateComponent, decorators: [{
212
212
  type: Component,
213
- args: [{ selector: 'eo-inbox-state', template: "<yvc-split-view [layoutSettingsID]=\"'inbox.state'\">\n <!-- list -->\n <ng-template yvcSplitArea [size]=\"30\">\n <eo-list-container #eoList [applySelection]=\"{out: inboxSelectionId}\">\n <div class=\"eo-header\">\n\n <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_inbox.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\" translate>eo.inbox.list.title</div>\n </div>\n <div class=\"eo-header-actions\">\n <eo-icon class=\"button refresh-button\" [ngClass]=\"{inboxChanged: inboxChanged}\"\n (click)=\"cFilter.resetFilter(); refreshGrid()\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\n\n <eo-overlay #oFilter class=\"overlay-filter\" [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\" [iconTitle]=\"'eo.list.filter' | translate\">\n <eo-custom-filter #cFilter (change)=\"cFilter.updateGrid(eoList.eoGridSubject, $event)\"\n (active)=\"oFilter.onActiveChanged($event)\">\n <eo-text-filter [title]=\"'eo.inbox.filter.title' | translate\" [filterParams]=\"defaultFilterParams\"\n [id]=\"'inbox.text'\" [matchFields]=\"['title','description','id']\" [enableSave]=\"true\"></eo-text-filter>\n <eo-set-filter class=\"type-filters\" [operator]=\"'OR'\" [id]=\"'inbox.type'\" [filterParams]=\"defaultFilterParams\" [options]=\"typeFilterFields\"></eo-set-filter>\n <eo-set-filter class=\"inbox-filters\" [operator]=\"'AND'\" [id]=\"'inbox.set'\" [filterParams]=\"defaultFilterParams\" [options]=\"inboxFilterFields\"></eo-set-filter>\n </eo-custom-filter>\n </eo-overlay>\n\n <eo-overlay #oSort class=\"overlay-sort\" [iconSrc]=\"'assets/_default/svg/ic_sort.svg'\"\n [iconTitle]=\"'eo.list.sort' | translate\">\n <eo-custom-sort #cSort [id]=\"'inbox.sort'\" (change)=\"cSort.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oSort.onActiveChanged($event)\" [sortFields]=\"sortFields\"></eo-custom-sort>\n </eo-overlay>\n\n </div>\n </div>\n <div class=\"eo-body\">\n <eo-grid #eoGrid *ngIf=\"gridOptions?.rowData\" [gridOptions]=\"gridOptions\" [fullWidth]=\"true\" [showHeader]=\"true\"\n [showFooter]=\"true\" [selectFirst]=\"selectFirst\" [options]=\"{filterActive: oFilter.active}\"\n (eoGridCountChanged)=\"eoList.onCountChanged($event);onCountChanged($event)\"\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\n (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\n <div class=\"header\">\n </div>\n\n <div class=\"footer\">\n <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\n </div>\n\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_inbox.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.inbox.list.empty'}\"></eo-error-message>\n <eo-reset-filter [isFilterActive]=\"oFilter.active\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"></eo-reset-filter>\n </div>\n\n </eo-grid>\n </div>\n </eo-list-container>\n </ng-template>\n <!-- inbox details -->\n <ng-template yvcSplitArea [size]=\"30\">\n <eo-inbox-details [applySelection]=\"{in: inboxSelectionId, out: inboxDmsObjectSelectionId}\"\n [emptyState]=\"emptyState\" [plugins]=\"'inbox-details-tab.inbox' | plugins\">\n </eo-inbox-details>\n </ng-template>\n <!-- object details -->\n <ng-template yvcSplitArea [size]=\"40\">\n <eo-object-details [applySelection]=\"{in: inboxDmsObjectSelectionId}\" [cacheLayout]=\"'inbox.state.object-details'\"\n [plugins]=\"'object-details-tab.inbox' | plugins\">\n </eo-object-details>\n </ng-template>\n</yvc-split-view>", styles: [":host{position:absolute;left:var(--app-pane-padding);right:var(--app-pane-padding);top:var(--app-pane-padding);bottom:var(--app-pane-padding);overflow:hidden}:host yvc-split-view{height:100%}:host .inboxChanged{background:var(--color-success);color:#fff}:host .inboxChanged:hover{background:var(--color-success);color:#fff}:host ::ng-deep .ag-cell .list-item{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;align-items:center;height:80px}:host ::ng-deep .ag-cell .list-item[unselectable]{-webkit-user-select:none;-moz-user-select:none;user-select:none}:host ::ng-deep .ag-cell .list-item .content{flex:1;padding:var(--app-pane-padding);display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host ::ng-deep .ag-cell .list-item .content .notes>span{border-radius:2px;-webkit-border-radius:2px;background-color:var(--color-primary-4);color:#fff;font-size:var(--font-hint);padding:1px calc(var(--app-pane-padding) / 4) 0 calc(var(--app-pane-padding) / 4)}:host ::ng-deep .ag-cell .list-item .content .notes.pastDue span.period{background-color:var(--color-error)}:host ::ng-deep .ag-cell .list-item .content .title{font-weight:var(--font-weight-normal);font-size:var(--font-body)}:host ::ng-deep .ag-cell .list-item .content .title-bold{font-weight:var(--font-weight-bold);font-size:var(--font-body)}:host ::ng-deep .ag-cell .list-item .content .description{font-size:var(--font-caption);color:var(--text-color-caption)}:host ::ng-deep .ag-cell .list-item.read .title{font-weight:var(--font-weight-normal)}:host ::ng-deep .ag-cell .list-item .meta{padding:0 calc(var(--app-pane-padding) / 2);display:flex;flex-flow:column;align-items:flex-end}:host ::ng-deep .ag-cell .list-item .meta .date{color:rgba(var(--color-black-rgb),.4)}:host ::ng-deep .type-filters .option{margin:1.5em 0}:host ::ng-deep .inbox-filters{position:relative;bottom:15px;left:25px}\n"] }]
213
+ args: [{ selector: 'eo-inbox-state', template: "<yvc-split-view [layoutSettingsID]=\"'inbox.state'\">\n <!-- list -->\n <ng-template yvcSplitArea [size]=\"30\">\n <eo-list-container #eoList [applySelection]=\"{out: inboxSelectionId}\">\n <div class=\"eo-header\">\n\n <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_inbox.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\" translate>eo.inbox.list.title</div>\n </div>\n <div class=\"eo-header-actions\">\n <eo-icon class=\"button refresh-button\" [ngClass]=\"{inboxChanged: inboxChanged}\"\n (click)=\"cFilter.resetFilter(); refreshGrid()\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\n\n <eo-overlay #oFilter class=\"overlay-filter\" [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\" [iconTitle]=\"'eo.list.filter' | translate\">\n <eo-custom-filter #cFilter (change)=\"cFilter.updateGrid(eoList.eoGridSubject, $event)\"\n (active)=\"oFilter.onActiveChanged($event)\">\n <eo-text-filter [title]=\"'eo.inbox.filter.title' | translate\" [filterParams]=\"defaultFilterParams\"\n [id]=\"'inbox.text'\" [matchFields]=\"['title','description','id']\" [enableSave]=\"true\"></eo-text-filter>\n <eo-set-filter class=\"type-filters\" [operator]=\"'OR'\" [id]=\"'inbox.type'\" [filterParams]=\"defaultFilterParams\" [options]=\"typeFilterFields\"></eo-set-filter>\n <eo-set-filter class=\"inbox-filters\" [operator]=\"'AND'\" [id]=\"'inbox.set'\" [filterParams]=\"defaultFilterParams\" [options]=\"inboxFilterFields\"></eo-set-filter>\n </eo-custom-filter>\n </eo-overlay>\n\n <eo-overlay #oSort class=\"overlay-sort\" [iconSrc]=\"'assets/_default/svg/ic_sort.svg'\"\n [iconTitle]=\"'eo.list.sort' | translate\">\n <eo-custom-sort #cSort [id]=\"'inbox.sort'\" (change)=\"cSort.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oSort.onActiveChanged($event)\" [sortFields]=\"sortFields\"></eo-custom-sort>\n </eo-overlay>\n\n </div>\n </div>\n <div class=\"eo-body\">\n <eo-grid #eoGrid *ngIf=\"gridOptions?.rowData\" [gridOptions]=\"gridOptions\" [fullWidth]=\"true\" [showHeader]=\"true\"\n [showFooter]=\"true\" [selectFirst]=\"selectFirst\" [options]=\"{filterActive: oFilter.active}\"\n (eoGridCountChanged)=\"eoList.onCountChanged($event);onCountChanged($event)\"\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\n (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\n <div class=\"header\">\n </div>\n\n <div class=\"footer\">\n <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\n </div>\n\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_inbox.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.inbox.list.empty'}\"></eo-error-message>\n <eo-reset-filter [isFilterActive]=\"oFilter.active\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"></eo-reset-filter>\n </div>\n\n </eo-grid>\n </div>\n </eo-list-container>\n </ng-template>\n <!-- inbox details -->\n <ng-template yvcSplitArea [size]=\"30\">\n <eo-inbox-details [applySelection]=\"{in: inboxSelectionId, out: inboxDmsObjectSelectionId}\"\n [emptyState]=\"emptyState\" [plugins]=\"'inbox-details-tab.inbox' | plugins\">\n </eo-inbox-details>\n </ng-template>\n <!-- object details -->\n <ng-template yvcSplitArea [size]=\"40\">\n <eo-object-details [applySelection]=\"{in: inboxDmsObjectSelectionId}\" [cacheLayout]=\"'inbox.state.object-details'\"\n [plugins]=\"'object-details-tab.inbox' | plugins\">\n </eo-object-details>\n </ng-template>\n</yvc-split-view>", styles: [":host{position:absolute;left:var(--app-pane-padding);right:var(--app-pane-padding);top:var(--app-pane-padding);bottom:var(--app-pane-padding);overflow:hidden}:host yvc-split-view{height:100%}:host .inboxChanged{background:var(--color-success);color:#fff}:host .inboxChanged:hover{background:var(--color-success);color:#fff}:host ::ng-deep .ag-cell .list-item{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;align-items:center;height:80px}:host ::ng-deep .ag-cell .list-item[unselectable]{-webkit-user-select:none;-moz-user-select:none;user-select:none}:host ::ng-deep .ag-cell .list-item .content{flex:1;padding:var(--app-pane-padding);display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host ::ng-deep .ag-cell .list-item .content .notes>span{border-radius:2px;-webkit-border-radius:2px;background-color:var(--color-primary-4);color:#fff;font-size:var(--font-hint);padding:1px calc(var(--app-pane-padding) / 4) 0 calc(var(--app-pane-padding) / 4)}:host ::ng-deep .ag-cell .list-item .content .notes.pastDue span.period{background-color:var(--color-error)}:host ::ng-deep .ag-cell .list-item .content .title{font-weight:var(--font-weight-normal);font-size:var(--font-body)}:host ::ng-deep .ag-cell .list-item .content .title-bold{font-weight:var(--font-weight-bold);font-size:var(--font-body)}:host ::ng-deep .ag-cell .list-item .content .description{font-size:var(--font-caption);color:var(--text-color-caption)}:host ::ng-deep .ag-cell .list-item.read .title{font-weight:var(--font-weight-normal)}:host ::ng-deep .ag-cell .list-item .meta{padding:0 calc(var(--app-pane-padding) / 2);display:flex;flex-flow:column;align-items:flex-end}:host ::ng-deep .ag-cell .list-item .meta .date{color:rgba(var(--color-black-rgb),.4)}\n"] }]
214
214
  }], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: i2.SelectionService }, { type: i3.PageTitleService }, { type: i1.InboxService }, { type: i4.PendingChangesService }, { type: i5.EmptyStateService }, { type: i1.EventService }, { type: i6.ActivatedRoute }, { type: i1.LocalStorageService }]; }, propDecorators: { eoGrid: [{
215
215
  type: ViewChild,
216
216
  args: ['eoGrid']
@@ -28,6 +28,7 @@ export class LoginComponent {
28
28
  this.profiles = [];
29
29
  this.loading = false;
30
30
  this.invalid = false;
31
+ this.licenseExceeded = false;
31
32
  this.native = false;
32
33
  this.showAbsentDialog = false;
33
34
  this.removeProfile = (p) => p;
@@ -65,6 +66,7 @@ export class LoginComponent {
65
66
  login() {
66
67
  this.loading = true;
67
68
  this.invalid = false;
69
+ this.licenseExceeded = false;
68
70
  observableOf(null).pipe(switchMap(() => {
69
71
  return this.authService.login(this.form.host, this.form.username, this.form.password);
70
72
  }), finalize(() => (this.loading = false))).subscribe(() => {
@@ -78,9 +80,14 @@ export class LoginComponent {
78
80
  this.cd.markForCheck();
79
81
  });
80
82
  }
81
- }, Utils.throw(() => {
82
- this.invalid = true;
83
- }));
83
+ }, Utils.throw((error) => {
84
+ if (error.status === 429) {
85
+ this.licenseExceeded = true;
86
+ }
87
+ else {
88
+ this.invalid = true;
89
+ }
90
+ }, undefined, undefined, true));
84
91
  }
85
92
  closeShowAbsentDialog(setAsPresent = false) {
86
93
  this.showAbsentDialog = false;
@@ -93,12 +100,12 @@ export class LoginComponent {
93
100
  }
94
101
  }
95
102
  LoginComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: LoginComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }, { token: i2.Config }, { token: i3.PageTitleService }, { token: i2.TranslateService }, { token: i4.DomSanitizer }, { token: i0.ChangeDetectorRef }, { token: i2.AuthService }, { token: i2.UserService }], target: i0.ɵɵFactoryTarget.Component });
96
- LoginComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: LoginComponent, selector: "eo-login", viewQueries: [{ propertyName: "setAsPresentButton", first: true, predicate: ["setAsPresent"], descendants: true }], ngImport: i0, template: "<div class=\"eo-login-container\" [style.background-image]=\"backgroundImage\">\n <div class=\"eo-login\">\n\n <div class=\"head\">\n <eo-icon [iconSrc]=\"appLogo\"></eo-icon>\n </div>\n\n <div class=\"invalid\" *ngIf=\"invalid\" translate>eo.state.login.msg.invalid</div>\n\n <form (ngSubmit)=\"login()\" #loginForm=\"ngForm\">\n\n <fieldset [ngClass]=\"{loading: loading}\">\n\n <div class=\"form-item\" *ngIf=\"native\" [ngClass]=\"{empty: !profiles || profiles.length === 0}\">\n <yvc-dropdown [options]=\"profiles\" placeholder=\"host\"\n [required]=\"true\"\n [(ngModel)]=\"form.host\" name=\"profile\">\n <ng-template let-profile pTemplate=\"item\">\n <div class=\"option-row\">\n <div>{{profile.label}}</div>\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"\n (click)=\"removeProfile(profile.value)\"></eo-icon>\n </div>\n </ng-template>\n </yvc-dropdown>\n <label translate>eo.state.login.host</label>\n </div>\n\n <!-- form login -->\n <div class=\"form-item\">\n <input type=\"text\" class=\"form-control\" id=\"username\" placeholder=\"{{'eo.state.login.username'|translate}}\"\n [disabled]=\"loading\" autofocus\n [(ngModel)]=\"form.username\" name=\"username\" required tabindex=\"1\">\n <label for=\"username\" translate>eo.state.login.username</label>\n </div>\n <div class=\"form-item\">\n <input type=\"password\" class=\"form-control\" id=\"password\"\n placeholder=\"{{'eo.state.login.password'|translate}}\"\n [disabled]=\"loading\"\n [(ngModel)]=\"form.password\" name=\"password\" required tabindex=\"2\">\n <label for=\"password\" translate>eo.state.login.password</label>\n </div>\n\n </fieldset>\n <div class=\"actions\">\n <button type=\"submit\" class=\"primary\" [disabled]=\"!loginForm.form.valid || loading\"\n [ngClass]=\"{spinner: loading}\"\n translate tabindex=\"3\">eo.state.login.submit</button>\n </div>\n </form>\n </div>\n</div>\n\n<eo-dialog [title]=\"'eo.state.login.presence.dialog.title' | translate\" [(visible)]=\"showAbsentDialog\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'login-presence__dialog'\">\n\n <div>\n <span>{{'eo.state.login.presence.dialog.message' | translate}}</span>\n </div>\n\n <div class=\"action-buttons login-presence--action-buttons flex-row\">\n <button type=\"button\" class=\"button cancel\" (click)=\"closeShowAbsentDialog()\"\n translate>eo.state.login.presence.dialog.cancel</button>\n <button type=\"button\" #setAsPresent (click)=\"closeShowAbsentDialog(true)\" class=\"button primary\"\n translate>eo.state.login.presence.dialog.setAsPresent</button>\n </div>\n</eo-dialog>\n", styles: [":host{position:absolute;inset:0;display:flex;flex-flow:row;align-items:stretch;justify-content:center}.eo-login-container{width:100%;display:flex;justify-content:center;background-size:cover;background-position:center center}.eo-login-container .eo-login{width:400px;display:flex;flex-flow:column;align-items:stretch;justify-content:center}@media screen and (max-width: 432px){.eo-login-container .eo-login{width:100%;box-sizing:border-box;padding:0 var(--app-pane-padding)}}.eo-login-container .eo-login .head{padding-bottom:calc(var(--app-pane-padding) * 3);display:flex;justify-content:flex-end}.eo-login-container .eo-login .head eo-icon{width:60%;height:auto;margin:0;min-width:120px;color:var(--text-color-hint)}.eo-login-container .eo-login .invalid{color:var(--color-error);margin-bottom:var(--app-pane-padding)}.eo-login-container .eo-login fieldset{background:var(--color-white);border:0;padding:0;border-radius:2px;box-shadow:0 2px 8px 0 rgba(var(--color-black-rgb),.26)}.eo-login-container .eo-login fieldset .form-item{display:flex;flex-flow:row nowrap;align-items:center;border-bottom:1px solid var(--list-item-border-color)}.eo-login-container .eo-login fieldset .form-item>*{flex:1 1 auto}.eo-login-container .eo-login fieldset .form-item label{flex:0 0 auto;color:var(--text-color-caption);padding:0 calc(var(--app-pane-padding) / 2)}.eo-login-container .eo-login fieldset input{width:100%;background:transparent;box-sizing:border-box;margin:0;padding:calc(var(--app-pane-padding) * .75) calc(var(--app-pane-padding) / 2);border:0}.eo-login-container .eo-login fieldset input:-webkit-autofill{-webkit-box-shadow:0 0 0 30px white inset}.eo-login-container .eo-login fieldset input:last-child{border-bottom:0}.eo-login-container .eo-login fieldset.loading,.eo-login-container .eo-login fieldset.empty .ui-dropdown-trigger{opacity:.5}.eo-login-container .eo-login .actions{display:flex;flex-flow:row nowrap;justify-content:flex-end}.eo-login-container .eo-login .actions button{margin-top:var(--app-pane-padding)}.eo-login-container .eo-login .actions button[disabled]{opacity:.9}::ng-deep .login-presence__dialog{padding:8px;min-height:unset!important}::ng-deep .login-presence__dialog--header{font-size:1.17em!important;font-weight:400!important;color:rgba(var(--color-black-rgb),.54)!important;padding:0 0 1em!important;margin:0;background:white!important}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i7.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i8.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i9.EoDialogComponent, selector: "eo-dialog", inputs: ["hasPreviewFile", "title", "subtitle", "styleClass", "dirtyCheck", "minWidth", "minHeight", "height", "width", "focusOnShow", "align", "isFormTable", "showPreview", "visible"], outputs: ["onTogglePreview", "visibleChange", "hide", "show"] }, { kind: "component", type: i10.Dropdown, selector: "yvc-dropdown", inputs: ["options", "filter", "disabled", "multiple", "disableClearButton"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] });
103
+ LoginComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: LoginComponent, selector: "eo-login", viewQueries: [{ propertyName: "setAsPresentButton", first: true, predicate: ["setAsPresent"], descendants: true }], ngImport: i0, template: "<div class=\"eo-login-container\" [style.background-image]=\"backgroundImage\">\n <div class=\"eo-login\">\n\n <div class=\"head\">\n <eo-icon [iconSrc]=\"appLogo\"></eo-icon>\n </div>\n\n <div class=\"invalid\" *ngIf=\"invalid\" translate>eo.state.login.msg.invalid</div>\n <div class=\"invalid\" *ngIf=\"licenseExceeded\" translate>eo.state.login.msg.licenseExceeded</div>\n\n <form (ngSubmit)=\"login()\" #loginForm=\"ngForm\">\n\n <fieldset [ngClass]=\"{loading: loading}\">\n\n <div class=\"form-item\" *ngIf=\"native\" [ngClass]=\"{empty: !profiles || profiles.length === 0}\">\n <yvc-dropdown [options]=\"profiles\" placeholder=\"host\"\n [required]=\"true\"\n [(ngModel)]=\"form.host\" name=\"profile\">\n <ng-template let-profile pTemplate=\"item\">\n <div class=\"option-row\">\n <div>{{profile.label}}</div>\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"\n (click)=\"removeProfile(profile.value)\"></eo-icon>\n </div>\n </ng-template>\n </yvc-dropdown>\n <label translate>eo.state.login.host</label>\n </div>\n\n <!-- form login -->\n <div class=\"form-item\">\n <input type=\"text\" class=\"form-control\" id=\"username\" placeholder=\"{{'eo.state.login.username'|translate}}\"\n [disabled]=\"loading\" autofocus\n [(ngModel)]=\"form.username\" name=\"username\" required tabindex=\"1\">\n <label for=\"username\" translate>eo.state.login.username</label>\n </div>\n <div class=\"form-item\">\n <input type=\"password\" class=\"form-control\" id=\"password\"\n placeholder=\"{{'eo.state.login.password'|translate}}\"\n [disabled]=\"loading\"\n [(ngModel)]=\"form.password\" name=\"password\" required tabindex=\"2\">\n <label for=\"password\" translate>eo.state.login.password</label>\n </div>\n\n </fieldset>\n <div class=\"actions\">\n <button type=\"submit\" class=\"primary\" [disabled]=\"!loginForm.form.valid || loading\"\n [ngClass]=\"{spinner: loading}\"\n translate tabindex=\"3\">eo.state.login.submit</button>\n </div>\n </form>\n </div>\n</div>\n\n<eo-dialog [title]=\"'eo.state.login.presence.dialog.title' | translate\" [(visible)]=\"showAbsentDialog\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'login-presence__dialog'\">\n\n <div>\n <span>{{'eo.state.login.presence.dialog.message' | translate}}</span>\n </div>\n\n <div class=\"action-buttons login-presence--action-buttons flex-row\">\n <button type=\"button\" class=\"button cancel\" (click)=\"closeShowAbsentDialog()\"\n translate>eo.state.login.presence.dialog.cancel</button>\n <button type=\"button\" #setAsPresent (click)=\"closeShowAbsentDialog(true)\" class=\"button primary\"\n translate>eo.state.login.presence.dialog.setAsPresent</button>\n </div>\n</eo-dialog>\n", styles: [":host{position:absolute;inset:0;display:flex;flex-flow:row;align-items:stretch;justify-content:center}.eo-login-container{width:100%;display:flex;justify-content:center;background-size:cover;background-position:center center}.eo-login-container .eo-login{width:400px;display:flex;flex-flow:column;align-items:stretch;justify-content:center}@media screen and (max-width: 432px){.eo-login-container .eo-login{width:100%;box-sizing:border-box;padding:0 var(--app-pane-padding)}}.eo-login-container .eo-login .head{padding-bottom:calc(var(--app-pane-padding) * 3);display:flex;justify-content:flex-end}.eo-login-container .eo-login .head eo-icon{width:60%;height:auto;margin:0;min-width:120px;color:var(--text-color-hint)}.eo-login-container .eo-login .invalid{color:var(--color-error);margin-bottom:var(--app-pane-padding)}.eo-login-container .eo-login fieldset{background:var(--color-white);border:0;padding:0;border-radius:2px;box-shadow:0 2px 8px 0 rgba(var(--color-black-rgb),.26)}.eo-login-container .eo-login fieldset .form-item{display:flex;flex-flow:row nowrap;align-items:center;border-bottom:1px solid var(--list-item-border-color)}.eo-login-container .eo-login fieldset .form-item>*{flex:1 1 auto}.eo-login-container .eo-login fieldset .form-item label{flex:0 0 auto;color:var(--text-color-caption);padding:0 calc(var(--app-pane-padding) / 2)}.eo-login-container .eo-login fieldset input{width:100%;background:transparent;box-sizing:border-box;margin:0;padding:calc(var(--app-pane-padding) * .75) calc(var(--app-pane-padding) / 2);border:0}.eo-login-container .eo-login fieldset input:-webkit-autofill{-webkit-box-shadow:0 0 0 30px white inset}.eo-login-container .eo-login fieldset input:last-child{border-bottom:0}.eo-login-container .eo-login fieldset.loading,.eo-login-container .eo-login fieldset.empty .ui-dropdown-trigger{opacity:.5}.eo-login-container .eo-login .actions{display:flex;flex-flow:row nowrap;justify-content:flex-end}.eo-login-container .eo-login .actions button{margin-top:var(--app-pane-padding)}.eo-login-container .eo-login .actions button[disabled]{opacity:.9}::ng-deep .login-presence__dialog{padding:8px;min-height:unset!important}::ng-deep .login-presence__dialog--header{font-size:1.17em!important;font-weight:400!important;color:rgba(var(--color-black-rgb),.54)!important;padding:0 0 1em!important;margin:0;background:white!important}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i7.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i8.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i9.EoDialogComponent, selector: "eo-dialog", inputs: ["hasPreviewFile", "title", "subtitle", "styleClass", "dirtyCheck", "minWidth", "minHeight", "height", "width", "focusOnShow", "align", "isFormTable", "showPreview", "visible"], outputs: ["onTogglePreview", "visibleChange", "hide", "show"] }, { kind: "component", type: i10.Dropdown, selector: "yvc-dropdown", inputs: ["options", "filter", "disabled", "multiple", "disableClearButton"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] });
97
104
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: LoginComponent, decorators: [{
98
105
  type: Component,
99
- args: [{ selector: 'eo-login', template: "<div class=\"eo-login-container\" [style.background-image]=\"backgroundImage\">\n <div class=\"eo-login\">\n\n <div class=\"head\">\n <eo-icon [iconSrc]=\"appLogo\"></eo-icon>\n </div>\n\n <div class=\"invalid\" *ngIf=\"invalid\" translate>eo.state.login.msg.invalid</div>\n\n <form (ngSubmit)=\"login()\" #loginForm=\"ngForm\">\n\n <fieldset [ngClass]=\"{loading: loading}\">\n\n <div class=\"form-item\" *ngIf=\"native\" [ngClass]=\"{empty: !profiles || profiles.length === 0}\">\n <yvc-dropdown [options]=\"profiles\" placeholder=\"host\"\n [required]=\"true\"\n [(ngModel)]=\"form.host\" name=\"profile\">\n <ng-template let-profile pTemplate=\"item\">\n <div class=\"option-row\">\n <div>{{profile.label}}</div>\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"\n (click)=\"removeProfile(profile.value)\"></eo-icon>\n </div>\n </ng-template>\n </yvc-dropdown>\n <label translate>eo.state.login.host</label>\n </div>\n\n <!-- form login -->\n <div class=\"form-item\">\n <input type=\"text\" class=\"form-control\" id=\"username\" placeholder=\"{{'eo.state.login.username'|translate}}\"\n [disabled]=\"loading\" autofocus\n [(ngModel)]=\"form.username\" name=\"username\" required tabindex=\"1\">\n <label for=\"username\" translate>eo.state.login.username</label>\n </div>\n <div class=\"form-item\">\n <input type=\"password\" class=\"form-control\" id=\"password\"\n placeholder=\"{{'eo.state.login.password'|translate}}\"\n [disabled]=\"loading\"\n [(ngModel)]=\"form.password\" name=\"password\" required tabindex=\"2\">\n <label for=\"password\" translate>eo.state.login.password</label>\n </div>\n\n </fieldset>\n <div class=\"actions\">\n <button type=\"submit\" class=\"primary\" [disabled]=\"!loginForm.form.valid || loading\"\n [ngClass]=\"{spinner: loading}\"\n translate tabindex=\"3\">eo.state.login.submit</button>\n </div>\n </form>\n </div>\n</div>\n\n<eo-dialog [title]=\"'eo.state.login.presence.dialog.title' | translate\" [(visible)]=\"showAbsentDialog\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'login-presence__dialog'\">\n\n <div>\n <span>{{'eo.state.login.presence.dialog.message' | translate}}</span>\n </div>\n\n <div class=\"action-buttons login-presence--action-buttons flex-row\">\n <button type=\"button\" class=\"button cancel\" (click)=\"closeShowAbsentDialog()\"\n translate>eo.state.login.presence.dialog.cancel</button>\n <button type=\"button\" #setAsPresent (click)=\"closeShowAbsentDialog(true)\" class=\"button primary\"\n translate>eo.state.login.presence.dialog.setAsPresent</button>\n </div>\n</eo-dialog>\n", styles: [":host{position:absolute;inset:0;display:flex;flex-flow:row;align-items:stretch;justify-content:center}.eo-login-container{width:100%;display:flex;justify-content:center;background-size:cover;background-position:center center}.eo-login-container .eo-login{width:400px;display:flex;flex-flow:column;align-items:stretch;justify-content:center}@media screen and (max-width: 432px){.eo-login-container .eo-login{width:100%;box-sizing:border-box;padding:0 var(--app-pane-padding)}}.eo-login-container .eo-login .head{padding-bottom:calc(var(--app-pane-padding) * 3);display:flex;justify-content:flex-end}.eo-login-container .eo-login .head eo-icon{width:60%;height:auto;margin:0;min-width:120px;color:var(--text-color-hint)}.eo-login-container .eo-login .invalid{color:var(--color-error);margin-bottom:var(--app-pane-padding)}.eo-login-container .eo-login fieldset{background:var(--color-white);border:0;padding:0;border-radius:2px;box-shadow:0 2px 8px 0 rgba(var(--color-black-rgb),.26)}.eo-login-container .eo-login fieldset .form-item{display:flex;flex-flow:row nowrap;align-items:center;border-bottom:1px solid var(--list-item-border-color)}.eo-login-container .eo-login fieldset .form-item>*{flex:1 1 auto}.eo-login-container .eo-login fieldset .form-item label{flex:0 0 auto;color:var(--text-color-caption);padding:0 calc(var(--app-pane-padding) / 2)}.eo-login-container .eo-login fieldset input{width:100%;background:transparent;box-sizing:border-box;margin:0;padding:calc(var(--app-pane-padding) * .75) calc(var(--app-pane-padding) / 2);border:0}.eo-login-container .eo-login fieldset input:-webkit-autofill{-webkit-box-shadow:0 0 0 30px white inset}.eo-login-container .eo-login fieldset input:last-child{border-bottom:0}.eo-login-container .eo-login fieldset.loading,.eo-login-container .eo-login fieldset.empty .ui-dropdown-trigger{opacity:.5}.eo-login-container .eo-login .actions{display:flex;flex-flow:row nowrap;justify-content:flex-end}.eo-login-container .eo-login .actions button{margin-top:var(--app-pane-padding)}.eo-login-container .eo-login .actions button[disabled]{opacity:.9}::ng-deep .login-presence__dialog{padding:8px;min-height:unset!important}::ng-deep .login-presence__dialog--header{font-size:1.17em!important;font-weight:400!important;color:rgba(var(--color-black-rgb),.54)!important;padding:0 0 1em!important;margin:0;background:white!important}\n"] }]
106
+ args: [{ selector: 'eo-login', template: "<div class=\"eo-login-container\" [style.background-image]=\"backgroundImage\">\n <div class=\"eo-login\">\n\n <div class=\"head\">\n <eo-icon [iconSrc]=\"appLogo\"></eo-icon>\n </div>\n\n <div class=\"invalid\" *ngIf=\"invalid\" translate>eo.state.login.msg.invalid</div>\n <div class=\"invalid\" *ngIf=\"licenseExceeded\" translate>eo.state.login.msg.licenseExceeded</div>\n\n <form (ngSubmit)=\"login()\" #loginForm=\"ngForm\">\n\n <fieldset [ngClass]=\"{loading: loading}\">\n\n <div class=\"form-item\" *ngIf=\"native\" [ngClass]=\"{empty: !profiles || profiles.length === 0}\">\n <yvc-dropdown [options]=\"profiles\" placeholder=\"host\"\n [required]=\"true\"\n [(ngModel)]=\"form.host\" name=\"profile\">\n <ng-template let-profile pTemplate=\"item\">\n <div class=\"option-row\">\n <div>{{profile.label}}</div>\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"\n (click)=\"removeProfile(profile.value)\"></eo-icon>\n </div>\n </ng-template>\n </yvc-dropdown>\n <label translate>eo.state.login.host</label>\n </div>\n\n <!-- form login -->\n <div class=\"form-item\">\n <input type=\"text\" class=\"form-control\" id=\"username\" placeholder=\"{{'eo.state.login.username'|translate}}\"\n [disabled]=\"loading\" autofocus\n [(ngModel)]=\"form.username\" name=\"username\" required tabindex=\"1\">\n <label for=\"username\" translate>eo.state.login.username</label>\n </div>\n <div class=\"form-item\">\n <input type=\"password\" class=\"form-control\" id=\"password\"\n placeholder=\"{{'eo.state.login.password'|translate}}\"\n [disabled]=\"loading\"\n [(ngModel)]=\"form.password\" name=\"password\" required tabindex=\"2\">\n <label for=\"password\" translate>eo.state.login.password</label>\n </div>\n\n </fieldset>\n <div class=\"actions\">\n <button type=\"submit\" class=\"primary\" [disabled]=\"!loginForm.form.valid || loading\"\n [ngClass]=\"{spinner: loading}\"\n translate tabindex=\"3\">eo.state.login.submit</button>\n </div>\n </form>\n </div>\n</div>\n\n<eo-dialog [title]=\"'eo.state.login.presence.dialog.title' | translate\" [(visible)]=\"showAbsentDialog\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'login-presence__dialog'\">\n\n <div>\n <span>{{'eo.state.login.presence.dialog.message' | translate}}</span>\n </div>\n\n <div class=\"action-buttons login-presence--action-buttons flex-row\">\n <button type=\"button\" class=\"button cancel\" (click)=\"closeShowAbsentDialog()\"\n translate>eo.state.login.presence.dialog.cancel</button>\n <button type=\"button\" #setAsPresent (click)=\"closeShowAbsentDialog(true)\" class=\"button primary\"\n translate>eo.state.login.presence.dialog.setAsPresent</button>\n </div>\n</eo-dialog>\n", styles: [":host{position:absolute;inset:0;display:flex;flex-flow:row;align-items:stretch;justify-content:center}.eo-login-container{width:100%;display:flex;justify-content:center;background-size:cover;background-position:center center}.eo-login-container .eo-login{width:400px;display:flex;flex-flow:column;align-items:stretch;justify-content:center}@media screen and (max-width: 432px){.eo-login-container .eo-login{width:100%;box-sizing:border-box;padding:0 var(--app-pane-padding)}}.eo-login-container .eo-login .head{padding-bottom:calc(var(--app-pane-padding) * 3);display:flex;justify-content:flex-end}.eo-login-container .eo-login .head eo-icon{width:60%;height:auto;margin:0;min-width:120px;color:var(--text-color-hint)}.eo-login-container .eo-login .invalid{color:var(--color-error);margin-bottom:var(--app-pane-padding)}.eo-login-container .eo-login fieldset{background:var(--color-white);border:0;padding:0;border-radius:2px;box-shadow:0 2px 8px 0 rgba(var(--color-black-rgb),.26)}.eo-login-container .eo-login fieldset .form-item{display:flex;flex-flow:row nowrap;align-items:center;border-bottom:1px solid var(--list-item-border-color)}.eo-login-container .eo-login fieldset .form-item>*{flex:1 1 auto}.eo-login-container .eo-login fieldset .form-item label{flex:0 0 auto;color:var(--text-color-caption);padding:0 calc(var(--app-pane-padding) / 2)}.eo-login-container .eo-login fieldset input{width:100%;background:transparent;box-sizing:border-box;margin:0;padding:calc(var(--app-pane-padding) * .75) calc(var(--app-pane-padding) / 2);border:0}.eo-login-container .eo-login fieldset input:-webkit-autofill{-webkit-box-shadow:0 0 0 30px white inset}.eo-login-container .eo-login fieldset input:last-child{border-bottom:0}.eo-login-container .eo-login fieldset.loading,.eo-login-container .eo-login fieldset.empty .ui-dropdown-trigger{opacity:.5}.eo-login-container .eo-login .actions{display:flex;flex-flow:row nowrap;justify-content:flex-end}.eo-login-container .eo-login .actions button{margin-top:var(--app-pane-padding)}.eo-login-container .eo-login .actions button[disabled]{opacity:.9}::ng-deep .login-presence__dialog{padding:8px;min-height:unset!important}::ng-deep .login-presence__dialog--header{font-size:1.17em!important;font-weight:400!important;color:rgba(var(--color-black-rgb),.54)!important;padding:0 0 1em!important;margin:0;background:white!important}\n"] }]
100
107
  }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.Config }, { type: i3.PageTitleService }, { type: i2.TranslateService }, { type: i4.DomSanitizer }, { type: i0.ChangeDetectorRef }, { type: i2.AuthService }, { type: i2.UserService }]; }, propDecorators: { setAsPresentButton: [{
101
108
  type: ViewChild,
102
109
  args: ['setAsPresent']
103
110
  }] } });
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvbG9naW4vbG9naW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvbG9naW4vbG9naW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsRUFBRSxJQUFJLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN4QyxPQUFPLEVBQUMsU0FBUyxFQUE2QixTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFHMUYsT0FBTyxFQUFjLEtBQUssRUFBVSxnQkFBZ0IsRUFBZ0MsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7Ozs7OztBQVF6RyxNQUFNLE9BQU8sY0FBYztJQWV6QixZQUFvQixLQUFxQixFQUNyQixNQUFjLEVBQ2QsTUFBYyxFQUNkLFlBQThCLEVBQzlCLFNBQTJCLEVBQzNCLFNBQXVCLEVBQ3ZCLEVBQXFCLEVBQ3JCLFdBQXdCLEVBQ3hCLFdBQXdCO1FBUnhCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsaUJBQVksR0FBWixZQUFZLENBQWtCO1FBQzlCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFDdkIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFDckIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFsQjVDLFNBQUksR0FBUSxFQUFFLENBQUM7UUFDZixhQUFRLEdBQXFDLEVBQUUsQ0FBQztRQUNoRCxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hC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QyxZQUFZLEVBQUUsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OzJHQTVGVSxjQUFjOytGQUFkLGNBQWMsb0tDYjNCLHErRkFtRUE7MkZEdERhLGNBQWM7a0JBTDFCLFNBQVM7K0JBQ0UsVUFBVTs0VEFNTyxrQkFBa0I7c0JBQTVDLFNBQVM7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZmluYWxpemUsIHN3aXRjaE1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtvZiBhcyBvYnNlcnZhYmxlT2Z9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtDb21wb25lbnQsIE9uSW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIFZpZXdDaGlsZCwgRWxlbWVudFJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0RvbVNhbml0aXplciwgU2FmZVJlc291cmNlVXJsfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7QXV0aFNlcnZpY2UsIFV0aWxzLCBDb25maWcsIEVudmlyb25tZW50RW5haW8sIFRyYW5zbGF0ZVNlcnZpY2UsIFVzZXJTZXJ2aWNlfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtQYWdlVGl0bGVTZXJ2aWNlfSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmstY29yZS90aXRsZS9wYWdlLXRpdGxlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1sb2dpbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9sb2dpbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xvZ2luLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTG9naW5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBWaWV3Q2hpbGQoJ3NldEFzUHJlc2VudCcpIHNldEFzUHJlc2VudEJ1dHRvbjogRWxlbWVudFJlZjtcbiAgYmFja2dyb3VuZEltYWdlOiBTYWZlUmVzb3VyY2VVcmw7XG4gIGFwcExvZ286IHN0cmluZztcbiAgZm9ybTogYW55ID0ge307XG4gIHByb2ZpbGVzOiB7bGFiZWw6IHN0cmluZywgdmFsdWU6IHN0cmluZ31bXSA9IFtdO1xuICBsb2FkaW5nID0gZmFsc2U7XG4gIGludmFsaWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSByZXR1cm5Vcmw6IHN0cmluZztcbiAgbmF0aXZlID0gZmFsc2U7XG4gIHVybFRvTmF2aWdhdGU6IHN0cmluZztcbiAgc2hvd0Fic2VudERpYWxvZyA9IGZhbHNlO1xuICByZW1vdmVQcm9maWxlID0gKHApID0+IHA7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgY29uZmlnOiBDb25maWcsXG4gICAgICAgICAgICAgIHByaXZhdGUgdGl0bGVTZXJ2aWNlOiBQYWdlVGl0bGVTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgICAgICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSkge1xuXG4gICAgdGhpcy5iYWNrZ3JvdW5kSW1hZ2UgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0U3R5bGUoYHVybCgke3RoaXMuY29uZmlnLmdldERhc2hib2FyZEJhY2tncm91bmRJbWFnZSgpfSlgKTtcbiAgICB0aGlzLnRpdGxlU2VydmljZS5zZXREZWZhdWx0VGl0bGUoKTtcbiAgICAvLyBpZiB3ZSBhcmUgbm8gd2ViIGFwcCAoZS5nLiBjb3Jkb3ZhIG9yIGVsZWN0cm9uKSB0aGUgbG9naW5cbiAgICAvLyBmb3JtIHdpbGwgYmUgZXh0ZW5kZWQgYnkgYSBmaWVsZCBmb3Igc2VsZWN0aW5nIGEgdGFyZ2V0IGhvc3RcbiAgICB0aGlzLm5hdGl2ZSA9ICFFbnZpcm9ubWVudEVuYWlvLmlzV2ViRW52aXJvbm1lbnQoKTtcbiAgICB0aGlzLnByb2ZpbGVzID0gYXV0aFNlcnZpY2UuaG9zdHMubWFwKGhvc3QgPT4gKHtcbiAgICAgIGxhYmVsOiBob3N0ID8gaG9zdCA6ICdsb2NhbCcsXG4gICAgICB2YWx1ZTogaG9zdCB8fCAnJ1xuICAgIH0pKTtcbiAgICB0aGlzLmFwcExvZ28gPSB0aGlzLmNvbmZpZy5nZXRSYXcoJ2FwcExvZ28nKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtc1snbG9nb3V0J10pIHtcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UubG9nb3V0KHRydWUpO1xuICAgIH1cbiAgICB0aGlzLnJldHVyblVybCA9IHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXNbJ3JldHVyblVybCddIHx8ICcvJztcbiAgICAvLyBiZWNhdXNlIHJldHVyblVybCB3YXMgZmV0Y2hlZCBmcm9tIGxvY2F0aW9uLCB3ZSBuZWVkIHRvIGdyYWIgdGhlIGFjdHVhbCByb3V0ZVxuICAgIGNvbnN0IGN1cnJlbnRMb2MgPSBsb2NhdGlvbi5ocmVmLnN1YnN0cihsb2NhdGlvbi5vcmlnaW4ubGVuZ3RoKTtcblxuICAgIGNvbnN0IHByZWZpeCA9IGN1cnJlbnRMb2Muc3Vic3RyaW5nKDAsIGN1cnJlbnRMb2MuaW5kZXhPZignL2VudGVyJykpO1xuICAgIHRoaXMucmV0dXJuVXJsID0gdGhpcy5yZXR1cm5VcmwucmVwbGFjZShwcmVmaXgsICcnKS5yZXBsYWNlKCdpbmRleC5odG1sJywgJycpO1xuXG4gICAgLy8gbG9hZGluZyBsb2dpbiBzdGF0ZSBhcyB0aGUgdXNlciBpcyBhbHJlYWR5IGF1dGhlbnRpY2F0ZWQgd2lsbCByZWRpcmVjdCB0byBob21lXG4gICAgaWYgKHRoaXMuYXV0aFNlcnZpY2UuaXNMb2dnZWRJbigpKSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy8nXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGlmIHRoZXJlIGlzIG5vIGxvZ2dlZCBpbiB1c2VyLCBzZWxlY3QgdGhlIGJyb3dzZXJzIGxhbmd1YWdlIGZvclxuICAgICAgLy8gdGhlIGxvZ2luIGRpYWxvZ1xuICAgICAgbGV0IGJyb3dzZXJMYW5nID0gdGhpcy50cmFuc2xhdGUuZ2V0QnJvd3NlckxhbmcoKTtcbiAgICAgIHRoaXMudHJhbnNsYXRlLnVzZShicm93c2VyTGFuZy5tYXRjaCgvZW58ZGUvKSA/IGJyb3dzZXJMYW5nIDogJ2VuJyk7XG4gICAgfVxuICB9XG5cbiAgbG9naW4oKSB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmludmFsaWQgPSBmYWxzZTtcbiAgICBvYnNlcnZhYmxlT2YobnVsbCkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmF1dGhTZXJ2aWNlLmxvZ2luKHRoaXMuZm9ybS5ob3N0LCB0aGlzLmZvcm0udXNlcm5hbWUsIHRoaXMuZm9ybS5wYXNzd29yZCk7XG4gICAgICB9KSxcbiAgICAgIGZpbmFsaXplKCgpID0+ICh0aGlzLmxvYWRpbmcgPSBmYWxzZSkpXG4gICAgKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnVybFRvTmF2aWdhdGUgPSB0aGlzLnJldHVyblVybCB8fCAnLyc7XG4gICAgICAgIGlmICghdGhpcy51c2VyU2VydmljZS5nZXRDdXJyZW50VXNlcigpLnByZXNlbnQpIHtcbiAgICAgICAgICB0aGlzLnNob3dBYnNlbnREaWFsb2cgPSB0cnVlO1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5zZXRBc1ByZXNlbnRCdXR0b24ubmF0aXZlRWxlbWVudC5mb2N1cygpLCAwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRoaXMudXJsVG9OYXZpZ2F0ZSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LCBVdGlscy50aHJvdygoKSA9PiB7XG4gICAgICAgIHRoaXMuaW52YWxpZCA9IHRydWU7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBjbG9zZVNob3dBYnNlbnREaWFsb2coc2V0QXNQcmVzZW50ID0gZmFsc2UpIHtcbiAgICB0aGlzLnNob3dBYnNlbnREaWFsb2cgPSBmYWxzZTtcblxuICAgIGlmIChzZXRBc1ByZXNlbnQpIHtcbiAgICAgIHRoaXMudXNlclNlcnZpY2Uuc2V0UHJlc2VuY2Uoc2V0QXNQcmVzZW50KS5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLnVybFRvTmF2aWdhdGUpLnRoZW4oKCkgPT4ge1xuICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImVvLWxvZ2luLWNvbnRhaW5lclwiIFtzdHlsZS5iYWNrZ3JvdW5kLWltYWdlXT1cImJhY2tncm91bmRJbWFnZVwiPlxuICA8ZGl2IGNsYXNzPVwiZW8tbG9naW5cIj5cblxuICAgIDxkaXYgY2xhc3M9XCJoZWFkXCI+XG4gICAgICA8ZW8taWNvbiBbaWNvblNyY109XCJhcHBMb2dvXCI+PC9lby1pY29uPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImludmFsaWRcIiAqbmdJZj1cImludmFsaWRcIiB0cmFuc2xhdGU+ZW8uc3RhdGUubG9naW4ubXNnLmludmFsaWQ8L2Rpdj5cblxuICAgIDxmb3JtIChuZ1N1Ym1pdCk9XCJsb2dpbigpXCIgI2xvZ2luRm9ybT1cIm5nRm9ybVwiPlxuXG4gICAgICA8ZmllbGRzZXQgW25nQ2xhc3NdPVwie2xvYWRpbmc6IGxvYWRpbmd9XCI+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0taXRlbVwiICpuZ0lmPVwibmF0aXZlXCIgW25nQ2xhc3NdPVwie2VtcHR5OiAhcHJvZmlsZXMgfHwgcHJvZmlsZXMubGVuZ3RoID09PSAwfVwiPlxuICAgICAgICAgIDx5dmMtZHJvcGRvd24gW29wdGlvbnNdPVwicHJvZmlsZXNcIiBwbGFjZWhvbGRlcj1cImhvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZvcm0uaG9zdFwiIG5hbWU9XCJwcm9maWxlXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXByb2ZpbGUgcFRlbXBsYXRlPVwiaXRlbVwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3B0aW9uLXJvd1wiPlxuICAgICAgICAgICAgICAgIDxkaXY+e3twcm9maWxlLmxhYmVsfX08L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZW8taWNvbiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19jbGVhci5zdmcnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlUHJvZmlsZShwcm9maWxlLnZhbHVlKVwiPjwvZW8taWNvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwveXZjLWRyb3Bkb3duPlxuICAgICAgICAgIDxsYWJlbCB0cmFuc2xhdGU+ZW8uc3RhdGUubG9naW4uaG9zdDwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwhLS0gZm9ybSBsb2dpbiAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0taXRlbVwiPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgaWQ9XCJ1c2VybmFtZVwiIHBsYWNlaG9sZGVyPVwie3snZW8uc3RhdGUubG9naW4udXNlcm5hbWUnfHRyYW5zbGF0ZX19XCJcbiAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImxvYWRpbmdcIiBhdXRvZm9jdXNcbiAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmb3JtLnVzZXJuYW1lXCIgbmFtZT1cInVzZXJuYW1lXCIgcmVxdWlyZWQgdGFiaW5kZXg9XCIxXCI+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cInVzZXJuYW1lXCIgdHJhbnNsYXRlPmVvLnN0YXRlLmxvZ2luLnVzZXJuYW1lPC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWl0ZW1cIj5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInBhc3N3b3JkXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBpZD1cInBhc3N3b3JkXCJcbiAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eydlby5zdGF0ZS5sb2dpbi5wYXNzd29yZCd8dHJhbnNsYXRlfX1cIlxuICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibG9hZGluZ1wiXG4gICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZm9ybS5wYXNzd29yZFwiIG5hbWU9XCJwYXNzd29yZFwiIHJlcXVpcmVkIHRhYmluZGV4PVwiMlwiPlxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJwYXNzd29yZFwiIHRyYW5zbGF0ZT5lby5zdGF0ZS5sb2dpbi5wYXNzd29yZDwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICA8L2ZpZWxkc2V0PlxuICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbnNcIj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cIiFsb2dpbkZvcm0uZm9ybS52YWxpZCB8fCBsb2FkaW5nXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7c3Bpbm5lcjogbG9hZGluZ31cIlxuICAgICAgICAgICAgICAgIHRyYW5zbGF0ZSB0YWJpbmRleD1cIjNcIj5lby5zdGF0ZS5sb2dpbi5zdWJtaXQ8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZm9ybT5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGVvLWRpYWxvZyBbdGl0bGVdPVwiJ2VvLnN0YXRlLmxvZ2luLnByZXNlbmNlLmRpYWxvZy50aXRsZScgfCB0cmFuc2xhdGVcIiBbKHZpc2libGUpXT1cInNob3dBYnNlbnREaWFsb2dcIlxuICAgICAgICAgICBbZm9jdXNPblNob3ddPVwiZmFsc2VcIiBbbWluV2lkdGhdPVwiNDAwXCIgW3N0eWxlQ2xhc3NdPVwiJ2xvZ2luLXByZXNlbmNlX19kaWFsb2cnXCI+XG5cbiAgPGRpdj5cbiAgICA8c3Bhbj57eydlby5zdGF0ZS5sb2dpbi5wcmVzZW5jZS5kaWFsb2cubWVzc2FnZScgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImFjdGlvbi1idXR0b25zIGxvZ2luLXByZXNlbmNlLS1hY3Rpb24tYnV0dG9ucyBmbGV4LXJvd1wiPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnV0dG9uIGNhbmNlbFwiIChjbGljayk9XCJjbG9zZVNob3dBYnNlbnREaWFsb2coKVwiXG4gICAgICAgICAgICB0cmFuc2xhdGU+ZW8uc3RhdGUubG9naW4ucHJlc2VuY2UuZGlhbG9nLmNhbmNlbDwvYnV0dG9uPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICNzZXRBc1ByZXNlbnQgKGNsaWNrKT1cImNsb3NlU2hvd0Fic2VudERpYWxvZyh0cnVlKVwiIGNsYXNzPVwiYnV0dG9uIHByaW1hcnlcIlxuICAgICAgICAgICAgdHJhbnNsYXRlPmVvLnN0YXRlLmxvZ2luLnByZXNlbmNlLmRpYWxvZy5zZXRBc1ByZXNlbnQ8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2VvLWRpYWxvZz5cbiJdfQ==
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvbG9naW4vbG9naW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvbG9naW4vbG9naW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsRUFBRSxJQUFJLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN4QyxPQUFPLEVBQUMsU0FBUyxFQUE2QixTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFHMUYsT0FBTyxFQUFjLEtBQUssRUFBVSxnQkFBZ0IsRUFBZ0MsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7Ozs7OztBQVF6RyxNQUFNLE9BQU8sY0FBYztJQWdCekIsWUFBb0IsS0FBcUIsRUFDckIsTUFBYyxFQUNkLE1BQWMsRUFDZCxZQUE4QixFQUM5QixTQUEyQixFQUMzQixTQUF1QixFQUN2QixFQUFxQixFQUNyQixXQUF3QixFQUN4QixXQUF3QjtRQVJ4QixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGlCQUFZLEdBQVosWUFBWSxDQUFrQjtRQUM5QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixjQUFTLEdBQVQsU0FBUyxDQUFjO1FBQ3ZCLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQ3JCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBbkI1QyxTQUFJLEdBQVEsRUFBRSxDQUFDO1FBQ2YsYUFBUSxHQUFxQyxFQUFFLENBQUM7UUFDaEQsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNo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QUM7UUFFOUIsSUFBSSxZQUFZLEVBQUU7WUFDaEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDeEQ7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUN0RCxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7MkdBbEdVLGNBQWM7K0ZBQWQsY0FBYyxvS0NiM0IsOGtHQW9FQTsyRkR2RGEsY0FBYztrQkFMMUIsU0FBUzsrQkFDRSxVQUFVOzRUQU1PLGtCQUFrQjtzQkFBNUMsU0FBUzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtmaW5hbGl6ZSwgc3dpdGNoTWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge29mIGFzIG9ic2VydmFibGVPZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0NvbXBvbmVudCwgT25Jbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgVmlld0NoaWxkLCBFbGVtZW50UmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7RG9tU2FuaXRpemVyLCBTYWZlUmVzb3VyY2VVcmx9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHtBdXRoU2VydmljZSwgVXRpbHMsIENvbmZpZywgRW52aXJvbm1lbnRFbmFpbywgVHJhbnNsYXRlU2VydmljZSwgVXNlclNlcnZpY2V9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge1BhZ2VUaXRsZVNlcnZpY2V9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3RpdGxlL3BhZ2UtdGl0bGUuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLWxvZ2luJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xvZ2luLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbG9naW4uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBMb2dpbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQFZpZXdDaGlsZCgnc2V0QXNQcmVzZW50Jykgc2V0QXNQcmVzZW50QnV0dG9uOiBFbGVtZW50UmVmO1xuICBiYWNrZ3JvdW5kSW1hZ2U6IFNhZmVSZXNvdXJjZVVybDtcbiAgYXBwTG9nbzogc3RyaW5nO1xuICBmb3JtOiBhbnkgPSB7fTtcbiAgcHJvZmlsZXM6IHtsYWJlbDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nfVtdID0gW107XG4gIGxvYWRpbmcgPSBmYWxzZTtcbiAgaW52YWxpZCA9IGZhbHNlO1xuICBsaWNlbnNlRXhjZWVkZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSByZXR1cm5Vcmw6IHN0cmluZztcbiAgbmF0aXZlID0gZmFsc2U7XG4gIHVybFRvTmF2aWdhdGU6IHN0cmluZztcbiAgc2hvd0Fic2VudERpYWxvZyA9IGZhbHNlO1xuICByZW1vdmVQcm9maWxlID0gKHApID0+IHA7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgY29uZmlnOiBDb25maWcsXG4gICAgICAgICAgICAgIHByaXZhdGUgdGl0bGVTZXJ2aWNlOiBQYWdlVGl0bGVTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgICAgICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSkge1xuXG4gICAgdGhpcy5iYWNrZ3JvdW5kSW1hZ2UgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0U3R5bGUoYHVybCgke3RoaXMuY29uZmlnLmdldERhc2hib2FyZEJhY2tncm91bmRJbWFnZSgpfSlgKTtcbiAgICB0aGlzLnRpdGxlU2VydmljZS5zZXREZWZhdWx0VGl0bGUoKTtcbiAgICAvLyBpZiB3ZSBhcmUgbm8gd2ViIGFwcCAoZS5nLiBjb3Jkb3ZhIG9yIGVsZWN0cm9uKSB0aGUgbG9naW5cbiAgICAvLyBmb3JtIHdpbGwgYmUgZXh0ZW5kZWQgYnkgYSBmaWVsZCBmb3Igc2VsZWN0aW5nIGEgdGFyZ2V0IGhvc3RcbiAgICB0aGlzLm5hdGl2ZSA9ICFFbnZpcm9ubWVudEVuYWlvLmlzV2ViRW52aXJvbm1lbnQoKTtcbiAgICB0aGlzLnByb2ZpbGVzID0gYXV0aFNlcnZpY2UuaG9zdHMubWFwKGhvc3QgPT4gKHtcbiAgICAgIGxhYmVsOiBob3N0ID8gaG9zdCA6ICdsb2NhbCcsXG4gICAgICB2YWx1ZTogaG9zdCB8fCAnJ1xuICAgIH0pKTtcbiAgICB0aGlzLmFwcExvZ28gPSB0aGlzLmNvbmZpZy5nZXRSYXcoJ2FwcExvZ28nKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtc1snbG9nb3V0J10pIHtcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UubG9nb3V0KHRydWUpO1xuICAgIH1cbiAgICB0aGlzLnJldHVyblVybCA9IHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXNbJ3JldHVyblVybCddIHx8ICcvJztcbiAgICAvLyBiZWNhdXNlIHJldHVyblVybCB3YXMgZmV0Y2hlZCBmcm9tIGxvY2F0aW9uLCB3ZSBuZWVkIHRvIGdyYWIgdGhlIGFjdHVhbCByb3V0ZVxuICAgIGNvbnN0IGN1cnJlbnRMb2MgPSBsb2NhdGlvbi5ocmVmLnN1YnN0cihsb2NhdGlvbi5vcmlnaW4ubGVuZ3RoKTtcblxuICAgIGNvbnN0IHByZWZpeCA9IGN1cnJlbnRMb2Muc3Vic3RyaW5nKDAsIGN1cnJlbnRMb2MuaW5kZXhPZignL2VudGVyJykpO1xuICAgIHRoaXMucmV0dXJuVXJsID0gdGhpcy5yZXR1cm5VcmwucmVwbGFjZShwcmVmaXgsICcnKS5yZXBsYWNlKCdpbmRleC5odG1sJywgJycpO1xuXG4gICAgLy8gbG9hZGluZyBsb2dpbiBzdGF0ZSBhcyB0aGUgdXNlciBpcyBhbHJlYWR5IGF1dGhlbnRpY2F0ZWQgd2lsbCByZWRpcmVjdCB0byBob21lXG4gICAgaWYgKHRoaXMuYXV0aFNlcnZpY2UuaXNMb2dnZWRJbigpKSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy8nXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGlmIHRoZXJlIGlzIG5vIGxvZ2dlZCBpbiB1c2VyLCBzZWxlY3QgdGhlIGJyb3dzZXJzIGxhbmd1YWdlIGZvclxuICAgICAgLy8gdGhlIGxvZ2luIGRpYWxvZ1xuICAgICAgbGV0IGJyb3dzZXJMYW5nID0gdGhpcy50cmFuc2xhdGUuZ2V0QnJvd3NlckxhbmcoKTtcbiAgICAgIHRoaXMudHJhbnNsYXRlLnVzZShicm93c2VyTGFuZy5tYXRjaCgvZW58ZGUvKSA/IGJyb3dzZXJMYW5nIDogJ2VuJyk7XG4gICAgfVxuICB9XG5cbiAgbG9naW4oKSB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmludmFsaWQgPSBmYWxzZTtcbiAgICB0aGlzLmxpY2Vuc2VFeGNlZWRlZCA9IGZhbHNlO1xuICAgIG9ic2VydmFibGVPZihudWxsKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXV0aFNlcnZpY2UubG9naW4odGhpcy5mb3JtLmhvc3QsIHRoaXMuZm9ybS51c2VybmFtZSwgdGhpcy5mb3JtLnBhc3N3b3JkKTtcbiAgICAgIH0pLFxuICAgICAgZmluYWxpemUoKCkgPT4gKHRoaXMubG9hZGluZyA9IGZhbHNlKSlcbiAgICApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMudXJsVG9OYXZpZ2F0ZSA9IHRoaXMucmV0dXJuVXJsIHx8ICcvJztcbiAgICAgICAgaWYgKCF0aGlzLnVzZXJTZXJ2aWNlLmdldEN1cnJlbnRVc2VyKCkucHJlc2VudCkge1xuICAgICAgICAgIHRoaXMuc2hvd0Fic2VudERpYWxvZyA9IHRydWU7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnNldEFzUHJlc2VudEJ1dHRvbi5uYXRpdmVFbGVtZW50LmZvY3VzKCksIDApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy51cmxUb05hdmlnYXRlKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sIFV0aWxzLnRocm93KChlcnJvcikgPT4ge1xuICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSA0MjkpIHtcbiAgICAgICAgICB0aGlzLmxpY2Vuc2VFeGNlZWRlZCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5pbnZhbGlkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHRydWUpXG4gICAgKTtcbiAgfVxuXG4gIGNsb3NlU2hvd0Fic2VudERpYWxvZyhzZXRBc1ByZXNlbnQgPSBmYWxzZSkge1xuICAgIHRoaXMuc2hvd0Fic2VudERpYWxvZyA9IGZhbHNlO1xuXG4gICAgaWYgKHNldEFzUHJlc2VudCkge1xuICAgICAgdGhpcy51c2VyU2VydmljZS5zZXRQcmVzZW5jZShzZXRBc1ByZXNlbnQpLnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRoaXMudXJsVG9OYXZpZ2F0ZSkudGhlbigoKSA9PiB7XG4gICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZW8tbG9naW4tY29udGFpbmVyXCIgW3N0eWxlLmJhY2tncm91bmQtaW1hZ2VdPVwiYmFja2dyb3VuZEltYWdlXCI+XG4gIDxkaXYgY2xhc3M9XCJlby1sb2dpblwiPlxuXG4gICAgPGRpdiBjbGFzcz1cImhlYWRcIj5cbiAgICAgIDxlby1pY29uIFtpY29uU3JjXT1cImFwcExvZ29cIj48L2VvLWljb24+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiaW52YWxpZFwiICpuZ0lmPVwiaW52YWxpZFwiIHRyYW5zbGF0ZT5lby5zdGF0ZS5sb2dpbi5tc2cuaW52YWxpZDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJpbnZhbGlkXCIgKm5nSWY9XCJsaWNlbnNlRXhjZWVkZWRcIiB0cmFuc2xhdGU+ZW8uc3RhdGUubG9naW4ubXNnLmxpY2Vuc2VFeGNlZWRlZDwvZGl2PlxuXG4gICAgPGZvcm0gKG5nU3VibWl0KT1cImxvZ2luKClcIiAjbG9naW5Gb3JtPVwibmdGb3JtXCI+XG5cbiAgICAgIDxmaWVsZHNldCBbbmdDbGFzc109XCJ7bG9hZGluZzogbG9hZGluZ31cIj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1pdGVtXCIgKm5nSWY9XCJuYXRpdmVcIiBbbmdDbGFzc109XCJ7ZW1wdHk6ICFwcm9maWxlcyB8fCBwcm9maWxlcy5sZW5ndGggPT09IDB9XCI+XG4gICAgICAgICAgPHl2Yy1kcm9wZG93biBbb3B0aW9uc109XCJwcm9maWxlc1wiIHBsYWNlaG9sZGVyPVwiaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZm9ybS5ob3N0XCIgbmFtZT1cInByb2ZpbGVcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcHJvZmlsZSBwVGVtcGxhdGU9XCJpdGVtXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcHRpb24tcm93XCI+XG4gICAgICAgICAgICAgICAgPGRpdj57e3Byb2ZpbGUubGFiZWx9fTwvZGl2PlxuICAgICAgICAgICAgICAgIDxlby1pY29uIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2NsZWFyLnN2ZydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVQcm9maWxlKHByb2ZpbGUudmFsdWUpXCI+PC9lby1pY29uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC95dmMtZHJvcGRvd24+XG4gICAgICAgICAgPGxhYmVsIHRyYW5zbGF0ZT5lby5zdGF0ZS5sb2dpbi5ob3N0PC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBmb3JtIGxvZ2luIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1pdGVtXCI+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBpZD1cInVzZXJuYW1lXCIgcGxhY2Vob2xkZXI9XCJ7eydlby5zdGF0ZS5sb2dpbi51c2VybmFtZSd8dHJhbnNsYXRlfX1cIlxuICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibG9hZGluZ1wiIGF1dG9mb2N1c1xuICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZvcm0udXNlcm5hbWVcIiBuYW1lPVwidXNlcm5hbWVcIiByZXF1aXJlZCB0YWJpbmRleD1cIjFcIj5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwidXNlcm5hbWVcIiB0cmFuc2xhdGU+ZW8uc3RhdGUubG9naW4udXNlcm5hbWU8L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0taXRlbVwiPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwicGFzc3dvcmRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGlkPVwicGFzc3dvcmRcIlxuICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7J2VvLnN0YXRlLmxvZ2luLnBhc3N3b3JkJ3x0cmFuc2xhdGV9fVwiXG4gICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nXCJcbiAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmb3JtLnBhc3N3b3JkXCIgbmFtZT1cInBhc3N3b3JkXCIgcmVxdWlyZWQgdGFiaW5kZXg9XCIyXCI+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cInBhc3N3b3JkXCIgdHJhbnNsYXRlPmVvLnN0YXRlLmxvZ2luLnBhc3N3b3JkPC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgIDwvZmllbGRzZXQ+XG4gICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cInByaW1hcnlcIiBbZGlzYWJsZWRdPVwiIWxvZ2luRm9ybS5mb3JtLnZhbGlkIHx8IGxvYWRpbmdcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntzcGlubmVyOiBsb2FkaW5nfVwiXG4gICAgICAgICAgICAgICAgdHJhbnNsYXRlIHRhYmluZGV4PVwiM1wiPmVvLnN0YXRlLmxvZ2luLnN1Ym1pdDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9mb3JtPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZW8tZGlhbG9nIFt0aXRsZV09XCInZW8uc3RhdGUubG9naW4ucHJlc2VuY2UuZGlhbG9nLnRpdGxlJyB8IHRyYW5zbGF0ZVwiIFsodmlzaWJsZSldPVwic2hvd0Fic2VudERpYWxvZ1wiXG4gICAgICAgICAgIFtmb2N1c09uU2hvd109XCJmYWxzZVwiIFttaW5XaWR0aF09XCI0MDBcIiBbc3R5bGVDbGFzc109XCInbG9naW4tcHJlc2VuY2VfX2RpYWxvZydcIj5cblxuICA8ZGl2PlxuICAgIDxzcGFuPnt7J2VvLnN0YXRlLmxvZ2luLnByZXNlbmNlLmRpYWxvZy5tZXNzYWdlJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiYWN0aW9uLWJ1dHRvbnMgbG9naW4tcHJlc2VuY2UtLWFjdGlvbi1idXR0b25zIGZsZXgtcm93XCI+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidXR0b24gY2FuY2VsXCIgKGNsaWNrKT1cImNsb3NlU2hvd0Fic2VudERpYWxvZygpXCJcbiAgICAgICAgICAgIHRyYW5zbGF0ZT5lby5zdGF0ZS5sb2dpbi5wcmVzZW5jZS5kaWFsb2cuY2FuY2VsPC9idXR0b24+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgI3NldEFzUHJlc2VudCAoY2xpY2spPVwiY2xvc2VTaG93QWJzZW50RGlhbG9nKHRydWUpXCIgY2xhc3M9XCJidXR0b24gcHJpbWFyeVwiXG4gICAgICAgICAgICB0cmFuc2xhdGU+ZW8uc3RhdGUubG9naW4ucHJlc2VuY2UuZGlhbG9nLnNldEFzUHJlc2VudDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZW8tZGlhbG9nPlxuIl19