UNPKG

com.phloxui

Version:

PhloxUI Ng2+ Framework

246 lines (245 loc) 17.9 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ import * as tslib_1 from "tslib"; import { Component, Input } from '@angular/core'; import { LoaderStatus } from '../../../component/LoaderStatus'; import { Option } from '../../../decorator/decorators'; import { AbstractHasOptions } from '../../../share/AbstractHasOptions'; const /** @type {?} */ TYPE_NAME = "material-icon-loader"; const /** @type {?} */ BALL_PULSE = "ball-pulse"; const /** @type {?} */ BALL_GRID_PULSE = "ball-grid-pulse"; const /** @type {?} */ BALL_PULSE_SYNC = "ball-pulse-sync"; const /** @type {?} */ BALL_CLIP_ROTATE_MULTIPLE = "ball-clip-rotate-multiple"; const /** @type {?} */ BALL_PULSE_RISE = "ball-pulse-rise"; const /** @type {?} */ BALL_CLIP_ROTATE_PULSE = "ball-clip-rotate-pulse"; const /** @type {?} */ BALL_CLIP_ROTATE = "ball-clip-rotate"; const /** @type {?} */ BALL_SCALE_RIPPLE_MULTIPLE = "ball-scale-ripple-multiple"; const /** @type {?} */ BALL_SCALE_MULTIPLE = "ball-scale-multiple"; const /** @type {?} */ LINE_SPIN_FADE_LOADER = "line-spin-fade-loader"; const /** @type {?} */ LINE_SCALE = "line-scale"; const /** @type {?} */ LINE_SCALE_PARTY = "line-scale-party"; const /** @type {?} */ LINE_SCALE_PULSE_OUT = "line-scale-pulse-out"; const /** @type {?} */ LINE_SCALE_PULSE_OUT_RAPID = "line-scale-pulse-out-rapid"; const /** @type {?} */ SQUARE_SPIN = "square-spin"; export class MaterialIconLoader extends AbstractHasOptions { constructor() { super(); this.status = LoaderStatus.STOPPED; } /** * @return {?} */ ngOnInit() { } /** * @return {?} */ _getIconName() { if (this.iconName !== null && typeof this.iconName !== 'undefined') { return this.iconName; } return MaterialIconLoader.BALL_CLIP_ROTATE_PULSE; } /** * @return {?} */ start() { if (this.isStopped()) { this.status = LoaderStatus.RUNNING; } return Promise.resolve(); } /** * @return {?} */ pause() { if (this.isRunning()) { this.status = LoaderStatus.PAUSED; } } /** * @return {?} */ resume() { if (this.isPaused()) { this.status = LoaderStatus.RUNNING; } } /** * @return {?} */ stop() { if (this.isRunning() || this.isPaused()) { this.status = LoaderStatus.STOPPED; } } /** * @return {?} */ getState() { return this.status; } /** * @return {?} */ isRunning() { return this.status === LoaderStatus.RUNNING; } /** * @return {?} */ isPaused() { return this.status === LoaderStatus.PAUSED; } /** * @return {?} */ isStopped() { return this.status === LoaderStatus.STOPPED; } /** * @return {?} */ getSize() { return this.size; } /** * @param {?} size * @return {?} */ setSize(size) { this.size = size; } /** * @return {?} */ getLoaderClass() { return this.loaderClass; } /** * @param {?} loaderClass * @return {?} */ setLoaderClass(loaderClass) { this.loaderClass = loaderClass; } /** * @return {?} */ isDisabled() { return this.disabled; } /** * @param {?} disabled * @return {?} */ setDisabled(disabled) { this.disabled = disabled; } } MaterialIconLoader.TYPE_NAME = TYPE_NAME; MaterialIconLoader.BALL_PULSE = BALL_PULSE; MaterialIconLoader.BALL_GRID_PULSE = BALL_GRID_PULSE; MaterialIconLoader.BALL_CLIP_ROTATE_MULTIPLE = BALL_CLIP_ROTATE_MULTIPLE; MaterialIconLoader.BALL_PULSE_RISE = BALL_PULSE_RISE; MaterialIconLoader.BALL_CLIP_ROTATE_PULSE = BALL_CLIP_ROTATE_PULSE; MaterialIconLoader.BALL_CLIP_ROTATE = BALL_CLIP_ROTATE; MaterialIconLoader.BALL_SCALE_RIPPLE_MULTIPLE = BALL_SCALE_RIPPLE_MULTIPLE; MaterialIconLoader.BALL_SCALE_MULTIPLE = BALL_SCALE_MULTIPLE; MaterialIconLoader.BALL_PULSE_SYNC = BALL_PULSE_SYNC; MaterialIconLoader.LINE_SPIN_FADE_LOADER = LINE_SPIN_FADE_LOADER; MaterialIconLoader.LINE_SCALE = LINE_SCALE; MaterialIconLoader.LINE_SCALE_PARTY = LINE_SCALE_PARTY; MaterialIconLoader.LINE_SCALE_PULSE_OUT = LINE_SCALE_PULSE_OUT; MaterialIconLoader.LINE_SCALE_PULSE_OUT_RAPID = LINE_SCALE_PULSE_OUT_RAPID; MaterialIconLoader.SQUARE_SPIN = SQUARE_SPIN; MaterialIconLoader.decorators = [ { type: Component, args: [{ moduleId: module.id, selector: TYPE_NAME, template: `<div class="material-icon-loader" [style.width]="getSize()" [style.height]="getSize()" [class.disable]="isDisabled()" [class.running]="isRunning()" [class.pause]="isPaused()" [class.stop]="isStopped()"> <loaders-css [loader]="_getIconName()" [loaderClass]="getLoaderClass()"></loaders-css> </div> ` },] }, ]; /** @nocollapse */ MaterialIconLoader.ctorParameters = () => []; MaterialIconLoader.propDecorators = { "iconName": [{ type: Input },], "size": [{ type: Input },], "loaderClass": [{ type: Input },], "disabled": [{ type: Input },], }; tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", String) ], MaterialIconLoader.prototype, "iconName", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", String) ], MaterialIconLoader.prototype, "size", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", String) ], MaterialIconLoader.prototype, "loaderClass", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], MaterialIconLoader.prototype, "disabled", void 0); function MaterialIconLoader_tsickle_Closure_declarations() { /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */ MaterialIconLoader.decorators; /** * @nocollapse * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>} */ MaterialIconLoader.ctorParameters; /** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */ MaterialIconLoader.propDecorators; /** @type {?} */ MaterialIconLoader.TYPE_NAME; /** @type {?} */ MaterialIconLoader.BALL_PULSE; /** @type {?} */ MaterialIconLoader.BALL_GRID_PULSE; /** @type {?} */ MaterialIconLoader.BALL_CLIP_ROTATE_MULTIPLE; /** @type {?} */ MaterialIconLoader.BALL_PULSE_RISE; /** @type {?} */ MaterialIconLoader.BALL_CLIP_ROTATE_PULSE; /** @type {?} */ MaterialIconLoader.BALL_CLIP_ROTATE; /** @type {?} */ MaterialIconLoader.BALL_SCALE_RIPPLE_MULTIPLE; /** @type {?} */ MaterialIconLoader.BALL_SCALE_MULTIPLE; /** @type {?} */ MaterialIconLoader.BALL_PULSE_SYNC; /** @type {?} */ MaterialIconLoader.LINE_SPIN_FADE_LOADER; /** @type {?} */ MaterialIconLoader.LINE_SCALE; /** @type {?} */ MaterialIconLoader.LINE_SCALE_PARTY; /** @type {?} */ MaterialIconLoader.LINE_SCALE_PULSE_OUT; /** @type {?} */ MaterialIconLoader.LINE_SCALE_PULSE_OUT_RAPID; /** @type {?} */ MaterialIconLoader.SQUARE_SPIN; /** @type {?} */ MaterialIconLoader.prototype.iconName; /** @type {?} */ MaterialIconLoader.prototype.size; /** @type {?} */ MaterialIconLoader.prototype.loaderClass; /** @type {?} */ MaterialIconLoader.prototype.disabled; /** @type {?} */ MaterialIconLoader.prototype.status; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWF0ZXJpYWxJY29uTG9hZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2NvbS5waGxveHVpLyIsInNvdXJjZXMiOlsibGliL3RoZW1lL21hdGVyaWFsL2NvbXBvbmVudC9NYXRlcmlhbEljb25Mb2FkZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUl2RSx1QkFBTSxTQUFTLEdBQVcsc0JBQXNCLENBQUM7QUFFakQsdUJBQU0sVUFBVSxHQUFXLFlBQVksQ0FBQztBQUN4Qyx1QkFBTSxlQUFlLEdBQVcsaUJBQWlCLENBQUM7QUFDbEQsdUJBQU0sZUFBZSxHQUFXLGlCQUFpQixDQUFDO0FBQ2xELHVCQUFNLHlCQUF5QixHQUFXLDJCQUEyQixDQUFDO0FBQ3RFLHVCQUFNLGVBQWUsR0FBVyxpQkFBaUIsQ0FBQztBQUNsRCx1QkFBTSxzQkFBc0IsR0FBVyx3QkFBd0IsQ0FBQztBQUNoRSx1QkFBTSxnQkFBZ0IsR0FBVyxrQkFBa0IsQ0FBQztBQUNwRCx1QkFBTSwwQkFBMEIsR0FBVyw0QkFBNEIsQ0FBQztBQUN4RSx1QkFBTSxtQkFBbUIsR0FBVyxxQkFBcUIsQ0FBQztBQUMxRCx1QkFBTSxxQkFBcUIsR0FBVyx1QkFBdUIsQ0FBQztBQUM5RCx1QkFBTSxVQUFVLEdBQVcsWUFBWSxDQUFDO0FBQ3hDLHVCQUFNLGdCQUFnQixHQUFXLGtCQUFrQixDQUFDO0FBQ3BELHVCQUFNLG9CQUFvQixHQUFXLHNCQUFzQixDQUFDO0FBQzVELHVCQUFNLDBCQUEwQixHQUFXLDRCQUE0QixDQUFDO0FBQ3hF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S0FBSztxQkFHTCxLQUFLOzRCQUdMLEtBQUs7eUJBR0wsS0FBSzs7O0lBUkwsTUFBTSxFQUFFOzs7O0lBR1IsTUFBTSxFQUFFOzs7O0lBR1IsTUFBTSxFQUFFOzs7O0lBR1IsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJTG9hZGVyIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50L0lMb2FkZXInO1xuaW1wb3J0IHsgTG9hZGVyU3RhdHVzIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50L0xvYWRlclN0YXR1cyc7XG5pbXBvcnQgeyBPcHRpb24gfSBmcm9tICcuLi8uLi8uLi9kZWNvcmF0b3IvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBYnN0cmFjdEhhc09wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9zaGFyZS9BYnN0cmFjdEhhc09wdGlvbnMnO1xuXG5kZWNsYXJlIHZhciAkOiBhbnk7XG5cbmNvbnN0IFRZUEVfTkFNRTogc3RyaW5nID0gXCJtYXRlcmlhbC1pY29uLWxvYWRlclwiO1xuXG5jb25zdCBCQUxMX1BVTFNFOiBzdHJpbmcgPSBcImJhbGwtcHVsc2VcIjtcbmNvbnN0IEJBTExfR1JJRF9QVUxTRTogc3RyaW5nID0gXCJiYWxsLWdyaWQtcHVsc2VcIjtcbmNvbnN0IEJBTExfUFVMU0VfU1lOQzogc3RyaW5nID0gXCJiYWxsLXB1bHNlLXN5bmNcIjtcbmNvbnN0IEJBTExfQ0xJUF9ST1RBVEVfTVVMVElQTEU6IHN0cmluZyA9IFwiYmFsbC1jbGlwLXJvdGF0ZS1tdWx0aXBsZVwiO1xuY29uc3QgQkFMTF9QVUxTRV9SSVNFOiBzdHJpbmcgPSBcImJhbGwtcHVsc2UtcmlzZVwiO1xuY29uc3QgQkFMTF9DTElQX1JPVEFURV9QVUxTRTogc3RyaW5nID0gXCJiYWxsLWNsaXAtcm90YXRlLXB1bHNlXCI7XG5jb25zdCBCQUxMX0NMSVBfUk9UQVRFOiBzdHJpbmcgPSBcImJhbGwtY2xpcC1yb3RhdGVcIjtcbmNvbnN0IEJBTExfU0NBTEVfUklQUExFX01VTFRJUExFOiBzdHJpbmcgPSBcImJhbGwtc2NhbGUtcmlwcGxlLW11bHRpcGxlXCI7XG5jb25zdCBCQUxMX1NDQUxFX01VTFRJUExFOiBzdHJpbmcgPSBcImJhbGwtc2NhbGUtbXVsdGlwbGVcIjtcbmNvbnN0IExJTkVfU1BJTl9GQURFX0xPQURFUjogc3RyaW5nID0gXCJsaW5lLXNwaW4tZmFkZS1sb2FkZXJcIjtcbmNvbnN0IExJTkVfU0NBTEU6IHN0cmluZyA9IFwibGluZS1zY2FsZVwiO1xuY29uc3QgTElORV9TQ0FMRV9QQVJUWTogc3RyaW5nID0gXCJsaW5lLXNjYWxlLXBhcnR5XCI7XG5jb25zdCBMSU5FX1NDQUxFX1BVTFNFX09VVDogc3RyaW5nID0gXCJsaW5lLXNjYWxlLXB1bHNlLW91dFwiO1xuY29uc3QgTElORV9TQ0FMRV9QVUxTRV9PVVRfUkFQSUQ6IHN0cmluZyA9IFwibGluZS1zY2FsZS1wdWxzZS1vdXQtcmFwaWRcIjtcbmNvbnN0IFNRVUFSRV9TUElOOiBzdHJpbmcgPSBcInNxdWFyZS1zcGluXCI7XG4gXG5AQ29tcG9uZW50KHtcbiAgbW9kdWxlSWQ6IG1vZHVsZS5pZCxcbiAgc2VsZWN0b3I6IFRZUEVfTkFNRSxcbiAgdGVtcGxhdGU6IGA8ZGl2IGNsYXNzPVwibWF0ZXJpYWwtaWNvbi1sb2FkZXJcIiBbc3R5bGUud2lkdGhdPVwiZ2V0U2l6ZSgpXCIgW3N0eWxlLmhlaWdodF09XCJnZXRTaXplKClcIiBbY2xhc3MuZGlzYWJsZV09XCJpc0Rpc2FibGVkKClcIiBbY2xhc3MucnVubmluZ109XCJpc1J1bm5pbmcoKVwiIFtjbGFzcy5wYXVzZV09XCJpc1BhdXNlZCgpXCIgW2NsYXNzLnN0b3BdPVwiaXNTdG9wcGVkKClcIj5cbiAgPGxvYWRlcnMtY3NzIFtsb2FkZXJdPVwiX2dldEljb25OYW1lKClcIiBbbG9hZGVyQ2xhc3NdPVwiZ2V0TG9hZGVyQ2xhc3MoKVwiPjwvbG9hZGVycy1jc3M+XG48L2Rpdj5cbmBcbn0pXG5leHBvcnQgY2xhc3MgTWF0ZXJpYWxJY29uTG9hZGVyIGV4dGVuZHMgQWJzdHJhY3RIYXNPcHRpb25zIGltcGxlbWVudHMgT25Jbml0LCBJTG9hZGVyIHtcblxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFRZUEVfTkFNRTogc3RyaW5nID0gVFlQRV9OQU1FO1xuXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQkFMTF9QVUxTRTogc3RyaW5nID0gQkFMTF9QVUxTRTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBCQUxMX0dSSURfUFVMU0U6IHN0cmluZyA9IEJBTExfR1JJRF9QVUxTRTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBCQUxMX0NMSVBfUk9UQVRFX01VTFRJUExFOiBzdHJpbmcgPSBCQUxMX0NMSVBfUk9UQVRFX01VTFRJUExFO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEJBTExfUFVMU0VfUklTRTogc3RyaW5nID0gQkFMTF9QVUxTRV9SSVNFO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEJBTExfQ0xJUF9ST1RBVEVfUFVMU0U6IHN0cmluZyA9IEJBTExfQ0xJUF9ST1RBVEVfUFVMU0U7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQkFMTF9DTElQX1JPVEFURTogc3RyaW5nID0gQkFMTF9DTElQX1JPVEFURTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBCQUxMX1NDQUxFX1JJUFBMRV9NVUxUSVBMRTogc3RyaW5nID0gQkFMTF9TQ0FMRV9SSVBQTEVfTVVMVElQTEU7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQkFMTF9TQ0FMRV9NVUxUSVBMRTogc3RyaW5nID0gQkFMTF9TQ0FMRV9NVUxUSVBMRTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBCQUxMX1BVTFNFX1NZTkM6IHN0cmluZyA9IEJBTExfUFVMU0VfU1lOQztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBMSU5FX1NQSU5fRkFERV9MT0FERVI6IHN0cmluZyA9IExJTkVfU1BJTl9GQURFX0xPQURFUjtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBMSU5FX1NDQUxFOiBzdHJpbmcgPSBMSU5FX1NDQUxFO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IExJTkVfU0NBTEVfUEFSVFk6IHN0cmluZyA9IExJTkVfU0NBTEVfUEFSVFk7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTElORV9TQ0FMRV9QVUxTRV9PVVQ6IHN0cmluZyA9IExJTkVfU0NBTEVfUFVMU0VfT1VUO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IExJTkVfU0NBTEVfUFVMU0VfT1VUX1JBUElEOiBzdHJpbmcgPSBMSU5FX1NDQUxFX1BVTFNFX09VVF9SQVBJRDtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBTUVVBUkVfU1BJTjogc3RyaW5nID0gU1FVQVJFX1NQSU47XG5cbiAgQElucHV0KClcbiAgQE9wdGlvbigpXG4gIHByaXZhdGUgaWNvbk5hbWU6IHN0cmluZztcbiAgQElucHV0KClcbiAgQE9wdGlvbigpXG4gIHByaXZhdGUgc2l6ZTogc3RyaW5nO1xuICBASW5wdXQoKVxuICBAT3B0aW9uKClcbiAgcHJpdmF0ZSBsb2FkZXJDbGFzczogc3RyaW5nO1xuICBASW5wdXQoKVxuICBAT3B0aW9uKClcbiAgcHJpdmF0ZSBkaXNhYmxlZDogYm9vbGVhbjtcblxuICBwcml2YXRlIHN0YXR1czogTG9hZGVyU3RhdHVzO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLnN0YXR1cyA9IExvYWRlclN0YXR1cy5TVE9QUEVEO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbiAgcHVibGljIF9nZXRJY29uTmFtZSgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmljb25OYW1lICE9PSBudWxsICYmIHR5cGVvZiB0aGlzLmljb25OYW1lICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuIHRoaXMuaWNvbk5hbWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIE1hdGVyaWFsSWNvbkxvYWRlci5CQUxMX0NMSVBfUk9UQVRFX1BVTFNFO1xuICB9XG5cbiAgcHVibGljIHN0YXJ0KCk6IFByb21pc2U8YW55PiB7XG4gICAgaWYgKHRoaXMuaXNTdG9wcGVkKCkpIHtcbiAgICAgIHRoaXMuc3RhdHVzID0gTG9hZGVyU3RhdHVzLlJVTk5JTkc7XG4gICAgfVxuXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICB9XG5cbiAgcHVibGljIHBhdXNlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzUnVubmluZygpKSB7XG4gICAgICB0aGlzLnN0YXR1cyA9IExvYWRlclN0YXR1cy5QQVVTRUQ7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlc3VtZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc1BhdXNlZCgpKSB7XG4gICAgICB0aGlzLnN0YXR1cyA9IExvYWRlclN0YXR1cy5SVU5OSU5HO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzdG9wKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzUnVubmluZygpIHx8IHRoaXMuaXNQYXVzZWQoKSkge1xuICAgICAgdGhpcy5zdGF0dXMgPSBMb2FkZXJTdGF0dXMuU1RPUFBFRDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0U3RhdGUoKTogTG9hZGVyU3RhdHVzIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0dXM7XG4gIH1cblxuICBwdWJsaWMgaXNSdW5uaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXR1cyA9PT0gTG9hZGVyU3RhdHVzLlJVTk5JTkc7XG4gIH1cblxuICBwdWJsaWMgaXNQYXVzZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdHVzID09PSBMb2FkZXJTdGF0dXMuUEFVU0VEO1xuICB9XG5cbiAgcHVibGljIGlzU3RvcHBlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0dXMgPT09IExvYWRlclN0YXR1cy5TVE9QUEVEO1xuICB9XG5cbiAgcHVibGljIGdldFNpemUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5zaXplO1xuICB9XG5cbiAgcHVibGljIHNldFNpemUoc2l6ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zaXplID0gc2l6ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRMb2FkZXJDbGFzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmxvYWRlckNsYXNzO1xuICB9XG5cbiAgcHVibGljIHNldExvYWRlckNsYXNzKGxvYWRlckNsYXNzOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWRlckNsYXNzID0gbG9hZGVyQ2xhc3M7XG4gIH1cblxuICBwdWJsaWMgaXNEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kaXNhYmxlZDtcbiAgfVxuXG4gIHB1YmxpYyBzZXREaXNhYmxlZChkaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgfVxufVxuIl19