@unnilouis.org/vs-chipdropdown 17.2.1 → 17.2.3

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.
@@ -361,7 +361,7 @@ export class VsChipddCmpComponent {
361
361
  }
362
362
  }
363
363
  venSelected(datas) {
364
- let data = !datas && datas === '' ? datas : datas.option.value || datas;
364
+ let data = !datas && datas === '' ? datas : datas?.option?.value || datas;
365
365
  this.isOptionSelected = true;
366
366
  this.DropInput.nativeElement.value = '';
367
367
  console.log('event.option.value', data);
@@ -433,4 +433,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
433
433
  }], formGroup: [{
434
434
  type: Input
435
435
  }] } });
436
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnMtY2hpcGRkLWNtcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92cy1jaGlwZHJvcGRvd24vc3JjL2xpYi92cy1jaGlwZGQtY21wL3ZzLWNoaXBkZC1jbXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdnMtY2hpcGRyb3Bkb3duL3NyYy9saWIvdnMtY2hpcGRkLWNtcC92cy1jaGlwZGQtY21wLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFHTCxzQkFBc0IsR0FDdkIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQ0wsWUFBWSxFQUNaLG9CQUFvQixFQUdwQixTQUFTLEVBQ1QsUUFBUSxFQUNSLFNBQVMsRUFDVCxHQUFHLEdBQ0osTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQW9CLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVuRCxPQUFPLEVBQWUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7Ozs7OztBQU1yRCxNQUFNLE9BQU8sb0JBQW9CO0lBRS9CLFlBQ1UsT0FBOEIsRUFDOUIsRUFBZTtRQURmLFlBQU8sR0FBUCxPQUFPLENBQXVCO1FBQzlCLE9BQUUsR0FBRixFQUFFLENBQWE7UUFIekIsbUJBQWMsR0FBVyxLQUFLLENBQUM7UUFPdEIsZUFBVSxHQUFZLElBQUksQ0FBQztRQU10QyxZQUFPLEdBQWtDLElBQUksQ0FBQztRQUU5Qyx3QkFBbUIsR0FBa0MsSUFBSSxDQUFDO1FBRzlDLGNBQVMsR0FBc0IsSUFBSSxZ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QUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7Z0JBQ1YsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQztZQUNyQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7K0dBeGNVLG9CQUFvQjttR0FBcEIsb0JBQW9CLHlTQVl2QixzQkFBc0IsbUVBR25CLHNCQUFzQiw4UEMvQ25DLG9qRUF1REE7OzRGRHZCYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0UsbUJBQW1CO29IQVVwQixXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFNUixPQUFPO3NCQUpKLFNBQVM7dUJBQUMsbUJBQW1CLEVBQUU7d0JBQzlCLE1BQU0sRUFBRSxLQUFLO3dCQUNiLElBQUksRUFBRSxzQkFBc0I7cUJBQzdCO2dCQUdILG1CQUFtQjtzQkFEaEIsU0FBUzt1QkFBQyxzQkFBc0I7Z0JBR2pDLGtCQUFrQjtzQkFEakIsU0FBUzt1QkFBQyxTQUFTO2dCQUVWLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ2lCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFVYixTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50LFxyXG4gIE1hdEF1dG9jb21wbGV0ZSxcclxuICBNYXRBdXRvY29tcGxldGVUcmlnZ2VyLFxyXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7XHJcbiAgZGVib3VuY2VUaW1lLFxyXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxyXG4gIHRhcCxcclxuICBmaWx0ZXIsXHJcbiAgc3dpdGNoTWFwLFxyXG4gIGZpbmFsaXplLFxyXG4gIHRha2VVbnRpbCxcclxuICBtYXAsXHJcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlLCBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVnNDaGlwZHJvcGRvd25TZXJ2aWNlIH0gZnJvbSAnLi4vdnMtY2hpcGRyb3Bkb3duLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ09NTUEsIEVOVEVSIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItdnMtY2hpcGRkLWNtcCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3ZzLWNoaXBkZC1jbXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3ZzLWNoaXBkZC1jbXAuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFZzQ2hpcGRkQ21wQ29tcG9uZW50IHtcclxuICBEcm9kb3duTG9hZGluZzogYm9vbGVhbiA9ZmFsc2U7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHNlcnZpY2U6IFZzQ2hpcGRyb3Bkb3duU2VydmljZSxcclxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyXHJcbiAgKSB7fVxyXG4gIEBJbnB1dCgpIElucHV0RmllbGRzOiBhbnk7XHJcbiAgQElucHV0KCkgUmVzZXRGb3JtOiBhbnk7XHJcbiAgQElucHV0KCkgQmFja2VuZGFwaTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2F1dG9Db21wbGV0ZUlucHV0Jywge1xyXG4gICAgc3RhdGljOiBmYWxzZSxcclxuICAgIHJlYWQ6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIsXHJcbiAgfSlcclxudHJpZ2dlcjogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciB8IG51bGwgPSBudWxsO1xyXG4gIEBWaWV3Q2hpbGQoTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcilcclxuYXV0b2NvbXBsZXRlVHJpZ2dlcjogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciB8IG51bGwgPSBudWxsO1xyXG4gIEBWaWV3Q2hpbGQoJ3Njcm9sbGwnKVxyXG4gIG1hdEF1dG9jb21wbGV0ZUFwcCE6IE1hdEF1dG9jb21wbGV0ZTtcclxuICBAT3V0cHV0KCkgZGF0YUV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBWaWV3Q2hpbGQoJ0Ryb3BJbnB1dCcpIERyb3BJbnB1dDogYW55O1xyXG4gIHJlYWRvbmx5IHNlcGFyYXRvcnNLZXlzQ29kZXM6IG51bWJlcltdID0gW0VOVEVSLCBDT01NQV07XHJcblxyXG4gIGhhc19uZXh0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgY3VycmVudHBhZ2U6IG51bWJlciA9IDE7XHJcbiAgRHJvcGRvd25kYXRhOiBhbnkgPSBbXTtcclxuICBoYXNfcHJldmlvdXM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBEcm9wZG93bkZvcm06YW55PSBGb3JtR3JvdXA7XHJcbiAgY2hpcFNlbGVjdGVkSWQ6IGFueSA9IFtdO1xyXG4gIGNoaXBTZWxlY3RlZE9iajogYW55ID0gW107XHJcbiAgQElucHV0KCkgZm9ybUdyb3VwITogRm9ybUdyb3VwO1xyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgLy8gaWYgKHRoaXMuZm9ybUdyb3VwKSB7XHJcbiAgICAvLyAgIHRoaXMuRHJvcGRvd25Gb3JtID0gdGhpcy5mb3JtR3JvdXA7XHJcbiAgICAvLyB9IGVsc2Uge1xyXG4gICAgLy8gICB0aGlzLkRyb3Bkb3duRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgLy8gICAgIHZhbHVlOiAnJyxcclxuICAgIC8vICAgfSk7XHJcbiAgICAvLyB9XHJcbiAgICAvLyB0aGlzLmR1cG5nb25pdCgpO1xyXG5cclxuICAgIC8vIGlmICh0aGlzLklucHV0RmllbGRzPy5kZWZhdWx0dmFsdWUpIHtcclxuICAgIC8vICAgdGhpcy5Ecm9wZG93bkZvcm0uZ2V0KFwidmFsdWVcIikucGF0Y2hWYWx1ZSh0aGlzLklucHV0RmllbGRzPy5kZWZhdWx0dmFsdWUpXHJcbiAgICAvLyAgIHRoaXMuY2hpcFNlbGVjdGVkT2JqID0gdGhpcy5JbnB1dEZpZWxkcz8uZGVmYXVsdHZhbHVlXHJcbiAgICAvLyAgIGlmICh0aGlzLmNoaXBTZWxlY3RlZE9iai5sZW5ndGggPiAwKSB7XHJcbiAgICAvLyAgICAgZm9yIChsZXQgZm91bmRlbXAgb2YgdGhpcy5jaGlwU2VsZWN0ZWRPYmopIHtcclxuICAgIC8vICAgICAgIGlmICh0aGlzLklucHV0RmllbGRzPy5PdXRwdXRrZXkpIHtcclxuICAgIC8vICAgICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRJZC5wdXNoKGZvdW5kZW1wW3RoaXMuSW5wdXRGaWVsZHM/Lk91dHB1dGtleV0pXHJcblxyXG4gICAgLy8gICAgICAgfVxyXG4gICAgLy8gICAgICAgZWxzZSB7XHJcbiAgICAvLyAgICAgICAgIHRoaXMuY2hpcFNlbGVjdGVkSWQucHVzaChmb3VuZGVtcC5pZClcclxuXHJcbiAgICAvLyAgICAgICB9XHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gICAgIHRoaXMuc2VsZWN0ZWQoKVxyXG4gICAgLy8gICB9XHJcblxyXG4gICAgLy8gfVxyXG4gICAgLy8gaWYgKHRoaXMuSW5wdXRGaWVsZHM/LmZyb25lbnRkYXRhKSB7XHJcbiAgICAvLyAgIHRoaXMuRHJvcGRvd25kYXRhID0gdGhpcy5JbnB1dEZpZWxkcz8uZGF0YVxyXG5cclxuICAgIC8vIH1cclxuICAgIC8vIGVsc2Uge1xyXG4gICAgLy8gICB0aGlzLmdldGRyb3Bkb3duKCcnKVxyXG4gICAgLy8gfVxyXG4gIH1cclxuICBsb29vcCgpIHtcclxuICAgIGZvciAobGV0IGZvdW5kZW1wIG9mIHRoaXMuY2hpcFNlbGVjdGVkT2JqKSB7XHJcbiAgICAgIGlmKCEoZm91bmRlbXAgaW5zdGFuY2VvZiBOdW1iZXIpKXtcclxuICAgICAgICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uT3V0cHV0a2V5KSB7XHJcbiAgICAgICAgICB0aGlzLmNoaXBTZWxlY3RlZElkLnB1c2goZm91bmRlbXBbdGhpcy5JbnB1dEZpZWxkcz8uT3V0cHV0a2V5XSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRJZC5wdXNoKGZvdW5kZW1wLmlkKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1rZXkpIHtcclxuICAgICAgICAgIHRoaXMuZm9ybWtleWFyci5wdXNoKGZvdW5kZW1wW3RoaXMuSW5wdXRGaWVsZHM/LmZvcm1rZXldKTtcclxuICAgICAgICB9IFxyXG4gICAgICB9XHJcbiAgICAgIH1cclxuICAgICBcclxuICB9XHJcbiAgZHVwbmdvbml0KCkge1xyXG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwKSB7XHJcbiAgICAgIHRoaXMuRHJvcGRvd25Gb3JtID0gdGhpcy5mb3JtR3JvdXA7XHJcbiAgICAgIGlmICghdGhpcy5Ecm9wZG93bkZvcm0uY29udGFpbnModGhpcy5JbnB1dEZpZWxkcz8uZm9ybWNvbnRyb2xuYW1lKSkge1xyXG4gICAgICAgIHRoaXMuRHJvcGRvd25Gb3JtLmFkZENvbnRyb2woXHJcbiAgICAgICAgICB0aGlzLmR5bmFtY2lmb3JtY29udHJvbHBhcmVudCgpLFxyXG4gICAgICAgICAgbmV3IEZvcm1Db250cm9sKHsgdmFsdWU6IFtdLCBkaXNhYmxlZDogdGhpcy5JbnB1dEZpZWxkcz8uZGlzYWJsZWQgfSlcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2V7XHJcbiAgICAgICAgdGhpcy5JbnB1dEZpZWxkcz8uZGlzYWJsZWQgPyB0aGlzLkRyb3Bkb3duRm9ybS5nZXQoJ2NoaXB2YWx1ZScpLmRpc2FibGUoKSA6ICcnICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5Ecm9wZG93bkZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICBjaGlwdmFsdWU6IFtdLGRpc2FibGVkOiB0aGlzLklucHV0RmllbGRzPy5kaXNhYmxlZFxyXG4gICAgICB9KTtcclxuXHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZygndGhpcy5Ecm9wZG93bkZvcm0nLCB0aGlzLkRyb3Bkb3duRm9ybS52YWx1ZSk7XHJcbiAgICAvLyB0aGlzLmNoaXBTZWxlY3RlZE9iaiA9XHJcbiAgICAvLyAgIHRoaXMuRHJvcGRvd25Gb3JtLmdldCh0aGlzLmR5bmFtY2lmb3JtY29udHJvbHBhcmVudCgpKS52YWx1ZSAmJlxyXG4gICAgLy8gICB0aGlzLkRyb3Bkb3duRm9ybS5nZXQodGhpcy5keW5hbWNpZm9ybWNvbnRyb2xwYXJlbnQoKSkudmFsdWUubGVuZ3RoICE9PSAwXHJcbiAgICAvLyAgICAgPyB0aGlzLkRyb3Bkb3duRm9ybS5nZXQodGhpcy5keW5hbWNpZm9ybWNvbnRyb2xwYXJlbnQoKSkudmFsdWVcclxuICAgIC8vICAgICA6IFtdO1xyXG4gICAgLy8gICAgIGNvbnNvbGUubG9nKCd0aGlzLmNoaXBTZWxlY3RlZE9iaicsIHRoaXMuY2hpcFNlbGVjdGVkT2JqKTtcclxuXHJcbiAgICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uZGVmYXVsdHZhbHVlKSB7XHJcbiAgICAgIC8vIHRoaXMuRHJvcGRvd25Gb3JtLmdldCh0aGlzLmR5bmFtY2lmb3JtY29udHJvbHBhcmVudCgpKS5wYXRjaFZhbHVlKFxyXG4gICAgICAvLyAgIHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1rZXlcclxuICAgICAgLy8gICAgID8gdGhpcy5JbnB1dEZpZWxkcz8uZGVmYXVsdHZhbHVlW3RoaXMuSW5wdXRGaWVsZHM/LmZvcm1rZXldXHJcbiAgICAgIC8vICAgICA6IHRoaXMuSW5wdXRGaWVsZHM/LmRlZmF1bHR2YWx1ZVxyXG4gICAgICAvLyApO1xyXG4gICAgICAvLyB0aGlzLkRyb3Bkb3duRm9ybS5nZXQodGhpcy5keW5hbWNpZm9ybWNvbnRyb2xwYXJlbnQoKSkucGF0Y2hWYWx1ZSh0aGlzLklucHV0RmllbGRzPy5kZWZhdWx0dmFsdWUpO1xyXG4gICAgICB0aGlzLmNoaXBTZWxlY3RlZE9iaiA9IHRoaXMuSW5wdXRGaWVsZHM/LmRlZmF1bHR2YWx1ZTtcclxuICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRJZCA9IFtdO1xyXG4gICAgICB0aGlzLmZvcm1rZXlhcnIgPSBbXTtcclxuICAgICAgaWYgKHRoaXMuY2hpcFNlbGVjdGVkT2JqLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLmxvb29wKCk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLkRyb3Bkb3duRm9ybS5nZXQodGhpcy5keW5hbWNpZm9ybWNvbnRyb2xwYXJlbnQoKSkudmFsdWUgJiZcclxuICAgICAgdGhpcy5Ecm9wZG93bkZvcm0uZ2V0KHRoaXMuZHluYW1jaWZvcm1jb250cm9scGFyZW50KCkpLnZhbHVlLmxlbmd0aCAhPT0gMFxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuY2hpcFNlbGVjdGVkT2JqID0gdGhpcy5Ecm9wZG93bkZvcm0uZ2V0KFxyXG4gICAgICAgIHRoaXMuZHluYW1jaWZvcm1jb250cm9scGFyZW50KClcclxuICAgICAgKS52YWx1ZTtcclxuICAgICAgY29uc29sZS5sb2coJ3Rlc3QnLHRoaXMuY2hpcFNlbGVjdGVkT2JqID0gdGhpcy5Ecm9wZG93bkZvcm0uZ2V0KFxyXG4gICAgICAgIHRoaXMuZHluYW1jaWZvcm1jb250cm9scGFyZW50KClcclxuICAgICAgKS52YWx1ZSlcclxuICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRJZCA9IFtdO1xyXG4gICAgICB0aGlzLmZvcm1rZXlhcnIgPSBbXTtcclxuICAgICAgdGhpcy5sb29vcCgpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkKCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uZnJvbmVudGRhdGEpIHtcclxuICAgICAgdGhpcy5Ecm9wZG93bmRhdGEgPSB0aGlzLklucHV0RmllbGRzPy5kYXRhO1xyXG4gICAgfVxyXG4gICAgdGhpcy5kcm9wZG93bnNlYXJjaCgpO1xyXG4gICAgLy8gZWxzZSB7XHJcbiAgICAvLyAgIHRoaXMuZ2V0ZHJvcGRvd24oJycpXHJcbiAgICAvLyB9XHJcbiAgfVxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydJbnB1dEZpZWxkcyddICYmIGNoYW5nZXNbJ0lucHV0RmllbGRzJ10uY3VycmVudFZhbHVlKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdTdW1tYXJ5IExvZyBDaGFuZ2VzJyk7XHJcbiAgICAgIHRoaXMuY3VycmVudHBhZ2UgPSAxO1xyXG4gICAgICB0aGlzLmR1cG5nb25pdCgpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbJ1Jlc2V0Rm9ybSddICYmIGNoYW5nZXNbJ1Jlc2V0Rm9ybSddLmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICBjb25zb2xlLmxvZygnaGl0dGVkJyk7XHJcbiAgICAgIC8vIHRoaXMuRHJvcGRvd25Gb3JtLnJlc2V0KCk7XHJcbiAgICAgIHRoaXMuY3VycmVudHBhZ2UgPSAxO1xyXG4gICAgICB0aGlzLmR1cG5nb25pdCgpO1xyXG4gICAgICB0aGlzLmNoaXBTZWxlY3RlZElkID0gW107XHJcbiAgICAgIHRoaXMuZm9ybWtleWFyciA9IFtdO1xyXG4gICAgICB0aGlzLmNoaXBTZWxlY3RlZE9iaiA9IFtdO1xyXG4gICAgICB0aGlzLmRhdGFFdmVudC5lbWl0KFtdKTtcclxuICAgIH1cclxuICB9XHJcbiAgLy8gcHVibGljIGRpc3BsYXlkZXZlbG9wY2xpZW50KGNsdDogYW55LCBrZXk6IHN0cmluZykge1xyXG4gIC8vICAgcmV0dXJuIGtleVtjbHRdO1xyXG4gIC8vIH1cclxuICBhdXRvY29tcGxldGVBcHBTY3JvbGwoKSB7XHJcbiAgICBpZiAoIXRoaXMuSW5wdXRGaWVsZHM/LmZyb25lbnRkYXRhKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIHRoaXMubWF0QXV0b2NvbXBsZXRlQXBwICYmXHJcbiAgICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZVRyaWdnZXIgJiZcclxuICAgICAgICAgIHRoaXMubWF0QXV0b2NvbXBsZXRlQXBwLnBhbmVsXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBmcm9tRXZlbnQodGhpcy5tYXRBdXRvY29tcGxldGVBcHAucGFuZWwubmF0aXZlRWxlbWVudCwgJ3Njcm9sbCcpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgIG1hcCgoeCkgPT4gdGhpcy5tYXRBdXRvY29tcGxldGVBcHAucGFuZWwubmF0aXZlRWxlbWVudC5zY3JvbGxUb3ApLFxyXG4gICAgICAgICAgICAgIHRha2VVbnRpbChcclxuICAgICAgICAgICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlVHJpZ2dlci5wYW5lbENsb3NpbmdBY3Rpb25zIGFzIE9ic2VydmFibGU8YW55PlxyXG4gICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3Qgc2Nyb2xsVG9wID1cclxuICAgICAgICAgICAgICAgIHRoaXMubWF0QXV0b2NvbXBsZXRlQXBwLnBhbmVsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wO1xyXG4gICAgICAgICAgICAgIGNvbnN0IHNjcm9sbEhlaWdodCA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1hdEF1dG9jb21wbGV0ZUFwcC5wYW5lbC5uYXRpdmVFbGVtZW50LnNjcm9sbEhlaWdodDtcclxuICAgICAgICAgICAgICBjb25zdCBlbGVtZW50SGVpZ2h0ID1cclxuICAgICAgICAgICAgICAgIHRoaXMubWF0QXV0b2NvbXBsZXRlQXBwLnBhbmVsLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0O1xyXG4gICAgICAgICAgICAgIGNvbnN0IGF0Qm90dG9tID0gc2Nyb2xsSGVpZ2h0IC0gMSA8PSBzY3JvbGxUb3AgKyBlbGVtZW50SGVpZ2h0O1xyXG4gICAgICAgICAgICAgIGlmIChhdEJvdHRvbSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaGFzX25leHQgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5Ecm9wSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZTtcclxuICAgICAgICAgICAgICAgICAgbGV0IHBhcmFtcyA9IHRoaXMuc2VhcmNocGFyYW1zKHZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50cGFnZSA9IHRoaXMuY3VycmVudHBhZ2UgKyAxO1xyXG4gICAgICAgICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50cGFnZSA+IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2VcclxuICAgICAgICAgICAgICAgICAgICAgIC5HZXRBcGkoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuSW5wdXRGaWVsZHMudXJsICsgJz9wYWdlPScgKyB0aGlzLmN1cnJlbnRwYWdlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXNcclxuICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdHMpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRhdGFzID0gcmVzdWx0c1snZGF0YSddO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGF0YXBhZ2luYXRpb24gPSByZXN1bHRzWydwYWdpbmF0aW9uJ107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuRHJvcGRvd25kYXRhID0gdGhpcy5Ecm9wZG93bmRhdGEuY29uY2F0KGRhdGFzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3RoaXMuRHJvcGRvd25kYXRhJywgdGhpcy5Ecm9wZG93bmRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5Ecm9wZG93bmRhdGEubGVuZ3RoID49IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhhc19uZXh0ID0gZGF0YXBhZ2luYXRpb24uaGFzX25leHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYXNfcHJldmlvdXMgPSBkYXRhcGFnaW5hdGlvbi5oYXNfcHJldmlvdXM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50cGFnZSA9IGRhdGFwYWdpbmF0aW9uLmluZGV4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgaXNPcHRpb25TZWxlY3RlZDpib29sZWFuPWZhbHNlXHJcbiAgZHJvcGRvd25zZWFyY2goKSB7XHJcbiAgICBjb25zdCBjb250cm9sTmFtZSA9IHRoaXMuZHluYW1jaWZvcm1jb250cm9scGFyZW50KCk7XHJcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5Ecm9wZG93bkZvcm0uZ2V0KGNvbnRyb2xOYW1lKTtcclxuICAgIGlmIChjb250cm9sIFxyXG4gICAgXHJcbiAgICAgXHJcbiAgICApIHtcclxuICAgICAgaWYgKCF0aGlzLklucHV0RmllbGRzPy5mcm9uZW50ZGF0YSkge1xyXG4gICAgICAgIGlmICghdGhpcy5JbnB1dEZpZWxkcz8udXJsKSB7XHJcbiAgICAgICAgICByZXR1cm4gO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLkRyb3Bkb3duRm9ybS5nZXQodGhpcy5keW5hbWNpZm9ybWNvbnRyb2xwYXJlbnQoKSlcclxuICAgICAgICAgIC52YWx1ZUNoYW5nZXMucGlwZShcclxuICAgICAgICAgICAgZGVib3VuY2VUaW1lKDMwMCksXHJcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICAgICAgICAgIC8vIHRhcCgoKSA9PiB7XHJcbiAgICAgICAgICAgIC8vICAgdGhpcy5Ecm9kb3duTG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgICAgIC8vICAgY29uc29sZS5sb2coJ2luc2lkZSB0YXAnKTtcclxuICAgICAgICAgICAgLy8gfSksXHJcbiAgICAgICAgICAgIHN3aXRjaE1hcCgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgICBpZih0aGlzLmlzT3B0aW9uU2VsZWN0ZWQpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc09wdGlvblNlbGVjdGVkPWZhbHNlXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gW11cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgbGV0IHBhcmFtcyA9IHRoaXMuc2VhcmNocGFyYW1zKHZhbHVlKTtcclxuICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRwYWdlID0gMTtcclxuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImhpdGVlZWVkZGRkZGRkZGRkZGRkZD4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PlwiKVxyXG5cclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlXHJcbiAgICAgICAgICAgICAgICAuR2V0QXBpKFxyXG4gICAgICAgICAgICAgICAgICB0aGlzLklucHV0RmllbGRzLnVybCArICc/cGFnZT0nICsgdGhpcy5jdXJyZW50cGFnZSxcclxuICAgICAgICAgICAgICAgICAgcGFyYW1zLFxyXG4gICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Ecm9kb3duTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIClcclxuICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdHM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmRhdGFFdmVudC5lbWl0KCcnKTtcclxuXHJcbiAgICAgICAgICAgIGxldCBkYXRhcyA9IHJlc3VsdHNbJ2RhdGEnXTtcclxuICAgICAgICAgICAgdGhpcy5Ecm9wZG93bmRhdGEgPSBkYXRhcztcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vICAgICAgICAgdGhpcy5Ecm9wZG93bmRhdGEgPSB0aGlzLklucHV0RmllbGRzPy5kYXRhXHJcblxyXG4gICAgICAgIHRoaXMuRHJvcGRvd25Gb3JtLmdldCh0aGlzLmR5bmFtY2lmb3JtY29udHJvbHBhcmVudCgpKS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgKHZhbHVlOmFueSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLkRyb3Bkb3duZGF0YSA9IHRoaXMuSW5wdXRGaWVsZHM/LmRhdGEuZmlsdGVyKChpdGVtOmFueSkgPT5cclxuICAgICAgICAgICAgICBpdGVtW3RoaXMuSW5wdXRGaWVsZHM/LmRpc3BsYXlrZXldXHJcbiAgICAgICAgICAgICAgICA/LnRvTG93ZXJDYXNlKClcclxuICAgICAgICAgICAgICAgIC5pbmNsdWRlcyh2YWx1ZT8udG9Mb3dlckNhc2UoKSlcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBpZiAoY29udHJvbCAmJiAhdGhpcy5JbnB1dEZpZWxkcz8uZnJvbmVudGRhdGEpIHtcclxuICAgIC8vICAgdGhpcy5Ecm9wZG93bkZvcm0uZ2V0KHRoaXMuZHluYW1jaWZvcm1jb250cm9scGFyZW50KCkpXHJcbiAgICAvLyAgICAgLnZhbHVlQ2hhbmdlcy5waXBlKFxyXG4gICAgLy8gICAgICAgZGVib3VuY2VUaW1lKDIwMCksXHJcbiAgICAvLyAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxyXG4gICAgLy8gICAgICAgdGFwKCgpID0+IHtcclxuICAgIC8vICAgICAgICAgdGhpcy5Ecm9kb3duTG9hZGluZyA9IHRydWU7XHJcbiAgICAvLyAgICAgICAgIGNvbnNvbGUubG9nKCdpbnNpZGUgdGFwJyk7XHJcbiAgICAvLyAgICAgICB9KSxcclxuICAgIC8vICAgICAgIHN3aXRjaE1hcCgodmFsdWUpID0+IHtcclxuICAgIC8vICAgICAgICAgbGV0IHBhcmFtcyA9IHRoaXMuc2VhcmNocGFyYW1zKHZhbHVlKTtcclxuICAgIC8vICAgICAgICAgdGhpcy5jdXJyZW50cGFnZSA9IDE7XHJcbiAgICAvLyAgICAgICAgIHJldHVybiB0aGlzLnNlcnZpY2VcclxuICAgIC8vICAgICAgICAgICAuR2V0QXBpKFxyXG4gICAgLy8gICAgICAgICAgICAgdGhpcy5JbnB1dEZpZWxkcy51cmwgKyAnP3BhZ2U9JyArIHRoaXMuY3VycmVudHBhZ2UsXHJcbiAgICAvLyAgICAgICAgICAgICBwYXJhbXNcclxuICAgIC8vICAgICAgICAgICApXHJcbiAgICAvLyAgICAgICAgICAgLnBpcGUoXHJcbiAgICAvLyAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAvLyAgICAgICAgICAgICAgIHRoaXMuRHJvZG93bkxvYWRpbmcgPSBmYWxzZTtcclxuICAgIC8vICAgICAgICAgICAgIH0pXHJcbiAgICAvLyAgICAgICAgICAgKTtcclxuICAgIC8vICAgICAgIH0pXHJcbiAgICAvLyAgICAgKVxyXG4gICAgLy8gICAgIC5zdWJzY3JpYmUoKHJlc3VsdHM6IGFueVtdKSA9PiB7XHJcbiAgICAvLyAgICAgICBsZXQgZGF0YXMgPSByZXN1bHRzWydkYXRhJ107XHJcbiAgICAvLyAgICAgICB0aGlzLkRyb3Bkb3duZGF0YSA9IGRhdGFzO1xyXG4gICAgLy8gICAgIH0pO1xyXG4gICAgLy8gfVxyXG4gIH1cclxuICBnZXRkcm9wZG93bih2YWx1ZTphbnkpIHtcclxuXHJcbiAgICB0aGlzLmN1cnJlbnRwYWdlID0gMTtcclxuICAgIGlmICggdGhpcy5JbnB1dEZpZWxkcy51cmwpIHtcclxuICAgICAgbGV0IHBhcmFtcyA9IHRoaXMuc2VhcmNocGFyYW1zKHZhbHVlKTtcclxuICAgICAgdGhpcy5zZXJ2aWNlXHJcbiAgICAgICAgLkdldEFwaSh0aGlzLklucHV0RmllbGRzLnVybCArICc/cGFnZT0nICsgdGhpcy5jdXJyZW50cGFnZSwgcGFyYW1zKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdHM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgbGV0IGRhdGFzID0gcmVzdWx0c1snZGF0YSddO1xyXG4gICAgICAgICAgbGV0IGRhdGFwYWdpbmF0aW9uID0gcmVzdWx0c1sncGFnaW5hdGlvbiddO1xyXG4gICAgICAgICAgdGhpcy5Ecm9wZG93bmRhdGEgPSBkYXRhcztcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy50cmlnZ2VyKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyLm9wZW5QYW5lbCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LCAwKTtcclxuICAgICAgICAgIGlmICh0aGlzLkRyb3Bkb3duZGF0YS5sZW5ndGggPj0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLmhhc19uZXh0ID0gZGF0YXBhZ2luYXRpb24uaGFzX25leHQ7XHJcbiAgICAgICAgICAgIHRoaXMuaGFzX3ByZXZpb3VzID0gZGF0YXBhZ2luYXRpb24uaGFzX3ByZXZpb3VzO1xyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRwYWdlID0gZGF0YXBhZ2luYXRpb24uaW5kZXg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIE91dHB1dGRhdGE6IGFueSA9IFtdO1xyXG4gIGR5bmFtY2lmb3JtY29udHJvbHBhcmVudCgpIHtcclxuICAgIHJldHVybiB0aGlzLklucHV0RmllbGRzPy5mb3JtY29udHJvbG5hbWUgJiYgdGhpcy5mb3JtR3JvdXBcclxuICAgICAgPyB0aGlzLklucHV0RmllbGRzPy5mb3JtY29udHJvbG5hbWVcclxuICAgICAgOiAnY2hpcHZhbHVlJztcclxuICB9XHJcbiAgc2VsZWN0ZWQoKSB7XHJcbiAgICB0aGlzLk91dHB1dGRhdGEgPSB0aGlzLmNoaXBTZWxlY3RlZE9iajtcclxuICAgIGlmICh0aGlzLklucHV0RmllbGRzPy5PdXRwdXRrZXkpIHtcclxuICAgICAgdGhpcy5PdXRwdXRkYXRhID0gdGhpcy5jaGlwU2VsZWN0ZWRJZDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmZvcm1Hcm91cCAmJiB0aGlzLklucHV0RmllbGRzPy5mb3JtY29udHJvbG5hbWUpIHtcclxuICAgICAgdGhpcy5Ecm9wZG93bkZvcm0uZ2V0KHRoaXMuZHluYW1jaWZvcm1jb250cm9scGFyZW50KCkpLnBhdGNoVmFsdWUoXHJcbiAgICAgICAgdGhpcy5mb3Jta2V5YXJyXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLmZvcm1rZXlhcnIpO1xyXG4gICAgY29uc29sZS5sb2coJ3RoaXMuRHJvcGRvd25Gb3JtLmdldCcsIHRoaXMuRHJvcGRvd25Gb3JtLnZhbHVlKTtcclxuICAgIHRoaXMuZGF0YUV2ZW50LmVtaXQodGhpcy5PdXRwdXRkYXRhKTtcclxuXHJcbiAgICAvLyBsZXQgZGF0YSA9IHRoaXMuRHJvcGRvd25Gb3JtLnZhbHVlLnZhbHVlXHJcbiAgICAvLyBpZiAodGhpcy5JbnB1dEZpZWxkcz8ud2hvbGVkYXRhKSB7XHJcbiAgICAvLyAgIHRoaXMuZGF0YUV2ZW50LmVtaXQodGhpcy5jaGlwU2VsZWN0ZWRPYmopO1xyXG4gICAgLy8gICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uZm9ybWdyb3VwICYmIHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1jb250cm9sbmFtZSkge1xyXG4gICAgLy8gICAgIHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1ncm91cFxyXG4gICAgLy8gICAgICAgLmdldCh0aGlzLklucHV0RmllbGRzPy5mb3JtY29udHJvbG5hbWUpXHJcbiAgICAvLyAgICAgICAucGF0Y2hWYWx1ZSh0aGlzLmNoaXBTZWxlY3RlZE9iaik7XHJcbiAgICAvLyAgIH1cclxuICAgIC8vIH1cclxuICAgIC8vIGVsc2Uge1xyXG4gICAgLy8gICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uT3V0cHV0a2V5KSB7XHJcbiAgICAvLyAgICAgdGhpcy5kYXRhRXZlbnQuZW1pdCh0aGlzLmNoaXBTZWxlY3RlZElkKTtcclxuICAgIC8vICAgICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uZm9ybWdyb3VwICYmIHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1jb250cm9sbmFtZSkge1xyXG4gICAgLy8gICAgICAgdGhpcy5JbnB1dEZpZWxkcz8uZm9ybWdyb3VwXHJcbiAgICAvLyAgICAgICAgIC5nZXQodGhpcy5JbnB1dEZpZWxkcz8uZm9ybWNvbnRyb2xuYW1lKVxyXG4gICAgLy8gICAgICAgICAucGF0Y2hWYWx1ZSh0aGlzLmNoaXBTZWxlY3RlZElkKTtcclxuICAgIC8vICAgICB9XHJcbiAgICAvLyAgIH1cclxuICAgIC8vICAgZWxzZSB7XHJcbiAgICAvLyAgICAgdGhpcy5kYXRhRXZlbnQuZW1pdCh0aGlzLmNoaXBTZWxlY3RlZE9iaik7XHJcbiAgICAvLyAgICAgaWYgKHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1ncm91cCAmJiB0aGlzLklucHV0RmllbGRzPy5mb3JtY29udHJvbG5hbWUpIHtcclxuICAgIC8vICAgICAgIHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1ncm91cFxyXG4gICAgLy8gICAgICAgICAuZ2V0KHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1jb250cm9sbmFtZSlcclxuICAgIC8vICAgICAgICAgLnBhdGNoVmFsdWUodGhpcy5jaGlwU2VsZWN0ZWRPYmopO1xyXG4gICAgLy8gICAgIH1cclxuICAgIC8vICAgfVxyXG5cclxuICAgIC8vIH1cclxuICB9XHJcbiAgc2VhcmNocGFyYW1zKHZhbHVlOmFueSkge1xyXG4gICAgbGV0IHBhcmFtcyA9ICcnO1xyXG4gICAgaWYgKHRoaXMuSW5wdXRGaWVsZHMucGFyYW1zKSB7XHJcbiAgICAgIHBhcmFtcyA9IHRoaXMuSW5wdXRGaWVsZHMucGFyYW1zO1xyXG4gICAgfVxyXG4gICAgbGV0IGlucFZhbHVlID0gdmFsdWU7XHJcbiAgICBpbnBWYWx1ZVxyXG4gICAgICA/IChwYXJhbXMgKz0gJyYnICsgdGhpcy5JbnB1dEZpZWxkcy5zZWFyY2hrZXkgKyAnPScgKyBpbnBWYWx1ZSlcclxuICAgICAgOiAnJztcclxuICAgIHJldHVybiBwYXJhbXM7XHJcbiAgfVxyXG4gIHJlbW92ZWNoaXAob2JqOmFueSkge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmNoaXBTZWxlY3RlZE9iai5pbmRleE9mKG9iaik7XHJcblxyXG4gICAgaWYgKGluZGV4ID49IDApIHtcclxuICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRPYmouc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgY29uc29sZS5sb2codGhpcy5jaGlwU2VsZWN0ZWRPYmopO1xyXG4gICAgICB0aGlzLmNoaXBTZWxlY3RlZElkLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMuY2hpcFNlbGVjdGVkSWQpO1xyXG4gICAgICB0aGlzLmZvcm1rZXlhcnIuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgY29uc29sZS5sb2coJ3RoaXMuZm9ybWtleWFycicsIHRoaXMuZm9ybWtleWFycik7XHJcblxyXG4gICAgICB0aGlzLkRyb3BJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWQoKTtcclxuICAgIH1cclxuICB9XHJcbiAgZm9ybWtleWFycjphbnk9W11cclxuICBwdWJsaWMgdmVuU2VsZWN0ZWQoZGF0YXM6YW55KTogdm9pZCB7XHJcbiAgICBsZXQgZGF0YT0hZGF0YXMgJiYgZGF0YXM9PT0nJyAgPyBkYXRhcyA6ZGF0YXMub3B0aW9uLnZhbHVlIHx8IGRhdGFzO1xyXG4gICAgdGhpcy5pc09wdGlvblNlbGVjdGVkPXRydWVcclxuICAgIHRoaXMuRHJvcElucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgIGNvbnNvbGUubG9nKCdldmVudC5vcHRpb24udmFsdWUnLCBkYXRhKTtcclxuICAgIHRoaXMuc2VsZWN0dmVuQnlOYW1lKFxyXG4gICAgICBkYXRhW3RoaXMuY29tcGFyZWtleShkYXRhKV1cclxuICAgICk7XHJcbiAgICBjb25zb2xlLmxvZygnY2hpcFNlbGVjdGVkdmVuaWQnLCB0aGlzLmNoaXBTZWxlY3RlZE9iaik7XHJcbiAgfVxyXG4gIHByaXZhdGUgc2VsZWN0dmVuQnlOYW1lKHZlbjphbnkpIHtcclxuICAgIGxldCBmb3VuZGVtcDEgPSB0aGlzLmNoaXBTZWxlY3RlZE9iai5maWx0ZXIoXHJcbiAgICAgIChlOmFueSkgPT4gZVt0aGlzLmNvbXBhcmVrZXkoZSldID09IHZlblxyXG4gICAgKTtcclxuICAgIGlmIChmb3VuZGVtcDEubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGxldCBmb3VuZGVtcCA9IHRoaXMuRHJvcGRvd25kYXRhLmZpbHRlcihcclxuICAgICAgKGU6YW55KSA9PiBlW3RoaXMuY29tcGFyZWtleShlKV0gPT0gdmVuXHJcbiAgICApO1xyXG4gICAgaWYgKGZvdW5kZW1wLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLmNoaXBTZWxlY3RlZE9iai5wdXNoKGZvdW5kZW1wWzBdKTtcclxuICAgICAgaWYgKHRoaXMuSW5wdXRGaWVsZHM/Lk91dHB1dGtleSkge1xyXG4gICAgICAgIHRoaXMuY2hpcFNlbGVjdGVkSWQucHVzaChmb3VuZGVtcFswXVt0aGlzLklucHV0RmllbGRzPy5PdXRwdXRrZXldKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLmNoaXBTZWxlY3RlZElkLnB1c2goZm91bmRlbXBbMF0uaWQpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLklucHV0RmllbGRzPy5mb3Jta2V5KSB7XHJcbiAgICAgICAgdGhpcy5mb3Jta2V5YXJyLnB1c2goZm91bmRlbXBbMF1bdGhpcy5JbnB1dEZpZWxkcz8uZm9ybWtleV0pO1xyXG4gICAgICB9IFxyXG4gICAgICB0aGlzLnNlbGVjdGVkKClcclxuICAgIH1cclxuICB9XHJcbiAgY29tcGFyZWtleShlOmFueSkge1xyXG4gICAgaWYgKHRoaXMuSW5wdXRGaWVsZHM/LmNvbXBhcmVrZXkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuSW5wdXRGaWVsZHM/LmNvbXBhcmVrZXk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoZT8uaWQpIHtcclxuICAgICAgICByZXR1cm4gJ2lkJztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5JbnB1dEZpZWxkcy5kaXNwbGF5a2V5O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIlxyXG4gIDxmb3JtIFtmb3JtR3JvdXBdPVwiRHJvcGRvd25Gb3JtXCIgaWQ9XCJtYXRDaGlwLXNpemVcIj5cclxuICAgIDwhLS0gY2xhc3M9XCJtYXQtY2hpcFNjcm9sbFwiIC0tPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkXHJcbiAgICAgIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCJcclxuICAgICAgKGNsaWNrKT1cIiF0aGlzLklucHV0RmllbGRzPy5mcm9uZW50ZGF0YSA/IHRoaXMuZ2V0ZHJvcGRvd24oJycpIDogJydcIlxyXG4gICAgPlxyXG4gICAgICA8bWF0LWxhYmVsPnt7IElucHV0RmllbGRzPy5sYWJlbCB8IHRyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICA8IS0tIGNsYXNzPVwiY2hpcC1jb250YWluZXJcIiAtLT5cclxuICAgICAgPG1hdC1jaGlwLWdyaWQgbXVsdGlwbGUgI2NoaXBMaXN0dmVuZG9yPlxyXG4gICAgICAgIDwhLS0gY2xhc3M9XCJtYXQtY2hpcEV4XCIgLS0+XHJcbiAgICAgICAgPG1hdC1jaGlwLXJvd1xyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IG9iaiBvZiBjaGlwU2VsZWN0ZWRPYmpcIlxyXG4gICAgICAgICAgW3JlbW92YWJsZV09XCJ0cnVlXCJcclxuICAgICAgICAgIChyZW1vdmVkKT1cInJlbW92ZWNoaXAob2JqKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3sgb2JqW0lucHV0RmllbGRzPy5kaXNwbGF5a2V5XSB9fVxyXG4gICAgICAgICAgPG1hdC1pY29uIG1hdENoaXBSZW1vdmU+Y2FuY2VsPC9tYXQtaWNvbj5cclxuICAgICAgICA8L21hdC1jaGlwLXJvdz5cclxuICAgICAgICA8IS0tIGNsYXNzPVwibWF0Zm9ybWZpZWxkaW5wdXRzdHlsZVwiIC0tPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgI0Ryb3BJbnB1dFxyXG4gICAgICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJzY3JvbGxsXCJcclxuICAgICAgICAgIFttYXRDaGlwSW5wdXRGb3JdPVwiY2hpcExpc3R2ZW5kb3JcIlxyXG4gICAgICAgICAgW21hdENoaXBJbnB1dFNlcGFyYXRvcktleUNvZGVzXT1cInNlcGFyYXRvcnNLZXlzQ29kZXNcIlxyXG4gICAgICAgICAgW21hdENoaXBJbnB1dEFkZE9uQmx1cl09XCJ0cnVlXCJcclxuICAgICAgICAgICNhdXRvQ29tcGxldGVJbnB1dD1cIm1hdEF1dG9jb21wbGV0ZVRyaWdnZXJcIlxyXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJ0aGlzLmR5bmFtY2lmb3JtY29udHJvbHBhcmVudCgpXCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L21hdC1jaGlwLWdyaWQ+XHJcbiAgICAgIDxtYXQtYXV0b2NvbXBsZXRlXHJcbiAgICAgICAgI3Njcm9sbGw9XCJtYXRBdXRvY29tcGxldGVcIlxyXG4gICAgICAgIChvcGVuZWQpPVwiYXV0b2NvbXBsZXRlQXBwU2Nyb2xsKClcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uXHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBkcm9wdmFsdWVzIG9mIERyb3Bkb3duZGF0YVwiXHJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJcclxuICAgICAgICAgICAgICB0aGlzLklucHV0RmllbGRzPy5mb3Jta2V5XHJcbiAgICAgICAgICAgICAgICA/IGRyb3B2YWx1ZXNbdGhpcy5JbnB1dEZpZWxkcz8uZm9ybWtleV1cclxuICAgICAgICAgICAgICAgIDogZHJvcHZhbHVlc1xyXG4gICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJJbnB1dEZpZWxkcz8udG9vbHRpcCA/IGRyb3B2YWx1ZXNbSW5wdXRGaWVsZHM/LnRvb2x0aXBrZXldIDogJydcIlxyXG4gICAgICAgICAgICAob25TZWxlY3Rpb25DaGFuZ2UpPVwidmVuU2VsZWN0ZWQoZHJvcHZhbHVlcylcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7eyBkcm9wdmFsdWVzW0lucHV0RmllbGRzPy5kaXNwbGF5a2V5XSB9fVxyXG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L21hdC1hdXRvY29tcGxldGU+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDwvZm9ybT5cclxuPCEtLSAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0ZWQoKVwiXHJcbiAtLT5cclxuPCEtLSAgICAgICAgIChvcHRpb25TZWxlY3RlZCk9XCJ2ZW5TZWxlY3RlZCgkZXZlbnQpXCJcclxuIC0tPlxyXG4iXX0=
436
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnMtY2hpcGRkLWNtcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92cy1jaGlwZHJvcGRvd24vc3JjL2xpYi92cy1jaGlwZGQtY21wL3ZzLWNoaXBkZC1jbXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdnMtY2hpcGRyb3Bkb3duL3NyYy9saWIvdnMtY2hpcGRkLWNtcC92cy1jaGlwZGQtY21wLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFHTCxzQkFBc0IsR0FDdkIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQ0wsWUFBWSxFQUNaLG9CQUFvQixFQUdwQixTQUFTLEVBQ1QsUUFBUSxFQUNSLFNBQVMsRUFDVCxHQUFHLEdBQ0osTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQW9CLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVuRCxPQUFPLEVBQWUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7Ozs7OztBQU1yRCxNQUFNLE9BQU8sb0JBQW9CO0lBRS9CLFlBQ1UsT0FBOEIsRUFDOUIsRUFBZTtRQURmLFlBQU8sR0FBUCxPQUFPLENBQXVCO1FBQzlCLE9BQUUsR0FBRixFQUFFLENBQWE7UUFIekIsbUJBQWMsR0FBVyxLQUFLLENBQUM7UUFPdEIsZUFBVSxHQUFZLElBQUksQ0FBQztRQU10QyxZQUFPLEdBQWtDLElBQUksQ0FBQztRQUU5Qyx3QkFBbUIsR0FBa0MsSUFBSSxDQUFDO1FBRzlDLGNBQVMsR0FBc0IsSUFBSSxZ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QUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7Z0JBQ1YsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQztZQUNyQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7K0dBeGNVLG9CQUFvQjttR0FBcEIsb0JBQW9CLHlTQVl2QixzQkFBc0IsbUVBR25CLHNCQUFzQiw4UEMvQ25DLG9qRUF1REE7OzRGRHZCYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0UsbUJBQW1CO29IQVVwQixXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFNUixPQUFPO3NCQUpKLFNBQVM7dUJBQUMsbUJBQW1CLEVBQUU7d0JBQzlCLE1BQU0sRUFBRSxLQUFLO3dCQUNiLElBQUksRUFBRSxzQkFBc0I7cUJBQzdCO2dCQUdILG1CQUFtQjtzQkFEaEIsU0FBUzt1QkFBQyxzQkFBc0I7Z0JBR2pDLGtCQUFrQjtzQkFEakIsU0FBUzt1QkFBQyxTQUFTO2dCQUVWLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ2lCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFVYixTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50LFxyXG4gIE1hdEF1dG9jb21wbGV0ZSxcclxuICBNYXRBdXRvY29tcGxldGVUcmlnZ2VyLFxyXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7XHJcbiAgZGVib3VuY2VUaW1lLFxyXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxyXG4gIHRhcCxcclxuICBmaWx0ZXIsXHJcbiAgc3dpdGNoTWFwLFxyXG4gIGZpbmFsaXplLFxyXG4gIHRha2VVbnRpbCxcclxuICBtYXAsXHJcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlLCBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVnNDaGlwZHJvcGRvd25TZXJ2aWNlIH0gZnJvbSAnLi4vdnMtY2hpcGRyb3Bkb3duLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ09NTUEsIEVOVEVSIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItdnMtY2hpcGRkLWNtcCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3ZzLWNoaXBkZC1jbXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3ZzLWNoaXBkZC1jbXAuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFZzQ2hpcGRkQ21wQ29tcG9uZW50IHtcclxuICBEcm9kb3duTG9hZGluZzogYm9vbGVhbiA9ZmFsc2U7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHNlcnZpY2U6IFZzQ2hpcGRyb3Bkb3duU2VydmljZSxcclxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyXHJcbiAgKSB7fVxyXG4gIEBJbnB1dCgpIElucHV0RmllbGRzOiBhbnk7XHJcbiAgQElucHV0KCkgUmVzZXRGb3JtOiBhbnk7XHJcbiAgQElucHV0KCkgQmFja2VuZGFwaTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2F1dG9Db21wbGV0ZUlucHV0Jywge1xyXG4gICAgc3RhdGljOiBmYWxzZSxcclxuICAgIHJlYWQ6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIsXHJcbiAgfSlcclxudHJpZ2dlcjogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciB8IG51bGwgPSBudWxsO1xyXG4gIEBWaWV3Q2hpbGQoTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcilcclxuYXV0b2NvbXBsZXRlVHJpZ2dlcjogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciB8IG51bGwgPSBudWxsO1xyXG4gIEBWaWV3Q2hpbGQoJ3Njcm9sbGwnKVxyXG4gIG1hdEF1dG9jb21wbGV0ZUFwcCE6IE1hdEF1dG9jb21wbGV0ZTtcclxuICBAT3V0cHV0KCkgZGF0YUV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBWaWV3Q2hpbGQoJ0Ryb3BJbnB1dCcpIERyb3BJbnB1dDogYW55O1xyXG4gIHJlYWRvbmx5IHNlcGFyYXRvcnNLZXlzQ29kZXM6IG51bWJlcltdID0gW0VOVEVSLCBDT01NQV07XHJcblxyXG4gIGhhc19uZXh0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgY3VycmVudHBhZ2U6IG51bWJlciA9IDE7XHJcbiAgRHJvcGRvd25kYXRhOiBhbnkgPSBbXTtcclxuICBoYXNfcHJldmlvdXM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBEcm9wZG93bkZvcm06YW55PSBGb3JtR3JvdXA7XHJcbiAgY2hpcFNlbGVjdGVkSWQ6IGFueSA9IFtdO1xyXG4gIGNoaXBTZWxlY3RlZE9iajogYW55ID0gW107XHJcbiAgQElucHV0KCkgZm9ybUdyb3VwITogRm9ybUdyb3VwO1xyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgLy8gaWYgKHRoaXMuZm9ybUdyb3VwKSB7XHJcbiAgICAvLyAgIHRoaXMuRHJvcGRvd25Gb3JtID0gdGhpcy5mb3JtR3JvdXA7XHJcbiAgICAvLyB9IGVsc2Uge1xyXG4gICAgLy8gICB0aGlzLkRyb3Bkb3duRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgLy8gICAgIHZhbHVlOiAnJyxcclxuICAgIC8vICAgfSk7XHJcbiAgICAvLyB9XHJcbiAgICAvLyB0aGlzLmR1cG5nb25pdCgpO1xyXG5cclxuICAgIC8vIGlmICh0aGlzLklucHV0RmllbGRzPy5kZWZhdWx0dmFsdWUpIHtcclxuICAgIC8vICAgdGhpcy5Ecm9wZG93bkZvcm0uZ2V0KFwidmFsdWVcIikucGF0Y2hWYWx1ZSh0aGlzLklucHV0RmllbGRzPy5kZWZhdWx0dmFsdWUpXHJcbiAgICAvLyAgIHRoaXMuY2hpcFNlbGVjdGVkT2JqID0gdGhpcy5JbnB1dEZpZWxkcz8uZGVmYXVsdHZhbHVlXHJcbiAgICAvLyAgIGlmICh0aGlzLmNoaXBTZWxlY3RlZE9iai5sZW5ndGggPiAwKSB7XHJcbiAgICAvLyAgICAgZm9yIChsZXQgZm91bmRlbXAgb2YgdGhpcy5jaGlwU2VsZWN0ZWRPYmopIHtcclxuICAgIC8vICAgICAgIGlmICh0aGlzLklucHV0RmllbGRzPy5PdXRwdXRrZXkpIHtcclxuICAgIC8vICAgICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRJZC5wdXNoKGZvdW5kZW1wW3RoaXMuSW5wdXRGaWVsZHM/Lk91dHB1dGtleV0pXHJcblxyXG4gICAgLy8gICAgICAgfVxyXG4gICAgLy8gICAgICAgZWxzZSB7XHJcbiAgICAvLyAgICAgICAgIHRoaXMuY2hpcFNlbGVjdGVkSWQucHVzaChmb3VuZGVtcC5pZClcclxuXHJcbiAgICAvLyAgICAgICB9XHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gICAgIHRoaXMuc2VsZWN0ZWQoKVxyXG4gICAgLy8gICB9XHJcblxyXG4gICAgLy8gfVxyXG4gICAgLy8gaWYgKHRoaXMuSW5wdXRGaWVsZHM/LmZyb25lbnRkYXRhKSB7XHJcbiAgICAvLyAgIHRoaXMuRHJvcGRvd25kYXRhID0gdGhpcy5JbnB1dEZpZWxkcz8uZGF0YVxyXG5cclxuICAgIC8vIH1cclxuICAgIC8vIGVsc2Uge1xyXG4gICAgLy8gICB0aGlzLmdldGRyb3Bkb3duKCcnKVxyXG4gICAgLy8gfVxyXG4gIH1cclxuICBsb29vcCgpIHtcclxuICAgIGZvciAobGV0IGZvdW5kZW1wIG9mIHRoaXMuY2hpcFNlbGVjdGVkT2JqKSB7XHJcbiAgICAgIGlmKCEoZm91bmRlbXAgaW5zdGFuY2VvZiBOdW1iZXIpKXtcclxuICAgICAgICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uT3V0cHV0a2V5KSB7XHJcbiAgICAgICAgICB0aGlzLmNoaXBTZWxlY3RlZElkLnB1c2goZm91bmRlbXBbdGhpcy5JbnB1dEZpZWxkcz8uT3V0cHV0a2V5XSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRJZC5wdXNoKGZvdW5kZW1wLmlkKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1rZXkpIHtcclxuICAgICAgICAgIHRoaXMuZm9ybWtleWFyci5wdXNoKGZvdW5kZW1wW3RoaXMuSW5wdXRGaWVsZHM/LmZvcm1rZXldKTtcclxuICAgICAgICB9IFxyXG4gICAgICB9XHJcbiAgICAgIH1cclxuICAgICBcclxuICB9XHJcbiAgZHVwbmdvbml0KCkge1xyXG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwKSB7XHJcbiAgICAgIHRoaXMuRHJvcGRvd25Gb3JtID0gdGhpcy5mb3JtR3JvdXA7XHJcbiAgICAgIGlmICghdGhpcy5Ecm9wZG93bkZvcm0uY29udGFpbnModGhpcy5JbnB1dEZpZWxkcz8uZm9ybWNvbnRyb2xuYW1lKSkge1xyXG4gICAgICAgIHRoaXMuRHJvcGRvd25Gb3JtLmFkZENvbnRyb2woXHJcbiAgICAgICAgICB0aGlzLmR5bmFtY2lmb3JtY29udHJvbHBhcmVudCgpLFxyXG4gICAgICAgICAgbmV3IEZvcm1Db250cm9sKHsgdmFsdWU6IFtdLCBkaXNhYmxlZDogdGhpcy5JbnB1dEZpZWxkcz8uZGlzYWJsZWQgfSlcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2V7XHJcbiAgICAgICAgdGhpcy5JbnB1dEZpZWxkcz8uZGlzYWJsZWQgPyB0aGlzLkRyb3Bkb3duRm9ybS5nZXQoJ2NoaXB2YWx1ZScpLmRpc2FibGUoKSA6ICcnICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5Ecm9wZG93bkZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICBjaGlwdmFsdWU6IFtdLGRpc2FibGVkOiB0aGlzLklucHV0RmllbGRzPy5kaXNhYmxlZFxyXG4gICAgICB9KTtcclxuXHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZygndGhpcy5Ecm9wZG93bkZvcm0nLCB0aGlzLkRyb3Bkb3duRm9ybS52YWx1ZSk7XHJcbiAgICAvLyB0aGlzLmNoaXBTZWxlY3RlZE9iaiA9XHJcbiAgICAvLyAgIHRoaXMuRHJvcGRvd25Gb3JtLmdldCh0aGlzLmR5bmFtY2lmb3JtY29udHJvbHBhcmVudCgpKS52YWx1ZSAmJlxyXG4gICAgLy8gICB0aGlzLkRyb3Bkb3duRm9ybS5nZXQodGhpcy5keW5hbWNpZm9ybWNvbnRyb2xwYXJlbnQoKSkudmFsdWUubGVuZ3RoICE9PSAwXHJcbiAgICAvLyAgICAgPyB0aGlzLkRyb3Bkb3duRm9ybS5nZXQodGhpcy5keW5hbWNpZm9ybWNvbnRyb2xwYXJlbnQoKSkudmFsdWVcclxuICAgIC8vICAgICA6IFtdO1xyXG4gICAgLy8gICAgIGNvbnNvbGUubG9nKCd0aGlzLmNoaXBTZWxlY3RlZE9iaicsIHRoaXMuY2hpcFNlbGVjdGVkT2JqKTtcclxuXHJcbiAgICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uZGVmYXVsdHZhbHVlKSB7XHJcbiAgICAgIC8vIHRoaXMuRHJvcGRvd25Gb3JtLmdldCh0aGlzLmR5bmFtY2lmb3JtY29udHJvbHBhcmVudCgpKS5wYXRjaFZhbHVlKFxyXG4gICAgICAvLyAgIHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1rZXlcclxuICAgICAgLy8gICAgID8gdGhpcy5JbnB1dEZpZWxkcz8uZGVmYXVsdHZhbHVlW3RoaXMuSW5wdXRGaWVsZHM/LmZvcm1rZXldXHJcbiAgICAgIC8vICAgICA6IHRoaXMuSW5wdXRGaWVsZHM/LmRlZmF1bHR2YWx1ZVxyXG4gICAgICAvLyApO1xyXG4gICAgICAvLyB0aGlzLkRyb3Bkb3duRm9ybS5nZXQodGhpcy5keW5hbWNpZm9ybWNvbnRyb2xwYXJlbnQoKSkucGF0Y2hWYWx1ZSh0aGlzLklucHV0RmllbGRzPy5kZWZhdWx0dmFsdWUpO1xyXG4gICAgICB0aGlzLmNoaXBTZWxlY3RlZE9iaiA9IHRoaXMuSW5wdXRGaWVsZHM/LmRlZmF1bHR2YWx1ZTtcclxuICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRJZCA9IFtdO1xyXG4gICAgICB0aGlzLmZvcm1rZXlhcnIgPSBbXTtcclxuICAgICAgaWYgKHRoaXMuY2hpcFNlbGVjdGVkT2JqLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLmxvb29wKCk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLkRyb3Bkb3duRm9ybS5nZXQodGhpcy5keW5hbWNpZm9ybWNvbnRyb2xwYXJlbnQoKSkudmFsdWUgJiZcclxuICAgICAgdGhpcy5Ecm9wZG93bkZvcm0uZ2V0KHRoaXMuZHluYW1jaWZvcm1jb250cm9scGFyZW50KCkpLnZhbHVlLmxlbmd0aCAhPT0gMFxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuY2hpcFNlbGVjdGVkT2JqID0gdGhpcy5Ecm9wZG93bkZvcm0uZ2V0KFxyXG4gICAgICAgIHRoaXMuZHluYW1jaWZvcm1jb250cm9scGFyZW50KClcclxuICAgICAgKS52YWx1ZTtcclxuICAgICAgY29uc29sZS5sb2coJ3Rlc3QnLHRoaXMuY2hpcFNlbGVjdGVkT2JqID0gdGhpcy5Ecm9wZG93bkZvcm0uZ2V0KFxyXG4gICAgICAgIHRoaXMuZHluYW1jaWZvcm1jb250cm9scGFyZW50KClcclxuICAgICAgKS52YWx1ZSlcclxuICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRJZCA9IFtdO1xyXG4gICAgICB0aGlzLmZvcm1rZXlhcnIgPSBbXTtcclxuICAgICAgdGhpcy5sb29vcCgpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkKCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uZnJvbmVudGRhdGEpIHtcclxuICAgICAgdGhpcy5Ecm9wZG93bmRhdGEgPSB0aGlzLklucHV0RmllbGRzPy5kYXRhO1xyXG4gICAgfVxyXG4gICAgdGhpcy5kcm9wZG93bnNlYXJjaCgpO1xyXG4gICAgLy8gZWxzZSB7XHJcbiAgICAvLyAgIHRoaXMuZ2V0ZHJvcGRvd24oJycpXHJcbiAgICAvLyB9XHJcbiAgfVxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydJbnB1dEZpZWxkcyddICYmIGNoYW5nZXNbJ0lucHV0RmllbGRzJ10uY3VycmVudFZhbHVlKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdTdW1tYXJ5IExvZyBDaGFuZ2VzJyk7XHJcbiAgICAgIHRoaXMuY3VycmVudHBhZ2UgPSAxO1xyXG4gICAgICB0aGlzLmR1cG5nb25pdCgpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbJ1Jlc2V0Rm9ybSddICYmIGNoYW5nZXNbJ1Jlc2V0Rm9ybSddLmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICBjb25zb2xlLmxvZygnaGl0dGVkJyk7XHJcbiAgICAgIC8vIHRoaXMuRHJvcGRvd25Gb3JtLnJlc2V0KCk7XHJcbiAgICAgIHRoaXMuY3VycmVudHBhZ2UgPSAxO1xyXG4gICAgICB0aGlzLmR1cG5nb25pdCgpO1xyXG4gICAgICB0aGlzLmNoaXBTZWxlY3RlZElkID0gW107XHJcbiAgICAgIHRoaXMuZm9ybWtleWFyciA9IFtdO1xyXG4gICAgICB0aGlzLmNoaXBTZWxlY3RlZE9iaiA9IFtdO1xyXG4gICAgICB0aGlzLmRhdGFFdmVudC5lbWl0KFtdKTtcclxuICAgIH1cclxuICB9XHJcbiAgLy8gcHVibGljIGRpc3BsYXlkZXZlbG9wY2xpZW50KGNsdDogYW55LCBrZXk6IHN0cmluZykge1xyXG4gIC8vICAgcmV0dXJuIGtleVtjbHRdO1xyXG4gIC8vIH1cclxuICBhdXRvY29tcGxldGVBcHBTY3JvbGwoKSB7XHJcbiAgICBpZiAoIXRoaXMuSW5wdXRGaWVsZHM/LmZyb25lbnRkYXRhKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIHRoaXMubWF0QXV0b2NvbXBsZXRlQXBwICYmXHJcbiAgICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZVRyaWdnZXIgJiZcclxuICAgICAgICAgIHRoaXMubWF0QXV0b2NvbXBsZXRlQXBwLnBhbmVsXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBmcm9tRXZlbnQodGhpcy5tYXRBdXRvY29tcGxldGVBcHAucGFuZWwubmF0aXZlRWxlbWVudCwgJ3Njcm9sbCcpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgIG1hcCgoeCkgPT4gdGhpcy5tYXRBdXRvY29tcGxldGVBcHAucGFuZWwubmF0aXZlRWxlbWVudC5zY3JvbGxUb3ApLFxyXG4gICAgICAgICAgICAgIHRha2VVbnRpbChcclxuICAgICAgICAgICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlVHJpZ2dlci5wYW5lbENsb3NpbmdBY3Rpb25zIGFzIE9ic2VydmFibGU8YW55PlxyXG4gICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3Qgc2Nyb2xsVG9wID1cclxuICAgICAgICAgICAgICAgIHRoaXMubWF0QXV0b2NvbXBsZXRlQXBwLnBhbmVsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wO1xyXG4gICAgICAgICAgICAgIGNvbnN0IHNjcm9sbEhlaWdodCA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1hdEF1dG9jb21wbGV0ZUFwcC5wYW5lbC5uYXRpdmVFbGVtZW50LnNjcm9sbEhlaWdodDtcclxuICAgICAgICAgICAgICBjb25zdCBlbGVtZW50SGVpZ2h0ID1cclxuICAgICAgICAgICAgICAgIHRoaXMubWF0QXV0b2NvbXBsZXRlQXBwLnBhbmVsLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0O1xyXG4gICAgICAgICAgICAgIGNvbnN0IGF0Qm90dG9tID0gc2Nyb2xsSGVpZ2h0IC0gMSA8PSBzY3JvbGxUb3AgKyBlbGVtZW50SGVpZ2h0O1xyXG4gICAgICAgICAgICAgIGlmIChhdEJvdHRvbSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaGFzX25leHQgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5Ecm9wSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZTtcclxuICAgICAgICAgICAgICAgICAgbGV0IHBhcmFtcyA9IHRoaXMuc2VhcmNocGFyYW1zKHZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50cGFnZSA9IHRoaXMuY3VycmVudHBhZ2UgKyAxO1xyXG4gICAgICAgICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50cGFnZSA+IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2VcclxuICAgICAgICAgICAgICAgICAgICAgIC5HZXRBcGkoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuSW5wdXRGaWVsZHMudXJsICsgJz9wYWdlPScgKyB0aGlzLmN1cnJlbnRwYWdlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXNcclxuICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdHMpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRhdGFzID0gcmVzdWx0c1snZGF0YSddO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGF0YXBhZ2luYXRpb24gPSByZXN1bHRzWydwYWdpbmF0aW9uJ107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuRHJvcGRvd25kYXRhID0gdGhpcy5Ecm9wZG93bmRhdGEuY29uY2F0KGRhdGFzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3RoaXMuRHJvcGRvd25kYXRhJywgdGhpcy5Ecm9wZG93bmRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5Ecm9wZG93bmRhdGEubGVuZ3RoID49IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhhc19uZXh0ID0gZGF0YXBhZ2luYXRpb24uaGFzX25leHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYXNfcHJldmlvdXMgPSBkYXRhcGFnaW5hdGlvbi5oYXNfcHJldmlvdXM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50cGFnZSA9IGRhdGFwYWdpbmF0aW9uLmluZGV4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgaXNPcHRpb25TZWxlY3RlZDpib29sZWFuPWZhbHNlXHJcbiAgZHJvcGRvd25zZWFyY2goKSB7XHJcbiAgICBjb25zdCBjb250cm9sTmFtZSA9IHRoaXMuZHluYW1jaWZvcm1jb250cm9scGFyZW50KCk7XHJcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5Ecm9wZG93bkZvcm0uZ2V0KGNvbnRyb2xOYW1lKTtcclxuICAgIGlmIChjb250cm9sIFxyXG4gICAgXHJcbiAgICAgXHJcbiAgICApIHtcclxuICAgICAgaWYgKCF0aGlzLklucHV0RmllbGRzPy5mcm9uZW50ZGF0YSkge1xyXG4gICAgICAgIGlmICghdGhpcy5JbnB1dEZpZWxkcz8udXJsKSB7XHJcbiAgICAgICAgICByZXR1cm4gO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLkRyb3Bkb3duRm9ybS5nZXQodGhpcy5keW5hbWNpZm9ybWNvbnRyb2xwYXJlbnQoKSlcclxuICAgICAgICAgIC52YWx1ZUNoYW5nZXMucGlwZShcclxuICAgICAgICAgICAgZGVib3VuY2VUaW1lKDMwMCksXHJcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICAgICAgICAgIC8vIHRhcCgoKSA9PiB7XHJcbiAgICAgICAgICAgIC8vICAgdGhpcy5Ecm9kb3duTG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgICAgIC8vICAgY29uc29sZS5sb2coJ2luc2lkZSB0YXAnKTtcclxuICAgICAgICAgICAgLy8gfSksXHJcbiAgICAgICAgICAgIHN3aXRjaE1hcCgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgICBpZih0aGlzLmlzT3B0aW9uU2VsZWN0ZWQpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc09wdGlvblNlbGVjdGVkPWZhbHNlXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gW11cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgbGV0IHBhcmFtcyA9IHRoaXMuc2VhcmNocGFyYW1zKHZhbHVlKTtcclxuICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRwYWdlID0gMTtcclxuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImhpdGVlZWVkZGRkZGRkZGRkZGRkZD4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PlwiKVxyXG5cclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlXHJcbiAgICAgICAgICAgICAgICAuR2V0QXBpKFxyXG4gICAgICAgICAgICAgICAgICB0aGlzLklucHV0RmllbGRzLnVybCArICc/cGFnZT0nICsgdGhpcy5jdXJyZW50cGFnZSxcclxuICAgICAgICAgICAgICAgICAgcGFyYW1zLFxyXG4gICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Ecm9kb3duTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIClcclxuICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdHM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmRhdGFFdmVudC5lbWl0KCcnKTtcclxuXHJcbiAgICAgICAgICAgIGxldCBkYXRhcyA9IHJlc3VsdHNbJ2RhdGEnXTtcclxuICAgICAgICAgICAgdGhpcy5Ecm9wZG93bmRhdGEgPSBkYXRhcztcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vICAgICAgICAgdGhpcy5Ecm9wZG93bmRhdGEgPSB0aGlzLklucHV0RmllbGRzPy5kYXRhXHJcblxyXG4gICAgICAgIHRoaXMuRHJvcGRvd25Gb3JtLmdldCh0aGlzLmR5bmFtY2lmb3JtY29udHJvbHBhcmVudCgpKS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgKHZhbHVlOmFueSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLkRyb3Bkb3duZGF0YSA9IHRoaXMuSW5wdXRGaWVsZHM/LmRhdGEuZmlsdGVyKChpdGVtOmFueSkgPT5cclxuICAgICAgICAgICAgICBpdGVtW3RoaXMuSW5wdXRGaWVsZHM/LmRpc3BsYXlrZXldXHJcbiAgICAgICAgICAgICAgICA/LnRvTG93ZXJDYXNlKClcclxuICAgICAgICAgICAgICAgIC5pbmNsdWRlcyh2YWx1ZT8udG9Mb3dlckNhc2UoKSlcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBpZiAoY29udHJvbCAmJiAhdGhpcy5JbnB1dEZpZWxkcz8uZnJvbmVudGRhdGEpIHtcclxuICAgIC8vICAgdGhpcy5Ecm9wZG93bkZvcm0uZ2V0KHRoaXMuZHluYW1jaWZvcm1jb250cm9scGFyZW50KCkpXHJcbiAgICAvLyAgICAgLnZhbHVlQ2hhbmdlcy5waXBlKFxyXG4gICAgLy8gICAgICAgZGVib3VuY2VUaW1lKDIwMCksXHJcbiAgICAvLyAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxyXG4gICAgLy8gICAgICAgdGFwKCgpID0+IHtcclxuICAgIC8vICAgICAgICAgdGhpcy5Ecm9kb3duTG9hZGluZyA9IHRydWU7XHJcbiAgICAvLyAgICAgICAgIGNvbnNvbGUubG9nKCdpbnNpZGUgdGFwJyk7XHJcbiAgICAvLyAgICAgICB9KSxcclxuICAgIC8vICAgICAgIHN3aXRjaE1hcCgodmFsdWUpID0+IHtcclxuICAgIC8vICAgICAgICAgbGV0IHBhcmFtcyA9IHRoaXMuc2VhcmNocGFyYW1zKHZhbHVlKTtcclxuICAgIC8vICAgICAgICAgdGhpcy5jdXJyZW50cGFnZSA9IDE7XHJcbiAgICAvLyAgICAgICAgIHJldHVybiB0aGlzLnNlcnZpY2VcclxuICAgIC8vICAgICAgICAgICAuR2V0QXBpKFxyXG4gICAgLy8gICAgICAgICAgICAgdGhpcy5JbnB1dEZpZWxkcy51cmwgKyAnP3BhZ2U9JyArIHRoaXMuY3VycmVudHBhZ2UsXHJcbiAgICAvLyAgICAgICAgICAgICBwYXJhbXNcclxuICAgIC8vICAgICAgICAgICApXHJcbiAgICAvLyAgICAgICAgICAgLnBpcGUoXHJcbiAgICAvLyAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAvLyAgICAgICAgICAgICAgIHRoaXMuRHJvZG93bkxvYWRpbmcgPSBmYWxzZTtcclxuICAgIC8vICAgICAgICAgICAgIH0pXHJcbiAgICAvLyAgICAgICAgICAgKTtcclxuICAgIC8vICAgICAgIH0pXHJcbiAgICAvLyAgICAgKVxyXG4gICAgLy8gICAgIC5zdWJzY3JpYmUoKHJlc3VsdHM6IGFueVtdKSA9PiB7XHJcbiAgICAvLyAgICAgICBsZXQgZGF0YXMgPSByZXN1bHRzWydkYXRhJ107XHJcbiAgICAvLyAgICAgICB0aGlzLkRyb3Bkb3duZGF0YSA9IGRhdGFzO1xyXG4gICAgLy8gICAgIH0pO1xyXG4gICAgLy8gfVxyXG4gIH1cclxuICBnZXRkcm9wZG93bih2YWx1ZTphbnkpIHtcclxuXHJcbiAgICB0aGlzLmN1cnJlbnRwYWdlID0gMTtcclxuICAgIGlmICggdGhpcy5JbnB1dEZpZWxkcy51cmwpIHtcclxuICAgICAgbGV0IHBhcmFtcyA9IHRoaXMuc2VhcmNocGFyYW1zKHZhbHVlKTtcclxuICAgICAgdGhpcy5zZXJ2aWNlXHJcbiAgICAgICAgLkdldEFwaSh0aGlzLklucHV0RmllbGRzLnVybCArICc/cGFnZT0nICsgdGhpcy5jdXJyZW50cGFnZSwgcGFyYW1zKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdHM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgbGV0IGRhdGFzID0gcmVzdWx0c1snZGF0YSddO1xyXG4gICAgICAgICAgbGV0IGRhdGFwYWdpbmF0aW9uID0gcmVzdWx0c1sncGFnaW5hdGlvbiddO1xyXG4gICAgICAgICAgdGhpcy5Ecm9wZG93bmRhdGEgPSBkYXRhcztcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy50cmlnZ2VyKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyLm9wZW5QYW5lbCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LCAwKTtcclxuICAgICAgICAgIGlmICh0aGlzLkRyb3Bkb3duZGF0YS5sZW5ndGggPj0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLmhhc19uZXh0ID0gZGF0YXBhZ2luYXRpb24uaGFzX25leHQ7XHJcbiAgICAgICAgICAgIHRoaXMuaGFzX3ByZXZpb3VzID0gZGF0YXBhZ2luYXRpb24uaGFzX3ByZXZpb3VzO1xyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRwYWdlID0gZGF0YXBhZ2luYXRpb24uaW5kZXg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIE91dHB1dGRhdGE6IGFueSA9IFtdO1xyXG4gIGR5bmFtY2lmb3JtY29udHJvbHBhcmVudCgpIHtcclxuICAgIHJldHVybiB0aGlzLklucHV0RmllbGRzPy5mb3JtY29udHJvbG5hbWUgJiYgdGhpcy5mb3JtR3JvdXBcclxuICAgICAgPyB0aGlzLklucHV0RmllbGRzPy5mb3JtY29udHJvbG5hbWVcclxuICAgICAgOiAnY2hpcHZhbHVlJztcclxuICB9XHJcbiAgc2VsZWN0ZWQoKSB7XHJcbiAgICB0aGlzLk91dHB1dGRhdGEgPSB0aGlzLmNoaXBTZWxlY3RlZE9iajtcclxuICAgIGlmICh0aGlzLklucHV0RmllbGRzPy5PdXRwdXRrZXkpIHtcclxuICAgICAgdGhpcy5PdXRwdXRkYXRhID0gdGhpcy5jaGlwU2VsZWN0ZWRJZDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmZvcm1Hcm91cCAmJiB0aGlzLklucHV0RmllbGRzPy5mb3JtY29udHJvbG5hbWUpIHtcclxuICAgICAgdGhpcy5Ecm9wZG93bkZvcm0uZ2V0KHRoaXMuZHluYW1jaWZvcm1jb250cm9scGFyZW50KCkpLnBhdGNoVmFsdWUoXHJcbiAgICAgICAgdGhpcy5mb3Jta2V5YXJyXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLmZvcm1rZXlhcnIpO1xyXG4gICAgY29uc29sZS5sb2coJ3RoaXMuRHJvcGRvd25Gb3JtLmdldCcsIHRoaXMuRHJvcGRvd25Gb3JtLnZhbHVlKTtcclxuICAgIHRoaXMuZGF0YUV2ZW50LmVtaXQodGhpcy5PdXRwdXRkYXRhKTtcclxuXHJcbiAgICAvLyBsZXQgZGF0YSA9IHRoaXMuRHJvcGRvd25Gb3JtLnZhbHVlLnZhbHVlXHJcbiAgICAvLyBpZiAodGhpcy5JbnB1dEZpZWxkcz8ud2hvbGVkYXRhKSB7XHJcbiAgICAvLyAgIHRoaXMuZGF0YUV2ZW50LmVtaXQodGhpcy5jaGlwU2VsZWN0ZWRPYmopO1xyXG4gICAgLy8gICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uZm9ybWdyb3VwICYmIHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1jb250cm9sbmFtZSkge1xyXG4gICAgLy8gICAgIHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1ncm91cFxyXG4gICAgLy8gICAgICAgLmdldCh0aGlzLklucHV0RmllbGRzPy5mb3JtY29udHJvbG5hbWUpXHJcbiAgICAvLyAgICAgICAucGF0Y2hWYWx1ZSh0aGlzLmNoaXBTZWxlY3RlZE9iaik7XHJcbiAgICAvLyAgIH1cclxuICAgIC8vIH1cclxuICAgIC8vIGVsc2Uge1xyXG4gICAgLy8gICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uT3V0cHV0a2V5KSB7XHJcbiAgICAvLyAgICAgdGhpcy5kYXRhRXZlbnQuZW1pdCh0aGlzLmNoaXBTZWxlY3RlZElkKTtcclxuICAgIC8vICAgICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uZm9ybWdyb3VwICYmIHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1jb250cm9sbmFtZSkge1xyXG4gICAgLy8gICAgICAgdGhpcy5JbnB1dEZpZWxkcz8uZm9ybWdyb3VwXHJcbiAgICAvLyAgICAgICAgIC5nZXQodGhpcy5JbnB1dEZpZWxkcz8uZm9ybWNvbnRyb2xuYW1lKVxyXG4gICAgLy8gICAgICAgICAucGF0Y2hWYWx1ZSh0aGlzLmNoaXBTZWxlY3RlZElkKTtcclxuICAgIC8vICAgICB9XHJcbiAgICAvLyAgIH1cclxuICAgIC8vICAgZWxzZSB7XHJcbiAgICAvLyAgICAgdGhpcy5kYXRhRXZlbnQuZW1pdCh0aGlzLmNoaXBTZWxlY3RlZE9iaik7XHJcbiAgICAvLyAgICAgaWYgKHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1ncm91cCAmJiB0aGlzLklucHV0RmllbGRzPy5mb3JtY29udHJvbG5hbWUpIHtcclxuICAgIC8vICAgICAgIHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1ncm91cFxyXG4gICAgLy8gICAgICAgICAuZ2V0KHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1jb250cm9sbmFtZSlcclxuICAgIC8vICAgICAgICAgLnBhdGNoVmFsdWUodGhpcy5jaGlwU2VsZWN0ZWRPYmopO1xyXG4gICAgLy8gICAgIH1cclxuICAgIC8vICAgfVxyXG5cclxuICAgIC8vIH1cclxuICB9XHJcbiAgc2VhcmNocGFyYW1zKHZhbHVlOmFueSkge1xyXG4gICAgbGV0IHBhcmFtcyA9ICcnO1xyXG4gICAgaWYgKHRoaXMuSW5wdXRGaWVsZHMucGFyYW1zKSB7XHJcbiAgICAgIHBhcmFtcyA9IHRoaXMuSW5wdXRGaWVsZHMucGFyYW1zO1xyXG4gICAgfVxyXG4gICAgbGV0IGlucFZhbHVlID0gdmFsdWU7XHJcbiAgICBpbnBWYWx1ZVxyXG4gICAgICA/IChwYXJhbXMgKz0gJyYnICsgdGhpcy5JbnB1dEZpZWxkcy5zZWFyY2hrZXkgKyAnPScgKyBpbnBWYWx1ZSlcclxuICAgICAgOiAnJztcclxuICAgIHJldHVybiBwYXJhbXM7XHJcbiAgfVxyXG4gIHJlbW92ZWNoaXAob2JqOmFueSkge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmNoaXBTZWxlY3RlZE9iai5pbmRleE9mKG9iaik7XHJcblxyXG4gICAgaWYgKGluZGV4ID49IDApIHtcclxuICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRPYmouc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgY29uc29sZS5sb2codGhpcy5jaGlwU2VsZWN0ZWRPYmopO1xyXG4gICAgICB0aGlzLmNoaXBTZWxlY3RlZElkLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMuY2hpcFNlbGVjdGVkSWQpO1xyXG4gICAgICB0aGlzLmZvcm1rZXlhcnIuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgY29uc29sZS5sb2coJ3RoaXMuZm9ybWtleWFycicsIHRoaXMuZm9ybWtleWFycik7XHJcblxyXG4gICAgICB0aGlzLkRyb3BJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWQoKTtcclxuICAgIH1cclxuICB9XHJcbiAgZm9ybWtleWFycjphbnk9W11cclxuICBwdWJsaWMgdmVuU2VsZWN0ZWQoZGF0YXM6YW55KTogdm9pZCB7XHJcbiAgICBsZXQgZGF0YT0hZGF0YXMgJiYgZGF0YXM9PT0nJyAgPyBkYXRhcyA6ZGF0YXM/Lm9wdGlvbj8udmFsdWUgfHwgZGF0YXM7XHJcbiAgICB0aGlzLmlzT3B0aW9uU2VsZWN0ZWQ9dHJ1ZVxyXG4gICAgdGhpcy5Ecm9wSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgY29uc29sZS5sb2coJ2V2ZW50Lm9wdGlvbi52YWx1ZScsIGRhdGEpO1xyXG4gICAgdGhpcy5zZWxlY3R2ZW5CeU5hbWUoXHJcbiAgICAgIGRhdGFbdGhpcy5jb21wYXJla2V5KGRhdGEpXVxyXG4gICAgKTtcclxuICAgIGNvbnNvbGUubG9nKCdjaGlwU2VsZWN0ZWR2ZW5pZCcsIHRoaXMuY2hpcFNlbGVjdGVkT2JqKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBzZWxlY3R2ZW5CeU5hbWUodmVuOmFueSkge1xyXG4gICAgbGV0IGZvdW5kZW1wMSA9IHRoaXMuY2hpcFNlbGVjdGVkT2JqLmZpbHRlcihcclxuICAgICAgKGU6YW55KSA9PiBlW3RoaXMuY29tcGFyZWtleShlKV0gPT0gdmVuXHJcbiAgICApO1xyXG4gICAgaWYgKGZvdW5kZW1wMS5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbGV0IGZvdW5kZW1wID0gdGhpcy5Ecm9wZG93bmRhdGEuZmlsdGVyKFxyXG4gICAgICAoZTphbnkpID0+IGVbdGhpcy5jb21wYXJla2V5KGUpXSA9PSB2ZW5cclxuICAgICk7XHJcbiAgICBpZiAoZm91bmRlbXAubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuY2hpcFNlbGVjdGVkT2JqLnB1c2goZm91bmRlbXBbMF0pO1xyXG4gICAgICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uT3V0cHV0a2V5KSB7XHJcbiAgICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRJZC5wdXNoKGZvdW5kZW1wWzBdW3RoaXMuSW5wdXRGaWVsZHM/Lk91dHB1dGtleV0pO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY2hpcFNlbGVjdGVkSWQucHVzaChmb3VuZGVtcFswXS5pZCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1rZXkpIHtcclxuICAgICAgICB0aGlzLmZvcm1rZXlhcnIucHVzaChmb3VuZGVtcFswXVt0aGlzLklucHV0RmllbGRzPy5mb3Jta2V5XSk7XHJcbiAgICAgIH0gXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWQoKVxyXG4gICAgfVxyXG4gIH1cclxuICBjb21wYXJla2V5KGU6YW55KSB7XHJcbiAgICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uY29tcGFyZWtleSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5JbnB1dEZpZWxkcz8uY29tcGFyZWtleTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChlPy5pZCkge1xyXG4gICAgICAgIHJldHVybiAnaWQnO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB0aGlzLklucHV0RmllbGRzLmRpc3BsYXlrZXk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiXHJcbiAgPGZvcm0gW2Zvcm1Hcm91cF09XCJEcm9wZG93bkZvcm1cIiBpZD1cIm1hdENoaXAtc2l6ZVwiPlxyXG4gICAgPCEtLSBjbGFzcz1cIm1hdC1jaGlwU2Nyb2xsXCIgLS0+XHJcbiAgICA8bWF0LWZvcm0tZmllbGRcclxuICAgICAgYXBwZWFyYW5jZT1cIm91dGxpbmVcIlxyXG4gICAgICAoY2xpY2spPVwiIXRoaXMuSW5wdXRGaWVsZHM/LmZyb25lbnRkYXRhID8gdGhpcy5nZXRkcm9wZG93bignJykgOiAnJ1wiXHJcbiAgICA+XHJcbiAgICAgIDxtYXQtbGFiZWw+e3sgSW5wdXRGaWVsZHM/LmxhYmVsIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgIDwhLS0gY2xhc3M9XCJjaGlwLWNvbnRhaW5lclwiIC0tPlxyXG4gICAgICA8bWF0LWNoaXAtZ3JpZCBtdWx0aXBsZSAjY2hpcExpc3R2ZW5kb3I+XHJcbiAgICAgICAgPCEtLSBjbGFzcz1cIm1hdC1jaGlwRXhcIiAtLT5cclxuICAgICAgICA8bWF0LWNoaXAtcm93XHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgb2JqIG9mIGNoaXBTZWxlY3RlZE9ialwiXHJcbiAgICAgICAgICBbcmVtb3ZhYmxlXT1cInRydWVcIlxyXG4gICAgICAgICAgKHJlbW92ZWQpPVwicmVtb3ZlY2hpcChvYmopXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICB7eyBvYmpbSW5wdXRGaWVsZHM/LmRpc3BsYXlrZXldIH19XHJcbiAgICAgICAgICA8bWF0LWljb24gbWF0Q2hpcFJlbW92ZT5jYW5jZWw8L21hdC1pY29uPlxyXG4gICAgICAgIDwvbWF0LWNoaXAtcm93PlxyXG4gICAgICAgIDwhLS0gY2xhc3M9XCJtYXRmb3JtZmllbGRpbnB1dHN0eWxlXCIgLS0+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAjRHJvcElucHV0XHJcbiAgICAgICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cInNjcm9sbGxcIlxyXG4gICAgICAgICAgW21hdENoaXBJbnB1dEZvcl09XCJjaGlwTGlzdHZlbmRvclwiXHJcbiAgICAgICAgICBbbWF0Q2hpcElucHV0U2VwYXJhdG9yS2V5Q29kZXNdPVwic2VwYXJhdG9yc0tleXNDb2Rlc1wiXHJcbiAgICAgICAgICBbbWF0Q2hpcElucHV0QWRkT25CbHVyXT1cInRydWVcIlxyXG4gICAgICAgICAgI2F1dG9Db21wbGV0ZUlucHV0PVwibWF0QXV0b2NvbXBsZXRlVHJpZ2dlclwiXHJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cInRoaXMuZHluYW1jaWZvcm1jb250cm9scGFyZW50KClcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvbWF0LWNoaXAtZ3JpZD5cclxuICAgICAgPG1hdC1hdXRvY29tcGxldGVcclxuICAgICAgICAjc2Nyb2xsbD1cIm1hdEF1dG9jb21wbGV0ZVwiXHJcbiAgICAgICAgKG9wZW5lZCk9XCJhdXRvY29tcGxldGVBcHBTY3JvbGwoKVwiXHJcbiAgICAgID5cclxuICAgICAgICA8bmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPG1hdC1vcHRpb25cclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGRyb3B2YWx1ZXMgb2YgRHJvcGRvd25kYXRhXCJcclxuICAgICAgICAgICAgW3ZhbHVlXT1cIlxyXG4gICAgICAgICAgICAgIHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1rZXlcclxuICAgICAgICAgICAgICAgID8gZHJvcHZhbHVlc1t0aGlzLklucHV0RmllbGRzPy5mb3Jta2V5XVxyXG4gICAgICAgICAgICAgICAgOiBkcm9wdmFsdWVzXHJcbiAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIklucHV0RmllbGRzPy50b29sdGlwID8gZHJvcHZhbHVlc1tJbnB1dEZpZWxkcz8udG9vbHRpcGtleV0gOiAnJ1wiXHJcbiAgICAgICAgICAgIChvblNlbGVjdGlvbkNoYW5nZSk9XCJ2ZW5TZWxlY3RlZChkcm9wdmFsdWVzKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7IGRyb3B2YWx1ZXNbSW5wdXRGaWVsZHM/LmRpc3BsYXlrZXldIH19XHJcbiAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPC9mb3JtPlxyXG48IS0tICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RlZCgpXCJcclxuIC0tPlxyXG48IS0tICAgICAgICAgKG9wdGlvblNlbGVjdGVkKT1cInZlblNlbGVjdGVkKCRldmVudClcIlxyXG4gLS0+XHJcbiJdfQ==
@@ -432,7 +432,7 @@ class VsChipddCmpComponent {
432
432
  }
433
433
  }
434
434
  venSelected(datas) {
435
- let data = !datas && datas === '' ? datas : datas.option.value || datas;
435
+ let data = !datas && datas === '' ? datas : datas?.option?.value || datas;
436
436
  this.isOptionSelected = true;
437
437
  this.DropInput.nativeElement.value = '';
438
438
  console.log('event.option.value', data);
@@ -1 +1 @@
1
- {"version":3,"file":"unnilouis.org-vs-chipdropdown.mjs","sources":["../../../projects/vs-chipdropdown/src/lib/vs-chipdropdown.service.ts","../../../projects/vs-chipdropdown/src/lib/vs-chipdropdown.component.ts","../../../projects/vs-chipdropdown/src/lib/vs-chipdd-cmp/vs-chipdd-cmp.component.ts","../../../projects/vs-chipdropdown/src/lib/vs-chipdd-cmp/vs-chipdd-cmp.component.html","../../../projects/vs-chipdropdown/src/lib/vs-chipdropdown.module.ts","../../../projects/vs-chipdropdown/src/public-api.ts","../../../projects/vs-chipdropdown/src/unnilouis.org-vs-chipdropdown.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class VsChipdropdownService {\r\n\r\n constructor(private http: HttpClient) { }\r\n postApi(Apiurl:any,json={},params:any): Observable<any> {\r\n const getToken:any = localStorage.getItem(\"sessionData\");\r\n let tokenValue = JSON.parse(getToken);\r\n let token = tokenValue.token;\r\n console.log(\"params\",params)\r\n let paradata=''\r\n if(params!==undefined && params!==null && params!==''){\r\n paradata=params\r\n }\r\n const headers = { Authorization: \"Token \" + token };\r\n return this.http.post<any>(Apiurl+paradata,json ,{\r\n headers: headers,\r\n \r\n });\r\n }\r\n GetApi(Apiurl:any,params=''): Observable<any> {\r\n const getToken:any = localStorage.getItem(\"sessionData\");\r\n let tokenValue = JSON.parse(getToken);\r\n let token = tokenValue.token;\r\n console.log(\"params\",params)\r\n let paradata=''\r\n if(params!==undefined && params!==null && params!==''){\r\n paradata=params\r\n }\r\n const headers = { Authorization: \"Token \" + token };\r\n return this.http.get<any>(Apiurl+paradata,{\r\n headers: headers,\r\n });\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-vs-chipdropdown',\r\n template: `\r\n <p>\r\n vs-chipdropdown works!\r\n </p>\r\n `,\r\n styles: ``\r\n})\r\nexport class VsChipdropdownComponent {\r\n\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport {\r\n MatAutocompleteSelectedEvent,\r\n MatAutocomplete,\r\n MatAutocompleteTrigger,\r\n} from '@angular/material/autocomplete';\r\nimport {\r\n debounceTime,\r\n distinctUntilChanged,\r\n tap,\r\n filter,\r\n switchMap,\r\n finalize,\r\n takeUntil,\r\n map,\r\n} from 'rxjs/operators';\r\nimport { from, Observable, fromEvent } from 'rxjs';\r\nimport { VsChipdropdownService } from '../vs-chipdropdown.service';\r\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\r\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\r\n@Component({\r\n selector: 'lib-vs-chipdd-cmp',\r\n templateUrl: './vs-chipdd-cmp.component.html',\r\n styleUrls: ['./vs-chipdd-cmp.component.scss'],\r\n})\r\nexport class VsChipddCmpComponent {\r\n DrodownLoading: boolean =false;\r\n constructor(\r\n private service: VsChipdropdownService,\r\n private fb: FormBuilder\r\n ) {}\r\n @Input() InputFields: any;\r\n @Input() ResetForm: any;\r\n @Input() Backendapi: boolean = true;\r\n\r\n @ViewChild('autoCompleteInput', {\r\n static: false,\r\n read: MatAutocompleteTrigger,\r\n })\r\ntrigger: MatAutocompleteTrigger | null = null;\r\n @ViewChild(MatAutocompleteTrigger)\r\nautocompleteTrigger: MatAutocompleteTrigger | null = null;\r\n @ViewChild('scrolll')\r\n matAutocompleteApp!: MatAutocomplete;\r\n @Output() dataEvent: EventEmitter<any> = new EventEmitter<any>();\r\n @ViewChild('DropInput') DropInput: any;\r\n readonly separatorsKeysCodes: number[] = [ENTER, COMMA];\r\n\r\n has_next: boolean = false;\r\n currentpage: number = 1;\r\n Dropdowndata: any = [];\r\n has_previous: boolean = false;\r\n DropdownForm:any= FormGroup;\r\n chipSelectedId: any = [];\r\n chipSelectedObj: any = [];\r\n @Input() formGroup!: FormGroup;\r\n ngOnInit() {\r\n // if (this.formGroup) {\r\n // this.DropdownForm = this.formGroup;\r\n // } else {\r\n // this.DropdownForm = this.fb.group({\r\n // value: '',\r\n // });\r\n // }\r\n // this.dupngonit();\r\n\r\n // if (this.InputFields?.defaultvalue) {\r\n // this.DropdownForm.get(\"value\").patchValue(this.InputFields?.defaultvalue)\r\n // this.chipSelectedObj = this.InputFields?.defaultvalue\r\n // if (this.chipSelectedObj.length > 0) {\r\n // for (let foundemp of this.chipSelectedObj) {\r\n // if (this.InputFields?.Outputkey) {\r\n // this.chipSelectedId.push(foundemp[this.InputFields?.Outputkey])\r\n\r\n // }\r\n // else {\r\n // this.chipSelectedId.push(foundemp.id)\r\n\r\n // }\r\n // }\r\n // this.selected()\r\n // }\r\n\r\n // }\r\n // if (this.InputFields?.fronentdata) {\r\n // this.Dropdowndata = this.InputFields?.data\r\n\r\n // }\r\n // else {\r\n // this.getdropdown('')\r\n // }\r\n }\r\n looop() {\r\n for (let foundemp of this.chipSelectedObj) {\r\n if(!(foundemp instanceof Number)){\r\n if (this.InputFields?.Outputkey) {\r\n this.chipSelectedId.push(foundemp[this.InputFields?.Outputkey]);\r\n }\r\n else {\r\n this.chipSelectedId.push(foundemp.id);\r\n }\r\n if (this.InputFields?.formkey) {\r\n this.formkeyarr.push(foundemp[this.InputFields?.formkey]);\r\n } \r\n }\r\n }\r\n \r\n }\r\n dupngonit() {\r\n if (this.formGroup) {\r\n this.DropdownForm = this.formGroup;\r\n if (!this.DropdownForm.contains(this.InputFields?.formcontrolname)) {\r\n this.DropdownForm.addControl(\r\n this.dynamciformcontrolparent(),\r\n new FormControl({ value: [], disabled: this.InputFields?.disabled })\r\n );\r\n }\r\n else{\r\n this.InputFields?.disabled ? this.DropdownForm.get('chipvalue').disable() : '' }\r\n } else {\r\n this.DropdownForm = this.fb.group({\r\n chipvalue: [],disabled: this.InputFields?.disabled\r\n });\r\n\r\n }\r\n console.log('this.DropdownForm', this.DropdownForm.value);\r\n // this.chipSelectedObj =\r\n // this.DropdownForm.get(this.dynamciformcontrolparent()).value &&\r\n // this.DropdownForm.get(this.dynamciformcontrolparent()).value.length !== 0\r\n // ? this.DropdownForm.get(this.dynamciformcontrolparent()).value\r\n // : [];\r\n // console.log('this.chipSelectedObj', this.chipSelectedObj);\r\n\r\n if (this.InputFields?.defaultvalue) {\r\n // this.DropdownForm.get(this.dynamciformcontrolparent()).patchValue(\r\n // this.InputFields?.formkey\r\n // ? this.InputFields?.defaultvalue[this.InputFields?.formkey]\r\n // : this.InputFields?.defaultvalue\r\n // );\r\n // this.DropdownForm.get(this.dynamciformcontrolparent()).patchValue(this.InputFields?.defaultvalue);\r\n this.chipSelectedObj = this.InputFields?.defaultvalue;\r\n this.chipSelectedId = [];\r\n this.formkeyarr = [];\r\n if (this.chipSelectedObj.length > 0) {\r\n this.looop();\r\n this.selected();\r\n }\r\n }\r\n\r\n if (\r\n this.DropdownForm.get(this.dynamciformcontrolparent()).value &&\r\n this.DropdownForm.get(this.dynamciformcontrolparent()).value.length !== 0\r\n ) {\r\n this.chipSelectedObj = this.DropdownForm.get(\r\n this.dynamciformcontrolparent()\r\n ).value;\r\n console.log('test',this.chipSelectedObj = this.DropdownForm.get(\r\n this.dynamciformcontrolparent()\r\n ).value)\r\n this.chipSelectedId = [];\r\n this.formkeyarr = [];\r\n this.looop();\r\n this.selected();\r\n }\r\n if (this.InputFields?.fronentdata) {\r\n this.Dropdowndata = this.InputFields?.data;\r\n }\r\n this.dropdownsearch();\r\n // else {\r\n // this.getdropdown('')\r\n // }\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['InputFields'] && changes['InputFields'].currentValue) {\r\n console.log('Summary Log Changes');\r\n this.currentpage = 1;\r\n this.dupngonit();\r\n }\r\n if (changes['ResetForm'] && changes['ResetForm'].currentValue) {\r\n console.log('hitted');\r\n // this.DropdownForm.reset();\r\n this.currentpage = 1;\r\n this.dupngonit();\r\n this.chipSelectedId = [];\r\n this.formkeyarr = [];\r\n this.chipSelectedObj = [];\r\n this.dataEvent.emit([]);\r\n }\r\n }\r\n // public displaydevelopclient(clt: any, key: string) {\r\n // return key[clt];\r\n // }\r\n autocompleteAppScroll() {\r\n if (!this.InputFields?.fronentdata) {\r\n setTimeout(() => {\r\n if (\r\n this.matAutocompleteApp &&\r\n this.autocompleteTrigger &&\r\n this.matAutocompleteApp.panel\r\n ) {\r\n fromEvent(this.matAutocompleteApp.panel.nativeElement, 'scroll')\r\n .pipe(\r\n map((x) => this.matAutocompleteApp.panel.nativeElement.scrollTop),\r\n takeUntil(\r\n this.autocompleteTrigger.panelClosingActions as Observable<any>\r\n )\r\n )\r\n .subscribe((x) => {\r\n const scrollTop =\r\n this.matAutocompleteApp.panel.nativeElement.scrollTop;\r\n const scrollHeight =\r\n this.matAutocompleteApp.panel.nativeElement.scrollHeight;\r\n const elementHeight =\r\n this.matAutocompleteApp.panel.nativeElement.clientHeight;\r\n const atBottom = scrollHeight - 1 <= scrollTop + elementHeight;\r\n if (atBottom) {\r\n if (this.has_next === true) {\r\n let value = this.DropInput.nativeElement.value;\r\n let params = this.searchparams(value);\r\n this.currentpage = this.currentpage + 1;\r\n if (this.currentpage > 1) {\r\n this.service\r\n .GetApi(\r\n this.InputFields.url + '?page=' + this.currentpage,\r\n params\r\n )\r\n .subscribe((results) => {\r\n let datas = results['data'];\r\n let datapagination = results['pagination'];\r\n this.Dropdowndata = this.Dropdowndata.concat(datas);\r\n console.log('this.Dropdowndata', this.Dropdowndata);\r\n if (this.Dropdowndata.length >= 0) {\r\n this.has_next = datapagination.has_next;\r\n this.has_previous = datapagination.has_previous;\r\n this.currentpage = datapagination.index;\r\n }\r\n });\r\n }\r\n }\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n isOptionSelected:boolean=false\r\n dropdownsearch() {\r\n const controlName = this.dynamciformcontrolparent();\r\n const control = this.DropdownForm.get(controlName);\r\n if (control \r\n \r\n \r\n ) {\r\n if (!this.InputFields?.fronentdata) {\r\n if (!this.InputFields?.url) {\r\n return ;\r\n }\r\n this.DropdownForm.get(this.dynamciformcontrolparent())\r\n .valueChanges.pipe(\r\n debounceTime(300),\r\n distinctUntilChanged(),\r\n // tap(() => {\r\n // this.DrodownLoading = true;\r\n // console.log('inside tap');\r\n // }),\r\n switchMap((value) => {\r\n if(this.isOptionSelected){\r\n this.isOptionSelected=false\r\n return []\r\n }\r\n let params = this.searchparams(value);\r\n this.currentpage = 1;\r\n console.log(\"hiteeeedddddddddddddd>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\")\r\n\r\n return this.service\r\n .GetApi(\r\n this.InputFields.url + '?page=' + this.currentpage,\r\n params,\r\n \r\n )\r\n .pipe(\r\n finalize(() => {\r\n this.DrodownLoading = false;\r\n })\r\n );\r\n })\r\n )\r\n .subscribe((results: any) => {\r\n this.dataEvent.emit('');\r\n\r\n let datas = results['data'];\r\n this.Dropdowndata = datas;\r\n });\r\n } else {\r\n // this.Dropdowndata = this.InputFields?.data\r\n\r\n this.DropdownForm.get(this.dynamciformcontrolparent()).valueChanges.subscribe(\r\n (value:any) => {\r\n this.Dropdowndata = this.InputFields?.data.filter((item:any) =>\r\n item[this.InputFields?.displaykey]\r\n ?.toLowerCase()\r\n .includes(value?.toLowerCase())\r\n );\r\n }\r\n );\r\n }\r\n }\r\n // if (control && !this.InputFields?.fronentdata) {\r\n // this.DropdownForm.get(this.dynamciformcontrolparent())\r\n // .valueChanges.pipe(\r\n // debounceTime(200),\r\n // distinctUntilChanged(),\r\n // tap(() => {\r\n // this.DrodownLoading = true;\r\n // console.log('inside tap');\r\n // }),\r\n // switchMap((value) => {\r\n // let params = this.searchparams(value);\r\n // this.currentpage = 1;\r\n // return this.service\r\n // .GetApi(\r\n // this.InputFields.url + '?page=' + this.currentpage,\r\n // params\r\n // )\r\n // .pipe(\r\n // finalize(() => {\r\n // this.DrodownLoading = false;\r\n // })\r\n // );\r\n // })\r\n // )\r\n // .subscribe((results: any[]) => {\r\n // let datas = results['data'];\r\n // this.Dropdowndata = datas;\r\n // });\r\n // }\r\n }\r\n getdropdown(value:any) {\r\n\r\n this.currentpage = 1;\r\n if ( this.InputFields.url) {\r\n let params = this.searchparams(value);\r\n this.service\r\n .GetApi(this.InputFields.url + '?page=' + this.currentpage, params)\r\n .subscribe((results: any) => {\r\n let datas = results['data'];\r\n let datapagination = results['pagination'];\r\n this.Dropdowndata = datas;\r\n setTimeout(() => {\r\n if (this.trigger) {\r\n this.trigger.openPanel();\r\n }\r\n }, 0);\r\n if (this.Dropdowndata.length >= 0) {\r\n this.has_next = datapagination.has_next;\r\n this.has_previous = datapagination.has_previous;\r\n this.currentpage = datapagination.index;\r\n }\r\n });\r\n }\r\n }\r\n Outputdata: any = [];\r\n dynamciformcontrolparent() {\r\n return this.InputFields?.formcontrolname && this.formGroup\r\n ? this.InputFields?.formcontrolname\r\n : 'chipvalue';\r\n }\r\n selected() {\r\n this.Outputdata = this.chipSelectedObj;\r\n if (this.InputFields?.Outputkey) {\r\n this.Outputdata = this.chipSelectedId;\r\n }\r\n if (this.formGroup && this.InputFields?.formcontrolname) {\r\n this.DropdownForm.get(this.dynamciformcontrolparent()).patchValue(\r\n this.formkeyarr\r\n );\r\n }\r\n console.log(this.formkeyarr);\r\n console.log('this.DropdownForm.get', this.DropdownForm.value);\r\n this.dataEvent.emit(this.Outputdata);\r\n\r\n // let data = this.DropdownForm.value.value\r\n // if (this.InputFields?.wholedata) {\r\n // this.dataEvent.emit(this.chipSelectedObj);\r\n // if (this.InputFields?.formgroup && this.InputFields?.formcontrolname) {\r\n // this.InputFields?.formgroup\r\n // .get(this.InputFields?.formcontrolname)\r\n // .patchValue(this.chipSelectedObj);\r\n // }\r\n // }\r\n // else {\r\n // if (this.InputFields?.Outputkey) {\r\n // this.dataEvent.emit(this.chipSelectedId);\r\n // if (this.InputFields?.formgroup && this.InputFields?.formcontrolname) {\r\n // this.InputFields?.formgroup\r\n // .get(this.InputFields?.formcontrolname)\r\n // .patchValue(this.chipSelectedId);\r\n // }\r\n // }\r\n // else {\r\n // this.dataEvent.emit(this.chipSelectedObj);\r\n // if (this.InputFields?.formgroup && this.InputFields?.formcontrolname) {\r\n // this.InputFields?.formgroup\r\n // .get(this.InputFields?.formcontrolname)\r\n // .patchValue(this.chipSelectedObj);\r\n // }\r\n // }\r\n\r\n // }\r\n }\r\n searchparams(value:any) {\r\n let params = '';\r\n if (this.InputFields.params) {\r\n params = this.InputFields.params;\r\n }\r\n let inpValue = value;\r\n inpValue\r\n ? (params += '&' + this.InputFields.searchkey + '=' + inpValue)\r\n : '';\r\n return params;\r\n }\r\n removechip(obj:any) {\r\n const index = this.chipSelectedObj.indexOf(obj);\r\n\r\n if (index >= 0) {\r\n this.chipSelectedObj.splice(index, 1);\r\n console.log(this.chipSelectedObj);\r\n this.chipSelectedId.splice(index, 1);\r\n console.log(this.chipSelectedId);\r\n this.formkeyarr.splice(index, 1);\r\n console.log('this.formkeyarr', this.formkeyarr);\r\n\r\n this.DropInput.nativeElement.value = '';\r\n this.selected();\r\n }\r\n }\r\n formkeyarr:any=[]\r\n public venSelected(datas:any): void {\r\n let data=!datas && datas==='' ? datas :datas.option.value || datas;\r\n this.isOptionSelected=true\r\n this.DropInput.nativeElement.value = '';\r\n console.log('event.option.value', data);\r\n this.selectvenByName(\r\n data[this.comparekey(data)]\r\n );\r\n console.log('chipSelectedvenid', this.chipSelectedObj);\r\n }\r\n private selectvenByName(ven:any) {\r\n let foundemp1 = this.chipSelectedObj.filter(\r\n (e:any) => e[this.comparekey(e)] == ven\r\n );\r\n if (foundemp1.length) {\r\n return;\r\n }\r\n let foundemp = this.Dropdowndata.filter(\r\n (e:any) => e[this.comparekey(e)] == ven\r\n );\r\n if (foundemp.length) {\r\n this.chipSelectedObj.push(foundemp[0]);\r\n if (this.InputFields?.Outputkey) {\r\n this.chipSelectedId.push(foundemp[0][this.InputFields?.Outputkey]);\r\n }\r\n else {\r\n this.chipSelectedId.push(foundemp[0].id);\r\n }\r\n if (this.InputFields?.formkey) {\r\n this.formkeyarr.push(foundemp[0][this.InputFields?.formkey]);\r\n } \r\n this.selected()\r\n }\r\n }\r\n comparekey(e:any) {\r\n if (this.InputFields?.comparekey) {\r\n return this.InputFields?.comparekey;\r\n } else {\r\n if (e?.id) {\r\n return 'id';\r\n } else {\r\n return this.InputFields.displaykey;\r\n }\r\n }\r\n }\r\n}\r\n","\r\n <form [formGroup]=\"DropdownForm\" id=\"matChip-size\">\r\n <!-- class=\"mat-chipScroll\" -->\r\n <mat-form-field\r\n appearance=\"outline\"\r\n (click)=\"!this.InputFields?.fronentdata ? this.getdropdown('') : ''\"\r\n >\r\n <mat-label>{{ InputFields?.label | translate }}</mat-label>\r\n <!-- class=\"chip-container\" -->\r\n <mat-chip-grid multiple #chipListvendor>\r\n <!-- class=\"mat-chipEx\" -->\r\n <mat-chip-row\r\n *ngFor=\"let obj of chipSelectedObj\"\r\n [removable]=\"true\"\r\n (removed)=\"removechip(obj)\"\r\n >\r\n {{ obj[InputFields?.displaykey] }}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n <!-- class=\"matformfieldinputstyle\" -->\r\n <input\r\n #DropInput\r\n [matAutocomplete]=\"scrolll\"\r\n [matChipInputFor]=\"chipListvendor\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorsKeysCodes\"\r\n [matChipInputAddOnBlur]=\"true\"\r\n #autoCompleteInput=\"matAutocompleteTrigger\"\r\n [formControlName]=\"this.dynamciformcontrolparent()\"\r\n />\r\n </mat-chip-grid>\r\n <mat-autocomplete\r\n #scrolll=\"matAutocomplete\"\r\n (opened)=\"autocompleteAppScroll()\"\r\n >\r\n <ng-container>\r\n <mat-option\r\n *ngFor=\"let dropvalues of Dropdowndata\"\r\n [value]=\"\r\n this.InputFields?.formkey\r\n ? dropvalues[this.InputFields?.formkey]\r\n : dropvalues\r\n \"\r\n [matTooltip]=\"InputFields?.tooltip ? dropvalues[InputFields?.tooltipkey] : ''\"\r\n (onSelectionChange)=\"venSelected(dropvalues)\"\r\n >\r\n {{ dropvalues[InputFields?.displaykey] }}\r\n </mat-option>\r\n </ng-container>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </form>\r\n<!-- (click)=\"selected()\"\r\n -->\r\n<!-- (optionSelected)=\"venSelected($event)\"\r\n -->\r\n","import { NgModule } from '@angular/core';\r\nimport { VsChipdropdownComponent } from './vs-chipdropdown.component';\r\nimport { VsChipddCmpComponent } from './vs-chipdd-cmp/vs-chipdd-cmp.component';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { TranslateModule, TranslateLoader } from '@ngx-translate/core';\r\nimport { HttpClientModule, HttpClient } from '@angular/common/http';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n// import {VsSharedModuleModule} from '@unnilouis.org/vs-shared-module'\r\n\r\n\r\n@NgModule({\r\n declarations: [VsChipdropdownComponent, VsChipddCmpComponent],\r\n imports: [MatFormFieldModule,MatInputModule,MatSelectModule,MatAutocompleteModule,FormsModule,ReactiveFormsModule,CommonModule,MatGridListModule,MatChipsModule,MatIconModule,\r\n TranslateModule,\r\n HttpClientModule,\r\n MatTooltipModule,\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: httpTranslateLoader,\r\n deps: [HttpClient],\r\n },\r\n }),],\r\n // imports: [VsSharedModuleModule],\r\n exports: [VsChipddCmpComponent]\r\n})\r\nexport class VsChipdropdownModule { }\r\nexport function httpTranslateLoader(http: HttpClient) {\r\n return new TranslateHttpLoader(http);\r\n}\r\n","/*\r\n * Public API Surface of vs-chipdropdown\r\n */\r\n\r\nexport * from './lib/vs-chipdropdown.service';\r\nexport * from './lib/vs-chipdropdown.component';\r\nexport * from './lib/vs-chipdropdown.module';\r\nexport * from './lib/vs-chipdd-cmp/vs-chipdd-cmp.component'","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.VsChipdropdownService"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAOa,qBAAqB,CAAA;AAEhC,IAAA,WAAA,CAAoB,IAAgB,EAAA;QAAhB,IAAA,CAAA,IAAI,GAAJ,IAAI;IAAgB;AACxC,IAAA,OAAO,CAAC,MAAU,EAAC,IAAI,GAAC,EAAE,EAAC,MAAU,EAAA;QACnC,MAAM,QAAQ,GAAO,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC;QACxD,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;AACrC,QAAA,IAAI,KAAK,GAAG,UAAU,CAAC,KAAK;AAC5B,QAAA,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAC,MAAM,CAAC;QAC5B,IAAI,QAAQ,GAAC,EAAE;AACf,QAAA,IAAG,MAAM,KAAG,SAAS,IAAI,MAAM,KAAG,IAAI,IAAI,MAAM,KAAG,EAAE,EAAC;YACpD,QAAQ,GAAC,MAAM;QACjB;QACA,MAAM,OAAO,GAAG,EAAE,aAAa,EAAE,QAAQ,GAAG,KAAK,EAAE;QACnD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,MAAM,GAAC,QAAQ,EAAC,IAAI,EAAE;AAC/C,YAAA,OAAO,EAAE,OAAO;AAEjB,SAAA,CAAC;IACJ;AACA,IAAA,MAAM,CAAC,MAAU,EAAC,MAAM,GAAC,EAAE,EAAA;QACzB,MAAM,QAAQ,GAAO,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC;QACxD,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;AACrC,QAAA,IAAI,KAAK,GAAG,UAAU,CAAC,KAAK;AAC5B,QAAA,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAC,MAAM,CAAC;QAC5B,IAAI,QAAQ,GAAC,EAAE;AACf,QAAA,IAAG,MAAM,KAAG,SAAS,IAAI,MAAM,KAAG,IAAI,IAAI,MAAM,KAAG,EAAE,EAAC;YACpD,QAAQ,GAAC,MAAM;QACjB;QACA,MAAM,OAAO,GAAG,EAAE,aAAa,EAAE,QAAQ,GAAG,KAAK,EAAE;QACnD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,MAAM,GAAC,QAAQ,EAAC;AACxC,YAAA,OAAO,EAAE,OAAO;AACjB,SAAA,CAAC;IACJ;+GA/BW,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cAFpB,MAAM,EAAA,CAAA,CAAA;;4FAEP,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCKY,uBAAuB,CAAA;+GAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,EAAA,QAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAPxB,CAAA;;;;AAIT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAGU,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBATnC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EAAA,QAAA,EACrB,CAAA;;;;AAIT,EAAA,CAAA,EAAA;;;MCwBU,oBAAoB,CAAA;IAE/B,WAAA,CACU,OAA8B,EAC9B,EAAe,EAAA;QADf,IAAA,CAAA,OAAO,GAAP,OAAO;QACP,IAAA,CAAA,EAAE,GAAF,EAAE;QAHZ,IAAA,CAAA,cAAc,GAAW,KAAK;QAOrB,IAAA,CAAA,UAAU,GAAY,IAAI;QAMrC,IAAA,CAAA,OAAO,GAAkC,IAAI;QAE7C,IAAA,CAAA,mBAAmB,GAAkC,IAAI;AAG7C,QAAA,IAAA,CAAA,SAAS,GAAsB,IAAI,YAAY,EAAO;AAEvD,QAAA,IAAA,CAAA,mBAAmB,GAAa,CAAC,KAAK,EAAE,KAAK,CAAC;QAEvD,IAAA,CAAA,QAAQ,GAAY,KAAK;QACzB,IAAA,CAAA,WAAW,GAAW,CAAC;QACvB,IAAA,CAAA,YAAY,GAAQ,EAAE;QACtB,IAAA,CAAA,YAAY,GAAY,KAAK;QAC7B,IAAA,CAAA,YAAY,GAAM,SAAS;QAC3B,IAAA,CAAA,cAAc,GAAQ,EAAE;QACxB,IAAA,CAAA,eAAe,GAAQ,EAAE;QA+LzB,IAAA,CAAA,gBAAgB,GAAS,KAAK;QAoH9B,IAAA,CAAA,UAAU,GAAQ,EAAE;QA2EpB,IAAA,CAAA,UAAU,GAAK,EAAE;IAtZd;IA0BH,QAAQ,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAmCR;IACA,KAAK,GAAA;AACH,QAAA,KAAK,IAAI,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE;AACzC,YAAA,IAAG,EAAE,QAAQ,YAAY,MAAM,CAAC,EAAC;AAC/B,gBAAA,IAAI,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE;AAC/B,oBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBACjE;qBACK;oBACH,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACvC;AACA,gBAAA,IAAI,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE;AAC7B,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;gBAC3D;YACF;QACA;IAEJ;IACA,SAAS,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS;AAClC,YAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,EAAE;AAClE,gBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,CAC1B,IAAI,CAAC,wBAAwB,EAAE,EAC/B,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,CAAC,CACrE;YACH;iBACI;gBACF,IAAI,CAAC,WAAW,EAAE,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE;YAAM;QACxF;aAAO;YACL,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;gBAChC,SAAS,EAAE,EAAE,EAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE;AAC3C,aAAA,CAAC;QAEJ;QACA,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;;;;;;;AAQzD,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE;;;;;;;YAOlC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,EAAE,YAAY;AACrD,YAAA,IAAI,CAAC,cAAc,GAAG,EAAE;AACxB,YAAA,IAAI,CAAC,UAAU,GAAG,EAAE;YACpB,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;gBACnC,IAAI,CAAC,KAAK,EAAE;gBACZ,IAAI,CAAC,QAAQ,EAAE;YACjB;QACF;AAEA,QAAA,IACE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC,KAAK;AAC5D,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EACzE;AACA,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAC1C,IAAI,CAAC,wBAAwB,EAAE,CAChC,CAAC,KAAK;YACP,OAAO,CAAC,GAAG,CAAC,MAAM,EAAC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAC7D,IAAI,CAAC,wBAAwB,EAAE,CAChC,CAAC,KAAK,CAAC;AACR,YAAA,IAAI,CAAC,cAAc,GAAG,EAAE;AACxB,YAAA,IAAI,CAAC,UAAU,GAAG,EAAE;YACpB,IAAI,CAAC,KAAK,EAAE;YACZ,IAAI,CAAC,QAAQ,EAAE;QACjB;AACA,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE;YACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI;QAC5C;QACA,IAAI,CAAC,cAAc,EAAE;;;;IAIvB;AACA,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC,YAAY,EAAE;AACjE,YAAA,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;AAClC,YAAA,IAAI,CAAC,WAAW,GAAG,CAAC;YACpB,IAAI,CAAC,SAAS,EAAE;QAClB;AACA,QAAA,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,YAAY,EAAE;AAC7D,YAAA,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;;AAErB,YAAA,IAAI,CAAC,WAAW,GAAG,CAAC;YACpB,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,IAAI,CAAC,cAAc,GAAG,EAAE;AACxB,YAAA,IAAI,CAAC,UAAU,GAAG,EAAE;AACpB,YAAA,IAAI,CAAC,eAAe,GAAG,EAAE;AACzB,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB;IACF;;;;IAIA,qBAAqB,GAAA;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE;YAClC,UAAU,CAAC,MAAK;gBACd,IACE,IAAI,CAAC,kBAAkB;AACvB,oBAAA,IAAI,CAAC,mBAAmB;AACxB,oBAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAC7B;oBACA,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,aAAa,EAAE,QAAQ;yBAC5D,IAAI,CACH,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,EACjE,SAAS,CACP,IAAI,CAAC,mBAAmB,CAAC,mBAAsC,CAChE;AAEF,yBAAA,SAAS,CAAC,CAAC,CAAC,KAAI;wBACf,MAAM,SAAS,GACb,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS;wBACvD,MAAM,YAAY,GAChB,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,aAAa,CAAC,YAAY;wBAC1D,MAAM,aAAa,GACjB,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,aAAa,CAAC,YAAY;wBAC1D,MAAM,QAAQ,GAAG,YAAY,GAAG,CAAC,IAAI,SAAS,GAAG,aAAa;wBAC9D,IAAI,QAAQ,EAAE;AACZ,4BAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;gCAC1B,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK;gCAC9C,IAAI,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;gCACrC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC;AACvC,gCAAA,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE;AACxB,oCAAA,IAAI,CAAC;AACF,yCAAA,MAAM,CACL,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG,QAAQ,GAAG,IAAI,CAAC,WAAW,EAClD,MAAM;AAEP,yCAAA,SAAS,CAAC,CAAC,OAAO,KAAI;AACrB,wCAAA,IAAI,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;AAC3B,wCAAA,IAAI,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC;wCAC1C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC;wCACnD,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,YAAY,CAAC;wCACnD,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,EAAE;AACjC,4CAAA,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC,QAAQ;AACvC,4CAAA,IAAI,CAAC,YAAY,GAAG,cAAc,CAAC,YAAY;AAC/C,4CAAA,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC,KAAK;wCACzC;AACF,oCAAA,CAAC,CAAC;gCACN;4BACF;wBACF;AACF,oBAAA,CAAC,CAAC;gBACN;AACF,YAAA,CAAC,CAAC;QACJ;IACF;IAEA,cAAc,GAAA;AACZ,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,wBAAwB,EAAE;QACnD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC;QAClD,IAAI,OAAO,EAGT;AACA,YAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE;AAClC,gBAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;oBAC1B;gBACF;gBACA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB,EAAE;qBAClD,YAAY,CAAC,IAAI,CAChB,YAAY,CAAC,GAAG,CAAC,EACjB,oBAAoB,EAAE;;;;;AAKtB,gBAAA,SAAS,CAAC,CAAC,KAAK,KAAI;AAClB,oBAAA,IAAG,IAAI,CAAC,gBAAgB,EAAC;AACvB,wBAAA,IAAI,CAAC,gBAAgB,GAAC,KAAK;AAC3B,wBAAA,OAAO,EAAE;oBACX;oBACA,IAAI,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;AACrC,oBAAA,IAAI,CAAC,WAAW,GAAG,CAAC;AACpB,oBAAA,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC;oBAE3E,OAAO,IAAI,CAAC;AACT,yBAAA,MAAM,CACL,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG,QAAQ,GAAG,IAAI,CAAC,WAAW,EAClD,MAAM;AAGP,yBAAA,IAAI,CACH,QAAQ,CAAC,MAAK;AACZ,wBAAA,IAAI,CAAC,cAAc,GAAG,KAAK;oBAC7B,CAAC,CAAC,CACH;AACL,gBAAA,CAAC,CAAC;AAEH,qBAAA,SAAS,CAAC,CAAC,OAAY,KAAI;AAC1B,oBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;AAEvB,oBAAA,IAAI,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;AAC3B,oBAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AAC3B,gBAAA,CAAC,CAAC;YACN;iBAAO;;AAGL,gBAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC,YAAY,CAAC,SAAS,CAC3E,CAAC,KAAS,KAAI;oBACZ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,IAAQ,KACzD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU;AAC/B,0BAAE,WAAW;AACZ,yBAAA,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,CAClC;AACH,gBAAA,CAAC,CACF;YACH;QACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA8BF;AACA,IAAA,WAAW,CAAC,KAAS,EAAA;AAEnB,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC;AACpB,QAAA,IAAK,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;YACzB,IAAI,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;AACrC,YAAA,IAAI,CAAC;AACF,iBAAA,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,MAAM;AACjE,iBAAA,SAAS,CAAC,CAAC,OAAY,KAAI;AAC1B,gBAAA,IAAI,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;AAC3B,gBAAA,IAAI,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC;AAC1C,gBAAA,IAAI,CAAC,YAAY,GAAG,KAAK;gBACzB,UAAU,CAAC,MAAK;AACd,oBAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,wBAAA,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;oBAC1B;gBACF,CAAC,EAAE,CAAC,CAAC;gBACL,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,EAAE;AACjC,oBAAA,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC,QAAQ;AACvC,oBAAA,IAAI,CAAC,YAAY,GAAG,cAAc,CAAC,YAAY;AAC/C,oBAAA,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC,KAAK;gBACzC;AACF,YAAA,CAAC,CAAC;QACN;IACF;IAEA,wBAAwB,GAAA;QACtB,OAAO,IAAI,CAAC,WAAW,EAAE,eAAe,IAAI,IAAI,CAAC;AAC/C,cAAE,IAAI,CAAC,WAAW,EAAE;cAClB,WAAW;IACjB;IACA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe;AACtC,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE;AAC/B,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc;QACvC;QACA,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,EAAE,eAAe,EAAE;AACvD,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC,UAAU,CAC/D,IAAI,CAAC,UAAU,CAChB;QACH;AACA,QAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;QAC7D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA8BtC;AACA,IAAA,YAAY,CAAC,KAAS,EAAA;QACpB,IAAI,MAAM,GAAG,EAAE;AACf,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;AAC3B,YAAA,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM;QAClC;QACA,IAAI,QAAQ,GAAG,KAAK;QACpB;AACE,eAAG,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,GAAG,GAAG,QAAQ;cAC5D,EAAE;AACN,QAAA,OAAO,MAAM;IACf;AACA,IAAA,UAAU,CAAC,GAAO,EAAA;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC;AAE/C,QAAA,IAAI,KAAK,IAAI,CAAC,EAAE;YACd,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AACrC,YAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC;YACjC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AACpC,YAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC;YAChC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,UAAU,CAAC;YAE/C,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE;YACvC,IAAI,CAAC,QAAQ,EAAE;QACjB;IACF;AAEO,IAAA,WAAW,CAAC,KAAS,EAAA;QAC1B,IAAI,IAAI,GAAC,CAAC,KAAK,IAAI,KAAK,KAAG,EAAE,GAAI,KAAK,GAAE,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK;AACnE,QAAA,IAAI,CAAC,gBAAgB,GAAC,IAAI;QAC1B,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE;AACvC,QAAA,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC;AACvC,QAAA,IAAI,CAAC,eAAe,CAClB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAC5B;QACD,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,eAAe,CAAC;IACxD;AACQ,IAAA,eAAe,CAAC,GAAO,EAAA;QAC7B,IAAI,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CACzC,CAAC,CAAK,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CACxC;AACD,QAAA,IAAI,SAAS,CAAC,MAAM,EAAE;YACpB;QACF;QACA,IAAI,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CACrC,CAAC,CAAK,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CACxC;AACD,QAAA,IAAI,QAAQ,CAAC,MAAM,EAAE;YACnB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACtC,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE;AAC/B,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YACpE;iBACK;AACH,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1C;AACA,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE;AAC7B,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAC9D;YACA,IAAI,CAAC,QAAQ,EAAE;QACjB;IACF;AACA,IAAA,UAAU,CAAC,CAAK,EAAA;AACd,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE;AAChC,YAAA,OAAO,IAAI,CAAC,WAAW,EAAE,UAAU;QACrC;aAAO;AACL,YAAA,IAAI,CAAC,EAAE,EAAE,EAAE;AACT,gBAAA,OAAO,IAAI;YACb;iBAAO;AACL,gBAAA,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU;YACpC;QACF;IACF;+GAxcW,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAYvB,sBAAsB,EAAA,EAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAGnB,sBAAsB,8PC/CnC,ojEAuDA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,uBAAA,EAAA,wBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,eAAA,EAAA,OAAA,EAAA,8BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,mDAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,yBAAA,EAAA,4BAAA,EAAA,cAAA,EAAA,yBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,UAAA,EAAA,OAAA,EAAA,mBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,uBAAA,EAAA,+BAAA,EAAA,aAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,wEAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,GAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDvBa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,ojEAAA,EAAA;iHAUpB,WAAW,EAAA,CAAA;sBAAnB;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBAMH,OAAO,EAAA,CAAA;sBAJJ,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,mBAAmB,EAAE;AAC9B,wBAAA,MAAM,EAAE,KAAK;AACb,wBAAA,IAAI,EAAE,sBAAsB;AAC7B,qBAAA;gBAGH,mBAAmB,EAAA,CAAA;sBADhB,SAAS;uBAAC,sBAAsB;gBAGjC,kBAAkB,EAAA,CAAA;sBADjB,SAAS;uBAAC,SAAS;gBAEV,SAAS,EAAA,CAAA;sBAAlB;gBACuB,SAAS,EAAA,CAAA;sBAAhC,SAAS;uBAAC,WAAW;gBAUb,SAAS,EAAA,CAAA;sBAAjB;;;AE9CH;MAmBa,oBAAoB,CAAA;+GAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAApB,oBAAoB,EAAA,YAAA,EAAA,CAfhB,uBAAuB,EAAE,oBAAoB,aAClD,kBAAkB,EAAC,cAAc,EAAC,eAAe,EAAC,qBAAqB,EAAC,WAAW,EAAC,mBAAmB,EAAC,YAAY,EAAC,iBAAiB,EAAC,cAAc,EAAC,aAAa;YAC3K,eAAe;YACf,gBAAgB;AAChB,YAAA,gBAAgB,kCASR,oBAAoB,CAAA,EAAA,CAAA,CAAA;AAEnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,YAdrB,kBAAkB,EAAC,cAAc,EAAC,eAAe,EAAC,qBAAqB,EAAC,WAAW,EAAC,mBAAmB,EAAC,YAAY,EAAC,iBAAiB,EAAC,cAAc,EAAC,aAAa;YAC3K,eAAe;YACf,gBAAgB;YAChB,gBAAgB;YAChB,eAAe,CAAC,OAAO,CAAC;AACtB,gBAAA,MAAM,EAAE;AACN,oBAAA,OAAO,EAAE,eAAe;AACxB,oBAAA,UAAU,EAAE,mBAAmB;oBAC/B,IAAI,EAAE,CAAC,UAAU,CAAC;AACnB,iBAAA;aACF,CAAC,CAAA,EAAA,CAAA,CAAA;;4FAIO,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAhBhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,uBAAuB,EAAE,oBAAoB,CAAC;oBAC7D,OAAO,EAAE,CAAC,kBAAkB,EAAC,cAAc,EAAC,eAAe,EAAC,qBAAqB,EAAC,WAAW,EAAC,mBAAmB,EAAC,YAAY,EAAC,iBAAiB,EAAC,cAAc,EAAC,aAAa;wBAC3K,eAAe;wBACf,gBAAgB;wBAChB,gBAAgB;wBAChB,eAAe,CAAC,OAAO,CAAC;AACtB,4BAAA,MAAM,EAAE;AACN,gCAAA,OAAO,EAAE,eAAe;AACxB,gCAAA,UAAU,EAAE,mBAAmB;gCAC/B,IAAI,EAAE,CAAC,UAAU,CAAC;AACnB,6BAAA;AACF,yBAAA,CAAC,EAAE;;oBAEN,OAAO,EAAE,CAAC,oBAAoB;AAC/B,iBAAA;;AAEK,SAAU,mBAAmB,CAAC,IAAgB,EAAA;AAClD,IAAA,OAAO,IAAI,mBAAmB,CAAC,IAAI,CAAC;AACtC;;ACtCA;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"version":3,"file":"unnilouis.org-vs-chipdropdown.mjs","sources":["../../../projects/vs-chipdropdown/src/lib/vs-chipdropdown.service.ts","../../../projects/vs-chipdropdown/src/lib/vs-chipdropdown.component.ts","../../../projects/vs-chipdropdown/src/lib/vs-chipdd-cmp/vs-chipdd-cmp.component.ts","../../../projects/vs-chipdropdown/src/lib/vs-chipdd-cmp/vs-chipdd-cmp.component.html","../../../projects/vs-chipdropdown/src/lib/vs-chipdropdown.module.ts","../../../projects/vs-chipdropdown/src/public-api.ts","../../../projects/vs-chipdropdown/src/unnilouis.org-vs-chipdropdown.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class VsChipdropdownService {\r\n\r\n constructor(private http: HttpClient) { }\r\n postApi(Apiurl:any,json={},params:any): Observable<any> {\r\n const getToken:any = localStorage.getItem(\"sessionData\");\r\n let tokenValue = JSON.parse(getToken);\r\n let token = tokenValue.token;\r\n console.log(\"params\",params)\r\n let paradata=''\r\n if(params!==undefined && params!==null && params!==''){\r\n paradata=params\r\n }\r\n const headers = { Authorization: \"Token \" + token };\r\n return this.http.post<any>(Apiurl+paradata,json ,{\r\n headers: headers,\r\n \r\n });\r\n }\r\n GetApi(Apiurl:any,params=''): Observable<any> {\r\n const getToken:any = localStorage.getItem(\"sessionData\");\r\n let tokenValue = JSON.parse(getToken);\r\n let token = tokenValue.token;\r\n console.log(\"params\",params)\r\n let paradata=''\r\n if(params!==undefined && params!==null && params!==''){\r\n paradata=params\r\n }\r\n const headers = { Authorization: \"Token \" + token };\r\n return this.http.get<any>(Apiurl+paradata,{\r\n headers: headers,\r\n });\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-vs-chipdropdown',\r\n template: `\r\n <p>\r\n vs-chipdropdown works!\r\n </p>\r\n `,\r\n styles: ``\r\n})\r\nexport class VsChipdropdownComponent {\r\n\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport {\r\n MatAutocompleteSelectedEvent,\r\n MatAutocomplete,\r\n MatAutocompleteTrigger,\r\n} from '@angular/material/autocomplete';\r\nimport {\r\n debounceTime,\r\n distinctUntilChanged,\r\n tap,\r\n filter,\r\n switchMap,\r\n finalize,\r\n takeUntil,\r\n map,\r\n} from 'rxjs/operators';\r\nimport { from, Observable, fromEvent } from 'rxjs';\r\nimport { VsChipdropdownService } from '../vs-chipdropdown.service';\r\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\r\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\r\n@Component({\r\n selector: 'lib-vs-chipdd-cmp',\r\n templateUrl: './vs-chipdd-cmp.component.html',\r\n styleUrls: ['./vs-chipdd-cmp.component.scss'],\r\n})\r\nexport class VsChipddCmpComponent {\r\n DrodownLoading: boolean =false;\r\n constructor(\r\n private service: VsChipdropdownService,\r\n private fb: FormBuilder\r\n ) {}\r\n @Input() InputFields: any;\r\n @Input() ResetForm: any;\r\n @Input() Backendapi: boolean = true;\r\n\r\n @ViewChild('autoCompleteInput', {\r\n static: false,\r\n read: MatAutocompleteTrigger,\r\n })\r\ntrigger: MatAutocompleteTrigger | null = null;\r\n @ViewChild(MatAutocompleteTrigger)\r\nautocompleteTrigger: MatAutocompleteTrigger | null = null;\r\n @ViewChild('scrolll')\r\n matAutocompleteApp!: MatAutocomplete;\r\n @Output() dataEvent: EventEmitter<any> = new EventEmitter<any>();\r\n @ViewChild('DropInput') DropInput: any;\r\n readonly separatorsKeysCodes: number[] = [ENTER, COMMA];\r\n\r\n has_next: boolean = false;\r\n currentpage: number = 1;\r\n Dropdowndata: any = [];\r\n has_previous: boolean = false;\r\n DropdownForm:any= FormGroup;\r\n chipSelectedId: any = [];\r\n chipSelectedObj: any = [];\r\n @Input() formGroup!: FormGroup;\r\n ngOnInit() {\r\n // if (this.formGroup) {\r\n // this.DropdownForm = this.formGroup;\r\n // } else {\r\n // this.DropdownForm = this.fb.group({\r\n // value: '',\r\n // });\r\n // }\r\n // this.dupngonit();\r\n\r\n // if (this.InputFields?.defaultvalue) {\r\n // this.DropdownForm.get(\"value\").patchValue(this.InputFields?.defaultvalue)\r\n // this.chipSelectedObj = this.InputFields?.defaultvalue\r\n // if (this.chipSelectedObj.length > 0) {\r\n // for (let foundemp of this.chipSelectedObj) {\r\n // if (this.InputFields?.Outputkey) {\r\n // this.chipSelectedId.push(foundemp[this.InputFields?.Outputkey])\r\n\r\n // }\r\n // else {\r\n // this.chipSelectedId.push(foundemp.id)\r\n\r\n // }\r\n // }\r\n // this.selected()\r\n // }\r\n\r\n // }\r\n // if (this.InputFields?.fronentdata) {\r\n // this.Dropdowndata = this.InputFields?.data\r\n\r\n // }\r\n // else {\r\n // this.getdropdown('')\r\n // }\r\n }\r\n looop() {\r\n for (let foundemp of this.chipSelectedObj) {\r\n if(!(foundemp instanceof Number)){\r\n if (this.InputFields?.Outputkey) {\r\n this.chipSelectedId.push(foundemp[this.InputFields?.Outputkey]);\r\n }\r\n else {\r\n this.chipSelectedId.push(foundemp.id);\r\n }\r\n if (this.InputFields?.formkey) {\r\n this.formkeyarr.push(foundemp[this.InputFields?.formkey]);\r\n } \r\n }\r\n }\r\n \r\n }\r\n dupngonit() {\r\n if (this.formGroup) {\r\n this.DropdownForm = this.formGroup;\r\n if (!this.DropdownForm.contains(this.InputFields?.formcontrolname)) {\r\n this.DropdownForm.addControl(\r\n this.dynamciformcontrolparent(),\r\n new FormControl({ value: [], disabled: this.InputFields?.disabled })\r\n );\r\n }\r\n else{\r\n this.InputFields?.disabled ? this.DropdownForm.get('chipvalue').disable() : '' }\r\n } else {\r\n this.DropdownForm = this.fb.group({\r\n chipvalue: [],disabled: this.InputFields?.disabled\r\n });\r\n\r\n }\r\n console.log('this.DropdownForm', this.DropdownForm.value);\r\n // this.chipSelectedObj =\r\n // this.DropdownForm.get(this.dynamciformcontrolparent()).value &&\r\n // this.DropdownForm.get(this.dynamciformcontrolparent()).value.length !== 0\r\n // ? this.DropdownForm.get(this.dynamciformcontrolparent()).value\r\n // : [];\r\n // console.log('this.chipSelectedObj', this.chipSelectedObj);\r\n\r\n if (this.InputFields?.defaultvalue) {\r\n // this.DropdownForm.get(this.dynamciformcontrolparent()).patchValue(\r\n // this.InputFields?.formkey\r\n // ? this.InputFields?.defaultvalue[this.InputFields?.formkey]\r\n // : this.InputFields?.defaultvalue\r\n // );\r\n // this.DropdownForm.get(this.dynamciformcontrolparent()).patchValue(this.InputFields?.defaultvalue);\r\n this.chipSelectedObj = this.InputFields?.defaultvalue;\r\n this.chipSelectedId = [];\r\n this.formkeyarr = [];\r\n if (this.chipSelectedObj.length > 0) {\r\n this.looop();\r\n this.selected();\r\n }\r\n }\r\n\r\n if (\r\n this.DropdownForm.get(this.dynamciformcontrolparent()).value &&\r\n this.DropdownForm.get(this.dynamciformcontrolparent()).value.length !== 0\r\n ) {\r\n this.chipSelectedObj = this.DropdownForm.get(\r\n this.dynamciformcontrolparent()\r\n ).value;\r\n console.log('test',this.chipSelectedObj = this.DropdownForm.get(\r\n this.dynamciformcontrolparent()\r\n ).value)\r\n this.chipSelectedId = [];\r\n this.formkeyarr = [];\r\n this.looop();\r\n this.selected();\r\n }\r\n if (this.InputFields?.fronentdata) {\r\n this.Dropdowndata = this.InputFields?.data;\r\n }\r\n this.dropdownsearch();\r\n // else {\r\n // this.getdropdown('')\r\n // }\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['InputFields'] && changes['InputFields'].currentValue) {\r\n console.log('Summary Log Changes');\r\n this.currentpage = 1;\r\n this.dupngonit();\r\n }\r\n if (changes['ResetForm'] && changes['ResetForm'].currentValue) {\r\n console.log('hitted');\r\n // this.DropdownForm.reset();\r\n this.currentpage = 1;\r\n this.dupngonit();\r\n this.chipSelectedId = [];\r\n this.formkeyarr = [];\r\n this.chipSelectedObj = [];\r\n this.dataEvent.emit([]);\r\n }\r\n }\r\n // public displaydevelopclient(clt: any, key: string) {\r\n // return key[clt];\r\n // }\r\n autocompleteAppScroll() {\r\n if (!this.InputFields?.fronentdata) {\r\n setTimeout(() => {\r\n if (\r\n this.matAutocompleteApp &&\r\n this.autocompleteTrigger &&\r\n this.matAutocompleteApp.panel\r\n ) {\r\n fromEvent(this.matAutocompleteApp.panel.nativeElement, 'scroll')\r\n .pipe(\r\n map((x) => this.matAutocompleteApp.panel.nativeElement.scrollTop),\r\n takeUntil(\r\n this.autocompleteTrigger.panelClosingActions as Observable<any>\r\n )\r\n )\r\n .subscribe((x) => {\r\n const scrollTop =\r\n this.matAutocompleteApp.panel.nativeElement.scrollTop;\r\n const scrollHeight =\r\n this.matAutocompleteApp.panel.nativeElement.scrollHeight;\r\n const elementHeight =\r\n this.matAutocompleteApp.panel.nativeElement.clientHeight;\r\n const atBottom = scrollHeight - 1 <= scrollTop + elementHeight;\r\n if (atBottom) {\r\n if (this.has_next === true) {\r\n let value = this.DropInput.nativeElement.value;\r\n let params = this.searchparams(value);\r\n this.currentpage = this.currentpage + 1;\r\n if (this.currentpage > 1) {\r\n this.service\r\n .GetApi(\r\n this.InputFields.url + '?page=' + this.currentpage,\r\n params\r\n )\r\n .subscribe((results) => {\r\n let datas = results['data'];\r\n let datapagination = results['pagination'];\r\n this.Dropdowndata = this.Dropdowndata.concat(datas);\r\n console.log('this.Dropdowndata', this.Dropdowndata);\r\n if (this.Dropdowndata.length >= 0) {\r\n this.has_next = datapagination.has_next;\r\n this.has_previous = datapagination.has_previous;\r\n this.currentpage = datapagination.index;\r\n }\r\n });\r\n }\r\n }\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n isOptionSelected:boolean=false\r\n dropdownsearch() {\r\n const controlName = this.dynamciformcontrolparent();\r\n const control = this.DropdownForm.get(controlName);\r\n if (control \r\n \r\n \r\n ) {\r\n if (!this.InputFields?.fronentdata) {\r\n if (!this.InputFields?.url) {\r\n return ;\r\n }\r\n this.DropdownForm.get(this.dynamciformcontrolparent())\r\n .valueChanges.pipe(\r\n debounceTime(300),\r\n distinctUntilChanged(),\r\n // tap(() => {\r\n // this.DrodownLoading = true;\r\n // console.log('inside tap');\r\n // }),\r\n switchMap((value) => {\r\n if(this.isOptionSelected){\r\n this.isOptionSelected=false\r\n return []\r\n }\r\n let params = this.searchparams(value);\r\n this.currentpage = 1;\r\n console.log(\"hiteeeedddddddddddddd>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\")\r\n\r\n return this.service\r\n .GetApi(\r\n this.InputFields.url + '?page=' + this.currentpage,\r\n params,\r\n \r\n )\r\n .pipe(\r\n finalize(() => {\r\n this.DrodownLoading = false;\r\n })\r\n );\r\n })\r\n )\r\n .subscribe((results: any) => {\r\n this.dataEvent.emit('');\r\n\r\n let datas = results['data'];\r\n this.Dropdowndata = datas;\r\n });\r\n } else {\r\n // this.Dropdowndata = this.InputFields?.data\r\n\r\n this.DropdownForm.get(this.dynamciformcontrolparent()).valueChanges.subscribe(\r\n (value:any) => {\r\n this.Dropdowndata = this.InputFields?.data.filter((item:any) =>\r\n item[this.InputFields?.displaykey]\r\n ?.toLowerCase()\r\n .includes(value?.toLowerCase())\r\n );\r\n }\r\n );\r\n }\r\n }\r\n // if (control && !this.InputFields?.fronentdata) {\r\n // this.DropdownForm.get(this.dynamciformcontrolparent())\r\n // .valueChanges.pipe(\r\n // debounceTime(200),\r\n // distinctUntilChanged(),\r\n // tap(() => {\r\n // this.DrodownLoading = true;\r\n // console.log('inside tap');\r\n // }),\r\n // switchMap((value) => {\r\n // let params = this.searchparams(value);\r\n // this.currentpage = 1;\r\n // return this.service\r\n // .GetApi(\r\n // this.InputFields.url + '?page=' + this.currentpage,\r\n // params\r\n // )\r\n // .pipe(\r\n // finalize(() => {\r\n // this.DrodownLoading = false;\r\n // })\r\n // );\r\n // })\r\n // )\r\n // .subscribe((results: any[]) => {\r\n // let datas = results['data'];\r\n // this.Dropdowndata = datas;\r\n // });\r\n // }\r\n }\r\n getdropdown(value:any) {\r\n\r\n this.currentpage = 1;\r\n if ( this.InputFields.url) {\r\n let params = this.searchparams(value);\r\n this.service\r\n .GetApi(this.InputFields.url + '?page=' + this.currentpage, params)\r\n .subscribe((results: any) => {\r\n let datas = results['data'];\r\n let datapagination = results['pagination'];\r\n this.Dropdowndata = datas;\r\n setTimeout(() => {\r\n if (this.trigger) {\r\n this.trigger.openPanel();\r\n }\r\n }, 0);\r\n if (this.Dropdowndata.length >= 0) {\r\n this.has_next = datapagination.has_next;\r\n this.has_previous = datapagination.has_previous;\r\n this.currentpage = datapagination.index;\r\n }\r\n });\r\n }\r\n }\r\n Outputdata: any = [];\r\n dynamciformcontrolparent() {\r\n return this.InputFields?.formcontrolname && this.formGroup\r\n ? this.InputFields?.formcontrolname\r\n : 'chipvalue';\r\n }\r\n selected() {\r\n this.Outputdata = this.chipSelectedObj;\r\n if (this.InputFields?.Outputkey) {\r\n this.Outputdata = this.chipSelectedId;\r\n }\r\n if (this.formGroup && this.InputFields?.formcontrolname) {\r\n this.DropdownForm.get(this.dynamciformcontrolparent()).patchValue(\r\n this.formkeyarr\r\n );\r\n }\r\n console.log(this.formkeyarr);\r\n console.log('this.DropdownForm.get', this.DropdownForm.value);\r\n this.dataEvent.emit(this.Outputdata);\r\n\r\n // let data = this.DropdownForm.value.value\r\n // if (this.InputFields?.wholedata) {\r\n // this.dataEvent.emit(this.chipSelectedObj);\r\n // if (this.InputFields?.formgroup && this.InputFields?.formcontrolname) {\r\n // this.InputFields?.formgroup\r\n // .get(this.InputFields?.formcontrolname)\r\n // .patchValue(this.chipSelectedObj);\r\n // }\r\n // }\r\n // else {\r\n // if (this.InputFields?.Outputkey) {\r\n // this.dataEvent.emit(this.chipSelectedId);\r\n // if (this.InputFields?.formgroup && this.InputFields?.formcontrolname) {\r\n // this.InputFields?.formgroup\r\n // .get(this.InputFields?.formcontrolname)\r\n // .patchValue(this.chipSelectedId);\r\n // }\r\n // }\r\n // else {\r\n // this.dataEvent.emit(this.chipSelectedObj);\r\n // if (this.InputFields?.formgroup && this.InputFields?.formcontrolname) {\r\n // this.InputFields?.formgroup\r\n // .get(this.InputFields?.formcontrolname)\r\n // .patchValue(this.chipSelectedObj);\r\n // }\r\n // }\r\n\r\n // }\r\n }\r\n searchparams(value:any) {\r\n let params = '';\r\n if (this.InputFields.params) {\r\n params = this.InputFields.params;\r\n }\r\n let inpValue = value;\r\n inpValue\r\n ? (params += '&' + this.InputFields.searchkey + '=' + inpValue)\r\n : '';\r\n return params;\r\n }\r\n removechip(obj:any) {\r\n const index = this.chipSelectedObj.indexOf(obj);\r\n\r\n if (index >= 0) {\r\n this.chipSelectedObj.splice(index, 1);\r\n console.log(this.chipSelectedObj);\r\n this.chipSelectedId.splice(index, 1);\r\n console.log(this.chipSelectedId);\r\n this.formkeyarr.splice(index, 1);\r\n console.log('this.formkeyarr', this.formkeyarr);\r\n\r\n this.DropInput.nativeElement.value = '';\r\n this.selected();\r\n }\r\n }\r\n formkeyarr:any=[]\r\n public venSelected(datas:any): void {\r\n let data=!datas && datas==='' ? datas :datas?.option?.value || datas;\r\n this.isOptionSelected=true\r\n this.DropInput.nativeElement.value = '';\r\n console.log('event.option.value', data);\r\n this.selectvenByName(\r\n data[this.comparekey(data)]\r\n );\r\n console.log('chipSelectedvenid', this.chipSelectedObj);\r\n }\r\n private selectvenByName(ven:any) {\r\n let foundemp1 = this.chipSelectedObj.filter(\r\n (e:any) => e[this.comparekey(e)] == ven\r\n );\r\n if (foundemp1.length) {\r\n return;\r\n }\r\n let foundemp = this.Dropdowndata.filter(\r\n (e:any) => e[this.comparekey(e)] == ven\r\n );\r\n if (foundemp.length) {\r\n this.chipSelectedObj.push(foundemp[0]);\r\n if (this.InputFields?.Outputkey) {\r\n this.chipSelectedId.push(foundemp[0][this.InputFields?.Outputkey]);\r\n }\r\n else {\r\n this.chipSelectedId.push(foundemp[0].id);\r\n }\r\n if (this.InputFields?.formkey) {\r\n this.formkeyarr.push(foundemp[0][this.InputFields?.formkey]);\r\n } \r\n this.selected()\r\n }\r\n }\r\n comparekey(e:any) {\r\n if (this.InputFields?.comparekey) {\r\n return this.InputFields?.comparekey;\r\n } else {\r\n if (e?.id) {\r\n return 'id';\r\n } else {\r\n return this.InputFields.displaykey;\r\n }\r\n }\r\n }\r\n}\r\n","\r\n <form [formGroup]=\"DropdownForm\" id=\"matChip-size\">\r\n <!-- class=\"mat-chipScroll\" -->\r\n <mat-form-field\r\n appearance=\"outline\"\r\n (click)=\"!this.InputFields?.fronentdata ? this.getdropdown('') : ''\"\r\n >\r\n <mat-label>{{ InputFields?.label | translate }}</mat-label>\r\n <!-- class=\"chip-container\" -->\r\n <mat-chip-grid multiple #chipListvendor>\r\n <!-- class=\"mat-chipEx\" -->\r\n <mat-chip-row\r\n *ngFor=\"let obj of chipSelectedObj\"\r\n [removable]=\"true\"\r\n (removed)=\"removechip(obj)\"\r\n >\r\n {{ obj[InputFields?.displaykey] }}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n <!-- class=\"matformfieldinputstyle\" -->\r\n <input\r\n #DropInput\r\n [matAutocomplete]=\"scrolll\"\r\n [matChipInputFor]=\"chipListvendor\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorsKeysCodes\"\r\n [matChipInputAddOnBlur]=\"true\"\r\n #autoCompleteInput=\"matAutocompleteTrigger\"\r\n [formControlName]=\"this.dynamciformcontrolparent()\"\r\n />\r\n </mat-chip-grid>\r\n <mat-autocomplete\r\n #scrolll=\"matAutocomplete\"\r\n (opened)=\"autocompleteAppScroll()\"\r\n >\r\n <ng-container>\r\n <mat-option\r\n *ngFor=\"let dropvalues of Dropdowndata\"\r\n [value]=\"\r\n this.InputFields?.formkey\r\n ? dropvalues[this.InputFields?.formkey]\r\n : dropvalues\r\n \"\r\n [matTooltip]=\"InputFields?.tooltip ? dropvalues[InputFields?.tooltipkey] : ''\"\r\n (onSelectionChange)=\"venSelected(dropvalues)\"\r\n >\r\n {{ dropvalues[InputFields?.displaykey] }}\r\n </mat-option>\r\n </ng-container>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </form>\r\n<!-- (click)=\"selected()\"\r\n -->\r\n<!-- (optionSelected)=\"venSelected($event)\"\r\n -->\r\n","import { NgModule } from '@angular/core';\r\nimport { VsChipdropdownComponent } from './vs-chipdropdown.component';\r\nimport { VsChipddCmpComponent } from './vs-chipdd-cmp/vs-chipdd-cmp.component';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { TranslateModule, TranslateLoader } from '@ngx-translate/core';\r\nimport { HttpClientModule, HttpClient } from '@angular/common/http';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n// import {VsSharedModuleModule} from '@unnilouis.org/vs-shared-module'\r\n\r\n\r\n@NgModule({\r\n declarations: [VsChipdropdownComponent, VsChipddCmpComponent],\r\n imports: [MatFormFieldModule,MatInputModule,MatSelectModule,MatAutocompleteModule,FormsModule,ReactiveFormsModule,CommonModule,MatGridListModule,MatChipsModule,MatIconModule,\r\n TranslateModule,\r\n HttpClientModule,\r\n MatTooltipModule,\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: httpTranslateLoader,\r\n deps: [HttpClient],\r\n },\r\n }),],\r\n // imports: [VsSharedModuleModule],\r\n exports: [VsChipddCmpComponent]\r\n})\r\nexport class VsChipdropdownModule { }\r\nexport function httpTranslateLoader(http: HttpClient) {\r\n return new TranslateHttpLoader(http);\r\n}\r\n","/*\r\n * Public API Surface of vs-chipdropdown\r\n */\r\n\r\nexport * from './lib/vs-chipdropdown.service';\r\nexport * from './lib/vs-chipdropdown.component';\r\nexport * from './lib/vs-chipdropdown.module';\r\nexport * from './lib/vs-chipdd-cmp/vs-chipdd-cmp.component'","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.VsChipdropdownService"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unnilouis.org/vs-chipdropdown",
3
- "version": "17.2.1",
3
+ "version": "17.2.3",
4
4
  "module": "fesm2022/unnilouis.org-vs-chipdropdown.mjs",
5
5
  "typings": "index.d.ts",
6
6
  "exports": {