@nakedobjects/gemini
Version:
Single Page Application client for a Naked Objects application.
36 lines • 6.8 kB
JavaScript
import { Component } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "@nakedobjects/services";
import * as i2 from "@nakedobjects/view-models";
import * as i3 from "@angular/common";
export class ErrorComponent {
context;
viewModelFactory;
constructor(context, viewModelFactory) {
this.context = context;
this.viewModelFactory = viewModelFactory;
}
// template API
title = '';
message = '';
errorCode = '';
description = '';
stackTrace = [];
ngOnInit() {
// expect dynamic-error to have checked if the context has an error
const errorWrapper = this.context.getError();
const error = this.viewModelFactory.errorViewModel(errorWrapper);
this.title = error.title ?? '';
this.message = error.message ?? '';
this.errorCode = error.errorCode ?? '';
this.description = error.description ?? '';
this.stackTrace = error.stackTrace ?? [];
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ErrorComponent, deps: [{ token: i1.ContextService }, { token: i2.ViewModelFactoryService }], target: i0.ɵɵFactoryTarget.Component });
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ErrorComponent, selector: "nof-error", ngImport: i0, template: "<div class=\"error\">\n <div class=\"title\">{{title}}</div>\n <div class=\"message\">Message: {{message}}</div>\n <div class=\"code\">Code: {{errorCode}}</div>\n <div class=\"description\">Description: {{description}}.</div>\n <div class=\"stacktrace\">\n Stack Trace :\n <div class=\"line\" *ngFor=\"let line of stackTrace\">{{line}}</div>\n </div>\n</div>", styles: [":host{display:block;padding-left:var(--space-5);height:100%;overflow-y:auto}.title,.message,.code,.description,.stacktrace{display:block;margin-bottom:var(--space-5)}.title,.message{font-size:var(--font-size-3);color:var(--warning-color)}.code,.description,.stacktrace{font-size:var(--font-size-2);color:var(--default-text-color)}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ErrorComponent, decorators: [{
type: Component,
args: [{ selector: 'nof-error', template: "<div class=\"error\">\n <div class=\"title\">{{title}}</div>\n <div class=\"message\">Message: {{message}}</div>\n <div class=\"code\">Code: {{errorCode}}</div>\n <div class=\"description\">Description: {{description}}.</div>\n <div class=\"stacktrace\">\n Stack Trace :\n <div class=\"line\" *ngFor=\"let line of stackTrace\">{{line}}</div>\n </div>\n</div>", styles: [":host{display:block;padding-left:var(--space-5);height:100%;overflow-y:auto}.title,.message,.code,.description,.stacktrace{display:block;margin-bottom:var(--space-5)}.title,.message{font-size:var(--font-size-3);color:var(--warning-color)}.code,.description,.stacktrace{font-size:var(--font-size-2);color:var(--default-text-color)}\n"] }]
}], ctorParameters: () => [{ type: i1.ContextService }, { type: i2.ViewModelFactoryService }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vZ2VtaW5pL3NyYy9lcnJvci9lcnJvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9nZW1pbmkvc3JjL2Vycm9yL2Vycm9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBU2xELE1BQU0sT0FBTyxjQUFjO0lBR0Y7SUFDQTtJQUZyQixZQUNxQixPQUF1QixFQUN2QixnQkFBeUM7UUFEekMsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDdkIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUF5QjtJQUMxRCxDQUFDO0lBRUwsZUFBZTtJQUVmLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDWCxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBQ2IsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUNmLFdBQVcsR0FBRyxFQUFFLENBQUM7SUFDakIsVUFBVSxHQUFhLEVBQUUsQ0FBQztJQUUxQixRQUFRO1FBQ0osb0VBQW9FO1FBQ3BFLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDN0MsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVqRSxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUM7SUFDN0MsQ0FBQzt1R0F6QlEsY0FBYzsyRkFBZCxjQUFjLGlEQ1QzQix3WUFTTTs7MkZEQU8sY0FBYztrQkFMMUIsU0FBUzsrQkFDSSxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnQG5ha2Vkb2JqZWN0cy9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBWaWV3TW9kZWxGYWN0b3J5U2VydmljZSB9IGZyb20gJ0BuYWtlZG9iamVjdHMvdmlldy1tb2RlbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25vZi1lcnJvcicsXG4gICAgdGVtcGxhdGVVcmw6ICdlcnJvci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJ2Vycm9yLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBFcnJvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjb250ZXh0OiBDb250ZXh0U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB2aWV3TW9kZWxGYWN0b3J5OiBWaWV3TW9kZWxGYWN0b3J5U2VydmljZVxuICAgICkgeyB9XG5cbiAgICAvLyB0ZW1wbGF0ZSBBUElcblxuICAgIHRpdGxlID0gJyc7XG4gICAgbWVzc2FnZSA9ICcnO1xuICAgIGVycm9yQ29kZSA9ICcnO1xuICAgIGRlc2NyaXB0aW9uID0gJyc7XG4gICAgc3RhY2tUcmFjZTogc3RyaW5nW10gPSBbXTtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBleHBlY3QgZHluYW1pYy1lcnJvciB0byAgaGF2ZSBjaGVja2VkIGlmIHRoZSBjb250ZXh0IGhhcyBhbiBlcnJvclxuICAgICAgICBjb25zdCBlcnJvcldyYXBwZXIgPSB0aGlzLmNvbnRleHQuZ2V0RXJyb3IoKTtcbiAgICAgICAgY29uc3QgZXJyb3IgPSB0aGlzLnZpZXdNb2RlbEZhY3RvcnkuZXJyb3JWaWV3TW9kZWwoZXJyb3JXcmFwcGVyKTtcblxuICAgICAgICB0aGlzLnRpdGxlID0gZXJyb3IudGl0bGUgPz8gJyc7XG4gICAgICAgIHRoaXMubWVzc2FnZSA9IGVycm9yLm1lc3NhZ2UgPz8gJyc7XG4gICAgICAgIHRoaXMuZXJyb3JDb2RlID0gZXJyb3IuZXJyb3JDb2RlID8/ICcnO1xuICAgICAgICB0aGlzLmRlc2NyaXB0aW9uID0gZXJyb3IuZGVzY3JpcHRpb24gPz8gJyc7XG4gICAgICAgIHRoaXMuc3RhY2tUcmFjZSA9IGVycm9yLnN0YWNrVHJhY2UgPz8gW107XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImVycm9yXCI+XG4gICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+e3t0aXRsZX19PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1lc3NhZ2VcIj5NZXNzYWdlOiB7e21lc3NhZ2V9fTwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjb2RlXCI+Q29kZToge3tlcnJvckNvZGV9fTwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiPkRlc2NyaXB0aW9uOiB7e2Rlc2NyaXB0aW9ufX0uPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInN0YWNrdHJhY2VcIj5cbiAgICAgICAgU3RhY2sgVHJhY2UgOlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGluZVwiICpuZ0Zvcj1cImxldCBsaW5lIG9mIHN0YWNrVHJhY2VcIj57e2xpbmV9fTwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+Il19