ng-halfmoon
Version:
Angular Library to build upon the halfmoon-framework
49 lines • 5.26 kB
JavaScript
import { Directive, ElementRef, Input, Renderer2 } from '@angular/core';
import { Applier } from '../../utils';
export class ButtonDirective extends Applier {
constructor(el, renderer) {
super(el, renderer, 'btn');
this.addClass('btn', this.el);
}
ngOnChanges(changes) {
if (changes.appearance) {
this.applyChange(changes.appearance, this.el);
}
if (changes.size) {
this.applyChange(changes.size, this.el);
}
if (changes.shape) {
this.applyChange(changes.shape, this.el);
}
if (changes.disabled) {
this.applyDisabled(changes.disabled);
this.applyAttribute(changes.disabled, 'disabled');
}
}
applyDisabled(change) {
if (change.previousValue === change.currentValue) {
return;
}
if (!change.currentValue) {
this.removeClass('disabled', this.el);
return;
}
this.addClass('disabled', this.el);
}
}
ButtonDirective.decorators = [
{ type: Directive, args: [{
selector: '[hmButton]'
},] }
];
ButtonDirective.ctorParameters = () => [
{ type: ElementRef },
{ type: Renderer2 }
];
ButtonDirective.propDecorators = {
appearance: [{ type: Input }],
size: [{ type: Input }],
shape: [{ type: Input }],
disabled: [{ type: Input }]
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWhhbGZtb29uL3NyYy9saWIvYmFzaWNzL2J1dHRvbi9idXR0b24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFFTCxTQUFTLEVBR1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLE9BQU8sRUFBUyxNQUFNLGFBQWEsQ0FBQztBQWM1QyxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxPQUFPO0lBTTFDLFlBQVksRUFBYyxFQUFFLFFBQW1CO1FBQzdDLEtBQUssQ0FBQyxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLFVBQVUsRUFBRTtZQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQy9DO1FBQ0QsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFO1lBQ2hCLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDekM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUU7WUFDakIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUMxQztRQUNELElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRTtZQUNwQixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNyQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7U0FDbkQ7SUFDSCxDQUFDO0lBRU8sYUFBYSxDQUFDLE1BQW9CO1FBQ3hDLElBQUksTUFBTSxDQUFDLGFBQWEsS0FBSyxNQUFNLENBQUMsWUFBWSxFQUFFO1lBQ2hELE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN0QyxPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDckMsQ0FBQzs7O1lBekNGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsWUFBWTthQUN2Qjs7O1lBcEJDLFVBQVU7WUFHVixTQUFTOzs7eUJBbUJSLEtBQUs7bUJBQ0wsS0FBSztvQkFDTCxLQUFLO3VCQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIFJlbmRlcmVyMixcbiAgU2ltcGxlQ2hhbmdlLFxuICBTaW1wbGVDaGFuZ2VzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBcHBsaWVyLCBTaXppbmd9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuZXhwb3J0IHR5cGUgU2hhcGUgPSAncm91bmRlZCcgfCAnc3F1YXJlJyB8IHVuZGVmaW5lZDtcbmV4cG9ydCB0eXBlIEJ1dHRvbkFwcGVhcmFuY2UgPVxuICB8ICdwcmltYXJ5J1xuICB8ICdzZWNvbmRhcnknXG4gIHwgJ3N1Y2Nlc3MnXG4gIHwgJ2RhbmdlcidcbiAgfCAnbGluaydcbiAgfCB1bmRlZmluZWQ7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tobUJ1dHRvbl0nXG59KVxuZXhwb3J0IGNsYXNzIEJ1dHRvbkRpcmVjdGl2ZSBleHRlbmRzIEFwcGxpZXIgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBhcHBlYXJhbmNlOiBCdXR0b25BcHBlYXJhbmNlO1xuICBASW5wdXQoKSBzaXplOiBTaXppbmc7XG4gIEBJbnB1dCgpIHNoYXBlOiBTaGFwZTtcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoZWw6IEVsZW1lbnRSZWYsIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHtcbiAgICBzdXBlcihlbCwgcmVuZGVyZXIsICdidG4nKTtcbiAgICB0aGlzLmFkZENsYXNzKCdidG4nLCB0aGlzLmVsKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5hcHBlYXJhbmNlKSB7XG4gICAgICB0aGlzLmFwcGx5Q2hhbmdlKGNoYW5nZXMuYXBwZWFyYW5jZSwgdGhpcy5lbCk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzLnNpemUpIHtcbiAgICAgIHRoaXMuYXBwbHlDaGFuZ2UoY2hhbmdlcy5zaXplLCB0aGlzLmVsKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXMuc2hhcGUpIHtcbiAgICAgIHRoaXMuYXBwbHlDaGFuZ2UoY2hhbmdlcy5zaGFwZSwgdGhpcy5lbCk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmFwcGx5RGlzYWJsZWQoY2hhbmdlcy5kaXNhYmxlZCk7XG4gICAgICB0aGlzLmFwcGx5QXR0cmlidXRlKGNoYW5nZXMuZGlzYWJsZWQsICdkaXNhYmxlZCcpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlEaXNhYmxlZChjaGFuZ2U6IFNpbXBsZUNoYW5nZSk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2UucHJldmlvdXNWYWx1ZSA9PT0gY2hhbmdlLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghY2hhbmdlLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgdGhpcy5yZW1vdmVDbGFzcygnZGlzYWJsZWQnLCB0aGlzLmVsKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmFkZENsYXNzKCdkaXNhYmxlZCcsIHRoaXMuZWwpO1xuICB9XG59XG4iXX0=