ngx-techlify-core 11.3.5 → 11.3.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/ngx-techlify-core.umd.js +576 -39
- package/bundles/ngx-techlify-core.umd.js.map +1 -1
- package/bundles/ngx-techlify-core.umd.min.js +2 -2
- package/bundles/ngx-techlify-core.umd.min.js.map +1 -1
- package/esm2015/lib/audit-log/audit-log-view/audit-log-view.component.js +7 -9
- package/esm2015/lib/audit-log/audit-log-view-model/audit-log-view-model.component.js +7 -9
- package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.component.js +2 -2
- package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.component.js +2 -2
- package/esm2015/lib/login-history-for-user/login-history-for-user.component.js +11 -2
- package/esm2015/lib/techlify-feature/on-off-switch/on-off-switch.component.js +27 -0
- package/esm2015/lib/techlify-feature/techlify-feature-enabled.directive.js +77 -0
- package/esm2015/lib/techlify-feature/techlify-feature-listing.component.js +174 -0
- package/esm2015/lib/techlify-feature/techlify-feature.module.js +30 -0
- package/esm2015/lib/techlify-feature/techlify-feature.routing.js +12 -0
- package/esm2015/lib/techlify-feature/techlify-feature.service.js +28 -0
- package/esm2015/lib/timeline-filter/calculate-timeline.js +2 -2
- package/esm2015/lib/timeline-filter/timeline-filter.component.js +146 -16
- package/esm2015/ngx-techlify-core.js +4 -1
- package/esm2015/public-api.js +5 -1
- package/fesm2015/ngx-techlify-core.js +478 -33
- package/fesm2015/ngx-techlify-core.js.map +1 -1
- package/lib/login-history-for-user/login-history-for-user.component.d.ts +2 -0
- package/lib/techlify-feature/on-off-switch/on-off-switch.component.d.ts +9 -0
- package/lib/techlify-feature/techlify-feature-enabled.directive.d.ts +16 -0
- package/lib/techlify-feature/techlify-feature-listing.component.d.ts +34 -0
- package/lib/techlify-feature/techlify-feature.module.d.ts +2 -0
- package/lib/techlify-feature/techlify-feature.routing.d.ts +2 -0
- package/lib/techlify-feature/techlify-feature.service.d.ts +8 -0
- package/lib/timeline-filter/calculate-timeline.d.ts +5 -0
- package/lib/timeline-filter/timeline-filter.component.d.ts +47 -6
- package/ngx-techlify-core.d.ts +3 -0
- package/ngx-techlify-core.metadata.json +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +4 -0
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { __awaiter, __decorate } from "tslib";
|
|
2
|
+
import { Component } from '@angular/core';
|
|
3
|
+
import { FormBuilder } from '@angular/forms';
|
|
4
|
+
import { MatDialog } from '@angular/material/dialog';
|
|
5
|
+
import { MatTableDataSource } from '@angular/material/table';
|
|
6
|
+
import { TechlifyFeatureService } from './techlify-feature.service';
|
|
7
|
+
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
|
8
|
+
import { AlertService, DataManager, ErrorHandlerService, StorageService } from '../core';
|
|
9
|
+
import { debounceTime } from 'rxjs/operators';
|
|
10
|
+
import { ActionPopupComponent } from '../action-popup';
|
|
11
|
+
let TechlifyFeatureListingComponent = class TechlifyFeatureListingComponent {
|
|
12
|
+
constructor(dataManager, errorHandler, fb, alertService, dialog, storage, featureService) {
|
|
13
|
+
this.dataManager = dataManager;
|
|
14
|
+
this.errorHandler = errorHandler;
|
|
15
|
+
this.fb = fb;
|
|
16
|
+
this.alertService = alertService;
|
|
17
|
+
this.dialog = dialog;
|
|
18
|
+
this.storage = storage;
|
|
19
|
+
this.featureService = featureService;
|
|
20
|
+
this.features = [];
|
|
21
|
+
this.displayedColumns = [
|
|
22
|
+
'index',
|
|
23
|
+
'feature',
|
|
24
|
+
'description',
|
|
25
|
+
'actions',
|
|
26
|
+
];
|
|
27
|
+
this.dataSource = new MatTableDataSource();
|
|
28
|
+
this.page = 1;
|
|
29
|
+
this.perPage = 25;
|
|
30
|
+
this.isWorking = false;
|
|
31
|
+
this.filterFormGroup = this.fb.group({
|
|
32
|
+
num_items: [""]
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
ngOnInit() {
|
|
36
|
+
this.loadData();
|
|
37
|
+
this.listenForChanges();
|
|
38
|
+
}
|
|
39
|
+
listenForChanges() {
|
|
40
|
+
this.filterFormGroup.valueChanges
|
|
41
|
+
.pipe(debounceTime(500), untilDestroyed(this))
|
|
42
|
+
.subscribe((changes) => {
|
|
43
|
+
this.reload();
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
loadData() {
|
|
47
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
48
|
+
let result;
|
|
49
|
+
try {
|
|
50
|
+
this.isWorking = true;
|
|
51
|
+
var filter = this.filterFormGroup.value;
|
|
52
|
+
filter.page = this.page;
|
|
53
|
+
filter.perPage = this.perPage;
|
|
54
|
+
result = yield this.dataManager.GET(`api/features`, filter);
|
|
55
|
+
this.features = this.features.concat(result.data);
|
|
56
|
+
this.dataSource = new MatTableDataSource(this.features);
|
|
57
|
+
if (!this.storage.getItem('features')) {
|
|
58
|
+
this.setStorage(this.features);
|
|
59
|
+
}
|
|
60
|
+
this.isWorking = false;
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
this.errorHandler.handleError(error);
|
|
64
|
+
}
|
|
65
|
+
finally {
|
|
66
|
+
this.isWorking = false;
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
toggeleFeature(element, feature) {
|
|
71
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
72
|
+
let status = element ? 'Off' : "On";
|
|
73
|
+
let data;
|
|
74
|
+
const dialogRef = this.dialog.open(ActionPopupComponent, {
|
|
75
|
+
width: "400px",
|
|
76
|
+
data: {
|
|
77
|
+
title: `Turn this feature ${status}?`,
|
|
78
|
+
message: `Would you like to turn ${feature.title} feature ${status}`
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
dialogRef.afterClosed().subscribe((result) => __awaiter(this, void 0, void 0, function* () {
|
|
82
|
+
if (result) {
|
|
83
|
+
try {
|
|
84
|
+
data = element
|
|
85
|
+
? yield this.featureService.disableFeature(feature.id)
|
|
86
|
+
: yield this.featureService.enableFeature(feature.id);
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
this.errorHandler.handleError(error);
|
|
90
|
+
}
|
|
91
|
+
finally {
|
|
92
|
+
this.alertService.addAlert(`You have just turned ${status} the feature ${feature.title}`, 'success');
|
|
93
|
+
this.reload();
|
|
94
|
+
this.storage.removeItem('features');
|
|
95
|
+
this.setStorage(this.features);
|
|
96
|
+
this.isWorking = false;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
this.reload();
|
|
101
|
+
}
|
|
102
|
+
}));
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
setStorage(features) {
|
|
106
|
+
let localFeatures = [];
|
|
107
|
+
for (let feature of features) {
|
|
108
|
+
if (!feature.client_feature) {
|
|
109
|
+
if (feature.is_enabled_default) {
|
|
110
|
+
localFeatures.push(feature.code);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
if (feature.client_feature.is_enabled) {
|
|
115
|
+
localFeatures.push(feature.code);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
this.storage.setItem("features", localFeatures);
|
|
120
|
+
}
|
|
121
|
+
reload() {
|
|
122
|
+
this.features = [];
|
|
123
|
+
this.page = 1;
|
|
124
|
+
if (!this.isWorking) {
|
|
125
|
+
this.loadData();
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
onScroll() {
|
|
129
|
+
if (!this.isWorking && this.page < this.lastPage) {
|
|
130
|
+
this.page += 1;
|
|
131
|
+
this.loadData();
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
sortColumn(event) {
|
|
135
|
+
var direction = event.direction.toString().toUpperCase();
|
|
136
|
+
this.assignFilter(event.active, direction);
|
|
137
|
+
this.reload();
|
|
138
|
+
}
|
|
139
|
+
assignFilter(column, direction) {
|
|
140
|
+
switch (column) {
|
|
141
|
+
case 'name': {
|
|
142
|
+
return this.filterFormGroup
|
|
143
|
+
.get('sort_by')
|
|
144
|
+
.setValue('first_name|' + direction);
|
|
145
|
+
}
|
|
146
|
+
case 'added_on': {
|
|
147
|
+
return this.filterFormGroup
|
|
148
|
+
.get('sort_by')
|
|
149
|
+
.setValue('created_at|' + direction);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
TechlifyFeatureListingComponent.decorators = [
|
|
155
|
+
{ type: Component, args: [{
|
|
156
|
+
selector: 'app-techlify-listing-feature',
|
|
157
|
+
template: "<div fxLayout=\"column\" fxLayoutGap=\"3rem\" class=\"p-3\">\n <div fxLayout=\"column\" fxLayoutAlign=\"center center\" class=\"primary-color mt-3\">\n <h3>Features Configuration</h3>\n <mat-hint>\n <i> Here you can specify which optional features you'd like to have available to your team </i>\n </mat-hint>\n </div>\n\n\n <div>\n <mat-card>\n <mat-card-content fxlayout=\"column\" style=\"overflow: auto; height: 700px\" class=\"classifications-card\">\n <table mat-table [dataSource]=\"dataSource\" class=\"mat-elevation-z8 w-100\" matSort multiTemplateDataRows\n (matSortChange)=\"sortColumn($event)\" infiniteScroll [infiniteScrollDistance]=\"2\" [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\" [fromRoot]=\"true\" [infiniteScrollContainer]=\"'.classifications-card'\">\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef>#</th>\n <td mat-cell *matCellDef=\"let element; let i = dataIndex\">\n {{ i + 1 }}\n </td>\n </ng-container>\n\n <!-- Title Column -->\n <ng-container matColumnDef=\"feature\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear>\n Feature\n </th>\n <td mat-cell *matCellDef=\"let element\">{{ element?.title }}</td>\n </ng-container>\n\n <!-- Description Column -->\n <ng-container matColumnDef=\"description\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear>\n Descriptions\n </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.description }}\n </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear>\n Actions\n </th>\n <td mat-cell *matCellDef=\"let element\">\n <div *ngIf=\"!element?.client_feature\">\n <app-on-off-switch [value]=\"element?.is_enabled_default\"\n (click)=\"toggeleFeature(element?.is_enabled_default, element)\"></app-on-off-switch>\n </div>\n <div *ngIf=\"element?.client_feature\">\n <app-on-off-switch [value]=\"element?.client_feature?.is_enabled\"\n (click)=\"toggeleFeature(element?.client_feature?.is_enabled, element)\"></app-on-off-switch>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns\"></tr>\n </table>\n </mat-card-content>\n </mat-card>\n </div>\n</div>\n",
|
|
158
|
+
styles: [""]
|
|
159
|
+
},] }
|
|
160
|
+
];
|
|
161
|
+
TechlifyFeatureListingComponent.ctorParameters = () => [
|
|
162
|
+
{ type: DataManager },
|
|
163
|
+
{ type: ErrorHandlerService },
|
|
164
|
+
{ type: FormBuilder },
|
|
165
|
+
{ type: AlertService },
|
|
166
|
+
{ type: MatDialog },
|
|
167
|
+
{ type: StorageService },
|
|
168
|
+
{ type: TechlifyFeatureService }
|
|
169
|
+
];
|
|
170
|
+
TechlifyFeatureListingComponent = __decorate([
|
|
171
|
+
UntilDestroy()
|
|
172
|
+
], TechlifyFeatureListingComponent);
|
|
173
|
+
export { TechlifyFeatureListingComponent };
|
|
174
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktZmVhdHVyZS1saXN0aW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvdGVjaGxpZnktZmVhdHVyZS90ZWNobGlmeS1mZWF0dXJlLWxpc3RpbmcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDekYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBZSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0lBUXZELCtCQUErQixTQUEvQiwrQkFBK0I7SUFvQjFDLFlBQ1UsV0FBd0IsRUFDeEIsWUFBaUMsRUFDakMsRUFBZSxFQUNmLFlBQTBCLEVBQzFCLE1BQWlCLEVBQ2pCLE9BQXVCLEVBQ3ZCLGNBQXNDO1FBTnRDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUNqQyxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNq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QUNmLE9BQU8sSUFBSSxDQUFDLGVBQWU7cUJBQ3hCLEdBQUcsQ0FBQyxTQUFTLENBQUM7cUJBQ2QsUUFBUSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUMsQ0FBQTthQUN2QztTQUNGO0lBQ0gsQ0FBQztDQUVGLENBQUE7O1lBaEtBLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsOEJBQThCO2dCQUN4QyxvMUZBQXdEOzthQUV6RDs7O1lBVHNCLFdBQVc7WUFBRSxtQkFBbUI7WUFMOUMsV0FBVztZQUtYLFlBQVk7WUFKWixTQUFTO1lBSXVDLGNBQWM7WUFGOUQsc0JBQXNCOztBQVlsQiwrQkFBK0I7SUFOM0MsWUFBWSxFQUFFO0dBTUYsK0JBQStCLENBMkozQztTQTNKWSwrQkFBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XG5pbXBvcnQgeyBUZWNobGlmeUZlYXR1cmVTZXJ2aWNlIH0gZnJvbSAnLi90ZWNobGlmeS1mZWF0dXJlLnNlcnZpY2UnO1xuaW1wb3J0IHsgVW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQgeyBBbGVydFNlcnZpY2UsIERhdGFNYW5hZ2VyLCBFcnJvckhhbmRsZXJTZXJ2aWNlLCBTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uL2NvcmUnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQWN0aW9uUG9wdXAsIEFjdGlvblBvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi4vYWN0aW9uLXBvcHVwJztcblxuQFVudGlsRGVzdHJveSgpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtdGVjaGxpZnktbGlzdGluZy1mZWF0dXJlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RlY2hsaWZ5LWZlYXR1cmUtbGlzdGluZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RlY2hsaWZ5LWZlYXR1cmUtbGlzdGluZy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFRlY2hsaWZ5RmVhdHVyZUxpc3RpbmdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGZlYXR1cmVzOiBhbnlbXSA9IFtdXG4gIGRpc3BsYXllZENvbHVtbnM6IHN0cmluZ1tdID0gW1xuICAgICdpbmRleCcsXG4gICAgJ2ZlYXR1cmUnLFxuICAgICdkZXNjcmlwdGlvbicsXG4gICAgJ2FjdGlvbnMnLFxuICBdXG5cbiAgZGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2UoKVxuXG4gIHBhZ2U6IG51bWJlciA9IDE7XG4gIGxhc3RQYWdlOiBudW1iZXI7XG4gIHBlclBhZ2U6IG51bWJlciA9IDI1O1xuXG4gIGlzV29ya2luZzogYm9vbGVhbiA9IGZhbHNlXG4gIGZpbHRlckZvcm1Hcm91cDogRm9ybUdyb3VwO1xuICBmZWF0dXJlVG9nZ2xlRm9ybTogRm9ybUdyb3VwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZGF0YU1hbmFnZXI6IERhdGFNYW5hZ2VyLFxuICAgIHByaXZhdGUgZXJyb3JIYW5kbGVyOiBFcnJvckhhbmRsZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICBwcml2YXRlIHN0b3JhZ2U6IFN0b3JhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgZmVhdHVyZVNlcnZpY2U6IFRlY2hsaWZ5RmVhdHVyZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5maWx0ZXJGb3JtR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIG51bV9pdGVtczogW1wiXCJdXG4gICAgfSlcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMubG9hZERhdGEoKVxuICAgIHRoaXMubGlzdGVuRm9yQ2hhbmdlcygpXG4gIH1cblxuICBsaXN0ZW5Gb3JDaGFuZ2VzKCkge1xuICAgIHRoaXMuZmlsdGVyRm9ybUdyb3VwLnZhbHVlQ2hhbmdlc1xuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDUwMCksIHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgLnN1YnNjcmliZSgoY2hhbmdlcykgPT4ge1xuICAgICAgICB0aGlzLnJlbG9hZCgpXG4gICAgICB9KVxuICB9XG5cbiAgYXN5bmMgbG9hZERhdGEoKSB7XG4gICAgbGV0IHJlc3VsdDtcbiAgICB0cnkge1xuICAgICAgdGhpcy5pc1dvcmtpbmcgPSB0cnVlXG4gICAgICB2YXIgZmlsdGVyID0gdGhpcy5maWx0ZXJGb3JtR3JvdXAudmFsdWVcbiAgICAgIGZpbHRlci5wYWdlID0gdGhpcy5wYWdlO1xuICAgICAgZmlsdGVyLnBlclBhZ2UgPSB0aGlzLnBlclBhZ2U7XG4gICAgICByZXN1bHQgPSBhd2FpdCB0aGlzLmRhdGFNYW5hZ2VyLkdFVChgYXBpL2ZlYXR1cmVzYCwgZmlsdGVyKTtcbiAgICAgIHRoaXMuZmVhdHVyZXMgPSB0aGlzLmZlYXR1cmVzLmNvbmNhdChyZXN1bHQuZGF0YSk7XG4gICAgICB0aGlzLmRhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlKHRoaXMuZmVhdHVyZXMpO1xuXG4gICAgICBpZiAoIXRoaXMuc3RvcmFnZS5nZXRJdGVtKCdmZWF0dXJlcycpKSB7XG4gICAgICAgIHRoaXMuc2V0U3RvcmFnZSh0aGlzLmZlYXR1cmVzKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5pc1dvcmtpbmcgPSBmYWxzZVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLmVycm9ySGFuZGxlci5oYW5kbGVFcnJvcihlcnJvcik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuaXNXb3JraW5nID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgdG9nZ2VsZUZlYXR1cmUoZWxlbWVudCwgZmVhdHVyZSkge1xuICAgIGxldCBzdGF0dXMgPSBlbGVtZW50ID8gJ09mZicgOiBcIk9uXCI7XG4gICAgbGV0IGRhdGE7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihBY3Rpb25Qb3B1cENvbXBvbmVudCwge1xuICAgICAgd2lkdGg6IFwiNDAwcHhcIixcbiAgICAgIGRhdGE6IDxBY3Rpb25Qb3B1cD57XG4gICAgICAgIHRpdGxlOiBgVHVybiB0aGlzIGZlYXR1cmUgJHtzdGF0dXN9P2AsXG4gICAgICAgIG1lc3NhZ2U6IGBXb3VsZCB5b3UgbGlrZSB0byB0dXJuICR7ZmVhdHVyZS50aXRsZX0gZmVhdHVyZSAke3N0YXR1c31gXG4gICAgICB9XG4gICAgfSlcblxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShhc3luYyByZXN1bHQgPT4ge1xuICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGRhdGEgPSBlbGVtZW50XG4gICAgICAgICAgICA/IGF3YWl0IHRoaXMuZmVhdHVyZVNlcnZpY2UuZGlzYWJsZUZlYXR1cmUoZmVhdHVyZS5pZClcbiAgICAgICAgICAgIDogYXdhaXQgdGhpcy5mZWF0dXJlU2VydmljZS5lbmFibGVGZWF0dXJlKGZlYXR1cmUuaWQpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIHRoaXMuZXJyb3JIYW5kbGVyLmhhbmRsZUVycm9yKGVycm9yKTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRBbGVydChgWW91IGhhdmUganVzdCB0dXJuZWQgJHtzdGF0dXN9IHRoZSBmZWF0dXJlICR7ZmVhdHVyZS50aXRsZX1gLCAnc3VjY2VzcycpO1xuICAgICAgICAgIHRoaXMucmVsb2FkKCk7XG4gICAgICAgICAgdGhpcy5zdG9yYWdlLnJlbW92ZUl0ZW0oJ2ZlYXR1cmVzJyk7XG4gICAgICAgICAgdGhpcy5zZXRTdG9yYWdlKHRoaXMuZmVhdHVyZXMpO1xuICAgICAgICAgIHRoaXMuaXNXb3JraW5nID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVsb2FkKCk7XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIHNldFN0b3JhZ2UoZmVhdHVyZXMpIHtcbiAgICBsZXQgbG9jYWxGZWF0dXJlcyA9IFtdO1xuICAgIGZvciAobGV0IGZlYXR1cmUgb2YgZmVhdHVyZXMpIHtcbiAgICAgIGlmICghZmVhdHVyZS5jbGllbnRfZmVhdHVyZSkge1xuICAgICAgICBpZiAoZmVhdHVyZS5pc19lbmFibGVkX2RlZmF1bHQpIHtcbiAgICAgICAgICBsb2NhbEZlYXR1cmVzLnB1c2goZmVhdHVyZS5jb2RlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGZlYXR1cmUuY2xpZW50X2ZlYXR1cmUuaXNfZW5hYmxlZCkge1xuICAgICAgICAgIGxvY2FsRmVhdHVyZXMucHVzaChmZWF0dXJlLmNvZGUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICB9XG4gICAgdGhpcy5zdG9yYWdlLnNldEl0ZW0oXCJmZWF0dXJlc1wiLCBsb2NhbEZlYXR1cmVzKTtcbiAgfVxuXG4gIHJlbG9hZCgpIHtcbiAgICB0aGlzLmZlYXR1cmVzID0gW107XG4gICAgdGhpcy5wYWdlID0gMTtcbiAgICBpZiAoIXRoaXMuaXNXb3JraW5nKSB7XG4gICAgICB0aGlzLmxvYWREYXRhKCk7XG4gICAgfVxuICB9XG5cbiAgb25TY3JvbGwoKSB7XG4gICAgaWYgKCF0aGlzLmlzV29ya2luZyAmJiB0aGlzLnBhZ2UgPCB0aGlzLmxhc3RQYWdlKSB7XG4gICAgICB0aGlzLnBhZ2UgKz0gMTtcbiAgICAgIHRoaXMubG9hZERhdGEoKTtcbiAgICB9XG4gIH1cblxuICBzb3J0Q29sdW1uKGV2ZW50KSB7XG4gICAgdmFyIGRpcmVjdGlvbiA9IGV2ZW50LmRpcmVjdGlvbi50b1N0cmluZygpLnRvVXBwZXJDYXNlKClcbiAgICB0aGlzLmFzc2lnbkZpbHRlcihldmVudC5hY3RpdmUsIGRpcmVjdGlvbilcbiAgICB0aGlzLnJlbG9hZCgpXG4gIH1cblxuICBhc3NpZ25GaWx0ZXIoY29sdW1uLCBkaXJlY3Rpb24pIHtcbiAgICBzd2l0Y2ggKGNvbHVtbikge1xuICAgICAgY2FzZSAnbmFtZSc6IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyRm9ybUdyb3VwXG4gICAgICAgICAgLmdldCgnc29ydF9ieScpXG4gICAgICAgICAgLnNldFZhbHVlKCdmaXJzdF9uYW1lfCcgKyBkaXJlY3Rpb24pXG4gICAgICB9XG4gICAgICBjYXNlICdhZGRlZF9vbic6IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyRm9ybUdyb3VwXG4gICAgICAgICAgLmdldCgnc29ydF9ieScpXG4gICAgICAgICAgLnNldFZhbHVlKCdjcmVhdGVkX2F0fCcgKyBkaXJlY3Rpb24pXG4gICAgICB9XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { TechlifyFeatureListingComponent } from './techlify-feature-listing.component';
|
|
4
|
+
import { TechlifyFeatureRoutes } from './techlify-feature.routing';
|
|
5
|
+
import { OnOffSwitchComponent } from './on-off-switch/on-off-switch.component';
|
|
6
|
+
import { FlexLayoutModule } from '@angular/flex-layout';
|
|
7
|
+
import { TechlifyFeatureEnabledDirective } from './techlify-feature-enabled.directive';
|
|
8
|
+
import { InfiniteScrollModule } from 'ngx-infinite-scroll';
|
|
9
|
+
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
|
10
|
+
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
11
|
+
import { MaterialModule } from '../material.module';
|
|
12
|
+
export class TechlifyFeatureModule {
|
|
13
|
+
}
|
|
14
|
+
TechlifyFeatureModule.decorators = [
|
|
15
|
+
{ type: NgModule, args: [{
|
|
16
|
+
imports: [
|
|
17
|
+
CommonModule,
|
|
18
|
+
MaterialModule,
|
|
19
|
+
FlexLayoutModule,
|
|
20
|
+
TechlifyFeatureRoutes,
|
|
21
|
+
MatSlideToggleModule,
|
|
22
|
+
FormsModule,
|
|
23
|
+
ReactiveFormsModule,
|
|
24
|
+
InfiniteScrollModule
|
|
25
|
+
],
|
|
26
|
+
declarations: [TechlifyFeatureListingComponent, OnOffSwitchComponent, TechlifyFeatureEnabledDirective],
|
|
27
|
+
exports: [TechlifyFeatureListingComponent, TechlifyFeatureEnabledDirective]
|
|
28
|
+
},] }
|
|
29
|
+
];
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktZmVhdHVyZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3RlY2hsaWZ5LWZlYXR1cmUvdGVjaGxpZnktZmVhdHVyZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFdkYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdkYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQWdCcEQsTUFBTSxPQUFPLHFCQUFxQjs7O1lBZGpDLFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixjQUFjO29CQUNkLGdCQUFnQjtvQkFDaEIscUJBQXFCO29CQUNyQixvQkFBb0I7b0JBQ3BCLFdBQVc7b0JBQ1gsbUJBQW1CO29CQUNuQixvQkFBb0I7aUJBQ3JCO2dCQUNELFlBQVksRUFBRSxDQUFDLCtCQUErQixFQUFFLG9CQUFvQixFQUFFLCtCQUErQixDQUFDO2dCQUN0RyxPQUFPLEVBQUUsQ0FBQywrQkFBK0IsRUFBRSwrQkFBK0IsQ0FBQzthQUM1RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVGVjaGxpZnlGZWF0dXJlTGlzdGluZ0NvbXBvbmVudCB9IGZyb20gJy4vdGVjaGxpZnktZmVhdHVyZS1saXN0aW5nLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IFRlY2hsaWZ5RmVhdHVyZVJvdXRlcyB9IGZyb20gJy4vdGVjaGxpZnktZmVhdHVyZS5yb3V0aW5nJztcbmltcG9ydCB7IE9uT2ZmU3dpdGNoQ29tcG9uZW50IH0gZnJvbSAnLi9vbi1vZmYtc3dpdGNoL29uLW9mZi1zd2l0Y2guY29tcG9uZW50JztcbmltcG9ydCB7IEZsZXhMYXlvdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mbGV4LWxheW91dCc7XG5pbXBvcnQgeyBUZWNobGlmeUZlYXR1cmVFbmFibGVkRGlyZWN0aXZlIH0gZnJvbSAnLi90ZWNobGlmeS1mZWF0dXJlLWVuYWJsZWQuZGlyZWN0aXZlJztcbmltcG9ydCB7IEluZmluaXRlU2Nyb2xsTW9kdWxlIH0gZnJvbSAnbmd4LWluZmluaXRlLXNjcm9sbCc7XG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdGVyaWFsTW9kdWxlIH0gZnJvbSAnLi4vbWF0ZXJpYWwubW9kdWxlJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRlcmlhbE1vZHVsZSxcbiAgICBGbGV4TGF5b3V0TW9kdWxlLFxuICAgIFRlY2hsaWZ5RmVhdHVyZVJvdXRlcyxcbiAgICBNYXRTbGlkZVRvZ2dsZU1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIEluZmluaXRlU2Nyb2xsTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1RlY2hsaWZ5RmVhdHVyZUxpc3RpbmdDb21wb25lbnQsIE9uT2ZmU3dpdGNoQ29tcG9uZW50LCBUZWNobGlmeUZlYXR1cmVFbmFibGVkRGlyZWN0aXZlXSxcbiAgZXhwb3J0czogW1RlY2hsaWZ5RmVhdHVyZUxpc3RpbmdDb21wb25lbnQsIFRlY2hsaWZ5RmVhdHVyZUVuYWJsZWREaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIFRlY2hsaWZ5RmVhdHVyZU1vZHVsZSB7IH1cbiJdfQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { RouterModule } from '@angular/router';
|
|
2
|
+
import { AuthenticationGuard } from '../core';
|
|
3
|
+
import { TechlifyFeatureListingComponent } from './techlify-feature-listing.component';
|
|
4
|
+
const routes = [
|
|
5
|
+
{
|
|
6
|
+
path: '',
|
|
7
|
+
component: TechlifyFeatureListingComponent,
|
|
8
|
+
canActivate: [AuthenticationGuard]
|
|
9
|
+
},
|
|
10
|
+
];
|
|
11
|
+
export const TechlifyFeatureRoutes = RouterModule.forChild(routes);
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktZmVhdHVyZS5yb3V0aW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi90ZWNobGlmeS1mZWF0dXJlL3RlY2hsaWZ5LWZlYXR1cmUucm91dGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzlDLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXZGLE1BQU0sTUFBTSxHQUFXO0lBQ3JCO1FBQ0UsSUFBSSxFQUFFLEVBQUU7UUFDUixTQUFTLEVBQUUsK0JBQStCO1FBQzFDLFdBQVcsRUFBRSxDQUFDLG1CQUFtQixDQUFDO0tBQ25DO0NBQ0YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3V0ZXMsIFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvbkd1YXJkIH0gZnJvbSAnLi4vY29yZSc7XG5pbXBvcnQgeyBUZWNobGlmeUZlYXR1cmVMaXN0aW5nQ29tcG9uZW50IH0gZnJvbSAnLi90ZWNobGlmeS1mZWF0dXJlLWxpc3RpbmcuY29tcG9uZW50JztcblxuY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXG4gIHtcbiAgICBwYXRoOiAnJyxcbiAgICBjb21wb25lbnQ6IFRlY2hsaWZ5RmVhdHVyZUxpc3RpbmdDb21wb25lbnQsXG4gICAgY2FuQWN0aXZhdGU6IFtBdXRoZW50aWNhdGlvbkd1YXJkXVxuICB9LFxuXTtcblxuZXhwb3J0IGNvbnN0IFRlY2hsaWZ5RmVhdHVyZVJvdXRlcyA9IFJvdXRlck1vZHVsZS5mb3JDaGlsZChyb3V0ZXMpO1xuIl19
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { DataManager } from '../core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../core/dataManager.service";
|
|
5
|
+
export class TechlifyFeatureService {
|
|
6
|
+
constructor(dataManager) {
|
|
7
|
+
this.dataManager = dataManager;
|
|
8
|
+
}
|
|
9
|
+
getFeatures() {
|
|
10
|
+
return this.dataManager.GET(`api/features`);
|
|
11
|
+
}
|
|
12
|
+
disableFeature(id) {
|
|
13
|
+
return this.dataManager.GET(`api/feature/${id}/disable`);
|
|
14
|
+
}
|
|
15
|
+
enableFeature(id) {
|
|
16
|
+
return this.dataManager.GET(`api/feature/${id}/enable`);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
TechlifyFeatureService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TechlifyFeatureService_Factory() { return new TechlifyFeatureService(i0.ɵɵinject(i1.DataManager)); }, token: TechlifyFeatureService, providedIn: "root" });
|
|
20
|
+
TechlifyFeatureService.decorators = [
|
|
21
|
+
{ type: Injectable, args: [{
|
|
22
|
+
providedIn: 'root'
|
|
23
|
+
},] }
|
|
24
|
+
];
|
|
25
|
+
TechlifyFeatureService.ctorParameters = () => [
|
|
26
|
+
{ type: DataManager }
|
|
27
|
+
];
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktZmVhdHVyZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi90ZWNobGlmeS1mZWF0dXJlL3RlY2hsaWZ5LWZlYXR1cmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxTQUFTLENBQUM7OztBQUt0QyxNQUFNLE9BQU8sc0JBQXNCO0lBRWpDLFlBQW9CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO0lBQUksQ0FBQztJQUVqRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsY0FBYyxDQUFDLEVBQU87UUFDcEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELGFBQWEsQ0FBQyxFQUFPO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzFELENBQUM7Ozs7WUFqQkYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUFKUSxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0YU1hbmFnZXIgfSBmcm9tICcuLi9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVGVjaGxpZnlGZWF0dXJlU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkYXRhTWFuYWdlcjogRGF0YU1hbmFnZXIpIHsgfVxuXG4gIGdldEZlYXR1cmVzKCkge1xuICAgIHJldHVybiB0aGlzLmRhdGFNYW5hZ2VyLkdFVChgYXBpL2ZlYXR1cmVzYCk7XG4gIH1cblxuICBkaXNhYmxlRmVhdHVyZShpZDogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YU1hbmFnZXIuR0VUKGBhcGkvZmVhdHVyZS8ke2lkfS9kaXNhYmxlYCk7XG4gIH1cblxuICBlbmFibGVGZWF0dXJlKGlkOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhTWFuYWdlci5HRVQoYGFwaS9mZWF0dXJlLyR7aWR9L2VuYWJsZWApO1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -24,7 +24,7 @@ export function calculateTimeline(value) {
|
|
|
24
24
|
}
|
|
25
25
|
case 4: { // This Week
|
|
26
26
|
var first = date.getDate() - date.getDay() + 1; // First day is the day of the month - the day of the week
|
|
27
|
-
var last = first + 6; // last day is the first day + 6
|
|
27
|
+
var last = first + 6; // last day is the first day + 6
|
|
28
28
|
data.date_from = new Date(date.setDate(first));
|
|
29
29
|
data.date_to = new Date(date.setDate(last));
|
|
30
30
|
break;
|
|
@@ -87,4 +87,4 @@ export function calculateTimeline(value) {
|
|
|
87
87
|
}
|
|
88
88
|
return data;
|
|
89
89
|
}
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLXRpbWVsaW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi90aW1lbGluZS1maWx0ZXIvY2FsY3VsYXRlLXRpbWVsaW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxLQUFVO0lBQ3hDLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFDeEIsTUFBTSxJQUFJLEdBQVE7UUFDZCxXQUFXLEVBQUUsSUFBSTtRQUNqQixTQUFTLEVBQUUsSUFBSTtRQUNmLG1CQUFtQixFQUFFLEtBQUs7S0FDN0IsQ0FBQztJQUNGLFFBQVEsS0FBSyxFQUFFO1FBQ1gsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVE7WUFDZCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1lBQzlCLE1BQU07U0FDVDtRQUNELEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRO1lBQ2QsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDcEIsTUFBTTtTQUNUO1FBQ0QsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLFlBQVk7WUFDbEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDaEMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUE7WUFDMUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7WUFDM0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUM7WUFDekIsTUFBTTtTQUNUO1FBQ0QsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLFlBQVk7WUFDbEIsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxH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Q0FBQyxDQUFDO1lBQUEsQ0FBQztZQUNwRSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuRSxNQUFNO1lBQ04sTUFBTTtTQUNUO1FBQ0QsT0FBTyxDQUFDLENBQUMsRUFBRSxNQUFNO1lBQ2IsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDbEIsTUFBTTtTQUNUO0tBRUo7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGNhbGN1bGF0ZVRpbWVsaW5lKHZhbHVlOiBhbnkpIHtcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoKTtcbiAgICBjb25zdCBkYXRhOiBhbnkgPSB7XG4gICAgICAgICdkYXRlX2Zyb20nOiBkYXRlLFxuICAgICAgICAnZGF0ZV90byc6IGRhdGUsXG4gICAgICAgICdzaG93X2N1c3RvbV9maWVsZCc6IGZhbHNlXG4gICAgfTtcbiAgICBzd2l0Y2ggKHZhbHVlKSB7XG4gICAgICAgIGNhc2UgMTogeyAvL0N1c3RvbVxuICAgICAgICAgICAgZGF0YS5zaG93X2N1c3RvbV9maWVsZCA9IHRydWU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIDI6IHsgLy8gVG9kYXlcbiAgICAgICAgICAgIGRhdGEuZGF0ZV9mcm9tID0gZGF0ZTtcbiAgICAgICAgICAgIGRhdGEuZGF0ZV90byA9IGRhdGU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIDM6IHsgLy8gWWVzdGVyZGF5XG4gICAgICAgICAgICBjb25zdCB5ZXN0ZXJkYXkgPSBuZXcgRGF0ZShkYXRlKVxuICAgICAgICAgICAgeWVzdGVyZGF5LnNldERhdGUoeWVzdGVyZGF5LmdldERhdGUoKSAtIDEpXG4gICAgICAgICAgICBkYXRhLmRhdGVfZnJvbSA9IHllc3RlcmRheTtcbiAgICAgICAgICAgIGRhdGEuZGF0ZV90byA9IHllc3RlcmRheTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgNDogeyAvLyBUaGlzIFdlZWtcbiAgICAgICAgICAgIHZhciBmaXJzdCA9IGRhdGUuZ2V0RGF0ZSgpIC0gZGF0ZS5nZXREYXkoKSArIDE7IC8vIEZpcnN0IGRheSBpcyB0aGUgZGF5IG9mIHRoZSBtb250aCAtIHRoZSBkYXkgb2YgdGhlIHdlZWtcbiAgICAgICAgICAgIHZhciBsYXN0ID0gZmlyc3QgKyA2OyAvLyBsYXN0IGRheSBpcyB0aGUgZmlyc3QgZGF5ICsgNiAgIFxuICAgICAgICAgICAgZGF0YS5kYXRlX2Zyb20gPSBuZXcgRGF0ZShkYXRlLnNldERhdGUoZmlyc3QpKTtcbiAgICAgICAgICAgIGRhdGEuZGF0ZV90byA9IG5ldyBEYXRlKGRhdGUuc2V0RGF0ZShsYXN0KSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIDU6IHsgLy8gTGFzdCBXZWVrXG4gICAgICAgICAgICB2YXIgZCA9IG5ldyBEYXRlKCk7XG4gICAgICAgICAgICB2YXIgdG8gPSBkLnNldFRpbWUoZC5nZXRUaW1lKCkgLSAoZC5nZXREYXkoKSA/IGQuZ2V0RGF5KCkgOiA3KSAqIDI0ICogNjAgKiA2MCAqIDEwMDApO1xuICAgICAgICAgICAgdmFyIGZyb20gPSBkLnNldFRpbWUoZC5nZXRUaW1lKCkgLSA2ICogMjQgKiA2MCAqIDYwICogMTAwMCk7XG4gICAgICAgICAgICBkYXRhLmRhdGVfZnJvbSA9IG5ldyBEYXRlKGZyb20pO1xuICAgICAgICAgICAgZGF0YS5kYXRlX3RvID0gbmV3IERhdGUodG8pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSA2OiB7IC8vVGhpcyBNb250aFxuICAgICAgICAgICAgZGF0YS5kYXRlX2Zyb20gPSBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgMSk7XG4gICAgICAgICAgICBkYXRhLmRhdGVfdG8gPSBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSArIDEsIDApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSA3OiB7IC8vIExhc3QgTW9udGhcbiAgICAgICAgICAgIHZhciBkID0gbmV3IERhdGUoKTsgLy8gY3VycmVudCBkYXRlXG4gICAgICAgICAgICBkLnNldERhdGUoMSk7IC8vIGdvaW5nIHRvIDFzdCBvZiB0aGUgbW9udGhcbiAgICAgICAgICAgIGQuc2V0SG91cnMoLTEpO1xuICAgICAgICAgICAgZGF0YS5kYXRlX2Zyb20gPSBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSAtIDEsIDEpO1xuICAgICAgICAgICAgZGF0YS5kYXRlX3RvID0gZDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgODogeyAvLyBUaGlzIFF1YXJ0ZXJcbiAgICAgICAgICAgIGNvbnN0IHF1YXJ0ZXIgPSBNYXRoLmZsb29yKChkYXRlLmdldE1vbnRoKCkgLyAzKSk7XG4gICAgICAgICAgICBjb25zdCBzdGFydEZ1bGxRdWFydGVyID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBxdWFydGVyICogMywgMSk7XG4gICAgICAgICAgICBjb25zdCBlbmRGdWxsUXVhcnRlciA9IG5ldyBEYXRlKHN0YXJ0RnVsbFF1YXJ0ZXIuZ2V0RnVsbFllYXIoKSwgc3RhcnRGdWxsUXVhcnRlci5nZXRNb250aCgpICsgMywgMCk7XG4gICAgICAgICAgICBkYXRhLmRhdGVfZnJvbSA9IHN0YXJ0RnVsbFF1YXJ0ZXI7XG4gICAgICAgICAgICBkYXRhLmRhdGVfdG8gPSBlbmRGdWxsUXVhcnRlcjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgOTogeyAvLyBMYXN0IFF1YXJ0ZXJcbiAgICAgICAgICAgIGNvbnN0IHF1YXJ0ZXIgPSBNYXRoLmZsb29yKChkYXRlLmdldE1vbnRoKCkgLyAzKSk7XG4gICAgICAgICAgICBjb25zdCBzdGFydEZ1bGxRdWFydGVyID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBxdWFydGVyICogMyAtIDMsIDEpO1xuICAgICAgICAgICAgY29uc3QgZW5kRnVsbFF1YXJ0ZXIgPSBuZXcgRGF0ZShzdGFydEZ1bGxRdWFydGVyLmdldEZ1bGxZZWFyKCksIHN0YXJ0RnVsbFF1YXJ0ZXIuZ2V0TW9udGgoKSArIDMsIDApXG4gICAgICAgICAgICBkYXRhLmRhdGVfZnJvbSA9IHN0YXJ0RnVsbFF1YXJ0ZXI7XG4gICAgICAgICAgICBkYXRhLmRhdGVfdG8gPSBlbmRGdWxsUXVhcnRlcjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgMTA6IHsgLy8gVGhpcyBZZWFyXG4gICAgICAgICAgICBkYXRhLmRhdGVfZnJvbSA9IG5ldyBEYXRlKFwiMS8xL1wiICsgKG5ldyBEYXRlKCkpLmdldEZ1bGxZZWFyKCkpOztcbiAgICAgICAgICAgIGRhdGEuZGF0ZV90byA9IG5ldyBEYXRlKFwiMTIvMzEvXCIgKyAobmV3IERhdGUoKSkuZ2V0RnVsbFllYXIoKSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIDExOiB7IC8vIExhc3QgWWVhclxuICAgICAgICAgICAgZGF0YS5kYXRlX2Zyb20gPSBuZXcgRGF0ZShcIjEvMS9cIiArIChuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCkgLSAxKSk7O1xuICAgICAgICAgICAgZGF0YS5kYXRlX3RvID0gbmV3IERhdGUoXCIxMi8zMS9cIiArIChuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCkgLSAxKSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHsgLy8gQWxsXG4gICAgICAgICAgICBkYXRhLmRhdGVfZnJvbSA9ICcnO1xuICAgICAgICAgICAgZGF0YS5kYXRlX3RvID0gJyc7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgfVxuICAgIHJldHVybiBkYXRhO1xufSJdfQ==
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLXRpbWVsaW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi90aW1lbGluZS1maWx0ZXIvY2FsY3VsYXRlLXRpbWVsaW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxLQUFVO0lBQ3hDLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFDeEIsTUFBTSxJQUFJLEdBQVE7UUFDZCxXQUFXLEVBQUUsSUFBSTtRQUNqQixTQUFTLEVBQUUsSUFBSTtRQUNmLG1CQUFtQixFQUFFLEtBQUs7S0FDN0IsQ0FBQztJQUNGLFFBQVEsS0FBSyxFQUFFO1FBQ1gsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVE7WUFDZCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1lBQzlCLE1BQU07U0FDVDtRQUNELEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRO1lBQ2QsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDcEIsTUFBTTtTQUNUO1FBQ0QsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLFlBQVk7WUFDbEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDaEMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUE7WUFDMUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7WUFDM0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUM7WUFDekIsTUFBTTtTQUNUO1FBQ0QsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLFlBQVk7WUFDbEIsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxH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Q0FBQyxDQUFDO1lBQUEsQ0FBQztZQUNwRSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuRSxNQUFNO1lBQ04sTUFBTTtTQUNUO1FBQ0QsT0FBTyxDQUFDLENBQUMsRUFBRSxNQUFNO1lBQ2IsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDbEIsTUFBTTtTQUNUO0tBRUo7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBUaW1lbGluZVZhbHVlIHtcbiAgZGF0ZV9mcm9tOiBEYXRlLFxuICBkYXRlX3RvOiBEYXRlLFxuICBzaG93X2N1c3RvbV9maWVsZDogYm9vbGVhblxufVxuZXhwb3J0IGZ1bmN0aW9uIGNhbGN1bGF0ZVRpbWVsaW5lKHZhbHVlOiBhbnkpIHtcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoKTtcbiAgICBjb25zdCBkYXRhOiBhbnkgPSB7XG4gICAgICAgICdkYXRlX2Zyb20nOiBkYXRlLFxuICAgICAgICAnZGF0ZV90byc6IGRhdGUsXG4gICAgICAgICdzaG93X2N1c3RvbV9maWVsZCc6IGZhbHNlXG4gICAgfTtcbiAgICBzd2l0Y2ggKHZhbHVlKSB7XG4gICAgICAgIGNhc2UgMTogeyAvL0N1c3RvbVxuICAgICAgICAgICAgZGF0YS5zaG93X2N1c3RvbV9maWVsZCA9IHRydWU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIDI6IHsgLy8gVG9kYXlcbiAgICAgICAgICAgIGRhdGEuZGF0ZV9mcm9tID0gZGF0ZTtcbiAgICAgICAgICAgIGRhdGEuZGF0ZV90byA9IGRhdGU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIDM6IHsgLy8gWWVzdGVyZGF5XG4gICAgICAgICAgICBjb25zdCB5ZXN0ZXJkYXkgPSBuZXcgRGF0ZShkYXRlKVxuICAgICAgICAgICAgeWVzdGVyZGF5LnNldERhdGUoeWVzdGVyZGF5LmdldERhdGUoKSAtIDEpXG4gICAgICAgICAgICBkYXRhLmRhdGVfZnJvbSA9IHllc3RlcmRheTtcbiAgICAgICAgICAgIGRhdGEuZGF0ZV90byA9IHllc3RlcmRheTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgNDogeyAvLyBUaGlzIFdlZWtcbiAgICAgICAgICAgIHZhciBmaXJzdCA9IGRhdGUuZ2V0RGF0ZSgpIC0gZGF0ZS5nZXREYXkoKSArIDE7IC8vIEZpcnN0IGRheSBpcyB0aGUgZGF5IG9mIHRoZSBtb250aCAtIHRoZSBkYXkgb2YgdGhlIHdlZWtcbiAgICAgICAgICAgIHZhciBsYXN0ID0gZmlyc3QgKyA2OyAvLyBsYXN0IGRheSBpcyB0aGUgZmlyc3QgZGF5ICsgNlxuICAgICAgICAgICAgZGF0YS5kYXRlX2Zyb20gPSBuZXcgRGF0ZShkYXRlLnNldERhdGUoZmlyc3QpKTtcbiAgICAgICAgICAgIGRhdGEuZGF0ZV90byA9IG5ldyBEYXRlKGRhdGUuc2V0RGF0ZShsYXN0KSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIDU6IHsgLy8gTGFzdCBXZWVrXG4gICAgICAgICAgICB2YXIgZCA9IG5ldyBEYXRlKCk7XG4gICAgICAgICAgICB2YXIgdG8gPSBkLnNldFRpbWUoZC5nZXRUaW1lKCkgLSAoZC5nZXREYXkoKSA/IGQuZ2V0RGF5KCkgOiA3KSAqIDI0ICogNjAgKiA2MCAqIDEwMDApO1xuICAgICAgICAgICAgdmFyIGZyb20gPSBkLnNldFRpbWUoZC5nZXRUaW1lKCkgLSA2ICogMjQgKiA2MCAqIDYwICogMTAwMCk7XG4gICAgICAgICAgICBkYXRhLmRhdGVfZnJvbSA9IG5ldyBEYXRlKGZyb20pO1xuICAgICAgICAgICAgZGF0YS5kYXRlX3RvID0gbmV3IERhdGUodG8pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSA2OiB7IC8vVGhpcyBNb250aFxuICAgICAgICAgICAgZGF0YS5kYXRlX2Zyb20gPSBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgMSk7XG4gICAgICAgICAgICBkYXRhLmRhdGVfdG8gPSBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSArIDEsIDApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSA3OiB7IC8vIExhc3QgTW9udGhcbiAgICAgICAgICAgIHZhciBkID0gbmV3IERhdGUoKTsgLy8gY3VycmVudCBkYXRlXG4gICAgICAgICAgICBkLnNldERhdGUoMSk7IC8vIGdvaW5nIHRvIDFzdCBvZiB0aGUgbW9udGhcbiAgICAgICAgICAgIGQuc2V0SG91cnMoLTEpO1xuICAgICAgICAgICAgZGF0YS5kYXRlX2Zyb20gPSBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSAtIDEsIDEpO1xuICAgICAgICAgICAgZGF0YS5kYXRlX3RvID0gZDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgODogeyAvLyBUaGlzIFF1YXJ0ZXJcbiAgICAgICAgICAgIGNvbnN0IHF1YXJ0ZXIgPSBNYXRoLmZsb29yKChkYXRlLmdldE1vbnRoKCkgLyAzKSk7XG4gICAgICAgICAgICBjb25zdCBzdGFydEZ1bGxRdWFydGVyID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBxdWFydGVyICogMywgMSk7XG4gICAgICAgICAgICBjb25zdCBlbmRGdWxsUXVhcnRlciA9IG5ldyBEYXRlKHN0YXJ0RnVsbFF1YXJ0ZXIuZ2V0RnVsbFllYXIoKSwgc3RhcnRGdWxsUXVhcnRlci5nZXRNb250aCgpICsgMywgMCk7XG4gICAgICAgICAgICBkYXRhLmRhdGVfZnJvbSA9IHN0YXJ0RnVsbFF1YXJ0ZXI7XG4gICAgICAgICAgICBkYXRhLmRhdGVfdG8gPSBlbmRGdWxsUXVhcnRlcjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgOTogeyAvLyBMYXN0IFF1YXJ0ZXJcbiAgICAgICAgICAgIGNvbnN0IHF1YXJ0ZXIgPSBNYXRoLmZsb29yKChkYXRlLmdldE1vbnRoKCkgLyAzKSk7XG4gICAgICAgICAgICBjb25zdCBzdGFydEZ1bGxRdWFydGVyID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBxdWFydGVyICogMyAtIDMsIDEpO1xuICAgICAgICAgICAgY29uc3QgZW5kRnVsbFF1YXJ0ZXIgPSBuZXcgRGF0ZShzdGFydEZ1bGxRdWFydGVyLmdldEZ1bGxZZWFyKCksIHN0YXJ0RnVsbFF1YXJ0ZXIuZ2V0TW9udGgoKSArIDMsIDApXG4gICAgICAgICAgICBkYXRhLmRhdGVfZnJvbSA9IHN0YXJ0RnVsbFF1YXJ0ZXI7XG4gICAgICAgICAgICBkYXRhLmRhdGVfdG8gPSBlbmRGdWxsUXVhcnRlcjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgMTA6IHsgLy8gVGhpcyBZZWFyXG4gICAgICAgICAgICBkYXRhLmRhdGVfZnJvbSA9IG5ldyBEYXRlKFwiMS8xL1wiICsgKG5ldyBEYXRlKCkpLmdldEZ1bGxZZWFyKCkpOztcbiAgICAgICAgICAgIGRhdGEuZGF0ZV90byA9IG5ldyBEYXRlKFwiMTIvMzEvXCIgKyAobmV3IERhdGUoKSkuZ2V0RnVsbFllYXIoKSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIDExOiB7IC8vIExhc3QgWWVhclxuICAgICAgICAgICAgZGF0YS5kYXRlX2Zyb20gPSBuZXcgRGF0ZShcIjEvMS9cIiArIChuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCkgLSAxKSk7O1xuICAgICAgICAgICAgZGF0YS5kYXRlX3RvID0gbmV3IERhdGUoXCIxMi8zMS9cIiArIChuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCkgLSAxKSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHsgLy8gQWxsXG4gICAgICAgICAgICBkYXRhLmRhdGVfZnJvbSA9ICcnO1xuICAgICAgICAgICAgZGF0YS5kYXRlX3RvID0gJyc7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgfVxuICAgIHJldHVybiBkYXRhO1xufVxuIl19
|
|
@@ -1,11 +1,18 @@
|
|
|
1
|
+
var TimelineFilterComponent_1;
|
|
1
2
|
import { __decorate } from "tslib";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
4
|
+
import { DatePipe } from '@angular/common';
|
|
5
|
+
import { Component, EventEmitter, Input, Optional, Output, Self, ViewChild } from '@angular/core';
|
|
6
|
+
import { FormBuilder, FormControl, NgControl, Validators } from '@angular/forms';
|
|
7
|
+
import { MatFormFieldControl } from '@angular/material/form-field';
|
|
8
|
+
import { UntilDestroy, untilDestroyed } from "@ngneat/until-destroy";
|
|
6
9
|
import { calculateTimeline } from './calculate-timeline';
|
|
7
|
-
|
|
8
|
-
|
|
10
|
+
import { Subject } from 'rxjs';
|
|
11
|
+
import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
|
|
12
|
+
let TimelineFilterComponent = TimelineFilterComponent_1 = class TimelineFilterComponent {
|
|
13
|
+
constructor(formBuilder, ngControl, datePipe) {
|
|
14
|
+
this.ngControl = ngControl;
|
|
15
|
+
this.datePipe = datePipe;
|
|
9
16
|
this.timelineValue = new FormControl('');
|
|
10
17
|
this.timelines = [
|
|
11
18
|
{ value: 1, viewValue: 'Custom' },
|
|
@@ -21,20 +28,73 @@ let TimelineFilterComponent = class TimelineFilterComponent {
|
|
|
21
28
|
{ value: 11, viewValue: 'Last Year' },
|
|
22
29
|
{ value: 12, viewValue: 'All dates' },
|
|
23
30
|
];
|
|
24
|
-
this.labelText = 'Select Timeline';
|
|
25
31
|
this.dateFrom = 'date_from';
|
|
26
32
|
this.dateTo = 'date_to';
|
|
27
33
|
this.appearance = "legacy";
|
|
28
34
|
this.showClearbutton = false;
|
|
35
|
+
/**
|
|
36
|
+
* @deprecated The form input is deprated
|
|
37
|
+
*/
|
|
38
|
+
this.form = null;
|
|
39
|
+
this.labelText = 'Select Timeline';
|
|
40
|
+
this.touchUi = true;
|
|
41
|
+
this.selectedValueChange = new EventEmitter();
|
|
42
|
+
this.selectionChange = new EventEmitter();
|
|
43
|
+
this.onChange = () => { };
|
|
44
|
+
this.onTouched = () => { };
|
|
45
|
+
this.stateChanges = new Subject();
|
|
46
|
+
this.controlType = 'timeline-filter';
|
|
47
|
+
this.id = `timeline-filter-${TimelineFilterComponent_1.nextId++}`;
|
|
48
|
+
this.describedBy = '';
|
|
29
49
|
this.showCustomDateFields = false;
|
|
50
|
+
this._required = false;
|
|
51
|
+
this._disabled = false;
|
|
52
|
+
this.selectorForm = formBuilder.group({
|
|
53
|
+
select_value: [null],
|
|
54
|
+
});
|
|
55
|
+
if (this.ngControl != null) {
|
|
56
|
+
this.ngControl.valueAccessor = this;
|
|
57
|
+
}
|
|
30
58
|
}
|
|
31
59
|
set defaultValue(value) {
|
|
32
60
|
this.timelineValue.setValue(value);
|
|
33
61
|
this.changeTimeline(value);
|
|
34
62
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
63
|
+
get required() { return this._required; }
|
|
64
|
+
set required(value) {
|
|
65
|
+
this.selectorForm.get('select_value').setValidators(Validators.required);
|
|
66
|
+
this._required = coerceBooleanProperty(value);
|
|
67
|
+
this.stateChanges.next();
|
|
68
|
+
}
|
|
69
|
+
get disabled() { return this._disabled; }
|
|
70
|
+
set disabled(value) {
|
|
71
|
+
this._disabled = coerceBooleanProperty(value);
|
|
72
|
+
this._disabled ? this.selectorForm.disable() : this.selectorForm.enable();
|
|
73
|
+
this.stateChanges.next();
|
|
74
|
+
}
|
|
75
|
+
get value() {
|
|
76
|
+
if (this.selectorForm.valid) {
|
|
77
|
+
return this.selectorForm.value.select_value;
|
|
78
|
+
}
|
|
79
|
+
return '';
|
|
80
|
+
}
|
|
81
|
+
set value(data) {
|
|
82
|
+
this.selectorForm.patchValue({ select_value: data || '' });
|
|
83
|
+
this._handleInput();
|
|
84
|
+
this.stateChanges.next();
|
|
85
|
+
}
|
|
86
|
+
getDateRangeString() {
|
|
87
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
88
|
+
let str = "";
|
|
89
|
+
if ((_a = this.selectedRange) === null || _a === void 0 ? void 0 : _a.show_custom_field) {
|
|
90
|
+
if (((_b = this.selectedRange) === null || _b === void 0 ? void 0 : _b.date_from.toUTCString()) != 'Invalid Date') {
|
|
91
|
+
str += ' - ' + this.datePipe.transform((_d = (_c = this.selectedRange) === null || _c === void 0 ? void 0 : _c.date_from) === null || _d === void 0 ? void 0 : _d.toUTCString());
|
|
92
|
+
}
|
|
93
|
+
if (((_e = this.selectedRange) === null || _e === void 0 ? void 0 : _e.date_to.toUTCString()) != 'Invalid Date') {
|
|
94
|
+
str += ' - ' + this.datePipe.transform((_g = (_f = this.selectedRange) === null || _f === void 0 ? void 0 : _f.date_to) === null || _g === void 0 ? void 0 : _g.toUTCString());
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return str;
|
|
38
98
|
}
|
|
39
99
|
resetFieldValue(field) {
|
|
40
100
|
this.form.get(field).setValue('');
|
|
@@ -53,28 +113,98 @@ let TimelineFilterComponent = class TimelineFilterComponent {
|
|
|
53
113
|
this.showCustomDateFields = timeline.show_custom_field;
|
|
54
114
|
}
|
|
55
115
|
}
|
|
116
|
+
_handleInput() {
|
|
117
|
+
if (this.value == 1) {
|
|
118
|
+
this.picker.open();
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
const range = calculateTimeline(this.value);
|
|
122
|
+
this.selectedRange = range;
|
|
123
|
+
this.onChange(this.value);
|
|
124
|
+
this.selectedValueChange.emit(this.selectedValue);
|
|
125
|
+
this.selectionChange.emit(range);
|
|
126
|
+
}
|
|
127
|
+
dateRangeChange(dateRangeStart, dateRangeEnd) {
|
|
128
|
+
const range = {
|
|
129
|
+
date_from: new Date(dateRangeStart.value),
|
|
130
|
+
date_to: new Date(dateRangeEnd.value),
|
|
131
|
+
show_custom_field: true
|
|
132
|
+
};
|
|
133
|
+
this.selectedRange = range;
|
|
134
|
+
this.onChange(this.value);
|
|
135
|
+
this.selectedValueChange.emit(this.selectedValue);
|
|
136
|
+
this.selectionChange.emit(range);
|
|
137
|
+
}
|
|
138
|
+
onCustomDateChange(event) {
|
|
139
|
+
console.log(event);
|
|
140
|
+
}
|
|
141
|
+
setDescribedByIds(ids) {
|
|
142
|
+
this.describedBy = ids.join(' ');
|
|
143
|
+
}
|
|
144
|
+
onContainerClick(event) {
|
|
145
|
+
event.stopPropagation();
|
|
146
|
+
}
|
|
147
|
+
writeValue(data) {
|
|
148
|
+
this.value = data;
|
|
149
|
+
}
|
|
150
|
+
registerOnChange(fn) {
|
|
151
|
+
this.onChange = fn;
|
|
152
|
+
}
|
|
153
|
+
registerOnTouched(fn) {
|
|
154
|
+
this.onTouched = fn;
|
|
155
|
+
}
|
|
156
|
+
setDisabledState(isDisabled) {
|
|
157
|
+
this.disabled = isDisabled;
|
|
158
|
+
}
|
|
159
|
+
ngOnInit() {
|
|
160
|
+
console.log(this.form);
|
|
161
|
+
this.timelineValue.valueChanges.
|
|
162
|
+
pipe(debounceTime(100), distinctUntilChanged(), untilDestroyed(this)).subscribe(value => this.changeTimeline(value));
|
|
163
|
+
}
|
|
164
|
+
ngOnDestroy() {
|
|
165
|
+
this.stateChanges.complete();
|
|
166
|
+
}
|
|
56
167
|
};
|
|
168
|
+
TimelineFilterComponent.nextId = 0;
|
|
57
169
|
TimelineFilterComponent.decorators = [
|
|
58
170
|
{ type: Component, args: [{
|
|
59
171
|
selector: 'app-timeline-filter',
|
|
60
|
-
template: "<ng-container [formGroup]=\"form\">\n
|
|
172
|
+
template: "<ng-container *ngIf=\"form\" [formGroup]=\"form\">\n <mat-form-field [appearance]=\"appearance\">\n <mat-label>{{labelText}}</mat-label>\n <mat-select [formControl]=\"timelineValue\">\n <mat-option *ngFor=\"let timeline of timelines\" [value]=\"timeline.value\">\n {{timeline.viewValue}}\n </mat-option>\n </mat-select>\n <button mat-button *ngIf=\"showClearbutton && timelineValue.value\" matSuffix mat-icon-button\n (click)=\"timelineValue.setValue('')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n\n <ng-container *ngIf=\"showCustomDateFields\">\n <mat-form-field [appearance]=\"appearance\">\n <mat-label>From Date</mat-label>\n <input matInput formControlName=\"{{dateFrom}}\" [matDatepicker]=\"fromPicker\" (click)=\"fromPicker.open()\"\n placeholder=\"From Date\" readonly />\n <mat-datepicker-toggle matSuffix [for]=\"fromPicker\"></mat-datepicker-toggle>\n <mat-datepicker #fromPicker></mat-datepicker>\n <button mat-button *ngIf=\"getFieldValue(dateFrom)\" matSuffix mat-icon-button\n (click)=\"resetFieldValue(dateFrom)\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n\n <mat-form-field [appearance]=\"appearance\">\n <mat-label>To Date</mat-label>\n <input matInput formControlName=\"{{dateTo}}\" [matDatepicker]=\"toPicker\" (click)=\"toPicker.open()\"\n placeholder=\"To Date\" readonly />\n <mat-datepicker-toggle matSuffix [for]=\"\"></mat-datepicker-toggle>\n <mat-datepicker #toPicker></mat-datepicker>\n <button mat-button *ngIf=\"getFieldValue(dateTo)\" matSuffix mat-icon-button\n (click)=\"resetFieldValue(dateTo)\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n\n </ng-container>\n</ng-container>\n<div *ngIf=\"!form\" [formGroup]=\"selectorForm\">\n <mat-select formControlName=\"select_value\" focused=\"false\" [required]=\"required\"\n autocomplete=\"off\" (selectionChange)=\"_handleInput()\">\n <mat-option *ngFor=\"let timeline of timelines\" [value]=\"timeline?.value\">\n {{ timeline?.viewValue }} {{ selectedRange?.show_custom_field && timeline?.value == 1 ? getDateRangeString() : '' }}\n </mat-option>\n </mat-select>\n <mat-date-range-input hidden (dateChange)=\"onCustomDateChange($event)\" [rangePicker]=\"picker\">\n <input matStartDate #customStartDate>\n <input matEndDate (dateChange)=\"dateRangeChange(customStartDate, customEndDate)\" #customEndDate>\n </mat-date-range-input>\n <mat-date-range-picker #picker [touchUi]=\"touchUi\"></mat-date-range-picker>\n</div>\n",
|
|
173
|
+
providers: [
|
|
174
|
+
{
|
|
175
|
+
provide: MatFormFieldControl,
|
|
176
|
+
useExisting: TimelineFilterComponent_1
|
|
177
|
+
}
|
|
178
|
+
],
|
|
61
179
|
styles: [""]
|
|
62
180
|
},] }
|
|
63
181
|
];
|
|
64
|
-
TimelineFilterComponent.ctorParameters = () => [
|
|
182
|
+
TimelineFilterComponent.ctorParameters = () => [
|
|
183
|
+
{ type: FormBuilder },
|
|
184
|
+
{ type: NgControl, decorators: [{ type: Optional }, { type: Self }] },
|
|
185
|
+
{ type: DatePipe }
|
|
186
|
+
];
|
|
65
187
|
TimelineFilterComponent.propDecorators = {
|
|
188
|
+
picker: [{ type: ViewChild, args: ['picker',] }],
|
|
66
189
|
timelineValue: [{ type: Input }],
|
|
67
190
|
timelines: [{ type: Input }],
|
|
68
|
-
labelText: [{ type: Input }],
|
|
69
191
|
dateFrom: [{ type: Input }],
|
|
70
192
|
dateTo: [{ type: Input }],
|
|
71
193
|
appearance: [{ type: Input }],
|
|
72
194
|
showClearbutton: [{ type: Input }],
|
|
73
195
|
form: [{ type: Input }],
|
|
74
|
-
|
|
196
|
+
labelText: [{ type: Input }],
|
|
197
|
+
selectedValue: [{ type: Input }],
|
|
198
|
+
touchUi: [{ type: Input }],
|
|
199
|
+
selectedValueChange: [{ type: Output }],
|
|
200
|
+
selectionChange: [{ type: Output }],
|
|
201
|
+
defaultValue: [{ type: Input }],
|
|
202
|
+
required: [{ type: Input }],
|
|
203
|
+
disabled: [{ type: Input }],
|
|
204
|
+
value: [{ type: Input }]
|
|
75
205
|
};
|
|
76
|
-
TimelineFilterComponent = __decorate([
|
|
206
|
+
TimelineFilterComponent = TimelineFilterComponent_1 = __decorate([
|
|
77
207
|
UntilDestroy()
|
|
78
208
|
], TimelineFilterComponent);
|
|
79
209
|
export { TimelineFilterComponent };
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZWxpbmUtZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvdGltZWxpbmUtZmlsdGVyL3RpbWVsaW5lLWZpbHRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztJQVE1Qyx1QkFBdUIsU0FBdkIsdUJBQXVCO0lBZ0NsQztRQTlCUyxrQkFBYSxHQUFnQixJQUFJLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNqRCxjQUFTLEdBQVU7WUFDMUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUU7WUFDakMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUU7WUFDaEMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUU7WUFDcEMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUU7WUFDcEMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUU7WUFDcEMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUU7WUFDckMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUU7WUFDckMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUU7WUFDdkMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUU7WUFDdkMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUU7WUFDckMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUU7WUFDckMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUU7U0FDdEMsQ0FBQztRQUVPLGNBQVMsR0FBVyxpQkFBaUIsQ0FBQztRQUN0QyxhQUFRLEdBQVcsV0FBVyxDQUFDO1FBQy9CLFdBQU0sR0FBVyxTQUFTLENBQUM7UUFDM0IsZUFBVSxHQUFRLFFBQVEsQ0FBQTtRQUMxQixvQkFBZSxHQUFZLEtBQUssQ0FBQztRQVExQyx5QkFBb0IsR0FBWSxLQUFLLENBQUM7SUFFdEIsQ0FBQztJQVBqQixJQUFhLFlBQVksQ0FBQyxLQUFVO1FBQ2xDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQU1ELFFBQVE7UUFDTixJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVk7WUFDN0IsSUFBSSxDQUNGLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFDakIsb0JBQW9CLEVBQUUsRUFDdEIsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUNyQixDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQWE7UUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFHRCxhQUFhLENBQUMsS0FBYTtRQUN6QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNwQyxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQWEsRUFBRSxLQUFVO1FBQ3JDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQVU7UUFDdkIsTUFBTSxRQUFRLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUMsSUFBSSxRQUFRLEVBQUU7WUFDWixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1lBQ3JELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUE7WUFDakQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQztTQUN4RDtJQUNILENBQUM7Q0FFRixDQUFBOztZQXRFQSxTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtnQkFDL0IsMCtEQUErQzs7YUFFaEQ7Ozs7NEJBR0UsS0FBSzt3QkFDTCxLQUFLO3dCQWVMLEtBQUs7dUJBQ0wsS0FBSztxQkFDTCxLQUFLO3lCQUNMLEtBQUs7OEJBQ0wsS0FBSzttQkFDTCxLQUFLOzJCQUVMLEtBQUs7O0FBekJLLHVCQUF1QjtJQU5uQyxZQUFZLEVBQUU7R0FNRix1QkFBdUIsQ0FpRW5DO1NBakVZLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFVudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWQgfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGNhbGN1bGF0ZVRpbWVsaW5lIH0gZnJvbSAnLi9jYWxjdWxhdGUtdGltZWxpbmUnO1xuXG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC10aW1lbGluZS1maWx0ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vdGltZWxpbmUtZmlsdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGltZWxpbmUtZmlsdGVyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgVGltZWxpbmVGaWx0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIHRpbWVsaW5lVmFsdWU6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnKTtcbiAgQElucHV0KCkgdGltZWxpbmVzOiBhbnlbXSA9IFtcbiAgICB7IHZhbHVlOiAxLCB2aWV3VmFsdWU6ICdDdXN0b20nIH0sXG4gICAgeyB2YWx1ZTogMiwgdmlld1ZhbHVlOiAnVG9kYXknIH0sXG4gICAgeyB2YWx1ZTogMywgdmlld1ZhbHVlOiAnWWVzdGVyZGF5JyB9LFxuICAgIHsgdmFsdWU6IDQsIHZpZXdWYWx1ZTogJ1RoaXMgV2VlaycgfSxcbiAgICB7IHZhbHVlOiA1LCB2aWV3VmFsdWU6ICdMYXN0IFdlZWsnIH0sXG4gICAgeyB2YWx1ZTogNiwgdmlld1ZhbHVlOiAnVGhpcyBNb250aCcgfSxcbiAgICB7IHZhbHVlOiA3LCB2aWV3VmFsdWU6ICdMYXN0IE1vbnRoJyB9LFxuICAgIHsgdmFsdWU6IDgsIHZpZXdWYWx1ZTogJ1RoaXMgUXVhcnRlcicgfSxcbiAgICB7IHZhbHVlOiA5LCB2aWV3VmFsdWU6ICdMYXN0IFF1YXJ0ZXInIH0sXG4gICAgeyB2YWx1ZTogMTAsIHZpZXdWYWx1ZTogJ1RoaXMgWWVhcicgfSxcbiAgICB7IHZhbHVlOiAxMSwgdmlld1ZhbHVlOiAnTGFzdCBZZWFyJyB9LFxuICAgIHsgdmFsdWU6IDEyLCB2aWV3VmFsdWU6ICdBbGwgZGF0ZXMnIH0sXG4gIF07XG5cbiAgQElucHV0KCkgbGFiZWxUZXh0OiBzdHJpbmcgPSAnU2VsZWN0IFRpbWVsaW5lJztcbiAgQElucHV0KCkgZGF0ZUZyb206IHN0cmluZyA9ICdkYXRlX2Zyb20nO1xuICBASW5wdXQoKSBkYXRlVG86IHN0cmluZyA9ICdkYXRlX3RvJztcbiAgQElucHV0KCkgYXBwZWFyYW5jZTogYW55ID0gXCJsZWdhY3lcIlxuICBASW5wdXQoKSBzaG93Q2xlYXJidXR0b246IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgZm9ybTogRm9ybUdyb3VwO1xuXG4gIEBJbnB1dCgpIHNldCBkZWZhdWx0VmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMudGltZWxpbmVWYWx1ZS5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgdGhpcy5jaGFuZ2VUaW1lbGluZSh2YWx1ZSk7XG4gIH1cblxuICBzaG93Q3VzdG9tRGF0ZUZpZWxkczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy50aW1lbGluZVZhbHVlLnZhbHVlQ2hhbmdlcy5cbiAgICAgIHBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSgxMDApLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKVxuICAgICAgKS5zdWJzY3JpYmUodmFsdWUgPT4gdGhpcy5jaGFuZ2VUaW1lbGluZSh2YWx1ZSkpO1xuICB9XG5cbiAgcmVzZXRGaWVsZFZhbHVlKGZpZWxkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmZvcm0uZ2V0KGZpZWxkKS5zZXRWYWx1ZSgnJyk7XG4gIH1cblxuXG4gIGdldEZpZWxkVmFsdWUoZmllbGQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KGZpZWxkKS52YWx1ZTtcbiAgfVxuXG4gIHNldEZpZWxkVmFsdWUoZmllbGQ6IHN0cmluZywgdmFsdWU6IGFueSkge1xuICAgIHRoaXMuZm9ybS5nZXQoZmllbGQpLnNldFZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIGNoYW5nZVRpbWVsaW5lKHZhbHVlOiBhbnkpIHtcbiAgICBjb25zdCB0aW1lbGluZSA9IGNhbGN1bGF0ZVRpbWVsaW5lKHZhbHVlKTtcbiAgICBpZiAodGltZWxpbmUpIHtcbiAgICAgIHRoaXMuc2V0RmllbGRWYWx1ZSh0aGlzLmRhdGVGcm9tLCB0aW1lbGluZS5kYXRlX2Zyb20pXG4gICAgICB0aGlzLnNldEZpZWxkVmFsdWUodGhpcy5kYXRlVG8sIHRpbWVsaW5lLmRhdGVfdG8pXG4gICAgICB0aGlzLnNob3dDdXN0b21EYXRlRmllbGRzID0gdGltZWxpbmUuc2hvd19jdXN0b21fZmllbGQ7XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
|
|
210
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZWxpbmUtZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvdGltZWxpbmUtZmlsdGVyL3RpbWVsaW5lLWZpbHRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQXdCLFdBQVcsRUFBRSxXQUFXLEVBQWEsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxFQUFpQixpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0lBY3ZELHVCQUF1QixxQ0FBdkIsdUJBQXVCO0lBaURsQyxZQUNFLFdBQXdCLEVBQ0csU0FBb0IsRUFDdkMsUUFBa0I7UUFEQyxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3ZDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFqRG5CLGtCQUFhLEdBQWdCLElBQUksV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELGNBQVMsR0FBVTtZQUMxQixFQUFFLEtB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O3dCQUNMLEtBQUs7dUJBY0wsS0FBSztxQkFDTCxLQUFLO3lCQUNMLEtBQUs7OEJBQ0wsS0FBSzttQkFJTCxLQUFLO3dCQUNMLEtBQUs7NEJBQ0wsS0FBSztzQkFDTCxLQUFLO2tDQUNMLE1BQU07OEJBQ04sTUFBTTsyQkFZTixLQUFLO3VCQXFCTCxLQUFLO3VCQVNMLEtBQUs7b0JBU0wsS0FBSzs7QUFqRkssdUJBQXVCO0lBWm5DLFlBQVksRUFBRTtHQVlGLHVCQUF1QixDQXFNbkM7U0FyTVksdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPcHRpb25hbCwgT3V0cHV0LCBTZWxmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgTmdDb250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgVW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZCB9IGZyb20gXCJAbmduZWF0L3VudGlsLWRlc3Ryb3lcIjtcbmltcG9ydCB7IFRpbWVsaW5lVmFsdWUsIGNhbGN1bGF0ZVRpbWVsaW5lIH0gZnJvbSAnLi9jYWxjdWxhdGUtdGltZWxpbmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQFVudGlsRGVzdHJveSgpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtdGltZWxpbmUtZmlsdGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RpbWVsaW5lLWZpbHRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RpbWVsaW5lLWZpbHRlci5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBNYXRGb3JtRmllbGRDb250cm9sLFxuICAgICAgdXNlRXhpc3Rpbmc6IFRpbWVsaW5lRmlsdGVyQ29tcG9uZW50XG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFRpbWVsaW5lRmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG5cbiAgQFZpZXdDaGlsZCgncGlja2VyJykgcGlja2VyO1xuICBASW5wdXQoKSB0aW1lbGluZVZhbHVlOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJyk7XG4gIEBJbnB1dCgpIHRpbWVsaW5lczogYW55W10gPSBbXG4gICAgeyB2YWx1ZTogMSwgdmlld1ZhbHVlOiAnQ3VzdG9tJyB9LFxuICAgIHsgdmFsdWU6IDIsIHZpZXdWYWx1ZTogJ1RvZGF5JyB9LFxuICAgIHsgdmFsdWU6IDMsIHZpZXdWYWx1ZTogJ1llc3RlcmRheScgfSxcbiAgICB7IHZhbHVlOiA0LCB2aWV3VmFsdWU6ICdUaGlzIFdlZWsnIH0sXG4gICAgeyB2YWx1ZTogNSwgdmlld1ZhbHVlOiAnTGFzdCBXZWVrJyB9LFxuICAgIHsgdmFsdWU6IDYsIHZpZXdWYWx1ZTogJ1RoaXMgTW9udGgnIH0sXG4gICAgeyB2YWx1ZTogNywgdmlld1ZhbHVlOiAnTGFzdCBNb250aCcgfSxcbiAgICB7IHZhbHVlOiA4LCB2aWV3VmFsdWU6ICdUaGlzIFF1YXJ0ZXInIH0sXG4gICAgeyB2YWx1ZTogOSwgdmlld1ZhbHVlOiAnTGFzdCBRdWFydGVyJyB9LFxuICAgIHsgdmFsdWU6IDEwLCB2aWV3VmFsdWU6ICdUaGlzIFllYXInIH0sXG4gICAgeyB2YWx1ZTogMTEsIHZpZXdWYWx1ZTogJ0xhc3QgWWVhcicgfSxcbiAgICB7IHZhbHVlOiAxMiwgdmlld1ZhbHVlOiAnQWxsIGRhdGVzJyB9LFxuICBdO1xuICBASW5wdXQoKSBkYXRlRnJvbTogc3RyaW5nID0gJ2RhdGVfZnJvbSc7XG4gIEBJbnB1dCgpIGRhdGVUbzogc3RyaW5nID0gJ2RhdGVfdG8nO1xuICBASW5wdXQoKSBhcHBlYXJhbmNlOiBhbnkgPSBcImxlZ2FjeVwiXG4gIEBJbnB1dCgpIHNob3dDbGVhcmJ1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgIFRoZSBmb3JtIGlucHV0IGlzIGRlcHJhdGVkXG4gICAqL1xuICBASW5wdXQoKSBmb3JtOiBGb3JtR3JvdXAgPSBudWxsO1xuICBASW5wdXQoKSBsYWJlbFRleHQ6IHN0cmluZyA9ICdTZWxlY3QgVGltZWxpbmUnO1xuICBASW5wdXQoKSBzZWxlY3RlZFZhbHVlOiBhbnk7XG4gIEBJbnB1dCgpIHRvdWNoVWk6IGJvb2xlYW4gPSB0cnVlO1xuICBAT3V0cHV0KCkgc2VsZWN0ZWRWYWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBzZWxlY3RvckZvcm06IEZvcm1Hcm91cDtcbiAgb25DaGFuZ2U6IGFueSA9ICgpID0+IHsgfTtcbiAgb25Ub3VjaGVkOiBhbnkgPSAoKSA9PiB7IH07XG4gIHN0YXRpYyBuZXh0SWQgPSAwO1xuICBzdGF0ZUNoYW5nZXMgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBjb250cm9sVHlwZSA9ICd0aW1lbGluZS1maWx0ZXInO1xuICBpZCA9IGB0aW1lbGluZS1maWx0ZXItJHtUaW1lbGluZUZpbHRlckNvbXBvbmVudC5uZXh0SWQrK31gO1xuICBkZXNjcmliZWRCeSA9ICcnO1xuXG4gIHNlbGVjdGVkUmFuZ2U6IFRpbWVsaW5lVmFsdWU7XG4gIEBJbnB1dCgpIHNldCBkZWZhdWx0VmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMudGltZWxpbmVWYWx1ZS5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgdGhpcy5jaGFuZ2VUaW1lbGluZSh2YWx1ZSk7XG4gIH1cblxuICBzaG93Q3VzdG9tRGF0ZUZpZWxkczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgICBAT3B0aW9uYWwoKSBAU2VsZigpIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICBwcml2YXRlIGRhdGVQaXBlOiBEYXRlUGlwZVxuICApIHtcbiAgICB0aGlzLnNlbGVjdG9yRm9ybSA9IGZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgIHNlbGVjdF92YWx1ZTogW251bGxdLFxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMubmdDb250cm9sICE9IG51bGwpIHtcbiAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX3JlcXVpcmVkOyB9XG4gIHNldCByZXF1aXJlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuc2VsZWN0b3JGb3JtLmdldCgnc2VsZWN0X3ZhbHVlJykuc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICB0aGlzLl9yZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICB9XG4gIHByaXZhdGUgX3JlcXVpcmVkID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7IH1cbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIHRoaXMuX2Rpc2FibGVkID8gdGhpcy5zZWxlY3RvckZvcm0uZGlzYWJsZSgpIDogdGhpcy5zZWxlY3RvckZvcm0uZW5hYmxlKCk7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICB9XG4gIHByaXZhdGUgX2Rpc2FibGVkID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0b3JGb3JtLnZhbGlkKSB7XG4gICAgICByZXR1cm4gdGhpcy5zZWxlY3RvckZvcm0udmFsdWUuc2VsZWN0X3ZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cbiAgc2V0IHZhbHVlKGRhdGE6IGFueSkge1xuICAgIHRoaXMuc2VsZWN0b3JGb3JtLnBhdGNoVmFsdWUoeyBzZWxlY3RfdmFsdWU6IGRhdGEgfHwgJycgfSk7XG4gICAgdGhpcy5faGFuZGxlSW5wdXQoKTtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cblxuICBnZXREYXRlUmFuZ2VTdHJpbmcoKSB7XG4gICAgbGV0IHN0ciA9IFwiXCI7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRSYW5nZT8uc2hvd19jdXN0b21fZmllbGQpIHtcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkUmFuZ2U/LmRhdGVfZnJvbS50b1VUQ1N0cmluZygpICE9ICdJbnZhbGlkIERhdGUnKSB7XG4gICAgICAgIHN0ciArPSAnIC0gJyArIHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHRoaXMuc2VsZWN0ZWRSYW5nZT8uZGF0ZV9mcm9tPy50b1VUQ1N0cmluZygpKVxuICAgICAgfVxuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRSYW5nZT8uZGF0ZV90by50b1VUQ1N0cmluZygpICE9ICdJbnZhbGlkIERhdGUnKSB7XG4gICAgICAgIHN0ciArPSAnIC0gJyArIHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHRoaXMuc2VsZWN0ZWRSYW5nZT8uZGF0ZV90bz8udG9VVENTdHJpbmcoKSlcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHN0cjtcbiAgfVxuXG4gIHJlc2V0RmllbGRWYWx1ZShmaWVsZDogc3RyaW5nKSB7XG4gICAgdGhpcy5mb3JtLmdldChmaWVsZCkuc2V0VmFsdWUoJycpO1xuICB9XG5cblxuICBnZXRGaWVsZFZhbHVlKGZpZWxkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmdldChmaWVsZCkudmFsdWU7XG4gIH1cblxuICBzZXRGaWVsZFZhbHVlKGZpZWxkOiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmZvcm0uZ2V0KGZpZWxkKS5zZXRWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICBjaGFuZ2VUaW1lbGluZSh2YWx1ZTogYW55KSB7XG4gICAgY29uc3QgdGltZWxpbmUgPSBjYWxjdWxhdGVUaW1lbGluZSh2YWx1ZSk7XG4gICAgaWYgKHRpbWVsaW5lKSB7XG4gICAgICB0aGlzLnNldEZpZWxkVmFsdWUodGhpcy5kYXRlRnJvbSwgdGltZWxpbmUuZGF0ZV9mcm9tKVxuICAgICAgdGhpcy5zZXRGaWVsZFZhbHVlKHRoaXMuZGF0ZVRvLCB0aW1lbGluZS5kYXRlX3RvKVxuICAgICAgdGhpcy5zaG93Q3VzdG9tRGF0ZUZpZWxkcyA9IHRpbWVsaW5lLnNob3dfY3VzdG9tX2ZpZWxkO1xuICAgIH1cbiAgfVxuXG4gIF9oYW5kbGVJbnB1dCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy52YWx1ZSA9PSAxKSB7XG4gICAgICB0aGlzLnBpY2tlci5vcGVuKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHJhbmdlOiBUaW1lbGluZVZhbHVlID0gY2FsY3VsYXRlVGltZWxpbmUodGhpcy52YWx1ZSk7XG4gICAgdGhpcy5zZWxlY3RlZFJhbmdlID0gcmFuZ2U7XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICB0aGlzLnNlbGVjdGVkVmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkVmFsdWUpO1xuICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQocmFuZ2UpO1xuICB9XG5cbiAgZGF0ZVJhbmdlQ2hhbmdlKGRhdGVSYW5nZVN0YXJ0OiBIVE1MSW5wdXRFbGVtZW50LCBkYXRlUmFuZ2VFbmQ6IEhUTUxJbnB1dEVsZW1lbnQpIHtcbiAgICBjb25zdCByYW5nZTogVGltZWxpbmVWYWx1ZSA9IHtcbiAgICAgIGRhdGVfZnJvbSA6IG5ldyBEYXRlKGRhdGVSYW5nZVN0YXJ0LnZhbHVlKSxcbiAgICAgIGRhdGVfdG86IG5ldyBEYXRlKGRhdGVSYW5nZUVuZC52YWx1ZSksXG4gICAgICBzaG93X2N1c3RvbV9maWVsZDogdHJ1ZVxuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkUmFuZ2UgPSByYW5nZTtcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZUNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRWYWx1ZSk7XG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdChyYW5nZSk7XG4gIH1cblxuICBvbkN1c3RvbURhdGVDaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIGNvbnNvbGUubG9nKGV2ZW50KTtcblxuICB9XG5cbiAgc2V0RGVzY3JpYmVkQnlJZHMoaWRzOiBzdHJpbmdbXSkge1xuICAgIHRoaXMuZGVzY3JpYmVkQnkgPSBpZHMuam9pbignICcpO1xuICB9XG5cbiAgb25Db250YWluZXJDbGljayhldmVudDogTW91c2VFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZShkYXRhOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gZGF0YTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zb2xlLmxvZyh0aGlzLmZvcm0pO1xuXG4gICAgdGhpcy50aW1lbGluZVZhbHVlLnZhbHVlQ2hhbmdlcy5cbiAgICAgIHBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSgxMDApLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKVxuICAgICAgKS5zdWJzY3JpYmUodmFsdWUgPT4gdGhpcy5jaGFuZ2VUaW1lbGluZSh2YWx1ZSkpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMuY29tcGxldGUoKTtcbiAgfVxuXG59XG4iXX0=
|