@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
87 lines • 12.7 kB
JavaScript
import { NgIf } from '@angular/common';
import { Component, forwardRef, Input } from '@angular/core';
import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
import { C8yTranslatePipe, DropAreaComponent } from '@c8y/ngx-components';
import * as i0 from "@angular/core";
import * as i1 from "@angular/forms";
const types = [
{
name: 'PRIVATE',
value: 'private',
placeholder: '-----BEGIN RSA PRIVATE KEY----- MIIEpAIBAAK...VQvopm2xw==----- END RSA PRIVATE KEY-----'
},
{
name: 'PUBLIC',
value: 'public',
placeholder: 'ssh-rsa AAAAB3NzaC...1kc3MAAACB== user.com'
},
{
name: 'CERTIFICATE',
value: 'certificate',
placeholder: 'ssh-rsa-cert-v01.com AAAAHHNz...Y9gBU= user.com'
}
];
export class SshKeyInputComponent {
constructor() {
this.keyType = types[0].value;
this.readonly = false;
this.value = '';
}
writeValue(obj) {
this.value = obj;
}
registerOnChange(fn) {
this.onChange = fn;
}
registerOnTouched(fn) {
this.onTouch = fn;
}
setDisabledState(isDisabled) {
this.readonly = isDisabled;
}
ngOnChanges(changes) {
if (changes.keyType) {
this.reassignPlaceholder();
}
}
ngOnInit() {
this.reassignPlaceholder();
}
async onKeyFileSelected(event) {
const file = event[0];
const content = await file.readAsText();
this.newValue(content);
}
newValue(value) {
this.value = value;
this.onChange(value);
this.onTouch();
}
reassignPlaceholder() {
const type = types.find(t => t.value === this.keyType);
if (type) {
this.placeholder = type.placeholder;
}
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SshKeyInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SshKeyInputComponent, isStandalone: true, selector: "c8y-ssh-key-input", inputs: { keyType: "keyType" }, providers: [
{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => SshKeyInputComponent),
multi: true
}
], usesOnChanges: true, ngImport: i0, template: "<div class=\"form-group\">\n <div class=\"tight-grid\">\n <div class=\"col-xs-8\">\n <input\n [placeholder]=\"'e.g. {{ example }}' | translate : { example: placeholder }\"\n type=\"text\"\n class=\"form-control\"\n [ngModel]=\"value\"\n (ngModelChange)=\"newValue($event)\"\n [readonly]=\"readonly\"\n [ngModelOptions]=\"{standalone: true}\"\n />\n </div>\n <div class=\"col-xs-4\" *ngIf=\"!readonly\">\n <c8y-drop-area class=\"drop-area-sm\" (dropped)=\"onKeyFileSelected($event)\" [maxAllowedFiles]=\"1\" [icon]=\"'upload'\"></c8y-drop-area>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DropAreaComponent, selector: "c8y-drop-area", inputs: ["formControl", "title", "message", "icon", "loadingMessage", "forceHideList", "alwaysShow", "clickToOpen", "loading", "progress", "maxAllowedFiles", "files", "maxFileSizeInMegaBytes", "accept"], outputs: ["dropped"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SshKeyInputComponent, decorators: [{
type: Component,
args: [{ selector: 'c8y-ssh-key-input', standalone: true, imports: [C8yTranslatePipe, NgIf, DropAreaComponent, FormsModule], providers: [
{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => SshKeyInputComponent),
multi: true
}
], template: "<div class=\"form-group\">\n <div class=\"tight-grid\">\n <div class=\"col-xs-8\">\n <input\n [placeholder]=\"'e.g. {{ example }}' | translate : { example: placeholder }\"\n type=\"text\"\n class=\"form-control\"\n [ngModel]=\"value\"\n (ngModelChange)=\"newValue($event)\"\n [readonly]=\"readonly\"\n [ngModelOptions]=\"{standalone: true}\"\n />\n </div>\n <div class=\"col-xs-4\" *ngIf=\"!readonly\">\n <c8y-drop-area class=\"drop-area-sm\" (dropped)=\"onKeyFileSelected($event)\" [maxAllowedFiles]=\"1\" [icon]=\"'upload'\"></c8y-drop-area>\n </div>\n </div>\n</div>\n" }]
}], propDecorators: { keyType: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3NoLWtleS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9yZW1vdGUtYWNjZXNzL3NoYXJlZC9zc2gta2V5LWlucHV0L3NzaC1rZXktaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcmVtb3RlLWFjY2Vzcy9zaGFyZWQvc3NoLWtleS1pbnB1dC9zc2gta2V5LWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQW9DLE1BQU0sZUFBZSxDQUFDO0FBQy9GLE9BQU8sRUFBd0IsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFlLE1BQU0scUJBQXFCLENBQUM7OztBQUV2RixNQUFNLEtBQUssR0FBRztJQUNaO1FBQ0UsSUFBSSxFQUFFLFNBQVM7UUFDZixLQUFLLEVBQUUsU0FBUztRQUNoQixXQUFXLEVBQ1QseUZBQXlGO0tBQzVGO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsUUFBUTtRQUNkLEtBQUssRUFBRSxRQUFRO1FBQ2YsV0FBVyxFQUFFLG9EQUFvRDtLQUNsRTtJQUNEO1FBQ0UsSUFBSSxFQUFFLGFBQWE7UUFDbkIsS0FBSyxFQUFFLGFBQWE7UUFDcEIsV0FBVyxFQUFFLGlFQUFpRTtLQUMvRTtDQUNPLENBQUM7QUFlWCxNQUFNLE9BQU8sb0JBQW9CO0lBYmpDO1FBY1csWUFBTyxHQUFvQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ25FLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFJakIsVUFBSyxHQUFHLEVBQUUsQ0FBQztLQWlEWjtJQTVDQyxVQUFVLENBQUMsR0FBVztRQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztJQUNuQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsZ0JBQWdCLENBQUUsVUFBbUI7UUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7SUFDN0IsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUM3QixDQUFDO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEtBQW9CO1FBQzFDLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QixNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBYTtRQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRU8sbUJBQW1CO1FBQ3pCLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2RCxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1QsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3RDLENBQUM7SUFDSCxDQUFDOytHQXREVSxvQkFBb0I7bUdBQXBCLG9CQUFvQixnR0FScEI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDO2dCQUNuRCxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsK0NDbkNILDJvQkFrQkEsdUNEVVksZ0JBQWdCLGtEQUFFLElBQUksNkZBQUUsaUJBQWlCLDJSQUFFLFdBQVc7OzRGQVNyRCxvQkFBb0I7a0JBYmhDLFNBQVM7K0JBQ0UsbUJBQW1CLGNBRWpCLElBQUksV0FDUCxDQUFDLGdCQUFnQixFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxXQUFXLENBQUMsYUFDdEQ7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7NEJBQ25ELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGOzhCQUdRLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDOHlUcmFuc2xhdGVQaXBlLCBEcm9wQXJlYUNvbXBvbmVudCwgRHJvcHBlZEZpbGUgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcblxuY29uc3QgdHlwZXMgPSBbXG4gIHtcbiAgICBuYW1lOiAnUFJJVkFURScsXG4gICAgdmFsdWU6ICdwcml2YXRlJyxcbiAgICBwbGFjZWhvbGRlcjpcbiAgICAgICctLS0tLUJFR0lOIFJTQSBQUklWQVRFIEtFWS0tLS0tIE1JSUVwQUlCQUFLLi4uVlF2b3BtMnh3PT0tLS0tLSBFTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0nXG4gIH0sXG4gIHtcbiAgICBuYW1lOiAnUFVCTElDJyxcbiAgICB2YWx1ZTogJ3B1YmxpYycsXG4gICAgcGxhY2Vob2xkZXI6ICdzc2gtcnNhIEFBQUFCM056YUMuLi4xa2MzTUFBQUNCPT0gdXNlckBleGFtcGxlLmNvbSdcbiAgfSxcbiAge1xuICAgIG5hbWU6ICdDRVJUSUZJQ0FURScsXG4gICAgdmFsdWU6ICdjZXJ0aWZpY2F0ZScsXG4gICAgcGxhY2Vob2xkZXI6ICdzc2gtcnNhLWNlcnQtdjAxQG9wZW5zc2guY29tIEFBQUFISE56Li4uWTlnQlU9IHVzZXJAZXhhbXBsZS5jb20nXG4gIH1cbl0gYXMgY29uc3Q7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1zc2gta2V5LWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NzaC1rZXktaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQzh5VHJhbnNsYXRlUGlwZSwgTmdJZiwgRHJvcEFyZWFDb21wb25lbnQsIEZvcm1zTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTc2hLZXlJbnB1dENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTc2hLZXlJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBJbnB1dCgpIGtleVR5cGU6ICh0eXBlb2YgdHlwZXMpW251bWJlcl1bJ3ZhbHVlJ10gPSB0eXBlc1swXS52YWx1ZTtcbiAgcmVhZG9ubHkgPSBmYWxzZTtcblxuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gIHZhbHVlID0gJyc7XG5cbiAgb25DaGFuZ2U6ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkO1xuICBvblRvdWNoOiAoKSA9PiB2b2lkO1xuXG4gIHdyaXRlVmFsdWUob2JqOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gb2JqO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMucmVhZG9ubHkgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLmtleVR5cGUpIHtcbiAgICAgIHRoaXMucmVhc3NpZ25QbGFjZWhvbGRlcigpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucmVhc3NpZ25QbGFjZWhvbGRlcigpO1xuICB9XG5cbiAgYXN5bmMgb25LZXlGaWxlU2VsZWN0ZWQoZXZlbnQ6IERyb3BwZWRGaWxlW10pIHtcbiAgICBjb25zdCBmaWxlID0gZXZlbnRbMF07XG4gICAgY29uc3QgY29udGVudCA9IGF3YWl0IGZpbGUucmVhZEFzVGV4dCgpO1xuICAgIHRoaXMubmV3VmFsdWUoY29udGVudCk7XG4gIH1cblxuICBuZXdWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgIHRoaXMub25Ub3VjaCgpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFzc2lnblBsYWNlaG9sZGVyKCkge1xuICAgIGNvbnN0IHR5cGUgPSB0eXBlcy5maW5kKHQgPT4gdC52YWx1ZSA9PT0gdGhpcy5rZXlUeXBlKTtcbiAgICBpZiAodHlwZSkge1xuICAgICAgdGhpcy5wbGFjZWhvbGRlciA9IHR5cGUucGxhY2Vob2xkZXI7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICA8ZGl2IGNsYXNzPVwidGlnaHQtZ3JpZFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtOFwiPlxuICAgICAgPGlucHV0XG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCInZS5nLiB7eyBleGFtcGxlIH19JyB8IHRyYW5zbGF0ZSA6IHsgZXhhbXBsZTogcGxhY2Vob2xkZXIgfVwiXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZVwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm5ld1ZhbHVlKCRldmVudClcIlxuICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNvbC14cy00XCIgKm5nSWY9XCIhcmVhZG9ubHlcIj5cbiAgICAgIDxjOHktZHJvcC1hcmVhIGNsYXNzPVwiZHJvcC1hcmVhLXNtXCIgKGRyb3BwZWQpPVwib25LZXlGaWxlU2VsZWN0ZWQoJGV2ZW50KVwiIFttYXhBbGxvd2VkRmlsZXNdPVwiMVwiIFtpY29uXT1cIid1cGxvYWQnXCI+PC9jOHktZHJvcC1hcmVhPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19