UNPKG

ng-materialgrammi

Version:

An Angular framework which follows

119 lines 14.3 kB
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==