@netgrif/components-core 6.2.0-rc.9 → 6.2.2

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 (178) hide show
  1. package/commons/schema.d.ts +3 -0
  2. package/esm2020/assets/i18n/de.json +18 -8
  3. package/esm2020/assets/i18n/en.json +11 -1
  4. package/esm2020/assets/i18n/sk.json +11 -1
  5. package/esm2020/commons/schema.mjs +1 -1
  6. package/esm2020/commons/view-class-info.mjs +9 -1
  7. package/esm2020/lib/admin/public-api.mjs +2 -2
  8. package/esm2020/lib/admin/role-assignment-ldap-group/abstract-ldap-group-role-assignment.component.mjs +88 -0
  9. package/esm2020/lib/authentication/services/methods/basic-authentication/basic-authentication.service.mjs +10 -2
  10. package/esm2020/lib/authorization/permission/access.service.mjs +2 -2
  11. package/esm2020/lib/authorization/role/role-guard.service.mjs +36 -11
  12. package/esm2020/lib/data-fields/button-field/abstract-button-field.component.mjs +2 -12
  13. package/esm2020/lib/data-fields/button-field/models/button-field.mjs +2 -18
  14. package/esm2020/lib/data-fields/enumeration-field/models/dynamic-enumeration-field.mjs +4 -5
  15. package/esm2020/lib/data-fields/enumeration-field/models/enumeration-field.mjs +2 -22
  16. package/esm2020/lib/data-fields/file-field/abstract-file-field.component.mjs +35 -15
  17. package/esm2020/lib/data-fields/file-list-field/abstract-file-list-field.component.mjs +38 -15
  18. package/esm2020/lib/data-fields/i18n-field/abstract-i18n-field.component.mjs +1 -4
  19. package/esm2020/lib/data-fields/models/abstract-data-field.mjs +9 -1
  20. package/esm2020/lib/data-fields/multichoice-field/models/multichoice-field.mjs +2 -17
  21. package/esm2020/lib/data-fields/multichoice-field/multichoice-autocomplete-field/abstract-multichoice-autocomplete-field-component.component.mjs +79 -0
  22. package/esm2020/lib/data-fields/number-field/currency-number-field/abstract-currency-number-field.component.mjs +3 -2
  23. package/esm2020/lib/data-fields/public-api.mjs +4 -1
  24. package/esm2020/lib/data-fields/text-field/models/text-area-field.mjs +4 -5
  25. package/esm2020/lib/data-fields/text-field/models/text-field.mjs +2 -14
  26. package/esm2020/lib/data-fields/user-list-field/abstract-user-list-field.component.mjs +75 -0
  27. package/esm2020/lib/data-fields/user-list-field/models/user-list-field.mjs +11 -0
  28. package/esm2020/lib/data-fields/user-list-field/models/user-list-value.mjs +36 -0
  29. package/esm2020/lib/dialog/components/alert-dialog/alert-dialog.component.mjs +4 -4
  30. package/esm2020/lib/dialog/components/confirm-dialog/confirm-dialog.component.mjs +4 -4
  31. package/esm2020/lib/dialog/components/prompt-dialog/prompt-dialog.component.mjs +4 -4
  32. package/esm2020/lib/dialog/models/abstract-dialog.component.mjs +29 -0
  33. package/esm2020/lib/header/abstract-header-service.mjs +25 -9
  34. package/esm2020/lib/header/abstract-header.component.mjs +7 -5
  35. package/esm2020/lib/header/case-header/case-header.service.mjs +2 -2
  36. package/esm2020/lib/header/services/overflow.service.mjs +2 -2
  37. package/esm2020/lib/header/task-header/task-header.service.mjs +7 -4
  38. package/esm2020/lib/header/workflow-header/workflow-header.service.mjs +11 -8
  39. package/esm2020/lib/navigation/breadcrumbs/abstract-breadcrumbs.component.mjs +69 -0
  40. package/esm2020/lib/navigation/navigation-double-drawer/abstract-navigation-double-drawer.mjs +7 -4
  41. package/esm2020/lib/navigation/public-api.mjs +2 -1
  42. package/esm2020/lib/navigation/service/uri.service.mjs +5 -1
  43. package/esm2020/lib/panel/abstract/panel-with-header-binding.mjs +17 -5
  44. package/esm2020/lib/panel/abstract/panel-with-immediate-data.mjs +52 -22
  45. package/esm2020/lib/panel/abstract-panel.component.mjs +16 -4
  46. package/esm2020/lib/panel/case-panel/abstract-case-panel.component.mjs +13 -11
  47. package/esm2020/lib/panel/configuration/config-params.mjs +5 -0
  48. package/esm2020/lib/panel/public-api.mjs +3 -1
  49. package/esm2020/lib/panel/task-panel/abstract-task-panel.component.mjs +18 -12
  50. package/esm2020/lib/panel/task-panel-list/abstract-task-list.component.mjs +3 -3
  51. package/esm2020/lib/panel/task-panel-list/default-task-panel-list/abstract-default-task-list.component.mjs +94 -0
  52. package/esm2020/lib/panel/task-panel-list/task-panel-list-pagination/abstract-task-list-pagination.component.mjs +3 -3
  53. package/esm2020/lib/panel/workflow-panel/abstract-workflow-panel.component.mjs +40 -6
  54. package/esm2020/lib/public/factories/public-factory-resolver.mjs +8 -3
  55. package/esm2020/lib/resources/engine-endpoint/petri-net-resource.service.mjs +12 -4
  56. package/esm2020/lib/resources/engine-endpoint/public/public-task-resource.service.mjs +1 -40
  57. package/esm2020/lib/resources/engine-endpoint/task-resource.service.mjs +6 -3
  58. package/esm2020/lib/resources/interface/fields.mjs +1 -1
  59. package/esm2020/lib/routing/redirect-service/redirect.service.mjs +2 -1
  60. package/esm2020/lib/search/models/category/case/case-dataset.mjs +7 -4
  61. package/esm2020/lib/search/search-operand-input-component/abstract-search-operand-input.component.mjs +3 -3
  62. package/esm2020/lib/side-menu/content-components/new-case/abstract-new-case.component.mjs +22 -11
  63. package/esm2020/lib/side-menu/content-components/new-case/model/new-case-injection-data.mjs +1 -1
  64. package/esm2020/lib/side-menu/content-components/save-filter/abstract-save-filter.component.mjs +8 -7
  65. package/esm2020/lib/side-menu/content-components/user-assign/abstract-user-assign.component.mjs +1 -1
  66. package/esm2020/lib/side-menu/content-components/user-assign/model/user-list-injected-data.mjs +1 -1
  67. package/esm2020/lib/snack-bar/components/error-snack-bar/error-snack-bar.component.mjs +3 -3
  68. package/esm2020/lib/snack-bar/components/generic-snack-bar/generic-snack-bar.component.mjs +3 -3
  69. package/esm2020/lib/snack-bar/components/success-snack-bar/success-snack-bar.component.mjs +3 -3
  70. package/esm2020/lib/snack-bar/components/warning-snack-bar/warning-snack-bar.component.mjs +3 -3
  71. package/esm2020/lib/snack-bar/models/abstract-snack-bar.component.mjs +26 -0
  72. package/esm2020/lib/snack-bar/public-api.mjs +2 -2
  73. package/esm2020/lib/task/services/finish-policy.service.mjs +2 -2
  74. package/esm2020/lib/task/services/task-data.service.mjs +51 -13
  75. package/esm2020/lib/task-content/model/field-type-resource.mjs +2 -1
  76. package/esm2020/lib/task-content/model/resource-interface.mjs +1 -1
  77. package/esm2020/lib/task-content/services/field-converter.service.mjs +28 -90
  78. package/esm2020/lib/task-content/services/task-content.service.mjs +5 -2
  79. package/esm2020/lib/view/abstract/view-with-headers.mjs +13 -4
  80. package/esm2020/lib/view/case-view/abstract-case-view.mjs +9 -12
  81. package/esm2020/lib/view/case-view/components/case-list/abstract-case-list.component.mjs +3 -3
  82. package/esm2020/lib/view/case-view/components/case-list-paginator/abstract-case-list-paginator.component.mjs +3 -3
  83. package/esm2020/lib/view/case-view/components/default-case-list/abstract-default-case-list.component.mjs +81 -0
  84. package/esm2020/lib/view/case-view/tabbed-case-view.mjs +7 -14
  85. package/esm2020/lib/view/task-view/abstract-single-task-view.component.mjs +3 -4
  86. package/esm2020/lib/view/task-view/abstract-task-view.mjs +6 -5
  87. package/esm2020/lib/view/task-view/tabbed-task-view.mjs +6 -5
  88. package/esm2020/lib/view/tree-case-view/tree-component/case-tree.service.mjs +6 -4
  89. package/esm2020/lib/view/workflow-view/abstract-workflow-view.component.mjs +6 -5
  90. package/fesm2015/netgrif-components-core.mjs +1010 -611
  91. package/fesm2015/netgrif-components-core.mjs.map +1 -1
  92. package/fesm2020/netgrif-components-core.mjs +996 -616
  93. package/fesm2020/netgrif-components-core.mjs.map +1 -1
  94. package/lib/admin/public-api.d.ts +1 -1
  95. package/lib/admin/role-assignment-ldap-group/{abstract-ldap-group-role-assignment.d.ts → abstract-ldap-group-role-assignment.component.d.ts} +3 -3
  96. package/lib/authentication/services/methods/basic-authentication/basic-authentication.service.d.ts +2 -0
  97. package/lib/authorization/role/role-guard.service.d.ts +2 -1
  98. package/lib/data-fields/button-field/abstract-button-field.component.d.ts +0 -5
  99. package/lib/data-fields/button-field/models/button-field.d.ts +1 -12
  100. package/lib/data-fields/enumeration-field/models/dynamic-enumeration-field.d.ts +2 -3
  101. package/lib/data-fields/enumeration-field/models/enumeration-field.d.ts +1 -11
  102. package/lib/data-fields/i18n-field/abstract-i18n-field.component.d.ts +0 -1
  103. package/lib/data-fields/models/abstract-data-field.d.ts +5 -0
  104. package/lib/data-fields/multichoice-field/models/multichoice-field.d.ts +1 -8
  105. package/lib/data-fields/multichoice-field/multichoice-autocomplete-field/abstract-multichoice-autocomplete-field-component.component.d.ts +24 -0
  106. package/lib/data-fields/number-field/currency-number-field/abstract-currency-number-field.component.d.ts +1 -0
  107. package/lib/data-fields/public-api.d.ts +3 -0
  108. package/lib/data-fields/text-field/models/text-area-field.d.ts +2 -3
  109. package/lib/data-fields/text-field/models/text-field.d.ts +1 -9
  110. package/lib/data-fields/user-list-field/abstract-user-list-field.component.d.ts +38 -0
  111. package/lib/data-fields/user-list-field/models/user-list-field.d.ts +10 -0
  112. package/lib/data-fields/user-list-field/models/user-list-value.d.ts +16 -0
  113. package/lib/dialog/components/alert-dialog/alert-dialog.component.d.ts +3 -3
  114. package/lib/dialog/components/confirm-dialog/confirm-dialog.component.d.ts +3 -3
  115. package/lib/dialog/components/prompt-dialog/prompt-dialog.component.d.ts +3 -3
  116. package/lib/dialog/models/{abstract-dialog.d.ts → abstract-dialog.component.d.ts} +3 -3
  117. package/lib/header/abstract-header-service.d.ts +6 -3
  118. package/lib/header/abstract-header.component.d.ts +2 -2
  119. package/lib/header/services/overflow.service.d.ts +1 -1
  120. package/lib/header/task-header/task-header.service.d.ts +3 -2
  121. package/lib/header/workflow-header/workflow-header.service.d.ts +3 -2
  122. package/lib/navigation/breadcrumbs/abstract-breadcrumbs.component.d.ts +18 -0
  123. package/lib/navigation/navigation-double-drawer/abstract-navigation-double-drawer.d.ts +1 -1
  124. package/lib/navigation/public-api.d.ts +1 -0
  125. package/lib/navigation/service/uri.service.d.ts +2 -0
  126. package/lib/panel/abstract/panel-with-header-binding.d.ts +5 -2
  127. package/lib/panel/abstract/panel-with-immediate-data.d.ts +4 -2
  128. package/lib/panel/abstract-panel.component.d.ts +5 -1
  129. package/lib/panel/case-panel/abstract-case-panel.component.d.ts +3 -3
  130. package/lib/panel/configuration/config-params.d.ts +3 -0
  131. package/lib/panel/public-api.d.ts +1 -0
  132. package/lib/panel/task-panel/abstract-task-panel.component.d.ts +5 -2
  133. package/lib/panel/task-panel-list/abstract-task-list.component.d.ts +2 -2
  134. package/lib/panel/task-panel-list/default-task-panel-list/{abstract-default-task-list.d.ts → abstract-default-task-list.component.d.ts} +3 -3
  135. package/lib/panel/task-panel-list/task-panel-list-pagination/abstract-task-list-pagination.component.d.ts +2 -2
  136. package/lib/panel/workflow-panel/abstract-workflow-panel.component.d.ts +13 -2
  137. package/lib/public/factories/public-factory-resolver.d.ts +2 -1
  138. package/lib/resources/engine-endpoint/petri-net-resource.service.d.ts +1 -1
  139. package/lib/resources/engine-endpoint/public/public-task-resource.service.d.ts +0 -12
  140. package/lib/resources/engine-endpoint/task-resource.service.d.ts +2 -1
  141. package/lib/resources/interface/fields.d.ts +0 -5
  142. package/lib/search/search-operand-input-component/abstract-search-operand-input.component.d.ts +1 -1
  143. package/lib/side-menu/content-components/new-case/model/new-case-injection-data.d.ts +5 -0
  144. package/lib/side-menu/content-components/save-filter/abstract-save-filter.component.d.ts +2 -1
  145. package/lib/side-menu/content-components/user-assign/model/user-list-injected-data.d.ts +2 -1
  146. package/lib/snack-bar/components/error-snack-bar/error-snack-bar.component.d.ts +2 -2
  147. package/lib/snack-bar/components/generic-snack-bar/generic-snack-bar.component.d.ts +2 -2
  148. package/lib/snack-bar/components/success-snack-bar/success-snack-bar.component.d.ts +2 -2
  149. package/lib/snack-bar/components/warning-snack-bar/warning-snack-bar.component.d.ts +2 -2
  150. package/lib/snack-bar/models/{abstract-snack-bar.d.ts → abstract-snack-bar.component.d.ts} +3 -3
  151. package/lib/snack-bar/public-api.d.ts +1 -1
  152. package/lib/task/services/task-data.service.d.ts +12 -3
  153. package/lib/task-content/model/field-type-resource.d.ts +1 -0
  154. package/lib/task-content/model/resource-interface.d.ts +0 -3
  155. package/lib/task-content/services/field-converter.service.d.ts +3 -16
  156. package/lib/task-content/services/task-content.service.d.ts +1 -0
  157. package/lib/view/abstract/view-with-headers.d.ts +5 -1
  158. package/lib/view/case-view/abstract-case-view.d.ts +5 -3
  159. package/lib/view/case-view/components/case-list/abstract-case-list.component.d.ts +2 -2
  160. package/lib/view/case-view/components/case-list-paginator/abstract-case-list-paginator.component.d.ts +2 -2
  161. package/lib/view/case-view/components/default-case-list/{abstract-default-case-list.d.ts → abstract-default-case-list.component.d.ts} +3 -3
  162. package/lib/view/case-view/tabbed-case-view.d.ts +4 -4
  163. package/lib/view/task-view/abstract-single-task-view.component.d.ts +0 -1
  164. package/lib/view/task-view/abstract-task-view.d.ts +2 -1
  165. package/lib/view/task-view/tabbed-task-view.d.ts +2 -1
  166. package/lib/view/workflow-view/abstract-workflow-view.component.d.ts +2 -1
  167. package/package.json +1 -2
  168. package/schematics/_commons/view-class-info.js +8 -0
  169. package/schematics/_commons/view-class-info.js.map +1 -1
  170. package/src/assets/i18n/de.json +18 -8
  171. package/src/assets/i18n/en.json +11 -1
  172. package/src/assets/i18n/sk.json +11 -1
  173. package/src/schema/nae-schema.json +6 -0
  174. package/esm2020/lib/admin/role-assignment-ldap-group/abstract-ldap-group-role-assignment.mjs +0 -88
  175. package/esm2020/lib/dialog/models/abstract-dialog.mjs +0 -29
  176. package/esm2020/lib/panel/task-panel-list/default-task-panel-list/abstract-default-task-list.mjs +0 -94
  177. package/esm2020/lib/snack-bar/models/abstract-snack-bar.mjs +0 -26
  178. package/esm2020/lib/view/case-view/components/default-case-list/abstract-default-case-list.mjs +0 -81
@@ -0,0 +1,94 @@
1
+ import { filter } from 'rxjs/operators';
2
+ import { TabbedVirtualScrollComponent } from '../../abstract/tabbed-virtual-scroll.component';
3
+ import { Component, EventEmitter, Inject, Input, Optional, Output } from '@angular/core';
4
+ import { Subject } from 'rxjs';
5
+ import { NAE_TAB_DATA } from '../../../tabs/tab-data-injection-token/tab-data-injection-token';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../../../view/task-view/service/task-view.service";
8
+ import * as i2 from "../../../logger/services/logger.service";
9
+ import * as i3 from "@angular/router";
10
+ export class AbstractDefaultTaskListComponent extends TabbedVirtualScrollComponent {
11
+ constructor(_taskViewService, _log, injectedTabData, route) {
12
+ super(injectedTabData);
13
+ this._taskViewService = _taskViewService;
14
+ this._log = _log;
15
+ this.route = route;
16
+ this._allowMultiOpen = true;
17
+ this.responsiveBody = true;
18
+ this.forceLoadDataOnOpen = false;
19
+ this.textEllipsis = false;
20
+ this.taskEvent = new EventEmitter();
21
+ this._taskPanelRefs = new Map();
22
+ this._unsubscribe$ = new Subject();
23
+ }
24
+ set allowMultiOpen(bool) {
25
+ this._allowMultiOpen = bool;
26
+ this._taskViewService.allowMultiOpen = bool;
27
+ }
28
+ get allowMultiOpen() {
29
+ return this._allowMultiOpen;
30
+ }
31
+ ngOnDestroy() {
32
+ super.ngOnDestroy();
33
+ this.taskEvent.complete();
34
+ this._unsubscribe$.complete();
35
+ }
36
+ ngAfterViewInit() {
37
+ this.onRedirect();
38
+ }
39
+ trackBy(_idx, item) {
40
+ return item.task.stringId;
41
+ }
42
+ /**
43
+ * Emits an event into this component's @Output attribute
44
+ * @param event the event that will be emitted
45
+ */
46
+ emitTaskEvent(event) {
47
+ this.taskEvent.emit(event);
48
+ }
49
+ addToPanelRefs(task, panelRef) {
50
+ this._taskPanelRefs.set(task.task.stringId, panelRef);
51
+ }
52
+ onRedirect() {
53
+ this.route.queryParams.pipe(filter(pm => !!pm['taskId'])).subscribe(pm => {
54
+ this._redirectTaskId = pm['taskId'];
55
+ this._tasks$.pipe().subscribe(tasks => {
56
+ const task = tasks.find(t => t.task.stringId === this._redirectTaskId);
57
+ if (!!task && !task.initiallyExpanded) {
58
+ this._taskPanelRefs.get(this._redirectTaskId).open();
59
+ this._taskPanelRefs.get(this._redirectTaskId).expanded = true;
60
+ this._unsubscribe$.next();
61
+ }
62
+ });
63
+ });
64
+ }
65
+ }
66
+ AbstractDefaultTaskListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AbstractDefaultTaskListComponent, deps: [{ token: i1.TaskViewService }, { token: i2.LoggerService }, { token: NAE_TAB_DATA, optional: true }, { token: i3.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
67
+ AbstractDefaultTaskListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AbstractDefaultTaskListComponent, selector: "ncc-abstract-default-task-list", inputs: { loading$: "loading$", selectedHeaders$: "selectedHeaders$", responsiveBody: "responsiveBody", forceLoadDataOnOpen: "forceLoadDataOnOpen", textEllipsis: "textEllipsis", allowMultiOpen: "allowMultiOpen" }, outputs: { taskEvent: "taskEvent" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AbstractDefaultTaskListComponent, decorators: [{
69
+ type: Component,
70
+ args: [{
71
+ selector: 'ncc-abstract-default-task-list',
72
+ template: ''
73
+ }]
74
+ }], ctorParameters: function () { return [{ type: i1.TaskViewService }, { type: i2.LoggerService }, { type: undefined, decorators: [{
75
+ type: Optional
76
+ }, {
77
+ type: Inject,
78
+ args: [NAE_TAB_DATA]
79
+ }] }, { type: i3.ActivatedRoute }]; }, propDecorators: { loading$: [{
80
+ type: Input
81
+ }], selectedHeaders$: [{
82
+ type: Input
83
+ }], responsiveBody: [{
84
+ type: Input
85
+ }], forceLoadDataOnOpen: [{
86
+ type: Input
87
+ }], textEllipsis: [{
88
+ type: Input
89
+ }], allowMultiOpen: [{
90
+ type: Input
91
+ }], taskEvent: [{
92
+ type: Output
93
+ }] } });
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZGVmYXVsdC10YXNrLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9wYW5lbC90YXNrLXBhbmVsLWxpc3QvZGVmYXVsdC10YXNrLXBhbmVsLWxpc3QvYWJzdHJhY3QtZGVmYXVsdC10YXNrLWxpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQUM1RixPQUFPLEVBQWdCLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYSxRQUFRLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pILE9BQU8sRUFBYSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFNekMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlFQUFpRSxDQUFDOzs7OztBQVE3RixNQUFNLE9BQWdCLGdDQUFpQyxTQUFRLDRCQUE0QjtJQTRCdkYsWUFBc0IsZ0JBQWlDLEVBQ2pDLElBQW1CLEVBQ0ssZUFBZ0MsRUFDeEQsS0FBc0I7UUFDeEMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBSkwscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQUNqQyxTQUFJLEdBQUosSUFBSSxDQUFlO1FBRW5CLFVBQUssR0FBTCxLQUFLLENBQWlCO1FBMUJsQyxvQkFBZSxHQUFHLElBQUksQ0FBQztRQUl4QixtQkFBYyxHQUFHLElBQUksQ0FBQztRQUN0Qix3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFDNUIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFzQjFCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxZQUFZLEVBQXlCLENBQUM7UUFDM0Qs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QUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNYXRFeHBhbnNpb25QYW5lbH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZXhwYW5zaW9uJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge2ZpbHRlcn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtUYWJiZWRWaXJ0dWFsU2Nyb2xsQ29tcG9uZW50fSBmcm9tICcuLi8uLi9hYnN0cmFjdC90YWJiZWQtdmlydHVhbC1zY3JvbGwuY29tcG9uZW50JztcbmltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT3B0aW9uYWwsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGUsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtUYXNrUGFuZWxEYXRhfSBmcm9tICcuLi90YXNrLXBhbmVsLWRhdGEvdGFzay1wYW5lbC1kYXRhJztcbmltcG9ydCB7SGVhZGVyQ29sdW1ufSBmcm9tICcuLi8uLi8uLi9oZWFkZXIvbW9kZWxzL2hlYWRlci1jb2x1bW4nO1xuaW1wb3J0IHtUYXNrRXZlbnROb3RpZmljYXRpb259IGZyb20gJy4uLy4uLy4uL3Rhc2stY29udGVudC9tb2RlbC90YXNrLWV2ZW50LW5vdGlmaWNhdGlvbic7XG5pbXBvcnQge1Rhc2tWaWV3U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vdmlldy90YXNrLXZpZXcvc2VydmljZS90YXNrLXZpZXcuc2VydmljZSc7XG5pbXBvcnQge0xvZ2dlclNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2xvZ2dlci9zZXJ2aWNlcy9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQge05BRV9UQUJfREFUQX0gZnJvbSAnLi4vLi4vLi4vdGFicy90YWItZGF0YS1pbmplY3Rpb24tdG9rZW4vdGFiLWRhdGEtaW5qZWN0aW9uLXRva2VuJztcbmltcG9ydCB7SW5qZWN0ZWRUYWJEYXRhfSBmcm9tICcuLi8uLi8uLi90YWJzL2ludGVyZmFjZXMnO1xuXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmNjLWFic3RyYWN0LWRlZmF1bHQtdGFzay1saXN0JyxcbiAgICB0ZW1wbGF0ZTogJydcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3REZWZhdWx0VGFza0xpc3RDb21wb25lbnQgZXh0ZW5kcyBUYWJiZWRWaXJ0dWFsU2Nyb2xsQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICAgIHByb3RlY3RlZCBfdGFza3MkOiBPYnNlcnZhYmxlPEFycmF5PFRhc2tQYW5lbERhdGE+PjtcbiAgICBwcm90ZWN0ZWQgX3JlZGlyZWN0VGFza0lkOiBzdHJpbmc7XG4gICAgcHJvdGVjdGVkIF91bnN1YnNjcmliZSQ6IFN1YmplY3Q8dm9pZD47XG4gICAgcHJvdGVjdGVkIF9hbGxvd011bHRpT3BlbiA9IHRydWU7XG4gICAgcHJvdGVjdGVkIF90YXNrUGFuZWxSZWZzOiBNYXA8c3RyaW5nLCBNYXRFeHBhbnNpb25QYW5lbD47XG4gICAgQElucHV0KCkgbG9hZGluZyQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgQElucHV0KCkgc2VsZWN0ZWRIZWFkZXJzJDogT2JzZXJ2YWJsZTxBcnJheTxIZWFkZXJDb2x1bW4+PjtcbiAgICBASW5wdXQoKSByZXNwb25zaXZlQm9keSA9IHRydWU7XG4gICAgQElucHV0KCkgZm9yY2VMb2FkRGF0YU9uT3BlbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHRleHRFbGxpcHNpcyA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBzZXQgYWxsb3dNdWx0aU9wZW4oYm9vbDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9hbGxvd011bHRpT3BlbiA9IGJvb2w7XG4gICAgICAgIHRoaXMuX3Rhc2tWaWV3U2VydmljZS5hbGxvd011bHRpT3BlbiA9IGJvb2w7XG4gICAgfVxuXG4gICAgZ2V0IGFsbG93TXVsdGlPcGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWxsb3dNdWx0aU9wZW47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRW1pdHMgbm90aWZpY2F0aW9ucyBhYm91dCB0YXNrIGV2ZW50c1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSB0YXNrRXZlbnQ6IEV2ZW50RW1pdHRlcjxUYXNrRXZlbnROb3RpZmljYXRpb24+O1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIF90YXNrVmlld1NlcnZpY2U6IFRhc2tWaWV3U2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2xvZzogTG9nZ2VyU2VydmljZSxcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE5BRV9UQUJfREFUQSkgaW5qZWN0ZWRUYWJEYXRhOiBJbmplY3RlZFRhYkRhdGEsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIHJvdXRlPzogQWN0aXZhdGVkUm91dGUpIHtcbiAgICAgICAgc3VwZXIoaW5qZWN0ZWRUYWJEYXRhKTtcbiAgICAgICAgdGhpcy50YXNrRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPFRhc2tFdmVudE5vdGlmaWNhdGlvbj4oKTtcbiAgICAgICAgdGhpcy5fdGFza1BhbmVsUmVmcyA9IG5ldyBNYXA8c3RyaW5nLCBNYXRFeHBhbnNpb25QYW5lbD4oKTtcbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy50YXNrRXZlbnQuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLm9uUmVkaXJlY3QoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdHJhY2tCeShfaWR4OiBudW1iZXIsIGl0ZW06IFRhc2tQYW5lbERhdGEpOiBhbnkge1xuICAgICAgICByZXR1cm4gaXRlbS50YXNrLnN0cmluZ0lkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEVtaXRzIGFuIGV2ZW50IGludG8gdGhpcyBjb21wb25lbnQncyBAT3V0cHV0IGF0dHJpYnV0ZVxuICAgICAqIEBwYXJhbSBldmVudCB0aGUgZXZlbnQgdGhhdCB3aWxsIGJlIGVtaXR0ZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgZW1pdFRhc2tFdmVudChldmVudDogVGFza0V2ZW50Tm90aWZpY2F0aW9uKSB7XG4gICAgICAgIHRoaXMudGFza0V2ZW50LmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRUb1BhbmVsUmVmcyh0YXNrOiBUYXNrUGFuZWxEYXRhLCBwYW5lbFJlZjogTWF0RXhwYW5zaW9uUGFuZWwpIHtcbiAgICAgICAgdGhpcy5fdGFza1BhbmVsUmVmcy5zZXQodGFzay50YXNrLnN0cmluZ0lkLCBwYW5lbFJlZik7XG4gICAgfVxuXG4gICAgcHVibGljIG9uUmVkaXJlY3QoKSB7XG4gICAgICAgIHRoaXMucm91dGUucXVlcnlQYXJhbXMucGlwZShmaWx0ZXIocG0gPT4gISFwbVsndGFza0lkJ10pKS5zdWJzY3JpYmUocG0gPT4ge1xuICAgICAgICAgICAgdGhpcy5fcmVkaXJlY3RUYXNrSWQgPSBwbVsndGFza0lkJ107XG4gICAgICAgICAgICB0aGlzLl90YXNrcyQucGlwZSgpLnN1YnNjcmliZSh0YXNrcyA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGFzayA9IHRhc2tzLmZpbmQodCA9PiB0LnRhc2suc3RyaW5nSWQgPT09IHRoaXMuX3JlZGlyZWN0VGFza0lkKTtcbiAgICAgICAgICAgICAgICBpZiAoISF0YXNrICYmICF0YXNrLmluaXRpYWxseUV4cGFuZGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3Rhc2tQYW5lbFJlZnMuZ2V0KHRoaXMuX3JlZGlyZWN0VGFza0lkKS5vcGVuKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3Rhc2tQYW5lbFJlZnMuZ2V0KHRoaXMuX3JlZGlyZWN0VGFza0lkKS5leHBhbmRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,12 +1,12 @@
1
1
  import { Component, Inject, Input, Optional } from '@angular/core';
2
2
  import { tap } from 'rxjs/operators';
3
- import { AbstractDefaultTaskList } from '../default-task-panel-list/abstract-default-task-list';
3
+ import { AbstractDefaultTaskListComponent } from '../default-task-panel-list/abstract-default-task-list.component';
4
4
  import { NAE_TAB_DATA } from '../../../tabs/tab-data-injection-token/tab-data-injection-token';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "../../../view/task-view/service/task-view.service";
7
7
  import * as i2 from "../../../logger/services/logger.service";
8
8
  import * as i3 from "@angular/router";
9
- export class AbstractTaskListPaginationComponent extends AbstractDefaultTaskList {
9
+ export class AbstractTaskListPaginationComponent extends AbstractDefaultTaskListComponent {
10
10
  constructor(_taskViewService, _log, injectedTabData, route) {
11
11
  super(_taskViewService, _log, injectedTabData, route);
12
12
  this._taskViewService = _taskViewService;
@@ -47,4 +47,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
47
47
  }] }, { type: i3.ActivatedRoute }]; }, propDecorators: { tasks$: [{
48
48
  type: Input
49
49
  }] } });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtdGFzay1saXN0LXBhZ2luYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9wYW5lbC90YXNrLXBhbmVsLWxpc3QvdGFzay1wYW5lbC1saXN0LXBhZ2luYXRpb24vYWJzdHJhY3QtdGFzay1saXN0LXBhZ2luYXRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFakUsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRW5DLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHVEQUF1RCxDQUFDO0FBSTlGLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpRUFBaUUsQ0FBQzs7Ozs7QUFPN0YsTUFBTSxPQUFnQixtQ0FBb0MsU0FBUSx1QkFBdUI7SUFtQnJGLFlBQXNCLGdCQUFpQyxFQUNqQyxJQUFtQixFQUNLLGVBQWdDLEVBQ3hELEtBQXNCO1FBQ3hDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBSnBDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUFDakMsU0FBSSxHQUFKLElBQUksQ0FBZTtRQUVuQixVQUFLLEdBQUwsS0FBSyxDQUFpQjtRQW5CckMsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLGNBQVMsR0FBRyxDQUFDLENBQUM7UUFDZCxvQkFBZSxHQUFrQixDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFtQnJELENBQUM7SUFqQkQsSUFDSSxNQUFNLENBQUMsS0FBdUM7UUFDOUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNoQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1lBQzdELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDN0QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztJQUVELElBQUksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBU00sYUFBYSxDQUFDLENBQUM7UUFDbEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUMzQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUUsQ0FBQzs7aUlBOUJpQixtQ0FBbUMsOEVBcUJyQixZQUFZO3FIQXJCMUIsbUNBQW1DLHdJQUYzQyxFQUFFOzRGQUVNLG1DQUFtQztrQkFKeEQsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsNkNBQTZDO29CQUN2RCxRQUFRLEVBQUUsRUFBRTtpQkFDZjs7MEJBc0JnQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLFlBQVk7eUVBYnhDLE1BQU07c0JBRFQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbmplY3QsIElucHV0LCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHt0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0Fic3RyYWN0RGVmYXVsdFRhc2tMaXN0fSBmcm9tICcuLi9kZWZhdWx0LXRhc2stcGFuZWwtbGlzdC9hYnN0cmFjdC1kZWZhdWx0LXRhc2stbGlzdCc7XG5pbXBvcnQge1Rhc2tQYW5lbERhdGF9IGZyb20gJy4uL3Rhc2stcGFuZWwtZGF0YS90YXNrLXBhbmVsLWRhdGEnO1xuaW1wb3J0IHtUYXNrVmlld1NlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3ZpZXcvdGFzay12aWV3L3NlcnZpY2UvdGFzay12aWV3LnNlcnZpY2UnO1xuaW1wb3J0IHtMb2dnZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9sb2dnZXIvc2VydmljZXMvbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHtOQUVfVEFCX0RBVEF9IGZyb20gJy4uLy4uLy4uL3RhYnMvdGFiLWRhdGEtaW5qZWN0aW9uLXRva2VuL3RhYi1kYXRhLWluamVjdGlvbi10b2tlbic7XG5pbXBvcnQge0luamVjdGVkVGFiRGF0YX0gZnJvbSAnLi4vLi4vLi4vdGFicy9pbnRlcmZhY2VzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduY2MtYWJzdHJhY3QtdGFzay1saXN0LXBhZ2luYXRpb24tY29tcG9uZW50JyxcbiAgICB0ZW1wbGF0ZTogJydcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RUYXNrTGlzdFBhZ2luYXRpb25Db21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdERlZmF1bHRUYXNrTGlzdCB7XG5cbiAgICBwdWJsaWMgbGVuZ3RoOiBudW1iZXI7XG4gICAgcHVibGljIHBhZ2VTaXplID0gMjA7XG4gICAgcHVibGljIHBhZ2VJbmRleCA9IDA7XG4gICAgcHVibGljIHBhZ2VTaXplT3B0aW9uczogQXJyYXk8bnVtYmVyPiA9IFsxMCwgMjAsIDUwXTtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRhc2tzJCh0YXNrczogT2JzZXJ2YWJsZTxBcnJheTxUYXNrUGFuZWxEYXRhPj4pIHtcbiAgICAgICAgdGhpcy5fdGFza3MkID0gdGFza3MucGlwZSgodGFwKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMubGVuZ3RoID0gdGhpcy5fdGFza1ZpZXdTZXJ2aWNlLnBhZ2luYXRpb24udG90YWxFbGVtZW50cztcbiAgICAgICAgICAgIHRoaXMucGFnZUluZGV4ID0gdGhpcy5fdGFza1ZpZXdTZXJ2aWNlLnBhZ2luYXRpb24ubnVtYmVyO1xuICAgICAgICB9KSkpO1xuICAgIH1cblxuICAgIGdldCB0YXNrcyQoKTogT2JzZXJ2YWJsZTxBcnJheTxUYXNrUGFuZWxEYXRhPj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFza3MkO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfdGFza1ZpZXdTZXJ2aWNlOiBUYXNrVmlld1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9sb2c6IExvZ2dlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChOQUVfVEFCX0RBVEEpIGluamVjdGVkVGFiRGF0YTogSW5qZWN0ZWRUYWJEYXRhLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCByb3V0ZT86IEFjdGl2YXRlZFJvdXRlKSB7XG4gICAgICAgIHN1cGVyKF90YXNrVmlld1NlcnZpY2UsIF9sb2csIGluamVjdGVkVGFiRGF0YSwgcm91dGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblBhZ2VDaGFuZ2VkKGUpIHtcbiAgICAgICAgdGhpcy5wYWdlSW5kZXggPSBlLnBhZ2VJbmRleDtcbiAgICAgICAgdGhpcy5wYWdlU2l6ZSA9IGUucGFnZVNpemU7XG4gICAgICAgIHRoaXMuX3Rhc2tWaWV3U2VydmljZS5uZXh0UGFnZVBhZ2luYXRpb24odGhpcy5wYWdlU2l6ZSwgdGhpcy5wYWdlSW5kZXgpO1xuICAgIH1cbn1cbiJdfQ==
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtdGFzay1saXN0LXBhZ2luYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9wYW5lbC90YXNrLXBhbmVsLWxpc3QvdGFzay1wYW5lbC1saXN0LXBhZ2luYXRpb24vYWJzdHJhY3QtdGFzay1saXN0LXBhZ2luYXRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFakUsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRW5DLE9BQU8sRUFBQyxnQ0FBZ0MsRUFBQyxNQUFNLGlFQUFpRSxDQUFDO0FBSWpILE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpRUFBaUUsQ0FBQzs7Ozs7QUFPN0YsTUFBTSxPQUFnQixtQ0FBb0MsU0FBUSxnQ0FBZ0M7SUFtQjlGLFlBQXNCLGdCQUFpQyxFQUNqQyxJQUFtQixFQUNLLGVBQWdDLEVBQ3hELEtBQXNCO1FBQ3hDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBSnBDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUFDakMsU0FBSSxHQUFKLElBQUksQ0FBZTtRQUVuQixVQUFLLEdBQUwsS0FBSyxDQUFpQjtRQW5CckMsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLGNBQVMsR0FBRyxDQUFDLENBQUM7UUFDZCxvQkFBZSxHQUFrQixDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFtQnJELENBQUM7SUFqQkQsSUFDSSxNQUFNLENBQUMsS0FBdUM7UUFDOUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNoQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1lBQzdELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDN0QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztJQUVELElBQUksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBU00sYUFBYSxDQUFDLENBQUM7UUFDbEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUMzQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUUsQ0FBQzs7aUlBOUJpQixtQ0FBbUMsOEVBcUJyQixZQUFZO3FIQXJCMUIsbUNBQW1DLHdJQUYzQyxFQUFFOzRGQUVNLG1DQUFtQztrQkFKeEQsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsNkNBQTZDO29CQUN2RCxRQUFRLEVBQUUsRUFBRTtpQkFDZjs7MEJBc0JnQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLFlBQVk7eUVBYnhDLE1BQU07c0JBRFQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbmplY3QsIElucHV0LCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHt0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0Fic3RyYWN0RGVmYXVsdFRhc2tMaXN0Q29tcG9uZW50fSBmcm9tICcuLi9kZWZhdWx0LXRhc2stcGFuZWwtbGlzdC9hYnN0cmFjdC1kZWZhdWx0LXRhc2stbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHtUYXNrUGFuZWxEYXRhfSBmcm9tICcuLi90YXNrLXBhbmVsLWRhdGEvdGFzay1wYW5lbC1kYXRhJztcbmltcG9ydCB7VGFza1ZpZXdTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi92aWV3L3Rhc2stdmlldy9zZXJ2aWNlL3Rhc2stdmlldy5zZXJ2aWNlJztcbmltcG9ydCB7TG9nZ2VyU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vbG9nZ2VyL3NlcnZpY2VzL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7TkFFX1RBQl9EQVRBfSBmcm9tICcuLi8uLi8uLi90YWJzL3RhYi1kYXRhLWluamVjdGlvbi10b2tlbi90YWItZGF0YS1pbmplY3Rpb24tdG9rZW4nO1xuaW1wb3J0IHtJbmplY3RlZFRhYkRhdGF9IGZyb20gJy4uLy4uLy4uL3RhYnMvaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmNjLWFic3RyYWN0LXRhc2stbGlzdC1wYWdpbmF0aW9uLWNvbXBvbmVudCcsXG4gICAgdGVtcGxhdGU6ICcnXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0VGFza0xpc3RQYWdpbmF0aW9uQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3REZWZhdWx0VGFza0xpc3RDb21wb25lbnQge1xuXG4gICAgcHVibGljIGxlbmd0aDogbnVtYmVyO1xuICAgIHB1YmxpYyBwYWdlU2l6ZSA9IDIwO1xuICAgIHB1YmxpYyBwYWdlSW5kZXggPSAwO1xuICAgIHB1YmxpYyBwYWdlU2l6ZU9wdGlvbnM6IEFycmF5PG51bWJlcj4gPSBbMTAsIDIwLCA1MF07XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCB0YXNrcyQodGFza3M6IE9ic2VydmFibGU8QXJyYXk8VGFza1BhbmVsRGF0YT4+KSB7XG4gICAgICAgIHRoaXMuX3Rhc2tzJCA9IHRhc2tzLnBpcGUoKHRhcCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmxlbmd0aCA9IHRoaXMuX3Rhc2tWaWV3U2VydmljZS5wYWdpbmF0aW9uLnRvdGFsRWxlbWVudHM7XG4gICAgICAgICAgICB0aGlzLnBhZ2VJbmRleCA9IHRoaXMuX3Rhc2tWaWV3U2VydmljZS5wYWdpbmF0aW9uLm51bWJlcjtcbiAgICAgICAgfSkpKTtcbiAgICB9XG5cbiAgICBnZXQgdGFza3MkKCk6IE9ic2VydmFibGU8QXJyYXk8VGFza1BhbmVsRGF0YT4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Rhc2tzJDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX3Rhc2tWaWV3U2VydmljZTogVGFza1ZpZXdTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfbG9nOiBMb2dnZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTkFFX1RBQl9EQVRBKSBpbmplY3RlZFRhYkRhdGE6IEluamVjdGVkVGFiRGF0YSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgcm91dGU/OiBBY3RpdmF0ZWRSb3V0ZSkge1xuICAgICAgICBzdXBlcihfdGFza1ZpZXdTZXJ2aWNlLCBfbG9nLCBpbmplY3RlZFRhYkRhdGEsIHJvdXRlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25QYWdlQ2hhbmdlZChlKSB7XG4gICAgICAgIHRoaXMucGFnZUluZGV4ID0gZS5wYWdlSW5kZXg7XG4gICAgICAgIHRoaXMucGFnZVNpemUgPSBlLnBhZ2VTaXplO1xuICAgICAgICB0aGlzLl90YXNrVmlld1NlcnZpY2UubmV4dFBhZ2VQYWdpbmF0aW9uKHRoaXMucGFnZVNpemUsIHRoaXMucGFnZUluZGV4KTtcbiAgICB9XG59XG4iXX0=
@@ -1,20 +1,25 @@
1
- import { Component, Input } from '@angular/core';
1
+ import { Component, Input, Optional } from '@angular/core';
2
2
  import { AbstractPanelWithHeaderBindingComponent } from '../abstract/panel-with-header-binding';
3
3
  import { toMoment } from '../../resources/types/nae-date-type';
4
4
  import { DATE_TIME_FORMAT_STRING } from '../../moment/time-formats';
5
5
  import { TextField } from '../../data-fields/text-field/models/text-field';
6
6
  import { DateTimeField } from '../../data-fields/date-time-field/models/date-time-field';
7
7
  import { WorkflowMetaField } from '../../header/workflow-header/workflow-meta-enum';
8
+ import { ProgressType } from '../../resources/resource-provider.service';
8
9
  import * as i0 from "@angular/core";
9
10
  import * as i1 from "../../logger/services/logger.service";
10
11
  import * as i2 from "@ngx-translate/core";
11
12
  import * as i3 from "../../view/workflow-view/workflow-view.service";
13
+ import * as i4 from "../../resources/engine-endpoint/petri-net-resource.service";
14
+ import * as i5 from "../../header/services/overflow.service";
12
15
  export class AbstractWorkflowPanelComponent extends AbstractPanelWithHeaderBindingComponent {
13
- constructor(_log, _translate, _workflowService) {
14
- super();
16
+ constructor(_log, _translate, _workflowService, _petriNetResource, _overflowService) {
17
+ super(_overflowService);
15
18
  this._log = _log;
16
19
  this._translate = _translate;
17
20
  this._workflowService = _workflowService;
21
+ this._petriNetResource = _petriNetResource;
22
+ this._overflowService = _overflowService;
18
23
  this.responsiveBody = true;
19
24
  this.showDeleteMenu = false;
20
25
  this.TRANSLATION_NET = 'panel.workflow.net';
@@ -56,6 +61,33 @@ export class AbstractWorkflowPanelComponent extends AbstractPanelWithHeaderBindi
56
61
  deleteWorkflow() {
57
62
  this._workflowService.deleteWorkflow(this.workflow);
58
63
  }
64
+ /**
65
+ * Handles the logic that should be executed when the "download workflow" button is clicked.
66
+ *
67
+ * Calls the appropriate method in the {@link WorkflowViewService}.
68
+ */
69
+ downloadNetFile() {
70
+ this._petriNetResource.getNetFile(this.workflow.stringId).subscribe(response => {
71
+ if (!response.type || response.type !== ProgressType.DOWNLOAD) {
72
+ this._log.debug(`File ${this.workflow.identifier} was successfully downloaded`);
73
+ this.downloadViaAnchor(response);
74
+ }
75
+ }, error => {
76
+ this._log.error(`Downloading file ${this.workflow.identifier} has failed!`, error);
77
+ });
78
+ }
79
+ downloadViaAnchor(blob) {
80
+ const a = document.createElement('a');
81
+ document.body.appendChild(a);
82
+ a.setAttribute('style', 'display: none');
83
+ blob = new Blob([blob], { type: blob.type });
84
+ const url = window.URL.createObjectURL(blob);
85
+ a.href = url;
86
+ a.download = this.workflow.identifier;
87
+ a.click();
88
+ window.URL.revokeObjectURL(url);
89
+ document.body.removeChild(a);
90
+ }
59
91
  /**
60
92
  * Populate data fields group for every petri net model
61
93
  */
@@ -98,7 +130,7 @@ export class AbstractWorkflowPanelComponent extends AbstractPanelWithHeaderBindi
98
130
  return { value: '', icon: '', type: '' };
99
131
  }
100
132
  }
101
- AbstractWorkflowPanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AbstractWorkflowPanelComponent, deps: [{ token: i1.LoggerService }, { token: i2.TranslateService }, { token: i3.WorkflowViewService }], target: i0.ɵɵFactoryTarget.Component });
133
+ AbstractWorkflowPanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AbstractWorkflowPanelComponent, deps: [{ token: i1.LoggerService }, { token: i2.TranslateService }, { token: i3.WorkflowViewService }, { token: i4.PetriNetResourceService }, { token: i5.OverflowService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
102
134
  AbstractWorkflowPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AbstractWorkflowPanelComponent, selector: "ncc-abstract-workflow-panel", inputs: { workflow: "workflow", selectedHeaders$: "selectedHeaders$", responsiveBody: "responsiveBody", showDeleteMenu: "showDeleteMenu" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
103
135
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AbstractWorkflowPanelComponent, decorators: [{
104
136
  type: Component,
@@ -106,7 +138,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
106
138
  selector: 'ncc-abstract-workflow-panel',
107
139
  template: ''
108
140
  }]
109
- }], ctorParameters: function () { return [{ type: i1.LoggerService }, { type: i2.TranslateService }, { type: i3.WorkflowViewService }]; }, propDecorators: { workflow: [{
141
+ }], ctorParameters: function () { return [{ type: i1.LoggerService }, { type: i2.TranslateService }, { type: i3.WorkflowViewService }, { type: i4.PetriNetResourceService }, { type: i5.OverflowService, decorators: [{
142
+ type: Optional
143
+ }] }]; }, propDecorators: { workflow: [{
110
144
  type: Input
111
145
  }], selectedHeaders$: [{
112
146
  type: Input
@@ -115,4 +149,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
115
149
  }], showDeleteMenu: [{
116
150
  type: Input
117
151
  }] } });
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3Qtd29ya2Zsb3ctcGFuZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9wYW5lbC93b3JrZmxvdy1wYW5lbC9hYnN0cmFjdC13b3JrZmxvdy1wYW5lbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBRWxFLE9BQU8sRUFBQyx1Q0FBdUMsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBSTlGLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3RCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0RBQWdELENBQUM7QUFDekUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDBEQUEwRCxDQUFDO0FBSXZGLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGlEQUFpRCxDQUFDOzs7OztBQWlCbEYsTUFBTSxPQUFnQiw4QkFBK0IsU0FBUSx1Q0FBdUM7SUFpQmhHLFlBQWdDLElBQW1CLEVBQ25CLFVBQTRCLEVBQzVCLGdCQUFxQztRQUNqRSxLQUFLLEVBQUUsQ0FBQztRQUhvQixTQUFJLEdBQUosSUFBSSxDQUFlO1FBQ25CLGVBQVUsR0FBVixVQUFVLENBQWtCO1FBQzVCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBcUI7UUFmNUQsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFJZixvQkFBZSxHQUFHLG9CQUFvQixDQUFDO1FBQ3ZDLHNCQUFpQixHQUFHLHNCQUFzQixDQUFDO1FBQzNDLHdCQUFtQixHQUFHLHdCQUF3QixDQUFDO1FBQy9DLHVCQUFrQixHQUFHLHVCQUF1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S0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01hdEV4cGFuc2lvblBhbmVsfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb24nO1xuaW1wb3J0IHtBYnN0cmFjdFBhbmVsV2l0aEhlYWRlckJpbmRpbmdDb21wb25lbnR9IGZyb20gJy4uL2Fic3RyYWN0L3BhbmVsLXdpdGgtaGVhZGVyLWJpbmRpbmcnO1xuaW1wb3J0IHtIZWFkZXJDb2x1bW59IGZyb20gJy4uLy4uL2hlYWRlci9tb2RlbHMvaGVhZGVyLWNvbHVtbic7XG5pbXBvcnQge09ic2VydmFibGUsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0xvZ2dlclNlcnZpY2V9IGZyb20gJy4uLy4uL2xvZ2dlci9zZXJ2aWNlcy9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQge3RvTW9tZW50fSBmcm9tICcuLi8uLi9yZXNvdXJjZXMvdHlwZXMvbmFlLWRhdGUtdHlwZSc7XG5pbXBvcnQge0RBVEVfVElNRV9GT1JNQVRfU1RSSU5HfSBmcm9tICcuLi8uLi9tb21lbnQvdGltZS1mb3JtYXRzJztcbmltcG9ydCB7VGV4dEZpZWxkfSBmcm9tICcuLi8uLi9kYXRhLWZpZWxkcy90ZXh0LWZpZWxkL21vZGVscy90ZXh0LWZpZWxkJztcbmltcG9ydCB7RGF0ZVRpbWVGaWVsZH0gZnJvbSAnLi4vLi4vZGF0YS1maWVsZHMvZGF0ZS10aW1lLWZpZWxkL21vZGVscy9kYXRlLXRpbWUtZmllbGQnO1xuaW1wb3J0IHtCZWhhdmlvcn0gZnJvbSAnLi4vLi4vZGF0YS1maWVsZHMvbW9kZWxzL2JlaGF2aW9yJztcbmltcG9ydCB7TmV0fSBmcm9tICcuLi8uLi9wcm9jZXNzL25ldCc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2UsIFRyYW5zbGF0aW9uQ2hhbmdlRXZlbnR9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtXb3JrZmxvd01ldGFGaWVsZH0gZnJvbSAnLi4vLi4vaGVhZGVyL3dvcmtmbG93LWhlYWRlci93b3JrZmxvdy1tZXRhLWVudW0nO1xuaW1wb3J0IHtXb3JrZmxvd1ZpZXdTZXJ2aWNlfSBmcm9tICcuLi8uLi92aWV3L3dvcmtmbG93LXZpZXcvd29ya2Zsb3ctdmlldy5zZXJ2aWNlJztcbmltcG9ydCB7RmVhdHVyZWRWYWx1ZX0gZnJvbSAnLi4vYWJzdHJhY3QvZmVhdHVyZWQtdmFsdWUnO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgV29ya2Zsb3dQYW5lbENvbnRlbnQge1xuICAgIG5ldElkZW50aWZpZXI6IFRleHRGaWVsZDtcbiAgICB0aXRsZTogVGV4dEZpZWxkO1xuICAgIHZlcnNpb246IFRleHRGaWVsZDtcbiAgICBhdXRob3I6IFRleHRGaWVsZDtcbiAgICB1cGxvYWRlZDogRGF0ZVRpbWVGaWVsZDtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduY2MtYWJzdHJhY3Qtd29ya2Zsb3ctcGFuZWwnLFxuICAgIHRlbXBsYXRlOiAnJ1xufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFdvcmtmbG93UGFuZWxDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdFBhbmVsV2l0aEhlYWRlckJpbmRpbmdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgICBASW5wdXQoKSBwdWJsaWMgd29ya2Zsb3c6IE5ldDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0ZWRIZWFkZXJzJDogT2JzZXJ2YWJsZTxBcnJheTxIZWFkZXJDb2x1bW4+PjtcbiAgICBASW5wdXQoKSByZXNwb25zaXZlQm9keSA9IHRydWU7XG4gICAgQElucHV0KCkgc2hvd0RlbGV0ZU1lbnUgPSBmYWxzZTtcbiAgICBwdWJsaWMgcGFuZWxSZWY6IE1hdEV4cGFuc2lvblBhbmVsO1xuICAgIHB1YmxpYyBwYW5lbENvbnRlbnQ6IFdvcmtmbG93UGFuZWxDb250ZW50O1xuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgVFJBTlNMQVRJT05fTkVUID0gJ3BhbmVsLndvcmtmbG93Lm5ldCc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBUUkFOU0xBVElPTl9USVRMRSA9ICdwYW5lbC53b3JrZmxvdy50aXRsZSc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBUUkFOU0xBVElPTl9WRVJTSU9OID0gJ3BhbmVsLndvcmtmbG93LnZlcnNpb24nO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgVFJBTlNMQVRJT05fQVVUSE9SID0gJ3BhbmVsLndvcmtmbG93LmF1dGhvcic7XG4gICAgcHJpdmF0ZSByZWFkb25seSBUUkFOU0xBVElPTl9VUExPQUQgPSAncGFuZWwud29ya2Zsb3cudXBsb2FkJztcblxuICAgIHByb3RlY3RlZCBkYXRhRmllbGRzQmVoYXZpb3VyOiBCZWhhdmlvciA9IHt2aXNpYmxlOiB0cnVlLCBlZGl0YWJsZTogZmFsc2V9O1xuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfbG9nOiBMb2dnZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF93b3JrZmxvd1NlcnZpY2U6IFdvcmtmbG93Vmlld1NlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24gPSBfdHJhbnNsYXRlLm9uTGFuZ0NoYW5nZS5zdWJzY3JpYmUoKGV2ZW50OiBUcmFuc2xhdGlvbkNoYW5nZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICB0aGlzLnBhbmVsQ29udGVudC5uZXRJZGVudGlmaWVyLnRpdGxlID0gdGhpcy5fdHJhbnNsYXRlLmluc3RhbnQodGhpcy5UUkFOU0xBVElPTl9ORVQpO1xuICAgICAgICAgICAgdGhpcy5wYW5lbENvbnRlbnQudGl0bGUudGl0bGUgPSB0aGlzLl90cmFuc2xhdGUuaW5zdGFudCh0aGlzLlRSQU5TTEFUSU9OX1RJVExFKTtcbiAgICAgICAgICAgIHRoaXMucGFuZWxDb250ZW50LnZlcnNpb24udGl0bGUgPSB0aGlzLl90cmFuc2xhdGUuaW5zdGFudCh0aGlzLlRSQU5TTEFUSU9OX1ZFUlNJT04pO1xuICAgICAgICAgICAgdGhpcy5wYW5lbENvbnRlbnQuYXV0aG9yLnRpdGxlID0gdGhpcy5fdHJhbnNsYXRlLmluc3RhbnQodGhpcy5UUkFOU0xBVElPTl9BVVRIT1IpO1xuICAgICAgICAgICAgdGhpcy5wYW5lbENvbnRlbnQudXBsb2FkZWQudGl0bGUgPSB0aGlzLl90cmFuc2xhdGUuaW5zdGFudCh0aGlzLlRSQU5TTEFUSU9OX1VQTE9BRCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLnBhbmVsQ29udGVudCA9IHRoaXMuY3JlYXRlUGFuZWxDb250ZW50KCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzaG93KGV2ZW50OiBNb3VzZUV2ZW50KTogYm9vbGVhbiB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIGNvbGxhcHNlKCkge1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRQYW5lbFJlZihwYW5lbFJlZjogTWF0RXhwYW5zaW9uUGFuZWwpIHtcbiAgICAgICAgdGhpcy5wYW5lbFJlZiA9IHBhbmVsUmVmO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhhbmRsZXMgdGhlIGxvZ2ljIHRoYXQgc2hvdWxkIGJlIGV4ZWN1dGVkIHdoZW4gdGhlIFwiZGVsZXRlIHdvcmtmbG93XCIgYnV0dG9uIGlzIGNsaWNrZWQuXG4gICAgICpcbiAgICAgKiBDYWxscyB0aGUgYXBwcm9wcmlhdGUgbWV0aG9kIGluIHRoZSB7QGxpbmsgV29ya2Zsb3dWaWV3U2VydmljZX0uXG4gICAgICovXG4gICAgcHVibGljIGRlbGV0ZVdvcmtmbG93KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl93b3JrZmxvd1NlcnZpY2UuZGVsZXRlV29ya2Zsb3codGhpcy53b3JrZmxvdyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUG9wdWxhdGUgZGF0YSBmaWVsZHMgZ3JvdXAgZm9yIGV2ZXJ5IHBldHJpIG5ldCBtb2RlbFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBjcmVhdGVQYW5lbENvbnRlbnQoKTogV29ya2Zsb3dQYW5lbENvbnRlbnQge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmV0SWRlbnRpZmllcjogbmV3IFRleHRGaWVsZCgnJywgdGhpcy5fdHJhbnNsYXRlLmluc3RhbnQodGhpcy5UUkFOU0xBVElPTl9ORVQpLFxuICAgICAgICAgICAgICAgIHRoaXMud29ya2Zsb3cuaWRlbnRpZmllciwgdGhpcy5kYXRhRmllbGRzQmVoYXZpb3VyKSxcbiAgICAgICAgICAgIHRpdGxlOiBuZXcgVGV4dEZpZWxkKCcnLCB0aGlzLl90cmFuc2xhdGUuaW5zdGFudCh0aGlzLlRSQU5TTEFUSU9OX1RJVExFKSxcbiAgICAgICAgICAgICAgICB0aGlzLndvcmtmbG93LnRpdGxlLCB0aGlzLmRhdGFGaWVsZHNCZWhhdmlvdXIpLFxuICAgICAgICAgICAgdmVyc2lvbjogbmV3IFRleHRGaWVsZCgnJywgdGhpcy5fdHJhbnNsYXRlLmluc3RhbnQodGhpcy5UUkFOU0xBVElPTl9WRVJTSU9OKSxcbiAgICAgICAgICAgICAgICB0aGlzLndvcmtmbG93LnZlcnNpb24sIHRoaXMuZGF0YUZpZWxkc0JlaGF2aW91ciksXG4gICAgICAgICAgICBhdXRob3I6IG5ldyBUZXh0RmllbGQoJycsIHRoaXMuX3RyYW5zbGF0ZS5pbnN0YW50KHRoaXMuVFJBTlNMQVRJT05fQVVUSE9SKSxcbiAgICAgICAgICAgICAgICB0aGlzLndvcmtmbG93LmF1dGhvci5mdWxsTmFtZSwgdGhpcy5kYXRhRmllbGRzQmVoYXZpb3VyKSxcbiAgICAgICAgICAgIHVwbG9hZGVkOiBuZXcgRGF0ZVRpbWVGaWVsZCgnJywgdGhpcy5fdHJhbnNsYXRlLmluc3RhbnQodGhpcy5UUkFOU0xBVElPTl9VUExPQUQpLFxuICAgICAgICAgICAgICAgIHRvTW9tZW50KHRoaXMud29ya2Zsb3cuY3JlYXRlZERhdGUpLCB0aGlzLmRhdGFGaWVsZHNCZWhhdmlvdXIpXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlc29sdmVGZWF0dXJlZEZpZWxkc1ZhbHVlcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9sYXN0U2VsZWN0ZWRIZWFkZXJzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmZlYXR1cmVkRmllbGRzVmFsdWVzLnNwbGljZSgwLCB0aGlzLmZlYXR1cmVkRmllbGRzVmFsdWVzLmxlbmd0aCk7XG4gICAgICAgIHRoaXMuX2xhc3RTZWxlY3RlZEhlYWRlcnMuZm9yRWFjaChoZWFkZXIgPT4ge1xuICAgICAgICAgICAgdGhpcy5mZWF0dXJlZEZpZWxkc1ZhbHVlcy5wdXNoKHRoaXMuZ2V0RmVhdHVyZWRWYWx1ZShoZWFkZXIpKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEZlYXR1cmVkTWV0YVZhbHVlKHNlbGVjdGVkSGVhZGVyOiBIZWFkZXJDb2x1bW4pOiBGZWF0dXJlZFZhbHVlIHtcbiAgICAgICAgc3dpdGNoIChzZWxlY3RlZEhlYWRlci5maWVsZElkZW50aWZpZXIpIHtcbiAgICAgICAgICAgIGNhc2UgV29ya2Zsb3dNZXRhRmllbGQuSU5JVElBTFM6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHt2YWx1ZTogdGhpcy53b3JrZmxvdy5pbml0aWFscywgaWNvbjogJycsIHR5cGU6ICdtZXRhJ307XG4gICAgICAgICAgICBjYXNlIFdvcmtmbG93TWV0YUZpZWxkLlRJVExFOlxuICAgICAgICAgICAgICAgIHJldHVybiB7dmFsdWU6IHRoaXMud29ya2Zsb3cudGl0bGUsIGljb246ICcnLCB0eXBlOiAnbWV0YSd9O1xuICAgICAgICAgICAgY2FzZSBXb3JrZmxvd01ldGFGaWVsZC5ORVRfSUQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHt2YWx1ZTogdGhpcy53b3JrZmxvdy5zdHJpbmdJZCwgaWNvbjogJycsIHR5cGU6ICdtZXRhJ307XG4gICAgICAgICAgICBjYXNlIFdvcmtmbG93TWV0YUZpZWxkLlZFUlNJT046XG4gICAgICAgICAgICAgICAgcmV0dXJuIHt2YWx1ZTogdGhpcy53b3JrZmxvdy52ZXJzaW9uLCBpY29uOiAnJywgdHlwZTogJ21ldGEnfTtcbiAgICAgICAgICAgIGNhc2UgV29ya2Zsb3dNZXRhRmllbGQuQVVUSE9SOlxuICAgICAgICAgICAgICAgIHJldHVybiB7dmFsdWU6IHRoaXMud29ya2Zsb3cuYXV0aG9yLmZ1bGxOYW1lLCBpY29uOiAnYWNjb3VudF9jaXJjbGUnLCB0eXBlOiAnbWV0YSd9O1xuICAgICAgICAgICAgY2FzZSBXb3JrZmxvd01ldGFGaWVsZC5DUkVBVElPTl9EQVRFOlxuICAgICAgICAgICAgICAgIHJldHVybiB7dmFsdWU6IHRvTW9tZW50KHRoaXMud29ya2Zsb3cuY3JlYXRlZERhdGUpLmZvcm1hdChEQVRFX1RJTUVfRk9STUFUX1NUUklORyksIGljb246ICdldmVudCcsIHR5cGU6ICdtZXRhJ307XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0RmVhdHVyZWRJbW1lZGlhdGVWYWx1ZShzZWxlY3RlZEhlYWRlcjogSGVhZGVyQ29sdW1uKTogRmVhdHVyZWRWYWx1ZSB7XG4gICAgICAgIHRoaXMuX2xvZy53YXJuKCdJbW1lZGlhdGUgZGF0YSBpbiB3b3JrZmxvdyBwYW5lbCBoZWFkZXJzIGFyZSBjdXJyZW50bHkgbm90IHN1cHBvcnRlZCcpO1xuICAgICAgICByZXR1cm4ge3ZhbHVlOiAnJywgaWNvbjogJycsIHR5cGU6ICcnfTtcbiAgICB9XG5cbn1cbiJdfQ==
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3Qtd29ya2Zsb3ctcGFuZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9wYW5lbC93b3JrZmxvdy1wYW5lbC9hYnN0cmFjdC13b3JrZmxvdy1wYW5lbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQXFCLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU1RSxPQUFPLEVBQUMsdUNBQXVDLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUk5RixPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDN0QsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUl2RixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxpREFBaUQsQ0FBQztBQUlsRixPQUFPLEVBQUMsWUFBWSxFQUFtQixNQUFNLDJDQUEyQyxDQUFDOzs7Ozs7O0FBZ0J6RixNQUFNLE9BQWdCLDhCQUErQixTQUFRLHVDQUF1QztJQWlCaEcsWUFBZ0MsSUFBbUIsRUFDbkIsVUFBNEIsRUFDNUIsZ0JBQXFDLEVBQ3JDLGlCQUEwQyxFQUM5QixnQkFBaUM7UUFDekUsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFMSSxTQUFJLEdBQUosSUFBSSxDQUFlO1FBQ25CLGVBQVUsR0FBVixVQUFVLENBQWtCO1FBQzVCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBcUI7UUFDckMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUF5QjtRQUM5QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBakJwRSxt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LElBQUksQ0FBQyxJQUFJLENBQUMsc0VBQXNFLENBQUMsQ0FBQztRQUN2RixPQUFPLEVBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUMsQ0FBQztJQUMzQyxDQUFDOzs0SEEvSWlCLDhCQUE4QjtnSEFBOUIsOEJBQThCLHNPQUZ0QyxFQUFFOzRGQUVNLDhCQUE4QjtrQkFKbkQsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsNkJBQTZCO29CQUN2QyxRQUFRLEVBQUUsRUFBRTtpQkFDZjs7MEJBc0IwQixRQUFROzRDQW5CZixRQUFRO3NCQUF2QixLQUFLO2dCQUNVLGdCQUFnQjtzQkFBL0IsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01hdEV4cGFuc2lvblBhbmVsfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb24nO1xuaW1wb3J0IHtBYnN0cmFjdFBhbmVsV2l0aEhlYWRlckJpbmRpbmdDb21wb25lbnR9IGZyb20gJy4uL2Fic3RyYWN0L3BhbmVsLXdpdGgtaGVhZGVyLWJpbmRpbmcnO1xuaW1wb3J0IHtIZWFkZXJDb2x1bW59IGZyb20gJy4uLy4uL2hlYWRlci9tb2RlbHMvaGVhZGVyLWNvbHVtbic7XG5pbXBvcnQge09ic2VydmFibGUsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0xvZ2dlclNlcnZpY2V9IGZyb20gJy4uLy4uL2xvZ2dlci9zZXJ2aWNlcy9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQge3RvTW9tZW50fSBmcm9tICcuLi8uLi9yZXNvdXJjZXMvdHlwZXMvbmFlLWRhdGUtdHlwZSc7XG5pbXBvcnQge0RBVEVfVElNRV9GT1JNQVRfU1RSSU5HfSBmcm9tICcuLi8uLi9tb21lbnQvdGltZS1mb3JtYXRzJztcbmltcG9ydCB7VGV4dEZpZWxkfSBmcm9tICcuLi8uLi9kYXRhLWZpZWxkcy90ZXh0LWZpZWxkL21vZGVscy90ZXh0LWZpZWxkJztcbmltcG9ydCB7RGF0ZVRpbWVGaWVsZH0gZnJvbSAnLi4vLi4vZGF0YS1maWVsZHMvZGF0ZS10aW1lLWZpZWxkL21vZGVscy9kYXRlLXRpbWUtZmllbGQnO1xuaW1wb3J0IHtCZWhhdmlvcn0gZnJvbSAnLi4vLi4vZGF0YS1maWVsZHMvbW9kZWxzL2JlaGF2aW9yJztcbmltcG9ydCB7TmV0fSBmcm9tICcuLi8uLi9wcm9jZXNzL25ldCc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2UsIFRyYW5zbGF0aW9uQ2hhbmdlRXZlbnR9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtXb3JrZmxvd01ldGFGaWVsZH0gZnJvbSAnLi4vLi4vaGVhZGVyL3dvcmtmbG93LWhlYWRlci93b3JrZmxvdy1tZXRhLWVudW0nO1xuaW1wb3J0IHtXb3JrZmxvd1ZpZXdTZXJ2aWNlfSBmcm9tICcuLi8uLi92aWV3L3dvcmtmbG93LXZpZXcvd29ya2Zsb3ctdmlldy5zZXJ2aWNlJztcbmltcG9ydCB7RmVhdHVyZWRWYWx1ZX0gZnJvbSAnLi4vYWJzdHJhY3QvZmVhdHVyZWQtdmFsdWUnO1xuaW1wb3J0IHtQZXRyaU5ldFJlc291cmNlU2VydmljZX0gZnJvbSAnLi4vLi4vcmVzb3VyY2VzL2VuZ2luZS1lbmRwb2ludC9wZXRyaS1uZXQtcmVzb3VyY2Uuc2VydmljZSc7XG5pbXBvcnQge1Byb2dyZXNzVHlwZSwgUHJvdmlkZXJQcm9ncmVzc30gZnJvbSAnLi4vLi4vcmVzb3VyY2VzL3Jlc291cmNlLXByb3ZpZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHtPdmVyZmxvd1NlcnZpY2V9IGZyb20gJy4uLy4uL2hlYWRlci9zZXJ2aWNlcy9vdmVyZmxvdy5zZXJ2aWNlJztcblxuXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtmbG93UGFuZWxDb250ZW50IHtcbiAgICBuZXRJZGVudGlmaWVyOiBUZXh0RmllbGQ7XG4gICAgdGl0bGU6IFRleHRGaWVsZDtcbiAgICB2ZXJzaW9uOiBUZXh0RmllbGQ7XG4gICAgYXV0aG9yOiBUZXh0RmllbGQ7XG4gICAgdXBsb2FkZWQ6IERhdGVUaW1lRmllbGQ7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmNjLWFic3RyYWN0LXdvcmtmbG93LXBhbmVsJyxcbiAgICB0ZW1wbGF0ZTogJydcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RXb3JrZmxvd1BhbmVsQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RQYW5lbFdpdGhIZWFkZXJCaW5kaW5nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgQElucHV0KCkgcHVibGljIHdvcmtmbG93OiBOZXQ7XG4gICAgQElucHV0KCkgcHVibGljIHNlbGVjdGVkSGVhZGVycyQ6IE9ic2VydmFibGU8QXJyYXk8SGVhZGVyQ29sdW1uPj47XG4gICAgQElucHV0KCkgcmVzcG9uc2l2ZUJvZHkgPSB0cnVlO1xuICAgIEBJbnB1dCgpIHNob3dEZWxldGVNZW51ID0gZmFsc2U7XG4gICAgcHVibGljIHBhbmVsUmVmOiBNYXRFeHBhbnNpb25QYW5lbDtcbiAgICBwdWJsaWMgcGFuZWxDb250ZW50OiBXb3JrZmxvd1BhbmVsQ29udGVudDtcbiAgICBwcml2YXRlIF9zdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IFRSQU5TTEFUSU9OX05FVCA9ICdwYW5lbC53b3JrZmxvdy5uZXQnO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgVFJBTlNMQVRJT05fVElUTEUgPSAncGFuZWwud29ya2Zsb3cudGl0bGUnO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgVFJBTlNMQVRJT05fVkVSU0lPTiA9ICdwYW5lbC53b3JrZmxvdy52ZXJzaW9uJztcbiAgICBwcml2YXRlIHJlYWRvbmx5IFRSQU5TTEFUSU9OX0FVVEhPUiA9ICdwYW5lbC53b3JrZmxvdy5hdXRob3InO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgVFJBTlNMQVRJT05fVVBMT0FEID0gJ3BhbmVsLndvcmtmbG93LnVwbG9hZCc7XG5cbiAgICBwcm90ZWN0ZWQgZGF0YUZpZWxkc0JlaGF2aW91cjogQmVoYXZpb3IgPSB7dmlzaWJsZTogdHJ1ZSwgZWRpdGFibGU6IGZhbHNlfTtcblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX2xvZzogTG9nZ2VyU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfd29ya2Zsb3dTZXJ2aWNlOiBXb3JrZmxvd1ZpZXdTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3BldHJpTmV0UmVzb3VyY2U6IFBldHJpTmV0UmVzb3VyY2VTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBwcm90ZWN0ZWQgX292ZXJmbG93U2VydmljZTogT3ZlcmZsb3dTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKF9vdmVyZmxvd1NlcnZpY2UpO1xuXG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbiA9IF90cmFuc2xhdGUub25MYW5nQ2hhbmdlLnN1YnNjcmliZSgoZXZlbnQ6IFRyYW5zbGF0aW9uQ2hhbmdlRXZlbnQpID0+IHtcbiAgICAgICAgICAgIHRoaXMucGFuZWxDb250ZW50Lm5ldElkZW50aWZpZXIudGl0bGUgPSB0aGlzLl90cmFuc2xhdGUuaW5zdGFudCh0aGlzLlRSQU5TTEFUSU9OX05FVCk7XG4gICAgICAgICAgICB0aGlzLnBhbmVsQ29udGVudC50aXRsZS50aXRsZSA9IHRoaXMuX3RyYW5zbGF0ZS5pbnN0YW50KHRoaXMuVFJBTlNMQVRJT05fVElUTEUpO1xuICAgICAgICAgICAgdGhpcy5wYW5lbENvbnRlbnQudmVyc2lvbi50aXRsZSA9IHRoaXMuX3RyYW5zbGF0ZS5pbnN0YW50KHRoaXMuVFJBTlNMQVRJT05fVkVSU0lPTik7XG4gICAgICAgICAgICB0aGlzLnBhbmVsQ29udGVudC5hdXRob3IudGl0bGUgPSB0aGlzLl90cmFuc2xhdGUuaW5zdGFudCh0aGlzLlRSQU5TTEFUSU9OX0FVVEhPUik7XG4gICAgICAgICAgICB0aGlzLnBhbmVsQ29udGVudC51cGxvYWRlZC50aXRsZSA9IHRoaXMuX3RyYW5zbGF0ZS5pbnN0YW50KHRoaXMuVFJBTlNMQVRJT05fVVBMT0FEKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMucGFuZWxDb250ZW50ID0gdGhpcy5jcmVhdGVQYW5lbENvbnRlbnQoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHNob3coZXZlbnQ6IE1vdXNlRXZlbnQpOiBib29sZWFuIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY29sbGFwc2UoKSB7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFBhbmVsUmVmKHBhbmVsUmVmOiBNYXRFeHBhbnNpb25QYW5lbCkge1xuICAgICAgICB0aGlzLnBhbmVsUmVmID0gcGFuZWxSZWY7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGFuZGxlcyB0aGUgbG9naWMgdGhhdCBzaG91bGQgYmUgZXhlY3V0ZWQgd2hlbiB0aGUgXCJkZWxldGUgd29ya2Zsb3dcIiBidXR0b24gaXMgY2xpY2tlZC5cbiAgICAgKlxuICAgICAqIENhbGxzIHRoZSBhcHByb3ByaWF0ZSBtZXRob2QgaW4gdGhlIHtAbGluayBXb3JrZmxvd1ZpZXdTZXJ2aWNlfS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZGVsZXRlV29ya2Zsb3coKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3dvcmtmbG93U2VydmljZS5kZWxldGVXb3JrZmxvdyh0aGlzLndvcmtmbG93KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIYW5kbGVzIHRoZSBsb2dpYyB0aGF0IHNob3VsZCBiZSBleGVjdXRlZCB3aGVuIHRoZSBcImRvd25sb2FkIHdvcmtmbG93XCIgYnV0dG9uIGlzIGNsaWNrZWQuXG4gICAgICpcbiAgICAgKiBDYWxscyB0aGUgYXBwcm9wcmlhdGUgbWV0aG9kIGluIHRoZSB7QGxpbmsgV29ya2Zsb3dWaWV3U2VydmljZX0uXG4gICAgICovXG4gICAgcHVibGljIGRvd25sb2FkTmV0RmlsZSgpIHtcbiAgICAgICAgdGhpcy5fcGV0cmlOZXRSZXNvdXJjZS5nZXROZXRGaWxlKHRoaXMud29ya2Zsb3cuc3RyaW5nSWQpLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICBpZiAoIShyZXNwb25zZSBhcyBQcm92aWRlclByb2dyZXNzKS50eXBlIHx8IChyZXNwb25zZSBhcyBQcm92aWRlclByb2dyZXNzKS50eXBlICE9PSBQcm9ncmVzc1R5cGUuRE9XTkxPQUQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sb2cuZGVidWcoYEZpbGUgJHt0aGlzLndvcmtmbG93LmlkZW50aWZpZXJ9IHdhcyBzdWNjZXNzZnVsbHkgZG93bmxvYWRlZGApO1xuICAgICAgICAgICAgICAgIHRoaXMuZG93bmxvYWRWaWFBbmNob3IocmVzcG9uc2UgYXMgQmxvYik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIGVycm9yID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2xvZy5lcnJvcihgRG93bmxvYWRpbmcgZmlsZSAke3RoaXMud29ya2Zsb3cuaWRlbnRpZmllcn0gaGFzIGZhaWxlZCFgLCBlcnJvcik7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBkb3dubG9hZFZpYUFuY2hvcihibG9iOiBCbG9iKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSk7XG4gICAgICAgIGEuc2V0QXR0cmlidXRlKCdzdHlsZScsICdkaXNwbGF5OiBub25lJyk7XG4gICAgICAgIGJsb2IgPSBuZXcgQmxvYihbYmxvYl0sIHt0eXBlOiBibG9iLnR5cGV9KTtcblxuICAgICAgICBjb25zdCB1cmwgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICAgICAgYS5ocmVmID0gdXJsO1xuICAgICAgICBhLmRvd25sb2FkID0gdGhpcy53b3JrZmxvdy5pZGVudGlmaWVyO1xuICAgICAgICBhLmNsaWNrKCk7XG4gICAgICAgIHdpbmRvdy5VUkwucmV2b2tlT2JqZWN0VVJMKHVybCk7XG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoYSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUG9wdWxhdGUgZGF0YSBmaWVsZHMgZ3JvdXAgZm9yIGV2ZXJ5IHBldHJpIG5ldCBtb2RlbFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBjcmVhdGVQYW5lbENvbnRlbnQoKTogV29ya2Zsb3dQYW5lbENvbnRlbnQge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmV0SWRlbnRpZmllcjogbmV3IFRleHRGaWVsZCgnJywgdGhpcy5fdHJhbnNsYXRlLmluc3RhbnQodGhpcy5UUkFOU0xBVElPTl9ORVQpLFxuICAgICAgICAgICAgICAgIHRoaXMud29ya2Zsb3cuaWRlbnRpZmllciwgdGhpcy5kYXRhRmllbGRzQmVoYXZpb3VyKSxcbiAgICAgICAgICAgIHRpdGxlOiBuZXcgVGV4dEZpZWxkKCcnLCB0aGlzLl90cmFuc2xhdGUuaW5zdGFudCh0aGlzLlRSQU5TTEFUSU9OX1RJVExFKSxcbiAgICAgICAgICAgICAgICB0aGlzLndvcmtmbG93LnRpdGxlLCB0aGlzLmRhdGFGaWVsZHNCZWhhdmlvdXIpLFxuICAgICAgICAgICAgdmVyc2lvbjogbmV3IFRleHRGaWVsZCgnJywgdGhpcy5fdHJhbnNsYXRlLmluc3RhbnQodGhpcy5UUkFOU0xBVElPTl9WRVJTSU9OKSxcbiAgICAgICAgICAgICAgICB0aGlzLndvcmtmbG93LnZlcnNpb24sIHRoaXMuZGF0YUZpZWxkc0JlaGF2aW91ciksXG4gICAgICAgICAgICBhdXRob3I6IG5ldyBUZXh0RmllbGQoJycsIHRoaXMuX3RyYW5zbGF0ZS5pbnN0YW50KHRoaXMuVFJBTlNMQVRJT05fQVVUSE9SKSxcbiAgICAgICAgICAgICAgICB0aGlzLndvcmtmbG93LmF1dGhvci5mdWxsTmFtZSwgdGhpcy5kYXRhRmllbGRzQmVoYXZpb3VyKSxcbiAgICAgICAgICAgIHVwbG9hZGVkOiBuZXcgRGF0ZVRpbWVGaWVsZCgnJywgdGhpcy5fdHJhbnNsYXRlLmluc3RhbnQodGhpcy5UUkFOU0xBVElPTl9VUExPQUQpLFxuICAgICAgICAgICAgICAgIHRvTW9tZW50KHRoaXMud29ya2Zsb3cuY3JlYXRlZERhdGUpLCB0aGlzLmRhdGFGaWVsZHNCZWhhdmlvdXIpXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlc29sdmVGZWF0dXJlZEZpZWxkc1ZhbHVlcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9sYXN0U2VsZWN0ZWRIZWFkZXJzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmZlYXR1cmVkRmllbGRzVmFsdWVzLnNwbGljZSgwLCB0aGlzLmZlYXR1cmVkRmllbGRzVmFsdWVzLmxlbmd0aCk7XG4gICAgICAgIHRoaXMuX2xhc3RTZWxlY3RlZEhlYWRlcnMuZm9yRWFjaChoZWFkZXIgPT4ge1xuICAgICAgICAgICAgdGhpcy5mZWF0dXJlZEZpZWxkc1ZhbHVlcy5wdXNoKHRoaXMuZ2V0RmVhdHVyZWRWYWx1ZShoZWFkZXIpKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEZlYXR1cmVkTWV0YVZhbHVlKHNlbGVjdGVkSGVhZGVyOiBIZWFkZXJDb2x1bW4pOiBGZWF0dXJlZFZhbHVlIHtcbiAgICAgICAgc3dpdGNoIChzZWxlY3RlZEhlYWRlci5maWVsZElkZW50aWZpZXIpIHtcbiAgICAgICAgICAgIGNhc2UgV29ya2Zsb3dNZXRhRmllbGQuSU5JVElBTFM6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHt2YWx1ZTogdGhpcy53b3JrZmxvdy5pbml0aWFscywgaWNvbjogJycsIHR5cGU6ICdtZXRhJ307XG4gICAgICAgICAgICBjYXNlIFdvcmtmbG93TWV0YUZpZWxkLlRJVExFOlxuICAgICAgICAgICAgICAgIHJldHVybiB7dmFsdWU6IHRoaXMud29ya2Zsb3cudGl0bGUsIGljb246ICcnLCB0eXBlOiAnbWV0YSd9O1xuICAgICAgICAgICAgY2FzZSBXb3JrZmxvd01ldGFGaWVsZC5ORVRfSUQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHt2YWx1ZTogdGhpcy53b3JrZmxvdy5zdHJpbmdJZCwgaWNvbjogJycsIHR5cGU6ICdtZXRhJ307XG4gICAgICAgICAgICBjYXNlIFdvcmtmbG93TWV0YUZpZWxkLlZFUlNJT046XG4gICAgICAgICAgICAgICAgcmV0dXJuIHt2YWx1ZTogdGhpcy53b3JrZmxvdy52ZXJzaW9uLCBpY29uOiAnJywgdHlwZTogJ21ldGEnfTtcbiAgICAgICAgICAgIGNhc2UgV29ya2Zsb3dNZXRhRmllbGQuQVVUSE9SOlxuICAgICAgICAgICAgICAgIHJldHVybiB7dmFsdWU6IHRoaXMud29ya2Zsb3cuYXV0aG9yLmZ1bGxOYW1lLCBpY29uOiAnYWNjb3VudF9jaXJjbGUnLCB0eXBlOiAnbWV0YSd9O1xuICAgICAgICAgICAgY2FzZSBXb3JrZmxvd01ldGFGaWVsZC5DUkVBVElPTl9EQVRFOlxuICAgICAgICAgICAgICAgIHJldHVybiB7dmFsdWU6IHRvTW9tZW50KHRoaXMud29ya2Zsb3cuY3JlYXRlZERhdGUpLmZvcm1hdChEQVRFX1RJTUVfRk9STUFUX1NUUklORyksIGljb246ICdldmVudCcsIHR5cGU6ICdtZXRhJ307XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0RmVhdHVyZWRJbW1lZGlhdGVWYWx1ZShzZWxlY3RlZEhlYWRlcjogSGVhZGVyQ29sdW1uKTogRmVhdHVyZWRWYWx1ZSB7XG4gICAgICAgIHRoaXMuX2xvZy53YXJuKCdJbW1lZGlhdGUgZGF0YSBpbiB3b3JrZmxvdyBwYW5lbCBoZWFkZXJzIGFyZSBjdXJyZW50bHkgbm90IHN1cHBvcnRlZCcpO1xuICAgICAgICByZXR1cm4ge3ZhbHVlOiAnJywgaWNvbjogJycsIHR5cGU6ICcnfTtcbiAgICB9XG5cbn1cbiJdfQ==
@@ -1,7 +1,12 @@
1
- export const publicFactoryResolver = (userService, sessionService, authService, router, publicResolverService, privateService, publicService) => {
1
+ export const publicFactoryResolver = (userService, sessionService, authService, router, publicResolverService, privateService, publicService, redirectService, url) => {
2
2
  if (!sessionService.isInitialized) {
3
3
  publicResolverService.url = router.url;
4
- router.navigate(['/public-resolver']);
4
+ if (url === undefined) {
5
+ router.navigate(['/public-resolver'], { queryParams: redirectService.queryParams });
6
+ }
7
+ else {
8
+ router.navigate([url], { queryParams: redirectService.queryParams });
9
+ }
5
10
  }
6
11
  else if (authService.isAuthenticated && userService.user.id !== '' && userService.user.email !== 'anonymous@netgrif.com') {
7
12
  return privateService;
@@ -10,4 +15,4 @@ export const publicFactoryResolver = (userService, sessionService, authService,
10
15
  return publicService;
11
16
  }
12
17
  };
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWZhY3RvcnktcmVzb2x2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL3B1YmxpYy9mYWN0b3JpZXMvcHVibGljLWZhY3RvcnktcmVzb2x2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxXQUF3QixFQUFFLGNBQThCLEVBQUUsV0FBa0MsRUFDNUYsTUFBYyxFQUFFLHFCQUErQyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsRUFBRTtJQUNwSSxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRTtRQUMvQixxQkFBcUIsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQztRQUN2QyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO0tBQ3pDO1NBQU0sSUFBSSxXQUFXLENBQUMsZUFBZSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyx1QkFBdUIsRUFBRTtRQUN4SCxPQUFPLGNBQWMsQ0FBQztLQUN6QjtTQUFNO1FBQ0gsT0FBTyxhQUFhLENBQUM7S0FDeEI7QUFDTCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7VXNlclNlcnZpY2V9IGZyb20gJy4uLy4uL3VzZXIvc2VydmljZXMvdXNlci5zZXJ2aWNlJztcbmltcG9ydCB7U2Vzc2lvblNlcnZpY2V9IGZyb20gJy4uLy4uL2F1dGhlbnRpY2F0aW9uL3Nlc3Npb24vc2VydmljZXMvc2Vzc2lvbi5zZXJ2aWNlJztcbmltcG9ydCB7QXV0aGVudGljYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9hdXRoZW50aWNhdGlvbi9zZXJ2aWNlcy9hdXRoZW50aWNhdGlvbi9hdXRoZW50aWNhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7UHVibGljVXJsUmVzb2x2ZXJTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlcy9wdWJsaWMtdXJsLXJlc29sdmVyLnNlcnZpY2UnO1xuXG5leHBvcnQgY29uc3QgcHVibGljRmFjdG9yeVJlc29sdmVyID0gKHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSwgc2Vzc2lvblNlcnZpY2U6IFNlc3Npb25TZXJ2aWNlLCBhdXRoU2VydmljZTogQXV0aGVudGljYXRpb25TZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXI6IFJvdXRlciwgcHVibGljUmVzb2x2ZXJTZXJ2aWNlOiBQdWJsaWNVcmxSZXNvbHZlclNlcnZpY2UsIHByaXZhdGVTZXJ2aWNlLCBwdWJsaWNTZXJ2aWNlKSA9PiB7XG4gICAgaWYgKCFzZXNzaW9uU2VydmljZS5pc0luaXRpYWxpemVkKSB7XG4gICAgICAgIHB1YmxpY1Jlc29sdmVyU2VydmljZS51cmwgPSByb3V0ZXIudXJsO1xuICAgICAgICByb3V0ZXIubmF2aWdhdGUoWycvcHVibGljLXJlc29sdmVyJ10pO1xuICAgIH0gZWxzZSBpZiAoYXV0aFNlcnZpY2UuaXNBdXRoZW50aWNhdGVkICYmIHVzZXJTZXJ2aWNlLnVzZXIuaWQgIT09ICcnICYmIHVzZXJTZXJ2aWNlLnVzZXIuZW1haWwgIT09ICdhbm9ueW1vdXNAbmV0Z3JpZi5jb20nKSB7XG4gICAgICAgIHJldHVybiBwcml2YXRlU2VydmljZTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcHVibGljU2VydmljZTtcbiAgICB9XG59O1xuXG4iXX0=
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWZhY3RvcnktcmVzb2x2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL3B1YmxpYy9mYWN0b3JpZXMvcHVibGljLWZhY3RvcnktcmVzb2x2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxXQUF3QixFQUFFLGNBQThCLEVBQUUsV0FBa0MsRUFDNUYsTUFBYyxFQUFFLHFCQUErQyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQzlGLGVBQWdDLEVBQUUsR0FBWSxFQUFFLEVBQUU7SUFDcEYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUU7UUFDL0IscUJBQXFCLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUM7UUFDdkMsSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFO1lBQ25CLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLEVBQUMsV0FBVyxFQUFFLGVBQWUsQ0FBQyxXQUFXLEVBQUMsQ0FBQyxDQUFDO1NBQ3JGO2FBQU07WUFDSCxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBQyxXQUFXLEVBQUUsZUFBZSxDQUFDLFdBQVcsRUFBQyxDQUFDLENBQUM7U0FDdEU7S0FDSjtTQUFNLElBQUksV0FBVyxDQUFDLGVBQWUsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssdUJBQXVCLEVBQUU7UUFDeEgsT0FBTyxjQUFjLENBQUM7S0FDekI7U0FBTTtRQUNILE9BQU8sYUFBYSxDQUFDO0tBQ3hCO0FBQ0wsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1VzZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi91c2VyL3NlcnZpY2VzL3VzZXIuc2VydmljZSc7XG5pbXBvcnQge1Nlc3Npb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9hdXRoZW50aWNhdGlvbi9zZXNzaW9uL3NlcnZpY2VzL3Nlc3Npb24uc2VydmljZSc7XG5pbXBvcnQge0F1dGhlbnRpY2F0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vYXV0aGVudGljYXRpb24vc2VydmljZXMvYXV0aGVudGljYXRpb24vYXV0aGVudGljYXRpb24uc2VydmljZSc7XG5pbXBvcnQge1B1YmxpY1VybFJlc29sdmVyU2VydmljZX0gZnJvbSAnLi4vc2VydmljZXMvcHVibGljLXVybC1yZXNvbHZlci5zZXJ2aWNlJztcbmltcG9ydCB7IFJlZGlyZWN0U2VydmljZSB9IGZyb20gJy4uLy4uL3JvdXRpbmcvcmVkaXJlY3Qtc2VydmljZS9yZWRpcmVjdC5zZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IHB1YmxpY0ZhY3RvcnlSZXNvbHZlciA9ICh1c2VyU2VydmljZTogVXNlclNlcnZpY2UsIHNlc3Npb25TZXJ2aWNlOiBTZXNzaW9uU2VydmljZSwgYXV0aFNlcnZpY2U6IEF1dGhlbnRpY2F0aW9uU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyOiBSb3V0ZXIsIHB1YmxpY1Jlc29sdmVyU2VydmljZTogUHVibGljVXJsUmVzb2x2ZXJTZXJ2aWNlLCBwcml2YXRlU2VydmljZSwgcHVibGljU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVkaXJlY3RTZXJ2aWNlOiBSZWRpcmVjdFNlcnZpY2UsIHVybD86IHN0cmluZykgPT4ge1xuICAgIGlmICghc2Vzc2lvblNlcnZpY2UuaXNJbml0aWFsaXplZCkge1xuICAgICAgICBwdWJsaWNSZXNvbHZlclNlcnZpY2UudXJsID0gcm91dGVyLnVybDtcbiAgICAgICAgaWYgKHVybCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByb3V0ZXIubmF2aWdhdGUoWycvcHVibGljLXJlc29sdmVyJ10sIHtxdWVyeVBhcmFtczogcmVkaXJlY3RTZXJ2aWNlLnF1ZXJ5UGFyYW1zfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByb3V0ZXIubmF2aWdhdGUoW3VybF0sIHtxdWVyeVBhcmFtczogcmVkaXJlY3RTZXJ2aWNlLnF1ZXJ5UGFyYW1zfSk7XG4gICAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGF1dGhTZXJ2aWNlLmlzQXV0aGVudGljYXRlZCAmJiB1c2VyU2VydmljZS51c2VyLmlkICE9PSAnJyAmJiB1c2VyU2VydmljZS51c2VyLmVtYWlsICE9PSAnYW5vbnltb3VzQG5ldGdyaWYuY29tJykge1xuICAgICAgICByZXR1cm4gcHJpdmF0ZVNlcnZpY2U7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHB1YmxpY1NlcnZpY2U7XG4gICAgfVxufTtcblxuIl19
@@ -73,9 +73,17 @@ export class PetriNetResourceService extends AbstractResourceService {
73
73
  *
74
74
  * **Request URL:** {{baseUrl}}/api/petrinet/{netId}/file
75
75
  */
76
- getNetFile(netId, params) {
77
- return this._resourceProvider.get$('petrinet/' + netId + '/file', this.SERVER_URL, params)
78
- .pipe(map(r => this.changeType(r, undefined)));
76
+ getNetFile(netId) {
77
+ return this._resourceProvider.getBlob$('petrinet/' + netId + '/file', this.SERVER_URL).pipe(map(event => {
78
+ switch (event.type) {
79
+ case HttpEventType.DownloadProgress:
80
+ return ResourceProvider.getProgress(event);
81
+ case HttpEventType.Response:
82
+ return event.body;
83
+ default:
84
+ return undefined;
85
+ }
86
+ }), filter(value => !!value));
79
87
  }
80
88
  /**
81
89
  * get One Net
@@ -151,4 +159,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
151
159
  providedIn: 'root'
152
160
  }]
153
161
  }], ctorParameters: function () { return [{ type: i1.ResourceProvider }, { type: i2.ConfigurationService }]; } });
154
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGV0cmktbmV0LXJlc291cmNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL3Jlc291cmNlcy9lbmdpbmUtZW5kcG9pbnQvcGV0cmktbmV0LXJlc291cmNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RCxPQUFPLEVBQTJCLGdCQUFnQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFHeEYsT0FBTyxFQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQU0vRCxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQzs7OztBQU12RixNQUFNLE9BQU8sdUJBQXdCLFNBQVEsdUJBQXVCO0lBRWhFLFlBQVksUUFBMEIsRUFBRSxhQUFtQztRQUN2RSxLQUFLLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLE1BQWU7UUFDekIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQzthQUNsRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLGVBQWUsQ0FB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QUFTLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7O3FIQXZKUSx1QkFBdUI7eUhBQXZCLHVCQUF1QixjQUZwQixNQUFNOzRGQUVULHVCQUF1QjtrQkFIbkMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZmlsdGVyLCBtYXAsIHN3aXRjaE1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtQZXRyaU5ldH0gZnJvbSAnLi4vaW50ZXJmYWNlL3BldHJpLW5ldCc7XG5pbXBvcnQge1BhcmFtcywgUHJvdmlkZXJQcm9ncmVzcywgUmVzb3VyY2VQcm92aWRlcn0gZnJvbSAnLi4vcmVzb3VyY2UtcHJvdmlkZXIuc2VydmljZSc7XG5pbXBvcnQge0NvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9jb25maWd1cmF0aW9uL2NvbmZpZ3VyYXRpb24uc2VydmljZSc7XG5pbXBvcnQgVHJhbnNpdGlvbiBmcm9tICcuLi8uLi9wcm9jZXNzL3RyYW5zaXRpb24nO1xuaW1wb3J0IHtIdHRwRXZlbnRUeXBlLCBIdHRwUGFyYW1zfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgVHJhbnNhY3Rpb24gZnJvbSAnLi4vLi4vcHJvY2Vzcy90cmFuc2FjdGlvbic7XG5pbXBvcnQge0V2ZW50T3V0Y29tZU1lc3NhZ2VSZXNvdXJjZSwgTWVzc2FnZVJlc291cmNlfSBmcm9tICcuLi9pbnRlcmZhY2UvbWVzc2FnZS1yZXNvdXJjZSc7XG5pbXBvcnQge1BldHJpTmV0UmVmZXJlbmNlfSBmcm9tICcuLi9pbnRlcmZhY2UvcGV0cmktbmV0LXJlZmVyZW5jZSc7XG5pbXBvcnQge1BldHJpTmV0UmVxdWVzdEJvZHl9IGZyb20gJy4uL2ludGVyZmFjZS9wZXRyaS1uZXQtcmVxdWVzdC1ib2R5JztcbmltcG9ydCB7UGFnZX0gZnJvbSAnLi4vaW50ZXJmYWNlL3BhZ2UnO1xuaW1wb3J0IHtwcm9jZXNzTWVzc2FnZVJlc3BvbnNlfSBmcm9tICcuLi8uLi91dGlsaXR5L3Byb2Nlc3MtbWVzc2FnZS1yZXNwb25zZSc7XG5pbXBvcnQge0Fic3RyYWN0UmVzb3VyY2VTZXJ2aWNlfSBmcm9tICcuLi9hYnN0cmFjdC1lbmRwb2ludC9hYnN0cmFjdC1yZXNvdXJjZS5zZXJ2aWNlJztcbmltcG9ydCBSb2xlc0FuZFBlcm1pc3Npb25zIGZyb20gJy4uLy4uL3Byb2Nlc3Mvcm9sZXNBbmRQZXJtaXNzaW9ucyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUGV0cmlOZXRSZXNvdXJjZVNlcnZpY2UgZXh0ZW5kcyBBYnN0cmFjdFJlc291cmNlU2VydmljZSB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm92aWRlcjogUmVzb3VyY2VQcm92aWRlciwgY29uZmlnU2VydmljZTogQ29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoJ3BldHJpbmV0JywgcHJvdmlkZXIsIGNvbmZpZ1NlcnZpY2UpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBBbGwgVXNpbmcgUGV0cmkgTmV0XG4gICAgICpcbiAgICAgKiAqKlJlcXVlc3QgVHlwZToqKiBHRVRcbiAgICAgKlxuICAgICAqICoqUmVxdWVzdCBVUkw6Kioge3tiYXNlVXJsfX0vYXBpL3BldHJpbmV0XG4gICAgICovXG4gICAgcHVibGljIGdldEFsbChwYXJhbXM/OiBQYXJhbXMpOiBPYnNlcnZhYmxlPEFycmF5PFBldHJpTmV0UmVmZXJlbmNlPj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2VQcm92aWRlci5nZXQkKCdwZXRyaW5ldCcsIHRoaXMuU0VSVkVSX1VSTCwgcGFyYW1zKVxuICAgICAgICAgICAgLnBpcGUobWFwKHIgPT4gdGhpcy5jaGFuZ2VUeXBlKHIsICdwZXRyaU5ldFJlZmVyZW5jZXMnKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBEYXRhIEZpZWxkIFJlZmVyZW5jZXMgVXNpbmdcbiAgICAgKlxuICAgICAqICoqUmVxdWVzdCBUeXBlOioqIFBPU1RcbiAgICAgKlxuICAgICAqICoqUmVxdWVzdCBVUkw6Kioge3tiYXNlVXJsfX0vYXBpL3BldHJpbmV0L2RhdGFcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0RGF0YVBldHJpTmV0KGJvZHk6IG9iamVjdCk6IE9ic2VydmFibGU8YW55PiB7ICAvLyBUT0RPOiByZXNwb25zZVxuICAgICAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2VQcm92aWRlci5wb3N0JCgncGV0cmluZXQvZGF0YScsIHRoaXMuU0VSVkVSX1VSTCwgYm9keSlcbiAgICAgICAgICAgIC5waXBlKG1hcChyID0+IHRoaXMuY2hhbmdlVHlwZShyLCB1bmRlZmluZWQpKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IFRyYW5zaXRpb24gUmVmZXJlbmNlcyBVc2luZ1xuICAgICAqXG4gICAgICogKipSZXF1ZXN0IFR5cGU6KiogR0VUXG4gICAgICpcbiAgICAgKiAqKlJlcXVlc3QgVVJMOioqIHt7YmFzZVVybH19L2FwaS9wZXRyaW5ldC90cmFuc2l0aW9uc1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXRQZXRyaU5ldFRyYW5zaXRpb25zKG5ldElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEFycmF5PFRyYW5zaXRpb24+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZVByb3ZpZGVyLmdldCQoJy9wZXRyaW5ldC90cmFuc2l0aW9ucycsIHRoaXMuU0VSVkVSX1VSTCwgbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ2lkcycsIG5ldElkKSlcbiAgICAgICAgICAgIC5waXBlKG1hcChyID0+IHRoaXMuY2hhbmdlVHlwZShyLCAndHJhbnNpdGlvblJlZmVyZW5jZXMnKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBUcmFuc2FjdGlvbiBSZWZlcmVuY2VzIFVzaW5nXG4gICAgICpcbiAgICAgKiAqKlJlcXVlc3QgVHlwZToqKiBHRVRcbiAgICAgKlxuICAgICAqICoqUmVxdWVzdCBVUkw6Kioge3tiYXNlVXJsfX0vYXBpL3BldHJpbmV0L3tpZH0vdHJhbnNhY3Rpb25zXG4gICAgICovXG4gICAgcHVibGljIGdldFBldHJpTmV0VHJhbnNhY3Rpb25zKG5ldElkOiBzdHJpbmcsIHBhcmFtcz86IFBhcmFtcyk6IE9ic2VydmFibGU8QXJyYXk8VHJhbnNhY3Rpb24+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZVByb3ZpZGVyLmdldCQoJy9wZXRyaW5ldC8nICsgbmV0SWQgKyAnL3RyYW5zYWN0aW9ucycsIHRoaXMuU0VSVkVSX1VSTCwgcGFyYW1zKVxuICAgICAgICAgICAgLnBpcGUobWFwKHIgPT4gdGhpcy5jaGFuZ2VUeXBlKHIsICd0cmFuc2FjdGlvbnMnKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBSb2xlcyBSZWZlcmVuY2VzIFVzaW5nXG4gICAgICpcbiAgICAgKiAqKlJlcXVlc3QgVHlwZToqKiBHRVRcbiAgICAgKlxuICAgICAqICoqUmVxdWVzdCBVUkw6Kioge3tiYXNlVXJsfX0vYXBpL3BldHJpbmV0L3tpZH0vcm9sZXNcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0UGV0cmlOZXRSb2xlcyhuZXRJZDogc3RyaW5nLCBwYXJhbXM/OiBQYXJhbXMpOiBPYnNlcnZhYmxlPFJvbGVzQW5kUGVybWlzc2lvbnM+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc291cmNlUHJvdmlkZXIuZ2V0JCgnL3BldHJpbmV0LycgKyBuZXRJZCArICcvcm9sZXMnLCB0aGlzLlNFUlZFUl9VUkwsIHBhcmFtcylcbiAgICAgICAgICAgIC5waXBlKG1hcChyID0+IHRoaXMuY2hhbmdlVHlwZShyLCB1bmRlZmluZWQpKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZ2V0IE5ldCBGaWxlXG4gICAgICpcbiAgICAgKiAqKlJlcXVlc3QgVHlwZToqKiBHRVRcbiAgICAgKlxuICAgICAqICoqUmVxdWVzdCBVUkw6Kioge3tiYXNlVXJsfX0vYXBpL3BldHJpbmV0L3tuZXRJZH0vZmlsZVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXROZXRGaWxlKG5ldElkOiBzdHJpbmcsIHBhcmFtcz86IFBhcmFtcyk6IE9ic2VydmFibGU8YW55PiB7ICAvLyBUT0RPOiByZXNwb25zZVxuICAgICAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2VQcm92aWRlci5nZXQkKCdwZXRyaW5ldC8nICsgbmV0SWQgKyAnL2ZpbGUnLCB0aGlzLlNFUlZFUl9VUkwsIHBhcmFtcylcbiAgICAgICAgICAgIC5waXBlKG1hcChyID0+IHRoaXMuY2hhbmdlVHlwZShyLCB1bmRlZmluZWQpKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZ2V0IE9uZSBOZXRcbiAgICAgKlxuICAgICAqICoqUmVxdWVzdCBUeXBlOioqIEdFVFxuICAgICAqXG4gICAgICogKipSZXF1ZXN0IFVSTDoqKiB7e2Jhc2VVcmx9fS9hcGkvcGV0cmluZXQve2lkZW50aWZpZXJ9L3t2ZXJzaW9ufVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRPbmUoaWRlbnRpZmllcjogc3RyaW5nLCB2ZXJzaW9uOiBzdHJpbmcsIHBhcmFtcz86IFBhcmFtcyk6IE9ic2VydmFibGU8UGV0cmlOZXRSZWZlcmVuY2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc291cmNlUHJvdmlkZXIuZ2V0JCgncGV0cmluZXQvJyArIGJ0b2EoaWRlbnRpZmllcikgKyAnLycgKyB2ZXJzaW9uLCB0aGlzLlNFUlZFUl9VUkwsIHBhcmFtcylcbiAgICAgICAgICAgIC5waXBlKG1hcChyID0+IHRoaXMuY2hhbmdlVHlwZShyLCAncGV0cmlOZXRSZWZlcmVuY2VzJykpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBnZXQgT25lIE5ldCBieSBJRFxuICAgICAqXG4gICAgICogKipSZXF1ZXN0IFR5cGU6KiogR0VUXG4gICAgICpcbiAgICAgKiAqKlJlcXVlc3QgVVJMOioqIHt7YmFzZVVybH19L2FwaS9wZXRyaW5ldC97aWR9XG4gICAgICovXG4gICAgcHVibGljIGdldE9uZUJ5SWQobmV0SWQ6IHN0cmluZywgcGFyYW1zPzogUGFyYW1zKTogT2JzZXJ2YWJsZTxQZXRyaU5ldD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2VQcm92aWRlci5nZXQkKCdwZXRyaW5ldC8nICsgbmV0SWQsIHRoaXMuU0VSVkVSX1VSTCwgcGFyYW1zKVxuICAgICAgICAgICAgLnBpcGUobWFwKHIgPT4gdGhpcy5jaGFuZ2VUeXBlKHIsIHVuZGVmaW5lZCkpKTtcbiAgICB9XG5cblxuICAgIC8qKlxuICAgICAqIGltcG9ydCBQZXRyaU5ldFxuICAgICAqXG4gICAgICogKipSZXF1ZXN0IFR5cGU6KiogUE9TVFxuICAgICAqXG4gICAgICogKipSZXF1ZXN0IFVSTDoqKiB7e2Jhc2VVcmx9fS9hcGkvcGV0cmluZXQvaW1wb3J0XG4gICAgICovXG4gICAgcHVibGljIGltcG9ydFBldHJpTmV0KGJvZHk6IEZvcm1EYXRhLCBwYXJhbXM/OiBQYXJhbXMpOiBPYnNlcnZhYmxlPFByb3ZpZGVyUHJvZ3Jlc3MgfCBFdmVudE91dGNvbWVNZXNzYWdlUmVzb3VyY2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc291cmNlUHJvdmlkZXIucG9zdFdpdGhFdmVudCQ8TWVzc2FnZVJlc291cmNlPigncGV0cmluZXQvaW1wb3J0JywgdGhpcy5TRVJWRVJfVVJMLCBib2R5LCBwYXJhbXMpLnBpcGUoXG4gICAgICAgICAgICBtYXAoZXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAoZXZlbnQudHlwZSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIEh0dHBFdmVudFR5cGUuVXBsb2FkUHJvZ3Jlc3M6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gUmVzb3VyY2VQcm92aWRlci5nZXRQcm9ncmVzcyhldmVudCk7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgSHR0cEV2ZW50VHlwZS5SZXNwb25zZTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBSZXNvdXJjZVByb3ZpZGVyLnByb2Nlc3NNZXNzYWdlUmVzb3VyY2UoZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGZpbHRlcih2YWx1ZSA9PiAhIXZhbHVlKVxuICAgICAgICApO1xuICAgIH1cblxuXG4gICAgLyoqXG4gICAgICogc2VhcmNoIFBldHJpTmV0c1xuICAgICAqXG4gICAgICogKipSZXF1ZXN0IFR5cGU6KiogUE9TVFxuICAgICAqXG4gICAgICogKipSZXF1ZXN0IFVSTDoqKiB7e2Jhc2VVcmx9fS9hcGkvcGV0cmluZXQvc2VhcmNoXG4gICAgICovXG4gICAgcHVibGljIHNlYXJjaFBldHJpTmV0cyhib2R5OiBQZXRyaU5ldFJlcXVlc3RCb2R5LCBwYXJhbXM/OiBQYXJhbXMpOiBPYnNlcnZhYmxlPFBhZ2U8UGV0cmlOZXRSZWZlcmVuY2U+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZVByb3ZpZGVyLnBvc3QkKCdwZXRyaW5ldC9zZWFyY2gnLCB0aGlzLlNFUlZFUl9VUkwsIGJvZHksIHBhcmFtcylcbiAgICAgICAgICAgIC5waXBlKG1hcChyID0+IHRoaXMuZ2V0UmVzb3VyY2VQYWdlPFBldHJpTmV0UmVmZXJlbmNlPihyLCAncGV0cmlOZXRSZWZlcmVuY2VzJykpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBkZWxldGUgUGV0cmlOZXRcbiAgICAgKlxuICAgICAqICoqUmVxdWVzdCBUeXBlOioqIERFTEVURVxuICAgICAqXG4gICAgICogKipSZXF1ZXN0IFVSTDoqKiB7e2Jhc2VVcmx9fS9hcGkvcGV0cmluZXQve2lkfVxuICAgICAqXG4gICAgICogQHBhcmFtIG5ldElkIHN0cmluZ0lkIG9mIHRoZSBkZWxldGVkIFBldHJpIE5ldFxuICAgICAqL1xuICAgIHB1YmxpYyBkZWxldGVQZXRyaU5ldChuZXRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxNZXNzYWdlUmVzb3VyY2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc291cmNlUHJvdmlkZXIuZGVsZXRlJDxNZXNzYWdlUmVzb3VyY2U+KCdwZXRyaW5ldC8nICsgbmV0SWQsIHRoaXMuU0VSVkVSX1VSTClcbiAgICAgICAgICAgIC5waXBlKHN3aXRjaE1hcChwcm9jZXNzTWVzc2FnZVJlc3BvbnNlKSk7XG4gICAgfVxufVxuIl19
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGV0cmktbmV0LXJlc291cmNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL3Jlc291cmNlcy9lbmdpbmUtZW5kcG9pbnQvcGV0cmktbmV0LXJlc291cmNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RCxPQUFPLEVBQTJCLGdCQUFnQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFHeEYsT0FBTyxFQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQU0vRCxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQzs7OztBQU12RixNQUFNLE9BQU8sdUJBQXdCLFNBQVEsdUJBQXVCO0lBRWhFLFlBQVksUUFBMEIsRUFBRSxhQUFtQztRQUN2RSxLQUFLLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLE1BQWU7UUFDekIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQzthQUNsRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLGVBQWUsQ0FB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QUFDLGVBQWUsQ0FBb0IsQ0FBQyxFQUFFLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLGNBQWMsQ0FBQyxLQUFhO1FBQy9CLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBa0IsV0FBVyxHQUFHLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDO2FBQ3ZGLElBQUksQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7O3FIQWxLUSx1QkFBdUI7eUhBQXZCLHVCQUF1QixjQUZwQixNQUFNOzRGQUVULHVCQUF1QjtrQkFIbkMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZmlsdGVyLCBtYXAsIHN3aXRjaE1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtQZXRyaU5ldH0gZnJvbSAnLi4vaW50ZXJmYWNlL3BldHJpLW5ldCc7XG5pbXBvcnQge1BhcmFtcywgUHJvdmlkZXJQcm9ncmVzcywgUmVzb3VyY2VQcm92aWRlcn0gZnJvbSAnLi4vcmVzb3VyY2UtcHJvdmlkZXIuc2VydmljZSc7XG5pbXBvcnQge0NvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9jb25maWd1cmF0aW9uL2NvbmZpZ3VyYXRpb24uc2VydmljZSc7XG5pbXBvcnQgVHJhbnNpdGlvbiBmcm9tICcuLi8uLi9wcm9jZXNzL3RyYW5zaXRpb24nO1xuaW1wb3J0IHtIdHRwRXZlbnRUeXBlLCBIdHRwUGFyYW1zfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgVHJhbnNhY3Rpb24gZnJvbSAnLi4vLi4vcHJvY2Vzcy90cmFuc2FjdGlvbic7XG5pbXBvcnQge0V2ZW50T3V0Y29tZU1lc3NhZ2VSZXNvdXJjZSwgTWVzc2FnZVJlc291cmNlfSBmcm9tICcuLi9pbnRlcmZhY2UvbWVzc2FnZS1yZXNvdXJjZSc7XG5pbXBvcnQge1BldHJpTmV0UmVmZXJlbmNlfSBmcm9tICcuLi9pbnRlcmZhY2UvcGV0cmktbmV0LXJlZmVyZW5jZSc7XG5pbXBvcnQge1BldHJpTmV0UmVxdWVzdEJvZHl9IGZyb20gJy4uL2ludGVyZmFjZS9wZXRyaS1uZXQtcmVxdWVzdC1ib2R5JztcbmltcG9ydCB7UGFnZX0gZnJvbSAnLi4vaW50ZXJmYWNlL3BhZ2UnO1xuaW1wb3J0IHtwcm9jZXNzTWVzc2FnZVJlc3BvbnNlfSBmcm9tICcuLi8uLi91dGlsaXR5L3Byb2Nlc3MtbWVzc2FnZS1yZXNwb25zZSc7XG5pbXBvcnQge0Fic3RyYWN0UmVzb3VyY2VTZXJ2aWNlfSBmcm9tICcuLi9hYnN0cmFjdC1lbmRwb2ludC9hYnN0cmFjdC1yZXNvdXJjZS5zZXJ2aWNlJztcbmltcG9ydCBSb2xlc0FuZFBlcm1pc3Npb25zIGZyb20gJy4uLy4uL3Byb2Nlc3Mvcm9sZXNBbmRQZXJtaXNzaW9ucyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUGV0cmlOZXRSZXNvdXJjZVNlcnZpY2UgZXh0ZW5kcyBBYnN0cmFjdFJlc291cmNlU2VydmljZSB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm92aWRlcjogUmVzb3VyY2VQcm92aWRlciwgY29uZmlnU2VydmljZTogQ29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoJ3BldHJpbmV0JywgcHJvdmlkZXIsIGNvbmZpZ1NlcnZpY2UpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBBbGwgVXNpbmcgUGV0cmkgTmV0XG4gICAgICpcbiAgICAgKiAqKlJlcXVlc3QgVHlwZToqKiBHRVRcbiAgICAgKlxuICAgICAqICoqUmVxdWVzdCBVUkw6Kioge3tiYXNlVXJsfX0vYXBpL3BldHJpbmV0XG4gICAgICovXG4gICAgcHVibGljIGdldEFsbChwYXJhbXM/OiBQYXJhbXMpOiBPYnNlcnZhYmxlPEFycmF5PFBldHJpTmV0UmVmZXJlbmNlPj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2VQcm92aWRlci5nZXQkKCdwZXRyaW5ldCcsIHRoaXMuU0VSVkVSX1VSTCwgcGFyYW1zKVxuICAgICAgICAgICAgLnBpcGUobWFwKHIgPT4gdGhpcy5jaGFuZ2VUeXBlKHIsICdwZXRyaU5ldFJlZmVyZW5jZXMnKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBEYXRhIEZpZWxkIFJlZmVyZW5jZXMgVXNpbmdcbiAgICAgKlxuICAgICAqICoqUmVxdWVzdCBUeXBlOioqIFBPU1RcbiAgICAgKlxuICAgICAqICoqUmVxdWVzdCBVUkw6Kioge3tiYXNlVXJsfX0vYXBpL3BldHJpbmV0L2RhdGFcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0RGF0YVBldHJpTmV0KGJvZHk6IG9iamVjdCk6IE9ic2VydmFibGU8YW55PiB7ICAvLyBUT0RPOiByZXNwb25zZVxuICAgICAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2VQcm92aWRlci5wb3N0JCgncGV0cmluZXQvZGF0YScsIHRoaXMuU0VSVkVSX1VSTCwgYm9keSlcbiAgICAgICAgICAgIC5waXBlKG1hcChyID0+IHRoaXMuY2hhbmdlVHlwZShyLCB1bmRlZmluZWQpKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IFRyYW5zaXRpb24gUmVmZXJlbmNlcyBVc2luZ1xuICAgICAqXG4gICAgICogKipSZXF1ZXN0IFR5cGU6KiogR0VUXG4gICAgICpcbiAgICAgKiAqKlJlcXVlc3QgVVJMOioqIHt7YmFzZVVybH19L2FwaS9wZXRyaW5ldC90cmFuc2l0aW9uc1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXRQZXRyaU5ldFRyYW5zaXRpb25zKG5ldElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEFycmF5PFRyYW5zaXRpb24+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZVByb3ZpZGVyLmdldCQoJy9wZXRyaW5ldC90cmFuc2l0aW9ucycsIHRoaXMuU0VSVkVSX1VSTCwgbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ2lkcycsIG5ldElkKSlcbiAgICAgICAgICAgIC5waXBlKG1hcChyID0+IHRoaXMuY2hhbmdlVHlwZShyLCAndHJhbnNpdGlvblJlZmVyZW5jZXMnKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBUcmFuc2FjdGlvbiBSZWZlcmVuY2VzIFVzaW5nXG4gICAgICpcbiAgICAgKiAqKlJlcXVlc3QgVHlwZToqKiBHRVRcbiAgICAgKlxuICAgICAqICoqUmVxdWVzdCBVUkw6Kioge3tiYXNlVXJsfX0vYXBpL3BldHJpbmV0L3tpZH0vdHJhbnNhY3Rpb25zXG4gICAgICovXG4gICAgcHVibGljIGdldFBldHJpTmV0VHJhbnNhY3Rpb25zKG5ldElkOiBzdHJpbmcsIHBhcmFtcz86IFBhcmFtcyk6IE9ic2VydmFibGU8QXJyYXk8VHJhbnNhY3Rpb24+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZVByb3ZpZGVyLmdldCQoJy9wZXRyaW5ldC8nICsgbmV0SWQgKyAnL3RyYW5zYWN0aW9ucycsIHRoaXMuU0VSVkVSX1VSTCwgcGFyYW1zKVxuICAgICAgICAgICAgLnBpcGUobWFwKHIgPT4gdGhpcy5jaGFuZ2VUeXBlKHIsICd0cmFuc2FjdGlvbnMnKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBSb2xlcyBSZWZlcmVuY2VzIFVzaW5nXG4gICAgICpcbiAgICAgKiAqKlJlcXVlc3QgVHlwZToqKiBHRVRcbiAgICAgKlxuICAgICAqICoqUmVxdWVzdCBVUkw6Kioge3tiYXNlVXJsfX0vYXBpL3BldHJpbmV0L3tpZH0vcm9sZXNcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0UGV0cmlOZXRSb2xlcyhuZXRJZDogc3RyaW5nLCBwYXJhbXM/OiBQYXJhbXMpOiBPYnNlcnZhYmxlPFJvbGVzQW5kUGVybWlzc2lvbnM+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc291cmNlUHJvdmlkZXIuZ2V0JCgnL3BldHJpbmV0LycgKyBuZXRJZCArICcvcm9sZXMnLCB0aGlzLlNFUlZFUl9VUkwsIHBhcmFtcylcbiAgICAgICAgICAgIC5waXBlKG1hcChyID0+IHRoaXMuY2hhbmdlVHlwZShyLCB1bmRlZmluZWQpKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZ2V0IE5ldCBGaWxlXG4gICAgICpcbiAgICAgKiAqKlJlcXVlc3QgVHlwZToqKiBHRVRcbiAgICAgKlxuICAgICAqICoqUmVxdWVzdCBVUkw6Kioge3tiYXNlVXJsfX0vYXBpL3BldHJpbmV0L3tuZXRJZH0vZmlsZVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXROZXRGaWxlKG5ldElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFByb3ZpZGVyUHJvZ3Jlc3MgfCBCbG9iPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZVByb3ZpZGVyLmdldEJsb2IkKCdwZXRyaW5ldC8nICsgbmV0SWQgKyAnL2ZpbGUnLCB0aGlzLlNFUlZFUl9VUkwpLnBpcGUoXG4gICAgICAgICAgICBtYXAoZXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAoZXZlbnQudHlwZSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIEh0dHBFdmVudFR5cGUuRG93bmxvYWRQcm9ncmVzczpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBSZXNvdXJjZVByb3ZpZGVyLmdldFByb2dyZXNzKGV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBIdHRwRXZlbnRUeXBlLlJlc3BvbnNlOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV2ZW50LmJvZHk7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgZmlsdGVyKHZhbHVlID0+ICEhdmFsdWUpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZ2V0IE9uZSBOZXRcbiAgICAgKlxuICAgICAqICoqUmVxdWVzdCBUeXBlOioqIEdFVFxuICAgICAqXG4gICAgICogKipSZXF1ZXN0IFVSTDoqKiB7e2Jhc2VVcmx9fS9hcGkvcGV0cmluZXQve2lkZW50aWZpZXJ9L3t2ZXJzaW9ufVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRPbmUoaWRlbnRpZmllcjogc3RyaW5nLCB2ZXJzaW9uOiBzdHJpbmcsIHBhcmFtcz86IFBhcmFtcyk6IE9ic2VydmFibGU8UGV0cmlOZXRSZWZlcmVuY2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc291cmNlUHJvdmlkZXIuZ2V0JCgncGV0cmluZXQvJyArIGJ0b2EoaWRlbnRpZmllcikgKyAnLycgKyB2ZXJzaW9uLCB0aGlzLlNFUlZFUl9VUkwsIHBhcmFtcylcbiAgICAgICAgICAgIC5waXBlKG1hcChyID0+IHRoaXMuY2hhbmdlVHlwZShyLCAncGV0cmlOZXRSZWZlcmVuY2VzJykpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBnZXQgT25lIE5ldCBieSBJRFxuICAgICAqXG4gICAgICogKipSZXF1ZXN0IFR5cGU6KiogR0VUXG4gICAgICpcbiAgICAgKiAqKlJlcXVlc3QgVVJMOioqIHt7YmFzZVVybH19L2FwaS9wZXRyaW5ldC97aWR9XG4gICAgICovXG4gICAgcHVibGljIGdldE9uZUJ5SWQobmV0SWQ6IHN0cmluZywgcGFyYW1zPzogUGFyYW1zKTogT2JzZXJ2YWJsZTxQZXRyaU5ldD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2VQcm92aWRlci5nZXQkKCdwZXRyaW5ldC8nICsgbmV0SWQsIHRoaXMuU0VSVkVSX1VSTCwgcGFyYW1zKVxuICAgICAgICAgICAgLnBpcGUobWFwKHIgPT4gdGhpcy5jaGFuZ2VUeXBlKHIsIHVuZGVmaW5lZCkpKTtcbiAgICB9XG5cblxuICAgIC8qKlxuICAgICAqIGltcG9ydCBQZXRyaU5ldFxuICAgICAqXG4gICAgICogKipSZXF1ZXN0IFR5cGU6KiogUE9TVFxuICAgICAqXG4gICAgICogKipSZXF1ZXN0IFVSTDoqKiB7e2Jhc2VVcmx9fS9hcGkvcGV0cmluZXQvaW1wb3J0XG4gICAgICovXG4gICAgcHVibGljIGltcG9ydFBldHJpTmV0KGJvZHk6IEZvcm1EYXRhLCBwYXJhbXM/OiBQYXJhbXMpOiBPYnNlcnZhYmxlPFByb3ZpZGVyUHJvZ3Jlc3MgfCBFdmVudE91dGNvbWVNZXNzYWdlUmVzb3VyY2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc291cmNlUHJvdmlkZXIucG9zdFdpdGhFdmVudCQ8TWVzc2FnZVJlc291cmNlPigncGV0cmluZXQvaW1wb3J0JywgdGhpcy5TRVJWRVJfVVJMLCBib2R5LCBwYXJhbXMpLnBpcGUoXG4gICAgICAgICAgICBtYXAoZXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAoZXZlbnQudHlwZSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIEh0dHBFdmVudFR5cGUuVXBsb2FkUHJvZ3Jlc3M6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gUmVzb3VyY2VQcm92aWRlci5nZXRQcm9ncmVzcyhldmVudCk7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgSHR0cEV2ZW50VHlwZS5SZXNwb25zZTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBSZXNvdXJjZVByb3ZpZGVyLnByb2Nlc3NNZXNzYWdlUmVzb3VyY2UoZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGZpbHRlcih2YWx1ZSA9PiAhIXZhbHVlKVxuICAgICAgICApO1xuICAgIH1cblxuXG4gICAgLyoqXG4gICAgICogc2VhcmNoIFBldHJpTmV0c1xuICAgICAqXG4gICAgICogKipSZXF1ZXN0IFR5cGU6KiogUE9TVFxuICAgICAqXG4gICAgICogKipSZXF1ZXN0IFVSTDoqKiB7e2Jhc2VVcmx9fS9hcGkvcGV0cmluZXQvc2VhcmNoXG4gICAgICovXG4gICAgcHVibGljIHNlYXJjaFBldHJpTmV0cyhib2R5OiBQZXRyaU5ldFJlcXVlc3RCb2R5LCBwYXJhbXM/OiBQYXJhbXMpOiBPYnNlcnZhYmxlPFBhZ2U8UGV0cmlOZXRSZWZlcmVuY2U+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZVByb3ZpZGVyLnBvc3QkKCdwZXRyaW5ldC9zZWFyY2gnLCB0aGlzLlNFUlZFUl9VUkwsIGJvZHksIHBhcmFtcylcbiAgICAgICAgICAgIC5waXBlKG1hcChyID0+IHRoaXMuZ2V0UmVzb3VyY2VQYWdlPFBldHJpTmV0UmVmZXJlbmNlPihyLCAncGV0cmlOZXRSZWZlcmVuY2VzJykpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBkZWxldGUgUGV0cmlOZXRcbiAgICAgKlxuICAgICAqICoqUmVxdWVzdCBUeXBlOioqIERFTEVURVxuICAgICAqXG4gICAgICogKipSZXF1ZXN0IFVSTDoqKiB7e2Jhc2VVcmx9fS9hcGkvcGV0cmluZXQve2lkfVxuICAgICAqXG4gICAgICogQHBhcmFtIG5ldElkIHN0cmluZ0lkIG9mIHRoZSBkZWxldGVkIFBldHJpIE5ldFxuICAgICAqL1xuICAgIHB1YmxpYyBkZWxldGVQZXRyaU5ldChuZXRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxNZXNzYWdlUmVzb3VyY2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc291cmNlUHJvdmlkZXIuZGVsZXRlJDxNZXNzYWdlUmVzb3VyY2U+KCdwZXRyaW5ldC8nICsgbmV0SWQsIHRoaXMuU0VSVkVSX1VSTClcbiAgICAgICAgICAgIC5waXBlKHN3aXRjaE1hcChwcm9jZXNzTWVzc2FnZVJlc3BvbnNlKSk7XG4gICAgfVxufVxuIl19
@@ -67,45 +67,6 @@ export class PublicTaskResourceService extends TaskResourceService {
67
67
  return this._provider.get$('public/task/' + taskId + '/data', this.SERVER_URL)
68
68
  .pipe(map(r => this.changeType(r, 'dataGroups')));
69
69
  }
70
- /**
71
- * Get all task data
72
- *
73
- * GET
74
- *
75
- * If you want to process the raw backend response use [rawGetData]{@link TaskResourceService#rawGetData} instead.
76
- *
77
- * @param taskId ID of the task who's data should be retrieved from the server
78
- * @returns processed data groups of the given task. If the task has no data an empty array will be returned.
79
- */
80
- getData(taskId) {
81
- return this.rawGetData(taskId).pipe(map((responseOutcome) => {
82
- const dataGroupsArray = this.changeType(responseOutcome.outcome.data, 'dataGroups');
83
- if (!Array.isArray(dataGroupsArray)) {
84
- return [];
85
- }
86
- const result = [];
87
- dataGroupsArray.forEach(dataGroupResource => {
88
- const dataFields = [];
89
- if (!dataGroupResource.fields._embedded) {
90
- return; // continue
91
- }
92
- const fields = [];
93
- Object.keys(dataGroupResource.fields._embedded).forEach(localizedFields => {
94
- fields.push(...dataGroupResource.fields._embedded[localizedFields]);
95
- });
96
- fields.sort((a, b) => a.order - b.order);
97
- dataFields.push(...fields.map(dataFieldResource => this._fieldConverter.toClass(dataFieldResource)));
98
- result.push({
99
- fields: dataFields,
100
- stretch: dataGroupResource.stretch,
101
- title: dataGroupResource.title,
102
- layout: dataGroupResource.layout,
103
- alignment: dataGroupResource.alignment
104
- });
105
- });
106
- return result;
107
- }));
108
- }
109
70
  /**
110
71
  * Set task data
111
72
  * POST
@@ -208,4 +169,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
208
169
  providedIn: 'root'
209
170
  }]
210
171
  }], ctorParameters: function () { return [{ type: i1.ResourceProvider }, { type: i2.ConfigurationService }, { type: i3.FieldConverterService }, { type: i4.LoggerService }]; } });
211
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLXRhc2stcmVzb3VyY2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvcmVzb3VyY2VzL2VuZ2luZS1lbmRwb2ludC9wdWJsaWMvcHVibGljLXRhc2stcmVzb3VyY2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBRzdELE9BQU8sRUFBMkIsZ0JBQWdCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUczRixPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQVM5RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7Ozs7OztBQU9uRCxNQUFNLE9BQU8seUJBQTBCLFNBQVEsbUJBQW1CO0lBRTlELFlBQXNCLFNBQTJCLEVBQzNCLGNBQW9DLEVBQ3BDLGVBQXNDLEVBQ3RDLE9BQXNCO1FBQ3hDLEtBQUssQ0FBQyxTQUFTLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUp6QyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixtQkFBYyxHQUFkLGNBQWMsQ0FBc0I7UUFDcEMsb0JBQWUsR0FBZixlQUFlLENBQXVCO1FBQ3RDLFlBQU8sR0FBUCxPQUFPLENBQWU7SUFFNUMsQ0FBQztJQUVEOzs7T0FHRztJQUNILHlDQUF5QztJQUNsQyxVQUFVLENBQUMsTUFBYztRQUM1QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDO2FBQ3RFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVEOzs7T0FHRztJQUNILHlDQUF5QztJQUNsQyxVQUFVLENBQUMsTUFBYztRQUM1QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDO2FBQ3RFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVEOzs7T0FHRztJQUNILHlDQUF5QztJQUNsQyxVQUFVLENBQUMsTUFBYztRQUM1QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDO2FBQ3RFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVEOzs7T0FHRztJQUNILHVDQUF1QztJQUNoQyxpQkFBaUIsQ0FBQyxNQUFjO1FBQ25DLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUM7YUFDcEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCx1Q0FBdUM7SUFDaEMsVUFBVSxDQUFDLE1BQWM7UUFDNUIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxHQUFHLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDO2FBQ3pFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNJLE9BQU8sQ0FBQyxNQUFjO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQy9CLEdBQUcsQ0FBQyxDQUFDLGVBQTRDLEVBQUUsRUFBRTtZQUNqRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFFLGVBQWUsQ0FBQyxPQUFxQyxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQztZQUNuSCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsRUFBRTtnQkFDakMsT0FBTyxFQUFFLENBQUM7YUFDYjtZQUNELE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztZQUNsQixlQUFlLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEVBQUU7Z0JBQ3hDLE1BQU0sVUFBVSxHQUEwQixFQUFFLENBQUM7Z0JBQzdDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFO29CQUNyQyxPQUFPLENBQUMsV0FBVztpQkFDdEI7Z0JBQ0QsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO2dCQUNsQixNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLEVBQUU7b0JBQ3RFLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hFLENBQUMsQ0FBQyxDQUFDO2dCQUNILE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDekMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNyRyxNQUFNLENBQUMsSUFBSSxDQUFDO29CQUNSLE1BQU0sRUFBRSxVQUFVO29CQUNsQixPQUFPLEVBQUUsaUJBQWlCLENBQUMsT0FBTztvQkFDbEMsS0FBSyxFQUFFLGlCQUFpQixDQUFDLEtBQUs7b0JBQzlCLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxNQUFNO29CQUNoQyxTQUFTLEVBQUUsaUJBQWlCLENBQUMsU0FBUztpQkFDekMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLE1BQU0sQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQztJQUVEOzs7T0FHRztJQUNILHVDQUF1QztJQUNoQyxPQUFPLENBQUMsTUFBYyxFQUFFLElBQTRCO1FBQ3ZELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsY0FBYyxHQUFHLE1BQU0sR0FBRyxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUM7YUFDaEYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILHFDQUFxQztJQUM5QixRQUFRLENBQUMsV0FBbUIsRUFBRSxNQUFlO1FBQ2hELElBQUksV0FBVyxDQUFDLElBQUksS0FBSyxVQUFVLENBQUMsSUFBSSxFQUFFO1lBQ3RDLE1BQU0sSUFBSSxLQUFLLENBQUMseUNBQXlDLENBQUMsQ0FBQztTQUM5RDtRQUVELElBQUksV0FBVyxDQUFDLGlCQUFpQixFQUFFLEVBQUU7WUFDakMsTUFBTSxJQUFJLEtBQUssQ0FBQyx1RkFBdUYsQ0FBQyxDQUFDO1NBQzVHO1FBRUQsTUFBTSxHQUFHLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNoRixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sQ0FBQzthQUNuRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBTyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRDs7O09BR0c7SUFDSCxnRUFBZ0U7SUFDaEUscUVBQXFFO0lBQzlELFlBQVksQ0FBQyxNQUFjLEVBQUUsT0FBZSxFQUFFLElBQWE7UUFDOUQsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsZUFBZSxNQUFNLFNBQVMsT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxlQUFlLE1BQU0sU0FBUyxPQUFPLEVBQUUsQ0FBQztRQUMvRyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQzdELEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNSLFFBQVEsS0FBSyxDQUFDLElBQUksRUFBRTtnQkFDaEIsS0FBSyxhQUFhLENBQUMsZ0JBQWdCO29CQUMvQixPQUFPLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDL0MsS0FBSyxhQUFhLENBQUMsUUFBUTtvQkFDdkIsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDO2dCQUN0QjtvQkFDSSxPQUFPLFNBQVMsQ0FBQzthQUN4QjtRQUNMLENBQUMsQ0FBQyxFQUNGLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FDM0IsQ0FBQztJQUNOLENBQUM7SUFFRDs7O09BR0c7SUFDSCw0REFBNEQ7SUFDNUQsaUVBQWlFO0lBQzFELFVBQVUsQ0FBQyxNQUFjLEVBQUUsT0FBZSxFQUFFLElBQVksRUFBRSxhQUFzQjtRQUVuRixNQUFNLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsZUFBZSxNQUFNLFNBQVMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsTUFBTSxVQUFVLE9BQU8sRUFBRSxDQUFDO1FBQ2hILE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBOEIsR0FBRyxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUN0RyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDUixRQUFRLEtBQUssQ0FBQyxJQUFJLEVBQUU7Z0JBQ2hCLEtBQUssYUFBYSxDQUFDLGNBQWM7b0JBQzdCLE9BQU8sZ0JBQWdCLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMvQyxLQUFLLGFBQWEsQ0FBQyxRQUFRO29CQUN2QixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUM7Z0JBQ3RCO29CQUNJLE9BQU8sU0FBUyxDQUFDO2FBQ3hCO1FBQ0wsQ0FBQyxDQUFDLEVBQ0YsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUMzQixDQUFDO0lBQ04sQ0FBQztJQUVEOzs7T0FHRztJQUNJLFVBQVUsQ0FBQyxNQUFjLEVBQUUsT0FBZSxFQUFFLElBQWE7UUFDNUQsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsZUFBZSxNQUFNLFNBQVMsT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxlQUFlLE1BQU0sU0FBUyxPQUFPLEVBQUUsQ0FBQztRQUMvRyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQzVELEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQzFDLENBQUM7SUFDTixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsK0NBQStDO0lBQ3hDLG1CQUFtQixDQUFDLE1BQWMsRUFBRSxPQUFlO1FBQ3RELE1BQU0sR0FBRyxHQUFHLGNBQWMsR0FBRyxNQUFNLEdBQUcsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDO1FBQ2pFLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FDN0QsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ1IsUUFBUSxLQUFLLENBQUMsSUFBSSxFQUFFO2dCQUNoQixLQUFLLGFBQWEsQ0FBQyxnQkFBZ0I7b0JBQy9CLE9BQU8sZ0JBQWdCLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMvQyxLQUFLLGFBQWEsQ0FBQyxRQUFRO29CQUN2QixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUM7Z0JBQ3RCO29CQUNJLE9BQU8sU0FBUyxDQUFDO2FBQ3hCO1FBQ0wsQ0FBQyxDQUFDLEVBQ0YsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUMzQixDQUFDO0lBQ04sQ0FBQzs7dUhBek5RLHlCQUF5QjsySEFBekIseUJBQXlCLGNBRnRCLE1BQU07NEZBRVQseUJBQXlCO2tCQUhyQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1Rhc2tSZXNvdXJjZVNlcnZpY2V9IGZyb20gJy4uL3Rhc2stcmVzb3VyY2Uuc2VydmljZSc7XG5pbXBvcnQge0ZpZWxkQ29udmVydGVyU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vdGFzay1jb250ZW50L3NlcnZpY2VzL2ZpZWxkLWNvbnZlcnRlci5zZXJ2aWNlJztcbmltcG9ydCB7Q29uZmlndXJhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2NvbmZpZ3VyYXRpb24vY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7UGFyYW1zLCBQcm92aWRlclByb2dyZXNzLCBSZXNvdXJjZVByb3ZpZGVyfSBmcm9tICcuLi8uLi9yZXNvdXJjZS1wcm92aWRlci5zZXJ2aWNlJztcbmltcG9ydCB7TG9nZ2VyU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vbG9nZ2VyL3NlcnZpY2VzL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2ZpbHRlciwgbWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0ZpbHRlclR5cGV9IGZyb20gJy4uLy4uLy4uL2ZpbHRlci9tb2RlbHMvZmlsdGVyLXR5cGUnO1xuaW1wb3J0IHtGaWx0ZXJ9IGZyb20gJy4uLy4uLy4uL2ZpbHRlci9tb2RlbHMvZmlsdGVyJztcbmltcG9ydCB7UGFnZX0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlL3BhZ2UnO1xuaW1wb3J0IHtDaGFuZ2VkRmllbGRDb250YWluZXJ9IGZyb20gJy4uLy4uL2ludGVyZmFjZS9jaGFuZ2VkLWZpZWxkLWNvbnRhaW5lcic7XG5pbXBvcnQge1Rhc2tTZXREYXRhUmVxdWVzdEJvZHl9IGZyb20gJy4uLy4uL2ludGVyZmFjZS90YXNrLXNldC1kYXRhLXJlcXVlc3QtYm9keSc7XG5pbXBvcnQge1Rhc2tSZWZlcmVuY2V9IGZyb20gJy4uLy4uL2ludGVyZmFjZS90YXNrLXJlZmVyZW5jZSc7XG5pbXBvcnQge0RhdGFHcm91cH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlL2RhdGEtZ3JvdXBzJztcbmltcG9ydCB7RGF0YUZpZWxkfSBmcm9tICcuLi8uLi8uLi9kYXRhLWZpZWxkcy9tb2RlbHMvYWJzdHJhY3QtZGF0YS1maWVsZCc7XG5pbXBvcnQge1Rhc2t9IGZyb20gJy4uLy4uL2ludGVyZmFjZS90YXNrJztcbmltcG9ydCB7SHR0cEV2ZW50VHlwZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtFdmVudE91dGNvbWVNZXNzYWdlUmVzb3VyY2UsIE1lc3NhZ2VSZXNvdXJjZX0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlL21lc3NhZ2UtcmVzb3VyY2UnO1xuaW1wb3J0IHtHZXREYXRhR3JvdXBzRXZlbnRPdXRjb21lfSBmcm9tICcuLi8uLi8uLi9ldmVudC9tb2RlbC9ldmVudC1vdXRjb21lcy9kYXRhLW91dGNvbWVzL2dldC1kYXRhLWdyb3Vwcy1ldmVudC1vdXRjb21lJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBQdWJsaWNUYXNrUmVzb3VyY2VTZXJ2aWNlIGV4dGVuZHMgVGFza1Jlc291cmNlU2VydmljZSB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX3Byb3ZpZGVyOiBSZXNvdXJjZVByb3ZpZGVyLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfY29uZmlnU2VydmljZTogQ29uZmlndXJhdGlvblNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9maWVsZENvbnZlcnRlcjogRmllbGRDb252ZXJ0ZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKF9wcm92aWRlciwgX2NvbmZpZ1NlcnZpY2UsIF9maWVsZENvbnZlcnRlciwgX2xvZ2dlcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQXNzaWduIHRhc2tcbiAgICAgKiBHRVRcbiAgICAgKi9cbiAgICAvLyB7e2Jhc2VVcmx9fS9hcGkvcHVibGljL3Rhc2svYXNzaWduLzppZFxuICAgIHB1YmxpYyBhc3NpZ25UYXNrKHRhc2tJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxFdmVudE91dGNvbWVNZXNzYWdlUmVzb3VyY2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Byb3ZpZGVyLmdldCQoJ3B1YmxpYy90YXNrL2Fzc2lnbi8nICsgdGFza0lkLCB0aGlzLlNFUlZFUl9VUkwpXG4gICAgICAgICAgICAucGlwZShtYXAociA9PiB0aGlzLmNoYW5nZVR5cGUociwgdW5kZWZpbmVkKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbmNlbCB0YXNrXG4gICAgICogR0VUXG4gICAgICovXG4gICAgLy8ge3tiYXNlVXJsfX0vYXBpL3B1YmxpYy90YXNrL2NhbmNlbC86aWRcbiAgICBwdWJsaWMgY2FuY2VsVGFzayh0YXNrSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8RXZlbnRPdXRjb21lTWVzc2FnZVJlc291cmNlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wcm92aWRlci5nZXQkKCdwdWJsaWMvdGFzay9jYW5jZWwvJyArIHRhc2tJZCwgdGhpcy5TRVJWRVJfVVJMKVxuICAgICAgICAgICAgLnBpcGUobWFwKHIgPT4gdGhpcy5jaGFuZ2VUeXBlKHIsIHVuZGVmaW5lZCkpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGaW5pc2ggdGFza1xuICAgICAqIEdFVFxuICAgICAqL1xuICAgIC8vIHt7YmFzZVVybH19L2FwaS9wdWJsaWMvdGFzay9maW5pc2gvOmlkXG4gICAgcHVibGljIGZpbmlzaFRhc2sodGFza0lkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEV2ZW50T3V0Y29tZU1lc3NhZ2VSZXNvdXJjZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcHJvdmlkZXIuZ2V0JCgncHVibGljL3Rhc2svZmluaXNoLycgKyB0YXNrSWQsIHRoaXMuU0VSVkVSX1VSTClcbiAgICAgICAgICAgIC5waXBlKG1hcChyID0+IHRoaXMuY2hhbmdlVHlwZShyLCB1bmRlZmluZWQpKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IHRhc2tzIG9mIHRoZSBjYXNlXG4gICAgICogR0VUXG4gICAgICovXG4gICAgLy8ge3tiYXNlVXJsfX0vYXBpL3B1YmxpYy90YXNrL2Nhc2UvOmlkXG4gICAgcHVibGljIGdldEFsbFRhc2tzQnlDYXNlKGNhc2VJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxBcnJheTxUYXNrUmVmZXJlbmNlPj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcHJvdmlkZXIuZ2V0JCgncHVibGljL3Rhc2svY2FzZS8nICsgY2FzZUlkLCB0aGlzLlNFUlZFUl9VUkwpXG4gICAgICAgICAgICAucGlwZShtYXAociA9PiB0aGlzLmNoYW5nZVR5cGUociwgdW5kZWZpbmVkKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBhbGwgdGFzayBkYXRhXG4gICAgICpcbiAgICAgKiBHRVRcbiAgICAgKlxuICAgICAqIElmIHlvdSBkb24ndCB3YW50IHRvIHBhcnNlIHRoZSByZXNwb25zZSB5b3Vyc2VsZiB1c2UgW2dldERhdGFde0BsaW5rIFRhc2tSZXNvdXJjZVNlcnZpY2UjZ2V0RGF0YX0gaW5zdGVhZC5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHRoZSByYXcgYmFja2VuZCByZXNwb25zZSB3aXRob3V0IGFueSBhZGRpdGlvbmFsIHByb2Nlc3NpbmdcbiAgICAgKi9cbiAgICAvLyB7e2Jhc2VVcmx9fS9hcGkvcHVibGljL3Rhc2svOmlkL2RhdGFcbiAgICBwdWJsaWMgcmF3R2V0RGF0YSh0YXNrSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8RXZlbnRPdXRjb21lTWVzc2FnZVJlc291cmNlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wcm92aWRlci5nZXQkKCdwdWJsaWMvdGFzay8nICsgdGFza0lkICsgJy9kYXRhJywgdGhpcy5TRVJWRVJfVVJMKVxuICAgICAgICAgICAgLnBpcGUobWFwKHIgPT4gdGhpcy5jaGFuZ2VUeXBlKHIsICdkYXRhR3JvdXBzJykpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAgR2V0IGFsbCB0YXNrIGRhdGFcbiAgICAgKlxuICAgICAqICBHRVRcbiAgICAgKlxuICAgICAqICBJZiB5b3Ugd2FudCB0byBwcm9jZXNzIHRoZSByYXcgYmFja2VuZCByZXNwb25zZSB1c2UgW3Jhd0dldERhdGFde0BsaW5rIFRhc2tSZXNvdXJjZVNlcnZpY2UjcmF3R2V0RGF0YX0gaW5zdGVhZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0YXNrSWQgSUQgb2YgdGhlIHRhc2sgd2hvJ3MgZGF0YSBzaG91bGQgYmUgcmV0cmlldmVkIGZyb20gdGhlIHNlcnZlclxuICAgICAqIEByZXR1cm5zIHByb2Nlc3NlZCBkYXRhIGdyb3VwcyBvZiB0aGUgZ2l2ZW4gdGFzay4gSWYgdGhlIHRhc2sgaGFzIG5vIGRhdGEgYW4gZW1wdHkgYXJyYXkgd2lsbCBiZSByZXR1cm5lZC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0RGF0YSh0YXNrSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8QXJyYXk8RGF0YUdyb3VwPj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5yYXdHZXREYXRhKHRhc2tJZCkucGlwZShcbiAgICAgICAgICAgIG1hcCgocmVzcG9uc2VPdXRjb21lOiBFdmVudE91dGNvbWVNZXNzYWdlUmVzb3VyY2UpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhR3JvdXBzQXJyYXkgPSB0aGlzLmNoYW5nZVR5cGUoKHJlc3BvbnNlT3V0Y29tZS5vdXRjb21lIGFzIEdldERhdGFHcm91cHNFdmVudE91dGNvbWUpLmRhdGEsICdkYXRhR3JvdXBzJyk7XG4gICAgICAgICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGRhdGFHcm91cHNBcnJheSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBbXTtcbiAgICAgICAgICAgICAgICBkYXRhR3JvdXBzQXJyYXkuZm9yRWFjaChkYXRhR3JvdXBSZXNvdXJjZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGFGaWVsZHM6IEFycmF5PERhdGFGaWVsZDxhbnk+PiA9IFtdO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWRhdGFHcm91cFJlc291cmNlLmZpZWxkcy5fZW1iZWRkZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsgLy8gY29udGludWVcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWVsZHMgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmtleXMoZGF0YUdyb3VwUmVzb3VyY2UuZmllbGRzLl9lbWJlZGRlZCkuZm9yRWFjaChsb2NhbGl6ZWRGaWVsZHMgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRzLnB1c2goLi4uZGF0YUdyb3VwUmVzb3VyY2UuZmllbGRzLl9lbWJlZGRlZFtsb2NhbGl6ZWRGaWVsZHNdKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkcy5zb3J0KChhLCBiKSA9PiBhLm9yZGVyIC0gYi5vcmRlcik7XG4gICAgICAgICAgICAgICAgICAgIGRhdGFGaWVsZHMucHVzaCguLi5maWVsZHMubWFwKGRhdGFGaWVsZFJlc291cmNlID0+IHRoaXMuX2ZpZWxkQ29udmVydGVyLnRvQ2xhc3MoZGF0YUZpZWxkUmVzb3VyY2UpKSk7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkczogZGF0YUZpZWxkcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmV0Y2g6IGRhdGFHcm91cFJlc291cmNlLnN0cmV0Y2gsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogZGF0YUdyb3VwUmVzb3VyY2UudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQ6IGRhdGFHcm91cFJlc291cmNlLmxheW91dCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWdubWVudDogZGF0YUdyb3VwUmVzb3VyY2UuYWxpZ25tZW50XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCB0YXNrIGRhdGFcbiAgICAgKiBQT1NUXG4gICAgICovXG4gICAgLy8ge3tiYXNlVXJsfX0vYXBpL3B1YmxpYy90YXNrLzppZC9kYXRhXG4gICAgcHVibGljIHNldERhdGEodGFza0lkOiBzdHJpbmcsIGJvZHk6IFRhc2tTZXREYXRhUmVxdWVzdEJvZHkpOiBPYnNlcnZhYmxlPEV2ZW50T3V0Y29tZU1lc3NhZ2VSZXNvdXJjZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcHJvdmlkZXIucG9zdCQoJ3B1YmxpYy90YXNrLycgKyB0YXNrSWQgKyAnL2RhdGEnLCB0aGlzLlNFUlZFUl9VUkwsIGJvZHkpXG4gICAgICAgICAgICAucGlwZShtYXAociA9PiB0aGlzLmNoYW5nZVR5cGUociwgdW5kZWZpbmVkKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNlYXJjaGVzIHRhc2tzIHRyb3VnaCB0aGUgTW9uZ28gZW5kcG9pbnQuXG4gICAgICogUE9TVFxuICAgICAqIEBwYXJhbSBmaWx0ZXJQYXJhbSBmaWx0ZXIgdXNlZCB0byBzZWFyY2ggdGhlIHRhc2tzLiBNdXN0IGJlIG9mIHR5cGUgYFRBU0tgLlxuICAgICAqIE5vdGUgdGhhdCB0aGUgYHF1ZXJ5YCBhdHRyaWJ1dGUgb2YgdGhlIGZpbHRlciBjYW5ub3QgYmUgdXNlZCB3aXRoIHRoaXMgZW5kcG9pbnQuXG4gICAgICogQXR0ZW1wdGluZyB0byB1c2UgaXQgd2lsbCBkaXNwbGF5IGEgd2FybmluZyBhbmQgcmVtb3ZlIHRoZSBhdHRyaWJ1dGUgZnJvbSB0aGUgcmVxdWVzdC5cbiAgICAgKiBAcGFyYW0gcGFyYW1zIEFkZGl0aW9uYWwgcmVxdWVzdCBwYXJhbWV0ZXJzXG4gICAgICovXG4gICAgLy8ge3tiYXNlVXJsfX0vYXBpL3B1YmxpYy90YXNrL3NlYXJjaFxuICAgIHB1YmxpYyBnZXRUYXNrcyhmaWx0ZXJQYXJhbTogRmlsdGVyLCBwYXJhbXM/OiBQYXJhbXMpOiBPYnNlcnZhYmxlPFBhZ2U8VGFzaz4+IHtcbiAgICAgICAgaWYgKGZpbHRlclBhcmFtLnR5cGUgIT09IEZpbHRlclR5cGUuVEFTSykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdQcm92aWRlZCBmaWx0ZXIgZG9lc25cXCd0IGhhdmUgdHlwZSBUQVNLJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZmlsdGVyUGFyYW0uYm9keUNvbnRhaW5zUXVlcnkoKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdnZXRUYXNrcyBlbmRwb2ludCBjYW5ub3QgYmUgcXVlcmllZCB3aXRoIGZpbHRlcnMgdGhhdCBjb250YWluIHRoZSBcXCdxdWVyeVxcJyBhdHRyaWJ1dGUnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHBhcmFtcyA9IFJlc291cmNlUHJvdmlkZXIuY29tYmluZVBhcmFtcyhmaWx0ZXJQYXJhbS5nZXRSZXF1ZXN0UGFyYW1zKCksIHBhcmFtcyk7XG4gICAgICAgIHJldHVybiB0aGlzLl9wcm92aWRlci5wb3N0JCgncHVibGljL3Rhc2svc2VhcmNoJywgdGhpcy5TRVJWRVJfVVJMLCBmaWx0ZXJQYXJhbS5nZXRSZXF1ZXN0Qm9keSgpLCBwYXJhbXMpXG4gICAgICAgICAgICAucGlwZShtYXAociA9PiB0aGlzLmdldFJlc291cmNlUGFnZTxUYXNrPihyLCAndGFza3MnKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERvd25sb2FkIHRhc2sgZmlsZSBmaWVsZCB2YWx1ZVxuICAgICAqIEdFVFxuICAgICAqL1xuICAgIC8vIHt7YmFzZVVybH19L2FwaS90YXNrLzppZC9maWxlLzpmaWVsZCAgICAgICAgIC0gZm9yIGZpbGUgZmllbGRcbiAgICAvLyB7e2Jhc2VVcmx9fS9hcGkvdGFzay86aWQvZmlsZS86ZmllbGQvOm5hbWUgICAtIGZvciBmaWxlIGxpc3QgZmllbGRcbiAgICBwdWJsaWMgZG93bmxvYWRGaWxlKHRhc2tJZDogc3RyaW5nLCBmaWVsZElkOiBzdHJpbmcsIG5hbWU/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPFByb3ZpZGVyUHJvZ3Jlc3MgfCBCbG9iPiB7XG4gICAgICAgIGNvbnN0IHVybCA9ICEhbmFtZSA/IGBwdWJsaWMvdGFzay8ke3Rhc2tJZH0vZmlsZS8ke2ZpZWxkSWR9LyR7bmFtZX1gIDogYHB1YmxpYy90YXNrLyR7dGFza0lkfS9maWxlLyR7ZmllbGRJZH1gO1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2VQcm92aWRlci5nZXRCbG9iJCh1cmwsIHRoaXMuU0VSVkVSX1VSTCkucGlwZShcbiAgICAgICAgICAgIG1hcChldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChldmVudC50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgSHR0cEV2ZW50VHlwZS5Eb3dubG9hZFByb2dyZXNzOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJlc291cmNlUHJvdmlkZXIuZ2V0UHJvZ3Jlc3MoZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIEh0dHBFdmVudFR5cGUuUmVzcG9uc2U6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXZlbnQuYm9keTtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBmaWx0ZXIodmFsdWUgPT4gISF2YWx1ZSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGxvYWQgZmlsZSBpbnRvIHRoZSB0YXNrXG4gICAgICogUE9TVFxuICAgICAqL1xuICAgIC8vIHt7YmFzZVVybH19L2FwaS90YXNrLzppZC9maWxlLzpmaWVsZCAgICAgLSBmb3IgZmlsZSBmaWVsZFxuICAgIC8vIHt7YmFzZVVybH19L2FwaS90YXNrLzppZC9maWxlcy86ZmllbGQgICAgLSBmb3IgZmlsZSBsaXN0IGZpZWxkXG4gICAgcHVibGljIHVwbG9hZEZpbGUodGFza0lkOiBzdHJpbmcsIGZpZWxkSWQ6IHN0cmluZywgYm9keTogb2JqZWN0LCBtdWx0aXBsZUZpbGVzOiBib29sZWFuKTpcbiAgICAgICAgT2JzZXJ2YWJsZTxQcm92aWRlclByb2dyZXNzIHwgRXZlbnRPdXRjb21lTWVzc2FnZVJlc291cmNlPiB7XG4gICAgICAgIGNvbnN0IHVybCA9ICFtdWx0aXBsZUZpbGVzID8gYHB1YmxpYy90YXNrLyR7dGFza0lkfS9maWxlLyR7ZmllbGRJZH1gIDogYHB1YmxpYy90YXNrLyR7dGFza0lkfS9maWxlcy8ke2ZpZWxkSWR9YDtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc291cmNlUHJvdmlkZXIucG9zdFdpdGhFdmVudCQ8RXZlbnRPdXRjb21lTWVzc2FnZVJlc291cmNlPih1cmwsIHRoaXMuU0VSVkVSX1VSTCwgYm9keSkucGlwZShcbiAgICAgICAgICAgIG1hcChldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChldmVudC50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgSHR0cEV2ZW50VHlwZS5VcGxvYWRQcm9ncmVzczpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBSZXNvdXJjZVByb3ZpZGVyLmdldFByb2dyZXNzKGV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBIdHRwRXZlbnRUeXBlLlJlc3BvbnNlOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV2ZW50LmJvZHk7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgZmlsdGVyKHZhbHVlID0+ICEhdmFsdWUpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVsZXRlIGZpbGUgZnJvbSB0aGUgdGFza1xuICAgICAqIERFTEVURVxuICAgICAqL1xuICAgIHB1YmxpYyBkZWxldGVGaWxlKHRhc2tJZDogc3RyaW5nLCBmaWVsZElkOiBzdHJpbmcsIG5hbWU/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPE1lc3NhZ2VSZXNvdXJjZT4ge1xuICAgICAgICBjb25zdCB1cmwgPSAhIW5hbWUgPyBgcHVibGljL3Rhc2svJHt0YXNrSWR9L2ZpbGUvJHtmaWVsZElkfS8ke25hbWV9YCA6IGBwdWJsaWMvdGFzay8ke3Rhc2tJZH0vZmlsZS8ke2ZpZWxkSWR9YDtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc291cmNlUHJvdmlkZXIuZGVsZXRlJCh1cmwsIHRoaXMuU0VSVkVSX1VSTCkucGlwZShcbiAgICAgICAgICAgIG1hcChyID0+IHRoaXMuY2hhbmdlVHlwZShyLCB1bmRlZmluZWQpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERvd25sb2FkIHRhc2sgZmlsZSBwcmV2aWV3IGZvciBmaWVsZCB2YWx1ZVxuICAgICAqIEdFVFxuICAgICAqL1xuICAgIC8vIHt7YmFzZVVybH19L2FwaS90YXNrLzppZC9maWxlX3ByZXZpZXcvOmZpZWxkXG4gICAgcHVibGljIGRvd25sb2FkRmlsZVByZXZpZXcodGFza0lkOiBzdHJpbmcsIGZpZWxkSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8UHJvdmlkZXJQcm9ncmVzcyB8IEJsb2I+IHtcbiAgICAgICAgY29uc3QgdXJsID0gJ3B1YmxpYy90YXNrLycgKyB0YXNrSWQgKyAnL2ZpbGVfcHJldmlldy8nICsgZmllbGRJZDtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc291cmNlUHJvdmlkZXIuZ2V0QmxvYiQodXJsLCB0aGlzLlNFUlZFUl9VUkwpLnBpcGUoXG4gICAgICAgICAgICBtYXAoZXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAoZXZlbnQudHlwZSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIEh0dHBFdmVudFR5cGUuRG93bmxvYWRQcm9ncmVzczpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBSZXNvdXJjZVByb3ZpZGVyLmdldFByb2dyZXNzKGV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBIdHRwRXZlbnRUeXBlLlJlc3BvbnNlOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV2ZW50LmJvZHk7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgZmlsdGVyKHZhbHVlID0+ICEhdmFsdWUpXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLXRhc2stcmVzb3VyY2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvcmVzb3VyY2VzL2VuZ2luZS1lbmRwb2ludC9wdWJsaWMvcHVibGljLXRhc2stcmVzb3VyY2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBRzdELE9BQU8sRUFBMkIsZ0JBQWdCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUczRixPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQVE5RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7Ozs7OztBQU9uRCxNQUFNLE9BQU8seUJBQTBCLFNBQVEsbUJBQW1CO0lBRTlELFlBQXNCLFNBQTJCLEVBQzNCLGNBQW9DLEVBQ3BDLGVBQXNDLEVBQ3RDLE9BQXNCO1FBQ3hDLEtBQUssQ0FBQyxTQUFTLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUp6QyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixtQkFBYyxHQUFkLGNBQWMsQ0FBc0I7UUFDcEMsb0JBQWUsR0FBZixlQUFlLENBQXVCO1FBQ3RDLFlBQU8sR0FBUCxPQUFPLENBQWU7SUFFNUMsQ0FBQztJQUVEOzs7T0FHRztJQUNILHlDQUF5QztJQUNsQyxVQUFVLENBQUMsTUFBYztRQUM1QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFB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QUFNLEdBQUcsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDO1FBQ2pFLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FDN0QsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ1IsUUFBUSxLQUFLLENBQUMsSUFBSSxFQUFFO2dCQUNoQixLQUFLLGFBQWEsQ0FBQyxnQkFBZ0I7b0JBQy9CLE9BQU8sZ0JBQWdCLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMvQyxLQUFLLGFBQWEsQ0FBQyxRQUFRO29CQUN2QixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUM7Z0JBQ3RCO29CQUNJLE9BQU8sU0FBUyxDQUFDO2FBQ3hCO1FBQ0wsQ0FBQyxDQUFDLEVBQ0YsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUMzQixDQUFDO0lBQ04sQ0FBQzs7dUhBL0tRLHlCQUF5QjsySEFBekIseUJBQXlCLGNBRnRCLE1BQU07NEZBRVQseUJBQXlCO2tCQUhyQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1Rhc2tSZXNvdXJjZVNlcnZpY2V9IGZyb20gJy4uL3Rhc2stcmVzb3VyY2Uuc2VydmljZSc7XG5pbXBvcnQge0ZpZWxkQ29udmVydGVyU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vdGFzay1jb250ZW50L3NlcnZpY2VzL2ZpZWxkLWNvbnZlcnRlci5zZXJ2aWNlJztcbmltcG9ydCB7Q29uZmlndXJhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2NvbmZpZ3VyYXRpb24vY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7UGFyYW1zLCBQcm92aWRlclByb2dyZXNzLCBSZXNvdXJjZVByb3ZpZGVyfSBmcm9tICcuLi8uLi9yZXNvdXJjZS1wcm92aWRlci5zZXJ2aWNlJztcbmltcG9ydCB7TG9nZ2VyU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vbG9nZ2VyL3NlcnZpY2VzL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2ZpbHRlciwgbWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0ZpbHRlclR5cGV9IGZyb20gJy4uLy4uLy4uL2ZpbHRlci9tb2RlbHMvZmlsdGVyLXR5cGUnO1xuaW1wb3J0IHtGaWx0ZXJ9IGZyb20gJy4uLy4uLy4uL2ZpbHRlci9tb2RlbHMvZmlsdGVyJztcbmltcG9ydCB7UGFnZX0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlL3BhZ2UnO1xuaW1wb3J0IHtUYXNrU2V0RGF0YVJlcXVlc3RCb2R5fSBmcm9tICcuLi8uLi9pbnRlcmZhY2UvdGFzay1zZXQtZGF0YS1yZXF1ZXN0LWJvZHknO1xuaW1wb3J0IHtUYXNrUmVmZXJlbmNlfSBmcm9tICcuLi8uLi9pbnRlcmZhY2UvdGFzay1yZWZlcmVuY2UnO1xuaW1wb3J0IHtEYXRhR3JvdXB9IGZyb20gJy4uLy4uL2ludGVyZmFjZS9kYXRhLWdyb3Vwcyc7XG5pbXBvcnQge0RhdGFGaWVsZH0gZnJvbSAnLi4vLi4vLi4vZGF0YS1maWVsZHMvbW9kZWxzL2Fic3RyYWN0LWRhdGEtZmllbGQnO1xuaW1wb3J0IHtUYXNrfSBmcm9tICcuLi8uLi9pbnRlcmZhY2UvdGFzayc7XG5pbXBvcnQge0h0dHBFdmVudFR5cGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7RXZlbnRPdXRjb21lTWVzc2FnZVJlc291cmNlLCBNZXNzYWdlUmVzb3VyY2V9IGZyb20gJy4uLy4uL2ludGVyZmFjZS9tZXNzYWdlLXJlc291cmNlJztcbmltcG9ydCB7R2V0RGF0YUdyb3Vwc0V2ZW50T3V0Y29tZX0gZnJvbSAnLi4vLi4vLi4vZXZlbnQvbW9kZWwvZXZlbnQtb3V0Y29tZXMvZGF0YS1vdXRjb21lcy9nZXQtZGF0YS1ncm91cHMtZXZlbnQtb3V0Y29tZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUHVibGljVGFza1Jlc291cmNlU2VydmljZSBleHRlbmRzIFRhc2tSZXNvdXJjZVNlcnZpY2Uge1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIF9wcm92aWRlcjogUmVzb3VyY2VQcm92aWRlcixcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2NvbmZpZ1NlcnZpY2U6IENvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfZmllbGRDb252ZXJ0ZXI6IEZpZWxkQ29udmVydGVyU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2xvZ2dlcjogTG9nZ2VyU2VydmljZSkge1xuICAgICAgICBzdXBlcihfcHJvdmlkZXIsIF9jb25maWdTZXJ2aWNlLCBfZmllbGRDb252ZXJ0ZXIsIF9sb2dnZXIpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFzc2lnbiB0YXNrXG4gICAgICogR0VUXG4gICAgICovXG4gICAgLy8ge3tiYXNlVXJsfX0vYXBpL3B1YmxpYy90YXNrL2Fzc2lnbi86aWRcbiAgICBwdWJsaWMgYXNzaWduVGFzayh0YXNrSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8RXZlbnRPdXRjb21lTWVzc2FnZVJlc291cmNlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wcm92aWRlci5nZXQkKCdwdWJsaWMvdGFzay9hc3NpZ24vJyArIHRhc2tJZCwgdGhpcy5TRVJWRVJfVVJMKVxuICAgICAgICAgICAgLnBpcGUobWFwKHIgPT4gdGhpcy5jaGFuZ2VUeXBlKHIsIHVuZGVmaW5lZCkpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYW5jZWwgdGFza1xuICAgICAqIEdFVFxuICAgICAqL1xuICAgIC8vIHt7YmFzZVVybH19L2FwaS9wdWJsaWMvdGFzay9jYW5jZWwvOmlkXG4gICAgcHVibGljIGNhbmNlbFRhc2sodGFza0lkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEV2ZW50T3V0Y29tZU1lc3NhZ2VSZXNvdXJjZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcHJvdmlkZXIuZ2V0JCgncHVibGljL3Rhc2svY2FuY2VsLycgKyB0YXNrSWQsIHRoaXMuU0VSVkVSX1VSTClcbiAgICAgICAgICAgIC5waXBlKG1hcChyID0+IHRoaXMuY2hhbmdlVHlwZShyLCB1bmRlZmluZWQpKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRmluaXNoIHRhc2tcbiAgICAgKiBHRVRcbiAgICAgKi9cbiAgICAvLyB7e2Jhc2VVcmx9fS9hcGkvcHVibGljL3Rhc2svZmluaXNoLzppZFxuICAgIHB1YmxpYyBmaW5pc2hUYXNrKHRhc2tJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxFdmVudE91dGNvbWVNZXNzYWdlUmVzb3VyY2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Byb3ZpZGVyLmdldCQoJ3B1YmxpYy90YXNrL2ZpbmlzaC8nICsgdGFza0lkLCB0aGlzLlNFUlZFUl9VUkwpXG4gICAgICAgICAgICAucGlwZShtYXAociA9PiB0aGlzLmNoYW5nZVR5cGUociwgdW5kZWZpbmVkKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCB0YXNrcyBvZiB0aGUgY2FzZVxuICAgICAqIEdFVFxuICAgICAqL1xuICAgIC8vIHt7YmFzZVVybH19L2FwaS9wdWJsaWMvdGFzay9jYXNlLzppZFxuICAgIHB1YmxpYyBnZXRBbGxUYXNrc0J5Q2FzZShjYXNlSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8QXJyYXk8VGFza1JlZmVyZW5jZT4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Byb3ZpZGVyLmdldCQoJ3B1YmxpYy90YXNrL2Nhc2UvJyArIGNhc2VJZCwgdGhpcy5TRVJWRVJfVVJMKVxuICAgICAgICAgICAgLnBpcGUobWFwKHIgPT4gdGhpcy5jaGFuZ2VUeXBlKHIsIHVuZGVmaW5lZCkpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgYWxsIHRhc2sgZGF0YVxuICAgICAqXG4gICAgICogR0VUXG4gICAgICpcbiAgICAgKiBJZiB5b3UgZG9uJ3Qgd2FudCB0byBwYXJzZSB0aGUgcmVzcG9uc2UgeW91cnNlbGYgdXNlIFtnZXREYXRhXXtAbGluayBUYXNrUmVzb3VyY2VTZXJ2aWNlI2dldERhdGF9IGluc3RlYWQuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB0aGUgcmF3IGJhY2tlbmQgcmVzcG9uc2Ugd2l0aG91dCBhbnkgYWRkaXRpb25hbCBwcm9jZXNzaW5nXG4gICAgICovXG4gICAgLy8ge3tiYXNlVXJsfX0vYXBpL3B1YmxpYy90YXNrLzppZC9kYXRhXG4gICAgcHVibGljIHJhd0dldERhdGEodGFza0lkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEV2ZW50T3V0Y29tZU1lc3NhZ2VSZXNvdXJjZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcHJvdmlkZXIuZ2V0JCgncHVibGljL3Rhc2svJyArIHRhc2tJZCArICcvZGF0YScsIHRoaXMuU0VSVkVSX1VSTClcbiAgICAgICAgICAgIC5waXBlKG1hcChyID0+IHRoaXMuY2hhbmdlVHlwZShyLCAnZGF0YUdyb3VwcycpKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IHRhc2sgZGF0YVxuICAgICAqIFBPU1RcbiAgICAgKi9cbiAgICAvLyB7e2Jhc2VVcmx9fS9hcGkvcHVibGljL3Rhc2svOmlkL2RhdGFcbiAgICBwdWJsaWMgc2V0RGF0YSh0YXNrSWQ6IHN0cmluZywgYm9keTogVGFza1NldERhdGFSZXF1ZXN0Qm9keSk6IE9ic2VydmFibGU8RXZlbnRPdXRjb21lTWVzc2FnZVJlc291cmNlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wcm92aWRlci5wb3N0JCgncHVibGljL3Rhc2svJyArIHRhc2tJZCArICcvZGF0YScsIHRoaXMuU0VSVkVSX1VSTCwgYm9keSlcbiAgICAgICAgICAgIC5waXBlKG1hcChyID0+IHRoaXMuY2hhbmdlVHlwZShyLCB1bmRlZmluZWQpKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2VhcmNoZXMgdGFza3MgdHJvdWdoIHRoZSBNb25nbyBlbmRwb2ludC5cbiAgICAgKiBQT1NUXG4gICAgICogQHBhcmFtIGZpbHRlclBhcmFtIGZpbHRlciB1c2VkIHRvIHNlYXJjaCB0aGUgdGFza3MuIE11c3QgYmUgb2YgdHlwZSBgVEFTS2AuXG4gICAgICogTm90ZSB0aGF0IHRoZSBgcXVlcnlgIGF0dHJpYnV0ZSBvZiB0aGUgZmlsdGVyIGNhbm5vdCBiZSB1c2VkIHdpdGggdGhpcyBlbmRwb2ludC5cbiAgICAgKiBBdHRlbXB0aW5nIHRvIHVzZSBpdCB3aWxsIGRpc3BsYXkgYSB3YXJuaW5nIGFuZCByZW1vdmUgdGhlIGF0dHJpYnV0ZSBmcm9tIHRoZSByZXF1ZXN0LlxuICAgICAqIEBwYXJhbSBwYXJhbXMgQWRkaXRpb25hbCByZXF1ZXN0IHBhcmFtZXRlcnNcbiAgICAgKi9cbiAgICAvLyB7e2Jhc2VVcmx9fS9hcGkvcHVibGljL3Rhc2svc2VhcmNoXG4gICAgcHVibGljIGdldFRhc2tzKGZpbHRlclBhcmFtOiBGaWx0ZXIsIHBhcmFtcz86IFBhcmFtcyk6IE9ic2VydmFibGU8UGFnZTxUYXNrPj4ge1xuICAgICAgICBpZiAoZmlsdGVyUGFyYW0udHlwZSAhPT0gRmlsdGVyVHlwZS5UQVNLKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Byb3ZpZGVkIGZpbHRlciBkb2VzblxcJ3QgaGF2ZSB0eXBlIFRBU0snKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmaWx0ZXJQYXJhbS5ib2R5Q29udGFpbnNRdWVyeSgpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2dldFRhc2tzIGVuZHBvaW50IGNhbm5vdCBiZSBxdWVyaWVkIHdpdGggZmlsdGVycyB0aGF0IGNvbnRhaW4gdGhlIFxcJ3F1ZXJ5XFwnIGF0dHJpYnV0ZScpO1xuICAgICAgICB9XG5cbiAgICAgICAgcGFyYW1zID0gUmVzb3VyY2VQcm92aWRlci5jb21iaW5lUGFyYW1zKGZpbHRlclBhcmFtLmdldFJlcXVlc3RQYXJhbXMoKSwgcGFyYW1zKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Byb3ZpZGVyLnBvc3QkKCdwdWJsaWMvdGFzay9zZWFyY2gnLCB0aGlzLlNFUlZFUl9VUkwsIGZpbHRlclBhcmFtLmdldFJlcXVlc3RCb2R5KCksIHBhcmFtcylcbiAgICAgICAgICAgIC5waXBlKG1hcChyID0+IHRoaXMuZ2V0UmVzb3VyY2VQYWdlPFRhc2s+KHIsICd0YXNrcycpKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRG93bmxvYWQgdGFzayBmaWxlIGZpZWxkIHZhbHVlXG4gICAgICogR0VUXG4gICAgICovXG4gICAgLy8ge3tiYXNlVXJsfX0vYXBpL3Rhc2svOmlkL2ZpbGUvOmZpZWxkICAgICAgICAgLSBmb3IgZmlsZSBmaWVsZFxuICAgIC8vIHt7YmFzZVVybH19L2FwaS90YXNrLzppZC9maWxlLzpmaWVsZC86bmFtZSAgIC0gZm9yIGZpbGUgbGlzdCBmaWVsZFxuICAgIHB1YmxpYyBkb3dubG9hZEZpbGUodGFza0lkOiBzdHJpbmcsIGZpZWxkSWQ6IHN0cmluZywgbmFtZT86IHN0cmluZyk6IE9ic2VydmFibGU8UHJvdmlkZXJQcm9ncmVzcyB8IEJsb2I+IHtcbiAgICAgICAgY29uc3QgdXJsID0gISFuYW1lID8gYHB1YmxpYy90YXNrLyR7dGFza0lkfS9maWxlLyR7ZmllbGRJZH0vJHtuYW1lfWAgOiBgcHVibGljL3Rhc2svJHt0YXNrSWR9L2ZpbGUvJHtmaWVsZElkfWA7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZVByb3ZpZGVyLmdldEJsb2IkKHVybCwgdGhpcy5TRVJWRVJfVVJMKS5waXBlKFxuICAgICAgICAgICAgbWFwKGV2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGV2ZW50LnR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBIdHRwRXZlbnRUeXBlLkRvd25sb2FkUHJvZ3Jlc3M6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gUmVzb3VyY2VQcm92aWRlci5nZXRQcm9ncmVzcyhldmVudCk7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgSHR0cEV2ZW50VHlwZS5SZXNwb25zZTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBldmVudC5ib2R5O1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGZpbHRlcih2YWx1ZSA9PiAhIXZhbHVlKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwbG9hZCBmaWxlIGludG8gdGhlIHRhc2tcbiAgICAgKiBQT1NUXG4gICAgICovXG4gICAgLy8ge3tiYXNlVXJsfX0vYXBpL3Rhc2svOmlkL2ZpbGUvOmZpZWxkICAgICAtIGZvciBmaWxlIGZpZWxkXG4gICAgLy8ge3tiYXNlVXJsfX0vYXBpL3Rhc2svOmlkL2ZpbGVzLzpmaWVsZCAgICAtIGZvciBmaWxlIGxpc3QgZmllbGRcbiAgICBwdWJsaWMgdXBsb2FkRmlsZSh0YXNrSWQ6IHN0cmluZywgZmllbGRJZDogc3RyaW5nLCBib2R5OiBvYmplY3QsIG11bHRpcGxlRmlsZXM6IGJvb2xlYW4pOlxuICAgICAgICBPYnNlcnZhYmxlPFByb3ZpZGVyUHJvZ3Jlc3MgfCBFdmVudE91dGNvbWVNZXNzYWdlUmVzb3VyY2U+IHtcbiAgICAgICAgY29uc3QgdXJsID0gIW11bHRpcGxlRmlsZXMgPyBgcHVibGljL3Rhc2svJHt0YXNrSWR9L2ZpbGUvJHtmaWVsZElkfWAgOiBgcHVibGljL3Rhc2svJHt0YXNrSWR9L2ZpbGVzLyR7ZmllbGRJZH1gO1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2VQcm92aWRlci5wb3N0V2l0aEV2ZW50JDxFdmVudE91dGNvbWVNZXNzYWdlUmVzb3VyY2U+KHVybCwgdGhpcy5TRVJWRVJfVVJMLCBib2R5KS5waXBlKFxuICAgICAgICAgICAgbWFwKGV2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGV2ZW50LnR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBIdHRwRXZlbnRUeXBlLlVwbG9hZFByb2dyZXNzOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJlc291cmNlUHJvdmlkZXIuZ2V0UHJvZ3Jlc3MoZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIEh0dHBFdmVudFR5cGUuUmVzcG9uc2U6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXZlbnQuYm9keTtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBmaWx0ZXIodmFsdWUgPT4gISF2YWx1ZSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWxldGUgZmlsZSBmcm9tIHRoZSB0YXNrXG4gICAgICogREVMRVRFXG4gICAgICovXG4gICAgcHVibGljIGRlbGV0ZUZpbGUodGFza0lkOiBzdHJpbmcsIGZpZWxkSWQ6IHN0cmluZywgbmFtZT86IHN0cmluZyk6IE9ic2VydmFibGU8TWVzc2FnZVJlc291cmNlPiB7XG4gICAgICAgIGNvbnN0IHVybCA9ICEhbmFtZSA/IGBwdWJsaWMvdGFzay8ke3Rhc2tJZH0vZmlsZS8ke2ZpZWxkSWR9LyR7bmFtZX1gIDogYHB1YmxpYy90YXNrLyR7dGFza0lkfS9maWxlLyR7ZmllbGRJZH1gO1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2VQcm92aWRlci5kZWxldGUkKHVybCwgdGhpcy5TRVJWRVJfVVJMKS5waXBlKFxuICAgICAgICAgICAgbWFwKHIgPT4gdGhpcy5jaGFuZ2VUeXBlKHIsIHVuZGVmaW5lZCkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRG93bmxvYWQgdGFzayBmaWxlIHByZXZpZXcgZm9yIGZpZWxkIHZhbHVlXG4gICAgICogR0VUXG4gICAgICovXG4gICAgLy8ge3tiYXNlVXJsfX0vYXBpL3Rhc2svOmlkL2ZpbGVfcHJldmlldy86ZmllbGRcbiAgICBwdWJsaWMgZG93bmxvYWRGaWxlUHJldmlldyh0YXNrSWQ6IHN0cmluZywgZmllbGRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxQcm92aWRlclByb2dyZXNzIHwgQmxvYj4ge1xuICAgICAgICBjb25zdCB1cmwgPSAncHVibGljL3Rhc2svJyArIHRhc2tJZCArICcvZmlsZV9wcmV2aWV3LycgKyBmaWVsZElkO1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2VQcm92aWRlci5nZXRCbG9iJCh1cmwsIHRoaXMuU0VSVkVSX1VSTCkucGlwZShcbiAgICAgICAgICAgIG1hcChldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChldmVudC50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgSHR0cEV2ZW50VHlwZS5Eb3dubG9hZFByb2dyZXNzOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJlc291cmNlUHJvdmlkZXIuZ2V0UHJvZ3Jlc3MoZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIEh0dHBFdmVudFR5cGUuUmVzcG9uc2U6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXZlbnQuYm9keTtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBmaWx0ZXIodmFsdWUgPT4gISF2YWx1ZSlcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=