ng-easycommerce 0.0.651 → 0.0.653

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.
@@ -78,7 +78,8 @@ ecCurrencySymbolPipe.ctorParameters = () => [
78
78
  ecCurrencySymbolPipe = __decorate([
79
79
  Pipe({
80
80
  name: 'ecCurrencySymbol',
81
+ pure: false
81
82
  })
82
83
  ], ecCurrencySymbolPipe);
83
84
  export { ecCurrencySymbolPipe };
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWMtY3VycmVuY3ktc3ltYm9sLnBpcGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1lYXN5Y29tbWVyY2UvIiwic291cmNlcyI6WyJsaWIvZWMtcGlwZS9lYy1jdXJyZW5jeS1zeW1ib2wucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBVXhFLElBQWEsb0JBQW9CLEdBQWpDLE1BQWEsb0JBQW9CO0lBRzdCLFlBQ1csZUFBZ0MsRUFDL0IsWUFBMEIsRUFDM0IsTUFBaUIsRUFDakIsZUFBZ0MsRUFDL0IsUUFBa0I7UUFKbkIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQy9CLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzNCLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDakIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQy9CLGFBQVEsR0FBUixRQUFRLENBQVU7UUFzRHRCLGdCQUFXLEdBQUcsQ0FBQyxLQUFhLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRXhELG1CQUFjLEdBQUcsQ0FBQyxLQUFhLEVBQUUsRUFBRTs7WUFDdkMsT0FBQSxPQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLFFBQVEsQ0FBQyxRQUFRLENBQUMsV0FBVyxRQUFPLE1BQU07Z0JBQ25ELENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxJQUFJLE1BQUEsS0FBSywwQ0FB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Q0FvRWhDO1NBcEVZLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEN1cnJlbmN5UGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3RvciwgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29uc3RhbnRzIH0gZnJvbSAnLi4vY29yZS5jb25zdHMnO1xuaW1wb3J0IHsgQ3VycmVuY3lTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY3VycmVuY3kuc2VydmljZSc7XG5pbXBvcnQgeyBQcm9kdWN0c1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9wcm9kdWN0cy9wcm9kdWN0cy5zZXJ2aWNlJztcblxuZXhwb3J0IHR5cGUgRWNDdXJyZW5jeURlY2ltYWxzTW9kZSA9XG4gICAgfCAncmVzcGVjdEdsb2JhbENvbmZpZycgICAvLyBSZXNwZXRhIGxvIGRlZmluaWRvIGVuIGNvbnN0cy5jdXJyZW5jeS53aXRob3V0RGVjaW1hbFxuICAgIHwgJ2Fsd2F5c1Nob3dEZWNpbWFscycgICAgLy8gU2llbXByZSBtdWVzdHJhIGRlY2ltYWxlc1xuICAgIHwgJ2Fsd2F5c0hpZGVEZWNpbWFscyc7ICAgLy8gU2llbXByZSBvY3VsdGEgZGVjaW1hbGVzXG5cbkBQaXBlKHtcbiAgICBuYW1lOiAnZWNDdXJyZW5jeVN5bWJvbCcsXG59KVxuZXhwb3J0IGNsYXNzIGVjQ3VycmVuY3lTeW1ib2xQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgcHJpdmF0ZSBjdXJyZW5jeTogYW55O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBwcm9kdWN0c1NlcnZpY2U6IFByb2R1Y3RzU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBjdXJyZW5jeVBpcGU6IEN1cnJlbmN5UGlwZSxcbiAgICAgICAgcHVibGljIGNvbnN0czogQ29uc3RhbnRzLFxuICAgICAgICBwdWJsaWMgY3VycmVuY3lTZXJ2aWNlOiBDdXJyZW5jeVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yXG4gICAgKSB7XG4gICAgICAgIHRoaXMuY3VycmVuY3lTZXJ2aWNlLmN1cnJlbmN5JC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVuY3kgPSByZXM7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHRyYW5zZm9ybShcbiAgICAgICAgdmFsdWU6IG51bWJlcixcbiAgICAgICAgbW9kZTogRWNDdXJyZW5jeURlY2ltYWxzTW9kZSA9ICdyZXNwZWN0R2xvYmFsQ29uZmlnJ1xuICAgICk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGZvcm1hdHRlciA9IG5ldyBJbnRsLk51bWJlckZvcm1hdCgnZGUtREUnLCB7XG4gICAgICAgICAgICBzdHlsZTogJ2N1cnJlbmN5JyxcbiAgICAgICAgICAgIGN1cnJlbmN5OiAnVVNEJyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHJldHVybiAnJztcblxuICAgICAgICB2YWx1ZSA9IHRoaXMuY3VycmVuY3lTZXJ2aWNlLmNhbGN1bGF0ZUNvbnZldGliaWxpdHkodmFsdWUsIHRoaXMuY3VycmVuY3kucmF0aW8pLnRvU3RyaW5nKCk7XG5cbiAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gZm9ybWF0dGVyLmZvcm1hdCh2YWx1ZSk/LnRvU3RyaW5nKCk7XG4gICAgICAgIHJldHVybiB0aGlzLmNoYW5nZVN5bWJvbFRyYW5zZm9ybShmb3JtYXR0ZWQsIG1vZGUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hhbmdlU3ltYm9sVHJhbnNmb3JtKHZhbG9yOiBzdHJpbmcsIG1vZGU6IEVjQ3VycmVuY3lEZWNpbWFsc01vZGUpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGNsZWFyZWQgPSB0aGlzLmNsZWFyU3ltYm9sKHZhbG9yKTtcbiAgICAgICAgICAgIGNvbnN0IHdpdGhEZWNpbWFscyA9IHRoaXMuYXBwbHlEZWNpbWFsc1BvbGljeShjbGVhcmVkLCBtb2RlKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBvc2l0aW9uU3ltYm9sKHdpdGhEZWNpbWFscyk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yZXMgZW4gZWNDdXJyZW5jeVN5bWJvbFBpcGUgLT4gJywgZSk7XG4gICAgICAgICAgICByZXR1cm4gdmFsb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGFwcGx5RGVjaW1hbHNQb2xpY3kodmFsdWU6IHN0cmluZywgbW9kZTogRWNDdXJyZW5jeURlY2ltYWxzTW9kZSkge1xuICAgICAgICBjb25zdCB3aXRob3V0RGVjaW1hbEdsb2JhbCA9ICEhdGhpcy5jb25zdHM/LmN1cnJlbmN5LndpdGhvdXREZWNpbWFsO1xuXG4gICAgICAgIC8vIHByaW9yaWRhZDogYXJndW1lbnRvIGRlbCBwaXBlID4gY29uZmlnIGdsb2JhbFxuICAgICAgICBjb25zdCBmb3JjZVNob3cgPSBtb2RlID09PSAnYWx3YXlzU2hvd0RlY2ltYWxzJztcbiAgICAgICAgY29uc3QgZm9yY2VIaWRlID0gbW9kZSA9PT0gJ2Fsd2F5c0hpZGVEZWNpbWFscyc7XG4gICAgICAgIGNvbnN0IHNob3dEZWNpbWFscyA9XG4gICAgICAgICAgICBmb3JjZVNob3cgPyB0cnVlIDogZm9yY2VIaWRlID8gZmFsc2UgOiAhd2l0aG91dERlY2ltYWxHbG9iYWw7XG5cbiAgICAgICAgbGV0IFtlbnQsIGRlYyA9ICcwMCddID0gKHZhbHVlIHx8ICcnKS5zcGxpdCgnLCcpO1xuXG4gICAgICAgIGlmIChzaG93RGVjaW1hbHMpIHtcbiAgICAgICAgICAgIGlmIChkZWMubGVuZ3RoID4gMikgZGVjID0gZGVjLnNsaWNlKDAsIDIpO1xuICAgICAgICAgICAgcmV0dXJuIGAke2VudH0sJHtkZWN9YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBlbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGNsZWFyU3ltYm9sID0gKHZhbHVlOiBzdHJpbmcpID0+IHZhbHVlLnJlcGxhY2UoJyQnLCAnJyk7XG5cbiAgICBwcml2YXRlIHBvc2l0aW9uU3ltYm9sID0gKHZhbHVlOiBzdHJpbmcpID0+XG4gICAgICAgIHRoaXMuY29uc3RzPy5jdXJyZW5jeS5wb3NpdGlvbi50b1VwcGVyQ2FzZSgpID09PSAnTEVGVCdcbiAgICAgICAgICAgID8gYCR7dGhpcy5jdXJyZW5jeS5zeW1ib2x9ICR7dmFsdWU/LnRyaW0oKX1gXG4gICAgICAgICAgICA6IGAke3ZhbHVlPy50cmltKCl9ICR7dGhpcy5jdXJyZW5jeS5zeW1ib2x9YDtcbn1cbiJdfQ==
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWMtY3VycmVuY3ktc3ltYm9sLnBpcGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1lYXN5Y29tbWVyY2UvIiwic291cmNlcyI6WyJsaWIvZWMtcGlwZS9lYy1jdXJyZW5jeS1zeW1ib2wucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBV3hFLElBQWEsb0JBQW9CLEdBQWpDLE1BQWEsb0JBQW9CO0lBRzdCLFlBQ1csZUFBZ0MsRUFDL0IsWUFBMEIsRUFDM0IsTUFBaUIsRUFDakIsZUFBZ0MsRUFDL0IsUUFBa0I7UUFKbkIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQy9CLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzNCLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDakIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQy9CLGFBQVEsR0FBUixRQUFRLENBQVU7UUFzRHRCLGdCQUFXLEdBQUcsQ0FBQyxLQUFhLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRXhELG1CQUFjLEdBQUcsQ0FBQyxLQUFhLEVBQUUsRUFBRTs7WUFDdkMsT0FBQSxPQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLFFBQVEsQ0FBQyxRQUFRLENBQUMsV0FBVyxRQUFPLE1BQU07Z0JBQ25ELENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxJQUFJLE1BQUEsS0FBSywwQ0FB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Q2QsQ0FBQztHQUNXLG9CQUFvQixDQW9FaEM7U0FwRVksb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3VycmVuY3lQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdG9yLCBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb25zdGFudHMgfSBmcm9tICcuLi9jb3JlLmNvbnN0cyc7XG5pbXBvcnQgeyBDdXJyZW5jeVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9jdXJyZW5jeS5zZXJ2aWNlJztcbmltcG9ydCB7IFByb2R1Y3RzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3Byb2R1Y3RzL3Byb2R1Y3RzLnNlcnZpY2UnO1xuXG5leHBvcnQgdHlwZSBFY0N1cnJlbmN5RGVjaW1hbHNNb2RlID1cbiAgICB8ICdyZXNwZWN0R2xvYmFsQ29uZmlnJyAgIC8vIFJlc3BldGEgbG8gZGVmaW5pZG8gZW4gY29uc3RzLmN1cnJlbmN5LndpdGhvdXREZWNpbWFsXG4gICAgfCAnYWx3YXlzU2hvd0RlY2ltYWxzJyAgICAvLyBTaWVtcHJlIG11ZXN0cmEgZGVjaW1hbGVzXG4gICAgfCAnYWx3YXlzSGlkZURlY2ltYWxzJzsgICAvLyBTaWVtcHJlIG9jdWx0YSBkZWNpbWFsZXNcblxuQFBpcGUoe1xuICAgIG5hbWU6ICdlY0N1cnJlbmN5U3ltYm9sJyxcbiAgICBwdXJlOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBlY0N1cnJlbmN5U3ltYm9sUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHByaXZhdGUgY3VycmVuY3k6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgcHJvZHVjdHNTZXJ2aWNlOiBQcm9kdWN0c1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY3VycmVuY3lQaXBlOiBDdXJyZW5jeVBpcGUsXG4gICAgICAgIHB1YmxpYyBjb25zdHM6IENvbnN0YW50cyxcbiAgICAgICAgcHVibGljIGN1cnJlbmN5U2VydmljZTogQ3VycmVuY3lTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvclxuICAgICkge1xuICAgICAgICB0aGlzLmN1cnJlbmN5U2VydmljZS5jdXJyZW5jeSQuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbmN5ID0gcmVzO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB0cmFuc2Zvcm0oXG4gICAgICAgIHZhbHVlOiBudW1iZXIsXG4gICAgICAgIG1vZGU6IEVjQ3VycmVuY3lEZWNpbWFsc01vZGUgPSAncmVzcGVjdEdsb2JhbENvbmZpZydcbiAgICApOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5OdW1iZXJGb3JtYXQoJ2RlLURFJywge1xuICAgICAgICAgICAgc3R5bGU6ICdjdXJyZW5jeScsXG4gICAgICAgICAgICBjdXJyZW5jeTogJ1VTRCcsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSByZXR1cm4gJyc7XG5cbiAgICAgICAgdmFsdWUgPSB0aGlzLmN1cnJlbmN5U2VydmljZS5jYWxjdWxhdGVDb252ZXRpYmlsaXR5KHZhbHVlLCB0aGlzLmN1cnJlbmN5LnJhdGlvKS50b1N0cmluZygpO1xuXG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZCA9IGZvcm1hdHRlci5mb3JtYXQodmFsdWUpPy50b1N0cmluZygpO1xuICAgICAgICByZXR1cm4gdGhpcy5jaGFuZ2VTeW1ib2xUcmFuc2Zvcm0oZm9ybWF0dGVkLCBtb2RlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNoYW5nZVN5bWJvbFRyYW5zZm9ybSh2YWxvcjogc3RyaW5nLCBtb2RlOiBFY0N1cnJlbmN5RGVjaW1hbHNNb2RlKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBjbGVhcmVkID0gdGhpcy5jbGVhclN5bWJvbCh2YWxvcik7XG4gICAgICAgICAgICBjb25zdCB3aXRoRGVjaW1hbHMgPSB0aGlzLmFwcGx5RGVjaW1hbHNQb2xpY3koY2xlYXJlZCwgbW9kZSk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wb3NpdGlvblN5bWJvbCh3aXRoRGVjaW1hbHMpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvcmVzIGVuIGVjQ3VycmVuY3lTeW1ib2xQaXBlIC0+ICcsIGUpO1xuICAgICAgICAgICAgcmV0dXJuIHZhbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhcHBseURlY2ltYWxzUG9saWN5KHZhbHVlOiBzdHJpbmcsIG1vZGU6IEVjQ3VycmVuY3lEZWNpbWFsc01vZGUpIHtcbiAgICAgICAgY29uc3Qgd2l0aG91dERlY2ltYWxHbG9iYWwgPSAhIXRoaXMuY29uc3RzPy5jdXJyZW5jeS53aXRob3V0RGVjaW1hbDtcblxuICAgICAgICAvLyBwcmlvcmlkYWQ6IGFyZ3VtZW50byBkZWwgcGlwZSA+IGNvbmZpZyBnbG9iYWxcbiAgICAgICAgY29uc3QgZm9yY2VTaG93ID0gbW9kZSA9PT0gJ2Fsd2F5c1Nob3dEZWNpbWFscyc7XG4gICAgICAgIGNvbnN0IGZvcmNlSGlkZSA9IG1vZGUgPT09ICdhbHdheXNIaWRlRGVjaW1hbHMnO1xuICAgICAgICBjb25zdCBzaG93RGVjaW1hbHMgPVxuICAgICAgICAgICAgZm9yY2VTaG93ID8gdHJ1ZSA6IGZvcmNlSGlkZSA/IGZhbHNlIDogIXdpdGhvdXREZWNpbWFsR2xvYmFsO1xuXG4gICAgICAgIGxldCBbZW50LCBkZWMgPSAnMDAnXSA9ICh2YWx1ZSB8fCAnJykuc3BsaXQoJywnKTtcblxuICAgICAgICBpZiAoc2hvd0RlY2ltYWxzKSB7XG4gICAgICAgICAgICBpZiAoZGVjLmxlbmd0aCA+IDIpIGRlYyA9IGRlYy5zbGljZSgwLCAyKTtcbiAgICAgICAgICAgIHJldHVybiBgJHtlbnR9LCR7ZGVjfWA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbGVhclN5bWJvbCA9ICh2YWx1ZTogc3RyaW5nKSA9PiB2YWx1ZS5yZXBsYWNlKCckJywgJycpO1xuXG4gICAgcHJpdmF0ZSBwb3NpdGlvblN5bWJvbCA9ICh2YWx1ZTogc3RyaW5nKSA9PlxuICAgICAgICB0aGlzLmNvbnN0cz8uY3VycmVuY3kucG9zaXRpb24udG9VcHBlckNhc2UoKSA9PT0gJ0xFRlQnXG4gICAgICAgICAgICA/IGAke3RoaXMuY3VycmVuY3kuc3ltYm9sfSAke3ZhbHVlPy50cmltKCl9YFxuICAgICAgICAgICAgOiBgJHt2YWx1ZT8udHJpbSgpfSAke3RoaXMuY3VycmVuY3kuc3ltYm9sfWA7XG59XG4iXX0=
@@ -37,11 +37,28 @@ let CurrencyService = class CurrencyService {
37
37
  this.getCurrencyListApi = () => 'shop-api/currencies';
38
38
  this.getConvertibilityApi = (baseCurrency, targetCurrency) => 'shop-api/currencies?baseCurrency=' + baseCurrency + '&targetCurrency=' + targetCurrency;
39
39
  /**
40
- * @description Se carga la moneda por defecto.
40
+ * @description Se carga la moneda por defecto con metadatos (símbolo, posición, decimales).
41
41
  */
42
- this.loadDefaultCurrency = (currency) => {
43
- this.consts.setCurrency(currency);
44
- this.load();
42
+ this.loadDefaultCurrency = (currencyCode) => {
43
+ // Trae la lista igual para tener la configuración completa
44
+ this.connection.get(this.getCurrencyListApi()).toPromise().then((list) => {
45
+ var _a;
46
+ this.currencyListSubject.next(list);
47
+ this.consts.setCurrencyTypeConfig(list);
48
+ const cfg = (_a = list) === null || _a === void 0 ? void 0 : _a.find(c => c.code === currencyCode);
49
+ if (cfg) {
50
+ // Setea moneda activa con su configuración completa
51
+ this.consts.setCurrency(cfg.code, cfg);
52
+ }
53
+ else {
54
+ this.consts.setCurrency(currencyCode);
55
+ }
56
+ this.load();
57
+ }).catch(() => {
58
+ // En caso de error, al menos fijá el código para no romper el flujo
59
+ this.consts.setCurrency(currencyCode);
60
+ this.load();
61
+ });
45
62
  };
46
63
  /**
47
64
  * @description calcula la convetibilidad del precio pasado por paramentro segun esta formula:
@@ -60,12 +77,32 @@ let CurrencyService = class CurrencyService {
60
77
  this.getConvertibility(this.consts.currency.code, code);
61
78
  });
62
79
  /**
63
- * @description Carga la lista de monedas/currencies.
80
+ * Carga la lista de monedas desde la API y registra la configuración completa en `Constants`.
81
+ *
82
+ * Si no existe una moneda activa guardada en `localStorage`, inicializa la moneda activa
83
+ * tomando la moneda base del canal (`ChannelConfigService.baseCurrency`) y sus metadatos
84
+ * obtenidos de la lista (símbolo, posición, decimales). Si no se encuentra la base en la
85
+ * lista, usa la primera disponible.
86
+ *
87
+ * Finalmente, llama a `load()` para propagar la configuración a los observables y (si aplica)
88
+ * actualizar `localStorage`.
89
+ *
90
+ * @sideEffect Actualiza `currencyList$`, `Constants.setCurrencyTypeConfig` y potencialmente
91
+ * `Constants.setCurrency`.
92
+ * @returns void
64
93
  */
65
94
  this.loadCurrencyList = () => {
66
95
  this.connection.get(this.getCurrencyListApi()).toPromise().then(res => {
96
+ var _a, _b, _c, _d;
67
97
  this.currencyListSubject.next(res);
68
98
  this.consts.setCurrencyTypeConfig(res);
99
+ const stored = localStorage.getItem('currency');
100
+ if (!stored) {
101
+ const base = (_a = this.injector.get(ChannelConfigService).getActiveChannel()) === null || _a === void 0 ? void 0 : _a.baseCurrency;
102
+ const cfg = (_c = (_b = res) === null || _b === void 0 ? void 0 : _b.find(c => c.code === base), (_c !== null && _c !== void 0 ? _c : (_d = res) === null || _d === void 0 ? void 0 : _d[0]));
103
+ if (cfg)
104
+ this.consts.setCurrency(cfg.code, cfg);
105
+ }
69
106
  this.load();
70
107
  });
71
108
  };
@@ -139,7 +176,6 @@ let CurrencyService = class CurrencyService {
139
176
  }
140
177
  };
141
178
  this.injector.get(ChannelConfigService).channelConfig$.subscribe(channel => {
142
- console.log(channel);
143
179
  channel.applyCurrencyExchange ? this.loadCurrencyList() : this.loadDefaultCurrency(channel.baseCurrency);
144
180
  console.log(this.enableApplyCurrencyExchange);
145
181
  });
@@ -158,4 +194,4 @@ CurrencyService = __decorate([
158
194
  })
159
195
  ], CurrencyService);
160
196
  export { CurrencyService };
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3kuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLWVhc3ljb21tZXJjZS8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9jdXJyZW5jeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBS2hFLElBQWEsZUFBZSxHQUE1QixNQUFhLGVBQWU7SUFleEIsWUFBb0IsTUFBaUIsRUFDekIsVUFBNkIsRUFDN0IsTUFBb0IsRUFDcEIsUUFBa0I7UUFIVixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ3pCLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBQzdCLFdBQU0sR0FBTixNQUFNLENBQWM7UUFDcEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQWhCdEIsb0JBQWUsR0FBb0MsSUFBSSxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDMUUsa0JBQWEsR0FBNkIsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDcEUsd0JBQW1CLEdBQTJCLElBQUksZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBRXRFLGNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2hELFlBQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzVDLGtCQUFhLEdBQUcsSUFBSSxDQUFDLG1C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LENBQUE7YUFDbEQ7UUFDTCxDQUFDLENBQUE7UUFsSE8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFFLE9BQU8sQ0FBQyxFQUFFO1lBQ3hFLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUE7WUFDcEIsT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUMxRyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxDQUFBO1FBQ2pELENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztDQWdISixDQUFBOztZQXpIK0IsU0FBUztZQUNiLGlCQUFpQjtZQUNyQixZQUFZO1lBQ1YsUUFBUTs7O0FBbEJyQixlQUFlO0lBSDNCLFVBQVUsQ0FBQztRQUNSLFVBQVUsRUFBRSxNQUFNO0tBQ3JCLENBQUM7R0FDVyxlQUFlLENBd0kzQjtTQXhJWSxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29ubmVjdGlvblNlcnZpY2UgfSBmcm9tICcuLi9hcGkvY29ubmVjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IENvbnN0YW50cyB9IGZyb20gJy4uL2NvcmUuY29uc3RzJztcbmltcG9ydCB7IEN1cnJlbmN5Q29uZmlnIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9jdXJyZW5jeUNvbmZpZyc7XG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi91dGlscy90b2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7IENoYW5uZWxDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9jaGFubmVsLWNvbmZpZy5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDdXJyZW5jeVNlcnZpY2Uge1xuXG4gICAgcHJpdmF0ZSBjdXJyZW5jeVN1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxDdXJyZW5jeUNvbmZpZz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHt9KVxuICAgIHByaXZhdGUgdXBkYXRlU3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PEJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSlcbiAgICBwcml2YXRlIGN1cnJlbmN5TGlzdFN1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxhbnlbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFtdKVxuXG4gICAgcHVibGljIGN1cnJlbmN5JCA9IHRoaXMuY3VycmVuY3lTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICAgIHB1YmxpYyB1cGRhdGUkID0gdGhpcy51cGRhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICAgIHB1YmxpYyBjdXJyZW5jeUxpc3QkID0gdGhpcy5jdXJyZW5jeUxpc3RTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICAgIFxuICAgIHByaXZhdGUgZW5hYmxlQXBwbHlDdXJyZW5jeUV4Y2hhbmdlOkJvb2xlYW4gPSB0cnVlO1xuXG4gICAgcHJpdmF0ZSBnZXRDdXJyZW5jeUxpc3RBcGkgPSAoKSA9PiAnc2hvcC1hcGkvY3VycmVuY2llcyc7XG4gICAgcHJpdmF0ZSBnZXRDb252ZXJ0aWJpbGl0eUFwaSA9IChiYXNlQ3VycmVuY3k6IGFueSwgdGFyZ2V0Q3VycmVuY3k6IGFueSkgPT4gJ3Nob3AtYXBpL2N1cnJlbmNpZXM/YmFzZUN1cnJlbmN5PScgKyBiYXNlQ3VycmVuY3kgKyAnJnRhcmdldEN1cnJlbmN5PScgKyB0YXJnZXRDdXJyZW5jeTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY29uc3RzOiBDb25zdGFudHMsXG4gICAgICAgIHByaXZhdGUgY29ubmVjdGlvbjogQ29ubmVjdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdG9hc3RyOiBUb2FzdFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgICAgICAgICB0aGlzLmluamVjdG9yLmdldChDaGFubmVsQ29uZmlnU2VydmljZSkuY2hhbm5lbENvbmZpZyQuc3Vic2NyaWJlKCBjaGFubmVsID0+IHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhjaGFubmVsKVxuICAgICAgICAgICAgICAgIGNoYW5uZWwuYXBwbHlDdXJyZW5jeUV4Y2hhbmdlID8gIHRoaXMubG9hZEN1cnJlbmN5TGlzdCgpIDogdGhpcy5sb2FkRGVmYXVsdEN1cnJlbmN5KGNoYW5uZWwuYmFzZUN1cnJlbmN5KTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyh0aGlzLmVuYWJsZUFwcGx5Q3VycmVuY3lFeGNoYW5nZSlcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBTZSBjYXJnYSBsYSBtb25lZGEgcG9yIGRlZmVjdG8uXG4gICAgICovXG4gICAgcHJpdmF0ZSBsb2FkRGVmYXVsdEN1cnJlbmN5ID0gKGN1cnJlbmN5KSA9PiB7XG4gICAgICAgIHRoaXMuY29uc3RzLnNldEN1cnJlbmN5KGN1cnJlbmN5KTtcbiAgICAgICAgdGhpcy5sb2FkKClcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gY2FsY3VsYSBsYSBjb252ZXRpYmlsaWRhZCBkZWwgcHJlY2lvICBwYXNhZG8gcG9yIHBhcmFtZW50cm8gc2VndW4gZXN0YSBmb3JtdWxhOlxuICAgICAqICoqYyA9IGEgKiBiKiogZG9uZGUgKmM9bW9uZWRhIGRlc3B1ZXMgZGVsIGNhbWJpbyosICphPXZhbG9yIHF1ZSBxdWllcm8gY2FtYmlhciogeSAqYj1yYXRpbyBkZSBjYW1iaW8qLiBcbiAgICAgKiBAcGFyYW0gcHJpY2UgUHJlY2lvIGEgY2FtYmlhclxuICAgICAqIEBwYXJhbSByYXRpbyBSYXRpbyBkZSBjYW1iaW9cbiAgICAgKiBAcmV0dXJucyBTaSBlbCByYXRpbyBubyBlcyBudWxsLCByZXRvcm5hIGVsIHByZWNpbyBjYW1iaWFkbywgc2lubyByZXRvcm5hIGVsIHByZWNpbyBzaW4gY2FtYmlvcy4gXG4gICAgICovXG4gICAgcHVibGljIGNhbGN1bGF0ZUNvbnZldGliaWxpdHkgPSAocHJpY2UsIHJhdGlvKSA9PiB7XG4gICAgICAgIHJldHVybiByYXRpbyA/IHByaWNlICogcmF0aW8gOiBwcmljZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gY29kZSBDb2RpZ28gZGUgbW9uZWRhIGEgbGEgcXVlIHNlIGRlc2VhIGNhbWJpYXJcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0Q3VycmVuY3kgPSBhc3luYyAoY29kZTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuZ2V0Q29udmVydGliaWxpdHkodGhpcy5jb25zdHMuY3VycmVuY3kuY29kZSwgY29kZSlcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ2FyZ2EgbGEgbGlzdGEgZGUgbW9uZWRhcy9jdXJyZW5jaWVzLlxuICAgICAqL1xuICAgIHByaXZhdGUgbG9hZEN1cnJlbmN5TGlzdCA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5jb25uZWN0aW9uLmdldCh0aGlzLmdldEN1cnJlbmN5TGlzdEFwaSgpKS50b1Byb21pc2UoKS50aGVuKFxuICAgICAgICAgICAgcmVzID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbmN5TGlzdFN1YmplY3QubmV4dChyZXMpXG4gICAgICAgICAgICAgICAgdGhpcy5jb25zdHMuc2V0Q3VycmVuY3lUeXBlQ29uZmlnKHJlcylcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWQoKVxuICAgICAgICAgICAgfSlcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIGdlbmVyYSBsYSBjYXJnYSB5IGNvbmZpZ3VyYWNpw7NuIGRlIGxhIG1vbmVkYSBlbGVnaWRhIHBhcmEgbGEgY29udmVyc2lvbi5cbiAgICAgKiBAcGFyYW0gY3VycmVuY3kgTW9uZWRhIGEgY29udmVydGlyLlxuICAgICAqL1xuICAgIHByaXZhdGUgbG9hZEN1cnJlbmN5ID0gKCBjdXJyZW5jeTphbnkpID0+IHtcbiAgICAgICAgdGhpcy5jdXJyZW5jeVN1YmplY3QubmV4dChjdXJyZW5jeSk7XG4gICAgICAgIHRoaXMuY29uc3RzLnNldEN1cnJlbmN5KGN1cnJlbmN5LmNvZGUpO1xuICAgICAgICBsZXQgdXBkYXRlID0gdGhpcy51cGRhdGVTdWJqZWN0LmdldFZhbHVlKClcbiAgICAgICAgdGhpcy51cGRhdGVTdWJqZWN0Lm5leHQoIXVwZGF0ZSlcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2N1cnJlbmN5JywgSlNPTi5zdHJpbmdpZnkodGhpcy5jb25zdHMuY3VycmVuY3kpKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBHZW5lcmEgbGEgY29udmVydGliaWxpZGFkIGRlIGxhIG1vbmVkYSBiYXNlIGEgbGEgbnVldmEuIFNpIGJhc2VDdXJyZW5jeSBubyB0aWVuZSB2YWxvciBcbiAgICAgKiBlbnRvbmNlcyB1dGlsaXphIGxhIG1vbmVkYSBiYXNlIGRlbCBjYW5hbC5cbiAgICAgKiBAcGFyYW0gY3VycmVuY3kgT2JqZXRvIGRlIGxhIG1vbmVkYSBkZXN0aW5vLlxuICAgICAqIEBwYXJhbSBiYXNlQ3VycmVuY3kgQ29kaWdvIGRlIGxhIG1vbmVkYSBiYXNlLiAqRWo6IFVTRCB8IEFSUyB8IEVVUiB8Li4uKlxuICAgICAqL1xuICAgIGdlbmVyYXRlQ29udmVydGliaWxpdHkgPSBhc3luYyAoY3VycmVuY3k6YW55LCBiYXNlQ3VycmVuY3k/OnN0cmluZykgPT4ge1xuICAgICAgICBpZighYmFzZUN1cnJlbmN5KXtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgYmFzZUN1cnJlbmN5ID0gYXdhaXQgdGhpcy5pbmplY3Rvci5nZXQoQ2hhbm5lbENvbmZpZ1NlcnZpY2UpLmdldEFjdGl2ZUNoYW5uZWwoKS5iYXNlQ3VycmVuY3k7IFxuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAvL2NvbnNvbGUuZXJyb3IoZXJyb3IpXG4gICAgICAgICAgICAgICAgYmFzZUN1cnJlbmN5ID0gJ1VTRCdcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZihjdXJyZW5jeS5jb2RlID09IGJhc2VDdXJyZW5jeSl7XG4gICAgICAgICAgICB0aGlzLmxvYWRDdXJyZW5jeShjdXJyZW5jeSk7XG4gICAgICAgIH1lbHNle1xuICAgICAgICAgICAgdGhpcy5nZXRDb252ZXJ0aWJpbGl0eShiYXNlQ3VycmVuY3ksY3VycmVuY3kuY29kZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gT2J0aWVuZSBsYSBjb252ZXJzaW9uIGRlc2RlIGxhIG1vbmVkYSBiYXNlIGEgbGEgZGVzdGluby4gUmVjaWJlIHVuIG9iamV0byBkZSB0aXBvIEN1cnJlbmN5Q29uZmlnLlxuICAgICAqIFNpIGxhIGNvbnZlcnNpb24gcmV0b3JuYSByZXN1bHRhZG8gcmVhbGl6YSBlbCBjYW1iaW8sIGRlIGxvIGNvbnRyYXJpbyBlbWl0ZSB1biBtZW5zYWplIGRlIGVycm9yLlxuICAgICAqIEBwYXJhbSBiYXNlQ3VycmVuY3kgQ29kaWdvIGRlIGxhIG1vbmVkYSBiYXNlLlxuICAgICAqIEBwYXJhbSB0YXJnZXRDdXJyZW5jeSBDb2RpZ28gZGUgbGEgbW9uZWRhIGRlc3Rpbm8uXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRDb252ZXJ0aWJpbGl0eSA9IChiYXNlQ3VycmVuY3k6IGFueSwgdGFyZ2V0Q3VycmVuY3k6IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9uLmdldCh0aGlzLmdldENvbnZlcnRpYmlsaXR5QXBpKGJhc2VDdXJyZW5jeSwgdGFyZ2V0Q3VycmVuY3kpKVxuICAgICAgICAgICAgICAgIC50b1Byb21pc2UoKS50aGVuKFxuICAgICAgICAgICAgICAgICAgICByZXMgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZW1wQ3VycmVuY3kgPSByZXNbMF1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRDdXJyZW5jeSh0ZW1wQ3VycmVuY3kpXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGxhIHZhcmlhYmxlIHJlcyBubyBjb250aWVuZSB2YWxvciwgYXNlZ3VyZXNlIGRlIHF1ZSBlc3RhIGNvbnZlcnNpw7NuIGVzdGUgY29uZmlndXJhZGEgZW4gZWwgYmFja29mZmljZScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdHIuc2hvdygnZXJyb3ItY29udmVydGliaWxpdHknKVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBlcnIgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKS5jYXRjaChlcnIgPT4gY29uc29sZS5sb2coZXJyKSlcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ2FyZ2EgbGEgbW9uZWRhLCBzaSBoYXkgdW5hIGVuIGVsIGxvY2Fsc3RvcmFnZSB0b21hIGVzYSB5IHJlYWxpemEgbGEgY29udmVyc2lvbi5cbiAgICAgKiBkZSBsbyBjb250cmFyaW8gc29sbyBzZXRlYSBlbiBlbCBvYnNlcnZhYmxlIGN1cnJlbmN5U3ViamVjdCBlbCB2YWxvciBwb3IgZGVmZWN0byBjYXJnYWRvIGVuIGxhcyBjb25zdGFudGVzLiBcbiAgICAgKi9cbiAgICBwcml2YXRlIGxvYWQgPSAoKSA9PiB7XG4gICAgICAgIGxldCBsb2NhbFN0b3JhZ2VDdXJyZW5jeSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjdXJyZW5jeScpXG4gICAgICAgIGlmIChsb2NhbFN0b3JhZ2VDdXJyZW5jeSkge1xuICAgICAgICAgICAgbGV0IGN1cnJlbmN5ID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2VDdXJyZW5jeSlcbiAgICAgICAgICAgIHRoaXMuZ2VuZXJhdGVDb252ZXJ0aWJpbGl0eShjdXJyZW5jeSkgXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbmN5U3ViamVjdC5uZXh0KHRoaXMuY29uc3RzLmN1cnJlbmN5KVxuICAgICAgICB9XG4gICAgfVxuICAgIFxuICAgIFxufVxuIl19
197
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3kuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLWVhc3ljb21tZXJjZS8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9jdXJyZW5jeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBS2hFLElBQWEsZUFBZSxHQUE1QixNQUFhLGVBQWU7SUFleEIsWUFBb0IsTUFBaUIsRUFDekIsVUFBNkIsRUFDN0IsTUFBb0IsRUFDcEIsUUFBa0I7UUFIVixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ3pCLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBQzdCLFdBQU0sR0FBTixNQUFNLENBQWM7UUFDcEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQWhCdEIsb0JBQWUsR0FBb0MsSUFBSSxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDMUUsa0JBQWEsR0FBNkIsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDcEUsd0JBQW1CLEdBQTJCLElBQUksZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBRXRFLGNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2hELFlBQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzVDLGtCQUFhLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXZELGdDQUEyQixHQUFZLElBQUksQ0FBQztRQUU1Qyx1QkFBa0IsR0FBRyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztRQUNqRCx5QkFBb0IsR0FBRyxDQUFDLFlBQWlCLEVBQUUsY0FBbUIsRUFBRSxFQUFFLENBQUMsbUNBQW1DLEdBQUcsWUFBWSxHQUFHLGtCQUFrQixHQUFHLGNBQWMsQ0FBQztRQVlwSzs7V0FFRztRQUNLLHdCQUFtQixHQUFHLENBQUMsWUFBWSxFQUFFLEVBQUU7WUFDM0MsMkRBQTJEO1lBQzNELElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBVyxFQUFFLEVBQUU7O2dCQUM1RSxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNwQyxJQUFJLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUV4QyxNQUFNLEdBQUcsU0FBRyxJQUFJLDBDQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLENBQUM7Z0JBQ3JELElBQUksR0FBRyxFQUFFO29CQUNMLG9EQUFvRDtvQkFDcEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztpQkFDMUM7cUJBQU07b0JBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7aUJBQ3pDO2dCQUVELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNoQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFO2dCQUNWLG9FQUFvRTtnQkFDcEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNoQixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQTtRQUVEOzs7Ozs7V0FNRztRQUNJLDJCQUFzQixHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQzdDLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDekMsQ0FBQyxDQUFBO1FBRUQ7O1dBRUc7UUFDSSxnQkFBVyxHQUFHLENBQU8sSUFBUyxFQUFFLEVBQUU7WUFDckMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUMzRCxDQUFDLENBQUEsQ0FBQTtRQUVEOzs7Ozs7Ozs7Ozs7OztXQWNHO1FBQ0sscUJBQWdCLEdBQUcsR0FBRyxFQUFFO1lBQzVCLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFOztnQkFDbEUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFFdkMsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDaEQsSUFBSSxDQUFDLE1BQU0sRUFBRTtvQkFDVCxNQUFNLElBQUksU0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLGdCQUFnQixFQUFFLDBDQUFFLFlBQVksQ0FBQztvQkFDdEYsTUFBTSxHQUFHLGVBQUcsR0FBRywwQ0FBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksOENBQUssR0FBRywwQ0FBRyxDQUFDLEdBQUMsQ0FBQztvQkFDeEQsSUFBSSxHQUFHO3dCQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7aUJBQ25EO2dCQUVELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNoQixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQTtRQUNEOzs7V0FHRztRQUNLLGlCQUFZLEdBQUcsQ0FBQyxRQUFhLEVBQUUsRUFBRTtZQUNyQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdkMsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQTtZQUMxQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1lBQ2hDLFlBQVksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO1FBQzFFLENBQUMsQ0FBQTtRQUVEOzs7OztXQUtHO1FBQ0gsMkJBQXNCLEdBQUcsQ0FBTyxRQUFhLEVBQUUsWUFBcUIsRUFBRSxFQUFFO1lBQ3BFLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQ2YsSUFBSTtvQkFDQSxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLGdCQUFnQixFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUNoRztnQkFBQyxPQUFPLEtBQUssRUFBRTtvQkFDWixzQkFBc0I7b0JBQ3RCLFlBQVksR0FBRyxLQUFLLENBQUE7aUJBQ3ZCO2FBQ0o7WUFDRCxJQUFJLFFBQVEsQ0FBQyxJQUFJLElBQUksWUFBWSxFQUFFO2dCQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQy9CO2lCQUFNO2dCQUNILElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3ZEO1FBQ0wsQ0FBQyxDQUFBLENBQUE7UUFFRDs7Ozs7V0FLRztRQUNLLHNCQUFpQixHQUFHLENBQUMsWUFBaUIsRUFBRSxjQUFtQixFQUFFLEVBQUU7WUFDbkUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlBQVksRUFBRSxjQUFjLENBQUMsQ0FBQztpQkFDdkUsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUNiLEdBQUcsQ0FBQyxFQUFFO2dCQUNGLElBQUksR0FBRyxFQUFFO29CQUNMLElBQUksWUFBWSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQTtvQkFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQTtpQkFDbEM7cUJBQU07b0JBQ0gsT0FBTyxDQUFDLEtBQUssQ0FBQyw2R0FBNkcsQ0FBQyxDQUFBO29CQUM1SCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFBO2lCQUMzQztZQUNMLENBQUMsRUFDRCxHQUFHLENBQUMsRUFBRTtnQkFDRixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1lBQ3BCLENBQUMsQ0FDSixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUN4QyxDQUFDLENBQUE7UUFFRDs7O1dBR0c7UUFDSyxTQUFJLEdBQUcsR0FBRyxFQUFFO1lBQ2hCLElBQUksb0JBQW9CLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQTtZQUMzRCxJQUFJLG9CQUFvQixFQUFFO2dCQUN0QixJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUE7Z0JBQy9DLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsQ0FBQTthQUN4QztpQkFBTTtnQkFDSCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO2FBQ2xEO1FBQ0wsQ0FBQyxDQUFBO1FBckpHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN2RSxPQUFPLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3pHLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLENBQUE7UUFDakQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0NBbUpKLENBQUE7O1lBM0orQixTQUFTO1lBQ2IsaUJBQWlCO1lBQ3JCLFlBQVk7WUFDVixRQUFROzs7QUFsQnJCLGVBQWU7SUFIM0IsVUFBVSxDQUFDO1FBQ1IsVUFBVSxFQUFFLE1BQU07S0FDckIsQ0FBQztHQUNXLGVBQWUsQ0EwSzNCO1NBMUtZLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb25uZWN0aW9uU2VydmljZSB9IGZyb20gJy4uL2FwaS9jb25uZWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29uc3RhbnRzIH0gZnJvbSAnLi4vY29yZS5jb25zdHMnO1xuaW1wb3J0IHsgQ3VycmVuY3lDb25maWcgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2N1cnJlbmN5Q29uZmlnJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uL3V0aWxzL3RvYXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2hhbm5lbENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuL2NoYW5uZWwtY29uZmlnLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEN1cnJlbmN5U2VydmljZSB7XG5cbiAgICBwcml2YXRlIGN1cnJlbmN5U3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PEN1cnJlbmN5Q29uZmlnPiA9IG5ldyBCZWhhdmlvclN1YmplY3Qoe30pXG4gICAgcHJpdmF0ZSB1cGRhdGVTdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8Qm9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKVxuICAgIHByaXZhdGUgY3VycmVuY3lMaXN0U3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PGFueVtdPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoW10pXG5cbiAgICBwdWJsaWMgY3VycmVuY3kkID0gdGhpcy5jdXJyZW5jeVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgcHVibGljIHVwZGF0ZSQgPSB0aGlzLnVwZGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgcHVibGljIGN1cnJlbmN5TGlzdCQgPSB0aGlzLmN1cnJlbmN5TGlzdFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICBwcml2YXRlIGVuYWJsZUFwcGx5Q3VycmVuY3lFeGNoYW5nZTogQm9vbGVhbiA9IHRydWU7XG5cbiAgICBwcml2YXRlIGdldEN1cnJlbmN5TGlzdEFwaSA9ICgpID0+ICdzaG9wLWFwaS9jdXJyZW5jaWVzJztcbiAgICBwcml2YXRlIGdldENvbnZlcnRpYmlsaXR5QXBpID0gKGJhc2VDdXJyZW5jeTogYW55LCB0YXJnZXRDdXJyZW5jeTogYW55KSA9PiAnc2hvcC1hcGkvY3VycmVuY2llcz9iYXNlQ3VycmVuY3k9JyArIGJhc2VDdXJyZW5jeSArICcmdGFyZ2V0Q3VycmVuY3k9JyArIHRhcmdldEN1cnJlbmN5O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjb25zdHM6IENvbnN0YW50cyxcbiAgICAgICAgcHJpdmF0ZSBjb25uZWN0aW9uOiBDb25uZWN0aW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSB0b2FzdHI6IFRvYXN0U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICAgICAgdGhpcy5pbmplY3Rvci5nZXQoQ2hhbm5lbENvbmZpZ1NlcnZpY2UpLmNoYW5uZWxDb25maWckLnN1YnNjcmliZShjaGFubmVsID0+IHtcbiAgICAgICAgICAgIGNoYW5uZWwuYXBwbHlDdXJyZW5jeUV4Y2hhbmdlID8gdGhpcy5sb2FkQ3VycmVuY3lMaXN0KCkgOiB0aGlzLmxvYWREZWZhdWx0Q3VycmVuY3koY2hhbm5lbC5iYXNlQ3VycmVuY3kpO1xuICAgICAgICAgICAgY29uc29sZS5sb2codGhpcy5lbmFibGVBcHBseUN1cnJlbmN5RXhjaGFuZ2UpXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBTZSBjYXJnYSBsYSBtb25lZGEgcG9yIGRlZmVjdG8gY29uIG1ldGFkYXRvcyAoc8OtbWJvbG8sIHBvc2ljacOzbiwgZGVjaW1hbGVzKS5cbiAgICAgKi9cbiAgICBwcml2YXRlIGxvYWREZWZhdWx0Q3VycmVuY3kgPSAoY3VycmVuY3lDb2RlKSA9PiB7XG4gICAgICAgIC8vIFRyYWUgbGEgbGlzdGEgaWd1YWwgcGFyYSB0ZW5lciBsYSBjb25maWd1cmFjacOzbiBjb21wbGV0YVxuICAgICAgICB0aGlzLmNvbm5lY3Rpb24uZ2V0KHRoaXMuZ2V0Q3VycmVuY3lMaXN0QXBpKCkpLnRvUHJvbWlzZSgpLnRoZW4oKGxpc3Q6IGFueVtdKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbmN5TGlzdFN1YmplY3QubmV4dChsaXN0KTtcbiAgICAgICAgICAgIHRoaXMuY29uc3RzLnNldEN1cnJlbmN5VHlwZUNvbmZpZyhsaXN0KTtcblxuICAgICAgICAgICAgY29uc3QgY2ZnID0gbGlzdD8uZmluZChjID0+IGMuY29kZSA9PT0gY3VycmVuY3lDb2RlKTtcbiAgICAgICAgICAgIGlmIChjZmcpIHtcbiAgICAgICAgICAgICAgICAvLyBTZXRlYSBtb25lZGEgYWN0aXZhIGNvbiBzdSBjb25maWd1cmFjacOzbiBjb21wbGV0YVxuICAgICAgICAgICAgICAgIHRoaXMuY29uc3RzLnNldEN1cnJlbmN5KGNmZy5jb2RlLCBjZmcpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnN0cy5zZXRDdXJyZW5jeShjdXJyZW5jeUNvZGUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmxvYWQoKTtcbiAgICAgICAgfSkuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgICAgLy8gRW4gY2FzbyBkZSBlcnJvciwgYWwgbWVub3MgZmlqw6EgZWwgY8OzZGlnbyBwYXJhIG5vIHJvbXBlciBlbCBmbHVqb1xuICAgICAgICAgICAgdGhpcy5jb25zdHMuc2V0Q3VycmVuY3koY3VycmVuY3lDb2RlKTtcbiAgICAgICAgICAgIHRoaXMubG9hZCgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gY2FsY3VsYSBsYSBjb252ZXRpYmlsaWRhZCBkZWwgcHJlY2lvICBwYXNhZG8gcG9yIHBhcmFtZW50cm8gc2VndW4gZXN0YSBmb3JtdWxhOlxuICAgICAqICoqYyA9IGEgKiBiKiogZG9uZGUgKmM9bW9uZWRhIGRlc3B1ZXMgZGVsIGNhbWJpbyosICphPXZhbG9yIHF1ZSBxdWllcm8gY2FtYmlhciogeSAqYj1yYXRpbyBkZSBjYW1iaW8qLiBcbiAgICAgKiBAcGFyYW0gcHJpY2UgUHJlY2lvIGEgY2FtYmlhclxuICAgICAqIEBwYXJhbSByYXRpbyBSYXRpbyBkZSBjYW1iaW9cbiAgICAgKiBAcmV0dXJucyBTaSBlbCByYXRpbyBubyBlcyBudWxsLCByZXRvcm5hIGVsIHByZWNpbyBjYW1iaWFkbywgc2lubyByZXRvcm5hIGVsIHByZWNpbyBzaW4gY2FtYmlvcy4gXG4gICAgICovXG4gICAgcHVibGljIGNhbGN1bGF0ZUNvbnZldGliaWxpdHkgPSAocHJpY2UsIHJhdGlvKSA9PiB7XG4gICAgICAgIHJldHVybiByYXRpbyA/IHByaWNlICogcmF0aW8gOiBwcmljZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gY29kZSBDb2RpZ28gZGUgbW9uZWRhIGEgbGEgcXVlIHNlIGRlc2VhIGNhbWJpYXJcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0Q3VycmVuY3kgPSBhc3luYyAoY29kZTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuZ2V0Q29udmVydGliaWxpdHkodGhpcy5jb25zdHMuY3VycmVuY3kuY29kZSwgY29kZSlcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYXJnYSBsYSBsaXN0YSBkZSBtb25lZGFzIGRlc2RlIGxhIEFQSSB5IHJlZ2lzdHJhIGxhIGNvbmZpZ3VyYWNpw7NuIGNvbXBsZXRhIGVuIGBDb25zdGFudHNgLlxuICAgICAqXG4gICAgICogU2kgbm8gZXhpc3RlIHVuYSBtb25lZGEgYWN0aXZhIGd1YXJkYWRhIGVuIGBsb2NhbFN0b3JhZ2VgLCBpbmljaWFsaXphIGxhIG1vbmVkYSBhY3RpdmFcbiAgICAgKiB0b21hbmRvIGxhIG1vbmVkYSBiYXNlIGRlbCBjYW5hbCAoYENoYW5uZWxDb25maWdTZXJ2aWNlLmJhc2VDdXJyZW5jeWApIHkgc3VzIG1ldGFkYXRvc1xuICAgICAqIG9idGVuaWRvcyBkZSBsYSBsaXN0YSAoc8OtbWJvbG8sIHBvc2ljacOzbiwgZGVjaW1hbGVzKS4gU2kgbm8gc2UgZW5jdWVudHJhIGxhIGJhc2UgZW4gbGFcbiAgICAgKiBsaXN0YSwgdXNhIGxhIHByaW1lcmEgZGlzcG9uaWJsZS5cbiAgICAgKlxuICAgICAqIEZpbmFsbWVudGUsIGxsYW1hIGEgYGxvYWQoKWAgcGFyYSBwcm9wYWdhciBsYSBjb25maWd1cmFjacOzbiBhIGxvcyBvYnNlcnZhYmxlcyB5IChzaSBhcGxpY2EpXG4gICAgICogYWN0dWFsaXphciBgbG9jYWxTdG9yYWdlYC5cbiAgICAgKlxuICAgICAqIEBzaWRlRWZmZWN0IEFjdHVhbGl6YSBgY3VycmVuY3lMaXN0JGAsIGBDb25zdGFudHMuc2V0Q3VycmVuY3lUeXBlQ29uZmlnYCB5IHBvdGVuY2lhbG1lbnRlXG4gICAgICogICAgICAgICAgICAgYENvbnN0YW50cy5zZXRDdXJyZW5jeWAuXG4gICAgICogQHJldHVybnMgdm9pZFxuICAgICAqL1xuICAgIHByaXZhdGUgbG9hZEN1cnJlbmN5TGlzdCA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5jb25uZWN0aW9uLmdldCh0aGlzLmdldEN1cnJlbmN5TGlzdEFwaSgpKS50b1Byb21pc2UoKS50aGVuKHJlcyA9PiB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbmN5TGlzdFN1YmplY3QubmV4dChyZXMpO1xuICAgICAgICAgICAgdGhpcy5jb25zdHMuc2V0Q3VycmVuY3lUeXBlQ29uZmlnKHJlcyk7XG5cbiAgICAgICAgICAgIGNvbnN0IHN0b3JlZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjdXJyZW5jeScpO1xuICAgICAgICAgICAgaWYgKCFzdG9yZWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBiYXNlID0gdGhpcy5pbmplY3Rvci5nZXQoQ2hhbm5lbENvbmZpZ1NlcnZpY2UpLmdldEFjdGl2ZUNoYW5uZWwoKT8uYmFzZUN1cnJlbmN5O1xuICAgICAgICAgICAgICAgIGNvbnN0IGNmZyA9IHJlcz8uZmluZChjID0+IGMuY29kZSA9PT0gYmFzZSkgPz8gcmVzPy5bMF07XG4gICAgICAgICAgICAgICAgaWYgKGNmZykgdGhpcy5jb25zdHMuc2V0Q3VycmVuY3koY2ZnLmNvZGUsIGNmZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMubG9hZCgpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIGdlbmVyYSBsYSBjYXJnYSB5IGNvbmZpZ3VyYWNpw7NuIGRlIGxhIG1vbmVkYSBlbGVnaWRhIHBhcmEgbGEgY29udmVyc2lvbi5cbiAgICAgKiBAcGFyYW0gY3VycmVuY3kgTW9uZWRhIGEgY29udmVydGlyLlxuICAgICAqL1xuICAgIHByaXZhdGUgbG9hZEN1cnJlbmN5ID0gKGN1cnJlbmN5OiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5jdXJyZW5jeVN1YmplY3QubmV4dChjdXJyZW5jeSk7XG4gICAgICAgIHRoaXMuY29uc3RzLnNldEN1cnJlbmN5KGN1cnJlbmN5LmNvZGUpO1xuICAgICAgICBsZXQgdXBkYXRlID0gdGhpcy51cGRhdGVTdWJqZWN0LmdldFZhbHVlKClcbiAgICAgICAgdGhpcy51cGRhdGVTdWJqZWN0Lm5leHQoIXVwZGF0ZSlcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2N1cnJlbmN5JywgSlNPTi5zdHJpbmdpZnkodGhpcy5jb25zdHMuY3VycmVuY3kpKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBHZW5lcmEgbGEgY29udmVydGliaWxpZGFkIGRlIGxhIG1vbmVkYSBiYXNlIGEgbGEgbnVldmEuIFNpIGJhc2VDdXJyZW5jeSBubyB0aWVuZSB2YWxvciBcbiAgICAgKiBlbnRvbmNlcyB1dGlsaXphIGxhIG1vbmVkYSBiYXNlIGRlbCBjYW5hbC5cbiAgICAgKiBAcGFyYW0gY3VycmVuY3kgT2JqZXRvIGRlIGxhIG1vbmVkYSBkZXN0aW5vLlxuICAgICAqIEBwYXJhbSBiYXNlQ3VycmVuY3kgQ29kaWdvIGRlIGxhIG1vbmVkYSBiYXNlLiAqRWo6IFVTRCB8IEFSUyB8IEVVUiB8Li4uKlxuICAgICAqL1xuICAgIGdlbmVyYXRlQ29udmVydGliaWxpdHkgPSBhc3luYyAoY3VycmVuY3k6IGFueSwgYmFzZUN1cnJlbmN5Pzogc3RyaW5nKSA9PiB7XG4gICAgICAgIGlmICghYmFzZUN1cnJlbmN5KSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGJhc2VDdXJyZW5jeSA9IGF3YWl0IHRoaXMuaW5qZWN0b3IuZ2V0KENoYW5uZWxDb25maWdTZXJ2aWNlKS5nZXRBY3RpdmVDaGFubmVsKCkuYmFzZUN1cnJlbmN5O1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAvL2NvbnNvbGUuZXJyb3IoZXJyb3IpXG4gICAgICAgICAgICAgICAgYmFzZUN1cnJlbmN5ID0gJ1VTRCdcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoY3VycmVuY3kuY29kZSA9PSBiYXNlQ3VycmVuY3kpIHtcbiAgICAgICAgICAgIHRoaXMubG9hZEN1cnJlbmN5KGN1cnJlbmN5KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZ2V0Q29udmVydGliaWxpdHkoYmFzZUN1cnJlbmN5LCBjdXJyZW5jeS5jb2RlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBPYnRpZW5lIGxhIGNvbnZlcnNpb24gZGVzZGUgbGEgbW9uZWRhIGJhc2UgYSBsYSBkZXN0aW5vLiBSZWNpYmUgdW4gb2JqZXRvIGRlIHRpcG8gQ3VycmVuY3lDb25maWcuXG4gICAgICogU2kgbGEgY29udmVyc2lvbiByZXRvcm5hIHJlc3VsdGFkbyByZWFsaXphIGVsIGNhbWJpbywgZGUgbG8gY29udHJhcmlvIGVtaXRlIHVuIG1lbnNhamUgZGUgZXJyb3IuXG4gICAgICogQHBhcmFtIGJhc2VDdXJyZW5jeSBDb2RpZ28gZGUgbGEgbW9uZWRhIGJhc2UuXG4gICAgICogQHBhcmFtIHRhcmdldEN1cnJlbmN5IENvZGlnbyBkZSBsYSBtb25lZGEgZGVzdGluby5cbiAgICAgKi9cbiAgICBwcml2YXRlIGdldENvbnZlcnRpYmlsaXR5ID0gKGJhc2VDdXJyZW5jeTogYW55LCB0YXJnZXRDdXJyZW5jeTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuY29ubmVjdGlvbi5nZXQodGhpcy5nZXRDb252ZXJ0aWJpbGl0eUFwaShiYXNlQ3VycmVuY3ksIHRhcmdldEN1cnJlbmN5KSlcbiAgICAgICAgICAgIC50b1Byb21pc2UoKS50aGVuKFxuICAgICAgICAgICAgICAgIHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZW1wQ3VycmVuY3kgPSByZXNbMF1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZEN1cnJlbmN5KHRlbXBDdXJyZW5jeSlcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGxhIHZhcmlhYmxlIHJlcyBubyBjb250aWVuZSB2YWxvciwgYXNlZ3VyZXNlIGRlIHF1ZSBlc3RhIGNvbnZlcnNpw7NuIGVzdGUgY29uZmlndXJhZGEgZW4gZWwgYmFja29mZmljZScpXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0ci5zaG93KCdlcnJvci1jb252ZXJ0aWJpbGl0eScpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVyciA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycilcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApLmNhdGNoKGVyciA9PiBjb25zb2xlLmxvZyhlcnIpKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDYXJnYSBsYSBtb25lZGEsIHNpIGhheSB1bmEgZW4gZWwgbG9jYWxzdG9yYWdlIHRvbWEgZXNhIHkgcmVhbGl6YSBsYSBjb252ZXJzaW9uLlxuICAgICAqIGRlIGxvIGNvbnRyYXJpbyBzb2xvIHNldGVhIGVuIGVsIG9ic2VydmFibGUgY3VycmVuY3lTdWJqZWN0IGVsIHZhbG9yIHBvciBkZWZlY3RvIGNhcmdhZG8gZW4gbGFzIGNvbnN0YW50ZXMuIFxuICAgICAqL1xuICAgIHByaXZhdGUgbG9hZCA9ICgpID0+IHtcbiAgICAgICAgbGV0IGxvY2FsU3RvcmFnZUN1cnJlbmN5ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2N1cnJlbmN5JylcbiAgICAgICAgaWYgKGxvY2FsU3RvcmFnZUN1cnJlbmN5KSB7XG4gICAgICAgICAgICBsZXQgY3VycmVuY3kgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZUN1cnJlbmN5KVxuICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZUNvbnZlcnRpYmlsaXR5KGN1cnJlbmN5KVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW5jeVN1YmplY3QubmV4dCh0aGlzLmNvbnN0cy5jdXJyZW5jeSlcbiAgICAgICAgfVxuICAgIH1cblxufVxuIl19