@sumaris-net/ngx-components 2.7.2-rc5 → 2.7.2-rc7

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.
@@ -46,9 +46,6 @@ export class JobProgressionIcon extends RxState {
46
46
  this.popoverController = popoverController;
47
47
  this.cd = cd;
48
48
  }
49
- set jobProgressions(jobProgressions) {
50
- this.set('jobProgressions', () => jobProgressions);
51
- }
52
49
  get jobProgressions() {
53
50
  return this.get('jobProgressions');
54
51
  }
@@ -67,22 +64,23 @@ export class JobProgressionIcon extends RxState {
67
64
  const existingJobIds = state.jobProgressions?.map(job => job.value.id) || [];
68
65
  const result = (items || []).map(item => {
69
66
  remove(existingJobIds, id => id === item.id);
70
- return this.addJob(item.id, item);
67
+ // Add job to listen
68
+ return this.startListenJob(item.id, item);
71
69
  });
72
- // REMOVE old jobs
70
+ // Remove old jobs
73
71
  if (existingJobIds.length > 0) {
74
- existingJobIds.forEach(id => this.removeJob(id, { emitEvent: false }));
72
+ existingJobIds.forEach(id => this.stopListenJob(id, { emitEvent: false }));
75
73
  }
76
74
  return result;
77
75
  });
78
76
  }
79
- this._subscriptions.add(this.jobProgressions$.subscribe(value => this.set({ jobCount: value?.length || 0 })));
80
- this._subscriptions.add(this.jobCount$.pipe(mergeMap((count) => iif(() => count > 0, of(true), of(false).pipe(filter(() => this.autoHide), delay(this.autoHideDelay), tap(() => {
77
+ this.connect('jobCount', this.jobProgressions$, (s, jobs) => s.jobCount = jobs?.length || 0);
78
+ this.connect('visible', this.jobCount$.pipe(mergeMap((count) => iif(() => count > 0, of(true), of(false).pipe(filter(() => this.autoHide), delay(this.autoHideDelay), tap(() => {
81
79
  if (this._listPopover)
82
80
  this._listPopover.dismiss();
83
- }))))).subscribe(visible => this.set({ visible })));
81
+ }))))));
84
82
  }
85
- addJob(id, job) {
83
+ startListenJob(id, job) {
86
84
  if (isNil(this.jobProgressionService)) {
87
85
  console.warn(`${this._logPrefix}No service injected. Can't add a job`);
88
86
  return;
@@ -125,20 +123,16 @@ export class JobProgressionIcon extends RxState {
125
123
  this.jobFinished.emit(progression.id);
126
124
  if (this.autoRemove) {
127
125
  setTimeout(() => {
128
- this.removeJob(progression.id);
126
+ this.stopListenJob(progression.id);
129
127
  }, this.autoRemoveDelay);
130
128
  }
131
129
  }
132
130
  });
133
131
  this._subscriptionsById[id] = sub;
134
132
  this._subscriptions.add(sub);
135
- // Add to progression
136
- const jobProgressions = this.jobProgressions;
137
- jobProgressions.push(result);
138
- this.jobProgressions = jobProgressions;
139
133
  return result;
140
134
  }
141
- removeJob(id, opts) {
135
+ stopListenJob(id, opts) {
142
136
  if (this.debug) {
143
137
  console.debug(`${this._logPrefix}Remove job id=${id}`);
144
138
  }
@@ -147,13 +141,9 @@ export class JobProgressionIcon extends RxState {
147
141
  this._subscriptions.remove(sub);
148
142
  sub.unsubscribe();
149
143
  }
144
+ // Remove job from service
145
+ this.jobProgressionService.removeJob(id);
150
146
  if (!opts?.emitEvent !== false) {
151
- const progression = this.getProgression(id);
152
- if (progression) {
153
- const jobProgressions = this.jobProgressions;
154
- jobProgressions.splice(jobProgressions.indexOf(progression), 1);
155
- this.jobProgressions = jobProgressions;
156
- }
157
147
  this.updateValue();
158
148
  }
159
149
  }
@@ -210,11 +200,11 @@ export class JobProgressionIcon extends RxState {
210
200
  this._subscriptions.unsubscribe();
211
201
  }
212
202
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: JobProgressionIcon, deps: [{ token: APP_JOB_PROGRESSION_SERVICE, optional: true }, { token: i1.PopoverController }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
213
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: JobProgressionIcon, selector: "app-job-progression-icon", inputs: { debug: "debug", titleI18n: "titleI18n", options: "options", autoHide: "autoHide", headerActions: "headerActions" }, outputs: { jobFinished: "jobFinished" }, providers: [RxState], usesInheritance: true, ngImport: i0, template: "<button\n #button\n mat-icon-button\n [title]=\"titleI18n | translate\"\n [disabled]=\"disabled\"\n *rxIf=\"visible$ | push\"\n (click)=\"showList($event)\"\n>\n <mat-icon *rxLet=\"jobCount$ | push; let jobCount\"\n [matBadge]=\"jobCount\"\n [matBadgeHidden]=\"!jobCount\"\n matBadgeColor=\"accent\"\n matBadgeSize=\"small\"\n matBadgePosition=\"above after\"\n aria-hidden=\"false\"\n >{{ disabled || jobCount ? 'schedule' : 'task_alt' }}\n </mat-icon>\n <mat-spinner\n #spinner\n *rxIf=\"jobCount$ | push\"\n class=\"floating-spinner\"\n [color]=\"color\"\n [mode]=\"mode$ | push\"\n [value]=\"value$ | push\"\n diameter=\"30\"\n strokeWidth=\"3\"\n ></mat-spinner>\n</button>\n\n", styles: [".floating-spinner{position:absolute;height:24px!important;width:24px!important;top:12px;left:12px}\n"], dependencies: [{ kind: "directive", type: i2.RxIf, selector: "[rxIf]", inputs: ["rxIf", "rxIfStrategy", "rxIfElse", "rxIfThen", "rxIfSuspense", "rxIfComplete", "rxIfError", "rxIfContextTrigger", "rxIfNextTrigger", "rxIfSuspenseTrigger", "rxIfErrorTrigger", "rxIfCompleteTrigger", "rxIfParent", "rxIfPatchZone", "rxIfRenderCallback"] }, { kind: "directive", type: i3.RxLet, selector: "[rxLet]", inputs: ["rxLet", "rxLetStrategy", "rxLetComplete", "rxLetError", "rxLetSuspense", "rxLetContextTrigger", "rxLetCompleteTrigger", "rxLetErrorTrigger", "rxLetSuspenseTrigger", "rxLetNextTrigger", "rxLetRenderCallback", "rxLetParent", "rxLetPatchZone"], outputs: ["rendered"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i6.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i7.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }, { kind: "pipe", type: i9.RxPush, name: "push" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
203
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: JobProgressionIcon, selector: "app-job-progression-icon", inputs: { debug: "debug", titleI18n: "titleI18n", options: "options", autoHide: "autoHide", headerActions: "headerActions" }, outputs: { jobFinished: "jobFinished" }, usesInheritance: true, ngImport: i0, template: "<button\n #button\n mat-icon-button\n [title]=\"titleI18n | translate\"\n [disabled]=\"disabled\"\n *rxIf=\"visible$\"\n (click)=\"showList($event)\"\n>\n <mat-icon *rxLet=\"jobCount$; let jobCount\"\n [matBadge]=\"jobCount\"\n [matBadgeHidden]=\"!jobCount\"\n matBadgeColor=\"accent\"\n matBadgeSize=\"small\"\n matBadgePosition=\"above after\"\n aria-hidden=\"false\"\n >{{ disabled || jobCount ? 'schedule' : 'task_alt' }}\n </mat-icon>\n <mat-spinner\n #spinner\n *rxIf=\"jobCount$\"\n class=\"floating-spinner\"\n [color]=\"color\"\n [mode]=\"mode$ | push\"\n [value]=\"value$ | push\"\n diameter=\"30\"\n strokeWidth=\"3\"\n ></mat-spinner>\n</button>\n\n", styles: [".floating-spinner{position:absolute;height:24px!important;width:24px!important;top:12px;left:12px}\n"], dependencies: [{ kind: "directive", type: i2.RxIf, selector: "[rxIf]", inputs: ["rxIf", "rxIfStrategy", "rxIfElse", "rxIfThen", "rxIfSuspense", "rxIfComplete", "rxIfError", "rxIfContextTrigger", "rxIfNextTrigger", "rxIfSuspenseTrigger", "rxIfErrorTrigger", "rxIfCompleteTrigger", "rxIfParent", "rxIfPatchZone", "rxIfRenderCallback"] }, { kind: "directive", type: i3.RxLet, selector: "[rxLet]", inputs: ["rxLet", "rxLetStrategy", "rxLetComplete", "rxLetError", "rxLetSuspense", "rxLetContextTrigger", "rxLetCompleteTrigger", "rxLetErrorTrigger", "rxLetSuspenseTrigger", "rxLetNextTrigger", "rxLetRenderCallback", "rxLetParent", "rxLetPatchZone"], outputs: ["rendered"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i6.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i7.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }, { kind: "pipe", type: i9.RxPush, name: "push" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
214
204
  }
215
205
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: JobProgressionIcon, decorators: [{
216
206
  type: Component,
217
- args: [{ selector: 'app-job-progression-icon', providers: [RxState], changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n #button\n mat-icon-button\n [title]=\"titleI18n | translate\"\n [disabled]=\"disabled\"\n *rxIf=\"visible$ | push\"\n (click)=\"showList($event)\"\n>\n <mat-icon *rxLet=\"jobCount$ | push; let jobCount\"\n [matBadge]=\"jobCount\"\n [matBadgeHidden]=\"!jobCount\"\n matBadgeColor=\"accent\"\n matBadgeSize=\"small\"\n matBadgePosition=\"above after\"\n aria-hidden=\"false\"\n >{{ disabled || jobCount ? 'schedule' : 'task_alt' }}\n </mat-icon>\n <mat-spinner\n #spinner\n *rxIf=\"jobCount$ | push\"\n class=\"floating-spinner\"\n [color]=\"color\"\n [mode]=\"mode$ | push\"\n [value]=\"value$ | push\"\n diameter=\"30\"\n strokeWidth=\"3\"\n ></mat-spinner>\n</button>\n\n", styles: [".floating-spinner{position:absolute;height:24px!important;width:24px!important;top:12px;left:12px}\n"] }]
207
+ args: [{ selector: 'app-job-progression-icon', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n #button\n mat-icon-button\n [title]=\"titleI18n | translate\"\n [disabled]=\"disabled\"\n *rxIf=\"visible$\"\n (click)=\"showList($event)\"\n>\n <mat-icon *rxLet=\"jobCount$; let jobCount\"\n [matBadge]=\"jobCount\"\n [matBadgeHidden]=\"!jobCount\"\n matBadgeColor=\"accent\"\n matBadgeSize=\"small\"\n matBadgePosition=\"above after\"\n aria-hidden=\"false\"\n >{{ disabled || jobCount ? 'schedule' : 'task_alt' }}\n </mat-icon>\n <mat-spinner\n #spinner\n *rxIf=\"jobCount$\"\n class=\"floating-spinner\"\n [color]=\"color\"\n [mode]=\"mode$ | push\"\n [value]=\"value$ | push\"\n diameter=\"30\"\n strokeWidth=\"3\"\n ></mat-spinner>\n</button>\n\n", styles: [".floating-spinner{position:absolute;height:24px!important;width:24px!important;top:12px;left:12px}\n"] }]
218
208
  }], ctorParameters: () => [{ type: undefined, decorators: [{
219
209
  type: Optional
220
210
  }, {
@@ -233,4 +223,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
233
223
  }], jobFinished: [{
234
224
  type: Output
235
225
  }] } });
236
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9iLXByb2dyZXNzaW9uLmljb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC9qb2IvcHJvZ3Jlc3Npb24vam9iLXByb2dyZXNzaW9uLmljb24udHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC9qb2IvcHJvZ3Jlc3Npb24vam9iLXByb2dyZXNzaW9uLmljb24uaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQXFCLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsUUFBUSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV0SixPQUFPLEVBQUMsMkJBQTJCLEVBQXlCLE1BQU0sMkJBQTJCLENBQUM7QUFDOUYsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxlQUFlLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDbEYsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RixPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBQyxrQkFBa0IsRUFBNEIsTUFBTSx3QkFBd0IsQ0FBQztBQUdyRixPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7Ozs7O0FBeUIxQyxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsT0FBZ0M7SUEyQlQ7SUFDakQ7SUFDQTtJQTNCSCxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ2QsU0FBUyxHQUFHLDhCQUE4QixDQUFDO0lBQzNDLE9BQU8s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RUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsWUFBWSxDQUFDLENBQUM7UUFDaEQsQ0FBQztRQUNELElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDcEMsQ0FBQzt1R0E5T1Usa0JBQWtCLGtCQTJCUCwyQkFBMkI7MkZBM0J0QyxrQkFBa0IsME5BSGxCLENBQUMsT0FBTyxDQUFDLGlEQ2pDdEIseXVCQTZCQTs7MkZET2Esa0JBQWtCO2tCQVA5QixTQUFTOytCQUNFLDBCQUEwQixhQUd6QixDQUFDLE9BQU8sQ0FBQyxtQkFDSCx1QkFBdUIsQ0FBQyxNQUFNOzswQkE2QjVDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsMkJBQTJCO3lHQXpCeEMsS0FBSztzQkFBYixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWwsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1RoZW1lUGFsZXR0ZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQge0FQUF9KT0JfUFJPR1JFU1NJT05fU0VSVklDRSwgSUpvYlByb2dyZXNzaW9uU2VydmljZX0gZnJvbSAnLi9qb2ItcHJvZ3Jlc3Npb24uc2VydmljZSc7XG5pbXBvcnQge0pvYlByb2dyZXNzaW9ufSBmcm9tICcuL2pvYi1wcm9ncmVzc2lvbi5tb2RlbCc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgZGVsYXksIGlpZiwgbWVyZ2VNYXAsIG9mLCBTdWJzY3JpcHRpb24sIHRhcH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2FycmF5U2l6ZSwgaXNOaWwsIHJlbW92ZSwgdG9Cb29sZWFuLCB0b051bWJlcn0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2Z1bmN0aW9ucyc7XG5pbXBvcnQge2ZpbHRlciwgbWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1BvcG92ZXJDb250cm9sbGVyfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQge0pvYlByb2dyZXNzaW9uTGlzdCwgSm9iUHJvZ3Jlc3Npb25MaXN0T3B0aW9uc30gZnJvbSAnLi9qb2ItcHJvZ3Jlc3Npb24ubGlzdCc7XG5pbXBvcnQge0lVc2VyRXZlbnRBY3Rpb259IGZyb20gJy4uLy4uL3VzZXItZXZlbnQvdXNlci1ldmVudC5tb2RlbCc7XG5pbXBvcnQge1Byb2dyZXNzU3Bpbm5lck1vZGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xuaW1wb3J0IHtSeFN0YXRlfSBmcm9tICdAcngtYW5ndWxhci9zdGF0ZSc7XG5pbXBvcnQge09iamVjdE1hcH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBKb2JQcm9ncmVzc2lvbk9wdGlvbnMge1xuICBhdXRvSGlkZTogYm9vbGVhbjtcbiAgYXV0b0hpZGVEZWxheTogbnVtYmVyO1xuICBhdXRvUmVtb3ZlOiBib29sZWFuO1xuICBhdXRvUmVtb3ZlRGVsYXk6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBKb2JQcm9ncmVzc2lvbkljb25TdGF0ZSB7XG4gIHZpc2libGU6IGJvb2xlYW47XG4gIG1vZGU6IFByb2dyZXNzU3Bpbm5lck1vZGU7XG4gIHZhbHVlOiBudW1iZXI7XG4gIGpvYlByb2dyZXNzaW9uczogQmVoYXZpb3JTdWJqZWN0PEpvYlByb2dyZXNzaW9uPltdO1xuICBqb2JDb3VudDogbnVtYmVyO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtam9iLXByb2dyZXNzaW9uLWljb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vam9iLXByb2dyZXNzaW9uLmljb24uaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2pvYi1wcm9ncmVzc2lvbi5pY29uLnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbUnhTdGF0ZV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEpvYlByb2dyZXNzaW9uSWNvbiBleHRlbmRzIFJ4U3RhdGU8Sm9iUHJvZ3Jlc3Npb25JY29uU3RhdGU+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIEBJbnB1dCgpIGRlYnVnID0gZmFsc2U7XG4gIEBJbnB1dCgpIHRpdGxlSTE4biA9ICdTT0NJQUwuSk9CLlBST0dSRVNTSU9OLlRJVExFJztcbiAgQElucHV0KCkgb3B0aW9uczogSm9iUHJvZ3Jlc3Npb25PcHRpb25zO1xuICBASW5wdXQoKSBhdXRvSGlkZTogYm9vbGVhbjtcbiAgQElucHV0KCkgaGVhZGVyQWN0aW9uczogSVVzZXJFdmVudEFjdGlvbltdO1xuICBAT3V0cHV0KCkgam9iRmluaXNoZWQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICBkaXNhYmxlZCA9IHRydWU7XG4gIGNvbG9yOiBUaGVtZVBhbGV0dGUgPSAnYWNjZW50JztcbiAgam9iUHJvZ3Jlc3Npb25zJCA9IHRoaXMuc2VsZWN0KCdqb2JQcm9ncmVzc2lvbnMnKTtcbiAgam9iQ291bnQkID0gdGhpcy5zZWxlY3QoJ2pvYkNvdW50Jyk7XG4gIHZpc2libGUkID0gdGhpcy5zZWxlY3QoJ3Zpc2libGUnKTtcbiAgbW9kZSQgPSB0aGlzLnNlbGVjdCgnbW9kZScpO1xuICB2YWx1ZSQgPSB0aGlzLnNlbGVjdCgndmFsdWUnKTtcblxuICBwcm90ZWN0ZWQgYXV0b0hpZGVEZWxheTogbnVtYmVyO1xuICBwcm90ZWN0ZWQgYXV0b1JlbW92ZTogYm9vbGVhbjtcbiAgcHJvdGVjdGVkIGF1dG9SZW1vdmVEZWxheTogbnVtYmVyO1xuXG4gIHByaXZhdGUgX2xpc3RQb3BvdmVyOiBIVE1MSW9uUG9wb3ZlckVsZW1lbnQ7XG4gIHByaXZhdGUgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gIHByaXZhdGUgX3N1YnNjcmlwdGlvbnNCeUlkOiBPYmplY3RNYXA8U3Vic2NyaXB0aW9uPiA9IHt9O1xuICBwcml2YXRlIF9sb2dQcmVmaXggPSAnW2pvYi1wcm9ncmVzc2lvbl0gJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEFQUF9KT0JfUFJPR1JFU1NJT05fU0VSVklDRSkgcHJvdGVjdGVkIGpvYlByb2dyZXNzaW9uU2VydmljZTogSUpvYlByb2dyZXNzaW9uU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgcG9wb3ZlckNvbnRyb2xsZXI6IFBvcG92ZXJDb250cm9sbGVyLFxuICAgIHByb3RlY3RlZCBjZDogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHNldCBqb2JQcm9ncmVzc2lvbnMoam9iUHJvZ3Jlc3Npb25zOiBCZWhhdmlvclN1YmplY3Q8Sm9iUHJvZ3Jlc3Npb24+W10pIHtcbiAgICB0aGlzLnNldCgnam9iUHJvZ3Jlc3Npb25zJywgKCkgPT4gam9iUHJvZ3Jlc3Npb25zKTtcbiAgfVxuXG4gIGdldCBqb2JQcm9ncmVzc2lvbnMoKTogQmVoYXZpb3JTdWJqZWN0PEpvYlByb2dyZXNzaW9uPltdIHtcbiAgICByZXR1cm4gdGhpcy5nZXQoJ2pvYlByb2dyZXNzaW9ucycpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKGlzTmlsKHRoaXMuam9iUHJvZ3Jlc3Npb25TZXJ2aWNlKSkge1xuICAgICAgY29uc29sZS53YXJuKGAke3RoaXMuX2xvZ1ByZWZpeH1ObyBzZXJ2aWNlIGluamVjdGVkYCk7XG4gICAgfVxuICAgIC8vIHBhcnNlIG9wdGlvbnNcbiAgICB0aGlzLmF1dG9IaWRlID0gdG9Cb29sZWFuKHRoaXMuYXV0b0hpZGUsIHRoaXMub3B0aW9ucz8uYXV0b0hpZGUgfHwgZmFsc2UpO1xuICAgIHRoaXMuc2V0KHt2aXNpYmxlOiAhdGhpcy5hdXRvSGlkZSwgbW9kZTogJ2RldGVybWluYXRlJywgdmFsdWU6IDB9KTtcbiAgICB0aGlzLmF1dG9IaWRlRGVsYXkgPSB0b051bWJlcih0aGlzLm9wdGlvbnM/LmF1dG9IaWRlRGVsYXksIDEwMDApO1xuICAgIHRoaXMuYXV0b1JlbW92ZSA9IHRvQm9vbGVhbih0aGlzLm9wdGlvbnM/LmF1dG9SZW1vdmUsIHRydWUpO1xuICAgIHRoaXMuYXV0b1JlbW92ZURlbGF5ID0gdG9OdW1iZXIodGhpcy5vcHRpb25zPy5hdXRvUmVtb3ZlRGVsYXksIDEwMDApO1xuXG4gICAgaWYgKHRoaXMuam9iUHJvZ3Jlc3Npb25TZXJ2aWNlKSB7XG4gICAgICB0aGlzLmNvbm5lY3QoJ2pvYlByb2dyZXNzaW9ucycsIHRoaXMuam9iUHJvZ3Jlc3Npb25TZXJ2aWNlLndhdGNoQWxsKCksIChzdGF0ZSwgaXRlbXMpID0+IHtcbiAgICAgICAgY29uc3QgZXhpc3RpbmdKb2JJZHMgPSBzdGF0ZS5qb2JQcm9ncmVzc2lvbnM/Lm1hcChqb2IgPT4gam9iLnZhbHVlLmlkKSB8fCBbXTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gKGl0ZW1zIHx8IFtdKS5tYXAoaXRlbSA9PiB7XG4gICAgICAgICAgcmVtb3ZlKGV4aXN0aW5nSm9iSWRzLCBpZCA9PiBpZCA9PT0gaXRlbS5pZCk7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuYWRkSm9iKGl0ZW0uaWQsIGl0ZW0pO1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gUkVNT1ZFIG9sZCBqb2JzXG4gICAgICAgIGlmIChleGlzdGluZ0pvYklkcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgZXhpc3RpbmdKb2JJZHMuZm9yRWFjaChpZCA9PiB0aGlzLnJlbW92ZUpvYihpZCwge2VtaXRFdmVudDogZmFsc2V9KSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5qb2JQcm9ncmVzc2lvbnMkLnN1YnNjcmliZSh2YWx1ZSA9PiB0aGlzLnNldCh7am9iQ291bnQ6IHZhbHVlPy5sZW5ndGggfHwgMH0pXG4gICAgICApXG4gICAgKTtcblxuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5qb2JDb3VudCQucGlwZShcbiAgICAgICAgbWVyZ2VNYXAoKGNvdW50KSA9PlxuICAgICAgICAgIGlpZihcbiAgICAgICAgICAgICgpID0+IGNvdW50ID4gMCxcbiAgICAgICAgICAgIG9mKHRydWUpLFxuICAgICAgICAgICAgb2YoZmFsc2UpLnBpcGUoXG4gICAgICAgICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLmF1dG9IaWRlKSxcbiAgICAgICAgICAgICAgZGVsYXkodGhpcy5hdXRvSGlkZURlbGF5KSxcbiAgICAgICAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fbGlzdFBvcG92ZXIpIHRoaXMuX2xpc3RQb3BvdmVyLmRpc21pc3MoKTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgICkuc3Vic2NyaWJlKHZpc2libGUgPT4gdGhpcy5zZXQoe3Zpc2libGV9KSlcbiAgICApO1xuXG4gIH1cblxuICBhZGRKb2IoaWQ6IG51bWJlciwgam9iPzogSm9iUHJvZ3Jlc3Npb24pIHtcbiAgICBpZiAoaXNOaWwodGhpcy5qb2JQcm9ncmVzc2lvblNlcnZpY2UpKSB7XG4gICAgICBjb25zb2xlLndhcm4oYCR7dGhpcy5fbG9nUHJlZml4fU5vIHNlcnZpY2UgaW5qZWN0ZWQuIENhbid0IGFkZCBhIGpvYmApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCByZXN1bHQgPSB0aGlzLmdldFByb2dyZXNzaW9uKGlkKTtcbiAgICBpZiAocmVzdWx0KSB7XG4gICAgICAvL2NvbnNvbGUud2FybihgJHt0aGlzLl9sb2dQcmVmaXh9Sm9iIChpZD0ke2lkfSkgYWxyZWFkeSBwcmVzZW50YCk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBpZiAodGhpcy5kZWJ1Zykge1xuICAgICAgY29uc29sZS5kZWJ1ZyhgJHt0aGlzLl9sb2dQcmVmaXh9QWRkIGpvYiBpZD0ke2lkfWApO1xuICAgIH1cbiAgICAvLyBBZGRpbmcgZW1wdHkgam9iIHByb2dyZXNzaW9uXG4gICAgcmVzdWx0ID0gbmV3IEJlaGF2aW9yU3ViamVjdChqb2IgfHwgbmV3IEpvYlByb2dyZXNzaW9uKGlkKSk7XG5cbiAgICB0aGlzLmRpc2FibGVkID0gZmFsc2U7XG5cbiAgICBjb25zdCBzdWIgPSB0aGlzLmpvYlByb2dyZXNzaW9uU2VydmljZS5saXN0ZW5DaGFuZ2VzKGlkKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcihwcm9ncmVzc2lvbiA9PiB7XG4gICAgICAgICAgaWYgKGlkICE9PSBwcm9ncmVzc2lvbi5pZCkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgJHt0aGlzLl9sb2dQcmVmaXh9Sm9iIHByb2dyZXNzaW9uIChpZD0ke3Byb2dyZXNzaW9uLmlkfSkgZG9lc24ndCBtYXRjaCBleHBlY3RlZCBqb2IgKGlkPSR7aWR9KWApO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSksXG4gICAgICAgIG1hcChwcm9ncmVzc2lvbiA9PiB7XG4gICAgICAgICAgLy8gdXBkYXRlIGN1cnJlbnRcbiAgICAgICAgICByZXN1bHQubmV4dChwcm9ncmVzc2lvbik7XG4gICAgICAgICAgaWYgKHRoaXMuZGVidWcpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoYCR7dGhpcy5fbG9nUHJlZml4fVByb2dyZXNzaW9uIHVwZGF0ZWQgaWQ9JHtpZH1gLCBwcm9ncmVzc2lvbik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBwcm9ncmVzc2lvbjtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUocHJvZ3Jlc3Npb24gPT4ge1xuICAgICAgICAvLyB1cGRhdGUgdmFsdWVcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSgpO1xuXG4gICAgICAgIC8vIGpvYiBmaW5pc2hlZFxuICAgICAgICBpZiAocHJvZ3Jlc3Npb24udG90YWwgPiAwICYmIHByb2dyZXNzaW9uLmN1cnJlbnQgPT09IHByb2dyZXNzaW9uLnRvdGFsKSB7XG4gICAgICAgICAgaWYgKHRoaXMuZGVidWcpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoYCR7dGhpcy5fbG9nUHJlZml4fUZpbmlzaGVkIGpvYiBpZD0ke3Byb2dyZXNzaW9uLmlkfWApO1xuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBlbWl0IGV2ZW50XG4gICAgICAgICAgdGhpcy5qb2JGaW5pc2hlZC5lbWl0KHByb2dyZXNzaW9uLmlkKTtcbiAgICAgICAgICBpZiAodGhpcy5hdXRvUmVtb3ZlKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5yZW1vdmVKb2IocHJvZ3Jlc3Npb24uaWQpO1xuICAgICAgICAgICAgfSwgdGhpcy5hdXRvUmVtb3ZlRGVsYXkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zQnlJZFtpZF0gPSBzdWI7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoc3ViKTtcblxuICAgIC8vIEFkZCB0byBwcm9ncmVzc2lvblxuICAgIGNvbnN0IGpvYlByb2dyZXNzaW9ucyA9IHRoaXMuam9iUHJvZ3Jlc3Npb25zO1xuICAgIGpvYlByb2dyZXNzaW9ucy5wdXNoKHJlc3VsdCk7XG4gICAgdGhpcy5qb2JQcm9ncmVzc2lvbnMgPSBqb2JQcm9ncmVzc2lvbnM7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcmVtb3ZlSm9iKGlkOiBudW1iZXIsIG9wdHM/OiB7IGVtaXRFdmVudD86IGJvb2xlYW4gfSkge1xuICAgIGlmICh0aGlzLmRlYnVnKSB7XG4gICAgICBjb25zb2xlLmRlYnVnKGAke3RoaXMuX2xvZ1ByZWZpeH1SZW1vdmUgam9iIGlkPSR7aWR9YCk7XG4gICAgfVxuICAgIGNvbnN0IHN1YiA9IHRoaXMuX3N1YnNjcmlwdGlvbnNCeUlkW2lkXTtcbiAgICBpZiAoc3ViKSB7XG4gICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnJlbW92ZShzdWIpO1xuICAgICAgc3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIGlmICghb3B0cz8uZW1pdEV2ZW50ICE9PSBmYWxzZSkge1xuICAgICAgY29uc3QgcHJvZ3Jlc3Npb24gPSB0aGlzLmdldFByb2dyZXNzaW9uKGlkKTtcbiAgICAgIGlmIChwcm9ncmVzc2lvbikge1xuICAgICAgICBjb25zdCBqb2JQcm9ncmVzc2lvbnMgPSB0aGlzLmpvYlByb2dyZXNzaW9ucztcbiAgICAgICAgam9iUHJvZ3Jlc3Npb25zLnNwbGljZShqb2JQcm9ncmVzc2lvbnMuaW5kZXhPZihwcm9ncmVzc2lvbiksIDEpO1xuICAgICAgICB0aGlzLmpvYlByb2dyZXNzaW9ucyA9IGpvYlByb2dyZXNzaW9ucztcbiAgICAgIH1cbiAgICAgIHRoaXMudXBkYXRlVmFsdWUoKTtcbiAgICB9XG4gIH1cblxuICBnZXRQcm9ncmVzc2lvbihpZDogbnVtYmVyKTogQmVoYXZpb3JTdWJqZWN0PEpvYlByb2dyZXNzaW9uPiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuam9iUHJvZ3Jlc3Npb25zLmZpbmQocHJvZ3Jlc3Npb24gPT4gcHJvZ3Jlc3Npb24udmFsdWUuaWQgPT09IGlkKTtcbiAgfVxuXG4gIHVwZGF0ZVZhbHVlKCkge1xuICAgIGlmICh0aGlzLmRlYnVnKSB7XG4gICAgICBjb25zb2xlLmRlYnVnKGAke3RoaXMuX2xvZ1ByZWZpeH1VcGRhdGluZyB2YWx1ZWApO1xuICAgIH1cbiAgICBsZXQgdmFsdWUgPSAwO1xuICAgIGNvbnN0IG5iUHJvZ3Jlc3Npb24gPSBhcnJheVNpemUodGhpcy5qb2JQcm9ncmVzc2lvbnMpO1xuICAgIGxldCBhbGxJbmRldGVybWluYXRlID0gbmJQcm9ncmVzc2lvbiA+IDA7XG5cbiAgICB0aGlzLmpvYlByb2dyZXNzaW9uc1xuICAgICAgLm1hcChzdWJqZWN0ID0+IHN1YmplY3QudmFsdWUpXG4gICAgICAuZm9yRWFjaChwcm9ncmVzc2lvbiA9PiB7XG4gICAgICAgIGNvbnN0IGluZGV0ZXJtaW5hdGUgPSBwcm9ncmVzc2lvbi50b3RhbCA9PT0gMDtcbiAgICAgICAgYWxsSW5kZXRlcm1pbmF0ZSA9IGFsbEluZGV0ZXJtaW5hdGUgJiYgaW5kZXRlcm1pbmF0ZTtcbiAgICAgICAgaWYgKCFpbmRldGVybWluYXRlKSB7XG4gICAgICAgICAgdmFsdWUgPSB2YWx1ZSArIHByb2dyZXNzaW9uLmN1cnJlbnQgKiAxMDAgLyBwcm9ncmVzc2lvbi50b3RhbDtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICB0aGlzLnNldCh7bW9kZTogYWxsSW5kZXRlcm1pbmF0ZSA/ICdpbmRldGVybWluYXRlJyA6ICdkZXRlcm1pbmF0ZScsIHZhbHVlOiBuYlByb2dyZXNzaW9uID4gMCA/IHZhbHVlIC8gbmJQcm9ncmVzc2lvbiA6IDB9KTtcbiAgICBpZiAodGhpcy5kZWJ1Zykge1xuICAgICAgY29uc29sZS5kZWJ1ZyhgJHt0aGlzLl9sb2dQcmVmaXh9U2V0dGluZyB2YWx1ZT0ke3RoaXMuZ2V0KCd2YWx1ZScpfSwgbW9kZT0ke3RoaXMuZ2V0KCdtb2RlJyl9YCk7XG4gICAgfVxuXG4gICAgdGhpcy5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGFzeW5jIHNob3dMaXN0KGV2ZW50OiBFdmVudCkge1xuICAgIHRoaXMuX2xpc3RQb3BvdmVyID0gYXdhaXQgdGhpcy5wb3BvdmVyQ29udHJvbGxlci5jcmVhdGUoe1xuICAgICAgY29tcG9uZW50OiBKb2JQcm9ncmVzc2lvbkxpc3QsXG4gICAgICBjb21wb25lbnRQcm9wczogPEpvYlByb2dyZXNzaW9uTGlzdE9wdGlvbnM+e1xuICAgICAgICB0aXRsZUkxOG46IHRoaXMudGl0bGVJMThuLFxuICAgICAgICBqb2JQcm9ncmVzc2lvbnM6IHRoaXMuam9iUHJvZ3Jlc3Npb25zJCxcbiAgICAgICAgaGVhZGVyQWN0aW9uczogdGhpcy5oZWFkZXJBY3Rpb25zLFxuICAgICAgfSxcbiAgICAgIGJhY2tkcm9wRGlzbWlzczogdHJ1ZSxcbiAgICAgIGtleWJvYXJkQ2xvc2U6IHRydWUsXG4gICAgICBldmVudCxcbiAgICAgIHRyYW5zbHVjZW50OiB0cnVlLFxuICAgICAgY3NzQ2xhc3M6ICdwb3BvdmVyLWxhcmdlJ1xuICAgIH0pO1xuICAgIGF3YWl0IHRoaXMuX2xpc3RQb3BvdmVyLnByZXNlbnQoKTtcbiAgICBhd2FpdCB0aGlzLl9saXN0UG9wb3Zlci5vbkRpZERpc21pc3MoKTtcbiAgICB0aGlzLl9saXN0UG9wb3ZlciA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByb3RlY3RlZCBtYXJrRm9yQ2hlY2soKSB7XG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRlYnVnKSB7XG4gICAgICBjb25zb2xlLmRlYnVnKGAke3RoaXMuX2xvZ1ByZWZpeH1EZXN0cm95aW5nYCk7XG4gICAgfVxuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIiwiPGJ1dHRvblxuICAjYnV0dG9uXG4gIG1hdC1pY29uLWJ1dHRvblxuICBbdGl0bGVdPVwidGl0bGVJMThuIHwgdHJhbnNsYXRlXCJcbiAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgKnJ4SWY9XCJ2aXNpYmxlJCB8IHB1c2hcIlxuICAoY2xpY2spPVwic2hvd0xpc3QoJGV2ZW50KVwiXG4+XG4gIDxtYXQtaWNvbiAqcnhMZXQ9XCJqb2JDb3VudCQgfCBwdXNoOyBsZXQgam9iQ291bnRcIlxuICAgIFttYXRCYWRnZV09XCJqb2JDb3VudFwiXG4gICAgW21hdEJhZGdlSGlkZGVuXT1cIiFqb2JDb3VudFwiXG4gICAgbWF0QmFkZ2VDb2xvcj1cImFjY2VudFwiXG4gICAgbWF0QmFkZ2VTaXplPVwic21hbGxcIlxuICAgIG1hdEJhZGdlUG9zaXRpb249XCJhYm92ZSBhZnRlclwiXG4gICAgICAgICAgICBhcmlhLWhpZGRlbj1cImZhbHNlXCJcbiAgPnt7IGRpc2FibGVkIHx8IGpvYkNvdW50ID8gJ3NjaGVkdWxlJyA6ICd0YXNrX2FsdCcgfX1cbiAgPC9tYXQtaWNvbj5cbiAgPG1hdC1zcGlubmVyXG4gICAgI3NwaW5uZXJcbiAgICAqcnhJZj1cImpvYkNvdW50JCB8IHB1c2hcIlxuICAgIGNsYXNzPVwiZmxvYXRpbmctc3Bpbm5lclwiXG4gICAgW2NvbG9yXT1cImNvbG9yXCJcbiAgICBbbW9kZV09XCJtb2RlJCB8IHB1c2hcIlxuICAgIFt2YWx1ZV09XCJ2YWx1ZSQgfCBwdXNoXCJcbiAgICBkaWFtZXRlcj1cIjMwXCJcbiAgICBzdHJva2VXaWR0aD1cIjNcIlxuICA+PC9tYXQtc3Bpbm5lcj5cbjwvYnV0dG9uPlxuXG4iXX0=
226
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9iLXByb2dyZXNzaW9uLmljb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC9qb2IvcHJvZ3Jlc3Npb24vam9iLXByb2dyZXNzaW9uLmljb24udHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC9qb2IvcHJvZ3Jlc3Npb24vam9iLXByb2dyZXNzaW9uLmljb24uaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQXFCLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsUUFBUSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV0SixPQUFPLEVBQUMsMkJBQTJCLEVBQXlCLE1BQU0sMkJBQTJCLENBQUM7QUFDOUYsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxlQUFlLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDbEYsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RixPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBQyxrQkFBa0IsRUFBNEIsTUFBTSx3QkFBd0IsQ0FBQztBQUdyRixPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7Ozs7O0FBeUIxQyxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsT0FBZ0M7SUEyQlQ7SUFDakQ7SUFDQTtJQTNCSCxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ2QsU0FBUyxHQUFHLDhCQUE4QixDQUFDO0lBQzNDLE9BQU8s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cnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VGhlbWVQYWxldHRlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7QVBQX0pPQl9QUk9HUkVTU0lPTl9TRVJWSUNFLCBJSm9iUHJvZ3Jlc3Npb25TZXJ2aWNlfSBmcm9tICcuL2pvYi1wcm9ncmVzc2lvbi5zZXJ2aWNlJztcbmltcG9ydCB7Sm9iUHJvZ3Jlc3Npb259IGZyb20gJy4vam9iLXByb2dyZXNzaW9uLm1vZGVsJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBkZWxheSwgaWlmLCBtZXJnZU1hcCwgb2YsIFN1YnNjcmlwdGlvbiwgdGFwfSBmcm9tICdyeGpzJztcbmltcG9ydCB7YXJyYXlTaXplLCBpc05pbCwgcmVtb3ZlLCB0b0Jvb2xlYW4sIHRvTnVtYmVyfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcbmltcG9ydCB7ZmlsdGVyLCBtYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7UG9wb3ZlckNvbnRyb2xsZXJ9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7Sm9iUHJvZ3Jlc3Npb25MaXN0LCBKb2JQcm9ncmVzc2lvbkxpc3RPcHRpb25zfSBmcm9tICcuL2pvYi1wcm9ncmVzc2lvbi5saXN0JztcbmltcG9ydCB7SVVzZXJFdmVudEFjdGlvbn0gZnJvbSAnLi4vLi4vdXNlci1ldmVudC91c2VyLWV2ZW50Lm1vZGVsJztcbmltcG9ydCB7UHJvZ3Jlc3NTcGlubmVyTW9kZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5pbXBvcnQge1J4U3RhdGV9IGZyb20gJ0ByeC1hbmd1bGFyL3N0YXRlJztcbmltcG9ydCB7T2JqZWN0TWFwfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEpvYlByb2dyZXNzaW9uT3B0aW9ucyB7XG4gIGF1dG9IaWRlOiBib29sZWFuO1xuICBhdXRvSGlkZURlbGF5OiBudW1iZXI7XG4gIGF1dG9SZW1vdmU6IGJvb2xlYW47XG4gIGF1dG9SZW1vdmVEZWxheTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEpvYlByb2dyZXNzaW9uSWNvblN0YXRlIHtcbiAgdmlzaWJsZTogYm9vbGVhbjtcbiAgbW9kZTogUHJvZ3Jlc3NTcGlubmVyTW9kZTtcbiAgdmFsdWU6IG51bWJlcjtcbiAgam9iUHJvZ3Jlc3Npb25zOiBCZWhhdmlvclN1YmplY3Q8Sm9iUHJvZ3Jlc3Npb24+W107XG4gIGpvYkNvdW50OiBudW1iZXI7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1qb2ItcHJvZ3Jlc3Npb24taWNvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9qb2ItcHJvZ3Jlc3Npb24uaWNvbi5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vam9iLXByb2dyZXNzaW9uLmljb24uc2NzcyddLFxuICAvLyBwcm92aWRlcnM6IFtSeFN0YXRlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgSm9iUHJvZ3Jlc3Npb25JY29uIGV4dGVuZHMgUnhTdGF0ZTxKb2JQcm9ncmVzc2lvbkljb25TdGF0ZT4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgQElucHV0KCkgZGVidWcgPSBmYWxzZTtcbiAgQElucHV0KCkgdGl0bGVJMThuID0gJ1NPQ0lBTC5KT0IuUFJPR1JFU1NJT04uVElUTEUnO1xuICBASW5wdXQoKSBvcHRpb25zOiBKb2JQcm9ncmVzc2lvbk9wdGlvbnM7XG4gIEBJbnB1dCgpIGF1dG9IaWRlOiBib29sZWFuO1xuICBASW5wdXQoKSBoZWFkZXJBY3Rpb25zOiBJVXNlckV2ZW50QWN0aW9uW107XG4gIEBPdXRwdXQoKSBqb2JGaW5pc2hlZCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIGRpc2FibGVkID0gdHJ1ZTtcbiAgY29sb3I6IFRoZW1lUGFsZXR0ZSA9ICdhY2NlbnQnO1xuICBqb2JQcm9ncmVzc2lvbnMkID0gdGhpcy5zZWxlY3QoJ2pvYlByb2dyZXNzaW9ucycpO1xuICBqb2JDb3VudCQgPSB0aGlzLnNlbGVjdCgnam9iQ291bnQnKTtcbiAgdmlzaWJsZSQgPSB0aGlzLnNlbGVjdCgndmlzaWJsZScpO1xuICBtb2RlJCA9IHRoaXMuc2VsZWN0KCdtb2RlJyk7XG4gIHZhbHVlJCA9IHRoaXMuc2VsZWN0KCd2YWx1ZScpO1xuXG4gIHByb3RlY3RlZCBhdXRvSGlkZURlbGF5OiBudW1iZXI7XG4gIHByb3RlY3RlZCBhdXRvUmVtb3ZlOiBib29sZWFuO1xuICBwcm90ZWN0ZWQgYXV0b1JlbW92ZURlbGF5OiBudW1iZXI7XG5cbiAgcHJpdmF0ZSBfbGlzdFBvcG92ZXI6IEhUTUxJb25Qb3BvdmVyRWxlbWVudDtcbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uc0J5SWQ6IE9iamVjdE1hcDxTdWJzY3JpcHRpb24+ID0ge307XG4gIHByaXZhdGUgX2xvZ1ByZWZpeCA9ICdbam9iLXByb2dyZXNzaW9uXSAnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQVBQX0pPQl9QUk9HUkVTU0lPTl9TRVJWSUNFKSBwcm90ZWN0ZWQgam9iUHJvZ3Jlc3Npb25TZXJ2aWNlOiBJSm9iUHJvZ3Jlc3Npb25TZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBwb3BvdmVyQ29udHJvbGxlcjogUG9wb3ZlckNvbnRyb2xsZXIsXG4gICAgcHJvdGVjdGVkIGNkOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgZ2V0IGpvYlByb2dyZXNzaW9ucygpOiBCZWhhdmlvclN1YmplY3Q8Sm9iUHJvZ3Jlc3Npb24+W10ge1xuICAgIHJldHVybiB0aGlzLmdldCgnam9iUHJvZ3Jlc3Npb25zJyk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoaXNOaWwodGhpcy5qb2JQcm9ncmVzc2lvblNlcnZpY2UpKSB7XG4gICAgICBjb25zb2xlLndhcm4oYCR7dGhpcy5fbG9nUHJlZml4fU5vIHNlcnZpY2UgaW5qZWN0ZWRgKTtcbiAgICB9XG4gICAgLy8gcGFyc2Ugb3B0aW9uc1xuICAgIHRoaXMuYXV0b0hpZGUgPSB0b0Jvb2xlYW4odGhpcy5hdXRvSGlkZSwgdGhpcy5vcHRpb25zPy5hdXRvSGlkZSB8fCBmYWxzZSk7XG4gICAgdGhpcy5zZXQoe3Zpc2libGU6ICF0aGlzLmF1dG9IaWRlLCBtb2RlOiAnZGV0ZXJtaW5hdGUnLCB2YWx1ZTogMH0pO1xuICAgIHRoaXMuYXV0b0hpZGVEZWxheSA9IHRvTnVtYmVyKHRoaXMub3B0aW9ucz8uYXV0b0hpZGVEZWxheSwgMTAwMCk7XG4gICAgdGhpcy5hdXRvUmVtb3ZlID0gdG9Cb29sZWFuKHRoaXMub3B0aW9ucz8uYXV0b1JlbW92ZSwgdHJ1ZSk7XG4gICAgdGhpcy5hdXRvUmVtb3ZlRGVsYXkgPSB0b051bWJlcih0aGlzLm9wdGlvbnM/LmF1dG9SZW1vdmVEZWxheSwgMTAwMCk7XG5cbiAgICBpZiAodGhpcy5qb2JQcm9ncmVzc2lvblNlcnZpY2UpIHtcbiAgICAgIHRoaXMuY29ubmVjdCgnam9iUHJvZ3Jlc3Npb25zJywgdGhpcy5qb2JQcm9ncmVzc2lvblNlcnZpY2Uud2F0Y2hBbGwoKSwgKHN0YXRlLCBpdGVtcykgPT4ge1xuICAgICAgICBjb25zdCBleGlzdGluZ0pvYklkcyA9IHN0YXRlLmpvYlByb2dyZXNzaW9ucz8ubWFwKGpvYiA9PiBqb2IudmFsdWUuaWQpIHx8IFtdO1xuICAgICAgICBjb25zdCByZXN1bHQgPSAoaXRlbXMgfHwgW10pLm1hcChpdGVtID0+IHtcbiAgICAgICAgICByZW1vdmUoZXhpc3RpbmdKb2JJZHMsIGlkID0+IGlkID09PSBpdGVtLmlkKTtcbiAgICAgICAgICAvLyBBZGQgam9iIHRvIGxpc3RlblxuICAgICAgICAgIHJldHVybiB0aGlzLnN0YXJ0TGlzdGVuSm9iKGl0ZW0uaWQsIGl0ZW0pO1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gUmVtb3ZlIG9sZCBqb2JzXG4gICAgICAgIGlmIChleGlzdGluZ0pvYklkcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgZXhpc3RpbmdKb2JJZHMuZm9yRWFjaChpZCA9PiB0aGlzLnN0b3BMaXN0ZW5Kb2IoaWQsIHtlbWl0RXZlbnQ6IGZhbHNlfSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmNvbm5lY3QoJ2pvYkNvdW50JywgdGhpcy5qb2JQcm9ncmVzc2lvbnMkLCAocywgam9icykgPT4gcy5qb2JDb3VudCA9IGpvYnM/Lmxlbmd0aCB8fCAwKTtcblxuICAgIHRoaXMuY29ubmVjdCgndmlzaWJsZScsIHRoaXMuam9iQ291bnQkLnBpcGUoXG4gICAgICAgIG1lcmdlTWFwKChjb3VudCkgPT5cbiAgICAgICAgICBpaWYoXG4gICAgICAgICAgICAoKSA9PiBjb3VudCA+IDAsXG4gICAgICAgICAgICBvZih0cnVlKSxcbiAgICAgICAgICAgIG9mKGZhbHNlKS5waXBlKFxuICAgICAgICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5hdXRvSGlkZSksXG4gICAgICAgICAgICAgIGRlbGF5KHRoaXMuYXV0b0hpZGVEZWxheSksXG4gICAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2xpc3RQb3BvdmVyKSB0aGlzLl9saXN0UG9wb3Zlci5kaXNtaXNzKCk7XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApXG4gICAgKTtcblxuICB9XG5cbiAgcHJvdGVjdGVkIHN0YXJ0TGlzdGVuSm9iKGlkOiBudW1iZXIsIGpvYj86IEpvYlByb2dyZXNzaW9uKSB7XG4gICAgaWYgKGlzTmlsKHRoaXMuam9iUHJvZ3Jlc3Npb25TZXJ2aWNlKSkge1xuICAgICAgY29uc29sZS53YXJuKGAke3RoaXMuX2xvZ1ByZWZpeH1ObyBzZXJ2aWNlIGluamVjdGVkLiBDYW4ndCBhZGQgYSBqb2JgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgcmVzdWx0ID0gdGhpcy5nZXRQcm9ncmVzc2lvbihpZCk7XG4gICAgaWYgKHJlc3VsdCkge1xuICAgICAgLy9jb25zb2xlLndhcm4oYCR7dGhpcy5fbG9nUHJlZml4fUpvYiAoaWQ9JHtpZH0pIGFscmVhZHkgcHJlc2VudGApO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgaWYgKHRoaXMuZGVidWcpIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoYCR7dGhpcy5fbG9nUHJlZml4fUFkZCBqb2IgaWQ9JHtpZH1gKTtcbiAgICB9XG4gICAgLy8gQWRkaW5nIGVtcHR5IGpvYiBwcm9ncmVzc2lvblxuICAgIHJlc3VsdCA9IG5ldyBCZWhhdmlvclN1YmplY3Qoam9iIHx8IG5ldyBKb2JQcm9ncmVzc2lvbihpZCkpO1xuXG4gICAgdGhpcy5kaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgY29uc3Qgc3ViID0gdGhpcy5qb2JQcm9ncmVzc2lvblNlcnZpY2UubGlzdGVuQ2hhbmdlcyhpZClcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIocHJvZ3Jlc3Npb24gPT4ge1xuICAgICAgICAgIGlmIChpZCAhPT0gcHJvZ3Jlc3Npb24uaWQpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYCR7dGhpcy5fbG9nUHJlZml4fUpvYiBwcm9ncmVzc2lvbiAoaWQ9JHtwcm9ncmVzc2lvbi5pZH0pIGRvZXNuJ3QgbWF0Y2ggZXhwZWN0ZWQgam9iIChpZD0ke2lkfSlgKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0pLFxuICAgICAgICBtYXAocHJvZ3Jlc3Npb24gPT4ge1xuICAgICAgICAgIC8vIHVwZGF0ZSBjdXJyZW50XG4gICAgICAgICAgcmVzdWx0Lm5leHQocHJvZ3Jlc3Npb24pO1xuICAgICAgICAgIGlmICh0aGlzLmRlYnVnKSB7XG4gICAgICAgICAgICBjb25zb2xlLmRlYnVnKGAke3RoaXMuX2xvZ1ByZWZpeH1Qcm9ncmVzc2lvbiB1cGRhdGVkIGlkPSR7aWR9YCwgcHJvZ3Jlc3Npb24pO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcHJvZ3Jlc3Npb247XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHByb2dyZXNzaW9uID0+IHtcbiAgICAgICAgLy8gdXBkYXRlIHZhbHVlXG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoKTtcblxuICAgICAgICAvLyBqb2IgZmluaXNoZWRcbiAgICAgICAgaWYgKHByb2dyZXNzaW9uLnRvdGFsID4gMCAmJiBwcm9ncmVzc2lvbi5jdXJyZW50ID09PSBwcm9ncmVzc2lvbi50b3RhbCkge1xuICAgICAgICAgIGlmICh0aGlzLmRlYnVnKSB7XG4gICAgICAgICAgICBjb25zb2xlLmRlYnVnKGAke3RoaXMuX2xvZ1ByZWZpeH1GaW5pc2hlZCBqb2IgaWQ9JHtwcm9ncmVzc2lvbi5pZH1gKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gZW1pdCBldmVudFxuICAgICAgICAgIHRoaXMuam9iRmluaXNoZWQuZW1pdChwcm9ncmVzc2lvbi5pZCk7XG4gICAgICAgICAgaWYgKHRoaXMuYXV0b1JlbW92ZSkge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuc3RvcExpc3RlbkpvYihwcm9ncmVzc2lvbi5pZCk7XG4gICAgICAgICAgICB9LCB0aGlzLmF1dG9SZW1vdmVEZWxheSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnNCeUlkW2lkXSA9IHN1YjtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChzdWIpO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByb3RlY3RlZCBzdG9wTGlzdGVuSm9iKGlkOiBudW1iZXIsIG9wdHM/OiB7IGVtaXRFdmVudD86IGJvb2xlYW4gfSkge1xuICAgIGlmICh0aGlzLmRlYnVnKSB7XG4gICAgICBjb25zb2xlLmRlYnVnKGAke3RoaXMuX2xvZ1ByZWZpeH1SZW1vdmUgam9iIGlkPSR7aWR9YCk7XG4gICAgfVxuICAgIGNvbnN0IHN1YiA9IHRoaXMuX3N1YnNjcmlwdGlvbnNCeUlkW2lkXTtcbiAgICBpZiAoc3ViKSB7XG4gICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnJlbW92ZShzdWIpO1xuICAgICAgc3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIC8vIFJlbW92ZSBqb2IgZnJvbSBzZXJ2aWNlXG4gICAgdGhpcy5qb2JQcm9ncmVzc2lvblNlcnZpY2UucmVtb3ZlSm9iKGlkKTtcbiAgICBpZiAoIW9wdHM/LmVtaXRFdmVudCAhPT0gZmFsc2UpIHtcbiAgICAgIHRoaXMudXBkYXRlVmFsdWUoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0UHJvZ3Jlc3Npb24oaWQ6IG51bWJlcik6IEJlaGF2aW9yU3ViamVjdDxKb2JQcm9ncmVzc2lvbj4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmpvYlByb2dyZXNzaW9ucy5maW5kKHByb2dyZXNzaW9uID0+IHByb2dyZXNzaW9uLnZhbHVlLmlkID09PSBpZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdXBkYXRlVmFsdWUoKSB7XG4gICAgaWYgKHRoaXMuZGVidWcpIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoYCR7dGhpcy5fbG9nUHJlZml4fVVwZGF0aW5nIHZhbHVlYCk7XG4gICAgfVxuICAgIGxldCB2YWx1ZSA9IDA7XG4gICAgY29uc3QgbmJQcm9ncmVzc2lvbiA9IGFycmF5U2l6ZSh0aGlzLmpvYlByb2dyZXNzaW9ucyk7XG4gICAgbGV0IGFsbEluZGV0ZXJtaW5hdGUgPSBuYlByb2dyZXNzaW9uID4gMDtcblxuICAgIHRoaXMuam9iUHJvZ3Jlc3Npb25zXG4gICAgICAubWFwKHN1YmplY3QgPT4gc3ViamVjdC52YWx1ZSlcbiAgICAgIC5mb3JFYWNoKHByb2dyZXNzaW9uID0+IHtcbiAgICAgICAgY29uc3QgaW5kZXRlcm1pbmF0ZSA9IHByb2dyZXNzaW9uLnRvdGFsID09PSAwO1xuICAgICAgICBhbGxJbmRldGVybWluYXRlID0gYWxsSW5kZXRlcm1pbmF0ZSAmJiBpbmRldGVybWluYXRlO1xuICAgICAgICBpZiAoIWluZGV0ZXJtaW5hdGUpIHtcbiAgICAgICAgICB2YWx1ZSA9IHZhbHVlICsgcHJvZ3Jlc3Npb24uY3VycmVudCAqIDEwMCAvIHByb2dyZXNzaW9uLnRvdGFsO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHRoaXMuc2V0KHttb2RlOiBhbGxJbmRldGVybWluYXRlID8gJ2luZGV0ZXJtaW5hdGUnIDogJ2RldGVybWluYXRlJywgdmFsdWU6IG5iUHJvZ3Jlc3Npb24gPiAwID8gdmFsdWUgLyBuYlByb2dyZXNzaW9uIDogMH0pO1xuICAgIGlmICh0aGlzLmRlYnVnKSB7XG4gICAgICBjb25zb2xlLmRlYnVnKGAke3RoaXMuX2xvZ1ByZWZpeH1TZXR0aW5nIHZhbHVlPSR7dGhpcy5nZXQoJ3ZhbHVlJyl9LCBtb2RlPSR7dGhpcy5nZXQoJ21vZGUnKX1gKTtcbiAgICB9XG5cbiAgICB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgYXN5bmMgc2hvd0xpc3QoZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5fbGlzdFBvcG92ZXIgPSBhd2FpdCB0aGlzLnBvcG92ZXJDb250cm9sbGVyLmNyZWF0ZSh7XG4gICAgICBjb21wb25lbnQ6IEpvYlByb2dyZXNzaW9uTGlzdCxcbiAgICAgIGNvbXBvbmVudFByb3BzOiA8Sm9iUHJvZ3Jlc3Npb25MaXN0T3B0aW9ucz57XG4gICAgICAgIHRpdGxlSTE4bjogdGhpcy50aXRsZUkxOG4sXG4gICAgICAgIGpvYlByb2dyZXNzaW9uczogdGhpcy5qb2JQcm9ncmVzc2lvbnMkLFxuICAgICAgICBoZWFkZXJBY3Rpb25zOiB0aGlzLmhlYWRlckFjdGlvbnMsXG4gICAgICB9LFxuICAgICAgYmFja2Ryb3BEaXNtaXNzOiB0cnVlLFxuICAgICAga2V5Ym9hcmRDbG9zZTogdHJ1ZSxcbiAgICAgIGV2ZW50LFxuICAgICAgdHJhbnNsdWNlbnQ6IHRydWUsXG4gICAgICBjc3NDbGFzczogJ3BvcG92ZXItbGFyZ2UnXG4gICAgfSk7XG4gICAgYXdhaXQgdGhpcy5fbGlzdFBvcG92ZXIucHJlc2VudCgpO1xuICAgIGF3YWl0IHRoaXMuX2xpc3RQb3BvdmVyLm9uRGlkRGlzbWlzcygpO1xuICAgIHRoaXMuX2xpc3RQb3BvdmVyID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJvdGVjdGVkIG1hcmtGb3JDaGVjaygpIHtcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGVidWcpIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoYCR7dGhpcy5fbG9nUHJlZml4fURlc3Ryb3lpbmdgKTtcbiAgICB9XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iLCI8YnV0dG9uXG4gICNidXR0b25cbiAgbWF0LWljb24tYnV0dG9uXG4gIFt0aXRsZV09XCJ0aXRsZUkxOG4gfCB0cmFuc2xhdGVcIlxuICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAqcnhJZj1cInZpc2libGUkXCJcbiAgKGNsaWNrKT1cInNob3dMaXN0KCRldmVudClcIlxuPlxuICA8bWF0LWljb24gKnJ4TGV0PVwiam9iQ291bnQkOyBsZXQgam9iQ291bnRcIlxuICAgIFttYXRCYWRnZV09XCJqb2JDb3VudFwiXG4gICAgW21hdEJhZGdlSGlkZGVuXT1cIiFqb2JDb3VudFwiXG4gICAgbWF0QmFkZ2VDb2xvcj1cImFjY2VudFwiXG4gICAgbWF0QmFkZ2VTaXplPVwic21hbGxcIlxuICAgIG1hdEJhZGdlUG9zaXRpb249XCJhYm92ZSBhZnRlclwiXG4gICAgICAgICAgICBhcmlhLWhpZGRlbj1cImZhbHNlXCJcbiAgPnt7IGRpc2FibGVkIHx8IGpvYkNvdW50ID8gJ3NjaGVkdWxlJyA6ICd0YXNrX2FsdCcgfX1cbiAgPC9tYXQtaWNvbj5cbiAgPG1hdC1zcGlubmVyXG4gICAgI3NwaW5uZXJcbiAgICAqcnhJZj1cImpvYkNvdW50JFwiXG4gICAgY2xhc3M9XCJmbG9hdGluZy1zcGlubmVyXCJcbiAgICBbY29sb3JdPVwiY29sb3JcIlxuICAgIFttb2RlXT1cIm1vZGUkIHwgcHVzaFwiXG4gICAgW3ZhbHVlXT1cInZhbHVlJCB8IHB1c2hcIlxuICAgIGRpYW1ldGVyPVwiMzBcIlxuICAgIHN0cm9rZVdpZHRoPVwiM1wiXG4gID48L21hdC1zcGlubmVyPlxuPC9idXR0b24+XG5cbiJdfQ==
@@ -2,9 +2,11 @@ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "@ionic/angular";
4
4
  import * as i2 from "@angular/common";
5
- import * as i3 from "./job-progression.component";
6
- import * as i4 from "@ngx-translate/core";
7
- import * as i5 from "../../../shared/pipes/arrays.pipe";
5
+ import * as i3 from "@rx-angular/template/for";
6
+ import * as i4 from "@rx-angular/template/if";
7
+ import * as i5 from "./job-progression.component";
8
+ import * as i6 from "@ngx-translate/core";
9
+ import * as i7 from "../../../shared/pipes/arrays.pipe";
8
10
  export class JobProgressionList {
9
11
  popoverController;
10
12
  titleI18n;
@@ -13,6 +15,8 @@ export class JobProgressionList {
13
15
  constructor(popoverController) {
14
16
  this.popoverController = popoverController;
15
17
  }
18
+ ngOnInit() {
19
+ }
16
20
  async executeAction(event, action) {
17
21
  if (event?.defaultPrevented)
18
22
  return; // Skip if prevented
@@ -31,11 +35,11 @@ export class JobProgressionList {
31
35
  }
32
36
  }
33
37
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: JobProgressionList, deps: [{ token: i1.PopoverController }], target: i0.ɵɵFactoryTarget.Component });
34
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: JobProgressionList, selector: "app-job-progression-list", inputs: { titleI18n: "titleI18n", headerActions: "headerActions", jobProgressions: "jobProgressions" }, ngImport: i0, template: "<ion-list class=\"ion-list-popover\">\n\n <ion-row class=\"ion-list-header column\">\n <ion-col>\n <ion-label>{{titleI18n | translate}}</ion-label>\n </ion-col>\n <ion-col size=\"auto\" class=\"header-action\">\n <ion-text *ngFor=\"let action of headerActions\">\n <a (click)=\"executeAction($event, action)\" [title]=\"(action.title || action.name) |translate\">{{ action.name | translate }}</a>\n </ion-text>\n </ion-col>\n </ion-row>\n\n <ng-container>\n <ion-item *ngIf=\"jobProgressions | async | isEmptyArray\">\n {{'SOCIAL.JOB.PROGRESSION.EMPTY' | translate}}\n </ion-item>\n <app-job-progression-component\n *ngFor=\"let item$ of jobProgressions | async\"\n [jobProgression$]=\"item$\">\n </app-job-progression-component>\n </ng-container>\n\n</ion-list>\n", styles: [":host(.popover-viewport){overflow-y:auto;-webkit-user-select:none;user-select:none}.header-action{text-align:end;margin-right:8px}.header-action a{cursor:pointer;color:var(--ion-color-contrast)}.header-action a:hover{text-decoration:underline}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i1.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i1.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i1.IonRow, selector: "ion-row" }, { kind: "component", type: i1.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i3.JobProgressionComponent, selector: "app-job-progression-component", inputs: ["showName", "jobProgression$"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: i5.EmptyArrayPipe, name: "isEmptyArray" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
38
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: JobProgressionList, selector: "app-job-progression-list", inputs: { titleI18n: "titleI18n", headerActions: "headerActions", jobProgressions: "jobProgressions" }, ngImport: i0, template: "<ion-list class=\"ion-list-popover\">\n\n <ion-row class=\"ion-list-header column\">\n <ion-col>\n <ion-label>{{titleI18n | translate}}</ion-label>\n </ion-col>\n <ion-col size=\"auto\" class=\"header-action\">\n <ion-text *ngFor=\"let action of headerActions\">\n <a (click)=\"executeAction($event, action)\" [title]=\"(action.title || action.name) |translate\">{{ action.name | translate }}</a>\n </ion-text>\n </ion-col>\n </ion-row>\n\n <ng-container>\n <ion-item *rxIf=\"jobProgressions | async | isEmptyArray\">\n {{'SOCIAL.JOB.PROGRESSION.EMPTY' | translate}}\n </ion-item>\n <app-job-progression-component\n *rxFor=\"let item$ of jobProgressions\"\n [jobProgression$]=\"item$\">\n </app-job-progression-component>\n </ng-container>\n\n</ion-list>\n", styles: [":host(.popover-viewport){overflow-y:auto;-webkit-user-select:none;user-select:none}.header-action{text-align:end;margin-right:8px}.header-action a{cursor:pointer;color:var(--ion-color-contrast)}.header-action a:hover{text-decoration:underline}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i1.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i1.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i1.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i1.IonRow, selector: "ion-row" }, { kind: "component", type: i1.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i3.RxFor, selector: "[rxFor][rxForOf]", inputs: ["rxForOf", "rxForTemplate", "rxForStrategy", "rxForParent", "rxForPatchZone", "rxForTrackBy", "rxForRenderCallback"] }, { kind: "directive", type: i4.RxIf, selector: "[rxIf]", inputs: ["rxIf", "rxIfStrategy", "rxIfElse", "rxIfThen", "rxIfSuspense", "rxIfComplete", "rxIfError", "rxIfContextTrigger", "rxIfNextTrigger", "rxIfSuspenseTrigger", "rxIfErrorTrigger", "rxIfCompleteTrigger", "rxIfParent", "rxIfPatchZone", "rxIfRenderCallback"] }, { kind: "component", type: i5.JobProgressionComponent, selector: "app-job-progression-component", inputs: ["showName", "jobProgression$"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }, { kind: "pipe", type: i7.EmptyArrayPipe, name: "isEmptyArray" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
35
39
  }
36
40
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: JobProgressionList, decorators: [{
37
41
  type: Component,
38
- args: [{ selector: 'app-job-progression-list', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ion-list class=\"ion-list-popover\">\n\n <ion-row class=\"ion-list-header column\">\n <ion-col>\n <ion-label>{{titleI18n | translate}}</ion-label>\n </ion-col>\n <ion-col size=\"auto\" class=\"header-action\">\n <ion-text *ngFor=\"let action of headerActions\">\n <a (click)=\"executeAction($event, action)\" [title]=\"(action.title || action.name) |translate\">{{ action.name | translate }}</a>\n </ion-text>\n </ion-col>\n </ion-row>\n\n <ng-container>\n <ion-item *ngIf=\"jobProgressions | async | isEmptyArray\">\n {{'SOCIAL.JOB.PROGRESSION.EMPTY' | translate}}\n </ion-item>\n <app-job-progression-component\n *ngFor=\"let item$ of jobProgressions | async\"\n [jobProgression$]=\"item$\">\n </app-job-progression-component>\n </ng-container>\n\n</ion-list>\n", styles: [":host(.popover-viewport){overflow-y:auto;-webkit-user-select:none;user-select:none}.header-action{text-align:end;margin-right:8px}.header-action a{cursor:pointer;color:var(--ion-color-contrast)}.header-action a:hover{text-decoration:underline}\n"] }]
42
+ args: [{ selector: 'app-job-progression-list', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ion-list class=\"ion-list-popover\">\n\n <ion-row class=\"ion-list-header column\">\n <ion-col>\n <ion-label>{{titleI18n | translate}}</ion-label>\n </ion-col>\n <ion-col size=\"auto\" class=\"header-action\">\n <ion-text *ngFor=\"let action of headerActions\">\n <a (click)=\"executeAction($event, action)\" [title]=\"(action.title || action.name) |translate\">{{ action.name | translate }}</a>\n </ion-text>\n </ion-col>\n </ion-row>\n\n <ng-container>\n <ion-item *rxIf=\"jobProgressions | async | isEmptyArray\">\n {{'SOCIAL.JOB.PROGRESSION.EMPTY' | translate}}\n </ion-item>\n <app-job-progression-component\n *rxFor=\"let item$ of jobProgressions\"\n [jobProgression$]=\"item$\">\n </app-job-progression-component>\n </ng-container>\n\n</ion-list>\n", styles: [":host(.popover-viewport){overflow-y:auto;-webkit-user-select:none;user-select:none}.header-action{text-align:end;margin-right:8px}.header-action a{cursor:pointer;color:var(--ion-color-contrast)}.header-action a:hover{text-decoration:underline}\n"] }]
39
43
  }], ctorParameters: () => [{ type: i1.PopoverController }], propDecorators: { titleI18n: [{
40
44
  type: Input
41
45
  }], headerActions: [{
@@ -43,4 +47,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
43
47
  }], jobProgressions: [{
44
48
  type: Input
45
49
  }] } });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9iLXByb2dyZXNzaW9uLmxpc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC9qb2IvcHJvZ3Jlc3Npb24vam9iLXByb2dyZXNzaW9uLmxpc3QudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC9qb2IvcHJvZ3Jlc3Npb24vam9iLXByb2dyZXNzaW9uLmxpc3QuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQWtCeEUsTUFBTSxPQUFPLGtCQUFrQjtJQU1QO0lBSmIsU0FBUyxDQUFTO0lBQ2xCLGFBQWEsQ0FBcUI7SUFDbEMsZUFBZSxDQUEyQztJQUVuRSxZQUFzQixpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtJQUMxRCxDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWEsQ0FDakIsS0FBWSxFQUNaLE1BQXdCO1FBRXhCLElBQUksS0FBSyxFQUFFLGdCQUFnQjtZQUFFLE9BQU8sQ0FBQyxvQkFBb0I7UUFFekQsK0RBQStEO1FBQy9ELElBQUksS0FBSztZQUFFLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUVsQyw2QkFBNkI7UUFDN0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQztZQUNILE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDNUMsSUFBSSxHQUFHLFlBQVksT0FBTztnQkFBRSxNQUFNLEdBQUcsQ0FBQztRQUN4QyxDQUFDO1FBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNiLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckIsQ0FBQztJQUNILENBQUM7dUdBMUJVLGtCQUFrQjsyRkFBbEIsa0JBQWtCLHdLQ2xCL0IsK3pCQXdCQTs7MkZETmEsa0JBQWtCO2tCQU45QixTQUFTOytCQUNFLDBCQUEwQixtQkFHbkIsdUJBQXVCLENBQUMsTUFBTTtzRkFJdEMsU0FBUztzQkFBakIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Sm9iUHJvZ3Jlc3Npb259IGZyb20gJy4vam9iLXByb2dyZXNzaW9uLm1vZGVsJztcbmltcG9ydCB7SVVzZXJFdmVudEFjdGlvbn0gZnJvbSAnLi4vLi4vdXNlci1ldmVudC91c2VyLWV2ZW50Lm1vZGVsJztcbmltcG9ydCB7UG9wb3ZlckNvbnRyb2xsZXJ9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSm9iUHJvZ3Jlc3Npb25MaXN0T3B0aW9ucyB7XG4gIHRpdGxlSTE4bj86IHN0cmluZztcbiAgaGVhZGVyQWN0aW9ucz86IElVc2VyRXZlbnRBY3Rpb25bXTtcbiAgam9iUHJvZ3Jlc3Npb25zOiBPYnNlcnZhYmxlPE9ic2VydmFibGU8Sm9iUHJvZ3Jlc3Npb24+W10+O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtam9iLXByb2dyZXNzaW9uLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vam9iLXByb2dyZXNzaW9uLmxpc3QuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2pvYi1wcm9ncmVzc2lvbi5saXN0LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgSm9iUHJvZ3Jlc3Npb25MaXN0IGltcGxlbWVudHMgSm9iUHJvZ3Jlc3Npb25MaXN0T3B0aW9ucyB7XG5cbiAgQElucHV0KCkgdGl0bGVJMThuOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGhlYWRlckFjdGlvbnM6IElVc2VyRXZlbnRBY3Rpb25bXTtcbiAgQElucHV0KCkgam9iUHJvZ3Jlc3Npb25zOiBPYnNlcnZhYmxlPE9ic2VydmFibGU8Sm9iUHJvZ3Jlc3Npb24+W10+O1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBwb3BvdmVyQ29udHJvbGxlcjogUG9wb3ZlckNvbnRyb2xsZXIpIHtcbiAgfVxuXG4gIGFzeW5jIGV4ZWN1dGVBY3Rpb24oXG4gICAgZXZlbnQ6IEV2ZW50LFxuICAgIGFjdGlvbjogSVVzZXJFdmVudEFjdGlvbikge1xuXG4gICAgaWYgKGV2ZW50Py5kZWZhdWx0UHJldmVudGVkKSByZXR1cm47IC8vIFNraXAgaWYgcHJldmVudGVkXG5cbiAgICAvLyBEaXNhYmxlIGRlZmF1bHQgYWN0aW9uICguZS5nIGF2b2lkIHRvIGNhbGwgY2xpY2soKSBmdW5jdGlvbilcbiAgICBpZiAoZXZlbnQpIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAvLyBFeGVjdXRlIHRoZW4gY2xvc2UgcG9wb3ZlclxuICAgIHRoaXMucG9wb3ZlckNvbnRyb2xsZXIuZGlzbWlzcygpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXMgPSBhY3Rpb24uZXhlY3V0ZUFjdGlvbih1bmRlZmluZWQpO1xuICAgICAgaWYgKHJlcyBpbnN0YW5jZW9mIFByb21pc2UpIGF3YWl0IHJlcztcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICB9XG4gIH1cblxufVxuIiwiPGlvbi1saXN0IGNsYXNzPVwiaW9uLWxpc3QtcG9wb3ZlclwiPlxuXG4gIDxpb24tcm93IGNsYXNzPVwiaW9uLWxpc3QtaGVhZGVyIGNvbHVtblwiPlxuICAgIDxpb24tY29sPlxuICAgICAgPGlvbi1sYWJlbD57e3RpdGxlSTE4biB8IHRyYW5zbGF0ZX19PC9pb24tbGFiZWw+XG4gICAgPC9pb24tY29sPlxuICAgIDxpb24tY29sIHNpemU9XCJhdXRvXCIgY2xhc3M9XCJoZWFkZXItYWN0aW9uXCI+XG4gICAgICA8aW9uLXRleHQgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBoZWFkZXJBY3Rpb25zXCI+XG4gICAgICAgIDxhIChjbGljayk9XCJleGVjdXRlQWN0aW9uKCRldmVudCwgYWN0aW9uKVwiIFt0aXRsZV09XCIoYWN0aW9uLnRpdGxlIHx8IGFjdGlvbi5uYW1lKSB8dHJhbnNsYXRlXCI+e3sgYWN0aW9uLm5hbWUgfCB0cmFuc2xhdGUgfX08L2E+XG4gICAgICA8L2lvbi10ZXh0PlxuICAgIDwvaW9uLWNvbD5cbiAgPC9pb24tcm93PlxuXG4gIDxuZy1jb250YWluZXI+XG4gICAgPGlvbi1pdGVtICpuZ0lmPVwiam9iUHJvZ3Jlc3Npb25zIHwgYXN5bmMgfCBpc0VtcHR5QXJyYXlcIj5cbiAgICAgIHt7J1NPQ0lBTC5KT0IuUFJPR1JFU1NJT04uRU1QVFknIHwgdHJhbnNsYXRlfX1cbiAgICA8L2lvbi1pdGVtPlxuICAgIDxhcHAtam9iLXByb2dyZXNzaW9uLWNvbXBvbmVudFxuICAgICAgKm5nRm9yPVwibGV0IGl0ZW0kIG9mIGpvYlByb2dyZXNzaW9ucyB8IGFzeW5jXCJcbiAgICAgIFtqb2JQcm9ncmVzc2lvbiRdPVwiaXRlbSRcIj5cbiAgICA8L2FwcC1qb2ItcHJvZ3Jlc3Npb24tY29tcG9uZW50PlxuICA8L25nLWNvbnRhaW5lcj5cblxuPC9pb24tbGlzdD5cbiJdfQ==
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9iLXByb2dyZXNzaW9uLmxpc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC9qb2IvcHJvZ3Jlc3Npb24vam9iLXByb2dyZXNzaW9uLmxpc3QudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC9qb2IvcHJvZ3Jlc3Npb24vam9iLXByb2dyZXNzaW9uLmxpc3QuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7O0FBa0JoRixNQUFNLE9BQU8sa0JBQWtCO0lBTVA7SUFKYixTQUFTLENBQVM7SUFDbEIsYUFBYSxDQUFxQjtJQUNsQyxlQUFlLENBQTJDO0lBRW5FLFlBQXNCLGlCQUFvQztRQUFwQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO0lBQzFELENBQUM7SUFFRCxRQUFRO0lBQ1IsQ0FBQztJQUVELEtBQUssQ0FBQyxhQUFhLENBQ2pCLEtBQVksRUFDWixNQUF3QjtRQUV4QixJQUFJLEtBQUssRUFBRSxnQkFBZ0I7WUFBRSxPQUFPLENBQUMsb0JBQW9CO1FBRXpELCtEQUErRDtRQUMvRCxJQUFJLEtBQUs7WUFBRSxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFFbEMsNkJBQTZCO1FBQzdCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUM7WUFDSCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzVDLElBQUksR0FBRyxZQUFZLE9BQU87Z0JBQUUsTUFBTSxHQUFHLENBQUM7UUFDeEMsQ0FBQztRQUNELE9BQU0sR0FBRyxFQUFFLENBQUM7WUFDVixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLENBQUM7SUFDSCxDQUFDO3VHQTlCVSxrQkFBa0I7MkZBQWxCLGtCQUFrQix3S0NsQi9CLHV6QkF3QkE7OzJGRE5hLGtCQUFrQjtrQkFOOUIsU0FBUzsrQkFDRSwwQkFBMEIsbUJBR25CLHVCQUF1QixDQUFDLE1BQU07c0ZBSXRDLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Sm9iUHJvZ3Jlc3Npb259IGZyb20gJy4vam9iLXByb2dyZXNzaW9uLm1vZGVsJztcbmltcG9ydCB7SVVzZXJFdmVudEFjdGlvbn0gZnJvbSAnLi4vLi4vdXNlci1ldmVudC91c2VyLWV2ZW50Lm1vZGVsJztcbmltcG9ydCB7UG9wb3ZlckNvbnRyb2xsZXJ9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSm9iUHJvZ3Jlc3Npb25MaXN0T3B0aW9ucyB7XG4gIHRpdGxlSTE4bj86IHN0cmluZztcbiAgaGVhZGVyQWN0aW9ucz86IElVc2VyRXZlbnRBY3Rpb25bXTtcbn1cblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtam9iLXByb2dyZXNzaW9uLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vam9iLXByb2dyZXNzaW9uLmxpc3QuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2pvYi1wcm9ncmVzc2lvbi5saXN0LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgSm9iUHJvZ3Jlc3Npb25MaXN0IGltcGxlbWVudHMgT25Jbml0LCBKb2JQcm9ncmVzc2lvbkxpc3RPcHRpb25zIHtcblxuICBASW5wdXQoKSB0aXRsZUkxOG46IHN0cmluZztcbiAgQElucHV0KCkgaGVhZGVyQWN0aW9uczogSVVzZXJFdmVudEFjdGlvbltdO1xuICBASW5wdXQoKSBqb2JQcm9ncmVzc2lvbnM6IE9ic2VydmFibGU8T2JzZXJ2YWJsZTxKb2JQcm9ncmVzc2lvbj5bXT47XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHBvcG92ZXJDb250cm9sbGVyOiBQb3BvdmVyQ29udHJvbGxlcikge1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cblxuICBhc3luYyBleGVjdXRlQWN0aW9uKFxuICAgIGV2ZW50OiBFdmVudCxcbiAgICBhY3Rpb246IElVc2VyRXZlbnRBY3Rpb24pIHtcblxuICAgIGlmIChldmVudD8uZGVmYXVsdFByZXZlbnRlZCkgcmV0dXJuOyAvLyBTa2lwIGlmIHByZXZlbnRlZFxuXG4gICAgLy8gRGlzYWJsZSBkZWZhdWx0IGFjdGlvbiAoLmUuZyBhdm9pZCB0byBjYWxsIGNsaWNrKCkgZnVuY3Rpb24pXG4gICAgaWYgKGV2ZW50KSBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgLy8gRXhlY3V0ZSB0aGVuIGNsb3NlIHBvcG92ZXJcbiAgICB0aGlzLnBvcG92ZXJDb250cm9sbGVyLmRpc21pc3MoKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzID0gYWN0aW9uLmV4ZWN1dGVBY3Rpb24odW5kZWZpbmVkKTtcbiAgICAgIGlmIChyZXMgaW5zdGFuY2VvZiBQcm9taXNlKSBhd2FpdCByZXM7XG4gICAgfVxuICAgIGNhdGNoKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgIH1cbiAgfVxuXG59XG4iLCI8aW9uLWxpc3QgY2xhc3M9XCJpb24tbGlzdC1wb3BvdmVyXCI+XG5cbiAgPGlvbi1yb3cgY2xhc3M9XCJpb24tbGlzdC1oZWFkZXIgY29sdW1uXCI+XG4gICAgPGlvbi1jb2w+XG4gICAgICA8aW9uLWxhYmVsPnt7dGl0bGVJMThuIHwgdHJhbnNsYXRlfX08L2lvbi1sYWJlbD5cbiAgICA8L2lvbi1jb2w+XG4gICAgPGlvbi1jb2wgc2l6ZT1cImF1dG9cIiBjbGFzcz1cImhlYWRlci1hY3Rpb25cIj5cbiAgICAgIDxpb24tdGV4dCAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGhlYWRlckFjdGlvbnNcIj5cbiAgICAgICAgPGEgKGNsaWNrKT1cImV4ZWN1dGVBY3Rpb24oJGV2ZW50LCBhY3Rpb24pXCIgW3RpdGxlXT1cIihhY3Rpb24udGl0bGUgfHwgYWN0aW9uLm5hbWUpIHx0cmFuc2xhdGVcIj57eyBhY3Rpb24ubmFtZSB8IHRyYW5zbGF0ZSB9fTwvYT5cbiAgICAgIDwvaW9uLXRleHQ+XG4gICAgPC9pb24tY29sPlxuICA8L2lvbi1yb3c+XG5cbiAgPG5nLWNvbnRhaW5lcj5cbiAgICA8aW9uLWl0ZW0gKnJ4SWY9XCJqb2JQcm9ncmVzc2lvbnMgfCBhc3luYyB8IGlzRW1wdHlBcnJheVwiPlxuICAgICAge3snU09DSUFMLkpPQi5QUk9HUkVTU0lPTi5FTVBUWScgfCB0cmFuc2xhdGV9fVxuICAgIDwvaW9uLWl0ZW0+XG4gICAgPGFwcC1qb2ItcHJvZ3Jlc3Npb24tY29tcG9uZW50XG4gICAgICAqcnhGb3I9XCJsZXQgaXRlbSQgb2Ygam9iUHJvZ3Jlc3Npb25zXCJcbiAgICAgIFtqb2JQcm9ncmVzc2lvbiRdPVwiaXRlbSRcIj5cbiAgICA8L2FwcC1qb2ItcHJvZ3Jlc3Npb24tY29tcG9uZW50PlxuICA8L25nLWNvbnRhaW5lcj5cblxuPC9pb24tbGlzdD5cbiJdfQ==
@@ -2,7 +2,7 @@ import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';
2
2
  import { JobProgression } from './job-progression.model';
3
3
  import { BaseGraphqlService } from '../../../core/services/base-graphql-service.class';
4
4
  import { ENVIRONMENT } from '../../../../environments/environment.class';
5
- import { of } from 'rxjs';
5
+ import { BehaviorSubject } from 'rxjs';
6
6
  import { gql } from '@apollo/client/core';
7
7
  import { isNil, toNumber } from '../../../shared/functions';
8
8
  import { map } from 'rxjs/operators';
@@ -25,6 +25,7 @@ const JobProgressionSubscription = {
25
25
  export class JobProgressionService extends BaseGraphqlService {
26
26
  graphql;
27
27
  environment;
28
+ jobsSubject = new BehaviorSubject([]);
28
29
  constructor(graphql, environment) {
29
30
  super(graphql, environment);
30
31
  this.graphql = graphql;
@@ -33,14 +34,23 @@ export class JobProgressionService extends BaseGraphqlService {
33
34
  // For DEV only
34
35
  this._debug = environment && !environment.production;
35
36
  }
36
- watchAll(options) {
37
- return of([]); // TODO
37
+ watchAll() {
38
+ return this.jobsSubject.asObservable();
38
39
  }
39
40
  addJob(id, job) {
40
- throw new Error('no implemented');
41
+ const exists = this.jobsSubject.value.some(j => j.id === id);
42
+ if (!exists) {
43
+ job = job || new JobProgression(id);
44
+ this.jobsSubject.next([...this.jobsSubject.value, job]);
45
+ }
41
46
  }
42
47
  removeJob(id) {
43
- throw new Error('no implemented');
48
+ const jobs = this.jobsSubject.value;
49
+ const index = jobs.findIndex(j => j.id === id);
50
+ if (index !== -1) {
51
+ jobs.splice(index, 1);
52
+ this.jobsSubject.next(jobs);
53
+ }
44
54
  }
45
55
  listenChanges(id, options) {
46
56
  if (isNil(id))
@@ -70,4 +80,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
70
80
  type: Inject,
71
81
  args: [ENVIRONMENT]
72
82
  }] }] });
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9iLXByb2dyZXNzaW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC9qb2IvcHJvZ3Jlc3Npb24vam9iLXByb2dyZXNzaW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFFckYsT0FBTyxFQUFjLFdBQVcsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQ3BGLE9BQU8sRUFBYSxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFjLEdBQUcsRUFBd0IsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RSxPQUFPLEVBQUMsS0FBSyxFQUFFLFFBQVEsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuQyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQzs7OztBQUVyRCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxJQUFJLGNBQWMsQ0FBeUIsdUJBQXVCLENBQUMsQ0FBQztBQVcvRyxNQUFNLDBCQUEwQixHQUFHO0lBQ2pDLGFBQWEsRUFBRSxHQUFHLENBQUE7Ozs7Ozs7O0lBUWhCO0NBQ0gsQ0FBQztBQUdGLE1BQU0sT0FBTyxxQkFDWCxTQUFRLGtCQUFrQztJQUk5QjtJQUNpQztJQUY3QyxZQUNZLE9BQXVCLEVBQ1UsV0FBd0I7UUFFbkUsS0FBSyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUhsQixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUNVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBR25FLElBQUksQ0FBQyxVQUFVLEdBQUcsNEJBQTRCLENBQUM7UUFDL0MsZUFBZTtRQUNmLElBQUksQ0FBQyxNQUFNLEdBQUcsV0FBVyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQztJQUN2RCxDQUFDO0lBRUQsUUFBUSxDQUFDLE9BRVI7UUFDQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU87SUFDeEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxFQUFVLEVBQUUsR0FBb0I7UUFDckMsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxTQUFTLENBQUMsRUFBVTtRQUNsQixNQUFNLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELGFBQWEsQ0FBQyxFQUFVLEVBQUUsT0FHekI7UUFFQyxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsdUJBQXVCLENBQUMsQ0FBQztRQUMxRSxJQUFJLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLCtDQUErQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRTFHLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQWdCO1lBQzNDLEtBQUssRUFBRSwwQkFBMEIsQ0FBQyxhQUFhO1lBQy9DLFdBQVcsRUFBRSxPQUFPLEVBQUUsV0FBVztZQUNqQyxTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxFQUFDO1lBQzNELEtBQUssRUFBRSxFQUFDLElBQUksRUFBRSxnQkFBZ0IsQ0FBQywrQkFBK0IsRUFBRSxPQUFPLEVBQUUsOENBQThDLEVBQUM7U0FDekgsQ0FBQyxDQUFDLElBQUksQ0FDTCxHQUFHLENBQUMsQ0FBQyxFQUFDLElBQUksRUFBQyxFQUFFLEVBQUU7WUFDYixNQUFNLFdBQVcsR0FBRyxJQUFJLElBQUksY0FBYyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1RCxJQUFJLFdBQVcsSUFBSSxJQUFJLENBQUMsTUFBTTtnQkFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDeEgsT0FBTyxXQUFXLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUVKLENBQUM7dUdBakRVLHFCQUFxQixnREFNVixXQUFXOzJHQU50QixxQkFBcUI7OzJGQUFyQixxQkFBcUI7a0JBRGpDLFVBQVU7OzBCQU9OLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtKb2JQcm9ncmVzc2lvbn0gZnJvbSAnLi9qb2ItcHJvZ3Jlc3Npb24ubW9kZWwnO1xuaW1wb3J0IHtCYXNlR3JhcGhxbFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZXMvYmFzZS1ncmFwaHFsLXNlcnZpY2UuY2xhc3MnO1xuaW1wb3J0IHtHcmFwaHFsU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vY29yZS9ncmFwaHFsL2dyYXBocWwuc2VydmljZSc7XG5pbXBvcnQge0Vudmlyb25tZW50LCBFTlZJUk9OTUVOVH0gZnJvbSAnLi4vLi4vLi4vLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50LmNsYXNzJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgb2Z9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtGZXRjaFBvbGljeSwgZ3FsLCBXYXRjaFF1ZXJ5RmV0Y2hQb2xpY3l9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2NvcmUnO1xuaW1wb3J0IHtpc05pbCwgdG9OdW1iZXJ9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9mdW5jdGlvbnMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7U29jaWFsRXJyb3JDb2Rlc30gZnJvbSAnLi4vLi4vc29jaWFsLmVycm9ycyc7XG5cbmV4cG9ydCBjb25zdCBBUFBfSk9CX1BST0dSRVNTSU9OX1NFUlZJQ0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48SUpvYlByb2dyZXNzaW9uU2VydmljZT4oJ0pvYlByb2dyZXNzaW9uU2VydmljZScpO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgSUpvYlByb2dyZXNzaW9uU2VydmljZSB7XG4gIHdhdGNoQWxsKCk6IE9ic2VydmFibGU8Sm9iUHJvZ3Jlc3Npb25bXT47XG4gIGFkZEpvYihpZDogbnVtYmVyLCBqb2I/OiBKb2JQcm9ncmVzc2lvbik7XG4gIHJlbW92ZUpvYihpZDogbnVtYmVyKTtcbiAgbGlzdGVuQ2hhbmdlcyhpZDogbnVtYmVyLCBvcHRpb25zPzogeyBpbnRlcnZhbD86IG51bWJlcjsgZmV0Y2hQb2xpY3k/OiBGZXRjaFBvbGljeSB9KTogT2JzZXJ2YWJsZTxKb2JQcm9ncmVzc2lvbj47XG59XG5cblxuY29uc3QgSm9iUHJvZ3Jlc3Npb25TdWJzY3JpcHRpb24gPSB7XG4gIGxpc3RlbkNoYW5nZXM6IGdxbGBzdWJzY3JpcHRpb24gVXBkYXRlSm9iUHJvZ3Jlc3Npb24oJGlkOiBJbnQhLCAkaW50ZXJ2YWw6IEludCl7XG4gICAgZGF0YTogdXBkYXRlSm9iUHJvZ3Jlc3Npb24oaWQ6ICRpZCwgaW50ZXJ2YWw6ICRpbnRlcnZhbCkge1xuICAgICAgaWRcbiAgICAgIG5hbWVcbiAgICAgIG1lc3NhZ2VcbiAgICAgIGN1cnJlbnRcbiAgICAgIHRvdGFsXG4gICAgfVxuICB9YFxufTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEpvYlByb2dyZXNzaW9uU2VydmljZVxuICBleHRlbmRzIEJhc2VHcmFwaHFsU2VydmljZTxKb2JQcm9ncmVzc2lvbj5cbiAgaW1wbGVtZW50cyBJSm9iUHJvZ3Jlc3Npb25TZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgZ3JhcGhxbDogR3JhcGhxbFNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChFTlZJUk9OTUVOVCkgcHJvdGVjdGVkIGVudmlyb25tZW50OiBFbnZpcm9ubWVudFxuICApIHtcbiAgICBzdXBlcihncmFwaHFsLCBlbnZpcm9ubWVudCk7XG4gICAgdGhpcy5fbG9nUHJlZml4ID0gJ1tqb2ItcHJvZ3Jlc3Npb24tc2VydmljZV0gJztcbiAgICAvLyBGb3IgREVWIG9ubHlcbiAgICB0aGlzLl9kZWJ1ZyA9IGVudmlyb25tZW50ICYmICFlbnZpcm9ubWVudC5wcm9kdWN0aW9uO1xuICB9XG5cbiAgd2F0Y2hBbGwob3B0aW9ucz86IHtcbiAgICBmZXRjaFBvbGljeT86IFdhdGNoUXVlcnlGZXRjaFBvbGljeTtcbiAgfSk6IE9ic2VydmFibGU8Sm9iUHJvZ3Jlc3Npb25bXT4ge1xuICAgIHJldHVybiBvZihbXSk7IC8vIFRPRE9cbiAgfVxuXG4gIGFkZEpvYihpZDogbnVtYmVyLCBqb2I/OiBKb2JQcm9ncmVzc2lvbikge1xuICAgIHRocm93IG5ldyBFcnJvcignbm8gaW1wbGVtZW50ZWQnKTtcbiAgfVxuXG4gIHJlbW92ZUpvYihpZDogbnVtYmVyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdubyBpbXBsZW1lbnRlZCcpO1xuICB9XG5cbiAgbGlzdGVuQ2hhbmdlcyhpZDogbnVtYmVyLCBvcHRpb25zPzoge1xuICAgIGludGVydmFsPzogbnVtYmVyO1xuICAgIGZldGNoUG9saWN5PzogRmV0Y2hQb2xpY3k7XG4gIH0pOiBPYnNlcnZhYmxlPEpvYlByb2dyZXNzaW9uPiB7XG5cbiAgICBpZiAoaXNOaWwoaWQpKSB0aHJvdyBuZXcgRXJyb3IoYCR7dGhpcy5fbG9nUHJlZml4fU1pc3NpbmcgYXJndW1lbnQgJ2lkJ2ApO1xuICAgIGlmICh0aGlzLl9kZWJ1ZykgY29uc29sZS5kZWJ1ZyhgJHt0aGlzLl9sb2dQcmVmaXh9W1dTXSBMaXN0ZW5pbmcgY2hhbmdlcyBmb3Igam9iIHByb2dyZXNzaW9uIHske2lkfX0uLi5gKTtcblxuICAgIHJldHVybiB0aGlzLmdyYXBocWwuc3Vic2NyaWJlPHsgZGF0YTogYW55IH0+KHtcbiAgICAgIHF1ZXJ5OiBKb2JQcm9ncmVzc2lvblN1YnNjcmlwdGlvbi5saXN0ZW5DaGFuZ2VzLFxuICAgICAgZmV0Y2hQb2xpY3k6IG9wdGlvbnM/LmZldGNoUG9saWN5LFxuICAgICAgdmFyaWFibGVzOiB7IGlkLCBpbnRlcnZhbDogdG9OdW1iZXIob3B0aW9ucz8uaW50ZXJ2YWwsIDEwKX0sXG4gICAgICBlcnJvcjoge2NvZGU6IFNvY2lhbEVycm9yQ29kZXMuU1VCU0NSSUJFX0pPQl9QUk9HUkVTU0lPTl9FUlJPUiwgbWVzc2FnZTogJ1NPQ0lBTC5FUlJPUi5TVUJTQ1JJQkVfSk9CX1BST0dSRVNTSU9OX0VSUk9SJ31cbiAgICB9KS5waXBlKFxuICAgICAgbWFwKCh7ZGF0YX0pID0+IHtcbiAgICAgICAgY29uc3QgcHJvZ3Jlc3Npb24gPSBkYXRhICYmIEpvYlByb2dyZXNzaW9uLmZyb21PYmplY3QoZGF0YSk7XG4gICAgICAgIGlmIChwcm9ncmVzc2lvbiAmJiB0aGlzLl9kZWJ1ZykgY29uc29sZS5kZWJ1ZyhgJHt0aGlzLl9sb2dQcmVmaXh9Sm9iIHByb2dyZXNzaW9uICR7aWR9IHVwZGF0ZWQgb24gc2VydmVyYCwgcHJvZ3Jlc3Npb24pO1xuICAgICAgICByZXR1cm4gcHJvZ3Jlc3Npb247XG4gICAgICB9KVxuICAgICk7XG5cbiAgfVxufVxuIl19
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9iLXByb2dyZXNzaW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC9qb2IvcHJvZ3Jlc3Npb24vam9iLXByb2dyZXNzaW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFFckYsT0FBTyxFQUFjLFdBQVcsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQ3BGLE9BQU8sRUFBQyxlQUFlLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFjLEdBQUcsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxLQUFLLEVBQUUsUUFBUSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25DLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDOzs7O0FBRXJELE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLElBQUksY0FBYyxDQUF5Qix1QkFBdUIsQ0FBQyxDQUFDO0FBVy9HLE1BQU0sMEJBQTBCLEdBQUc7SUFDakMsYUFBYSxFQUFFLEdBQUcsQ0FBQTs7Ozs7Ozs7SUFRaEI7Q0FDSCxDQUFDO0FBR0YsTUFBTSxPQUFPLHFCQUNYLFNBQVEsa0JBQWtDO0lBTzlCO0lBQ2lDO0lBTHJDLFdBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBbUIsRUFBRSxDQUFDLENBQUM7SUFHaEUsWUFDWSxPQUF1QixFQUNVLFdBQXdCO1FBRW5FLEtBQUssQ0FBQyxPQUFPLEVBQUUsV0FBVyxD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LFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtKb2JQcm9ncmVzc2lvbn0gZnJvbSAnLi9qb2ItcHJvZ3Jlc3Npb24ubW9kZWwnO1xuaW1wb3J0IHtCYXNlR3JhcGhxbFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZXMvYmFzZS1ncmFwaHFsLXNlcnZpY2UuY2xhc3MnO1xuaW1wb3J0IHtHcmFwaHFsU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vY29yZS9ncmFwaHFsL2dyYXBocWwuc2VydmljZSc7XG5pbXBvcnQge0Vudmlyb25tZW50LCBFTlZJUk9OTUVOVH0gZnJvbSAnLi4vLi4vLi4vLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50LmNsYXNzJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7RmV0Y2hQb2xpY3ksIGdxbH0gZnJvbSAnQGFwb2xsby9jbGllbnQvY29yZSc7XG5pbXBvcnQge2lzTmlsLCB0b051bWJlcn0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2Z1bmN0aW9ucyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtTb2NpYWxFcnJvckNvZGVzfSBmcm9tICcuLi8uLi9zb2NpYWwuZXJyb3JzJztcblxuZXhwb3J0IGNvbnN0IEFQUF9KT0JfUFJPR1JFU1NJT05fU0VSVklDRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJSm9iUHJvZ3Jlc3Npb25TZXJ2aWNlPignSm9iUHJvZ3Jlc3Npb25TZXJ2aWNlJyk7XG5cblxuZXhwb3J0IGludGVyZmFjZSBJSm9iUHJvZ3Jlc3Npb25TZXJ2aWNlIHtcbiAgd2F0Y2hBbGwoKTogT2JzZXJ2YWJsZTxKb2JQcm9ncmVzc2lvbltdPjtcbiAgYWRkSm9iKGlkOiBudW1iZXIsIGpvYj86IEpvYlByb2dyZXNzaW9uKTtcbiAgcmVtb3ZlSm9iKGlkOiBudW1iZXIpO1xuICBsaXN0ZW5DaGFuZ2VzKGlkOiBudW1iZXIsIG9wdGlvbnM/OiB7IGludGVydmFsPzogbnVtYmVyOyBmZXRjaFBvbGljeT86IEZldGNoUG9saWN5IH0pOiBPYnNlcnZhYmxlPEpvYlByb2dyZXNzaW9uPjtcbn1cblxuXG5jb25zdCBKb2JQcm9ncmVzc2lvblN1YnNjcmlwdGlvbiA9IHtcbiAgbGlzdGVuQ2hhbmdlczogZ3FsYHN1YnNjcmlwdGlvbiBVcGRhdGVKb2JQcm9ncmVzc2lvbigkaWQ6IEludCEsICRpbnRlcnZhbDogSW50KXtcbiAgICBkYXRhOiB1cGRhdGVKb2JQcm9ncmVzc2lvbihpZDogJGlkLCBpbnRlcnZhbDogJGludGVydmFsKSB7XG4gICAgICBpZFxuICAgICAgbmFtZVxuICAgICAgbWVzc2FnZVxuICAgICAgY3VycmVudFxuICAgICAgdG90YWxcbiAgICB9XG4gIH1gXG59O1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSm9iUHJvZ3Jlc3Npb25TZXJ2aWNlXG4gIGV4dGVuZHMgQmFzZUdyYXBocWxTZXJ2aWNlPEpvYlByb2dyZXNzaW9uPlxuICBpbXBsZW1lbnRzIElKb2JQcm9ncmVzc2lvblNlcnZpY2Uge1xuXG4gIHByaXZhdGUgam9ic1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEpvYlByb2dyZXNzaW9uW10+KFtdKTtcblxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBncmFwaHFsOiBHcmFwaHFsU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEVOVklST05NRU5UKSBwcm90ZWN0ZWQgZW52aXJvbm1lbnQ6IEVudmlyb25tZW50XG4gICkge1xuICAgIHN1cGVyKGdyYXBocWwsIGVudmlyb25tZW50KTtcbiAgICB0aGlzLl9sb2dQcmVmaXggPSAnW2pvYi1wcm9ncmVzc2lvbi1zZXJ2aWNlXSAnO1xuICAgIC8vIEZvciBERVYgb25seVxuICAgIHRoaXMuX2RlYnVnID0gZW52aXJvbm1lbnQgJiYgIWVudmlyb25tZW50LnByb2R1Y3Rpb247XG4gIH1cblxuICB3YXRjaEFsbCgpOiBPYnNlcnZhYmxlPEpvYlByb2dyZXNzaW9uW10+IHtcbiAgICByZXR1cm4gdGhpcy5qb2JzU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGFkZEpvYihpZDogbnVtYmVyLCBqb2I/OiBKb2JQcm9ncmVzc2lvbikge1xuICAgIGNvbnN0IGV4aXN0cyA9IHRoaXMuam9ic1N1YmplY3QudmFsdWUuc29tZShqID0+IGouaWQgPT09IGlkKTtcbiAgICBpZiAoIWV4aXN0cykge1xuICAgICAgam9iID0gam9iIHx8IG5ldyBKb2JQcm9ncmVzc2lvbihpZCk7XG4gICAgICB0aGlzLmpvYnNTdWJqZWN0Lm5leHQoWy4uLnRoaXMuam9ic1N1YmplY3QudmFsdWUsIGpvYl0pO1xuICAgIH1cbiAgfVxuXG4gIHJlbW92ZUpvYihpZDogbnVtYmVyKSB7XG4gICAgY29uc3Qgam9icyA9IHRoaXMuam9ic1N1YmplY3QudmFsdWU7XG4gICAgY29uc3QgaW5kZXggPSBqb2JzLmZpbmRJbmRleChqID0+IGouaWQgPT09IGlkKTtcbiAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICBqb2JzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICB0aGlzLmpvYnNTdWJqZWN0Lm5leHQoam9icyk7XG4gICAgfVxuICB9XG5cbiAgbGlzdGVuQ2hhbmdlcyhpZDogbnVtYmVyLCBvcHRpb25zPzoge1xuICAgIGludGVydmFsPzogbnVtYmVyO1xuICAgIGZldGNoUG9saWN5PzogRmV0Y2hQb2xpY3k7XG4gIH0pOiBPYnNlcnZhYmxlPEpvYlByb2dyZXNzaW9uPiB7XG5cbiAgICBpZiAoaXNOaWwoaWQpKSB0aHJvdyBuZXcgRXJyb3IoYCR7dGhpcy5fbG9nUHJlZml4fU1pc3NpbmcgYXJndW1lbnQgJ2lkJ2ApO1xuICAgIGlmICh0aGlzLl9kZWJ1ZykgY29uc29sZS5kZWJ1ZyhgJHt0aGlzLl9sb2dQcmVmaXh9W1dTXSBMaXN0ZW5pbmcgY2hhbmdlcyBmb3Igam9iIHByb2dyZXNzaW9uIHske2lkfX0uLi5gKTtcblxuICAgIHJldHVybiB0aGlzLmdyYXBocWwuc3Vic2NyaWJlPHsgZGF0YTogYW55IH0+KHtcbiAgICAgIHF1ZXJ5OiBKb2JQcm9ncmVzc2lvblN1YnNjcmlwdGlvbi5saXN0ZW5DaGFuZ2VzLFxuICAgICAgZmV0Y2hQb2xpY3k6IG9wdGlvbnM/LmZldGNoUG9saWN5LFxuICAgICAgdmFyaWFibGVzOiB7IGlkLCBpbnRlcnZhbDogdG9OdW1iZXIob3B0aW9ucz8uaW50ZXJ2YWwsIDEwKX0sXG4gICAgICBlcnJvcjoge2NvZGU6IFNvY2lhbEVycm9yQ29kZXMuU1VCU0NSSUJFX0pPQl9QUk9HUkVTU0lPTl9FUlJPUiwgbWVzc2FnZTogJ1NPQ0lBTC5FUlJPUi5TVUJTQ1JJQkVfSk9CX1BST0dSRVNTSU9OX0VSUk9SJ31cbiAgICB9KS5waXBlKFxuICAgICAgbWFwKCh7ZGF0YX0pID0+IHtcbiAgICAgICAgY29uc3QgcHJvZ3Jlc3Npb24gPSBkYXRhICYmIEpvYlByb2dyZXNzaW9uLmZyb21PYmplY3QoZGF0YSk7XG4gICAgICAgIGlmIChwcm9ncmVzc2lvbiAmJiB0aGlzLl9kZWJ1ZykgY29uc29sZS5kZWJ1ZyhgJHt0aGlzLl9sb2dQcmVmaXh9Sm9iIHByb2dyZXNzaW9uICR7aWR9IHVwZGF0ZWQgb24gc2VydmVyYCwgcHJvZ3Jlc3Npb24pO1xuICAgICAgICByZXR1cm4gcHJvZ3Jlc3Npb247XG4gICAgICB9KVxuICAgICk7XG5cbiAgfVxufVxuIl19
@@ -22,17 +22,12 @@ export class JobProgressionTestingPage {
22
22
  job.total = 100;
23
23
  this.jobProgressionService.addJob(job.id, job);
24
24
  }
25
- jobFinished(id) {
26
- // setTimeout(() => {
27
- this.jobProgressionService.removeJob(id);
28
- // }, 5000);
29
- }
30
25
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: JobProgressionTestingPage, deps: [{ token: APP_JOB_PROGRESSION_SERVICE }], target: i0.ɵɵFactoryTarget.Component });
31
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: JobProgressionTestingPage, selector: "job-progression-testing", viewQueries: [{ propertyName: "jobProgressionIcon", first: true, predicate: ["icon"], descendants: true }], ngImport: i0, template: "<ion-toolbar color=\"primary\">\n <ion-title>Job progression</ion-title>\n</ion-toolbar>\n\n<ion-content class=\"ion-padding\">\n <p>\n <ion-button (click)=\"createJob()\">Add Job</ion-button>\n </p>\n\n <app-job-progression-icon #icon [debug]=\"true\" [options]=\"options\" (jobFinished)=\"jobFinished($event)\"></app-job-progression-icon>\n</ion-content>\n", dependencies: [{ kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i2.JobProgressionIcon, selector: "app-job-progression-icon", inputs: ["debug", "titleI18n", "options", "autoHide", "headerActions"], outputs: ["jobFinished"] }] });
26
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: JobProgressionTestingPage, selector: "job-progression-testing", viewQueries: [{ propertyName: "jobProgressionIcon", first: true, predicate: ["icon"], descendants: true }], ngImport: i0, template: "<ion-toolbar color=\"primary\">\n <ion-title>Job progression</ion-title>\n</ion-toolbar>\n\n<ion-content class=\"ion-padding\">\n <p>\n <ion-button (click)=\"createJob()\">Add Job</ion-button>\n </p>\n\n <app-job-progression-icon #icon [debug]=\"true\" [options]=\"options\"></app-job-progression-icon>\n</ion-content>\n", dependencies: [{ kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i2.JobProgressionIcon, selector: "app-job-progression-icon", inputs: ["debug", "titleI18n", "options", "autoHide", "headerActions"], outputs: ["jobFinished"] }] });
32
27
  }
33
28
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: JobProgressionTestingPage, decorators: [{
34
29
  type: Component,
35
- args: [{ selector: 'job-progression-testing', template: "<ion-toolbar color=\"primary\">\n <ion-title>Job progression</ion-title>\n</ion-toolbar>\n\n<ion-content class=\"ion-padding\">\n <p>\n <ion-button (click)=\"createJob()\">Add Job</ion-button>\n </p>\n\n <app-job-progression-icon #icon [debug]=\"true\" [options]=\"options\" (jobFinished)=\"jobFinished($event)\"></app-job-progression-icon>\n</ion-content>\n" }]
30
+ args: [{ selector: 'job-progression-testing', template: "<ion-toolbar color=\"primary\">\n <ion-title>Job progression</ion-title>\n</ion-toolbar>\n\n<ion-content class=\"ion-padding\">\n <p>\n <ion-button (click)=\"createJob()\">Add Job</ion-button>\n </p>\n\n <app-job-progression-icon #icon [debug]=\"true\" [options]=\"options\"></app-job-progression-icon>\n</ion-content>\n" }]
36
31
  }], ctorParameters: () => [{ type: undefined, decorators: [{
37
32
  type: Inject,
38
33
  args: [APP_JOB_PROGRESSION_SERVICE]
@@ -40,4 +35,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
40
35
  type: ViewChild,
41
36
  args: ['icon']
42
37
  }] } });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9iLXByb2dyZXNzaW9uLnRlc3RpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC9qb2IvdGVzdGluZy9qb2ItcHJvZ3Jlc3Npb24udGVzdGluZy50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc29jaWFsL2pvYi90ZXN0aW5nL2pvYi1wcm9ncmVzc2lvbi50ZXN0aW5nLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTNELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUNwRSxPQUFPLEVBQUMsMkJBQTJCLEVBQXlCLE1BQU0sd0NBQXdDLENBQUM7Ozs7QUFNM0csTUFBTSxPQUFPLHlCQUF5QjtJQVVhO0lBUjlCLGtCQUFrQixDQUFxQjtJQUUxRCxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsT0FBTyxHQUEwQjtRQUMvQixRQUFRLEVBQUUsSUFBSTtLQUNmLENBQUM7SUFFRixZQUNpRCxxQkFBNkM7UUFBN0MsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF3QjtJQUM5RixDQUFDO0lBRUQsU0FBUztRQUNQLE1BQU0sR0FBRyxHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7UUFDakMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDdEIsR0FBRyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUM7UUFDbEIsR0FBRyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7UUFDaEIsR0FBRyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7UUFDaEIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxXQUFXLENBQUMsRUFBVTtRQUNwQixxQkFBcUI7UUFDbkIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMzQyxZQUFZO0lBQ2QsQ0FBQzt1R0ExQlUseUJBQXlCLGtCQVUxQiwyQkFBMkI7MkZBVjFCLHlCQUF5QiwyS0NUdEMsK1dBV0E7OzJGREZhLHlCQUF5QjtrQkFKckMsU0FBUzsrQkFDRSx5QkFBeUI7OzBCQWFoQyxNQUFNOzJCQUFDLDJCQUEyQjt5Q0FSbEIsa0JBQWtCO3NCQUFwQyxTQUFTO3VCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5qZWN0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtKb2JQcm9ncmVzc2lvbkljb24sIEpvYlByb2dyZXNzaW9uT3B0aW9uc30gZnJvbSAnLi4vcHJvZ3Jlc3Npb24vam9iLXByb2dyZXNzaW9uLmljb24nO1xuaW1wb3J0IHtKb2JQcm9ncmVzc2lvbn0gZnJvbSAnLi4vcHJvZ3Jlc3Npb24vam9iLXByb2dyZXNzaW9uLm1vZGVsJztcbmltcG9ydCB7QVBQX0pPQl9QUk9HUkVTU0lPTl9TRVJWSUNFLCBJSm9iUHJvZ3Jlc3Npb25TZXJ2aWNlfSBmcm9tICcuLi9wcm9ncmVzc2lvbi9qb2ItcHJvZ3Jlc3Npb24uc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2pvYi1wcm9ncmVzc2lvbi10ZXN0aW5nJyxcbiAgdGVtcGxhdGVVcmw6ICdqb2ItcHJvZ3Jlc3Npb24udGVzdGluZy5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBKb2JQcm9ncmVzc2lvblRlc3RpbmdQYWdlIHtcblxuICBAVmlld0NoaWxkKCdpY29uJykgam9iUHJvZ3Jlc3Npb25JY29uOiBKb2JQcm9ncmVzc2lvbkljb247XG5cbiAgam9iSWQgPSAwO1xuICBvcHRpb25zID0gPEpvYlByb2dyZXNzaW9uT3B0aW9ucz57XG4gICAgYXV0b0hpZGU6IHRydWVcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KEFQUF9KT0JfUFJPR1JFU1NJT05fU0VSVklDRSkgcHJvdGVjdGVkIGpvYlByb2dyZXNzaW9uU2VydmljZTogSUpvYlByb2dyZXNzaW9uU2VydmljZSkge1xuICB9XG5cbiAgY3JlYXRlSm9iKCkge1xuICAgIGNvbnN0IGpvYiA9IG5ldyBKb2JQcm9ncmVzc2lvbigpO1xuICAgIGpvYi5pZCA9ICsrdGhpcy5qb2JJZDtcbiAgICBqb2IubmFtZSA9ICd0ZXN0JztcbiAgICBqb2IuY3VycmVudCA9IDA7XG4gICAgam9iLnRvdGFsID0gMTAwO1xuICAgIHRoaXMuam9iUHJvZ3Jlc3Npb25TZXJ2aWNlLmFkZEpvYihqb2IuaWQsIGpvYik7XG4gIH1cblxuICBqb2JGaW5pc2hlZChpZDogbnVtYmVyKSB7XG4gICAgLy8gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmpvYlByb2dyZXNzaW9uU2VydmljZS5yZW1vdmVKb2IoaWQpO1xuICAgIC8vIH0sIDUwMDApO1xuICB9XG59XG5cbiIsIjxpb24tdG9vbGJhciBjb2xvcj1cInByaW1hcnlcIj5cbiAgPGlvbi10aXRsZT5Kb2IgcHJvZ3Jlc3Npb248L2lvbi10aXRsZT5cbjwvaW9uLXRvb2xiYXI+XG5cbjxpb24tY29udGVudCBjbGFzcz1cImlvbi1wYWRkaW5nXCI+XG4gIDxwPlxuICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJjcmVhdGVKb2IoKVwiPkFkZCBKb2I8L2lvbi1idXR0b24+XG4gIDwvcD5cblxuICA8YXBwLWpvYi1wcm9ncmVzc2lvbi1pY29uICNpY29uIFtkZWJ1Z109XCJ0cnVlXCIgW29wdGlvbnNdPVwib3B0aW9uc1wiIChqb2JGaW5pc2hlZCk9XCJqb2JGaW5pc2hlZCgkZXZlbnQpXCI+PC9hcHAtam9iLXByb2dyZXNzaW9uLWljb24+XG48L2lvbi1jb250ZW50PlxuIl19
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9iLXByb2dyZXNzaW9uLnRlc3RpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC9qb2IvdGVzdGluZy9qb2ItcHJvZ3Jlc3Npb24udGVzdGluZy50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc29jaWFsL2pvYi90ZXN0aW5nL2pvYi1wcm9ncmVzc2lvbi50ZXN0aW5nLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTNELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUNwRSxPQUFPLEVBQUMsMkJBQTJCLEVBQXlCLE1BQU0sd0NBQXdDLENBQUM7Ozs7QUFNM0csTUFBTSxPQUFPLHlCQUF5QjtJQVVhO0lBUjlCLGtCQUFrQixDQUFxQjtJQUUxRCxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsT0FBTyxHQUEwQjtRQUMvQixRQUFRLEVBQUUsSUFBSTtLQUNmLENBQUM7SUFFRixZQUNpRCxxQkFBNkM7UUFBN0MsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF3QjtJQUM5RixDQUFDO0lBRUQsU0FBUztRQUNQLE1BQU0sR0FBRyxHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7UUFDakMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDdEIsR0FBRyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUM7UUFDbEIsR0FBRyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7UUFDaEIsR0FBRyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7UUFDaEIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ2pELENBQUM7dUdBcEJVLHlCQUF5QixrQkFVMUIsMkJBQTJCOzJGQVYxQix5QkFBeUIsMktDVHRDLHlVQVdBOzsyRkRGYSx5QkFBeUI7a0JBSnJDLFNBQVM7K0JBQ0UseUJBQXlCOzswQkFhaEMsTUFBTTsyQkFBQywyQkFBMkI7eUNBUmxCLGtCQUFrQjtzQkFBcEMsU0FBUzt1QkFBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEluamVjdCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Sm9iUHJvZ3Jlc3Npb25JY29uLCBKb2JQcm9ncmVzc2lvbk9wdGlvbnN9IGZyb20gJy4uL3Byb2dyZXNzaW9uL2pvYi1wcm9ncmVzc2lvbi5pY29uJztcbmltcG9ydCB7Sm9iUHJvZ3Jlc3Npb259IGZyb20gJy4uL3Byb2dyZXNzaW9uL2pvYi1wcm9ncmVzc2lvbi5tb2RlbCc7XG5pbXBvcnQge0FQUF9KT0JfUFJPR1JFU1NJT05fU0VSVklDRSwgSUpvYlByb2dyZXNzaW9uU2VydmljZX0gZnJvbSAnLi4vcHJvZ3Jlc3Npb24vam9iLXByb2dyZXNzaW9uLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdqb2ItcHJvZ3Jlc3Npb24tdGVzdGluZycsXG4gIHRlbXBsYXRlVXJsOiAnam9iLXByb2dyZXNzaW9uLnRlc3RpbmcuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgSm9iUHJvZ3Jlc3Npb25UZXN0aW5nUGFnZSB7XG5cbiAgQFZpZXdDaGlsZCgnaWNvbicpIGpvYlByb2dyZXNzaW9uSWNvbjogSm9iUHJvZ3Jlc3Npb25JY29uO1xuXG4gIGpvYklkID0gMDtcbiAgb3B0aW9ucyA9IDxKb2JQcm9ncmVzc2lvbk9wdGlvbnM+e1xuICAgIGF1dG9IaWRlOiB0cnVlXG4gIH07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChBUFBfSk9CX1BST0dSRVNTSU9OX1NFUlZJQ0UpIHByb3RlY3RlZCBqb2JQcm9ncmVzc2lvblNlcnZpY2U6IElKb2JQcm9ncmVzc2lvblNlcnZpY2UpIHtcbiAgfVxuXG4gIGNyZWF0ZUpvYigpIHtcbiAgICBjb25zdCBqb2IgPSBuZXcgSm9iUHJvZ3Jlc3Npb24oKTtcbiAgICBqb2IuaWQgPSArK3RoaXMuam9iSWQ7XG4gICAgam9iLm5hbWUgPSAndGVzdCc7XG4gICAgam9iLmN1cnJlbnQgPSAwO1xuICAgIGpvYi50b3RhbCA9IDEwMDtcbiAgICB0aGlzLmpvYlByb2dyZXNzaW9uU2VydmljZS5hZGRKb2Ioam9iLmlkLCBqb2IpO1xuICB9XG59XG5cbiIsIjxpb24tdG9vbGJhciBjb2xvcj1cInByaW1hcnlcIj5cbiAgPGlvbi10aXRsZT5Kb2IgcHJvZ3Jlc3Npb248L2lvbi10aXRsZT5cbjwvaW9uLXRvb2xiYXI+XG5cbjxpb24tY29udGVudCBjbGFzcz1cImlvbi1wYWRkaW5nXCI+XG4gIDxwPlxuICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJjcmVhdGVKb2IoKVwiPkFkZCBKb2I8L2lvbi1idXR0b24+XG4gIDwvcD5cblxuICA8YXBwLWpvYi1wcm9ncmVzc2lvbi1pY29uICNpY29uIFtkZWJ1Z109XCJ0cnVlXCIgW29wdGlvbnNdPVwib3B0aW9uc1wiPjwvYXBwLWpvYi1wcm9ncmVzc2lvbi1pY29uPlxuPC9pb24tY29udGVudD5cbiJdfQ==
@@ -1,29 +1,10 @@
1
1
  import { Injectable } from '@angular/core';
2
- import { BehaviorSubject, interval } from 'rxjs';
3
- import { JobProgression } from '../progression/job-progression.model';
2
+ import { JobProgressionService } from '../progression/job-progression.service';
3
+ import { interval } from 'rxjs';
4
4
  import { map, take } from 'rxjs/operators';
5
5
  import * as i0 from "@angular/core";
6
- export class JobProgressionTestService {
7
- jobsSubject = new BehaviorSubject([]);
8
- addJob(id, job) {
9
- const exists = this.jobsSubject.value.some(j => j.id === id);
10
- if (!exists) {
11
- job = job || new JobProgression(id);
12
- this.jobsSubject.next([...this.jobsSubject.value, job]);
13
- }
14
- }
15
- removeJob(id) {
16
- const jobs = this.jobsSubject.value;
17
- const index = jobs.findIndex(j => j.id === id);
18
- if (index !== -1) {
19
- jobs.splice(index, 1);
20
- this.jobsSubject.next(jobs);
21
- }
22
- }
23
- watchAll() {
24
- return this.jobsSubject.asObservable();
25
- }
26
- listenChanges(id, options) {
6
+ export class JobProgressionTestService extends JobProgressionService {
7
+ listenChanges(id) {
27
8
  return interval(100).pipe(take(111), map(value => {
28
9
  if (value <= 10) {
29
10
  return {
@@ -44,10 +25,10 @@ export class JobProgressionTestService {
44
25
  };
45
26
  }));
46
27
  }
47
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: JobProgressionTestService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
28
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: JobProgressionTestService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
48
29
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: JobProgressionTestService });
49
30
  }
50
31
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: JobProgressionTestService, decorators: [{
51
32
  type: Injectable
52
33
  }] });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9iLXByb2dyZXNzaW9uLnRlc3Rpbmcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc29jaWFsL2pvYi90ZXN0aW5nL2pvYi1wcm9ncmVzc2lvbi50ZXN0aW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUd6QyxPQUFPLEVBQUMsZUFBZSxFQUFFLFFBQVEsRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUMzRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDcEUsT0FBTyxFQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFHekMsTUFBTSxPQUFPLHlCQUF5QjtJQUU1QixXQUFXLEdBQUcsSUFBSSxlQUFlLENBQW1CLEVBQUUsQ0FBQyxDQUFDO0lBRWhFLE1BQU0sQ0FBQyxFQUFVLEVBQUUsR0FBb0I7UUFDckMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixHQUFHLEdBQUcsR0FBRyxJQUFJLElBQUksY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFELENBQUM7SUFDSCxDQUFDO0lBRUQsU0FBUyxDQUFDLEVBQVU7UUFDbEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7UUFDcEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDL0MsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QixDQUFDO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVELGFBQWEsQ0FBQyxFQUFVLEVBQUUsT0FBMEQ7UUFFbEYsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUN2QixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQ1QsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ1YsSUFBSSxLQUFLLElBQUksRUFBRSxFQUFFLENBQUM7Z0JBQ2hCLE9BQXVCO29CQUNyQixFQUFFO29CQUNGLElBQUksRUFBRSxRQUFRLEVBQUUsRUFBRTtvQkFDbEIsT0FBTyxFQUFFLENBQUM7b0JBQ1YsS0FBSyxFQUFFLENBQUM7b0JBQ1IsT0FBTyxFQUFFLHFCQUFxQjtpQkFDL0IsQ0FBQztZQUNKLENBQUM7WUFDRCxLQUFLLEdBQUcsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNuQixPQUF1QjtnQkFDckIsRUFBRTtnQkFDRixJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUU7Z0JBQ2xCLE9BQU8sRUFBRSxLQUFLO2dCQUNkLEtBQUssRUFBRSxHQUFHO2dCQUNWLE9BQU8sRUFBRSxlQUFlLEtBQUssTUFBTTthQUNwQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7dUdBakRVLHlCQUF5QjsyR0FBekIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQURyQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SUpvYlByb2dyZXNzaW9uU2VydmljZX0gZnJvbSAnLi4vcHJvZ3Jlc3Npb24vam9iLXByb2dyZXNzaW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtGZXRjaFBvbGljeX0gZnJvbSAnQGFwb2xsby9jbGllbnQvY29yZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgaW50ZXJ2YWwsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtKb2JQcm9ncmVzc2lvbn0gZnJvbSAnLi4vcHJvZ3Jlc3Npb24vam9iLXByb2dyZXNzaW9uLm1vZGVsJztcbmltcG9ydCB7bWFwLCB0YWtlfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBKb2JQcm9ncmVzc2lvblRlc3RTZXJ2aWNlIGltcGxlbWVudHMgSUpvYlByb2dyZXNzaW9uU2VydmljZSB7XG5cbiAgcHJpdmF0ZSBqb2JzU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Sm9iUHJvZ3Jlc3Npb25bXT4oW10pO1xuXG4gIGFkZEpvYihpZDogbnVtYmVyLCBqb2I/OiBKb2JQcm9ncmVzc2lvbikge1xuICAgIGNvbnN0IGV4aXN0cyA9IHRoaXMuam9ic1N1YmplY3QudmFsdWUuc29tZShqID0+IGouaWQgPT09IGlkKTtcbiAgICBpZiAoIWV4aXN0cykge1xuICAgICAgam9iID0gam9iIHx8IG5ldyBKb2JQcm9ncmVzc2lvbihpZCk7XG4gICAgICB0aGlzLmpvYnNTdWJqZWN0Lm5leHQoWy4uLnRoaXMuam9ic1N1YmplY3QudmFsdWUsIGpvYl0pO1xuICAgIH1cbiAgfVxuXG4gIHJlbW92ZUpvYihpZDogbnVtYmVyKSB7XG4gICAgY29uc3Qgam9icyA9IHRoaXMuam9ic1N1YmplY3QudmFsdWU7XG4gICAgY29uc3QgaW5kZXggPSBqb2JzLmZpbmRJbmRleChqID0+IGouaWQgPT09IGlkKTtcbiAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICBqb2JzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICB0aGlzLmpvYnNTdWJqZWN0Lm5leHQoam9icyk7XG4gICAgfVxuICB9XG5cbiAgd2F0Y2hBbGwoKTogT2JzZXJ2YWJsZTxKb2JQcm9ncmVzc2lvbltdPiB7XG4gICAgcmV0dXJuIHRoaXMuam9ic1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBsaXN0ZW5DaGFuZ2VzKGlkOiBudW1iZXIsIG9wdGlvbnM/OiB7IGludGVydmFsPzogbnVtYmVyOyBmZXRjaFBvbGljeT86IEZldGNoUG9saWN5IH0pOiBPYnNlcnZhYmxlPEpvYlByb2dyZXNzaW9uPiB7XG5cbiAgICByZXR1cm4gaW50ZXJ2YWwoMTAwKS5waXBlKFxuICAgICAgdGFrZSgxMTEpLFxuICAgICAgbWFwKHZhbHVlID0+IHtcbiAgICAgICAgaWYgKHZhbHVlIDw9IDEwKSB7XG4gICAgICAgICAgcmV0dXJuIDxKb2JQcm9ncmVzc2lvbj57XG4gICAgICAgICAgICBpZCxcbiAgICAgICAgICAgIG5hbWU6IGBKb2IgIyR7aWR9YCxcbiAgICAgICAgICAgIGN1cnJlbnQ6IDAsXG4gICAgICAgICAgICB0b3RhbDogMCxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGBQcm9ncmVzc2lvbiBwZW5kaW5nYFxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgdmFsdWUgPSB2YWx1ZSAtIDEwO1xuICAgICAgICByZXR1cm4gPEpvYlByb2dyZXNzaW9uPntcbiAgICAgICAgICBpZCxcbiAgICAgICAgICBuYW1lOiBgSm9iICMke2lkfWAsXG4gICAgICAgICAgY3VycmVudDogdmFsdWUsXG4gICAgICAgICAgdG90YWw6IDEwMCxcbiAgICAgICAgICBtZXNzYWdlOiBgUHJvZ3Jlc3Npb24gJHt2YWx1ZX0vMTAwYFxuICAgICAgICB9O1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbn1cbiJdfQ==
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9iLXByb2dyZXNzaW9uLnRlc3Rpbmcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc29jaWFsL2pvYi90ZXN0aW5nL2pvYi1wcm9ncmVzc2lvbi50ZXN0aW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUM3RSxPQUFPLEVBQUMsUUFBUSxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQU8sRUFBQyxHQUFHLEVBQUUsSUFBSSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7O0FBR3pDLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxxQkFBcUI7SUFFbEUsYUFBYSxDQUFDLEVBQVU7UUFFdEIsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUN2QixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQ1QsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ1YsSUFBSSxLQUFLLElBQUksRUFBRSxFQUFFLENBQUM7Z0JBQ2hCLE9BQXVCO29CQUNyQixFQUFFO29CQUNGLElBQUksRUFBRSxRQUFRLEVBQUUsRUFBRTtvQkFDbEIsT0FBTyxFQUFFLENBQUM7b0JBQ1YsS0FBSyxFQUFFLENBQUM7b0JBQ1IsT0FBTyxFQUFFLHFCQUFxQjtpQkFDL0IsQ0FBQztZQUNKLENBQUM7WUFDRCxLQUFLLEdBQUcsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNuQixPQUF1QjtnQkFDckIsRUFBRTtnQkFDRixJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUU7Z0JBQ2xCLE9BQU8sRUFBRSxLQUFLO2dCQUNkLEtBQUssRUFBRSxHQUFHO2dCQUNWLE9BQU8sRUFBRSxlQUFlLEtBQUssTUFBTTthQUNwQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7dUdBMUJVLHlCQUF5QjsyR0FBekIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQURyQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Sm9iUHJvZ3Jlc3Npb25TZXJ2aWNlfSBmcm9tICcuLi9wcm9ncmVzc2lvbi9qb2ItcHJvZ3Jlc3Npb24uc2VydmljZSc7XG5pbXBvcnQge2ludGVydmFsLCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Sm9iUHJvZ3Jlc3Npb259IGZyb20gJy4uL3Byb2dyZXNzaW9uL2pvYi1wcm9ncmVzc2lvbi5tb2RlbCc7XG5pbXBvcnQge21hcCwgdGFrZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSm9iUHJvZ3Jlc3Npb25UZXN0U2VydmljZSBleHRlbmRzIEpvYlByb2dyZXNzaW9uU2VydmljZSB7XG5cbiAgbGlzdGVuQ2hhbmdlcyhpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxKb2JQcm9ncmVzc2lvbj4ge1xuXG4gICAgcmV0dXJuIGludGVydmFsKDEwMCkucGlwZShcbiAgICAgIHRha2UoMTExKSxcbiAgICAgIG1hcCh2YWx1ZSA9PiB7XG4gICAgICAgIGlmICh2YWx1ZSA8PSAxMCkge1xuICAgICAgICAgIHJldHVybiA8Sm9iUHJvZ3Jlc3Npb24+e1xuICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICBuYW1lOiBgSm9iICMke2lkfWAsXG4gICAgICAgICAgICBjdXJyZW50OiAwLFxuICAgICAgICAgICAgdG90YWw6IDAsXG4gICAgICAgICAgICBtZXNzYWdlOiBgUHJvZ3Jlc3Npb24gcGVuZGluZ2BcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHZhbHVlID0gdmFsdWUgLSAxMDtcbiAgICAgICAgcmV0dXJuIDxKb2JQcm9ncmVzc2lvbj57XG4gICAgICAgICAgaWQsXG4gICAgICAgICAgbmFtZTogYEpvYiAjJHtpZH1gLFxuICAgICAgICAgIGN1cnJlbnQ6IHZhbHVlLFxuICAgICAgICAgIHRvdGFsOiAxMDAsXG4gICAgICAgICAgbWVzc2FnZTogYFByb2dyZXNzaW9uICR7dmFsdWV9LzEwMGBcbiAgICAgICAgfTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG59XG4iXX0=