@sarasanalytics-com/design-system 0.0.74 → 0.0.76
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/card/menu-card/menu-card.component.mjs +2 -2
- package/esm2022/lib/form-input/form-input.component.mjs +19 -11
- package/esm2022/utils/validators.mjs +15 -3
- package/fesm2022/sarasanalytics-com-design-system.mjs +32 -12
- package/fesm2022/sarasanalytics-com-design-system.mjs.map +1 -1
- package/package.json +1 -1
- package/utils/validators.d.ts +1 -1
|
@@ -48,7 +48,7 @@ export class MenuCardComponent extends FieldType {
|
|
|
48
48
|
actionHandler(button, event) {
|
|
49
49
|
event.stopPropagation();
|
|
50
50
|
event.preventDefault();
|
|
51
|
-
this.onButtonClickEvent.next(button);
|
|
51
|
+
this.onButtonClickEvent.next({ category: this.selectedStep, button: button });
|
|
52
52
|
}
|
|
53
53
|
showSources(sourceType) {
|
|
54
54
|
this.onFooterClickEvent.emit(sourceType);
|
|
@@ -74,4 +74,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
74
74
|
}], onFooterClickEvent: [{
|
|
75
75
|
type: Output
|
|
76
76
|
}] } });
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9saWIvY2FyZC9tZW51LWNhcmQvbWVudS1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9saWIvY2FyZC9tZW51LWNhcmQvbWVudS1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxTQUFTLEdBQUcsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUMvRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUMvRixPQUFP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LCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEd1aWRlQ2FyZENvbXBvbmVudCB9IGZyb20gJy4uL2d1aWRlLWNhcmQvZ3VpZGUtY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmllbGRUeXBlLCB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGb3JtbHlNb2R1bGUgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IENhcmRDb21wb25lbnQgfSBmcm9tICcuLi9jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYXJkQ3VzdG9tSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vY2FyZC1jdXN0b20taGVhZGVyL2NhcmQtY3VzdG9tLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0RXhwYW5zaW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZXhwYW5zaW9uJztcbmltcG9ydCB7IENoaXBzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY2hpcHMvY2hpcHMuY29tcG9uZW50JztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IENhcmRUaXRsZUFjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuLi9jYXJkLXRpdGxlLWFjdGlvbnMvY2FyZC10aXRsZS1hY3Rpb25zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBmaW5kIGFzIF9maW5kIH0gZnJvbSAnbG9kYXNoJ1xuaW1wb3J0IHsgTWVzc2FnZUJhbm5lckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21lc3NhZ2UtYmFubmVyL21lc3NhZ2UtYmFubmVyLmNvbXBvbmVudCc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzYS1tZW51LWNhcmQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ2hpcHNDb21wb25lbnQsIENvbW1vbk1vZHVsZSwgR3VpZGVDYXJkQ29tcG9uZW50LCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgRm9ybWx5TW9kdWxlLCBDYXJkQ29tcG9uZW50LCBDYXJkQ3VzdG9tSGVhZGVyQ29tcG9uZW50LCBJY29uQ29tcG9uZW50LCBNYXRFeHBhbnNpb25Nb2R1bGUsIEJ1dHRvbkNvbXBvbmVudCwgQ2FyZFRpdGxlQWN0aW9uc0NvbXBvbmVudCwgTWF0VG9vbHRpcE1vZHVsZSwgTWVzc2FnZUJhbm5lckNvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9tZW51LWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vbWVudS1jYXJkLmNvbXBvbmVudC5jc3MnXG59KVxuZXhwb3J0IGNsYXNzIE1lbnVDYXJkQ29tcG9uZW50IGV4dGVuZHMgRmllbGRUeXBlIHtcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZyA9ICdDYXRlZ29yaWVzOic7XG4gIEBJbnB1dCgpIHN0ZXBzOiBhbnlbXTtcbiAgQElucHV0KCkgZm9vdGVyRGV0YWlsczogYW55O1xuICBAT3V0cHV0KCkgb25CdXR0b25DbGlja0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBvbkNhcmRDbGlja0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBvbkZvb3RlckNsaWNrRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgc2VsZWN0ZWRTdGVwOiBhbnk7XG4gIHNlbGVjdGVkR3VpZGVTdGVwOiBhbnkgfCBudWxsID0gbnVsbDtcbiAgY3VzdG9tQ2xhc3NXcmFwcGVyID0gJ21lbnVDYXJkU291cmNlQ29udGFpbmVyJ1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2VsZWN0ZWRTdGVwID0gX2ZpbmQodGhpcy5zdGVwcywgeyBpc1NlbGVjdGVkOiB0cnVlIH0pXG4gIH1cblxuICBvblN0ZXBDaGFuZ2VkKGV2ZW50KSB7XG4gICAgdGhpcy5zZWxlY3RlZFN0ZXAgPSBldmVudDtcbiAgfVxuXG4gIG9uQ2FyZENsaWNrKHNvdXJjZTogYW55LCBidXR0b246IGFueSwgZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLm9uQ2FyZENsaWNrRXZlbnQuZW1pdCh7IGNhdGVnb3J5OiB0aGlzLnNlbGVjdGVkU3RlcCwgc291cmNlOiBzb3VyY2UsIGJ1dHRvbjogYnV0dG9uIH0pXG4gIH1cblxuICBvbkFkdmFuY2VkRmVhdHVyZXNPcGVuZWQoKSB7XG4gICAgdGhpcy5zZWxlY3RlZFN0ZXAuYWR2YW5jZWRGZWF0dXJlc0V4cGFuZGVkID0gdHJ1ZTtcbiAgfVxuXG4gIG9uQWR2YW5jZWRGZWF0dXJlc0Nsb3NlZCgpIHtcbiAgICB0aGlzLnNlbGVjdGVkU3RlcC5hZHZhbmNlZEZlYXR1cmVzRXhwYW5kZWQgPSBmYWxzZTtcbiAgfVxuXG4gIGFjdGlvbkhhbmRsZXIoYnV0dG9uOiBhbnksIGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5vbkJ1dHRvbkNsaWNrRXZlbnQubmV4dChidXR0b24pO1xuICB9XG5cbiAgc2hvd1NvdXJjZXMoc291cmNlVHlwZTogYW55KSB7XG4gICAgdGhpcy5vbkZvb3RlckNsaWNrRXZlbnQuZW1pdChzb3VyY2VUeXBlKTtcbiAgICAvL2NvbnNvbGUubG9nKHNvdXJjZVR5cGUpXG4gICAgdGhpcy5vblN0ZXBDaGFuZ2VkKHNvdXJjZVR5cGUpXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtZW51LWNhcmQtY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImxlZnQtY2FyZC1jb250YWluZXJcIj5cbiAgICAgICAgPHNhLWd1aWRlLWNhcmQgW3RpdGxlXT1cIidDYXRlZ29yaWVzOidcIiBbc3RlcHNdPVwic3RlcHNcIiBbc2VsZWN0YWJsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgIChvblN0ZXBDbGlja2VkKT1cIm9uU3RlcENoYW5nZWQoJGV2ZW50KVwiIFtzZWxlY3RlZFN0ZXBdPVwic2VsZWN0ZWRTdGVwXCI+PC9zYS1ndWlkZS1jYXJkPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1mb290ZXItY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhvcml6b250YWwtbGluZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGZvb3RlckRldGFpbCBvZiBmb290ZXJEZXRhaWxzXCI+XG4gICAgICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwic2hvd1NvdXJjZXMoZm9vdGVyRGV0YWlsKVwiIGNsYXNzPVwiZm9vdGVyXCJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiZm9vdGVyRGV0YWlsID09PSBzZWxlY3RlZFN0ZXAgPyAnc2VsZWN0ZWQtc3RlcCcgOiAnb3RoZXItc3RlcCdcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb290ZXItdGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3tmb290ZXJEZXRhaWw/LnRpdGxlfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmb290ZXJEZXRhaWw/LmNvdW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+KHt7Zm9vdGVyRGV0YWlsPy5jb3VudH19KTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwicmlnaHQtY2FyZC1jb250YWluZXJcIj5cbiAgICAgICAgQGlmKHNlbGVjdGVkU3RlcD8ubWVzc2FnZUNvbnRlbnQpe1xuICAgICAgICA8ZGl2IGNsYXNzPVwibWVzc2FnZS1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxzYS1tZXNzYWdlLWJhbm5lciBbdHlwZV09XCInaW5mbydcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVzc2FnZS1jb250ZW50XCIgW2lubmVySHRtbF09XCJzZWxlY3RlZFN0ZXA/Lm1lc3NhZ2VDb250ZW50XCI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L3NhLW1lc3NhZ2UtYmFubmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGluZy1zdHlsZVwiPnt7c2VsZWN0ZWRTdGVwPy5zb3VyY2VzSGVhZGluZyB8fCAnQXZhaWxhYmxlIFNvdXJjZXMnfX06PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cInNlbGVjdGVkU3RlcD8uc291cmNlc0xpc3RcIiBjbGFzcz1cImNhcmRzLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc291cmNlIG9mIHNlbGVjdGVkU3RlcC5zb3VyY2VzTGlzdFwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjYXJkVGVtcGxhdGU7IGNvbnRleHQ6IHsgc291cmNlOiBzb3VyY2UsIHNlbGVjdGVkU3RlcDogc2VsZWN0ZWRTdGVwLCBhY3Rpb25CdXR0b246IHNlbGVjdGVkU3RlcD8uYWN0aW9uQnV0dG9uIH1cIj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPCEtLSBmb3IgYWR2YW5jZWQgb3B0aW9ucyAtLT5cbiAgICAgICAgPGRpdiAqbmdJZj1cInNlbGVjdGVkU3RlcD8uYWR2YW5jZWRTb3VyY2VzTGlzdCAmJiBzZWxlY3RlZFN0ZXAuYWR2YW5jZWRTb3VyY2VzTGlzdC5sZW5ndGggPiAwXCJcbiAgICAgICAgICAgIGNsYXNzPVwibWVudS1jYXJkLWFkdmFuY2VkLWZlYXR1cmVzLXNlY3Rpb25cIj5cblxuICAgICAgICAgICAgPG1hdC1leHBhbnNpb24tcGFuZWwgaGlkZVRvZ2dsZSBbZXhwYW5kZWRdPVwic2VsZWN0ZWRTdGVwPy5hZHZhbmNlZEZlYXR1cmVzRXhwYW5kZWQgfHwgZmFsc2VcIlxuICAgICAgICAgICAgICAgIChvcGVuZWQpPVwib25BZHZhbmNlZEZlYXR1cmVzT3BlbmVkKClcIiAoY2xvc2VkKT1cIm9uQWR2YW5jZWRGZWF0dXJlc0Nsb3NlZCgpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1lbnVBZHZhbmNlZEFjY29yZGlvblwiPlxuICAgICAgICAgICAgICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1wYW5lbC10aXRsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYW5lbC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYoIXNlbGVjdGVkU3RlcD8uYWR2YW5jZWRGZWF0dXJlc0V4cGFuZGVkKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImQtZmxleCBhbGlnbi1jZW50ZXIgc291cmNlLWljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNhLWljb24gW2ljb25dPVwic2VsZWN0ZWRTdGVwPy5hZHZhbmNlZEZlYXR1cmVDb2xsYXBzZWRJY29uIHx8ICdyaWdodENoZXZyb25PdXRsaW5lZCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXhcIiBjdXN0b21DbGFzcz1cImNvbG9yZWQtaWNvblwiIHNpemU9XCIyMFwiPjwvc2EtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfUBlbHNle1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZC1mbGV4IGFsaWduLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2EtaWNvbiBbaWNvbl09XCJzZWxlY3RlZFN0ZXA/LmFkdmFuY2VkRmVhdHVyZUV4cGFuZGVkSWNvbiB8fCAnZG93bkNoZXZyb25PdXRsaW5lZCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXhcIiBzaXplPVwiMjBcIj48L3NhLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFkdmFuY2VkLXRpdGxlXCI+e3sgc2VsZWN0ZWRTdGVwPy5hZHZhbmNlZEZlYXR1cmVUaXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1wYW5lbC10aXRsZT5cbiAgICAgICAgICAgICAgICA8L21hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleHBhbnNpb24tY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgIEBpZihzZWxlY3RlZFN0ZXA/LmFkdmFuY2VkRmVhdHVyZURpc2NsYWltZXIpe1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGlzY2xhaW1lci1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzYS1tZXNzYWdlLWJhbm5lciBbdHlwZV09XCInZGlzY2xhaW1lcidcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGlzY2xhaW1lci1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZihzZWxlY3RlZFN0ZXA/LmFkdmFuY2VkRmVhdHVyZURpc2NsYWltZXJUb29sdGlwKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0b29sdGlwLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNhLWljb24gaWNvbj1cImluZm9DaXJjbGVPdXRsaW5lZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwic2VsZWN0ZWRTdGVwPy5hZHZhbmNlZEZlYXR1cmVEaXNjbGFpbWVyVG9vbHRpcFwiIGN1c3RvbUNsYXNzPVwiaW5mby1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRvb2x0aXAtaWNvblwiPjwvc2EtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGlzY2xhaW1lci1zdHlsZVwiPnt7c2VsZWN0ZWRTdGVwPy5hZHZhbmNlZEZlYXR1cmVEaXNjbGFpbWVyfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKHNlbGVjdGVkU3RlcD8uYWR2YW5jZWRGZWF0dXJlRGlzY2xhaW1lckJ1dHRvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGlzY2xhaW1lci1idXR0b25zLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBidXR0b24gb2Ygc2VsZWN0ZWRTdGVwLmFkdmFuY2VkRmVhdHVyZURpc2NsYWltZXJCdXR0b25zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2EtYnV0dG9uIFt0ZXh0XT1cImJ1dHRvbi50ZXh0XCIgW3R5cGVdPVwiYnV0dG9uLnR5cGVcIiBbc2l6ZV09XCJidXR0b24uc2l6ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0YXRlXT1cImJ1dHRvbi5zdGF0ZVwiIFtpY29uUG9zaXRpb25dPVwiYnV0dG9uLmljb25Qb3NpdGlvblwiIFtpY29uXT1cImJ1dHRvbi5pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYnV0dG9uSWNvblNpemVdPVwiYnV0dG9uLmJ1dHRvbkljb25TaXplXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWN0aW9uSGFuZGxlcihidXR0b24sICRldmVudClcIj48L3NhLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zYS1tZXNzYWdlLWJhbm5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRzLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc291cmNlIG9mIHNlbGVjdGVkU3RlcD8uYWR2YW5jZWRTb3VyY2VzTGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjYXJkVGVtcGxhdGU7IGNvbnRleHQ6IHsgc291cmNlOiBzb3VyY2UsIHNlbGVjdGVkU3RlcDogc2VsZWN0ZWRTdGVwLCBhY3Rpb25CdXR0b246IHNlbGVjdGVkU3RlcD8uYWN0aW9uQnV0dG9uIH1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNjYXJkVGVtcGxhdGUgbGV0LXNvdXJjZT1cInNvdXJjZVwiIGxldC1zZWxlY3RlZFN0ZXA9XCJzZWxlY3RlZFN0ZXBcIiBsZXQtYWN0aW9uQnV0dG9uPVwiYWN0aW9uQnV0dG9uXCI+XG4gICAgPHNhLWNhcmQgW2NvbHVtbl09XCJmYWxzZVwiIFtzaG93Q2FyZEhlYWRlcl09XCJ0cnVlXCIgW3Nob3dDYXJkQm9keV09XCJmYWxzZVwiXG4gICAgICAgIFt3aWR0aF09XCJzZWxlY3RlZFN0ZXAuc291cmNlc0NhcmRXaWR0aCB8fCAnNDcxcHgnXCIgW3Nob3dIZWFkZXJCb2R5RGl2aWRlcl09XCJmYWxzZVwiXG4gICAgICAgIFtjdXN0b21XcmFwcGVyQ2xhc3NdPVwic2VsZWN0ZWRTdGVwLmN1c3RvbVdyYXBwZXJDbGFzcyB8fCBjdXN0b21DbGFzc1dyYXBwZXJcIlxuICAgICAgICBjbGFzcz1cInt7c291cmNlLmRpc2FibGVkID8gJ2Rpc2FibGVkLWNhcmQnOiAnZW5hYmxlZC1jYXJkJ319XCI+XG4gICAgICAgIDxzYS1jYXJkLXRpdGxlLWhlYWRlcj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYS1jYXJkLWFjY29yZGlvbi10aXRsZS1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2EtbWVudS1jYXJkLXRpdGxlLWljb24tY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYS1tZW51LWNhcmQtY3VzdG9tLXRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic291cmNlLmxvZ29VcmxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2EtaWNvbiBbaWNvbl09XCJzb3VyY2UubG9nb1VybFwiIGNsYXNzPVwiZC1mbGV4XCIgW2N1c3RvbUNsYXNzXT1cIidhdXRvLWRpbWVuc2lvbnMnXCI+PC9zYS1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbbWF0VG9vbHRpcF09XCJzb3VyY2U/LnRvb2x0aXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3NvdXJjZT8ubmFtZX19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNvdXJjZT8uY291bnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+KHt7c291cmNlLmNvdW50fX0pPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNvdXJjZT8uY2hpcERhdGFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNhLWNoaXAgW3R5cGVdPVwic291cmNlPy5jaGlwRGF0YS50eXBlXCIgW3N0YXRlXT1cInNvdXJjZT8uY2hpcERhdGEuc3RhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbGxpbmddPVwic291cmNlPy5jaGlwRGF0YS5maWxsaW5nXCIgW3RleHRdPVwic291cmNlPy5jaGlwRGF0YS50ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpY29uUG9zaXRpb25dPSdzb3VyY2U/LmNoaXBEYXRhLmljb25Qb3NpdGlvbidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpY29uUGF0aF09XCJzb3VyY2U/LmNoaXBEYXRhLmljb25QYXRoXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2EtY2hpcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFzb3VyY2UuZGlzYWJsZWQgJiYgKHNlbGVjdGVkU3RlcD8uYWN0aW9uQnV0dG9uICYmIChzZWxlY3RlZFN0ZXA/LnNob3dBY3Rpb25BY3Rpb25CdXR0b24gPyBhY3Rpb25CdXR0b24gOiBudWxsKSkgYXMgYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYS1jYXJkLXRpdGxlSWNvbiBuby1tYXJnaW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzYS1jYXJkLXRpdGxlLWFjdGlvbnM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNhLWJ1dHRvbiBbdGV4dF09XCJidXR0b24udGV4dFwiIFt0eXBlXT1cImJ1dHRvbi50eXBlXCIgW3NpemVdPVwiYnV0dG9uLnNpemVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RhdGVdPVwiYnV0dG9uLnN0YXRlXCIgW2ljb25Qb3NpdGlvbl09XCJidXR0b24uaWNvblBvc2l0aW9uXCIgW2ljb25dPVwiYnV0dG9uLmljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYnV0dG9uSWNvblNpemVdPVwiYnV0dG9uLmJ1dHRvbkljb25TaXplXCIgKGNsaWNrKT1cIm9uQ2FyZENsaWNrKHNvdXJjZSwgYnV0dG9uLCAkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zYS1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NhLWNhcmQtdGl0bGUtYWN0aW9ucz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zYS1jYXJkLXRpdGxlLWhlYWRlcj5cbiAgICA8L3NhLWNhcmQ+XG48L25nLXRlbXBsYXRlPiJdfQ==
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9saWIvY2FyZC9tZW51LWNhcmQvbWVudS1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9saWIvY2FyZC9tZW51LWNhcmQvbWVudS1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxTQUFTLEdBQUcsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUMvRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUMvRixPQUFP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Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgR3VpZGVDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi4vZ3VpZGUtY2FyZC9ndWlkZS1jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWVsZFR5cGUsIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1seU1vZHVsZSB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgQ2FyZENvbXBvbmVudCB9IGZyb20gJy4uL2NhcmQuY29tcG9uZW50JztcbmltcG9ydCB7IENhcmRDdXN0b21IZWFkZXJDb21wb25lbnQgfSBmcm9tICcuLi9jYXJkLWN1c3RvbS1oZWFkZXIvY2FyZC1jdXN0b20taGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRFeHBhbnNpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb24nO1xuaW1wb3J0IHsgQ2hpcHNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jaGlwcy9jaGlwcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ljb24vaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FyZFRpdGxlQWN0aW9uc0NvbXBvbmVudCB9IGZyb20gJy4uL2NhcmQtdGl0bGUtYWN0aW9ucy9jYXJkLXRpdGxlLWFjdGlvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IGZpbmQgYXMgX2ZpbmQgfSBmcm9tICdsb2Rhc2gnXG5pbXBvcnQgeyBNZXNzYWdlQmFubmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbWVzc2FnZS1iYW5uZXIvbWVzc2FnZS1iYW5uZXIuY29tcG9uZW50JztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NhLW1lbnUtY2FyZCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDaGlwc0NvbXBvbmVudCwgQ29tbW9uTW9kdWxlLCBHdWlkZUNhcmRDb21wb25lbnQsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3JtbHlNb2R1bGUsIENhcmRDb21wb25lbnQsIENhcmRDdXN0b21IZWFkZXJDb21wb25lbnQsIEljb25Db21wb25lbnQsIE1hdEV4cGFuc2lvbk1vZHVsZSwgQnV0dG9uQ29tcG9uZW50LCBDYXJkVGl0bGVBY3Rpb25zQ29tcG9uZW50LCBNYXRUb29sdGlwTW9kdWxlLCBNZXNzYWdlQmFubmVyQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL21lbnUtY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9tZW51LWNhcmQuY29tcG9uZW50LmNzcydcbn0pXG5leHBvcnQgY2xhc3MgTWVudUNhcmRDb21wb25lbnQgZXh0ZW5kcyBGaWVsZFR5cGUge1xuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nID0gJ0NhdGVnb3JpZXM6JztcbiAgQElucHV0KCkgc3RlcHM6IGFueVtdO1xuICBASW5wdXQoKSBmb290ZXJEZXRhaWxzOiBhbnk7XG4gIEBPdXRwdXQoKSBvbkJ1dHRvbkNsaWNrRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIG9uQ2FyZENsaWNrRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIG9uRm9vdGVyQ2xpY2tFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBzZWxlY3RlZFN0ZXA6IGFueTtcbiAgc2VsZWN0ZWRHdWlkZVN0ZXA6IGFueSB8IG51bGwgPSBudWxsO1xuICBjdXN0b21DbGFzc1dyYXBwZXIgPSAnbWVudUNhcmRTb3VyY2VDb250YWluZXInXG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zZWxlY3RlZFN0ZXAgPSBfZmluZCh0aGlzLnN0ZXBzLCB7IGlzU2VsZWN0ZWQ6IHRydWUgfSlcbiAgfVxuXG4gIG9uU3RlcENoYW5nZWQoZXZlbnQpIHtcbiAgICB0aGlzLnNlbGVjdGVkU3RlcCA9IGV2ZW50O1xuICB9XG5cbiAgb25DYXJkQ2xpY2soc291cmNlOiBhbnksIGJ1dHRvbjogYW55LCBldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMub25DYXJkQ2xpY2tFdmVudC5lbWl0KHsgY2F0ZWdvcnk6IHRoaXMuc2VsZWN0ZWRTdGVwLCBzb3VyY2U6IHNvdXJjZSwgYnV0dG9uOiBidXR0b24gfSlcbiAgfVxuXG4gIG9uQWR2YW5jZWRGZWF0dXJlc09wZW5lZCgpIHtcbiAgICB0aGlzLnNlbGVjdGVkU3RlcC5hZHZhbmNlZEZlYXR1cmVzRXhwYW5kZWQgPSB0cnVlO1xuICB9XG5cbiAgb25BZHZhbmNlZEZlYXR1cmVzQ2xvc2VkKCkge1xuICAgIHRoaXMuc2VsZWN0ZWRTdGVwLmFkdmFuY2VkRmVhdHVyZXNFeHBhbmRlZCA9IGZhbHNlO1xuICB9XG5cbiAgYWN0aW9uSGFuZGxlcihidXR0b246IGFueSwgZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLm9uQnV0dG9uQ2xpY2tFdmVudC5uZXh0KHsgY2F0ZWdvcnk6IHRoaXMuc2VsZWN0ZWRTdGVwLCBidXR0b246IGJ1dHRvbiB9KTtcbiAgfVxuXG4gIHNob3dTb3VyY2VzKHNvdXJjZVR5cGU6IGFueSkge1xuICAgIHRoaXMub25Gb290ZXJDbGlja0V2ZW50LmVtaXQoc291cmNlVHlwZSk7XG4gICAgLy9jb25zb2xlLmxvZyhzb3VyY2VUeXBlKVxuICAgIHRoaXMub25TdGVwQ2hhbmdlZChzb3VyY2VUeXBlKVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibWVudS1jYXJkLWNvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJsZWZ0LWNhcmQtY29udGFpbmVyXCI+XG4gICAgICAgIDxzYS1ndWlkZS1jYXJkIFt0aXRsZV09XCInQ2F0ZWdvcmllczonXCIgW3N0ZXBzXT1cInN0ZXBzXCIgW3NlbGVjdGFibGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAob25TdGVwQ2xpY2tlZCk9XCJvblN0ZXBDaGFuZ2VkKCRldmVudClcIiBbc2VsZWN0ZWRTdGVwXT1cInNlbGVjdGVkU3RlcFwiPjwvc2EtZ3VpZGUtY2FyZD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtZm9vdGVyLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJob3Jpem9udGFsLWxpbmVcIj48L3NwYW4+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmb290ZXJEZXRhaWwgb2YgZm9vdGVyRGV0YWlsc1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cInNob3dTb3VyY2VzKGZvb3RlckRldGFpbClcIiBjbGFzcz1cImZvb3RlclwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImZvb3RlckRldGFpbCA9PT0gc2VsZWN0ZWRTdGVwID8gJ3NlbGVjdGVkLXN0ZXAnIDogJ290aGVyLXN0ZXAnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9vdGVyLXRleHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7Zm9vdGVyRGV0YWlsPy50aXRsZX19XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZm9vdGVyRGV0YWlsPy5jb3VudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPih7e2Zvb3RlckRldGFpbD8uY291bnR9fSk8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0LWNhcmQtY29udGFpbmVyXCI+XG4gICAgICAgIEBpZihzZWxlY3RlZFN0ZXA/Lm1lc3NhZ2VDb250ZW50KXtcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1lc3NhZ2UtY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8c2EtbWVzc2FnZS1iYW5uZXIgW3R5cGVdPVwiJ2luZm8nXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lc3NhZ2UtY29udGVudFwiIFtpbm5lckh0bWxdPVwic2VsZWN0ZWRTdGVwPy5tZXNzYWdlQ29udGVudFwiPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9zYS1tZXNzYWdlLWJhbm5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmctY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRpbmctc3R5bGVcIj57e3NlbGVjdGVkU3RlcD8uc291cmNlc0hlYWRpbmcgfHwgJ0F2YWlsYWJsZSBTb3VyY2VzJ319Ojwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJzZWxlY3RlZFN0ZXA/LnNvdXJjZXNMaXN0XCIgY2xhc3M9XCJjYXJkcy1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHNvdXJjZSBvZiBzZWxlY3RlZFN0ZXAuc291cmNlc0xpc3RcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2FyZFRlbXBsYXRlOyBjb250ZXh0OiB7IHNvdXJjZTogc291cmNlLCBzZWxlY3RlZFN0ZXA6IHNlbGVjdGVkU3RlcCwgYWN0aW9uQnV0dG9uOiBzZWxlY3RlZFN0ZXA/LmFjdGlvbkJ1dHRvbiB9XCI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0gZm9yIGFkdmFuY2VkIG9wdGlvbnMgLS0+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJzZWxlY3RlZFN0ZXA/LmFkdmFuY2VkU291cmNlc0xpc3QgJiYgc2VsZWN0ZWRTdGVwLmFkdmFuY2VkU291cmNlc0xpc3QubGVuZ3RoID4gMFwiXG4gICAgICAgICAgICBjbGFzcz1cIm1lbnUtY2FyZC1hZHZhbmNlZC1mZWF0dXJlcy1zZWN0aW9uXCI+XG5cbiAgICAgICAgICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsIGhpZGVUb2dnbGUgW2V4cGFuZGVkXT1cInNlbGVjdGVkU3RlcD8uYWR2YW5jZWRGZWF0dXJlc0V4cGFuZGVkIHx8IGZhbHNlXCJcbiAgICAgICAgICAgICAgICAob3BlbmVkKT1cIm9uQWR2YW5jZWRGZWF0dXJlc09wZW5lZCgpXCIgKGNsb3NlZCk9XCJvbkFkdmFuY2VkRmVhdHVyZXNDbG9zZWQoKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtZW51QWR2YW5jZWRBY2NvcmRpb25cIj5cbiAgICAgICAgICAgICAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtcGFuZWwtdGl0bGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFuZWwtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKCFzZWxlY3RlZFN0ZXA/LmFkdmFuY2VkRmVhdHVyZXNFeHBhbmRlZCl7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkLWZsZXggYWxpZ24tY2VudGVyIHNvdXJjZS1pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzYS1pY29uIFtpY29uXT1cInNlbGVjdGVkU3RlcD8uYWR2YW5jZWRGZWF0dXJlQ29sbGFwc2VkSWNvbiB8fCAncmlnaHRDaGV2cm9uT3V0bGluZWQnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4XCIgY3VzdG9tQ2xhc3M9XCJjb2xvcmVkLWljb25cIiBzaXplPVwiMjBcIj48L3NhLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1AZWxzZXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImQtZmxleCBhbGlnbi1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNhLWljb24gW2ljb25dPVwic2VsZWN0ZWRTdGVwPy5hZHZhbmNlZEZlYXR1cmVFeHBhbmRlZEljb24gfHwgJ2Rvd25DaGV2cm9uT3V0bGluZWQnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4XCIgc2l6ZT1cIjIwXCI+PC9zYS1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhZHZhbmNlZC10aXRsZVwiPnt7IHNlbGVjdGVkU3RlcD8uYWR2YW5jZWRGZWF0dXJlVGl0bGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtcGFuZWwtdGl0bGU+XG4gICAgICAgICAgICAgICAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhwYW5zaW9uLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICBAaWYoc2VsZWN0ZWRTdGVwPy5hZHZhbmNlZEZlYXR1cmVEaXNjbGFpbWVyKXtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRpc2NsYWltZXItY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c2EtbWVzc2FnZS1iYW5uZXIgW3R5cGVdPVwiJ2Rpc2NsYWltZXInXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRpc2NsYWltZXItY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYoc2VsZWN0ZWRTdGVwPy5hZHZhbmNlZEZlYXR1cmVEaXNjbGFpbWVyVG9vbHRpcCl7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidG9vbHRpcC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzYS1pY29uIGljb249XCJpbmZvQ2lyY2xlT3V0bGluZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cInNlbGVjdGVkU3RlcD8uYWR2YW5jZWRGZWF0dXJlRGlzY2xhaW1lclRvb2x0aXBcIiBjdXN0b21DbGFzcz1cImluZm8taWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0b29sdGlwLWljb25cIj48L3NhLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRpc2NsYWltZXItc3R5bGVcIj57e3NlbGVjdGVkU3RlcD8uYWR2YW5jZWRGZWF0dXJlRGlzY2xhaW1lcn19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZihzZWxlY3RlZFN0ZXA/LmFkdmFuY2VkRmVhdHVyZURpc2NsYWltZXJCdXR0b25zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRpc2NsYWltZXItYnV0dG9ucy1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIHNlbGVjdGVkU3RlcC5hZHZhbmNlZEZlYXR1cmVEaXNjbGFpbWVyQnV0dG9uc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNhLWJ1dHRvbiBbdGV4dF09XCJidXR0b24udGV4dFwiIFt0eXBlXT1cImJ1dHRvbi50eXBlXCIgW3NpemVdPVwiYnV0dG9uLnNpemVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdGF0ZV09XCJidXR0b24uc3RhdGVcIiBbaWNvblBvc2l0aW9uXT1cImJ1dHRvbi5pY29uUG9zaXRpb25cIiBbaWNvbl09XCJidXR0b24uaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2J1dHRvbkljb25TaXplXT1cImJ1dHRvbi5idXR0b25JY29uU2l6ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFjdGlvbkhhbmRsZXIoYnV0dG9uLCAkZXZlbnQpXCI+PC9zYS1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2EtbWVzc2FnZS1iYW5uZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkcy1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHNvdXJjZSBvZiBzZWxlY3RlZFN0ZXA/LmFkdmFuY2VkU291cmNlc0xpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2FyZFRlbXBsYXRlOyBjb250ZXh0OiB7IHNvdXJjZTogc291cmNlLCBzZWxlY3RlZFN0ZXA6IHNlbGVjdGVkU3RlcCwgYWN0aW9uQnV0dG9uOiBzZWxlY3RlZFN0ZXA/LmFjdGlvbkJ1dHRvbiB9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L21hdC1leHBhbnNpb24tcGFuZWw+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjY2FyZFRlbXBsYXRlIGxldC1zb3VyY2U9XCJzb3VyY2VcIiBsZXQtc2VsZWN0ZWRTdGVwPVwic2VsZWN0ZWRTdGVwXCIgbGV0LWFjdGlvbkJ1dHRvbj1cImFjdGlvbkJ1dHRvblwiPlxuICAgIDxzYS1jYXJkIFtjb2x1bW5dPVwiZmFsc2VcIiBbc2hvd0NhcmRIZWFkZXJdPVwidHJ1ZVwiIFtzaG93Q2FyZEJvZHldPVwiZmFsc2VcIlxuICAgICAgICBbd2lkdGhdPVwic2VsZWN0ZWRTdGVwLnNvdXJjZXNDYXJkV2lkdGggfHwgJzQ3MXB4J1wiIFtzaG93SGVhZGVyQm9keURpdmlkZXJdPVwiZmFsc2VcIlxuICAgICAgICBbY3VzdG9tV3JhcHBlckNsYXNzXT1cInNlbGVjdGVkU3RlcC5jdXN0b21XcmFwcGVyQ2xhc3MgfHwgY3VzdG9tQ2xhc3NXcmFwcGVyXCJcbiAgICAgICAgY2xhc3M9XCJ7e3NvdXJjZS5kaXNhYmxlZCA/ICdkaXNhYmxlZC1jYXJkJzogJ2VuYWJsZWQtY2FyZCd9fVwiPlxuICAgICAgICA8c2EtY2FyZC10aXRsZS1oZWFkZXI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2EtY2FyZC1hY2NvcmRpb24tdGl0bGUtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNhLW1lbnUtY2FyZC10aXRsZS1pY29uLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2EtbWVudS1jYXJkLWN1c3RvbS10aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNvdXJjZS5sb2dvVXJsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNhLWljb24gW2ljb25dPVwic291cmNlLmxvZ29VcmxcIiBjbGFzcz1cImQtZmxleFwiIFtjdXN0b21DbGFzc109XCInYXV0by1kaW1lbnNpb25zJ1wiPjwvc2EtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW21hdFRvb2x0aXBdPVwic291cmNlPy50b29sdGlwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tzb3VyY2U/Lm5hbWV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzb3VyY2U/LmNvdW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPih7e3NvdXJjZS5jb3VudH19KTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzb3VyY2U/LmNoaXBEYXRhXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzYS1jaGlwIFt0eXBlXT1cInNvdXJjZT8uY2hpcERhdGEudHlwZVwiIFtzdGF0ZV09XCJzb3VyY2U/LmNoaXBEYXRhLnN0YXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWxsaW5nXT1cInNvdXJjZT8uY2hpcERhdGEuZmlsbGluZ1wiIFt0ZXh0XT1cInNvdXJjZT8uY2hpcERhdGEudGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWNvblBvc2l0aW9uXT0nc291cmNlPy5jaGlwRGF0YS5pY29uUG9zaXRpb24nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWNvblBhdGhdPVwic291cmNlPy5jaGlwRGF0YS5pY29uUGF0aFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NhLWNoaXA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhc291cmNlLmRpc2FibGVkICYmIChzZWxlY3RlZFN0ZXA/LmFjdGlvbkJ1dHRvbiAmJiAoc2VsZWN0ZWRTdGVwPy5zaG93QWN0aW9uQWN0aW9uQnV0dG9uID8gYWN0aW9uQnV0dG9uIDogbnVsbCkpIGFzIGJ1dHRvblwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2EtY2FyZC10aXRsZUljb24gbm8tbWFyZ2luXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c2EtY2FyZC10aXRsZS1hY3Rpb25zPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzYS1idXR0b24gW3RleHRdPVwiYnV0dG9uLnRleHRcIiBbdHlwZV09XCJidXR0b24udHlwZVwiIFtzaXplXT1cImJ1dHRvbi5zaXplXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0YXRlXT1cImJ1dHRvbi5zdGF0ZVwiIFtpY29uUG9zaXRpb25dPVwiYnV0dG9uLmljb25Qb3NpdGlvblwiIFtpY29uXT1cImJ1dHRvbi5pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2J1dHRvbkljb25TaXplXT1cImJ1dHRvbi5idXR0b25JY29uU2l6ZVwiIChjbGljayk9XCJvbkNhcmRDbGljayhzb3VyY2UsIGJ1dHRvbiwgJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2EtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zYS1jYXJkLXRpdGxlLWFjdGlvbnM+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvc2EtY2FyZC10aXRsZS1oZWFkZXI+XG4gICAgPC9zYS1jYXJkPlxuPC9uZy10ZW1wbGF0ZT4iXX0=
|
|
@@ -6,7 +6,7 @@ import { CommonModule } from '@angular/common';
|
|
|
6
6
|
import { getValidationMessage, } from '../../utils/validators';
|
|
7
7
|
import { IconComponent } from '../icon/icon.component';
|
|
8
8
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
9
|
-
import { set as _set } from 'lodash';
|
|
9
|
+
import { set as _set, get as _get } from 'lodash';
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
11
11
|
import * as i1 from "@angular/common";
|
|
12
12
|
import * as i2 from "@angular/forms";
|
|
@@ -58,14 +58,17 @@ export class FormInputComponent extends FieldType {
|
|
|
58
58
|
});
|
|
59
59
|
}
|
|
60
60
|
setValidators() {
|
|
61
|
-
this.validators = this.params?.validators || [];
|
|
61
|
+
this.validators = this.params?.validators || this.predefinedValidators[this.type] || [];
|
|
62
62
|
this.asyncValidators = this.params?.asyncValidators || [];
|
|
63
|
-
this.
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
63
|
+
if (!_get(this.field, 'validators.validation', null)) {
|
|
64
|
+
this.formControl?.setValidators([
|
|
65
|
+
...(this.type ? this.predefinedValidators[this.type] || [] : []),
|
|
66
|
+
...(this.validators),
|
|
67
|
+
]);
|
|
68
|
+
}
|
|
69
|
+
if (this.asyncValidators) {
|
|
68
70
|
this.formControl?.setAsyncValidators(this.asyncValidators);
|
|
71
|
+
}
|
|
69
72
|
}
|
|
70
73
|
/*
|
|
71
74
|
Assuming dependent field is a single select dropdown
|
|
@@ -104,8 +107,10 @@ export class FormInputComponent extends FieldType {
|
|
|
104
107
|
!this.formControl.pending) {
|
|
105
108
|
this.inputState = 'invalid';
|
|
106
109
|
this.inputErrorText =
|
|
107
|
-
getValidationMessage(this.formControl.errors, this.params?.placeholder || this.field.props?.label || 'Input'
|
|
108
|
-
|
|
110
|
+
getValidationMessage(this.formControl.errors, this.params?.placeholder || this.field.props?.label || 'Input', {
|
|
111
|
+
field: this.field,
|
|
112
|
+
nativeValidationObject: this.field.validation,
|
|
113
|
+
}) || `invalid ${this.params?.placeholder || this.field.props?.label || 'input'}`;
|
|
109
114
|
}
|
|
110
115
|
else {
|
|
111
116
|
this.inputState = defaultInputState;
|
|
@@ -194,7 +199,10 @@ export class FormInputComponent extends FieldType {
|
|
|
194
199
|
}*/
|
|
195
200
|
getFormSupportText() {
|
|
196
201
|
if (this.formControl.invalid && this.formControl.touched) {
|
|
197
|
-
return (getValidationMessage(this.formControl.errors, this.params?.placeholder || this.field.props?.label || 'Input'
|
|
202
|
+
return (getValidationMessage(this.formControl.errors, this.params?.placeholder || this.field.props?.label || 'Input', {
|
|
203
|
+
field: this.field,
|
|
204
|
+
nativeValidationObject: _get(this.field, 'validation'),
|
|
205
|
+
}) ||
|
|
198
206
|
`invalid ${this.params?.placeholder || this.field.props?.label || 'input'}`);
|
|
199
207
|
}
|
|
200
208
|
else {
|
|
@@ -238,4 +246,4 @@ export var IInputEventType;
|
|
|
238
246
|
IInputEventType["STATE_CHANGE"] = "STATE_CHANGE";
|
|
239
247
|
IInputEventType["ICON_CLICK"] = "ICON_CLICK";
|
|
240
248
|
})(IInputEventType || (IInputEventType = {}));
|
|
241
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL2Zvcm0taW5wdXQvZm9ybS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL2Zvcm0taW5wdXQvZm9ybS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUdMLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsVUFBVSxHQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQW1CLE1BQU0sa0JBQWtCLENBQUM7QUFFOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxvQkFBb0IsR0FFckIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUM7Ozs7O0FBZXJDLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxTQUEwQjtJQTBCaEU7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQXBCVixlQUFVLEdBQUcsTUFBTSxDQUFDO1FBQ3BCLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFHZCxpQkFBWSxHQUFRLElBQUksQ0FBQztRQUN6QixtQ0FBbUM7UUFDbkMsMkJBQTJCO1FBRTNCLFNBQUksR0FBVyxF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bnB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIEZvcm1Db250cm9sLFxuICBGb3Jtc01vZHVsZSxcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgVmFsaWRhdG9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRm9ybWx5TW9kdWxlIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQgeyBGaWVsZFR5cGUsIEZpZWxkVHlwZUNvbmZpZyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgTmdTZWxlY3RNb2R1bGUgfSBmcm9tICdAbmctc2VsZWN0L25nLXNlbGVjdCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgZ2V0VmFsaWRhdGlvbk1lc3NhZ2UsXG4gIHBob25lTnVtYmVyVmFsaWRhdG9yLFxufSBmcm9tICcuLi8uLi91dGlscy92YWxpZGF0b3JzJztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICcuLi9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IHNldCBhcyBfc2V0IH0gZnJvbSAnbG9kYXNoJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NhLWlucHV0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIEZvcm1seU1vZHVsZSxcbiAgICBJY29uQ29tcG9uZW50LFxuICAgIE1hdFRvb2x0aXBNb2R1bGVcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0taW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZm9ybS1pbnB1dC5jb21wb25lbnQuY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUlucHV0Q29tcG9uZW50IGV4dGVuZHMgRmllbGRUeXBlPEZpZWxkVHlwZUNvbmZpZz4ge1xuICBAVmlld0NoaWxkKCdmb3JtSW5wdXQnKSBmb3JtSW5wdXQhOiBFbGVtZW50UmVmO1xuXG4gIEBJbnB1dCgnaWNvbicpIGljb246IElJbnB1dEljb247XG5cbiAgcHJldGV4dDogc3RyaW5nO1xuXG4gIGlucHV0U3RhdGUgPSAnaWRsZSc7XG4gIGlucHV0VmFsID0gJyc7XG4gIHBhcmFtczogSUlucHV0UGFyYW0gfCBudWxsO1xuICBkZXBlbmRlbnQ6IEFic3RyYWN0Q29udHJvbDxhbnksIGFueT4gfCBudWxsO1xuICBkZXBlbmRlbnRWYWw6IGFueSA9IG51bGw7XG4gIC8vIGR5bmFtaWNJY29uOiBEeW5hbWljSWNvbiB8IG51bGw7XG4gIC8vIGljb246IElJbnB1dEljb24gfCBudWxsO1xuXG4gIHR5cGU6IHN0cmluZyA9ICcnO1xuICB2YWxpZGF0b3JzOiBhbnlbXTtcbiAgYXN5bmNWYWxpZGF0b3JzOiBhbnlbXTtcblxuICBpbnB1dEVycm9yVGV4dDogc3RyaW5nID0gJ2ludmFsaWQgaW5wdXQnO1xuXG4gIHNob3dFbWFpbEljb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwcml2YXRlIHN1cHByZXNzT25CbHVyID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaW5wdXRWYWwgPVxuICAgICAgdGhpcy5maWVsZC5wcm9wc1sndmFsdWUnXSB8fCB0aGlzLm1vZGVsW3RoaXMua2V5IGFzIHN0cmluZ10gfHwgJyc7XG4gICAgdGhpcy5kaXNhYmxlZCA9IHRoaXMuZmllbGQucHJvcHMuZGlzYWJsZWQgfHwgZmFsc2U7XG4gICAgdGhpcy5mb3JtQ29udHJvbD8uc2V0VmFsdWUodGhpcy5pbnB1dFZhbCk7XG5cbiAgICB0aGlzLnBhcmFtcyA9IHRoaXMuZmllbGQucHJvcHNbJ3BhcmFtcyddO1xuICAgIHRoaXMuaWNvbiA9IHRoaXMuZmllbGQucHJvcHNbJ2ljb24nXSB8fCB7fTtcbiAgICB0aGlzLnR5cGUgPSB0aGlzLnBhcmFtcz8udHlwZSB8fCAnJztcblxuICAgIC8vIHRoaXMuZHluYW1pY0ljb24gPSB0aGlzLmZpZWxkLnByb3BzWydkeW5hbWljSWNvbiddO1xuICAgIHRoaXMuc2V0VmFsaWRhdG9ycygpO1xuICAgIHRoaXMuc2V0RGVwZW5kZW50cygpO1xuXG4gICAgdGhpcy5mb3JtQ29udHJvbC5zdGF0dXNDaGFuZ2VzLnN1YnNjcmliZSgoc3RhdGUpID0+IHtcbiAgICAgIGlmICh0aGlzLnR5cGUgPT09ICdlbWFpbCcpIHtcbiAgICAgICAgaWYgKCEhdGhpcy5pbnB1dFZhbCAmJiAhdGhpcy5mb3JtQ29udHJvbC50b3VjaGVkKSB7XG4gICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zaG93RW1haWxJY29uID1cbiAgICAgICAgICBzdGF0ZSA9PT0gJ1ZBTElEJyB8fFxuICAgICAgICAgIChzdGF0ZSA9PT0gJ0lOVkFMSUQnICYmXG4gICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLmhhc0Vycm9yKCdpbnZhbGlkJykgJiZcbiAgICAgICAgICAgICEhdGhpcy5mb3JtQ29udHJvbC52YWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5mb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWwpID0+IHtcbiAgICAgIF9zZXQodGhpcy5mb3JtSW5wdXQsICduYXRpdmVFbGVtZW50LnZhbHVlJywgdmFsKTtcbiAgICB9KTtcbiAgfVxuXG4gIHNldFZhbGlkYXRvcnMoKSB7XG4gICAgdGhpcy52YWxpZGF0b3JzID0gdGhpcy5wYXJhbXM/LnZhbGlkYXRvcnMgfHwgW107XG4gICAgdGhpcy5hc3luY1ZhbGlkYXRvcnMgPSB0aGlzLnBhcmFtcz8uYXN5bmNWYWxpZGF0b3JzIHx8IFtdO1xuICAgIHRoaXMuZm9ybUNvbnRyb2w/LnNldFZhbGlkYXRvcnMoW1xuICAgICAgLi4uKHRoaXMudHlwZSA/IHRoaXMucHJlZGVmaW5lZFZhbGlkYXRvcnNbdGhpcy50eXBlXSB8fCBbXSA6IFtdKSxcbiAgICAgIC4uLnRoaXMudmFsaWRhdG9ycyxcbiAgICBdKTtcbiAgICBpZiAodGhpcy5hc3luY1ZhbGlkYXRvcnMpXG4gICAgICB0aGlzLmZvcm1Db250cm9sPy5zZXRBc3luY1ZhbGlkYXRvcnModGhpcy5hc3luY1ZhbGlkYXRvcnMpO1xuICB9XG5cbiAgLypcbiAgICBBc3N1bWluZyBkZXBlbmRlbnQgZmllbGQgaXMgYSBzaW5nbGUgc2VsZWN0IGRyb3Bkb3duXG4gICovXG4gIHNldERlcGVuZGVudHMoKSB7XG4gICAgaWYgKHRoaXMucGFyYW1zPy5kZXBlbmRlbnQpIHtcbiAgICAgIHRoaXMuZGVwZW5kZW50ID0gdGhpcy5mb3JtLmdldChbdGhpcy5wYXJhbXM/LmRlcGVuZGVudF0pO1xuXG4gICAgICB0aGlzLmRlcGVuZGVudFZhbCA9IHRoaXMuZ2V0RGVwZW5kZW50VmFsKHRoaXMuZGVwZW5kZW50LnZhbHVlKTtcbiAgICAgIGlmICh0aGlzLnR5cGUgPT09ICd0ZWwnKSB7XG4gICAgICAgIHRoaXMucHJldGV4dCA9IHRoaXMuZGVwZW5kZW50VmFsPy5kaWFsX2NvZGU7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZGVwZW5kZW50Py52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWwpID0+IHtcbiAgICAgICAgdGhpcy5kZXBlbmRlbnRWYWwgPSB0aGlzLmdldERlcGVuZGVudFZhbCh2YWwpO1xuICAgICAgICB0aGlzLmZvcm1Db250cm9sLnJlc2V0KCk7XG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5pbnB1dFZhbCk7XG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT09ICd0ZWwnKSB7XG4gICAgICAgICAgdGhpcy5wcmV0ZXh0ID0gdGhpcy5kZXBlbmRlbnRWYWw/LmRpYWxfY29kZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIGdldERlcGVuZGVudFZhbCh2YWx1ZTogYW55KSB7XG4gICAgbGV0IGRlcGVuZGVudFZhbHVlOiBhbnk7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICBkZXBlbmRlbnRWYWx1ZSA9IHZhbHVlLmxlbmd0aCA/IHZhbHVlWzBdIDogbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVwZW5kZW50VmFsdWUgPSB2YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGRlcGVuZGVudFZhbHVlO1xuICB9XG5cbiAgY2hlY2tWYWxpZGl0eShkZWZhdWx0SW5wdXRTdGF0ZSA9ICdmb2N1cycpIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLmZvcm1Db250cm9sICYmXG4gICAgICAhdGhpcy5mb3JtQ29udHJvbC52YWxpZCAmJlxuICAgICAgdGhpcy5mb3JtQ29udHJvbC50b3VjaGVkICYmXG4gICAgICAhdGhpcy5mb3JtQ29udHJvbC5wZW5kaW5nXG4gICAgKSB7XG4gICAgICB0aGlzLmlucHV0U3RhdGUgPSAnaW52YWxpZCc7XG4gICAgICB0aGlzLmlucHV0RXJyb3JUZXh0ID1cbiAgICAgICAgZ2V0VmFsaWRhdGlvbk1lc3NhZ2UodGhpcy5mb3JtQ29udHJvbC5lcnJvcnMsIHRoaXMucGFyYW1zPy5wbGFjZWhvbGRlciB8fCB0aGlzLmZpZWxkLnByb3BzPy5sYWJlbCB8fCAnSW5wdXQnKSB8fFxuICAgICAgICBgaW52YWxpZCAke3RoaXMucGFyYW1zPy5wbGFjZWhvbGRlciB8fCB0aGlzLmZpZWxkLnByb3BzPy5sYWJlbCB8fCAnaW5wdXQnfWBcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbnB1dFN0YXRlID0gZGVmYXVsdElucHV0U3RhdGU7XG4gICAgfVxuICB9XG5cbiAgb25Gb2N1cygpIHtcbiAgICBpZiAodGhpcy5mb3JtQ29udHJvbC52YWxpZCkgdGhpcy5pbnB1dFN0YXRlID0gJ2ZvY3VzJztcbiAgfVxuICBvbkJsdXIoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuc3VwcHJlc3NPbkJsdXIpIHtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgIHRoaXMuY2hlY2tWYWxpZGl0eSgnaWRsZScpO1xuICAgICAgfVxuICAgICAgdGhpcy5zdXBwcmVzc09uQmx1ciA9IGZhbHNlO1xuICAgIH0sIDIwMCk7XG4gIH1cblxuICBvbklucHV0KGV2ZW50OiBhbnkpIHtcbiAgICBpZiAodGhpcy5wYXJhbXM/LnR5cGUgPT09ICd0ZWwnKSB7XG4gICAgICB0aGlzLmlucHV0VmFsID0gdGhpcy5pbnB1dFZhbC5yZXBsYWNlKC9bXjAtOSgpK1xcLSBdL2csICcnKTtcbiAgICAgIHRoaXMuaW5wdXRWYWwgPSB0aGlzLmh5cGhlbmF0ZVBob25lTnVtYmVyKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnBhcmFtcz8udHlwZSA9PT0gJ3BlcmNlbnRhZ2UnKSB7XG4gICAgICBsZXQgdmFsdWUgPSB0aGlzLmlucHV0VmFsLnJlcGxhY2UoL1teMC05Ll0vZywgJycpO1xuICAgICAgdGhpcy5pbnB1dFZhbCA9IHZhbHVlID8gYCR7dmFsdWV9JWAgOiAnJztcbiAgICB9XG4gICAgdGhpcy5mb3JtQ29udHJvbD8uc2V0VmFsdWUodGhpcy5pbnB1dFZhbCk7XG4gICAgdGhpcy5jaGVja1ZhbGlkaXR5KCk7XG4gICAgLyppZiAodGhpcy5wYXJhbXM/LmV2ZW50TGlzdGVuZXIpIHtcbiAgICAgIHRoaXMucGFyYW1zPy5ldmVudExpc3RlbmVyKHtcbiAgICAgICAgdHlwZTogSUlucHV0RXZlbnRUeXBlLklOUFVUX0NIQU5HRSxcbiAgICAgICAgdmFsdWU6IHRoaXMuaW5wdXRWYWwsXG4gICAgICAgIGZvcm1Db250cm9sOiB0aGlzLmZvcm1Db250cm9sXG4gICAgICB9IGFzIElJbnB1dEV2ZW50KS50aGVuKHRoaXMub25GaWVsZENhbGxiYWNrLmJpbmQodGhpcykpO1xuICAgIH0qL1xuICB9XG5cbiAgaHlwaGVuYXRlUGhvbmVOdW1iZXIoKSB7XG4gICAgbGV0IG5ld1N0ciA9ICcnO1xuICAgIGxldCBpID0gMDtcbiAgICBsZXQgaHlwaGVuYXRlZENvdW50ID0gMTtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuaW5wdXRWYWwucmVwbGFjZUFsbCgnLScsICcnKTtcbiAgICBmb3IgKDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICBuZXdTdHIgPSBuZXdTdHIgKyB2YWx1ZS5jaGFyQXQoaSk7XG4gICAgICBpZiAoIShoeXBoZW5hdGVkQ291bnQgJSAzKSkge1xuICAgICAgICBpZiAoISgoaSArIDEpICUgMTApICYmIGkgKyAxIDwgdmFsdWUubGVuZ3RoKSB7XG4gICAgICAgICAgbmV3U3RyID0gbmV3U3RyICsgJy0nO1xuICAgICAgICAgIGh5cGhlbmF0ZWRDb3VudCsrO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAhKChpICsgMSAtIE1hdGguZmxvb3IoaHlwaGVuYXRlZENvdW50IC8gMykpICUgMykgJiZcbiAgICAgICAgaSArIDEgPCB2YWx1ZS5sZW5ndGhcbiAgICAgICkge1xuICAgICAgICBuZXdTdHIgPSBuZXdTdHIgKyAnLSc7XG4gICAgICAgIGh5cGhlbmF0ZWRDb3VudCsrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuZXdTdHI7XG4gIH1cblxuICBvbklucHV0RmllbGRDbGljayhldmVudDogYW55ID0gJ2lucHV0Jykge1xuICAgIGlmIChcbiAgICAgIGV2ZW50ID09PSAnaW5wdXQnIHx8XG4gICAgICBldmVudC50YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKCdzYS1pbnB1dC1maWVsZCcpXG4gICAgKSB7XG4gICAgICB0aGlzLmZvcm1JbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICBpZiAodGhpcy5wYXJhbXM/LnR5cGUgIT09ICdlbWFpbCcpXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuZm9ybUlucHV0Lm5hdGl2ZUVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2UoXG4gICAgICAgICAgICB0aGlzLmlucHV0VmFsLmxlbmd0aCxcbiAgICAgICAgICAgIHRoaXMuaW5wdXRWYWwubGVuZ3RoLFxuICAgICAgICAgICk7XG4gICAgICAgIH0sIDEwKTtcbiAgICB9XG4gIH1cblxuICBpbnB1dEljb25DbGljaygpIHtcbiAgICBpZiAodGhpcy5wYXJhbXM/LnR5cGUgPT09ICdwYXNzd29yZCcpIHtcbiAgICAgIHRoaXMuc3VwcHJlc3NPbkJsdXIgPSB0cnVlO1xuICAgICAgaWYgKHRoaXMudHlwZSA9PT0gJ3Bhc3N3b3JkJykge1xuICAgICAgICB0aGlzLnR5cGUgPSAndGV4dCc7XG4gICAgICAgIHRoaXMuaWNvbi5uYW1lID0gJ2V5ZU9mZic7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnR5cGUgPSAncGFzc3dvcmQnO1xuICAgICAgICB0aGlzLmljb24ubmFtZSA9ICdleWVPdXRsaW5lZCc7XG4gICAgICB9XG4gICAgICB0aGlzLm9uSW5wdXRGaWVsZENsaWNrKCk7XG4gICAgfVxuICB9XG5cbiAgLypvbkZpZWxkQ2FsbGJhY2socGFyYW06IElJbnB1dFBhcmFtKSB7XG4gICAgdGhpcy5pY29uID0gcGFyYW0uaWNvbiB8fCB0aGlzLmljb247XG4gICAgdGhpcy5jaGVja1ZhbGlkaXR5KCk7XG4gIH0qL1xuXG4gIGdldEZvcm1TdXBwb3J0VGV4dCgpIHtcbiAgICBpZiAodGhpcy5mb3JtQ29udHJvbC5pbnZhbGlkICYmIHRoaXMuZm9ybUNvbnRyb2wudG91Y2hlZCkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgZ2V0VmFsaWRhdGlvbk1lc3NhZ2UodGhpcy5mb3JtQ29udHJvbC5lcnJvcnMsIHRoaXMucGFyYW1zPy5wbGFjZWhvbGRlciB8fCB0aGlzLmZpZWxkLnByb3BzPy5sYWJlbCB8fCAnSW5wdXQnKSB8fFxuICAgICAgICBgaW52YWxpZCAke3RoaXMucGFyYW1zPy5wbGFjZWhvbGRlciB8fCB0aGlzLmZpZWxkLnByb3BzPy5sYWJlbCB8fCAnaW5wdXQnfWBcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnBhcmFtcz8uc3VwcG9ydFRleHQgfHwgJyc7XG4gICAgfVxuICB9XG5cbiAgcHJlZGVmaW5lZFZhbGlkYXRvcnM6IGFueSA9IHtcbiAgICBlbWFpbDogW1ZhbGlkYXRvcnMuZW1haWwsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgIHBhc3N3b3JkOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgdGVsOiBbVmFsaWRhdG9ycy5wYXR0ZXJuKCdeWzAtOSArXFxcXC0oKV0qJCcpXSxcbiAgfTtcblxuICBnZXRMYWJlbEZpZWxkR2FwKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMucHJvcHM/LlsnYmlnTGFiZWwnXSkge1xuICAgICAgcmV0dXJuICd2YXIoLS1tZWRpdW0tMjBweCknO1xuICAgIH0gZWxzZSBpZiAodGhpcy5wcm9wcz8uWydsYWJlbCddKSB7XG4gICAgICByZXR1cm4gJ3ZhcigtLXNtYWxsLTRweCknO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gJzBweCc7IC8vIE5vIGdhcFxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElJbnB1dEljb24ge1xuICBuYW1lOiBzdHJpbmc7XG4gIHNob3c/OiBib29sZWFuO1xuICBjb2xvcj86IHN0cmluZztcbiAgc2l6ZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJSW5wdXRQYXJhbSB7XG4gIHZhbGlkYXRvcnM/OiBhbnlbXTtcbiAgYXN5bmNWYWxpZGF0b3JzPzogYW55W107XG4gIHN1cHBvcnRUZXh0Pzogc3RyaW5nO1xuICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgdHlwZT86IHN0cmluZztcbiAgZGVwZW5kZW50Pzogc3RyaW5nO1xuICBldmVudExpc3RlbmVyPzogRnVuY3Rpb247XG4gIGljb24/OiBJSW5wdXRJY29uO1xuICBlcnJvcnM/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIElJbnB1dEV2ZW50IHtcbiAgdHlwZTogSUlucHV0RXZlbnRUeXBlO1xuICB2YWx1ZTogc3RyaW5nO1xuICBjYWxsQmFjazogYW55O1xuICBmb3JtQ29udHJvbDogRm9ybUNvbnRyb2w7XG59XG5leHBvcnQgZW51bSBJSW5wdXRFdmVudFR5cGUge1xuICBJTlBVVF9DSEFOR0UgPSAnSU5QVVRfQ0hBTkdFJyxcbiAgU1RBVEVfQ0hBTkdFID0gJ1NUQVRFX0NIQU5HRScsXG4gIElDT05fQ0xJQ0sgPSAnSUNPTl9DTElDSycsXG59XG4iLCI8ZGl2IGNsYXNzPVwic2EtaW5wdXQtY29udGFpbmVyIHt7cHJvcHM/LlsnaW5wdXRDb250YWluZXJDbGFzcyddfX1cIiBbbmdTdHlsZV09XCJ7J2dhcCc6IGdldExhYmVsRmllbGRHYXAoKX1cIj5cbiAgICBAaWYgKCEhcHJvcHM/LlsnYmlnTGFiZWwnXSB8fCAhIXByb3BzPy5bJ2JpZ0Rlc2NyaXB0aW9uJ10pIHtcbiAgICA8ZGl2IGNsYXNzPVwic2EtaW5wdXQtYmlnLWxhYmVsLWNvbnRhaW5lclwiIFtuZ0NsYXNzXT1cImRpc2FibGVkID8gJ2Rpc2FibGVkJyA6ICcnIFwiPlxuICAgICAgICA8aDIgY2xhc3M9XCJzYS1pbnB1dC1iaWctbGFiZWxcIj5cbiAgICAgICAgICAgIHt7cHJvcHM/LlsnYmlnTGFiZWwnXX19XG4gICAgICAgIDwvaDI+XG4gICAgICAgIDxwIGNsYXNzPVwic2EtaW5wdXQtYmlnLWRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICB7e3Byb3BzPy5bJ2JpZ0Rlc2NyaXB0aW9uJ119fVxuICAgICAgICA8L3A+XG4gICAgPC9kaXY+XG4gICAgfVxuXG4gICAgQGlmKCEhcHJvcHM/LlsnbGFiZWwnXSl7XG4gICAgPGRpdiBjbGFzcz1cInNhLWlucHV0LWxhYmVsLWNvbnRhaW5lclwiIFtuZ0NsYXNzXT1cImRpc2FibGVkID8gJ2Rpc2FibGVkJyA6ICcnIFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2EtaW5wdXQtbGFiZWwtdG9vbHRpcC1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2EtaW5wdXQtbGFiZWxcIj5cbiAgICAgICAgICAgICAgICB7e3Byb3BzPy5bJ2xhYmVsJ119fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgQGlmKCEhcHJvcHM/LlsndG9vbHRpcCddKXtcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidG9vbHRpcC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICA8c2EtaWNvbiBbaWNvbl09XCJwcm9wcz8uWyd0b29sdGlwSWNvbiddIHx8ICdpbmZvQ2lyY2xlT3V0bGluZWQnXCIgY3VzdG9tQ2xhc3M9XCJpbmZvLWljb25cIlxuICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJwcm9wcz8uWyd0b29sdGlwJ11cIiBtYXRUb29sdGlwQ2xhc3M9XCJjdXN0b20tdG9vbHRpcFwiIGNsYXNzPVwidG9vbHRpcC1pY29uIGQtZmxleFwiXG4gICAgICAgICAgICAgICAgICAgIFtzaXplXT1cInByb3BzPy5bJ3Rvb2x0aXBJY29uU2l6ZSddIHx8ICcyMCdcIj48L3NhLWljb24+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICBAaWYoISFwcm9wcz8uWydkZXNjcmlwdGlvbiddKSB7XG4gICAgICAgIDxwIGNsYXNzPVwic2EtaW5wdXQtZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgIHt7cHJvcHM/LlsnZGVzY3JpcHRpb24nXX19XG4gICAgICAgIDwvcD5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxuICAgIH1cbiAgICA8ZGl2IGNsYXNzPVwic2EtaW5wdXRcIiBbbmdDbGFzc109XCJkaXNhYmxlZCA/ICdkaXNhYmxlZCcgOiAnJyBcIj5cbiAgICAgICAgQGlmKChwcmV0ZXh0IHx8ICghIWlucHV0VmFsPy5sZW5ndGggJiYgKCEhcGFyYW1zPy5wbGFjZWhvbGRlciB8fCAhIXByb3BzPy5wbGFjZWhvbGRlcikpKSAmJiBwcm9wcz8uWydzaG93VGFnJ11cbiAgICAgICAgIT09IGZhbHNlKXtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzYS1pbnB1dC10YWdcIj57e3BhcmFtcz8ucGxhY2Vob2xkZXIgfHwgcHJvcHM/LnBsYWNlaG9sZGVyfX08L3NwYW4+XG4gICAgICAgIH1cbiAgICAgICAgPGRpdiBjbGFzcz1cInNhLWlucHV0LWZpZWxkXCIgW25nQ2xhc3NdPVwiZm9ybUNvbnRyb2wuaW52YWxpZCAmJiBmb3JtQ29udHJvbC50b3VjaGVkID8gJ2ludmFsaWQnIDogJ2lkbGUnIFwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25JbnB1dEZpZWxkQ2xpY2soJGV2ZW50KVwiPlxuICAgICAgICAgICAgQGlmKHByZXRleHQpe1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNhLWlucHV0LXByZXRleHRcIj5cbiAgICAgICAgICAgICAgICB7e3ByZXRleHR9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIighIWlucHV0VmFsICYmIChwYXJhbXM/LnR5cGUgPT09ICdwYXNzd29yZCcgfHwgcHJvcHM/LnR5cGUgPT09ICdwYXNzd29yZCcpICYmIGljb24ubmFtZSAhPT0gJ2V5ZU9mZicpID8gJ21hc2tlZCcgOiAnJ1wiXG4gICAgICAgICAgICAgICAgbWF0SW5wdXQgW3R5cGVdPVwidHlwZVwiIHZhbHVlPVwiXCIgW3BhdHRlcm5dPVwidHlwZT09PSd0ZWwnID8gJ1swLTldJyA6ICcnIFwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZpZWxkLnByb3BzLmRpc2FibGVkIHx8IGZhbHNlXCJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiIXByZXRleHQgJiYgcHJvcHM/LnBsYWNlaG9sZGVyIHx8IHBhcmFtcz8ucGxhY2Vob2xkZXIgfHwgJydcIiAoZm9jdXMpPVwib25Gb2N1cygpXCJcbiAgICAgICAgICAgICAgICAoYmx1cik9XCJvbkJsdXIoKVwiIChpbnB1dCk9XCJvbklucHV0KCRldmVudClcIiBbKG5nTW9kZWwpXT1cImlucHV0VmFsXCIgI2Zvcm1JbnB1dCAvPlxuXG4gICAgICAgICAgICBAaWYocGFyYW1zPy50eXBlID09PSAncGFzc3dvcmQnKXtcbiAgICAgICAgICAgIDxzYS1pY29uIGNsYXNzPVwiZmxleFwiIGljb249XCJleWVPdXRsaW5lZFwiIFtzaXplXT1cImljb24uc2l6ZSB8fCAnMjQnXCIgKGNsaWNrKT1cImlucHV0SWNvbkNsaWNrKClcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIiFpY29uLm5hbWUgfHwgaWNvbi5uYW1lID09PSAnZXllT3V0bGluZWQnID8gJycgOiAnaGlkZSdcIj48L3NhLWljb24+XG4gICAgICAgICAgICA8c2EtaWNvbiBjbGFzcz1cImZsZXhcIiBpY29uPVwiZXllT2ZmXCIgW3NpemVdPVwiaWNvbi5zaXplIHx8ICcyNCdcIiAoY2xpY2spPVwiaW5wdXRJY29uQ2xpY2soKVwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiaWNvbi5uYW1lID09PSAnZXllT2ZmJyA/ICcnIDogJ2hpZGUnXCI+PC9zYS1pY29uPlxuICAgICAgICAgICAgfUBlbHNlIGlmKHBhcmFtcz8udHlwZSA9PT0gJ2VtYWlsJyAmJiBpY29uLnNob3cpe1xuICAgICAgICAgICAgPHNhLWljb24gY2xhc3M9XCJmbGV4XCIgW2ljb25dPVwiaWNvbi5uYW1lIHx8ICdjaGVja0NpcmNsZU91dGxpbmVkJ1wiIFtzaXplXT1cImljb24uc2l6ZSB8fCAnMjQnXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaW5wdXRJY29uQ2xpY2soKVwiIFtuZ0NsYXNzXT1cInNob3dFbWFpbEljb24gPyAnJyA6ICdoaWRlJ1wiPjwvc2EtaWNvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBlbHNlIGlmKGljb24/Lm5hbWUpe1xuICAgICAgICAgICAgPHNhLWljb24gY2xhc3M9XCJkLWZsZXhcIiBbaWNvbl09XCJpY29uLm5hbWVcIiBbc2l6ZV09XCJpY29uPy5zaXplIHx8ICcyNCdcIiBbY29sb3JdPVwiaWNvbj8uY29sb3IgfHwgJydcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImljb24/LnNob3cgPyAnJyA6ICdoaWRlJ1wiPjwvc2EtaWNvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgQGlmKCghZm9ybUNvbnRyb2wudmFsaWQpIHx8IChwYXJhbXM/LnN1cHBvcnRUZXh0KSl7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdXBwb3J0LWxhYmVsXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiW1xuICAgICAgICBmb3JtQ29udHJvbC5pbnZhbGlkICYmIGZvcm1Db250cm9sLnRvdWNoZWQgPyAnaW52YWxpZCcgOiAnaWRsZScsXG4gICAgICAgIGZvcm1Db250cm9sLmludmFsaWQgJiYgZm9ybUNvbnRyb2wudG91Y2hlZCA/IHBhcmFtcz8uY2xhc3NOYW1lIDogJydcbiAgICAgIF1cIj5cbiAgICAgICAgICAgIDwhLS0ge3shZm9ybUNvbnRyb2wudmFsaWQgPyBpbnB1dEVycm9yVGV4dCA6IHBhcmFtcy5zdXBwb3J0VGV4dH19IC0tPlxuICAgICAgICAgICAge3tnZXRGb3JtU3VwcG9ydFRleHQoKX19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB9XG48L2Rpdj4iXX0=
|
|
249
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL2Zvcm0taW5wdXQvZm9ybS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL2Zvcm0taW5wdXQvZm9ybS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUdMLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsVUFBVSxHQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQW1CLE1BQU0sa0JBQWtCLENBQUM7QUFFOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxvQkFBb0IsR0FFckIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQzs7Ozs7QUFlbEQsTUFBTSxPQUFPLGtCQUFtQixTQUFRLFNBQTBCO0lBMEJoRTtRQUNFLEtBQUssRUFBRSxDQUFDO1FBcEJWLGVBQVUsR0FBRyxNQUFNLENBQUM7UUFDcEIsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUdkLGlCQUFZLEdBQVEsSUFBSSxDQUFDO1FBQ3pCLG1DQUFtQztRQUNuQywyQkFB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a0I7a0JBZDlCLFNBQVM7K0JBQ0UsVUFBVSxjQUNSLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsZ0JBQWdCO3FCQUNqQjt3REFLdUIsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXO2dCQUVQLElBQUk7c0JBQWxCLEtBQUs7dUJBQUMsTUFBTTs7QUE4UWYsTUFBTSxDQUFOLElBQVksZUFJWDtBQUpELFdBQVksZUFBZTtJQUN6QixnREFBNkIsQ0FBQTtJQUM3QixnREFBNkIsQ0FBQTtJQUM3Qiw0Q0FBeUIsQ0FBQTtBQUMzQixDQUFDLEVBSlcsZUFBZSxLQUFmLGVBQWUsUUFJMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgRm9ybUNvbnRyb2wsXG4gIEZvcm1zTW9kdWxlLFxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGb3JtbHlNb2R1bGUgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IEZpZWxkVHlwZSwgRmllbGRUeXBlQ29uZmlnIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQgeyBOZ1NlbGVjdE1vZHVsZSB9IGZyb20gJ0BuZy1zZWxlY3Qvbmctc2VsZWN0JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBnZXRWYWxpZGF0aW9uTWVzc2FnZSxcbiAgcGhvbmVOdW1iZXJWYWxpZGF0b3IsXG59IGZyb20gJy4uLy4uL3V0aWxzL3ZhbGlkYXRvcnMnO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uL2ljb24vaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHsgc2V0IGFzIF9zZXQsIGdldCBhcyBfZ2V0IH0gZnJvbSAnbG9kYXNoJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NhLWlucHV0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIEZvcm1seU1vZHVsZSxcbiAgICBJY29uQ29tcG9uZW50LFxuICAgIE1hdFRvb2x0aXBNb2R1bGVcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0taW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZm9ybS1pbnB1dC5jb21wb25lbnQuY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUlucHV0Q29tcG9uZW50IGV4dGVuZHMgRmllbGRUeXBlPEZpZWxkVHlwZUNvbmZpZz4ge1xuICBAVmlld0NoaWxkKCdmb3JtSW5wdXQnKSBmb3JtSW5wdXQhOiBFbGVtZW50UmVmO1xuXG4gIEBJbnB1dCgnaWNvbicpIGljb246IElJbnB1dEljb247XG5cbiAgcHJldGV4dDogc3RyaW5nO1xuXG4gIGlucHV0U3RhdGUgPSAnaWRsZSc7XG4gIGlucHV0VmFsID0gJyc7XG4gIHBhcmFtczogSUlucHV0UGFyYW0gfCBudWxsO1xuICBkZXBlbmRlbnQ6IEFic3RyYWN0Q29udHJvbDxhbnksIGFueT4gfCBudWxsO1xuICBkZXBlbmRlbnRWYWw6IGFueSA9IG51bGw7XG4gIC8vIGR5bmFtaWNJY29uOiBEeW5hbWljSWNvbiB8IG51bGw7XG4gIC8vIGljb246IElJbnB1dEljb24gfCBudWxsO1xuXG4gIHR5cGU6IHN0cmluZyA9ICcnO1xuICB2YWxpZGF0b3JzOiBhbnlbXTtcbiAgYXN5bmNWYWxpZGF0b3JzOiBhbnlbXTtcblxuICBpbnB1dEVycm9yVGV4dDogc3RyaW5nID0gJ2ludmFsaWQgaW5wdXQnO1xuXG4gIHNob3dFbWFpbEljb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwcml2YXRlIHN1cHByZXNzT25CbHVyID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaW5wdXRWYWwgPVxuICAgICAgdGhpcy5maWVsZC5wcm9wc1sndmFsdWUnXSB8fCB0aGlzLm1vZGVsW3RoaXMua2V5IGFzIHN0cmluZ10gfHwgJyc7XG4gICAgdGhpcy5kaXNhYmxlZCA9IHRoaXMuZmllbGQucHJvcHMuZGlzYWJsZWQgfHwgZmFsc2U7XG4gICAgdGhpcy5mb3JtQ29udHJvbD8uc2V0VmFsdWUodGhpcy5pbnB1dFZhbCk7XG5cbiAgICB0aGlzLnBhcmFtcyA9IHRoaXMuZmllbGQucHJvcHNbJ3BhcmFtcyddO1xuICAgIHRoaXMuaWNvbiA9IHRoaXMuZmllbGQucHJvcHNbJ2ljb24nXSB8fCB7fTtcbiAgICB0aGlzLnR5cGUgPSB0aGlzLnBhcmFtcz8udHlwZSB8fCAnJztcblxuICAgIC8vIHRoaXMuZHluYW1pY0ljb24gPSB0aGlzLmZpZWxkLnByb3BzWydkeW5hbWljSWNvbiddO1xuICAgIHRoaXMuc2V0VmFsaWRhdG9ycygpO1xuICAgIHRoaXMuc2V0RGVwZW5kZW50cygpO1xuXG4gICAgdGhpcy5mb3JtQ29udHJvbC5zdGF0dXNDaGFuZ2VzLnN1YnNjcmliZSgoc3RhdGUpID0+IHtcbiAgICAgIGlmICh0aGlzLnR5cGUgPT09ICdlbWFpbCcpIHtcbiAgICAgICAgaWYgKCEhdGhpcy5pbnB1dFZhbCAmJiAhdGhpcy5mb3JtQ29udHJvbC50b3VjaGVkKSB7XG4gICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zaG93RW1haWxJY29uID1cbiAgICAgICAgICBzdGF0ZSA9PT0gJ1ZBTElEJyB8fFxuICAgICAgICAgIChzdGF0ZSA9PT0gJ0lOVkFMSUQnICYmXG4gICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLmhhc0Vycm9yKCdpbnZhbGlkJykgJiZcbiAgICAgICAgICAgICEhdGhpcy5mb3JtQ29udHJvbC52YWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5mb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWwpID0+IHtcbiAgICAgIF9zZXQodGhpcy5mb3JtSW5wdXQsICduYXRpdmVFbGVtZW50LnZhbHVlJywgdmFsKTtcbiAgICB9KTtcbiAgfVxuXG4gIHNldFZhbGlkYXRvcnMoKSB7XG4gICAgdGhpcy52YWxpZGF0b3JzID0gdGhpcy5wYXJhbXM/LnZhbGlkYXRvcnMgfHwgdGhpcy5wcmVkZWZpbmVkVmFsaWRhdG9yc1t0aGlzLnR5cGVdIHx8IFtdO1xuICAgIHRoaXMuYXN5bmNWYWxpZGF0b3JzID0gdGhpcy5wYXJhbXM/LmFzeW5jVmFsaWRhdG9ycyB8fCBbXTtcbiAgICBpZighX2dldCh0aGlzLmZpZWxkLCAndmFsaWRhdG9ycy52YWxpZGF0aW9uJywgbnVsbCkpIHtcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2w/LnNldFZhbGlkYXRvcnMoW1xuICAgICAgICAuLi4odGhpcy50eXBlID8gdGhpcy5wcmVkZWZpbmVkVmFsaWRhdG9yc1t0aGlzLnR5cGVdIHx8IFtdIDogW10pLFxuICAgICAgICAuLi4odGhpcy52YWxpZGF0b3JzKSxcbiAgICAgIF0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5hc3luY1ZhbGlkYXRvcnMpIHtcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2w/LnNldEFzeW5jVmFsaWRhdG9ycyh0aGlzLmFzeW5jVmFsaWRhdG9ycyk7XG4gICAgfVxuICB9XG5cbiAgLypcbiAgICBBc3N1bWluZyBkZXBlbmRlbnQgZmllbGQgaXMgYSBzaW5nbGUgc2VsZWN0IGRyb3Bkb3duXG4gICovXG4gIHNldERlcGVuZGVudHMoKSB7XG4gICAgaWYgKHRoaXMucGFyYW1zPy5kZXBlbmRlbnQpIHtcbiAgICAgIHRoaXMuZGVwZW5kZW50ID0gdGhpcy5mb3JtLmdldChbdGhpcy5wYXJhbXM/LmRlcGVuZGVudF0pO1xuXG4gICAgICB0aGlzLmRlcGVuZGVudFZhbCA9IHRoaXMuZ2V0RGVwZW5kZW50VmFsKHRoaXMuZGVwZW5kZW50LnZhbHVlKTtcbiAgICAgIGlmICh0aGlzLnR5cGUgPT09ICd0ZWwnKSB7XG4gICAgICAgIHRoaXMucHJldGV4dCA9IHRoaXMuZGVwZW5kZW50VmFsPy5kaWFsX2NvZGU7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZGVwZW5kZW50Py52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWwpID0+IHtcbiAgICAgICAgdGhpcy5kZXBlbmRlbnRWYWwgPSB0aGlzLmdldERlcGVuZGVudFZhbCh2YWwpO1xuICAgICAgICB0aGlzLmZvcm1Db250cm9sLnJlc2V0KCk7XG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5pbnB1dFZhbCk7XG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT09ICd0ZWwnKSB7XG4gICAgICAgICAgdGhpcy5wcmV0ZXh0ID0gdGhpcy5kZXBlbmRlbnRWYWw/LmRpYWxfY29kZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIGdldERlcGVuZGVudFZhbCh2YWx1ZTogYW55KSB7XG4gICAgbGV0IGRlcGVuZGVudFZhbHVlOiBhbnk7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICBkZXBlbmRlbnRWYWx1ZSA9IHZhbHVlLmxlbmd0aCA/IHZhbHVlWzBdIDogbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVwZW5kZW50VmFsdWUgPSB2YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGRlcGVuZGVudFZhbHVlO1xuICB9XG5cbiAgY2hlY2tWYWxpZGl0eShkZWZhdWx0SW5wdXRTdGF0ZSA9ICdmb2N1cycpIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLmZvcm1Db250cm9sICYmXG4gICAgICAhdGhpcy5mb3JtQ29udHJvbC52YWxpZCAmJlxuICAgICAgdGhpcy5mb3JtQ29udHJvbC50b3VjaGVkICYmXG4gICAgICAhdGhpcy5mb3JtQ29udHJvbC5wZW5kaW5nXG4gICAgKSB7XG4gICAgICB0aGlzLmlucHV0U3RhdGUgPSAnaW52YWxpZCc7XG4gICAgICB0aGlzLmlucHV0RXJyb3JUZXh0ID1cbiAgICAgICAgZ2V0VmFsaWRhdGlvbk1lc3NhZ2UodGhpcy5mb3JtQ29udHJvbC5lcnJvcnMsIHRoaXMucGFyYW1zPy5wbGFjZWhvbGRlciB8fCB0aGlzLmZpZWxkLnByb3BzPy5sYWJlbCB8fCAnSW5wdXQnLCB7XG4gICAgICAgICAgZmllbGQ6IHRoaXMuZmllbGQsXG4gICAgICAgICAgbmF0aXZlVmFsaWRhdGlvbk9iamVjdDogdGhpcy5maWVsZC52YWxpZGF0aW9uLFxuICAgICAgICB9KSB8fCBgaW52YWxpZCAke3RoaXMucGFyYW1zPy5wbGFjZWhvbGRlciB8fCB0aGlzLmZpZWxkLnByb3BzPy5sYWJlbCB8fCAnaW5wdXQnfWBcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbnB1dFN0YXRlID0gZGVmYXVsdElucHV0U3RhdGU7XG4gICAgfVxuICB9XG5cbiAgb25Gb2N1cygpIHtcbiAgICBpZiAodGhpcy5mb3JtQ29udHJvbC52YWxpZCkgdGhpcy5pbnB1dFN0YXRlID0gJ2ZvY3VzJztcbiAgfVxuICBvbkJsdXIoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuc3VwcHJlc3NPbkJsdXIpIHtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgIHRoaXMuY2hlY2tWYWxpZGl0eSgnaWRsZScpO1xuICAgICAgfVxuICAgICAgdGhpcy5zdXBwcmVzc09uQmx1ciA9IGZhbHNlO1xuICAgIH0sIDIwMCk7XG4gIH1cblxuICBvbklucHV0KGV2ZW50OiBhbnkpIHtcbiAgICBpZiAodGhpcy5wYXJhbXM/LnR5cGUgPT09ICd0ZWwnKSB7XG4gICAgICB0aGlzLmlucHV0VmFsID0gdGhpcy5pbnB1dFZhbC5yZXBsYWNlKC9bXjAtOSgpK1xcLSBdL2csICcnKTtcbiAgICAgIHRoaXMuaW5wdXRWYWwgPSB0aGlzLmh5cGhlbmF0ZVBob25lTnVtYmVyKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnBhcmFtcz8udHlwZSA9PT0gJ3BlcmNlbnRhZ2UnKSB7XG4gICAgICBsZXQgdmFsdWUgPSB0aGlzLmlucHV0VmFsLnJlcGxhY2UoL1teMC05Ll0vZywgJycpO1xuICAgICAgdGhpcy5pbnB1dFZhbCA9IHZhbHVlID8gYCR7dmFsdWV9JWAgOiAnJztcbiAgICB9XG4gICAgdGhpcy5mb3JtQ29udHJvbD8uc2V0VmFsdWUodGhpcy5pbnB1dFZhbCk7XG4gICAgdGhpcy5jaGVja1ZhbGlkaXR5KCk7XG4gICAgLyppZiAodGhpcy5wYXJhbXM/LmV2ZW50TGlzdGVuZXIpIHtcbiAgICAgIHRoaXMucGFyYW1zPy5ldmVudExpc3RlbmVyKHtcbiAgICAgICAgdHlwZTogSUlucHV0RXZlbnRUeXBlLklOUFVUX0NIQU5HRSxcbiAgICAgICAgdmFsdWU6IHRoaXMuaW5wdXRWYWwsXG4gICAgICAgIGZvcm1Db250cm9sOiB0aGlzLmZvcm1Db250cm9sXG4gICAgICB9IGFzIElJbnB1dEV2ZW50KS50aGVuKHRoaXMub25GaWVsZENhbGxiYWNrLmJpbmQodGhpcykpO1xuICAgIH0qL1xuICB9XG5cbiAgaHlwaGVuYXRlUGhvbmVOdW1iZXIoKSB7XG4gICAgbGV0IG5ld1N0ciA9ICcnO1xuICAgIGxldCBpID0gMDtcbiAgICBsZXQgaHlwaGVuYXRlZENvdW50ID0gMTtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuaW5wdXRWYWwucmVwbGFjZUFsbCgnLScsICcnKTtcbiAgICBmb3IgKDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICBuZXdTdHIgPSBuZXdTdHIgKyB2YWx1ZS5jaGFyQXQoaSk7XG4gICAgICBpZiAoIShoeXBoZW5hdGVkQ291bnQgJSAzKSkge1xuICAgICAgICBpZiAoISgoaSArIDEpICUgMTApICYmIGkgKyAxIDwgdmFsdWUubGVuZ3RoKSB7XG4gICAgICAgICAgbmV3U3RyID0gbmV3U3RyICsgJy0nO1xuICAgICAgICAgIGh5cGhlbmF0ZWRDb3VudCsrO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAhKChpICsgMSAtIE1hdGguZmxvb3IoaHlwaGVuYXRlZENvdW50IC8gMykpICUgMykgJiZcbiAgICAgICAgaSArIDEgPCB2YWx1ZS5sZW5ndGhcbiAgICAgICkge1xuICAgICAgICBuZXdTdHIgPSBuZXdTdHIgKyAnLSc7XG4gICAgICAgIGh5cGhlbmF0ZWRDb3VudCsrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuZXdTdHI7XG4gIH1cblxuICBvbklucHV0RmllbGRDbGljayhldmVudDogYW55ID0gJ2lucHV0Jykge1xuICAgIGlmIChcbiAgICAgIGV2ZW50ID09PSAnaW5wdXQnIHx8XG4gICAgICBldmVudC50YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKCdzYS1pbnB1dC1maWVsZCcpXG4gICAgKSB7XG4gICAgICB0aGlzLmZvcm1JbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICBpZiAodGhpcy5wYXJhbXM/LnR5cGUgIT09ICdlbWFpbCcpXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuZm9ybUlucHV0Lm5hdGl2ZUVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2UoXG4gICAgICAgICAgICB0aGlzLmlucHV0VmFsLmxlbmd0aCxcbiAgICAgICAgICAgIHRoaXMuaW5wdXRWYWwubGVuZ3RoLFxuICAgICAgICAgICk7XG4gICAgICAgIH0sIDEwKTtcbiAgICB9XG4gIH1cblxuICBpbnB1dEljb25DbGljaygpIHtcbiAgICBpZiAodGhpcy5wYXJhbXM/LnR5cGUgPT09ICdwYXNzd29yZCcpIHtcbiAgICAgIHRoaXMuc3VwcHJlc3NPbkJsdXIgPSB0cnVlO1xuICAgICAgaWYgKHRoaXMudHlwZSA9PT0gJ3Bhc3N3b3JkJykge1xuICAgICAgICB0aGlzLnR5cGUgPSAndGV4dCc7XG4gICAgICAgIHRoaXMuaWNvbi5uYW1lID0gJ2V5ZU9mZic7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnR5cGUgPSAncGFzc3dvcmQnO1xuICAgICAgICB0aGlzLmljb24ubmFtZSA9ICdleWVPdXRsaW5lZCc7XG4gICAgICB9XG4gICAgICB0aGlzLm9uSW5wdXRGaWVsZENsaWNrKCk7XG4gICAgfVxuICB9XG5cbiAgLypvbkZpZWxkQ2FsbGJhY2socGFyYW06IElJbnB1dFBhcmFtKSB7XG4gICAgdGhpcy5pY29uID0gcGFyYW0uaWNvbiB8fCB0aGlzLmljb247XG4gICAgdGhpcy5jaGVja1ZhbGlkaXR5KCk7XG4gIH0qL1xuXG4gIGdldEZvcm1TdXBwb3J0VGV4dCgpIHtcbiAgICBpZiAodGhpcy5mb3JtQ29udHJvbC5pbnZhbGlkICYmIHRoaXMuZm9ybUNvbnRyb2wudG91Y2hlZCkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgZ2V0VmFsaWRhdGlvbk1lc3NhZ2UodGhpcy5mb3JtQ29udHJvbC5lcnJvcnMsIHRoaXMucGFyYW1zPy5wbGFjZWhvbGRlciB8fCB0aGlzLmZpZWxkLnByb3BzPy5sYWJlbCB8fCAnSW5wdXQnLHtcbiAgICAgICAgICBmaWVsZDogdGhpcy5maWVsZCxcbiAgICAgICAgICBuYXRpdmVWYWxpZGF0aW9uT2JqZWN0OiBfZ2V0KHRoaXMuZmllbGQsICd2YWxpZGF0aW9uJyksXG4gICAgICAgIH0pIHx8XG4gICAgICAgIGBpbnZhbGlkICR7dGhpcy5wYXJhbXM/LnBsYWNlaG9sZGVyIHx8IHRoaXMuZmllbGQucHJvcHM/LmxhYmVsIHx8ICdpbnB1dCd9YFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMucGFyYW1zPy5zdXBwb3J0VGV4dCB8fCAnJztcbiAgICB9XG4gIH1cblxuICBwcmVkZWZpbmVkVmFsaWRhdG9yczogYW55ID0ge1xuICAgIGVtYWlsOiBbVmFsaWRhdG9ycy5lbWFpbCwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgcGFzc3dvcmQ6IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICB0ZWw6IFtWYWxpZGF0b3JzLnBhdHRlcm4oJ15bMC05ICtcXFxcLSgpXSokJyldLFxuICB9O1xuXG4gIGdldExhYmVsRmllbGRHYXAoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5wcm9wcz8uWydiaWdMYWJlbCddKSB7XG4gICAgICByZXR1cm4gJ3ZhcigtLW1lZGl1bS0yMHB4KSc7XG4gICAgfSBlbHNlIGlmICh0aGlzLnByb3BzPy5bJ2xhYmVsJ10pIHtcbiAgICAgIHJldHVybiAndmFyKC0tc21hbGwtNHB4KSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAnMHB4JzsgLy8gTm8gZ2FwXG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUlucHV0SWNvbiB7XG4gIG5hbWU6IHN0cmluZztcbiAgc2hvdz86IGJvb2xlYW47XG4gIGNvbG9yPzogc3RyaW5nO1xuICBzaXplPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElJbnB1dFBhcmFtIHtcbiAgdmFsaWRhdG9ycz86IGFueVtdO1xuICBhc3luY1ZhbGlkYXRvcnM/OiBhbnlbXTtcbiAgc3VwcG9ydFRleHQ/OiBzdHJpbmc7XG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICB0eXBlPzogc3RyaW5nO1xuICBkZXBlbmRlbnQ/OiBzdHJpbmc7XG4gIGV2ZW50TGlzdGVuZXI/OiBGdW5jdGlvbjtcbiAgaWNvbj86IElJbnB1dEljb247XG4gIGVycm9ycz86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSUlucHV0RXZlbnQge1xuICB0eXBlOiBJSW5wdXRFdmVudFR5cGU7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIGNhbGxCYWNrOiBhbnk7XG4gIGZvcm1Db250cm9sOiBGb3JtQ29udHJvbDtcbn1cbmV4cG9ydCBlbnVtIElJbnB1dEV2ZW50VHlwZSB7XG4gIElOUFVUX0NIQU5HRSA9ICdJTlBVVF9DSEFOR0UnLFxuICBTVEFURV9DSEFOR0UgPSAnU1RBVEVfQ0hBTkdFJyxcbiAgSUNPTl9DTElDSyA9ICdJQ09OX0NMSUNLJyxcbn1cbiIsIjxkaXYgY2xhc3M9XCJzYS1pbnB1dC1jb250YWluZXIge3twcm9wcz8uWydpbnB1dENvbnRhaW5lckNsYXNzJ119fVwiIFtuZ1N0eWxlXT1cInsnZ2FwJzogZ2V0TGFiZWxGaWVsZEdhcCgpfVwiPlxuICAgIEBpZiAoISFwcm9wcz8uWydiaWdMYWJlbCddIHx8ICEhcHJvcHM/LlsnYmlnRGVzY3JpcHRpb24nXSkge1xuICAgIDxkaXYgY2xhc3M9XCJzYS1pbnB1dC1iaWctbGFiZWwtY29udGFpbmVyXCIgW25nQ2xhc3NdPVwiZGlzYWJsZWQgPyAnZGlzYWJsZWQnIDogJycgXCI+XG4gICAgICAgIDxoMiBjbGFzcz1cInNhLWlucHV0LWJpZy1sYWJlbFwiPlxuICAgICAgICAgICAge3twcm9wcz8uWydiaWdMYWJlbCddfX1cbiAgICAgICAgPC9oMj5cbiAgICAgICAgPHAgY2xhc3M9XCJzYS1pbnB1dC1iaWctZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgIHt7cHJvcHM/LlsnYmlnRGVzY3JpcHRpb24nXX19XG4gICAgICAgIDwvcD5cbiAgICA8L2Rpdj5cbiAgICB9XG5cbiAgICBAaWYoISFwcm9wcz8uWydsYWJlbCddKXtcbiAgICA8ZGl2IGNsYXNzPVwic2EtaW5wdXQtbGFiZWwtY29udGFpbmVyXCIgW25nQ2xhc3NdPVwiZGlzYWJsZWQgPyAnZGlzYWJsZWQnIDogJycgXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYS1pbnB1dC1sYWJlbC10b29sdGlwLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYS1pbnB1dC1sYWJlbFwiPlxuICAgICAgICAgICAgICAgIHt7cHJvcHM/LlsnbGFiZWwnXX19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICBAaWYoISFwcm9wcz8uWyd0b29sdGlwJ10pe1xuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0b29sdGlwLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgIDxzYS1pY29uIFtpY29uXT1cInByb3BzPy5bJ3Rvb2x0aXBJY29uJ10gfHwgJ2luZm9DaXJjbGVPdXRsaW5lZCdcIiBjdXN0b21DbGFzcz1cImluZm8taWNvblwiXG4gICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cInByb3BzPy5bJ3Rvb2x0aXAnXVwiIG1hdFRvb2x0aXBDbGFzcz1cImN1c3RvbS10b29sdGlwXCIgY2xhc3M9XCJ0b29sdGlwLWljb24gZC1mbGV4XCJcbiAgICAgICAgICAgICAgICAgICAgW3NpemVdPVwicHJvcHM/LlsndG9vbHRpcEljb25TaXplJ10gfHwgJzIwJ1wiPjwvc2EtaWNvbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIEBpZighIXByb3BzPy5bJ2Rlc2NyaXB0aW9uJ10pIHtcbiAgICAgICAgPHAgY2xhc3M9XCJzYS1pbnB1dC1kZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAge3twcm9wcz8uWydkZXNjcmlwdGlvbiddfX1cbiAgICAgICAgPC9wPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG4gICAgfVxuICAgIDxkaXYgY2xhc3M9XCJzYS1pbnB1dFwiIFtuZ0NsYXNzXT1cImRpc2FibGVkID8gJ2Rpc2FibGVkJyA6ICcnIFwiPlxuICAgICAgICBAaWYoKHByZXRleHQgfHwgKCEhaW5wdXRWYWw/Lmxlbmd0aCAmJiAoISFwYXJhbXM/LnBsYWNlaG9sZGVyIHx8ICEhcHJvcHM/LnBsYWNlaG9sZGVyKSkpICYmIHByb3BzPy5bJ3Nob3dUYWcnXVxuICAgICAgICAhPT0gZmFsc2Upe1xuICAgICAgICA8c3BhbiBjbGFzcz1cInNhLWlucHV0LXRhZ1wiPnt7cGFyYW1zPy5wbGFjZWhvbGRlciB8fCBwcm9wcz8ucGxhY2Vob2xkZXJ9fTwvc3Bhbj5cbiAgICAgICAgfVxuICAgICAgICA8ZGl2IGNsYXNzPVwic2EtaW5wdXQtZmllbGRcIiBbbmdDbGFzc109XCJmb3JtQ29udHJvbC5pbnZhbGlkICYmIGZvcm1Db250cm9sLnRvdWNoZWQgPyAnaW52YWxpZCcgOiAnaWRsZScgXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvbklucHV0RmllbGRDbGljaygkZXZlbnQpXCI+XG4gICAgICAgICAgICBAaWYocHJldGV4dCl7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2EtaW5wdXQtcHJldGV4dFwiPlxuICAgICAgICAgICAgICAgIHt7cHJldGV4dH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiKCEhaW5wdXRWYWwgJiYgKHBhcmFtcz8udHlwZSA9PT0gJ3Bhc3N3b3JkJyB8fCBwcm9wcz8udHlwZSA9PT0gJ3Bhc3N3b3JkJykgJiYgaWNvbi5uYW1lICE9PSAnZXllT2ZmJykgPyAnbWFza2VkJyA6ICcnXCJcbiAgICAgICAgICAgICAgICBtYXRJbnB1dCBbdHlwZV09XCJ0eXBlXCIgdmFsdWU9XCJcIiBbcGF0dGVybl09XCJ0eXBlPT09J3RlbCcgPyAnWzAtOV0nIDogJycgXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZmllbGQucHJvcHMuZGlzYWJsZWQgfHwgZmFsc2VcIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCIhcHJldGV4dCAmJiBwcm9wcz8ucGxhY2Vob2xkZXIgfHwgcGFyYW1zPy5wbGFjZWhvbGRlciB8fCAnJ1wiIChmb2N1cyk9XCJvbkZvY3VzKClcIlxuICAgICAgICAgICAgICAgIChibHVyKT1cIm9uQmx1cigpXCIgKGlucHV0KT1cIm9uSW5wdXQoJGV2ZW50KVwiIFsobmdNb2RlbCldPVwiaW5wdXRWYWxcIiAjZm9ybUlucHV0IC8+XG5cbiAgICAgICAgICAgIEBpZihwYXJhbXM/LnR5cGUgPT09ICdwYXNzd29yZCcpe1xuICAgICAgICAgICAgPHNhLWljb24gY2xhc3M9XCJmbGV4XCIgaWNvbj1cImV5ZU91dGxpbmVkXCIgW3NpemVdPVwiaWNvbi5zaXplIHx8ICcyNCdcIiAoY2xpY2spPVwiaW5wdXRJY29uQ2xpY2soKVwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiIWljb24ubmFtZSB8fCBpY29uLm5hbWUgPT09ICdleWVPdXRsaW5lZCcgPyAnJyA6ICdoaWRlJ1wiPjwvc2EtaWNvbj5cbiAgICAgICAgICAgIDxzYS1pY29uIGNsYXNzPVwiZmxleFwiIGljb249XCJleWVPZmZcIiBbc2l6ZV09XCJpY29uLnNpemUgfHwgJzI0J1wiIChjbGljayk9XCJpbnB1dEljb25DbGljaygpXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJpY29uLm5hbWUgPT09ICdleWVPZmYnID8gJycgOiAnaGlkZSdcIj48L3NhLWljb24+XG4gICAgICAgICAgICB9QGVsc2UgaWYocGFyYW1zPy50eXBlID09PSAnZW1haWwnICYmIGljb24uc2hvdyl7XG4gICAgICAgICAgICA8c2EtaWNvbiBjbGFzcz1cImZsZXhcIiBbaWNvbl09XCJpY29uLm5hbWUgfHwgJ2NoZWNrQ2lyY2xlT3V0bGluZWQnXCIgW3NpemVdPVwiaWNvbi5zaXplIHx8ICcyNCdcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJpbnB1dEljb25DbGljaygpXCIgW25nQ2xhc3NdPVwic2hvd0VtYWlsSWNvbiA/ICcnIDogJ2hpZGUnXCI+PC9zYS1pY29uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGVsc2UgaWYoaWNvbj8ubmFtZSl7XG4gICAgICAgICAgICA8c2EtaWNvbiBjbGFzcz1cImQtZmxleFwiIFtpY29uXT1cImljb24ubmFtZVwiIFtzaXplXT1cImljb24/LnNpemUgfHwgJzI0J1wiIFtjb2xvcl09XCJpY29uPy5jb2xvciB8fCAnJ1wiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiaWNvbj8uc2hvdyA/ICcnIDogJ2hpZGUnXCI+PC9zYS1pY29uPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICBAaWYoKCFmb3JtQ29udHJvbC52YWxpZCkgfHwgKHBhcmFtcz8uc3VwcG9ydFRleHQpKXtcbiAgICAgICAgPGRpdiBjbGFzcz1cInN1cHBvcnQtbGFiZWxcIlxuICAgICAgICBbbmdDbGFzc109XCJbXG4gICAgICAgIGZvcm1Db250cm9sLmludmFsaWQgJiYgZm9ybUNvbnRyb2wudG91Y2hlZCA/ICdpbnZhbGlkJyA6ICdpZGxlJyxcbiAgICAgICAgZm9ybUNvbnRyb2wuaW52YWxpZCAmJiBmb3JtQ29udHJvbC50b3VjaGVkID8gcGFyYW1zPy5jbGFzc05hbWUgOiAnJ1xuICAgICAgXVwiPlxuICAgICAgICAgICAgPCEtLSB7eyFmb3JtQ29udHJvbC52YWxpZCA/IGlucHV0RXJyb3JUZXh0IDogcGFyYW1zLnN1cHBvcnRUZXh0fX0gLS0+XG4gICAgICAgICAgICB7e2dldEZvcm1TdXBwb3J0VGV4dCgpfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbjwvZGl2PiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { get as _get, find as _find, has as _has, keys as _keys, startCase as _startCase } from 'lodash';
|
|
2
2
|
export function phoneNumberValidator(dependent) {
|
|
3
3
|
return (control) => {
|
|
4
4
|
const dependentFormControl = dependent ? control.parent?.get(dependent) : null;
|
|
@@ -69,8 +69,20 @@ export function workEmailValidation(): AsyncValidatorFn {
|
|
|
69
69
|
);
|
|
70
70
|
};
|
|
71
71
|
}*/
|
|
72
|
-
export function getValidationMessage(errors, placeholder = 'Input') {
|
|
72
|
+
export function getValidationMessage(errors, placeholder = 'Input', additionalProperties) {
|
|
73
|
+
const messages = _get(additionalProperties, 'nativeValidationObject.messages', {});
|
|
74
|
+
const field = _get(additionalProperties, 'field', {});
|
|
73
75
|
if (errors) {
|
|
76
|
+
// Check if any key in errors matches with messages using lodash
|
|
77
|
+
const matchingKey = _find(_keys(errors), key => _has(messages, key));
|
|
78
|
+
if (matchingKey && messages[matchingKey]) {
|
|
79
|
+
// If message is a function, execute it with errors and nativeValidationObject
|
|
80
|
+
if (typeof messages[matchingKey] === 'function') {
|
|
81
|
+
return messages[matchingKey](errors[matchingKey], field);
|
|
82
|
+
}
|
|
83
|
+
return messages[matchingKey];
|
|
84
|
+
}
|
|
85
|
+
// Fall back to default messages
|
|
74
86
|
if (errors['minlength']) {
|
|
75
87
|
return `Minimum ${errors['minlength']['requiredLength']} characters required`;
|
|
76
88
|
}
|
|
@@ -115,4 +127,4 @@ export function numberRangeValidator(range, type = null) {
|
|
|
115
127
|
export const requiredValidatorMessage = (error, field) => {
|
|
116
128
|
return `${_startCase(_get(field, 'props.label'))} is required.`;
|
|
117
129
|
};
|
|
118
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy91dGlscy92YWxpZGF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxTQUFTLElBQUksVUFBVSxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFFN0QsTUFBTSxVQUFVLG9CQUFvQixDQUFDLFNBQWtCO0lBQ25ELE9BQU8sQ0FBQyxPQUF3QixFQUEyQixFQUFFO1FBQ3pELE1BQU0sb0JBQW9CLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQy9FLElBQUksb0JBQW9CLElBQUksQ0FBQyxDQUFDLG9CQUFvQixDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUMvRCxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVyRCxJQUFJLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3pDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQztnQkFDL0MsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQyxDQUFBO0FBQ0wsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQ2hDLE9BQXdCLEVBQ1EsRUFBRTtJQUNsQyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQzVCLG1FQUFtRTtJQUVuRSxNQUFNLFlBQVksR0FBRyxtREFBbUQsQ0FBQztJQUV6RSxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDakQsT0FBTyxJQUFJLENBQUMsQ0FBQyxjQUFjO0lBQy9CLENBQUM7U0FBTSxDQUFDO1FBQ0osT0FBTztZQUNILE9BQU8sRUFDSCxtRkFBbUY7U0FDMUYsQ0FBQyxDQUFDLGdCQUFnQjtJQUN2QixDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBQ0YsTUFBTSxXQUFXLEdBQUcsQ0FBQyxLQUFhLEVBQVcsRUFBRTtJQUMzQyxNQUFNLGlCQUFpQixHQUFhLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNsRSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNoRCxJQUFJLEVBQUUsR0FBRyxJQUFJLE1BQU0sQ0FBQyxLQUFLLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNyRCxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztnQkFDdEIsT0FBTyxLQUFLLENBQUM7WUFDakIsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQyxDQUFBO0FBQ0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0Qkc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsTUFBVyxFQUFFLGNBQXNCLE9BQU87SUFDM0UsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUNULElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDdEIsT0FBTyxXQUFXLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0IsQ0FBQztRQUNsRixDQUFDO2FBQU0sSUFBSSxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUM3QixPQUFPLGNBQWMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLHNCQUFzQixDQUFDO1FBQ3JGLENBQUM7YUFBTSxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQzVCLE9BQU8sR0FBRyxXQUFXLGtCQUFrQixDQUFDO1FBQzVDLENBQUM7YUFBTSxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQzNCLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzdCLENBQUM7YUFBTSxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ3pCLE9BQU8scUJBQXFCLENBQUM7UUFDakMsQ0FBQzthQUFNLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDM0IsT0FBTyw0QkFBNEIsQ0FBQztRQUN4QyxDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sV0FBVyxXQUFXLEVBQUUsQ0FBQztRQUNwQyxDQUFDO0lBQ0wsQ0FBQztJQUNELE9BQU8sV0FBVyxXQUFXLEVBQUUsQ0FBQztBQUNwQyxDQUFDO0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUFDLEtBQW1DLEVBQUUsSUFBSSxHQUFHLElBQUk7SUFDakYsT0FBTyxDQUFDLE9BQXdCLEVBQTJCLEVBQUU7UUFDekQsSUFBSSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUUxQixJQUFJLElBQUksS0FBSyxZQUFZLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDckQsS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ25DLENBQUM7UUFFRCxvREFBb0Q7UUFDcEQsTUFBTSxZQUFZLEdBQUcsS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUVyRiw0REFBNEQ7UUFDNUQsSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksWUFBWSxHQUFHLEtBQUssQ0FBQyxHQUFHLElBQUksWUFBWSxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUM5RSxPQUFPO2dCQUNILE9BQU8sRUFBRSx1Q0FBdUMsS0FBSyxDQUFDLEdBQUcsUUFBUSxLQUFLLENBQUMsR0FBRyxFQUFFO2FBQy9FLENBQUM7UUFDTixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQyxDQUFBO0FBQ0wsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLENBQUMsS0FBVSxFQUFFLEtBQXdCLEVBQUUsRUFBRTtJQUM3RSxPQUFPLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUMsZUFBZSxDQUFDO0FBQ3BFLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgQXN5bmNWYWxpZGF0b3JGbiwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBkZWJvdW5jZVRpbWUsIGRlbGF5LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGb3JtbHlGaWVsZENvbmZpZyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgc3RhcnRDYXNlIGFzIF9zdGFydENhc2UsIGdldCBhcyBfZ2V0IH0gZnJvbSAnbG9kYXNoJ1xuXG5leHBvcnQgZnVuY3Rpb24gcGhvbmVOdW1iZXJWYWxpZGF0b3IoZGVwZW5kZW50Pzogc3RyaW5nKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgICBjb25zdCBkZXBlbmRlbnRGb3JtQ29udHJvbCA9IGRlcGVuZGVudCA/IGNvbnRyb2wucGFyZW50Py5nZXQoZGVwZW5kZW50KSA6IG51bGw7XG4gICAgICAgIGlmIChkZXBlbmRlbnRGb3JtQ29udHJvbCAmJiAhIWRlcGVuZGVudEZvcm1Db250cm9sLnZhbHVlPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCd2YWxpZGF0b3InLCBkZXBlbmRlbnRGb3JtQ29udHJvbC52YWx1ZSk7XG5cbiAgICAgICAgICAgIGlmIChkZXBlbmRlbnRGb3JtQ29udHJvbC52YWx1ZVswXS5pZCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGlmICghL15cXCsxWzItOV1cXGR7Mn1bMi05XVxcZHs2fSQvLnRlc3QoY29udHJvbC52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaW52YWxpZDogJ2ludmFsaWQgcGhvbmUgbnVtYmVyJyB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG59XG5cbmV4cG9ydCBjb25zdCBjdXN0b21FbWFpbFZhbGlkYXRvciA9IChcbiAgICBjb250cm9sOiBBYnN0cmFjdENvbnRyb2xcbik6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gfCBudWxsID0+IHtcbiAgICBjb25zdCBlbWFpbCA9IGNvbnRyb2wudmFsdWU7XG4gICAgLy8gUmVwbGFjZSB0aGUgcmVndWxhciBleHByZXNzaW9uIHdpdGggdGhlIHBhdHRlcm4geW91IHdhbnQgdG8gdXNlLlxuXG4gICAgY29uc3QgZW1haWxQYXR0ZXJuID0gL15bYS16QS1aMC05Ll8lKy1dK0BbYS16QS1aMC05Li1dK1xcLlthLXpBLVpdezIsNH0kLztcblxuICAgIGlmIChlbWFpbFBhdHRlcm4udGVzdChlbWFpbCkgJiYgaXNXb3JrRW1haWwoZW1haWwpKSB7XG4gICAgICAgIHJldHVybiBudWxsOyAvLyBWYWxpZCBlbWFpbFxuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpbnZhbGlkOlxuICAgICAgICAgICAgICAgICdQbGVhc2UgdXNlIGEgd29yayBlbWFpbDsgcGVyc29uYWwgZW1haWxzIChlLmcuLCBAZ21haWwsIEB5YWhvbykgYXJlIG5vdCBhY2NlcHRlZC4nLFxuICAgICAgICB9OyAvLyBJbnZhbGlkIGVtYWlsXG4gICAgfVxufTtcbmNvbnN0IGlzV29ya0VtYWlsID0gKGVtYWlsOiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgICBjb25zdCBpbnZhbGlkRW1haWxIb3N0czogc3RyaW5nW10gPSBbJ2dtYWlsJywgJ3lhaG9vJywgJ2hvdG1haWwnXTtcbiAgICBpZiAoZW1haWwpIHtcbiAgICAgICAgbGV0IFt1c2VyTmFtZSwgZG9tYWluTmFtZV0gPSBlbWFpbC5zcGxpdCgnQCcpO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGludmFsaWRFbWFpbEhvc3RzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgcmUgPSBuZXcgUmVnRXhwKGAuKiR7aW52YWxpZEVtYWlsSG9zdHNbaV19XFwuLipgKTtcbiAgICAgICAgICAgIGlmIChyZS50ZXN0KGRvbWFpbk5hbWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59XG4vKlxuZXhwb3J0IGZ1bmN0aW9uIHdvcmtFbWFpbFZhbGlkYXRpb24oKTogQXN5bmNWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBPYnNlcnZhYmxlPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPiA9PiB7XG4gICAgICAgIGlmICghY29udHJvbC52YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKG51bGwpOyAvLyBObyB2YWx1ZSB0byB2YWxpZGF0ZVxuICAgICAgICB9XG5cbiAgICAgICAgIWNvbnRyb2wucGVuZGluZyAmJiBjb250cm9sLm1hcmtBc1BlbmRpbmcoKTtcbiAgICAgICAgLy8gIWNvbnRyb2wudG91Y2hlZCAmJiBjb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgLy8gcmV0dXJuIG9mKHsgaW52YWxpZDogJ0VudGVyIHlvdXIgd29yayBlbWFpbCcgfSk7XG4gICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChvYikgPT4ge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGNvbnRyb2wudmFsdWUgPT09ICdzYWlyYWpAZ21haWwuY29tJylcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9iLm5leHQobnVsbClcbiAgICAgICAgICAgICAgICByZXR1cm4gb2IubmV4dCh7IGludmFsaWQ6ICdUaGlzIGlzIG5vdCBhIHdvcmtlbWFpbCcgfSk7XG4gICAgICAgICAgICB9LCA1MDApXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBvZihjb250cm9sLnZhbHVlKS5waXBlKFxuICAgICAgICAgICAgZGVsYXkoNTAwKSwgLy8gU2ltdWxhdGUgbmV0d29yayBkZWxheVxuXG4gICAgICAgICAgICBtYXAodmFsdWUgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBvZih7IGludmFsaWQ6ICdUaGlzIGlzIG5vdCBhIHdvcmtlbWFpbCcgfSkvL2V4aXN0aW5nVXNlcm5hbWVzLmluY2x1ZGVzKHVzZXJuYW1lKSA/IHsgdXNlcm5hbWVUYWtlbjogdHJ1ZSB9IDogbnVsbDtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAvLyBjYXRjaEVycm9yKCgpID0+IG9mKG51bGwpKSAvLyBIYW5kbGUgYW55IGVycm9yc1xuICAgICAgICApO1xuICAgIH07XG59Ki9cbmV4cG9ydCBmdW5jdGlvbiBnZXRWYWxpZGF0aW9uTWVzc2FnZShlcnJvcnM6IGFueSwgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICdJbnB1dCcpOiBzdHJpbmcge1xuICAgIGlmIChlcnJvcnMpIHtcbiAgICAgICAgaWYgKGVycm9yc1snbWlubGVuZ3RoJ10pIHtcbiAgICAgICAgICAgIHJldHVybiBgTWluaW11bSAke2Vycm9yc1snbWlubGVuZ3RoJ11bJ3JlcXVpcmVkTGVuZ3RoJ119IGNoYXJhY3RlcnMgcmVxdWlyZWRgO1xuICAgICAgICB9IGVsc2UgaWYgKGVycm9yc1snbWF4bGVuZ3RoJ10pIHtcbiAgICAgICAgICAgIHJldHVybiBgTWF4aW11bSBvZiAke2Vycm9yc1snbWF4bGVuZ3RoJ11bJ3JlcXVpcmVkTGVuZ3RoJ119IGNoYXJhY3RlcnMgYWNjZXB0ZWRgO1xuICAgICAgICB9IGVsc2UgaWYgKGVycm9yc1sncmVxdWlyZWQnXSkge1xuICAgICAgICAgICAgcmV0dXJuIGAke3BsYWNlaG9sZGVyfSBjYW5ub3QgYmUgZW1wdHlgO1xuICAgICAgICB9IGVsc2UgaWYgKGVycm9yc1snaW52YWxpZCddKSB7XG4gICAgICAgICAgICByZXR1cm4gZXJyb3JzWydpbnZhbGlkJ107XG4gICAgICAgIH0gZWxzZSBpZiAoZXJyb3JzWydlbWFpbCddKSB7XG4gICAgICAgICAgICByZXR1cm4gJ0VudGVyIGEgdmFsaWQgZW1haWwnO1xuICAgICAgICB9IGVsc2UgaWYgKGVycm9yc1sncGF0dGVybiddKSB7XG4gICAgICAgICAgICByZXR1cm4gJ0VudGVyIGEgdmFsaWQgcGhvbmUgbnVtYmVyJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBgSW52YWxpZCAke3BsYWNlaG9sZGVyfWA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGBJbnZhbGlkICR7cGxhY2Vob2xkZXJ9YDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG51bWJlclJhbmdlVmFsaWRhdG9yKHJhbmdlOiB7IG1pbjogbnVtYmVyOyBtYXg6IG51bWJlciB9LCB0eXBlID0gbnVsbCk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgICAgbGV0IHZhbHVlID0gY29udHJvbC52YWx1ZTtcblxuICAgICAgICBpZiAodHlwZSA9PT0gJ3BlcmNlbnRhZ2UnICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgnJScsICcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENvbnZlcnQgdG8gYSBudW1iZXIgaWYgaXQncyBub3QgbnVsbCBvciB1bmRlZmluZWRcbiAgICAgICAgY29uc3QgbnVtZXJpY1ZhbHVlID0gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCA/IHBhcnNlRmxvYXQodmFsdWUpIDogTmFOO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIHRoZSB2YWx1ZSBpcyBhIHZhbGlkIG51bWJlciBhbmQgd2l0aGluIHRoZSByYW5nZVxuICAgICAgICBpZiAoaXNOYU4obnVtZXJpY1ZhbHVlKSB8fCBudW1lcmljVmFsdWUgPCByYW5nZS5taW4gfHwgbnVtZXJpY1ZhbHVlID4gcmFuZ2UubWF4KSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGludmFsaWQ6IGBQbGVhc2UgZW50ZXIgYSB2YWxpZCBudW1iZXIgYmV0d2VlbiAke3JhbmdlLm1pbn0gYW5kICR7cmFuZ2UubWF4fWBcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG59XG5cbmV4cG9ydCBjb25zdCByZXF1aXJlZFZhbGlkYXRvck1lc3NhZ2UgPSAoZXJyb3I6IGFueSwgZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PiB7XG4gICAgcmV0dXJuIGAke19zdGFydENhc2UoX2dldChmaWVsZCwgJ3Byb3BzLmxhYmVsJykpfSBpcyByZXF1aXJlZC5gO1xufSJdfQ==
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy91dGlscy92YWxpZGF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLElBQUksSUFBSSxLQUFLLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxJQUFJLElBQUksS0FBSyxFQUFFLFNBQVMsSUFBSSxVQUFVLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFHekcsTUFBTSxVQUFVLG9CQUFvQixDQUFDLFNBQWtCO0lBQ25ELE9BQU8sQ0FBQyxPQUF3QixFQUEyQixFQUFFO1FBQ3pELE1BQU0sb0JBQW9CLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQy9FLElBQUksb0JBQW9CLElBQUksQ0FBQyxDQUFDLG9CQUFvQixDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUMvRCxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVyRCxJQUFJLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3pDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQztnQkFDL0MsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQyxDQUFBO0FBQ0wsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQ2hDLE9BQXdCLEVB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LEtBQUssQ0FBQyxHQUFHLEVBQUU7YUFDL0UsQ0FBQztRQUNOLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDLENBQUE7QUFDTCxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxLQUFVLEVBQUUsS0FBd0IsRUFBRSxFQUFFO0lBQzdFLE9BQU8sR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsQ0FBQyxlQUFlLENBQUM7QUFDcEUsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBBc3luY1ZhbGlkYXRvckZuLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGRlYm91bmNlVGltZSwgZGVsYXksIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGdldCBhcyBfZ2V0LCBmaW5kIGFzIF9maW5kLCBoYXMgYXMgX2hhcywga2V5cyBhcyBfa2V5cywgc3RhcnRDYXNlIGFzIF9zdGFydENhc2UgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgRm9ybWx5RmllbGRDb25maWcgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcblxuZXhwb3J0IGZ1bmN0aW9uIHBob25lTnVtYmVyVmFsaWRhdG9yKGRlcGVuZGVudD86IHN0cmluZyk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgICAgY29uc3QgZGVwZW5kZW50Rm9ybUNvbnRyb2wgPSBkZXBlbmRlbnQgPyBjb250cm9sLnBhcmVudD8uZ2V0KGRlcGVuZGVudCkgOiBudWxsO1xuICAgICAgICBpZiAoZGVwZW5kZW50Rm9ybUNvbnRyb2wgJiYgISFkZXBlbmRlbnRGb3JtQ29udHJvbC52YWx1ZT8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygndmFsaWRhdG9yJywgZGVwZW5kZW50Rm9ybUNvbnRyb2wudmFsdWUpO1xuXG4gICAgICAgICAgICBpZiAoZGVwZW5kZW50Rm9ybUNvbnRyb2wudmFsdWVbMF0uaWQgPT09IDApIHtcbiAgICAgICAgICAgICAgICBpZiAoIS9eXFwrMVsyLTldXFxkezJ9WzItOV1cXGR7Nn0kLy50ZXN0KGNvbnRyb2wudmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGludmFsaWQ6ICdpbnZhbGlkIHBob25lIG51bWJlcicgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxufVxuXG5leHBvcnQgY29uc3QgY3VzdG9tRW1haWxWYWxpZGF0b3IgPSAoXG4gICAgY29udHJvbDogQWJzdHJhY3RDb250cm9sXG4pOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHwgbnVsbCA9PiB7XG4gICAgY29uc3QgZW1haWwgPSBjb250cm9sLnZhbHVlO1xuICAgIC8vIFJlcGxhY2UgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiB3aXRoIHRoZSBwYXR0ZXJuIHlvdSB3YW50IHRvIHVzZS5cblxuICAgIGNvbnN0IGVtYWlsUGF0dGVybiA9IC9eW2EtekEtWjAtOS5fJSstXStAW2EtekEtWjAtOS4tXStcXC5bYS16QS1aXXsyLDR9JC87XG5cbiAgICBpZiAoZW1haWxQYXR0ZXJuLnRlc3QoZW1haWwpICYmIGlzV29ya0VtYWlsKGVtYWlsKSkge1xuICAgICAgICByZXR1cm4gbnVsbDsgLy8gVmFsaWQgZW1haWxcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaW52YWxpZDpcbiAgICAgICAgICAgICAgICAnUGxlYXNlIHVzZSBhIHdvcmsgZW1haWw7IHBlcnNvbmFsIGVtYWlscyAoZS5nLiwgQGdtYWlsLCBAeWFob28pIGFyZSBub3QgYWNjZXB0ZWQuJyxcbiAgICAgICAgfTsgLy8gSW52YWxpZCBlbWFpbFxuICAgIH1cbn07XG5jb25zdCBpc1dvcmtFbWFpbCA9IChlbWFpbDogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3QgaW52YWxpZEVtYWlsSG9zdHM6IHN0cmluZ1tdID0gWydnbWFpbCcsICd5YWhvbycsICdob3RtYWlsJ107XG4gICAgaWYgKGVtYWlsKSB7XG4gICAgICAgIGxldCBbdXNlck5hbWUsIGRvbWFpbk5hbWVdID0gZW1haWwuc3BsaXQoJ0AnKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnZhbGlkRW1haWxIb3N0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgbGV0IHJlID0gbmV3IFJlZ0V4cChgLioke2ludmFsaWRFbWFpbEhvc3RzW2ldfVxcLi4qYCk7XG4gICAgICAgICAgICBpZiAocmUudGVzdChkb21haW5OYW1lKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuLypcbmV4cG9ydCBmdW5jdGlvbiB3b3JrRW1haWxWYWxpZGF0aW9uKCk6IEFzeW5jVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogT2JzZXJ2YWJsZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4gPT4ge1xuICAgICAgICBpZiAoIWNvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiBvZihudWxsKTsgLy8gTm8gdmFsdWUgdG8gdmFsaWRhdGVcbiAgICAgICAgfVxuXG4gICAgICAgICFjb250cm9sLnBlbmRpbmcgJiYgY29udHJvbC5tYXJrQXNQZW5kaW5nKCk7XG4gICAgICAgIC8vICFjb250cm9sLnRvdWNoZWQgJiYgY29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgIC8vIHJldHVybiBvZih7IGludmFsaWQ6ICdFbnRlciB5b3VyIHdvcmsgZW1haWwnIH0pO1xuICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgob2IpID0+IHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChjb250cm9sLnZhbHVlID09PSAnc2FpcmFqQGdtYWlsLmNvbScpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvYi5uZXh0KG51bGwpXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9iLm5leHQoeyBpbnZhbGlkOiAnVGhpcyBpcyBub3QgYSB3b3JrZW1haWwnIH0pO1xuICAgICAgICAgICAgfSwgNTAwKVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gb2YoY29udHJvbC52YWx1ZSkucGlwZShcbiAgICAgICAgICAgIGRlbGF5KDUwMCksIC8vIFNpbXVsYXRlIG5ldHdvcmsgZGVsYXlcblxuICAgICAgICAgICAgbWFwKHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YoeyBpbnZhbGlkOiAnVGhpcyBpcyBub3QgYSB3b3JrZW1haWwnIH0pLy9leGlzdGluZ1VzZXJuYW1lcy5pbmNsdWRlcyh1c2VybmFtZSkgPyB7IHVzZXJuYW1lVGFrZW46IHRydWUgfSA6IG51bGw7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLy8gY2F0Y2hFcnJvcigoKSA9PiBvZihudWxsKSkgLy8gSGFuZGxlIGFueSBlcnJvcnNcbiAgICAgICAgKTtcbiAgICB9O1xufSovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmFsaWRhdGlvbk1lc3NhZ2UoZXJyb3JzOiBhbnksIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnSW5wdXQnLCBhZGRpdGlvbmFsUHJvcGVydGllcz86IGFueSk6IHN0cmluZyB7XG4gICAgY29uc3QgbWVzc2FnZXMgPSBfZ2V0KGFkZGl0aW9uYWxQcm9wZXJ0aWVzLCAnbmF0aXZlVmFsaWRhdGlvbk9iamVjdC5tZXNzYWdlcycsIHt9KTtcbiAgICBjb25zdCBmaWVsZCA9IF9nZXQoYWRkaXRpb25hbFByb3BlcnRpZXMsICdmaWVsZCcsIHt9KTtcbiAgICBcbiAgICBpZiAoZXJyb3JzKSB7XG4gICAgICAgIC8vIENoZWNrIGlmIGFueSBrZXkgaW4gZXJyb3JzIG1hdGNoZXMgd2l0aCBtZXNzYWdlcyB1c2luZyBsb2Rhc2hcbiAgICAgICAgY29uc3QgbWF0Y2hpbmdLZXkgPSBfZmluZChfa2V5cyhlcnJvcnMpLCBrZXkgPT4gX2hhcyhtZXNzYWdlcywga2V5KSk7XG4gICAgICAgIGlmIChtYXRjaGluZ0tleSAmJiBtZXNzYWdlc1ttYXRjaGluZ0tleV0pIHtcbiAgICAgICAgICAgIC8vIElmIG1lc3NhZ2UgaXMgYSBmdW5jdGlvbiwgZXhlY3V0ZSBpdCB3aXRoIGVycm9ycyBhbmQgbmF0aXZlVmFsaWRhdGlvbk9iamVjdFxuICAgICAgICAgICAgaWYgKHR5cGVvZiBtZXNzYWdlc1ttYXRjaGluZ0tleV0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbWVzc2FnZXNbbWF0Y2hpbmdLZXldKGVycm9yc1ttYXRjaGluZ0tleV0sIGZpZWxkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBtZXNzYWdlc1ttYXRjaGluZ0tleV07XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC8vIEZhbGwgYmFjayB0byBkZWZhdWx0IG1lc3NhZ2VzXG4gICAgICAgIGlmIChlcnJvcnNbJ21pbmxlbmd0aCddKSB7XG4gICAgICAgICAgICByZXR1cm4gYE1pbmltdW0gJHtlcnJvcnNbJ21pbmxlbmd0aCddWydyZXF1aXJlZExlbmd0aCddfSBjaGFyYWN0ZXJzIHJlcXVpcmVkYDtcbiAgICAgICAgfSBlbHNlIGlmIChlcnJvcnNbJ21heGxlbmd0aCddKSB7XG4gICAgICAgICAgICByZXR1cm4gYE1heGltdW0gb2YgJHtlcnJvcnNbJ21heGxlbmd0aCddWydyZXF1aXJlZExlbmd0aCddfSBjaGFyYWN0ZXJzIGFjY2VwdGVkYDtcbiAgICAgICAgfSBlbHNlIGlmIChlcnJvcnNbJ3JlcXVpcmVkJ10pIHtcbiAgICAgICAgICAgIHJldHVybiBgJHtwbGFjZWhvbGRlcn0gY2Fubm90IGJlIGVtcHR5YDtcbiAgICAgICAgfSBlbHNlIGlmIChlcnJvcnNbJ2ludmFsaWQnXSkge1xuICAgICAgICAgICAgcmV0dXJuIGVycm9yc1snaW52YWxpZCddO1xuICAgICAgICB9IGVsc2UgaWYgKGVycm9yc1snZW1haWwnXSkge1xuICAgICAgICAgICAgcmV0dXJuICdFbnRlciBhIHZhbGlkIGVtYWlsJztcbiAgICAgICAgfSBlbHNlIGlmIChlcnJvcnNbJ3BhdHRlcm4nXSkge1xuICAgICAgICAgICAgcmV0dXJuICdFbnRlciBhIHZhbGlkIHBob25lIG51bWJlcic7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gYEludmFsaWQgJHtwbGFjZWhvbGRlcn1gO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBgSW52YWxpZCAke3BsYWNlaG9sZGVyfWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBudW1iZXJSYW5nZVZhbGlkYXRvcihyYW5nZTogeyBtaW46IG51bWJlcjsgbWF4OiBudW1iZXIgfSwgdHlwZSA9IG51bGwpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICAgIGxldCB2YWx1ZSA9IGNvbnRyb2wudmFsdWU7XG5cbiAgICAgICAgaWYgKHR5cGUgPT09ICdwZXJjZW50YWdlJyAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoJyUnLCAnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDb252ZXJ0IHRvIGEgbnVtYmVyIGlmIGl0J3Mgbm90IG51bGwgb3IgdW5kZWZpbmVkXG4gICAgICAgIGNvbnN0IG51bWVyaWNWYWx1ZSA9IHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQgPyBwYXJzZUZsb2F0KHZhbHVlKSA6IE5hTjtcblxuICAgICAgICAvLyBDaGVjayBpZiB0aGUgdmFsdWUgaXMgYSB2YWxpZCBudW1iZXIgYW5kIHdpdGhpbiB0aGUgcmFuZ2VcbiAgICAgICAgaWYgKGlzTmFOKG51bWVyaWNWYWx1ZSkgfHwgbnVtZXJpY1ZhbHVlIDwgcmFuZ2UubWluIHx8IG51bWVyaWNWYWx1ZSA+IHJhbmdlLm1heCkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBpbnZhbGlkOiBgUGxlYXNlIGVudGVyIGEgdmFsaWQgbnVtYmVyIGJldHdlZW4gJHtyYW5nZS5taW59IGFuZCAke3JhbmdlLm1heH1gXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxufVxuXG5leHBvcnQgY29uc3QgcmVxdWlyZWRWYWxpZGF0b3JNZXNzYWdlID0gKGVycm9yOiBhbnksIGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZykgPT4ge1xuICAgIHJldHVybiBgJHtfc3RhcnRDYXNlKF9nZXQoZmllbGQsICdwcm9wcy5sYWJlbCcpKX0gaXMgcmVxdWlyZWQuYDtcbn0iXX0=
|
|
@@ -14,7 +14,7 @@ import * as i5 from '@angular/material/expansion';
|
|
|
14
14
|
import { MatExpansionModule } from '@angular/material/expansion';
|
|
15
15
|
import * as i2$3 from '@ngx-formly/core';
|
|
16
16
|
import { FieldType, FormlyModule } from '@ngx-formly/core';
|
|
17
|
-
import { get, filter, includes, replace, toString, map, isUndefined, first, find, words, startCase, set } from 'lodash';
|
|
17
|
+
import { get, filter, includes, replace, toString, map, isUndefined, first, find, words, keys, has, startCase, set } from 'lodash';
|
|
18
18
|
import { debounceTime, takeUntil } from 'rxjs/operators';
|
|
19
19
|
import { Subject, isObservable, of } from 'rxjs';
|
|
20
20
|
import * as i2$2 from '@angular/material/core';
|
|
@@ -905,7 +905,7 @@ class MenuCardComponent extends FieldType {
|
|
|
905
905
|
actionHandler(button, event) {
|
|
906
906
|
event.stopPropagation();
|
|
907
907
|
event.preventDefault();
|
|
908
|
-
this.onButtonClickEvent.next(button);
|
|
908
|
+
this.onButtonClickEvent.next({ category: this.selectedStep, button: button });
|
|
909
909
|
}
|
|
910
910
|
showSources(sourceType) {
|
|
911
911
|
this.onFooterClickEvent.emit(sourceType);
|
|
@@ -1237,8 +1237,20 @@ export function workEmailValidation(): AsyncValidatorFn {
|
|
|
1237
1237
|
);
|
|
1238
1238
|
};
|
|
1239
1239
|
}*/
|
|
1240
|
-
function getValidationMessage(errors, placeholder = 'Input') {
|
|
1240
|
+
function getValidationMessage(errors, placeholder = 'Input', additionalProperties) {
|
|
1241
|
+
const messages = get(additionalProperties, 'nativeValidationObject.messages', {});
|
|
1242
|
+
const field = get(additionalProperties, 'field', {});
|
|
1241
1243
|
if (errors) {
|
|
1244
|
+
// Check if any key in errors matches with messages using lodash
|
|
1245
|
+
const matchingKey = find(keys(errors), key => has(messages, key));
|
|
1246
|
+
if (matchingKey && messages[matchingKey]) {
|
|
1247
|
+
// If message is a function, execute it with errors and nativeValidationObject
|
|
1248
|
+
if (typeof messages[matchingKey] === 'function') {
|
|
1249
|
+
return messages[matchingKey](errors[matchingKey], field);
|
|
1250
|
+
}
|
|
1251
|
+
return messages[matchingKey];
|
|
1252
|
+
}
|
|
1253
|
+
// Fall back to default messages
|
|
1242
1254
|
if (errors['minlength']) {
|
|
1243
1255
|
return `Minimum ${errors['minlength']['requiredLength']} characters required`;
|
|
1244
1256
|
}
|
|
@@ -1331,14 +1343,17 @@ class FormInputComponent extends FieldType {
|
|
|
1331
1343
|
});
|
|
1332
1344
|
}
|
|
1333
1345
|
setValidators() {
|
|
1334
|
-
this.validators = this.params?.validators || [];
|
|
1346
|
+
this.validators = this.params?.validators || this.predefinedValidators[this.type] || [];
|
|
1335
1347
|
this.asyncValidators = this.params?.asyncValidators || [];
|
|
1336
|
-
this.
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1348
|
+
if (!get(this.field, 'validators.validation', null)) {
|
|
1349
|
+
this.formControl?.setValidators([
|
|
1350
|
+
...(this.type ? this.predefinedValidators[this.type] || [] : []),
|
|
1351
|
+
...(this.validators),
|
|
1352
|
+
]);
|
|
1353
|
+
}
|
|
1354
|
+
if (this.asyncValidators) {
|
|
1341
1355
|
this.formControl?.setAsyncValidators(this.asyncValidators);
|
|
1356
|
+
}
|
|
1342
1357
|
}
|
|
1343
1358
|
/*
|
|
1344
1359
|
Assuming dependent field is a single select dropdown
|
|
@@ -1377,8 +1392,10 @@ class FormInputComponent extends FieldType {
|
|
|
1377
1392
|
!this.formControl.pending) {
|
|
1378
1393
|
this.inputState = 'invalid';
|
|
1379
1394
|
this.inputErrorText =
|
|
1380
|
-
getValidationMessage(this.formControl.errors, this.params?.placeholder || this.field.props?.label || 'Input'
|
|
1381
|
-
|
|
1395
|
+
getValidationMessage(this.formControl.errors, this.params?.placeholder || this.field.props?.label || 'Input', {
|
|
1396
|
+
field: this.field,
|
|
1397
|
+
nativeValidationObject: this.field.validation,
|
|
1398
|
+
}) || `invalid ${this.params?.placeholder || this.field.props?.label || 'input'}`;
|
|
1382
1399
|
}
|
|
1383
1400
|
else {
|
|
1384
1401
|
this.inputState = defaultInputState;
|
|
@@ -1467,7 +1484,10 @@ class FormInputComponent extends FieldType {
|
|
|
1467
1484
|
}*/
|
|
1468
1485
|
getFormSupportText() {
|
|
1469
1486
|
if (this.formControl.invalid && this.formControl.touched) {
|
|
1470
|
-
return (getValidationMessage(this.formControl.errors, this.params?.placeholder || this.field.props?.label || 'Input'
|
|
1487
|
+
return (getValidationMessage(this.formControl.errors, this.params?.placeholder || this.field.props?.label || 'Input', {
|
|
1488
|
+
field: this.field,
|
|
1489
|
+
nativeValidationObject: get(this.field, 'validation'),
|
|
1490
|
+
}) ||
|
|
1471
1491
|
`invalid ${this.params?.placeholder || this.field.props?.label || 'input'}`);
|
|
1472
1492
|
}
|
|
1473
1493
|
else {
|