UNPKG

@angular-mdl/core

Version:

Angular components, directives and styles based on material design lite https://getmdl.io.

48 lines 6.43 kB
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==