@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
45 lines • 12.1 kB
JavaScript
import { Component, Input } from '@angular/core';
import { ControlContainer, FormBuilder, NgForm, Validators } from '@angular/forms';
import { CoreModule } from '@c8y/ngx-components';
import { ButtonsModule } from 'ngx-bootstrap/buttons';
import * as i0 from "@angular/core";
import * as i1 from "@angular/forms";
import * as i2 from "@c8y/ngx-components";
import * as i3 from "ngx-bootstrap/buttons";
export class ThreeDRotationWidgetConfigComponent {
constructor(formBuilder, form) {
this.formBuilder = formBuilder;
this.form = form;
}
onBeforeSave(config) {
if (this.formGroup.valid) {
Object.assign(config, this.formGroup.value);
return true;
}
return false;
}
ngOnInit() {
this.initForm();
}
initForm() {
this.formGroup = this.createForm(this.formBuilder);
this.form.form.addControl('config', this.formGroup);
this.formGroup.patchValue(this.config);
}
createForm(formBuilder) {
return formBuilder.group({
objectModel: ['box.min.json', [Validators.minLength(1)]],
isWireframe: [true, []],
cameraType: ['PC', [Validators.minLength(2), Validators.maxLength(2)]]
});
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThreeDRotationWidgetConfigComponent, deps: [{ token: i1.FormBuilder }, { token: i1.NgForm }], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ThreeDRotationWidgetConfigComponent, isStandalone: true, selector: "c8y-three-d-rotation-widget-config", inputs: { config: "config" }, ngImport: i0, template: "<form [formGroup]=\"formGroup\">\n <c8y-form-group>\n <label translate>Select object model for rendering</label>\n <div class=\"c8y-select-wrapper\">\n <select class=\"form-control\" formControlName=\"objectModel\">\n <option value=\"box.min.json\" translate>Box model</option>\n <option value=\"phoneModel.min.json\" translate>Phone model</option>\n </select>\n </div>\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Wireframe</label>\n <button type=\"button\" class=\"btn\" formControlName=\"isWireframe\" btnCheckbox translate>\n Wireframe\n </button>\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Camera type</label>\n <div class=\"c8y-select-wrapper\">\n <select class=\"form-control\" formControlName=\"cameraType\">\n <option value=\"OC\" translate>Orthographic camera</option>\n <option value=\"PC\" translate>Perspective camera</option>\n </select>\n </div>\n </c8y-form-group>\n</form>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i2.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { 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: "ngmodule", type: ButtonsModule }, { kind: "directive", type: i3.ButtonCheckboxDirective, selector: "[btnCheckbox]", inputs: ["btnCheckboxTrue", "btnCheckboxFalse"] }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThreeDRotationWidgetConfigComponent, decorators: [{
type: Component,
args: [{ selector: 'c8y-three-d-rotation-widget-config', viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], standalone: true, imports: [CoreModule, ButtonsModule], template: "<form [formGroup]=\"formGroup\">\n <c8y-form-group>\n <label translate>Select object model for rendering</label>\n <div class=\"c8y-select-wrapper\">\n <select class=\"form-control\" formControlName=\"objectModel\">\n <option value=\"box.min.json\" translate>Box model</option>\n <option value=\"phoneModel.min.json\" translate>Phone model</option>\n </select>\n </div>\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Wireframe</label>\n <button type=\"button\" class=\"btn\" formControlName=\"isWireframe\" btnCheckbox translate>\n Wireframe\n </button>\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Camera type</label>\n <div class=\"c8y-select-wrapper\">\n <select class=\"form-control\" formControlName=\"cameraType\">\n <option value=\"OC\" translate>Orthographic camera</option>\n <option value=\"PC\" translate>Perspective camera</option>\n </select>\n </div>\n </c8y-form-group>\n</form>\n" }]
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i1.NgForm }], propDecorators: { config: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyZWUtZC1yb3RhdGlvbi13aWRnZXQtY29uZmlnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3dpZGdldHMvaW1wbGVtZW50YXRpb25zL3RocmVlLWQtcm90YXRpb24vdGhyZWUtZC1yb3RhdGlvbi13aWRnZXQtY29uZmlnL3RocmVlLWQtcm90YXRpb24td2lkZ2V0LWNvbmZpZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi93aWRnZXRzL2ltcGxlbWVudGF0aW9ucy90aHJlZS1kLXJvdGF0aW9uL3RocmVlLWQtcm90YXRpb24td2lkZ2V0LWNvbmZpZy90aHJlZS1kLXJvdGF0aW9uLXdpZGdldC1jb25maWcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkYsT0FBTyxFQUFFLFVBQVUsRUFBZ0IsTUFBTSxxQkFBcUIsQ0FBQztBQUcvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7O0FBU3RELE1BQU0sT0FBTyxtQ0FBbUM7SUFJOUMsWUFDVSxXQUF3QixFQUN4QixJQUFZO1FBRFosZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsU0FBSSxHQUFKLElBQUksQ0FBUTtJQUNuQixDQUFDO0lBRUosWUFBWSxDQUNWLE1BQW1DO1FBRW5DLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN6QixNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVDLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVPLFFBQVE7UUFDZCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRU8sVUFBVSxDQUFDLFdBQXdCO1FBQ3pDLE9BQU8sV0FBVyxDQUFDLEtBQUssQ0FBQztZQUN2QixXQUFXLEVBQUUsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEQsV0FBVyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUN2QixVQUFVLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN2RSxDQUFDLENBQUM7SUFDTCxDQUFDOytHQW5DVSxtQ0FBbUM7bUdBQW5DLG1DQUFtQyw0SENkaEQsbS9CQTRCQSwyQ0RoQlksVUFBVSxtMUNBQUUsYUFBYSx5SkFGcEIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLENBQUM7OzRGQUl4RCxtQ0FBbUM7a0JBUC9DLFNBQVM7K0JBQ0Usb0NBQW9DLGlCQUUvQixDQUFDLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsQ0FBQyxjQUN2RCxJQUFJLFdBQ1AsQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDO3FHQUczQixNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIEZvcm1CdWlsZGVyLCBOZ0Zvcm0sIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb3JlTW9kdWxlLCBPbkJlZm9yZVNhdmUgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRocmVlRFJvdGF0aW9uV2lkZ2V0Q29uZmlnIH0gZnJvbSAnLi4vdGhyZWUtZC1yb3RhdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBCdXR0b25zTW9kdWxlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9idXR0b25zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LXRocmVlLWQtcm90YXRpb24td2lkZ2V0LWNvbmZpZycsXG4gIHRlbXBsYXRlVXJsOiAnLi90aHJlZS1kLXJvdGF0aW9uLXdpZGdldC1jb25maWcuY29tcG9uZW50Lmh0bWwnLFxuICB2aWV3UHJvdmlkZXJzOiBbeyBwcm92aWRlOiBDb250cm9sQ29udGFpbmVyLCB1c2VFeGlzdGluZzogTmdGb3JtIH1dLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29yZU1vZHVsZSwgQnV0dG9uc01vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgVGhyZWVEUm90YXRpb25XaWRnZXRDb25maWdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQmVmb3JlU2F2ZSB7XG4gIEBJbnB1dCgpIGNvbmZpZzogVGhyZWVEUm90YXRpb25XaWRnZXRDb25maWc7XG4gIGZvcm1Hcm91cDogUmV0dXJuVHlwZTxUaHJlZURSb3RhdGlvbldpZGdldENvbmZpZ0NvbXBvbmVudFsnY3JlYXRlRm9ybSddPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIGZvcm06IE5nRm9ybVxuICApIHt9XG5cbiAgb25CZWZvcmVTYXZlKFxuICAgIGNvbmZpZz86IFRocmVlRFJvdGF0aW9uV2lkZ2V0Q29uZmlnXG4gICk6IGJvb2xlYW4gfCBQcm9taXNlPGJvb2xlYW4+IHwgT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwLnZhbGlkKSB7XG4gICAgICBPYmplY3QuYXNzaWduKGNvbmZpZywgdGhpcy5mb3JtR3JvdXAudmFsdWUpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaW5pdEZvcm0oKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdEZvcm0oKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtR3JvdXAgPSB0aGlzLmNyZWF0ZUZvcm0odGhpcy5mb3JtQnVpbGRlcik7XG4gICAgdGhpcy5mb3JtLmZvcm0uYWRkQ29udHJvbCgnY29uZmlnJywgdGhpcy5mb3JtR3JvdXApO1xuICAgIHRoaXMuZm9ybUdyb3VwLnBhdGNoVmFsdWUodGhpcy5jb25maWcpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVGb3JtKGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcikge1xuICAgIHJldHVybiBmb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICBvYmplY3RNb2RlbDogWydib3gubWluLmpzb24nLCBbVmFsaWRhdG9ycy5taW5MZW5ndGgoMSldXSxcbiAgICAgIGlzV2lyZWZyYW1lOiBbdHJ1ZSwgW11dLFxuICAgICAgY2FtZXJhVHlwZTogWydQQycsIFtWYWxpZGF0b3JzLm1pbkxlbmd0aCgyKSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMildXVxuICAgIH0pO1xuICB9XG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPlxuICA8Yzh5LWZvcm0tZ3JvdXA+XG4gICAgPGxhYmVsIHRyYW5zbGF0ZT5TZWxlY3Qgb2JqZWN0IG1vZGVsIGZvciByZW5kZXJpbmc8L2xhYmVsPlxuICAgIDxkaXYgY2xhc3M9XCJjOHktc2VsZWN0LXdyYXBwZXJcIj5cbiAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJvYmplY3RNb2RlbFwiPlxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwiYm94Lm1pbi5qc29uXCIgdHJhbnNsYXRlPkJveCBtb2RlbDwvb3B0aW9uPlxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwicGhvbmVNb2RlbC5taW4uanNvblwiIHRyYW5zbGF0ZT5QaG9uZSBtb2RlbDwvb3B0aW9uPlxuICAgICAgPC9zZWxlY3Q+XG4gICAgPC9kaXY+XG4gIDwvYzh5LWZvcm0tZ3JvdXA+XG5cbiAgPGM4eS1mb3JtLWdyb3VwPlxuICAgIDxsYWJlbCB0cmFuc2xhdGU+V2lyZWZyYW1lPC9sYWJlbD5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0blwiIGZvcm1Db250cm9sTmFtZT1cImlzV2lyZWZyYW1lXCIgYnRuQ2hlY2tib3ggdHJhbnNsYXRlPlxuICAgICAgV2lyZWZyYW1lXG4gICAgPC9idXR0b24+XG4gIDwvYzh5LWZvcm0tZ3JvdXA+XG5cbiAgPGM4eS1mb3JtLWdyb3VwPlxuICAgIDxsYWJlbCB0cmFuc2xhdGU+Q2FtZXJhIHR5cGU8L2xhYmVsPlxuICAgIDxkaXYgY2xhc3M9XCJjOHktc2VsZWN0LXdyYXBwZXJcIj5cbiAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJjYW1lcmFUeXBlXCI+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCJPQ1wiIHRyYW5zbGF0ZT5PcnRob2dyYXBoaWMgY2FtZXJhPC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCJQQ1wiIHRyYW5zbGF0ZT5QZXJzcGVjdGl2ZSBjYW1lcmE8L29wdGlvbj5cbiAgICAgIDwvc2VsZWN0PlxuICAgIDwvZGl2PlxuICA8L2M4eS1mb3JtLWdyb3VwPlxuPC9mb3JtPlxuIl19