igniteui-angular 17.2.25 → 17.2.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/esm2022/lib/avatar/avatar.component.mjs +17 -2
  2. package/esm2022/lib/calendar/common/calendar-view.directive.mjs +3 -2
  3. package/esm2022/lib/calendar/common/model.mjs +3 -2
  4. package/esm2022/lib/core/utils.mjs +30 -11
  5. package/esm2022/lib/date-picker/date-picker.component.mjs +7 -3
  6. package/esm2022/lib/date-range-picker/date-range-picker.component.mjs +2 -2
  7. package/esm2022/lib/directives/drag-drop/drag-drop.directive.mjs +20 -22
  8. package/esm2022/lib/directives/for-of/for_of.directive.mjs +5 -3
  9. package/esm2022/lib/grids/grid-base.directive.mjs +2 -2
  10. package/esm2022/lib/grids/moving/moving.drag.directive.mjs +3 -3
  11. package/esm2022/lib/query-builder/query-builder.component.mjs +9 -19
  12. package/esm2022/lib/services/animation/angular-animation-player.mjs +4 -2
  13. package/esm2022/lib/tabs/tabs/tab-header.component.mjs +7 -5
  14. package/esm2022/lib/tabs/tabs/tabs.component.mjs +15 -11
  15. package/fesm2022/igniteui-angular.mjs +106 -71
  16. package/fesm2022/igniteui-angular.mjs.map +1 -1
  17. package/lib/avatar/avatar.component.d.ts +3 -1
  18. package/lib/core/styles/components/action-strip/_action-strip-component.scss +1 -1
  19. package/lib/core/styles/components/grid/_grid-component.scss +1 -0
  20. package/lib/core/styles/components/paginator/_paginator-component.scss +1 -1
  21. package/lib/core/styles/components/query-builder/_query-builder-component.scss +9 -1
  22. package/lib/core/utils.d.ts +5 -0
  23. package/lib/date-picker/date-picker.component.d.ts +2 -1
  24. package/lib/directives/drag-drop/drag-drop.directive.d.ts +1 -0
  25. package/lib/tabs/tabs/tabs.component.d.ts +3 -1
  26. package/package.json +1 -1
@@ -16,7 +16,9 @@ export class IgxAngularAnimationPlayer {
16
16
  // To workaround this we are getting the positions from the inner player.
17
17
  // This is logged in Angular here - https://github.com/angular/angular/issues/18891
18
18
  // As soon as this is resolved we can remove this hack
19
- this._innerPlayer = innerRenderer.engine.players[innerRenderer.engine.players.length - 1];
19
+ const rendererEngine = innerRenderer.engine || innerRenderer.delegate.engine;
20
+ // A workaround because of Angular SSR is using some delegation.
21
+ this._innerPlayer = rendererEngine.players[rendererEngine.players.length - 1];
20
22
  }
21
23
  init() {
22
24
  this.internalPlayer.init();
@@ -44,4 +46,4 @@ export class IgxAngularAnimationPlayer {
44
46
  this.animationEnd.emit({ owner: this });
45
47
  }
46
48
  }
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1hbmltYXRpb24tcGxheWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL3NlcnZpY2VzL2FuaW1hdGlvbi9hbmd1bGFyLWFuaW1hdGlvbi1wbGF5ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUk3QyxNQUFNLE9BQU8seUJBQXlCO0lBS2xDLElBQVcsUUFBUTtRQUNmLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQsSUFBVyxRQUFRLENBQUMsS0FBYTtRQUM3QixJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsWUFBb0IsY0FBc0M7UUFBdEMsbUJBQWMsR0FBZCxjQUFjLENBQXdCO1FBWG5ELG1CQUFjLEdBQWlDLElBQUksWUFBWSxFQUFrQixDQUFDO1FBQ2xGLGlCQUFZLEdBQWlDLElBQUksWUFBWSxFQUFrQixDQUFDO1FBV25GLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELE1BQU0sYUFBYSxHQUFJLElBQUksQ0FBQyxjQUFzQixDQUFDLFNBQVMsQ0FBQztRQUM3RCxpRkFBaUY7UUFDakYseUVBQXlFO1FBQ3pFLG9GQUFvRjtRQUNwRix1REFBdUQ7UUFDdkQsSUFBSSxDQUFDLFlBQVksR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDOUYsQ0FBQztJQUVNLElBQUk7UUFDUCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFTSxJQUFJO1FBQ1AsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFTSxNQUFNO1FBQ1QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM3QixnR0FBZ0c7SUFDcEcsQ0FBQztJQUVNLEtBQUs7UUFDUixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzVCLHlHQUF5RztRQUN4RyxJQUFJLENBQUMsY0FBc0IsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2xELENBQUM7SUFFTSxPQUFPO1FBQ1YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRU0sVUFBVTtRQUNiLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRU8sTUFBTTtRQUNWLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5pbWF0aW9uUGxheWVyIGFzIEFuZ3VsYXJBbmltYXRpb25QbGF5ZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUJhc2VFdmVudEFyZ3MgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzJztcbmltcG9ydCB7IEFuaW1hdGlvblBsYXllciB9IGZyb20gJy4vYW5pbWF0aW9uJztcblxuZXhwb3J0IGNsYXNzIElneEFuZ3VsYXJBbmltYXRpb25QbGF5ZXIgaW1wbGVtZW50cyBBbmltYXRpb25QbGF5ZXIge1xuICAgIHByaXZhdGUgX2lubmVyUGxheWVyOiBBbmd1bGFyQW5pbWF0aW9uUGxheWVyO1xuICAgIHB1YmxpYyBhbmltYXRpb25TdGFydDogRXZlbnRFbWl0dGVyPElCYXNlRXZlbnRBcmdzPiA9IG5ldyBFdmVudEVtaXR0ZXI8SUJhc2VFdmVudEFyZ3M+KCk7XG4gICAgcHVibGljIGFuaW1hdGlvbkVuZDogRXZlbnRFbWl0dGVyPElCYXNlRXZlbnRBcmdzPiA9IG5ldyBFdmVudEVtaXR0ZXI8SUJhc2VFdmVudEFyZ3M+KCk7XG5cbiAgICBwdWJsaWMgZ2V0IHBvc2l0aW9uKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbm5lclBsYXllci5nZXRQb3NpdGlvbigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgcG9zaXRpb24odmFsdWU6IG51bWJlcikge1xuICAgICAgICB0aGlzLmludGVybmFsUGxheWVyLnNldFBvc2l0aW9uKHZhbHVlKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGludGVybmFsUGxheWVyOiBBbmd1bGFyQW5pbWF0aW9uUGxheWVyKSB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxQbGF5ZXIub25Eb25lKCgpID0+IHRoaXMub25Eb25lKCkpO1xuICAgICAgICBjb25zdCBpbm5lclJlbmRlcmVyID0gKHRoaXMuaW50ZXJuYWxQbGF5ZXIgYXMgYW55KS5fcmVuZGVyZXI7XG4gICAgICAgIC8vICBXZSBuZWVkIGlubmVyIHBsYXllciBhcyBBbmd1bGFyLkFuaW1hdGlvblBsYXllci5nZXRQb3NpdGlvbiByZXR1cm5zIGFsd2F5cyAwLlxuICAgICAgICAvLyBUbyB3b3JrYXJvdW5kIHRoaXMgd2UgYXJlIGdldHRpbmcgdGhlIHBvc2l0aW9ucyBmcm9tIHRoZSBpbm5lciBwbGF5ZXIuXG4gICAgICAgIC8vICBUaGlzIGlzIGxvZ2dlZCBpbiBBbmd1bGFyIGhlcmUgLSBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xODg5MVxuICAgICAgICAvLyAgQXMgc29vbiBhcyB0aGlzIGlzIHJlc29sdmVkIHdlIGNhbiByZW1vdmUgdGhpcyBoYWNrXG4gICAgICAgIHRoaXMuX2lubmVyUGxheWVyID0gaW5uZXJSZW5kZXJlci5lbmdpbmUucGxheWVyc1tpbm5lclJlbmRlcmVyLmVuZ2luZS5wbGF5ZXJzLmxlbmd0aCAtIDFdO1xuICAgIH1cblxuICAgIHB1YmxpYyBpbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmludGVybmFsUGxheWVyLmluaXQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcGxheSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hbmltYXRpb25TdGFydC5lbWl0KHsgb3duZXI6IHRoaXMgfSk7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxQbGF5ZXIucGxheSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBmaW5pc2goKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxQbGF5ZXIuZmluaXNoKCk7XG4gICAgICAgIC8vIFRPRE86IHdoZW4gYW5pbWF0aW9uIGZpbmlzaCBhbmd1bGFyIGRlbGV0ZXMgYWxsIG9uRG9uZSBoYW5kbGVycy4gQWRkIGhhbmRsZXJzIGFnYWluIGlmIG5lZWRlZFxuICAgIH1cblxuICAgIHB1YmxpYyByZXNldCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbFBsYXllci5yZXNldCgpO1xuICAgICAgICAvLyBjYWxsaW5nIHJlc2V0IGRvZXMgbm90IGNoYW5nZSBoYXNTdGFydGVkIHRvIGZhbHNlLiBUaGlzIGlzIHdoeSB3ZSBhcmUgZG9pbmcgaXQgaGVyZSB2aWEgaW50ZXJuYWwgZmllbGRcbiAgICAgICAgKHRoaXMuaW50ZXJuYWxQbGF5ZXIgYXMgYW55KS5fc3RhcnRlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmludGVybmFsUGxheWVyLmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaGFzU3RhcnRlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxQbGF5ZXIuaGFzU3RhcnRlZCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25Eb25lKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFuaW1hdGlvbkVuZC5lbWl0KHsgb3duZXI6IHRoaXMgfSk7XG4gICAgfVxufVxuIl19
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1hbmltYXRpb24tcGxheWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL3NlcnZpY2VzL2FuaW1hdGlvbi9hbmd1bGFyLWFuaW1hdGlvbi1wbGF5ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUk3QyxNQUFNLE9BQU8seUJBQXlCO0lBS2xDLElBQVcsUUFBUTtRQUNmLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQsSUFBVyxRQUFRLENBQUMsS0FBYTtRQUM3QixJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsWUFBb0IsY0FBc0M7UUFBdEMsbUJBQWMsR0FBZCxjQUFjLENBQXdCO1FBWG5ELG1CQUFjLEdBQWlDLElBQUksWUFBWSxFQUFrQixDQUFDO1FBQ2xGLGlCQUFZLEdBQWlDLElBQUksWUFBWSxFQUFrQixDQUFDO1FBV25GLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELE1BQU0sYUFBYSxHQUFJLElBQUksQ0FBQyxjQUFzQixDQUFDLFNBQVMsQ0FBQztRQUM3RCxpRkFBaUY7UUFDakYseUVBQXlFO1FBQ3pFLG9GQUFvRjtRQUNwRix1REFBdUQ7UUFDdkQsTUFBTSxjQUFjLEdBQUcsYUFBYSxDQUFDLE1BQU0sSUFBSSxhQUFhLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUM3RSxnRUFBZ0U7UUFDaEUsSUFBSSxDQUFDLFlBQVksR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFTSxJQUFJO1FBQ1AsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRU0sSUFBSTtRQUNQLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRU0sTUFBTTtRQUNULElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDN0IsZ0dBQWdHO0lBQ3BHLENBQUM7SUFFTSxLQUFLO1FBQ1IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM1Qix5R0FBeUc7UUFDeEcsSUFBSSxDQUFDLGNBQXNCLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNsRCxDQUFDO0lBRU0sT0FBTztRQUNWLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVNLFVBQVU7UUFDYixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVPLE1BQU07UUFDVixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFuaW1hdGlvblBsYXllciBhcyBBbmd1bGFyQW5pbWF0aW9uUGxheWVyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElCYXNlRXZlbnRBcmdzIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscyc7XG5pbXBvcnQgeyBBbmltYXRpb25QbGF5ZXIgfSBmcm9tICcuL2FuaW1hdGlvbic7XG5cbmV4cG9ydCBjbGFzcyBJZ3hBbmd1bGFyQW5pbWF0aW9uUGxheWVyIGltcGxlbWVudHMgQW5pbWF0aW9uUGxheWVyIHtcbiAgICBwcml2YXRlIF9pbm5lclBsYXllcjogQW5ndWxhckFuaW1hdGlvblBsYXllcjtcbiAgICBwdWJsaWMgYW5pbWF0aW9uU3RhcnQ6IEV2ZW50RW1pdHRlcjxJQmFzZUV2ZW50QXJncz4gPSBuZXcgRXZlbnRFbWl0dGVyPElCYXNlRXZlbnRBcmdzPigpO1xuICAgIHB1YmxpYyBhbmltYXRpb25FbmQ6IEV2ZW50RW1pdHRlcjxJQmFzZUV2ZW50QXJncz4gPSBuZXcgRXZlbnRFbWl0dGVyPElCYXNlRXZlbnRBcmdzPigpO1xuXG4gICAgcHVibGljIGdldCBwb3NpdGlvbigpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5uZXJQbGF5ZXIuZ2V0UG9zaXRpb24oKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IHBvc2l0aW9uKHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbFBsYXllci5zZXRQb3NpdGlvbih2YWx1ZSk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBpbnRlcm5hbFBsYXllcjogQW5ndWxhckFuaW1hdGlvblBsYXllcikge1xuICAgICAgICB0aGlzLmludGVybmFsUGxheWVyLm9uRG9uZSgoKSA9PiB0aGlzLm9uRG9uZSgpKTtcbiAgICAgICAgY29uc3QgaW5uZXJSZW5kZXJlciA9ICh0aGlzLmludGVybmFsUGxheWVyIGFzIGFueSkuX3JlbmRlcmVyO1xuICAgICAgICAvLyAgV2UgbmVlZCBpbm5lciBwbGF5ZXIgYXMgQW5ndWxhci5BbmltYXRpb25QbGF5ZXIuZ2V0UG9zaXRpb24gcmV0dXJucyBhbHdheXMgMC5cbiAgICAgICAgLy8gVG8gd29ya2Fyb3VuZCB0aGlzIHdlIGFyZSBnZXR0aW5nIHRoZSBwb3NpdGlvbnMgZnJvbSB0aGUgaW5uZXIgcGxheWVyLlxuICAgICAgICAvLyAgVGhpcyBpcyBsb2dnZWQgaW4gQW5ndWxhciBoZXJlIC0gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTg4OTFcbiAgICAgICAgLy8gIEFzIHNvb24gYXMgdGhpcyBpcyByZXNvbHZlZCB3ZSBjYW4gcmVtb3ZlIHRoaXMgaGFja1xuICAgICAgICBjb25zdCByZW5kZXJlckVuZ2luZSA9IGlubmVyUmVuZGVyZXIuZW5naW5lIHx8IGlubmVyUmVuZGVyZXIuZGVsZWdhdGUuZW5naW5lO1xuICAgICAgICAvLyBBIHdvcmthcm91bmQgYmVjYXVzZSBvZiBBbmd1bGFyIFNTUiBpcyB1c2luZyBzb21lIGRlbGVnYXRpb24uXG4gICAgICAgIHRoaXMuX2lubmVyUGxheWVyID0gcmVuZGVyZXJFbmdpbmUucGxheWVyc1tyZW5kZXJlckVuZ2luZS5wbGF5ZXJzLmxlbmd0aCAtIDFdO1xuICAgIH1cblxuICAgIHB1YmxpYyBpbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmludGVybmFsUGxheWVyLmluaXQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcGxheSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hbmltYXRpb25TdGFydC5lbWl0KHsgb3duZXI6IHRoaXMgfSk7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxQbGF5ZXIucGxheSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBmaW5pc2goKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxQbGF5ZXIuZmluaXNoKCk7XG4gICAgICAgIC8vIFRPRE86IHdoZW4gYW5pbWF0aW9uIGZpbmlzaCBhbmd1bGFyIGRlbGV0ZXMgYWxsIG9uRG9uZSBoYW5kbGVycy4gQWRkIGhhbmRsZXJzIGFnYWluIGlmIG5lZWRlZFxuICAgIH1cblxuICAgIHB1YmxpYyByZXNldCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbFBsYXllci5yZXNldCgpO1xuICAgICAgICAvLyBjYWxsaW5nIHJlc2V0IGRvZXMgbm90IGNoYW5nZSBoYXNTdGFydGVkIHRvIGZhbHNlLiBUaGlzIGlzIHdoeSB3ZSBhcmUgZG9pbmcgaXQgaGVyZSB2aWEgaW50ZXJuYWwgZmllbGRcbiAgICAgICAgKHRoaXMuaW50ZXJuYWxQbGF5ZXIgYXMgYW55KS5fc3RhcnRlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmludGVybmFsUGxheWVyLmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaGFzU3RhcnRlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxQbGF5ZXIuaGFzU3RhcnRlZCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25Eb25lKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFuaW1hdGlvbkVuZC5lbWl0KHsgb3duZXI6IHRoaXMgfSk7XG4gICAgfVxufVxuIl19
@@ -80,10 +80,12 @@ export class IgxTabHeaderComponent extends IgxTabHeaderDirective {
80
80
  /** @hidden @internal */
81
81
  ngAfterViewInit() {
82
82
  this.ngZone.runOutsideAngular(() => {
83
- this._resizeObserver = new (getResizeObserver())(() => {
84
- this.tabs.realignSelectedIndicator();
85
- });
86
- this._resizeObserver.observe(this.nativeElement);
83
+ if (this.platform.isBrowser) {
84
+ this._resizeObserver = new (getResizeObserver())(() => {
85
+ this.tabs.realignSelectedIndicator();
86
+ });
87
+ this._resizeObserver.observe(this.nativeElement);
88
+ }
87
89
  });
88
90
  }
89
91
  /** @hidden @internal */
@@ -126,4 +128,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
126
128
  type: HostListener,
127
129
  args: ['keydown', ['$event']]
128
130
  }] } });
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvdGFicy90YWJzL3RhYi1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL3RhYnMvdGFicy90YWItaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLFdBQVcsRUFBRSxZQUFZLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRW5ILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVoRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7O0FBVXJELE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxxQkFBcUI7SUFFNUQsd0JBQXdCO0lBQ3hCLElBQ1csdUJBQXVCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7SUFDN0IsQ0FBQztJQUVELHdCQUF3QjtJQUN4QixJQUNXLHVCQUF1QjtRQUM5QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO0lBQzdCLENBQUM7SUFRRCx3QkFBd0I7SUFDeEIsWUFDdUIsSUFBc0IsRUFDekMsR0FBd0IsRUFDeEIsVUFBbUMsRUFDbkMsUUFBc0IsRUFDZCxNQUFjLEVBQ2QsR0FBc0I7UUFFOUIsS0FBSyxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBUHBCLFNBQUksR0FBSixJQUFJLENBQWtCO1FBSWpDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxRQUFHLEdBQUgsR0FBRyxDQUFt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dUM7Z0JBT3pDLHVCQUF1QjtzQkFEakMsV0FBVzt1QkFBQyx1Q0FBdUM7Z0JBTzdDLFFBQVE7c0JBRGQsV0FBVzt1QkFBQyw2QkFBNkI7Z0JBbUJuQyxPQUFPO3NCQURiLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBOZ1pvbmUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSWd4VGFiSXRlbURpcmVjdGl2ZSB9IGZyb20gJy4uL3RhYi1pdGVtLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJZ3hUYWJIZWFkZXJEaXJlY3RpdmUgfSBmcm9tICcuLi90YWItaGVhZGVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJZ3hUYWJIZWFkZXJCYXNlIH0gZnJvbSAnLi4vdGFicy5iYXNlJztcbmltcG9ydCB7IElneFRhYnNDb21wb25lbnQgfSBmcm9tICcuL3RhYnMuY29tcG9uZW50JztcbmltcG9ydCB7IGdldFJlc2l6ZU9ic2VydmVyIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscyc7XG5pbXBvcnQgeyBQbGF0Zm9ybVV0aWwgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzJztcbmltcG9ydCB7IElneERpcmVjdGlvbmFsaXR5IH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGlyZWN0aW9uL2RpcmVjdGlvbmFsaXR5JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdpZ3gtdGFiLWhlYWRlcicsXG4gICAgdGVtcGxhdGVVcmw6ICd0YWItaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IElneFRhYkhlYWRlckJhc2UsIHVzZUV4aXN0aW5nOiBJZ3hUYWJIZWFkZXJDb21wb25lbnQgfV0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBJZ3hUYWJIZWFkZXJDb21wb25lbnQgZXh0ZW5kcyBJZ3hUYWJIZWFkZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtdGFic19faGVhZGVyLWl0ZW0tLXNlbGVjdGVkJylcbiAgICBwdWJsaWMgZ2V0IHByb3ZpZGVDc3NDbGFzc1NlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy50YWIuc2VsZWN0ZWQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtdGFic19faGVhZGVyLWl0ZW0tLWRpc2FibGVkJylcbiAgICBwdWJsaWMgZ2V0IHByb3ZpZGVDc3NDbGFzc0Rpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy50YWIuZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtdGFic19faGVhZGVyLWl0ZW0nKVxuICAgIHB1YmxpYyBjc3NDbGFzcyA9IHRydWU7XG5cbiAgICBwcml2YXRlIF9yZXNpemVPYnNlcnZlcjogUmVzaXplT2JzZXJ2ZXI7XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIG92ZXJyaWRlIHRhYnM6IElneFRhYnNDb21wb25lbnQsXG4gICAgICAgIHRhYjogSWd4VGFiSXRlbURpcmVjdGl2ZSxcbiAgICAgICAgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIHBsYXRmb3JtOiBQbGF0Zm9ybVV0aWwsXG4gICAgICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgICAgIHByaXZhdGUgZGlyOiBJZ3hEaXJlY3Rpb25hbGl0eVxuICAgICkge1xuICAgICAgICBzdXBlcih0YWJzLCB0YWIsIGVsZW1lbnRSZWYsIHBsYXRmb3JtKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgICBwdWJsaWMga2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBsZXQgdW5zdXBwb3J0ZWRLZXkgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgaXRlbXNBcnJheSA9IHRoaXMudGFicy5pdGVtcy50b0FycmF5KCk7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzSW5kZXggPSBpdGVtc0FycmF5LmluZGV4T2YodGhpcy50YWIpO1xuICAgICAgICBsZXQgbmV3SW5kZXggPSBwcmV2aW91c0luZGV4O1xuICAgICAgICBjb25zdCBoYXNEaXNhYmxlZEl0ZW1zID0gaXRlbXNBcnJheS5zb21lKChpdGVtKSA9PiBpdGVtLmRpc2FibGVkKTtcbiAgICAgICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgICAgICAgIGNhc2UgdGhpcy5wbGF0Zm9ybS5LRVlNQVAuQVJST1dfUklHSFQ6XG4gICAgICAgICAgICAgICAgbmV3SW5kZXggPSB0aGlzLmdldE5ld1NlbGVjdGlvbkluZGV4KG5ld0luZGV4LCBpdGVtc0FycmF5LCBldmVudC5rZXksIGhhc0Rpc2FibGVkSXRlbXMpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSB0aGlzLnBsYXRmb3JtLktFWU1BUC5BUlJPV19MRUZUOlxuICAgICAgICAgICAgICAgIG5ld0luZGV4ID0gdGhpcy5nZXROZXdTZWxlY3Rpb25JbmRleChuZXdJbmRleCwgaXRlbXNBcnJheSwgZXZlbnQua2V5LCBoYXNEaXNhYmxlZEl0ZW1zKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgdGhpcy5wbGF0Zm9ybS5LRVlNQVAuSE9NRTpcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIG5ld0luZGV4ID0gMDtcbiAgICAgICAgICAgICAgICB3aGlsZSAoaXRlbXNBcnJheVtuZXdJbmRleF0uZGlzYWJsZWQgJiYgbmV3SW5kZXggPCBpdGVtc0FycmF5Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBuZXdJbmRleCA9IG5ld0luZGV4ID09PSBpdGVtc0FycmF5Lmxlbmd0aCAtIDEgPyAwIDogbmV3SW5kZXggKyAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgdGhpcy5wbGF0Zm9ybS5LRVlNQVAuRU5EOlxuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgbmV3SW5kZXggPSBpdGVtc0FycmF5Lmxlbmd0aCAtIDE7XG4gICAgICAgICAgICAgICAgd2hpbGUgKGhhc0Rpc2FibGVkSXRlbXMgJiYgaXRlbXNBcnJheVtuZXdJbmRleF0uZGlzYWJsZWQgJiYgbmV3SW5kZXggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIG5ld0luZGV4ID0gbmV3SW5kZXggPT09IDAgPyBpdGVtc0FycmF5Lmxlbmd0aCAtIDEgOiBuZXdJbmRleCAtIDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSB0aGlzLnBsYXRmb3JtLktFWU1BUC5FTlRFUjpcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMudGFiLnBhbmVsQ29tcG9uZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB1bnN1cHBvcnRlZEtleSA9IHRydWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIHRoaXMucGxhdGZvcm0uS0VZTUFQLlNQQUNFOlxuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnRhYi5wYW5lbENvbXBvbmVudCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdW5zdXBwb3J0ZWRLZXkgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB1bnN1cHBvcnRlZEtleSA9IHRydWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXVuc3VwcG9ydGVkS2V5KSB7XG4gICAgICAgICAgICBpdGVtc0FycmF5W25ld0luZGV4XS5oZWFkZXJDb21wb25lbnQubmF0aXZlRWxlbWVudC5mb2N1cyh7cHJldmVudFNjcm9sbDp0cnVlfSk7XG4gICAgICAgICAgICBpZiAodGhpcy50YWIucGFuZWxDb21wb25lbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhYnMuc2VsZWN0ZWRJbmRleCA9IG5ld0luZGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXIgPSBuZXcgKGdldFJlc2l6ZU9ic2VydmVyKCkpKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhYnMucmVhbGlnblNlbGVjdGVkSW5kaWNhdG9yKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9yZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE5ld1NlbGVjdGlvbkluZGV4KG5ld0luZGV4OiBudW1iZXIsIGl0ZW1zQXJyYXk6IGFueVtdLCBrZXk6IHN0cmluZywgaGFzRGlzYWJsZWRJdGVtczogYm9vbGVhbik6IG51bWJlciB7XG4gICAgICAgIGlmICgoa2V5ID09PSB0aGlzLnBsYXRmb3JtLktFWU1BUC5BUlJPV19SSUdIVCAmJiAhdGhpcy5kaXIucnRsKSB8fCAoa2V5ID09PSB0aGlzLnBsYXRmb3JtLktFWU1BUC5BUlJPV19MRUZUICYmIHRoaXMuZGlyLnJ0bCkpIHtcbiAgICAgICAgICAgIG5ld0luZGV4ID0gbmV3SW5kZXggPT09IGl0ZW1zQXJyYXkubGVuZ3RoIC0gMSA/IDAgOiBuZXdJbmRleCArIDE7XG4gICAgICAgICAgICB3aGlsZSAoaGFzRGlzYWJsZWRJdGVtcyAmJiBpdGVtc0FycmF5W25ld0luZGV4XS5kaXNhYmxlZCAmJiBuZXdJbmRleCA8IGl0ZW1zQXJyYXkubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgbmV3SW5kZXggPSBuZXdJbmRleCA9PT0gaXRlbXNBcnJheS5sZW5ndGggLSAxID8gMCA6IG5ld0luZGV4ICsgMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5ld0luZGV4ID0gbmV3SW5kZXggPT09IDAgPyBpdGVtc0FycmF5Lmxlbmd0aCAtIDEgOiBuZXdJbmRleCAtIDE7XG4gICAgICAgICAgICB3aGlsZSAoaGFzRGlzYWJsZWRJdGVtcyAmJiBpdGVtc0FycmF5W25ld0luZGV4XS5kaXNhYmxlZCAmJiBuZXdJbmRleCA+PSAwKSB7XG4gICAgICAgICAgICAgICAgbmV3SW5kZXggPSBuZXdJbmRleCA9PT0gMCA/IGl0ZW1zQXJyYXkubGVuZ3RoIC0gMSA6IG5ld0luZGV4IC0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3SW5kZXg7XG4gICAgfVxufVxuXG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJpZ3gtcHJlZml4LFtpZ3hQcmVmaXhdXCI+PC9uZy1jb250ZW50PlxuXG48ZGl2IGNsYXNzPVwiaWd4LXRhYnNfX2hlYWRlci1pdGVtLWlubmVyXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG5cbjxuZy1jb250ZW50IHNlbGVjdD1cImlneC1zdWZmaXgsW2lneFN1ZmZpeF1cIj48L25nLWNvbnRlbnQ+XG4iXX0=
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvdGFicy90YWJzL3RhYi1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL3RhYnMvdGFicy90YWItaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLFdBQVcsRUFBRSxZQUFZLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRW5ILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVoRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7O0FBVXJELE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxxQkFBcUI7SUFFNUQsd0JBQXdCO0lBQ3hCLElBQ1csdUJBQXVCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7SUFDN0IsQ0FBQztJQUVELHdCQUF3QjtJQUN4QixJQUNXLHVCQUF1QjtRQUM5QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO0lBQzdCLENBQUM7SUFRRCx3QkFBd0I7SUFDeEIsWUFDdUIsSUFBc0IsRUFDekMsR0FBd0IsRUFDeEIsVUFBbUMsRUFDbkMsUUFBc0IsRUFDZCxNQUFjLEVBQ2QsR0FBc0I7UUFFOUIsS0FBSyxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBUHBCLFNBQUksR0FBSixJQUFJLENBQWtCO1FBSWpDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxRQUFHLEdBQUgsR0FBRyxDQUFt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QUMsY0FDbEUsSUFBSTtnT0FNTCx1QkFBdUI7c0JBRGpDLFdBQVc7dUJBQUMsdUNBQXVDO2dCQU96Qyx1QkFBdUI7c0JBRGpDLFdBQVc7dUJBQUMsdUNBQXVDO2dCQU83QyxRQUFRO3NCQURkLFdBQVc7dUJBQUMsNkJBQTZCO2dCQW1CbkMsT0FBTztzQkFEYixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgTmdab25lLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElneFRhYkl0ZW1EaXJlY3RpdmUgfSBmcm9tICcuLi90YWItaXRlbS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSWd4VGFiSGVhZGVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vdGFiLWhlYWRlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSWd4VGFiSGVhZGVyQmFzZSB9IGZyb20gJy4uL3RhYnMuYmFzZSc7XG5pbXBvcnQgeyBJZ3hUYWJzQ29tcG9uZW50IH0gZnJvbSAnLi90YWJzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBnZXRSZXNpemVPYnNlcnZlciB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgUGxhdGZvcm1VdGlsIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscyc7XG5pbXBvcnQgeyBJZ3hEaXJlY3Rpb25hbGl0eSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RpcmVjdGlvbi9kaXJlY3Rpb25hbGl0eSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnaWd4LXRhYi1oZWFkZXInLFxuICAgIHRlbXBsYXRlVXJsOiAndGFiLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBJZ3hUYWJIZWFkZXJCYXNlLCB1c2VFeGlzdGluZzogSWd4VGFiSGVhZGVyQ29tcG9uZW50IH1dLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSWd4VGFiSGVhZGVyQ29tcG9uZW50IGV4dGVuZHMgSWd4VGFiSGVhZGVyRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LXRhYnNfX2hlYWRlci1pdGVtLS1zZWxlY3RlZCcpXG4gICAgcHVibGljIGdldCBwcm92aWRlQ3NzQ2xhc3NTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGFiLnNlbGVjdGVkO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LXRhYnNfX2hlYWRlci1pdGVtLS1kaXNhYmxlZCcpXG4gICAgcHVibGljIGdldCBwcm92aWRlQ3NzQ2xhc3NEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGFiLmRpc2FibGVkO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LXRhYnNfX2hlYWRlci1pdGVtJylcbiAgICBwdWJsaWMgY3NzQ2xhc3MgPSB0cnVlO1xuXG4gICAgcHJpdmF0ZSBfcmVzaXplT2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyO1xuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBvdmVycmlkZSB0YWJzOiBJZ3hUYWJzQ29tcG9uZW50LFxuICAgICAgICB0YWI6IElneFRhYkl0ZW1EaXJlY3RpdmUsXG4gICAgICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBwbGF0Zm9ybTogUGxhdGZvcm1VdGlsLFxuICAgICAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICAgICAgICBwcml2YXRlIGRpcjogSWd4RGlyZWN0aW9uYWxpdHlcbiAgICApIHtcbiAgICAgICAgc3VwZXIodGFicywgdGFiLCBlbGVtZW50UmVmLCBwbGF0Zm9ybSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIGtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgbGV0IHVuc3VwcG9ydGVkS2V5ID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IGl0ZW1zQXJyYXkgPSB0aGlzLnRhYnMuaXRlbXMudG9BcnJheSgpO1xuICAgICAgICBjb25zdCBwcmV2aW91c0luZGV4ID0gaXRlbXNBcnJheS5pbmRleE9mKHRoaXMudGFiKTtcbiAgICAgICAgbGV0IG5ld0luZGV4ID0gcHJldmlvdXNJbmRleDtcbiAgICAgICAgY29uc3QgaGFzRGlzYWJsZWRJdGVtcyA9IGl0ZW1zQXJyYXkuc29tZSgoaXRlbSkgPT4gaXRlbS5kaXNhYmxlZCk7XG4gICAgICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICAgICAgICBjYXNlIHRoaXMucGxhdGZvcm0uS0VZTUFQLkFSUk9XX1JJR0hUOlxuICAgICAgICAgICAgICAgIG5ld0luZGV4ID0gdGhpcy5nZXROZXdTZWxlY3Rpb25JbmRleChuZXdJbmRleCwgaXRlbXNBcnJheSwgZXZlbnQua2V5LCBoYXNEaXNhYmxlZEl0ZW1zKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgdGhpcy5wbGF0Zm9ybS5LRVlNQVAuQVJST1dfTEVGVDpcbiAgICAgICAgICAgICAgICBuZXdJbmRleCA9IHRoaXMuZ2V0TmV3U2VsZWN0aW9uSW5kZXgobmV3SW5kZXgsIGl0ZW1zQXJyYXksIGV2ZW50LmtleSwgaGFzRGlzYWJsZWRJdGVtcyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIHRoaXMucGxhdGZvcm0uS0VZTUFQLkhPTUU6XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBuZXdJbmRleCA9IDA7XG4gICAgICAgICAgICAgICAgd2hpbGUgKGl0ZW1zQXJyYXlbbmV3SW5kZXhdLmRpc2FibGVkICYmIG5ld0luZGV4IDwgaXRlbXNBcnJheS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgbmV3SW5kZXggPSBuZXdJbmRleCA9PT0gaXRlbXNBcnJheS5sZW5ndGggLSAxID8gMCA6IG5ld0luZGV4ICsgMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIHRoaXMucGxhdGZvcm0uS0VZTUFQLkVORDpcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIG5ld0luZGV4ID0gaXRlbXNBcnJheS5sZW5ndGggLSAxO1xuICAgICAgICAgICAgICAgIHdoaWxlIChoYXNEaXNhYmxlZEl0ZW1zICYmIGl0ZW1zQXJyYXlbbmV3SW5kZXhdLmRpc2FibGVkICYmIG5ld0luZGV4ID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBuZXdJbmRleCA9IG5ld0luZGV4ID09PSAwID8gaXRlbXNBcnJheS5sZW5ndGggLSAxIDogbmV3SW5kZXggLSAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgdGhpcy5wbGF0Zm9ybS5LRVlNQVAuRU5URVI6XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnRhYi5wYW5lbENvbXBvbmVudCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdW5zdXBwb3J0ZWRLZXkgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSB0aGlzLnBsYXRmb3JtLktFWU1BUC5TUEFDRTpcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy50YWIucGFuZWxDb21wb25lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHVuc3VwcG9ydGVkS2V5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdW5zdXBwb3J0ZWRLZXkgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF1bnN1cHBvcnRlZEtleSkge1xuICAgICAgICAgICAgaXRlbXNBcnJheVtuZXdJbmRleF0uaGVhZGVyQ29tcG9uZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoe3ByZXZlbnRTY3JvbGw6dHJ1ZX0pO1xuICAgICAgICAgICAgaWYgKHRoaXMudGFiLnBhbmVsQ29tcG9uZW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy50YWJzLnNlbGVjdGVkSW5kZXggPSBuZXdJbmRleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnBsYXRmb3JtLmlzQnJvd3Nlcikge1xuICAgICAgICAgICAgICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyID0gbmV3IChnZXRSZXNpemVPYnNlcnZlcigpKSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFicy5yZWFsaWduU2VsZWN0ZWRJbmRpY2F0b3IoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLl9yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMubmF0aXZlRWxlbWVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXROZXdTZWxlY3Rpb25JbmRleChuZXdJbmRleDogbnVtYmVyLCBpdGVtc0FycmF5OiBhbnlbXSwga2V5OiBzdHJpbmcsIGhhc0Rpc2FibGVkSXRlbXM6IGJvb2xlYW4pOiBudW1iZXIge1xuICAgICAgICBpZiAoKGtleSA9PT0gdGhpcy5wbGF0Zm9ybS5LRVlNQVAuQVJST1dfUklHSFQgJiYgIXRoaXMuZGlyLnJ0bCkgfHwgKGtleSA9PT0gdGhpcy5wbGF0Zm9ybS5LRVlNQVAuQVJST1dfTEVGVCAmJiB0aGlzLmRpci5ydGwpKSB7XG4gICAgICAgICAgICBuZXdJbmRleCA9IG5ld0luZGV4ID09PSBpdGVtc0FycmF5Lmxlbmd0aCAtIDEgPyAwIDogbmV3SW5kZXggKyAxO1xuICAgICAgICAgICAgd2hpbGUgKGhhc0Rpc2FibGVkSXRlbXMgJiYgaXRlbXNBcnJheVtuZXdJbmRleF0uZGlzYWJsZWQgJiYgbmV3SW5kZXggPCBpdGVtc0FycmF5Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIG5ld0luZGV4ID0gbmV3SW5kZXggPT09IGl0ZW1zQXJyYXkubGVuZ3RoIC0gMSA/IDAgOiBuZXdJbmRleCArIDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBuZXdJbmRleCA9IG5ld0luZGV4ID09PSAwID8gaXRlbXNBcnJheS5sZW5ndGggLSAxIDogbmV3SW5kZXggLSAxO1xuICAgICAgICAgICAgd2hpbGUgKGhhc0Rpc2FibGVkSXRlbXMgJiYgaXRlbXNBcnJheVtuZXdJbmRleF0uZGlzYWJsZWQgJiYgbmV3SW5kZXggPj0gMCkge1xuICAgICAgICAgICAgICAgIG5ld0luZGV4ID0gbmV3SW5kZXggPT09IDAgPyBpdGVtc0FycmF5Lmxlbmd0aCAtIDEgOiBuZXdJbmRleCAtIDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ld0luZGV4O1xuICAgIH1cbn1cblxuIiwiPG5nLWNvbnRlbnQgc2VsZWN0PVwiaWd4LXByZWZpeCxbaWd4UHJlZml4XVwiPjwvbmctY29udGVudD5cblxuPGRpdiBjbGFzcz1cImlneC10YWJzX19oZWFkZXItaXRlbS1pbm5lclwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuXG48bmctY29udGVudCBzZWxlY3Q9XCJpZ3gtc3VmZml4LFtpZ3hTdWZmaXhdXCI+PC9uZy1jb250ZW50PlxuIl19
@@ -7,7 +7,8 @@ import { NgClass, NgFor, NgTemplateOutlet, NgIf } from '@angular/common';
7
7
  import { IgxIconComponent } from '../../icon/icon.component';
8
8
  import { IgxRippleDirective } from '../../directives/ripple/ripple.directive';
9
9
  import * as i0 from "@angular/core";
10
- import * as i1 from "../../services/direction/directionality";
10
+ import * as i1 from "../../core/utils";
11
+ import * as i2 from "../../services/direction/directionality";
11
12
  export const IgxTabsAlignment = /*@__PURE__*/ mkenum({
12
13
  start: 'start',
13
14
  end: 'end',
@@ -60,9 +61,10 @@ export class IgxTabsComponent extends IgxTabsDirective {
60
61
  this.realignSelectedIndicator();
61
62
  });
62
63
  }
63
- constructor(animationService, cdr, ngZone, dir) {
64
+ constructor(animationService, cdr, ngZone, platform, dir) {
64
65
  super(animationService, cdr, dir);
65
66
  this.ngZone = ngZone;
67
+ this.platform = platform;
66
68
  /** @hidden */
67
69
  this.defaultClass = true;
68
70
  /** @hidden */
@@ -75,12 +77,14 @@ export class IgxTabsComponent extends IgxTabsDirective {
75
77
  ngAfterViewInit() {
76
78
  super.ngAfterViewInit();
77
79
  this.ngZone.runOutsideAngular(() => {
78
- this._resizeObserver = new (getResizeObserver())(() => {
79
- this.updateScrollButtons();
80
- this.realignSelectedIndicator();
81
- });
82
- this._resizeObserver.observe(this.headerContainer.nativeElement);
83
- this._resizeObserver.observe(this.viewPort.nativeElement);
80
+ if (this.platform.isBrowser) {
81
+ this._resizeObserver = new (getResizeObserver())(() => {
82
+ this.updateScrollButtons();
83
+ this.realignSelectedIndicator();
84
+ });
85
+ this._resizeObserver.observe(this.headerContainer.nativeElement);
86
+ this._resizeObserver.observe(this.viewPort.nativeElement);
87
+ }
84
88
  });
85
89
  }
86
90
  /** @hidden @internal */
@@ -252,7 +256,7 @@ export class IgxTabsComponent extends IgxTabsDirective {
252
256
  getElementOffset(element) {
253
257
  return this.dir.rtl ? this.itemsWrapper.nativeElement.offsetWidth - element.offsetLeft - element.offsetWidth : element.offsetLeft;
254
258
  }
255
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: IgxTabsComponent, deps: [{ token: IgxAngularAnimationService }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i1.IgxDirectionality }], target: i0.ɵɵFactoryTarget.Component }); }
259
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: IgxTabsComponent, deps: [{ token: IgxAngularAnimationService }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i1.PlatformUtil }, { token: i2.IgxDirectionality }], target: i0.ɵɵFactoryTarget.Component }); }
256
260
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: IgxTabsComponent, isStandalone: true, selector: "igx-tabs", inputs: { tabAlignment: "tabAlignment" }, host: { properties: { "class.igx-tabs": "this.defaultClass" } }, providers: [{ provide: IgxTabsBase, useExisting: IgxTabsComponent }], viewQueries: [{ propertyName: "headerContainer", first: true, predicate: ["headerContainer"], descendants: true, static: true }, { propertyName: "viewPort", first: true, predicate: ["viewPort"], descendants: true, static: true }, { propertyName: "itemsWrapper", first: true, predicate: ["itemsWrapper"], descendants: true, static: true }, { propertyName: "itemsContainer", first: true, predicate: ["itemsContainer"], descendants: true, static: true }, { propertyName: "selectedIndicator", first: true, predicate: ["selectedIndicator"], descendants: true }, { propertyName: "scrollPrevButton", first: true, predicate: ["scrollPrevButton"], descendants: true }, { propertyName: "scrollNextButton", first: true, predicate: ["scrollNextButton"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div #headerContainer class=\"igx-tabs__header\">\n <button #scrollPrevButton type=\"button\" igxIconButton=\"flat\" igxRipple class=\"igx-tabs__header-button\" (click)=\"scrollPrev()\">\n <igx-icon>navigate_before</igx-icon>\n </button>\n <div #viewPort class=\"igx-tabs__header-content\">\n <div #itemsWrapper class=\"igx-tabs__header-wrapper\" role=\"tablist\">\n <div #itemsContainer class=\"igx-tabs__header-scroll\" [ngClass]=\"resolveHeaderScrollClasses()\">\n <ng-container *ngFor=\"let tab of items; let i = index\">\n <ng-container *ngTemplateOutlet=\"tab.headerTemplate\"></ng-container>\n </ng-container>\n </div>\n <div #selectedIndicator *ngIf=\"items.length > 0\" class=\"igx-tabs__header-active-indicator\">\n </div>\n </div>\n </div>\n <button #scrollNextButton type=\"button\" igxIconButton=\"flat\" igxRipple class=\"igx-tabs__header-button\" (click)=\"scrollNext()\">\n <igx-icon>navigate_next</igx-icon>\n </button>\n</div>\n<div class=\"igx-tabs__panels\">\n <ng-container *ngFor=\"let tab of items; let i = index\">\n <ng-container *ngTemplateOutlet=\"tab.panelTemplate\"></ng-container>\n </ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: IgxRippleDirective, selector: "[igxRipple]", inputs: ["igxRippleTarget", "igxRipple", "igxRippleDuration", "igxRippleCentered", "igxRippleDisabled"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
257
261
  }
258
262
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: IgxTabsComponent, decorators: [{
@@ -261,7 +265,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
261
265
  }], ctorParameters: () => [{ type: undefined, decorators: [{
262
266
  type: Inject,
263
267
  args: [IgxAngularAnimationService]
264
- }] }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i1.IgxDirectionality }], propDecorators: { tabAlignment: [{
268
+ }] }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i1.PlatformUtil }, { type: i2.IgxDirectionality }], propDecorators: { tabAlignment: [{
265
269
  type: Input
266
270
  }], headerContainer: [{
267
271
  type: ViewChild,
@@ -288,4 +292,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
288
292
  type: HostBinding,
289
293
  args: ['class.igx-tabs']
290
294
  }] } });
291
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvdGFicy90YWJzL3RhYnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL3RhYnMvdGFicy90YWJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0MsU0FBUyxFQUFjLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEosT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBR2hHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDM0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDckQsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMENBQTBDLENBQUM7OztBQUU5RSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxhQUFhLENBQUEsTUFBTSxDQUFDO0lBQ2hELEtBQUssRUFBRSxPQUFPO0lBQ2QsR0FBRyxFQUFFLEtBQUs7SUFDVixNQUFNLEVBQUUsUUFBUTtJQUNoQixPQUFPLEVBQUUsU0FBUztDQUNyQixDQUFDLENBQUM7QUFXSCxjQUFjO0FBQ2QsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDO0FBRXBCOzs7Ozs7Ozs7Ozs7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LE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBS3BDLGNBQWM7c0JBRHBCLFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUt0QyxpQkFBaUI7c0JBRHZCLFNBQVM7dUJBQUMsbUJBQW1CO2dCQUt2QixnQkFBZ0I7c0JBRHRCLFNBQVM7dUJBQUMsa0JBQWtCO2dCQUt0QixnQkFBZ0I7c0JBRHRCLFNBQVM7dUJBQUMsa0JBQWtCO2dCQUt0QixZQUFZO3NCQURsQixXQUFXO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbmplY3QsIElucHV0LCBOZ1pvbmUsIE9uRGVzdHJveSwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBnZXRSZXNpemVPYnNlcnZlciwgbWtlbnVtIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscyc7XG5pbXBvcnQgeyBJZ3hBbmd1bGFyQW5pbWF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FuaW1hdGlvbi9hbmd1bGFyLWFuaW1hdGlvbi1zZXJ2aWNlJztcbmltcG9ydCB7IEFuaW1hdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hbmltYXRpb24vYW5pbWF0aW9uJztcbmltcG9ydCB7IElneERpcmVjdGlvbmFsaXR5IH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGlyZWN0aW9uL2RpcmVjdGlvbmFsaXR5JztcbmltcG9ydCB7IElneFRhYnNCYXNlIH0gZnJvbSAnLi4vdGFicy5iYXNlJztcbmltcG9ydCB7IElneFRhYnNEaXJlY3RpdmUgfSBmcm9tICcuLi90YWJzLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ0ZvciwgTmdUZW1wbGF0ZU91dGxldCwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJZ3hJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vaWNvbi9pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJZ3hSaXBwbGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3JpcHBsZS9yaXBwbGUuZGlyZWN0aXZlJztcblxuZXhwb3J0IGNvbnN0IElneFRhYnNBbGlnbm1lbnQgPSAvKkBfX1BVUkVfXyovbWtlbnVtKHtcbiAgICBzdGFydDogJ3N0YXJ0JyxcbiAgICBlbmQ6ICdlbmQnLFxuICAgIGNlbnRlcjogJ2NlbnRlcicsXG4gICAganVzdGlmeTogJ2p1c3RpZnknXG59KTtcblxuLyoqIEBoaWRkZW4gKi9cbmNvbnN0IGVudW0gVGFiU2Nyb2xsQnV0dG9uU3R5bGUge1xuICAgIEVuYWJsZWQgPSAnZW5hYmxlZCcsXG4gICAgRGlzYWJsZWQgPSAnZGlzYWJsZWQnLFxuICAgIE5vdERpc3BsYXllZCA9ICdub3RfZGlzcGxheWVkJ1xufVxuXG5leHBvcnQgdHlwZSBJZ3hUYWJzQWxpZ25tZW50ID0gKHR5cGVvZiBJZ3hUYWJzQWxpZ25tZW50KVtrZXlvZiB0eXBlb2YgSWd4VGFic0FsaWdubWVudF07XG5cbi8qKiBAaGlkZGVuICovXG5sZXQgTkVYVF9UQUJfSUQgPSAwO1xuXG4vKipcbiAqIFRhYnMgY29tcG9uZW50IGlzIHVzZWQgdG8gb3JnYW5pemUgb3Igc3dpdGNoIGJldHdlZW4gc2ltaWxhciBkYXRhIHNldHMuXG4gKlxuICogQGlneE1vZHVsZSBJZ3hUYWJzTW9kdWxlXG4gKlxuICogQGlneFRoZW1lIGlneC10YWJzLXRoZW1lXG4gKlxuICogQGlneEtleXdvcmRzIHRhYnNcbiAqXG4gKiBAaWd4R3JvdXAgTGF5b3V0c1xuICpcbiAqIEByZW1hcmtzXG4gKiBUaGUgSWduaXRlIFVJIGZvciBBbmd1bGFyIFRhYnMgY29tcG9uZW50IHBsYWNlcyB0YWJzIGF0IHRoZSB0b3AgYW5kIGFsbG93cyBmb3Igc2Nyb2xsaW5nIHdoZW4gdGhlcmUgYXJlIG11bHRpcGxlIHRhYiBpdGVtcyBvbiB0aGUgc2NyZWVuLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8aWd4LXRhYnM+XG4gKiAgICAgPGlneC10YWItaXRlbT5cbiAqICAgICAgICAgPGlneC10YWItaGVhZGVyPlxuICogICAgICAgICAgICAgPGlneC1pY29uIGlneFRhYkhlYWRlckljb24+Zm9sZGVyPC9pZ3gtaWNvbj5cbiAqICAgICAgICAgICAgIDxzcGFuIGlneFRhYkhlYWRlckxhYmVsPlRhYiAxPC9zcGFuPlxuICogICAgICAgICA8L2lneC10YWItaGVhZGVyPlxuICogICAgICAgICA8aWd4LXRhYi1jb250ZW50PlxuICogICAgICAgICAgICAgQ29udGVudCAxXG4gKiAgICAgICAgIDwvaWd4LXRhYi1jb250ZW50PlxuICogICAgIDwvaWd4LXRhYi1pdGVtPlxuICogICAgIC4uLlxuICogPC9pZ3gtdGFicz5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2lneC10YWJzJyxcbiAgICB0ZW1wbGF0ZVVybDogJ3RhYnMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogSWd4VGFic0Jhc2UsIHVzZUV4aXN0aW5nOiBJZ3hUYWJzQ29tcG9uZW50IH1dLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0lneFJpcHBsZURpcmVjdGl2ZSwgSWd4SWNvbkNvbXBvbmVudCwgTmdDbGFzcywgTmdGb3IsIE5nVGVtcGxhdGVPdXRsZXQsIE5nSWZdXG59KVxuXG5leHBvcnQgY2xhc3MgSWd4VGFic0NvbXBvbmVudCBleHRlbmRzIElneFRhYnNEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgLyoqXG4gICAgICogR2V0cy9TZXRzIHRoZSB0YWIgYWxpZ25tZW50LiBEZWZhdWx0cyB0byBgc3RhcnRgLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCB0YWJBbGlnbm1lbnQoKTogc3RyaW5nIHwgSWd4VGFic0FsaWdubWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLl90YWJBbGlnbm1lbnQ7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCB0YWJBbGlnbm1lbnQodmFsdWU6IHN0cmluZyB8IElneFRhYnNBbGlnbm1lbnQpIHtcbiAgICAgICAgdGhpcy5fdGFiQWxpZ25tZW50ID0gdmFsdWU7XG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVNjcm9sbEJ1dHRvbnMoKTtcbiAgICAgICAgICAgIHRoaXMucmVhbGlnblNlbGVjdGVkSW5kaWNhdG9yKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnaGVhZGVyQ29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBwdWJsaWMgaGVhZGVyQ29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgndmlld1BvcnQnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIHB1YmxpYyB2aWV3UG9ydDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ2l0ZW1zV3JhcHBlcicsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgcHVibGljIGl0ZW1zV3JhcHBlcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ2l0ZW1zQ29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBwdWJsaWMgaXRlbXNDb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdzZWxlY3RlZEluZGljYXRvcicpXG4gICAgcHVibGljIHNlbGVjdGVkSW5kaWNhdG9yOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnc2Nyb2xsUHJldkJ1dHRvbicpXG4gICAgcHVibGljIHNjcm9sbFByZXZCdXR0b246IEVsZW1lbnRSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdzY3JvbGxOZXh0QnV0dG9uJylcbiAgICBwdWJsaWMgc2Nyb2xsTmV4dEJ1dHRvbjogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LXRhYnMnKVxuICAgIHB1YmxpYyBkZWZhdWx0Q2xhc3MgPSB0cnVlO1xuXG4gICAgLyoqICBAaGlkZGVuICovXG4gICAgcHVibGljIG9mZnNldCA9IDA7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBvdmVycmlkZSBjb21wb25lbnROYW1lID0gJ2lneC10YWJzJztcblxuICAgIHByaXZhdGUgX3RhYkFsaWdubWVudDogc3RyaW5nIHwgSWd4VGFic0FsaWdubWVudCA9ICdzdGFydCc7XG4gICAgcHJpdmF0ZSBfcmVzaXplT2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoSWd4QW5ndWxhckFuaW1hdGlvblNlcnZpY2UpIGFuaW1hdGlvblNlcnZpY2U6IEFuaW1hdGlvblNlcnZpY2UsXG4gICAgICAgIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgICAgIGRpcjogSWd4RGlyZWN0aW9uYWxpdHkpIHtcbiAgICAgICAgc3VwZXIoYW5pbWF0aW9uU2VydmljZSwgY2RyLCBkaXIpO1xuICAgIH1cblxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcHVibGljIG92ZXJyaWRlIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG5cbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXIgPSBuZXcgKGdldFJlc2l6ZU9ic2VydmVyKCkpKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVNjcm9sbEJ1dHRvbnMoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlYWxpZ25TZWxlY3RlZEluZGljYXRvcigpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLl9yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMuaGVhZGVyQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLnZpZXdQb3J0Lm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG5cbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwdWJsaWMgc2Nyb2xsUHJldigpIHtcbiAgICAgICAgdGhpcy5zY3JvbGwoZmFsc2UpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHVibGljIHNjcm9sbE5leHQoKSB7XG4gICAgICAgIHRoaXMuc2Nyb2xsKHRydWUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHVibGljIHJlYWxpZ25TZWxlY3RlZEluZGljYXRvcigpIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRJbmRleCA+PSAwICYmIHRoaXMuc2VsZWN0ZWRJbmRleCA8IHRoaXMuaXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBoZWFkZXIgPSB0aGlzLml0ZW1zLmdldCh0aGlzLnNlbGVjdGVkSW5kZXgpLmhlYWRlckNvbXBvbmVudC5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgdGhpcy5hbGlnblNlbGVjdGVkSW5kaWNhdG9yKGhlYWRlciwgMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHB1YmxpYyByZXNvbHZlSGVhZGVyU2Nyb2xsQ2xhc3NlcygpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICdpZ3gtdGFic19faGVhZGVyLXNjcm9sbC0tc3RhcnQnOiB0aGlzLnRhYkFsaWdubWVudCA9PT0gJ3N0YXJ0JyxcbiAgICAgICAgICAgICdpZ3gtdGFic19faGVhZGVyLXNjcm9sbC0tZW5kJzogdGhpcy50YWJBbGlnbm1lbnQgPT09ICdlbmQnLFxuICAgICAgICAgICAgJ2lneC10YWJzX19oZWFkZXItc2Nyb2xsLS1jZW50ZXInOiB0aGlzLnRhYkFsaWdubWVudCA9PT0gJ2NlbnRlcicsXG4gICAgICAgICAgICAnaWd4LXRhYnNfX2hlYWRlci1zY3JvbGwtLWp1c3RpZnknOiB0aGlzLnRhYkFsaWdubWVudCA9PT0gJ2p1c3RpZnknLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHNjcm9sbFRhYkhlYWRlckludG9WaWV3KCkge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZEluZGV4ID49IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHRhYkl0ZW1zID0gdGhpcy5pdGVtcy50b0FycmF5KCk7XG4gICAgICAgICAgICBjb25zdCB0YWJIZWFkZXJOYXRpdmVFbGVtZW50ID0gdGFiSXRlbXNbdGhpcy5zZWxlY3RlZEluZGV4XS5oZWFkZXJDb21wb25lbnQubmF0aXZlRWxlbWVudDtcblxuICAgICAgICAgICAgLy8gU2Nyb2xsIGxlZnQgaWYgdGhlcmUgaXMgbmVlZFxuICAgICAgICAgICAgaWYgKHRoaXMuZ2V0RWxlbWVudE9mZnNldCh0YWJIZWFkZXJOYXRpdmVFbGVtZW50KSA8IHRoaXMub2Zmc2V0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxFbGVtZW50KHRhYkhlYWRlck5hdGl2ZUVsZW1lbnQsIGZhbHNlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gU2Nyb2xsIHJpZ2h0IGlmIHRoZXJlIGlzIG5lZWRcbiAgICAgICAgICAgIGNvbnN0IHZpZXdQb3J0T2Zmc2V0V2lkdGggPSB0aGlzLnZpZXdQb3J0Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgICAgICAgICBjb25zdCBkZWx0YSA9ICh0aGlzLmdldEVsZW1lbnRPZmZzZXQodGFiSGVhZGVyTmF0aXZlRWxlbWVudCkgKyB0YWJIZWFkZXJOYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoKSAtICh2aWV3UG9ydE9mZnNldFdpZHRoICsgdGhpcy5vZmZzZXQpO1xuXG4gICAgICAgICAgICAvLyBGaXggZm9yIElFIDExLCBhIGRpZmZlcmVuY2UgaXMgYWNjdW11bGF0ZWQgZnJvbSB0aGUgd2lkdGhzIGNhbGN1bGF0aW9uc1xuICAgICAgICAgICAgaWYgKGRlbHRhID4gMSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsRWxlbWVudCh0YWJIZWFkZXJOYXRpdmVFbGVtZW50LCB0cnVlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5hbGlnblNlbGVjdGVkSW5kaWNhdG9yKHRhYkhlYWRlck5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5oaWRlU2VsZWN0ZWRJbmRpY2F0b3IoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIGdldE5leHRUYWJJZCgpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfVEFCX0lEKys7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgb25JdGVtQ2hhbmdlcygpIHtcbiAgICAgICAgc3VwZXIub25JdGVtQ2hhbmdlcygpO1xuXG4gICAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVTY3JvbGxCdXR0b25zKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWxpZ25TZWxlY3RlZEluZGljYXRvcihlbGVtZW50OiBIVE1MRWxlbWVudCwgZHVyYXRpb24gPSAwLjMpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRJbmRpY2F0b3IpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRpY2F0b3IubmF0aXZlRWxlbWVudC5zdHlsZS52aXNpYmlsaXR5ID0gJ3Zpc2libGUnO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEluZGljYXRvci5uYXRpdmVFbGVtZW50LnN0eWxlLnRyYW5zaXRpb25EdXJhdGlvbiA9IGR1cmF0aW9uID4gMCA/IGAke2R1cmF0aW9ufXNgIDogJ2luaXRpYWwnO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEluZGljYXRvci5uYXRpdmVFbGVtZW50LnN0eWxlLndpZHRoID0gYCR7ZWxlbWVudC5vZmZzZXRXaWR0aH1weGA7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSW5kaWNhdG9yLm5hdGl2ZUVsZW1lbnQuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZSgke2VsZW1lbnQub2Zmc2V0TGVmdH1weClgO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoaWRlU2VsZWN0ZWRJbmRpY2F0b3IoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkSW5kaWNhdG9yKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSW5kaWNhdG9yLm5hdGl2ZUVsZW1lbnQuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzY3JvbGwoc2Nyb2xsTmV4dDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBjb25zdCB0YWJzQXJyYXkgPSB0aGlzLml0ZW1zLnRvQXJyYXkoKTtcblxuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGFic0FycmF5Lmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgY29uc3QgdGFiID0gdGFic0FycmF5W2luZGV4XTtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0YWIuaGVhZGVyQ29tcG9uZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICBpZiAoc2Nyb2xsTmV4dCkge1xuICAgICAgICAgICAgICAgIGlmIChlbGVtZW50Lm9mZnNldFdpZHRoICsgdGhpcy5nZXRFbGVtZW50T2Zmc2V0KGVsZW1lbnQpID4gdGhpcy52aWV3UG9ydC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoICsgdGhpcy5vZmZzZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxFbGVtZW50KGVsZW1lbnQsIHNjcm9sbE5leHQpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmdldEVsZW1lbnRPZmZzZXQoZWxlbWVudCkgPj0gdGhpcy5vZmZzZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxFbGVtZW50KHRhYnNBcnJheVtpbmRleCAtIDFdLmhlYWRlckNvbXBvbmVudC5uYXRpdmVFbGVtZW50LCBzY3JvbGxOZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzY3JvbGxFbGVtZW50KGVsZW1lbnQ6IGFueSwgc2Nyb2xsTmV4dDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBjb25zdCB2aWV3UG9ydFdpZHRoID0gdGhpcy52aWV3UG9ydC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuXG4gICAgICAgIHRoaXMub2Zmc2V0ID0gKHNjcm9sbE5leHQpID8gZWxlbWVudC5vZmZzZXRXaWR0aCArIHRoaXMuZ2V0RWxlbWVudE9mZnNldChlbGVtZW50KSAtIHZpZXdQb3J0V2lkdGggOiB0aGlzLmdldEVsZW1lbnRPZmZzZXQoZWxlbWVudCk7XG4gICAgICAgIHRoaXMudmlld1BvcnQubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0ID0gdGhpcy5nZXRPZmZzZXQodGhpcy5vZmZzZXQpO1xuICAgICAgICB0aGlzLnVwZGF0ZVNjcm9sbEJ1dHRvbnMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVNjcm9sbEJ1dHRvbnMoKSB7XG4gICAgICAgIGNvbnN0IGl0ZW1zQ29udGFpbmVyV2lkdGggPSB0aGlzLmdldFRhYkl0ZW1zQ29udGFpbmVyV2lkdGgoKTtcblxuICAgICAgICBjb25zdCBzY3JvbGxQcmV2QnV0dG9uU3R5bGUgPSB0aGlzLnJlc29sdmVMZWZ0U2Nyb2xsQnV0dG9uU3R5bGUoaXRlbXNDb250YWluZXJXaWR0aCk7XG4gICAgICAgIHRoaXMuc2V0U2Nyb2xsQnV0dG9uU3R5bGUodGhpcy5zY3JvbGxQcmV2QnV0dG9uLm5hdGl2ZUVsZW1lbnQsIHNjcm9sbFByZXZCdXR0b25TdHlsZSk7XG5cbiAgICAgICAgY29uc3Qgc2Nyb2xsTmV4dEJ1dHRvblN0eWxlID0gdGhpcy5yZXNvbHZlUmlnaHRTY3JvbGxCdXR0b25TdHlsZShpdGVtc0NvbnRhaW5lcldpZHRoKTtcbiAgICAgICAgdGhpcy5zZXRTY3JvbGxCdXR0b25TdHlsZSh0aGlzLnNjcm9sbE5leHRCdXR0b24ubmF0aXZlRWxlbWVudCwgc2Nyb2xsTmV4dEJ1dHRvblN0eWxlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFNjcm9sbEJ1dHRvblN0eWxlKGJ1dHRvbjogSFRNTEJ1dHRvbkVsZW1lbnQsIGJ1dHRvblN0eWxlOiBUYWJTY3JvbGxCdXR0b25TdHlsZSkge1xuICAgICAgICBpZiAoYnV0dG9uU3R5bGUgPT09IFRhYlNjcm9sbEJ1dHRvblN0eWxlLkVuYWJsZWQpIHtcbiAgICAgICAgICAgIGJ1dHRvbi5kaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgYnV0dG9uLnN0eWxlLmRpc3BsYXkgPSAnJztcbiAgICAgICAgfSBlbHNlIGlmIChidXR0b25TdHlsZSA9PT0gVGFiU2Nyb2xsQnV0dG9uU3R5bGUuRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGJ1dHRvbi5kaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICBidXR0b24uc3R5bGUuZGlzcGxheSA9ICcnO1xuICAgICAgICB9IGVsc2UgaWYgKGJ1dHRvblN0eWxlID09PSBUYWJTY3JvbGxCdXR0b25TdHlsZS5Ob3REaXNwbGF5ZWQpIHtcbiAgICAgICAgICAgIGJ1dHRvbi5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICB9XG4gICAgfVxuICAgIHByaXZhdGUgcmVzb2x2ZUxlZnRTY3JvbGxCdXR0b25TdHlsZShpdGVtc0NvbnRhaW5lcldpZHRoOiBudW1iZXIpOiBUYWJTY3JvbGxCdXR0b25TdHlsZSB7XG4gICAgICAgIGNvbnN0IGhlYWRlckNvbnRhaW5lcldpZHRoID0gdGhpcy5oZWFkZXJDb250YWluZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICAgICAgY29uc3Qgb2Zmc2V0ID0gdGhpcy5vZmZzZXQ7XG5cbiAgICAgICAgaWYgKG9mZnNldCA9PT0gMCkge1xuICAgICAgICAgICAgLy8gRml4IGZvciBJRSAxMSwgYSBkaWZmZXJlbmNlIGlzIGFjY3VtdWxhdGVkIGZyb20gdGhlIHdpZHRocyBjYWxjdWxhdGlvbnMuXG4gICAgICAgICAgICBpZiAoaXRlbXNDb250YWluZXJXaWR0aCAtIGhlYWRlckNvbnRhaW5lcldpZHRoIDw9IDEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gVGFiU2Nyb2xsQnV0dG9uU3R5bGUuTm90RGlzcGxheWVkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIFRhYlNjcm9sbEJ1dHRvblN0eWxlLkRpc2FibGVkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFRhYlNjcm9sbEJ1dHRvblN0eWxlLkVuYWJsZWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc29sdmVSaWdodFNjcm9sbEJ1dHRvblN0eWxlKGl0ZW1zQ29udGFpbmVyV2lkdGg6IG51bWJlcik6IFRhYlNjcm9sbEJ1dHRvblN0eWxlIHtcbiAgICAgICAgY29uc3Qgdmlld1BvcnRXaWR0aCA9IHRoaXMudmlld1BvcnQubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICAgICAgY29uc3QgaGVhZGVyQ29udGFpbmVyV2lkdGggPSB0aGlzLmhlYWRlckNvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgICAgICBjb25zdCBvZmZzZXQgPSB0aGlzLm9mZnNldDtcbiAgICAgICAgY29uc3QgdG90YWwgPSBvZmZzZXQgKyB2aWV3UG9ydFdpZHRoO1xuXG4gICAgICAgIC8vIEZpeCBmb3IgSUUgMTEsIGEgZGlmZmVyZW5jZSBpcyBhY2N1bXVsYXRlZCBmcm9tIHRoZSB3aWR0aHMgY2FsY3VsYXRpb25zLlxuICAgICAgICBpZiAoaXRlbXNDb250YWluZXJXaWR0aCAtIGhlYWRlckNvbnRhaW5lcldpZHRoIDw9IDEgJiYgb2Zmc2V0ID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gVGFiU2Nyb2xsQnV0dG9uU3R5bGUuTm90RGlzcGxheWVkO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGl0ZW1zQ29udGFpbmVyV2lkdGggPiB0b3RhbCkge1xuICAgICAgICAgICAgcmV0dXJuIFRhYlNjcm9sbEJ1dHRvblN0eWxlLkVuYWJsZWQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gVGFiU2Nyb2xsQnV0dG9uU3R5bGUuRGlzYWJsZWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFRhYkl0ZW1zQ29udGFpbmVyV2lkdGgoKSB7XG4gICAgICAgIC8vIFdlIHVzZSB0aGlzIGhhY2t5IHdheSB0byBnZXQgdGhlIHdpZHRoIG9mIHRoZSBpdGVtc0NvbnRhaW5lcixcbiAgICAgICAgLy8gYmVjYXVzZSB0aGVyZSBpcyBpbmNvbnNpc3RlbmN5IGluIElFIHdlIGNhbm5vdCB1c2Ugb2Zmc2V0V2lkdGggb3Igc2Nyb2xsT2Zmc2V0LlxuICAgICAgICBjb25zdCBpdGVtc0NvbnRhaW5lckNoaWxkcmVuQ291bnQgPSB0aGlzLml0ZW1zQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoO1xuICAgICAgICBsZXQgaXRlbXNDb250YWluZXJXaWR0aCA9IDA7XG5cbiAgICAgICAgaWYgKGl0ZW1zQ29udGFpbmVyQ2hpbGRyZW5Db3VudCA+IDEpIHtcbiAgICAgICAgICAgIGNvbnN0IGxhc3RUYWIgPSB0aGlzLml0ZW1zQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5baXRlbXNDb250YWluZXJDaGlsZHJlbkNvdW50IC0gMV0gYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgICBpdGVtc0NvbnRhaW5lcldpZHRoID0gdGhpcy5nZXRFbGVtZW50T2Zmc2V0KGxhc3RUYWIpICsgbGFzdFRhYi5vZmZzZXRXaWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpdGVtc0NvbnRhaW5lcldpZHRoO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0T2Zmc2V0KG9mZnNldDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlyLnJ0bCA/IC1vZmZzZXQgOiBvZmZzZXQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRFbGVtZW50T2Zmc2V0KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlyLnJ0bCA/IHRoaXMuaXRlbXNXcmFwcGVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggLSBlbGVtZW50Lm9mZnNldExlZnQgLSBlbGVtZW50Lm9mZnNldFdpZHRoIDogZWxlbWVudC5vZmZzZXRMZWZ0O1xuICAgIH1cbn1cblxuIiwiPGRpdiAjaGVhZGVyQ29udGFpbmVyIGNsYXNzPVwiaWd4LXRhYnNfX2hlYWRlclwiPlxuICAgIDxidXR0b24gI3Njcm9sbFByZXZCdXR0b24gdHlwZT1cImJ1dHRvblwiIGlneEljb25CdXR0b249XCJmbGF0XCIgaWd4UmlwcGxlIGNsYXNzPVwiaWd4LXRhYnNfX2hlYWRlci1idXR0b25cIiAoY2xpY2spPVwic2Nyb2xsUHJldigpXCI+XG4gICAgICAgIDxpZ3gtaWNvbj5uYXZpZ2F0ZV9iZWZvcmU8L2lneC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICAgIDxkaXYgI3ZpZXdQb3J0IGNsYXNzPVwiaWd4LXRhYnNfX2hlYWRlci1jb250ZW50XCI+XG4gICAgICAgIDxkaXYgI2l0ZW1zV3JhcHBlciBjbGFzcz1cImlneC10YWJzX19oZWFkZXItd3JhcHBlclwiIHJvbGU9XCJ0YWJsaXN0XCI+XG4gICAgICAgICAgICA8ZGl2ICNpdGVtc0NvbnRhaW5lciBjbGFzcz1cImlneC10YWJzX19oZWFkZXItc2Nyb2xsXCIgW25nQ2xhc3NdPVwicmVzb2x2ZUhlYWRlclNjcm9sbENsYXNzZXMoKVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHRhYiBvZiBpdGVtczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGFiLmhlYWRlclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgI3NlbGVjdGVkSW5kaWNhdG9yICpuZ0lmPVwiaXRlbXMubGVuZ3RoID4gMFwiIGNsYXNzPVwiaWd4LXRhYnNfX2hlYWRlci1hY3RpdmUtaW5kaWNhdG9yXCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGJ1dHRvbiAjc2Nyb2xsTmV4dEJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgaWd4SWNvbkJ1dHRvbj1cImZsYXRcIiBpZ3hSaXBwbGUgY2xhc3M9XCJpZ3gtdGFic19faGVhZGVyLWJ1dHRvblwiIChjbGljayk9XCJzY3JvbGxOZXh0KClcIj5cbiAgICAgICAgPGlneC1pY29uPm5hdmlnYXRlX25leHQ8L2lneC1pY29uPlxuICAgIDwvYnV0dG9uPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiaWd4LXRhYnNfX3BhbmVsc1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHRhYiBvZiBpdGVtczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGFiLnBhbmVsVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
295
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvdGFicy90YWJzL3RhYnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL3RhYnMvdGFicy90YWJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0MsU0FBUyxFQUFjLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEosT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBZ0IsTUFBTSxrQkFBa0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUdoRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOzs7O0FBRTlFLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLGFBQWEsQ0FBQSxNQUFNLENBQUM7SUFDaEQsS0FBSyxFQUFFLE9BQU87SUFDZCxHQUFHLEVBQUUsS0FBSztJQUNWLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLE9BQU8sRUFBRSxTQUFTO0NBQ3JCLENBQUMsQ0FBQztBQVdILGNBQWM7QUFDZCxJQUFJLFdBQVcsR0FBRyxDQUFDLENBQUM7QUFFcEI7Ozs7Ozs7Ozs7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QVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFLaEMsWUFBWTtzQkFEbEIsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUtwQyxjQUFjO3NCQURwQixTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFLdEMsaUJBQWlCO3NCQUR2QixTQUFTO3VCQUFDLG1CQUFtQjtnQkFLdkIsZ0JBQWdCO3NCQUR0QixTQUFTO3VCQUFDLGtCQUFrQjtnQkFLdEIsZ0JBQWdCO3NCQUR0QixTQUFTO3VCQUFDLGtCQUFrQjtnQkFLdEIsWUFBWTtzQkFEbEIsV0FBVzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5qZWN0LCBJbnB1dCwgTmdab25lLCBPbkRlc3Ryb3ksIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0UmVzaXplT2JzZXJ2ZXIsIG1rZW51bSwgUGxhdGZvcm1VdGlsIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscyc7XG5pbXBvcnQgeyBJZ3hBbmd1bGFyQW5pbWF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FuaW1hdGlvbi9hbmd1bGFyLWFuaW1hdGlvbi1zZXJ2aWNlJztcbmltcG9ydCB7IEFuaW1hdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hbmltYXRpb24vYW5pbWF0aW9uJztcbmltcG9ydCB7IElneERpcmVjdGlvbmFsaXR5IH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGlyZWN0aW9uL2RpcmVjdGlvbmFsaXR5JztcbmltcG9ydCB7IElneFRhYnNCYXNlIH0gZnJvbSAnLi4vdGFicy5iYXNlJztcbmltcG9ydCB7IElneFRhYnNEaXJlY3RpdmUgfSBmcm9tICcuLi90YWJzLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ0ZvciwgTmdUZW1wbGF0ZU91dGxldCwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJZ3hJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vaWNvbi9pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJZ3hSaXBwbGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3JpcHBsZS9yaXBwbGUuZGlyZWN0aXZlJztcblxuZXhwb3J0IGNvbnN0IElneFRhYnNBbGlnbm1lbnQgPSAvKkBfX1BVUkVfXyovbWtlbnVtKHtcbiAgICBzdGFydDogJ3N0YXJ0JyxcbiAgICBlbmQ6ICdlbmQnLFxuICAgIGNlbnRlcjogJ2NlbnRlcicsXG4gICAganVzdGlmeTogJ2p1c3RpZnknXG59KTtcblxuLyoqIEBoaWRkZW4gKi9cbmNvbnN0IGVudW0gVGFiU2Nyb2xsQnV0dG9uU3R5bGUge1xuICAgIEVuYWJsZWQgPSAnZW5hYmxlZCcsXG4gICAgRGlzYWJsZWQgPSAnZGlzYWJsZWQnLFxuICAgIE5vdERpc3BsYXllZCA9ICdub3RfZGlzcGxheWVkJ1xufVxuXG5leHBvcnQgdHlwZSBJZ3hUYWJzQWxpZ25tZW50ID0gKHR5cGVvZiBJZ3hUYWJzQWxpZ25tZW50KVtrZXlvZiB0eXBlb2YgSWd4VGFic0FsaWdubWVudF07XG5cbi8qKiBAaGlkZGVuICovXG5sZXQgTkVYVF9UQUJfSUQgPSAwO1xuXG4vKipcbiAqIFRhYnMgY29tcG9uZW50IGlzIHVzZWQgdG8gb3JnYW5pemUgb3Igc3dpdGNoIGJldHdlZW4gc2ltaWxhciBkYXRhIHNldHMuXG4gKlxuICogQGlneE1vZHVsZSBJZ3hUYWJzTW9kdWxlXG4gKlxuICogQGlneFRoZW1lIGlneC10YWJzLXRoZW1lXG4gKlxuICogQGlneEtleXdvcmRzIHRhYnNcbiAqXG4gKiBAaWd4R3JvdXAgTGF5b3V0c1xuICpcbiAqIEByZW1hcmtzXG4gKiBUaGUgSWduaXRlIFVJIGZvciBBbmd1bGFyIFRhYnMgY29tcG9uZW50IHBsYWNlcyB0YWJzIGF0IHRoZSB0b3AgYW5kIGFsbG93cyBmb3Igc2Nyb2xsaW5nIHdoZW4gdGhlcmUgYXJlIG11bHRpcGxlIHRhYiBpdGVtcyBvbiB0aGUgc2NyZWVuLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8aWd4LXRhYnM+XG4gKiAgICAgPGlneC10YWItaXRlbT5cbiAqICAgICAgICAgPGlneC10YWItaGVhZGVyPlxuICogICAgICAgICAgICAgPGlneC1pY29uIGlneFRhYkhlYWRlckljb24+Zm9sZGVyPC9pZ3gtaWNvbj5cbiAqICAgICAgICAgICAgIDxzcGFuIGlneFRhYkhlYWRlckxhYmVsPlRhYiAxPC9zcGFuPlxuICogICAgICAgICA8L2lneC10YWItaGVhZGVyPlxuICogICAgICAgICA8aWd4LXRhYi1jb250ZW50PlxuICogICAgICAgICAgICAgQ29udGVudCAxXG4gKiAgICAgICAgIDwvaWd4LXRhYi1jb250ZW50PlxuICogICAgIDwvaWd4LXRhYi1pdGVtPlxuICogICAgIC4uLlxuICogPC9pZ3gtdGFicz5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2lneC10YWJzJyxcbiAgICB0ZW1wbGF0ZVVybDogJ3RhYnMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogSWd4VGFic0Jhc2UsIHVzZUV4aXN0aW5nOiBJZ3hUYWJzQ29tcG9uZW50IH1dLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0lneFJpcHBsZURpcmVjdGl2ZSwgSWd4SWNvbkNvbXBvbmVudCwgTmdDbGFzcywgTmdGb3IsIE5nVGVtcGxhdGVPdXRsZXQsIE5nSWZdXG59KVxuXG5leHBvcnQgY2xhc3MgSWd4VGFic0NvbXBvbmVudCBleHRlbmRzIElneFRhYnNEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgLyoqXG4gICAgICogR2V0cy9TZXRzIHRoZSB0YWIgYWxpZ25tZW50LiBEZWZhdWx0cyB0byBgc3RhcnRgLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCB0YWJBbGlnbm1lbnQoKTogc3RyaW5nIHwgSWd4VGFic0FsaWdubWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLl90YWJBbGlnbm1lbnQ7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCB0YWJBbGlnbm1lbnQodmFsdWU6IHN0cmluZyB8IElneFRhYnNBbGlnbm1lbnQpIHtcbiAgICAgICAgdGhpcy5fdGFiQWxpZ25tZW50ID0gdmFsdWU7XG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVNjcm9sbEJ1dHRvbnMoKTtcbiAgICAgICAgICAgIHRoaXMucmVhbGlnblNlbGVjdGVkSW5kaWNhdG9yKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnaGVhZGVyQ29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBwdWJsaWMgaGVhZGVyQ29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgndmlld1BvcnQnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIHB1YmxpYyB2aWV3UG9ydDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ2l0ZW1zV3JhcHBlcicsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgcHVibGljIGl0ZW1zV3JhcHBlcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ2l0ZW1zQ29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBwdWJsaWMgaXRlbXNDb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdzZWxlY3RlZEluZGljYXRvcicpXG4gICAgcHVibGljIHNlbGVjdGVkSW5kaWNhdG9yOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnc2Nyb2xsUHJldkJ1dHRvbicpXG4gICAgcHVibGljIHNjcm9sbFByZXZCdXR0b246IEVsZW1lbnRSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdzY3JvbGxOZXh0QnV0dG9uJylcbiAgICBwdWJsaWMgc2Nyb2xsTmV4dEJ1dHRvbjogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LXRhYnMnKVxuICAgIHB1YmxpYyBkZWZhdWx0Q2xhc3MgPSB0cnVlO1xuXG4gICAgLyoqICBAaGlkZGVuICovXG4gICAgcHVibGljIG9mZnNldCA9IDA7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBvdmVycmlkZSBjb21wb25lbnROYW1lID0gJ2lneC10YWJzJztcblxuICAgIHByaXZhdGUgX3RhYkFsaWdubWVudDogc3RyaW5nIHwgSWd4VGFic0FsaWdubWVudCA9ICdzdGFydCc7XG4gICAgcHJpdmF0ZSBfcmVzaXplT2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoSWd4QW5ndWxhckFuaW1hdGlvblNlcnZpY2UpIGFuaW1hdGlvblNlcnZpY2U6IEFuaW1hdGlvblNlcnZpY2UsXG4gICAgICAgIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgICAgIHByaXZhdGUgcGxhdGZvcm06IFBsYXRmb3JtVXRpbCxcbiAgICAgICAgZGlyOiBJZ3hEaXJlY3Rpb25hbGl0eSkge1xuICAgICAgICBzdXBlcihhbmltYXRpb25TZXJ2aWNlLCBjZHIsIGRpcik7XG4gICAgfVxuXG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcblxuICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5wbGF0Zm9ybS5pc0Jyb3dzZXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9yZXNpemVPYnNlcnZlciA9IG5ldyAoZ2V0UmVzaXplT2JzZXJ2ZXIoKSkoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVNjcm9sbEJ1dHRvbnMoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWFsaWduU2VsZWN0ZWRJbmRpY2F0b3IoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLl9yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMuaGVhZGVyQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy52aWV3UG9ydC5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcHVibGljIG92ZXJyaWRlIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuXG4gICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHVibGljIHNjcm9sbFByZXYoKSB7XG4gICAgICAgIHRoaXMuc2Nyb2xsKGZhbHNlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHB1YmxpYyBzY3JvbGxOZXh0KCkge1xuICAgICAgICB0aGlzLnNjcm9sbCh0cnVlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHB1YmxpYyByZWFsaWduU2VsZWN0ZWRJbmRpY2F0b3IoKSB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkSW5kZXggPj0gMCAmJiB0aGlzLnNlbGVjdGVkSW5kZXggPCB0aGlzLml0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgaGVhZGVyID0gdGhpcy5pdGVtcy5nZXQodGhpcy5zZWxlY3RlZEluZGV4KS5oZWFkZXJDb21wb25lbnQubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgIHRoaXMuYWxpZ25TZWxlY3RlZEluZGljYXRvcihoZWFkZXIsIDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwdWJsaWMgcmVzb2x2ZUhlYWRlclNjcm9sbENsYXNzZXMoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAnaWd4LXRhYnNfX2hlYWRlci1zY3JvbGwtLXN0YXJ0JzogdGhpcy50YWJBbGlnbm1lbnQgPT09ICdzdGFydCcsXG4gICAgICAgICAgICAnaWd4LXRhYnNfX2hlYWRlci1zY3JvbGwtLWVuZCc6IHRoaXMudGFiQWxpZ25tZW50ID09PSAnZW5kJyxcbiAgICAgICAgICAgICdpZ3gtdGFic19faGVhZGVyLXNjcm9sbC0tY2VudGVyJzogdGhpcy50YWJBbGlnbm1lbnQgPT09ICdjZW50ZXInLFxuICAgICAgICAgICAgJ2lneC10YWJzX19oZWFkZXItc2Nyb2xsLS1qdXN0aWZ5JzogdGhpcy50YWJBbGlnbm1lbnQgPT09ICdqdXN0aWZ5JyxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBvdmVycmlkZSBzY3JvbGxUYWJIZWFkZXJJbnRvVmlldygpIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRJbmRleCA+PSAwKSB7XG4gICAgICAgICAgICBjb25zdCB0YWJJdGVtcyA9IHRoaXMuaXRlbXMudG9BcnJheSgpO1xuICAgICAgICAgICAgY29uc3QgdGFiSGVhZGVyTmF0aXZlRWxlbWVudCA9IHRhYkl0ZW1zW3RoaXMuc2VsZWN0ZWRJbmRleF0uaGVhZGVyQ29tcG9uZW50Lm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgICAgIC8vIFNjcm9sbCBsZWZ0IGlmIHRoZXJlIGlzIG5lZWRcbiAgICAgICAgICAgIGlmICh0aGlzLmdldEVsZW1lbnRPZmZzZXQodGFiSGVhZGVyTmF0aXZlRWxlbWVudCkgPCB0aGlzLm9mZnNldCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsRWxlbWVudCh0YWJIZWFkZXJOYXRpdmVFbGVtZW50LCBmYWxzZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFNjcm9sbCByaWdodCBpZiB0aGVyZSBpcyBuZWVkXG4gICAgICAgICAgICBjb25zdCB2aWV3UG9ydE9mZnNldFdpZHRoID0gdGhpcy52aWV3UG9ydC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgICAgICAgICAgY29uc3QgZGVsdGEgPSAodGhpcy5nZXRFbGVtZW50T2Zmc2V0KHRhYkhlYWRlck5hdGl2ZUVsZW1lbnQpICsgdGFiSGVhZGVyTmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCkgLSAodmlld1BvcnRPZmZzZXRXaWR0aCArIHRoaXMub2Zmc2V0KTtcblxuICAgICAgICAgICAgLy8gRml4IGZvciBJRSAxMSwgYSBkaWZmZXJlbmNlIGlzIGFjY3VtdWxhdGVkIGZyb20gdGhlIHdpZHRocyBjYWxjdWxhdGlvbnNcbiAgICAgICAgICAgIGlmIChkZWx0YSA+IDEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbEVsZW1lbnQodGFiSGVhZGVyTmF0aXZlRWxlbWVudCwgdHJ1ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuYWxpZ25TZWxlY3RlZEluZGljYXRvcih0YWJIZWFkZXJOYXRpdmVFbGVtZW50KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaGlkZVNlbGVjdGVkSW5kaWNhdG9yKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBnZXROZXh0VGFiSWQoKSB7XG4gICAgICAgIHJldHVybiBORVhUX1RBQl9JRCsrO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIG9uSXRlbUNoYW5nZXMoKSB7XG4gICAgICAgIHN1cGVyLm9uSXRlbUNoYW5nZXMoKTtcblxuICAgICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlU2Nyb2xsQnV0dG9ucygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFsaWduU2VsZWN0ZWRJbmRpY2F0b3IoZWxlbWVudDogSFRNTEVsZW1lbnQsIGR1cmF0aW9uID0gMC4zKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkSW5kaWNhdG9yKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSW5kaWNhdG9yLm5hdGl2ZUVsZW1lbnQuc3R5bGUudmlzaWJpbGl0eSA9ICd2aXNpYmxlJztcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRpY2F0b3IubmF0aXZlRWxlbWVudC5zdHlsZS50cmFuc2l0aW9uRHVyYXRpb24gPSBkdXJhdGlvbiA+IDAgPyBgJHtkdXJhdGlvbn1zYCA6ICdpbml0aWFsJztcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRpY2F0b3IubmF0aXZlRWxlbWVudC5zdHlsZS53aWR0aCA9IGAke2VsZW1lbnQub2Zmc2V0V2lkdGh9cHhgO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEluZGljYXRvci5uYXRpdmVFbGVtZW50LnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGUoJHtlbGVtZW50Lm9mZnNldExlZnR9cHgpYDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaGlkZVNlbGVjdGVkSW5kaWNhdG9yKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZEluZGljYXRvcikge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEluZGljYXRvci5uYXRpdmVFbGVtZW50LnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2Nyb2xsKHNjcm9sbE5leHQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdGFic0FycmF5ID0gdGhpcy5pdGVtcy50b0FycmF5KCk7XG5cbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHRhYnNBcnJheS5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgICAgIGNvbnN0IHRhYiA9IHRhYnNBcnJheVtpbmRleF07XG4gICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gdGFiLmhlYWRlckNvbXBvbmVudC5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgaWYgKHNjcm9sbE5leHQpIHtcbiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5vZmZzZXRXaWR0aCArIHRoaXMuZ2V0RWxlbWVudE9mZnNldChlbGVtZW50KSA+IHRoaXMudmlld1BvcnQubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCArIHRoaXMub2Zmc2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsRWxlbWVudChlbGVtZW50LCBzY3JvbGxOZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5nZXRFbGVtZW50T2Zmc2V0KGVsZW1lbnQpID49IHRoaXMub2Zmc2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsRWxlbWVudCh0YWJzQXJyYXlbaW5kZXggLSAxXS5oZWFkZXJDb21wb25lbnQubmF0aXZlRWxlbWVudCwgc2Nyb2xsTmV4dCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2Nyb2xsRWxlbWVudChlbGVtZW50OiBhbnksIHNjcm9sbE5leHQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgdmlld1BvcnRXaWR0aCA9IHRoaXMudmlld1BvcnQubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcblxuICAgICAgICB0aGlzLm9mZnNldCA9IChzY3JvbGxOZXh0KSA/IGVsZW1lbnQub2Zmc2V0V2lkdGggKyB0aGlzLmdldEVsZW1lbnRPZmZzZXQoZWxlbWVudCkgLSB2aWV3UG9ydFdpZHRoIDogdGhpcy5nZXRFbGVtZW50T2Zmc2V0KGVsZW1lbnQpO1xuICAgICAgICB0aGlzLnZpZXdQb3J0Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCA9IHRoaXMuZ2V0T2Zmc2V0KHRoaXMub2Zmc2V0KTtcbiAgICAgICAgdGhpcy51cGRhdGVTY3JvbGxCdXR0b25zKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVTY3JvbGxCdXR0b25zKCkge1xuICAgICAgICBjb25zdCBpdGVtc0NvbnRhaW5lcldpZHRoID0gdGhpcy5nZXRUYWJJdGVtc0NvbnRhaW5lcldpZHRoKCk7XG5cbiAgICAgICAgY29uc3Qgc2Nyb2xsUHJldkJ1dHRvblN0eWxlID0gdGhpcy5yZXNvbHZlTGVmdFNjcm9sbEJ1dHRvblN0eWxlKGl0ZW1zQ29udGFpbmVyV2lkdGgpO1xuICAgICAgICB0aGlzLnNldFNjcm9sbEJ1dHRvblN0eWxlKHRoaXMuc2Nyb2xsUHJldkJ1dHRvbi5uYXRpdmVFbGVtZW50LCBzY3JvbGxQcmV2QnV0dG9uU3R5bGUpO1xuXG4gICAgICAgIGNvbnN0IHNjcm9sbE5leHRCdXR0b25TdHlsZSA9IHRoaXMucmVzb2x2ZVJpZ2h0U2Nyb2xsQnV0dG9uU3R5bGUoaXRlbXNDb250YWluZXJXaWR0aCk7XG4gICAgICAgIHRoaXMuc2V0U2Nyb2xsQnV0dG9uU3R5bGUodGhpcy5zY3JvbGxOZXh0QnV0dG9uLm5hdGl2ZUVsZW1lbnQsIHNjcm9sbE5leHRCdXR0b25TdHlsZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRTY3JvbGxCdXR0b25TdHlsZShidXR0b246IEhUTUxCdXR0b25FbGVtZW50LCBidXR0b25TdHlsZTogVGFiU2Nyb2xsQnV0dG9uU3R5bGUpIHtcbiAgICAgICAgaWYgKGJ1dHRvblN0eWxlID09PSBUYWJTY3JvbGxCdXR0b25TdHlsZS5FbmFibGVkKSB7XG4gICAgICAgICAgICBidXR0b24uZGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGJ1dHRvbi5zdHlsZS5kaXNwbGF5ID0gJyc7XG4gICAgICAgIH0gZWxzZSBpZiAoYnV0dG9uU3R5bGUgPT09IFRhYlNjcm9sbEJ1dHRvblN0eWxlLkRpc2FibGVkKSB7XG4gICAgICAgICAgICBidXR0b24uZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICAgICAgYnV0dG9uLnN0eWxlLmRpc3BsYXkgPSAnJztcbiAgICAgICAgfSBlbHNlIGlmIChidXR0b25TdHlsZSA9PT0gVGFiU2Nyb2xsQnV0dG9uU3R5bGUuTm90RGlzcGxheWVkKSB7XG4gICAgICAgICAgICBidXR0b24uc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgfVxuICAgIH1cbiAgICBwcml2YXRlIHJlc29sdmVMZWZ0U2Nyb2xsQnV0dG9uU3R5bGUoaXRlbXNDb250YWluZXJXaWR0aDogbnVtYmVyKTogVGFiU2Nyb2xsQnV0dG9uU3R5bGUge1xuICAgICAgICBjb25zdCBoZWFkZXJDb250YWluZXJXaWR0aCA9IHRoaXMuaGVhZGVyQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgICAgIGNvbnN0IG9mZnNldCA9IHRoaXMub2Zmc2V0O1xuXG4gICAgICAgIGlmIChvZmZzZXQgPT09IDApIHtcbiAgICAgICAgICAgIC8vIEZpeCBmb3IgSUUgMTEsIGEgZGlmZmVyZW5jZSBpcyBhY2N1bXVsYXRlZCBmcm9tIHRoZSB3aWR0aHMgY2FsY3VsYXRpb25zLlxuICAgICAgICAgICAgaWYgKGl0ZW1zQ29udGFpbmVyV2lkdGggLSBoZWFkZXJDb250YWluZXJXaWR0aCA8PSAxKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFRhYlNjcm9sbEJ1dHRvblN0eWxlLk5vdERpc3BsYXllZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBUYWJTY3JvbGxCdXR0b25TdHlsZS5EaXNhYmxlZDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBUYWJTY3JvbGxCdXR0b25TdHlsZS5FbmFibGVkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNvbHZlUmlnaHRTY3JvbGxCdXR0b25TdHlsZShpdGVtc0NvbnRhaW5lcldpZHRoOiBudW1iZXIpOiBUYWJTY3JvbGxCdXR0b25TdHlsZSB7XG4gICAgICAgIGNvbnN0IHZpZXdQb3J0V2lkdGggPSB0aGlzLnZpZXdQb3J0Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgICAgIGNvbnN0IGhlYWRlckNvbnRhaW5lcldpZHRoID0gdGhpcy5oZWFkZXJDb250YWluZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICAgICAgY29uc3Qgb2Zmc2V0ID0gdGhpcy5vZmZzZXQ7XG4gICAgICAgIGNvbnN0IHRvdGFsID0gb2Zmc2V0ICsgdmlld1BvcnRXaWR0aDtcblxuICAgICAgICAvLyBGaXggZm9yIElFIDExLCBhIGRpZmZlcmVuY2UgaXMgYWNjdW11bGF0ZWQgZnJvbSB0aGUgd2lkdGhzIGNhbGN1bGF0aW9ucy5cbiAgICAgICAgaWYgKGl0ZW1zQ29udGFpbmVyV2lkdGggLSBoZWFkZXJDb250YWluZXJXaWR0aCA8PSAxICYmIG9mZnNldCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIFRhYlNjcm9sbEJ1dHRvblN0eWxlLk5vdERpc3BsYXllZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpdGVtc0NvbnRhaW5lcldpZHRoID4gdG90YWwpIHtcbiAgICAgICAgICAgIHJldHVybiBUYWJTY3JvbGxCdXR0b25TdHlsZS5FbmFibGVkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFRhYlNjcm9sbEJ1dHRvblN0eWxlLkRpc2FibGVkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRUYWJJdGVtc0NvbnRhaW5lcldpZHRoKCkge1xuICAgICAgICAvLyBXZSB1c2UgdGhpcyBoYWNreSB3YXkgdG8gZ2V0IHRoZSB3aWR0aCBvZiB0aGUgaXRlbXNDb250YWluZXIsXG4gICAgICAgIC8vIGJlY2F1c2UgdGhlcmUgaXMgaW5jb25zaXN0ZW5jeSBpbiBJRSB3ZSBjYW5ub3QgdXNlIG9mZnNldFdpZHRoIG9yIHNjcm9sbE9mZnNldC5cbiAgICAgICAgY29uc3QgaXRlbXNDb250YWluZXJDaGlsZHJlbkNvdW50ID0gdGhpcy5pdGVtc0NvbnRhaW5lci5uYXRpdmVFbGVtZW50LmNoaWxkcmVuLmxlbmd0aDtcbiAgICAgICAgbGV0IGl0ZW1zQ29udGFpbmVyV2lkdGggPSAwO1xuXG4gICAgICAgIGlmIChpdGVtc0NvbnRhaW5lckNoaWxkcmVuQ291bnQgPiAxKSB7XG4gICAgICAgICAgICBjb25zdCBsYXN0VGFiID0gdGhpcy5pdGVtc0NvbnRhaW5lci5uYXRpdmVFbGVtZW50LmNoaWxkcmVuW2l0ZW1zQ29udGFpbmVyQ2hpbGRyZW5Db3VudCAtIDFdIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgICAgaXRlbXNDb250YWluZXJXaWR0aCA9IHRoaXMuZ2V0RWxlbWVudE9mZnNldChsYXN0VGFiKSArIGxhc3RUYWIub2Zmc2V0V2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaXRlbXNDb250YWluZXJXaWR0aDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE9mZnNldChvZmZzZXQ6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpci5ydGwgPyAtb2Zmc2V0IDogb2Zmc2V0O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RWxlbWVudE9mZnNldChlbGVtZW50OiBIVE1MRWxlbWVudCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpci5ydGwgPyB0aGlzLml0ZW1zV3JhcHBlci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoIC0gZWxlbWVudC5vZmZzZXRMZWZ0IC0gZWxlbWVudC5vZmZzZXRXaWR0aCA6IGVsZW1lbnQub2Zmc2V0TGVmdDtcbiAgICB9XG59XG5cbiIsIjxkaXYgI2hlYWRlckNvbnRhaW5lciBjbGFzcz1cImlneC10YWJzX19oZWFkZXJcIj5cbiAgICA8YnV0dG9uICNzY3JvbGxQcmV2QnV0dG9uIHR5cGU9XCJidXR0b25cIiBpZ3hJY29uQnV0dG9uPVwiZmxhdFwiIGlneFJpcHBsZSBjbGFzcz1cImlneC10YWJzX19oZWFkZXItYnV0dG9uXCIgKGNsaWNrKT1cInNjcm9sbFByZXYoKVwiPlxuICAgICAgICA8aWd4LWljb24+bmF2aWdhdGVfYmVmb3JlPC9pZ3gtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8ZGl2ICN2aWV3UG9ydCBjbGFzcz1cImlneC10YWJzX19oZWFkZXItY29udGVudFwiPlxuICAgICAgICA8ZGl2ICNpdGVtc1dyYXBwZXIgY2xhc3M9XCJpZ3gtdGFic19faGVhZGVyLXdyYXBwZXJcIiByb2xlPVwidGFibGlzdFwiPlxuICAgICAgICAgICAgPGRpdiAjaXRlbXNDb250YWluZXIgY2xhc3M9XCJpZ3gtdGFic19faGVhZGVyLXNjcm9sbFwiIFtuZ0NsYXNzXT1cInJlc29sdmVIZWFkZXJTY3JvbGxDbGFzc2VzKClcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0YWIgb2YgaXRlbXM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRhYi5oZWFkZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICNzZWxlY3RlZEluZGljYXRvciAqbmdJZj1cIml0ZW1zLmxlbmd0aCA+IDBcIiBjbGFzcz1cImlneC10YWJzX19oZWFkZXItYWN0aXZlLWluZGljYXRvclwiPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxidXR0b24gI3Njcm9sbE5leHRCdXR0b24gdHlwZT1cImJ1dHRvblwiIGlneEljb25CdXR0b249XCJmbGF0XCIgaWd4UmlwcGxlIGNsYXNzPVwiaWd4LXRhYnNfX2hlYWRlci1idXR0b25cIiAoY2xpY2spPVwic2Nyb2xsTmV4dCgpXCI+XG4gICAgICAgIDxpZ3gtaWNvbj5uYXZpZ2F0ZV9uZXh0PC9pZ3gtaWNvbj5cbiAgICA8L2J1dHRvbj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImlneC10YWJzX19wYW5lbHNcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0YWIgb2YgaXRlbXM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRhYi5wYW5lbFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==