UNPKG

@true-directive/grid

Version:

Angular Data Grid from Yopsilon.

101 lines 13.9 kB
import * as tslib_1 from "tslib"; /** * Copyright (c) 2018-2019 Aleksey Melnikov, True Directive Company. * @link https://truedirective.com/ * @license MIT */ import { Injectable } from '@angular/core'; import { Subject } from 'rxjs'; import { GridEvents } from './grid-events.class'; import { GridSelection } from './grid-selection.class'; import { InternationalizationService } from './internationalization/internationalization.service'; import { GridState } from '@true-directive/base'; import { DataQuery } from '@true-directive/base'; import { DOMUtils } from './common/dom-utils.class'; import { AxInject } from '@true-directive/base'; var GridStateService = /** @class */ (function (_super) { tslib_1.__extends(GridStateService, _super); function GridStateService(internationalization) { var _this = _super.call(this) || this; _this.internationalization = internationalization; _this.focusChangedSubscription = _this.selection.onFocusChanged.subscribe(function (v) { _this.layoutsHandler.updateLayoutSelections(v); _this.focusChanged(v); }); // При изменении выделения - обновить в лэйаутах. Но сейчас наоборот _this.selectionChangedSubscription = _this.selection.onSelectionChanged.subscribe(function (v) { _this.layoutsHandler.updateLayoutSelections(v); _this.events.selectEvent(v); }); _this.localeChangedSubscription = _this.internationalization.onLocaleChanged.subscribe(function (locale) { _this.dataSource.valueFormatter.setLocale(locale); }); return _this; } // Инициируем обновление данных со всеми пересчётами GridStateService.prototype.updateDataAsync = function () { var _this = this; var subject = new Subject(); if (this.settings.requestData) { // Необходимо запросить данные this.doQuery(subject); // НО! Нужно обновить колонки. this.events.columnsChangedEvent(); return subject; } // Запрашивать не нужно, считаем всё сами // Асинхронное обновление this.recalcData().then(function () { _this.fetchData(new DataQuery(_this._dataQueryCounter)); var rc; if (_this.dataSource.resultRows) { rc = _this.dataSource.resultRows.length; } subject.next(rc); subject.complete(); }); return subject; }; GridStateService.prototype.copySelectionToClipboard = function (withHeaders) { DOMUtils.copyToClipboard(this.getSelectedData(this.selection).toString(withHeaders, '\t')); }; GridStateService.prototype.exportToCSV = function (fileName, columnSeparator) { if (columnSeparator === void 0) { columnSeparator = ','; } DOMUtils.downloadCSV(fileName, this.dataToExport().toString(true, columnSeparator, true)); }; GridStateService.prototype.ngOnDestroy = function () { this.focusChangedSubscription.unsubscribe(); this.selectionChangedSubscription.unsubscribe(); this.localeChangedSubscription.unsubscribe(); }; /* // Важно обновить выделенные области в layouts protected subscribe() { this.events.onSelect.subscribe((cp: CellPosition) => { this.layoutsHandler.updateLayoutSelections(cp); }); } */ GridStateService.prototype.registerHandlers = function () { _super.prototype.registerHandlers.call(this); this.handlers['events'] = GridEvents; this.handlers['selection'] = GridSelection; }; tslib_1.__decorate([ AxInject('events'), tslib_1.__metadata("design:type", GridEvents) ], GridStateService.prototype, "events", void 0); tslib_1.__decorate([ AxInject('selection'), tslib_1.__metadata("design:type", GridSelection) ], GridStateService.prototype, "selection", void 0); GridStateService = tslib_1.__decorate([ Injectable() // @AxInjectConsumer , tslib_1.__metadata("design:paramtypes", [InternationalizationService]) ], GridStateService); return GridStateService; }(GridState)); export { GridStateService }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1zdGF0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRydWUtZGlyZWN0aXZlL2dyaWQvIiwic291cmNlcyI6WyJzcmMvZ3JpZC1zdGF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7OztFQUlFO0FBQ0YsT0FBTyxFQUFFLFVBQVUsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFFaEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBRWxHLE9BQU8sRUFBRSxTQUFTLEVBQWdCLE1BQU0sc0JBQXNCLENBQUM7QUFHL0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR2pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsUUFBUSxFQUFvQixNQUFNLHNCQUFzQixDQUFDO0FBSWxFO0lBQXNDLDRDQUFTO0lBb0U3QywwQkFBbUIsb0JBQWlEO1FBQXBFLFlBQ0UsaUJBQU8sU0FnQlI7UUFqQmtCLDBCQUFvQixHQUFwQixvQkFBb0IsQ0FBNkI7UUFHbEUsS0FBSSxDQUFDLHdCQUF3QixHQUFtQixLQUFJLENBQUMsU0FBVSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsVUFBQSxDQUFDO1lBQ3hGLEtBQUksQ0FBQyxjQUFjLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUMsS0FBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztRQUVILG9FQUFvRTtRQUNwRSxLQUFJLENBQUMsNEJBQTRCLEdBQW1CLEtBQUksQ0FBQyxTQUFVLENBQUMs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cEV6RCxnQkFBZ0IsQ0FzRjVCO0lBQUQsdUJBQUM7Q0FBQSxBQXRGRCxDQUFzQyxTQUFTLEdBc0Y5QztTQXRGWSxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMTkgQWxla3NleSBNZWxuaWtvdiwgVHJ1ZSBEaXJlY3RpdmUgQ29tcGFueS5cclxuICogQGxpbmsgaHR0cHM6Ly90cnVlZGlyZWN0aXZlLmNvbS9cclxuICogQGxpY2Vuc2UgTUlUXHJcbiovXHJcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBHcmlkRXZlbnRzIH0gZnJvbSAnLi9ncmlkLWV2ZW50cy5jbGFzcyc7XHJcbmltcG9ydCB7IEdyaWRTZWxlY3Rpb24gfSBmcm9tICcuL2dyaWQtc2VsZWN0aW9uLmNsYXNzJztcclxuaW1wb3J0IHsgSW50ZXJuYXRpb25hbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9pbnRlcm5hdGlvbmFsaXphdGlvbi9pbnRlcm5hdGlvbmFsaXphdGlvbi5zZXJ2aWNlJztcclxuXHJcbmltcG9ydCB7IEdyaWRTdGF0ZSwgR3JpZEV4cG9ydGVyIH0gZnJvbSAnQHRydWUtZGlyZWN0aXZlL2Jhc2UnO1xyXG5pbXBvcnQgeyBDb2x1bW4gfSBmcm9tICdAdHJ1ZS1kaXJlY3RpdmUvYmFzZSc7XHJcbmltcG9ydCB7IENlbGxQb3NpdGlvbiB9IGZyb20gJ0B0cnVlLWRpcmVjdGl2ZS9iYXNlJztcclxuaW1wb3J0IHsgRGF0YVF1ZXJ5IH0gZnJvbSAnQHRydWUtZGlyZWN0aXZlL2Jhc2UnO1xyXG5pbXBvcnQgeyBDaGVja2VkQ2hhbmdlZEV2ZW50LCBWYWx1ZUNoYW5nZWRFdmVudCwgRmlsdGVyU2hvd0V2ZW50IH0gZnJvbSAnQHRydWUtZGlyZWN0aXZlL2Jhc2UnO1xyXG5pbXBvcnQgeyBVSUFjdGlvbiB9IGZyb20gJ0B0cnVlLWRpcmVjdGl2ZS9iYXNlJztcclxuaW1wb3J0IHsgRE9NVXRpbHMgfSBmcm9tICcuL2NvbW1vbi9kb20tdXRpbHMuY2xhc3MnO1xyXG5pbXBvcnQgeyBBeEluamVjdCwgQXhJbmplY3RDb25zdW1lciB9IGZyb20gJ0B0cnVlLWRpcmVjdGl2ZS9iYXNlJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuLy8gQEF4SW5qZWN0Q29uc3VtZXJcclxuZXhwb3J0IGNsYXNzIEdyaWRTdGF0ZVNlcnZpY2UgZXh0ZW5kcyBHcmlkU3RhdGUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICBmb2N1c0NoYW5nZWRTdWJzY3JpcHRpb246IGFueTtcclxuICBzZWxlY3Rpb25DaGFuZ2VkU3Vic2NyaXB0aW9uOiBhbnk7XHJcbiAgbG9jYWxlQ2hhbmdlZFN1YnNjcmlwdGlvbjogYW55O1xyXG5cclxuICBAQXhJbmplY3QoJ2V2ZW50cycpXHJcbiAgcHVibGljIGV2ZW50czogR3JpZEV2ZW50cztcclxuXHJcbiAgQEF4SW5qZWN0KCdzZWxlY3Rpb24nKVxyXG4gIHB1YmxpYyBzZWxlY3Rpb246IEdyaWRTZWxlY3Rpb247XHJcblxyXG4gIC8vINCY0L3QuNGG0LjQuNGA0YPQtdC8INC+0LHQvdC+0LLQu9C10L3QuNC1INC00LDQvdC90YvRhSDRgdC+INCy0YHQtdC80Lgg0L/QtdGA0LXRgdGH0ZHRgtCw0LzQuFxyXG4gIHB1YmxpYyB1cGRhdGVEYXRhQXN5bmMoKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHN1YmplY3QgPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgICBpZiAodGhpcy5zZXR0aW5ncy5yZXF1ZXN0RGF0YSkge1xyXG4gICAgICAvLyDQndC10L7QsdGF0L7QtNC40LzQviDQt9Cw0L/RgNC+0YHQuNGC0Ywg0LTQsNC90L3Ri9C1XHJcbiAgICAgIHRoaXMuZG9RdWVyeShzdWJqZWN0KTtcclxuICAgICAgLy8g0J3QniEg0J3Rg9C20L3QviDQvtCx0L3QvtCy0LjRgtGMINC60L7Qu9C+0L3QutC4LlxyXG4gICAgICB0aGlzLmV2ZW50cy5jb2x1bW5zQ2hhbmdlZEV2ZW50KCk7XHJcbiAgICAgIHJldHVybiBzdWJqZWN0O1xyXG4gICAgfVxyXG5cclxuICAgIC8vINCX0LDQv9GA0LDRiNC40LLQsNGC0Ywg0L3QtSDQvdGD0LbQvdC+LCDRgdGH0LjRgtCw0LXQvCDQstGB0ZEg0YHQsNC80LhcclxuICAgIC8vINCQ0YHQuNC90YXRgNC+0L3QvdC+0LUg0L7QsdC90L7QstC70LXQvdC40LVcclxuICAgIHRoaXMucmVjYWxjRGF0YSgpLnRoZW4oKCkgPT4ge1xyXG4gICAgICB0aGlzLmZldGNoRGF0YShuZXcgRGF0YVF1ZXJ5KHRoaXMuX2RhdGFRdWVyeUNvdW50ZXIpKTtcclxuICAgICAgbGV0IHJjO1xyXG4gICAgICBpZiAodGhpcy5kYXRhU291cmNlLnJlc3VsdFJvd3MpIHtcclxuICAgICAgICByYyA9IHRoaXMuZGF0YVNvdXJjZS5yZXN1bHRSb3dzLmxlbmd0aDtcclxuICAgICAgfVxyXG4gICAgICBzdWJqZWN0Lm5leHQocmMpO1xyXG4gICAgICBzdWJqZWN0LmNvbXBsZXRlKCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gc3ViamVjdDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjb3B5U2VsZWN0aW9uVG9DbGlwYm9hcmQod2l0aEhlYWRlcnM6IGJvb2xlYW4pIHtcclxuICAgIERPTVV0aWxzLmNvcHlUb0NsaXBib2FyZCh0aGlzLmdldFNlbGVjdGVkRGF0YSh0aGlzLnNlbGVjdGlvbikudG9TdHJpbmcod2l0aEhlYWRlcnMsICdcXHQnKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBleHBvcnRUb0NTVihmaWxlTmFtZTogc3RyaW5nLCBjb2x1bW5TZXBhcmF0b3I6IHN0cmluZyA9ICcsJykge1xyXG4gICAgRE9NVXRpbHMuZG93bmxvYWRDU1YoZmlsZU5hbWUsIHRoaXMuZGF0YVRvRXhwb3J0KCkudG9TdHJpbmcodHJ1ZSwgY29sdW1uU2VwYXJhdG9yLCB0cnVlKSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuZm9jdXNDaGFuZ2VkU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMubG9jYWxlQ2hhbmdlZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICAvLyDQktCw0LbQvdC+INC+0LHQvdC+0LLQuNGC0Ywg0LLRi9C00LXQu9C10L3QvdGL0LUg0L7QsdC70LDRgdGC0Lgg0LIgbGF5b3V0c1xyXG4gIHByb3RlY3RlZCBzdWJzY3JpYmUoKSB7XHJcbiAgICB0aGlzLmV2ZW50cy5vblNlbGVjdC5zdWJzY3JpYmUoKGNwOiBDZWxsUG9zaXRpb24pID0+IHtcclxuICAgICAgdGhpcy5sYXlvdXRzSGFuZGxlci51cGRhdGVMYXlvdXRTZWxlY3Rpb25zKGNwKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICAqL1xyXG4gXHJcbiAgcHJvdGVjdGVkIHJlZ2lzdGVySGFuZGxlcnMoKSB7XHJcbiAgICBzdXBlci5yZWdpc3RlckhhbmRsZXJzKCk7XHJcbiAgICB0aGlzLmhhbmRsZXJzWydldmVudHMnXSA9IEdyaWRFdmVudHM7XHJcbiAgICB0aGlzLmhhbmRsZXJzWydzZWxlY3Rpb24nXSA9IEdyaWRTZWxlY3Rpb247XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgaW50ZXJuYXRpb25hbGl6YXRpb246IEludGVybmF0aW9uYWxpemF0aW9uU2VydmljZSkge1xyXG4gICAgc3VwZXIoKTtcclxuXHJcbiAgICB0aGlzLmZvY3VzQ2hhbmdlZFN1YnNjcmlwdGlvbiA9ICg8R3JpZFNlbGVjdGlvbj50aGlzLnNlbGVjdGlvbikub25Gb2N1c0NoYW5nZWQuc3Vic2NyaWJlKHYgPT4ge1xyXG4gICAgICB0aGlzLmxheW91dHNIYW5kbGVyLnVwZGF0ZUxheW91dFNlbGVjdGlvbnModik7XHJcbiAgICAgIHRoaXMuZm9jdXNDaGFuZ2VkKHYpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgLy8g0J/RgNC4INC40LfQvNC10L3QtdC90LjQuCDQstGL0LTQtdC70LXQvdC40Y8gLSDQvtCx0L3QvtCy0LjRgtGMINCyINC70Y3QudCw0YPRgtCw0YUuINCd0L4g0YHQtdC50YfQsNGBINC90LDQvtCx0L7RgNC+0YJcclxuICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlZFN1YnNjcmlwdGlvbiA9ICg8R3JpZFNlbGVjdGlvbj50aGlzLnNlbGVjdGlvbikub25TZWxlY3Rpb25DaGFuZ2VkLnN1YnNjcmliZSh2ID0+IHtcclxuICAgICAgdGhpcy5sYXlvdXRzSGFuZGxlci51cGRhdGVMYXlvdXRTZWxlY3Rpb25zKHYpO1xyXG4gICAgICB0aGlzLmV2ZW50cy5zZWxlY3RFdmVudCh2KTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMubG9jYWxlQ2hhbmdlZFN1YnNjcmlwdGlvbiA9IHRoaXMuaW50ZXJuYXRpb25hbGl6YXRpb24ub25Mb2NhbGVDaGFuZ2VkLnN1YnNjcmliZShsb2NhbGUgPT4ge1xyXG4gICAgICB0aGlzLmRhdGFTb3VyY2UudmFsdWVGb3JtYXR0ZXIuc2V0TG9jYWxlKGxvY2FsZSk7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19