ngx-bootstrap-slider
Version:
A flexible bootstrap slider for Angular
226 lines • 22.9 kB
JavaScript
import { Component, ViewChild, Input, Output, EventEmitter } from '@angular/core';
import * as i0 from "@angular/core";
export class SliderComponent {
// This property is not applied to the underlying slider element
set style(value) {
if (this.slider) {
this.slider.getElement().setAttribute('style', value);
}
else {
this.initialStyle = value;
}
}
// Handle the value (two-way)
set value(value) {
if (this.slider) {
this.slider.setValue(value);
}
else {
this.initialOptions.value = value;
}
}
// The following properties are applied to the underlying slider element
set min(value) {
this.changeAttribute('min', value);
}
set max(value) {
this.changeAttribute('max', value);
}
set step(value) {
this.changeAttribute('step', value);
}
set precision(value) {
this.changeAttribute('precision', value);
}
set orientation(value) {
this.changeAttribute('orientation', value);
}
set range(value) {
this.changeAttribute('range', value);
}
set selection(value) {
this.changeAttribute('selection', value);
}
set tooltip(value) {
this.changeAttribute('tooltip', value);
}
set tooltipSplit(value) {
this.changeAttribute('tooltip_split', value);
}
set tooltipPosition(value) {
this.changeAttribute('tooltip_position', value);
}
set handle(value) {
this.changeAttribute('handle', value);
}
set reversed(value) {
this.changeAttribute('reversed', value);
}
set rtl(value) {
this.changeAttribute('rtl', value);
}
set enabled(value) {
this.changeAttribute('enabled', value);
}
set naturalArrowKeys(value) {
this.changeAttribute('natural_arrow_keys', value);
}
set ticks(value) {
this.changeAttribute('ticks', value);
}
set ticksPositions(value) {
this.changeAttribute('ticks_positions', value);
}
set ticksLabels(value) {
this.changeAttribute('ticks_labels', value);
}
set ticksSnapBounds(value) {
this.changeAttribute('ticks_snap_bounds', value);
}
set ticksTooltip(value) {
this.changeAttribute('ticks_tooltip', value);
}
set scale(value) {
this.changeAttribute('scale', value);
}
set labelledBy(value) {
this.changeAttribute('labelledby', value);
}
set rangeHighlights(value) {
this.changeAttribute('rangeHighlights', value);
}
set formatter(value) {
this.changeAttribute('formatter', value);
}
set lockToTicks(value) {
this.changeAttribute('lock_to_ticks', value);
}
constructor() {
this.initialOptions = {};
this.valueChange = new EventEmitter();
// The following events are emitted
this.slide = new EventEmitter();
this.slideStart = new EventEmitter();
this.slideStop = new EventEmitter();
this.change = new EventEmitter();
}
addChangeListeners() {
this.slider.on('slide', (value) => {
this.slide.emit(value);
});
this.slider.on('slideStart', (value) => {
this.slideStart.emit(value);
});
this.slider.on('slideStop', (value) => {
this.slideStop.emit(value);
});
this.slider.on('change', (event) => {
this.change.emit(event);
this.valueChange.emit(event.newValue);
});
}
prepareSlider() {
// We need to add the change listeners again after each refresh
this.addChangeListeners();
// Add the styling to the element
this.slider.getElement().setAttribute('style', this.initialStyle);
}
changeAttribute(name, value) {
if (this.slider) {
this.slider.setAttribute(name, value);
this.slider.refresh();
this.prepareSlider();
}
else {
this.initialOptions[name] = value;
}
}
ngOnInit() {
// Don't set the value over the initial options, because it will alway
// be reset. This option seems to be a little buggy.
let value = undefined;
if (this.initialOptions.value) {
value = this.initialOptions.value;
delete this.initialOptions['value'];
}
this.slider = new Slider(this.sliderElement.nativeElement, this.initialOptions);
if (value) {
this.slider.setValue(value);
}
this.prepareSlider();
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SliderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: SliderComponent, selector: "mv-slider", inputs: { style: "style", value: "value", min: "min", max: "max", step: "step", precision: "precision", orientation: "orientation", range: "range", selection: "selection", tooltip: "tooltip", tooltipSplit: "tooltipSplit", tooltipPosition: "tooltipPosition", handle: "handle", reversed: "reversed", rtl: "rtl", enabled: "enabled", naturalArrowKeys: "naturalArrowKeys", ticks: "ticks", ticksPositions: "ticksPositions", ticksLabels: "ticksLabels", ticksSnapBounds: "ticksSnapBounds", ticksTooltip: "ticksTooltip", scale: "scale", labelledBy: "labelledBy", rangeHighlights: "rangeHighlights", formatter: "formatter", lockToTicks: "lockToTicks" }, outputs: { valueChange: "valueChange", slide: "slide", slideStart: "slideStart", slideStop: "slideStop", change: "change" }, viewQueries: [{ propertyName: "sliderElement", first: true, predicate: ["slider"], descendants: true, static: true }], ngImport: i0, template: "<input #slider>", styles: [""] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SliderComponent, decorators: [{
type: Component,
args: [{ selector: 'mv-slider', template: "<input #slider>" }]
}], ctorParameters: () => [], propDecorators: { sliderElement: [{
type: ViewChild,
args: ['slider', { static: true }]
}], style: [{
type: Input
}], value: [{
type: Input
}], valueChange: [{
type: Output
}], min: [{
type: Input
}], max: [{
type: Input
}], step: [{
type: Input
}], precision: [{
type: Input
}], orientation: [{
type: Input
}], range: [{
type: Input
}], selection: [{
type: Input
}], tooltip: [{
type: Input
}], tooltipSplit: [{
type: Input
}], tooltipPosition: [{
type: Input
}], handle: [{
type: Input
}], reversed: [{
type: Input
}], rtl: [{
type: Input
}], enabled: [{
type: Input
}], naturalArrowKeys: [{
type: Input
}], ticks: [{
type: Input
}], ticksPositions: [{
type: Input
}], ticksLabels: [{
type: Input
}], ticksSnapBounds: [{
type: Input
}], ticksTooltip: [{
type: Input
}], scale: [{
type: Input
}], labelledBy: [{
type: Input
}], rangeHighlights: [{
type: Input
}], formatter: [{
type: Input
}], lockToTicks: [{
type: Input
}], slide: [{
type: Output
}], slideStart: [{
type: Output
}], slideStop: [{
type: Output
}], change: [{
type: Output
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ib290c3RyYXAtc2xpZGVyL3NyYy9saWIvc2xpZGVyL3NsaWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtYm9vdHN0cmFwLXNsaWRlci9zcmMvbGliL3NsaWRlci9zbGlkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUzFGLE1BQU0sT0FBTyxlQUFlO0lBVTFCLGdFQUFnRTtJQUNoRSxJQUNJLEtBQUssQ0FBQyxLQUFVO1FBQ2xCLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN4RCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzVCLENBQUM7SUFDSCxDQUFDO0lBRUQsNkJBQTZCO0lBQzdCLElBQ0ksS0FBSyxDQUFDLEtBQXFCO1FBQzdCLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ3BDLENBQUM7SUFDSCxDQUFDO0lBR0Qsd0VBQXdFO0lBQ3hFLElBQ0ksR0FBRyxDQUFDLEtBQWE7UUFDbkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FB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RixZQUFZO3NCQURmLEtBQUs7Z0JBTUYsS0FBSztzQkFEUixLQUFLO2dCQU1GLFVBQVU7c0JBRGIsS0FBSztnQkFNRixlQUFlO3NCQURsQixLQUFLO2dCQU1GLFNBQVM7c0JBRFosS0FBSztnQkFNRixXQUFXO3NCQURkLEtBQUs7Z0JBTUksS0FBSztzQkFBZCxNQUFNO2dCQUVHLFVBQVU7c0JBQW5CLE1BQU07Z0JBRUcsU0FBUztzQkFBbEIsTUFBTTtnQkFFRyxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkLCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZGVjbGFyZSB2YXIgU2xpZGVyOiBhbnk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ212LXNsaWRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zbGlkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zbGlkZXIuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNsaWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8vIFRoZSBzbGlkZXIgSFRNTCBlbGVtZW50XG4gIEBWaWV3Q2hpbGQoJ3NsaWRlcicsIHsgc3RhdGljOiB0cnVlIH0pIHNsaWRlckVsZW1lbnQ6IGFueTtcblxuICAvLyBUaGUgc2xpZGVyIG9iamVjdFxuICBzbGlkZXI6IGFueTtcblxuICBpbml0aWFsT3B0aW9uczogYW55ID0ge307XG4gIGluaXRpYWxTdHlsZTogYW55O1xuXG4gIC8vIFRoaXMgcHJvcGVydHkgaXMgbm90IGFwcGxpZWQgdG8gdGhlIHVuZGVybHlpbmcgc2xpZGVyIGVsZW1lbnRcbiAgQElucHV0KClcbiAgc2V0IHN0eWxlKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodGhpcy5zbGlkZXIpIHtcbiAgICAgIHRoaXMuc2xpZGVyLmdldEVsZW1lbnQoKS5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgdmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmluaXRpYWxTdHlsZSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIC8vIEhhbmRsZSB0aGUgdmFsdWUgKHR3by13YXkpXG4gIEBJbnB1dCgpXG4gIHNldCB2YWx1ZSh2YWx1ZTogbnVtYmVyIHwgYW55W10pIHtcbiAgICBpZiAodGhpcy5zbGlkZXIpIHtcbiAgICAgIHRoaXMuc2xpZGVyLnNldFZhbHVlKHZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbml0aWFsT3B0aW9ucy52YWx1ZSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLy8gVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBhcHBsaWVkIHRvIHRoZSB1bmRlcmx5aW5nIHNsaWRlciBlbGVtZW50XG4gIEBJbnB1dCgpXG4gIHNldCBtaW4odmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuY2hhbmdlQXR0cmlidXRlKCdtaW4nLCB2YWx1ZSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgbWF4KHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLmNoYW5nZUF0dHJpYnV0ZSgnbWF4JywgdmFsdWUpO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IHN0ZXAodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuY2hhbmdlQXR0cmlidXRlKCdzdGVwJywgdmFsdWUpO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IHByZWNpc2lvbih2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5jaGFuZ2VBdHRyaWJ1dGUoJ3ByZWNpc2lvbicsIHZhbHVlKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBvcmllbnRhdGlvbih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5jaGFuZ2VBdHRyaWJ1dGUoJ29yaWVudGF0aW9uJywgdmFsdWUpO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IHJhbmdlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5jaGFuZ2VBdHRyaWJ1dGUoJ3JhbmdlJywgdmFsdWUpO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IHNlbGVjdGlvbih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5jaGFuZ2VBdHRyaWJ1dGUoJ3NlbGVjdGlvbicsIHZhbHVlKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCB0b29sdGlwKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNoYW5nZUF0dHJpYnV0ZSgndG9vbHRpcCcsIHZhbHVlKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCB0b29sdGlwU3BsaXQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmNoYW5nZUF0dHJpYnV0ZSgndG9vbHRpcF9zcGxpdCcsIHZhbHVlKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCB0b29sdGlwUG9zaXRpb24odmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuY2hhbmdlQXR0cmlidXRlKCd0b29sdGlwX3Bvc2l0aW9uJywgdmFsdWUpO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGhhbmRsZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5jaGFuZ2VBdHRyaWJ1dGUoJ2hhbmRsZScsIHZhbHVlKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCByZXZlcnNlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuY2hhbmdlQXR0cmlidXRlKCdyZXZlcnNlZCcsIHZhbHVlKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBydGwodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmNoYW5nZUF0dHJpYnV0ZSgncnRsJywgdmFsdWUpO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGVuYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmNoYW5nZUF0dHJpYnV0ZSgnZW5hYmxlZCcsIHZhbHVlKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBuYXR1cmFsQXJyb3dLZXlzKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5jaGFuZ2VBdHRyaWJ1dGUoJ25hdHVyYWxfYXJyb3dfa2V5cycsIHZhbHVlKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCB0aWNrcyh2YWx1ZTogYW55W10pIHtcbiAgICB0aGlzLmNoYW5nZUF0dHJpYnV0ZSgndGlja3MnLCB2YWx1ZSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgdGlja3NQb3NpdGlvbnModmFsdWU6IG51bWJlcltdKSB7XG4gICAgdGhpcy5jaGFuZ2VBdHRyaWJ1dGUoJ3RpY2tzX3Bvc2l0aW9ucycsIHZhbHVlKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCB0aWNrc0xhYmVscyh2YWx1ZTogc3RyaW5nW10pIHtcbiAgICB0aGlzLmNoYW5nZUF0dHJpYnV0ZSgndGlja3NfbGFiZWxzJywgdmFsdWUpO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IHRpY2tzU25hcEJvdW5kcyh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5jaGFuZ2VBdHRyaWJ1dGUoJ3RpY2tzX3NuYXBfYm91bmRzJywgdmFsdWUpO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IHRpY2tzVG9vbHRpcCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuY2hhbmdlQXR0cmlidXRlKCd0aWNrc190b29sdGlwJywgdmFsdWUpO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IHNjYWxlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNoYW5nZUF0dHJpYnV0ZSgnc2NhbGUnLCB2YWx1ZSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgbGFiZWxsZWRCeSh2YWx1ZTogc3RyaW5nW10pIHtcbiAgICB0aGlzLmNoYW5nZUF0dHJpYnV0ZSgnbGFiZWxsZWRieScsIHZhbHVlKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCByYW5nZUhpZ2hsaWdodHModmFsdWU6IGFueVtdKSB7XG4gICAgdGhpcy5jaGFuZ2VBdHRyaWJ1dGUoJ3JhbmdlSGlnaGxpZ2h0cycsIHZhbHVlKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBmb3JtYXR0ZXIodmFsdWU6IEZ1bmN0aW9uKSB7XG4gICAgdGhpcy5jaGFuZ2VBdHRyaWJ1dGUoJ2Zvcm1hdHRlcicsIHZhbHVlKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBsb2NrVG9UaWNrcyh2YWx1ZTogRnVuY3Rpb24pIHtcbiAgICB0aGlzLmNoYW5nZUF0dHJpYnV0ZSgnbG9ja190b190aWNrcycsIHZhbHVlKTtcbiAgfVxuXG4gIC8vIFRoZSBmb2xsb3dpbmcgZXZlbnRzIGFyZSBlbWl0dGVkXG4gIEBPdXRwdXQoKSBzbGlkZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KCkgc2xpZGVTdGFydCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KCkgc2xpZGVTdG9wID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKSBjaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBwcml2YXRlIGFkZENoYW5nZUxpc3RlbmVycygpIHtcbiAgICB0aGlzLnNsaWRlci5vbignc2xpZGUnLCAodmFsdWU6IGFueSkgPT4ge1xuICAgICAgdGhpcy5zbGlkZS5lbWl0KHZhbHVlKTtcbiAgICB9KTtcblxuICAgIHRoaXMuc2xpZGVyLm9uKCdzbGlkZVN0YXJ0JywgKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgIHRoaXMuc2xpZGVTdGFydC5lbWl0KHZhbHVlKTtcbiAgICB9KTtcblxuICAgIHRoaXMuc2xpZGVyLm9uKCdzbGlkZVN0b3AnLCAodmFsdWU6IGFueSkgPT4ge1xuICAgICAgdGhpcy5zbGlkZVN0b3AuZW1pdCh2YWx1ZSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnNsaWRlci5vbignY2hhbmdlJywgKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgIHRoaXMuY2hhbmdlLmVtaXQoZXZlbnQpO1xuICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KGV2ZW50Lm5ld1ZhbHVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcHJlcGFyZVNsaWRlcigpIHtcbiAgICAvLyBXZSBuZWVkIHRvIGFkZCB0aGUgY2hhbmdlIGxpc3RlbmVycyBhZ2FpbiBhZnRlciBlYWNoIHJlZnJlc2hcbiAgICB0aGlzLmFkZENoYW5nZUxpc3RlbmVycygpO1xuXG4gICAgLy8gQWRkIHRoZSBzdHlsaW5nIHRvIHRoZSBlbGVtZW50XG4gICAgdGhpcy5zbGlkZXIuZ2V0RWxlbWVudCgpLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCB0aGlzLmluaXRpYWxTdHlsZSk7XG4gIH1cblxuICBwcml2YXRlIGNoYW5nZUF0dHJpYnV0ZShuYW1lOiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodGhpcy5zbGlkZXIpIHtcbiAgICAgIHRoaXMuc2xpZGVyLnNldEF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7XG4gICAgICB0aGlzLnNsaWRlci5yZWZyZXNoKCk7XG4gICAgICB0aGlzLnByZXBhcmVTbGlkZXIoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbml0aWFsT3B0aW9uc1tuYW1lXSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIC8vIERvbid0IHNldCB0aGUgdmFsdWUgb3ZlciB0aGUgaW5pdGlhbCBvcHRpb25zLCBiZWNhdXNlIGl0IHdpbGwgYWx3YXlcbiAgICAvLyBiZSByZXNldC4gVGhpcyBvcHRpb24gc2VlbXMgdG8gYmUgYSBsaXR0bGUgYnVnZ3kuXG4gICAgbGV0IHZhbHVlID0gdW5kZWZpbmVkO1xuXG4gICAgaWYgKHRoaXMuaW5pdGlhbE9wdGlvbnMudmFsdWUpIHtcbiAgICAgIHZhbHVlID0gdGhpcy5pbml0aWFsT3B0aW9ucy52YWx1ZTtcbiAgICAgIGRlbGV0ZSB0aGlzLmluaXRpYWxPcHRpb25zWyd2YWx1ZSddO1xuICAgIH1cblxuICAgIHRoaXMuc2xpZGVyID0gbmV3IFNsaWRlcih0aGlzLnNsaWRlckVsZW1lbnQubmF0aXZlRWxlbWVudCwgdGhpcy5pbml0aWFsT3B0aW9ucyk7XG5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuc2xpZGVyLnNldFZhbHVlKHZhbHVlKTtcbiAgICB9XG5cbiAgICB0aGlzLnByZXBhcmVTbGlkZXIoKTtcbiAgfVxuXG59XG4iLCI8aW5wdXQgI3NsaWRlcj4iXX0=