@smartbit4all/ng-client 3.1.26 → 3.1.29
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-grid/smart-grid.component.mjs +17 -3
- package/esm2020/lib/smart-table/smarttable.model.mjs +19 -20
- package/esm2020/lib/smart-table/smarttable.module.mjs +6 -2
- package/esm2020/lib/smart-table/tables/material-table/material-table.component.mjs +6 -5
- package/esm2020/lib/smart-table/tables/table.mjs +20 -8
- package/esm2020/lib/view-context/api/api/api.mjs +1 -1
- package/esm2020/lib/view-context/api/api/view.service.mjs +1 -1
- package/esm2020/lib/view-context/api/api.module.mjs +1 -1
- package/esm2020/lib/view-context/api/configuration.mjs +1 -1
- package/esm2020/lib/view-context/api/encoder.mjs +1 -1
- package/esm2020/lib/view-context/api/index.mjs +1 -1
- package/esm2020/lib/view-context/api/model/closeResult.mjs +1 -1
- package/esm2020/lib/view-context/api/model/componentConstraint.mjs +1 -1
- package/esm2020/lib/view-context/api/model/componentModel.mjs +1 -1
- package/esm2020/lib/view-context/api/model/componentModelChange.mjs +1 -1
- package/esm2020/lib/view-context/api/model/dataChange.mjs +1 -1
- package/esm2020/lib/view-context/api/model/dataChangeEvent.mjs +1 -1
- package/esm2020/lib/view-context/api/model/dataChangeKind.mjs +1 -1
- package/esm2020/lib/view-context/api/model/downloadedFile.mjs +1 -1
- package/esm2020/lib/view-context/api/model/imageResource.mjs +1 -1
- package/esm2020/lib/view-context/api/model/link.mjs +1 -1
- package/esm2020/lib/view-context/api/model/messageData.mjs +1 -1
- package/esm2020/lib/view-context/api/model/messageOption.mjs +1 -1
- package/esm2020/lib/view-context/api/model/messageOptionType.mjs +1 -1
- package/esm2020/lib/view-context/api/model/messageResult.mjs +1 -1
- package/esm2020/lib/view-context/api/model/messageType.mjs +1 -1
- package/esm2020/lib/view-context/api/model/models.mjs +1 -1
- package/esm2020/lib/view-context/api/model/openPendingData.mjs +1 -1
- package/esm2020/lib/view-context/api/model/smartLinkData.mjs +1 -1
- package/esm2020/lib/view-context/api/model/uiAction.mjs +1 -1
- package/esm2020/lib/view-context/api/model/uiActionButtonDescriptor.mjs +1 -1
- package/esm2020/lib/view-context/api/model/uiActionButtonIconPos.mjs +1 -1
- package/esm2020/lib/view-context/api/model/uiActionButtonType.mjs +3 -2
- package/esm2020/lib/view-context/api/model/uiActionConstraint.mjs +1 -1
- package/esm2020/lib/view-context/api/model/uiActionDescriptor.mjs +1 -1
- package/esm2020/lib/view-context/api/model/uiActionDialogDescriptor.mjs +1 -1
- package/esm2020/lib/view-context/api/model/uiActionFeedbackType.mjs +1 -1
- package/esm2020/lib/view-context/api/model/uiActionInputType.mjs +1 -1
- package/esm2020/lib/view-context/api/model/uiActionRequest.mjs +1 -1
- package/esm2020/lib/view-context/api/model/uiActionUploadDescriptor.mjs +1 -1
- package/esm2020/lib/view-context/api/model/uploadedFile.mjs +1 -1
- package/esm2020/lib/view-context/api/model/valueSet.mjs +1 -1
- package/esm2020/lib/view-context/api/model/view.mjs +1 -1
- package/esm2020/lib/view-context/api/model/viewApiError.mjs +1 -1
- package/esm2020/lib/view-context/api/model/viewConstraint.mjs +1 -1
- package/esm2020/lib/view-context/api/model/viewContext.mjs +1 -1
- package/esm2020/lib/view-context/api/model/viewContextChange.mjs +1 -1
- package/esm2020/lib/view-context/api/model/viewContextData.mjs +1 -1
- package/esm2020/lib/view-context/api/model/viewContextUpdate.mjs +1 -1
- package/esm2020/lib/view-context/api/model/viewData.mjs +1 -1
- package/esm2020/lib/view-context/api/model/viewEventHandler.mjs +1 -1
- package/esm2020/lib/view-context/api/model/viewState.mjs +1 -1
- package/esm2020/lib/view-context/api/model/viewStateUpdate.mjs +1 -1
- package/esm2020/lib/view-context/api/model/viewType.mjs +1 -1
- package/esm2020/lib/view-context/api/param.mjs +1 -1
- package/esm2020/lib/view-context/api/variables.mjs +1 -1
- package/fesm2015/smartbit4all-ng-client.mjs +78 -418
- package/fesm2015/smartbit4all-ng-client.mjs.map +1 -1
- package/fesm2020/smartbit4all-ng-client.mjs +74 -411
- 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-table/smarttable.model.d.ts +7 -3
- package/lib/smart-table/smarttable.module.d.ts +2 -1
- package/lib/smart-table/tables/table.d.ts +4 -1
- package/lib/view-context/api/model/uiActionButtonType.d.ts +2 -1
- package/package.json +1 -1
- package/smartbit4all-ng-client-3.1.29.tgz +0 -0
- package/src/lib/view-context/api/README.md +226 -226
- 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.26.tgz +0 -0
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtZGV2LXRvb2wtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3Nlc3Npb24vZGV2LXRvb2wvc21hcnQtZGV2LXRvb2wtZGlhbG9nL3NtYXJ0LWRldi10b29sLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zZXNzaW9uL2Rldi10b29sL3NtYXJ0LWRldi10b29sLWRpYWxvZy9zbWFydC1kZXYtdG9vbC1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7QUFTMUMsTUFBTSxPQUFPLDJCQUEyQjtJQUt0QyxZQUFvQixPQUFrQztRQUFsQyxZQUFPLEdBQVAsT0FBTyxDQUEyQjtRQUo5QyxjQUFTLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFLL0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNqRSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsV0FBVztRQUNULElB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QUMsQ0FBQztLQUNqQztBQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTbWFydERldlRvb2xEZXNjcmlwdG9yIH0gZnJvbSAnLi4vc21hcnQtZGV2LXRvb2wuc2VydmljZSc7XHJcbmltcG9ydCB7IFNtYXJ0RGV2VG9vbERpYWxvZ1NlcnZpY2UgfSBmcm9tICcuL3NtYXJ0LWRldi10b29sLWRpYWxvZy5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXNtYXJ0LWRldi10b29sLWRpYWxvZycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NtYXJ0LWRldi10b29sLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc21hcnQtZGV2LXRvb2wtZGlhbG9nLmNvbXBvbmVudC5jc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNtYXJ0RGV2VG9vbERpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBfZGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBkZXNjcmlwdG9yPzogU21hcnREZXZUb29sRGVzY3JpcHRvcjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzZXJ2aWNlOiBTbWFydERldlRvb2xEaWFsb2dTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLmRlc2NyaXB0b3IgPSB0aGlzLnNlcnZpY2UuZ2V0RGF0YSgpO1xyXG4gICAgdGhpcy5zZXJ2aWNlLnVwZGF0ZS5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuZGVzY3JpcHRvciA9IHRoaXMuc2VydmljZS5nZXREYXRhKCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2VydmljZS5zZXJ2aWNlLmNsZWFyRXJyb3JzKCk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xyXG4gIH1cclxuXHJcbiAgY2xlYXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlcnZpY2UuY2xlYXIoKTtcclxuICB9XHJcblxyXG4gIGdldEJvZHkoaW5wOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLnN5bnRheEhpZ2hsaWdodChpbnApO1xyXG4gIH1cclxuXHJcbiAgc3ludGF4SGlnaGxpZ2h0KGpzb246IGFueSkge1xyXG4gICAgaWYgKHR5cGVvZiBqc29uICE9ICdzdHJpbmcnKSB7XHJcbiAgICAgIGpzb24gPSBKU09OLnN0cmluZ2lmeShqc29uLCB1bmRlZmluZWQsIDIpO1xyXG4gICAgfVxyXG4gICAganNvbiA9IGpzb24ucmVwbGFjZSgvJi9nLCAnJmFtcDsnKS5yZXBsYWNlKC88L2csICcmbHQ7JykucmVwbGFjZSgvPi9nLCAnJmd0OycpO1xyXG4gICAgcmV0dXJuIGpzb24ucmVwbGFjZShcclxuICAgICAgLyhcIihcXFxcdVthLXpBLVowLTldezR9fFxcXFxbXnVdfFteXFxcXFwiXSkqXCIoXFxzKjopP3xcXGIodHJ1ZXxmYWxzZXxudWxsKVxcYnwtP1xcZCsoPzpcXC5cXGQqKT8oPzpbZUVdWytcXC1dP1xcZCspPykvZyxcclxuICAgICAgZnVuY3Rpb24gKG1hdGNoOiBhbnkpIHtcclxuICAgICAgICB2YXIgY2xzID0gJ251bWJlcic7XHJcbiAgICAgICAgaWYgKC9eXCIvLnRlc3QobWF0Y2gpKSB7XHJcbiAgICAgICAgICBpZiAoLzokLy50ZXN0KG1hdGNoKSkge1xyXG4gICAgICAgICAgICBjbHMgPSAna2V5JztcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNscyA9ICdzdHJpbmcnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAoL3RydWV8ZmFsc2UvLnRlc3QobWF0Y2gpKSB7XHJcbiAgICAgICAgICBjbHMgPSAnYm9vbGVhbic7XHJcbiAgICAgICAgfSBlbHNlIGlmICgvbnVsbC8udGVzdChtYXRjaCkpIHtcclxuICAgICAgICAgIGNscyA9ICdudWxsJztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICc8c3BhbiBjbGFzcz1cIicgKyBjbHMgKyAnXCI+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=
|
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
import { DatePipe } from '@angular/common';
|
|
2
|
-
import { Injectable, Pipe } from '@angular/core';
|
|
3
|
-
import { Subject } from 'rxjs';
|
|
4
|
-
import { SmartSubject } from '../../smart-subject/projects';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "../cookie-service/smart-cookie.service";
|
|
7
|
-
export class SmartDevToolService {
|
|
8
|
-
constructor(cookieService) {
|
|
9
|
-
this.cookieService = cookieService;
|
|
10
|
-
this.smartDevToolName = 'smartDevTool';
|
|
11
|
-
this.isSmartDevToolActiveName = 'smartDevToolActive';
|
|
12
|
-
this.isActive = false;
|
|
13
|
-
this.smartDevToolHoursName = 'smartDevToolHours';
|
|
14
|
-
this.smartDevToolMaxName = 'smartDevToolMaxCalls';
|
|
15
|
-
this.hoursToSave = 1;
|
|
16
|
-
this.maxNumOfSavedCalls = 50;
|
|
17
|
-
this._destroy$ = new Subject();
|
|
18
|
-
this.descriptorChanged = new SmartSubject(this._destroy$);
|
|
19
|
-
this.newErrorsCount = 0;
|
|
20
|
-
this.newErrorsCountChanged = new SmartSubject(this._destroy$);
|
|
21
|
-
this.setUpLocalStorage();
|
|
22
|
-
let apiCallsFromLocalStorage = localStorage.getItem(this.smartDevToolName);
|
|
23
|
-
if (apiCallsFromLocalStorage) {
|
|
24
|
-
this.descriptor = JSON.parse(apiCallsFromLocalStorage);
|
|
25
|
-
}
|
|
26
|
-
else {
|
|
27
|
-
this.descriptor = { apiCalls: [] };
|
|
28
|
-
this.save();
|
|
29
|
-
}
|
|
30
|
-
window.addEventListener('storage', (event) => {
|
|
31
|
-
if (event.storageArea === localStorage) {
|
|
32
|
-
this.isActive = localStorage.getItem(this.isSmartDevToolActiveName) === 'true';
|
|
33
|
-
let hoursToSaveString = localStorage.getItem(this.smartDevToolHoursName);
|
|
34
|
-
if (hoursToSaveString) {
|
|
35
|
-
this.hoursToSave = Number.parseInt(hoursToSaveString);
|
|
36
|
-
}
|
|
37
|
-
let maxNumOfSavedCalls = localStorage.getItem(this.smartDevToolMaxName);
|
|
38
|
-
if (maxNumOfSavedCalls) {
|
|
39
|
-
this.maxNumOfSavedCalls = Number.parseInt(maxNumOfSavedCalls);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
ngOnDestroy() {
|
|
45
|
-
this._destroy$.next();
|
|
46
|
-
this._destroy$.complete();
|
|
47
|
-
}
|
|
48
|
-
setUpLocalStorage() {
|
|
49
|
-
let keysOfLocalStorage = Object.keys(localStorage);
|
|
50
|
-
if (!keysOfLocalStorage.includes(this.isSmartDevToolActiveName)) {
|
|
51
|
-
localStorage.setItem(this.isSmartDevToolActiveName, 'true');
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
writeResponse(request, response, requestDate, responseDate) {
|
|
55
|
-
this.sanitizeByLength();
|
|
56
|
-
this.sanitizeByTime();
|
|
57
|
-
let requestHeader = this.createObject(request.headers.keys(), request.headers, false);
|
|
58
|
-
let responseHeader = this.createObject(response.headers.keys(), response.headers, false);
|
|
59
|
-
let _localStorage = this.createObject(Object.keys(localStorage).filter((key) => key !== this.smartDevToolName), localStorage, true);
|
|
60
|
-
let _sessionStorage = this.createObject(Object.keys(sessionStorage), sessionStorage, true);
|
|
61
|
-
let _cookies = this.cookieService.getAll();
|
|
62
|
-
this.descriptor.apiCalls = [
|
|
63
|
-
{
|
|
64
|
-
url: response.url,
|
|
65
|
-
requestBody: request.body,
|
|
66
|
-
requestHeader,
|
|
67
|
-
requestDate,
|
|
68
|
-
requestMethod: request.method,
|
|
69
|
-
responseBody: response.body ?? null,
|
|
70
|
-
responseHeader,
|
|
71
|
-
responseStatus: response.status,
|
|
72
|
-
responseStatusText: response.statusText,
|
|
73
|
-
responseDate,
|
|
74
|
-
localStorage: _localStorage,
|
|
75
|
-
sessionStorage: _sessionStorage,
|
|
76
|
-
cookies: _cookies,
|
|
77
|
-
},
|
|
78
|
-
...this.descriptor.apiCalls,
|
|
79
|
-
];
|
|
80
|
-
if (response.status !== 200) {
|
|
81
|
-
this.newErrorsCount++;
|
|
82
|
-
this.newErrorsCountChanged.next();
|
|
83
|
-
}
|
|
84
|
-
this.save();
|
|
85
|
-
}
|
|
86
|
-
clearErrors() {
|
|
87
|
-
this.newErrorsCount = 0;
|
|
88
|
-
this.newErrorsCountChanged.next();
|
|
89
|
-
}
|
|
90
|
-
createObject(keys, mapWithValues, useGetItem) {
|
|
91
|
-
let newObject = {};
|
|
92
|
-
keys.forEach((key) => {
|
|
93
|
-
if (useGetItem) {
|
|
94
|
-
newObject[key] = mapWithValues.getItem(key);
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
97
|
-
newObject[key] = mapWithValues.get(key);
|
|
98
|
-
}
|
|
99
|
-
});
|
|
100
|
-
return newObject;
|
|
101
|
-
}
|
|
102
|
-
sanitizeByTime() {
|
|
103
|
-
let now = new Date();
|
|
104
|
-
this.descriptor.apiCalls = this.descriptor.apiCalls.filter((apiCall) => {
|
|
105
|
-
let hoursBetween;
|
|
106
|
-
if (typeof apiCall.requestDate === 'string') {
|
|
107
|
-
hoursBetween = Math.floor(Math.abs(now.getMilliseconds() - new Date(apiCall.requestDate).getMilliseconds()) / 36e5);
|
|
108
|
-
}
|
|
109
|
-
else {
|
|
110
|
-
hoursBetween = Math.floor(Math.abs(now.getMilliseconds() - apiCall.requestDate.getMilliseconds()) / 36e5);
|
|
111
|
-
}
|
|
112
|
-
return hoursBetween < this.hoursToSave;
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
sanitizeByLength() {
|
|
116
|
-
if (this.descriptor?.apiCalls && this.descriptor.apiCalls.length > this.maxNumOfSavedCalls) {
|
|
117
|
-
let length = this.descriptor.apiCalls.length;
|
|
118
|
-
this.descriptor.apiCalls.splice(this.maxNumOfSavedCalls - 1, length - this.maxNumOfSavedCalls);
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
save() {
|
|
122
|
-
try {
|
|
123
|
-
localStorage.setItem(this.smartDevToolName, JSON.stringify(this.descriptor));
|
|
124
|
-
this.descriptorChanged.next();
|
|
125
|
-
}
|
|
126
|
-
catch (error) {
|
|
127
|
-
// localStorage.setItem() throws a "QuotaExceededError" DOMException exception if the new value
|
|
128
|
-
// couldn't be set. (Setting could fail if, e.g., the user has disabled storage for the site,
|
|
129
|
-
// or if the quota has been exceeded.)
|
|
130
|
-
this.sanitizeByLength();
|
|
131
|
-
this.save();
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
clear() {
|
|
135
|
-
this.descriptor = {
|
|
136
|
-
apiCalls: [],
|
|
137
|
-
};
|
|
138
|
-
this.save();
|
|
139
|
-
}
|
|
140
|
-
getPureString() {
|
|
141
|
-
return localStorage.getItem(this.smartDevToolName);
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
SmartDevToolService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartDevToolService, deps: [{ token: i1.SmartCookieService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
145
|
-
SmartDevToolService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartDevToolService, providedIn: 'root' });
|
|
146
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartDevToolService, decorators: [{
|
|
147
|
-
type: Injectable,
|
|
148
|
-
args: [{
|
|
149
|
-
providedIn: 'root',
|
|
150
|
-
}]
|
|
151
|
-
}], ctorParameters: function () { return [{ type: i1.SmartCookieService }]; } });
|
|
152
|
-
export class SmartDevToolDatePipe extends DatePipe {
|
|
153
|
-
transform(value, format = 'yyyy.MM.dd. H:mm:ss') {
|
|
154
|
-
return super.transform(value, format);
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
SmartDevToolDatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartDevToolDatePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe });
|
|
158
|
-
SmartDevToolDatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartDevToolDatePipe, name: "smartDevToolDatePipe" });
|
|
159
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartDevToolDatePipe, decorators: [{
|
|
160
|
-
type: Pipe,
|
|
161
|
-
args: [{
|
|
162
|
-
name: 'smartDevToolDatePipe',
|
|
163
|
-
}]
|
|
164
|
-
}] });
|
|
165
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtZGV2LXRvb2wuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3Nlc3Npb24vZGV2LXRvb2wvc21hcnQtZGV2LXRvb2wuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFM0MsT0FBTyxFQUFFLFVBQVUsRUFBYSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7QUFLNUQsTUFBTSxPQUFPLG1CQUFtQjtJQWlCOUIsWUFBb0IsYUFBaUM7UUFBakMsa0JBQWEsR0FBYixhQUFhLENBQW9CO1FBZHJELHFCQUFnQixHQUFXLGNBQWMsQ0FBQztRQUMxQyw2QkFBd0IsR0FBVyxvQkFBb0IsQ0FBQztRQUN4RCxhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLDBCQUFxQixHQUFXLG1CQUFtQixDQUFDO1FBQ3BELHdCQUFtQixHQUFXLHNCQUFzQixDQUFDO1FBQ3JELGdCQUFXLEdBQVcsQ0FBQyxDQUFDO1FBQ3hCLHVCQUFrQixHQUFXLEVBQUUsQ0FBQztRQUN4QixjQUFTLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFFakQsc0JBQWlCLEdBQWtCLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVwRSxtQkFBYyxHQUFXLENBQUMsQ0FBQztRQUMzQiwwQkFBcUIsR0FBa0IsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBR3RFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBRXpCLElBQUksd0JBQXdCLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FB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b250ZW50IjpbImltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBSZXF1ZXN0LCBIdHRwUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSwgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFNtYXJ0Q29va2llU2VydmljZSB9IGZyb20gJy4uL2Nvb2tpZS1zZXJ2aWNlL3NtYXJ0LWNvb2tpZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU21hcnRTdWJqZWN0IH0gZnJvbSAnLi4vLi4vc21hcnQtc3ViamVjdC9wcm9qZWN0cyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU21hcnREZXZUb29sU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgZGVzY3JpcHRvcj86IFNtYXJ0RGV2VG9vbERlc2NyaXB0b3I7XHJcblxyXG4gIHNtYXJ0RGV2VG9vbE5hbWU6IHN0cmluZyA9ICdzbWFydERldlRvb2wnO1xyXG4gIGlzU21hcnREZXZUb29sQWN0aXZlTmFtZTogc3RyaW5nID0gJ3NtYXJ0RGV2VG9vbEFjdGl2ZSc7XHJcbiAgaXNBY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzbWFydERldlRvb2xIb3Vyc05hbWU6IHN0cmluZyA9ICdzbWFydERldlRvb2xIb3Vycyc7XHJcbiAgc21hcnREZXZUb29sTWF4TmFtZTogc3RyaW5nID0gJ3NtYXJ0RGV2VG9vbE1heENhbGxzJztcclxuICBob3Vyc1RvU2F2ZTogbnVtYmVyID0gMTtcclxuICBtYXhOdW1PZlNhdmVkQ2FsbHM6IG51bWJlciA9IDUwO1xyXG4gIHByaXZhdGUgX2Rlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgZGVzY3JpcHRvckNoYW5nZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU21hcnRTdWJqZWN0KHRoaXMuX2Rlc3Ryb3kkKTtcclxuXHJcbiAgbmV3RXJyb3JzQ291bnQ6IG51bWJlciA9IDA7XHJcbiAgbmV3RXJyb3JzQ291bnRDaGFuZ2VkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFNtYXJ0U3ViamVjdCh0aGlzLl9kZXN0cm95JCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29va2llU2VydmljZTogU21hcnRDb29raWVTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLnNldFVwTG9jYWxTdG9yYWdlKCk7XHJcblxyXG4gICAgbGV0IGFwaUNhbGxzRnJvbUxvY2FsU3RvcmFnZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc21hcnREZXZUb29sTmFtZSk7XHJcbiAgICBpZiAoYXBpQ2FsbHNGcm9tTG9jYWxTdG9yYWdlKSB7XHJcbiAgICAgIHRoaXMuZGVzY3JpcHRvciA9IEpTT04ucGFyc2UoYXBpQ2FsbHNGcm9tTG9jYWxTdG9yYWdlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZGVzY3JpcHRvciA9IHsgYXBpQ2FsbHM6IFtdIH07XHJcbiAgICAgIHRoaXMuc2F2ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzdG9yYWdlJywgKGV2ZW50KSA9PiB7XHJcbiAgICAgIGlmIChldmVudC5zdG9yYWdlQXJlYSA9PT0gbG9jYWxTdG9yYWdlKSB7XHJcbiAgICAgICAgdGhpcy5pc0FjdGl2ZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaXNTbWFydERldlRvb2xBY3RpdmVOYW1lKSA9PT0gJ3RydWUnO1xyXG4gICAgICAgIGxldCBob3Vyc1RvU2F2ZVN0cmluZyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc21hcnREZXZUb29sSG91cnNOYW1lKTtcclxuICAgICAgICBpZiAoaG91cnNUb1NhdmVTdHJpbmcpIHtcclxuICAgICAgICAgIHRoaXMuaG91cnNUb1NhdmUgPSBOdW1iZXIucGFyc2VJbnQoaG91cnNUb1NhdmVTdHJpbmcpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgbWF4TnVtT2ZTYXZlZENhbGxzID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zbWFydERldlRvb2xNYXhOYW1lKTtcclxuICAgICAgICBpZiAobWF4TnVtT2ZTYXZlZENhbGxzKSB7XHJcbiAgICAgICAgICB0aGlzLm1heE51bU9mU2F2ZWRDYWxscyA9IE51bWJlci5wYXJzZUludChtYXhOdW1PZlNhdmVkQ2FsbHMpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFVwTG9jYWxTdG9yYWdlKCk6IHZvaWQge1xyXG4gICAgbGV0IGtleXNPZkxvY2FsU3RvcmFnZSA9IE9iamVjdC5rZXlzKGxvY2FsU3RvcmFnZSk7XHJcbiAgICBpZiAoIWtleXNPZkxvY2FsU3RvcmFnZS5pbmNsdWRlcyh0aGlzLmlzU21hcnREZXZUb29sQWN0aXZlTmFtZSkpIHtcclxuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pc1NtYXJ0RGV2VG9vbEFjdGl2ZU5hbWUsICd0cnVlJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB3cml0ZVJlc3BvbnNlKFxyXG4gICAgcmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55PixcclxuICAgIHJlc3BvbnNlOiBIdHRwUmVzcG9uc2U8YW55PiB8IEh0dHBFcnJvclJlc3BvbnNlLFxyXG4gICAgcmVxdWVzdERhdGU6IERhdGUsXHJcbiAgICByZXNwb25zZURhdGU6IERhdGVcclxuICApOiB2b2lkIHtcclxuICAgIHRoaXMuc2FuaXRpemVCeUxlbmd0aCgpO1xyXG4gICAgdGhpcy5zYW5pdGl6ZUJ5VGltZSgpO1xyXG5cclxuICAgIGxldCByZXF1ZXN0SGVhZGVyOiBhbnkgPSB0aGlzLmNyZWF0ZU9iamVjdChyZXF1ZXN0LmhlYWRlcnMua2V5cygpLCByZXF1ZXN0LmhlYWRlcnMsIGZhbHNlKTtcclxuICAgIGxldCByZXNwb25zZUhlYWRlcjogYW55ID0gdGhpcy5jcmVhdGVPYmplY3QocmVzcG9uc2UuaGVhZGVycy5rZXlzKCksIHJlc3BvbnNlLmhlYWRlcnMsIGZhbHNlKTtcclxuXHJcbiAgICBsZXQgX2xvY2FsU3RvcmFnZTogYW55ID0gdGhpcy5jcmVhdGVPYmplY3QoXHJcbiAgICAgIE9iamVjdC5rZXlzKGxvY2FsU3RvcmFnZSkuZmlsdGVyKChrZXk6IHN0cmluZykgPT4ga2V5ICE9PSB0aGlzLnNtYXJ0RGV2VG9vbE5hbWUpLFxyXG4gICAgICBsb2NhbFN0b3JhZ2UsXHJcbiAgICAgIHRydWVcclxuICAgICk7XHJcbiAgICBsZXQgX3Nlc3Npb25TdG9yYWdlOiBhbnkgPSB0aGlzLmNyZWF0ZU9iamVjdChPYmplY3Qua2V5cyhzZXNzaW9uU3RvcmFnZSksIHNlc3Npb25TdG9yYWdlLCB0cnVlKTtcclxuICAgIGxldCBfY29va2llczogYW55ID0gdGhpcy5jb29raWVTZXJ2aWNlLmdldEFsbCgpO1xyXG5cclxuICAgIHRoaXMuZGVzY3JpcHRvciEuYXBpQ2FsbHMgPSBbXHJcbiAgICAgIHtcclxuICAgICAgICB1cmw6IHJlc3BvbnNlLnVybCxcclxuICAgICAgICByZXF1ZXN0Qm9keTogcmVxdWVzdC5ib2R5LFxyXG4gICAgICAgIHJlcXVlc3RIZWFkZXIsXHJcbiAgICAgICAgcmVxdWVzdERhdGUsXHJcbiAgICAgICAgcmVxdWVzdE1ldGhvZDogcmVxdWVzdC5tZXRob2QsXHJcbiAgICAgICAgcmVzcG9uc2VCb2R5OiAocmVzcG9uc2UgYXMgSHR0cFJlc3BvbnNlPGFueT4pLmJvZHkgPz8gbnVsbCxcclxuICAgICAgICByZXNwb25zZUhlYWRlcixcclxuICAgICAgICByZXNwb25zZVN0YXR1czogcmVzcG9uc2Uuc3RhdHVzLFxyXG4gICAgICAgIHJlc3BvbnNlU3RhdHVzVGV4dDogcmVzcG9uc2Uuc3RhdHVzVGV4dCxcclxuICAgICAgICByZXNwb25zZURhdGUsXHJcbiAgICAgICAgbG9jYWxTdG9yYWdlOiBfbG9jYWxTdG9yYWdlLFxyXG4gICAgICAgIHNlc3Npb25TdG9yYWdlOiBfc2Vzc2lvblN0b3JhZ2UsXHJcbiAgICAgICAgY29va2llczogX2Nvb2tpZXMsXHJcbiAgICAgIH0sXHJcbiAgICAgIC4uLnRoaXMuZGVzY3JpcHRvciEuYXBpQ2FsbHMsXHJcbiAgICBdO1xyXG5cclxuICAgIGlmIChyZXNwb25zZS5zdGF0dXMgIT09IDIwMCkge1xyXG4gICAgICB0aGlzLm5ld0Vycm9yc0NvdW50Kys7XHJcbiAgICAgIHRoaXMubmV3RXJyb3JzQ291bnRDaGFuZ2VkLm5leHQoKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNhdmUoKTtcclxuICB9XHJcblxyXG4gIGNsZWFyRXJyb3JzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5uZXdFcnJvcnNDb3VudCA9IDA7XHJcbiAgICB0aGlzLm5ld0Vycm9yc0NvdW50Q2hhbmdlZC5uZXh0KCk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVPYmplY3Qoa2V5czogc3RyaW5nW10sIG1hcFdpdGhWYWx1ZXM6IGFueSwgdXNlR2V0SXRlbTogYm9vbGVhbik6IGFueSB7XHJcbiAgICBsZXQgbmV3T2JqZWN0OiBhbnkgPSB7fTtcclxuICAgIGtleXMuZm9yRWFjaCgoa2V5OiBzdHJpbmcpID0+IHtcclxuICAgICAgaWYgKHVzZUdldEl0ZW0pIHtcclxuICAgICAgICBuZXdPYmplY3Rba2V5XSA9IG1hcFdpdGhWYWx1ZXMuZ2V0SXRlbShrZXkpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG5ld09iamVjdFtrZXldID0gbWFwV2l0aFZhbHVlcy5nZXQoa2V5KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gbmV3T2JqZWN0O1xyXG4gIH1cclxuXHJcbiAgc2FuaXRpemVCeVRpbWUoKTogdm9pZCB7XHJcbiAgICBsZXQgbm93OiBEYXRlID0gbmV3IERhdGUoKTtcclxuICAgIHRoaXMuZGVzY3JpcHRvciEuYXBpQ2FsbHMgPSB0aGlzLmRlc2NyaXB0b3IhLmFwaUNhbGxzLmZpbHRlcihcclxuICAgICAgKGFwaUNhbGw6IFNtYXJ0RGV2VG9vbEFwaUNhbGxEZXNjcmlwdG9yKSA9PiB7XHJcbiAgICAgICAgbGV0IGhvdXJzQmV0d2VlbjogbnVtYmVyO1xyXG4gICAgICAgIGlmICh0eXBlb2YgYXBpQ2FsbC5yZXF1ZXN0RGF0ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgIGhvdXJzQmV0d2VlbiA9IE1hdGguZmxvb3IoXHJcbiAgICAgICAgICAgIE1hdGguYWJzKG5vdy5nZXRNaWxsaXNlY29uZHMoKSAtIG5ldyBEYXRlKGFwaUNhbGwucmVxdWVzdERhdGUpLmdldE1pbGxpc2Vjb25kcygpKSAvIDM2ZTVcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGhvdXJzQmV0d2VlbiA9IE1hdGguZmxvb3IoXHJcbiAgICAgICAgICAgIE1hdGguYWJzKG5vdy5nZXRNaWxsaXNlY29uZHMoKSAtIGFwaUNhbGwucmVxdWVzdERhdGUuZ2V0TWlsbGlzZWNvbmRzKCkpIC8gMzZlNVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBob3Vyc0JldHdlZW4gPCB0aGlzLmhvdXJzVG9TYXZlO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgc2FuaXRpemVCeUxlbmd0aCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRlc2NyaXB0b3I/LmFwaUNhbGxzICYmIHRoaXMuZGVzY3JpcHRvci5hcGlDYWxscy5sZW5ndGggPiB0aGlzLm1heE51bU9mU2F2ZWRDYWxscykge1xyXG4gICAgICBsZXQgbGVuZ3RoID0gdGhpcy5kZXNjcmlwdG9yLmFwaUNhbGxzLmxlbmd0aDtcclxuICAgICAgdGhpcy5kZXNjcmlwdG9yLmFwaUNhbGxzLnNwbGljZShcclxuICAgICAgICB0aGlzLm1heE51bU9mU2F2ZWRDYWxscyAtIDEsXHJcbiAgICAgICAgbGVuZ3RoIC0gdGhpcy5tYXhOdW1PZlNhdmVkQ2FsbHNcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNhdmUoKTogdm9pZCB7XHJcbiAgICB0cnkge1xyXG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnNtYXJ0RGV2VG9vbE5hbWUsIEpTT04uc3RyaW5naWZ5KHRoaXMuZGVzY3JpcHRvcikpO1xyXG4gICAgICB0aGlzLmRlc2NyaXB0b3JDaGFuZ2VkLm5leHQoKTtcclxuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcclxuICAgICAgLy8gbG9jYWxTdG9yYWdlLnNldEl0ZW0oKSB0aHJvd3MgYSBcIlF1b3RhRXhjZWVkZWRFcnJvclwiIERPTUV4Y2VwdGlvbiBleGNlcHRpb24gaWYgdGhlIG5ldyB2YWx1ZVxyXG4gICAgICAvLyBjb3VsZG4ndCBiZSBzZXQuIChTZXR0aW5nIGNvdWxkIGZhaWwgaWYsIGUuZy4sIHRoZSB1c2VyIGhhcyBkaXNhYmxlZCBzdG9yYWdlIGZvciB0aGUgc2l0ZSxcclxuICAgICAgLy8gb3IgaWYgdGhlIHF1b3RhIGhhcyBiZWVuIGV4Y2VlZGVkLilcclxuICAgICAgdGhpcy5zYW5pdGl6ZUJ5TGVuZ3RoKCk7XHJcbiAgICAgIHRoaXMuc2F2ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xlYXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc2NyaXB0b3IgPSB7XHJcbiAgICAgIGFwaUNhbGxzOiBbXSxcclxuICAgIH07XHJcbiAgICB0aGlzLnNhdmUoKTtcclxuICB9XHJcblxyXG4gIGdldFB1cmVTdHJpbmcoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnNtYXJ0RGV2VG9vbE5hbWUpITtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnREZXZUb29sRGVzY3JpcHRvciB7XHJcbiAgYXBpQ2FsbHM6IFNtYXJ0RGV2VG9vbEFwaUNhbGxEZXNjcmlwdG9yW107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnREZXZUb29sQXBpQ2FsbERlc2NyaXB0b3Ige1xyXG4gIHVybDogc3RyaW5nIHwgbnVsbDtcclxuICByZXNwb25zZUJvZHk6IGFueTtcclxuICByZXNwb25zZUhlYWRlcjogYW55O1xyXG4gIHJlc3BvbnNlU3RhdHVzOiBudW1iZXI7XHJcbiAgcmVzcG9uc2VTdGF0dXNUZXh0OiBzdHJpbmc7XHJcbiAgcmVzcG9uc2VEYXRlOiBEYXRlO1xyXG4gIHJlcXVlc3RIZWFkZXI6IGFueTtcclxuICByZXF1ZXN0Qm9keTogYW55O1xyXG4gIHJlcXVlc3REYXRlOiBEYXRlO1xyXG4gIHJlcXVlc3RNZXRob2Q6IHN0cmluZztcclxuICBsb2NhbFN0b3JhZ2U6IGFueTtcclxuICBzZXNzaW9uU3RvcmFnZTogYW55O1xyXG4gIGNvb2tpZXM6IGFueTtcclxufVxyXG5cclxuQFBpcGUoe1xyXG4gIG5hbWU6ICdzbWFydERldlRvb2xEYXRlUGlwZScsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTbWFydERldlRvb2xEYXRlUGlwZSBleHRlbmRzIERhdGVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgb3ZlcnJpZGUgdHJhbnNmb3JtKHZhbHVlOiBhbnksIGZvcm1hdDogc3RyaW5nID0gJ3l5eXkuTU0uZGQuIEg6bW06c3MnKTogYW55IHtcclxuICAgIHJldHVybiBzdXBlci50cmFuc2Zvcm0odmFsdWUsIGZvcm1hdCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { OnDestroy } from '@angular/core';
|
|
2
|
-
import { SmartDevToolDescriptor } from '../smart-dev-tool.service';
|
|
3
|
-
import { SmartDevToolDialogService } from './smart-dev-tool-dialog.service';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class SmartDevToolDialogComponent implements OnDestroy {
|
|
6
|
-
private service;
|
|
7
|
-
private _destroy$;
|
|
8
|
-
descriptor?: SmartDevToolDescriptor;
|
|
9
|
-
constructor(service: SmartDevToolDialogService);
|
|
10
|
-
ngOnDestroy(): void;
|
|
11
|
-
clear(): void;
|
|
12
|
-
getBody(inp: any): any;
|
|
13
|
-
syntaxHighlight(json: any): any;
|
|
14
|
-
copy(): void;
|
|
15
|
-
close(): void;
|
|
16
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SmartDevToolDialogComponent, never>;
|
|
17
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SmartDevToolDialogComponent, "app-smart-dev-tool-dialog", never, {}, {}, never, never>;
|
|
18
|
-
}
|
|
19
|
-
interface ICopyToClipboard {
|
|
20
|
-
/** HTML reference identifier ```<div id="foo"></div>``` */
|
|
21
|
-
target?: string;
|
|
22
|
-
/** String value */
|
|
23
|
-
value?: string;
|
|
24
|
-
/** (Optional) message to display in snackbar on success */
|
|
25
|
-
message?: string;
|
|
26
|
-
}
|
|
27
|
-
export declare const copyToClipboard: ({ target, message, value }: ICopyToClipboard) => Promise<void>;
|
|
28
|
-
export {};
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { MatDialog } from '@angular/material/dialog';
|
|
2
|
-
import { Router } from '@angular/router';
|
|
3
|
-
import { Subject } from 'rxjs';
|
|
4
|
-
import { SmartdialogService } from '../../../smart-dialog/projects';
|
|
5
|
-
import { SmartDevToolDescriptor, SmartDevToolService } from '../smart-dev-tool.service';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export declare class SmartDevToolDialogService extends SmartdialogService {
|
|
8
|
-
service: SmartDevToolService;
|
|
9
|
-
update: Subject<void>;
|
|
10
|
-
constructor(dialog: MatDialog, router: Router, service: SmartDevToolService);
|
|
11
|
-
handleAfterClosed(result: any): void;
|
|
12
|
-
openDialog(): void;
|
|
13
|
-
getData(): SmartDevToolDescriptor;
|
|
14
|
-
getPureString(): string;
|
|
15
|
-
clear(): void;
|
|
16
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SmartDevToolDialogService, never>;
|
|
17
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<SmartDevToolDialogService>;
|
|
18
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { OnDestroy } from '@angular/core';
|
|
2
|
-
import { SmartDevToolDialogService } from '../smart-dev-tool-dialog/smart-dev-tool-dialog.service';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class SmartDevToolFloatingButtonComponent implements OnDestroy {
|
|
5
|
-
private service;
|
|
6
|
-
private _destroy$;
|
|
7
|
-
adminKeyName: string;
|
|
8
|
-
isShown: boolean;
|
|
9
|
-
errorsCount: string;
|
|
10
|
-
constructor(service: SmartDevToolDialogService);
|
|
11
|
-
ngOnDestroy(): void;
|
|
12
|
-
openDevToolDialog(): void;
|
|
13
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SmartDevToolFloatingButtonComponent, never>;
|
|
14
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SmartDevToolFloatingButtonComponent, "smart-session-dev-tool", never, {}, {}, never, never>;
|
|
15
|
-
}
|