@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
55 lines • 12.7 kB
JavaScript
import { Component, Input } from '@angular/core';
import { FormBuilder, Validators } from '@angular/forms';
import { gettext } from '@c8y/ngx-components';
import { get } from 'lodash-es';
import { BulkOperationType } from '@c8y/ngx-components/operations/bulk-operations-service';
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/operations/bulk-operation-scheduler";
export class CreateBulkOperationDetailsComponent {
set bulkOperationType(bulkOperationType) {
this.titlePlaceholder = get(this.placeholders[bulkOperationType], 'title');
this.descriptionPlaceholder = get(this.placeholders[bulkOperationType], 'description', gettext('e.g. Reset factory settings of all devices of model XYZ'));
}
constructor(formBuilder) {
this.formBuilder = formBuilder;
this.titlePlaceholder = gettext('e.g. Reset factory settings');
this.descriptionPlaceholder = gettext('e.g. Reset factory settings of all devices of model XYZ');
this.placeholders = {
[BulkOperationType.SOFTWARE]: {
title: gettext('e.g. Cloud connectivity software'),
description: gettext('e.g. Cloud connectivity software applied to devices with type c8y_Linux')
},
[BulkOperationType.FIRMWARE]: {
title: gettext('e.g. Firmware for hardware revision B'),
description: gettext('e.g. Firmware for hardware revision B applied to devices with type c8y_Linux')
},
[BulkOperationType.CONFIGURATION]: {
title: gettext('e.g. Host configuration c8y_Linux'),
description: gettext('e.g. Host configuration applied to devices with type c8y_Linux')
},
[BulkOperationType.DEVICE_PROFILE]: {
title: gettext('e.g. Device profile for c8y_Linux devices'),
description: gettext('e.g. Device profile applied to devices with type c8y_Linux')
}
};
}
ngOnInit() {
const config = {
description: ['', Validators.required],
note: [''],
schedule: []
};
this.fgOperationDescription = this.formBuilder.group(config);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CreateBulkOperationDetailsComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CreateBulkOperationDetailsComponent, selector: "c8y-create-bulk-operation-details", inputs: { bulkOperationType: "bulkOperationType" }, ngImport: i0, template: "<div [formGroup]=\"fgOperationDescription\">\n <c8y-form-group>\n <label translate>Title</label>\n <input\n class=\"form-control\"\n required\n formControlName=\"description\"\n [placeholder]=\"titlePlaceholder | translate\"\n />\n </c8y-form-group>\n <c8y-form-group>\n <label translate>Description</label>\n <textarea\n class=\"form-control\"\n rows=\"3\"\n formControlName=\"note\"\n [placeholder]=\"descriptionPlaceholder | translate\"\n ></textarea>\n </c8y-form-group>\n <c8y-operation-scheduler formControlName=\"schedule\"></c8y-operation-scheduler>\n</div>\n", dependencies: [{ kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { 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.OperationSchedulerComponent, selector: "c8y-operation-scheduler", inputs: ["minutesAhead"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CreateBulkOperationDetailsComponent, decorators: [{
type: Component,
args: [{ selector: 'c8y-create-bulk-operation-details', template: "<div [formGroup]=\"fgOperationDescription\">\n <c8y-form-group>\n <label translate>Title</label>\n <input\n class=\"form-control\"\n required\n formControlName=\"description\"\n [placeholder]=\"titlePlaceholder | translate\"\n />\n </c8y-form-group>\n <c8y-form-group>\n <label translate>Description</label>\n <textarea\n class=\"form-control\"\n rows=\"3\"\n formControlName=\"note\"\n [placeholder]=\"descriptionPlaceholder | translate\"\n ></textarea>\n </c8y-form-group>\n <c8y-operation-scheduler formControlName=\"schedule\"></c8y-operation-scheduler>\n</div>\n" }]
}], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { bulkOperationType: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWJ1bGstb3BlcmF0aW9uLWRldGFpbHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vb3BlcmF0aW9ucy9jcmVhdGUtYnVsay1vcGVyYXRpb24tZGV0YWlscy9jcmVhdGUtYnVsay1vcGVyYXRpb24tZGV0YWlscy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9vcGVyYXRpb25zL2NyZWF0ZS1idWxrLW9wZXJhdGlvbi1kZXRhaWxzL2NyZWF0ZS1idWxrLW9wZXJhdGlvbi1kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQWEsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFtQixPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2hDLE9BQU8sRUFDTCxpQkFBaUIsRUFFbEIsTUFBTSx3REFBd0QsQ0FBQzs7Ozs7QUFNaEUsTUFBTSxPQUFPLG1DQUFtQztJQUM5QyxJQUNJLGlCQUFpQixDQUFDLGlCQUFvQztRQUN4RCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsc0JBQXNCLEdBQUcsR0FBRyxDQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLEVBQ3BDLGFBQWEsRUFDYixPQUFPLENBQUMseURBQXlELENBQUMsQ0FDbkUsQ0FBQztJQUNKLENBQUM7SUErQkQsWUFBb0IsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUE3QjVDLHFCQUFnQixHQUFXLE9BQU8sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBQ2xFLDJCQUFzQixHQUFXLE9BQU8sQ0FDdEMseURBQXlELENBQzFELENBQUM7UUFHTSxpQkFBWSxHQUEyRTtZQUM3RixDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUM1QixLQUFLLEVBQUUsT0FBTyxDQUFDLGtDQUFrQyxDQUFDO2dCQUNsRCxXQUFXLEVBQUUsT0FBTyxDQUNsQix5RUFBeUUsQ0FDMUU7YUFDRjtZQUNELENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQzVCLEtBQUssRUFBRSxPQUFPLENBQUMsdUNBQXVDLENBQUM7Z0JBQ3ZELFdBQVcsRUFBRSxPQUFPLENBQ2xCLDhFQUE4RSxDQUMvRTthQUNGO1lBQ0QsQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsRUFBRTtnQkFDakMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxtQ0FBbUMsQ0FBQztnQkFDbkQsV0FBVyxFQUFFLE9BQU8sQ0FBQyxnRUFBZ0UsQ0FBQzthQUN2RjtZQUNELENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLEVBQUU7Z0JBQ2xDLEtBQUssRUFBRSxPQUFPLENBQUMsMkNBQTJDLENBQUM7Z0JBQzNELFdBQVcsRUFBRSxPQUFPLENBQUMsNERBQTRELENBQUM7YUFDbkY7U0FDRixDQUFDO0lBRTZDLENBQUM7SUFFaEQsUUFBUTtRQUNOLE1BQU0sTUFBTSxHQUFzQztZQUNoRCxXQUFXLEVBQUUsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUN0QyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDVixRQUFRLEVBQUUsRUFBRTtTQUNiLENBQUM7UUFFRixJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDL0QsQ0FBQzsrR0FsRFUsbUNBQW1DO21HQUFuQyxtQ0FBbUMsNkhDYmhELHduQkFxQkE7OzRGRFJhLG1DQUFtQztrQkFKL0MsU0FBUzsrQkFDRSxtQ0FBbUM7Z0ZBS3pDLGlCQUFpQjtzQkFEcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1Hcm91cENvbmZpZywgZ2V0dGV4dCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgZ2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7XG4gIEJ1bGtPcGVyYXRpb25UeXBlLFxuICBPcGVyYXRpb25EZXRhaWxzXG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvb3BlcmF0aW9ucy9idWxrLW9wZXJhdGlvbnMtc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1jcmVhdGUtYnVsay1vcGVyYXRpb24tZGV0YWlscycsXG4gIHRlbXBsYXRlVXJsOiAnY3JlYXRlLWJ1bGstb3BlcmF0aW9uLWRldGFpbHMuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIENyZWF0ZUJ1bGtPcGVyYXRpb25EZXRhaWxzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KClcbiAgc2V0IGJ1bGtPcGVyYXRpb25UeXBlKGJ1bGtPcGVyYXRpb25UeXBlOiBCdWxrT3BlcmF0aW9uVHlwZSkge1xuICAgIHRoaXMudGl0bGVQbGFjZWhvbGRlciA9IGdldCh0aGlzLnBsYWNlaG9sZGVyc1tidWxrT3BlcmF0aW9uVHlwZV0sICd0aXRsZScpO1xuICAgIHRoaXMuZGVzY3JpcHRpb25QbGFjZWhvbGRlciA9IGdldChcbiAgICAgIHRoaXMucGxhY2Vob2xkZXJzW2J1bGtPcGVyYXRpb25UeXBlXSxcbiAgICAgICdkZXNjcmlwdGlvbicsXG4gICAgICBnZXR0ZXh0KCdlLmcuIFJlc2V0IGZhY3Rvcnkgc2V0dGluZ3Mgb2YgYWxsIGRldmljZXMgb2YgbW9kZWwgWFlaJylcbiAgICApO1xuICB9XG5cbiAgdGl0bGVQbGFjZWhvbGRlcjogc3RyaW5nID0gZ2V0dGV4dCgnZS5nLiBSZXNldCBmYWN0b3J5IHNldHRpbmdzJyk7XG4gIGRlc2NyaXB0aW9uUGxhY2Vob2xkZXI6IHN0cmluZyA9IGdldHRleHQoXG4gICAgJ2UuZy4gUmVzZXQgZmFjdG9yeSBzZXR0aW5ncyBvZiBhbGwgZGV2aWNlcyBvZiBtb2RlbCBYWVonXG4gICk7XG4gIGZnT3BlcmF0aW9uRGVzY3JpcHRpb246IEZvcm1Hcm91cDtcblxuICBwcml2YXRlIHBsYWNlaG9sZGVyczogeyBba2V5IGluIEJ1bGtPcGVyYXRpb25UeXBlXTogeyB0aXRsZTogc3RyaW5nOyBkZXNjcmlwdGlvbjogc3RyaW5nIH0gfSA9IHtcbiAgICBbQnVsa09wZXJhdGlvblR5cGUuU09GVFdBUkVdOiB7XG4gICAgICB0aXRsZTogZ2V0dGV4dCgnZS5nLiBDbG91ZCBjb25uZWN0aXZpdHkgc29mdHdhcmUnKSxcbiAgICAgIGRlc2NyaXB0aW9uOiBnZXR0ZXh0KFxuICAgICAgICAnZS5nLiBDbG91ZCBjb25uZWN0aXZpdHkgc29mdHdhcmUgYXBwbGllZCB0byBkZXZpY2VzIHdpdGggdHlwZSBjOHlfTGludXgnXG4gICAgICApXG4gICAgfSxcbiAgICBbQnVsa09wZXJhdGlvblR5cGUuRklSTVdBUkVdOiB7XG4gICAgICB0aXRsZTogZ2V0dGV4dCgnZS5nLiBGaXJtd2FyZSBmb3IgaGFyZHdhcmUgcmV2aXNpb24gQicpLFxuICAgICAgZGVzY3JpcHRpb246IGdldHRleHQoXG4gICAgICAgICdlLmcuIEZpcm13YXJlIGZvciBoYXJkd2FyZSByZXZpc2lvbiBCIGFwcGxpZWQgdG8gZGV2aWNlcyB3aXRoIHR5cGUgYzh5X0xpbnV4J1xuICAgICAgKVxuICAgIH0sXG4gICAgW0J1bGtPcGVyYXRpb25UeXBlLkNPTkZJR1VSQVRJT05dOiB7XG4gICAgICB0aXRsZTogZ2V0dGV4dCgnZS5nLiBIb3N0IGNvbmZpZ3VyYXRpb24gYzh5X0xpbnV4JyksXG4gICAgICBkZXNjcmlwdGlvbjogZ2V0dGV4dCgnZS5nLiBIb3N0IGNvbmZpZ3VyYXRpb24gYXBwbGllZCB0byBkZXZpY2VzIHdpdGggdHlwZSBjOHlfTGludXgnKVxuICAgIH0sXG4gICAgW0J1bGtPcGVyYXRpb25UeXBlLkRFVklDRV9QUk9GSUxFXToge1xuICAgICAgdGl0bGU6IGdldHRleHQoJ2UuZy4gRGV2aWNlIHByb2ZpbGUgZm9yIGM4eV9MaW51eCBkZXZpY2VzJyksXG4gICAgICBkZXNjcmlwdGlvbjogZ2V0dGV4dCgnZS5nLiBEZXZpY2UgcHJvZmlsZSBhcHBsaWVkIHRvIGRldmljZXMgd2l0aCB0eXBlIGM4eV9MaW51eCcpXG4gICAgfVxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbmZpZzogRm9ybUdyb3VwQ29uZmlnPE9wZXJhdGlvbkRldGFpbHM+ID0ge1xuICAgICAgZGVzY3JpcHRpb246IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICBub3RlOiBbJyddLFxuICAgICAgc2NoZWR1bGU6IFtdXG4gICAgfTtcblxuICAgIHRoaXMuZmdPcGVyYXRpb25EZXNjcmlwdGlvbiA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoY29uZmlnKTtcbiAgfVxufVxuIiwiPGRpdiBbZm9ybUdyb3VwXT1cImZnT3BlcmF0aW9uRGVzY3JpcHRpb25cIj5cbiAgPGM4eS1mb3JtLWdyb3VwPlxuICAgIDxsYWJlbCB0cmFuc2xhdGU+VGl0bGU8L2xhYmVsPlxuICAgIDxpbnB1dFxuICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgcmVxdWlyZWRcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aW9uXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJ0aXRsZVBsYWNlaG9sZGVyIHwgdHJhbnNsYXRlXCJcbiAgICAvPlxuICA8L2M4eS1mb3JtLWdyb3VwPlxuICA8Yzh5LWZvcm0tZ3JvdXA+XG4gICAgPGxhYmVsIHRyYW5zbGF0ZT5EZXNjcmlwdGlvbjwvbGFiZWw+XG4gICAgPHRleHRhcmVhXG4gICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICByb3dzPVwiM1wiXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJub3RlXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJkZXNjcmlwdGlvblBsYWNlaG9sZGVyIHwgdHJhbnNsYXRlXCJcbiAgICA+PC90ZXh0YXJlYT5cbiAgPC9jOHktZm9ybS1ncm91cD5cbiAgPGM4eS1vcGVyYXRpb24tc2NoZWR1bGVyIGZvcm1Db250cm9sTmFtZT1cInNjaGVkdWxlXCI+PC9jOHktb3BlcmF0aW9uLXNjaGVkdWxlcj5cbjwvZGl2PlxuIl19