@tetacom/svg-charts 1.4.1 → 1.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,8 +7,6 @@ import { ClipPointsDirection } from "../model/enum/clip-points-direction";
7
7
  import * as i0 from "@angular/core";
8
8
  export class ChartService {
9
9
  constructor() {
10
- // public zoomInstance: Observable<ZoomService>;
11
- // public brushInstance: Observable<BrushService>;
12
10
  this.config$ = new BehaviorSubject(defaultChartConfig());
13
11
  this.size$ = new BehaviorSubject(null);
14
12
  this.pointerMove$ = new Subject();
@@ -219,8 +217,6 @@ export class ChartService {
219
217
  return config;
220
218
  }
221
219
  }
222
- // private zoomInstance$ = new Subject<ZoomService>();
223
- // private brushInstance$ = new Subject<BrushService>();
224
220
  ChartService._hiddenSeriesPostfix = 'hidden_series';
225
221
  ChartService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ChartService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
226
222
  ChartService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ChartService, providedIn: 'root' });
@@ -230,4 +226,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
230
226
  providedIn: 'root',
231
227
  }]
232
228
  }], ctorParameters: function () { return []; } });
233
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jaGFydC9zZXJ2aWNlL2NoYXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQ0wsZUFBZSxFQUNmLE1BQU0sRUFDTixhQUFhLEVBQ2IsR0FBRyxFQUVILEVBQUUsRUFDRixXQUFXLEVBQ1gsT0FBTyxFQUNQLElBQUksRUFDSixjQUFjLEdBQ2YsTUFBTSxNQUFNLENBQUM7QUFNZCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUlyRSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFPeEUsTUFBTSxPQUFPLFlBQVk7SUFvQ3ZCO1FBcEJBLGdEQUFnRDtRQUNoRCxrREFBa0Q7UUFFMUMsWUFBTyxHQUFHLElBQUksZUFBZSxDQUFlLGtCQUFrQixFQUFFLENBQUMsQ0FBQztRQUNsRSxVQUFLLEdBQUcsSUFBSSxlQUFlLENBQVUsSUFBSSxDQUFDLENBQUM7UUFDM0MsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBZ0IsQ0FBQztRQUMzQyxjQUFTLEdBQUcsSUFBSSxlQUFlLENBQTBDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNwRixtQkFBYyxHQUFHLElBQUksT0FBTyxFQUF5QixDQUFDO1FBQ3RELGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQXlCLENBQUM7UUFDckQsZUFBVSxHQUFHLElBQUksT0FBTyxFQUEyQixDQUFDO1FBQ3BELGdCQUFXLEdBQUcsSUFBSSxPQUFPLEVBQTBCLENBQUM7UUFDcEQsc0JBQWlCLEdBQUcsSUFB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QUMvQixPQUFPOzRCQUNMLEdBQUcsS0FBSzs0QkFDUixDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7NEJBQ1gsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDOzRCQUNYLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRTs0QkFDYixFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUU7eUJBQ2QsQ0FBQztvQkFDSixDQUFDLENBQUM7aUJBQ0gsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxJQUFJLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1lBQ3pCLE1BQU0sQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBQyxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlELE1BQU0sQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBQyxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFDO1NBQy9EO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzs7QUFqUkQsc0RBQXNEO0FBQ3RELHdEQUF3RDtBQUd6QyxpQ0FBb0IsR0FBRyxlQUFnQixDQUFBO3lHQWxDM0MsWUFBWTs2R0FBWixZQUFZLGNBRlgsTUFBTTsyRkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0lDaGFydENvbmZpZ30gZnJvbSAnLi4vbW9kZWwvaS1jaGFydC1jb25maWcnO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBmaWx0ZXIsXG4gIGxhc3RWYWx1ZUZyb20sXG4gIG1hcCxcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG4gIHNoYXJlUmVwbGF5LFxuICBTdWJqZWN0LFxuICB0YWtlLCB0YWtlTGFzdCwgdGFwLFxuICB3aXRoTGF0ZXN0RnJvbSxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0lDaGFydEV2ZW50fSBmcm9tICcuLi9tb2RlbC9pLWNoYXJ0LWV2ZW50JztcbmltcG9ydCB7SURpc3BsYXlUb29sdGlwfSBmcm9tICcuLi9tb2RlbC9pLWRpc3BsYXktdG9vbHRpcCc7XG5pbXBvcnQge1Bsb3RCYW5kfSBmcm9tICcuLi9tb2RlbC9wbG90LWJhbmQnO1xuaW1wb3J0IHtQbG90TGluZX0gZnJvbSAnLi4vbW9kZWwvcGxvdC1saW5lJztcbmltcG9ydCB7SVBvaW50TW92ZX0gZnJvbSAnLi4vbW9kZWwvaS1wb2ludC1tb3ZlJztcbmltcG9ydCB7ZGVmYXVsdENoYXJ0Q29uZmlnfSBmcm9tICcuLi9kZWZhdWx0L2RlZmF1bHQtY2hhcnQtY29uZmlnJztcbmltcG9ydCB7ZGVmYXVsdEF4aXNDb25maWd9IGZyb20gJy4uL2RlZmF1bHQvZGVmYXVsdC1heGlzLWNvbmZpZyc7XG5pbXBvcnQge2RlZmF1bHRTZXJpZXNDb25maWd9IGZyb20gJy4uL2RlZmF1bHQvZGVmYXVsdC1zZXJpZXMtY29uZmlnJztcbmltcG9ydCB7QmFzZVBvaW50fSBmcm9tICcuLi9tb2RlbC9iYXNlLXBvaW50JztcbmltcG9ydCB7U2VyaWVzfSBmcm9tICcuLi9tb2RlbC9zZXJpZXMnO1xuaW1wb3J0IHtBbm5vdGF0aW9ufSBmcm9tICcuLi9tb2RlbC9hbm5vdGF0aW9uJztcbmltcG9ydCB7Q2xpcFBvaW50c0RpcmVjdGlvbn0gZnJvbSBcIi4uL21vZGVsL2VudW0vY2xpcC1wb2ludHMtZGlyZWN0aW9uXCI7XG5pbXBvcnQge1pvb21TZXJ2aWNlfSBmcm9tIFwiLi96b29tLnNlcnZpY2VcIjtcbmltcG9ydCB7QnJ1c2hTZXJ2aWNlfSBmcm9tICcuL2JydXNoLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ2hhcnRTZXJ2aWNlIHtcbiAgcHVibGljIGlkOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIHB1YmxpYyBjb25maWc6IE9ic2VydmFibGU8SUNoYXJ0Q29uZmlnPjtcbiAgcHVibGljIHNpemU6IE9ic2VydmFibGU8RE9NUmVjdD47XG4gIHB1YmxpYyBwb2ludGVyTW92ZTogT2JzZXJ2YWJsZTxQb2ludGVyRXZlbnQ+O1xuICBwdWJsaWMgdG9vbHRpcHM6IE9ic2VydmFibGU8TWFwPFNlcmllczxCYXNlUG9pbnQ+LCBJRGlzcGxheVRvb2x0aXA+PjtcbiAgcHVibGljIHBsb3RCYW5kRXZlbnQ6IE9ic2VydmFibGU8SUNoYXJ0RXZlbnQ8UGxvdEJhbmQ+PjtcbiAgcHVibGljIHBsb3RMaW5lTW92ZTogT2JzZXJ2YWJsZTxJQ2hhcnRFdmVudDxQbG90TGluZT4+O1xuICBwdWJsaWMgcGxvdEJhbmRDbGljazogT2JzZXJ2YWJsZTxJQ2hhcnRFdmVudDxQbG90QmFuZD4+O1xuICBwdWJsaWMgcGxvdEJhbmRDb250ZXh0TWVudTogT2JzZXJ2YWJsZTxJQ2hhcnRFdmVudDxQbG90QmFuZD4+O1xuICBwdWJsaWMgcG9pbnRNb3ZlOiBPYnNlcnZhYmxlPElDaGFydEV2ZW50PElQb2ludE1vdmU+PjtcbiAgcHVibGljIGFubm90YXRpb25Nb3ZlOiBPYnNlcnZhYmxlPElDaGFydEV2ZW50PEFubm90YXRpb24+PjtcbiAgcHVibGljIGFubm90YXRpb25DbGljazogT2JzZXJ2YWJsZTxJQ2hhcnRFdmVudDxBbm5vdGF0aW9uPj47XG4gIHB1YmxpYyBhbm5vdGF0aW9uQ29udGV4dE1lbnU6IE9ic2VydmFibGU8SUNoYXJ0RXZlbnQ8QW5ub3RhdGlvbj4+O1xuICBwdWJsaWMgY2hhcnRDbGljazogT2JzZXJ2YWJsZTxJQ2hhcnRFdmVudDxCYXNlUG9pbnQ+PjtcbiAgcHVibGljIGNoYXJ0Q29udGV4dE1lbnU6IE9ic2VydmFibGU8SUNoYXJ0RXZlbnQ8QmFzZVBvaW50Pj47XG4gIC8vIHB1YmxpYyB6b29tSW5zdGFuY2U6IE9ic2VydmFibGU8Wm9vbVNlcnZpY2U+O1xuICAvLyBwdWJsaWMgYnJ1c2hJbnN0YW5jZTogT2JzZXJ2YWJsZTxCcnVzaFNlcnZpY2U+O1xuXG4gIHByaXZhdGUgY29uZmlnJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SUNoYXJ0Q29uZmlnPihkZWZhdWx0Q2hhcnRDb25maWcoKSk7XG4gIHByaXZhdGUgc2l6ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERPTVJlY3Q+KG51bGwpO1xuICBwcml2YXRlIHBvaW50ZXJNb3ZlJCA9IG5ldyBTdWJqZWN0PFBvaW50ZXJFdmVudD4oKTtcbiAgcHJpdmF0ZSB0b29sdGlwcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1hcDxTZXJpZXM8QmFzZVBvaW50PiwgSURpc3BsYXlUb29sdGlwPj4obmV3IE1hcCgpKTtcbiAgcHJpdmF0ZSBwbG90QmFuZEV2ZW50JCA9IG5ldyBTdWJqZWN0PElDaGFydEV2ZW50PFBsb3RCYW5kPj4oKTtcbiAgcHJpdmF0ZSBwbG90TGluZU1vdmUkID0gbmV3IFN1YmplY3Q8SUNoYXJ0RXZlbnQ8UGxvdExpbmU+PigpO1xuICBwcml2YXRlIHBvaW50TW92ZSQgPSBuZXcgU3ViamVjdDxJQ2hhcnRFdmVudDxJUG9pbnRNb3ZlPj4oKTtcbiAgcHJpdmF0ZSBjaGFydENsaWNrJCA9IG5ldyBTdWJqZWN0PElDaGFydEV2ZW50PEJhc2VQb2ludD4+KCk7XG4gIHByaXZhdGUgY2hhcnRDb250ZXh0TWVudSQgPSBuZXcgU3ViamVjdDxJQ2hhcnRFdmVudDxCYXNlUG9pbnQ+PigpO1xuICBwcml2YXRlIGFubm90YXRpb25FdmVudCQgPSBuZXcgU3ViamVjdDxJQ2hhcnRFdmVudDxBbm5vdGF0aW9uPj4oKTtcbiAgcHJpdmF0ZSBhbm5vdGF0aW9uTW92ZSQgPSBuZXcgU3ViamVjdDxJQ2hhcnRFdmVudDxBbm5vdGF0aW9uPj4oKTtcbiAgLy8gcHJpdmF0ZSB6b29tSW5zdGFuY2UkID0gbmV3IFN1YmplY3Q8Wm9vbVNlcnZpY2U+KCk7XG4gIC8vIHByaXZhdGUgYnJ1c2hJbnN0YW5jZSQgPSBuZXcgU3ViamVjdDxCcnVzaFNlcnZpY2U+KCk7XG5cblxuICBwcml2YXRlIHN0YXRpYyBfaGlkZGVuU2VyaWVzUG9zdGZpeCA9ICdoaWRkZW5fc2VyaWVzJztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmlkID0gb2YoKERhdGUubm93KCkgKyBNYXRoLnJhbmRvbSgpKS50b1N0cmluZygzNikpO1xuXG4gICAgdGhpcy5jb25maWcgPSB0aGlzLmNvbmZpZyQuYXNPYnNlcnZhYmxlKCkucGlwZShcbiAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuaWQpLFxuICAgICAgbWFwKHRoaXMuc2V0RGVmYXVsdHMpLFxuICAgICAgbWFwKHRoaXMuc2V0UHJlcGFyYXRpb25EYXRhKSxcbiAgICAgIG1hcCh0aGlzLnJlc3RvcmVMb2NhbFN0b3JhZ2UpLFxuICAgICAgc2hhcmVSZXBsYXkoe1xuICAgICAgICBidWZmZXJTaXplOiAxLFxuICAgICAgICByZWZDb3VudDogdHJ1ZSxcbiAgICAgIH0pXG4gICAgKTtcblxuXG4gICAgdGhpcy5zaXplID0gdGhpcy5zaXplJC5hc09ic2VydmFibGUoKS5waXBlKGZpbHRlcigoc2l6ZSkgPT4gc2l6ZSAhPSBudWxsKSk7XG4gICAgdGhpcy5wb2ludGVyTW92ZSA9IHRoaXMucG9pbnRlck1vdmUkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMudG9vbHRpcHMgPSB0aGlzLnRvb2x0aXBzJC5hc09ic2VydmFibGUoKTtcbiAgICB0aGlzLnBsb3RCYW5kRXZlbnQgPSB0aGlzLnBsb3RCYW5kRXZlbnQkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMucGxvdExpbmVNb3ZlID0gdGhpcy5wbG90TGluZU1vdmUkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMucG9pbnRNb3ZlID0gdGhpcy5wb2ludE1vdmUkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMuY2hhcnRDbGljayA9IHRoaXMuY2hhcnRDbGljayQuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy5jaGFydENvbnRleHRNZW51ID0gdGhpcy5jaGFydENvbnRleHRNZW51JC5hc09ic2VydmFibGUoKTtcbiAgICB0aGlzLmFubm90YXRpb25DbGljayA9IHRoaXMuYW5ub3RhdGlvbkV2ZW50JFxuICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAucGlwZShmaWx0ZXIoKF8pID0+IF8/LmV2ZW50Py50eXBlID09PSAnY2xpY2snKSk7XG4gICAgdGhpcy5hbm5vdGF0aW9uQ29udGV4dE1lbnUgPSB0aGlzLmFubm90YXRpb25FdmVudCRcbiAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgLnBpcGUoZmlsdGVyKChfKSA9PiBfPy5ldmVudD8udHlwZSA9PT0gJ2NvbnRleHRtZW51JykpO1xuICAgIHRoaXMuYW5ub3RhdGlvbk1vdmUgPSB0aGlzLmFubm90YXRpb25Nb3ZlJC5hc09ic2VydmFibGUoKTtcblxuICAgIHRoaXMucGxvdEJhbmRDbGljayA9IHRoaXMucGxvdEJhbmRFdmVudCRcbiAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgLnBpcGUoZmlsdGVyKChfKSA9PiBfPy5ldmVudD8udHlwZSA9PT0gJ2NsaWNrJykpO1xuICAgIHRoaXMucGxvdEJhbmRDb250ZXh0TWVudSA9IHRoaXMucGxvdEJhbmRFdmVudCRcbiAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgLnBpcGUoZmlsdGVyKChfKSA9PiBfPy5ldmVudD8udHlwZSA9PT0gJ2NvbnRleHRtZW51JykpO1xuICAgIC8vIHRoaXMuem9vbUluc3RhbmNlID0gdGhpcy56b29tSW5zdGFuY2UkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIC8vIHRoaXMuYnJ1c2hJbnN0YW5jZSA9IHRoaXMuYnJ1c2hJbnN0YW5jZSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0Q29uZmlnKGNvbmZpZzogSUNoYXJ0Q29uZmlnKSB7XG4gICAgdGhpcy5jbGVhclRvb2x0aXBzKCk7XG4gICAgdGhpcy5jb25maWckLm5leHQoY29uZmlnKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRTaXplKHNpemU6IERPTVJlY3QpIHtcbiAgICB0aGlzLnNpemUkLm5leHQoc2l6ZSk7XG4gIH1cblxuICBwdWJsaWMgc2V0UG9pbnRlck1vdmUoZXZlbnQ6IFBvaW50ZXJFdmVudCkge1xuICAgIHRoaXMucG9pbnRlck1vdmUkLm5leHQoZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIHNldFRvb2x0aXAodG9vbHRpcDogSURpc3BsYXlUb29sdGlwKSB7XG4gICAgY29uc3QgY3VycmVudFRvb2x0aXBzID0gdGhpcy50b29sdGlwcyQudmFsdWU7XG4gICAgaWYgKCF0b29sdGlwLnBvaW50KSB7XG4gICAgICBjdXJyZW50VG9vbHRpcHMuZGVsZXRlKHRvb2x0aXAuc2VyaWVzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY3VycmVudFRvb2x0aXBzLnNldCh0b29sdGlwLnNlcmllcywgdG9vbHRpcCk7XG4gICAgfVxuICAgIHRoaXMudG9vbHRpcHMkLm5leHQoXG4gICAgICBuZXcgTWFwPFNlcmllczxCYXNlUG9pbnQ+LCBJRGlzcGxheVRvb2x0aXA+KGN1cnJlbnRUb29sdGlwcylcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGNsZWFyVG9vbHRpcHMoKSB7XG4gICAgdGhpcy50b29sdGlwcyQubmV4dChuZXcgTWFwKCkpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHRvZ2dsZVZpc2liaWxpdHlTZXJpZXMoc2VyaWVzSW5kZXg6IEFycmF5PG51bWJlciB8IHN0cmluZz4sIHZpc2libGU/OiBib29sZWFuKSB7XG5cbiAgICBpZiAoc2VyaWVzSW5kZXg/Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGN1cnJlbnRDb25maWcgPSBhd2FpdCBsYXN0VmFsdWVGcm9tKHRoaXMuY29uZmlnLnBpcGUodGFrZSgxKSkpO1xuXG4gICAgc2VyaWVzSW5kZXguZm9yRWFjaCgoc2VyaWVJbmRleCkgPT4ge1xuICAgICAgY29uc3QgY3VycmVudFNlcmllSW5kZXggPSBjdXJyZW50Q29uZmlnLnNlcmllcy5maW5kSW5kZXgoKF8pID0+IF8uaWQgPT09IHNlcmllSW5kZXgpO1xuXG4gICAgICBpZiAoY3VycmVudFNlcmllSW5kZXggPT09IC0xKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGN1cnJlbnRDb25maWcuc2VyaWVzW2N1cnJlbnRTZXJpZUluZGV4XS52aXNpYmxlID0gdmlzaWJsZSAhPT0gdW5kZWZpbmVkID8gdmlzaWJsZSA6ICFjdXJyZW50Q29uZmlnLnNlcmllc1tjdXJyZW50U2VyaWVJbmRleF0udmlzaWJsZTtcblxuICAgICAgY29uc3Qgc2VyaWVzTGlua0NvdW50ID0gY3VycmVudENvbmZpZy5zZXJpZXMuZmlsdGVyKChfKSA9PiBfLnlBeGlzSW5kZXggPT09IGN1cnJlbnRDb25maWcuc2VyaWVzW2N1cnJlbnRTZXJpZUluZGV4XS55QXhpc0luZGV4ICYmIF8udmlzaWJsZSA9PT0gdHJ1ZSkubGVuZ3RoXG4gICAgICBjdXJyZW50Q29uZmlnLnlBeGlzW2N1cnJlbnRDb25maWcuc2VyaWVzW2N1cnJlbnRTZXJpZUluZGV4XS55QXhpc0luZGV4XS52aXNpYmxlID0gc2VyaWVzTGlua0NvdW50ICE9PSAwO1xuICAgIH0pXG5cbiAgICB0cnkge1xuICAgICAgdGhpcy5zYXZlQ29va2llKGN1cnJlbnRDb25maWcpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmNvbmZpZyQubmV4dChjdXJyZW50Q29uZmlnKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZW1pdE1vdmVBbm5vdGF0aW9uKGV2ZW50OiBJQ2hhcnRFdmVudDxBbm5vdGF0aW9uPikge1xuICAgIHRoaXMuYW5ub3RhdGlvbk1vdmUkLm5leHQoZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIGVtaXRBbm5vdGF0aW9uKGV2ZW50OiBJQ2hhcnRFdmVudDxBbm5vdGF0aW9uPikge1xuICAgIHRoaXMuYW5ub3RhdGlvbkV2ZW50JC5uZXh0KGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0UGxvdGJhbmQoZXZlbnQ6IElDaGFydEV2ZW50PFBsb3RCYW5kPikge1xuICAgIHRoaXMucGxvdEJhbmRFdmVudCQubmV4dChldmVudCk7XG4gIH1cblxuICBwdWJsaWMgZW1pdFBsb3RsaW5lKGV2ZW50OiBJQ2hhcnRFdmVudDxQbG90TGluZT4pIHtcbiAgICB0aGlzLnBsb3RMaW5lTW92ZSQubmV4dChldmVudCk7XG4gIH1cblxuICBwdWJsaWMgZW1pdFBvaW50KGV2ZW50OiBJQ2hhcnRFdmVudDxJUG9pbnRNb3ZlPikge1xuICAgIHRoaXMucG9pbnRNb3ZlJC5uZXh0KGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0Q2hhcnRDbGljayhldmVudDogSUNoYXJ0RXZlbnQ8QmFzZVBvaW50Pikge1xuICAgIHRoaXMuY2hhcnRDbGljayQubmV4dChldmVudCk7XG4gIH1cblxuICBwdWJsaWMgZW1pdENoYXJ0Q29udGV4dE1lbnUoZXZlbnQ6IElDaGFydEV2ZW50PEJhc2VQb2ludD4pIHtcbiAgICB0aGlzLmNoYXJ0Q29udGV4dE1lbnUkLm5leHQoZXZlbnQpO1xuICB9XG5cbiAgLy8gcHVibGljIGVtaXRab29tSW5zdGFuY2UoZXZlbnQ6IFpvb21TZXJ2aWNlKSB7XG4gIC8vICAgdGhpcy56b29tSW5zdGFuY2UkLm5leHQoZXZlbnQpO1xuICAvLyB9XG4gIC8vXG4gIC8vIHB1YmxpYyBlbWl0Wm9vbUluc3RhbmNlKGV2ZW50OiBab29tU2VydmljZSkge1xuICAvLyAgIHRoaXMuem9vbUluc3RhbmNlJC5uZXh0KGV2ZW50KTtcbiAgLy8gfVxuXG4gIHByaXZhdGUgc2F2ZUNvb2tpZShjb25maWc6IElDaGFydENvbmZpZykge1xuICAgIGlmKCFjb25maWcubmFtZSkgcmV0dXJuO1xuICAgIGNvbnN0IGhpZGRlblNlcmllcyA9IGNvbmZpZy5zZXJpZXM/LmZpbHRlcigoXykgPT4gIV8udmlzaWJsZSkubWFwKChfKSA9PiBfLmlkKTtcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShgJHtjb25maWcubmFtZX1fJHtDaGFydFNlcnZpY2UuX2hpZGRlblNlcmllc1Bvc3RmaXh9YCwgSlNPTi5zdHJpbmdpZnkoaGlkZGVuU2VyaWVzKSlcbiAgfVxuXG4gIHByaXZhdGUgcmVzdG9yZUxvY2FsU3RvcmFnZShjb25maWc6IElDaGFydENvbmZpZyk6IElDaGFydENvbmZpZyB7XG4gICAgaWYoIWNvbmZpZy5uYW1lKSByZXR1cm4gY29uZmlnO1xuXG4gICAgY29uc3QgaGlkZGVuU2VyaWVzID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oYCR7Y29uZmlnLm5hbWV9XyR7Q2hhcnRTZXJ2aWNlLl9oaWRkZW5TZXJpZXNQb3N0Zml4fWApO1xuICAgIGlmIChoaWRkZW5TZXJpZXMpIHtcbiAgICAgIGNvbnN0IGpzb24gPSBKU09OLnBhcnNlKGhpZGRlblNlcmllcykgYXMgQXJyYXk8c3RyaW5nIHwgbnVtYmVyPjtcbiAgICAgIGNvbmZpZy5zZXJpZXMgPSBjb25maWcuc2VyaWVzLm1hcCgoc2VyaWUsIGluZGV4KSA9PiB7XG4gICAgICAgIHNlcmllLnZpc2libGUgPSAhanNvbi5pbmNsdWRlcyhzZXJpZS5pZCk7XG5cbiAgICAgICAgY29uc3QgY3VycmVudFNlcmllSW5kZXggPSBjb25maWcuc2VyaWVzLmZpbmRJbmRleCgoXykgPT4gXy5pZCA9PT0gc2VyaWUuaWQpO1xuXG4gICAgICAgIGlmIChjdXJyZW50U2VyaWVJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICBjb25zdCBzZXJpZXNMaW5rQ291bnQgPSBjb25maWcuc2VyaWVzLmZpbHRlcigoXykgPT4gXy55QXhpc0luZGV4ID09PSBjb25maWcuc2VyaWVzW2N1cnJlbnRTZXJpZUluZGV4XS55QXhpc0luZGV4ICYmIF8udmlzaWJsZSA9PT0gdHJ1ZSkubGVuZ3RoXG4gICAgICAgICAgY29uZmlnLnlBeGlzW2NvbmZpZy5zZXJpZXNbY3VycmVudFNlcmllSW5kZXhdLnlBeGlzSW5kZXhdLnZpc2libGUgPSBzZXJpZXNMaW5rQ291bnQgIT09IDA7XG4gICAgICAgIH1cblxuXG4gICAgICAgIHJldHVybiBzZXJpZTtcbiAgICAgIH0pO1xuXG5cbiAgICAgIHJldHVybiBjb25maWdcbiAgICB9XG5cbiAgICByZXR1cm4gY29uZmlnXG4gIH1cblxuICBwcml2YXRlIHNldERlZmF1bHRzKGRhdGE6IFtJQ2hhcnRDb25maWcsIHN0cmluZ10pOiBJQ2hhcnRDb25maWcge1xuXG4gICAgbGV0IFtjb25maWcsIGlkXSA9IGRhdGE7XG5cbiAgICBjb25zdCBkZWZhdWx0Q29uZmlnID0gKGRlZmF1bHRDb25maWcpID0+IHtcbiAgICAgIHJldHVybiAoc291cmNlKSA9PiB7XG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0Q29uZmlnLCBzb3VyY2UpO1xuICAgICAgfTtcbiAgICB9O1xuXG4gICAgY29uZmlnID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdENoYXJ0Q29uZmlnKCksIGNvbmZpZyk7XG4gICAgY29uZmlnLmlkID0gY29uZmlnLmlkID8/IGlkO1xuXG4gICAgY29uZmlnLnhBeGlzID0gY29uZmlnLnhBeGlzLm1hcChkZWZhdWx0Q29uZmlnKGRlZmF1bHRBeGlzQ29uZmlnKSk7XG4gICAgY29uZmlnLnlBeGlzID0gY29uZmlnLnlBeGlzLm1hcChkZWZhdWx0Q29uZmlnKGRlZmF1bHRBeGlzQ29uZmlnKSk7XG4gICAgY29uZmlnLnNlcmllcyA9IGNvbmZpZy5zZXJpZXMubWFwKGRlZmF1bHRDb25maWcoZGVmYXVsdFNlcmllc0NvbmZpZygpKSk7XG5cbiAgICBjb25maWcuc2VyaWVzID0gY29uZmlnLnNlcmllcy5tYXAoKF8sIGluZGV4KSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5fLFxuICAgICAgICBkYXRhOiBfLmRhdGEgPz8gW10sXG4gICAgICAgIGlkOiBfLmlkID8/IGluZGV4LFxuICAgICAgfTtcbiAgICB9KTtcblxuICAgIGNvbnN0IG9wcG9zaXRlWUNvdW50ID0gY29uZmlnLnlBeGlzPy5maWx0ZXIoKF8pID0+IF8ub3Bwb3NpdGUpO1xuICAgIGNvbnN0IG9wcG9zaXRlWENvdW50ID0gY29uZmlnLnhBeGlzPy5maWx0ZXIoKF8pID0+IF8ub3Bwb3NpdGUpO1xuXG4gICAgY29uc3Qgbm9uT3Bwb3NpdGVZQ291bnQgPSBjb25maWcueUF4aXM/LmZpbHRlcigoXykgPT4gIV8ub3Bwb3NpdGUpO1xuICAgIGNvbnN0IG5vbk9wcG9zaXRlWENvdW50ID0gY29uZmlnLnhBeGlzPy5maWx0ZXIoKF8pID0+ICFfLm9wcG9zaXRlKTtcblxuICAgIGlmIChub25PcHBvc2l0ZVhDb3VudD8ubGVuZ3RoID4gMSkge1xuICAgICAgY29uZmlnLmJvdW5kcy5ib3R0b20gPSAwO1xuICAgIH1cblxuICAgIGlmIChvcHBvc2l0ZVhDb3VudD8ubGVuZ3RoID4gMSkge1xuICAgICAgY29uZmlnLmJvdW5kcy50b3AgPSAwO1xuICAgIH1cblxuICAgIGlmIChub25PcHBvc2l0ZVlDb3VudD8ubGVuZ3RoID4gMSkge1xuICAgICAgY29uZmlnLmJvdW5kcy5sZWZ0ID0gMDtcbiAgICB9XG5cbiAgICBpZiAob3Bwb3NpdGVZQ291bnQ/Lmxlbmd0aCA+IDEpIHtcbiAgICAgIGNvbmZpZy5ib3VuZHMucmlnaHQgPSAwO1xuICAgIH1cblxuICAgIGNvbmZpZy50b29sdGlwID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LFxuICAgICAgZGVmYXVsdENoYXJ0Q29uZmlnKCkudG9vbHRpcCxcbiAgICAgIGNvbmZpZy50b29sdGlwXG4gICAgKTtcblxuICAgIGNvbmZpZy56b29tID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LFxuICAgICAgZGVmYXVsdENoYXJ0Q29uZmlnKCkuem9vbSxcbiAgICAgIGNvbmZpZy56b29tXG4gICAgKTtcblxuICAgIGNvbmZpZy56b29tLnN5bmNDaGFubmVsID0gY29uZmlnLnpvb20/LnN5bmNDaGFubmVsID8/IGlkO1xuXG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfVxuXG4gIHByaXZhdGUgc2V0UHJlcGFyYXRpb25EYXRhKGNvbmZpZzogSUNoYXJ0Q29uZmlnKTogSUNoYXJ0Q29uZmlnIHtcbiAgICBpZiAoY29uZmlnLmludmVydGVkKSB7XG5cblxuICAgICAgY29uc3QgeEF4ZXMgPSBbLi4uY29uZmlnLnhBeGlzXTtcbiAgICAgIGNvbnN0IHlBeGVzID0gWy4uLmNvbmZpZy55QXhpc107XG5cbiAgICAgIGNvbmZpZy54QXhpcyA9IHlBeGVzO1xuICAgICAgY29uZmlnLnlBeGlzID0geEF4ZXM7XG5cbiAgICAgIGNvbmZpZy5zZXJpZXMgPSBjb25maWcuc2VyaWVzPy5tYXAoKHNlcmllKSA9PiB7XG4gICAgICAgIGNvbnN0IHggPSBzZXJpZS54QXhpc0luZGV4O1xuICAgICAgICBjb25zdCB5ID0gc2VyaWUueUF4aXNJbmRleDtcbiAgICAgICAgc2VyaWUueEF4aXNJbmRleCA9IHk7XG4gICAgICAgIHNlcmllLnlBeGlzSW5kZXggPSB4O1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnNlcmllLFxuICAgICAgICAgIGNsaXBQb2ludHNEaXJlY3Rpb246IENsaXBQb2ludHNEaXJlY3Rpb24ueSxcbiAgICAgICAgICBkYXRhOiBzZXJpZT8uZGF0YT8ubWFwKChwb2ludCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgLi4ucG9pbnQsXG4gICAgICAgICAgICAgIHg6IHBvaW50Py55LFxuICAgICAgICAgICAgICB5OiBwb2ludD8ueCxcbiAgICAgICAgICAgICAgeDE6IHBvaW50Py55MSxcbiAgICAgICAgICAgICAgeTE6IHBvaW50Py54MSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSksXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoY29uZmlnPy5icnVzaD8uZW5hYmxlKSB7XG4gICAgICBjb25maWcueUF4aXMgPSBjb25maWcueUF4aXMubWFwKChfKSA9PiAoey4uLl8sIHpvb206IGZhbHNlfSkpO1xuICAgICAgY29uZmlnLnhBeGlzID0gY29uZmlnLnhBeGlzLm1hcCgoXykgPT4gKHsuLi5fLCB6b29tOiBmYWxzZX0pKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29uZmlnO1xuICB9XG59XG4iXX0=
229
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jaGFydC9zZXJ2aWNlL2NoYXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQ0wsZUFBZSxFQUNmLE1BQU0sRUFDTixhQUFhLEVBQ2IsR0FBRyxFQUVILEVBQUUsRUFDRixXQUFXLEVBQ1gsT0FBTyxFQUNQLElBQUksRUFDSixjQUFjLEdBQ2YsTUFBTSxNQUFNLENBQUM7QUFNZCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUlyRSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFLeEUsTUFBTSxPQUFPLFlBQVk7SUFnQ3ZCO1FBZlEsWUFBTyxHQUFHLElBQUksZUFBZSxDQUFlLGtCQUFrQixFQUFFLENBQUMsQ0FBQztRQUNsRSxVQUFLLEdBQUcsSUFBSSxlQUFlLENBQVUsSUFBSSxDQUFDLENBQUM7UUFDM0MsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBZ0IsQ0FBQztRQUMzQyxjQUFTLEdBQUcsSUFBSSxlQUFlLENBQTBDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNwRixtQkFBYyxHQUFHLElBQUksT0FBTyxFQUF5QixDQUFDO1FBQ3RELGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQXlCLENBQUM7UUFDckQsZUFBVSxHQUFHLElBQUksT0FBTyxFQUEyQixDQUFDO1FBQ3BELGdCQUFXLEdBQUcsSUFBSSxPQUFPLEVBQTBCLENBQUM7UUFDcEQsc0JBQWlCLEdBQUcsSUFBSSxPQUFPLEVBQTBCLENBQUM7UUFDMUQscUJB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QkFDUixDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7NEJBQ1gsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDOzRCQUNYLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRTs0QkFDYixFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUU7eUJBQ2QsQ0FBQztvQkFDSixDQUFDLENBQUM7aUJBQ0gsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxJQUFJLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1lBQ3pCLE1BQU0sQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBQyxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlELE1BQU0sQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBQyxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFDO1NBQy9EO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzs7QUE3UWMsaUNBQW9CLEdBQUcsZUFBZ0IsQ0FBQTt5R0E5QjNDLFlBQVk7NkdBQVosWUFBWSxjQUZYLE1BQU07MkZBRVAsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtJQ2hhcnRDb25maWd9IGZyb20gJy4uL21vZGVsL2ktY2hhcnQtY29uZmlnJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgZmlsdGVyLFxuICBsYXN0VmFsdWVGcm9tLFxuICBtYXAsXG4gIE9ic2VydmFibGUsXG4gIG9mLFxuICBzaGFyZVJlcGxheSxcbiAgU3ViamVjdCxcbiAgdGFrZSxcbiAgd2l0aExhdGVzdEZyb20sXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtJQ2hhcnRFdmVudH0gZnJvbSAnLi4vbW9kZWwvaS1jaGFydC1ldmVudCc7XG5pbXBvcnQge0lEaXNwbGF5VG9vbHRpcH0gZnJvbSAnLi4vbW9kZWwvaS1kaXNwbGF5LXRvb2x0aXAnO1xuaW1wb3J0IHtQbG90QmFuZH0gZnJvbSAnLi4vbW9kZWwvcGxvdC1iYW5kJztcbmltcG9ydCB7UGxvdExpbmV9IGZyb20gJy4uL21vZGVsL3Bsb3QtbGluZSc7XG5pbXBvcnQge0lQb2ludE1vdmV9IGZyb20gJy4uL21vZGVsL2ktcG9pbnQtbW92ZSc7XG5pbXBvcnQge2RlZmF1bHRDaGFydENvbmZpZ30gZnJvbSAnLi4vZGVmYXVsdC9kZWZhdWx0LWNoYXJ0LWNvbmZpZyc7XG5pbXBvcnQge2RlZmF1bHRBeGlzQ29uZmlnfSBmcm9tICcuLi9kZWZhdWx0L2RlZmF1bHQtYXhpcy1jb25maWcnO1xuaW1wb3J0IHtkZWZhdWx0U2VyaWVzQ29uZmlnfSBmcm9tICcuLi9kZWZhdWx0L2RlZmF1bHQtc2VyaWVzLWNvbmZpZyc7XG5pbXBvcnQge0Jhc2VQb2ludH0gZnJvbSAnLi4vbW9kZWwvYmFzZS1wb2ludCc7XG5pbXBvcnQge1Nlcmllc30gZnJvbSAnLi4vbW9kZWwvc2VyaWVzJztcbmltcG9ydCB7QW5ub3RhdGlvbn0gZnJvbSAnLi4vbW9kZWwvYW5ub3RhdGlvbic7XG5pbXBvcnQge0NsaXBQb2ludHNEaXJlY3Rpb259IGZyb20gXCIuLi9tb2RlbC9lbnVtL2NsaXAtcG9pbnRzLWRpcmVjdGlvblwiO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ2hhcnRTZXJ2aWNlIHtcbiAgcHVibGljIGlkOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIHB1YmxpYyBjb25maWc6IE9ic2VydmFibGU8SUNoYXJ0Q29uZmlnPjtcbiAgcHVibGljIHNpemU6IE9ic2VydmFibGU8RE9NUmVjdD47XG4gIHB1YmxpYyBwb2ludGVyTW92ZTogT2JzZXJ2YWJsZTxQb2ludGVyRXZlbnQ+O1xuICBwdWJsaWMgdG9vbHRpcHM6IE9ic2VydmFibGU8TWFwPFNlcmllczxCYXNlUG9pbnQ+LCBJRGlzcGxheVRvb2x0aXA+PjtcbiAgcHVibGljIHBsb3RCYW5kRXZlbnQ6IE9ic2VydmFibGU8SUNoYXJ0RXZlbnQ8UGxvdEJhbmQ+PjtcbiAgcHVibGljIHBsb3RMaW5lTW92ZTogT2JzZXJ2YWJsZTxJQ2hhcnRFdmVudDxQbG90TGluZT4+O1xuICBwdWJsaWMgcGxvdEJhbmRDbGljazogT2JzZXJ2YWJsZTxJQ2hhcnRFdmVudDxQbG90QmFuZD4+O1xuICBwdWJsaWMgcGxvdEJhbmRDb250ZXh0TWVudTogT2JzZXJ2YWJsZTxJQ2hhcnRFdmVudDxQbG90QmFuZD4+O1xuICBwdWJsaWMgcG9pbnRNb3ZlOiBPYnNlcnZhYmxlPElDaGFydEV2ZW50PElQb2ludE1vdmU+PjtcbiAgcHVibGljIGFubm90YXRpb25Nb3ZlOiBPYnNlcnZhYmxlPElDaGFydEV2ZW50PEFubm90YXRpb24+PjtcbiAgcHVibGljIGFubm90YXRpb25DbGljazogT2JzZXJ2YWJsZTxJQ2hhcnRFdmVudDxBbm5vdGF0aW9uPj47XG4gIHB1YmxpYyBhbm5vdGF0aW9uQ29udGV4dE1lbnU6IE9ic2VydmFibGU8SUNoYXJ0RXZlbnQ8QW5ub3RhdGlvbj4+O1xuICBwdWJsaWMgY2hhcnRDbGljazogT2JzZXJ2YWJsZTxJQ2hhcnRFdmVudDxCYXNlUG9pbnQ+PjtcbiAgcHVibGljIGNoYXJ0Q29udGV4dE1lbnU6IE9ic2VydmFibGU8SUNoYXJ0RXZlbnQ8QmFzZVBvaW50Pj47XG5cbiAgcHJpdmF0ZSBjb25maWckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxJQ2hhcnRDb25maWc+KGRlZmF1bHRDaGFydENvbmZpZygpKTtcbiAgcHJpdmF0ZSBzaXplJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RE9NUmVjdD4obnVsbCk7XG4gIHByaXZhdGUgcG9pbnRlck1vdmUkID0gbmV3IFN1YmplY3Q8UG9pbnRlckV2ZW50PigpO1xuICBwcml2YXRlIHRvb2x0aXBzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWFwPFNlcmllczxCYXNlUG9pbnQ+LCBJRGlzcGxheVRvb2x0aXA+PihuZXcgTWFwKCkpO1xuICBwcml2YXRlIHBsb3RCYW5kRXZlbnQkID0gbmV3IFN1YmplY3Q8SUNoYXJ0RXZlbnQ8UGxvdEJhbmQ+PigpO1xuICBwcml2YXRlIHBsb3RMaW5lTW92ZSQgPSBuZXcgU3ViamVjdDxJQ2hhcnRFdmVudDxQbG90TGluZT4+KCk7XG4gIHByaXZhdGUgcG9pbnRNb3ZlJCA9IG5ldyBTdWJqZWN0PElDaGFydEV2ZW50PElQb2ludE1vdmU+PigpO1xuICBwcml2YXRlIGNoYXJ0Q2xpY2skID0gbmV3IFN1YmplY3Q8SUNoYXJ0RXZlbnQ8QmFzZVBvaW50Pj4oKTtcbiAgcHJpdmF0ZSBjaGFydENvbnRleHRNZW51JCA9IG5ldyBTdWJqZWN0PElDaGFydEV2ZW50PEJhc2VQb2ludD4+KCk7XG4gIHByaXZhdGUgYW5ub3RhdGlvbkV2ZW50JCA9IG5ldyBTdWJqZWN0PElDaGFydEV2ZW50PEFubm90YXRpb24+PigpO1xuICBwcml2YXRlIGFubm90YXRpb25Nb3ZlJCA9IG5ldyBTdWJqZWN0PElDaGFydEV2ZW50PEFubm90YXRpb24+PigpO1xuXG5cbiAgcHJpdmF0ZSBzdGF0aWMgX2hpZGRlblNlcmllc1Bvc3RmaXggPSAnaGlkZGVuX3Nlcmllcyc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pZCA9IG9mKChEYXRlLm5vdygpICsgTWF0aC5yYW5kb20oKSkudG9TdHJpbmcoMzYpKTtcblxuICAgIHRoaXMuY29uZmlnID0gdGhpcy5jb25maWckLmFzT2JzZXJ2YWJsZSgpLnBpcGUoXG4gICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLmlkKSxcbiAgICAgIG1hcCh0aGlzLnNldERlZmF1bHRzKSxcbiAgICAgIG1hcCh0aGlzLnNldFByZXBhcmF0aW9uRGF0YSksXG4gICAgICBtYXAodGhpcy5yZXN0b3JlTG9jYWxTdG9yYWdlKSxcbiAgICAgIHNoYXJlUmVwbGF5KHtcbiAgICAgICAgYnVmZmVyU2l6ZTogMSxcbiAgICAgICAgcmVmQ291bnQ6IHRydWUsXG4gICAgICB9KVxuICAgICk7XG5cblxuICAgIHRoaXMuc2l6ZSA9IHRoaXMuc2l6ZSQuYXNPYnNlcnZhYmxlKCkucGlwZShmaWx0ZXIoKHNpemUpID0+IHNpemUgIT0gbnVsbCkpO1xuICAgIHRoaXMucG9pbnRlck1vdmUgPSB0aGlzLnBvaW50ZXJNb3ZlJC5hc09ic2VydmFibGUoKTtcbiAgICB0aGlzLnRvb2x0aXBzID0gdGhpcy50b29sdGlwcyQuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy5wbG90QmFuZEV2ZW50ID0gdGhpcy5wbG90QmFuZEV2ZW50JC5hc09ic2VydmFibGUoKTtcbiAgICB0aGlzLnBsb3RMaW5lTW92ZSA9IHRoaXMucGxvdExpbmVNb3ZlJC5hc09ic2VydmFibGUoKTtcbiAgICB0aGlzLnBvaW50TW92ZSA9IHRoaXMucG9pbnRNb3ZlJC5hc09ic2VydmFibGUoKTtcbiAgICB0aGlzLmNoYXJ0Q2xpY2sgPSB0aGlzLmNoYXJ0Q2xpY2skLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMuY2hhcnRDb250ZXh0TWVudSA9IHRoaXMuY2hhcnRDb250ZXh0TWVudSQuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy5hbm5vdGF0aW9uQ2xpY2sgPSB0aGlzLmFubm90YXRpb25FdmVudCRcbiAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgLnBpcGUoZmlsdGVyKChfKSA9PiBfPy5ldmVudD8udHlwZSA9PT0gJ2NsaWNrJykpO1xuICAgIHRoaXMuYW5ub3RhdGlvbkNvbnRleHRNZW51ID0gdGhpcy5hbm5vdGF0aW9uRXZlbnQkXG4gICAgICAuYXNPYnNlcnZhYmxlKClcbiAgICAgIC5waXBlKGZpbHRlcigoXykgPT4gXz8uZXZlbnQ/LnR5cGUgPT09ICdjb250ZXh0bWVudScpKTtcbiAgICB0aGlzLmFubm90YXRpb25Nb3ZlID0gdGhpcy5hbm5vdGF0aW9uTW92ZSQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICB0aGlzLnBsb3RCYW5kQ2xpY2sgPSB0aGlzLnBsb3RCYW5kRXZlbnQkXG4gICAgICAuYXNPYnNlcnZhYmxlKClcbiAgICAgIC5waXBlKGZpbHRlcigoXykgPT4gXz8uZXZlbnQ/LnR5cGUgPT09ICdjbGljaycpKTtcbiAgICB0aGlzLnBsb3RCYW5kQ29udGV4dE1lbnUgPSB0aGlzLnBsb3RCYW5kRXZlbnQkXG4gICAgICAuYXNPYnNlcnZhYmxlKClcbiAgICAgIC5waXBlKGZpbHRlcigoXykgPT4gXz8uZXZlbnQ/LnR5cGUgPT09ICdjb250ZXh0bWVudScpKTtcbiAgICAvLyB0aGlzLnpvb21JbnN0YW5jZSA9IHRoaXMuem9vbUluc3RhbmNlJC5hc09ic2VydmFibGUoKTtcbiAgICAvLyB0aGlzLmJydXNoSW5zdGFuY2UgPSB0aGlzLmJydXNoSW5zdGFuY2UkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIHNldENvbmZpZyhjb25maWc6IElDaGFydENvbmZpZykge1xuICAgIHRoaXMuY2xlYXJUb29sdGlwcygpO1xuICAgIHRoaXMuY29uZmlnJC5uZXh0KGNvbmZpZyk7XG4gIH1cblxuICBwdWJsaWMgc2V0U2l6ZShzaXplOiBET01SZWN0KSB7XG4gICAgdGhpcy5zaXplJC5uZXh0KHNpemUpO1xuICB9XG5cbiAgcHVibGljIHNldFBvaW50ZXJNb3ZlKGV2ZW50OiBQb2ludGVyRXZlbnQpIHtcbiAgICB0aGlzLnBvaW50ZXJNb3ZlJC5uZXh0KGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRUb29sdGlwKHRvb2x0aXA6IElEaXNwbGF5VG9vbHRpcCkge1xuICAgIGNvbnN0IGN1cnJlbnRUb29sdGlwcyA9IHRoaXMudG9vbHRpcHMkLnZhbHVlO1xuICAgIGlmICghdG9vbHRpcC5wb2ludCkge1xuICAgICAgY3VycmVudFRvb2x0aXBzLmRlbGV0ZSh0b29sdGlwLnNlcmllcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGN1cnJlbnRUb29sdGlwcy5zZXQodG9vbHRpcC5zZXJpZXMsIHRvb2x0aXApO1xuICAgIH1cbiAgICB0aGlzLnRvb2x0aXBzJC5uZXh0KFxuICAgICAgbmV3IE1hcDxTZXJpZXM8QmFzZVBvaW50PiwgSURpc3BsYXlUb29sdGlwPihjdXJyZW50VG9vbHRpcHMpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhclRvb2x0aXBzKCkge1xuICAgIHRoaXMudG9vbHRpcHMkLm5leHQobmV3IE1hcCgpKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB0b2dnbGVWaXNpYmlsaXR5U2VyaWVzKHNlcmllc0luZGV4OiBBcnJheTxudW1iZXIgfCBzdHJpbmc+LCB2aXNpYmxlPzogYm9vbGVhbikge1xuXG4gICAgaWYgKHNlcmllc0luZGV4Py5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjdXJyZW50Q29uZmlnID0gYXdhaXQgbGFzdFZhbHVlRnJvbSh0aGlzLmNvbmZpZy5waXBlKHRha2UoMSkpKTtcblxuICAgIHNlcmllc0luZGV4LmZvckVhY2goKHNlcmllSW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnRTZXJpZUluZGV4ID0gY3VycmVudENvbmZpZy5zZXJpZXMuZmluZEluZGV4KChfKSA9PiBfLmlkID09PSBzZXJpZUluZGV4KTtcblxuICAgICAgaWYgKGN1cnJlbnRTZXJpZUluZGV4ID09PSAtMSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjdXJyZW50Q29uZmlnLnNlcmllc1tjdXJyZW50U2VyaWVJbmRleF0udmlzaWJsZSA9IHZpc2libGUgIT09IHVuZGVmaW5lZCA/IHZpc2libGUgOiAhY3VycmVudENvbmZpZy5zZXJpZXNbY3VycmVudFNlcmllSW5kZXhdLnZpc2libGU7XG5cbiAgICAgIGNvbnN0IHNlcmllc0xpbmtDb3VudCA9IGN1cnJlbnRDb25maWcuc2VyaWVzLmZpbHRlcigoXykgPT4gXy55QXhpc0luZGV4ID09PSBjdXJyZW50Q29uZmlnLnNlcmllc1tjdXJyZW50U2VyaWVJbmRleF0ueUF4aXNJbmRleCAmJiBfLnZpc2libGUgPT09IHRydWUpLmxlbmd0aFxuICAgICAgY3VycmVudENvbmZpZy55QXhpc1tjdXJyZW50Q29uZmlnLnNlcmllc1tjdXJyZW50U2VyaWVJbmRleF0ueUF4aXNJbmRleF0udmlzaWJsZSA9IHNlcmllc0xpbmtDb3VudCAhPT0gMDtcbiAgICB9KVxuXG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuc2F2ZUNvb2tpZShjdXJyZW50Q29uZmlnKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5jb25maWckLm5leHQoY3VycmVudENvbmZpZyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGVtaXRNb3ZlQW5ub3RhdGlvbihldmVudDogSUNoYXJ0RXZlbnQ8QW5ub3RhdGlvbj4pIHtcbiAgICB0aGlzLmFubm90YXRpb25Nb3ZlJC5uZXh0KGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0QW5ub3RhdGlvbihldmVudDogSUNoYXJ0RXZlbnQ8QW5ub3RhdGlvbj4pIHtcbiAgICB0aGlzLmFubm90YXRpb25FdmVudCQubmV4dChldmVudCk7XG4gIH1cblxuICBwdWJsaWMgZW1pdFBsb3RiYW5kKGV2ZW50OiBJQ2hhcnRFdmVudDxQbG90QmFuZD4pIHtcbiAgICB0aGlzLnBsb3RCYW5kRXZlbnQkLm5leHQoZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIGVtaXRQbG90bGluZShldmVudDogSUNoYXJ0RXZlbnQ8UGxvdExpbmU+KSB7XG4gICAgdGhpcy5wbG90TGluZU1vdmUkLm5leHQoZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIGVtaXRQb2ludChldmVudDogSUNoYXJ0RXZlbnQ8SVBvaW50TW92ZT4pIHtcbiAgICB0aGlzLnBvaW50TW92ZSQubmV4dChldmVudCk7XG4gIH1cblxuICBwdWJsaWMgZW1pdENoYXJ0Q2xpY2soZXZlbnQ6IElDaGFydEV2ZW50PEJhc2VQb2ludD4pIHtcbiAgICB0aGlzLmNoYXJ0Q2xpY2skLm5leHQoZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIGVtaXRDaGFydENvbnRleHRNZW51KGV2ZW50OiBJQ2hhcnRFdmVudDxCYXNlUG9pbnQ+KSB7XG4gICAgdGhpcy5jaGFydENvbnRleHRNZW51JC5uZXh0KGV2ZW50KTtcbiAgfVxuXG4gIC8vIHB1YmxpYyBlbWl0Wm9vbUluc3RhbmNlKGV2ZW50OiBab29tU2VydmljZSkge1xuICAvLyAgIHRoaXMuem9vbUluc3RhbmNlJC5uZXh0KGV2ZW50KTtcbiAgLy8gfVxuICAvL1xuICAvLyBwdWJsaWMgZW1pdFpvb21JbnN0YW5jZShldmVudDogWm9vbVNlcnZpY2UpIHtcbiAgLy8gICB0aGlzLnpvb21JbnN0YW5jZSQubmV4dChldmVudCk7XG4gIC8vIH1cblxuICBwcml2YXRlIHNhdmVDb29raWUoY29uZmlnOiBJQ2hhcnRDb25maWcpIHtcbiAgICBpZighY29uZmlnLm5hbWUpIHJldHVybjtcbiAgICBjb25zdCBoaWRkZW5TZXJpZXMgPSBjb25maWcuc2VyaWVzPy5maWx0ZXIoKF8pID0+ICFfLnZpc2libGUpLm1hcCgoXykgPT4gXy5pZCk7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oYCR7Y29uZmlnLm5hbWV9XyR7Q2hhcnRTZXJ2aWNlLl9oaWRkZW5TZXJpZXNQb3N0Zml4fWAsIEpTT04uc3RyaW5naWZ5KGhpZGRlblNlcmllcykpXG4gIH1cblxuICBwcml2YXRlIHJlc3RvcmVMb2NhbFN0b3JhZ2UoY29uZmlnOiBJQ2hhcnRDb25maWcpOiBJQ2hhcnRDb25maWcge1xuICAgIGlmKCFjb25maWcubmFtZSkgcmV0dXJuIGNvbmZpZztcblxuICAgIGNvbnN0IGhpZGRlblNlcmllcyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKGAke2NvbmZpZy5uYW1lfV8ke0NoYXJ0U2VydmljZS5faGlkZGVuU2VyaWVzUG9zdGZpeH1gKTtcbiAgICBpZiAoaGlkZGVuU2VyaWVzKSB7XG4gICAgICBjb25zdCBqc29uID0gSlNPTi5wYXJzZShoaWRkZW5TZXJpZXMpIGFzIEFycmF5PHN0cmluZyB8IG51bWJlcj47XG4gICAgICBjb25maWcuc2VyaWVzID0gY29uZmlnLnNlcmllcy5tYXAoKHNlcmllLCBpbmRleCkgPT4ge1xuICAgICAgICBzZXJpZS52aXNpYmxlID0gIWpzb24uaW5jbHVkZXMoc2VyaWUuaWQpO1xuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRTZXJpZUluZGV4ID0gY29uZmlnLnNlcmllcy5maW5kSW5kZXgoKF8pID0+IF8uaWQgPT09IHNlcmllLmlkKTtcblxuICAgICAgICBpZiAoY3VycmVudFNlcmllSW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgY29uc3Qgc2VyaWVzTGlua0NvdW50ID0gY29uZmlnLnNlcmllcy5maWx0ZXIoKF8pID0+IF8ueUF4aXNJbmRleCA9PT0gY29uZmlnLnNlcmllc1tjdXJyZW50U2VyaWVJbmRleF0ueUF4aXNJbmRleCAmJiBfLnZpc2libGUgPT09IHRydWUpLmxlbmd0aFxuICAgICAgICAgIGNvbmZpZy55QXhpc1tjb25maWcuc2VyaWVzW2N1cnJlbnRTZXJpZUluZGV4XS55QXhpc0luZGV4XS52aXNpYmxlID0gc2VyaWVzTGlua0NvdW50ICE9PSAwO1xuICAgICAgICB9XG5cblxuICAgICAgICByZXR1cm4gc2VyaWU7XG4gICAgICB9KTtcblxuXG4gICAgICByZXR1cm4gY29uZmlnXG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbmZpZ1xuICB9XG5cbiAgcHJpdmF0ZSBzZXREZWZhdWx0cyhkYXRhOiBbSUNoYXJ0Q29uZmlnLCBzdHJpbmddKTogSUNoYXJ0Q29uZmlnIHtcblxuICAgIGxldCBbY29uZmlnLCBpZF0gPSBkYXRhO1xuXG4gICAgY29uc3QgZGVmYXVsdENvbmZpZyA9IChkZWZhdWx0Q29uZmlnKSA9PiB7XG4gICAgICByZXR1cm4gKHNvdXJjZSkgPT4ge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdENvbmZpZywgc291cmNlKTtcbiAgICAgIH07XG4gICAgfTtcblxuICAgIGNvbmZpZyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRDaGFydENvbmZpZygpLCBjb25maWcpO1xuICAgIGNvbmZpZy5pZCA9IGNvbmZpZy5pZCA/PyBpZDtcblxuICAgIGNvbmZpZy54QXhpcyA9IGNvbmZpZy54QXhpcy5tYXAoZGVmYXVsdENvbmZpZyhkZWZhdWx0QXhpc0NvbmZpZykpO1xuICAgIGNvbmZpZy55QXhpcyA9IGNvbmZpZy55QXhpcy5tYXAoZGVmYXVsdENvbmZpZyhkZWZhdWx0QXhpc0NvbmZpZykpO1xuICAgIGNvbmZpZy5zZXJpZXMgPSBjb25maWcuc2VyaWVzLm1hcChkZWZhdWx0Q29uZmlnKGRlZmF1bHRTZXJpZXNDb25maWcoKSkpO1xuXG4gICAgY29uZmlnLnNlcmllcyA9IGNvbmZpZy5zZXJpZXMubWFwKChfLCBpbmRleCkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uXyxcbiAgICAgICAgZGF0YTogXy5kYXRhID8/IFtdLFxuICAgICAgICBpZDogXy5pZCA/PyBpbmRleCxcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCBvcHBvc2l0ZVlDb3VudCA9IGNvbmZpZy55QXhpcz8uZmlsdGVyKChfKSA9PiBfLm9wcG9zaXRlKTtcbiAgICBjb25zdCBvcHBvc2l0ZVhDb3VudCA9IGNvbmZpZy54QXhpcz8uZmlsdGVyKChfKSA9PiBfLm9wcG9zaXRlKTtcblxuICAgIGNvbnN0IG5vbk9wcG9zaXRlWUNvdW50ID0gY29uZmlnLnlBeGlzPy5maWx0ZXIoKF8pID0+ICFfLm9wcG9zaXRlKTtcbiAgICBjb25zdCBub25PcHBvc2l0ZVhDb3VudCA9IGNvbmZpZy54QXhpcz8uZmlsdGVyKChfKSA9PiAhXy5vcHBvc2l0ZSk7XG5cbiAgICBpZiAobm9uT3Bwb3NpdGVYQ291bnQ/Lmxlbmd0aCA+IDEpIHtcbiAgICAgIGNvbmZpZy5ib3VuZHMuYm90dG9tID0gMDtcbiAgICB9XG5cbiAgICBpZiAob3Bwb3NpdGVYQ291bnQ/Lmxlbmd0aCA+IDEpIHtcbiAgICAgIGNvbmZpZy5ib3VuZHMudG9wID0gMDtcbiAgICB9XG5cbiAgICBpZiAobm9uT3Bwb3NpdGVZQ291bnQ/Lmxlbmd0aCA+IDEpIHtcbiAgICAgIGNvbmZpZy5ib3VuZHMubGVmdCA9IDA7XG4gICAgfVxuXG4gICAgaWYgKG9wcG9zaXRlWUNvdW50Py5sZW5ndGggPiAxKSB7XG4gICAgICBjb25maWcuYm91bmRzLnJpZ2h0ID0gMDtcbiAgICB9XG5cbiAgICBjb25maWcudG9vbHRpcCA9IE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSxcbiAgICAgIGRlZmF1bHRDaGFydENvbmZpZygpLnRvb2x0aXAsXG4gICAgICBjb25maWcudG9vbHRpcFxuICAgICk7XG5cbiAgICBjb25maWcuem9vbSA9IE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSxcbiAgICAgIGRlZmF1bHRDaGFydENvbmZpZygpLnpvb20sXG4gICAgICBjb25maWcuem9vbVxuICAgICk7XG5cbiAgICBjb25maWcuem9vbS5zeW5jQ2hhbm5lbCA9IGNvbmZpZy56b29tPy5zeW5jQ2hhbm5lbCA/PyBpZDtcblxuICAgIHJldHVybiBjb25maWc7XG4gIH1cblxuICBwcml2YXRlIHNldFByZXBhcmF0aW9uRGF0YShjb25maWc6IElDaGFydENvbmZpZyk6IElDaGFydENvbmZpZyB7XG4gICAgaWYgKGNvbmZpZy5pbnZlcnRlZCkge1xuXG5cbiAgICAgIGNvbnN0IHhBeGVzID0gWy4uLmNvbmZpZy54QXhpc107XG4gICAgICBjb25zdCB5QXhlcyA9IFsuLi5jb25maWcueUF4aXNdO1xuXG4gICAgICBjb25maWcueEF4aXMgPSB5QXhlcztcbiAgICAgIGNvbmZpZy55QXhpcyA9IHhBeGVzO1xuXG4gICAgICBjb25maWcuc2VyaWVzID0gY29uZmlnLnNlcmllcz8ubWFwKChzZXJpZSkgPT4ge1xuICAgICAgICBjb25zdCB4ID0gc2VyaWUueEF4aXNJbmRleDtcbiAgICAgICAgY29uc3QgeSA9IHNlcmllLnlBeGlzSW5kZXg7XG4gICAgICAgIHNlcmllLnhBeGlzSW5kZXggPSB5O1xuICAgICAgICBzZXJpZS55QXhpc0luZGV4ID0geDtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5zZXJpZSxcbiAgICAgICAgICBjbGlwUG9pbnRzRGlyZWN0aW9uOiBDbGlwUG9pbnRzRGlyZWN0aW9uLnksXG4gICAgICAgICAgZGF0YTogc2VyaWU/LmRhdGE/Lm1hcCgocG9pbnQpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIC4uLnBvaW50LFxuICAgICAgICAgICAgICB4OiBwb2ludD8ueSxcbiAgICAgICAgICAgICAgeTogcG9pbnQ/LngsXG4gICAgICAgICAgICAgIHgxOiBwb2ludD8ueTEsXG4gICAgICAgICAgICAgIHkxOiBwb2ludD8ueDEsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0pLFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZz8uYnJ1c2g/LmVuYWJsZSkge1xuICAgICAgY29uZmlnLnlBeGlzID0gY29uZmlnLnlBeGlzLm1hcCgoXykgPT4gKHsuLi5fLCB6b29tOiBmYWxzZX0pKTtcbiAgICAgIGNvbmZpZy54QXhpcyA9IGNvbmZpZy54QXhpcy5tYXAoKF8pID0+ICh7Li4uXywgem9vbTogZmFsc2V9KSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfVxufVxuIl19
@@ -16,11 +16,11 @@ export class ScaleService {
16
16
  this.scaleMapping = new Map()
17
17
  .set(ScaleType.linear, d3.scaleLinear)
18
18
  .set(ScaleType.time, d3.scaleTime)
19
- .set(ScaleType.category, d3.scaleOrdinal)
20
19
  .set(ScaleType.log, d3.scaleLog)
21
20
  .set(ScaleType.symlog, d3.scaleSymlog)
22
21
  .set(ScaleType.pow, d3.scalePow)
23
- .set(ScaleType.sqrt, d3.scaleSqrt);
22
+ .set(ScaleType.sqrt, d3.scaleSqrt)
23
+ .set(ScaleType.band, d3.scaleBand);
24
24
  this.scales = combineLatest([
25
25
  this.chartService.size,
26
26
  this.chartService.config,
@@ -58,6 +58,11 @@ export class ScaleService {
58
58
  if (axis.options.scaleType.type === ScaleType.log) {
59
59
  scale.base(axis.options.scaleType.base);
60
60
  }
61
+ if (axis.options.scaleType.type === ScaleType.band) {
62
+ scale.paddingInner(0.1);
63
+ scale.paddingOuter(0.1);
64
+ scale.align(0.1);
65
+ }
61
66
  axis.setScale(scale);
62
67
  axis.setOriginDomain(scale.domain());
63
68
  const hasCache = this.transformCacheX.has(axis.index);
@@ -109,6 +114,11 @@ export class ScaleService {
109
114
  if (axis.options.scaleType.type === ScaleType.log) {
110
115
  scale.base(axis.options.scaleType.base);
111
116
  }
117
+ if (axis.options.scaleType.type === ScaleType.band) {
118
+ scale.paddingInner(0.1);
119
+ scale.paddingOuter(0.1);
120
+ scale.align(0.1);
121
+ }
112
122
  axis.setScale(scale);
113
123
  axis.setOriginDomain(scale.domain());
114
124
  const hasCache = this.transformCacheY.has(axis.index);
@@ -148,4 +158,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
148
158
  providedIn: 'root',
149
159
  }]
150
160
  }], ctorParameters: function () { return [{ type: i1.ChartService }, { type: i2.ZoomService }]; } });
151
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhbGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jaGFydC9zZXJ2aWNlL3NjYWxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUV6QixPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDdkMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBRy9ELE9BQU8sRUFBQyxhQUFhLEVBQUUsR0FBRyxFQUFjLFdBQVcsR0FBRSxNQUFNLE1BQU0sQ0FBQztBQUVsRSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7Ozs7QUFPbkQsTUFBTSxPQUFPLFlBQVk7SUFldkIsWUFDVSxZQUEwQixFQUMxQixXQUF3QjtRQUR4QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQWQxQixvQkFBZSxHQUFHLElBQUksR0FBRyxFQUF5QixDQUFDO1FBQ25ELG9CQUFlLEdBQUcsSUFBSSxHQUFHLEVBQXlCLENBQUM7UUFFbkQsaUJBQVksR0FBRyxJQUFJLEdBQUcsRUFBa0I7YUFDN0MsR0FBRyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQzthQUNyQyxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDO2FBQ2pDLEdBQUcsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUM7YUFDeEMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQzthQUMvQixHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFD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SUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUN4QyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUMzRCxDQUFDLENBQUMsWUFBWSxFQUNkLENBQUMsQ0FBQyxLQUFLLEVBQ1AsZUFBZSxDQUFDLENBQUMsRUFDakIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQ25CLENBQUM7d0JBQ0YsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7d0JBQ3BELENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7d0JBQ3JCLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7cUJBQzlDO2lCQUNGO2FBQ0Y7WUFDRCxPQUFPO2dCQUNMLENBQUMsRUFBRSxRQUFRO2dCQUNYLENBQUMsRUFBRSxRQUFRO2FBQ1osQ0FBQztRQUNKLENBQUMsQ0FBQyxFQUNGLFdBQVcsQ0FBQztZQUNWLFVBQVUsRUFBRSxDQUFDO1lBQ2IsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7O3lHQXJMVSxZQUFZOzZHQUFaLFlBQVksY0FGWCxNQUFNOzJGQUVQLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIGQzIGZyb20gJ2QzJztcbmltcG9ydCB7Wm9vbVRyYW5zZm9ybX0gZnJvbSAnZDMnO1xuaW1wb3J0IHtBeGlzfSBmcm9tICcuLi9jb3JlL2F4aXMvYXhpcyc7XG5pbXBvcnQge0F4aXNPcmllbnRhdGlvbn0gZnJvbSAnLi4vbW9kZWwvZW51bS9heGlzLW9yaWVudGF0aW9uJztcbmltcG9ydCB7SUNoYXJ0Q29uZmlnfSBmcm9tICcuLi9tb2RlbC9pLWNoYXJ0LWNvbmZpZyc7XG5pbXBvcnQge0NoYXJ0U2VydmljZX0gZnJvbSAnLi9jaGFydC5zZXJ2aWNlJztcbmltcG9ydCB7Y29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlLCBzaGFyZVJlcGxheSx9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtab29tU2VydmljZX0gZnJvbSAnLi96b29tLnNlcnZpY2UnO1xuaW1wb3J0IHtTY2FsZVR5cGV9IGZyb20gJy4uL21vZGVsL2VudW0vc2NhbGUtdHlwZSc7XG5pbXBvcnQge0lTY2FsZXNNYXB9IGZyb20gJy4uL21vZGVsL2ktc2NhbGVzLW1hcCc7XG5pbXBvcnQge1pvb21NZXNzYWdlfSBmcm9tICcuLi9tb2RlbC9pLWJyb2FkY2FzdC1tZXNzYWdlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNjYWxlU2VydmljZSB7XG4gIHB1YmxpYyBzY2FsZXM6IE9ic2VydmFibGU8SVNjYWxlc01hcD47XG5cbiAgcHJpdmF0ZSB0cmFuc2Zvcm1DYWNoZVggPSBuZXcgTWFwPG51bWJlciwgWm9vbVRyYW5zZm9ybT4oKTtcbiAgcHJpdmF0ZSB0cmFuc2Zvcm1DYWNoZVkgPSBuZXcgTWFwPG51bWJlciwgWm9vbVRyYW5zZm9ybT4oKTtcblxuICBwcml2YXRlIHNjYWxlTWFwcGluZyA9IG5ldyBNYXA8U2NhbGVUeXBlLCBhbnk+KClcbiAgICAuc2V0KFNjYWxlVHlwZS5saW5lYXIsIGQzLnNjYWxlTGluZWFyKVxuICAgIC5zZXQoU2NhbGVUeXBlLnRpbWUsIGQzLnNjYWxlVGltZSlcbiAgICAuc2V0KFNjYWxlVHlwZS5jYXRlZ29yeSwgZDMuc2NhbGVPcmRpbmFsKVxuICAgIC5zZXQoU2NhbGVUeXBlLmxvZywgZDMuc2NhbGVMb2cpXG4gICAgLnNldChTY2FsZVR5cGUuc3ltbG9nLCBkMy5zY2FsZVN5bWxvZylcbiAgICAuc2V0KFNjYWxlVHlwZS5wb3csIGQzLnNjYWxlUG93KVxuICAgIC5zZXQoU2NhbGVUeXBlLnNxcnQsIGQzLnNjYWxlU3FydCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjaGFydFNlcnZpY2U6IENoYXJ0U2VydmljZSxcbiAgICBwcml2YXRlIHpvb21TZXJ2aWNlOiBab29tU2VydmljZVxuICApIHtcblxuICAgIHRoaXMuc2NhbGVzID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmNoYXJ0U2VydmljZS5zaXplLFxuICAgICAgdGhpcy5jaGFydFNlcnZpY2UuY29uZmlnLFxuICAgICAgdGhpcy56b29tU2VydmljZS56b29tZWQsXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoZGF0YTogW0RPTVJlY3RSZWFkT25seSwgSUNoYXJ0Q29uZmlnLCBab29tTWVzc2FnZV0pID0+IHtcbiAgICAgICAgY29uc3QgW3NpemUsIGNvbmZpZywgem9vbV0gPSBkYXRhO1xuXG4gICAgICAgIGNvbnN0IHhBeGlzTWFwID0gbmV3IE1hcDxudW1iZXIsIEF4aXM+KCk7XG4gICAgICAgIGNvbnN0IHlBeGlzTWFwID0gbmV3IE1hcDxudW1iZXIsIEF4aXM+KCk7XG5cbiAgICAgICAgY29uZmlnLnlBeGlzLm1hcCgoXywgaW5kZXgpID0+IHtcbiAgICAgICAgICB5QXhpc01hcC5zZXQoaW5kZXgsIEF4aXMuY3JlYXRlQXhpcyhBeGlzT3JpZW50YXRpb24ueSwgY29uZmlnLCBpbmRleCkpO1xuICAgICAgICB9KTtcblxuXG4gICAgICAgIGNvbmZpZy54QXhpcy5tYXAoKF8sIGluZGV4KSA9PiB7XG4gICAgICAgICAgeEF4aXNNYXAuc2V0KGluZGV4LCBBeGlzLmNyZWF0ZUF4aXMoQXhpc09yaWVudGF0aW9uLngsIGNvbmZpZywgaW5kZXgpKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gR2VuZXJhdGUgeCBzY2FsZXNcbiAgICAgICAgY29uc3QgbGVmdCA9IEFycmF5LmZyb20oeUF4aXNNYXAudmFsdWVzKCkpXG4gICAgICAgICAgLmZpbHRlcigoXykgPT4gXy5vcHRpb25zPy52aXNpYmxlICYmIF8ub3B0aW9ucz8ub3Bwb3NpdGUpXG4gICAgICAgICAgLnJlZHVjZSgoYWNjLCBjdXIpID0+IGFjYyArIGN1ci5zZWxmU2l6ZSwgMCk7XG5cbiAgICAgICAgY29uc3QgcmlnaHQgPSBBcnJheS5mcm9tKHlBeGlzTWFwLnZhbHVlcygpKVxuICAgICAgICAgIC5maWx0ZXIoKF8pID0+IF8ub3B0aW9ucz8udmlzaWJsZSAmJiBfLm9wdGlvbnM/Lm9wcG9zaXRlICE9PSB0cnVlKVxuICAgICAgICAgIC5yZWR1Y2UoKGFjYywgY3VyKSA9PiBhY2MgKyBjdXIuc2VsZlNpemUsIDApO1xuXG4gICAgICAgIGNvbnN0IGZpbmFsV2lkdGggPSAoc2l6ZS53aWR0aCB8fCAwKSAtIGxlZnQgLSByaWdodDtcblxuICAgICAgICB4QXhpc01hcC5mb3JFYWNoKChheGlzKSA9PiB7XG4gICAgICAgICAgbGV0IGRvbWFpbiA9IGF4aXMuZXh0cmVtZXM7XG5cbiAgICAgICAgICBpZiAoYXhpcz8ub3B0aW9ucy5pbnZlcnRlZCkge1xuICAgICAgICAgICAgZG9tYWluID0gWy4uLmF4aXMuZXh0cmVtZXNdLnJldmVyc2UoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBsZXQgc2NhbGUgPSB0aGlzLnNjYWxlTWFwcGluZ1xuICAgICAgICAgICAgLmdldChheGlzLm9wdGlvbnMuc2NhbGVUeXBlLnR5cGUpKClcbiAgICAgICAgICAgIC5kb21haW4oZG9tYWluKVxuICAgICAgICAgICAgLnJhbmdlKFswLCBmaW5hbFdpZHRoIC0gY29uZmlnLmJvdW5kcy5yaWdodF0pO1xuXG4gICAgICAgICAgaWYgKGF4aXMub3B0aW9ucy5uaWNlVGlja3MpIHtcbiAgICAgICAgICAgIHNjYWxlLm5pY2UoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoYXhpcy5vcHRpb25zLnNjYWxlVHlwZS50eXBlID09PSBTY2FsZVR5cGUubG9nKSB7XG4gICAgICAgICAgICBzY2FsZS5iYXNlKGF4aXMub3B0aW9ucy5zY2FsZVR5cGUuYmFzZSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYXhpcy5zZXRTY2FsZShzY2FsZSk7XG4gICAgICAgICAgYXhpcy5zZXRPcmlnaW5Eb21haW4oc2NhbGUuZG9tYWluKCkpO1xuXG5cbiAgICAgICAgICBjb25zdCBoYXNDYWNoZSA9IHRoaXMudHJhbnNmb3JtQ2FjaGVYLmhhcyhheGlzLmluZGV4KTtcbiAgICAgICAgICBjb25zdCBzaG91bGRSZXN0b3JlID1cbiAgICAgICAgICAgIHpvb20/LmF4aXM/Lm9yaWVudGF0aW9uICE9PSBBeGlzT3JpZW50YXRpb24ueCB8fFxuICAgICAgICAgICAgem9vbS5heGlzPy5pbmRleCAhPT0gYXhpcy5pbmRleDtcblxuICAgICAgICAgIGlmIChoYXNDYWNoZSAmJiBzaG91bGRSZXN0b3JlKSB7XG4gICAgICAgICAgICBjb25zdCByZXN0b3JlZFRyYW5zZm9ybSA9IHRoaXMudHJhbnNmb3JtQ2FjaGVYLmdldChheGlzLmluZGV4KTtcbiAgICAgICAgICAgIGF4aXMuc2V0U2NhbGUocmVzdG9yZWRUcmFuc2Zvcm0ucmVzY2FsZVgoc2NhbGUpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICh6b29tICYmIHpvb20uZG9tYWluKSB7XG4gICAgICAgICAgaWYgKHpvb20uYXhpcz8ub3JpZW50YXRpb24gPT09IEF4aXNPcmllbnRhdGlvbi54KSB7XG4gICAgICAgICAgICBpZiAoeEF4aXNNYXAuaGFzKHpvb20uYXhpcy5pbmRleCkpIHtcbiAgICAgICAgICAgICAgY29uc3QgeCA9IHhBeGlzTWFwLmdldCh6b29tLmF4aXMuaW5kZXgpO1xuICAgICAgICAgICAgICBjb25zdCB0cmFuc2Zvcm0gPSB0aGlzLnpvb21TZXJ2aWNlLmdldEQzVHJhbnNmb3JtKHpvb20uZG9tYWluLCB4Lm9yaWdpbkRvbWFpbiwgeC5zY2FsZSwgQXhpc09yaWVudGF0aW9uLngsIHgub3B0aW9ucy5pbnZlcnRlZCk7XG4gICAgICAgICAgICAgIGNvbnN0IHJlc2NhbGVkID0gdHJhbnNmb3JtLnJlc2NhbGVYKHguc2NhbGUuY29weSgpKTtcbiAgICAgICAgICAgICAgeC5zZXRTY2FsZShyZXNjYWxlZCk7XG4gICAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtQ2FjaGVYLnNldCh4LmluZGV4LCB0cmFuc2Zvcm0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG5cbiAgICAgICAgLy8gR2VuZXJhdGUgeSBheGlzXG5cbiAgICAgICAgY29uc3QgdG9wID0gQXJyYXkuZnJvbSh4QXhpc01hcC52YWx1ZXMoKSlcbiAgICAgICAgICAuZmlsdGVyKChfKSA9PiBfLm9wdGlvbnM/LnZpc2libGUgJiYgXy5vcHRpb25zPy5vcHBvc2l0ZSlcbiAgICAgICAgICAucmVkdWNlKChhY2MsIGN1cikgPT4gYWNjICsgY3VyLnNlbGZTaXplLCAwKTtcblxuICAgICAgICBjb25zdCBib3R0b20gPSBBcnJheS5mcm9tKHhBeGlzTWFwLnZhbHVlcygpKVxuICAgICAgICAgIC5maWx0ZXIoKF8pID0+IF8ub3B0aW9ucz8udmlzaWJsZSAmJiBfLm9wdGlvbnM/Lm9wcG9zaXRlICE9PSB0cnVlKVxuICAgICAgICAgIC5yZWR1Y2UoKGFjYywgY3VyKSA9PiBhY2MgKyBjdXIuc2VsZlNpemUsIDApO1xuXG4gICAgICAgIGNvbnN0IGZpbmFsSGVpZ2h0ID1cbiAgICAgICAgICAoc2l6ZS5oZWlnaHQgfHwgMCkgLVxuICAgICAgICAgIHRvcCAtXG4gICAgICAgICAgYm90dG9tIC1cbiAgICAgICAgICBjb25maWc/LmJvdW5kcz8udG9wIC1cbiAgICAgICAgICBjb25maWcuYm91bmRzPy5ib3R0b207XG5cbiAgICAgICAgeUF4aXNNYXAuZm9yRWFjaCgoYXhpcykgPT4ge1xuICAgICAgICAgIGxldCBkb21haW4gPSBheGlzLmV4dHJlbWVzO1xuXG4gICAgICAgICAgaWYgKGF4aXMub3JpZW50YXRpb24gPT09IEF4aXNPcmllbnRhdGlvbi55KSB7XG4gICAgICAgICAgICBkb21haW4gPSBbLi4uYXhpcy5leHRyZW1lc10ucmV2ZXJzZSgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChheGlzPy5vcHRpb25zLmludmVydGVkKSB7XG4gICAgICAgICAgICBkb21haW4gPSBkb21haW4ucmV2ZXJzZSgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHNjYWxlID0gdGhpcy5zY2FsZU1hcHBpbmdcbiAgICAgICAgICAgIC5nZXQoYXhpcy5vcHRpb25zLnNjYWxlVHlwZS50eXBlKSgpXG4gICAgICAgICAgICAuZG9tYWluKGRvbWFpbilcbiAgICAgICAgICAgIC5yYW5nZShbY29uZmlnLmJvdW5kcy50b3AsIGZpbmFsSGVpZ2h0XSk7XG5cbiAgICAgICAgICBpZiAoYXhpcy5vcHRpb25zLm5pY2VUaWNrcykge1xuICAgICAgICAgICAgc2NhbGUubmljZSgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChheGlzLm9wdGlvbnMuc2NhbGVUeXBlLnR5cGUgPT09IFNjYWxlVHlwZS5sb2cpIHtcbiAgICAgICAgICAgIHNjYWxlLmJhc2UoYXhpcy5vcHRpb25zLnNjYWxlVHlwZS5iYXNlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBheGlzLnNldFNjYWxlKHNjYWxlKTtcbiAgICAgICAgICBheGlzLnNldE9yaWdpbkRvbWFpbihzY2FsZS5kb21haW4oKSk7XG5cbiAgICAgICAgICBjb25zdCBoYXNDYWNoZSA9IHRoaXMudHJhbnNmb3JtQ2FjaGVZLmhhcyhheGlzLmluZGV4KTtcblxuICAgICAgICAgIGNvbnN0IHNob3VsZFJlc3RvcmUgPVxuICAgICAgICAgICAgem9vbT8uYXhpcz8ub3JpZW50YXRpb24gIT09IEF4aXNPcmllbnRhdGlvbi55IHx8XG4gICAgICAgICAgICB6b29tLmF4aXM/LmluZGV4ICE9PSBheGlzLmluZGV4O1xuXG4gICAgICAgICAgaWYgKGhhc0NhY2hlICYmIHNob3VsZFJlc3RvcmUpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3RvcmVkVHJhbnNmb3JtID0gdGhpcy50cmFuc2Zvcm1DYWNoZVkuZ2V0KGF4aXMuaW5kZXgpO1xuICAgICAgICAgICAgYXhpcy5zZXRTY2FsZShyZXN0b3JlZFRyYW5zZm9ybS5yZXNjYWxlWShzY2FsZSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHpvb20gJiYgem9vbS5kb21haW4pIHtcbiAgICAgICAgICBpZiAoem9vbS5heGlzPy5vcmllbnRhdGlvbiA9PT0gQXhpc09yaWVudGF0aW9uLnkpIHtcbiAgICAgICAgICAgIGlmICh5QXhpc01hcC5oYXMoem9vbS5heGlzLmluZGV4KSkge1xuICAgICAgICAgICAgICBjb25zdCB5ID0geUF4aXNNYXAuZ2V0KHpvb20uYXhpcy5pbmRleCk7XG4gICAgICAgICAgICAgIGNvbnN0IHRyYW5zZm9ybSA9IHRoaXMuem9vbVNlcnZpY2UuZ2V0RDNUcmFuc2Zvcm0oem9vbS5kb21haW4sXG4gICAgICAgICAgICAgICAgeS5vcmlnaW5Eb21haW4sXG4gICAgICAgICAgICAgICAgeS5zY2FsZSxcbiAgICAgICAgICAgICAgICBBeGlzT3JpZW50YXRpb24ueSxcbiAgICAgICAgICAgICAgICB5Lm9wdGlvbnMuaW52ZXJ0ZWRcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgY29uc3QgcmVzY2FsZWQgPSB0cmFuc2Zvcm0ucmVzY2FsZVkoeS5zY2FsZS5jb3B5KCkpO1xuICAgICAgICAgICAgICB5LnNldFNjYWxlKHJlc2NhbGVkKTtcbiAgICAgICAgICAgICAgdGhpcy50cmFuc2Zvcm1DYWNoZVkuc2V0KHkuaW5kZXgsIHRyYW5zZm9ybSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgeDogeEF4aXNNYXAsXG4gICAgICAgICAgeTogeUF4aXNNYXBcbiAgICAgICAgfTtcbiAgICAgIH0pLFxuICAgICAgc2hhcmVSZXBsYXkoe1xuICAgICAgICBidWZmZXJTaXplOiAxLFxuICAgICAgICByZWZDb3VudDogdHJ1ZSxcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufVxuIl19
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhbGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jaGFydC9zZXJ2aWNlL3NjYWxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUV6QixPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDdkMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBRy9ELE9BQU8sRUFBQyxhQUFhLEVBQUUsR0FBRyxFQUFjLFdBQVcsR0FBRSxNQUFNLE1BQU0sQ0FBQztBQUVsRSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7Ozs7QUFPbkQsTUFBTSxPQUFPLFlBQVk7SUFldkIsWUFDVSxZQUEwQixFQUMxQixXQUF3QjtRQUR4QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQWQxQixvQkFBZSxHQUFHLElBQUksR0FBRyxFQUF5QixDQUFDO1FBQ25ELG9CQUFlLEdBQUcsSUFBSSxHQUFHLEVBQXlCLENBQUM7UUFFbkQsaUJBQVksR0FBRyxJQUFJLEdBQUcsRUFBa0I7YUFDN0MsR0FBRyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQzthQUNyQyxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDO2FBQ2pDLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUM7YUFDL0IsR0FBRyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQzthQUNyQyxHQUFHLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDO2FBQy9CLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUM7YUFDakMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBT2xDLElBQUksQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFDO1lBQzFCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSTtZQUN0QixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU07WUFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNO1NBQ3hCLENBQUMsQ0FBQyxJQUFJLENBQ0wsR0FBRyxDQUFDLENBQUMsSUFBa0QsRUFBRSxFQUFFO1lBQ3pELE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztZQUVsQyxNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBZ0IsQ0FBQztZQUN6QyxNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBZ0IsQ0FBQztZQUV6QyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDNUIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ3pFLENBQUMsQ0FBQyxDQUFDO1lBR0gsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQzVCLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUN6RSxDQUFDLENBQUMsQ0FBQztZQUVILG9CQUFvQjtZQUNwQixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztpQkFDdkMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLE9BQU8sSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQztpQkFDeEQsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFFL0MsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7aUJBQ3hDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxPQUFPLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxRQUFRLEtBQUssSUFBSSxDQUFDO2lCQUNqRSxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUUvQyxNQUFNLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLEtBQUssQ0FBQztZQUVwRCxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ3hCLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7Z0JBRTNCLElBQUksSUFBSSxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUU7b0JBQzFCLE1BQU0sR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO2lCQUN2QztnQkFFRCxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWTtxQkFDMUIsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO3FCQUNsQyxNQUFNLENBQUMsTUFBTSxDQUFDO3FCQUNkLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUVoRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFO29CQUMxQixLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7aUJBQ2Q7Z0JBRUQsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLEdBQUcsRUFBRTtvQkFDakQsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDekM7Z0JBRUQsSUFBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLElBQUksRUFBRTtvQkFDakQsS0FBSyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDeEIsS0FBSyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDeEIsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtpQkFDakI7Z0JBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDckIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztnQkFHckMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN0RCxNQUFNLGFBQWEsR0FDakIsSUFBSSxFQUFFLElBQUksRUFBRSxXQUFXLEtBQUssZUFBZSxDQUFDLENBQUM7b0JBQzdDLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUM7Z0JBRWxDLElBQUksUUFBUSxJQUFJLGFBQWEsRUFBRTtvQkFDN0IsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQy9ELElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7aUJBQ2xEO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUN2QixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsV0FBVyxLQUFLLGVBQWUsQ0FBQyxDQUFDLEVBQUU7b0JBQ2hELElBQUksUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO3dCQUNqQyxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBQ3hDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQzt3QkFDL0gsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7d0JBQ3BELENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7d0JBQ3JCLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7cUJBQzlDO2lCQUNGO2FBQ0Y7WUFHRCxrQkFBa0I7WUFFbEIsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7aUJBQ3RDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxPQUFPLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUM7aUJBQ3hELE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBRS9DLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO2lCQUN6QyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsUUFBUSxLQUFLLElBQUksQ0FBQztpQkFDakUsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFFL0MsTUFBTSxXQUFXLEdBQ2YsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQztnQkFDbEIsR0FBRztnQkFDSCxNQUFNO2dCQUNOLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRztnQkFDbkIsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUM7WUFFeEIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUN4QixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO2dCQUUzQixJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssZUFBZSxDQUFDLENBQUMsRUFBRTtvQkFDMUMsTUFBTSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7aUJBQ3ZDO2dCQUVELElBQUksSUFBSSxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUU7b0JBQzFCLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7aUJBQzNCO2dCQUVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZO3FCQUM1QixHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7cUJBQ2xDLE1BQU0sQ0FBQyxNQUFNLENBQUM7cUJBQ2QsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztnQkFHM0MsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRTtvQkFDMUIsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO2lCQUNkO2dCQUVELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxHQUFHLEVBQUU7b0JBQ2pELEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ3pDO2dCQUVELElBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxJQUFJLEVBQUU7b0JBQ2pELEtBQUssQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ3hCLEtBQUssQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ3hCLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7aUJBQ2pCO2dCQUVELElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7Z0JBRXJDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFFdEQsTUFBTSxhQUFhLEdBQ2pCLElBQUksRUFBRSxJQUFJLEVBQUUsV0FBVyxLQUFLLGVBQWUsQ0FBQyxDQUFDO29CQUM3QyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUVsQyxJQUFJLFFBQVEsSUFBSSxhQUFhLEVBQUU7b0JBQzdCLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUMvRCxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2lCQUNsRDtZQUNILENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDdkIsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLFdBQVcsS0FBSyxlQUFlLENBQUMsQ0FBQyxFQUFFO29CQUNoRCxJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTt3QkFDakMsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUN4QyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUMzRCxDQUFDLENBQUMsWUFBWSxFQUNkLENBQUMsQ0FBQyxLQUFLLEVBQ1AsZUFBZSxDQUFDLENBQUMsRUFDakIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQ25CLENBQUM7d0JBQ0YsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7d0JBQ3BELENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7d0JBQ3JCLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7cUJBQzlDO2lCQUNGO2FBQ0Y7WUFDRCxPQUFPO2dCQUNMLENBQUMsRUFBRSxRQUFRO2dCQUNYLENBQUMsRUFBRSxRQUFRO2FBQ1osQ0FBQztRQUNKLENBQUMsQ0FBQyxFQUNGLFdBQVcsQ0FBQztZQUNWLFVBQVUsRUFBRSxDQUFDO1lBQ2IsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7O3lHQWxNVSxZQUFZOzZHQUFaLFlBQVksY0FGWCxNQUFNOzJGQUVQLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIGQzIGZyb20gJ2QzJztcbmltcG9ydCB7Wm9vbVRyYW5zZm9ybX0gZnJvbSAnZDMnO1xuaW1wb3J0IHtBeGlzfSBmcm9tICcuLi9jb3JlL2F4aXMvYXhpcyc7XG5pbXBvcnQge0F4aXNPcmllbnRhdGlvbn0gZnJvbSAnLi4vbW9kZWwvZW51bS9heGlzLW9yaWVudGF0aW9uJztcbmltcG9ydCB7SUNoYXJ0Q29uZmlnfSBmcm9tICcuLi9tb2RlbC9pLWNoYXJ0LWNvbmZpZyc7XG5pbXBvcnQge0NoYXJ0U2VydmljZX0gZnJvbSAnLi9jaGFydC5zZXJ2aWNlJztcbmltcG9ydCB7Y29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlLCBzaGFyZVJlcGxheSx9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtab29tU2VydmljZX0gZnJvbSAnLi96b29tLnNlcnZpY2UnO1xuaW1wb3J0IHtTY2FsZVR5cGV9IGZyb20gJy4uL21vZGVsL2VudW0vc2NhbGUtdHlwZSc7XG5pbXBvcnQge0lTY2FsZXNNYXB9IGZyb20gJy4uL21vZGVsL2ktc2NhbGVzLW1hcCc7XG5pbXBvcnQge1pvb21NZXNzYWdlfSBmcm9tICcuLi9tb2RlbC9pLWJyb2FkY2FzdC1tZXNzYWdlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNjYWxlU2VydmljZSB7XG4gIHB1YmxpYyBzY2FsZXM6IE9ic2VydmFibGU8SVNjYWxlc01hcD47XG5cbiAgcHJpdmF0ZSB0cmFuc2Zvcm1DYWNoZVggPSBuZXcgTWFwPG51bWJlciwgWm9vbVRyYW5zZm9ybT4oKTtcbiAgcHJpdmF0ZSB0cmFuc2Zvcm1DYWNoZVkgPSBuZXcgTWFwPG51bWJlciwgWm9vbVRyYW5zZm9ybT4oKTtcblxuICBwcml2YXRlIHNjYWxlTWFwcGluZyA9IG5ldyBNYXA8U2NhbGVUeXBlLCBhbnk+KClcbiAgICAuc2V0KFNjYWxlVHlwZS5saW5lYXIsIGQzLnNjYWxlTGluZWFyKVxuICAgIC5zZXQoU2NhbGVUeXBlLnRpbWUsIGQzLnNjYWxlVGltZSlcbiAgICAuc2V0KFNjYWxlVHlwZS5sb2csIGQzLnNjYWxlTG9nKVxuICAgIC5zZXQoU2NhbGVUeXBlLnN5bWxvZywgZDMuc2NhbGVTeW1sb2cpXG4gICAgLnNldChTY2FsZVR5cGUucG93LCBkMy5zY2FsZVBvdylcbiAgICAuc2V0KFNjYWxlVHlwZS5zcXJ0LCBkMy5zY2FsZVNxcnQpXG4gICAgLnNldChTY2FsZVR5cGUuYmFuZCwgZDMuc2NhbGVCYW5kKVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2hhcnRTZXJ2aWNlOiBDaGFydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB6b29tU2VydmljZTogWm9vbVNlcnZpY2VcbiAgKSB7XG5cbiAgICB0aGlzLnNjYWxlcyA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5jaGFydFNlcnZpY2Uuc2l6ZSxcbiAgICAgIHRoaXMuY2hhcnRTZXJ2aWNlLmNvbmZpZyxcbiAgICAgIHRoaXMuem9vbVNlcnZpY2Uuem9vbWVkLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKGRhdGE6IFtET01SZWN0UmVhZE9ubHksIElDaGFydENvbmZpZywgWm9vbU1lc3NhZ2VdKSA9PiB7XG4gICAgICAgIGNvbnN0IFtzaXplLCBjb25maWcsIHpvb21dID0gZGF0YTtcblxuICAgICAgICBjb25zdCB4QXhpc01hcCA9IG5ldyBNYXA8bnVtYmVyLCBBeGlzPigpO1xuICAgICAgICBjb25zdCB5QXhpc01hcCA9IG5ldyBNYXA8bnVtYmVyLCBBeGlzPigpO1xuXG4gICAgICAgIGNvbmZpZy55QXhpcy5tYXAoKF8sIGluZGV4KSA9PiB7XG4gICAgICAgICAgeUF4aXNNYXAuc2V0KGluZGV4LCBBeGlzLmNyZWF0ZUF4aXMoQXhpc09yaWVudGF0aW9uLnksIGNvbmZpZywgaW5kZXgpKTtcbiAgICAgICAgfSk7XG5cblxuICAgICAgICBjb25maWcueEF4aXMubWFwKChfLCBpbmRleCkgPT4ge1xuICAgICAgICAgIHhBeGlzTWFwLnNldChpbmRleCwgQXhpcy5jcmVhdGVBeGlzKEF4aXNPcmllbnRhdGlvbi54LCBjb25maWcsIGluZGV4KSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEdlbmVyYXRlIHggc2NhbGVzXG4gICAgICAgIGNvbnN0IGxlZnQgPSBBcnJheS5mcm9tKHlBeGlzTWFwLnZhbHVlcygpKVxuICAgICAgICAgIC5maWx0ZXIoKF8pID0+IF8ub3B0aW9ucz8udmlzaWJsZSAmJiBfLm9wdGlvbnM/Lm9wcG9zaXRlKVxuICAgICAgICAgIC5yZWR1Y2UoKGFjYywgY3VyKSA9PiBhY2MgKyBjdXIuc2VsZlNpemUsIDApO1xuXG4gICAgICAgIGNvbnN0IHJpZ2h0ID0gQXJyYXkuZnJvbSh5QXhpc01hcC52YWx1ZXMoKSlcbiAgICAgICAgICAuZmlsdGVyKChfKSA9PiBfLm9wdGlvbnM/LnZpc2libGUgJiYgXy5vcHRpb25zPy5vcHBvc2l0ZSAhPT0gdHJ1ZSlcbiAgICAgICAgICAucmVkdWNlKChhY2MsIGN1cikgPT4gYWNjICsgY3VyLnNlbGZTaXplLCAwKTtcblxuICAgICAgICBjb25zdCBmaW5hbFdpZHRoID0gKHNpemUud2lkdGggfHwgMCkgLSBsZWZ0IC0gcmlnaHQ7XG5cbiAgICAgICAgeEF4aXNNYXAuZm9yRWFjaCgoYXhpcykgPT4ge1xuICAgICAgICAgIGxldCBkb21haW4gPSBheGlzLmV4dHJlbWVzO1xuXG4gICAgICAgICAgaWYgKGF4aXM/Lm9wdGlvbnMuaW52ZXJ0ZWQpIHtcbiAgICAgICAgICAgIGRvbWFpbiA9IFsuLi5heGlzLmV4dHJlbWVzXS5yZXZlcnNlKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbGV0IHNjYWxlID0gdGhpcy5zY2FsZU1hcHBpbmdcbiAgICAgICAgICAgIC5nZXQoYXhpcy5vcHRpb25zLnNjYWxlVHlwZS50eXBlKSgpXG4gICAgICAgICAgICAuZG9tYWluKGRvbWFpbilcbiAgICAgICAgICAgIC5yYW5nZShbMCwgZmluYWxXaWR0aCAtIGNvbmZpZy5ib3VuZHMucmlnaHRdKTtcblxuICAgICAgICAgIGlmIChheGlzLm9wdGlvbnMubmljZVRpY2tzKSB7XG4gICAgICAgICAgICBzY2FsZS5uaWNlKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGF4aXMub3B0aW9ucy5zY2FsZVR5cGUudHlwZSA9PT0gU2NhbGVUeXBlLmxvZykge1xuICAgICAgICAgICAgc2NhbGUuYmFzZShheGlzLm9wdGlvbnMuc2NhbGVUeXBlLmJhc2UpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmKGF4aXMub3B0aW9ucy5zY2FsZVR5cGUudHlwZSA9PT0gU2NhbGVUeXBlLmJhbmQpIHtcbiAgICAgICAgICAgIHNjYWxlLnBhZGRpbmdJbm5lcigwLjEpO1xuICAgICAgICAgICAgc2NhbGUucGFkZGluZ091dGVyKDAuMSk7XG4gICAgICAgICAgICBzY2FsZS5hbGlnbigwLjEpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYXhpcy5zZXRTY2FsZShzY2FsZSk7XG4gICAgICAgICAgYXhpcy5zZXRPcmlnaW5Eb21haW4oc2NhbGUuZG9tYWluKCkpO1xuXG5cbiAgICAgICAgICBjb25zdCBoYXNDYWNoZSA9IHRoaXMudHJhbnNmb3JtQ2FjaGVYLmhhcyhheGlzLmluZGV4KTtcbiAgICAgICAgICBjb25zdCBzaG91bGRSZXN0b3JlID1cbiAgICAgICAgICAgIHpvb20/LmF4aXM/Lm9yaWVudGF0aW9uICE9PSBBeGlzT3JpZW50YXRpb24ueCB8fFxuICAgICAgICAgICAgem9vbS5heGlzPy5pbmRleCAhPT0gYXhpcy5pbmRleDtcblxuICAgICAgICAgIGlmIChoYXNDYWNoZSAmJiBzaG91bGRSZXN0b3JlKSB7XG4gICAgICAgICAgICBjb25zdCByZXN0b3JlZFRyYW5zZm9ybSA9IHRoaXMudHJhbnNmb3JtQ2FjaGVYLmdldChheGlzLmluZGV4KTtcbiAgICAgICAgICAgIGF4aXMuc2V0U2NhbGUocmVzdG9yZWRUcmFuc2Zvcm0ucmVzY2FsZVgoc2NhbGUpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICh6b29tICYmIHpvb20uZG9tYWluKSB7XG4gICAgICAgICAgaWYgKHpvb20uYXhpcz8ub3JpZW50YXRpb24gPT09IEF4aXNPcmllbnRhdGlvbi54KSB7XG4gICAgICAgICAgICBpZiAoeEF4aXNNYXAuaGFzKHpvb20uYXhpcy5pbmRleCkpIHtcbiAgICAgICAgICAgICAgY29uc3QgeCA9IHhBeGlzTWFwLmdldCh6b29tLmF4aXMuaW5kZXgpO1xuICAgICAgICAgICAgICBjb25zdCB0cmFuc2Zvcm0gPSB0aGlzLnpvb21TZXJ2aWNlLmdldEQzVHJhbnNmb3JtKHpvb20uZG9tYWluLCB4Lm9yaWdpbkRvbWFpbiwgeC5zY2FsZSwgQXhpc09yaWVudGF0aW9uLngsIHgub3B0aW9ucy5pbnZlcnRlZCk7XG4gICAgICAgICAgICAgIGNvbnN0IHJlc2NhbGVkID0gdHJhbnNmb3JtLnJlc2NhbGVYKHguc2NhbGUuY29weSgpKTtcbiAgICAgICAgICAgICAgeC5zZXRTY2FsZShyZXNjYWxlZCk7XG4gICAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtQ2FjaGVYLnNldCh4LmluZGV4LCB0cmFuc2Zvcm0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG5cbiAgICAgICAgLy8gR2VuZXJhdGUgeSBheGlzXG5cbiAgICAgICAgY29uc3QgdG9wID0gQXJyYXkuZnJvbSh4QXhpc01hcC52YWx1ZXMoKSlcbiAgICAgICAgICAuZmlsdGVyKChfKSA9PiBfLm9wdGlvbnM/LnZpc2libGUgJiYgXy5vcHRpb25zPy5vcHBvc2l0ZSlcbiAgICAgICAgICAucmVkdWNlKChhY2MsIGN1cikgPT4gYWNjICsgY3VyLnNlbGZTaXplLCAwKTtcblxuICAgICAgICBjb25zdCBib3R0b20gPSBBcnJheS5mcm9tKHhBeGlzTWFwLnZhbHVlcygpKVxuICAgICAgICAgIC5maWx0ZXIoKF8pID0+IF8ub3B0aW9ucz8udmlzaWJsZSAmJiBfLm9wdGlvbnM/Lm9wcG9zaXRlICE9PSB0cnVlKVxuICAgICAgICAgIC5yZWR1Y2UoKGFjYywgY3VyKSA9PiBhY2MgKyBjdXIuc2VsZlNpemUsIDApO1xuXG4gICAgICAgIGNvbnN0IGZpbmFsSGVpZ2h0ID1cbiAgICAgICAgICAoc2l6ZS5oZWlnaHQgfHwgMCkgLVxuICAgICAgICAgIHRvcCAtXG4gICAgICAgICAgYm90dG9tIC1cbiAgICAgICAgICBjb25maWc/LmJvdW5kcz8udG9wIC1cbiAgICAgICAgICBjb25maWcuYm91bmRzPy5ib3R0b207XG5cbiAgICAgICAgeUF4aXNNYXAuZm9yRWFjaCgoYXhpcykgPT4ge1xuICAgICAgICAgIGxldCBkb21haW4gPSBheGlzLmV4dHJlbWVzO1xuXG4gICAgICAgICAgaWYgKGF4aXMub3JpZW50YXRpb24gPT09IEF4aXNPcmllbnRhdGlvbi55KSB7XG4gICAgICAgICAgICBkb21haW4gPSBbLi4uYXhpcy5leHRyZW1lc10ucmV2ZXJzZSgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChheGlzPy5vcHRpb25zLmludmVydGVkKSB7XG4gICAgICAgICAgICBkb21haW4gPSBkb21haW4ucmV2ZXJzZSgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHNjYWxlID0gdGhpcy5zY2FsZU1hcHBpbmdcbiAgICAgICAgICAgIC5nZXQoYXhpcy5vcHRpb25zLnNjYWxlVHlwZS50eXBlKSgpXG4gICAgICAgICAgICAuZG9tYWluKGRvbWFpbilcbiAgICAgICAgICAgIC5yYW5nZShbY29uZmlnLmJvdW5kcy50b3AsIGZpbmFsSGVpZ2h0XSk7XG5cblxuICAgICAgICAgIGlmIChheGlzLm9wdGlvbnMubmljZVRpY2tzKSB7XG4gICAgICAgICAgICBzY2FsZS5uaWNlKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGF4aXMub3B0aW9ucy5zY2FsZVR5cGUudHlwZSA9PT0gU2NhbGVUeXBlLmxvZykge1xuICAgICAgICAgICAgc2NhbGUuYmFzZShheGlzLm9wdGlvbnMuc2NhbGVUeXBlLmJhc2UpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmKGF4aXMub3B0aW9ucy5zY2FsZVR5cGUudHlwZSA9PT0gU2NhbGVUeXBlLmJhbmQpIHtcbiAgICAgICAgICAgIHNjYWxlLnBhZGRpbmdJbm5lcigwLjEpO1xuICAgICAgICAgICAgc2NhbGUucGFkZGluZ091dGVyKDAuMSk7XG4gICAgICAgICAgICBzY2FsZS5hbGlnbigwLjEpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYXhpcy5zZXRTY2FsZShzY2FsZSk7XG4gICAgICAgICAgYXhpcy5zZXRPcmlnaW5Eb21haW4oc2NhbGUuZG9tYWluKCkpO1xuXG4gICAgICAgICAgY29uc3QgaGFzQ2FjaGUgPSB0aGlzLnRyYW5zZm9ybUNhY2hlWS5oYXMoYXhpcy5pbmRleCk7XG5cbiAgICAgICAgICBjb25zdCBzaG91bGRSZXN0b3JlID1cbiAgICAgICAgICAgIHpvb20/LmF4aXM/Lm9yaWVudGF0aW9uICE9PSBBeGlzT3JpZW50YXRpb24ueSB8fFxuICAgICAgICAgICAgem9vbS5heGlzPy5pbmRleCAhPT0gYXhpcy5pbmRleDtcblxuICAgICAgICAgIGlmIChoYXNDYWNoZSAmJiBzaG91bGRSZXN0b3JlKSB7XG4gICAgICAgICAgICBjb25zdCByZXN0b3JlZFRyYW5zZm9ybSA9IHRoaXMudHJhbnNmb3JtQ2FjaGVZLmdldChheGlzLmluZGV4KTtcbiAgICAgICAgICAgIGF4aXMuc2V0U2NhbGUocmVzdG9yZWRUcmFuc2Zvcm0ucmVzY2FsZVkoc2NhbGUpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICh6b29tICYmIHpvb20uZG9tYWluKSB7XG4gICAgICAgICAgaWYgKHpvb20uYXhpcz8ub3JpZW50YXRpb24gPT09IEF4aXNPcmllbnRhdGlvbi55KSB7XG4gICAgICAgICAgICBpZiAoeUF4aXNNYXAuaGFzKHpvb20uYXhpcy5pbmRleCkpIHtcbiAgICAgICAgICAgICAgY29uc3QgeSA9IHlBeGlzTWFwLmdldCh6b29tLmF4aXMuaW5kZXgpO1xuICAgICAgICAgICAgICBjb25zdCB0cmFuc2Zvcm0gPSB0aGlzLnpvb21TZXJ2aWNlLmdldEQzVHJhbnNmb3JtKHpvb20uZG9tYWluLFxuICAgICAgICAgICAgICAgIHkub3JpZ2luRG9tYWluLFxuICAgICAgICAgICAgICAgIHkuc2NhbGUsXG4gICAgICAgICAgICAgICAgQXhpc09yaWVudGF0aW9uLnksXG4gICAgICAgICAgICAgICAgeS5vcHRpb25zLmludmVydGVkXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGNvbnN0IHJlc2NhbGVkID0gdHJhbnNmb3JtLnJlc2NhbGVZKHkuc2NhbGUuY29weSgpKTtcbiAgICAgICAgICAgICAgeS5zZXRTY2FsZShyZXNjYWxlZCk7XG4gICAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtQ2FjaGVZLnNldCh5LmluZGV4LCB0cmFuc2Zvcm0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHg6IHhBeGlzTWFwLFxuICAgICAgICAgIHk6IHlBeGlzTWFwXG4gICAgICAgIH07XG4gICAgICB9KSxcbiAgICAgIHNoYXJlUmVwbGF5KHtcbiAgICAgICAgYnVmZmVyU2l6ZTogMSxcbiAgICAgICAgcmVmQ291bnQ6IHRydWUsXG4gICAgICB9KVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,29 @@
1
+ import { Component } from '@angular/core';
2
+ import { SeriesBaseComponent } from "../../base/series-base.component";
3
+ import { map } from "rxjs";
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../service/chart.service";
6
+ import * as i2 from "../../service/scale.service";
7
+ import * as i3 from "../../service/zoom.service";
8
+ import * as i4 from "@angular/common";
9
+ export class BandseriesComponent extends SeriesBaseComponent {
10
+ constructor(svc, cdr, scaleService, zoomService, element) {
11
+ super(svc, cdr, scaleService, zoomService, element);
12
+ this.svc = svc;
13
+ this.cdr = cdr;
14
+ this.scaleService = scaleService;
15
+ this.zoomService = zoomService;
16
+ this.element = element;
17
+ }
18
+ ngOnInit() {
19
+ this.x = this.scaleService.scales.pipe(map(_ => _.x.get(this.series.xAxisIndex)?.scale));
20
+ this.y = this.scaleService.scales.pipe(map(_ => _.y.get(this.series.yAxisIndex)?.scale));
21
+ }
22
+ }
23
+ BandseriesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: BandseriesComponent, deps: [{ token: i1.ChartService }, { token: i0.ChangeDetectorRef }, { token: i2.ScaleService }, { token: i3.ZoomService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
24
+ BandseriesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: BandseriesComponent, selector: "svg:svg[teta-bandseries]", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"{x: x | async, y: y | async} as scales\">\n <ng-container *ngFor=\"let band of _series.data\">\n <svg:rect [attr.x]=\"scales.x(band.x)\"\n [attr.y]=\"scales.y(band.y) - scales.y.bandwidth() / 2\"\n [attr.width]=\"scales.x(band.x1) - scales.x(band.x)\"\n fill=\"red\"\n [attr.height]=\"scales.y.bandwidth()\">\n </svg:rect>\n <svg:text\n text-anchor=\"middle\"\n dominant-baseline=\"middle\"\n class=\"label font-caption fill-text-90\"\n [attr.x]=\"scales.x(band.x) + (scales.x(band.x1) - scales.x(band.x)) / 2\"\n [attr.y]=\"scales.y(band.y)\">{{band.y}}\n </svg:text>\n </ng-container>\n\n</ng-container>\n", styles: [""], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] });
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: BandseriesComponent, decorators: [{
26
+ type: Component,
27
+ args: [{ selector: 'svg:svg[teta-bandseries]', template: "<ng-container *ngIf=\"{x: x | async, y: y | async} as scales\">\n <ng-container *ngFor=\"let band of _series.data\">\n <svg:rect [attr.x]=\"scales.x(band.x)\"\n [attr.y]=\"scales.y(band.y) - scales.y.bandwidth() / 2\"\n [attr.width]=\"scales.x(band.x1) - scales.x(band.x)\"\n fill=\"red\"\n [attr.height]=\"scales.y.bandwidth()\">\n </svg:rect>\n <svg:text\n text-anchor=\"middle\"\n dominant-baseline=\"middle\"\n class=\"label font-caption fill-text-90\"\n [attr.x]=\"scales.x(band.x) + (scales.x(band.x1) - scales.x(band.x)) / 2\"\n [attr.y]=\"scales.y(band.y)\">{{band.y}}\n </svg:text>\n </ng-container>\n\n</ng-container>\n" }]
28
+ }], ctorParameters: function () { return [{ type: i1.ChartService }, { type: i0.ChangeDetectorRef }, { type: i2.ScaleService }, { type: i3.ZoomService }, { type: i0.ElementRef }]; } });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFuZHNlcmllcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY2hhcnQvc3Rvcmllcy9iYW5kc2VyaWVzL2JhbmRzZXJpZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L3N0b3JpZXMvYmFuZHNlcmllcy9iYW5kc2VyaWVzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0IsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUtyRSxPQUFPLEVBQUMsR0FBRyxFQUFhLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUFPckMsTUFBTSxPQUFPLG1CQUFvQixTQUFRLG1CQUE4QjtJQUtyRSxZQUErQixHQUFpQixFQUNqQixHQUFzQixFQUN0QixZQUEwQixFQUMxQixXQUF3QixFQUN4QixPQUFtQjtRQUNoRCxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBTHZCLFFBQUcsR0FBSCxHQUFHLENBQWM7UUFDakIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtJQUVsRCxDQUFDO0lBRVEsUUFBUTtRQUNmLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN6RixJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFHM0YsQ0FBQzs7Z0hBbEJVLG1CQUFtQjtvR0FBbkIsbUJBQW1CLHVGQ2JoQyxrdEJBa0JBOzJGRExhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSwwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1Nlcmllc0Jhc2VDb21wb25lbnR9IGZyb20gXCIuLi8uLi9iYXNlL3Nlcmllcy1iYXNlLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtCYXNlUG9pbnR9IGZyb20gXCIuLi8uLi9tb2RlbC9iYXNlLXBvaW50XCI7XG5pbXBvcnQge0NoYXJ0U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9jaGFydC5zZXJ2aWNlJztcbmltcG9ydCB7U2NhbGVTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9zY2FsZS5zZXJ2aWNlXCI7XG5pbXBvcnQge1pvb21TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS96b29tLnNlcnZpY2VcIjtcbmltcG9ydCB7bWFwLCBPYnNlcnZhYmxlfSBmcm9tIFwicnhqc1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdmc6c3ZnW3RldGEtYmFuZHNlcmllc10nLFxuICB0ZW1wbGF0ZVVybDogJy4vYmFuZHNlcmllcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2JhbmRzZXJpZXMuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBCYW5kc2VyaWVzQ29tcG9uZW50IGV4dGVuZHMgU2VyaWVzQmFzZUNvbXBvbmVudDxCYXNlUG9pbnQ+IGltcGxlbWVudHMgT25Jbml0IHtcblxuICB4OiBPYnNlcnZhYmxlPGFueT47XG4gIHk6IE9ic2VydmFibGU8YW55PjtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgb3ZlcnJpZGUgc3ZjOiBDaGFydFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByb3RlY3RlZCBvdmVycmlkZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICAgICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgc2NhbGVTZXJ2aWNlOiBTY2FsZVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByb3RlY3RlZCBvdmVycmlkZSB6b29tU2VydmljZTogWm9vbVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByb3RlY3RlZCBvdmVycmlkZSBlbGVtZW50OiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIoc3ZjLCBjZHIsIHNjYWxlU2VydmljZSwgem9vbVNlcnZpY2UsIGVsZW1lbnQpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy54ID0gdGhpcy5zY2FsZVNlcnZpY2Uuc2NhbGVzLnBpcGUobWFwKF8gPT4gXy54LmdldCh0aGlzLnNlcmllcy54QXhpc0luZGV4KT8uc2NhbGUpKTtcbiAgICB0aGlzLnkgPSB0aGlzLnNjYWxlU2VydmljZS5zY2FsZXMucGlwZShtYXAoXyA9PiBfLnkuZ2V0KHRoaXMuc2VyaWVzLnlBeGlzSW5kZXgpPy5zY2FsZSkpO1xuXG5cbiAgfVxuXG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwie3g6IHggfCBhc3luYywgeTogeSB8IGFzeW5jfSBhcyBzY2FsZXNcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYmFuZCBvZiBfc2VyaWVzLmRhdGFcIj5cbiAgICA8c3ZnOnJlY3QgW2F0dHIueF09XCJzY2FsZXMueChiYW5kLngpXCJcbiAgICAgICAgICAgICAgW2F0dHIueV09XCJzY2FsZXMueShiYW5kLnkpIC0gc2NhbGVzLnkuYmFuZHdpZHRoKCkgLyAyXCJcbiAgICAgICAgICAgICAgW2F0dHIud2lkdGhdPVwic2NhbGVzLngoYmFuZC54MSkgLSBzY2FsZXMueChiYW5kLngpXCJcbiAgICAgICAgICAgICAgZmlsbD1cInJlZFwiXG4gICAgICAgICAgICAgIFthdHRyLmhlaWdodF09XCJzY2FsZXMueS5iYW5kd2lkdGgoKVwiPlxuICAgIDwvc3ZnOnJlY3Q+XG4gICAgPHN2Zzp0ZXh0XG4gICAgICB0ZXh0LWFuY2hvcj1cIm1pZGRsZVwiXG4gICAgICBkb21pbmFudC1iYXNlbGluZT1cIm1pZGRsZVwiXG4gICAgICBjbGFzcz1cImxhYmVsIGZvbnQtY2FwdGlvbiBmaWxsLXRleHQtOTBcIlxuICAgICAgW2F0dHIueF09XCJzY2FsZXMueChiYW5kLngpICsgKHNjYWxlcy54KGJhbmQueDEpIC0gc2NhbGVzLngoYmFuZC54KSkgLyAyXCJcbiAgICAgIFthdHRyLnldPVwic2NhbGVzLnkoYmFuZC55KVwiPnt7YmFuZC55fX1cbiAgICA8L3N2Zzp0ZXh0PlxuICA8L25nLWNvbnRhaW5lcj5cblxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -85,7 +85,7 @@ var ScaleType;
85
85
  ScaleType[ScaleType["pow"] = 3] = "pow";
86
86
  ScaleType[ScaleType["sqrt"] = 4] = "sqrt";
87
87
  ScaleType[ScaleType["time"] = 5] = "time";
88
- ScaleType[ScaleType["category"] = 6] = "category";
88
+ ScaleType[ScaleType["band"] = 6] = "band";
89
89
  })(ScaleType || (ScaleType = {}));
90
90
 
91
91
  const defaultAxisConfig = {
@@ -138,8 +138,6 @@ const defaultSeriesConfig = () => ({
138
138
 
139
139
  class ChartService {
140
140
  constructor() {
141
- // public zoomInstance: Observable<ZoomService>;
142
- // public brushInstance: Observable<BrushService>;
143
141
  this.config$ = new BehaviorSubject(defaultChartConfig());
144
142
  this.size$ = new BehaviorSubject(null);
145
143
  this.pointerMove$ = new Subject();
@@ -343,8 +341,6 @@ class ChartService {
343
341
  return config;
344
342
  }
345
343
  }
346
- // private zoomInstance$ = new Subject<ZoomService>();
347
- // private brushInstance$ = new Subject<BrushService>();
348
344
  ChartService._hiddenSeriesPostfix = 'hidden_series';
349
345
  ChartService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ChartService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
350
346
  ChartService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ChartService, providedIn: 'root' });
@@ -482,8 +478,14 @@ class AxisSizeBuilder {
482
478
  if (settings.orientation === AxisOrientation.y) {
483
479
  const formatter = settings.options.tickFormat || settings.defaultFormatter();
484
480
  finalPadding += settings.options.title ? this.titlePadding : 0;
485
- const scale = settings.defaultScale();
486
- const ticks = scale().domain(settings.extremes).ticks(20);
481
+ const scale = settings.defaultScale()();
482
+ scale.domain(settings.extremes);
483
+ if (settings.options.scaleType.type === ScaleType.band) {
484
+ scale.ticks = (ticks) => {
485
+ return scale.domain();
486
+ };
487
+ }
488
+ const ticks = scale.ticks(20);
487
489
  const maxElementLengthIndex = maxIndex(ticks, (_) => formatter(_).length);
488
490
  finalPadding += getTextWidth(formatter(ticks[maxElementLengthIndex]), this.backupRatio);
489
491
  }
@@ -512,6 +514,9 @@ class ExtremesBuilder {
512
514
  }, []);
513
515
  const accessor = this.extentAccessorMap.get(settings.orientation);
514
516
  this.extremes = data.length > 1 ? d3.extent(data, accessor) : [0, 0];
517
+ if (settings.options.scaleType.type === ScaleType.band) {
518
+ this.extremes = data.map(accessor);
519
+ }
515
520
  }
516
521
  if (hasMin) {
517
522
  this.extremes[0] = options === null || options === void 0 ? void 0 : options.min;
@@ -533,14 +538,16 @@ class Axis {
533
538
  .set(ScaleType.log, d3.format('~s'))
534
539
  .set(ScaleType.symlog, d3.format('~s'))
535
540
  .set(ScaleType.pow, d3.format('~s'))
536
- .set(ScaleType.sqrt, d3.format('~s'));
541
+ .set(ScaleType.sqrt, d3.format('~s'))
542
+ .set(ScaleType.band, (_) => { return _; });
537
543
  this.defaultScales = new Map()
538
544
  .set(ScaleType.linear, d3.scaleLinear)
539
545
  .set(ScaleType.log, d3.scaleLog)
540
546
  .set(ScaleType.symlog, d3.scaleSymlog)
541
547
  .set(ScaleType.pow, d3.scalePow)
542
548
  .set(ScaleType.sqrt, d3.scaleSqrt)
543
- .set(ScaleType.time, d3.scaleTime);
549
+ .set(ScaleType.time, d3.scaleTime)
550
+ .set(ScaleType.band, d3.scaleBand);
544
551
  this.chartConfig = config;
545
552
  }
546
553
  /**
@@ -596,12 +603,17 @@ class Axis {
596
603
  }
597
604
  setScale(scale) {
598
605
  this._scale = scale;
606
+ if (this.options.scaleType.type === ScaleType.band) {
607
+ this._scale.ticks = () => {
608
+ return this._scale.domain();
609
+ };
610
+ }
599
611
  }
600
612
  setSelfSize() {
601
613
  this._selfSize = new AxisSizeBuilder().build(this);
602
614
  }
603
615
  setTicksValues() {
604
- this._ticksValues = generateTicks(this._extremes);
616
+ //this._ticksValues = generateTicks(this._extremes);
605
617
  }
606
618
  setOptions() {
607
619
  const options = this.orientation === AxisOrientation.x
@@ -650,11 +662,11 @@ class ScaleService {
650
662
  this.scaleMapping = new Map()
651
663
  .set(ScaleType.linear, d3.scaleLinear)
652
664
  .set(ScaleType.time, d3.scaleTime)
653
- .set(ScaleType.category, d3.scaleOrdinal)
654
665
  .set(ScaleType.log, d3.scaleLog)
655
666
  .set(ScaleType.symlog, d3.scaleSymlog)
656
667
  .set(ScaleType.pow, d3.scalePow)
657
- .set(ScaleType.sqrt, d3.scaleSqrt);
668
+ .set(ScaleType.sqrt, d3.scaleSqrt)
669
+ .set(ScaleType.band, d3.scaleBand);
658
670
  this.scales = combineLatest([
659
671
  this.chartService.size,
660
672
  this.chartService.config,
@@ -694,6 +706,11 @@ class ScaleService {
694
706
  if (axis.options.scaleType.type === ScaleType.log) {
695
707
  scale.base(axis.options.scaleType.base);
696
708
  }
709
+ if (axis.options.scaleType.type === ScaleType.band) {
710
+ scale.paddingInner(0.1);
711
+ scale.paddingOuter(0.1);
712
+ scale.align(0.1);
713
+ }
697
714
  axis.setScale(scale);
698
715
  axis.setOriginDomain(scale.domain());
699
716
  const hasCache = this.transformCacheX.has(axis.index);
@@ -746,6 +763,11 @@ class ScaleService {
746
763
  if (axis.options.scaleType.type === ScaleType.log) {
747
764
  scale.base(axis.options.scaleType.base);
748
765
  }
766
+ if (axis.options.scaleType.type === ScaleType.band) {
767
+ scale.paddingInner(0.1);
768
+ scale.paddingOuter(0.1);
769
+ scale.align(0.1);
770
+ }
749
771
  axis.setScale(scale);
750
772
  axis.setOriginDomain(scale.domain());
751
773
  const hasCache = this.transformCacheY.has(axis.index);
@@ -2105,17 +2127,20 @@ class ZoomableDirective {
2105
2127
  if ((_p = this.config.zoom) === null || _p === void 0 ? void 0 : _p.wheelDelta) {
2106
2128
  this.zoom.wheelDelta((_q = this.config.zoom) === null || _q === void 0 ? void 0 : _q.wheelDelta);
2107
2129
  }
2108
- const maxZoom = ((_r = this.config.zoom) === null || _r === void 0 ? void 0 : _r.max)
2109
- ? (this.axis.extremes[1] - this.axis.extremes[0]) /
2110
- ((_s = this.config.zoom) === null || _s === void 0 ? void 0 : _s.max)
2111
- : ((_t = this.config.zoom) === null || _t === void 0 ? void 0 : _t.limitZoomByData)
2112
- ? 1
2113
- : 0;
2114
- const minZoom = ((_u = this.config.zoom) === null || _u === void 0 ? void 0 : _u.min)
2115
- ? (this.axis.extremes[1] - this.axis.extremes[0]) /
2116
- ((_v = this.config.zoom) === null || _v === void 0 ? void 0 : _v.min)
2117
- : Infinity;
2118
- this.zoom.scaleExtent([maxZoom, minZoom]);
2130
+ if (this.axis.options.scaleType.type === ScaleType.band) {
2131
+ const extremes = this.axis.extremes;
2132
+ const maxZoom = ((_r = this.config.zoom) === null || _r === void 0 ? void 0 : _r.max)
2133
+ ? (extremes[1] - extremes[0]) /
2134
+ ((_s = this.config.zoom) === null || _s === void 0 ? void 0 : _s.max)
2135
+ : ((_t = this.config.zoom) === null || _t === void 0 ? void 0 : _t.limitZoomByData)
2136
+ ? 1
2137
+ : 0;
2138
+ const minZoom = ((_u = this.config.zoom) === null || _u === void 0 ? void 0 : _u.min)
2139
+ ? (extremes[1] - extremes[0]) /
2140
+ ((_v = this.config.zoom) === null || _v === void 0 ? void 0 : _v.min)
2141
+ : Infinity;
2142
+ this.zoom.scaleExtent([maxZoom, minZoom]);
2143
+ }
2119
2144
  this.zoom.on('zoom end', this.zoomed);
2120
2145
  this._element.call(this.zoom).on('dblclick.zoom', null);
2121
2146
  if (((_x = (_w = this.config) === null || _w === void 0 ? void 0 : _w.zoom) === null || _x === void 0 ? void 0 : _x.zoomBehavior) === ZoomBehaviorType.wheel) {
@@ -2695,6 +2720,9 @@ class ChartComponent {
2695
2720
  if (tooltipTracking === TooltipTracking.y) {
2696
2721
  const result = new Map();
2697
2722
  y.forEach((value, key) => {
2723
+ if (value.options.scaleType.type === ScaleType.band) {
2724
+ return;
2725
+ }
2698
2726
  result.set(key, value.scale.invert(event.offsetY));
2699
2727
  });
2700
2728
  this.pointerMove.emit({
@@ -2705,6 +2733,9 @@ class ChartComponent {
2705
2733
  else {
2706
2734
  const result = new Map();
2707
2735
  x.forEach((value, key) => {
2736
+ if (value.options.scaleType.type === ScaleType.band) {
2737
+ return;
2738
+ }
2708
2739
  result.set(key, value.scale.invert(event.offsetX));
2709
2740
  });
2710
2741
  this.pointerMove.emit({
@@ -2799,6 +2830,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
2799
2830
  type: Input
2800
2831
  }] } });
2801
2832
 
2833
+ class BandseriesComponent extends SeriesBaseComponent {
2834
+ constructor(svc, cdr, scaleService, zoomService, element) {
2835
+ super(svc, cdr, scaleService, zoomService, element);
2836
+ this.svc = svc;
2837
+ this.cdr = cdr;
2838
+ this.scaleService = scaleService;
2839
+ this.zoomService = zoomService;
2840
+ this.element = element;
2841
+ }
2842
+ ngOnInit() {
2843
+ this.x = this.scaleService.scales.pipe(map(_ => { var _a; return (_a = _.x.get(this.series.xAxisIndex)) === null || _a === void 0 ? void 0 : _a.scale; }));
2844
+ this.y = this.scaleService.scales.pipe(map(_ => { var _a; return (_a = _.y.get(this.series.yAxisIndex)) === null || _a === void 0 ? void 0 : _a.scale; }));
2845
+ }
2846
+ }
2847
+ BandseriesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: BandseriesComponent, deps: [{ token: ChartService }, { token: i0.ChangeDetectorRef }, { token: ScaleService }, { token: ZoomService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
2848
+ BandseriesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: BandseriesComponent, selector: "svg:svg[teta-bandseries]", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"{x: x | async, y: y | async} as scales\">\n <ng-container *ngFor=\"let band of _series.data\">\n <svg:rect [attr.x]=\"scales.x(band.x)\"\n [attr.y]=\"scales.y(band.y) - scales.y.bandwidth() / 2\"\n [attr.width]=\"scales.x(band.x1) - scales.x(band.x)\"\n fill=\"red\"\n [attr.height]=\"scales.y.bandwidth()\">\n </svg:rect>\n <svg:text\n text-anchor=\"middle\"\n dominant-baseline=\"middle\"\n class=\"label font-caption fill-text-90\"\n [attr.x]=\"scales.x(band.x) + (scales.x(band.x1) - scales.x(band.x)) / 2\"\n [attr.y]=\"scales.y(band.y)\">{{band.y}}\n </svg:text>\n </ng-container>\n\n</ng-container>\n", styles: [""], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] });
2849
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: BandseriesComponent, decorators: [{
2850
+ type: Component,
2851
+ args: [{ selector: 'svg:svg[teta-bandseries]', template: "<ng-container *ngIf=\"{x: x | async, y: y | async} as scales\">\n <ng-container *ngFor=\"let band of _series.data\">\n <svg:rect [attr.x]=\"scales.x(band.x)\"\n [attr.y]=\"scales.y(band.y) - scales.y.bandwidth() / 2\"\n [attr.width]=\"scales.x(band.x1) - scales.x(band.x)\"\n fill=\"red\"\n [attr.height]=\"scales.y.bandwidth()\">\n </svg:rect>\n <svg:text\n text-anchor=\"middle\"\n dominant-baseline=\"middle\"\n class=\"label font-caption fill-text-90\"\n [attr.x]=\"scales.x(band.x) + (scales.x(band.x1) - scales.x(band.x)) / 2\"\n [attr.y]=\"scales.y(band.y)\">{{band.y}}\n </svg:text>\n </ng-container>\n\n</ng-container>\n" }]
2852
+ }], ctorParameters: function () { return [{ type: ChartService }, { type: i0.ChangeDetectorRef }, { type: ScaleService }, { type: ZoomService }, { type: i0.ElementRef }]; } });
2853
+
2802
2854
  class ChartModule {
2803
2855
  }
2804
2856
  ChartModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ChartModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -2824,7 +2876,8 @@ ChartModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "1
2824
2876
  BlockAreaSeriesComponent,
2825
2877
  AnnotationComponent,
2826
2878
  CrosshairComponent,
2827
- DraggablePointDirective], imports: [CommonModule, LetModule], exports: [ChartComponent,
2879
+ DraggablePointDirective,
2880
+ BandseriesComponent], imports: [CommonModule, LetModule], exports: [ChartComponent,
2828
2881
  LegendComponent,
2829
2882
  SeriesBaseComponent,
2830
2883
  LineSeriesComponent,
@@ -2861,6 +2914,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
2861
2914
  AnnotationComponent,
2862
2915
  CrosshairComponent,
2863
2916
  DraggablePointDirective,
2917
+ BandseriesComponent,
2864
2918
  ],
2865
2919
  exports: [
2866
2920
  ChartComponent,