ng-materialgrammi
Version:
An Angular framework which follows
119 lines • 14.3 kB
JavaScript
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
import { FormControl } from '@angular/forms';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
export class InputComponent {
constructor() {
this.theme = "primary";
this.form = "control";
this.placeholder = "";
this.control = new FormControl('');
this.type = "text";
this.dark = false;
this.class = "";
this.data = new EventEmitter();
this.isFocused = new EventEmitter();
this.keyup = new EventEmitter();
this.value = "";
this.rounded = false;
this.filled = false;
this.info = {
type: "success",
msg: ""
};
this.active = false;
this.focused = false;
this.input_placeholder = this.form == "control" && this.placeholder != "" ? this.placeholder : "";
}
ngOnInit() {
this.input_placeholder = this.form == "control" && this.placeholder != "" ? this.placeholder : "";
if (this.value != "") {
this.active = true;
}
}
onFocusIn() {
this.focused = true;
this.active = true;
this.isFocused.emit(true);
}
onFocusOut() {
this.focused = false;
if (!(this.value.length > 0)) {
this.active = false;
}
this.isFocused.emit(false);
}
onKeyUp(event) {
this.value = event.target.value;
this.control.setValue(event.target.value);
this.keyup.emit(event);
this.data.emit(this.control);
}
mainClasses() {
let classes = ``;
classes += ` ${this.active ? 'active' : ''}`;
classes += this.dark ? " on-dark" : " on-lite";
classes += this.form === "control" ? (this.filled ? " filled" : " outline") : "";
return classes;
}
labelClick() {
this.inputElem.nativeElement.focus();
}
infoClasses() {
let classes = "";
if (this.info.type === "error") {
classes += "text-red";
}
else if (this.info.type === "success") {
classes += "text-green";
}
else if (this.info.type === "info") {
classes += "text-blue";
}
else if (this.info.type === "lite") {
classes += "text-grey2";
}
else if (this.info.type === "dark") {
classes += "text-grey8";
}
return classes;
}
}
InputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: InputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
InputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: InputComponent, selector: "mg-input", inputs: { theme: "theme", form: "form", placeholder: "placeholder", control: "control", type: "type", dark: "dark", class: "class", value: "value", rounded: "rounded", filled: "filled", info: "info" }, outputs: { data: "data", isFocused: "isFocused", keyup: "keyup" }, viewQueries: [{ propertyName: "inputElem", first: true, predicate: ["inputElement"], descendants: true }], ngImport: i0, template: "<div class=\"form-{{form}} {{theme}}\" [ngClass]=\"mainClasses()\">\n\n <label (click)=\"labelClick()\"><ng-content></ng-content></label>\n\n <input #inputElement [type]=\"type\" (focus)=\"onFocusIn()\" (focusout)=\"onFocusOut()\" (keyup)=\"onKeyUp($event)\" [value]=\"value\" [ngClass]=\"class + (rounded ? 'radius-5' : '')\" [placeholder] = \"input_placeholder\"/>\n <ng-container *ngIf=\"info && info.msg && info.msg.length > 0\">\n <p [innerHtml]=\"info.msg\" [ngClass]=\"infoClasses()\"></p>\n </ng-container>\n\n</div>", styles: [""], directives: [{ type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: InputComponent, decorators: [{
type: Component,
args: [{ selector: 'mg-input', template: "<div class=\"form-{{form}} {{theme}}\" [ngClass]=\"mainClasses()\">\n\n <label (click)=\"labelClick()\"><ng-content></ng-content></label>\n\n <input #inputElement [type]=\"type\" (focus)=\"onFocusIn()\" (focusout)=\"onFocusOut()\" (keyup)=\"onKeyUp($event)\" [value]=\"value\" [ngClass]=\"class + (rounded ? 'radius-5' : '')\" [placeholder] = \"input_placeholder\"/>\n <ng-container *ngIf=\"info && info.msg && info.msg.length > 0\">\n <p [innerHtml]=\"info.msg\" [ngClass]=\"infoClasses()\"></p>\n </ng-container>\n\n</div>", styles: [""] }]
}], ctorParameters: function () { return []; }, propDecorators: { theme: [{
type: Input
}], form: [{
type: Input
}], placeholder: [{
type: Input
}], control: [{
type: Input
}], type: [{
type: Input
}], dark: [{
type: Input
}], class: [{
type: Input
}], data: [{
type: Output
}], isFocused: [{
type: Output
}], keyup: [{
type: Output
}], value: [{
type: Input
}], rounded: [{
type: Input
}], filled: [{
type: Input
}], info: [{
type: Input
}], inputElem: [{
type: ViewChild,
args: ['inputElement']
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWxncmFtbWkvc3JjL2xpYi9jb21wb25lbnRzL2lucHV0L2lucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hdGVyaWFsZ3JhbW1pL3NyYy9saWIvY29tcG9uZW50cy9pbnB1dC9pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQVE3QyxNQUFNLE9BQU8sY0FBYztJQTBCekI7UUF6QlMsVUFBSyxHQUFTLFNBQVMsQ0FBQztRQUN4QixTQUFJLEdBQWUsU0FBUyxDQUFDO1FBQzdCLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLFlBQU8sR0FBZ0IsSUFBSSxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDM0MsU0FBSSxHQUFHLE1BQU0sQ0FBQztRQUNkLFNBQUksR0FBRyxLQUFLLENBQUM7UUFDYixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1YsU0FBSSxHQUFHLElBQUksWUFBWSxFQUFlLENBQUM7UUFDdkMsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDL0IsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDNUIsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUVmLFNBQUksR0FBRztZQUNkLElBQUksRUFBRSxTQUFTO1lBQ2YsR0FBRyxFQUFFLEVBQUU7U0FDUixDQUFDO1FBSUYsV0FBTSxHQUFHLEtBQUssQ0FBQztR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QUFJLEtBQUssTUFBTSxFQUFDO1lBQ2pDLE9BQU8sSUFBSSxZQUFZLENBQUM7U0FDekI7YUFBSyxJQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBQztZQUNqQyxPQUFPLElBQUksWUFBWSxDQUFDO1NBQ3pCO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQzs7MkdBbEZVLGNBQWM7K0ZBQWQsY0FBYyx3YUNUM0IscWhCQVNNOzJGREFPLGNBQWM7a0JBTDFCLFNBQVM7K0JBQ0UsVUFBVTswRUFLWCxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNJLElBQUk7c0JBQWIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLEtBQUs7c0JBQWQsTUFBTTtnQkFDRSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFFRyxJQUFJO3NCQUFaLEtBQUs7Z0JBSzZCLFNBQVM7c0JBQTNDLFNBQVM7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJbnB1dFN0eWxlLCBUaGVtZSB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWctaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbnB1dC5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSB0aGVtZTpUaGVtZSA9IFwicHJpbWFyeVwiO1xuICBASW5wdXQoKSBmb3JtOiBJbnB1dFN0eWxlID0gXCJjb250cm9sXCI7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gXCJcIjtcbiAgQElucHV0KCkgY29udHJvbDogRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woJycpO1xuICBASW5wdXQoKSB0eXBlID0gXCJ0ZXh0XCI7XG4gIEBJbnB1dCgpIGRhcmsgPSBmYWxzZTtcbiAgQElucHV0KCkgY2xhc3MgPSBcIlwiO1xuICBAT3V0cHV0KCkgZGF0YSA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9ybUNvbnRyb2w+KCk7XG4gIEBPdXRwdXQoKSBpc0ZvY3VzZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBrZXl1cCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQElucHV0KCkgdmFsdWUgPSBcIlwiO1xuICBASW5wdXQoKSByb3VuZGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGZpbGxlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIGluZm8gPSB7XG4gICAgdHlwZTogXCJzdWNjZXNzXCIsXG4gICAgbXNnOiBcIlwiXG4gIH07XG5cbiAgQFZpZXdDaGlsZCgnaW5wdXRFbGVtZW50JykgcHJpdmF0ZSBpbnB1dEVsZW0hOiBFbGVtZW50UmVmO1xuXG4gIGFjdGl2ZSA9IGZhbHNlO1xuICBmb2N1c2VkID0gZmFsc2U7XG4gIGlucHV0X3BsYWNlaG9sZGVyID0gdGhpcy5mb3JtID09IFwiY29udHJvbFwiICYmIHRoaXMucGxhY2Vob2xkZXIgIT0gXCJcIiA/IHRoaXMucGxhY2Vob2xkZXIgOiBcIlwiO1xuICBcbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0X3BsYWNlaG9sZGVyID0gdGhpcy5mb3JtID09IFwiY29udHJvbFwiICYmIHRoaXMucGxhY2Vob2xkZXIgIT0gXCJcIiA/IHRoaXMucGxhY2Vob2xkZXIgOiBcIlwiO1xuICAgIGlmICh0aGlzLnZhbHVlICE9IFwiXCIpIHtcbiAgICAgIHRoaXMuYWN0aXZlID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBvbkZvY3VzSW4oKSB7XG4gICAgdGhpcy5mb2N1c2VkID0gdHJ1ZTtcbiAgICB0aGlzLmFjdGl2ZSA9IHRydWU7XG4gICAgdGhpcy5pc0ZvY3VzZWQuZW1pdCh0cnVlKTtcbiAgfVxuXG4gIG9uRm9jdXNPdXQoKSB7XG4gICAgdGhpcy5mb2N1c2VkID0gZmFsc2U7XG4gICAgaWYgKCEodGhpcy52YWx1ZS5sZW5ndGggPiAwKSkge1xuICAgICAgdGhpcy5hY3RpdmUgPSBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy5pc0ZvY3VzZWQuZW1pdChmYWxzZSk7XG4gIH1cblxuICBvbktleVVwKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShldmVudC50YXJnZXQudmFsdWUpO1xuICAgIHRoaXMua2V5dXAuZW1pdChldmVudCk7XG4gICAgdGhpcy5kYXRhLmVtaXQodGhpcy5jb250cm9sKTtcbiAgfVxuXG4gIG1haW5DbGFzc2VzKCkge1xuICAgIGxldCBjbGFzc2VzID0gYGA7XG4gICAgY2xhc3NlcyArPSBgICR7dGhpcy5hY3RpdmUgPyAnYWN0aXZlJyA6ICcnfWA7XG4gICAgY2xhc3NlcyArPSB0aGlzLmRhcmsgPyBcIiBvbi1kYXJrXCIgOiBcIiBvbi1saXRlXCI7XG4gICAgY2xhc3NlcyArPSB0aGlzLmZvcm0gPT09IFwiY29udHJvbFwiID8gKHRoaXMuZmlsbGVkID8gXCIgZmlsbGVkXCIgOiBcIiBvdXRsaW5lXCIpIDogXCJcIjtcbiAgICByZXR1cm4gY2xhc3NlcztcbiAgfVxuXG4gIGxhYmVsQ2xpY2soKXtcbiAgICB0aGlzLmlucHV0RWxlbS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBpbmZvQ2xhc3Nlcygpe1xuICAgIGxldCBjbGFzc2VzID0gXCJcIjtcbiAgICBpZih0aGlzLmluZm8udHlwZSA9PT0gXCJlcnJvclwiKXtcbiAgICAgIGNsYXNzZXMgKz0gXCJ0ZXh0LXJlZFwiO1xuICAgIH1lbHNlIGlmKHRoaXMuaW5mby50eXBlID09PSBcInN1Y2Nlc3NcIil7XG4gICAgICBjbGFzc2VzICs9IFwidGV4dC1ncmVlblwiO1xuICAgIH1lbHNlIGlmKHRoaXMuaW5mby50eXBlID09PSBcImluZm9cIil7XG4gICAgICBjbGFzc2VzICs9IFwidGV4dC1ibHVlXCI7XG4gICAgfWVsc2UgaWYodGhpcy5pbmZvLnR5cGUgPT09IFwibGl0ZVwiKXtcbiAgICAgIGNsYXNzZXMgKz0gXCJ0ZXh0LWdyZXkyXCI7XG4gICAgfWVsc2UgaWYodGhpcy5pbmZvLnR5cGUgPT09IFwiZGFya1wiKXtcbiAgICAgIGNsYXNzZXMgKz0gXCJ0ZXh0LWdyZXk4XCI7XG4gICAgfVxuICAgIHJldHVybiBjbGFzc2VzO1xuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJmb3JtLXt7Zm9ybX19IHt7dGhlbWV9fVwiIFtuZ0NsYXNzXT1cIm1haW5DbGFzc2VzKClcIj5cblxuICA8bGFiZWwgKGNsaWNrKT1cImxhYmVsQ2xpY2soKVwiPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L2xhYmVsPlxuXG4gIDxpbnB1dCAjaW5wdXRFbGVtZW50IFt0eXBlXT1cInR5cGVcIiAoZm9jdXMpPVwib25Gb2N1c0luKClcIiAoZm9jdXNvdXQpPVwib25Gb2N1c091dCgpXCIgKGtleXVwKT1cIm9uS2V5VXAoJGV2ZW50KVwiIFt2YWx1ZV09XCJ2YWx1ZVwiIFtuZ0NsYXNzXT1cImNsYXNzICsgKHJvdW5kZWQgPyAncmFkaXVzLTUnIDogJycpXCIgW3BsYWNlaG9sZGVyXSA9IFwiaW5wdXRfcGxhY2Vob2xkZXJcIi8+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJpbmZvICYmIGluZm8ubXNnICYmIGluZm8ubXNnLmxlbmd0aCA+IDBcIj5cbiAgICA8cCBbaW5uZXJIdG1sXT1cImluZm8ubXNnXCIgW25nQ2xhc3NdPVwiaW5mb0NsYXNzZXMoKVwiPjwvcD5cbiAgPC9uZy1jb250YWluZXI+XG5cbjwvZGl2PiJdfQ==