@angular-mdl/core
Version:
Angular components, directives and styles based on material design lite https://getmdl.io.
127 lines • 14.2 kB
JavaScript
import { Component, ElementRef, HostBinding, HostListener, Input, ViewEncapsulation, } from "@angular/core";
import { MdlError } from "../common/mdl-error";
import { toBoolean } from "../common/boolean-property";
import { callNative } from "../common/native-support";
import * as i0 from "@angular/core";
export class MdlUnsupportedButtonTypeError extends MdlError {
constructor(type) {
/* istanbul ignore next */
super(`Button type "${type}" isn't supported (allowed: raised, fab, mini-fab, icon, '').`);
}
}
export class MdlUnsupportedColoredTypeError extends MdlError {
constructor(type) {
/* istanbul ignore next */
super(`Colored type "${type}" isn't supported (allowed: primary, accent, '').`);
}
}
const MDL_BUTTON_TYPES = ["raised", "fab", "mini-fab", "icon", ""];
const MDL_COLORED_TYPES = ["primary", "accent", ""];
export class MdlButtonComponent {
constructor(elementRef) {
this.elementRef = elementRef;
this.isButton = true;
// eslint-disable-next-line @angular-eslint/no-input-rename
this.mdlButtonType = "";
// eslint-disable-next-line @angular-eslint/no-input-rename
this.mdlColoredType = "";
this.disabledIntern = false;
this.element = elementRef.nativeElement;
}
get isDisable() {
return this.disabled ? "disabled" : null;
}
get raised() {
return this.mdlButtonType === "raised";
}
get fab() {
return this.mdlButtonType === "fab" || this.mdlButtonType === "mini-fab";
}
get miniFab() {
return this.mdlButtonType === "mini-fab";
}
get icon() {
return this.mdlButtonType === "icon";
}
get primary() {
return this.mdlColoredType === "primary";
}
get accent() {
return this.mdlColoredType === "accent";
}
get disabled() {
return this.disabledIntern;
}
set disabled(value) {
this.disabledIntern = toBoolean(value);
}
onMouseUp() {
this.blurIt();
}
onMouseLeave() {
this.blurIt();
}
ngOnChanges() {
if (this.mdlButtonType &&
MDL_BUTTON_TYPES.indexOf(this.mdlButtonType) === -1) {
throw new MdlUnsupportedButtonTypeError(this.mdlButtonType);
}
if (this.mdlColoredType &&
MDL_COLORED_TYPES.indexOf(this.mdlColoredType) === -1) {
throw new MdlUnsupportedColoredTypeError(this.mdlColoredType);
}
}
blurIt() {
callNative(this.element, "blur");
}
}
MdlButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MdlButtonComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
MdlButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: MdlButtonComponent, selector: "mdl-button, button[mdl-button], a[mdl-button]", inputs: { mdlButtonType: ["mdl-button-type", "mdlButtonType"], mdlColoredType: ["mdl-colored", "mdlColoredType"], disabled: "disabled" }, host: { listeners: { "mouseup": "onMouseUp()", "mouseleave": "onMouseLeave()" }, properties: { "class.mdl-button": "this.isButton", "attr.disabled": "this.isDisable", "class.mdl-button--raised": "this.raised", "class.mdl-button--fab": "this.fab", "class.mdl-button--mini-fab": "this.miniFab", "class.mdl-button--icon": "this.icon", "class.mdl-button--primary": "this.primary", "class.mdl-button--accent": "this.accent" } }, exportAs: ["mdlButton"], usesOnChanges: true, ngImport: i0, template: "<ng-content></ng-content>", isInline: true, encapsulation: i0.ViewEncapsulation.None });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MdlButtonComponent, decorators: [{
type: Component,
args: [{
selector: "mdl-button, button[mdl-button], a[mdl-button]",
exportAs: "mdlButton",
template: "<ng-content></ng-content>",
encapsulation: ViewEncapsulation.None,
}]
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { isButton: [{
type: HostBinding,
args: ["class.mdl-button"]
}], mdlButtonType: [{
type: Input,
args: ["mdl-button-type"]
}], mdlColoredType: [{
type: Input,
args: ["mdl-colored"]
}], isDisable: [{
type: HostBinding,
args: ["attr.disabled"]
}], raised: [{
type: HostBinding,
args: ["class.mdl-button--raised"]
}], fab: [{
type: HostBinding,
args: ["class.mdl-button--fab"]
}], miniFab: [{
type: HostBinding,
args: ["class.mdl-button--mini-fab"]
}], icon: [{
type: HostBinding,
args: ["class.mdl-button--icon"]
}], primary: [{
type: HostBinding,
args: ["class.mdl-button--primary"]
}], accent: [{
type: HostBinding,
args: ["class.mdl-button--accent"]
}], disabled: [{
type: Input
}], onMouseUp: [{
type: HostListener,
args: ["mouseup"]
}], onMouseLeave: [{
type: HostListener,
args: ["mouseleave"]
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWRsLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvYnV0dG9uL21kbC1idXR0b24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUVMLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFFdEQsTUFBTSxPQUFPLDZCQUE4QixTQUFRLFFBQVE7SUFDekQsWUFBWSxJQUFZO1FBQ3RCLDBCQUEwQjtRQUMxQixLQUFLLENBQ0gsZ0JBQWdCLElBQUksK0RBQStELENBQ3BGLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sOEJBQStCLFNBQVEsUUFBUTtJQUMxRCxZQUFZLElBQVk7UUFDdEIsMEJBQTBCO1FBQzFCLEtBQUssQ0FDSCxpQkFBaUIsSUFBSSxtREFBbUQsQ0FDekUsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQUVELE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFFbkUsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFXcEQsTUFBTSxPQUFPLGtCQUFrQjtJQWU3QixZQUFtQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBYnpDLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFFaEIsMkRBQTJEO1FBRTNELGtCQUFh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c0JBQXBELFdBQVc7dUJBQUMsMkJBQTJCO2dCQUlLLE1BQU07c0JBQWxELFdBQVc7dUJBQUMsMEJBQTBCO2dCQUtuQyxRQUFRO3NCQURYLEtBQUs7Z0JBVU4sU0FBUztzQkFEUixZQUFZO3VCQUFDLFNBQVM7Z0JBTXZCLFlBQVk7c0JBRFgsWUFBWTt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE1kbEVycm9yIH0gZnJvbSBcIi4uL2NvbW1vbi9tZGwtZXJyb3JcIjtcbmltcG9ydCB7IHRvQm9vbGVhbiB9IGZyb20gXCIuLi9jb21tb24vYm9vbGVhbi1wcm9wZXJ0eVwiO1xuaW1wb3J0IHsgY2FsbE5hdGl2ZSB9IGZyb20gXCIuLi9jb21tb24vbmF0aXZlLXN1cHBvcnRcIjtcblxuZXhwb3J0IGNsYXNzIE1kbFVuc3VwcG9ydGVkQnV0dG9uVHlwZUVycm9yIGV4dGVuZHMgTWRsRXJyb3Ige1xuICBjb25zdHJ1Y3Rvcih0eXBlOiBzdHJpbmcpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHN1cGVyKFxuICAgICAgYEJ1dHRvbiB0eXBlIFwiJHt0eXBlfVwiIGlzbid0IHN1cHBvcnRlZCAoYWxsb3dlZDogcmFpc2VkLCBmYWIsIG1pbmktZmFiLCBpY29uLCAnJykuYFxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE1kbFVuc3VwcG9ydGVkQ29sb3JlZFR5cGVFcnJvciBleHRlbmRzIE1kbEVycm9yIHtcbiAgY29uc3RydWN0b3IodHlwZTogc3RyaW5nKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBzdXBlcihcbiAgICAgIGBDb2xvcmVkIHR5cGUgXCIke3R5cGV9XCIgaXNuJ3Qgc3VwcG9ydGVkIChhbGxvd2VkOiBwcmltYXJ5LCBhY2NlbnQsICcnKS5gXG4gICAgKTtcbiAgfVxufVxuXG5jb25zdCBNRExfQlVUVE9OX1RZUEVTID0gW1wicmFpc2VkXCIsIFwiZmFiXCIsIFwibWluaS1mYWJcIiwgXCJpY29uXCIsIFwiXCJdO1xuXG5jb25zdCBNRExfQ09MT1JFRF9UWVBFUyA9IFtcInByaW1hcnlcIiwgXCJhY2NlbnRcIiwgXCJcIl07XG5cbmV4cG9ydCB0eXBlIE1kbEJ1dHRvblR5cGUgPSBcInJhaXNlZFwiIHwgXCJmYWJcIiB8IFwibWluaS1mYWJcIiB8IFwiaWNvblwiIHwgXCJcIjtcbmV4cG9ydCB0eXBlIE1kbENvbG9yVHlwZSA9IFwicHJpbWFyeVwiIHwgXCJhY2NlbnRcIiB8IFwiXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJtZGwtYnV0dG9uLCBidXR0b25bbWRsLWJ1dHRvbl0sIGFbbWRsLWJ1dHRvbl1cIixcbiAgZXhwb3J0QXM6IFwibWRsQnV0dG9uXCIsXG4gIHRlbXBsYXRlOiBcIjxuZy1jb250ZW50PjwvbmctY29udGVudD5cIixcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgTWRsQnV0dG9uQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MubWRsLWJ1dHRvblwiKVxuICBpc0J1dHRvbiA9IHRydWU7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KFwibWRsLWJ1dHRvbi10eXBlXCIpXG4gIG1kbEJ1dHRvblR5cGU6IE1kbEJ1dHRvblR5cGUgPSBcIlwiO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dChcIm1kbC1jb2xvcmVkXCIpXG4gIG1kbENvbG9yZWRUeXBlOiBNZGxDb2xvclR5cGUgPSBcIlwiO1xuXG4gIHJlYWRvbmx5IGVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIGRpc2FibGVkSW50ZXJuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcbiAgICB0aGlzLmVsZW1lbnQgPSBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoXCJhdHRyLmRpc2FibGVkXCIpIGdldCBpc0Rpc2FibGUoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZGlzYWJsZWQgPyBcImRpc2FibGVkXCIgOiBudWxsO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MubWRsLWJ1dHRvbi0tcmFpc2VkXCIpIGdldCByYWlzZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubWRsQnV0dG9uVHlwZSA9PT0gXCJyYWlzZWRcIjtcbiAgfVxuXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLm1kbC1idXR0b24tLWZhYlwiKSBnZXQgZmFiKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm1kbEJ1dHRvblR5cGUgPT09IFwiZmFiXCIgfHwgdGhpcy5tZGxCdXR0b25UeXBlID09PSBcIm1pbmktZmFiXCI7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5tZGwtYnV0dG9uLS1taW5pLWZhYlwiKSBnZXQgbWluaUZhYigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5tZGxCdXR0b25UeXBlID09PSBcIm1pbmktZmFiXCI7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5tZGwtYnV0dG9uLS1pY29uXCIpIGdldCBpY29uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm1kbEJ1dHRvblR5cGUgPT09IFwiaWNvblwiO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MubWRsLWJ1dHRvbi0tcHJpbWFyeVwiKSBnZXQgcHJpbWFyeSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5tZGxDb2xvcmVkVHlwZSA9PT0gXCJwcmltYXJ5XCI7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5tZGwtYnV0dG9uLS1hY2NlbnRcIikgZ2V0IGFjY2VudCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5tZGxDb2xvcmVkVHlwZSA9PT0gXCJhY2NlbnRcIjtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kaXNhYmxlZEludGVybjtcbiAgfVxuXG4gIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbiB8IHN0cmluZykge1xuICAgIHRoaXMuZGlzYWJsZWRJbnRlcm4gPSB0b0Jvb2xlYW4odmFsdWUpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcihcIm1vdXNldXBcIilcbiAgb25Nb3VzZVVwKCk6IHZvaWQge1xuICAgIHRoaXMuYmx1ckl0KCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKFwibW91c2VsZWF2ZVwiKVxuICBvbk1vdXNlTGVhdmUoKTogdm9pZCB7XG4gICAgdGhpcy5ibHVySXQoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIHRoaXMubWRsQnV0dG9uVHlwZSAmJlxuICAgICAgTURMX0JVVFRPTl9UWVBFUy5pbmRleE9mKHRoaXMubWRsQnV0dG9uVHlwZSkgPT09IC0xXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgTWRsVW5zdXBwb3J0ZWRCdXR0b25UeXBlRXJyb3IodGhpcy5tZGxCdXR0b25UeXBlKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICB0aGlzLm1kbENvbG9yZWRUeXBlICYmXG4gICAgICBNRExfQ09MT1JFRF9UWVBFUy5pbmRleE9mKHRoaXMubWRsQ29sb3JlZFR5cGUpID09PSAtMVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IE1kbFVuc3VwcG9ydGVkQ29sb3JlZFR5cGVFcnJvcih0aGlzLm1kbENvbG9yZWRUeXBlKTtcbiAgICB9XG4gIH1cblxuICBibHVySXQoKTogdm9pZCB7XG4gICAgY2FsbE5hdGl2ZSh0aGlzLmVsZW1lbnQsIFwiYmx1clwiKTtcbiAgfVxufVxuIl19