core-cde
Version:
162 lines • 5.27 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.DataColumnSelect = exports.DataSelect = exports.Select = exports.ColorsSelect = void 0;
const StateChanger_module_1 = require("../../stateChanger/StateChanger.module");
const Data_module_1 = require("../Data.module");
var ColorsSelect;
(function (ColorsSelect) {
ColorsSelect["Default"] = "rgba(206, 205, 202, 0.5)";
ColorsSelect["Gray"] = "rgba(155, 154, 151, 0.4)";
ColorsSelect["Brown"] = "rgba(140, 46, 0, 0.2)";
ColorsSelect["Orange"] = "rgba(245, 93, 0, 0.2)";
ColorsSelect["Yellow"] = "rgba(233, 168, 0, 0.2)";
ColorsSelect["Green"] = "rgba(0, 135, 107, 0.2)";
ColorsSelect["Blue"] = "rgba(0, 120, 223, 0.2)";
ColorsSelect["Purple"] = "rgba(103, 36, 222, 0.2)";
ColorsSelect["Pink"] = "rgba(103, 36, 222, 0.2)";
ColorsSelect["Red"] = "rgba(255, 0, 26, 0.2)";
})(ColorsSelect = exports.ColorsSelect || (exports.ColorsSelect = {}));
/**
* Описание Select
*/
class Select {
constructor(name, color) {
this.name = name;
this.color = color;
}
}
exports.Select = Select;
/**
* Данные Select
*/
class DataSelect {
constructor(list) {
this._selectList = [];
if (list) {
this._selectList = list;
}
}
addSelect(val) {
if (!val)
return;
if (val instanceof Select) {
if (!this.findSelect(val.name)) {
return this._selectList.push(val);
}
return -1;
}
return this._selectList.push(...val);
}
/**
* Поиск селекта по названию
* @param name Название селекта
* @returns Селект
*/
findSelect(name) {
return this._selectList.find(val => val.name === name);
}
removeSelect(name) {
if (name instanceof Select) {
name = name.name;
}
const index = this._selectList.findIndex(val => val.name === name);
if (index < 0) {
new StateChanger_module_1.ElementNotFoundError('removeSelect');
}
if (!this._selectList.splice(index, 1)) {
new StateChanger_module_1.ElementNotFoundError('removeSelect');
}
}
/**
* Получить цвет по названию
* @param name Название
* @returns Цвет
*/
getColorLableByName(name) {
var _a;
if (!name) {
return;
}
return ColorsSelect[(_a = this._selectList.find(val => val.name === name)) === null || _a === void 0 ? void 0 : _a.color];
}
/**
* Отфильтровать список по значению
* @param val Значение
* @returns list новый список
*/
filterList(val) {
if (val === '' || val === null) {
return this._selectList;
}
return this._selectList.filter(item => item.name.toLowerCase().indexOf(val.toLowerCase()) >= 0);
}
getList(val) {
if (val) {
return this.filterList(val);
}
return this._selectList;
}
/**
* Получить select по названию
* @param name Название
* @returns Select
*/
getSelectByName(name) {
return this._selectList.find(val => val.name === name);
}
static fromJSON(json) {
return new DataSelect(JSON.parse(json));
}
toJSON() {
return JSON.stringify(this._selectList);
}
}
exports.DataSelect = DataSelect;
/**
* Класс колонки данных Select
*/
// @dynamic
class DataColumnSelect extends Data_module_1.DataColumn {
/** Конструктор
* Не предназначен для использования внешним кодом.
* Следует использовать DataColumnSelect.createNew()
*/
constructor() {
super();
this.dataSelect = new DataSelect();
}
static createNew(name, dataType, listSelect) {
const res = new DataColumnSelect();
res.dataSelect.addSelect(listSelect);
res._dataType = dataType;
res._name = name;
return res;
}
static fromJSON(json) {
if (typeof json === 'string') {
return DataColumnSelect.fromJSON(JSON.parse(json));
}
else {
const dataColumn = new DataColumnSelect();
return Object.assign(dataColumn, null, {
_name: json.name,
_index: json.index,
_dataType: json.dataType,
_width: json.width,
dataSelect: new DataSelect(JSON.parse(json.dataSelect || null)),
id: json.id
});
}
}
toJSON() {
return Object.assign({}, null, {
dataType: this._dataType,
name: this._name,
dataSelect: this.dataSelect,
with: this._width,
id: this.id
});
}
}
exports.DataColumnSelect = DataColumnSelect;
//# sourceMappingURL=DataColumnSelect.js.map