kwikid-agent-dashboard 0.0.38 → 0.0.39
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/kwikid-agent-dashboard.umd.js +2269 -351
- package/bundles/kwikid-agent-dashboard.umd.js.map +1 -1
- package/esm2015/lib/kwikid-agent-dashboard.component.js +43 -23
- package/esm2015/lib/kwikid-agent-dashboard.module.js +84 -21
- package/esm2015/lib/v1/components/action-button/action-button.component.js +91 -0
- package/esm2015/lib/v1/components/customer-details/customer-details.component.js +139 -0
- package/esm2015/lib/v1/components/customer-list/customer-list.component.js +201 -0
- package/esm2015/lib/v1/components/customer-tile/customer-tile.component.js +137 -0
- package/esm2015/lib/v1/components/customer-tile/status-pill/status-pill.component.js +54 -0
- package/esm2015/lib/v1/components/customer-tile/status-pill/status-pill.definitions.js +36 -0
- package/esm2015/lib/v1/helpers/maps.helpers.js +46 -0
- package/esm2015/lib/v1/kwikid-agent-dashboard.component.js +177 -0
- package/esm2015/lib/v1/kwikid-agent-dashboard.module.js +120 -0
- package/esm2015/lib/v1/pipes/search-filter.pipe.js +62 -0
- package/esm2015/lib/v1/services/agent.service.js +149 -0
- package/esm2015/lib/v1/services/google-maps.service.js +201 -0
- package/esm2015/lib/v1/services/open-street-maps.service.js +252 -0
- package/esm2015/lib/v2/components/agent-info/agent-info.component.js +20 -0
- package/esm2015/lib/v2/components/agent-info/agent-info.module.js +37 -0
- package/esm2015/lib/v2/components/bottom-sheet/bottom-sheet.component.js +111 -0
- package/esm2015/lib/v2/components/bottom-sheet/bottom-sheet.module.js +41 -0
- package/esm2015/lib/v2/components/components.module.js +79 -0
- package/esm2015/lib/v2/components/map-view/map-view.component.js +39 -0
- package/esm2015/lib/v2/components/map-view/map-view.module.js +37 -0
- package/esm2015/lib/v2/components/primary-actions/primary-actions.component.js +65 -0
- package/esm2015/lib/v2/components/primary-actions/primary-actions.module.js +54 -0
- package/esm2015/lib/v2/components/task-detail/task-detail.component.js +82 -0
- package/esm2015/lib/v2/components/task-detail/task-detail.module.js +41 -0
- package/esm2015/lib/v2/components/task-item/task-item.component.js +107 -0
- package/esm2015/lib/v2/components/task-item/task-item.constant.js +12 -0
- package/esm2015/lib/v2/components/task-item/task-item.module.js +45 -0
- package/esm2015/lib/v2/components/task-item-status/task-item-status.component.js +51 -0
- package/esm2015/lib/v2/components/task-item-status/task-item-status.module.js +19 -0
- package/esm2015/lib/v2/components/task-list/task-list.component.js +186 -0
- package/esm2015/lib/v2/components/task-list/task-list.module.js +57 -0
- package/esm2015/lib/v2/components/task-list-search/task-list-search.component.js +118 -0
- package/esm2015/lib/v2/components/task-list-search/task-list-search.module.js +41 -0
- package/esm2015/lib/v2/components/task-preview/task-preview.component.js +30 -0
- package/esm2015/lib/v2/components/task-preview/task-preview.module.js +37 -0
- package/esm2015/lib/v2/helpers/array.helper.js +10 -0
- package/esm2015/lib/v2/helpers/date.helplers.js +17 -0
- package/esm2015/lib/v2/kwikid-agent-dashboard.component.js +61 -0
- package/esm2015/lib/v2/kwikid-agent-dashboard.module.js +45 -0
- package/esm2015/lib/v2/layout/layout-body/layout-body.component.js +274 -0
- package/esm2015/lib/v2/layout/layout-body/layout-body.module.js +55 -0
- package/esm2015/lib/v2/layout/layout-header/layout-header.component.js +60 -0
- package/esm2015/lib/v2/layout/layout-header/layout-header.module.js +48 -0
- package/esm2015/lib/v2/layout/layout.module.js +18 -0
- package/esm2015/lib/v2/pipes/search-filter.pipe.js +62 -0
- package/fesm2015/kwikid-agent-dashboard.js +2049 -324
- package/fesm2015/kwikid-agent-dashboard.js.map +1 -1
- package/lib/kwikid-agent-dashboard.component.d.ts +11 -3
- package/lib/kwikid-agent-dashboard.module.d.ts +12 -6
- package/lib/v1/components/action-button/action-button.component.d.ts +18 -0
- package/lib/v1/components/customer-details/customer-details.component.d.ts +35 -0
- package/lib/v1/components/customer-list/customer-list.component.d.ts +55 -0
- package/lib/v1/components/customer-tile/customer-tile.component.d.ts +34 -0
- package/lib/v1/components/customer-tile/status-pill/status-pill.component.d.ts +15 -0
- package/lib/v1/components/customer-tile/status-pill/status-pill.definitions.d.ts +19 -0
- package/lib/v1/helpers/maps.helpers.d.ts +3 -0
- package/lib/v1/kwikid-agent-dashboard.component.d.ts +54 -0
- package/lib/v1/kwikid-agent-dashboard.module.d.ts +23 -0
- package/lib/{pipes → v1/pipes}/search-filter.pipe.d.ts +1 -1
- package/lib/v1/services/agent.service.d.ts +77 -0
- package/lib/v1/services/google-maps.service.d.ts +29 -0
- package/lib/v1/services/open-street-maps.service.d.ts +39 -0
- package/lib/{components → v2/components}/agent-info/agent-info.component.d.ts +1 -1
- package/lib/{components → v2/components}/bottom-sheet/bottom-sheet.component.d.ts +2 -2
- package/lib/{components → v2/components}/map-view/map-view.component.d.ts +1 -1
- package/lib/{components → v2/components}/primary-actions/primary-actions.component.d.ts +1 -1
- package/lib/{components → v2/components}/task-detail/task-detail.component.d.ts +1 -1
- package/lib/{components → v2/components}/task-item/task-item.component.d.ts +1 -1
- package/lib/{components → v2/components}/task-item-status/task-item-status.component.d.ts +1 -1
- package/lib/{components → v2/components}/task-list/task-list.component.d.ts +4 -4
- package/lib/{components → v2/components}/task-list-search/task-list-search.component.d.ts +3 -3
- package/lib/{components → v2/components}/task-preview/task-preview.component.d.ts +1 -1
- package/lib/v2/kwikid-agent-dashboard.component.d.ts +17 -0
- package/lib/v2/kwikid-agent-dashboard.module.d.ts +13 -0
- package/lib/{layout → v2/layout}/layout-body/layout-body.component.d.ts +3 -3
- package/lib/{layout → v2/layout}/layout-header/layout-header.component.d.ts +1 -1
- package/lib/v2/pipes/search-filter.pipe.d.ts +25 -0
- package/package.json +1 -1
- package/esm2015/lib/components/agent-info/agent-info.component.js +0 -20
- package/esm2015/lib/components/agent-info/agent-info.module.js +0 -37
- package/esm2015/lib/components/bottom-sheet/bottom-sheet.component.js +0 -111
- package/esm2015/lib/components/bottom-sheet/bottom-sheet.module.js +0 -41
- package/esm2015/lib/components/components.module.js +0 -79
- package/esm2015/lib/components/map-view/map-view.component.js +0 -39
- package/esm2015/lib/components/map-view/map-view.module.js +0 -37
- package/esm2015/lib/components/primary-actions/primary-actions.component.js +0 -65
- package/esm2015/lib/components/primary-actions/primary-actions.module.js +0 -54
- package/esm2015/lib/components/task-detail/task-detail.component.js +0 -82
- package/esm2015/lib/components/task-detail/task-detail.module.js +0 -41
- package/esm2015/lib/components/task-item/task-item.component.js +0 -109
- package/esm2015/lib/components/task-item/task-item.constant.js +0 -12
- package/esm2015/lib/components/task-item/task-item.module.js +0 -45
- package/esm2015/lib/components/task-item-status/task-item-status.component.js +0 -51
- package/esm2015/lib/components/task-item-status/task-item-status.module.js +0 -19
- package/esm2015/lib/components/task-list/task-list.component.js +0 -186
- package/esm2015/lib/components/task-list/task-list.module.js +0 -57
- package/esm2015/lib/components/task-list-search/task-list-search.component.js +0 -117
- package/esm2015/lib/components/task-list-search/task-list-search.module.js +0 -41
- package/esm2015/lib/components/task-preview/task-preview.component.js +0 -30
- package/esm2015/lib/components/task-preview/task-preview.module.js +0 -37
- package/esm2015/lib/helpers/array.helper.js +0 -10
- package/esm2015/lib/helpers/date.helplers.js +0 -17
- package/esm2015/lib/layout/layout-body/layout-body.component.js +0 -274
- package/esm2015/lib/layout/layout-body/layout-body.module.js +0 -55
- package/esm2015/lib/layout/layout-header/layout-header.component.js +0 -60
- package/esm2015/lib/layout/layout-header/layout-header.module.js +0 -48
- package/esm2015/lib/layout/layout.module.js +0 -18
- package/esm2015/lib/pipes/search-filter.pipe.js +0 -62
- package/lib/{components → v2/components}/agent-info/agent-info.module.d.ts +0 -0
- package/lib/{components → v2/components}/bottom-sheet/bottom-sheet.module.d.ts +0 -0
- package/lib/{components → v2/components}/components.module.d.ts +0 -0
- package/lib/{components → v2/components}/map-view/map-view.module.d.ts +0 -0
- package/lib/{components → v2/components}/primary-actions/primary-actions.module.d.ts +0 -0
- package/lib/{components → v2/components}/task-detail/task-detail.module.d.ts +0 -0
- package/lib/{components → v2/components}/task-item/task-item.constant.d.ts +0 -0
- package/lib/{components → v2/components}/task-item/task-item.module.d.ts +0 -0
- package/lib/{components → v2/components}/task-item-status/task-item-status.module.d.ts +0 -0
- package/lib/{components → v2/components}/task-list/task-list.module.d.ts +0 -0
- package/lib/{components → v2/components}/task-list-search/task-list-search.module.d.ts +0 -0
- package/lib/{components → v2/components}/task-preview/task-preview.module.d.ts +0 -0
- package/lib/{helpers → v2/helpers}/array.helper.d.ts +0 -0
- package/lib/{helpers → v2/helpers}/date.helplers.d.ts +1 -1
- /package/lib/{layout → v2/layout}/layout-body/layout-body.module.d.ts +0 -0
- /package/lib/{layout → v2/layout}/layout-header/layout-header.module.d.ts +0 -0
- /package/lib/{layout → v2/layout}/layout.module.d.ts +0 -0
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
/* eslint-disable no-magic-numbers */
|
|
3
|
+
import { Component, EventEmitter, Input, Output } from "@angular/core";
|
|
4
|
+
import { FormControl, FormGroup } from "@angular/forms";
|
|
5
|
+
import { getObjectDeepCopy, isNotEmptyValue } from "kwikid-toolkit";
|
|
6
|
+
import { TuiDay, TuiDayRange } from "@taiga-ui/cdk";
|
|
7
|
+
import { convertKwikUIDateToStringFormat, convertNormalDateToStringFormat } from "../../../v2/helpers/date.helplers";
|
|
8
|
+
import { sortItems } from "../../../v2/helpers/array.helper";
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "../../services/google-maps.service";
|
|
11
|
+
import * as i2 from "../../services/open-street-maps.service";
|
|
12
|
+
import * as i3 from "../../services/agent.service";
|
|
13
|
+
import * as i4 from "kwikui";
|
|
14
|
+
import * as i5 from "@angular/cdk/scrolling";
|
|
15
|
+
import * as i6 from "../customer-tile/customer-tile.component";
|
|
16
|
+
import * as i7 from "@angular/forms";
|
|
17
|
+
import * as i8 from "@angular/common";
|
|
18
|
+
import * as i9 from "../../pipes/search-filter.pipe";
|
|
19
|
+
export class CustomerListComponent {
|
|
20
|
+
constructor(googleMapsService, openStreetMapsService, agentService
|
|
21
|
+
// eslint-disable-next-line no-empty-function
|
|
22
|
+
) {
|
|
23
|
+
this.googleMapsService = googleMapsService;
|
|
24
|
+
this.openStreetMapsService = openStreetMapsService;
|
|
25
|
+
this.agentService = agentService;
|
|
26
|
+
this.nextStep = new EventEmitter();
|
|
27
|
+
this.removeTask = new EventEmitter();
|
|
28
|
+
this.filterTaskList = new EventEmitter();
|
|
29
|
+
this.filteredData = [];
|
|
30
|
+
this.formGroup = new FormGroup({});
|
|
31
|
+
this.sortInAscendingOrder = true;
|
|
32
|
+
this.max = new TuiDay(new Date().getFullYear(), new Date().getMonth(), new Date().getDate());
|
|
33
|
+
// Sorting Variables
|
|
34
|
+
this.sortFilterKey = "";
|
|
35
|
+
this.sortFilterOptions = ["user_id", "session_status"];
|
|
36
|
+
this.activeSearchAction = undefined;
|
|
37
|
+
this.onClickPerformAction = new EventEmitter();
|
|
38
|
+
}
|
|
39
|
+
ngOnInit() {
|
|
40
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
41
|
+
this.handleInitialDateRange();
|
|
42
|
+
this.handleSearchAndSortFormControls();
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
handleOnClickSearchType(type) {
|
|
46
|
+
if (this.activeSearchAction !== type) {
|
|
47
|
+
this.activeSearchAction = type;
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
this.activeSearchAction = undefined;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
handleInitialDateRange() {
|
|
54
|
+
var _a, _b, _c, _d, _e;
|
|
55
|
+
const searchDateStart = (_b = (_a = this.config.dashboard) === null || _a === void 0 ? void 0 : _a.searchDateStart) !== null && _b !== void 0 ? _b : {
|
|
56
|
+
day: 0,
|
|
57
|
+
month: 0,
|
|
58
|
+
year: 0
|
|
59
|
+
};
|
|
60
|
+
const currentDate = new Date();
|
|
61
|
+
const startDate = new Date((_c = currentDate.getFullYear() - (searchDateStart === null || searchDateStart === void 0 ? void 0 : searchDateStart.year)) !== null && _c !== void 0 ? _c : 0, (_d = currentDate.getMonth() - (searchDateStart === null || searchDateStart === void 0 ? void 0 : searchDateStart.month)) !== null && _d !== void 0 ? _d : 0, (_e = currentDate.getDate() - (searchDateStart === null || searchDateStart === void 0 ? void 0 : searchDateStart.day)) !== null && _e !== void 0 ? _e : 0);
|
|
62
|
+
this.fromDate = convertNormalDateToStringFormat(startDate);
|
|
63
|
+
this.toDate = convertNormalDateToStringFormat(null);
|
|
64
|
+
this.searchDateFormControl = new FormControl({
|
|
65
|
+
value: new TuiDayRange(new TuiDay(startDate.getFullYear(), startDate.getMonth(), startDate.getDate()), this.max),
|
|
66
|
+
disabled: false
|
|
67
|
+
});
|
|
68
|
+
this.formGroup.addControl("search-date", this.searchDateFormControl);
|
|
69
|
+
}
|
|
70
|
+
handleSearchAndSortFormControls() {
|
|
71
|
+
var _a, _b, _c;
|
|
72
|
+
this.searchTextFormControl = new FormControl("");
|
|
73
|
+
this.formGroup.addControl("search-text", this.searchTextFormControl);
|
|
74
|
+
this.sortFilterKeyFormControl = new FormControl("");
|
|
75
|
+
this.formGroup.addControl("sort-filter", this.sortFilterKeyFormControl);
|
|
76
|
+
this.sortFilterOptions =
|
|
77
|
+
(_c = (_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.extendedFlags) === null || _b === void 0 ? void 0 : _b.sortFilterKeys) !== null && _c !== void 0 ? _c : this.sortFilterOptions;
|
|
78
|
+
}
|
|
79
|
+
setUpMaps() {
|
|
80
|
+
var _a, _b;
|
|
81
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
82
|
+
if ((_a = this.config.dashboard) === null || _a === void 0 ? void 0 : _a.isShowMaps) {
|
|
83
|
+
if (((_b = this.config.dashboard) === null || _b === void 0 ? void 0 : _b.mapType) === "open-street") {
|
|
84
|
+
yield this.openStreetMapsService.initializeMap();
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
yield this.googleMapsService.initializeMap();
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
setCustomersList() {
|
|
93
|
+
var _a;
|
|
94
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
95
|
+
if ((_a = this.config.dashboard) === null || _a === void 0 ? void 0 : _a.isShowMaps) {
|
|
96
|
+
this.filteredData = yield this.plotMarkers(this.customers);
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
this.filteredData = this.customers;
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
ngAfterViewInit() {
|
|
104
|
+
var _a, _b;
|
|
105
|
+
this.maxLength = (_b = (_a = this.config.dashboard) === null || _a === void 0 ? void 0 : _a.searchDateRange) !== null && _b !== void 0 ? _b : this.maxLength;
|
|
106
|
+
setTimeout(() => __awaiter(this, void 0, void 0, function* () {
|
|
107
|
+
yield this.setUpMaps();
|
|
108
|
+
yield this.setCustomersList();
|
|
109
|
+
}), 1000);
|
|
110
|
+
}
|
|
111
|
+
ngOnChanges() {
|
|
112
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
113
|
+
yield this.setCustomersList();
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
handleOnClickNext(e) {
|
|
117
|
+
this.nextStep.emit(e);
|
|
118
|
+
}
|
|
119
|
+
plotMarkers(customers) {
|
|
120
|
+
var _a, _b;
|
|
121
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
122
|
+
if (!((_a = this.config.dashboard) === null || _a === void 0 ? void 0 : _a.isPlotCompletedTaskMarkers)) {
|
|
123
|
+
customers = customers.filter((customer) => {
|
|
124
|
+
return this.agentService.canPlotMarkers(customer.session_status);
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
if (((_b = this.config.dashboard) === null || _b === void 0 ? void 0 : _b.mapType) === "open-street") {
|
|
128
|
+
customers =
|
|
129
|
+
yield this.openStreetMapsService.plotDirectionsForAllTasks(customers);
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
customers =
|
|
133
|
+
yield this.googleMapsService.plotDirectionsForAllTasks(customers);
|
|
134
|
+
}
|
|
135
|
+
return customers;
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
handleOnChangeDateRange(event) {
|
|
139
|
+
this.handleChangeDateRangeFormat(event);
|
|
140
|
+
this.handleOnFilterTaskList({
|
|
141
|
+
from_date: this.fromDate,
|
|
142
|
+
to_date: this.toDate
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
handleOnClickChangeSortOrder() {
|
|
146
|
+
this.sortInAscendingOrder = !this.sortInAscendingOrder;
|
|
147
|
+
this.handleOnChangeSortFilter(false);
|
|
148
|
+
}
|
|
149
|
+
handleOnChangeSortFilter(event) {
|
|
150
|
+
if (event && isNotEmptyValue(event.value)) {
|
|
151
|
+
this.sortFilterKey = event.value;
|
|
152
|
+
this.handleOnSortTaskItems(this.sortFilterKey, this.sortInAscendingOrder);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
handleOnSortTaskItems(key, order) {
|
|
156
|
+
const sortedTaskItems = sortItems(this.filteredData, key, order);
|
|
157
|
+
this.filteredData = getObjectDeepCopy(sortedTaskItems);
|
|
158
|
+
}
|
|
159
|
+
handleChangeDateRangeFormat(event) {
|
|
160
|
+
var _a, _b;
|
|
161
|
+
if (((_a = event.value) === null || _a === void 0 ? void 0 : _a.from) && ((_b = event.value) === null || _b === void 0 ? void 0 : _b.to)) {
|
|
162
|
+
this.fromDate = convertKwikUIDateToStringFormat(event.value.from);
|
|
163
|
+
this.toDate = convertKwikUIDateToStringFormat(event.value.to);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
handleOnChangeSearchText(event) {
|
|
167
|
+
this.searchText = event.value;
|
|
168
|
+
}
|
|
169
|
+
handleOnClickRemoveTask(task) {
|
|
170
|
+
this.removeTask.emit(task);
|
|
171
|
+
}
|
|
172
|
+
handleOnFilterTaskList(filter) {
|
|
173
|
+
this.filterTaskList.emit(filter);
|
|
174
|
+
}
|
|
175
|
+
handleOnClickPerformAction(event) {
|
|
176
|
+
this.onClickPerformAction.emit(event);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
/** @nocollapse */ CustomerListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CustomerListComponent, deps: [{ token: i1.GoogleMapsService }, { token: i2.OpenStreetMapsService }, { token: i3.AgentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
180
|
+
/** @nocollapse */ CustomerListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CustomerListComponent, selector: "customer-list", inputs: { customers: "customers", config: "config" }, outputs: { nextStep: "nextStep", removeTask: "removeTask", filterTaskList: "filterTaskList", onClickPerformAction: "onClickPerformAction" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"customer-list-wrapper\">\n <div\n class=\"customer-list-filter\"\n [formGroup]=\"formGroup\"\n >\n <div class=\"task-list-search-icons\">\n <kwikui-button\n appearance=\"mono\"\n icon=\"tuiIconSearchLarge\"\n size=\"s\"\n type=\"button\"\n (onClick)=\"handleOnClickSearchType('search-text')\"\n ></kwikui-button>\n <kwikui-button\n appearance=\"mono\"\n icon=\"tuiIconCalendarLarge\"\n size=\"s\"\n type=\"button\"\n (onClick)=\"handleOnClickSearchType('search-date')\"\n ></kwikui-button>\n <kwikui-button\n appearance=\"mono\"\n icon=\"tuiIconFilterLarge\"\n size=\"s\"\n type=\"button\"\n (onClick)=\"handleOnClickSearchType('sort-filter')\"\n ></kwikui-button>\n </div>\n\n <div\n class=\"task-list-search-action\"\n *ngIf=\"activeSearchAction\"\n >\n <kwikui-input-date-range\n *ngIf=\"activeSearchAction == 'search-date'\"\n class=\"task-list-date-box\"\n label=\"Search by Date Range\"\n id=\"dateRange\"\n size=\"m\"\n [max]=\"max\"\n [maxLength]=\"maxLength\"\n formControlName=\"search-date\"\n [formControl]=\"searchDateFormControl\"\n (getKeyValue)=\"handleOnChangeDateRange($event)\"\n ></kwikui-input-date-range>\n\n <kwikui-input\n *ngIf=\"activeSearchAction == 'search-text'\"\n label=\"Search\"\n id=\"search\"\n icon=\"tuiIconSearch\"\n placeholder=\"Search any task from here\"\n size=\"m\"\n [formControl]=\"searchTextFormControl\"\n formControlName=\"search-text\"\n (getKeyValue)=\"handleOnChangeSearchText($event)\"\n ></kwikui-input>\n\n <div\n *ngIf=\"activeSearchAction == 'sort-filter'\"\n class=\"task-list-sort-action\"\n >\n <kwikui-button\n appearance=\"outline\"\n [icon]=\"\n sortInAscendingOrder\n ? 'tuiIconChevronsUpLarge'\n : 'tuiIconChevronsDownLarge'\n \"\n size=\"m\"\n type=\"button\"\n (onClick)=\"handleOnClickChangeSortOrder()\"\n ></kwikui-button>\n <kwikui-input-select\n class=\"task-list-sort-key\"\n formControlName=\"sort-filter\"\n label=\"Sort By Key\"\n size=\"m\"\n [formControl]=\"sortFilterKeyFormControl\"\n [options]=\"sortFilterOptions\"\n [searchable]=\"false\"\n (getKeyValue)=\"handleOnChangeSortFilter($event)\"\n ></kwikui-input-select>\n </div>\n </div>\n </div>\n\n <div class=\"customer-task-list\">\n <cdk-virtual-scroll-viewport\n itemSize=\"1\"\n class=\"customer-task-list-scroll\"\n >\n <div\n *cdkVirtualFor=\"\n let customer of filteredData | filter: searchText;\n index as index\n \"\n >\n <customer-tile\n class=\"example-item\"\n [customer]=\"customer\"\n [config]=\"config\"\n [index]=\"index\"\n (nextStep)=\"handleOnClickNext($event)\"\n (removeTask)=\"handleOnClickRemoveTask($event)\"\n (onClickPerformAction)=\"handleOnClickPerformAction($event)\"\n ></customer-tile>\n </div>\n </cdk-virtual-scroll-viewport>\n </div>\n\n <div\n class=\"customer-list-empty\"\n *ngIf=\"filteredData.length === 0\"\n >\n {{\n config?.dashboard?.emptyTaskListMessage ?? \"0 Tasks for the given Date.\"\n }}\n </div>\n</div>\n", styles: [".customer-list-wrapper{width:100%;height:100%;display:flex;flex-direction:column}.customer-list-filter{height:-moz-fit-content;height:fit-content;width:100%;display:flex;flex-direction:column;padding:1rem;grid-gap:.8rem;gap:.8rem;border-bottom:.5px solid #ddd}.customer-list-filter .task-list-search-icons{display:flex;justify-content:flex-end;align-items:center;flex-direction:row;grid-gap:.5rem;gap:.5rem}.customer-list-filter .task-list-search-action{margin-top:.5rem}.customer-list-filter .task-list-search-action .task-list-sort-action{display:flex;flex-direction:row;grid-gap:.5rem;gap:.5rem}.customer-list-filter .task-list-search-action .task-list-sort-action .task-list-sort-key{flex:1}.customer-list-empty{height:100%;width:100%;margin-top:.5rem;font-size:1rem;text-align:center}.customer-task-list{height:100%}.customer-task-list-scroll{height:100%;width:100%}.cdk-virtual-scroll-spacer{height:0!important}.example-item{height:50px}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{border-radius:10px}::-webkit-scrollbar-thumb{background:lightgray;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:gray}\n"], components: [{ type: i4.KwikUIButtonComponent, selector: "kwikui-button", inputs: ["appearance", "class", "disabled", "icon", "iconRight", "id", "label", "shape", "showLoader", "size", "styles", "type", "pseudoHover"], outputs: ["onClick"] }, { type: i4.KwikUIInputDateRangeComponent, selector: "kwikui-input-date-range", inputs: ["disabled", "focus", "formControl", "formControlName", "hintContent", "icon", "id", "invalid", "label", "max", "maxLength", "min", "minLength", "placeholder", "postfix", "prefix", "properties", "size", "validators"], outputs: ["getKeyValue"] }, { type: i4.KwikUIInputComponent, selector: "kwikui-input", inputs: ["case", "disabled", "focus", "formControl", "formControlName", "hintContent", "icon", "id", "invalid", "label", "placeholder", "postfix", "prefix", "properties", "size", "type", "validators"], outputs: ["getKeyValue"] }, { type: i4.KwikUIInputSelectComponent, selector: "kwikui-input-select", inputs: ["disabled", "focus", "formControl", "formControlName", "hintContent", "icon", "id", "invalid", "label", "options", "placeholder", "properties", "searchable", "size", "validators"], outputs: ["getKeyValue"] }, { type: i5.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { type: i6.CustomerTileComponent, selector: "customer-tile", inputs: ["customer", "index", "config"], outputs: ["onClickPerformAction", "nextStep", "removeTask"] }], directives: [{ type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i7.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i5.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { type: i5.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }], pipes: { "filter": i9.Ng2SearchPipe } });
|
|
181
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CustomerListComponent, decorators: [{
|
|
182
|
+
type: Component,
|
|
183
|
+
args: [{
|
|
184
|
+
selector: "customer-list",
|
|
185
|
+
templateUrl: "./customer-list.component.html",
|
|
186
|
+
styleUrls: ["./customer-list.component.scss"]
|
|
187
|
+
}]
|
|
188
|
+
}], ctorParameters: function () { return [{ type: i1.GoogleMapsService }, { type: i2.OpenStreetMapsService }, { type: i3.AgentService }]; }, propDecorators: { customers: [{
|
|
189
|
+
type: Input
|
|
190
|
+
}], config: [{
|
|
191
|
+
type: Input
|
|
192
|
+
}], nextStep: [{
|
|
193
|
+
type: Output
|
|
194
|
+
}], removeTask: [{
|
|
195
|
+
type: Output
|
|
196
|
+
}], filterTaskList: [{
|
|
197
|
+
type: Output
|
|
198
|
+
}], onClickPerformAction: [{
|
|
199
|
+
type: Output
|
|
200
|
+
}] } });
|
|
201
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtYWdlbnQtZGFzaGJvYXJkL3NyYy9saWIvdjEvY29tcG9uZW50cy9jdXN0b21lci1saXN0L2N1c3RvbWVyLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3dpa2lkLWFnZW50LWRhc2hib2FyZC9zcmMvbGliL3YxL2NvbXBvbmVudHMvY3VzdG9tZXItbGlzdC9jdXN0b21lci1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxxQ0FBcUM7QUFDckMsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUlwRCxPQUFPLEVBQ0wsK0JBQStCLEVBQy9CLCtCQUErQixFQUNoQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7Ozs7Ozs7QUFPN0QsTUFBTSxPQUFPLHFCQUFxQjtJQXNEaEMsWUFDUyxpQkFBb0MsRUFDcEMscUJBQTRDLEVBQzVDLFlBQTBCO0lBQ2pDLDZDQUE2Qzs7UUFIdEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBakRuQyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FB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QUM7SUFFRCx1QkFBdUIsQ0FBQyxJQUFJO1FBQzFCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxNQUFNO1FBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCwwQkFBMEIsQ0FBQyxLQUFVO1FBQ25DLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEMsQ0FBQzs7c0lBcE5VLHFCQUFxQjswSEFBckIscUJBQXFCLDZRQ25CbEMsNGhIQXdIQTs0RkRyR2EscUJBQXFCO2tCQUxqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6QixXQUFXLEVBQUUsZ0NBQWdDO29CQUM3QyxTQUFTLEVBQUUsQ0FBQyxnQ0FBZ0MsQ0FBQztpQkFDOUM7dUtBR0MsU0FBUztzQkFEUixLQUFLO2dCQUlOLE1BQU07c0JBREwsS0FBSztnQkFJTixRQUFRO3NCQURQLE1BQU07Z0JBSVAsVUFBVTtzQkFEVCxNQUFNO2dCQUlQLGNBQWM7c0JBRGIsTUFBTTtnQkF1Q1Asb0JBQW9CO3NCQURuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tbWFnaWMtbnVtYmVycyAqL1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBnZXRPYmplY3REZWVwQ29weSwgaXNOb3RFbXB0eVZhbHVlIH0gZnJvbSBcImt3aWtpZC10b29sa2l0XCI7XG5pbXBvcnQgeyBUdWlEYXksIFR1aURheVJhbmdlIH0gZnJvbSBcIkB0YWlnYS11aS9jZGtcIjtcbmltcG9ydCB7IEdvb2dsZU1hcHNTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2dvb2dsZS1tYXBzLnNlcnZpY2VcIjtcbmltcG9ydCB7IEFnZW50U2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9hZ2VudC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBPcGVuU3RyZWV0TWFwc1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvb3Blbi1zdHJlZXQtbWFwcy5zZXJ2aWNlXCI7XG5pbXBvcnQge1xuICBjb252ZXJ0S3dpa1VJRGF0ZVRvU3RyaW5nRm9ybWF0LFxuICBjb252ZXJ0Tm9ybWFsRGF0ZVRvU3RyaW5nRm9ybWF0XG59IGZyb20gXCIuLi8uLi8uLi92Mi9oZWxwZXJzL2RhdGUuaGVscGxlcnNcIjtcbmltcG9ydCB7IHNvcnRJdGVtcyB9IGZyb20gXCIuLi8uLi8uLi92Mi9oZWxwZXJzL2FycmF5LmhlbHBlclwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiY3VzdG9tZXItbGlzdFwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2N1c3RvbWVyLWxpc3QuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL2N1c3RvbWVyLWxpc3QuY29tcG9uZW50LnNjc3NcIl1cbn0pXG5leHBvcnQgY2xhc3MgQ3VzdG9tZXJMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KClcbiAgY3VzdG9tZXJzOiBhbnk7XG5cbiAgQElucHV0KClcbiAgY29uZmlnOiBhbnk7XG5cbiAgQE91dHB1dCgpXG4gIG5leHRTdGVwID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICByZW1vdmVUYXNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBmaWx0ZXJUYXNrTGlzdCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBzZWFyY2hUZXh0O1xuXG4gIGxhc3RJbmZvV2luZG93T3BlbmVkOiBhbnk7XG5cbiAgZmlsdGVyZWREYXRhID0gW107XG5cbiAgZm9ybUdyb3VwOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcblxuICBzZWFyY2hUZXh0Rm9ybUNvbnRyb2w6IEZvcm1Db250cm9sO1xuXG4gIHNlYXJjaERhdGVGb3JtQ29udHJvbDogRm9ybUNvbnRyb2w7XG5cbiAgc29ydEZpbHRlcktleUZvcm1Db250cm9sOiBGb3JtQ29udHJvbDtcblxuICBzb3J0SW5Bc2NlbmRpbmdPcmRlciA9IHRydWU7XG5cbiAgZnJvbURhdGU6IHN0cmluZyB8IERhdGU7XG5cbiAgdG9EYXRlOiBzdHJpbmcgfCBEYXRlO1xuXG4gIG1heDogVHVpRGF5ID0gbmV3IFR1aURheShcbiAgICBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCksXG4gICAgbmV3IERhdGUoKS5nZXRNb250aCgpLFxuICAgIG5ldyBEYXRlKCkuZ2V0RGF0ZSgpXG4gICk7XG5cbiAgbWF4TGVuZ3RoOiBhbnk7XG5cbiAgLy8gU29ydGluZyBWYXJpYWJsZXNcbiAgc29ydEZpbHRlcktleSA9IFwiXCI7XG5cbiAgc29ydEZpbHRlck9wdGlvbnMgPSBbXCJ1c2VyX2lkXCIsIFwic2Vzc2lvbl9zdGF0dXNcIl07XG5cbiAgYWN0aXZlU2VhcmNoQWN0aW9uOiBzdHJpbmcgPSB1bmRlZmluZWQ7XG5cbiAgQE91dHB1dCgpXG4gIG9uQ2xpY2tQZXJmb3JtQWN0aW9uOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBnb29nbGVNYXBzU2VydmljZTogR29vZ2xlTWFwc1NlcnZpY2UsXG4gICAgcHVibGljIG9wZW5TdHJlZXRNYXBzU2VydmljZTogT3BlblN0cmVldE1hcHNTZXJ2aWNlLFxuICAgIHB1YmxpYyBhZ2VudFNlcnZpY2U6IEFnZW50U2VydmljZVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1lbXB0eS1mdW5jdGlvblxuICApIHt9XG5cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5oYW5kbGVJbml0aWFsRGF0ZVJhbmdlKCk7XG4gICAgdGhpcy5oYW5kbGVTZWFyY2hBbmRTb3J0Rm9ybUNvbnRyb2xzKCk7XG4gIH1cblxuICBoYW5kbGVPbkNsaWNrU2VhcmNoVHlwZSh0eXBlKSB7XG4gICAgaWYgKHRoaXMuYWN0aXZlU2VhcmNoQWN0aW9uICE9PSB0eXBlKSB7XG4gICAgICB0aGlzLmFjdGl2ZVNlYXJjaEFjdGlvbiA9IHR5cGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYWN0aXZlU2VhcmNoQWN0aW9uID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUluaXRpYWxEYXRlUmFuZ2UoKSB7XG4gICAgY29uc3Qgc2VhcmNoRGF0ZVN0YXJ0ID0gdGhpcy5jb25maWcuZGFzaGJvYXJkPy5zZWFyY2hEYXRlU3RhcnQgPz8ge1xuICAgICAgZGF5OiAwLFxuICAgICAgbW9udGg6IDAsXG4gICAgICB5ZWFyOiAwXG4gICAgfTtcbiAgICBjb25zdCBjdXJyZW50RGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgY29uc3Qgc3RhcnREYXRlID0gbmV3IERhdGUoXG4gICAgICBjdXJyZW50RGF0ZS5nZXRGdWxsWWVhcigpIC0gc2VhcmNoRGF0ZVN0YXJ0Py55ZWFyID8/IDAsXG4gICAgICBjdXJyZW50RGF0ZS5nZXRNb250aCgpIC0gc2VhcmNoRGF0ZVN0YXJ0Py5tb250aCA/PyAwLFxuICAgICAgY3VycmVudERhdGUuZ2V0RGF0ZSgpIC0gc2VhcmNoRGF0ZVN0YXJ0Py5kYXkgPz8gMFxuICAgICk7XG5cbiAgICB0aGlzLmZyb21EYXRlID0gY29udmVydE5vcm1hbERhdGVUb1N0cmluZ0Zvcm1hdChzdGFydERhdGUpO1xuICAgIHRoaXMudG9EYXRlID0gY29udmVydE5vcm1hbERhdGVUb1N0cmluZ0Zvcm1hdChudWxsKTtcblxuICAgIHRoaXMuc2VhcmNoRGF0ZUZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKHtcbiAgICAgIHZhbHVlOiBuZXcgVHVpRGF5UmFuZ2UoXG4gICAgICAgIG5ldyBUdWlEYXkoXG4gICAgICAgICAgc3RhcnREYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgICAgICAgc3RhcnREYXRlLmdldE1vbnRoKCksXG4gICAgICAgICAgc3RhcnREYXRlLmdldERhdGUoKVxuICAgICAgICApLFxuICAgICAgICB0aGlzLm1heFxuICAgICAgKSxcbiAgICAgIGRpc2FibGVkOiBmYWxzZVxuICAgIH0pO1xuICAgIHRoaXMuZm9ybUdyb3VwLmFkZENvbnRyb2woXCJzZWFyY2gtZGF0ZVwiLCB0aGlzLnNlYXJjaERhdGVGb3JtQ29udHJvbCk7XG4gIH1cblxuICBoYW5kbGVTZWFyY2hBbmRTb3J0Rm9ybUNvbnRyb2xzKCkge1xuICAgIHRoaXMuc2VhcmNoVGV4dEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKFwiXCIpO1xuICAgIHRoaXMuZm9ybUdyb3VwLmFkZENvbnRyb2woXCJzZWFyY2gtdGV4dFwiLCB0aGlzLnNlYXJjaFRleHRGb3JtQ29udHJvbCk7XG5cbiAgICB0aGlzLnNvcnRGaWx0ZXJLZXlGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbChcIlwiKTtcbiAgICB0aGlzLmZvcm1Hcm91cC5hZGRDb250cm9sKFwic29ydC1maWx0ZXJcIiwgdGhpcy5zb3J0RmlsdGVyS2V5Rm9ybUNvbnRyb2wpO1xuICAgIHRoaXMuc29ydEZpbHRlck9wdGlvbnMgPVxuICAgICAgdGhpcy5jb25maWc/LmV4dGVuZGVkRmxhZ3M/LnNvcnRGaWx0ZXJLZXlzID8/IHRoaXMuc29ydEZpbHRlck9wdGlvbnM7XG4gIH1cblxuICBhc3luYyBzZXRVcE1hcHMoKSB7XG4gICAgaWYgKHRoaXMuY29uZmlnLmRhc2hib2FyZD8uaXNTaG93TWFwcykge1xuICAgICAgaWYgKHRoaXMuY29uZmlnLmRhc2hib2FyZD8ubWFwVHlwZSA9PT0gXCJvcGVuLXN0cmVldFwiKSB7XG4gICAgICAgIGF3YWl0IHRoaXMub3BlblN0cmVldE1hcHNTZXJ2aWNlLmluaXRpYWxpemVNYXAoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGF3YWl0IHRoaXMuZ29vZ2xlTWFwc1NlcnZpY2UuaW5pdGlhbGl6ZU1hcCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHNldEN1c3RvbWVyc0xpc3QoKSB7XG4gICAgaWYgKHRoaXMuY29uZmlnLmRhc2hib2FyZD8uaXNTaG93TWFwcykge1xuICAgICAgdGhpcy5maWx0ZXJlZERhdGEgPSBhd2FpdCB0aGlzLnBsb3RNYXJrZXJzKHRoaXMuY3VzdG9tZXJzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maWx0ZXJlZERhdGEgPSB0aGlzLmN1c3RvbWVycztcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5tYXhMZW5ndGggPSB0aGlzLmNvbmZpZy5kYXNoYm9hcmQ/LnNlYXJjaERhdGVSYW5nZSA/PyB0aGlzLm1heExlbmd0aDtcbiAgICBzZXRUaW1lb3V0KGFzeW5jKCkgPT4ge1xuICAgICAgYXdhaXQgdGhpcy5zZXRVcE1hcHMoKTtcbiAgICAgIGF3YWl0IHRoaXMuc2V0Q3VzdG9tZXJzTGlzdCgpO1xuICAgIH0sIDEwMDApO1xuICB9XG5cbiAgYXN5bmMgbmdPbkNoYW5nZXMoKSB7XG4gICAgYXdhaXQgdGhpcy5zZXRDdXN0b21lcnNMaXN0KCk7XG4gIH1cblxuICBoYW5kbGVPbkNsaWNrTmV4dChlKSB7XG4gICAgdGhpcy5uZXh0U3RlcC5lbWl0KGUpO1xuICB9XG5cbiAgYXN5bmMgcGxvdE1hcmtlcnMoY3VzdG9tZXJzKSB7XG4gICAgaWYgKCF0aGlzLmNvbmZpZy5kYXNoYm9hcmQ/LmlzUGxvdENvbXBsZXRlZFRhc2tNYXJrZXJzKSB7XG4gICAgICBjdXN0b21lcnMgPSBjdXN0b21lcnMuZmlsdGVyKChjdXN0b21lcikgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hZ2VudFNlcnZpY2UuY2FuUGxvdE1hcmtlcnMoY3VzdG9tZXIuc2Vzc2lvbl9zdGF0dXMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29uZmlnLmRhc2hib2FyZD8ubWFwVHlwZSA9PT0gXCJvcGVuLXN0cmVldFwiKSB7XG4gICAgICBjdXN0b21lcnMgPVxuICAgICAgICBhd2FpdCB0aGlzLm9wZW5TdHJlZXRNYXBzU2VydmljZS5wbG90RGlyZWN0aW9uc0ZvckFsbFRhc2tzKGN1c3RvbWVycyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGN1c3RvbWVycyA9XG4gICAgICAgIGF3YWl0IHRoaXMuZ29vZ2xlTWFwc1NlcnZpY2UucGxvdERpcmVjdGlvbnNGb3JBbGxUYXNrcyhjdXN0b21lcnMpO1xuICAgIH1cblxuICAgIHJldHVybiBjdXN0b21lcnM7XG4gIH1cblxuICBoYW5kbGVPbkNoYW5nZURhdGVSYW5nZShldmVudCkge1xuICAgIHRoaXMuaGFuZGxlQ2hhbmdlRGF0ZVJhbmdlRm9ybWF0KGV2ZW50KTtcbiAgICB0aGlzLmhhbmRsZU9uRmlsdGVyVGFza0xpc3Qoe1xuICAgICAgZnJvbV9kYXRlOiB0aGlzLmZyb21EYXRlLFxuICAgICAgdG9fZGF0ZTogdGhpcy50b0RhdGVcbiAgICB9KTtcbiAgfVxuXG4gIGhhbmRsZU9uQ2xpY2tDaGFuZ2VTb3J0T3JkZXIoKSB7XG4gICAgdGhpcy5zb3J0SW5Bc2NlbmRpbmdPcmRlciA9ICF0aGlzLnNvcnRJbkFzY2VuZGluZ09yZGVyO1xuICAgIHRoaXMuaGFuZGxlT25DaGFuZ2VTb3J0RmlsdGVyKGZhbHNlKTtcbiAgfVxuXG4gIGhhbmRsZU9uQ2hhbmdlU29ydEZpbHRlcihldmVudDogYW55KSB7XG4gICAgaWYgKGV2ZW50ICYmIGlzTm90RW1wdHlWYWx1ZShldmVudC52YWx1ZSkpIHtcbiAgICAgIHRoaXMuc29ydEZpbHRlcktleSA9IGV2ZW50LnZhbHVlO1xuICAgICAgdGhpcy5oYW5kbGVPblNvcnRUYXNrSXRlbXModGhpcy5zb3J0RmlsdGVyS2V5LCB0aGlzLnNvcnRJbkFzY2VuZGluZ09yZGVyKTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVPblNvcnRUYXNrSXRlbXMoa2V5LCBvcmRlcikge1xuICAgIGNvbnN0IHNvcnRlZFRhc2tJdGVtcyA9IHNvcnRJdGVtcyh0aGlzLmZpbHRlcmVkRGF0YSwga2V5LCBvcmRlcik7XG4gICAgdGhpcy5maWx0ZXJlZERhdGEgPSBnZXRPYmplY3REZWVwQ29weShzb3J0ZWRUYXNrSXRlbXMpO1xuICB9XG5cbiAgaGFuZGxlQ2hhbmdlRGF0ZVJhbmdlRm9ybWF0KGV2ZW50OiBhbnkpIHtcbiAgICBpZiAoZXZlbnQudmFsdWU/LmZyb20gJiYgZXZlbnQudmFsdWU/LnRvKSB7XG4gICAgICB0aGlzLmZyb21EYXRlID0gY29udmVydEt3aWtVSURhdGVUb1N0cmluZ0Zvcm1hdChldmVudC52YWx1ZS5mcm9tKTtcbiAgICAgIHRoaXMudG9EYXRlID0gY29udmVydEt3aWtVSURhdGVUb1N0cmluZ0Zvcm1hdChldmVudC52YWx1ZS50byk7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlT25DaGFuZ2VTZWFyY2hUZXh0KGV2ZW50KSB7XG4gICAgdGhpcy5zZWFyY2hUZXh0ID0gZXZlbnQudmFsdWU7XG4gIH1cblxuICBoYW5kbGVPbkNsaWNrUmVtb3ZlVGFzayh0YXNrKSB7XG4gICAgdGhpcy5yZW1vdmVUYXNrLmVtaXQodGFzayk7XG4gIH1cblxuICBoYW5kbGVPbkZpbHRlclRhc2tMaXN0KGZpbHRlcikge1xuICAgIHRoaXMuZmlsdGVyVGFza0xpc3QuZW1pdChmaWx0ZXIpO1xuICB9XG5cbiAgaGFuZGxlT25DbGlja1BlcmZvcm1BY3Rpb24oZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DbGlja1BlcmZvcm1BY3Rpb24uZW1pdChldmVudCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjdXN0b21lci1saXN0LXdyYXBwZXJcIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiY3VzdG9tZXItbGlzdC1maWx0ZXJcIlxuICAgIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJ0YXNrLWxpc3Qtc2VhcmNoLWljb25zXCI+XG4gICAgICA8a3dpa3VpLWJ1dHRvblxuICAgICAgICBhcHBlYXJhbmNlPVwibW9ub1wiXG4gICAgICAgIGljb249XCJ0dWlJY29uU2VhcmNoTGFyZ2VcIlxuICAgICAgICBzaXplPVwic1wiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAob25DbGljayk9XCJoYW5kbGVPbkNsaWNrU2VhcmNoVHlwZSgnc2VhcmNoLXRleHQnKVwiXG4gICAgICA+PC9rd2lrdWktYnV0dG9uPlxuICAgICAgPGt3aWt1aS1idXR0b25cbiAgICAgICAgYXBwZWFyYW5jZT1cIm1vbm9cIlxuICAgICAgICBpY29uPVwidHVpSWNvbkNhbGVuZGFyTGFyZ2VcIlxuICAgICAgICBzaXplPVwic1wiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAob25DbGljayk9XCJoYW5kbGVPbkNsaWNrU2VhcmNoVHlwZSgnc2VhcmNoLWRhdGUnKVwiXG4gICAgICA+PC9rd2lrdWktYnV0dG9uPlxuICAgICAgPGt3aWt1aS1idXR0b25cbiAgICAgICAgYXBwZWFyYW5jZT1cIm1vbm9cIlxuICAgICAgICBpY29uPVwidHVpSWNvbkZpbHRlckxhcmdlXCJcbiAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgKG9uQ2xpY2spPVwiaGFuZGxlT25DbGlja1NlYXJjaFR5cGUoJ3NvcnQtZmlsdGVyJylcIlxuICAgICAgPjwva3dpa3VpLWJ1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwidGFzay1saXN0LXNlYXJjaC1hY3Rpb25cIlxuICAgICAgKm5nSWY9XCJhY3RpdmVTZWFyY2hBY3Rpb25cIlxuICAgID5cbiAgICAgIDxrd2lrdWktaW5wdXQtZGF0ZS1yYW5nZVxuICAgICAgICAqbmdJZj1cImFjdGl2ZVNlYXJjaEFjdGlvbiA9PSAnc2VhcmNoLWRhdGUnXCJcbiAgICAgICAgY2xhc3M9XCJ0YXNrLWxpc3QtZGF0ZS1ib3hcIlxuICAgICAgICBsYWJlbD1cIlNlYXJjaCBieSBEYXRlIFJhbmdlXCJcbiAgICAgICAgaWQ9XCJkYXRlUmFuZ2VcIlxuICAgICAgICBzaXplPVwibVwiXG4gICAgICAgIFttYXhdPVwibWF4XCJcbiAgICAgICAgW21heExlbmd0aF09XCJtYXhMZW5ndGhcIlxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzZWFyY2gtZGF0ZVwiXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJzZWFyY2hEYXRlRm9ybUNvbnRyb2xcIlxuICAgICAgICAoZ2V0S2V5VmFsdWUpPVwiaGFuZGxlT25DaGFuZ2VEYXRlUmFuZ2UoJGV2ZW50KVwiXG4gICAgICA+PC9rd2lrdWktaW5wdXQtZGF0ZS1yYW5nZT5cblxuICAgICAgPGt3aWt1aS1pbnB1dFxuICAgICAgICAqbmdJZj1cImFjdGl2ZVNlYXJjaEFjdGlvbiA9PSAnc2VhcmNoLXRleHQnXCJcbiAgICAgICAgbGFiZWw9XCJTZWFyY2hcIlxuICAgICAgICBpZD1cInNlYXJjaFwiXG4gICAgICAgIGljb249XCJ0dWlJY29uU2VhcmNoXCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2ggYW55IHRhc2sgZnJvbSBoZXJlXCJcbiAgICAgICAgc2l6ZT1cIm1cIlxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwic2VhcmNoVGV4dEZvcm1Db250cm9sXCJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2VhcmNoLXRleHRcIlxuICAgICAgICAoZ2V0S2V5VmFsdWUpPVwiaGFuZGxlT25DaGFuZ2VTZWFyY2hUZXh0KCRldmVudClcIlxuICAgICAgPjwva3dpa3VpLWlucHV0PlxuXG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiYWN0aXZlU2VhcmNoQWN0aW9uID09ICdzb3J0LWZpbHRlcidcIlxuICAgICAgICBjbGFzcz1cInRhc2stbGlzdC1zb3J0LWFjdGlvblwiXG4gICAgICA+XG4gICAgICAgIDxrd2lrdWktYnV0dG9uXG4gICAgICAgICAgYXBwZWFyYW5jZT1cIm91dGxpbmVcIlxuICAgICAgICAgIFtpY29uXT1cIlxuICAgICAgICAgICAgc29ydEluQXNjZW5kaW5nT3JkZXJcbiAgICAgICAgICAgICAgPyAndHVpSWNvbkNoZXZyb25zVXBMYXJnZSdcbiAgICAgICAgICAgICAgOiAndHVpSWNvbkNoZXZyb25zRG93bkxhcmdlJ1xuICAgICAgICAgIFwiXG4gICAgICAgICAgc2l6ZT1cIm1cIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIChvbkNsaWNrKT1cImhhbmRsZU9uQ2xpY2tDaGFuZ2VTb3J0T3JkZXIoKVwiXG4gICAgICAgID48L2t3aWt1aS1idXR0b24+XG4gICAgICAgIDxrd2lrdWktaW5wdXQtc2VsZWN0XG4gICAgICAgICAgY2xhc3M9XCJ0YXNrLWxpc3Qtc29ydC1rZXlcIlxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInNvcnQtZmlsdGVyXCJcbiAgICAgICAgICBsYWJlbD1cIlNvcnQgQnkgS2V5XCJcbiAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgW2Zvcm1Db250cm9sXT1cInNvcnRGaWx0ZXJLZXlGb3JtQ29udHJvbFwiXG4gICAgICAgICAgW29wdGlvbnNdPVwic29ydEZpbHRlck9wdGlvbnNcIlxuICAgICAgICAgIFtzZWFyY2hhYmxlXT1cImZhbHNlXCJcbiAgICAgICAgICAoZ2V0S2V5VmFsdWUpPVwiaGFuZGxlT25DaGFuZ2VTb3J0RmlsdGVyKCRldmVudClcIlxuICAgICAgICA+PC9rd2lrdWktaW5wdXQtc2VsZWN0PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJjdXN0b21lci10YXNrLWxpc3RcIj5cbiAgICA8Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0XG4gICAgICBpdGVtU2l6ZT1cIjFcIlxuICAgICAgY2xhc3M9XCJjdXN0b21lci10YXNrLWxpc3Qtc2Nyb2xsXCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgICpjZGtWaXJ0dWFsRm9yPVwiXG4gICAgICAgICAgbGV0IGN1c3RvbWVyIG9mIGZpbHRlcmVkRGF0YSB8IGZpbHRlcjogc2VhcmNoVGV4dDtcbiAgICAgICAgICBpbmRleCBhcyBpbmRleFxuICAgICAgICBcIlxuICAgICAgPlxuICAgICAgICA8Y3VzdG9tZXItdGlsZVxuICAgICAgICAgIGNsYXNzPVwiZXhhbXBsZS1pdGVtXCJcbiAgICAgICAgICBbY3VzdG9tZXJdPVwiY3VzdG9tZXJcIlxuICAgICAgICAgIFtjb25maWddPVwiY29uZmlnXCJcbiAgICAgICAgICBbaW5kZXhdPVwiaW5kZXhcIlxuICAgICAgICAgIChuZXh0U3RlcCk9XCJoYW5kbGVPbkNsaWNrTmV4dCgkZXZlbnQpXCJcbiAgICAgICAgICAocmVtb3ZlVGFzayk9XCJoYW5kbGVPbkNsaWNrUmVtb3ZlVGFzaygkZXZlbnQpXCJcbiAgICAgICAgICAob25DbGlja1BlcmZvcm1BY3Rpb24pPVwiaGFuZGxlT25DbGlja1BlcmZvcm1BY3Rpb24oJGV2ZW50KVwiXG4gICAgICAgID48L2N1c3RvbWVyLXRpbGU+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Nkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydD5cbiAgPC9kaXY+XG5cbiAgPGRpdlxuICAgIGNsYXNzPVwiY3VzdG9tZXItbGlzdC1lbXB0eVwiXG4gICAgKm5nSWY9XCJmaWx0ZXJlZERhdGEubGVuZ3RoID09PSAwXCJcbiAgPlxuICAgIHt7XG4gICAgICBjb25maWc/LmRhc2hib2FyZD8uZW1wdHlUYXNrTGlzdE1lc3NhZ2UgPz8gXCIwIFRhc2tzIGZvciB0aGUgZ2l2ZW4gRGF0ZS5cIlxuICAgIH19XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { Component, EventEmitter, HostListener, Input, Output } from "@angular/core";
|
|
2
|
+
import { checkObjectPathExists, getObjectValueFromPath, isNotEmptyArray } from "kwikid-toolkit";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../../services/google-maps.service";
|
|
5
|
+
import * as i2 from "../../services/open-street-maps.service";
|
|
6
|
+
import * as i3 from "../../services/agent.service";
|
|
7
|
+
import * as i4 from "./status-pill/status-pill.component";
|
|
8
|
+
import * as i5 from "kwikui";
|
|
9
|
+
import * as i6 from "../action-button/action-button.component";
|
|
10
|
+
import * as i7 from "@angular/common";
|
|
11
|
+
export class CustomerTileComponent {
|
|
12
|
+
constructor(googleMapsService, openStreetMapsService, agentService, hostElement) {
|
|
13
|
+
this.googleMapsService = googleMapsService;
|
|
14
|
+
this.openStreetMapsService = openStreetMapsService;
|
|
15
|
+
this.agentService = agentService;
|
|
16
|
+
this.hostElement = hostElement;
|
|
17
|
+
this.customer = {};
|
|
18
|
+
this.index = undefined;
|
|
19
|
+
this.isMobileView = false;
|
|
20
|
+
this.viewTaskDetails = [];
|
|
21
|
+
this.taskId = "";
|
|
22
|
+
this.labelValuePairConfig = {};
|
|
23
|
+
this.labelValuePairData = [];
|
|
24
|
+
this.onClickPerformAction = new EventEmitter();
|
|
25
|
+
this.nextStep = new EventEmitter();
|
|
26
|
+
this.removeTask = new EventEmitter();
|
|
27
|
+
}
|
|
28
|
+
windowResizeWatcher() {
|
|
29
|
+
if (this.hostElement.nativeElement.offsetWidth < 600) {
|
|
30
|
+
this.isMobileView = true;
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
this.isMobileView = false;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
ngOnInit() {
|
|
37
|
+
this.parseData();
|
|
38
|
+
}
|
|
39
|
+
ngOnChanges(changes) {
|
|
40
|
+
const verifyChange = (key) => {
|
|
41
|
+
return changes.hasOwnProperty(key) && !changes[key].firstChange;
|
|
42
|
+
};
|
|
43
|
+
if (verifyChange("customer")) {
|
|
44
|
+
this.customer = changes.customer.currentValue;
|
|
45
|
+
this.parseData();
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
parseData() {
|
|
49
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
50
|
+
const identifier = (_c = (_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.dashboard) === null || _b === void 0 ? void 0 : _b.taskIdentifier) !== null && _c !== void 0 ? _c : "user_id";
|
|
51
|
+
this.taskId = getObjectValueFromPath(this.customer, identifier);
|
|
52
|
+
let detailsConfig = [];
|
|
53
|
+
if (checkObjectPathExists(this.config, "dashboard.viewTaskDetails") &&
|
|
54
|
+
isNotEmptyArray(this.config.dashboard.viewTaskDetails)) {
|
|
55
|
+
detailsConfig = this.config.dashboard.viewTaskDetails;
|
|
56
|
+
const data = [];
|
|
57
|
+
detailsConfig.map((field) => {
|
|
58
|
+
console.log("vvvvv", field);
|
|
59
|
+
const value = getObjectValueFromPath(this.customer, field.value);
|
|
60
|
+
data.push({ label: field.label, value });
|
|
61
|
+
return true;
|
|
62
|
+
});
|
|
63
|
+
this.labelValuePairData = data;
|
|
64
|
+
}
|
|
65
|
+
else if (checkObjectPathExists(this.config, "dashboard.taskUI.details.data") &&
|
|
66
|
+
isNotEmptyArray(this.config.dashboard.taskUI.details.data)) {
|
|
67
|
+
detailsConfig = this.config.dashboard.taskUI.details.data;
|
|
68
|
+
const data = [];
|
|
69
|
+
detailsConfig.map((field) => {
|
|
70
|
+
const value = getObjectValueFromPath(this.customer, field.path);
|
|
71
|
+
data.push({ label: field.label, value });
|
|
72
|
+
return true;
|
|
73
|
+
});
|
|
74
|
+
this.labelValuePairData = data;
|
|
75
|
+
}
|
|
76
|
+
console.log("DATA", this.labelValuePairData);
|
|
77
|
+
this.labelValuePairConfig =
|
|
78
|
+
(_h = (_g = (_f = (_e = (_d = this.config) === null || _d === void 0 ? void 0 : _d.dashboard) === null || _e === void 0 ? void 0 : _e.taskUI) === null || _f === void 0 ? void 0 : _f.details) === null || _g === void 0 ? void 0 : _g.config) !== null && _h !== void 0 ? _h : {};
|
|
79
|
+
}
|
|
80
|
+
openDetails() {
|
|
81
|
+
var _a, _b, _c, _d;
|
|
82
|
+
const isDifferentTaskSelected = ((_a = this.agentService.currentTaskDetails) === null || _a === void 0 ? void 0 : _a.session_id) !==
|
|
83
|
+
((_b = this.customer) === null || _b === void 0 ? void 0 : _b.session_id);
|
|
84
|
+
if (isDifferentTaskSelected) {
|
|
85
|
+
this.agentService.currentTaskDetails = this.customer;
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
this.agentService.currentTaskDetails = undefined;
|
|
89
|
+
}
|
|
90
|
+
if (this.agentService.showMapview) {
|
|
91
|
+
if (((_d = (_c = this.agentService.config) === null || _c === void 0 ? void 0 : _c.dashboard) === null || _d === void 0 ? void 0 : _d.mapType) === "google-maps") {
|
|
92
|
+
this.googleMapsService.plotDirectionsForSelectedTask(this.agentService.currentTaskDetails);
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
this.openStreetMapsService.plotDirectionsForSelectedTask(this.agentService.currentTaskDetails);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
goToMaps(location) {
|
|
100
|
+
window.open(`${location}`, "_blank");
|
|
101
|
+
}
|
|
102
|
+
handleOnClickPerformAction(event) {
|
|
103
|
+
this.onClickPerformAction.emit(event);
|
|
104
|
+
}
|
|
105
|
+
handleOnClickNext(e) {
|
|
106
|
+
this.nextStep.emit(e);
|
|
107
|
+
}
|
|
108
|
+
handleOnClickRemoveTask(task) {
|
|
109
|
+
this.removeTask.emit(task);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/** @nocollapse */ CustomerTileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CustomerTileComponent, deps: [{ token: i1.GoogleMapsService }, { token: i2.OpenStreetMapsService }, { token: i3.AgentService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
113
|
+
/** @nocollapse */ CustomerTileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CustomerTileComponent, selector: "customer-tile", inputs: { customer: "customer", index: "index", config: "config" }, outputs: { onClickPerformAction: "onClickPerformAction", nextStep: "nextStep", removeTask: "removeTask" }, host: { listeners: { "window:resize": "windowResizeWatcher($event)" } }, usesOnChanges: true, ngImport: i0, template: "<div\n [ngClass]=\"\n customer?.session_id == agentService.currentTaskDetails?.session_id\n ? 'customer-tile-wrapper customer-tile-active'\n : 'customer-tile-wrapper'\n \"\n>\n <div class=\"customer-tile-primary-container\">\n <div class=\"customer-tile-primary-container-data\">\n <div class=\"customer-tile-primary-container-userid\">\n {{ taskId }}\n </div>\n <status-pill\n *ngIf=\"config?.dashboard?.isShowTaskStatus\"\n [status]=\"customer.session_status\"\n ></status-pill>\n </div>\n <kwikui-button\n *ngIf=\"!agentService.isMobileView && !agentService.showMapview\"\n [icon]=\"\n agentService.currentTaskDetails?.session_id == customer?.session_id\n ? 'tuiIconChevronLeftLarge'\n : 'tuiIconChevronRightLarge'\n \"\n [shape]=\"'rounded'\"\n appearance=\"icon\"\n size=\"s\"\n (onClick)=\"openDetails()\"\n ></kwikui-button>\n <kwikui-button\n *ngIf=\"agentService.isMobileView || agentService.showMapview\"\n [icon]=\"\n agentService.currentTaskDetails?.session_id == customer?.session_id\n ? 'tuiIconChevronUpLarge'\n : 'tuiIconChevronDownLarge'\n \"\n [shape]=\"'rounded'\"\n appearance=\"icon\"\n size=\"s\"\n (onClick)=\"openDetails()\"\n ></kwikui-button>\n </div>\n <div\n *ngIf=\"\n customer?.session_id == agentService.currentTaskDetails?.session_id &&\n (agentService.isMobileView || agentService.showMapview)\n \"\n [ngClass]=\"\n customer?.session_id == agentService.currentTaskDetails?.session_id &&\n (agentService.isMobileView || agentService.showMapview)\n ? 'customer-tile-secondary-container'\n : 'data-collasped'\n \"\n >\n <div class=\"customer-tile-secondary-container-data\">\n <kwikui-label-value-pair\n [config]=\"labelValuePairConfig\"\n [data]=\"labelValuePairData\"\n ></kwikui-label-value-pair>\n <!-- <div\n *ngIf=\"\n agentService.config?.dashboard?.maps?.sho &&\n agentService.config?.dashboard?.isShowDistanceAndTime &&\n openStreetMapsService.getSelectedTaskDistanceAndTime()\n \"\n class=\"customer-tile-secondary-container-custom-details\"\n >\n Distance: {{ openStreetMapsService.getSelectedTaskDistanceAndTime()?.distance }} |\n Time: {{ openStreetMapsService.getSelectedTaskDistanceAndTime()?.time }}\n </div> -->\n </div>\n <div class=\"customer-tile-secondary-container-actions\">\n <ng-container\n *ngFor=\"let action of config?.dashboard?.taskUI?.details?.action\"\n >\n <kwikid-action-button\n [action]=\"action\"\n [config]=\"config\"\n [customer]=\"customer\"\n (onClickPerformAction)=\"handleOnClickPerformAction($event)\"\n ></kwikid-action-button>\n </ng-container>\n <!-- <div class=\"customer-tile-secondary-container-task-buttons\">\n <kwikui-button\n *ngIf=\"config.dashboard?.isAllowRemoveTask\"\n [icon]=\"'tuiIconTrash2'\"\n [shape]=\"'rounded'\"\n appearance=\"icon\"\n size=\"s\"\n (onClick)=\"handleOnClickRemoveTask(customer)\"\n ></kwikui-button>\n <kwikui-button\n *ngIf=\"config.dashboard?.isShowCopyLink\"\n icon=\"tuiIconCopy\"\n [shape]=\"'rounded'\"\n appearance=\"icon\"\n size=\"s\"\n (onClick)=\"\n handleOnClickNext({\n customer: customer,\n stepType: 'SHARE_JOURNEY_LINK'\n })\n \"\n ></kwikui-button>\n </div>\n <div class=\"customer-tile-secondary-container-journey-buttons\">\n <kwikui-button\n *ngIf=\"config.dashboard?.isShowMaps && customer?.isValidLocation\"\n label=\"Show Directions\"\n appearance=\"flat\"\n size=\"s\"\n styles=\"font-size:0.7rem;\"\n (onClick)=\"goToMaps(customer.googleMapsUrl)\"\n ></kwikui-button>\n <kwikui-button\n *ngIf=\"\n config.dashboard?.isAllowStartJourney &&\n agentService.canStartJourney(customer.session_status)\n \"\n label=\"Start Journey\"\n appearance=\"primary\"\n size=\"s\"\n styles=\"font-size:0.7rem;\"\n (onClick)=\"\n handleOnClickNext({ customer: customer, stepType: 'START_JOURNEY' })\n \"\n ></kwikui-button>\n </div> -->\n </div>\n </div>\n</div>\n", styles: [".customer-tile-wrapper{display:flex;flex-direction:column;align-content:center;justify-content:center;align-items:stretch;flex:1;overflow:auto;grid-gap:.5rem;gap:.5rem;margin:1rem;padding:1rem .25rem 1rem 1rem;border-radius:1rem;border:.5px solid #ddd}.customer-tile-wrapper .customer-tile-primary-container{display:flex;grid-gap:.5rem;gap:.5rem;flex-direction:row;align-content:center;justify-content:space-between;align-items:center;width:100%;height:100%}.customer-tile-wrapper .customer-tile-primary-container .customer-tile-primary-container-data{padding-left:.2rem;grid-gap:.6rem;gap:.6rem;display:flex;flex-direction:column;flex-wrap:wrap;align-content:stretch;justify-content:flex-start;align-items:flex-start}.customer-tile-wrapper .customer-tile-primary-container .customer-tile-primary-container-data .customer-tile-primary-container-userid{font-weight:500;font-size:1.1rem;line-height:1rem}.customer-tile-wrapper .customer-tile-secondary-container{width:100%;height:100%;display:flex;flex-direction:column;overflow:auto;grid-gap:.5rem;gap:.5rem}.customer-tile-wrapper .customer-tile-secondary-container .customer-tile-secondary-container-data{padding:.4rem .2rem;display:flex;flex-direction:column;font-size:.7rem;grid-gap:.3rem;gap:.3rem}.customer-tile-wrapper .customer-tile-secondary-container .customer-tile-secondary-container-data .customer-tile-secondary-container-custom-details{width:100%;height:100%;line-height:.9rem;word-wrap:break-word}.customer-tile-wrapper .customer-tile-secondary-container .customer-tile-secondary-container-actions{padding:.5rem 0;display:flex;flex-wrap:wrap;align-items:center;flex-direction:row;justify-content:flex-start;grid-gap:.5rem;gap:.5rem}.customer-tile-wrapper .data-collasped{display:none}.customer-tile-active{background-color:#dcedfd}\n"], components: [{ type: i4.StatusPillComponent, selector: "status-pill", inputs: ["status"] }, { type: i5.KwikUIButtonComponent, selector: "kwikui-button", inputs: ["appearance", "class", "disabled", "icon", "iconRight", "id", "label", "shape", "showLoader", "size", "styles", "type", "pseudoHover"], outputs: ["onClick"] }, { type: i5.KwikUILabelValuePairComponent, selector: "kwikui-label-value-pair", inputs: ["config", "data", "id"] }, { type: i6.ActionButtonComponent, selector: "kwikid-action-button", inputs: ["action", "config", "customer"], outputs: ["onClickPerformAction"] }], directives: [{ type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
114
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CustomerTileComponent, decorators: [{
|
|
115
|
+
type: Component,
|
|
116
|
+
args: [{
|
|
117
|
+
selector: "customer-tile",
|
|
118
|
+
templateUrl: "./customer-tile.component.html",
|
|
119
|
+
styleUrls: ["./customer-tile.component.scss"]
|
|
120
|
+
}]
|
|
121
|
+
}], ctorParameters: function () { return [{ type: i1.GoogleMapsService }, { type: i2.OpenStreetMapsService }, { type: i3.AgentService }, { type: i0.ElementRef }]; }, propDecorators: { windowResizeWatcher: [{
|
|
122
|
+
type: HostListener,
|
|
123
|
+
args: ["window:resize", ["$event"]]
|
|
124
|
+
}], customer: [{
|
|
125
|
+
type: Input
|
|
126
|
+
}], index: [{
|
|
127
|
+
type: Input
|
|
128
|
+
}], config: [{
|
|
129
|
+
type: Input
|
|
130
|
+
}], onClickPerformAction: [{
|
|
131
|
+
type: Output
|
|
132
|
+
}], nextStep: [{
|
|
133
|
+
type: Output
|
|
134
|
+
}], removeTask: [{
|
|
135
|
+
type: Output
|
|
136
|
+
}] } });
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItdGlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtYWdlbnQtZGFzaGJvYXJkL3NyYy9saWIvdjEvY29tcG9uZW50cy9jdXN0b21lci10aWxlL2N1c3RvbWVyLXRpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3dpa2lkLWFnZW50LWRhc2hib2FyZC9zcmMvbGliL3YxL2NvbXBvbmVudHMvY3VzdG9tZXItdGlsZS9jdXN0b21lci10aWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsc0JBQXNCLEVBQ3RCLGVBQWUsRUFFaEIsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7O0FBWXhCLE1BQU0sT0FBTyxxQkFBcUI7SUFzQ2hDLFlBQ1MsaUJBQW9DLEVBQ3BDLHFCQUE0QyxFQUM1QyxZQUEwQixFQUN6QixXQUF1QjtRQUh4QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFDNUMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDekIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUEvQmpDLGFBQVEsR0FBUSxFQUFFLENBQUM7UUFHbkIsVUFBSyxHQUFXLFNBQVMsQ0FBQztRQUsxQixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUVyQixvQkFBZSxHQUFrQixFQUFFLENBQUM7UUFFcEMsV0FBTSxHQUFRLEVBQUUsQ0FBQztRQUVqQix5QkFBb0IsR0FBUSxFQUFFLENBQUM7UUFFL0IsdUJBQWtCLEdBQVEsRUFBRSxDQUFDO1FBRzdCLHlCQUFvQixHQUFz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QUNILENBQUM7SUFFRCxRQUFRLENBQUMsUUFBUTtRQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsMEJBQTBCLENBQUMsS0FBVTtRQUNuQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxJQUFJO1FBQzFCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7O3NJQXpJVSxxQkFBcUI7MEhBQXJCLHFCQUFxQixrVUMzQmxDLHlnSkFtSUE7NEZEeEdhLHFCQUFxQjtrQkFMakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsV0FBVyxFQUFFLGdDQUFnQztvQkFDN0MsU0FBUyxFQUFFLENBQUMsZ0NBQWdDLENBQUM7aUJBQzlDO2dNQUdDLG1CQUFtQjtzQkFEbEIsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBVXpDLFFBQVE7c0JBRFAsS0FBSztnQkFJTixLQUFLO3NCQURKLEtBQUs7Z0JBSU4sTUFBTTtzQkFETCxLQUFLO2dCQWNOLG9CQUFvQjtzQkFEbkIsTUFBTTtnQkFJUCxRQUFRO3NCQURQLE1BQU07Z0JBSVAsVUFBVTtzQkFEVCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge1xuICBjaGVja09iamVjdFBhdGhFeGlzdHMsXG4gIGdldE9iamVjdFZhbHVlRnJvbVBhdGgsXG4gIGlzTm90RW1wdHlBcnJheSxcbiAgaXNOb3RFbXB0eVZhbHVlXG59IGZyb20gXCJrd2lraWQtdG9vbGtpdFwiO1xuaW1wb3J0IHsgR29vZ2xlTWFwc1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvZ29vZ2xlLW1hcHMuc2VydmljZVwiO1xuaW1wb3J0IHsgQWdlbnRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2FnZW50LnNlcnZpY2VcIjtcbmltcG9ydCB7IE9wZW5TdHJlZXRNYXBzU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9vcGVuLXN0cmVldC1tYXBzLnNlcnZpY2VcIjtcblxuZGVjbGFyZSBjb25zdCBnb29nbGU6IGFueTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImN1c3RvbWVyLXRpbGVcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9jdXN0b21lci10aWxlLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9jdXN0b21lci10aWxlLmNvbXBvbmVudC5zY3NzXCJdXG59KVxuZXhwb3J0IGNsYXNzIEN1c3RvbWVyVGlsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBIb3N0TGlzdGVuZXIoXCJ3aW5kb3c6cmVzaXplXCIsIFtcIiRldmVudFwiXSlcbiAgd2luZG93UmVzaXplV2F0Y2hlcigpIHtcbiAgICBpZiAodGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoIDwgNjAwKSB7XG4gICAgICB0aGlzLmlzTW9iaWxlVmlldyA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaXNNb2JpbGVWaWV3ID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KClcbiAgY3VzdG9tZXI6IGFueSA9IHt9O1xuXG4gIEBJbnB1dCgpXG4gIGluZGV4OiBudW1iZXIgPSB1bmRlZmluZWQ7XG5cbiAgQElucHV0KClcbiAgY29uZmlnOiBhbnk7XG5cbiAgaXNNb2JpbGVWaWV3ID0gZmFsc2U7XG5cbiAgdmlld1Rhc2tEZXRhaWxzOiBBcnJheTxzdHJpbmc+ID0gW107XG5cbiAgdGFza0lkOiBhbnkgPSBcIlwiO1xuXG4gIGxhYmVsVmFsdWVQYWlyQ29uZmlnOiBhbnkgPSB7fTtcblxuICBsYWJlbFZhbHVlUGFpckRhdGE6IGFueSA9IFtdO1xuXG4gIEBPdXRwdXQoKVxuICBvbkNsaWNrUGVyZm9ybUFjdGlvbjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBAT3V0cHV0KClcbiAgbmV4dFN0ZXAgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpXG4gIHJlbW92ZVRhc2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGdvb2dsZU1hcHNTZXJ2aWNlOiBHb29nbGVNYXBzU2VydmljZSxcbiAgICBwdWJsaWMgb3BlblN0cmVldE1hcHNTZXJ2aWNlOiBPcGVuU3RyZWV0TWFwc1NlcnZpY2UsXG4gICAgcHVibGljIGFnZW50U2VydmljZTogQWdlbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgaG9zdEVsZW1lbnQ6IEVsZW1lbnRSZWZcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucGFyc2VEYXRhKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgY29uc3QgdmVyaWZ5Q2hhbmdlID0gKGtleTogc3RyaW5nKSA9PiB7XG4gICAgICByZXR1cm4gY2hhbmdlcy5oYXNPd25Qcm9wZXJ0eShrZXkpICYmICFjaGFuZ2VzW2tleV0uZmlyc3RDaGFuZ2U7XG4gICAgfTtcblxuICAgIGlmICh2ZXJpZnlDaGFuZ2UoXCJjdXN0b21lclwiKSkge1xuICAgICAgdGhpcy5jdXN0b21lciA9IGNoYW5nZXMuY3VzdG9tZXIuY3VycmVudFZhbHVlO1xuICAgICAgdGhpcy5wYXJzZURhdGEoKTtcbiAgICB9XG4gIH1cblxuICBwYXJzZURhdGEoKSB7XG4gICAgY29uc3QgaWRlbnRpZmllciA9IHRoaXMuY29uZmlnPy5kYXNoYm9hcmQ/LnRhc2tJZGVudGlmaWVyID8/IFwidXNlcl9pZFwiO1xuICAgIHRoaXMudGFza0lkID0gZ2V0T2JqZWN0VmFsdWVGcm9tUGF0aCh0aGlzLmN1c3RvbWVyLCBpZGVudGlmaWVyKTtcblxuICAgIGxldCBkZXRhaWxzQ29uZmlnID0gW107XG4gICAgaWYgKFxuICAgICAgY2hlY2tPYmplY3RQYXRoRXhpc3RzKHRoaXMuY29uZmlnLCBcImRhc2hib2FyZC52aWV3VGFza0RldGFpbHNcIikgJiZcbiAgICAgIGlzTm90RW1wdHlBcnJheSh0aGlzLmNvbmZpZy5kYXNoYm9hcmQudmlld1Rhc2tEZXRhaWxzKVxuICAgICkge1xuICAgICAgZGV0YWlsc0NvbmZpZyA9IHRoaXMuY29uZmlnLmRhc2hib2FyZC52aWV3VGFza0RldGFpbHM7XG5cbiAgICAgIGNvbnN0IGRhdGEgPSBbXTtcbiAgICAgIGRldGFpbHNDb25maWcubWFwKChmaWVsZCkgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZyhcInZ2dnZ2XCIsIGZpZWxkKTtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBnZXRPYmplY3RWYWx1ZUZyb21QYXRoKHRoaXMuY3VzdG9tZXIsIGZpZWxkLnZhbHVlKTtcbiAgICAgICAgZGF0YS5wdXNoKHsgbGFiZWw6IGZpZWxkLmxhYmVsLCB2YWx1ZSB9KTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9KTtcbiAgICAgIHRoaXMubGFiZWxWYWx1ZVBhaXJEYXRhID0gZGF0YTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgY2hlY2tPYmplY3RQYXRoRXhpc3RzKHRoaXMuY29uZmlnLCBcImRhc2hib2FyZC50YXNrVUkuZGV0YWlscy5kYXRhXCIpICYmXG4gICAgICBpc05vdEVtcHR5QXJyYXkodGhpcy5jb25maWcuZGFzaGJvYXJkLnRhc2tVSS5kZXRhaWxzLmRhdGEpXG4gICAgKSB7XG4gICAgICBkZXRhaWxzQ29uZmlnID0gdGhpcy5jb25maWcuZGFzaGJvYXJkLnRhc2tVSS5kZXRhaWxzLmRhdGE7XG5cbiAgICAgIGNvbnN0IGRhdGEgPSBbXTtcbiAgICAgIGRldGFpbHNDb25maWcubWFwKChmaWVsZCkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGdldE9iamVjdFZhbHVlRnJvbVBhdGgodGhpcy5jdXN0b21lciwgZmllbGQucGF0aCk7XG4gICAgICAgIGRhdGEucHVzaCh7IGxhYmVsOiBmaWVsZC5sYWJlbCwgdmFsdWUgfSk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSk7XG4gICAgICB0aGlzLmxhYmVsVmFsdWVQYWlyRGF0YSA9IGRhdGE7XG4gICAgfVxuXG4gICAgY29uc29sZS5sb2coXCJEQVRBXCIsIHRoaXMubGFiZWxWYWx1ZVBhaXJEYXRhKTtcbiAgICB0aGlzLmxhYmVsVmFsdWVQYWlyQ29uZmlnID1cbiAgICAgIHRoaXMuY29uZmlnPy5kYXNoYm9hcmQ/LnRhc2tVST8uZGV0YWlscz8uY29uZmlnID8/IHt9O1xuICB9XG5cbiAgb3BlbkRldGFpbHMoKSB7XG4gICAgY29uc3QgaXNEaWZmZXJlbnRUYXNrU2VsZWN0ZWQgPVxuICAgICAgdGhpcy5hZ2VudFNlcnZpY2UuY3VycmVudFRhc2tEZXRhaWxzPy5zZXNzaW9uX2lkICE9PVxuICAgICAgdGhpcy5jdXN0b21lcj8uc2Vzc2lvbl9pZDtcblxuICAgIGlmIChpc0RpZmZlcmVudFRhc2tTZWxlY3RlZCkge1xuICAgICAgdGhpcy5hZ2VudFNlcnZpY2UuY3VycmVudFRhc2tEZXRhaWxzID0gdGhpcy5jdXN0b21lcjtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hZ2VudFNlcnZpY2UuY3VycmVudFRhc2tEZXRhaWxzID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmFnZW50U2VydmljZS5zaG93TWFwdmlldykge1xuICAgICAgaWYgKHRoaXMuYWdlbnRTZXJ2aWNlLmNvbmZpZz8uZGFzaGJvYXJkPy5tYXBUeXBlID09PSBcImdvb2dsZS1tYXBzXCIpIHtcbiAgICAgICAgdGhpcy5nb29nbGVNYXBzU2VydmljZS5wbG90RGlyZWN0aW9uc0ZvclNlbGVjdGVkVGFzayhcbiAgICAgICAgICB0aGlzLmFnZW50U2VydmljZS5jdXJyZW50VGFza0RldGFpbHNcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMub3BlblN0cmVldE1hcHNTZXJ2aWNlLnBsb3REaXJlY3Rpb25zRm9yU2VsZWN0ZWRUYXNrKFxuICAgICAgICAgIHRoaXMuYWdlbnRTZXJ2aWNlLmN1cnJlbnRUYXNrRGV0YWlsc1xuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdvVG9NYXBzKGxvY2F0aW9uKSB7XG4gICAgd2luZG93Lm9wZW4oYCR7bG9jYXRpb259YCwgXCJfYmxhbmtcIik7XG4gIH1cblxuICBoYW5kbGVPbkNsaWNrUGVyZm9ybUFjdGlvbihldmVudDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNsaWNrUGVyZm9ybUFjdGlvbi5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIGhhbmRsZU9uQ2xpY2tOZXh0KGUpIHtcbiAgICB0aGlzLm5leHRTdGVwLmVtaXQoZSk7XG4gIH1cblxuICBoYW5kbGVPbkNsaWNrUmVtb3ZlVGFzayh0YXNrKSB7XG4gICAgdGhpcy5yZW1vdmVUYXNrLmVtaXQodGFzayk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgW25nQ2xhc3NdPVwiXG4gICAgY3VzdG9tZXI/LnNlc3Npb25faWQgPT0gYWdlbnRTZXJ2aWNlLmN1cnJlbnRUYXNrRGV0YWlscz8uc2Vzc2lvbl9pZFxuICAgICAgPyAnY3VzdG9tZXItdGlsZS13cmFwcGVyIGN1c3RvbWVyLXRpbGUtYWN0aXZlJ1xuICAgICAgOiAnY3VzdG9tZXItdGlsZS13cmFwcGVyJ1xuICBcIlxuPlxuICA8ZGl2IGNsYXNzPVwiY3VzdG9tZXItdGlsZS1wcmltYXJ5LWNvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJjdXN0b21lci10aWxlLXByaW1hcnktY29udGFpbmVyLWRhdGFcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjdXN0b21lci10aWxlLXByaW1hcnktY29udGFpbmVyLXVzZXJpZFwiPlxuICAgICAgICB7eyB0YXNrSWQgfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPHN0YXR1cy1waWxsXG4gICAgICAgICpuZ0lmPVwiY29uZmlnPy5kYXNoYm9hcmQ/LmlzU2hvd1Rhc2tTdGF0dXNcIlxuICAgICAgICBbc3RhdHVzXT1cImN1c3RvbWVyLnNlc3Npb25fc3RhdHVzXCJcbiAgICAgID48L3N0YXR1cy1waWxsPlxuICAgIDwvZGl2PlxuICAgIDxrd2lrdWktYnV0dG9uXG4gICAgICAqbmdJZj1cIiFhZ2VudFNlcnZpY2UuaXNNb2JpbGVWaWV3ICYmICFhZ2VudFNlcnZpY2Uuc2hvd01hcHZpZXdcIlxuICAgICAgW2ljb25dPVwiXG4gICAgICAgIGFnZW50U2VydmljZS5jdXJyZW50VGFza0RldGFpbHM/LnNlc3Npb25faWQgPT0gY3VzdG9tZXI/LnNlc3Npb25faWRcbiAgICAgICAgICA/ICd0dWlJY29uQ2hldnJvbkxlZnRMYXJnZSdcbiAgICAgICAgICA6ICd0dWlJY29uQ2hldnJvblJpZ2h0TGFyZ2UnXG4gICAgICBcIlxuICAgICAgW3NoYXBlXT1cIidyb3VuZGVkJ1wiXG4gICAgICBhcHBlYXJhbmNlPVwiaWNvblwiXG4gICAgICBzaXplPVwic1wiXG4gICAgICAob25DbGljayk9XCJvcGVuRGV0YWlscygpXCJcbiAgICA+PC9rd2lrdWktYnV0dG9uPlxuICAgIDxrd2lrdWktYnV0dG9uXG4gICAgICAqbmdJZj1cImFnZW50U2VydmljZS5pc01vYmlsZVZpZXcgfHwgYWdlbnRTZXJ2aWNlLnNob3dNYXB2aWV3XCJcbiAgICAgIFtpY29uXT1cIlxuICAgICAgICBhZ2VudFNlcnZpY2UuY3VycmVudFRhc2tEZXRhaWxzPy5zZXNzaW9uX2lkID09IGN1c3RvbWVyPy5zZXNzaW9uX2lkXG4gICAgICAgICAgPyAndHVpSWNvbkNoZXZyb25VcExhcmdlJ1xuICAgICAgICAgIDogJ3R1aUljb25DaGV2cm9uRG93bkxhcmdlJ1xuICAgICAgXCJcbiAgICAgIFtzaGFwZV09XCIncm91bmRlZCdcIlxuICAgICAgYXBwZWFyYW5jZT1cImljb25cIlxuICAgICAgc2l6ZT1cInNcIlxuICAgICAgKG9uQ2xpY2spPVwib3BlbkRldGFpbHMoKVwiXG4gICAgPjwva3dpa3VpLWJ1dHRvbj5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICAqbmdJZj1cIlxuICAgICAgY3VzdG9tZXI/LnNlc3Npb25faWQgPT0gYWdlbnRTZXJ2aWNlLmN1cnJlbnRUYXNrRGV0YWlscz8uc2Vzc2lvbl9pZCAmJlxuICAgICAgKGFnZW50U2VydmljZS5pc01vYmlsZVZpZXcgfHwgYWdlbnRTZXJ2aWNlLnNob3dNYXB2aWV3KVxuICAgIFwiXG4gICAgW25nQ2xhc3NdPVwiXG4gICAgICBjdXN0b21lcj8uc2Vzc2lvbl9pZCA9PSBhZ2VudFNlcnZpY2UuY3VycmVudFRhc2tEZXRhaWxzPy5zZXNzaW9uX2lkICYmXG4gICAgICAoYWdlbnRTZXJ2aWNlLmlzTW9iaWxlVmlldyB8fCBhZ2VudFNlcnZpY2Uuc2hvd01hcHZpZXcpXG4gICAgICAgID8gJ2N1c3RvbWVyLXRpbGUtc2Vjb25kYXJ5LWNvbnRhaW5lcidcbiAgICAgICAgOiAnZGF0YS1jb2xsYXNwZWQnXG4gICAgXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJjdXN0b21lci10aWxlLXNlY29uZGFyeS1jb250YWluZXItZGF0YVwiPlxuICAgICAgPGt3aWt1aS1sYWJlbC12YWx1ZS1wYWlyXG4gICAgICAgIFtjb25maWddPVwibGFiZWxWYWx1ZVBhaXJDb25maWdcIlxuICAgICAgICBbZGF0YV09XCJsYWJlbFZhbHVlUGFpckRhdGFcIlxuICAgICAgPjwva3dpa3VpLWxhYmVsLXZhbHVlLXBhaXI+XG4gICAgICA8IS0tIDxkaXZcbiAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICBhZ2VudFNlcnZpY2UuY29uZmlnPy5kYXNoYm9hcmQ/Lm1hcHM/LnNobyAmJlxuICAgICAgICAgIGFnZW50U2VydmljZS5jb25maWc/LmRhc2hib2FyZD8uaXNTaG93RGlzdGFuY2VBbmRUaW1lICYmXG4gICAgICAgICAgb3BlblN0cmVldE1hcHNTZXJ2aWNlLmdldFNlbGVjdGVkVGFza0Rpc3RhbmNlQW5kVGltZSgpXG4gICAgICAgIFwiXG4gICAgICAgIGNsYXNzPVwiY3VzdG9tZXItdGlsZS1zZWNvbmRhcnktY29udGFpbmVyLWN1c3RvbS1kZXRhaWxzXCJcbiAgICAgID5cbiAgICAgICAgRGlzdGFuY2U6IHt7IG9wZW5TdHJlZXRNYXBzU2VydmljZS5nZXRTZWxlY3RlZFRhc2tEaXN0YW5jZUFuZFRpbWUoKT8uZGlzdGFuY2UgfX0gfFxuICAgICAgICBUaW1lOiB7eyBvcGVuU3RyZWV0TWFwc1NlcnZpY2UuZ2V0U2VsZWN0ZWRUYXNrRGlzdGFuY2VBbmRUaW1lKCk/LnRpbWUgfX1cbiAgICAgIDwvZGl2PiAtLT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tZXItdGlsZS1zZWNvbmRhcnktY29udGFpbmVyLWFjdGlvbnNcIj5cbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBjb25maWc/LmRhc2hib2FyZD8udGFza1VJPy5kZXRhaWxzPy5hY3Rpb25cIlxuICAgICAgPlxuICAgICAgICA8a3dpa2lkLWFjdGlvbi1idXR0b25cbiAgICAgICAgICBbYWN0aW9uXT1cImFjdGlvblwiXG4gICAgICAgICAgW2NvbmZpZ109XCJjb25maWdcIlxuICAgICAgICAgIFtjdXN0b21lcl09XCJjdXN0b21lclwiXG4gICAgICAgICAgKG9uQ2xpY2tQZXJmb3JtQWN0aW9uKT1cImhhbmRsZU9uQ2xpY2tQZXJmb3JtQWN0aW9uKCRldmVudClcIlxuICAgICAgICA+PC9rd2lraWQtYWN0aW9uLWJ1dHRvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY3VzdG9tZXItdGlsZS1zZWNvbmRhcnktY29udGFpbmVyLXRhc2stYnV0dG9uc1wiPlxuICAgICAgICA8a3dpa3VpLWJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwiY29uZmlnLmRhc2hib2FyZD8uaXNBbGxvd1JlbW92ZVRhc2tcIlxuICAgICAgICAgIFtpY29uXT1cIid0dWlJY29uVHJhc2gyJ1wiXG4gICAgICAgICAgW3NoYXBlXT1cIidyb3VuZGVkJ1wiXG4gICAgICAgICAgYXBwZWFyYW5jZT1cImljb25cIlxuICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAob25DbGljayk9XCJoYW5kbGVPbkNsaWNrUmVtb3ZlVGFzayhjdXN0b21lcilcIlxuICAgICAgICA+PC9rd2lrdWktYnV0dG9uPlxuICAgICAgICA8a3dpa3VpLWJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwiY29uZmlnLmRhc2hib2FyZD8uaXNTaG93Q29weUxpbmtcIlxuICAgICAgICAgIGljb249XCJ0dWlJY29uQ29weVwiXG4gICAgICAgICAgW3NoYXBlXT1cIidyb3VuZGVkJ1wiXG4gICAgICAgICAgYXBwZWFyYW5jZT1cImljb25cIlxuICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAob25DbGljayk9XCJcbiAgICAgICAgICAgIGhhbmRsZU9uQ2xpY2tOZXh0KHtcbiAgICAgICAgICAgICAgY3VzdG9tZXI6IGN1c3RvbWVyLFxuICAgICAgICAgICAgICBzdGVwVHlwZTogJ1NIQVJFX0pPVVJORVlfTElOSydcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgXCJcbiAgICAgICAgPjwva3dpa3VpLWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImN1c3RvbWVyLXRpbGUtc2Vjb25kYXJ5LWNvbnRhaW5lci1qb3VybmV5LWJ1dHRvbnNcIj5cbiAgICAgICAgPGt3aWt1aS1idXR0b25cbiAgICAgICAgICAqbmdJZj1cImNvbmZpZy5kYXNoYm9hcmQ/LmlzU2hvd01hcHMgJiYgY3VzdG9tZXI/LmlzVmFsaWRMb2NhdGlvblwiXG4gICAgICAgICAgbGFiZWw9XCJTaG93IERpcmVjdGlvbnNcIlxuICAgICAgICAgIGFwcGVhcmFuY2U9XCJmbGF0XCJcbiAgICAgICAgICBzaXplPVwic1wiXG4gICAgICAgICAgc3R5bGVzPVwiZm9udC1zaXplOjAuN3JlbTtcIlxuICAgICAgICAgIChvbkNsaWNrKT1cImdvVG9NYXBzKGN1c3RvbWVyLmdvb2dsZU1hcHNVcmwpXCJcbiAgICAgICAgPjwva3dpa3VpLWJ1dHRvbj5cbiAgICAgICAgPGt3aWt1aS1idXR0b25cbiAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgY29uZmlnLmRhc2hib2FyZD8uaXNBbGxvd1N0YXJ0Sm91cm5leSAmJlxuICAgICAgICAgICAgYWdlbnRTZXJ2aWNlLmNhblN0YXJ0Sm91cm5leShjdXN0b21lci5zZXNzaW9uX3N0YXR1cylcbiAgICAgICAgICBcIlxuICAgICAgICAgIGxhYmVsPVwiU3RhcnQgSm91cm5leVwiXG4gICAgICAgICAgYXBwZWFyYW5jZT1cInByaW1hcnlcIlxuICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICBzdHlsZXM9XCJmb250LXNpemU6MC43cmVtO1wiXG4gICAgICAgICAgKG9uQ2xpY2spPVwiXG4gICAgICAgICAgICBoYW5kbGVPbkNsaWNrTmV4dCh7IGN1c3RvbWVyOiBjdXN0b21lciwgc3RlcFR5cGU6ICdTVEFSVF9KT1VSTkVZJyB9KVxuICAgICAgICAgIFwiXG4gICAgICAgID48L2t3aWt1aS1idXR0b24+XG4gICAgICA8L2Rpdj4gLS0+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Component, Input } from "@angular/core";
|
|
2
|
+
import { isEmptyValue } from "kwikid-toolkit";
|
|
3
|
+
import { EStatus } from "./status-pill.definitions";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/common";
|
|
6
|
+
export class StatusPillComponent {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.status = EStatus.WAITING;
|
|
9
|
+
this.statusText = "";
|
|
10
|
+
this.statusClass = {};
|
|
11
|
+
}
|
|
12
|
+
ngOnInit() {
|
|
13
|
+
this.parseStatus(this.status);
|
|
14
|
+
}
|
|
15
|
+
ngOnChanges(changes) {
|
|
16
|
+
const verifyChange = (key) => {
|
|
17
|
+
return changes.hasOwnProperty(key) && !changes[key].firstChange;
|
|
18
|
+
};
|
|
19
|
+
if (verifyChange("status")) {
|
|
20
|
+
this.status = changes.status.currentValue;
|
|
21
|
+
this.parseStatus(this.status);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
parseStatus(status) {
|
|
25
|
+
if (isEmptyValue(status)) {
|
|
26
|
+
this.status = EStatus.WAITING;
|
|
27
|
+
}
|
|
28
|
+
this.statusText = this.getStatusLabel(status);
|
|
29
|
+
this.statusClass = this.getStatusPillClass(status);
|
|
30
|
+
}
|
|
31
|
+
getStatusPillClass(status) {
|
|
32
|
+
const newStatus = status
|
|
33
|
+
.replace("_", "-")
|
|
34
|
+
.replace("_", "-")
|
|
35
|
+
.replace("_", "-");
|
|
36
|
+
return `status-pill ${newStatus}`;
|
|
37
|
+
}
|
|
38
|
+
getStatusLabel(status) {
|
|
39
|
+
return status.replace("_", " ").replace("_", " ").replace("_", " ");
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
/** @nocollapse */ StatusPillComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: StatusPillComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
43
|
+
/** @nocollapse */ StatusPillComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: StatusPillComponent, selector: "status-pill", inputs: { status: "status" }, usesOnChanges: true, ngImport: i0, template: "<div [ngClass]=\"getStatusPillClass(status)\">{{ getStatusLabel(status) }}</div>\n", styles: [".status-pill{background-color:#dedede;padding:.1rem .5rem;border-radius:1rem;font-size:.7rem;color:#222}.complete,.kyc-request-accepted,.kyc-result-approved{background-color:#d7faee;color:#01663e}.rejected,.kyc-request-rejected,.kyc-result-rejected,.kyc-rejected{background:#f9dade;color:#eb3434}.auditing,.on-going,.kyc-result-partial-update,.kyc-resut-partial-update{background-color:#c1e3f4;color:#023b57}.after-audit,.waiting,.kyc-result-under-review{background-color:#f5ecb5;color:#000}\n"], directives: [{ type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: StatusPillComponent, decorators: [{
|
|
45
|
+
type: Component,
|
|
46
|
+
args: [{
|
|
47
|
+
selector: "status-pill",
|
|
48
|
+
templateUrl: "./status-pill.component.html",
|
|
49
|
+
styleUrls: ["./status-pill.component.css"]
|
|
50
|
+
}]
|
|
51
|
+
}], propDecorators: { status: [{
|
|
52
|
+
type: Input
|
|
53
|
+
}] } });
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLXBpbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3dpa2lkLWFnZW50LWRhc2hib2FyZC9zcmMvbGliL3YxL2NvbXBvbmVudHMvY3VzdG9tZXItdGlsZS9zdGF0dXMtcGlsbC9zdGF0dXMtcGlsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtYWdlbnQtZGFzaGJvYXJkL3NyYy9saWIvdjEvY29tcG9uZW50cy9jdXN0b21lci10aWxlL3N0YXR1cy1waWxsL3N0YXR1cy1waWxsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUF5QixNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLE9BQU8sRUFBVyxNQUFNLDJCQUEyQixDQUFDOzs7QUFPN0QsTUFBTSxPQUFPLG1CQUFtQjtJQUxoQztRQU9FLFdBQU0sR0FBWSxPQUFPLENBQUMsT0FBTyxDQUFDO1FBRWxDLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFFaEIsZ0JBQVcsR0FBRyxFQUFFLENBQUM7S0FvQ2xCO0lBbENDLFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLE1BQU0sWUFBWSxHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUU7WUFDbkMsT0FBTyxPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQztRQUNsRSxDQUFDLENBQUM7UUFFRixJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO1lBQzFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQy9CO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFNO1FBQ2hCLElBQUksWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQztTQUMvQjtRQUNELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsTUFBTTtRQUN2QixNQUFNLFNBQVMsR0FBRyxNQUFNO2FBQ3JCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO2FBQ2pCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO2FBQ2pCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDckIsT0FBTyxlQUFlLFNBQVMsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxjQUFjLENBQUMsTUFBTTtRQUNuQixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN0RSxDQUFDOztvSUF6Q1UsbUJBQW1CO3dIQUFuQixtQkFBbUIsc0dDVGhDLG9GQUNBOzRGRFFhLG1CQUFtQjtrQkFML0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsV0FBVyxFQUFFLDhCQUE4QjtvQkFDM0MsU0FBUyxFQUFFLENBQUMsNkJBQTZCLENBQUM7aUJBQzNDOzhCQUdDLE1BQU07c0JBREwsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBpc0VtcHR5VmFsdWUgfSBmcm9tIFwia3dpa2lkLXRvb2xraXRcIjtcbmltcG9ydCB7IEVTdGF0dXMsIFRTdGF0dXMgfSBmcm9tIFwiLi9zdGF0dXMtcGlsbC5kZWZpbml0aW9uc1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwic3RhdHVzLXBpbGxcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9zdGF0dXMtcGlsbC5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vc3RhdHVzLXBpbGwuY29tcG9uZW50LmNzc1wiXVxufSlcbmV4cG9ydCBjbGFzcyBTdGF0dXNQaWxsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KClcbiAgc3RhdHVzOiBUU3RhdHVzID0gRVN0YXR1cy5XQUlUSU5HO1xuXG4gIHN0YXR1c1RleHQgPSBcIlwiO1xuXG4gIHN0YXR1c0NsYXNzID0ge307XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5wYXJzZVN0YXR1cyh0aGlzLnN0YXR1cyk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgY29uc3QgdmVyaWZ5Q2hhbmdlID0gKGtleTogc3RyaW5nKSA9PiB7XG4gICAgICByZXR1cm4gY2hhbmdlcy5oYXNPd25Qcm9wZXJ0eShrZXkpICYmICFjaGFuZ2VzW2tleV0uZmlyc3RDaGFuZ2U7XG4gICAgfTtcblxuICAgIGlmICh2ZXJpZnlDaGFuZ2UoXCJzdGF0dXNcIikpIHtcbiAgICAgIHRoaXMuc3RhdHVzID0gY2hhbmdlcy5zdGF0dXMuY3VycmVudFZhbHVlO1xuICAgICAgdGhpcy5wYXJzZVN0YXR1cyh0aGlzLnN0YXR1cyk7XG4gICAgfVxuICB9XG5cbiAgcGFyc2VTdGF0dXMoc3RhdHVzKSB7XG4gICAgaWYgKGlzRW1wdHlWYWx1ZShzdGF0dXMpKSB7XG4gICAgICB0aGlzLnN0YXR1cyA9IEVTdGF0dXMuV0FJVElORztcbiAgICB9XG4gICAgdGhpcy5zdGF0dXNUZXh0ID0gdGhpcy5nZXRTdGF0dXNMYWJlbChzdGF0dXMpO1xuICAgIHRoaXMuc3RhdHVzQ2xhc3MgPSB0aGlzLmdldFN0YXR1c1BpbGxDbGFzcyhzdGF0dXMpO1xuICB9XG5cbiAgZ2V0U3RhdHVzUGlsbENsYXNzKHN0YXR1cykge1xuICAgIGNvbnN0IG5ld1N0YXR1cyA9IHN0YXR1c1xuICAgICAgLnJlcGxhY2UoXCJfXCIsIFwiLVwiKVxuICAgICAgLnJlcGxhY2UoXCJfXCIsIFwiLVwiKVxuICAgICAgLnJlcGxhY2UoXCJfXCIsIFwiLVwiKTtcbiAgICByZXR1cm4gYHN0YXR1cy1waWxsICR7bmV3U3RhdHVzfWA7XG4gIH1cblxuICBnZXRTdGF0dXNMYWJlbChzdGF0dXMpIHtcbiAgICByZXR1cm4gc3RhdHVzLnJlcGxhY2UoXCJfXCIsIFwiIFwiKS5yZXBsYWNlKFwiX1wiLCBcIiBcIikucmVwbGFjZShcIl9cIiwgXCIgXCIpO1xuICB9XG59XG4iLCI8ZGl2IFtuZ0NsYXNzXT1cImdldFN0YXR1c1BpbGxDbGFzcyhzdGF0dXMpXCI+e3sgZ2V0U3RhdHVzTGFiZWwoc3RhdHVzKSB9fTwvZGl2PlxuIl19
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export var EStatus;
|
|
2
|
+
(function (EStatus) {
|
|
3
|
+
EStatus["NOT_STARTED"] = "not_started";
|
|
4
|
+
EStatus["ON_GOING"] = "on_going";
|
|
5
|
+
EStatus["AUDITING"] = "auditing";
|
|
6
|
+
EStatus["REJECTED"] = "rejected";
|
|
7
|
+
EStatus["AFTER_AUDIT"] = "after_audit";
|
|
8
|
+
EStatus["COMPLETE"] = "complete";
|
|
9
|
+
EStatus["WAITING"] = "waiting";
|
|
10
|
+
EStatus["SESSION_EXPIRED"] = "session_expired";
|
|
11
|
+
EStatus["KYC_REJECTED"] = "kyc_rejected";
|
|
12
|
+
EStatus["KYC_REQUEST_REJECTED"] = "kyc_request_rejected";
|
|
13
|
+
EStatus["KYC_REQUEST_ACCEPTED"] = "kyc_request_accepted";
|
|
14
|
+
EStatus["KYC_RESULT_REJECTED"] = "kyc_result_rejected";
|
|
15
|
+
EStatus["KYC_RESULT_APPROVED"] = "kyc_result_approved";
|
|
16
|
+
EStatus["KYC_RESULT_PARTIAL_UPDATE"] = "kyc_result_partial_update";
|
|
17
|
+
EStatus["KYC_RESULT_UNDER_REVIEW"] = "kyc_result_under_review";
|
|
18
|
+
})(EStatus || (EStatus = {}));
|
|
19
|
+
export const VStatus = [
|
|
20
|
+
EStatus.NOT_STARTED,
|
|
21
|
+
EStatus.ON_GOING,
|
|
22
|
+
EStatus.AUDITING,
|
|
23
|
+
EStatus.REJECTED,
|
|
24
|
+
EStatus.AFTER_AUDIT,
|
|
25
|
+
EStatus.COMPLETE,
|
|
26
|
+
EStatus.WAITING,
|
|
27
|
+
EStatus.SESSION_EXPIRED,
|
|
28
|
+
EStatus.KYC_REJECTED,
|
|
29
|
+
EStatus.KYC_REQUEST_REJECTED,
|
|
30
|
+
EStatus.KYC_REQUEST_ACCEPTED,
|
|
31
|
+
EStatus.KYC_RESULT_REJECTED,
|
|
32
|
+
EStatus.KYC_RESULT_APPROVED,
|
|
33
|
+
EStatus.KYC_RESULT_PARTIAL_UPDATE,
|
|
34
|
+
EStatus.KYC_RESULT_UNDER_REVIEW
|
|
35
|
+
];
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLXBpbGwuZGVmaW5pdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtYWdlbnQtZGFzaGJvYXJkL3NyYy9saWIvdjEvY29tcG9uZW50cy9jdXN0b21lci10aWxlL3N0YXR1cy1waWxsL3N0YXR1cy1waWxsLmRlZmluaXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLE9BZ0JYO0FBaEJELFdBQVksT0FBTztJQUNqQixzQ0FBMkIsQ0FBQTtJQUMzQixnQ0FBcUIsQ0FBQTtJQUNyQixnQ0FBcUIsQ0FBQTtJQUNyQixnQ0FBcUIsQ0FBQTtJQUNyQixzQ0FBMkIsQ0FBQTtJQUMzQixnQ0FBcUIsQ0FBQTtJQUNyQiw4QkFBbUIsQ0FBQTtJQUNuQiw4Q0FBbUMsQ0FBQTtJQUNuQyx3Q0FBNkIsQ0FBQTtJQUM3Qix3REFBNkMsQ0FBQTtJQUM3Qyx3REFBNkMsQ0FBQTtJQUM3QyxzREFBMkMsQ0FBQTtJQUMzQyxzREFBMkMsQ0FBQTtJQUMzQyxrRUFBdUQsQ0FBQTtJQUN2RCw4REFBbUQsQ0FBQTtBQUNyRCxDQUFDLEVBaEJXLE9BQU8sS0FBUCxPQUFPLFFBZ0JsQjtBQUVELE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRztJQUNyQixPQUFPLENBQUMsV0FBVztJQUNuQixPQUFPLENBQUMsUUFBUTtJQUNoQixPQUFPLENBQUMsUUFBUTtJQUNoQixPQUFPLENBQUMsUUFBUTtJQUNoQixPQUFPLENBQUMsV0FBVztJQUNuQixPQUFPLENBQUMsUUFBUTtJQUNoQixPQUFPLENBQUMsT0FBTztJQUNmLE9BQU8sQ0FBQyxlQUFlO0lBQ3ZCLE9BQU8sQ0FBQyxZQUFZO0lBQ3BCLE9BQU8sQ0FBQyxvQkFBb0I7SUFDNUIsT0FBTyxDQUFDLG9CQUFvQjtJQUM1QixPQUFPLENBQUMsbUJBQW1CO0lBQzNCLE9BQU8sQ0FBQyxtQkFBbUI7SUFDM0IsT0FBTyxDQUFDLHlCQUF5QjtJQUNqQyxPQUFPLENBQUMsdUJBQXVCO0NBQ3ZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBFU3RhdHVzIHtcbiAgTk9UX1NUQVJURUQgPSBcIm5vdF9zdGFydGVkXCIsXG4gIE9OX0dPSU5HID0gXCJvbl9nb2luZ1wiLFxuICBBVURJVElORyA9IFwiYXVkaXRpbmdcIixcbiAgUkVKRUNURUQgPSBcInJlamVjdGVkXCIsXG4gIEFGVEVSX0FVRElUID0gXCJhZnRlcl9hdWRpdFwiLFxuICBDT01QTEVURSA9IFwiY29tcGxldGVcIixcbiAgV0FJVElORyA9IFwid2FpdGluZ1wiLFxuICBTRVNTSU9OX0VYUElSRUQgPSBcInNlc3Npb25fZXhwaXJlZFwiLFxuICBLWUNfUkVKRUNURUQgPSBcImt5Y19yZWplY3RlZFwiLFxuICBLWUNfUkVRVUVTVF9SRUpFQ1RFRCA9IFwia3ljX3JlcXVlc3RfcmVqZWN0ZWRcIixcbiAgS1lDX1JFUVVFU1RfQUNDRVBURUQgPSBcImt5Y19yZXF1ZXN0X2FjY2VwdGVkXCIsXG4gIEtZQ19SRVNVTFRfUkVKRUNURUQgPSBcImt5Y19yZXN1bHRfcmVqZWN0ZWRcIixcbiAgS1lDX1JFU1VMVF9BUFBST1ZFRCA9IFwia3ljX3Jlc3VsdF9hcHByb3ZlZFwiLFxuICBLWUNfUkVTVUxUX1BBUlRJQUxfVVBEQVRFID0gXCJreWNfcmVzdWx0X3BhcnRpYWxfdXBkYXRlXCIsXG4gIEtZQ19SRVNVTFRfVU5ERVJfUkVWSUVXID0gXCJreWNfcmVzdWx0X3VuZGVyX3Jldmlld1wiXG59XG5cbmV4cG9ydCBjb25zdCBWU3RhdHVzID0gW1xuICBFU3RhdHVzLk5PVF9TVEFSVEVELFxuICBFU3RhdHVzLk9OX0dPSU5HLFxuICBFU3RhdHVzLkFVRElUSU5HLFxuICBFU3RhdHVzLlJFSkVDVEVELFxuICBFU3RhdHVzLkFGVEVSX0FVRElULFxuICBFU3RhdHVzLkNPTVBMRVRFLFxuICBFU3RhdHVzLldBSVRJTkcsXG4gIEVTdGF0dXMuU0VTU0lPTl9FWFBJUkVELFxuICBFU3RhdHVzLktZQ19SRUpFQ1RFRCxcbiAgRVN0YXR1cy5LWUNfUkVRVUVTVF9SRUpFQ1RFRCxcbiAgRVN0YXR1cy5LWUNfUkVRVUVTVF9BQ0NFUFRFRCxcbiAgRVN0YXR1cy5LWUNfUkVTVUxUX1JFSkVDVEVELFxuICBFU3RhdHVzLktZQ19SRVNVTFRfQVBQUk9WRUQsXG4gIEVTdGF0dXMuS1lDX1JFU1VMVF9QQVJUSUFMX1VQREFURSxcbiAgRVN0YXR1cy5LWUNfUkVTVUxUX1VOREVSX1JFVklFV1xuXSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgVFN0YXR1cyA9ICh0eXBlb2YgVlN0YXR1cylbbnVtYmVyXTtcbiJdfQ==
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { getObjectValueFromPath } from "kwikid-toolkit";
|
|
2
|
+
// To Calculate Distance between two markers
|
|
3
|
+
export const calculateDistance = (point1, point2) => {
|
|
4
|
+
const lat1 = point1.lat;
|
|
5
|
+
const lng1 = point1.lng;
|
|
6
|
+
const lat2 = point2.lat;
|
|
7
|
+
const lng2 = point2.lng;
|
|
8
|
+
const R = 6371; // Earth radius in kilometers
|
|
9
|
+
const dLat = (lat2 - lat1) * (Math.PI / 180);
|
|
10
|
+
const dLng = (lng2 - lng1) * (Math.PI / 180);
|
|
11
|
+
const a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
|
|
12
|
+
Math.cos((lat1 * Math.PI) / 180) *
|
|
13
|
+
Math.cos((lat2 * Math.PI) / 180) *
|
|
14
|
+
Math.sin(dLng / 2) *
|
|
15
|
+
Math.sin(dLng / 2);
|
|
16
|
+
const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
|
|
17
|
+
const distance = R * c;
|
|
18
|
+
return distance;
|
|
19
|
+
};
|
|
20
|
+
// To calculate nearest distance from marker
|
|
21
|
+
export const nearestNeighborAlgorithm = (startingPoint, unvisitedPoints) => {
|
|
22
|
+
let currentPoint = startingPoint;
|
|
23
|
+
const path = [currentPoint];
|
|
24
|
+
const visitedPoints = new Set([currentPoint]);
|
|
25
|
+
while (unvisitedPoints.length > 0) {
|
|
26
|
+
let nearestPoint = null;
|
|
27
|
+
let minDistance = Number.POSITIVE_INFINITY;
|
|
28
|
+
for (const point of unvisitedPoints) {
|
|
29
|
+
const distance = calculateDistance(currentPoint, point);
|
|
30
|
+
if (distance < minDistance) {
|
|
31
|
+
minDistance = distance;
|
|
32
|
+
nearestPoint = point;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
path.push(nearestPoint);
|
|
36
|
+
visitedPoints.add(nearestPoint);
|
|
37
|
+
currentPoint = nearestPoint;
|
|
38
|
+
unvisitedPoints = unvisitedPoints.filter((point) => !visitedPoints.has(point));
|
|
39
|
+
}
|
|
40
|
+
return path;
|
|
41
|
+
};
|
|
42
|
+
export const addressConcator = (data, config) => {
|
|
43
|
+
const address = config.reduce((accumulator, currentValue) => `${accumulator} ${getObjectValueFromPath(data, currentValue)}`, "");
|
|
44
|
+
return address;
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcy5oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3dpa2lkLWFnZW50LWRhc2hib2FyZC9zcmMvbGliL3YxL2hlbHBlcnMvbWFwcy5oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhELDRDQUE0QztBQUM1QyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLE1BQVcsRUFBRSxNQUFXLEVBQVUsRUFBRTtJQUNwRSxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDO0lBQ3hCLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUM7SUFDeEIsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQztJQUN4QixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDO0lBRXhCLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLDZCQUE2QjtJQUM3QyxNQUFNLElBQUksR0FBRyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDN0MsTUFBTSxJQUFJLEdBQUcsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBQzdDLE1BQU0sQ0FBQyxHQUNMLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUM7WUFDOUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztZQUNsQixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN2QixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUV2QixPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDLENBQUM7QUFFRiw0Q0FBNEM7QUFDNUMsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FDdEMsYUFBa0IsRUFDbEIsZUFBc0IsRUFDZixFQUFFO0lBQ1QsSUFBSSxZQUFZLEdBQUcsYUFBYSxDQUFDO0lBQ2pDLE1BQU0sSUFBSSxHQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbkMsTUFBTSxhQUFhLEdBQWEsSUFBSSxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBRXhELE9BQU8sZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7UUFDakMsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLElBQUksV0FBVyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQztRQUUzQyxLQUFLLE1BQU0sS0FBSyxJQUFJLGVBQWUsRUFBRTtZQUNuQyxNQUFNLFFBQVEsR0FBRyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDeEQsSUFBSSxRQUFRLEdBQUcsV0FBVyxFQUFFO2dCQUMxQixXQUFXLEdBQUcsUUFBUSxDQUFDO2dCQUN2QixZQUFZLEdBQUcsS0FBSyxDQUFDO2FBQ3RCO1NBQ0Y7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3hCLGFBQWEsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDaEMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUU1QixlQUFlLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FDdEMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FDckMsQ0FBQztLQUNIO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxJQUFTLEVBQUUsTUFBVyxFQUFVLEVBQUU7SUFDaEUsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FDM0IsQ0FBQyxXQUFXLEVBQUUsWUFBWSxFQUFFLEVBQUUsQ0FDNUIsR0FBRyxXQUFXLElBQUksc0JBQXNCLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxFQUFFLEVBQ2hFLEVBQUUsQ0FDSCxDQUFDO0lBQ0YsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0T2JqZWN0VmFsdWVGcm9tUGF0aCB9IGZyb20gXCJrd2lraWQtdG9vbGtpdFwiO1xuXG4vLyBUbyBDYWxjdWxhdGUgRGlzdGFuY2UgYmV0d2VlbiB0d28gbWFya2Vyc1xuZXhwb3J0IGNvbnN0IGNhbGN1bGF0ZURpc3RhbmNlID0gKHBvaW50MTogYW55LCBwb2ludDI6IGFueSk6IG51bWJlciA9PiB7XG4gIGNvbnN0IGxhdDEgPSBwb2ludDEubGF0O1xuICBjb25zdCBsbmcxID0gcG9pbnQxLmxuZztcbiAgY29uc3QgbGF0MiA9IHBvaW50Mi5sYXQ7XG4gIGNvbnN0IGxuZzIgPSBwb2ludDIubG5nO1xuXG4gIGNvbnN0IFIgPSA2MzcxOyAvLyBFYXJ0aCByYWRpdXMgaW4ga2lsb21ldGVyc1xuICBjb25zdCBkTGF0ID0gKGxhdDIgLSBsYXQxKSAqIChNYXRoLlBJIC8gMTgwKTtcbiAgY29uc3QgZExuZyA9IChsbmcyIC0gbG5nMSkgKiAoTWF0aC5QSSAvIDE4MCk7XG4gIGNvbnN0IGEgPVxuICAgIE1hdGguc2luKGRMYXQgLyAyKSAqIE1hdGguc2luKGRMYXQgLyAyKSArXG4gICAgTWF0aC5jb3MoKGxhdDEgKiBNYXRoLlBJKSAvIDE4MCkgKlxuICAgICAgTWF0aC5jb3MoKGxhdDIgKiBNYXRoLlBJKSAvIDE4MCkgKlxuICAgICAgTWF0aC5zaW4oZExuZyAvIDIpICpcbiAgICAgIE1hdGguc2luKGRMbmcgLyAyKTtcbiAgY29uc3QgYyA9IDIgKiBNYXRoLmF0YW4yKE1hdGguc3FydChhKSwgTWF0aC5zcXJ0KDEgLSBhKSk7XG4gIGNvbnN0IGRpc3RhbmNlID0gUiAqIGM7XG5cbiAgcmV0dXJuIGRpc3RhbmNlO1xufTtcblxuLy8gVG8gY2FsY3VsYXRlIG5lYXJlc3QgZGlzdGFuY2UgZnJvbSBtYXJrZXJcbmV4cG9ydCBjb25zdCBuZWFyZXN0TmVpZ2hib3JBbGdvcml0aG0gPSAoXG4gIHN0YXJ0aW5nUG9pbnQ6IGFueSxcbiAgdW52aXNpdGVkUG9pbnRzOiBhbnlbXVxuKTogYW55W10gPT4ge1xuICBsZXQgY3VycmVudFBvaW50ID0gc3RhcnRpbmdQb2ludDtcbiAgY29uc3QgcGF0aDogYW55W10gPSBbY3VycmVudFBvaW50XTtcbiAgY29uc3QgdmlzaXRlZFBvaW50czogU2V0PGFueT4gPSBuZXcgU2V0KFtjdXJyZW50UG9pbnRdKTtcblxuICB3aGlsZSAodW52aXNpdGVkUG9pbnRzLmxlbmd0aCA+IDApIHtcbiAgICBsZXQgbmVhcmVzdFBvaW50ID0gbnVsbDtcbiAgICBsZXQgbWluRGlzdGFuY2UgPSBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7XG5cbiAgICBmb3IgKGNvbnN0IHBvaW50IG9mIHVudmlzaXRlZFBvaW50cykge1xuICAgICAgY29uc3QgZGlzdGFuY2UgPSBjYWxjdWxhdGVEaXN0YW5jZShjdXJyZW50UG9pbnQsIHBvaW50KTtcbiAgICAgIGlmIChkaXN0YW5jZSA8IG1pbkRpc3RhbmNlKSB7XG4gICAgICAgIG1pbkRpc3RhbmNlID0gZGlzdGFuY2U7XG4gICAgICAgIG5lYXJlc3RQb2ludCA9IHBvaW50O1xuICAgICAgfVxuICAgIH1cblxuICAgIHBhdGgucHVzaChuZWFyZXN0UG9pbnQpO1xuICAgIHZpc2l0ZWRQb2ludHMuYWRkKG5lYXJlc3RQb2ludCk7XG4gICAgY3VycmVudFBvaW50ID0gbmVhcmVzdFBvaW50O1xuXG4gICAgdW52aXNpdGVkUG9pbnRzID0gdW52aXNpdGVkUG9pbnRzLmZpbHRlcihcbiAgICAgIChwb2ludCkgPT4gIXZpc2l0ZWRQb2ludHMuaGFzKHBvaW50KVxuICAgICk7XG4gIH1cblxuICByZXR1cm4gcGF0aDtcbn07XG5cbmV4cG9ydCBjb25zdCBhZGRyZXNzQ29uY2F0b3IgPSAoZGF0YTogYW55LCBjb25maWc6IGFueSk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IGFkZHJlc3MgPSBjb25maWcucmVkdWNlKFxuICAgIChhY2N1bXVsYXRvciwgY3VycmVudFZhbHVlKSA9PlxuICAgICAgYCR7YWNjdW11bGF0b3J9ICR7Z2V0T2JqZWN0VmFsdWVGcm9tUGF0aChkYXRhLCBjdXJyZW50VmFsdWUpfWAsXG4gICAgXCJcIlxuICApO1xuICByZXR1cm4gYWRkcmVzcztcbn07XG4iXX0=
|