ionic-logging-viewer 14.0.0 → 15.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/esm2020/lib/logging-viewer/logging-viewer.component.mjs +6 -6
- package/esm2020/lib/logging-viewer-filter.service.mjs +3 -3
- package/esm2020/lib/logging-viewer-levels/logging-viewer-levels.component.mjs +6 -6
- package/esm2020/lib/logging-viewer-modal/logging-viewer-modal.component.mjs +7 -7
- package/esm2020/lib/logging-viewer-search/logging-viewer-search.component.mjs +5 -5
- package/esm2020/lib/logging-viewer.module.mjs +8 -10
- package/fesm2015/ionic-logging-viewer.mjs +26 -28
- package/fesm2015/ionic-logging-viewer.mjs.map +1 -1
- package/fesm2020/ionic-logging-viewer.mjs +26 -28
- package/fesm2020/ionic-logging-viewer.mjs.map +1 -1
- package/{ionic-logging-viewer.d.ts → index.d.ts} +0 -0
- package/lib/logging-viewer/logging-viewer.component.d.ts +1 -1
- package/lib/logging-viewer-levels/logging-viewer-levels.component.d.ts +1 -1
- package/lib/logging-viewer-modal/logging-viewer-modal.component.d.ts +1 -1
- package/lib/logging-viewer-search/logging-viewer-search.component.d.ts +1 -1
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
# ionic-logging-viewer
|
|
2
2
|
|
|
3
|
-
**The dependencies used by the latest version are the same as needed for [Ionic 6.
|
|
3
|
+
**The dependencies used by the latest version are the same as needed for [Ionic 6.1.9](https://github.com/ionic-team/ionic/blob/master/CHANGELOG.md). For older versions use:**
|
|
4
4
|
|
|
5
5
|
| ionic-logging-viewer | Ionic | Angular
|
|
6
6
|
| ------ | -------- | ------
|
|
7
|
+
| 15.0.0 | >= 6.1.9 | ^14.0.0
|
|
7
8
|
| 14.0.0 | >= 6.0.0 | ^13.0.0
|
|
8
9
|
| 13.0.0 | >= 5.0.0 | ^12.0.0
|
|
9
10
|
| 12.0.0 | >= 5.0.0 | ^11.0.0
|
|
@@ -4,8 +4,8 @@ import { LoggingViewerFilterService } from "../logging-viewer-filter.service";
|
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "ionic-logging-service";
|
|
6
6
|
import * as i2 from "../logging-viewer-filter.service";
|
|
7
|
-
import * as i3 from "@
|
|
8
|
-
import * as i4 from "@angular
|
|
7
|
+
import * as i3 from "@angular/common";
|
|
8
|
+
import * as i4 from "@ionic/angular";
|
|
9
9
|
/**
|
|
10
10
|
* Component for displaying the current logs.
|
|
11
11
|
*
|
|
@@ -108,11 +108,11 @@ export class LoggingViewerComponent {
|
|
|
108
108
|
}
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
|
-
LoggingViewerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
112
|
-
LoggingViewerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
113
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
111
|
+
LoggingViewerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoggingViewerComponent, deps: [{ token: i1.LoggingService }, { token: i2.LoggingViewerFilterService }], target: i0.ɵɵFactoryTarget.Component });
|
|
112
|
+
LoggingViewerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: LoggingViewerComponent, selector: "ionic-logging-viewer", inputs: { localStorageKeys: "localStorageKeys" }, ngImport: i0, template: "<ion-list>\n\t<ion-item *ngFor=\"let logMessage of logMessagesForDisplay\">\n\t\t<ion-label>\n\t\t\t<p>{{ logMessage.timeStamp | date:'dd.MM.yyyy HH:mm:ss' }} {{ logMessage.level }}</p>\n\t\t\t<p>{{ logMessage.logger }}</p>\n\t\t\t<p>\n\t\t\t\t{{ logMessage.methodName }}\n\t\t\t\t<span *ngFor=\"let messagePart of logMessage.message\"> {{ messagePart }} </span>\n\t\t\t</p>\n\t\t</ion-label>\n\t</ion-item>\n</ion-list>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i4.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i4.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i4.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }] });
|
|
113
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoggingViewerComponent, decorators: [{
|
|
114
114
|
type: Component,
|
|
115
|
-
args: [{ selector: "ionic-logging-viewer", template: "<ion-list>\n\t<ion-item *ngFor=\"let logMessage of logMessagesForDisplay\">\n\t\t<ion-label>\n\t\t\t<p>{{ logMessage.timeStamp | date:'dd.MM.yyyy HH:mm:ss' }} {{ logMessage.level }}</p>\n\t\t\t<p>{{ logMessage.logger }}</p>\n\t\t\t<p>\n\t\t\t\t{{ logMessage.methodName }}\n\t\t\t\t<span *ngFor=\"let messagePart of logMessage.message\"> {{ messagePart }} </span>\n\t\t\t</p>\n\t\t</ion-label>\n\t</ion-item>\n</ion-list>"
|
|
115
|
+
args: [{ selector: "ionic-logging-viewer", template: "<ion-list>\n\t<ion-item *ngFor=\"let logMessage of logMessagesForDisplay\">\n\t\t<ion-label>\n\t\t\t<p>{{ logMessage.timeStamp | date:'dd.MM.yyyy HH:mm:ss' }} {{ logMessage.level }}</p>\n\t\t\t<p>{{ logMessage.logger }}</p>\n\t\t\t<p>\n\t\t\t\t{{ logMessage.methodName }}\n\t\t\t\t<span *ngFor=\"let messagePart of logMessage.message\"> {{ messagePart }} </span>\n\t\t\t</p>\n\t\t</ion-label>\n\t</ion-item>\n</ion-list>" }]
|
|
116
116
|
}], ctorParameters: function () { return [{ type: i1.LoggingService }, { type: i2.LoggingViewerFilterService }]; }, propDecorators: { localStorageKeys: [{
|
|
117
117
|
type: Input
|
|
118
118
|
}] } });
|
|
@@ -56,9 +56,9 @@ export class LoggingViewerFilterService {
|
|
|
56
56
|
this.filterChanged.emit();
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
|
-
LoggingViewerFilterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
60
|
-
LoggingViewerFilterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
61
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
59
|
+
LoggingViewerFilterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoggingViewerFilterService, deps: [{ token: i1.LoggingService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
60
|
+
LoggingViewerFilterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoggingViewerFilterService });
|
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoggingViewerFilterService, decorators: [{
|
|
62
62
|
type: Injectable
|
|
63
63
|
}], ctorParameters: function () { return [{ type: i1.LoggingService }]; } });
|
|
64
64
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2luZy12aWV3ZXItZmlsdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9pb25pYy1sb2dnaW5nLXZpZXdlci9zcmMvbGliL2xvZ2dpbmctdmlld2VyLWZpbHRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBVSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7O0FBRS9EOztHQUVHO0FBRUgsTUFBTSxPQUFPLDBCQUEwQjtJQVd0Qzs7OztPQUlHO0lBQ0gsWUFDQyxjQUE4QjtRQUU5QixJQUFJLENBQUMsTUFBTSxHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQUMscUNBQXFDLENBQUMsQ0FBQztRQUM5RSxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUM7UUFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFOUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUM7UUFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRTlDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBVyxLQUFLO1FBQ2YsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBVyxLQUFLLENBQUMsS0FBYTtRQUM3QixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsOERBQThEO0lBQzlELElBQVcsTUFBTTtRQUNoQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDekIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFXLE1BQU0sQ0FBQyxLQUFhO1FBQzlCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7dUhBbkVXLDBCQUEwQjsySEFBMUIsMEJBQTBCOzJGQUExQiwwQkFBMEI7a0JBRHRDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5pbXBvcnQgeyBMb2dnZXIsIExvZ2dpbmdTZXJ2aWNlIH0gZnJvbSBcImlvbmljLWxvZ2dpbmctc2VydmljZVwiO1xuXG4vKipcbiAqIFNlcnZpY2UgZm9yIHN0b3JpbmcgZmlsdGVyIHNldHRpbmdzIGZvciBsb2dnaW5nIHZpZXdlci5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIExvZ2dpbmdWaWV3ZXJGaWx0ZXJTZXJ2aWNlIHtcblxuXHQvKipcblx0ICogRXZlbnQgdHJpZ2dlcmVkIHdoZW4gdGhlIGZpbHRlciB3YXMgY2hhbmdlZC5cblx0ICovXG5cdHB1YmxpYyBmaWx0ZXJDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8dm9pZD47XG5cblx0cHJpdmF0ZSBsb2dnZXI6IExvZ2dlcjtcblx0cHJpdmF0ZSBsZXZlbFZhbHVlOiBzdHJpbmc7XG5cdHByaXZhdGUgc2VhcmNoVmFsdWU6IHN0cmluZztcblxuXHQvKipcblx0ICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgc2VydmljZS5cblx0ICpcblx0ICogQHBhcmFtIGxvZ2dpbmdTZXJ2aWNlIG5lZWRlZCBmb3IgaW50ZXJuYWwgbG9nZ2luZy5cblx0ICovXG5cdGNvbnN0cnVjdG9yKFxuXHRcdGxvZ2dpbmdTZXJ2aWNlOiBMb2dnaW5nU2VydmljZSkge1xuXG5cdFx0dGhpcy5sb2dnZXIgPSBsb2dnaW5nU2VydmljZS5nZXRMb2dnZXIoXCJJb25pYy5Mb2dnaW5nLlZpZXdlci5GaWx0ZXIuU2VydmljZVwiKTtcblx0XHRjb25zdCBtZXRob2ROYW1lID0gXCJjdG9yXCI7XG5cdFx0dGhpcy5sb2dnZXIuZW50cnkobWV0aG9kTmFtZSk7XG5cblx0XHR0aGlzLmxldmVsVmFsdWUgPSBcIkRFQlVHXCI7XG5cdFx0dGhpcy5zZWFyY2hWYWx1ZSA9IFwiXCI7XG5cdFx0dGhpcy5maWx0ZXJDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG5cdFx0dGhpcy5sb2dnZXIuZXhpdChtZXRob2ROYW1lKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBjdXJyZW50IGxvZyBsZXZlbC5cblx0ICpcblx0ICogQHJldHVybiBsb2cgbGV2ZWxcblx0ICovXG5cdHB1YmxpYyBnZXQgbGV2ZWwoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5sZXZlbFZhbHVlO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNldHMgdGhlIG5ldyBsb2cgbGV2ZWwgYW5kIGVtaXRzIGEgZmlsdGVyQ2hhbmdlZCBldmVudC5cblx0ICpcblx0ICogQHBhcmFtIHZhbHVlIG5ldyBzbG9nIGxldmVsXG5cdCAqL1xuXHRwdWJsaWMgc2V0IGxldmVsKHZhbHVlOiBzdHJpbmcpIHtcblx0XHR0aGlzLmxldmVsVmFsdWUgPSB2YWx1ZTtcblx0XHR0aGlzLmZpbHRlckNoYW5nZWQuZW1pdCgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldHMgdGhlIGN1cnJlbnQgc2VhcmNoIHZhbHVlLlxuXHQgKlxuXHQgKiBAcmV0dXJuIHNlYXJjaCB2YWx1ZVxuXHQgKi9cblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmdcblx0cHVibGljIGdldCBzZWFyY2goKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5zZWFyY2hWYWx1ZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBTZXRzIHRoZSBuZXcgc2VhcmNoIHZhbHVlIGFuZCBlbWl0cyBhIGZpbHRlckNoYW5nZWQgZXZlbnQuXG5cdCAqXG5cdCAqIEBwYXJhbSB2YWx1ZSBuZXcgc2VhcmNoIHZhbHVlXG5cdCAqL1xuXHRwdWJsaWMgc2V0IHNlYXJjaCh2YWx1ZTogc3RyaW5nKSB7XG5cdFx0dGhpcy5zZWFyY2hWYWx1ZSA9IHZhbHVlO1xuXHRcdHRoaXMuZmlsdGVyQ2hhbmdlZC5lbWl0KCk7XG5cdH1cbn1cbiJdfQ==
|
|
@@ -4,9 +4,9 @@ import { LoggingViewerFilterService } from "../logging-viewer-filter.service";
|
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "ionic-logging-service";
|
|
6
6
|
import * as i2 from "../logging-viewer-filter.service";
|
|
7
|
-
import * as i3 from "@
|
|
7
|
+
import * as i3 from "@angular/common";
|
|
8
8
|
import * as i4 from "@angular/forms";
|
|
9
|
-
import * as i5 from "@angular
|
|
9
|
+
import * as i5 from "@ionic/angular";
|
|
10
10
|
/**
|
|
11
11
|
* Component for displaying the log levels for filtering the current logs.
|
|
12
12
|
*
|
|
@@ -62,10 +62,10 @@ export class LoggingViewerLevelsComponent {
|
|
|
62
62
|
this.logger.exit(methodName);
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
|
-
LoggingViewerLevelsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
66
|
-
LoggingViewerLevelsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
67
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
65
|
+
LoggingViewerLevelsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoggingViewerLevelsComponent, deps: [{ token: i1.LoggingService }, { token: i2.LoggingViewerFilterService }], target: i0.ɵɵFactoryTarget.Component });
|
|
66
|
+
LoggingViewerLevelsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: LoggingViewerLevelsComponent, selector: "ionic-logging-viewer-levels", ngImport: i0, template: "<ion-segment [(ngModel)]=\"selectedLevel\" (ionChange)=\"onLevelChanged()\">\n\t<ion-segment-button *ngFor=\"let logLevel of logLevels\" [value]=\"logLevel\">\n\t\t<ion-label>{{ logLevel }}</ion-label>\n\t</ion-segment-button>\n</ion-segment>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i5.IonSegment, selector: "ion-segment", inputs: ["color", "disabled", "mode", "scrollable", "selectOnFocus", "swipeGesture", "value"] }, { kind: "component", type: i5.IonSegmentButton, selector: "ion-segment-button", inputs: ["disabled", "layout", "mode", "type", "value"] }, { kind: "directive", type: i5.SelectValueAccessor, selector: "ion-range, ion-select, ion-radio-group, ion-segment, ion-datetime" }] });
|
|
67
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoggingViewerLevelsComponent, decorators: [{
|
|
68
68
|
type: Component,
|
|
69
|
-
args: [{ selector: "ionic-logging-viewer-levels", template: "<ion-segment [(ngModel)]=\"selectedLevel\" (ionChange)=\"onLevelChanged()\">\n\t<ion-segment-button *ngFor=\"let logLevel of logLevels\" [value]=\"logLevel\">\n\t\t<ion-label>{{ logLevel }}</ion-label>\n\t</ion-segment-button>\n</ion-segment>"
|
|
69
|
+
args: [{ selector: "ionic-logging-viewer-levels", template: "<ion-segment [(ngModel)]=\"selectedLevel\" (ionChange)=\"onLevelChanged()\">\n\t<ion-segment-button *ngFor=\"let logLevel of logLevels\" [value]=\"logLevel\">\n\t\t<ion-label>{{ logLevel }}</ion-label>\n\t</ion-segment-button>\n</ion-segment>" }]
|
|
70
70
|
}], ctorParameters: function () { return [{ type: i1.LoggingService }, { type: i2.LoggingViewerFilterService }]; } });
|
|
71
71
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2luZy12aWV3ZXItbGV2ZWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lvbmljLWxvZ2dpbmctdmlld2VyL3NyYy9saWIvbG9nZ2luZy12aWV3ZXItbGV2ZWxzL2xvZ2dpbmctdmlld2VyLWxldmVscy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pb25pYy1sb2dnaW5nLXZpZXdlci9zcmMvbGliL2xvZ2dpbmctdmlld2VyLWxldmVscy9sb2dnaW5nLXZpZXdlci1sZXZlbHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFHN0QsT0FBTyxFQUFVLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRS9ELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7O0FBRTlFOzs7Ozs7R0FNRztBQU1ILE1BQU0sT0FBTyw0QkFBNEI7SUFleEM7O09BRUc7SUFDSCxZQUNDLGNBQThCLEVBQ3RCLDBCQUFzRDtRQUF0RCwrQkFBMEIsR0FBMUIsMEJBQTBCLENBQTRCO1FBRTlELElBQUksQ0FBQyxNQUFNLEdBQUcsY0FBYyxDQUFDLFNBQVMsQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO1FBQ2hGLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQztRQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUU5QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FDbEIsT0FBTyxFQUNQLE1BQU0sRUFDTixNQUFNLEVBQ04sT0FBTyxDQUNQLENBQUM7UUFFRixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFFBQVE7UUFDZCxNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFOUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUMsS0FBSyxDQUFDO1FBRTNELDJFQUEyRTtRQUMzRSx1Q0FBdUM7UUFDdkMsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM3RixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxLQUFLLENBQUM7UUFDNUQsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQ7O09BRUc7SUFDSSxXQUFXO1FBQ2pCLE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQztRQUNqQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUU5QixJQUFJLENBQUMseUJBQXlCLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFN0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksY0FBYztRQUNwQixNQUFNLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQztRQUNwQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRWxELElBQUksQ0FBQywwQkFBMEIsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUUzRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM5QixDQUFDOzt5SEEvRVcsNEJBQTRCOzZHQUE1Qiw0QkFBNEIsbUVDbkJ6QyxvUEFJYzsyRkRlRCw0QkFBNEI7a0JBTHhDLFNBQVM7K0JBQ0MsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xuXG5pbXBvcnQgeyBMb2dnZXIsIExvZ2dpbmdTZXJ2aWNlIH0gZnJvbSBcImlvbmljLWxvZ2dpbmctc2VydmljZVwiO1xuXG5pbXBvcnQgeyBMb2dnaW5nVmlld2VyRmlsdGVyU2VydmljZSB9IGZyb20gXCIuLi9sb2dnaW5nLXZpZXdlci1maWx0ZXIuc2VydmljZVwiO1xuXG4vKipcbiAqIENvbXBvbmVudCBmb3IgZGlzcGxheWluZyB0aGUgbG9nIGxldmVscyBmb3IgZmlsdGVyaW5nIHRoZSBjdXJyZW50IGxvZ3MuXG4gKlxuICogVGhlIGNvbXBvbmVudCBjYW4gYmUgZW1iZWRkZWQgaW4gYW55IHdlYiBwYWdlIHVzaW5nOlxuICpcbiAqICZsdDtpb25pYy1sb2dnaW5nLXZpZXdlci1sZXZlbHM+Jmx0Oy9pb25pYy1sb2dnaW5nLXZpZXdlci1sZXZlbHM+XG4gKi9cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogXCJpb25pYy1sb2dnaW5nLXZpZXdlci1sZXZlbHNcIixcblx0dGVtcGxhdGVVcmw6IFwiLi9sb2dnaW5nLXZpZXdlci1sZXZlbHMuY29tcG9uZW50Lmh0bWxcIixcblx0c3R5bGVVcmxzOiBbXCIuL2xvZ2dpbmctdmlld2VyLWxldmVscy5jb21wb25lbnQuc2Nzc1wiXVxufSlcbmV4cG9ydCBjbGFzcyBMb2dnaW5nVmlld2VyTGV2ZWxzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG5cdC8qKlxuXHQgKiBMb2cgbGV2ZWxzIHVzZWQgZm9yIGZpbHRlcmluZzogREVCVUcsIElORk8sIFdBUk4sIEVSUk9SXG5cdCAqL1xuXHRwdWJsaWMgbG9nTGV2ZWxzOiBzdHJpbmdbXTtcblxuXHQvKipcblx0ICogU2VsZWN0ZWQgbGV2ZWwuXG5cdCAqL1xuXHRwdWJsaWMgc2VsZWN0ZWRMZXZlbDogc3RyaW5nO1xuXG5cdHByaXZhdGUgbG9nZ2VyOiBMb2dnZXI7XG5cdHByaXZhdGUgZmlsdGVyQ2hhbmdlZFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBjb21wb25lbnQuXG5cdCAqL1xuXHRjb25zdHJ1Y3Rvcihcblx0XHRsb2dnaW5nU2VydmljZTogTG9nZ2luZ1NlcnZpY2UsXG5cdFx0cHJpdmF0ZSBsb2dnaW5nVmlld2VyRmlsdGVyU2VydmljZTogTG9nZ2luZ1ZpZXdlckZpbHRlclNlcnZpY2UpIHtcblxuXHRcdHRoaXMubG9nZ2VyID0gbG9nZ2luZ1NlcnZpY2UuZ2V0TG9nZ2VyKFwiSW9uaWMuTG9nZ2luZy5WaWV3ZXIuTGV2ZWxzLkNvbXBvbmVudFwiKTtcblx0XHRjb25zdCBtZXRob2ROYW1lID0gXCJjdG9yXCI7XG5cdFx0dGhpcy5sb2dnZXIuZW50cnkobWV0aG9kTmFtZSk7XG5cblx0XHR0aGlzLmxvZ0xldmVscyA9IFtdO1xuXHRcdHRoaXMubG9nTGV2ZWxzLnB1c2goXG5cdFx0XHRcIkRFQlVHXCIsXG5cdFx0XHRcIklORk9cIixcblx0XHRcdFwiV0FSTlwiLFxuXHRcdFx0XCJFUlJPUlwiLFxuXHRcdCk7XG5cblx0XHR0aGlzLmxvZ2dlci5leGl0KG1ldGhvZE5hbWUpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEluaXRpYWxpemUgdGhlIGNvbXBvbmVudC5cblx0ICpcblx0ICogVGhpcyBpcyBkb25lIGJ5IHJlYWRpbmcgdGhlIGZpbHRlciBkYXRhIGZyb20gW0xvZ2dpbmdWaWV3ZXJGaWx0ZXJTZXJ2aWNlXShMb2dnaW5nVmlld2VyRmlsdGVyU2VydmljZS5odG1sKS5cblx0ICovXG5cdHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcblx0XHRjb25zdCBtZXRob2ROYW1lID0gXCJuZ09uSW5pdFwiO1xuXHRcdHRoaXMubG9nZ2VyLmVudHJ5KG1ldGhvZE5hbWUpO1xuXG5cdFx0dGhpcy5zZWxlY3RlZExldmVsID0gdGhpcy5sb2dnaW5nVmlld2VyRmlsdGVyU2VydmljZS5sZXZlbDtcblxuXHRcdC8vIHN1YnNjcmliZSB0byBsb2dnaW5nVmlld2VyRmlsdGVyU2VydmljZS5maWx0ZXJDaGFuZ2VkIGV2ZW50LCB0byByZWZyZXNoLFxuXHRcdC8vIHdoZW4gc29tZW9uZSBlbHNlIG1vZGlmaWVzIHRoZSBsZXZlbFxuXHRcdHRoaXMuZmlsdGVyQ2hhbmdlZFN1YnNjcmlwdGlvbiA9IHRoaXMubG9nZ2luZ1ZpZXdlckZpbHRlclNlcnZpY2UuZmlsdGVyQ2hhbmdlZC5zdWJzY3JpYmUoKCkgPT4ge1xuXHRcdFx0dGhpcy5zZWxlY3RlZExldmVsID0gdGhpcy5sb2dnaW5nVmlld2VyRmlsdGVyU2VydmljZS5sZXZlbDtcblx0XHR9KTtcblxuXHRcdHRoaXMubG9nZ2VyLmV4aXQobWV0aG9kTmFtZSk7XG5cdH1cblxuXHQvKipcblx0ICogQ2xlYW4gdXAuXG5cdCAqL1xuXHRwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG5cdFx0Y29uc3QgbWV0aG9kTmFtZSA9IFwibmdPbkRlc3Ryb3lcIjtcblx0XHR0aGlzLmxvZ2dlci5lbnRyeShtZXRob2ROYW1lKTtcblxuXHRcdHRoaXMuZmlsdGVyQ2hhbmdlZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuXG5cdFx0dGhpcy5sb2dnZXIuZXhpdChtZXRob2ROYW1lKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDYWxsYmFjayB3aGVuIHRoZSBsZXZlbCB3YXMgY2hhbmdlZCBpbiB0aGUgVUkuXG5cdCAqL1xuXHRwdWJsaWMgb25MZXZlbENoYW5nZWQoKTogdm9pZCB7XG5cdFx0Y29uc3QgbWV0aG9kTmFtZSA9IFwib25MZXZlbENoYW5nZWRcIjtcblx0XHR0aGlzLmxvZ2dlci5lbnRyeShtZXRob2ROYW1lLCB0aGlzLnNlbGVjdGVkTGV2ZWwpO1xuXG5cdFx0dGhpcy5sb2dnaW5nVmlld2VyRmlsdGVyU2VydmljZS5sZXZlbCA9IHRoaXMuc2VsZWN0ZWRMZXZlbDtcblxuXHRcdHRoaXMubG9nZ2VyLmV4aXQobWV0aG9kTmFtZSk7XG5cdH1cbn1cbiIsIjxpb24tc2VnbWVudCBbKG5nTW9kZWwpXT1cInNlbGVjdGVkTGV2ZWxcIiAoaW9uQ2hhbmdlKT1cIm9uTGV2ZWxDaGFuZ2VkKClcIj5cblx0PGlvbi1zZWdtZW50LWJ1dHRvbiAqbmdGb3I9XCJsZXQgbG9nTGV2ZWwgb2YgbG9nTGV2ZWxzXCIgW3ZhbHVlXT1cImxvZ0xldmVsXCI+XG5cdFx0PGlvbi1sYWJlbD57eyBsb2dMZXZlbCB9fTwvaW9uLWxhYmVsPlxuXHQ8L2lvbi1zZWdtZW50LWJ1dHRvbj5cbjwvaW9uLXNlZ21lbnQ+Il19
|
|
@@ -4,10 +4,10 @@ import { LoggingService } from "ionic-logging-service";
|
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "@ionic/angular";
|
|
6
6
|
import * as i2 from "ionic-logging-service";
|
|
7
|
-
import * as i3 from "
|
|
8
|
-
import * as i4 from "../logging-viewer
|
|
9
|
-
import * as i5 from "../logging-viewer/logging-viewer.component";
|
|
10
|
-
import * as i6 from "
|
|
7
|
+
import * as i3 from "@angular/common";
|
|
8
|
+
import * as i4 from "../logging-viewer/logging-viewer.component";
|
|
9
|
+
import * as i5 from "../logging-viewer-search/logging-viewer-search.component";
|
|
10
|
+
import * as i6 from "../logging-viewer-levels/logging-viewer-levels.component";
|
|
11
11
|
/**
|
|
12
12
|
* Ionic modal containing [LoggingViewerComponent](LoggingViewerComponent.html),
|
|
13
13
|
* [LoggingViewerLevelsComponent](LoggingViewerLevelsComponent.html) and
|
|
@@ -124,9 +124,9 @@ export class LoggingViewerModalComponent {
|
|
|
124
124
|
}
|
|
125
125
|
LoggingViewerModalComponent.languageEn = "en";
|
|
126
126
|
LoggingViewerModalComponent.languageDe = "de";
|
|
127
|
-
LoggingViewerModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
128
|
-
LoggingViewerModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
129
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
127
|
+
LoggingViewerModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoggingViewerModalComponent, deps: [{ token: i1.Platform }, { token: i1.AlertController }, { token: i1.ModalController }, { token: i2.LoggingService }], target: i0.ɵɵFactoryTarget.Component });
|
|
128
|
+
LoggingViewerModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: LoggingViewerModalComponent, selector: "ionic-logging-viewer-modal", inputs: { language: "language", translation: "translation", localStorageKeys: "localStorageKeys", allowClearLogs: "allowClearLogs" }, ngImport: i0, template: "<ion-header>\n\t<ion-toolbar color=primary>\n\t\t<ion-title>{{ getTranslation().title }}</ion-title>\n\t\t<ion-buttons slot=\"start\">\n\t\t\t<ion-button *ngIf=\"!isAndroid\" (click)=\"onClose()\">\n\t\t\t\t{{ getTranslation().cancel }}\n\t\t\t</ion-button>\n\t\t\t<ion-button *ngIf=\"isAndroid\" icon-only (click)=\"onClose()\">\n\t\t\t\t<ion-icon name=\"md-close\"></ion-icon>\n\t\t\t</ion-button>\n\t\t</ion-buttons>\n\t</ion-toolbar>\n\t<ion-toolbar>\n\t\t<ionic-logging-viewer-search [placeholder]=\"getTranslation().searchPlaceholder\"></ionic-logging-viewer-search>\n\t\t<ion-buttons slot=\"end\" *ngIf=\"allowClearLogs !== false\" class=\"clearLogs\">\n\t\t\t<ion-button (click)=\"onClearLogs()\">\n\t\t\t\t<ion-icon name=\"trash-outline\"></ion-icon>\n\t\t\t</ion-button>\n\t\t</ion-buttons>\n\t</ion-toolbar>\n\t<ion-toolbar>\n\t\t<ionic-logging-viewer-levels></ionic-logging-viewer-levels>\n\t</ion-toolbar>\n</ion-header>\n<ion-content>\n\t<ionic-logging-viewer [localStorageKeys]=\"localStorageKeys\"></ionic-logging-viewer>\n</ion-content>", styles: ["ionic-logging-viewer-levels{width:100%;padding-left:12px;padding-right:12px}.clearLogs{padding-top:3px}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i1.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i4.LoggingViewerComponent, selector: "ionic-logging-viewer", inputs: ["localStorageKeys"] }, { kind: "component", type: i5.LoggingViewerSearchComponent, selector: "ionic-logging-viewer-search", inputs: ["placeholder"] }, { kind: "component", type: i6.LoggingViewerLevelsComponent, selector: "ionic-logging-viewer-levels" }] });
|
|
129
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoggingViewerModalComponent, decorators: [{
|
|
130
130
|
type: Component,
|
|
131
131
|
args: [{ selector: "ionic-logging-viewer-modal", template: "<ion-header>\n\t<ion-toolbar color=primary>\n\t\t<ion-title>{{ getTranslation().title }}</ion-title>\n\t\t<ion-buttons slot=\"start\">\n\t\t\t<ion-button *ngIf=\"!isAndroid\" (click)=\"onClose()\">\n\t\t\t\t{{ getTranslation().cancel }}\n\t\t\t</ion-button>\n\t\t\t<ion-button *ngIf=\"isAndroid\" icon-only (click)=\"onClose()\">\n\t\t\t\t<ion-icon name=\"md-close\"></ion-icon>\n\t\t\t</ion-button>\n\t\t</ion-buttons>\n\t</ion-toolbar>\n\t<ion-toolbar>\n\t\t<ionic-logging-viewer-search [placeholder]=\"getTranslation().searchPlaceholder\"></ionic-logging-viewer-search>\n\t\t<ion-buttons slot=\"end\" *ngIf=\"allowClearLogs !== false\" class=\"clearLogs\">\n\t\t\t<ion-button (click)=\"onClearLogs()\">\n\t\t\t\t<ion-icon name=\"trash-outline\"></ion-icon>\n\t\t\t</ion-button>\n\t\t</ion-buttons>\n\t</ion-toolbar>\n\t<ion-toolbar>\n\t\t<ionic-logging-viewer-levels></ionic-logging-viewer-levels>\n\t</ion-toolbar>\n</ion-header>\n<ion-content>\n\t<ionic-logging-viewer [localStorageKeys]=\"localStorageKeys\"></ionic-logging-viewer>\n</ion-content>", styles: ["ionic-logging-viewer-levels{width:100%;padding-left:12px;padding-right:12px}.clearLogs{padding-top:3px}\n"] }]
|
|
132
132
|
}], ctorParameters: function () { return [{ type: i1.Platform }, { type: i1.AlertController }, { type: i1.ModalController }, { type: i2.LoggingService }]; }, propDecorators: { language: [{
|
|
@@ -4,8 +4,8 @@ import { LoggingViewerFilterService } from "../logging-viewer-filter.service";
|
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "ionic-logging-service";
|
|
6
6
|
import * as i2 from "../logging-viewer-filter.service";
|
|
7
|
-
import * as i3 from "@
|
|
8
|
-
import * as i4 from "@angular
|
|
7
|
+
import * as i3 from "@angular/forms";
|
|
8
|
+
import * as i4 from "@ionic/angular";
|
|
9
9
|
/**
|
|
10
10
|
* Component for displaying the search bar for filtering the current logs.
|
|
11
11
|
*
|
|
@@ -62,9 +62,9 @@ export class LoggingViewerSearchComponent {
|
|
|
62
62
|
this.logger.exit(methodName);
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
|
-
LoggingViewerSearchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
66
|
-
LoggingViewerSearchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
67
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
65
|
+
LoggingViewerSearchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoggingViewerSearchComponent, deps: [{ token: i1.LoggingService }, { token: i2.LoggingViewerFilterService }], target: i0.ɵɵFactoryTarget.Component });
|
|
66
|
+
LoggingViewerSearchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: LoggingViewerSearchComponent, selector: "ionic-logging-viewer-search", inputs: { placeholder: "placeholder" }, ngImport: i0, template: "<ion-searchbar placeholder=\"{{placeholder}}\" [(ngModel)]=\"search\" (ionChange)=\"onSearchChanged()\"></ion-searchbar>", styles: ["ion-searchbar{padding-top:3px;padding-bottom:0}\n"], dependencies: [{ kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.IonSearchbar, selector: "ion-searchbar", inputs: ["animated", "autocomplete", "autocorrect", "cancelButtonIcon", "cancelButtonText", "clearIcon", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "mode", "placeholder", "searchIcon", "showCancelButton", "showClearButton", "spellcheck", "type", "value"] }, { kind: "directive", type: i4.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }] });
|
|
67
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoggingViewerSearchComponent, decorators: [{
|
|
68
68
|
type: Component,
|
|
69
69
|
args: [{ selector: "ionic-logging-viewer-search", template: "<ion-searchbar placeholder=\"{{placeholder}}\" [(ngModel)]=\"search\" (ionChange)=\"onSearchChanged()\"></ion-searchbar>", styles: ["ion-searchbar{padding-top:3px;padding-bottom:0}\n"] }]
|
|
70
70
|
}], ctorParameters: function () { return [{ type: i1.LoggingService }, { type: i2.LoggingViewerFilterService }]; }, propDecorators: { placeholder: [{
|
|
@@ -10,8 +10,8 @@ import { LoggingViewerModalComponent } from "./logging-viewer-modal/logging-view
|
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
11
11
|
export class LoggingViewerModule {
|
|
12
12
|
}
|
|
13
|
-
LoggingViewerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
14
|
-
LoggingViewerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "
|
|
13
|
+
LoggingViewerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoggingViewerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
14
|
+
LoggingViewerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.0", ngImport: i0, type: LoggingViewerModule, declarations: [LoggingViewerComponent,
|
|
15
15
|
LoggingViewerSearchComponent,
|
|
16
16
|
LoggingViewerLevelsComponent,
|
|
17
17
|
LoggingViewerModalComponent], imports: [CommonModule,
|
|
@@ -20,14 +20,12 @@ LoggingViewerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", ver
|
|
|
20
20
|
LoggingViewerSearchComponent,
|
|
21
21
|
LoggingViewerLevelsComponent,
|
|
22
22
|
LoggingViewerModalComponent] });
|
|
23
|
-
LoggingViewerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
23
|
+
LoggingViewerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoggingViewerModule, providers: [
|
|
24
24
|
LoggingViewerFilterService
|
|
25
|
-
], imports: [
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
]] });
|
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: LoggingViewerModule, decorators: [{
|
|
25
|
+
], imports: [CommonModule,
|
|
26
|
+
FormsModule,
|
|
27
|
+
IonicModule] });
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoggingViewerModule, decorators: [{
|
|
31
29
|
type: NgModule,
|
|
32
30
|
args: [{
|
|
33
31
|
imports: [
|
|
@@ -52,4 +50,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImpor
|
|
|
52
50
|
]
|
|
53
51
|
}]
|
|
54
52
|
}] });
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2luZy12aWV3ZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvaW9uaWMtbG9nZ2luZy12aWV3ZXIvc3JjL2xpYi9sb2dnaW5nLXZpZXdlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQzs7QUF3QnBHLE1BQU0sT0FBTyxtQkFBbUI7O2dIQUFuQixtQkFBbUI7aUhBQW5CLG1CQUFtQixpQkFmeEIsc0JBQXNCO1FBQ3RCLDRCQUE0QjtRQUM1Qiw0QkFBNEI7UUFDNUIsMkJBQTJCLGFBUjNCLFlBQVk7UUFDWixXQUFXO1FBQ1gsV0FBVyxhQVNYLHNCQUFzQjtRQUN0Qiw0QkFBNEI7UUFDNUIsNEJBQTRCO1FBQzVCLDJCQUEyQjtpSEFNdEIsbUJBQW1CLGFBSmpCO1FBQ1AsMEJBQTBCO0tBQzdCLFlBbEJHLFlBQVk7UUFDWixXQUFXO1FBQ1gsV0FBVzsyRkFrQk4sbUJBQW1CO2tCQXRCL0IsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixXQUFXO3dCQUNYLFdBQVc7cUJBQ2Q7b0JBQ0QsWUFBWSxFQUFFO3dCQUNWLHNCQUFzQjt3QkFDdEIsNEJBQTRCO3dCQUM1Qiw0QkFBNEI7d0JBQzVCLDJCQUEyQjtxQkFDOUI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLHNCQUFzQjt3QkFDdEIsNEJBQTRCO3dCQUM1Qiw0QkFBNEI7d0JBQzVCLDJCQUEyQjtxQkFDOUI7b0JBQ0QsU0FBUyxFQUFFO3dCQUNQLDBCQUEwQjtxQkFDN0I7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuXG5pbXBvcnQgeyBJb25pY01vZHVsZSB9IGZyb20gXCJAaW9uaWMvYW5ndWxhclwiO1xuXG5pbXBvcnQgeyBMb2dnaW5nVmlld2VyQ29tcG9uZW50IH0gZnJvbSBcIi4vbG9nZ2luZy12aWV3ZXIvbG9nZ2luZy12aWV3ZXIuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBMb2dnaW5nVmlld2VyRmlsdGVyU2VydmljZSB9IGZyb20gXCIuL2xvZ2dpbmctdmlld2VyLWZpbHRlci5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBMb2dnaW5nVmlld2VyTGV2ZWxzQ29tcG9uZW50IH0gZnJvbSBcIi4vbG9nZ2luZy12aWV3ZXItbGV2ZWxzL2xvZ2dpbmctdmlld2VyLWxldmVscy5jb21wb25lbnRcIjtcbmltcG9ydCB7IExvZ2dpbmdWaWV3ZXJTZWFyY2hDb21wb25lbnQgfSBmcm9tIFwiLi9sb2dnaW5nLXZpZXdlci1zZWFyY2gvbG9nZ2luZy12aWV3ZXItc2VhcmNoLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgTG9nZ2luZ1ZpZXdlck1vZGFsQ29tcG9uZW50IH0gZnJvbSBcIi4vbG9nZ2luZy12aWV3ZXItbW9kYWwvbG9nZ2luZy12aWV3ZXItbW9kYWwuY29tcG9uZW50XCI7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBJb25pY01vZHVsZVxuICAgIF0sXG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIExvZ2dpbmdWaWV3ZXJDb21wb25lbnQsXG4gICAgICAgIExvZ2dpbmdWaWV3ZXJTZWFyY2hDb21wb25lbnQsXG4gICAgICAgIExvZ2dpbmdWaWV3ZXJMZXZlbHNDb21wb25lbnQsXG4gICAgICAgIExvZ2dpbmdWaWV3ZXJNb2RhbENvbXBvbmVudFxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBMb2dnaW5nVmlld2VyQ29tcG9uZW50LFxuICAgICAgICBMb2dnaW5nVmlld2VyU2VhcmNoQ29tcG9uZW50LFxuICAgICAgICBMb2dnaW5nVmlld2VyTGV2ZWxzQ29tcG9uZW50LFxuICAgICAgICBMb2dnaW5nVmlld2VyTW9kYWxDb21wb25lbnRcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBMb2dnaW5nVmlld2VyRmlsdGVyU2VydmljZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTG9nZ2luZ1ZpZXdlck1vZHVsZSB7IH1cbiJdfQ==
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { EventEmitter, Injectable, Component, Input, NgModule } from '@angular/core';
|
|
3
|
-
import * as
|
|
3
|
+
import * as i3 from '@angular/common';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
|
-
import * as i4
|
|
5
|
+
import * as i4 from '@angular/forms';
|
|
6
6
|
import { FormsModule } from '@angular/forms';
|
|
7
7
|
import * as i1$1 from '@ionic/angular';
|
|
8
8
|
import { IonicModule } from '@ionic/angular';
|
|
@@ -64,9 +64,9 @@ class LoggingViewerFilterService {
|
|
|
64
64
|
this.filterChanged.emit();
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
|
-
LoggingViewerFilterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
68
|
-
LoggingViewerFilterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
69
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
67
|
+
LoggingViewerFilterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoggingViewerFilterService, deps: [{ token: i1.LoggingService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
68
|
+
LoggingViewerFilterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoggingViewerFilterService });
|
|
69
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoggingViewerFilterService, decorators: [{
|
|
70
70
|
type: Injectable
|
|
71
71
|
}], ctorParameters: function () { return [{ type: i1.LoggingService }]; } });
|
|
72
72
|
|
|
@@ -172,11 +172,11 @@ class LoggingViewerComponent {
|
|
|
172
172
|
}
|
|
173
173
|
}
|
|
174
174
|
}
|
|
175
|
-
LoggingViewerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
176
|
-
LoggingViewerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
177
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
175
|
+
LoggingViewerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoggingViewerComponent, deps: [{ token: i1.LoggingService }, { token: LoggingViewerFilterService }], target: i0.ɵɵFactoryTarget.Component });
|
|
176
|
+
LoggingViewerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: LoggingViewerComponent, selector: "ionic-logging-viewer", inputs: { localStorageKeys: "localStorageKeys" }, ngImport: i0, template: "<ion-list>\n\t<ion-item *ngFor=\"let logMessage of logMessagesForDisplay\">\n\t\t<ion-label>\n\t\t\t<p>{{ logMessage.timeStamp | date:'dd.MM.yyyy HH:mm:ss' }} {{ logMessage.level }}</p>\n\t\t\t<p>{{ logMessage.logger }}</p>\n\t\t\t<p>\n\t\t\t\t{{ logMessage.methodName }}\n\t\t\t\t<span *ngFor=\"let messagePart of logMessage.message\"> {{ messagePart }} </span>\n\t\t\t</p>\n\t\t</ion-label>\n\t</ion-item>\n</ion-list>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i1$1.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i1$1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i1$1.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }] });
|
|
177
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoggingViewerComponent, decorators: [{
|
|
178
178
|
type: Component,
|
|
179
|
-
args: [{ selector: "ionic-logging-viewer", template: "<ion-list>\n\t<ion-item *ngFor=\"let logMessage of logMessagesForDisplay\">\n\t\t<ion-label>\n\t\t\t<p>{{ logMessage.timeStamp | date:'dd.MM.yyyy HH:mm:ss' }} {{ logMessage.level }}</p>\n\t\t\t<p>{{ logMessage.logger }}</p>\n\t\t\t<p>\n\t\t\t\t{{ logMessage.methodName }}\n\t\t\t\t<span *ngFor=\"let messagePart of logMessage.message\"> {{ messagePart }} </span>\n\t\t\t</p>\n\t\t</ion-label>\n\t</ion-item>\n</ion-list>"
|
|
179
|
+
args: [{ selector: "ionic-logging-viewer", template: "<ion-list>\n\t<ion-item *ngFor=\"let logMessage of logMessagesForDisplay\">\n\t\t<ion-label>\n\t\t\t<p>{{ logMessage.timeStamp | date:'dd.MM.yyyy HH:mm:ss' }} {{ logMessage.level }}</p>\n\t\t\t<p>{{ logMessage.logger }}</p>\n\t\t\t<p>\n\t\t\t\t{{ logMessage.methodName }}\n\t\t\t\t<span *ngFor=\"let messagePart of logMessage.message\"> {{ messagePart }} </span>\n\t\t\t</p>\n\t\t</ion-label>\n\t</ion-item>\n</ion-list>" }]
|
|
180
180
|
}], ctorParameters: function () { return [{ type: i1.LoggingService }, { type: LoggingViewerFilterService }]; }, propDecorators: { localStorageKeys: [{
|
|
181
181
|
type: Input
|
|
182
182
|
}] } });
|
|
@@ -236,11 +236,11 @@ class LoggingViewerLevelsComponent {
|
|
|
236
236
|
this.logger.exit(methodName);
|
|
237
237
|
}
|
|
238
238
|
}
|
|
239
|
-
LoggingViewerLevelsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
240
|
-
LoggingViewerLevelsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
241
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
239
|
+
LoggingViewerLevelsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoggingViewerLevelsComponent, deps: [{ token: i1.LoggingService }, { token: LoggingViewerFilterService }], target: i0.ɵɵFactoryTarget.Component });
|
|
240
|
+
LoggingViewerLevelsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: LoggingViewerLevelsComponent, selector: "ionic-logging-viewer-levels", ngImport: i0, template: "<ion-segment [(ngModel)]=\"selectedLevel\" (ionChange)=\"onLevelChanged()\">\n\t<ion-segment-button *ngFor=\"let logLevel of logLevels\" [value]=\"logLevel\">\n\t\t<ion-label>{{ logLevel }}</ion-label>\n\t</ion-segment-button>\n</ion-segment>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i1$1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i1$1.IonSegment, selector: "ion-segment", inputs: ["color", "disabled", "mode", "scrollable", "selectOnFocus", "swipeGesture", "value"] }, { kind: "component", type: i1$1.IonSegmentButton, selector: "ion-segment-button", inputs: ["disabled", "layout", "mode", "type", "value"] }, { kind: "directive", type: i1$1.SelectValueAccessor, selector: "ion-range, ion-select, ion-radio-group, ion-segment, ion-datetime" }] });
|
|
241
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoggingViewerLevelsComponent, decorators: [{
|
|
242
242
|
type: Component,
|
|
243
|
-
args: [{ selector: "ionic-logging-viewer-levels", template: "<ion-segment [(ngModel)]=\"selectedLevel\" (ionChange)=\"onLevelChanged()\">\n\t<ion-segment-button *ngFor=\"let logLevel of logLevels\" [value]=\"logLevel\">\n\t\t<ion-label>{{ logLevel }}</ion-label>\n\t</ion-segment-button>\n</ion-segment>"
|
|
243
|
+
args: [{ selector: "ionic-logging-viewer-levels", template: "<ion-segment [(ngModel)]=\"selectedLevel\" (ionChange)=\"onLevelChanged()\">\n\t<ion-segment-button *ngFor=\"let logLevel of logLevels\" [value]=\"logLevel\">\n\t\t<ion-label>{{ logLevel }}</ion-label>\n\t</ion-segment-button>\n</ion-segment>" }]
|
|
244
244
|
}], ctorParameters: function () { return [{ type: i1.LoggingService }, { type: LoggingViewerFilterService }]; } });
|
|
245
245
|
|
|
246
246
|
/**
|
|
@@ -299,9 +299,9 @@ class LoggingViewerSearchComponent {
|
|
|
299
299
|
this.logger.exit(methodName);
|
|
300
300
|
}
|
|
301
301
|
}
|
|
302
|
-
LoggingViewerSearchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
303
|
-
LoggingViewerSearchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
304
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
302
|
+
LoggingViewerSearchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoggingViewerSearchComponent, deps: [{ token: i1.LoggingService }, { token: LoggingViewerFilterService }], target: i0.ɵɵFactoryTarget.Component });
|
|
303
|
+
LoggingViewerSearchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: LoggingViewerSearchComponent, selector: "ionic-logging-viewer-search", inputs: { placeholder: "placeholder" }, ngImport: i0, template: "<ion-searchbar placeholder=\"{{placeholder}}\" [(ngModel)]=\"search\" (ionChange)=\"onSearchChanged()\"></ion-searchbar>", styles: ["ion-searchbar{padding-top:3px;padding-bottom:0}\n"], dependencies: [{ kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i1$1.IonSearchbar, selector: "ion-searchbar", inputs: ["animated", "autocomplete", "autocorrect", "cancelButtonIcon", "cancelButtonText", "clearIcon", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "mode", "placeholder", "searchIcon", "showCancelButton", "showClearButton", "spellcheck", "type", "value"] }, { kind: "directive", type: i1$1.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }] });
|
|
304
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoggingViewerSearchComponent, decorators: [{
|
|
305
305
|
type: Component,
|
|
306
306
|
args: [{ selector: "ionic-logging-viewer-search", template: "<ion-searchbar placeholder=\"{{placeholder}}\" [(ngModel)]=\"search\" (ionChange)=\"onSearchChanged()\"></ion-searchbar>", styles: ["ion-searchbar{padding-top:3px;padding-bottom:0}\n"] }]
|
|
307
307
|
}], ctorParameters: function () { return [{ type: i1.LoggingService }, { type: LoggingViewerFilterService }]; }, propDecorators: { placeholder: [{
|
|
@@ -428,9 +428,9 @@ class LoggingViewerModalComponent {
|
|
|
428
428
|
}
|
|
429
429
|
LoggingViewerModalComponent.languageEn = "en";
|
|
430
430
|
LoggingViewerModalComponent.languageDe = "de";
|
|
431
|
-
LoggingViewerModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
432
|
-
LoggingViewerModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
433
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
431
|
+
LoggingViewerModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoggingViewerModalComponent, deps: [{ token: i1$1.Platform }, { token: i1$1.AlertController }, { token: i1$1.ModalController }, { token: i1.LoggingService }], target: i0.ɵɵFactoryTarget.Component });
|
|
432
|
+
LoggingViewerModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: LoggingViewerModalComponent, selector: "ionic-logging-viewer-modal", inputs: { language: "language", translation: "translation", localStorageKeys: "localStorageKeys", allowClearLogs: "allowClearLogs" }, ngImport: i0, template: "<ion-header>\n\t<ion-toolbar color=primary>\n\t\t<ion-title>{{ getTranslation().title }}</ion-title>\n\t\t<ion-buttons slot=\"start\">\n\t\t\t<ion-button *ngIf=\"!isAndroid\" (click)=\"onClose()\">\n\t\t\t\t{{ getTranslation().cancel }}\n\t\t\t</ion-button>\n\t\t\t<ion-button *ngIf=\"isAndroid\" icon-only (click)=\"onClose()\">\n\t\t\t\t<ion-icon name=\"md-close\"></ion-icon>\n\t\t\t</ion-button>\n\t\t</ion-buttons>\n\t</ion-toolbar>\n\t<ion-toolbar>\n\t\t<ionic-logging-viewer-search [placeholder]=\"getTranslation().searchPlaceholder\"></ionic-logging-viewer-search>\n\t\t<ion-buttons slot=\"end\" *ngIf=\"allowClearLogs !== false\" class=\"clearLogs\">\n\t\t\t<ion-button (click)=\"onClearLogs()\">\n\t\t\t\t<ion-icon name=\"trash-outline\"></ion-icon>\n\t\t\t</ion-button>\n\t\t</ion-buttons>\n\t</ion-toolbar>\n\t<ion-toolbar>\n\t\t<ionic-logging-viewer-levels></ionic-logging-viewer-levels>\n\t</ion-toolbar>\n</ion-header>\n<ion-content>\n\t<ionic-logging-viewer [localStorageKeys]=\"localStorageKeys\"></ionic-logging-viewer>\n</ion-content>", styles: ["ionic-logging-viewer-levels{width:100%;padding-left:12px;padding-right:12px}.clearLogs{padding-top:3px}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1$1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1$1.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i1$1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1$1.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i1$1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1$1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i1$1.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: LoggingViewerComponent, selector: "ionic-logging-viewer", inputs: ["localStorageKeys"] }, { kind: "component", type: LoggingViewerSearchComponent, selector: "ionic-logging-viewer-search", inputs: ["placeholder"] }, { kind: "component", type: LoggingViewerLevelsComponent, selector: "ionic-logging-viewer-levels" }] });
|
|
433
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoggingViewerModalComponent, decorators: [{
|
|
434
434
|
type: Component,
|
|
435
435
|
args: [{ selector: "ionic-logging-viewer-modal", template: "<ion-header>\n\t<ion-toolbar color=primary>\n\t\t<ion-title>{{ getTranslation().title }}</ion-title>\n\t\t<ion-buttons slot=\"start\">\n\t\t\t<ion-button *ngIf=\"!isAndroid\" (click)=\"onClose()\">\n\t\t\t\t{{ getTranslation().cancel }}\n\t\t\t</ion-button>\n\t\t\t<ion-button *ngIf=\"isAndroid\" icon-only (click)=\"onClose()\">\n\t\t\t\t<ion-icon name=\"md-close\"></ion-icon>\n\t\t\t</ion-button>\n\t\t</ion-buttons>\n\t</ion-toolbar>\n\t<ion-toolbar>\n\t\t<ionic-logging-viewer-search [placeholder]=\"getTranslation().searchPlaceholder\"></ionic-logging-viewer-search>\n\t\t<ion-buttons slot=\"end\" *ngIf=\"allowClearLogs !== false\" class=\"clearLogs\">\n\t\t\t<ion-button (click)=\"onClearLogs()\">\n\t\t\t\t<ion-icon name=\"trash-outline\"></ion-icon>\n\t\t\t</ion-button>\n\t\t</ion-buttons>\n\t</ion-toolbar>\n\t<ion-toolbar>\n\t\t<ionic-logging-viewer-levels></ionic-logging-viewer-levels>\n\t</ion-toolbar>\n</ion-header>\n<ion-content>\n\t<ionic-logging-viewer [localStorageKeys]=\"localStorageKeys\"></ionic-logging-viewer>\n</ion-content>", styles: ["ionic-logging-viewer-levels{width:100%;padding-left:12px;padding-right:12px}.clearLogs{padding-top:3px}\n"] }]
|
|
436
436
|
}], ctorParameters: function () { return [{ type: i1$1.Platform }, { type: i1$1.AlertController }, { type: i1$1.ModalController }, { type: i1.LoggingService }]; }, propDecorators: { language: [{
|
|
@@ -445,8 +445,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImpor
|
|
|
445
445
|
|
|
446
446
|
class LoggingViewerModule {
|
|
447
447
|
}
|
|
448
|
-
LoggingViewerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
449
|
-
LoggingViewerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "
|
|
448
|
+
LoggingViewerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoggingViewerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
449
|
+
LoggingViewerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.0", ngImport: i0, type: LoggingViewerModule, declarations: [LoggingViewerComponent,
|
|
450
450
|
LoggingViewerSearchComponent,
|
|
451
451
|
LoggingViewerLevelsComponent,
|
|
452
452
|
LoggingViewerModalComponent], imports: [CommonModule,
|
|
@@ -455,14 +455,12 @@ LoggingViewerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", ver
|
|
|
455
455
|
LoggingViewerSearchComponent,
|
|
456
456
|
LoggingViewerLevelsComponent,
|
|
457
457
|
LoggingViewerModalComponent] });
|
|
458
|
-
LoggingViewerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
458
|
+
LoggingViewerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoggingViewerModule, providers: [
|
|
459
459
|
LoggingViewerFilterService
|
|
460
|
-
], imports: [
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
]] });
|
|
465
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: LoggingViewerModule, decorators: [{
|
|
460
|
+
], imports: [CommonModule,
|
|
461
|
+
FormsModule,
|
|
462
|
+
IonicModule] });
|
|
463
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoggingViewerModule, decorators: [{
|
|
466
464
|
type: NgModule,
|
|
467
465
|
args: [{
|
|
468
466
|
imports: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ionic-logging-viewer.mjs","sources":["../../../projects/ionic-logging-viewer/src/lib/logging-viewer-filter.service.ts","../../../projects/ionic-logging-viewer/src/lib/logging-viewer/logging-viewer.component.ts","../../../projects/ionic-logging-viewer/src/lib/logging-viewer/logging-viewer.component.html","../../../projects/ionic-logging-viewer/src/lib/logging-viewer-levels/logging-viewer-levels.component.ts","../../../projects/ionic-logging-viewer/src/lib/logging-viewer-levels/logging-viewer-levels.component.html","../../../projects/ionic-logging-viewer/src/lib/logging-viewer-search/logging-viewer-search.component.ts","../../../projects/ionic-logging-viewer/src/lib/logging-viewer-search/logging-viewer-search.component.html","../../../projects/ionic-logging-viewer/src/lib/logging-viewer-modal/logging-viewer-modal.component.ts","../../../projects/ionic-logging-viewer/src/lib/logging-viewer-modal/logging-viewer-modal.component.html","../../../projects/ionic-logging-viewer/src/lib/logging-viewer.module.ts","../../../projects/ionic-logging-viewer/src/public_api.ts","../../../projects/ionic-logging-viewer/src/ionic-logging-viewer.ts"],"sourcesContent":["import { EventEmitter, Injectable } from \"@angular/core\";\n\nimport { Logger, LoggingService } from \"ionic-logging-service\";\n\n/**\n * Service for storing filter settings for logging viewer.\n */\n@Injectable()\nexport class LoggingViewerFilterService {\n\n\t/**\n\t * Event triggered when the filter was changed.\n\t */\n\tpublic filterChanged: EventEmitter<void>;\n\n\tprivate logger: Logger;\n\tprivate levelValue: string;\n\tprivate searchValue: string;\n\n\t/**\n\t * Creates a new instance of the service.\n\t *\n\t * @param loggingService needed for internal logging.\n\t */\n\tconstructor(\n\t\tloggingService: LoggingService) {\n\n\t\tthis.logger = loggingService.getLogger(\"Ionic.Logging.Viewer.Filter.Service\");\n\t\tconst methodName = \"ctor\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.levelValue = \"DEBUG\";\n\t\tthis.searchValue = \"\";\n\t\tthis.filterChanged = new EventEmitter<void>();\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Gets the current log level.\n\t *\n\t * @return log level\n\t */\n\tpublic get level(): string {\n\t\treturn this.levelValue;\n\t}\n\n\t/**\n\t * Sets the new log level and emits a filterChanged event.\n\t *\n\t * @param value new slog level\n\t */\n\tpublic set level(value: string) {\n\t\tthis.levelValue = value;\n\t\tthis.filterChanged.emit();\n\t}\n\n\t/**\n\t * Gets the current search value.\n\t *\n\t * @return search value\n\t */\n\t// eslint-disable-next-line @typescript-eslint/member-ordering\n\tpublic get search(): string {\n\t\treturn this.searchValue;\n\t}\n\n\t/**\n\t * Sets the new search value and emits a filterChanged event.\n\t *\n\t * @param value new search value\n\t */\n\tpublic set search(value: string) {\n\t\tthis.searchValue = value;\n\t\tthis.filterChanged.emit();\n\t}\n}\n","import { Component, OnDestroy, OnInit, Input } from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\n\nimport { Logger, LoggingService, LogLevelConverter, LogMessage } from \"ionic-logging-service\";\n\nimport { LoggingViewerFilterService } from \"../logging-viewer-filter.service\";\n\n/**\n * Component for displaying the current logs.\n *\n * The component can be embedded in any web page using:\n *\n * <ionic-logging-viewer></ionic-logging-viewer>\n */\n@Component({\n\tselector: \"ionic-logging-viewer\",\n\ttemplateUrl: \"./logging-viewer.component.html\",\n\tstyleUrls: [\"./logging-viewer.component.scss\"]\n})\nexport class LoggingViewerComponent implements OnInit, OnDestroy {\n\n\t/**\n\t * Comma-separated list of localStorageKeys. If set, the logs get loaded from localStorage instead of memory.\n\t */\n\t@Input()\n\tpublic localStorageKeys: string;\n\n\t/**\n\t * Log messages which fulfill the filter condition.\n\t */\n\tpublic logMessagesForDisplay: LogMessage[];\n\n\tprivate logger: Logger;\n\tprivate logMessages: LogMessage[];\n\tprivate logMessagesChangedSubscription: Subscription;\n\tprivate filterChangedSubscription: Subscription;\n\n\t/**\n\t * Creates a new instance of the component.\n\t */\n\tconstructor(\n\t\tprivate loggingService: LoggingService,\n\t\tprivate loggingViewerFilterService: LoggingViewerFilterService) {\n\n\t\tthis.logger = loggingService.getLogger(\"Ionic.Logging.Viewer.Component\");\n\t\tconst methodName = \"ctor\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Initialize the component.\n\t *\n\t * This is done by reading the filter data from [LoggingViewerFilterService](LoggingViewerFilterService.html)\n\t * and the log messages from [LoggingService](../../../ionic-logging-service/typedoc/index.html).\n\t * If the localStorageKeys property is set, the messages are read from local storage.\n\t */\n\tpublic ngOnInit(): void {\n\t\tconst methodName = \"ngOnInit\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.loadLogMessages();\n\t\tthis.filterLogMessages();\n\n\t\t// subscribe to loggingService.logMessagesChanged event, to refresh, when new message is logged\n\t\tthis.logMessagesChangedSubscription = this.loggingService.logMessagesChanged.subscribe(async () => {\n\t\t\tthis.loadLogMessages();\n\t\t\tthis.filterLogMessages();\n\t\t});\n\n\t\t// subscribe to loggingViewerFilterService.filterChanged event, to refresh, when filter is modified\n\t\tthis.filterChangedSubscription = this.loggingViewerFilterService.filterChanged.subscribe(() => {\n\t\t\tthis.filterLogMessages();\n\t\t});\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Clean up.\n\t */\n\tpublic ngOnDestroy(): void {\n\t\tconst methodName = \"ngOnDestroy\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.logMessagesChangedSubscription.unsubscribe();\n\t\tthis.filterChangedSubscription.unsubscribe();\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Filter the log messages.\n\t */\n\tpublic filterLogMessages(): void {\n\t\tthis.logMessagesForDisplay = this.logMessages.filter(\n\t\t\t(message) => this.filterLogMessagesByLevel(message) && this.filterLogMessagesBySearch(message));\n\t}\n\n\t/**\n\t * Check if the log message's level fulfills the level condition.\n\t *\n\t * @param message the log message to check\n\t * @returns true if check was successful\n\t */\n\tpublic filterLogMessagesByLevel(message: LogMessage): boolean {\n\t\tconst levelValue = this.loggingViewerFilterService.level;\n\t\treturn LogLevelConverter.levelFromString(message.level) >= LogLevelConverter.levelFromString(levelValue);\n\t}\n\n\t/**\n\t * Check if the log message fulfills the search condition.\n\t *\n\t * The search value gets searched in:\n\t * - logger name\n\t * - method name\n\t * - message\n\t *\n\t * @param message the log message to check\n\t * @returns true if check was successful\n\t */\n\tpublic filterLogMessagesBySearch(message: LogMessage): boolean {\n\t\tconst searchValue = new RegExp(this.loggingViewerFilterService.search, \"i\");\n\t\treturn message.logger.search(searchValue) >= 0 ||\n\t\t\tmessage.methodName.search(searchValue) >= 0 ||\n\t\t\tmessage.message.join(\"|\").search(searchValue) >= 0;\n\t}\n\n\t/**\n\t * Load the current log messages.\n\t * For unit test purposes mainly.\n\t */\n\tpublic loadLogMessages(): void {\n\t\tif (this.localStorageKeys) {\n\t\t\tthis.logMessages = [];\n\t\t\tfor (const localStorageKey of this.localStorageKeys.split(\",\")) {\n\t\t\t\tthis.logMessages = this.logMessages.concat(this.loggingService.getLogMessagesFromLocalStorage(localStorageKey));\n\t\t\t}\n\t\t\tthis.logMessages = this.logMessages.sort((a, b) => a.timeStamp.getTime() - b.timeStamp.getTime());\n\t\t} else {\n\t\t\tthis.logMessages = this.loggingService.getLogMessages();\n\t\t}\n\t}\n}\n","<ion-list>\n\t<ion-item *ngFor=\"let logMessage of logMessagesForDisplay\">\n\t\t<ion-label>\n\t\t\t<p>{{ logMessage.timeStamp | date:'dd.MM.yyyy HH:mm:ss' }} {{ logMessage.level }}</p>\n\t\t\t<p>{{ logMessage.logger }}</p>\n\t\t\t<p>\n\t\t\t\t{{ logMessage.methodName }}\n\t\t\t\t<span *ngFor=\"let messagePart of logMessage.message\"> {{ messagePart }} </span>\n\t\t\t</p>\n\t\t</ion-label>\n\t</ion-item>\n</ion-list>","import { Component, OnDestroy, OnInit } from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\n\nimport { Logger, LoggingService } from \"ionic-logging-service\";\n\nimport { LoggingViewerFilterService } from \"../logging-viewer-filter.service\";\n\n/**\n * Component for displaying the log levels for filtering the current logs.\n *\n * The component can be embedded in any web page using:\n *\n * <ionic-logging-viewer-levels></ionic-logging-viewer-levels>\n */\n@Component({\n\tselector: \"ionic-logging-viewer-levels\",\n\ttemplateUrl: \"./logging-viewer-levels.component.html\",\n\tstyleUrls: [\"./logging-viewer-levels.component.scss\"]\n})\nexport class LoggingViewerLevelsComponent implements OnInit, OnDestroy {\n\n\t/**\n\t * Log levels used for filtering: DEBUG, INFO, WARN, ERROR\n\t */\n\tpublic logLevels: string[];\n\n\t/**\n\t * Selected level.\n\t */\n\tpublic selectedLevel: string;\n\n\tprivate logger: Logger;\n\tprivate filterChangedSubscription: Subscription;\n\n\t/**\n\t * Creates a new instance of the component.\n\t */\n\tconstructor(\n\t\tloggingService: LoggingService,\n\t\tprivate loggingViewerFilterService: LoggingViewerFilterService) {\n\n\t\tthis.logger = loggingService.getLogger(\"Ionic.Logging.Viewer.Levels.Component\");\n\t\tconst methodName = \"ctor\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.logLevels = [];\n\t\tthis.logLevels.push(\n\t\t\t\"DEBUG\",\n\t\t\t\"INFO\",\n\t\t\t\"WARN\",\n\t\t\t\"ERROR\",\n\t\t);\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Initialize the component.\n\t *\n\t * This is done by reading the filter data from [LoggingViewerFilterService](LoggingViewerFilterService.html).\n\t */\n\tpublic ngOnInit(): void {\n\t\tconst methodName = \"ngOnInit\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.selectedLevel = this.loggingViewerFilterService.level;\n\n\t\t// subscribe to loggingViewerFilterService.filterChanged event, to refresh,\n\t\t// when someone else modifies the level\n\t\tthis.filterChangedSubscription = this.loggingViewerFilterService.filterChanged.subscribe(() => {\n\t\t\tthis.selectedLevel = this.loggingViewerFilterService.level;\n\t\t});\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Clean up.\n\t */\n\tpublic ngOnDestroy(): void {\n\t\tconst methodName = \"ngOnDestroy\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.filterChangedSubscription.unsubscribe();\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Callback when the level was changed in the UI.\n\t */\n\tpublic onLevelChanged(): void {\n\t\tconst methodName = \"onLevelChanged\";\n\t\tthis.logger.entry(methodName, this.selectedLevel);\n\n\t\tthis.loggingViewerFilterService.level = this.selectedLevel;\n\n\t\tthis.logger.exit(methodName);\n\t}\n}\n","<ion-segment [(ngModel)]=\"selectedLevel\" (ionChange)=\"onLevelChanged()\">\n\t<ion-segment-button *ngFor=\"let logLevel of logLevels\" [value]=\"logLevel\">\n\t\t<ion-label>{{ logLevel }}</ion-label>\n\t</ion-segment-button>\n</ion-segment>","import { Component, OnInit, OnDestroy, Input } from \"@angular/core\";\n\nimport { Subscription } from \"rxjs\";\n\nimport { LoggingService, Logger } from \"ionic-logging-service\";\n\nimport { LoggingViewerFilterService } from \"../logging-viewer-filter.service\";\n\n/**\n * Component for displaying the search bar for filtering the current logs.\n *\n * The component can be embedded in any web page using:\n *\n * <ionic-logging-viewer-search placeholder=\"Search\"></ionic-logging-viewer-search>\n */\n@Component({\n\tselector: \"ionic-logging-viewer-search\",\n\ttemplateUrl: \"./logging-viewer-search.component.html\",\n\tstyleUrls: [\"./logging-viewer-search.component.scss\"]\n})\nexport class LoggingViewerSearchComponent implements OnInit, OnDestroy {\n\n\t/**\n\t * Placeholder to be shown in the empty search bar.\n\t */\n\t@Input()\n\tpublic placeholder: string;\n\n\t/**\n\t * Current search value.\n\t */\n\tpublic search: string;\n\n\tprivate logger: Logger;\n\tprivate filterChangedSubscription: Subscription;\n\n\t/**\n\t * Creates a new instance of the component.\n\t */\n\tconstructor(\n\t\tloggingService: LoggingService,\n\t\tprivate loggingViewerFilterService: LoggingViewerFilterService) {\n\n\t\tthis.logger = loggingService.getLogger(\"Ionic.Logging.Viewer.Search.Component\");\n\t\tconst methodName = \"ctor\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Initialize the component.\n\t *\n\t * This is done by reading the filter data from [LoggingViewerFilterService](LoggingViewerFilterService.html).\n\t */\n\tpublic ngOnInit(): void {\n\t\tconst methodName = \"ngOnInit\";\n\t\tthis.logger.entry(methodName);\n\n\t\tif (!this.placeholder) {\n\t\t\tthis.placeholder = \"Search\";\n\t\t}\n\t\tthis.search = this.loggingViewerFilterService.search;\n\n\t\t// subscribe to loggingViewerFilterService.filterChanged event, to refresh,\n\t\t// when someone else modifies the search value\n\t\tthis.filterChangedSubscription = this.loggingViewerFilterService.filterChanged.subscribe(() => {\n\t\t\tthis.search = this.loggingViewerFilterService.search;\n\t\t});\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Clean up.\n\t */\n\tpublic ngOnDestroy(): void {\n\t\tconst methodName = \"ngOnDestroy\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.filterChangedSubscription.unsubscribe();\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Callback when the search value was changed in the UI.\n\t */\n\tpublic onSearchChanged(): void {\n\t\tconst methodName = \"onSearchChanged\";\n\t\tthis.logger.entry(methodName, this.search);\n\n\t\tthis.loggingViewerFilterService.search = this.search;\n\n\t\tthis.logger.exit(methodName);\n\t}\n}\n","<ion-searchbar placeholder=\"{{placeholder}}\" [(ngModel)]=\"search\" (ionChange)=\"onSearchChanged()\"></ion-searchbar>","import { Component, OnInit, Input } from \"@angular/core\";\n\nimport { ModalController, Platform, AlertController } from \"@ionic/angular\";\n\nimport { Logger, LoggingService } from \"ionic-logging-service\";\n\nimport { LoggingViewerTranslation } from \"../logging-viewer-translation.model\";\n\n/**\n * Ionic modal containing [LoggingViewerComponent](LoggingViewerComponent.html),\n * [LoggingViewerLevelsComponent](LoggingViewerLevelsComponent.html) and\n * [LoggingViewerSearchComponent](LoggingViewerSearchComponent.html).\n */\n@Component({\n\tselector: \"ionic-logging-viewer-modal\",\n\ttemplateUrl: \"./logging-viewer-modal.component.html\",\n\tstyleUrls: [\"./logging-viewer-modal.component.scss\"]\n})\nexport class LoggingViewerModalComponent implements OnInit {\n\n\tprivate static languageEn = \"en\";\n\tprivate static languageDe = \"de\";\n\n\t/**\n\t * Language to be used for the modal.\n\t * Currently supported: en, de\n\t */\n\t@Input()\n\tpublic language: string;\n\n\t/**\n\t * Translation to be used for the modal.\n\t * If specified, the language is ignored.\n\t */\n\t@Input()\n\tpublic translation: LoggingViewerTranslation;\n\n\t/**\n\t * Comma-separated list of localStorageKeys. If set, the logs get loaded from localStorage instead of memory.\n\t */\n\t@Input()\n\tpublic localStorageKeys: string;\n\n\t/**\n\t * Flag showing a delete button, which removes all existing log messages.\n\t */\n\t@Input()\n\tpublic allowClearLogs: boolean;\n\n\t/**\n\t * Flag controlling which close button will be shown.\n\t */\n\tpublic isAndroid: boolean;\n\n\tprivate logger: Logger;\n\n\tprivate translations: { [language: string]: LoggingViewerTranslation };\n\n\t/**\n\t * Creates a new instance of the component.\n\t */\n\tconstructor(\n\t\tplatform: Platform,\n\t\tprivate alertController: AlertController,\n\t\tprivate modalController: ModalController,\n\t\tprivate loggingService: LoggingService) {\n\n\t\tthis.logger = loggingService.getLogger(\"Ionic.Logging.Viewer.Modal.Component\");\n\t\tconst methodName = \"ctor\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.isAndroid = platform.is(\"android\");\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Initializes the LoggingViewerModalComponent.\n\t * It configures the supported translations.\n\t */\n\tpublic ngOnInit(): void {\n\t\t// prepare translations\n\t\tthis.translations = {};\n\t\tthis.translations[LoggingViewerModalComponent.languageEn] = {\n\t\t\tcancel: \"Cancel\",\n\t\t\tconfirmDelete: \"Delete all log messages?\",\n\t\t\tok: \"Ok\",\n\t\t\tsearchPlaceholder: \"Search\",\n\t\t\ttitle: \"Logging\",\n\t\t};\n\t\tthis.translations[LoggingViewerModalComponent.languageDe] = {\n\t\t\tcancel: \"Abbrechen\",\n\t\t\tconfirmDelete: \"Alle Logs löschen?\",\n\t\t\tok: \"Ok\",\n\t\t\tsearchPlaceholder: \"Suchen\",\n\t\t\ttitle: \"Logging\",\n\t\t};\n\t}\n\n\t/**\n\t * Eventhandler called by Ionic when the modal is opened.\n\t */\n\tpublic ionViewDidEnter(): void {\n\t\tconst methodName = \"ionViewDidEnter\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Eventhandler called when the cancel button is clicked.\n\t */\n\tpublic async onClose(): Promise<void> {\n\t\tconst methodName = \"onClose\";\n\t\tthis.logger.entry(methodName);\n\n\t\tawait this.modalController.dismiss();\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Eventhandler called when the clear button is clicked.\n\t */\n\tpublic async onClearLogs(): Promise<void> {\n\t\tconst methodName = \"onClearLogs\";\n\t\tthis.logger.entry(methodName);\n\n\t\tconst alert = await this.alertController.create({\n\t\t\theader: this.getTranslation().confirmDelete,\n\t\t\tbuttons: [\n\t\t\t\t{\n\t\t\t\t\ttext: this.getTranslation().cancel,\n\t\t\t\t\trole: \"cancel\",\n\t\t\t\t\tcssClass: \"secondary\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttext: this.getTranslation().ok,\n\t\t\t\t\thandler: () => {\n\t\t\t\t\t\tthis.clearLogs();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t]\n\t\t});\n\t\tawait alert.present();\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Clear logs.\n\t */\n\tpublic clearLogs(): void {\n\t\tif (this.localStorageKeys) {\n\t\t\tfor (const localStorageKey of this.localStorageKeys.split(\",\")) {\n\t\t\t\tthis.loggingService.removeLogMessagesFromLocalStorage(localStorageKey);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.loggingService.removeLogMessages();\n\t\t}\n\t}\n\n\t/**\n\t * Helper method returning the current translation:\n\t * - the property translation if defined\n\t * - the translation according property language if valid\n\t * - English translation, otherwise\n\t */\n\tpublic getTranslation(): LoggingViewerTranslation {\n\t\tif (typeof this.translation !== \"undefined\") {\n\t\t\treturn this.translation;\n\t\t} else if (typeof this.language !== \"undefined\" && typeof this.translations[this.language] === \"object\") {\n\t\t\treturn this.translations[this.language];\n\t\t} else {\n\t\t\treturn this.translations[LoggingViewerModalComponent.languageEn];\n\t\t}\n\t}\n}\n","<ion-header>\n\t<ion-toolbar color=primary>\n\t\t<ion-title>{{ getTranslation().title }}</ion-title>\n\t\t<ion-buttons slot=\"start\">\n\t\t\t<ion-button *ngIf=\"!isAndroid\" (click)=\"onClose()\">\n\t\t\t\t{{ getTranslation().cancel }}\n\t\t\t</ion-button>\n\t\t\t<ion-button *ngIf=\"isAndroid\" icon-only (click)=\"onClose()\">\n\t\t\t\t<ion-icon name=\"md-close\"></ion-icon>\n\t\t\t</ion-button>\n\t\t</ion-buttons>\n\t</ion-toolbar>\n\t<ion-toolbar>\n\t\t<ionic-logging-viewer-search [placeholder]=\"getTranslation().searchPlaceholder\"></ionic-logging-viewer-search>\n\t\t<ion-buttons slot=\"end\" *ngIf=\"allowClearLogs !== false\" class=\"clearLogs\">\n\t\t\t<ion-button (click)=\"onClearLogs()\">\n\t\t\t\t<ion-icon name=\"trash-outline\"></ion-icon>\n\t\t\t</ion-button>\n\t\t</ion-buttons>\n\t</ion-toolbar>\n\t<ion-toolbar>\n\t\t<ionic-logging-viewer-levels></ionic-logging-viewer-levels>\n\t</ion-toolbar>\n</ion-header>\n<ion-content>\n\t<ionic-logging-viewer [localStorageKeys]=\"localStorageKeys\"></ionic-logging-viewer>\n</ion-content>","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule } from \"@angular/forms\";\n\nimport { IonicModule } from \"@ionic/angular\";\n\nimport { LoggingViewerComponent } from \"./logging-viewer/logging-viewer.component\";\nimport { LoggingViewerFilterService } from \"./logging-viewer-filter.service\";\nimport { LoggingViewerLevelsComponent } from \"./logging-viewer-levels/logging-viewer-levels.component\";\nimport { LoggingViewerSearchComponent } from \"./logging-viewer-search/logging-viewer-search.component\";\nimport { LoggingViewerModalComponent } from \"./logging-viewer-modal/logging-viewer-modal.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n IonicModule\n ],\n declarations: [\n LoggingViewerComponent,\n LoggingViewerSearchComponent,\n LoggingViewerLevelsComponent,\n LoggingViewerModalComponent\n ],\n exports: [\n LoggingViewerComponent,\n LoggingViewerSearchComponent,\n LoggingViewerLevelsComponent,\n LoggingViewerModalComponent\n ],\n providers: [\n LoggingViewerFilterService\n ]\n})\nexport class LoggingViewerModule { }\n","/*\n * Public API Surface of ionic-logging-viewer\n */\n\nexport * from \"./lib/logging-viewer.module\";\nexport * from \"./lib/logging-viewer/logging-viewer.component\";\nexport * from \"./lib/logging-viewer-levels/logging-viewer-levels.component\";\nexport * from \"./lib/logging-viewer-search/logging-viewer-search.component\";\nexport * from \"./lib/logging-viewer-modal/logging-viewer-modal.component\";\nexport * from \"./lib/logging-viewer-modal/logging-viewer-modal-properties.model\";\nexport * from \"./lib/logging-viewer-translation.model\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ionic-logging-viewer.mjs","sources":["../../../projects/ionic-logging-viewer/src/lib/logging-viewer-filter.service.ts","../../../projects/ionic-logging-viewer/src/lib/logging-viewer/logging-viewer.component.ts","../../../projects/ionic-logging-viewer/src/lib/logging-viewer/logging-viewer.component.html","../../../projects/ionic-logging-viewer/src/lib/logging-viewer-levels/logging-viewer-levels.component.ts","../../../projects/ionic-logging-viewer/src/lib/logging-viewer-levels/logging-viewer-levels.component.html","../../../projects/ionic-logging-viewer/src/lib/logging-viewer-search/logging-viewer-search.component.ts","../../../projects/ionic-logging-viewer/src/lib/logging-viewer-search/logging-viewer-search.component.html","../../../projects/ionic-logging-viewer/src/lib/logging-viewer-modal/logging-viewer-modal.component.ts","../../../projects/ionic-logging-viewer/src/lib/logging-viewer-modal/logging-viewer-modal.component.html","../../../projects/ionic-logging-viewer/src/lib/logging-viewer.module.ts","../../../projects/ionic-logging-viewer/src/public_api.ts","../../../projects/ionic-logging-viewer/src/ionic-logging-viewer.ts"],"sourcesContent":["import { EventEmitter, Injectable } from \"@angular/core\";\n\nimport { Logger, LoggingService } from \"ionic-logging-service\";\n\n/**\n * Service for storing filter settings for logging viewer.\n */\n@Injectable()\nexport class LoggingViewerFilterService {\n\n\t/**\n\t * Event triggered when the filter was changed.\n\t */\n\tpublic filterChanged: EventEmitter<void>;\n\n\tprivate logger: Logger;\n\tprivate levelValue: string;\n\tprivate searchValue: string;\n\n\t/**\n\t * Creates a new instance of the service.\n\t *\n\t * @param loggingService needed for internal logging.\n\t */\n\tconstructor(\n\t\tloggingService: LoggingService) {\n\n\t\tthis.logger = loggingService.getLogger(\"Ionic.Logging.Viewer.Filter.Service\");\n\t\tconst methodName = \"ctor\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.levelValue = \"DEBUG\";\n\t\tthis.searchValue = \"\";\n\t\tthis.filterChanged = new EventEmitter<void>();\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Gets the current log level.\n\t *\n\t * @return log level\n\t */\n\tpublic get level(): string {\n\t\treturn this.levelValue;\n\t}\n\n\t/**\n\t * Sets the new log level and emits a filterChanged event.\n\t *\n\t * @param value new slog level\n\t */\n\tpublic set level(value: string) {\n\t\tthis.levelValue = value;\n\t\tthis.filterChanged.emit();\n\t}\n\n\t/**\n\t * Gets the current search value.\n\t *\n\t * @return search value\n\t */\n\t// eslint-disable-next-line @typescript-eslint/member-ordering\n\tpublic get search(): string {\n\t\treturn this.searchValue;\n\t}\n\n\t/**\n\t * Sets the new search value and emits a filterChanged event.\n\t *\n\t * @param value new search value\n\t */\n\tpublic set search(value: string) {\n\t\tthis.searchValue = value;\n\t\tthis.filterChanged.emit();\n\t}\n}\n","import { Component, OnDestroy, OnInit, Input } from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\n\nimport { Logger, LoggingService, LogLevelConverter, LogMessage } from \"ionic-logging-service\";\n\nimport { LoggingViewerFilterService } from \"../logging-viewer-filter.service\";\n\n/**\n * Component for displaying the current logs.\n *\n * The component can be embedded in any web page using:\n *\n * <ionic-logging-viewer></ionic-logging-viewer>\n */\n@Component({\n\tselector: \"ionic-logging-viewer\",\n\ttemplateUrl: \"./logging-viewer.component.html\",\n\tstyleUrls: [\"./logging-viewer.component.scss\"]\n})\nexport class LoggingViewerComponent implements OnInit, OnDestroy {\n\n\t/**\n\t * Comma-separated list of localStorageKeys. If set, the logs get loaded from localStorage instead of memory.\n\t */\n\t@Input()\n\tpublic localStorageKeys: string;\n\n\t/**\n\t * Log messages which fulfill the filter condition.\n\t */\n\tpublic logMessagesForDisplay: LogMessage[];\n\n\tprivate logger: Logger;\n\tprivate logMessages: LogMessage[];\n\tprivate logMessagesChangedSubscription: Subscription;\n\tprivate filterChangedSubscription: Subscription;\n\n\t/**\n\t * Creates a new instance of the component.\n\t */\n\tconstructor(\n\t\tprivate loggingService: LoggingService,\n\t\tprivate loggingViewerFilterService: LoggingViewerFilterService) {\n\n\t\tthis.logger = loggingService.getLogger(\"Ionic.Logging.Viewer.Component\");\n\t\tconst methodName = \"ctor\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Initialize the component.\n\t *\n\t * This is done by reading the filter data from [LoggingViewerFilterService](LoggingViewerFilterService.html)\n\t * and the log messages from [LoggingService](../../../ionic-logging-service/typedoc/index.html).\n\t * If the localStorageKeys property is set, the messages are read from local storage.\n\t */\n\tpublic ngOnInit(): void {\n\t\tconst methodName = \"ngOnInit\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.loadLogMessages();\n\t\tthis.filterLogMessages();\n\n\t\t// subscribe to loggingService.logMessagesChanged event, to refresh, when new message is logged\n\t\tthis.logMessagesChangedSubscription = this.loggingService.logMessagesChanged.subscribe(async () => {\n\t\t\tthis.loadLogMessages();\n\t\t\tthis.filterLogMessages();\n\t\t});\n\n\t\t// subscribe to loggingViewerFilterService.filterChanged event, to refresh, when filter is modified\n\t\tthis.filterChangedSubscription = this.loggingViewerFilterService.filterChanged.subscribe(() => {\n\t\t\tthis.filterLogMessages();\n\t\t});\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Clean up.\n\t */\n\tpublic ngOnDestroy(): void {\n\t\tconst methodName = \"ngOnDestroy\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.logMessagesChangedSubscription.unsubscribe();\n\t\tthis.filterChangedSubscription.unsubscribe();\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Filter the log messages.\n\t */\n\tpublic filterLogMessages(): void {\n\t\tthis.logMessagesForDisplay = this.logMessages.filter(\n\t\t\t(message) => this.filterLogMessagesByLevel(message) && this.filterLogMessagesBySearch(message));\n\t}\n\n\t/**\n\t * Check if the log message's level fulfills the level condition.\n\t *\n\t * @param message the log message to check\n\t * @returns true if check was successful\n\t */\n\tpublic filterLogMessagesByLevel(message: LogMessage): boolean {\n\t\tconst levelValue = this.loggingViewerFilterService.level;\n\t\treturn LogLevelConverter.levelFromString(message.level) >= LogLevelConverter.levelFromString(levelValue);\n\t}\n\n\t/**\n\t * Check if the log message fulfills the search condition.\n\t *\n\t * The search value gets searched in:\n\t * - logger name\n\t * - method name\n\t * - message\n\t *\n\t * @param message the log message to check\n\t * @returns true if check was successful\n\t */\n\tpublic filterLogMessagesBySearch(message: LogMessage): boolean {\n\t\tconst searchValue = new RegExp(this.loggingViewerFilterService.search, \"i\");\n\t\treturn message.logger.search(searchValue) >= 0 ||\n\t\t\tmessage.methodName.search(searchValue) >= 0 ||\n\t\t\tmessage.message.join(\"|\").search(searchValue) >= 0;\n\t}\n\n\t/**\n\t * Load the current log messages.\n\t * For unit test purposes mainly.\n\t */\n\tpublic loadLogMessages(): void {\n\t\tif (this.localStorageKeys) {\n\t\t\tthis.logMessages = [];\n\t\t\tfor (const localStorageKey of this.localStorageKeys.split(\",\")) {\n\t\t\t\tthis.logMessages = this.logMessages.concat(this.loggingService.getLogMessagesFromLocalStorage(localStorageKey));\n\t\t\t}\n\t\t\tthis.logMessages = this.logMessages.sort((a, b) => a.timeStamp.getTime() - b.timeStamp.getTime());\n\t\t} else {\n\t\t\tthis.logMessages = this.loggingService.getLogMessages();\n\t\t}\n\t}\n}\n","<ion-list>\n\t<ion-item *ngFor=\"let logMessage of logMessagesForDisplay\">\n\t\t<ion-label>\n\t\t\t<p>{{ logMessage.timeStamp | date:'dd.MM.yyyy HH:mm:ss' }} {{ logMessage.level }}</p>\n\t\t\t<p>{{ logMessage.logger }}</p>\n\t\t\t<p>\n\t\t\t\t{{ logMessage.methodName }}\n\t\t\t\t<span *ngFor=\"let messagePart of logMessage.message\"> {{ messagePart }} </span>\n\t\t\t</p>\n\t\t</ion-label>\n\t</ion-item>\n</ion-list>","import { Component, OnDestroy, OnInit } from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\n\nimport { Logger, LoggingService } from \"ionic-logging-service\";\n\nimport { LoggingViewerFilterService } from \"../logging-viewer-filter.service\";\n\n/**\n * Component for displaying the log levels for filtering the current logs.\n *\n * The component can be embedded in any web page using:\n *\n * <ionic-logging-viewer-levels></ionic-logging-viewer-levels>\n */\n@Component({\n\tselector: \"ionic-logging-viewer-levels\",\n\ttemplateUrl: \"./logging-viewer-levels.component.html\",\n\tstyleUrls: [\"./logging-viewer-levels.component.scss\"]\n})\nexport class LoggingViewerLevelsComponent implements OnInit, OnDestroy {\n\n\t/**\n\t * Log levels used for filtering: DEBUG, INFO, WARN, ERROR\n\t */\n\tpublic logLevels: string[];\n\n\t/**\n\t * Selected level.\n\t */\n\tpublic selectedLevel: string;\n\n\tprivate logger: Logger;\n\tprivate filterChangedSubscription: Subscription;\n\n\t/**\n\t * Creates a new instance of the component.\n\t */\n\tconstructor(\n\t\tloggingService: LoggingService,\n\t\tprivate loggingViewerFilterService: LoggingViewerFilterService) {\n\n\t\tthis.logger = loggingService.getLogger(\"Ionic.Logging.Viewer.Levels.Component\");\n\t\tconst methodName = \"ctor\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.logLevels = [];\n\t\tthis.logLevels.push(\n\t\t\t\"DEBUG\",\n\t\t\t\"INFO\",\n\t\t\t\"WARN\",\n\t\t\t\"ERROR\",\n\t\t);\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Initialize the component.\n\t *\n\t * This is done by reading the filter data from [LoggingViewerFilterService](LoggingViewerFilterService.html).\n\t */\n\tpublic ngOnInit(): void {\n\t\tconst methodName = \"ngOnInit\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.selectedLevel = this.loggingViewerFilterService.level;\n\n\t\t// subscribe to loggingViewerFilterService.filterChanged event, to refresh,\n\t\t// when someone else modifies the level\n\t\tthis.filterChangedSubscription = this.loggingViewerFilterService.filterChanged.subscribe(() => {\n\t\t\tthis.selectedLevel = this.loggingViewerFilterService.level;\n\t\t});\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Clean up.\n\t */\n\tpublic ngOnDestroy(): void {\n\t\tconst methodName = \"ngOnDestroy\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.filterChangedSubscription.unsubscribe();\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Callback when the level was changed in the UI.\n\t */\n\tpublic onLevelChanged(): void {\n\t\tconst methodName = \"onLevelChanged\";\n\t\tthis.logger.entry(methodName, this.selectedLevel);\n\n\t\tthis.loggingViewerFilterService.level = this.selectedLevel;\n\n\t\tthis.logger.exit(methodName);\n\t}\n}\n","<ion-segment [(ngModel)]=\"selectedLevel\" (ionChange)=\"onLevelChanged()\">\n\t<ion-segment-button *ngFor=\"let logLevel of logLevels\" [value]=\"logLevel\">\n\t\t<ion-label>{{ logLevel }}</ion-label>\n\t</ion-segment-button>\n</ion-segment>","import { Component, OnInit, OnDestroy, Input } from \"@angular/core\";\n\nimport { Subscription } from \"rxjs\";\n\nimport { LoggingService, Logger } from \"ionic-logging-service\";\n\nimport { LoggingViewerFilterService } from \"../logging-viewer-filter.service\";\n\n/**\n * Component for displaying the search bar for filtering the current logs.\n *\n * The component can be embedded in any web page using:\n *\n * <ionic-logging-viewer-search placeholder=\"Search\"></ionic-logging-viewer-search>\n */\n@Component({\n\tselector: \"ionic-logging-viewer-search\",\n\ttemplateUrl: \"./logging-viewer-search.component.html\",\n\tstyleUrls: [\"./logging-viewer-search.component.scss\"]\n})\nexport class LoggingViewerSearchComponent implements OnInit, OnDestroy {\n\n\t/**\n\t * Placeholder to be shown in the empty search bar.\n\t */\n\t@Input()\n\tpublic placeholder: string;\n\n\t/**\n\t * Current search value.\n\t */\n\tpublic search: string;\n\n\tprivate logger: Logger;\n\tprivate filterChangedSubscription: Subscription;\n\n\t/**\n\t * Creates a new instance of the component.\n\t */\n\tconstructor(\n\t\tloggingService: LoggingService,\n\t\tprivate loggingViewerFilterService: LoggingViewerFilterService) {\n\n\t\tthis.logger = loggingService.getLogger(\"Ionic.Logging.Viewer.Search.Component\");\n\t\tconst methodName = \"ctor\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Initialize the component.\n\t *\n\t * This is done by reading the filter data from [LoggingViewerFilterService](LoggingViewerFilterService.html).\n\t */\n\tpublic ngOnInit(): void {\n\t\tconst methodName = \"ngOnInit\";\n\t\tthis.logger.entry(methodName);\n\n\t\tif (!this.placeholder) {\n\t\t\tthis.placeholder = \"Search\";\n\t\t}\n\t\tthis.search = this.loggingViewerFilterService.search;\n\n\t\t// subscribe to loggingViewerFilterService.filterChanged event, to refresh,\n\t\t// when someone else modifies the search value\n\t\tthis.filterChangedSubscription = this.loggingViewerFilterService.filterChanged.subscribe(() => {\n\t\t\tthis.search = this.loggingViewerFilterService.search;\n\t\t});\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Clean up.\n\t */\n\tpublic ngOnDestroy(): void {\n\t\tconst methodName = \"ngOnDestroy\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.filterChangedSubscription.unsubscribe();\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Callback when the search value was changed in the UI.\n\t */\n\tpublic onSearchChanged(): void {\n\t\tconst methodName = \"onSearchChanged\";\n\t\tthis.logger.entry(methodName, this.search);\n\n\t\tthis.loggingViewerFilterService.search = this.search;\n\n\t\tthis.logger.exit(methodName);\n\t}\n}\n","<ion-searchbar placeholder=\"{{placeholder}}\" [(ngModel)]=\"search\" (ionChange)=\"onSearchChanged()\"></ion-searchbar>","import { Component, OnInit, Input } from \"@angular/core\";\n\nimport { ModalController, Platform, AlertController } from \"@ionic/angular\";\n\nimport { Logger, LoggingService } from \"ionic-logging-service\";\n\nimport { LoggingViewerTranslation } from \"../logging-viewer-translation.model\";\n\n/**\n * Ionic modal containing [LoggingViewerComponent](LoggingViewerComponent.html),\n * [LoggingViewerLevelsComponent](LoggingViewerLevelsComponent.html) and\n * [LoggingViewerSearchComponent](LoggingViewerSearchComponent.html).\n */\n@Component({\n\tselector: \"ionic-logging-viewer-modal\",\n\ttemplateUrl: \"./logging-viewer-modal.component.html\",\n\tstyleUrls: [\"./logging-viewer-modal.component.scss\"]\n})\nexport class LoggingViewerModalComponent implements OnInit {\n\n\tprivate static languageEn = \"en\";\n\tprivate static languageDe = \"de\";\n\n\t/**\n\t * Language to be used for the modal.\n\t * Currently supported: en, de\n\t */\n\t@Input()\n\tpublic language: string;\n\n\t/**\n\t * Translation to be used for the modal.\n\t * If specified, the language is ignored.\n\t */\n\t@Input()\n\tpublic translation: LoggingViewerTranslation;\n\n\t/**\n\t * Comma-separated list of localStorageKeys. If set, the logs get loaded from localStorage instead of memory.\n\t */\n\t@Input()\n\tpublic localStorageKeys: string;\n\n\t/**\n\t * Flag showing a delete button, which removes all existing log messages.\n\t */\n\t@Input()\n\tpublic allowClearLogs: boolean;\n\n\t/**\n\t * Flag controlling which close button will be shown.\n\t */\n\tpublic isAndroid: boolean;\n\n\tprivate logger: Logger;\n\n\tprivate translations: { [language: string]: LoggingViewerTranslation };\n\n\t/**\n\t * Creates a new instance of the component.\n\t */\n\tconstructor(\n\t\tplatform: Platform,\n\t\tprivate alertController: AlertController,\n\t\tprivate modalController: ModalController,\n\t\tprivate loggingService: LoggingService) {\n\n\t\tthis.logger = loggingService.getLogger(\"Ionic.Logging.Viewer.Modal.Component\");\n\t\tconst methodName = \"ctor\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.isAndroid = platform.is(\"android\");\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Initializes the LoggingViewerModalComponent.\n\t * It configures the supported translations.\n\t */\n\tpublic ngOnInit(): void {\n\t\t// prepare translations\n\t\tthis.translations = {};\n\t\tthis.translations[LoggingViewerModalComponent.languageEn] = {\n\t\t\tcancel: \"Cancel\",\n\t\t\tconfirmDelete: \"Delete all log messages?\",\n\t\t\tok: \"Ok\",\n\t\t\tsearchPlaceholder: \"Search\",\n\t\t\ttitle: \"Logging\",\n\t\t};\n\t\tthis.translations[LoggingViewerModalComponent.languageDe] = {\n\t\t\tcancel: \"Abbrechen\",\n\t\t\tconfirmDelete: \"Alle Logs löschen?\",\n\t\t\tok: \"Ok\",\n\t\t\tsearchPlaceholder: \"Suchen\",\n\t\t\ttitle: \"Logging\",\n\t\t};\n\t}\n\n\t/**\n\t * Eventhandler called by Ionic when the modal is opened.\n\t */\n\tpublic ionViewDidEnter(): void {\n\t\tconst methodName = \"ionViewDidEnter\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Eventhandler called when the cancel button is clicked.\n\t */\n\tpublic async onClose(): Promise<void> {\n\t\tconst methodName = \"onClose\";\n\t\tthis.logger.entry(methodName);\n\n\t\tawait this.modalController.dismiss();\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Eventhandler called when the clear button is clicked.\n\t */\n\tpublic async onClearLogs(): Promise<void> {\n\t\tconst methodName = \"onClearLogs\";\n\t\tthis.logger.entry(methodName);\n\n\t\tconst alert = await this.alertController.create({\n\t\t\theader: this.getTranslation().confirmDelete,\n\t\t\tbuttons: [\n\t\t\t\t{\n\t\t\t\t\ttext: this.getTranslation().cancel,\n\t\t\t\t\trole: \"cancel\",\n\t\t\t\t\tcssClass: \"secondary\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttext: this.getTranslation().ok,\n\t\t\t\t\thandler: () => {\n\t\t\t\t\t\tthis.clearLogs();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t]\n\t\t});\n\t\tawait alert.present();\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Clear logs.\n\t */\n\tpublic clearLogs(): void {\n\t\tif (this.localStorageKeys) {\n\t\t\tfor (const localStorageKey of this.localStorageKeys.split(\",\")) {\n\t\t\t\tthis.loggingService.removeLogMessagesFromLocalStorage(localStorageKey);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.loggingService.removeLogMessages();\n\t\t}\n\t}\n\n\t/**\n\t * Helper method returning the current translation:\n\t * - the property translation if defined\n\t * - the translation according property language if valid\n\t * - English translation, otherwise\n\t */\n\tpublic getTranslation(): LoggingViewerTranslation {\n\t\tif (typeof this.translation !== \"undefined\") {\n\t\t\treturn this.translation;\n\t\t} else if (typeof this.language !== \"undefined\" && typeof this.translations[this.language] === \"object\") {\n\t\t\treturn this.translations[this.language];\n\t\t} else {\n\t\t\treturn this.translations[LoggingViewerModalComponent.languageEn];\n\t\t}\n\t}\n}\n","<ion-header>\n\t<ion-toolbar color=primary>\n\t\t<ion-title>{{ getTranslation().title }}</ion-title>\n\t\t<ion-buttons slot=\"start\">\n\t\t\t<ion-button *ngIf=\"!isAndroid\" (click)=\"onClose()\">\n\t\t\t\t{{ getTranslation().cancel }}\n\t\t\t</ion-button>\n\t\t\t<ion-button *ngIf=\"isAndroid\" icon-only (click)=\"onClose()\">\n\t\t\t\t<ion-icon name=\"md-close\"></ion-icon>\n\t\t\t</ion-button>\n\t\t</ion-buttons>\n\t</ion-toolbar>\n\t<ion-toolbar>\n\t\t<ionic-logging-viewer-search [placeholder]=\"getTranslation().searchPlaceholder\"></ionic-logging-viewer-search>\n\t\t<ion-buttons slot=\"end\" *ngIf=\"allowClearLogs !== false\" class=\"clearLogs\">\n\t\t\t<ion-button (click)=\"onClearLogs()\">\n\t\t\t\t<ion-icon name=\"trash-outline\"></ion-icon>\n\t\t\t</ion-button>\n\t\t</ion-buttons>\n\t</ion-toolbar>\n\t<ion-toolbar>\n\t\t<ionic-logging-viewer-levels></ionic-logging-viewer-levels>\n\t</ion-toolbar>\n</ion-header>\n<ion-content>\n\t<ionic-logging-viewer [localStorageKeys]=\"localStorageKeys\"></ionic-logging-viewer>\n</ion-content>","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule } from \"@angular/forms\";\n\nimport { IonicModule } from \"@ionic/angular\";\n\nimport { LoggingViewerComponent } from \"./logging-viewer/logging-viewer.component\";\nimport { LoggingViewerFilterService } from \"./logging-viewer-filter.service\";\nimport { LoggingViewerLevelsComponent } from \"./logging-viewer-levels/logging-viewer-levels.component\";\nimport { LoggingViewerSearchComponent } from \"./logging-viewer-search/logging-viewer-search.component\";\nimport { LoggingViewerModalComponent } from \"./logging-viewer-modal/logging-viewer-modal.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n IonicModule\n ],\n declarations: [\n LoggingViewerComponent,\n LoggingViewerSearchComponent,\n LoggingViewerLevelsComponent,\n LoggingViewerModalComponent\n ],\n exports: [\n LoggingViewerComponent,\n LoggingViewerSearchComponent,\n LoggingViewerLevelsComponent,\n LoggingViewerModalComponent\n ],\n providers: [\n LoggingViewerFilterService\n ]\n})\nexport class LoggingViewerModule { }\n","/*\n * Public API Surface of ionic-logging-viewer\n */\n\nexport * from \"./lib/logging-viewer.module\";\nexport * from \"./lib/logging-viewer/logging-viewer.component\";\nexport * from \"./lib/logging-viewer-levels/logging-viewer-levels.component\";\nexport * from \"./lib/logging-viewer-search/logging-viewer-search.component\";\nexport * from \"./lib/logging-viewer-modal/logging-viewer-modal.component\";\nexport * from \"./lib/logging-viewer-modal/logging-viewer-modal-properties.model\";\nexport * from \"./lib/logging-viewer-translation.model\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i2.LoggingViewerFilterService","i4","i5","i3","i1","i2","i4.LoggingViewerComponent","i5.LoggingViewerSearchComponent","i6.LoggingViewerLevelsComponent"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { EventEmitter, Injectable, Component, Input, NgModule } from '@angular/core';
|
|
3
|
-
import * as
|
|
3
|
+
import * as i3 from '@angular/common';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
|
-
import * as i4
|
|
5
|
+
import * as i4 from '@angular/forms';
|
|
6
6
|
import { FormsModule } from '@angular/forms';
|
|
7
7
|
import * as i1$1 from '@ionic/angular';
|
|
8
8
|
import { IonicModule } from '@ionic/angular';
|
|
@@ -63,9 +63,9 @@ class LoggingViewerFilterService {
|
|
|
63
63
|
this.filterChanged.emit();
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
|
-
LoggingViewerFilterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
67
|
-
LoggingViewerFilterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
68
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
66
|
+
LoggingViewerFilterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoggingViewerFilterService, deps: [{ token: i1.LoggingService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
67
|
+
LoggingViewerFilterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoggingViewerFilterService });
|
|
68
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoggingViewerFilterService, decorators: [{
|
|
69
69
|
type: Injectable
|
|
70
70
|
}], ctorParameters: function () { return [{ type: i1.LoggingService }]; } });
|
|
71
71
|
|
|
@@ -171,11 +171,11 @@ class LoggingViewerComponent {
|
|
|
171
171
|
}
|
|
172
172
|
}
|
|
173
173
|
}
|
|
174
|
-
LoggingViewerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
175
|
-
LoggingViewerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
176
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
174
|
+
LoggingViewerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoggingViewerComponent, deps: [{ token: i1.LoggingService }, { token: LoggingViewerFilterService }], target: i0.ɵɵFactoryTarget.Component });
|
|
175
|
+
LoggingViewerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: LoggingViewerComponent, selector: "ionic-logging-viewer", inputs: { localStorageKeys: "localStorageKeys" }, ngImport: i0, template: "<ion-list>\n\t<ion-item *ngFor=\"let logMessage of logMessagesForDisplay\">\n\t\t<ion-label>\n\t\t\t<p>{{ logMessage.timeStamp | date:'dd.MM.yyyy HH:mm:ss' }} {{ logMessage.level }}</p>\n\t\t\t<p>{{ logMessage.logger }}</p>\n\t\t\t<p>\n\t\t\t\t{{ logMessage.methodName }}\n\t\t\t\t<span *ngFor=\"let messagePart of logMessage.message\"> {{ messagePart }} </span>\n\t\t\t</p>\n\t\t</ion-label>\n\t</ion-item>\n</ion-list>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i1$1.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i1$1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i1$1.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }] });
|
|
176
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoggingViewerComponent, decorators: [{
|
|
177
177
|
type: Component,
|
|
178
|
-
args: [{ selector: "ionic-logging-viewer", template: "<ion-list>\n\t<ion-item *ngFor=\"let logMessage of logMessagesForDisplay\">\n\t\t<ion-label>\n\t\t\t<p>{{ logMessage.timeStamp | date:'dd.MM.yyyy HH:mm:ss' }} {{ logMessage.level }}</p>\n\t\t\t<p>{{ logMessage.logger }}</p>\n\t\t\t<p>\n\t\t\t\t{{ logMessage.methodName }}\n\t\t\t\t<span *ngFor=\"let messagePart of logMessage.message\"> {{ messagePart }} </span>\n\t\t\t</p>\n\t\t</ion-label>\n\t</ion-item>\n</ion-list>"
|
|
178
|
+
args: [{ selector: "ionic-logging-viewer", template: "<ion-list>\n\t<ion-item *ngFor=\"let logMessage of logMessagesForDisplay\">\n\t\t<ion-label>\n\t\t\t<p>{{ logMessage.timeStamp | date:'dd.MM.yyyy HH:mm:ss' }} {{ logMessage.level }}</p>\n\t\t\t<p>{{ logMessage.logger }}</p>\n\t\t\t<p>\n\t\t\t\t{{ logMessage.methodName }}\n\t\t\t\t<span *ngFor=\"let messagePart of logMessage.message\"> {{ messagePart }} </span>\n\t\t\t</p>\n\t\t</ion-label>\n\t</ion-item>\n</ion-list>" }]
|
|
179
179
|
}], ctorParameters: function () { return [{ type: i1.LoggingService }, { type: LoggingViewerFilterService }]; }, propDecorators: { localStorageKeys: [{
|
|
180
180
|
type: Input
|
|
181
181
|
}] } });
|
|
@@ -235,11 +235,11 @@ class LoggingViewerLevelsComponent {
|
|
|
235
235
|
this.logger.exit(methodName);
|
|
236
236
|
}
|
|
237
237
|
}
|
|
238
|
-
LoggingViewerLevelsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
239
|
-
LoggingViewerLevelsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
240
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
238
|
+
LoggingViewerLevelsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoggingViewerLevelsComponent, deps: [{ token: i1.LoggingService }, { token: LoggingViewerFilterService }], target: i0.ɵɵFactoryTarget.Component });
|
|
239
|
+
LoggingViewerLevelsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: LoggingViewerLevelsComponent, selector: "ionic-logging-viewer-levels", ngImport: i0, template: "<ion-segment [(ngModel)]=\"selectedLevel\" (ionChange)=\"onLevelChanged()\">\n\t<ion-segment-button *ngFor=\"let logLevel of logLevels\" [value]=\"logLevel\">\n\t\t<ion-label>{{ logLevel }}</ion-label>\n\t</ion-segment-button>\n</ion-segment>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i1$1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i1$1.IonSegment, selector: "ion-segment", inputs: ["color", "disabled", "mode", "scrollable", "selectOnFocus", "swipeGesture", "value"] }, { kind: "component", type: i1$1.IonSegmentButton, selector: "ion-segment-button", inputs: ["disabled", "layout", "mode", "type", "value"] }, { kind: "directive", type: i1$1.SelectValueAccessor, selector: "ion-range, ion-select, ion-radio-group, ion-segment, ion-datetime" }] });
|
|
240
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoggingViewerLevelsComponent, decorators: [{
|
|
241
241
|
type: Component,
|
|
242
|
-
args: [{ selector: "ionic-logging-viewer-levels", template: "<ion-segment [(ngModel)]=\"selectedLevel\" (ionChange)=\"onLevelChanged()\">\n\t<ion-segment-button *ngFor=\"let logLevel of logLevels\" [value]=\"logLevel\">\n\t\t<ion-label>{{ logLevel }}</ion-label>\n\t</ion-segment-button>\n</ion-segment>"
|
|
242
|
+
args: [{ selector: "ionic-logging-viewer-levels", template: "<ion-segment [(ngModel)]=\"selectedLevel\" (ionChange)=\"onLevelChanged()\">\n\t<ion-segment-button *ngFor=\"let logLevel of logLevels\" [value]=\"logLevel\">\n\t\t<ion-label>{{ logLevel }}</ion-label>\n\t</ion-segment-button>\n</ion-segment>" }]
|
|
243
243
|
}], ctorParameters: function () { return [{ type: i1.LoggingService }, { type: LoggingViewerFilterService }]; } });
|
|
244
244
|
|
|
245
245
|
/**
|
|
@@ -298,9 +298,9 @@ class LoggingViewerSearchComponent {
|
|
|
298
298
|
this.logger.exit(methodName);
|
|
299
299
|
}
|
|
300
300
|
}
|
|
301
|
-
LoggingViewerSearchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
302
|
-
LoggingViewerSearchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
303
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
301
|
+
LoggingViewerSearchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoggingViewerSearchComponent, deps: [{ token: i1.LoggingService }, { token: LoggingViewerFilterService }], target: i0.ɵɵFactoryTarget.Component });
|
|
302
|
+
LoggingViewerSearchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: LoggingViewerSearchComponent, selector: "ionic-logging-viewer-search", inputs: { placeholder: "placeholder" }, ngImport: i0, template: "<ion-searchbar placeholder=\"{{placeholder}}\" [(ngModel)]=\"search\" (ionChange)=\"onSearchChanged()\"></ion-searchbar>", styles: ["ion-searchbar{padding-top:3px;padding-bottom:0}\n"], dependencies: [{ kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i1$1.IonSearchbar, selector: "ion-searchbar", inputs: ["animated", "autocomplete", "autocorrect", "cancelButtonIcon", "cancelButtonText", "clearIcon", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "mode", "placeholder", "searchIcon", "showCancelButton", "showClearButton", "spellcheck", "type", "value"] }, { kind: "directive", type: i1$1.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }] });
|
|
303
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoggingViewerSearchComponent, decorators: [{
|
|
304
304
|
type: Component,
|
|
305
305
|
args: [{ selector: "ionic-logging-viewer-search", template: "<ion-searchbar placeholder=\"{{placeholder}}\" [(ngModel)]=\"search\" (ionChange)=\"onSearchChanged()\"></ion-searchbar>", styles: ["ion-searchbar{padding-top:3px;padding-bottom:0}\n"] }]
|
|
306
306
|
}], ctorParameters: function () { return [{ type: i1.LoggingService }, { type: LoggingViewerFilterService }]; }, propDecorators: { placeholder: [{
|
|
@@ -423,9 +423,9 @@ class LoggingViewerModalComponent {
|
|
|
423
423
|
}
|
|
424
424
|
LoggingViewerModalComponent.languageEn = "en";
|
|
425
425
|
LoggingViewerModalComponent.languageDe = "de";
|
|
426
|
-
LoggingViewerModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
427
|
-
LoggingViewerModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
428
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
426
|
+
LoggingViewerModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoggingViewerModalComponent, deps: [{ token: i1$1.Platform }, { token: i1$1.AlertController }, { token: i1$1.ModalController }, { token: i1.LoggingService }], target: i0.ɵɵFactoryTarget.Component });
|
|
427
|
+
LoggingViewerModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: LoggingViewerModalComponent, selector: "ionic-logging-viewer-modal", inputs: { language: "language", translation: "translation", localStorageKeys: "localStorageKeys", allowClearLogs: "allowClearLogs" }, ngImport: i0, template: "<ion-header>\n\t<ion-toolbar color=primary>\n\t\t<ion-title>{{ getTranslation().title }}</ion-title>\n\t\t<ion-buttons slot=\"start\">\n\t\t\t<ion-button *ngIf=\"!isAndroid\" (click)=\"onClose()\">\n\t\t\t\t{{ getTranslation().cancel }}\n\t\t\t</ion-button>\n\t\t\t<ion-button *ngIf=\"isAndroid\" icon-only (click)=\"onClose()\">\n\t\t\t\t<ion-icon name=\"md-close\"></ion-icon>\n\t\t\t</ion-button>\n\t\t</ion-buttons>\n\t</ion-toolbar>\n\t<ion-toolbar>\n\t\t<ionic-logging-viewer-search [placeholder]=\"getTranslation().searchPlaceholder\"></ionic-logging-viewer-search>\n\t\t<ion-buttons slot=\"end\" *ngIf=\"allowClearLogs !== false\" class=\"clearLogs\">\n\t\t\t<ion-button (click)=\"onClearLogs()\">\n\t\t\t\t<ion-icon name=\"trash-outline\"></ion-icon>\n\t\t\t</ion-button>\n\t\t</ion-buttons>\n\t</ion-toolbar>\n\t<ion-toolbar>\n\t\t<ionic-logging-viewer-levels></ionic-logging-viewer-levels>\n\t</ion-toolbar>\n</ion-header>\n<ion-content>\n\t<ionic-logging-viewer [localStorageKeys]=\"localStorageKeys\"></ionic-logging-viewer>\n</ion-content>", styles: ["ionic-logging-viewer-levels{width:100%;padding-left:12px;padding-right:12px}.clearLogs{padding-top:3px}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1$1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1$1.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i1$1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1$1.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i1$1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1$1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i1$1.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: LoggingViewerComponent, selector: "ionic-logging-viewer", inputs: ["localStorageKeys"] }, { kind: "component", type: LoggingViewerSearchComponent, selector: "ionic-logging-viewer-search", inputs: ["placeholder"] }, { kind: "component", type: LoggingViewerLevelsComponent, selector: "ionic-logging-viewer-levels" }] });
|
|
428
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoggingViewerModalComponent, decorators: [{
|
|
429
429
|
type: Component,
|
|
430
430
|
args: [{ selector: "ionic-logging-viewer-modal", template: "<ion-header>\n\t<ion-toolbar color=primary>\n\t\t<ion-title>{{ getTranslation().title }}</ion-title>\n\t\t<ion-buttons slot=\"start\">\n\t\t\t<ion-button *ngIf=\"!isAndroid\" (click)=\"onClose()\">\n\t\t\t\t{{ getTranslation().cancel }}\n\t\t\t</ion-button>\n\t\t\t<ion-button *ngIf=\"isAndroid\" icon-only (click)=\"onClose()\">\n\t\t\t\t<ion-icon name=\"md-close\"></ion-icon>\n\t\t\t</ion-button>\n\t\t</ion-buttons>\n\t</ion-toolbar>\n\t<ion-toolbar>\n\t\t<ionic-logging-viewer-search [placeholder]=\"getTranslation().searchPlaceholder\"></ionic-logging-viewer-search>\n\t\t<ion-buttons slot=\"end\" *ngIf=\"allowClearLogs !== false\" class=\"clearLogs\">\n\t\t\t<ion-button (click)=\"onClearLogs()\">\n\t\t\t\t<ion-icon name=\"trash-outline\"></ion-icon>\n\t\t\t</ion-button>\n\t\t</ion-buttons>\n\t</ion-toolbar>\n\t<ion-toolbar>\n\t\t<ionic-logging-viewer-levels></ionic-logging-viewer-levels>\n\t</ion-toolbar>\n</ion-header>\n<ion-content>\n\t<ionic-logging-viewer [localStorageKeys]=\"localStorageKeys\"></ionic-logging-viewer>\n</ion-content>", styles: ["ionic-logging-viewer-levels{width:100%;padding-left:12px;padding-right:12px}.clearLogs{padding-top:3px}\n"] }]
|
|
431
431
|
}], ctorParameters: function () { return [{ type: i1$1.Platform }, { type: i1$1.AlertController }, { type: i1$1.ModalController }, { type: i1.LoggingService }]; }, propDecorators: { language: [{
|
|
@@ -440,8 +440,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImpor
|
|
|
440
440
|
|
|
441
441
|
class LoggingViewerModule {
|
|
442
442
|
}
|
|
443
|
-
LoggingViewerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
444
|
-
LoggingViewerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "
|
|
443
|
+
LoggingViewerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoggingViewerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
444
|
+
LoggingViewerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.0", ngImport: i0, type: LoggingViewerModule, declarations: [LoggingViewerComponent,
|
|
445
445
|
LoggingViewerSearchComponent,
|
|
446
446
|
LoggingViewerLevelsComponent,
|
|
447
447
|
LoggingViewerModalComponent], imports: [CommonModule,
|
|
@@ -450,14 +450,12 @@ LoggingViewerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", ver
|
|
|
450
450
|
LoggingViewerSearchComponent,
|
|
451
451
|
LoggingViewerLevelsComponent,
|
|
452
452
|
LoggingViewerModalComponent] });
|
|
453
|
-
LoggingViewerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
453
|
+
LoggingViewerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoggingViewerModule, providers: [
|
|
454
454
|
LoggingViewerFilterService
|
|
455
|
-
], imports: [
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
]] });
|
|
460
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: LoggingViewerModule, decorators: [{
|
|
455
|
+
], imports: [CommonModule,
|
|
456
|
+
FormsModule,
|
|
457
|
+
IonicModule] });
|
|
458
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LoggingViewerModule, decorators: [{
|
|
461
459
|
type: NgModule,
|
|
462
460
|
args: [{
|
|
463
461
|
imports: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ionic-logging-viewer.mjs","sources":["../../../projects/ionic-logging-viewer/src/lib/logging-viewer-filter.service.ts","../../../projects/ionic-logging-viewer/src/lib/logging-viewer/logging-viewer.component.ts","../../../projects/ionic-logging-viewer/src/lib/logging-viewer/logging-viewer.component.html","../../../projects/ionic-logging-viewer/src/lib/logging-viewer-levels/logging-viewer-levels.component.ts","../../../projects/ionic-logging-viewer/src/lib/logging-viewer-levels/logging-viewer-levels.component.html","../../../projects/ionic-logging-viewer/src/lib/logging-viewer-search/logging-viewer-search.component.ts","../../../projects/ionic-logging-viewer/src/lib/logging-viewer-search/logging-viewer-search.component.html","../../../projects/ionic-logging-viewer/src/lib/logging-viewer-modal/logging-viewer-modal.component.ts","../../../projects/ionic-logging-viewer/src/lib/logging-viewer-modal/logging-viewer-modal.component.html","../../../projects/ionic-logging-viewer/src/lib/logging-viewer.module.ts","../../../projects/ionic-logging-viewer/src/public_api.ts","../../../projects/ionic-logging-viewer/src/ionic-logging-viewer.ts"],"sourcesContent":["import { EventEmitter, Injectable } from \"@angular/core\";\n\nimport { Logger, LoggingService } from \"ionic-logging-service\";\n\n/**\n * Service for storing filter settings for logging viewer.\n */\n@Injectable()\nexport class LoggingViewerFilterService {\n\n\t/**\n\t * Event triggered when the filter was changed.\n\t */\n\tpublic filterChanged: EventEmitter<void>;\n\n\tprivate logger: Logger;\n\tprivate levelValue: string;\n\tprivate searchValue: string;\n\n\t/**\n\t * Creates a new instance of the service.\n\t *\n\t * @param loggingService needed for internal logging.\n\t */\n\tconstructor(\n\t\tloggingService: LoggingService) {\n\n\t\tthis.logger = loggingService.getLogger(\"Ionic.Logging.Viewer.Filter.Service\");\n\t\tconst methodName = \"ctor\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.levelValue = \"DEBUG\";\n\t\tthis.searchValue = \"\";\n\t\tthis.filterChanged = new EventEmitter<void>();\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Gets the current log level.\n\t *\n\t * @return log level\n\t */\n\tpublic get level(): string {\n\t\treturn this.levelValue;\n\t}\n\n\t/**\n\t * Sets the new log level and emits a filterChanged event.\n\t *\n\t * @param value new slog level\n\t */\n\tpublic set level(value: string) {\n\t\tthis.levelValue = value;\n\t\tthis.filterChanged.emit();\n\t}\n\n\t/**\n\t * Gets the current search value.\n\t *\n\t * @return search value\n\t */\n\t// eslint-disable-next-line @typescript-eslint/member-ordering\n\tpublic get search(): string {\n\t\treturn this.searchValue;\n\t}\n\n\t/**\n\t * Sets the new search value and emits a filterChanged event.\n\t *\n\t * @param value new search value\n\t */\n\tpublic set search(value: string) {\n\t\tthis.searchValue = value;\n\t\tthis.filterChanged.emit();\n\t}\n}\n","import { Component, OnDestroy, OnInit, Input } from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\n\nimport { Logger, LoggingService, LogLevelConverter, LogMessage } from \"ionic-logging-service\";\n\nimport { LoggingViewerFilterService } from \"../logging-viewer-filter.service\";\n\n/**\n * Component for displaying the current logs.\n *\n * The component can be embedded in any web page using:\n *\n * <ionic-logging-viewer></ionic-logging-viewer>\n */\n@Component({\n\tselector: \"ionic-logging-viewer\",\n\ttemplateUrl: \"./logging-viewer.component.html\",\n\tstyleUrls: [\"./logging-viewer.component.scss\"]\n})\nexport class LoggingViewerComponent implements OnInit, OnDestroy {\n\n\t/**\n\t * Comma-separated list of localStorageKeys. If set, the logs get loaded from localStorage instead of memory.\n\t */\n\t@Input()\n\tpublic localStorageKeys: string;\n\n\t/**\n\t * Log messages which fulfill the filter condition.\n\t */\n\tpublic logMessagesForDisplay: LogMessage[];\n\n\tprivate logger: Logger;\n\tprivate logMessages: LogMessage[];\n\tprivate logMessagesChangedSubscription: Subscription;\n\tprivate filterChangedSubscription: Subscription;\n\n\t/**\n\t * Creates a new instance of the component.\n\t */\n\tconstructor(\n\t\tprivate loggingService: LoggingService,\n\t\tprivate loggingViewerFilterService: LoggingViewerFilterService) {\n\n\t\tthis.logger = loggingService.getLogger(\"Ionic.Logging.Viewer.Component\");\n\t\tconst methodName = \"ctor\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Initialize the component.\n\t *\n\t * This is done by reading the filter data from [LoggingViewerFilterService](LoggingViewerFilterService.html)\n\t * and the log messages from [LoggingService](../../../ionic-logging-service/typedoc/index.html).\n\t * If the localStorageKeys property is set, the messages are read from local storage.\n\t */\n\tpublic ngOnInit(): void {\n\t\tconst methodName = \"ngOnInit\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.loadLogMessages();\n\t\tthis.filterLogMessages();\n\n\t\t// subscribe to loggingService.logMessagesChanged event, to refresh, when new message is logged\n\t\tthis.logMessagesChangedSubscription = this.loggingService.logMessagesChanged.subscribe(async () => {\n\t\t\tthis.loadLogMessages();\n\t\t\tthis.filterLogMessages();\n\t\t});\n\n\t\t// subscribe to loggingViewerFilterService.filterChanged event, to refresh, when filter is modified\n\t\tthis.filterChangedSubscription = this.loggingViewerFilterService.filterChanged.subscribe(() => {\n\t\t\tthis.filterLogMessages();\n\t\t});\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Clean up.\n\t */\n\tpublic ngOnDestroy(): void {\n\t\tconst methodName = \"ngOnDestroy\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.logMessagesChangedSubscription.unsubscribe();\n\t\tthis.filterChangedSubscription.unsubscribe();\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Filter the log messages.\n\t */\n\tpublic filterLogMessages(): void {\n\t\tthis.logMessagesForDisplay = this.logMessages.filter(\n\t\t\t(message) => this.filterLogMessagesByLevel(message) && this.filterLogMessagesBySearch(message));\n\t}\n\n\t/**\n\t * Check if the log message's level fulfills the level condition.\n\t *\n\t * @param message the log message to check\n\t * @returns true if check was successful\n\t */\n\tpublic filterLogMessagesByLevel(message: LogMessage): boolean {\n\t\tconst levelValue = this.loggingViewerFilterService.level;\n\t\treturn LogLevelConverter.levelFromString(message.level) >= LogLevelConverter.levelFromString(levelValue);\n\t}\n\n\t/**\n\t * Check if the log message fulfills the search condition.\n\t *\n\t * The search value gets searched in:\n\t * - logger name\n\t * - method name\n\t * - message\n\t *\n\t * @param message the log message to check\n\t * @returns true if check was successful\n\t */\n\tpublic filterLogMessagesBySearch(message: LogMessage): boolean {\n\t\tconst searchValue = new RegExp(this.loggingViewerFilterService.search, \"i\");\n\t\treturn message.logger.search(searchValue) >= 0 ||\n\t\t\tmessage.methodName.search(searchValue) >= 0 ||\n\t\t\tmessage.message.join(\"|\").search(searchValue) >= 0;\n\t}\n\n\t/**\n\t * Load the current log messages.\n\t * For unit test purposes mainly.\n\t */\n\tpublic loadLogMessages(): void {\n\t\tif (this.localStorageKeys) {\n\t\t\tthis.logMessages = [];\n\t\t\tfor (const localStorageKey of this.localStorageKeys.split(\",\")) {\n\t\t\t\tthis.logMessages = this.logMessages.concat(this.loggingService.getLogMessagesFromLocalStorage(localStorageKey));\n\t\t\t}\n\t\t\tthis.logMessages = this.logMessages.sort((a, b) => a.timeStamp.getTime() - b.timeStamp.getTime());\n\t\t} else {\n\t\t\tthis.logMessages = this.loggingService.getLogMessages();\n\t\t}\n\t}\n}\n","<ion-list>\n\t<ion-item *ngFor=\"let logMessage of logMessagesForDisplay\">\n\t\t<ion-label>\n\t\t\t<p>{{ logMessage.timeStamp | date:'dd.MM.yyyy HH:mm:ss' }} {{ logMessage.level }}</p>\n\t\t\t<p>{{ logMessage.logger }}</p>\n\t\t\t<p>\n\t\t\t\t{{ logMessage.methodName }}\n\t\t\t\t<span *ngFor=\"let messagePart of logMessage.message\"> {{ messagePart }} </span>\n\t\t\t</p>\n\t\t</ion-label>\n\t</ion-item>\n</ion-list>","import { Component, OnDestroy, OnInit } from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\n\nimport { Logger, LoggingService } from \"ionic-logging-service\";\n\nimport { LoggingViewerFilterService } from \"../logging-viewer-filter.service\";\n\n/**\n * Component for displaying the log levels for filtering the current logs.\n *\n * The component can be embedded in any web page using:\n *\n * <ionic-logging-viewer-levels></ionic-logging-viewer-levels>\n */\n@Component({\n\tselector: \"ionic-logging-viewer-levels\",\n\ttemplateUrl: \"./logging-viewer-levels.component.html\",\n\tstyleUrls: [\"./logging-viewer-levels.component.scss\"]\n})\nexport class LoggingViewerLevelsComponent implements OnInit, OnDestroy {\n\n\t/**\n\t * Log levels used for filtering: DEBUG, INFO, WARN, ERROR\n\t */\n\tpublic logLevels: string[];\n\n\t/**\n\t * Selected level.\n\t */\n\tpublic selectedLevel: string;\n\n\tprivate logger: Logger;\n\tprivate filterChangedSubscription: Subscription;\n\n\t/**\n\t * Creates a new instance of the component.\n\t */\n\tconstructor(\n\t\tloggingService: LoggingService,\n\t\tprivate loggingViewerFilterService: LoggingViewerFilterService) {\n\n\t\tthis.logger = loggingService.getLogger(\"Ionic.Logging.Viewer.Levels.Component\");\n\t\tconst methodName = \"ctor\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.logLevels = [];\n\t\tthis.logLevels.push(\n\t\t\t\"DEBUG\",\n\t\t\t\"INFO\",\n\t\t\t\"WARN\",\n\t\t\t\"ERROR\",\n\t\t);\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Initialize the component.\n\t *\n\t * This is done by reading the filter data from [LoggingViewerFilterService](LoggingViewerFilterService.html).\n\t */\n\tpublic ngOnInit(): void {\n\t\tconst methodName = \"ngOnInit\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.selectedLevel = this.loggingViewerFilterService.level;\n\n\t\t// subscribe to loggingViewerFilterService.filterChanged event, to refresh,\n\t\t// when someone else modifies the level\n\t\tthis.filterChangedSubscription = this.loggingViewerFilterService.filterChanged.subscribe(() => {\n\t\t\tthis.selectedLevel = this.loggingViewerFilterService.level;\n\t\t});\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Clean up.\n\t */\n\tpublic ngOnDestroy(): void {\n\t\tconst methodName = \"ngOnDestroy\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.filterChangedSubscription.unsubscribe();\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Callback when the level was changed in the UI.\n\t */\n\tpublic onLevelChanged(): void {\n\t\tconst methodName = \"onLevelChanged\";\n\t\tthis.logger.entry(methodName, this.selectedLevel);\n\n\t\tthis.loggingViewerFilterService.level = this.selectedLevel;\n\n\t\tthis.logger.exit(methodName);\n\t}\n}\n","<ion-segment [(ngModel)]=\"selectedLevel\" (ionChange)=\"onLevelChanged()\">\n\t<ion-segment-button *ngFor=\"let logLevel of logLevels\" [value]=\"logLevel\">\n\t\t<ion-label>{{ logLevel }}</ion-label>\n\t</ion-segment-button>\n</ion-segment>","import { Component, OnInit, OnDestroy, Input } from \"@angular/core\";\n\nimport { Subscription } from \"rxjs\";\n\nimport { LoggingService, Logger } from \"ionic-logging-service\";\n\nimport { LoggingViewerFilterService } from \"../logging-viewer-filter.service\";\n\n/**\n * Component for displaying the search bar for filtering the current logs.\n *\n * The component can be embedded in any web page using:\n *\n * <ionic-logging-viewer-search placeholder=\"Search\"></ionic-logging-viewer-search>\n */\n@Component({\n\tselector: \"ionic-logging-viewer-search\",\n\ttemplateUrl: \"./logging-viewer-search.component.html\",\n\tstyleUrls: [\"./logging-viewer-search.component.scss\"]\n})\nexport class LoggingViewerSearchComponent implements OnInit, OnDestroy {\n\n\t/**\n\t * Placeholder to be shown in the empty search bar.\n\t */\n\t@Input()\n\tpublic placeholder: string;\n\n\t/**\n\t * Current search value.\n\t */\n\tpublic search: string;\n\n\tprivate logger: Logger;\n\tprivate filterChangedSubscription: Subscription;\n\n\t/**\n\t * Creates a new instance of the component.\n\t */\n\tconstructor(\n\t\tloggingService: LoggingService,\n\t\tprivate loggingViewerFilterService: LoggingViewerFilterService) {\n\n\t\tthis.logger = loggingService.getLogger(\"Ionic.Logging.Viewer.Search.Component\");\n\t\tconst methodName = \"ctor\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Initialize the component.\n\t *\n\t * This is done by reading the filter data from [LoggingViewerFilterService](LoggingViewerFilterService.html).\n\t */\n\tpublic ngOnInit(): void {\n\t\tconst methodName = \"ngOnInit\";\n\t\tthis.logger.entry(methodName);\n\n\t\tif (!this.placeholder) {\n\t\t\tthis.placeholder = \"Search\";\n\t\t}\n\t\tthis.search = this.loggingViewerFilterService.search;\n\n\t\t// subscribe to loggingViewerFilterService.filterChanged event, to refresh,\n\t\t// when someone else modifies the search value\n\t\tthis.filterChangedSubscription = this.loggingViewerFilterService.filterChanged.subscribe(() => {\n\t\t\tthis.search = this.loggingViewerFilterService.search;\n\t\t});\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Clean up.\n\t */\n\tpublic ngOnDestroy(): void {\n\t\tconst methodName = \"ngOnDestroy\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.filterChangedSubscription.unsubscribe();\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Callback when the search value was changed in the UI.\n\t */\n\tpublic onSearchChanged(): void {\n\t\tconst methodName = \"onSearchChanged\";\n\t\tthis.logger.entry(methodName, this.search);\n\n\t\tthis.loggingViewerFilterService.search = this.search;\n\n\t\tthis.logger.exit(methodName);\n\t}\n}\n","<ion-searchbar placeholder=\"{{placeholder}}\" [(ngModel)]=\"search\" (ionChange)=\"onSearchChanged()\"></ion-searchbar>","import { Component, OnInit, Input } from \"@angular/core\";\n\nimport { ModalController, Platform, AlertController } from \"@ionic/angular\";\n\nimport { Logger, LoggingService } from \"ionic-logging-service\";\n\nimport { LoggingViewerTranslation } from \"../logging-viewer-translation.model\";\n\n/**\n * Ionic modal containing [LoggingViewerComponent](LoggingViewerComponent.html),\n * [LoggingViewerLevelsComponent](LoggingViewerLevelsComponent.html) and\n * [LoggingViewerSearchComponent](LoggingViewerSearchComponent.html).\n */\n@Component({\n\tselector: \"ionic-logging-viewer-modal\",\n\ttemplateUrl: \"./logging-viewer-modal.component.html\",\n\tstyleUrls: [\"./logging-viewer-modal.component.scss\"]\n})\nexport class LoggingViewerModalComponent implements OnInit {\n\n\tprivate static languageEn = \"en\";\n\tprivate static languageDe = \"de\";\n\n\t/**\n\t * Language to be used for the modal.\n\t * Currently supported: en, de\n\t */\n\t@Input()\n\tpublic language: string;\n\n\t/**\n\t * Translation to be used for the modal.\n\t * If specified, the language is ignored.\n\t */\n\t@Input()\n\tpublic translation: LoggingViewerTranslation;\n\n\t/**\n\t * Comma-separated list of localStorageKeys. If set, the logs get loaded from localStorage instead of memory.\n\t */\n\t@Input()\n\tpublic localStorageKeys: string;\n\n\t/**\n\t * Flag showing a delete button, which removes all existing log messages.\n\t */\n\t@Input()\n\tpublic allowClearLogs: boolean;\n\n\t/**\n\t * Flag controlling which close button will be shown.\n\t */\n\tpublic isAndroid: boolean;\n\n\tprivate logger: Logger;\n\n\tprivate translations: { [language: string]: LoggingViewerTranslation };\n\n\t/**\n\t * Creates a new instance of the component.\n\t */\n\tconstructor(\n\t\tplatform: Platform,\n\t\tprivate alertController: AlertController,\n\t\tprivate modalController: ModalController,\n\t\tprivate loggingService: LoggingService) {\n\n\t\tthis.logger = loggingService.getLogger(\"Ionic.Logging.Viewer.Modal.Component\");\n\t\tconst methodName = \"ctor\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.isAndroid = platform.is(\"android\");\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Initializes the LoggingViewerModalComponent.\n\t * It configures the supported translations.\n\t */\n\tpublic ngOnInit(): void {\n\t\t// prepare translations\n\t\tthis.translations = {};\n\t\tthis.translations[LoggingViewerModalComponent.languageEn] = {\n\t\t\tcancel: \"Cancel\",\n\t\t\tconfirmDelete: \"Delete all log messages?\",\n\t\t\tok: \"Ok\",\n\t\t\tsearchPlaceholder: \"Search\",\n\t\t\ttitle: \"Logging\",\n\t\t};\n\t\tthis.translations[LoggingViewerModalComponent.languageDe] = {\n\t\t\tcancel: \"Abbrechen\",\n\t\t\tconfirmDelete: \"Alle Logs löschen?\",\n\t\t\tok: \"Ok\",\n\t\t\tsearchPlaceholder: \"Suchen\",\n\t\t\ttitle: \"Logging\",\n\t\t};\n\t}\n\n\t/**\n\t * Eventhandler called by Ionic when the modal is opened.\n\t */\n\tpublic ionViewDidEnter(): void {\n\t\tconst methodName = \"ionViewDidEnter\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Eventhandler called when the cancel button is clicked.\n\t */\n\tpublic async onClose(): Promise<void> {\n\t\tconst methodName = \"onClose\";\n\t\tthis.logger.entry(methodName);\n\n\t\tawait this.modalController.dismiss();\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Eventhandler called when the clear button is clicked.\n\t */\n\tpublic async onClearLogs(): Promise<void> {\n\t\tconst methodName = \"onClearLogs\";\n\t\tthis.logger.entry(methodName);\n\n\t\tconst alert = await this.alertController.create({\n\t\t\theader: this.getTranslation().confirmDelete,\n\t\t\tbuttons: [\n\t\t\t\t{\n\t\t\t\t\ttext: this.getTranslation().cancel,\n\t\t\t\t\trole: \"cancel\",\n\t\t\t\t\tcssClass: \"secondary\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttext: this.getTranslation().ok,\n\t\t\t\t\thandler: () => {\n\t\t\t\t\t\tthis.clearLogs();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t]\n\t\t});\n\t\tawait alert.present();\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Clear logs.\n\t */\n\tpublic clearLogs(): void {\n\t\tif (this.localStorageKeys) {\n\t\t\tfor (const localStorageKey of this.localStorageKeys.split(\",\")) {\n\t\t\t\tthis.loggingService.removeLogMessagesFromLocalStorage(localStorageKey);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.loggingService.removeLogMessages();\n\t\t}\n\t}\n\n\t/**\n\t * Helper method returning the current translation:\n\t * - the property translation if defined\n\t * - the translation according property language if valid\n\t * - English translation, otherwise\n\t */\n\tpublic getTranslation(): LoggingViewerTranslation {\n\t\tif (typeof this.translation !== \"undefined\") {\n\t\t\treturn this.translation;\n\t\t} else if (typeof this.language !== \"undefined\" && typeof this.translations[this.language] === \"object\") {\n\t\t\treturn this.translations[this.language];\n\t\t} else {\n\t\t\treturn this.translations[LoggingViewerModalComponent.languageEn];\n\t\t}\n\t}\n}\n","<ion-header>\n\t<ion-toolbar color=primary>\n\t\t<ion-title>{{ getTranslation().title }}</ion-title>\n\t\t<ion-buttons slot=\"start\">\n\t\t\t<ion-button *ngIf=\"!isAndroid\" (click)=\"onClose()\">\n\t\t\t\t{{ getTranslation().cancel }}\n\t\t\t</ion-button>\n\t\t\t<ion-button *ngIf=\"isAndroid\" icon-only (click)=\"onClose()\">\n\t\t\t\t<ion-icon name=\"md-close\"></ion-icon>\n\t\t\t</ion-button>\n\t\t</ion-buttons>\n\t</ion-toolbar>\n\t<ion-toolbar>\n\t\t<ionic-logging-viewer-search [placeholder]=\"getTranslation().searchPlaceholder\"></ionic-logging-viewer-search>\n\t\t<ion-buttons slot=\"end\" *ngIf=\"allowClearLogs !== false\" class=\"clearLogs\">\n\t\t\t<ion-button (click)=\"onClearLogs()\">\n\t\t\t\t<ion-icon name=\"trash-outline\"></ion-icon>\n\t\t\t</ion-button>\n\t\t</ion-buttons>\n\t</ion-toolbar>\n\t<ion-toolbar>\n\t\t<ionic-logging-viewer-levels></ionic-logging-viewer-levels>\n\t</ion-toolbar>\n</ion-header>\n<ion-content>\n\t<ionic-logging-viewer [localStorageKeys]=\"localStorageKeys\"></ionic-logging-viewer>\n</ion-content>","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule } from \"@angular/forms\";\n\nimport { IonicModule } from \"@ionic/angular\";\n\nimport { LoggingViewerComponent } from \"./logging-viewer/logging-viewer.component\";\nimport { LoggingViewerFilterService } from \"./logging-viewer-filter.service\";\nimport { LoggingViewerLevelsComponent } from \"./logging-viewer-levels/logging-viewer-levels.component\";\nimport { LoggingViewerSearchComponent } from \"./logging-viewer-search/logging-viewer-search.component\";\nimport { LoggingViewerModalComponent } from \"./logging-viewer-modal/logging-viewer-modal.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n IonicModule\n ],\n declarations: [\n LoggingViewerComponent,\n LoggingViewerSearchComponent,\n LoggingViewerLevelsComponent,\n LoggingViewerModalComponent\n ],\n exports: [\n LoggingViewerComponent,\n LoggingViewerSearchComponent,\n LoggingViewerLevelsComponent,\n LoggingViewerModalComponent\n ],\n providers: [\n LoggingViewerFilterService\n ]\n})\nexport class LoggingViewerModule { }\n","/*\n * Public API Surface of ionic-logging-viewer\n */\n\nexport * from \"./lib/logging-viewer.module\";\nexport * from \"./lib/logging-viewer/logging-viewer.component\";\nexport * from \"./lib/logging-viewer-levels/logging-viewer-levels.component\";\nexport * from \"./lib/logging-viewer-search/logging-viewer-search.component\";\nexport * from \"./lib/logging-viewer-modal/logging-viewer-modal.component\";\nexport * from \"./lib/logging-viewer-modal/logging-viewer-modal-properties.model\";\nexport * from \"./lib/logging-viewer-translation.model\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ionic-logging-viewer.mjs","sources":["../../../projects/ionic-logging-viewer/src/lib/logging-viewer-filter.service.ts","../../../projects/ionic-logging-viewer/src/lib/logging-viewer/logging-viewer.component.ts","../../../projects/ionic-logging-viewer/src/lib/logging-viewer/logging-viewer.component.html","../../../projects/ionic-logging-viewer/src/lib/logging-viewer-levels/logging-viewer-levels.component.ts","../../../projects/ionic-logging-viewer/src/lib/logging-viewer-levels/logging-viewer-levels.component.html","../../../projects/ionic-logging-viewer/src/lib/logging-viewer-search/logging-viewer-search.component.ts","../../../projects/ionic-logging-viewer/src/lib/logging-viewer-search/logging-viewer-search.component.html","../../../projects/ionic-logging-viewer/src/lib/logging-viewer-modal/logging-viewer-modal.component.ts","../../../projects/ionic-logging-viewer/src/lib/logging-viewer-modal/logging-viewer-modal.component.html","../../../projects/ionic-logging-viewer/src/lib/logging-viewer.module.ts","../../../projects/ionic-logging-viewer/src/public_api.ts","../../../projects/ionic-logging-viewer/src/ionic-logging-viewer.ts"],"sourcesContent":["import { EventEmitter, Injectable } from \"@angular/core\";\n\nimport { Logger, LoggingService } from \"ionic-logging-service\";\n\n/**\n * Service for storing filter settings for logging viewer.\n */\n@Injectable()\nexport class LoggingViewerFilterService {\n\n\t/**\n\t * Event triggered when the filter was changed.\n\t */\n\tpublic filterChanged: EventEmitter<void>;\n\n\tprivate logger: Logger;\n\tprivate levelValue: string;\n\tprivate searchValue: string;\n\n\t/**\n\t * Creates a new instance of the service.\n\t *\n\t * @param loggingService needed for internal logging.\n\t */\n\tconstructor(\n\t\tloggingService: LoggingService) {\n\n\t\tthis.logger = loggingService.getLogger(\"Ionic.Logging.Viewer.Filter.Service\");\n\t\tconst methodName = \"ctor\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.levelValue = \"DEBUG\";\n\t\tthis.searchValue = \"\";\n\t\tthis.filterChanged = new EventEmitter<void>();\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Gets the current log level.\n\t *\n\t * @return log level\n\t */\n\tpublic get level(): string {\n\t\treturn this.levelValue;\n\t}\n\n\t/**\n\t * Sets the new log level and emits a filterChanged event.\n\t *\n\t * @param value new slog level\n\t */\n\tpublic set level(value: string) {\n\t\tthis.levelValue = value;\n\t\tthis.filterChanged.emit();\n\t}\n\n\t/**\n\t * Gets the current search value.\n\t *\n\t * @return search value\n\t */\n\t// eslint-disable-next-line @typescript-eslint/member-ordering\n\tpublic get search(): string {\n\t\treturn this.searchValue;\n\t}\n\n\t/**\n\t * Sets the new search value and emits a filterChanged event.\n\t *\n\t * @param value new search value\n\t */\n\tpublic set search(value: string) {\n\t\tthis.searchValue = value;\n\t\tthis.filterChanged.emit();\n\t}\n}\n","import { Component, OnDestroy, OnInit, Input } from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\n\nimport { Logger, LoggingService, LogLevelConverter, LogMessage } from \"ionic-logging-service\";\n\nimport { LoggingViewerFilterService } from \"../logging-viewer-filter.service\";\n\n/**\n * Component for displaying the current logs.\n *\n * The component can be embedded in any web page using:\n *\n * <ionic-logging-viewer></ionic-logging-viewer>\n */\n@Component({\n\tselector: \"ionic-logging-viewer\",\n\ttemplateUrl: \"./logging-viewer.component.html\",\n\tstyleUrls: [\"./logging-viewer.component.scss\"]\n})\nexport class LoggingViewerComponent implements OnInit, OnDestroy {\n\n\t/**\n\t * Comma-separated list of localStorageKeys. If set, the logs get loaded from localStorage instead of memory.\n\t */\n\t@Input()\n\tpublic localStorageKeys: string;\n\n\t/**\n\t * Log messages which fulfill the filter condition.\n\t */\n\tpublic logMessagesForDisplay: LogMessage[];\n\n\tprivate logger: Logger;\n\tprivate logMessages: LogMessage[];\n\tprivate logMessagesChangedSubscription: Subscription;\n\tprivate filterChangedSubscription: Subscription;\n\n\t/**\n\t * Creates a new instance of the component.\n\t */\n\tconstructor(\n\t\tprivate loggingService: LoggingService,\n\t\tprivate loggingViewerFilterService: LoggingViewerFilterService) {\n\n\t\tthis.logger = loggingService.getLogger(\"Ionic.Logging.Viewer.Component\");\n\t\tconst methodName = \"ctor\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Initialize the component.\n\t *\n\t * This is done by reading the filter data from [LoggingViewerFilterService](LoggingViewerFilterService.html)\n\t * and the log messages from [LoggingService](../../../ionic-logging-service/typedoc/index.html).\n\t * If the localStorageKeys property is set, the messages are read from local storage.\n\t */\n\tpublic ngOnInit(): void {\n\t\tconst methodName = \"ngOnInit\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.loadLogMessages();\n\t\tthis.filterLogMessages();\n\n\t\t// subscribe to loggingService.logMessagesChanged event, to refresh, when new message is logged\n\t\tthis.logMessagesChangedSubscription = this.loggingService.logMessagesChanged.subscribe(async () => {\n\t\t\tthis.loadLogMessages();\n\t\t\tthis.filterLogMessages();\n\t\t});\n\n\t\t// subscribe to loggingViewerFilterService.filterChanged event, to refresh, when filter is modified\n\t\tthis.filterChangedSubscription = this.loggingViewerFilterService.filterChanged.subscribe(() => {\n\t\t\tthis.filterLogMessages();\n\t\t});\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Clean up.\n\t */\n\tpublic ngOnDestroy(): void {\n\t\tconst methodName = \"ngOnDestroy\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.logMessagesChangedSubscription.unsubscribe();\n\t\tthis.filterChangedSubscription.unsubscribe();\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Filter the log messages.\n\t */\n\tpublic filterLogMessages(): void {\n\t\tthis.logMessagesForDisplay = this.logMessages.filter(\n\t\t\t(message) => this.filterLogMessagesByLevel(message) && this.filterLogMessagesBySearch(message));\n\t}\n\n\t/**\n\t * Check if the log message's level fulfills the level condition.\n\t *\n\t * @param message the log message to check\n\t * @returns true if check was successful\n\t */\n\tpublic filterLogMessagesByLevel(message: LogMessage): boolean {\n\t\tconst levelValue = this.loggingViewerFilterService.level;\n\t\treturn LogLevelConverter.levelFromString(message.level) >= LogLevelConverter.levelFromString(levelValue);\n\t}\n\n\t/**\n\t * Check if the log message fulfills the search condition.\n\t *\n\t * The search value gets searched in:\n\t * - logger name\n\t * - method name\n\t * - message\n\t *\n\t * @param message the log message to check\n\t * @returns true if check was successful\n\t */\n\tpublic filterLogMessagesBySearch(message: LogMessage): boolean {\n\t\tconst searchValue = new RegExp(this.loggingViewerFilterService.search, \"i\");\n\t\treturn message.logger.search(searchValue) >= 0 ||\n\t\t\tmessage.methodName.search(searchValue) >= 0 ||\n\t\t\tmessage.message.join(\"|\").search(searchValue) >= 0;\n\t}\n\n\t/**\n\t * Load the current log messages.\n\t * For unit test purposes mainly.\n\t */\n\tpublic loadLogMessages(): void {\n\t\tif (this.localStorageKeys) {\n\t\t\tthis.logMessages = [];\n\t\t\tfor (const localStorageKey of this.localStorageKeys.split(\",\")) {\n\t\t\t\tthis.logMessages = this.logMessages.concat(this.loggingService.getLogMessagesFromLocalStorage(localStorageKey));\n\t\t\t}\n\t\t\tthis.logMessages = this.logMessages.sort((a, b) => a.timeStamp.getTime() - b.timeStamp.getTime());\n\t\t} else {\n\t\t\tthis.logMessages = this.loggingService.getLogMessages();\n\t\t}\n\t}\n}\n","<ion-list>\n\t<ion-item *ngFor=\"let logMessage of logMessagesForDisplay\">\n\t\t<ion-label>\n\t\t\t<p>{{ logMessage.timeStamp | date:'dd.MM.yyyy HH:mm:ss' }} {{ logMessage.level }}</p>\n\t\t\t<p>{{ logMessage.logger }}</p>\n\t\t\t<p>\n\t\t\t\t{{ logMessage.methodName }}\n\t\t\t\t<span *ngFor=\"let messagePart of logMessage.message\"> {{ messagePart }} </span>\n\t\t\t</p>\n\t\t</ion-label>\n\t</ion-item>\n</ion-list>","import { Component, OnDestroy, OnInit } from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\n\nimport { Logger, LoggingService } from \"ionic-logging-service\";\n\nimport { LoggingViewerFilterService } from \"../logging-viewer-filter.service\";\n\n/**\n * Component for displaying the log levels for filtering the current logs.\n *\n * The component can be embedded in any web page using:\n *\n * <ionic-logging-viewer-levels></ionic-logging-viewer-levels>\n */\n@Component({\n\tselector: \"ionic-logging-viewer-levels\",\n\ttemplateUrl: \"./logging-viewer-levels.component.html\",\n\tstyleUrls: [\"./logging-viewer-levels.component.scss\"]\n})\nexport class LoggingViewerLevelsComponent implements OnInit, OnDestroy {\n\n\t/**\n\t * Log levels used for filtering: DEBUG, INFO, WARN, ERROR\n\t */\n\tpublic logLevels: string[];\n\n\t/**\n\t * Selected level.\n\t */\n\tpublic selectedLevel: string;\n\n\tprivate logger: Logger;\n\tprivate filterChangedSubscription: Subscription;\n\n\t/**\n\t * Creates a new instance of the component.\n\t */\n\tconstructor(\n\t\tloggingService: LoggingService,\n\t\tprivate loggingViewerFilterService: LoggingViewerFilterService) {\n\n\t\tthis.logger = loggingService.getLogger(\"Ionic.Logging.Viewer.Levels.Component\");\n\t\tconst methodName = \"ctor\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.logLevels = [];\n\t\tthis.logLevels.push(\n\t\t\t\"DEBUG\",\n\t\t\t\"INFO\",\n\t\t\t\"WARN\",\n\t\t\t\"ERROR\",\n\t\t);\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Initialize the component.\n\t *\n\t * This is done by reading the filter data from [LoggingViewerFilterService](LoggingViewerFilterService.html).\n\t */\n\tpublic ngOnInit(): void {\n\t\tconst methodName = \"ngOnInit\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.selectedLevel = this.loggingViewerFilterService.level;\n\n\t\t// subscribe to loggingViewerFilterService.filterChanged event, to refresh,\n\t\t// when someone else modifies the level\n\t\tthis.filterChangedSubscription = this.loggingViewerFilterService.filterChanged.subscribe(() => {\n\t\t\tthis.selectedLevel = this.loggingViewerFilterService.level;\n\t\t});\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Clean up.\n\t */\n\tpublic ngOnDestroy(): void {\n\t\tconst methodName = \"ngOnDestroy\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.filterChangedSubscription.unsubscribe();\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Callback when the level was changed in the UI.\n\t */\n\tpublic onLevelChanged(): void {\n\t\tconst methodName = \"onLevelChanged\";\n\t\tthis.logger.entry(methodName, this.selectedLevel);\n\n\t\tthis.loggingViewerFilterService.level = this.selectedLevel;\n\n\t\tthis.logger.exit(methodName);\n\t}\n}\n","<ion-segment [(ngModel)]=\"selectedLevel\" (ionChange)=\"onLevelChanged()\">\n\t<ion-segment-button *ngFor=\"let logLevel of logLevels\" [value]=\"logLevel\">\n\t\t<ion-label>{{ logLevel }}</ion-label>\n\t</ion-segment-button>\n</ion-segment>","import { Component, OnInit, OnDestroy, Input } from \"@angular/core\";\n\nimport { Subscription } from \"rxjs\";\n\nimport { LoggingService, Logger } from \"ionic-logging-service\";\n\nimport { LoggingViewerFilterService } from \"../logging-viewer-filter.service\";\n\n/**\n * Component for displaying the search bar for filtering the current logs.\n *\n * The component can be embedded in any web page using:\n *\n * <ionic-logging-viewer-search placeholder=\"Search\"></ionic-logging-viewer-search>\n */\n@Component({\n\tselector: \"ionic-logging-viewer-search\",\n\ttemplateUrl: \"./logging-viewer-search.component.html\",\n\tstyleUrls: [\"./logging-viewer-search.component.scss\"]\n})\nexport class LoggingViewerSearchComponent implements OnInit, OnDestroy {\n\n\t/**\n\t * Placeholder to be shown in the empty search bar.\n\t */\n\t@Input()\n\tpublic placeholder: string;\n\n\t/**\n\t * Current search value.\n\t */\n\tpublic search: string;\n\n\tprivate logger: Logger;\n\tprivate filterChangedSubscription: Subscription;\n\n\t/**\n\t * Creates a new instance of the component.\n\t */\n\tconstructor(\n\t\tloggingService: LoggingService,\n\t\tprivate loggingViewerFilterService: LoggingViewerFilterService) {\n\n\t\tthis.logger = loggingService.getLogger(\"Ionic.Logging.Viewer.Search.Component\");\n\t\tconst methodName = \"ctor\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Initialize the component.\n\t *\n\t * This is done by reading the filter data from [LoggingViewerFilterService](LoggingViewerFilterService.html).\n\t */\n\tpublic ngOnInit(): void {\n\t\tconst methodName = \"ngOnInit\";\n\t\tthis.logger.entry(methodName);\n\n\t\tif (!this.placeholder) {\n\t\t\tthis.placeholder = \"Search\";\n\t\t}\n\t\tthis.search = this.loggingViewerFilterService.search;\n\n\t\t// subscribe to loggingViewerFilterService.filterChanged event, to refresh,\n\t\t// when someone else modifies the search value\n\t\tthis.filterChangedSubscription = this.loggingViewerFilterService.filterChanged.subscribe(() => {\n\t\t\tthis.search = this.loggingViewerFilterService.search;\n\t\t});\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Clean up.\n\t */\n\tpublic ngOnDestroy(): void {\n\t\tconst methodName = \"ngOnDestroy\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.filterChangedSubscription.unsubscribe();\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Callback when the search value was changed in the UI.\n\t */\n\tpublic onSearchChanged(): void {\n\t\tconst methodName = \"onSearchChanged\";\n\t\tthis.logger.entry(methodName, this.search);\n\n\t\tthis.loggingViewerFilterService.search = this.search;\n\n\t\tthis.logger.exit(methodName);\n\t}\n}\n","<ion-searchbar placeholder=\"{{placeholder}}\" [(ngModel)]=\"search\" (ionChange)=\"onSearchChanged()\"></ion-searchbar>","import { Component, OnInit, Input } from \"@angular/core\";\n\nimport { ModalController, Platform, AlertController } from \"@ionic/angular\";\n\nimport { Logger, LoggingService } from \"ionic-logging-service\";\n\nimport { LoggingViewerTranslation } from \"../logging-viewer-translation.model\";\n\n/**\n * Ionic modal containing [LoggingViewerComponent](LoggingViewerComponent.html),\n * [LoggingViewerLevelsComponent](LoggingViewerLevelsComponent.html) and\n * [LoggingViewerSearchComponent](LoggingViewerSearchComponent.html).\n */\n@Component({\n\tselector: \"ionic-logging-viewer-modal\",\n\ttemplateUrl: \"./logging-viewer-modal.component.html\",\n\tstyleUrls: [\"./logging-viewer-modal.component.scss\"]\n})\nexport class LoggingViewerModalComponent implements OnInit {\n\n\tprivate static languageEn = \"en\";\n\tprivate static languageDe = \"de\";\n\n\t/**\n\t * Language to be used for the modal.\n\t * Currently supported: en, de\n\t */\n\t@Input()\n\tpublic language: string;\n\n\t/**\n\t * Translation to be used for the modal.\n\t * If specified, the language is ignored.\n\t */\n\t@Input()\n\tpublic translation: LoggingViewerTranslation;\n\n\t/**\n\t * Comma-separated list of localStorageKeys. If set, the logs get loaded from localStorage instead of memory.\n\t */\n\t@Input()\n\tpublic localStorageKeys: string;\n\n\t/**\n\t * Flag showing a delete button, which removes all existing log messages.\n\t */\n\t@Input()\n\tpublic allowClearLogs: boolean;\n\n\t/**\n\t * Flag controlling which close button will be shown.\n\t */\n\tpublic isAndroid: boolean;\n\n\tprivate logger: Logger;\n\n\tprivate translations: { [language: string]: LoggingViewerTranslation };\n\n\t/**\n\t * Creates a new instance of the component.\n\t */\n\tconstructor(\n\t\tplatform: Platform,\n\t\tprivate alertController: AlertController,\n\t\tprivate modalController: ModalController,\n\t\tprivate loggingService: LoggingService) {\n\n\t\tthis.logger = loggingService.getLogger(\"Ionic.Logging.Viewer.Modal.Component\");\n\t\tconst methodName = \"ctor\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.isAndroid = platform.is(\"android\");\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Initializes the LoggingViewerModalComponent.\n\t * It configures the supported translations.\n\t */\n\tpublic ngOnInit(): void {\n\t\t// prepare translations\n\t\tthis.translations = {};\n\t\tthis.translations[LoggingViewerModalComponent.languageEn] = {\n\t\t\tcancel: \"Cancel\",\n\t\t\tconfirmDelete: \"Delete all log messages?\",\n\t\t\tok: \"Ok\",\n\t\t\tsearchPlaceholder: \"Search\",\n\t\t\ttitle: \"Logging\",\n\t\t};\n\t\tthis.translations[LoggingViewerModalComponent.languageDe] = {\n\t\t\tcancel: \"Abbrechen\",\n\t\t\tconfirmDelete: \"Alle Logs löschen?\",\n\t\t\tok: \"Ok\",\n\t\t\tsearchPlaceholder: \"Suchen\",\n\t\t\ttitle: \"Logging\",\n\t\t};\n\t}\n\n\t/**\n\t * Eventhandler called by Ionic when the modal is opened.\n\t */\n\tpublic ionViewDidEnter(): void {\n\t\tconst methodName = \"ionViewDidEnter\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Eventhandler called when the cancel button is clicked.\n\t */\n\tpublic async onClose(): Promise<void> {\n\t\tconst methodName = \"onClose\";\n\t\tthis.logger.entry(methodName);\n\n\t\tawait this.modalController.dismiss();\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Eventhandler called when the clear button is clicked.\n\t */\n\tpublic async onClearLogs(): Promise<void> {\n\t\tconst methodName = \"onClearLogs\";\n\t\tthis.logger.entry(methodName);\n\n\t\tconst alert = await this.alertController.create({\n\t\t\theader: this.getTranslation().confirmDelete,\n\t\t\tbuttons: [\n\t\t\t\t{\n\t\t\t\t\ttext: this.getTranslation().cancel,\n\t\t\t\t\trole: \"cancel\",\n\t\t\t\t\tcssClass: \"secondary\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttext: this.getTranslation().ok,\n\t\t\t\t\thandler: () => {\n\t\t\t\t\t\tthis.clearLogs();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t]\n\t\t});\n\t\tawait alert.present();\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Clear logs.\n\t */\n\tpublic clearLogs(): void {\n\t\tif (this.localStorageKeys) {\n\t\t\tfor (const localStorageKey of this.localStorageKeys.split(\",\")) {\n\t\t\t\tthis.loggingService.removeLogMessagesFromLocalStorage(localStorageKey);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.loggingService.removeLogMessages();\n\t\t}\n\t}\n\n\t/**\n\t * Helper method returning the current translation:\n\t * - the property translation if defined\n\t * - the translation according property language if valid\n\t * - English translation, otherwise\n\t */\n\tpublic getTranslation(): LoggingViewerTranslation {\n\t\tif (typeof this.translation !== \"undefined\") {\n\t\t\treturn this.translation;\n\t\t} else if (typeof this.language !== \"undefined\" && typeof this.translations[this.language] === \"object\") {\n\t\t\treturn this.translations[this.language];\n\t\t} else {\n\t\t\treturn this.translations[LoggingViewerModalComponent.languageEn];\n\t\t}\n\t}\n}\n","<ion-header>\n\t<ion-toolbar color=primary>\n\t\t<ion-title>{{ getTranslation().title }}</ion-title>\n\t\t<ion-buttons slot=\"start\">\n\t\t\t<ion-button *ngIf=\"!isAndroid\" (click)=\"onClose()\">\n\t\t\t\t{{ getTranslation().cancel }}\n\t\t\t</ion-button>\n\t\t\t<ion-button *ngIf=\"isAndroid\" icon-only (click)=\"onClose()\">\n\t\t\t\t<ion-icon name=\"md-close\"></ion-icon>\n\t\t\t</ion-button>\n\t\t</ion-buttons>\n\t</ion-toolbar>\n\t<ion-toolbar>\n\t\t<ionic-logging-viewer-search [placeholder]=\"getTranslation().searchPlaceholder\"></ionic-logging-viewer-search>\n\t\t<ion-buttons slot=\"end\" *ngIf=\"allowClearLogs !== false\" class=\"clearLogs\">\n\t\t\t<ion-button (click)=\"onClearLogs()\">\n\t\t\t\t<ion-icon name=\"trash-outline\"></ion-icon>\n\t\t\t</ion-button>\n\t\t</ion-buttons>\n\t</ion-toolbar>\n\t<ion-toolbar>\n\t\t<ionic-logging-viewer-levels></ionic-logging-viewer-levels>\n\t</ion-toolbar>\n</ion-header>\n<ion-content>\n\t<ionic-logging-viewer [localStorageKeys]=\"localStorageKeys\"></ionic-logging-viewer>\n</ion-content>","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule } from \"@angular/forms\";\n\nimport { IonicModule } from \"@ionic/angular\";\n\nimport { LoggingViewerComponent } from \"./logging-viewer/logging-viewer.component\";\nimport { LoggingViewerFilterService } from \"./logging-viewer-filter.service\";\nimport { LoggingViewerLevelsComponent } from \"./logging-viewer-levels/logging-viewer-levels.component\";\nimport { LoggingViewerSearchComponent } from \"./logging-viewer-search/logging-viewer-search.component\";\nimport { LoggingViewerModalComponent } from \"./logging-viewer-modal/logging-viewer-modal.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n IonicModule\n ],\n declarations: [\n LoggingViewerComponent,\n LoggingViewerSearchComponent,\n LoggingViewerLevelsComponent,\n LoggingViewerModalComponent\n ],\n exports: [\n LoggingViewerComponent,\n LoggingViewerSearchComponent,\n LoggingViewerLevelsComponent,\n LoggingViewerModalComponent\n ],\n providers: [\n LoggingViewerFilterService\n ]\n})\nexport class LoggingViewerModule { }\n","/*\n * Public API Surface of ionic-logging-viewer\n */\n\nexport * from \"./lib/logging-viewer.module\";\nexport * from \"./lib/logging-viewer/logging-viewer.component\";\nexport * from \"./lib/logging-viewer-levels/logging-viewer-levels.component\";\nexport * from \"./lib/logging-viewer-search/logging-viewer-search.component\";\nexport * from \"./lib/logging-viewer-modal/logging-viewer-modal.component\";\nexport * from \"./lib/logging-viewer-modal/logging-viewer-modal-properties.model\";\nexport * from \"./lib/logging-viewer-translation.model\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i2.LoggingViewerFilterService","i4","i5","i3","i1","i2","i4.LoggingViewerComponent","i5.LoggingViewerSearchComponent","i6.LoggingViewerLevelsComponent"],"mappings":"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"}
|
|
File without changes
|
|
@@ -69,5 +69,5 @@ export declare class LoggingViewerComponent implements OnInit, OnDestroy {
|
|
|
69
69
|
*/
|
|
70
70
|
loadLogMessages(): void;
|
|
71
71
|
static ɵfac: i0.ɵɵFactoryDeclaration<LoggingViewerComponent, never>;
|
|
72
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<LoggingViewerComponent, "ionic-logging-viewer", never, { "localStorageKeys": "localStorageKeys"; }, {}, never, never>;
|
|
72
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LoggingViewerComponent, "ionic-logging-viewer", never, { "localStorageKeys": "localStorageKeys"; }, {}, never, never, false>;
|
|
73
73
|
}
|
|
@@ -40,5 +40,5 @@ export declare class LoggingViewerLevelsComponent implements OnInit, OnDestroy {
|
|
|
40
40
|
*/
|
|
41
41
|
onLevelChanged(): void;
|
|
42
42
|
static ɵfac: i0.ɵɵFactoryDeclaration<LoggingViewerLevelsComponent, never>;
|
|
43
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<LoggingViewerLevelsComponent, "ionic-logging-viewer-levels", never, {}, {}, never, never>;
|
|
43
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LoggingViewerLevelsComponent, "ionic-logging-viewer-levels", never, {}, {}, never, never, false>;
|
|
44
44
|
}
|
|
@@ -71,5 +71,5 @@ export declare class LoggingViewerModalComponent implements OnInit {
|
|
|
71
71
|
*/
|
|
72
72
|
getTranslation(): LoggingViewerTranslation;
|
|
73
73
|
static ɵfac: i0.ɵɵFactoryDeclaration<LoggingViewerModalComponent, never>;
|
|
74
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<LoggingViewerModalComponent, "ionic-logging-viewer-modal", never, { "language": "language"; "translation": "translation"; "localStorageKeys": "localStorageKeys"; "allowClearLogs": "allowClearLogs"; }, {}, never, never>;
|
|
74
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LoggingViewerModalComponent, "ionic-logging-viewer-modal", never, { "language": "language"; "translation": "translation"; "localStorageKeys": "localStorageKeys"; "allowClearLogs": "allowClearLogs"; }, {}, never, never, false>;
|
|
75
75
|
}
|
|
@@ -40,5 +40,5 @@ export declare class LoggingViewerSearchComponent implements OnInit, OnDestroy {
|
|
|
40
40
|
*/
|
|
41
41
|
onSearchChanged(): void;
|
|
42
42
|
static ɵfac: i0.ɵɵFactoryDeclaration<LoggingViewerSearchComponent, never>;
|
|
43
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<LoggingViewerSearchComponent, "ionic-logging-viewer-search", never, { "placeholder": "placeholder"; }, {}, never, never>;
|
|
43
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LoggingViewerSearchComponent, "ionic-logging-viewer-search", never, { "placeholder": "placeholder"; }, {}, never, never, false>;
|
|
44
44
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ionic-logging-viewer",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "15.0.0",
|
|
4
4
|
"description": "Viewer component for logs written by ionic-logging-service",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Markus Wagner",
|
|
@@ -19,10 +19,10 @@
|
|
|
19
19
|
"tslib": "^2.0.0"
|
|
20
20
|
},
|
|
21
21
|
"peerDependencies": {
|
|
22
|
-
"@angular/common": "^
|
|
23
|
-
"@angular/core": "^
|
|
24
|
-
"@ionic/angular": "^6.
|
|
25
|
-
"ionic-logging-service": "^
|
|
22
|
+
"@angular/common": "^14.0.0",
|
|
23
|
+
"@angular/core": "^14.0.0",
|
|
24
|
+
"@ionic/angular": "^6.1.9",
|
|
25
|
+
"ionic-logging-service": "^15.0.0",
|
|
26
26
|
"ionicons": "^6.0.0"
|
|
27
27
|
},
|
|
28
28
|
"module": "fesm2015/ionic-logging-viewer.mjs",
|
|
@@ -30,13 +30,13 @@
|
|
|
30
30
|
"esm2020": "esm2020/ionic-logging-viewer.mjs",
|
|
31
31
|
"fesm2020": "fesm2020/ionic-logging-viewer.mjs",
|
|
32
32
|
"fesm2015": "fesm2015/ionic-logging-viewer.mjs",
|
|
33
|
-
"typings": "
|
|
33
|
+
"typings": "index.d.ts",
|
|
34
34
|
"exports": {
|
|
35
35
|
"./package.json": {
|
|
36
36
|
"default": "./package.json"
|
|
37
37
|
},
|
|
38
38
|
".": {
|
|
39
|
-
"types": "./
|
|
39
|
+
"types": "./index.d.ts",
|
|
40
40
|
"esm2020": "./esm2020/ionic-logging-viewer.mjs",
|
|
41
41
|
"es2020": "./fesm2020/ionic-logging-viewer.mjs",
|
|
42
42
|
"es2015": "./fesm2015/ionic-logging-viewer.mjs",
|