New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

angularx-qrcode

Package Overview
Dependencies
Maintainers
1
Versions
121
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

angularx-qrcode - npm Package Compare versions

Comparing version
17.0.0
to
17.0.1
+1
-1
esm2022/lib/angularx-qrcode.component.mjs

@@ -271,2 +271,2 @@ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild, } from "@angular/core";

}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhcngtcXJjb2RlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXJ4LXFyY29kZS9zcmMvbGliL2FuZ3VsYXJ4LXFyY29kZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFBO0FBRXRCLE9BQU8sRUFLTCxRQUFRLEVBQ1IsU0FBUyxFQUNULFFBQVEsR0FDVCxNQUFNLFFBQVEsQ0FBQTs7O0FBUWYsTUFBTSxPQUFPLGVBQWU7SUE2QjFCLFlBQW9CLFFBQW1CLEVBQVUsU0FBdUI7UUFBcEQsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUFVLGNBQVMsR0FBVCxTQUFTLENBQWM7UUE1QnhELHFCQUFnQixHQUFHLEtBQUssQ0FBQTtRQUN4QixjQUFTLEdBQUcsV0FBVyxDQUFBO1FBQ3ZCLGVBQVUsR0FBRyxXQUFXLENBQUE7UUFDeEIsYUFBUSxHQUFHLFFBQVEsQ0FBQTtRQUNuQixnQkFBVyxHQUFzQixRQUFRLENBQUE7UUFFbEQseUJBQW9CLEdBQStCLEdBQUcsQ0FBQTtRQUk3QyxXQUFNLEdBQUcsQ0FBQyxDQUFBO1FBQ1YsV0FBTSxHQUFHLEVBQUUsQ0FBQTtRQUNYLFVBQUssR0FBRyxDQUFDLENBQUE7UUFFVCxVQUFLLEdBQUcsRUFBRSxDQUFBO1FBT2hCLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFBO1FBSTFDLFlBQU8sR0FBb0MsSUFBSSxDQUFBO0lBR3FCLENBQUM7SUFFckUsS0FBSyxDQUFDLFdBQVc7UUFDdEIsTUFBTSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUE7SUFDM0IsQ0FBQztJQUVTLGlCQUFpQixDQUFDLElBQW1CO1FBQzdDLElBQUksSUFBSSxDQUFDLGdCQUFnQixLQUFLLEtB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T0FBTztzQkFBdEIsS0FBSztnQkFDVSxLQUFLO3NCQUFwQixLQUFLO2dCQUdVLEdBQUc7c0JBQWxCLEtBQUs7Z0JBQ1UsU0FBUztzQkFBeEIsS0FBSztnQkFDVSxLQUFLO3NCQUFwQixLQUFLO2dCQUVJLFNBQVM7c0JBQWxCLE1BQU07Z0JBRTJDLFVBQVU7c0JBQTNELFNBQVM7dUJBQUMsWUFBWSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBSZW5kZXJlcjIsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIlxuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlVXJsIH0gZnJvbSBcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXJcIlxuaW1wb3J0IHtcbiAgUVJDb2RlRXJyb3JDb3JyZWN0aW9uTGV2ZWwsXG4gIFFSQ29kZVJlbmRlcmVyc09wdGlvbnMsXG4gIFFSQ29kZVRvRGF0YVVSTE9wdGlvbnMsXG4gIFFSQ29kZVRvU3RyaW5nT3B0aW9ucyxcbiAgdG9DYW52YXMsXG4gIHRvRGF0YVVSTCxcbiAgdG9TdHJpbmcsXG59IGZyb20gXCJxcmNvZGVcIlxuaW1wb3J0IHsgUVJDb2RlVmVyc2lvbiwgUVJDb2RlRWxlbWVudFR5cGUsIEZpeE1lTGF0ZXIgfSBmcm9tIFwiLi90eXBlc1wiXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJxcmNvZGVcIixcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiBgPGRpdiAjcXJjRWxlbWVudCBbY2xhc3NdPVwiY3NzQ2xhc3NcIj48L2Rpdj5gLFxufSlcbmV4cG9ydCBjbGFzcyBRUkNvZGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBwdWJsaWMgYWxsb3dFbXB0eVN0cmluZyA9IGZhbHNlXG4gIEBJbnB1dCgpIHB1YmxpYyBjb2xvckRhcmsgPSBcIiMwMDAwMDBmZlwiXG4gIEBJbnB1dCgpIHB1YmxpYyBjb2xvckxpZ2h0ID0gXCIjZmZmZmZmZmZcIlxuICBASW5wdXQoKSBwdWJsaWMgY3NzQ2xhc3MgPSBcInFyY29kZVwiXG4gIEBJbnB1dCgpIHB1YmxpYyBlbGVtZW50VHlwZTogUVJDb2RlRWxlbWVudFR5cGUgPSBcImNhbnZhc1wiXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBlcnJvckNvcnJlY3Rpb25MZXZlbDogUVJDb2RlRXJyb3JDb3JyZWN0aW9uTGV2ZWwgPSBcIk1cIlxuICBASW5wdXQoKSBwdWJsaWMgaW1hZ2VTcmM/OiBzdHJpbmdcbiAgQElucHV0KCkgcHVibGljIGltYWdlSGVpZ2h0PzogbnVtYmVyXG4gIEBJbnB1dCgpIHB1YmxpYyBpbWFnZVdpZHRoPzogbnVtYmVyXG4gIEBJbnB1dCgpIHB1YmxpYyBtYXJnaW4gPSA0XG4gIEBJbnB1dCgpIHB1YmxpYyBxcmRhdGEgPSBcIlwiXG4gIEBJbnB1dCgpIHB1YmxpYyBzY2FsZSA9IDRcbiAgQElucHV0KCkgcHVibGljIHZlcnNpb24/OiBRUkNvZGVWZXJzaW9uXG4gIEBJbnB1dCgpIHB1YmxpYyB3aWR0aCA9IDEwXG5cbiAgLy8gQWNjZXNzaWJpbGl0eSBmZWF0dXJlcyBpbnRyb2R1Y2VkIGluIDEzLjAuNCtcbiAgQElucHV0KCkgcHVibGljIGFsdD86IHN0cmluZ1xuICBASW5wdXQoKSBwdWJsaWMgYXJpYUxhYmVsPzogc3RyaW5nXG4gIEBJbnB1dCgpIHB1YmxpYyB0aXRsZT86IHN0cmluZ1xuXG4gIEBPdXRwdXQoKSBxckNvZGVVUkwgPSBuZXcgRXZlbnRFbWl0dGVyPFNhZmVVcmw+KClcblxuICBAVmlld0NoaWxkKFwicXJjRWxlbWVudFwiLCB7IHN0YXRpYzogdHJ1ZSB9KSBwdWJsaWMgcXJjRWxlbWVudCE6IEVsZW1lbnRSZWZcblxuICBwdWJsaWMgY29udGV4dDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIHwgbnVsbCA9IG51bGxcbiAgcHJpdmF0ZSBjZW50ZXJJbWFnZT86IEhUTUxJbWFnZUVsZW1lbnRcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIpIHt9XG5cbiAgcHVibGljIGFzeW5jIG5nT25DaGFuZ2VzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuY3JlYXRlUVJDb2RlKClcbiAgfVxuXG4gIHByb3RlY3RlZCBpc1ZhbGlkUXJDb2RlVGV4dChkYXRhOiBzdHJpbmcgfCBudWxsKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuYWxsb3dFbXB0eVN0cmluZyA9PT0gZmFsc2UpIHtcbiAgICAgIHJldHVybiAhKFxuICAgICAgICB0eXBlb2YgZGF0YSA9PT0gXCJ1bmRlZmluZWRcIiB8fFxuICAgICAgICBkYXRhID09PSBcIlwiIHx8XG4gICAgICAgIGRhdGEgPT09IFwibnVsbFwiIHx8XG4gICAgICAgIGRhdGEgPT09IG51bGxcbiAgICAgIClcbiAgICB9XG4gICAgcmV0dXJuICEodHlwZW9mIGRhdGEgPT09IFwidW5kZWZpbmVkXCIpXG4gIH1cblxuICBwcml2YXRlIHRvRGF0YVVSTChxckNvZGVDb25maWc6IFFSQ29kZVRvRGF0YVVSTE9wdGlvbnMpOiBQcm9taXNlPEZpeE1lTGF0ZXI+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoXG4gICAgICAoXG4gICAgICAgIHJlc29sdmU6IChhcmc6IEZpeE1lTGF0ZXIpID0+IEZpeE1lTGF0ZXIsXG4gICAgICAgIHJlamVjdDogKGFyZzogRml4TWVMYXRlcikgPT4gRml4TWVMYXRlclxuICAgICAgKSA9PiB7XG4gICAgICAgIHRvRGF0YVVSTChcbiAgICAgICAgICB0aGlzLnFyZGF0YSxcbiAgICAgICAgICBxckNvZGVDb25maWcsXG4gICAgICAgICAgKGVycjogRXJyb3IgfCBudWxsIHwgdW5kZWZpbmVkLCB1cmw6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICByZWplY3QoZXJyKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmVzb2x2ZSh1cmwpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICApXG4gICAgICB9XG4gICAgKVxuICB9XG5cbiAgcHJpdmF0ZSB0b0NhbnZhcyhcbiAgICBjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50LFxuICAgIHFyQ29kZUNvbmZpZzogUVJDb2RlUmVuZGVyZXJzT3B0aW9uc1xuICApOiBQcm9taXNlPEZpeE1lTGF0ZXI+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoXG4gICAgICAoXG4gICAgICAgIHJlc29sdmU6IChhcmc6IEZpeE1lTGF0ZXIpID0+IEZpeE1lTGF0ZXIsXG4gICAgICAgIHJlamVjdDogKGFyZzogRml4TWVMYXRlcikgPT4gRml4TWVMYXRlclxuICAgICAgKSA9PiB7XG4gICAgICAgIHRvQ2FudmFzKFxuICAgICAgICAgIGNhbnZhcyxcbiAgICAgICAgICB0aGlzLnFyZGF0YSxcbiAgICAgICAgICBxckNvZGVDb25maWcsXG4gICAgICAgICAgKGVycm9yOiBFcnJvciB8IG51bGwgfCB1bmRlZmluZWQpID0+IHtcbiAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICByZWplY3QoZXJyb3IpXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXNvbHZlKFwic3VjY2Vzc1wiKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgICAgfVxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgdG9TVkcocXJDb2RlQ29uZmlnOiBRUkNvZGVUb1N0cmluZ09wdGlvbnMpOiBQcm9taXNlPEZpeE1lTGF0ZXI+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoXG4gICAgICAoXG4gICAgICAgIHJlc29sdmU6IChhcmc6IEZpeE1lTGF0ZXIpID0+IEZpeE1lTGF0ZXIsXG4gICAgICAgIHJlamVjdDogKGFyZzogRml4TWVMYXRlcikgPT4gRml4TWVMYXRlclxuICAgICAgKSA9PiB7XG4gICAgICAgIHRvU3RyaW5nKFxuICAgICAgICAgIHRoaXMucXJkYXRhLFxuICAgICAgICAgIHFyQ29kZUNvbmZpZyxcbiAgICAgICAgICAoZXJyOiBFcnJvciB8IG51bGwgfCB1bmRlZmluZWQsIHVybDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgIHJlamVjdChlcnIpXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXNvbHZlKHVybClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIClcbiAgICAgIH1cbiAgICApXG4gIH1cblxuICBwcml2YXRlIHJlbmRlckVsZW1lbnQoZWxlbWVudDogRWxlbWVudCk6IHZvaWQge1xuICAgIGZvciAoY29uc3Qgbm9kZSBvZiB0aGlzLnFyY0VsZW1lbnQubmF0aXZlRWxlbWVudC5jaGlsZE5vZGVzKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKHRoaXMucXJjRWxlbWVudC5uYXRpdmVFbGVtZW50LCBub2RlKVxuICAgIH1cbiAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMucXJjRWxlbWVudC5uYXRpdmVFbGVtZW50LCBlbGVtZW50KVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjcmVhdGVRUkNvZGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gU2V0IHNlbnNpdGl2ZSBkZWZhdWx0c1xuICAgIGlmICh0aGlzLnZlcnNpb24gJiYgdGhpcy52ZXJzaW9uID4gNDApIHtcbiAgICAgIGNvbnNvbGUud2FybihcIlthbmd1bGFyeC1xcmNvZGVdIG1heCB2YWx1ZSBmb3IgYHZlcnNpb25gIGlzIDQwXCIpXG4gICAgICB0aGlzLnZlcnNpb24gPSA0MFxuICAgIH0gZWxzZSBpZiAodGhpcy52ZXJzaW9uICYmIHRoaXMudmVyc2lvbiA8IDEpIHtcbiAgICAgIGNvbnNvbGUud2FybihcIlthbmd1bGFyeC1xcmNvZGVdYG1pbiB2YWx1ZSBmb3IgYHZlcnNpb25gIGlzIDFcIilcbiAgICAgIHRoaXMudmVyc2lvbiA9IDFcbiAgICB9IGVsc2UgaWYgKHRoaXMudmVyc2lvbiAhPT0gdW5kZWZpbmVkICYmIGlzTmFOKHRoaXMudmVyc2lvbikpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgXCJbYW5ndWxhcngtcXJjb2RlXSB2ZXJzaW9uIHNob3VsZCBiZSBhIG51bWJlciwgZGVmYXVsdGluZyB0byBhdXRvLlwiXG4gICAgICApXG4gICAgICB0aGlzLnZlcnNpb24gPSB1bmRlZmluZWRcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgaWYgKCF0aGlzLmlzVmFsaWRRckNvZGVUZXh0KHRoaXMucXJkYXRhKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgXCJbYW5ndWxhcngtcXJjb2RlXSBGaWVsZCBgcXJkYXRhYCBpcyBlbXB0eSwgc2V0ICdhbGxvd0VtcHR5U3RyaW5nPVxcXCJ0cnVlXFxcIicgdG8gb3ZlcndyaXRlIHRoaXMgYmVoYXZpb3VyLlwiXG4gICAgICAgIClcbiAgICAgIH1cblxuICAgICAgLy8gVGhpcyBpcyBhIHdvcmthcm91bmQgdG8gYWxsb3cgYW4gZW1wdHkgc3RyaW5nIGFzIHFyZGF0YVxuICAgICAgaWYgKHRoaXMuaXNWYWxpZFFyQ29kZVRleHQodGhpcy5xcmRhdGEpICYmIHRoaXMucXJkYXRhID09PSBcIlwiKSB7XG4gICAgICAgIHRoaXMucXJkYXRhID0gXCIgXCJcbiAgICAgIH1cblxuICAgICAgY29uc3QgY29uZmlnID0ge1xuICAgICAgICBjb2xvcjoge1xuICAgICAgICAgIGRhcms6IHRoaXMuY29sb3JEYXJrLFxuICAgICAgICAgIGxpZ2h0OiB0aGlzLmNvbG9yTGlnaHQsXG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yQ29ycmVjdGlvbkxldmVsOiB0aGlzLmVycm9yQ29ycmVjdGlvbkxldmVsLFxuICAgICAgICBtYXJnaW46IHRoaXMubWFyZ2luLFxuICAgICAgICBzY2FsZTogdGhpcy5zY2FsZSxcbiAgICAgICAgdmVyc2lvbjogdGhpcy52ZXJzaW9uLFxuICAgICAgICB3aWR0aDogdGhpcy53aWR0aCxcbiAgICAgIH1cblxuICAgICAgY29uc3QgY2VudGVySW1hZ2VTcmMgPSB0aGlzLmltYWdlU3JjXG4gICAgICBjb25zdCBjZW50ZXJJbWFnZUhlaWdodCA9IHRoaXMuaW1hZ2VIZWlnaHQgfHwgNDBcbiAgICAgIGNvbnN0IGNlbnRlckltYWdlV2lkdGggPSB0aGlzLmltYWdlV2lkdGggfHwgNDBcblxuICAgICAgc3dpdGNoICh0aGlzLmVsZW1lbnRUeXBlKSB7XG4gICAgICAgIGNhc2UgXCJjYW52YXNcIjoge1xuICAgICAgICAgIGNvbnN0IGNhbnZhc0VsZW1lbnQ6IEhUTUxDYW52YXNFbGVtZW50ID1cbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudChcImNhbnZhc1wiKVxuICAgICAgICAgIHRoaXMuY29udGV4dCA9IGNhbnZhc0VsZW1lbnQuZ2V0Q29udGV4dChcIjJkXCIpXG4gICAgICAgICAgdGhpcy50b0NhbnZhcyhjYW52YXNFbGVtZW50LCBjb25maWcpXG4gICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgIGlmICh0aGlzLmFyaWFMYWJlbCkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKFxuICAgICAgICAgICAgICAgICAgY2FudmFzRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiLFxuICAgICAgICAgICAgICAgICAgYCR7dGhpcy5hcmlhTGFiZWx9YFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAodGhpcy50aXRsZSkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKFxuICAgICAgICAgICAgICAgICAgY2FudmFzRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgIFwidGl0bGVcIixcbiAgICAgICAgICAgICAgICAgIGAke3RoaXMudGl0bGV9YFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmIChjZW50ZXJJbWFnZVNyYyAmJiB0aGlzLmNvbnRleHQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNlbnRlckltYWdlID0gbmV3IEltYWdlKFxuICAgICAgICAgICAgICAgICAgY2VudGVySW1hZ2VXaWR0aCxcbiAgICAgICAgICAgICAgICAgIGNlbnRlckltYWdlSGVpZ2h0XG4gICAgICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICAgICAgaWYgKGNlbnRlckltYWdlU3JjICE9PSB0aGlzLmNlbnRlckltYWdlLnNyYykge1xuICAgICAgICAgICAgICAgICAgdGhpcy5jZW50ZXJJbWFnZS5zcmMgPSBjZW50ZXJJbWFnZVNyY1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChjZW50ZXJJbWFnZUhlaWdodCAhPT0gdGhpcy5jZW50ZXJJbWFnZS5oZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuY2VudGVySW1hZ2UuaGVpZ2h0ID0gY2VudGVySW1hZ2VIZWlnaHRcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoY2VudGVySW1hZ2VXaWR0aCAhPT0gdGhpcy5jZW50ZXJJbWFnZS53aWR0aCkge1xuICAgICAgICAgICAgICAgICAgdGhpcy5jZW50ZXJJbWFnZS53aWR0aCA9IGNlbnRlckltYWdlV2lkdGhcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBjZW50ZXJJbWFnZSA9IHRoaXMuY2VudGVySW1hZ2VcblxuICAgICAgICAgICAgICAgIGlmIChjZW50ZXJJbWFnZSkge1xuICAgICAgICAgICAgICAgICAgY2VudGVySW1hZ2Uub25sb2FkID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHQ/LmRyYXdJbWFnZShcbiAgICAgICAgICAgICAgICAgICAgICBjZW50ZXJJbWFnZSxcbiAgICAgICAgICAgICAgICAgICAgICBjYW52YXNFbGVtZW50LndpZHRoIC8gMiAtIGNlbnRlckltYWdlV2lkdGggLyAyLFxuICAgICAgICAgICAgICAgICAgICAgIGNhbnZhc0VsZW1lbnQuaGVpZ2h0IC8gMiAtIGNlbnRlckltYWdlSGVpZ2h0IC8gMixcbiAgICAgICAgICAgICAgICAgICAgICBjZW50ZXJJbWFnZVdpZHRoLFxuICAgICAgICAgICAgICAgICAgICAgIGNlbnRlckltYWdlSGVpZ2h0XG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICB0aGlzLnJlbmRlckVsZW1lbnQoY2FudmFzRWxlbWVudClcbiAgICAgICAgICAgICAgdGhpcy5lbWl0UVJDb2RlVVJMKGNhbnZhc0VsZW1lbnQgYXMgSFRNTENhbnZhc0VsZW1lbnQpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNhdGNoKChlKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJbYW5ndWxhcngtcXJjb2RlXSBjYW52YXMgZXJyb3I6XCIsIGUpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBcInN2Z1wiOiB7XG4gICAgICAgICAgY29uc3Qgc3ZnUGFyZW50RWxlbWVudDogSFRNTEVsZW1lbnQgPVxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KFwiZGl2XCIpXG4gICAgICAgICAgdGhpcy50b1NWRyhjb25maWcpXG4gICAgICAgICAgICAudGhlbigoc3ZnU3RyaW5nOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eShcbiAgICAgICAgICAgICAgICBzdmdQYXJlbnRFbGVtZW50LFxuICAgICAgICAgICAgICAgIFwiaW5uZXJIVE1MXCIsXG4gICAgICAgICAgICAgICAgc3ZnU3RyaW5nXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgY29uc3Qgc3ZnRWxlbWVudCA9IHN2Z1BhcmVudEVsZW1lbnQuZmlyc3RDaGlsZCBhcyBTVkdTVkdFbGVtZW50XG4gICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHN2Z0VsZW1lbnQsIFwiaGVpZ2h0XCIsIGAke3RoaXMud2lkdGh9YClcbiAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoc3ZnRWxlbWVudCwgXCJ3aWR0aFwiLCBgJHt0aGlzLndpZHRofWApXG4gICAgICAgICAgICAgIHRoaXMucmVuZGVyRWxlbWVudChzdmdFbGVtZW50KVxuICAgICAgICAgICAgICB0aGlzLmVtaXRRUkNvZGVVUkwoc3ZnRWxlbWVudClcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIlthbmd1bGFyeC1xcmNvZGVdIHN2ZyBlcnJvcjpcIiwgZSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFwidXJsXCI6XG4gICAgICAgIGNhc2UgXCJpbWdcIjpcbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgIGNvbnN0IGltZ0VsZW1lbnQ6IEhUTUxJbWFnZUVsZW1lbnQgPVxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KFwiaW1nXCIpXG4gICAgICAgICAgdGhpcy50b0RhdGFVUkwoY29uZmlnKVxuICAgICAgICAgICAgLnRoZW4oKGRhdGFVcmw6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICBpZiAodGhpcy5hbHQpIHtcbiAgICAgICAgICAgICAgICBpbWdFbGVtZW50LnNldEF0dHJpYnV0ZShcImFsdFwiLCB0aGlzLmFsdClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAodGhpcy5hcmlhTGFiZWwpIHtcbiAgICAgICAgICAgICAgICBpbWdFbGVtZW50LnNldEF0dHJpYnV0ZShcImFyaWEtbGFiZWxcIiwgdGhpcy5hcmlhTGFiZWwpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaW1nRWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJzcmNcIiwgZGF0YVVybClcbiAgICAgICAgICAgICAgaWYgKHRoaXMudGl0bGUpIHtcbiAgICAgICAgICAgICAgICBpbWdFbGVtZW50LnNldEF0dHJpYnV0ZShcInRpdGxlXCIsIHRoaXMudGl0bGUpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdGhpcy5yZW5kZXJFbGVtZW50KGltZ0VsZW1lbnQpXG4gICAgICAgICAgICAgIHRoaXMuZW1pdFFSQ29kZVVSTChpbWdFbGVtZW50KVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiW2FuZ3VsYXJ4LXFyY29kZV0gaW1nL3VybCBlcnJvcjpcIiwgZSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGNhdGNoIChlOiBGaXhNZUxhdGVyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFwiW2FuZ3VsYXJ4LXFyY29kZV0gRXJyb3IgZ2VuZXJhdGluZyBRUiBDb2RlOlwiLCBlLm1lc3NhZ2UpXG4gICAgfVxuICB9XG5cbiAgZW1pdFFSQ29kZVVSTChlbGVtZW50OiBIVE1MQ2FudmFzRWxlbWVudCB8IEhUTUxJbWFnZUVsZW1lbnQgfCBTVkdTVkdFbGVtZW50KSB7XG4gICAgY29uc3QgY2xhc3NOYW1lID0gZWxlbWVudC5jb25zdHJ1Y3Rvci5uYW1lXG4gICAgaWYgKGNsYXNzTmFtZSA9PT0gU1ZHU1ZHRWxlbWVudC5uYW1lKSB7XG4gICAgICBjb25zdCBzdmdIVE1MID0gZWxlbWVudC5vdXRlckhUTUxcbiAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbc3ZnSFRNTF0sIHsgdHlwZTogXCJpbWFnZS9zdmcreG1sXCIgfSlcbiAgICAgIGNvbnN0IHVybFN2ZyA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYilcbiAgICAgIGNvbnN0IHVybFNhbml0aXplZCA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RVcmwodXJsU3ZnKVxuICAgICAgdGhpcy5xckNvZGVVUkwuZW1pdCh1cmxTYW5pdGl6ZWQpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBsZXQgdXJsSW1hZ2UgPSBcIlwiXG5cbiAgICBpZiAoY2xhc3NOYW1lID09PSBIVE1MQ2FudmFzRWxlbWVudC5uYW1lKSB7XG4gICAgICB1cmxJbWFnZSA9IChlbGVtZW50IGFzIEhUTUxDYW52YXNFbGVtZW50KS50b0RhdGFVUkwoXCJpbWFnZS9wbmdcIilcbiAgICB9XG5cbiAgICBpZiAoY2xhc3NOYW1lID09PSBIVE1MSW1hZ2VFbGVtZW50Lm5hbWUpIHtcbiAgICAgIHVybEltYWdlID0gKGVsZW1lbnQgYXMgSFRNTEltYWdlRWxlbWVudCkuc3JjXG4gICAgfVxuXG4gICAgZmV0Y2godXJsSW1hZ2UpXG4gICAgICAudGhlbigodXJsUmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB1cmxSZXNwb25zZS5ibG9iKCkpXG4gICAgICAudGhlbigoYmxvYjogQmxvYikgPT4gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKSlcbiAgICAgIC50aGVuKCh1cmw6IHN0cmluZykgPT4gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFVybCh1cmwpKVxuICAgICAgLnRoZW4oKHVybFNhbml0aXplZDogU2FmZVVybCkgPT4ge1xuICAgICAgICB0aGlzLnFyQ29kZVVSTC5lbWl0KHVybFNhbml0aXplZClcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgXCJbYW5ndWxhcngtcXJjb2RlXSBFcnJvciB3aGVuIGZldGNoaW5nIGltYWdlL3BuZyBVUkw6IFwiICsgZXJyb3JcbiAgICAgICAgKVxuICAgICAgfSlcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhcngtcXJjb2RlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXJ4LXFyY29kZS9zcmMvbGliL2FuZ3VsYXJ4LXFyY29kZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFBO0FBRXRCLE9BQU8sRUFJTCxRQUFRLEVBQ1IsU0FBUyxFQUNULFFBQVEsR0FDVCxNQUFNLFFBQVEsQ0FBQTs7O0FBY2YsTUFBTSxPQUFPLGVBQWU7SUE2QjFCLFlBQ1UsUUFBbUIsRUFDbkIsU0FBdUI7UUFEdkIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixjQUFTLEdBQVQsU0FBUyxDQUFjO1FBOUJqQixxQkFBZ0IsR0FBRyxLQUFLLENBQUE7UUFDeEIsY0FBUyxHQUFHLFdBQVcsQ0FBQTtRQUN2QixlQUFVLEdBQUcsV0FBVyxDQUFBO1FBQ3hCLGFBQVEsR0FBRyxRQUFRLENBQUE7UUFDbkIsZ0JBQVcsR0FBc0IsUUFBUSxDQUFBO1FBRWxELHlCQUFvQixHQUErQixHQUFHLENBQUE7UUFJN0MsV0FBTSxHQUFHLENBQUMsQ0FBQTtRQUNWLFdBQU0sR0FBRyxFQUFFLENBQUE7UUFDWCxVQUFLLEdBQUcsQ0FBQyxDQUFBO1FBRVQsVUFBSyxHQUFHLEVBQUUsQ0FBQTtRQU9oQixjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQTtRQUkxQyxZQUFPLEdBQW9DLElBQUksQ0FBQTtJQU1uRCxDQUFDO0lBRUcsS0FBSyxDQUFDLFdBQVc7UUFDdEIsTUFBTSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUE7SUFDM0IsQ0FBQztJQUVTLGlCQUFpQixDQUFDLElBQW1CO1FBQzdDLElBQUksSUFBSSxDQUFDLGdCQUFnQixLQUFLLEtB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VSxPQUFPO3NCQUF0QixLQUFLO2dCQUNVLEtBQUs7c0JBQXBCLEtBQUs7Z0JBR1UsR0FBRztzQkFBbEIsS0FBSztnQkFDVSxTQUFTO3NCQUF4QixLQUFLO2dCQUNVLEtBQUs7c0JBQXBCLEtBQUs7Z0JBRUksU0FBUztzQkFBbEIsTUFBTTtnQkFFMkMsVUFBVTtzQkFBM0QsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgVmlld0NoaWxkLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVVcmwgfSBmcm9tIFwiQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3NlclwiXG5pbXBvcnQge1xuICBRUkNvZGVSZW5kZXJlcnNPcHRpb25zLFxuICBRUkNvZGVUb0RhdGFVUkxPcHRpb25zLFxuICBRUkNvZGVUb1N0cmluZ09wdGlvbnMsXG4gIHRvQ2FudmFzLFxuICB0b0RhdGFVUkwsXG4gIHRvU3RyaW5nLFxufSBmcm9tIFwicXJjb2RlXCJcbmltcG9ydCB7XG4gIFFSQ29kZVZlcnNpb24sXG4gIFFSQ29kZUVsZW1lbnRUeXBlLFxuICBGaXhNZUxhdGVyLFxuICBRUkNvZGVDb25maWdUeXBlLFxuICBRUkNvZGVFcnJvckNvcnJlY3Rpb25MZXZlbCxcbn0gZnJvbSBcIi4vdHlwZXNcIlxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwicXJjb2RlXCIsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogYDxkaXYgI3FyY0VsZW1lbnQgW2NsYXNzXT1cImNzc0NsYXNzXCI+PC9kaXY+YCxcbn0pXG5leHBvcnQgY2xhc3MgUVJDb2RlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgcHVibGljIGFsbG93RW1wdHlTdHJpbmcgPSBmYWxzZVxuICBASW5wdXQoKSBwdWJsaWMgY29sb3JEYXJrID0gXCIjMDAwMDAwZmZcIlxuICBASW5wdXQoKSBwdWJsaWMgY29sb3JMaWdodCA9IFwiI2ZmZmZmZmZmXCJcbiAgQElucHV0KCkgcHVibGljIGNzc0NsYXNzID0gXCJxcmNvZGVcIlxuICBASW5wdXQoKSBwdWJsaWMgZWxlbWVudFR5cGU6IFFSQ29kZUVsZW1lbnRUeXBlID0gXCJjYW52YXNcIlxuICBASW5wdXQoKVxuICBwdWJsaWMgZXJyb3JDb3JyZWN0aW9uTGV2ZWw6IFFSQ29kZUVycm9yQ29ycmVjdGlvbkxldmVsID0gXCJNXCJcbiAgQElucHV0KCkgcHVibGljIGltYWdlU3JjPzogc3RyaW5nXG4gIEBJbnB1dCgpIHB1YmxpYyBpbWFnZUhlaWdodD86IG51bWJlclxuICBASW5wdXQoKSBwdWJsaWMgaW1hZ2VXaWR0aD86IG51bWJlclxuICBASW5wdXQoKSBwdWJsaWMgbWFyZ2luID0gNFxuICBASW5wdXQoKSBwdWJsaWMgcXJkYXRhID0gXCJcIlxuICBASW5wdXQoKSBwdWJsaWMgc2NhbGUgPSA0XG4gIEBJbnB1dCgpIHB1YmxpYyB2ZXJzaW9uPzogUVJDb2RlVmVyc2lvblxuICBASW5wdXQoKSBwdWJsaWMgd2lkdGggPSAxMFxuXG4gIC8vIEFjY2Vzc2liaWxpdHkgZmVhdHVyZXMgaW50cm9kdWNlZCBpbiAxMy4wLjQrXG4gIEBJbnB1dCgpIHB1YmxpYyBhbHQ/OiBzdHJpbmdcbiAgQElucHV0KCkgcHVibGljIGFyaWFMYWJlbD86IHN0cmluZ1xuICBASW5wdXQoKSBwdWJsaWMgdGl0bGU/OiBzdHJpbmdcblxuICBAT3V0cHV0KCkgcXJDb2RlVVJMID0gbmV3IEV2ZW50RW1pdHRlcjxTYWZlVXJsPigpXG5cbiAgQFZpZXdDaGlsZChcInFyY0VsZW1lbnRcIiwgeyBzdGF0aWM6IHRydWUgfSkgcHVibGljIHFyY0VsZW1lbnQhOiBFbGVtZW50UmVmXG5cbiAgcHVibGljIGNvbnRleHQ6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCB8IG51bGwgPSBudWxsXG4gIHByaXZhdGUgY2VudGVySW1hZ2U/OiBIVE1MSW1hZ2VFbGVtZW50XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXJcbiAgKSB7fVxuXG4gIHB1YmxpYyBhc3luYyBuZ09uQ2hhbmdlcygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmNyZWF0ZVFSQ29kZSgpXG4gIH1cblxuICBwcm90ZWN0ZWQgaXNWYWxpZFFyQ29kZVRleHQoZGF0YTogc3RyaW5nIHwgbnVsbCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmFsbG93RW1wdHlTdHJpbmcgPT09IGZhbHNlKSB7XG4gICAgICByZXR1cm4gIShcbiAgICAgICAgdHlwZW9mIGRhdGEgPT09IFwidW5kZWZpbmVkXCIgfHxcbiAgICAgICAgZGF0YSA9PT0gXCJcIiB8fFxuICAgICAgICBkYXRhID09PSBcIm51bGxcIiB8fFxuICAgICAgICBkYXRhID09PSBudWxsXG4gICAgICApXG4gICAgfVxuICAgIHJldHVybiAhKHR5cGVvZiBkYXRhID09PSBcInVuZGVmaW5lZFwiKVxuICB9XG5cbiAgcHJpdmF0ZSB0b0RhdGFVUkwocXJDb2RlQ29uZmlnOiBRUkNvZGVUb0RhdGFVUkxPcHRpb25zKTogUHJvbWlzZTxGaXhNZUxhdGVyPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKFxuICAgICAgKFxuICAgICAgICByZXNvbHZlOiAoYXJnOiBGaXhNZUxhdGVyKSA9PiBGaXhNZUxhdGVyLFxuICAgICAgICByZWplY3Q6IChhcmc6IEZpeE1lTGF0ZXIpID0+IEZpeE1lTGF0ZXJcbiAgICAgICkgPT4ge1xuICAgICAgICB0b0RhdGFVUkwoXG4gICAgICAgICAgdGhpcy5xcmRhdGEsXG4gICAgICAgICAgcXJDb2RlQ29uZmlnLFxuICAgICAgICAgIChlcnI6IEVycm9yIHwgbnVsbCB8IHVuZGVmaW5lZCwgdXJsOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgcmVqZWN0KGVycilcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJlc29sdmUodXJsKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgICAgfVxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgdG9DYW52YXMoXG4gICAgY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCxcbiAgICBxckNvZGVDb25maWc6IFFSQ29kZVJlbmRlcmVyc09wdGlvbnNcbiAgKTogUHJvbWlzZTxGaXhNZUxhdGVyPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKFxuICAgICAgKFxuICAgICAgICByZXNvbHZlOiAoYXJnOiBGaXhNZUxhdGVyKSA9PiBGaXhNZUxhdGVyLFxuICAgICAgICByZWplY3Q6IChhcmc6IEZpeE1lTGF0ZXIpID0+IEZpeE1lTGF0ZXJcbiAgICAgICkgPT4ge1xuICAgICAgICB0b0NhbnZhcyhcbiAgICAgICAgICBjYW52YXMsXG4gICAgICAgICAgdGhpcy5xcmRhdGEsXG4gICAgICAgICAgcXJDb2RlQ29uZmlnLFxuICAgICAgICAgIChlcnJvcjogRXJyb3IgfCBudWxsIHwgdW5kZWZpbmVkKSA9PiB7XG4gICAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmVzb2x2ZShcInN1Y2Nlc3NcIilcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIClcbiAgICAgIH1cbiAgICApXG4gIH1cblxuICBwcml2YXRlIHRvU1ZHKHFyQ29kZUNvbmZpZzogUVJDb2RlVG9TdHJpbmdPcHRpb25zKTogUHJvbWlzZTxGaXhNZUxhdGVyPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKFxuICAgICAgKFxuICAgICAgICByZXNvbHZlOiAoYXJnOiBGaXhNZUxhdGVyKSA9PiBGaXhNZUxhdGVyLFxuICAgICAgICByZWplY3Q6IChhcmc6IEZpeE1lTGF0ZXIpID0+IEZpeE1lTGF0ZXJcbiAgICAgICkgPT4ge1xuICAgICAgICB0b1N0cmluZyhcbiAgICAgICAgICB0aGlzLnFyZGF0YSxcbiAgICAgICAgICBxckNvZGVDb25maWcsXG4gICAgICAgICAgKGVycjogRXJyb3IgfCBudWxsIHwgdW5kZWZpbmVkLCB1cmw6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICByZWplY3QoZXJyKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmVzb2x2ZSh1cmwpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICApXG4gICAgICB9XG4gICAgKVxuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJFbGVtZW50KGVsZW1lbnQ6IEVsZW1lbnQpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IG5vZGUgb2YgdGhpcy5xcmNFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcykge1xuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLnFyY0VsZW1lbnQubmF0aXZlRWxlbWVudCwgbm9kZSlcbiAgICB9XG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLnFyY0VsZW1lbnQubmF0aXZlRWxlbWVudCwgZWxlbWVudClcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY3JlYXRlUVJDb2RlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIFNldCBzZW5zaXRpdmUgZGVmYXVsdHNcbiAgICBpZiAodGhpcy52ZXJzaW9uICYmIHRoaXMudmVyc2lvbiA+IDQwKSB7XG4gICAgICBjb25zb2xlLndhcm4oXCJbYW5ndWxhcngtcXJjb2RlXSBtYXggdmFsdWUgZm9yIGB2ZXJzaW9uYCBpcyA0MFwiKVxuICAgICAgdGhpcy52ZXJzaW9uID0gNDBcbiAgICB9IGVsc2UgaWYgKHRoaXMudmVyc2lvbiAmJiB0aGlzLnZlcnNpb24gPCAxKSB7XG4gICAgICBjb25zb2xlLndhcm4oXCJbYW5ndWxhcngtcXJjb2RlXWBtaW4gdmFsdWUgZm9yIGB2ZXJzaW9uYCBpcyAxXCIpXG4gICAgICB0aGlzLnZlcnNpb24gPSAxXG4gICAgfSBlbHNlIGlmICh0aGlzLnZlcnNpb24gIT09IHVuZGVmaW5lZCAmJiBpc05hTih0aGlzLnZlcnNpb24pKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIFwiW2FuZ3VsYXJ4LXFyY29kZV0gdmVyc2lvbiBzaG91bGQgYmUgYSBudW1iZXIsIGRlZmF1bHRpbmcgdG8gYXV0by5cIlxuICAgICAgKVxuICAgICAgdGhpcy52ZXJzaW9uID0gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGlmICghdGhpcy5pc1ZhbGlkUXJDb2RlVGV4dCh0aGlzLnFyZGF0YSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIFwiW2FuZ3VsYXJ4LXFyY29kZV0gRmllbGQgYHFyZGF0YWAgaXMgZW1wdHksIHNldCAnYWxsb3dFbXB0eVN0cmluZz1cXFwidHJ1ZVxcXCInIHRvIG92ZXJ3cml0ZSB0aGlzIGJlaGF2aW91ci5cIlxuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIC8vIFRoaXMgaXMgYSB3b3JrYXJvdW5kIHRvIGFsbG93IGFuIGVtcHR5IHN0cmluZyBhcyBxcmRhdGFcbiAgICAgIGlmICh0aGlzLmlzVmFsaWRRckNvZGVUZXh0KHRoaXMucXJkYXRhKSAmJiB0aGlzLnFyZGF0YSA9PT0gXCJcIikge1xuICAgICAgICB0aGlzLnFyZGF0YSA9IFwiIFwiXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNvbmZpZzogUVJDb2RlQ29uZmlnVHlwZSA9IHtcbiAgICAgICAgY29sb3I6IHtcbiAgICAgICAgICBkYXJrOiB0aGlzLmNvbG9yRGFyayxcbiAgICAgICAgICBsaWdodDogdGhpcy5jb2xvckxpZ2h0LFxuICAgICAgICB9LFxuICAgICAgICBlcnJvckNvcnJlY3Rpb25MZXZlbDogdGhpcy5lcnJvckNvcnJlY3Rpb25MZXZlbCxcbiAgICAgICAgbWFyZ2luOiB0aGlzLm1hcmdpbixcbiAgICAgICAgc2NhbGU6IHRoaXMuc2NhbGUsXG4gICAgICAgIHZlcnNpb246IHRoaXMudmVyc2lvbixcbiAgICAgICAgd2lkdGg6IHRoaXMud2lkdGgsXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNlbnRlckltYWdlU3JjID0gdGhpcy5pbWFnZVNyY1xuICAgICAgY29uc3QgY2VudGVySW1hZ2VIZWlnaHQgPSB0aGlzLmltYWdlSGVpZ2h0IHx8IDQwXG4gICAgICBjb25zdCBjZW50ZXJJbWFnZVdpZHRoID0gdGhpcy5pbWFnZVdpZHRoIHx8IDQwXG5cbiAgICAgIHN3aXRjaCAodGhpcy5lbGVtZW50VHlwZSkge1xuICAgICAgICBjYXNlIFwiY2FudmFzXCI6IHtcbiAgICAgICAgICBjb25zdCBjYW52YXNFbGVtZW50OiBIVE1MQ2FudmFzRWxlbWVudCA9XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoXCJjYW52YXNcIilcbiAgICAgICAgICB0aGlzLmNvbnRleHQgPSBjYW52YXNFbGVtZW50LmdldENvbnRleHQoXCIyZFwiKVxuICAgICAgICAgIHRoaXMudG9DYW52YXMoY2FudmFzRWxlbWVudCwgY29uZmlnKVxuICAgICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICBpZiAodGhpcy5hcmlhTGFiZWwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShcbiAgICAgICAgICAgICAgICAgIGNhbnZhc0VsZW1lbnQsXG4gICAgICAgICAgICAgICAgICBcImFyaWEtbGFiZWxcIixcbiAgICAgICAgICAgICAgICAgIGAke3RoaXMuYXJpYUxhYmVsfWBcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKHRoaXMudGl0bGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShcbiAgICAgICAgICAgICAgICAgIGNhbnZhc0VsZW1lbnQsXG4gICAgICAgICAgICAgICAgICBcInRpdGxlXCIsXG4gICAgICAgICAgICAgICAgICBgJHt0aGlzLnRpdGxlfWBcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBpZiAoY2VudGVySW1hZ2VTcmMgJiYgdGhpcy5jb250ZXh0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jZW50ZXJJbWFnZSA9IG5ldyBJbWFnZShcbiAgICAgICAgICAgICAgICAgIGNlbnRlckltYWdlV2lkdGgsXG4gICAgICAgICAgICAgICAgICBjZW50ZXJJbWFnZUhlaWdodFxuICAgICAgICAgICAgICAgIClcblxuICAgICAgICAgICAgICAgIGlmIChjZW50ZXJJbWFnZVNyYyAhPT0gdGhpcy5jZW50ZXJJbWFnZS5zcmMpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuY2VudGVySW1hZ2Uuc3JjID0gY2VudGVySW1hZ2VTcmNcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoY2VudGVySW1hZ2VIZWlnaHQgIT09IHRoaXMuY2VudGVySW1hZ2UuaGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLmNlbnRlckltYWdlLmhlaWdodCA9IGNlbnRlckltYWdlSGVpZ2h0XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGNlbnRlckltYWdlV2lkdGggIT09IHRoaXMuY2VudGVySW1hZ2Uud2lkdGgpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuY2VudGVySW1hZ2Uud2lkdGggPSBjZW50ZXJJbWFnZVdpZHRoXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgY2VudGVySW1hZ2UgPSB0aGlzLmNlbnRlckltYWdlXG5cbiAgICAgICAgICAgICAgICBpZiAoY2VudGVySW1hZ2UpIHtcbiAgICAgICAgICAgICAgICAgIGNlbnRlckltYWdlLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250ZXh0Py5kcmF3SW1hZ2UoXG4gICAgICAgICAgICAgICAgICAgICAgY2VudGVySW1hZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgY2FudmFzRWxlbWVudC53aWR0aCAvIDIgLSBjZW50ZXJJbWFnZVdpZHRoIC8gMixcbiAgICAgICAgICAgICAgICAgICAgICBjYW52YXNFbGVtZW50LmhlaWdodCAvIDIgLSBjZW50ZXJJbWFnZUhlaWdodCAvIDIsXG4gICAgICAgICAgICAgICAgICAgICAgY2VudGVySW1hZ2VXaWR0aCxcbiAgICAgICAgICAgICAgICAgICAgICBjZW50ZXJJbWFnZUhlaWdodFxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgdGhpcy5yZW5kZXJFbGVtZW50KGNhbnZhc0VsZW1lbnQpXG4gICAgICAgICAgICAgIHRoaXMuZW1pdFFSQ29kZVVSTChjYW52YXNFbGVtZW50IGFzIEhUTUxDYW52YXNFbGVtZW50KVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiW2FuZ3VsYXJ4LXFyY29kZV0gY2FudmFzIGVycm9yOlwiLCBlKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgXCJzdmdcIjoge1xuICAgICAgICAgIGNvbnN0IHN2Z1BhcmVudEVsZW1lbnQ6IEhUTUxFbGVtZW50ID1cbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudChcImRpdlwiKVxuICAgICAgICAgIHRoaXMudG9TVkcoY29uZmlnKVxuICAgICAgICAgICAgLnRoZW4oKHN2Z1N0cmluZzogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkoXG4gICAgICAgICAgICAgICAgc3ZnUGFyZW50RWxlbWVudCxcbiAgICAgICAgICAgICAgICBcImlubmVySFRNTFwiLFxuICAgICAgICAgICAgICAgIHN2Z1N0cmluZ1xuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIGNvbnN0IHN2Z0VsZW1lbnQgPSBzdmdQYXJlbnRFbGVtZW50LmZpcnN0Q2hpbGQgYXMgU1ZHU1ZHRWxlbWVudFxuICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShzdmdFbGVtZW50LCBcImhlaWdodFwiLCBgJHt0aGlzLndpZHRofWApXG4gICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHN2Z0VsZW1lbnQsIFwid2lkdGhcIiwgYCR7dGhpcy53aWR0aH1gKVxuICAgICAgICAgICAgICB0aGlzLnJlbmRlckVsZW1lbnQoc3ZnRWxlbWVudClcbiAgICAgICAgICAgICAgdGhpcy5lbWl0UVJDb2RlVVJMKHN2Z0VsZW1lbnQpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNhdGNoKChlKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJbYW5ndWxhcngtcXJjb2RlXSBzdmcgZXJyb3I6XCIsIGUpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBcInVybFwiOlxuICAgICAgICBjYXNlIFwiaW1nXCI6XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICBjb25zdCBpbWdFbGVtZW50OiBIVE1MSW1hZ2VFbGVtZW50ID1cbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudChcImltZ1wiKVxuICAgICAgICAgIHRoaXMudG9EYXRhVVJMKGNvbmZpZylcbiAgICAgICAgICAgIC50aGVuKChkYXRhVXJsOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHRoaXMuYWx0KSB7XG4gICAgICAgICAgICAgICAgaW1nRWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJhbHRcIiwgdGhpcy5hbHQpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKHRoaXMuYXJpYUxhYmVsKSB7XG4gICAgICAgICAgICAgICAgaW1nRWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJhcmlhLWxhYmVsXCIsIHRoaXMuYXJpYUxhYmVsKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGltZ0VsZW1lbnQuc2V0QXR0cmlidXRlKFwic3JjXCIsIGRhdGFVcmwpXG4gICAgICAgICAgICAgIGlmICh0aGlzLnRpdGxlKSB7XG4gICAgICAgICAgICAgICAgaW1nRWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJ0aXRsZVwiLCB0aGlzLnRpdGxlKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHRoaXMucmVuZGVyRWxlbWVudChpbWdFbGVtZW50KVxuICAgICAgICAgICAgICB0aGlzLmVtaXRRUkNvZGVVUkwoaW1nRWxlbWVudClcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIlthbmd1bGFyeC1xcmNvZGVdIGltZy91cmwgZXJyb3I6XCIsIGUpXG4gICAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZTogRml4TWVMYXRlcikge1xuICAgICAgY29uc29sZS5lcnJvcihcIlthbmd1bGFyeC1xcmNvZGVdIEVycm9yIGdlbmVyYXRpbmcgUVIgQ29kZTpcIiwgZS5tZXNzYWdlKVxuICAgIH1cbiAgfVxuXG4gIGVtaXRRUkNvZGVVUkwoZWxlbWVudDogSFRNTENhbnZhc0VsZW1lbnQgfCBIVE1MSW1hZ2VFbGVtZW50IHwgU1ZHU1ZHRWxlbWVudCkge1xuICAgIGNvbnN0IGNsYXNzTmFtZSA9IGVsZW1lbnQuY29uc3RydWN0b3IubmFtZVxuICAgIGlmIChjbGFzc05hbWUgPT09IFNWR1NWR0VsZW1lbnQubmFtZSkge1xuICAgICAgY29uc3Qgc3ZnSFRNTCA9IGVsZW1lbnQub3V0ZXJIVE1MXG4gICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW3N2Z0hUTUxdLCB7IHR5cGU6IFwiaW1hZ2Uvc3ZnK3htbFwiIH0pXG4gICAgICBjb25zdCB1cmxTdmcgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpXG4gICAgICBjb25zdCB1cmxTYW5pdGl6ZWQgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0VXJsKHVybFN2ZylcbiAgICAgIHRoaXMucXJDb2RlVVJMLmVtaXQodXJsU2FuaXRpemVkKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgbGV0IHVybEltYWdlID0gXCJcIlxuXG4gICAgaWYgKGNsYXNzTmFtZSA9PT0gSFRNTENhbnZhc0VsZW1lbnQubmFtZSkge1xuICAgICAgdXJsSW1hZ2UgPSAoZWxlbWVudCBhcyBIVE1MQ2FudmFzRWxlbWVudCkudG9EYXRhVVJMKFwiaW1hZ2UvcG5nXCIpXG4gICAgfVxuXG4gICAgaWYgKGNsYXNzTmFtZSA9PT0gSFRNTEltYWdlRWxlbWVudC5uYW1lKSB7XG4gICAgICB1cmxJbWFnZSA9IChlbGVtZW50IGFzIEhUTUxJbWFnZUVsZW1lbnQpLnNyY1xuICAgIH1cblxuICAgIGZldGNoKHVybEltYWdlKVxuICAgICAgLnRoZW4oKHVybFJlc3BvbnNlOiBSZXNwb25zZSkgPT4gdXJsUmVzcG9uc2UuYmxvYigpKVxuICAgICAgLnRoZW4oKGJsb2I6IEJsb2IpID0+IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYikpXG4gICAgICAudGhlbigodXJsOiBzdHJpbmcpID0+IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RVcmwodXJsKSlcbiAgICAgIC50aGVuKCh1cmxTYW5pdGl6ZWQ6IFNhZmVVcmwpID0+IHtcbiAgICAgICAgdGhpcy5xckNvZGVVUkwuZW1pdCh1cmxTYW5pdGl6ZWQpXG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIFwiW2FuZ3VsYXJ4LXFyY29kZV0gRXJyb3Igd2hlbiBmZXRjaGluZyBpbWFnZS9wbmcgVVJMOiBcIiArIGVycm9yXG4gICAgICAgIClcbiAgICAgIH0pXG4gIH1cbn1cbiJdfQ==
export {};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyeC1xcmNvZGUvc3JjL2xpYi90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgUVJDb2RlRXJyb3JDb3JyZWN0aW9uTGV2ZWwgPVxuICB8IFwiTFwiXG4gIHwgXCJNXCJcbiAgfCBcIlFcIlxuICB8IFwiSFwiXG4gIHwgXCJsb3dcIlxuICB8IFwibWVkaXVtXCJcbiAgfCBcInF1YXJ0aWxlXCJcbiAgfCBcImhpZ2hcIlxuXG5leHBvcnQgaW50ZXJmYWNlIFFSQ29kZUNvbmZpZ1R5cGUge1xuICBjb2xvcjoge1xuICAgIGRhcms6IHN0cmluZ1xuICAgIGxpZ2h0OiBzdHJpbmdcbiAgfVxuICBlcnJvckNvcnJlY3Rpb25MZXZlbDogUVJDb2RlRXJyb3JDb3JyZWN0aW9uTGV2ZWxcbiAgbWFyZ2luOiBudW1iZXJcbiAgc2NhbGU6IG51bWJlclxuICB2ZXJzaW9uOiBRUkNvZGVWZXJzaW9uIHwgdW5kZWZpbmVkXG4gIHdpZHRoOiBudW1iZXJcbn1cblxuZXhwb3J0IHR5cGUgUVJDb2RlRWxlbWVudFR5cGUgPSBcInVybFwiIHwgXCJpbWdcIiB8IFwiY2FudmFzXCIgfCBcInN2Z1wiXG5cbmV4cG9ydCB0eXBlIFFSQ29kZVZlcnNpb24gPVxuICB8IDBcbiAgfCAxXG4gIHwgMlxuICB8IDNcbiAgfCA0XG4gIHwgNVxuICB8IDZcbiAgfCA3XG4gIHwgOFxuICB8IDlcbiAgfCAxMFxuICB8IDExXG4gIHwgMTJcbiAgfCAxM1xuICB8IDE0XG4gIHwgMTVcbiAgfCAxNlxuICB8IDE3XG4gIHwgMThcbiAgfCAxOVxuICB8IDIwXG4gIHwgMjFcbiAgfCAyMlxuICB8IDIzXG4gIHwgMjRcbiAgfCAyNVxuICB8IDI2XG4gIHwgMjdcbiAgfCAyOFxuICB8IDI5XG4gIHwgMzBcbiAgfCAzMVxuICB8IDMyXG4gIHwgMzNcbiAgfCAzNFxuICB8IDM1XG4gIHwgMzZcbiAgfCAzN1xuICB8IDM4XG4gIHwgMzlcbiAgfCA0MFxuXG4vLyBUT0RPIEEgbGl0dGxlLWJpdC1vZi1hLWJldHRlciBzb2x1dGlvblxuLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzY3NTExMjA5XG5leHBvcnQgdHlwZSBSR0JBQ29sb3IgPSBgIyR7c3RyaW5nfWBcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lICBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5leHBvcnQgdHlwZSBGaXhNZUxhdGVyID0gYW55XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyeC1xcmNvZGUvc3JjL2xpYi90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgUVJDb2RlRXJyb3JDb3JyZWN0aW9uTGV2ZWwgPVxuICB8IFwiTFwiXG4gIHwgXCJNXCJcbiAgfCBcIlFcIlxuICB8IFwiSFwiXG4gIHwgXCJsb3dcIlxuICB8IFwibWVkaXVtXCJcbiAgfCBcInF1YXJ0aWxlXCJcbiAgfCBcImhpZ2hcIlxuXG5leHBvcnQgaW50ZXJmYWNlIFFSQ29kZUNvbmZpZ1R5cGUge1xuICBjb2xvcjoge1xuICAgIGRhcms6IHN0cmluZ1xuICAgIGxpZ2h0OiBzdHJpbmdcbiAgfVxuICBlcnJvckNvcnJlY3Rpb25MZXZlbDogUVJDb2RlRXJyb3JDb3JyZWN0aW9uTGV2ZWxcbiAgbWFyZ2luOiBudW1iZXJcbiAgc2NhbGU6IG51bWJlclxuICB2ZXJzaW9uPzogUVJDb2RlVmVyc2lvblxuICB3aWR0aDogbnVtYmVyXG59XG5cbmV4cG9ydCB0eXBlIFFSQ29kZUVsZW1lbnRUeXBlID0gXCJ1cmxcIiB8IFwiaW1nXCIgfCBcImNhbnZhc1wiIHwgXCJzdmdcIlxuXG5leHBvcnQgdHlwZSBRUkNvZGVWZXJzaW9uID1cbiAgfCAwXG4gIHwgMVxuICB8IDJcbiAgfCAzXG4gIHwgNFxuICB8IDVcbiAgfCA2XG4gIHwgN1xuICB8IDhcbiAgfCA5XG4gIHwgMTBcbiAgfCAxMVxuICB8IDEyXG4gIHwgMTNcbiAgfCAxNFxuICB8IDE1XG4gIHwgMTZcbiAgfCAxN1xuICB8IDE4XG4gIHwgMTlcbiAgfCAyMFxuICB8IDIxXG4gIHwgMjJcbiAgfCAyM1xuICB8IDI0XG4gIHwgMjVcbiAgfCAyNlxuICB8IDI3XG4gIHwgMjhcbiAgfCAyOVxuICB8IDMwXG4gIHwgMzFcbiAgfCAzMlxuICB8IDMzXG4gIHwgMzRcbiAgfCAzNVxuICB8IDM2XG4gIHwgMzdcbiAgfCAzOFxuICB8IDM5XG4gIHwgNDBcblxuLy8gVE9ETyBBIGxpdHRsZS1iaXQtb2YtYS1iZXR0ZXIgc29sdXRpb25cbi8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS82NzUxMTIwOVxuZXhwb3J0IHR5cGUgUkdCQUNvbG9yID0gYCMke3N0cmluZ31gXG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSAgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuZXhwb3J0IHR5cGUgRml4TWVMYXRlciA9IGFueVxuIl19

@@ -1,1 +0,1 @@

{"version":3,"file":"angularx-qrcode.mjs","sources":["../../../projects/angularx-qrcode/src/lib/angularx-qrcode.component.ts","../../../projects/angularx-qrcode/src/lib/angularx-qrcode.module.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n Renderer2,\n ViewChild,\n} from \"@angular/core\"\nimport { DomSanitizer, SafeUrl } from \"@angular/platform-browser\"\nimport {\n QRCodeErrorCorrectionLevel,\n QRCodeRenderersOptions,\n QRCodeToDataURLOptions,\n QRCodeToStringOptions,\n toCanvas,\n toDataURL,\n toString,\n} from \"qrcode\"\nimport { QRCodeVersion, QRCodeElementType, FixMeLater } from \"./types\"\n\n@Component({\n selector: \"qrcode\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `<div #qrcElement [class]=\"cssClass\"></div>`,\n})\nexport class QRCodeComponent implements OnChanges {\n @Input() public allowEmptyString = false\n @Input() public colorDark = \"#000000ff\"\n @Input() public colorLight = \"#ffffffff\"\n @Input() public cssClass = \"qrcode\"\n @Input() public elementType: QRCodeElementType = \"canvas\"\n @Input()\n public errorCorrectionLevel: QRCodeErrorCorrectionLevel = \"M\"\n @Input() public imageSrc?: string\n @Input() public imageHeight?: number\n @Input() public imageWidth?: number\n @Input() public margin = 4\n @Input() public qrdata = \"\"\n @Input() public scale = 4\n @Input() public version?: QRCodeVersion\n @Input() public width = 10\n\n // Accessibility features introduced in 13.0.4+\n @Input() public alt?: string\n @Input() public ariaLabel?: string\n @Input() public title?: string\n\n @Output() qrCodeURL = new EventEmitter<SafeUrl>()\n\n @ViewChild(\"qrcElement\", { static: true }) public qrcElement!: ElementRef\n\n public context: CanvasRenderingContext2D | null = null\n private centerImage?: HTMLImageElement\n\n constructor(private renderer: Renderer2, private sanitizer: DomSanitizer) {}\n\n public async ngOnChanges(): Promise<void> {\n await this.createQRCode()\n }\n\n protected isValidQrCodeText(data: string | null): boolean {\n if (this.allowEmptyString === false) {\n return !(\n typeof data === \"undefined\" ||\n data === \"\" ||\n data === \"null\" ||\n data === null\n )\n }\n return !(typeof data === \"undefined\")\n }\n\n private toDataURL(qrCodeConfig: QRCodeToDataURLOptions): Promise<FixMeLater> {\n return new Promise(\n (\n resolve: (arg: FixMeLater) => FixMeLater,\n reject: (arg: FixMeLater) => FixMeLater\n ) => {\n toDataURL(\n this.qrdata,\n qrCodeConfig,\n (err: Error | null | undefined, url: string) => {\n if (err) {\n reject(err)\n } else {\n resolve(url)\n }\n }\n )\n }\n )\n }\n\n private toCanvas(\n canvas: HTMLCanvasElement,\n qrCodeConfig: QRCodeRenderersOptions\n ): Promise<FixMeLater> {\n return new Promise(\n (\n resolve: (arg: FixMeLater) => FixMeLater,\n reject: (arg: FixMeLater) => FixMeLater\n ) => {\n toCanvas(\n canvas,\n this.qrdata,\n qrCodeConfig,\n (error: Error | null | undefined) => {\n if (error) {\n reject(error)\n } else {\n resolve(\"success\")\n }\n }\n )\n }\n )\n }\n\n private toSVG(qrCodeConfig: QRCodeToStringOptions): Promise<FixMeLater> {\n return new Promise(\n (\n resolve: (arg: FixMeLater) => FixMeLater,\n reject: (arg: FixMeLater) => FixMeLater\n ) => {\n toString(\n this.qrdata,\n qrCodeConfig,\n (err: Error | null | undefined, url: string) => {\n if (err) {\n reject(err)\n } else {\n resolve(url)\n }\n }\n )\n }\n )\n }\n\n private renderElement(element: Element): void {\n for (const node of this.qrcElement.nativeElement.childNodes) {\n this.renderer.removeChild(this.qrcElement.nativeElement, node)\n }\n this.renderer.appendChild(this.qrcElement.nativeElement, element)\n }\n\n private async createQRCode(): Promise<void> {\n // Set sensitive defaults\n if (this.version && this.version > 40) {\n console.warn(\"[angularx-qrcode] max value for `version` is 40\")\n this.version = 40\n } else if (this.version && this.version < 1) {\n console.warn(\"[angularx-qrcode]`min value for `version` is 1\")\n this.version = 1\n } else if (this.version !== undefined && isNaN(this.version)) {\n console.warn(\n \"[angularx-qrcode] version should be a number, defaulting to auto.\"\n )\n this.version = undefined\n }\n\n try {\n if (!this.isValidQrCodeText(this.qrdata)) {\n throw new Error(\n \"[angularx-qrcode] Field `qrdata` is empty, set 'allowEmptyString=\\\"true\\\"' to overwrite this behaviour.\"\n )\n }\n\n // This is a workaround to allow an empty string as qrdata\n if (this.isValidQrCodeText(this.qrdata) && this.qrdata === \"\") {\n this.qrdata = \" \"\n }\n\n const config = {\n color: {\n dark: this.colorDark,\n light: this.colorLight,\n },\n errorCorrectionLevel: this.errorCorrectionLevel,\n margin: this.margin,\n scale: this.scale,\n version: this.version,\n width: this.width,\n }\n\n const centerImageSrc = this.imageSrc\n const centerImageHeight = this.imageHeight || 40\n const centerImageWidth = this.imageWidth || 40\n\n switch (this.elementType) {\n case \"canvas\": {\n const canvasElement: HTMLCanvasElement =\n this.renderer.createElement(\"canvas\")\n this.context = canvasElement.getContext(\"2d\")\n this.toCanvas(canvasElement, config)\n .then(() => {\n if (this.ariaLabel) {\n this.renderer.setAttribute(\n canvasElement,\n \"aria-label\",\n `${this.ariaLabel}`\n )\n }\n if (this.title) {\n this.renderer.setAttribute(\n canvasElement,\n \"title\",\n `${this.title}`\n )\n }\n\n if (centerImageSrc && this.context) {\n this.centerImage = new Image(\n centerImageWidth,\n centerImageHeight\n )\n\n if (centerImageSrc !== this.centerImage.src) {\n this.centerImage.src = centerImageSrc\n }\n\n if (centerImageHeight !== this.centerImage.height) {\n this.centerImage.height = centerImageHeight\n }\n\n if (centerImageWidth !== this.centerImage.width) {\n this.centerImage.width = centerImageWidth\n }\n\n const centerImage = this.centerImage\n\n if (centerImage) {\n centerImage.onload = () => {\n this.context?.drawImage(\n centerImage,\n canvasElement.width / 2 - centerImageWidth / 2,\n canvasElement.height / 2 - centerImageHeight / 2,\n centerImageWidth,\n centerImageHeight\n )\n }\n }\n }\n\n this.renderElement(canvasElement)\n this.emitQRCodeURL(canvasElement as HTMLCanvasElement)\n })\n .catch((e) => {\n console.error(\"[angularx-qrcode] canvas error:\", e)\n })\n break\n }\n case \"svg\": {\n const svgParentElement: HTMLElement =\n this.renderer.createElement(\"div\")\n this.toSVG(config)\n .then((svgString: string) => {\n this.renderer.setProperty(\n svgParentElement,\n \"innerHTML\",\n svgString\n )\n const svgElement = svgParentElement.firstChild as SVGSVGElement\n this.renderer.setAttribute(svgElement, \"height\", `${this.width}`)\n this.renderer.setAttribute(svgElement, \"width\", `${this.width}`)\n this.renderElement(svgElement)\n this.emitQRCodeURL(svgElement)\n })\n .catch((e) => {\n console.error(\"[angularx-qrcode] svg error:\", e)\n })\n break\n }\n case \"url\":\n case \"img\":\n default: {\n const imgElement: HTMLImageElement =\n this.renderer.createElement(\"img\")\n this.toDataURL(config)\n .then((dataUrl: string) => {\n if (this.alt) {\n imgElement.setAttribute(\"alt\", this.alt)\n }\n if (this.ariaLabel) {\n imgElement.setAttribute(\"aria-label\", this.ariaLabel)\n }\n imgElement.setAttribute(\"src\", dataUrl)\n if (this.title) {\n imgElement.setAttribute(\"title\", this.title)\n }\n this.renderElement(imgElement)\n this.emitQRCodeURL(imgElement)\n })\n .catch((e) => {\n console.error(\"[angularx-qrcode] img/url error:\", e)\n })\n }\n }\n } catch (e: FixMeLater) {\n console.error(\"[angularx-qrcode] Error generating QR Code:\", e.message)\n }\n }\n\n emitQRCodeURL(element: HTMLCanvasElement | HTMLImageElement | SVGSVGElement) {\n const className = element.constructor.name\n if (className === SVGSVGElement.name) {\n const svgHTML = element.outerHTML\n const blob = new Blob([svgHTML], { type: \"image/svg+xml\" })\n const urlSvg = URL.createObjectURL(blob)\n const urlSanitized = this.sanitizer.bypassSecurityTrustUrl(urlSvg)\n this.qrCodeURL.emit(urlSanitized)\n return\n }\n\n let urlImage = \"\"\n\n if (className === HTMLCanvasElement.name) {\n urlImage = (element as HTMLCanvasElement).toDataURL(\"image/png\")\n }\n\n if (className === HTMLImageElement.name) {\n urlImage = (element as HTMLImageElement).src\n }\n\n fetch(urlImage)\n .then((urlResponse: Response) => urlResponse.blob())\n .then((blob: Blob) => URL.createObjectURL(blob))\n .then((url: string) => this.sanitizer.bypassSecurityTrustUrl(url))\n .then((urlSanitized: SafeUrl) => {\n this.qrCodeURL.emit(urlSanitized)\n })\n .catch((error) => {\n console.error(\n \"[angularx-qrcode] Error when fetching image/png URL: \" + error\n )\n })\n }\n}\n","import { NgModule } from \"@angular/core\"\nimport { QRCodeComponent } from \"./angularx-qrcode.component\"\n\n@NgModule({\n providers: [],\n declarations: [QRCodeComponent],\n exports: [QRCodeComponent],\n})\nexport class QRCodeModule {}\n"],"names":[],"mappings":"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"}
{"version":3,"file":"angularx-qrcode.mjs","sources":["../../../projects/angularx-qrcode/src/lib/angularx-qrcode.component.ts","../../../projects/angularx-qrcode/src/lib/angularx-qrcode.module.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n Renderer2,\n ViewChild,\n} from \"@angular/core\"\nimport { DomSanitizer, SafeUrl } from \"@angular/platform-browser\"\nimport {\n QRCodeRenderersOptions,\n QRCodeToDataURLOptions,\n QRCodeToStringOptions,\n toCanvas,\n toDataURL,\n toString,\n} from \"qrcode\"\nimport {\n QRCodeVersion,\n QRCodeElementType,\n FixMeLater,\n QRCodeConfigType,\n QRCodeErrorCorrectionLevel,\n} from \"./types\"\n\n@Component({\n selector: \"qrcode\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `<div #qrcElement [class]=\"cssClass\"></div>`,\n})\nexport class QRCodeComponent implements OnChanges {\n @Input() public allowEmptyString = false\n @Input() public colorDark = \"#000000ff\"\n @Input() public colorLight = \"#ffffffff\"\n @Input() public cssClass = \"qrcode\"\n @Input() public elementType: QRCodeElementType = \"canvas\"\n @Input()\n public errorCorrectionLevel: QRCodeErrorCorrectionLevel = \"M\"\n @Input() public imageSrc?: string\n @Input() public imageHeight?: number\n @Input() public imageWidth?: number\n @Input() public margin = 4\n @Input() public qrdata = \"\"\n @Input() public scale = 4\n @Input() public version?: QRCodeVersion\n @Input() public width = 10\n\n // Accessibility features introduced in 13.0.4+\n @Input() public alt?: string\n @Input() public ariaLabel?: string\n @Input() public title?: string\n\n @Output() qrCodeURL = new EventEmitter<SafeUrl>()\n\n @ViewChild(\"qrcElement\", { static: true }) public qrcElement!: ElementRef\n\n public context: CanvasRenderingContext2D | null = null\n private centerImage?: HTMLImageElement\n\n constructor(\n private renderer: Renderer2,\n private sanitizer: DomSanitizer\n ) {}\n\n public async ngOnChanges(): Promise<void> {\n await this.createQRCode()\n }\n\n protected isValidQrCodeText(data: string | null): boolean {\n if (this.allowEmptyString === false) {\n return !(\n typeof data === \"undefined\" ||\n data === \"\" ||\n data === \"null\" ||\n data === null\n )\n }\n return !(typeof data === \"undefined\")\n }\n\n private toDataURL(qrCodeConfig: QRCodeToDataURLOptions): Promise<FixMeLater> {\n return new Promise(\n (\n resolve: (arg: FixMeLater) => FixMeLater,\n reject: (arg: FixMeLater) => FixMeLater\n ) => {\n toDataURL(\n this.qrdata,\n qrCodeConfig,\n (err: Error | null | undefined, url: string) => {\n if (err) {\n reject(err)\n } else {\n resolve(url)\n }\n }\n )\n }\n )\n }\n\n private toCanvas(\n canvas: HTMLCanvasElement,\n qrCodeConfig: QRCodeRenderersOptions\n ): Promise<FixMeLater> {\n return new Promise(\n (\n resolve: (arg: FixMeLater) => FixMeLater,\n reject: (arg: FixMeLater) => FixMeLater\n ) => {\n toCanvas(\n canvas,\n this.qrdata,\n qrCodeConfig,\n (error: Error | null | undefined) => {\n if (error) {\n reject(error)\n } else {\n resolve(\"success\")\n }\n }\n )\n }\n )\n }\n\n private toSVG(qrCodeConfig: QRCodeToStringOptions): Promise<FixMeLater> {\n return new Promise(\n (\n resolve: (arg: FixMeLater) => FixMeLater,\n reject: (arg: FixMeLater) => FixMeLater\n ) => {\n toString(\n this.qrdata,\n qrCodeConfig,\n (err: Error | null | undefined, url: string) => {\n if (err) {\n reject(err)\n } else {\n resolve(url)\n }\n }\n )\n }\n )\n }\n\n private renderElement(element: Element): void {\n for (const node of this.qrcElement.nativeElement.childNodes) {\n this.renderer.removeChild(this.qrcElement.nativeElement, node)\n }\n this.renderer.appendChild(this.qrcElement.nativeElement, element)\n }\n\n private async createQRCode(): Promise<void> {\n // Set sensitive defaults\n if (this.version && this.version > 40) {\n console.warn(\"[angularx-qrcode] max value for `version` is 40\")\n this.version = 40\n } else if (this.version && this.version < 1) {\n console.warn(\"[angularx-qrcode]`min value for `version` is 1\")\n this.version = 1\n } else if (this.version !== undefined && isNaN(this.version)) {\n console.warn(\n \"[angularx-qrcode] version should be a number, defaulting to auto.\"\n )\n this.version = undefined\n }\n\n try {\n if (!this.isValidQrCodeText(this.qrdata)) {\n throw new Error(\n \"[angularx-qrcode] Field `qrdata` is empty, set 'allowEmptyString=\\\"true\\\"' to overwrite this behaviour.\"\n )\n }\n\n // This is a workaround to allow an empty string as qrdata\n if (this.isValidQrCodeText(this.qrdata) && this.qrdata === \"\") {\n this.qrdata = \" \"\n }\n\n const config: QRCodeConfigType = {\n color: {\n dark: this.colorDark,\n light: this.colorLight,\n },\n errorCorrectionLevel: this.errorCorrectionLevel,\n margin: this.margin,\n scale: this.scale,\n version: this.version,\n width: this.width,\n }\n\n const centerImageSrc = this.imageSrc\n const centerImageHeight = this.imageHeight || 40\n const centerImageWidth = this.imageWidth || 40\n\n switch (this.elementType) {\n case \"canvas\": {\n const canvasElement: HTMLCanvasElement =\n this.renderer.createElement(\"canvas\")\n this.context = canvasElement.getContext(\"2d\")\n this.toCanvas(canvasElement, config)\n .then(() => {\n if (this.ariaLabel) {\n this.renderer.setAttribute(\n canvasElement,\n \"aria-label\",\n `${this.ariaLabel}`\n )\n }\n if (this.title) {\n this.renderer.setAttribute(\n canvasElement,\n \"title\",\n `${this.title}`\n )\n }\n\n if (centerImageSrc && this.context) {\n this.centerImage = new Image(\n centerImageWidth,\n centerImageHeight\n )\n\n if (centerImageSrc !== this.centerImage.src) {\n this.centerImage.src = centerImageSrc\n }\n\n if (centerImageHeight !== this.centerImage.height) {\n this.centerImage.height = centerImageHeight\n }\n\n if (centerImageWidth !== this.centerImage.width) {\n this.centerImage.width = centerImageWidth\n }\n\n const centerImage = this.centerImage\n\n if (centerImage) {\n centerImage.onload = () => {\n this.context?.drawImage(\n centerImage,\n canvasElement.width / 2 - centerImageWidth / 2,\n canvasElement.height / 2 - centerImageHeight / 2,\n centerImageWidth,\n centerImageHeight\n )\n }\n }\n }\n\n this.renderElement(canvasElement)\n this.emitQRCodeURL(canvasElement as HTMLCanvasElement)\n })\n .catch((e) => {\n console.error(\"[angularx-qrcode] canvas error:\", e)\n })\n break\n }\n case \"svg\": {\n const svgParentElement: HTMLElement =\n this.renderer.createElement(\"div\")\n this.toSVG(config)\n .then((svgString: string) => {\n this.renderer.setProperty(\n svgParentElement,\n \"innerHTML\",\n svgString\n )\n const svgElement = svgParentElement.firstChild as SVGSVGElement\n this.renderer.setAttribute(svgElement, \"height\", `${this.width}`)\n this.renderer.setAttribute(svgElement, \"width\", `${this.width}`)\n this.renderElement(svgElement)\n this.emitQRCodeURL(svgElement)\n })\n .catch((e) => {\n console.error(\"[angularx-qrcode] svg error:\", e)\n })\n break\n }\n case \"url\":\n case \"img\":\n default: {\n const imgElement: HTMLImageElement =\n this.renderer.createElement(\"img\")\n this.toDataURL(config)\n .then((dataUrl: string) => {\n if (this.alt) {\n imgElement.setAttribute(\"alt\", this.alt)\n }\n if (this.ariaLabel) {\n imgElement.setAttribute(\"aria-label\", this.ariaLabel)\n }\n imgElement.setAttribute(\"src\", dataUrl)\n if (this.title) {\n imgElement.setAttribute(\"title\", this.title)\n }\n this.renderElement(imgElement)\n this.emitQRCodeURL(imgElement)\n })\n .catch((e) => {\n console.error(\"[angularx-qrcode] img/url error:\", e)\n })\n }\n }\n } catch (e: FixMeLater) {\n console.error(\"[angularx-qrcode] Error generating QR Code:\", e.message)\n }\n }\n\n emitQRCodeURL(element: HTMLCanvasElement | HTMLImageElement | SVGSVGElement) {\n const className = element.constructor.name\n if (className === SVGSVGElement.name) {\n const svgHTML = element.outerHTML\n const blob = new Blob([svgHTML], { type: \"image/svg+xml\" })\n const urlSvg = URL.createObjectURL(blob)\n const urlSanitized = this.sanitizer.bypassSecurityTrustUrl(urlSvg)\n this.qrCodeURL.emit(urlSanitized)\n return\n }\n\n let urlImage = \"\"\n\n if (className === HTMLCanvasElement.name) {\n urlImage = (element as HTMLCanvasElement).toDataURL(\"image/png\")\n }\n\n if (className === HTMLImageElement.name) {\n urlImage = (element as HTMLImageElement).src\n }\n\n fetch(urlImage)\n .then((urlResponse: Response) => urlResponse.blob())\n .then((blob: Blob) => URL.createObjectURL(blob))\n .then((url: string) => this.sanitizer.bypassSecurityTrustUrl(url))\n .then((urlSanitized: SafeUrl) => {\n this.qrCodeURL.emit(urlSanitized)\n })\n .catch((error) => {\n console.error(\n \"[angularx-qrcode] Error when fetching image/png URL: \" + error\n )\n })\n }\n}\n","import { NgModule } from \"@angular/core\"\nimport { QRCodeComponent } from \"./angularx-qrcode.component\"\n\n@NgModule({\n providers: [],\n declarations: [QRCodeComponent],\n exports: [QRCodeComponent],\n})\nexport class QRCodeModule {}\n"],"names":[],"mappings":"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"}
import { ElementRef, EventEmitter, OnChanges, Renderer2 } from "@angular/core";
import { DomSanitizer, SafeUrl } from "@angular/platform-browser";
import { QRCodeErrorCorrectionLevel } from "qrcode";
import { QRCodeVersion, QRCodeElementType } from "./types";
import { QRCodeVersion, QRCodeElementType, QRCodeErrorCorrectionLevel } from "./types";
import * as i0 from "@angular/core";

@@ -6,0 +5,0 @@ export declare class QRCodeComponent implements OnChanges {

@@ -10,3 +10,3 @@ export type QRCodeErrorCorrectionLevel = "L" | "M" | "Q" | "H" | "low" | "medium" | "quartile" | "high";

scale: number;
version: QRCodeVersion | undefined;
version?: QRCodeVersion;
width: number;

@@ -13,0 +13,0 @@ }

{
"name": "angularx-qrcode",
"version": "17.0.0",
"version": "17.0.1",
"author": {

@@ -5,0 +5,0 @@ "name": "Andreas Jacob <andreas@cordobo.de>",

+28
-49

@@ -7,7 +7,7 @@ # angularx-qrcode - Angular QR Code Generator

- [Installation](#installation)
- [Usage](#usage)
- [Example Implementations](#examples)
- [Demo App](#demo-app)
- [Usage & Example Implementations](#usage-and-example-implementations)
- [Available Parameters](#available-parameters)
- [Demo](#demo)
- [Contribute](#contribute)
- [Sponsoring](#sponsoring)
- [License](#license)

@@ -52,37 +52,13 @@

**Angular 14 and Ionic with angularx-qrcode 14**
**Older supported angular versions**
```
# angular 14 and Ionic
npm install angularx-qrcode@14.0.0 --save
# Or with yarn
yarn add angularx-qrcode@14.0.0
```
**Angular 13 and Ionic with angularx-qrcode 13**
```
# angular 13 and Ionic
npm install angularx-qrcode@13.0.15 --save
# Or with yarn
yarn add angularx-qrcode@13.0.15
```
**Angular 12 and Ionic**
```
# angular 12 and Ionic
npm install angularx-qrcode@12.0.3 --save
# Or with yarn
yarn add angularx-qrcode@12.0.3
```
**Angular 11 and Ionic**
```
# angular 11 and Ionic
npm install angularx-qrcode@11.0.0 --save
# Or with yarn
yarn add angularx-qrcode@11.0.0
```
**Older supported angular versions**
```
# angular 10 and Ionic

@@ -100,4 +76,18 @@ npm install angularx-qrcode@10.0.12 --save

# Usage
# Demo App
**[Working online demo of Angular QR Code Generator](https://cordobo.github.io/angularx-qrcode/)**
The source for the demo angular app is available in [`projects/demo-app`](projects/demo-app). Run the command
```
npm start
```
and open the url `http://localhost:4200/` in your browser
# Usage and Example Implementations
The source for **[a live angularx-qrcode demo app](https://cordobo.github.io/angularx-qrcode/)** and more examples how to implement angularx-qrcode is in the folder [`projects/demo-app`](projects/demo-app/src/app) in this repository.
### Import the module and add it to your imports section in your main AppModule:

@@ -130,6 +120,2 @@

## Examples
The source for **[a live angularx-qrcode demo app](https://cordobo.github.io/angularx-qrcode/)** and more examples how to implement angularx-qrcode is in the folder [`projects/demo-app`](projects/demo-app/src/app) in this repository.
### Generate a QR Code from a string (directive only)

@@ -226,14 +212,2 @@

# Demo
**[Working online demo of Angular QR Code Generator](https://cordobo.github.io/angularx-qrcode/)**
The source for the angular app is available in [`projects/demo-app`](projects/demo-app). Run the command
```
ng serve demo-app --open
```
and open the url `http://localhost:4200/` in your browser
## AOT - Ahead Of Time Compilation

@@ -251,3 +225,8 @@

- Make sure your editor uses **prettier** to minimize commited code changes.
- You cannot contribute but want to support development? Consider a [sponsorship](https://github.com/sponsors/Cordobo).
## Sponsoring
Support the development of angularx-qrcode (or even see your logo here?), consider [sponsoring angularx-qrcode](https://github.com/sponsors/Cordobo). Your support is much appreciated!
## License

@@ -254,0 +233,0 @@