@wavemaker/app-ng-runtime 11.5.1-rc.5402 → 11.5.1-rc.5413
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.
- app-ng-runtime/components/base/bundles/index.umd.js +15 -8
- app-ng-runtime/components/base/esm2020/pipes/custom-pipes.mjs +16 -9
- app-ng-runtime/components/base/fesm2015/index.mjs +15 -8
- app-ng-runtime/components/base/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/base/fesm2020/index.mjs +15 -8
- app-ng-runtime/components/base/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/base/pipes/custom-pipes.d.ts +1 -0
- app-ng-runtime/components/containers/wizard/bundles/index.umd.js +14 -3
- app-ng-runtime/components/containers/wizard/esm2020/wizard.component.mjs +13 -4
- app-ng-runtime/components/containers/wizard/esm2020/wizard.props.mjs +2 -1
- app-ng-runtime/components/containers/wizard/fesm2015/index.mjs +14 -3
- app-ng-runtime/components/containers/wizard/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/containers/wizard/fesm2020/index.mjs +13 -3
- app-ng-runtime/components/containers/wizard/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/containers/wizard/wizard.component.d.ts +2 -0
- app-ng-runtime/package.json +1 -1
- app-ng-runtime/runtime/base/bundles/index.umd.js +25 -0
- app-ng-runtime/runtime/base/components/base-page.component.d.ts +1 -0
- app-ng-runtime/runtime/base/esm2020/components/base-page.component.mjs +26 -1
- app-ng-runtime/runtime/base/fesm2015/index.mjs +25 -0
- app-ng-runtime/runtime/base/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/runtime/base/fesm2020/index.mjs +25 -0
- app-ng-runtime/runtime/base/fesm2020/index.mjs.map +1 -1
|
@@ -2437,25 +2437,32 @@
|
|
|
2437
2437
|
}], function () { return [{ type: i1$1__namespace.DecimalPipe }]; }, null);
|
|
2438
2438
|
})();
|
|
2439
2439
|
class ToDatePipe extends WmPipe {
|
|
2440
|
-
|
|
2440
|
+
// This method calls the custom formatter fn after applying the exisitng date pattern
|
|
2441
|
+
returnFn(data, args) {
|
|
2441
2442
|
if (this.isCustomPipe) {
|
|
2442
|
-
|
|
2443
|
+
if (args) {
|
|
2444
|
+
args[0] = data;
|
|
2445
|
+
}
|
|
2446
|
+
return this.customFormatter(data, args);
|
|
2443
2447
|
}
|
|
2448
|
+
return data;
|
|
2449
|
+
}
|
|
2450
|
+
transform(data, format, timezone, compInstance) {
|
|
2444
2451
|
let timestamp;
|
|
2445
2452
|
// 'null' is to be treated as a special case, If user wants to enter null value, empty string will be passed to the backend
|
|
2446
2453
|
if (data === 'null' || data === '') {
|
|
2447
|
-
return '';
|
|
2454
|
+
return this.returnFn('', arguments);
|
|
2448
2455
|
}
|
|
2449
2456
|
if (!i1.isDefined(data)) {
|
|
2450
|
-
return '';
|
|
2457
|
+
return this.returnFn('', arguments);
|
|
2451
2458
|
}
|
|
2452
2459
|
timestamp = getEpochValue(data);
|
|
2453
2460
|
if (timestamp) {
|
|
2454
2461
|
if (format === 'timestamp') {
|
|
2455
|
-
return timestamp;
|
|
2462
|
+
return this.returnFn(timestamp, arguments);
|
|
2456
2463
|
}
|
|
2457
2464
|
if (format === 'UTC') {
|
|
2458
|
-
return new Date(timestamp).toISOString();
|
|
2465
|
+
return this.returnFn(new Date(timestamp).toISOString(), arguments);
|
|
2459
2466
|
}
|
|
2460
2467
|
let formattedVal;
|
|
2461
2468
|
const timeZone = this.i18nService ? this.i18nService.getTimezone(compInstance) : timezone;
|
|
@@ -2465,9 +2472,9 @@
|
|
|
2465
2472
|
else {
|
|
2466
2473
|
formattedVal = this.datePipe.transform(timestamp, format);
|
|
2467
2474
|
}
|
|
2468
|
-
return formattedVal;
|
|
2475
|
+
return this.returnFn(formattedVal, arguments);
|
|
2469
2476
|
}
|
|
2470
|
-
return '';
|
|
2477
|
+
return this.returnFn('', arguments);
|
|
2471
2478
|
}
|
|
2472
2479
|
constructor(datePipe, i18nService, customPipeManager) {
|
|
2473
2480
|
super('toDate', customPipeManager);
|
|
@@ -34,25 +34,32 @@ TrailingZeroDecimalPipe.ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: "traili
|
|
|
34
34
|
}]
|
|
35
35
|
}], function () { return [{ type: i1.DecimalPipe }]; }, null); })();
|
|
36
36
|
export class ToDatePipe extends WmPipe {
|
|
37
|
-
|
|
37
|
+
// This method calls the custom formatter fn after applying the exisitng date pattern
|
|
38
|
+
returnFn(data, args) {
|
|
38
39
|
if (this.isCustomPipe) {
|
|
39
|
-
|
|
40
|
+
if (args) {
|
|
41
|
+
args[0] = data;
|
|
42
|
+
}
|
|
43
|
+
return this.customFormatter(data, args);
|
|
40
44
|
}
|
|
45
|
+
return data;
|
|
46
|
+
}
|
|
47
|
+
transform(data, format, timezone, compInstance) {
|
|
41
48
|
let timestamp;
|
|
42
49
|
// 'null' is to be treated as a special case, If user wants to enter null value, empty string will be passed to the backend
|
|
43
50
|
if (data === 'null' || data === '') {
|
|
44
|
-
return '';
|
|
51
|
+
return this.returnFn('', arguments);
|
|
45
52
|
}
|
|
46
53
|
if (!isDefined(data)) {
|
|
47
|
-
return '';
|
|
54
|
+
return this.returnFn('', arguments);
|
|
48
55
|
}
|
|
49
56
|
timestamp = getEpochValue(data);
|
|
50
57
|
if (timestamp) {
|
|
51
58
|
if (format === 'timestamp') {
|
|
52
|
-
return timestamp;
|
|
59
|
+
return this.returnFn(timestamp, arguments);
|
|
53
60
|
}
|
|
54
61
|
if (format === 'UTC') {
|
|
55
|
-
return new Date(timestamp).toISOString();
|
|
62
|
+
return this.returnFn(new Date(timestamp).toISOString(), arguments);
|
|
56
63
|
}
|
|
57
64
|
let formattedVal;
|
|
58
65
|
const timeZone = this.i18nService ? this.i18nService.getTimezone(compInstance) : timezone;
|
|
@@ -62,9 +69,9 @@ export class ToDatePipe extends WmPipe {
|
|
|
62
69
|
else {
|
|
63
70
|
formattedVal = this.datePipe.transform(timestamp, format);
|
|
64
71
|
}
|
|
65
|
-
return formattedVal;
|
|
72
|
+
return this.returnFn(formattedVal, arguments);
|
|
66
73
|
}
|
|
67
|
-
return '';
|
|
74
|
+
return this.returnFn('', arguments);
|
|
68
75
|
}
|
|
69
76
|
constructor(datePipe, i18nService, customPipeManager) {
|
|
70
77
|
super('toDate', customPipeManager);
|
|
@@ -429,4 +436,4 @@ FileExtensionFromMimePipe.ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: "file
|
|
|
429
436
|
name: 'fileExtensionFromMime'
|
|
430
437
|
}]
|
|
431
438
|
}], null, null); })();
|
|
432
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXBpcGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9iYXNlL3NyYy9waXBlcy9jdXN0b20tcGlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQU8saUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQy9HLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7QUFJbkMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLEVBQUU7SUFDekIsSUFBSSxLQUFLLENBQUM7SUFDVixvR0FBb0c7SUFDcEcsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDakMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7S0FDN0I7SUFDRCx3RkFBd0Y7SUFDeEYsS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxNQUFNLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxZQUFZLEVBQUUsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDM0YsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQyxDQUFDO0FBS0YsTUFBTSxPQUFPLHVCQUF1QjtJQUNoQyxTQUFTLENBQUMsS0FBVSxFQUFFLGNBQXNCLEVBQUUsWUFBb0IsRUFBRSxZQUFpQixFQUFFLFlBQXFCLEVBQUUsWUFBb0IsRUFBRSxxQkFBK0IsRUFB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O1lBQ3BCLGFBQWEsRUFBRSxNQUFNO1lBQ3JCLGFBQWEsRUFBRSxNQUFNO1lBQ3JCLDZCQUE2QixFQUFFLEtBQUs7U0FDdkMsQ0FBQztRQUVGLE9BQU8sV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7O2tHQTFFUSx5QkFBeUI7dUdBQXpCLHlCQUF5Qjt1RkFBekIseUJBQXlCO2NBSHJDLElBQUk7ZUFBQztnQkFDRixJQUFJLEVBQUUsdUJBQXVCO2FBQ2hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRlUGlwZSwgRGVjaW1hbFBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ1VSUkVOQ1lfSU5GTywgaXNEZWZpbmVkLCBBcHAsIEN1c3RvbVBpcGVNYW5hZ2VyLCBBYnN0cmFjdEkxOG5TZXJ2aWNlLCBoYXNPZmZzZXRTdHIgfSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQgeyBXbVBpcGUgfSBmcm9tIFwiLi93bS1waXBlXCI7XG5cbmRlY2xhcmUgY29uc3QgbW9tZW50LCBfLCAkO1xuXG5jb25zdCBnZXRFcG9jaFZhbHVlID0gZGF0YSA9PiB7XG4gICAgbGV0IGVwb2NoO1xuICAgIC8vIEZvciBkYXRhIGluIGZvcm0gb2Ygc3RyaW5nIG51bWJlciAoJzEyMycpLCBjb252ZXJ0IHRvIG51bWJlciAoMTIzKS4gQW5kIGRvbid0IHBhcnNlIGRhdGUgb2JqZWN0cy5cbiAgICBpZiAoIV8uaXNEYXRlKGRhdGEpICYmICFpc05hTihkYXRhKSkge1xuICAgICAgICBkYXRhID0gcGFyc2VJbnQoZGF0YSwgMTApO1xuICAgIH1cbiAgICAvLyBnZXQgdGhlIHRpbWVzdGFtcCB2YWx1ZS4gSWYgZGF0YSBpcyB0aW1lIHN0cmluZywgYXBwZW5kIGRhdGUgc3RyaW5nIHRvIHRoZSB0aW1lIHZhbHVlXG4gICAgZXBvY2ggPSBtb21lbnQoZGF0YSkudmFsdWVPZigpIHx8IG1vbWVudChuZXcgRGF0ZSgpLnRvRGF0ZVN0cmluZygpICsgJyAnICsgZGF0YSkudmFsdWVPZigpO1xuICAgIHJldHVybiBlcG9jaDtcbn07XG5cbkBQaXBlKHtcbiAgICBuYW1lOiAndHJhaWxpbmdaZXJvRGVjaW1hbFBpcGUnXG59KVxuZXhwb3J0IGNsYXNzIFRyYWlsaW5nWmVyb0RlY2ltYWxQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKHZhbHVlOiBhbnksIHNlbGVjdGVkTG9jYWxlOiBzdHJpbmcsIG51bWJlcmZpbHRlcjogc3RyaW5nLCBsb2NhbGVmaWx0ZXI6IGFueSwgdHJhaWxpbmd6ZXJvOiBib29sZWFuLCBkZWNpbWFsVmFsdWU6IHN0cmluZywgc2tpcFRyYWlsaW5nWmVyb0NoZWNrPzogYm9vbGVhbiwgZm9ybWF0dGVkTG9jYWxlPyk6IGFueSB7XG4gICAgICAgIG51bWJlcmZpbHRlciA9IHRyYWlsaW5nemVybyAmJiAhc2tpcFRyYWlsaW5nWmVyb0NoZWNrID8gYDEuJHtkZWNpbWFsVmFsdWUubGVuZ3RofS0xNmA6IG51bWJlcmZpbHRlcjtcbiAgICAgICAgY29uc3QgbG9jYWxlID0gZm9ybWF0dGVkTG9jYWxlID8gZm9ybWF0dGVkTG9jYWxlWydudW1iZXInXSA6IHVuZGVmaW5lZDtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVjaW1hbFBpcGUudHJhbnNmb3JtKHZhbHVlLCBudW1iZXJmaWx0ZXIsIGxvY2FsZWZpbHRlciB8fCBsb2NhbGUgfHwgc2VsZWN0ZWRMb2NhbGUpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGVjaW1hbFBpcGU6IERlY2ltYWxQaXBlKSB7IH1cblxufVxuXG5AUGlwZSh7XG4gICAgbmFtZTogJ3RvRGF0ZSdcbn0pXG5leHBvcnQgY2xhc3MgVG9EYXRlUGlwZSBleHRlbmRzIFdtUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHRyYW5zZm9ybShkYXRhOiBhbnksIGZvcm1hdDogYW55LCB0aW1lem9uZT8sIGNvbXBJbnN0YW5jZT8pIHtcbiAgICAgICAgaWYgKHRoaXMuaXNDdXN0b21QaXBlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jdXN0b21Gb3JtYXR0ZXIoZGF0YSwgYXJndW1lbnRzKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgdGltZXN0YW1wO1xuICAgICAgICAvLyAnbnVsbCcgaXMgdG8gYmUgdHJlYXRlZCBhcyBhIHNwZWNpYWwgY2FzZSwgSWYgdXNlciB3YW50cyB0byBlbnRlciBudWxsIHZhbHVlLCBlbXB0eSBzdHJpbmcgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIGJhY2tlbmRcbiAgICAgICAgaWYgKGRhdGEgPT09ICdudWxsJyB8fCBkYXRhID09PSAnJykge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNEZWZpbmVkKGRhdGEpKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICAgICAgdGltZXN0YW1wID0gZ2V0RXBvY2hWYWx1ZShkYXRhKTtcbiAgICAgICAgaWYgKHRpbWVzdGFtcCkge1xuICAgICAgICAgICAgaWYgKGZvcm1hdCA9PT0gJ3RpbWVzdGFtcCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGltZXN0YW1wO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGZvcm1hdCA9PT0gJ1VUQycpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IERhdGUodGltZXN0YW1wKS50b0lTT1N0cmluZygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IGZvcm1hdHRlZFZhbDtcbiAgICAgICAgICAgIGNvbnN0IHRpbWVab25lID0gdGhpcy5pMThuU2VydmljZSA/IHRoaXMuaTE4blNlcnZpY2UuZ2V0VGltZXpvbmUoY29tcEluc3RhbmNlKSA6IHRpbWV6b25lO1xuICAgICAgICAgICAgaWYgKHRpbWVab25lICYmIChkYXRhID09PSB0aW1lc3RhbXAgfHwgaGFzT2Zmc2V0U3RyKGRhdGEpKSkge1xuICAgICAgICAgICAgICAgIGZvcm1hdHRlZFZhbCA9IG1vbWVudCh0aW1lc3RhbXApLnR6KHRpbWVab25lKS5mb3JtYXQoZm9ybWF0LnJlcGxhY2VBbGwoJ3knLCAnWScpLnJlcGxhY2VBbGwoJ2QnLCAnRCcpLnJlcGxhY2UoJ2EnLCAnQScpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZm9ybWF0dGVkVmFsID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0odGltZXN0YW1wLCBmb3JtYXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZvcm1hdHRlZFZhbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBkYXRlUGlwZTogRGF0ZVBpcGUsIHByaXZhdGUgaTE4blNlcnZpY2U6IEFic3RyYWN0STE4blNlcnZpY2UsIHByb3RlY3RlZCBjdXN0b21QaXBlTWFuYWdlcjogQ3VzdG9tUGlwZU1hbmFnZXIpIHtcbiAgICAgICAgc3VwZXIoJ3RvRGF0ZScsIGN1c3RvbVBpcGVNYW5hZ2VyKTtcbiAgICB9XG59XG5cbkBQaXBlKHtcbiAgICBuYW1lOiAndG9OdW1iZXInXG59KVxuZXhwb3J0IGNsYXNzIFRvTnVtYmVyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHRyYW5zZm9ybShkYXRhLCBmcmFjU2l6ZSkge1xuICAgICAgICBpZiAoZnJhY1NpemUgJiYgIVN0cmluZyhmcmFjU2l6ZSkubWF0Y2goL14oXFxkKyk/XFwuKChcXGQrKSgtKFxcZCspKT8pPyQvKSkge1xuICAgICAgICAgICAgZnJhY1NpemUgPSAnMS4nICsgZnJhY1NpemUgKyAnLScgKyBmcmFjU2l6ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIV8uaXNOYU4oK2RhdGEpKSB7XG4gICAgICAgICAgICBjb25zdCBsb2NhbGUgPSB0aGlzLmkxOG5TZXJ2aWNlICYmIHRoaXMuaTE4blNlcnZpY2UuZ2V0d2lkZ2V0TG9jYWxlKCkgPyB0aGlzLmkxOG5TZXJ2aWNlLmdldHdpZGdldExvY2FsZSgpIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkTG9jYWxlID0gbG9jYWxlID8gbG9jYWxlWydudW1iZXInXSA6IG51bGw7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kZWNpbWFsUGlwZS50cmFuc2Zvcm0oZGF0YSwgZnJhY1NpemUsIGZvcm1hdHRlZExvY2FsZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBkZWNpbWFsUGlwZTogRGVjaW1hbFBpcGUsICBASW5qZWN0KEFic3RyYWN0STE4blNlcnZpY2UpIHByaXZhdGUgaTE4blNlcnZpY2U6IEFic3RyYWN0STE4blNlcnZpY2UpIHtcbiAgICB9XG59XG5cbkBQaXBlKHtcbiAgICBuYW1lOiAndG9DdXJyZW5jeSdcbn0pXG5leHBvcnQgY2xhc3MgVG9DdXJyZW5jeVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICB0cmFuc2Zvcm0oZGF0YSwgY3VycmVuY3lTeW1ib2wsIGZyYWNTaXplKSB7XG4gICAgICAgIGNvbnN0IF9jdXJyZW5jeVN5bWJvbCA9IChDVVJSRU5DWV9JTkZPW2N1cnJlbmN5U3ltYm9sXSB8fCB7fSkuc3ltYm9sIHx8IGN1cnJlbmN5U3ltYm9sIHx8ICcnO1xuICAgICAgICBsZXQgX3ZhbCA9IG5ldyBUb051bWJlclBpcGUodGhpcy5kZWNpbWFsUGlwZSwgdGhpcy5pMThuU2VydmljZSkudHJhbnNmb3JtKGRhdGEsIGZyYWNTaXplKTtcbiAgICAgICAgY29uc3QgaXNOZWdhdGl2ZU51bWJlciA9IF8uc3RhcnRzV2l0aChfdmFsLCAnLScpO1xuICAgICAgICBpZiAoaXNOZWdhdGl2ZU51bWJlcikge1xuICAgICAgICAgICAgX3ZhbCA9IF92YWwucmVwbGFjZSgnLScsJycpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBfdmFsID8gaXNOZWdhdGl2ZU51bWJlciA/ICctJysgX2N1cnJlbmN5U3ltYm9sICtfdmFsIDpfY3VycmVuY3lTeW1ib2wgKyBfdmFsIDogJyc7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBkZWNpbWFsUGlwZTogRGVjaW1hbFBpcGUsIEBJbmplY3QoQWJzdHJhY3RJMThuU2VydmljZSkgcHJpdmF0ZSBpMThuU2VydmljZTogQWJzdHJhY3RJMThuU2VydmljZSkge1xuICAgIH1cbn1cblxuQFBpcGUoe1xuICAgIG5hbWU6ICdwcmVmaXgnXG59KVxuZXhwb3J0IGNsYXNzIFByZWZpeFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICB0cmFuc2Zvcm0oZGF0YSwgcGFkZGluZykge1xuICAgICAgICByZXR1cm4gKF8uaXNVbmRlZmluZWQoZGF0YSkgfHwgZGF0YSA9PT0gbnVsbCB8fCBkYXRhID09PSAnJykgPyBkYXRhIDogKChwYWRkaW5nIHx8ICcnKSArIGRhdGEpO1xuICAgIH1cbn1cblxuQFBpcGUoe1xuICAgIG5hbWU6ICdzdWZmaXgnXG59KVxuZXhwb3J0IGNsYXNzIFN1ZmZpeFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICB0cmFuc2Zvcm0oZGF0YSwgcGFkZGluZykge1xuICAgICAgICByZXR1cm4gKF8uaXNVbmRlZmluZWQoZGF0YSkgfHwgZGF0YSA9PT0gbnVsbCB8fCBkYXRhID09PSAnJykgPyBkYXRhIDogKGRhdGEgKyAocGFkZGluZyB8fCAnJykpO1xuICAgIH1cbn1cblxuXG4vKipcbiAqIEN1c3RvbSBwaXBlOiBJdCBpcyB3b3JrIGFzIGludGVyY2VwdG9yIGJldHdlZW4gdGhlIHVzZXIgY3VzdG9tIHBpcGUgZnVuY3Rpb24gYW5kIGFuZ3VsYXIgcGlwZVxuICovXG5AUGlwZSh7XG4gICAgbmFtZTogJ2N1c3RvbSdcbn0pXG5leHBvcnQgY2xhc3MgQ3VzdG9tUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY3VzdG1lVXNlclBpcGU6IEN1c3RvbVBpcGVNYW5hZ2VyKSB7XG5cbiAgICB9XG4gICAgdHJhbnNmb3JtKGRhdGEsIHBpcGVuYW1lKSB7XG4gICAgICAgbGV0IGFyZ3VtZW50QXJyID0gW107XG4gICAgICAgZm9yKGxldCBpID0yIDsgaTxhcmd1bWVudHMubGVuZ3RoOyBpKysgKXtcbiAgICAgICAgYXJndW1lbnRBcnIucHVzaChhcmd1bWVudHNbaV0pO1xuICAgICAgIH1cblxuICAgICAgICBsZXQgcGlwZVJlZiA9IHRoaXMuY3VzdG1lVXNlclBpcGUuZ2V0Q3VzdG9tUGlwZShwaXBlbmFtZSk7XG4gICAgICAgIGlmKCFwaXBlUmVmIHx8ICFfLmlzRnVuY3Rpb24ocGlwZVJlZi5mb3JtYXR0ZXIpKXtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignZm9ybWF0dGVyIGlzIG5vdCBkZWZpbmVkLCBwbGVhc2UgY2hlY2sgdGhlIGN1c3RvbSBwaXBlcyBkb2N1bWVudGF0aW9uJyk7XG4gICAgICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyeXtcbiAgICAgICAgICAgIHJldHVybiBwaXBlUmVmLmZvcm1hdHRlcihkYXRhLCAuLi5hcmd1bWVudEFycik7XG4gICAgICAgIH0gY2F0Y2goZXJyb3Ipe1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignUGlwZSBuYW1lOiAnK3BpcGVuYW1lLCBlcnJvcik7XG4gICAgICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgICAgIH1cbiAgICB9XG59XG5cbkBQaXBlKHtcbiAgICBuYW1lOiAndGltZUZyb21Ob3cnXG59KVxuZXhwb3J0IGNsYXNzIFRpbWVGcm9tTm93UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHRyYW5zZm9ybShkYXRhKSB7XG4gICAgICAgIGxldCB0aW1lc3RhbXA7XG4gICAgICAgIGlmICghaXNEZWZpbmVkKGRhdGEpKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHRpbWVzdGFtcCA9IGdldEVwb2NoVmFsdWUoZGF0YSk7XG4gICAgICAgIHJldHVybiB0aW1lc3RhbXAgPyBtb21lbnQodGltZXN0YW1wKS5mcm9tTm93KCkgOiB1bmRlZmluZWQ7XG4gICAgfVxufVxuXG5AUGlwZSh7XG4gICAgbmFtZTogJ251bWJlclRvU3RyaW5nJ1xufSlcbmV4cG9ydCBjbGFzcyBOdW1iZXJUb1N0cmluZ1BpcGUgZXh0ZW5kcyBUb051bWJlclBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHsgfVxuXG5AUGlwZSh7XG4gICAgbmFtZTogJ3N0cmluZ1RvTnVtYmVyJ1xufSlcbmV4cG9ydCBjbGFzcyBTdHJpbmdUb051bWJlclBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICB0cmFuc2Zvcm0oZGF0YSkge1xuICAgICAgICByZXR1cm4gTnVtYmVyKGRhdGEpIHx8IHVuZGVmaW5lZDtcbiAgICB9XG59XG5cbkBQaXBlKHtcbiAgICBuYW1lOiAnZmlsdGVyJ1xufSlcbmV4cG9ydCBjbGFzcyBGaWx0ZXJQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKGRhdGE6IGFueVtdLCBmaWVsZDogYW55LCB2YWx1ZTogYW55KSB7XG4gICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG4gICAgICAgIC8vIElmIG9iamVjdCBpcyBwYXNzZWQgYXMgZmlyc3QgcGFyYW10ZXJcbiAgICAgICAgaWYgKF8uaXNPYmplY3QoZmllbGQpKSB7XG4gICAgICAgICAgICByZXR1cm4gXy5maWx0ZXIoZGF0YSwgZmllbGQpO1xuICAgICAgICB9XG4gICAgICAgIC8vIElmIGtleSB2YWx1ZSBwYWlyIGlzIHByb3ZpZGVkXG4gICAgICAgIHJldHVybiBfLmZpbHRlcihkYXRhLCBpdGVtID0+IHtcbiAgICAgICAgICAgIHJldHVybiBfLmluY2x1ZGVzKGl0ZW1bZmllbGRdLCB2YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuQFBpcGUoe1xuICAgIG5hbWU6ICdmaWxlc2l6ZSdcbn0pXG5leHBvcnQgY2xhc3MgRmlsZVNpemVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKGJ5dGVzOiBudW1iZXIsIHByZWNpc2lvbjogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IHVuaXRzID0gW1xuICAgICAgICAgICAgJ2J5dGVzJyxcbiAgICAgICAgICAgICdLQicsXG4gICAgICAgICAgICAnTUInLFxuICAgICAgICAgICAgJ0dCJyxcbiAgICAgICAgICAgICdUQicsXG4gICAgICAgICAgICAnUEInXG4gICAgICAgIF07XG5cbiAgICAgICAgLypUb2RvW3NodWJoYW1dXG4gICAgICAgIGlmIChpc05hTihwYXJzZUZsb2F0KGJ5dGVzKSkgfHwgIWlzRmluaXRlKGJ5dGVzKSkge1xuICAgICAgICAgICAgcmV0dXJuIGlzTW9iaWxlKCkgPyAnJyA6ICc/JztcbiAgICAgICAgfSovXG4gICAgICAgIGxldCB1bml0ID0gMDtcbiAgICAgICAgd2hpbGUgKGJ5dGVzID49IDEwMjQpIHtcbiAgICAgICAgICAgIGJ5dGVzIC89IDEwMjQ7XG4gICAgICAgICAgICB1bml0Kys7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGJ5dGVzLnRvRml4ZWQoK3ByZWNpc2lvbikgKyAnICcgKyB1bml0c1t1bml0XTtcbiAgICB9XG59XG5cbkBQaXBlKHtcbiAgICBuYW1lOiAnZmlsZUljb25DbGFzcydcbn0pXG5leHBvcnQgY2xhc3MgRmlsZUljb25DbGFzc1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICB0cmFuc2Zvcm0oZmlsZUV4dGVuc2lvbjogYW55KSB7XG4gICAgICAgIGNvbnN0IGZpbGVDbGFzc01hcHBpbmcgPSB7XG4gICAgICAgICAgICAnemlwJyAgICAgICA6ICAgJ2ZhLWZpbGUtemlwLW8nLFxuICAgICAgICAgICAgJ3BkZicgICAgICAgOiAgICdmYS1maWxlLXBkZi1vJyxcbiAgICAgICAgICAgICdyYXInICAgICAgIDogICAnZmEtZmlsZS1hcmNoaXZlLW8nLFxuICAgICAgICAgICAgJ3R4dCcgICAgICAgOiAgICdmYS1maWxlLXRleHQtbycsXG4gICAgICAgICAgICAncHB0JyAgICAgICA6ICAgJ2ZhLWZpbGUtcG93ZXJwb2ludC1vJyxcbiAgICAgICAgICAgICdwb3QnICAgICAgIDogICAnZmEtZmlsZS1wb3dlcnBvaW50LW8nLFxuICAgICAgICAgICAgJ3BwcycgICAgICAgOiAgICdmYS1maWxlLXBvd2VycG9pbnQtbycsXG4gICAgICAgICAgICAncHB0eCcgICAgICA6ICAgJ2ZhLWZpbGUtcG93ZXJwb2ludC1vJyxcbiAgICAgICAgICAgICdwb3R4JyAgICAgIDogICAnZmEtZmlsZS1wb3dlcnBvaW50LW8nLFxuICAgICAgICAgICAgJ3Bwc3gnICAgICAgOiAgICdmYS1maWxlLXBvd2VycG9pbnQtbycsXG4gICAgICAgICAgICAnbXBnJyAgICAgICA6ICAgJ2ZhLWZpbGUtbW92aWUtbycsXG4gICAgICAgICAgICAnbXA0JyAgICAgICA6ICAgJ2ZhLWZpbGUtbW92aWUtbycsXG4gICAgICAgICAgICAnbW92JyAgICAgICA6ICAgJ2ZhLWZpbGUtbW92aWUtbycsXG4gICAgICAgICAgICAnYXZpJyAgICAgICA6ICAgJ2ZhLWZpbGUtbW92aWUtbycsXG4gICAgICAgICAgICAnbXAzJyAgICAgICA6ICAgJ2ZhLWZpbGUtYXVkaW8tbycsXG4gICAgICAgICAgICAnZG9jeCcgICAgICA6ICAgJ2ZhLWZpbGUtd29yZC1vJyxcbiAgICAgICAgICAgICdqcycgICAgICAgIDogICAnZmEtZmlsZS1jb2RlLW8nLFxuICAgICAgICAgICAgJ21kJyAgICAgICAgOiAgICdmYS1maWxlLWNvZGUtbycsXG4gICAgICAgICAgICAnaHRtbCcgICAgICA6ICAgJ2ZhLWZpbGUtY29kZS1vJyxcbiAgICAgICAgICAgICdjc3MnICAgICAgIDogICAnZmEtZmlsZS1jb2RlLW8nLFxuICAgICAgICAgICAgJ3hsc3gnICAgICAgOiAgICdmYS1maWxlLWV4Y2VsLW8nLFxuICAgICAgICAgICAgJ3BuZycgICAgICAgOiAgICdmYS1maWxlLWltYWdlLW8nLFxuICAgICAgICAgICAgJ2pwZycgICAgICAgOiAgICdmYS1maWxlLWltYWdlLW8nLFxuICAgICAgICAgICAgJ2pwZWcnICAgICAgOiAgICdmYS1maWxlLWltYWdlLW8nLFxuICAgICAgICAgICAgJ2ZpbGUnICAgICAgOiAgICdmYS1maWxlLW8nLFxuICAgICAgICAgICAgJ2RlZmF1bHQnICAgOiAgICdmYS1maWxlLW8nXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuICdmYSAnICsgKGZpbGVDbGFzc01hcHBpbmdbZmlsZUV4dGVuc2lvbl0gfHwgJ2ZhLWZpbGUtbycpO1xuICAgIH1cbn1cblxuQFBpcGUoe1xuICAgIG5hbWU6ICdzdGF0ZUNsYXNzJ1xufSlcbmV4cG9ydCBjbGFzcyBTdGF0ZUNsYXNzUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHRyYW5zZm9ybShzdGF0ZSkge1xuICAgICAgICBjb25zdCBzdGF0ZUNsYXNzTWFwID0ge1xuICAgICAgICAgICAgJ3N1Y2Nlc3MnICAgOiAnd2kgd2ktZG9uZSB0ZXh0LXN1Y2Nlc3MnLFxuICAgICAgICAgICAgJ2Vycm9yJyAgICAgOiAnd2kgd2ktZXJyb3IgdGV4dC1kYW5nZXInXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBzdGF0ZUNsYXNzTWFwW3N0YXRlLnRvTG93ZXJDYXNlKCldO1xuICAgIH1cbn1cblxuQFBpcGUoe1xuICAgIG5hbWU6ICdmaWxlRXh0ZW5zaW9uRnJvbU1pbWUnXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVFeHRlbnNpb25Gcm9tTWltZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICB0cmFuc2Zvcm0obWltZVR5cGU6IGFueSkge1xuICAgICAgICBjb25zdCB0eXBlTWFwcGluZyA9IHtcbiAgICAgICAgICAgICdhdWRpby9hYWMnOiAnLmFhYycsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24veC1hYml3b3JkJzogJy5hYncnLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5hbmRyb2lkLnBhY2thZ2UtYXJjaGl2ZSc6ICcuYXBrJyxcbiAgICAgICAgICAgICd2aWRlby94LW1zdmlkZW8nOiAnLmF2aScsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vdm5kLmFtYXpvbi5lYm9vayc6ICcuYXp3JyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nOiAnLmJpbicsXG4gICAgICAgICAgICAnaW1hZ2UvYm1wJzogJy5ibXAnLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3gtYnppcCc6ICcuYnonLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3gtYnppcDInOiAnLmJ6MicsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24veC1jc2gnOiAnLmNzaCcsXG4gICAgICAgICAgICAndGV4dC9jc3MnOiAnLmNzcycsXG4gICAgICAgICAgICAndGV4dC9jc3YnOiAnLmNzdicsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vbXN3b3JkJzogJy5kb2MnLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50JzogJy5kb2N4JyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi92bmQubXMtZm9udG9iamVjdCc6ICcuZW90JyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9lcHViK3ppcCc6ICcuZXB1YicsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vZWNtYXNjcmlwdCc6ICcuZXMnLFxuICAgICAgICAgICAgJ2ltYWdlL2dpZic6ICcuZ2lmJyxcbiAgICAgICAgICAgICd0ZXh0L2h0bWwnOiAnLmh0bWwnLFxuICAgICAgICAgICAgJ2ltYWdlL3gtaWNvbic6ICcuaWNvJyxcbiAgICAgICAgICAgICd0ZXh0L2NhbGVuZGFyJzogJy5pY3MnLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2phdmEtYXJjaGl2ZSc6ICcuamFyJyxcbiAgICAgICAgICAgICdpbWFnZS9qcGVnJzogWycuanBlZycsICcuanBnJ10sXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vamF2YXNjcmlwdCc6ICcuanMnLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nOiAnLmpzb24nLFxuICAgICAgICAgICAgJ2F1ZGlvL21pZGknOiAnLm1pZCcsXG4gICAgICAgICAgICAnYXVkaW8veC1taWRpJzogJy5taWRpJyxcbiAgICAgICAgICAgICd2aWRlby9tcGVnJzogJy5tcGVnJyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi92bmQuYXBwbGUuaW5zdGFsbGVyK3htbCc6ICdtcGtnJyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnByZXNlbnRhdGlvbic6ICcub2RwJyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnNwcmVhZHNoZWV0JzogJy5vZHMnLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQudGV4dCc6ICcub2R0JyxcbiAgICAgICAgICAgICdhdWRpby9vZ2cnOiAnLm9nYScsXG4gICAgICAgICAgICAndmlkZW8vb2dnJzogJy5vZ3YnLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL29nZyc6ICcub2d4JyxcbiAgICAgICAgICAgICdmb250L290Zic6ICcub3RmJyxcbiAgICAgICAgICAgICdpbWFnZS9wbmcnOiAnLnBuZycsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vcGRmJzogJy5wZGYnLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50JzogJy5wcHQnLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5wcmVzZW50YXRpb24nOiAnLnBwdHgnLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3gtcmFyLWNvbXByZXNzZWQnOiAnLnJhcicsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vcnRmJzogJy5ydGYnLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3gtc2gnOiAnLnNoJyxcbiAgICAgICAgICAgICdpbWFnZS9zdmcreG1sJzogJy5zdmcnLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoJzogJy5zd2YnLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3gtdGFyJzogJy50YXInLFxuICAgICAgICAgICAgJ2ltYWdlL3RpZmYnOiAnLnRpZmYnLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3R5cGVzY3JpcHQnOiAnLnRzJyxcbiAgICAgICAgICAgICdmb250L3R0Zic6ICcudHRmJyxcbiAgICAgICAgICAgICd0ZXh0L3BsYWluJzogJy50eHQnLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC52aXNpbyc6ICcudnNkJyxcbiAgICAgICAgICAgICdhdWRpby93YXYnOiAnLndhdicsXG4gICAgICAgICAgICAnYXVkaW8vd2VibSc6ICcud2ViYScsXG4gICAgICAgICAgICAndmlkZW8vd2VibSc6ICcud2VibScsXG4gICAgICAgICAgICAnaW1hZ2Uvd2VicCc6ICcud2VicCcsXG4gICAgICAgICAgICAnZm9udC93b2ZmJzogJy53b2ZmJyxcbiAgICAgICAgICAgICdmb250L3dvZmYyJzogJy53b2ZmMicsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24veGh0bWwreG1sJzogJy54aHRtbCcsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsJzogJy54bHMnLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0JzogJy54bHN4JyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi94bWwnOiAnLnhtbCcsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vdm5kLm1vemlsbGEueHVsK3htbCc6ICcueHVsJyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi96aXAnOiAnLnppcCcsXG4gICAgICAgICAgICAndmlkZW8vM2dwcCc6ICcuM2dwJyxcbiAgICAgICAgICAgICdhdWRpby8zZ3BwJzogJy4zZ3AnLFxuICAgICAgICAgICAgJ3ZpZGVvLzNncHAyJzogJy4zZzInLFxuICAgICAgICAgICAgJ2F1ZGlvLzNncHAyJzogJy4zZzInLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3gtN3otY29tcHJlc3NlZCc6ICcuN3onXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIHR5cGVNYXBwaW5nW21pbWVUeXBlXTtcbiAgICB9XG59XG5cblxuIl19
|
|
439
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXBpcGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9iYXNlL3NyYy9waXBlcy9jdXN0b20tcGlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQU8saUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQy9HLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7QUFJbkMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLEVBQUU7SUFDekIsSUFBSSxLQUFLLENBQUM7SUFDVixvR0FBb0c7SUFDcEcsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDakMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7S0FDN0I7SUFDRCx3RkFBd0Y7SUFDeEYsS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxNQUFNLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxZQUFZLEVBQUUsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDM0YsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQyxDQUFDO0FBS0YsTUFBTSxPQUFPLHVCQUF1QjtJQUNoQyxTQUFTLENBQUMsS0FBVSxFQUFFLGNBQXNCLEVBQUUsWUFBb0IsRUFBRSxZQUFpQixFQUFFLFlBQXFCLEVBQUUsWUFBb0IsRUFBRSxxQkFBK0IsRUFB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TUFBTTtZQUNsQixZQUFZLEVBQUUsTUFBTTtZQUNwQix1QkFBdUIsRUFBRSxNQUFNO1lBQy9CLFdBQVcsRUFBRSxNQUFNO1lBQ25CLFlBQVksRUFBRSxPQUFPO1lBQ3JCLFlBQVksRUFBRSxPQUFPO1lBQ3JCLFlBQVksRUFBRSxPQUFPO1lBQ3JCLFdBQVcsRUFBRSxPQUFPO1lBQ3BCLFlBQVksRUFBRSxRQUFRO1lBQ3RCLHVCQUF1QixFQUFFLFFBQVE7WUFDakMsMEJBQTBCLEVBQUUsTUFBTTtZQUNsQyxtRUFBbUUsRUFBRSxPQUFPO1lBQzVFLGlCQUFpQixFQUFFLE1BQU07WUFDekIsaUNBQWlDLEVBQUUsTUFBTTtZQUN6QyxpQkFBaUIsRUFBRSxNQUFNO1lBQ3pCLFlBQVksRUFBRSxNQUFNO1lBQ3BCLFlBQVksRUFBRSxNQUFNO1lBQ3BCLGFBQWEsRUFBRSxNQUFNO1lBQ3JCLGFBQWEsRUFBRSxNQUFNO1lBQ3JCLDZCQUE2QixFQUFFLEtBQUs7U0FDdkMsQ0FBQztRQUVGLE9BQU8sV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7O2tHQTFFUSx5QkFBeUI7dUdBQXpCLHlCQUF5Qjt1RkFBekIseUJBQXlCO2NBSHJDLElBQUk7ZUFBQztnQkFDRixJQUFJLEVBQUUsdUJBQXVCO2FBQ2hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRlUGlwZSwgRGVjaW1hbFBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ1VSUkVOQ1lfSU5GTywgaXNEZWZpbmVkLCBBcHAsIEN1c3RvbVBpcGVNYW5hZ2VyLCBBYnN0cmFjdEkxOG5TZXJ2aWNlLCBoYXNPZmZzZXRTdHIgfSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQgeyBXbVBpcGUgfSBmcm9tIFwiLi93bS1waXBlXCI7XG5cbmRlY2xhcmUgY29uc3QgbW9tZW50LCBfLCAkO1xuXG5jb25zdCBnZXRFcG9jaFZhbHVlID0gZGF0YSA9PiB7XG4gICAgbGV0IGVwb2NoO1xuICAgIC8vIEZvciBkYXRhIGluIGZvcm0gb2Ygc3RyaW5nIG51bWJlciAoJzEyMycpLCBjb252ZXJ0IHRvIG51bWJlciAoMTIzKS4gQW5kIGRvbid0IHBhcnNlIGRhdGUgb2JqZWN0cy5cbiAgICBpZiAoIV8uaXNEYXRlKGRhdGEpICYmICFpc05hTihkYXRhKSkge1xuICAgICAgICBkYXRhID0gcGFyc2VJbnQoZGF0YSwgMTApO1xuICAgIH1cbiAgICAvLyBnZXQgdGhlIHRpbWVzdGFtcCB2YWx1ZS4gSWYgZGF0YSBpcyB0aW1lIHN0cmluZywgYXBwZW5kIGRhdGUgc3RyaW5nIHRvIHRoZSB0aW1lIHZhbHVlXG4gICAgZXBvY2ggPSBtb21lbnQoZGF0YSkudmFsdWVPZigpIHx8IG1vbWVudChuZXcgRGF0ZSgpLnRvRGF0ZVN0cmluZygpICsgJyAnICsgZGF0YSkudmFsdWVPZigpO1xuICAgIHJldHVybiBlcG9jaDtcbn07XG5cbkBQaXBlKHtcbiAgICBuYW1lOiAndHJhaWxpbmdaZXJvRGVjaW1hbFBpcGUnXG59KVxuZXhwb3J0IGNsYXNzIFRyYWlsaW5nWmVyb0RlY2ltYWxQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKHZhbHVlOiBhbnksIHNlbGVjdGVkTG9jYWxlOiBzdHJpbmcsIG51bWJlcmZpbHRlcjogc3RyaW5nLCBsb2NhbGVmaWx0ZXI6IGFueSwgdHJhaWxpbmd6ZXJvOiBib29sZWFuLCBkZWNpbWFsVmFsdWU6IHN0cmluZywgc2tpcFRyYWlsaW5nWmVyb0NoZWNrPzogYm9vbGVhbiwgZm9ybWF0dGVkTG9jYWxlPyk6IGFueSB7XG4gICAgICAgIG51bWJlcmZpbHRlciA9IHRyYWlsaW5nemVybyAmJiAhc2tpcFRyYWlsaW5nWmVyb0NoZWNrID8gYDEuJHtkZWNpbWFsVmFsdWUubGVuZ3RofS0xNmA6IG51bWJlcmZpbHRlcjtcbiAgICAgICAgY29uc3QgbG9jYWxlID0gZm9ybWF0dGVkTG9jYWxlID8gZm9ybWF0dGVkTG9jYWxlWydudW1iZXInXSA6IHVuZGVmaW5lZDtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVjaW1hbFBpcGUudHJhbnNmb3JtKHZhbHVlLCBudW1iZXJmaWx0ZXIsIGxvY2FsZWZpbHRlciB8fCBsb2NhbGUgfHwgc2VsZWN0ZWRMb2NhbGUpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGVjaW1hbFBpcGU6IERlY2ltYWxQaXBlKSB7IH1cblxufVxuXG5AUGlwZSh7XG4gICAgbmFtZTogJ3RvRGF0ZSdcbn0pXG5leHBvcnQgY2xhc3MgVG9EYXRlUGlwZSBleHRlbmRzIFdtUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIC8vIFRoaXMgbWV0aG9kIGNhbGxzIHRoZSBjdXN0b20gZm9ybWF0dGVyIGZuIGFmdGVyIGFwcGx5aW5nIHRoZSBleGlzaXRuZyBkYXRlIHBhdHRlcm5cbiAgICByZXR1cm5GbihkYXRhLCBhcmdzKSB7XG4gICAgICAgIGlmICh0aGlzLmlzQ3VzdG9tUGlwZSkge1xuICAgICAgICAgICAgaWYgKGFyZ3MpIHtcbiAgICAgICAgICAgICAgICBhcmdzWzBdID0gZGF0YTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmN1c3RvbUZvcm1hdHRlcihkYXRhLCBhcmdzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gICAgdHJhbnNmb3JtKGRhdGE6IGFueSwgZm9ybWF0OiBhbnksIHRpbWV6b25lPywgY29tcEluc3RhbmNlPykge1xuICAgICAgICBsZXQgdGltZXN0YW1wO1xuICAgICAgICAvLyAnbnVsbCcgaXMgdG8gYmUgdHJlYXRlZCBhcyBhIHNwZWNpYWwgY2FzZSwgSWYgdXNlciB3YW50cyB0byBlbnRlciBudWxsIHZhbHVlLCBlbXB0eSBzdHJpbmcgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIGJhY2tlbmRcbiAgICAgICAgaWYgKGRhdGEgPT09ICdudWxsJyB8fCBkYXRhID09PSAnJykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmV0dXJuRm4oJycsIGFyZ3VtZW50cyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc0RlZmluZWQoZGF0YSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJldHVybkZuKCcnLGFyZ3VtZW50cyk7XG4gICAgICAgIH1cbiAgICAgICAgdGltZXN0YW1wID0gZ2V0RXBvY2hWYWx1ZShkYXRhKTtcbiAgICAgICAgaWYgKHRpbWVzdGFtcCkge1xuICAgICAgICAgICAgaWYgKGZvcm1hdCA9PT0gJ3RpbWVzdGFtcCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5yZXR1cm5Gbih0aW1lc3RhbXAsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZm9ybWF0ID09PSAnVVRDJykge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnJldHVybkZuKG5ldyBEYXRlKHRpbWVzdGFtcCkudG9JU09TdHJpbmcoKSwgYXJndW1lbnRzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBmb3JtYXR0ZWRWYWw7XG4gICAgICAgICAgICBjb25zdCB0aW1lWm9uZSA9IHRoaXMuaTE4blNlcnZpY2UgPyB0aGlzLmkxOG5TZXJ2aWNlLmdldFRpbWV6b25lKGNvbXBJbnN0YW5jZSkgOiB0aW1lem9uZTtcbiAgICAgICAgICAgIGlmICh0aW1lWm9uZSAmJiAoZGF0YSA9PT0gdGltZXN0YW1wIHx8IGhhc09mZnNldFN0cihkYXRhKSkpIHtcbiAgICAgICAgICAgICAgICBmb3JtYXR0ZWRWYWwgPSBtb21lbnQodGltZXN0YW1wKS50eih0aW1lWm9uZSkuZm9ybWF0KGZvcm1hdC5yZXBsYWNlQWxsKCd5JywgJ1knKS5yZXBsYWNlQWxsKCdkJywgJ0QnKS5yZXBsYWNlKCdhJywgJ0EnKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGZvcm1hdHRlZFZhbCA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHRpbWVzdGFtcCwgZm9ybWF0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJldHVybkZuKGZvcm1hdHRlZFZhbCwgYXJndW1lbnRzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5yZXR1cm5GbignJywgYXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhdGVQaXBlOiBEYXRlUGlwZSwgcHJpdmF0ZSBpMThuU2VydmljZTogQWJzdHJhY3RJMThuU2VydmljZSwgcHJvdGVjdGVkIGN1c3RvbVBpcGVNYW5hZ2VyOiBDdXN0b21QaXBlTWFuYWdlcikge1xuICAgICAgICBzdXBlcigndG9EYXRlJywgY3VzdG9tUGlwZU1hbmFnZXIpO1xuICAgIH1cbn1cblxuQFBpcGUoe1xuICAgIG5hbWU6ICd0b051bWJlcidcbn0pXG5leHBvcnQgY2xhc3MgVG9OdW1iZXJQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKGRhdGEsIGZyYWNTaXplKSB7XG4gICAgICAgIGlmIChmcmFjU2l6ZSAmJiAhU3RyaW5nKGZyYWNTaXplKS5tYXRjaCgvXihcXGQrKT9cXC4oKFxcZCspKC0oXFxkKykpPyk/JC8pKSB7XG4gICAgICAgICAgICBmcmFjU2l6ZSA9ICcxLicgKyBmcmFjU2l6ZSArICctJyArIGZyYWNTaXplO1xuICAgICAgICB9XG4gICAgICAgIGlmICghXy5pc05hTigrZGF0YSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGxvY2FsZSA9IHRoaXMuaTE4blNlcnZpY2UgJiYgdGhpcy5pMThuU2VydmljZS5nZXR3aWRnZXRMb2NhbGUoKSA/IHRoaXMuaTE4blNlcnZpY2UuZ2V0d2lkZ2V0TG9jYWxlKCkgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWRMb2NhbGUgPSBsb2NhbGUgPyBsb2NhbGVbJ251bWJlciddIDogbnVsbDtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmRlY2ltYWxQaXBlLnRyYW5zZm9ybShkYXRhLCBmcmFjU2l6ZSwgZm9ybWF0dGVkTG9jYWxlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRlY2ltYWxQaXBlOiBEZWNpbWFsUGlwZSwgIEBJbmplY3QoQWJzdHJhY3RJMThuU2VydmljZSkgcHJpdmF0ZSBpMThuU2VydmljZTogQWJzdHJhY3RJMThuU2VydmljZSkge1xuICAgIH1cbn1cblxuQFBpcGUoe1xuICAgIG5hbWU6ICd0b0N1cnJlbmN5J1xufSlcbmV4cG9ydCBjbGFzcyBUb0N1cnJlbmN5UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHRyYW5zZm9ybShkYXRhLCBjdXJyZW5jeVN5bWJvbCwgZnJhY1NpemUpIHtcbiAgICAgICAgY29uc3QgX2N1cnJlbmN5U3ltYm9sID0gKENVUlJFTkNZX0lORk9bY3VycmVuY3lTeW1ib2xdIHx8IHt9KS5zeW1ib2wgfHwgY3VycmVuY3lTeW1ib2wgfHwgJyc7XG4gICAgICAgIGxldCBfdmFsID0gbmV3IFRvTnVtYmVyUGlwZSh0aGlzLmRlY2ltYWxQaXBlLCB0aGlzLmkxOG5TZXJ2aWNlKS50cmFuc2Zvcm0oZGF0YSwgZnJhY1NpemUpO1xuICAgICAgICBjb25zdCBpc05lZ2F0aXZlTnVtYmVyID0gXy5zdGFydHNXaXRoKF92YWwsICctJyk7XG4gICAgICAgIGlmIChpc05lZ2F0aXZlTnVtYmVyKSB7XG4gICAgICAgICAgICBfdmFsID0gX3ZhbC5yZXBsYWNlKCctJywnJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIF92YWwgPyBpc05lZ2F0aXZlTnVtYmVyID8gJy0nKyBfY3VycmVuY3lTeW1ib2wgK192YWwgOl9jdXJyZW5jeVN5bWJvbCArIF92YWwgOiAnJztcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRlY2ltYWxQaXBlOiBEZWNpbWFsUGlwZSwgQEluamVjdChBYnN0cmFjdEkxOG5TZXJ2aWNlKSBwcml2YXRlIGkxOG5TZXJ2aWNlOiBBYnN0cmFjdEkxOG5TZXJ2aWNlKSB7XG4gICAgfVxufVxuXG5AUGlwZSh7XG4gICAgbmFtZTogJ3ByZWZpeCdcbn0pXG5leHBvcnQgY2xhc3MgUHJlZml4UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHRyYW5zZm9ybShkYXRhLCBwYWRkaW5nKSB7XG4gICAgICAgIHJldHVybiAoXy5pc1VuZGVmaW5lZChkYXRhKSB8fCBkYXRhID09PSBudWxsIHx8IGRhdGEgPT09ICcnKSA/IGRhdGEgOiAoKHBhZGRpbmcgfHwgJycpICsgZGF0YSk7XG4gICAgfVxufVxuXG5AUGlwZSh7XG4gICAgbmFtZTogJ3N1ZmZpeCdcbn0pXG5leHBvcnQgY2xhc3MgU3VmZml4UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHRyYW5zZm9ybShkYXRhLCBwYWRkaW5nKSB7XG4gICAgICAgIHJldHVybiAoXy5pc1VuZGVmaW5lZChkYXRhKSB8fCBkYXRhID09PSBudWxsIHx8IGRhdGEgPT09ICcnKSA/IGRhdGEgOiAoZGF0YSArIChwYWRkaW5nIHx8ICcnKSk7XG4gICAgfVxufVxuXG5cbi8qKlxuICogQ3VzdG9tIHBpcGU6IEl0IGlzIHdvcmsgYXMgaW50ZXJjZXB0b3IgYmV0d2VlbiB0aGUgdXNlciBjdXN0b20gcGlwZSBmdW5jdGlvbiBhbmQgYW5ndWxhciBwaXBlXG4gKi9cbkBQaXBlKHtcbiAgICBuYW1lOiAnY3VzdG9tJ1xufSlcbmV4cG9ydCBjbGFzcyBDdXN0b21QaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjdXN0bWVVc2VyUGlwZTogQ3VzdG9tUGlwZU1hbmFnZXIpIHtcblxuICAgIH1cbiAgICB0cmFuc2Zvcm0oZGF0YSwgcGlwZW5hbWUpIHtcbiAgICAgICBsZXQgYXJndW1lbnRBcnIgPSBbXTtcbiAgICAgICBmb3IobGV0IGkgPTIgOyBpPGFyZ3VtZW50cy5sZW5ndGg7IGkrKyApe1xuICAgICAgICBhcmd1bWVudEFyci5wdXNoKGFyZ3VtZW50c1tpXSk7XG4gICAgICAgfVxuXG4gICAgICAgIGxldCBwaXBlUmVmID0gdGhpcy5jdXN0bWVVc2VyUGlwZS5nZXRDdXN0b21QaXBlKHBpcGVuYW1lKTtcbiAgICAgICAgaWYoIXBpcGVSZWYgfHwgIV8uaXNGdW5jdGlvbihwaXBlUmVmLmZvcm1hdHRlcikpe1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdmb3JtYXR0ZXIgaXMgbm90IGRlZmluZWQsIHBsZWFzZSBjaGVjayB0aGUgY3VzdG9tIHBpcGVzIGRvY3VtZW50YXRpb24nKTtcbiAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICB9XG5cbiAgICAgICAgdHJ5e1xuICAgICAgICAgICAgcmV0dXJuIHBpcGVSZWYuZm9ybWF0dGVyKGRhdGEsIC4uLmFyZ3VtZW50QXJyKTtcbiAgICAgICAgfSBjYXRjaChlcnJvcil7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdQaXBlIG5hbWU6ICcrcGlwZW5hbWUsIGVycm9yKTtcbiAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICAgfVxuICAgIH1cbn1cblxuQFBpcGUoe1xuICAgIG5hbWU6ICd0aW1lRnJvbU5vdydcbn0pXG5leHBvcnQgY2xhc3MgVGltZUZyb21Ob3dQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKGRhdGEpIHtcbiAgICAgICAgbGV0IHRpbWVzdGFtcDtcbiAgICAgICAgaWYgKCFpc0RlZmluZWQoZGF0YSkpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgdGltZXN0YW1wID0gZ2V0RXBvY2hWYWx1ZShkYXRhKTtcbiAgICAgICAgcmV0dXJuIHRpbWVzdGFtcCA/IG1vbWVudCh0aW1lc3RhbXApLmZyb21Ob3coKSA6IHVuZGVmaW5lZDtcbiAgICB9XG59XG5cbkBQaXBlKHtcbiAgICBuYW1lOiAnbnVtYmVyVG9TdHJpbmcnXG59KVxuZXhwb3J0IGNsYXNzIE51bWJlclRvU3RyaW5nUGlwZSBleHRlbmRzIFRvTnVtYmVyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0geyB9XG5cbkBQaXBlKHtcbiAgICBuYW1lOiAnc3RyaW5nVG9OdW1iZXInXG59KVxuZXhwb3J0IGNsYXNzIFN0cmluZ1RvTnVtYmVyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHRyYW5zZm9ybShkYXRhKSB7XG4gICAgICAgIHJldHVybiBOdW1iZXIoZGF0YSkgfHwgdW5kZWZpbmVkO1xuICAgIH1cbn1cblxuQFBpcGUoe1xuICAgIG5hbWU6ICdmaWx0ZXInXG59KVxuZXhwb3J0IGNsYXNzIEZpbHRlclBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICB0cmFuc2Zvcm0oZGF0YTogYW55W10sIGZpZWxkOiBhbnksIHZhbHVlOiBhbnkpIHtcbiAgICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYgb2JqZWN0IGlzIHBhc3NlZCBhcyBmaXJzdCBwYXJhbXRlclxuICAgICAgICBpZiAoXy5pc09iamVjdChmaWVsZCkpIHtcbiAgICAgICAgICAgIHJldHVybiBfLmZpbHRlcihkYXRhLCBmaWVsZCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYga2V5IHZhbHVlIHBhaXIgaXMgcHJvdmlkZWRcbiAgICAgICAgcmV0dXJuIF8uZmlsdGVyKGRhdGEsIGl0ZW0gPT4ge1xuICAgICAgICAgICAgcmV0dXJuIF8uaW5jbHVkZXMoaXRlbVtmaWVsZF0sIHZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG5AUGlwZSh7XG4gICAgbmFtZTogJ2ZpbGVzaXplJ1xufSlcbmV4cG9ydCBjbGFzcyBGaWxlU2l6ZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICB0cmFuc2Zvcm0oYnl0ZXM6IG51bWJlciwgcHJlY2lzaW9uOiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgdW5pdHMgPSBbXG4gICAgICAgICAgICAnYnl0ZXMnLFxuICAgICAgICAgICAgJ0tCJyxcbiAgICAgICAgICAgICdNQicsXG4gICAgICAgICAgICAnR0InLFxuICAgICAgICAgICAgJ1RCJyxcbiAgICAgICAgICAgICdQQidcbiAgICAgICAgXTtcblxuICAgICAgICAvKlRvZG9bc2h1YmhhbV1cbiAgICAgICAgaWYgKGlzTmFOKHBhcnNlRmxvYXQoYnl0ZXMpKSB8fCAhaXNGaW5pdGUoYnl0ZXMpKSB7XG4gICAgICAgICAgICByZXR1cm4gaXNNb2JpbGUoKSA/ICcnIDogJz8nO1xuICAgICAgICB9Ki9cbiAgICAgICAgbGV0IHVuaXQgPSAwO1xuICAgICAgICB3aGlsZSAoYnl0ZXMgPj0gMTAyNCkge1xuICAgICAgICAgICAgYnl0ZXMgLz0gMTAyNDtcbiAgICAgICAgICAgIHVuaXQrKztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYnl0ZXMudG9GaXhlZCgrcHJlY2lzaW9uKSArICcgJyArIHVuaXRzW3VuaXRdO1xuICAgIH1cbn1cblxuQFBpcGUoe1xuICAgIG5hbWU6ICdmaWxlSWNvbkNsYXNzJ1xufSlcbmV4cG9ydCBjbGFzcyBGaWxlSWNvbkNsYXNzUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHRyYW5zZm9ybShmaWxlRXh0ZW5zaW9uOiBhbnkpIHtcbiAgICAgICAgY29uc3QgZmlsZUNsYXNzTWFwcGluZyA9IHtcbiAgICAgICAgICAgICd6aXAnICAgICAgIDogICAnZmEtZmlsZS16aXAtbycsXG4gICAgICAgICAgICAncGRmJyAgICAgICA6ICAgJ2ZhLWZpbGUtcGRmLW8nLFxuICAgICAgICAgICAgJ3JhcicgICAgICAgOiAgICdmYS1maWxlLWFyY2hpdmUtbycsXG4gICAgICAgICAgICAndHh0JyAgICAgICA6ICAgJ2ZhLWZpbGUtdGV4dC1vJyxcbiAgICAgICAgICAgICdwcHQnICAgICAgIDogICAnZmEtZmlsZS1wb3dlcnBvaW50LW8nLFxuICAgICAgICAgICAgJ3BvdCcgICAgICAgOiAgICdmYS1maWxlLXBvd2VycG9pbnQtbycsXG4gICAgICAgICAgICAncHBzJyAgICAgICA6ICAgJ2ZhLWZpbGUtcG93ZXJwb2ludC1vJyxcbiAgICAgICAgICAgICdwcHR4JyAgICAgIDogICAnZmEtZmlsZS1wb3dlcnBvaW50LW8nLFxuICAgICAgICAgICAgJ3BvdHgnICAgICAgOiAgICdmYS1maWxlLXBvd2VycG9pbnQtbycsXG4gICAgICAgICAgICAncHBzeCcgICAgICA6ICAgJ2ZhLWZpbGUtcG93ZXJwb2ludC1vJyxcbiAgICAgICAgICAgICdtcGcnICAgICAgIDogICAnZmEtZmlsZS1tb3ZpZS1vJyxcbiAgICAgICAgICAgICdtcDQnICAgICAgIDogICAnZmEtZmlsZS1tb3ZpZS1vJyxcbiAgICAgICAgICAgICdtb3YnICAgICAgIDogICAnZmEtZmlsZS1tb3ZpZS1vJyxcbiAgICAgICAgICAgICdhdmknICAgICAgIDogICAnZmEtZmlsZS1tb3ZpZS1vJyxcbiAgICAgICAgICAgICdtcDMnICAgICAgIDogICAnZmEtZmlsZS1hdWRpby1vJyxcbiAgICAgICAgICAgICdkb2N4JyAgICAgIDogICAnZmEtZmlsZS13b3JkLW8nLFxuICAgICAgICAgICAgJ2pzJyAgICAgICAgOiAgICdmYS1maWxlLWNvZGUtbycsXG4gICAgICAgICAgICAnbWQnICAgICAgICA6ICAgJ2ZhLWZpbGUtY29kZS1vJyxcbiAgICAgICAgICAgICdodG1sJyAgICAgIDogICAnZmEtZmlsZS1jb2RlLW8nLFxuICAgICAgICAgICAgJ2NzcycgICAgICAgOiAgICdmYS1maWxlLWNvZGUtbycsXG4gICAgICAgICAgICAneGxzeCcgICAgICA6ICAgJ2ZhLWZpbGUtZXhjZWwtbycsXG4gICAgICAgICAgICAncG5nJyAgICAgICA6ICAgJ2ZhLWZpbGUtaW1hZ2UtbycsXG4gICAgICAgICAgICAnanBnJyAgICAgICA6ICAgJ2ZhLWZpbGUtaW1hZ2UtbycsXG4gICAgICAgICAgICAnanBlZycgICAgICA6ICAgJ2ZhLWZpbGUtaW1hZ2UtbycsXG4gICAgICAgICAgICAnZmlsZScgICAgICA6ICAgJ2ZhLWZpbGUtbycsXG4gICAgICAgICAgICAnZGVmYXVsdCcgICA6ICAgJ2ZhLWZpbGUtbydcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gJ2ZhICcgKyAoZmlsZUNsYXNzTWFwcGluZ1tmaWxlRXh0ZW5zaW9uXSB8fCAnZmEtZmlsZS1vJyk7XG4gICAgfVxufVxuXG5AUGlwZSh7XG4gICAgbmFtZTogJ3N0YXRlQ2xhc3MnXG59KVxuZXhwb3J0IGNsYXNzIFN0YXRlQ2xhc3NQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKHN0YXRlKSB7XG4gICAgICAgIGNvbnN0IHN0YXRlQ2xhc3NNYXAgPSB7XG4gICAgICAgICAgICAnc3VjY2VzcycgICA6ICd3aSB3aS1kb25lIHRleHQtc3VjY2VzcycsXG4gICAgICAgICAgICAnZXJyb3InICAgICA6ICd3aSB3aS1lcnJvciB0ZXh0LWRhbmdlcidcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHN0YXRlQ2xhc3NNYXBbc3RhdGUudG9Mb3dlckNhc2UoKV07XG4gICAgfVxufVxuXG5AUGlwZSh7XG4gICAgbmFtZTogJ2ZpbGVFeHRlbnNpb25Gcm9tTWltZSdcbn0pXG5leHBvcnQgY2xhc3MgRmlsZUV4dGVuc2lvbkZyb21NaW1lUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHRyYW5zZm9ybShtaW1lVHlwZTogYW55KSB7XG4gICAgICAgIGNvbnN0IHR5cGVNYXBwaW5nID0ge1xuICAgICAgICAgICAgJ2F1ZGlvL2FhYyc6ICcuYWFjJyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi94LWFiaXdvcmQnOiAnLmFidycsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vdm5kLmFuZHJvaWQucGFja2FnZS1hcmNoaXZlJzogJy5hcGsnLFxuICAgICAgICAgICAgJ3ZpZGVvL3gtbXN2aWRlbyc6ICcuYXZpJyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi92bmQuYW1hem9uLmVib29rJzogJy5hencnLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSc6ICcuYmluJyxcbiAgICAgICAgICAgICdpbWFnZS9ibXAnOiAnLmJtcCcsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24veC1iemlwJzogJy5ieicsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24veC1iemlwMic6ICcuYnoyJyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi94LWNzaCc6ICcuY3NoJyxcbiAgICAgICAgICAgICd0ZXh0L2Nzcyc6ICcuY3NzJyxcbiAgICAgICAgICAgICd0ZXh0L2Nzdic6ICcuY3N2JyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9tc3dvcmQnOiAnLmRvYycsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZG9jdW1lbnQnOiAnLmRvY3gnLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1mb250b2JqZWN0JzogJy5lb3QnLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2VwdWIremlwJzogJy5lcHViJyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9lY21hc2NyaXB0JzogJy5lcycsXG4gICAgICAgICAgICAnaW1hZ2UvZ2lmJzogJy5naWYnLFxuICAgICAgICAgICAgJ3RleHQvaHRtbCc6ICcuaHRtbCcsXG4gICAgICAgICAgICAnaW1hZ2UveC1pY29uJzogJy5pY28nLFxuICAgICAgICAgICAgJ3RleHQvY2FsZW5kYXInOiAnLmljcycsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vamF2YS1hcmNoaXZlJzogJy5qYXInLFxuICAgICAgICAgICAgJ2ltYWdlL2pwZWcnOiBbJy5qcGVnJywgJy5qcGcnXSxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0JzogJy5qcycsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbic6ICcuanNvbicsXG4gICAgICAgICAgICAnYXVkaW8vbWlkaSc6ICcubWlkJyxcbiAgICAgICAgICAgICdhdWRpby94LW1pZGknOiAnLm1pZGknLFxuICAgICAgICAgICAgJ3ZpZGVvL21wZWcnOiAnLm1wZWcnLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5hcHBsZS5pbnN0YWxsZXIreG1sJzogJ21wa2cnLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQucHJlc2VudGF0aW9uJzogJy5vZHAnLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuc3ByZWFkc2hlZXQnOiAnLm9kcycsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC50ZXh0JzogJy5vZHQnLFxuICAgICAgICAgICAgJ2F1ZGlvL29nZyc6ICcub2dhJyxcbiAgICAgICAgICAgICd2aWRlby9vZ2cnOiAnLm9ndicsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vb2dnJzogJy5vZ3gnLFxuICAgICAgICAgICAgJ2ZvbnQvb3RmJzogJy5vdGYnLFxuICAgICAgICAgICAgJ2ltYWdlL3BuZyc6ICcucG5nJyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9wZGYnOiAnLnBkZicsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQnOiAnLnBwdCcsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnByZXNlbnRhdGlvbic6ICcucHB0eCcsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24veC1yYXItY29tcHJlc3NlZCc6ICcucmFyJyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9ydGYnOiAnLnJ0ZicsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24veC1zaCc6ICcuc2gnLFxuICAgICAgICAgICAgJ2ltYWdlL3N2Zyt4bWwnOiAnLnN2ZycsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2gnOiAnLnN3ZicsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24veC10YXInOiAnLnRhcicsXG4gICAgICAgICAgICAnaW1hZ2UvdGlmZic6ICcudGlmZicsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vdHlwZXNjcmlwdCc6ICcudHMnLFxuICAgICAgICAgICAgJ2ZvbnQvdHRmJzogJy50dGYnLFxuICAgICAgICAgICAgJ3RleHQvcGxhaW4nOiAnLnR4dCcsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vdm5kLnZpc2lvJzogJy52c2QnLFxuICAgICAgICAgICAgJ2F1ZGlvL3dhdic6ICcud2F2JyxcbiAgICAgICAgICAgICdhdWRpby93ZWJtJzogJy53ZWJhJyxcbiAgICAgICAgICAgICd2aWRlby93ZWJtJzogJy53ZWJtJyxcbiAgICAgICAgICAgICdpbWFnZS93ZWJwJzogJy53ZWJwJyxcbiAgICAgICAgICAgICdmb250L3dvZmYnOiAnLndvZmYnLFxuICAgICAgICAgICAgJ2ZvbnQvd29mZjInOiAnLndvZmYyJyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi94aHRtbCt4bWwnOiAnLnhodG1sJyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwnOiAnLnhscycsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQnOiAnLnhsc3gnLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3htbCc6ICcueG1sJyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi92bmQubW96aWxsYS54dWwreG1sJzogJy54dWwnLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3ppcCc6ICcuemlwJyxcbiAgICAgICAgICAgICd2aWRlby8zZ3BwJzogJy4zZ3AnLFxuICAgICAgICAgICAgJ2F1ZGlvLzNncHAnOiAnLjNncCcsXG4gICAgICAgICAgICAndmlkZW8vM2dwcDInOiAnLjNnMicsXG4gICAgICAgICAgICAnYXVkaW8vM2dwcDInOiAnLjNnMicsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24veC03ei1jb21wcmVzc2VkJzogJy43eidcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gdHlwZU1hcHBpbmdbbWltZVR5cGVdO1xuICAgIH1cbn1cblxuXG4iXX0=
|
|
@@ -2431,25 +2431,32 @@ TrailingZeroDecimalPipe.ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: "traili
|
|
|
2431
2431
|
}], function () { return [{ type: i1$1.DecimalPipe }]; }, null);
|
|
2432
2432
|
})();
|
|
2433
2433
|
class ToDatePipe extends WmPipe {
|
|
2434
|
-
|
|
2434
|
+
// This method calls the custom formatter fn after applying the exisitng date pattern
|
|
2435
|
+
returnFn(data, args) {
|
|
2435
2436
|
if (this.isCustomPipe) {
|
|
2436
|
-
|
|
2437
|
+
if (args) {
|
|
2438
|
+
args[0] = data;
|
|
2439
|
+
}
|
|
2440
|
+
return this.customFormatter(data, args);
|
|
2437
2441
|
}
|
|
2442
|
+
return data;
|
|
2443
|
+
}
|
|
2444
|
+
transform(data, format, timezone, compInstance) {
|
|
2438
2445
|
let timestamp;
|
|
2439
2446
|
// 'null' is to be treated as a special case, If user wants to enter null value, empty string will be passed to the backend
|
|
2440
2447
|
if (data === 'null' || data === '') {
|
|
2441
|
-
return '';
|
|
2448
|
+
return this.returnFn('', arguments);
|
|
2442
2449
|
}
|
|
2443
2450
|
if (!isDefined(data)) {
|
|
2444
|
-
return '';
|
|
2451
|
+
return this.returnFn('', arguments);
|
|
2445
2452
|
}
|
|
2446
2453
|
timestamp = getEpochValue(data);
|
|
2447
2454
|
if (timestamp) {
|
|
2448
2455
|
if (format === 'timestamp') {
|
|
2449
|
-
return timestamp;
|
|
2456
|
+
return this.returnFn(timestamp, arguments);
|
|
2450
2457
|
}
|
|
2451
2458
|
if (format === 'UTC') {
|
|
2452
|
-
return new Date(timestamp).toISOString();
|
|
2459
|
+
return this.returnFn(new Date(timestamp).toISOString(), arguments);
|
|
2453
2460
|
}
|
|
2454
2461
|
let formattedVal;
|
|
2455
2462
|
const timeZone = this.i18nService ? this.i18nService.getTimezone(compInstance) : timezone;
|
|
@@ -2459,9 +2466,9 @@ class ToDatePipe extends WmPipe {
|
|
|
2459
2466
|
else {
|
|
2460
2467
|
formattedVal = this.datePipe.transform(timestamp, format);
|
|
2461
2468
|
}
|
|
2462
|
-
return formattedVal;
|
|
2469
|
+
return this.returnFn(formattedVal, arguments);
|
|
2463
2470
|
}
|
|
2464
|
-
return '';
|
|
2471
|
+
return this.returnFn('', arguments);
|
|
2465
2472
|
}
|
|
2466
2473
|
constructor(datePipe, i18nService, customPipeManager) {
|
|
2467
2474
|
super('toDate', customPipeManager);
|