UNPKG

@true-directive/grid

Version:

Angular Data Grid from Yopsilon.

116 lines 18.2 kB
import { Subject } from 'rxjs'; export class GridEvents { constructor() { this.name = 'events'; // -- EVENTS ----------------------------------------------------------------- // Запрос данных у родителя this._onDataQuery = new Subject(); this.onDataQuery = this._onDataQuery.asObservable(); // Получение данных от родителя this._onDataFetch = new Subject(); this.onDataFetch = this._onDataFetch.asObservable(); // Изменения в списке колонок this._onColumnsChanged = new Subject(); this.onColumnsChanged = this._onColumnsChanged.asObservable(); // При изменениях в запросе данных (сортировка/фильтр/группировка) this._onQueryChanged = new Subject(); this.onQueryChanged = this._onQueryChanged.asObservable(); // При изменениях групп (свернута/развернута) this._onSummariesChanged = new Subject(); this.onSummariesChanged = this._onSummariesChanged.asObservable(); // При изменении значения ячейки this._onValueChanged = new Subject(); this.onValueChanged = this._onValueChanged.asObservable(); // При изменении чекбокс this._onCheckedChanged = new Subject(); this.onCheckedChanged = this._onCheckedChanged.asObservable(); // Перетаскивание колонки // Тащим this._onDrag = new Subject(); this.onDrag = this._onDrag.asObservable(); // Бросаем this._onDrop = new Subject(); this.onDrop = this._onDrop.asObservable(); // Изменение ширины колонки // Тащим this._onColumnResizing = new Subject(); this.onColumnResizing = this._onColumnResizing.asObservable(); // Бросаем this._onColumnResize = new Subject(); this.onColumnResize = this._onColumnResize.asObservable(); // При фильтрации this._onFilterShow = new Subject(); this.onFilterShow = this._onFilterShow.asObservable(); // Выделение ячейки/строки/области this._onSelect = new Subject(); this.onSelect = this._onSelect.asObservable(); // Включение редактора this._onStartEditing = new Subject(); this.onStartEditing = this._onStartEditing.asObservable(); // Выключение редактора this._onStopEditing = new Subject(); this.onStopEditing = this._onStopEditing.asObservable(); // Строка перестала быть видимой после редактирования this._onRowUnfiltered = new Subject(); this.onRowUnfiltered = this._onRowUnfiltered.asObservable(); // Контекстное меню колонки this._onHeaderContextMenu = new Subject(); this.onHeaderContextMenu = this._onHeaderContextMenu.asObservable(); // Событие кастомной ячейки this._onCustomCellEvent = new Subject(); this.onCustomCellEvent = this._onCustomCellEvent.asObservable(); } dataQueryEvent(query) { this._onDataQuery.next(query); } dataFetchEvent(query) { if (query.subject) { query.subject.next(); query.subject.complete(); } this._onDataFetch.next(query); } columnsChangedEvent() { this._onColumnsChanged.next(); } queryChangedEvent(query) { this._onQueryChanged.next(query); } summariesChangedEvent(c) { this._onSummariesChanged.next(c); } valueChangedEvent(e) { this._onValueChanged.next(e); } checkedChangedEvent(e) { this._onCheckedChanged.next(e); } dragEvent(e) { this._onDrag.next(e); } dropEvent(e) { this._onDrop.next(e); } columnResizeEvent(e) { this._onColumnResize.next(e); } filterShowEvent(e) { this._onFilterShow.next(e); } selectEvent(cp) { this._onSelect.next(cp); } startEditingEvent(cp) { this._onStartEditing.next(cp); } stopEditingEvent(returnFocus) { this._onStopEditing.next(returnFocus); } headerContextMenuEvent(e) { this._onHeaderContextMenu.next(e); } customCellEvent(e) { this._onCustomCellEvent.next(e); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1ldmVudHMuY2xhc3MuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdHJ1ZS1kaXJlY3RpdmUvZ3JpZC8iLCJzb3VyY2VzIjpbInNyYy9ncmlkLWV2ZW50cy5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBUy9CLE1BQU0sT0FBTyxVQUFVO0lBQXZCO1FBQ2tCLFNBQUksR0FBRyxRQUFRLENBQUM7UUFDaEMsOEVBQThFO1FBQzlFLDJCQUEyQjtRQUNqQixpQkFBWSxHQUF1QixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzNDLGdCQUFXLEdBQTBCLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFdEYsK0JBQStCO1FBQ3JCLGlCQUFZLEdBQXVCLElBQUksT0FBTyxFQUFFLENBQUM7UUFDM0MsZ0JBQVcsR0FBMEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUV0Riw2QkFBNkI7UUFDbkIsc0JBQWlCLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFDM0MscUJBQWdCLEdBQXFCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUUzRixrRUFBa0U7UUFDeEQsb0JBQWUsR0FBdUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM5QyxtQkFBYyxHQUEwQixJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRTVGLDZDQUE2QztRQUNuQyx3QkFBbUIsR0FBb0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUMvQyx1QkFBa0IsR0FBdUIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBRWpHLGdDQUFnQztRQUN0QixvQkFBZSxHQUErQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ3RELG1CQUFjLEdBQWtDLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFcEcsd0JBQXdCO1FB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LENBQUM7SUFDbEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBJRXZlbnRzIH0gZnJvbSAnQHRydWUtZGlyZWN0aXZlL2Jhc2UnO1xyXG5pbXBvcnQgeyBEYXRhUXVlcnkgfSBmcm9tICdAdHJ1ZS1kaXJlY3RpdmUvYmFzZSc7XHJcbmltcG9ydCB7IENvbHVtbiB9IGZyb20gJ0B0cnVlLWRpcmVjdGl2ZS9iYXNlJztcclxuaW1wb3J0IHsgQ2hlY2tlZENoYW5nZWRFdmVudCwgVmFsdWVDaGFuZ2VkRXZlbnQsIEZpbHRlclNob3dFdmVudCB9IGZyb20gJ0B0cnVlLWRpcmVjdGl2ZS9iYXNlJztcclxuaW1wb3J0IHsgVUlBY3Rpb24sIFVJQWN0aW9uVHlwZSB9IGZyb20gJ0B0cnVlLWRpcmVjdGl2ZS9iYXNlJztcclxuaW1wb3J0IHsgQ2VsbFBvc2l0aW9uIH0gZnJvbSAnQHRydWUtZGlyZWN0aXZlL2Jhc2UnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEdyaWRFdmVudHMgaW1wbGVtZW50cyBJRXZlbnRzIHtcclxuICBwdWJsaWMgcmVhZG9ubHkgbmFtZSA9ICdldmVudHMnO1xyXG4gIC8vIC0tIEVWRU5UUyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIC8vINCX0LDQv9GA0L7RgSDQtNCw0L3QvdGL0YUg0YMg0YDQvtC00LjRgtC10LvRj1xyXG4gIHByb3RlY3RlZCBfb25EYXRhUXVlcnk6IFN1YmplY3Q8RGF0YVF1ZXJ5PiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgcHVibGljIHJlYWRvbmx5IG9uRGF0YVF1ZXJ5OiBPYnNlcnZhYmxlPERhdGFRdWVyeT4gPSB0aGlzLl9vbkRhdGFRdWVyeS5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgLy8g0J/QvtC70YPRh9C10L3QuNC1INC00LDQvdC90YvRhSDQvtGCINGA0L7QtNC40YLQtdC70Y9cclxuICBwcm90ZWN0ZWQgX29uRGF0YUZldGNoOiBTdWJqZWN0PERhdGFRdWVyeT4gPSBuZXcgU3ViamVjdCgpO1xyXG4gIHB1YmxpYyByZWFkb25seSBvbkRhdGFGZXRjaDogT2JzZXJ2YWJsZTxEYXRhUXVlcnk+ID0gdGhpcy5fb25EYXRhRmV0Y2guYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIC8vINCY0LfQvNC10L3QtdC90LjRjyDQsiDRgdC/0LjRgdC60LUg0LrQvtC70L7QvdC+0LpcclxuICBwcm90ZWN0ZWQgX29uQ29sdW1uc0NoYW5nZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xyXG4gIHB1YmxpYyByZWFkb25seSBvbkNvbHVtbnNDaGFuZ2VkOiBPYnNlcnZhYmxlPHZvaWQ+ID0gdGhpcy5fb25Db2x1bW5zQ2hhbmdlZC5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgLy8g0J/RgNC4INC40LfQvNC10L3QtdC90LjRj9GFINCyINC30LDQv9GA0L7RgdC1INC00LDQvdC90YvRhSAo0YHQvtGA0YLQuNGA0L7QstC60LAv0YTQuNC70YzRgtGAL9Cz0YDRg9C/0L/QuNGA0L7QstC60LApXHJcbiAgcHJvdGVjdGVkIF9vblF1ZXJ5Q2hhbmdlZDogU3ViamVjdDxEYXRhUXVlcnk+ID0gbmV3IFN1YmplY3QoKTtcclxuICBwdWJsaWMgcmVhZG9ubHkgb25RdWVyeUNoYW5nZWQ6IE9ic2VydmFibGU8RGF0YVF1ZXJ5PiA9IHRoaXMuX29uUXVlcnlDaGFuZ2VkLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAvLyDQn9GA0Lgg0LjQt9C80LXQvdC10L3QuNGP0YUg0LPRgNGD0L/QvyAo0YHQstC10YDQvdGD0YLQsC/RgNCw0LfQstC10YDQvdGD0YLQsClcclxuICBwcm90ZWN0ZWQgX29uU3VtbWFyaWVzQ2hhbmdlZDogU3ViamVjdDxDb2x1bW4+ID0gbmV3IFN1YmplY3QoKTtcclxuICBwdWJsaWMgcmVhZG9ubHkgb25TdW1tYXJpZXNDaGFuZ2VkOiBPYnNlcnZhYmxlPENvbHVtbj4gPSB0aGlzLl9vblN1bW1hcmllc0NoYW5nZWQuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIC8vINCf0YDQuCDQuNC30LzQtdC90LXQvdC40Lgg0LfQvdCw0YfQtdC90LjRjyDRj9GH0LXQudC60LhcclxuICBwcm90ZWN0ZWQgX29uVmFsdWVDaGFuZ2VkOiBTdWJqZWN0PFZhbHVlQ2hhbmdlZEV2ZW50PiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgcHVibGljIHJlYWRvbmx5IG9uVmFsdWVDaGFuZ2VkOiBPYnNlcnZhYmxlPFZhbHVlQ2hhbmdlZEV2ZW50PiA9IHRoaXMuX29uVmFsdWVDaGFuZ2VkLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAvLyDQn9GA0Lgg0LjQt9C80LXQvdC10L3QuNC4INGH0LXQutCx0L7QutGBXHJcbiAgcHJvdGVjdGVkIF9vbkNoZWNrZWRDaGFuZ2VkOiBTdWJqZWN0PENoZWNrZWRDaGFuZ2VkRXZlbnQ+ID0gbmV3IFN1YmplY3QoKTtcclxuICBwdWJsaWMgcmVhZG9ubHkgb25DaGVja2VkQ2hhbmdlZDogT2JzZXJ2YWJsZTxDaGVja2VkQ2hhbmdlZEV2ZW50PiA9IHRoaXMuX29uQ2hlY2tlZENoYW5nZWQuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIC8vINCf0LXRgNC10YLQsNGB0LrQuNCy0LDQvdC40LUg0LrQvtC70L7QvdC60LhcclxuICAvLyDQotCw0YnQuNC8XHJcbiAgcHJvdGVjdGVkIF9vbkRyYWc6IFN1YmplY3Q8VUlBY3Rpb24+ID0gbmV3IFN1YmplY3QoKTtcclxuICBwdWJsaWMgcmVhZG9ubHkgb25EcmFnOiBPYnNlcnZhYmxlPFVJQWN0aW9uPiA9IHRoaXMuX29uRHJhZy5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgLy8g0JHRgNC+0YHQsNC10LxcclxuICBwcm90ZWN0ZWQgX29uRHJvcDogU3ViamVjdDxVSUFjdGlvbj4gPSBuZXcgU3ViamVjdCgpO1xyXG4gIHB1YmxpYyByZWFkb25seSBvbkRyb3A6IE9ic2VydmFibGU8VUlBY3Rpb24+ID0gdGhpcy5fb25Ecm9wLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAvLyDQmNC30LzQtdC90LXQvdC40LUg0YjQuNGA0LjQvdGLINC60L7Qu9C+0L3QutC4XHJcbiAgLy8g0KLQsNGJ0LjQvFxyXG4gIHByb3RlY3RlZCBfb25Db2x1bW5SZXNpemluZzogU3ViamVjdDxVSUFjdGlvbj4gPSBuZXcgU3ViamVjdCgpO1xyXG4gIHB1YmxpYyByZWFkb25seSBvbkNvbHVtblJlc2l6aW5nOiBPYnNlcnZhYmxlPFVJQWN0aW9uPiA9IHRoaXMuX29uQ29sdW1uUmVzaXppbmcuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIC8vINCR0YDQvtGB0LDQtdC8XHJcbiAgcHJvdGVjdGVkIF9vbkNvbHVtblJlc2l6ZTogU3ViamVjdDxVSUFjdGlvbj4gPSBuZXcgU3ViamVjdCgpO1xyXG4gIHB1YmxpYyByZWFkb25seSBvbkNvbHVtblJlc2l6ZTogT2JzZXJ2YWJsZTxVSUFjdGlvbj4gPSB0aGlzLl9vbkNvbHVtblJlc2l6ZS5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgLy8g0J/RgNC4INGE0LjQu9GM0YLRgNCw0YbQuNC4XHJcbiAgcHJvdGVjdGVkIF9vbkZpbHRlclNob3c6IFN1YmplY3Q8RmlsdGVyU2hvd0V2ZW50PiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgcHVibGljIHJlYWRvbmx5IG9uRmlsdGVyU2hvdzogT2JzZXJ2YWJsZTxGaWx0ZXJTaG93RXZlbnQ+ID0gdGhpcy5fb25GaWx0ZXJTaG93LmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAvLyDQktGL0LTQtdC70LXQvdC40LUg0Y/Rh9C10LnQutC4L9GB0YLRgNC+0LrQuC/QvtCx0LvQsNGB0YLQuFxyXG4gIHByb3RlY3RlZCBfb25TZWxlY3Q6IFN1YmplY3Q8Q2VsbFBvc2l0aW9uPiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgcHVibGljIHJlYWRvbmx5IG9uU2VsZWN0OiBPYnNlcnZhYmxlPENlbGxQb3NpdGlvbj4gPSB0aGlzLl9vblNlbGVjdC5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgLy8g0JLQutC70Y7Rh9C10L3QuNC1INGA0LXQtNCw0LrRgtC+0YDQsFxyXG4gIHByb3RlY3RlZCBfb25TdGFydEVkaXRpbmc6IFN1YmplY3Q8Q2VsbFBvc2l0aW9uPiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgcHVibGljIHJlYWRvbmx5IG9uU3RhcnRFZGl0aW5nOiBPYnNlcnZhYmxlPENlbGxQb3NpdGlvbj4gPSB0aGlzLl9vblN0YXJ0RWRpdGluZy5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgLy8g0JLRi9C60LvRjtGH0LXQvdC40LUg0YDQtdC00LDQutGC0L7RgNCwXHJcbiAgcHJvdGVjdGVkIF9vblN0b3BFZGl0aW5nOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3QoKTtcclxuICBwdWJsaWMgcmVhZG9ubHkgb25TdG9wRWRpdGluZzogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuX29uU3RvcEVkaXRpbmcuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIC8vINCh0YLRgNC+0LrQsCDQv9C10YDQtdGB0YLQsNC70LAg0LHRi9GC0Ywg0LLQuNC00LjQvNC+0Lkg0L/QvtGB0LvQtSDRgNC10LTQsNC60YLQuNGA0L7QstCw0L3QuNGPXHJcbiAgcHJvdGVjdGVkIF9vblJvd1VuZmlsdGVyZWQ6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgcHVibGljIHJlYWRvbmx5IG9uUm93VW5maWx0ZXJlZDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5fb25Sb3dVbmZpbHRlcmVkLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAvLyDQmtC+0L3RgtC10LrRgdGC0L3QvtC1INC80LXQvdGOINC60L7Qu9C+0L3QutC4XHJcbiAgcHJvdGVjdGVkIF9vbkhlYWRlckNvbnRleHRNZW51OiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdCgpO1xyXG4gIHB1YmxpYyByZWFkb25seSBvbkhlYWRlckNvbnRleHRNZW51OiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLl9vbkhlYWRlckNvbnRleHRNZW51LmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAvLyDQodC+0LHRi9GC0LjQtSDQutCw0YHRgtC+0LzQvdC+0Lkg0Y/Rh9C10LnQutC4XHJcbiAgcHJvdGVjdGVkIF9vbkN1c3RvbUNlbGxFdmVudDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcclxuICBwdWJsaWMgcmVhZG9ubHkgb25DdXN0b21DZWxsRXZlbnQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMuX29uQ3VzdG9tQ2VsbEV2ZW50LmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICBwdWJsaWMgZGF0YVF1ZXJ5RXZlbnQocXVlcnk6IERhdGFRdWVyeSkge1xyXG4gICAgdGhpcy5fb25EYXRhUXVlcnkubmV4dChxdWVyeSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZGF0YUZldGNoRXZlbnQocXVlcnk6IERhdGFRdWVyeSkge1xyXG4gICAgaWYgKHF1ZXJ5LnN1YmplY3QpIHtcclxuICAgICAgcXVlcnkuc3ViamVjdC5uZXh0KCk7XHJcbiAgICAgIHF1ZXJ5LnN1YmplY3QuY29tcGxldGUoKTtcclxuICAgIH1cclxuICAgIHRoaXMuX29uRGF0YUZldGNoLm5leHQocXVlcnkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNvbHVtbnNDaGFuZ2VkRXZlbnQoKSB7XHJcbiAgICB0aGlzLl9vbkNvbHVtbnNDaGFuZ2VkLm5leHQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBxdWVyeUNoYW5nZWRFdmVudChxdWVyeTogRGF0YVF1ZXJ5KSB7XHJcbiAgICB0aGlzLl9vblF1ZXJ5Q2hhbmdlZC5uZXh0KHF1ZXJ5KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdW1tYXJpZXNDaGFuZ2VkRXZlbnQoYzogQ29sdW1uKSB7XHJcbiAgICB0aGlzLl9vblN1bW1hcmllc0NoYW5nZWQubmV4dChjKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB2YWx1ZUNoYW5nZWRFdmVudChlOiBWYWx1ZUNoYW5nZWRFdmVudCkge1xyXG4gICAgdGhpcy5fb25WYWx1ZUNoYW5nZWQubmV4dChlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGVja2VkQ2hhbmdlZEV2ZW50KGU6IENoZWNrZWRDaGFuZ2VkRXZlbnQpIHtcclxuICAgIHRoaXMuX29uQ2hlY2tlZENoYW5nZWQubmV4dChlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBkcmFnRXZlbnQoZTogVUlBY3Rpb24pIHtcclxuICAgIHRoaXMuX29uRHJhZy5uZXh0KGUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGRyb3BFdmVudChlOiBVSUFjdGlvbikge1xyXG4gICAgdGhpcy5fb25Ecm9wLm5leHQoZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY29sdW1uUmVzaXplRXZlbnQoZTogVUlBY3Rpb24pIHtcclxuICAgIHRoaXMuX29uQ29sdW1uUmVzaXplLm5leHQoZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZmlsdGVyU2hvd0V2ZW50KGU6IEZpbHRlclNob3dFdmVudCkge1xyXG4gICAgdGhpcy5fb25GaWx0ZXJTaG93Lm5leHQoZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2VsZWN0RXZlbnQoY3A6IENlbGxQb3NpdGlvbikge1xyXG4gICAgdGhpcy5fb25TZWxlY3QubmV4dChjcCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhcnRFZGl0aW5nRXZlbnQoY3A6IENlbGxQb3NpdGlvbikge1xyXG4gICAgdGhpcy5fb25TdGFydEVkaXRpbmcubmV4dChjcCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RvcEVkaXRpbmdFdmVudChyZXR1cm5Gb2N1czogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fb25TdG9wRWRpdGluZy5uZXh0KHJldHVybkZvY3VzKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoZWFkZXJDb250ZXh0TWVudUV2ZW50KGU6IHsgb3JpZ2luYWxFdmVudDogYW55LCBjb2x1bW46IENvbHVtbiB9KSB7XHJcbiAgICB0aGlzLl9vbkhlYWRlckNvbnRleHRNZW51Lm5leHQoZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY3VzdG9tQ2VsbEV2ZW50KGU6IGFueSkge1xyXG4gICAgdGhpcy5fb25DdXN0b21DZWxsRXZlbnQubmV4dChlKTtcclxuICB9XHJcbn1cclxuIl19