@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
86 lines • 13.6 kB
JavaScript
import { AsyncPipe } from '@angular/common';
import { Component } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { EditorComponent, MonacoEditorMarkerValidatorDirective } from '@c8y/ngx-components/editor';
import { CoreModule } from '@c8y/ngx-components';
import { BehaviorSubject } from 'rxjs';
import { ActivatedRoute } from '@angular/router';
import * as i0 from "@angular/core";
import * as i1 from "@angular/router";
import * as i2 from "@angular/forms";
import * as i3 from "@c8y/ngx-components";
import * as i4 from "@angular/common";
export class AdvancedEditBrandingComponent {
constructor(activatedRoute) {
this.activatedRoute = activatedRoute;
this.optionsJsonString = new BehaviorSubject('');
this.valueString = new BehaviorSubject('');
this.editorOptions = {};
this.infoText = '';
this.attributeToEdit = '';
const data = this.activatedRoute.snapshot.data;
if (data && data.attributeToEdit) {
this.attributeToEdit = data.attributeToEdit;
}
if (data && data.language) {
this.editorOptions.language = data.language;
}
if (data && data.infoText) {
this.infoText = data.infoText;
}
}
writeValue(obj) {
this.optionsJsonString.next(obj);
if (this.attributeToEdit) {
obj = obj ? obj : '{}';
const parsed = JSON.parse(obj);
if (!parsed[this.attributeToEdit] || typeof parsed[this.attributeToEdit] !== 'string') {
obj = '';
}
else {
obj = parsed[this.attributeToEdit];
}
}
this.valueString.next(obj);
}
registerOnChange(fn) {
this.onChange = fn;
}
registerOnTouched(fn) {
this.onTouched = fn;
}
onValueChange(value) {
if (value === this.valueString.value) {
return;
}
this.valueString.next(value);
if (this.attributeToEdit) {
const parsed = JSON.parse(this.optionsJsonString.value);
parsed[this.attributeToEdit] = value;
value = JSON.stringify(parsed, null, 2);
}
this.optionsJsonString.next(value);
if (this.onChange) {
this.onChange(value);
}
if (this.onTouched) {
this.onTouched();
}
if (this.onValidatorChange) {
this.onValidatorChange();
}
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AdvancedEditBrandingComponent, deps: [{ token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AdvancedEditBrandingComponent, isStandalone: true, selector: "c8y-advanced-edit-branding", host: { classAttribute: "d-contents" }, ngImport: i0, template: "<div\n class=\"card-block separator-bottom m-b-16\"\n *ngIf=\"infoText\"\n>\n <p class=\"icon-flex\">\n <i\n class=\"text-info m-r-4 icon-16\"\n c8yIcon=\"info-circle\"\n ></i>\n <span>\n {{ infoText | translate }}\n </span>\n </p>\n</div>\n\n<c8y-editor\n class=\"flex-grow\"\n [editorOptions]=\"editorOptions\"\n [ngModel]=\"valueString | async\"\n (ngModelChange)=\"onValueChange($event)\"\n monacoEditorMarkerValidator\n></c8y-editor>\n", dependencies: [{ kind: "component", type: EditorComponent, selector: "c8y-editor", inputs: ["editorOptions"], outputs: ["editorInit"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: MonacoEditorMarkerValidatorDirective, selector: "c8y-editor [monacoEditorMarkerValidator]" }, { kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "pipe", type: i3.C8yTranslatePipe, name: "translate" }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AdvancedEditBrandingComponent, decorators: [{
type: Component,
args: [{ selector: 'c8y-advanced-edit-branding', host: { class: 'd-contents' }, standalone: true, imports: [
EditorComponent,
AsyncPipe,
FormsModule,
MonacoEditorMarkerValidatorDirective,
CoreModule
], template: "<div\n class=\"card-block separator-bottom m-b-16\"\n *ngIf=\"infoText\"\n>\n <p class=\"icon-flex\">\n <i\n class=\"text-info m-r-4 icon-16\"\n c8yIcon=\"info-circle\"\n ></i>\n <span>\n {{ infoText | translate }}\n </span>\n </p>\n</div>\n\n<c8y-editor\n class=\"flex-grow\"\n [editorOptions]=\"editorOptions\"\n [ngModel]=\"valueString | async\"\n (ngModelChange)=\"onValueChange($event)\"\n monacoEditorMarkerValidator\n></c8y-editor>\n" }]
}], ctorParameters: () => [{ type: i1.ActivatedRoute }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtZWRpdC1icmFuZGluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9icmFuZGluZy9wbGFpbi1icmFuZGluZy1lZGl0b3IvbGF6eS9hZHZhbmNlZC1lZGl0LWJyYW5kaW5nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2JyYW5kaW5nL3BsYWluLWJyYW5kaW5nLWVkaXRvci9sYXp5L2FkdmFuY2VkLWVkaXQtYnJhbmRpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUF3QixXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZUFBZSxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkcsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7QUFlakQsTUFBTSxPQUFPLDZCQUE2QjtJQVl4QyxZQUFvQixjQUE4QjtRQUE5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFYbEQsc0JBQWlCLEdBQUcsSUFBSSxlQUFlLENBQVMsRUFBRSxDQUFDLENBQUM7UUFDcEQsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUM5QyxrQkFBYSxHQUFxQyxFQUFFLENBQUM7UUFDckQsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQU1OLG9CQUFlLEdBQUcsRUFBRSxDQUFDO1FBRzNCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLElB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RCw2QkFBNkI7a0JBYnpDLFNBQVM7K0JBQ0UsNEJBQTRCLFFBRWhDLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxjQUNqQixJQUFJLFdBQ1A7d0JBQ1AsZUFBZTt3QkFDZixTQUFTO3dCQUNULFdBQVc7d0JBQ1gsb0NBQW9DO3dCQUNwQyxVQUFVO3FCQUNYIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRWRpdG9yQ29tcG9uZW50LCBNb25hY29FZGl0b3JNYXJrZXJWYWxpZGF0b3JEaXJlY3RpdmUgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2VkaXRvcic7XG5pbXBvcnQgeyBDb3JlTW9kdWxlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWFkdmFuY2VkLWVkaXQtYnJhbmRpbmcnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWR2YW5jZWQtZWRpdC1icmFuZGluZy5jb21wb25lbnQuaHRtbCcsXG4gIGhvc3Q6IHsgY2xhc3M6ICdkLWNvbnRlbnRzJyB9LFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgRWRpdG9yQ29tcG9uZW50LFxuICAgIEFzeW5jUGlwZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBNb25hY29FZGl0b3JNYXJrZXJWYWxpZGF0b3JEaXJlY3RpdmUsXG4gICAgQ29yZU1vZHVsZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEFkdmFuY2VkRWRpdEJyYW5kaW5nQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBvcHRpb25zSnNvblN0cmluZyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gIHZhbHVlU3RyaW5nID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcbiAgZWRpdG9yT3B0aW9uczogRWRpdG9yQ29tcG9uZW50WydlZGl0b3JPcHRpb25zJ10gPSB7fTtcbiAgaW5mb1RleHQgPSAnJztcblxuICBwcml2YXRlIG9uQ2hhbmdlOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZDtcbiAgcHJpdmF0ZSBvblRvdWNoZWQ6ICgpID0+IHZvaWQ7XG4gIHByaXZhdGUgb25WYWxpZGF0b3JDaGFuZ2U6ICgpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSBhdHRyaWJ1dGVUb0VkaXQgPSAnJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSkge1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LmRhdGE7XG4gICAgaWYgKGRhdGEgJiYgZGF0YS5hdHRyaWJ1dGVUb0VkaXQpIHtcbiAgICAgIHRoaXMuYXR0cmlidXRlVG9FZGl0ID0gZGF0YS5hdHRyaWJ1dGVUb0VkaXQ7XG4gICAgfVxuICAgIGlmIChkYXRhICYmIGRhdGEubGFuZ3VhZ2UpIHtcbiAgICAgIHRoaXMuZWRpdG9yT3B0aW9ucy5sYW5ndWFnZSA9IGRhdGEubGFuZ3VhZ2U7XG4gICAgfVxuICAgIGlmIChkYXRhICYmIGRhdGEuaW5mb1RleHQpIHtcbiAgICAgIHRoaXMuaW5mb1RleHQgPSBkYXRhLmluZm9UZXh0O1xuICAgIH1cbiAgfVxuXG4gIHdyaXRlVmFsdWUob2JqOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLm9wdGlvbnNKc29uU3RyaW5nLm5leHQob2JqKTtcbiAgICBpZiAodGhpcy5hdHRyaWJ1dGVUb0VkaXQpIHtcbiAgICAgIG9iaiA9IG9iaiA/IG9iaiA6ICd7fSc7XG4gICAgICBjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKG9iaik7XG4gICAgICBpZiAoIXBhcnNlZFt0aGlzLmF0dHJpYnV0ZVRvRWRpdF0gfHwgdHlwZW9mIHBhcnNlZFt0aGlzLmF0dHJpYnV0ZVRvRWRpdF0gIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIG9iaiA9ICcnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb2JqID0gcGFyc2VkW3RoaXMuYXR0cmlidXRlVG9FZGl0XTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy52YWx1ZVN0cmluZy5uZXh0KG9iaik7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIG9uVmFsdWVDaGFuZ2UodmFsdWU6IHN0cmluZykge1xuICAgIGlmICh2YWx1ZSA9PT0gdGhpcy52YWx1ZVN0cmluZy52YWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnZhbHVlU3RyaW5nLm5leHQodmFsdWUpO1xuICAgIGlmICh0aGlzLmF0dHJpYnV0ZVRvRWRpdCkge1xuICAgICAgY29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZSh0aGlzLm9wdGlvbnNKc29uU3RyaW5nLnZhbHVlKTtcbiAgICAgIHBhcnNlZFt0aGlzLmF0dHJpYnV0ZVRvRWRpdF0gPSB2YWx1ZTtcbiAgICAgIHZhbHVlID0gSlNPTi5zdHJpbmdpZnkocGFyc2VkLCBudWxsLCAyKTtcbiAgICB9XG4gICAgdGhpcy5vcHRpb25zSnNvblN0cmluZy5uZXh0KHZhbHVlKTtcbiAgICBpZiAodGhpcy5vbkNoYW5nZSkge1xuICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgfVxuICAgIGlmICh0aGlzLm9uVG91Y2hlZCkge1xuICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMub25WYWxpZGF0b3JDaGFuZ2UpIHtcbiAgICAgIHRoaXMub25WYWxpZGF0b3JDaGFuZ2UoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJjYXJkLWJsb2NrIHNlcGFyYXRvci1ib3R0b20gbS1iLTE2XCJcbiAgKm5nSWY9XCJpbmZvVGV4dFwiXG4+XG4gIDxwIGNsYXNzPVwiaWNvbi1mbGV4XCI+XG4gICAgPGlcbiAgICAgIGNsYXNzPVwidGV4dC1pbmZvIG0tci00IGljb24tMTZcIlxuICAgICAgYzh5SWNvbj1cImluZm8tY2lyY2xlXCJcbiAgICA+PC9pPlxuICAgIDxzcGFuPlxuICAgICAge3sgaW5mb1RleHQgfCB0cmFuc2xhdGUgfX1cbiAgICA8L3NwYW4+XG4gIDwvcD5cbjwvZGl2PlxuXG48Yzh5LWVkaXRvclxuICBjbGFzcz1cImZsZXgtZ3Jvd1wiXG4gIFtlZGl0b3JPcHRpb25zXT1cImVkaXRvck9wdGlvbnNcIlxuICBbbmdNb2RlbF09XCJ2YWx1ZVN0cmluZyB8IGFzeW5jXCJcbiAgKG5nTW9kZWxDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgbW9uYWNvRWRpdG9yTWFya2VyVmFsaWRhdG9yXG4+PC9jOHktZWRpdG9yPlxuIl19