@smartbit4all/ng-client 3.1.25 → 3.1.27
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/esm2020/lib/session/projects.mjs +7 -9
- package/esm2020/lib/session/smart-session.module.mjs +6 -22
- package/esm2020/lib/smart-form/widgets/components/smart-month-picker/smart-month-picker.component.mjs +18 -22
- package/fesm2015/smartbit4all-ng-client.mjs +22 -396
- package/fesm2015/smartbit4all-ng-client.mjs.map +1 -1
- package/fesm2020/smartbit4all-ng-client.mjs +22 -394
- package/fesm2020/smartbit4all-ng-client.mjs.map +1 -1
- package/lib/session/projects.d.ts +6 -8
- package/lib/session/smart-session.module.d.ts +7 -10
- package/lib/smart-form/widgets/components/smart-month-picker/smart-month-picker.component.d.ts +7 -8
- package/package.json +1 -1
- package/smartbit4all-ng-client-3.1.27.tgz +0 -0
- package/esm2020/lib/session/dev-tool/smart-dev-tool-dialog/smart-dev-tool-dialog.component.mjs +0 -90
- package/esm2020/lib/session/dev-tool/smart-dev-tool-dialog/smart-dev-tool-dialog.service.mjs +0 -43
- package/esm2020/lib/session/dev-tool/smart-dev-tool-floating-button/smart-dev-tool-floating-button.component.mjs +0 -40
- package/esm2020/lib/session/dev-tool/smart-dev-tool.interceptor.mjs +0 -52
- package/esm2020/lib/session/dev-tool/smart-dev-tool.service.mjs +0 -165
- package/lib/session/dev-tool/smart-dev-tool-dialog/smart-dev-tool-dialog.component.d.ts +0 -28
- package/lib/session/dev-tool/smart-dev-tool-dialog/smart-dev-tool-dialog.service.d.ts +0 -18
- package/lib/session/dev-tool/smart-dev-tool-floating-button/smart-dev-tool-floating-button.component.d.ts +0 -15
- package/lib/session/dev-tool/smart-dev-tool.interceptor.d.ts +0 -18
- package/lib/session/dev-tool/smart-dev-tool.service.d.ts +0 -57
- package/smartbit4all-ng-client-3.1.25.tgz +0 -0
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
export * from
|
|
3
|
-
export * from
|
|
4
|
-
export * from
|
|
5
|
-
export * from
|
|
6
|
-
export * from
|
|
7
|
-
export * from "./smart-timer/smart-session-timer.component";
|
|
8
|
-
export * from "./smart-timer/smart-session-timer.service";
|
|
1
|
+
export * from './smart-session.service';
|
|
2
|
+
export * from './api/index';
|
|
3
|
+
export * from './smart-session.module';
|
|
4
|
+
export * from './smart-session-handler.service';
|
|
5
|
+
export * from './smart-timer/smart-session-timer.component';
|
|
6
|
+
export * from './smart-timer/smart-session-timer.service';
|
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
|
-
import * as i1 from "./
|
|
3
|
-
import * as i2 from "
|
|
4
|
-
import * as i3 from "
|
|
5
|
-
import * as i4 from "
|
|
6
|
-
import * as i5 from "@angular/
|
|
7
|
-
import * as i6 from "
|
|
8
|
-
import * as i7 from "@angular/material/expansion";
|
|
9
|
-
import * as i8 from "@angular/material/button";
|
|
10
|
-
import * as i9 from "../smart-icon/smart-icon.module";
|
|
2
|
+
import * as i1 from "./smart-timer/smart-session-timer.component";
|
|
3
|
+
import * as i2 from "@angular/platform-browser";
|
|
4
|
+
import * as i3 from "@angular/material/core";
|
|
5
|
+
import * as i4 from "@angular/material/expansion";
|
|
6
|
+
import * as i5 from "@angular/material/button";
|
|
7
|
+
import * as i6 from "../smart-icon/smart-icon.module";
|
|
11
8
|
export declare class SmartSessionModule {
|
|
12
9
|
static ɵfac: i0.ɵɵFactoryDeclaration<SmartSessionModule, never>;
|
|
13
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<SmartSessionModule, [typeof i1.
|
|
10
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<SmartSessionModule, [typeof i1.SmartSessionTimerComponent], [typeof i2.BrowserModule, typeof i3.MatCommonModule, typeof i4.MatExpansionModule, typeof i5.MatButtonModule, typeof i6.SmartIconModule], [typeof i1.SmartSessionTimerComponent]>;
|
|
14
11
|
static ɵinj: i0.ɵɵInjectorDeclaration<SmartSessionModule>;
|
|
15
12
|
}
|
package/lib/smart-form/widgets/components/smart-month-picker/smart-month-picker.component.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { EventEmitter, OnInit } from
|
|
2
|
-
import { FormControl } from
|
|
3
|
-
import { Moment } from
|
|
4
|
-
import { SmartMonthPicker } from
|
|
5
|
-
import { MatDatepicker } from
|
|
6
|
-
import { SmartWidgetHintPosition } from
|
|
1
|
+
import { EventEmitter, OnInit } from '@angular/core';
|
|
2
|
+
import { FormControl } from '@angular/forms';
|
|
3
|
+
import { Moment } from 'moment';
|
|
4
|
+
import { SmartMonthPicker } from '../../../smartform.form-model';
|
|
5
|
+
import { MatDatepicker } from '@angular/material/datepicker';
|
|
6
|
+
import { SmartWidgetHintPosition } from '../../../smartform.model';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
export declare const YEARH_MONTH_FORMAT: {
|
|
9
9
|
parse: {
|
|
@@ -22,8 +22,7 @@ export declare class SmartMonthPickerComponent implements OnInit {
|
|
|
22
22
|
date: FormControl;
|
|
23
23
|
SmartWidgetHintPosition: typeof SmartWidgetHintPosition;
|
|
24
24
|
ngOnInit(): void;
|
|
25
|
-
|
|
26
|
-
chosenMonthHandler(normalizedMonth: Moment, datepicker: MatDatepicker<Moment>): void;
|
|
25
|
+
chosenMonthHandler(moment: Moment, datepicker: MatDatepicker<Moment>): void;
|
|
27
26
|
static ɵfac: i0.ɵɵFactoryDeclaration<SmartMonthPickerComponent, never>;
|
|
28
27
|
static ɵcmp: i0.ɵɵComponentDeclaration<SmartMonthPickerComponent, "lib-smart-month-picker", never, { "widgetInstance": "widgetInstance"; }, { "valueChange": "valueChange"; }, never, never>;
|
|
29
28
|
}
|
package/package.json
CHANGED
|
Binary file
|
package/esm2020/lib/session/dev-tool/smart-dev-tool-dialog/smart-dev-tool-dialog.component.mjs
DELETED
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import { Subject, takeUntil } from 'rxjs';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "./smart-dev-tool-dialog.service";
|
|
5
|
-
import * as i2 from "@angular/material/button";
|
|
6
|
-
import * as i3 from "../../../smart-icon/smart-icon/smart-icon.component";
|
|
7
|
-
import * as i4 from "@angular/material/expansion";
|
|
8
|
-
import * as i5 from "@angular/common";
|
|
9
|
-
import * as i6 from "../smart-dev-tool.service";
|
|
10
|
-
export class SmartDevToolDialogComponent {
|
|
11
|
-
constructor(service) {
|
|
12
|
-
this.service = service;
|
|
13
|
-
this._destroy$ = new Subject();
|
|
14
|
-
this.descriptor = this.service.getData();
|
|
15
|
-
this.service.update.pipe(takeUntil(this._destroy$)).subscribe(() => {
|
|
16
|
-
this.descriptor = this.service.getData();
|
|
17
|
-
});
|
|
18
|
-
this.service.service.clearErrors();
|
|
19
|
-
}
|
|
20
|
-
ngOnDestroy() {
|
|
21
|
-
this._destroy$.next();
|
|
22
|
-
}
|
|
23
|
-
clear() {
|
|
24
|
-
this.service.clear();
|
|
25
|
-
}
|
|
26
|
-
getBody(inp) {
|
|
27
|
-
return this.syntaxHighlight(inp);
|
|
28
|
-
}
|
|
29
|
-
syntaxHighlight(json) {
|
|
30
|
-
if (typeof json != 'string') {
|
|
31
|
-
json = JSON.stringify(json, undefined, 2);
|
|
32
|
-
}
|
|
33
|
-
json = json.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
|
|
34
|
-
return json.replace(/("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)/g, function (match) {
|
|
35
|
-
var cls = 'number';
|
|
36
|
-
if (/^"/.test(match)) {
|
|
37
|
-
if (/:$/.test(match)) {
|
|
38
|
-
cls = 'key';
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
cls = 'string';
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
else if (/true|false/.test(match)) {
|
|
45
|
-
cls = 'boolean';
|
|
46
|
-
}
|
|
47
|
-
else if (/null/.test(match)) {
|
|
48
|
-
cls = 'null';
|
|
49
|
-
}
|
|
50
|
-
return '<span class="' + cls + '">' + match + '</span>';
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
copy() {
|
|
54
|
-
copyToClipboard({
|
|
55
|
-
value: this.service.getPureString(),
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
close() {
|
|
59
|
-
this.service.closeDialog();
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
SmartDevToolDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartDevToolDialogComponent, deps: [{ token: i1.SmartDevToolDialogService }], target: i0.ɵɵFactoryTarget.Component });
|
|
63
|
-
SmartDevToolDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: SmartDevToolDialogComponent, selector: "app-smart-dev-tool-dialog", ngImport: i0, template: "<div class=\"smartDevToolDialogContainer\">\r\n <div class=\"header\">\r\n <h2>Developer tool</h2>\r\n <button mat-icon-button title=\"close\" (click)=\"close()\">\r\n <smart-icon icon=\"close\"></smart-icon>\r\n </button>\r\n </div>\r\n <div class=\"requestsContainer\">\r\n <mat-accordion multi>\r\n <mat-expansion-panel\r\n class=\"requestCard\"\r\n [ngClass]=\"apiCall.responseStatus === 200 ? '' : 'hasError'\"\r\n *ngFor=\"let apiCall of descriptor?.apiCalls; let i = index\"\r\n >\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n <div class=\"titlePanel\">\r\n <span class=\"date\">\r\n {{ apiCall.responseDate | smartDevToolDatePipe }}\r\n </span>\r\n <span class=\"urlText\">\r\n {{ apiCall.url }}\r\n </span>\r\n <div [ngClass]=\"apiCall.requestMethod\">\r\n {{ apiCall.requestMethod }}\r\n </div>\r\n <div [ngClass]=\"'statusCode-' + apiCall.responseStatus.toString()[0]\">\r\n {{ apiCall.responseStatus }}\r\n </div>\r\n </div>\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n\r\n <div>\r\n <div class=\"table\">\r\n <div class=\"row\">\r\n <div class=\"mainCol heading\">Request</div>\r\n <div class=\"mainCol heading\">Response</div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Date</div>\r\n <div class=\"data\">\r\n {{ apiCall.requestDate | smartDevToolDatePipe }}\r\n </div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Date</div>\r\n <div class=\"data\">\r\n {{ apiCall.responseDate | smartDevToolDatePipe }}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Headers</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Headers</div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <pre\r\n *ngIf=\"apiCall.requestHeader\"\r\n class=\"data\"\r\n [innerHTML]=\"getBody(apiCall.requestHeader)\"\r\n ></pre>\r\n <div *ngIf=\"!apiCall.requestHeader\" class=\"data\">null</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <pre\r\n *ngIf=\"apiCall.responseHeader\"\r\n class=\"data\"\r\n [innerHTML]=\"getBody(apiCall.responseHeader)\"\r\n ></pre>\r\n <div *ngIf=\"!apiCall.responseHeader\" class=\"data\">null</div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <div class=\"heading\"></div>\r\n <div class=\"data\"></div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Status</div>\r\n <div class=\"data\">\r\n {{ apiCall.responseStatus }}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <div class=\"heading\"></div>\r\n <div class=\"data\"></div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Status text</div>\r\n <div class=\"data\">\r\n {{ apiCall.responseStatusText }}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Body</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Body</div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <pre\r\n *ngIf=\"apiCall.requestBody\"\r\n class=\"data\"\r\n [innerHTML]=\"getBody(apiCall.requestBody)\"\r\n ></pre>\r\n <div *ngIf=\"!apiCall.requestBody\" class=\"data\">null</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <pre\r\n *ngIf=\"apiCall.responseBody\"\r\n class=\"data\"\r\n [innerHTML]=\"getBody(apiCall.responseBody)\"\r\n ></pre>\r\n <div *ngIf=\"!apiCall.responseBody\" class=\"data\">null</div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Session Storage</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Local Storage</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Cookies</div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <pre\r\n *ngIf=\"apiCall.sessionStorage\"\r\n class=\"data\"\r\n [innerHTML]=\"getBody(apiCall.sessionStorage)\"\r\n ></pre>\r\n <div *ngIf=\"!apiCall.sessionStorage\" class=\"data\">null</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <pre\r\n *ngIf=\"apiCall.localStorage\"\r\n class=\"data\"\r\n [innerHTML]=\"getBody(apiCall.localStorage)\"\r\n ></pre>\r\n <div *ngIf=\"!apiCall.localStorage\" class=\"data\">null</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <pre\r\n *ngIf=\"apiCall.cookies\"\r\n class=\"data\"\r\n [innerHTML]=\"getBody(apiCall.cookies)\"\r\n ></pre>\r\n <div *ngIf=\"!apiCall.cookies\" class=\"data\">null</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </mat-expansion-panel>\r\n </mat-accordion>\r\n </div>\r\n <div class=\"buttonsContainer\">\r\n <button color=\"primary\" mat-raised-button (click)=\"copy()\">Copy</button>\r\n <button color=\"warn\" mat-raised-button (click)=\"clear()\">Clear</button>\r\n </div>\r\n</div>\r\n", styles: [".smartDevToolDialogContainer{display:flex;flex-direction:column;gap:1rem;width:78vw;height:90vh}.header{display:flex;flex-direction:row;justify-content:space-between}.requestsContainer{display:flex;flex-direction:column;gap:1rem;flex:1;overflow:auto}.requestCard{background-color:var(--primary-lighter-color);padding:.5rem;border-radius:.5rem;display:flex;flex-direction:column}.table{display:flex;flex-direction:column;gap:.25rem}.row{display:flex;flex-direction:row;gap:1rem}.mainCol{flex:1;display:flex;flex-direction:row;gap:.5rem;overflow:auto}.heading{font-weight:700}.data{word-wrap:break-word}.buttonsContainer{display:flex;flex-direction:row;justify-content:space-between}pre{outline:1px solid #000;padding:5px;margin:5px}.string{color:green}.number{color:#ff8c00}.boolean{color:#00f}.null{color:#f0f}.key{color:red}@media only screen and (max-width: 1000px){.row{flex-direction:column;gap:.5rem}.mainCol{flex-direction:column;overflow-x:auto;overflow-y:visible;flex:auto}.requestCard h4{font-size:small;overflow:auto}.smartDevToolDialogContainer{width:calc(80vw - 3rem)}}.hasError{background-color:var(--warn-lighter-color)}.titlePanel{flex:1;display:flex;flex-direction:row;gap:1rem}.urlText{flex:1;text-decoration:underline}.PATCH{color:#d38042}.DELETE{color:#a41e22}.GET{color:#0f6ab4}.POST{color:#10a54a}.PUT{color:#c5862b}.HEAD{color:#ffd20f}.statusCode-2{color:#5fb442}.statusCode-3{color:#5970f6}.statusCode-4{color:#ec6762}.statusCode-5{color:#f2a63b}\n"], components: [{ type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i3.SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color"] }, { type: i4.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["disabled", "expanded", "hideToggle", "togglePosition"], outputs: ["opened", "closed", "expandedChange", "afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { type: i4.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["tabIndex", "expandedHeight", "collapsedHeight"] }], directives: [{ type: i4.MatAccordion, selector: "mat-accordion", inputs: ["multi", "hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.MatExpansionPanelTitle, selector: "mat-panel-title" }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "smartDevToolDatePipe": i6.SmartDevToolDatePipe } });
|
|
64
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartDevToolDialogComponent, decorators: [{
|
|
65
|
-
type: Component,
|
|
66
|
-
args: [{ selector: 'app-smart-dev-tool-dialog', template: "<div class=\"smartDevToolDialogContainer\">\r\n <div class=\"header\">\r\n <h2>Developer tool</h2>\r\n <button mat-icon-button title=\"close\" (click)=\"close()\">\r\n <smart-icon icon=\"close\"></smart-icon>\r\n </button>\r\n </div>\r\n <div class=\"requestsContainer\">\r\n <mat-accordion multi>\r\n <mat-expansion-panel\r\n class=\"requestCard\"\r\n [ngClass]=\"apiCall.responseStatus === 200 ? '' : 'hasError'\"\r\n *ngFor=\"let apiCall of descriptor?.apiCalls; let i = index\"\r\n >\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n <div class=\"titlePanel\">\r\n <span class=\"date\">\r\n {{ apiCall.responseDate | smartDevToolDatePipe }}\r\n </span>\r\n <span class=\"urlText\">\r\n {{ apiCall.url }}\r\n </span>\r\n <div [ngClass]=\"apiCall.requestMethod\">\r\n {{ apiCall.requestMethod }}\r\n </div>\r\n <div [ngClass]=\"'statusCode-' + apiCall.responseStatus.toString()[0]\">\r\n {{ apiCall.responseStatus }}\r\n </div>\r\n </div>\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n\r\n <div>\r\n <div class=\"table\">\r\n <div class=\"row\">\r\n <div class=\"mainCol heading\">Request</div>\r\n <div class=\"mainCol heading\">Response</div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Date</div>\r\n <div class=\"data\">\r\n {{ apiCall.requestDate | smartDevToolDatePipe }}\r\n </div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Date</div>\r\n <div class=\"data\">\r\n {{ apiCall.responseDate | smartDevToolDatePipe }}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Headers</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Headers</div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <pre\r\n *ngIf=\"apiCall.requestHeader\"\r\n class=\"data\"\r\n [innerHTML]=\"getBody(apiCall.requestHeader)\"\r\n ></pre>\r\n <div *ngIf=\"!apiCall.requestHeader\" class=\"data\">null</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <pre\r\n *ngIf=\"apiCall.responseHeader\"\r\n class=\"data\"\r\n [innerHTML]=\"getBody(apiCall.responseHeader)\"\r\n ></pre>\r\n <div *ngIf=\"!apiCall.responseHeader\" class=\"data\">null</div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <div class=\"heading\"></div>\r\n <div class=\"data\"></div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Status</div>\r\n <div class=\"data\">\r\n {{ apiCall.responseStatus }}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <div class=\"heading\"></div>\r\n <div class=\"data\"></div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Status text</div>\r\n <div class=\"data\">\r\n {{ apiCall.responseStatusText }}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Body</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Body</div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <pre\r\n *ngIf=\"apiCall.requestBody\"\r\n class=\"data\"\r\n [innerHTML]=\"getBody(apiCall.requestBody)\"\r\n ></pre>\r\n <div *ngIf=\"!apiCall.requestBody\" class=\"data\">null</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <pre\r\n *ngIf=\"apiCall.responseBody\"\r\n class=\"data\"\r\n [innerHTML]=\"getBody(apiCall.responseBody)\"\r\n ></pre>\r\n <div *ngIf=\"!apiCall.responseBody\" class=\"data\">null</div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Session Storage</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Local Storage</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <div class=\"heading\">Cookies</div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"mainCol\">\r\n <pre\r\n *ngIf=\"apiCall.sessionStorage\"\r\n class=\"data\"\r\n [innerHTML]=\"getBody(apiCall.sessionStorage)\"\r\n ></pre>\r\n <div *ngIf=\"!apiCall.sessionStorage\" class=\"data\">null</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <pre\r\n *ngIf=\"apiCall.localStorage\"\r\n class=\"data\"\r\n [innerHTML]=\"getBody(apiCall.localStorage)\"\r\n ></pre>\r\n <div *ngIf=\"!apiCall.localStorage\" class=\"data\">null</div>\r\n </div>\r\n <div class=\"mainCol\">\r\n <pre\r\n *ngIf=\"apiCall.cookies\"\r\n class=\"data\"\r\n [innerHTML]=\"getBody(apiCall.cookies)\"\r\n ></pre>\r\n <div *ngIf=\"!apiCall.cookies\" class=\"data\">null</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </mat-expansion-panel>\r\n </mat-accordion>\r\n </div>\r\n <div class=\"buttonsContainer\">\r\n <button color=\"primary\" mat-raised-button (click)=\"copy()\">Copy</button>\r\n <button color=\"warn\" mat-raised-button (click)=\"clear()\">Clear</button>\r\n </div>\r\n</div>\r\n", styles: [".smartDevToolDialogContainer{display:flex;flex-direction:column;gap:1rem;width:78vw;height:90vh}.header{display:flex;flex-direction:row;justify-content:space-between}.requestsContainer{display:flex;flex-direction:column;gap:1rem;flex:1;overflow:auto}.requestCard{background-color:var(--primary-lighter-color);padding:.5rem;border-radius:.5rem;display:flex;flex-direction:column}.table{display:flex;flex-direction:column;gap:.25rem}.row{display:flex;flex-direction:row;gap:1rem}.mainCol{flex:1;display:flex;flex-direction:row;gap:.5rem;overflow:auto}.heading{font-weight:700}.data{word-wrap:break-word}.buttonsContainer{display:flex;flex-direction:row;justify-content:space-between}pre{outline:1px solid #000;padding:5px;margin:5px}.string{color:green}.number{color:#ff8c00}.boolean{color:#00f}.null{color:#f0f}.key{color:red}@media only screen and (max-width: 1000px){.row{flex-direction:column;gap:.5rem}.mainCol{flex-direction:column;overflow-x:auto;overflow-y:visible;flex:auto}.requestCard h4{font-size:small;overflow:auto}.smartDevToolDialogContainer{width:calc(80vw - 3rem)}}.hasError{background-color:var(--warn-lighter-color)}.titlePanel{flex:1;display:flex;flex-direction:row;gap:1rem}.urlText{flex:1;text-decoration:underline}.PATCH{color:#d38042}.DELETE{color:#a41e22}.GET{color:#0f6ab4}.POST{color:#10a54a}.PUT{color:#c5862b}.HEAD{color:#ffd20f}.statusCode-2{color:#5fb442}.statusCode-3{color:#5970f6}.statusCode-4{color:#ec6762}.statusCode-5{color:#f2a63b}\n"] }]
|
|
67
|
-
}], ctorParameters: function () { return [{ type: i1.SmartDevToolDialogService }]; } });
|
|
68
|
-
export const copyToClipboard = async ({ target, message, value }) => {
|
|
69
|
-
try {
|
|
70
|
-
let copyValue = '';
|
|
71
|
-
if (!navigator.clipboard) {
|
|
72
|
-
throw new Error("Browser don't have support for native clipboard.");
|
|
73
|
-
}
|
|
74
|
-
if (target) {
|
|
75
|
-
const node = document.querySelector(target);
|
|
76
|
-
if (!node || !node.textContent) {
|
|
77
|
-
throw new Error('Element not found');
|
|
78
|
-
}
|
|
79
|
-
value = node.textContent;
|
|
80
|
-
}
|
|
81
|
-
if (value) {
|
|
82
|
-
copyValue = value;
|
|
83
|
-
}
|
|
84
|
-
await navigator.clipboard.writeText(copyValue);
|
|
85
|
-
}
|
|
86
|
-
catch (error) {
|
|
87
|
-
console.error(error.toString());
|
|
88
|
-
}
|
|
89
|
-
};
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtZGV2LXRvb2wtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3Nlc3Npb24vZGV2LXRvb2wvc21hcnQtZGV2LXRvb2wtZGlhbG9nL3NtYXJ0LWRldi10b29sLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zZXNzaW9uL2Rldi10b29sL3NtYXJ0LWRldi10b29sLWRpYWxvZy9zbWFydC1kZXYtdG9vbC1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7QUFTMUMsTUFBTSxPQUFPLDJCQUEyQjtJQUt0QyxZQUFvQixPQUFrQztRQUFsQyxZQUFPLEdBQVAsT0FBTyxDQUEyQjtRQUo5QyxjQUFTLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFLL0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNqRSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxPQUFPLENBQUMsR0FBUTtRQUNkLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsZUFBZSxDQUFDLElBQVM7UUFDdkIsSUFBSSxPQUFPLElBQUksSUFBSSxRQUFRLEVBQUU7WUFDM0IsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUMzQztRQUNELElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDL0UsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUNqQix3R0FBd0csRUFDeEcsVUFBVSxLQUFVO1lBQ2xCLElBQUksR0FBRyxHQUFHLFFBQVEsQ0FBQztZQUNuQixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3BCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtvQkFDcEIsR0FBRyxHQUFHLEtBQUssQ0FBQztpQkFDYjtxQkFBTTtvQkFDTCxHQUFHLEdBQUcsUUFBUSxDQUFDO2lCQUNoQjthQUNGO2lCQUFNLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDbkMsR0FBRyxHQUFHLFNBQVMsQ0FBQzthQUNqQjtpQkFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQzdCLEdBQUcsR0FBRyxNQUFNLENBQUM7YUFDZDtZQUNELE9BQU8sZUFBZSxHQUFHLEdBQUcsR0FBRyxJQUFJLEdBQUcsS0FBSyxHQUFHLFNBQVMsQ0FBQztRQUMxRCxDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJO1FBQ0YsZUFBZSxDQUFDO1lBQ2QsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFO1NBQ3BDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM3QixDQUFDOzt3SEF6RFUsMkJBQTJCOzRHQUEzQiwyQkFBMkIsaUVDVnhDLDRuU0FnTEE7MkZEdEthLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSwyQkFBMkI7O0FBeUV2QyxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQW9CLEVBQUUsRUFBRTtJQUNwRixJQUFJO1FBQ0YsSUFBSSxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBRW5CLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMsa0RBQWtELENBQUMsQ0FBQztTQUNyRTtRQUVELElBQUksTUFBTSxFQUFFO1lBQ1YsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUU1QyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDOUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO2FBQ3RDO1lBRUQsS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7U0FDMUI7UUFFRCxJQUFJLEtBQUssRUFBRTtZQUNULFNBQVMsR0FBRyxLQUFLLENBQUM7U0FDbkI7UUFFRCxNQUFNLFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0tBQ2hEO0lBQUMsT0FBTyxLQUFVLEVBQUU7UUFDbkIsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztLQUNqQztBQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTbWFydERldlRvb2xEZXNjcmlwdG9yIH0gZnJvbSAnLi4vc21hcnQtZGV2LXRvb2wuc2VydmljZSc7XHJcbmltcG9ydCB7IFNtYXJ0RGV2VG9vbERpYWxvZ1NlcnZpY2UgfSBmcm9tICcuL3NtYXJ0LWRldi10b29sLWRpYWxvZy5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXNtYXJ0LWRldi10b29sLWRpYWxvZycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NtYXJ0LWRldi10b29sLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc21hcnQtZGV2LXRvb2wtZGlhbG9nLmNvbXBvbmVudC5jc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNtYXJ0RGV2VG9vbERpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBfZGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBkZXNjcmlwdG9yPzogU21hcnREZXZUb29sRGVzY3JpcHRvcjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzZXJ2aWNlOiBTbWFydERldlRvb2xEaWFsb2dTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLmRlc2NyaXB0b3IgPSB0aGlzLnNlcnZpY2UuZ2V0RGF0YSgpO1xyXG4gICAgdGhpcy5zZXJ2aWNlLnVwZGF0ZS5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuZGVzY3JpcHRvciA9IHRoaXMuc2VydmljZS5nZXREYXRhKCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2VydmljZS5zZXJ2aWNlLmNsZWFyRXJyb3JzKCk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xyXG4gIH1cclxuXHJcbiAgY2xlYXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlcnZpY2UuY2xlYXIoKTtcclxuICB9XHJcblxyXG4gIGdldEJvZHkoaW5wOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLnN5bnRheEhpZ2hsaWdodChpbnApO1xyXG4gIH1cclxuXHJcbiAgc3ludGF4SGlnaGxpZ2h0KGpzb246IGFueSkge1xyXG4gICAgaWYgKHR5cGVvZiBqc29uICE9ICdzdHJpbmcnKSB7XHJcbiAgICAgIGpzb24gPSBKU09OLnN0cmluZ2lmeShqc29uLCB1bmRlZmluZWQsIDIpO1xyXG4gICAgfVxyXG4gICAganNvbiA9IGpzb24ucmVwbGFjZSgvJi9nLCAnJmFtcDsnKS5yZXBsYWNlKC88L2csICcmbHQ7JykucmVwbGFjZSgvPi9nLCAnJmd0OycpO1xyXG4gICAgcmV0dXJuIGpzb24ucmVwbGFjZShcclxuICAgICAgLyhcIihcXFxcdVthLXpBLVowLTldezR9fFxcXFxbXnVdfFteXFxcXFwiXSkqXCIoXFxzKjopP3xcXGIodHJ1ZXxmYWxzZXxudWxsKVxcYnwtP1xcZCsoPzpcXC5cXGQqKT8oPzpbZUVdWytcXC1dP1xcZCspPykvZyxcclxuICAgICAgZnVuY3Rpb24gKG1hdGNoOiBhbnkpIHtcclxuICAgICAgICB2YXIgY2xzID0gJ251bWJlcic7XHJcbiAgICAgICAgaWYgKC9eXCIvLnRlc3QobWF0Y2gpKSB7XHJcbiAgICAgICAgICBpZiAoLzokLy50ZXN0KG1hdGNoKSkge1xyXG4gICAgICAgICAgICBjbHMgPSAna2V5JztcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNscyA9ICdzdHJpbmcnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAoL3RydWV8ZmFsc2UvLnRlc3QobWF0Y2gpKSB7XHJcbiAgICAgICAgICBjbHMgPSAnYm9vbGVhbic7XHJcbiAgICAgICAgfSBlbHNlIGlmICgvbnVsbC8udGVzdChtYXRjaCkpIHtcclxuICAgICAgICAgIGNscyA9ICdudWxsJztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICc8c3BhbiBjbGFzcz1cIicgKyBjbHMgKyAnXCI+JyArIG1hdGNoICsgJzwvc3Bhbj4nO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgY29weSgpOiB2b2lkIHtcclxuICAgIGNvcHlUb0NsaXBib2FyZCh7XHJcbiAgICAgIHZhbHVlOiB0aGlzLnNlcnZpY2UuZ2V0UHVyZVN0cmluZygpLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjbG9zZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VydmljZS5jbG9zZURpYWxvZygpO1xyXG4gIH1cclxufVxyXG5cclxuaW50ZXJmYWNlIElDb3B5VG9DbGlwYm9hcmQge1xyXG4gIC8qKiBIVE1MIHJlZmVyZW5jZSBpZGVudGlmaWVyIGBgYDxkaXYgaWQ9XCJmb29cIj48L2Rpdj5gYGAgICovXHJcbiAgdGFyZ2V0Pzogc3RyaW5nO1xyXG4gIC8qKiBTdHJpbmcgdmFsdWUgKi9cclxuICB2YWx1ZT86IHN0cmluZztcclxuICAvKiogKE9wdGlvbmFsKSBtZXNzYWdlIHRvIGRpc3BsYXkgaW4gc25hY2tiYXIgb24gc3VjY2VzcyAqL1xyXG4gIG1lc3NhZ2U/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBjb3B5VG9DbGlwYm9hcmQgPSBhc3luYyAoeyB0YXJnZXQsIG1lc3NhZ2UsIHZhbHVlIH06IElDb3B5VG9DbGlwYm9hcmQpID0+IHtcclxuICB0cnkge1xyXG4gICAgbGV0IGNvcHlWYWx1ZSA9ICcnO1xyXG5cclxuICAgIGlmICghbmF2aWdhdG9yLmNsaXBib2FyZCkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJCcm93c2VyIGRvbid0IGhhdmUgc3VwcG9ydCBmb3IgbmF0aXZlIGNsaXBib2FyZC5cIik7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRhcmdldCkge1xyXG4gICAgICBjb25zdCBub2RlID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0YXJnZXQpO1xyXG5cclxuICAgICAgaWYgKCFub2RlIHx8ICFub2RlLnRleHRDb250ZW50KSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFbGVtZW50IG5vdCBmb3VuZCcpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB2YWx1ZSA9IG5vZGUudGV4dENvbnRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIGNvcHlWYWx1ZSA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIGF3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGNvcHlWYWx1ZSk7XHJcbiAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xyXG4gICAgY29uc29sZS5lcnJvcihlcnJvci50b1N0cmluZygpKTtcclxuICB9XHJcbn07XHJcbiIsIjxkaXYgY2xhc3M9XCJzbWFydERldlRvb2xEaWFsb2dDb250YWluZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJcIj5cclxuICAgICAgICA8aDI+RGV2ZWxvcGVyIHRvb2w8L2gyPlxyXG4gICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIHRpdGxlPVwiY2xvc2VcIiAoY2xpY2spPVwiY2xvc2UoKVwiPlxyXG4gICAgICAgICAgICA8c21hcnQtaWNvbiBpY29uPVwiY2xvc2VcIj48L3NtYXJ0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyZXF1ZXN0c0NvbnRhaW5lclwiPlxyXG4gICAgICAgIDxtYXQtYWNjb3JkaW9uIG11bHRpPlxyXG4gICAgICAgICAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbFxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJyZXF1ZXN0Q2FyZFwiXHJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJhcGlDYWxsLnJlc3BvbnNlU3RhdHVzID09PSAyMDAgPyAnJyA6ICdoYXNFcnJvcidcIlxyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGFwaUNhbGwgb2YgZGVzY3JpcHRvcj8uYXBpQ2FsbHM7IGxldCBpID0gaW5kZXhcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1wYW5lbC10aXRsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlUGFuZWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGFwaUNhbGwucmVzcG9uc2VEYXRlIHwgc21hcnREZXZUb29sRGF0ZVBpcGUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidXJsVGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGFwaUNhbGwudXJsIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cImFwaUNhbGwucmVxdWVzdE1ldGhvZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGFwaUNhbGwucmVxdWVzdE1ldGhvZCB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cIidzdGF0dXNDb2RlLScgKyBhcGlDYWxsLnJlc3BvbnNlU3RhdHVzLnRvU3RyaW5nKClbMF1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBhcGlDYWxsLnJlc3BvbnNlU3RhdHVzIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtcGFuZWwtdGl0bGU+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYWluQ29sIGhlYWRpbmdcIj5SZXF1ZXN0PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbkNvbCBoZWFkaW5nXCI+UmVzcG9uc2U8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYWluQ29sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmdcIj5EYXRlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgYXBpQ2FsbC5yZXF1ZXN0RGF0ZSB8IHNtYXJ0RGV2VG9vbERhdGVQaXBlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYWluQ29sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmdcIj5EYXRlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgYXBpQ2FsbC5yZXNwb25zZURhdGUgfCBzbWFydERldlRvb2xEYXRlUGlwZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbkNvbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nXCI+SGVhZGVyczwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbkNvbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nXCI+SGVhZGVyczwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbkNvbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwcmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhcGlDYWxsLnJlcXVlc3RIZWFkZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRhdGFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cImdldEJvZHkoYXBpQ2FsbC5yZXF1ZXN0SGVhZGVyKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvcHJlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhYXBpQ2FsbC5yZXF1ZXN0SGVhZGVyXCIgY2xhc3M9XCJkYXRhXCI+bnVsbDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbkNvbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwcmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhcGlDYWxsLnJlc3BvbnNlSGVhZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkYXRhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJnZXRCb2R5KGFwaUNhbGwucmVzcG9uc2VIZWFkZXIpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9wcmU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFhcGlDYWxsLnJlc3BvbnNlSGVhZGVyXCIgY2xhc3M9XCJkYXRhXCI+bnVsbDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbkNvbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGFcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1haW5Db2xcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZ1wiPlN0YXR1czwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRhXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGFwaUNhbGwucmVzcG9uc2VTdGF0dXMgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1haW5Db2xcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZ1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRhXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYWluQ29sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmdcIj5TdGF0dXMgdGV4dDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRhXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGFwaUNhbGwucmVzcG9uc2VTdGF0dXNUZXh0IH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYWluQ29sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmdcIj5Cb2R5PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYWluQ29sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmdcIj5Cb2R5PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYWluQ29sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHByZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFwaUNhbGwucmVxdWVzdEJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRhdGFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cImdldEJvZHkoYXBpQ2FsbC5yZXF1ZXN0Qm9keSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3ByZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWFwaUNhbGwucmVxdWVzdEJvZHlcIiBjbGFzcz1cImRhdGFcIj5udWxsPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYWluQ29sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHByZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFwaUNhbGwucmVzcG9uc2VCb2R5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkYXRhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJnZXRCb2R5KGFwaUNhbGwucmVzcG9uc2VCb2R5KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvcHJlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhYXBpQ2FsbC5yZXNwb25zZUJvZHlcIiBjbGFzcz1cImRhdGFcIj5udWxsPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYWluQ29sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmdcIj5TZXNzaW9uIFN0b3JhZ2U8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1haW5Db2xcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZ1wiPkxvY2FsIFN0b3JhZ2U8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1haW5Db2xcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZ1wiPkNvb2tpZXM8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1haW5Db2xcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cHJlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYXBpQ2FsbC5zZXNzaW9uU3RvcmFnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZGF0YVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiZ2V0Qm9keShhcGlDYWxsLnNlc3Npb25TdG9yYWdlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvcHJlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhYXBpQ2FsbC5zZXNzaW9uU3RvcmFnZVwiIGNsYXNzPVwiZGF0YVwiPm51bGw8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1haW5Db2xcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cHJlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYXBpQ2FsbC5sb2NhbFN0b3JhZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRhdGFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cImdldEJvZHkoYXBpQ2FsbC5sb2NhbFN0b3JhZ2UpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9wcmU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFhcGlDYWxsLmxvY2FsU3RvcmFnZVwiIGNsYXNzPVwiZGF0YVwiPm51bGw8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1haW5Db2xcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cHJlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYXBpQ2FsbC5jb29raWVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkYXRhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJnZXRCb2R5KGFwaUNhbGwuY29va2llcylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3ByZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWFwaUNhbGwuY29va2llc1wiIGNsYXNzPVwiZGF0YVwiPm51bGw8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L21hdC1leHBhbnNpb24tcGFuZWw+XHJcbiAgICAgICAgPC9tYXQtYWNjb3JkaW9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uc0NvbnRhaW5lclwiPlxyXG4gICAgICAgIDxidXR0b24gY29sb3I9XCJwcmltYXJ5XCIgbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cImNvcHkoKVwiPkNvcHk8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIGNvbG9yPVwid2FyblwiIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJjbGVhcigpXCI+Q2xlYXI8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
package/esm2020/lib/session/dev-tool/smart-dev-tool-dialog/smart-dev-tool-dialog.service.mjs
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { SmartdialogService } from '../../../smart-dialog/projects';
|
|
3
|
-
import { SmartDevToolDialogComponent } from './smart-dev-tool-dialog.component';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/material/dialog";
|
|
6
|
-
import * as i2 from "@angular/router";
|
|
7
|
-
import * as i3 from "../smart-dev-tool.service";
|
|
8
|
-
export class SmartDevToolDialogService extends SmartdialogService {
|
|
9
|
-
constructor(dialog, router, service) {
|
|
10
|
-
super(dialog, router);
|
|
11
|
-
this.service = service;
|
|
12
|
-
this.update = this.service.descriptorChanged;
|
|
13
|
-
}
|
|
14
|
-
handleAfterClosed(result) { }
|
|
15
|
-
openDialog() {
|
|
16
|
-
const dialogData = {
|
|
17
|
-
content: {
|
|
18
|
-
title: '',
|
|
19
|
-
},
|
|
20
|
-
size: {},
|
|
21
|
-
customComponent: SmartDevToolDialogComponent,
|
|
22
|
-
};
|
|
23
|
-
this.createDialog(dialogData, SmartDevToolDialogComponent);
|
|
24
|
-
}
|
|
25
|
-
getData() {
|
|
26
|
-
return this.service.descriptor;
|
|
27
|
-
}
|
|
28
|
-
getPureString() {
|
|
29
|
-
return this.service.getPureString();
|
|
30
|
-
}
|
|
31
|
-
clear() {
|
|
32
|
-
this.service.clear();
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
SmartDevToolDialogService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartDevToolDialogService, deps: [{ token: i1.MatDialog }, { token: i2.Router }, { token: i3.SmartDevToolService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
36
|
-
SmartDevToolDialogService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartDevToolDialogService, providedIn: 'root' });
|
|
37
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartDevToolDialogService, decorators: [{
|
|
38
|
-
type: Injectable,
|
|
39
|
-
args: [{
|
|
40
|
-
providedIn: 'root',
|
|
41
|
-
}]
|
|
42
|
-
}], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.Router }, { type: i3.SmartDevToolService }]; } });
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtZGV2LXRvb2wtZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zZXNzaW9uL2Rldi10b29sL3NtYXJ0LWRldi10b29sLWRpYWxvZy9zbWFydC1kZXYtdG9vbC1kaWFsb2cuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTNDLE9BQU8sRUFBbUIsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVyRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7QUFLaEYsTUFBTSxPQUFPLHlCQUEwQixTQUFRLGtCQUFrQjtJQUcvRCxZQUFZLE1BQWlCLEVBQUUsTUFBYyxFQUFTLE9BQTRCO1FBQ2hGLEtBQUssQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFEOEIsWUFBTyxHQUFQLE9BQU8sQ0FBcUI7UUFFaEYsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDO0lBQy9DLENBQUM7SUFFUSxpQkFBaUIsQ0FBQyxNQUFXLElBQVMsQ0FBQztJQUV2QyxVQUFVO1FBQ2pCLE1BQU0sVUFBVSxHQUFvQjtZQUNsQyxPQUFPLEVBQUU7Z0JBQ1AsS0FBSyxFQUFFLEVBQUU7YUFDVjtZQUNELElBQUksRUFBRSxFQUFFO1lBQ1IsZUFBZSxFQUFFLDJCQUEyQjtTQUM3QyxDQUFDO1FBQ0YsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsMkJBQTJCLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFXLENBQUM7SUFDbEMsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3ZCLENBQUM7O3NIQS9CVSx5QkFBeUI7MEhBQXpCLHlCQUF5QixjQUZ4QixNQUFNOzJGQUVQLHlCQUF5QjtrQkFIckMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU21hcnREaWFsb2dEYXRhLCBTbWFydGRpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zbWFydC1kaWFsb2cvcHJvamVjdHMnO1xyXG5pbXBvcnQgeyBTbWFydERldlRvb2xEZXNjcmlwdG9yLCBTbWFydERldlRvb2xTZXJ2aWNlIH0gZnJvbSAnLi4vc21hcnQtZGV2LXRvb2wuc2VydmljZSc7XHJcbmltcG9ydCB7IFNtYXJ0RGV2VG9vbERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vc21hcnQtZGV2LXRvb2wtZGlhbG9nLmNvbXBvbmVudCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU21hcnREZXZUb29sRGlhbG9nU2VydmljZSBleHRlbmRzIFNtYXJ0ZGlhbG9nU2VydmljZSB7XHJcbiAgdXBkYXRlOiBTdWJqZWN0PHZvaWQ+O1xyXG5cclxuICBjb25zdHJ1Y3RvcihkaWFsb2c6IE1hdERpYWxvZywgcm91dGVyOiBSb3V0ZXIsIHB1YmxpYyBzZXJ2aWNlOiBTbWFydERldlRvb2xTZXJ2aWNlKSB7XHJcbiAgICBzdXBlcihkaWFsb2csIHJvdXRlcik7XHJcbiAgICB0aGlzLnVwZGF0ZSA9IHRoaXMuc2VydmljZS5kZXNjcmlwdG9yQ2hhbmdlZDtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIGhhbmRsZUFmdGVyQ2xvc2VkKHJlc3VsdDogYW55KTogdm9pZCB7fVxyXG5cclxuICBvdmVycmlkZSBvcGVuRGlhbG9nKCk6IHZvaWQge1xyXG4gICAgY29uc3QgZGlhbG9nRGF0YTogU21hcnREaWFsb2dEYXRhID0ge1xyXG4gICAgICBjb250ZW50OiB7XHJcbiAgICAgICAgdGl0bGU6ICcnLFxyXG4gICAgICB9LFxyXG4gICAgICBzaXplOiB7fSxcclxuICAgICAgY3VzdG9tQ29tcG9uZW50OiBTbWFydERldlRvb2xEaWFsb2dDb21wb25lbnQsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5jcmVhdGVEaWFsb2coZGlhbG9nRGF0YSwgU21hcnREZXZUb29sRGlhbG9nQ29tcG9uZW50KTtcclxuICB9XHJcblxyXG4gIGdldERhdGEoKTogU21hcnREZXZUb29sRGVzY3JpcHRvciB7XHJcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmRlc2NyaXB0b3IhO1xyXG4gIH1cclxuXHJcbiAgZ2V0UHVyZVN0cmluZygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZS5nZXRQdXJlU3RyaW5nKCk7XHJcbiAgfVxyXG5cclxuICBjbGVhcigpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VydmljZS5jbGVhcigpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import { Subject, takeUntil } from 'rxjs';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "../smart-dev-tool-dialog/smart-dev-tool-dialog.service";
|
|
5
|
-
import * as i2 from "@angular/material/button";
|
|
6
|
-
import * as i3 from "../../../smart-icon/smart-icon/smart-icon.component";
|
|
7
|
-
import * as i4 from "@angular/common";
|
|
8
|
-
export class SmartDevToolFloatingButtonComponent {
|
|
9
|
-
constructor(service) {
|
|
10
|
-
this.service = service;
|
|
11
|
-
this._destroy$ = new Subject();
|
|
12
|
-
this.adminKeyName = 'useDevTool';
|
|
13
|
-
this.isShown = false;
|
|
14
|
-
this.errorsCount = '';
|
|
15
|
-
this.service.service.newErrorsCountChanged.pipe(takeUntil(this._destroy$)).subscribe(() => {
|
|
16
|
-
this.errorsCount = `${this.service.service.newErrorsCount > 0 ? this.service.service.newErrorsCount : ''}`;
|
|
17
|
-
});
|
|
18
|
-
window.addEventListener('storage', (event) => {
|
|
19
|
-
if (event.storageArea === localStorage) {
|
|
20
|
-
if (Object.keys(localStorage).includes(this.adminKeyName)) {
|
|
21
|
-
this.isShown = localStorage.getItem(this.adminKeyName) === 'true';
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
this.isShown = localStorage.getItem(this.adminKeyName) === 'true';
|
|
26
|
-
}
|
|
27
|
-
ngOnDestroy() {
|
|
28
|
-
this._destroy$.next();
|
|
29
|
-
}
|
|
30
|
-
openDevToolDialog() {
|
|
31
|
-
this.service.openDialog();
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
SmartDevToolFloatingButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartDevToolFloatingButtonComponent, deps: [{ token: i1.SmartDevToolDialogService }], target: i0.ɵɵFactoryTarget.Component });
|
|
35
|
-
SmartDevToolFloatingButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: SmartDevToolFloatingButtonComponent, selector: "smart-session-dev-tool", ngImport: i0, template: "<button\r\n *ngIf=\"isShown\"\r\n mat-fab\r\n [color]=\"errorsCount.length ? 'warn' : 'accent'\"\r\n class=\"floatingButton\"\r\n extended\r\n title=\"devTool\"\r\n (click)=\"openDevToolDialog()\"\r\n>\r\n <smart-icon color=\"white\" icon=\"developer_mode\"></smart-icon>\r\n {{ errorsCount }}\r\n</button>\r\n", styles: [".floatingButton{position:fixed;right:2rem;bottom:2rem}.mat-icon.mat-white{color:#fff}\n"], components: [{ type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i3.SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartDevToolFloatingButtonComponent, decorators: [{
|
|
37
|
-
type: Component,
|
|
38
|
-
args: [{ selector: 'smart-session-dev-tool', template: "<button\r\n *ngIf=\"isShown\"\r\n mat-fab\r\n [color]=\"errorsCount.length ? 'warn' : 'accent'\"\r\n class=\"floatingButton\"\r\n extended\r\n title=\"devTool\"\r\n (click)=\"openDevToolDialog()\"\r\n>\r\n <smart-icon color=\"white\" icon=\"developer_mode\"></smart-icon>\r\n {{ errorsCount }}\r\n</button>\r\n", styles: [".floatingButton{position:fixed;right:2rem;bottom:2rem}.mat-icon.mat-white{color:#fff}\n"] }]
|
|
39
|
-
}], ctorParameters: function () { return [{ type: i1.SmartDevToolDialogService }]; } });
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtZGV2LXRvb2wtZmxvYXRpbmctYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3Nlc3Npb24vZGV2LXRvb2wvc21hcnQtZGV2LXRvb2wtZmxvYXRpbmctYnV0dG9uL3NtYXJ0LWRldi10b29sLWZsb2F0aW5nLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zZXNzaW9uL2Rldi10b29sL3NtYXJ0LWRldi10b29sLWZsb2F0aW5nLWJ1dHRvbi9zbWFydC1kZXYtdG9vbC1mbG9hdGluZy1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7O0FBUTFDLE1BQU0sT0FBTyxtQ0FBbUM7SUFROUMsWUFBb0IsT0FBa0M7UUFBbEMsWUFBTyxHQUFQLE9BQU8sQ0FBMkI7UUFQOUMsY0FBUyxHQUFrQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRWpELGlCQUFZLEdBQVcsWUFBWSxDQUFDO1FBQ3BDLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFFekIsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFHdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3hGLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUNsRixFQUFFLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUMzQyxJQUFJLEtBQUssQ0FBQyxXQUFXLEtBQUssWUFBWSxFQUFFO2dCQUN0QyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRTtvQkFDekQsSUFBSSxDQUFDLE9BQU8sR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxNQUFNLENBQUM7aUJBQ25FO2FBQ0Y7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxPQUFPLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssTUFBTSxDQUFDO0lBQ3BFLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUM1QixDQUFDOztnSUEvQlUsbUNBQW1DO29IQUFuQyxtQ0FBbUMsOERDVGhELG1WQVlBOzJGREhhLG1DQUFtQztrQkFML0MsU0FBUzsrQkFDRSx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU21hcnREZXZUb29sRGlhbG9nU2VydmljZSB9IGZyb20gJy4uL3NtYXJ0LWRldi10b29sLWRpYWxvZy9zbWFydC1kZXYtdG9vbC1kaWFsb2cuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NtYXJ0LXNlc3Npb24tZGV2LXRvb2wnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zbWFydC1kZXYtdG9vbC1mbG9hdGluZy1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NtYXJ0LWRldi10b29sLWZsb2F0aW5nLWJ1dHRvbi5jb21wb25lbnQuY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTbWFydERldlRvb2xGbG9hdGluZ0J1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBfZGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBhZG1pbktleU5hbWU6IHN0cmluZyA9ICd1c2VEZXZUb29sJztcclxuICBpc1Nob3duOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGVycm9yc0NvdW50OiBzdHJpbmcgPSAnJztcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzZXJ2aWNlOiBTbWFydERldlRvb2xEaWFsb2dTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLnNlcnZpY2Uuc2VydmljZS5uZXdFcnJvcnNDb3VudENoYW5nZWQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLmVycm9yc0NvdW50ID0gYCR7XHJcbiAgICAgICAgdGhpcy5zZXJ2aWNlLnNlcnZpY2UubmV3RXJyb3JzQ291bnQgPiAwID8gdGhpcy5zZXJ2aWNlLnNlcnZpY2UubmV3RXJyb3JzQ291bnQgOiAnJ1xyXG4gICAgICB9YDtcclxuICAgIH0pO1xyXG5cclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzdG9yYWdlJywgKGV2ZW50KSA9PiB7XHJcbiAgICAgIGlmIChldmVudC5zdG9yYWdlQXJlYSA9PT0gbG9jYWxTdG9yYWdlKSB7XHJcbiAgICAgICAgaWYgKE9iamVjdC5rZXlzKGxvY2FsU3RvcmFnZSkuaW5jbHVkZXModGhpcy5hZG1pbktleU5hbWUpKSB7XHJcbiAgICAgICAgICB0aGlzLmlzU2hvd24gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmFkbWluS2V5TmFtZSkgPT09ICd0cnVlJztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuaXNTaG93biA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuYWRtaW5LZXlOYW1lKSA9PT0gJ3RydWUnO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcclxuICB9XHJcblxyXG4gIG9wZW5EZXZUb29sRGlhbG9nKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXJ2aWNlLm9wZW5EaWFsb2coKTtcclxuICB9XHJcbn1cclxuIiwiPGJ1dHRvblxyXG4gICAgKm5nSWY9XCJpc1Nob3duXCJcclxuICAgIG1hdC1mYWJcclxuICAgIFtjb2xvcl09XCJlcnJvcnNDb3VudC5sZW5ndGggPyAnd2FybicgOiAnYWNjZW50J1wiXHJcbiAgICBjbGFzcz1cImZsb2F0aW5nQnV0dG9uXCJcclxuICAgIGV4dGVuZGVkXHJcbiAgICB0aXRsZT1cImRldlRvb2xcIlxyXG4gICAgKGNsaWNrKT1cIm9wZW5EZXZUb29sRGlhbG9nKClcIlxyXG4+XHJcbiAgICA8c21hcnQtaWNvbiBjb2xvcj1cIndoaXRlXCIgaWNvbj1cImRldmVsb3Blcl9tb2RlXCI+PC9zbWFydC1pY29uPlxyXG4gICAge3sgZXJyb3JzQ291bnQgfX1cclxuPC9idXR0b24+XHJcbiJdfQ==
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { HttpEventType, } from "@angular/common/http";
|
|
2
|
-
import { Injectable } from "@angular/core";
|
|
3
|
-
import { catchError, map, throwError } from "rxjs";
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "./smart-dev-tool.service";
|
|
6
|
-
export class SmartDevToolInterceptor {
|
|
7
|
-
constructor(service) {
|
|
8
|
-
this.service = service;
|
|
9
|
-
}
|
|
10
|
-
intercept(request, next) {
|
|
11
|
-
if (!this.service.isActive) {
|
|
12
|
-
return next.handle(request);
|
|
13
|
-
}
|
|
14
|
-
let requestDate = new Date();
|
|
15
|
-
return next.handle(request).pipe(map((event) => {
|
|
16
|
-
if (event.type === HttpEventType.Response) {
|
|
17
|
-
let responseDate = new Date();
|
|
18
|
-
this.service.writeResponse(request, event, requestDate, responseDate);
|
|
19
|
-
}
|
|
20
|
-
return event;
|
|
21
|
-
}));
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
SmartDevToolInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartDevToolInterceptor, deps: [{ token: i1.SmartDevToolService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
25
|
-
SmartDevToolInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartDevToolInterceptor });
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartDevToolInterceptor, decorators: [{
|
|
27
|
-
type: Injectable
|
|
28
|
-
}], ctorParameters: function () { return [{ type: i1.SmartDevToolService }]; } });
|
|
29
|
-
export class SmartDevToolErrorInterceptor {
|
|
30
|
-
constructor(service) {
|
|
31
|
-
this.service = service;
|
|
32
|
-
}
|
|
33
|
-
intercept(request, next) {
|
|
34
|
-
if (!this.service.isActive) {
|
|
35
|
-
return next.handle(request);
|
|
36
|
-
}
|
|
37
|
-
let requestDate = new Date();
|
|
38
|
-
return next.handle(request).pipe(catchError((error) => {
|
|
39
|
-
if (error.status !== 200) {
|
|
40
|
-
let responseDate = new Date();
|
|
41
|
-
this.service.writeResponse(request, error, requestDate, responseDate);
|
|
42
|
-
}
|
|
43
|
-
return throwError(error);
|
|
44
|
-
}));
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
SmartDevToolErrorInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartDevToolErrorInterceptor, deps: [{ token: i1.SmartDevToolService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
48
|
-
SmartDevToolErrorInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartDevToolErrorInterceptor });
|
|
49
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartDevToolErrorInterceptor, decorators: [{
|
|
50
|
-
type: Injectable
|
|
51
|
-
}], ctorParameters: function () { return [{ type: i1.SmartDevToolService }]; } });
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtZGV2LXRvb2wuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zZXNzaW9uL2Rldi10b29sL3NtYXJ0LWRldi10b29sLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxhQUFhLEdBSWhCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBYyxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQUkvRCxNQUFNLE9BQU8sdUJBQXVCO0lBQ2hDLFlBQW9CLE9BQTRCO1FBQTVCLFlBQU8sR0FBUCxPQUFPLENBQXFCO0lBQUcsQ0FBQztJQUVwRCxTQUFTLENBQUMsT0FBNkIsRUFBRSxJQUFpQjtRQUN0RCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUU7WUFDeEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQy9CO1FBQ0QsSUFBSSxXQUFXLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUM3QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUM1QixHQUFHLENBQUMsQ0FBQyxLQUFxQixFQUFFLEVBQUU7WUFDMUIsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLGFBQWEsQ0FBQyxRQUFRLEVBQUU7Z0JBQ3ZDLElBQUksWUFBWSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFlBQVksQ0FBQyxDQUFDO2FBQ3pFO1lBRUQsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7O29IQWxCUSx1QkFBdUI7d0hBQXZCLHVCQUF1QjsyRkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVOztBQXNCWCxNQUFNLE9BQU8sNEJBQTRCO0lBQ3JDLFlBQW9CLE9BQTRCO1FBQTVCLFlBQU8sR0FBUCxPQUFPLENBQXFCO0lBQUcsQ0FBQztJQUVwRCxTQUFTLENBQUMsT0FBNkIsRUFBRSxJQUFpQjtRQUN0RCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUU7WUFDeEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQy9CO1FBQ0QsSUFBSSxXQUFXLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUM3QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUM1QixVQUFVLENBQUMsQ0FBQyxLQUF3QixFQUFFLEVBQUU7WUFDcEMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRTtnQkFDdEIsSUFBSSxZQUFZLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDOUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsWUFBWSxDQUFDLENBQUM7YUFDekU7WUFFRCxPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQzs7eUhBbEJRLDRCQUE0Qjs2SEFBNUIsNEJBQTRCOzJGQUE1Qiw0QkFBNEI7a0JBRHhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgSHR0cEVycm9yUmVzcG9uc2UsXHJcbiAgICBIdHRwRXZlbnQsXHJcbiAgICBIdHRwRXZlbnRUeXBlLFxyXG4gICAgSHR0cEhhbmRsZXIsXHJcbiAgICBIdHRwSW50ZXJjZXB0b3IsXHJcbiAgICBIdHRwUmVxdWVzdCxcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IFNtYXJ0RGV2VG9vbFNlcnZpY2UgfSBmcm9tIFwiLi9zbWFydC1kZXYtdG9vbC5zZXJ2aWNlXCI7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBTbWFydERldlRvb2xJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNlcnZpY2U6IFNtYXJ0RGV2VG9vbFNlcnZpY2UpIHt9XHJcblxyXG4gICAgaW50ZXJjZXB0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PHVua25vd24+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PHVua25vd24+PiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNlcnZpY2UuaXNBY3RpdmUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcXVlc3QpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgcmVxdWVzdERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXF1ZXN0KS5waXBlKFxyXG4gICAgICAgICAgICBtYXAoKGV2ZW50OiBIdHRwRXZlbnQ8YW55PikgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuUmVzcG9uc2UpIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgcmVzcG9uc2VEYXRlID0gbmV3IERhdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2Uud3JpdGVSZXNwb25zZShyZXF1ZXN0LCBldmVudCwgcmVxdWVzdERhdGUsIHJlc3BvbnNlRGF0ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGV2ZW50O1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbn1cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgU21hcnREZXZUb29sRXJyb3JJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNlcnZpY2U6IFNtYXJ0RGV2VG9vbFNlcnZpY2UpIHt9XHJcblxyXG4gICAgaW50ZXJjZXB0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PHVua25vd24+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PHVua25vd24+PiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNlcnZpY2UuaXNBY3RpdmUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcXVlc3QpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgcmVxdWVzdERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXF1ZXN0KS5waXBlKFxyXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChlcnJvci5zdGF0dXMgIT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCByZXNwb25zZURhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VydmljZS53cml0ZVJlc3BvbnNlKHJlcXVlc3QsIGVycm9yLCByZXF1ZXN0RGF0ZSwgcmVzcG9uc2VEYXRlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcik7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxufVxyXG4iXX0=
|