fixa-admin 0.0.66 → 0.0.68

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.
@@ -12,16 +12,21 @@ export class TimeFilter {
12
12
  constructor() {
13
13
  this.time = "";
14
14
  }
15
+ isValidTime() {
16
+ if (!this.time || this.time.length !== 4)
17
+ return false;
18
+ const regex = /^([01]\d|2[0-3])([0-5]\d)$/;
19
+ return regex.test(this.time);
20
+ }
15
21
  agInit(params) {
16
22
  this.params = params;
17
23
  }
18
24
  isFilterActive() {
19
- if (this.time == null) {
20
- return false;
21
- }
22
- return true;
25
+ return this.isValidTime();
23
26
  }
24
27
  doesFilterPass(params) {
28
+ if (!this.isValidTime())
29
+ return false;
25
30
  let passed = true;
26
31
  const { node } = params;
27
32
  this.time
@@ -49,6 +54,9 @@ export class TimeFilter {
49
54
  this.time = model == null || model.time == null ? null : model.time;
50
55
  }
51
56
  filter() {
57
+ if (!this.isValidTime()) {
58
+ return;
59
+ }
52
60
  this.params.filterChangedCallback();
53
61
  }
54
62
  clear() {
@@ -57,7 +65,6 @@ export class TimeFilter {
57
65
  }
58
66
  afterGuiAttached(params) {
59
67
  if (!params?.suppressFocus) {
60
- // focus the input element for keyboard navigation
61
68
  this.eFilterText.nativeElement.focus();
62
69
  }
63
70
  }
@@ -67,7 +74,7 @@ export class TimeFilter {
67
74
  <nz-form-item>
68
75
  <nz-form-label>ساعت</nz-form-label>
69
76
  <nz-form-control>
70
- <input nz-input appMask="00:00:00" placeholder="12:00:00" autocomplete="off" class="w-[250px]" dir="ltr" [(ngModel)]="time" #eFilterText/>
77
+ <input nz-input appMask="00:00" placeholder="12:00" autocomplete="off" class="w-[250px]" dir="ltr" [(ngModel)]="time" #eFilterText/>
71
78
  </nz-form-control>
72
79
  </nz-form-item>
73
80
  <hr/>
@@ -86,7 +93,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
86
93
  <nz-form-item>
87
94
  <nz-form-label>ساعت</nz-form-label>
88
95
  <nz-form-control>
89
- <input nz-input appMask="00:00:00" placeholder="12:00:00" autocomplete="off" class="w-[250px]" dir="ltr" [(ngModel)]="time" #eFilterText/>
96
+ <input nz-input appMask="00:00" placeholder="12:00" autocomplete="off" class="w-[250px]" dir="ltr" [(ngModel)]="time" #eFilterText/>
90
97
  </nz-form-control>
91
98
  </nz-form-item>
92
99
  <hr/>
@@ -101,4 +108,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
101
108
  type: ViewChild,
102
109
  args: ['eFilterText']
103
110
  }] } });
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1maWx0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy9ncmlkL2ZpbHRlci90aW1lLWZpbHRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7QUFvQmpFLE1BQU0sT0FBTyxVQUFVO0lBakJ2QjtRQW9CSSxTQUFJLEdBQUcsRUFBRSxDQUFDO0tBMERiO0lBeERHLE1BQU0sQ0FBQyxNQUFxQjtRQUN4QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN6QixDQUFDO0lBRUQsY0FBYztRQUNWLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNwQixPQUFPLEtBQUssQ0FBQTtRQUNoQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUE2QjtRQUN4QyxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbEIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sQ0FBQztRQUN4QixJQUFJLENBQUMsSUFBSTthQUNKLFdBQVcsRUFBRTthQUNiLEtBQUssQ0FBQyxHQUFHLENBQUM7YUFDVixPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUNwQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN6QyxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pELE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDbkIsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ1AsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3BCLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDbkIsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDO1lBQ3pCLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFDRCxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3JCLE9BQU8sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBVTtRQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO0lBQ3hFLENBQUM7SUFFRCxNQUFNO1FBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxLQUFLO1FBQ0QsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxNQUFnQztRQUM3QyxJQUFJLENBQUMsTUFBTSxFQUFFLGFBQWEsRUFBRSxDQUFDO1lBQ3pCLGtEQUFrRDtZQUNsRCxJQUFJLENBQUMsV0FBWSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM1QyxDQUFDO0lBQ0wsQ0FBQzsrR0E1RFEsVUFBVTttR0FBVixVQUFVLGdLQWhCVDs7Ozs7Ozs7Ozs7Ozs7S0FjVDs7NEZBRVEsVUFBVTtrQkFqQnRCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7OztLQWNUO2lCQUNKOzhCQUU2QixXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJRmlsdGVyQW5ndWxhckNvbXAgfSBmcm9tICdAYWctZ3JpZC1jb21tdW5pdHkvYW5ndWxhcic7XG5pbXBvcnQgeyBJQWZ0ZXJHdWlBdHRhY2hlZFBhcmFtcywgSURvZXNGaWx0ZXJQYXNzUGFyYW1zLCBJRmlsdGVyUGFyYW1zIH0gZnJvbSAnQGFnLWdyaWQtY29tbXVuaXR5L2NvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8ZGl2IGNsYXNzPVwicC00XCI+XG4gICAgICAgIDxuei1mb3JtLWl0ZW0+XG4gICAgICAgICAgICA8bnotZm9ybS1sYWJlbD7Ys9in2LnYqjwvbnotZm9ybS1sYWJlbD5cbiAgICAgICAgICAgIDxuei1mb3JtLWNvbnRyb2w+XG4gICAgICAgICAgICAgICAgPGlucHV0IG56LWlucHV0IGFwcE1hc2s9XCIwMDowMDowMFwiIHBsYWNlaG9sZGVyPVwiMTI6MDA6MDBcIiBhdXRvY29tcGxldGU9XCJvZmZcIiBjbGFzcz1cInctWzI1MHB4XVwiIGRpcj1cImx0clwiIFsobmdNb2RlbCldPVwidGltZVwiICNlRmlsdGVyVGV4dC8+XG4gICAgICAgICAgICA8L256LWZvcm0tY29udHJvbD5cbiAgICAgICAgPC9uei1mb3JtLWl0ZW0+XG4gICAgICAgIDxoci8+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC0yXCI+XG4gICAgICAgICAgICA8YnV0dG9uIG56LWJ1dHRvbiBuelR5cGU9XCJwcmltYXJ5XCIgY2xhc3M9XCJtdC00XCIgKGNsaWNrKT1cImZpbHRlcigpXCI+2YHbjNmE2KrYsTwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBuei1idXR0b24gbnpUeXBlPVwiZGVmYXVsdFwiIGNsYXNzPVwibXQtNFwiIChjbGljayk9XCJjbGVhcigpXCI+2b7Yp9qp2LPYp9iy24w8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIGAsXG59KVxuZXhwb3J0IGNsYXNzIFRpbWVGaWx0ZXIgaW1wbGVtZW50cyBJRmlsdGVyQW5ndWxhckNvbXAge1xuICAgIEBWaWV3Q2hpbGQoJ2VGaWx0ZXJUZXh0JykgZUZpbHRlclRleHQhOiBFbGVtZW50UmVmO1xuICAgIHBhcmFtcyE6IElGaWx0ZXJQYXJhbXM7XG4gICAgdGltZSA9IFwiXCI7XG5cbiAgICBhZ0luaXQocGFyYW1zOiBJRmlsdGVyUGFyYW1zKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGFyYW1zID0gcGFyYW1zO1xuICAgIH1cblxuICAgIGlzRmlsdGVyQWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy50aW1lID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGRvZXNGaWx0ZXJQYXNzKHBhcmFtczogSURvZXNGaWx0ZXJQYXNzUGFyYW1zKTogYm9vbGVhbiB7XG4gICAgICAgIGxldCBwYXNzZWQgPSB0cnVlO1xuICAgICAgICBjb25zdCB7IG5vZGUgfSA9IHBhcmFtcztcbiAgICAgICAgdGhpcy50aW1lXG4gICAgICAgICAgICAudG9Mb3dlckNhc2UoKVxuICAgICAgICAgICAgLnNwbGl0KCcgJylcbiAgICAgICAgICAgIC5mb3JFYWNoKChmaWx0ZXJXb3JkKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnBhcmFtcy5nZXRWYWx1ZShub2RlKTtcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoZmlsdGVyV29yZCkgPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhc3NlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICBpZiAodGhpcy50aW1lID09IG51bGwpIHtcbiAgICAgICAgICAgIHBhc3NlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwYXNzZWQ7XG4gICAgfVxuXG4gICAgZ2V0TW9kZWwoKSB7XG4gICAgICAgIGlmICghdGhpcy5pc0ZpbHRlckFjdGl2ZSgpKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBsZXQgdGltZSA9IHRoaXMudGltZTtcbiAgICAgICAgcmV0dXJuIHsgdGltZSwgZmlsdGVyVHlwZTogJ2N1c3RvbS10aW1lJyB9O1xuICAgIH1cblxuICAgIHNldE1vZGVsKG1vZGVsOiBhbnkpIHtcbiAgICAgICAgdGhpcy50aW1lID0gbW9kZWwgPT0gbnVsbCB8fCBtb2RlbC50aW1lID09IG51bGwgPyBudWxsIDogbW9kZWwudGltZTtcbiAgICB9XG5cbiAgICBmaWx0ZXIoKSB7XG4gICAgICAgIHRoaXMucGFyYW1zLmZpbHRlckNoYW5nZWRDYWxsYmFjaygpO1xuICAgIH1cblxuICAgIGNsZWFyKCkge1xuICAgICAgICB0aGlzLnRpbWUgPSBudWxsO1xuICAgICAgICB0aGlzLmZpbHRlcigpO1xuICAgIH1cblxuICAgIGFmdGVyR3VpQXR0YWNoZWQocGFyYW1zPzogSUFmdGVyR3VpQXR0YWNoZWRQYXJhbXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFwYXJhbXM/LnN1cHByZXNzRm9jdXMpIHtcbiAgICAgICAgICAgIC8vIGZvY3VzIHRoZSBpbnB1dCBlbGVtZW50IGZvciBrZXlib2FyZCBuYXZpZ2F0aW9uXG4gICAgICAgICAgICB0aGlzLmVGaWx0ZXJUZXh0IS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG59Il19
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1maWx0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy9ncmlkL2ZpbHRlci90aW1lLWZpbHRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7QUFvQmpFLE1BQU0sT0FBTyxVQUFVO0lBakJ2QjtRQW9CSSxTQUFJLEdBQUcsRUFBRSxDQUFDO0tBZ0ViO0lBOURHLFdBQVc7UUFDUCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDdkQsTUFBTSxLQUFLLEdBQUcsNEJBQTRCLENBQUM7UUFDM0MsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQXFCO1FBQ3hCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxjQUFjO1FBQ1YsT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUE2QjtRQUN4QyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ3RDLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQztRQUNsQixNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxJQUFJO2FBQ0osV0FBVyxFQUFFO2FBQ2IsS0FBSyxDQUFDLEdBQUcsQ0FBQzthQUNWLE9BQU8sQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ3BCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3pDLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDekQsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNuQixDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDUCxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxFQUFFLENBQUM7WUFDcEIsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNuQixDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUM7WUFDekIsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztRQUNELElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDckIsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLENBQUM7SUFDL0MsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFVO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLElBQUksSUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7SUFDeEUsQ0FBQztJQUVELE1BQU07UUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDdEIsT0FBTztRQUNYLENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELEtBQUs7UUFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVELGdCQUFnQixDQUFDLE1BQWdDO1FBQzdDLElBQUksQ0FBQyxNQUFNLEVBQUUsYUFBYSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLFdBQVksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDNUMsQ0FBQztJQUNMLENBQUM7K0dBbEVRLFVBQVU7bUdBQVYsVUFBVSxnS0FoQlQ7Ozs7Ozs7Ozs7Ozs7O0tBY1Q7OzRGQUVRLFVBQVU7a0JBakJ0QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7S0FjVDtpQkFDSjs4QkFFNkIsV0FBVztzQkFBcEMsU0FBUzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUZpbHRlckFuZ3VsYXJDb21wIH0gZnJvbSAnQGFnLWdyaWQtY29tbXVuaXR5L2FuZ3VsYXInO1xuaW1wb3J0IHsgSUFmdGVyR3VpQXR0YWNoZWRQYXJhbXMsIElEb2VzRmlsdGVyUGFzc1BhcmFtcywgSUZpbHRlclBhcmFtcyB9IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS9jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cblxuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPGRpdiBjbGFzcz1cInAtNFwiPlxuICAgICAgICA8bnotZm9ybS1pdGVtPlxuICAgICAgICAgICAgPG56LWZvcm0tbGFiZWw+2LPYp9i52Ko8L256LWZvcm0tbGFiZWw+XG4gICAgICAgICAgICA8bnotZm9ybS1jb250cm9sPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBuei1pbnB1dCBhcHBNYXNrPVwiMDA6MDBcIiBwbGFjZWhvbGRlcj1cIjEyOjAwXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgY2xhc3M9XCJ3LVsyNTBweF1cIiBkaXI9XCJsdHJcIiBbKG5nTW9kZWwpXT1cInRpbWVcIiAjZUZpbHRlclRleHQvPlxuICAgICAgICAgICAgPC9uei1mb3JtLWNvbnRyb2w+XG4gICAgICAgIDwvbnotZm9ybS1pdGVtPlxuICAgICAgICA8aHIvPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtMlwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBuei1idXR0b24gbnpUeXBlPVwicHJpbWFyeVwiIGNsYXNzPVwibXQtNFwiIChjbGljayk9XCJmaWx0ZXIoKVwiPtmB24zZhNiq2LE8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gbnotYnV0dG9uIG56VHlwZT1cImRlZmF1bHRcIiBjbGFzcz1cIm10LTRcIiAoY2xpY2spPVwiY2xlYXIoKVwiPtm+2Kfaqdiz2KfYstuMPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICBgLFxufSlcbmV4cG9ydCBjbGFzcyBUaW1lRmlsdGVyIGltcGxlbWVudHMgSUZpbHRlckFuZ3VsYXJDb21wIHtcbiAgICBAVmlld0NoaWxkKCdlRmlsdGVyVGV4dCcpIGVGaWx0ZXJUZXh0ITogRWxlbWVudFJlZjtcbiAgICBwYXJhbXMhOiBJRmlsdGVyUGFyYW1zO1xuICAgIHRpbWUgPSBcIlwiO1xuXG4gICAgaXNWYWxpZFRpbWUoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghdGhpcy50aW1lIHx8IHRoaXMudGltZS5sZW5ndGggIT09IDQpIHJldHVybiBmYWxzZTtcbiAgICAgICAgY29uc3QgcmVnZXggPSAvXihbMDFdXFxkfDJbMC0zXSkoWzAtNV1cXGQpJC87XG4gICAgICAgIHJldHVybiByZWdleC50ZXN0KHRoaXMudGltZSk7XG4gICAgfVxuXG4gICAgYWdJbml0KHBhcmFtczogSUZpbHRlclBhcmFtcyk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcztcbiAgICB9XG5cbiAgICBpc0ZpbHRlckFjdGl2ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZFRpbWUoKTtcbiAgICB9XG5cbiAgICBkb2VzRmlsdGVyUGFzcyhwYXJhbXM6IElEb2VzRmlsdGVyUGFzc1BhcmFtcyk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZFRpbWUoKSkgcmV0dXJuIGZhbHNlO1xuICAgICAgICBsZXQgcGFzc2VkID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgeyBub2RlIH0gPSBwYXJhbXM7XG4gICAgICAgIHRoaXMudGltZVxuICAgICAgICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgIC5zcGxpdCgnICcpXG4gICAgICAgICAgICAuZm9yRWFjaCgoZmlsdGVyV29yZCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5wYXJhbXMuZ2V0VmFsdWUobm9kZSk7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKS5pbmRleE9mKGZpbHRlcldvcmQpIDwgMCkge1xuICAgICAgICAgICAgICAgICAgICBwYXNzZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgaWYgKHRoaXMudGltZSA9PSBudWxsKSB7XG4gICAgICAgICAgICBwYXNzZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcGFzc2VkO1xuICAgIH1cblxuICAgIGdldE1vZGVsKCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNGaWx0ZXJBY3RpdmUoKSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHRpbWUgPSB0aGlzLnRpbWU7XG4gICAgICAgIHJldHVybiB7IHRpbWUsIGZpbHRlclR5cGU6ICdjdXN0b20tdGltZScgfTtcbiAgICB9XG5cbiAgICBzZXRNb2RlbChtb2RlbDogYW55KSB7XG4gICAgICAgIHRoaXMudGltZSA9IG1vZGVsID09IG51bGwgfHwgbW9kZWwudGltZSA9PSBudWxsID8gbnVsbCA6IG1vZGVsLnRpbWU7XG4gICAgfVxuXG4gICAgZmlsdGVyKCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZFRpbWUoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucGFyYW1zLmZpbHRlckNoYW5nZWRDYWxsYmFjaygpO1xuICAgIH1cblxuICAgIGNsZWFyKCkge1xuICAgICAgICB0aGlzLnRpbWUgPSBudWxsO1xuICAgICAgICB0aGlzLmZpbHRlcigpO1xuICAgIH1cblxuICAgIGFmdGVyR3VpQXR0YWNoZWQocGFyYW1zPzogSUFmdGVyR3VpQXR0YWNoZWRQYXJhbXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFwYXJhbXM/LnN1cHByZXNzRm9jdXMpIHtcbiAgICAgICAgICAgIHRoaXMuZUZpbHRlclRleHQhLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cbn0iXX0=