kwikid-agent-dashboard 0.0.39 → 0.0.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (23) hide show
  1. package/bundles/kwikid-agent-dashboard.umd.js +224 -187
  2. package/bundles/kwikid-agent-dashboard.umd.js.map +1 -1
  3. package/esm2015/lib/kwikid-agent-dashboard.component.js +2 -2
  4. package/esm2015/lib/v1/components/customer-details/customer-details.component.js +30 -28
  5. package/esm2015/lib/v1/components/customer-list/customer-list.component.js +16 -15
  6. package/esm2015/lib/v1/components/customer-tile/customer-tile.component.js +26 -24
  7. package/esm2015/lib/v1/components/customer-tile/status-pill/status-pill.component.js +31 -26
  8. package/esm2015/lib/v1/components/customer-tile/status-pill/status-pill.constants.js +33 -0
  9. package/esm2015/lib/v1/kwikid-agent-dashboard.component.js +13 -10
  10. package/esm2015/lib/v1/services/agent.service.js +3 -11
  11. package/esm2015/lib/v1/services/google-maps.service.js +20 -14
  12. package/esm2015/lib/v1/services/open-street-maps.service.js +5 -5
  13. package/esm2015/lib/v2/kwikid-agent-dashboard.component.js +2 -11
  14. package/fesm2015/kwikid-agent-dashboard.js +166 -134
  15. package/fesm2015/kwikid-agent-dashboard.js.map +1 -1
  16. package/lib/v1/components/customer-details/customer-details.component.d.ts +1 -0
  17. package/lib/v1/components/customer-tile/customer-tile.component.d.ts +1 -0
  18. package/lib/v1/components/customer-tile/status-pill/status-pill.component.d.ts +8 -9
  19. package/lib/v1/components/customer-tile/status-pill/status-pill.constants.d.ts +32 -0
  20. package/lib/v1/kwikid-agent-dashboard.component.d.ts +3 -2
  21. package/lib/v1/services/agent.service.d.ts +0 -1
  22. package/lib/v1/services/google-maps.service.d.ts +1 -1
  23. package/package.json +3 -3
@@ -1,3 +1,4 @@
1
+ /* eslint-disable no-prototype-builtins */
1
2
  import { Component, EventEmitter, HostListener, Input, Output } from "@angular/core";
2
3
  import { checkObjectPathExists, getObjectValueFromPath, isNotEmptyArray } from "kwikid-toolkit";
3
4
  import * as i0 from "@angular/core";
@@ -45,37 +46,38 @@ export class CustomerTileComponent {
45
46
  this.parseData();
46
47
  }
47
48
  }
49
+ getValueFromArray(paths) {
50
+ let data = "";
51
+ // eslint-disable-next-line array-callback-return
52
+ paths.map((path) => {
53
+ const value = getObjectValueFromPath(this.customer, path);
54
+ data = `${data} ${value}`;
55
+ });
56
+ return data;
57
+ }
48
58
  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";
59
+ var _a, _b, _c, _d, _e, _f;
60
+ const identifier = (_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.taskIdentifier) !== null && _b !== void 0 ? _b : "user_id";
51
61
  this.taskId = getObjectValueFromPath(this.customer, identifier);
52
62
  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;
63
+ if (checkObjectPathExists(this.config, "taskUI.details.data") &&
64
+ isNotEmptyArray(this.config.taskUI.details.data)) {
68
65
  const data = [];
66
+ detailsConfig = this.config.taskUI.details.data;
69
67
  detailsConfig.map((field) => {
70
- const value = getObjectValueFromPath(this.customer, field.path);
68
+ let value;
69
+ if (Array.isArray(field.path)) {
70
+ value = this.getValueFromArray(field.path);
71
+ }
72
+ else {
73
+ value = getObjectValueFromPath(this.customer, field.path);
74
+ }
71
75
  data.push({ label: field.label, value });
72
76
  return true;
73
77
  });
74
78
  this.labelValuePairData = data;
75
79
  }
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 : {};
80
+ this.labelValuePairConfig = (_f = (_e = (_d = (_c = this.config) === null || _c === void 0 ? void 0 : _c.taskUI) === null || _d === void 0 ? void 0 : _d.details) === null || _e === void 0 ? void 0 : _e.config) !== null && _f !== void 0 ? _f : {};
79
81
  }
80
82
  openDetails() {
81
83
  var _a, _b, _c, _d;
@@ -88,7 +90,7 @@ export class CustomerTileComponent {
88
90
  this.agentService.currentTaskDetails = undefined;
89
91
  }
90
92
  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") {
93
+ if (((_d = (_c = this.agentService.config) === null || _c === void 0 ? void 0 : _c.maps) === null || _d === void 0 ? void 0 : _d.mapType) === "google-maps") {
92
94
  this.googleMapsService.plotDirectionsForSelectedTask(this.agentService.currentTaskDetails);
93
95
  }
94
96
  else {
@@ -110,7 +112,7 @@ export class CustomerTileComponent {
110
112
  }
111
113
  }
112
114
  /** @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"] }] });
115
+ /** @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?.utilityFlags?.isShowTaskStatus\"\n [config]=\"config?.taskUI?.header?.taskStatus\"\n [status]=\"\n customer[config?.taskUI?.header?.taskStatus?.path ?? 'session_status']\n \"\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?.maps?.sho &&\n agentService.config?.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 *ngFor=\"let action of config?.taskUI?.details?.action\">\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?.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?.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?.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?.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: ["config", "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
116
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CustomerTileComponent, decorators: [{
115
117
  type: Component,
116
118
  args: [{
@@ -134,4 +136,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
134
136
  }], removeTask: [{
135
137
  type: Output
136
138
  }] } });
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=
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItdGlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtYWdlbnQtZGFzaGJvYXJkL3NyYy9saWIvdjEvY29tcG9uZW50cy9jdXN0b21lci10aWxlL2N1c3RvbWVyLXRpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3dpa2lkLWFnZW50LWRhc2hib2FyZC9zcmMvbGliL3YxL2NvbXBvbmVudHMvY3VzdG9tZXItdGlsZS9jdXN0b21lci10aWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBDQUEwQztBQUMxQyxPQUFPLEVBQ0wsU0FBUyxFQUVULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLHNCQUFzQixFQUN0QixlQUFlLEVBQ2hCLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7OztBQVl4QixNQUFNLE9BQU8scUJBQXFCO0lBc0NoQyxZQUNTLGlCQUFvQyxFQUNwQyxxQkFBNEMsRUFDNUMsWUFBMEIsRUFDekIsV0FBdUI7UUFIeEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQ3pCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBL0JqQyxhQUFRLEdBQVEsRUFBRSxDQUFDO1FBR25CLFVBQUssR0FBVyxTQUFTLENBQUM7UUFLMUIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFFckIsb0JBQWUsR0FBa0IsRUFBRSxDQUFDO1FBRXBDLFdBQU0sR0FBUSxFQUFFLENBQUM7UUFFakIseUJBQW9CLEdBQVEsRUFBRSxDQUFDO1FBRS9CLHVCQUFrQixHQUFRLEVBQUUsQ0FBQztRQUc3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LENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsdUJBQXVCLENBQUMsSUFBSTtRQUMxQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDOztzSUF6SVUscUJBQXFCOzBIQUFyQixxQkFBcUIsa1VDM0JsQyxnakpBb0lBOzRGRHpHYSxxQkFBcUI7a0JBTGpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFdBQVcsRUFBRSxnQ0FBZ0M7b0JBQzdDLFNBQVMsRUFBRSxDQUFDLGdDQUFnQyxDQUFDO2lCQUM5QztnTUFHQyxtQkFBbUI7c0JBRGxCLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVV6QyxRQUFRO3NCQURQLEtBQUs7Z0JBSU4sS0FBSztzQkFESixLQUFLO2dCQUlOLE1BQU07c0JBREwsS0FBSztnQkFjTixvQkFBb0I7c0JBRG5CLE1BQU07Z0JBSVAsUUFBUTtzQkFEUCxNQUFNO2dCQUlQLFVBQVU7c0JBRFQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXByb3RvdHlwZS1idWlsdGlucyAqL1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge1xuICBjaGVja09iamVjdFBhdGhFeGlzdHMsXG4gIGdldE9iamVjdFZhbHVlRnJvbVBhdGgsXG4gIGlzTm90RW1wdHlBcnJheVxufSBmcm9tIFwia3dpa2lkLXRvb2xraXRcIjtcbmltcG9ydCB7IEdvb2dsZU1hcHNTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2dvb2dsZS1tYXBzLnNlcnZpY2VcIjtcbmltcG9ydCB7IEFnZW50U2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9hZ2VudC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBPcGVuU3RyZWV0TWFwc1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvb3Blbi1zdHJlZXQtbWFwcy5zZXJ2aWNlXCI7XG5cbmRlY2xhcmUgY29uc3QgZ29vZ2xlOiBhbnk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJjdXN0b21lci10aWxlXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vY3VzdG9tZXItdGlsZS5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vY3VzdG9tZXItdGlsZS5jb21wb25lbnQuc2Nzc1wiXVxufSlcbmV4cG9ydCBjbGFzcyBDdXN0b21lclRpbGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASG9zdExpc3RlbmVyKFwid2luZG93OnJlc2l6ZVwiLCBbXCIkZXZlbnRcIl0pXG4gIHdpbmRvd1Jlc2l6ZVdhdGNoZXIoKSB7XG4gICAgaWYgKHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCA8IDYwMCkge1xuICAgICAgdGhpcy5pc01vYmlsZVZpZXcgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlzTW9iaWxlVmlldyA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGN1c3RvbWVyOiBhbnkgPSB7fTtcblxuICBASW5wdXQoKVxuICBpbmRleDogbnVtYmVyID0gdW5kZWZpbmVkO1xuXG4gIEBJbnB1dCgpXG4gIGNvbmZpZzogYW55O1xuXG4gIGlzTW9iaWxlVmlldyA9IGZhbHNlO1xuXG4gIHZpZXdUYXNrRGV0YWlsczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuXG4gIHRhc2tJZDogYW55ID0gXCJcIjtcblxuICBsYWJlbFZhbHVlUGFpckNvbmZpZzogYW55ID0ge307XG5cbiAgbGFiZWxWYWx1ZVBhaXJEYXRhOiBhbnkgPSBbXTtcblxuICBAT3V0cHV0KClcbiAgb25DbGlja1BlcmZvcm1BY3Rpb246IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgQE91dHB1dCgpXG4gIG5leHRTdGVwID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICByZW1vdmVUYXNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBnb29nbGVNYXBzU2VydmljZTogR29vZ2xlTWFwc1NlcnZpY2UsXG4gICAgcHVibGljIG9wZW5TdHJlZXRNYXBzU2VydmljZTogT3BlblN0cmVldE1hcHNTZXJ2aWNlLFxuICAgIHB1YmxpYyBhZ2VudFNlcnZpY2U6IEFnZW50U2VydmljZSxcbiAgICBwcml2YXRlIGhvc3RFbGVtZW50OiBFbGVtZW50UmVmXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnBhcnNlRGF0YSgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGNvbnN0IHZlcmlmeUNoYW5nZSA9IChrZXk6IHN0cmluZykgPT4ge1xuICAgICAgcmV0dXJuIGNoYW5nZXMuaGFzT3duUHJvcGVydHkoa2V5KSAmJiAhY2hhbmdlc1trZXldLmZpcnN0Q2hhbmdlO1xuICAgIH07XG5cbiAgICBpZiAodmVyaWZ5Q2hhbmdlKFwiY3VzdG9tZXJcIikpIHtcbiAgICAgIHRoaXMuY3VzdG9tZXIgPSBjaGFuZ2VzLmN1c3RvbWVyLmN1cnJlbnRWYWx1ZTtcbiAgICAgIHRoaXMucGFyc2VEYXRhKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0VmFsdWVGcm9tQXJyYXkocGF0aHMpIHtcbiAgICBsZXQgZGF0YSA9IFwiXCI7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGFycmF5LWNhbGxiYWNrLXJldHVyblxuICAgIHBhdGhzLm1hcCgocGF0aCkgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSBnZXRPYmplY3RWYWx1ZUZyb21QYXRoKHRoaXMuY3VzdG9tZXIsIHBhdGgpO1xuICAgICAgZGF0YSA9IGAke2RhdGF9ICR7dmFsdWV9YDtcbiAgICB9KTtcblxuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgcGFyc2VEYXRhKCkge1xuICAgIGNvbnN0IGlkZW50aWZpZXIgPSB0aGlzLmNvbmZpZz8udGFza0lkZW50aWZpZXIgPz8gXCJ1c2VyX2lkXCI7XG4gICAgdGhpcy50YXNrSWQgPSBnZXRPYmplY3RWYWx1ZUZyb21QYXRoKHRoaXMuY3VzdG9tZXIsIGlkZW50aWZpZXIpO1xuXG4gICAgbGV0IGRldGFpbHNDb25maWcgPSBbXTtcbiAgICBpZiAoXG4gICAgICBjaGVja09iamVjdFBhdGhFeGlzdHModGhpcy5jb25maWcsIFwidGFza1VJLmRldGFpbHMuZGF0YVwiKSAmJlxuICAgICAgaXNOb3RFbXB0eUFycmF5KHRoaXMuY29uZmlnLnRhc2tVSS5kZXRhaWxzLmRhdGEpXG4gICAgKSB7XG4gICAgICBjb25zdCBkYXRhID0gW107XG4gICAgICBkZXRhaWxzQ29uZmlnID0gdGhpcy5jb25maWcudGFza1VJLmRldGFpbHMuZGF0YTtcbiAgICAgIGRldGFpbHNDb25maWcubWFwKChmaWVsZCkgPT4ge1xuICAgICAgICBsZXQgdmFsdWU7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGZpZWxkLnBhdGgpKSB7XG4gICAgICAgICAgdmFsdWUgPSB0aGlzLmdldFZhbHVlRnJvbUFycmF5KGZpZWxkLnBhdGgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhbHVlID0gZ2V0T2JqZWN0VmFsdWVGcm9tUGF0aCh0aGlzLmN1c3RvbWVyLCBmaWVsZC5wYXRoKTtcbiAgICAgICAgfVxuICAgICAgICBkYXRhLnB1c2goeyBsYWJlbDogZmllbGQubGFiZWwsIHZhbHVlIH0pO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmxhYmVsVmFsdWVQYWlyRGF0YSA9IGRhdGE7XG4gICAgfVxuXG4gICAgdGhpcy5sYWJlbFZhbHVlUGFpckNvbmZpZyA9IHRoaXMuY29uZmlnPy50YXNrVUk/LmRldGFpbHM/LmNvbmZpZyA/PyB7fTtcbiAgfVxuXG4gIG9wZW5EZXRhaWxzKCkge1xuICAgIGNvbnN0IGlzRGlmZmVyZW50VGFza1NlbGVjdGVkID1cbiAgICAgIHRoaXMuYWdlbnRTZXJ2aWNlLmN1cnJlbnRUYXNrRGV0YWlscz8uc2Vzc2lvbl9pZCAhPT1cbiAgICAgIHRoaXMuY3VzdG9tZXI/LnNlc3Npb25faWQ7XG5cbiAgICBpZiAoaXNEaWZmZXJlbnRUYXNrU2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuYWdlbnRTZXJ2aWNlLmN1cnJlbnRUYXNrRGV0YWlscyA9IHRoaXMuY3VzdG9tZXI7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYWdlbnRTZXJ2aWNlLmN1cnJlbnRUYXNrRGV0YWlscyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5hZ2VudFNlcnZpY2Uuc2hvd01hcHZpZXcpIHtcbiAgICAgIGlmICh0aGlzLmFnZW50U2VydmljZS5jb25maWc/Lm1hcHM/Lm1hcFR5cGUgPT09IFwiZ29vZ2xlLW1hcHNcIikge1xuICAgICAgICB0aGlzLmdvb2dsZU1hcHNTZXJ2aWNlLnBsb3REaXJlY3Rpb25zRm9yU2VsZWN0ZWRUYXNrKFxuICAgICAgICAgIHRoaXMuYWdlbnRTZXJ2aWNlLmN1cnJlbnRUYXNrRGV0YWlsc1xuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5vcGVuU3RyZWV0TWFwc1NlcnZpY2UucGxvdERpcmVjdGlvbnNGb3JTZWxlY3RlZFRhc2soXG4gICAgICAgICAgdGhpcy5hZ2VudFNlcnZpY2UuY3VycmVudFRhc2tEZXRhaWxzXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ29Ub01hcHMobG9jYXRpb24pIHtcbiAgICB3aW5kb3cub3BlbihgJHtsb2NhdGlvbn1gLCBcIl9ibGFua1wiKTtcbiAgfVxuXG4gIGhhbmRsZU9uQ2xpY2tQZXJmb3JtQWN0aW9uKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2xpY2tQZXJmb3JtQWN0aW9uLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgaGFuZGxlT25DbGlja05leHQoZSkge1xuICAgIHRoaXMubmV4dFN0ZXAuZW1pdChlKTtcbiAgfVxuXG4gIGhhbmRsZU9uQ2xpY2tSZW1vdmVUYXNrKHRhc2spIHtcbiAgICB0aGlzLnJlbW92ZVRhc2suZW1pdCh0YXNrKTtcbiAgfVxufVxuIiwiPGRpdlxuICBbbmdDbGFzc109XCJcbiAgICBjdXN0b21lcj8uc2Vzc2lvbl9pZCA9PSBhZ2VudFNlcnZpY2UuY3VycmVudFRhc2tEZXRhaWxzPy5zZXNzaW9uX2lkXG4gICAgICA/ICdjdXN0b21lci10aWxlLXdyYXBwZXIgY3VzdG9tZXItdGlsZS1hY3RpdmUnXG4gICAgICA6ICdjdXN0b21lci10aWxlLXdyYXBwZXInXG4gIFwiXG4+XG4gIDxkaXYgY2xhc3M9XCJjdXN0b21lci10aWxlLXByaW1hcnktY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImN1c3RvbWVyLXRpbGUtcHJpbWFyeS1jb250YWluZXItZGF0YVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImN1c3RvbWVyLXRpbGUtcHJpbWFyeS1jb250YWluZXItdXNlcmlkXCI+XG4gICAgICAgIHt7IHRhc2tJZCB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8c3RhdHVzLXBpbGxcbiAgICAgICAgKm5nSWY9XCJjb25maWc/LnV0aWxpdHlGbGFncz8uaXNTaG93VGFza1N0YXR1c1wiXG4gICAgICAgIFtjb25maWddPVwiY29uZmlnPy50YXNrVUk/LmhlYWRlcj8udGFza1N0YXR1c1wiXG4gICAgICAgIFtzdGF0dXNdPVwiXG4gICAgICAgICAgY3VzdG9tZXJbY29uZmlnPy50YXNrVUk/LmhlYWRlcj8udGFza1N0YXR1cz8ucGF0aCA/PyAnc2Vzc2lvbl9zdGF0dXMnXVxuICAgICAgICBcIlxuICAgICAgPjwvc3RhdHVzLXBpbGw+XG4gICAgPC9kaXY+XG4gICAgPGt3aWt1aS1idXR0b25cbiAgICAgICpuZ0lmPVwiIWFnZW50U2VydmljZS5pc01vYmlsZVZpZXcgJiYgIWFnZW50U2VydmljZS5zaG93TWFwdmlld1wiXG4gICAgICBbaWNvbl09XCJcbiAgICAgICAgYWdlbnRTZXJ2aWNlLmN1cnJlbnRUYXNrRGV0YWlscz8uc2Vzc2lvbl9pZCA9PSBjdXN0b21lcj8uc2Vzc2lvbl9pZFxuICAgICAgICAgID8gJ3R1aUljb25DaGV2cm9uTGVmdExhcmdlJ1xuICAgICAgICAgIDogJ3R1aUljb25DaGV2cm9uUmlnaHRMYXJnZSdcbiAgICAgIFwiXG4gICAgICBbc2hhcGVdPVwiJ3JvdW5kZWQnXCJcbiAgICAgIGFwcGVhcmFuY2U9XCJpY29uXCJcbiAgICAgIHNpemU9XCJzXCJcbiAgICAgIChvbkNsaWNrKT1cIm9wZW5EZXRhaWxzKClcIlxuICAgID48L2t3aWt1aS1idXR0b24+XG4gICAgPGt3aWt1aS1idXR0b25cbiAgICAgICpuZ0lmPVwiYWdlbnRTZXJ2aWNlLmlzTW9iaWxlVmlldyB8fCBhZ2VudFNlcnZpY2Uuc2hvd01hcHZpZXdcIlxuICAgICAgW2ljb25dPVwiXG4gICAgICAgIGFnZW50U2VydmljZS5jdXJyZW50VGFza0RldGFpbHM/LnNlc3Npb25faWQgPT0gY3VzdG9tZXI/LnNlc3Npb25faWRcbiAgICAgICAgICA/ICd0dWlJY29uQ2hldnJvblVwTGFyZ2UnXG4gICAgICAgICAgOiAndHVpSWNvbkNoZXZyb25Eb3duTGFyZ2UnXG4gICAgICBcIlxuICAgICAgW3NoYXBlXT1cIidyb3VuZGVkJ1wiXG4gICAgICBhcHBlYXJhbmNlPVwiaWNvblwiXG4gICAgICBzaXplPVwic1wiXG4gICAgICAob25DbGljayk9XCJvcGVuRGV0YWlscygpXCJcbiAgICA+PC9rd2lrdWktYnV0dG9uPlxuICA8L2Rpdj5cbiAgPGRpdlxuICAgICpuZ0lmPVwiXG4gICAgICBjdXN0b21lcj8uc2Vzc2lvbl9pZCA9PSBhZ2VudFNlcnZpY2UuY3VycmVudFRhc2tEZXRhaWxzPy5zZXNzaW9uX2lkICYmXG4gICAgICAoYWdlbnRTZXJ2aWNlLmlzTW9iaWxlVmlldyB8fCBhZ2VudFNlcnZpY2Uuc2hvd01hcHZpZXcpXG4gICAgXCJcbiAgICBbbmdDbGFzc109XCJcbiAgICAgIGN1c3RvbWVyPy5zZXNzaW9uX2lkID09IGFnZW50U2VydmljZS5jdXJyZW50VGFza0RldGFpbHM/LnNlc3Npb25faWQgJiZcbiAgICAgIChhZ2VudFNlcnZpY2UuaXNNb2JpbGVWaWV3IHx8IGFnZW50U2VydmljZS5zaG93TWFwdmlldylcbiAgICAgICAgPyAnY3VzdG9tZXItdGlsZS1zZWNvbmRhcnktY29udGFpbmVyJ1xuICAgICAgICA6ICdkYXRhLWNvbGxhc3BlZCdcbiAgICBcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cImN1c3RvbWVyLXRpbGUtc2Vjb25kYXJ5LWNvbnRhaW5lci1kYXRhXCI+XG4gICAgICA8a3dpa3VpLWxhYmVsLXZhbHVlLXBhaXJcbiAgICAgICAgW2NvbmZpZ109XCJsYWJlbFZhbHVlUGFpckNvbmZpZ1wiXG4gICAgICAgIFtkYXRhXT1cImxhYmVsVmFsdWVQYWlyRGF0YVwiXG4gICAgICA+PC9rd2lrdWktbGFiZWwtdmFsdWUtcGFpcj5cbiAgICAgIDwhLS0gPGRpdlxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgIGFnZW50U2VydmljZS5jb25maWc/Lm1hcHM/LnNobyAmJlxuICAgICAgICAgIGFnZW50U2VydmljZS5jb25maWc/LmlzU2hvd0Rpc3RhbmNlQW5kVGltZSAmJlxuICAgICAgICAgIG9wZW5TdHJlZXRNYXBzU2VydmljZS5nZXRTZWxlY3RlZFRhc2tEaXN0YW5jZUFuZFRpbWUoKVxuICAgICAgICBcIlxuICAgICAgICBjbGFzcz1cImN1c3RvbWVyLXRpbGUtc2Vjb25kYXJ5LWNvbnRhaW5lci1jdXN0b20tZGV0YWlsc1wiXG4gICAgICA+XG4gICAgICAgIERpc3RhbmNlOiB7eyBvcGVuU3RyZWV0TWFwc1NlcnZpY2UuZ2V0U2VsZWN0ZWRUYXNrRGlzdGFuY2VBbmRUaW1lKCk/LmRpc3RhbmNlIH19IHxcbiAgICAgICAgVGltZToge3sgb3BlblN0cmVldE1hcHNTZXJ2aWNlLmdldFNlbGVjdGVkVGFza0Rpc3RhbmNlQW5kVGltZSgpPy50aW1lIH19XG4gICAgICA8L2Rpdj4gLS0+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImN1c3RvbWVyLXRpbGUtc2Vjb25kYXJ5LWNvbnRhaW5lci1hY3Rpb25zXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgY29uZmlnPy50YXNrVUk/LmRldGFpbHM/LmFjdGlvblwiPlxuICAgICAgICA8a3dpa2lkLWFjdGlvbi1idXR0b25cbiAgICAgICAgICBbYWN0aW9uXT1cImFjdGlvblwiXG4gICAgICAgICAgW2NvbmZpZ109XCJjb25maWdcIlxuICAgICAgICAgIFtjdXN0b21lcl09XCJjdXN0b21lclwiXG4gICAgICAgICAgKG9uQ2xpY2tQZXJmb3JtQWN0aW9uKT1cImhhbmRsZU9uQ2xpY2tQZXJmb3JtQWN0aW9uKCRldmVudClcIlxuICAgICAgICA+PC9rd2lraWQtYWN0aW9uLWJ1dHRvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY3VzdG9tZXItdGlsZS1zZWNvbmRhcnktY29udGFpbmVyLXRhc2stYnV0dG9uc1wiPlxuICAgICAgICA8a3dpa3VpLWJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwiY29uZmlnPy5pc0FsbG93UmVtb3ZlVGFza1wiXG4gICAgICAgICAgW2ljb25dPVwiJ3R1aUljb25UcmFzaDInXCJcbiAgICAgICAgICBbc2hhcGVdPVwiJ3JvdW5kZWQnXCJcbiAgICAgICAgICBhcHBlYXJhbmNlPVwiaWNvblwiXG4gICAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICAgIChvbkNsaWNrKT1cImhhbmRsZU9uQ2xpY2tSZW1vdmVUYXNrKGN1c3RvbWVyKVwiXG4gICAgICAgID48L2t3aWt1aS1idXR0b24+XG4gICAgICAgIDxrd2lrdWktYnV0dG9uXG4gICAgICAgICAgKm5nSWY9XCJjb25maWc/LmlzU2hvd0NvcHlMaW5rXCJcbiAgICAgICAgICBpY29uPVwidHVpSWNvbkNvcHlcIlxuICAgICAgICAgIFtzaGFwZV09XCIncm91bmRlZCdcIlxuICAgICAgICAgIGFwcGVhcmFuY2U9XCJpY29uXCJcbiAgICAgICAgICBzaXplPVwic1wiXG4gICAgICAgICAgKG9uQ2xpY2spPVwiXG4gICAgICAgICAgICBoYW5kbGVPbkNsaWNrTmV4dCh7XG4gICAgICAgICAgICAgIGN1c3RvbWVyOiBjdXN0b21lcixcbiAgICAgICAgICAgICAgc3RlcFR5cGU6ICdTSEFSRV9KT1VSTkVZX0xJTksnXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIFwiXG4gICAgICAgID48L2t3aWt1aS1idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjdXN0b21lci10aWxlLXNlY29uZGFyeS1jb250YWluZXItam91cm5leS1idXR0b25zXCI+XG4gICAgICAgIDxrd2lrdWktYnV0dG9uXG4gICAgICAgICAgKm5nSWY9XCJjb25maWc/LmlzU2hvd01hcHMgJiYgY3VzdG9tZXI/LmlzVmFsaWRMb2NhdGlvblwiXG4gICAgICAgICAgbGFiZWw9XCJTaG93IERpcmVjdGlvbnNcIlxuICAgICAgICAgIGFwcGVhcmFuY2U9XCJmbGF0XCJcbiAgICAgICAgICBzaXplPVwic1wiXG4gICAgICAgICAgc3R5bGVzPVwiZm9udC1zaXplOjAuN3JlbTtcIlxuICAgICAgICAgIChvbkNsaWNrKT1cImdvVG9NYXBzKGN1c3RvbWVyLmdvb2dsZU1hcHNVcmwpXCJcbiAgICAgICAgPjwva3dpa3VpLWJ1dHRvbj5cbiAgICAgICAgPGt3aWt1aS1idXR0b25cbiAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgY29uZmlnPy5pc0FsbG93U3RhcnRKb3VybmV5ICYmXG4gICAgICAgICAgICBhZ2VudFNlcnZpY2UuY2FuU3RhcnRKb3VybmV5KGN1c3RvbWVyLnNlc3Npb25fc3RhdHVzKVxuICAgICAgICAgIFwiXG4gICAgICAgICAgbGFiZWw9XCJTdGFydCBKb3VybmV5XCJcbiAgICAgICAgICBhcHBlYXJhbmNlPVwicHJpbWFyeVwiXG4gICAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICAgIHN0eWxlcz1cImZvbnQtc2l6ZTowLjdyZW07XCJcbiAgICAgICAgICAob25DbGljayk9XCJcbiAgICAgICAgICAgIGhhbmRsZU9uQ2xpY2tOZXh0KHsgY3VzdG9tZXI6IGN1c3RvbWVyLCBzdGVwVHlwZTogJ1NUQVJUX0pPVVJORVknIH0pXG4gICAgICAgICAgXCJcbiAgICAgICAgPjwva3dpa3VpLWJ1dHRvbj5cbiAgICAgIDwvZGl2PiAtLT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -1,46 +1,49 @@
1
+ import { __awaiter } from "tslib";
2
+ /* eslint-disable no-empty-function */
3
+ /* eslint-disable @typescript-eslint/no-empty-function */
4
+ /* eslint-disable no-prototype-builtins */
1
5
  import { Component, Input } from "@angular/core";
2
- import { isEmptyValue } from "kwikid-toolkit";
3
- import { EStatus } from "./status-pill.definitions";
6
+ import { checkObjectKeyExists, checkObjectPathExists, convertSnakeCaseToNormalText } from "kwikid-toolkit";
7
+ import { DEFAULT_STYLES } from "./status-pill.constants";
4
8
  import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/common";
6
9
  export class StatusPillComponent {
7
10
  constructor() {
8
- this.status = EStatus.WAITING;
9
- this.statusText = "";
10
- this.statusClass = {};
11
+ this.styles = {};
12
+ this.value = "";
11
13
  }
12
14
  ngOnInit() {
13
- this.parseStatus(this.status);
15
+ return __awaiter(this, void 0, void 0, function* () {
16
+ this.setupStatus();
17
+ });
14
18
  }
15
19
  ngOnChanges(changes) {
16
20
  const verifyChange = (key) => {
17
21
  return changes.hasOwnProperty(key) && !changes[key].firstChange;
18
22
  };
23
+ if (verifyChange("config")) {
24
+ this.config = changes.config.currentValue;
25
+ }
19
26
  if (verifyChange("status")) {
20
27
  this.status = changes.status.currentValue;
21
- this.parseStatus(this.status);
28
+ this.setupStatus();
22
29
  }
23
30
  }
24
- parseStatus(status) {
25
- if (isEmptyValue(status)) {
26
- this.status = EStatus.WAITING;
31
+ setupStatus() {
32
+ var _a, _b;
33
+ if (checkObjectPathExists(this.config, "mapping") &&
34
+ checkObjectKeyExists(this.config.mapping, this.status)) {
35
+ this.styles = Object.assign(Object.assign({}, DEFAULT_STYLES), this.config.mapping[this.status]);
36
+ this.value =
37
+ (_b = (_a = this.config.mapping[this.status]) === null || _a === void 0 ? void 0 : _a.label) !== null && _b !== void 0 ? _b : convertSnakeCaseToNormalText(this.status);
38
+ }
39
+ else {
40
+ this.styles = DEFAULT_STYLES;
41
+ this.value = convertSnakeCaseToNormalText(this.status);
27
42
  }
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
43
  }
41
44
  }
42
45
  /** @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"] }] });
46
+ /** @nocollapse */ StatusPillComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: StatusPillComponent, selector: "status-pill", inputs: { config: "config", status: "status" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"task-iem-status-container\"\n [style]=\"styles\"\n>\n {{ value }}\n</div>\n", styles: [".task-iem-status-container{width:-moz-fit-content;width:fit-content;padding:0 .4rem;font-size:.7rem;border-radius:1rem}\n"] });
44
47
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: StatusPillComponent, decorators: [{
45
48
  type: Component,
46
49
  args: [{
@@ -48,7 +51,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
48
51
  templateUrl: "./status-pill.component.html",
49
52
  styleUrls: ["./status-pill.component.css"]
50
53
  }]
51
- }], propDecorators: { status: [{
54
+ }], ctorParameters: function () { return []; }, propDecorators: { config: [{
55
+ type: Input
56
+ }], status: [{
52
57
  type: Input
53
58
  }] } });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLXBpbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3dpa2lkLWFnZW50LWRhc2hib2FyZC9zcmMvbGliL3YxL2NvbXBvbmVudHMvY3VzdG9tZXItdGlsZS9zdGF0dXMtcGlsbC9zdGF0dXMtcGlsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtYWdlbnQtZGFzaGJvYXJkL3NyYy9saWIvdjEvY29tcG9uZW50cy9jdXN0b21lci10aWxlL3N0YXR1cy1waWxsL3N0YXR1cy1waWxsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUF5QixNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLE9BQU8sRUFBVyxNQUFNLDJCQUEyQixDQUFDOzs7QUFPN0QsTUFBTSxPQUFPLG1CQUFtQjtJQUxoQztRQU9FLFdBQU0sR0FBWSxPQUFPLENBQUMsT0FBTyxDQUFDO1FBRWxDLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFFaEIsZ0JBQVcsR0FBRyxFQUFFLENBQUM7S0FvQ2xCO0lBbENDLFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLE1BQU0sWUFBWSxHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUU7WUFDbkMsT0FBTyxPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQztRQUNsRSxDQUFDLENBQUM7UUFFRixJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO1lBQzFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQy9CO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFNO1FBQ2hCLElBQUksWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQztTQUMvQjtRQUNELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsTUFBTTtRQUN2QixNQUFNLFNBQVMsR0FBRyxNQUFNO2FBQ3JCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO2FBQ2pCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO2FBQ2pCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDckIsT0FBTyxlQUFlLFNBQVMsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxjQUFjLENBQUMsTUFBTTtRQUNuQixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN0RSxDQUFDOztvSUF6Q1UsbUJBQW1CO3dIQUFuQixtQkFBbUIsc0dDVGhDLG9GQUNBOzRGRFFhLG1CQUFtQjtrQkFML0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsV0FBVyxFQUFFLDhCQUE4QjtvQkFDM0MsU0FBUyxFQUFFLENBQUMsNkJBQTZCLENBQUM7aUJBQzNDOzhCQUdDLE1BQU07c0JBREwsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBpc0VtcHR5VmFsdWUgfSBmcm9tIFwia3dpa2lkLXRvb2xraXRcIjtcbmltcG9ydCB7IEVTdGF0dXMsIFRTdGF0dXMgfSBmcm9tIFwiLi9zdGF0dXMtcGlsbC5kZWZpbml0aW9uc1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwic3RhdHVzLXBpbGxcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9zdGF0dXMtcGlsbC5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vc3RhdHVzLXBpbGwuY29tcG9uZW50LmNzc1wiXVxufSlcbmV4cG9ydCBjbGFzcyBTdGF0dXNQaWxsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KClcbiAgc3RhdHVzOiBUU3RhdHVzID0gRVN0YXR1cy5XQUlUSU5HO1xuXG4gIHN0YXR1c1RleHQgPSBcIlwiO1xuXG4gIHN0YXR1c0NsYXNzID0ge307XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5wYXJzZVN0YXR1cyh0aGlzLnN0YXR1cyk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgY29uc3QgdmVyaWZ5Q2hhbmdlID0gKGtleTogc3RyaW5nKSA9PiB7XG4gICAgICByZXR1cm4gY2hhbmdlcy5oYXNPd25Qcm9wZXJ0eShrZXkpICYmICFjaGFuZ2VzW2tleV0uZmlyc3RDaGFuZ2U7XG4gICAgfTtcblxuICAgIGlmICh2ZXJpZnlDaGFuZ2UoXCJzdGF0dXNcIikpIHtcbiAgICAgIHRoaXMuc3RhdHVzID0gY2hhbmdlcy5zdGF0dXMuY3VycmVudFZhbHVlO1xuICAgICAgdGhpcy5wYXJzZVN0YXR1cyh0aGlzLnN0YXR1cyk7XG4gICAgfVxuICB9XG5cbiAgcGFyc2VTdGF0dXMoc3RhdHVzKSB7XG4gICAgaWYgKGlzRW1wdHlWYWx1ZShzdGF0dXMpKSB7XG4gICAgICB0aGlzLnN0YXR1cyA9IEVTdGF0dXMuV0FJVElORztcbiAgICB9XG4gICAgdGhpcy5zdGF0dXNUZXh0ID0gdGhpcy5nZXRTdGF0dXNMYWJlbChzdGF0dXMpO1xuICAgIHRoaXMuc3RhdHVzQ2xhc3MgPSB0aGlzLmdldFN0YXR1c1BpbGxDbGFzcyhzdGF0dXMpO1xuICB9XG5cbiAgZ2V0U3RhdHVzUGlsbENsYXNzKHN0YXR1cykge1xuICAgIGNvbnN0IG5ld1N0YXR1cyA9IHN0YXR1c1xuICAgICAgLnJlcGxhY2UoXCJfXCIsIFwiLVwiKVxuICAgICAgLnJlcGxhY2UoXCJfXCIsIFwiLVwiKVxuICAgICAgLnJlcGxhY2UoXCJfXCIsIFwiLVwiKTtcbiAgICByZXR1cm4gYHN0YXR1cy1waWxsICR7bmV3U3RhdHVzfWA7XG4gIH1cblxuICBnZXRTdGF0dXNMYWJlbChzdGF0dXMpIHtcbiAgICByZXR1cm4gc3RhdHVzLnJlcGxhY2UoXCJfXCIsIFwiIFwiKS5yZXBsYWNlKFwiX1wiLCBcIiBcIikucmVwbGFjZShcIl9cIiwgXCIgXCIpO1xuICB9XG59XG4iLCI8ZGl2IFtuZ0NsYXNzXT1cImdldFN0YXR1c1BpbGxDbGFzcyhzdGF0dXMpXCI+e3sgZ2V0U3RhdHVzTGFiZWwoc3RhdHVzKSB9fTwvZGl2PlxuIl19
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLXBpbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3dpa2lkLWFnZW50LWRhc2hib2FyZC9zcmMvbGliL3YxL2NvbXBvbmVudHMvY3VzdG9tZXItdGlsZS9zdGF0dXMtcGlsbC9zdGF0dXMtcGlsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtYWdlbnQtZGFzaGJvYXJkL3NyYy9saWIvdjEvY29tcG9uZW50cy9jdXN0b21lci10aWxlL3N0YXR1cy1waWxsL3N0YXR1cy1waWxsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxzQ0FBc0M7QUFDdEMseURBQXlEO0FBQ3pELDBDQUEwQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBeUIsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsNEJBQTRCLEVBQzdCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQU96RCxNQUFNLE9BQU8sbUJBQW1CO0lBVzlCO1FBSkEsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQUVaLFVBQUssR0FBRyxFQUFFLENBQUM7SUFFSSxDQUFDO0lBRVYsUUFBUTs7WUFDWixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckIsQ0FBQztLQUFBO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLE1BQU0sWUFBWSxHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUU7WUFDbkMsT0FBTyxPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQztRQUNsRSxDQUFDLENBQUM7UUFFRixJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO1NBQzNDO1FBQ0QsSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztZQUUxQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDcEI7SUFDSCxDQUFDO0lBRUQsV0FBVzs7UUFDVCxJQUNFLHFCQUFxQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDO1lBQzdDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsRUFDdEQ7WUFDQSxJQUFJLENBQUMsTUFBTSxtQ0FBUSxjQUFjLEdBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFFLENBQUM7WUFDekUsSUFBSSxDQUFDLEtBQUs7Z0JBQ1IsTUFBQSxNQUFBLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsMENBQUUsS0FBSyxtQ0FDdkMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzdDO2FBQU07WUFDTCxJQUFJLENBQUMsTUFBTSxHQUFHLGNBQWMsQ0FBQztZQUM3QixJQUFJLENBQUMsS0FBSyxHQUFHLDRCQUE0QixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN4RDtJQUNILENBQUM7O29JQTdDVSxtQkFBbUI7d0hBQW5CLG1CQUFtQix3SENoQmhDLCtGQU1BOzRGRFVhLG1CQUFtQjtrQkFML0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsV0FBVyxFQUFFLDhCQUE4QjtvQkFDM0MsU0FBUyxFQUFFLENBQUMsNkJBQTZCLENBQUM7aUJBQzNDOzBFQUdDLE1BQU07c0JBREwsS0FBSztnQkFJTixNQUFNO3NCQURMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1lbXB0eS1mdW5jdGlvbiAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1wcm90b3R5cGUtYnVpbHRpbnMgKi9cbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge1xuICBjaGVja09iamVjdEtleUV4aXN0cyxcbiAgY2hlY2tPYmplY3RQYXRoRXhpc3RzLFxuICBjb252ZXJ0U25ha2VDYXNlVG9Ob3JtYWxUZXh0XG59IGZyb20gXCJrd2lraWQtdG9vbGtpdFwiO1xuaW1wb3J0IHsgREVGQVVMVF9TVFlMRVMgfSBmcm9tIFwiLi9zdGF0dXMtcGlsbC5jb25zdGFudHNcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInN0YXR1cy1waWxsXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vc3RhdHVzLXBpbGwuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL3N0YXR1cy1waWxsLmNvbXBvbmVudC5jc3NcIl1cbn0pXG5leHBvcnQgY2xhc3MgU3RhdHVzUGlsbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpXG4gIGNvbmZpZztcblxuICBASW5wdXQoKVxuICBzdGF0dXM7XG5cbiAgc3R5bGVzID0ge307XG5cbiAgdmFsdWUgPSBcIlwiO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNldHVwU3RhdHVzKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgY29uc3QgdmVyaWZ5Q2hhbmdlID0gKGtleTogc3RyaW5nKSA9PiB7XG4gICAgICByZXR1cm4gY2hhbmdlcy5oYXNPd25Qcm9wZXJ0eShrZXkpICYmICFjaGFuZ2VzW2tleV0uZmlyc3RDaGFuZ2U7XG4gICAgfTtcblxuICAgIGlmICh2ZXJpZnlDaGFuZ2UoXCJjb25maWdcIikpIHtcbiAgICAgIHRoaXMuY29uZmlnID0gY2hhbmdlcy5jb25maWcuY3VycmVudFZhbHVlO1xuICAgIH1cbiAgICBpZiAodmVyaWZ5Q2hhbmdlKFwic3RhdHVzXCIpKSB7XG4gICAgICB0aGlzLnN0YXR1cyA9IGNoYW5nZXMuc3RhdHVzLmN1cnJlbnRWYWx1ZTtcblxuICAgICAgdGhpcy5zZXR1cFN0YXR1cygpO1xuICAgIH1cbiAgfVxuXG4gIHNldHVwU3RhdHVzKCkge1xuICAgIGlmIChcbiAgICAgIGNoZWNrT2JqZWN0UGF0aEV4aXN0cyh0aGlzLmNvbmZpZywgXCJtYXBwaW5nXCIpICYmXG4gICAgICBjaGVja09iamVjdEtleUV4aXN0cyh0aGlzLmNvbmZpZy5tYXBwaW5nLCB0aGlzLnN0YXR1cylcbiAgICApIHtcbiAgICAgIHRoaXMuc3R5bGVzID0geyAuLi5ERUZBVUxUX1NUWUxFUywgLi4udGhpcy5jb25maWcubWFwcGluZ1t0aGlzLnN0YXR1c10gfTtcbiAgICAgIHRoaXMudmFsdWUgPVxuICAgICAgICB0aGlzLmNvbmZpZy5tYXBwaW5nW3RoaXMuc3RhdHVzXT8ubGFiZWwgPz9cbiAgICAgICAgY29udmVydFNuYWtlQ2FzZVRvTm9ybWFsVGV4dCh0aGlzLnN0YXR1cyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3R5bGVzID0gREVGQVVMVF9TVFlMRVM7XG4gICAgICB0aGlzLnZhbHVlID0gY29udmVydFNuYWtlQ2FzZVRvTm9ybWFsVGV4dCh0aGlzLnN0YXR1cyk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwidGFzay1pZW0tc3RhdHVzLWNvbnRhaW5lclwiXG4gIFtzdHlsZV09XCJzdHlsZXNcIlxuPlxuICB7eyB2YWx1ZSB9fVxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,33 @@
1
+ export const STATUS = {
2
+ kyc_result_rejected: {
3
+ color: "#eb3434",
4
+ label: "KYC Result Rejected",
5
+ background: "#ffd4da",
6
+ hint: "KYC Result Rejected"
7
+ },
8
+ kyc_result_approved: {
9
+ color: "#01663e",
10
+ label: "KYC Result Approved",
11
+ background: "#d7faee",
12
+ hint: "KYC Result Approved"
13
+ },
14
+ kyc_result_partial_update: {
15
+ color: "#023b57",
16
+ label: "Partial Update",
17
+ background: "#b5e0f5",
18
+ hint: "Partial Update"
19
+ },
20
+ waiting: {
21
+ color: "#000",
22
+ label: "Waiting",
23
+ background: "#f5ecb5",
24
+ hint: "Waiting"
25
+ }
26
+ };
27
+ export const DEFAULT_STYLES = {
28
+ color: "#fff",
29
+ label: "Waiting",
30
+ background: "#888",
31
+ hint: "Waiting"
32
+ };
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLXBpbGwuY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3dpa2lkLWFnZW50LWRhc2hib2FyZC9zcmMvbGliL3YxL2NvbXBvbmVudHMvY3VzdG9tZXItdGlsZS9zdGF0dXMtcGlsbC9zdGF0dXMtcGlsbC5jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHO0lBQ3BCLG1CQUFtQixFQUFFO1FBQ25CLEtBQUssRUFBRSxTQUFTO1FBQ2hCLEtBQUssRUFBRSxxQkFBcUI7UUFDNUIsVUFBVSxFQUFFLFNBQVM7UUFDckIsSUFBSSxFQUFFLHFCQUFxQjtLQUM1QjtJQUNELG1CQUFtQixFQUFFO1FBQ25CLEtBQUssRUFBRSxTQUFTO1FBQ2hCLEtBQUssRUFBRSxxQkFBcUI7UUFDNUIsVUFBVSxFQUFFLFNBQVM7UUFDckIsSUFBSSxFQUFFLHFCQUFxQjtLQUM1QjtJQUNELHlCQUF5QixFQUFFO1FBQ3pCLEtBQUssRUFBRSxTQUFTO1FBQ2hCLEtBQUssRUFBRSxnQkFBZ0I7UUFDdkIsVUFBVSxFQUFFLFNBQVM7UUFDckIsSUFBSSxFQUFFLGdCQUFnQjtLQUN2QjtJQUNELE9BQU8sRUFBRTtRQUNQLEtBQUssRUFBRSxNQUFNO1FBQ2IsS0FBSyxFQUFFLFNBQVM7UUFDaEIsVUFBVSxFQUFFLFNBQVM7UUFDckIsSUFBSSxFQUFFLFNBQVM7S0FDaEI7Q0FDRixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHO0lBQzVCLEtBQUssRUFBRSxNQUFNO0lBQ2IsS0FBSyxFQUFFLFNBQVM7SUFDaEIsVUFBVSxFQUFFLE1BQU07SUFDbEIsSUFBSSxFQUFFLFNBQVM7Q0FDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBTVEFUVVMgPSB7XG4gIGt5Y19yZXN1bHRfcmVqZWN0ZWQ6IHtcbiAgICBjb2xvcjogXCIjZWIzNDM0XCIsXG4gICAgbGFiZWw6IFwiS1lDIFJlc3VsdCBSZWplY3RlZFwiLFxuICAgIGJhY2tncm91bmQ6IFwiI2ZmZDRkYVwiLFxuICAgIGhpbnQ6IFwiS1lDIFJlc3VsdCBSZWplY3RlZFwiXG4gIH0sXG4gIGt5Y19yZXN1bHRfYXBwcm92ZWQ6IHtcbiAgICBjb2xvcjogXCIjMDE2NjNlXCIsXG4gICAgbGFiZWw6IFwiS1lDIFJlc3VsdCBBcHByb3ZlZFwiLFxuICAgIGJhY2tncm91bmQ6IFwiI2Q3ZmFlZVwiLFxuICAgIGhpbnQ6IFwiS1lDIFJlc3VsdCBBcHByb3ZlZFwiXG4gIH0sXG4gIGt5Y19yZXN1bHRfcGFydGlhbF91cGRhdGU6IHtcbiAgICBjb2xvcjogXCIjMDIzYjU3XCIsXG4gICAgbGFiZWw6IFwiUGFydGlhbCBVcGRhdGVcIixcbiAgICBiYWNrZ3JvdW5kOiBcIiNiNWUwZjVcIixcbiAgICBoaW50OiBcIlBhcnRpYWwgVXBkYXRlXCJcbiAgfSxcbiAgd2FpdGluZzoge1xuICAgIGNvbG9yOiBcIiMwMDBcIixcbiAgICBsYWJlbDogXCJXYWl0aW5nXCIsXG4gICAgYmFja2dyb3VuZDogXCIjZjVlY2I1XCIsXG4gICAgaGludDogXCJXYWl0aW5nXCJcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfU1RZTEVTID0ge1xuICBjb2xvcjogXCIjZmZmXCIsXG4gIGxhYmVsOiBcIldhaXRpbmdcIixcbiAgYmFja2dyb3VuZDogXCIjODg4XCIsXG4gIGhpbnQ6IFwiV2FpdGluZ1wiXG59O1xuIl19