com.phloxui
Version:
PhloxUI Ng2+ Framework
794 lines (793 loc) • 54.4 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Component, ElementRef, Input, Output, ViewChild, EventEmitter } from '@angular/core';
import { I18N } from '../../../../../decorator/I18N.decorator';
import { Option } from '../../../../../decorator/Option.decorator';
import { EventUtils } from '../../../../../share/utils/EventUtils';
import { CLICK_EVENT, BEFORE_CLICK_EVENT } from '../../../../../share/CustomEventType';
import { NeedFocusService } from '../../../../../service/NeedFocusService.service';
import { AbstractInputDataView } from '../../../../../component/dataview/input/AbstractInputDataView';
import { MatSlider } from '@angular/material';
var /** @type {?} */ TYPE_NAME = "material-slider";
var MaterialSlider = /** @class */ (function (_super) {
tslib_1.__extends(MaterialSlider, _super);
function MaterialSlider(elementRef, needFocusService) {
var _this = _super.call(this, elementRef, needFocusService) || this;
_this.beforeClickEvent = new EventEmitter();
_this.clickEvent = new EventEmitter();
_this.beforeFocusEvent = new EventEmitter();
_this.focusEvent = new EventEmitter();
_this.beforeLostFocusEvent = new EventEmitter();
_this.lostFocusEvent = new EventEmitter();
_this.beforeChangeEvent = new EventEmitter();
_this.changeEvent = new EventEmitter();
_this.disabled = false;
return _this;
}
/**
* @param {?} changes
* @return {?}
*/
MaterialSlider.prototype.ngOnChanges = /**
* @param {?} changes
* @return {?}
*/
function (changes) {
var _this = this;
setTimeout(function () {
_this.initEventHandlers();
_this._oldValue = _this.slider.value;
}, 20);
};
/**
* @return {?}
*/
MaterialSlider.prototype.initEventHandlers = /**
* @return {?}
*/
function () {
var _this = this;
$(this.elementRef.nativeElement).find('mat-slider.mat-slider').focus(function ($event) {
_this.onFocusing($event);
});
$(this.elementRef.nativeElement).find('mat-slider.mat-slider').blur(function ($event) {
_this.onLostFocusing($event);
});
};
/**
* @return {?}
*/
MaterialSlider.prototype.isInvert = /**
* @return {?}
*/
function () {
return this.invert;
};
/**
* @param {?} invert
* @return {?}
*/
MaterialSlider.prototype.setInvert = /**
* @param {?} invert
* @return {?}
*/
function (invert) {
this.invert = invert;
};
/**
* @return {?}
*/
MaterialSlider.prototype.getMaximum = /**
* @return {?}
*/
function () {
return this.max;
};
/**
* @param {?} max
* @return {?}
*/
MaterialSlider.prototype.setMaximum = /**
* @param {?} max
* @return {?}
*/
function (max) {
this.max = max;
};
/**
* @return {?}
*/
MaterialSlider.prototype.getMinimum = /**
* @return {?}
*/
function () {
return this.min;
};
/**
* @param {?} min
* @return {?}
*/
MaterialSlider.prototype.setMinimum = /**
* @param {?} min
* @return {?}
*/
function (min) {
this.min = min;
};
/**
* @return {?}
*/
MaterialSlider.prototype.getStep = /**
* @return {?}
*/
function () {
return this.step;
};
/**
* @param {?} step
* @return {?}
*/
MaterialSlider.prototype.setStep = /**
* @param {?} step
* @return {?}
*/
function (step) {
this.step = step;
};
/**
* @return {?}
*/
MaterialSlider.prototype.isVertical = /**
* @return {?}
*/
function () {
return this.vertical;
};
/**
* @param {?} vertical
* @return {?}
*/
MaterialSlider.prototype.setVertical = /**
* @param {?} vertical
* @return {?}
*/
function (vertical) {
this.vertical = vertical;
};
/**
* @return {?}
*/
MaterialSlider.prototype.isThumbLabel = /**
* @return {?}
*/
function () {
return this.thumbLabel;
};
/**
* @param {?} thumbLabel
* @return {?}
*/
MaterialSlider.prototype.setThumbLabel = /**
* @param {?} thumbLabel
* @return {?}
*/
function (thumbLabel) {
this.thumbLabel = thumbLabel;
};
/**
* @return {?}
*/
MaterialSlider.prototype.getTickInterval = /**
* @return {?}
*/
function () {
return this.tickInterval;
};
/**
* @param {?} tickInterval
* @return {?}
*/
MaterialSlider.prototype.setTickInterval = /**
* @param {?} tickInterval
* @return {?}
*/
function (tickInterval) {
if (typeof tickInterval === "number") {
this.tickInterval = tickInterval;
}
else {
this.tickInterval = 'auto';
}
};
/**
* @return {?}
*/
MaterialSlider.prototype.getDescription = /**
* @return {?}
*/
function () {
return this.description;
};
/**
* @param {?} description
* @return {?}
*/
MaterialSlider.prototype.setDescription = /**
* @param {?} description
* @return {?}
*/
function (description) {
this.description = description;
};
/**
* @return {?}
*/
MaterialSlider.prototype.hasDescription = /**
* @return {?}
*/
function () {
if (this.description !== null && typeof this.description === 'string' && this.description !== '') {
return true;
}
return false;
};
/**
* @param {?} $event
* @return {?}
*/
MaterialSlider.prototype.onChanged = /**
* @param {?} $event
* @return {?}
*/
function ($event) {
this.slider.value = this._oldValue;
this.setInputValue($event.value);
};
/**
* @param {?} $event
* @param {?=} fireEvent
* @return {?}
*/
MaterialSlider.prototype.onClicked = /**
* @param {?} $event
* @param {?=} fireEvent
* @return {?}
*/
function ($event, fireEvent) {
var _this = this;
if (fireEvent === null || fireEvent === undefined) {
fireEvent = true;
}
if (this.isReadOnly()) {
$event.preventDefault();
return;
}
if (this.isDisabled()) {
$event.preventDefault();
return;
}
EventUtils.handleBrowserEvent(this, 'beforeClickEvent', $event, fireEvent, function ($event) {
// doEvent
}, function ($event) {
// emitBeforeEvent
// emitBeforeEvent
_this.emitBeforeClickEvent($event);
}, function ($event, result) {
// emitAfterEvent
// emitAfterEvent
_this.emitClickEvent($event);
}, function ($event) {
// doPrevented
});
};
// Override: to save this._oldValue
/**
* @param {?} oldValue
* @param {?} newValue
* @param {?} valueChange
* @param {?=} $event
* @return {?}
*/
MaterialSlider.prototype.emitChangeEvent = /**
* @param {?} oldValue
* @param {?} newValue
* @param {?} valueChange
* @param {?=} $event
* @return {?}
*/
function (oldValue, newValue, valueChange, $event) {
_super.prototype.emitChangeEvent.call(this, oldValue, newValue, valueChange, $event);
this._oldValue = newValue;
};
/**
* @param {?=} $event
* @return {?}
*/
MaterialSlider.prototype.emitBeforeClickEvent = /**
* @param {?=} $event
* @return {?}
*/
function ($event) {
var /** @type {?} */ eventData = null;
// emit event
var /** @type {?} */ data = eventData;
var /** @type {?} */ ev = EventUtils.newCustomEvent(BEFORE_CLICK_EVENT, this, data, $event);
if (this.beforeClickEvent !== null && this.beforeClickEvent !== undefined) {
this.beforeClickEvent.emit(ev);
}
};
/**
* @param {?=} $event
* @return {?}
*/
MaterialSlider.prototype.emitClickEvent = /**
* @param {?=} $event
* @return {?}
*/
function ($event) {
var /** @type {?} */ eventData = null;
// emit event
var /** @type {?} */ data = eventData;
var /** @type {?} */ ev = EventUtils.newCustomEvent(CLICK_EVENT, this, data, $event);
if (this.clickEvent !== null && this.clickEvent !== undefined) {
this.clickEvent.emit(ev);
}
};
/**
* @param {?} $event
* @return {?}
*/
MaterialSlider.prototype.onFocusing = /**
* @param {?} $event
* @return {?}
*/
function ($event) {
this.needFocusService.setFocusingComponent(this, $event);
};
/**
* @param {?} $event
* @return {?}
*/
MaterialSlider.prototype.onLostFocusing = /**
* @param {?} $event
* @return {?}
*/
function ($event) {
this.needFocusService.resetFocusingComponent($event);
};
/**
* @param {?} $event
* @return {?}
*/
MaterialSlider.prototype.doFocus = /**
* @param {?} $event
* @return {?}
*/
function ($event) {
if ($(this.elementRef.nativeElement).find('mat-slider.mat-slider:focus').length <= 0) {
$(this.elementRef.nativeElement).find('mat-slider.mat-slider').focus();
}
};
/**
* @param {?} $event
* @return {?}
*/
MaterialSlider.prototype.doLostFocus = /**
* @param {?} $event
* @return {?}
*/
function ($event) {
if ($(this.elementRef.nativeElement).find('mat-slider.mat-slider:focus').length > 0) {
$(this.elementRef.nativeElement).find('mat-slider.mat-slider').blur();
}
};
/**
* @param {?} $event
* @return {?}
*/
MaterialSlider.prototype.onReadonlyClick = /**
* @param {?} $event
* @return {?}
*/
function ($event) {
if (this.isReadOnly()) {
this.onFocusing($event);
$event.preventDefault();
return;
}
};
/**
* @return {?}
*/
MaterialSlider.prototype.getWidth = /**
* @return {?}
*/
function () {
return this.width;
};
/**
* @param {?} width
* @return {?}
*/
MaterialSlider.prototype.setWidth = /**
* @param {?} width
* @return {?}
*/
function (width) {
this.width = width;
};
/**
* @return {?}
*/
MaterialSlider.prototype.getHeight = /**
* @return {?}
*/
function () {
return this.height;
};
/**
* @param {?} height
* @return {?}
*/
MaterialSlider.prototype.setHeight = /**
* @param {?} height
* @return {?}
*/
function (height) {
this.height = height;
};
/**
* @param {?} inputValue
* @param {?} results
* @return {?}
*/
MaterialSlider.prototype.onValidationEnd = /**
* @param {?} inputValue
* @param {?} results
* @return {?}
*/
function (inputValue, results) {
};
/**
* @param {?} data
* @param {?} inputVal
* @return {?}
*/
MaterialSlider.prototype.onDataChange = /**
* @param {?} data
* @param {?} inputVal
* @return {?}
*/
function (data, inputVal) {
};
/**
* @return {?}
*/
MaterialSlider.prototype.isSelfDataDirty = /**
* @return {?}
*/
function () {
return;
};
/**
* @param {?} data
* @return {?}
*/
MaterialSlider.prototype.selfSaveData = /**
* @param {?} data
* @return {?}
*/
function (data) {
};
/**
* @return {?}
*/
MaterialSlider.prototype.selfResetData = /**
* @return {?}
*/
function () {
};
MaterialSlider.TYPE_NAME = TYPE_NAME;
MaterialSlider.decorators = [
{ type: Component, args: [{
moduleId: module.id,
selector: TYPE_NAME,
template: "<div class=\"material-input material-slider\">\n <div id=\"material-slider-readonly\" *ngIf=\"isReadOnly()\" style=\"width: 100%; height: 100%; position: absolute; left: 0; top: 0; z-index: 50;\" (click)=\"onReadonlyClick($event)\"></div>\n <mat-slider #mcomp [disabled]=\"isDisabled()\" *ngIf=\"!isVertical()\" [style.width]=\"getWidth()\" [value]=\"getInputValue()\" [vertical]=\"isVertical()\" [tickInterval]=\"getTickInterval()\" [thumbLabel]=\"isThumbLabel()\" [invert]=\"isInvert()\" [max]=\"getMaximum()\" [min]=\"getMinimum()\" [step]=\"getStep()\" (click)=\"onClicked($event)\" (change)=\"onChanged($event)\">\n </mat-slider>\n <mat-slider #mcomp [disabled]=\"isDisabled()\" *ngIf=\"isVertical()\" [style.height]=\"getHeight()\" [value]=\"getInputValue()\" [vertical]=\"isVertical()\" [tickInterval]=\"getTickInterval()\" [thumbLabel]=\"isThumbLabel()\" [invert]=\"isInvert()\" [max]=\"getMaximum()\" [min]=\"getMinimum()\" [step]=\"getStep()\" (click)=\"onClicked($event)\" (change)=\"onChanged($event)\">\n </mat-slider>\n <div class=\"validation\" [style.display]=\"getValidationResultMessage() ? undefined : 'none'\" [class.normal]=\"isNormal() && !isDisabled()\" [class.success]=\"isSuccess() && !isDisabled()\" [class.warning]=\"isWarning() && !isDisabled()\" [class.error]=\"isError() && !isDisabled()\">\n <ng-template [ngIf]=\"getValidationResultMessage()\" [ngIfElse]=\"validation_else\">\n {{getValidationResultMessage() | phx_text}}\n </ng-template>\n <ng-template #validation_else>\n <!-- We've to put whitespace if there is no validation msg to prevent empty dom -->\n <!-- since if validate msg's <div> dom is empty, the component positioning -->\n <!-- will be misplaced. -->\n {{ ' ' }}\n </ng-template>\n </div>\n <div class=\"description\" [style.display]=\"getValidationResultMessage() ? 'none' : undefined\" [class.normal]=\"isNormal() && !isDisabled()\" [class.success]=\"isSuccess() && !isDisabled()\" [class.warning]=\"isWarning() && !isDisabled()\" [class.error]=\"isError() && !isDisabled()\">\n <ng-template [ngIf]=\"getDescription()\" [ngIfElse]=\"description_else\">\n {{ getDescription() | phx_text }}\n </ng-template>\n <ng-template #description_else>\n <!-- We've to put whitespace if there is no description to prevent empty dom -->\n <!-- since if description's <div> dom is empty, the component positioning -->\n <!-- will be misplaced. -->\n {{ ' ' }}\n </ng-template>\n </div>\n <div class=\"help\">\n {{getHelp() | phx_text}}\n </div>\n</div>",
},] },
];
/** @nocollapse */
MaterialSlider.ctorParameters = function () { return [
{ type: ElementRef, },
{ type: NeedFocusService, },
]; };
MaterialSlider.propDecorators = {
"dataParent": [{ type: Input },],
"ignoreParentData": [{ type: Input },],
"data": [{ type: Input },],
"ignoreParentDisabled": [{ type: Input },],
"delegateHistory": [{ type: Input },],
"onDisabled": [{ type: Input },],
"onEnabled": [{ type: Input },],
"loadingEnabled": [{ type: Input },],
"i18nKey": [{ type: Input },],
"bypass": [{ type: Input, args: ['i18nBypass',] },],
"options": [{ type: Input },],
"disabled": [{ type: Input },],
"field": [{ type: Input },],
"name": [{ type: Input },],
"typeOfData": [{ type: Input },],
"readOnly": [{ type: Input },],
"help": [{ type: Input },],
"description": [{ type: Input },],
"width": [{ type: Input },],
"height": [{ type: Input },],
"invert": [{ type: Input },],
"max": [{ type: Input },],
"min": [{ type: Input },],
"step": [{ type: Input },],
"thumbLabel": [{ type: Input },],
"vertical": [{ type: Input },],
"tickInterval": [{ type: Input },],
"loadEvent": [{ type: Output, args: ['phxLoad',] },],
"startValidateEvent": [{ type: Output, args: ['phxStartValidate',] },],
"endValidateEvent": [{ type: Output, args: ['phxEndValidate',] },],
"beforeFocusEvent": [{ type: Output, args: ['phxBeforeFocus',] },],
"focusEvent": [{ type: Output, args: ['phxFocus',] },],
"beforeLostFocusEvent": [{ type: Output, args: ['phxBeforeLostFocus',] },],
"lostFocusEvent": [{ type: Output, args: ['phxLostFocus',] },],
"beforeChangeEvent": [{ type: Output, args: ['phxBeforeChange',] },],
"changeEvent": [{ type: Output, args: ['phxChange',] },],
"beforeClickEvent": [{ type: Output, args: ['phxBeforeClick',] },],
"clickEvent": [{ type: Output, args: ['phxClick',] },],
"slider": [{ type: ViewChild, args: ['mcomp',] },],
};
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Object)
], MaterialSlider.prototype, "dataParent", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Boolean)
], MaterialSlider.prototype, "ignoreParentData", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Object)
], MaterialSlider.prototype, "data", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Boolean)
], MaterialSlider.prototype, "ignoreParentDisabled", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Boolean)
], MaterialSlider.prototype, "delegateHistory", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Function)
], MaterialSlider.prototype, "onDisabled", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Function)
], MaterialSlider.prototype, "onEnabled", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Boolean)
], MaterialSlider.prototype, "loadingEnabled", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", String)
], MaterialSlider.prototype, "i18nKey", void 0);
tslib_1.__decorate([
Option('i18nBypass'),
tslib_1.__metadata("design:type", Boolean)
], MaterialSlider.prototype, "bypass", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Boolean)
], MaterialSlider.prototype, "disabled", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", String)
], MaterialSlider.prototype, "field", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", String)
], MaterialSlider.prototype, "name", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", String)
], MaterialSlider.prototype, "typeOfData", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Boolean)
], MaterialSlider.prototype, "readOnly", void 0);
tslib_1.__decorate([
I18N(),
Option(),
tslib_1.__metadata("design:type", Object)
], MaterialSlider.prototype, "help", void 0);
tslib_1.__decorate([
I18N(),
Option(),
tslib_1.__metadata("design:type", String)
], MaterialSlider.prototype, "description", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", String)
], MaterialSlider.prototype, "width", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", String)
], MaterialSlider.prototype, "height", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Boolean)
], MaterialSlider.prototype, "invert", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Number)
], MaterialSlider.prototype, "max", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Number)
], MaterialSlider.prototype, "min", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Number)
], MaterialSlider.prototype, "step", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Boolean)
], MaterialSlider.prototype, "thumbLabel", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Boolean)
], MaterialSlider.prototype, "vertical", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Object)
], MaterialSlider.prototype, "tickInterval", void 0);
tslib_1.__decorate([
Option('load'),
tslib_1.__metadata("design:type", EventEmitter)
], MaterialSlider.prototype, "loadEvent", void 0);
tslib_1.__decorate([
Option('startValidate'),
tslib_1.__metadata("design:type", EventEmitter)
], MaterialSlider.prototype, "startValidateEvent", void 0);
tslib_1.__decorate([
Option('endValidate'),
tslib_1.__metadata("design:type", EventEmitter)
], MaterialSlider.prototype, "endValidateEvent", void 0);
tslib_1.__decorate([
Option('beforeFocus'),
tslib_1.__metadata("design:type", EventEmitter)
], MaterialSlider.prototype, "beforeFocusEvent", void 0);
tslib_1.__decorate([
Option('focus'),
tslib_1.__metadata("design:type", EventEmitter)
], MaterialSlider.prototype, "focusEvent", void 0);
tslib_1.__decorate([
Option('beforeLostFocus'),
tslib_1.__metadata("design:type", EventEmitter)
], MaterialSlider.prototype, "beforeLostFocusEvent", void 0);
tslib_1.__decorate([
Option('lostFocus'),
tslib_1.__metadata("design:type", EventEmitter)
], MaterialSlider.prototype, "lostFocusEvent", void 0);
tslib_1.__decorate([
Option('beforeChange'),
tslib_1.__metadata("design:type", EventEmitter)
], MaterialSlider.prototype, "beforeChangeEvent", void 0);
tslib_1.__decorate([
Option('change'),
tslib_1.__metadata("design:type", EventEmitter)
], MaterialSlider.prototype, "changeEvent", void 0);
tslib_1.__decorate([
Option('beforeClick'),
tslib_1.__metadata("design:type", EventEmitter)
], MaterialSlider.prototype, "beforeClickEvent", void 0);
tslib_1.__decorate([
Option('click'),
tslib_1.__metadata("design:type", EventEmitter)
], MaterialSlider.prototype, "clickEvent", void 0);
return MaterialSlider;
}(AbstractInputDataView));
export { MaterialSlider };
function MaterialSlider_tsickle_Closure_declarations() {
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
MaterialSlider.decorators;
/**
* @nocollapse
* @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
*/
MaterialSlider.ctorParameters;
/** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */
MaterialSlider.propDecorators;
/** @type {?} */
MaterialSlider.TYPE_NAME;
/** @type {?} */
MaterialSlider.prototype.dataParent;
/** @type {?} */
MaterialSlider.prototype.ignoreParentData;
/** @type {?} */
MaterialSlider.prototype.data;
/** @type {?} */
MaterialSlider.prototype.ignoreParentDisabled;
/** @type {?} */
MaterialSlider.prototype.delegateHistory;
/** @type {?} */
MaterialSlider.prototype.onDisabled;
/** @type {?} */
MaterialSlider.prototype.onEnabled;
/** @type {?} */
MaterialSlider.prototype.loadingEnabled;
/** @type {?} */
MaterialSlider.prototype.i18nKey;
/** @type {?} */
MaterialSlider.prototype.bypass;
/** @type {?} */
MaterialSlider.prototype.options;
/** @type {?} */
MaterialSlider.prototype.disabled;
/** @type {?} */
MaterialSlider.prototype.field;
/** @type {?} */
MaterialSlider.prototype.name;
/** @type {?} */
MaterialSlider.prototype.typeOfData;
/** @type {?} */
MaterialSlider.prototype.readOnly;
/** @type {?} */
MaterialSlider.prototype.help;
/** @type {?} */
MaterialSlider.prototype.description;
/** @type {?} */
MaterialSlider.prototype.width;
/** @type {?} */
MaterialSlider.prototype.height;
/** @type {?} */
MaterialSlider.prototype.invert;
/** @type {?} */
MaterialSlider.prototype.max;
/** @type {?} */
MaterialSlider.prototype.min;
/** @type {?} */
MaterialSlider.prototype.step;
/** @type {?} */
MaterialSlider.prototype.thumbLabel;
/** @type {?} */
MaterialSlider.prototype.vertical;
/** @type {?} */
MaterialSlider.prototype.tickInterval;
/** @type {?} */
MaterialSlider.prototype.loadEvent;
/** @type {?} */
MaterialSlider.prototype.startValidateEvent;
/** @type {?} */
MaterialSlider.prototype.endValidateEvent;
/** @type {?} */
MaterialSlider.prototype.beforeFocusEvent;
/** @type {?} */
MaterialSlider.prototype.focusEvent;
/** @type {?} */
MaterialSlider.prototype.beforeLostFocusEvent;
/** @type {?} */
MaterialSlider.prototype.lostFocusEvent;
/** @type {?} */
MaterialSlider.prototype.beforeChangeEvent;
/** @type {?} */
MaterialSlider.prototype.changeEvent;
/** @type {?} */
MaterialSlider.prototype.beforeClickEvent;
/** @type {?} */
MaterialSlider.prototype.clickEvent;
/** @type {?} */
MaterialSlider.prototype.slider;
/** @type {?} */
MaterialSlider.prototype._oldValue;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWF0ZXJpYWxTbGlkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vY29tLnBobG94dWkvIiwic291cmNlcyI6WyJsaWIvdGhlbWUvbWF0ZXJpYWwvY29tcG9uZW50L2RhdGF2aWV3L2lucHV0L01hdGVyaWFsU2xpZGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFpQixZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckgsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBRW5GLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBRXRHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUU5QyxxQkFBTSxTQUFTLEdBQVcsaUJBQWlCLENBQUM7O0lBc0NSLDBDQUFxQjtJQTBJdkQsd0JBQVksVUFBc0IsRUFBRSxnQkFBa0M7UUFBdEUsWUFDRSxrQkFBTSxVQUFVLEVBQUUsZ0JBQWdCLENBQUMsU0FZcEM7UUFWQyxLQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMzQyxLQUFJLENBQUMsVUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDckMsS0FBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDM0MsS0FBSSxDQUFDLFVBQVUsR0FBRyxJQUFJ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Ozs7UUFJaEMsTUFBTSxDQUFDLGVBQWUsQ0FBQzswQ0FDTSxZQUFZOzs7UUFFekMsTUFBTSxDQUFDLGFBQWEsQ0FBQzswQ0FDTSxZQUFZOzs7UUFFdkMsTUFBTSxDQUFDLGFBQWEsQ0FBQzswQ0FDTSxZQUFZOzs7UUFFdkMsTUFBTSxDQUFDLE9BQU8sQ0FBQzswQ0FDTSxZQUFZOzs7UUFFakMsTUFBTSxDQUFDLGlCQUFpQixDQUFDOzBDQUNNLFlBQVk7OztRQUUzQyxNQUFNLENBQUMsV0FBVyxDQUFDOzBDQUNNLFlBQVk7OztRQUVyQyxNQUFNLENBQUMsY0FBYyxDQUFDOzBDQUNNLFlBQVk7OztRQUV4QyxNQUFNLENBQUMsUUFBUSxDQUFDOzBDQUNNLFlBQVk7OztRQUtsQyxNQUFNLENBQUMsYUFBYSxDQUFDOzBDQUNNLFlBQVk7OztRQUV2QyxNQUFNLENBQUMsT0FBTyxDQUFDOzBDQUNNLFlBQVk7O3lCQXJMcEM7RUFpRG9DLHFCQUFxQjtTQUE1QyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEVsZW1lbnRSZWYsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCwgU2ltcGxlQ2hhbmdlcywgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEkxOE4gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kZWNvcmF0b3IvSTE4Ti5kZWNvcmF0b3InO1xyXG5pbXBvcnQgeyBPcHRpb24gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kZWNvcmF0b3IvT3B0aW9uLmRlY29yYXRvcic7XHJcbmltcG9ydCB7IEV2ZW50VXRpbHMgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zaGFyZS91dGlscy9FdmVudFV0aWxzJztcclxuaW1wb3J0IHsgQ0xJQ0tfRVZFTlQsIEJFRk9SRV9DTElDS19FVkVOVCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NoYXJlL0N1c3RvbUV2ZW50VHlwZSc7XHJcbmltcG9ydCB7IE5lZWRGb2N1c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zZXJ2aWNlL05lZWRGb2N1c1NlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IElIYXNEYXRhIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29tcG9uZW50L0lIYXNEYXRhJztcclxuaW1wb3J0IHsgQWJzdHJhY3RJbnB1dERhdGFWaWV3IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29tcG9uZW50L2RhdGF2aWV3L2lucHV0L0Fic3RyYWN0SW5wdXREYXRhVmlldyc7XHJcbmltcG9ydCB7IFZhbGlkYXRpb25SZXN1bHQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9jb21wb25lbnQvbW9kZWwvVmFsaWRhdGlvblJlc3VsdCc7XHJcbmltcG9ydCB7IE1hdFNsaWRlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsJztcclxuXHJcbmNvbnN0IFRZUEVfTkFNRTogc3RyaW5nID0gXCJtYXRlcmlhbC1zbGlkZXJcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIG1vZHVsZUlkOiBtb2R1bGUuaWQsXHJcbiAgc2VsZWN0b3I6IFRZUEVfTkFNRSxcclxuICB0ZW1wbGF0ZTogYDxkaXYgY2xhc3M9XCJtYXRlcmlhbC1pbnB1dCBtYXRlcmlhbC1zbGlkZXJcIj5cclxuICAgIDxkaXYgaWQ9XCJtYXRlcmlhbC1zbGlkZXItcmVhZG9ubHlcIiAqbmdJZj1cImlzUmVhZE9ubHkoKVwiIHN0eWxlPVwid2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7IHotaW5kZXg6IDUwO1wiIChjbGljayk9XCJvblJlYWRvbmx5Q2xpY2soJGV2ZW50KVwiPjwvZGl2PlxyXG4gICAgPG1hdC1zbGlkZXIgI21jb21wIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkKClcIiAqbmdJZj1cIiFpc1ZlcnRpY2FsKClcIiBbc3R5bGUud2lkdGhdPVwiZ2V0V2lkdGgoKVwiIFt2YWx1ZV09XCJnZXRJbnB1dFZhbHVlKClcIiBbdmVydGljYWxdPVwiaXNWZXJ0aWNhbCgpXCIgW3RpY2tJbnRlcnZhbF09XCJnZXRUaWNrSW50ZXJ2YWwoKVwiIFt0aHVtYkxhYmVsXT1cImlzVGh1bWJMYWJlbCgpXCIgW2ludmVydF09XCJpc0ludmVydCgpXCIgW21heF09XCJnZXRNYXhpbXVtKClcIiBbbWluXT1cImdldE1pbmltdW0oKVwiIFtzdGVwXT1cImdldFN0ZXAoKVwiIChjbGljayk9XCJvbkNsaWNrZWQoJGV2ZW50KVwiIChjaGFuZ2UpPVwib25DaGFuZ2VkKCRldmVudClcIj5cclxuICAgIDwvbWF0LXNsaWRlcj5cclxuICAgIDxtYXQtc2xpZGVyICNtY29tcCBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZCgpXCIgKm5nSWY9XCJpc1ZlcnRpY2FsKClcIiAgW3N0eWxlLmhlaWdodF09XCJnZXRIZWlnaHQoKVwiIFt2YWx1ZV09XCJnZXRJbnB1dFZhbHVlKClcIiBbdmVydGljYWxdPVwiaXNWZXJ0aWNhbCgpXCIgW3RpY2tJbnRlcnZhbF09XCJnZXRUaWNrSW50ZXJ2YWwoKVwiIFt0aHVtYkxhYmVsXT1cImlzVGh1bWJMYWJlbCgpXCIgW2ludmVydF09XCJpc0ludmVydCgpXCIgW21heF09XCJnZXRNYXhpbXVtKClcIiBbbWluXT1cImdldE1pbmltdW0oKVwiIFtzdGVwXT1cImdldFN0ZXAoKVwiIChjbGljayk9XCJvbkNsaWNrZWQoJGV2ZW50KVwiIChjaGFuZ2UpPVwib25DaGFuZ2VkKCRldmVudClcIj5cclxuICAgIDwvbWF0LXNsaWRlcj5cclxuICAgIDxkaXYgY2xhc3M9XCJ2YWxpZGF0aW9uXCIgW3N0eWxlLmRpc3BsYXldPVwiZ2V0VmFsaWRhdGlvblJlc3VsdE1lc3NhZ2UoKSA/IHVuZGVmaW5lZCA6ICdub25lJ1wiIFtjbGFzcy5ub3JtYWxdPVwiaXNOb3JtYWwoKSAmJiAhaXNEaXNhYmxlZCgpXCIgW2NsYXNzLnN1Y2Nlc3NdPVwiaXNTdWNjZXNzKCkgJiYgIWlzRGlzYWJsZWQoKVwiIFtjbGFzcy53YXJuaW5nXT1cImlzV2FybmluZygpICYmICFpc0Rpc2FibGVkKClcIiBbY2xhc3MuZXJyb3JdPVwiaXNFcnJvcigpICYmICFpc0Rpc2FibGVkKClcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwiZ2V0VmFsaWRhdGlvblJlc3VsdE1lc3NhZ2UoKVwiIFtuZ0lmRWxzZV09XCJ2YWxpZGF0aW9uX2Vsc2VcIj5cclxuICAgICAgICAgICAge3tnZXRWYWxpZGF0aW9uUmVzdWx0TWVzc2FnZSgpIHwgcGh4X3RleHR9fVxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICN2YWxpZGF0aW9uX2Vsc2U+XHJcbiAgICAgICAgICAgIDwhLS0gV2UndmUgdG8gcHV0IHdoaXRlc3BhY2UgaWYgdGhlcmUgaXMgbm8gdmFsaWRhdGlvbiBtc2cgdG8gcHJldmVudCBlbXB0eSBkb20gLS0+XHJcbiAgICAgICAgICAgIDwhLS0gc2luY2UgaWYgdmFsaWRhdGUgbXNnJ3MgPGRpdj4gZG9tIGlzIGVtcHR5LCB0aGUgY29tcG9uZW50IHBvc2l0aW9uaW5nIC0tPlxyXG4gICAgICAgICAgICA8IS0tIHdpbGwgYmUgbWlzcGxhY2VkLiAtLT5cclxuICAgICAgICAgICAge3sgJyZuYnNwOycgfX1cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb25cIiBbc3R5bGUuZGlzcGxheV09XCJnZXRWYWxpZGF0aW9uUmVzdWx0TWVzc2FnZSgpID8gJ25vbmUnIDogdW5kZWZpbmVkXCIgW2NsYXNzLm5vcm1hbF09XCJpc05vcm1hbCgpICYmICFpc0Rpc2FibGVkKClcIiBbY2xhc3Muc3VjY2Vzc109XCJpc1N1Y2Nlc3MoKSAmJiAhaXNEaXNhYmxlZCgpXCIgW2NsYXNzLndhcm5pbmddPVwiaXNXYXJuaW5nKCkgJiYgIWlzRGlzYWJsZWQoKVwiIFtjbGFzcy5lcnJvcl09XCJpc0Vycm9yKCkgJiYgIWlzRGlzYWJsZWQoKVwiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJnZXREZXNjcmlwdGlvbigpXCIgW25nSWZFbHNlXT1cImRlc2NyaXB0aW9uX2Vsc2VcIj5cclxuICAgICAgICAgICAge3sgZ2V0RGVzY3JpcHRpb24oKSB8IHBoeF90ZXh0IH19XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI2Rlc2NyaXB0aW9uX2Vsc2U+XHJcbiAgICAgICAgICAgIDwhLS0gV2UndmUgdG8gcHV0IHdoaXRlc3BhY2UgaWYgdGhlcmUgaXMgbm8gZGVzY3JpcHRpb24gdG8gcHJldmVudCBlbXB0eSBkb20gLS0+XHJcbiAgICAgICAgICAgIDwhLS0gc2luY2UgaWYgZGVzY3JpcHRpb24ncyA8ZGl2PiBkb20gaXMgZW1wdHksIHRoZSBjb21wb25lbnQgcG9zaXRpb25pbmcgLS0+XHJcbiAgICAgICAgICAgIDwhLS0gd2lsbCBiZSBtaXNwbGFjZWQuIC0tPlxyXG4gICAgICAgICAgICB7eyAnJm5ic3A7JyB9fVxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJoZWxwXCI+XHJcbiAgICAgICAge3tnZXRIZWxwKCkgfCBwaHhfdGV4dH19XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+YCxcclxufSlcclxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsU2xpZGVyIGV4dGVuZHMgQWJzdHJhY3RJbnB1dERhdGFWaWV3IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBUWVBFX05BTUU6IHN0cmluZyA9IFRZUEVfTkFNRTtcclxuXHJcbiAgLy8gUmUtZGVjbGFyZSBmaWVsZCB0byBkZWNsYXJlIG5nIEBJbnB1dC5cclxuICAvLyAtLS0gZnJvbSBBYnN0cmFjdEhhc0RhdGFcclxuICBASW5wdXQoKVxyXG4gIEBPcHRpb24oKVxyXG4gIHByb3RlY3RlZCBkYXRhUGFyZW50OiBJSGFzRGF0YTtcclxuICBASW5wdXQoKVxyXG4gIEBPcHRpb24oKVxyXG4gIHByb3RlY3RlZCBpZ25vcmVQYXJlbnREYXRhOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpXHJcbiAgQE9wdGlvbigpXHJcbiAgcHJvdGVjdGVkIGRhdGE6IGFueTtcclxuICBASW5wdXQoKVxyXG4gIEBPcHRpb24oKVxyXG4gIHByb3RlY3RlZCBpZ25vcmVQYXJlbnREaXNhYmxlZDogYm9vbGVhbjtcclxuICBASW5wdXQoKVxyXG4gIEBPcHRpb24oKVxyXG4gIHByb3RlY3RlZCBkZWxlZ2F0ZUhpc3Rvcnk6IGJvb2xlYW47XHJcbiAgQElucHV0KClcclxuICBAT3B0aW9uKClcclxuICBwcm90ZWN0ZWQgb25EaXNhYmxlZDogRnVuY3Rpb247XHJcbiAgQElucHV0KClcclxuICBAT3B0aW9uKClcclxuICBwcm90ZWN0ZWQgb25FbmFibGVkOiBGdW5jdGlvbjtcclxuICBASW5wdXQoKVxyXG4gIEBPcHRpb24oKVxyXG4gIHByb3RlY3RlZCBsb2FkaW5nRW5hYmxlZDogYm9vbGVhbjtcclxuICBASW5wdXQoKVxyXG4gIEBPcHRpb24oKVxyXG4gIHByb3RlY3RlZCBpMThuS2V5OiBzdHJpbmc7XHJcbiAgQElucHV0KCdpMThuQnlwYXNzJylcclxuICBAT3B0aW9uKCdpMThuQnlwYXNzJylcclxuICBwcm90ZWN0ZWQgYnlwYXNzOiBib29sZWFuOyBcclxuICBASW5wdXQoKVxyXG4gIHByb3RlY3RlZCBvcHRpb25zOiBhbnk7XHJcbiAgQElucHV0KClcclxuICBAT3B0aW9uKClcclxuICBwcm90ZWN0ZWQgZGlzYWJsZWQ6IGJvb2xlYW47XHJcbiAgLy8gLS0tIGZyb20gQWJzdHJhY3REYXRhVmlld1xyXG4gIEBJbnB1dCgpXHJcbiAgQE9wdGlvbigpXHJcbiAgcHJvdGVjdGVkIGZpZWxkOiBzdHJpbmc7XHJcbiAgLy8gLS0tIGZyb20gQWJzdHJhY3RJbnB1dERhdGFWaWV3XHJcbiAgQElucHV0KClcclxuICBAT3B0aW9uKClcclxuICBwcm90ZWN0ZWQgbmFtZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpXHJcbiAgQE9wdGlvbigpXHJcbiAgcHJvdGVjdGVkIHR5cGVPZkRhdGE6IHN0cmluZztcclxuICBASW5wdXQoKVxyXG4gIEBPcHRpb24oKVxyXG4gIHByb3RlY3RlZCByZWFkT25seTogYm9vbGVhbjtcclxuICBASW5wdXQoKVxyXG4gIEBJMThOKClcclxuICBAT3B0aW9uKClcclxuICBwcm90ZWN0ZWQgaGVscDogYW55O1xyXG5cclxuICAvLyAtLS0gc2VsZlxyXG4gIEBJMThOKClcclxuICBAT3B0aW9uKClcclxuICBASW5wdXQoKVxyXG4gIHByaXZhdGUgZGVzY3JpcHRpb246IHN0cmluZztcclxuICBASW5wdXQoKVxyXG4gIEBPcHRpb24oKVxyXG4gIHByb3RlY3RlZCB3aWR0aDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpXHJcbiAgQE9wdGlvbigpXHJcbiAgcHJvdGVjdGVkIGhlaWdodDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpXHJcbiAgQE9wdGlvbigpXHJcbiAgcHJvdGVjdGVkIGludmVydDogYm9vbGVhbjtcclxuICBASW5wdXQoKVxyXG4gIEBPcHRpb24oKVxyXG4gIHByb3RlY3RlZCBtYXg6IG51bWJlcjtcclxuICBASW5wdXQoKVxyXG4gIEBPcHRpb24oKVxyXG4gIHByb3RlY3RlZCBtaW46IG51bWJlcjtcclxuICBASW5wdXQoKVxyXG4gIEBPcHRpb24oKVxyXG4gIHByb3RlY3RlZCBzdGVwOiBudW1iZXI7XHJcbiAgQElucHV0KClcclxuICBAT3B0aW9uKClcclxuICBwcm90ZWN0ZWQgdGh1bWJMYWJlbDogYm9vbGVhbjtcclxuICBASW5wdXQoKVxyXG4gIEBPcHRpb24oKVxyXG4gIHByb3RlY3RlZCB2ZXJ0aWNhbDogYm9vbGVhbjtcclxuICBASW5wdXQoKVxyXG4gIEBPcHRpb24oKVxyXG4gIHByb3RlY3RlZCB0aWNrSW50ZXJ2YWw6ICdhdXRvJyB8IG51bWJlcjtcclxuXHJcbiAgLy8gUmUtZGVjbGFyZSBmaWVsZCB0byBkZWNsYXJlIG5nIEBPdXRwdXQuXHJcbiAgLy8gLS0tIGZyb20gQWJzdHJhY3RIYXNEYXRhXHJcbiAgQE91dHB1dCgncGh4TG9hZCcpXHJcbiAgQE9wdGlvbignbG9hZCcpXHJcbiAgcHJvdGVjdGVkIGxvYWRFdmVudDogRXZlbnRFbWl0dGVyPGFueT47XHJcbiAgLy8gLS0tIGZyb20gQWJzdHJhY3REYXRhVmlld1xyXG4gIC8vIC0tLSBmcm9tIEFic3RyYWN0SW5wdXREYXRhVmlld1xyXG4gIEBPdXRwdXQoJ3BoeFN0YXJ0VmFsaWRhdGUnKVxyXG4gIEBPcHRpb24oJ3N0YXJ0VmFsaWRhdGUnKVxyXG4gIHByb3RlY3RlZCBzdGFydFZhbGlkYXRlRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xyXG4gIEBPdXRwdXQoJ3BoeEVuZFZhbGlkYXRlJylcclxuICBAT3B0aW9uKCdlbmRWYWxpZGF0ZScpXHJcbiAgcHJvdGVjdGVkIGVuZFZhbGlkYXRlRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xyXG4gIEBPdXRwdXQoJ3BoeEJlZm9yZUZvY3VzJylcclxuICBAT3B0aW9uKCdiZWZvcmVGb2N1cycpXHJcbiAgcHJvdGVjdGVkIGJlZm9yZUZvY3VzRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xyXG4gIEBPdXRwdXQoJ3BoeEZvY3VzJylcclxuICBAT3B0aW9uKCdmb2N1cycpXHJcbiAgcHJvdGVjdGVkIGZvY3VzRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xyXG4gIEBPdXRwdXQoJ3BoeEJlZm9yZUxvc3RGb2N1cycpXHJcbiAgQE9wdGlvbignYmVmb3JlTG9zdEZvY3VzJylcclxuICBwcm90ZWN0ZWQgYmVmb3JlTG9zdEZvY3VzRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xyXG4gIEBPdXRwdXQoJ3BoeExvc3RGb2N1cycpXHJcbiAgQE9wdGlvbignbG9zdEZvY3VzJylcclxuICBwcm90ZWN0ZWQgbG9zdEZvY3VzRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xyXG4gIEBPdXRwdXQoJ3BoeEJlZm9yZUNoYW5nZScpXHJcbiAgQE9wdGlvbignYmVmb3JlQ2hhbmdlJylcclxuICBwcm90ZWN0ZWQgYmVmb3JlQ2hhbmdlRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xyXG4gIEBPdXRwdXQoJ3BoeENoYW5nZScpXHJcbiAgQE9wdGlvbignY2hhbmdlJylcclxuICBwcm90ZWN0ZWQgY2hhbmdlRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xyXG5cclxuICAvLyAtLS0gU2VsZlxyXG5cclxuICBAT3V0cHV0KCdwaHhCZWZvcmVDbGljaycpXHJcbiAgQE9wdGlvbignYmVmb3JlQ2xpY2snKVxyXG4gIHByb3RlY3RlZCBiZWZvcmVDbGlja0V2ZW50OiBFdmVudEVtaXR0ZXI8YW55PjtcclxuICBAT3V0cHV0KCdwaHhDbGljaycpXHJcbiAgQE9wdGlvbignY2xpY2snKVxyXG4gIHByb3RlY3RlZCBjbGlja0V2ZW50OiBFdmVudEVtaXR0ZXI8YW55PjtcclxuXHJcbiAgQFZpZXdDaGlsZCgnbWNvbXAnKVxyXG4gIHByaXZhdGUgc2xpZGVyOiBNYXRTbGlkZXI7XHJcbiAgcHJpdmF0ZSBfb2xkVmFsdWU6IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IoZWxlbWVudFJlZjogRWxlbWVudFJlZiwgbmVlZEZvY3VzU2VydmljZTogTmVlZEZvY3VzU2VydmljZSkge1xyXG4gICAgc3VwZXIoZWxlbWVudFJlZiwgbmVlZEZvY3VzU2VydmljZSlcclxuXHJcbiAgICB0aGlzLmJlZm9yZUNsaWNrRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICB0aGlzLmNsaWNrRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICB0aGlzLmJlZm9yZUZvY3VzRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICB0aGlzLmZvY3VzRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICB0aGlzLmJlZm9yZUxvc3RGb2N1c0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgdGhpcy5sb3N0Rm9jdXNFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIHRoaXMuYmVmb3JlQ2hhbmdlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICB0aGlzLmNoYW5nZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAgIHRoaXMuZGlzYWJsZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5pbml0RXZlbnRIYW5kbGVycygpO1xyXG5cclxuICAgICAgdGhpcy5fb2xkVmFsdWUgPSB0aGlzLnNsaWRlci52YWx1ZTtcclxuICAgIH0sIDIwKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0RXZlbnRIYW5kbGVycygpOiB2b2lkIHtcclxuICAgICQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpLmZpbmQoJ21hdC1zbGlkZXIubWF0LXNsaWRlcicpLmZvY3VzKCgkZXZlbnQpID0+IHtcclxuICAgICAgdGhpcy5vbkZvY3VzaW5nKCRldmVudCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICAkKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KS5maW5kKCdtYXQtc2xpZGVyLm1hdC1zbGlkZXInKS5ibHVyKCgkZXZlbnQpID0+IHtcclxuICAgICAgdGhpcy5vbkxvc3RGb2N1c2luZygkZXZlbnQpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNJbnZlcnQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5pbnZlcnQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0SW52ZXJ0KGludmVydDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5pbnZlcnQgPSBpbnZlcnQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0TWF4aW11bSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMubWF4O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldE1heGltdW0obWF4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMubWF4ID0gbWF4O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldE1pbmltdW0oKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLm1pbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRNaW5pbXVtKG1pbjogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLm1pbiA9IG1pbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTdGVwKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5zdGVwO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFN0ZXAoc3RlcDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLnN0ZXAgPSBzdGVwO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGlzVmVydGljYWwoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy52ZXJ0aWNhbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRWZXJ0aWNhbCh2ZXJ0aWNhbDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy52ZXJ0aWNhbCA9IHZlcnRpY2FsO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGlzVGh1bWJMYWJlbCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnRodW1iTGFiZWw7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0VGh1bWJMYWJlbCh0aHVtYkxhYmVsOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLnRodW1iTGFiZWwgPSB0aHVtYkxhYmVsO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFRpY2tJbnRlcnZhbCgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMudGlja0ludGVydmFsO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFRpY2tJbnRlcnZhbCh0aWNrSW50ZXJ2YWw6ICdhdXRvJyB8IG51bWJlcik6IHZvaWQge1xyXG4gICAgaWYgKHR5cGVvZiB0aWNrSW50ZXJ2YWwgPT09IFwibnVtYmVyXCIpIHtcclxuICAgICAgdGhpcy50aWNrSW50ZXJ2YWwgPSB0aWNrSW50ZXJ2YWw7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRpY2tJbnRlcnZhbCA9ICdhdXRvJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXREZXNjcmlwdGlvbigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuZGVzY3JpcHRpb247XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0RGVzY3JpcHRpb24oZGVzY3JpcHRpb246IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhc0Rlc2NyaXB0aW9uKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuZGVzY3JpcHRpb24gIT09IG51bGwgJiYgdHlwZW9mIHRoaXMuZGVzY3JpcHRpb24gPT09ICdzdHJpbmcnICYmIHRoaXMuZGVzY3JpcHRpb24gIT09ICcnKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkNoYW5nZWQoJGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuc2xpZGVyLnZhbHVlID0gdGhpcy5fb2xkVmFsdWU7XHJcblxyXG4gICAgdGhpcy5zZXRJbnB1dFZhbHVlKCRldmVudC52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DbGlja2VkKCRldmVudDogRXZlbnQsIGZpcmVFdmVudD86IGJvb2xlYW4