@senior-gestao-pessoas/payroll-core 9.6.1 → 9.7.0-feature-hcmgdp-11851-0d47b4a9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/senior-gestao-pessoas-payroll-core.umd.js +160 -14
- package/bundles/senior-gestao-pessoas-payroll-core.umd.js.map +1 -1
- package/bundles/senior-gestao-pessoas-payroll-core.umd.min.js +1 -1
- package/bundles/senior-gestao-pessoas-payroll-core.umd.min.js.map +1 -1
- package/components/historical-pix-account/historical-pix-account-form/historical-pix-account-form.component.d.ts +7 -1
- package/components/input-rest-auto-complete/input-rest-auto-complete.component.d.ts +1 -0
- package/components/utils/cnpj-validator.d.ts +5 -0
- package/components/utils/format-utils/format-utils.service.d.ts +3 -2
- package/components/utils/generic-validators.d.ts +6 -0
- package/esm2015/components/historical-pix-account/historical-pix-account-form/historical-pix-account-form.component.js +21 -6
- package/esm2015/components/input-rest-auto-complete/input-rest-auto-complete.component.js +10 -1
- package/esm2015/components/utils/cnpj-validator.js +54 -1
- package/esm2015/components/utils/format-utils/format-utils.service.js +23 -10
- package/esm2015/components/utils/generic-validators.js +57 -1
- package/esm5/components/historical-pix-account/historical-pix-account-form/historical-pix-account-form.component.js +21 -6
- package/esm5/components/input-rest-auto-complete/input-rest-auto-complete.component.js +10 -1
- package/esm5/components/utils/cnpj-validator.js +54 -1
- package/esm5/components/utils/format-utils/format-utils.service.js +23 -10
- package/esm5/components/utils/generic-validators.js +57 -1
- package/fesm2015/senior-gestao-pessoas-payroll-core.js +160 -14
- package/fesm2015/senior-gestao-pessoas-payroll-core.js.map +1 -1
- package/fesm5/senior-gestao-pessoas-payroll-core.js +160 -14
- package/fesm5/senior-gestao-pessoas-payroll-core.js.map +1 -1
- package/package.json +1 -1
- package/senior-gestao-pessoas-payroll-core.metadata.json +1 -1
|
@@ -58,6 +58,12 @@ var InputRestAutoCompleteComponent = /** @class */ (function () {
|
|
|
58
58
|
})
|
|
59
59
|
.subscribe(function (payload) { return _this.formaterResponce(payload.result); });
|
|
60
60
|
}
|
|
61
|
+
else if (this.isSituationDefinition) {
|
|
62
|
+
var params = { searchText: query };
|
|
63
|
+
return this.service
|
|
64
|
+
.query('autocompleteSituationDefinitionQuery', params, ServiceType.ORGANIZATION_REGISTER)
|
|
65
|
+
.subscribe(function (payload) { return _this.formaterResponce(payload.result); });
|
|
66
|
+
}
|
|
61
67
|
else if (this.isWagetype) {
|
|
62
68
|
var params = { searchText: query, companyId: this.companyId };
|
|
63
69
|
return this.service
|
|
@@ -289,6 +295,9 @@ var InputRestAutoCompleteComponent = /** @class */ (function () {
|
|
|
289
295
|
tslib_1.__decorate([
|
|
290
296
|
Input()
|
|
291
297
|
], InputRestAutoCompleteComponent.prototype, "isWagetype", void 0);
|
|
298
|
+
tslib_1.__decorate([
|
|
299
|
+
Input()
|
|
300
|
+
], InputRestAutoCompleteComponent.prototype, "isSituationDefinition", void 0);
|
|
292
301
|
tslib_1.__decorate([
|
|
293
302
|
Input()
|
|
294
303
|
], InputRestAutoCompleteComponent.prototype, "multiple", void 0);
|
|
@@ -314,4 +323,4 @@ var InputRestAutoCompleteComponent = /** @class */ (function () {
|
|
|
314
323
|
return InputRestAutoCompleteComponent;
|
|
315
324
|
}());
|
|
316
325
|
export { InputRestAutoCompleteComponent };
|
|
317
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcmVzdC1hdXRvLWNvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3ItZ2VzdGFvLXBlc3NvYXMvcGF5cm9sbC1jb3JlLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9pbnB1dC1yZXN0LWF1dG8tY29tcGxldGUvaW5wdXQtcmVzdC1hdXRvLWNvbXBsZXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNsRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFjM0Q7SUE2RUUsd0NBQW9CLE9BQXFDO1FBQXJDLFlBQU8sR0FBUCxPQUFPLENBQThCO1FBakR6RCxtQkFBYyxHQUFHLElBQUksQ0FBQztRQVF0QixZQUFPLEdBQUcsTUFBTSxDQUFDO1FBb0JqQixpQkFBWSxHQUFRLEVBQUUsQ0FBQztRQUV2QixjQUFTLEdBQVEsRUFBRSxDQUFDO1FBRXBCLDBCQUFxQixHQUFHLENBQUMsQ0FBQztRQUsxQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWpCLGdCQUFXLEdBQWdCLFdBQVcsQ0FBQyxPQUFPLENBQUM7UUFFL0MsV0FBTSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRS9DLGFBQVEsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVqRCxZQUFPLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFaEQsZ0JBQVcsR0FBVSxFQUFFLENBQUM7SUFFb0MsQ0FBQztJQUU3RCxpREFBUSxHQUFSLGNBQVksQ0FBQztJQUViLG9EQUFXLEdBQVgsVUFBWSxL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QUssRUFBRTttRUFDUztJQUVqQjtRQURDLEtBQUssRUFBRTttRUFDUztJQUVqQjtRQURDLEtBQUssRUFBRTsrRUFDb0I7SUFFNUI7UUFEQyxLQUFLLEVBQUU7c0VBQ1E7SUFFaEI7UUFEQyxLQUFLLEVBQUU7Z0VBQ1E7SUFFaEI7UUFEQyxLQUFLLEVBQUU7bUVBQ1E7SUFFaEI7UUFEQyxLQUFLLEVBQUU7bUZBQ3lCO0lBRWpDO1FBREMsS0FBSyxFQUFFO21GQUN5QjtJQUVqQztRQURDLEtBQUssRUFBRTtxRUFDVTtJQUVsQjtRQURDLEtBQUssRUFBRTt5RUFDYztJQUV0QjtRQURDLEtBQUssRUFBRTs2RUFDbUI7SUFFM0I7UUFEQyxLQUFLLEVBQUU7d0VBQ2U7SUFFdkI7UUFEQyxLQUFLLEVBQUU7cUVBQ1k7SUFFcEI7UUFEQyxLQUFLLEVBQUU7aUZBQ2tCO0lBRTFCO1FBREMsS0FBSyxFQUFFO3NFQUNZO0lBR3BCO1FBREMsS0FBSyxFQUFFO29FQUNTO0lBRWpCO1FBREMsS0FBSyxFQUFFO3VFQUN1QztJQUUvQztRQURDLE1BQU0sRUFBRTtrRUFDc0M7SUFFL0M7UUFEQyxNQUFNLEVBQUU7b0VBQ3dDO0lBRWpEO1FBREMsTUFBTSxFQUFFO21FQUN1QztJQXpFckMsOEJBQThCO1FBTDFDLFNBQVMsQ0FBQztZQUNULFFBQVEsRUFBRSwwQkFBMEI7WUFDcEMsbW9DQUF3RDs7U0FFekQsQ0FBQztPQUNXLDhCQUE4QixDQXNQMUM7SUFBRCxxQ0FBQztDQUFBLEFBdFBELElBc1BDO1NBdFBZLDhCQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgX21vbWVudCwgaXNWYWxpZCB9IGZyb20gJy4uL3V0aWxzL2hlbHBlcnMnO1xuaW1wb3J0IHsgSW5wdXRSZXN0QXV0b0NvbXBsZXRlU2VydmljZSB9IGZyb20gJy4vaW5wdXQtcmVzdC1hdXRvLWNvbXBsZXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2VydmljZVR5cGUgfSBmcm9tICcuLi8uLi9jb3JlL2VudW1zL3NlcnZpY2VUeXBlJztcblxuZXhwb3J0IGludGVyZmFjZSBJQ29uZGl0aW9ucyB7XG4gIGZpZWxkczogQXJyYXk8c3RyaW5nW10+O1xuICBmaWVsZFR5cGU6IHN0cmluZztcbiAgZXhwcmVzc2lvbjogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpbnB1dC1yZXN0LWF1dG8tY29tcGxldGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtcmVzdC1hdXRvLWNvbXBsZXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtcmVzdC1hdXRvLWNvbXBsZXRlLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgSW5wdXRSZXN0QXV0b0NvbXBsZXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQFZpZXdDaGlsZCgnYXV0b0NvbXBsZXRlT2JqZWN0JywgeyBzdGF0aWM6IHRydWUgfSlcbiAgX2F1dG9Db21wbGV0ZU9iamVjdDogRWxlbWVudFJlZjtcbiAgQElucHV0KClcbiAgbmFtZTogc3RyaW5nO1xuICBASW5wdXQoKVxuICB0YWJsZTogc3RyaW5nO1xuICBASW5wdXQoKVxuICBvcmRlcjogQXJyYXk8YW55W10+O1xuICBASW5wdXQoKVxuICBlbmFibGVFbnRpdHlGaWx0ZXJzOiBib29sZWFuO1xuICBASW5wdXQoKVxuICBmaWVsZHM6IEFycmF5PGFueVtdPjtcbiAgQElucHV0KClcbiAgY29uZGl0aW9uc0ZpZWxkcz86IEFycmF5PGFueVtdPjtcbiAgQElucHV0KClcbiAgY29uZGl0aW9uczogQXJyYXk8SUNvbmRpdGlvbnM+O1xuICBASW5wdXQoKVxuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuICBASW5wdXQoKVxuICByZWFkb25seTogYm9vbGVhbjtcbiAgQElucHV0KClcbiAgcmVxdWlyZWQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpXG4gIGRpc2FibGVkOiBib29sZWFuO1xuICBASW5wdXQoKVxuICBkcm9wZG93bjogYm9vbGVhbjtcbiAgQElucHV0KClcbiAgZm9yY2VTZWxlY3Rpb24gPSB0cnVlO1xuICBASW5wdXQoKVxuICBlcnJvcjogb2JqZWN0O1xuICBASW5wdXQoKVxuICBlbXB0eU1lc3NhZ2U6IHN0cmluZztcbiAgQElucHV0KClcbiAga2V5Q29kZT86IHN0cmluZztcbiAgQElucHV0KClcbiAga2V5TmFtZSA9ICduYW1lJztcbiAgQElucHV0KClcbiAgY29uY2F0RmllbGRzRm9yTmFtZT86IGFueVtdO1xuICBASW5wdXQoKVxuICBpdGVtU2VsZWN0OiBhbnk7XG4gIEBJbnB1dCgpXG4gIGZvcm06IEZvcm1Hcm91cDtcbiAgQElucHV0KClcbiAgaW5wdXRJZDogc3RyaW5nO1xuICBASW5wdXQoKVxuICBpc1RpbWV0cmFja2luZ1NpdHVhdGlvbjogYm9vbGVhbjtcbiAgQElucHV0KClcbiAgaXNEZXBhcnRtZW50RnJvbUNvbXBhbnk6IGJvb2xlYW47XG4gIEBJbnB1dCgpXG4gIGNvbXBhbnlJZDogc3RyaW5nO1xuICBASW5wdXQoKVxuICByZWZlcmVuY2VEYXRlOiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIGlzRGlzbWlzc2FsUmVhc29uOiBib29sZWFuO1xuICBASW5wdXQoKVxuICBrZXlUb0V4Y2x1ZGU6IGFueSA9IFtdO1xuICBASW5wdXQoKVxuICB1c2luZ1R5cGU6IGFueSA9IFtdO1xuICBASW5wdXQoKVxuICBtaW5DaGFyYWN0ZXJzVG9TZWFyY2ggPSAzO1xuICBASW5wdXQoKVxuICBpc1dhZ2V0eXBlOiBib29sZWFuO1xuICBwcml2YXRlIGlzRHJvcGRvd246IGJvb2xlYW47XG4gIEBJbnB1dCgpXG4gIG11bHRpcGxlID0gZmFsc2U7XG4gIEBJbnB1dCgpXG4gIHNlcnZpY2VUeXBlOiBTZXJ2aWNlVHlwZSA9IFNlcnZpY2VUeXBlLlBBWVJPTEw7XG4gIEBPdXRwdXQoKVxuICBvbkJsdXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KClcbiAgb25TZWxlY3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KClcbiAgb25DbGVhcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgc3VnZ2VzdGlvbnM6IGFueVtdID0gW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzZXJ2aWNlOiBJbnB1dFJlc3RBdXRvQ29tcGxldGVTZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCkge31cblxuICBmaWx0ZXJRdWVyeShldmVudDogYW55KTogYW55IHtcbiAgICBjb25zdCBxdWVyeSA9IGV2ZW50LnF1ZXJ5O1xuICAgIGlmICghKGlzTmFOKHF1ZXJ5KSAmJiBxdWVyeS50b1N0cmluZygpLmxlbmd0aCA8IHRoaXMubWluQ2hhcmFjdGVyc1RvU2VhcmNoKSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgaWYgKHRoaXMuaXNUaW1ldHJhY2tpbmdTaXR1YXRpb24pIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlXG4gICAgICAgICAgICAucXVlcnkoJ2F1dG9jb21wbGV0ZVRpbWV0cmFja2luZ1NpdHVhdGlvbicsIHtcbiAgICAgICAgICAgICAgdmFsdWVTZWFyY2g6IHF1ZXJ5LFxuICAgICAgICAgICAgICByZWZlcmVuY2VEYXRlOiB0aGlzLnJlZmVyZW5jZURhdGUsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnN1YnNjcmliZShwYXlsb2FkID0+IHRoaXMuZm9ybWF0ZXJSZXNwb25jZShwYXlsb2FkLnJlc3VsdCkpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNEaXNtaXNzYWxSZWFzb24pIHtcbiAgICAgICAgICBjb25zdCBwYXJhbXMgPSB7IHZhbHVlU2VhcmNoOiBxdWVyeSB9O1xuICAgICAgICAgIGlmICh0aGlzLnJlZmVyZW5jZURhdGUpIHtcbiAgICAgICAgICAgIHBhcmFtc1sncmVmZXJlbmNlRGF0ZSddID0gdGhpcy5yZWZlcmVuY2VEYXRlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlXG4gICAgICAgICAgICAucXVlcnkoJ2F1dG9jb21wbGV0ZURpc21pc3NhbFJlYXNvbicsIHBhcmFtcywgU2VydmljZVR5cGUuR0VORVJBTF9SRUdJU1RFUilcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocGF5bG9hZCA9PiB0aGlzLmZvcm1hdGVyUmVzcG9uY2UocGF5bG9hZC5yZXN1bHQpKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnVzaW5nVHlwZSAmJiB0aGlzLnVzaW5nVHlwZS5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlXG4gICAgICAgICAgICAucXVlcnkoJ2F1dG9jb21wbGV0ZU90aGVyQ29tcGFueUZpbHRlclVzaW5nVHlwZScsIHtcbiAgICAgICAgICAgICAgc2VhcmNoVGV4dDogcXVlcnksXG4gICAgICAgICAgICAgIHVzaW5nVHlwZTogdGhpcy51c2luZ1R5cGUsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnN1YnNjcmliZShwYXlsb2FkID0+IHRoaXMuZm9ybWF0ZXJSZXNwb25jZShwYXlsb2FkLnJlc3VsdCkpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNEZXBhcnRtZW50RnJvbUNvbXBhbnkpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlXG4gICAgICAgICAgICAucXVlcnkoJ2F1dG9jb21wbGV0ZURlcGFydG1lbnRRdWVyeScsIHtcbiAgICAgICAgICAgICAgc2VhcmNoVGV4dDogcXVlcnksXG4gICAgICAgICAgICAgIGNvbXBhbnlJZDogdGhpcy5jb21wYW55SWQsXG4gICAgICAgICAgICAgIHJlZmVyZW5jZURhdGU6IHRoaXMucmVmZXJlbmNlRGF0ZSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHBheWxvYWQgPT4gdGhpcy5mb3JtYXRlclJlc3BvbmNlKHBheWxvYWQucmVzdWx0KSk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc1dhZ2V0eXBlKSB7XG4gICAgICAgICAgICBjb25zdCBwYXJhbXMgPSB7IHNlYXJjaFRleHQ6IHF1ZXJ5LCBjb21wYW55SWQ6IHRoaXMuY29tcGFueUlkIH07XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlXG4gICAgICAgICAgICAucXVlcnkoJ2F1dG9jb21wbGV0ZVdhZ2V0eXBlUXVlcnknLCBwYXJhbXMsIFNlcnZpY2VUeXBlLkVOVFJZKVxuICAgICAgICAgICAgLnN1YnNjcmliZShwYXlsb2FkID0+IHRoaXMuZm9ybWF0ZXJSZXNwb25jZShwYXlsb2FkLnJlc3VsdCkpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2VydmljZVxuICAgICAgICAgICAgLnF1ZXJ5KCdhdXRvY29tcGxldGUnLCB0aGlzLmdldFBhcmFtc1Jlc3QocXVlcnkpLCB0aGlzLnNlcnZpY2VUeXBlKS5zdWJzY3JpYmUocGF5bG9hZCA9PiB0aGlzLmZvcm1hdGVyUmVzcG9uY2UocGF5bG9hZC5yZXN1bHQpKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY29uc29sZS5sb2coZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZm9ybWF0ZXJSZXNwb25jZShyZXN1bHQpIHtcbiAgICB0aGlzLnN1Z2dlc3Rpb25zID0gW107XG4gICAgY29uc3QgdmFsc1Jlc3VsdCA9IFtdO1xuICAgIHJlc3VsdC5tYXAodmFsdWUgPT4ge1xuICAgICAgY29uc3QgdmFsdWVDb25jYXQgPSB7XG4gICAgICAgIHRhYmxlSWQ6IHZhbHVlLnRhYmxlSWQsXG4gICAgICAgIG5hbWU6ICcnLFxuICAgICAgfTtcbiAgICAgIGlmICh0aGlzLmlzVGltZXRyYWNraW5nU2l0dWF0aW9uIHx8IHRoaXMuaXNEaXNtaXNzYWxSZWFzb24gfHwgKHRoaXMudXNpbmdUeXBlICYmIHRoaXMudXNpbmdUeXBlLmxlbmd0aCkpIHtcbiAgICAgICAgaWYgKHRoaXMua2V5VG9FeGNsdWRlLmluY2x1ZGVzKHZhbHVlLmZpZWxkcyAmJiB2YWx1ZS5maWVsZHNbMl0gJiYgdmFsdWUuZmllbGRzWzJdLnZhbHVlKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBmaWVsZE5hbWUgPSAnJztcblxuICAgICAgICB2YWx1ZS5maWVsZHMubWFwKHZhbCA9PiB7XG4gICAgICAgICAgdmFsdWVDb25jYXRbdmFsLm5hbWVdID0gdmFsLnZhbHVlO1xuICAgICAgICB9KTtcblxuICAgICAgICBmaWVsZE5hbWUgKz0gdmFsdWUuZmllbGRzLmZpbHRlcih2YWwgPT4gdmFsLm5hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ2NvZGUnKS5tYXAoY29kZSA9PiAoY29kZSA/IChjb2RlLnZhbHVlICs9ICcgLSAnKSA6ICcnKSlbMF07XG4gICAgICAgIGlmICh0aGlzLnVzaW5nVHlwZSAmJiB0aGlzLnVzaW5nVHlwZS5sZW5ndGggJiYgKCFmaWVsZE5hbWUgfHwgZmllbGROYW1lID09PSAndW5kZWZpbmVkJykpIHtcbiAgICAgICAgICBmaWVsZE5hbWUgPSAnJztcbiAgICAgICAgfVxuICAgICAgICBmaWVsZE5hbWUgKz0gdmFsdWUuZmllbGRzLmZpbHRlcih2YWwgPT4gdmFsLm5hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ25hbWUnKS5tYXAobmFtZSA9PiAobmFtZSA/IG5hbWUudmFsdWUgOiAnJykpWzBdO1xuXG4gICAgICAgIHZhbHVlQ29uY2F0Lm5hbWUgPSBmaWVsZE5hbWU7XG4gICAgICAgIHZhbHNSZXN1bHQucHVzaCh2YWx1ZUNvbmNhdCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YWx1ZS5maWVsZHMubWFwKHZhbCA9PiB7XG4gICAgICAgICAgdmFsdWVDb25jYXRbdmFsLm5hbWVdID0gdmFsLnZhbHVlO1xuICAgICAgICB9KTtcbiAgICAgICAgbGV0IGZpZWxkTmFtZSA9ICcnO1xuICAgICAgICBpZiAodGhpcy5jb25jYXRGaWVsZHNGb3JOYW1lKSB7XG4gICAgICAgICAgdGhpcy5jb25jYXRGaWVsZHNGb3JOYW1lLm1hcCh2YWwgPT4ge1xuICAgICAgICAgICAgLy8gc2UgbyBjYW1wbyBmb3IgZGF0YSwgZm9ybWF0YSBwcm8gbG9jYWxlIGRvIHVzdcOhcmlvXG4gICAgICAgICAgICBpZiAodmFsLmluY2x1ZGVzKCdkYXRlJykgfHwgdmFsLmluY2x1ZGVzKCdCaXJ0aGRheScpKSB7XG4gICAgICAgICAgICAgIHZhbHVlQ29uY2F0W3ZhbF0gPSBfbW9tZW50KHZhbHVlQ29uY2F0W3ZhbF0pLmZvcm1hdCgnREQvTU0vWVlZWScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmllbGROYW1lICs9IHZhbHVlQ29uY2F0W3ZhbF0gKyAnIC0gJztcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBmaWVsZE5hbWUgPSBmaWVsZE5hbWUuc2xpY2UoMCwgLTMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICh0aGlzLmtleUNvZGUpIHtcbiAgICAgICAgICAgIGZpZWxkTmFtZSArPSB2YWx1ZUNvbmNhdFt0aGlzLmtleUNvZGVdICsgJyAtICc7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0aGlzLmtleU5hbWUpIHtcbiAgICAgICAgICAgIGZpZWxkTmFtZSArPSB2YWx1ZUNvbmNhdFt0aGlzLmtleU5hbWVdO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB2YWx1ZUNvbmNhdC5uYW1lID0gZmllbGROYW1lO1xuICAgICAgICB2YWxzUmVzdWx0LnB1c2godmFsdWVDb25jYXQpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuc3VnZ2VzdGlvbnMgPSBbLi4udmFsc1Jlc3VsdF07XG4gICAgcmV0dXJuIHZhbHNSZXN1bHQ7XG4gIH1cblxuICBnZXRQYXJhbXNSZXN0KHNlYXJjaDogc3RyaW5nKTogb2JqZWN0IHtcbiAgICByZXR1cm4ge1xuICAgICAgdGFibGU6IHRoaXMudGFibGUsXG4gICAgICBmaWVsZHM6IHRoaXMuZmllbGRzLFxuICAgICAgb3JkZXI6IHRoaXMub3JkZXIsXG4gICAgICBjb25kaXRpb25zOiB0aGlzLmdldENvbmRpdGlvbnNSZXN0KHNlYXJjaCksXG4gICAgICBlbmFibGVFbnRpdHlGaWx0ZXJzOiB0aGlzLmVuYWJsZUVudGl0eUZpbHRlcnMsXG4gICAgfTtcbiAgfVxuXG4gIGdldENvbmRpdGlvbnNSZXN0KHNlYXJjaDogc3RyaW5nKSB7XG4gICAgY29uc3QgY29uZGl0aW9zUmV0dXJuID0gW1xuICAgICAge1xuICAgICAgICBmaWVsZHM6IHRoaXMuY29uZGl0aW9uc0ZpZWxkcyB8fCB0aGlzLmZpZWxkcyxcbiAgICAgICAgZXhwcmVzc2lvbjogJ0xJS0UnLFxuICAgICAgICB2YWx1ZTogYCR7c2VhcmNofWAsXG4gICAgICB9LFxuICAgIF07XG5cbiAgICBpZiAodGhpcy5jb25kaXRpb25zKSB7XG4gICAgICB0aGlzLmNvbmRpdGlvbnMubWFwKHZhbCA9PiB7XG4gICAgICAgIGlmIChbJ0lTX05VTEwnLCAnSVNfTk9UX05VTEwnLCAnSVNfVFJVRSddLmluY2x1ZGVzKHZhbC5leHByZXNzaW9uKSB8fCBpc1ZhbGlkKHZhbC52YWx1ZSkpIHtcbiAgICAgICAgICBjb25kaXRpb3NSZXR1cm4ucHVzaCh2YWwpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29uZGl0aW9zUmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4dGVybml6YSBhIGZ1bsOnw6NvIGRlIHNlbGVjdCBkYXMgb3DDp8O1ZXNcbiAgICogPGlucHV0LXJlc3QtYXV0by1jb21wbGV0ZSAob25TZWxlY3QpPVwib25TZWxlY3RIYW5kbGUoJGV2ZW50KVwiID48L2lucHV0LXJlc3QtYXV0by1jb21wbGV0ZT5cbiAgICogQHBhcmFtIG9wdGlvblxuICAgKi9cbiAgc2VsZWN0T3B0aW9uKG9wdGlvbjogb2JqZWN0KSB7XG4gICAgdGhpcy5vblNlbGVjdC5lbWl0KG9wdGlvbik7XG4gIH1cblxuICBhc3luYyBvbkNsZWFySXRlbShvcHRpb246IG9iamVjdCkge1xuICAgIGF3YWl0IHRoaXMub25DbGVhci5lbWl0KG9wdGlvbik7XG4gICAgdGhpcy5mb3JtLmdldCh0aGlzLm5hbWUpLnJlc2V0KCk7XG4gIH1cblxuICBvbkJsdXJJdGVtKG9wdGlvbjogb2JqZWN0KSB7XG4gICAgaWYgKCF0aGlzLmlzRHJvcGRvd24pIHtcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLm5hbWVdLm1hcmtBc0RpcnR5KCk7XG4gICAgICB0aGlzLm9uQmx1ci5lbWl0KG9wdGlvbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaXNEcm9wZG93biA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIG9uRHJvcGRvd25DbGljaygpIHtcbiAgICB0aGlzLmlzRHJvcGRvd24gPSB0cnVlO1xuICB9XG5cbiAgZ2V0IGF1dG9Db21wbGV0ZU9iamVjdCgpIHtcbiAgICByZXR1cm4gdGhpcy5fYXV0b0NvbXBsZXRlT2JqZWN0O1xuICB9XG59XG4iXX0=
|
|
326
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcmVzdC1hdXRvLWNvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3ItZ2VzdGFvLXBlc3NvYXMvcGF5cm9sbC1jb3JlLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9pbnB1dC1yZXN0LWF1dG8tY29tcGxldGUvaW5wdXQtcmVzdC1hdXRvLWNvbXBsZXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNsRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFjM0Q7SUErRUUsd0NBQW9CLE9BQXFDO1FBQXJDLFlBQU8sR0FBUCxPQUFPLENBQThCO1FBbkR6RCxtQkFBYyxHQUFHLElBQUksQ0FBQztRQVF0QixZQUFPLEdBQUcsTUFBTSxDQUFDO1FBb0JqQixpQkFBWSxHQUFRLEVBQUUsQ0FBQztRQUV2QixjQUFTLEdBQVEsRUFBRSxDQUFDO1FBRXBCLDBCQUFxQixHQUFHLENBQUMsQ0FBQztRQU8xQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWpCLGdCQUFXLEdBQWdCLFdBQVcsQ0FBQyxPQUFPLENBQUM7UUFFL0MsV0FBTSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRS9DLGFBQVEsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVqRCxZQUFPLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFaEQsZ0JBQVcsR0FBVSxFQUFFLENBQUM7SUFFb0MsQ0FBQztJQUU3RCxpREFBUSxHQUFSLGNBQVksQ0FBQztJQUViLG9EQUFXLEdBQVgsVUFBWSxL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cEMsbW9DQUF3RDs7U0FFekQsQ0FBQztPQUNXLDhCQUE4QixDQTZQMUM7SUFBRCxxQ0FBQztDQUFBLEFBN1BELElBNlBDO1NBN1BZLDhCQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgX21vbWVudCwgaXNWYWxpZCB9IGZyb20gJy4uL3V0aWxzL2hlbHBlcnMnO1xuaW1wb3J0IHsgSW5wdXRSZXN0QXV0b0NvbXBsZXRlU2VydmljZSB9IGZyb20gJy4vaW5wdXQtcmVzdC1hdXRvLWNvbXBsZXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2VydmljZVR5cGUgfSBmcm9tICcuLi8uLi9jb3JlL2VudW1zL3NlcnZpY2VUeXBlJztcblxuZXhwb3J0IGludGVyZmFjZSBJQ29uZGl0aW9ucyB7XG4gIGZpZWxkczogQXJyYXk8c3RyaW5nW10+O1xuICBmaWVsZFR5cGU6IHN0cmluZztcbiAgZXhwcmVzc2lvbjogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpbnB1dC1yZXN0LWF1dG8tY29tcGxldGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtcmVzdC1hdXRvLWNvbXBsZXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtcmVzdC1hdXRvLWNvbXBsZXRlLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgSW5wdXRSZXN0QXV0b0NvbXBsZXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQFZpZXdDaGlsZCgnYXV0b0NvbXBsZXRlT2JqZWN0JywgeyBzdGF0aWM6IHRydWUgfSlcbiAgX2F1dG9Db21wbGV0ZU9iamVjdDogRWxlbWVudFJlZjtcbiAgQElucHV0KClcbiAgbmFtZTogc3RyaW5nO1xuICBASW5wdXQoKVxuICB0YWJsZTogc3RyaW5nO1xuICBASW5wdXQoKVxuICBvcmRlcjogQXJyYXk8YW55W10+O1xuICBASW5wdXQoKVxuICBlbmFibGVFbnRpdHlGaWx0ZXJzOiBib29sZWFuO1xuICBASW5wdXQoKVxuICBmaWVsZHM6IEFycmF5PGFueVtdPjtcbiAgQElucHV0KClcbiAgY29uZGl0aW9uc0ZpZWxkcz86IEFycmF5PGFueVtdPjtcbiAgQElucHV0KClcbiAgY29uZGl0aW9uczogQXJyYXk8SUNvbmRpdGlvbnM+O1xuICBASW5wdXQoKVxuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuICBASW5wdXQoKVxuICByZWFkb25seTogYm9vbGVhbjtcbiAgQElucHV0KClcbiAgcmVxdWlyZWQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpXG4gIGRpc2FibGVkOiBib29sZWFuO1xuICBASW5wdXQoKVxuICBkcm9wZG93bjogYm9vbGVhbjtcbiAgQElucHV0KClcbiAgZm9yY2VTZWxlY3Rpb24gPSB0cnVlO1xuICBASW5wdXQoKVxuICBlcnJvcjogb2JqZWN0O1xuICBASW5wdXQoKVxuICBlbXB0eU1lc3NhZ2U6IHN0cmluZztcbiAgQElucHV0KClcbiAga2V5Q29kZT86IHN0cmluZztcbiAgQElucHV0KClcbiAga2V5TmFtZSA9ICduYW1lJztcbiAgQElucHV0KClcbiAgY29uY2F0RmllbGRzRm9yTmFtZT86IGFueVtdO1xuICBASW5wdXQoKVxuICBpdGVtU2VsZWN0OiBhbnk7XG4gIEBJbnB1dCgpXG4gIGZvcm06IEZvcm1Hcm91cDtcbiAgQElucHV0KClcbiAgaW5wdXRJZDogc3RyaW5nO1xuICBASW5wdXQoKVxuICBpc1RpbWV0cmFja2luZ1NpdHVhdGlvbjogYm9vbGVhbjtcbiAgQElucHV0KClcbiAgaXNEZXBhcnRtZW50RnJvbUNvbXBhbnk6IGJvb2xlYW47XG4gIEBJbnB1dCgpXG4gIGNvbXBhbnlJZDogc3RyaW5nO1xuICBASW5wdXQoKVxuICByZWZlcmVuY2VEYXRlOiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIGlzRGlzbWlzc2FsUmVhc29uOiBib29sZWFuO1xuICBASW5wdXQoKVxuICBrZXlUb0V4Y2x1ZGU6IGFueSA9IFtdO1xuICBASW5wdXQoKVxuICB1c2luZ1R5cGU6IGFueSA9IFtdO1xuICBASW5wdXQoKVxuICBtaW5DaGFyYWN0ZXJzVG9TZWFyY2ggPSAzO1xuICBASW5wdXQoKVxuICBpc1dhZ2V0eXBlOiBib29sZWFuO1xuICBwcml2YXRlIGlzRHJvcGRvd246IGJvb2xlYW47XG4gIEBJbnB1dCgpXG4gIGlzU2l0dWF0aW9uRGVmaW5pdGlvbjogYm9vbGVhbjtcbiAgQElucHV0KClcbiAgbXVsdGlwbGUgPSBmYWxzZTtcbiAgQElucHV0KClcbiAgc2VydmljZVR5cGU6IFNlcnZpY2VUeXBlID0gU2VydmljZVR5cGUuUEFZUk9MTDtcbiAgQE91dHB1dCgpXG4gIG9uQmx1cjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKVxuICBvblNlbGVjdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKVxuICBvbkNsZWFyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBzdWdnZXN0aW9uczogYW55W10gPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNlcnZpY2U6IElucHV0UmVzdEF1dG9Db21wbGV0ZVNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKSB7fVxuXG4gIGZpbHRlclF1ZXJ5KGV2ZW50OiBhbnkpOiBhbnkge1xuICAgIGNvbnN0IHF1ZXJ5ID0gZXZlbnQucXVlcnk7XG4gICAgaWYgKCEoaXNOYU4ocXVlcnkpICYmIHF1ZXJ5LnRvU3RyaW5nKCkubGVuZ3RoIDwgdGhpcy5taW5DaGFyYWN0ZXJzVG9TZWFyY2gpKSB7XG4gICAgICB0cnkge1xuICAgICAgICBpZiAodGhpcy5pc1RpbWV0cmFja2luZ1NpdHVhdGlvbikge1xuICAgICAgICAgIHJldHVybiB0aGlzLnNlcnZpY2VcbiAgICAgICAgICAgIC5xdWVyeSgnYXV0b2NvbXBsZXRlVGltZXRyYWNraW5nU2l0dWF0aW9uJywge1xuICAgICAgICAgICAgICB2YWx1ZVNlYXJjaDogcXVlcnksXG4gICAgICAgICAgICAgIHJlZmVyZW5jZURhdGU6IHRoaXMucmVmZXJlbmNlRGF0ZSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHBheWxvYWQgPT4gdGhpcy5mb3JtYXRlclJlc3BvbmNlKHBheWxvYWQucmVzdWx0KSk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc0Rpc21pc3NhbFJlYXNvbikge1xuICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHsgdmFsdWVTZWFyY2g6IHF1ZXJ5IH07XG4gICAgICAgICAgaWYgKHRoaXMucmVmZXJlbmNlRGF0ZSkge1xuICAgICAgICAgICAgcGFyYW1zWydyZWZlcmVuY2VEYXRlJ10gPSB0aGlzLnJlZmVyZW5jZURhdGU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB0aGlzLnNlcnZpY2VcbiAgICAgICAgICAgIC5xdWVyeSgnYXV0b2NvbXBsZXRlRGlzbWlzc2FsUmVhc29uJywgcGFyYW1zLCBTZXJ2aWNlVHlwZS5HRU5FUkFMX1JFR0lTVEVSKVxuICAgICAgICAgICAgLnN1YnNjcmliZShwYXlsb2FkID0+IHRoaXMuZm9ybWF0ZXJSZXNwb25jZShwYXlsb2FkLnJlc3VsdCkpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudXNpbmdUeXBlICYmIHRoaXMudXNpbmdUeXBlLmxlbmd0aCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLnNlcnZpY2VcbiAgICAgICAgICAgIC5xdWVyeSgnYXV0b2NvbXBsZXRlT3RoZXJDb21wYW55RmlsdGVyVXNpbmdUeXBlJywge1xuICAgICAgICAgICAgICBzZWFyY2hUZXh0OiBxdWVyeSxcbiAgICAgICAgICAgICAgdXNpbmdUeXBlOiB0aGlzLnVzaW5nVHlwZSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHBheWxvYWQgPT4gdGhpcy5mb3JtYXRlclJlc3BvbmNlKHBheWxvYWQucmVzdWx0KSk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc0RlcGFydG1lbnRGcm9tQ29tcGFueSkge1xuICAgICAgICAgIHJldHVybiB0aGlzLnNlcnZpY2VcbiAgICAgICAgICAgIC5xdWVyeSgnYXV0b2NvbXBsZXRlRGVwYXJ0bWVudFF1ZXJ5Jywge1xuICAgICAgICAgICAgICBzZWFyY2hUZXh0OiBxdWVyeSxcbiAgICAgICAgICAgICAgY29tcGFueUlkOiB0aGlzLmNvbXBhbnlJZCxcbiAgICAgICAgICAgICAgcmVmZXJlbmNlRGF0ZTogdGhpcy5yZWZlcmVuY2VEYXRlLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocGF5bG9hZCA9PiB0aGlzLmZvcm1hdGVyUmVzcG9uY2UocGF5bG9hZC5yZXN1bHQpKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzU2l0dWF0aW9uRGVmaW5pdGlvbikge1xuICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHsgc2VhcmNoVGV4dDogcXVlcnkgfTtcbiAgICAgICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlXG4gICAgICAgICAgICAucXVlcnkoJ2F1dG9jb21wbGV0ZVNpdHVhdGlvbkRlZmluaXRpb25RdWVyeScsIHBhcmFtcywgU2VydmljZVR5cGUuT1JHQU5JWkFUSU9OX1JFR0lTVEVSKVxuICAgICAgICAgICAgLnN1YnNjcmliZShwYXlsb2FkID0+IHRoaXMuZm9ybWF0ZXJSZXNwb25jZShwYXlsb2FkLnJlc3VsdCkpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNXYWdldHlwZSkge1xuICAgICAgICAgICAgY29uc3QgcGFyYW1zID0geyBzZWFyY2hUZXh0OiBxdWVyeSwgY29tcGFueUlkOiB0aGlzLmNvbXBhbnlJZCB9O1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2VydmljZVxuICAgICAgICAgICAgLnF1ZXJ5KCdhdXRvY29tcGxldGVXYWdldHlwZVF1ZXJ5JywgcGFyYW1zLCBTZXJ2aWNlVHlwZS5FTlRSWSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocGF5bG9hZCA9PiB0aGlzLmZvcm1hdGVyUmVzcG9uY2UocGF5bG9hZC5yZXN1bHQpKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNlcnZpY2VcbiAgICAgICAgICAgIC5xdWVyeSgnYXV0b2NvbXBsZXRlJywgdGhpcy5nZXRQYXJhbXNSZXN0KHF1ZXJ5KSwgdGhpcy5zZXJ2aWNlVHlwZSkuc3Vic2NyaWJlKHBheWxvYWQgPT4gdGhpcy5mb3JtYXRlclJlc3BvbmNlKHBheWxvYWQucmVzdWx0KSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZvcm1hdGVyUmVzcG9uY2UocmVzdWx0KSB7XG4gICAgdGhpcy5zdWdnZXN0aW9ucyA9IFtdO1xuICAgIGNvbnN0IHZhbHNSZXN1bHQgPSBbXTtcbiAgICByZXN1bHQubWFwKHZhbHVlID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlQ29uY2F0ID0ge1xuICAgICAgICB0YWJsZUlkOiB2YWx1ZS50YWJsZUlkLFxuICAgICAgICBuYW1lOiAnJyxcbiAgICAgIH07XG4gICAgICBpZiAodGhpcy5pc1RpbWV0cmFja2luZ1NpdHVhdGlvbiB8fCB0aGlzLmlzRGlzbWlzc2FsUmVhc29uIHx8ICh0aGlzLnVzaW5nVHlwZSAmJiB0aGlzLnVzaW5nVHlwZS5sZW5ndGgpKSB7XG4gICAgICAgIGlmICh0aGlzLmtleVRvRXhjbHVkZS5pbmNsdWRlcyh2YWx1ZS5maWVsZHMgJiYgdmFsdWUuZmllbGRzWzJdICYmIHZhbHVlLmZpZWxkc1syXS52YWx1ZSkpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgZmllbGROYW1lID0gJyc7XG5cbiAgICAgICAgdmFsdWUuZmllbGRzLm1hcCh2YWwgPT4ge1xuICAgICAgICAgIHZhbHVlQ29uY2F0W3ZhbC5uYW1lXSA9IHZhbC52YWx1ZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZmllbGROYW1lICs9IHZhbHVlLmZpZWxkcy5maWx0ZXIodmFsID0+IHZhbC5uYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdjb2RlJykubWFwKGNvZGUgPT4gKGNvZGUgPyAoY29kZS52YWx1ZSArPSAnIC0gJykgOiAnJykpWzBdO1xuICAgICAgICBpZiAodGhpcy51c2luZ1R5cGUgJiYgdGhpcy51c2luZ1R5cGUubGVuZ3RoICYmICghZmllbGROYW1lIHx8IGZpZWxkTmFtZSA9PT0gJ3VuZGVmaW5lZCcpKSB7XG4gICAgICAgICAgZmllbGROYW1lID0gJyc7XG4gICAgICAgIH1cbiAgICAgICAgZmllbGROYW1lICs9IHZhbHVlLmZpZWxkcy5maWx0ZXIodmFsID0+IHZhbC5uYW1lLnRvTG93ZXJDYXNlKCkgPT09ICduYW1lJykubWFwKG5hbWUgPT4gKG5hbWUgPyBuYW1lLnZhbHVlIDogJycpKVswXTtcblxuICAgICAgICB2YWx1ZUNvbmNhdC5uYW1lID0gZmllbGROYW1lO1xuICAgICAgICB2YWxzUmVzdWx0LnB1c2godmFsdWVDb25jYXQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFsdWUuZmllbGRzLm1hcCh2YWwgPT4ge1xuICAgICAgICAgIHZhbHVlQ29uY2F0W3ZhbC5uYW1lXSA9IHZhbC52YWx1ZTtcbiAgICAgICAgfSk7XG4gICAgICAgIGxldCBmaWVsZE5hbWUgPSAnJztcbiAgICAgICAgaWYgKHRoaXMuY29uY2F0RmllbGRzRm9yTmFtZSkge1xuICAgICAgICAgIHRoaXMuY29uY2F0RmllbGRzRm9yTmFtZS5tYXAodmFsID0+IHtcbiAgICAgICAgICAgIC8vIHNlIG8gY2FtcG8gZm9yIGRhdGEsIGZvcm1hdGEgcHJvIGxvY2FsZSBkbyB1c3XDoXJpb1xuICAgICAgICAgICAgaWYgKHZhbC5pbmNsdWRlcygnZGF0ZScpIHx8IHZhbC5pbmNsdWRlcygnQmlydGhkYXknKSkge1xuICAgICAgICAgICAgICB2YWx1ZUNvbmNhdFt2YWxdID0gX21vbWVudCh2YWx1ZUNvbmNhdFt2YWxdKS5mb3JtYXQoJ0REL01NL1lZWVknKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZpZWxkTmFtZSArPSB2YWx1ZUNvbmNhdFt2YWxdICsgJyAtICc7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgZmllbGROYW1lID0gZmllbGROYW1lLnNsaWNlKDAsIC0zKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAodGhpcy5rZXlDb2RlKSB7XG4gICAgICAgICAgICBmaWVsZE5hbWUgKz0gdmFsdWVDb25jYXRbdGhpcy5rZXlDb2RlXSArICcgLSAnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodGhpcy5rZXlOYW1lKSB7XG4gICAgICAgICAgICBmaWVsZE5hbWUgKz0gdmFsdWVDb25jYXRbdGhpcy5rZXlOYW1lXTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdmFsdWVDb25jYXQubmFtZSA9IGZpZWxkTmFtZTtcbiAgICAgICAgdmFsc1Jlc3VsdC5wdXNoKHZhbHVlQ29uY2F0KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnN1Z2dlc3Rpb25zID0gWy4uLnZhbHNSZXN1bHRdO1xuICAgIHJldHVybiB2YWxzUmVzdWx0O1xuICB9XG5cbiAgZ2V0UGFyYW1zUmVzdChzZWFyY2g6IHN0cmluZyk6IG9iamVjdCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRhYmxlOiB0aGlzLnRhYmxlLFxuICAgICAgZmllbGRzOiB0aGlzLmZpZWxkcyxcbiAgICAgIG9yZGVyOiB0aGlzLm9yZGVyLFxuICAgICAgY29uZGl0aW9uczogdGhpcy5nZXRDb25kaXRpb25zUmVzdChzZWFyY2gpLFxuICAgICAgZW5hYmxlRW50aXR5RmlsdGVyczogdGhpcy5lbmFibGVFbnRpdHlGaWx0ZXJzLFxuICAgIH07XG4gIH1cblxuICBnZXRDb25kaXRpb25zUmVzdChzZWFyY2g6IHN0cmluZykge1xuICAgIGNvbnN0IGNvbmRpdGlvc1JldHVybiA9IFtcbiAgICAgIHtcbiAgICAgICAgZmllbGRzOiB0aGlzLmNvbmRpdGlvbnNGaWVsZHMgfHwgdGhpcy5maWVsZHMsXG4gICAgICAgIGV4cHJlc3Npb246ICdMSUtFJyxcbiAgICAgICAgdmFsdWU6IGAke3NlYXJjaH1gLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgaWYgKHRoaXMuY29uZGl0aW9ucykge1xuICAgICAgdGhpcy5jb25kaXRpb25zLm1hcCh2YWwgPT4ge1xuICAgICAgICBpZiAoWydJU19OVUxMJywgJ0lTX05PVF9OVUxMJywgJ0lTX1RSVUUnXS5pbmNsdWRlcyh2YWwuZXhwcmVzc2lvbikgfHwgaXNWYWxpZCh2YWwudmFsdWUpKSB7XG4gICAgICAgICAgY29uZGl0aW9zUmV0dXJuLnB1c2godmFsKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbmRpdGlvc1JldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHRlcm5pemEgYSBmdW7Dp8OjbyBkZSBzZWxlY3QgZGFzIG9ww6fDtWVzXG4gICAqIDxpbnB1dC1yZXN0LWF1dG8tY29tcGxldGUgKG9uU2VsZWN0KT1cIm9uU2VsZWN0SGFuZGxlKCRldmVudClcIiA+PC9pbnB1dC1yZXN0LWF1dG8tY29tcGxldGU+XG4gICAqIEBwYXJhbSBvcHRpb25cbiAgICovXG4gIHNlbGVjdE9wdGlvbihvcHRpb246IG9iamVjdCkge1xuICAgIHRoaXMub25TZWxlY3QuZW1pdChvcHRpb24pO1xuICB9XG5cbiAgYXN5bmMgb25DbGVhckl0ZW0ob3B0aW9uOiBvYmplY3QpIHtcbiAgICBhd2FpdCB0aGlzLm9uQ2xlYXIuZW1pdChvcHRpb24pO1xuICAgIHRoaXMuZm9ybS5nZXQodGhpcy5uYW1lKS5yZXNldCgpO1xuICB9XG5cbiAgb25CbHVySXRlbShvcHRpb246IG9iamVjdCkge1xuICAgIGlmICghdGhpcy5pc0Ryb3Bkb3duKSB7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgdGhpcy5vbkJsdXIuZW1pdChvcHRpb24pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlzRHJvcGRvd24gPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBvbkRyb3Bkb3duQ2xpY2soKSB7XG4gICAgdGhpcy5pc0Ryb3Bkb3duID0gdHJ1ZTtcbiAgfVxuXG4gIGdldCBhdXRvQ29tcGxldGVPYmplY3QoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2F1dG9Db21wbGV0ZU9iamVjdDtcbiAgfVxufVxuIl19
|
|
@@ -59,8 +59,61 @@ var CNPJValidator = /** @class */ (function () {
|
|
|
59
59
|
}
|
|
60
60
|
return true;
|
|
61
61
|
};
|
|
62
|
+
CNPJValidator.prototype.checkCNPJAlphanumeric = function (value) {
|
|
63
|
+
var cnpj = value;
|
|
64
|
+
if (cnpj) {
|
|
65
|
+
cnpj = cnpj.replace(/[^\dA-Za-z]/g, '').toUpperCase();
|
|
66
|
+
if (cnpj.length !== 14) {
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
// Valida que dígitos verificadores são numéricos
|
|
70
|
+
if (!/^\d$/.test(cnpj.charAt(12)) || !/^\d$/.test(cnpj.charAt(13))) {
|
|
71
|
+
return { cnpjNotValid: true };
|
|
72
|
+
}
|
|
73
|
+
// Elimina CNPJs invalidos conhecidos
|
|
74
|
+
if (cnpj === '00000000000000' ||
|
|
75
|
+
cnpj === '11111111111111' ||
|
|
76
|
+
cnpj === '22222222222222' ||
|
|
77
|
+
cnpj === '33333333333333' ||
|
|
78
|
+
cnpj === '44444444444444' ||
|
|
79
|
+
cnpj === '55555555555555' ||
|
|
80
|
+
cnpj === '66666666666666' ||
|
|
81
|
+
cnpj === '77777777777777' ||
|
|
82
|
+
cnpj === '88888888888888' ||
|
|
83
|
+
cnpj === '99999999999999') {
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
// Valida DVs
|
|
87
|
+
var size = cnpj.length - 2;
|
|
88
|
+
var digits = cnpj.substring(size);
|
|
89
|
+
if (!this.validateCnpjDigit(cnpj, size, Number(digits.charAt(0)))) {
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
if (!this.validateCnpjDigit(cnpj, size + 1, Number(digits.charAt(1)))) {
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
return true;
|
|
96
|
+
}
|
|
97
|
+
return true;
|
|
98
|
+
};
|
|
99
|
+
CNPJValidator.prototype.validateCnpjDigit = function (cnpj, size, digit) {
|
|
100
|
+
var numbers = cnpj.substring(0, size);
|
|
101
|
+
var sum = 0;
|
|
102
|
+
var pos = size - 7;
|
|
103
|
+
for (var i = size; i >= 1; i--) {
|
|
104
|
+
sum += this.convertToAsciiMinus48(numbers.charAt(size - i)) * pos--;
|
|
105
|
+
if (pos < 2) {
|
|
106
|
+
pos = 9;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
var result = sum % 11 < 2 ? 0 : 11 - (sum % 11);
|
|
110
|
+
return result === digit;
|
|
111
|
+
};
|
|
112
|
+
CNPJValidator.prototype.convertToAsciiMinus48 = function (input) {
|
|
113
|
+
return input.charCodeAt(0) - 48;
|
|
114
|
+
};
|
|
62
115
|
return CNPJValidator;
|
|
63
116
|
}());
|
|
64
117
|
export { CNPJValidator };
|
|
65
118
|
export var cnpjValidator = new CNPJValidator();
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY25wai12YWxpZGF0b3IuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWdlc3Rhby1wZXNzb2FzL3BheXJvbGwtY29yZS8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvdXRpbHMvY25wai12YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7SUFBQTtJQW9FQSxDQUFDO0lBbEVHOztLQUVDO0lBQ0QsaUNBQVMsR0FBVCxVQUFVLEtBQUs7UUFDWCxJQUFJLElBQUksR0FBRyxLQUFLLENBQUM7UUFFakIsSUFBSSxJQUFJLEVBQUU7WUFDTixJQUFJLElBQUksU0FBQSxFQUFFLE9BQU8sU0FBQSxFQUFFLE1BQU0sU0FBQSxFQUFFLEdBQUcsU0FBQSxFQUFFLEdBQUcsU0FBQSxFQUFFLE1BQU0sU0FBQSxDQUFDO1lBQzVDLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUVuQyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFO2dCQUNwQixPQUFPLElBQUksQ0FBQzthQUNmO1lBRUQscUNBQXFDO1lBQ3JDLElBQ0ksSUFBSSxLQUFLLGdCQUFnQjtnQkFDekIsSUFBSSxLQUFLLGdCQUFnQjtnQkFDekIsSUFBSSxLQUFLLGdCQUFnQjtnQkFDekIsSUFBSSxLQUFLLGdCQUFnQjtnQkFDekIsSUFBSSxLQUFLLGdCQUFnQjtnQkFDekIsSUFBSSxLQUFLLGdCQUFnQjtnQkFDekIsSUFBSSxLQUFLLGdCQUFnQjtnQkFDekIsSUFBSSxLQUFLLGdCQUFnQjtnQkFDekIsSUFBSSxLQUFLLGdCQUFnQjtnQkFDekIsSUFBSSxLQUFLLGdCQUFnQixFQUMzQjtnQkFDRSxPQUFPLEtBQUssQ0FBQzthQUNoQjtZQUVELGFBQWE7WUFDYixJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDdkIsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ2xDLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzlCLEdBQUcsR0FBRyxDQUFDLENBQUM7WUFDUixHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQztZQUNmLEtBQUssSUFBSSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQzVCLEdBQUcsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQztnQkFDeEMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFO29CQUNULEdBQUcsR0FBRyxDQUFDLENBQUM7aUJBQ1g7YUFDSjtZQUNELE1BQU0sR0FBRyxHQUFHLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDNUMsSUFBSSxNQUFNLEtBQUssTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDckMsT0FBTyxLQUFLLENBQUU7YUFDakI7WUFFRCxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQztZQUNoQixPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDbEMsR0FBRyxHQUFHLENBQUMsQ0FBQztZQUNSLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1lBQ2YsS0FBSyxJQUFJLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDNUIsR0FBRyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDO2dCQUN4QyxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUU7b0JBQ1QsR0FBRyxHQUFHLENBQUMsQ0FBQztpQkFDWDthQUNKO1lBQ0QsTUFBTSxHQUFHLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUM1QyxJQUFJLE1BQU0sS0FBSyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNyQyxPQUFPLEtBQUssQ0FBQzthQUNoQjtZQUVELE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ0wsb0JBQUM7QUFBRCxDQUFDLEFBcEVELElBb0VDOztBQUVELE1BQU0sQ0FBQyxJQUFNLGFBQWEsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5leHBvcnQgY2xhc3MgQ05QSlZhbGlkYXRvciB7XG5cbiAgICAvKipcbiAgICogVmFsaWRhIHNlIG8gQ05QSiDDqSB2YWxpZG8uIERldmUtc2Ugc2VyIGluZm9ybWFkbyBvIGNucGogc2VtIG3DoXNjYXJhLlxuICAgKi9cbiAgICBjaGVja0NOUEoodmFsdWUpIHtcbiAgICAgICAgbGV0IGNucGogPSB2YWx1ZTtcblxuICAgICAgICBpZiAoY25waikge1xuICAgICAgICAgICAgbGV0IHNpemUsIG51bWJlcnMsIGRpZ2l0cywgc3VtLCBwb3MsIHJlc3VsdDtcbiAgICAgICAgICAgIGNucGogPSBjbnBqLnJlcGxhY2UoL1teXFxkXSsvZywgJycpO1xuXG4gICAgICAgICAgICBpZiAoY25wai5sZW5ndGggIT09IDE0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIEVsaW1pbmEgQ05QSnMgaW52YWxpZG9zIGNvbmhlY2lkb3NcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBjbnBqID09PSAnMDAwMDAwMDAwMDAwMDAnIHx8XG4gICAgICAgICAgICAgICAgY25waiA9PT0gJzExMTExMTExMTExMTExJyB8fFxuICAgICAgICAgICAgICAgIGNucGogPT09ICcyMjIyMjIyMjIyMjIyMicgfHxcbiAgICAgICAgICAgICAgICBjbnBqID09PSAnMzMzMzMzMzMzMzMzMzMnIHx8XG4gICAgICAgICAgICAgICAgY25waiA9PT0gJzQ0NDQ0NDQ0NDQ0NDQ0JyB8fFxuICAgICAgICAgICAgICAgIGNucGogPT09ICc1NTU1NTU1NTU1NTU1NScgfHxcbiAgICAgICAgICAgICAgICBjbnBqID09PSAnNjY2NjY2NjY2NjY2NjYnIHx8XG4gICAgICAgICAgICAgICAgY25waiA9PT0gJzc3Nzc3Nzc3Nzc3Nzc3JyB8fFxuICAgICAgICAgICAgICAgIGNucGogPT09ICc4ODg4ODg4ODg4ODg4OCcgfHxcbiAgICAgICAgICAgICAgICBjbnBqID09PSAnOTk5OTk5OTk5OTk5OTknXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFZhbGlkYSBEVnNcbiAgICAgICAgICAgIHNpemUgPSBjbnBqLmxlbmd0aCAtIDI7XG4gICAgICAgICAgICBudW1iZXJzID0gY25wai5zdWJzdHJpbmcoMCwgc2l6ZSk7XG4gICAgICAgICAgICBkaWdpdHMgPSBjbnBqLnN1YnN0cmluZyhzaXplKTtcbiAgICAgICAgICAgIHN1bSA9IDA7XG4gICAgICAgICAgICBwb3MgPSBzaXplIC0gNztcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSBzaXplOyBpID49IDE7IGktLSkge1xuICAgICAgICAgICAgICAgIHN1bSArPSBudW1iZXJzLmNoYXJBdChzaXplIC0gaSkgKiBwb3MtLTtcbiAgICAgICAgICAgICAgICBpZiAocG9zIDwgMikge1xuICAgICAgICAgICAgICAgICAgICBwb3MgPSA5O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlc3VsdCA9IHN1bSAlIDExIDwgMiA/IDAgOiAxMSAtIChzdW0gJSAxMSk7XG4gICAgICAgICAgICBpZiAocmVzdWx0ICE9PSBOdW1iZXIoZGlnaXRzLmNoYXJBdCgwKSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2UgO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzaXplID0gc2l6ZSArIDE7XG4gICAgICAgICAgICBudW1iZXJzID0gY25wai5zdWJzdHJpbmcoMCwgc2l6ZSk7XG4gICAgICAgICAgICBzdW0gPSAwO1xuICAgICAgICAgICAgcG9zID0gc2l6ZSAtIDc7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gc2l6ZTsgaSA+PSAxOyBpLS0pIHtcbiAgICAgICAgICAgICAgICBzdW0gKz0gbnVtYmVycy5jaGFyQXQoc2l6ZSAtIGkpICogcG9zLS07XG4gICAgICAgICAgICAgICAgaWYgKHBvcyA8IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zID0gOTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXN1bHQgPSBzdW0gJSAxMSA8IDIgPyAwIDogMTEgLSAoc3VtICUgMTEpO1xuICAgICAgICAgICAgaWYgKHJlc3VsdCAhPT0gTnVtYmVyKGRpZ2l0cy5jaGFyQXQoMSkpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG59XG5cbmV4cG9ydCBjb25zdCBjbnBqVmFsaWRhdG9yID0gbmV3IENOUEpWYWxpZGF0b3IoKTtcbiJdfQ==
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY25wai12YWxpZGF0b3IuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWdlc3Rhby1wZXNzb2FzL3BheXJvbGwtY29yZS8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvdXRpbHMvY25wai12YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7SUFBQTtJQXFJQSxDQUFDO0lBbklHOztLQUVDO0lBQ0QsaUNBQVMsR0FBVCxVQUFVLEtBQUs7UUFDWCxJQUFJLElBQUksR0FBRyxLQUFLLENBQUM7UUFFakIsSUFBSSxJQUFJLEVBQUU7WUFDTixJQUFJLElBQUksU0FBQSxFQUFFLE9BQU8sU0FBQSxFQUFFLE1BQU0sU0FBQSxFQUFFLEdBQUcsU0FBQSxFQUFFLEdBQUcsU0FBQSxFQUFFLE1BQU0sU0FBQSxDQUFDO1lBQzVDLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUVuQyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFO2dCQUNwQixPQUFPLElBQUksQ0FBQzthQUNmO1lBRUQscUNBQXFDO1lBQ3JDLElBQ0ksSUFBSSxLQUFLLGdCQUFnQjtnQkFDekIsSUFBSSxLQUFLLGdCQUFnQjtnQkFDekIsSUFBSSxLQUFLLGdCQUFnQjtnQkFDekIsSUFBSSxLQUFLLGdCQUFnQjtnQkFDekIsSUFBSSxLQUFLLGdCQUFnQjtnQkFDekIsSUFBSSxLQUFLLGdCQUFnQjtnQkFDekIsSUFBSSxLQUFLLGdCQUFnQjtnQkFDekIsSUFBSSxLQUFLLGdCQUFnQjtnQkFDekIsSUFBSSxLQUFLLGdCQUFnQjtnQkFDekIsSUFBSSxLQUFLLGdCQUFnQixFQUMzQjtnQkFDRSxPQUFPLEtBQUssQ0FBQzthQUNoQjtZQUVELGFBQWE7WUFDYixJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDdkIsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLElB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Q0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUNwRSxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUU7Z0JBQ1QsR0FBRyxHQUFHLENBQUMsQ0FBQzthQUNYO1NBQ0o7UUFDRCxJQUFNLE1BQU0sR0FBRyxHQUFHLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDbEQsT0FBTyxNQUFNLEtBQUssS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFFTyw2Q0FBcUIsR0FBN0IsVUFBOEIsS0FBYTtRQUN2QyxPQUFPLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFDTCxvQkFBQztBQUFELENBQUMsQUFySUQsSUFxSUM7O0FBRUQsTUFBTSxDQUFDLElBQU0sYUFBYSxHQUFHLElBQUksYUFBYSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmV4cG9ydCBjbGFzcyBDTlBKVmFsaWRhdG9yIHtcblxuICAgIC8qKlxuICAgKiBWYWxpZGEgc2UgbyBDTlBKIMOpIHZhbGlkby4gRGV2ZS1zZSBzZXIgaW5mb3JtYWRvIG8gY25waiBzZW0gbcOhc2NhcmEuXG4gICAqL1xuICAgIGNoZWNrQ05QSih2YWx1ZSkge1xuICAgICAgICBsZXQgY25waiA9IHZhbHVlO1xuXG4gICAgICAgIGlmIChjbnBqKSB7XG4gICAgICAgICAgICBsZXQgc2l6ZSwgbnVtYmVycywgZGlnaXRzLCBzdW0sIHBvcywgcmVzdWx0O1xuICAgICAgICAgICAgY25waiA9IGNucGoucmVwbGFjZSgvW15cXGRdKy9nLCAnJyk7XG5cbiAgICAgICAgICAgIGlmIChjbnBqLmxlbmd0aCAhPT0gMTQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gRWxpbWluYSBDTlBKcyBpbnZhbGlkb3MgY29uaGVjaWRvc1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIGNucGogPT09ICcwMDAwMDAwMDAwMDAwMCcgfHxcbiAgICAgICAgICAgICAgICBjbnBqID09PSAnMTExMTExMTExMTExMTEnIHx8XG4gICAgICAgICAgICAgICAgY25waiA9PT0gJzIyMjIyMjIyMjIyMjIyJyB8fFxuICAgICAgICAgICAgICAgIGNucGogPT09ICczMzMzMzMzMzMzMzMzMycgfHxcbiAgICAgICAgICAgICAgICBjbnBqID09PSAnNDQ0NDQ0NDQ0NDQ0NDQnIHx8XG4gICAgICAgICAgICAgICAgY25waiA9PT0gJzU1NTU1NTU1NTU1NTU1JyB8fFxuICAgICAgICAgICAgICAgIGNucGogPT09ICc2NjY2NjY2NjY2NjY2NicgfHxcbiAgICAgICAgICAgICAgICBjbnBqID09PSAnNzc3Nzc3Nzc3Nzc3NzcnIHx8XG4gICAgICAgICAgICAgICAgY25waiA9PT0gJzg4ODg4ODg4ODg4ODg4JyB8fFxuICAgICAgICAgICAgICAgIGNucGogPT09ICc5OTk5OTk5OTk5OTk5OSdcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gVmFsaWRhIERWc1xuICAgICAgICAgICAgc2l6ZSA9IGNucGoubGVuZ3RoIC0gMjtcbiAgICAgICAgICAgIG51bWJlcnMgPSBjbnBqLnN1YnN0cmluZygwLCBzaXplKTtcbiAgICAgICAgICAgIGRpZ2l0cyA9IGNucGouc3Vic3RyaW5nKHNpemUpO1xuICAgICAgICAgICAgc3VtID0gMDtcbiAgICAgICAgICAgIHBvcyA9IHNpemUgLSA3O1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IHNpemU7IGkgPj0gMTsgaS0tKSB7XG4gICAgICAgICAgICAgICAgc3VtICs9IG51bWJlcnMuY2hhckF0KHNpemUgLSBpKSAqIHBvcy0tO1xuICAgICAgICAgICAgICAgIGlmIChwb3MgPCAyKSB7XG4gICAgICAgICAgICAgICAgICAgIHBvcyA9IDk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzdWx0ID0gc3VtICUgMTEgPCAyID8gMCA6IDExIC0gKHN1bSAlIDExKTtcbiAgICAgICAgICAgIGlmIChyZXN1bHQgIT09IE51bWJlcihkaWdpdHMuY2hhckF0KDApKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZSA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNpemUgPSBzaXplICsgMTtcbiAgICAgICAgICAgIG51bWJlcnMgPSBjbnBqLnN1YnN0cmluZygwLCBzaXplKTtcbiAgICAgICAgICAgIHN1bSA9IDA7XG4gICAgICAgICAgICBwb3MgPSBzaXplIC0gNztcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSBzaXplOyBpID49IDE7IGktLSkge1xuICAgICAgICAgICAgICAgIHN1bSArPSBudW1iZXJzLmNoYXJBdChzaXplIC0gaSkgKiBwb3MtLTtcbiAgICAgICAgICAgICAgICBpZiAocG9zIDwgMikge1xuICAgICAgICAgICAgICAgICAgICBwb3MgPSA5O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlc3VsdCA9IHN1bSAlIDExIDwgMiA/IDAgOiAxMSAtIChzdW0gJSAxMSk7XG4gICAgICAgICAgICBpZiAocmVzdWx0ICE9PSBOdW1iZXIoZGlnaXRzLmNoYXJBdCgxKSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGNoZWNrQ05QSkFscGhhbnVtZXJpYyh2YWx1ZSkge1xuICAgICAgICBsZXQgY25waiA9IHZhbHVlO1xuXG4gICAgICAgIGlmIChjbnBqKSB7XG4gICAgICAgICAgICBjbnBqID0gY25wai5yZXBsYWNlKC9bXlxcZEEtWmEtel0vZywgJycpLnRvVXBwZXJDYXNlKCk7XG5cbiAgICAgICAgICAgIGlmIChjbnBqLmxlbmd0aCAhPT0gMTQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gVmFsaWRhIHF1ZSBkw61naXRvcyB2ZXJpZmljYWRvcmVzIHPDo28gbnVtw6lyaWNvc1xuICAgICAgICAgICAgaWYgKCEvXlxcZCQvLnRlc3QoY25wai5jaGFyQXQoMTIpKSB8fCAhL15cXGQkLy50ZXN0KGNucGouY2hhckF0KDEzKSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBjbnBqTm90VmFsaWQ6IHRydWUgfTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gRWxpbWluYSBDTlBKcyBpbnZhbGlkb3MgY29uaGVjaWRvc1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIGNucGogPT09ICcwMDAwMDAwMDAwMDAwMCcgfHxcbiAgICAgICAgICAgICAgICBjbnBqID09PSAnMTExMTExMTExMTExMTEnIHx8XG4gICAgICAgICAgICAgICAgY25waiA9PT0gJzIyMjIyMjIyMjIyMjIyJyB8fFxuICAgICAgICAgICAgICAgIGNucGogPT09ICczMzMzMzMzMzMzMzMzMycgfHxcbiAgICAgICAgICAgICAgICBjbnBqID09PSAnNDQ0NDQ0NDQ0NDQ0NDQnIHx8XG4gICAgICAgICAgICAgICAgY25waiA9PT0gJzU1NTU1NTU1NTU1NTU1JyB8fFxuICAgICAgICAgICAgICAgIGNucGogPT09ICc2NjY2NjY2NjY2NjY2NicgfHxcbiAgICAgICAgICAgICAgICBjbnBqID09PSAnNzc3Nzc3Nzc3Nzc3NzcnIHx8XG4gICAgICAgICAgICAgICAgY25waiA9PT0gJzg4ODg4ODg4ODg4ODg4JyB8fFxuICAgICAgICAgICAgICAgIGNucGogPT09ICc5OTk5OTk5OTk5OTk5OSdcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gVmFsaWRhIERWc1xuICAgICAgICAgICAgY29uc3Qgc2l6ZSA9IGNucGoubGVuZ3RoIC0gMjtcbiAgICAgICAgICAgIGNvbnN0IGRpZ2l0cyA9IGNucGouc3Vic3RyaW5nKHNpemUpO1xuICAgICAgICAgICAgaWYgKCF0aGlzLnZhbGlkYXRlQ25wakRpZ2l0KGNucGosIHNpemUsIE51bWJlcihkaWdpdHMuY2hhckF0KDApKSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghdGhpcy52YWxpZGF0ZUNucGpEaWdpdChjbnBqLCBzaXplICsgMSwgTnVtYmVyKGRpZ2l0cy5jaGFyQXQoMSkpKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWxpZGF0ZUNucGpEaWdpdChjbnBqOiBzdHJpbmcsIHNpemU6IG51bWJlciwgZGlnaXQ6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgICAgICBsZXQgbnVtYmVycyA9IGNucGouc3Vic3RyaW5nKDAsIHNpemUpO1xuICAgICAgICBsZXQgc3VtID0gMDtcbiAgICAgICAgbGV0IHBvcyA9IHNpemUgLSA3O1xuICAgICAgICBmb3IgKGxldCBpID0gc2l6ZTsgaSA+PSAxOyBpLS0pIHtcbiAgICAgICAgICAgIHN1bSArPSB0aGlzLmNvbnZlcnRUb0FzY2lpTWludXM0OChudW1iZXJzLmNoYXJBdChzaXplIC0gaSkpICogcG9zLS07XG4gICAgICAgICAgICBpZiAocG9zIDwgMikge1xuICAgICAgICAgICAgICAgIHBvcyA9IDk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gc3VtICUgMTEgPCAyID8gMCA6IDExIC0gKHN1bSAlIDExKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdCA9PT0gZGlnaXQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb252ZXJ0VG9Bc2NpaU1pbnVzNDgoaW5wdXQ6IHN0cmluZyk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBpbnB1dC5jaGFyQ29kZUF0KDApIC0gNDg7XG4gICAgfVxufVxuXG5leHBvcnQgY29uc3QgY25walZhbGlkYXRvciA9IG5ldyBDTlBKVmFsaWRhdG9yKCk7XG4iXX0=
|
|
@@ -19,27 +19,40 @@ var FormatUtilsService = /** @class */ (function () {
|
|
|
19
19
|
* Retorna o CNPJ formatado
|
|
20
20
|
* @param cnpj CNPJ
|
|
21
21
|
*/
|
|
22
|
-
FormatUtilsService.getFormattedCnpj = function (cnpj) {
|
|
22
|
+
FormatUtilsService.getFormattedCnpj = function (cnpj, isAlphanumericCNPJ) {
|
|
23
23
|
if (cnpj) {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
.replace(/
|
|
27
|
-
.
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
if (isAlphanumericCNPJ) {
|
|
25
|
+
// Remove caracteres especiais mantendo letras e números, e converte para maiúsculas
|
|
26
|
+
var cleanCnpj = cnpj.replace(/[^a-zA-Z0-9]/g, '').toUpperCase();
|
|
27
|
+
// Aplica formatação: AA.BBB.CCC/DDDD-EE
|
|
28
|
+
return cleanCnpj
|
|
29
|
+
.replace(/^([A-Z0-9]{2})([A-Z0-9])/, '$1.$2')
|
|
30
|
+
.replace(/^([A-Z0-9]{2}\.)([A-Z0-9]{3})([A-Z0-9])/, '$1$2.$3')
|
|
31
|
+
.replace(/^([A-Z0-9]{2}\.[A-Z0-9]{3}\.)([A-Z0-9]{3})([A-Z0-9])/, '$1$2/$3')
|
|
32
|
+
.replace(/^([A-Z0-9]{2}\.[A-Z0-9]{3}\.[A-Z0-9]{3}\/)([A-Z0-9]{4})([0-9])/, '$1$2-$3');
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
return cnpj
|
|
36
|
+
.replace(/\D/g, "")
|
|
37
|
+
.replace(/(\d{2})(\d)/, "$1.$2")
|
|
38
|
+
.replace(/(\d{3})(\d)/, "$1.$2")
|
|
39
|
+
.replace(/(\d{3})(\d)/, "$1/$2")
|
|
40
|
+
.replace(/(\d{4})(\d)/, "$1-$2");
|
|
41
|
+
}
|
|
30
42
|
}
|
|
31
43
|
return null;
|
|
32
44
|
};
|
|
33
45
|
/**
|
|
34
46
|
* Retorna a mascara do CPF/CNPJ
|
|
35
47
|
* @param key Valores possíveis são CPF ou CNPJ
|
|
48
|
+
* @param isAlphanumericCNPJ Define se o CNPJ pode ser alfanumérico.
|
|
36
49
|
*/
|
|
37
|
-
FormatUtilsService.getCpfCnpjMask = function (key) {
|
|
50
|
+
FormatUtilsService.getCpfCnpjMask = function (key, isAlphanumericCNPJ) {
|
|
38
51
|
switch (key) {
|
|
39
52
|
case "CPF":
|
|
40
53
|
return "999.999.999-99";
|
|
41
54
|
case "CNPJ":
|
|
42
|
-
return "99.999.999/9999-99";
|
|
55
|
+
return isAlphanumericCNPJ ? "**.***.***/****-99" : "99.999.999/9999-99";
|
|
43
56
|
default:
|
|
44
57
|
return "";
|
|
45
58
|
}
|
|
@@ -97,4 +110,4 @@ var FormatUtilsService = /** @class */ (function () {
|
|
|
97
110
|
return FormatUtilsService;
|
|
98
111
|
}());
|
|
99
112
|
export { FormatUtilsService };
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LXV0aWxzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWdlc3Rhby1wZXNzb2FzL3BheXJvbGwtY29yZS8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvdXRpbHMvZm9ybWF0LXV0aWxzL2Zvcm1hdC11dGlscy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQUE7SUE4R0EsQ0FBQztJQTVHRzs7O09BR0c7SUFDSSxrQ0FBZSxHQUF0QixVQUF1QixHQUFXO1FBQzlCLElBQUksR0FBRyxFQUFFO1lBQ0wsT0FBTyxHQUFHO2lCQUNMLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO2lCQUNsQixPQUFPLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQztpQkFDL0IsT0FBTyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUM7aUJBQy9CLE9BQU8sQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDeEM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksbUNBQWdCLEdBQXZCLFVBQXdCLElBQVksRUFBRSxrQkFBNEI7UUFDOUQsSUFBSSxJQUFJLEVBQUU7WUFDTixJQUFJLGtCQUFrQixFQUFFO2dCQUNwQixvRkFBb0Y7Z0JBQ3BGLElBQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUVsRSx3Q0FBd0M7Z0JBQ3hDLE9BQU8sU0FBUztxQkFDWCxPQUFPLENBQUMsMEJBQTBCLEVBQUUsT0FBTyxDQUFDO3FCQUM1QyxPQUFPLENBQUMseUNBQXlDLEVBQUUsU0FBUyxDQUFDO3FCQUM3RCxPQUFPLENBQUMsc0RBQXNELEVBQUUsU0FBUyxDQUFDO3FCQUMxRSxPQUFPLENBQUMsZ0VBQWdFLEVBQUUsU0FBUyxDQUFDLENBQUM7YUFDN0Y7aUJBQU07Z0JBQ0gsT0FBTyxJQUFJO3FCQUNOLE9B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cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEZvcm1hdFV0aWxzU2VydmljZSB7XG5cbiAgICAvKipcbiAgICAgKiBSZXRvcm5hIG8gQ1BGIGZvcm1hdGFkb1xuICAgICAqIEBwYXJhbSBjcGYgQ1BGXG4gICAgICovXG4gICAgc3RhdGljIGdldEZvcm1hdHRlZENwZihjcGY6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGlmIChjcGYpIHtcbiAgICAgICAgICAgIHJldHVybiBjcGZcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvXFxEL2csIFwiXCIpXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoLyhcXGR7M30pKFxcZCkvLCBcIiQxLiQyXCIpXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoLyhcXGR7M30pKFxcZCkvLCBcIiQxLiQyXCIpXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoLyhcXGR7M30pKFxcZCkvLCBcIiQxLSQyXCIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldG9ybmEgbyBDTlBKIGZvcm1hdGFkb1xuICAgICAqIEBwYXJhbSBjbnBqIENOUEpcbiAgICAgKi9cbiAgICBzdGF0aWMgZ2V0Rm9ybWF0dGVkQ25waihjbnBqOiBzdHJpbmcsIGlzQWxwaGFudW1lcmljQ05QSj86IGJvb2xlYW4pOiBzdHJpbmcge1xuICAgICAgICBpZiAoY25waikge1xuICAgICAgICAgICAgaWYgKGlzQWxwaGFudW1lcmljQ05QSikge1xuICAgICAgICAgICAgICAgIC8vIFJlbW92ZSBjYXJhY3RlcmVzIGVzcGVjaWFpcyBtYW50ZW5kbyBsZXRyYXMgZSBuw7ptZXJvcywgZSBjb252ZXJ0ZSBwYXJhIG1hacO6c2N1bGFzXG4gICAgICAgICAgICAgICAgY29uc3QgY2xlYW5DbnBqID0gY25wai5yZXBsYWNlKC9bXmEtekEtWjAtOV0vZywgJycpLnRvVXBwZXJDYXNlKCk7XG5cbiAgICAgICAgICAgICAgICAvLyBBcGxpY2EgZm9ybWF0YcOnw6NvOiBBQS5CQkIuQ0NDL0REREQtRUVcbiAgICAgICAgICAgICAgICByZXR1cm4gY2xlYW5DbnBqXG4gICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9eKFtBLVowLTldezJ9KShbQS1aMC05XSkvLCAnJDEuJDInKVxuICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgvXihbQS1aMC05XXsyfVxcLikoW0EtWjAtOV17M30pKFtBLVowLTldKS8sICckMSQyLiQzJylcbiAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoL14oW0EtWjAtOV17Mn1cXC5bQS1aMC05XXszfVxcLikoW0EtWjAtOV17M30pKFtBLVowLTldKS8sICckMSQyLyQzJylcbiAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoL14oW0EtWjAtOV17Mn1cXC5bQS1aMC05XXszfVxcLltBLVowLTldezN9XFwvKShbQS1aMC05XXs0fSkoWzAtOV0pLywgJyQxJDItJDMnKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNucGpcbiAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcRC9nLCBcIlwiKVxuICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgvKFxcZHsyfSkoXFxkKS8sIFwiJDEuJDJcIilcbiAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoLyhcXGR7M30pKFxcZCkvLCBcIiQxLiQyXCIpXG4gICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKC8oXFxkezN9KShcXGQpLywgXCIkMS8kMlwiKVxuICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgvKFxcZHs0fSkoXFxkKS8sIFwiJDEtJDJcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0b3JuYSBhIG1hc2NhcmEgZG8gQ1BGL0NOUEpcbiAgICAgKiBAcGFyYW0ga2V5IFZhbG9yZXMgcG9zc8OtdmVpcyBzw6NvIENQRiBvdSBDTlBKXG4gICAgICogQHBhcmFtIGlzQWxwaGFudW1lcmljQ05QSiBEZWZpbmUgc2UgbyBDTlBKIHBvZGUgc2VyIGFsZmFudW3DqXJpY28uXG4gICAgICovXG4gICAgc3RhdGljIGdldENwZkNucGpNYXNrKGtleTogc3RyaW5nLCBpc0FscGhhbnVtZXJpY0NOUEo/OiBib29sZWFuKSB7XG4gICAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgICAgICBjYXNlIFwiQ1BGXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiOTk5Ljk5OS45OTktOTlcIjtcbiAgICAgICAgICAgIGNhc2UgXCJDTlBKXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzQWxwaGFudW1lcmljQ05QSiA/IFwiKiouKioqLioqKi8qKioqLTk5XCIgOiBcIjk5Ljk5OS45OTkvOTk5OS05OVwiO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJcIjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICAvKipcbiAgICAgKiBNZXTDs2RvIHBhcmEgZm9ybWF0YXIgbyBuw7ptZXJvIGRlIHRlbGVmb25lLlxuICAgICAqIEBwYXJhbSB0ZWxlcGhvbmVOdW1iZXIgU3RyaW5nIGNvbnRlbmRvIG8gbsO6bWVybyBkZSB0ZWxlZm9uZS5cbiAgICAgKiBAcmV0dXJucyBTdHJpbmcgZm9ybWF0YWRhIGNvbSBvIG7Dum1lcm8gZGUgdGVsZWZvbmUuXG4gICAgICovXG4gICAgc3RhdGljIGdldEZvcm1hdHRlZFRlbGVwaG9uZU51bWJlcih0ZWxlcGhvbmVOdW1iZXI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGxldCB0ZWwgPSB0ZWxlcGhvbmVOdW1iZXIucmVwbGFjZSgvXFxEL2csICcnKTtcbiAgICAgICAgdGVsID0gdGVsLnJlcGxhY2UoL14wLywgJycpO1xuICAgICAgICBpZiAodGVsLmxlbmd0aCA+IDEwKSB7XG4gICAgICAgICAgLy8gIyMjIyMjIyMjIyAtPiAoIyMpICMjIyMjLSMjIyNcbiAgICAgICAgICB0ZWwgPSB0ZWwucmVwbGFjZSgvXihcXGR7Mn0pPyhcXGR7NX0pPyhcXGR7NH0pLiovLCAnKCQxKSAkMi0kMycpO1xuICAgICAgICB9IGVsc2UgaWYgKHRlbC5sZW5ndGggPiA5KSB7XG4gICAgICAgICAgLy8gQUEjIyMjIyMjIyMgLT4gKEFBKSAjIyMjLSMjIyNcbiAgICAgICAgICB0ZWwgPSB0ZWwucmVwbGFjZSgvXihcXGR7Mn0pPyhcXGR7NH0pPyhcXGR7NH0pLiovLCAnKCQxKSAkMi0kMycpO1xuICAgICAgICB9IGVsc2UgaWYgKHRlbC5sZW5ndGggPiA1KSB7XG4gICAgICAgICAgLy8gIyMjIyMjIyAtPiAoIyMpICMjIyMtI1xuICAgICAgICAgIHRlbCA9IHRlbC5yZXBsYWNlKC9eKFxcZHsyfSk/KFxcZHs0fSk/KFxcZHswLDR9KS4qLywgJygkMSkgJDItJDMnKTtcbiAgICAgICAgfSBlbHNlIGlmICh0ZWwubGVuZ3RoID4gMSkge1xuICAgICAgICAgIC8vICMjIyMgLT4gKCMjKSAjI1xuICAgICAgICAgIHRlbCA9IHRlbC5yZXBsYWNlKC9eKFxcZHsyfSk/KFxcZHswLDV9KS4qLywgJygkMSkgJDInKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAodGVsICE9PSAnJykgeyB0ZWwgPSB0ZWwucmVwbGFjZSgvXihcXGQqKS8sICcoJDEnKTsgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRlbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXTDs2RvIHBhcmEgZm9ybWF0YXIgbyBuw7ptZXJvIGRlIHRlbGVmb25lIGRlIHVtIGNhbXBvIElucHV0LlxuICAgICAqIEBwYXJhbSBldmVudCBFdmVudG8gZG8gSW5wdXQgZG8gY2FtcG8gZGUgdGVsZWZvbmUuXG4gICAgICovXG4gICAgc3RhdGljIGZvcm1hdFRlbGVwaG9uZUlucHV0RXZlbnQoZXZlbnQ6IGFueSkge1xuICAgICAgICBsZXQgdGVsZXBob25lTnVtYmVyID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuXG4gICAgICAgIC8vIFBlcm1pdGUgQmFja3NwYWNlIHBhcmEgdXN1w6FyaW8gcmVtb3ZlciBcIilcIiBlIFwiLVwiXG4gICAgICAgIGlmIChldmVudC5rZXlDb2RlID09PSA4ICYmICh0ZWxlcGhvbmVOdW1iZXIubGVuZ3RoID09PSA5IHx8IHRlbGVwaG9uZU51bWJlci5sZW5ndGggPT09IDQgfHwgdGVsZXBob25lTnVtYmVyLmxlbmd0aCA9PT0gMykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IEZvcm1hdFV0aWxzU2VydmljZS5nZXRGb3JtYXR0ZWRUZWxlcGhvbmVOdW1iZXIodGVsZXBob25lTnVtYmVyKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXTDs2RvIHBhcmEgZm9ybWF0YXIgYSBwb3JjZW50YWdlbSBwYXJhIDIgY2FzYXMgZGVjaW1haXMuXG4gICAgICogQHBhcmFtIHZhbHVlIE7Dum1lcm8gYSBzZXIgZm9ybWF0YWRvLlxuICAgICAqL1xuICAgIHN0YXRpYyBnZXRGb3JtYXR0ZWRQZXJjZW50YWdlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gcGFyc2VGbG9hdCh2YWx1ZSkudG9GaXhlZCgyKS5yZXBsYWNlKCcuJywgJywnKSArICclJztcbiAgICB9XG59XG4iXX0=
|
|
@@ -142,6 +142,62 @@ var GenericValidator = /** @class */ (function () {
|
|
|
142
142
|
}
|
|
143
143
|
return null;
|
|
144
144
|
};
|
|
145
|
+
/**
|
|
146
|
+
* Valida se o CNPJ Alfanumérico é valido. Deve-se ser informado o cpf sem máscara.
|
|
147
|
+
*/
|
|
148
|
+
GenericValidator.isValidCnpjAlphanumeric = function (control) {
|
|
149
|
+
var cnpj = control.value;
|
|
150
|
+
if (cnpj) {
|
|
151
|
+
cnpj = cnpj.replace(/[^\dA-Za-z]/g, '').toUpperCase();
|
|
152
|
+
if (cnpj.length !== 14) {
|
|
153
|
+
return null;
|
|
154
|
+
}
|
|
155
|
+
// Valida que dígitos verificadores são numéricos
|
|
156
|
+
if (!/^\d$/.test(cnpj.charAt(12)) || !/^\d$/.test(cnpj.charAt(13))) {
|
|
157
|
+
return { cnpjNotValid: true };
|
|
158
|
+
}
|
|
159
|
+
// Elimina CNPJs invalidos conhecidos
|
|
160
|
+
if (cnpj === '00000000000000' ||
|
|
161
|
+
cnpj === '11111111111111' ||
|
|
162
|
+
cnpj === '22222222222222' ||
|
|
163
|
+
cnpj === '33333333333333' ||
|
|
164
|
+
cnpj === '44444444444444' ||
|
|
165
|
+
cnpj === '55555555555555' ||
|
|
166
|
+
cnpj === '66666666666666' ||
|
|
167
|
+
cnpj === '77777777777777' ||
|
|
168
|
+
cnpj === '88888888888888' ||
|
|
169
|
+
cnpj === '99999999999999') {
|
|
170
|
+
return { cnpjNotValid: true };
|
|
171
|
+
}
|
|
172
|
+
// Valida DVs
|
|
173
|
+
var size = cnpj.length - 2;
|
|
174
|
+
var digits = cnpj.substring(size);
|
|
175
|
+
if (!GenericValidator.validateCnpjDigit(cnpj, size, Number(digits.charAt(0)))) {
|
|
176
|
+
return { cnpjNotValid: true };
|
|
177
|
+
}
|
|
178
|
+
if (!GenericValidator.validateCnpjDigit(cnpj, size + 1, Number(digits.charAt(1)))) {
|
|
179
|
+
return { cnpjNotValid: true };
|
|
180
|
+
}
|
|
181
|
+
return null;
|
|
182
|
+
}
|
|
183
|
+
return null;
|
|
184
|
+
};
|
|
185
|
+
GenericValidator.validateCnpjDigit = function (cnpj, size, digit) {
|
|
186
|
+
var numbers = cnpj.substring(0, size);
|
|
187
|
+
var sum = 0;
|
|
188
|
+
var pos = size - 7;
|
|
189
|
+
for (var i = size; i >= 1; i--) {
|
|
190
|
+
sum += this.convertToAsciiMinus48(numbers.charAt(size - i)) * pos--;
|
|
191
|
+
if (pos < 2) {
|
|
192
|
+
pos = 9;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
var result = sum % 11 < 2 ? 0 : 11 - (sum % 11);
|
|
196
|
+
return result === digit;
|
|
197
|
+
};
|
|
198
|
+
GenericValidator.convertToAsciiMinus48 = function (input) {
|
|
199
|
+
return input.charCodeAt(0) - 48;
|
|
200
|
+
};
|
|
145
201
|
/**
|
|
146
202
|
* Válida o número de telefone da chave PIX.
|
|
147
203
|
*/
|
|
@@ -164,4 +220,4 @@ var GenericValidator = /** @class */ (function () {
|
|
|
164
220
|
return GenericValidator;
|
|
165
221
|
}());
|
|
166
222
|
export { GenericValidator };
|
|
167
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy12YWxpZGF0b3JzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1nZXN0YW8tcGVzc29hcy9wYXlyb2xsLWNvcmUvIiwic291cmNlcyI6WyJjb21wb25lbnRzL3V0aWxzL2dlbmVyaWMtdmFsaWRhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTtJQUNJO0lBQWdCLENBQUM7SUFFakI7O09BRUc7SUFDSSwyQkFBVSxHQUFqQixVQUFrQixPQUF3QjtRQUN0QyxJQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBRTFCLElBQUksQ0FBQyxHQUFHO1lBQUUsT0FBTyxJQUFJLENBQUM7YUFDakIsSUFBSSxHQUFHLENBQUMsTUFBTSxJQUFJLEVBQUU7WUFBRSxPQUFPLElBQUksQ0FBQztRQUV2QyxJQUFNLGlCQUFpQixHQUFHLFlBQVksQ0FBQztRQUN2QyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLGFBQWEsR0FBRyxDQUFDLENBQUM7UUFDdEIsSUFBSSxhQUFhLEdBQUcsQ0FBQyxDQUFDO1FBRXRCLElBQ0ksR0FBRyxDQUFDLE1BQU0sS0FBSyxFQUFFO1lBQ2pCLEdBQUcsS0FBSyxhQUFhO1lBQ3JCLEdBQUcsS0FBSyxhQUFhO1lBQ3JCLEdBQUcsS0FBSyxhQUFhO1lBQ3JCLEdBQUcsS0FBSyxhQUFhO1lBQ3JCLEdBQUcsS0FBSyxhQUFhO1lBQ3JCLEdBQUcsS0FBSyxhQUFhO1lBQ3JCLEdBQUcsS0FBSyxhQUFhO1lBQ3JCLEdBQUcsS0FBSyxhQUFhO1lBQ3JCLEdBQUcsS0FBSyxhQUFhO1lBQ3JCLEdBQUcsS0FBSyxhQUFhO1lBRXJCLE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUM7YUFDM0I7WUFDRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUN6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SUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLGtCQUFrQixFQUFFLElBQUksRUFBRSxDQUFDO0lBQ3hFLENBQUM7SUFFRDs7T0FFRztJQUNJLDZCQUFZLEdBQW5CLFVBQW9CLE9BQXdCO1FBQ3hDLElBQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDL0IsSUFBTSxlQUFlLEdBQUcsc0NBQXNDLENBQUM7UUFFL0QsSUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVwRCxPQUFPLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUN4RCxDQUFDO0lBQ0wsdUJBQUM7QUFBRCxDQUFDLEFBeExELElBd0xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9ycywgQWJzdHJhY3RDb250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5cbmV4cG9ydCBjbGFzcyBHZW5lcmljVmFsaWRhdG9yIHtcbiAgICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhIG8gQ0VJIChDYWRhc3RybyBlc3BlY8OtZmljbyBkZSBJTlNTKSBkaWdpdGFkby5cbiAgICAgKi9cbiAgICBzdGF0aWMgaXNWYWxpZENlaShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0b3JzIHtcbiAgICAgICAgY29uc3QgY2VpID0gY29udHJvbC52YWx1ZTtcblxuICAgICAgICBpZiAoIWNlaSkgcmV0dXJuIG51bGw7XG4gICAgICAgIGVsc2UgaWYgKGNlaS5sZW5ndGggIT0gMTEpIHJldHVybiBudWxsO1xuXG4gICAgICAgIGNvbnN0IG11bHRpcGxpY2Fkb3JCYXNlID0gXCIzMjk4NzY1NDMyXCI7XG4gICAgICAgIGxldCB0b3RhbCA9IDA7XG4gICAgICAgIGxldCByZXN0byA9IDA7XG4gICAgICAgIGxldCBtdWx0aXBsaWNhbmRvID0gMDtcbiAgICAgICAgbGV0IG11bHRpcGxpY2Fkb3IgPSAwO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGNlaS5sZW5ndGggIT09IDExIHx8XG4gICAgICAgICAgICBjZWkgPT09IFwiMDAwMDAwMDAwMDBcIiB8fFxuICAgICAgICAgICAgY2VpID09PSBcIjExMTExMTExMTExXCIgfHxcbiAgICAgICAgICAgIGNlaSA9PT0gXCIyMjIyMjIyMjIyMlwiIHx8XG4gICAgICAgICAgICBjZWkgPT09IFwiMzMzMzMzMzMzMzNcIiB8fFxuICAgICAgICAgICAgY2VpID09PSBcIjQ0NDQ0NDQ0NDQ0XCIgfHxcbiAgICAgICAgICAgIGNlaSA9PT0gXCI1NTU1NTU1NTU1NVwiIHx8XG4gICAgICAgICAgICBjZWkgPT09IFwiNjY2NjY2NjY2NjZcIiB8fFxuICAgICAgICAgICAgY2VpID09PSBcIjc3Nzc3Nzc3Nzc3XCIgfHxcbiAgICAgICAgICAgIGNlaSA9PT0gXCI4ODg4ODg4ODg4OFwiIHx8XG4gICAgICAgICAgICBjZWkgPT09IFwiOTk5OTk5OTk5OTlcIlxuICAgICAgICApXG4gICAgICAgICAgICByZXR1cm4geyBpbnZhbGlkQ2VpOiB0cnVlIH07XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgbXVsdGlwbGljYW5kbyA9IHBhcnNlSW50KGNlaS5zdWJzdHJpbmcoaSwgaSArIDEpLCAxMCk7XG4gICAgICAgICAgICAgICAgbXVsdGlwbGljYWRvciA9IHBhcnNlSW50KG11bHRpcGxpY2Fkb3JCYXNlLnN1YnN0cmluZyhpLCBpICsgMSksIDEwKTtcbiAgICAgICAgICAgICAgICB0b3RhbCArPSBtdWx0aXBsaWNhbmRvICogbXVsdGlwbGljYWRvcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmVzdG8gPSAxMSAtICh0b3RhbCAlIDExKTtcbiAgICAgICAgICAgIHJlc3RvID0gcmVzdG8gPT09IDEwIHx8IHJlc3RvID09PSAxMSA/IDAgOiByZXN0bztcblxuICAgICAgICAgICAgY29uc3QgZGlnaXRvID0gcGFyc2VJbnQoXCJcIiArIGNlaS5jaGFyQXQoMTApLCAxMCk7XG4gICAgICAgICAgICByZXR1cm4gcmVzdG8gPT09IGRpZ2l0byA/IG51bGwgOiB7IGludmFsaWRDZWk6IHRydWUgfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYSBzZSBvIENQRiDDqSB2YWxpZG8uIERldmUtc2Ugc2VyIGluZm9ybWFkbyBvIGNwZiBzZW0gbcOhc2NhcmEuXG4gICAgICovXG4gICAgc3RhdGljIGlzVmFsaWRDcGYoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdG9ycyB7XG4gICAgICAgIGNvbnN0IGNwZiA9IGNvbnRyb2wudmFsdWU7XG4gICAgICAgIGlmIChjcGYpIHtcbiAgICAgICAgICAgIGxldCBudW1iZXJzLCBkaWdpdHMsIHN1bSwgaSwgcmVzdWx0LCBlcXVhbERpZ2l0cztcbiAgICAgICAgICAgIGVxdWFsRGlnaXRzID0gMTtcbiAgICAgICAgICAgIGlmIChjcGYubGVuZ3RoIDwgMTEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGNwZi5sZW5ndGggLSAxOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoY3BmLmNoYXJBdChpKSAhPT0gY3BmLmNoYXJBdChpICsgMSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZXF1YWxEaWdpdHMgPSAwO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWVxdWFsRGlnaXRzKSB7XG4gICAgICAgICAgICAgICAgbnVtYmVycyA9IGNwZi5zdWJzdHJpbmcoMCwgOSk7XG4gICAgICAgICAgICAgICAgZGlnaXRzID0gY3BmLnN1YnN0cmluZyg5KTtcbiAgICAgICAgICAgICAgICBzdW0gPSAwO1xuICAgICAgICAgICAgICAgIGZvciAoaSA9IDEwOyBpID4gMTsgaS0tKSB7XG4gICAgICAgICAgICAgICAgICAgIHN1bSArPSBudW1iZXJzLmNoYXJBdCgxMCAtIGkpICogaTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gc3VtICUgMTEgPCAyID8gMCA6IDExIC0gKHN1bSAlIDExKTtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICE9PSBOdW1iZXIoZGlnaXRzLmNoYXJBdCgwKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgY3BmTm90VmFsaWQ6IHRydWUgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbnVtYmVycyA9IGNwZi5zdWJzdHJpbmcoMCwgMTApO1xuICAgICAgICAgICAgICAgIHN1bSA9IDA7XG4gICAgICAgICAgICAgICAgZm9yIChpID0gMTE7IGkgPiAxOyBpLS0pIHtcbiAgICAgICAgICAgICAgICAgICAgc3VtICs9IG51bWJlcnMuY2hhckF0KDExIC0gaSkgKiBpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXN1bHQgPSBzdW0gJSAxMSA8IDIgPyAwIDogMTEgLSAoc3VtICUgMTEpO1xuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgIT09IE51bWJlcihkaWdpdHMuY2hhckF0KDEpKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBjcGZOb3RWYWxpZDogdHJ1ZSB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgY3BmTm90VmFsaWQ6IHRydWUgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGEgc2UgbyBDTlBKIMOpIHZhbGlkby4gRGV2ZS1zZSBzZXIgaW5mb3JtYWRvIG8gY3BmIHNlbSBtw6FzY2FyYS5cbiAgICAgKi9cbiAgICBzdGF0aWMgaXNWYWxpZENucGooY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdG9ycyB7XG4gICAgICAgIGxldCBjbnBqID0gY29udHJvbC52YWx1ZTtcblxuICAgICAgICBpZiAoY25waikge1xuICAgICAgICAgICAgbGV0IHNpemUsIG51bWJlcnMsIGRpZ2l0cywgc3VtLCBwb3MsIHJlc3VsdDtcbiAgICAgICAgICAgIGNucGogPSBjbnBqLnJlcGxhY2UoL1teXFxkXSsvZywgJycpO1xuXG4gICAgICAgICAgICBpZiAoY25wai5sZW5ndGggIT09IDE0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIEVsaW1pbmEgQ05QSnMgaW52YWxpZG9zIGNvbmhlY2lkb3NcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBjbnBqID09PSAnMDAwMDAwMDAwMDAwMDAnIHx8XG4gICAgICAgICAgICAgICAgY25waiA9PT0gJzExMTExMTExMTExMTExJyB8fFxuICAgICAgICAgICAgICAgIGNucGogPT09ICcyMjIyMjIyMjIyMjIyMicgfHxcbiAgICAgICAgICAgICAgICBjbnBqID09PSAnMzMzMzMzMzMzMzMzMzMnIHx8XG4gICAgICAgICAgICAgICAgY25waiA9PT0gJzQ0NDQ0NDQ0NDQ0NDQ0JyB8fFxuICAgICAgICAgICAgICAgIGNucGogPT09ICc1NTU1NTU1NTU1NTU1NScgfHxcbiAgICAgICAgICAgICAgICBjbnBqID09PSAnNjY2NjY2NjY2NjY2NjYnIHx8XG4gICAgICAgICAgICAgICAgY25waiA9PT0gJzc3Nzc3Nzc3Nzc3Nzc3JyB8fFxuICAgICAgICAgICAgICAgIGNucGogPT09ICc4ODg4ODg4ODg4ODg4OCcgfHxcbiAgICAgICAgICAgICAgICBjbnBqID09PSAnOTk5OTk5OTk5OTk5OTknXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBjbnBqTm90VmFsaWQ6IHRydWUgfTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gVmFsaWRhIERWc1xuICAgICAgICAgICAgc2l6ZSA9IGNucGoubGVuZ3RoIC0gMjtcbiAgICAgICAgICAgIG51bWJlcnMgPSBjbnBqLnN1YnN0cmluZygwLCBzaXplKTtcbiAgICAgICAgICAgIGRpZ2l0cyA9IGNucGouc3Vic3RyaW5nKHNpemUpO1xuICAgICAgICAgICAgc3VtID0gMDtcbiAgICAgICAgICAgIHBvcyA9IHNpemUgLSA3O1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IHNpemU7IGkgPj0gMTsgaS0tKSB7XG4gICAgICAgICAgICAgICAgc3VtICs9IG51bWJlcnMuY2hhckF0KHNpemUgLSBpKSAqIHBvcy0tO1xuICAgICAgICAgICAgICAgIGlmIChwb3MgPCAyKSB7XG4gICAgICAgICAgICAgICAgICAgIHBvcyA9IDk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzdWx0ID0gc3VtICUgMTEgPCAyID8gMCA6IDExIC0gKHN1bSAlIDExKTtcbiAgICAgICAgICAgIGlmIChyZXN1bHQgIT09IE51bWJlcihkaWdpdHMuY2hhckF0KDApKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGNucGpOb3RWYWxpZDogdHJ1ZSB9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzaXplID0gc2l6ZSArIDE7XG4gICAgICAgICAgICBudW1iZXJzID0gY25wai5zdWJzdHJpbmcoMCwgc2l6ZSk7XG4gICAgICAgICAgICBzdW0gPSAwO1xuICAgICAgICAgICAgcG9zID0gc2l6ZSAtIDc7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gc2l6ZTsgaSA+PSAxOyBpLS0pIHtcbiAgICAgICAgICAgICAgICBzdW0gKz0gbnVtYmVycy5jaGFyQXQoc2l6ZSAtIGkpICogcG9zLS07XG4gICAgICAgICAgICAgICAgaWYgKHBvcyA8IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zID0gOTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXN1bHQgPSBzdW0gJSAxMSA8IDIgPyAwIDogMTEgLSAoc3VtICUgMTEpO1xuICAgICAgICAgICAgaWYgKHJlc3VsdCAhPT0gTnVtYmVyKGRpZ2l0cy5jaGFyQXQoMSkpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgY25wak5vdFZhbGlkOiB0cnVlIH07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFbDoWxpZGEgbyBuw7ptZXJvIGRlIHRlbGVmb25lIGRhIGNoYXZlIFBJWC5cbiAgICAgKi9cbiAgICBzdGF0aWMgaXNWYWxpZFBob25lTnVtYmVyKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRvcnMge1xuICAgICAgICBsZXQgY2VsbFBob25lS2V5ID0gY29udHJvbC52YWx1ZSB8fCAnJztcbiAgICAgICAgY2VsbFBob25lS2V5ID0gY2VsbFBob25lS2V5LnJlcGxhY2UoL1tcXHMoKS1dL2csICcnKTtcbiAgICAgICAgY29uc3QgcmVnZXhOdW1iZXJUZWxlcGhvbmUgPSAvXlsxLTldW1xcZF17MSwyfVxcZHs4LDEwfSQvO1xuXG4gICAgICAgIGNvbnN0IGlzVmFsaWROdW1iZXJUZWxlcGhvbmUgPSByZWdleE51bWJlclRlbGVwaG9uZS50ZXN0KGNlbGxQaG9uZUtleSk7XG5cbiAgICAgICAgcmV0dXJuIGlzVmFsaWROdW1iZXJUZWxlcGhvbmUgPyBudWxsIDogeyBpbnZhbGlkUGhvbmVOdW1iZXI6IHRydWUgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGEgbyBlbWFpbCBkYSBjaGF2ZSBQSVguXG4gICAgICovXG4gICAgc3RhdGljIGlzVmFsaWRFbWFpbChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0b3JzIHtcbiAgICAgICAgY29uc3QgZW1haWxLZXkgPSBjb250cm9sLnZhbHVlO1xuICAgICAgICBjb25zdCByZWdleFZhbGlkRW1haWwgPSAvXltcXHctXFwuXStAW1xcdy1dKyhcXC5bXFx3LV17Miw0fSl7MSwyfSQvO1xuXG4gICAgICAgIGNvbnN0IGlzVmFsaWRFbWFpbCA9IHJlZ2V4VmFsaWRFbWFpbC50ZXN0KGVtYWlsS2V5KTtcblxuICAgICAgICByZXR1cm4gaXNWYWxpZEVtYWlsID8gbnVsbCA6IHsgaW52YWxpZEVtYWlsOiB0cnVlIH07XG4gICAgfVxufVxuIl19
|
|
223
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy12YWxpZGF0b3JzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1nZXN0YW8tcGVzc29hcy9wYXlyb2xsLWNvcmUvIiwic291cmNlcyI6WyJjb21wb25lbnRzL3V0aWxzL2dlbmVyaWMtdmFsaWRhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTtJQUNJO0lBQWdCLENBQUM7SUFFakI7O09BRUc7SUFDSSwyQkFBVSxHQUFqQixVQUFrQixPQUF3QjtRQUN0QyxJQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBRTFCLElBQUksQ0FBQyxHQUFHO1lBQUUsT0FBTyxJQUFJLENBQUM7YUFDakIsSUFBSSxHQUFHLENBQUMsTUFBTSxJQUFJLEVBQUU7WUFBRSxPQUFPLElBQUksQ0FBQztRQUV2QyxJQUFNLGlCQUFpQixHQUFHLFlBQVksQ0FBQztRQUN2QyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLGFBQWEsR0FBRyxDQUFDLENBQUM7UUFDdEIsSUFBSSxhQUFhLEdBQUcsQ0FBQyxDQUFDO1FBRXRCLElBQ0ksR0FBRyxDQUFDLE1BQU0sS0FBSyxFQUFFO1lBQ2pCLEdBQUcsS0FBSyxhQUFhO1lBQ3JCLEdBQUcsS0FBSyxhQUFhO1lBQ3JCLEdBQUcsS0FBSyxhQUFhO1lBQ3JCLEdBQUcsS0FBSyxhQUFhO1lBQ3JCLEdBQUcsS0FBSyxhQUFhO1lBQ3JCLEdBQUcsS0FBSyxhQUFhO1lBQ3JCLEdBQUcsS0FBSyxhQUFhO1lBQ3JCLEdBQUcsS0FBSyxhQUFhO1lBQ3JCLEdBQUcsS0FBSyxhQUFhO1lBQ3JCLEdBQUcsS0FBSyxhQUFhO1lBRXJCLE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUM7YUFDM0I7WUFDRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUN6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RUFBRSxFQUFFLENBQUMsQ0FBQztRQUNwRCxJQUFNLG9CQUFvQixHQUFHLDBCQUEwQixDQUFDO1FBRXhELElBQU0sc0JBQXNCLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRXZFLE9BQU8sc0JBQXNCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxrQkFBa0IsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUN4RSxDQUFDO0lBRUQ7O09BRUc7SUFDSSw2QkFBWSxHQUFuQixVQUFvQixPQUF3QjtRQUN4QyxJQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQy9CLElBQU0sZUFBZSxHQUFHLHNDQUFzQyxDQUFDO1FBRS9ELElBQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFcEQsT0FBTyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDeEQsQ0FBQztJQUNMLHVCQUFDO0FBQUQsQ0FBQyxBQTdQRCxJQTZQQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZhbGlkYXRvcnMsIEFic3RyYWN0Q29udHJvbCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuXG5leHBvcnQgY2xhc3MgR2VuZXJpY1ZhbGlkYXRvciB7XG4gICAgY29uc3RydWN0b3IoKSB7IH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYSBvIENFSSAoQ2FkYXN0cm8gZXNwZWPDrWZpY28gZGUgSU5TUykgZGlnaXRhZG8uXG4gICAgICovXG4gICAgc3RhdGljIGlzVmFsaWRDZWkoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdG9ycyB7XG4gICAgICAgIGNvbnN0IGNlaSA9IGNvbnRyb2wudmFsdWU7XG5cbiAgICAgICAgaWYgKCFjZWkpIHJldHVybiBudWxsO1xuICAgICAgICBlbHNlIGlmIChjZWkubGVuZ3RoICE9IDExKSByZXR1cm4gbnVsbDtcblxuICAgICAgICBjb25zdCBtdWx0aXBsaWNhZG9yQmFzZSA9IFwiMzI5ODc2NTQzMlwiO1xuICAgICAgICBsZXQgdG90YWwgPSAwO1xuICAgICAgICBsZXQgcmVzdG8gPSAwO1xuICAgICAgICBsZXQgbXVsdGlwbGljYW5kbyA9IDA7XG4gICAgICAgIGxldCBtdWx0aXBsaWNhZG9yID0gMDtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBjZWkubGVuZ3RoICE9PSAxMSB8fFxuICAgICAgICAgICAgY2VpID09PSBcIjAwMDAwMDAwMDAwXCIgfHxcbiAgICAgICAgICAgIGNlaSA9PT0gXCIxMTExMTExMTExMVwiIHx8XG4gICAgICAgICAgICBjZWkgPT09IFwiMjIyMjIyMjIyMjJcIiB8fFxuICAgICAgICAgICAgY2VpID09PSBcIjMzMzMzMzMzMzMzXCIgfHxcbiAgICAgICAgICAgIGNlaSA9PT0gXCI0NDQ0NDQ0NDQ0NFwiIHx8XG4gICAgICAgICAgICBjZWkgPT09IFwiNTU1NTU1NTU1NTVcIiB8fFxuICAgICAgICAgICAgY2VpID09PSBcIjY2NjY2NjY2NjY2XCIgfHxcbiAgICAgICAgICAgIGNlaSA9PT0gXCI3Nzc3Nzc3Nzc3N1wiIHx8XG4gICAgICAgICAgICBjZWkgPT09IFwiODg4ODg4ODg4ODhcIiB8fFxuICAgICAgICAgICAgY2VpID09PSBcIjk5OTk5OTk5OTk5XCJcbiAgICAgICAgKVxuICAgICAgICAgICAgcmV0dXJuIHsgaW52YWxpZENlaTogdHJ1ZSB9O1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTA7IGkrKykge1xuICAgICAgICAgICAgICAgIG11bHRpcGxpY2FuZG8gPSBwYXJzZUludChjZWkuc3Vic3RyaW5nKGksIGkgKyAxKSwgMTApO1xuICAgICAgICAgICAgICAgIG11bHRpcGxpY2Fkb3IgPSBwYXJzZUludChtdWx0aXBsaWNhZG9yQmFzZS5zdWJzdHJpbmcoaSwgaSArIDEpLCAxMCk7XG4gICAgICAgICAgICAgICAgdG90YWwgKz0gbXVsdGlwbGljYW5kbyAqIG11bHRpcGxpY2Fkb3I7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJlc3RvID0gMTEgLSAodG90YWwgJSAxMSk7XG4gICAgICAgICAgICByZXN0byA9IHJlc3RvID09PSAxMCB8fCByZXN0byA9PT0gMTEgPyAwIDogcmVzdG87XG5cbiAgICAgICAgICAgIGNvbnN0IGRpZ2l0byA9IHBhcnNlSW50KFwiXCIgKyBjZWkuY2hhckF0KDEwKSwgMTApO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3RvID09PSBkaWdpdG8gPyBudWxsIDogeyBpbnZhbGlkQ2VpOiB0cnVlIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGEgc2UgbyBDUEYgw6kgdmFsaWRvLiBEZXZlLXNlIHNlciBpbmZvcm1hZG8gbyBjcGYgc2VtIG3DoXNjYXJhLlxuICAgICAqL1xuICAgIHN0YXRpYyBpc1ZhbGlkQ3BmKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRvcnMge1xuICAgICAgICBjb25zdCBjcGYgPSBjb250cm9sLnZhbHVlO1xuICAgICAgICBpZiAoY3BmKSB7XG4gICAgICAgICAgICBsZXQgbnVtYmVycywgZGlnaXRzLCBzdW0sIGksIHJlc3VsdCwgZXF1YWxEaWdpdHM7XG4gICAgICAgICAgICBlcXVhbERpZ2l0cyA9IDE7XG4gICAgICAgICAgICBpZiAoY3BmLmxlbmd0aCA8IDExKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBjcGYubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNwZi5jaGFyQXQoaSkgIT09IGNwZi5jaGFyQXQoaSArIDEpKSB7XG4gICAgICAgICAgICAgICAgICAgIGVxdWFsRGlnaXRzID0gMDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFlcXVhbERpZ2l0cykge1xuICAgICAgICAgICAgICAgIG51bWJlcnMgPSBjcGYuc3Vic3RyaW5nKDAsIDkpO1xuICAgICAgICAgICAgICAgIGRpZ2l0cyA9IGNwZi5zdWJzdHJpbmcoOSk7XG4gICAgICAgICAgICAgICAgc3VtID0gMDtcbiAgICAgICAgICAgICAgICBmb3IgKGkgPSAxMDsgaSA+IDE7IGktLSkge1xuICAgICAgICAgICAgICAgICAgICBzdW0gKz0gbnVtYmVycy5jaGFyQXQoMTAgLSBpKSAqIGk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJlc3VsdCA9IHN1bSAlIDExIDwgMiA/IDAgOiAxMSAtIChzdW0gJSAxMSk7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCAhPT0gTnVtYmVyKGRpZ2l0cy5jaGFyQXQoMCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGNwZk5vdFZhbGlkOiB0cnVlIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG51bWJlcnMgPSBjcGYuc3Vic3RyaW5nKDAsIDEwKTtcbiAgICAgICAgICAgICAgICBzdW0gPSAwO1xuICAgICAgICAgICAgICAgIGZvciAoaSA9IDExOyBpID4gMTsgaS0tKSB7XG4gICAgICAgICAgICAgICAgICAgIHN1bSArPSBudW1iZXJzLmNoYXJBdCgxMSAtIGkpICogaTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gc3VtICUgMTEgPCAyID8gMCA6IDExIC0gKHN1bSAlIDExKTtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICE9PSBOdW1iZXIoZGlnaXRzLmNoYXJBdCgxKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgY3BmTm90VmFsaWQ6IHRydWUgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGNwZk5vdFZhbGlkOiB0cnVlIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhIHNlIG8gQ05QSiDDqSB2YWxpZG8uIERldmUtc2Ugc2VyIGluZm9ybWFkbyBvIGNwZiBzZW0gbcOhc2NhcmEuXG4gICAgICovXG4gICAgc3RhdGljIGlzVmFsaWRDbnBqKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRvcnMge1xuICAgICAgICBsZXQgY25waiA9IGNvbnRyb2wudmFsdWU7XG5cbiAgICAgICAgaWYgKGNucGopIHtcbiAgICAgICAgICAgIGxldCBzaXplLCBudW1iZXJzLCBkaWdpdHMsIHN1bSwgcG9zLCByZXN1bHQ7XG4gICAgICAgICAgICBjbnBqID0gY25wai5yZXBsYWNlKC9bXlxcZF0rL2csICcnKTtcblxuICAgICAgICAgICAgaWYgKGNucGoubGVuZ3RoICE9PSAxNCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBFbGltaW5hIENOUEpzIGludmFsaWRvcyBjb25oZWNpZG9zXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgY25waiA9PT0gJzAwMDAwMDAwMDAwMDAwJyB8fFxuICAgICAgICAgICAgICAgIGNucGogPT09ICcxMTExMTExMTExMTExMScgfHxcbiAgICAgICAgICAgICAgICBjbnBqID09PSAnMjIyMjIyMjIyMjIyMjInIHx8XG4gICAgICAgICAgICAgICAgY25waiA9PT0gJzMzMzMzMzMzMzMzMzMzJyB8fFxuICAgICAgICAgICAgICAgIGNucGogPT09ICc0NDQ0NDQ0NDQ0NDQ0NCcgfHxcbiAgICAgICAgICAgICAgICBjbnBqID09PSAnNTU1NTU1NTU1NTU1NTUnIHx8XG4gICAgICAgICAgICAgICAgY25waiA9PT0gJzY2NjY2NjY2NjY2NjY2JyB8fFxuICAgICAgICAgICAgICAgIGNucGogPT09ICc3Nzc3Nzc3Nzc3Nzc3NycgfHxcbiAgICAgICAgICAgICAgICBjbnBqID09PSAnODg4ODg4ODg4ODg4ODgnIHx8XG4gICAgICAgICAgICAgICAgY25waiA9PT0gJzk5OTk5OTk5OTk5OTk5J1xuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgY25wak5vdFZhbGlkOiB0cnVlIH07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFZhbGlkYSBEVnNcbiAgICAgICAgICAgIHNpemUgPSBjbnBqLmxlbmd0aCAtIDI7XG4gICAgICAgICAgICBudW1iZXJzID0gY25wai5zdWJzdHJpbmcoMCwgc2l6ZSk7XG4gICAgICAgICAgICBkaWdpdHMgPSBjbnBqLnN1YnN0cmluZyhzaXplKTtcbiAgICAgICAgICAgIHN1bSA9IDA7XG4gICAgICAgICAgICBwb3MgPSBzaXplIC0gNztcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSBzaXplOyBpID49IDE7IGktLSkge1xuICAgICAgICAgICAgICAgIHN1bSArPSBudW1iZXJzLmNoYXJBdChzaXplIC0gaSkgKiBwb3MtLTtcbiAgICAgICAgICAgICAgICBpZiAocG9zIDwgMikge1xuICAgICAgICAgICAgICAgICAgICBwb3MgPSA5O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlc3VsdCA9IHN1bSAlIDExIDwgMiA/IDAgOiAxMSAtIChzdW0gJSAxMSk7XG4gICAgICAgICAgICBpZiAocmVzdWx0ICE9PSBOdW1iZXIoZGlnaXRzLmNoYXJBdCgwKSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBjbnBqTm90VmFsaWQ6IHRydWUgfTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc2l6ZSA9IHNpemUgKyAxO1xuICAgICAgICAgICAgbnVtYmVycyA9IGNucGouc3Vic3RyaW5nKDAsIHNpemUpO1xuICAgICAgICAgICAgc3VtID0gMDtcbiAgICAgICAgICAgIHBvcyA9IHNpemUgLSA3O1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IHNpemU7IGkgPj0gMTsgaS0tKSB7XG4gICAgICAgICAgICAgICAgc3VtICs9IG51bWJlcnMuY2hhckF0KHNpemUgLSBpKSAqIHBvcy0tO1xuICAgICAgICAgICAgICAgIGlmIChwb3MgPCAyKSB7XG4gICAgICAgICAgICAgICAgICAgIHBvcyA9IDk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzdWx0ID0gc3VtICUgMTEgPCAyID8gMCA6IDExIC0gKHN1bSAlIDExKTtcbiAgICAgICAgICAgIGlmIChyZXN1bHQgIT09IE51bWJlcihkaWdpdHMuY2hhckF0KDEpKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGNucGpOb3RWYWxpZDogdHJ1ZSB9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIFZhbGlkYSBzZSBvIENOUEogQWxmYW51bcOpcmljbyDDqSB2YWxpZG8uIERldmUtc2Ugc2VyIGluZm9ybWFkbyBvIGNwZiBzZW0gbcOhc2NhcmEuXG4gICAgKi9cbiAgICBzdGF0aWMgaXNWYWxpZENucGpBbHBoYW51bWVyaWMoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdG9ycyB7XG4gICAgICAgIGxldCBjbnBqID0gY29udHJvbC52YWx1ZTtcblxuICAgICAgICBpZiAoY25waikge1xuICAgICAgICAgICAgY25waiA9IGNucGoucmVwbGFjZSgvW15cXGRBLVphLXpdL2csICcnKS50b1VwcGVyQ2FzZSgpO1xuXG4gICAgICAgICAgICBpZiAoY25wai5sZW5ndGggIT09IDE0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFZhbGlkYSBxdWUgZMOtZ2l0b3MgdmVyaWZpY2Fkb3JlcyBzw6NvIG51bcOpcmljb3NcbiAgICAgICAgICAgIGlmICghL15cXGQkLy50ZXN0KGNucGouY2hhckF0KDEyKSkgfHwgIS9eXFxkJC8udGVzdChjbnBqLmNoYXJBdCgxMykpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgY25wak5vdFZhbGlkOiB0cnVlIH07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIEVsaW1pbmEgQ05QSnMgaW52YWxpZG9zIGNvbmhlY2lkb3NcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBjbnBqID09PSAnMDAwMDAwMDAwMDAwMDAnIHx8XG4gICAgICAgICAgICAgICAgY25waiA9PT0gJzExMTExMTExMTExMTExJyB8fFxuICAgICAgICAgICAgICAgIGNucGogPT09ICcyMjIyMjIyMjIyMjIyMicgfHxcbiAgICAgICAgICAgICAgICBjbnBqID09PSAnMzMzMzMzMzMzMzMzMzMnIHx8XG4gICAgICAgICAgICAgICAgY25waiA9PT0gJzQ0NDQ0NDQ0NDQ0NDQ0JyB8fFxuICAgICAgICAgICAgICAgIGNucGogPT09ICc1NTU1NTU1NTU1NTU1NScgfHxcbiAgICAgICAgICAgICAgICBjbnBqID09PSAnNjY2NjY2NjY2NjY2NjYnIHx8XG4gICAgICAgICAgICAgICAgY25waiA9PT0gJzc3Nzc3Nzc3Nzc3Nzc3JyB8fFxuICAgICAgICAgICAgICAgIGNucGogPT09ICc4ODg4ODg4ODg4ODg4OCcgfHxcbiAgICAgICAgICAgICAgICBjbnBqID09PSAnOTk5OTk5OTk5OTk5OTknXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBjbnBqTm90VmFsaWQ6IHRydWUgfTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gVmFsaWRhIERWc1xuICAgICAgICAgICAgY29uc3Qgc2l6ZSA9IGNucGoubGVuZ3RoIC0gMjtcbiAgICAgICAgICAgIGNvbnN0IGRpZ2l0cyA9IGNucGouc3Vic3RyaW5nKHNpemUpO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBpZiAoIUdlbmVyaWNWYWxpZGF0b3IudmFsaWRhdGVDbnBqRGlnaXQoY25waiwgc2l6ZSwgTnVtYmVyKGRpZ2l0cy5jaGFyQXQoMCkpKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGNucGpOb3RWYWxpZDogdHJ1ZSB9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIUdlbmVyaWNWYWxpZGF0b3IudmFsaWRhdGVDbnBqRGlnaXQoY25waiwgc2l6ZSArIDEsIE51bWJlcihkaWdpdHMuY2hhckF0KDEpKSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBjbnBqTm90VmFsaWQ6IHRydWUgfTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgdmFsaWRhdGVDbnBqRGlnaXQoY25wajogc3RyaW5nLCBzaXplOiBudW1iZXIsIGRpZ2l0OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgbnVtYmVycyA9IGNucGouc3Vic3RyaW5nKDAsIHNpemUpO1xuICAgICAgICBsZXQgc3VtID0gMDtcbiAgICAgICAgbGV0IHBvcyA9IHNpemUgLSA3O1xuICAgICAgICBmb3IgKGxldCBpID0gc2l6ZTsgaSA+PSAxOyBpLS0pIHtcbiAgICAgICAgICAgIHN1bSArPSB0aGlzLmNvbnZlcnRUb0FzY2lpTWludXM0OChudW1iZXJzLmNoYXJBdChzaXplIC0gaSkpICogcG9zLS07XG4gICAgICAgICAgICBpZiAocG9zIDwgMikge1xuICAgICAgICAgICAgICAgIHBvcyA9IDk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gc3VtICUgMTEgPCAyID8gMCA6IDExIC0gKHN1bSAlIDExKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdCA9PT0gZGlnaXQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgY29udmVydFRvQXNjaWlNaW51czQ4KGlucHV0OiBzdHJpbmcpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gaW5wdXQuY2hhckNvZGVBdCgwKSAtIDQ4O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFbDoWxpZGEgbyBuw7ptZXJvIGRlIHRlbGVmb25lIGRhIGNoYXZlIFBJWC5cbiAgICAgKi9cbiAgICBzdGF0aWMgaXNWYWxpZFBob25lTnVtYmVyKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRvcnMge1xuICAgICAgICBsZXQgY2VsbFBob25lS2V5ID0gY29udHJvbC52YWx1ZSB8fCAnJztcbiAgICAgICAgY2VsbFBob25lS2V5ID0gY2VsbFBob25lS2V5LnJlcGxhY2UoL1tcXHMoKS1dL2csICcnKTtcbiAgICAgICAgY29uc3QgcmVnZXhOdW1iZXJUZWxlcGhvbmUgPSAvXlsxLTldW1xcZF17MSwyfVxcZHs4LDEwfSQvO1xuXG4gICAgICAgIGNvbnN0IGlzVmFsaWROdW1iZXJUZWxlcGhvbmUgPSByZWdleE51bWJlclRlbGVwaG9uZS50ZXN0KGNlbGxQaG9uZUtleSk7XG5cbiAgICAgICAgcmV0dXJuIGlzVmFsaWROdW1iZXJUZWxlcGhvbmUgPyBudWxsIDogeyBpbnZhbGlkUGhvbmVOdW1iZXI6IHRydWUgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGEgbyBlbWFpbCBkYSBjaGF2ZSBQSVguXG4gICAgICovXG4gICAgc3RhdGljIGlzVmFsaWRFbWFpbChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0b3JzIHtcbiAgICAgICAgY29uc3QgZW1haWxLZXkgPSBjb250cm9sLnZhbHVlO1xuICAgICAgICBjb25zdCByZWdleFZhbGlkRW1haWwgPSAvXltcXHctXFwuXStAW1xcdy1dKyhcXC5bXFx3LV17Miw0fSl7MSwyfSQvO1xuXG4gICAgICAgIGNvbnN0IGlzVmFsaWRFbWFpbCA9IHJlZ2V4VmFsaWRFbWFpbC50ZXN0KGVtYWlsS2V5KTtcblxuICAgICAgICByZXR1cm4gaXNWYWxpZEVtYWlsID8gbnVsbCA6IHsgaW52YWxpZEVtYWlsOiB0cnVlIH07XG4gICAgfVxufVxuIl19
|