@anglr/grid
Version:
Angular module displaying grid
54 lines • 1.59 kB
JavaScript
/**
* Default implementation of orderable indicator renderer
*/
export class DefaultOrderableIndicatorRenderer {
constructor() {
//######################### protected properties #########################
/**
* Current css classes that are applied to indicator element
*/
this.currentCssClasses = [];
}
//######################### public methods - implementation of OrderableIndicatorRenderer #########################
/**
* @inheritdoc
*/
create(element, renderer) {
if (this.element) {
return;
}
this.element = renderer.createElement('span');
renderer.appendChild(element, this.element);
}
/**
* @inheritdoc
*/
destroy(element, renderer) {
if (!this.element) {
return;
}
renderer.removeChild(element, this.element);
this.element = null;
}
/**
* @inheritdoc
*/
apply(cssClasses, renderer) {
if (!this.element) {
return;
}
//remove current css classes
for (const cssClass of this.currentCssClasses) {
for (const cls of cssClass.split(' ')) {
renderer.removeClass(this.element, cls);
}
}
this.currentCssClasses = cssClasses;
for (const cssClass of this.currentCssClasses) {
for (const cls of cssClass.split(' ')) {
renderer.addClass(this.element, cls);
}
}
}
}
//# sourceMappingURL=defaultOrderableIndicatorRenderer.service.js.map