@angular-mdl/core
Version:
Angular components, directives and styles based on material design lite https://getmdl.io.
48 lines • 6.43 kB
JavaScript
import { Directive, ElementRef, Input, Renderer2, } from "@angular/core";
import { MdlError } from "../common/mdl-error";
import { toNumber } from "../common/number.property";
import * as i0 from "@angular/core";
export class MdlUnsupportedShadowValueError extends MdlError {
constructor(value) {
/* istanbul ignore next */
super(`Shadow value "${value}" isn't supported (allowed: 2,3,4,6,8,16,24).`);
}
}
const MDL_SHADOW_VALUES = [0, 2, 3, 4, 6, 8, 16, 24];
export class MdlShadowDirective {
constructor(elementRef, renderer) {
this.elementRef = elementRef;
this.renderer = renderer;
this.mdlShadowIntern = 2;
this.el = elementRef.nativeElement;
}
get mdlShadow() {
return this.mdlShadowIntern;
}
set mdlShadow(value) {
this.mdlShadowIntern = toNumber(value) ?? 2;
}
ngOnChanges(changes) {
if (MDL_SHADOW_VALUES.indexOf(Number(this.mdlShadow)) === -1) {
throw new MdlUnsupportedShadowValueError(this.mdlShadow);
}
const change = changes["mdlShadow"];
if (!change.isFirstChange()) {
this.renderer.removeClass(this.el, `mdl-shadow--${change.previousValue}dp`);
}
this.renderer.addClass(this.el, `mdl-shadow--${change.currentValue}dp`);
}
}
MdlShadowDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MdlShadowDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
MdlShadowDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: MdlShadowDirective, selector: "[mdl-shadow]", inputs: { mdlShadow: ["mdl-shadow", "mdlShadow"] }, usesOnChanges: true, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MdlShadowDirective, decorators: [{
type: Directive,
args: [{
// eslint-disable-next-line
selector: "[mdl-shadow]",
}]
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { mdlShadow: [{
type: Input,
args: ["mdl-shadow"]
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWRsLXNoYWRvdy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvc2hhZG93L21kbC1zaGFkb3cuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFFTCxTQUFTLEdBRVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFFckQsTUFBTSxPQUFPLDhCQUErQixTQUFRLFFBQVE7SUFDMUQsWUFBWSxLQUFzQjtRQUNoQywwQkFBMEI7UUFDMUIsS0FBSyxDQUNILGlCQUFpQixLQUFLLCtDQUErQyxDQUN0RSxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBRUQsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztBQU1yRCxNQUFNLE9BQU8sa0JBQWtCO0lBSTdCLFlBQW9CLFVBQXNCLEVBQVUsUUFBbUI7UUFBbkQsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUFGL0Qsb0JBQWUsR0FBRyxDQUFDLENBQUM7UUFHMUIsSUFBSSxDQUFDLEVBQUUsR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUNJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQUksU0FBUyxDQUFDLEtBQXNCO1FBQ2xDLElBQUksQ0FBQyxlQUFlLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksaUJBQWlCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUM1RCxNQUFNLElBQUksOEJBQThCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzFEO1FBRUQsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRXBDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLEVBQUU7WUFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQ3ZCLElBQUksQ0FBQyxFQUFFLEVBQ1AsZUFBZSxNQUFNLENBQUMsYUFBYSxJQUFJLENBQ3hDLENBQUM7U0FDSDtRQUVELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsZUFBZSxNQUFNLENBQUMsWUFBWSxJQUFJLENBQUMsQ0FBQztJQUMxRSxDQUFDOzsrR0FoQ1Usa0JBQWtCO21HQUFsQixrQkFBa0I7MkZBQWxCLGtCQUFrQjtrQkFKOUIsU0FBUzttQkFBQztvQkFDVCwyQkFBMkI7b0JBQzNCLFFBQVEsRUFBRSxjQUFjO2lCQUN6Qjt5SEFVSyxTQUFTO3NCQURaLEtBQUs7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgUmVuZGVyZXIyLFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTWRsRXJyb3IgfSBmcm9tIFwiLi4vY29tbW9uL21kbC1lcnJvclwiO1xuaW1wb3J0IHsgdG9OdW1iZXIgfSBmcm9tIFwiLi4vY29tbW9uL251bWJlci5wcm9wZXJ0eVwiO1xuXG5leHBvcnQgY2xhc3MgTWRsVW5zdXBwb3J0ZWRTaGFkb3dWYWx1ZUVycm9yIGV4dGVuZHMgTWRsRXJyb3Ige1xuICBjb25zdHJ1Y3Rvcih2YWx1ZTogbnVtYmVyIHwgc3RyaW5nKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBzdXBlcihcbiAgICAgIGBTaGFkb3cgdmFsdWUgXCIke3ZhbHVlfVwiIGlzbid0IHN1cHBvcnRlZCAoYWxsb3dlZDogMiwzLDQsNiw4LDE2LDI0KS5gXG4gICAgKTtcbiAgfVxufVxuXG5jb25zdCBNRExfU0hBRE9XX1ZBTFVFUyA9IFswLCAyLCAzLCA0LCA2LCA4LCAxNiwgMjRdO1xuXG5ARGlyZWN0aXZlKHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gIHNlbGVjdG9yOiBcIlttZGwtc2hhZG93XVwiLFxufSlcbmV4cG9ydCBjbGFzcyBNZGxTaGFkb3dEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBwcml2YXRlIHJlYWRvbmx5IGVsOiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBtZGxTaGFkb3dJbnRlcm4gPSAyO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7XG4gICAgdGhpcy5lbCA9IGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIEBJbnB1dChcIm1kbC1zaGFkb3dcIilcbiAgZ2V0IG1kbFNoYWRvdygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm1kbFNoYWRvd0ludGVybjtcbiAgfVxuXG4gIHNldCBtZGxTaGFkb3codmFsdWU6IG51bWJlciB8IHN0cmluZykge1xuICAgIHRoaXMubWRsU2hhZG93SW50ZXJuID0gdG9OdW1iZXIodmFsdWUpID8/IDI7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKE1ETF9TSEFET1dfVkFMVUVTLmluZGV4T2YoTnVtYmVyKHRoaXMubWRsU2hhZG93KSkgPT09IC0xKSB7XG4gICAgICB0aHJvdyBuZXcgTWRsVW5zdXBwb3J0ZWRTaGFkb3dWYWx1ZUVycm9yKHRoaXMubWRsU2hhZG93KTtcbiAgICB9XG5cbiAgICBjb25zdCBjaGFuZ2UgPSBjaGFuZ2VzW1wibWRsU2hhZG93XCJdO1xuXG4gICAgaWYgKCFjaGFuZ2UuaXNGaXJzdENoYW5nZSgpKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKFxuICAgICAgICB0aGlzLmVsLFxuICAgICAgICBgbWRsLXNoYWRvdy0tJHtjaGFuZ2UucHJldmlvdXNWYWx1ZX1kcGBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsLCBgbWRsLXNoYWRvdy0tJHtjaGFuZ2UuY3VycmVudFZhbHVlfWRwYCk7XG4gIH1cbn1cbiJdfQ==