@greg-md/ng-flex-css-layout
Version:
Flex-CSS-Layout is an alternative behaviour of Flex-Layout directives, that will still work with Angular Universal and App Shell.
54 lines (53 loc) • 3.9 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
/**
* @abstract
*/
export class BaseDirective {
/**
* @param {?} elementRef
* @param {?} renderer
*/
constructor(elementRef, renderer) {
this.elementRef = elementRef;
this.renderer = renderer;
this.classNames = [];
}
/**
* @param {?} classNames
* @return {?}
*/
setClassNames(classNames) {
classNames = classNames.filter((value, index, self) => self.indexOf(value) === index);
classNames.forEach(className => this.addClassName(className));
this.classNames
.filter(className => classNames.indexOf(className) < 0)
.forEach(className => this.removeClassName(className));
this.classNames = classNames;
}
/**
* @param {?} className
* @return {?}
*/
addClassName(className) {
this.renderer.addClass(this.elementRef.nativeElement, className);
}
/**
* @param {?} className
* @return {?}
*/
removeClassName(className) {
this.renderer.removeClass(this.elementRef.nativeElement, className);
}
}
function BaseDirective_tsickle_Closure_declarations() {
/** @type {?} */
BaseDirective.prototype.classNames;
/** @type {?} */
BaseDirective.prototype.elementRef;
/** @type {?} */
BaseDirective.prototype.renderer;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGdyZWctbWQvbmctZmxleC1jc3MtbGF5b3V0LyIsInNvdXJjZXMiOlsibGliL2RpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBRUEsTUFBTTs7Ozs7SUFHSixZQUNTLFlBQ0csUUFBbUI7UUFEdEIsZUFBVSxHQUFWLFVBQVU7UUFDUCxhQUFRLEdBQVIsUUFBUSxDQUFXOzBCQUpBLEVBQUU7S0FNaEM7Ozs7O0lBRUQsYUFBYSxDQUFDLFVBQW9CO1FBQ2hDLFVBQVUsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUM7UUFFdEYsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUU5RCxJQUFJLENBQUMsVUFBVTthQUNaLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3RELE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUV6RCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztLQUM5Qjs7Ozs7SUFFRCxZQUFZLENBQUMsU0FBaUI7UUFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUM7S0FDbEU7Ozs7O0lBRUQsZUFBZSxDQUFDLFNBQWlCO1FBQy9CLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0tBQ3JFO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VEaXJlY3RpdmUge1xuICBwcml2YXRlIGNsYXNzTmFtZXM6IHN0cmluZ1tdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJvdGVjdGVkIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICkge1xuICB9XG5cbiAgc2V0Q2xhc3NOYW1lcyhjbGFzc05hbWVzOiBzdHJpbmdbXSkge1xuICAgIGNsYXNzTmFtZXMgPSBjbGFzc05hbWVzLmZpbHRlcigodmFsdWUsIGluZGV4LCBzZWxmKSA9PiBzZWxmLmluZGV4T2YodmFsdWUpID09PSBpbmRleCk7XG5cbiAgICBjbGFzc05hbWVzLmZvckVhY2goY2xhc3NOYW1lID0+IHRoaXMuYWRkQ2xhc3NOYW1lKGNsYXNzTmFtZSkpO1xuXG4gICAgdGhpcy5jbGFzc05hbWVzXG4gICAgICAuZmlsdGVyKGNsYXNzTmFtZSA9PiBjbGFzc05hbWVzLmluZGV4T2YoY2xhc3NOYW1lKSA8IDApXG4gICAgICAuZm9yRWFjaChjbGFzc05hbWUgPT4gdGhpcy5yZW1vdmVDbGFzc05hbWUoY2xhc3NOYW1lKSk7XG5cbiAgICB0aGlzLmNsYXNzTmFtZXMgPSBjbGFzc05hbWVzO1xuICB9XG5cbiAgYWRkQ2xhc3NOYW1lKGNsYXNzTmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgY2xhc3NOYW1lKTtcbiAgfVxuXG4gIHJlbW92ZUNsYXNzTmFtZShjbGFzc05hbWU6IHN0cmluZykge1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGNsYXNzTmFtZSk7XG4gIH1cbn1cbiJdfQ==