ets-fe-ng-sdk 17.0.184 → 17.0.185
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/Shared/directives/input-formatter.directive.mjs +14 -6
- package/fesm2022/ets-fe-ng-sdk.mjs +13 -5
- package/fesm2022/ets-fe-ng-sdk.mjs.map +1 -1
- package/lib/Services/utility.service.d.ts +1 -1
- package/lib/Shared/components/info-dialog/info-dialog.component.d.ts +1 -1
- package/lib/Shared/components/table-plain/table.pipe.d.ts +1 -1
- package/lib/Shared/directives/input-formatter.directive.d.ts +1 -1
- package/package.json +1 -1
|
@@ -104,7 +104,7 @@ export class InputFormatDirective {
|
|
|
104
104
|
else
|
|
105
105
|
this._value = this.formatterService.removeCommas(value);
|
|
106
106
|
else if (this.oType == 'percentage')
|
|
107
|
-
this._value = String(value)?.replace('%', '');
|
|
107
|
+
this._value = this.formatterService.removeCommas(String(value)?.replace('%', ''));
|
|
108
108
|
else
|
|
109
109
|
this._value = value;
|
|
110
110
|
// here to notify Angular Validators
|
|
@@ -251,13 +251,21 @@ export class InputFormatDirective {
|
|
|
251
251
|
}
|
|
252
252
|
}
|
|
253
253
|
/**
|
|
254
|
-
* Removes commas from the numbers
|
|
254
|
+
* Removes commas and percentage from the numbers
|
|
255
255
|
* @returns
|
|
256
256
|
*/
|
|
257
257
|
unFormatPercentage() {
|
|
258
|
-
|
|
259
|
-
this.
|
|
260
|
-
|
|
258
|
+
const value = String(this.elementRef.nativeElement.value || '');
|
|
259
|
+
if (this.isLastCharacterDecimalSeparator(value)) {
|
|
260
|
+
return;
|
|
261
|
+
}
|
|
262
|
+
this._value = this.formatterService.removeCommas(value.replace('%', ''));
|
|
263
|
+
if (value) {
|
|
264
|
+
this.elementRef.nativeElement.value = this._value;
|
|
265
|
+
}
|
|
266
|
+
else {
|
|
267
|
+
this.elementRef.nativeElement.value = null;
|
|
268
|
+
}
|
|
261
269
|
}
|
|
262
270
|
setDisabledState(val) {
|
|
263
271
|
this.elementRef.nativeElement.disabled = !!val;
|
|
@@ -363,4 +371,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImpor
|
|
|
363
371
|
providedIn: 'root',
|
|
364
372
|
}]
|
|
365
373
|
}] });
|
|
366
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZm9ybWF0dGVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvZGlyZWN0aXZlcy9pbnB1dC1mb3JtYXR0ZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLHdCQUF3QixJQUFJLHdCQUF3QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0YsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUVwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFpQjNDLE1BQU0sT0FBTyxvQkFBb0I7SUFHL0IsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxRQUFRLElBQUksTUFBTSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUM7SUFDckYsQ0FBQztJQUNELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsWUFBWSxJQUFJLE1BQU0sSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUM7SUFDN0YsQ0FBQztJQUNELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FBQztJQUMxQyxDQUFDO0lBQ0QsSUFBSSxZQUFZO1FBQ2Qs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QyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNySCxDQUFDOzhHQS9CVSxtQkFBbUI7NEdBQW5CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFEL0IsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRTs7QUFtQ2pDLE1BQU0sS0FBSyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztBQUNyQyxvQkFBb0I7QUFNcEIsTUFBTSxPQUFPLDJCQUEyQjs4R0FBM0IsMkJBQTJCOytHQUEzQiwyQkFBMkIsWUFKNUIsWUFBWSxFQTFTWCxvQkFBb0IsYUFBcEIsb0JBQW9COytHQThTcEIsMkJBQTJCLGFBRjNCLENBQUMsV0FBVyxFQUFFLG1CQUFtQixDQUFDLFlBRm5DLFlBQVk7OzJGQUlYLDJCQUEyQjtrQkFMdkMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsR0FBRyxLQUFLLENBQUM7b0JBQ2pDLE9BQU8sRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDO29CQUNuQixTQUFTLEVBQUUsQ0FBQyxXQUFXLEVBQUUsbUJBQW1CLENBQUM7aUJBQzlDOztBQU1ELE1BQU0sT0FBTyxrQkFBa0I7OEdBQWxCLGtCQUFrQjtrSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07OzJGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGZvcndhcmRSZWYsIEhvc3RMaXN0ZW5lciwgaW5qZWN0LCBJbnB1dCwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1BVF9JTlBVVF9WQUxVRV9BQ0NFU1NPUiBhcyBNQVRfSU5QVVRfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIERlY2ltYWxQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElucHV0VHlwZSB9IGZyb20gJy4uL21vZGVscy9pbmRleC5tb2RlbCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2lucHV0Om5vdChbbWF0SW5wdXRdKTpub3QoW25vZm9ybWF0XSknLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBNQVRfSU5QVVRfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogSW5wdXRGb3JtYXREaXJlY3RpdmUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IElucHV0Rm9ybWF0RGlyZWN0aXZlKSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIElucHV0Rm9ybWF0RGlyZWN0aXZlIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBwcml2YXRlIGVsOiBIVE1MSW5wdXRFbGVtZW50O1xuICBvVHlwZTogSW5wdXRUeXBlO1xuICBnZXQgbm9Gb3JtYXR0aW5nKCkge1xuICAgIHJldHVybiB0aGlzLmVsPy5kYXRhc2V0Lm5vZm9ybWF0ID09ICd0cnVlJyB8fCB0aGlzLmlucHV0Rm9ybWF0U2VydmljZS5wYWdlTm9mb3JtYXQ7XG4gIH1cbiAgZ2V0IG5vVGV4dEZvcm1hdCgpIHtcbiAgICByZXR1cm4gdGhpcy5lbD8uZGF0YXNldC5ub3RleHRmb3JtYXQgPT0gJ3RydWUnIHx8IHRoaXMuaW5wdXRGb3JtYXRTZXJ2aWNlLnBhZ2VOb1RleHRGb3JtYXQ7XG4gIH1cbiAgZ2V0IGlzRGVidWcoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWw/LmRhdGFzZXQuZGVidWcgPT0gJ3RydWUnO1xuICB9XG4gIGdldCBzaG91bGRGb3JtYXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWNjZXB0ZWRUeXBlLmluY2x1ZGVzKHRoaXMub1R5cGUpO1xuICB9XG4gIHJlYWRvbmx5IGFjY2VwdGVkVHlwZTogSW5wdXRUeXBlW10gPSBbJ3RleHQnLCAnbnVtYmVyJywgJ3BlcmNlbnRhZ2UnXTtcblxuICBwdWJsaWMgaW5wdXRGb3JtYXRTZXJ2aWNlID0gaW5qZWN0KElucHV0Rm9ybWF0U2VydmljZSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+LFxuICAgIHByaXZhdGUgZm9ybWF0dGVyU2VydmljZTogSW5wdXRGb3JtYXR0ZXJzUGlwZSxcbiAgICBwcml2YXRlIGRlY2ltYWxQaXBlOiBEZWNpbWFsUGlwZSxcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZWwgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB0aGlzLm9UeXBlID0gdGhpcy5lbC5kYXRhc2V0Lm90eXBlID09ICdwZXJjZW50YWdlJyA/ICdwZXJjZW50YWdlJyA6ICgodGhpcy5lbC50eXBlICsgJycpIGFzIGFueSk7XG4gICAgaWYgKCF0aGlzLm5vRm9ybWF0dGluZykge1xuICAgICAgaWYgKHRoaXMub1R5cGUgPT0gJ251bWJlcicpIHtcbiAgICAgICAgdGhpcy5lbC50eXBlID0gJ3RleHQnO1xuICAgICAgICB0aGlzLmVsLnZhbHVlID0gdGhpcy5kZWNpbWFsUGlwZS50cmFuc2Zvcm0odGhpcy5lbC52YWx1ZS5yZXBsYWNlKC9bXlxcZC4tXS9nLCAnJyksICcxLjAtOScpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMub1R5cGUgPT0gJ3BlcmNlbnRhZ2UnKSB7XG4gICAgICAgIHRoaXMuZWwudHlwZSA9ICd0ZXh0JztcbiAgICAgICAgdGhpcy5lbC52YWx1ZSA9IHRoaXMuZWwudmFsdWUgPyB0aGlzLmVsLnZhbHVlICsgJyUnIDogJzAlJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBkZWJ1Z2dlcjtcbiAgICBpZiAodGhpcy5fdmFsdWUpIHRoaXMudmFsdWUgPSB0aGlzLl92YWx1ZTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5lbC5kYXRhc2V0Lm90eXBlID09ICdwZXJjZW50YWdlJyAmJiAhdGhpcy5ub0Zvcm1hdHRpbmcgJiYgdGhpcy5lbC5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygncG9zaXRpb24tcmVsYXRpdmUnKSkge1xuICAgICAgLy8gZGVidWdnZXJcbiAgICAgIGNvbnN0IGljb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpJyk7XG4gICAgICBpY29uLmNsYXNzTmFtZSA9ICdpbnB1dC1pY29uIGZhIGZhLXBlcmNlbnRhZ2UnO1xuICAgICAgdGhpcy5lbC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShpY29uLCB0aGlzLmVsKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMub1R5cGUgPT0gJ251bWJlcicgJiYgIXRoaXMubm9Gb3JtYXR0aW5nICYmIHRoaXMuZWwucGFyZW50RWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ3Bvc2l0aW9uLXJlbGF0aXZlJykpIHtcbiAgICAgIGNvbnN0IGljb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpJyk7XG4gICAgICBpY29uLmNsYXNzTmFtZSA9ICdpbnB1dC1pY29uIGZhIGZhLWhhc2h0YWcnO1xuICAgICAgdGhpcy5lbC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShpY29uLCB0aGlzLmVsKTtcbiAgICAgIC8vIHRoaXMuZWwucGFyZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKCdwb3NpdGlvbi1yZWxhdGl2ZScpO1xuICAgIH1cbiAgICBpZiAodGhpcy5vVHlwZSA9PSAnY2hlY2tib3gnKSB7XG4gICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgIC8vIHRoaXMudmFsdWUgPSAodGhpcy5lbC5jaGVja2VkID09IHRydWUpIGFzIGFueTtcbiAgICAgIHRoaXMud3JpdGVWYWx1ZSh0aGlzLmVsLmNoZWNrZWQgPT0gdHJ1ZSk7XG4gICAgICB0aGlzLmlucHV0KHRoaXMuZWwuY2hlY2tlZCA9PSB0cnVlKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBfdmFsdWU6IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBudWxsO1xuXG4gIGdldCB2YWx1ZSgpOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG5cbiAgQElucHV0KCd2YWx1ZScpXG4gIHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG51bGwpIHtcbiAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgIC8vIGRlYnVnZ2VyO1xuICAgIGlmICh0aGlzLmlzRGVidWcpIGRlYnVnZ2VyO1xuICAgIGlmICh0aGlzLm5vRm9ybWF0dGluZykgdGhpcy5zZXRJbnB1dCh2YWx1ZSBhcyBhbnkpO1xuICAgIGVsc2UgaWYgKHRoaXMub1R5cGUgPT0gJ251bWJlcicpIHRoaXMuc2V0TnVtYmVySW5wdXQodmFsdWUgYXMgYW55KTtcbiAgICBlbHNlIGlmICh0aGlzLm9UeXBlID09ICdwZXJjZW50YWdlJykgdGhpcy5zZXRQZXJjZW50YWdlSW5wdXQodmFsdWUgYXMgYW55KTtcbiAgICBlbHNlIGlmICh0aGlzLm9UeXBlID09ICd0ZXh0JyAmJiAhdGhpcy5ub1RleHRGb3JtYXQpIHtcbiAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5mb3JtYXR0ZXJTZXJ2aWNlLnRvVGl0bGVDYXNlKHZhbHVlIGFzIGFueSk7XG4gICAgICB0aGlzLnNldFRleHRJbnB1dCh2YWx1ZSBhcyBhbnkpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5vVHlwZSA9PSAnY2hlY2tib3gnKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlID09IHRydWUgfHwgdmFsdWUgPT0gJ3RydWUnO1xuICAgICAgdGhpcy5zZXRDaGVja2JveElucHV0KHZhbHVlIGFzIGFueSk7XG4gICAgfSBlbHNlIHRoaXMuc2V0SW5wdXQodmFsdWUgYXMgYW55KTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2lucHV0JywgWyckZXZlbnQudGFyZ2V0LnZhbHVlJ10pXG4gIGlucHV0KHZhbHVlKSB7XG4gICAgLy8gZGVidWdnZXJcbiAgICBpZiAodGhpcy5pc0RlYnVnKSBkZWJ1Z2dlcjtcbiAgICBpZiAodGhpcy5ub0Zvcm1hdHRpbmcgJiYgdGhpcy5vVHlwZSAhPSAnY2hlY2tib3gnKSB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgIGVsc2UgaWYgKHRoaXMub1R5cGUgPT0gJ3RleHQnICYmICF0aGlzLm5vVGV4dEZvcm1hdCkgdGhpcy5fdmFsdWUgPSB0aGlzLmZvcm1hdHRlclNlcnZpY2UudG9UaXRsZUNhc2UodmFsdWUpO1xuICAgIGVsc2UgaWYgKHRoaXMub1R5cGUgPT0gJ2NoZWNrYm94JykgdGhpcy5fdmFsdWUgPSB0aGlzLmVsPy5jaGVja2VkIGFzIGFueTtcbiAgICBlbHNlIGlmICh0aGlzLm9UeXBlID09ICdudW1iZXInKVxuICAgICAgaWYgKHRoaXMuaXNMYXN0Q2hhcmFjdGVyRGVjaW1hbFNlcGFyYXRvcih2YWx1ZSkpIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgICBlbHNlIHRoaXMuX3ZhbHVlID0gdGhpcy5mb3JtYXR0ZXJTZXJ2aWNlLnJlbW92ZUNvbW1hcyh2YWx1ZSk7XG4gICAgZWxzZSBpZiAodGhpcy5vVHlwZSA9PSAncGVyY2VudGFnZScpIHRoaXMuX3ZhbHVlID0gU3RyaW5nKHZhbHVlKT8ucmVwbGFjZSgnJScsICcnKTtcbiAgICBlbHNlIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG5cbiAgICAvLyBoZXJlIHRvIG5vdGlmeSBBbmd1bGFyIFZhbGlkYXRvcnNcbiAgICB0aGlzLl9vbkNoYW5nZSh0aGlzLl92YWx1ZSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdibHVyJylcbiAgX29uQmx1cigpIHtcbiAgICBpZiAodGhpcy5ub0Zvcm1hdHRpbmcpIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5fdmFsdWUgfHwgKCcnIGFzIGFueSk7XG4gICAgZWxzZSBpZiAodGhpcy5vVHlwZSA9PSAnbnVtYmVyJykgdGhpcy5zZXROdW1iZXJJbnB1dCh0aGlzLl92YWx1ZSBhcyBhbnkpO1xuICAgIGVsc2UgaWYgKHRoaXMub1R5cGUgPT0gJ3BlcmNlbnRhZ2UnKSB0aGlzLnNldFBlcmNlbnRhZ2VJbnB1dCh0aGlzLl92YWx1ZSBhcyBhbnkpO1xuICAgIGVsc2UgaWYgKHRoaXMub1R5cGUgPT0gJ3RleHQnICYmICF0aGlzLm5vVGV4dEZvcm1hdCkgdGhpcy5lbC52YWx1ZSA9IHRoaXMuZm9ybWF0dGVyU2VydmljZS50b1RpdGxlQ2FzZSh0aGlzLl92YWx1ZSBhcyBhbnkpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZm9jdXMnKVxuICBvbkZvY3VzKCkge1xuICAgIGlmICh0aGlzLm5vRm9ybWF0dGluZykgcmV0dXJuO1xuICAgIGlmICh0aGlzLm9UeXBlID09ICdudW1iZXInKSB0aGlzLnVuRm9ybWF0TnVtYmVyKCk7XG4gICAgaWYgKHRoaXMub1R5cGUgPT0gJ3BlcmNlbnRhZ2UnKSB0aGlzLnVuRm9ybWF0UGVyY2VudGFnZSgpO1xuICB9XG5cbiAgX29uQ2hhbmdlKHZhbHVlOiBhbnkpOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB2YWx1ZVxuICAgKiBhcHBseSBmb3JtYXR0aW5nIG9uIHZhbHVlIGFzc2lnbm1lbnRcbiAgICovXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIGlmICh0aGlzLmlzRGVidWcpIGRlYnVnZ2VyO1xuICAgIGlmICh0aGlzLm5vRm9ybWF0dGluZykgdGhpcy5zZXRJbnB1dCh2YWx1ZSk7XG4gICAgZWxzZSBpZiAodGhpcy5vVHlwZSA9PSAndGV4dCcgJiYgIXRoaXMubm9UZXh0Rm9ybWF0KSB7XG4gICAgICBpZiAodGhpcy5lbC5kaXNhYmxlZCkgdGhpcy5zZXRJbnB1dCh2YWx1ZSk7XG4gICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLmZvcm1hdHRlclNlcnZpY2UudG9UaXRsZUNhc2UodmFsdWUpO1xuICAgICAgICB0aGlzLnNldFRleHRJbnB1dCh2YWx1ZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLm9UeXBlID09ICdudW1iZXInKSB0aGlzLnNldE51bWJlcklucHV0KHZhbHVlKTtcbiAgICBlbHNlIGlmICh0aGlzLm9UeXBlID09ICdwZXJjZW50YWdlJykgdGhpcy5zZXRQZXJjZW50YWdlSW5wdXQodmFsdWUpO1xuICAgIGVsc2UgaWYgKHRoaXMub1R5cGUgPT0gJ2NoZWNrYm94JylcbiAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB0aGlzLmlucHV0KGZhbHNlKTtcbiAgICAgIGVsc2UgdGhpcy5zZXRDaGVja2JveElucHV0KHZhbHVlIGFzIGFueSk7XG4gICAgZWxzZSB0aGlzLnNldElucHV0KHZhbHVlKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogYW55KSA9PiB2b2lkKSB7XG4gICAgdGhpcy5fb25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKCkge31cblxuICBpc0xhc3RDaGFyYWN0ZXJEZWNpbWFsU2VwYXJhdG9yKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpIHtcbiAgICByZXR1cm4gaXNOYU4oK3ZhbHVlPy50b1N0cmluZygpW3ZhbHVlPy50b1N0cmluZygpLmxlbmd0aCAtIDFdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGb3JtYXQgbnVtbWJlciBieSBhZGRpbmcgY29tbWFzXG4gICAqIEBwYXJhbSB2YWx1ZVxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHJpdmF0ZSBzZXROdW1iZXJJbnB1dCh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCkge1xuICAgIGNvbnN0IHZhbCA9IHZhbHVlPy50b1N0cmluZygpLnJlcGxhY2UoL1teXFxkLi1dL2csICcnKTtcbiAgICBpZiAodmFsID09PSBudWxsIHx8IHZhbCA9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNMYXN0Q2hhcmFjdGVyRGVjaW1hbFNlcGFyYXRvcih2YWwpKSB7XG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9IHZhbDtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gZGVidWdnZXJcbiAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMuZGVjaW1hbFBpcGUudHJhbnNmb3JtKHZhbCwgYDEuMC0yMGApO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcm1hdCBudW1tYmVyIGJ5ICUgc2lnbiBhdCB0aGUgZW5kXG4gICAqIEBwYXJhbSB2YWx1ZVxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHJpdmF0ZSBzZXRQZXJjZW50YWdlSW5wdXQodmFsdWU6IHN0cmluZyB8IG51bWJlciB8IG51bGwpIHtcbiAgICB0aGlzLnNldE51bWJlcklucHV0KHZhbHVlKTtcbiAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlXG4gICAgICA/IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlICsgJyUnXG4gICAgICA6IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcm1hdCB0ZXh0IGJ5IG1ha2luZyBpdCBpbiB0aGUgdGl0bGUgY2FzZVxuICAgKiBAcGFyYW0gdmFsdWVcbiAgICogQHJldHVybnNcbiAgICovXG4gIHByaXZhdGUgc2V0VGV4dElucHV0KHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsKSB7XG4gICAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5mb3JtYXR0ZXJTZXJ2aWNlLnRvVGl0bGVDYXNlKHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgbmV3IHZhbHVlIG9uIHRoZSBIVE1MIElucHV0IGZvciB0aGUgVUkgdXBkYXRlXG4gICAqIEBwYXJhbSB2YWx1ZVxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHJpdmF0ZSBzZXRJbnB1dCh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCkge1xuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgaWYgKHRoaXMub1R5cGUgPT0gJ2NoZWNrYm94JykgdGhpcy5zZXRDaGVja2JveElucHV0KHZhbHVlIGFzIGFueSk7XG4gICAgZWxzZSB7XG4gICAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gdmFsdWUgYXMgYW55O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgbmV3IHZhbHVlIG9uIHRoZSBIVE1MIElucHV0IENoZWNrYm94IGZvciB0aGUgVUkgdXBkYXRlXG4gICAqIEBwYXJhbSB2YWx1ZVxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHJpdmF0ZSBzZXRDaGVja2JveElucHV0KHZhbHVlOiBib29sZWFuIHwgbnVsbCkge1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNoZWNrZWQgPSB2YWx1ZSB8fCBmYWxzZTtcbiAgICBpZiAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2hlY2tlZCA9PSBudWxsKSBkZWJ1Z2dlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGNvbW1hcyBmcm9tIHRoZSBudW1iZXJzXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwcml2YXRlIHVuRm9ybWF0TnVtYmVyKCkge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWU7XG4gICAgaWYgKHRoaXMuaXNMYXN0Q2hhcmFjdGVyRGVjaW1hbFNlcGFyYXRvcih2YWx1ZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl92YWx1ZSA9IHRoaXMuZm9ybWF0dGVyU2VydmljZS5yZW1vdmVDb21tYXModmFsdWUpO1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB0aGlzLl92YWx1ZSBhcyBhbnk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyBjb21tYXMgZnJvbSB0aGUgbnVtYmVyc1xuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHJpdmF0ZSB1bkZvcm1hdFBlcmNlbnRhZ2UoKSB7XG4gICAgbGV0IHZhbHVlID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWU7XG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB2YWx1ZS5zbGljZSgwLCB2YWx1ZS5sZW5ndGggLSAxKTtcbiAgICB0aGlzLnVuRm9ybWF0TnVtYmVyKCk7XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKHZhbDogYm9vbGVhbikge1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmRpc2FibGVkID0gISF2YWw7XG4gICAgLy8gZGVidWdnZXJcbiAgICAvLyB0aGlzLl9vbkJsdXIoKVxuICB9XG59XG5cbmNvbnN0IFBBRERJTkcgPSAnMDAwMDAwJztcblxuQFBpcGUoeyBuYW1lOiAnaW5wdXRGb3JtYXR0ZXJzJyB9KVxuZXhwb3J0IGNsYXNzIElucHV0Rm9ybWF0dGVyc1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgcHJpdmF0ZSBERUNJTUFMX1NFUEFSQVRPUjogc3RyaW5nO1xuICBwcml2YXRlIFRIT1VTQU5EU19TRVBBUkFUT1I6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICAvLyBUT0RPIGNvbWVzIGZyb20gY29uZmlndXJhdGlvbiBzZXR0aW5nc1xuICAgIHRoaXMuREVDSU1BTF9TRVBBUkFUT1IgPSAnLic7XG4gICAgdGhpcy5USE9VU0FORFNfU0VQQVJBVE9SID0gJywnO1xuICB9XG5cbiAgdHJhbnNmb3JtKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGZyYWN0aW9uU2l6ZTogbnVtYmVyID0gMik6IHN0cmluZyB7XG4gICAgbGV0IFtpbnRlZ2VyLCBmcmFjdGlvbiA9ICcnXSA9ICh2YWx1ZSB8fCAnJykudG9TdHJpbmcoKS5zcGxpdCh0aGlzLkRFQ0lNQUxfU0VQQVJBVE9SKTtcblxuICAgIGZyYWN0aW9uID0gZnJhY3Rpb25TaXplID4gMCA/IHRoaXMuREVDSU1BTF9TRVBBUkFUT1IgKyAoZnJhY3Rpb24gKyBQQURESU5HKS5zdWJzdHJpbmcoMCwgZnJhY3Rpb25TaXplKSA6ICcnO1xuXG4gICAgaW50ZWdlciA9IGludGVnZXIucmVwbGFjZSgvXFxCKD89KFxcZHszfSkrKD8hXFxkKSkvZywgdGhpcy5USE9VU0FORFNfU0VQQVJBVE9SKTtcblxuICAgIHJldHVybiBpbnRlZ2VyICsgZnJhY3Rpb247XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydCBpbnB1dCB2YWx1ZSB0byBudW1iZXJcbiAgICogQHBhcmFtIHZhbHVlIElucHV0IHZhbHVlXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICByZW1vdmVDb21tYXModmFsdWU6IHN0cmluZykge1xuICAgIHJldHVybiArdmFsdWUucmVwbGFjZSgvW15cXGQuLV0vZywgJycpO1xuICB9XG5cbiAgdG9UaXRsZUNhc2Uoc3RyOiBzdHJpbmcgfCBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBzdHI/LnRvU3RyaW5nKCkucmVwbGFjZSgvXFx3XFxTKi9nLCAodHh0KSA9PiB0eHQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB0eHQuc3Vic3RyKDEpLnRvTG93ZXJDYXNlKCkpIHx8ICcnO1xuICB9XG59XG5cbmNvbnN0IGNvbXBzID0gW0lucHV0Rm9ybWF0RGlyZWN0aXZlXTtcbi8vIGNvbnN0IGNvbXBzID0gW107XG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCAuLi5jb21wc10sXG4gIGV4cG9ydHM6IFsuLi5jb21wc10sXG4gIHByb3ZpZGVyczogW0RlY2ltYWxQaXBlLCBJbnB1dEZvcm1hdHRlcnNQaXBlXSxcbn0pXG5leHBvcnQgY2xhc3MgSW5wdXRGb3JtYXREaXJlY3RpdmVzTW9kdWxlIHt9XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBJbnB1dEZvcm1hdFNlcnZpY2Uge1xuICAvKiogRG9uJ3QgdXNlIHRoZSBpbnB1dCBmb3JtYXR0dGVyIG9uIHRoaXMgcGFnZSAqL1xuICBwYWdlTm9mb3JtYXQ6IGJvb2xlYW47XG4gIC8qKiBEb24ndCB1c2UgdGhlIGlucHV0IGZvcm1hdHR0ZXIgZm9yIHRleHQgaW5wdXRzIG9uIHRoaXMgcGFnZSAqL1xuICBwYWdlTm9UZXh0Rm9ybWF0OiBib29sZWFuO1xufVxuIl19
|
|
374
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZm9ybWF0dGVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvZGlyZWN0aXZlcy9pbnB1dC1mb3JtYXR0ZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLHdCQUF3QixJQUFJLHdCQUF3QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0YsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUVwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFpQjNDLE1BQU0sT0FBTyxvQkFBb0I7SUFHL0IsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxRQUFRLElBQUksTUFBTSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUM7SUFDckYsQ0FBQztJQUNELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsWUFBWSxJQUFJLE1BQU0sSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUM7SUFDN0YsQ0FBQztJQUNELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FBQztJQUMxQyxDQUFDO0lBQ0QsSUFBSSxZQUFZO1FBQ2Qs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QkFBa0IsY0FGakIsTUFBTTs7MkZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiwgSG9zdExpc3RlbmVyLCBpbmplY3QsIElucHV0LCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTUFUX0lOUFVUX1ZBTFVFX0FDQ0VTU09SIGFzIE1BVF9JTlBVVF9WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgRGVjaW1hbFBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW5wdXRUeXBlIH0gZnJvbSAnLi4vbW9kZWxzL2luZGV4Lm1vZGVsJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnaW5wdXQ6bm90KFttYXRJbnB1dF0pOm5vdChbbm9mb3JtYXRdKScsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE1BVF9JTlBVVF9WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBJbnB1dEZvcm1hdERpcmVjdGl2ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gSW5wdXRGb3JtYXREaXJlY3RpdmUpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgSW5wdXRGb3JtYXREaXJlY3RpdmUgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIHByaXZhdGUgZWw6IEhUTUxJbnB1dEVsZW1lbnQ7XG4gIG9UeXBlOiBJbnB1dFR5cGU7XG4gIGdldCBub0Zvcm1hdHRpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWw/LmRhdGFzZXQubm9mb3JtYXQgPT0gJ3RydWUnIHx8IHRoaXMuaW5wdXRGb3JtYXRTZXJ2aWNlLnBhZ2VOb2Zvcm1hdDtcbiAgfVxuICBnZXQgbm9UZXh0Rm9ybWF0KCkge1xuICAgIHJldHVybiB0aGlzLmVsPy5kYXRhc2V0Lm5vdGV4dGZvcm1hdCA9PSAndHJ1ZScgfHwgdGhpcy5pbnB1dEZvcm1hdFNlcnZpY2UucGFnZU5vVGV4dEZvcm1hdDtcbiAgfVxuICBnZXQgaXNEZWJ1ZygpIHtcbiAgICByZXR1cm4gdGhpcy5lbD8uZGF0YXNldC5kZWJ1ZyA9PSAndHJ1ZSc7XG4gIH1cbiAgZ2V0IHNob3VsZEZvcm1hdCgpIHtcbiAgICByZXR1cm4gdGhpcy5hY2NlcHRlZFR5cGUuaW5jbHVkZXModGhpcy5vVHlwZSk7XG4gIH1cbiAgcmVhZG9ubHkgYWNjZXB0ZWRUeXBlOiBJbnB1dFR5cGVbXSA9IFsndGV4dCcsICdudW1iZXInLCAncGVyY2VudGFnZSddO1xuXG4gIHB1YmxpYyBpbnB1dEZvcm1hdFNlcnZpY2UgPSBpbmplY3QoSW5wdXRGb3JtYXRTZXJ2aWNlKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4sXG4gICAgcHJpdmF0ZSBmb3JtYXR0ZXJTZXJ2aWNlOiBJbnB1dEZvcm1hdHRlcnNQaXBlLFxuICAgIHByaXZhdGUgZGVjaW1hbFBpcGU6IERlY2ltYWxQaXBlLFxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5lbCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIHRoaXMub1R5cGUgPSB0aGlzLmVsLmRhdGFzZXQub3R5cGUgPT0gJ3BlcmNlbnRhZ2UnID8gJ3BlcmNlbnRhZ2UnIDogKCh0aGlzLmVsLnR5cGUgKyAnJykgYXMgYW55KTtcbiAgICBpZiAoIXRoaXMubm9Gb3JtYXR0aW5nKSB7XG4gICAgICBpZiAodGhpcy5vVHlwZSA9PSAnbnVtYmVyJykge1xuICAgICAgICB0aGlzLmVsLnR5cGUgPSAndGV4dCc7XG4gICAgICAgIHRoaXMuZWwudmFsdWUgPSB0aGlzLmRlY2ltYWxQaXBlLnRyYW5zZm9ybSh0aGlzLmVsLnZhbHVlLnJlcGxhY2UoL1teXFxkLi1dL2csICcnKSwgJzEuMC05Jyk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5vVHlwZSA9PSAncGVyY2VudGFnZScpIHtcbiAgICAgICAgdGhpcy5lbC50eXBlID0gJ3RleHQnO1xuICAgICAgICB0aGlzLmVsLnZhbHVlID0gdGhpcy5lbC52YWx1ZSA/IHRoaXMuZWwudmFsdWUgKyAnJScgOiAnMCUnO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGRlYnVnZ2VyO1xuICAgIGlmICh0aGlzLl92YWx1ZSkgdGhpcy52YWx1ZSA9IHRoaXMuX3ZhbHVlO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmVsLmRhdGFzZXQub3R5cGUgPT0gJ3BlcmNlbnRhZ2UnICYmICF0aGlzLm5vRm9ybWF0dGluZyAmJiB0aGlzLmVsLnBhcmVudEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdwb3NpdGlvbi1yZWxhdGl2ZScpKSB7XG4gICAgICAvLyBkZWJ1Z2dlclxuICAgICAgY29uc3QgaWNvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2knKTtcbiAgICAgIGljb24uY2xhc3NOYW1lID0gJ2lucHV0LWljb24gZmEgZmEtcGVyY2VudGFnZSc7XG4gICAgICB0aGlzLmVsLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGljb24sIHRoaXMuZWwpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5vVHlwZSA9PSAnbnVtYmVyJyAmJiAhdGhpcy5ub0Zvcm1hdHRpbmcgJiYgdGhpcy5lbC5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygncG9zaXRpb24tcmVsYXRpdmUnKSkge1xuICAgICAgY29uc3QgaWNvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2knKTtcbiAgICAgIGljb24uY2xhc3NOYW1lID0gJ2lucHV0LWljb24gZmEgZmEtaGFzaHRhZyc7XG4gICAgICB0aGlzLmVsLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGljb24sIHRoaXMuZWwpO1xuICAgICAgLy8gdGhpcy5lbC5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ3Bvc2l0aW9uLXJlbGF0aXZlJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLm9UeXBlID09ICdjaGVja2JveCcpIHtcbiAgICAgIC8vIGRlYnVnZ2VyO1xuICAgICAgLy8gdGhpcy52YWx1ZSA9ICh0aGlzLmVsLmNoZWNrZWQgPT0gdHJ1ZSkgYXMgYW55O1xuICAgICAgdGhpcy53cml0ZVZhbHVlKHRoaXMuZWwuY2hlY2tlZCA9PSB0cnVlKTtcbiAgICAgIHRoaXMuaW5wdXQodGhpcy5lbC5jaGVja2VkID09IHRydWUpO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIF92YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG51bGw7XG5cbiAgZ2V0IHZhbHVlKCk6IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cblxuICBASW5wdXQoJ3ZhbHVlJylcbiAgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgbnVsbCkge1xuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgLy8gZGVidWdnZXI7XG4gICAgaWYgKHRoaXMuaXNEZWJ1ZykgZGVidWdnZXI7XG4gICAgaWYgKHRoaXMubm9Gb3JtYXR0aW5nKSB0aGlzLnNldElucHV0KHZhbHVlIGFzIGFueSk7XG4gICAgZWxzZSBpZiAodGhpcy5vVHlwZSA9PSAnbnVtYmVyJykgdGhpcy5zZXROdW1iZXJJbnB1dCh2YWx1ZSBhcyBhbnkpO1xuICAgIGVsc2UgaWYgKHRoaXMub1R5cGUgPT0gJ3BlcmNlbnRhZ2UnKSB0aGlzLnNldFBlcmNlbnRhZ2VJbnB1dCh2YWx1ZSBhcyBhbnkpO1xuICAgIGVsc2UgaWYgKHRoaXMub1R5cGUgPT0gJ3RleHQnICYmICF0aGlzLm5vVGV4dEZvcm1hdCkge1xuICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLmZvcm1hdHRlclNlcnZpY2UudG9UaXRsZUNhc2UodmFsdWUgYXMgYW55KTtcbiAgICAgIHRoaXMuc2V0VGV4dElucHV0KHZhbHVlIGFzIGFueSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLm9UeXBlID09ICdjaGVja2JveCcpIHtcbiAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWUgPT0gdHJ1ZSB8fCB2YWx1ZSA9PSAndHJ1ZSc7XG4gICAgICB0aGlzLnNldENoZWNrYm94SW5wdXQodmFsdWUgYXMgYW55KTtcbiAgICB9IGVsc2UgdGhpcy5zZXRJbnB1dCh2YWx1ZSBhcyBhbnkpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignaW5wdXQnLCBbJyRldmVudC50YXJnZXQudmFsdWUnXSlcbiAgaW5wdXQodmFsdWUpIHtcbiAgICAvLyBkZWJ1Z2dlclxuICAgIGlmICh0aGlzLmlzRGVidWcpIGRlYnVnZ2VyO1xuICAgIGlmICh0aGlzLm5vRm9ybWF0dGluZyAmJiB0aGlzLm9UeXBlICE9ICdjaGVja2JveCcpIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgZWxzZSBpZiAodGhpcy5vVHlwZSA9PSAndGV4dCcgJiYgIXRoaXMubm9UZXh0Rm9ybWF0KSB0aGlzLl92YWx1ZSA9IHRoaXMuZm9ybWF0dGVyU2VydmljZS50b1RpdGxlQ2FzZSh2YWx1ZSk7XG4gICAgZWxzZSBpZiAodGhpcy5vVHlwZSA9PSAnY2hlY2tib3gnKSB0aGlzLl92YWx1ZSA9IHRoaXMuZWw/LmNoZWNrZWQgYXMgYW55O1xuICAgIGVsc2UgaWYgKHRoaXMub1R5cGUgPT0gJ251bWJlcicpXG4gICAgICBpZiAodGhpcy5pc0xhc3RDaGFyYWN0ZXJEZWNpbWFsU2VwYXJhdG9yKHZhbHVlKSkgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICAgIGVsc2UgdGhpcy5fdmFsdWUgPSB0aGlzLmZvcm1hdHRlclNlcnZpY2UucmVtb3ZlQ29tbWFzKHZhbHVlKTtcbiAgICBlbHNlIGlmICh0aGlzLm9UeXBlID09ICdwZXJjZW50YWdlJykgdGhpcy5fdmFsdWUgPSB0aGlzLmZvcm1hdHRlclNlcnZpY2UucmVtb3ZlQ29tbWFzKFN0cmluZyh2YWx1ZSk/LnJlcGxhY2UoJyUnLCAnJykpO1xuICAgIGVsc2UgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcblxuICAgIC8vIGhlcmUgdG8gbm90aWZ5IEFuZ3VsYXIgVmFsaWRhdG9yc1xuICAgIHRoaXMuX29uQ2hhbmdlKHRoaXMuX3ZhbHVlKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2JsdXInKVxuICBfb25CbHVyKCkge1xuICAgIGlmICh0aGlzLm5vRm9ybWF0dGluZykgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB0aGlzLl92YWx1ZSB8fCAoJycgYXMgYW55KTtcbiAgICBlbHNlIGlmICh0aGlzLm9UeXBlID09ICdudW1iZXInKSB0aGlzLnNldE51bWJlcklucHV0KHRoaXMuX3ZhbHVlIGFzIGFueSk7XG4gICAgZWxzZSBpZiAodGhpcy5vVHlwZSA9PSAncGVyY2VudGFnZScpIHRoaXMuc2V0UGVyY2VudGFnZUlucHV0KHRoaXMuX3ZhbHVlIGFzIGFueSk7XG4gICAgZWxzZSBpZiAodGhpcy5vVHlwZSA9PSAndGV4dCcgJiYgIXRoaXMubm9UZXh0Rm9ybWF0KSB0aGlzLmVsLnZhbHVlID0gdGhpcy5mb3JtYXR0ZXJTZXJ2aWNlLnRvVGl0bGVDYXNlKHRoaXMuX3ZhbHVlIGFzIGFueSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdmb2N1cycpXG4gIG9uRm9jdXMoKSB7XG4gICAgaWYgKHRoaXMubm9Gb3JtYXR0aW5nKSByZXR1cm47XG4gICAgaWYgKHRoaXMub1R5cGUgPT0gJ251bWJlcicpIHRoaXMudW5Gb3JtYXROdW1iZXIoKTtcbiAgICBpZiAodGhpcy5vVHlwZSA9PSAncGVyY2VudGFnZScpIHRoaXMudW5Gb3JtYXRQZXJjZW50YWdlKCk7XG4gIH1cblxuICBfb25DaGFuZ2UodmFsdWU6IGFueSk6IHZvaWQge31cblxuICAvKipcbiAgICogQHBhcmFtIHZhbHVlXG4gICAqIGFwcGx5IGZvcm1hdHRpbmcgb24gdmFsdWUgYXNzaWdubWVudFxuICAgKi9cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgaWYgKHRoaXMuaXNEZWJ1ZykgZGVidWdnZXI7XG4gICAgaWYgKHRoaXMubm9Gb3JtYXR0aW5nKSB0aGlzLnNldElucHV0KHZhbHVlKTtcbiAgICBlbHNlIGlmICh0aGlzLm9UeXBlID09ICd0ZXh0JyAmJiAhdGhpcy5ub1RleHRGb3JtYXQpIHtcbiAgICAgIGlmICh0aGlzLmVsLmRpc2FibGVkKSB0aGlzLnNldElucHV0KHZhbHVlKTtcbiAgICAgIGVsc2Uge1xuICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuZm9ybWF0dGVyU2VydmljZS50b1RpdGxlQ2FzZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMuc2V0VGV4dElucHV0KHZhbHVlKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMub1R5cGUgPT0gJ251bWJlcicpIHRoaXMuc2V0TnVtYmVySW5wdXQodmFsdWUpO1xuICAgIGVsc2UgaWYgKHRoaXMub1R5cGUgPT0gJ3BlcmNlbnRhZ2UnKSB0aGlzLnNldFBlcmNlbnRhZ2VJbnB1dCh2YWx1ZSk7XG4gICAgZWxzZSBpZiAodGhpcy5vVHlwZSA9PSAnY2hlY2tib3gnKVxuICAgICAgaWYgKHZhbHVlID09IG51bGwpIHRoaXMuaW5wdXQoZmFsc2UpO1xuICAgICAgZWxzZSB0aGlzLnNldENoZWNrYm94SW5wdXQodmFsdWUgYXMgYW55KTtcbiAgICBlbHNlIHRoaXMuc2V0SW5wdXQodmFsdWUpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBhbnkpID0+IHZvaWQpIHtcbiAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoKSB7fVxuXG4gIGlzTGFzdENoYXJhY3RlckRlY2ltYWxTZXBhcmF0b3IodmFsdWU6IHN0cmluZyB8IG51bWJlcikge1xuICAgIHJldHVybiBpc05hTigrdmFsdWU/LnRvU3RyaW5nKClbdmFsdWU/LnRvU3RyaW5nKCkubGVuZ3RoIC0gMV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcm1hdCBudW1tYmVyIGJ5IGFkZGluZyBjb21tYXNcbiAgICogQHBhcmFtIHZhbHVlXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwcml2YXRlIHNldE51bWJlcklucHV0KHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsKSB7XG4gICAgY29uc3QgdmFsID0gdmFsdWU/LnRvU3RyaW5nKCkucmVwbGFjZSgvW15cXGQuLV0vZywgJycpO1xuICAgIGlmICh2YWwgPT09IG51bGwgfHwgdmFsID09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc0xhc3RDaGFyYWN0ZXJEZWNpbWFsU2VwYXJhdG9yKHZhbCkpIHtcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gdmFsO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBkZWJ1Z2dlclxuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5kZWNpbWFsUGlwZS50cmFuc2Zvcm0odmFsLCBgMS4wLTIwYCk7XG4gIH1cblxuICAvKipcbiAgICogRm9ybWF0IG51bW1iZXIgYnkgJSBzaWduIGF0IHRoZSBlbmRcbiAgICogQHBhcmFtIHZhbHVlXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwcml2YXRlIHNldFBlcmNlbnRhZ2VJbnB1dCh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCkge1xuICAgIHRoaXMuc2V0TnVtYmVySW5wdXQodmFsdWUpO1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWVcbiAgICAgID8gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgKyAnJSdcbiAgICAgIDogdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogRm9ybWF0IHRleHQgYnkgbWFraW5nIGl0IGluIHRoZSB0aXRsZSBjYXNlXG4gICAqIEBwYXJhbSB2YWx1ZVxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHJpdmF0ZSBzZXRUZXh0SW5wdXQodmFsdWU6IHN0cmluZyB8IG51bWJlciB8IG51bGwpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB0aGlzLmZvcm1hdHRlclNlcnZpY2UudG9UaXRsZUNhc2UodmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBuZXcgdmFsdWUgb24gdGhlIEhUTUwgSW5wdXQgZm9yIHRoZSBVSSB1cGRhdGVcbiAgICogQHBhcmFtIHZhbHVlXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwcml2YXRlIHNldElucHV0KHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsKSB7XG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICBpZiAodGhpcy5vVHlwZSA9PSAnY2hlY2tib3gnKSB0aGlzLnNldENoZWNrYm94SW5wdXQodmFsdWUgYXMgYW55KTtcbiAgICBlbHNlIHtcbiAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB2YWx1ZSBhcyBhbnk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCBuZXcgdmFsdWUgb24gdGhlIEhUTUwgSW5wdXQgQ2hlY2tib3ggZm9yIHRoZSBVSSB1cGRhdGVcbiAgICogQHBhcmFtIHZhbHVlXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwcml2YXRlIHNldENoZWNrYm94SW5wdXQodmFsdWU6IGJvb2xlYW4gfCBudWxsKSB7XG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2hlY2tlZCA9IHZhbHVlIHx8IGZhbHNlO1xuICAgIGlmICh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jaGVja2VkID09IG51bGwpIGRlYnVnZ2VyO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgY29tbWFzIGZyb20gdGhlIG51bWJlcnNcbiAgICogQHJldHVybnNcbiAgICovXG4gIHByaXZhdGUgdW5Gb3JtYXROdW1iZXIoKSB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZTtcbiAgICBpZiAodGhpcy5pc0xhc3RDaGFyYWN0ZXJEZWNpbWFsU2VwYXJhdG9yKHZhbHVlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5mb3JtYXR0ZXJTZXJ2aWNlLnJlbW92ZUNvbW1hcyh2YWx1ZSk7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMuX3ZhbHVlIGFzIGFueTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGNvbW1hcyBhbmQgcGVyY2VudGFnZSBmcm9tIHRoZSBudW1iZXJzXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwcml2YXRlIHVuRm9ybWF0UGVyY2VudGFnZSgpIHsgXG4gICAgY29uc3QgdmFsdWUgPVN0cmluZyggdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWV8fCcnKTtcbiAgICBpZiAodGhpcy5pc0xhc3RDaGFyYWN0ZXJEZWNpbWFsU2VwYXJhdG9yKHZhbHVlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5mb3JtYXR0ZXJTZXJ2aWNlLnJlbW92ZUNvbW1hcyh2YWx1ZS5yZXBsYWNlKCclJywnJykpO1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB0aGlzLl92YWx1ZSBhcyBhbnk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKHZhbDogYm9vbGVhbikge1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmRpc2FibGVkID0gISF2YWw7XG4gICAgLy8gZGVidWdnZXJcbiAgICAvLyB0aGlzLl9vbkJsdXIoKVxuICB9XG59XG5cbmNvbnN0IFBBRERJTkcgPSAnMDAwMDAwJztcblxuQFBpcGUoeyBuYW1lOiAnaW5wdXRGb3JtYXR0ZXJzJyB9KVxuZXhwb3J0IGNsYXNzIElucHV0Rm9ybWF0dGVyc1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgcHJpdmF0ZSBERUNJTUFMX1NFUEFSQVRPUjogc3RyaW5nO1xuICBwcml2YXRlIFRIT1VTQU5EU19TRVBBUkFUT1I6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICAvLyBUT0RPIGNvbWVzIGZyb20gY29uZmlndXJhdGlvbiBzZXR0aW5nc1xuICAgIHRoaXMuREVDSU1BTF9TRVBBUkFUT1IgPSAnLic7XG4gICAgdGhpcy5USE9VU0FORFNfU0VQQVJBVE9SID0gJywnO1xuICB9XG5cbiAgdHJhbnNmb3JtKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGZyYWN0aW9uU2l6ZTogbnVtYmVyID0gMik6IHN0cmluZyB7XG4gICAgbGV0IFtpbnRlZ2VyLCBmcmFjdGlvbiA9ICcnXSA9ICh2YWx1ZSB8fCAnJykudG9TdHJpbmcoKS5zcGxpdCh0aGlzLkRFQ0lNQUxfU0VQQVJBVE9SKTtcblxuICAgIGZyYWN0aW9uID0gZnJhY3Rpb25TaXplID4gMCA/IHRoaXMuREVDSU1BTF9TRVBBUkFUT1IgKyAoZnJhY3Rpb24gKyBQQURESU5HKS5zdWJzdHJpbmcoMCwgZnJhY3Rpb25TaXplKSA6ICcnO1xuXG4gICAgaW50ZWdlciA9IGludGVnZXIucmVwbGFjZSgvXFxCKD89KFxcZHszfSkrKD8hXFxkKSkvZywgdGhpcy5USE9VU0FORFNfU0VQQVJBVE9SKTtcblxuICAgIHJldHVybiBpbnRlZ2VyICsgZnJhY3Rpb247XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydCBpbnB1dCB2YWx1ZSB0byBudW1iZXJcbiAgICogQHBhcmFtIHZhbHVlIElucHV0IHZhbHVlXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICByZW1vdmVDb21tYXModmFsdWU6IHN0cmluZykge1xuICAgIHJldHVybiArdmFsdWUucmVwbGFjZSgvW15cXGQuLV0vZywgJycpO1xuICB9XG5cbiAgdG9UaXRsZUNhc2Uoc3RyOiBzdHJpbmcgfCBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBzdHI/LnRvU3RyaW5nKCkucmVwbGFjZSgvXFx3XFxTKi9nLCAodHh0KSA9PiB0eHQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB0eHQuc3Vic3RyKDEpLnRvTG93ZXJDYXNlKCkpIHx8ICcnO1xuICB9XG59XG5cbmNvbnN0IGNvbXBzID0gW0lucHV0Rm9ybWF0RGlyZWN0aXZlXTtcbi8vIGNvbnN0IGNvbXBzID0gW107XG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCAuLi5jb21wc10sXG4gIGV4cG9ydHM6IFsuLi5jb21wc10sXG4gIHByb3ZpZGVyczogW0RlY2ltYWxQaXBlLCBJbnB1dEZvcm1hdHRlcnNQaXBlXSxcbn0pXG5leHBvcnQgY2xhc3MgSW5wdXRGb3JtYXREaXJlY3RpdmVzTW9kdWxlIHt9XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBJbnB1dEZvcm1hdFNlcnZpY2Uge1xuICAvKiogRG9uJ3QgdXNlIHRoZSBpbnB1dCBmb3JtYXR0dGVyIG9uIHRoaXMgcGFnZSAqL1xuICBwYWdlTm9mb3JtYXQ6IGJvb2xlYW47XG4gIC8qKiBEb24ndCB1c2UgdGhlIGlucHV0IGZvcm1hdHR0ZXIgZm9yIHRleHQgaW5wdXRzIG9uIHRoaXMgcGFnZSAqL1xuICBwYWdlTm9UZXh0Rm9ybWF0OiBib29sZWFuO1xufVxuIl19
|
|
@@ -5398,7 +5398,7 @@ class InputFormatDirective {
|
|
|
5398
5398
|
else
|
|
5399
5399
|
this._value = this.formatterService.removeCommas(value);
|
|
5400
5400
|
else if (this.oType == 'percentage')
|
|
5401
|
-
this._value = String(value)?.replace('%', '');
|
|
5401
|
+
this._value = this.formatterService.removeCommas(String(value)?.replace('%', ''));
|
|
5402
5402
|
else
|
|
5403
5403
|
this._value = value;
|
|
5404
5404
|
// here to notify Angular Validators
|
|
@@ -5545,13 +5545,21 @@ class InputFormatDirective {
|
|
|
5545
5545
|
}
|
|
5546
5546
|
}
|
|
5547
5547
|
/**
|
|
5548
|
-
* Removes commas from the numbers
|
|
5548
|
+
* Removes commas and percentage from the numbers
|
|
5549
5549
|
* @returns
|
|
5550
5550
|
*/
|
|
5551
5551
|
unFormatPercentage() {
|
|
5552
|
-
|
|
5553
|
-
this.
|
|
5554
|
-
|
|
5552
|
+
const value = String(this.elementRef.nativeElement.value || '');
|
|
5553
|
+
if (this.isLastCharacterDecimalSeparator(value)) {
|
|
5554
|
+
return;
|
|
5555
|
+
}
|
|
5556
|
+
this._value = this.formatterService.removeCommas(value.replace('%', ''));
|
|
5557
|
+
if (value) {
|
|
5558
|
+
this.elementRef.nativeElement.value = this._value;
|
|
5559
|
+
}
|
|
5560
|
+
else {
|
|
5561
|
+
this.elementRef.nativeElement.value = null;
|
|
5562
|
+
}
|
|
5555
5563
|
}
|
|
5556
5564
|
setDisabledState(val) {
|
|
5557
5565
|
this.elementRef.nativeElement.disabled = !!val;
|