@valtimo/process 4.15.3-next-main.15 → 4.15.3-next-main.16

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.
@@ -13,7 +13,7 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { Component, ElementRef, EventEmitter, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';
16
+ import { Component, ElementRef, EventEmitter, Input, Output, ViewChild, ViewEncapsulation, } from '@angular/core';
17
17
  import { ProcessService } from '../process.service';
18
18
  import * as BpmnJS from 'bpmn-js/dist/bpmn-navigated-viewer.production.min.js';
19
19
  import * as heatmap from 'heatmap.js-fixed/build/heatmap.js';
@@ -113,15 +113,15 @@ export class ProcessDiagramComponent {
113
113
  this.min = 0;
114
114
  this.max = 0;
115
115
  Object.keys(this.inputData).forEach(key => {
116
- const diagramContainer = this.el.nativeElement.querySelector('svg')
117
- .getBoundingClientRect(), diagramElm = this.el.nativeElement.querySelector(`g[data-element-id=${key}]`)
116
+ const diagramContainer = this.el.nativeElement.querySelector('svg').getBoundingClientRect(), diagramElm = this.el.nativeElement
117
+ .querySelector(`g[data-element-id=${key}]`)
118
118
  .getBoundingClientRect();
119
119
  this.setMax(key);
120
120
  this.heatPoints.data.push({
121
121
  x: Math.round(diagramElm.x - diagramContainer.x + diagramElm.width / 2),
122
122
  y: Math.round(diagramElm.y - diagramContainer.y + diagramElm.height / 2),
123
123
  value: this.inputData[key][this.valueKey],
124
- radius: diagramElm.width / 2
124
+ radius: diagramElm.width / 2,
125
125
  });
126
126
  this.addCounterActiveOverlays(key, this.inputData);
127
127
  });
@@ -149,15 +149,15 @@ export class ProcessDiagramComponent {
149
149
  this.min = 0;
150
150
  this.max = 0;
151
151
  Object.keys(this.inputData).forEach(key => {
152
- const diagramContainer = this.el.nativeElement.querySelector('svg')
153
- .getBoundingClientRect(), diagramElm = this.el.nativeElement.querySelector(`g[data-element-id=${key}]`)
152
+ const diagramContainer = this.el.nativeElement.querySelector('svg').getBoundingClientRect(), diagramElm = this.el.nativeElement
153
+ .querySelector(`g[data-element-id=${key}]`)
154
154
  .getBoundingClientRect();
155
155
  this.setMax(key);
156
156
  this.heatPoints.data.push({
157
157
  x: Math.round(diagramElm.x - diagramContainer.x + diagramElm.width / 2),
158
158
  y: Math.round(diagramElm.y - diagramContainer.y + diagramElm.height / 2),
159
159
  value: this.inputData[key][this.valueKey],
160
- radius: diagramElm.width / 2
160
+ radius: diagramElm.width / 2,
161
161
  });
162
162
  this.addCounterActiveOverlays(key, this.inputData);
163
163
  });
@@ -187,16 +187,16 @@ export class ProcessDiagramComponent {
187
187
  if (!this.heatMapInstance) {
188
188
  this.heatMapInstance = heatmap.create({
189
189
  radius: 54,
190
- blur: .70,
191
- maxOpacity: .4,
190
+ blur: 0.7,
191
+ maxOpacity: 0.4,
192
192
  minOpacity: 0,
193
- container: this.el.nativeElement
193
+ container: this.el.nativeElement,
194
194
  });
195
195
  }
196
196
  this.heatMapInstance.setData({
197
197
  min: this.min,
198
198
  max: this.max,
199
- data: this.heatPoints.data
199
+ data: this.heatPoints.data,
200
200
  });
201
201
  }
202
202
  clearHeatmap() {
@@ -226,20 +226,20 @@ export class ProcessDiagramComponent {
226
226
  overlays.add(key, {
227
227
  position: {
228
228
  bottom: 13,
229
- left: -12
229
+ left: -12,
230
230
  },
231
231
  show: {
232
232
  minZoom: 0,
233
- maxZoom: 5.0
233
+ maxZoom: 5.0,
234
234
  },
235
- html: `<span class="badge badge-pill badge-primary">${inputData[key].count}</span>`
235
+ html: `<span class="badge badge-pill badge-primary">${inputData[key].count}</span>`,
236
236
  });
237
237
  }
238
238
  }
239
239
  ProcessDiagramComponent.decorators = [
240
240
  { type: Component, args: [{
241
241
  selector: 'valtimo-process-diagram',
242
- template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<div class=\"process-diagram-container\">\n <div *ngIf=\"processDefinitionKey\" class=\"diagram-container-switch-holder\" >\n <div class=\"container-fluid\">\n <div class=\"row p-4 bg-light\">\n <div class=\"col-4\">\n <label><strong>Version</strong></label><br />\n <select class=\"form-control\" (change)=\"setProcessDefinitionVersion($event.target.value)\">\n <option *ngFor=\"let processDefinitionVersion of processDefinitionVersions\"\n [value]=\"processDefinitionVersion.version\"\n [selected]=\"processDefinitionVersion.version === version\">\n {{ processDefinitionVersion.version }}\n </option>\n </select>\n </div>\n <div class=\"col-4\">\n <label><strong>Heatmap type</strong></label><br />\n <select class=\"form-control\" (change)=\"setHeatmapOption($event.target.value)\">\n <option *ngFor=\"let option of enumHeatmapOptions\"\n [value]=\"option\"\n [selected]=\"option === heatmapOption\" >\n {{ option }}\n </option>\n </select>\n </div>\n <div class=\"col-4 text-right\">\n <label><strong>Show heatmap</strong></label><br />\n <div class=\"text-left switch-button switch-button-sm switch-button-success\">\n <input type=\"checkbox\" id=\"toggleHeatmap\" [checked]=\"showHeatmap\" (click)=\"toggleShowHeatmap()\"><span>\n <label for=\"toggleHeatmap\"></label></span>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div #ref (window:resize)=\"onWindowResize()\" class=\"diagram-container\"></div>\n\n <div *ngIf=\"processInstanceId\" class=\"p-4 text-center legenda-holder\">\n <span><div class=\"legenda highlight-overlay-past\"></div> Executed tasks</span>\n <span class=\"ml-3\"><div class=\"legenda highlight-overlay-current\"></div> Current tasks</span>\n </div>\n\n <div *ngIf=\"processDefinitionKey\" class=\"p-4 text-center legenda-holder\">\n <span><span class=\"badge badge-pill badge-primary\">N</span>&nbsp;&nbsp;Amount of currently active instances of this task.</span>\n <span>&nbsp;&nbsp;|&nbsp;&nbsp;Red/yellow/green orbs: The amount of times the task is executed in comparison to the other tasks.</span>\n </div>\n</div>\n",
242
+ template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<div class=\"process-diagram-container\">\n <div *ngIf=\"processDefinitionKey\" class=\"diagram-container-switch-holder\">\n <div class=\"container-fluid\">\n <div class=\"row p-4 bg-light\">\n <div class=\"col-4\">\n <label><strong>Version</strong></label\n ><br />\n <select class=\"form-control\" (change)=\"setProcessDefinitionVersion($event.target.value)\">\n <option\n *ngFor=\"let processDefinitionVersion of processDefinitionVersions\"\n [value]=\"processDefinitionVersion.version\"\n [selected]=\"processDefinitionVersion.version === version\"\n >\n {{ processDefinitionVersion.version }}\n </option>\n </select>\n </div>\n <div class=\"col-4\">\n <label><strong>Heatmap type</strong></label\n ><br />\n <select class=\"form-control\" (change)=\"setHeatmapOption($event.target.value)\">\n <option\n *ngFor=\"let option of enumHeatmapOptions\"\n [value]=\"option\"\n [selected]=\"option === heatmapOption\"\n >\n {{ option }}\n </option>\n </select>\n </div>\n <div class=\"col-4 text-right\">\n <label><strong>Show heatmap</strong></label\n ><br />\n <div class=\"text-left switch-button switch-button-sm switch-button-success\">\n <input\n type=\"checkbox\"\n id=\"toggleHeatmap\"\n [checked]=\"showHeatmap\"\n (click)=\"toggleShowHeatmap()\"\n /><span> <label for=\"toggleHeatmap\"></label></span>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div #ref (window:resize)=\"onWindowResize()\" class=\"diagram-container\"></div>\n\n <div *ngIf=\"processInstanceId\" class=\"p-4 text-center legenda-holder\">\n <span\n ><div class=\"legenda highlight-overlay-past\"></div>\n Executed tasks</span\n >\n <span class=\"ml-3\"\n ><div class=\"legenda highlight-overlay-current\"></div>\n Current tasks</span\n >\n </div>\n\n <div *ngIf=\"processDefinitionKey\" class=\"p-4 text-center legenda-holder\">\n <span\n ><span class=\"badge badge-pill badge-primary\">N</span>&nbsp;&nbsp;Amount of currently active\n instances of this task.</span\n >\n <span\n >&nbsp;&nbsp;|&nbsp;&nbsp;Red/yellow/green orbs: The amount of times the task is executed in\n comparison to the other tasks.</span\n >\n </div>\n</div>\n",
243
243
  encapsulation: ViewEncapsulation.None,
244
244
  styles: [".process-diagram-container .diagram-container{height:50vh;width:100%}.process-diagram-container .diagram-container-switch-holder{position:absolute;width:100%;z-index:1000}.process-diagram-container .highlight-overlay-past:not(.djs-connection) .djs-visual>:first-child{fill:#d8d8d8!important}.process-diagram-container .highlight-overlay-current:not(.djs-connection) .djs-visual>:first-child{fill:#b2e0ff!important}.process-diagram-container .legenda-holder{font-size:1em}.process-diagram-container .legenda{border:2px solid #000;border-radius:3px;display:inline-block;margin-bottom:-4px;margin-right:5px;padding:7px}.process-diagram-container .legenda.highlight-overlay-past{background-color:#d8d8d8}.process-diagram-container .legenda.highlight-overlay-current{background-color:#b2e0ff}"]
245
245
  },] }
@@ -253,4 +253,4 @@ ProcessDiagramComponent.propDecorators = {
253
253
  processDefinitionKey: [{ type: Input }],
254
254
  processInstanceId: [{ type: Input }]
255
255
  };
256
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy1kaWFncmFtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vcHJvY2Vzcy9zcmMvbGliL3Byb2Nlc3MtZGlhZ3JhbS9wcm9jZXNzLWRpYWdyYW0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFJTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFFbEQsT0FBTyxLQUFLLE1BQU0sTUFBTSxzREFBc0QsQ0FBQztBQUMvRSxPQUFPLEtBQUssT0FBTyxNQUFNLG1DQUFtQyxDQUFDO0FBUTdELE1BQU0sT0FBTyx1QkFBdUI7SUEwQmxDLFlBQ1UsY0FBOEI7UUFBOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBckJ2QixlQUFVLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFXN0QsdUJBQWtCLEdBQUcsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFXOUMsQ0FBQztJQUVMLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUM3QixJQUFJLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7U0FDOUQ7UUFDRCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQixJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7U0FDckQ7UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksTUFBTSxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENB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Q1YsT0FBTyxFQUFFLEdBQUc7YUFDYjtZQUNELElBQUksRUFBRSxnREFBZ0QsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssU0FBUztTQUNwRixDQUFDLENBQUM7SUFDTCxDQUFDOzs7WUFoUkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSx5QkFBeUI7Z0JBQ25DLHUrRkFBK0M7Z0JBRS9DLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJOzthQUN0Qzs7O1lBVk8sY0FBYzs7O2lCQWdCbkIsU0FBUyxTQUFDLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7eUJBQ2pDLE1BQU07bUNBQ04sS0FBSztnQ0FDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjAgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1Byb2Nlc3NTZXJ2aWNlfSBmcm9tICcuLi9wcm9jZXNzLnNlcnZpY2UnO1xuXG5pbXBvcnQgKiBhcyBCcG1uSlMgZnJvbSAnYnBtbi1qcy9kaXN0L2JwbW4tbmF2aWdhdGVkLXZpZXdlci5wcm9kdWN0aW9uLm1pbi5qcyc7XG5pbXBvcnQgKiBhcyBoZWF0bWFwIGZyb20gJ2hlYXRtYXAuanMtZml4ZWQvYnVpbGQvaGVhdG1hcC5qcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tcHJvY2Vzcy1kaWFncmFtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2Nlc3MtZGlhZ3JhbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Byb2Nlc3MtZGlhZ3JhbS5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIFByb2Nlc3NEaWFncmFtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG5cbiAgcHJpdmF0ZSBicG1uSlM6IEJwbW5KUztcbiAgcHJpdmF0ZSBoZWF0TWFwSW5zdGFuY2U6IGFueTtcblxuICBAVmlld0NoaWxkKCdyZWYnLCB7IHN0YXRpYzogdHJ1ZSB9KSBwdWJsaWMgZWw6IEVsZW1lbnRSZWY7XG4gIEBPdXRwdXQoKSBwdWJsaWMgaW1wb3J0RG9uZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBJbnB1dCgpIHB1YmxpYyBwcm9jZXNzRGVmaW5pdGlvbktleT86IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIHByb2Nlc3NJbnN0YW5jZUlkPzogc3RyaW5nO1xuXG4gIHB1YmxpYyBwcm9jZXNzRGlhZ3JhbTogYW55O1xuICBwdWJsaWMgcHJvY2Vzc0RlZmluaXRpb246IGFueTtcbiAgcHVibGljIHByb2Nlc3NEZWZpbml0aW9uVmVyc2lvbnM6IGFueTtcbiAgcHVibGljIGhlYXRtYXBDb3VudDogYW55O1xuICBwdWJsaWMgaGVhdG1hcER1cmF0aW9uOiBhbnk7XG4gIHB1YmxpYyB0YXNrc0NvdW50OiBhbnk7XG4gIHB1YmxpYyBzaG93SGVhdG1hcDogYm9vbGVhbjtcbiAgcHVibGljIGVudW1IZWF0bWFwT3B0aW9ucyA9IFsnY291bnQnLCAnZHVyYXRpb24nXTtcbiAgcHVibGljIGhlYXRtYXBPcHRpb246IHN0cmluZztcbiAgcHVibGljIHZlcnNpb246IGFueTtcbiAgcHVibGljIGhlYXRQb2ludHM6IGFueTtcbiAgcHVibGljIG1pbjogbnVtYmVyO1xuICBwdWJsaWMgbWF4OiBudW1iZXI7XG4gIHB1YmxpYyBpbnB1dERhdGE6IGFueTtcbiAgcHVibGljIHZhbHVlS2V5OiBhbnk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwcm9jZXNzU2VydmljZTogUHJvY2Vzc1NlcnZpY2UsXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMucHJvY2Vzc0RlZmluaXRpb25LZXkpIHtcbiAgICAgIHRoaXMubG9hZFByb2Nlc3NEZWZpbml0aW9uRnJvbUtleSh0aGlzLnByb2Nlc3NEZWZpbml0aW9uS2V5KTtcbiAgICB9XG4gICAgaWYgKHRoaXMucHJvY2Vzc0luc3RhbmNlSWQpIHtcbiAgICAgIHRoaXMubG9hZFByb2Nlc3NJbnN0YW5jZVhtbCh0aGlzLnByb2Nlc3NJbnN0YW5jZUlkKTtcbiAgICB9XG4gICAgdGhpcy5icG1uSlMgPSBuZXcgQnBtbkpTKCk7XG4gICAgdGhpcy5icG1uSlMub24oJ2ltcG9ydC5kb25lJywgKHtlcnJvcn0pID0+IHtcbiAgICAgIGlmICghZXJyb3IpIHtcbiAgICAgICAgY29uc3QgY2FudmFzID0gdGhpcy5icG1uSlMuZ2V0KCdjYW52YXMnKVxuICAgICAgICAgICwgZXZlbnRCdXMgPSB0aGlzLmJwbW5KUy5nZXQoJ2V2ZW50QnVzJyk7XG4gICAgICAgIGlmICh0aGlzLnByb2Nlc3NEaWFncmFtLmhpc3RvcmljQWN0aXZpdHlJbnN0YW5jZXMpIHtcbiAgICAgICAgICB0aGlzLnByb2Nlc3NEaWFncmFtLmhpc3RvcmljQWN0aXZpdHlJbnN0YW5jZXMuZm9yRWFjaChpbnN0YW5jZSA9PiB7XG4gICAgICAgICAgICAvLyBleGNsdWRlIG11bHRpSW5zdGFuY2VCb2R5XG4gICAgICAgICAgICBpZiAoaW5zdGFuY2UuYWN0aXZpdHlUeXBlICE9PSAnbXVsdGlJbnN0YW5jZUJvZHknKSB7XG4gICAgICAgICAgICAgIGNhbnZhcy5hZGRNYXJrZXIoaW5zdGFuY2UuYWN0aXZpdHlJZCwgaW5zdGFuY2UuZW5kVGltZSA/ICdoaWdobGlnaHQtb3ZlcmxheS1wYXN0JyA6ICdoaWdobGlnaHQtb3ZlcmxheS1jdXJyZW50Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjYW52YXMuem9vbSgnZml0LXZpZXdwb3J0JywgJ2F1dG8nKTtcbiAgICAgICAgaWYgKHRoaXMucHJvY2Vzc0RlZmluaXRpb25WZXJzaW9ucykge1xuICAgICAgICAgIGV2ZW50QnVzLm9uKCdjYW52YXMuaW5pdCcsICgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnNob3dIZWF0bWFwKSB7XG4gICAgICAgICAgICAgIHRoaXMuY2xlYXJIZWF0bWFwKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmxvYWRIZWF0bWFwRGF0YSgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGV2ZW50QnVzLm9uKCdjYW52YXMudmlld2JveC5jaGFuZ2luZycsICgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnNob3dIZWF0bWFwKSB7XG4gICAgICAgICAgICAgIHRoaXMuY2xlYXJIZWF0bWFwKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgZXZlbnRCdXMub24oJ2NhbnZhcy52aWV3Ym94LmNoYW5nZWQnLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmxvYWRIZWF0bWFwRGF0YSgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcm9jZXNzRGVmaW5pdGlvbktleSkge1xuICAgICAgdGhpcy5sb2FkUHJvY2Vzc0RlZmluaXRpb25Gcm9tS2V5KHRoaXMucHJvY2Vzc0RlZmluaXRpb25LZXkpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5wcm9jZXNzSW5zdGFuY2VJZCkge1xuICAgICAgdGhpcy5sb2FkUHJvY2Vzc0luc3RhbmNlWG1sKHRoaXMucHJvY2Vzc0luc3RhbmNlSWQpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLmJwbW5KUykge1xuICAgICAgdGhpcy5icG1uSlMuZGVzdHJveSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBsb2FkUHJvY2Vzc0RlZmluaXRpb24ocHJvY2Vzc0RlZmluaXRpb25LZXkpIHtcbiAgICB0aGlzLnByb2Nlc3NTZXJ2aWNlLmdldFByb2Nlc3NEZWZpbml0aW9uKHByb2Nlc3NEZWZpbml0aW9uS2V5KS5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xuICAgICAgdGhpcy5oZWF0bWFwT3B0aW9uID0gdGhpcy5lbnVtSGVhdG1hcE9wdGlvbnNbMF07XG4gICAgICB0aGlzLnZlcnNpb24gPSByZXNwb25zZS52ZXJzaW9uO1xuICAgICAgdGhpcy5sb2FkUHJvY2Vzc0RlZmluaXRpb25YbWwocmVzcG9uc2UuaWQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGxvYWRQcm9jZXNzRGVmaW5pdGlvblZlcnNpb25zKHByb2Nlc3NEZWZpbml0aW9uS2V5KSB7XG4gICAgdGhpcy5wcm9jZXNzU2VydmljZS5nZXRQcm9jZXNzRGVmaW5pdGlvblZlcnNpb25zKHByb2Nlc3NEZWZpbml0aW9uS2V5KS5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xuICAgICAgdGhpcy5wcm9jZXNzRGVmaW5pdGlvblZlcnNpb25zID0gcmVzcG9uc2U7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbG9hZFByb2Nlc3NEZWZpbml0aW9uRnJvbUtleShwcm9jZXNzRGVmaW5pdGlvbktleSkge1xuICAgICAgdGhpcy5sb2FkUHJvY2Vzc0RlZmluaXRpb25WZXJzaW9ucyhwcm9jZXNzRGVmaW5pdGlvbktleSk7XG4gICAgICB0aGlzLmxvYWRQcm9jZXNzRGVmaW5pdGlvbihwcm9jZXNzRGVmaW5pdGlvbktleSk7XG4gIH1cblxuICBwdWJsaWMgbG9hZFByb2Nlc3NEZWZpbml0aW9uWG1sKHByb2Nlc3NEZWZpbml0aW9uSWQpIHtcbiAgICB0aGlzLnByb2Nlc3NTZXJ2aWNlLmdldFByb2Nlc3NEZWZpbml0aW9uWG1sKHByb2Nlc3NEZWZpbml0aW9uSWQpLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICB0aGlzLnByb2Nlc3NEaWFncmFtID0gcmVzcG9uc2U7XG4gICAgICB0aGlzLmJwbW5KUy5pbXBvcnRYTUwodGhpcy5wcm9jZXNzRGlhZ3JhbS5icG1uMjBYbWwpO1xuICAgICAgdGhpcy5icG1uSlMuYXR0YWNoVG8odGhpcy5lbC5uYXRpdmVFbGVtZW50KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZFByb2Nlc3NJbnN0YW5jZVhtbChwcm9jZXNzSW5zdGFuY2VJZCkge1xuICAgIHRoaXMucHJvY2Vzc1NlcnZpY2UuZ2V0UHJvY2Vzc1htbChwcm9jZXNzSW5zdGFuY2VJZCkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgIHRoaXMucHJvY2Vzc0RpYWdyYW0gPSByZXNwb25zZTtcbiAgICAgIHRoaXMuYnBtbkpTLmltcG9ydFhNTCh0aGlzLnByb2Nlc3NEaWFncmFtLmJwbW4yMFhtbCk7XG4gICAgICB0aGlzLmJwbW5KUy5hdHRhY2hUbyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGxvYWRQcm9jZXNzRGVmaW5pdGlvbkhlYXRtYXBDb3VudChwcm9jZXNzRGVmaW5pdGlvbikge1xuICAgIHRoaXMucHJvY2Vzc1NlcnZpY2UuZ2V0UHJvY2Vzc0hlYXRtYXBDb3VudChwcm9jZXNzRGVmaW5pdGlvbikuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgIHRoaXMuaW5wdXREYXRhID0gcmVzcG9uc2U7XG4gICAgICB0aGlzLnZhbHVlS2V5ID0gJ3RvdGFsQ291bnQnO1xuICAgICAgdGhpcy5oZWF0UG9pbnRzID0ge2RhdGE6IFtdfTtcbiAgICAgIHRoaXMubWluID0gMDtcbiAgICAgIHRoaXMubWF4ID0gMDtcblxuICAgICAgT2JqZWN0LmtleXModGhpcy5pbnB1dERhdGEpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgY29uc3QgZGlhZ3JhbUNvbnRhaW5lciA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdzdmcnKVxuICAgICAgICAgICAgLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFxuICAgICAgICAgIGRpYWdyYW1FbG0gPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihgZ1tkYXRhLWVsZW1lbnQtaWQ9JHtrZXl9XWApXG4gICAgICAgICAgICAuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIHRoaXMuc2V0TWF4KGtleSk7XG4gICAgICAgIHRoaXMuaGVhdFBvaW50cy5kYXRhLnB1c2goe1xuICAgICAgICAgIHg6IE1hdGgucm91bmQoZGlhZ3JhbUVsbS54IC0gZGlhZ3JhbUNvbnRhaW5lci54ICsgZGlhZ3JhbUVsbS53aWR0aCAvIDIpLFxuICAgICAgICAgIHk6IE1hdGgucm91bmQoZGlhZ3JhbUVsbS55IC0gZGlhZ3JhbUNvbnRhaW5lci55ICsgZGlhZ3JhbUVsbS5oZWlnaHQgLyAyKSxcbiAgICAgICAgICB2YWx1ZTogdGhpcy5pbnB1dERhdGFba2V5XVt0aGlzLnZhbHVlS2V5XSxcbiAgICAgICAgICByYWRpdXM6IGRpYWdyYW1FbG0ud2lkdGggLyAyXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmFkZENvdW50ZXJBY3RpdmVPdmVybGF5cyhrZXksIHRoaXMuaW5wdXREYXRhKTtcblxuICAgICAgfSk7XG4gICAgICAgIHRoaXMuY2xlYXJIZWF0bWFwKCk7XG4gICAgICBpZiAodGhpcy5zaG93SGVhdG1hcCkge1xuICAgICAgICB0aGlzLmxvYWRIZWF0bWFwKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb25XaW5kb3dSZXNpemUoKSB7XG4gICAgY29uc3Qgb2xkQ2FudmFzID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2NhbnZhc1tjbGFzcz1oZWF0bWFwLWNhbnZhc10nKTtcbiAgICBpZiAob2xkQ2FudmFzKSB7XG4gICAgICBvbGRDYW52YXMucmVtb3ZlKCk7XG4gICAgICB0aGlzLmhlYXRNYXBJbnN0YW5jZSA9IG51bGw7XG4gICAgfVxuICAgIGlmICh0aGlzLnNob3dIZWF0bWFwKSB7XG4gICAgICB0aGlzLmxvYWRIZWF0bWFwKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGxvYWRQcm9jZXNzRGVmaW5pdGlvbkhlYXRtYXBEdXJhdGlvbihwcm9jZXNzRGVmaW5pdGlvbikge1xuICAgIHRoaXMucHJvY2Vzc1NlcnZpY2UuZ2V0UHJvY2Vzc0hlYXRtYXBEdXJhdGlvbihwcm9jZXNzRGVmaW5pdGlvbikuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgIHRoaXMuaW5wdXREYXRhID0gcmVzcG9uc2U7XG4gICAgICB0aGlzLnZhbHVlS2V5ID0gJ2F2ZXJhZ2VEdXJhdGlvbkluTWlsbGlzZWNvbmRzJztcbiAgICAgIHRoaXMuaGVhdFBvaW50cyA9IHtkYXRhOiBbXX07XG4gICAgICB0aGlzLm1pbiA9IDA7XG4gICAgICB0aGlzLm1heCA9IDA7XG5cbiAgICAgIE9iamVjdC5rZXlzKHRoaXMuaW5wdXREYXRhKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgIGNvbnN0IGRpYWdyYW1Db250YWluZXIgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3Rvcignc3ZnJylcbiAgICAgICAgICAgIC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxcbiAgICAgICAgICBkaWFncmFtRWxtID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoYGdbZGF0YS1lbGVtZW50LWlkPSR7a2V5fV1gKVxuICAgICAgICAgICAgLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICB0aGlzLnNldE1heChrZXkpO1xuICAgICAgICB0aGlzLmhlYXRQb2ludHMuZGF0YS5wdXNoKHtcbiAgICAgICAgICB4OiBNYXRoLnJvdW5kKGRpYWdyYW1FbG0ueCAtIGRpYWdyYW1Db250YWluZXIueCArIGRpYWdyYW1FbG0ud2lkdGggLyAyKSxcbiAgICAgICAgICB5OiBNYXRoLnJvdW5kKGRpYWdyYW1FbG0ueSAtIGRpYWdyYW1Db250YWluZXIueSArIGRpYWdyYW1FbG0uaGVpZ2h0IC8gMiksXG4gICAgICAgICAgdmFsdWU6IHRoaXMuaW5wdXREYXRhW2tleV1bdGhpcy52YWx1ZUtleV0sXG4gICAgICAgICAgcmFkaXVzOiBkaWFncmFtRWxtLndpZHRoIC8gMlxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5hZGRDb3VudGVyQWN0aXZlT3ZlcmxheXMoa2V5LCB0aGlzLmlucHV0RGF0YSk7XG4gICAgICB9KTtcbiAgICAgICAgdGhpcy5jbGVhckhlYXRtYXAoKTtcbiAgICAgIGlmICh0aGlzLnNob3dIZWF0bWFwKSB7XG4gICAgICAgIHRoaXMubG9hZEhlYXRtYXAoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRQcm9jZXNzRGVmaW5pdGlvbktleShwcm9jZXNzRGVmaW5pdGlvbktleSkge1xuICAgIHRoaXMucHJvY2Vzc0RlZmluaXRpb25LZXkgPSBwcm9jZXNzRGVmaW5pdGlvbktleTtcbiAgICB0aGlzLmxvYWRQcm9jZXNzRGVmaW5pdGlvbkZyb21LZXkodGhpcy5wcm9jZXNzRGVmaW5pdGlvbktleSk7XG4gIH1cblxuICBwdWJsaWMgc2V0UHJvY2Vzc0RlZmluaXRpb25WZXJzaW9uKHZlcnNpb24pIHtcbiAgICB0aGlzLnZlcnNpb24gPSArdmVyc2lvbjtcbiAgICB0aGlzLmxvYWRIZWF0bWFwRGF0YSgpO1xuICB9XG5cbiAgcHVibGljIHNldEhlYXRtYXBPcHRpb24oaGVhdG1hcE9wdGlvbikge1xuICAgIHRoaXMuaGVhdG1hcE9wdGlvbiA9IGhlYXRtYXBPcHRpb247XG4gICAgdGhpcy5sb2FkSGVhdG1hcERhdGEoKTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVTaG93SGVhdG1hcCgpIHtcbiAgICB0aGlzLnNob3dIZWF0bWFwID0gIXRoaXMuc2hvd0hlYXRtYXA7XG4gICAgdGhpcy5sb2FkSGVhdG1hcERhdGEoKTtcbiAgfVxuXG4gIHB1YmxpYyBsb2FkSGVhdG1hcCgpIHtcbiAgICBpZiAoIXRoaXMuaGVhdE1hcEluc3RhbmNlKSB7XG4gICAgICB0aGlzLmhlYXRNYXBJbnN0YW5jZSA9IGhlYXRtYXAuY3JlYXRlKHtcbiAgICAgICAgcmFkaXVzOiA1NCxcbiAgICAgICAgYmx1cjogLjcwLFxuICAgICAgICBtYXhPcGFjaXR5OiAuNCxcbiAgICAgICAgbWluT3BhY2l0eTogMCxcbiAgICAgICAgY29udGFpbmVyOiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnRcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLmhlYXRNYXBJbnN0YW5jZS5zZXREYXRhKHtcbiAgICAgIG1pbjogdGhpcy5taW4sXG4gICAgICBtYXg6IHRoaXMubWF4LFxuICAgICAgZGF0YTogdGhpcy5oZWF0UG9pbnRzLmRhdGFcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhckhlYXRtYXAoKSB7XG4gICAgaWYgKHRoaXMuaGVhdE1hcEluc3RhbmNlKSB7XG4gICAgICB0aGlzLmhlYXRNYXBJbnN0YW5jZS5zZXREYXRhKHtkYXRhOiBbXX0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBsb2FkSGVhdG1hcERhdGEoKSB7XG4gICAgdGhpcy5wcm9jZXNzRGVmaW5pdGlvbiA9IHRoaXMucHJvY2Vzc0RlZmluaXRpb25WZXJzaW9ucy5maW5kKGRlZmluaXRpb24gPT4gZGVmaW5pdGlvbi52ZXJzaW9uID09PSB0aGlzLnZlcnNpb24pO1xuXG4gICAgaWYgKHRoaXMuaGVhdG1hcE9wdGlvbiA9PT0gJ2NvdW50Jykge1xuICAgICAgdGhpcy5sb2FkUHJvY2Vzc0RlZmluaXRpb25IZWF0bWFwQ291bnQodGhpcy5wcm9jZXNzRGVmaW5pdGlvbik7XG4gICAgfVxuICAgIGlmICh0aGlzLmhlYXRtYXBPcHRpb24gPT09ICdkdXJhdGlvbicpIHtcbiAgICAgIHRoaXMubG9hZFByb2Nlc3NEZWZpbml0aW9uSGVhdG1hcER1cmF0aW9uKHRoaXMucHJvY2Vzc0RlZmluaXRpb24pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRNYXgoa2V5OiBhbnkpIHtcbiAgICBpZiAodGhpcy5oZWF0bWFwRHVyYXRpb24pIHtcbiAgICAgIHRoaXMubWF4ID0gTWF0aC5tYXgodGhpcy5oZWF0bWFwRHVyYXRpb25ba2V5XS5hdmVyYWdlRHVyYXRpb25Jbk1pbGxpc2Vjb25kcywgdGhpcy5tYXgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5oZWF0bWFwQ291bnQpIHtcbiAgICAgIHRoaXMubWF4ID0gTWF0aC5tYXgodGhpcy5oZWF0bWFwQ291bnRba2V5XS50b3RhbENvdW50ICsgdGhpcy5oZWF0bWFwQ291bnRba2V5XS5jb3VudCwgdGhpcy5tYXgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhZGRDb3VudGVyQWN0aXZlT3ZlcmxheXMoa2V5OiBhbnksIGlucHV0RGF0YTogYW55KSB7XG4gICAgY29uc3Qgb3ZlcmxheXMgPSB0aGlzLmJwbW5KUy5nZXQoJ292ZXJsYXlzJyk7XG4gICAgb3ZlcmxheXMuYWRkKGtleSwge1xuICAgICAgcG9zaXRpb246IHtcbiAgICAgICAgYm90dG9tOiAxMyxcbiAgICAgICAgbGVmdDogLTEyXG4gICAgICB9LFxuICAgICAgc2hvdzoge1xuICAgICAgICBtaW5ab29tOiAwLFxuICAgICAgICBtYXhab29tOiA1LjBcbiAgICAgIH0sXG4gICAgICBodG1sOiBgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1waWxsIGJhZGdlLXByaW1hcnlcIj4ke2lucHV0RGF0YVtrZXldLmNvdW50fTwvc3Bhbj5gXG4gICAgfSk7XG4gIH1cblxufVxuIl19
256
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy1kaWFncmFtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJEOi9Xb3Jrc3BhY2UvdmFsdGltby92YWx0aW1vLWZyb250ZW5kLWxpYnJhcmllcy9wcm9qZWN0cy92YWx0aW1vL3Byb2Nlc3Mvc3JjLyIsInNvdXJjZXMiOlsibGliL3Byb2Nlc3MtZGlhZ3JhbS9wcm9jZXNzLWRpYWdyYW0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFJTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFFbEQsT0FBTyxLQUFLLE1BQU0sTUFBTSxzREFBc0QsQ0FBQztBQUMvRSxPQUFPLEtBQUssT0FBTyxNQUFNLG1DQUFtQyxDQUFDO0FBUTdELE1BQU0sT0FBTyx1QkFBdUI7SUF5QmxDLFlBQW9CLGNBQThCO1FBQTlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQXBCakMsZUFBVSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBVzdELHVCQUFrQixHQUFHLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBU0csQ0FBQztJQUV0RCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDN0IsSUFBSSxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1NBQzlEO1FBQ0QsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDMUIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ3JEO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxN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SUFBSSxFQUFFO2dCQUNKLE9BQU8sRUFBRSxDQUFDO2dCQUNWLE9BQU8sRUFBRSxHQUFHO2FBQ2I7WUFDRCxJQUFJLEVBQUUsZ0RBQWdELFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLFNBQVM7U0FDcEYsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7O1lBcFJGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUseUJBQXlCO2dCQUNuQyw2ckdBQStDO2dCQUUvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTs7YUFDdEM7OztZQVZPLGNBQWM7OztpQkFlbkIsU0FBUyxTQUFDLEtBQUssRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7eUJBQy9CLE1BQU07bUNBQ04sS0FBSztnQ0FDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjAgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtQcm9jZXNzU2VydmljZX0gZnJvbSAnLi4vcHJvY2Vzcy5zZXJ2aWNlJztcblxuaW1wb3J0ICogYXMgQnBtbkpTIGZyb20gJ2JwbW4tanMvZGlzdC9icG1uLW5hdmlnYXRlZC12aWV3ZXIucHJvZHVjdGlvbi5taW4uanMnO1xuaW1wb3J0ICogYXMgaGVhdG1hcCBmcm9tICdoZWF0bWFwLmpzLWZpeGVkL2J1aWxkL2hlYXRtYXAuanMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLXByb2Nlc3MtZGlhZ3JhbScsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9jZXNzLWRpYWdyYW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wcm9jZXNzLWRpYWdyYW0uY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgUHJvY2Vzc0RpYWdyYW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgcHJpdmF0ZSBicG1uSlM6IEJwbW5KUztcbiAgcHJpdmF0ZSBoZWF0TWFwSW5zdGFuY2U6IGFueTtcblxuICBAVmlld0NoaWxkKCdyZWYnLCB7c3RhdGljOiB0cnVlfSkgcHVibGljIGVsOiBFbGVtZW50UmVmO1xuICBAT3V0cHV0KCkgcHVibGljIGltcG9ydERvbmU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBASW5wdXQoKSBwdWJsaWMgcHJvY2Vzc0RlZmluaXRpb25LZXk/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBwcm9jZXNzSW5zdGFuY2VJZD86IHN0cmluZztcblxuICBwdWJsaWMgcHJvY2Vzc0RpYWdyYW06IGFueTtcbiAgcHVibGljIHByb2Nlc3NEZWZpbml0aW9uOiBhbnk7XG4gIHB1YmxpYyBwcm9jZXNzRGVmaW5pdGlvblZlcnNpb25zOiBhbnk7XG4gIHB1YmxpYyBoZWF0bWFwQ291bnQ6IGFueTtcbiAgcHVibGljIGhlYXRtYXBEdXJhdGlvbjogYW55O1xuICBwdWJsaWMgdGFza3NDb3VudDogYW55O1xuICBwdWJsaWMgc2hvd0hlYXRtYXA6IGJvb2xlYW47XG4gIHB1YmxpYyBlbnVtSGVhdG1hcE9wdGlvbnMgPSBbJ2NvdW50JywgJ2R1cmF0aW9uJ107XG4gIHB1YmxpYyBoZWF0bWFwT3B0aW9uOiBzdHJpbmc7XG4gIHB1YmxpYyB2ZXJzaW9uOiBhbnk7XG4gIHB1YmxpYyBoZWF0UG9pbnRzOiBhbnk7XG4gIHB1YmxpYyBtaW46IG51bWJlcjtcbiAgcHVibGljIG1heDogbnVtYmVyO1xuICBwdWJsaWMgaW5wdXREYXRhOiBhbnk7XG4gIHB1YmxpYyB2YWx1ZUtleTogYW55O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcHJvY2Vzc1NlcnZpY2U6IFByb2Nlc3NTZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLnByb2Nlc3NEZWZpbml0aW9uS2V5KSB7XG4gICAgICB0aGlzLmxvYWRQcm9jZXNzRGVmaW5pdGlvbkZyb21LZXkodGhpcy5wcm9jZXNzRGVmaW5pdGlvbktleSk7XG4gICAgfVxuICAgIGlmICh0aGlzLnByb2Nlc3NJbnN0YW5jZUlkKSB7XG4gICAgICB0aGlzLmxvYWRQcm9jZXNzSW5zdGFuY2VYbWwodGhpcy5wcm9jZXNzSW5zdGFuY2VJZCk7XG4gICAgfVxuICAgIHRoaXMuYnBtbkpTID0gbmV3IEJwbW5KUygpO1xuICAgIHRoaXMuYnBtbkpTLm9uKCdpbXBvcnQuZG9uZScsICh7ZXJyb3J9KSA9PiB7XG4gICAgICBpZiAoIWVycm9yKSB7XG4gICAgICAgIGNvbnN0IGNhbnZhcyA9IHRoaXMuYnBtbkpTLmdldCgnY2FudmFzJyksXG4gICAgICAgICAgZXZlbnRCdXMgPSB0aGlzLmJwbW5KUy5nZXQoJ2V2ZW50QnVzJyk7XG4gICAgICAgIGlmICh0aGlzLnByb2Nlc3NEaWFncmFtLmhpc3RvcmljQWN0aXZpdHlJbnN0YW5jZXMpIHtcbiAgICAgICAgICB0aGlzLnByb2Nlc3NEaWFncmFtLmhpc3RvcmljQWN0aXZpdHlJbnN0YW5jZXMuZm9yRWFjaChpbnN0YW5jZSA9PiB7XG4gICAgICAgICAgICAvLyBleGNsdWRlIG11bHRpSW5zdGFuY2VCb2R5XG4gICAgICAgICAgICBpZiAoaW5zdGFuY2UuYWN0aXZpdHlUeXBlICE9PSAnbXVsdGlJbnN0YW5jZUJvZHknKSB7XG4gICAgICAgICAgICAgIGNhbnZhcy5hZGRNYXJrZXIoXG4gICAgICAgICAgICAgICAgaW5zdGFuY2UuYWN0aXZpdHlJZCxcbiAgICAgICAgICAgICAgICBpbnN0YW5jZS5lbmRUaW1lID8gJ2hpZ2hsaWdodC1vdmVybGF5LXBhc3QnIDogJ2hpZ2hsaWdodC1vdmVybGF5LWN1cnJlbnQnXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjYW52YXMuem9vbSgnZml0LXZpZXdwb3J0JywgJ2F1dG8nKTtcbiAgICAgICAgaWYgKHRoaXMucHJvY2Vzc0RlZmluaXRpb25WZXJzaW9ucykge1xuICAgICAgICAgIGV2ZW50QnVzLm9uKCdjYW52YXMuaW5pdCcsICgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnNob3dIZWF0bWFwKSB7XG4gICAgICAgICAgICAgIHRoaXMuY2xlYXJIZWF0bWFwKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmxvYWRIZWF0bWFwRGF0YSgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGV2ZW50QnVzLm9uKCdjYW52YXMudmlld2JveC5jaGFuZ2luZycsICgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnNob3dIZWF0bWFwKSB7XG4gICAgICAgICAgICAgIHRoaXMuY2xlYXJIZWF0bWFwKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgZXZlbnRCdXMub24oJ2NhbnZhcy52aWV3Ym94LmNoYW5nZWQnLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmxvYWRIZWF0bWFwRGF0YSgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcm9jZXNzRGVmaW5pdGlvbktleSkge1xuICAgICAgdGhpcy5sb2FkUHJvY2Vzc0RlZmluaXRpb25Gcm9tS2V5KHRoaXMucHJvY2Vzc0RlZmluaXRpb25LZXkpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5wcm9jZXNzSW5zdGFuY2VJZCkge1xuICAgICAgdGhpcy5sb2FkUHJvY2Vzc0luc3RhbmNlWG1sKHRoaXMucHJvY2Vzc0luc3RhbmNlSWQpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLmJwbW5KUykge1xuICAgICAgdGhpcy5icG1uSlMuZGVzdHJveSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBsb2FkUHJvY2Vzc0RlZmluaXRpb24ocHJvY2Vzc0RlZmluaXRpb25LZXkpIHtcbiAgICB0aGlzLnByb2Nlc3NTZXJ2aWNlLmdldFByb2Nlc3NEZWZpbml0aW9uKHByb2Nlc3NEZWZpbml0aW9uS2V5KS5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xuICAgICAgdGhpcy5oZWF0bWFwT3B0aW9uID0gdGhpcy5lbnVtSGVhdG1hcE9wdGlvbnNbMF07XG4gICAgICB0aGlzLnZlcnNpb24gPSByZXNwb25zZS52ZXJzaW9uO1xuICAgICAgdGhpcy5sb2FkUHJvY2Vzc0RlZmluaXRpb25YbWwocmVzcG9uc2UuaWQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGxvYWRQcm9jZXNzRGVmaW5pdGlvblZlcnNpb25zKHByb2Nlc3NEZWZpbml0aW9uS2V5KSB7XG4gICAgdGhpcy5wcm9jZXNzU2VydmljZS5nZXRQcm9jZXNzRGVmaW5pdGlvblZlcnNpb25zKHByb2Nlc3NEZWZpbml0aW9uS2V5KS5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xuICAgICAgdGhpcy5wcm9jZXNzRGVmaW5pdGlvblZlcnNpb25zID0gcmVzcG9uc2U7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbG9hZFByb2Nlc3NEZWZpbml0aW9uRnJvbUtleShwcm9jZXNzRGVmaW5pdGlvbktleSkge1xuICAgIHRoaXMubG9hZFByb2Nlc3NEZWZpbml0aW9uVmVyc2lvbnMocHJvY2Vzc0RlZmluaXRpb25LZXkpO1xuICAgIHRoaXMubG9hZFByb2Nlc3NEZWZpbml0aW9uKHByb2Nlc3NEZWZpbml0aW9uS2V5KTtcbiAgfVxuXG4gIHB1YmxpYyBsb2FkUHJvY2Vzc0RlZmluaXRpb25YbWwocHJvY2Vzc0RlZmluaXRpb25JZCkge1xuICAgIHRoaXMucHJvY2Vzc1NlcnZpY2UuZ2V0UHJvY2Vzc0RlZmluaXRpb25YbWwocHJvY2Vzc0RlZmluaXRpb25JZCkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgIHRoaXMucHJvY2Vzc0RpYWdyYW0gPSByZXNwb25zZTtcbiAgICAgIHRoaXMuYnBtbkpTLmltcG9ydFhNTCh0aGlzLnByb2Nlc3NEaWFncmFtLmJwbW4yMFhtbCk7XG4gICAgICB0aGlzLmJwbW5KUy5hdHRhY2hUbyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkUHJvY2Vzc0luc3RhbmNlWG1sKHByb2Nlc3NJbnN0YW5jZUlkKSB7XG4gICAgdGhpcy5wcm9jZXNzU2VydmljZS5nZXRQcm9jZXNzWG1sKHByb2Nlc3NJbnN0YW5jZUlkKS5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xuICAgICAgdGhpcy5wcm9jZXNzRGlhZ3JhbSA9IHJlc3BvbnNlO1xuICAgICAgdGhpcy5icG1uSlMuaW1wb3J0WE1MKHRoaXMucHJvY2Vzc0RpYWdyYW0uYnBtbjIwWG1sKTtcbiAgICAgIHRoaXMuYnBtbkpTLmF0dGFjaFRvKHRoaXMuZWwubmF0aXZlRWxlbWVudCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbG9hZFByb2Nlc3NEZWZpbml0aW9uSGVhdG1hcENvdW50KHByb2Nlc3NEZWZpbml0aW9uKSB7XG4gICAgdGhpcy5wcm9jZXNzU2VydmljZS5nZXRQcm9jZXNzSGVhdG1hcENvdW50KHByb2Nlc3NEZWZpbml0aW9uKS5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xuICAgICAgdGhpcy5pbnB1dERhdGEgPSByZXNwb25zZTtcbiAgICAgIHRoaXMudmFsdWVLZXkgPSAndG90YWxDb3VudCc7XG4gICAgICB0aGlzLmhlYXRQb2ludHMgPSB7ZGF0YTogW119O1xuICAgICAgdGhpcy5taW4gPSAwO1xuICAgICAgdGhpcy5tYXggPSAwO1xuXG4gICAgICBPYmplY3Qua2V5cyh0aGlzLmlucHV0RGF0YSkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICBjb25zdCBkaWFncmFtQ29udGFpbmVyID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ3N2ZycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFxuICAgICAgICAgIGRpYWdyYW1FbG0gPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgICAgIC5xdWVyeVNlbGVjdG9yKGBnW2RhdGEtZWxlbWVudC1pZD0ke2tleX1dYClcbiAgICAgICAgICAgIC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgdGhpcy5zZXRNYXgoa2V5KTtcbiAgICAgICAgdGhpcy5oZWF0UG9pbnRzLmRhdGEucHVzaCh7XG4gICAgICAgICAgeDogTWF0aC5yb3VuZChkaWFncmFtRWxtLnggLSBkaWFncmFtQ29udGFpbmVyLnggKyBkaWFncmFtRWxtLndpZHRoIC8gMiksXG4gICAgICAgICAgeTogTWF0aC5yb3VuZChkaWFncmFtRWxtLnkgLSBkaWFncmFtQ29udGFpbmVyLnkgKyBkaWFncmFtRWxtLmhlaWdodCAvIDIpLFxuICAgICAgICAgIHZhbHVlOiB0aGlzLmlucHV0RGF0YVtrZXldW3RoaXMudmFsdWVLZXldLFxuICAgICAgICAgIHJhZGl1czogZGlhZ3JhbUVsbS53aWR0aCAvIDIsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmFkZENvdW50ZXJBY3RpdmVPdmVybGF5cyhrZXksIHRoaXMuaW5wdXREYXRhKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5jbGVhckhlYXRtYXAoKTtcbiAgICAgIGlmICh0aGlzLnNob3dIZWF0bWFwKSB7XG4gICAgICAgIHRoaXMubG9hZEhlYXRtYXAoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvbldpbmRvd1Jlc2l6ZSgpIHtcbiAgICBjb25zdCBvbGRDYW52YXMgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignY2FudmFzW2NsYXNzPWhlYXRtYXAtY2FudmFzXScpO1xuICAgIGlmIChvbGRDYW52YXMpIHtcbiAgICAgIG9sZENhbnZhcy5yZW1vdmUoKTtcbiAgICAgIHRoaXMuaGVhdE1hcEluc3RhbmNlID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKHRoaXMuc2hvd0hlYXRtYXApIHtcbiAgICAgIHRoaXMubG9hZEhlYXRtYXAoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbG9hZFByb2Nlc3NEZWZpbml0aW9uSGVhdG1hcER1cmF0aW9uKHByb2Nlc3NEZWZpbml0aW9uKSB7XG4gICAgdGhpcy5wcm9jZXNzU2VydmljZS5nZXRQcm9jZXNzSGVhdG1hcER1cmF0aW9uKHByb2Nlc3NEZWZpbml0aW9uKS5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xuICAgICAgdGhpcy5pbnB1dERhdGEgPSByZXNwb25zZTtcbiAgICAgIHRoaXMudmFsdWVLZXkgPSAnYXZlcmFnZUR1cmF0aW9uSW5NaWxsaXNlY29uZHMnO1xuICAgICAgdGhpcy5oZWF0UG9pbnRzID0ge2RhdGE6IFtdfTtcbiAgICAgIHRoaXMubWluID0gMDtcbiAgICAgIHRoaXMubWF4ID0gMDtcblxuICAgICAgT2JqZWN0LmtleXModGhpcy5pbnB1dERhdGEpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgY29uc3QgZGlhZ3JhbUNvbnRhaW5lciA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdzdmcnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxcbiAgICAgICAgICBkaWFncmFtRWxtID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50XG4gICAgICAgICAgICAucXVlcnlTZWxlY3RvcihgZ1tkYXRhLWVsZW1lbnQtaWQ9JHtrZXl9XWApXG4gICAgICAgICAgICAuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIHRoaXMuc2V0TWF4KGtleSk7XG4gICAgICAgIHRoaXMuaGVhdFBvaW50cy5kYXRhLnB1c2goe1xuICAgICAgICAgIHg6IE1hdGgucm91bmQoZGlhZ3JhbUVsbS54IC0gZGlhZ3JhbUNvbnRhaW5lci54ICsgZGlhZ3JhbUVsbS53aWR0aCAvIDIpLFxuICAgICAgICAgIHk6IE1hdGgucm91bmQoZGlhZ3JhbUVsbS55IC0gZGlhZ3JhbUNvbnRhaW5lci55ICsgZGlhZ3JhbUVsbS5oZWlnaHQgLyAyKSxcbiAgICAgICAgICB2YWx1ZTogdGhpcy5pbnB1dERhdGFba2V5XVt0aGlzLnZhbHVlS2V5XSxcbiAgICAgICAgICByYWRpdXM6IGRpYWdyYW1FbG0ud2lkdGggLyAyLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5hZGRDb3VudGVyQWN0aXZlT3ZlcmxheXMoa2V5LCB0aGlzLmlucHV0RGF0YSk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuY2xlYXJIZWF0bWFwKCk7XG4gICAgICBpZiAodGhpcy5zaG93SGVhdG1hcCkge1xuICAgICAgICB0aGlzLmxvYWRIZWF0bWFwKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc2V0UHJvY2Vzc0RlZmluaXRpb25LZXkocHJvY2Vzc0RlZmluaXRpb25LZXkpIHtcbiAgICB0aGlzLnByb2Nlc3NEZWZpbml0aW9uS2V5ID0gcHJvY2Vzc0RlZmluaXRpb25LZXk7XG4gICAgdGhpcy5sb2FkUHJvY2Vzc0RlZmluaXRpb25Gcm9tS2V5KHRoaXMucHJvY2Vzc0RlZmluaXRpb25LZXkpO1xuICB9XG5cbiAgcHVibGljIHNldFByb2Nlc3NEZWZpbml0aW9uVmVyc2lvbih2ZXJzaW9uKSB7XG4gICAgdGhpcy52ZXJzaW9uID0gK3ZlcnNpb247XG4gICAgdGhpcy5sb2FkSGVhdG1hcERhdGEoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRIZWF0bWFwT3B0aW9uKGhlYXRtYXBPcHRpb24pIHtcbiAgICB0aGlzLmhlYXRtYXBPcHRpb24gPSBoZWF0bWFwT3B0aW9uO1xuICAgIHRoaXMubG9hZEhlYXRtYXBEYXRhKCk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlU2hvd0hlYXRtYXAoKSB7XG4gICAgdGhpcy5zaG93SGVhdG1hcCA9ICF0aGlzLnNob3dIZWF0bWFwO1xuICAgIHRoaXMubG9hZEhlYXRtYXBEYXRhKCk7XG4gIH1cblxuICBwdWJsaWMgbG9hZEhlYXRtYXAoKSB7XG4gICAgaWYgKCF0aGlzLmhlYXRNYXBJbnN0YW5jZSkge1xuICAgICAgdGhpcy5oZWF0TWFwSW5zdGFuY2UgPSBoZWF0bWFwLmNyZWF0ZSh7XG4gICAgICAgIHJhZGl1czogNTQsXG4gICAgICAgIGJsdXI6IDAuNyxcbiAgICAgICAgbWF4T3BhY2l0eTogMC40LFxuICAgICAgICBtaW5PcGFjaXR5OiAwLFxuICAgICAgICBjb250YWluZXI6IHRoaXMuZWwubmF0aXZlRWxlbWVudCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLmhlYXRNYXBJbnN0YW5jZS5zZXREYXRhKHtcbiAgICAgIG1pbjogdGhpcy5taW4sXG4gICAgICBtYXg6IHRoaXMubWF4LFxuICAgICAgZGF0YTogdGhpcy5oZWF0UG9pbnRzLmRhdGEsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgY2xlYXJIZWF0bWFwKCkge1xuICAgIGlmICh0aGlzLmhlYXRNYXBJbnN0YW5jZSkge1xuICAgICAgdGhpcy5oZWF0TWFwSW5zdGFuY2Uuc2V0RGF0YSh7ZGF0YTogW119KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbG9hZEhlYXRtYXBEYXRhKCkge1xuICAgIHRoaXMucHJvY2Vzc0RlZmluaXRpb24gPSB0aGlzLnByb2Nlc3NEZWZpbml0aW9uVmVyc2lvbnMuZmluZChcbiAgICAgIGRlZmluaXRpb24gPT4gZGVmaW5pdGlvbi52ZXJzaW9uID09PSB0aGlzLnZlcnNpb25cbiAgICApO1xuXG4gICAgaWYgKHRoaXMuaGVhdG1hcE9wdGlvbiA9PT0gJ2NvdW50Jykge1xuICAgICAgdGhpcy5sb2FkUHJvY2Vzc0RlZmluaXRpb25IZWF0bWFwQ291bnQodGhpcy5wcm9jZXNzRGVmaW5pdGlvbik7XG4gICAgfVxuICAgIGlmICh0aGlzLmhlYXRtYXBPcHRpb24gPT09ICdkdXJhdGlvbicpIHtcbiAgICAgIHRoaXMubG9hZFByb2Nlc3NEZWZpbml0aW9uSGVhdG1hcER1cmF0aW9uKHRoaXMucHJvY2Vzc0RlZmluaXRpb24pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRNYXgoa2V5OiBhbnkpIHtcbiAgICBpZiAodGhpcy5oZWF0bWFwRHVyYXRpb24pIHtcbiAgICAgIHRoaXMubWF4ID0gTWF0aC5tYXgodGhpcy5oZWF0bWFwRHVyYXRpb25ba2V5XS5hdmVyYWdlRHVyYXRpb25Jbk1pbGxpc2Vjb25kcywgdGhpcy5tYXgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5oZWF0bWFwQ291bnQpIHtcbiAgICAgIHRoaXMubWF4ID0gTWF0aC5tYXgoXG4gICAgICAgIHRoaXMuaGVhdG1hcENvdW50W2tleV0udG90YWxDb3VudCArIHRoaXMuaGVhdG1hcENvdW50W2tleV0uY291bnQsXG4gICAgICAgIHRoaXMubWF4XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhZGRDb3VudGVyQWN0aXZlT3ZlcmxheXMoa2V5OiBhbnksIGlucHV0RGF0YTogYW55KSB7XG4gICAgY29uc3Qgb3ZlcmxheXMgPSB0aGlzLmJwbW5KUy5nZXQoJ292ZXJsYXlzJyk7XG4gICAgb3ZlcmxheXMuYWRkKGtleSwge1xuICAgICAgcG9zaXRpb246IHtcbiAgICAgICAgYm90dG9tOiAxMyxcbiAgICAgICAgbGVmdDogLTEyLFxuICAgICAgfSxcbiAgICAgIHNob3c6IHtcbiAgICAgICAgbWluWm9vbTogMCxcbiAgICAgICAgbWF4Wm9vbTogNS4wLFxuICAgICAgfSxcbiAgICAgIGh0bWw6IGA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLXBpbGwgYmFkZ2UtcHJpbWFyeVwiPiR7aW5wdXREYXRhW2tleV0uY291bnR9PC9zcGFuPmAsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -15,7 +15,7 @@
15
15
  */
16
16
  import { NgModule } from '@angular/core';
17
17
  import { CommonModule } from '@angular/common';
18
- import { BpmnJsDiagramModule, CamundaFormModule, ListModule, TimelineModule, WidgetModule } from '@valtimo/components';
18
+ import { BpmnJsDiagramModule, CamundaFormModule, ListModule, TimelineModule, WidgetModule, } from '@valtimo/components';
19
19
  import { ToastrModule } from 'ngx-toastr';
20
20
  import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
21
21
  import { ProcessDiagramComponent } from './process-diagram/process-diagram.component';
@@ -23,9 +23,7 @@ export class ProcessModule {
23
23
  }
24
24
  ProcessModule.decorators = [
25
25
  { type: NgModule, args: [{
26
- declarations: [
27
- ProcessDiagramComponent
28
- ],
26
+ declarations: [ProcessDiagramComponent],
29
27
  imports: [
30
28
  CommonModule,
31
29
  ListModule,
@@ -36,12 +34,10 @@ ProcessModule.decorators = [
36
34
  BrowserAnimationsModule,
37
35
  ToastrModule.forRoot({
38
36
  positionClass: 'toast-bottom-full-width',
39
- preventDuplicates: true
40
- })
41
- ],
42
- exports: [
43
- ProcessDiagramComponent
37
+ preventDuplicates: true,
38
+ }),
44
39
  ],
40
+ exports: [ProcessDiagramComponent],
45
41
  },] }
46
42
  ];
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL3Byb2Nlc3Mvc3JjL2xpYi9wcm9jZXNzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3JILE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFDeEMsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDN0UsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUF3QnBGLE1BQU0sT0FBTyxhQUFhOzs7WUF0QnpCLFFBQVEsU0FBQztnQkFDUixZQUFZLEVBQUU7b0JBQ1osdUJBQXVCO2lCQUN4QjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixVQUFVO29CQUNWLFlBQVk7b0JBQ1osY0FBYztvQkFDZCxtQkFBbUI7b0JBQ25CLGlCQUFpQjtvQkFDakIsdUJBQXVCO29CQUN2QixZQUFZLENBQUMsT0FBTyxDQUFDO3dCQUNuQixhQUFhLEVBQUUseUJBQXlCO3dCQUN4QyxpQkFBaUIsRUFBRSxJQUFJO3FCQUN4QixDQUFDO2lCQUNIO2dCQUNELE9BQU8sRUFBRTtvQkFDUCx1QkFBdUI7aUJBQ3hCO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtCcG1uSnNEaWFncmFtTW9kdWxlLCBDYW11bmRhRm9ybU1vZHVsZSwgTGlzdE1vZHVsZSwgVGltZWxpbmVNb2R1bGUsIFdpZGdldE1vZHVsZX0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge1RvYXN0ck1vZHVsZX0gZnJvbSAnbmd4LXRvYXN0cic7XG5pbXBvcnQge0Jyb3dzZXJBbmltYXRpb25zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtQcm9jZXNzRGlhZ3JhbUNvbXBvbmVudH0gZnJvbSAnLi9wcm9jZXNzLWRpYWdyYW0vcHJvY2Vzcy1kaWFncmFtLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFByb2Nlc3NEaWFncmFtQ29tcG9uZW50XG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTGlzdE1vZHVsZSxcbiAgICBXaWRnZXRNb2R1bGUsXG4gICAgVGltZWxpbmVNb2R1bGUsXG4gICAgQnBtbkpzRGlhZ3JhbU1vZHVsZSxcbiAgICBDYW11bmRhRm9ybU1vZHVsZSxcbiAgICBCcm93c2VyQW5pbWF0aW9uc01vZHVsZSxcbiAgICBUb2FzdHJNb2R1bGUuZm9yUm9vdCh7XG4gICAgICBwb3NpdGlvbkNsYXNzOiAndG9hc3QtYm90dG9tLWZ1bGwtd2lkdGgnLFxuICAgICAgcHJldmVudER1cGxpY2F0ZXM6IHRydWVcbiAgICB9KVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgUHJvY2Vzc0RpYWdyYW1Db21wb25lbnRcbiAgXSxcbn0pXG5cbmV4cG9ydCBjbGFzcyBQcm9jZXNzTW9kdWxlIHtcblxufVxuIl19
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiRDovV29ya3NwYWNlL3ZhbHRpbW8vdmFsdGltby1mcm9udGVuZC1saWJyYXJpZXMvcHJvamVjdHMvdmFsdGltby9wcm9jZXNzL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9wcm9jZXNzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixjQUFjLEVBQ2QsWUFBWSxHQUNiLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLFlBQVksQ0FBQztBQUN4QyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQztBQW1CcEYsTUFBTSxPQUFPLGFBQWE7OztZQWpCekIsUUFBUSxTQUFDO2dCQUNSLFlBQVksRUFBRSxDQUFDLHVCQUF1QixDQUFDO2dCQUN2QyxPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixVQUFVO29CQUNWLFlBQVk7b0JBQ1osY0FBYztvQkFDZCxtQkFBbUI7b0JBQ25CLGlCQUFpQjtvQkFDakIsdUJBQXVCO29CQUN2QixZQUFZLENBQUMsT0FBTyxDQUFDO3dCQUNuQixhQUFhLEVBQUUseUJBQXlCO3dCQUN4QyxpQkFBaUIsRUFBRSxJQUFJO3FCQUN4QixDQUFDO2lCQUNIO2dCQUNELE9BQU8sRUFBRSxDQUFDLHVCQUF1QixDQUFDO2FBQ25DIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjAgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEJwbW5Kc0RpYWdyYW1Nb2R1bGUsXG4gIENhbXVuZGFGb3JtTW9kdWxlLFxuICBMaXN0TW9kdWxlLFxuICBUaW1lbGluZU1vZHVsZSxcbiAgV2lkZ2V0TW9kdWxlLFxufSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7VG9hc3RyTW9kdWxlfSBmcm9tICduZ3gtdG9hc3RyJztcbmltcG9ydCB7QnJvd3NlckFuaW1hdGlvbnNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQge1Byb2Nlc3NEaWFncmFtQ29tcG9uZW50fSBmcm9tICcuL3Byb2Nlc3MtZGlhZ3JhbS9wcm9jZXNzLWRpYWdyYW0uY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbUHJvY2Vzc0RpYWdyYW1Db21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIExpc3RNb2R1bGUsXG4gICAgV2lkZ2V0TW9kdWxlLFxuICAgIFRpbWVsaW5lTW9kdWxlLFxuICAgIEJwbW5Kc0RpYWdyYW1Nb2R1bGUsXG4gICAgQ2FtdW5kYUZvcm1Nb2R1bGUsXG4gICAgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUsXG4gICAgVG9hc3RyTW9kdWxlLmZvclJvb3Qoe1xuICAgICAgcG9zaXRpb25DbGFzczogJ3RvYXN0LWJvdHRvbS1mdWxsLXdpZHRoJyxcbiAgICAgIHByZXZlbnREdXBsaWNhdGVzOiB0cnVlLFxuICAgIH0pLFxuICBdLFxuICBleHBvcnRzOiBbUHJvY2Vzc0RpYWdyYW1Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9jZXNzTW9kdWxlIHt9XG4iXX0=
@@ -47,8 +47,8 @@ export class ProcessService {
47
47
  }
48
48
  getProcessCount(id) {
49
49
  return this.http.post(`${this.valtimoEndpointUri}v2/process/definition/${id}/count`, {
50
- 'key': id,
51
- 'processVariables': [{ '@type': 'boolean', 'name': 'active', 'value': true }]
50
+ key: id,
51
+ processVariables: [{ '@type': 'boolean', name: 'active', value: true }],
52
52
  });
53
53
  }
54
54
  getProcessHeatmapCount(processDefinition) {
@@ -62,7 +62,7 @@ export class ProcessService {
62
62
  .set('page', page.toString())
63
63
  .set('size', size.toString())
64
64
  .set('sort', sort);
65
- return this.http.post(`${this.valtimoEndpointUri}v2/process/${key}/search`, {}, { 'params': params });
65
+ return this.http.post(`${this.valtimoEndpointUri}v2/process/${key}/search`, {}, { params: params });
66
66
  }
67
67
  getProcessInstance(processInstanceId) {
68
68
  return this.http.get(`${this.valtimoEndpointUri}process/${processInstanceId}`, {});
@@ -97,10 +97,12 @@ export class ProcessService {
97
97
  params.set('fromDate', fromDate);
98
98
  params.set('toDate', toDate);
99
99
  params.set('processFilter', processFilter);
100
- return this.http.get(`${this.valtimoEndpointUri}reporting/instancesstatistics`, { 'params': params });
100
+ return this.http.get(`${this.valtimoEndpointUri}reporting/instancesstatistics`, {
101
+ params: params,
102
+ });
101
103
  }
102
104
  deployProcess(processXml) {
103
- const formData = new FormData;
105
+ const formData = new FormData();
104
106
  formData.append('file', new File([processXml], 'process.bpmn'));
105
107
  formData.append('deployment-name', 'valtimoConsoleApp');
106
108
  formData.append('deployment-source', 'process application');
@@ -113,11 +115,11 @@ export class ProcessService {
113
115
  ProcessService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ProcessService_Factory() { return new ProcessService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.ConfigService)); }, token: ProcessService, providedIn: "root" });
114
116
  ProcessService.decorators = [
115
117
  { type: Injectable, args: [{
116
- providedIn: 'root'
118
+ providedIn: 'root',
117
119
  },] }
118
120
  ];
119
121
  ProcessService.ctorParameters = () => [
120
122
  { type: HttpClient },
121
123
  { type: ConfigService }
122
124
  ];
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9wcm9jZXNzL3NyYy9saWIvcHJvY2Vzcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsVUFBVSxFQUFFLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRzVELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQUs5QyxNQUFNLE9BQU8sY0FBYztJQUd6QixZQUNVLElBQWdCLEVBQ3hCLGFBQTRCO1FBRHBCLFNBQUksR0FBSixJQUFJLENBQVk7UUFHeEIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQztJQUN4RSxDQUFDO0lBRUQscUJBQXFCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQXNCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixvQkFBb0IsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFFRCw0QkFBNEIsQ0FBQyxHQUFXO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQXNCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixzQkFBc0IsR0FBRyxXQUFXLENBQUMsQ0FBQztJQUM1RyxDQUFDO0lBRUQsb0JBQW9CLENBQUMsR0FBVztRQUM5QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFvQixHQUFHLElBQUksQ0FBQyxrQkFBa0Isc0JBQXNCLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDakcsQ0FBQztJQUVELGlDQUFpQyxDQUFDLG9CQUE0QjtRQUM1RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUE2QixHQUFH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QkFBa0IsK0JBQStCLEVBQUUsRUFBQyxRQUFRLEVBQUUsTUFBTSxFQUFDLENBQzlFLENBQUM7SUFDSixDQUFDO0lBRUQsYUFBYSxDQUFDLFVBQWtCO1FBQzlCLE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxDQUFDO1FBQzlCLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQztRQUNoRSxRQUFRLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFDeEQsUUFBUSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO1FBQzVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLCtDQUErQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzdHLENBQUM7SUFFRCxjQUFjLENBQUMsb0JBQTRCLEVBQUUsb0JBQTRCLEVBQUUsTUFBVztRQUNwRixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixzQkFBc0Isb0JBQW9CLElBQUksb0JBQW9CLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN4SSxDQUFDOzs7O1lBNUhGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBUE8sVUFBVTtZQUdWLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtIdHRwQ2xpZW50LCBIdHRwUGFyYW1zfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtQcm9jZXNzRGVmaW5pdGlvbiwgUHJvY2Vzc0RlZmluaXRpb25TdGFydEZvcm0sIFByb2Nlc3NJbnN0YW5jZSwgUHJvY2Vzc0luc3RhbmNlVGFzaywgUHJvY2Vzc1N0YXJ0fSBmcm9tICdAdmFsdGltby9jb250cmFjdCc7XG5pbXBvcnQge0NvbmZpZ1NlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2NvbmZpZyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFByb2Nlc3NTZXJ2aWNlIHtcbiAgcHJpdmF0ZSB2YWx0aW1vRW5kcG9pbnRVcmk6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZVxuICApIHtcbiAgICB0aGlzLnZhbHRpbW9FbmRwb2ludFVyaSA9IGNvbmZpZ1NlcnZpY2UuY29uZmlnLnZhbHRpbW9BcGkuZW5kcG9pbnRVcmk7XG4gIH1cblxuICBnZXRQcm9jZXNzRGVmaW5pdGlvbnMoKTogT2JzZXJ2YWJsZTxQcm9jZXNzRGVmaW5pdGlvbltdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8UHJvY2Vzc0RlZmluaXRpb25bXT4oYCR7dGhpcy52YWx0aW1vRW5kcG9pbnRVcml9cHJvY2Vzcy9kZWZpbml0aW9uYCk7XG4gIH1cblxuICBnZXRQcm9jZXNzRGVmaW5pdGlvblZlcnNpb25zKGtleTogc3RyaW5nKTogT2JzZXJ2YWJsZTxQcm9jZXNzRGVmaW5pdGlvbltdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8UHJvY2Vzc0RlZmluaXRpb25bXT4oYCR7dGhpcy52YWx0aW1vRW5kcG9pbnRVcml9cHJvY2Vzcy9kZWZpbml0aW9uLyR7a2V5fS92ZXJzaW9uc2ApO1xuICB9XG5cbiAgZ2V0UHJvY2Vzc0RlZmluaXRpb24oa2V5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPFByb2Nlc3NEZWZpbml0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8UHJvY2Vzc0RlZmluaXRpb24+KGAke3RoaXMudmFsdGltb0VuZHBvaW50VXJpfXByb2Nlc3MvZGVmaW5pdGlvbi8ke2tleX1gKTtcbiAgfVxuXG4gIGdldFByb2Nlc3NEZWZpbml0aW9uU3RhcnRGb3JtRGF0YShwcm9jZXNzRGVmaW5pdGlvbktleTogc3RyaW5nKTogT2JzZXJ2YWJsZTxQcm9jZXNzRGVmaW5pdGlvblN0YXJ0Rm9ybT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFByb2Nlc3NEZWZpbml0aW9uU3RhcnRGb3JtPihgJHt0aGlzLnZhbHRpbW9FbmRwb2ludFVyaX1wcm9jZXNzL2RlZmluaXRpb24vJHtwcm9jZXNzRGVmaW5pdGlvbktleX0vc3RhcnQtZm9ybWApO1xuICB9XG5cbiAgc3RhcnRQcm9jZXNJbnN0YW5jZShrZXk6IHN0cmluZywgYnVzaW5lc3NLZXk6IHN0cmluZywgdmFyaWFibGVzOiBNYXA8c3RyaW5nLCBhbnk+KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8UHJvY2Vzc1N0YXJ0PihcbiAgICAgIGAke3RoaXMudmFsdGltb0VuZHBvaW50VXJpfXByb2Nlc3MvZGVmaW5pdGlvbi8ke2tleX0vJHtidXNpbmVzc0tleX0vc3RhcnRgLCB2YXJpYWJsZXNcbiAgICApO1xuICB9XG5cbiAgZ2V0UHJvY2Vzc0RlZmluaXRpb25YbWwocHJvY2Vzc0RlZmluaXRpb25JZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnZhbHRpbW9FbmRwb2ludFVyaX1wcm9jZXNzL2RlZmluaXRpb24vJHtwcm9jZXNzRGVmaW5pdGlvbklkfS94bWxgKTtcbiAgfVxuXG4gIGdldFByb2Nlc3NYbWwoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy52YWx0aW1vRW5kcG9pbnRVcml9cHJvY2Vzcy8ke2lkfS94bWxgKTtcbiAgfVxuXG4gIGdldFByb2Nlc3NDb3VudChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy52YWx0aW1vRW5kcG9pbnRVcml9djIvcHJvY2Vzcy9kZWZpbml0aW9uLyR7aWR9L2NvdW50YCwge1xuICAgICAgJ2tleSc6IGlkLFxuICAgICAgJ3Byb2Nlc3NWYXJpYWJsZXMnOiBbeydAdHlwZSc6ICdib29sZWFuJywgJ25hbWUnOiAnYWN0aXZlJywgJ3ZhbHVlJzogdHJ1ZX1dXG4gICAgfSk7XG4gIH1cblxuICBnZXRQcm9jZXNzSGVhdG1hcENvdW50KHByb2Nlc3NEZWZpbml0aW9uOiBQcm9jZXNzRGVmaW5pdGlvbik6IE9ic2VydmFibGU8YW55W10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnlbXT4oXG4gICAgICBgJHt0aGlzLnZhbHRpbW9FbmRwb2ludFVyaX1wcm9jZXNzL2RlZmluaXRpb24vJHtwcm9jZXNzRGVmaW5pdGlvbi5rZXl9L2hlYXRtYXAvY291bnQ/dmVyc2lvbj0ke3Byb2Nlc3NEZWZpbml0aW9uLnZlcnNpb259YFxuICAgICk7XG4gIH1cblxuICBnZXRQcm9jZXNzSGVhdG1hcER1cmF0aW9uKHByb2Nlc3NEZWZpbml0aW9uOiBQcm9jZXNzRGVmaW5pdGlvbik6IE9ic2VydmFibGU8YW55W10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnlbXT4oXG4gICAgICBgJHt0aGlzLnZhbHRpbW9FbmRwb2ludFVyaX1wcm9jZXNzL2RlZmluaXRpb24vJHtwcm9jZXNzRGVmaW5pdGlvbi5rZXl9L2hlYXRtYXAvZHVyYXRpb24/dmVyc2lvbj0ke3Byb2Nlc3NEZWZpbml0aW9uLnZlcnNpb259YFxuICAgICk7XG4gIH1cblxuICBnZXRQcm9jZXNzSW5zdGFuY2VzKGtleTogc3RyaW5nLCBwYWdlOiBudW1iZXIsIHNpemU6IG51bWJlciwgc29ydDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpXG4gICAgICAuc2V0KCdwYWdlJywgcGFnZS50b1N0cmluZygpKVxuICAgICAgLnNldCgnc2l6ZScsIHNpemUudG9TdHJpbmcoKSlcbiAgICAgIC5zZXQoJ3NvcnQnLCBzb3J0KTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxQcm9jZXNzSW5zdGFuY2U+KGAke3RoaXMudmFsdGltb0VuZHBvaW50VXJpfXYyL3Byb2Nlc3MvJHtrZXl9L3NlYXJjaGAsIHt9LCB7J3BhcmFtcyc6IHBhcmFtc30pO1xuICB9XG5cbiAgZ2V0UHJvY2Vzc0luc3RhbmNlKHByb2Nlc3NJbnN0YW5jZUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFByb2Nlc3NJbnN0YW5jZT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFByb2Nlc3NJbnN0YW5jZT4oYCR7dGhpcy52YWx0aW1vRW5kcG9pbnRVcml9cHJvY2Vzcy8ke3Byb2Nlc3NJbnN0YW5jZUlkfWAsIHt9KTtcbiAgfVxuXG4gIGdldFByb2Nlc3NJbnN0YW5jZVRhc2tzKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFByb2Nlc3NJbnN0YW5jZVRhc2tbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFByb2Nlc3NJbnN0YW5jZVRhc2tbXT4oYCR7dGhpcy52YWx0aW1vRW5kcG9pbnRVcml9cHJvY2Vzcy8ke2lkfS90YXNrc2AsIHt9KTtcbiAgfVxuXG4gIGdldFByb2Nlc3NJbnN0YW5jZVZhcmlhYmxlcyhpZDogc3RyaW5nLCB2YXJpYWJsZU5hbWVzOiBBcnJheTxhbnk+KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy52YWx0aW1vRW5kcG9pbnRVcml9cHJvY2Vzcy1pbnN0YW5jZS8ke2lkfS92YXJpYWJsZXNgLCB2YXJpYWJsZU5hbWVzKTtcbiAgfVxuXG4gIGFkZFByb2Nlc3NJbnN0YW5jZXNEZWZhdWx0VmFyaWFibGVzVmFsdWVzKHByb2Nlc3NJbnN0YW5jZXM6IEFycmF5PGFueT4pIHtcbiAgICBwcm9jZXNzSW5zdGFuY2VzLmZvckVhY2gocHJvY2Vzc0luc3RhbmNlID0+IHRoaXMuYWRkRGVmYXVsdFZhcmlhYmxlc1ZhbHVlcyhwcm9jZXNzSW5zdGFuY2UpKTtcbiAgICByZXR1cm4gcHJvY2Vzc0luc3RhbmNlcztcbiAgfVxuXG4gIGFkZERlZmF1bHRWYXJpYWJsZXNWYWx1ZXMocHJvY2Vzc0luc3RhbmNlOiBhbnkpIHtcbiAgICBpZiAoIXByb2Nlc3NJbnN0YW5jZVsnc3RhcnRVc2VyJ10pIHtcbiAgICAgIHByb2Nlc3NJbnN0YW5jZS5zdGFydFVzZXIgPSBwcm9jZXNzSW5zdGFuY2Uuc3RhcnRVc2VySWQ7XG4gICAgfVxuICAgIGlmICghcHJvY2Vzc0luc3RhbmNlWydwcm9jZXNzU3RhcnRlZCddKSB7XG4gICAgICBwcm9jZXNzSW5zdGFuY2UucHJvY2Vzc1N0YXJ0ZWQgPSBwcm9jZXNzSW5zdGFuY2Uuc3RhcnRUaW1lO1xuICAgIH1cbiAgICBpZiAoIXByb2Nlc3NJbnN0YW5jZVsncHJvY2Vzc0VuZGVkJ10pIHtcbiAgICAgIHByb2Nlc3NJbnN0YW5jZS5wcm9jZXNzRW5kZWQgPSBwcm9jZXNzSW5zdGFuY2UuZW5kVGltZTtcbiAgICB9XG4gICAgaWYgKCFwcm9jZXNzSW5zdGFuY2VbJ2FjdGl2ZSddKSB7XG4gICAgICBwcm9jZXNzSW5zdGFuY2UuYWN0aXZlID0gcHJvY2Vzc0luc3RhbmNlLmVuZFRpbWUgPT0gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHByb2Nlc3NJbnN0YW5jZTtcbiAgfVxuXG4gIGdldEluc3RhbmNlc1N0YXRpc3RpY3MoZnJvbURhdGU/OiBzdHJpbmcsIHRvRGF0ZT86IHN0cmluZywgcHJvY2Vzc0ZpbHRlcj86IHN0cmluZykge1xuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XG4gICAgcGFyYW1zLnNldCgnZnJvbURhdGUnLCBmcm9tRGF0ZSk7XG4gICAgcGFyYW1zLnNldCgndG9EYXRlJywgdG9EYXRlKTtcbiAgICBwYXJhbXMuc2V0KCdwcm9jZXNzRmlsdGVyJywgcHJvY2Vzc0ZpbHRlcik7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55W10+KFxuICAgICAgYCR7dGhpcy52YWx0aW1vRW5kcG9pbnRVcml9cmVwb3J0aW5nL2luc3RhbmNlc3N0YXRpc3RpY3NgLCB7J3BhcmFtcyc6IHBhcmFtc31cbiAgICApO1xuICB9XG5cbiAgZGVwbG95UHJvY2Vzcyhwcm9jZXNzWG1sOiBzdHJpbmcpIHtcbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCBuZXcgRmlsZShbcHJvY2Vzc1htbF0sICdwcm9jZXNzLmJwbW4nKSk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdkZXBsb3ltZW50LW5hbWUnLCAndmFsdGltb0NvbnNvbGVBcHAnKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ2RlcGxveW1lbnQtc291cmNlJywgJ3Byb2Nlc3MgYXBwbGljYXRpb24nKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy52YWx0aW1vRW5kcG9pbnRVcml9Y2FtdW5kYS1yZXN0L2VuZ2luZS9kZWZhdWx0L2RlcGxveW1lbnQvY3JlYXRlYCwgZm9ybURhdGEpO1xuICB9XG5cbiAgbWlncmF0ZVByb2Nlc3MocHJvY2Vzc0RlZmluaXRpb24xSWQ6IHN0cmluZywgcHJvY2Vzc0RlZmluaXRpb24ySWQ6IHN0cmluZywgcGFyYW1zOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnZhbHRpbW9FbmRwb2ludFVyaX1wcm9jZXNzL2RlZmluaXRpb24vJHtwcm9jZXNzRGVmaW5pdGlvbjFJZH0vJHtwcm9jZXNzRGVmaW5pdGlvbjJJZH0vbWlncmF0ZWAsIHBhcmFtcyk7XG4gIH1cblxufVxuIl19
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IkQ6L1dvcmtzcGFjZS92YWx0aW1vL3ZhbHRpbW8tZnJvbnRlbmQtbGlicmFyaWVzL3Byb2plY3RzL3ZhbHRpbW8vcHJvY2Vzcy9zcmMvIiwic291cmNlcyI6WyJsaWIvcHJvY2Vzcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsVUFBVSxFQUFFLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBUzVELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQUs5QyxNQUFNLE9BQU8sY0FBYztJQUd6QixZQUFvQixJQUFnQixFQUFFLGFBQTRCO1FBQTlDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDbEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQztJQUN4RSxDQUFDO0lBRUQscUJBQXFCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQXNCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixvQkFBb0IsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFFRCw0QkFBNEIsQ0FBQyxHQUFXO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQ2xCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixzQkFBc0IsR0FBRyxXQUFXLENBQy9ELENBQUM7SUFDSixDQUFDO0lBRUQsb0JBQW9CLENBQUMsR0FBVztRQUM5QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFvQixHQUFHLElBQUksQ0FBQyxrQkFBa0Isc0JBQXNCLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDakcsQ0FBQztJQUVELGlDQUFpQyxDQUMvQixvQkFBNEI7UUFFNUIsT0FBTyxJ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LElBQUksQ0FBQyxHQUFHLENBQVEsR0FBRyxJQUFJLENBQUMsa0JBQWtCLCtCQUErQixFQUFFO1lBQ3JGLE1BQU0sRUFBRSxNQUFNO1NBQ2YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGFBQWEsQ0FBQyxVQUFrQjtRQUM5QixNQUFNLFFBQVEsR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ2hDLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQztRQUNoRSxRQUFRLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFDeEQsUUFBUSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO1FBQzVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ25CLEdBQUcsSUFBSSxDQUFDLGtCQUFrQiwrQ0FBK0MsRUFDekUsUUFBUSxDQUNULENBQUM7SUFDSixDQUFDO0lBRUQsY0FBYyxDQUNaLG9CQUE0QixFQUM1QixvQkFBNEIsRUFDNUIsTUFBVztRQUVYLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ25CLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixzQkFBc0Isb0JBQW9CLElBQUksb0JBQW9CLFVBQVUsRUFDdEcsTUFBTSxDQUNQLENBQUM7SUFDSixDQUFDOzs7O1lBM0pGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBYk8sVUFBVTtZQVNWLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtIdHRwQ2xpZW50LCBIdHRwUGFyYW1zfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgUHJvY2Vzc0RlZmluaXRpb24sXG4gIFByb2Nlc3NEZWZpbml0aW9uU3RhcnRGb3JtLFxuICBQcm9jZXNzSW5zdGFuY2UsXG4gIFByb2Nlc3NJbnN0YW5jZVRhc2ssXG4gIFByb2Nlc3NTdGFydCxcbn0gZnJvbSAnQHZhbHRpbW8vY29udHJhY3QnO1xuaW1wb3J0IHtDb25maWdTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9jb25maWcnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUHJvY2Vzc1NlcnZpY2Uge1xuICBwcml2YXRlIHZhbHRpbW9FbmRwb2ludFVyaTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSkge1xuICAgIHRoaXMudmFsdGltb0VuZHBvaW50VXJpID0gY29uZmlnU2VydmljZS5jb25maWcudmFsdGltb0FwaS5lbmRwb2ludFVyaTtcbiAgfVxuXG4gIGdldFByb2Nlc3NEZWZpbml0aW9ucygpOiBPYnNlcnZhYmxlPFByb2Nlc3NEZWZpbml0aW9uW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxQcm9jZXNzRGVmaW5pdGlvbltdPihgJHt0aGlzLnZhbHRpbW9FbmRwb2ludFVyaX1wcm9jZXNzL2RlZmluaXRpb25gKTtcbiAgfVxuXG4gIGdldFByb2Nlc3NEZWZpbml0aW9uVmVyc2lvbnMoa2V5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPFByb2Nlc3NEZWZpbml0aW9uW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxQcm9jZXNzRGVmaW5pdGlvbltdPihcbiAgICAgIGAke3RoaXMudmFsdGltb0VuZHBvaW50VXJpfXByb2Nlc3MvZGVmaW5pdGlvbi8ke2tleX0vdmVyc2lvbnNgXG4gICAgKTtcbiAgfVxuXG4gIGdldFByb2Nlc3NEZWZpbml0aW9uKGtleTogc3RyaW5nKTogT2JzZXJ2YWJsZTxQcm9jZXNzRGVmaW5pdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFByb2Nlc3NEZWZpbml0aW9uPihgJHt0aGlzLnZhbHRpbW9FbmRwb2ludFVyaX1wcm9jZXNzL2RlZmluaXRpb24vJHtrZXl9YCk7XG4gIH1cblxuICBnZXRQcm9jZXNzRGVmaW5pdGlvblN0YXJ0Rm9ybURhdGEoXG4gICAgcHJvY2Vzc0RlZmluaXRpb25LZXk6IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPFByb2Nlc3NEZWZpbml0aW9uU3RhcnRGb3JtPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8UHJvY2Vzc0RlZmluaXRpb25TdGFydEZvcm0+KFxuICAgICAgYCR7dGhpcy52YWx0aW1vRW5kcG9pbnRVcml9cHJvY2Vzcy9kZWZpbml0aW9uLyR7cHJvY2Vzc0RlZmluaXRpb25LZXl9L3N0YXJ0LWZvcm1gXG4gICAgKTtcbiAgfVxuXG4gIHN0YXJ0UHJvY2VzSW5zdGFuY2UoXG4gICAga2V5OiBzdHJpbmcsXG4gICAgYnVzaW5lc3NLZXk6IHN0cmluZyxcbiAgICB2YXJpYWJsZXM6IE1hcDxzdHJpbmcsIGFueT5cbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8UHJvY2Vzc1N0YXJ0PihcbiAgICAgIGAke3RoaXMudmFsdGltb0VuZHBvaW50VXJpfXByb2Nlc3MvZGVmaW5pdGlvbi8ke2tleX0vJHtidXNpbmVzc0tleX0vc3RhcnRgLFxuICAgICAgdmFyaWFibGVzXG4gICAgKTtcbiAgfVxuXG4gIGdldFByb2Nlc3NEZWZpbml0aW9uWG1sKHByb2Nlc3NEZWZpbml0aW9uSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy52YWx0aW1vRW5kcG9pbnRVcml9cHJvY2Vzcy9kZWZpbml0aW9uLyR7cHJvY2Vzc0RlZmluaXRpb25JZH0veG1sYCk7XG4gIH1cblxuICBnZXRQcm9jZXNzWG1sKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMudmFsdGltb0VuZHBvaW50VXJpfXByb2Nlc3MvJHtpZH0veG1sYCk7XG4gIH1cblxuICBnZXRQcm9jZXNzQ291bnQoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudmFsdGltb0VuZHBvaW50VXJpfXYyL3Byb2Nlc3MvZGVmaW5pdGlvbi8ke2lkfS9jb3VudGAsIHtcbiAgICAgIGtleTogaWQsXG4gICAgICBwcm9jZXNzVmFyaWFibGVzOiBbeydAdHlwZSc6ICdib29sZWFuJywgbmFtZTogJ2FjdGl2ZScsIHZhbHVlOiB0cnVlfV0sXG4gICAgfSk7XG4gIH1cblxuICBnZXRQcm9jZXNzSGVhdG1hcENvdW50KHByb2Nlc3NEZWZpbml0aW9uOiBQcm9jZXNzRGVmaW5pdGlvbik6IE9ic2VydmFibGU8YW55W10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnlbXT4oXG4gICAgICBgJHt0aGlzLnZhbHRpbW9FbmRwb2ludFVyaX1wcm9jZXNzL2RlZmluaXRpb24vJHtwcm9jZXNzRGVmaW5pdGlvbi5rZXl9L2hlYXRtYXAvY291bnQ/dmVyc2lvbj0ke3Byb2Nlc3NEZWZpbml0aW9uLnZlcnNpb259YFxuICAgICk7XG4gIH1cblxuICBnZXRQcm9jZXNzSGVhdG1hcER1cmF0aW9uKHByb2Nlc3NEZWZpbml0aW9uOiBQcm9jZXNzRGVmaW5pdGlvbik6IE9ic2VydmFibGU8YW55W10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnlbXT4oXG4gICAgICBgJHt0aGlzLnZhbHRpbW9FbmRwb2ludFVyaX1wcm9jZXNzL2RlZmluaXRpb24vJHtwcm9jZXNzRGVmaW5pdGlvbi5rZXl9L2hlYXRtYXAvZHVyYXRpb24/dmVyc2lvbj0ke3Byb2Nlc3NEZWZpbml0aW9uLnZlcnNpb259YFxuICAgICk7XG4gIH1cblxuICBnZXRQcm9jZXNzSW5zdGFuY2VzKGtleTogc3RyaW5nLCBwYWdlOiBudW1iZXIsIHNpemU6IG51bWJlciwgc29ydDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpXG4gICAgICAuc2V0KCdwYWdlJywgcGFnZS50b1N0cmluZygpKVxuICAgICAgLnNldCgnc2l6ZScsIHNpemUudG9TdHJpbmcoKSlcbiAgICAgIC5zZXQoJ3NvcnQnLCBzb3J0KTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxQcm9jZXNzSW5zdGFuY2U+KFxuICAgICAgYCR7dGhpcy52YWx0aW1vRW5kcG9pbnRVcml9djIvcHJvY2Vzcy8ke2tleX0vc2VhcmNoYCxcbiAgICAgIHt9LFxuICAgICAge3BhcmFtczogcGFyYW1zfVxuICAgICk7XG4gIH1cblxuICBnZXRQcm9jZXNzSW5zdGFuY2UocHJvY2Vzc0luc3RhbmNlSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8UHJvY2Vzc0luc3RhbmNlPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8UHJvY2Vzc0luc3RhbmNlPihcbiAgICAgIGAke3RoaXMudmFsdGltb0VuZHBvaW50VXJpfXByb2Nlc3MvJHtwcm9jZXNzSW5zdGFuY2VJZH1gLFxuICAgICAge31cbiAgICApO1xuICB9XG5cbiAgZ2V0UHJvY2Vzc0luc3RhbmNlVGFza3MoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8UHJvY2Vzc0luc3RhbmNlVGFza1tdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8UHJvY2Vzc0luc3RhbmNlVGFza1tdPihcbiAgICAgIGAke3RoaXMudmFsdGltb0VuZHBvaW50VXJpfXByb2Nlc3MvJHtpZH0vdGFza3NgLFxuICAgICAge31cbiAgICApO1xuICB9XG5cbiAgZ2V0UHJvY2Vzc0luc3RhbmNlVmFyaWFibGVzKGlkOiBzdHJpbmcsIHZhcmlhYmxlTmFtZXM6IEFycmF5PGFueT4pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcbiAgICAgIGAke3RoaXMudmFsdGltb0VuZHBvaW50VXJpfXByb2Nlc3MtaW5zdGFuY2UvJHtpZH0vdmFyaWFibGVzYCxcbiAgICAgIHZhcmlhYmxlTmFtZXNcbiAgICApO1xuICB9XG5cbiAgYWRkUHJvY2Vzc0luc3RhbmNlc0RlZmF1bHRWYXJpYWJsZXNWYWx1ZXMocHJvY2Vzc0luc3RhbmNlczogQXJyYXk8YW55Pikge1xuICAgIHByb2Nlc3NJbnN0YW5jZXMuZm9yRWFjaChwcm9jZXNzSW5zdGFuY2UgPT4gdGhpcy5hZGREZWZhdWx0VmFyaWFibGVzVmFsdWVzKHByb2Nlc3NJbnN0YW5jZSkpO1xuICAgIHJldHVybiBwcm9jZXNzSW5zdGFuY2VzO1xuICB9XG5cbiAgYWRkRGVmYXVsdFZhcmlhYmxlc1ZhbHVlcyhwcm9jZXNzSW5zdGFuY2U6IGFueSkge1xuICAgIGlmICghcHJvY2Vzc0luc3RhbmNlWydzdGFydFVzZXInXSkge1xuICAgICAgcHJvY2Vzc0luc3RhbmNlLnN0YXJ0VXNlciA9IHByb2Nlc3NJbnN0YW5jZS5zdGFydFVzZXJJZDtcbiAgICB9XG4gICAgaWYgKCFwcm9jZXNzSW5zdGFuY2VbJ3Byb2Nlc3NTdGFydGVkJ10pIHtcbiAgICAgIHByb2Nlc3NJbnN0YW5jZS5wcm9jZXNzU3RhcnRlZCA9IHByb2Nlc3NJbnN0YW5jZS5zdGFydFRpbWU7XG4gICAgfVxuICAgIGlmICghcHJvY2Vzc0luc3RhbmNlWydwcm9jZXNzRW5kZWQnXSkge1xuICAgICAgcHJvY2Vzc0luc3RhbmNlLnByb2Nlc3NFbmRlZCA9IHByb2Nlc3NJbnN0YW5jZS5lbmRUaW1lO1xuICAgIH1cbiAgICBpZiAoIXByb2Nlc3NJbnN0YW5jZVsnYWN0aXZlJ10pIHtcbiAgICAgIHByb2Nlc3NJbnN0YW5jZS5hY3RpdmUgPSBwcm9jZXNzSW5zdGFuY2UuZW5kVGltZSA9PSBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gcHJvY2Vzc0luc3RhbmNlO1xuICB9XG5cbiAgZ2V0SW5zdGFuY2VzU3RhdGlzdGljcyhmcm9tRGF0ZT86IHN0cmluZywgdG9EYXRlPzogc3RyaW5nLCBwcm9jZXNzRmlsdGVyPzogc3RyaW5nKSB7XG4gICAgY29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcbiAgICBwYXJhbXMuc2V0KCdmcm9tRGF0ZScsIGZyb21EYXRlKTtcbiAgICBwYXJhbXMuc2V0KCd0b0RhdGUnLCB0b0RhdGUpO1xuICAgIHBhcmFtcy5zZXQoJ3Byb2Nlc3NGaWx0ZXInLCBwcm9jZXNzRmlsdGVyKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnlbXT4oYCR7dGhpcy52YWx0aW1vRW5kcG9pbnRVcml9cmVwb3J0aW5nL2luc3RhbmNlc3N0YXRpc3RpY3NgLCB7XG4gICAgICBwYXJhbXM6IHBhcmFtcyxcbiAgICB9KTtcbiAgfVxuXG4gIGRlcGxveVByb2Nlc3MocHJvY2Vzc1htbDogc3RyaW5nKSB7XG4gICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCBuZXcgRmlsZShbcHJvY2Vzc1htbF0sICdwcm9jZXNzLmJwbW4nKSk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdkZXBsb3ltZW50LW5hbWUnLCAndmFsdGltb0NvbnNvbGVBcHAnKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ2RlcGxveW1lbnQtc291cmNlJywgJ3Byb2Nlc3MgYXBwbGljYXRpb24nKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXG4gICAgICBgJHt0aGlzLnZhbHRpbW9FbmRwb2ludFVyaX1jYW11bmRhLXJlc3QvZW5naW5lL2RlZmF1bHQvZGVwbG95bWVudC9jcmVhdGVgLFxuICAgICAgZm9ybURhdGFcbiAgICApO1xuICB9XG5cbiAgbWlncmF0ZVByb2Nlc3MoXG4gICAgcHJvY2Vzc0RlZmluaXRpb24xSWQ6IHN0cmluZyxcbiAgICBwcm9jZXNzRGVmaW5pdGlvbjJJZDogc3RyaW5nLFxuICAgIHBhcmFtczogYW55XG4gICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxuICAgICAgYCR7dGhpcy52YWx0aW1vRW5kcG9pbnRVcml9cHJvY2Vzcy9kZWZpbml0aW9uLyR7cHJvY2Vzc0RlZmluaXRpb24xSWR9LyR7cHJvY2Vzc0RlZmluaXRpb24ySWR9L21pZ3JhdGVgLFxuICAgICAgcGFyYW1zXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -19,4 +19,4 @@
19
19
  export * from './lib/process.service';
20
20
  export * from './lib/process.module';
21
21
  export * from './lib/process-diagram/process-diagram.component';
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vcHJvY2Vzcy9zcmMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVIOztHQUVHO0FBRUgsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsaURBQWlELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHByb2Nlc3NcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9wcm9jZXNzLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcHJvY2Vzcy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcHJvY2Vzcy1kaWFncmFtL3Byb2Nlc3MtZGlhZ3JhbS5jb21wb25lbnQnO1xuIl19
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJEOi9Xb3Jrc3BhY2UvdmFsdGltby92YWx0aW1vLWZyb250ZW5kLWxpYnJhcmllcy9wcm9qZWN0cy92YWx0aW1vL3Byb2Nlc3Mvc3JjLyIsInNvdXJjZXMiOlsicHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVIOztHQUVHO0FBRUgsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsaURBQWlELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHByb2Nlc3NcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9wcm9jZXNzLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcHJvY2Vzcy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcHJvY2Vzcy1kaWFncmFtL3Byb2Nlc3MtZGlhZ3JhbS5jb21wb25lbnQnO1xuIl19
@@ -2,4 +2,4 @@
2
2
  * Generated bundle index. Do not edit.
3
3
  */
4
4
  export * from './public_api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdGltby1wcm9jZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9wcm9jZXNzL3NyYy92YWx0aW1vLXByb2Nlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdGltby1wcm9jZXNzLmpzIiwic291cmNlUm9vdCI6IkQ6L1dvcmtzcGFjZS92YWx0aW1vL3ZhbHRpbW8tZnJvbnRlbmQtbGlicmFyaWVzL3Byb2plY3RzL3ZhbHRpbW8vcHJvY2Vzcy9zcmMvIiwic291cmNlcyI6WyJ2YWx0aW1vLXByb2Nlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
@@ -51,8 +51,8 @@ class ProcessService {
51
51
  }
52
52
  getProcessCount(id) {
53
53
  return this.http.post(`${this.valtimoEndpointUri}v2/process/definition/${id}/count`, {
54
- 'key': id,
55
- 'processVariables': [{ '@type': 'boolean', 'name': 'active', 'value': true }]
54
+ key: id,
55
+ processVariables: [{ '@type': 'boolean', name: 'active', value: true }],
56
56
  });
57
57
  }
58
58
  getProcessHeatmapCount(processDefinition) {
@@ -66,7 +66,7 @@ class ProcessService {
66
66
  .set('page', page.toString())
67
67
  .set('size', size.toString())
68
68
  .set('sort', sort);
69
- return this.http.post(`${this.valtimoEndpointUri}v2/process/${key}/search`, {}, { 'params': params });
69
+ return this.http.post(`${this.valtimoEndpointUri}v2/process/${key}/search`, {}, { params: params });
70
70
  }
71
71
  getProcessInstance(processInstanceId) {
72
72
  return this.http.get(`${this.valtimoEndpointUri}process/${processInstanceId}`, {});
@@ -101,10 +101,12 @@ class ProcessService {
101
101
  params.set('fromDate', fromDate);
102
102
  params.set('toDate', toDate);
103
103
  params.set('processFilter', processFilter);
104
- return this.http.get(`${this.valtimoEndpointUri}reporting/instancesstatistics`, { 'params': params });
104
+ return this.http.get(`${this.valtimoEndpointUri}reporting/instancesstatistics`, {
105
+ params: params,
106
+ });
105
107
  }
106
108
  deployProcess(processXml) {
107
- const formData = new FormData;
109
+ const formData = new FormData();
108
110
  formData.append('file', new File([processXml], 'process.bpmn'));
109
111
  formData.append('deployment-name', 'valtimoConsoleApp');
110
112
  formData.append('deployment-source', 'process application');
@@ -117,7 +119,7 @@ class ProcessService {
117
119
  ProcessService.ɵprov = ɵɵdefineInjectable({ factory: function ProcessService_Factory() { return new ProcessService(ɵɵinject(HttpClient), ɵɵinject(ConfigService)); }, token: ProcessService, providedIn: "root" });
118
120
  ProcessService.decorators = [
119
121
  { type: Injectable, args: [{
120
- providedIn: 'root'
122
+ providedIn: 'root',
121
123
  },] }
122
124
  ];
123
125
  ProcessService.ctorParameters = () => [
@@ -236,15 +238,15 @@ class ProcessDiagramComponent {
236
238
  this.min = 0;
237
239
  this.max = 0;
238
240
  Object.keys(this.inputData).forEach(key => {
239
- const diagramContainer = this.el.nativeElement.querySelector('svg')
240
- .getBoundingClientRect(), diagramElm = this.el.nativeElement.querySelector(`g[data-element-id=${key}]`)
241
+ const diagramContainer = this.el.nativeElement.querySelector('svg').getBoundingClientRect(), diagramElm = this.el.nativeElement
242
+ .querySelector(`g[data-element-id=${key}]`)
241
243
  .getBoundingClientRect();
242
244
  this.setMax(key);
243
245
  this.heatPoints.data.push({
244
246
  x: Math.round(diagramElm.x - diagramContainer.x + diagramElm.width / 2),
245
247
  y: Math.round(diagramElm.y - diagramContainer.y + diagramElm.height / 2),
246
248
  value: this.inputData[key][this.valueKey],
247
- radius: diagramElm.width / 2
249
+ radius: diagramElm.width / 2,
248
250
  });
249
251
  this.addCounterActiveOverlays(key, this.inputData);
250
252
  });
@@ -272,15 +274,15 @@ class ProcessDiagramComponent {
272
274
  this.min = 0;
273
275
  this.max = 0;
274
276
  Object.keys(this.inputData).forEach(key => {
275
- const diagramContainer = this.el.nativeElement.querySelector('svg')
276
- .getBoundingClientRect(), diagramElm = this.el.nativeElement.querySelector(`g[data-element-id=${key}]`)
277
+ const diagramContainer = this.el.nativeElement.querySelector('svg').getBoundingClientRect(), diagramElm = this.el.nativeElement
278
+ .querySelector(`g[data-element-id=${key}]`)
277
279
  .getBoundingClientRect();
278
280
  this.setMax(key);
279
281
  this.heatPoints.data.push({
280
282
  x: Math.round(diagramElm.x - diagramContainer.x + diagramElm.width / 2),
281
283
  y: Math.round(diagramElm.y - diagramContainer.y + diagramElm.height / 2),
282
284
  value: this.inputData[key][this.valueKey],
283
- radius: diagramElm.width / 2
285
+ radius: diagramElm.width / 2,
284
286
  });
285
287
  this.addCounterActiveOverlays(key, this.inputData);
286
288
  });
@@ -310,16 +312,16 @@ class ProcessDiagramComponent {
310
312
  if (!this.heatMapInstance) {
311
313
  this.heatMapInstance = create({
312
314
  radius: 54,
313
- blur: .70,
314
- maxOpacity: .4,
315
+ blur: 0.7,
316
+ maxOpacity: 0.4,
315
317
  minOpacity: 0,
316
- container: this.el.nativeElement
318
+ container: this.el.nativeElement,
317
319
  });
318
320
  }
319
321
  this.heatMapInstance.setData({
320
322
  min: this.min,
321
323
  max: this.max,
322
- data: this.heatPoints.data
324
+ data: this.heatPoints.data,
323
325
  });
324
326
  }
325
327
  clearHeatmap() {
@@ -349,20 +351,20 @@ class ProcessDiagramComponent {
349
351
  overlays.add(key, {
350
352
  position: {
351
353
  bottom: 13,
352
- left: -12
354
+ left: -12,
353
355
  },
354
356
  show: {
355
357
  minZoom: 0,
356
- maxZoom: 5.0
358
+ maxZoom: 5.0,
357
359
  },
358
- html: `<span class="badge badge-pill badge-primary">${inputData[key].count}</span>`
360
+ html: `<span class="badge badge-pill badge-primary">${inputData[key].count}</span>`,
359
361
  });
360
362
  }
361
363
  }
362
364
  ProcessDiagramComponent.decorators = [
363
365
  { type: Component, args: [{
364
366
  selector: 'valtimo-process-diagram',
365
- template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<div class=\"process-diagram-container\">\n <div *ngIf=\"processDefinitionKey\" class=\"diagram-container-switch-holder\" >\n <div class=\"container-fluid\">\n <div class=\"row p-4 bg-light\">\n <div class=\"col-4\">\n <label><strong>Version</strong></label><br />\n <select class=\"form-control\" (change)=\"setProcessDefinitionVersion($event.target.value)\">\n <option *ngFor=\"let processDefinitionVersion of processDefinitionVersions\"\n [value]=\"processDefinitionVersion.version\"\n [selected]=\"processDefinitionVersion.version === version\">\n {{ processDefinitionVersion.version }}\n </option>\n </select>\n </div>\n <div class=\"col-4\">\n <label><strong>Heatmap type</strong></label><br />\n <select class=\"form-control\" (change)=\"setHeatmapOption($event.target.value)\">\n <option *ngFor=\"let option of enumHeatmapOptions\"\n [value]=\"option\"\n [selected]=\"option === heatmapOption\" >\n {{ option }}\n </option>\n </select>\n </div>\n <div class=\"col-4 text-right\">\n <label><strong>Show heatmap</strong></label><br />\n <div class=\"text-left switch-button switch-button-sm switch-button-success\">\n <input type=\"checkbox\" id=\"toggleHeatmap\" [checked]=\"showHeatmap\" (click)=\"toggleShowHeatmap()\"><span>\n <label for=\"toggleHeatmap\"></label></span>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div #ref (window:resize)=\"onWindowResize()\" class=\"diagram-container\"></div>\n\n <div *ngIf=\"processInstanceId\" class=\"p-4 text-center legenda-holder\">\n <span><div class=\"legenda highlight-overlay-past\"></div> Executed tasks</span>\n <span class=\"ml-3\"><div class=\"legenda highlight-overlay-current\"></div> Current tasks</span>\n </div>\n\n <div *ngIf=\"processDefinitionKey\" class=\"p-4 text-center legenda-holder\">\n <span><span class=\"badge badge-pill badge-primary\">N</span>&nbsp;&nbsp;Amount of currently active instances of this task.</span>\n <span>&nbsp;&nbsp;|&nbsp;&nbsp;Red/yellow/green orbs: The amount of times the task is executed in comparison to the other tasks.</span>\n </div>\n</div>\n",
367
+ template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<div class=\"process-diagram-container\">\n <div *ngIf=\"processDefinitionKey\" class=\"diagram-container-switch-holder\">\n <div class=\"container-fluid\">\n <div class=\"row p-4 bg-light\">\n <div class=\"col-4\">\n <label><strong>Version</strong></label\n ><br />\n <select class=\"form-control\" (change)=\"setProcessDefinitionVersion($event.target.value)\">\n <option\n *ngFor=\"let processDefinitionVersion of processDefinitionVersions\"\n [value]=\"processDefinitionVersion.version\"\n [selected]=\"processDefinitionVersion.version === version\"\n >\n {{ processDefinitionVersion.version }}\n </option>\n </select>\n </div>\n <div class=\"col-4\">\n <label><strong>Heatmap type</strong></label\n ><br />\n <select class=\"form-control\" (change)=\"setHeatmapOption($event.target.value)\">\n <option\n *ngFor=\"let option of enumHeatmapOptions\"\n [value]=\"option\"\n [selected]=\"option === heatmapOption\"\n >\n {{ option }}\n </option>\n </select>\n </div>\n <div class=\"col-4 text-right\">\n <label><strong>Show heatmap</strong></label\n ><br />\n <div class=\"text-left switch-button switch-button-sm switch-button-success\">\n <input\n type=\"checkbox\"\n id=\"toggleHeatmap\"\n [checked]=\"showHeatmap\"\n (click)=\"toggleShowHeatmap()\"\n /><span> <label for=\"toggleHeatmap\"></label></span>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div #ref (window:resize)=\"onWindowResize()\" class=\"diagram-container\"></div>\n\n <div *ngIf=\"processInstanceId\" class=\"p-4 text-center legenda-holder\">\n <span\n ><div class=\"legenda highlight-overlay-past\"></div>\n Executed tasks</span\n >\n <span class=\"ml-3\"\n ><div class=\"legenda highlight-overlay-current\"></div>\n Current tasks</span\n >\n </div>\n\n <div *ngIf=\"processDefinitionKey\" class=\"p-4 text-center legenda-holder\">\n <span\n ><span class=\"badge badge-pill badge-primary\">N</span>&nbsp;&nbsp;Amount of currently active\n instances of this task.</span\n >\n <span\n >&nbsp;&nbsp;|&nbsp;&nbsp;Red/yellow/green orbs: The amount of times the task is executed in\n comparison to the other tasks.</span\n >\n </div>\n</div>\n",
366
368
  encapsulation: ViewEncapsulation.None,
367
369
  styles: [".process-diagram-container .diagram-container{height:50vh;width:100%}.process-diagram-container .diagram-container-switch-holder{position:absolute;width:100%;z-index:1000}.process-diagram-container .highlight-overlay-past:not(.djs-connection) .djs-visual>:first-child{fill:#d8d8d8!important}.process-diagram-container .highlight-overlay-current:not(.djs-connection) .djs-visual>:first-child{fill:#b2e0ff!important}.process-diagram-container .legenda-holder{font-size:1em}.process-diagram-container .legenda{border:2px solid #000;border-radius:3px;display:inline-block;margin-bottom:-4px;margin-right:5px;padding:7px}.process-diagram-container .legenda.highlight-overlay-past{background-color:#d8d8d8}.process-diagram-container .legenda.highlight-overlay-current{background-color:#b2e0ff}"]
368
370
  },] }
@@ -396,9 +398,7 @@ class ProcessModule {
396
398
  }
397
399
  ProcessModule.decorators = [
398
400
  { type: NgModule, args: [{
399
- declarations: [
400
- ProcessDiagramComponent
401
- ],
401
+ declarations: [ProcessDiagramComponent],
402
402
  imports: [
403
403
  CommonModule,
404
404
  ListModule,
@@ -409,12 +409,10 @@ ProcessModule.decorators = [
409
409
  BrowserAnimationsModule,
410
410
  ToastrModule.forRoot({
411
411
  positionClass: 'toast-bottom-full-width',
412
- preventDuplicates: true
413
- })
414
- ],
415
- exports: [
416
- ProcessDiagramComponent
412
+ preventDuplicates: true,
413
+ }),
417
414
  ],
415
+ exports: [ProcessDiagramComponent],
418
416
  },] }
419
417
  ];
420
418