@true-directive/grid
Version:
Angular Data Grid from Yopsilon.
88 lines • 9.86 kB
JavaScript
/**
* Copyright (c) 2018-2019 Aleksey Melnikov, True Directive Company.
* @link https://truedirective.com/
* @license MIT
*/
/**
* Cell data
*/
var RowCell = /** @class */ (function () {
function RowCell(fieldName, value, element) {
this.fieldName = fieldName;
this.value = value;
this.element = element;
this._disabled = false;
this._selected = 0;
this._cellSelected = false;
this._disClass = 'true-cell-disabled';
this._cfClass = 'true-cell-focused';
this._rsClass = 'true-range-selected';
this._maxLevel = 5;
this.rendered = false;
this.added = false;
this.skipped = false;
}
RowCell.prototype.toggleClass = function (cls, v) {
if (v) {
this.element.classList.add(cls);
}
else {
this.element.classList.remove(cls);
}
return v;
};
RowCell.prototype.setDisabled = function (v) {
if (this._disabled === v) {
return;
}
this._disabled = this.toggleClass(this._disClass, v);
};
RowCell.prototype.setCellFocused = function (v) {
if (this._cellSelected === v) {
return;
}
this._cellSelected = this.toggleClass(this._cfClass, v);
};
RowCell.prototype.setSelected = function (v) {
if (this._selected === v) {
return;
}
if (v > this._maxLevel) {
// Более 5 раз одну и ту же ячейку выбрать можно.
v = this._maxLevel; // Но дальше пятого уровня различию по рендерингу у них нет.
}
if (this._selected > 0) {
this.element.classList.remove(this._rsClass);
this.element.classList.remove(this._rsClass + this._selected);
}
if (v > 0) {
this.element.classList.add(this._rsClass);
this.element.classList.add(this._rsClass + v);
}
this._selected = v;
};
// Установка классов чекбокса
RowCell.prototype.setChecked = function (v) {
if (!this.cbElement) {
return;
}
this.value = v;
if (v) {
this.cbElement.classList.remove('indeterminate');
this.cbElement.classList.add('checked');
}
else {
if (v === null || v === undefined) {
this.cbElement.classList.remove('checked');
this.cbElement.classList.add('indeterminate');
}
else {
this.cbElement.classList.remove('checked');
this.cbElement.classList.remove('indeterminate');
}
}
};
return RowCell;
}());
export { RowCell };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWNlbGwuY2xhc3MuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdHJ1ZS1kaXJlY3RpdmUvZ3JpZC8iLCJzb3VyY2VzIjpbInNyYy9yb3ctY2VsbC5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztFQUlFO0FBQ0Y7O0dBRUc7QUFDSDtJQW1GRSxpQkFDUyxTQUFnQixFQUNoQixLQUFVLEVBQ1YsT0FBb0I7UUFGcEIsY0FBUyxHQUFULFNBQVMsQ0FBTztRQUNoQixVQUFLLEdBQUwsS0FBSyxDQUFLO1FBQ1YsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQXBGckIsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixjQUFTLEdBQVcsQ0FBQyxDQUFDO1FBQ3RCLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBQ3RCLGNBQVMsR0FBRyxvQkFBb0IsQ0FBQztRQUNqQyxhQUFRLEdBQUcsbUJBQW1CLENBQUM7UUFDL0IsYUFBUSxHQUFHLHFCQUFxQixDQUFDO1FBQ2pDLGNBQVMsR0FBRyxDQUFDLENBQUM7UUFHeEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixVQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ2QsWUFBTyxHQUFHLEtBQUssQ0FBQztJQTBFbkIsQ0FBQztJQXhFRyw2QkFBVyxHQUFuQixVQUFvQixHQUFXLEVBQUUsQ0FBVTtRQUN6QyxJQUFJLENBQUMsRUFBRTtZQUNMLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNqQzthQUFNO1lBQ0wsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3BDO1FBQ0QsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRU0sNkJBQVcsR0FBbEIsVUFBbUIsQ0FBVTtRQUMzQixJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssQ0FBQyxFQUFFO1lBQ3hCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFTSxnQ0FBYyxHQUFyQixVQUFzQixDQUFVO1FBQzlCLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxDQUFDLEVBQUU7WUFDNUIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVNLDZCQUFXLEdBQWxCLFVBQW1CLENBQVM7UUFFMUIsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLENBQUMsRUFBRTtZQUN4QixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ3RCLGlEQUFpRDtZQUNqRCxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFFLDREQUE0RDtTQUNsRjtRQUVELElBQUksSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLEVBQUU7WUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM3QyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDL0Q7UUFFRCxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDVCxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQy9DO1FBRUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELDZCQUE2QjtJQUN0Qiw0QkFBVSxHQUFqQixVQUFrQixDQUFVO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ25CLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLEVBQUU7WUFDTCxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDakQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ3pDO2FBQU07WUFDTCxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLFNBQVMsRUFBRTtnQkFDakMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUMzQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7YUFDL0M7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUMzQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7YUFDbEQ7U0FDRjtJQUNILENBQUM7SUFPSCxjQUFDO0FBQUQsQ0FBQyxBQXhGRCxJQXdGQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAxOSBBbGVrc2V5IE1lbG5pa292LCBUcnVlIERpcmVjdGl2ZSBDb21wYW55LlxyXG4gKiBAbGluayBodHRwczovL3RydWVkaXJlY3RpdmUuY29tL1xyXG4gKiBAbGljZW5zZSBNSVRcclxuKi9cclxuLyoqXHJcbiAqIENlbGwgZGF0YVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFJvd0NlbGwge1xyXG5cclxuICBwcml2YXRlIF9kaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX3NlbGVjdGVkOiBudW1iZXIgPSAwO1xyXG4gIHByaXZhdGUgX2NlbGxTZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rpc0NsYXNzID0gJ3RydWUtY2VsbC1kaXNhYmxlZCc7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfY2ZDbGFzcyA9ICd0cnVlLWNlbGwtZm9jdXNlZCc7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfcnNDbGFzcyA9ICd0cnVlLXJhbmdlLXNlbGVjdGVkJztcclxuICBwcml2YXRlIHJlYWRvbmx5IF9tYXhMZXZlbCA9IDU7XHJcblxyXG4gIHB1YmxpYyBjYkVsZW1lbnQ6IEhUTUxFbGVtZW50O1xyXG4gIHB1YmxpYyByZW5kZXJlZCA9IGZhbHNlO1xyXG4gIHB1YmxpYyBhZGRlZCA9IGZhbHNlO1xyXG4gIHB1YmxpYyBza2lwcGVkID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgdG9nZ2xlQ2xhc3MoY2xzOiBzdHJpbmcsIHY6IGJvb2xlYW4pOiBib29sZWFuIHtcclxuICAgIGlmICh2KSB7XHJcbiAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKGNscyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShjbHMpOyBcclxuICAgIH1cclxuICAgIHJldHVybiB2O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldERpc2FibGVkKHY6IGJvb2xlYW4pIHtcclxuICAgIGlmICh0aGlzLl9kaXNhYmxlZCA9PT0gdikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLl9kaXNhYmxlZCA9IHRoaXMudG9nZ2xlQ2xhc3ModGhpcy5fZGlzQ2xhc3MsIHYpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldENlbGxGb2N1c2VkKHY6IGJvb2xlYW4pIHtcclxuICAgIGlmICh0aGlzLl9jZWxsU2VsZWN0ZWQgPT09IHYpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fY2VsbFNlbGVjdGVkID0gdGhpcy50b2dnbGVDbGFzcyh0aGlzLl9jZkNsYXNzLCB2KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRTZWxlY3RlZCh2OiBudW1iZXIpIHtcclxuXHJcbiAgICBpZiAodGhpcy5fc2VsZWN0ZWQgPT09IHYpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh2ID4gdGhpcy5fbWF4TGV2ZWwpIHtcclxuICAgICAgLy8g0JHQvtC70LXQtSA1INGA0LDQtyDQvtC00L3RgyDQuCDRgtGDINC20LUg0Y/Rh9C10LnQutGDINCy0YvQsdGA0LDRgtGMINC80L7QttC90L4uXHJcbiAgICAgIHYgPSB0aGlzLl9tYXhMZXZlbDsgIC8vINCd0L4g0LTQsNC70YzRiNC1INC/0Y/RgtC+0LPQviDRg9GA0L7QstC90Y8g0YDQsNC30LvQuNGH0LjRjiDQv9C+INGA0LXQvdC00LXRgNC40L3Qs9GDINGDINC90LjRhSDQvdC10YIuXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuX3NlbGVjdGVkID4gMCkge1xyXG4gICAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLl9yc0NsYXNzKTtcclxuICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUodGhpcy5fcnNDbGFzcyArIHRoaXMuX3NlbGVjdGVkKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodiA+IDApIHtcclxuICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5hZGQodGhpcy5fcnNDbGFzcyk7XHJcbiAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKHRoaXMuX3JzQ2xhc3MgKyB2KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9zZWxlY3RlZCA9IHY7XHJcbiAgfVxyXG5cclxuICAvLyDQo9GB0YLQsNC90L7QstC60LAg0LrQu9Cw0YHRgdC+0LIg0YfQtdC60LHQvtC60YHQsFxyXG4gIHB1YmxpYyBzZXRDaGVja2VkKHY6IGJvb2xlYW4pIHtcclxuICAgIGlmICghdGhpcy5jYkVsZW1lbnQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudmFsdWUgPSB2O1xyXG4gICAgaWYgKHYpIHtcclxuICAgICAgdGhpcy5jYkVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnaW5kZXRlcm1pbmF0ZScpO1xyXG4gICAgICB0aGlzLmNiRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdjaGVja2VkJyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodiA9PT0gbnVsbCB8fCB2ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLmNiRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdjaGVja2VkJyk7XHJcbiAgICAgICAgdGhpcy5jYkVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnaW5kZXRlcm1pbmF0ZScpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY2JFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ2NoZWNrZWQnKTtcclxuICAgICAgICB0aGlzLmNiRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdpbmRldGVybWluYXRlJyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGZpZWxkTmFtZTpzdHJpbmcsXHJcbiAgICBwdWJsaWMgdmFsdWU6IGFueSxcclxuICAgIHB1YmxpYyBlbGVtZW50OiBIVE1MRWxlbWVudFxyXG4gICkgeyB9XHJcbn1cclxuIl19