jconsumer-shared 0.0.3 → 1.0.1

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 (108) hide show
  1. package/esm2022/lib/account-service.mjs +158 -9
  2. package/esm2022/lib/auth-service.mjs +12 -4
  3. package/esm2022/lib/booking-service.mjs +480 -0
  4. package/esm2022/lib/calendar/date-time/datetime-processor.service.mjs +4 -4
  5. package/esm2022/lib/common.service.mjs +157 -7
  6. package/esm2022/lib/confirm/confirm-box.component.mjs +159 -0
  7. package/esm2022/lib/confirm/confirm-box.module.mjs +62 -0
  8. package/esm2022/lib/consumer-service.mjs +780 -0
  9. package/esm2022/lib/currency-service.mjs +12 -0
  10. package/esm2022/lib/environment.service.mjs +23 -0
  11. package/esm2022/lib/error-message.module.mjs +23 -0
  12. package/esm2022/lib/file-service.mjs +25 -19
  13. package/esm2022/lib/form-message/field-error-display/field-error-display.component.mjs +21 -0
  14. package/esm2022/lib/form-message/form-message-display.module.mjs +35 -0
  15. package/esm2022/lib/form-message/form-message-display.service.mjs +44 -0
  16. package/esm2022/lib/form-message/form-success-display/form-success-display.component.mjs +18 -0
  17. package/esm2022/lib/group-storage.service.mjs +4 -4
  18. package/esm2022/lib/i8n.module.mjs +5 -5
  19. package/esm2022/lib/injector-resolver.mjs +28 -0
  20. package/esm2022/lib/local-storage.service.mjs +4 -4
  21. package/esm2022/lib/media-service.mjs +49 -0
  22. package/esm2022/lib/order.service.mjs +19 -4
  23. package/esm2022/lib/payment/modes/payment-modes.component.mjs +35 -0
  24. package/esm2022/lib/payment/modes/payment-modes.module.mjs +24 -0
  25. package/esm2022/lib/payment/payment.module.mjs +26 -0
  26. package/esm2022/lib/paytm.service.mjs +131 -0
  27. package/esm2022/lib/phone-input/phone-input.component.mjs +50 -46
  28. package/esm2022/lib/phone-input/phone-input.module.mjs +5 -5
  29. package/esm2022/lib/pipes/autolink/autolink.module.mjs +20 -0
  30. package/esm2022/lib/pipes/autolink/autolink.pipe.mjs +4 -4
  31. package/esm2022/lib/pipes/capitalize/capitalize.module.mjs +5 -5
  32. package/esm2022/lib/pipes/capitalize/capitalize.pipe.mjs +4 -4
  33. package/esm2022/lib/pipes/date-format/date-format.module.mjs +19 -0
  34. package/esm2022/lib/pipes/date-format/date-format.pipe.mjs +42 -0
  35. package/esm2022/lib/pipes/filter/filter.pipe.mjs +4 -4
  36. package/esm2022/lib/pipes/limit-to/limitTo.pipe.mjs +4 -4
  37. package/esm2022/lib/pipes/safe-html/safehtml.module.mjs +5 -5
  38. package/esm2022/lib/pipes/safe-html/safehtml.pipe.mjs +4 -4
  39. package/esm2022/lib/project-constants.mjs +310 -0
  40. package/esm2022/lib/questionaire/edit/questionnaire.component.mjs +53 -63
  41. package/esm2022/lib/questionaire/edit/questionnaire.module.mjs +16 -15
  42. package/esm2022/lib/questionaire/questionaire-service.mjs +4 -4
  43. package/esm2022/lib/razorpay.service.mjs +157 -0
  44. package/esm2022/lib/request-dialog/request-dialog.component.mjs +29 -0
  45. package/esm2022/lib/request-dialog/request-dialog.module.mjs +24 -0
  46. package/esm2022/lib/service-meta.mjs +4 -4
  47. package/esm2022/lib/session-storage.service.mjs +4 -4
  48. package/esm2022/lib/shared-account.guard.mjs +41 -0
  49. package/esm2022/lib/shared-account.resolver.mjs +22 -0
  50. package/esm2022/lib/shared.service.mjs +88 -13
  51. package/esm2022/lib/showuploadfile/showuploadfile.component.mjs +5 -5
  52. package/esm2022/lib/showuploadfile/showuploadfile.module.mjs +5 -5
  53. package/esm2022/lib/skeleton/skeleton-loading.component.mjs +4 -4
  54. package/esm2022/lib/skeleton/skeleton-loading.module.mjs +5 -5
  55. package/esm2022/lib/spinner/loading-spinner.component.mjs +4 -4
  56. package/esm2022/lib/spinner/loading-spinner.module.mjs +5 -5
  57. package/esm2022/lib/storage.service.mjs +4 -4
  58. package/esm2022/lib/subscription.service.mjs +4 -4
  59. package/esm2022/lib/theme.service.mjs +30 -0
  60. package/esm2022/lib/timezone-converter.mjs +49 -0
  61. package/esm2022/lib/toast.service.mjs +5 -5
  62. package/esm2022/lib/twilio-service.mjs +466 -0
  63. package/esm2022/lib/word-processor.service.mjs +4 -4
  64. package/esm2022/public-api.mjs +32 -1
  65. package/fesm2022/jconsumer-shared.mjs +3981 -541
  66. package/fesm2022/jconsumer-shared.mjs.map +1 -1
  67. package/jconsumer-shared-1.0.1.tgz +0 -0
  68. package/lib/account-service.d.ts +41 -2
  69. package/lib/auth-service.d.ts +1 -0
  70. package/lib/booking-service.d.ts +101 -0
  71. package/lib/common.service.d.ts +12 -1
  72. package/lib/confirm/confirm-box.component.d.ts +43 -0
  73. package/lib/confirm/confirm-box.module.d.ts +16 -0
  74. package/lib/consumer-service.d.ts +178 -0
  75. package/lib/currency-service.d.ts +4 -0
  76. package/lib/environment.service.d.ts +9 -0
  77. package/lib/error-message.module.d.ts +7 -0
  78. package/lib/file-service.d.ts +5 -2
  79. package/lib/form-message/field-error-display/field-error-display.component.d.ts +8 -0
  80. package/lib/form-message/form-message-display.module.d.ts +10 -0
  81. package/lib/form-message/form-message-display.service.d.ts +13 -0
  82. package/lib/form-message/form-success-display/form-success-display.component.d.ts +7 -0
  83. package/lib/injector-resolver.d.ts +2 -0
  84. package/lib/media-service.d.ts +9 -0
  85. package/lib/order.service.d.ts +4 -0
  86. package/lib/payment/modes/payment-modes.component.d.ts +15 -0
  87. package/lib/payment/modes/payment-modes.module.d.ts +9 -0
  88. package/lib/payment/payment.module.d.ts +7 -0
  89. package/lib/paytm.service.d.ts +13 -0
  90. package/lib/phone-input/phone-input.component.d.ts +5 -3
  91. package/lib/pipes/autolink/autolink.module.d.ts +8 -0
  92. package/lib/pipes/date-format/date-format.module.d.ts +8 -0
  93. package/lib/pipes/date-format/date-format.pipe.d.ts +12 -0
  94. package/lib/project-constants.d.ts +227 -0
  95. package/lib/questionaire/edit/questionnaire.component.d.ts +8 -9
  96. package/lib/questionaire/edit/questionnaire.module.d.ts +9 -8
  97. package/lib/razorpay.service.d.ts +26 -0
  98. package/lib/request-dialog/request-dialog.component.d.ts +11 -0
  99. package/lib/request-dialog/request-dialog.module.d.ts +9 -0
  100. package/lib/shared-account.guard.d.ts +11 -0
  101. package/lib/shared-account.resolver.d.ts +10 -0
  102. package/lib/shared.service.d.ts +31 -4
  103. package/lib/theme.service.d.ts +10 -0
  104. package/lib/timezone-converter.d.ts +8 -0
  105. package/lib/twilio-service.d.ts +60 -0
  106. package/package.json +1 -1
  107. package/public-api.d.ts +31 -0
  108. package/jconsumer-shared-0.0.3.tgz +0 -0
@@ -0,0 +1,49 @@
1
+ import { Injectable } from "@angular/core";
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "./service-meta";
4
+ export class MediaService {
5
+ serviceMeta;
6
+ constructor(serviceMeta) {
7
+ this.serviceMeta = serviceMeta;
8
+ }
9
+ getMediaDevices() {
10
+ return new Promise(function (resolve, reject) {
11
+ let media = {};
12
+ navigator.mediaDevices.enumerateDevices().then(devices => {
13
+ let videoDevices = [];
14
+ let audioDevices = [];
15
+ let count = devices.length;
16
+ console.log(count);
17
+ if (count > 0) {
18
+ console.log(devices);
19
+ devices.forEach(device => {
20
+ if (device.kind === 'videoinput') {
21
+ videoDevices.push(device);
22
+ }
23
+ else if (device.kind === 'audioinput') {
24
+ audioDevices.push(device);
25
+ }
26
+ count--;
27
+ if (count === 0) {
28
+ media['videoDevices'] = videoDevices;
29
+ media['audioDevices'] = audioDevices;
30
+ resolve(media);
31
+ }
32
+ });
33
+ }
34
+ else {
35
+ reject(media);
36
+ }
37
+ });
38
+ });
39
+ }
40
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MediaService, deps: [{ token: i1.ServiceMeta }], target: i0.ɵɵFactoryTarget.Injectable });
41
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MediaService, providedIn: 'root' });
42
+ }
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MediaService, decorators: [{
44
+ type: Injectable,
45
+ args: [{
46
+ providedIn: 'root'
47
+ }]
48
+ }], ctorParameters: () => [{ type: i1.ServiceMeta }] });
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2pjb25zdW1lci1zaGFyZWQvc3JjL2xpYi9tZWRpYS1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU0zQyxNQUFNLE9BQU8sWUFBWTtJQUdUO0lBRFosWUFDWSxXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUNoQyxDQUFDO0lBRUwsZUFBZTtRQUNYLE9BQU8sSUFBSSxPQUFPLENBQUMsVUFBVSxPQUFPLEVBQUUsTUFBTTtZQUN4QyxJQUFJLEtBQUssR0FBUSxFQUFFLENBQUM7WUFDcEIsU0FBUyxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDckQsSUFBSSxZQUFZLEdBQVEsRUFBRSxDQUFDO2dCQUMzQixJQUFJLFlBQVksR0FBUSxFQUFFLENBQUM7Z0JBQzNCLElBQUksS0FBSyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7Z0JBQzNCLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ25CLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUNaLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBQ3JCLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7d0JBQ3JCLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxZQUFZLEVBQUUsQ0FBQzs0QkFDL0IsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzt3QkFDOUIsQ0FBQzs2QkFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssWUFBWSxFQUFFLENBQUM7NEJBQ3RDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7d0JBQzlCLENBQUM7d0JBQ0QsS0FBSyxFQUFFLENBQUM7d0JBQ1IsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7NEJBQ2QsS0FBSyxDQUFDLGNBQWMsQ0FBQyxHQUFHLFlBQVksQ0FBQzs0QkFDckMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxHQUFHLFlBQVksQ0FBQzs0QkFDckMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUNuQixDQUFDO29CQUNMLENBQUMsQ0FBQyxDQUFDO2dCQUNQLENBQUM7cUJBQU0sQ0FBQztvQkFDSixNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2xCLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQzt3R0FsQ1EsWUFBWTs0R0FBWixZQUFZLGNBRlQsTUFBTTs7NEZBRVQsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgU2VydmljZU1ldGEgfSBmcm9tIFwiLi9zZXJ2aWNlLW1ldGFcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTWVkaWFTZXJ2aWNlIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIHNlcnZpY2VNZXRhOiBTZXJ2aWNlTWV0YVxyXG4gICAgKSB7IH1cclxuXHJcbiAgICBnZXRNZWRpYURldmljZXMoKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICAgICAgbGV0IG1lZGlhOiBhbnkgPSB7fTtcclxuICAgICAgICAgICAgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5lbnVtZXJhdGVEZXZpY2VzKCkudGhlbihkZXZpY2VzID0+IHtcclxuICAgICAgICAgICAgICAgIGxldCB2aWRlb0RldmljZXM6IGFueSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgbGV0IGF1ZGlvRGV2aWNlczogYW55ID0gW107XHJcbiAgICAgICAgICAgICAgICBsZXQgY291bnQgPSBkZXZpY2VzLmxlbmd0aDtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGNvdW50KTtcclxuICAgICAgICAgICAgICAgIGlmIChjb3VudCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhkZXZpY2VzKTtcclxuICAgICAgICAgICAgICAgICAgICBkZXZpY2VzLmZvckVhY2goZGV2aWNlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRldmljZS5raW5kID09PSAndmlkZW9pbnB1dCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZGVvRGV2aWNlcy5wdXNoKGRldmljZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZGV2aWNlLmtpbmQgPT09ICdhdWRpb2lucHV0Jykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW9EZXZpY2VzLnB1c2goZGV2aWNlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb3VudC0tO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY291bnQgPT09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lZGlhWyd2aWRlb0RldmljZXMnXSA9IHZpZGVvRGV2aWNlcztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lZGlhWydhdWRpb0RldmljZXMnXSA9IGF1ZGlvRGV2aWNlcztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUobWVkaWEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChtZWRpYSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcbn1cclxuIl19
@@ -101,13 +101,28 @@ export class OrderService {
101
101
  const url = 'consumer/sorder/questionnaire/submit/' + uuid;
102
102
  return this.servicemeta.httpPost(url, body);
103
103
  }
104
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: OrderService, deps: [{ token: i1.ServiceMeta }, { token: i2.SharedService }], target: i0.ɵɵFactoryTarget.Injectable });
105
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: OrderService, providedIn: 'root' });
104
+ getShipmentDetails(orderId) {
105
+ const url = 'consumer/sorder/' + orderId + '/shipment/track';
106
+ return this.servicemeta.httpPut(url);
107
+ }
108
+ getInvoiceByOrderYnwuuid(accountId, orderUid) {
109
+ const url = 'consumer/so/invoice/' + accountId + '/' + orderUid;
110
+ return this.servicemeta.httpGet(url, null);
111
+ }
112
+ getOrders(filter) {
113
+ return this.servicemeta.httpGet('consumer/sorder', null, filter);
114
+ }
115
+ getRequireOTPForAddingToCart(accountId) {
116
+ const url = 'consumer/sorder/settings/' + accountId;
117
+ return this.servicemeta.httpGet(url);
118
+ }
119
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OrderService, deps: [{ token: i1.ServiceMeta }, { token: i2.SharedService }], target: i0.ɵɵFactoryTarget.Injectable });
120
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OrderService, providedIn: 'root' });
106
121
  }
107
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: OrderService, decorators: [{
122
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OrderService, decorators: [{
108
123
  type: Injectable,
109
124
  args: [{
110
125
  providedIn: 'root'
111
126
  }]
112
127
  }], ctorParameters: () => [{ type: i1.ServiceMeta }, { type: i2.SharedService }] });
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2pjb25zdW1lci1zaGFyZWQvc3JjL2xpYi9vcmRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFPM0MsTUFBTSxPQUFPLFlBQVk7SUFHYjtJQUNBO0lBRlYsWUFDVSxXQUF3QixFQUN4QixhQUE0QjtRQUQ1QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtJQUNsQyxDQUFDO0lBRUwsU0FBUyxDQUFDLE1BQU0sR0FBRyxFQUFFO1FBQ25CLE1BQU0sR0FBRyxHQUFHLGdCQUFnQixDQUFDO1FBQzdCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsTUFBTSxHQUFHLEVBQUU7UUFDOUIsTUFBTSxHQUFHLEdBQUcsMEJBQTBCLENBQUM7UUFDdkMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxNQUFNLEdBQUcsRUFBRTtRQUNuQyxNQUFNLEdBQUcsR0FBRyxnQ0FBZ0MsQ0FBQztRQUM3QyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFTO1FBQ2xCLE1BQU0sR0FBRyxHQUFHLGVBQWUsQ0FBQztRQUM1QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM5QyxD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QUFDLENBQUM7SUFDekMsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFTLEVBQUUsSUFBWTtRQUNwQyxNQUFNLEdBQUcsR0FBRyx1Q0FBdUMsR0FBRyxJQUFJLENBQUU7UUFDNUQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDOUMsQ0FBQzt1R0F4SFksWUFBWTsyR0FBWixZQUFZLGNBRlgsTUFBTTs7MkZBRVAsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNoYXJlZFNlcnZpY2UgfSBmcm9tICcuL3NoYXJlZC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2VydmljZU1ldGEgfSBmcm9tICcuL3NlcnZpY2UtbWV0YSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBPcmRlclNlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgc2VydmljZW1ldGE6IFNlcnZpY2VNZXRhLFxyXG4gICAgcHJpdmF0ZSBzaGFyZWRTZXJ2aWNlOiBTaGFyZWRTZXJ2aWNlXHJcbiAgKSB7IH1cclxuXHJcbiAgZ2V0U3RvcmVzKGZpbHRlciA9IHt9KSB7XHJcbiAgICBjb25zdCB1cmwgPSAnY29uc3VtZXIvc3RvcmUnO1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZW1ldGEuaHR0cEdldCh1cmwsIG51bGwsIGZpbHRlcik7XHJcbiAgfVxyXG5cclxuICBnZXRTdG9yZUNhdGFsb2dJdGVtcyhmaWx0ZXIgPSB7fSkge1xyXG4gICAgY29uc3QgdXJsID0gJ2NvbnN1bWVyL3NvL2NhdGFsb2cvaXRlbSc7XHJcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlbWV0YS5odHRwR2V0KHVybCwgbnVsbCwgZmlsdGVyKTtcclxuICB9XHJcblxyXG4gIGdldFN0b3JlQ2F0YWxvZ0l0ZW1zQ291bnQoZmlsdGVyID0ge30pIHtcclxuICAgIGNvbnN0IHVybCA9ICdjb25zdW1lci9zby9jYXRhbG9nL2l0ZW0vY291bnQnO1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZW1ldGEuaHR0cEdldCh1cmwsIG51bGwsIGZpbHRlcik7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVDYXJ0KGRhdGE6IGFueSkge1xyXG4gICAgY29uc3QgdXJsID0gJ2NvbnN1bWVyL2NhcnQnO1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZW1ldGEuaHR0cFBvc3QodXJsLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldENhcnQoaWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgdXJsID0gJ2NvbnN1bWVyL2NhcnQvcHJvY29uLycgKyBpZDtcclxuICAgIHJldHVybiB0aGlzLnNlcnZpY2VtZXRhLmh0dHBHZXQodXJsLCBudWxsKTtcclxuICB9XHJcblxyXG4gIGdldENhcnRJdGVtcyhjYXJ0VWlkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHVybCA9ICdjb25zdW1lci9jYXJ0LycgKyBjYXJ0VWlkICsgJy9nZXRpdGVtcyc7XHJcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlbWV0YS5odHRwR2V0KHVybCwgbnVsbCk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVJdGVtRnJvbUNhcnQoaXRlbVVpZDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB1cmwgPSAnY29uc3VtZXIvY2FydC9pdGVtLycgKyBpdGVtVWlkO1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZW1ldGEuaHR0cERlbGV0ZSh1cmwsIG51bGwpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlQ2FydEl0ZW1zKGNhcnRVaWQ6IHN0cmluZywgZGF0YTogYW55KSB7XHJcbiAgICBjb25zdCB1cmwgPSAnY29uc3VtZXIvY2FydC8nICsgY2FydFVpZCArICcvdXBkYXRlaXRlbXMnO1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZW1ldGEuaHR0cFB1dCh1cmwsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlQ2FydChjYXJ0VWlkOiBzdHJpbmcsIGRhdGE6IGFueSkge1xyXG4gICAgY29uc3QgdXJsID0gJ2NvbnN1bWVyL2NhcnQvdXBkYXRlLycgKyBjYXJ0VWlkO1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZW1ldGEuaHR0cFB1dCh1cmwsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tvdXRDYXJ0SXRlbXMoY2FydFVpZDogc3RyaW5nLCBkYXRhOiBhbnkpIHtcclxuICAgIGNvbnN0IHVybCA9ICdjb25zdW1lci9jYXJ0LycgKyBjYXJ0VWlkICsgJy9jaGVja291dCc7XHJcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlbWV0YS5odHRwUG9zdCh1cmwsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0T3JkZXJCeVVpZChvcmRlclVpZDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB1cmwgPSAnY29uc3VtZXIvc29yZGVyLycgKyBvcmRlclVpZDtcclxuICAgIHJldHVybiB0aGlzLnNlcnZpY2VtZXRhLmh0dHBHZXQodXJsLCBudWxsKTtcclxuICB9XHJcblxyXG4gIGdldFNvQ2F0YWxvZ0l0ZW1CeUlkKGFjY291bnRJZDogc3RyaW5nLCBpdGVtRW5jaWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgdXJsID0gJ2NvbnN1bWVyL3NvL2NhdGFsb2cvJyArIGFjY291bnRJZCArICcvaXRlbS8nICsgaXRlbUVuY2lkO1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZW1ldGEuaHR0cEdldCh1cmwsIG51bGwpO1xyXG4gIH1cclxuXHJcbiAgZ2V0SW52b2ljZUJ5T3JkZXJVaWQoYWNjb3VudElkOiBzdHJpbmcsIG9yZGVyVWlkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHVybCA9ICdjb25zdW1lci9zby9pbnZvaWNlLycgKyBhY2NvdW50SWQgKyAnL29yZGVyLycgKyBvcmRlclVpZCArICcvaW52b2ljZSc7XHJcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlbWV0YS5odHRwR2V0KHVybCwgbnVsbCk7XHJcbiAgfVxyXG5cclxuICBnZXRDb25zdW1lcmFkZHJlc3MoKSB7XHJcbiAgICBjb25zdCB1cmwgPSAnY29uc3VtZXIvZGVsaXZlcnlBZGRyZXNzJztcclxuICAgIHJldHVybiB0aGlzLnNlcnZpY2VtZXRhLmh0dHBHZXQodXJsKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUNvbnN1bWVyYWRkcmVzcyhkYXRhOiBhbnkpIHtcclxuICAgIGNvbnN0IHVybCA9ICdjb25zdW1lci9kZWxpdmVyeUFkZHJlc3MnO1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZW1ldGEuaHR0cFB1dCh1cmwsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgY29uc3VtZXJTb1BheW1lbnQoZGF0YTogYW55KSB7XHJcbiAgICBjb25zdCB1cmwgPSAnY29uc3VtZXIvc28vcGF5JztcclxuICAgIHJldHVybiB0aGlzLnNlcnZpY2VtZXRhLmh0dHBQb3N0KHVybCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBnZXRJdGVtQ2F0ZWdvcnkoYWNjb3VudElkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHVybCA9ICdjb25zdW1lci9zcGl0ZW0vc2V0dGluZ3MvJythY2NvdW50SWQgKyAnL2NhdGVnb3J5P3N0YXR1cy1lcT1FbmFibGUnO1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZW1ldGEuaHR0cEdldCh1cmwpO1xyXG4gIH1cclxuXHJcbiAgYXBwbHlDb3Vwb24oY2FydFVpZDogc3RyaW5nLCBkYXRhOiBhbnkpIHtcclxuICAgIGNvbnN0IHVybCA9ICdjb25zdW1lci9jYXJ0LycgKyBjYXJ0VWlkICsgJy9hcHBseS9wcm92aWRlcmNvdXBvbic7XHJcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlbWV0YS5odHRwUHV0KHVybCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBnZXRTb0NvdXBvbnMoY2F0YWxvZ0lkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHVybCA9ICdjb25zdW1lci9jYXJ0LycgKyBjYXRhbG9nSWQgKyAnL2dldC9wcm92aWRlcmNvdXBvbic7XHJcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlbWV0YS5odHRwR2V0KHVybCk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVDb3Vwb24oY2FydFVpZDogc3RyaW5nLCBkYXRhOiBhbnkpIHtcclxuICAgIGNvbnN0IHVybCA9ICdjb25zdW1lci9jYXJ0LycgKyBjYXJ0VWlkICsgJy9yZW1vdmUvcHJvdmlkZXJjb3Vwb24nO1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZW1ldGEuaHR0cFB1dCh1cmwsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgc2VhcmNoU3BJdGVtKGFjY291bnRJZDogYW55LCB2YWx1ZTogYW55KSB7XHJcbiAgICBjb25zdCB1cmwgPVxyXG4gICAgICB0aGlzLnNoYXJlZFNlcnZpY2UuZ2V0U0FQYXRoKCkgK2BzZWFyY2hkZXRhaWxzLyR7YWNjb3VudElkfS9zb3JkZXJjYXRhbG9nL2l0ZW0vc3VnZ2VzdGlvbi9zZWFyY2g/bmFtZT0ke3ZhbHVlfSpgO1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZW1ldGEuaHR0cEdldCh1cmwpO1xyXG4gIH1cclxuICBnZXRRbnJPcmRlcihpdGVtSWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgdXJsID0gJ2NvbnN1bWVyL3F1ZXN0aW9ubmFpcmUvc29yZGVyL2l0ZW0vJyArIGl0ZW1JZCArICcvT05MSU5FJztcclxuICAgIHJldHVybiB0aGlzLnNlcnZpY2VtZXRhLmh0dHBHZXQodXJsKTtcclxufVxyXG5cclxuc3VibWl0UW5yT3JkZXIoYm9keTogYW55LCB1dWlkOiBzdHJpbmcpIHtcclxuICBjb25zdCB1cmwgPSAnY29uc3VtZXIvc29yZGVyL3F1ZXN0aW9ubmFpcmUvc3VibWl0LycgKyB1dWlkIDtcclxuICByZXR1cm4gdGhpcy5zZXJ2aWNlbWV0YS5odHRwUG9zdCh1cmwsIGJvZHkpO1xyXG59XHJcbn1cclxuIl19
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2pjb25zdW1lci1zaGFyZWQvc3JjL2xpYi9vcmRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFPM0MsTUFBTSxPQUFPLFlBQVk7SUFHYjtJQUNBO0lBRlYsWUFDVSxXQUF3QixFQUN4QixhQUE0QjtRQUQ1QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtJQUNsQyxDQUFDO0lBRUwsU0FBUyxDQUFDLE1BQU0sR0FBRyxFQUFFO1FBQ25CLE1BQU0sR0FBRyxHQUFHLGdCQUFnQixDQUFDO1FBQzdCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsTUFBTSxHQUFHLEVBQUU7UUFDOUIsTUFBTSxHQUFHLEdBQUcsMEJBQTBCLENBQUM7UUFDdkMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxNQUFNLEdBQUcsRUFBRTtRQUNuQyxNQUFNLEdBQUcsR0FBRyxnQ0FBZ0MsQ0FBQztRQUM3QyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFTO1FBQ2xCLE1BQU0sR0FBRyxHQUFHLGVBQWUsQ0FBQztRQUM1QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM5QyxD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QUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFTLEVBQUUsSUFBWTtRQUNwQyxNQUFNLEdBQUcsR0FBRyx1Q0FBdUMsR0FBRyxJQUFJLENBQUM7UUFDM0QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUNELGtCQUFrQixDQUFDLE9BQU87UUFDeEIsTUFBTSxHQUFHLEdBQUcsa0JBQWtCLEdBQUcsT0FBTyxHQUFHLGlCQUFpQixDQUFDO1FBQzdELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUNELHdCQUF3QixDQUFDLFNBQVMsRUFBRSxRQUFRO1FBQzFDLE1BQU0sR0FBRyxHQUFHLHNCQUFzQixHQUFHLFNBQVMsR0FBRyxHQUFHLEdBQUcsUUFBUSxDQUFDO1FBQ2hFLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFDRCxTQUFTLENBQUMsTUFBTTtRQUNkLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFDRCw0QkFBNEIsQ0FBQyxTQUFTO1FBQ3BDLE1BQU0sR0FBRyxHQUFHLDJCQUEyQixHQUFHLFNBQVMsQ0FBQztRQUNwRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7d0dBdklVLFlBQVk7NEdBQVosWUFBWSxjQUZYLE1BQU07OzRGQUVQLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTaGFyZWRTZXJ2aWNlIH0gZnJvbSAnLi9zaGFyZWQuc2VydmljZSc7XHJcbmltcG9ydCB7IFNlcnZpY2VNZXRhIH0gZnJvbSAnLi9zZXJ2aWNlLW1ldGEnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgT3JkZXJTZXJ2aWNlIHtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHNlcnZpY2VtZXRhOiBTZXJ2aWNlTWV0YSxcclxuICAgIHByaXZhdGUgc2hhcmVkU2VydmljZTogU2hhcmVkU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIGdldFN0b3JlcyhmaWx0ZXIgPSB7fSkge1xyXG4gICAgY29uc3QgdXJsID0gJ2NvbnN1bWVyL3N0b3JlJztcclxuICAgIHJldHVybiB0aGlzLnNlcnZpY2VtZXRhLmh0dHBHZXQodXJsLCBudWxsLCBmaWx0ZXIpO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RvcmVDYXRhbG9nSXRlbXMoZmlsdGVyID0ge30pIHtcclxuICAgIGNvbnN0IHVybCA9ICdjb25zdW1lci9zby9jYXRhbG9nL2l0ZW0nO1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZW1ldGEuaHR0cEdldCh1cmwsIG51bGwsIGZpbHRlcik7XHJcbiAgfVxyXG5cclxuICBnZXRTdG9yZUNhdGFsb2dJdGVtc0NvdW50KGZpbHRlciA9IHt9KSB7XHJcbiAgICBjb25zdCB1cmwgPSAnY29uc3VtZXIvc28vY2F0YWxvZy9pdGVtL2NvdW50JztcclxuICAgIHJldHVybiB0aGlzLnNlcnZpY2VtZXRhLmh0dHBHZXQodXJsLCBudWxsLCBmaWx0ZXIpO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlQ2FydChkYXRhOiBhbnkpIHtcclxuICAgIGNvbnN0IHVybCA9ICdjb25zdW1lci9jYXJ0JztcclxuICAgIHJldHVybiB0aGlzLnNlcnZpY2VtZXRhLmh0dHBQb3N0KHVybCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBnZXRDYXJ0KGlkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHVybCA9ICdjb25zdW1lci9jYXJ0L3Byb2Nvbi8nICsgaWQ7XHJcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlbWV0YS5odHRwR2V0KHVybCwgbnVsbCk7XHJcbiAgfVxyXG5cclxuICBnZXRDYXJ0SXRlbXMoY2FydFVpZDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB1cmwgPSAnY29uc3VtZXIvY2FydC8nICsgY2FydFVpZCArICcvZ2V0aXRlbXMnO1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZW1ldGEuaHR0cEdldCh1cmwsIG51bGwpO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlSXRlbUZyb21DYXJ0KGl0ZW1VaWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgdXJsID0gJ2NvbnN1bWVyL2NhcnQvaXRlbS8nICsgaXRlbVVpZDtcclxuICAgIHJldHVybiB0aGlzLnNlcnZpY2VtZXRhLmh0dHBEZWxldGUodXJsLCBudWxsKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUNhcnRJdGVtcyhjYXJ0VWlkOiBzdHJpbmcsIGRhdGE6IGFueSkge1xyXG4gICAgY29uc3QgdXJsID0gJ2NvbnN1bWVyL2NhcnQvJyArIGNhcnRVaWQgKyAnL3VwZGF0ZWl0ZW1zJztcclxuICAgIHJldHVybiB0aGlzLnNlcnZpY2VtZXRhLmh0dHBQdXQodXJsLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUNhcnQoY2FydFVpZDogc3RyaW5nLCBkYXRhOiBhbnkpIHtcclxuICAgIGNvbnN0IHVybCA9ICdjb25zdW1lci9jYXJ0L3VwZGF0ZS8nICsgY2FydFVpZDtcclxuICAgIHJldHVybiB0aGlzLnNlcnZpY2VtZXRhLmh0dHBQdXQodXJsLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGNoZWNrb3V0Q2FydEl0ZW1zKGNhcnRVaWQ6IHN0cmluZywgZGF0YTogYW55KSB7XHJcbiAgICBjb25zdCB1cmwgPSAnY29uc3VtZXIvY2FydC8nICsgY2FydFVpZCArICcvY2hlY2tvdXQnO1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZW1ldGEuaHR0cFBvc3QodXJsLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldE9yZGVyQnlVaWQob3JkZXJVaWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgdXJsID0gJ2NvbnN1bWVyL3NvcmRlci8nICsgb3JkZXJVaWQ7XHJcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlbWV0YS5odHRwR2V0KHVybCwgbnVsbCk7XHJcbiAgfVxyXG5cclxuICBnZXRTb0NhdGFsb2dJdGVtQnlJZChhY2NvdW50SWQ6IHN0cmluZywgaXRlbUVuY2lkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHVybCA9ICdjb25zdW1lci9zby9jYXRhbG9nLycgKyBhY2NvdW50SWQgKyAnL2l0ZW0vJyArIGl0ZW1FbmNpZDtcclxuICAgIHJldHVybiB0aGlzLnNlcnZpY2VtZXRhLmh0dHBHZXQodXJsLCBudWxsKTtcclxuICB9XHJcblxyXG4gIGdldEludm9pY2VCeU9yZGVyVWlkKGFjY291bnRJZDogc3RyaW5nLCBvcmRlclVpZDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB1cmwgPSAnY29uc3VtZXIvc28vaW52b2ljZS8nICsgYWNjb3VudElkICsgJy9vcmRlci8nICsgb3JkZXJVaWQgKyAnL2ludm9pY2UnO1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZW1ldGEuaHR0cEdldCh1cmwsIG51bGwpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q29uc3VtZXJhZGRyZXNzKCkge1xyXG4gICAgY29uc3QgdXJsID0gJ2NvbnN1bWVyL2RlbGl2ZXJ5QWRkcmVzcyc7XHJcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlbWV0YS5odHRwR2V0KHVybCk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVDb25zdW1lcmFkZHJlc3MoZGF0YTogYW55KSB7XHJcbiAgICBjb25zdCB1cmwgPSAnY29uc3VtZXIvZGVsaXZlcnlBZGRyZXNzJztcclxuICAgIHJldHVybiB0aGlzLnNlcnZpY2VtZXRhLmh0dHBQdXQodXJsLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGNvbnN1bWVyU29QYXltZW50KGRhdGE6IGFueSkge1xyXG4gICAgY29uc3QgdXJsID0gJ2NvbnN1bWVyL3NvL3BheSc7XHJcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlbWV0YS5odHRwUG9zdCh1cmwsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0SXRlbUNhdGVnb3J5KGFjY291bnRJZDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB1cmwgPSAnY29uc3VtZXIvc3BpdGVtL3NldHRpbmdzLycgKyBhY2NvdW50SWQgKyAnL2NhdGVnb3J5P3N0YXR1cy1lcT1FbmFibGUnO1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZW1ldGEuaHR0cEdldCh1cmwpO1xyXG4gIH1cclxuXHJcbiAgYXBwbHlDb3Vwb24oY2FydFVpZDogc3RyaW5nLCBkYXRhOiBhbnkpIHtcclxuICAgIGNvbnN0IHVybCA9ICdjb25zdW1lci9jYXJ0LycgKyBjYXJ0VWlkICsgJy9hcHBseS9wcm92aWRlcmNvdXBvbic7XHJcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlbWV0YS5odHRwUHV0KHVybCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBnZXRTb0NvdXBvbnMoY2F0YWxvZ0lkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHVybCA9ICdjb25zdW1lci9jYXJ0LycgKyBjYXRhbG9nSWQgKyAnL2dldC9wcm92aWRlcmNvdXBvbic7XHJcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlbWV0YS5odHRwR2V0KHVybCk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVDb3Vwb24oY2FydFVpZDogc3RyaW5nLCBkYXRhOiBhbnkpIHtcclxuICAgIGNvbnN0IHVybCA9ICdjb25zdW1lci9jYXJ0LycgKyBjYXJ0VWlkICsgJy9yZW1vdmUvcHJvdmlkZXJjb3Vwb24nO1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZW1ldGEuaHR0cFB1dCh1cmwsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgc2VhcmNoU3BJdGVtKGFjY291bnRJZDogYW55LCB2YWx1ZTogYW55KSB7XHJcbiAgICBjb25zdCB1cmwgPVxyXG4gICAgICB0aGlzLnNoYXJlZFNlcnZpY2UuZ2V0U0FQYXRoKCkgKyBgc2VhcmNoZGV0YWlscy8ke2FjY291bnRJZH0vc29yZGVyY2F0YWxvZy9pdGVtL3N1Z2dlc3Rpb24vc2VhcmNoP25hbWU9JHt2YWx1ZX0qYDtcclxuICAgIHJldHVybiB0aGlzLnNlcnZpY2VtZXRhLmh0dHBHZXQodXJsKTtcclxuICB9XHJcbiAgZ2V0UW5yT3JkZXIoaXRlbUlkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHVybCA9ICdjb25zdW1lci9xdWVzdGlvbm5haXJlL3NvcmRlci9pdGVtLycgKyBpdGVtSWQgKyAnL09OTElORSc7XHJcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlbWV0YS5odHRwR2V0KHVybCk7XHJcbiAgfVxyXG5cclxuICBzdWJtaXRRbnJPcmRlcihib2R5OiBhbnksIHV1aWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgdXJsID0gJ2NvbnN1bWVyL3NvcmRlci9xdWVzdGlvbm5haXJlL3N1Ym1pdC8nICsgdXVpZDtcclxuICAgIHJldHVybiB0aGlzLnNlcnZpY2VtZXRhLmh0dHBQb3N0KHVybCwgYm9keSk7XHJcbiAgfVxyXG4gIGdldFNoaXBtZW50RGV0YWlscyhvcmRlcklkKSB7XHJcbiAgICBjb25zdCB1cmwgPSAnY29uc3VtZXIvc29yZGVyLycgKyBvcmRlcklkICsgJy9zaGlwbWVudC90cmFjayc7XHJcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlbWV0YS5odHRwUHV0KHVybCk7XHJcbiAgfVxyXG4gIGdldEludm9pY2VCeU9yZGVyWW53dXVpZChhY2NvdW50SWQsIG9yZGVyVWlkKSB7XHJcbiAgICBjb25zdCB1cmwgPSAnY29uc3VtZXIvc28vaW52b2ljZS8nICsgYWNjb3VudElkICsgJy8nICsgb3JkZXJVaWQ7XHJcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlbWV0YS5odHRwR2V0KHVybCwgbnVsbCk7XHJcbiAgfVxyXG4gIGdldE9yZGVycyhmaWx0ZXIpIHtcclxuICAgIHJldHVybiB0aGlzLnNlcnZpY2VtZXRhLmh0dHBHZXQoJ2NvbnN1bWVyL3NvcmRlcicsIG51bGwsIGZpbHRlcik7XHJcbiAgfVxyXG4gIGdldFJlcXVpcmVPVFBGb3JBZGRpbmdUb0NhcnQoYWNjb3VudElkKSB7XHJcbiAgICBjb25zdCB1cmwgPSAnY29uc3VtZXIvc29yZGVyL3NldHRpbmdzLycgKyBhY2NvdW50SWQ7XHJcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlbWV0YS5odHRwR2V0KHVybCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,35 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../shared.service";
4
+ import * as i2 from "@angular/common";
5
+ import * as i3 from "@angular/material/radio";
6
+ export class PaymentModesComponent {
7
+ sharedService;
8
+ cashPay;
9
+ paymentModes;
10
+ modeSelected = new EventEmitter();
11
+ constructor(sharedService) {
12
+ this.sharedService = sharedService;
13
+ }
14
+ ngOnInit() {
15
+ }
16
+ getImageSrc(mode) {
17
+ return this.sharedService.getCDNPath() + 'assets/images/payment-modes/' + mode + '.png';
18
+ }
19
+ paymentModeSelected(event) {
20
+ this.modeSelected.emit(event);
21
+ }
22
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PaymentModesComponent, deps: [{ token: i1.SharedService }], target: i0.ɵɵFactoryTarget.Component });
23
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PaymentModesComponent, selector: "app-payment-modes", inputs: { cashPay: "cashPay", paymentModes: "paymentModes" }, outputs: { modeSelected: "modeSelected" }, ngImport: i0, template: "<mat-radio-group class=\"text-center mx-auto payment-mode-fw\" name=\"paymentMode\" (change)=\"paymentModeSelected($event)\">\r\n <div *ngFor=\"let modes of paymentModes\">\r\n <mat-radio-button class=\"pay-rad mt-1 ml-auto\" [value]=\"modes.mode\" >\r\n <div>\r\n <div>\r\n <img class=\"pay-icons\" [src]=\"getImageSrc(modes.mode)\" alt=\"\">\r\n </div>\r\n <div class=\"modeName\">\r\n <div *ngIf=\"modes.modeDisplayName === 'UPI'\"> \r\n <div>{{modes.modeDisplayName |uppercase }}</div>\r\n </div>\r\n <div *ngIf=\"modes.modeDisplayName === 'Credit Card'\">\r\n <div>{{modes.modeDisplayName |uppercase }}</div>\r\n </div>\r\n <div *ngIf=\"modes.modeDisplayName === 'Debit Card'\">\r\n <div> {{modes.modeDisplayName |uppercase }}</div>\r\n </div>\r\n <div *ngIf=\"modes.modeDisplayName === 'Net Banking'\">\r\n <div> {{modes.modeDisplayName |uppercase }}</div>\r\n </div>\r\n <div *ngIf=\"modes.modeDisplayName === 'Wallet'\">\r\n <div> {{modes.modeDisplayName |uppercase }} </div>\r\n </div>\r\n <div *ngIf=\"modes.mode === 'PAYLATER'\">\r\n <div> {{modes.modeDisplayName |uppercase }} </div>\r\n </div> \r\n </div>\r\n </div>\r\n </mat-radio-button> \r\n </div>\r\n <div>\r\n <mat-radio-button class=\"pay-rad mt-1 ml-auto\" [value]=\"'cash'\" *ngIf=\"cashPay\">\r\n <div class=\"clearfix\"></div>\r\n <div class=\"col-12 p-0 pay-mode \">\r\n <div class=\"d-flex\">\r\n <img class=\"pay-icons\" [src]=\"getImageSrc('PAYCASH')\" alt=\"\">\r\n </div>\r\n <div class=\"col-12 p-0 text-center\">\r\n Pay by Cash\r\n </div>\r\n </div>\r\n </mat-radio-button>\r\n </div>\r\n</mat-radio-group>", styles: [".pay-rad{width:26.5%;height:100px;float:left;border:1px solid #ddd;border-radius:10px;margin:5px;font-size:10px}.pay-icons{height:50px;object-fit:scale-down!important;margin-top:5px;width:100%}::ng-deep mat-radio-button.pay-rad .mat-mdc-radio-checked{box-shadow:0 4px 8px #0000001a,0 6px 20px #0000!important;background:#f1ffff!important;border:1.25px solid #45C3D3!important;border-radius:5px!important}@media (max-width: 768px){.pay-rad{width:30%;height:100%}}@media (min-width: 768px) and (max-width: 856px){.pay-rad{width:30%;height:120px}}.font-weight-normal{font-weight:400!important}@media (max-width: 768px){.font-weight-normal{font-weight:400!important;font-size:13px!important}}::ng-deep .pay-rad .mat-radio-outer-circle,::ng-deep .pay-rad .mat-radio-inner-circle{height:15px!important;width:15px!important}::ng-deep .pay-rad .mat-radio-label{display:block!important}::ng-deep .pay-rad .mat-radio-container{display:block!important;top:5px!important;right:5px;float:right}.modeName{font-size:12px;font-weight:600}::ng-deep .payment-mode-fw .mdc-form-field{flex-direction:row-reverse}@media (max-width: 575px){::ng-deep .payment-mode-fw mat-radio-button.pay-rad .mdc-form-field{flex-direction:column!important}.pay-icons{margin-top:-5px!important}}@media (max-width: 575px){::ng-deep .payment-mode-fw .mat-mdc-radio-button .mdc-radio{margin-right:-70px!important}}@media (min-width: 576px) and (max-width: 767px){::ng-deep .payment-mode-fw .mat-mdc-radio-button .mdc-radio{margin-right:-35px!important}}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i3.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "pipe", type: i2.UpperCasePipe, name: "uppercase" }] });
24
+ }
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PaymentModesComponent, decorators: [{
26
+ type: Component,
27
+ args: [{ selector: 'app-payment-modes', template: "<mat-radio-group class=\"text-center mx-auto payment-mode-fw\" name=\"paymentMode\" (change)=\"paymentModeSelected($event)\">\r\n <div *ngFor=\"let modes of paymentModes\">\r\n <mat-radio-button class=\"pay-rad mt-1 ml-auto\" [value]=\"modes.mode\" >\r\n <div>\r\n <div>\r\n <img class=\"pay-icons\" [src]=\"getImageSrc(modes.mode)\" alt=\"\">\r\n </div>\r\n <div class=\"modeName\">\r\n <div *ngIf=\"modes.modeDisplayName === 'UPI'\"> \r\n <div>{{modes.modeDisplayName |uppercase }}</div>\r\n </div>\r\n <div *ngIf=\"modes.modeDisplayName === 'Credit Card'\">\r\n <div>{{modes.modeDisplayName |uppercase }}</div>\r\n </div>\r\n <div *ngIf=\"modes.modeDisplayName === 'Debit Card'\">\r\n <div> {{modes.modeDisplayName |uppercase }}</div>\r\n </div>\r\n <div *ngIf=\"modes.modeDisplayName === 'Net Banking'\">\r\n <div> {{modes.modeDisplayName |uppercase }}</div>\r\n </div>\r\n <div *ngIf=\"modes.modeDisplayName === 'Wallet'\">\r\n <div> {{modes.modeDisplayName |uppercase }} </div>\r\n </div>\r\n <div *ngIf=\"modes.mode === 'PAYLATER'\">\r\n <div> {{modes.modeDisplayName |uppercase }} </div>\r\n </div> \r\n </div>\r\n </div>\r\n </mat-radio-button> \r\n </div>\r\n <div>\r\n <mat-radio-button class=\"pay-rad mt-1 ml-auto\" [value]=\"'cash'\" *ngIf=\"cashPay\">\r\n <div class=\"clearfix\"></div>\r\n <div class=\"col-12 p-0 pay-mode \">\r\n <div class=\"d-flex\">\r\n <img class=\"pay-icons\" [src]=\"getImageSrc('PAYCASH')\" alt=\"\">\r\n </div>\r\n <div class=\"col-12 p-0 text-center\">\r\n Pay by Cash\r\n </div>\r\n </div>\r\n </mat-radio-button>\r\n </div>\r\n</mat-radio-group>", styles: [".pay-rad{width:26.5%;height:100px;float:left;border:1px solid #ddd;border-radius:10px;margin:5px;font-size:10px}.pay-icons{height:50px;object-fit:scale-down!important;margin-top:5px;width:100%}::ng-deep mat-radio-button.pay-rad .mat-mdc-radio-checked{box-shadow:0 4px 8px #0000001a,0 6px 20px #0000!important;background:#f1ffff!important;border:1.25px solid #45C3D3!important;border-radius:5px!important}@media (max-width: 768px){.pay-rad{width:30%;height:100%}}@media (min-width: 768px) and (max-width: 856px){.pay-rad{width:30%;height:120px}}.font-weight-normal{font-weight:400!important}@media (max-width: 768px){.font-weight-normal{font-weight:400!important;font-size:13px!important}}::ng-deep .pay-rad .mat-radio-outer-circle,::ng-deep .pay-rad .mat-radio-inner-circle{height:15px!important;width:15px!important}::ng-deep .pay-rad .mat-radio-label{display:block!important}::ng-deep .pay-rad .mat-radio-container{display:block!important;top:5px!important;right:5px;float:right}.modeName{font-size:12px;font-weight:600}::ng-deep .payment-mode-fw .mdc-form-field{flex-direction:row-reverse}@media (max-width: 575px){::ng-deep .payment-mode-fw mat-radio-button.pay-rad .mdc-form-field{flex-direction:column!important}.pay-icons{margin-top:-5px!important}}@media (max-width: 575px){::ng-deep .payment-mode-fw .mat-mdc-radio-button .mdc-radio{margin-right:-70px!important}}@media (min-width: 576px) and (max-width: 767px){::ng-deep .payment-mode-fw .mat-mdc-radio-button .mdc-radio{margin-right:-35px!important}}\n"] }]
28
+ }], ctorParameters: () => [{ type: i1.SharedService }], propDecorators: { cashPay: [{
29
+ type: Input
30
+ }], paymentModes: [{
31
+ type: Input
32
+ }], modeSelected: [{
33
+ type: Output
34
+ }] } });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC1tb2Rlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9qY29uc3VtZXItc2hhcmVkL3NyYy9saWIvcGF5bWVudC9tb2Rlcy9wYXltZW50LW1vZGVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2pjb25zdW1lci1zaGFyZWQvc3JjL2xpYi9wYXltZW50L21vZGVzL3BheW1lbnQtbW9kZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFRL0UsTUFBTSxPQUFPLHFCQUFxQjtJQU1aO0lBSlgsT0FBTyxDQUFDO0lBQ1IsWUFBWSxDQUFDO0lBQ1osWUFBWSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFFakQsWUFBb0IsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7SUFBSSxDQUFDO0lBRXJELFFBQVE7SUFDUixDQUFDO0lBRUQsV0FBVyxDQUFDLElBQUk7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLEdBQUcsOEJBQThCLEdBQUcsSUFBSSxHQUFHLE1BQU0sQ0FBQztJQUMxRixDQUFDO0lBRUQsbUJBQW1CLENBQUMsS0FBSztRQUN2QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO3dHQWpCVSxxQkFBcUI7NEZBQXJCLHFCQUFxQixrS0NSbEMsZ3VFQTJDa0I7OzRGRG5DTCxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UsbUJBQW1CO2tGQU1wQixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDSSxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTaGFyZWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtcGF5bWVudC1tb2RlcycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3BheW1lbnQtbW9kZXMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3BheW1lbnQtbW9kZXMuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQYXltZW50TW9kZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKSBjYXNoUGF5O1xyXG4gIEBJbnB1dCgpIHBheW1lbnRNb2RlcztcclxuICBAT3V0cHV0KCkgbW9kZVNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2hhcmVkU2VydmljZTogU2hhcmVkU2VydmljZSkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgZ2V0SW1hZ2VTcmMobW9kZSkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2hhcmVkU2VydmljZS5nZXRDRE5QYXRoKCkgKyAnYXNzZXRzL2ltYWdlcy9wYXltZW50LW1vZGVzLycgKyBtb2RlICsgJy5wbmcnO1xyXG4gIH1cclxuXHJcbiAgcGF5bWVudE1vZGVTZWxlY3RlZChldmVudCkge1xyXG4gICAgdGhpcy5tb2RlU2VsZWN0ZWQuZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8bWF0LXJhZGlvLWdyb3VwIGNsYXNzPVwidGV4dC1jZW50ZXIgbXgtYXV0byBwYXltZW50LW1vZGUtZndcIiBuYW1lPVwicGF5bWVudE1vZGVcIiAoY2hhbmdlKT1cInBheW1lbnRNb2RlU2VsZWN0ZWQoJGV2ZW50KVwiPlxyXG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgbW9kZXMgb2YgcGF5bWVudE1vZGVzXCI+XHJcbiAgICAgICAgPG1hdC1yYWRpby1idXR0b24gY2xhc3M9XCJwYXktcmFkIG10LTEgbWwtYXV0b1wiIFt2YWx1ZV09XCJtb2Rlcy5tb2RlXCIgPlxyXG4gICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwicGF5LWljb25zXCIgW3NyY109XCJnZXRJbWFnZVNyYyhtb2Rlcy5tb2RlKVwiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kZU5hbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibW9kZXMubW9kZURpc3BsYXlOYW1lID09PSAnVVBJJ1wiPiAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj57e21vZGVzLm1vZGVEaXNwbGF5TmFtZSB8dXBwZXJjYXNlIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1vZGVzLm1vZGVEaXNwbGF5TmFtZSA9PT0gJ0NyZWRpdCBDYXJkJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2Pnt7bW9kZXMubW9kZURpc3BsYXlOYW1lIHx1cHBlcmNhc2UgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibW9kZXMubW9kZURpc3BsYXlOYW1lID09PSAnRGViaXQgQ2FyZCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PiB7e21vZGVzLm1vZGVEaXNwbGF5TmFtZSB8dXBwZXJjYXNlIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1vZGVzLm1vZGVEaXNwbGF5TmFtZSA9PT0gJ05ldCBCYW5raW5nJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgIDxkaXY+IHt7bW9kZXMubW9kZURpc3BsYXlOYW1lIHx1cHBlcmNhc2UgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibW9kZXMubW9kZURpc3BsYXlOYW1lID09PSAnV2FsbGV0J1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgIDxkaXY+IHt7bW9kZXMubW9kZURpc3BsYXlOYW1lIHx1cHBlcmNhc2UgfX0gPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1vZGVzLm1vZGUgPT09ICdQQVlMQVRFUidcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PiB7e21vZGVzLm1vZGVEaXNwbGF5TmFtZSB8dXBwZXJjYXNlIH19IDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L21hdC1yYWRpby1idXR0b24+ICAgICAgICBcclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdj5cclxuICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBjbGFzcz1cInBheS1yYWQgbXQtMSBtbC1hdXRvXCIgW3ZhbHVlXT1cIidjYXNoJ1wiICpuZ0lmPVwiY2FzaFBheVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2xlYXJmaXhcIj48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBwLTAgcGF5LW1vZGUgXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cInBheS1pY29uc1wiIFtzcmNdPVwiZ2V0SW1hZ2VTcmMoJ1BBWUNBU0gnKVwiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIHAtMCB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIFBheSBieSBDYXNoXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbjwvbWF0LXJhZGlvLWdyb3VwPiJdfQ==
@@ -0,0 +1,24 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { MatRadioModule } from '@angular/material/radio';
4
+ import { PaymentModesComponent } from './payment-modes.component';
5
+ import * as i0 from "@angular/core";
6
+ export class PaymentModesModule {
7
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PaymentModesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: PaymentModesModule, declarations: [PaymentModesComponent], imports: [CommonModule,
9
+ MatRadioModule], exports: [PaymentModesComponent] });
10
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PaymentModesModule, imports: [CommonModule,
11
+ MatRadioModule] });
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PaymentModesModule, decorators: [{
14
+ type: NgModule,
15
+ args: [{
16
+ declarations: [PaymentModesComponent],
17
+ exports: [PaymentModesComponent],
18
+ imports: [
19
+ CommonModule,
20
+ MatRadioModule
21
+ ]
22
+ }]
23
+ }] });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC1tb2Rlcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9qY29uc3VtZXItc2hhcmVkL3NyYy9saWIvcGF5bWVudC9tb2Rlcy9wYXltZW50LW1vZGVzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBVWxFLE1BQU0sT0FBTyxrQkFBa0I7d0dBQWxCLGtCQUFrQjt5R0FBbEIsa0JBQWtCLGlCQVBkLHFCQUFxQixhQUdsQyxZQUFZO1lBQ1osY0FBYyxhQUhOLHFCQUFxQjt5R0FNcEIsa0JBQWtCLFlBSjNCLFlBQVk7WUFDWixjQUFjOzs0RkFHTCxrQkFBa0I7a0JBUjlCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMscUJBQXFCLENBQUM7b0JBQ3JDLE9BQU8sRUFBRSxDQUFDLHFCQUFxQixDQUFDO29CQUNoQyxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixjQUFjO3FCQUNmO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTWF0UmFkaW9Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbyc7XHJcbmltcG9ydCB7IFBheW1lbnRNb2Rlc0NvbXBvbmVudCB9IGZyb20gJy4vcGF5bWVudC1tb2Rlcy5jb21wb25lbnQnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtQYXltZW50TW9kZXNDb21wb25lbnRdLFxyXG4gIGV4cG9ydHM6IFtQYXltZW50TW9kZXNDb21wb25lbnRdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIE1hdFJhZGlvTW9kdWxlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGF5bWVudE1vZGVzTW9kdWxlIHt9XHJcbiJdfQ==
@@ -0,0 +1,26 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { PaytmService } from '../paytm.service';
4
+ import { RazorpayService } from '../razorpay.service';
5
+ import * as i0 from "@angular/core";
6
+ export class PaymentsModule {
7
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PaymentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: PaymentsModule, imports: [CommonModule] });
9
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PaymentsModule, providers: [
10
+ PaytmService,
11
+ RazorpayService
12
+ ], imports: [CommonModule] });
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PaymentsModule, decorators: [{
15
+ type: NgModule,
16
+ args: [{
17
+ declarations: [],
18
+ imports: [CommonModule],
19
+ exports: [],
20
+ providers: [
21
+ PaytmService,
22
+ RazorpayService
23
+ ]
24
+ }]
25
+ }] });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9qY29uc3VtZXItc2hhcmVkL3NyYy9saWIvcGF5bWVudC9wYXltZW50Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQWF0RCxNQUFNLE9BQU8sY0FBYzt3R0FBZCxjQUFjO3lHQUFkLGNBQWMsWUFQZCxZQUFZO3lHQU9aLGNBQWMsYUFMZDtZQUNULFlBQVk7WUFDWixlQUFlO1NBQ2hCLFlBTFUsWUFBWTs7NEZBT1osY0FBYztrQkFUMUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsRUFBRTtvQkFDaEIsT0FBTyxFQUFFLENBQUUsWUFBWSxDQUFFO29CQUN6QixPQUFPLEVBQUUsRUFBRTtvQkFDWCxTQUFTLEVBQUU7d0JBQ1QsWUFBWTt3QkFDWixlQUFlO3FCQUNoQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFBheXRtU2VydmljZSB9IGZyb20gJy4uL3BheXRtLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSYXpvcnBheVNlcnZpY2UgfSBmcm9tICcuLi9yYXpvcnBheS5zZXJ2aWNlJztcclxuXHJcblxyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtdLFxyXG4gIGltcG9ydHM6IFsgQ29tbW9uTW9kdWxlIF0sXHJcbiAgZXhwb3J0czogW10sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBQYXl0bVNlcnZpY2UsXHJcbiAgICBSYXpvcnBheVNlcnZpY2VcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQYXltZW50c01vZHVsZSB7IH1cclxuIl19
@@ -0,0 +1,131 @@
1
+ import { Injectable } from "@angular/core";
2
+ import { projectConstantsLocal } from "./project-constants";
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./service-meta";
5
+ export class PaytmService {
6
+ servicemeta;
7
+ paymentModes = [
8
+ 'NB', 'CC', 'DC', 'UPI', 'PPI', 'CARD'
9
+ ];
10
+ constructor(servicemeta) {
11
+ this.servicemeta = servicemeta;
12
+ }
13
+ initializePayment(pData, accountId, referrer) {
14
+ let response = JSON.parse(pData.response);
15
+ if (pData.paymentMode === 'CC' || pData.paymentMode === 'DC') {
16
+ pData.paymentMode = 'CARD';
17
+ }
18
+ const paymentModesHidden = this.paymentModes.filter(obj => obj !== pData.paymentMode);
19
+ const paytm_payload = {
20
+ "paymentId": pData.txnid,
21
+ "orderId": pData.orderId,
22
+ "siganature": response.signature
23
+ };
24
+ console.log('response' + JSON.stringify(response));
25
+ this.loadPayTMScript(pData, referrer).onload = () => {
26
+ var config = {
27
+ "root": "",
28
+ "flow": "DEFAULT",
29
+ "data": {
30
+ "orderId": pData.orderId, /* update order id */
31
+ "token": response.body.txnToken, /* update token value */
32
+ "tokenType": "TXN_TOKEN",
33
+ "amount": pData.amount
34
+ },
35
+ "merchant": {
36
+ "mid": pData.merchantId,
37
+ "redirect": false,
38
+ "multipleWindowWebview": true
39
+ },
40
+ "payMode": {
41
+ "filter": {
42
+ 'exclude': paymentModesHidden
43
+ }
44
+ },
45
+ "handler": {
46
+ "notifyMerchant": function (eventName, data) {
47
+ console.log("notifyMerchant handler function called");
48
+ console.log("eventName => ", eventName);
49
+ console.log("data => ", data);
50
+ referrer.closeloading();
51
+ },
52
+ "transactionStatus": function (data) {
53
+ console.log("payment status ", data);
54
+ console.log(paytm_payload);
55
+ window['Paytm'].CheckoutJS.close();
56
+ if (data) {
57
+ referrer.transactionCompleted(data, paytm_payload, accountId);
58
+ }
59
+ else {
60
+ referrer.transactionCompleted({ STATUS: 'TXN_SUCCESS' }, paytm_payload, accountId);
61
+ }
62
+ }
63
+ }
64
+ };
65
+ console.log(JSON.stringify(config));
66
+ if (window['Paytm'] && window['Paytm'].CheckoutJS) {
67
+ window['Paytm'].CheckoutJS.onLoad(function excecuteAfterCompleteLoad() {
68
+ // initialze configuration using init method
69
+ window['Paytm'].CheckoutJS.init(config).then(function onSuccess() {
70
+ // after successfully updating configuration, invoke JS Checkout
71
+ window['Paytm'].CheckoutJS.invoke();
72
+ }).catch(function onError(error) {
73
+ console.log("error => ", error);
74
+ window['Paytm'].CheckoutJS.close();
75
+ referrer.closeloading();
76
+ });
77
+ });
78
+ }
79
+ };
80
+ setTimeout(() => {
81
+ window['Paytm'].CheckoutJS.close();
82
+ referrer.closeloading();
83
+ }, 600000);
84
+ }
85
+ loadPayTMScript(pData, isfrom) {
86
+ let payTmurl;
87
+ if (pData.paymentEnv == 'production') {
88
+ payTmurl = projectConstantsLocal.PAYTM_URL;
89
+ }
90
+ else {
91
+ payTmurl = projectConstantsLocal.PAYTMLOCAL_URL;
92
+ }
93
+ const url = payTmurl + '/merchantpgpui/checkoutjs/merchants/' + pData.merchantId + '.js';
94
+ console.log('preparing to load...');
95
+ let script = document.createElement('script');
96
+ script.id = pData.orderId;
97
+ script.src = url;
98
+ script.type = 'text/javascript';
99
+ script.async = true;
100
+ script['crossorigin'] = "anonymous";
101
+ // node.charset = 'utf-8';
102
+ // this.renderer.appendChild(document.body, script);
103
+ console.log(isfrom.paytmview);
104
+ // document.getElementById('consumer_donation').appendChild(script);
105
+ isfrom.paytmview.nativeElement.appendChild(script);
106
+ return script;
107
+ }
108
+ updateResult(payload, accountId) {
109
+ let url = 'provider/payment/paytm/update';
110
+ if (accountId) {
111
+ url += '?account=' + accountId;
112
+ }
113
+ return this.servicemeta.httpPost(url, payload);
114
+ }
115
+ updatePaytmPay(payload, accountId) {
116
+ const self = this;
117
+ return new Promise((resolve, reject) => {
118
+ self.updateResult(payload, accountId).subscribe((result) => {
119
+ resolve(result);
120
+ }, (error) => {
121
+ reject(false);
122
+ });
123
+ });
124
+ }
125
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PaytmService, deps: [{ token: i1.ServiceMeta }], target: i0.ɵɵFactoryTarget.Injectable });
126
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PaytmService });
127
+ }
128
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PaytmService, decorators: [{
129
+ type: Injectable
130
+ }], ctorParameters: () => [{ type: i1.ServiceMeta }] });
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5dG0uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2pjb25zdW1lci1zaGFyZWQvc3JjL2xpYi9wYXl0bS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQUk1RCxNQUFNLE9BQU8sWUFBWTtJQUtUO0lBSlosWUFBWSxHQUFHO1FBQ1gsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNO0tBQ3pDLENBQUM7SUFDRixZQUNZLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO0lBQ2hDLENBQUM7SUFDTCxpQkFBaUIsQ0FBQyxLQUFVLEVBQUUsU0FBYyxFQUFFLFFBQWE7UUFDdkQsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDMUMsSUFBSSxLQUFLLENBQUMsV0FBVyxLQUFLLElBQUksSUFBSSxLQUFLLENBQUMsV0FBVyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQzNELEtBQUssQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDO1FBQy9CLENBQUM7UUFDRCxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN0RixNQUFNLGFBQWEsR0FBRztZQUNsQixXQUFXLEVBQUUsS0FBSyxDQUFDLEtBQUs7WUFDeEIsU0FBUyxFQUFFLEtBQUssQ0FBQyxPQUFPO1lBQ3hCLFlBQVksRUFBRSxRQUFRLENBQUMsU0FBUztTQUVuQyxDQUFDO1FBQ0YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFV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bkQsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUNELFlBQVksQ0FBQyxPQUFZLEVBQUUsU0FBZTtRQUN0QyxJQUFJLEdBQUcsR0FBRywrQkFBK0IsQ0FBQztRQUMxQyxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ1osR0FBRyxJQUFJLFdBQVcsR0FBRyxTQUFTLENBQUM7UUFDbkMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxjQUFjLENBQUMsT0FBWSxFQUFFLFNBQWU7UUFDeEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDbkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUU7Z0JBQzVELE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNwQixDQUFDLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRTtnQkFDZCxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEIsQ0FBQyxDQUFDLENBQUE7UUFDTixDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7d0dBeEhRLFlBQVk7NEdBQVosWUFBWTs7NEZBQVosWUFBWTtrQkFEeEIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBTZXJ2aWNlTWV0YSB9IGZyb20gXCIuL3NlcnZpY2UtbWV0YVwiO1xyXG5pbXBvcnQgeyBwcm9qZWN0Q29uc3RhbnRzTG9jYWwgfSBmcm9tIFwiLi9wcm9qZWN0LWNvbnN0YW50c1wiO1xyXG5cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFBheXRtU2VydmljZSB7XHJcbiAgICBwYXltZW50TW9kZXMgPSBbXHJcbiAgICAgICAgJ05CJywgJ0NDJywgJ0RDJywgJ1VQSScsICdQUEknLCAnQ0FSRCdcclxuICAgIF07XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIHNlcnZpY2VtZXRhOiBTZXJ2aWNlTWV0YVxyXG4gICAgKSB7IH1cclxuICAgIGluaXRpYWxpemVQYXltZW50KHBEYXRhOiBhbnksIGFjY291bnRJZDogYW55LCByZWZlcnJlcjogYW55KSB7XHJcbiAgICAgICAgbGV0IHJlc3BvbnNlID0gSlNPTi5wYXJzZShwRGF0YS5yZXNwb25zZSk7XHJcbiAgICAgICAgaWYgKHBEYXRhLnBheW1lbnRNb2RlID09PSAnQ0MnIHx8IHBEYXRhLnBheW1lbnRNb2RlID09PSAnREMnKSB7XHJcbiAgICAgICAgICAgIHBEYXRhLnBheW1lbnRNb2RlID0gJ0NBUkQnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBwYXltZW50TW9kZXNIaWRkZW4gPSB0aGlzLnBheW1lbnRNb2Rlcy5maWx0ZXIob2JqID0+IG9iaiAhPT0gcERhdGEucGF5bWVudE1vZGUpO1xyXG4gICAgICAgIGNvbnN0IHBheXRtX3BheWxvYWQgPSB7XHJcbiAgICAgICAgICAgIFwicGF5bWVudElkXCI6IHBEYXRhLnR4bmlkLFxyXG4gICAgICAgICAgICBcIm9yZGVySWRcIjogcERhdGEub3JkZXJJZCxcclxuICAgICAgICAgICAgXCJzaWdhbmF0dXJlXCI6IHJlc3BvbnNlLnNpZ25hdHVyZVxyXG5cclxuICAgICAgICB9O1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdyZXNwb25zZScgKyBKU09OLnN0cmluZ2lmeShyZXNwb25zZSkpO1xyXG4gICAgICAgIHRoaXMubG9hZFBheVRNU2NyaXB0KHBEYXRhLCByZWZlcnJlcikub25sb2FkID0gKCkgPT4ge1xyXG4gICAgICAgICAgICB2YXIgY29uZmlnID0ge1xyXG4gICAgICAgICAgICAgICAgXCJyb290XCI6IFwiXCIsXHJcbiAgICAgICAgICAgICAgICBcImZsb3dcIjogXCJERUZBVUxUXCIsXHJcbiAgICAgICAgICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgICAgICAgICAgIFwib3JkZXJJZFwiOiBwRGF0YS5vcmRlcklkLCAvKiB1cGRhdGUgb3JkZXIgaWQgKi9cclxuICAgICAgICAgICAgICAgICAgICBcInRva2VuXCI6IHJlc3BvbnNlLmJvZHkudHhuVG9rZW4sIC8qIHVwZGF0ZSB0b2tlbiB2YWx1ZSAqL1xyXG4gICAgICAgICAgICAgICAgICAgIFwidG9rZW5UeXBlXCI6IFwiVFhOX1RPS0VOXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgXCJhbW91bnRcIjogcERhdGEuYW1vdW50XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgXCJtZXJjaGFudFwiOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgXCJtaWRcIjogcERhdGEubWVyY2hhbnRJZCxcclxuICAgICAgICAgICAgICAgICAgICBcInJlZGlyZWN0XCI6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgIFwibXVsdGlwbGVXaW5kb3dXZWJ2aWV3XCI6IHRydWVcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBcInBheU1vZGVcIjoge1xyXG4gICAgICAgICAgICAgICAgICAgIFwiZmlsdGVyXCI6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ2V4Y2x1ZGUnOiBwYXltZW50TW9kZXNIaWRkZW5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgXCJoYW5kbGVyXCI6IHtcclxuICAgICAgICAgICAgICAgICAgICBcIm5vdGlmeU1lcmNoYW50XCI6IGZ1bmN0aW9uIChldmVudE5hbWU6IGFueSwgZGF0YTogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwibm90aWZ5TWVyY2hhbnQgaGFuZGxlciBmdW5jdGlvbiBjYWxsZWRcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXZlbnROYW1lID0+IFwiLCBldmVudE5hbWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImRhdGEgPT4gXCIsIGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZWZlcnJlci5jbG9zZWxvYWRpbmcoKTtcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIFwidHJhbnNhY3Rpb25TdGF0dXNcIjogZnVuY3Rpb24gKGRhdGE6IGFueSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcInBheW1lbnQgc3RhdHVzIFwiLCBkYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cocGF5dG1fcGF5bG9hZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvd1snUGF5dG0nXS5DaGVja291dEpTLmNsb3NlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZlcnJlci50cmFuc2FjdGlvbkNvbXBsZXRlZChkYXRhLCBwYXl0bV9wYXlsb2FkLCBhY2NvdW50SWQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmZXJyZXIudHJhbnNhY3Rpb25Db21wbGV0ZWQoeyBTVEFUVVM6ICdUWE5fU1VDQ0VTUycgfSwgcGF5dG1fcGF5bG9hZCwgYWNjb3VudElkKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoY29uZmlnKSk7XHJcbiAgICAgICAgICAgIGlmICh3aW5kb3dbJ1BheXRtJ10gJiYgd2luZG93WydQYXl0bSddLkNoZWNrb3V0SlMpIHtcclxuICAgICAgICAgICAgICAgIHdpbmRvd1snUGF5dG0nXS5DaGVja291dEpTLm9uTG9hZChmdW5jdGlvbiBleGNlY3V0ZUFmdGVyQ29tcGxldGVMb2FkKCkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGluaXRpYWx6ZSBjb25maWd1cmF0aW9uIHVzaW5nIGluaXQgbWV0aG9kIFxyXG4gICAgICAgICAgICAgICAgICAgIHdpbmRvd1snUGF5dG0nXS5DaGVja291dEpTLmluaXQoY29uZmlnKS50aGVuKGZ1bmN0aW9uIG9uU3VjY2VzcygpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWZ0ZXIgc3VjY2Vzc2Z1bGx5IHVwZGF0aW5nIGNvbmZpZ3VyYXRpb24sIGludm9rZSBKUyBDaGVja291dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3dbJ1BheXRtJ10uQ2hlY2tvdXRKUy5pbnZva2UoKTtcclxuICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiBvbkVycm9yKGVycm9yOiBhbnkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJvciA9PiBcIiwgZXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3dbJ1BheXRtJ10uQ2hlY2tvdXRKUy5jbG9zZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZWZlcnJlci5jbG9zZWxvYWRpbmcoKTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHdpbmRvd1snUGF5dG0nXS5DaGVja291dEpTLmNsb3NlKCk7XHJcbiAgICAgICAgICAgIHJlZmVycmVyLmNsb3NlbG9hZGluZygpO1xyXG4gICAgICAgIH0sIDYwMDAwMCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGxvYWRQYXlUTVNjcmlwdChwRGF0YTogYW55LCBpc2Zyb206IGFueSk6IEhUTUxTY3JpcHRFbGVtZW50IHtcclxuICAgICAgICBsZXQgcGF5VG11cmw7XHJcbiAgICAgICAgaWYgKHBEYXRhLnBheW1lbnRFbnYgPT0gJ3Byb2R1Y3Rpb24nKSB7XHJcbiAgICAgICAgICAgIHBheVRtdXJsID0gcHJvamVjdENvbnN0YW50c0xvY2FsLlBBWVRNX1VSTDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBwYXlUbXVybCA9IHByb2plY3RDb25zdGFudHNMb2NhbC5QQVlUTUxPQ0FMX1VSTDtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgdXJsID0gcGF5VG11cmwgKyAnL21lcmNoYW50cGdwdWkvY2hlY2tvdXRqcy9tZXJjaGFudHMvJyArIHBEYXRhLm1lcmNoYW50SWQgKyAnLmpzJztcclxuICAgICAgICBjb25zb2xlLmxvZygncHJlcGFyaW5nIHRvIGxvYWQuLi4nKTtcclxuICAgICAgICBsZXQgc2NyaXB0OiBhbnkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcclxuICAgICAgICBzY3JpcHQuaWQgPSBwRGF0YS5vcmRlcklkO1xyXG4gICAgICAgIHNjcmlwdC5zcmMgPSB1cmw7XHJcbiAgICAgICAgc2NyaXB0LnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JztcclxuICAgICAgICBzY3JpcHQuYXN5bmMgPSB0cnVlO1xyXG4gICAgICAgIHNjcmlwdFsnY3Jvc3NvcmlnaW4nXSA9IFwiYW5vbnltb3VzXCJcclxuICAgICAgICAvLyBub2RlLmNoYXJzZXQgPSAndXRmLTgnO1xyXG4gICAgICAgIC8vIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuYm9keSwgc2NyaXB0KTtcclxuICAgICAgICBjb25zb2xlLmxvZyhpc2Zyb20ucGF5dG12aWV3KTtcclxuICAgICAgICAvLyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc3VtZXJfZG9uYXRpb24nKS5hcHBlbmRDaGlsZChzY3JpcHQpO1xyXG4gICAgICAgIGlzZnJvbS5wYXl0bXZpZXcubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZChzY3JpcHQpO1xyXG4gICAgICAgIHJldHVybiBzY3JpcHQ7XHJcbiAgICB9XHJcbiAgICB1cGRhdGVSZXN1bHQocGF5bG9hZDogYW55LCBhY2NvdW50SWQ/OiBhbnkpIHtcclxuICAgICAgICBsZXQgdXJsID0gJ3Byb3ZpZGVyL3BheW1lbnQvcGF5dG0vdXBkYXRlJztcclxuICAgICAgICBpZiAoYWNjb3VudElkKSB7XHJcbiAgICAgICAgICAgIHVybCArPSAnP2FjY291bnQ9JyArIGFjY291bnRJZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VydmljZW1ldGEuaHR0cFBvc3QodXJsLCBwYXlsb2FkKTtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVQYXl0bVBheShwYXlsb2FkOiBhbnksIGFjY291bnRJZD86IGFueSkge1xyXG4gICAgICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgIHNlbGYudXBkYXRlUmVzdWx0KHBheWxvYWQsIGFjY291bnRJZCkuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZShyZXN1bHQpO1xyXG4gICAgICAgICAgICB9LCAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmVqZWN0KGZhbHNlKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG59XHJcbiJdfQ==