ngx-techlify-core 16.0.5 → 16.1.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.
Files changed (29) hide show
  1. package/esm2022/lib/audit-log/audit-log-list/audit-log-list.component.mjs +112 -47
  2. package/esm2022/lib/audit-log/audit-log-list/audit-log-list.module.mjs +8 -4
  3. package/esm2022/lib/audit-log/audit-log-list-filter/audit-log-list-filter.component.mjs +32 -42
  4. package/esm2022/lib/audit-log/audit-log-list-filter/audit-log-list-filter.module.mjs +7 -3
  5. package/esm2022/lib/audit-log/audit-log.service.mjs +18 -0
  6. package/esm2022/lib/audit-log/audit-logs-view-model/audit-logs-view-model.component.mjs +3 -3
  7. package/esm2022/lib/base-model/techlify-listing-component.class.mjs +58 -3
  8. package/esm2022/lib/change-password/change-password.component.mjs +3 -3
  9. package/esm2022/lib/core/error-handler.interceptor.mjs +30 -17
  10. package/esm2022/lib/entity-files/entity-file-form/entity-file-form.component.mjs +2 -2
  11. package/esm2022/lib/entity-files/entity-file.service.mjs +3 -1
  12. package/esm2022/lib/export-excel/export-excel-button/export-excel-button.component.mjs +4 -4
  13. package/esm2022/lib/login/login.component.mjs +3 -3
  14. package/esm2022/lib/user/current-user.service.mjs +2 -2
  15. package/esm2022/lib/user/user-enable-button-component/user-enable-button.component.mjs +8 -3
  16. package/esm2022/lib/user/user-view.component.mjs +1 -1
  17. package/esm2022/lib/user/users-view-all.component.mjs +47 -44
  18. package/fesm2022/ngx-techlify-core.mjs +356 -213
  19. package/fesm2022/ngx-techlify-core.mjs.map +1 -1
  20. package/lib/audit-log/audit-log-list/audit-log-list.component.d.ts +15 -12
  21. package/lib/audit-log/audit-log-list/audit-log-list.module.d.ts +2 -1
  22. package/lib/audit-log/audit-log-list-filter/audit-log-list-filter.component.d.ts +9 -9
  23. package/lib/audit-log/audit-log-list-filter/audit-log-list-filter.module.d.ts +2 -1
  24. package/lib/audit-log/audit-log.service.d.ts +8 -0
  25. package/lib/base-model/techlify-listing-component.class.d.ts +30 -2
  26. package/lib/core/error-handler.interceptor.d.ts +10 -1
  27. package/lib/user/user-enable-button-component/user-enable-button.component.d.ts +2 -1
  28. package/lib/user/users-view-all.component.d.ts +6 -6
  29. package/package.json +1 -1
@@ -1,66 +1,54 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { Component, Output, EventEmitter, Input } from '@angular/core';
3
- import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
4
- import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
5
- import { DateValidator } from '../../date-validator';
3
+ import { UntilDestroy } from '@ngneat/until-destroy';
4
+ // @ts-ignore
5
+ import moment from 'moment';
6
6
  import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/forms";
8
- import * as i2 from "../../core/form-validator.service";
9
- import * as i3 from "@angular/common";
10
- import * as i4 from "@angular/flex-layout/flex";
11
- import * as i5 from "@angular/material/button";
12
- import * as i6 from "@angular/material/form-field";
13
- import * as i7 from "@angular/material/icon";
14
- import * as i8 from "@angular/material/input";
15
- import * as i9 from "@angular/material/core";
16
- import * as i10 from "@angular/material/select";
17
- import * as i11 from "@angular/material/datepicker";
18
- import * as i12 from "../../searchable-selector/searchable-selector.component";
7
+ import * as i1 from "../../core";
8
+ import * as i2 from "@angular/common";
9
+ import * as i3 from "@angular/forms";
10
+ import * as i4 from "@angular/material/button";
11
+ import * as i5 from "@angular/material/form-field";
12
+ import * as i6 from "@angular/material/icon";
13
+ import * as i7 from "@angular/material/input";
14
+ import * as i8 from "@angular/material/core";
15
+ import * as i9 from "@angular/material/select";
16
+ import * as i10 from "../../searchable-selector/searchable-selector.component";
17
+ import * as i11 from "../../timeline-filter/timeline-filter.component";
19
18
  let AuditLogListFilterComponent = class AuditLogListFilterComponent {
20
- fb;
21
19
  formValidatorService;
22
- auditLogFilterForm;
20
+ filterForm;
23
21
  objectId;
24
22
  objectType;
25
23
  valueChange = new EventEmitter();
26
- constructor(fb, formValidatorService) {
27
- this.fb = fb;
24
+ constructor(formValidatorService) {
28
25
  this.formValidatorService = formValidatorService;
29
- this.createForm();
30
26
  }
31
27
  get showObjectFilter() {
32
28
  return !(this.objectId || this.objectType);
33
29
  }
34
- createForm() {
35
- //TODO: Finialize and add more validations.
36
- this.auditLogFilterForm = this.fb.group({
37
- object_type: [''],
38
- action: [''],
39
- data: [''],
40
- date_to: ['', DateValidator()],
41
- date_from: ['', DateValidator()]
42
- });
43
- }
44
30
  ngOnInit() {
45
- this.auditLogFilterForm.valueChanges.pipe(debounceTime(500), distinctUntilChanged(), untilDestroyed(this)).subscribe((value) => {
46
- value.date_from = value.date_from ? value.date_from.toISOString() : '';
47
- value.date_to = value.date_to ? value.date_to.toISOString() : '';
48
- this.valueChange.emit(value);
31
+ }
32
+ onDurationChange(timelineValue) {
33
+ const { date_to, date_from } = timelineValue;
34
+ this.filterForm.patchValue({
35
+ date_from: date_from ? moment(date_from).format('YYYY-MM-DD') : '',
36
+ date_to: date_to ? moment(date_to).format('YYYY-MM-DD') : ''
49
37
  });
50
38
  }
51
39
  resetFieldValue(field) {
52
- this.auditLogFilterForm.get(field).setValue('');
40
+ this.filterForm.get(field).setValue('');
53
41
  }
54
42
  getFieldValue(field) {
55
- return this.auditLogFilterForm.get(field).value;
43
+ return this.filterForm.get(field).value;
56
44
  }
57
45
  isFieldValid(field) {
58
- return this.formValidatorService.isFieldValid(field, this.auditLogFilterForm, true);
46
+ return this.formValidatorService.isFieldValid(field, this.filterForm, true);
59
47
  }
60
48
  ngOnDestroy() {
61
49
  }
62
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuditLogListFilterComponent, deps: [{ token: i1.UntypedFormBuilder }, { token: i2.FormValidatorService }], target: i0.ɵɵFactoryTarget.Component });
63
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AuditLogListFilterComponent, selector: "app-audit-log-list-filter", inputs: { objectId: "objectId", objectType: "objectType" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<form [formGroup]=\"auditLogFilterForm\" fxLayout=\"row wrap\" fxLayoutGap=\"1rem\" fxLayoutAlign=\"start center\">\n <mat-form-field *ngIf=\"showObjectFilter\">\n <mat-label>Model</mat-label>\n <app-searchable-selector formControlName=\"object_type\" apiUrl=\"api/audit-log-types\" titleField=\"object_type\"\n valueField=\"object_type\" [sort]=\"false\" [enableSearch]=\"false\">\n </app-searchable-selector>\n <button mat-button *ngIf=\"getFieldValue('object_type')\" matSuffix mat-icon-button\n (click)=\"resetFieldValue('object_type')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Action</mat-label>\n <mat-select formControlName=\"action\">\n <mat-option value=\"created\">Created</mat-option>\n <mat-option value=\"updated\">Updated</mat-option>\n <mat-option value=\"deleted\">Deleted</mat-option>\n </mat-select>\n <button mat-button *ngIf=\"getFieldValue('action')\" matSuffix mat-icon-button\n (click)=\"resetFieldValue('action')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n\n <mat-form-field>\n <input matInput formControlName=\"date_from\" [matDatepicker]=\"fromPicker\" (click)=\"fromPicker.open()\"\n placeholder=\"From Date (MM/DD/YYYY)\" />\n <mat-datepicker-toggle matSuffix [for]=\"fromPicker\"></mat-datepicker-toggle>\n <mat-datepicker #fromPicker></mat-datepicker>\n <button mat-button *ngIf=\"getFieldValue('date_from')\" matSuffix mat-icon-button\n (click)=\"resetFieldValue('date_from')\">\n <mat-icon>close</mat-icon>\n </button>\n <mat-error *ngIf=\"isFieldValid('date_from')\">Invalid Date</mat-error>\n </mat-form-field>\n\n <mat-form-field>\n <input matInput formControlName=\"date_to\" [matDatepicker]=\"toPicker\" (click)=\"toPicker.open()\"\n placeholder=\"To Date (MM/DD/YYYY)\" />\n <mat-datepicker-toggle matSuffix [for]=\"\"></mat-datepicker-toggle>\n <mat-datepicker #toPicker></mat-datepicker>\n <button mat-button *ngIf=\"getFieldValue('date_to')\" matSuffix mat-icon-button\n (click)=\"resetFieldValue('date_to')\">\n <mat-icon>close</mat-icon>\n </button>\n <mat-error *ngIf=\"isFieldValid('date_to')\">Invalid Date</mat-error>\n </mat-form-field>\n</form>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i4.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i4.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i6.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i9.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i10.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i11.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i11.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i11.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i12.SearchableSelectorComponent, selector: "app-searchable-selector", inputs: ["valueField", "titleField", "subtitleField", "apiUrl", "multiple", "selectedValue", "enableSearch", "add", "addConfig", "edit", "editConfig", "sort", "sortBy", "searchField", "itemComponent", "items", "apiDataProperty", "cache", "perPage", "inDataSearch", "focusSearchOnOpen", "required", "disabled", "value"], outputs: ["selectedValueChange", "selectionChange", "itemsChange"] }] });
50
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuditLogListFilterComponent, deps: [{ token: i1.FormValidatorService }], target: i0.ɵɵFactoryTarget.Component });
51
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AuditLogListFilterComponent, selector: "app-audit-log-list-filter", inputs: { filterForm: "filterForm", objectId: "objectId", objectType: "objectType" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<form [formGroup]=\"filterForm\" class=\"d-flex justify-content-end align-items-center gap-2 w-100\">\n <app-timeline-filter\n labelText=\"Date\"\n formControlName=\"duration\"\n [dateFrom]=\"filterForm.value?.date_from\"\n [dateTo]=\"filterForm.value?.date_to\"\n (selectionChange)=\"onDurationChange($event)\"\n [showClearButton]=\"true\"\n ></app-timeline-filter>\n\n <mat-form-field>\n <mat-label>Action</mat-label>\n <mat-select formControlName=\"action\" [multiple]=\"true\">\n <mat-option value=\"created\">Created</mat-option>\n <mat-option value=\"updated\">Updated</mat-option>\n <mat-option value=\"deleted\">Deleted</mat-option>\n </mat-select>\n <button *ngIf=\"getFieldValue('action')\" matSuffix mat-icon-button\n (click)=\"resetFieldValue('action')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n\n <mat-form-field *ngIf=\"showObjectFilter\">\n <mat-label>Model Type</mat-label>\n <app-searchable-selector\n formControlName=\"object_type\" apiUrl=\"api/audit-log-types\" titleField=\"object_type\"\n valueField=\"object_type\" [sort]=\"false\" [enableSearch]=\"false\"\n [multiple]=\"true\"\n >\n </app-searchable-selector>\n <button *ngIf=\"getFieldValue('object_type')\" matSuffix mat-icon-button\n (click)=\"resetFieldValue('object_type')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Model #</mat-label>\n <input type=\"text\" matInput formControlName=\"model_search\" />\n <button *ngIf=\"getFieldValue('model_search')\" matSuffix mat-icon-button\n (click)=\"resetFieldValue('model_search')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Creator</mat-label>\n <app-searchable-selector\n formControlName=\"creator_ids\"\n [multiple]=\"true\"\n apiUrl=\"api/users\"\n titleField=\"name\"\n ></app-searchable-selector>\n <button *ngIf=\"getFieldValue('creator_ids')\" matSuffix mat-icon-button\n (click)=\"resetFieldValue('creator_ids')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n\n</form>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i8.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i9.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i10.SearchableSelectorComponent, selector: "app-searchable-selector", inputs: ["valueField", "titleField", "subtitleField", "apiUrl", "multiple", "selectedValue", "enableSearch", "add", "addConfig", "edit", "editConfig", "sort", "sortBy", "searchField", "itemComponent", "items", "apiDataProperty", "cache", "perPage", "inDataSearch", "focusSearchOnOpen", "required", "disabled", "value"], outputs: ["selectedValueChange", "selectionChange", "itemsChange"] }, { kind: "component", type: i11.TimelineFilterComponent, selector: "app-timeline-filter", inputs: ["defaultValue", "required", "disabled", "value", "timelineValue", "timelines", "dateFrom", "dateTo", "appearance", "showClearButton", "form", "labelText", "selectedValue", "touchUi"], outputs: ["selectedValueChange", "selectionChange"] }] });
64
52
  };
65
53
  AuditLogListFilterComponent = __decorate([
66
54
  UntilDestroy()
@@ -68,12 +56,14 @@ AuditLogListFilterComponent = __decorate([
68
56
  export { AuditLogListFilterComponent };
69
57
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuditLogListFilterComponent, decorators: [{
70
58
  type: Component,
71
- args: [{ selector: 'app-audit-log-list-filter', template: "<form [formGroup]=\"auditLogFilterForm\" fxLayout=\"row wrap\" fxLayoutGap=\"1rem\" fxLayoutAlign=\"start center\">\n <mat-form-field *ngIf=\"showObjectFilter\">\n <mat-label>Model</mat-label>\n <app-searchable-selector formControlName=\"object_type\" apiUrl=\"api/audit-log-types\" titleField=\"object_type\"\n valueField=\"object_type\" [sort]=\"false\" [enableSearch]=\"false\">\n </app-searchable-selector>\n <button mat-button *ngIf=\"getFieldValue('object_type')\" matSuffix mat-icon-button\n (click)=\"resetFieldValue('object_type')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Action</mat-label>\n <mat-select formControlName=\"action\">\n <mat-option value=\"created\">Created</mat-option>\n <mat-option value=\"updated\">Updated</mat-option>\n <mat-option value=\"deleted\">Deleted</mat-option>\n </mat-select>\n <button mat-button *ngIf=\"getFieldValue('action')\" matSuffix mat-icon-button\n (click)=\"resetFieldValue('action')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n\n <mat-form-field>\n <input matInput formControlName=\"date_from\" [matDatepicker]=\"fromPicker\" (click)=\"fromPicker.open()\"\n placeholder=\"From Date (MM/DD/YYYY)\" />\n <mat-datepicker-toggle matSuffix [for]=\"fromPicker\"></mat-datepicker-toggle>\n <mat-datepicker #fromPicker></mat-datepicker>\n <button mat-button *ngIf=\"getFieldValue('date_from')\" matSuffix mat-icon-button\n (click)=\"resetFieldValue('date_from')\">\n <mat-icon>close</mat-icon>\n </button>\n <mat-error *ngIf=\"isFieldValid('date_from')\">Invalid Date</mat-error>\n </mat-form-field>\n\n <mat-form-field>\n <input matInput formControlName=\"date_to\" [matDatepicker]=\"toPicker\" (click)=\"toPicker.open()\"\n placeholder=\"To Date (MM/DD/YYYY)\" />\n <mat-datepicker-toggle matSuffix [for]=\"\"></mat-datepicker-toggle>\n <mat-datepicker #toPicker></mat-datepicker>\n <button mat-button *ngIf=\"getFieldValue('date_to')\" matSuffix mat-icon-button\n (click)=\"resetFieldValue('date_to')\">\n <mat-icon>close</mat-icon>\n </button>\n <mat-error *ngIf=\"isFieldValid('date_to')\">Invalid Date</mat-error>\n </mat-form-field>\n</form>" }]
72
- }], ctorParameters: function () { return [{ type: i1.UntypedFormBuilder }, { type: i2.FormValidatorService }]; }, propDecorators: { objectId: [{
59
+ args: [{ selector: 'app-audit-log-list-filter', template: "<form [formGroup]=\"filterForm\" class=\"d-flex justify-content-end align-items-center gap-2 w-100\">\n <app-timeline-filter\n labelText=\"Date\"\n formControlName=\"duration\"\n [dateFrom]=\"filterForm.value?.date_from\"\n [dateTo]=\"filterForm.value?.date_to\"\n (selectionChange)=\"onDurationChange($event)\"\n [showClearButton]=\"true\"\n ></app-timeline-filter>\n\n <mat-form-field>\n <mat-label>Action</mat-label>\n <mat-select formControlName=\"action\" [multiple]=\"true\">\n <mat-option value=\"created\">Created</mat-option>\n <mat-option value=\"updated\">Updated</mat-option>\n <mat-option value=\"deleted\">Deleted</mat-option>\n </mat-select>\n <button *ngIf=\"getFieldValue('action')\" matSuffix mat-icon-button\n (click)=\"resetFieldValue('action')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n\n <mat-form-field *ngIf=\"showObjectFilter\">\n <mat-label>Model Type</mat-label>\n <app-searchable-selector\n formControlName=\"object_type\" apiUrl=\"api/audit-log-types\" titleField=\"object_type\"\n valueField=\"object_type\" [sort]=\"false\" [enableSearch]=\"false\"\n [multiple]=\"true\"\n >\n </app-searchable-selector>\n <button *ngIf=\"getFieldValue('object_type')\" matSuffix mat-icon-button\n (click)=\"resetFieldValue('object_type')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Model #</mat-label>\n <input type=\"text\" matInput formControlName=\"model_search\" />\n <button *ngIf=\"getFieldValue('model_search')\" matSuffix mat-icon-button\n (click)=\"resetFieldValue('model_search')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Creator</mat-label>\n <app-searchable-selector\n formControlName=\"creator_ids\"\n [multiple]=\"true\"\n apiUrl=\"api/users\"\n titleField=\"name\"\n ></app-searchable-selector>\n <button *ngIf=\"getFieldValue('creator_ids')\" matSuffix mat-icon-button\n (click)=\"resetFieldValue('creator_ids')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n\n</form>\n" }]
60
+ }], ctorParameters: function () { return [{ type: i1.FormValidatorService }]; }, propDecorators: { filterForm: [{
61
+ type: Input
62
+ }], objectId: [{
73
63
  type: Input
74
64
  }], objectType: [{
75
65
  type: Input
76
66
  }], valueChange: [{
77
67
  type: Output
78
68
  }] } });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtbG9nLWxpc3QtZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvYXVkaXQtbG9nL2F1ZGl0LWxvZy1saXN0LWZpbHRlci9hdWRpdC1sb2ctbGlzdC1maWx0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9hdWRpdC1sb2cvYXVkaXQtbG9nLWxpc3QtZmlsdGVyL2F1ZGl0LWxvZy1saXN0LWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBUTlDLElBQU0sMkJBQTJCLEdBQWpDLE1BQU0sMkJBQTJCO0lBU2xCO0lBQWdDO0lBUHBELGtCQUFrQixDQUFtQjtJQUU1QixRQUFRLENBQU07SUFDZCxVQUFVLENBQU07SUFFZixXQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUUzQyxZQUFvQixFQUFzQixFQUFVLG9CQUEwQztRQUExRSxPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUFVLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDNUYsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU8sVUFBVTtRQUVoQiwyQ0FBMkM7UUFDM0MsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ3RDLFdBQVcsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNqQixNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDWixJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDVixPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsYUFBYSxFQUFFLENBQUM7WUFDOUIsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLGFBQWEsRUFBRSxDQUFDO1NBQ2pDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO1FBRU4sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQ3ZDLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFDakIsb0JBQW9CLEVBQUUsRUFDdEIsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUNyQixDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQ3pCLEtBQUssQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUUsS0FBSyxDQUFDLFNBQWtCLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNqRixLQUFLLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFFLEtBQUssQ0FBQyxPQUFnQixDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDM0UsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBR0QsZUFBZSxDQUFDLEtBQWE7UUFDM0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFhO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDbEQsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFhO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFHRCxXQUFXO0lBRVgsQ0FBQzt3R0ExRFUsMkJBQTJCOzRGQUEzQiwyQkFBMkIsc0tDYnhDLHk4RUFnRE87O0FEbkNNLDJCQUEyQjtJQU52QyxZQUFZLEVBQUU7R0FNRiwyQkFBMkIsQ0E0RHZDO1NBNURZLDJCQUEyQjs0RkFBM0IsMkJBQTJCO2tCQUx2QyxTQUFTOytCQUNFLDJCQUEyQjs0SUFRNUIsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUdyb3VwLCBVbnR5cGVkRm9ybUJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQgeyBGb3JtVmFsaWRhdG9yU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvZm9ybS12YWxpZGF0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBEYXRlVmFsaWRhdG9yIH0gZnJvbSAnLi4vLi4vZGF0ZS12YWxpZGF0b3InO1xuXG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1hdWRpdC1sb2ctbGlzdC1maWx0ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vYXVkaXQtbG9nLWxpc3QtZmlsdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXVkaXQtbG9nLWxpc3QtZmlsdGVyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQXVkaXRMb2dMaXN0RmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBhdWRpdExvZ0ZpbHRlckZvcm06IFVudHlwZWRGb3JtR3JvdXA7XG5cbiAgQElucHV0KCkgb2JqZWN0SWQ6IGFueTtcbiAgQElucHV0KCkgb2JqZWN0VHlwZTogYW55O1xuXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZiOiBVbnR5cGVkRm9ybUJ1aWxkZXIsIHByaXZhdGUgZm9ybVZhbGlkYXRvclNlcnZpY2U6IEZvcm1WYWxpZGF0b3JTZXJ2aWNlKSB7XG4gICAgdGhpcy5jcmVhdGVGb3JtKCk7XG4gIH1cblxuICBnZXQgc2hvd09iamVjdEZpbHRlcigpIHtcbiAgICByZXR1cm4gISh0aGlzLm9iamVjdElkIHx8IHRoaXMub2JqZWN0VHlwZSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUZvcm0oKSB7XG5cbiAgICAvL1RPRE86IEZpbmlhbGl6ZSBhbmQgYWRkIG1vcmUgdmFsaWRhdGlvbnMuXG4gICAgdGhpcy5hdWRpdExvZ0ZpbHRlckZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIG9iamVjdF90eXBlOiBbJyddLFxuICAgICAgYWN0aW9uOiBbJyddLFxuICAgICAgZGF0YTogWycnXSxcbiAgICAgIGRhdGVfdG86IFsnJywgRGF0ZVZhbGlkYXRvcigpXSxcbiAgICAgIGRhdGVfZnJvbTogWycnLCBEYXRlVmFsaWRhdG9yKCldXG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcblxuICAgIHRoaXMuYXVkaXRMb2dGaWx0ZXJGb3JtLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgZGVib3VuY2VUaW1lKDUwMCksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgdW50aWxEZXN0cm95ZWQodGhpcylcbiAgICApLnN1YnNjcmliZSgodmFsdWU6IGFueSkgPT4ge1xuICAgICAgdmFsdWUuZGF0ZV9mcm9tID0gdmFsdWUuZGF0ZV9mcm9tID8gKHZhbHVlLmRhdGVfZnJvbSBhcyBEYXRlKS50b0lTT1N0cmluZygpIDogJyc7XG4gICAgICB2YWx1ZS5kYXRlX3RvID0gdmFsdWUuZGF0ZV90byA/ICh2YWx1ZS5kYXRlX3RvIGFzIERhdGUpLnRvSVNPU3RyaW5nKCkgOiAnJztcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgfSlcbiAgfVxuXG5cbiAgcmVzZXRGaWVsZFZhbHVlKGZpZWxkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmF1ZGl0TG9nRmlsdGVyRm9ybS5nZXQoZmllbGQpLnNldFZhbHVlKCcnKTtcbiAgfVxuXG4gIGdldEZpZWxkVmFsdWUoZmllbGQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmF1ZGl0TG9nRmlsdGVyRm9ybS5nZXQoZmllbGQpLnZhbHVlO1xuICB9XG5cbiAgaXNGaWVsZFZhbGlkKGZpZWxkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtVmFsaWRhdG9yU2VydmljZS5pc0ZpZWxkVmFsaWQoZmllbGQsIHRoaXMuYXVkaXRMb2dGaWx0ZXJGb3JtLCB0cnVlKTtcbiAgfVxuXG5cbiAgbmdPbkRlc3Ryb3koKSB7XG5cbiAgfVxuXG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImF1ZGl0TG9nRmlsdGVyRm9ybVwiIGZ4TGF5b3V0PVwicm93IHdyYXBcIiBmeExheW91dEdhcD1cIjFyZW1cIiBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCI+XG4gICAgPG1hdC1mb3JtLWZpZWxkICpuZ0lmPVwic2hvd09iamVjdEZpbHRlclwiPlxuICAgICAgICA8bWF0LWxhYmVsPk1vZGVsPC9tYXQtbGFiZWw+XG4gICAgICAgIDxhcHAtc2VhcmNoYWJsZS1zZWxlY3RvciBmb3JtQ29udHJvbE5hbWU9XCJvYmplY3RfdHlwZVwiIGFwaVVybD1cImFwaS9hdWRpdC1sb2ctdHlwZXNcIiB0aXRsZUZpZWxkPVwib2JqZWN0X3R5cGVcIlxuICAgICAgICAgICAgdmFsdWVGaWVsZD1cIm9iamVjdF90eXBlXCIgW3NvcnRdPVwiZmFsc2VcIiBbZW5hYmxlU2VhcmNoXT1cImZhbHNlXCI+XG4gICAgICAgIDwvYXBwLXNlYXJjaGFibGUtc2VsZWN0b3I+XG4gICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiAqbmdJZj1cImdldEZpZWxkVmFsdWUoJ29iamVjdF90eXBlJylcIiBtYXRTdWZmaXggbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAoY2xpY2spPVwicmVzZXRGaWVsZFZhbHVlKCdvYmplY3RfdHlwZScpXCI+XG4gICAgICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8bWF0LWxhYmVsPkFjdGlvbjwvbWF0LWxhYmVsPlxuICAgICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJhY3Rpb25cIj5cbiAgICAgICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiY3JlYXRlZFwiPkNyZWF0ZWQ8L21hdC1vcHRpb24+XG4gICAgICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cInVwZGF0ZWRcIj5VcGRhdGVkPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJkZWxldGVkXCI+RGVsZXRlZDwvbWF0LW9wdGlvbj5cbiAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gKm5nSWY9XCJnZXRGaWVsZFZhbHVlKCdhY3Rpb24nKVwiIG1hdFN1ZmZpeCBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgIChjbGljayk9XCJyZXNldEZpZWxkVmFsdWUoJ2FjdGlvbicpXCI+XG4gICAgICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZGF0ZV9mcm9tXCIgW21hdERhdGVwaWNrZXJdPVwiZnJvbVBpY2tlclwiIChjbGljayk9XCJmcm9tUGlja2VyLm9wZW4oKVwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkZyb20gRGF0ZSAoTU0vREQvWVlZWSlcIiAvPlxuICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cImZyb21QaWNrZXJcIj48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cbiAgICAgICAgPG1hdC1kYXRlcGlja2VyICNmcm9tUGlja2VyPjwvbWF0LWRhdGVwaWNrZXI+XG4gICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiAqbmdJZj1cImdldEZpZWxkVmFsdWUoJ2RhdGVfZnJvbScpXCIgbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgKGNsaWNrKT1cInJlc2V0RmllbGRWYWx1ZSgnZGF0ZV9mcm9tJylcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiaXNGaWVsZFZhbGlkKCdkYXRlX2Zyb20nKVwiPkludmFsaWQgRGF0ZTwvbWF0LWVycm9yPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJkYXRlX3RvXCIgW21hdERhdGVwaWNrZXJdPVwidG9QaWNrZXJcIiAoY2xpY2spPVwidG9QaWNrZXIub3BlbigpXCJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiVG8gRGF0ZSAoTU0vREQvWVlZWSlcIiAvPlxuICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cIlwiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxuICAgICAgICA8bWF0LWRhdGVwaWNrZXIgI3RvUGlja2VyPjwvbWF0LWRhdGVwaWNrZXI+XG4gICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiAqbmdJZj1cImdldEZpZWxkVmFsdWUoJ2RhdGVfdG8nKVwiIG1hdFN1ZmZpeCBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgIChjbGljayk9XCJyZXNldEZpZWxkVmFsdWUoJ2RhdGVfdG8nKVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJpc0ZpZWxkVmFsaWQoJ2RhdGVfdG8nKVwiPkludmFsaWQgRGF0ZTwvbWF0LWVycm9yPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG48L2Zvcm0+Il19
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtbG9nLWxpc3QtZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvYXVkaXQtbG9nL2F1ZGl0LWxvZy1saXN0LWZpbHRlci9hdWRpdC1sb2ctbGlzdC1maWx0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9hdWRpdC1sb2cvYXVkaXQtbG9nLWxpc3QtZmlsdGVyL2F1ZGl0LWxvZy1saXN0LWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBVSxNQUFNLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUV4RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHckQsYUFBYTtBQUNiLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVNyQixJQUFNLDJCQUEyQixHQUFqQyxNQUFNLDJCQUEyQjtJQVFsQjtJQU5YLFVBQVUsQ0FBbUI7SUFDN0IsUUFBUSxDQUFNO0lBQ2QsVUFBVSxDQUFNO0lBRWYsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFFM0MsWUFBb0Isb0JBQTBDO1FBQTFDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7SUFDOUQsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxRQUFRO0lBQ1IsQ0FBQztJQUVELGdCQUFnQixDQUFDLGFBQTRCO1FBQzNDLE1BQU0sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsYUFBYSxDQUFDO1FBQzdDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDO1lBQ3pCLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDbEUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtTQUM3RCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQWE7UUFDM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBYTtRQUN6QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUMxQyxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQWE7UUFDeEIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRCxXQUFXO0lBQ1gsQ0FBQzt3R0F2Q1UsMkJBQTJCOzRGQUEzQiwyQkFBMkIsZ01DZnhDLDBzRUE2REE7O0FEOUNhLDJCQUEyQjtJQVB2QyxZQUFZLEVBQUU7R0FPRiwyQkFBMkIsQ0F5Q3ZDO1NBekNZLDJCQUEyQjs0RkFBM0IsMkJBQTJCO2tCQU52QyxTQUFTOytCQUVFLDJCQUEyQjsyR0FNNUIsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VW50eXBlZEZvcm1Hcm91cH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVW50aWxEZXN0cm95IH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7IEZvcm1WYWxpZGF0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQge1RpbWVsaW5lVmFsdWV9IGZyb20gJy4uLy4uL3RpbWVsaW5lLWZpbHRlcic7XG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5cbkBVbnRpbERlc3Ryb3koKVxuQENvbXBvbmVudCh7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdhcHAtYXVkaXQtbG9nLWxpc3QtZmlsdGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2F1ZGl0LWxvZy1saXN0LWZpbHRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2F1ZGl0LWxvZy1saXN0LWZpbHRlci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEF1ZGl0TG9nTGlzdEZpbHRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBASW5wdXQoKSBmaWx0ZXJGb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuICBASW5wdXQoKSBvYmplY3RJZDogYW55O1xuICBASW5wdXQoKSBvYmplY3RUeXBlOiBhbnk7XG5cbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZm9ybVZhbGlkYXRvclNlcnZpY2U6IEZvcm1WYWxpZGF0b3JTZXJ2aWNlKSB7XG4gIH1cblxuICBnZXQgc2hvd09iamVjdEZpbHRlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISh0aGlzLm9iamVjdElkIHx8IHRoaXMub2JqZWN0VHlwZSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG4gIG9uRHVyYXRpb25DaGFuZ2UodGltZWxpbmVWYWx1ZTogVGltZWxpbmVWYWx1ZSk6IHZvaWQge1xuICAgIGNvbnN0IHsgZGF0ZV90bywgZGF0ZV9mcm9tIH0gPSB0aW1lbGluZVZhbHVlO1xuICAgIHRoaXMuZmlsdGVyRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgIGRhdGVfZnJvbTogZGF0ZV9mcm9tID8gbW9tZW50KGRhdGVfZnJvbSkuZm9ybWF0KCdZWVlZLU1NLUREJykgOiAnJyxcbiAgICAgIGRhdGVfdG86IGRhdGVfdG8gPyBtb21lbnQoZGF0ZV90bykuZm9ybWF0KCdZWVlZLU1NLUREJykgOiAnJ1xuICAgIH0pO1xuICB9XG5cbiAgcmVzZXRGaWVsZFZhbHVlKGZpZWxkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmZpbHRlckZvcm0uZ2V0KGZpZWxkKS5zZXRWYWx1ZSgnJyk7XG4gIH1cblxuICBnZXRGaWVsZFZhbHVlKGZpZWxkOiBzdHJpbmcpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmZpbHRlckZvcm0uZ2V0KGZpZWxkKS52YWx1ZTtcbiAgfVxuXG4gIGlzRmllbGRWYWxpZChmaWVsZDogc3RyaW5nKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5mb3JtVmFsaWRhdG9yU2VydmljZS5pc0ZpZWxkVmFsaWQoZmllbGQsIHRoaXMuZmlsdGVyRm9ybSwgdHJ1ZSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgfVxuXG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImZpbHRlckZvcm1cIiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMiB3LTEwMFwiPlxuICA8YXBwLXRpbWVsaW5lLWZpbHRlclxuICAgIGxhYmVsVGV4dD1cIkRhdGVcIlxuICAgIGZvcm1Db250cm9sTmFtZT1cImR1cmF0aW9uXCJcbiAgICBbZGF0ZUZyb21dPVwiZmlsdGVyRm9ybS52YWx1ZT8uZGF0ZV9mcm9tXCJcbiAgICBbZGF0ZVRvXT1cImZpbHRlckZvcm0udmFsdWU/LmRhdGVfdG9cIlxuICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25EdXJhdGlvbkNoYW5nZSgkZXZlbnQpXCJcbiAgICBbc2hvd0NsZWFyQnV0dG9uXT1cInRydWVcIlxuICA+PC9hcHAtdGltZWxpbmUtZmlsdGVyPlxuXG4gIDxtYXQtZm9ybS1maWVsZD5cbiAgICA8bWF0LWxhYmVsPkFjdGlvbjwvbWF0LWxhYmVsPlxuICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cImFjdGlvblwiIFttdWx0aXBsZV09XCJ0cnVlXCI+XG4gICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cImNyZWF0ZWRcIj5DcmVhdGVkPC9tYXQtb3B0aW9uPlxuICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJ1cGRhdGVkXCI+VXBkYXRlZDwvbWF0LW9wdGlvbj5cbiAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiZGVsZXRlZFwiPkRlbGV0ZWQ8L21hdC1vcHRpb24+XG4gICAgPC9tYXQtc2VsZWN0PlxuICAgIDxidXR0b24gKm5nSWY9XCJnZXRGaWVsZFZhbHVlKCdhY3Rpb24nKVwiIG1hdFN1ZmZpeCBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgIChjbGljayk9XCJyZXNldEZpZWxkVmFsdWUoJ2FjdGlvbicpXCI+XG4gICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gIDxtYXQtZm9ybS1maWVsZCAqbmdJZj1cInNob3dPYmplY3RGaWx0ZXJcIj5cbiAgICA8bWF0LWxhYmVsPk1vZGVsIFR5cGU8L21hdC1sYWJlbD5cbiAgICA8YXBwLXNlYXJjaGFibGUtc2VsZWN0b3JcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cIm9iamVjdF90eXBlXCIgYXBpVXJsPVwiYXBpL2F1ZGl0LWxvZy10eXBlc1wiIHRpdGxlRmllbGQ9XCJvYmplY3RfdHlwZVwiXG4gICAgICB2YWx1ZUZpZWxkPVwib2JqZWN0X3R5cGVcIiBbc29ydF09XCJmYWxzZVwiIFtlbmFibGVTZWFyY2hdPVwiZmFsc2VcIlxuICAgICAgW211bHRpcGxlXT1cInRydWVcIlxuICAgID5cbiAgICA8L2FwcC1zZWFyY2hhYmxlLXNlbGVjdG9yPlxuICAgIDxidXR0b24gKm5nSWY9XCJnZXRGaWVsZFZhbHVlKCdvYmplY3RfdHlwZScpXCIgbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvblxuICAgICAgKGNsaWNrKT1cInJlc2V0RmllbGRWYWx1ZSgnb2JqZWN0X3R5cGUnKVwiPlxuICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9tYXQtZm9ybS1maWVsZD5cblxuICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgPG1hdC1sYWJlbD5Nb2RlbCAjPC9tYXQtbGFiZWw+XG4gICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwibW9kZWxfc2VhcmNoXCIgLz5cbiAgICA8YnV0dG9uICpuZ0lmPVwiZ2V0RmllbGRWYWx1ZSgnbW9kZWxfc2VhcmNoJylcIiBtYXRTdWZmaXggbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAoY2xpY2spPVwicmVzZXRGaWVsZFZhbHVlKCdtb2RlbF9zZWFyY2gnKVwiPlxuICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9tYXQtZm9ybS1maWVsZD5cblxuICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgPG1hdC1sYWJlbD5DcmVhdG9yPC9tYXQtbGFiZWw+XG4gICAgPGFwcC1zZWFyY2hhYmxlLXNlbGVjdG9yXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJjcmVhdG9yX2lkc1wiXG4gICAgICBbbXVsdGlwbGVdPVwidHJ1ZVwiXG4gICAgICBhcGlVcmw9XCJhcGkvdXNlcnNcIlxuICAgICAgdGl0bGVGaWVsZD1cIm5hbWVcIlxuICAgID48L2FwcC1zZWFyY2hhYmxlLXNlbGVjdG9yPlxuICAgIDxidXR0b24gKm5nSWY9XCJnZXRGaWVsZFZhbHVlKCdjcmVhdG9yX2lkcycpXCIgbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgKGNsaWNrKT1cInJlc2V0RmllbGRWYWx1ZSgnY3JlYXRvcl9pZHMnKVwiPlxuICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9tYXQtZm9ybS1maWVsZD5cblxuPC9mb3JtPlxuIl19
@@ -6,6 +6,7 @@ import { FlexLayoutModule } from '@angular/flex-layout';
6
6
  import { ReactiveFormsModule } from '@angular/forms';
7
7
  import { MaterialModule } from '../../material.module';
8
8
  import { SearchableSelectorModule } from '../../searchable-selector/searchable-selector.module';
9
+ import { TimelineFilterModule } from "../../timeline-filter/timeline-filter.module";
9
10
  import * as i0 from "@angular/core";
10
11
  export class AuditLogListFilterModule {
11
12
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuditLogListFilterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -14,13 +15,15 @@ export class AuditLogListFilterModule {
14
15
  FlexLayoutModule,
15
16
  ReactiveFormsModule,
16
17
  MaterialModule,
17
- SearchableSelectorModule], exports: [AuditLogListFilterComponent] });
18
+ SearchableSelectorModule,
19
+ TimelineFilterModule], exports: [AuditLogListFilterComponent] });
18
20
  static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuditLogListFilterModule, imports: [CommonModule,
19
21
  AuditLogListFilterRoutingModule,
20
22
  FlexLayoutModule,
21
23
  ReactiveFormsModule,
22
24
  MaterialModule,
23
- SearchableSelectorModule] });
25
+ SearchableSelectorModule,
26
+ TimelineFilterModule] });
24
27
  }
25
28
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuditLogListFilterModule, decorators: [{
26
29
  type: NgModule,
@@ -33,8 +36,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
33
36
  ReactiveFormsModule,
34
37
  MaterialModule,
35
38
  SearchableSelectorModule,
39
+ TimelineFilterModule,
36
40
  ],
37
41
  exports: [AuditLogListFilterComponent]
38
42
  }]
39
43
  }] });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtbG9nLWxpc3QtZmlsdGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvYXVkaXQtbG9nL2F1ZGl0LWxvZy1saXN0LWZpbHRlci9hdWRpdC1sb2ctbGlzdC1maWx0ZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7QUFlaEcsTUFBTSxPQUFPLHdCQUF3Qjt3R0FBeEIsd0JBQXdCO3lHQUF4Qix3QkFBd0IsaUJBWHBCLDJCQUEyQixhQUV4QyxZQUFZO1lBQ1osK0JBQStCO1lBQy9CLGdCQUFnQjtZQUNoQixtQkFBbUI7WUFDbkIsY0FBYztZQUNkLHdCQUF3QixhQUVoQiwyQkFBMkI7eUdBRTFCLHdCQUF3QixZQVRqQyxZQUFZO1lBQ1osK0JBQStCO1lBQy9CLGdCQUFnQjtZQUNoQixtQkFBbUI7WUFDbkIsY0FBYztZQUNkLHdCQUF3Qjs7NEZBSWYsd0JBQXdCO2tCQVpwQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLDJCQUEyQixDQUFDO29CQUMzQyxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWiwrQkFBK0I7d0JBQy9CLGdCQUFnQjt3QkFDaEIsbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNkLHdCQUF3QjtxQkFDekI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsMkJBQTJCLENBQUM7aUJBQ3ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7IEF1ZGl0TG9nTGlzdEZpbHRlclJvdXRpbmdNb2R1bGUgfSBmcm9tICcuL2F1ZGl0LWxvZy1saXN0LWZpbHRlci1yb3V0aW5nLm1vZHVsZSc7XG5pbXBvcnQgeyBBdWRpdExvZ0xpc3RGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL2F1ZGl0LWxvZy1saXN0LWZpbHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmxleExheW91dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2ZsZXgtbGF5b3V0JztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRlcmlhbE1vZHVsZSB9IGZyb20gJy4uLy4uL21hdGVyaWFsLm1vZHVsZSc7XG5pbXBvcnQgeyBTZWFyY2hhYmxlU2VsZWN0b3JNb2R1bGUgfSBmcm9tICcuLi8uLi9zZWFyY2hhYmxlLXNlbGVjdG9yL3NlYXJjaGFibGUtc2VsZWN0b3IubW9kdWxlJztcblxuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtBdWRpdExvZ0xpc3RGaWx0ZXJDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEF1ZGl0TG9nTGlzdEZpbHRlclJvdXRpbmdNb2R1bGUsXG4gICAgRmxleExheW91dE1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE1hdGVyaWFsTW9kdWxlLFxuICAgIFNlYXJjaGFibGVTZWxlY3Rvck1vZHVsZSxcbiAgXSxcbiAgZXhwb3J0czogW0F1ZGl0TG9nTGlzdEZpbHRlckNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgQXVkaXRMb2dMaXN0RmlsdGVyTW9kdWxlIHsgfVxuIl19
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtbG9nLWxpc3QtZmlsdGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvYXVkaXQtbG9nL2F1ZGl0LWxvZy1saXN0LWZpbHRlci9hdWRpdC1sb2ctbGlzdC1maWx0ZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUNoRyxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQzs7QUFnQmxGLE1BQU0sT0FBTyx3QkFBd0I7d0dBQXhCLHdCQUF3Qjt5R0FBeEIsd0JBQXdCLGlCQVpwQiwyQkFBMkIsYUFFcEMsWUFBWTtZQUNaLCtCQUErQjtZQUMvQixnQkFBZ0I7WUFDaEIsbUJBQW1CO1lBQ25CLGNBQWM7WUFDZCx3QkFBd0I7WUFDeEIsb0JBQW9CLGFBRWhCLDJCQUEyQjt5R0FFMUIsd0JBQXdCLFlBVjdCLFlBQVk7WUFDWiwrQkFBK0I7WUFDL0IsZ0JBQWdCO1lBQ2hCLG1CQUFtQjtZQUNuQixjQUFjO1lBQ2Qsd0JBQXdCO1lBQ3hCLG9CQUFvQjs7NEZBSWYsd0JBQXdCO2tCQWJwQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLDJCQUEyQixDQUFDO29CQUN6QyxPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWiwrQkFBK0I7d0JBQy9CLGdCQUFnQjt3QkFDaEIsbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNkLHdCQUF3Qjt3QkFDeEIsb0JBQW9CO3FCQUN2QjtvQkFDSCxPQUFPLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQztpQkFDdkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgQXVkaXRMb2dMaXN0RmlsdGVyUm91dGluZ01vZHVsZSB9IGZyb20gJy4vYXVkaXQtbG9nLWxpc3QtZmlsdGVyLXJvdXRpbmcubW9kdWxlJztcbmltcG9ydCB7IEF1ZGl0TG9nTGlzdEZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4vYXVkaXQtbG9nLWxpc3QtZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGbGV4TGF5b3V0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZmxleC1sYXlvdXQnO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdGVyaWFsTW9kdWxlIH0gZnJvbSAnLi4vLi4vbWF0ZXJpYWwubW9kdWxlJztcbmltcG9ydCB7IFNlYXJjaGFibGVTZWxlY3Rvck1vZHVsZSB9IGZyb20gJy4uLy4uL3NlYXJjaGFibGUtc2VsZWN0b3Ivc2VhcmNoYWJsZS1zZWxlY3Rvci5tb2R1bGUnO1xuaW1wb3J0IHtUaW1lbGluZUZpbHRlck1vZHVsZX0gZnJvbSBcIi4uLy4uL3RpbWVsaW5lLWZpbHRlci90aW1lbGluZS1maWx0ZXIubW9kdWxlXCI7XG5cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbQXVkaXRMb2dMaXN0RmlsdGVyQ29tcG9uZW50XSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgQXVkaXRMb2dMaXN0RmlsdGVyUm91dGluZ01vZHVsZSxcbiAgICAgICAgRmxleExheW91dE1vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgTWF0ZXJpYWxNb2R1bGUsXG4gICAgICAgIFNlYXJjaGFibGVTZWxlY3Rvck1vZHVsZSxcbiAgICAgICAgVGltZWxpbmVGaWx0ZXJNb2R1bGUsXG4gICAgXSxcbiAgZXhwb3J0czogW0F1ZGl0TG9nTGlzdEZpbHRlckNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgQXVkaXRMb2dMaXN0RmlsdGVyTW9kdWxlIHsgfVxuIl19
@@ -0,0 +1,18 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { TechlifyServiceBaseClass } from '../base-model';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../core";
5
+ export class AuditLogService extends TechlifyServiceBaseClass {
6
+ constructor(httpService) {
7
+ super(httpService, 'audit-logs');
8
+ }
9
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuditLogService, deps: [{ token: i1.HttpService }], target: i0.ɵɵFactoryTarget.Injectable });
10
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuditLogService, providedIn: 'root' });
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuditLogService, decorators: [{
13
+ type: Injectable,
14
+ args: [{
15
+ providedIn: 'root'
16
+ }]
17
+ }], ctorParameters: function () { return [{ type: i1.HttpService }]; } });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2F1ZGl0LWxvZy9hdWRpdC1sb2cuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7O0FBTXZELE1BQU0sT0FBTyxlQUFnQixTQUFRLHdCQUF3QjtJQUMzRCxZQUFZLFdBQXdCO1FBQ2xDLEtBQUssQ0FBQyxXQUFXLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDbkMsQ0FBQzt3R0FIVSxlQUFlOzRHQUFmLGVBQWUsY0FGZCxNQUFNOzs0RkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VGVjaGxpZnlTZXJ2aWNlQmFzZUNsYXNzfSBmcm9tICcuLi9iYXNlLW1vZGVsJztcbmltcG9ydCB7SHR0cFNlcnZpY2V9IGZyb20gJy4uL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBdWRpdExvZ1NlcnZpY2UgZXh0ZW5kcyBUZWNobGlmeVNlcnZpY2VCYXNlQ2xhc3Mge1xuICBjb25zdHJ1Y3RvcihodHRwU2VydmljZTogSHR0cFNlcnZpY2UpIHtcbiAgICBzdXBlcihodHRwU2VydmljZSwgJ2F1ZGl0LWxvZ3MnKTtcbiAgfVxufVxuIl19
@@ -24,7 +24,7 @@ let AuditLogsViewModelComponent = class AuditLogsViewModelComponent {
24
24
  .subscribe(_ => this.dialogRef.close());
25
25
  }
26
26
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuditLogsViewModelComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component });
27
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AuditLogsViewModelComponent, selector: "app-audit-logs-view-model", ngImport: i0, template: "<div fxLayout=\"column\" class=\"m-4\" fxLayoutGap=\"1.5rem\">\n <app-audit-log-list [objectId]=\"data?.modelId\" [objectType]=\"data?.modelType\" [showExportButtons]=\"false\">\n </app-audit-log-list>\n</div>", styles: ["::ng-deep app-audit-log-list .scroll-container{height:350px!important;overflow-y:scroll}\n"], dependencies: [{ kind: "directive", type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "component", type: i4.AuditLogListComponent, selector: "app-audit-log-list", inputs: ["objectId", "objectType", "showFilter", "showExportButtons", "userId"] }] });
27
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AuditLogsViewModelComponent, selector: "app-audit-logs-view-model", ngImport: i0, template: "<div fxLayout=\"column\" class=\"m-4\" fxLayoutGap=\"1.5rem\">\n <app-audit-log-list [objectId]=\"data?.modelId\" [objectType]=\"data?.modelType\" [showExportButtons]=\"false\" [disableFilterPatchingFromUrl]=\"true\">\n </app-audit-log-list>\n</div>", styles: ["::ng-deep app-audit-log-list .scroll-container{height:350px!important;overflow-y:scroll}\n"], dependencies: [{ kind: "directive", type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "component", type: i4.AuditLogListComponent, selector: "app-audit-log-list", inputs: ["objectId", "objectType", "showFilter", "showExportButtons", "userId", "disableFilterPatchingFromUrl"] }] });
28
28
  };
29
29
  AuditLogsViewModelComponent = __decorate([
30
30
  UntilDestroy()
@@ -32,9 +32,9 @@ AuditLogsViewModelComponent = __decorate([
32
32
  export { AuditLogsViewModelComponent };
33
33
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuditLogsViewModelComponent, decorators: [{
34
34
  type: Component,
35
- args: [{ selector: 'app-audit-logs-view-model', template: "<div fxLayout=\"column\" class=\"m-4\" fxLayoutGap=\"1.5rem\">\n <app-audit-log-list [objectId]=\"data?.modelId\" [objectType]=\"data?.modelType\" [showExportButtons]=\"false\">\n </app-audit-log-list>\n</div>", styles: ["::ng-deep app-audit-log-list .scroll-container{height:350px!important;overflow-y:scroll}\n"] }]
35
+ args: [{ selector: 'app-audit-logs-view-model', template: "<div fxLayout=\"column\" class=\"m-4\" fxLayoutGap=\"1.5rem\">\n <app-audit-log-list [objectId]=\"data?.modelId\" [objectType]=\"data?.modelType\" [showExportButtons]=\"false\" [disableFilterPatchingFromUrl]=\"true\">\n </app-audit-log-list>\n</div>", styles: ["::ng-deep app-audit-log-list .scroll-container{height:350px!important;overflow-y:scroll}\n"] }]
36
36
  }], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
37
37
  type: Inject,
38
38
  args: [MAT_DIALOG_DATA]
39
39
  }] }, { type: i2.Router }]; } });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtbG9ncy12aWV3LW1vZGVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvYXVkaXQtbG9nL2F1ZGl0LWxvZ3Mtdmlldy1tb2RlbC9hdWRpdC1sb2dzLXZpZXctbW9kZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9hdWRpdC1sb2cvYXVkaXQtbG9ncy12aWV3LW1vZGVsL2F1ZGl0LWxvZ3Mtdmlldy1tb2RlbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFnQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQVNqQyxJQUFNLDJCQUEyQixHQUFqQyxNQUFNLDJCQUEyQjtJQUc3QjtJQUN5QjtJQUN4QjtJQUhWLFlBQ1MsU0FBbUQsRUFDMUIsSUFBUyxFQUNqQyxNQUFjO1FBRmYsY0FBUyxHQUFULFNBQVMsQ0FBMEM7UUFDMUIsU0FBSSxHQUFKLElBQUksQ0FBSztRQUNqQyxXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQ3BCLENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNO2FBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssWUFBWSxhQUFhLENBQUMsRUFBRSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDM0UsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7d0dBWlUsMkJBQTJCLDhDQUk1QixlQUFlOzRGQUpkLDJCQUEyQixpRUNieEMseU5BR007O0FEVU8sMkJBQTJCO0lBTnZDLFlBQVksRUFBRTtHQU1GLDJCQUEyQixDQWN2QztTQWRZLDJCQUEyQjs0RkFBM0IsMkJBQTJCO2tCQUx2QyxTQUFTOytCQUNFLDJCQUEyQjs7MEJBUWxDLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEF1ZGl0TG9nVmlld01vZGVsQ29tcG9uZW50IH0gZnJvbSAnLi4vYXVkaXQtbG9nLXZpZXctbW9kZWwvYXVkaXQtbG9nLXZpZXctbW9kZWwuY29tcG9uZW50JztcblxuQFVudGlsRGVzdHJveSgpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtYXVkaXQtbG9ncy12aWV3LW1vZGVsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2F1ZGl0LWxvZ3Mtdmlldy1tb2RlbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2F1ZGl0LWxvZ3Mtdmlldy1tb2RlbC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEF1ZGl0TG9nc1ZpZXdNb2RlbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEF1ZGl0TG9nVmlld01vZGVsQ29tcG9uZW50PixcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IGFueSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzXG4gICAgICAucGlwZShmaWx0ZXIoZXZlbnQgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSwgdW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKF8gPT4gdGhpcy5kaWFsb2dSZWYuY2xvc2UoKSk7XG4gIH1cblxufVxuIiwiPGRpdiBmeExheW91dD1cImNvbHVtblwiIGNsYXNzPVwibS00XCIgZnhMYXlvdXRHYXA9XCIxLjVyZW1cIj5cbiAgICA8YXBwLWF1ZGl0LWxvZy1saXN0IFtvYmplY3RJZF09XCJkYXRhPy5tb2RlbElkXCIgW29iamVjdFR5cGVdPVwiZGF0YT8ubW9kZWxUeXBlXCIgW3Nob3dFeHBvcnRCdXR0b25zXT1cImZhbHNlXCI+XG4gICAgPC9hcHAtYXVkaXQtbG9nLWxpc3Q+XG48L2Rpdj4iXX0=
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtbG9ncy12aWV3LW1vZGVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvYXVkaXQtbG9nL2F1ZGl0LWxvZ3Mtdmlldy1tb2RlbC9hdWRpdC1sb2dzLXZpZXctbW9kZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9hdWRpdC1sb2cvYXVkaXQtbG9ncy12aWV3LW1vZGVsL2F1ZGl0LWxvZ3Mtdmlldy1tb2RlbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFnQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQVNqQyxJQUFNLDJCQUEyQixHQUFqQyxNQUFNLDJCQUEyQjtJQUc3QjtJQUN5QjtJQUN4QjtJQUhWLFlBQ1MsU0FBbUQsRUFDMUIsSUFBUyxFQUNqQyxNQUFjO1FBRmYsY0FBUyxHQUFULFNBQVMsQ0FBMEM7UUFDMUIsU0FBSSxHQUFKLElBQUksQ0FBSztRQUNqQyxXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQ3BCLENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNO2FBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssWUFBWSxhQUFhLENBQUMsRUFBRSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDM0UsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7d0dBWlUsMkJBQTJCLDhDQUk1QixlQUFlOzRGQUpkLDJCQUEyQixpRUNieEMsaVFBR007O0FEVU8sMkJBQTJCO0lBTnZDLFlBQVksRUFBRTtHQU1GLDJCQUEyQixDQWN2QztTQWRZLDJCQUEyQjs0RkFBM0IsMkJBQTJCO2tCQUx2QyxTQUFTOytCQUNFLDJCQUEyQjs7MEJBUWxDLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEF1ZGl0TG9nVmlld01vZGVsQ29tcG9uZW50IH0gZnJvbSAnLi4vYXVkaXQtbG9nLXZpZXctbW9kZWwvYXVkaXQtbG9nLXZpZXctbW9kZWwuY29tcG9uZW50JztcblxuQFVudGlsRGVzdHJveSgpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtYXVkaXQtbG9ncy12aWV3LW1vZGVsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2F1ZGl0LWxvZ3Mtdmlldy1tb2RlbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2F1ZGl0LWxvZ3Mtdmlldy1tb2RlbC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEF1ZGl0TG9nc1ZpZXdNb2RlbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEF1ZGl0TG9nVmlld01vZGVsQ29tcG9uZW50PixcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IGFueSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzXG4gICAgICAucGlwZShmaWx0ZXIoZXZlbnQgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSwgdW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKF8gPT4gdGhpcy5kaWFsb2dSZWYuY2xvc2UoKSk7XG4gIH1cblxufVxuIiwiPGRpdiBmeExheW91dD1cImNvbHVtblwiIGNsYXNzPVwibS00XCIgZnhMYXlvdXRHYXA9XCIxLjVyZW1cIj5cbiAgICA8YXBwLWF1ZGl0LWxvZy1saXN0IFtvYmplY3RJZF09XCJkYXRhPy5tb2RlbElkXCIgW29iamVjdFR5cGVdPVwiZGF0YT8ubW9kZWxUeXBlXCIgW3Nob3dFeHBvcnRCdXR0b25zXT1cImZhbHNlXCIgW2Rpc2FibGVGaWx0ZXJQYXRjaGluZ0Zyb21VcmxdPVwidHJ1ZVwiPlxuICAgIDwvYXBwLWF1ZGl0LWxvZy1saXN0PlxuPC9kaXY+Il19
@@ -14,6 +14,8 @@ import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
14
14
  */
15
15
  let TechlifyListingControllerInterface = class TechlifyListingControllerInterface {
16
16
  models = [];
17
+ selectedModelIds = [];
18
+ isAllSelected = false;
17
19
  page = 1;
18
20
  perPage = 25;
19
21
  lastPage = 0;
@@ -33,6 +35,7 @@ let TechlifyListingControllerInterface = class TechlifyListingControllerInterfac
33
35
  */
34
36
  reload() {
35
37
  this.models = [];
38
+ this.selectedModelIds = [];
36
39
  this.page = 1;
37
40
  if (!this.isWorking) {
38
41
  this.loadData();
@@ -49,16 +52,68 @@ let TechlifyListingControllerInterface = class TechlifyListingControllerInterfac
49
52
  }
50
53
  }
51
54
  /**
52
- * Reset the filter.
55
+ * Reset the Filter.
53
56
  *
54
- * @param field
57
+ * @param field Field name.
55
58
  */
56
59
  resetFilter(field) {
57
60
  this.filterForm.get(field).reset('');
58
61
  }
62
+ /**
63
+ * Updates a specific row in the table.
64
+ * @param model The model to be updated.
65
+ * @param index The index of the model in the list.
66
+ */
67
+ modelUpdated(model, index) {
68
+ this.models[index] = model;
69
+ this.models = [...this.models];
70
+ }
71
+ /**
72
+ * Adds a new model at the first position in the table.
73
+ * @param model The new model to be added.
74
+ */
75
+ modelCreated(model) {
76
+ this.models.unshift(model);
77
+ this.models = [...this.models];
78
+ }
79
+ /**
80
+ * Remove a model from the list.
81
+ * @param index Index of the model in the list.
82
+ */
83
+ modelDeleted(index) {
84
+ this.models.splice(index, 1);
85
+ this.models = [...this.models];
86
+ }
87
+ /**
88
+ * Used for multi select
89
+ * Trigerred when select all is toggled
90
+ */
91
+ selectAll() {
92
+ this.selectedModelIds = [];
93
+ this.models.map((model) => {
94
+ model.is_selected = this.isAllSelected;
95
+ if (this.isAllSelected) {
96
+ this.selectedModelIds.push(model.id);
97
+ }
98
+ });
99
+ this.models = [...this.models];
100
+ }
101
+ /**
102
+ * Used for multi select
103
+ * Trigerred if any entry section is modified
104
+ */
105
+ isSelectionModified(event, model) {
106
+ this.isAllSelected = false;
107
+ if (event.checked) {
108
+ this.selectedModelIds.push(model?.id);
109
+ }
110
+ else {
111
+ this.selectedModelIds = this.selectedModelIds.filter((modelId) => modelId != model?.id);
112
+ }
113
+ }
59
114
  };
60
115
  TechlifyListingControllerInterface = __decorate([
61
116
  UntilDestroy()
62
117
  ], TechlifyListingControllerInterface);
63
118
  export { TechlifyListingControllerInterface };
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktbGlzdGluZy1jb21wb25lbnQuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2Jhc2UtbW9kZWwvdGVjaGxpZnktbGlzdGluZy1jb21wb25lbnQuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXJFOzs7Ozs7Ozs7O0dBVUc7QUFFSSxJQUFlLGtDQUFrQyxHQUFqRCxNQUFlLGtDQUFrQztJQUV0RCxNQUFNLEdBQVUsRUFBRSxDQUFDO0lBQ25CLElBQUksR0FBVyxDQUFDLENBQUM7SUFDakIsT0FBTyxHQUFXLEVBQUUsQ0FBQztJQUNyQixRQUFRLEdBQVcsQ0FBQyxDQUFDO0lBQ3JCLFNBQVMsR0FBWSxLQUFLLENBQUM7SUFDM0IsVUFBVSxDQUFNO0lBRWhCOztPQUVHO0lBQ0gsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDdkUsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFPRDs7T0FFRztJQUNILE1BQU07UUFDSixJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ25CLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNqQjtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2hELElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO1lBQ2YsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ2pCO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxXQUFXLENBQUMsS0FBYTtRQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdkMsQ0FBQztDQUVGLENBQUE7QUF2RHFCLGtDQUFrQztJQUR2RCxZQUFZLEVBQUU7R0FDTyxrQ0FBa0MsQ0F1RHZEO1NBdkRxQixrQ0FBa0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcblxuLyoqXG4gKiBJbnRlcmZhY2UgdXNlZCB0byBlbnN1cmUgd2UgaGF2ZSBhIGNvbnNpc3RlbnQgc3RydWN0dXJlIGFjcm9zcyBvdXIgbGlzdGluZyBwYWdlc1xuICpcbiAqIEB0b2RvIFRoaXMgc2hvdWxkIGJlIG1vdmVkIHRvIG5neC10ZWNobGlmeS1jb3JlXG4gKlxuICogQWR2YW50YWdlcyBvZiB0aGlzIGFic3RyYWN0IGNsYXNzXG4gKiAtIExlc3MgY29kZSwgbGVzcyBtYWludGVuYW5jZSwgbGVzcyBidWdzXG4gKiAtIG1vcmUgY29uc2lzdGVudCBjb2RlXG4gKiAtIGNvbW1lbnRzIG9uIG1vcmUgY29kZVxuICogLSBzYXZlIHRpbWUsIHNhdmUgZW5lcmd5XG4gKi9cbkBVbnRpbERlc3Ryb3koKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRlY2hsaWZ5TGlzdGluZ0NvbnRyb2xsZXJJbnRlcmZhY2Uge1xuXG4gIG1vZGVsczogYW55W10gPSBbXTtcbiAgcGFnZTogbnVtYmVyID0gMTtcbiAgcGVyUGFnZTogbnVtYmVyID0gMjU7XG4gIGxhc3RQYWdlOiBudW1iZXIgPSAwO1xuICBpc1dvcmtpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZmlsdGVyRm9ybTogYW55O1xuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0aGF0IGxpc3RlbnMgZm9yIGFueSBjaGFuZ2VzIGluIHRoZSBmb3JtIGdyb3VwIHRvIGFwcGx5IHRoZSBmaWx0ZXJzXG4gICAqL1xuICBsaXN0ZW5Gb3JDaGFuZ2VzKCkge1xuICAgIHRoaXMuZmlsdGVyRm9ybS52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoNTAwKSwgdW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5yZWxvYWQoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHRoYXQgbG9hZHMgdGhlIG1haW4gbW9kZWxzIG9mIHRoZSBhcHBsaWNhdGlvblxuICAgKi9cbiAgYWJzdHJhY3QgbG9hZERhdGEoKTogdm9pZDtcblxuICAvKipcbiAgICogUmVsb2FkIGFsbCBkYXRhIGZyb20gcGFnZSAxXG4gICAqL1xuICByZWxvYWQoKSB7XG4gICAgdGhpcy5tb2RlbHMgPSBbXTtcbiAgICB0aGlzLnBhZ2UgPSAxO1xuICAgIGlmICghdGhpcy5pc1dvcmtpbmcpIHtcbiAgICAgIHRoaXMubG9hZERhdGEoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2FuIGJlIGNhbGxlZCB3aGVuIHRoZSB1c2VyIGlzIHNjcm9sbGluZyxcbiAgICogdG8gdHJpZ2dlciBsb2FkaW5nIGEgbmV3IHBhZ2Ugb2YgZGF0YVxuICAgKi9cbiAgb25TY3JvbGwoKSB7XG4gICAgaWYgKCF0aGlzLmlzV29ya2luZyAmJiB0aGlzLnBhZ2UgPCB0aGlzLmxhc3RQYWdlKSB7XG4gICAgICB0aGlzLnBhZ2UgKz0gMTtcbiAgICAgIHRoaXMubG9hZERhdGEoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVzZXQgdGhlIGZpbHRlci5cbiAgICpcbiAgICogQHBhcmFtIGZpZWxkXG4gICAqL1xuICByZXNldEZpbHRlcihmaWVsZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJGb3JtLmdldChmaWVsZCkucmVzZXQoJycpO1xuICB9XG5cbn1cbiJdfQ==
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktbGlzdGluZy1jb21wb25lbnQuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2Jhc2UtbW9kZWwvdGVjaGxpZnktbGlzdGluZy1jb21wb25lbnQuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXJFOzs7Ozs7Ozs7O0dBVUc7QUFFSSxJQUFlLGtDQUFrQyxHQUFqRCxNQUFlLGtDQUFrQztJQUV0RCxNQUFNLEdBQVUsRUFBRSxDQUFDO0lBQ25CLGdCQUFnQixHQUFVLEVBQUUsQ0FBQztJQUM3QixhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLElBQUksR0FBRyxDQUFDLENBQUM7SUFDVCxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBQ2IsUUFBUSxHQUFHLENBQUMsQ0FBQztJQUNiLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDbEIsVUFBVSxDQUFNO0lBRWhCOztPQUVHO0lBQ0gsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDdkUsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFPRDs7T0FFRztJQUNILE1BQU07UUFDSixJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ2pCO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDaEQsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUM7WUFDZixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDakI7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxLQUFhO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFlBQVksQ0FBQyxLQUFVLEVBQUUsS0FBYTtRQUNwQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQVksQ0FBQyxLQUFVO1FBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsWUFBWSxDQUFDLEtBQWE7UUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUztRQUNQLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUM3QixLQUFLLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDdkMsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO2dCQUN0QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUN0QztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxtQkFBbUIsQ0FBQyxLQUFVLEVBQUUsS0FBVTtRQUN4QyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7WUFDakIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDdkM7YUFDSTtZQUNILElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBWSxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQzlGO0lBQ0gsQ0FBQztDQUNGLENBQUE7QUFsSHFCLGtDQUFrQztJQUR2RCxZQUFZLEVBQUU7R0FDTyxrQ0FBa0MsQ0FrSHZEO1NBbEhxQixrQ0FBa0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcblxuLyoqXG4gKiBJbnRlcmZhY2UgdXNlZCB0byBlbnN1cmUgd2UgaGF2ZSBhIGNvbnNpc3RlbnQgc3RydWN0dXJlIGFjcm9zcyBvdXIgbGlzdGluZyBwYWdlc1xuICpcbiAqIEB0b2RvIFRoaXMgc2hvdWxkIGJlIG1vdmVkIHRvIG5neC10ZWNobGlmeS1jb3JlXG4gKlxuICogQWR2YW50YWdlcyBvZiB0aGlzIGFic3RyYWN0IGNsYXNzXG4gKiAtIExlc3MgY29kZSwgbGVzcyBtYWludGVuYW5jZSwgbGVzcyBidWdzXG4gKiAtIG1vcmUgY29uc2lzdGVudCBjb2RlXG4gKiAtIGNvbW1lbnRzIG9uIG1vcmUgY29kZVxuICogLSBzYXZlIHRpbWUsIHNhdmUgZW5lcmd5XG4gKi9cbkBVbnRpbERlc3Ryb3koKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRlY2hsaWZ5TGlzdGluZ0NvbnRyb2xsZXJJbnRlcmZhY2Uge1xuXG4gIG1vZGVsczogYW55W10gPSBbXTtcbiAgc2VsZWN0ZWRNb2RlbElkczogYW55W10gPSBbXTtcbiAgaXNBbGxTZWxlY3RlZCA9IGZhbHNlO1xuICBwYWdlID0gMTtcbiAgcGVyUGFnZSA9IDI1O1xuICBsYXN0UGFnZSA9IDA7XG4gIGlzV29ya2luZyA9IGZhbHNlO1xuICBmaWx0ZXJGb3JtOiBhbnk7XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHRoYXQgbGlzdGVucyBmb3IgYW55IGNoYW5nZXMgaW4gdGhlIGZvcm0gZ3JvdXAgdG8gYXBwbHkgdGhlIGZpbHRlcnNcbiAgICovXG4gIGxpc3RlbkZvckNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJGb3JtLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSg1MDApLCB1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnJlbG9hZCgpO1xuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRnVuY3Rpb24gdGhhdCBsb2FkcyB0aGUgbWFpbiBtb2RlbHMgb2YgdGhlIGFwcGxpY2F0aW9uXG4gICAqL1xuICBhYnN0cmFjdCBsb2FkRGF0YSgpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBSZWxvYWQgYWxsIGRhdGEgZnJvbSBwYWdlIDFcbiAgICovXG4gIHJlbG9hZCgpOiB2b2lkIHtcbiAgICB0aGlzLm1vZGVscyA9IFtdO1xuICAgIHRoaXMuc2VsZWN0ZWRNb2RlbElkcyA9IFtdO1xuICAgIHRoaXMucGFnZSA9IDE7XG4gICAgaWYgKCF0aGlzLmlzV29ya2luZykge1xuICAgICAgdGhpcy5sb2FkRGF0YSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDYW4gYmUgY2FsbGVkIHdoZW4gdGhlIHVzZXIgaXMgc2Nyb2xsaW5nLFxuICAgKiB0byB0cmlnZ2VyIGxvYWRpbmcgYSBuZXcgcGFnZSBvZiBkYXRhXG4gICAqL1xuICBvblNjcm9sbCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNXb3JraW5nICYmIHRoaXMucGFnZSA8IHRoaXMubGFzdFBhZ2UpIHtcbiAgICAgIHRoaXMucGFnZSArPSAxO1xuICAgICAgdGhpcy5sb2FkRGF0YSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCB0aGUgRmlsdGVyLlxuICAgKlxuICAgKiBAcGFyYW0gZmllbGQgRmllbGQgbmFtZS5cbiAgICovXG4gIHJlc2V0RmlsdGVyKGZpZWxkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmZpbHRlckZvcm0uZ2V0KGZpZWxkKS5yZXNldCgnJyk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyBhIHNwZWNpZmljIHJvdyBpbiB0aGUgdGFibGUuXG4gICAqIEBwYXJhbSBtb2RlbCBUaGUgbW9kZWwgdG8gYmUgdXBkYXRlZC5cbiAgICogQHBhcmFtIGluZGV4IFRoZSBpbmRleCBvZiB0aGUgbW9kZWwgaW4gdGhlIGxpc3QuXG4gICAqL1xuICBtb2RlbFVwZGF0ZWQobW9kZWw6IGFueSwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMubW9kZWxzW2luZGV4XSA9IG1vZGVsO1xuICAgIHRoaXMubW9kZWxzID0gWy4uLnRoaXMubW9kZWxzXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgbmV3IG1vZGVsIGF0IHRoZSBmaXJzdCBwb3NpdGlvbiBpbiB0aGUgdGFibGUuXG4gICAqIEBwYXJhbSBtb2RlbCBUaGUgbmV3IG1vZGVsIHRvIGJlIGFkZGVkLlxuICAgKi9cbiAgbW9kZWxDcmVhdGVkKG1vZGVsOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm1vZGVscy51bnNoaWZ0KG1vZGVsKTtcbiAgICB0aGlzLm1vZGVscyA9IFsuLi50aGlzLm1vZGVsc107XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGEgbW9kZWwgZnJvbSB0aGUgbGlzdC5cbiAgICogQHBhcmFtIGluZGV4IEluZGV4IG9mIHRoZSBtb2RlbCBpbiB0aGUgbGlzdC5cbiAgICovXG4gIG1vZGVsRGVsZXRlZChpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5tb2RlbHMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB0aGlzLm1vZGVscyA9IFsuLi50aGlzLm1vZGVsc107XG4gIH1cblxuICAvKipcbiAgICogVXNlZCBmb3IgbXVsdGkgc2VsZWN0XG4gICAqIFRyaWdlcnJlZCB3aGVuIHNlbGVjdCBhbGwgaXMgdG9nZ2xlZFxuICAgKi9cbiAgc2VsZWN0QWxsKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRNb2RlbElkcyA9IFtdO1xuICAgIHRoaXMubW9kZWxzLm1hcCgobW9kZWw6IGFueSkgPT4ge1xuICAgICAgbW9kZWwuaXNfc2VsZWN0ZWQgPSB0aGlzLmlzQWxsU2VsZWN0ZWQ7XG4gICAgICBpZiAodGhpcy5pc0FsbFNlbGVjdGVkKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNb2RlbElkcy5wdXNoKG1vZGVsLmlkKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLm1vZGVscyA9IFsuLi50aGlzLm1vZGVsc107XG4gIH1cblxuICAvKipcbiAgICogVXNlZCBmb3IgbXVsdGkgc2VsZWN0XG4gICAqIFRyaWdlcnJlZCBpZiBhbnkgZW50cnkgc2VjdGlvbiBpcyBtb2RpZmllZFxuICAgKi9cbiAgaXNTZWxlY3Rpb25Nb2RpZmllZChldmVudDogYW55LCBtb2RlbDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5pc0FsbFNlbGVjdGVkID0gZmFsc2U7XG4gICAgaWYgKGV2ZW50LmNoZWNrZWQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRNb2RlbElkcy5wdXNoKG1vZGVsPy5pZCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZE1vZGVsSWRzID0gdGhpcy5zZWxlY3RlZE1vZGVsSWRzLmZpbHRlcigobW9kZWxJZDogYW55KSA9PiBtb2RlbElkICE9IG1vZGVsPy5pZCk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -87,10 +87,10 @@ export class ChangePasswordComponent {
87
87
  return this.formValidatorService.getErrorMessage(field, this.passwordResetForm, errorMessages);
88
88
  }
89
89
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChangePasswordComponent, deps: [{ token: i1.HttpService }, { token: i1.AlertService }, { token: i2.Router }, { token: i3.CurrentUserService }, { token: i4.UntypedFormBuilder }, { token: i1.ErrorHandlerService }, { token: i1.FormValidatorService }], target: i0.ɵɵFactoryTarget.Component });
90
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ChangePasswordComponent, selector: "app-change-password", ngImport: i0, template: "<div fxLayout=\"column wrap\" fxFlexFill fxLayoutAlign=\"center center\">\n <mat-card>\n <mat-card-title fxLayoutAlign=\"center center\">\n Update Your Password\n </mat-card-title>\n <mat-card-subtitle fxLayoutAlign=\"center center\">\n <small class=\"text-muted\" *ngIf=\"user?.is_temporary_password\">\n You\u2019re currently using a temporary password, please change it to proceed\n </small>\n </mat-card-subtitle>\n <form [formGroup]=\"passwordResetForm\" (ngSubmit)=\"saveNewPassword()\">\n <mat-card-content fxLayout=\"column wrap\" fxLayoutGap=\"1rem\">\n <mat-form-field fxFlex=\"100%\">\n <mat-label>Current Password</mat-label>\n <input matInput formControlName=\"current_password\"\n placeholder=\"Current Password\"\n type=\"password\"\n autocomplete=\"off\"\n required />\n <mat-hint>Your current password.</mat-hint>\n <mat-error *ngIf=\"isFieldValid('current_password')\">{{getErrorMessage('current_password')}}\n </mat-error>\n </mat-form-field>\n <mat-form-field fxFlex=\"100%\">\n <mat-label>New Password</mat-label>\n <input matInput formControlName=\"password\"\n placeholder=\"New Password\"\n [type]=\"passwordHide ? 'password' : 'text'\"\n autocomplete=\"off\"\n required />\n <button matSuffix mat-icon-button (click)=\"passwordHide = !passwordHide\" type=\"button\">\n <mat-icon>{{passwordHide ? 'visibility_off' : 'visibility'}}</mat-icon>\n </button>\n <mat-error *ngIf=\"isFieldValid('password')\">{{getErrorMessage('password')}}</mat-error>\n <mat-hint>The new password you would like to use.</mat-hint>\n </mat-form-field>\n <mat-form-field fxFlex=\"100%\">\n <mat-label>Confirm Password</mat-label>\n <input matInput formControlName=\"password_confirmation\" placeholder=\"Confirm Password\"\n [type]=\"passwordConfirmationHide ? 'password' : 'text'\" autocomplete=\"off\" required />\n <button matSuffix mat-icon-button (click)=\"passwordConfirmationHide = !passwordConfirmationHide\" type=\"button\">\n <mat-icon>{{passwordConfirmationHide ? 'visibility_off' : 'visibility'}}</mat-icon>\n </button>\n <mat-error *ngIf=\"isFieldValid('password_confirmation')\">{{getErrorMessage('password_confirmation')}}</mat-error>\n </mat-form-field>\n </mat-card-content>\n <div class=\"mt-2 mb-2\">\n <techlify-password-requirement-check [password]=\"passwordResetForm.get('password').value\"></techlify-password-requirement-check>\n </div>\n <mat-card-actions fxLayoutAlign=\"end\">\n <button mat-raised-button color=primary type=\"submit\" [disabled]=\"isWorking\">\n Change Password\n </button>\n </mat-card-actions>\n </form>\n </mat-card>\n</div>\n", styles: ["mat-card{width:500px}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i7.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i10.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i10.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i10.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "directive", type: i10.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i11.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i11.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i11.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i11.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i11.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i12.PasswordRequirementCheckComponent, selector: "techlify-password-requirement-check", inputs: ["password"] }] });
90
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ChangePasswordComponent, selector: "app-change-password", ngImport: i0, template: "<div class=\"h-100 d-flex justify-content-center align-items-center w-100\">\n <div class=\"row w-100\">\n <div class=\"col-lg-6 col-md-8 col-sm-10 col-xs-12 col-12 mx-auto\">\n <mat-card>\n <mat-card-title>\n Update Your Password\n </mat-card-title>\n <mat-card-subtitle>\n <small class=\"text-muted\" *ngIf=\"user?.is_temporary_password\">\n You\u2019re currently using a temporary password, please change it to proceed\n </small>\n </mat-card-subtitle>\n <form [formGroup]=\"passwordResetForm\" (ngSubmit)=\"saveNewPassword()\">\n <mat-card-content fxLayout=\"column wrap\" fxLayoutGap=\"1rem\">\n <mat-form-field fxFlex=\"100%\">\n <mat-label>Current Password</mat-label>\n <input matInput formControlName=\"current_password\"\n placeholder=\"Current Password\"\n type=\"password\"\n autocomplete=\"off\"\n required />\n <mat-hint>Your current password.</mat-hint>\n <mat-error *ngIf=\"isFieldValid('current_password')\">\n {{getErrorMessage('current_password')}}\n </mat-error>\n </mat-form-field>\n <mat-form-field fxFlex=\"100%\">\n <mat-label>New Password</mat-label>\n <input matInput formControlName=\"password\"\n placeholder=\"New Password\"\n [type]=\"passwordHide ? 'password' : 'text'\"\n autocomplete=\"off\"\n required />\n <button matSuffix mat-icon-button (click)=\"passwordHide = !passwordHide\" type=\"button\">\n <mat-icon>{{passwordHide ? 'visibility_off' : 'visibility'}}</mat-icon>\n </button>\n <mat-error *ngIf=\"isFieldValid('password')\">\n {{getErrorMessage('password')}}\n </mat-error>\n <mat-hint>The new password you would like to use.</mat-hint>\n </mat-form-field>\n <mat-form-field fxFlex=\"100%\">\n <mat-label>Confirm Password</mat-label>\n <input matInput formControlName=\"password_confirmation\"\n placeholder=\"Confirm Password\"\n [type]=\"passwordConfirmationHide ? 'password' : 'text'\"\n autocomplete=\"off\" required />\n <button matSuffix mat-icon-button (click)=\"passwordConfirmationHide = !passwordConfirmationHide\" type=\"button\">\n <mat-icon>{{passwordConfirmationHide ? 'visibility_off' : 'visibility'}}</mat-icon>\n </button>\n <mat-error *ngIf=\"isFieldValid('password_confirmation')\">\n {{getErrorMessage('password_confirmation')}}\n </mat-error>\n </mat-form-field>\n </mat-card-content>\n <div class=\"mt-2 mb-2\">\n <techlify-password-requirement-check [password]=\"passwordResetForm.get('password').value\"></techlify-password-requirement-check>\n </div>\n <mat-card-actions fxLayoutAlign=\"end\">\n <button mat-raised-button color=primary type=\"submit\" [disabled]=\"isWorking\">\n Change Password\n </button>\n </mat-card-actions>\n </form>\n </mat-card>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i7.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i10.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i10.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i10.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "directive", type: i10.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i11.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i11.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i11.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i11.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i12.PasswordRequirementCheckComponent, selector: "techlify-password-requirement-check", inputs: ["password"] }] });
91
91
  }
92
92
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChangePasswordComponent, decorators: [{
93
93
  type: Component,
94
- args: [{ selector: 'app-change-password', template: "<div fxLayout=\"column wrap\" fxFlexFill fxLayoutAlign=\"center center\">\n <mat-card>\n <mat-card-title fxLayoutAlign=\"center center\">\n Update Your Password\n </mat-card-title>\n <mat-card-subtitle fxLayoutAlign=\"center center\">\n <small class=\"text-muted\" *ngIf=\"user?.is_temporary_password\">\n You\u2019re currently using a temporary password, please change it to proceed\n </small>\n </mat-card-subtitle>\n <form [formGroup]=\"passwordResetForm\" (ngSubmit)=\"saveNewPassword()\">\n <mat-card-content fxLayout=\"column wrap\" fxLayoutGap=\"1rem\">\n <mat-form-field fxFlex=\"100%\">\n <mat-label>Current Password</mat-label>\n <input matInput formControlName=\"current_password\"\n placeholder=\"Current Password\"\n type=\"password\"\n autocomplete=\"off\"\n required />\n <mat-hint>Your current password.</mat-hint>\n <mat-error *ngIf=\"isFieldValid('current_password')\">{{getErrorMessage('current_password')}}\n </mat-error>\n </mat-form-field>\n <mat-form-field fxFlex=\"100%\">\n <mat-label>New Password</mat-label>\n <input matInput formControlName=\"password\"\n placeholder=\"New Password\"\n [type]=\"passwordHide ? 'password' : 'text'\"\n autocomplete=\"off\"\n required />\n <button matSuffix mat-icon-button (click)=\"passwordHide = !passwordHide\" type=\"button\">\n <mat-icon>{{passwordHide ? 'visibility_off' : 'visibility'}}</mat-icon>\n </button>\n <mat-error *ngIf=\"isFieldValid('password')\">{{getErrorMessage('password')}}</mat-error>\n <mat-hint>The new password you would like to use.</mat-hint>\n </mat-form-field>\n <mat-form-field fxFlex=\"100%\">\n <mat-label>Confirm Password</mat-label>\n <input matInput formControlName=\"password_confirmation\" placeholder=\"Confirm Password\"\n [type]=\"passwordConfirmationHide ? 'password' : 'text'\" autocomplete=\"off\" required />\n <button matSuffix mat-icon-button (click)=\"passwordConfirmationHide = !passwordConfirmationHide\" type=\"button\">\n <mat-icon>{{passwordConfirmationHide ? 'visibility_off' : 'visibility'}}</mat-icon>\n </button>\n <mat-error *ngIf=\"isFieldValid('password_confirmation')\">{{getErrorMessage('password_confirmation')}}</mat-error>\n </mat-form-field>\n </mat-card-content>\n <div class=\"mt-2 mb-2\">\n <techlify-password-requirement-check [password]=\"passwordResetForm.get('password').value\"></techlify-password-requirement-check>\n </div>\n <mat-card-actions fxLayoutAlign=\"end\">\n <button mat-raised-button color=primary type=\"submit\" [disabled]=\"isWorking\">\n Change Password\n </button>\n </mat-card-actions>\n </form>\n </mat-card>\n</div>\n", styles: ["mat-card{width:500px}\n"] }]
94
+ args: [{ selector: 'app-change-password', template: "<div class=\"h-100 d-flex justify-content-center align-items-center w-100\">\n <div class=\"row w-100\">\n <div class=\"col-lg-6 col-md-8 col-sm-10 col-xs-12 col-12 mx-auto\">\n <mat-card>\n <mat-card-title>\n Update Your Password\n </mat-card-title>\n <mat-card-subtitle>\n <small class=\"text-muted\" *ngIf=\"user?.is_temporary_password\">\n You\u2019re currently using a temporary password, please change it to proceed\n </small>\n </mat-card-subtitle>\n <form [formGroup]=\"passwordResetForm\" (ngSubmit)=\"saveNewPassword()\">\n <mat-card-content fxLayout=\"column wrap\" fxLayoutGap=\"1rem\">\n <mat-form-field fxFlex=\"100%\">\n <mat-label>Current Password</mat-label>\n <input matInput formControlName=\"current_password\"\n placeholder=\"Current Password\"\n type=\"password\"\n autocomplete=\"off\"\n required />\n <mat-hint>Your current password.</mat-hint>\n <mat-error *ngIf=\"isFieldValid('current_password')\">\n {{getErrorMessage('current_password')}}\n </mat-error>\n </mat-form-field>\n <mat-form-field fxFlex=\"100%\">\n <mat-label>New Password</mat-label>\n <input matInput formControlName=\"password\"\n placeholder=\"New Password\"\n [type]=\"passwordHide ? 'password' : 'text'\"\n autocomplete=\"off\"\n required />\n <button matSuffix mat-icon-button (click)=\"passwordHide = !passwordHide\" type=\"button\">\n <mat-icon>{{passwordHide ? 'visibility_off' : 'visibility'}}</mat-icon>\n </button>\n <mat-error *ngIf=\"isFieldValid('password')\">\n {{getErrorMessage('password')}}\n </mat-error>\n <mat-hint>The new password you would like to use.</mat-hint>\n </mat-form-field>\n <mat-form-field fxFlex=\"100%\">\n <mat-label>Confirm Password</mat-label>\n <input matInput formControlName=\"password_confirmation\"\n placeholder=\"Confirm Password\"\n [type]=\"passwordConfirmationHide ? 'password' : 'text'\"\n autocomplete=\"off\" required />\n <button matSuffix mat-icon-button (click)=\"passwordConfirmationHide = !passwordConfirmationHide\" type=\"button\">\n <mat-icon>{{passwordConfirmationHide ? 'visibility_off' : 'visibility'}}</mat-icon>\n </button>\n <mat-error *ngIf=\"isFieldValid('password_confirmation')\">\n {{getErrorMessage('password_confirmation')}}\n </mat-error>\n </mat-form-field>\n </mat-card-content>\n <div class=\"mt-2 mb-2\">\n <techlify-password-requirement-check [password]=\"passwordResetForm.get('password').value\"></techlify-password-requirement-check>\n </div>\n <mat-card-actions fxLayoutAlign=\"end\">\n <button mat-raised-button color=primary type=\"submit\" [disabled]=\"isWorking\">\n Change Password\n </button>\n </mat-card-actions>\n </form>\n </mat-card>\n </div>\n </div>\n</div>\n" }]
95
95
  }], ctorParameters: function () { return [{ type: i1.HttpService }, { type: i1.AlertService }, { type: i2.Router }, { type: i3.CurrentUserService }, { type: i4.UntypedFormBuilder }, { type: i1.ErrorHandlerService }, { type: i1.FormValidatorService }]; } });
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlLXBhc3N3b3JkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvY2hhbmdlLXBhc3N3b3JkL2NoYW5nZS1wYXNzd29yZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2NoYW5nZS1wYXNzd29yZC9jaGFuZ2UtcGFzc3dvcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0VBQW9FO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFLbEQsT0FBTyxFQUF3QyxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RyxPQUFPLEVBQXNCLElBQUksRUFBRSxNQUFNLFNBQVMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFFbkQsTUFBTSxhQUFhLEdBQVE7SUFDekIsZ0JBQWdCLEVBQUU7UUFDaEIsUUFBUSxFQUFFLDhCQUE4QjtLQUN6QztJQUNELFFBQVEsRUFBRTtRQUNSLFFBQVEsRUFBRSwwQkFBMEI7UUFDcEMsYUFBYSxFQUFFLG1EQUFtRDtRQUNsRSxNQUFNLEVBQUUsMkNBQTJDO1FBQ25ELEtBQUssRUFBRSwwQ0FBMEM7UUFDakQsU0FBUyxFQUFFLDRCQUE0QjtLQUN4QztJQUNELHFCQUFxQixFQUFFO1FBQ3JCLFFBQVEsRUFBRSw4QkFBOEI7UUFDeEMsZ0JBQWdCLEVBQUUsdUJBQXVCO0tBQzFDO0NBQ0YsQ0FBQztBQU9GLE1BQU0sT0FBTyx1QkFBdUI7SUFReEI7SUFDQTtJQUNBO0lBQ0Q7SUFDQztJQUNBO0lBQ0E7SUFiVixZQUFZLEdBQUcsSUFBSSxDQUFDO0lBQ3BCLHdCQUF3QixHQUFHLElBQUksQ0FBQztJQUNoQyxpQkFBaUIsQ0FBbUI7SUFDcEMsSUFBSSxDQUFPO0lBQ1gsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUVsQixZQUNVLElBQWlCLEVBQ2pCLFlBQTBCLEVBQzFCLE1BQWMsRUFDZixrQkFBc0MsRUFDckMsRUFBc0IsRUFDdEIsWUFBaUMsRUFDakMsb0JBQTBDO1FBTjFDLFNBQUksR0FBSixJQUFJLENBQWE7UUFDakIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNmLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDckMsT0FBRSxHQUFGLEVBQUUsQ0FBb0I7UUFDdEIsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBQ2pDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFFbEQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDaEMsZ0JBQWdCLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUNqRSxRQUFRLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLEVBQ2pDLFVBQVUsQ0FBQyxRQUFRLENBQ3BCO1lBQ0QscUJBQXFCLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztTQUN2RSxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQy9ELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRTtZQUNqQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMxQyxPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQ0FBa0MsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUNoRyxHQUFHLENBQUMsRUFBRTtZQUNKLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLG9DQUFvQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQzVFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQ0YsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDZCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQWE7UUFDeEIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQWE7UUFDM0IsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDakcsQ0FBQzt3R0F6RFUsdUJBQXVCOzRGQUF2Qix1QkFBdUIsMkRDL0JwQyxzOUZBeURBOzs0RkQxQmEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIHRzbGludDpkaXNhYmxlOmNvbXBvbmVudC1zZWxlY3RvciBvbmUtdmFyaWFibGUtcGVyLWRlY2xhcmF0aW9uICovXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHtIdHRwU2VydmljZSwgQWxlcnRTZXJ2aWNlLCBFcnJvckhhbmRsZXJTZXJ2aWNlLCBGb3JtVmFsaWRhdG9yU2VydmljZSB9IGZyb20gJy4uL2NvcmUnO1xuXG5pbXBvcnQgeyBVbnR5cGVkRm9ybUdyb3VwLCBVbnR5cGVkRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMsIFVudHlwZWRGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEN1cnJlbnRVc2VyU2VydmljZSwgVXNlciB9IGZyb20gJy4uL3VzZXInO1xuXG5jb25zdCBlcnJvck1lc3NhZ2VzOiBhbnkgPSB7XG4gIGN1cnJlbnRfcGFzc3dvcmQ6IHtcbiAgICByZXF1aXJlZDogJ0N1cnJlbnQgcGFzc3dvcmQgaXMgcmVxdWlyZWQnXG4gIH0sXG4gIHBhc3N3b3JkOiB7XG4gICAgcmVxdWlyZWQ6ICdOZXcgcGFzc3dvcmQgaXMgcmVxdWlyZWQnLFxuICAgIGNhcGl0YWxMZXR0ZXI6ICdQYXNzd29yZCBzaG91bGQgY29udGFpbiBhdC1sZWFzdCAxIGNhcGl0YWwgbGV0dGVyJyxcbiAgICBzeW1ib2w6ICdQYXNzd29yZCBzaG91bGQgY29udGFpbiBhdC1sZWFzdCAxIHN5bWJvbCcsXG4gICAgZGlnaXQ6ICdQYXNzd29yZCBzaG91bGQgY29udGFpbiBhdC1sZWFzdCAxIGRpZ2l0JyxcbiAgICBtaW5MZW5ndGg6ICdTaG91bGQgaGF2ZSBtaW5pbXVtIGxlbmd0aCcsXG4gIH0sXG4gIHBhc3N3b3JkX2NvbmZpcm1hdGlvbjoge1xuICAgIHJlcXVpcmVkOiAnQ29uZmlybSBwYXNzd29yZCBpcyByZXF1aXJlZCcsXG4gICAgcGFzc3dvcmRNaXNtYXRjaDogJ1Bhc3N3b3JkIHNob3VsZCBtYXRjaCdcbiAgfVxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNoYW5nZS1wYXNzd29yZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGFuZ2UtcGFzc3dvcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jaGFuZ2UtcGFzc3dvcmQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDaGFuZ2VQYXNzd29yZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHBhc3N3b3JkSGlkZSA9IHRydWU7XG4gIHBhc3N3b3JkQ29uZmlybWF0aW9uSGlkZSA9IHRydWU7XG4gIHBhc3N3b3JkUmVzZXRGb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuICB1c2VyOiBVc2VyO1xuICBpc1dvcmtpbmcgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwdWJsaWMgY3VycmVudFVzZXJTZXJ2aWNlOiBDdXJyZW50VXNlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmYjogVW50eXBlZEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgZXJyb3JIYW5kbGVyOiBFcnJvckhhbmRsZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgZm9ybVZhbGlkYXRvclNlcnZpY2U6IEZvcm1WYWxpZGF0b3JTZXJ2aWNlLFxuICApIHtcbiAgICB0aGlzLnBhc3N3b3JkUmVzZXRGb3JtID0gZmIuZ3JvdXAoe1xuICAgICAgY3VycmVudF9wYXNzd29yZDogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICBwYXNzd29yZDogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJyxcbiAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgICksXG4gICAgICBwYXNzd29yZF9jb25maXJtYXRpb246IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy51c2VyID0gbmV3IFVzZXIoKTtcbiAgICB0aGlzLmN1cnJlbnRVc2VyU2VydmljZS5nZXRVc2VyT2JzZXJ2YWJsZSh0cnVlKS5zdWJzY3JpYmUodXNlciA9PiB7XG4gICAgICB0aGlzLnVzZXIgPSB1c2VyO1xuICAgIH0pO1xuICB9XG5cbiAgc2F2ZU5ld1Bhc3N3b3JkKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5wYXNzd29yZFJlc2V0Rm9ybS52YWxpZCkge1xuICAgICAgdGhpcy5wYXNzd29yZFJlc2V0Rm9ybS5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaXNXb3JraW5nID0gdHJ1ZTtcbiAgICB0aGlzLmh0dHAucGF0Y2goJ2FwaS91c2VyL2N1cnJlbnQvdXBkYXRlLXBhc3N3b3JkJywgdGhpcy5wYXNzd29yZFJlc2V0Rm9ybS52YWx1ZSkudG9Qcm9taXNlKCkudGhlbihcbiAgICAgIHJlcyA9PiB7XG4gICAgICAgIHRoaXMuaXNXb3JraW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZEFsZXJ0KCdTdWNjZXNzZnVsbHkgY2hhbmdlZCB5b3VyIHBhc3N3b3JkJywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvZGFzaGJvYXJkJ10pO1xuICAgICAgfVxuICAgICkuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgdGhpcy5lcnJvckhhbmRsZXIuaGFuZGxlRXJyb3IoZXJyb3IpO1xuICAgIH0pLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgdGhpcy5pc1dvcmtpbmcgPSBmYWxzZTtcbiAgICB9KTtcbiAgfVxuXG4gIGlzRmllbGRWYWxpZChmaWVsZDogc3RyaW5nKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5mb3JtVmFsaWRhdG9yU2VydmljZS5pc0ZpZWxkVmFsaWQoZmllbGQsIHRoaXMucGFzc3dvcmRSZXNldEZvcm0pO1xuICB9XG5cbiAgZ2V0RXJyb3JNZXNzYWdlKGZpZWxkOiBzdHJpbmcpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmZvcm1WYWxpZGF0b3JTZXJ2aWNlLmdldEVycm9yTWVzc2FnZShmaWVsZCwgdGhpcy5wYXNzd29yZFJlc2V0Rm9ybSwgZXJyb3JNZXNzYWdlcyk7XG4gIH1cbn1cbiIsIjxkaXYgZnhMYXlvdXQ9XCJjb2x1bW4gd3JhcFwiIGZ4RmxleEZpbGwgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cbiAgPG1hdC1jYXJkPlxuICAgIDxtYXQtY2FyZC10aXRsZSBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxuICAgICAgVXBkYXRlIFlvdXIgUGFzc3dvcmRcbiAgICA8L21hdC1jYXJkLXRpdGxlPlxuICAgIDxtYXQtY2FyZC1zdWJ0aXRsZSBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxuICAgICAgPHNtYWxsIGNsYXNzPVwidGV4dC1tdXRlZFwiICpuZ0lmPVwidXNlcj8uaXNfdGVtcG9yYXJ5X3Bhc3N3b3JkXCI+XG4gICAgICAgIFlvdeKAmXJlIGN1cnJlbnRseSB1c2luZyBhIHRlbXBvcmFyeSBwYXNzd29yZCwgcGxlYXNlIGNoYW5nZSBpdCB0byBwcm9jZWVkXG4gICAgICA8L3NtYWxsPlxuICAgIDwvbWF0LWNhcmQtc3VidGl0bGU+XG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJwYXNzd29yZFJlc2V0Rm9ybVwiIChuZ1N1Ym1pdCk9XCJzYXZlTmV3UGFzc3dvcmQoKVwiPlxuICAgICAgPG1hdC1jYXJkLWNvbnRlbnQgZnhMYXlvdXQ9XCJjb2x1bW4gd3JhcFwiIGZ4TGF5b3V0R2FwPVwiMXJlbVwiPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgZnhGbGV4PVwiMTAwJVwiPlxuICAgICAgICAgIDxtYXQtbGFiZWw+Q3VycmVudCBQYXNzd29yZDwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJjdXJyZW50X3Bhc3N3b3JkXCJcbiAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJDdXJyZW50IFBhc3N3b3JkXCJcbiAgICAgICAgICAgICAgICAgdHlwZT1cInBhc3N3b3JkXCJcbiAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgcmVxdWlyZWQgLz5cbiAgICAgICAgICA8bWF0LWhpbnQ+WW91ciBjdXJyZW50IHBhc3N3b3JkLjwvbWF0LWhpbnQ+XG4gICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImlzRmllbGRWYWxpZCgnY3VycmVudF9wYXNzd29yZCcpXCI+e3tnZXRFcnJvck1lc3NhZ2UoJ2N1cnJlbnRfcGFzc3dvcmQnKX19XG4gICAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBmeEZsZXg9XCIxMDAlXCI+XG4gICAgICAgICAgPG1hdC1sYWJlbD5OZXcgUGFzc3dvcmQ8L21hdC1sYWJlbD5cbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwicGFzc3dvcmRcIlxuICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIk5ldyBQYXNzd29yZFwiXG4gICAgICAgICAgICAgICAgIFt0eXBlXT1cInBhc3N3b3JkSGlkZSA/ICdwYXNzd29yZCcgOiAndGV4dCdcIlxuICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgICByZXF1aXJlZCAvPlxuICAgICAgICAgIDxidXR0b24gbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwicGFzc3dvcmRIaWRlID0gIXBhc3N3b3JkSGlkZVwiIHR5cGU9XCJidXR0b25cIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj57e3Bhc3N3b3JkSGlkZSA/ICd2aXNpYmlsaXR5X29mZicgOiAndmlzaWJpbGl0eSd9fTwvbWF0LWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImlzRmllbGRWYWxpZCgncGFzc3dvcmQnKVwiPnt7Z2V0RXJyb3JNZXNzYWdlKCdwYXNzd29yZCcpfX08L21hdC1lcnJvcj5cbiAgICAgICAgICA8bWF0LWhpbnQ+VGhlIG5ldyBwYXNzd29yZCB5b3Ugd291bGQgbGlrZSB0byB1c2UuPC9tYXQtaGludD5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGZ4RmxleD1cIjEwMCVcIj5cbiAgICAgICAgICA8bWF0LWxhYmVsPkNvbmZpcm0gUGFzc3dvcmQ8L21hdC1sYWJlbD5cbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwicGFzc3dvcmRfY29uZmlybWF0aW9uXCIgcGxhY2Vob2xkZXI9XCJDb25maXJtIFBhc3N3b3JkXCJcbiAgICAgICAgICAgICAgICAgW3R5cGVdPVwicGFzc3dvcmRDb25maXJtYXRpb25IaWRlID8gJ3Bhc3N3b3JkJyA6ICd0ZXh0J1wiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIHJlcXVpcmVkIC8+XG4gICAgICAgICAgPGJ1dHRvbiBtYXRTdWZmaXggbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJwYXNzd29yZENvbmZpcm1hdGlvbkhpZGUgPSAhcGFzc3dvcmRDb25maXJtYXRpb25IaWRlXCIgdHlwZT1cImJ1dHRvblwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPnt7cGFzc3dvcmRDb25maXJtYXRpb25IaWRlID8gJ3Zpc2liaWxpdHlfb2ZmJyA6ICd2aXNpYmlsaXR5J319PC9tYXQtaWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiaXNGaWVsZFZhbGlkKCdwYXNzd29yZF9jb25maXJtYXRpb24nKVwiPnt7Z2V0RXJyb3JNZXNzYWdlKCdwYXNzd29yZF9jb25maXJtYXRpb24nKX19PC9tYXQtZXJyb3I+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICA8ZGl2IGNsYXNzPVwibXQtMiBtYi0yXCI+XG4gICAgICAgIDx0ZWNobGlmeS1wYXNzd29yZC1yZXF1aXJlbWVudC1jaGVjayBbcGFzc3dvcmRdPVwicGFzc3dvcmRSZXNldEZvcm0uZ2V0KCdwYXNzd29yZCcpLnZhbHVlXCI+PC90ZWNobGlmeS1wYXNzd29yZC1yZXF1aXJlbWVudC1jaGVjaz5cbiAgICAgIDwvZGl2PlxuICAgICAgPG1hdC1jYXJkLWFjdGlvbnMgZnhMYXlvdXRBbGlnbj1cImVuZFwiPlxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPXByaW1hcnkgdHlwZT1cInN1Ym1pdFwiIFtkaXNhYmxlZF09XCJpc1dvcmtpbmdcIj5cbiAgICAgICAgICBDaGFuZ2UgUGFzc3dvcmRcbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L21hdC1jYXJkLWFjdGlvbnM+XG4gICAgPC9mb3JtPlxuICA8L21hdC1jYXJkPlxuPC9kaXY+XG4iXX0=
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlLXBhc3N3b3JkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvY2hhbmdlLXBhc3N3b3JkL2NoYW5nZS1wYXNzd29yZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2NoYW5nZS1wYXNzd29yZC9jaGFuZ2UtcGFzc3dvcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0VBQW9FO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFLbEQsT0FBTyxFQUF3QyxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RyxPQUFPLEVBQXNCLElBQUksRUFBRSxNQUFNLFNBQVMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFFbkQsTUFBTSxhQUFhLEdBQVE7SUFDekIsZ0JBQWdCLEVBQUU7UUFDaEIsUUFBUSxFQUFFLDhCQUE4QjtLQUN6QztJQUNELFFBQVEsRUFBRTtRQUNSLFFBQVEsRUFBRSwwQkFBMEI7UUFDcEMsYUFBYSxFQUFFLG1EQUFtRDtRQUNsRSxNQUFNLEVBQUUsMkNBQTJDO1FBQ25ELEtBQUssRUFBRSwwQ0FBMEM7UUFDakQsU0FBUyxFQUFFLDRCQUE0QjtLQUN4QztJQUNELHFCQUFxQixFQUFFO1FBQ3JCLFFBQVEsRUFBRSw4QkFBOEI7UUFDeEMsZ0JBQWdCLEVBQUUsdUJBQXVCO0tBQzFDO0NBQ0YsQ0FBQztBQU9GLE1BQU0sT0FBTyx1QkFBdUI7SUFReEI7SUFDQTtJQUNBO0lBQ0Q7SUFDQztJQUNBO0lBQ0E7SUFiVixZQUFZLEdBQUcsSUFBSSxDQUFDO0lBQ3BCLHdCQUF3QixHQUFHLElBQUksQ0FBQztJQUNoQyxpQkFBaUIsQ0FBbUI7SUFDcEMsSUFBSSxDQUFPO0lBQ1gsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUVsQixZQUNVLElBQWlCLEVBQ2pCLFlBQTBCLEVBQzFCLE1BQWMsRUFDZixrQkFBc0MsRUFDckMsRUFBc0IsRUFDdEIsWUFBaUMsRUFDakMsb0JBQTBDO1FBTjFDLFNBQUksR0FBSixJQUFJLENBQWE7UUFDakIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNmLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDckMsT0FBRSxHQUFGLEVBQUUsQ0FBb0I7UUFDdEIsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBQ2pDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFFbEQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDaEMsZ0JBQWdCLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUNqRSxRQUFRLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLEVBQ2pDLFVBQVUsQ0FBQyxRQUFRLENBQ3BCO1lBQ0QscUJBQXFCLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztTQUN2RSxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQy9ELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRTtZQUNqQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMxQyxPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQ0FBa0MsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUNoRyxHQUFHLENBQUMsRUFBRTtZQUNKLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLG9DQUFvQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQzVFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQ0YsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDZCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQWE7UUFDeEIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQWE7UUFDM0IsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDakcsQ0FBQzt3R0F6RFUsdUJBQXVCOzRGQUF2Qix1QkFBdUIsMkRDL0JwQyxvM0dBb0VBOzs0RkRyQ2EsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIHRzbGludDpkaXNhYmxlOmNvbXBvbmVudC1zZWxlY3RvciBvbmUtdmFyaWFibGUtcGVyLWRlY2xhcmF0aW9uICovXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHtIdHRwU2VydmljZSwgQWxlcnRTZXJ2aWNlLCBFcnJvckhhbmRsZXJTZXJ2aWNlLCBGb3JtVmFsaWRhdG9yU2VydmljZSB9IGZyb20gJy4uL2NvcmUnO1xuXG5pbXBvcnQgeyBVbnR5cGVkRm9ybUdyb3VwLCBVbnR5cGVkRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMsIFVudHlwZWRGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEN1cnJlbnRVc2VyU2VydmljZSwgVXNlciB9IGZyb20gJy4uL3VzZXInO1xuXG5jb25zdCBlcnJvck1lc3NhZ2VzOiBhbnkgPSB7XG4gIGN1cnJlbnRfcGFzc3dvcmQ6IHtcbiAgICByZXF1aXJlZDogJ0N1cnJlbnQgcGFzc3dvcmQgaXMgcmVxdWlyZWQnXG4gIH0sXG4gIHBhc3N3b3JkOiB7XG4gICAgcmVxdWlyZWQ6ICdOZXcgcGFzc3dvcmQgaXMgcmVxdWlyZWQnLFxuICAgIGNhcGl0YWxMZXR0ZXI6ICdQYXNzd29yZCBzaG91bGQgY29udGFpbiBhdC1sZWFzdCAxIGNhcGl0YWwgbGV0dGVyJyxcbiAgICBzeW1ib2w6ICdQYXNzd29yZCBzaG91bGQgY29udGFpbiBhdC1sZWFzdCAxIHN5bWJvbCcsXG4gICAgZGlnaXQ6ICdQYXNzd29yZCBzaG91bGQgY29udGFpbiBhdC1sZWFzdCAxIGRpZ2l0JyxcbiAgICBtaW5MZW5ndGg6ICdTaG91bGQgaGF2ZSBtaW5pbXVtIGxlbmd0aCcsXG4gIH0sXG4gIHBhc3N3b3JkX2NvbmZpcm1hdGlvbjoge1xuICAgIHJlcXVpcmVkOiAnQ29uZmlybSBwYXNzd29yZCBpcyByZXF1aXJlZCcsXG4gICAgcGFzc3dvcmRNaXNtYXRjaDogJ1Bhc3N3b3JkIHNob3VsZCBtYXRjaCdcbiAgfVxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNoYW5nZS1wYXNzd29yZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGFuZ2UtcGFzc3dvcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jaGFuZ2UtcGFzc3dvcmQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDaGFuZ2VQYXNzd29yZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHBhc3N3b3JkSGlkZSA9IHRydWU7XG4gIHBhc3N3b3JkQ29uZmlybWF0aW9uSGlkZSA9IHRydWU7XG4gIHBhc3N3b3JkUmVzZXRGb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuICB1c2VyOiBVc2VyO1xuICBpc1dvcmtpbmcgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwdWJsaWMgY3VycmVudFVzZXJTZXJ2aWNlOiBDdXJyZW50VXNlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmYjogVW50eXBlZEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgZXJyb3JIYW5kbGVyOiBFcnJvckhhbmRsZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgZm9ybVZhbGlkYXRvclNlcnZpY2U6IEZvcm1WYWxpZGF0b3JTZXJ2aWNlLFxuICApIHtcbiAgICB0aGlzLnBhc3N3b3JkUmVzZXRGb3JtID0gZmIuZ3JvdXAoe1xuICAgICAgY3VycmVudF9wYXNzd29yZDogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICBwYXNzd29yZDogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJyxcbiAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgICksXG4gICAgICBwYXNzd29yZF9jb25maXJtYXRpb246IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy51c2VyID0gbmV3IFVzZXIoKTtcbiAgICB0aGlzLmN1cnJlbnRVc2VyU2VydmljZS5nZXRVc2VyT2JzZXJ2YWJsZSh0cnVlKS5zdWJzY3JpYmUodXNlciA9PiB7XG4gICAgICB0aGlzLnVzZXIgPSB1c2VyO1xuICAgIH0pO1xuICB9XG5cbiAgc2F2ZU5ld1Bhc3N3b3JkKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5wYXNzd29yZFJlc2V0Rm9ybS52YWxpZCkge1xuICAgICAgdGhpcy5wYXNzd29yZFJlc2V0Rm9ybS5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaXNXb3JraW5nID0gdHJ1ZTtcbiAgICB0aGlzLmh0dHAucGF0Y2goJ2FwaS91c2VyL2N1cnJlbnQvdXBkYXRlLXBhc3N3b3JkJywgdGhpcy5wYXNzd29yZFJlc2V0Rm9ybS52YWx1ZSkudG9Qcm9taXNlKCkudGhlbihcbiAgICAgIHJlcyA9PiB7XG4gICAgICAgIHRoaXMuaXNXb3JraW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZEFsZXJ0KCdTdWNjZXNzZnVsbHkgY2hhbmdlZCB5b3VyIHBhc3N3b3JkJywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvZGFzaGJvYXJkJ10pO1xuICAgICAgfVxuICAgICkuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgdGhpcy5lcnJvckhhbmRsZXIuaGFuZGxlRXJyb3IoZXJyb3IpO1xuICAgIH0pLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgdGhpcy5pc1dvcmtpbmcgPSBmYWxzZTtcbiAgICB9KTtcbiAgfVxuXG4gIGlzRmllbGRWYWxpZChmaWVsZDogc3RyaW5nKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5mb3JtVmFsaWRhdG9yU2VydmljZS5pc0ZpZWxkVmFsaWQoZmllbGQsIHRoaXMucGFzc3dvcmRSZXNldEZvcm0pO1xuICB9XG5cbiAgZ2V0RXJyb3JNZXNzYWdlKGZpZWxkOiBzdHJpbmcpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmZvcm1WYWxpZGF0b3JTZXJ2aWNlLmdldEVycm9yTWVzc2FnZShmaWVsZCwgdGhpcy5wYXNzd29yZFJlc2V0Rm9ybSwgZXJyb3JNZXNzYWdlcyk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJoLTEwMCBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgdy0xMDBcIj5cbiAgPGRpdiBjbGFzcz1cInJvdyB3LTEwMFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctNiBjb2wtbWQtOCBjb2wtc20tMTAgY29sLXhzLTEyIGNvbC0xMiBteC1hdXRvXCI+XG4gICAgICA8bWF0LWNhcmQ+XG4gICAgICAgIDxtYXQtY2FyZC10aXRsZT5cbiAgICAgICAgICBVcGRhdGUgWW91ciBQYXNzd29yZFxuICAgICAgICA8L21hdC1jYXJkLXRpdGxlPlxuICAgICAgICA8bWF0LWNhcmQtc3VidGl0bGU+XG4gICAgICAgICAgPHNtYWxsIGNsYXNzPVwidGV4dC1tdXRlZFwiICpuZ0lmPVwidXNlcj8uaXNfdGVtcG9yYXJ5X3Bhc3N3b3JkXCI+XG4gICAgICAgICAgICBZb3XigJlyZSBjdXJyZW50bHkgdXNpbmcgYSB0ZW1wb3JhcnkgcGFzc3dvcmQsIHBsZWFzZSBjaGFuZ2UgaXQgdG8gcHJvY2VlZFxuICAgICAgICAgIDwvc21hbGw+XG4gICAgICAgIDwvbWF0LWNhcmQtc3VidGl0bGU+XG4gICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwicGFzc3dvcmRSZXNldEZvcm1cIiAobmdTdWJtaXQpPVwic2F2ZU5ld1Bhc3N3b3JkKClcIj5cbiAgICAgICAgICA8bWF0LWNhcmQtY29udGVudCBmeExheW91dD1cImNvbHVtbiB3cmFwXCIgZnhMYXlvdXRHYXA9XCIxcmVtXCI+XG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgZnhGbGV4PVwiMTAwJVwiPlxuICAgICAgICAgICAgICA8bWF0LWxhYmVsPkN1cnJlbnQgUGFzc3dvcmQ8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cImN1cnJlbnRfcGFzc3dvcmRcIlxuICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJDdXJyZW50IFBhc3N3b3JkXCJcbiAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJwYXNzd29yZFwiXG4gICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQgLz5cbiAgICAgICAgICAgICAgPG1hdC1oaW50PllvdXIgY3VycmVudCBwYXNzd29yZC48L21hdC1oaW50PlxuICAgICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiaXNGaWVsZFZhbGlkKCdjdXJyZW50X3Bhc3N3b3JkJylcIj5cbiAgICAgICAgICAgICAgICB7e2dldEVycm9yTWVzc2FnZSgnY3VycmVudF9wYXNzd29yZCcpfX1cbiAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGZ4RmxleD1cIjEwMCVcIj5cbiAgICAgICAgICAgICAgPG1hdC1sYWJlbD5OZXcgUGFzc3dvcmQ8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cInBhc3N3b3JkXCJcbiAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiTmV3IFBhc3N3b3JkXCJcbiAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cInBhc3N3b3JkSGlkZSA/ICdwYXNzd29yZCcgOiAndGV4dCdcIlxuICAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkIC8+XG4gICAgICAgICAgICAgIDxidXR0b24gbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwicGFzc3dvcmRIaWRlID0gIXBhc3N3b3JkSGlkZVwiIHR5cGU9XCJidXR0b25cIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24+e3twYXNzd29yZEhpZGUgPyAndmlzaWJpbGl0eV9vZmYnIDogJ3Zpc2liaWxpdHknfX08L21hdC1pY29uPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImlzRmllbGRWYWxpZCgncGFzc3dvcmQnKVwiPlxuICAgICAgICAgICAgICAgIHt7Z2V0RXJyb3JNZXNzYWdlKCdwYXNzd29yZCcpfX1cbiAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgICAgICAgIDxtYXQtaGludD5UaGUgbmV3IHBhc3N3b3JkIHlvdSB3b3VsZCBsaWtlIHRvIHVzZS48L21hdC1oaW50PlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBmeEZsZXg9XCIxMDAlXCI+XG4gICAgICAgICAgICAgIDxtYXQtbGFiZWw+Q29uZmlybSBQYXNzd29yZDwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwicGFzc3dvcmRfY29uZmlybWF0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiQ29uZmlybSBQYXNzd29yZFwiXG4gICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCJwYXNzd29yZENvbmZpcm1hdGlvbkhpZGUgPyAncGFzc3dvcmQnIDogJ3RleHQnXCJcbiAgICAgICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiIHJlcXVpcmVkIC8+XG4gICAgICAgICAgICAgIDxidXR0b24gbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwicGFzc3dvcmRDb25maXJtYXRpb25IaWRlID0gIXBhc3N3b3JkQ29uZmlybWF0aW9uSGlkZVwiIHR5cGU9XCJidXR0b25cIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24+e3twYXNzd29yZENvbmZpcm1hdGlvbkhpZGUgPyAndmlzaWJpbGl0eV9vZmYnIDogJ3Zpc2liaWxpdHknfX08L21hdC1pY29uPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImlzRmllbGRWYWxpZCgncGFzc3dvcmRfY29uZmlybWF0aW9uJylcIj5cbiAgICAgICAgICAgICAgICB7e2dldEVycm9yTWVzc2FnZSgncGFzc3dvcmRfY29uZmlybWF0aW9uJyl9fVxuICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yIG1iLTJcIj5cbiAgICAgICAgICAgIDx0ZWNobGlmeS1wYXNzd29yZC1yZXF1aXJlbWVudC1jaGVjayBbcGFzc3dvcmRdPVwicGFzc3dvcmRSZXNldEZvcm0uZ2V0KCdwYXNzd29yZCcpLnZhbHVlXCI+PC90ZWNobGlmeS1wYXNzd29yZC1yZXF1aXJlbWVudC1jaGVjaz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8bWF0LWNhcmQtYWN0aW9ucyBmeExheW91dEFsaWduPVwiZW5kXCI+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPXByaW1hcnkgdHlwZT1cInN1Ym1pdFwiIFtkaXNhYmxlZF09XCJpc1dvcmtpbmdcIj5cbiAgICAgICAgICAgICAgQ2hhbmdlIFBhc3N3b3JkXG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L21hdC1jYXJkLWFjdGlvbnM+XG4gICAgICAgIDwvZm9ybT5cbiAgICAgIDwvbWF0LWNhcmQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=