UNPKG

ng-zorro-antd

Version:

An enterprise-class UI components based on Ant Design and Angular

381 lines 24.4 kB
/** * @fileoverview added by tsickle * Generated from: time-holder.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * @license * Copyright Alibaba.com All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE */ import { Subject } from 'rxjs'; import { isNil, isNotNil } from 'ng-zorro-antd/core/util'; var TimeHolder = /** @class */ (function () { function TimeHolder() { this.selected12Hours = undefined; this._use12Hours = false; this._changes = new Subject(); } /** * @template THIS * @this {THIS} * @param {?} value * @param {?} disabled * @return {THIS} */ TimeHolder.prototype.setMinutes = /** * @template THIS * @this {THIS} * @param {?} value * @param {?} disabled * @return {THIS} */ function (value, disabled) { if (value !== (/** @type {?} */ (this)).minutes && !disabled) { (/** @type {?} */ (this)).initValue(); (/** @type {?} */ (this)).value.setMinutes(value); (/** @type {?} */ (this)).update(); } return (/** @type {?} */ (this)); }; /** * @template THIS * @this {THIS} * @param {?} value * @param {?} disabled * @return {THIS} */ TimeHolder.prototype.setHours = /** * @template THIS * @this {THIS} * @param {?} value * @param {?} disabled * @return {THIS} */ function (value, disabled) { if (value !== (/** @type {?} */ (this)).hours && !disabled) { (/** @type {?} */ (this)).initValue(); if ((/** @type {?} */ (this))._use12Hours) { if ((/** @type {?} */ (this)).selected12Hours === 'PM' && value !== 12) { (/** @type {?} */ (this)).value.setHours(((/** @type {?} */ (value))) + 12); } else if ((/** @type {?} */ (this)).selected12Hours === 'AM' && value === 12) { (/** @type {?} */ (this)).value.setHours(0); } else { (/** @type {?} */ (this)).value.setHours(value); } } else { (/** @type {?} */ (this)).value.setHours(value); } (/** @type {?} */ (this)).update(); } return (/** @type {?} */ (this)); }; /** * @template THIS * @this {THIS} * @param {?} value * @param {?} disabled * @return {THIS} */ TimeHolder.prototype.setSeconds = /** * @template THIS * @this {THIS} * @param {?} value * @param {?} disabled * @return {THIS} */ function (value, disabled) { if (value !== (/** @type {?} */ (this)).seconds && !disabled) { (/** @type {?} */ (this)).initValue(); (/** @type {?} */ (this)).value.setSeconds(value); (/** @type {?} */ (this)).update(); } return (/** @type {?} */ (this)); }; /** * @template THIS * @this {THIS} * @param {?} value * @return {THIS} */ TimeHolder.prototype.setUse12Hours = /** * @template THIS * @this {THIS} * @param {?} value * @return {THIS} */ function (value) { (/** @type {?} */ (this))._use12Hours = value; return (/** @type {?} */ (this)); }; Object.defineProperty(TimeHolder.prototype, "changes", { get: /** * @return {?} */ function () { return this._changes.asObservable(); }, enumerable: true, configurable: true }); /** * @template THIS * @this {THIS} * @param {?} value * @param {?=} use12Hours * @return {THIS} */ TimeHolder.prototype.setValue = /** * @template THIS * @this {THIS} * @param {?} value * @param {?=} use12Hours * @return {THIS} */ function (value, use12Hours) { if (isNotNil(use12Hours)) { (/** @type {?} */ (this))._use12Hours = (/** @type {?} */ (use12Hours)); } if (value !== (/** @type {?} */ (this)).value) { (/** @type {?} */ (this))._value = value; if (isNotNil((/** @type {?} */ (this)).value)) { if ((/** @type {?} */ (this))._use12Hours && isNotNil((/** @type {?} */ (this)).hours)) { (/** @type {?} */ (this)).selected12Hours = (/** @type {?} */ (this)).hours >= 12 ? 'PM' : 'AM'; } } else { (/** @type {?} */ (this))._clear(); } } return (/** @type {?} */ (this)); }; /** * @return {?} */ TimeHolder.prototype.initValue = /** * @return {?} */ function () { if (isNil(this.value)) { this.setValue(new Date(), this._use12Hours); } }; /** * @return {?} */ TimeHolder.prototype.clear = /** * @return {?} */ function () { this._clear(); this.update(); }; Object.defineProperty(TimeHolder.prototype, "isEmpty", { get: /** * @return {?} */ function () { return !(isNotNil(this.hours) || isNotNil(this.minutes) || isNotNil(this.seconds)); }, enumerable: true, configurable: true }); /** * @private * @return {?} */ TimeHolder.prototype._clear = /** * @private * @return {?} */ function () { this._value = undefined; this.selected12Hours = undefined; }; /** * @private * @return {?} */ TimeHolder.prototype.update = /** * @private * @return {?} */ function () { if (this.isEmpty) { this._value = undefined; } else { if (isNotNil(this.hours)) { (/** @type {?} */ (this.value)).setHours((/** @type {?} */ (this.hours))); } if (isNotNil(this.minutes)) { (/** @type {?} */ (this.value)).setMinutes((/** @type {?} */ (this.minutes))); } if (isNotNil(this.seconds)) { (/** @type {?} */ (this.value)).setSeconds((/** @type {?} */ (this.seconds))); } if (this._use12Hours) { if (this.selected12Hours === 'PM' && (/** @type {?} */ (this.hours)) < 12) { (/** @type {?} */ (this.value)).setHours((/** @type {?} */ (this.hours)) + 12); } if (this.selected12Hours === 'AM' && (/** @type {?} */ (this.hours)) >= 12) { (/** @type {?} */ (this.value)).setHours((/** @type {?} */ (this.hours)) - 12); } } } this.changed(); }; /** * @return {?} */ TimeHolder.prototype.changed = /** * @return {?} */ function () { this._changes.next(this.value); }; Object.defineProperty(TimeHolder.prototype, "viewHours", { /** * @description * UI view hours * Get viewHours which is selected in `time-picker-panel` and its range is [12, 1, 2, ..., 11] */ get: /** * \@description * UI view hours * Get viewHours which is selected in `time-picker-panel` and its range is [12, 1, 2, ..., 11] * @return {?} */ function () { return this._use12Hours && isNotNil(this.hours) ? this.calculateViewHour((/** @type {?} */ (this.hours))) : this.hours; }, enumerable: true, configurable: true }); /** * @param {?} value * @return {?} */ TimeHolder.prototype.setSelected12Hours = /** * @param {?} value * @return {?} */ function (value) { if ((/** @type {?} */ (value)).toUpperCase() !== this.selected12Hours) { this.selected12Hours = (/** @type {?} */ (value)).toUpperCase(); this.update(); } }; Object.defineProperty(TimeHolder.prototype, "value", { get: /** * @return {?} */ function () { return this._value || this._defaultOpenValue; }, enumerable: true, configurable: true }); Object.defineProperty(TimeHolder.prototype, "hours", { get: /** * @return {?} */ function () { var _a; return (_a = this.value) === null || _a === void 0 ? void 0 : _a.getHours(); }, enumerable: true, configurable: true }); Object.defineProperty(TimeHolder.prototype, "minutes", { get: /** * @return {?} */ function () { var _a; return (_a = this.value) === null || _a === void 0 ? void 0 : _a.getMinutes(); }, enumerable: true, configurable: true }); Object.defineProperty(TimeHolder.prototype, "seconds", { get: /** * @return {?} */ function () { var _a; return (_a = this.value) === null || _a === void 0 ? void 0 : _a.getSeconds(); }, enumerable: true, configurable: true }); /** * @template THIS * @this {THIS} * @param {?} value * @return {THIS} */ TimeHolder.prototype.setDefaultOpenValue = /** * @template THIS * @this {THIS} * @param {?} value * @return {THIS} */ function (value) { (/** @type {?} */ (this))._defaultOpenValue = value; return (/** @type {?} */ (this)); }; /** * @private * @param {?} value * @return {?} */ TimeHolder.prototype.calculateViewHour = /** * @private * @param {?} value * @return {?} */ function (value) { /** @type {?} */ var selected12Hours = this.selected12Hours; if (selected12Hours === 'PM' && value > 12) { return value - 12; } if (selected12Hours === 'AM' && value === 0) { return 12; } return value; }; return TimeHolder; }()); export { TimeHolder }; if (false) { /** @type {?} */ TimeHolder.prototype.selected12Hours; /** * @type {?} * @private */ TimeHolder.prototype._value; /** * @type {?} * @private */ TimeHolder.prototype._use12Hours; /** * @type {?} * @private */ TimeHolder.prototype._defaultOpenValue; /** * @type {?} * @private */ TimeHolder.prototype._changes; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1ob2xkZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy16b3Jyby1hbnRkL3RpbWUtcGlja2VyLyIsInNvdXJjZXMiOlsidGltZS1ob2xkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBUUEsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTFEO0lBZ0tFO1FBL0pBLG9CQUFlLEdBQXVCLFNBQVMsQ0FBQztRQUV4QyxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUU3QixhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQTJKeEIsQ0FBQzs7Ozs7Ozs7SUF6SmhCLCtCQUFVOzs7Ozs7O0lBQVYsVUFBVyxLQUFhLEVBQUUsUUFBaUI7UUFDekMsSUFBSSxLQUFLLEtBQUssbUJBQUEsSUFBSSxFQUFBLENBQUMsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3ZDLG1CQUFBLElBQUksRUFBQSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2pCLG1CQUFBLElBQUksRUFBQSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0IsbUJBQUEsSUFBSSxFQUFBLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDZjtRQUNELE9BQU8sbUJBQUEsSUFBSSxFQUFBLENBQUM7SUFDZCxDQUFDOzs7Ozs7OztJQUVELDZCQUFROzs7Ozs7O0lBQVIsVUFBUyxLQUFhLEVBQUUsUUFBaUI7UUFDdkMsSUFBSSxLQUFLLEtBQUssbUJBQUEsSUFBSSxFQUFBLENBQUMsS0FBSyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3JDLG1CQUFBLElBQUksRUFBQSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2pCLElBQUksbUJBQUEsSUFBSSxFQUFBLENBQUMsV0FBVyxFQUFFO2dCQUNwQixJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFD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cUM7Ozs7O0lBQ3JDLHVDQUFpQzs7Ozs7SUFDakMsOEJBQXVDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgaXNOaWwsIGlzTm90TmlsIH0gZnJvbSAnbmctem9ycm8tYW50ZC9jb3JlL3V0aWwnO1xuXG5leHBvcnQgY2xhc3MgVGltZUhvbGRlciB7XG4gIHNlbGVjdGVkMTJIb3Vyczogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICBwcml2YXRlIF92YWx1ZTogRGF0ZSB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBfdXNlMTJIb3VyczogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9kZWZhdWx0T3BlblZhbHVlITogRGF0ZTtcbiAgcHJpdmF0ZSBfY2hhbmdlcyA9IG5ldyBTdWJqZWN0PERhdGU+KCk7XG5cbiAgc2V0TWludXRlcyh2YWx1ZTogbnVtYmVyLCBkaXNhYmxlZDogYm9vbGVhbik6IHRoaXMge1xuICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5taW51dGVzICYmICFkaXNhYmxlZCkge1xuICAgICAgdGhpcy5pbml0VmFsdWUoKTtcbiAgICAgIHRoaXMudmFsdWUuc2V0TWludXRlcyh2YWx1ZSk7XG4gICAgICB0aGlzLnVwZGF0ZSgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHNldEhvdXJzKHZhbHVlOiBudW1iZXIsIGRpc2FibGVkOiBib29sZWFuKTogdGhpcyB7XG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLmhvdXJzICYmICFkaXNhYmxlZCkge1xuICAgICAgdGhpcy5pbml0VmFsdWUoKTtcbiAgICAgIGlmICh0aGlzLl91c2UxMkhvdXJzKSB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkMTJIb3VycyA9PT0gJ1BNJyAmJiB2YWx1ZSAhPT0gMTIpIHtcbiAgICAgICAgICB0aGlzLnZhbHVlLnNldEhvdXJzKCh2YWx1ZSBhcyBudW1iZXIpICsgMTIpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWQxMkhvdXJzID09PSAnQU0nICYmIHZhbHVlID09PSAxMikge1xuICAgICAgICAgIHRoaXMudmFsdWUuc2V0SG91cnMoMCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy52YWx1ZS5zZXRIb3Vycyh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudmFsdWUuc2V0SG91cnModmFsdWUpO1xuICAgICAgfVxuICAgICAgdGhpcy51cGRhdGUoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBzZXRTZWNvbmRzKHZhbHVlOiBudW1iZXIsIGRpc2FibGVkOiBib29sZWFuKTogdGhpcyB7XG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLnNlY29uZHMgJiYgIWRpc2FibGVkKSB7XG4gICAgICB0aGlzLmluaXRWYWx1ZSgpO1xuICAgICAgdGhpcy52YWx1ZS5zZXRTZWNvbmRzKHZhbHVlKTtcbiAgICAgIHRoaXMudXBkYXRlKCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgc2V0VXNlMTJIb3Vycyh2YWx1ZTogYm9vbGVhbik6IHRoaXMge1xuICAgIHRoaXMuX3VzZTEySG91cnMgPSB2YWx1ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGdldCBjaGFuZ2VzKCk6IE9ic2VydmFibGU8RGF0ZT4ge1xuICAgIHJldHVybiB0aGlzLl9jaGFuZ2VzLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgc2V0VmFsdWUodmFsdWU6IERhdGUgfCB1bmRlZmluZWQsIHVzZTEySG91cnM/OiBib29sZWFuKTogdGhpcyB7XG4gICAgaWYgKGlzTm90TmlsKHVzZTEySG91cnMpKSB7XG4gICAgICB0aGlzLl91c2UxMkhvdXJzID0gdXNlMTJIb3VycyBhcyBib29sZWFuO1xuICAgIH1cbiAgICBpZiAodmFsdWUgIT09IHRoaXMudmFsdWUpIHtcbiAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgICBpZiAoaXNOb3ROaWwodGhpcy52YWx1ZSkpIHtcbiAgICAgICAgaWYgKHRoaXMuX3VzZTEySG91cnMgJiYgaXNOb3ROaWwodGhpcy5ob3VycykpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkMTJIb3VycyA9IHRoaXMuaG91cnMgPj0gMTIgPyAnUE0nIDogJ0FNJztcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fY2xlYXIoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGluaXRWYWx1ZSgpOiB2b2lkIHtcbiAgICBpZiAoaXNOaWwodGhpcy52YWx1ZSkpIHtcbiAgICAgIHRoaXMuc2V0VmFsdWUobmV3IERhdGUoKSwgdGhpcy5fdXNlMTJIb3Vycyk7XG4gICAgfVxuICB9XG5cbiAgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5fY2xlYXIoKTtcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgZ2V0IGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEoaXNOb3ROaWwodGhpcy5ob3VycykgfHwgaXNOb3ROaWwodGhpcy5taW51dGVzKSB8fCBpc05vdE5pbCh0aGlzLnNlY29uZHMpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NsZWFyKCk6IHZvaWQge1xuICAgIHRoaXMuX3ZhbHVlID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuc2VsZWN0ZWQxMkhvdXJzID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNFbXB0eSkge1xuICAgICAgdGhpcy5fdmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChpc05vdE5pbCh0aGlzLmhvdXJzKSkge1xuICAgICAgICB0aGlzLnZhbHVlIS5zZXRIb3Vycyh0aGlzLmhvdXJzISk7XG4gICAgICB9XG5cbiAgICAgIGlmIChpc05vdE5pbCh0aGlzLm1pbnV0ZXMpKSB7XG4gICAgICAgIHRoaXMudmFsdWUhLnNldE1pbnV0ZXModGhpcy5taW51dGVzISk7XG4gICAgICB9XG5cbiAgICAgIGlmIChpc05vdE5pbCh0aGlzLnNlY29uZHMpKSB7XG4gICAgICAgIHRoaXMudmFsdWUhLnNldFNlY29uZHModGhpcy5zZWNvbmRzISk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLl91c2UxMkhvdXJzKSB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkMTJIb3VycyA9PT0gJ1BNJyAmJiB0aGlzLmhvdXJzISA8IDEyKSB7XG4gICAgICAgICAgdGhpcy52YWx1ZSEuc2V0SG91cnModGhpcy5ob3VycyEgKyAxMik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWQxMkhvdXJzID09PSAnQU0nICYmIHRoaXMuaG91cnMhID49IDEyKSB7XG4gICAgICAgICAgdGhpcy52YWx1ZSEuc2V0SG91cnModGhpcy5ob3VycyEgLSAxMik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5jaGFuZ2VkKCk7XG4gIH1cblxuICBjaGFuZ2VkKCk6IHZvaWQge1xuICAgIHRoaXMuX2NoYW5nZXMubmV4dCh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVUkgdmlldyBob3Vyc1xuICAgKiBHZXQgdmlld0hvdXJzIHdoaWNoIGlzIHNlbGVjdGVkIGluIGB0aW1lLXBpY2tlci1wYW5lbGAgYW5kIGl0cyByYW5nZSBpcyBbMTIsIDEsIDIsIC4uLiwgMTFdXG4gICAqL1xuICBnZXQgdmlld0hvdXJzKCk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX3VzZTEySG91cnMgJiYgaXNOb3ROaWwodGhpcy5ob3VycykgPyB0aGlzLmNhbGN1bGF0ZVZpZXdIb3VyKHRoaXMuaG91cnMhKSA6IHRoaXMuaG91cnM7XG4gIH1cblxuICBzZXRTZWxlY3RlZDEySG91cnModmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIGlmICh2YWx1ZSEudG9VcHBlckNhc2UoKSAhPT0gdGhpcy5zZWxlY3RlZDEySG91cnMpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQxMkhvdXJzID0gdmFsdWUhLnRvVXBwZXJDYXNlKCk7XG4gICAgICB0aGlzLnVwZGF0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIGdldCB2YWx1ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWUgfHwgdGhpcy5fZGVmYXVsdE9wZW5WYWx1ZTtcbiAgfVxuXG4gIGdldCBob3VycygpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnZhbHVlPy5nZXRIb3VycygpO1xuICB9XG5cbiAgZ2V0IG1pbnV0ZXMoKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZT8uZ2V0TWludXRlcygpO1xuICB9XG5cbiAgZ2V0IHNlY29uZHMoKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZT8uZ2V0U2Vjb25kcygpO1xuICB9XG5cbiAgc2V0RGVmYXVsdE9wZW5WYWx1ZSh2YWx1ZTogRGF0ZSk6IHRoaXMge1xuICAgIHRoaXMuX2RlZmF1bHRPcGVuVmFsdWUgPSB2YWx1ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBwcml2YXRlIGNhbGN1bGF0ZVZpZXdIb3VyKHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgIGNvbnN0IHNlbGVjdGVkMTJIb3VycyA9IHRoaXMuc2VsZWN0ZWQxMkhvdXJzO1xuICAgIGlmIChzZWxlY3RlZDEySG91cnMgPT09ICdQTScgJiYgdmFsdWUgPiAxMikge1xuICAgICAgcmV0dXJuIHZhbHVlIC0gMTI7XG4gICAgfVxuICAgIGlmIChzZWxlY3RlZDEySG91cnMgPT09ICdBTScgJiYgdmFsdWUgPT09IDApIHtcbiAgICAgIHJldHVybiAxMjtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59XG4iXX0=