@true-directive/grid
Version:
Angular Data Grid from Yopsilon.
101 lines • 13.9 kB
JavaScript
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