core-cde
Version:
113 lines • 3.51 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PageItems = exports.Page = exports.Cover = void 0;
const Uidv4_1 = require("./Uidv4");
const Errors_1 = require("./Errors");
const LinqList_1 = require("./LinqList");
const TypeComponent_1 = require("./TypeComponent");
/**
* Класс обложки страницы
*/
class Cover {
constructor(image) {
this.image = image;
}
}
exports.Cover = Cover;
/**
* Страница
*/
class Page {
constructor(name = '', id = Uidv4_1.UUID.get(), widgets = new LinqList_1.LinkedListModified()) {
this.name = name;
this.id = id;
this.widgets = widgets;
this._active = false;
if (!name || !id) {
throw new Errors_1.EmptyParametersError('constructor Page()');
}
}
get cover() {
return this._cover;
}
set cover(value) {
this._cover = value;
}
get active() {
return this._active;
}
set active(value) {
this._active = value;
}
static fromJSON(json) {
try {
const pageJson = JSON.parse(json);
const page = new Page(pageJson.name, pageJson.id);
page.cover = pageJson.cover ? new Cover(pageJson.cover.image) : null;
return page;
}
catch (error) {
throw new Errors_1.JsonParseError('Heading widget');
}
}
toJSON() {
return Object.assign({}, null, {
id: this.id,
name: this.name,
cover: this.cover,
});
}
/**
* Получить виджеты таблиц
* @returns Виджет таблица
*/
getWidgetTables() {
return this.widgets.toArray().filter(val => val.type === TypeComponent_1.TypeComponent.table);
}
/**
* Получить DataTable на странице
* @returns DataTable которые есть на странице
*/
getDataTables() {
return this.widgets.toArray()
.filter(val => { var _a; return val.type === TypeComponent_1.TypeComponent.table && ((_a = val) === null || _a === void 0 ? void 0 : _a.originalPerformance) === true; })
.map(val => val.viewTable.table);
}
/**
* Получить все представления таблиц
* @returns представления таблиц
*/
getDataViews() {
return [];
// return this.widgets.toArray()
// .filter(val => (val as TableWidget).type === TypeComponent.table && !(val as TableWidget).originalPerformance)
// .map(val => (val as TableWidget).viewTable);
}
/**
* Удалить все DataTable которые на странице из DataSet
*/
removeDataTableFromDataSet(ds) {
try {
if (ds) {
const dataTables = this.getDataTables();
if (dataTables) {
for (const table of dataTables) {
ds.removeTableByName(table.uniqueName);
}
}
}
}
catch (error) {
throw error;
}
}
}
exports.Page = Page;
class PageItems extends Page {
constructor() {
super(...arguments);
this.icon = null;
}
}
exports.PageItems = PageItems;
//# sourceMappingURL=Page.js.map