@idea-ionic/uncommon 8.5.12 → 8.6.0-beta.1
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/fesm2022/idea-ionic-uncommon.mjs +85 -85
- package/fesm2022/idea-ionic-uncommon.mjs.map +1 -1
- package/index.d.ts +1405 -3
- package/package.json +12 -13
- package/esm2022/idea-ionic-uncommon.mjs +0 -5
- package/esm2022/public-api.mjs +0 -26
- package/esm2022/src/AWSAPI.service.mjs +0 -431
- package/esm2022/src/AWSAPISocket.service.mjs +0 -188
- package/esm2022/src/address/address.component.mjs +0 -409
- package/esm2022/src/announcement/announcement.component.mjs +0 -72
- package/esm2022/src/cachedResources.service.mjs +0 -55
- package/esm2022/src/colors/colorPicker.component.mjs +0 -191
- package/esm2022/src/contacts/contacts.component.mjs +0 -188
- package/esm2022/src/dateTime/calendarPicker.component.mjs +0 -213
- package/esm2022/src/dateTime/dateTime.component.mjs +0 -217
- package/esm2022/src/duration/duration.component.mjs +0 -195
- package/esm2022/src/echo/echo.page.mjs +0 -233
- package/esm2022/src/echo/echo.routes.mjs +0 -6
- package/esm2022/src/errorReporting.service.mjs +0 -69
- package/esm2022/src/mde/mde.component.mjs +0 -143
- package/esm2022/src/mde/mdeToolbar.component.mjs +0 -25
- package/esm2022/src/offline/cacheableResource.component.mjs +0 -56
- package/esm2022/src/offline/offline.service.mjs +0 -63
- package/esm2022/src/offline/offlineData.service.mjs +0 -480
- package/esm2022/src/offline/offlineIndicator.component.mjs +0 -105
- package/esm2022/src/offline/offlineManager.component.mjs +0 -101
- package/esm2022/src/pushNotifications.service.mjs +0 -57
- package/esm2022/src/sentiment/sentiment.component.mjs +0 -112
- package/esm2022/src/timeInterval/fromTimeToTime.component.mjs +0 -171
- package/esm2022/src/timeInterval/timeInterval.component.mjs +0 -206
- package/esm2022/src/tinCan.service.mjs +0 -49
- package/public-api.d.ts +0 -25
- package/src/AWSAPI.service.d.ts +0 -178
- package/src/AWSAPISocket.service.d.ts +0 -129
- package/src/address/address.component.d.ts +0 -64
- package/src/announcement/announcement.component.d.ts +0 -23
- package/src/cachedResources.service.d.ts +0 -34
- package/src/colors/colorPicker.component.d.ts +0 -78
- package/src/contacts/contacts.component.d.ts +0 -31
- package/src/dateTime/calendarPicker.component.d.ts +0 -45
- package/src/dateTime/dateTime.component.d.ts +0 -81
- package/src/duration/duration.component.d.ts +0 -68
- package/src/echo/echo.page.d.ts +0 -34
- package/src/echo/echo.routes.d.ts +0 -2
- package/src/errorReporting.service.d.ts +0 -26
- package/src/mde/mde.component.d.ts +0 -39
- package/src/mde/mdeToolbar.component.d.ts +0 -5
- package/src/offline/cacheableResource.component.d.ts +0 -11
- package/src/offline/offline.service.d.ts +0 -39
- package/src/offline/offlineData.service.d.ts +0 -281
- package/src/offline/offlineIndicator.component.d.ts +0 -25
- package/src/offline/offlineManager.component.d.ts +0 -17
- package/src/pushNotifications.service.d.ts +0 -26
- package/src/sentiment/sentiment.component.d.ts +0 -35
- package/src/timeInterval/fromTimeToTime.component.d.ts +0 -61
- package/src/timeInterval/timeInterval.component.d.ts +0 -84
- package/src/tinCan.service.d.ts +0 -31
|
@@ -1,195 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
3
|
-
import { FormsModule } from '@angular/forms';
|
|
4
|
-
import { IonItem, IonIcon, IonLabel, IonText } from '@ionic/angular/standalone';
|
|
5
|
-
import { IDEATranslatePipe } from '@idea-ionic/common';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/forms";
|
|
8
|
-
export class IDEADurationComponent {
|
|
9
|
-
constructor() {
|
|
10
|
-
/**
|
|
11
|
-
* On change event. It emits a number of seconds representing the duration.
|
|
12
|
-
*/
|
|
13
|
-
this.set = new EventEmitter();
|
|
14
|
-
this.default = this.hours = this.minutes = this.seconds = 0;
|
|
15
|
-
}
|
|
16
|
-
ngOnChanges(changes) {
|
|
17
|
-
// assign a default value to the duration
|
|
18
|
-
if (changes['default'] && changes['default'].isFirstChange()) {
|
|
19
|
-
const refDate = new Date(0);
|
|
20
|
-
refDate.setHours(0, 0, 0);
|
|
21
|
-
refDate.setSeconds(refDate.getSeconds() + this.default);
|
|
22
|
-
this.hours = refDate.getHours();
|
|
23
|
-
this.minutes = refDate.getMinutes();
|
|
24
|
-
this.seconds = this.hideSeconds ? 0 : refDate.getSeconds();
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* When one of the parts changes, emit the new duration.
|
|
29
|
-
*/
|
|
30
|
-
setDuration(type) {
|
|
31
|
-
switch (type) {
|
|
32
|
-
case 'hours':
|
|
33
|
-
const hh = Number(this.hours) || 0;
|
|
34
|
-
this.hours = hh > 23 ? 23 : hh < 0 ? 0 : hh;
|
|
35
|
-
break;
|
|
36
|
-
case 'minutes':
|
|
37
|
-
const mm = Number(this.minutes) || 0;
|
|
38
|
-
this.minutes = mm > 59 ? 59 : mm < 0 ? 0 : mm;
|
|
39
|
-
break;
|
|
40
|
-
case 'seconds':
|
|
41
|
-
const ss = Number(this.seconds) || 0;
|
|
42
|
-
if (this.hideSeconds)
|
|
43
|
-
this.seconds = 0;
|
|
44
|
-
else
|
|
45
|
-
this.seconds = ss > 59 ? 59 : ss < 0 ? 0 : ss;
|
|
46
|
-
break;
|
|
47
|
-
}
|
|
48
|
-
this.set.emit(this.hours * 3600 + this.minutes * 60 + this.seconds);
|
|
49
|
-
}
|
|
50
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEADurationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
51
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IDEADurationComponent, isStandalone: true, selector: "idea-duration", inputs: { default: "default", label: "label", icon: "icon", title: "title", disabled: "disabled", obligatory: "obligatory", lines: "lines", color: "color", hideSeconds: "hideSeconds", shortLabels: "shortLabels" }, outputs: { set: "set" }, usesOnChanges: true, ngImport: i0, template: `
|
|
52
|
-
<ion-item class="durationItem" [lines]="lines" [color]="color" [title]="title || label">
|
|
53
|
-
@if (icon) {
|
|
54
|
-
<ion-icon slot="start" [name]="icon" />
|
|
55
|
-
}
|
|
56
|
-
@if (!icon && label) {
|
|
57
|
-
<ion-label position="stacked">
|
|
58
|
-
{{ label }}
|
|
59
|
-
@if (obligatory && !disabled) {
|
|
60
|
-
<ion-text class="obligatoryDot" />
|
|
61
|
-
}
|
|
62
|
-
</ion-label>
|
|
63
|
-
}
|
|
64
|
-
<ion-label class="value">
|
|
65
|
-
<ion-input
|
|
66
|
-
type="number"
|
|
67
|
-
min="0"
|
|
68
|
-
max="23"
|
|
69
|
-
inputmode="numeric"
|
|
70
|
-
[disabled]="disabled"
|
|
71
|
-
[(ngModel)]="hours"
|
|
72
|
-
(ionChange)="setDuration('hours')"
|
|
73
|
-
/>
|
|
74
|
-
<ion-text>{{
|
|
75
|
-
((shortLabels ? 'IDEA_UNCOMMON.DURATION.HH' : 'IDEA_UNCOMMON.DURATION.HOURS') | translate).toLowerCase()
|
|
76
|
-
}}</ion-text>
|
|
77
|
-
<ion-input
|
|
78
|
-
type="number"
|
|
79
|
-
min="0"
|
|
80
|
-
max="59"
|
|
81
|
-
inputmode="numeric"
|
|
82
|
-
[disabled]="disabled"
|
|
83
|
-
[(ngModel)]="minutes"
|
|
84
|
-
(ionChange)="setDuration('minutes')"
|
|
85
|
-
/>
|
|
86
|
-
<ion-text>{{
|
|
87
|
-
((shortLabels ? 'IDEA_UNCOMMON.DURATION.MM' : 'IDEA_UNCOMMON.DURATION.MINUTES') | translate).toLowerCase()
|
|
88
|
-
}}</ion-text>
|
|
89
|
-
@if (!hideSeconds) {
|
|
90
|
-
<ion-input
|
|
91
|
-
type="number"
|
|
92
|
-
min="0"
|
|
93
|
-
max="59"
|
|
94
|
-
inputmode="numeric"
|
|
95
|
-
[disabled]="disabled"
|
|
96
|
-
[(ngModel)]="seconds"
|
|
97
|
-
(ionChange)="setDuration('seconds')"
|
|
98
|
-
/>
|
|
99
|
-
}
|
|
100
|
-
@if (!hideSeconds) {
|
|
101
|
-
<ion-text>
|
|
102
|
-
{{
|
|
103
|
-
((shortLabels ? 'IDEA_UNCOMMON.DURATION.SS' : 'IDEA_UNCOMMON.DURATION.SECONDS') | translate).toLowerCase()
|
|
104
|
-
}}
|
|
105
|
-
</ion-text>
|
|
106
|
-
}
|
|
107
|
-
</ion-label>
|
|
108
|
-
</ion-item>
|
|
109
|
-
`, isInline: true, styles: [".durationItem .value{max-width:none;width:100%;pointer-events:all}.durationItem .value ion-input{display:inline-block;max-width:35px;text-align:right}.durationItem .value ion-text{margin-left:10px;margin-right:20px;font-size:.8em}\n"], dependencies: [{ kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: IDEATranslatePipe, name: "translate" }] }); }
|
|
110
|
-
}
|
|
111
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEADurationComponent, decorators: [{
|
|
112
|
-
type: Component,
|
|
113
|
-
args: [{ selector: 'idea-duration', standalone: true, imports: [IonText, IonLabel, IonIcon, IonItem, CommonModule, FormsModule, IDEATranslatePipe], template: `
|
|
114
|
-
<ion-item class="durationItem" [lines]="lines" [color]="color" [title]="title || label">
|
|
115
|
-
@if (icon) {
|
|
116
|
-
<ion-icon slot="start" [name]="icon" />
|
|
117
|
-
}
|
|
118
|
-
@if (!icon && label) {
|
|
119
|
-
<ion-label position="stacked">
|
|
120
|
-
{{ label }}
|
|
121
|
-
@if (obligatory && !disabled) {
|
|
122
|
-
<ion-text class="obligatoryDot" />
|
|
123
|
-
}
|
|
124
|
-
</ion-label>
|
|
125
|
-
}
|
|
126
|
-
<ion-label class="value">
|
|
127
|
-
<ion-input
|
|
128
|
-
type="number"
|
|
129
|
-
min="0"
|
|
130
|
-
max="23"
|
|
131
|
-
inputmode="numeric"
|
|
132
|
-
[disabled]="disabled"
|
|
133
|
-
[(ngModel)]="hours"
|
|
134
|
-
(ionChange)="setDuration('hours')"
|
|
135
|
-
/>
|
|
136
|
-
<ion-text>{{
|
|
137
|
-
((shortLabels ? 'IDEA_UNCOMMON.DURATION.HH' : 'IDEA_UNCOMMON.DURATION.HOURS') | translate).toLowerCase()
|
|
138
|
-
}}</ion-text>
|
|
139
|
-
<ion-input
|
|
140
|
-
type="number"
|
|
141
|
-
min="0"
|
|
142
|
-
max="59"
|
|
143
|
-
inputmode="numeric"
|
|
144
|
-
[disabled]="disabled"
|
|
145
|
-
[(ngModel)]="minutes"
|
|
146
|
-
(ionChange)="setDuration('minutes')"
|
|
147
|
-
/>
|
|
148
|
-
<ion-text>{{
|
|
149
|
-
((shortLabels ? 'IDEA_UNCOMMON.DURATION.MM' : 'IDEA_UNCOMMON.DURATION.MINUTES') | translate).toLowerCase()
|
|
150
|
-
}}</ion-text>
|
|
151
|
-
@if (!hideSeconds) {
|
|
152
|
-
<ion-input
|
|
153
|
-
type="number"
|
|
154
|
-
min="0"
|
|
155
|
-
max="59"
|
|
156
|
-
inputmode="numeric"
|
|
157
|
-
[disabled]="disabled"
|
|
158
|
-
[(ngModel)]="seconds"
|
|
159
|
-
(ionChange)="setDuration('seconds')"
|
|
160
|
-
/>
|
|
161
|
-
}
|
|
162
|
-
@if (!hideSeconds) {
|
|
163
|
-
<ion-text>
|
|
164
|
-
{{
|
|
165
|
-
((shortLabels ? 'IDEA_UNCOMMON.DURATION.SS' : 'IDEA_UNCOMMON.DURATION.SECONDS') | translate).toLowerCase()
|
|
166
|
-
}}
|
|
167
|
-
</ion-text>
|
|
168
|
-
}
|
|
169
|
-
</ion-label>
|
|
170
|
-
</ion-item>
|
|
171
|
-
`, styles: [".durationItem .value{max-width:none;width:100%;pointer-events:all}.durationItem .value ion-input{display:inline-block;max-width:35px;text-align:right}.durationItem .value ion-text{margin-left:10px;margin-right:20px;font-size:.8em}\n"] }]
|
|
172
|
-
}], ctorParameters: () => [], propDecorators: { default: [{
|
|
173
|
-
type: Input
|
|
174
|
-
}], label: [{
|
|
175
|
-
type: Input
|
|
176
|
-
}], icon: [{
|
|
177
|
-
type: Input
|
|
178
|
-
}], title: [{
|
|
179
|
-
type: Input
|
|
180
|
-
}], disabled: [{
|
|
181
|
-
type: Input
|
|
182
|
-
}], obligatory: [{
|
|
183
|
-
type: Input
|
|
184
|
-
}], lines: [{
|
|
185
|
-
type: Input
|
|
186
|
-
}], color: [{
|
|
187
|
-
type: Input
|
|
188
|
-
}], hideSeconds: [{
|
|
189
|
-
type: Input
|
|
190
|
-
}], shortLabels: [{
|
|
191
|
-
type: Input
|
|
192
|
-
}], set: [{
|
|
193
|
-
type: Output
|
|
194
|
-
}] } });
|
|
195
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVyYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy91bmNvbW1vbi9zcmMvZHVyYXRpb24vZHVyYXRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7QUF1RnZELE1BQU0sT0FBTyxxQkFBcUI7SUEyRGhDO1FBbEJBOztXQUVHO1FBQ08sUUFBRyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFnQnpDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFDRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMseUNBQXlDO1FBQ3pDLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDO1lBQzdELE1BQU0sT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVCLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUMxQixPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUs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QkFBbkIsS0FBSztnQkFJSSxHQUFHO3NCQUFaLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFNpbXBsZUNoYW5nZXMsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJb25JdGVtLCBJb25JY29uLCBJb25MYWJlbCwgSW9uVGV4dCB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgSURFQVRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAaWRlYS1pb25pYy9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZGVhLWR1cmF0aW9uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0lvblRleHQsIElvbkxhYmVsLCBJb25JY29uLCBJb25JdGVtLCBDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBJREVBVHJhbnNsYXRlUGlwZV0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGlvbi1pdGVtIGNsYXNzPVwiZHVyYXRpb25JdGVtXCIgW2xpbmVzXT1cImxpbmVzXCIgW2NvbG9yXT1cImNvbG9yXCIgW3RpdGxlXT1cInRpdGxlIHx8IGxhYmVsXCI+XG4gICAgICBAaWYgKGljb24pIHtcbiAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJzdGFydFwiIFtuYW1lXT1cImljb25cIiAvPlxuICAgICAgfVxuICAgICAgQGlmICghaWNvbiAmJiBsYWJlbCkge1xuICAgICAgICA8aW9uLWxhYmVsIHBvc2l0aW9uPVwic3RhY2tlZFwiPlxuICAgICAgICAgIHt7IGxhYmVsIH19XG4gICAgICAgICAgQGlmIChvYmxpZ2F0b3J5ICYmICFkaXNhYmxlZCkge1xuICAgICAgICAgICAgPGlvbi10ZXh0IGNsYXNzPVwib2JsaWdhdG9yeURvdFwiIC8+XG4gICAgICAgICAgfVxuICAgICAgICA8L2lvbi1sYWJlbD5cbiAgICAgIH1cbiAgICAgIDxpb24tbGFiZWwgY2xhc3M9XCJ2YWx1ZVwiPlxuICAgICAgICA8aW9uLWlucHV0XG4gICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgbWluPVwiMFwiXG4gICAgICAgICAgbWF4PVwiMjNcIlxuICAgICAgICAgIGlucHV0bW9kZT1cIm51bWVyaWNcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJob3Vyc1wiXG4gICAgICAgICAgKGlvbkNoYW5nZSk9XCJzZXREdXJhdGlvbignaG91cnMnKVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxpb24tdGV4dD57e1xuICAgICAgICAgICgoc2hvcnRMYWJlbHMgPyAnSURFQV9VTkNPTU1PTi5EVVJBVElPTi5ISCcgOiAnSURFQV9VTkNPTU1PTi5EVVJBVElPTi5IT1VSUycpIHwgdHJhbnNsYXRlKS50b0xvd2VyQ2FzZSgpXG4gICAgICAgIH19PC9pb24tdGV4dD5cbiAgICAgICAgPGlvbi1pbnB1dFxuICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgIG1pbj1cIjBcIlxuICAgICAgICAgIG1heD1cIjU5XCJcbiAgICAgICAgICBpbnB1dG1vZGU9XCJudW1lcmljXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwibWludXRlc1wiXG4gICAgICAgICAgKGlvbkNoYW5nZSk9XCJzZXREdXJhdGlvbignbWludXRlcycpXCJcbiAgICAgICAgLz5cbiAgICAgICAgPGlvbi10ZXh0Pnt7XG4gICAgICAgICAgKChzaG9ydExhYmVscyA/ICdJREVBX1VOQ09NTU9OLkRVUkFUSU9OLk1NJyA6ICdJREVBX1VOQ09NTU9OLkRVUkFUSU9OLk1JTlVURVMnKSB8IHRyYW5zbGF0ZSkudG9Mb3dlckNhc2UoKVxuICAgICAgICB9fTwvaW9uLXRleHQ+XG4gICAgICAgIEBpZiAoIWhpZGVTZWNvbmRzKSB7XG4gICAgICAgICAgPGlvbi1pbnB1dFxuICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICBtaW49XCIwXCJcbiAgICAgICAgICAgIG1heD1cIjU5XCJcbiAgICAgICAgICAgIGlucHV0bW9kZT1cIm51bWVyaWNcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2Vjb25kc1wiXG4gICAgICAgICAgICAoaW9uQ2hhbmdlKT1cInNldER1cmF0aW9uKCdzZWNvbmRzJylcIlxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgICAgQGlmICghaGlkZVNlY29uZHMpIHtcbiAgICAgICAgICA8aW9uLXRleHQ+XG4gICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAoKHNob3J0TGFiZWxzID8gJ0lERUFfVU5DT01NT04uRFVSQVRJT04uU1MnIDogJ0lERUFfVU5DT01NT04uRFVSQVRJT04uU0VDT05EUycpIHwgdHJhbnNsYXRlKS50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICB9fVxuICAgICAgICAgIDwvaW9uLXRleHQ+XG4gICAgICAgIH1cbiAgICAgIDwvaW9uLWxhYmVsPlxuICAgIDwvaW9uLWl0ZW0+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIC5kdXJhdGlvbkl0ZW0ge1xuICAgICAgICAudmFsdWUge1xuICAgICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICAgICAgICAgIGlvbi1pbnB1dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDM1cHg7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICB9XG4gICAgICAgICAgaW9uLXRleHQge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gICAgICAgICAgICBmb250LXNpemU6IDAuOGVtO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIGBcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBJREVBRHVyYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAvKipcbiAgICogVGhlIGRlZmF1bHQgbnVtYmVyIG9mIHNlY29uZHMsIHRvIGJ1aWxkIHRoZSBkdXJhdGlvbi5cbiAgICovXG4gIEBJbnB1dCgpIGRlZmF1bHQ6IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSBsYWJlbCBmb3IgdGhlIGZpZWxkLlxuICAgKi9cbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBpY29uIChhbHRlcm5hdGl2ZSB0byB0aGUgbGFiZWwpIGZvciB0aGUgZmllbGQuXG4gICAqL1xuICBASW5wdXQoKSBpY29uOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgdGl0bGUgKGhpbnQpIGZvciB0aGUgZmllbGQuXG4gICAqL1xuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xuICAvKipcbiAgICogSWYgdHJ1ZSwgdGhlIGNvbXBvbmVudCBpcyBkaXNhYmxlZC5cbiAgICovXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xuICAvKipcbiAgICogSWYgdHJ1ZSwgdGhlIG9ibGlnYXRvcnkgZG90IGlzIHNob3duLlxuICAgKi9cbiAgQElucHV0KCkgb2JsaWdhdG9yeTogYm9vbGVhbjtcbiAgLyoqXG4gICAqIExpbmVzIHByZWZlcmVuY2VzIGZvciB0aGUgaXRlbS5cbiAgICovXG4gIEBJbnB1dCgpIGxpbmVzOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgY29sb3IgZm9yIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBASW5wdXQoKSBjb2xvcjogc3RyaW5nO1xuICAvKipcbiAgICogV2hldGhlciB0byBzaG93IG9yIGhpZGUgdGhlIHNlY29uZHMgaW5wdXQuXG4gICAqL1xuICBASW5wdXQoKSBoaWRlU2Vjb25kczogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gc2hvdyBhIHNob3J0ZW5lZCB2ZXJzaW9uIG9mIHRoZSBsYWJlbHMuXG4gICAqL1xuICBASW5wdXQoKSBzaG9ydExhYmVsczogYm9vbGVhbjtcbiAgLyoqXG4gICAqIE9uIGNoYW5nZSBldmVudC4gSXQgZW1pdHMgYSBudW1iZXIgb2Ygc2Vjb25kcyByZXByZXNlbnRpbmcgdGhlIGR1cmF0aW9uLlxuICAgKi9cbiAgQE91dHB1dCgpIHNldCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIC8qKlxuICAgKiBUaGUgaG91ciBwYXJ0IG9mIHRoZSBkdXJhdGlvbi5cbiAgICovXG4gIGhvdXJzOiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgbWludXRlcyBwYXJ0IG9mIHRoZSBkdXJhdGlvbi5cbiAgICovXG4gIG1pbnV0ZXM6IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSBzZWNvbmRzIHBhcnQgb2YgdGhlIGR1cmF0aW9uLlxuICAgKi9cbiAgc2Vjb25kczogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuZGVmYXVsdCA9IHRoaXMuaG91cnMgPSB0aGlzLm1pbnV0ZXMgPSB0aGlzLnNlY29uZHMgPSAwO1xuICB9XG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAvLyBhc3NpZ24gYSBkZWZhdWx0IHZhbHVlIHRvIHRoZSBkdXJhdGlvblxuICAgIGlmIChjaGFuZ2VzWydkZWZhdWx0J10gJiYgY2hhbmdlc1snZGVmYXVsdCddLmlzRmlyc3RDaGFuZ2UoKSkge1xuICAgICAgY29uc3QgcmVmRGF0ZSA9IG5ldyBEYXRlKDApO1xuICAgICAgcmVmRGF0ZS5zZXRIb3VycygwLCAwLCAwKTtcbiAgICAgIHJlZkRhdGUuc2V0U2Vjb25kcyhyZWZEYXRlLmdldFNlY29uZHMoKSArIHRoaXMuZGVmYXVsdCk7XG4gICAgICB0aGlzLmhvdXJzID0gcmVmRGF0ZS5nZXRIb3VycygpO1xuICAgICAgdGhpcy5taW51dGVzID0gcmVmRGF0ZS5nZXRNaW51dGVzKCk7XG4gICAgICB0aGlzLnNlY29uZHMgPSB0aGlzLmhpZGVTZWNvbmRzID8gMCA6IHJlZkRhdGUuZ2V0U2Vjb25kcygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBXaGVuIG9uZSBvZiB0aGUgcGFydHMgY2hhbmdlcywgZW1pdCB0aGUgbmV3IGR1cmF0aW9uLlxuICAgKi9cbiAgc2V0RHVyYXRpb24odHlwZTogc3RyaW5nKTogdm9pZCB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdob3Vycyc6XG4gICAgICAgIGNvbnN0IGhoID0gTnVtYmVyKHRoaXMuaG91cnMpIHx8IDA7XG4gICAgICAgIHRoaXMuaG91cnMgPSBoaCA+IDIzID8gMjMgOiBoaCA8IDAgPyAwIDogaGg7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnbWludXRlcyc6XG4gICAgICAgIGNvbnN0IG1tID0gTnVtYmVyKHRoaXMubWludXRlcykgfHwgMDtcbiAgICAgICAgdGhpcy5taW51dGVzID0gbW0gPiA1OSA/IDU5IDogbW0gPCAwID8gMCA6IG1tO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3NlY29uZHMnOlxuICAgICAgICBjb25zdCBzcyA9IE51bWJlcih0aGlzLnNlY29uZHMpIHx8IDA7XG4gICAgICAgIGlmICh0aGlzLmhpZGVTZWNvbmRzKSB0aGlzLnNlY29uZHMgPSAwO1xuICAgICAgICBlbHNlIHRoaXMuc2Vjb25kcyA9IHNzID4gNTkgPyA1OSA6IHNzIDwgMCA/IDAgOiBzcztcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHRoaXMuc2V0LmVtaXQodGhpcy5ob3VycyAqIDM2MDAgKyB0aGlzLm1pbnV0ZXMgKiA2MCArIHRoaXMuc2Vjb25kcyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,233 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { Component, inject } from '@angular/core';
|
|
3
|
-
import { ActivatedRoute } from '@angular/router';
|
|
4
|
-
import { IonContent, IonCard, IonImg, IonCardHeader, IonCardTitle, IonIcon, IonCardContent } from '@ionic/angular/standalone';
|
|
5
|
-
import { ExternalCalendarSources, mdToHtml } from 'idea-toolbox';
|
|
6
|
-
import { IDEAEnvironment, IDEALoadingService, IDEATranslatePipe, IDEATranslationsService } from '@idea-ionic/common';
|
|
7
|
-
import { IDEAAWSAPIService } from '../AWSAPI.service';
|
|
8
|
-
import { IDEATinCanService } from '../tinCan.service';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
export class IDEAEchoPage {
|
|
11
|
-
constructor() {
|
|
12
|
-
this._env = inject(IDEAEnvironment);
|
|
13
|
-
this._route = inject(ActivatedRoute);
|
|
14
|
-
this._tc = inject(IDEATinCanService);
|
|
15
|
-
this._loading = inject(IDEALoadingService);
|
|
16
|
-
this._API = inject(IDEAAWSAPIService);
|
|
17
|
-
this._translate = inject(IDEATranslationsService);
|
|
18
|
-
}
|
|
19
|
-
ngOnInit() {
|
|
20
|
-
const request = this._route.snapshot.paramMap.get('request') || this._route.snapshot.queryParams.request;
|
|
21
|
-
const code = this._route.snapshot.queryParams.code;
|
|
22
|
-
const user = decodeURIComponent(this._route.snapshot.queryParams.user);
|
|
23
|
-
const state = this._route.snapshot.queryParams.state;
|
|
24
|
-
switch (request) {
|
|
25
|
-
case EchoRequests.MAINTENANCE:
|
|
26
|
-
this.maintenanceMode();
|
|
27
|
-
break;
|
|
28
|
-
case EchoRequests.REGISTRATION:
|
|
29
|
-
this.followRegistrationLink(code, user);
|
|
30
|
-
break;
|
|
31
|
-
case EchoRequests.INVITATION:
|
|
32
|
-
this.followInvitationLink(code);
|
|
33
|
-
break;
|
|
34
|
-
case EchoRequests.EMAIL_CHANGE:
|
|
35
|
-
this.followEmailChangeConfirmationLink(code);
|
|
36
|
-
break;
|
|
37
|
-
case EchoRequests.GITHUB_INTEGRATION:
|
|
38
|
-
this.endGitHubIntegrationFlow(code === 'done');
|
|
39
|
-
break;
|
|
40
|
-
case EchoRequests.TRELLO_INTEGRATION:
|
|
41
|
-
this.endTrelloIntegrationFlow(code);
|
|
42
|
-
break;
|
|
43
|
-
case EchoRequests.MICROSOFT_CALENDARS_INTEGRATION:
|
|
44
|
-
this.endExternalCalendarsIntegrationFlow(ExternalCalendarSources.MICROSOFT, code, state);
|
|
45
|
-
break;
|
|
46
|
-
case EchoRequests.GOOGLE_CALENDARS_INTEGRATION:
|
|
47
|
-
this.endExternalCalendarsIntegrationFlow(ExternalCalendarSources.GOOGLE, code, state);
|
|
48
|
-
break;
|
|
49
|
-
default:
|
|
50
|
-
this.success = false;
|
|
51
|
-
this.content = this._translate._('IDEA_UNCOMMON.ECHO.INVALID_ACTION');
|
|
52
|
-
break;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
maintenanceMode() {
|
|
56
|
-
const announcement = this._tc.get('idea-announcement');
|
|
57
|
-
if (announcement && announcement.content)
|
|
58
|
-
this.htmlContent = mdToHtml(announcement.content);
|
|
59
|
-
}
|
|
60
|
-
async followRegistrationLink(code, user) {
|
|
61
|
-
try {
|
|
62
|
-
await this._loading.show();
|
|
63
|
-
await this._API.postResource('cognito2', {
|
|
64
|
-
idea: true,
|
|
65
|
-
body: {
|
|
66
|
-
action: 'CONFIRM_SIGN_UP',
|
|
67
|
-
username: user,
|
|
68
|
-
confirmationCode: code,
|
|
69
|
-
cognitoUserPoolClientId: this._env.aws.cognito.userPoolClientId
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
this.success = true;
|
|
73
|
-
this.content = this._translate._('IDEA_UNCOMMON.ECHO.ACCOUNT_CONFIRMED');
|
|
74
|
-
}
|
|
75
|
-
catch (error) {
|
|
76
|
-
this.success = false;
|
|
77
|
-
this.content = this._translate._('IDEA_UNCOMMON.ECHO.REQUEST_FAILED');
|
|
78
|
-
}
|
|
79
|
-
finally {
|
|
80
|
-
this._loading.hide();
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
async followInvitationLink(code) {
|
|
84
|
-
try {
|
|
85
|
-
await this._loading.show();
|
|
86
|
-
await this._API.getResource('invitations', { idea: true, resourceId: code });
|
|
87
|
-
this.success = true;
|
|
88
|
-
this.content = this._translate._('IDEA_UNCOMMON.ECHO.TEAM_JOINED');
|
|
89
|
-
}
|
|
90
|
-
catch (error) {
|
|
91
|
-
this.success = false;
|
|
92
|
-
this.content = this._translate._('IDEA_UNCOMMON.ECHO.REQUEST_FAILED');
|
|
93
|
-
}
|
|
94
|
-
finally {
|
|
95
|
-
this._loading.hide();
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
async followEmailChangeConfirmationLink(code) {
|
|
99
|
-
try {
|
|
100
|
-
await this._loading.show();
|
|
101
|
-
await this._API.getResource('emailChangeRequests', {
|
|
102
|
-
idea: true,
|
|
103
|
-
resourceId: code,
|
|
104
|
-
params: { project: this._env.idea.project }
|
|
105
|
-
});
|
|
106
|
-
this.success = true;
|
|
107
|
-
this.content = this._translate._('IDEA_UNCOMMON.ECHO.EMAIL_CHANGED');
|
|
108
|
-
}
|
|
109
|
-
catch (error) {
|
|
110
|
-
this.success = false;
|
|
111
|
-
this.content = this._translate._('IDEA_UNCOMMON.ECHO.REQUEST_FAILED');
|
|
112
|
-
}
|
|
113
|
-
finally {
|
|
114
|
-
this._loading.hide();
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
endGitHubIntegrationFlow(success) {
|
|
118
|
-
this.success = success;
|
|
119
|
-
this.content = success
|
|
120
|
-
? this._translate._('IDEA_UNCOMMON.ECHO.GITHUB_SOURCE_INTEGRATION_SUCCESS')
|
|
121
|
-
: this._translate._('IDEA_UNCOMMON.ECHO.GITHUB_SOURCE_INTEGRATION_ERROR');
|
|
122
|
-
}
|
|
123
|
-
endTrelloIntegrationFlow(token) {
|
|
124
|
-
this.success = Boolean(token);
|
|
125
|
-
this.content = token
|
|
126
|
-
? this._translate._('IDEA_UNCOMMON.ECHO.TRELLO_SOURCE_INTEGRATION_SUCCESS', { token })
|
|
127
|
-
: this._translate._('IDEA_UNCOMMON.ECHO.TRELLO_SOURCE_INTEGRATION_ERROR');
|
|
128
|
-
}
|
|
129
|
-
async endExternalCalendarsIntegrationFlow(service, code, calendarId) {
|
|
130
|
-
try {
|
|
131
|
-
await this._loading.show();
|
|
132
|
-
await this._API.patchResource('calendars', {
|
|
133
|
-
idea: true,
|
|
134
|
-
body: { action: 'SET_EXTERNAL_INTEGRATION', service, code, calendarId, project: this._env.idea.project }
|
|
135
|
-
});
|
|
136
|
-
this.success = true;
|
|
137
|
-
this.content = this._translate._('IDEA_UNCOMMON.ECHO.EXTERNAL_CALENDARS_SOURCE_INTEGRATION_SUCCESS');
|
|
138
|
-
}
|
|
139
|
-
catch (error) {
|
|
140
|
-
this.success = false;
|
|
141
|
-
this.content = this._translate._('IDEA_UNCOMMON.ECHO.EXTERNAL_CALENDARS_SOURCE_INTEGRATION_ERROR');
|
|
142
|
-
}
|
|
143
|
-
finally {
|
|
144
|
-
this._loading.hide();
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAEchoPage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
148
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IDEAEchoPage, isStandalone: true, selector: "idea-echo", ngImport: i0, template: `
|
|
149
|
-
<ion-content>
|
|
150
|
-
<div class="flexBox">
|
|
151
|
-
<ion-card class="echoCard maxWidthContainer">
|
|
152
|
-
<ion-img [src]="'assets/icons/icon-auth.svg'" />
|
|
153
|
-
<ion-card-header>
|
|
154
|
-
<ion-card-title>
|
|
155
|
-
@if (success === true) {
|
|
156
|
-
<ion-icon testId="echoSuccess" color="success" name="checkmark" />
|
|
157
|
-
}
|
|
158
|
-
@if (success === false) {
|
|
159
|
-
<ion-icon testId="echoFailure" color="danger" name="close" />
|
|
160
|
-
}
|
|
161
|
-
</ion-card-title>
|
|
162
|
-
</ion-card-header>
|
|
163
|
-
<ion-card-content class="selectable">
|
|
164
|
-
{{ content }}
|
|
165
|
-
@if (htmlContent) {
|
|
166
|
-
<div class="htmlContent" [innerHTML]="htmlContent"></div>
|
|
167
|
-
}
|
|
168
|
-
@if (success === false || success === true) {
|
|
169
|
-
<p class="youCanCloseMe">
|
|
170
|
-
<i>{{ 'IDEA_UNCOMMON.ECHO.YOU_CAN_CLOSE_THE_PAGE' | translate }}</i>
|
|
171
|
-
</p>
|
|
172
|
-
}
|
|
173
|
-
</ion-card-content>
|
|
174
|
-
</ion-card>
|
|
175
|
-
</div>
|
|
176
|
-
</ion-content>
|
|
177
|
-
`, isInline: true, styles: [".echoCard{min-width:300px;padding:30px 20px;text-align:center}.echoCard ion-img{width:80px;display:block;margin:0 auto}.echoCard ion-icon{font-size:1.8em}.echoCard ion-card-content{margin-bottom:20px;font-size:1.2em}.echoCard ion-card-content p.youCanCloseMe{margin-top:12px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: IDEATranslatePipe, name: "translate" }, { kind: "component", type: IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: IonImg, selector: "ion-img", inputs: ["alt", "src"] }, { kind: "component", type: IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }] }); }
|
|
178
|
-
}
|
|
179
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAEchoPage, decorators: [{
|
|
180
|
-
type: Component,
|
|
181
|
-
args: [{ selector: 'idea-echo', standalone: true, imports: [
|
|
182
|
-
CommonModule,
|
|
183
|
-
IDEATranslatePipe,
|
|
184
|
-
IonCardContent,
|
|
185
|
-
IonIcon,
|
|
186
|
-
IonCardTitle,
|
|
187
|
-
IonCardHeader,
|
|
188
|
-
IonImg,
|
|
189
|
-
IonCard,
|
|
190
|
-
IonContent
|
|
191
|
-
], template: `
|
|
192
|
-
<ion-content>
|
|
193
|
-
<div class="flexBox">
|
|
194
|
-
<ion-card class="echoCard maxWidthContainer">
|
|
195
|
-
<ion-img [src]="'assets/icons/icon-auth.svg'" />
|
|
196
|
-
<ion-card-header>
|
|
197
|
-
<ion-card-title>
|
|
198
|
-
@if (success === true) {
|
|
199
|
-
<ion-icon testId="echoSuccess" color="success" name="checkmark" />
|
|
200
|
-
}
|
|
201
|
-
@if (success === false) {
|
|
202
|
-
<ion-icon testId="echoFailure" color="danger" name="close" />
|
|
203
|
-
}
|
|
204
|
-
</ion-card-title>
|
|
205
|
-
</ion-card-header>
|
|
206
|
-
<ion-card-content class="selectable">
|
|
207
|
-
{{ content }}
|
|
208
|
-
@if (htmlContent) {
|
|
209
|
-
<div class="htmlContent" [innerHTML]="htmlContent"></div>
|
|
210
|
-
}
|
|
211
|
-
@if (success === false || success === true) {
|
|
212
|
-
<p class="youCanCloseMe">
|
|
213
|
-
<i>{{ 'IDEA_UNCOMMON.ECHO.YOU_CAN_CLOSE_THE_PAGE' | translate }}</i>
|
|
214
|
-
</p>
|
|
215
|
-
}
|
|
216
|
-
</ion-card-content>
|
|
217
|
-
</ion-card>
|
|
218
|
-
</div>
|
|
219
|
-
</ion-content>
|
|
220
|
-
`, styles: [".echoCard{min-width:300px;padding:30px 20px;text-align:center}.echoCard ion-img{width:80px;display:block;margin:0 auto}.echoCard ion-icon{font-size:1.8em}.echoCard ion-card-content{margin-bottom:20px;font-size:1.2em}.echoCard ion-card-content p.youCanCloseMe{margin-top:12px}\n"] }]
|
|
221
|
-
}] });
|
|
222
|
-
export var EchoRequests;
|
|
223
|
-
(function (EchoRequests) {
|
|
224
|
-
EchoRequests["MAINTENANCE"] = "maintenance";
|
|
225
|
-
EchoRequests["REGISTRATION"] = "registration";
|
|
226
|
-
EchoRequests["INVITATION"] = "invitation";
|
|
227
|
-
EchoRequests["EMAIL_CHANGE"] = "email-change";
|
|
228
|
-
EchoRequests["GITHUB_INTEGRATION"] = "github-integration";
|
|
229
|
-
EchoRequests["TRELLO_INTEGRATION"] = "trello-integration";
|
|
230
|
-
EchoRequests["MICROSOFT_CALENDARS_INTEGRATION"] = "microsoft-calendars-integration";
|
|
231
|
-
EchoRequests["GOOGLE_CALENDARS_INTEGRATION"] = "google-calendars-integration";
|
|
232
|
-
})(EchoRequests || (EchoRequests = {}));
|
|
233
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNoby5wYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy91bmNvbW1vbi9zcmMvZWNoby9lY2hvLnBhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQ0wsVUFBVSxFQUNWLE9BQU8sRUFDUCxNQUFNLEVBQ04sYUFBYSxFQUNiLFlBQVksRUFDWixPQUFPLEVBQ1AsY0FBYyxFQUNmLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFckgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBdUV0RCxNQUFNLE9BQU8sWUFBWTtJQXJFekI7UUFzRVksU0FBSSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNqQyxXQUFNLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2hDLFFBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNoQyxhQUFRLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDdEMsU0FBSSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2pDLGVBQVUsR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztLQW9JdEQ7SUE5SEMs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QUFZLDBCQUNaLGlCQUFpQixrREFDakIsY0FBYywrRUFDZCxPQUFPLDJKQUNQLFlBQVksc0ZBQ1osYUFBYSxzR0FDYixNQUFNLDRFQUNOLE9BQU8seUxBQ1AsVUFBVTs7MkZBeURELFlBQVk7a0JBckV4QixTQUFTOytCQUNFLFdBQVcsY0FDVCxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLGNBQWM7d0JBQ2QsT0FBTzt3QkFDUCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsTUFBTTt3QkFDTixPQUFPO3dCQUNQLFVBQVU7cUJBQ1gsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2QlQ7O0FBc0tILE1BQU0sQ0FBTixJQUFZLFlBU1g7QUFURCxXQUFZLFlBQVk7SUFDdEIsMkNBQTJCLENBQUE7SUFDM0IsNkNBQTZCLENBQUE7SUFDN0IseUNBQXlCLENBQUE7SUFDekIsNkNBQTZCLENBQUE7SUFDN0IseURBQXlDLENBQUE7SUFDekMseURBQXlDLENBQUE7SUFDekMsbUZBQW1FLENBQUE7SUFDbkUsNkVBQTZELENBQUE7QUFDL0QsQ0FBQyxFQVRXLFlBQVksS0FBWixZQUFZLFFBU3ZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7XG4gIElvbkNvbnRlbnQsXG4gIElvbkNhcmQsXG4gIElvbkltZyxcbiAgSW9uQ2FyZEhlYWRlcixcbiAgSW9uQ2FyZFRpdGxlLFxuICBJb25JY29uLFxuICBJb25DYXJkQ29udGVudFxufSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IEV4dGVybmFsQ2FsZW5kYXJTb3VyY2VzLCBtZFRvSHRtbCB9IGZyb20gJ2lkZWEtdG9vbGJveCc7XG5pbXBvcnQgeyBJREVBRW52aXJvbm1lbnQsIElERUFMb2FkaW5nU2VydmljZSwgSURFQVRyYW5zbGF0ZVBpcGUsIElERUFUcmFuc2xhdGlvbnNTZXJ2aWNlIH0gZnJvbSAnQGlkZWEtaW9uaWMvY29tbW9uJztcblxuaW1wb3J0IHsgSURFQUFXU0FQSVNlcnZpY2UgfSBmcm9tICcuLi9BV1NBUEkuc2VydmljZSc7XG5pbXBvcnQgeyBJREVBVGluQ2FuU2VydmljZSB9IGZyb20gJy4uL3RpbkNhbi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWRlYS1lY2hvJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBJREVBVHJhbnNsYXRlUGlwZSxcbiAgICBJb25DYXJkQ29udGVudCxcbiAgICBJb25JY29uLFxuICAgIElvbkNhcmRUaXRsZSxcbiAgICBJb25DYXJkSGVhZGVyLFxuICAgIElvbkltZyxcbiAgICBJb25DYXJkLFxuICAgIElvbkNvbnRlbnRcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8aW9uLWNvbnRlbnQ+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleEJveFwiPlxuICAgICAgICA8aW9uLWNhcmQgY2xhc3M9XCJlY2hvQ2FyZCBtYXhXaWR0aENvbnRhaW5lclwiPlxuICAgICAgICAgIDxpb24taW1nIFtzcmNdPVwiJ2Fzc2V0cy9pY29ucy9pY29uLWF1dGguc3ZnJ1wiIC8+XG4gICAgICAgICAgPGlvbi1jYXJkLWhlYWRlcj5cbiAgICAgICAgICAgIDxpb24tY2FyZC10aXRsZT5cbiAgICAgICAgICAgICAgQGlmIChzdWNjZXNzID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgPGlvbi1pY29uIHRlc3RJZD1cImVjaG9TdWNjZXNzXCIgY29sb3I9XCJzdWNjZXNzXCIgbmFtZT1cImNoZWNrbWFya1wiIC8+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgQGlmIChzdWNjZXNzID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIDxpb24taWNvbiB0ZXN0SWQ9XCJlY2hvRmFpbHVyZVwiIGNvbG9yPVwiZGFuZ2VyXCIgbmFtZT1cImNsb3NlXCIgLz5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9pb24tY2FyZC10aXRsZT5cbiAgICAgICAgICA8L2lvbi1jYXJkLWhlYWRlcj5cbiAgICAgICAgICA8aW9uLWNhcmQtY29udGVudCBjbGFzcz1cInNlbGVjdGFibGVcIj5cbiAgICAgICAgICAgIHt7IGNvbnRlbnQgfX1cbiAgICAgICAgICAgIEBpZiAoaHRtbENvbnRlbnQpIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImh0bWxDb250ZW50XCIgW2lubmVySFRNTF09XCJodG1sQ29udGVudFwiPjwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChzdWNjZXNzID09PSBmYWxzZSB8fCBzdWNjZXNzID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgIDxwIGNsYXNzPVwieW91Q2FuQ2xvc2VNZVwiPlxuICAgICAgICAgICAgICAgIDxpPnt7ICdJREVBX1VOQ09NTU9OLkVDSE8uWU9VX0NBTl9DTE9TRV9USEVfUEFHRScgfCB0cmFuc2xhdGUgfX08L2k+XG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2lvbi1jYXJkLWNvbnRlbnQ+XG4gICAgICAgIDwvaW9uLWNhcmQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2lvbi1jb250ZW50PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICAuZWNob0NhcmQge1xuICAgICAgICBtaW4td2lkdGg6IDMwMHB4O1xuICAgICAgICBwYWRkaW5nOiAzMHB4IDIwcHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgaW9uLWltZyB7XG4gICAgICAgICAgd2lkdGg6IDgwcHg7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIH1cbiAgICAgICAgaW9uLWljb24ge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS44ZW07XG4gICAgICAgIH1cbiAgICAgICAgaW9uLWNhcmQtY29udGVudCB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgICBmb250LXNpemU6IDEuMmVtO1xuICAgICAgICAgIHAueW91Q2FuQ2xvc2VNZSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIGBcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBJREVBRWNob1BhZ2UgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcm90ZWN0ZWQgX2VudiA9IGluamVjdChJREVBRW52aXJvbm1lbnQpO1xuICBwcml2YXRlIF9yb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XG4gIHByaXZhdGUgX3RjID0gaW5qZWN0KElERUFUaW5DYW5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBfbG9hZGluZyA9IGluamVjdChJREVBTG9hZGluZ1NlcnZpY2UpO1xuICBwcml2YXRlIF9BUEkgPSBpbmplY3QoSURFQUFXU0FQSVNlcnZpY2UpO1xuICBwcml2YXRlIF90cmFuc2xhdGUgPSBpbmplY3QoSURFQVRyYW5zbGF0aW9uc1NlcnZpY2UpO1xuXG4gIGNvbnRlbnQ6IHN0cmluZztcbiAgaHRtbENvbnRlbnQ6IHN0cmluZztcbiAgc3VjY2VzczogYm9vbGVhbjtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCByZXF1ZXN0OiBFY2hvUmVxdWVzdHMgPVxuICAgICAgdGhpcy5fcm91dGUuc25hcHNob3QucGFyYW1NYXAuZ2V0KCdyZXF1ZXN0JykgfHwgdGhpcy5fcm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMucmVxdWVzdDtcbiAgICBjb25zdCBjb2RlOiBzdHJpbmcgPSB0aGlzLl9yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcy5jb2RlO1xuICAgIGNvbnN0IHVzZXI6IHN0cmluZyA9IGRlY29kZVVSSUNvbXBvbmVudCh0aGlzLl9yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcy51c2VyKTtcbiAgICBjb25zdCBzdGF0ZTogc3RyaW5nID0gdGhpcy5fcm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMuc3RhdGU7XG4gICAgc3dpdGNoIChyZXF1ZXN0KSB7XG4gICAgICBjYXNlIEVjaG9SZXF1ZXN0cy5NQUlOVEVOQU5DRTpcbiAgICAgICAgdGhpcy5tYWludGVuYW5jZU1vZGUoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEVjaG9SZXF1ZXN0cy5SRUdJU1RSQVRJT046XG4gICAgICAgIHRoaXMuZm9sbG93UmVnaXN0cmF0aW9uTGluayhjb2RlLCB1c2VyKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEVjaG9SZXF1ZXN0cy5JTlZJVEFUSU9OOlxuICAgICAgICB0aGlzLmZvbGxvd0ludml0YXRpb25MaW5rKGNvZGUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRWNob1JlcXVlc3RzLkVNQUlMX0NIQU5HRTpcbiAgICAgICAgdGhpcy5mb2xsb3dFbWFpbENoYW5nZUNvbmZpcm1hdGlvbkxpbmsoY29kZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBFY2hvUmVxdWVzdHMuR0lUSFVCX0lOVEVHUkFUSU9OOlxuICAgICAgICB0aGlzLmVuZEdpdEh1YkludGVncmF0aW9uRmxvdyhjb2RlID09PSAnZG9uZScpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRWNob1JlcXVlc3RzLlRSRUxMT19JTlRFR1JBVElPTjpcbiAgICAgICAgdGhpcy5lbmRUcmVsbG9JbnRlZ3JhdGlvbkZsb3coY29kZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBFY2hvUmVxdWVzdHMuTUlDUk9TT0ZUX0NBTEVOREFSU19JTlRFR1JBVElPTjpcbiAgICAgICAgdGhpcy5lbmRFeHRlcm5hbENhbGVuZGFyc0ludGVncmF0aW9uRmxvdyhFeHRlcm5hbENhbGVuZGFyU291cmNlcy5NSUNST1NPRlQsIGNvZGUsIHN0YXRlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEVjaG9SZXF1ZXN0cy5HT09HTEVfQ0FMRU5EQVJTX0lOVEVHUkFUSU9OOlxuICAgICAgICB0aGlzLmVuZEV4dGVybmFsQ2FsZW5kYXJzSW50ZWdyYXRpb25GbG93KEV4dGVybmFsQ2FsZW5kYXJTb3VyY2VzLkdPT0dMRSwgY29kZSwgc3RhdGUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRoaXMuc3VjY2VzcyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNvbnRlbnQgPSB0aGlzLl90cmFuc2xhdGUuXygnSURFQV9VTkNPTU1PTi5FQ0hPLklOVkFMSURfQUNUSU9OJyk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIG1haW50ZW5hbmNlTW9kZSgpOiB2b2lkIHtcbiAgICBjb25zdCBhbm5vdW5jZW1lbnQgPSB0aGlzLl90Yy5nZXQoJ2lkZWEtYW5ub3VuY2VtZW50Jyk7XG4gICAgaWYgKGFubm91bmNlbWVudCAmJiBhbm5vdW5jZW1lbnQuY29udGVudCkgdGhpcy5odG1sQ29udGVudCA9IG1kVG9IdG1sKGFubm91bmNlbWVudC5jb250ZW50KTtcbiAgfVxuXG4gIGFzeW5jIGZvbGxvd1JlZ2lzdHJhdGlvbkxpbmsoY29kZTogc3RyaW5nLCB1c2VyOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5fbG9hZGluZy5zaG93KCk7XG4gICAgICBhd2FpdCB0aGlzLl9BUEkucG9zdFJlc291cmNlKCdjb2duaXRvMicsIHtcbiAgICAgICAgaWRlYTogdHJ1ZSxcbiAgICAgICAgYm9keToge1xuICAgICAgICAgIGFjdGlvbjogJ0NPTkZJUk1fU0lHTl9VUCcsXG4gICAgICAgICAgdXNlcm5hbWU6IHVzZXIsXG4gICAgICAgICAgY29uZmlybWF0aW9uQ29kZTogY29kZSxcbiAgICAgICAgICBjb2duaXRvVXNlclBvb2xDbGllbnRJZDogdGhpcy5fZW52LmF3cy5jb2duaXRvLnVzZXJQb29sQ2xpZW50SWRcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLnN1Y2Nlc3MgPSB0cnVlO1xuICAgICAgdGhpcy5jb250ZW50ID0gdGhpcy5fdHJhbnNsYXRlLl8oJ0lERUFfVU5DT01NT04uRUNITy5BQ0NPVU5UX0NPTkZJUk1FRCcpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLnN1Y2Nlc3MgPSBmYWxzZTtcbiAgICAgIHRoaXMuY29udGVudCA9IHRoaXMuX3RyYW5zbGF0ZS5fKCdJREVBX1VOQ09NTU9OLkVDSE8uUkVRVUVTVF9GQUlMRUQnKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5fbG9hZGluZy5oaWRlKCk7XG4gICAgfVxuICB9XG4gIGFzeW5jIGZvbGxvd0ludml0YXRpb25MaW5rKGNvZGU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLl9sb2FkaW5nLnNob3coKTtcbiAgICAgIGF3YWl0IHRoaXMuX0FQSS5nZXRSZXNvdXJjZSgnaW52aXRhdGlvbnMnLCB7IGlkZWE6IHRydWUsIHJlc291cmNlSWQ6IGNvZGUgfSk7XG4gICAgICB0aGlzLnN1Y2Nlc3MgPSB0cnVlO1xuICAgICAgdGhpcy5jb250ZW50ID0gdGhpcy5fdHJhbnNsYXRlLl8oJ0lERUFfVU5DT01NT04uRUNITy5URUFNX0pPSU5FRCcpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLnN1Y2Nlc3MgPSBmYWxzZTtcbiAgICAgIHRoaXMuY29udGVudCA9IHRoaXMuX3RyYW5zbGF0ZS5fKCdJREVBX1VOQ09NTU9OLkVDSE8uUkVRVUVTVF9GQUlMRUQnKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5fbG9hZGluZy5oaWRlKCk7XG4gICAgfVxuICB9XG4gIGFzeW5jIGZvbGxvd0VtYWlsQ2hhbmdlQ29uZmlybWF0aW9uTGluayhjb2RlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5fbG9hZGluZy5zaG93KCk7XG4gICAgICBhd2FpdCB0aGlzLl9BUEkuZ2V0UmVzb3VyY2UoJ2VtYWlsQ2hhbmdlUmVxdWVzdHMnLCB7XG4gICAgICAgIGlkZWE6IHRydWUsXG4gICAgICAgIHJlc291cmNlSWQ6IGNvZGUsXG4gICAgICAgIHBhcmFtczogeyBwcm9qZWN0OiB0aGlzLl9lbnYuaWRlYS5wcm9qZWN0IH1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5zdWNjZXNzID0gdHJ1ZTtcbiAgICAgIHRoaXMuY29udGVudCA9IHRoaXMuX3RyYW5zbGF0ZS5fKCdJREVBX1VOQ09NTU9OLkVDSE8uRU1BSUxfQ0hBTkdFRCcpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLnN1Y2Nlc3MgPSBmYWxzZTtcbiAgICAgIHRoaXMuY29udGVudCA9IHRoaXMuX3RyYW5zbGF0ZS5fKCdJREVBX1VOQ09NTU9OLkVDSE8uUkVRVUVTVF9GQUlMRUQnKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5fbG9hZGluZy5oaWRlKCk7XG4gICAgfVxuICB9XG4gIGVuZEdpdEh1YkludGVncmF0aW9uRmxvdyhzdWNjZXNzOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5zdWNjZXNzID0gc3VjY2VzcztcbiAgICB0aGlzLmNvbnRlbnQgPSBzdWNjZXNzXG4gICAgICA/IHRoaXMuX3RyYW5zbGF0ZS5fKCdJREVBX1VOQ09NTU9OLkVDSE8uR0lUSFVCX1NPVVJDRV9JTlRFR1JBVElPTl9TVUNDRVNTJylcbiAgICAgIDogdGhpcy5fdHJhbnNsYXRlLl8oJ0lERUFfVU5DT01NT04uRUNITy5HSVRIVUJfU09VUkNFX0lOVEVHUkFUSU9OX0VSUk9SJyk7XG4gIH1cbiAgZW5kVHJlbGxvSW50ZWdyYXRpb25GbG93KHRva2VuOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnN1Y2Nlc3MgPSBCb29sZWFuKHRva2VuKTtcbiAgICB0aGlzLmNvbnRlbnQgPSB0b2tlblxuICAgICAgPyB0aGlzLl90cmFuc2xhdGUuXygnSURFQV9VTkNPTU1PTi5FQ0hPLlRSRUxMT19TT1VSQ0VfSU5URUdSQVRJT05fU1VDQ0VTUycsIHsgdG9rZW4gfSlcbiAgICAgIDogdGhpcy5fdHJhbnNsYXRlLl8oJ0lERUFfVU5DT01NT04uRUNITy5UUkVMTE9fU09VUkNFX0lOVEVHUkFUSU9OX0VSUk9SJyk7XG4gIH1cbiAgYXN5bmMgZW5kRXh0ZXJuYWxDYWxlbmRhcnNJbnRlZ3JhdGlvbkZsb3coXG4gICAgc2VydmljZTogRXh0ZXJuYWxDYWxlbmRhclNvdXJjZXMsXG4gICAgY29kZTogc3RyaW5nLFxuICAgIGNhbGVuZGFySWQ6IHN0cmluZ1xuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5fbG9hZGluZy5zaG93KCk7XG4gICAgICBhd2FpdCB0aGlzLl9BUEkucGF0Y2hSZXNvdXJjZSgnY2FsZW5kYXJzJywge1xuICAgICAgICBpZGVhOiB0cnVlLFxuICAgICAgICBib2R5OiB7IGFjdGlvbjogJ1NFVF9FWFRFUk5BTF9JTlRFR1JBVElPTicsIHNlcnZpY2UsIGNvZGUsIGNhbGVuZGFySWQsIHByb2plY3Q6IHRoaXMuX2Vudi5pZGVhLnByb2plY3QgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLnN1Y2Nlc3MgPSB0cnVlO1xuICAgICAgdGhpcy5jb250ZW50ID0gdGhpcy5fdHJhbnNsYXRlLl8oJ0lERUFfVU5DT01NT04uRUNITy5FWFRFUk5BTF9DQUxFTkRBUlNfU09VUkNFX0lOVEVHUkFUSU9OX1NVQ0NFU1MnKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5zdWNjZXNzID0gZmFsc2U7XG4gICAgICB0aGlzLmNvbnRlbnQgPSB0aGlzLl90cmFuc2xhdGUuXygnSURFQV9VTkNPTU1PTi5FQ0hPLkVYVEVSTkFMX0NBTEVOREFSU19TT1VSQ0VfSU5URUdSQVRJT05fRVJST1InKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5fbG9hZGluZy5oaWRlKCk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBlbnVtIEVjaG9SZXF1ZXN0cyB7XG4gIE1BSU5URU5BTkNFID0gJ21haW50ZW5hbmNlJyxcbiAgUkVHSVNUUkFUSU9OID0gJ3JlZ2lzdHJhdGlvbicsXG4gIElOVklUQVRJT04gPSAnaW52aXRhdGlvbicsXG4gIEVNQUlMX0NIQU5HRSA9ICdlbWFpbC1jaGFuZ2UnLFxuICBHSVRIVUJfSU5URUdSQVRJT04gPSAnZ2l0aHViLWludGVncmF0aW9uJyxcbiAgVFJFTExPX0lOVEVHUkFUSU9OID0gJ3RyZWxsby1pbnRlZ3JhdGlvbicsXG4gIE1JQ1JPU09GVF9DQUxFTkRBUlNfSU5URUdSQVRJT04gPSAnbWljcm9zb2Z0LWNhbGVuZGFycy1pbnRlZ3JhdGlvbicsXG4gIEdPT0dMRV9DQUxFTkRBUlNfSU5URUdSQVRJT04gPSAnZ29vZ2xlLWNhbGVuZGFycy1pbnRlZ3JhdGlvbidcbn1cbiJdfQ==
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { IDEAEchoPage } from './echo.page';
|
|
2
|
-
export const ideaEchoRoutes = [
|
|
3
|
-
{ path: '', component: IDEAEchoPage },
|
|
4
|
-
{ path: ':request', component: IDEAEchoPage }
|
|
5
|
-
];
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNoby5yb3V0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9tb2R1bGVzL3VuY29tbW9uL3NyYy9lY2hvL2VjaG8ucm91dGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFM0MsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFXO0lBQ3BDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFO0lBQ3JDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFO0NBQzlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBJREVBRWNob1BhZ2UgfSBmcm9tICcuL2VjaG8ucGFnZSc7XG5cbmV4cG9ydCBjb25zdCBpZGVhRWNob1JvdXRlczogUm91dGVzID0gW1xuICB7IHBhdGg6ICcnLCBjb21wb25lbnQ6IElERUFFY2hvUGFnZSB9LFxuICB7IHBhdGg6ICc6cmVxdWVzdCcsIGNvbXBvbmVudDogSURFQUVjaG9QYWdlIH1cbl07XG4iXX0=
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import { Injectable, inject } from '@angular/core';
|
|
2
|
-
import { HttpClient } from '@angular/common/http';
|
|
3
|
-
import { Platform } from '@ionic/angular/standalone';
|
|
4
|
-
import { ClientInfo, ErrorReport } from 'idea-toolbox';
|
|
5
|
-
import { IDEAEnvironment } from '@idea-ionic/common';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export class IDEAErrorReportingService {
|
|
8
|
-
constructor() {
|
|
9
|
-
this._env = inject(IDEAEnvironment);
|
|
10
|
-
this._http = inject(HttpClient);
|
|
11
|
-
this._platform = inject(Platform);
|
|
12
|
-
this.apiStage = this._env.idea.ideaApi?.stage || this._env.idea.ideaApi?.version;
|
|
13
|
-
this.apiUrl = 'https://'.concat([this._env.idea.ideaApi?.url, this.apiStage].filter(x => x).join('/'));
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Send the error report to the back-end.
|
|
17
|
-
*/
|
|
18
|
-
sendReport(error, forceSend) {
|
|
19
|
-
return new Promise(resolve => {
|
|
20
|
-
// skip in case we don't want to send the report or the report is useless (blank error)
|
|
21
|
-
if ((!this.shouldSend() && !forceSend) || !error?.name)
|
|
22
|
-
return resolve();
|
|
23
|
-
// prepare and send the report
|
|
24
|
-
const report = new ErrorReport({
|
|
25
|
-
version: this._env.idea.app.version,
|
|
26
|
-
stage: this.apiStage,
|
|
27
|
-
client: this.getClientInfo(),
|
|
28
|
-
type: error.name,
|
|
29
|
-
error: error.message,
|
|
30
|
-
stack: error.stack
|
|
31
|
-
});
|
|
32
|
-
this._http
|
|
33
|
-
.post(this.apiUrl.concat(`/projects/${this._env.idea.project}/errorReporting`), report)
|
|
34
|
-
.toPromise()
|
|
35
|
-
.catch(() => { }) // note: never throw an error when reporting an error
|
|
36
|
-
.finally(() => resolve());
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Whether we should send the reporting or we are in a scenario in which we should skip it.
|
|
41
|
-
*/
|
|
42
|
-
shouldSend() {
|
|
43
|
-
return this.apiStage === 'prod';
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Acquire the client's info.
|
|
47
|
-
*/
|
|
48
|
-
getClientInfo() {
|
|
49
|
-
return new ClientInfo({
|
|
50
|
-
timestamp: new Date().toISOString(),
|
|
51
|
-
platform: this._platform.platforms().join(' '),
|
|
52
|
-
screenWidth: this._platform.width(),
|
|
53
|
-
screenHeight: this._platform.height(),
|
|
54
|
-
isLandScape: this._platform.isLandscape(),
|
|
55
|
-
url: this._platform.url(),
|
|
56
|
-
referrer: document.referrer,
|
|
57
|
-
isOnline: navigator.onLine,
|
|
58
|
-
language: navigator.language,
|
|
59
|
-
userAgent: navigator.userAgent
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAErrorReportingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
63
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAErrorReportingService, providedIn: 'root' }); }
|
|
64
|
-
}
|
|
65
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAErrorReportingService, decorators: [{
|
|
66
|
-
type: Injectable,
|
|
67
|
-
args: [{ providedIn: 'root' }]
|
|
68
|
-
}], ctorParameters: () => [] });
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JSZXBvcnRpbmcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL21vZHVsZXMvdW5jb21tb24vc3JjL2Vycm9yUmVwb3J0aW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBR3JELE1BQU0sT0FBTyx5QkFBeUI7SUFRcEM7UUFQVSxTQUFJLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQy9CLFVBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDM0IsY0FBUyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQU1yQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLElBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBZSxFQUFFLE9BQU8sQ0FBQztRQUMxRixJQUFJLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN6RyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxVQUFVLENBQUMsS0FBWSxFQUFFLFNBQW1CO1FBQzFDLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDM0IsdUZBQXVGO1lBQ3ZGLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUk7Z0JBQUUsT0FBTyxPQUFPLEVBQUUsQ0FBQztZQUN6RSw4QkFBOEI7WUFDOUIsTUFBTSxNQUFNLEdBQUcsSUFBSSxXQUFXLENBQUM7Z0JBQzdCLE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTztnQkFDbkMsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRO2dCQUNwQixNQUFNLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRTtnQkFDNUIsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO2dCQUNoQixLQUFLLEVBQUUsS0FBSyxDQUFDLE9BQU87Z0JBQ3BCLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSzthQUNuQixDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsS0FBSztpQkFDUCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLGlCQUFpQixDQUFDLEVBQUUsTUFBTSxDQUFDO2lCQUN0RixTQUFTLEVBQUU7aUJBQ1gsS0FBSyxDQUFDLEdBQVMsRUFBRSxHQUFFLENBQUMsQ0FBQyxDQUFDLHFEQUFxRDtpQkFDM0UsT0FBTyxDQUFDLEdBQVMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsUUFBUSxLQUFLLE1BQU0sQ0FBQztJQUNsQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxhQUFhO1FBQ1gsT0FBTyxJQUFJLFVBQVUsQ0FBQztZQUNwQixTQUFTLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUU7WUFDbkMsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUM5QyxXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUU7WUFDbkMsWUFBWSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFO1lBQ3JDLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRTtZQUN6QyxHQUFHLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDekIsUUFBUSxFQUFFLFFBQVEsQ0FBQyxRQUFRO1lBQzNCLFFBQVEsRUFBRSxTQUFTLENBQUMsTUFBTTtZQUMxQixRQUFRLEVBQUUsU0FBUyxDQUFDLFFBQVE7WUFDNUIsU0FBUyxFQUFFLFNBQVMsQ0FBQyxTQUFTO1NBQy9CLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBNURVLHlCQUF5QjtrSEFBekIseUJBQXlCLGNBRFosTUFBTTs7MkZBQ25CLHlCQUF5QjtrQkFEckMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBQbGF0Zm9ybSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgQ2xpZW50SW5mbywgRXJyb3JSZXBvcnQgfSBmcm9tICdpZGVhLXRvb2xib3gnO1xuaW1wb3J0IHsgSURFQUVudmlyb25tZW50IH0gZnJvbSAnQGlkZWEtaW9uaWMvY29tbW9uJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBJREVBRXJyb3JSZXBvcnRpbmdTZXJ2aWNlIHtcbiAgcHJvdGVjdGVkIF9lbnYgPSBpbmplY3QoSURFQUVudmlyb25tZW50KTtcbiAgcHJvdGVjdGVkIF9odHRwID0gaW5qZWN0KEh0dHBDbGllbnQpO1xuICBwcm90ZWN0ZWQgX3BsYXRmb3JtID0gaW5qZWN0KFBsYXRmb3JtKTtcblxuICBhcGlTdGFnZTogc3RyaW5nO1xuICBhcGlVcmw6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmFwaVN0YWdlID0gdGhpcy5fZW52LmlkZWEuaWRlYUFwaT8uc3RhZ2UgfHwgKHRoaXMuX2Vudi5pZGVhLmlkZWFBcGkgYXMgYW55KT8udmVyc2lvbjtcbiAgICB0aGlzLmFwaVVybCA9ICdodHRwczovLycuY29uY2F0KFt0aGlzLl9lbnYuaWRlYS5pZGVhQXBpPy51cmwsIHRoaXMuYXBpU3RhZ2VdLmZpbHRlcih4ID0+IHgpLmpvaW4oJy8nKSk7XG4gIH1cblxuICAvKipcbiAgICogU2VuZCB0aGUgZXJyb3IgcmVwb3J0IHRvIHRoZSBiYWNrLWVuZC5cbiAgICovXG4gIHNlbmRSZXBvcnQoZXJyb3I6IEVycm9yLCBmb3JjZVNlbmQ/OiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuICAgICAgLy8gc2tpcCBpbiBjYXNlIHdlIGRvbid0IHdhbnQgdG8gc2VuZCB0aGUgcmVwb3J0IG9yIHRoZSByZXBvcnQgaXMgdXNlbGVzcyAoYmxhbmsgZXJyb3IpXG4gICAgICBpZiAoKCF0aGlzLnNob3VsZFNlbmQoKSAmJiAhZm9yY2VTZW5kKSB8fCAhZXJyb3I/Lm5hbWUpIHJldHVybiByZXNvbHZlKCk7XG4gICAgICAvLyBwcmVwYXJlIGFuZCBzZW5kIHRoZSByZXBvcnRcbiAgICAgIGNvbnN0IHJlcG9ydCA9IG5ldyBFcnJvclJlcG9ydCh7XG4gICAgICAgIHZlcnNpb246IHRoaXMuX2Vudi5pZGVhLmFwcC52ZXJzaW9uLFxuICAgICAgICBzdGFnZTogdGhpcy5hcGlTdGFnZSxcbiAgICAgICAgY2xpZW50OiB0aGlzLmdldENsaWVudEluZm8oKSxcbiAgICAgICAgdHlwZTogZXJyb3IubmFtZSxcbiAgICAgICAgZXJyb3I6IGVycm9yLm1lc3NhZ2UsXG4gICAgICAgIHN0YWNrOiBlcnJvci5zdGFja1xuICAgICAgfSk7XG4gICAgICB0aGlzLl9odHRwXG4gICAgICAgIC5wb3N0KHRoaXMuYXBpVXJsLmNvbmNhdChgL3Byb2plY3RzLyR7dGhpcy5fZW52LmlkZWEucHJvamVjdH0vZXJyb3JSZXBvcnRpbmdgKSwgcmVwb3J0KVxuICAgICAgICAudG9Qcm9taXNlKClcbiAgICAgICAgLmNhdGNoKCgpOiB2b2lkID0+IHt9KSAvLyBub3RlOiBuZXZlciB0aHJvdyBhbiBlcnJvciB3aGVuIHJlcG9ydGluZyBhbiBlcnJvclxuICAgICAgICAuZmluYWxseSgoKTogdm9pZCA9PiByZXNvbHZlKCkpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgd2Ugc2hvdWxkIHNlbmQgdGhlIHJlcG9ydGluZyBvciB3ZSBhcmUgaW4gYSBzY2VuYXJpbyBpbiB3aGljaCB3ZSBzaG91bGQgc2tpcCBpdC5cbiAgICovXG4gIHNob3VsZFNlbmQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU3RhZ2UgPT09ICdwcm9kJztcbiAgfVxuXG4gIC8qKlxuICAgKiBBY3F1aXJlIHRoZSBjbGllbnQncyBpbmZvLlxuICAgKi9cbiAgZ2V0Q2xpZW50SW5mbygpOiBDbGllbnRJbmZvIHtcbiAgICByZXR1cm4gbmV3IENsaWVudEluZm8oe1xuICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICBwbGF0Zm9ybTogdGhpcy5fcGxhdGZvcm0ucGxhdGZvcm1zKCkuam9pbignICcpLFxuICAgICAgc2NyZWVuV2lkdGg6IHRoaXMuX3BsYXRmb3JtLndpZHRoKCksXG4gICAgICBzY3JlZW5IZWlnaHQ6IHRoaXMuX3BsYXRmb3JtLmhlaWdodCgpLFxuICAgICAgaXNMYW5kU2NhcGU6IHRoaXMuX3BsYXRmb3JtLmlzTGFuZHNjYXBlKCksXG4gICAgICB1cmw6IHRoaXMuX3BsYXRmb3JtLnVybCgpLFxuICAgICAgcmVmZXJyZXI6IGRvY3VtZW50LnJlZmVycmVyLFxuICAgICAgaXNPbmxpbmU6IG5hdmlnYXRvci5vbkxpbmUsXG4gICAgICBsYW5ndWFnZTogbmF2aWdhdG9yLmxhbmd1YWdlLFxuICAgICAgdXNlckFnZW50OiBuYXZpZ2F0b3IudXNlckFnZW50XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|