UNPKG

ng-zorro-antd-mobile

Version:

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

258 lines 22.8 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; import { Component, ViewEncapsulation, HostBinding, Input, ElementRef } from '@angular/core'; import { DateModels } from '../date/DataTypes'; var CalendarSingleMonthComponent = /** @class */ (function () { function CalendarSingleMonthComponent(_elementRef) { var _this = this; this._elementRef = _elementRef; this.props = (/** @type {?} */ ({ rowSize: 'normal' })); this.state = { weekComponents: [] }; this.singleMonth = true; this.genWeek = (/** * @param {?} weeksData * @param {?} index * @return {?} */ function (weeksData, index) { var _a = _this.props, getDateExtra = _a.getDateExtra, monthData = _a.monthData, onCellClick = _a.onCellClick, locale = _a.locale, rowSize = _a.rowSize; /** @type {?} */ var rowCls = 'row'; /** @type {?} */ var weeksDataList = []; if (rowSize === 'xl') { rowCls += ' row-xl'; } weeksData.forEach((/** * @param {?} day * @param {?} dayOfWeek * @return {?} */ function (day, dayOfWeek) { /** @type {?} */ var extra = (getDateExtra && getDateExtra(new Date(day.tick))) || {}; /** @type {?} */ var info = extra.info; /** @type {?} */ var disable = extra.disable || day.outOfDate; /** @type {?} */ var cls = 'date'; /** @type {?} */ var lCls = 'left'; /** @type {?} */ var rCls = 'right'; /** @type {?} */ var infoCls = 'info'; if (dayOfWeek === 0 || dayOfWeek === 6) { cls += ' grey'; } if (disable) { cls += ' disable'; } else if (info) { cls += ' important'; } if (day.selected) { cls += ' date-selected'; /** @type {?} */ var styleType = day.selected; switch (styleType) { case DateModels.SelectType.Only: info = locale.begin; infoCls += ' date-selected'; break; case DateModels.SelectType.All: info = locale.begin_over; infoCls += ' date-selected'; break; case DateModels.SelectType.Start: info = locale.begin; infoCls += ' date-selected'; if (dayOfWeek === 6 || day.isLastOfMonth) { styleType = DateModels.SelectType.All; } break; case DateModels.SelectType.Middle: if (dayOfWeek === 0 || day.isFirstOfMonth) { if (day.isLastOfMonth || dayOfWeek === 6) { styleType = DateModels.SelectType.All; } else { styleType = DateModels.SelectType.Start; } } else if (dayOfWeek === 6 || day.isLastOfMonth) { styleType = DateModels.SelectType.End; } break; case DateModels.SelectType.End: info = locale.over; infoCls += ' date-selected'; if (dayOfWeek === 0 || day.isFirstOfMonth) { styleType = DateModels.SelectType.All; } break; } switch (styleType) { case DateModels.SelectType.Single: case DateModels.SelectType.Only: case DateModels.SelectType.All: cls += ' selected-single'; break; case DateModels.SelectType.Start: cls += ' selected-start'; rCls += ' date-selected'; break; case DateModels.SelectType.Middle: cls += ' selected-middle'; lCls += ' date-selected'; rCls += ' date-selected'; break; case DateModels.SelectType.End: cls += ' selected-end'; lCls += ' date-selected'; break; } } weeksDataList[dayOfWeek] = { lCls: lCls, cls: cls, day: day, rCls: rCls, infoCls: infoCls, info: info, extra: extra, disable: disable, onCellClick: onCellClick, monthData: monthData }; })); _this.state.weekComponents[index] = { index: index, rowCls: rowCls, weeksDataList: weeksDataList }; }); this.updateWeeks = (/** * @param {?=} monthData * @return {?} */ function (monthData) { (monthData || _this.props.monthData).weeks.forEach((/** * @param {?} week * @param {?} index * @return {?} */ function (week, index) { _this.genWeek(week, index); })); }); this.setWarpper = (/** * @param {?} dom * @return {?} */ function (dom) { _this.wrapperDivDOM = dom; }); } Object.defineProperty(CalendarSingleMonthComponent.prototype, "data", { set: /** * @param {?} value * @return {?} */ function (value) { this.props = tslib_1.__assign({}, this.props, value); }, enumerable: true, configurable: true }); /** * @param {?} item * @return {?} */ CalendarSingleMonthComponent.prototype.onClickCell = /** * @param {?} item * @return {?} */ function (item) { if (!item.disable && item.onCellClick) { item.onCellClick(item.day, item.monthData); } }; /** * @return {?} */ CalendarSingleMonthComponent.prototype.ngOnInit = /** * @return {?} */ function () { var _this = this; this.setWarpper(this._elementRef.nativeElement); this.props.monthData.weeks.forEach((/** * @param {?} week * @param {?} index * @return {?} */ function (week, index) { _this.genWeek(week, index); })); }; /** * @return {?} */ CalendarSingleMonthComponent.prototype.ngAfterViewInit = /** * @return {?} */ function () { this.ref = this.props.ref; this.ref(this); }; CalendarSingleMonthComponent.decorators = [ { type: Component, args: [{ selector: 'CalendarSingleMonth, nzm-single-month', template: "<div class=\"month-title\">\n {{ props.monthData.title }}\n</div>\n<div class=\"date\">\n <div *ngFor=\"let row of state.weekComponents; let i = index\" [ngClass]=\"row.rowCls\">\n <div\n *ngFor=\"let cell of row.weeksDataList; let j = index\"\n class=\"{{ 'cell ' + ((row.extra && row.extra.cellCls) || '') }}\"\n (click)=\"onClickCell(cell)\"\n >\n <div *ngIf=\"row.extra && row.extra.cellRender\">test</div>\n <div *ngIf=\"!row.extra || (row.extra && row.extra.cellRender)\" class=\"date-wrapper\">\n <span [ngClass]=\"cell.lCls\"></span>\n <div [ngClass]=\"cell.cls\">\n {{ (cell.day && cell.day.dayOfMonth) || '' }}\n </div>\n <span [ngClass]=\"cell.rCls\"></span>\n </div>\n <div *ngIf=\"!row.extra || (row.extra && row.extra.cellRender)\" [ngClass]=\"cell.infoCls\">\n {{ cell.info }}\n </div>\n </div>\n </div>\n</div>\n", encapsulation: ViewEncapsulation.None }] } ]; /** @nocollapse */ CalendarSingleMonthComponent.ctorParameters = function () { return [ { type: ElementRef } ]; }; CalendarSingleMonthComponent.propDecorators = { data: [{ type: Input }], singleMonth: [{ type: HostBinding, args: ['class.single-month',] }] }; return CalendarSingleMonthComponent; }()); export { CalendarSingleMonthComponent }; if (false) { /** @type {?} */ CalendarSingleMonthComponent.prototype.props; /** @type {?} */ CalendarSingleMonthComponent.prototype.state; /** @type {?} */ CalendarSingleMonthComponent.prototype.ref; /** @type {?} */ CalendarSingleMonthComponent.prototype.wrapperDivDOM; /** @type {?} */ CalendarSingleMonthComponent.prototype.singleMonth; /** @type {?} */ CalendarSingleMonthComponent.prototype.genWeek; /** @type {?} */ CalendarSingleMonthComponent.prototype.updateWeeks; /** @type {?} */ CalendarSingleMonthComponent.prototype.setWarpper; /** * @type {?} * @private */ CalendarSingleMonthComponent.prototype._elementRef; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLW1vbnRoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLXpvcnJvLWFudGQtbW9iaWxlLyIsInNvdXJjZXMiOlsiY2FsZW5kYXIvc2luZ2xlLW1vbnRoL3NpbmdsZS1tb250aC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHL0M7SUEwQkUsc0NBQW9CLFdBQXVCO1FBQTNDLGlCQUErQztRQUEzQixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQXBCM0MsVUFBSyxHQUFHLG1CQUFBO1lBQ04sT0FBTyxFQUFFLFFBQVE7U0FDbEIsRUFBZ0MsQ0FBQztRQUVsQyxVQUFLLEdBQUc7WUFDTixjQUFjLEVBQUUsRUFBRTtTQUNuQixDQUFDO1FBWWlDLGdCQUFXLEdBQVksSUFBSSxDQUFDO1FBSS9ELFlBQU87Ozs7O1FBQUcsVUFBQyxTQUFnQyxFQUFFLEtBQWE7WUFDbEQsSUFBQSxnQkFBc0UsRUFBcEUsOEJBQVksRUFBRSx3QkFBUyxFQUFFLDRCQUFXLEVBQUUsa0JBQU0sRUFBRSxvQkFBc0I7O2dCQUN4RSxNQUFNLEdBQUcsS0FBSzs7Z0JBQ2QsYUFBYSxHQUFHLEVBQUU7WUFDdEIsSUFBSSxPQUFPLEtBQUssSUFBSSxFQUFFO2dCQUNwQixNQUFNLElBQUksU0FBUyxDQUFDO2FBQ3JCO1lBRUQsU0FBUyxDQUFDLE9BQU87Ozs7O1lBQUMsVUFBQyxHQUFHLEVBQUUsU0FBUzs7b0JBQ3pCLEtBQUssR0FBRyxDQUFDLFlBQVksSUFBSSxZQUFZLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFOztvQkFDbEUsSUFBSSxHQUFHLEtBQUss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SUFFbEMsNkNBRUU7O0lBQ0YsMkNBQW1COztJQUNuQixxREFBcUM7O0lBVXJDLG1EQUErRDs7SUFJL0QsK0NBNkdDOztJQUVELG1EQUlDOztJQUVELGtEQUVDOzs7OztJQXpIVyxtREFBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24sIEhvc3RCaW5kaW5nLCBJbnB1dCwgRWxlbWVudFJlZiwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0ZU1vZGVscyB9IGZyb20gJy4uL2RhdGUvRGF0YVR5cGVzJztcbmltcG9ydCB7IENhbGVuZGFyU2luZ2xlTW9udGhQcm9wc1R5cGUgfSBmcm9tICcuL1Byb3BzVHlwZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ0NhbGVuZGFyU2luZ2xlTW9udGgsIG56bS1zaW5nbGUtbW9udGgnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2luZ2xlLW1vbnRoLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBDYWxlbmRhclNpbmdsZU1vbnRoQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgcHJvcHMgPSB7XG4gICAgcm93U2l6ZTogJ25vcm1hbCdcbiAgfSBhcyBDYWxlbmRhclNpbmdsZU1vbnRoUHJvcHNUeXBlO1xuXG4gIHN0YXRlID0ge1xuICAgIHdlZWtDb21wb25lbnRzOiBbXVxuICB9O1xuICByZWY6IChkb20pID0+IHZvaWQ7XG4gIHdyYXBwZXJEaXZET006IEhUTUxEaXZFbGVtZW50IHwgbnVsbDtcblxuICBASW5wdXQoKVxuICBzZXQgZGF0YSh2YWx1ZSkge1xuICAgIHRoaXMucHJvcHMgPSB7XG4gICAgICAuLi50aGlzLnByb3BzLFxuICAgICAgLi4udmFsdWVcbiAgICB9O1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zaW5nbGUtbW9udGgnKSBzaW5nbGVNb250aDogYm9vbGVhbiA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZikge31cblxuICBnZW5XZWVrID0gKHdlZWtzRGF0YTogRGF0ZU1vZGVscy5DZWxsRGF0YVtdLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgY29uc3QgeyBnZXREYXRlRXh0cmEsIG1vbnRoRGF0YSwgb25DZWxsQ2xpY2ssIGxvY2FsZSwgcm93U2l6ZSB9ID0gdGhpcy5wcm9wcztcbiAgICBsZXQgcm93Q2xzID0gJ3Jvdyc7XG4gICAgbGV0IHdlZWtzRGF0YUxpc3QgPSBbXTtcbiAgICBpZiAocm93U2l6ZSA9PT0gJ3hsJykge1xuICAgICAgcm93Q2xzICs9ICcgcm93LXhsJztcbiAgICB9XG5cbiAgICB3ZWVrc0RhdGEuZm9yRWFjaCgoZGF5LCBkYXlPZldlZWspID0+IHtcbiAgICAgIGNvbnN0IGV4dHJhID0gKGdldERhdGVFeHRyYSAmJiBnZXREYXRlRXh0cmEobmV3IERhdGUoZGF5LnRpY2spKSkgfHwge307XG4gICAgICBsZXQgaW5mbyA9IGV4dHJhLmluZm87XG4gICAgICBjb25zdCBkaXNhYmxlID0gZXh0cmEuZGlzYWJsZSB8fCBkYXkub3V0T2ZEYXRlO1xuXG4gICAgICBsZXQgY2xzID0gJ2RhdGUnO1xuICAgICAgbGV0IGxDbHMgPSAnbGVmdCc7XG4gICAgICBsZXQgckNscyA9ICdyaWdodCc7XG4gICAgICBsZXQgaW5mb0NscyA9ICdpbmZvJztcblxuICAgICAgaWYgKGRheU9mV2VlayA9PT0gMCB8fCBkYXlPZldlZWsgPT09IDYpIHtcbiAgICAgICAgY2xzICs9ICcgZ3JleSc7XG4gICAgICB9XG5cbiAgICAgIGlmIChkaXNhYmxlKSB7XG4gICAgICAgIGNscyArPSAnIGRpc2FibGUnO1xuICAgICAgfSBlbHNlIGlmIChpbmZvKSB7XG4gICAgICAgIGNscyArPSAnIGltcG9ydGFudCc7XG4gICAgICB9XG5cbiAgICAgIGlmIChkYXkuc2VsZWN0ZWQpIHtcbiAgICAgICAgY2xzICs9ICcgZGF0ZS1zZWxlY3RlZCc7XG4gICAgICAgIGxldCBzdHlsZVR5cGUgPSBkYXkuc2VsZWN0ZWQ7XG4gICAgICAgIHN3aXRjaCAoc3R5bGVUeXBlKSB7XG4gICAgICAgICAgY2FzZSBEYXRlTW9kZWxzLlNlbGVjdFR5cGUuT25seTpcbiAgICAgICAgICAgIGluZm8gPSBsb2NhbGUuYmVnaW47XG4gICAgICAgICAgICBpbmZvQ2xzICs9ICcgZGF0ZS1zZWxlY3RlZCc7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIERhdGVNb2RlbHMuU2VsZWN0VHlwZS5BbGw6XG4gICAgICAgICAgICBpbmZvID0gbG9jYWxlLmJlZ2luX292ZXI7XG4gICAgICAgICAgICBpbmZvQ2xzICs9ICcgZGF0ZS1zZWxlY3RlZCc7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIGNhc2UgRGF0ZU1vZGVscy5TZWxlY3RUeXBlLlN0YXJ0OlxuICAgICAgICAgICAgaW5mbyA9IGxvY2FsZS5iZWdpbjtcbiAgICAgICAgICAgIGluZm9DbHMgKz0gJyBkYXRlLXNlbGVjdGVkJztcbiAgICAgICAgICAgIGlmIChkYXlPZldlZWsgPT09IDYgfHwgZGF5LmlzTGFzdE9mTW9udGgpIHtcbiAgICAgICAgICAgICAgc3R5bGVUeXBlID0gRGF0ZU1vZGVscy5TZWxlY3RUeXBlLkFsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgRGF0ZU1vZGVscy5TZWxlY3RUeXBlLk1pZGRsZTpcbiAgICAgICAgICAgIGlmIChkYXlPZldlZWsgPT09IDAgfHwgZGF5LmlzRmlyc3RPZk1vbnRoKSB7XG4gICAgICAgICAgICAgIGlmIChkYXkuaXNMYXN0T2ZNb250aCB8fCBkYXlPZldlZWsgPT09IDYpIHtcbiAgICAgICAgICAgICAgICBzdHlsZVR5cGUgPSBEYXRlTW9kZWxzLlNlbGVjdFR5cGUuQWxsO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHN0eWxlVHlwZSA9IERhdGVNb2RlbHMuU2VsZWN0VHlwZS5TdGFydDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChkYXlPZldlZWsgPT09IDYgfHwgZGF5LmlzTGFzdE9mTW9udGgpIHtcbiAgICAgICAgICAgICAgc3R5bGVUeXBlID0gRGF0ZU1vZGVscy5TZWxlY3RUeXBlLkVuZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgRGF0ZU1vZGVscy5TZWxlY3RUeXBlLkVuZDpcbiAgICAgICAgICAgIGluZm8gPSBsb2NhbGUub3ZlcjtcbiAgICAgICAgICAgIGluZm9DbHMgKz0gJyBkYXRlLXNlbGVjdGVkJztcbiAgICAgICAgICAgIGlmIChkYXlPZldlZWsgPT09IDAgfHwgZGF5LmlzRmlyc3RPZk1vbnRoKSB7XG4gICAgICAgICAgICAgIHN0eWxlVHlwZSA9IERhdGVNb2RlbHMuU2VsZWN0VHlwZS5BbGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAoc3R5bGVUeXBlKSB7XG4gICAgICAgICAgY2FzZSBEYXRlTW9kZWxzLlNlbGVjdFR5cGUuU2luZ2xlOlxuICAgICAgICAgIGNhc2UgRGF0ZU1vZGVscy5TZWxlY3RUeXBlLk9ubHk6XG4gICAgICAgICAgY2FzZSBEYXRlTW9kZWxzLlNlbGVjdFR5cGUuQWxsOlxuICAgICAgICAgICAgY2xzICs9ICcgc2VsZWN0ZWQtc2luZ2xlJztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgRGF0ZU1vZGVscy5TZWxlY3RUeXBlLlN0YXJ0OlxuICAgICAgICAgICAgY2xzICs9ICcgc2VsZWN0ZWQtc3RhcnQnO1xuICAgICAgICAgICAgckNscyArPSAnIGRhdGUtc2VsZWN0ZWQnO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBEYXRlTW9kZWxzLlNlbGVjdFR5cGUuTWlkZGxlOlxuICAgICAgICAgICAgY2xzICs9ICcgc2VsZWN0ZWQtbWlkZGxlJztcbiAgICAgICAgICAgIGxDbHMgKz0gJyBkYXRlLXNlbGVjdGVkJztcbiAgICAgICAgICAgIHJDbHMgKz0gJyBkYXRlLXNlbGVjdGVkJztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgRGF0ZU1vZGVscy5TZWxlY3RUeXBlLkVuZDpcbiAgICAgICAgICAgIGNscyArPSAnIHNlbGVjdGVkLWVuZCc7XG4gICAgICAgICAgICBsQ2xzICs9ICcgZGF0ZS1zZWxlY3RlZCc7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB3ZWVrc0RhdGFMaXN0W2RheU9mV2Vla10gPSB7XG4gICAgICAgIGxDbHMsXG4gICAgICAgIGNscyxcbiAgICAgICAgZGF5LFxuICAgICAgICByQ2xzLFxuICAgICAgICBpbmZvQ2xzLFxuICAgICAgICBpbmZvLFxuICAgICAgICBleHRyYSxcbiAgICAgICAgZGlzYWJsZSxcbiAgICAgICAgb25DZWxsQ2xpY2s6IG9uQ2VsbENsaWNrLFxuICAgICAgICBtb250aERhdGFcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICB0aGlzLnN0YXRlLndlZWtDb21wb25lbnRzW2luZGV4XSA9IHtcbiAgICAgIGluZGV4OiBpbmRleCxcbiAgICAgIHJvd0NscyxcbiAgICAgIHdlZWtzRGF0YUxpc3RcbiAgICB9O1xuICB9XG5cbiAgdXBkYXRlV2Vla3MgPSAobW9udGhEYXRhPzogRGF0ZU1vZGVscy5Nb250aERhdGEpID0+IHtcbiAgICAobW9udGhEYXRhIHx8IHRoaXMucHJvcHMubW9udGhEYXRhKS53ZWVrcy5mb3JFYWNoKCh3ZWVrLCBpbmRleCkgPT4ge1xuICAgICAgdGhpcy5nZW5XZWVrKHdlZWssIGluZGV4KTtcbiAgICB9KTtcbiAgfVxuXG4gIHNldFdhcnBwZXIgPSAoZG9tOiBIVE1MRGl2RWxlbWVudCkgPT4ge1xuICAgIHRoaXMud3JhcHBlckRpdkRPTSA9IGRvbTtcbiAgfVxuXG4gIG9uQ2xpY2tDZWxsKGl0ZW0pIHtcbiAgICBpZiAoIWl0ZW0uZGlzYWJsZSAmJiBpdGVtLm9uQ2VsbENsaWNrKSB7XG4gICAgICBpdGVtLm9uQ2VsbENsaWNrKGl0ZW0uZGF5LCBpdGVtLm1vbnRoRGF0YSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zZXRXYXJwcGVyKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgdGhpcy5wcm9wcy5tb250aERhdGEud2Vla3MuZm9yRWFjaCgod2VlaywgaW5kZXgpID0+IHtcbiAgICAgIHRoaXMuZ2VuV2Vlayh3ZWVrLCBpbmRleCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5yZWYgPSB0aGlzLnByb3BzLnJlZjtcbiAgICB0aGlzLnJlZih0aGlzKTtcbiAgfVxufVxuIl19