@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
69 lines • 9.87 kB
JavaScript
import { Component, forwardRef, Input } from '@angular/core';
import { NG_VALUE_ACCESSOR } from '@angular/forms';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
import * as i2 from "../i18n/c8y-translate.pipe";
/**
* The component is used to display a password control that includes the functionality of hiding and showing the input value.
*/
export class PasswordInputComponent {
constructor() {
/**
* Id of input
*/
this.id = '';
/**
* Value for autocomplete attribute of input
*/
this.autocomplete = 'off';
this.value = '';
this.disabled = false;
this.type = 'password';
// eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function
this.onChange = value => { };
// eslint-disable-next-line @typescript-eslint/no-empty-function
this.onTouched = () => { };
}
writeValue(value) {
this.value = value ? value : '';
}
registerOnChange(fn) {
this.onChange = fn;
}
registerOnTouched(fn) {
this.onTouched = fn;
}
setDisabledState(isDisabled) {
this.disabled = isDisabled;
}
onInput($event) {
this.value = $event.currentTarget.value;
this.onChange(this.value);
}
onFocusOut() {
this.onTouched();
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PasswordInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PasswordInputComponent, selector: "c8y-password-input", inputs: { id: "id", autocomplete: "autocomplete" }, providers: [
{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => PasswordInputComponent),
multi: true
}
], ngImport: i0, template: "<div class=\"input-group input-group-password\">\n <input\n class=\"form-control\"\n [type]=\"type\"\n [value]=\"value\"\n [id]=\"id\"\n (input)=\"onInput($event)\"\n (focusout)=\"onFocusOut()\"\n [disabled]=\"disabled\"\n [autocomplete]=\"autocomplete\"\n />\n <span class=\"input-group-btn\">\n <button\n *ngIf=\"type === 'password'\"\n class=\"btn btn-clean\"\n title=\"{{ 'Show password' | translate }}\"\n type=\"button\"\n (click)=\"type = 'text'\"\n >\n <i class=\"dlt-c8y-icon-eye\"></i>\n </button>\n <button\n *ngIf=\"type === 'text'\"\n class=\"btn btn-clean\"\n title=\"{{ 'Hide password' | translate }}\"\n type=\"button\"\n (click)=\"type = 'password'\"\n >\n <i class=\"dlt-c8y-icon-eye-slash\"></i>\n </button>\n </span>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PasswordInputComponent, decorators: [{
type: Component,
args: [{ selector: 'c8y-password-input', providers: [
{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => PasswordInputComponent),
multi: true
}
], template: "<div class=\"input-group input-group-password\">\n <input\n class=\"form-control\"\n [type]=\"type\"\n [value]=\"value\"\n [id]=\"id\"\n (input)=\"onInput($event)\"\n (focusout)=\"onFocusOut()\"\n [disabled]=\"disabled\"\n [autocomplete]=\"autocomplete\"\n />\n <span class=\"input-group-btn\">\n <button\n *ngIf=\"type === 'password'\"\n class=\"btn btn-clean\"\n title=\"{{ 'Show password' | translate }}\"\n type=\"button\"\n (click)=\"type = 'text'\"\n >\n <i class=\"dlt-c8y-icon-eye\"></i>\n </button>\n <button\n *ngIf=\"type === 'text'\"\n class=\"btn btn-clean\"\n title=\"{{ 'Hide password' | translate }}\"\n type=\"button\"\n (click)=\"type = 'password'\"\n >\n <i class=\"dlt-c8y-icon-eye-slash\"></i>\n </button>\n </span>\n</div>\n" }]
}], propDecorators: { id: [{
type: Input
}], autocomplete: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9hdXRoZW50aWNhdGlvbi9wYXNzd29yZC1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL2F1dGhlbnRpY2F0aW9uL3Bhc3N3b3JkLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFFekU7O0dBRUc7QUFhSCxNQUFNLE9BQU8sc0JBQXNCO0lBWG5DO1FBWUU7O1dBRUc7UUFDTSxPQUFFLEdBQVksRUFBRSxDQUFDO1FBRTFCOztXQUVHO1FBQ00saUJBQVksR0FBWSxLQUFLLENBQUM7UUFFdkMsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsU0FBSSxHQUFHLFVBQVUsQ0FBQztRQUVsQixtR0FBbUc7UUFDbkcsYUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBRXZCLGdFQUFnRTtRQUNoRSxjQUFTLEdBQUcsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0tBMEJ0QjtJQXhCQyxVQUFVLENBQUMsS0FBVTtRQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELGdCQUFnQixDQUFFLFVBQW1CO1FBQ25DLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO0lBQzdCLENBQUM7SUFFRCxPQUFPLENBQUMsTUFBVztRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7K0dBNUNVLHNCQUFzQjttR0FBdEIsc0JBQXNCLGlHQVJ0QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsc0JBQXNCLENBQUM7Z0JBQ3JELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRiwwQkNoQkgsczFCQWdDQTs7NEZEZGEsc0JBQXNCO2tCQVhsQyxTQUFTOytCQUNFLG9CQUFvQixhQUVuQjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx1QkFBdUIsQ0FBQzs0QkFDckQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7OEJBTVEsRUFBRTtzQkFBVixLQUFLO2dCQUtHLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbi8qKlxuICogVGhlIGNvbXBvbmVudCBpcyB1c2VkIHRvIGRpc3BsYXkgYSBwYXNzd29yZCBjb250cm9sIHRoYXQgaW5jbHVkZXMgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgaGlkaW5nIGFuZCBzaG93aW5nIHRoZSBpbnB1dCB2YWx1ZS5cbiAqL1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktcGFzc3dvcmQtaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFzc3dvcmQtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFBhc3N3b3JkSW5wdXRDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgUGFzc3dvcmRJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgLyoqXG4gICAqIElkIG9mIGlucHV0XG4gICAqL1xuICBASW5wdXQoKSBpZD86IHN0cmluZyA9ICcnO1xuXG4gIC8qKlxuICAgKiBWYWx1ZSBmb3IgYXV0b2NvbXBsZXRlIGF0dHJpYnV0ZSBvZiBpbnB1dFxuICAgKi9cbiAgQElucHV0KCkgYXV0b2NvbXBsZXRlPzogc3RyaW5nID0gJ29mZic7XG5cbiAgdmFsdWUgPSAnJztcbiAgZGlzYWJsZWQgPSBmYWxzZTtcbiAgdHlwZSA9ICdwYXNzd29yZCc7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycywgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIG9uQ2hhbmdlID0gdmFsdWUgPT4ge307XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBvblRvdWNoZWQgPSAoKSA9PiB7fTtcblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWUgPyB2YWx1ZSA6ICcnO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICBvbklucHV0KCRldmVudDogYW55KTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9ICRldmVudC5jdXJyZW50VGFyZ2V0LnZhbHVlO1xuICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XG4gIH1cblxuICBvbkZvY3VzT3V0KCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBpbnB1dC1ncm91cC1wYXNzd29yZFwiPlxuICA8aW5wdXRcbiAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgW3R5cGVdPVwidHlwZVwiXG4gICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICBbaWRdPVwiaWRcIlxuICAgIChpbnB1dCk9XCJvbklucHV0KCRldmVudClcIlxuICAgIChmb2N1c291dCk9XCJvbkZvY3VzT3V0KClcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2F1dG9jb21wbGV0ZV09XCJhdXRvY29tcGxldGVcIlxuICAvPlxuICA8c3BhbiBjbGFzcz1cImlucHV0LWdyb3VwLWJ0blwiPlxuICAgIDxidXR0b25cbiAgICAgICpuZ0lmPVwidHlwZSA9PT0gJ3Bhc3N3b3JkJ1wiXG4gICAgICBjbGFzcz1cImJ0biBidG4tY2xlYW5cIlxuICAgICAgdGl0bGU9XCJ7eyAnU2hvdyBwYXNzd29yZCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAoY2xpY2spPVwidHlwZSA9ICd0ZXh0J1wiXG4gICAgPlxuICAgICAgPGkgY2xhc3M9XCJkbHQtYzh5LWljb24tZXllXCI+PC9pPlxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgICpuZ0lmPVwidHlwZSA9PT0gJ3RleHQnXCJcbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1jbGVhblwiXG4gICAgICB0aXRsZT1cInt7ICdIaWRlIHBhc3N3b3JkJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIChjbGljayk9XCJ0eXBlID0gJ3Bhc3N3b3JkJ1wiXG4gICAgPlxuICAgICAgPGkgY2xhc3M9XCJkbHQtYzh5LWljb24tZXllLXNsYXNoXCI+PC9pPlxuICAgIDwvYnV0dG9uPlxuICA8L3NwYW4+XG48L2Rpdj5cbiJdfQ==