@valtimo/logging 12.5.1 → 12.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/log-search/log-search.component.mjs +42 -7
- package/esm2022/lib/components/logging-list/logging-list.component.mjs +5 -4
- package/fesm2022/valtimo-logging.mjs +45 -9
- package/fesm2022/valtimo-logging.mjs.map +1 -1
- package/lib/components/log-search/log-search.component.d.ts +5 -0
- package/lib/components/log-search/log-search.component.d.ts.map +1 -1
- package/lib/components/logging-list/logging-list.component.d.ts +3 -1
- package/lib/components/logging-list/logging-list.component.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -15,11 +15,11 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import { CommonModule } from '@angular/common';
|
|
17
17
|
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
|
|
18
|
-
import { ReactiveFormsModule } from '@angular/forms';
|
|
18
|
+
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
19
19
|
import { TrashCan16 } from '@carbon/icons';
|
|
20
20
|
import { TranslateModule } from '@ngx-translate/core';
|
|
21
21
|
import { CARBON_THEME, CurrentCarbonTheme } from '@valtimo/components';
|
|
22
|
-
import { ButtonModule, DatePickerModule, DropdownModule, IconModule, InputModule, } from 'carbon-components-angular';
|
|
22
|
+
import { ButtonModule, DatePickerModule, DropdownModule, IconModule, InputModule, TimePickerModule, } from 'carbon-components-angular';
|
|
23
23
|
import flatpickr from 'flatpickr';
|
|
24
24
|
import { debounceTime, map, Subscription } from 'rxjs';
|
|
25
25
|
import { LogLevel, } from '../../models';
|
|
@@ -43,7 +43,9 @@ export class LogSearchComponent {
|
|
|
43
43
|
likeFormattedMessage: this.fb.control(''),
|
|
44
44
|
level: this.fb.control({ content: '', selected: false }),
|
|
45
45
|
beforeTimestamp: this.fb.control(''),
|
|
46
|
+
beforeTime: this.fb.control(''),
|
|
46
47
|
afterTimestamp: this.fb.control(''),
|
|
48
|
+
afterTime: this.fb.control(''),
|
|
47
49
|
properties: this.fb.array([
|
|
48
50
|
this.fb.group({
|
|
49
51
|
key: this.fb.control(''),
|
|
@@ -126,6 +128,24 @@ export class LogSearchComponent {
|
|
|
126
128
|
this.addPropertySearchField();
|
|
127
129
|
}
|
|
128
130
|
}
|
|
131
|
+
initTimeForm(formValue) {
|
|
132
|
+
const { beforeTimestamp, afterTimestamp } = formValue;
|
|
133
|
+
if (!!beforeTimestamp) {
|
|
134
|
+
const { hours, minutes } = this.convertTimestampToTimeString(beforeTimestamp);
|
|
135
|
+
this.formGroup.patchValue({ beforeTime: `${hours}:${minutes}` }, { emitEvent: false });
|
|
136
|
+
}
|
|
137
|
+
if (!!afterTimestamp) {
|
|
138
|
+
const { hours, minutes } = this.convertTimestampToTimeString(afterTimestamp);
|
|
139
|
+
this.formGroup.patchValue({ afterTime: `${hours}:${minutes}` }, { emitEvent: false });
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
convertTimestampToTimeString(timestamp) {
|
|
143
|
+
const date = new Date(timestamp);
|
|
144
|
+
return {
|
|
145
|
+
hours: `0${date.getHours()}`.slice(-2),
|
|
146
|
+
minutes: `0${date.getMinutes()}`.slice(-2),
|
|
147
|
+
};
|
|
148
|
+
}
|
|
129
149
|
mapFormValueToLogSearch() {
|
|
130
150
|
const formValue = this.formGroup.getRawValue();
|
|
131
151
|
const properties = formValue.properties.filter((property) => !!property.key && !!property.value);
|
|
@@ -134,8 +154,12 @@ export class LogSearchComponent {
|
|
|
134
154
|
likeFormattedMessage: formValue.likeFormattedMessage,
|
|
135
155
|
}),
|
|
136
156
|
...(!!formValue.level?.content && { level: formValue.level.content }),
|
|
137
|
-
...(!!formValue.afterTimestamp && {
|
|
138
|
-
|
|
157
|
+
...(!!formValue.afterTimestamp && {
|
|
158
|
+
afterTimestamp: this.mapTimeStamps(formValue.afterTimestamp, formValue.afterTime),
|
|
159
|
+
}),
|
|
160
|
+
...(!!formValue.beforeTimestamp && {
|
|
161
|
+
beforeTimestamp: this.mapTimeStamps(formValue.beforeTimestamp, formValue.beforeTime),
|
|
162
|
+
}),
|
|
139
163
|
...(!!properties.length && { properties }),
|
|
140
164
|
};
|
|
141
165
|
}
|
|
@@ -155,14 +179,23 @@ export class LogSearchComponent {
|
|
|
155
179
|
...(searchRequest.properties && { properties: searchRequest.properties }),
|
|
156
180
|
};
|
|
157
181
|
}
|
|
182
|
+
mapTimeStamps(date, time) {
|
|
183
|
+
if (!time)
|
|
184
|
+
return date;
|
|
185
|
+
const timeValue = time.split(':');
|
|
186
|
+
const dateObject = new Date(date);
|
|
187
|
+
dateObject.setHours(+timeValue[0], +timeValue[1]);
|
|
188
|
+
return flatpickr.formatDate(dateObject, 'Z');
|
|
189
|
+
}
|
|
158
190
|
setInitialForm() {
|
|
159
191
|
const mappedFormValue = this.mapSearchRequestToFormValue(this.initSearchRequest);
|
|
160
192
|
this.initLogItems(mappedFormValue);
|
|
161
193
|
this.initPropertiesForm(mappedFormValue);
|
|
194
|
+
this.initTimeForm(mappedFormValue);
|
|
162
195
|
this.formGroup.patchValue(mappedFormValue, { emitEvent: false });
|
|
163
196
|
}
|
|
164
197
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LogSearchComponent, deps: [{ token: i1.CdsThemeService }, { token: i2.FormBuilder }, { token: i3.IconService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
165
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: LogSearchComponent, isStandalone: true, selector: "valtimo-log-search", inputs: { initSearchRequest: "initSearchRequest" }, outputs: { searchSubmitEvent: "searchSubmitEvent" }, viewQueries: [{ propertyName: "_afterTimestampDatePicker", first: true, predicate: ["afterTimestamp"], descendants: true }, { propertyName: "_beforeTimestampDatePicker", first: true, predicate: ["beforeTimestamp"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<form\n *ngIf=\"theme$ | async as theme\"\n class=\"valtimo-log-search\"\n [formGroup]=\"formGroup\"\n (click)=\"$event.stopImmediatePropagation()\"\n>\n <section class=\"valtimo-log-search__fields\">\n <cds-text-label>\n {{ 'logging.columns.formattedMessage' | translate }}\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"theme\"\n formControlName=\"likeFormattedMessage\"\n [placeholder]=\"'logging.columns.formattedMessage' | translate\"\n />\n </cds-text-label>\n\n <cds-dropdown\n formControlName=\"level\"\n [attr.data-carbon-theme]=\"theme\"\n [appendInline]=\"true\"\n [label]=\"'logging.columns.level' | translate\"\n [placeholder]=\"'logging.columns.level' | translate\"\n >\n <cds-dropdown-list [items]=\"logLevelItems\"></cds-dropdown-list>\n </cds-dropdown>\n\n <div class=\"valtimo-log-search__timestamp\">\n <cds-date-picker\n
|
|
198
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: LogSearchComponent, isStandalone: true, selector: "valtimo-log-search", inputs: { initSearchRequest: "initSearchRequest" }, outputs: { searchSubmitEvent: "searchSubmitEvent" }, viewQueries: [{ propertyName: "_afterTimestampDatePicker", first: true, predicate: ["afterTimestamp"], descendants: true }, { propertyName: "_beforeTimestampDatePicker", first: true, predicate: ["beforeTimestamp"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<form\n *ngIf=\"theme$ | async as theme\"\n class=\"valtimo-log-search\"\n [formGroup]=\"formGroup\"\n (click)=\"$event.stopImmediatePropagation()\"\n>\n <section class=\"valtimo-log-search__fields\">\n <cds-text-label class=\"valtimo-log-search__message\">\n {{ 'logging.columns.formattedMessage' | translate }}\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"theme\"\n formControlName=\"likeFormattedMessage\"\n [placeholder]=\"'logging.columns.formattedMessage' | translate\"\n />\n </cds-text-label>\n\n <cds-dropdown\n class=\"valtimo-log-search__level\"\n formControlName=\"level\"\n [attr.data-carbon-theme]=\"theme\"\n [appendInline]=\"true\"\n [label]=\"'logging.columns.level' | translate\"\n [placeholder]=\"'logging.columns.level' | translate\"\n >\n <cds-dropdown-list [items]=\"logLevelItems\"></cds-dropdown-list>\n </cds-dropdown>\n\n <div class=\"valtimo-log-search__timestamp\">\n <div class=\"valtimo-log-search__datetime\">\n <cds-date-picker\n #afterTimestamp\n [attr.data-carbon-theme]=\"theme\"\n [label]=\"'logging.search.afterTimestamp' | translate\"\n placeholder=\"DD-MM-YYYY\"\n [dateFormat]=\"'d-m-Y'\"\n (valueChange)=\"onDateSelected('afterTimestamp', $event)\"\n ></cds-date-picker>\n\n <cds-timepicker [attr.data-carbon-theme]=\"theme\" formControlName=\"afterTime\">\n </cds-timepicker>\n </div>\n\n <div class=\"valtimo-log-search__datetime\">\n <cds-date-picker\n #beforeTimestamp\n [attr.data-carbon-theme]=\"theme\"\n [label]=\"'logging.search.beforeTimestamp' | translate\"\n placeholder=\"DD-MM-YYYY\"\n [dateFormat]=\"'d-m-Y'\"\n (valueChange)=\"onDateSelected('beforeTimestamp', $event)\"\n ></cds-date-picker>\n\n <cds-timepicker [attr.data-carbon-theme]=\"theme\" formControlName=\"beforeTime\">\n </cds-timepicker>\n </div>\n </div>\n </section>\n\n <section formArrayName=\"properties\" class=\"valtimo-log-search__properties\">\n <span class=\"valtimo-log-search__label\"> {{ 'logging.search.properties' | translate }} </span>\n\n @for (propertyGroup of propertiesArray.controls; track $index) {\n <form [formGroup]=\"propertyGroup\" class=\"valtimo-log-search__property\">\n <cds-text-label>\n <input\n cdsText\n [attr.data-carbon-theme]=\"theme\"\n formControlName=\"key\"\n [placeholder]=\"'interface.key' | translate\"\n />\n </cds-text-label>\n\n <cds-text-label>\n <input\n cdsText\n [attr.data-carbon-theme]=\"theme\"\n formControlName=\"value\"\n [placeholder]=\"'interface.value' | translate\"\n />\n </cds-text-label>\n\n <button\n cdsButton=\"danger--ghost\"\n [disabled]=\"$count === 1\"\n iconOnly=\"true\"\n type=\"button\"\n (click)=\"removePropertySearchField($index)\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </form>\n }\n\n <button cdsButton=\"primary\" size=\"sm\" type=\"button\" (click)=\"addPropertySearchField()\">\n {{ 'logging.search.addProperty' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </section>\n\n <button cdsButton=\"tertiary\" type=\"button\" (click)=\"onClearFilter()\">\n {{ 'interface.clear' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n</form>\n", styles: [".valtimo-log-search{flex-direction:column;padding:16px;max-width:880px}.valtimo-log-search,.valtimo-log-search__property,.valtimo-log-search__timestamp,.valtimo-log-search__datetime{display:flex;gap:16px}.valtimo-log-search__message{grid-area:message}.valtimo-log-search__level{grid-area:level}.valtimo-log-search__fields{display:grid;gap:16px;grid-template-columns:repeat(2,1fr);grid-template-areas:\"message timestamp\" \"level timestamp\"}.valtimo-log-search__timestamp{grid-area:timestamp;flex-direction:column}.valtimo-log-search__datetime{align-items:flex-end}.valtimo-log-search__properties{display:flex;flex-direction:column}.valtimo-log-search__properties>*:not(:last-child):not(.valtimo-log-search__label){margin-bottom:16px}.valtimo-log-search__property{align-items:flex-end}.valtimo-log-search__label{font-size:var(--cds-label-01-font-size);color:var(--cds-text-secondary)}.valtimo-log-search ::ng-deep .cds--date-picker.cds--date-picker--single .cds--date-picker__input{inline-size:unset!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i3.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "hideLabel", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i3.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i3.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i3.TextInputLabelComponent, selector: "cds-text-label, ibm-text-label", inputs: ["labelInputID", "disabled", "skeleton", "labelTemplate", "textInputTemplate", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i3.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: DatePickerModule }, { kind: "component", type: i3.DatePicker, selector: "cds-date-picker, ibm-date-picker", inputs: ["range", "dateFormat", "language", "label", "helperText", "rangeHelperText", "rangeLabel", "placeholder", "ariaLabel", "inputPattern", "id", "value", "theme", "disabled", "invalid", "invalidText", "warn", "warnText", "size", "rangeInvalid", "rangeInvalidText", "rangeWarn", "rangeWarnText", "skeleton", "plugins", "flatpickrOptions"], outputs: ["valueChange", "onClose"] }, { kind: "ngmodule", type: TimePickerModule }, { kind: "component", type: i3.TimePicker, selector: "cds-timepicker, ibm-timepicker", inputs: ["invalid", "invalidText", "label", "hideLabel", "placeholder", "pattern", "id", "disabled", "value", "maxLength", "skeleton", "theme", "size"], outputs: ["valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
166
199
|
}
|
|
167
200
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LogSearchComponent, decorators: [{
|
|
168
201
|
type: Component,
|
|
@@ -174,8 +207,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
174
207
|
IconModule,
|
|
175
208
|
InputModule,
|
|
176
209
|
ReactiveFormsModule,
|
|
210
|
+
FormsModule,
|
|
177
211
|
DatePickerModule,
|
|
178
|
-
|
|
212
|
+
TimePickerModule,
|
|
213
|
+
], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<form\n *ngIf=\"theme$ | async as theme\"\n class=\"valtimo-log-search\"\n [formGroup]=\"formGroup\"\n (click)=\"$event.stopImmediatePropagation()\"\n>\n <section class=\"valtimo-log-search__fields\">\n <cds-text-label class=\"valtimo-log-search__message\">\n {{ 'logging.columns.formattedMessage' | translate }}\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"theme\"\n formControlName=\"likeFormattedMessage\"\n [placeholder]=\"'logging.columns.formattedMessage' | translate\"\n />\n </cds-text-label>\n\n <cds-dropdown\n class=\"valtimo-log-search__level\"\n formControlName=\"level\"\n [attr.data-carbon-theme]=\"theme\"\n [appendInline]=\"true\"\n [label]=\"'logging.columns.level' | translate\"\n [placeholder]=\"'logging.columns.level' | translate\"\n >\n <cds-dropdown-list [items]=\"logLevelItems\"></cds-dropdown-list>\n </cds-dropdown>\n\n <div class=\"valtimo-log-search__timestamp\">\n <div class=\"valtimo-log-search__datetime\">\n <cds-date-picker\n #afterTimestamp\n [attr.data-carbon-theme]=\"theme\"\n [label]=\"'logging.search.afterTimestamp' | translate\"\n placeholder=\"DD-MM-YYYY\"\n [dateFormat]=\"'d-m-Y'\"\n (valueChange)=\"onDateSelected('afterTimestamp', $event)\"\n ></cds-date-picker>\n\n <cds-timepicker [attr.data-carbon-theme]=\"theme\" formControlName=\"afterTime\">\n </cds-timepicker>\n </div>\n\n <div class=\"valtimo-log-search__datetime\">\n <cds-date-picker\n #beforeTimestamp\n [attr.data-carbon-theme]=\"theme\"\n [label]=\"'logging.search.beforeTimestamp' | translate\"\n placeholder=\"DD-MM-YYYY\"\n [dateFormat]=\"'d-m-Y'\"\n (valueChange)=\"onDateSelected('beforeTimestamp', $event)\"\n ></cds-date-picker>\n\n <cds-timepicker [attr.data-carbon-theme]=\"theme\" formControlName=\"beforeTime\">\n </cds-timepicker>\n </div>\n </div>\n </section>\n\n <section formArrayName=\"properties\" class=\"valtimo-log-search__properties\">\n <span class=\"valtimo-log-search__label\"> {{ 'logging.search.properties' | translate }} </span>\n\n @for (propertyGroup of propertiesArray.controls; track $index) {\n <form [formGroup]=\"propertyGroup\" class=\"valtimo-log-search__property\">\n <cds-text-label>\n <input\n cdsText\n [attr.data-carbon-theme]=\"theme\"\n formControlName=\"key\"\n [placeholder]=\"'interface.key' | translate\"\n />\n </cds-text-label>\n\n <cds-text-label>\n <input\n cdsText\n [attr.data-carbon-theme]=\"theme\"\n formControlName=\"value\"\n [placeholder]=\"'interface.value' | translate\"\n />\n </cds-text-label>\n\n <button\n cdsButton=\"danger--ghost\"\n [disabled]=\"$count === 1\"\n iconOnly=\"true\"\n type=\"button\"\n (click)=\"removePropertySearchField($index)\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </form>\n }\n\n <button cdsButton=\"primary\" size=\"sm\" type=\"button\" (click)=\"addPropertySearchField()\">\n {{ 'logging.search.addProperty' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </section>\n\n <button cdsButton=\"tertiary\" type=\"button\" (click)=\"onClearFilter()\">\n {{ 'interface.clear' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n</form>\n", styles: [".valtimo-log-search{flex-direction:column;padding:16px;max-width:880px}.valtimo-log-search,.valtimo-log-search__property,.valtimo-log-search__timestamp,.valtimo-log-search__datetime{display:flex;gap:16px}.valtimo-log-search__message{grid-area:message}.valtimo-log-search__level{grid-area:level}.valtimo-log-search__fields{display:grid;gap:16px;grid-template-columns:repeat(2,1fr);grid-template-areas:\"message timestamp\" \"level timestamp\"}.valtimo-log-search__timestamp{grid-area:timestamp;flex-direction:column}.valtimo-log-search__datetime{align-items:flex-end}.valtimo-log-search__properties{display:flex;flex-direction:column}.valtimo-log-search__properties>*:not(:last-child):not(.valtimo-log-search__label){margin-bottom:16px}.valtimo-log-search__property{align-items:flex-end}.valtimo-log-search__label{font-size:var(--cds-label-01-font-size);color:var(--cds-text-secondary)}.valtimo-log-search ::ng-deep .cds--date-picker.cds--date-picker--single .cds--date-picker__input{inline-size:unset!important}\n"] }]
|
|
179
214
|
}], ctorParameters: () => [{ type: i1.CdsThemeService }, { type: i2.FormBuilder }, { type: i3.IconService }], propDecorators: { _afterTimestampDatePicker: [{
|
|
180
215
|
type: ViewChild,
|
|
181
216
|
args: ['afterTimestamp']
|
|
@@ -187,4 +222,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
187
222
|
}], searchSubmitEvent: [{
|
|
188
223
|
type: Output
|
|
189
224
|
}] } });
|
|
190
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLXNlYXJjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2xvZ2dpbmcvc3JjL2xpYi9jb21wb25lbnRzL2xvZy1zZWFyY2gvbG9nLXNlYXJjaC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2xvZ2dpbmcvc3JjL2xpYi9jb21wb25lbnRzL2xvZy1zZWFyY2gvbG9nLXNlYXJjaC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF5QixtQkFBbUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxZQUFZLEVBQW1CLGtCQUFrQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDdEYsT0FBTyxFQUNMLFlBQVksRUFFWixnQkFBZ0IsRUFDaEIsY0FBYyxFQUNkLFVBQVUsRUFFVixXQUFXLEdBRVosTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLFNBQVMsTUFBTSxXQUFXLENBQUM7QUFDbEMsT0FBTyxFQUFDLFlBQVksRUFBWSxHQUFHLEVBQWMsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzNFLE9BQU8sRUFJTCxRQUFRLEdBQ1QsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7QUFtQnRCLE1BQU0sT0FBTyxrQkFBa0I7SUE4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MkIsQ0FDbkYsSUFBSSxDQUFDLGlCQUFpQixDQUN2QixDQUFDO1FBQ0YsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFekMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsZUFBZSxFQUFFLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUM7SUFDakUsQ0FBQzsrR0E3S1Usa0JBQWtCO21HQUFsQixrQkFBa0Isb2FDbkUvQix1MUhBZ0hBLDB3QkR2REksWUFBWSx1TEFDWixlQUFlLDJGQUNmLFlBQVksZ01BQ1osY0FBYyxnc0JBQ2QsVUFBVSw0TkFDVixXQUFXLDJhQUNYLG1CQUFtQixtakNBQ25CLGdCQUFnQjs7NEZBR1Asa0JBQWtCO2tCQWpCOUIsU0FBUzsrQkFDRSxvQkFBb0IsbUJBR2IsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixlQUFlO3dCQUNmLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxVQUFVO3dCQUNWLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixnQkFBZ0I7cUJBQ2pCO3dJQUc2Qyx5QkFBeUI7c0JBQXRFLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQUNvQiwwQkFBMEI7c0JBQXhFLFNBQVM7dUJBQUMsaUJBQWlCO2dCQUVaLGlCQUFpQjtzQkFBaEMsS0FBSztnQkFDb0IsaUJBQWlCO3NCQUExQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybUFycmF5LCBGb3JtQnVpbGRlciwgUmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtUcmFzaENhbjE2fSBmcm9tICdAY2FyYm9uL2ljb25zJztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7Q0FSQk9OX1RIRU1FLCBDZHNUaGVtZVNlcnZpY2UsIEN1cnJlbnRDYXJib25UaGVtZX0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge1xuICBCdXR0b25Nb2R1bGUsXG4gIERhdGVQaWNrZXIsXG4gIERhdGVQaWNrZXJNb2R1bGUsXG4gIERyb3Bkb3duTW9kdWxlLFxuICBJY29uTW9kdWxlLFxuICBJY29uU2VydmljZSxcbiAgSW5wdXRNb2R1bGUsXG4gIExpc3RJdGVtLFxufSBmcm9tICdjYXJib24tY29tcG9uZW50cy1hbmd1bGFyJztcbmltcG9ydCBmbGF0cGlja3IgZnJvbSAnZmxhdHBpY2tyJztcbmltcG9ydCB7ZGVib3VuY2VUaW1lLCBpbnRlcnZhbCwgbWFwLCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgTG9nZ2luZ0V2ZW50UHJvcGVydHksXG4gIExvZ2dpbmdFdmVudFNlYXJjaEZvcm1WYWx1ZSxcbiAgTG9nZ2luZ0V2ZW50U2VhcmNoUmVxdWVzdCxcbiAgTG9nTGV2ZWwsXG59IGZyb20gJy4uLy4uL21vZGVscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tbG9nLXNlYXJjaCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9sb2ctc2VhcmNoLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2xvZy1zZWFyY2guY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgQnV0dG9uTW9kdWxlLFxuICAgIERyb3Bkb3duTW9kdWxlLFxuICAgIEljb25Nb2R1bGUsXG4gICAgSW5wdXRNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBEYXRlUGlja2VyTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBMb2dTZWFyY2hDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoJ2FmdGVyVGltZXN0YW1wJykgcHJpdmF0ZSByZWFkb25seSBfYWZ0ZXJUaW1lc3RhbXBEYXRlUGlja2VyOiBEYXRlUGlja2VyO1xuICBAVmlld0NoaWxkKCdiZWZvcmVUaW1lc3RhbXAnKSBwcml2YXRlIHJlYWRvbmx5IF9iZWZvcmVUaW1lc3RhbXBEYXRlUGlja2VyOiBEYXRlUGlja2VyO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBpbml0U2VhcmNoUmVxdWVzdDogTG9nZ2luZ0V2ZW50U2VhcmNoUmVxdWVzdDtcbiAgQE91dHB1dCgpIHB1YmxpYyByZWFkb25seSBzZWFyY2hTdWJtaXRFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8TG9nZ2luZ0V2ZW50U2VhcmNoUmVxdWVzdD4oKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgdGhlbWUkOiBPYnNlcnZhYmxlPENBUkJPTl9USEVNRT4gPSB0aGlzLmNkc1RoZW1lU2VydmljZS5jdXJyZW50VGhlbWUkLnBpcGUoXG4gICAgbWFwKCh0aGVtZTogQ3VycmVudENhcmJvblRoZW1lKSA9PlxuICAgICAgdGhlbWUgPT09IEN1cnJlbnRDYXJib25UaGVtZS5HMTAgPyBDQVJCT05fVEhFTUUuV0hJVEUgOiBDQVJCT05fVEhFTUUuRzEwMFxuICAgIClcbiAgKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XG4gICAgbGlrZUZvcm1hdHRlZE1lc3NhZ2U6IHRoaXMuZmIuY29udHJvbDxzdHJpbmc+KCcnKSxcbiAgICBsZXZlbDogdGhpcy5mYi5jb250cm9sPExpc3RJdGVtPih7Y29udGVudDogJycsIHNlbGVjdGVkOiBmYWxzZX0pLFxuICAgIGJlZm9yZVRpbWVzdGFtcDogdGhpcy5mYi5jb250cm9sPHN0cmluZz4oJycpLFxuICAgIGFmdGVyVGltZXN0YW1wOiB0aGlzLmZiLmNvbnRyb2w8c3RyaW5nPignJyksXG4gICAgcHJvcGVydGllczogdGhpcy5mYi5hcnJheShbXG4gICAgICB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAga2V5OiB0aGlzLmZiLmNvbnRyb2w8c3RyaW5nPignJyksXG4gICAgICAgIHZhbHVlOiB0aGlzLmZiLmNvbnRyb2w8c3RyaW5nPignJyksXG4gICAgICB9KSxcbiAgICBdKSxcbiAgfSk7XG5cbiAgcHVibGljIGxvZ0xldmVsSXRlbXM6IFBhcnRpYWw8TGlzdEl0ZW0+W10gPSBbXG4gICAge1xuICAgICAgY29udGVudDogTG9nTGV2ZWwuRVJST1IsXG4gICAgfSxcbiAgICB7XG4gICAgICBjb250ZW50OiBMb2dMZXZlbC5XQVJOLFxuICAgIH0sXG4gICAge1xuICAgICAgY29udGVudDogTG9nTGV2ZWwuSU5GTyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGNvbnRlbnQ6IExvZ0xldmVsLkRFQlVHLFxuICAgIH0sXG4gICAge1xuICAgICAgY29udGVudDogTG9nTGV2ZWwuVFJBQ0UsXG4gICAgfSxcbiAgXTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9zdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIHB1YmxpYyBnZXQgcHJvcGVydGllc0FycmF5KCk6IEZvcm1BcnJheSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybUdyb3VwLmdldCgncHJvcGVydGllcycpIGFzIEZvcm1BcnJheTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RzVGhlbWVTZXJ2aWNlOiBDZHNUaGVtZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBpY29uU2VydmljZTogSWNvblNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5pY29uU2VydmljZS5yZWdpc3RlcihUcmFzaENhbjE2KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldEluaXRpYWxGb3JtKCk7XG5cbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuZm9ybUdyb3VwLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSg1MDApKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnNlYXJjaFN1Ym1pdEV2ZW50LmVtaXQodGhpcy5tYXBGb3JtVmFsdWVUb0xvZ1NlYXJjaCgpKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgY29uc3QgYWZ0ZXJUaW1lc3RhbXBDb250cm9sVmFsdWUgPSB0aGlzLmZvcm1Hcm91cC5nZXQoJ2FmdGVyVGltZXN0YW1wJyk/LnZhbHVlO1xuICAgIGNvbnN0IGJlZm9yZVRpbWVzdGFtcENvbnRyb2xWYWx1ZSA9IHRoaXMuZm9ybUdyb3VwLmdldCgnYmVmb3JlVGltZXN0YW1wJyk/LnZhbHVlO1xuXG4gICAgaWYgKCEhYWZ0ZXJUaW1lc3RhbXBDb250cm9sVmFsdWUpIHtcbiAgICAgIHRoaXMuX2FmdGVyVGltZXN0YW1wRGF0ZVBpY2tlci53cml0ZVZhbHVlKFtcbiAgICAgICAgZmxhdHBpY2tyLmZvcm1hdERhdGUobmV3IERhdGUoYWZ0ZXJUaW1lc3RhbXBDb250cm9sVmFsdWUpLCAnZC1tLVknKSxcbiAgICAgIF0pO1xuICAgIH1cblxuICAgIGlmICghIWJlZm9yZVRpbWVzdGFtcENvbnRyb2xWYWx1ZSkge1xuICAgICAgdGhpcy5fYmVmb3JlVGltZXN0YW1wRGF0ZVBpY2tlci53cml0ZVZhbHVlKFtcbiAgICAgICAgZmxhdHBpY2tyLmZvcm1hdERhdGUobmV3IERhdGUoYmVmb3JlVGltZXN0YW1wQ29udHJvbFZhbHVlKSwgJ2QtbS1ZJyksXG4gICAgICBdKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIG9uQ2xlYXJGaWx0ZXIoKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtR3JvdXAucmVzZXQoKTtcbiAgICB0aGlzLl9hZnRlclRpbWVzdGFtcERhdGVQaWNrZXIud3JpdGVWYWx1ZShbXSk7XG4gICAgdGhpcy5fYmVmb3JlVGltZXN0YW1wRGF0ZVBpY2tlci53cml0ZVZhbHVlKFtdKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkRhdGVTZWxlY3RlZChjb250cm9sOiAnYWZ0ZXJUaW1lc3RhbXAnIHwgJ2JlZm9yZVRpbWVzdGFtcCcsIGV2ZW50OiBEYXRlW10pOiB2b2lkIHtcbiAgICB0aGlzLmZvcm1Hcm91cC5nZXQoY29udHJvbCk/LnBhdGNoVmFsdWUoZmxhdHBpY2tyLmZvcm1hdERhdGUoZXZlbnRbMF0sICdaJykpO1xuICB9XG5cbiAgcHVibGljIGFkZFByb3BlcnR5U2VhcmNoRmllbGQoKTogdm9pZCB7XG4gICAgdGhpcy5wcm9wZXJ0aWVzQXJyYXkucHVzaChcbiAgICAgIHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICBrZXk6IHRoaXMuZmIuY29udHJvbDxzdHJpbmc+KCcnKSxcbiAgICAgICAgdmFsdWU6IHRoaXMuZmIuY29udHJvbDxzdHJpbmc+KCcnKSxcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVQcm9wZXJ0eVNlYXJjaEZpZWxkKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnByb3BlcnRpZXNBcnJheS5yZW1vdmVBdChpbmRleCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRMb2dJdGVtcyhmb3JtVmFsdWU6IExvZ2dpbmdFdmVudFNlYXJjaEZvcm1WYWx1ZSk6IHZvaWQge1xuICAgIGlmICghZm9ybVZhbHVlLmxldmVsKSByZXR1cm47XG5cbiAgICB0aGlzLmxvZ0xldmVsSXRlbXMgPSB0aGlzLmxvZ0xldmVsSXRlbXMubWFwKChsZXZlbEl0ZW06IFBhcnRpYWw8TGlzdEl0ZW0+KSA9PiAoe1xuICAgICAgLi4ubGV2ZWxJdGVtLFxuICAgICAgc2VsZWN0ZWQ6IGZvcm1WYWx1ZS5sZXZlbD8uY29udGVudCA9PT0gbGV2ZWxJdGVtLmNvbnRlbnQsXG4gICAgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0UHJvcGVydGllc0Zvcm0oZm9ybVZhbHVlOiBMb2dnaW5nRXZlbnRTZWFyY2hGb3JtVmFsdWUpOiB2b2lkIHtcbiAgICBpZiAoIWZvcm1WYWx1ZS5wcm9wZXJ0aWVzKSByZXR1cm47XG5cbiAgICBmb3IgKGxldCBpID0gMTsgaSA8IGZvcm1WYWx1ZS5wcm9wZXJ0aWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB0aGlzLmFkZFByb3BlcnR5U2VhcmNoRmllbGQoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG1hcEZvcm1WYWx1ZVRvTG9nU2VhcmNoKCk6IExvZ2dpbmdFdmVudFNlYXJjaFJlcXVlc3Qge1xuICAgIGNvbnN0IGZvcm1WYWx1ZSA9IHRoaXMuZm9ybUdyb3VwLmdldFJhd1ZhbHVlKCk7XG4gICAgY29uc3QgcHJvcGVydGllcyA9IGZvcm1WYWx1ZS5wcm9wZXJ0aWVzLmZpbHRlcihcbiAgICAgIChwcm9wZXJ0eToge2tleTogc3RyaW5nIHwgbnVsbDsgdmFsdWU6IHN0cmluZyB8IG51bGx9KSA9PiAhIXByb3BlcnR5LmtleSAmJiAhIXByb3BlcnR5LnZhbHVlXG4gICAgKSBhcyBMb2dnaW5nRXZlbnRQcm9wZXJ0eVtdO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLighIWZvcm1WYWx1ZS5saWtlRm9ybWF0dGVkTWVzc2FnZSAmJiB7XG4gICAgICAgIGxpa2VGb3JtYXR0ZWRNZXNzYWdlOiBmb3JtVmFsdWUubGlrZUZvcm1hdHRlZE1lc3NhZ2UsXG4gICAgICB9KSxcbiAgICAgIC4uLighIWZvcm1WYWx1ZS5sZXZlbD8uY29udGVudCAmJiB7bGV2ZWw6IGZvcm1WYWx1ZS5sZXZlbC5jb250ZW50fSksXG4gICAgICAuLi4oISFmb3JtVmFsdWUuYWZ0ZXJUaW1lc3RhbXAgJiYge2FmdGVyVGltZXN0YW1wOiBmb3JtVmFsdWUuYWZ0ZXJUaW1lc3RhbXB9KSxcbiAgICAgIC4uLighIWZvcm1WYWx1ZS5iZWZvcmVUaW1lc3RhbXAgJiYge2JlZm9yZVRpbWVzdGFtcDogZm9ybVZhbHVlLmJlZm9yZVRpbWVzdGFtcH0pLFxuICAgICAgLi4uKCEhcHJvcGVydGllcy5sZW5ndGggJiYge3Byb3BlcnRpZXN9KSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBtYXBTZWFyY2hSZXF1ZXN0VG9Gb3JtVmFsdWUoXG4gICAgc2VhcmNoUmVxdWVzdDogTG9nZ2luZ0V2ZW50U2VhcmNoUmVxdWVzdFxuICApOiBMb2dnaW5nRXZlbnRTZWFyY2hGb3JtVmFsdWUge1xuICAgIHJldHVybiB7XG4gICAgICAuLi4oc2VhcmNoUmVxdWVzdC5saWtlRm9ybWF0dGVkTWVzc2FnZSAmJiB7XG4gICAgICAgIGxpa2VGb3JtYXR0ZWRNZXNzYWdlOiBzZWFyY2hSZXF1ZXN0Lmxpa2VGb3JtYXR0ZWRNZXNzYWdlLFxuICAgICAgfSksXG4gICAgICAuLi4oc2VhcmNoUmVxdWVzdC5sZXZlbCAmJiB7XG4gICAgICAgIGxldmVsOiB7XG4gICAgICAgICAgY29udGVudDogc2VhcmNoUmVxdWVzdC5sZXZlbCxcbiAgICAgICAgICBzZWxlY3RlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICAgLi4uKHNlYXJjaFJlcXVlc3QuYWZ0ZXJUaW1lc3RhbXAgJiYge2FmdGVyVGltZXN0YW1wOiBzZWFyY2hSZXF1ZXN0LmFmdGVyVGltZXN0YW1wfSksXG4gICAgICAuLi4oc2VhcmNoUmVxdWVzdC5iZWZvcmVUaW1lc3RhbXAgJiYge2JlZm9yZVRpbWVzdGFtcDogc2VhcmNoUmVxdWVzdC5iZWZvcmVUaW1lc3RhbXB9KSxcbiAgICAgIC4uLihzZWFyY2hSZXF1ZXN0LnByb3BlcnRpZXMgJiYge3Byb3BlcnRpZXM6IHNlYXJjaFJlcXVlc3QucHJvcGVydGllc30pLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHNldEluaXRpYWxGb3JtKCk6IHZvaWQge1xuICAgIGNvbnN0IG1hcHBlZEZvcm1WYWx1ZTogTG9nZ2luZ0V2ZW50U2VhcmNoRm9ybVZhbHVlID0gdGhpcy5tYXBTZWFyY2hSZXF1ZXN0VG9Gb3JtVmFsdWUoXG4gICAgICB0aGlzLmluaXRTZWFyY2hSZXF1ZXN0XG4gICAgKTtcbiAgICB0aGlzLmluaXRMb2dJdGVtcyhtYXBwZWRGb3JtVmFsdWUpO1xuICAgIHRoaXMuaW5pdFByb3BlcnRpZXNGb3JtKG1hcHBlZEZvcm1WYWx1ZSk7XG5cbiAgICB0aGlzLmZvcm1Hcm91cC5wYXRjaFZhbHVlKG1hcHBlZEZvcm1WYWx1ZSwge2VtaXRFdmVudDogZmFsc2V9KTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuPGZvcm1cbiAgKm5nSWY9XCJ0aGVtZSQgfCBhc3luYyBhcyB0aGVtZVwiXG4gIGNsYXNzPVwidmFsdGltby1sb2ctc2VhcmNoXCJcbiAgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIlxuICAoY2xpY2spPVwiJGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpXCJcbj5cbiAgPHNlY3Rpb24gY2xhc3M9XCJ2YWx0aW1vLWxvZy1zZWFyY2hfX2ZpZWxkc1wiPlxuICAgIDxjZHMtdGV4dC1sYWJlbD5cbiAgICAgIHt7ICdsb2dnaW5nLmNvbHVtbnMuZm9ybWF0dGVkTWVzc2FnZScgfCB0cmFuc2xhdGUgfX1cblxuICAgICAgPGlucHV0XG4gICAgICAgIGNkc1RleHRcbiAgICAgICAgW2F0dHIuZGF0YS1jYXJib24tdGhlbWVdPVwidGhlbWVcIlxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJsaWtlRm9ybWF0dGVkTWVzc2FnZVwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCInbG9nZ2luZy5jb2x1bW5zLmZvcm1hdHRlZE1lc3NhZ2UnIHwgdHJhbnNsYXRlXCJcbiAgICAgIC8+XG4gICAgPC9jZHMtdGV4dC1sYWJlbD5cblxuICAgIDxjZHMtZHJvcGRvd25cbiAgICAgIGZvcm1Db250cm9sTmFtZT1cImxldmVsXCJcbiAgICAgIFthdHRyLmRhdGEtY2FyYm9uLXRoZW1lXT1cInRoZW1lXCJcbiAgICAgIFthcHBlbmRJbmxpbmVdPVwidHJ1ZVwiXG4gICAgICBbbGFiZWxdPVwiJ2xvZ2dpbmcuY29sdW1ucy5sZXZlbCcgfCB0cmFuc2xhdGVcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cIidsb2dnaW5nLmNvbHVtbnMubGV2ZWwnIHwgdHJhbnNsYXRlXCJcbiAgICA+XG4gICAgICA8Y2RzLWRyb3Bkb3duLWxpc3QgW2l0ZW1zXT1cImxvZ0xldmVsSXRlbXNcIj48L2Nkcy1kcm9wZG93bi1saXN0PlxuICAgIDwvY2RzLWRyb3Bkb3duPlxuXG4gICAgPGRpdiBjbGFzcz1cInZhbHRpbW8tbG9nLXNlYXJjaF9fdGltZXN0YW1wXCI+XG4gICAgICA8Y2RzLWRhdGUtcGlja2VyXG4gICAgICAgICNhZnRlclRpbWVzdGFtcFxuICAgICAgICBbYXR0ci5kYXRhLWNhcmJvbi10aGVtZV09XCJ0aGVtZVwiXG4gICAgICAgIFtsYWJlbF09XCInbG9nZ2luZy5zZWFyY2guYWZ0ZXJUaW1lc3RhbXAnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJERC1NTS1ZWVlZXCJcbiAgICAgICAgW2RhdGVGb3JtYXRdPVwiJ2QtbS1ZJ1wiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvbkRhdGVTZWxlY3RlZCgnYWZ0ZXJUaW1lc3RhbXAnLCAkZXZlbnQpXCJcbiAgICAgID48L2Nkcy1kYXRlLXBpY2tlcj5cblxuICAgICAgPGNkcy1kYXRlLXBpY2tlclxuICAgICAgICAjYmVmb3JlVGltZXN0YW1wXG4gICAgICAgIFthdHRyLmRhdGEtY2FyYm9uLXRoZW1lXT1cInRoZW1lXCJcbiAgICAgICAgW2xhYmVsXT1cIidsb2dnaW5nLnNlYXJjaC5iZWZvcmVUaW1lc3RhbXAnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJERC1NTS1ZWVlZXCJcbiAgICAgICAgW2RhdGVGb3JtYXRdPVwiJ2QtbS1ZJ1wiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvbkRhdGVTZWxlY3RlZCgnYmVmb3JlVGltZXN0YW1wJywgJGV2ZW50KVwiXG4gICAgICA+PC9jZHMtZGF0ZS1waWNrZXI+XG4gICAgPC9kaXY+XG4gIDwvc2VjdGlvbj5cblxuICA8c2VjdGlvbiBmb3JtQXJyYXlOYW1lPVwicHJvcGVydGllc1wiIGNsYXNzPVwidmFsdGltby1sb2ctc2VhcmNoX19wcm9wZXJ0aWVzXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJ2YWx0aW1vLWxvZy1zZWFyY2hfX2xhYmVsXCI+IHt7ICdsb2dnaW5nLnNlYXJjaC5wcm9wZXJ0aWVzJyB8IHRyYW5zbGF0ZSB9fSA8L3NwYW4+XG5cbiAgICBAZm9yIChwcm9wZXJ0eUdyb3VwIG9mIHByb3BlcnRpZXNBcnJheS5jb250cm9sczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cInByb3BlcnR5R3JvdXBcIiBjbGFzcz1cInZhbHRpbW8tbG9nLXNlYXJjaF9fcHJvcGVydHlcIj5cbiAgICAgICAgPGNkcy10ZXh0LWxhYmVsPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgY2RzVGV4dFxuICAgICAgICAgICAgW2F0dHIuZGF0YS1jYXJib24tdGhlbWVdPVwidGhlbWVcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwia2V5XCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInaW50ZXJmYWNlLmtleScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvY2RzLXRleHQtbGFiZWw+XG5cbiAgICAgICAgPGNkcy10ZXh0LWxhYmVsPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgY2RzVGV4dFxuICAgICAgICAgICAgW2F0dHIuZGF0YS1jYXJib24tdGhlbWVdPVwidGhlbWVcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidpbnRlcmZhY2UudmFsdWUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Nkcy10ZXh0LWxhYmVsPlxuXG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjZHNCdXR0b249XCJkYW5nZXItLWdob3N0XCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiJGNvdW50ID09PSAxXCJcbiAgICAgICAgICBpY29uT25seT1cInRydWVcIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIChjbGljayk9XCJyZW1vdmVQcm9wZXJ0eVNlYXJjaEZpZWxkKCRpbmRleClcIlxuICAgICAgICA+XG4gICAgICAgICAgPHN2ZyBjbGFzcz1cImNkcy0tYnRuX19pY29uXCIgY2RzSWNvbj1cInRyYXNoLWNhblwiIHNpemU9XCIxNlwiPjwvc3ZnPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZm9ybT5cbiAgICB9XG5cbiAgICA8YnV0dG9uIGNkc0J1dHRvbj1cInByaW1hcnlcIiBzaXplPVwic21cIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImFkZFByb3BlcnR5U2VhcmNoRmllbGQoKVwiPlxuICAgICAge3sgJ2xvZ2dpbmcuc2VhcmNoLmFkZFByb3BlcnR5JyB8IHRyYW5zbGF0ZSB9fVxuXG4gICAgICA8c3ZnIGNsYXNzPVwiY2RzLS1idG5fX2ljb25cIiBjZHNJY29uPVwiYWRkXCIgc2l6ZT1cIjE2XCI+PC9zdmc+XG4gICAgPC9idXR0b24+XG4gIDwvc2VjdGlvbj5cblxuICA8YnV0dG9uIGNkc0J1dHRvbj1cInRlcnRpYXJ5XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvbkNsZWFyRmlsdGVyKClcIj5cbiAgICB7eyAnaW50ZXJmYWNlLmNsZWFyJyB8IHRyYW5zbGF0ZSB9fVxuXG4gICAgPHN2ZyBjbGFzcz1cImNkcy0tYnRuX19pY29uXCIgY2RzSWNvbj1cInRyYXNoLWNhblwiIHNpemU9XCIxNlwiPjwvc3ZnPlxuICA8L2J1dHRvbj5cbjwvZm9ybT5cbiJdfQ==
|
|
225
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLXNlYXJjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2xvZ2dpbmcvc3JjL2xpYi9jb21wb25lbnRzL2xvZy1zZWFyY2gvbG9nLXNlYXJjaC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2xvZ2dpbmcvc3JjL2xpYi9jb21wb25lbnRzL2xvZy1zZWFyY2gvbG9nLXNlYXJjaC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF5QixXQUFXLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsWUFBWSxFQUFtQixrQkFBa0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3RGLE9BQU8sRUFDTCxZQUFZLEVBRVosZ0JBQWdCLEVBQ2hCLGNBQWMsRUFDZCxVQUFVLEVBRVYsV0FBVyxFQUVYLGdCQUFnQixHQUNqQixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sU0FBUyxNQUFNLFdBQVcsQ0FBQztBQUNsQyxPQUFPLEVBQUMsWUFBWSxFQUFFLEdBQUcsRUFBYyxZQUFZLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDakUsT0FBTyxFQUlMLFFBQVEsR0FDVCxNQUFNLGNBQWMsQ0FBQzs7Ozs7OztBQXFC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LHFmQUNoQixnQkFBZ0I7OzRGQUdQLGtCQUFrQjtrQkFuQjlCLFNBQVM7K0JBQ0Usb0JBQW9CLG1CQUdiLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsVUFBVTt3QkFDVixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsV0FBVzt3QkFDWCxnQkFBZ0I7d0JBQ2hCLGdCQUFnQjtxQkFDakI7d0lBRzZDLHlCQUF5QjtzQkFBdEUsU0FBUzt1QkFBQyxnQkFBZ0I7Z0JBQ29CLDBCQUEwQjtzQkFBeEUsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBRVosaUJBQWlCO3NCQUFoQyxLQUFLO2dCQUNvQixpQkFBaUI7c0JBQTFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtQXJyYXksIEZvcm1CdWlsZGVyLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtUcmFzaENhbjE2fSBmcm9tICdAY2FyYm9uL2ljb25zJztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7Q0FSQk9OX1RIRU1FLCBDZHNUaGVtZVNlcnZpY2UsIEN1cnJlbnRDYXJib25UaGVtZX0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge1xuICBCdXR0b25Nb2R1bGUsXG4gIERhdGVQaWNrZXIsXG4gIERhdGVQaWNrZXJNb2R1bGUsXG4gIERyb3Bkb3duTW9kdWxlLFxuICBJY29uTW9kdWxlLFxuICBJY29uU2VydmljZSxcbiAgSW5wdXRNb2R1bGUsXG4gIExpc3RJdGVtLFxuICBUaW1lUGlja2VyTW9kdWxlLFxufSBmcm9tICdjYXJib24tY29tcG9uZW50cy1hbmd1bGFyJztcbmltcG9ydCBmbGF0cGlja3IgZnJvbSAnZmxhdHBpY2tyJztcbmltcG9ydCB7ZGVib3VuY2VUaW1lLCBtYXAsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBMb2dnaW5nRXZlbnRQcm9wZXJ0eSxcbiAgTG9nZ2luZ0V2ZW50U2VhcmNoRm9ybVZhbHVlLFxuICBMb2dnaW5nRXZlbnRTZWFyY2hSZXF1ZXN0LFxuICBMb2dMZXZlbCxcbn0gZnJvbSAnLi4vLi4vbW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1sb2ctc2VhcmNoJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xvZy1zZWFyY2guY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vbG9nLXNlYXJjaC5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBCdXR0b25Nb2R1bGUsXG4gICAgRHJvcGRvd25Nb2R1bGUsXG4gICAgSWNvbk1vZHVsZSxcbiAgICBJbnB1dE1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIERhdGVQaWNrZXJNb2R1bGUsXG4gICAgVGltZVBpY2tlck1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTG9nU2VhcmNoQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBAVmlld0NoaWxkKCdhZnRlclRpbWVzdGFtcCcpIHByaXZhdGUgcmVhZG9ubHkgX2FmdGVyVGltZXN0YW1wRGF0ZVBpY2tlcjogRGF0ZVBpY2tlcjtcbiAgQFZpZXdDaGlsZCgnYmVmb3JlVGltZXN0YW1wJykgcHJpdmF0ZSByZWFkb25seSBfYmVmb3JlVGltZXN0YW1wRGF0ZVBpY2tlcjogRGF0ZVBpY2tlcjtcblxuICBASW5wdXQoKSBwdWJsaWMgaW5pdFNlYXJjaFJlcXVlc3Q6IExvZ2dpbmdFdmVudFNlYXJjaFJlcXVlc3Q7XG4gIEBPdXRwdXQoKSBwdWJsaWMgcmVhZG9ubHkgc2VhcmNoU3VibWl0RXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPExvZ2dpbmdFdmVudFNlYXJjaFJlcXVlc3Q+KCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHRoZW1lJDogT2JzZXJ2YWJsZTxDQVJCT05fVEhFTUU+ID0gdGhpcy5jZHNUaGVtZVNlcnZpY2UuY3VycmVudFRoZW1lJC5waXBlKFxuICAgIG1hcCgodGhlbWU6IEN1cnJlbnRDYXJib25UaGVtZSkgPT5cbiAgICAgIHRoZW1lID09PSBDdXJyZW50Q2FyYm9uVGhlbWUuRzEwID8gQ0FSQk9OX1RIRU1FLldISVRFIDogQ0FSQk9OX1RIRU1FLkcxMDBcbiAgICApXG4gICk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGZvcm1Hcm91cCA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgIGxpa2VGb3JtYXR0ZWRNZXNzYWdlOiB0aGlzLmZiLmNvbnRyb2w8c3RyaW5nPignJyksXG4gICAgbGV2ZWw6IHRoaXMuZmIuY29udHJvbDxMaXN0SXRlbT4oe2NvbnRlbnQ6ICcnLCBzZWxlY3RlZDogZmFsc2V9KSxcbiAgICBiZWZvcmVUaW1lc3RhbXA6IHRoaXMuZmIuY29udHJvbDxzdHJpbmc+KCcnKSxcbiAgICBiZWZvcmVUaW1lOiB0aGlzLmZiLmNvbnRyb2w8c3RyaW5nPignJyksXG4gICAgYWZ0ZXJUaW1lc3RhbXA6IHRoaXMuZmIuY29udHJvbDxzdHJpbmc+KCcnKSxcbiAgICBhZnRlclRpbWU6IHRoaXMuZmIuY29udHJvbDxzdHJpbmc+KCcnKSxcbiAgICBwcm9wZXJ0aWVzOiB0aGlzLmZiLmFycmF5KFtcbiAgICAgIHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICBrZXk6IHRoaXMuZmIuY29udHJvbDxzdHJpbmc+KCcnKSxcbiAgICAgICAgdmFsdWU6IHRoaXMuZmIuY29udHJvbDxzdHJpbmc+KCcnKSxcbiAgICAgIH0pLFxuICAgIF0pLFxuICB9KTtcblxuICBwdWJsaWMgbG9nTGV2ZWxJdGVtczogUGFydGlhbDxMaXN0SXRlbT5bXSA9IFtcbiAgICB7XG4gICAgICBjb250ZW50OiBMb2dMZXZlbC5FUlJPUixcbiAgICB9LFxuICAgIHtcbiAgICAgIGNvbnRlbnQ6IExvZ0xldmVsLldBUk4sXG4gICAgfSxcbiAgICB7XG4gICAgICBjb250ZW50OiBMb2dMZXZlbC5JTkZPLFxuICAgIH0sXG4gICAge1xuICAgICAgY29udGVudDogTG9nTGV2ZWwuREVCVUcsXG4gICAgfSxcbiAgICB7XG4gICAgICBjb250ZW50OiBMb2dMZXZlbC5UUkFDRSxcbiAgICB9LFxuICBdO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgcHVibGljIGdldCBwcm9wZXJ0aWVzQXJyYXkoKTogRm9ybUFycmF5IHtcbiAgICByZXR1cm4gdGhpcy5mb3JtR3JvdXAuZ2V0KCdwcm9wZXJ0aWVzJykgYXMgRm9ybUFycmF5O1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHNUaGVtZVNlcnZpY2U6IENkc1RoZW1lU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGljb25TZXJ2aWNlOiBJY29uU2VydmljZVxuICApIHtcbiAgICB0aGlzLmljb25TZXJ2aWNlLnJlZ2lzdGVyKFRyYXNoQ2FuMTYpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0SW5pdGlhbEZvcm0oKTtcblxuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5mb3JtR3JvdXAudmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDUwMCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuc2VhcmNoU3VibWl0RXZlbnQuZW1pdCh0aGlzLm1hcEZvcm1WYWx1ZVRvTG9nU2VhcmNoKCkpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBhZnRlclRpbWVzdGFtcENvbnRyb2xWYWx1ZSA9IHRoaXMuZm9ybUdyb3VwLmdldCgnYWZ0ZXJUaW1lc3RhbXAnKT8udmFsdWU7XG4gICAgY29uc3QgYmVmb3JlVGltZXN0YW1wQ29udHJvbFZhbHVlID0gdGhpcy5mb3JtR3JvdXAuZ2V0KCdiZWZvcmVUaW1lc3RhbXAnKT8udmFsdWU7XG5cbiAgICBpZiAoISFhZnRlclRpbWVzdGFtcENvbnRyb2xWYWx1ZSkge1xuICAgICAgdGhpcy5fYWZ0ZXJUaW1lc3RhbXBEYXRlUGlja2VyLndyaXRlVmFsdWUoW1xuICAgICAgICBmbGF0cGlja3IuZm9ybWF0RGF0ZShuZXcgRGF0ZShhZnRlclRpbWVzdGFtcENvbnRyb2xWYWx1ZSksICdkLW0tWScpLFxuICAgICAgXSk7XG4gICAgfVxuXG4gICAgaWYgKCEhYmVmb3JlVGltZXN0YW1wQ29udHJvbFZhbHVlKSB7XG4gICAgICB0aGlzLl9iZWZvcmVUaW1lc3RhbXBEYXRlUGlja2VyLndyaXRlVmFsdWUoW1xuICAgICAgICBmbGF0cGlja3IuZm9ybWF0RGF0ZShuZXcgRGF0ZShiZWZvcmVUaW1lc3RhbXBDb250cm9sVmFsdWUpLCAnZC1tLVknKSxcbiAgICAgIF0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgb25DbGVhckZpbHRlcigpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm1Hcm91cC5yZXNldCgpO1xuICAgIHRoaXMuX2FmdGVyVGltZXN0YW1wRGF0ZVBpY2tlci53cml0ZVZhbHVlKFtdKTtcbiAgICB0aGlzLl9iZWZvcmVUaW1lc3RhbXBEYXRlUGlja2VyLndyaXRlVmFsdWUoW10pO1xuICB9XG5cbiAgcHVibGljIG9uRGF0ZVNlbGVjdGVkKGNvbnRyb2w6ICdhZnRlclRpbWVzdGFtcCcgfCAnYmVmb3JlVGltZXN0YW1wJywgZXZlbnQ6IERhdGVbXSk6IHZvaWQge1xuICAgIHRoaXMuZm9ybUdyb3VwLmdldChjb250cm9sKT8ucGF0Y2hWYWx1ZShmbGF0cGlja3IuZm9ybWF0RGF0ZShldmVudFswXSwgJ1onKSk7XG4gIH1cblxuICBwdWJsaWMgYWRkUHJvcGVydHlTZWFyY2hGaWVsZCgpOiB2b2lkIHtcbiAgICB0aGlzLnByb3BlcnRpZXNBcnJheS5wdXNoKFxuICAgICAgdGhpcy5mYi5ncm91cCh7XG4gICAgICAgIGtleTogdGhpcy5mYi5jb250cm9sPHN0cmluZz4oJycpLFxuICAgICAgICB2YWx1ZTogdGhpcy5mYi5jb250cm9sPHN0cmluZz4oJycpLFxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZVByb3BlcnR5U2VhcmNoRmllbGQoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMucHJvcGVydGllc0FycmF5LnJlbW92ZUF0KGluZGV4KTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdExvZ0l0ZW1zKGZvcm1WYWx1ZTogTG9nZ2luZ0V2ZW50U2VhcmNoRm9ybVZhbHVlKTogdm9pZCB7XG4gICAgaWYgKCFmb3JtVmFsdWUubGV2ZWwpIHJldHVybjtcblxuICAgIHRoaXMubG9nTGV2ZWxJdGVtcyA9IHRoaXMubG9nTGV2ZWxJdGVtcy5tYXAoKGxldmVsSXRlbTogUGFydGlhbDxMaXN0SXRlbT4pID0+ICh7XG4gICAgICAuLi5sZXZlbEl0ZW0sXG4gICAgICBzZWxlY3RlZDogZm9ybVZhbHVlLmxldmVsPy5jb250ZW50ID09PSBsZXZlbEl0ZW0uY29udGVudCxcbiAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIGluaXRQcm9wZXJ0aWVzRm9ybShmb3JtVmFsdWU6IExvZ2dpbmdFdmVudFNlYXJjaEZvcm1WYWx1ZSk6IHZvaWQge1xuICAgIGlmICghZm9ybVZhbHVlLnByb3BlcnRpZXMpIHJldHVybjtcblxuICAgIGZvciAobGV0IGkgPSAxOyBpIDwgZm9ybVZhbHVlLnByb3BlcnRpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMuYWRkUHJvcGVydHlTZWFyY2hGaWVsZCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5pdFRpbWVGb3JtKGZvcm1WYWx1ZTogTG9nZ2luZ0V2ZW50U2VhcmNoRm9ybVZhbHVlKTogdm9pZCB7XG4gICAgY29uc3Qge2JlZm9yZVRpbWVzdGFtcCwgYWZ0ZXJUaW1lc3RhbXB9ID0gZm9ybVZhbHVlO1xuXG4gICAgaWYgKCEhYmVmb3JlVGltZXN0YW1wKSB7XG4gICAgICBjb25zdCB7aG91cnMsIG1pbnV0ZXN9ID0gdGhpcy5jb252ZXJ0VGltZXN0YW1wVG9UaW1lU3RyaW5nKGJlZm9yZVRpbWVzdGFtcCk7XG4gICAgICB0aGlzLmZvcm1Hcm91cC5wYXRjaFZhbHVlKHtiZWZvcmVUaW1lOiBgJHtob3Vyc306JHttaW51dGVzfWB9LCB7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgIH1cblxuICAgIGlmICghIWFmdGVyVGltZXN0YW1wKSB7XG4gICAgICBjb25zdCB7aG91cnMsIG1pbnV0ZXN9ID0gdGhpcy5jb252ZXJ0VGltZXN0YW1wVG9UaW1lU3RyaW5nKGFmdGVyVGltZXN0YW1wKTtcbiAgICAgIHRoaXMuZm9ybUdyb3VwLnBhdGNoVmFsdWUoe2FmdGVyVGltZTogYCR7aG91cnN9OiR7bWludXRlc31gfSwge2VtaXRFdmVudDogZmFsc2V9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbnZlcnRUaW1lc3RhbXBUb1RpbWVTdHJpbmcodGltZXN0YW1wOiBzdHJpbmcpOiB7aG91cnM6IHN0cmluZzsgbWludXRlczogc3RyaW5nfSB7XG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRpbWVzdGFtcCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGhvdXJzOiBgMCR7ZGF0ZS5nZXRIb3VycygpfWAuc2xpY2UoLTIpLFxuICAgICAgbWludXRlczogYDAke2RhdGUuZ2V0TWludXRlcygpfWAuc2xpY2UoLTIpLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIG1hcEZvcm1WYWx1ZVRvTG9nU2VhcmNoKCk6IExvZ2dpbmdFdmVudFNlYXJjaFJlcXVlc3Qge1xuICAgIGNvbnN0IGZvcm1WYWx1ZSA9IHRoaXMuZm9ybUdyb3VwLmdldFJhd1ZhbHVlKCk7XG4gICAgY29uc3QgcHJvcGVydGllcyA9IGZvcm1WYWx1ZS5wcm9wZXJ0aWVzLmZpbHRlcihcbiAgICAgIChwcm9wZXJ0eToge2tleTogc3RyaW5nIHwgbnVsbDsgdmFsdWU6IHN0cmluZyB8IG51bGx9KSA9PiAhIXByb3BlcnR5LmtleSAmJiAhIXByb3BlcnR5LnZhbHVlXG4gICAgKSBhcyBMb2dnaW5nRXZlbnRQcm9wZXJ0eVtdO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLighIWZvcm1WYWx1ZS5saWtlRm9ybWF0dGVkTWVzc2FnZSAmJiB7XG4gICAgICAgIGxpa2VGb3JtYXR0ZWRNZXNzYWdlOiBmb3JtVmFsdWUubGlrZUZvcm1hdHRlZE1lc3NhZ2UsXG4gICAgICB9KSxcbiAgICAgIC4uLighIWZvcm1WYWx1ZS5sZXZlbD8uY29udGVudCAmJiB7bGV2ZWw6IGZvcm1WYWx1ZS5sZXZlbC5jb250ZW50fSksXG4gICAgICAuLi4oISFmb3JtVmFsdWUuYWZ0ZXJUaW1lc3RhbXAgJiYge1xuICAgICAgICBhZnRlclRpbWVzdGFtcDogdGhpcy5tYXBUaW1lU3RhbXBzKGZvcm1WYWx1ZS5hZnRlclRpbWVzdGFtcCwgZm9ybVZhbHVlLmFmdGVyVGltZSksXG4gICAgICB9KSxcbiAgICAgIC4uLighIWZvcm1WYWx1ZS5iZWZvcmVUaW1lc3RhbXAgJiYge1xuICAgICAgICBiZWZvcmVUaW1lc3RhbXA6IHRoaXMubWFwVGltZVN0YW1wcyhmb3JtVmFsdWUuYmVmb3JlVGltZXN0YW1wLCBmb3JtVmFsdWUuYmVmb3JlVGltZSksXG4gICAgICB9KSxcbiAgICAgIC4uLighIXByb3BlcnRpZXMubGVuZ3RoICYmIHtwcm9wZXJ0aWVzfSksXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgbWFwU2VhcmNoUmVxdWVzdFRvRm9ybVZhbHVlKFxuICAgIHNlYXJjaFJlcXVlc3Q6IExvZ2dpbmdFdmVudFNlYXJjaFJlcXVlc3RcbiAgKTogTG9nZ2luZ0V2ZW50U2VhcmNoRm9ybVZhbHVlIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uKHNlYXJjaFJlcXVlc3QubGlrZUZvcm1hdHRlZE1lc3NhZ2UgJiYge1xuICAgICAgICBsaWtlRm9ybWF0dGVkTWVzc2FnZTogc2VhcmNoUmVxdWVzdC5saWtlRm9ybWF0dGVkTWVzc2FnZSxcbiAgICAgIH0pLFxuICAgICAgLi4uKHNlYXJjaFJlcXVlc3QubGV2ZWwgJiYge1xuICAgICAgICBsZXZlbDoge1xuICAgICAgICAgIGNvbnRlbnQ6IHNlYXJjaFJlcXVlc3QubGV2ZWwsXG4gICAgICAgICAgc2VsZWN0ZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICAgIC4uLihzZWFyY2hSZXF1ZXN0LmFmdGVyVGltZXN0YW1wICYmIHthZnRlclRpbWVzdGFtcDogc2VhcmNoUmVxdWVzdC5hZnRlclRpbWVzdGFtcH0pLFxuICAgICAgLi4uKHNlYXJjaFJlcXVlc3QuYmVmb3JlVGltZXN0YW1wICYmIHtiZWZvcmVUaW1lc3RhbXA6IHNlYXJjaFJlcXVlc3QuYmVmb3JlVGltZXN0YW1wfSksXG4gICAgICAuLi4oc2VhcmNoUmVxdWVzdC5wcm9wZXJ0aWVzICYmIHtwcm9wZXJ0aWVzOiBzZWFyY2hSZXF1ZXN0LnByb3BlcnRpZXN9KSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBtYXBUaW1lU3RhbXBzKGRhdGU6IHN0cmluZywgdGltZTogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aW1lKSByZXR1cm4gZGF0ZTtcblxuICAgIGNvbnN0IHRpbWVWYWx1ZTogc3RyaW5nW10gPSB0aW1lLnNwbGl0KCc6Jyk7XG4gICAgY29uc3QgZGF0ZU9iamVjdCA9IG5ldyBEYXRlKGRhdGUpO1xuICAgIGRhdGVPYmplY3Quc2V0SG91cnMoK3RpbWVWYWx1ZVswXSwgK3RpbWVWYWx1ZVsxXSk7XG5cbiAgICByZXR1cm4gZmxhdHBpY2tyLmZvcm1hdERhdGUoZGF0ZU9iamVjdCwgJ1onKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0SW5pdGlhbEZvcm0oKTogdm9pZCB7XG4gICAgY29uc3QgbWFwcGVkRm9ybVZhbHVlOiBMb2dnaW5nRXZlbnRTZWFyY2hGb3JtVmFsdWUgPSB0aGlzLm1hcFNlYXJjaFJlcXVlc3RUb0Zvcm1WYWx1ZShcbiAgICAgIHRoaXMuaW5pdFNlYXJjaFJlcXVlc3RcbiAgICApO1xuICAgIHRoaXMuaW5pdExvZ0l0ZW1zKG1hcHBlZEZvcm1WYWx1ZSk7XG4gICAgdGhpcy5pbml0UHJvcGVydGllc0Zvcm0obWFwcGVkRm9ybVZhbHVlKTtcbiAgICB0aGlzLmluaXRUaW1lRm9ybShtYXBwZWRGb3JtVmFsdWUpO1xuXG4gICAgdGhpcy5mb3JtR3JvdXAucGF0Y2hWYWx1ZShtYXBwZWRGb3JtVmFsdWUsIHtlbWl0RXZlbnQ6IGZhbHNlfSk7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cbjxmb3JtXG4gICpuZ0lmPVwidGhlbWUkIHwgYXN5bmMgYXMgdGhlbWVcIlxuICBjbGFzcz1cInZhbHRpbW8tbG9nLXNlYXJjaFwiXG4gIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCJcbiAgKGNsaWNrKT1cIiRldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKVwiXG4+XG4gIDxzZWN0aW9uIGNsYXNzPVwidmFsdGltby1sb2ctc2VhcmNoX19maWVsZHNcIj5cbiAgICA8Y2RzLXRleHQtbGFiZWwgY2xhc3M9XCJ2YWx0aW1vLWxvZy1zZWFyY2hfX21lc3NhZ2VcIj5cbiAgICAgIHt7ICdsb2dnaW5nLmNvbHVtbnMuZm9ybWF0dGVkTWVzc2FnZScgfCB0cmFuc2xhdGUgfX1cblxuICAgICAgPGlucHV0XG4gICAgICAgIGNkc1RleHRcbiAgICAgICAgW2F0dHIuZGF0YS1jYXJib24tdGhlbWVdPVwidGhlbWVcIlxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJsaWtlRm9ybWF0dGVkTWVzc2FnZVwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCInbG9nZ2luZy5jb2x1bW5zLmZvcm1hdHRlZE1lc3NhZ2UnIHwgdHJhbnNsYXRlXCJcbiAgICAgIC8+XG4gICAgPC9jZHMtdGV4dC1sYWJlbD5cblxuICAgIDxjZHMtZHJvcGRvd25cbiAgICAgIGNsYXNzPVwidmFsdGltby1sb2ctc2VhcmNoX19sZXZlbFwiXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJsZXZlbFwiXG4gICAgICBbYXR0ci5kYXRhLWNhcmJvbi10aGVtZV09XCJ0aGVtZVwiXG4gICAgICBbYXBwZW5kSW5saW5lXT1cInRydWVcIlxuICAgICAgW2xhYmVsXT1cIidsb2dnaW5nLmNvbHVtbnMubGV2ZWwnIHwgdHJhbnNsYXRlXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCInbG9nZ2luZy5jb2x1bW5zLmxldmVsJyB8IHRyYW5zbGF0ZVwiXG4gICAgPlxuICAgICAgPGNkcy1kcm9wZG93bi1saXN0IFtpdGVtc109XCJsb2dMZXZlbEl0ZW1zXCI+PC9jZHMtZHJvcGRvd24tbGlzdD5cbiAgICA8L2Nkcy1kcm9wZG93bj5cblxuICAgIDxkaXYgY2xhc3M9XCJ2YWx0aW1vLWxvZy1zZWFyY2hfX3RpbWVzdGFtcFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInZhbHRpbW8tbG9nLXNlYXJjaF9fZGF0ZXRpbWVcIj5cbiAgICAgICAgPGNkcy1kYXRlLXBpY2tlclxuICAgICAgICAgICNhZnRlclRpbWVzdGFtcFxuICAgICAgICAgIFthdHRyLmRhdGEtY2FyYm9uLXRoZW1lXT1cInRoZW1lXCJcbiAgICAgICAgICBbbGFiZWxdPVwiJ2xvZ2dpbmcuc2VhcmNoLmFmdGVyVGltZXN0YW1wJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJERC1NTS1ZWVlZXCJcbiAgICAgICAgICBbZGF0ZUZvcm1hdF09XCInZC1tLVknXCJcbiAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25EYXRlU2VsZWN0ZWQoJ2FmdGVyVGltZXN0YW1wJywgJGV2ZW50KVwiXG4gICAgICAgID48L2Nkcy1kYXRlLXBpY2tlcj5cblxuICAgICAgICA8Y2RzLXRpbWVwaWNrZXIgW2F0dHIuZGF0YS1jYXJib24tdGhlbWVdPVwidGhlbWVcIiBmb3JtQ29udHJvbE5hbWU9XCJhZnRlclRpbWVcIj5cbiAgICAgICAgPC9jZHMtdGltZXBpY2tlcj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwidmFsdGltby1sb2ctc2VhcmNoX19kYXRldGltZVwiPlxuICAgICAgICA8Y2RzLWRhdGUtcGlja2VyXG4gICAgICAgICAgI2JlZm9yZVRpbWVzdGFtcFxuICAgICAgICAgIFthdHRyLmRhdGEtY2FyYm9uLXRoZW1lXT1cInRoZW1lXCJcbiAgICAgICAgICBbbGFiZWxdPVwiJ2xvZ2dpbmcuc2VhcmNoLmJlZm9yZVRpbWVzdGFtcCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiREQtTU0tWVlZWVwiXG4gICAgICAgICAgW2RhdGVGb3JtYXRdPVwiJ2QtbS1ZJ1wiXG4gICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uRGF0ZVNlbGVjdGVkKCdiZWZvcmVUaW1lc3RhbXAnLCAkZXZlbnQpXCJcbiAgICAgICAgPjwvY2RzLWRhdGUtcGlja2VyPlxuXG4gICAgICAgIDxjZHMtdGltZXBpY2tlciBbYXR0ci5kYXRhLWNhcmJvbi10aGVtZV09XCJ0aGVtZVwiIGZvcm1Db250cm9sTmFtZT1cImJlZm9yZVRpbWVcIj5cbiAgICAgICAgPC9jZHMtdGltZXBpY2tlcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L3NlY3Rpb24+XG5cbiAgPHNlY3Rpb24gZm9ybUFycmF5TmFtZT1cInByb3BlcnRpZXNcIiBjbGFzcz1cInZhbHRpbW8tbG9nLXNlYXJjaF9fcHJvcGVydGllc1wiPlxuICAgIDxzcGFuIGNsYXNzPVwidmFsdGltby1sb2ctc2VhcmNoX19sYWJlbFwiPiB7eyAnbG9nZ2luZy5zZWFyY2gucHJvcGVydGllcycgfCB0cmFuc2xhdGUgfX0gPC9zcGFuPlxuXG4gICAgQGZvciAocHJvcGVydHlHcm91cCBvZiBwcm9wZXJ0aWVzQXJyYXkuY29udHJvbHM7IHRyYWNrICRpbmRleCkge1xuICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJwcm9wZXJ0eUdyb3VwXCIgY2xhc3M9XCJ2YWx0aW1vLWxvZy1zZWFyY2hfX3Byb3BlcnR5XCI+XG4gICAgICAgIDxjZHMtdGV4dC1sYWJlbD5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIGNkc1RleHRcbiAgICAgICAgICAgIFthdHRyLmRhdGEtY2FyYm9uLXRoZW1lXT1cInRoZW1lXCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImtleVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ2ludGVyZmFjZS5rZXknIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Nkcy10ZXh0LWxhYmVsPlxuXG4gICAgICAgIDxjZHMtdGV4dC1sYWJlbD5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIGNkc1RleHRcbiAgICAgICAgICAgIFthdHRyLmRhdGEtY2FyYm9uLXRoZW1lXT1cInRoZW1lXCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInZhbHVlXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInaW50ZXJmYWNlLnZhbHVlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9jZHMtdGV4dC1sYWJlbD5cblxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2RzQnV0dG9uPVwiZGFuZ2VyLS1naG9zdFwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiRjb3VudCA9PT0gMVwiXG4gICAgICAgICAgaWNvbk9ubHk9XCJ0cnVlXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlUHJvcGVydHlTZWFyY2hGaWVsZCgkaW5kZXgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzdmcgY2xhc3M9XCJjZHMtLWJ0bl9faWNvblwiIGNkc0ljb249XCJ0cmFzaC1jYW5cIiBzaXplPVwiMTZcIj48L3N2Zz5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Zvcm0+XG4gICAgfVxuXG4gICAgPGJ1dHRvbiBjZHNCdXR0b249XCJwcmltYXJ5XCIgc2l6ZT1cInNtXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJhZGRQcm9wZXJ0eVNlYXJjaEZpZWxkKClcIj5cbiAgICAgIHt7ICdsb2dnaW5nLnNlYXJjaC5hZGRQcm9wZXJ0eScgfCB0cmFuc2xhdGUgfX1cblxuICAgICAgPHN2ZyBjbGFzcz1cImNkcy0tYnRuX19pY29uXCIgY2RzSWNvbj1cImFkZFwiIHNpemU9XCIxNlwiPjwvc3ZnPlxuICAgIDwvYnV0dG9uPlxuICA8L3NlY3Rpb24+XG5cbiAgPGJ1dHRvbiBjZHNCdXR0b249XCJ0ZXJ0aWFyeVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib25DbGVhckZpbHRlcigpXCI+XG4gICAge3sgJ2ludGVyZmFjZS5jbGVhcicgfCB0cmFuc2xhdGUgfX1cblxuICAgIDxzdmcgY2xhc3M9XCJjZHMtLWJ0bl9faWNvblwiIGNkc0ljb249XCJ0cmFzaC1jYW5cIiBzaXplPVwiMTZcIj48L3N2Zz5cbiAgPC9idXR0b24+XG48L2Zvcm0+XG4iXX0=
|
|
@@ -61,6 +61,7 @@ export class LoggingListComponent {
|
|
|
61
61
|
this.loading$.next(false);
|
|
62
62
|
}));
|
|
63
63
|
this.searchRequest$ = new BehaviorSubject({});
|
|
64
|
+
this.isSearchActive$ = this.searchRequest$.pipe(map((searchRequest) => Object.keys(searchRequest).length > 0));
|
|
64
65
|
this.pagination$ = new BehaviorSubject(DEFAULT_PAGINATION);
|
|
65
66
|
this.logDetailsOpen$ = new BehaviorSubject(false);
|
|
66
67
|
this.selectedLogEvent$ = new BehaviorSubject(null);
|
|
@@ -110,7 +111,7 @@ export class LoggingListComponent {
|
|
|
110
111
|
this.pagination$.next({ ...this.pagination$.getValue(), size, ...(resetPage && { page: 1 }) });
|
|
111
112
|
}
|
|
112
113
|
onRowClickedEvent(rowClickEvent) {
|
|
113
|
-
const { ctrlClick:
|
|
114
|
+
const { ctrlClick: _1, tags: _2, ...logEvent } = rowClickEvent;
|
|
114
115
|
this.logDetailsOpen$.next(true);
|
|
115
116
|
this.selectedLogEvent$.next(logEvent);
|
|
116
117
|
}
|
|
@@ -173,7 +174,7 @@ export class LoggingListComponent {
|
|
|
173
174
|
});
|
|
174
175
|
}
|
|
175
176
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LoggingListComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.IconService }, { token: i3.LoggingApiService }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
176
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: LoggingListComponent, isStandalone: true, selector: "ng-component", providers: [LoggingApiService], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-carbon-list\n *ngIf=\"logItems$ | async as
|
|
177
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: LoggingListComponent, isStandalone: true, selector: "ng-component", providers: [LoggingApiService], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-carbon-list\n *ngIf=\"{logItems: logItems$ | async, isSearchActive: isSearchActive$ | async} as obs\"\n [items]=\"obs.logItems\"\n [fields]=\"FIELDS\"\n [loading]=\"loading$ | async\"\n [pagination]=\"pagination$ | async\"\n paginationIdentifier=\"logging\"\n (paginationClicked)=\"onPaginationClicked($event, obs.logItems)\"\n (paginationSet)=\"onPaginationSet($event)\"\n (rowClicked)=\"onRowClickedEvent($event)\"\n>\n <valtimo-no-results\n [action]=\"obs.isSearchActive ? clearSearchButton : null\"\n [description]=\"\n 'logging.noResults.' + (obs.isSearchActive ? 'searchDescription' : 'description') | translate\n \"\n [title]=\"'logging.noResults.title' | translate\"\n ></valtimo-no-results>\n\n <button\n carbonToolbarContent\n [cdsOverflowMenu]=\"logSearch\"\n [customPane]=\"true\"\n [iconOnly]=\"true\"\n [flip]=\"true\"\n [offset]=\"{x: 0, y: 47}\"\n cdsButton=\"ghost\"\n placement=\"bottom\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"filter\" size=\"16\"></svg>\n </button>\n</valtimo-carbon-list>\n\n<valtimo-log-details\n [open]=\"logDetailsOpen$ | async\"\n [logEvent]=\"selectedLogEvent$ | async\"\n (closeModalEvent)=\"onCloseModalEvent()\"\n></valtimo-log-details>\n\n<ng-template #logSearch>\n <valtimo-log-search\n [initSearchRequest]=\"searchRequest$ | async\"\n (searchSubmitEvent)=\"onSearchSubmitEvent($event)\"\n ></valtimo-log-search>\n</ng-template>\n\n<ng-template #clearSearchButton>\n <button cdsButton=\"primary\" (click)=\"onClearFilter()\">\n {{ 'interface.clear' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n</ng-template>\n", styles: ["::ng-deep .cds--overflow-menu-options.cds--overflow-menu-options--open{max-width:max-content!important;width:max-content!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i2.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i6.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "actions", "actionItems", "header", "hideColumnHeader", "initialSortState", "sortState", "isSearchable", "enableSingleSelection", "lastColumnTemplate", "paginationIdentifier", "showSelectionColumn", "striped", "hideToolbar", "lockedTooltipTranslationKey", "movingRowsEnabled", "dragAndDrop", "dragAndDropDisabled"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged", "moveRow", "itemsReordered"] }, { kind: "component", type: i6.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "ngmodule", type: DialogModule }, { kind: "directive", type: i2.OverflowMenuDirective, selector: "[cdsOverflowMenu], [ibmOverflowMenu]", inputs: ["ibmOverflowMenu", "cdsOverflowMenu", "flip", "offset", "wrapperClass", "customPane"], exportAs: ["overflowMenu"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i2.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: LogDetailsComponent, selector: "valtimo-log-details", inputs: ["open", "logEvent"], outputs: ["closeModalEvent"] }, { kind: "component", type: LogSearchComponent, selector: "valtimo-log-search", inputs: ["initSearchRequest"], outputs: ["searchSubmitEvent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
177
178
|
}
|
|
178
179
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LoggingListComponent, decorators: [{
|
|
179
180
|
type: Component,
|
|
@@ -187,6 +188,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
187
188
|
IconModule,
|
|
188
189
|
LogDetailsComponent,
|
|
189
190
|
LogSearchComponent,
|
|
190
|
-
], providers: [LoggingApiService], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-carbon-list\n *ngIf=\"logItems$ | async as
|
|
191
|
+
], providers: [LoggingApiService], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-carbon-list\n *ngIf=\"{logItems: logItems$ | async, isSearchActive: isSearchActive$ | async} as obs\"\n [items]=\"obs.logItems\"\n [fields]=\"FIELDS\"\n [loading]=\"loading$ | async\"\n [pagination]=\"pagination$ | async\"\n paginationIdentifier=\"logging\"\n (paginationClicked)=\"onPaginationClicked($event, obs.logItems)\"\n (paginationSet)=\"onPaginationSet($event)\"\n (rowClicked)=\"onRowClickedEvent($event)\"\n>\n <valtimo-no-results\n [action]=\"obs.isSearchActive ? clearSearchButton : null\"\n [description]=\"\n 'logging.noResults.' + (obs.isSearchActive ? 'searchDescription' : 'description') | translate\n \"\n [title]=\"'logging.noResults.title' | translate\"\n ></valtimo-no-results>\n\n <button\n carbonToolbarContent\n [cdsOverflowMenu]=\"logSearch\"\n [customPane]=\"true\"\n [iconOnly]=\"true\"\n [flip]=\"true\"\n [offset]=\"{x: 0, y: 47}\"\n cdsButton=\"ghost\"\n placement=\"bottom\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"filter\" size=\"16\"></svg>\n </button>\n</valtimo-carbon-list>\n\n<valtimo-log-details\n [open]=\"logDetailsOpen$ | async\"\n [logEvent]=\"selectedLogEvent$ | async\"\n (closeModalEvent)=\"onCloseModalEvent()\"\n></valtimo-log-details>\n\n<ng-template #logSearch>\n <valtimo-log-search\n [initSearchRequest]=\"searchRequest$ | async\"\n (searchSubmitEvent)=\"onSearchSubmitEvent($event)\"\n ></valtimo-log-search>\n</ng-template>\n\n<ng-template #clearSearchButton>\n <button cdsButton=\"primary\" (click)=\"onClearFilter()\">\n {{ 'interface.clear' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n</ng-template>\n", styles: ["::ng-deep .cds--overflow-menu-options.cds--overflow-menu-options--open{max-width:max-content!important;width:max-content!important}\n"] }]
|
|
191
192
|
}], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i2.IconService }, { type: i3.LoggingApiService }, { type: i1.Router }] });
|
|
192
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2luZy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vbG9nZ2luZy9zcmMvbGliL2NvbXBvbmVudHMvbG9nZ2luZy1saXN0L2xvZ2dpbmctbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2xvZ2dpbmcvc3JjL2xpYi9jb21wb25lbnRzL2xvZ2dpbmctbGlzdC9sb2dnaW5nLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFFcEYsT0FBTyxFQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFDTCxnQkFBZ0IsRUFFaEIsZ0JBQWdCLEVBRWhCLGtCQUFrQixFQUVsQixRQUFRLEdBQ1QsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixPQUFPLEVBQ0wsWUFBWSxFQUNaLFlBQVksRUFDWixjQUFjLEVBQ2QsVUFBVSxHQUVYLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUNMLGVBQWUsRUFDZixhQUFhLEVBQ2IsR0FBRyxFQUVILFNBQVMsRUFDVCxZQUFZLEVBQ1osU0FBUyxFQUNULElBQUksRUFDSixHQUFHLEdBQ0osTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLGFBQWEsR0FLZCxNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFP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QUFvQjtrQkFsQmhDLFNBQVM7aUNBR0ksSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsWUFBWTt3QkFDWixjQUFjO3dCQUNkLFVBQVU7d0JBQ1YsbUJBQW1CO3dCQUNuQixrQkFBa0I7cUJBQ25CLGFBQ1UsQ0FBQyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtGaWx0ZXIxNiwgVHJhc2hDYW4xNn0gZnJvbSAnQGNhcmJvbi9pY29ucyc7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge1xuICBDQVJCT05fQ09OU1RBTlRTLFxuICBDYXJib25MaXN0SXRlbSxcbiAgQ2FyYm9uTGlzdE1vZHVsZSxcbiAgQ29sdW1uQ29uZmlnLFxuICBERUZBVUxUX1BBR0lOQVRJT04sXG4gIFBhZ2luYXRpb24sXG4gIFZpZXdUeXBlLFxufSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7UGFnZX0gZnJvbSAnQHZhbHRpbW8vY29uZmlnJztcbmltcG9ydCB7XG4gIEJ1dHRvbk1vZHVsZSxcbiAgRGlhbG9nTW9kdWxlLFxuICBEcm9wZG93bk1vZHVsZSxcbiAgSWNvbk1vZHVsZSxcbiAgSWNvblNlcnZpY2UsXG59IGZyb20gJ2NhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXInO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBjb21iaW5lTGF0ZXN0LFxuICBtYXAsXG4gIE9ic2VydmFibGUsXG4gIHN0YXJ0V2l0aCxcbiAgU3Vic2NyaXB0aW9uLFxuICBzd2l0Y2hNYXAsXG4gIHRha2UsXG4gIHRhcCxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBMT0dfRUxMSVBTSVNfTElNSVQsXG4gIExPR19MRVZFTF9UQUcsXG4gIExvZ2dpbmdFdmVudCxcbiAgTG9nZ2luZ0V2ZW50UHJvcGVydHksXG4gIExvZ2dpbmdFdmVudFF1ZXJ5UGFyYW1zLFxuICBMb2dnaW5nRXZlbnRTZWFyY2hSZXF1ZXN0LFxufSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtMb2dnaW5nQXBpU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHtMb2dEZXRhaWxzQ29tcG9uZW50fSBmcm9tICcuLi9sb2ctZGV0YWlscy9sb2ctZGV0YWlscy5jb21wb25lbnQnO1xuaW1wb3J0IHtMb2dTZWFyY2hDb21wb25lbnR9IGZyb20gJy4uL2xvZy1zZWFyY2gvbG9nLXNlYXJjaC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL2xvZ2dpbmctbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9sb2dnaW5nLWxpc3QuY29tcG9uZW50LnNjc3MnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgQnV0dG9uTW9kdWxlLFxuICAgIENhcmJvbkxpc3RNb2R1bGUsXG4gICAgRGlhbG9nTW9kdWxlLFxuICAgIERyb3Bkb3duTW9kdWxlLFxuICAgIEljb25Nb2R1bGUsXG4gICAgTG9nRGV0YWlsc0NvbXBvbmVudCxcbiAgICBMb2dTZWFyY2hDb21wb25lbnQsXG4gIF0sXG4gIHByb3ZpZGVyczogW0xvZ2dpbmdBcGlTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgTG9nZ2luZ0xpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHB1YmxpYyByZWFkb25seSBsb2FkaW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG4gIHB1YmxpYyByZWFkb25seSBsb2dJdGVtcyQ6IE9ic2VydmFibGU8Q2FyYm9uTGlzdEl0ZW0+ID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5xdWVyeVBhcmFtTWFwLnBpcGUoXG4gICAgdGFwKCgpID0+IHRoaXMubG9hZGluZyQubmV4dCh0cnVlKSksXG4gICAgc3dpdGNoTWFwKHF1ZXJ5UGFyYW1zID0+XG4gICAgICB0aGlzLmxvZ2dpbmdBcGlTZXJ2aWNlLmdldFRlY2huaWNhbExvZ3Moe1xuICAgICAgICAuLi5xdWVyeVBhcmFtc1sncGFyYW1zJ10sXG4gICAgICAgIC4uLighIXF1ZXJ5UGFyYW1zWydwYXJhbXMnXT8ucHJvcGVydGllcyAmJiB7XG4gICAgICAgICAgcHJvcGVydGllczogdGhpcy5iYXNlNjRUb09iamVjdChxdWVyeVBhcmFtc1sncGFyYW1zJ10ucHJvcGVydGllcyksXG4gICAgICAgIH0pLFxuICAgICAgfSlcbiAgICApLFxuICAgIG1hcCgobG9nZ2luZ1BhZ2U6IFBhZ2U8TG9nZ2luZ0V2ZW50PikgPT4ge1xuICAgICAgdGhpcy5wYWdpbmF0aW9uJC5uZXh0KHtcbiAgICAgICAgLi4udGhpcy5wYWdpbmF0aW9uJC5nZXRWYWx1ZSgpLFxuICAgICAgICBjb2xsZWN0aW9uU2l6ZTogbG9nZ2luZ1BhZ2UudG90YWxFbGVtZW50cyxcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gbG9nZ2luZ1BhZ2UuY29udGVudC5tYXAoKGxvZ0V2ZW50OiBMb2dnaW5nRXZlbnQpID0+ICh7XG4gICAgICAgIC4uLmxvZ0V2ZW50LFxuICAgICAgICB0YWdzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgY29udGVudDogbG9nRXZlbnQubGV2ZWwsXG4gICAgICAgICAgICB0eXBlOiBMT0dfTEVWRUxfVEFHW2xvZ0V2ZW50LmxldmVsXSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSkpO1xuICAgIH0pLFxuICAgIHN0YXJ0V2l0aChbXSksXG4gICAgdGFwKCgpID0+IHtcbiAgICAgIHRoaXMubG9hZGluZyQubmV4dChmYWxzZSk7XG4gICAgfSlcbiAgKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgc2VhcmNoUmVxdWVzdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PExvZ2dpbmdFdmVudFNlYXJjaFJlcXVlc3Q+KHt9KTtcbiAgcHVibGljIHJlYWRvbmx5IHBhZ2luYXRpb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQYWdpbmF0aW9uPihERUZBVUxUX1BBR0lOQVRJT04pO1xuICBwdWJsaWMgcmVhZG9ubHkgbG9nRGV0YWlsc09wZW4kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3RlZExvZ0V2ZW50JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TG9nZ2luZ0V2ZW50IHwgbnVsbD4obnVsbCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IEZJRUxEUzogQ29sdW1uQ29uZmlnW10gPSBbXG4gICAge1xuICAgICAga2V5OiAndGltZXN0YW1wJyxcbiAgICAgIGxhYmVsOiAnbG9nZ2luZy5jb2x1bW5zLnRpbWVzdGFtcCcsXG4gICAgICB2aWV3VHlwZTogVmlld1R5cGUuREFURV9USU1FLFxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnbGV2ZWwnLFxuICAgICAgbGFiZWw6ICdsb2dnaW5nLmNvbHVtbnMubGV2ZWwnLFxuICAgICAgdmlld1R5cGU6IFZpZXdUeXBlLlRBR1MsXG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdmb3JtYXR0ZWRNZXNzYWdlJyxcbiAgICAgIGxhYmVsOiAnbG9nZ2luZy5jb2x1bW5zLmZvcm1hdHRlZE1lc3NhZ2UnLFxuICAgICAgdmlld1R5cGU6IFZpZXdUeXBlLlRFWFQsXG4gICAgICB0b29sdGlwQ2hhckxpbWl0OiBMT0dfRUxMSVBTSVNfTElNSVQsXG4gICAgfSxcbiAgXTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9zdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaWNvblNlcnZpY2U6IEljb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2luZ0FwaVNlcnZpY2U6IExvZ2dpbmdBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXJcbiAgKSB7XG4gICAgdGhpcy5pY29uU2VydmljZS5yZWdpc3RlckFsbChbRmlsdGVyMTYsIFRyYXNoQ2FuMTZdKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldEluaXRpYWxQYXJhbXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgb25DbG9zZU1vZGFsRXZlbnQoKTogdm9pZCB7XG4gICAgdGhpcy5sb2dEZXRhaWxzT3BlbiQubmV4dChmYWxzZSk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRMb2dFdmVudCQubmV4dChudWxsKTtcbiAgICB9LCBDQVJCT05fQ09OU1RBTlRTLm1vZGFsQW5pbWF0aW9uTXMpO1xuICB9XG5cbiAgcHVibGljIG9uUGFnaW5hdGlvbkNsaWNrZWQocGFnZTogbnVtYmVyLCBsb2dJdGVtczogQ2FyYm9uTGlzdEl0ZW1bXSk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGl2ZVBhZ2luYXRpb246IFBhZ2luYXRpb24gPSB0aGlzLnBhZ2luYXRpb24kLmdldFZhbHVlKCk7XG4gICAgY29uc3Qgc2VhcmNoUmVxdWVzdDogTG9nZ2luZ0V2ZW50U2VhcmNoUmVxdWVzdCA9IHRoaXMuc2VhcmNoUmVxdWVzdCQuZ2V0VmFsdWUoKTtcblxuICAgIGlmICghc2VhcmNoUmVxdWVzdC5iZWZvcmVUaW1lc3RhbXAgJiYgYWN0aXZlUGFnaW5hdGlvbi5wYWdlID09PSAxKVxuICAgICAgdGhpcy5zZWFyY2hSZXF1ZXN0JC5uZXh0KHsuLi5zZWFyY2hSZXF1ZXN0LCBiZWZvcmVUaW1lc3RhbXA6IGxvZ0l0ZW1zWzBdLnRpbWVzdGFtcH0pO1xuXG4gICAgdGhpcy5wYWdpbmF0aW9uJC5uZXh0KHsuLi5hY3RpdmVQYWdpbmF0aW9uLCBwYWdlfSk7XG4gIH1cblxuICBwdWJsaWMgb25QYWdpbmF0aW9uU2V0KHNpemU6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IHtjb2xsZWN0aW9uU2l6ZSwgcGFnZX0gPSB0aGlzLnBhZ2luYXRpb24kLmdldFZhbHVlKCk7XG4gICAgY29uc3QgcmVzZXRQYWdlOiBib29sZWFuID0gTWF0aC5jZWlsKCtjb2xsZWN0aW9uU2l6ZSAvIHNpemUpIDw9ICtwYWdlICYmICtjb2xsZWN0aW9uU2l6ZSA+IDA7XG5cbiAgICB0aGlzLnBhZ2luYXRpb24kLm5leHQoey4uLnRoaXMucGFnaW5hdGlvbiQuZ2V0VmFsdWUoKSwgc2l6ZSwgLi4uKHJlc2V0UGFnZSAmJiB7cGFnZTogMX0pfSk7XG4gIH1cblxuICBwdWJsaWMgb25Sb3dDbGlja2VkRXZlbnQocm93Q2xpY2tFdmVudDogTG9nZ2luZ0V2ZW50ICYge2N0cmxDbGljazogYm9vbGVhbn0pOiB2b2lkIHtcbiAgICBjb25zdCB7Y3RybENsaWNrOiBfLCAuLi5sb2dFdmVudH0gPSByb3dDbGlja0V2ZW50O1xuICAgIHRoaXMubG9nRGV0YWlsc09wZW4kLm5leHQodHJ1ZSk7XG4gICAgdGhpcy5zZWxlY3RlZExvZ0V2ZW50JC5uZXh0KGxvZ0V2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBvblNlYXJjaFN1Ym1pdEV2ZW50KHNlYXJjaFJlcXVlc3Q6IExvZ2dpbmdFdmVudFNlYXJjaFJlcXVlc3QpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaFJlcXVlc3QkLm5leHQoc2VhcmNoUmVxdWVzdCk7XG4gIH1cblxuICBwdWJsaWMgb25DbGVhckZpbHRlcigpOiB2b2lkIHtcbiAgICB0aGlzLm9uU2VhcmNoU3VibWl0RXZlbnQoe30pO1xuICB9XG5cbiAgcHJpdmF0ZSBiYXNlNjRUb09iamVjdChiYXNlNjRzdHJpbmc6IHN0cmluZyk6IG9iamVjdCB7XG4gICAgcmV0dXJuIEpTT04ucGFyc2UoYXRvYihiYXNlNjRzdHJpbmcpKTtcbiAgfVxuXG4gIHByaXZhdGUgb2JqZWN0VG9CYXNlNjQoanNPYmplY3Q6IG9iamVjdCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGJ0b2EoSlNPTi5zdHJpbmdpZnkoanNPYmplY3QpKTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlblF1ZXJ5UGFyYW1zU3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgY29tYmluZUxhdGVzdChbdGhpcy5wYWdpbmF0aW9uJCwgdGhpcy5zZWFyY2hSZXF1ZXN0JF0pLnN1YnNjcmliZShcbiAgICAgICAgKFtwYWdpbmF0aW9uLCBzZWFyY2hSZXF1ZXN0XSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHtzaXplLCBwYWdlfSA9IHBhZ2luYXRpb247XG5cbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9sb2dnaW5nJ10sIHtcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICAgICAgICAgIHNpemUsXG4gICAgICAgICAgICAgIHBhZ2U6IHBhZ2UgLSAxLFxuICAgICAgICAgICAgICAuLi57XG4gICAgICAgICAgICAgICAgLi4uc2VhcmNoUmVxdWVzdCxcbiAgICAgICAgICAgICAgICAuLi4oISFzZWFyY2hSZXF1ZXN0LnByb3BlcnRpZXM/Lmxlbmd0aCAmJiB7XG4gICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiB0aGlzLm9iamVjdFRvQmFzZTY0KHNlYXJjaFJlcXVlc3QucHJvcGVydGllcyksXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgbWFwUXVlcnlQYXJhbXNUb1NlYXJjaFJlcXVlc3QoXG4gICAgcXVlcnlQYXJhbXM6IExvZ2dpbmdFdmVudFF1ZXJ5UGFyYW1zXG4gICk6IExvZ2dpbmdFdmVudFNlYXJjaFJlcXVlc3Qge1xuICAgIHJldHVybiB7XG4gICAgICAuLi4oISFxdWVyeVBhcmFtcy5saWtlRm9ybWF0dGVkTWVzc2FnZSAmJiB7XG4gICAgICAgIGxpa2VGb3JtYXR0ZWRNZXNzYWdlOiBxdWVyeVBhcmFtcy5saWtlRm9ybWF0dGVkTWVzc2FnZSxcbiAgICAgIH0pLFxuICAgICAgLi4uKCEhcXVlcnlQYXJhbXMubGV2ZWwgJiYge2xldmVsOiBxdWVyeVBhcmFtcy5sZXZlbH0pLFxuICAgICAgLi4uKCEhcXVlcnlQYXJhbXMuYWZ0ZXJUaW1lc3RhbXAgJiYge2FmdGVyVGltZXN0YW1wOiBxdWVyeVBhcmFtcy5hZnRlclRpbWVzdGFtcH0pLFxuICAgICAgLi4uKCEhcXVlcnlQYXJhbXMuYmVmb3JlVGltZXN0YW1wICYmIHtiZWZvcmVUaW1lc3RhbXA6IHF1ZXJ5UGFyYW1zLmJlZm9yZVRpbWVzdGFtcH0pLFxuICAgICAgLi4uKCEhcXVlcnlQYXJhbXMucHJvcGVydGllcyAmJiB7XG4gICAgICAgIHByb3BlcnRpZXM6IHRoaXMuYmFzZTY0VG9PYmplY3QocXVlcnlQYXJhbXMucHJvcGVydGllcykgYXMgQXJyYXk8TG9nZ2luZ0V2ZW50UHJvcGVydHk+LFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0SW5pdGlhbFBhcmFtcygpOiB2b2lkIHtcbiAgICB0aGlzLmFjdGl2YXRlZFJvdXRlLnF1ZXJ5UGFyYW1NYXBcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgICBtYXAocXVlcnlQYXJhbXMgPT4ge1xuICAgICAgICAgIGNvbnN0IHtzaXplLCBwYWdlLCAuLi5zZWFyY2hSZXF1ZXN0fSA9IHF1ZXJ5UGFyYW1zWydwYXJhbXMnXTtcbiAgICAgICAgICByZXR1cm4ge3NpemUsIHBhZ2UsIHNlYXJjaFJlcXVlc3R9O1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoe3NpemUsIHBhZ2UsIHNlYXJjaFJlcXVlc3R9KSA9PiB7XG4gICAgICAgIHRoaXMuc2VhcmNoUmVxdWVzdCQubmV4dCh0aGlzLm1hcFF1ZXJ5UGFyYW1zVG9TZWFyY2hSZXF1ZXN0KHNlYXJjaFJlcXVlc3QpKTtcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uJC5uZXh0KHtcbiAgICAgICAgICAuLi50aGlzLnBhZ2luYXRpb24kLmdldFZhbHVlKCksXG4gICAgICAgICAgc2l6ZTogK3NpemUsXG4gICAgICAgICAgcGFnZTogKyhwYWdlID8/IDApICsgMSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5vcGVuUXVlcnlQYXJhbXNTdWJzY3JpcHRpb24oKTtcbiAgICAgIH0pO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjx2YWx0aW1vLWNhcmJvbi1saXN0XG4gICpuZ0lmPVwibG9nSXRlbXMkIHwgYXN5bmMgYXMgbG9nSXRlbXNcIlxuICBbaXRlbXNdPVwibG9nSXRlbXNcIlxuICBbZmllbGRzXT1cIkZJRUxEU1wiXG4gIFtsb2FkaW5nXT1cImxvYWRpbmckIHwgYXN5bmNcIlxuICBbcGFnaW5hdGlvbl09XCJwYWdpbmF0aW9uJCB8IGFzeW5jXCJcbiAgcGFnaW5hdGlvbklkZW50aWZpZXI9XCJsb2dnaW5nXCJcbiAgKHBhZ2luYXRpb25DbGlja2VkKT1cIm9uUGFnaW5hdGlvbkNsaWNrZWQoJGV2ZW50LCBsb2dJdGVtcylcIlxuICAocGFnaW5hdGlvblNldCk9XCJvblBhZ2luYXRpb25TZXQoJGV2ZW50KVwiXG4gIChyb3dDbGlja2VkKT1cIm9uUm93Q2xpY2tlZEV2ZW50KCRldmVudClcIlxuPlxuICA8dmFsdGltby1uby1yZXN1bHRzXG4gICAgW2FjdGlvbl09XCJjbGVhclNlYXJjaEJ1dHRvblwiXG4gICAgW2Rlc2NyaXB0aW9uXT1cIidsb2dnaW5nLm5vUmVzdWx0cy5kZXNjcmlwdGlvbicgfCB0cmFuc2xhdGVcIlxuICAgIFt0aXRsZV09XCInbG9nZ2luZy5ub1Jlc3VsdHMudGl0bGUnIHwgdHJhbnNsYXRlXCJcbiAgPjwvdmFsdGltby1uby1yZXN1bHRzPlxuXG4gIDxidXR0b25cbiAgICBjYXJib25Ub29sYmFyQ29udGVudFxuICAgIFtjZHNPdmVyZmxvd01lbnVdPVwibG9nU2VhcmNoXCJcbiAgICBbY3VzdG9tUGFuZV09XCJ0cnVlXCJcbiAgICBbaWNvbk9ubHldPVwidHJ1ZVwiXG4gICAgW2ZsaXBdPVwidHJ1ZVwiXG4gICAgW29mZnNldF09XCJ7eDogMCwgeTogNDd9XCJcbiAgICBjZHNCdXR0b249XCJnaG9zdFwiXG4gICAgcGxhY2VtZW50PVwiYm90dG9tXCJcbiAgPlxuICAgIDxzdmcgY2xhc3M9XCJjZHMtLWJ0bl9faWNvblwiIGNkc0ljb249XCJmaWx0ZXJcIiBzaXplPVwiMTZcIj48L3N2Zz5cbiAgPC9idXR0b24+XG48L3ZhbHRpbW8tY2FyYm9uLWxpc3Q+XG5cbjx2YWx0aW1vLWxvZy1kZXRhaWxzXG4gIFtvcGVuXT1cImxvZ0RldGFpbHNPcGVuJCB8IGFzeW5jXCJcbiAgW2xvZ0V2ZW50XT1cInNlbGVjdGVkTG9nRXZlbnQkIHwgYXN5bmNcIlxuICAoY2xvc2VNb2RhbEV2ZW50KT1cIm9uQ2xvc2VNb2RhbEV2ZW50KClcIlxuPjwvdmFsdGltby1sb2ctZGV0YWlscz5cblxuPG5nLXRlbXBsYXRlICNsb2dTZWFyY2g+XG4gIDx2YWx0aW1vLWxvZy1zZWFyY2hcbiAgICBbaW5pdFNlYXJjaFJlcXVlc3RdPVwic2VhcmNoUmVxdWVzdCQgfCBhc3luY1wiXG4gICAgKHNlYXJjaFN1Ym1pdEV2ZW50KT1cIm9uU2VhcmNoU3VibWl0RXZlbnQoJGV2ZW50KVwiXG4gID48L3ZhbHRpbW8tbG9nLXNlYXJjaD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjY2xlYXJTZWFyY2hCdXR0b24+XG4gIDxidXR0b24gY2RzQnV0dG9uPVwicHJpbWFyeVwiIChjbGljayk9XCJvbkNsZWFyRmlsdGVyKClcIj5cbiAgICB7eyAnaW50ZXJmYWNlLmNsZWFyJyB8IHRyYW5zbGF0ZSB9fVxuXG4gICAgPHN2ZyBjbGFzcz1cImNkcy0tYnRuX19pY29uXCIgY2RzSWNvbj1cInRyYXNoLWNhblwiIHNpemU9XCIxNlwiPjwvc3ZnPlxuICA8L2J1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
193
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2luZy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vbG9nZ2luZy9zcmMvbGliL2NvbXBvbmVudHMvbG9nZ2luZy1saXN0L2xvZ2dpbmctbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2xvZ2dpbmcvc3JjL2xpYi9jb21wb25lbnRzL2xvZ2dpbmctbGlzdC9sb2dnaW5nLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFFcEYsT0FBTyxFQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFDTCxnQkFBZ0IsRUFFaEIsZ0JBQWdCLEVBR2hCLGtCQUFrQixFQUVsQixRQUFRLEdBQ1QsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixPQUFPLEVBQ0wsWUFBWSxFQUNaLFlBQVksRUFDWixjQUFjLEVBQ2QsVUFBVSxHQUVYLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUNMLGVBQWUsRUFDZixhQUFhLEVBQ2IsR0FBRyxFQUVILFNBQVMsRUFDVCxZQUFZLEVBQ1osU0FBUyxFQUNULElBQUksRUFDSixHQUFHLEdBQ0osTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLGFBQWEsR0FLZCxNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFP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bUdBQXBCLG9CQUFvQiwyREFGcEIsQ0FBQyxpQkFBaUIsQ0FBQywwQkM3RWhDLCt6RUFxRUEsOExERkksWUFBWSx1TEFDWixlQUFlLDJGQUNmLFlBQVksZ01BQ1osZ0JBQWdCLHcxQkFDaEIsWUFBWSxtUUFDWixjQUFjLDhCQUNkLFVBQVUsNk5BQ1YsbUJBQW1CLDRIQUNuQixrQkFBa0I7OzRGQUlULG9CQUFvQjtrQkFsQmhDLFNBQVM7aUNBR0ksSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsWUFBWTt3QkFDWixjQUFjO3dCQUNkLFVBQVU7d0JBQ1YsbUJBQW1CO3dCQUNuQixrQkFBa0I7cUJBQ25CLGFBQ1UsQ0FBQyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtGaWx0ZXIxNiwgVHJhc2hDYW4xNn0gZnJvbSAnQGNhcmJvbi9pY29ucyc7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge1xuICBDQVJCT05fQ09OU1RBTlRTLFxuICBDYXJib25MaXN0SXRlbSxcbiAgQ2FyYm9uTGlzdE1vZHVsZSxcbiAgQ2FyYm9uVGFnLFxuICBDb2x1bW5Db25maWcsXG4gIERFRkFVTFRfUEFHSU5BVElPTixcbiAgUGFnaW5hdGlvbixcbiAgVmlld1R5cGUsXG59IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtQYWdlfSBmcm9tICdAdmFsdGltby9jb25maWcnO1xuaW1wb3J0IHtcbiAgQnV0dG9uTW9kdWxlLFxuICBEaWFsb2dNb2R1bGUsXG4gIERyb3Bkb3duTW9kdWxlLFxuICBJY29uTW9kdWxlLFxuICBJY29uU2VydmljZSxcbn0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIG1hcCxcbiAgT2JzZXJ2YWJsZSxcbiAgc3RhcnRXaXRoLFxuICBTdWJzY3JpcHRpb24sXG4gIHN3aXRjaE1hcCxcbiAgdGFrZSxcbiAgdGFwLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIExPR19FTExJUFNJU19MSU1JVCxcbiAgTE9HX0xFVkVMX1RBRyxcbiAgTG9nZ2luZ0V2ZW50LFxuICBMb2dnaW5nRXZlbnRQcm9wZXJ0eSxcbiAgTG9nZ2luZ0V2ZW50UXVlcnlQYXJhbXMsXG4gIExvZ2dpbmdFdmVudFNlYXJjaFJlcXVlc3QsXG59IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQge0xvZ2dpbmdBcGlTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQge0xvZ0RldGFpbHNDb21wb25lbnR9IGZyb20gJy4uL2xvZy1kZXRhaWxzL2xvZy1kZXRhaWxzLmNvbXBvbmVudCc7XG5pbXBvcnQge0xvZ1NlYXJjaENvbXBvbmVudH0gZnJvbSAnLi4vbG9nLXNlYXJjaC9sb2ctc2VhcmNoLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vbG9nZ2luZy1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2xvZ2dpbmctbGlzdC5jb21wb25lbnQuc2NzcycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBCdXR0b25Nb2R1bGUsXG4gICAgQ2FyYm9uTGlzdE1vZHVsZSxcbiAgICBEaWFsb2dNb2R1bGUsXG4gICAgRHJvcGRvd25Nb2R1bGUsXG4gICAgSWNvbk1vZHVsZSxcbiAgICBMb2dEZXRhaWxzQ29tcG9uZW50LFxuICAgIExvZ1NlYXJjaENvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbTG9nZ2luZ0FwaVNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBMb2dnaW5nTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHVibGljIHJlYWRvbmx5IGxvYWRpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcbiAgcHVibGljIHJlYWRvbmx5IGxvZ0l0ZW1zJDogT2JzZXJ2YWJsZTxDYXJib25MaXN0SXRlbT4gPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnF1ZXJ5UGFyYW1NYXAucGlwZShcbiAgICB0YXAoKCkgPT4gdGhpcy5sb2FkaW5nJC5uZXh0KHRydWUpKSxcbiAgICBzd2l0Y2hNYXAocXVlcnlQYXJhbXMgPT5cbiAgICAgIHRoaXMubG9nZ2luZ0FwaVNlcnZpY2UuZ2V0VGVjaG5pY2FsTG9ncyh7XG4gICAgICAgIC4uLnF1ZXJ5UGFyYW1zWydwYXJhbXMnXSxcbiAgICAgICAgLi4uKCEhcXVlcnlQYXJhbXNbJ3BhcmFtcyddPy5wcm9wZXJ0aWVzICYmIHtcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB0aGlzLmJhc2U2NFRvT2JqZWN0KHF1ZXJ5UGFyYW1zWydwYXJhbXMnXS5wcm9wZXJ0aWVzKSxcbiAgICAgICAgfSksXG4gICAgICB9KVxuICAgICksXG4gICAgbWFwKChsb2dnaW5nUGFnZTogUGFnZTxMb2dnaW5nRXZlbnQ+KSA9PiB7XG4gICAgICB0aGlzLnBhZ2luYXRpb24kLm5leHQoe1xuICAgICAgICAuLi50aGlzLnBhZ2luYXRpb24kLmdldFZhbHVlKCksXG4gICAgICAgIGNvbGxlY3Rpb25TaXplOiBsb2dnaW5nUGFnZS50b3RhbEVsZW1lbnRzLFxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBsb2dnaW5nUGFnZS5jb250ZW50Lm1hcCgobG9nRXZlbnQ6IExvZ2dpbmdFdmVudCkgPT4gKHtcbiAgICAgICAgLi4ubG9nRXZlbnQsXG4gICAgICAgIHRhZ3M6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjb250ZW50OiBsb2dFdmVudC5sZXZlbCxcbiAgICAgICAgICAgIHR5cGU6IExPR19MRVZFTF9UQUdbbG9nRXZlbnQubGV2ZWxdLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KSk7XG4gICAgfSksXG4gICAgc3RhcnRXaXRoKFtdKSxcbiAgICB0YXAoKCkgPT4ge1xuICAgICAgdGhpcy5sb2FkaW5nJC5uZXh0KGZhbHNlKTtcbiAgICB9KVxuICApO1xuXG4gIHB1YmxpYyByZWFkb25seSBzZWFyY2hSZXF1ZXN0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TG9nZ2luZ0V2ZW50U2VhcmNoUmVxdWVzdD4oe30pO1xuICBwdWJsaWMgcmVhZG9ubHkgaXNTZWFyY2hBY3RpdmUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5zZWFyY2hSZXF1ZXN0JC5waXBlKFxuICAgIG1hcCgoc2VhcmNoUmVxdWVzdDogTG9nZ2luZ0V2ZW50U2VhcmNoUmVxdWVzdCkgPT4gT2JqZWN0LmtleXMoc2VhcmNoUmVxdWVzdCkubGVuZ3RoID4gMClcbiAgKTtcbiAgcHVibGljIHJlYWRvbmx5IHBhZ2luYXRpb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQYWdpbmF0aW9uPihERUZBVUxUX1BBR0lOQVRJT04pO1xuICBwdWJsaWMgcmVhZG9ubHkgbG9nRGV0YWlsc09wZW4kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3RlZExvZ0V2ZW50JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TG9nZ2luZ0V2ZW50IHwgbnVsbD4obnVsbCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IEZJRUxEUzogQ29sdW1uQ29uZmlnW10gPSBbXG4gICAge1xuICAgICAga2V5OiAndGltZXN0YW1wJyxcbiAgICAgIGxhYmVsOiAnbG9nZ2luZy5jb2x1bW5zLnRpbWVzdGFtcCcsXG4gICAgICB2aWV3VHlwZTogVmlld1R5cGUuREFURV9USU1FLFxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnbGV2ZWwnLFxuICAgICAgbGFiZWw6ICdsb2dnaW5nLmNvbHVtbnMubGV2ZWwnLFxuICAgICAgdmlld1R5cGU6IFZpZXdUeXBlLlRBR1MsXG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdmb3JtYXR0ZWRNZXNzYWdlJyxcbiAgICAgIGxhYmVsOiAnbG9nZ2luZy5jb2x1bW5zLmZvcm1hdHRlZE1lc3NhZ2UnLFxuICAgICAgdmlld1R5cGU6IFZpZXdUeXBlLlRFWFQsXG4gICAgICB0b29sdGlwQ2hhckxpbWl0OiBMT0dfRUxMSVBTSVNfTElNSVQsXG4gICAgfSxcbiAgXTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9zdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaWNvblNlcnZpY2U6IEljb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2luZ0FwaVNlcnZpY2U6IExvZ2dpbmdBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXJcbiAgKSB7XG4gICAgdGhpcy5pY29uU2VydmljZS5yZWdpc3RlckFsbChbRmlsdGVyMTYsIFRyYXNoQ2FuMTZdKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldEluaXRpYWxQYXJhbXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgb25DbG9zZU1vZGFsRXZlbnQoKTogdm9pZCB7XG4gICAgdGhpcy5sb2dEZXRhaWxzT3BlbiQubmV4dChmYWxzZSk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRMb2dFdmVudCQubmV4dChudWxsKTtcbiAgICB9LCBDQVJCT05fQ09OU1RBTlRTLm1vZGFsQW5pbWF0aW9uTXMpO1xuICB9XG5cbiAgcHVibGljIG9uUGFnaW5hdGlvbkNsaWNrZWQocGFnZTogbnVtYmVyLCBsb2dJdGVtczogQ2FyYm9uTGlzdEl0ZW1bXSk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGl2ZVBhZ2luYXRpb246IFBhZ2luYXRpb24gPSB0aGlzLnBhZ2luYXRpb24kLmdldFZhbHVlKCk7XG4gICAgY29uc3Qgc2VhcmNoUmVxdWVzdDogTG9nZ2luZ0V2ZW50U2VhcmNoUmVxdWVzdCA9IHRoaXMuc2VhcmNoUmVxdWVzdCQuZ2V0VmFsdWUoKTtcblxuICAgIGlmICghc2VhcmNoUmVxdWVzdC5iZWZvcmVUaW1lc3RhbXAgJiYgYWN0aXZlUGFnaW5hdGlvbi5wYWdlID09PSAxKVxuICAgICAgdGhpcy5zZWFyY2hSZXF1ZXN0JC5uZXh0KHsuLi5zZWFyY2hSZXF1ZXN0LCBiZWZvcmVUaW1lc3RhbXA6IGxvZ0l0ZW1zWzBdLnRpbWVzdGFtcH0pO1xuXG4gICAgdGhpcy5wYWdpbmF0aW9uJC5uZXh0KHsuLi5hY3RpdmVQYWdpbmF0aW9uLCBwYWdlfSk7XG4gIH1cblxuICBwdWJsaWMgb25QYWdpbmF0aW9uU2V0KHNpemU6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IHtjb2xsZWN0aW9uU2l6ZSwgcGFnZX0gPSB0aGlzLnBhZ2luYXRpb24kLmdldFZhbHVlKCk7XG4gICAgY29uc3QgcmVzZXRQYWdlOiBib29sZWFuID0gTWF0aC5jZWlsKCtjb2xsZWN0aW9uU2l6ZSAvIHNpemUpIDw9ICtwYWdlICYmICtjb2xsZWN0aW9uU2l6ZSA+IDA7XG5cbiAgICB0aGlzLnBhZ2luYXRpb24kLm5leHQoey4uLnRoaXMucGFnaW5hdGlvbiQuZ2V0VmFsdWUoKSwgc2l6ZSwgLi4uKHJlc2V0UGFnZSAmJiB7cGFnZTogMX0pfSk7XG4gIH1cblxuICBwdWJsaWMgb25Sb3dDbGlja2VkRXZlbnQoXG4gICAgcm93Q2xpY2tFdmVudDogTG9nZ2luZ0V2ZW50ICYge2N0cmxDbGljazogYm9vbGVhbjsgdGFnczogQ2FyYm9uVGFnW119XG4gICk6IHZvaWQge1xuICAgIGNvbnN0IHtjdHJsQ2xpY2s6IF8xLCB0YWdzOiBfMiwgLi4ubG9nRXZlbnR9ID0gcm93Q2xpY2tFdmVudDtcbiAgICB0aGlzLmxvZ0RldGFpbHNPcGVuJC5uZXh0KHRydWUpO1xuICAgIHRoaXMuc2VsZWN0ZWRMb2dFdmVudCQubmV4dChsb2dFdmVudCk7XG4gIH1cblxuICBwdWJsaWMgb25TZWFyY2hTdWJtaXRFdmVudChzZWFyY2hSZXF1ZXN0OiBMb2dnaW5nRXZlbnRTZWFyY2hSZXF1ZXN0KTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hSZXF1ZXN0JC5uZXh0KHNlYXJjaFJlcXVlc3QpO1xuICB9XG5cbiAgcHVibGljIG9uQ2xlYXJGaWx0ZXIoKTogdm9pZCB7XG4gICAgdGhpcy5vblNlYXJjaFN1Ym1pdEV2ZW50KHt9KTtcbiAgfVxuXG4gIHByaXZhdGUgYmFzZTY0VG9PYmplY3QoYmFzZTY0c3RyaW5nOiBzdHJpbmcpOiBvYmplY3Qge1xuICAgIHJldHVybiBKU09OLnBhcnNlKGF0b2IoYmFzZTY0c3RyaW5nKSk7XG4gIH1cblxuICBwcml2YXRlIG9iamVjdFRvQmFzZTY0KGpzT2JqZWN0OiBvYmplY3QpOiBzdHJpbmcge1xuICAgIHJldHVybiBidG9hKEpTT04uc3RyaW5naWZ5KGpzT2JqZWN0KSk7XG4gIH1cblxuICBwcml2YXRlIG9wZW5RdWVyeVBhcmFtc1N1YnNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMucGFnaW5hdGlvbiQsIHRoaXMuc2VhcmNoUmVxdWVzdCRdKS5zdWJzY3JpYmUoXG4gICAgICAgIChbcGFnaW5hdGlvbiwgc2VhcmNoUmVxdWVzdF0pID0+IHtcbiAgICAgICAgICBjb25zdCB7c2l6ZSwgcGFnZX0gPSBwYWdpbmF0aW9uO1xuXG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbG9nZ2luZyddLCB7XG4gICAgICAgICAgICBxdWVyeVBhcmFtczoge1xuICAgICAgICAgICAgICBzaXplLFxuICAgICAgICAgICAgICBwYWdlOiBwYWdlIC0gMSxcbiAgICAgICAgICAgICAgLi4ue1xuICAgICAgICAgICAgICAgIC4uLnNlYXJjaFJlcXVlc3QsXG4gICAgICAgICAgICAgICAgLi4uKCEhc2VhcmNoUmVxdWVzdC5wcm9wZXJ0aWVzPy5sZW5ndGggJiYge1xuICAgICAgICAgICAgICAgICAgcHJvcGVydGllczogdGhpcy5vYmplY3RUb0Jhc2U2NChzZWFyY2hSZXF1ZXN0LnByb3BlcnRpZXMpLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIG1hcFF1ZXJ5UGFyYW1zVG9TZWFyY2hSZXF1ZXN0KFxuICAgIHF1ZXJ5UGFyYW1zOiBMb2dnaW5nRXZlbnRRdWVyeVBhcmFtc1xuICApOiBMb2dnaW5nRXZlbnRTZWFyY2hSZXF1ZXN0IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uKCEhcXVlcnlQYXJhbXMubGlrZUZvcm1hdHRlZE1lc3NhZ2UgJiYge1xuICAgICAgICBsaWtlRm9ybWF0dGVkTWVzc2FnZTogcXVlcnlQYXJhbXMubGlrZUZvcm1hdHRlZE1lc3NhZ2UsXG4gICAgICB9KSxcbiAgICAgIC4uLighIXF1ZXJ5UGFyYW1zLmxldmVsICYmIHtsZXZlbDogcXVlcnlQYXJhbXMubGV2ZWx9KSxcbiAgICAgIC4uLighIXF1ZXJ5UGFyYW1zLmFmdGVyVGltZXN0YW1wICYmIHthZnRlclRpbWVzdGFtcDogcXVlcnlQYXJhbXMuYWZ0ZXJUaW1lc3RhbXB9KSxcbiAgICAgIC4uLighIXF1ZXJ5UGFyYW1zLmJlZm9yZVRpbWVzdGFtcCAmJiB7YmVmb3JlVGltZXN0YW1wOiBxdWVyeVBhcmFtcy5iZWZvcmVUaW1lc3RhbXB9KSxcbiAgICAgIC4uLighIXF1ZXJ5UGFyYW1zLnByb3BlcnRpZXMgJiYge1xuICAgICAgICBwcm9wZXJ0aWVzOiB0aGlzLmJhc2U2NFRvT2JqZWN0KHF1ZXJ5UGFyYW1zLnByb3BlcnRpZXMpIGFzIEFycmF5PExvZ2dpbmdFdmVudFByb3BlcnR5PixcbiAgICAgIH0pLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHNldEluaXRpYWxQYXJhbXMoKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmF0ZWRSb3V0ZS5xdWVyeVBhcmFtTWFwXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgbWFwKHF1ZXJ5UGFyYW1zID0+IHtcbiAgICAgICAgICBjb25zdCB7c2l6ZSwgcGFnZSwgLi4uc2VhcmNoUmVxdWVzdH0gPSBxdWVyeVBhcmFtc1sncGFyYW1zJ107XG4gICAgICAgICAgcmV0dXJuIHtzaXplLCBwYWdlLCBzZWFyY2hSZXF1ZXN0fTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHtzaXplLCBwYWdlLCBzZWFyY2hSZXF1ZXN0fSkgPT4ge1xuICAgICAgICB0aGlzLnNlYXJjaFJlcXVlc3QkLm5leHQodGhpcy5tYXBRdWVyeVBhcmFtc1RvU2VhcmNoUmVxdWVzdChzZWFyY2hSZXF1ZXN0KSk7XG4gICAgICAgIHRoaXMucGFnaW5hdGlvbiQubmV4dCh7XG4gICAgICAgICAgLi4udGhpcy5wYWdpbmF0aW9uJC5nZXRWYWx1ZSgpLFxuICAgICAgICAgIHNpemU6ICtzaXplLFxuICAgICAgICAgIHBhZ2U6ICsocGFnZSA/PyAwKSArIDEsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMub3BlblF1ZXJ5UGFyYW1zU3Vic2NyaXB0aW9uKCk7XG4gICAgICB9KTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48dmFsdGltby1jYXJib24tbGlzdFxuICAqbmdJZj1cIntsb2dJdGVtczogbG9nSXRlbXMkIHwgYXN5bmMsIGlzU2VhcmNoQWN0aXZlOiBpc1NlYXJjaEFjdGl2ZSQgfCBhc3luY30gYXMgb2JzXCJcbiAgW2l0ZW1zXT1cIm9icy5sb2dJdGVtc1wiXG4gIFtmaWVsZHNdPVwiRklFTERTXCJcbiAgW2xvYWRpbmddPVwibG9hZGluZyQgfCBhc3luY1wiXG4gIFtwYWdpbmF0aW9uXT1cInBhZ2luYXRpb24kIHwgYXN5bmNcIlxuICBwYWdpbmF0aW9uSWRlbnRpZmllcj1cImxvZ2dpbmdcIlxuICAocGFnaW5hdGlvbkNsaWNrZWQpPVwib25QYWdpbmF0aW9uQ2xpY2tlZCgkZXZlbnQsIG9icy5sb2dJdGVtcylcIlxuICAocGFnaW5hdGlvblNldCk9XCJvblBhZ2luYXRpb25TZXQoJGV2ZW50KVwiXG4gIChyb3dDbGlja2VkKT1cIm9uUm93Q2xpY2tlZEV2ZW50KCRldmVudClcIlxuPlxuICA8dmFsdGltby1uby1yZXN1bHRzXG4gICAgW2FjdGlvbl09XCJvYnMuaXNTZWFyY2hBY3RpdmUgPyBjbGVhclNlYXJjaEJ1dHRvbiA6IG51bGxcIlxuICAgIFtkZXNjcmlwdGlvbl09XCJcbiAgICAgICdsb2dnaW5nLm5vUmVzdWx0cy4nICsgKG9icy5pc1NlYXJjaEFjdGl2ZSA/ICdzZWFyY2hEZXNjcmlwdGlvbicgOiAnZGVzY3JpcHRpb24nKSB8IHRyYW5zbGF0ZVxuICAgIFwiXG4gICAgW3RpdGxlXT1cIidsb2dnaW5nLm5vUmVzdWx0cy50aXRsZScgfCB0cmFuc2xhdGVcIlxuICA+PC92YWx0aW1vLW5vLXJlc3VsdHM+XG5cbiAgPGJ1dHRvblxuICAgIGNhcmJvblRvb2xiYXJDb250ZW50XG4gICAgW2Nkc092ZXJmbG93TWVudV09XCJsb2dTZWFyY2hcIlxuICAgIFtjdXN0b21QYW5lXT1cInRydWVcIlxuICAgIFtpY29uT25seV09XCJ0cnVlXCJcbiAgICBbZmxpcF09XCJ0cnVlXCJcbiAgICBbb2Zmc2V0XT1cInt4OiAwLCB5OiA0N31cIlxuICAgIGNkc0J1dHRvbj1cImdob3N0XCJcbiAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxuICA+XG4gICAgPHN2ZyBjbGFzcz1cImNkcy0tYnRuX19pY29uXCIgY2RzSWNvbj1cImZpbHRlclwiIHNpemU9XCIxNlwiPjwvc3ZnPlxuICA8L2J1dHRvbj5cbjwvdmFsdGltby1jYXJib24tbGlzdD5cblxuPHZhbHRpbW8tbG9nLWRldGFpbHNcbiAgW29wZW5dPVwibG9nRGV0YWlsc09wZW4kIHwgYXN5bmNcIlxuICBbbG9nRXZlbnRdPVwic2VsZWN0ZWRMb2dFdmVudCQgfCBhc3luY1wiXG4gIChjbG9zZU1vZGFsRXZlbnQpPVwib25DbG9zZU1vZGFsRXZlbnQoKVwiXG4+PC92YWx0aW1vLWxvZy1kZXRhaWxzPlxuXG48bmctdGVtcGxhdGUgI2xvZ1NlYXJjaD5cbiAgPHZhbHRpbW8tbG9nLXNlYXJjaFxuICAgIFtpbml0U2VhcmNoUmVxdWVzdF09XCJzZWFyY2hSZXF1ZXN0JCB8IGFzeW5jXCJcbiAgICAoc2VhcmNoU3VibWl0RXZlbnQpPVwib25TZWFyY2hTdWJtaXRFdmVudCgkZXZlbnQpXCJcbiAgPjwvdmFsdGltby1sb2ctc2VhcmNoPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjbGVhclNlYXJjaEJ1dHRvbj5cbiAgPGJ1dHRvbiBjZHNCdXR0b249XCJwcmltYXJ5XCIgKGNsaWNrKT1cIm9uQ2xlYXJGaWx0ZXIoKVwiPlxuICAgIHt7ICdpbnRlcmZhY2UuY2xlYXInIHwgdHJhbnNsYXRlIH19XG5cbiAgICA8c3ZnIGNsYXNzPVwiY2RzLS1idG5fX2ljb25cIiBjZHNJY29uPVwidHJhc2gtY2FuXCIgc2l6ZT1cIjE2XCI+PC9zdmc+XG4gIDwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -12,12 +12,12 @@ import { TrashCan16, Filter16 } from '@carbon/icons';
|
|
|
12
12
|
import * as i1$1 from '@valtimo/components';
|
|
13
13
|
import { CurrentCarbonTheme, CARBON_THEME, DEFAULT_PAGINATION, ViewType, CARBON_CONSTANTS, CarbonListModule } from '@valtimo/components';
|
|
14
14
|
import * as i3 from 'carbon-components-angular';
|
|
15
|
-
import { ModalModule, ButtonModule, DropdownModule, IconModule, InputModule, DatePickerModule, DialogModule } from 'carbon-components-angular';
|
|
15
|
+
import { ModalModule, ButtonModule, DropdownModule, IconModule, InputModule, DatePickerModule, TimePickerModule, DialogModule } from 'carbon-components-angular';
|
|
16
16
|
import { map, Subscription, debounceTime, BehaviorSubject, tap, switchMap, startWith, combineLatest, take } from 'rxjs';
|
|
17
17
|
import * as i4$1 from 'ngx-json-viewer';
|
|
18
18
|
import { NgxJsonViewerModule } from 'ngx-json-viewer';
|
|
19
19
|
import * as i2$1 from '@angular/forms';
|
|
20
|
-
import { ReactiveFormsModule } from '@angular/forms';
|
|
20
|
+
import { ReactiveFormsModule, FormsModule } from '@angular/forms';
|
|
21
21
|
import flatpickr from 'flatpickr';
|
|
22
22
|
import * as i1$2 from '@angular/router';
|
|
23
23
|
import { RouterModule } from '@angular/router';
|
|
@@ -193,7 +193,9 @@ class LogSearchComponent {
|
|
|
193
193
|
likeFormattedMessage: this.fb.control(''),
|
|
194
194
|
level: this.fb.control({ content: '', selected: false }),
|
|
195
195
|
beforeTimestamp: this.fb.control(''),
|
|
196
|
+
beforeTime: this.fb.control(''),
|
|
196
197
|
afterTimestamp: this.fb.control(''),
|
|
198
|
+
afterTime: this.fb.control(''),
|
|
197
199
|
properties: this.fb.array([
|
|
198
200
|
this.fb.group({
|
|
199
201
|
key: this.fb.control(''),
|
|
@@ -276,6 +278,24 @@ class LogSearchComponent {
|
|
|
276
278
|
this.addPropertySearchField();
|
|
277
279
|
}
|
|
278
280
|
}
|
|
281
|
+
initTimeForm(formValue) {
|
|
282
|
+
const { beforeTimestamp, afterTimestamp } = formValue;
|
|
283
|
+
if (!!beforeTimestamp) {
|
|
284
|
+
const { hours, minutes } = this.convertTimestampToTimeString(beforeTimestamp);
|
|
285
|
+
this.formGroup.patchValue({ beforeTime: `${hours}:${minutes}` }, { emitEvent: false });
|
|
286
|
+
}
|
|
287
|
+
if (!!afterTimestamp) {
|
|
288
|
+
const { hours, minutes } = this.convertTimestampToTimeString(afterTimestamp);
|
|
289
|
+
this.formGroup.patchValue({ afterTime: `${hours}:${minutes}` }, { emitEvent: false });
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
convertTimestampToTimeString(timestamp) {
|
|
293
|
+
const date = new Date(timestamp);
|
|
294
|
+
return {
|
|
295
|
+
hours: `0${date.getHours()}`.slice(-2),
|
|
296
|
+
minutes: `0${date.getMinutes()}`.slice(-2),
|
|
297
|
+
};
|
|
298
|
+
}
|
|
279
299
|
mapFormValueToLogSearch() {
|
|
280
300
|
const formValue = this.formGroup.getRawValue();
|
|
281
301
|
const properties = formValue.properties.filter((property) => !!property.key && !!property.value);
|
|
@@ -284,8 +304,12 @@ class LogSearchComponent {
|
|
|
284
304
|
likeFormattedMessage: formValue.likeFormattedMessage,
|
|
285
305
|
}),
|
|
286
306
|
...(!!formValue.level?.content && { level: formValue.level.content }),
|
|
287
|
-
...(!!formValue.afterTimestamp && {
|
|
288
|
-
|
|
307
|
+
...(!!formValue.afterTimestamp && {
|
|
308
|
+
afterTimestamp: this.mapTimeStamps(formValue.afterTimestamp, formValue.afterTime),
|
|
309
|
+
}),
|
|
310
|
+
...(!!formValue.beforeTimestamp && {
|
|
311
|
+
beforeTimestamp: this.mapTimeStamps(formValue.beforeTimestamp, formValue.beforeTime),
|
|
312
|
+
}),
|
|
289
313
|
...(!!properties.length && { properties }),
|
|
290
314
|
};
|
|
291
315
|
}
|
|
@@ -305,14 +329,23 @@ class LogSearchComponent {
|
|
|
305
329
|
...(searchRequest.properties && { properties: searchRequest.properties }),
|
|
306
330
|
};
|
|
307
331
|
}
|
|
332
|
+
mapTimeStamps(date, time) {
|
|
333
|
+
if (!time)
|
|
334
|
+
return date;
|
|
335
|
+
const timeValue = time.split(':');
|
|
336
|
+
const dateObject = new Date(date);
|
|
337
|
+
dateObject.setHours(+timeValue[0], +timeValue[1]);
|
|
338
|
+
return flatpickr.formatDate(dateObject, 'Z');
|
|
339
|
+
}
|
|
308
340
|
setInitialForm() {
|
|
309
341
|
const mappedFormValue = this.mapSearchRequestToFormValue(this.initSearchRequest);
|
|
310
342
|
this.initLogItems(mappedFormValue);
|
|
311
343
|
this.initPropertiesForm(mappedFormValue);
|
|
344
|
+
this.initTimeForm(mappedFormValue);
|
|
312
345
|
this.formGroup.patchValue(mappedFormValue, { emitEvent: false });
|
|
313
346
|
}
|
|
314
347
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LogSearchComponent, deps: [{ token: i1$1.CdsThemeService }, { token: i2$1.FormBuilder }, { token: i3.IconService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
315
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: LogSearchComponent, isStandalone: true, selector: "valtimo-log-search", inputs: { initSearchRequest: "initSearchRequest" }, outputs: { searchSubmitEvent: "searchSubmitEvent" }, viewQueries: [{ propertyName: "_afterTimestampDatePicker", first: true, predicate: ["afterTimestamp"], descendants: true }, { propertyName: "_beforeTimestampDatePicker", first: true, predicate: ["beforeTimestamp"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<form\n *ngIf=\"theme$ | async as theme\"\n class=\"valtimo-log-search\"\n [formGroup]=\"formGroup\"\n (click)=\"$event.stopImmediatePropagation()\"\n>\n <section class=\"valtimo-log-search__fields\">\n <cds-text-label>\n {{ 'logging.columns.formattedMessage' | translate }}\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"theme\"\n formControlName=\"likeFormattedMessage\"\n [placeholder]=\"'logging.columns.formattedMessage' | translate\"\n />\n </cds-text-label>\n\n <cds-dropdown\n formControlName=\"level\"\n [attr.data-carbon-theme]=\"theme\"\n [appendInline]=\"true\"\n [label]=\"'logging.columns.level' | translate\"\n [placeholder]=\"'logging.columns.level' | translate\"\n >\n <cds-dropdown-list [items]=\"logLevelItems\"></cds-dropdown-list>\n </cds-dropdown>\n\n <div class=\"valtimo-log-search__timestamp\">\n <cds-date-picker\n
|
|
348
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: LogSearchComponent, isStandalone: true, selector: "valtimo-log-search", inputs: { initSearchRequest: "initSearchRequest" }, outputs: { searchSubmitEvent: "searchSubmitEvent" }, viewQueries: [{ propertyName: "_afterTimestampDatePicker", first: true, predicate: ["afterTimestamp"], descendants: true }, { propertyName: "_beforeTimestampDatePicker", first: true, predicate: ["beforeTimestamp"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<form\n *ngIf=\"theme$ | async as theme\"\n class=\"valtimo-log-search\"\n [formGroup]=\"formGroup\"\n (click)=\"$event.stopImmediatePropagation()\"\n>\n <section class=\"valtimo-log-search__fields\">\n <cds-text-label class=\"valtimo-log-search__message\">\n {{ 'logging.columns.formattedMessage' | translate }}\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"theme\"\n formControlName=\"likeFormattedMessage\"\n [placeholder]=\"'logging.columns.formattedMessage' | translate\"\n />\n </cds-text-label>\n\n <cds-dropdown\n class=\"valtimo-log-search__level\"\n formControlName=\"level\"\n [attr.data-carbon-theme]=\"theme\"\n [appendInline]=\"true\"\n [label]=\"'logging.columns.level' | translate\"\n [placeholder]=\"'logging.columns.level' | translate\"\n >\n <cds-dropdown-list [items]=\"logLevelItems\"></cds-dropdown-list>\n </cds-dropdown>\n\n <div class=\"valtimo-log-search__timestamp\">\n <div class=\"valtimo-log-search__datetime\">\n <cds-date-picker\n #afterTimestamp\n [attr.data-carbon-theme]=\"theme\"\n [label]=\"'logging.search.afterTimestamp' | translate\"\n placeholder=\"DD-MM-YYYY\"\n [dateFormat]=\"'d-m-Y'\"\n (valueChange)=\"onDateSelected('afterTimestamp', $event)\"\n ></cds-date-picker>\n\n <cds-timepicker [attr.data-carbon-theme]=\"theme\" formControlName=\"afterTime\">\n </cds-timepicker>\n </div>\n\n <div class=\"valtimo-log-search__datetime\">\n <cds-date-picker\n #beforeTimestamp\n [attr.data-carbon-theme]=\"theme\"\n [label]=\"'logging.search.beforeTimestamp' | translate\"\n placeholder=\"DD-MM-YYYY\"\n [dateFormat]=\"'d-m-Y'\"\n (valueChange)=\"onDateSelected('beforeTimestamp', $event)\"\n ></cds-date-picker>\n\n <cds-timepicker [attr.data-carbon-theme]=\"theme\" formControlName=\"beforeTime\">\n </cds-timepicker>\n </div>\n </div>\n </section>\n\n <section formArrayName=\"properties\" class=\"valtimo-log-search__properties\">\n <span class=\"valtimo-log-search__label\"> {{ 'logging.search.properties' | translate }} </span>\n\n @for (propertyGroup of propertiesArray.controls; track $index) {\n <form [formGroup]=\"propertyGroup\" class=\"valtimo-log-search__property\">\n <cds-text-label>\n <input\n cdsText\n [attr.data-carbon-theme]=\"theme\"\n formControlName=\"key\"\n [placeholder]=\"'interface.key' | translate\"\n />\n </cds-text-label>\n\n <cds-text-label>\n <input\n cdsText\n [attr.data-carbon-theme]=\"theme\"\n formControlName=\"value\"\n [placeholder]=\"'interface.value' | translate\"\n />\n </cds-text-label>\n\n <button\n cdsButton=\"danger--ghost\"\n [disabled]=\"$count === 1\"\n iconOnly=\"true\"\n type=\"button\"\n (click)=\"removePropertySearchField($index)\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </form>\n }\n\n <button cdsButton=\"primary\" size=\"sm\" type=\"button\" (click)=\"addPropertySearchField()\">\n {{ 'logging.search.addProperty' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </section>\n\n <button cdsButton=\"tertiary\" type=\"button\" (click)=\"onClearFilter()\">\n {{ 'interface.clear' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n</form>\n", styles: [".valtimo-log-search{flex-direction:column;padding:16px;max-width:880px}.valtimo-log-search,.valtimo-log-search__property,.valtimo-log-search__timestamp,.valtimo-log-search__datetime{display:flex;gap:16px}.valtimo-log-search__message{grid-area:message}.valtimo-log-search__level{grid-area:level}.valtimo-log-search__fields{display:grid;gap:16px;grid-template-columns:repeat(2,1fr);grid-template-areas:\"message timestamp\" \"level timestamp\"}.valtimo-log-search__timestamp{grid-area:timestamp;flex-direction:column}.valtimo-log-search__datetime{align-items:flex-end}.valtimo-log-search__properties{display:flex;flex-direction:column}.valtimo-log-search__properties>*:not(:last-child):not(.valtimo-log-search__label){margin-bottom:16px}.valtimo-log-search__property{align-items:flex-end}.valtimo-log-search__label{font-size:var(--cds-label-01-font-size);color:var(--cds-text-secondary)}.valtimo-log-search ::ng-deep .cds--date-picker.cds--date-picker--single .cds--date-picker__input{inline-size:unset!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i3.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "hideLabel", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i3.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i3.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i3.TextInputLabelComponent, selector: "cds-text-label, ibm-text-label", inputs: ["labelInputID", "disabled", "skeleton", "labelTemplate", "textInputTemplate", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i3.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2$1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: DatePickerModule }, { kind: "component", type: i3.DatePicker, selector: "cds-date-picker, ibm-date-picker", inputs: ["range", "dateFormat", "language", "label", "helperText", "rangeHelperText", "rangeLabel", "placeholder", "ariaLabel", "inputPattern", "id", "value", "theme", "disabled", "invalid", "invalidText", "warn", "warnText", "size", "rangeInvalid", "rangeInvalidText", "rangeWarn", "rangeWarnText", "skeleton", "plugins", "flatpickrOptions"], outputs: ["valueChange", "onClose"] }, { kind: "ngmodule", type: TimePickerModule }, { kind: "component", type: i3.TimePicker, selector: "cds-timepicker, ibm-timepicker", inputs: ["invalid", "invalidText", "label", "hideLabel", "placeholder", "pattern", "id", "disabled", "value", "maxLength", "skeleton", "theme", "size"], outputs: ["valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
316
349
|
}
|
|
317
350
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LogSearchComponent, decorators: [{
|
|
318
351
|
type: Component,
|
|
@@ -324,8 +357,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
324
357
|
IconModule,
|
|
325
358
|
InputModule,
|
|
326
359
|
ReactiveFormsModule,
|
|
360
|
+
FormsModule,
|
|
327
361
|
DatePickerModule,
|
|
328
|
-
|
|
362
|
+
TimePickerModule,
|
|
363
|
+
], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<form\n *ngIf=\"theme$ | async as theme\"\n class=\"valtimo-log-search\"\n [formGroup]=\"formGroup\"\n (click)=\"$event.stopImmediatePropagation()\"\n>\n <section class=\"valtimo-log-search__fields\">\n <cds-text-label class=\"valtimo-log-search__message\">\n {{ 'logging.columns.formattedMessage' | translate }}\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"theme\"\n formControlName=\"likeFormattedMessage\"\n [placeholder]=\"'logging.columns.formattedMessage' | translate\"\n />\n </cds-text-label>\n\n <cds-dropdown\n class=\"valtimo-log-search__level\"\n formControlName=\"level\"\n [attr.data-carbon-theme]=\"theme\"\n [appendInline]=\"true\"\n [label]=\"'logging.columns.level' | translate\"\n [placeholder]=\"'logging.columns.level' | translate\"\n >\n <cds-dropdown-list [items]=\"logLevelItems\"></cds-dropdown-list>\n </cds-dropdown>\n\n <div class=\"valtimo-log-search__timestamp\">\n <div class=\"valtimo-log-search__datetime\">\n <cds-date-picker\n #afterTimestamp\n [attr.data-carbon-theme]=\"theme\"\n [label]=\"'logging.search.afterTimestamp' | translate\"\n placeholder=\"DD-MM-YYYY\"\n [dateFormat]=\"'d-m-Y'\"\n (valueChange)=\"onDateSelected('afterTimestamp', $event)\"\n ></cds-date-picker>\n\n <cds-timepicker [attr.data-carbon-theme]=\"theme\" formControlName=\"afterTime\">\n </cds-timepicker>\n </div>\n\n <div class=\"valtimo-log-search__datetime\">\n <cds-date-picker\n #beforeTimestamp\n [attr.data-carbon-theme]=\"theme\"\n [label]=\"'logging.search.beforeTimestamp' | translate\"\n placeholder=\"DD-MM-YYYY\"\n [dateFormat]=\"'d-m-Y'\"\n (valueChange)=\"onDateSelected('beforeTimestamp', $event)\"\n ></cds-date-picker>\n\n <cds-timepicker [attr.data-carbon-theme]=\"theme\" formControlName=\"beforeTime\">\n </cds-timepicker>\n </div>\n </div>\n </section>\n\n <section formArrayName=\"properties\" class=\"valtimo-log-search__properties\">\n <span class=\"valtimo-log-search__label\"> {{ 'logging.search.properties' | translate }} </span>\n\n @for (propertyGroup of propertiesArray.controls; track $index) {\n <form [formGroup]=\"propertyGroup\" class=\"valtimo-log-search__property\">\n <cds-text-label>\n <input\n cdsText\n [attr.data-carbon-theme]=\"theme\"\n formControlName=\"key\"\n [placeholder]=\"'interface.key' | translate\"\n />\n </cds-text-label>\n\n <cds-text-label>\n <input\n cdsText\n [attr.data-carbon-theme]=\"theme\"\n formControlName=\"value\"\n [placeholder]=\"'interface.value' | translate\"\n />\n </cds-text-label>\n\n <button\n cdsButton=\"danger--ghost\"\n [disabled]=\"$count === 1\"\n iconOnly=\"true\"\n type=\"button\"\n (click)=\"removePropertySearchField($index)\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </form>\n }\n\n <button cdsButton=\"primary\" size=\"sm\" type=\"button\" (click)=\"addPropertySearchField()\">\n {{ 'logging.search.addProperty' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </section>\n\n <button cdsButton=\"tertiary\" type=\"button\" (click)=\"onClearFilter()\">\n {{ 'interface.clear' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n</form>\n", styles: [".valtimo-log-search{flex-direction:column;padding:16px;max-width:880px}.valtimo-log-search,.valtimo-log-search__property,.valtimo-log-search__timestamp,.valtimo-log-search__datetime{display:flex;gap:16px}.valtimo-log-search__message{grid-area:message}.valtimo-log-search__level{grid-area:level}.valtimo-log-search__fields{display:grid;gap:16px;grid-template-columns:repeat(2,1fr);grid-template-areas:\"message timestamp\" \"level timestamp\"}.valtimo-log-search__timestamp{grid-area:timestamp;flex-direction:column}.valtimo-log-search__datetime{align-items:flex-end}.valtimo-log-search__properties{display:flex;flex-direction:column}.valtimo-log-search__properties>*:not(:last-child):not(.valtimo-log-search__label){margin-bottom:16px}.valtimo-log-search__property{align-items:flex-end}.valtimo-log-search__label{font-size:var(--cds-label-01-font-size);color:var(--cds-text-secondary)}.valtimo-log-search ::ng-deep .cds--date-picker.cds--date-picker--single .cds--date-picker__input{inline-size:unset!important}\n"] }]
|
|
329
364
|
}], ctorParameters: () => [{ type: i1$1.CdsThemeService }, { type: i2$1.FormBuilder }, { type: i3.IconService }], propDecorators: { _afterTimestampDatePicker: [{
|
|
330
365
|
type: ViewChild,
|
|
331
366
|
args: ['afterTimestamp']
|
|
@@ -383,6 +418,7 @@ class LoggingListComponent {
|
|
|
383
418
|
this.loading$.next(false);
|
|
384
419
|
}));
|
|
385
420
|
this.searchRequest$ = new BehaviorSubject({});
|
|
421
|
+
this.isSearchActive$ = this.searchRequest$.pipe(map((searchRequest) => Object.keys(searchRequest).length > 0));
|
|
386
422
|
this.pagination$ = new BehaviorSubject(DEFAULT_PAGINATION);
|
|
387
423
|
this.logDetailsOpen$ = new BehaviorSubject(false);
|
|
388
424
|
this.selectedLogEvent$ = new BehaviorSubject(null);
|
|
@@ -432,7 +468,7 @@ class LoggingListComponent {
|
|
|
432
468
|
this.pagination$.next({ ...this.pagination$.getValue(), size, ...(resetPage && { page: 1 }) });
|
|
433
469
|
}
|
|
434
470
|
onRowClickedEvent(rowClickEvent) {
|
|
435
|
-
const { ctrlClick:
|
|
471
|
+
const { ctrlClick: _1, tags: _2, ...logEvent } = rowClickEvent;
|
|
436
472
|
this.logDetailsOpen$.next(true);
|
|
437
473
|
this.selectedLogEvent$.next(logEvent);
|
|
438
474
|
}
|
|
@@ -495,7 +531,7 @@ class LoggingListComponent {
|
|
|
495
531
|
});
|
|
496
532
|
}
|
|
497
533
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LoggingListComponent, deps: [{ token: i1$2.ActivatedRoute }, { token: i3.IconService }, { token: LoggingApiService }, { token: i1$2.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
498
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: LoggingListComponent, isStandalone: true, selector: "ng-component", providers: [LoggingApiService], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-carbon-list\n *ngIf=\"logItems$ | async as
|
|
534
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: LoggingListComponent, isStandalone: true, selector: "ng-component", providers: [LoggingApiService], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-carbon-list\n *ngIf=\"{logItems: logItems$ | async, isSearchActive: isSearchActive$ | async} as obs\"\n [items]=\"obs.logItems\"\n [fields]=\"FIELDS\"\n [loading]=\"loading$ | async\"\n [pagination]=\"pagination$ | async\"\n paginationIdentifier=\"logging\"\n (paginationClicked)=\"onPaginationClicked($event, obs.logItems)\"\n (paginationSet)=\"onPaginationSet($event)\"\n (rowClicked)=\"onRowClickedEvent($event)\"\n>\n <valtimo-no-results\n [action]=\"obs.isSearchActive ? clearSearchButton : null\"\n [description]=\"\n 'logging.noResults.' + (obs.isSearchActive ? 'searchDescription' : 'description') | translate\n \"\n [title]=\"'logging.noResults.title' | translate\"\n ></valtimo-no-results>\n\n <button\n carbonToolbarContent\n [cdsOverflowMenu]=\"logSearch\"\n [customPane]=\"true\"\n [iconOnly]=\"true\"\n [flip]=\"true\"\n [offset]=\"{x: 0, y: 47}\"\n cdsButton=\"ghost\"\n placement=\"bottom\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"filter\" size=\"16\"></svg>\n </button>\n</valtimo-carbon-list>\n\n<valtimo-log-details\n [open]=\"logDetailsOpen$ | async\"\n [logEvent]=\"selectedLogEvent$ | async\"\n (closeModalEvent)=\"onCloseModalEvent()\"\n></valtimo-log-details>\n\n<ng-template #logSearch>\n <valtimo-log-search\n [initSearchRequest]=\"searchRequest$ | async\"\n (searchSubmitEvent)=\"onSearchSubmitEvent($event)\"\n ></valtimo-log-search>\n</ng-template>\n\n<ng-template #clearSearchButton>\n <button cdsButton=\"primary\" (click)=\"onClearFilter()\">\n {{ 'interface.clear' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n</ng-template>\n", styles: ["::ng-deep .cds--overflow-menu-options.cds--overflow-menu-options--open{max-width:max-content!important;width:max-content!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i1$1.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "actions", "actionItems", "header", "hideColumnHeader", "initialSortState", "sortState", "isSearchable", "enableSingleSelection", "lastColumnTemplate", "paginationIdentifier", "showSelectionColumn", "striped", "hideToolbar", "lockedTooltipTranslationKey", "movingRowsEnabled", "dragAndDrop", "dragAndDropDisabled"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged", "moveRow", "itemsReordered"] }, { kind: "component", type: i1$1.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "ngmodule", type: DialogModule }, { kind: "directive", type: i3.OverflowMenuDirective, selector: "[cdsOverflowMenu], [ibmOverflowMenu]", inputs: ["ibmOverflowMenu", "cdsOverflowMenu", "flip", "offset", "wrapperClass", "customPane"], exportAs: ["overflowMenu"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i3.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: LogDetailsComponent, selector: "valtimo-log-details", inputs: ["open", "logEvent"], outputs: ["closeModalEvent"] }, { kind: "component", type: LogSearchComponent, selector: "valtimo-log-search", inputs: ["initSearchRequest"], outputs: ["searchSubmitEvent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
499
535
|
}
|
|
500
536
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LoggingListComponent, decorators: [{
|
|
501
537
|
type: Component,
|
|
@@ -509,7 +545,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
509
545
|
IconModule,
|
|
510
546
|
LogDetailsComponent,
|
|
511
547
|
LogSearchComponent,
|
|
512
|
-
], providers: [LoggingApiService], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-carbon-list\n *ngIf=\"logItems$ | async as
|
|
548
|
+
], providers: [LoggingApiService], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-carbon-list\n *ngIf=\"{logItems: logItems$ | async, isSearchActive: isSearchActive$ | async} as obs\"\n [items]=\"obs.logItems\"\n [fields]=\"FIELDS\"\n [loading]=\"loading$ | async\"\n [pagination]=\"pagination$ | async\"\n paginationIdentifier=\"logging\"\n (paginationClicked)=\"onPaginationClicked($event, obs.logItems)\"\n (paginationSet)=\"onPaginationSet($event)\"\n (rowClicked)=\"onRowClickedEvent($event)\"\n>\n <valtimo-no-results\n [action]=\"obs.isSearchActive ? clearSearchButton : null\"\n [description]=\"\n 'logging.noResults.' + (obs.isSearchActive ? 'searchDescription' : 'description') | translate\n \"\n [title]=\"'logging.noResults.title' | translate\"\n ></valtimo-no-results>\n\n <button\n carbonToolbarContent\n [cdsOverflowMenu]=\"logSearch\"\n [customPane]=\"true\"\n [iconOnly]=\"true\"\n [flip]=\"true\"\n [offset]=\"{x: 0, y: 47}\"\n cdsButton=\"ghost\"\n placement=\"bottom\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"filter\" size=\"16\"></svg>\n </button>\n</valtimo-carbon-list>\n\n<valtimo-log-details\n [open]=\"logDetailsOpen$ | async\"\n [logEvent]=\"selectedLogEvent$ | async\"\n (closeModalEvent)=\"onCloseModalEvent()\"\n></valtimo-log-details>\n\n<ng-template #logSearch>\n <valtimo-log-search\n [initSearchRequest]=\"searchRequest$ | async\"\n (searchSubmitEvent)=\"onSearchSubmitEvent($event)\"\n ></valtimo-log-search>\n</ng-template>\n\n<ng-template #clearSearchButton>\n <button cdsButton=\"primary\" (click)=\"onClearFilter()\">\n {{ 'interface.clear' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n</ng-template>\n", styles: ["::ng-deep .cds--overflow-menu-options.cds--overflow-menu-options--open{max-width:max-content!important;width:max-content!important}\n"] }]
|
|
513
549
|
}], ctorParameters: () => [{ type: i1$2.ActivatedRoute }, { type: i3.IconService }, { type: LoggingApiService }, { type: i1$2.Router }] });
|
|
514
550
|
|
|
515
551
|
/*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valtimo-logging.mjs","sources":["../../../../projects/valtimo/logging/src/lib/models/logging.model.ts","../../../../projects/valtimo/logging/src/lib/models/index.ts","../../../../projects/valtimo/logging/src/lib/services/logging-api.service.ts","../../../../projects/valtimo/logging/src/lib/services/index.ts","../../../../projects/valtimo/logging/src/lib/components/log-details/log-details.component.ts","../../../../projects/valtimo/logging/src/lib/components/log-details/log-details.component.html","../../../../projects/valtimo/logging/src/lib/components/log-search/log-search.component.ts","../../../../projects/valtimo/logging/src/lib/components/log-search/log-search.component.html","../../../../projects/valtimo/logging/src/lib/components/logging-list/logging-list.component.ts","../../../../projects/valtimo/logging/src/lib/components/logging-list/logging-list.component.html","../../../../projects/valtimo/logging/src/logging-routing.module.ts","../../../../projects/valtimo/logging/src/logging.module.ts","../../../../projects/valtimo/logging/src/public_api.ts","../../../../projects/valtimo/logging/src/valtimo-logging.ts"],"sourcesContent":["/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface LoggingEvent {\n timestamp: string;\n formattedMessage: string;\n level: string;\n properties: Array<LoggingEventProperty>;\n stacktrace: string;\n}\n\ninterface LoggingEventProperty {\n key: string;\n value: string;\n}\n\ninterface LoggingEventSearchRequest {\n afterTimestamp?: string;\n beforeTimestamp?: string;\n level?: string;\n likeFormattedMessage?: string;\n properties?: Array<LoggingEventProperty>;\n size?: number;\n page?: number;\n}\n\nenum LogLevel {\n DEBUG = 'DEBUG',\n ERROR = 'ERROR',\n INFO = 'INFO',\n TRACE = 'TRACE',\n WARN = 'WARN',\n}\n\nconst LOG_LEVEL_TAG = {\n [LogLevel.DEBUG]: 'teal',\n [LogLevel.ERROR]: 'red',\n [LogLevel.INFO]: 'blue',\n [LogLevel.TRACE]: 'grey',\n [LogLevel.WARN]: 'purple',\n};\n\nconst LOG_ELLIPSIS_LIMIT = 128;\n\nexport {\n LOG_ELLIPSIS_LIMIT,\n LOG_LEVEL_TAG,\n LoggingEvent,\n LoggingEventProperty,\n LoggingEventSearchRequest,\n LogLevel,\n};\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './logging.model';\nexport * from './search.model';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {HttpClient, HttpParams} from '@angular/common/http';\nimport {Injectable} from '@angular/core';\nimport {ConfigService, Page, BaseApiService} from '@valtimo/config';\nimport {Observable} from 'rxjs';\nimport {LoggingEvent, LoggingEventSearchRequest} from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LoggingApiService extends BaseApiService {\n constructor(\n protected readonly configService: ConfigService,\n protected readonly httpClient: HttpClient\n ) {\n super(httpClient, configService);\n }\n\n public getTechnicalLogs(\n searchRequest: LoggingEventSearchRequest\n ): Observable<Page<LoggingEvent>> {\n const {size, page, ...searchBody} = searchRequest;\n const params = new HttpParams({\n fromObject: {size, page} as any,\n });\n\n return this.httpClient.post<Page<LoggingEvent>>(\n this.getApiUrl('management/v1/logging'),\n searchBody,\n {\n params,\n }\n );\n }\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './logging-api.service';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, EventEmitter, Input, Output} from '@angular/core';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {ModalModule} from 'carbon-components-angular';\nimport {NgxJsonViewerModule} from 'ngx-json-viewer';\nimport {LoggingEvent} from '../../models';\n\n@Component({\n selector: 'valtimo-log-details',\n templateUrl: './log-details.component.html',\n styleUrl: './log-details.component.scss',\n standalone: true,\n imports: [CommonModule, TranslateModule, ModalModule, NgxJsonViewerModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LogDetailsComponent {\n @Input() public open = false;\n @Input() public logEvent: LoggingEvent | null;\n\n @Output() public readonly closeModalEvent = new EventEmitter();\n\n public onCloseSelect(): void {\n this.closeModalEvent.emit();\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal [open]=\"open\" size=\"lg\">\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCloseSelect()\">\n {{ 'logging.detailsTitle' | translate }}\n </cds-modal-header>\n\n <section cdsModalContent class=\"valtimo-log-details__content\">\n <ngx-json-viewer *ngIf=\"logEvent\" [json]=\"logEvent\"></ngx-json-viewer>\n </section>\n</cds-modal>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {FormArray, FormBuilder, ReactiveFormsModule} from '@angular/forms';\nimport {TrashCan16} from '@carbon/icons';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {CARBON_THEME, CdsThemeService, CurrentCarbonTheme} from '@valtimo/components';\nimport {\n ButtonModule,\n DatePicker,\n DatePickerModule,\n DropdownModule,\n IconModule,\n IconService,\n InputModule,\n ListItem,\n} from 'carbon-components-angular';\nimport flatpickr from 'flatpickr';\nimport {debounceTime, interval, map, Observable, Subscription} from 'rxjs';\nimport {\n LoggingEventProperty,\n LoggingEventSearchFormValue,\n LoggingEventSearchRequest,\n LogLevel,\n} from '../../models';\n\n@Component({\n selector: 'valtimo-log-search',\n templateUrl: './log-search.component.html',\n styleUrl: './log-search.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n TranslateModule,\n ButtonModule,\n DropdownModule,\n IconModule,\n InputModule,\n ReactiveFormsModule,\n DatePickerModule,\n ],\n})\nexport class LogSearchComponent implements OnInit, AfterViewInit, OnDestroy {\n @ViewChild('afterTimestamp') private readonly _afterTimestampDatePicker: DatePicker;\n @ViewChild('beforeTimestamp') private readonly _beforeTimestampDatePicker: DatePicker;\n\n @Input() public initSearchRequest: LoggingEventSearchRequest;\n @Output() public readonly searchSubmitEvent = new EventEmitter<LoggingEventSearchRequest>();\n\n public readonly theme$: Observable<CARBON_THEME> = this.cdsThemeService.currentTheme$.pipe(\n map((theme: CurrentCarbonTheme) =>\n theme === CurrentCarbonTheme.G10 ? CARBON_THEME.WHITE : CARBON_THEME.G100\n )\n );\n\n public readonly formGroup = this.fb.group({\n likeFormattedMessage: this.fb.control<string>(''),\n level: this.fb.control<ListItem>({content: '', selected: false}),\n beforeTimestamp: this.fb.control<string>(''),\n afterTimestamp: this.fb.control<string>(''),\n properties: this.fb.array([\n this.fb.group({\n key: this.fb.control<string>(''),\n value: this.fb.control<string>(''),\n }),\n ]),\n });\n\n public logLevelItems: Partial<ListItem>[] = [\n {\n content: LogLevel.ERROR,\n },\n {\n content: LogLevel.WARN,\n },\n {\n content: LogLevel.INFO,\n },\n {\n content: LogLevel.DEBUG,\n },\n {\n content: LogLevel.TRACE,\n },\n ];\n\n private readonly _subscriptions = new Subscription();\n\n public get propertiesArray(): FormArray {\n return this.formGroup.get('properties') as FormArray;\n }\n\n constructor(\n private readonly cdsThemeService: CdsThemeService,\n private readonly fb: FormBuilder,\n private readonly iconService: IconService\n ) {\n this.iconService.register(TrashCan16);\n }\n\n public ngOnInit(): void {\n this.setInitialForm();\n\n this._subscriptions.add(\n this.formGroup.valueChanges.pipe(debounceTime(500)).subscribe(() => {\n this.searchSubmitEvent.emit(this.mapFormValueToLogSearch());\n })\n );\n }\n\n public ngAfterViewInit(): void {\n const afterTimestampControlValue = this.formGroup.get('afterTimestamp')?.value;\n const beforeTimestampControlValue = this.formGroup.get('beforeTimestamp')?.value;\n\n if (!!afterTimestampControlValue) {\n this._afterTimestampDatePicker.writeValue([\n flatpickr.formatDate(new Date(afterTimestampControlValue), 'd-m-Y'),\n ]);\n }\n\n if (!!beforeTimestampControlValue) {\n this._beforeTimestampDatePicker.writeValue([\n flatpickr.formatDate(new Date(beforeTimestampControlValue), 'd-m-Y'),\n ]);\n }\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public onClearFilter(): void {\n this.formGroup.reset();\n this._afterTimestampDatePicker.writeValue([]);\n this._beforeTimestampDatePicker.writeValue([]);\n }\n\n public onDateSelected(control: 'afterTimestamp' | 'beforeTimestamp', event: Date[]): void {\n this.formGroup.get(control)?.patchValue(flatpickr.formatDate(event[0], 'Z'));\n }\n\n public addPropertySearchField(): void {\n this.propertiesArray.push(\n this.fb.group({\n key: this.fb.control<string>(''),\n value: this.fb.control<string>(''),\n })\n );\n }\n\n public removePropertySearchField(index: number): void {\n this.propertiesArray.removeAt(index);\n }\n\n private initLogItems(formValue: LoggingEventSearchFormValue): void {\n if (!formValue.level) return;\n\n this.logLevelItems = this.logLevelItems.map((levelItem: Partial<ListItem>) => ({\n ...levelItem,\n selected: formValue.level?.content === levelItem.content,\n }));\n }\n\n private initPropertiesForm(formValue: LoggingEventSearchFormValue): void {\n if (!formValue.properties) return;\n\n for (let i = 1; i < formValue.properties.length; i++) {\n this.addPropertySearchField();\n }\n }\n\n private mapFormValueToLogSearch(): LoggingEventSearchRequest {\n const formValue = this.formGroup.getRawValue();\n const properties = formValue.properties.filter(\n (property: {key: string | null; value: string | null}) => !!property.key && !!property.value\n ) as LoggingEventProperty[];\n\n return {\n ...(!!formValue.likeFormattedMessage && {\n likeFormattedMessage: formValue.likeFormattedMessage,\n }),\n ...(!!formValue.level?.content && {level: formValue.level.content}),\n ...(!!formValue.afterTimestamp && {afterTimestamp: formValue.afterTimestamp}),\n ...(!!formValue.beforeTimestamp && {beforeTimestamp: formValue.beforeTimestamp}),\n ...(!!properties.length && {properties}),\n };\n }\n\n private mapSearchRequestToFormValue(\n searchRequest: LoggingEventSearchRequest\n ): LoggingEventSearchFormValue {\n return {\n ...(searchRequest.likeFormattedMessage && {\n likeFormattedMessage: searchRequest.likeFormattedMessage,\n }),\n ...(searchRequest.level && {\n level: {\n content: searchRequest.level,\n selected: true,\n },\n }),\n ...(searchRequest.afterTimestamp && {afterTimestamp: searchRequest.afterTimestamp}),\n ...(searchRequest.beforeTimestamp && {beforeTimestamp: searchRequest.beforeTimestamp}),\n ...(searchRequest.properties && {properties: searchRequest.properties}),\n };\n }\n\n private setInitialForm(): void {\n const mappedFormValue: LoggingEventSearchFormValue = this.mapSearchRequestToFormValue(\n this.initSearchRequest\n );\n this.initLogItems(mappedFormValue);\n this.initPropertiesForm(mappedFormValue);\n\n this.formGroup.patchValue(mappedFormValue, {emitEvent: false});\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<form\n *ngIf=\"theme$ | async as theme\"\n class=\"valtimo-log-search\"\n [formGroup]=\"formGroup\"\n (click)=\"$event.stopImmediatePropagation()\"\n>\n <section class=\"valtimo-log-search__fields\">\n <cds-text-label>\n {{ 'logging.columns.formattedMessage' | translate }}\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"theme\"\n formControlName=\"likeFormattedMessage\"\n [placeholder]=\"'logging.columns.formattedMessage' | translate\"\n />\n </cds-text-label>\n\n <cds-dropdown\n formControlName=\"level\"\n [attr.data-carbon-theme]=\"theme\"\n [appendInline]=\"true\"\n [label]=\"'logging.columns.level' | translate\"\n [placeholder]=\"'logging.columns.level' | translate\"\n >\n <cds-dropdown-list [items]=\"logLevelItems\"></cds-dropdown-list>\n </cds-dropdown>\n\n <div class=\"valtimo-log-search__timestamp\">\n <cds-date-picker\n #afterTimestamp\n [attr.data-carbon-theme]=\"theme\"\n [label]=\"'logging.search.afterTimestamp' | translate\"\n placeholder=\"DD-MM-YYYY\"\n [dateFormat]=\"'d-m-Y'\"\n (valueChange)=\"onDateSelected('afterTimestamp', $event)\"\n ></cds-date-picker>\n\n <cds-date-picker\n #beforeTimestamp\n [attr.data-carbon-theme]=\"theme\"\n [label]=\"'logging.search.beforeTimestamp' | translate\"\n placeholder=\"DD-MM-YYYY\"\n [dateFormat]=\"'d-m-Y'\"\n (valueChange)=\"onDateSelected('beforeTimestamp', $event)\"\n ></cds-date-picker>\n </div>\n </section>\n\n <section formArrayName=\"properties\" class=\"valtimo-log-search__properties\">\n <span class=\"valtimo-log-search__label\"> {{ 'logging.search.properties' | translate }} </span>\n\n @for (propertyGroup of propertiesArray.controls; track $index) {\n <form [formGroup]=\"propertyGroup\" class=\"valtimo-log-search__property\">\n <cds-text-label>\n <input\n cdsText\n [attr.data-carbon-theme]=\"theme\"\n formControlName=\"key\"\n [placeholder]=\"'interface.key' | translate\"\n />\n </cds-text-label>\n\n <cds-text-label>\n <input\n cdsText\n [attr.data-carbon-theme]=\"theme\"\n formControlName=\"value\"\n [placeholder]=\"'interface.value' | translate\"\n />\n </cds-text-label>\n\n <button\n cdsButton=\"danger--ghost\"\n [disabled]=\"$count === 1\"\n iconOnly=\"true\"\n type=\"button\"\n (click)=\"removePropertySearchField($index)\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </form>\n }\n\n <button cdsButton=\"primary\" size=\"sm\" type=\"button\" (click)=\"addPropertySearchField()\">\n {{ 'logging.search.addProperty' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </section>\n\n <button cdsButton=\"tertiary\" type=\"button\" (click)=\"onClearFilter()\">\n {{ 'interface.clear' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n</form>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, OnDestroy, OnInit} from '@angular/core';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {Filter16, TrashCan16} from '@carbon/icons';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {\n CARBON_CONSTANTS,\n CarbonListItem,\n CarbonListModule,\n ColumnConfig,\n DEFAULT_PAGINATION,\n Pagination,\n ViewType,\n} from '@valtimo/components';\nimport {Page} from '@valtimo/config';\nimport {\n ButtonModule,\n DialogModule,\n DropdownModule,\n IconModule,\n IconService,\n} from 'carbon-components-angular';\nimport {\n BehaviorSubject,\n combineLatest,\n map,\n Observable,\n startWith,\n Subscription,\n switchMap,\n take,\n tap,\n} from 'rxjs';\nimport {\n LOG_ELLIPSIS_LIMIT,\n LOG_LEVEL_TAG,\n LoggingEvent,\n LoggingEventProperty,\n LoggingEventQueryParams,\n LoggingEventSearchRequest,\n} from '../../models';\nimport {LoggingApiService} from '../../services';\nimport {LogDetailsComponent} from '../log-details/log-details.component';\nimport {LogSearchComponent} from '../log-search/log-search.component';\n\n@Component({\n templateUrl: './logging-list.component.html',\n styleUrl: './logging-list.component.scss',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n TranslateModule,\n ButtonModule,\n CarbonListModule,\n DialogModule,\n DropdownModule,\n IconModule,\n LogDetailsComponent,\n LogSearchComponent,\n ],\n providers: [LoggingApiService],\n})\nexport class LoggingListComponent implements OnInit, OnDestroy {\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n public readonly logItems$: Observable<CarbonListItem> = this.activatedRoute.queryParamMap.pipe(\n tap(() => this.loading$.next(true)),\n switchMap(queryParams =>\n this.loggingApiService.getTechnicalLogs({\n ...queryParams['params'],\n ...(!!queryParams['params']?.properties && {\n properties: this.base64ToObject(queryParams['params'].properties),\n }),\n })\n ),\n map((loggingPage: Page<LoggingEvent>) => {\n this.pagination$.next({\n ...this.pagination$.getValue(),\n collectionSize: loggingPage.totalElements,\n });\n\n return loggingPage.content.map((logEvent: LoggingEvent) => ({\n ...logEvent,\n tags: [\n {\n content: logEvent.level,\n type: LOG_LEVEL_TAG[logEvent.level],\n },\n ],\n }));\n }),\n startWith([]),\n tap(() => {\n this.loading$.next(false);\n })\n );\n\n public readonly searchRequest$ = new BehaviorSubject<LoggingEventSearchRequest>({});\n public readonly pagination$ = new BehaviorSubject<Pagination>(DEFAULT_PAGINATION);\n public readonly logDetailsOpen$ = new BehaviorSubject<boolean>(false);\n public readonly selectedLogEvent$ = new BehaviorSubject<LoggingEvent | null>(null);\n\n public readonly FIELDS: ColumnConfig[] = [\n {\n key: 'timestamp',\n label: 'logging.columns.timestamp',\n viewType: ViewType.DATE_TIME,\n },\n {\n key: 'level',\n label: 'logging.columns.level',\n viewType: ViewType.TAGS,\n },\n {\n key: 'formattedMessage',\n label: 'logging.columns.formattedMessage',\n viewType: ViewType.TEXT,\n tooltipCharLimit: LOG_ELLIPSIS_LIMIT,\n },\n ];\n\n private readonly _subscriptions = new Subscription();\n\n constructor(\n private readonly activatedRoute: ActivatedRoute,\n private readonly iconService: IconService,\n private readonly loggingApiService: LoggingApiService,\n private readonly router: Router\n ) {\n this.iconService.registerAll([Filter16, TrashCan16]);\n }\n\n public ngOnInit(): void {\n this.setInitialParams();\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public onCloseModalEvent(): void {\n this.logDetailsOpen$.next(false);\n\n setTimeout(() => {\n this.selectedLogEvent$.next(null);\n }, CARBON_CONSTANTS.modalAnimationMs);\n }\n\n public onPaginationClicked(page: number, logItems: CarbonListItem[]): void {\n const activePagination: Pagination = this.pagination$.getValue();\n const searchRequest: LoggingEventSearchRequest = this.searchRequest$.getValue();\n\n if (!searchRequest.beforeTimestamp && activePagination.page === 1)\n this.searchRequest$.next({...searchRequest, beforeTimestamp: logItems[0].timestamp});\n\n this.pagination$.next({...activePagination, page});\n }\n\n public onPaginationSet(size: number): void {\n const {collectionSize, page} = this.pagination$.getValue();\n const resetPage: boolean = Math.ceil(+collectionSize / size) <= +page && +collectionSize > 0;\n\n this.pagination$.next({...this.pagination$.getValue(), size, ...(resetPage && {page: 1})});\n }\n\n public onRowClickedEvent(rowClickEvent: LoggingEvent & {ctrlClick: boolean}): void {\n const {ctrlClick: _, ...logEvent} = rowClickEvent;\n this.logDetailsOpen$.next(true);\n this.selectedLogEvent$.next(logEvent);\n }\n\n public onSearchSubmitEvent(searchRequest: LoggingEventSearchRequest): void {\n this.searchRequest$.next(searchRequest);\n }\n\n public onClearFilter(): void {\n this.onSearchSubmitEvent({});\n }\n\n private base64ToObject(base64string: string): object {\n return JSON.parse(atob(base64string));\n }\n\n private objectToBase64(jsObject: object): string {\n return btoa(JSON.stringify(jsObject));\n }\n\n private openQueryParamsSubscription(): void {\n this._subscriptions.add(\n combineLatest([this.pagination$, this.searchRequest$]).subscribe(\n ([pagination, searchRequest]) => {\n const {size, page} = pagination;\n\n this.router.navigate(['/logging'], {\n queryParams: {\n size,\n page: page - 1,\n ...{\n ...searchRequest,\n ...(!!searchRequest.properties?.length && {\n properties: this.objectToBase64(searchRequest.properties),\n }),\n },\n },\n });\n }\n )\n );\n }\n\n private mapQueryParamsToSearchRequest(\n queryParams: LoggingEventQueryParams\n ): LoggingEventSearchRequest {\n return {\n ...(!!queryParams.likeFormattedMessage && {\n likeFormattedMessage: queryParams.likeFormattedMessage,\n }),\n ...(!!queryParams.level && {level: queryParams.level}),\n ...(!!queryParams.afterTimestamp && {afterTimestamp: queryParams.afterTimestamp}),\n ...(!!queryParams.beforeTimestamp && {beforeTimestamp: queryParams.beforeTimestamp}),\n ...(!!queryParams.properties && {\n properties: this.base64ToObject(queryParams.properties) as Array<LoggingEventProperty>,\n }),\n };\n }\n\n private setInitialParams(): void {\n this.activatedRoute.queryParamMap\n .pipe(\n take(1),\n map(queryParams => {\n const {size, page, ...searchRequest} = queryParams['params'];\n return {size, page, searchRequest};\n })\n )\n .subscribe(({size, page, searchRequest}) => {\n this.searchRequest$.next(this.mapQueryParamsToSearchRequest(searchRequest));\n this.pagination$.next({\n ...this.pagination$.getValue(),\n size: +size,\n page: +(page ?? 0) + 1,\n });\n\n this.openQueryParamsSubscription();\n });\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-carbon-list\n *ngIf=\"logItems$ | async as logItems\"\n [items]=\"logItems\"\n [fields]=\"FIELDS\"\n [loading]=\"loading$ | async\"\n [pagination]=\"pagination$ | async\"\n paginationIdentifier=\"logging\"\n (paginationClicked)=\"onPaginationClicked($event, logItems)\"\n (paginationSet)=\"onPaginationSet($event)\"\n (rowClicked)=\"onRowClickedEvent($event)\"\n>\n <valtimo-no-results\n [action]=\"clearSearchButton\"\n [description]=\"'logging.noResults.description' | translate\"\n [title]=\"'logging.noResults.title' | translate\"\n ></valtimo-no-results>\n\n <button\n carbonToolbarContent\n [cdsOverflowMenu]=\"logSearch\"\n [customPane]=\"true\"\n [iconOnly]=\"true\"\n [flip]=\"true\"\n [offset]=\"{x: 0, y: 47}\"\n cdsButton=\"ghost\"\n placement=\"bottom\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"filter\" size=\"16\"></svg>\n </button>\n</valtimo-carbon-list>\n\n<valtimo-log-details\n [open]=\"logDetailsOpen$ | async\"\n [logEvent]=\"selectedLogEvent$ | async\"\n (closeModalEvent)=\"onCloseModalEvent()\"\n></valtimo-log-details>\n\n<ng-template #logSearch>\n <valtimo-log-search\n [initSearchRequest]=\"searchRequest$ | async\"\n (searchSubmitEvent)=\"onSearchSubmitEvent($event)\"\n ></valtimo-log-search>\n</ng-template>\n\n<ng-template #clearSearchButton>\n <button cdsButton=\"primary\" (click)=\"onClearFilter()\">\n {{ 'interface.clear' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n</ng-template>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {NgModule} from '@angular/core';\nimport {RouterModule, Routes} from '@angular/router';\nimport {ROLE_ADMIN} from '@valtimo/config';\nimport {AuthGuardService} from '@valtimo/security';\nimport {LoggingListComponent} from './lib/components/logging-list/logging-list.component';\n\nconst routes: Routes = [\n {\n path: 'logging',\n component: LoggingListComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Logging', roles: [ROLE_ADMIN]},\n },\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule],\n})\nexport class LoggingRoutingModule {}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {HttpClient} from '@angular/common/http';\nimport {NgModule} from '@angular/core';\nimport {TranslateLoader, TranslateModule} from '@ngx-translate/core';\nimport {HttpLoaderFactory} from '@valtimo/config';\nimport {LoggingListComponent} from './lib/components/logging-list/logging-list.component';\nimport {LoggingRoutingModule} from './logging-routing.module';\n\n@NgModule({\n imports: [\n CommonModule,\n LoggingRoutingModule,\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: HttpLoaderFactory,\n deps: [HttpClient],\n },\n }),\n LoggingListComponent,\n ],\n})\nexport class LoggingModule {}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Public API Surface of documenten-api\n */\n\nexport * from './logging.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i2","i4","i1","i3.LoggingApiService","i6"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"valtimo-logging.mjs","sources":["../../../../projects/valtimo/logging/src/lib/models/logging.model.ts","../../../../projects/valtimo/logging/src/lib/models/index.ts","../../../../projects/valtimo/logging/src/lib/services/logging-api.service.ts","../../../../projects/valtimo/logging/src/lib/services/index.ts","../../../../projects/valtimo/logging/src/lib/components/log-details/log-details.component.ts","../../../../projects/valtimo/logging/src/lib/components/log-details/log-details.component.html","../../../../projects/valtimo/logging/src/lib/components/log-search/log-search.component.ts","../../../../projects/valtimo/logging/src/lib/components/log-search/log-search.component.html","../../../../projects/valtimo/logging/src/lib/components/logging-list/logging-list.component.ts","../../../../projects/valtimo/logging/src/lib/components/logging-list/logging-list.component.html","../../../../projects/valtimo/logging/src/logging-routing.module.ts","../../../../projects/valtimo/logging/src/logging.module.ts","../../../../projects/valtimo/logging/src/public_api.ts","../../../../projects/valtimo/logging/src/valtimo-logging.ts"],"sourcesContent":["/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface LoggingEvent {\n timestamp: string;\n formattedMessage: string;\n level: string;\n properties: Array<LoggingEventProperty>;\n stacktrace: string;\n}\n\ninterface LoggingEventProperty {\n key: string;\n value: string;\n}\n\ninterface LoggingEventSearchRequest {\n afterTimestamp?: string;\n beforeTimestamp?: string;\n level?: string;\n likeFormattedMessage?: string;\n properties?: Array<LoggingEventProperty>;\n size?: number;\n page?: number;\n}\n\nenum LogLevel {\n DEBUG = 'DEBUG',\n ERROR = 'ERROR',\n INFO = 'INFO',\n TRACE = 'TRACE',\n WARN = 'WARN',\n}\n\nconst LOG_LEVEL_TAG = {\n [LogLevel.DEBUG]: 'teal',\n [LogLevel.ERROR]: 'red',\n [LogLevel.INFO]: 'blue',\n [LogLevel.TRACE]: 'grey',\n [LogLevel.WARN]: 'purple',\n};\n\nconst LOG_ELLIPSIS_LIMIT = 128;\n\nexport {\n LOG_ELLIPSIS_LIMIT,\n LOG_LEVEL_TAG,\n LoggingEvent,\n LoggingEventProperty,\n LoggingEventSearchRequest,\n LogLevel,\n};\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './logging.model';\nexport * from './search.model';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {HttpClient, HttpParams} from '@angular/common/http';\nimport {Injectable} from '@angular/core';\nimport {ConfigService, Page, BaseApiService} from '@valtimo/config';\nimport {Observable} from 'rxjs';\nimport {LoggingEvent, LoggingEventSearchRequest} from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LoggingApiService extends BaseApiService {\n constructor(\n protected readonly configService: ConfigService,\n protected readonly httpClient: HttpClient\n ) {\n super(httpClient, configService);\n }\n\n public getTechnicalLogs(\n searchRequest: LoggingEventSearchRequest\n ): Observable<Page<LoggingEvent>> {\n const {size, page, ...searchBody} = searchRequest;\n const params = new HttpParams({\n fromObject: {size, page} as any,\n });\n\n return this.httpClient.post<Page<LoggingEvent>>(\n this.getApiUrl('management/v1/logging'),\n searchBody,\n {\n params,\n }\n );\n }\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './logging-api.service';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, EventEmitter, Input, Output} from '@angular/core';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {ModalModule} from 'carbon-components-angular';\nimport {NgxJsonViewerModule} from 'ngx-json-viewer';\nimport {LoggingEvent} from '../../models';\n\n@Component({\n selector: 'valtimo-log-details',\n templateUrl: './log-details.component.html',\n styleUrl: './log-details.component.scss',\n standalone: true,\n imports: [CommonModule, TranslateModule, ModalModule, NgxJsonViewerModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LogDetailsComponent {\n @Input() public open = false;\n @Input() public logEvent: LoggingEvent | null;\n\n @Output() public readonly closeModalEvent = new EventEmitter();\n\n public onCloseSelect(): void {\n this.closeModalEvent.emit();\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal [open]=\"open\" size=\"lg\">\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCloseSelect()\">\n {{ 'logging.detailsTitle' | translate }}\n </cds-modal-header>\n\n <section cdsModalContent class=\"valtimo-log-details__content\">\n <ngx-json-viewer *ngIf=\"logEvent\" [json]=\"logEvent\"></ngx-json-viewer>\n </section>\n</cds-modal>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {FormArray, FormBuilder, FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {TrashCan16} from '@carbon/icons';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {CARBON_THEME, CdsThemeService, CurrentCarbonTheme} from '@valtimo/components';\nimport {\n ButtonModule,\n DatePicker,\n DatePickerModule,\n DropdownModule,\n IconModule,\n IconService,\n InputModule,\n ListItem,\n TimePickerModule,\n} from 'carbon-components-angular';\nimport flatpickr from 'flatpickr';\nimport {debounceTime, map, Observable, Subscription} from 'rxjs';\nimport {\n LoggingEventProperty,\n LoggingEventSearchFormValue,\n LoggingEventSearchRequest,\n LogLevel,\n} from '../../models';\n\n@Component({\n selector: 'valtimo-log-search',\n templateUrl: './log-search.component.html',\n styleUrl: './log-search.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n TranslateModule,\n ButtonModule,\n DropdownModule,\n IconModule,\n InputModule,\n ReactiveFormsModule,\n FormsModule,\n DatePickerModule,\n TimePickerModule,\n ],\n})\nexport class LogSearchComponent implements OnInit, AfterViewInit, OnDestroy {\n @ViewChild('afterTimestamp') private readonly _afterTimestampDatePicker: DatePicker;\n @ViewChild('beforeTimestamp') private readonly _beforeTimestampDatePicker: DatePicker;\n\n @Input() public initSearchRequest: LoggingEventSearchRequest;\n @Output() public readonly searchSubmitEvent = new EventEmitter<LoggingEventSearchRequest>();\n\n public readonly theme$: Observable<CARBON_THEME> = this.cdsThemeService.currentTheme$.pipe(\n map((theme: CurrentCarbonTheme) =>\n theme === CurrentCarbonTheme.G10 ? CARBON_THEME.WHITE : CARBON_THEME.G100\n )\n );\n\n public readonly formGroup = this.fb.group({\n likeFormattedMessage: this.fb.control<string>(''),\n level: this.fb.control<ListItem>({content: '', selected: false}),\n beforeTimestamp: this.fb.control<string>(''),\n beforeTime: this.fb.control<string>(''),\n afterTimestamp: this.fb.control<string>(''),\n afterTime: this.fb.control<string>(''),\n properties: this.fb.array([\n this.fb.group({\n key: this.fb.control<string>(''),\n value: this.fb.control<string>(''),\n }),\n ]),\n });\n\n public logLevelItems: Partial<ListItem>[] = [\n {\n content: LogLevel.ERROR,\n },\n {\n content: LogLevel.WARN,\n },\n {\n content: LogLevel.INFO,\n },\n {\n content: LogLevel.DEBUG,\n },\n {\n content: LogLevel.TRACE,\n },\n ];\n\n private readonly _subscriptions = new Subscription();\n\n public get propertiesArray(): FormArray {\n return this.formGroup.get('properties') as FormArray;\n }\n\n constructor(\n private readonly cdsThemeService: CdsThemeService,\n private readonly fb: FormBuilder,\n private readonly iconService: IconService\n ) {\n this.iconService.register(TrashCan16);\n }\n\n public ngOnInit(): void {\n this.setInitialForm();\n\n this._subscriptions.add(\n this.formGroup.valueChanges.pipe(debounceTime(500)).subscribe(() => {\n this.searchSubmitEvent.emit(this.mapFormValueToLogSearch());\n })\n );\n }\n\n public ngAfterViewInit(): void {\n const afterTimestampControlValue = this.formGroup.get('afterTimestamp')?.value;\n const beforeTimestampControlValue = this.formGroup.get('beforeTimestamp')?.value;\n\n if (!!afterTimestampControlValue) {\n this._afterTimestampDatePicker.writeValue([\n flatpickr.formatDate(new Date(afterTimestampControlValue), 'd-m-Y'),\n ]);\n }\n\n if (!!beforeTimestampControlValue) {\n this._beforeTimestampDatePicker.writeValue([\n flatpickr.formatDate(new Date(beforeTimestampControlValue), 'd-m-Y'),\n ]);\n }\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public onClearFilter(): void {\n this.formGroup.reset();\n this._afterTimestampDatePicker.writeValue([]);\n this._beforeTimestampDatePicker.writeValue([]);\n }\n\n public onDateSelected(control: 'afterTimestamp' | 'beforeTimestamp', event: Date[]): void {\n this.formGroup.get(control)?.patchValue(flatpickr.formatDate(event[0], 'Z'));\n }\n\n public addPropertySearchField(): void {\n this.propertiesArray.push(\n this.fb.group({\n key: this.fb.control<string>(''),\n value: this.fb.control<string>(''),\n })\n );\n }\n\n public removePropertySearchField(index: number): void {\n this.propertiesArray.removeAt(index);\n }\n\n private initLogItems(formValue: LoggingEventSearchFormValue): void {\n if (!formValue.level) return;\n\n this.logLevelItems = this.logLevelItems.map((levelItem: Partial<ListItem>) => ({\n ...levelItem,\n selected: formValue.level?.content === levelItem.content,\n }));\n }\n\n private initPropertiesForm(formValue: LoggingEventSearchFormValue): void {\n if (!formValue.properties) return;\n\n for (let i = 1; i < formValue.properties.length; i++) {\n this.addPropertySearchField();\n }\n }\n\n private initTimeForm(formValue: LoggingEventSearchFormValue): void {\n const {beforeTimestamp, afterTimestamp} = formValue;\n\n if (!!beforeTimestamp) {\n const {hours, minutes} = this.convertTimestampToTimeString(beforeTimestamp);\n this.formGroup.patchValue({beforeTime: `${hours}:${minutes}`}, {emitEvent: false});\n }\n\n if (!!afterTimestamp) {\n const {hours, minutes} = this.convertTimestampToTimeString(afterTimestamp);\n this.formGroup.patchValue({afterTime: `${hours}:${minutes}`}, {emitEvent: false});\n }\n }\n\n private convertTimestampToTimeString(timestamp: string): {hours: string; minutes: string} {\n const date = new Date(timestamp);\n return {\n hours: `0${date.getHours()}`.slice(-2),\n minutes: `0${date.getMinutes()}`.slice(-2),\n };\n }\n\n private mapFormValueToLogSearch(): LoggingEventSearchRequest {\n const formValue = this.formGroup.getRawValue();\n const properties = formValue.properties.filter(\n (property: {key: string | null; value: string | null}) => !!property.key && !!property.value\n ) as LoggingEventProperty[];\n\n return {\n ...(!!formValue.likeFormattedMessage && {\n likeFormattedMessage: formValue.likeFormattedMessage,\n }),\n ...(!!formValue.level?.content && {level: formValue.level.content}),\n ...(!!formValue.afterTimestamp && {\n afterTimestamp: this.mapTimeStamps(formValue.afterTimestamp, formValue.afterTime),\n }),\n ...(!!formValue.beforeTimestamp && {\n beforeTimestamp: this.mapTimeStamps(formValue.beforeTimestamp, formValue.beforeTime),\n }),\n ...(!!properties.length && {properties}),\n };\n }\n\n private mapSearchRequestToFormValue(\n searchRequest: LoggingEventSearchRequest\n ): LoggingEventSearchFormValue {\n return {\n ...(searchRequest.likeFormattedMessage && {\n likeFormattedMessage: searchRequest.likeFormattedMessage,\n }),\n ...(searchRequest.level && {\n level: {\n content: searchRequest.level,\n selected: true,\n },\n }),\n ...(searchRequest.afterTimestamp && {afterTimestamp: searchRequest.afterTimestamp}),\n ...(searchRequest.beforeTimestamp && {beforeTimestamp: searchRequest.beforeTimestamp}),\n ...(searchRequest.properties && {properties: searchRequest.properties}),\n };\n }\n\n private mapTimeStamps(date: string, time: string | null): string {\n if (!time) return date;\n\n const timeValue: string[] = time.split(':');\n const dateObject = new Date(date);\n dateObject.setHours(+timeValue[0], +timeValue[1]);\n\n return flatpickr.formatDate(dateObject, 'Z');\n }\n\n private setInitialForm(): void {\n const mappedFormValue: LoggingEventSearchFormValue = this.mapSearchRequestToFormValue(\n this.initSearchRequest\n );\n this.initLogItems(mappedFormValue);\n this.initPropertiesForm(mappedFormValue);\n this.initTimeForm(mappedFormValue);\n\n this.formGroup.patchValue(mappedFormValue, {emitEvent: false});\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<form\n *ngIf=\"theme$ | async as theme\"\n class=\"valtimo-log-search\"\n [formGroup]=\"formGroup\"\n (click)=\"$event.stopImmediatePropagation()\"\n>\n <section class=\"valtimo-log-search__fields\">\n <cds-text-label class=\"valtimo-log-search__message\">\n {{ 'logging.columns.formattedMessage' | translate }}\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"theme\"\n formControlName=\"likeFormattedMessage\"\n [placeholder]=\"'logging.columns.formattedMessage' | translate\"\n />\n </cds-text-label>\n\n <cds-dropdown\n class=\"valtimo-log-search__level\"\n formControlName=\"level\"\n [attr.data-carbon-theme]=\"theme\"\n [appendInline]=\"true\"\n [label]=\"'logging.columns.level' | translate\"\n [placeholder]=\"'logging.columns.level' | translate\"\n >\n <cds-dropdown-list [items]=\"logLevelItems\"></cds-dropdown-list>\n </cds-dropdown>\n\n <div class=\"valtimo-log-search__timestamp\">\n <div class=\"valtimo-log-search__datetime\">\n <cds-date-picker\n #afterTimestamp\n [attr.data-carbon-theme]=\"theme\"\n [label]=\"'logging.search.afterTimestamp' | translate\"\n placeholder=\"DD-MM-YYYY\"\n [dateFormat]=\"'d-m-Y'\"\n (valueChange)=\"onDateSelected('afterTimestamp', $event)\"\n ></cds-date-picker>\n\n <cds-timepicker [attr.data-carbon-theme]=\"theme\" formControlName=\"afterTime\">\n </cds-timepicker>\n </div>\n\n <div class=\"valtimo-log-search__datetime\">\n <cds-date-picker\n #beforeTimestamp\n [attr.data-carbon-theme]=\"theme\"\n [label]=\"'logging.search.beforeTimestamp' | translate\"\n placeholder=\"DD-MM-YYYY\"\n [dateFormat]=\"'d-m-Y'\"\n (valueChange)=\"onDateSelected('beforeTimestamp', $event)\"\n ></cds-date-picker>\n\n <cds-timepicker [attr.data-carbon-theme]=\"theme\" formControlName=\"beforeTime\">\n </cds-timepicker>\n </div>\n </div>\n </section>\n\n <section formArrayName=\"properties\" class=\"valtimo-log-search__properties\">\n <span class=\"valtimo-log-search__label\"> {{ 'logging.search.properties' | translate }} </span>\n\n @for (propertyGroup of propertiesArray.controls; track $index) {\n <form [formGroup]=\"propertyGroup\" class=\"valtimo-log-search__property\">\n <cds-text-label>\n <input\n cdsText\n [attr.data-carbon-theme]=\"theme\"\n formControlName=\"key\"\n [placeholder]=\"'interface.key' | translate\"\n />\n </cds-text-label>\n\n <cds-text-label>\n <input\n cdsText\n [attr.data-carbon-theme]=\"theme\"\n formControlName=\"value\"\n [placeholder]=\"'interface.value' | translate\"\n />\n </cds-text-label>\n\n <button\n cdsButton=\"danger--ghost\"\n [disabled]=\"$count === 1\"\n iconOnly=\"true\"\n type=\"button\"\n (click)=\"removePropertySearchField($index)\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </form>\n }\n\n <button cdsButton=\"primary\" size=\"sm\" type=\"button\" (click)=\"addPropertySearchField()\">\n {{ 'logging.search.addProperty' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </section>\n\n <button cdsButton=\"tertiary\" type=\"button\" (click)=\"onClearFilter()\">\n {{ 'interface.clear' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n</form>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, OnDestroy, OnInit} from '@angular/core';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {Filter16, TrashCan16} from '@carbon/icons';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {\n CARBON_CONSTANTS,\n CarbonListItem,\n CarbonListModule,\n CarbonTag,\n ColumnConfig,\n DEFAULT_PAGINATION,\n Pagination,\n ViewType,\n} from '@valtimo/components';\nimport {Page} from '@valtimo/config';\nimport {\n ButtonModule,\n DialogModule,\n DropdownModule,\n IconModule,\n IconService,\n} from 'carbon-components-angular';\nimport {\n BehaviorSubject,\n combineLatest,\n map,\n Observable,\n startWith,\n Subscription,\n switchMap,\n take,\n tap,\n} from 'rxjs';\nimport {\n LOG_ELLIPSIS_LIMIT,\n LOG_LEVEL_TAG,\n LoggingEvent,\n LoggingEventProperty,\n LoggingEventQueryParams,\n LoggingEventSearchRequest,\n} from '../../models';\nimport {LoggingApiService} from '../../services';\nimport {LogDetailsComponent} from '../log-details/log-details.component';\nimport {LogSearchComponent} from '../log-search/log-search.component';\n\n@Component({\n templateUrl: './logging-list.component.html',\n styleUrl: './logging-list.component.scss',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n TranslateModule,\n ButtonModule,\n CarbonListModule,\n DialogModule,\n DropdownModule,\n IconModule,\n LogDetailsComponent,\n LogSearchComponent,\n ],\n providers: [LoggingApiService],\n})\nexport class LoggingListComponent implements OnInit, OnDestroy {\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n public readonly logItems$: Observable<CarbonListItem> = this.activatedRoute.queryParamMap.pipe(\n tap(() => this.loading$.next(true)),\n switchMap(queryParams =>\n this.loggingApiService.getTechnicalLogs({\n ...queryParams['params'],\n ...(!!queryParams['params']?.properties && {\n properties: this.base64ToObject(queryParams['params'].properties),\n }),\n })\n ),\n map((loggingPage: Page<LoggingEvent>) => {\n this.pagination$.next({\n ...this.pagination$.getValue(),\n collectionSize: loggingPage.totalElements,\n });\n\n return loggingPage.content.map((logEvent: LoggingEvent) => ({\n ...logEvent,\n tags: [\n {\n content: logEvent.level,\n type: LOG_LEVEL_TAG[logEvent.level],\n },\n ],\n }));\n }),\n startWith([]),\n tap(() => {\n this.loading$.next(false);\n })\n );\n\n public readonly searchRequest$ = new BehaviorSubject<LoggingEventSearchRequest>({});\n public readonly isSearchActive$: Observable<boolean> = this.searchRequest$.pipe(\n map((searchRequest: LoggingEventSearchRequest) => Object.keys(searchRequest).length > 0)\n );\n public readonly pagination$ = new BehaviorSubject<Pagination>(DEFAULT_PAGINATION);\n public readonly logDetailsOpen$ = new BehaviorSubject<boolean>(false);\n public readonly selectedLogEvent$ = new BehaviorSubject<LoggingEvent | null>(null);\n\n public readonly FIELDS: ColumnConfig[] = [\n {\n key: 'timestamp',\n label: 'logging.columns.timestamp',\n viewType: ViewType.DATE_TIME,\n },\n {\n key: 'level',\n label: 'logging.columns.level',\n viewType: ViewType.TAGS,\n },\n {\n key: 'formattedMessage',\n label: 'logging.columns.formattedMessage',\n viewType: ViewType.TEXT,\n tooltipCharLimit: LOG_ELLIPSIS_LIMIT,\n },\n ];\n\n private readonly _subscriptions = new Subscription();\n\n constructor(\n private readonly activatedRoute: ActivatedRoute,\n private readonly iconService: IconService,\n private readonly loggingApiService: LoggingApiService,\n private readonly router: Router\n ) {\n this.iconService.registerAll([Filter16, TrashCan16]);\n }\n\n public ngOnInit(): void {\n this.setInitialParams();\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public onCloseModalEvent(): void {\n this.logDetailsOpen$.next(false);\n\n setTimeout(() => {\n this.selectedLogEvent$.next(null);\n }, CARBON_CONSTANTS.modalAnimationMs);\n }\n\n public onPaginationClicked(page: number, logItems: CarbonListItem[]): void {\n const activePagination: Pagination = this.pagination$.getValue();\n const searchRequest: LoggingEventSearchRequest = this.searchRequest$.getValue();\n\n if (!searchRequest.beforeTimestamp && activePagination.page === 1)\n this.searchRequest$.next({...searchRequest, beforeTimestamp: logItems[0].timestamp});\n\n this.pagination$.next({...activePagination, page});\n }\n\n public onPaginationSet(size: number): void {\n const {collectionSize, page} = this.pagination$.getValue();\n const resetPage: boolean = Math.ceil(+collectionSize / size) <= +page && +collectionSize > 0;\n\n this.pagination$.next({...this.pagination$.getValue(), size, ...(resetPage && {page: 1})});\n }\n\n public onRowClickedEvent(\n rowClickEvent: LoggingEvent & {ctrlClick: boolean; tags: CarbonTag[]}\n ): void {\n const {ctrlClick: _1, tags: _2, ...logEvent} = rowClickEvent;\n this.logDetailsOpen$.next(true);\n this.selectedLogEvent$.next(logEvent);\n }\n\n public onSearchSubmitEvent(searchRequest: LoggingEventSearchRequest): void {\n this.searchRequest$.next(searchRequest);\n }\n\n public onClearFilter(): void {\n this.onSearchSubmitEvent({});\n }\n\n private base64ToObject(base64string: string): object {\n return JSON.parse(atob(base64string));\n }\n\n private objectToBase64(jsObject: object): string {\n return btoa(JSON.stringify(jsObject));\n }\n\n private openQueryParamsSubscription(): void {\n this._subscriptions.add(\n combineLatest([this.pagination$, this.searchRequest$]).subscribe(\n ([pagination, searchRequest]) => {\n const {size, page} = pagination;\n\n this.router.navigate(['/logging'], {\n queryParams: {\n size,\n page: page - 1,\n ...{\n ...searchRequest,\n ...(!!searchRequest.properties?.length && {\n properties: this.objectToBase64(searchRequest.properties),\n }),\n },\n },\n });\n }\n )\n );\n }\n\n private mapQueryParamsToSearchRequest(\n queryParams: LoggingEventQueryParams\n ): LoggingEventSearchRequest {\n return {\n ...(!!queryParams.likeFormattedMessage && {\n likeFormattedMessage: queryParams.likeFormattedMessage,\n }),\n ...(!!queryParams.level && {level: queryParams.level}),\n ...(!!queryParams.afterTimestamp && {afterTimestamp: queryParams.afterTimestamp}),\n ...(!!queryParams.beforeTimestamp && {beforeTimestamp: queryParams.beforeTimestamp}),\n ...(!!queryParams.properties && {\n properties: this.base64ToObject(queryParams.properties) as Array<LoggingEventProperty>,\n }),\n };\n }\n\n private setInitialParams(): void {\n this.activatedRoute.queryParamMap\n .pipe(\n take(1),\n map(queryParams => {\n const {size, page, ...searchRequest} = queryParams['params'];\n return {size, page, searchRequest};\n })\n )\n .subscribe(({size, page, searchRequest}) => {\n this.searchRequest$.next(this.mapQueryParamsToSearchRequest(searchRequest));\n this.pagination$.next({\n ...this.pagination$.getValue(),\n size: +size,\n page: +(page ?? 0) + 1,\n });\n\n this.openQueryParamsSubscription();\n });\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-carbon-list\n *ngIf=\"{logItems: logItems$ | async, isSearchActive: isSearchActive$ | async} as obs\"\n [items]=\"obs.logItems\"\n [fields]=\"FIELDS\"\n [loading]=\"loading$ | async\"\n [pagination]=\"pagination$ | async\"\n paginationIdentifier=\"logging\"\n (paginationClicked)=\"onPaginationClicked($event, obs.logItems)\"\n (paginationSet)=\"onPaginationSet($event)\"\n (rowClicked)=\"onRowClickedEvent($event)\"\n>\n <valtimo-no-results\n [action]=\"obs.isSearchActive ? clearSearchButton : null\"\n [description]=\"\n 'logging.noResults.' + (obs.isSearchActive ? 'searchDescription' : 'description') | translate\n \"\n [title]=\"'logging.noResults.title' | translate\"\n ></valtimo-no-results>\n\n <button\n carbonToolbarContent\n [cdsOverflowMenu]=\"logSearch\"\n [customPane]=\"true\"\n [iconOnly]=\"true\"\n [flip]=\"true\"\n [offset]=\"{x: 0, y: 47}\"\n cdsButton=\"ghost\"\n placement=\"bottom\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"filter\" size=\"16\"></svg>\n </button>\n</valtimo-carbon-list>\n\n<valtimo-log-details\n [open]=\"logDetailsOpen$ | async\"\n [logEvent]=\"selectedLogEvent$ | async\"\n (closeModalEvent)=\"onCloseModalEvent()\"\n></valtimo-log-details>\n\n<ng-template #logSearch>\n <valtimo-log-search\n [initSearchRequest]=\"searchRequest$ | async\"\n (searchSubmitEvent)=\"onSearchSubmitEvent($event)\"\n ></valtimo-log-search>\n</ng-template>\n\n<ng-template #clearSearchButton>\n <button cdsButton=\"primary\" (click)=\"onClearFilter()\">\n {{ 'interface.clear' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n</ng-template>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {NgModule} from '@angular/core';\nimport {RouterModule, Routes} from '@angular/router';\nimport {ROLE_ADMIN} from '@valtimo/config';\nimport {AuthGuardService} from '@valtimo/security';\nimport {LoggingListComponent} from './lib/components/logging-list/logging-list.component';\n\nconst routes: Routes = [\n {\n path: 'logging',\n component: LoggingListComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Logging', roles: [ROLE_ADMIN]},\n },\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule],\n})\nexport class LoggingRoutingModule {}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {HttpClient} from '@angular/common/http';\nimport {NgModule} from '@angular/core';\nimport {TranslateLoader, TranslateModule} from '@ngx-translate/core';\nimport {HttpLoaderFactory} from '@valtimo/config';\nimport {LoggingListComponent} from './lib/components/logging-list/logging-list.component';\nimport {LoggingRoutingModule} from './logging-routing.module';\n\n@NgModule({\n imports: [\n CommonModule,\n LoggingRoutingModule,\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: HttpLoaderFactory,\n deps: [HttpClient],\n },\n }),\n LoggingListComponent,\n ],\n})\nexport class LoggingModule {}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Public API Surface of documenten-api\n */\n\nexport * from './logging.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i2","i4","i1","i3.LoggingApiService","i6"],"mappings":"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"}
|
|
@@ -18,7 +18,9 @@ export declare class LogSearchComponent implements OnInit, AfterViewInit, OnDest
|
|
|
18
18
|
likeFormattedMessage: import("@angular/forms").FormControl<string>;
|
|
19
19
|
level: import("@angular/forms").FormControl<ListItem>;
|
|
20
20
|
beforeTimestamp: import("@angular/forms").FormControl<string>;
|
|
21
|
+
beforeTime: import("@angular/forms").FormControl<string>;
|
|
21
22
|
afterTimestamp: import("@angular/forms").FormControl<string>;
|
|
23
|
+
afterTime: import("@angular/forms").FormControl<string>;
|
|
22
24
|
properties: FormArray<import("@angular/forms").FormGroup<{
|
|
23
25
|
key: import("@angular/forms").FormControl<string>;
|
|
24
26
|
value: import("@angular/forms").FormControl<string>;
|
|
@@ -37,8 +39,11 @@ export declare class LogSearchComponent implements OnInit, AfterViewInit, OnDest
|
|
|
37
39
|
removePropertySearchField(index: number): void;
|
|
38
40
|
private initLogItems;
|
|
39
41
|
private initPropertiesForm;
|
|
42
|
+
private initTimeForm;
|
|
43
|
+
private convertTimestampToTimeString;
|
|
40
44
|
private mapFormValueToLogSearch;
|
|
41
45
|
private mapSearchRequestToFormValue;
|
|
46
|
+
private mapTimeStamps;
|
|
42
47
|
private setInitialForm;
|
|
43
48
|
static ɵfac: i0.ɵɵFactoryDeclaration<LogSearchComponent, never>;
|
|
44
49
|
static ɵcmp: i0.ɵɵComponentDeclaration<LogSearchComponent, "valtimo-log-search", never, { "initSearchRequest": { "alias": "initSearchRequest"; "required": false; }; }, { "searchSubmitEvent": "searchSubmitEvent"; }, never, never, true, never>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log-search.component.d.ts","sourceRoot":"","sources":["../../../../../../projects/valtimo/logging/src/lib/components/log-search/log-search.component.ts"],"names":[],"mappings":"AAgBA,OAAO,EACL,aAAa,EAGb,YAAY,EAEZ,SAAS,EACT,MAAM,EAGP,MAAM,eAAe,CAAC;AACvB,OAAO,EAAC,SAAS,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"log-search.component.d.ts","sourceRoot":"","sources":["../../../../../../projects/valtimo/logging/src/lib/components/log-search/log-search.component.ts"],"names":[],"mappings":"AAgBA,OAAO,EACL,aAAa,EAGb,YAAY,EAEZ,SAAS,EACT,MAAM,EAGP,MAAM,eAAe,CAAC;AACvB,OAAO,EAAC,SAAS,EAAE,WAAW,EAAmC,MAAM,gBAAgB,CAAC;AAGxF,OAAO,EAAC,YAAY,EAAE,eAAe,EAAqB,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAML,WAAW,EAEX,QAAQ,EAET,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAoB,UAAU,EAAe,MAAM,MAAM,CAAC;AACjE,OAAO,EAGL,yBAAyB,EAE1B,MAAM,cAAc,CAAC;;AAEtB,qBAmBa,kBAAmB,YAAW,MAAM,EAAE,aAAa,EAAE,SAAS;IAqDvE,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAtDD,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAa;IACtD,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAa;IAEtE,iBAAiB,EAAE,yBAAyB,CAAC;IAC7D,SAA0B,iBAAiB,0CAAiD;IAE5F,SAAgB,MAAM,EAAE,UAAU,CAAC,YAAY,CAAC,CAI9C;IAEF,SAAgB,SAAS;;;;;;;;;;;OAatB;IAEI,aAAa,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAgBvC;IAEF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsB;IAErD,IAAW,eAAe,IAAI,SAAS,CAEtC;gBAGkB,eAAe,EAAE,eAAe,EAChC,EAAE,EAAE,WAAW,EACf,WAAW,EAAE,WAAW;IAKpC,QAAQ,IAAI,IAAI;IAUhB,eAAe,IAAI,IAAI;IAiBvB,WAAW,IAAI,IAAI;IAInB,aAAa,IAAI,IAAI;IAMrB,cAAc,CAAC,OAAO,EAAE,gBAAgB,GAAG,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI;IAIlF,sBAAsB,IAAI,IAAI;IAS9B,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIrD,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,4BAA4B;IAQpC,OAAO,CAAC,uBAAuB;IAqB/B,OAAO,CAAC,2BAA2B;IAmBnC,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,cAAc;yCA3MX,kBAAkB;2CAAlB,kBAAkB;CAqN9B"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { OnDestroy, OnInit } from '@angular/core';
|
|
2
2
|
import { ActivatedRoute, Router } from '@angular/router';
|
|
3
|
-
import { CarbonListItem, ColumnConfig, Pagination } from '@valtimo/components';
|
|
3
|
+
import { CarbonListItem, CarbonTag, ColumnConfig, Pagination } from '@valtimo/components';
|
|
4
4
|
import { IconService } from 'carbon-components-angular';
|
|
5
5
|
import { BehaviorSubject, Observable } from 'rxjs';
|
|
6
6
|
import { LoggingEvent, LoggingEventSearchRequest } from '../../models';
|
|
@@ -14,6 +14,7 @@ export declare class LoggingListComponent implements OnInit, OnDestroy {
|
|
|
14
14
|
readonly loading$: BehaviorSubject<boolean>;
|
|
15
15
|
readonly logItems$: Observable<CarbonListItem>;
|
|
16
16
|
readonly searchRequest$: BehaviorSubject<LoggingEventSearchRequest>;
|
|
17
|
+
readonly isSearchActive$: Observable<boolean>;
|
|
17
18
|
readonly pagination$: BehaviorSubject<Pagination>;
|
|
18
19
|
readonly logDetailsOpen$: BehaviorSubject<boolean>;
|
|
19
20
|
readonly selectedLogEvent$: BehaviorSubject<LoggingEvent>;
|
|
@@ -27,6 +28,7 @@ export declare class LoggingListComponent implements OnInit, OnDestroy {
|
|
|
27
28
|
onPaginationSet(size: number): void;
|
|
28
29
|
onRowClickedEvent(rowClickEvent: LoggingEvent & {
|
|
29
30
|
ctrlClick: boolean;
|
|
31
|
+
tags: CarbonTag[];
|
|
30
32
|
}): void;
|
|
31
33
|
onSearchSubmitEvent(searchRequest: LoggingEventSearchRequest): void;
|
|
32
34
|
onClearFilter(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logging-list.component.d.ts","sourceRoot":"","sources":["../../../../../../projects/valtimo/logging/src/lib/components/logging-list/logging-list.component.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAqC,SAAS,EAAE,MAAM,EAAC,MAAM,eAAe,CAAC;AACpF,OAAO,EAAC,cAAc,EAAE,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAGvD,OAAO,EAEL,cAAc,EAEd,YAAY,EAEZ,UAAU,EAEX,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAKL,WAAW,EACZ,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,eAAe,EAGf,UAAU,EAMX,MAAM,MAAM,CAAC;AACd,OAAO,EAGL,YAAY,EAGZ,yBAAyB,EAC1B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAC,iBAAiB,EAAC,MAAM,gBAAgB,CAAC;;AAIjD,qBAkBa,oBAAqB,YAAW,MAAM,EAAE,SAAS;
|
|
1
|
+
{"version":3,"file":"logging-list.component.d.ts","sourceRoot":"","sources":["../../../../../../projects/valtimo/logging/src/lib/components/logging-list/logging-list.component.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAqC,SAAS,EAAE,MAAM,EAAC,MAAM,eAAe,CAAC;AACpF,OAAO,EAAC,cAAc,EAAE,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAGvD,OAAO,EAEL,cAAc,EAEd,SAAS,EACT,YAAY,EAEZ,UAAU,EAEX,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAKL,WAAW,EACZ,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,eAAe,EAGf,UAAU,EAMX,MAAM,MAAM,CAAC;AACd,OAAO,EAGL,YAAY,EAGZ,yBAAyB,EAC1B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAC,iBAAiB,EAAC,MAAM,gBAAgB,CAAC;;AAIjD,qBAkBa,oBAAqB,YAAW,MAAM,EAAE,SAAS;IAgE1D,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAlEzB,SAAgB,QAAQ,2BAAsC;IAC9D,SAAgB,SAAS,EAAE,UAAU,CAAC,cAAc,CAAC,CA8BnD;IAEF,SAAgB,cAAc,6CAAsD;IACpF,SAAgB,eAAe,EAAE,UAAU,CAAC,OAAO,CAAC,CAElD;IACF,SAAgB,WAAW,8BAAuD;IAClF,SAAgB,eAAe,2BAAuC;IACtE,SAAgB,iBAAiB,gCAAkD;IAEnF,SAAgB,MAAM,EAAE,YAAY,EAAE,CAiBpC;IAEF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsB;gBAGlC,cAAc,EAAE,cAAc,EAC9B,WAAW,EAAE,WAAW,EACxB,iBAAiB,EAAE,iBAAiB,EACpC,MAAM,EAAE,MAAM;IAK1B,QAAQ,IAAI,IAAI;IAIhB,WAAW,IAAI,IAAI;IAInB,iBAAiB,IAAI,IAAI;IAQzB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,IAAI;IAUnE,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAOnC,iBAAiB,CACtB,aAAa,EAAE,YAAY,GAAG;QAAC,SAAS,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,SAAS,EAAE,CAAA;KAAC,GACpE,IAAI;IAMA,mBAAmB,CAAC,aAAa,EAAE,yBAAyB,GAAG,IAAI;IAInE,aAAa,IAAI,IAAI;IAI5B,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,2BAA2B;IAuBnC,OAAO,CAAC,6BAA6B;IAgBrC,OAAO,CAAC,gBAAgB;yCAxKb,oBAAoB;2CAApB,oBAAoB;CA4LhC"}
|