@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
44 lines • 13.2 kB
JavaScript
import { Component, Input } from '@angular/core';
import { FormBuilder, Validators } from '@angular/forms';
import * as i0 from "@angular/core";
import * as i1 from "@angular/forms";
import * as i2 from "@c8y/ngx-components";
import * as i3 from "@c8y/ngx-components/icon-selector";
export class ApplicationPropertiesFormComponent {
constructor(formBuilder) {
this.formBuilder = formBuilder;
this.disabled = false;
this.initForm();
}
ngOnChanges(changes) {
if (changes.application &&
changes.application.currentValue !== changes.application.previousValue) {
this.setForm(this.application);
}
if (changes.disabled && changes.disabled.currentValue !== changes.disabled.previousValue) {
changes.disabled.currentValue ? this.formGroup.disable() : this.formGroup.enable();
}
}
initForm() {
this.formGroup = this.formBuilder.group({
name: [Validators.required, Validators.maxLength(120)],
key: [Validators.required, Validators.maxLength(120)],
contextPath: [Validators.required, Validators.maxLength(120)],
icon: [undefined, [Validators.minLength(1)]]
});
}
setForm(applicationConfig) {
this.formGroup.patchValue({ ...applicationConfig });
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApplicationPropertiesFormComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ApplicationPropertiesFormComponent, selector: "c8y-application-properties-form", inputs: { application: "application", disabled: "disabled" }, usesOnChanges: true, ngImport: i0, template: "<form\n class=\"c8y-wizard-form text-left\"\n name=\"appDeployForm\"\n (ngSubmit)=\"(formGroup.valid)\"\n [formGroup]=\"formGroup\"\n novalidate\n>\n <c8y-form-group>\n <label\n for=\"name\"\n translate\n >\n Name\n </label>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g. My application' | translate }}\"\n name=\"name\"\n type=\"text\"\n required\n formControlName=\"name\"\n />\n </c8y-form-group>\n <c8y-form-group>\n <label\n for=\"key\"\n translate\n >\n Application key\n </label>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g. my-application-key' | translate }}\"\n name=\"key\"\n type=\"text\"\n required\n formControlName=\"key\"\n />\n </c8y-form-group>\n <c8y-form-group>\n <label\n for=\"contextPath\"\n translate\n >\n Path\n </label>\n <div class=\"input-group\">\n <span class=\"input-group-addon\">/apps/</span>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g. my-application' | translate }}\"\n name=\"contextPath\"\n type=\"text\"\n required\n formControlName=\"contextPath\"\n />\n </div>\n </c8y-form-group>\n <c8y-form-group>\n <label>{{ 'Select icon' | translate }}</label>\n <c8y-icon-selector-wrapper\n name=\"icon\"\n formControlName=\"icon\"\n ></c8y-icon-selector-wrapper>\n </c8y-form-group>\n</form>\n", dependencies: [{ kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "component", type: i2.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: i2.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.IconSelectorWrapperComponent, selector: "c8y-icon-selector-wrapper", inputs: ["canRemoveIcon", "selectedIcon", "iconSize"], outputs: ["onSelect"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApplicationPropertiesFormComponent, decorators: [{
type: Component,
args: [{ selector: 'c8y-application-properties-form', template: "<form\n class=\"c8y-wizard-form text-left\"\n name=\"appDeployForm\"\n (ngSubmit)=\"(formGroup.valid)\"\n [formGroup]=\"formGroup\"\n novalidate\n>\n <c8y-form-group>\n <label\n for=\"name\"\n translate\n >\n Name\n </label>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g. My application' | translate }}\"\n name=\"name\"\n type=\"text\"\n required\n formControlName=\"name\"\n />\n </c8y-form-group>\n <c8y-form-group>\n <label\n for=\"key\"\n translate\n >\n Application key\n </label>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g. my-application-key' | translate }}\"\n name=\"key\"\n type=\"text\"\n required\n formControlName=\"key\"\n />\n </c8y-form-group>\n <c8y-form-group>\n <label\n for=\"contextPath\"\n translate\n >\n Path\n </label>\n <div class=\"input-group\">\n <span class=\"input-group-addon\">/apps/</span>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g. my-application' | translate }}\"\n name=\"contextPath\"\n type=\"text\"\n required\n formControlName=\"contextPath\"\n />\n </div>\n </c8y-form-group>\n <c8y-form-group>\n <label>{{ 'Select icon' | translate }}</label>\n <c8y-icon-selector-wrapper\n name=\"icon\"\n formControlName=\"icon\"\n ></c8y-icon-selector-wrapper>\n </c8y-form-group>\n</form>\n" }]
}], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { application: [{
type: Input
}], disabled: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tcHJvcGVydGllcy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2Vjb3N5c3RlbS9zaGFyZWQvYXBwbGljYXRpb24tcHJvcGVydGllcy1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2Vjb3N5c3RlbS9zaGFyZWQvYXBwbGljYXRpb24tcHJvcGVydGllcy1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQU9wRSxNQUFNLE9BQU8sa0NBQWtDO0lBSzdDLFlBQW9CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBRm5DLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFHeEIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFDRSxPQUFPLENBQUMsV0FBVztZQUNuQixPQUFPLENBQUMsV0FBVyxDQUFDLFlBQVksS0FBSyxPQUFPLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFDdEUsQ0FBQztZQUNELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxZQUFZLEtBQUssT0FBTyxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN6RixPQUFPLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNyRixDQUFDO0lBQ0gsQ0FBQztJQUVPLFFBQVE7UUFDZCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQ3RDLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0RCxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDckQsV0FBVyxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzdELElBQUksRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM3QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sT0FBTyxDQUFDLGlCQUErQjtRQUM3QyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFLEdBQUcsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7K0dBaENVLGtDQUFrQzttR0FBbEMsa0NBQWtDLDBKQ1IvQyxpK0NBa0VBOzs0RkQxRGEsa0NBQWtDO2tCQUo5QyxTQUFTOytCQUNFLGlDQUFpQztnRkFLbEMsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSUFwcGxpY2F0aW9uIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktYXBwbGljYXRpb24tcHJvcGVydGllcy1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FwcGxpY2F0aW9uLXByb3BlcnRpZXMtZm9ybS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQXBwbGljYXRpb25Qcm9wZXJ0aWVzRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuICBASW5wdXQoKSBhcHBsaWNhdGlvbjogSUFwcGxpY2F0aW9uO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyKSB7XG4gICAgdGhpcy5pbml0Rm9ybSgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIGNoYW5nZXMuYXBwbGljYXRpb24gJiZcbiAgICAgIGNoYW5nZXMuYXBwbGljYXRpb24uY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzLmFwcGxpY2F0aW9uLnByZXZpb3VzVmFsdWVcbiAgICApIHtcbiAgICAgIHRoaXMuc2V0Rm9ybSh0aGlzLmFwcGxpY2F0aW9uKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXMuZGlzYWJsZWQgJiYgY2hhbmdlcy5kaXNhYmxlZC5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXMuZGlzYWJsZWQucHJldmlvdXNWYWx1ZSkge1xuICAgICAgY2hhbmdlcy5kaXNhYmxlZC5jdXJyZW50VmFsdWUgPyB0aGlzLmZvcm1Hcm91cC5kaXNhYmxlKCkgOiB0aGlzLmZvcm1Hcm91cC5lbmFibGUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXRGb3JtKCkge1xuICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICBuYW1lOiBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTIwKV0sXG4gICAgICBrZXk6IFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heExlbmd0aCgxMjApXSxcbiAgICAgIGNvbnRleHRQYXRoOiBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTIwKV0sXG4gICAgICBpY29uOiBbdW5kZWZpbmVkLCBbVmFsaWRhdG9ycy5taW5MZW5ndGgoMSldXVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRGb3JtKGFwcGxpY2F0aW9uQ29uZmlnOiBJQXBwbGljYXRpb24pIHtcbiAgICB0aGlzLmZvcm1Hcm91cC5wYXRjaFZhbHVlKHsgLi4uYXBwbGljYXRpb25Db25maWcgfSk7XG4gIH1cbn1cbiIsIjxmb3JtXG4gIGNsYXNzPVwiYzh5LXdpemFyZC1mb3JtIHRleHQtbGVmdFwiXG4gIG5hbWU9XCJhcHBEZXBsb3lGb3JtXCJcbiAgKG5nU3VibWl0KT1cIihmb3JtR3JvdXAudmFsaWQpXCJcbiAgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIlxuICBub3ZhbGlkYXRlXG4+XG4gIDxjOHktZm9ybS1ncm91cD5cbiAgICA8bGFiZWxcbiAgICAgIGZvcj1cIm5hbWVcIlxuICAgICAgdHJhbnNsYXRlXG4gICAgPlxuICAgICAgTmFtZVxuICAgIDwvbGFiZWw+XG4gICAgPGlucHV0XG4gICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICBwbGFjZWhvbGRlcj1cInt7ICdlLmcuIE15IGFwcGxpY2F0aW9uJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICBuYW1lPVwibmFtZVwiXG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICByZXF1aXJlZFxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiXG4gICAgLz5cbiAgPC9jOHktZm9ybS1ncm91cD5cbiAgPGM4eS1mb3JtLWdyb3VwPlxuICAgIDxsYWJlbFxuICAgICAgZm9yPVwia2V5XCJcbiAgICAgIHRyYW5zbGF0ZVxuICAgID5cbiAgICAgIEFwcGxpY2F0aW9uIGtleVxuICAgIDwvbGFiZWw+XG4gICAgPGlucHV0XG4gICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICBwbGFjZWhvbGRlcj1cInt7ICdlLmcuIG15LWFwcGxpY2F0aW9uLWtleScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgbmFtZT1cImtleVwiXG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICByZXF1aXJlZFxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwia2V5XCJcbiAgICAvPlxuICA8L2M4eS1mb3JtLWdyb3VwPlxuICA8Yzh5LWZvcm0tZ3JvdXA+XG4gICAgPGxhYmVsXG4gICAgICBmb3I9XCJjb250ZXh0UGF0aFwiXG4gICAgICB0cmFuc2xhdGVcbiAgICA+XG4gICAgICBQYXRoXG4gICAgPC9sYWJlbD5cbiAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYWRkb25cIj4vYXBwcy88L3NwYW4+XG4gICAgICA8aW5wdXRcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdlLmcuIG15LWFwcGxpY2F0aW9uJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgIG5hbWU9XCJjb250ZXh0UGF0aFwiXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY29udGV4dFBhdGhcIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgPC9jOHktZm9ybS1ncm91cD5cbiAgPGM4eS1mb3JtLWdyb3VwPlxuICAgIDxsYWJlbD57eyAnU2VsZWN0IGljb24nIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cbiAgICA8Yzh5LWljb24tc2VsZWN0b3Itd3JhcHBlclxuICAgICAgbmFtZT1cImljb25cIlxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaWNvblwiXG4gICAgPjwvYzh5LWljb24tc2VsZWN0b3Itd3JhcHBlcj5cbiAgPC9jOHktZm9ybS1ncm91cD5cbjwvZm9ybT5cbiJdfQ==